dotfiles

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 50a2f03703a65532ab36f5769f5118bb77f44f9f
parent d2d4275b96dac0a4cbccfcba7fc2cd36090065aa
Author: Linus <93053722+linusbehrens@users.noreply.github.com>
Date:   Fri, 18 Jul 2025 15:07:09 +0200

Merge branch 'main' into tmp
Diffstat:
A.config/FreeCAD/FreeCAD.conf | 2++
A.config/FreeCAD/system.cfg | 27+++++++++++++++++++++++++++
A.config/FreeCAD/user.cfg | 318+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
M.config/bash/.bashrc | 6++++--
M.config/btop/btop.conf | 8++++----
A.config/dconf/user | 0
D.config/gh/config.yml | 19-------------------
D.config/gh/hosts.yml | 5-----
M.config/ghostty/config | 11++++++-----
A.config/go/telemetry/local/asm@go1.24.4-go1.24.4-linux-amd64-2025-07-02.v1.count | 0
A.config/go/telemetry/local/cgo@go1.24.4-go1.24.4-linux-amd64-2025-07-02.v1.count | 0
A.config/go/telemetry/local/compile@go1.24.4-go1.24.4-linux-amd64-2025-07-02.v1.count | 0
A.config/go/telemetry/local/go@go1.24.4-go1.24.4-linux-amd64-2025-07-02.v1.count | 0
A.config/go/telemetry/local/link@go1.24.4-go1.24.4-linux-amd64-2025-07-02.v1.count | 0
A.config/go/telemetry/local/upload.token | 0
A.config/go/telemetry/local/weekends | 1+
A.config/nitrogen/bg-saved.cfg | 4++++
D.config/nvim/lua/linus/extensions/agenda.chat.lua | 48------------------------------------------------
M.config/nvim/lua/linus/plugins/telescope.lua | 6+++---
M.config/nvim/lua/linus/video.lua | 224++++++++++++++++++++++++++++++++++++++++----------------------------------------
D.config/nvim2/LICENSE | 201-------------------------------------------------------------------------------
D.config/nvim2/README.md | 4----
D.config/nvim2/init.lua | 18------------------
D.config/nvim2/lazy-lock.json | 52----------------------------------------------------
D.config/nvim2/lazyvim.json | 11-----------
D.config/nvim2/lua/.DS_Store | 0
D.config/nvim2/lua/config/autocmds.lua | 3---
D.config/nvim2/lua/config/highlite.lua | 9---------
D.config/nvim2/lua/config/keymaps.lua | 12------------
D.config/nvim2/lua/config/lazy.lua | 53-----------------------------------------------------
D.config/nvim2/lua/config/options.lua | 3---
D.config/nvim2/lua/plugins/disable.lua | 4----
D.config/nvim2/lua/plugins/example.lua | 198-------------------------------------------------------------------------------
D.config/nvim2/lua/plugins/lualine.lua | 29-----------------------------
D.config/nvim2/lua/plugins/markview.lua | 22----------------------
D.config/nvim2/lua/plugins/mini.lua | 33---------------------------------
D.config/nvim2/lua/plugins/neotree.lua | 20--------------------
D.config/nvim2/lua/plugins/no-neck-pain.lua | 3---
D.config/nvim2/lua/plugins/opacity.lua | 3---
D.config/nvim2/lua/plugins/render.lua | 9---------
D.config/nvim2/lua/plugins/snacks.lua | 14--------------
D.config/nvim2/lua/plugins/starter-mini.lua | 66------------------------------------------------------------------
D.config/nvim2/lua/plugins/substitute.lua | 17-----------------
D.config/nvim2/lua/plugins/telescope.lua | 43-------------------------------------------
D.config/nvim2/lua/plugins/todo-comment.lua | 49-------------------------------------------------
D.config/nvim2/lua/plugins/user/highlights.lua | 13-------------
A.config/obsidian/Cache/Cache_Data/5283edf90cf4ab50_0 | 0
A.config/obsidian/Cache/Cache_Data/8ca0d52b4a473918_0 | 0
A.config/obsidian/Cache/Cache_Data/a399e41e2f8134bc_0 | 0
A.config/obsidian/Cache/Cache_Data/c4674018ac658381_0 | 0
A.config/obsidian/Cache/Cache_Data/fc52697cff125bba_0 | 0
A.config/obsidian/Cache/Cache_Data/index | 0
A.config/obsidian/Cache/Cache_Data/index-dir/the-real-index | 0
A.config/obsidian/Code Cache/js/0c1ed943aa126583_0 | 0
A.config/obsidian/Code Cache/js/0f565013688148e8_0 | 0
A.config/obsidian/Code Cache/js/2466fb1bb221e644_0 | 0
A.config/obsidian/Code Cache/js/3280f7d049f02f05_0 | 0
A.config/obsidian/Code Cache/js/4095c44fb9923642_0 | 0
A.config/obsidian/Code Cache/js/4c22e875ec57f3e2_0 | 0
A.config/obsidian/Code Cache/js/4d93e629f88ee097_0 | 0
A.config/obsidian/Code Cache/js/4fc1be47792d905e_0 | 0
A.config/obsidian/Code Cache/js/52a37f705767cea0_0 | 0
A.config/obsidian/Code Cache/js/98c562a050a709e9_0 | 0
A.config/obsidian/Code Cache/js/9bfa16698017273a_0 | 0
A.config/obsidian/Code Cache/js/a0e12b36e8eea117_0 | 0
A.config/obsidian/Code Cache/js/a49516b562ef368b_0 | 0
A.config/obsidian/Code Cache/js/b89bb96eeee2ac49_0 | 0
A.config/obsidian/Code Cache/js/bc58febc704dde76_0 | 0
A.config/obsidian/Code Cache/js/be9791bcc51ea2dc_0 | 0
A.config/obsidian/Code Cache/js/bf7317e8b20adde0_0 | 0
A.config/obsidian/Code Cache/js/c23a75f3073e0b44_0 | 0
A.config/obsidian/Code Cache/js/c4c37b5cf17e2243_0 | 0
A.config/obsidian/Code Cache/js/c563d2ff01a2fa73_0 | 0
A.config/obsidian/Code Cache/js/caab35d15fe3fee9_0 | 0
A.config/obsidian/Code Cache/js/cb5bf2c23c8e44b0_0 | 0
A.config/obsidian/Code Cache/js/d24f2b1334d2313b_0 | 0
A.config/obsidian/Code Cache/js/dcb89ac4ff0f1f48_0 | 0
A.config/obsidian/Code Cache/js/e51b7e53305f72b5_0 | 0
A.config/obsidian/Code Cache/js/e68ac9d21f134e1c_0 | 0
A.config/obsidian/Code Cache/js/fa25f4d54ef35203_0 | 0
A.config/obsidian/Code Cache/js/index | 0
A.config/obsidian/Code Cache/js/index-dir/the-real-index | 0
A.config/obsidian/Code Cache/wasm/index | 0
A.config/obsidian/Code Cache/wasm/index-dir/the-real-index | 0
A.config/obsidian/Cookies | 0
A.config/obsidian/Cookies-journal | 0
A.config/obsidian/Crashpad/client_id | 2++
A.config/obsidian/DawnGraphiteCache/data_0 | 0
A.config/obsidian/DawnGraphiteCache/data_1 | 0
A.config/obsidian/DawnGraphiteCache/data_2 | 0
A.config/obsidian/DawnGraphiteCache/data_3 | 0
A.config/obsidian/DawnGraphiteCache/index | 0
A.config/obsidian/DawnWebGPUCache/data_0 | 0
A.config/obsidian/DawnWebGPUCache/data_1 | 0
A.config/obsidian/DawnWebGPUCache/data_2 | 0
A.config/obsidian/DawnWebGPUCache/data_3 | 0
A.config/obsidian/DawnWebGPUCache/index | 0
A.config/obsidian/Dictionaries/en-US-10-1.bdic | 0
A.config/obsidian/GPUCache/data_0 | 0
A.config/obsidian/GPUCache/data_1 | 0
A.config/obsidian/GPUCache/data_2 | 0
A.config/obsidian/GPUCache/data_3 | 0
A.config/obsidian/GPUCache/index | 0
A.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/000016.ldb | 0
A.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/000017.log | 0
A.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/000018.ldb | 0
A.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/000019.ldb | 0
A.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/CURRENT | 1+
A.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/LOCK | 0
A.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/LOG | 25+++++++++++++++++++++++++
A.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/LOG.old | 15+++++++++++++++
A.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/MANIFEST-000001 | 0
A.config/obsidian/Local Storage/leveldb/000003.log | 0
A.config/obsidian/Local Storage/leveldb/CURRENT | 1+
A.config/obsidian/Local Storage/leveldb/LOCK | 0
A.config/obsidian/Local Storage/leveldb/LOG | 3+++
A.config/obsidian/Local Storage/leveldb/LOG.old | 3+++
A.config/obsidian/Local Storage/leveldb/MANIFEST-000001 | 0
A.config/obsidian/Network Persistent State | 2++
A.config/obsidian/Preferences | 2++
A.config/obsidian/Session Storage/000003.log | 0
A.config/obsidian/Session Storage/CURRENT | 1+
A.config/obsidian/Session Storage/LOCK | 0
A.config/obsidian/Session Storage/LOG | 3+++
A.config/obsidian/Session Storage/LOG.old | 3+++
A.config/obsidian/Session Storage/MANIFEST-000001 | 0
A.config/obsidian/Shared Dictionary/cache/index | 0
A.config/obsidian/Shared Dictionary/cache/index-dir/the-real-index | 0
A.config/obsidian/Shared Dictionary/db | 0
A.config/obsidian/Shared Dictionary/db-journal | 0
A.config/obsidian/SharedStorage | 0
A.config/obsidian/TransportSecurity | 2++
A.config/obsidian/Trust Tokens | 0
A.config/obsidian/Trust Tokens-journal | 0
A.config/obsidian/WebStorage/QuotaManager | 0
A.config/obsidian/WebStorage/QuotaManager-journal | 0
A.config/obsidian/a037508a21b3b1fd.json | 2++
A.config/obsidian/id | 2++
A.config/obsidian/obsidian.json | 2++
A.config/obsidian/obsidian.log | 15+++++++++++++++
A.config/picom/picom.conf | 26++++++++++++++++++++++++++
D.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-copy.js | 73-------------------------------------------------------------------------
D.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-copy.js.map | 7-------
D.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-paste.js | 73-------------------------------------------------------------------------
D.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-paste.js.map | 7-------
D.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-view.js | 73-------------------------------------------------------------------------
D.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-view.js.map | 7-------
M.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/package.json | 1463+++++++++----------------------------------------------------------------------
M.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/quick-translate.js | 89++++++++++++++++++++++++++++++++++++-------------------------------------------
M.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/quick-translate.js.map | 8++++----
M.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/translate-form.js | 89++++++++++++++++++++++++++++++++++++-------------------------------------------
M.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/translate-form.js.map | 8++++----
M.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/translate.js | 83++++++++++++++++++++++++++++++++++++-------------------------------------------
M.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/translate.js.map | 8++++----
M.config/taskell/bindings.ini | 16++++++++--------
M.config/taskell/config.ini | 2+-
D.config/taskell/taskell.md | 11-----------
M.config/taskell/theme.ini | 6+++---
M.config/tmux/tmux.conf | 6++++++
A.gitignore | 1+
160 files changed, 898 insertions(+), 2810 deletions(-)

diff --git a/.config/FreeCAD/FreeCAD.conf b/.config/FreeCAD/FreeCAD.conf @@ -0,0 +1,2 @@ +[General] +LastCacheCheck=@Variant(\0\0\0\xe\0%\x8c\xbf) diff --git a/.config/FreeCAD/system.cfg b/.config/FreeCAD/system.cfg @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<FCParameters> + <FCParamGroup Name="Root"> + <FCParamGroup Name="Modules"> + <FCParamGroup Name="Assembly"> + <FCText Name="HelpIndex">Assembly/Help/index.html</FCText> + <FCText Name="WorkBenchName">Assembly</FCText> + <FCText Name="WorkBenchModule">AssemblyWorkbench.py</FCText> + </FCParamGroup> + <FCParamGroup Name="Path"> + <FCText Name="HelpIndex">Path/Help/index.html</FCText> + <FCText Name="WorkBenchName">CAM</FCText> + <FCText Name="WorkBenchModule">PathWorkbench.py</FCText> + </FCParamGroup> + <FCParamGroup Name="Spreadsheet"> + <FCText Name="HelpIndex">Spreadsheet/Help/index.html</FCText> + <FCText Name="WorkBenchName">Spreadsheet</FCText> + <FCText Name="WorkBenchModule">SpreadsheetWorkbench.py</FCText> + </FCParamGroup> + <FCParamGroup Name="Start"> + <FCText Name="WorkBenchName">Start</FCText> + <FCText Name="WorkBenchModule">Start.py</FCText> + </FCParamGroup> + </FCParamGroup> + </FCParamGroup> + +</FCParameters> diff --git a/.config/FreeCAD/user.cfg b/.config/FreeCAD/user.cfg @@ -0,0 +1,318 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<FCParameters> + <FCParamGroup Name="Root"> + <FCParamGroup Name="BaseApp"> + <FCParamGroup Name="LogLevels"> + <FCInt Name="Default" Value="2"/> + </FCParamGroup> + <FCParamGroup Name="Preferences"> + <FCParamGroup Name="General"> + <FCText Name="FileOpenSavePath">/home/linus</FCText> + <FCParamGroup Name="HiddenPreferencePacks"/> + <FCText Name="AutoloadModule">PartDesignWorkbench</FCText> + <FCText Name="BackgroundAutoloadModules"/> + <FCText Name="LastModule">PartDesignWorkbench</FCText> + </FCParamGroup> + <FCParamGroup Name="Units"> + <FCInt Name="UserSchema" Value="0"/> + </FCParamGroup> + <FCParamGroup Name="Macro"/> + <FCParamGroup Name="Mod"> + <FCParamGroup Name="CAM"> + <FCUInt Name="DefaultBBoxNormalColor" Value="4059297279"/> + <FCUInt Name="DefaultBBoxSelectionColor" Value="582537215"/> + <FCUInt Name="DefaultHighlightPathColor" Value="4252898303"/> + <FCUInt Name="DefaultNormalPathColor" Value="1086347263"/> + <FCUInt Name="DefaultPathMarkerColor" Value="1958221567"/> + <FCUInt Name="DefaultProbePathColor" Value="4240710143"/> + <FCUInt Name="DefaultRapidPathColor" Value="4199699199"/> + </FCParamGroup> + <FCParamGroup Name="OpenSCAD"/> + <FCParamGroup Name="Help"/> + <FCParamGroup Name="Part"> + <FCParamGroup Name="General"/> + <FCParamGroup Name="STEP"/> + <FCParamGroup Name="IGES"/> + <FCParamGroup Name="Boolean"/> + </FCParamGroup> + <FCParamGroup Name="Start"> + <FCBool Name="ShowOnStartup" Value="1"/> + <FCBool Name="ShowExamples" Value="1"/> + <FCBool Name="CloseStart" Value="0"/> + <FCText Name="ShowCustomFolder"/> + <FCBool Name="Migration2024Complete" Value="1"/> + <FCBool Name="FirstStart2024" Value="0"/> + </FCParamGroup> + <FCParamGroup Name="Sketcher"> + <FCParamGroup Name="Snap"/> + <FCParamGroup Name="General"> + <FCUInt Name="GridDivLineColor" Value="1230002175"/> + <FCUInt Name="GridLineColor" Value="1230002175"/> + <FCParamGroup Name="GridSize"/> + <FCInt Name="ConstraintFilterState" Value="33554431"/> + <FCBool Name="ElementFilterEnabled" Value="1"/> + <FCText Name="OverrideMode">As Is</FCText> + </FCParamGroup> + <FCParamGroup Name="Constraints"/> + <FCParamGroup Name="View"/> + <FCParamGroup Name="dimensioning"/> + <FCParamGroup Name="Elements"/> + <FCParamGroup Name="SolverAdvanced"/> + </FCParamGroup> + <FCParamGroup Name="PartDesign"/> + <FCParamGroup Name="Arch"> + <FCUInt Name="ColorHelpers" Value="1347440895"/> + <FCUInt Name="defaultSpaceColor" Value="4280090879"/> + <FCUInt Name="PanelColor" Value="3416289279"/> + <FCUInt Name="RebarColor" Value="3111475967"/> + <FCUInt Name="StructureColor" Value="2527705855"/> + <FCUInt Name="WallColor" Value="3604403967"/> + <FCUInt Name="WindowColor" Value="556614399"/> + <FCUInt Name="WindowGlassColor" Value="1572326399"/> + </FCParamGroup> + <FCParamGroup Name="Draft"> + <FCInt Name="gridTransparency" Value="0"/> + <FCUInt Name="constructioncolor" Value="746455039"/> + <FCUInt Name="gridColor" Value="1230002175"/> + <FCUInt Name="snapcolor" Value="4289331455"/> + </FCParamGroup> + <FCParamGroup Name="Measure"> + <FCParamGroup Name="Appearance"> + <FCUInt Name="DefaultLineColor" Value="4177132287"/> + <FCUInt Name="DefaultTextBackgroundColor" Value="556083711"/> + <FCUInt Name="DefaultTextColor" Value="4177132287"/> + </FCParamGroup> + </FCParamGroup> + <FCParamGroup Name="Spreadsheet"> + <FCText Name="AliasedCellBackgroundColor">#1864ab</FCText> + <FCText Name="NegativeNumberColor">#f8f9fa</FCText> + <FCText Name="PositiveNumberColor">#f8f9fa</FCText> + <FCText Name="TextColor">#f8f9fa</FCText> + </FCParamGroup> + <FCParamGroup Name="TechDraw"> + <FCParamGroup Name="Colors"> + <FCUInt Name="Background" Value="556083711"/> + <FCUInt Name="CutSurfaceColor" Value="3470056191"/> + <FCUInt Name="FaceColor" Value="4059297279"/> + <FCUInt Name="GeomHatch" Value="255"/> + <FCUInt Name="Hatch" Value="255"/> + <FCUInt Name="HiddenColor" Value="255"/> + <FCUInt Name="NormalColor" Value="255"/> + <FCUInt Name="PreSelectColor" Value="4240710143"/> + <FCUInt Name="SelectColor" Value="1958221567"/> + </FCParamGroup> + <FCParamGroup Name="Decorations"> + <FCUInt Name="CenterColor" Value="255"/> + <FCUInt Name="HighlightColor" Value="255"/> + <FCUInt Name="SectionColor" Value="255"/> + <FCUInt Name="VertexColor" Value="255"/> + </FCParamGroup> + </FCParamGroup> + <FCParamGroup Name="Material"> + <FCParamGroup Name="Resources"> + <FCParamGroup Name="Modules"/> + </FCParamGroup> + </FCParamGroup> + <FCParamGroup Name="Path"/> + </FCParamGroup> + <FCParamGroup Name="HighDPI"/> + <FCParamGroup Name="OpenGL"/> + <FCParamGroup Name="Bitmaps"> + <FCParamGroup Name="Theme"/> + </FCParamGroup> + <FCParamGroup Name="DockWindows"> + <FCParamGroup Name="ComboView"/> + <FCParamGroup Name="TreeView"/> + <FCParamGroup Name="PropertyView"/> + <FCParamGroup Name="DAGView"/> + <FCParamGroup Name="TaskView"/> + <FCParamGroup Name="TaskWatcher"> + <FCBool Name="Enabled" Value="0"/> + </FCParamGroup> + </FCParamGroup> + <FCParamGroup Name="MainWindow"> + <FCBool Name="Maximized" Value="0"/> + <FCBool Name="StatusBar" Value="1"/> + <FCText Name="MainWindowState">AAAA/wAAAAD9AAAAAgAAAAAAAAEEAAACd/wCAAAAAvsAAAAcAFMAZQBsAGUAYwB0AGkAbwBuACAAdgBpAGUAdwAAAAAA/////wAAAHEA/////AAAAIIAAAJ3AAAAwwEAABr6AAAAAQIAAAAC+wAAAAoATQBvAGQAZQBsAQAAAAD/////AAAAqAD////7AAAACgBUAGEAcwBrAHMBAAAAAP////8AAABIAP///wAAAAMAAAT+AAAA0PwBAAAAAfwAAAAAAAAE/gAAAD0A////+gAAAAABAAAAAvsAAAAWAFIAZQBwAG8AcgB0ACAAdgBpAGUAdwEAAAAA/////wAAAD0A////+wAAABwAUAB5AHQAaABvAG4AIABjAG8AbgBzAG8AbABlAAAAAAD/////AAAAPQD///8AAAP0AAACdwAAAAQAAAAEAAAACAAAAAj8AAAAAwAAAAIAAAAGAAAACABGAGkAbABlAQAAAAD/////AAAAAAAAAAAAAAAIAEUAZABpAHQBAAAAbf////8AAAAAAAAAAAAAABIAQwBsAGkAcABiAG8AYQByAGQAAAAAAP////8AAAAAAAAAAAAAABIAVwBvAHIAawBiAGUAbgBjAGgBAAAA4/////8AAAAAAAAAAAAAAAoATQBhAGMAcgBvAAAAAAD/////AAAAAAAAAAAAAAAIAFYAaQBlAHcBAAABkf////8AAAAAAAAAAAAAAAIAAAAEAAAAIABJAG4AZABpAHYAaQBkAHUAYQBsACAAdgBpAGUAdwBzAAAAAAD/////AAAAAAAAAAAAAAASAFMAdAByAHUAYwB0AHUAcgBlAQAAAAD/////AAAAAAAAAAAAAAAIAEgAZQBsAHABAAAAmv////8AAAAAAAAAAAAAACQAUABhAHIAdAAgAEQAZQBzAGkAZwBuACAASABlAGwAcABlAHIBAAAAx/////8AAAAAAAAAAAAAAAIAAAADAAAAKABQAGEAcgB0ACAARABlAHMAaQBnAG4AIABNAG8AZABlAGwAaQBuAGcBAAAAAP////8AAAAAAAAAAAAAACYAUABhAHIAdAAgAEQAZQBzAGkAZwBuACAARAByAGUAcwBzAHUAcAEAAAH5/////wAAAAAAAAAAAAAAKABQAGEAcgB0ACAARABlAHMAaQBnAG4AIABQAGEAdAB0AGUAcgBuAHMBAAAChv////8AAAAAAAAAAA==</FCText> + <FCText Name="Geometry">-1 15 1278 1006</FCText> + <FCText Name="OverlayActiveStyleSheet">Dark Theme + Dark Background.qss</FCText> + <FCText Name="QtStyle">Fusion</FCText> + <FCText Name="StyleSheet">FreeCAD Dark.qss</FCText> + <FCText Name="Theme">FreeCAD Dark</FCText> + <FCBool Name="WindowStateRestored" Value="1"/> + </FCParamGroup> + <FCParamGroup Name="Themes"> + <FCUInt Name="ThemeAccentColor1" Value="1252392959"/> + <FCUInt Name="ThemeAccentColor2" Value="3027763199"/> + <FCUInt Name="ThemeAccentColor3" Value="404564735"/> + </FCParamGroup> + <FCParamGroup Name="View"> + <FCText Name="GestureRollFwdCommand">Std_SelForward</FCText> + <FCText Name="GestureRollBackCommand">Std_SelBack</FCText> + <FCText Name="NavigationStyle">Gui::CADNavigationStyle</FCText> + <FCBool Name="Gradient" Value="0"/> + <FCBool Name="RadialGradient" Value="0"/> + <FCBool Name="Simple" Value="1"/> + <FCBool Name="UseBackgroundColorMid" Value="0"/> + <FCUInt Name="AnnotationTextColor" Value="2914369023"/> + <FCUInt Name="BackgroundColor" Value="993737727"/> + <FCUInt Name="BackgroundColor2" Value="1482187775"/> + <FCUInt Name="BackgroundColor3" Value="741103615"/> + <FCUInt Name="BackgroundColor4" Value="623200767"/> + <FCUInt Name="BoundingBoxColor" Value="4059297279"/> + <FCUInt Name="CbLabelColor" Value="2914369023"/> + <FCUInt Name="ConstrainedDimColor" Value="4199699199"/> + <FCUInt Name="ConstrainedIcoColor" Value="4199699199"/> + <FCUInt Name="ConstructionColor" Value="865792255"/> + <FCUInt Name="CreateLineColor" Value="4059297279"/> + <FCUInt Name="CursorCrosshairColor" Value="4059297279"/> + <FCUInt Name="CursorTextColor" Value="2914369023"/> + <FCUInt Name="DeactivatedConstrDimColor" Value="2257491711"/> + <FCUInt Name="DefaultShapeColor" Value="1920565503"/> + <FCUInt Name="EditedEdgeColor" Value="4059297279"/> + <FCUInt Name="EditedVertexColor" Value="4199699199"/> + <FCUInt Name="ExprBasedConstrDimColor" Value="4252898559"/> + <FCUInt Name="ExternalColor" Value="3428706559"/> + <FCUInt Name="FullyConstrainedColor" Value="1958221567"/> + <FCUInt Name="FullyConstraintConstructionElementColor" Value="2462511359"/> + <FCUInt Name="FullyConstraintConstructionPointColor" Value="4205291519"/> + <FCUInt Name="FullyConstraintElementColor" Value="11173887"/> + <FCUInt Name="FullyConstraintInternalAlignmentColor" Value="2462511359"/> + <FCUInt Name="HighlightColor" Value="611232767"/> + <FCUInt Name="InternalAlignedGeoColor" Value="865792255"/> + <FCUInt Name="InvalidSketchColor" Value="4252898559"/> + <FCUInt Name="NonDrivingConstrDimColor" Value="865792255"/> + <FCUInt Name="SelectionColor" Value="899696639"/> + <FCUInt Name="SketchEdgeColor" Value="4059297279"/> + <FCUInt Name="SketchVertexColor" Value="4059297279"/> + </FCParamGroup> + <FCParamGroup Name="Document"> + <FCBool Name="SaveThumbnail" Value="1"/> + </FCParamGroup> + <FCParamGroup Name="OutputWindow"> + <FCBool Name="RedirectPythonOutput" Value="1"/> + <FCBool Name="RedirectPythonErrors" Value="1"/> + <FCUInt Name="colorError" Value="4278190335"/> + <FCUInt Name="colorLogging" Value="1437270015"/> + <FCUInt Name="colorText" Value="3570717951"/> + <FCUInt Name="colorWarning" Value="4252787455"/> + </FCParamGroup> + <FCParamGroup Name="NotificationArea"/> + <FCParamGroup Name="Editor"> + <FCUInt Name="Block comment" Value="3465639936"/> + <FCUInt Name="Bookmark" Value="16776960"/> + <FCUInt Name="Breakpoint" Value="4278190080"/> + <FCUInt Name="Character" Value="4278190080"/> + <FCUInt Name="Class name" Value="1321840640"/> + <FCUInt Name="Comment" Value="1788433664"/> + <FCUInt Name="Current line highlight" Value="524114944"/> + <FCUInt Name="Define name" Value="3705448960"/> + <FCUInt Name="Keyword" Value="1453118976"/> + <FCUInt Name="Number" Value="3050219520"/> + <FCUInt Name="Operator" Value="3570717696"/> + <FCUInt Name="Python error" Value="4252787200"/> + <FCUInt Name="Python output" Value="2863300352"/> + <FCUInt Name="String" Value="3465639936"/> + <FCUInt Name="Text" Value="3570717696"/> + </FCParamGroup> + <FCParamGroup Name="Shortcut"> + <FCParamGroup Name="Priorities"/> + <FCParamGroup Name="Settings"/> + </FCParamGroup> + <FCParamGroup Name="PythonConsole"/> + <FCParamGroup Name="TreeView"> + <FCInt Name="ColumnSize1" Value="260"/> + <FCInt Name="ColumnSize2" Value="0"/> + <FCInt Name="ColumnSize3" Value="0"/> + <FCInt Name="FontSize" Value="11"/> + <FCInt Name="ItemBackgroundPadding" Value="11"/> + <FCUInt Name="TreeActiveColor" Value="556083711"/> + <FCUInt Name="TreeEditColor" Value="1434171135"/> + </FCParamGroup> + <FCParamGroup Name="Expression"/> + <FCParamGroup Name="PropertyView"/> + <FCParamGroup Name="Workbenches"> + <FCText Name="Ordered"/> + <FCText Name="Disabled"/> + </FCParamGroup> + <FCParamGroup Name="Commands"/> + <FCParamGroup Name="AppImage"/> + <FCParamGroup Name="RecentFiles"/> + <FCParamGroup Name="RecentMacros"/> + <FCParamGroup Name="CacheDirectory"/> + <FCParamGroup Name="NaviCube"/> + <FCParamGroup Name="Selection"> + <FCBool Name="AutoShowSelectionView" Value="0"/> + </FCParamGroup> + </FCParamGroup> + <FCParamGroup Name="Macro"> + <FCParamGroup Name="Macros"/> + </FCParamGroup> + <FCParamGroup Name="MainWindow"> + <FCParamGroup Name="DockWindows"> + <FCParamGroup Name="OverlayLeft"> + <FCInt Name="Width" Value="90"/> + <FCInt Name="Height" Value="601"/> + </FCParamGroup> + <FCParamGroup Name="OverlayRight"> + <FCInt Name="Width" Value="90"/> + <FCInt Name="Height" Value="459"/> + </FCParamGroup> + <FCParamGroup Name="OverlayTop"> + <FCInt Name="Width" Value="870"/> + <FCInt Name="Height" Value="90"/> + </FCParamGroup> + <FCParamGroup Name="OverlayBottom"> + <FCInt Name="Width" Value="1002"/> + <FCInt Name="Height" Value="90"/> + </FCParamGroup> + <FCBool Name="Std_ReportView" Value="1"/> + <FCBool Name="Std_SelectionView" Value="0"/> + <FCBool Name="Std_ComboView" Value="1"/> + <FCBool Name="Std_TaskView" Value="1"/> + <FCBool Name="Std_PythonView" Value="0"/> + </FCParamGroup> + <FCParamGroup Name="StatusBar"/> + <FCParamGroup Name="MenuBarRight"/> + <FCParamGroup Name="MenuBarLeft"/> + <FCParamGroup Name="Toolbars"> + <FCBool Name="File" Value="1"/> + <FCBool Name="Edit" Value="1"/> + <FCBool Name="Clipboard" Value="0"/> + <FCBool Name="Workbench" Value="1"/> + <FCBool Name="Macro" Value="0"/> + <FCBool Name="View" Value="1"/> + <FCBool Name="Individual views" Value="0"/> + <FCBool Name="Structure" Value="1"/> + <FCBool Name="Help" Value="1"/> + <FCBool Name="Part Design Helper" Value="1"/> + <FCBool Name="Part Design Modeling" Value="1"/> + <FCBool Name="Part Design Dressup" Value="1"/> + <FCBool Name="Part Design Patterns" Value="1"/> + <FCBool Name="Sketcher" Value="1"/> + <FCBool Name="Sketcher edit mode" Value="1"/> + <FCBool Name="Sketcher geometries" Value="1"/> + <FCBool Name="Sketcher constraints" Value="1"/> + <FCBool Name="Sketcher tools" Value="1"/> + <FCBool Name="Sketcher B-spline tools" Value="1"/> + <FCBool Name="Sketcher visual" Value="1"/> + <FCBool Name="Sketcher edit tools" Value="1"/> + </FCParamGroup> + </FCParamGroup> + <FCParamGroup Name="Workbench"/> + </FCParamGroup> + <FCParamGroup Name="Tux"> + <FCParamGroup Name="PersistentToolbars"> + <FCParamGroup Name="User"> + <FCParamGroup Name="PartDesignWorkbench"/> + <FCParamGroup Name="SketcherWorkbench"/> + </FCParamGroup> + </FCParamGroup> + <FCParamGroup Name="NavigationIndicator"> + <FCBool Name="Compact" Value="0"/> + <FCBool Name="Tooltip" Value="1"/> + </FCParamGroup> + </FCParamGroup> + </FCParamGroup> + +</FCParameters> diff --git a/.config/bash/.bashrc b/.config/bash/.bashrc @@ -2,7 +2,6 @@ alias cn='cd $HOME/.config/nvim/' alias ct='cd $HOME/.config/tmux/' -alias cm='cd /Users/linus/school/mathematik/müprü/' ########## SETUP ########## @@ -40,6 +39,7 @@ alias gclgh='git clone https://github.com/' alias ga='git add' alias gc='git commit -m' alias gp='git push' +alias gl="git --no-pager log --oneline --decorate --graph --parents" alias ghoco="nvim $HOME/.config/ghostty/config" @@ -53,7 +53,6 @@ alias n='nvim' alias v='vim' alias y='yazi' alias ne='neofetch' -alias t="taskell" ########## PATH ########## @@ -61,6 +60,8 @@ export GPG_TTY=$(tty) export PATH="$PATH:/opt/homebrew/bin" export PATH="$HOME/.local/bin:$PATH" export PATH="$HOME/.cargo/bin:$PATH" +export PATH="$HOME/code/scripts/menu:$PATH" +export PATH="$HOME/code/scripts:$PATH" export PLAN9=/Users/linus/.sources/plan9port export PATH=$PATH:$PLAN9/bin export XDG_CONFIG_HOME="$HOME/.config" @@ -68,3 +69,4 @@ export MANPAGER='nvim +Man!' ########## PS1 ########## +export EDITOR=vim diff --git a/.config/btop/btop.conf b/.config/btop/btop.conf @@ -1,4 +1,4 @@ -#? Config file for btop v. 1.4.4 +#? Config file for btop v. 1.4.3 #* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. #* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" @@ -47,14 +47,14 @@ graph_symbol_net = "default" graph_symbol_proc = "default" #* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. -shown_boxes = "cpu proc net" +shown_boxes = "cpu mem net proc" #* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. update_ms = 2000 #* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", #* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. -proc_sorting = "pid" +proc_sorting = "cpu lazy" #* Reverse sorting order, True or False. proc_reversed = False @@ -144,7 +144,7 @@ background_update = True custom_cpu_name = "" #* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". -#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user" +#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". disks_filter = "" #* Show graphs instead of meters for memory values. diff --git a/.config/dconf/user b/.config/dconf/user Binary files differ. diff --git a/.config/gh/config.yml b/.config/gh/config.yml @@ -1,19 +0,0 @@ -# The current version of the config schema -version: 1 -# What protocol to use when performing git operations. Supported values: ssh, https -git_protocol: https -# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment. -editor: -# When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled -prompt: enabled -# Preference for editor-based interactive prompting. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled -prefer_editor_prompt: disabled -# A pager program to send command output to, e.g. "less". If blank, will refer to environment. Set the value to "cat" to disable the pager. -pager: -# Aliases allow you to create nicknames for gh commands -aliases: - co: pr checkout -# The path to a unix socket through which send HTTP connections. If blank, HTTP traffic will be handled by net/http.DefaultTransport. -http_unix_socket: -# What web browser gh should use when opening URLs. If blank, will refer to environment. -browser: diff --git a/.config/gh/hosts.yml b/.config/gh/hosts.yml @@ -1,5 +0,0 @@ -github.com: - git_protocol: https - users: - KoenigLinus: - user: KoenigLinus diff --git a/.config/ghostty/config b/.config/ghostty/config @@ -1,17 +1,18 @@ -# Config generated by Ghostty Config - cursor-style = block cursor-style-blink = false theme = "3024 Night" +background = #000000 macos-titlebar-style = transparent macos-titlebar-proxy-icon = hidden title = " " - +window-decoration = none window-padding-x = 0 window-padding-y = 0 -# background-blur = 5 -# background-opacity = 0.8 + +#background-opacity = 0.70 +#background-blur = 05 + diff --git a/.config/go/telemetry/local/asm@go1.24.4-go1.24.4-linux-amd64-2025-07-02.v1.count b/.config/go/telemetry/local/asm@go1.24.4-go1.24.4-linux-amd64-2025-07-02.v1.count Binary files differ. diff --git a/.config/go/telemetry/local/cgo@go1.24.4-go1.24.4-linux-amd64-2025-07-02.v1.count b/.config/go/telemetry/local/cgo@go1.24.4-go1.24.4-linux-amd64-2025-07-02.v1.count Binary files differ. diff --git a/.config/go/telemetry/local/compile@go1.24.4-go1.24.4-linux-amd64-2025-07-02.v1.count b/.config/go/telemetry/local/compile@go1.24.4-go1.24.4-linux-amd64-2025-07-02.v1.count Binary files differ. diff --git a/.config/go/telemetry/local/go@go1.24.4-go1.24.4-linux-amd64-2025-07-02.v1.count b/.config/go/telemetry/local/go@go1.24.4-go1.24.4-linux-amd64-2025-07-02.v1.count Binary files differ. diff --git a/.config/go/telemetry/local/link@go1.24.4-go1.24.4-linux-amd64-2025-07-02.v1.count b/.config/go/telemetry/local/link@go1.24.4-go1.24.4-linux-amd64-2025-07-02.v1.count Binary files differ. diff --git a/.config/go/telemetry/local/upload.token b/.config/go/telemetry/local/upload.token diff --git a/.config/go/telemetry/local/weekends b/.config/go/telemetry/local/weekends @@ -0,0 +1 @@ +5 diff --git a/.config/nitrogen/bg-saved.cfg b/.config/nitrogen/bg-saved.cfg @@ -0,0 +1,4 @@ +[xin_-1] +file=/home/linus/dotfiles/wallpaper/swiss-mountain.jpg +mode=0 +bgcolor=#000000 diff --git a/.config/nvim/lua/linus/extensions/agenda.chat.lua b/.config/nvim/lua/linus/extensions/agenda.chat.lua @@ -1,48 +0,0 @@ --- a chatGPT generated agenda extension - -local telescope_ok, telescope = pcall(require, "telescope") -if not telescope_ok then - vim.notify("telescope.nvim not available", vim.log.levels.ERROR) - return -end - -local pickers, finders, conf = require(telescope.pickers), require(telescope.finders), require(telescope.config).values -local Path, scandir = require(plenary.path), require(plenary.scandir) - --- yyyy-mm-dd converter to time -local function to_secs(date) - local y, m, d = date:match "(%d+)%-(%d+)%-(%d+)" - return os.time {year = y, month = m, day = d, hour = 0} -end - --- filter yaml - -local function parse_yaml(path) - local meta, in_yaml = {}, false - for _, line in ipairs(Path:new(path):head(40)) do - if line == "---" then - if in_yaml then break end - in_yaml = true - elseif in_yaml then - local k, v = line:match "^(%w+):%s*(.+)$" - if k and v then meta[k] = vim.trim(v) end - end - end - return meta -end - -local function include(meta, today) - local scheduled = meta.scheduled and to_secs(meta.scheduled) - local deadline = meta.deadline and to_secs(meta.deadline) - if not scheduled then return false end - - local tomorrow = today + 24 * 60 * 60 - - if scheduled == tomorrow then return true end - - if scheduled and deadline - -end - - - diff --git a/.config/nvim/lua/linus/plugins/telescope.lua b/.config/nvim/lua/linus/plugins/telescope.lua @@ -1,6 +1,6 @@ -- $HOME/.config/nvim/lua/linus/plugins/telescope.lua return { - { + "nvim-telescope/telescope.nvim", version = "*", cmd = "Telescope", @@ -9,8 +9,8 @@ return { defaults = { mappings = { i = { - ["<C-j>"] = require("telescope.actions").move_selection_next, - ["<C-k>"] = require("telescope.actions").move_selection_previous, + -- ["<C-j>"] = require("telescope.actions").move_selection_next, + -- ["<C-k>"] = require("telescope.actions").move_selection_previous, }, }, }, diff --git a/.config/nvim/lua/linus/video.lua b/.config/nvim/lua/linus/video.lua @@ -1,112 +1,112 @@ -local function aesthetic_record() - local current_file = vim.fn.expand("%:t") - local time = os.date("%H-%M") - local output_filename = string.format('%s(%s).mp4', current_file, time) - local full_path = vim.fn.expand("~/Movies/") .. output_filename - - local cmd = string.format( - [[ffmpeg -y -f avfoundation -r 30 -i "3:none" -filter:v "crop=1920:1080:(in_w-1920)/2:(in_h-1080)/2,unsharp=5:5:1.0:5:5:0.0" -preset ultrafast "%s"]], - full_path - ) - - print("Recording to: " .. full_path) - - local job_id = vim.fn.jobstart(cmd, { detach = true }) - vim.g.recording_job_id = job_id -end - -local function aesthetic_screenshot() - local current_file = vim.fn.expand("%:t") - local time = os.date("%H-%M") - local output_filename = string.format('%s(%s).png', current_file, time) - local full_path = vim.fn.expand("~/Pictures/") .. output_filename - - local cmd = string.format( - [[ffmpeg -y -f avfoundation -frames:v 1 -i "3" -filter:v "crop=1920:1080:(in_w-1920)/2:(in_h-1080)/2,unsharp=5:5:1.0:5:5:0.0" "%s"]], - full_path - ) - - - local result = vim.fn.system(cmd) - local exit_code = vim.v.shell_error - - if exit_code ~= 0 then - vim.notify("Failed to take screenshot:\n" .. result, vim.log.levels.ERROR) - else - vim.notify("Screenshot saved to: " .. full_path, vim.log.levels.INFO) - end -end - - - -local function aesthetic_record_hq() - local current_file = vim.fn.expand("%:t") - local time = os.date("%H-%M") - local output_filename = string.format('%s(%s)_hq.mp4', current_file, time) - local full_path = vim.fn.expand("~/Movies/") .. output_filename - - local cmd = string.format( - [[ffmpeg -y -f avfoundation -r 60 -i "3:none" -filter:v "crop=1920:1080:(in_w-1920)/2:(in_h-1080)/2,unsharp=7:7:1.0:7:7:0.0" -crf 18 -preset veryslow "%s"]], - full_path - ) - - print("High quality recording to: " .. full_path) - - local job_id = vim.fn.jobstart(cmd, { detach = true }) - vim.g.recording_job_id = job_id -end - -local function stop_record() - if vim.g.recording_job_id then - vim.fn.jobstop(vim.g.recording_job_id) - print("Recording stopped.") - vim.g.recording_job_id = nil - else - print("No active recording!") - end -end - -vim.api.nvim_create_user_command("Screenshot", aesthetic_screenshot, {}) -vim.api.nvim_create_user_command("RecordStop", stop_record, {}) -vim.api.nvim_create_user_command("Record", aesthetic_record, {}) -vim.api.nvim_create_user_command("RecordHQ", aesthetic_record_hq, {}) - - -local pickers = require "telescope.pickers" -local finders = require "telescope.finders" -local conf = require("telescope.config").values -local actions = require "telescope.actions" -local action_state = require "telescope.actions.state" - - -local recording_actions = { - "Screenshot", - "RecordStop", - "Record", - "RecordHQ", -} - -local function record_picker() - pickers.new({}, { - prompt_title = "Select Recording Action", - finder = finders.new_table { - results = recording_actions, - }, - sorter = conf.generic_sorter({}), - attach_mappings = function(prompt_bufnr, map) - actions.select_default:replace(function() - actions.close(prompt_bufnr) - local selection = action_state.get_selected_entry() - local cmd = selection[1] - if cmd then - vim.cmd(cmd) - else - vim.notify("No selection made!", vim.log.levels.WARN) - end - end) - return true - end, - }):find() -end - -vim.api.nvim_create_user_command("RecordPicker", record_picker, {}) +-- local function aesthetic_record() +-- local current_file = vim.fn.expand("%:t") +-- local time = os.date("%H-%M") +-- local output_filename = string.format('%s(%s).mp4', current_file, time) +-- local full_path = vim.fn.expand("~/Movies/") .. output_filename +-- +-- local cmd = string.format( +-- [[ffmpeg -y -f avfoundation -r 30 -i "3:none" -filter:v "crop=1920:1080:(in_w-1920)/2:(in_h-1080)/2,unsharp=5:5:1.0:5:5:0.0" -preset ultrafast "%s"]], +-- full_path +-- ) +-- +-- print("Recording to: " .. full_path) +-- +-- local job_id = vim.fn.jobstart(cmd, { detach = true }) +-- vim.g.recording_job_id = job_id +-- end +-- +-- local function aesthetic_screenshot() +-- local current_file = vim.fn.expand("%:t") +-- local time = os.date("%H-%M") +-- local output_filename = string.format('%s(%s).png', current_file, time) +-- local full_path = vim.fn.expand("~/Pictures/") .. output_filename +-- +-- local cmd = string.format( +-- [[ffmpeg -y -f avfoundation -frames:v 1 -i "3" -filter:v "crop=1920:1080:(in_w-1920)/2:(in_h-1080)/2,unsharp=5:5:1.0:5:5:0.0" "%s"]], +-- full_path +-- ) +-- +-- +-- local result = vim.fn.system(cmd) +-- local exit_code = vim.v.shell_error +-- +-- if exit_code ~= 0 then +-- vim.notify("Failed to take screenshot:\n" .. result, vim.log.levels.ERROR) +-- else +-- vim.notify("Screenshot saved to: " .. full_path, vim.log.levels.INFO) +-- end +-- end +-- +-- +-- +-- local function aesthetic_record_hq() +-- local current_file = vim.fn.expand("%:t") +-- local time = os.date("%H-%M") +-- local output_filename = string.format('%s(%s)_hq.mp4', current_file, time) +-- local full_path = vim.fn.expand("~/Movies/") .. output_filename +-- +-- local cmd = string.format( +-- [[ffmpeg -y -f avfoundation -r 60 -i "3:none" -filter:v "crop=1920:1080:(in_w-1920)/2:(in_h-1080)/2,unsharp=7:7:1.0:7:7:0.0" -crf 18 -preset veryslow "%s"]], +-- full_path +-- ) +-- +-- print("High quality recording to: " .. full_path) +-- +-- local job_id = vim.fn.jobstart(cmd, { detach = true }) +-- vim.g.recording_job_id = job_id +-- end +-- +-- local function stop_record() +-- if vim.g.recording_job_id then +-- vim.fn.jobstop(vim.g.recording_job_id) +-- print("Recording stopped.") +-- vim.g.recording_job_id = nil +-- else +-- print("No active recording!") +-- end +-- end +-- +-- vim.api.nvim_create_user_command("Screenshot", aesthetic_screenshot, {}) +-- vim.api.nvim_create_user_command("RecordStop", stop_record, {}) +-- vim.api.nvim_create_user_command("Record", aesthetic_record, {}) +-- vim.api.nvim_create_user_command("RecordHQ", aesthetic_record_hq, {}) +-- +-- +-- local pickers = require "telescope.pickers" +-- local finders = require "telescope.finders" +-- local conf = require("telescope.config").values +-- local actions = require "telescope.actions" +-- local action_state = require "telescope.actions.state" +-- +-- +-- local recording_actions = { +-- "Screenshot", +-- "RecordStop", +-- "Record", +-- "RecordHQ", +-- } +-- +-- local function record_picker() +-- pickers.new({}, { +-- prompt_title = "Select Recording Action", +-- finder = finders.new_table { +-- results = recording_actions, +-- }, +-- sorter = conf.generic_sorter({}), +-- attach_mappings = function(prompt_bufnr, map) +-- actions.select_default:replace(function() +-- actions.close(prompt_bufnr) +-- local selection = action_state.get_selected_entry() +-- local cmd = selection[1] +-- if cmd then +-- vim.cmd(cmd) +-- else +-- vim.notify("No selection made!", vim.log.levels.WARN) +-- end +-- end) +-- return true +-- end, +-- }):find() +-- end +-- +-- vim.api.nvim_create_user_command("RecordPicker", record_picker, {}) diff --git a/.config/nvim2/LICENSE b/.config/nvim2/LICENSE @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/.config/nvim2/README.md b/.config/nvim2/README.md @@ -1,4 +0,0 @@ -# 💤 LazyVim - -A starter template for [LazyVim](https://github.com/LazyVim/LazyVim). -Refer to the [documentation](https://lazyvim.github.io/installation) to get started. diff --git a/.config/nvim2/init.lua b/.config/nvim2/init.lua @@ -1,18 +0,0 @@ -require("config.lazy") --- local my_theme = require("linus-theme") --- my_theme.setup() - -------------------------------------------------------------- - -vim.o.encoding = "utf-8" -vim.o.fileencoding = "utf-8" -vim.opt.spell = true -vim.opt.spelllang = { "en", "de" } - -vim.opt.tabstop = 4 -vim.opt.shiftwidth = 4 -vim.opt.expandtab = true - -------------------------------------------------------------- - -vim.opt.termguicolors = true diff --git a/.config/nvim2/lazy-lock.json b/.config/nvim2/lazy-lock.json @@ -1,52 +0,0 @@ -{ - "LazyVim": { "branch": "main", "commit": "3f034d0a7f58031123300309f2efd3bb0356ee21" }, - "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, - "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, - "catppuccin": { "branch": "main", "commit": "1bf070129c0b6f77cc23f6a2212dcdc868308c52" }, - "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" }, - "cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" }, - "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, - "conform.nvim": { "branch": "master", "commit": "374aaf384e2e841607b8e2fe63fa3ad01d111c91" }, - "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "fzf-lua": { "branch": "main", "commit": "b45881a2043d96506ba628f3bc65a4594b179c4e" }, - "gitsigns.nvim": { "branch": "main", "commit": "43b0c856ae5f32a195d83f4a27fe21d63e6c966c" }, - "grug-far.nvim": { "branch": "main", "commit": "78c8d27c6f3300bfa92bb535236732d8e9bcb614" }, - "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, - "lualine.nvim": { "branch": "master", "commit": "f4f791f67e70d378a754d02da068231d2352e5bc" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "d39a75bbce4b8aad5d627191ea915179c77c100f" }, - "mason.nvim": { "branch": "main", "commit": "7c7318e8bae7e3536ef6b9e86b9e38e74f2e125e" }, - "mini.ai": { "branch": "main", "commit": "e139eb1101beb0250fea322f8c07a42f0f175688" }, - "mini.comment": { "branch": "main", "commit": "fb867a9246f9b892cf51a8c84a3f8479cdf1558c" }, - "mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" }, - "mini.nvim": { "branch": "main", "commit": "ed581c333798e08a68fbe1aecfdf95d3c1432d3f" }, - "mini.pairs": { "branch": "main", "commit": "69864a2efb36c030877421634487fd90db1e4298" }, - "mini.starter": { "branch": "main", "commit": "d8038690eadf203a40863c3a9423df880a901d39" }, - "neo-tree.nvim": { "branch": "main", "commit": "73d63376352ac731379892e27ac7b3d9449148e3" }, - "neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" }, - "no-neck-pain.nvim": { "branch": "main", "commit": "53c8ef094c86e8897be2dcce0259d35914f6cdc0" }, - "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, - "nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" }, - "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, - "nvim-lint": { "branch": "master", "commit": "9dfb77ef6c5092a19502883c02dc5a02ec648729" }, - "nvim-lspconfig": { "branch": "master", "commit": "61e5109c8cf24807e4ae29813a3a82b31821dd45" }, - "nvim-treesitter": { "branch": "master", "commit": "28d480e0624b259095e56f353ec911f9f2a0f404" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "0e3be38005e9673d044e994b1e4b123adb040179" }, - "nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" }, - "nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" }, - "nvim-web-devicons": { "branch": "master", "commit": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c" }, - "persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" }, - "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, - "render-markdown.nvim": { "branch": "main", "commit": "dfc1299d9f32b53b34b7ac6c3a7553b5fd29977f" }, - "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, - "substitute.nvim": { "branch": "main", "commit": "9db749a880e3dd3b0eb57f698aa8f1e1630e1f25" }, - "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, - "telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, - "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, - "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, - "transparent.nvim": { "branch": "main", "commit": "8a2749a2fa74f97fe6557f61b89ac7fd873f3c21" }, - "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" }, - "ts-comments.nvim": { "branch": "main", "commit": "1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c" }, - "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } -} diff --git a/.config/nvim2/lazyvim.json b/.config/nvim2/lazyvim.json @@ -1,10 +0,0 @@ -{ - "extras": [ - - ], - "install_version": 7, - "news": { - "NEWS.md": "10960" - }, - "version": 8 -} -\ No newline at end of file diff --git a/.config/nvim2/lua/.DS_Store b/.config/nvim2/lua/.DS_Store Binary files differ. diff --git a/.config/nvim2/lua/config/autocmds.lua b/.config/nvim2/lua/config/autocmds.lua @@ -1,3 +0,0 @@ --- Autocmds are automatically loaded on the VeryLazy event --- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua --- Add any additional autocmds here diff --git a/.config/nvim2/lua/config/highlite.lua b/.config/nvim2/lua/config/highlite.lua @@ -1,9 +0,0 @@ --- -- ~/.config/nvim/lua/config/highlights.lua --- return { --- -- Beispiel: Tree-sitter Textfarben dimmen --- ["@text"] = { fg = "#000000" }, -- normaler Text --- ["@text.strong"] = { fg = "#000000", bold = true }, --- ["@text.emphasis"] = { fg = "#000000", italic = true }, --- ["@text.literal"] = { fg = "#444444" }, -- inline code --- ["@comment"] = { fg = "#555555", italic = true }, -- Kommentare dunkler machen --- } diff --git a/.config/nvim2/lua/config/keymaps.lua b/.config/nvim2/lua/config/keymaps.lua @@ -1,12 +0,0 @@ --- Keymaps are automatically loaded on the VeryLazy event --- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua --- Add any additional keymaps here --- - --- NoNeckPain --- - -local map = LazyVim.safe_keymap_set - -map("n", "<leader>z", "<cmd>NoNeckPain<cr>", { desc = "NoNeckPain: zen" }) -map("n", "<leader>h", "<cmd>TransparentToggle<cr>", { desc = "Transparency: toggle" }) diff --git a/.config/nvim2/lua/config/lazy.lua b/.config/nvim2/lua/config/lazy.lua @@ -1,53 +0,0 @@ -local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" -if not (vim.uv or vim.loop).fs_stat(lazypath) then - local lazyrepo = "https://github.com/folke/lazy.nvim.git" - local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) - if vim.v.shell_error ~= 0 then - vim.api.nvim_echo({ - { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, - { out, "WarningMsg" }, - { "\nPress any key to exit..." }, - }, true, {}) - vim.fn.getchar() - os.exit(1) - end -end -vim.opt.rtp:prepend(lazypath) - -require("lazy").setup({ - spec = { - -- add LazyVim and import its plugins - { "LazyVim/LazyVim", import = "lazyvim.plugins" }, - -- import/override with your plugins - { import = "plugins" }, - }, - defaults = { - -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup. - -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default. - lazy = false, - -- It's recommended to leave version=false for now, since a lot the plugin that support versioning, - -- have outdated releases, which may break your Neovim install. - version = false, -- always use the latest git commit - -- version = "*", -- try installing the latest stable version for plugins that support semver - }, - -- install = { colorscheme = { "tokyonight", "habamax" } }, - checker = { - enabled = true, -- check for plugin updates periodically - notify = false, -- notify on update - }, -- automatically check for plugin updates - performance = { - rtp = { - -- disable some rtp plugins - disabled_plugins = { - "gzip", - -- "matchit", - -- "matchparen", - -- "netrwPlugin", - "tarPlugin", - "tohtml", - "tutor", - "zipPlugin", - }, - }, - }, -}) diff --git a/.config/nvim2/lua/config/options.lua b/.config/nvim2/lua/config/options.lua @@ -1,3 +0,0 @@ --- Options are automatically loaded before lazy.nvim startup --- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua --- Add any additional options here diff --git a/.config/nvim2/lua/plugins/disable.lua b/.config/nvim2/lua/plugins/disable.lua @@ -1,4 +0,0 @@ -return { - -- disable trouble - { "folke/flash.nvim", enabled = false }, -} diff --git a/.config/nvim2/lua/plugins/example.lua b/.config/nvim2/lua/plugins/example.lua @@ -1,198 +0,0 @@ --- since this is just an example spec, don't actually load anything here and return an empty spec --- stylua: ignore -if true then return {} end - --- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim --- --- In your plugin files, you can: --- * add extra plugins --- * disable/enabled LazyVim plugins --- * override the configuration of LazyVim plugins -return { - -- add gruvbox - { "ellisonleao/gruvbox.nvim" }, - - -- Configure LazyVim to load gruvbox - { - "LazyVim/LazyVim", - opts = { - colorscheme = "gruvbox", - }, - }, - - -- change trouble config - { - "folke/trouble.nvim", - -- opts will be merged with the parent spec - opts = { use_diagnostic_signs = true }, - }, - - -- disable trouble - { "folke/trouble.nvim", enabled = false }, - - -- override nvim-cmp and add cmp-emoji - { - "hrsh7th/nvim-cmp", - dependencies = { "hrsh7th/cmp-emoji" }, - ---@param opts cmp.ConfigSchema - opts = function(_, opts) - table.insert(opts.sources, { name = "emoji" }) - end, - }, - - -- change some telescope options and a keymap to browse plugin files - { - "nvim-telescope/telescope.nvim", - keys = { - -- add a keymap to browse plugin files - -- stylua: ignore - { - "<leader>fp", - function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end, - desc = "Find Plugin File", - }, - }, - -- change some options - opts = { - defaults = { - layout_strategy = "horizontal", - layout_config = { prompt_position = "top" }, - sorting_strategy = "ascending", - winblend = 0, - }, - }, - }, - - -- add pyright to lspconfig - { - "neovim/nvim-lspconfig", - ---@class PluginLspOpts - opts = { - ---@type lspconfig.options - servers = { - -- pyright will be automatically installed with mason and loaded with lspconfig - pyright = {}, - }, - }, - }, - - -- add tsserver and setup with typescript.nvim instead of lspconfig - { - "neovim/nvim-lspconfig", - dependencies = { - "jose-elias-alvarez/typescript.nvim", - init = function() - require("lazyvim.util").lsp.on_attach(function(_, buffer) - -- stylua: ignore - vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" }) - vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer }) - end) - end, - }, - ---@class PluginLspOpts - opts = { - ---@type lspconfig.options - servers = { - -- tsserver will be automatically installed with mason and loaded with lspconfig - tsserver = {}, - }, - -- you can do any additional lsp server setup here - -- return true if you don't want this server to be setup with lspconfig - ---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?> - setup = { - -- example to setup with typescript.nvim - tsserver = function(_, opts) - require("typescript").setup({ server = opts }) - return true - end, - -- Specify * to use this function as a fallback for any server - -- ["*"] = function(server, opts) end, - }, - }, - }, - - -- for typescript, LazyVim also includes extra specs to properly setup lspconfig, - -- treesitter, mason and typescript.nvim. So instead of the above, you can use: - { import = "lazyvim.plugins.extras.lang.typescript" }, - - -- add more treesitter parsers - { - "nvim-treesitter/nvim-treesitter", - opts = { - ensure_installed = { - "bash", - "html", - "javascript", - "json", - "lua", - "markdown", - "markdown_inline", - "python", - "query", - "regex", - "tsx", - "latex", - "typescript", - "vim", - "yaml", - }, - }, - }, - - -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above - -- would overwrite `ensure_installed` with the new value. - -- If you'd rather extend the default config, use the code below instead: - { - "nvim-treesitter/nvim-treesitter", - opts = function(_, opts) - -- add tsx and treesitter - vim.list_extend(opts.ensure_installed, { - "tsx", - "typescript", - }) - end, - }, - - -- the opts function can also be used to change the default opts: - { - "nvim-lualine/lualine.nvim", - event = "VeryLazy", - opts = function(_, opts) - table.insert(opts.sections.lualine_x, { - function() - return "😄" - end, - }) - end, - }, - - -- or you can return new options to override all the defaults - { - "nvim-lualine/lualine.nvim", - event = "VeryLazy", - opts = function() - return { - --[[add your custom lualine config here]] - } - end, - }, - - -- use mini.starter instead of alpha - { import = "lazyvim.plugins.extras.ui.mini-starter" }, - - -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc - { import = "lazyvim.plugins.extras.lang.json" }, - - -- add any tools you want to have installed below - { - "williamboman/mason.nvim", - opts = { - ensure_installed = { - "stylua", - "shellcheck", - "shfmt", - "flake8", - }, - }, - }, -} diff --git a/.config/nvim2/lua/plugins/lualine.lua b/.config/nvim2/lua/plugins/lualine.lua @@ -1,29 +0,0 @@ -return { - "nvim-lualine/lualine.nvim", - enabled = false, - -- dependencies = { "nvim-tree/nvim-web-devicons" }, - -- config = function() - -- local lualine = require("lualine") - -- local lazy_status = require("lazy.status") -- to configure lazy pending updates count - -- - -- lualine.setup({ - -- options = { - -- -- theme = "gruvbox", - -- section_separators = "", - -- component_separators = "", - -- }, - -- sections = { - -- lualine_x = { - -- { - -- lazy_status.updates, - -- cond = lazy_status.has_updates, - -- color = { fg = "#ff9e64" }, - -- }, - -- { "encoding" }, - -- { "fileformat" }, - -- { "filetype" }, - -- }, - -- }, - -- }) - --end, -} diff --git a/.config/nvim2/lua/plugins/markview.lua b/.config/nvim2/lua/plugins/markview.lua @@ -1,22 +0,0 @@ --- ~/.config/nvim/lua/plugins/markview.lua -return { - "OXY2DEV/markview.nvim", - enabled = false, - ft = { "markdown" }, -- load only in Markdown - dependencies = { - "nvim-treesitter/nvim-treesitter", - }, - config = function() - require("markview").setup({ - latex = { - enable = true, - -- only inline math - inline = { enable = true }, - -- disable block equations - block = { enable = false }, - -- no extra bracket highlighting - brackets = { enable = false }, - }, - }) - end, -} diff --git a/.config/nvim2/lua/plugins/mini.lua b/.config/nvim2/lua/plugins/mini.lua @@ -1,33 +0,0 @@ --- ~/.config/nvim/lua/plugins/softwrap.lua -return { - -- Das ist ein Dummy-Eintrag, damit LazyVim ihn lädt - -- Du kannst stattdessen auch ein echtes Plugin hier rein tun, wenn du willst. - -- Aber dieser Configblock funktioniert ohne Plugin! - "nvim-lua/plenary.nvim", -- oder irgendein vorhandenes Plugin als Träger - config = function() - local function toggle_wrap() - local enabled = vim.wo.wrap - vim.wo.wrap = not enabled - vim.wo.linebreak = not enabled - vim.wo.breakindent = not enabled - if not enabled then - vim.notify("Soft wrap enabled", vim.log.levels.INFO) - else - vim.notify("Soft wrap disabled", vim.log.levels.INFO) - end - end - - -- Autocommand für bestimmte Dateitypen - vim.api.nvim_create_autocmd("FileType", { - pattern = { "markdown", "tex", "text", "plaintex" }, - callback = function() - vim.opt_local.wrap = true - vim.opt_local.linebreak = true - vim.opt_local.breakindent = true - end, - }) - - -- Toggle auf <leader>z - vim.keymap.set("n", "<leader>t", toggle_wrap, { desc = "Toggle soft wrap" }) - end, -} diff --git a/.config/nvim2/lua/plugins/neotree.lua b/.config/nvim2/lua/plugins/neotree.lua @@ -1,20 +0,0 @@ -return { - "nvim-neo-tree/neo-tree.nvim", - opts = { - filesystem = { - hijack_netrw_behavior = "open_current", -- Keeps Neo-tree from opening automatically - window = { - position = "float", - width = 30, - }, - }, - event_handlers = { - { - event = "file_opened", - handler = function() - require("neo-tree.command").execute({ action = "close" }) - end, - }, - }, - }, -} diff --git a/.config/nvim2/lua/plugins/no-neck-pain.lua b/.config/nvim2/lua/plugins/no-neck-pain.lua @@ -1,3 +0,0 @@ -return { - "shortcuts/no-neck-pain.nvim", -} diff --git a/.config/nvim2/lua/plugins/opacity.lua b/.config/nvim2/lua/plugins/opacity.lua @@ -1,3 +0,0 @@ -return { - "xiyaowong/transparent.nvim", -} diff --git a/.config/nvim2/lua/plugins/render.lua b/.config/nvim2/lua/plugins/render.lua @@ -1,9 +0,0 @@ -return { - "MeanderingProgrammer/render-markdown.nvim", - dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.nvim" }, -- if you use the mini.nvim suite - -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.icons' }, -- if you use standalone mini plugins - -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons - ---@module 'render-markdown' - ---@type render.md.UserConfig - opts = {}, -} diff --git a/.config/nvim2/lua/plugins/snacks.lua b/.config/nvim2/lua/plugins/snacks.lua @@ -1,14 +0,0 @@ -return { - "folke/snacks.nvim", - priority = 1000, - lazy = false, - opts = { - sections = { - { section = "header" }, - { icon = " ", title = "Keymaps", section = "keys", indent = 2, padding = 1 }, - { icon = " ", title = "Recent Files", section = "recent_files", indent = 2, padding = 1 }, - { icon = " ", title = "Projects", section = "projects", indent = 2, padding = 1 }, - { section = "startup" }, - }, - }, -} diff --git a/.config/nvim2/lua/plugins/starter-mini.lua b/.config/nvim2/lua/plugins/starter-mini.lua @@ -1,66 +0,0 @@ -return { - "echasnovski/mini.starter", - version = false, -- wait till new 0.7.0 release to put it back on semver - event = "VimEnter", - opts = function() - local logo = table.concat({ - "neovim", - }, "\n") - local pad = string.rep(" ", 1) - local new_section = function(name, action, section) - return { name = name, action = action, section = pad .. section } - end - - local starter = require("mini.starter") - --stylua: ignore - local config = { - evaluate_single = true, - header = logo, - items = { - new_section("Find file", LazyVim.pick(), "Telescope"), - new_section("New file", "ene | startinsert", "Built-in"), - new_section("Recent files", LazyVim.pick("oldfiles"), "Telescope"), - new_section("Find text", LazyVim.pick("live_grep"), "Telescope"), - new_section("Config", LazyVim.pick.config_files(), "Config"), - new_section("Restore session", [[lua require("persistence").load()]], "Session"), - new_section("Lazy Extras", "LazyExtras", "Config"), - new_section("Lazy", "Lazy", "Config"), - new_section("Quit", "qa", "Built-in"), - }, - content_hooks = { - starter.gen_hook.adding_bullet(pad .. "░ ", false), - starter.gen_hook.aligning("center", "center"), - }, - } - return config - end, - config = function(_, config) - -- close Lazy and re-open when starter is ready - if vim.o.filetype == "lazy" then - vim.cmd.close() - vim.api.nvim_create_autocmd("User", { - pattern = "MiniStarterOpened", - callback = function() - require("lazy").show() - end, - }) - end - - local starter = require("mini.starter") - starter.setup(config) - - vim.api.nvim_create_autocmd("User", { - pattern = "LazyVimStarted", - callback = function(ev) - local stats = require("lazy").stats() - local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100) - local pad_footer = string.rep(" ", 8) - starter.config.footer = pad_footer .. "⚡ Neovim loaded " .. stats.count .. " plugins in " .. ms .. "ms" - -- INFO: based on @echasnovski's recommendation (thanks a lot!!!) - if vim.bo[ev.buf].filetype == "ministarter" then - pcall(starter.refresh) - end - end, - }) - end, -} diff --git a/.config/nvim2/lua/plugins/substitute.lua b/.config/nvim2/lua/plugins/substitute.lua @@ -1,17 +0,0 @@ -return { - "gbprod/substitute.nvim", - event = { "BufReadPre", "BufNewFile" }, - config = function() - local substitute = require("substitute") - - substitute.setup() - - -- set keymaps - local keymap = vim.keymap -- for conciseness - - vim.keymap.set("n", "s", substitute.operator, { desc = "Substitute with motion" }) - vim.keymap.set("n", "ss", substitute.line, { desc = "Substitute line" }) - vim.keymap.set("n", "S", substitute.eol, { desc = "Substitute to end of line" }) - vim.keymap.set("x", "s", substitute.visual, { desc = "Substitute in visual mode" }) - end, -} diff --git a/.config/nvim2/lua/plugins/telescope.lua b/.config/nvim2/lua/plugins/telescope.lua @@ -1,43 +0,0 @@ -return { - "nvim-telescope/telescope.nvim", - branch = "0.1.x", - dependencies = { - "nvim-lua/plenary.nvim", - { "nvim-telescope/telescope-fzf-native.nvim", build = "make" }, - "nvim-tree/nvim-web-devicons", - "folke/todo-comments.nvim", - }, - -- Disable default LazyVim keybindings for Telescope - keys = {}, - - config = function() - local telescope = require("telescope") - local actions = require("telescope.actions") - - telescope.setup({ - defaults = { - path_display = { "smart" }, - mappings = { - i = { - ["<C-k>"] = actions.move_selection_previous, -- move to prev result - ["<C-j>"] = actions.move_selection_next, -- move to next result - ["<C-q>"] = actions.send_selected_to_qflist + actions.open_qflist, - }, - }, - }, - }) - - telescope.load_extension("fzf") - - -- set keymaps - local keymap = vim.keymap -- for conciseness - - keymap.set("n", "<leader>ff", "<cmd>Telescope find_files<cr>", { desc = "Fuzzy find files in cwd" }) - keymap.set("n", "<leader>fr", "<cmd>Telescope oldfiles<cr>", { desc = "Fuzzy find recent files" }) - keymap.set("n", "<leader>fs", "<cmd>Telescope live_grep<cr>", { desc = "Find string in cwd" }) - keymap.set("n", "<leader>fc", "<cmd>Telescope grep_string<cr>", { desc = "Find string under cursor in cwd" }) - keymap.set("n", "<leader>ft", "<cmd>TodoTelescope<cr>", { desc = "Find todos" }) - keymap.set("n", "<leader><space>", "<cmd>Telescope find_files<cr>", { desc = "Find Files" }) - - end, -} diff --git a/.config/nvim2/lua/plugins/todo-comment.lua b/.config/nvim2/lua/plugins/todo-comment.lua @@ -1,49 +0,0 @@ -return { - "folke/todo-comments.nvim", - dependencies = { "nvim-lua/plenary.nvim" }, - opts = { - keywords = { - FIX = { - icon = " ", -- icon used for the sign, and in search results - color = "error", -- can be a hex color, or a named color (see below) - alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords - -- signs = false, -- configure signs for some keywords individually - }, - TODO = { icon = " ", color = "info" }, - HACK = { icon = " ", color = "warning" }, - WARN = { icon = " ", color = "warning", alt = { "WARNING", "XXX" } }, - PERF = { icon = " ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } }, - NOTE = { icon = " ", color = "hint", alt = { "INFO" } }, - - -- FIX: Test - -- TODO: Test - -- HACK: Test - -- WARN: Test - -- PERF: Test - -- NOTE: Test - -- TEST: Test - - HERLEITUNG = { icon = "󰧆", color = "#cfcfcf" }, - UEBEN = { icon = "", color = "warning" }, - LERNEN = { icon = "󰑖", color = "info" }, - RESEARCH = { icon = "", color = "hint" }, - ANKI = { icon = "", color = "#9654b0" }, - WTF = { icon = "", color = "error", alt = { "WARNING", "XXX" } }, - ARNECKE = { icon = "󰑴", color = "#ffa3f1", alt = { "WARNING", "XXX" } }, - - -- HERLEITUNG: Test - -- UEBEN: Test - -- LERNEN: Test - -- RESEARCH: Test - -- ANKI: Test - -- WTF: Test - -- ARNECKE: Test - }, - - highlight = { - multiline = true, -- enable multine todo comments - comments_only = false, -- uses treesitter to match keywords in comments only - max_line_len = 400, -- ignore lines longer than this - }, - }, -} diff --git a/.config/nvim2/lua/plugins/user/highlights.lua b/.config/nvim2/lua/plugins/user/highlights.lua @@ -1,13 +0,0 @@ -vim.api.nvim_create_augroup("TransparentBackground", { clear = true }) -vim.api.nvim_create_autocmd("ColorScheme", { - group = "TransparentBackground", - callback = function() - -- Remove the background from Normal text and floating windows - vim.api.nvim_set_hl(0, "Normal", { bg = "none" }) - vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" }) - - -- Optionally, remove background from other UI elements - vim.api.nvim_set_hl(0, "SignColumn", { bg = "none" }) - vim.api.nvim_set_hl(0, "EndOfBuffer", { bg = "none" }) - end, -}) diff --git a/.config/obsidian/Cache/Cache_Data/5283edf90cf4ab50_0 b/.config/obsidian/Cache/Cache_Data/5283edf90cf4ab50_0 Binary files differ. diff --git a/.config/obsidian/Cache/Cache_Data/8ca0d52b4a473918_0 b/.config/obsidian/Cache/Cache_Data/8ca0d52b4a473918_0 Binary files differ. diff --git a/.config/obsidian/Cache/Cache_Data/a399e41e2f8134bc_0 b/.config/obsidian/Cache/Cache_Data/a399e41e2f8134bc_0 Binary files differ. diff --git a/.config/obsidian/Cache/Cache_Data/c4674018ac658381_0 b/.config/obsidian/Cache/Cache_Data/c4674018ac658381_0 Binary files differ. diff --git a/.config/obsidian/Cache/Cache_Data/fc52697cff125bba_0 b/.config/obsidian/Cache/Cache_Data/fc52697cff125bba_0 Binary files differ. diff --git a/.config/obsidian/Cache/Cache_Data/index b/.config/obsidian/Cache/Cache_Data/index Binary files differ. diff --git a/.config/obsidian/Cache/Cache_Data/index-dir/the-real-index b/.config/obsidian/Cache/Cache_Data/index-dir/the-real-index Binary files differ. diff --git a/.config/obsidian/Code Cache/js/0c1ed943aa126583_0 b/.config/obsidian/Code Cache/js/0c1ed943aa126583_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/0f565013688148e8_0 b/.config/obsidian/Code Cache/js/0f565013688148e8_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/2466fb1bb221e644_0 b/.config/obsidian/Code Cache/js/2466fb1bb221e644_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/3280f7d049f02f05_0 b/.config/obsidian/Code Cache/js/3280f7d049f02f05_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/4095c44fb9923642_0 b/.config/obsidian/Code Cache/js/4095c44fb9923642_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/4c22e875ec57f3e2_0 b/.config/obsidian/Code Cache/js/4c22e875ec57f3e2_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/4d93e629f88ee097_0 b/.config/obsidian/Code Cache/js/4d93e629f88ee097_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/4fc1be47792d905e_0 b/.config/obsidian/Code Cache/js/4fc1be47792d905e_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/52a37f705767cea0_0 b/.config/obsidian/Code Cache/js/52a37f705767cea0_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/98c562a050a709e9_0 b/.config/obsidian/Code Cache/js/98c562a050a709e9_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/9bfa16698017273a_0 b/.config/obsidian/Code Cache/js/9bfa16698017273a_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/a0e12b36e8eea117_0 b/.config/obsidian/Code Cache/js/a0e12b36e8eea117_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/a49516b562ef368b_0 b/.config/obsidian/Code Cache/js/a49516b562ef368b_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/b89bb96eeee2ac49_0 b/.config/obsidian/Code Cache/js/b89bb96eeee2ac49_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/bc58febc704dde76_0 b/.config/obsidian/Code Cache/js/bc58febc704dde76_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/be9791bcc51ea2dc_0 b/.config/obsidian/Code Cache/js/be9791bcc51ea2dc_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/bf7317e8b20adde0_0 b/.config/obsidian/Code Cache/js/bf7317e8b20adde0_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/c23a75f3073e0b44_0 b/.config/obsidian/Code Cache/js/c23a75f3073e0b44_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/c4c37b5cf17e2243_0 b/.config/obsidian/Code Cache/js/c4c37b5cf17e2243_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/c563d2ff01a2fa73_0 b/.config/obsidian/Code Cache/js/c563d2ff01a2fa73_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/caab35d15fe3fee9_0 b/.config/obsidian/Code Cache/js/caab35d15fe3fee9_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/cb5bf2c23c8e44b0_0 b/.config/obsidian/Code Cache/js/cb5bf2c23c8e44b0_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/d24f2b1334d2313b_0 b/.config/obsidian/Code Cache/js/d24f2b1334d2313b_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/dcb89ac4ff0f1f48_0 b/.config/obsidian/Code Cache/js/dcb89ac4ff0f1f48_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/e51b7e53305f72b5_0 b/.config/obsidian/Code Cache/js/e51b7e53305f72b5_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/e68ac9d21f134e1c_0 b/.config/obsidian/Code Cache/js/e68ac9d21f134e1c_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/fa25f4d54ef35203_0 b/.config/obsidian/Code Cache/js/fa25f4d54ef35203_0 Binary files differ. diff --git a/.config/obsidian/Code Cache/js/index b/.config/obsidian/Code Cache/js/index Binary files differ. diff --git a/.config/obsidian/Code Cache/js/index-dir/the-real-index b/.config/obsidian/Code Cache/js/index-dir/the-real-index Binary files differ. diff --git a/.config/obsidian/Code Cache/wasm/index b/.config/obsidian/Code Cache/wasm/index Binary files differ. diff --git a/.config/obsidian/Code Cache/wasm/index-dir/the-real-index b/.config/obsidian/Code Cache/wasm/index-dir/the-real-index Binary files differ. diff --git a/.config/obsidian/Cookies b/.config/obsidian/Cookies Binary files differ. diff --git a/.config/obsidian/Cookies-journal b/.config/obsidian/Cookies-journal diff --git a/.config/obsidian/Crashpad/client_id b/.config/obsidian/Crashpad/client_id @@ -0,0 +1 @@ +67a0b756-655e-4d78-a214-dd0a9cd60f4d +\ No newline at end of file diff --git a/.config/obsidian/DawnGraphiteCache/data_0 b/.config/obsidian/DawnGraphiteCache/data_0 Binary files differ. diff --git a/.config/obsidian/DawnGraphiteCache/data_1 b/.config/obsidian/DawnGraphiteCache/data_1 Binary files differ. diff --git a/.config/obsidian/DawnGraphiteCache/data_2 b/.config/obsidian/DawnGraphiteCache/data_2 Binary files differ. diff --git a/.config/obsidian/DawnGraphiteCache/data_3 b/.config/obsidian/DawnGraphiteCache/data_3 Binary files differ. diff --git a/.config/obsidian/DawnGraphiteCache/index b/.config/obsidian/DawnGraphiteCache/index Binary files differ. diff --git a/.config/obsidian/DawnWebGPUCache/data_0 b/.config/obsidian/DawnWebGPUCache/data_0 Binary files differ. diff --git a/.config/obsidian/DawnWebGPUCache/data_1 b/.config/obsidian/DawnWebGPUCache/data_1 Binary files differ. diff --git a/.config/obsidian/DawnWebGPUCache/data_2 b/.config/obsidian/DawnWebGPUCache/data_2 Binary files differ. diff --git a/.config/obsidian/DawnWebGPUCache/data_3 b/.config/obsidian/DawnWebGPUCache/data_3 Binary files differ. diff --git a/.config/obsidian/DawnWebGPUCache/index b/.config/obsidian/DawnWebGPUCache/index Binary files differ. diff --git a/.config/obsidian/Dictionaries/en-US-10-1.bdic b/.config/obsidian/Dictionaries/en-US-10-1.bdic Binary files differ. diff --git a/.config/obsidian/GPUCache/data_0 b/.config/obsidian/GPUCache/data_0 Binary files differ. diff --git a/.config/obsidian/GPUCache/data_1 b/.config/obsidian/GPUCache/data_1 Binary files differ. diff --git a/.config/obsidian/GPUCache/data_2 b/.config/obsidian/GPUCache/data_2 Binary files differ. diff --git a/.config/obsidian/GPUCache/data_3 b/.config/obsidian/GPUCache/data_3 Binary files differ. diff --git a/.config/obsidian/GPUCache/index b/.config/obsidian/GPUCache/index Binary files differ. diff --git a/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/000016.ldb b/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/000016.ldb Binary files differ. diff --git a/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/000017.log b/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/000017.log Binary files differ. diff --git a/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/000018.ldb b/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/000018.ldb Binary files differ. diff --git a/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/000019.ldb b/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/000019.ldb Binary files differ. diff --git a/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/CURRENT b/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/LOCK b/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/LOCK diff --git a/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/LOG b/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/LOG @@ -0,0 +1,25 @@ +2025/07/11-21:26:42.887 107e Reusing MANIFEST /home/linus/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/MANIFEST-000001 +2025/07/11-21:26:42.888 107e Recovering log #10 +2025/07/11-21:26:42.908 107e Reusing old log /home/linus/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/000010.log +2025/07/11-21:26:43.571 107e Compacting 1@1 + 1@2 files +2025/07/11-21:26:43.631 107e Generated table #13@1: 7315 keys, 1717168 bytes +2025/07/11-21:26:43.631 107e Compacted 1@1 + 1@2 files => 1717168 bytes +2025/07/11-21:26:43.632 107e compacted to: files[ 0 0 1 0 0 0 0 ] +2025/07/11-21:26:43.632 107e Delete type=2 #11 +2025/07/11-21:26:43.632 107e Delete type=2 #9 +2025/07/11-21:26:47.352 107d Level-0 table #15: started +2025/07/11-21:26:47.378 107d Level-0 table #15: 1094230 bytes OK +2025/07/11-21:26:47.380 107d Delete type=0 #10 +2025/07/11-21:26:47.426 1090 Compacting 1@1 + 1@2 files +2025/07/11-21:26:47.488 1090 Generated table #16@1: 8408 keys, 2116773 bytes +2025/07/11-21:26:47.488 1090 Compacted 1@1 + 1@2 files => 2116773 bytes +2025/07/11-21:26:47.489 1090 compacted to: files[ 0 0 1 0 0 0 0 ] +2025/07/11-21:26:48.257 107e Level-0 table #18: started +2025/07/11-21:26:48.279 107e Level-0 table #18: 1028467 bytes OK +2025/07/11-21:26:48.282 107e Delete type=2 #15 +2025/07/11-21:26:48.282 107e Delete type=2 #13 +2025/07/11-21:26:48.282 107e Delete type=0 #14 +2025/07/11-21:26:48.382 107d Compacting 1@1 + 1@2 files +2025/07/11-21:26:48.452 107d Generated table #19@1: 8404 keys, 2116961 bytes +2025/07/11-21:26:48.452 107d Compacted 1@1 + 1@2 files => 2116961 bytes +2025/07/11-21:26:48.453 107d compacted to: files[ 0 0 1 0 0 0 0 ] diff --git a/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/LOG.old b/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/LOG.old @@ -0,0 +1,15 @@ +2025/07/11-15:41:24.207 6452 Reusing MANIFEST /home/linus/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/MANIFEST-000001 +2025/07/11-15:41:24.208 6452 Recovering log #4 +2025/07/11-15:41:24.221 6452 Reusing old log /home/linus/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/000004.log +2025/07/11-15:41:27.024 6462 Level-0 table #8: started +2025/07/11-15:41:27.061 6462 Level-0 table #8: 1625134 bytes OK +2025/07/11-15:41:27.063 6462 Delete type=0 #4 +2025/07/11-15:41:27.122 6451 Compacting 1@1 + 1@2 files +2025/07/11-15:41:27.157 6451 Generated table #9@1: 5373 keys, 978339 bytes +2025/07/11-15:41:27.157 6451 Compacted 1@1 + 1@2 files => 978339 bytes +2025/07/11-15:41:27.158 6451 compacted to: files[ 0 0 1 0 0 0 0 ] +2025/07/11-15:41:27.158 6451 Delete type=2 #8 +2025/07/11-15:41:27.159 6451 Delete type=2 #5 +2025/07/11-15:41:32.187 6462 Level-0 table #11: started +2025/07/11-15:41:32.216 6462 Level-0 table #11: 1155326 bytes OK +2025/07/11-15:41:32.218 6462 Delete type=0 #7 diff --git a/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/MANIFEST-000001 b/.config/obsidian/IndexedDB/app_obsidian.md_0.indexeddb.leveldb/MANIFEST-000001 Binary files differ. diff --git a/.config/obsidian/Local Storage/leveldb/000003.log b/.config/obsidian/Local Storage/leveldb/000003.log Binary files differ. diff --git a/.config/obsidian/Local Storage/leveldb/CURRENT b/.config/obsidian/Local Storage/leveldb/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/.config/obsidian/Local Storage/leveldb/LOCK b/.config/obsidian/Local Storage/leveldb/LOCK diff --git a/.config/obsidian/Local Storage/leveldb/LOG b/.config/obsidian/Local Storage/leveldb/LOG @@ -0,0 +1,3 @@ +2025/07/11-21:26:40.914 107d Reusing MANIFEST /home/linus/.config/obsidian/Local Storage/leveldb/MANIFEST-000001 +2025/07/11-21:26:41.003 107d Recovering log #3 +2025/07/11-21:26:41.004 107d Reusing old log /home/linus/.config/obsidian/Local Storage/leveldb/000003.log diff --git a/.config/obsidian/Local Storage/leveldb/LOG.old b/.config/obsidian/Local Storage/leveldb/LOG.old @@ -0,0 +1,3 @@ +2025/07/11-15:41:21.919 6451 Reusing MANIFEST /home/linus/.config/obsidian/Local Storage/leveldb/MANIFEST-000001 +2025/07/11-15:41:22.002 6451 Recovering log #3 +2025/07/11-15:41:22.002 6451 Reusing old log /home/linus/.config/obsidian/Local Storage/leveldb/000003.log diff --git a/.config/obsidian/Local Storage/leveldb/MANIFEST-000001 b/.config/obsidian/Local Storage/leveldb/MANIFEST-000001 Binary files differ. diff --git a/.config/obsidian/Network Persistent State b/.config/obsidian/Network Persistent State @@ -0,0 +1 @@ +{"net":{"http_server_properties":{"servers":[{"anonymization":[],"server":"https://redirector.gvt1.com","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13399306855020440","port":443,"protocol_str":"quic"}],"anonymization":[],"network_stats":{"srtt":64399},"server":"https://r4---sn-4g5e6nss.gvt1.com"},{"anonymization":[],"server":"https://releases.obsidian.md","supports_spdy":true},{"anonymization":[],"server":"https://raw.githubusercontent.com","supports_spdy":true}],"supports_quic":{"address":"192.168.10.221","used_quic":true},"version":5},"network_qualities":{"CAESABiAgICA+P////8B":"4G"}}} +\ No newline at end of file diff --git a/.config/obsidian/Preferences b/.config/obsidian/Preferences @@ -0,0 +1 @@ +{"browser":{"enable_spellchecking":true},"partition":{"per_host_zoom_levels":{"6119274000195901846":{}}},"spellcheck":{"dictionaries":["en-US"],"dictionary":""}} +\ No newline at end of file diff --git a/.config/obsidian/Session Storage/000003.log b/.config/obsidian/Session Storage/000003.log Binary files differ. diff --git a/.config/obsidian/Session Storage/CURRENT b/.config/obsidian/Session Storage/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/.config/obsidian/Session Storage/LOCK b/.config/obsidian/Session Storage/LOCK diff --git a/.config/obsidian/Session Storage/LOG b/.config/obsidian/Session Storage/LOG @@ -0,0 +1,3 @@ +2025/07/11-21:34:30.911 107d Reusing MANIFEST /home/linus/.config/obsidian/Session Storage/MANIFEST-000001 +2025/07/11-21:34:30.912 107d Recovering log #3 +2025/07/11-21:34:30.912 107d Reusing old log /home/linus/.config/obsidian/Session Storage/000003.log diff --git a/.config/obsidian/Session Storage/LOG.old b/.config/obsidian/Session Storage/LOG.old @@ -0,0 +1,3 @@ +2025/07/11-15:42:05.626 6451 Reusing MANIFEST /home/linus/.config/obsidian/Session Storage/MANIFEST-000001 +2025/07/11-15:42:05.626 6451 Recovering log #3 +2025/07/11-15:42:05.626 6451 Reusing old log /home/linus/.config/obsidian/Session Storage/000003.log diff --git a/.config/obsidian/Session Storage/MANIFEST-000001 b/.config/obsidian/Session Storage/MANIFEST-000001 Binary files differ. diff --git a/.config/obsidian/Shared Dictionary/cache/index b/.config/obsidian/Shared Dictionary/cache/index Binary files differ. diff --git a/.config/obsidian/Shared Dictionary/cache/index-dir/the-real-index b/.config/obsidian/Shared Dictionary/cache/index-dir/the-real-index Binary files differ. diff --git a/.config/obsidian/Shared Dictionary/db b/.config/obsidian/Shared Dictionary/db Binary files differ. diff --git a/.config/obsidian/Shared Dictionary/db-journal b/.config/obsidian/Shared Dictionary/db-journal diff --git a/.config/obsidian/SharedStorage b/.config/obsidian/SharedStorage Binary files differ. diff --git a/.config/obsidian/TransportSecurity b/.config/obsidian/TransportSecurity @@ -0,0 +1 @@ +{"sts":[{"expiry":1783798003.435097,"host":"/Io2PStL7/jvcod3tT0jPo73HDnRILY4Di46SHjGwTk=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1752262003.435102}],"version":2} +\ No newline at end of file diff --git a/.config/obsidian/Trust Tokens b/.config/obsidian/Trust Tokens Binary files differ. diff --git a/.config/obsidian/Trust Tokens-journal b/.config/obsidian/Trust Tokens-journal diff --git a/.config/obsidian/WebStorage/QuotaManager b/.config/obsidian/WebStorage/QuotaManager Binary files differ. diff --git a/.config/obsidian/WebStorage/QuotaManager-journal b/.config/obsidian/WebStorage/QuotaManager-journal diff --git a/.config/obsidian/a037508a21b3b1fd.json b/.config/obsidian/a037508a21b3b1fd.json @@ -0,0 +1 @@ +{"x":1,"y":17,"width":1278,"height":1006,"isMaximized":false,"devTools":false,"zoom":0} +\ No newline at end of file diff --git a/.config/obsidian/id b/.config/obsidian/id @@ -0,0 +1 @@ +eece60fc1ae5b0ff9b49bd63aecbc314 +\ No newline at end of file diff --git a/.config/obsidian/obsidian.json b/.config/obsidian/obsidian.json @@ -0,0 +1 @@ +{"vaults":{"a037508a21b3b1fd":{"path":"/home/linus/obsidian","ts":1752241265739,"open":true}}} +\ No newline at end of file diff --git a/.config/obsidian/obsidian.log b/.config/obsidian/obsidian.log @@ -0,0 +1,15 @@ +2025-07-11 13:40:53 Loading main app package /tmp/.mount_Obsidi2dC2eL/resources/obsidian.asar +2025-07-11 13:40:54 Checking for update using Github +2025-07-11 13:40:54 Success. +2025-07-11 13:40:54 Latest version is 1.8.10 +2025-07-11 13:40:54 App is up to date. +2025-07-11 13:41:21 Loading main app package /tmp/.mount_ObsidiZ2NxCJ/resources/obsidian.asar +2025-07-11 13:41:22 Checking for update using Github +2025-07-11 13:41:22 Success. +2025-07-11 13:41:22 Latest version is 1.8.10 +2025-07-11 13:41:22 App is up to date. +2025-07-11 19:26:40 Loading main app package /tmp/.mount_ObsidihLenDS/resources/obsidian.asar +2025-07-11 19:26:41 Checking for update using Github +2025-07-11 19:26:41 Success. +2025-07-11 19:26:41 Latest version is 1.8.10 +2025-07-11 19:26:41 App is up to date. diff --git a/.config/picom/picom.conf b/.config/picom/picom.conf @@ -0,0 +1,26 @@ +####################################### +# Picom – minimal/no-transitions # +####################################### + +# 1. Turn *off* the classic fade feature entirely +fading = false; # don’t let -f enable fades +no-fading-openclose = true; # never fade on open/close :contentReference[oaicite:0]{index=0} +no-fading-destroyed-argb = true; # never fade destroyed ARGB windows :contentReference[oaicite:1]{index=1} + +# 2. Make sure the fade engine can’t sneak in via tiny steps +fade-in-step = 1.0; # one jump = instant show +fade-out-step = 1.0; # one jump = instant hide +fade-delta = 0; # no time between steps (→ 0 ms) :contentReference[oaicite:2]{index=2} + +# 3. Disable the new animation-script system (Picom ≥ v11) +animations = (); # empty list ⇒ nothing runs + +# 4. Shadows/blur/rounded-corners left at defaults = off +shadow = false; +# blur-method = ""; # comment out or leave empty +corner-radius = 0; + +# 5. Backend / vsync—keep the compositor functional but basic +backend = "xrender"; # safest; change if you need GL +vsync = false; + diff --git a/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-copy.js b/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-copy.js @@ -1,73 +0,0 @@ -"use strict";var lu=Object.create;var Es=Object.defineProperty;var uu=Object.getOwnPropertyDescriptor;var fu=Object.getOwnPropertyNames;var du=Object.getPrototypeOf,yu=Object.prototype.hasOwnProperty;var c=(A,e)=>()=>(e||A((e={exports:{}}).exports,e),e.exports),wu=(A,e)=>{for(var t in e)Es(A,t,{get:e[t],enumerable:!0})},tE=(A,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of fu(e))!yu.call(A,s)&&s!==t&&Es(A,s,{get:()=>e[s],enumerable:!(r=uu(e,s))||r.enumerable});return A};var cr=(A,e,t)=>(t=A!=null?lu(du(A)):{},tE(e||!A||!A.__esModule?Es(t,"default",{value:A,enumerable:!0}):t,A)),Du=A=>tE(Es({},"__esModule",{value:!0}),A);var $=c((tb,rE)=>{rE.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size")}});var Z=c((rb,sE)=>{"use strict";var nA=class extends Error{constructor(e){super(e),this.name="UndiciError",this.code="UND_ERR"}},Ci=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="ConnectTimeoutError",this.message=e||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},Bi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="HeadersTimeoutError",this.message=e||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},Ii=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="HeadersOverflowError",this.message=e||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},ci=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="BodyTimeoutError",this.message=e||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},hi=class A extends nA{constructor(e,t,r,s){super(e),Error.captureStackTrace(this,A),this.name="ResponseStatusCodeError",this.message=e||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=s,this.status=t,this.statusCode=t,this.headers=r}},li=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="InvalidArgumentError",this.message=e||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},ui=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="InvalidReturnValueError",this.message=e||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},fi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="AbortError",this.message=e||"Request aborted",this.code="UND_ERR_ABORTED"}},di=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="InformationalError",this.message=e||"Request information",this.code="UND_ERR_INFO"}},yi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="RequestContentLengthMismatchError",this.message=e||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},wi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="ResponseContentLengthMismatchError",this.message=e||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},Di=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="ClientDestroyedError",this.message=e||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},pi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="ClientClosedError",this.message=e||"The client is closed",this.code="UND_ERR_CLOSED"}},Ri=class A extends nA{constructor(e,t){super(e),Error.captureStackTrace(this,A),this.name="SocketError",this.message=e||"Socket error",this.code="UND_ERR_SOCKET",this.socket=t}},as=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="NotSupportedError",this.message=e||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},ki=class extends nA{constructor(e){super(e),Error.captureStackTrace(this,as),this.name="MissingUpstreamError",this.message=e||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},Fi=class A extends Error{constructor(e,t,r){super(e),Error.captureStackTrace(this,A),this.name="HTTPParserError",this.code=t?`HPE_${t}`:void 0,this.data=r?r.toString():void 0}},Ni=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="ResponseExceededMaxSizeError",this.message=e||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}};sE.exports={HTTPParserError:Fi,UndiciError:nA,HeadersTimeoutError:Bi,HeadersOverflowError:Ii,BodyTimeoutError:ci,RequestContentLengthMismatchError:yi,ConnectTimeoutError:Ci,ResponseStatusCodeError:hi,InvalidArgumentError:li,InvalidReturnValueError:ui,RequestAbortedError:fi,ClientDestroyedError:Di,ClientClosedError:pi,InformationalError:di,SocketError:Ri,NotSupportedError:as,ResponseContentLengthMismatchError:wi,BalancedPoolMissingUpstreamError:ki,ResponseExceededMaxSizeError:Ni}});var G=c((sb,cE)=>{"use strict";var gE=require("assert"),{kDestroyed:QE,kBodyUsed:nE}=$(),{IncomingMessage:pu}=require("http"),Dt=require("stream"),Ru=require("net"),{InvalidArgumentError:cA}=Z(),{Blob:iE}=require("buffer"),Bs=require("util"),{stringify:ku}=require("querystring"),[mi,oE]=process.versions.node.split(".").map(A=>Number(A));function Fu(){}function bi(A){return A&&typeof A=="object"&&typeof A.pipe=="function"&&typeof A.on=="function"}function EE(A){return iE&&A instanceof iE||A&&typeof A=="object"&&(typeof A.stream=="function"||typeof A.arrayBuffer=="function")&&/^(Blob|File)$/.test(A[Symbol.toStringTag])}function Nu(A,e){if(A.includes("?")||A.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let t=ku(e);return t&&(A+="?"+t),A}function aE(A){if(typeof A=="string"){if(A=new URL(A),!/^https?:/.test(A.origin||A.protocol))throw new cA("Invalid URL protocol: the URL must start with `http:` or `https:`.");return A}if(!A||typeof A!="object")throw new cA("Invalid URL: The URL argument must be a non-null object.");if(A.port!=null&&A.port!==""&&!Number.isFinite(parseInt(A.port)))throw new cA("Invalid URL: port must be a valid integer or a string representation of an integer.");if(A.path!=null&&typeof A.path!="string")throw new cA("Invalid URL path: the path must be a string or null/undefined.");if(A.pathname!=null&&typeof A.pathname!="string")throw new cA("Invalid URL pathname: the pathname must be a string or null/undefined.");if(A.hostname!=null&&typeof A.hostname!="string")throw new cA("Invalid URL hostname: the hostname must be a string or null/undefined.");if(A.origin!=null&&typeof A.origin!="string")throw new cA("Invalid URL origin: the origin must be a string or null/undefined.");if(!/^https?:/.test(A.origin||A.protocol))throw new cA("Invalid URL protocol: the URL must start with `http:` or `https:`.");if(!(A instanceof URL)){let e=A.port!=null?A.port:A.protocol==="https:"?443:80,t=A.origin!=null?A.origin:`${A.protocol}//${A.hostname}:${e}`,r=A.path!=null?A.path:`${A.pathname||""}${A.search||""}`;t.endsWith("/")&&(t=t.substring(0,t.length-1)),r&&!r.startsWith("/")&&(r=`/${r}`),A=new URL(t+r)}return A}function mu(A){if(A=aE(A),A.pathname!=="/"||A.search||A.hash)throw new cA("invalid url");return A}function bu(A){if(A[0]==="["){let t=A.indexOf("]");return gE(t!==-1),A.substr(1,t-1)}let e=A.indexOf(":");return e===-1?A:A.substr(0,e)}function Su(A){if(!A)return null;gE.strictEqual(typeof A,"string");let e=bu(A);return Ru.isIP(e)?"":e}function Uu(A){return JSON.parse(JSON.stringify(A))}function Lu(A){return A!=null&&typeof A[Symbol.asyncIterator]=="function"}function Mu(A){return A!=null&&(typeof A[Symbol.iterator]=="function"||typeof A[Symbol.asyncIterator]=="function")}function Yu(A){if(A==null)return 0;if(bi(A)){let e=A._readableState;return e&&e.ended===!0&&Number.isFinite(e.length)?e.length:null}else{if(EE(A))return A.size!=null?A.size:null;if(BE(A))return A.byteLength}return null}function Si(A){return!A||!!(A.destroyed||A[QE])}function CE(A){let e=A&&A._readableState;return Si(A)&&e&&!e.endEmitted}function Ju(A,e){!bi(A)||Si(A)||(typeof A.destroy=="function"?(Object.getPrototypeOf(A).constructor===pu&&(A.socket=null),A.destroy(e)):e&&process.nextTick((t,r)=>{t.emit("error",r)},A,e),A.destroyed!==!0&&(A[QE]=!0))}var Gu=/timeout=(\d+)/;function Tu(A){let e=A.toString().match(Gu);return e?parseInt(e[1],10)*1e3:null}function vu(A,e={}){for(let t=0;t<A.length;t+=2){let r=A[t].toString().toLowerCase(),s=e[r];s?(Array.isArray(s)||(s=[s],e[r]=s),s.push(A[t+1].toString("utf8"))):Array.isArray(A[t+1])?e[r]=A[t+1]:e[r]=A[t+1].toString("utf8")}return"content-length"in e&&"content-disposition"in e&&(e["content-disposition"]=Buffer.from(e["content-disposition"]).toString("latin1")),e}function Hu(A){let e=[],t=!1,r=-1;for(let s=0;s<A.length;s+=2){let n=A[s+0].toString(),i=A[s+1].toString("utf8");n.length===14&&(n==="content-length"||n.toLowerCase()==="content-length")?(e.push(n,i),t=!0):n.length===19&&(n==="content-disposition"||n.toLowerCase()==="content-disposition")?r=e.push(n,i)-1:e.push(n,i)}return t&&r!==-1&&(e[r]=Buffer.from(e[r]).toString("latin1")),e}function BE(A){return A instanceof Uint8Array||Buffer.isBuffer(A)}function Vu(A,e,t){if(!A||typeof A!="object")throw new cA("handler must be an object");if(typeof A.onConnect!="function")throw new cA("invalid onConnect method");if(typeof A.onError!="function")throw new cA("invalid onError method");if(typeof A.onBodySent!="function"&&A.onBodySent!==void 0)throw new cA("invalid onBodySent method");if(t||e==="CONNECT"){if(typeof A.onUpgrade!="function")throw new cA("invalid onUpgrade method")}else{if(typeof A.onHeaders!="function")throw new cA("invalid onHeaders method");if(typeof A.onData!="function")throw new cA("invalid onData method");if(typeof A.onComplete!="function")throw new cA("invalid onComplete method")}}function xu(A){return!!(A&&(Dt.isDisturbed?Dt.isDisturbed(A)||A[nE]:A[nE]||A.readableDidRead||A._readableState&&A._readableState.dataEmitted||CE(A)))}function qu(A){return!!(A&&(Dt.isErrored?Dt.isErrored(A):/state: 'errored'/.test(Bs.inspect(A))))}function Wu(A){return!!(A&&(Dt.isReadable?Dt.isReadable(A):/state: 'readable'/.test(Bs.inspect(A))))}function Ou(A){return{localAddress:A.localAddress,localPort:A.localPort,remoteAddress:A.remoteAddress,remotePort:A.remotePort,remoteFamily:A.remoteFamily,timeout:A.timeout,bytesWritten:A.bytesWritten,bytesRead:A.bytesRead}}var hr;function Pu(A){if(hr||(hr=require("stream/web").ReadableStream),hr.from)return hr.from(A);let e;return new hr({async start(){e=A[Symbol.asyncIterator]()},async pull(t){let{done:r,value:s}=await e.next();if(r)queueMicrotask(()=>{t.close()});else{let n=Buffer.isBuffer(s)?s:Buffer.from(s);t.enqueue(new Uint8Array(n))}return t.desiredSize>0},async cancel(t){await e.return()}},0)}function _u(A){return 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"&&A[Symbol.toStringTag]==="FormData"}function Zu(A){if(A){if(typeof A.throwIfAborted=="function")A.throwIfAborted();else if(A.aborted){let e=new Error("The operation was aborted");throw e.name="AbortError",e}}}var Cs;function Xu(A,e){return typeof Symbol.dispose=="symbol"&&(Cs||(Cs=require("events")),typeof Cs.addAbortListener=="function"&&"aborted"in A)?Cs.addAbortListener(A,e):"addEventListener"in A?(A.addEventListener("abort",e,{once:!0}),()=>A.removeEventListener("abort",e)):(A.addListener("abort",e),()=>A.removeListener("abort",e))}var Ku=!!String.prototype.toWellFormed;function ju(A){return Ku?`${A}`.toWellFormed():Bs.toUSVString?Bs.toUSVString(A):`${A}`}var IE=Object.create(null);IE.enumerable=!0;cE.exports={kEnumerableProperty:IE,nop:Fu,isDisturbed:xu,isErrored:qu,isReadable:Wu,toUSVString:ju,isReadableAborted:CE,isBlobLike:EE,parseOrigin:mu,parseURL:aE,getServerName:Su,isStream:bi,isIterable:Mu,isAsyncIterable:Lu,isDestroyed:Si,parseRawHeaders:Hu,parseHeaders:vu,parseKeepAliveTimeout:Tu,destroy:Ju,bodyLength:Yu,deepClone:Uu,ReadableStreamFrom:Pu,isBuffer:BE,validateHandler:Vu,getSocketInfo:Ou,isFormDataLike:_u,buildURL:Nu,throwIfAborted:Zu,addAbortListener:Xu,nodeMajor:mi,nodeMinor:oE,nodeHasAutoSelectFamily:mi>18||mi===18&&oE>=13}});var uE=c((nb,lE)=>{"use strict";var Ui=Date.now(),Te,ve=[];function zu(){Ui=Date.now();let A=ve.length,e=0;for(;e<A;){let t=ve[e];t.state===0?t.state=Ui+t.delay:t.state>0&&Ui>=t.state&&(t.state=-1,t.callback(t.opaque)),t.state===-1?(t.state=-2,e!==A-1?ve[e]=ve.pop():ve.pop(),A-=1):e+=1}ve.length>0&&hE()}function hE(){Te&&Te.refresh?Te.refresh():(clearTimeout(Te),Te=setTimeout(zu,1e3),Te.unref&&Te.unref())}var Is=class{constructor(e,t,r){this.callback=e,this.delay=t,this.opaque=r,this.state=-2,this.refresh()}refresh(){this.state===-2&&(ve.push(this),(!Te||ve.length===1)&&hE()),this.state=0}clear(){this.state=-1}};lE.exports={setTimeout(A,e,t){return e<1e3?setTimeout(A,e,t):new Is(A,e,t)},clearTimeout(A){A instanceof Is?A.clear():clearTimeout(A)}}});var cs=c((DE,pE)=>{"use strict";function $u(A){if(A.length===0)return;let e=Object.create(null),t=0;for(;t<A.length;++t){let i=A.charCodeAt(t);if(At[i]!==1){if(i!==47||t===0)return;break}}if(t===A.length)return;let r=A.slice(0,t).toLowerCase(),s=++t;for(;t<A.length;++t){let i=A.charCodeAt(t);if(At[i]!==1){if(t===s||Af(A,t,e)===void 0)return;break}}if(t===s)return;let n=A.slice(s,t).toLowerCase();return{type:r,subtype:n,params:e}}function Af(A,e,t){for(;e<A.length;){for(;e<A.length;++e){let o=A.charCodeAt(e);if(o!==32&&o!==9)break}if(e===A.length)break;if(A.charCodeAt(e++)!==59)return;for(;e<A.length;++e){let o=A.charCodeAt(e);if(o!==32&&o!==9)break}if(e===A.length)return;let r,s=e;for(;e<A.length;++e){let o=A.charCodeAt(e);if(At[o]!==1){if(o!==61)return;break}}if(e===A.length||(r=A.slice(s,e),++e,e===A.length))return;let n="",i;if(A.charCodeAt(e)===34){i=++e;let o=!1;for(;e<A.length;++e){let g=A.charCodeAt(e);if(g===92){o?(i=e,o=!1):(n+=A.slice(i,e),o=!0);continue}if(g===34){if(o){i=e,o=!1;continue}n+=A.slice(i,e);break}if(o&&(i=e-1,o=!1),wE[g]!==1)return}if(e===A.length)return;++e}else{for(i=e;e<A.length;++e){let o=A.charCodeAt(e);if(At[o]!==1){if(e===i)return;break}}n=A.slice(i,e)}r=r.toLowerCase(),t[r]===void 0&&(t[r]=n)}return t}function ef(A,e){if(A.length===0)return;let t=Object.create(null),r=0;for(;r<A.length;++r){let n=A.charCodeAt(r);if(At[n]!==1){if(tf(A,r,t,e)===void 0)return;break}}return{type:A.slice(0,r).toLowerCase(),params:t}}function tf(A,e,t,r){for(;e<A.length;){for(;e<A.length;++e){let a=A.charCodeAt(e);if(a!==32&&a!==9)break}if(e===A.length)break;if(A.charCodeAt(e++)!==59)return;for(;e<A.length;++e){let a=A.charCodeAt(e);if(a!==32&&a!==9)break}if(e===A.length)return;let s,n=e;for(;e<A.length;++e){let a=A.charCodeAt(e);if(At[a]!==1){if(a===61)break;return}}if(e===A.length)return;let i="",o,g;if(s=A.slice(n,e),s.charCodeAt(s.length-1)===42){let a=++e;for(;e<A.length;++e){let E=A.charCodeAt(e);if(sf[E]!==1){if(E!==39)return;break}}if(e===A.length)return;for(g=A.slice(a,e),++e;e<A.length&&A.charCodeAt(e)!==39;++e);if(e===A.length||(++e,e===A.length))return;o=e;let Q=0;for(;e<A.length;++e){let E=A.charCodeAt(e);if(nf[E]!==1){if(E===37){let C,B;if(e+2<A.length&&(C=fE[A.charCodeAt(e+1)])!==-1&&(B=fE[A.charCodeAt(e+2)])!==-1){let I=(C<<4)+B;i+=A.slice(o,e),i+=String.fromCharCode(I),e+=2,o=e+1,I>=128?Q=2:Q===0&&(Q=1);continue}return}break}}if(i+=A.slice(o,e),i=yE(i,g,Q),i===void 0)return}else{if(++e,e===A.length)return;if(A.charCodeAt(e)===34){o=++e;let a=!1;for(;e<A.length;++e){let Q=A.charCodeAt(e);if(Q===92){a?(o=e,a=!1):(i+=A.slice(o,e),a=!0);continue}if(Q===34){if(a){o=e,a=!1;continue}i+=A.slice(o,e);break}if(a&&(o=e-1,a=!1),wE[Q]!==1)return}if(e===A.length)return;++e}else{for(o=e;e<A.length;++e){let a=A.charCodeAt(e);if(At[a]!==1){if(e===o)return;break}}i=A.slice(o,e)}if(i=r(i,2),i===void 0)return}s=s.toLowerCase(),t[s]===void 0&&(t[s]=i)}return t}function dE(A){let e;for(;;)switch(A){case"utf-8":case"utf8":return lr.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return lr.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return lr.utf16le;case"base64":return lr.base64;default:if(e===void 0){e=!0,A=A.toLowerCase();continue}return lr.other.bind(A)}}var lr={utf8:(A,e)=>{if(A.length===0)return"";if(typeof A=="string"){if(e<2)return A;A=Buffer.from(A,"latin1")}return A.utf8Slice(0,A.length)},latin1:(A,e)=>A.length===0?"":typeof A=="string"?A:A.latin1Slice(0,A.length),utf16le:(A,e)=>A.length===0?"":(typeof A=="string"&&(A=Buffer.from(A,"latin1")),A.ucs2Slice(0,A.length)),base64:(A,e)=>A.length===0?"":(typeof A=="string"&&(A=Buffer.from(A,"latin1")),A.base64Slice(0,A.length)),other:(A,e)=>{if(A.length===0)return"";typeof A=="string"&&(A=Buffer.from(A,"latin1"));try{return new TextDecoder(DE).decode(A)}catch{}}};function yE(A,e,t){let r=dE(e);if(r)return r(A,t)}function rf(A){if(typeof A!="string")return"";for(let e=A.length-1;e>=0;--e)switch(A.charCodeAt(e)){case 47:case 92:return A=A.slice(e+1),A===".."||A==="."?"":A}return A===".."||A==="."?"":A}var At=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],wE=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],sf=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],nf=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],fE=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];pE.exports={basename:rf,convertToUTF8:yE,getDecoder:dE,parseContentType:$u,parseDisposition:ef}});var NE=c((ib,FE)=>{"use strict";function RE(A,e,t,r,s){for(let n=0;n<s;++n)if(A[e+n]!==t[r+n])return!1;return!0}var Li=class{constructor(e,t){if(typeof t!="function")throw new Error("Missing match callback");if(typeof e=="string")e=Buffer.from(e);else if(!Buffer.isBuffer(e))throw new Error(`Expected Buffer for needle, got ${typeof e}`);let r=e.length;if(this.maxMatches=1/0,this.matches=0,this._cb=t,this._lookbehindSize=0,this._needle=e,this._bufPos=0,this._lookbehind=Buffer.allocUnsafe(r),this._occ=[r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r],r>1)for(let s=0;s<r-1;++s)this._occ[e[s]]=r-1-s}reset(){this.matches=0,this._lookbehindSize=0,this._bufPos=0}push(e,t){let r;Buffer.isBuffer(e)||(e=Buffer.from(e,"latin1"));let s=e.length;for(this._bufPos=t||0;r!==s&&this.matches<this.maxMatches;)r=of(this,e);return r}destroy(){let e=this._lookbehindSize;e&&this._cb(!1,this._lookbehind,0,e,!1),this.reset()}};function of(A,e){let t=e.length,r=A._needle,s=r.length,n=-A._lookbehindSize,i=s-1,o=r[i],g=t-s,a=A._occ,Q=A._lookbehind;if(n<0){for(;n<0&&n<=g;){let C=n+i,B=C<0?Q[A._lookbehindSize+C]:e[C];if(B===o&&kE(A,e,n,i))return A._lookbehindSize=0,++A.matches,n>-A._lookbehindSize?A._cb(!0,Q,0,A._lookbehindSize+n,!1):A._cb(!0,void 0,0,0,!0),A._bufPos=n+s;n+=a[B]}for(;n<0&&!kE(A,e,n,t-n);)++n;if(n<0){let C=A._lookbehindSize+n;return C>0&&A._cb(!1,Q,0,C,!1),A._lookbehindSize-=C,Q.copy(Q,0,C,A._lookbehindSize),Q.set(e,A._lookbehindSize),A._lookbehindSize+=t,A._bufPos=t,t}A._cb(!1,Q,0,A._lookbehindSize,!1),A._lookbehindSize=0}n+=A._bufPos;let E=r[0];for(;n<=g;){let C=e[n+i];if(C===o&&e[n]===E&&RE(r,0,e,n,i))return++A.matches,n>0?A._cb(!0,e,A._bufPos,n,!0):A._cb(!0,void 0,0,0,!0),A._bufPos=n+s;n+=a[C]}for(;n<t;){if(e[n]!==E||!RE(e,n,r,0,t-n)){++n;continue}e.copy(Q,0,n,t),A._lookbehindSize=t-n;break}return n>0&&A._cb(!1,e,A._bufPos,n<t?n:t,!0),A._bufPos=t,t}function kE(A,e,t,r){let s=A._lookbehind,n=A._lookbehindSize,i=A._needle;for(let o=0;o<r;++o,++t)if((t<0?s[n+t]:e[t])!==i[o])return!1;return!0}FE.exports=Li});var GE=c((ob,JE)=>{"use strict";var{Readable:gf,Writable:Qf}=require("stream"),Ef=NE(),{basename:af,convertToUTF8:mE,getDecoder:Cf,parseContentType:Bf,parseDisposition:If}=cs(),cf=Buffer.from(`\r -`),hf=Buffer.from("\r"),lf=Buffer.from("-");function bE(){}var uf=2e3,pt=16*1024,hs=0,SE=1,UE=2,Mi=class{constructor(e){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=hs,this.name="",this.value="",this.crlf=0,this.cb=e}reset(){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=hs,this.name="",this.value="",this.crlf=0}push(e,t,r){let s=t;for(;t<r;)switch(this.state){case hs:{let n=!1;for(;t<r;++t){if(this.byteCount===pt)return-1;++this.byteCount;let i=e[t];if(yf[i]!==1){if(i!==58||(this.name+=e.latin1Slice(s,t),this.name.length===0))return-1;++t,n=!0,this.state=SE;break}}if(!n){this.name+=e.latin1Slice(s,t);break}}case SE:{let n=!1;for(;t<r;++t){if(this.byteCount===pt)return-1;++this.byteCount;let i=e[t];if(i!==32&&i!==9){s=t,n=!0,this.state=UE;break}}if(!n)break}case UE:switch(this.crlf){case 0:for(;t<r;++t){if(this.byteCount===pt)return-1;++this.byteCount;let n=e[t];if(wf[n]!==1){if(n!==13)return-1;++this.crlf;break}}this.value+=e.latin1Slice(s,t++);break;case 1:if(this.byteCount===pt||(++this.byteCount,e[t++]!==10))return-1;++this.crlf;break;case 2:{if(this.byteCount===pt)return-1;++this.byteCount;let n=e[t];n===32||n===9?(s=t,this.crlf=0):(++this.pairCount<uf&&(this.name=this.name.toLowerCase(),this.header[this.name]===void 0?this.header[this.name]=[this.value]:this.header[this.name].push(this.value)),n===13?(++this.crlf,++t):(s=t,this.crlf=0,this.state=hs,this.name="",this.value=""));break}case 3:{if(this.byteCount===pt||(++this.byteCount,e[t++]!==10))return-1;let n=this.header;return this.reset(),this.cb(n),t}}break}return t}},Yi=class extends gf{constructor(e,t){super(e),this.truncated=!1,this._readcb=null,this.once("end",()=>{if(this._read(),--t._fileEndsLeft===0&&t._finalcb){let r=t._finalcb;t._finalcb=null,process.nextTick(r)}})}_read(e){let t=this._readcb;t&&(this._readcb=null,t())}},LE={push:(A,e)=>{},destroy:()=>{}};function ff(A,e){let t=A._writecb;A._writecb=null,e?A.destroy(e):t&&t()}function df(A,e){return A}var Ji=class extends Qf{constructor(e){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof e.highWaterMark=="number"?e.highWaterMark:void 0};if(super(t),!e.conType.params||typeof e.conType.params.boundary!="string")throw new Error("Multipart: Boundary not found");let r=e.conType.params.boundary,s=typeof e.defParamCharset=="string"&&e.defParamCharset?Cf(e.defParamCharset):df,n=e.defCharset||"utf8",i=e.preservePath,o={autoDestroy:!0,emitClose:!0,highWaterMark:typeof e.fileHwm=="number"?e.fileHwm:void 0},g=e.limits,a=g&&typeof g.fieldSize=="number"?g.fieldSize:1*1024*1024,Q=g&&typeof g.fileSize=="number"?g.fileSize:1/0,E=g&&typeof g.files=="number"?g.files:1/0,C=g&&typeof g.fields=="number"?g.fields:1/0,B=g&&typeof g.parts=="number"?g.parts:1/0,I=-1,h=0,l=0,u=!1;this._fileEndsLeft=0,this._fileStream=void 0,this._complete=!1;let F=0,w,k=0,T,O,V,K,uA=!1,IA=!1,wt=!1;this._hparser=null;let wA=new Mi(_=>{this._hparser=null,u=!1,V="text/plain",T=n,O="7bit",K=void 0,uA=!1;let tA;if(!_["content-disposition"]){u=!0;return}let U=If(_["content-disposition"][0],s);if(!U||U.type!=="form-data"){u=!0;return}if(U.params&&(U.params.name&&(K=U.params.name),U.params["filename*"]?tA=U.params["filename*"]:U.params.filename&&(tA=U.params.filename),tA!==void 0&&!i&&(tA=af(tA))),_["content-type"]){let S=Bf(_["content-type"][0]);S&&(V=`${S.type}/${S.subtype}`,S.params&&typeof S.params.charset=="string"&&(T=S.params.charset.toLowerCase()))}if(_["content-transfer-encoding"]&&(O=_["content-transfer-encoding"][0].toLowerCase()),V==="application/octet-stream"||tA!==void 0){if(l===E){IA||(IA=!0,this.emit("filesLimit")),u=!0;return}if(++l,this.listenerCount("file")===0){u=!0;return}F=0,this._fileStream=new Yi(o,this),++this._fileEndsLeft,this.emit("file",K,this._fileStream,{filename:tA,encoding:O,mimeType:V})}else{if(h===C){wt||(wt=!0,this.emit("fieldsLimit")),u=!0;return}if(++h,this.listenerCount("field")===0){u=!0;return}w=[],k=0}}),gA=0,Be=(_,tA,U,S,Ie)=>{A:for(;tA;){if(this._hparser!==null){let x=this._hparser.push(tA,U,S);if(x===-1){this._hparser=null,wA.reset(),this.emit("error",new Error("Malformed part header"));break}U=x}if(U===S)break;if(gA!==0){if(gA===1){switch(tA[U]){case 45:gA=2,++U;break;case 13:gA=3,++U;break;default:gA=0}if(U===S)return}if(gA===2){if(gA=0,tA[U]===45){this._complete=!0,this._bparser=LE;return}let x=this._writecb;this._writecb=bE,Be(!1,lf,0,1,!1),this._writecb=x}else if(gA===3)if(gA=0,tA[U]===10){if(++U,I>=B||(this._hparser=wA,U===S))break;continue A}else{let x=this._writecb;this._writecb=bE,Be(!1,hf,0,1,!1),this._writecb=x}}if(!u){if(this._fileStream){let x,TA=Math.min(S-U,Q-F);Ie?x=tA.slice(U,U+TA):(x=Buffer.allocUnsafe(TA),tA.copy(x,0,U,U+TA)),F+=x.length,F===Q?(x.length>0&&this._fileStream.push(x),this._fileStream.emit("limit"),this._fileStream.truncated=!0,u=!0):this._fileStream.push(x)||(this._writecb&&(this._fileStream._readcb=this._writecb),this._writecb=null)}else if(w!==void 0){let x,TA=Math.min(S-U,a-k);Ie?x=tA.slice(U,U+TA):(x=Buffer.allocUnsafe(TA),tA.copy(x,0,U,U+TA)),k+=TA,w.push(x),k===a&&(u=!0,uA=!0)}}break}if(_){if(gA=1,this._fileStream)this._fileStream.push(null),this._fileStream=null;else if(w!==void 0){let x;switch(w.length){case 0:x="";break;case 1:x=mE(w[0],T,0);break;default:x=mE(Buffer.concat(w,k),T,0)}w=void 0,k=0,this.emit("field",K,x,{nameTruncated:!1,valueTruncated:uA,encoding:O,mimeType:V})}++I===B&&this.emit("partsLimit")}};this._bparser=new Ef(`\r ---${r}`,Be),this._writecb=null,this._finalcb=null,this.write(cf)}static detect(e){return e.type==="multipart"&&e.subtype==="form-data"}_write(e,t,r){this._writecb=r,this._bparser.push(e,0),this._writecb&&ff(this)}_destroy(e,t){this._hparser=null,this._bparser=LE,e||(e=YE(this));let r=this._fileStream;r&&(this._fileStream=null,r.destroy(e)),t(e)}_final(e){if(this._bparser.destroy(),!this._complete)return e(new Error("Unexpected end of form"));this._fileEndsLeft?this._finalcb=ME.bind(null,this,e):ME(this,e)}};function ME(A,e,t){if(t)return e(t);t=YE(A),e(t)}function YE(A){if(A._hparser)return new Error("Malformed part header");let e=A._fileStream;if(e&&(A._fileStream=null,e.destroy(new Error("Unexpected end of file"))),!A._complete)return new Error("Unexpected end of form")}var yf=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],wf=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];JE.exports=Ji});var vE=c((gb,TE)=>{"use strict";var{Writable:Df}=require("stream"),{getDecoder:pf}=cs(),Vi=class extends Df{constructor(e){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof e.highWaterMark=="number"?e.highWaterMark:void 0};super(t);let r=e.defCharset||"utf8";e.conType.params&&typeof e.conType.params.charset=="string"&&(r=e.conType.params.charset),this.charset=r;let s=e.limits;this.fieldSizeLimit=s&&typeof s.fieldSize=="number"?s.fieldSize:1*1024*1024,this.fieldsLimit=s&&typeof s.fields=="number"?s.fields:1/0,this.fieldNameSizeLimit=s&&typeof s.fieldNameSize=="number"?s.fieldNameSize:100,this._inKey=!0,this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,this._fields=0,this._key="",this._val="",this._byte=-2,this._lastPos=0,this._encode=0,this._decoder=pf(r)}static detect(e){return e.type==="application"&&e.subtype==="x-www-form-urlencoded"}_write(e,t,r){if(this._fields>=this.fieldsLimit)return r();let s=0,n=e.length;if(this._lastPos=0,this._byte!==-2){if(s=Gi(this,e,s,n),s===-1)return r(new Error("Malformed urlencoded form"));if(s>=n)return r();this._inKey?++this._bytesKey:++this._bytesVal}A:for(;s<n;)if(this._inKey){for(s=Ti(this,e,s,n);s<n;){switch(e[s]){case 61:this._lastPos<s&&(this._key+=e.latin1Slice(this._lastPos,s)),this._lastPos=++s,this._key=this._decoder(this._key,this._encode),this._encode=0,this._inKey=!1;continue A;case 38:if(this._lastPos<s&&(this._key+=e.latin1Slice(this._lastPos,s)),this._lastPos=++s,this._key=this._decoder(this._key,this._encode),this._encode=0,this._bytesKey>0&&this.emit("field",this._key,"",{nameTruncated:this._keyTrunc,valueTruncated:!1,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),r();continue;case 43:this._lastPos<s&&(this._key+=e.latin1Slice(this._lastPos,s)),this._key+=" ",this._lastPos=s+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<s&&(this._key+=e.latin1Slice(this._lastPos,s)),this._lastPos=s+1,this._byte=-1,s=Gi(this,e,s+1,n),s===-1)return r(new Error("Malformed urlencoded form"));if(s>=n)return r();++this._bytesKey,s=Ti(this,e,s,n);continue}++s,++this._bytesKey,s=Ti(this,e,s,n)}this._lastPos<s&&(this._key+=e.latin1Slice(this._lastPos,s))}else{for(s=vi(this,e,s,n);s<n;){switch(e[s]){case 38:if(this._lastPos<s&&(this._val+=e.latin1Slice(this._lastPos,s)),this._lastPos=++s,this._inKey=!0,this._val=this._decoder(this._val,this._encode),this._encode=0,(this._bytesKey>0||this._bytesVal>0)&&this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),r();continue A;case 43:this._lastPos<s&&(this._val+=e.latin1Slice(this._lastPos,s)),this._val+=" ",this._lastPos=s+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<s&&(this._val+=e.latin1Slice(this._lastPos,s)),this._lastPos=s+1,this._byte=-1,s=Gi(this,e,s+1,n),s===-1)return r(new Error("Malformed urlencoded form"));if(s>=n)return r();++this._bytesVal,s=vi(this,e,s,n);continue}++s,++this._bytesVal,s=vi(this,e,s,n)}this._lastPos<s&&(this._val+=e.latin1Slice(this._lastPos,s))}r()}_final(e){if(this._byte!==-2)return e(new Error("Malformed urlencoded form"));(!this._inKey||this._bytesKey>0||this._bytesVal>0)&&(this._inKey?this._key=this._decoder(this._key,this._encode):this._val=this._decoder(this._val,this._encode),this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"})),e()}};function Gi(A,e,t,r){if(t>=r)return r;if(A._byte===-1){let s=Hi[e[t++]];if(s===-1)return-1;if(s>=8&&(A._encode=2),t<r){let n=Hi[e[t++]];if(n===-1)return-1;A._inKey?A._key+=String.fromCharCode((s<<4)+n):A._val+=String.fromCharCode((s<<4)+n),A._byte=-2,A._lastPos=t}else A._byte=s}else{let s=Hi[e[t++]];if(s===-1)return-1;A._inKey?A._key+=String.fromCharCode((A._byte<<4)+s):A._val+=String.fromCharCode((A._byte<<4)+s),A._byte=-2,A._lastPos=t}return t}function Ti(A,e,t,r){if(A._bytesKey>A.fieldNameSizeLimit){for(A._keyTrunc||A._lastPos<t&&(A._key+=e.latin1Slice(A._lastPos,t-1)),A._keyTrunc=!0;t<r;++t){let s=e[t];if(s===61||s===38)break;++A._bytesKey}A._lastPos=t}return t}function vi(A,e,t,r){if(A._bytesVal>A.fieldSizeLimit){for(A._valTrunc||A._lastPos<t&&(A._val+=e.latin1Slice(A._lastPos,t-1)),A._valTrunc=!0;t<r&&e[t]!==38;++t)++A._bytesVal;A._lastPos=t}return t}var Hi=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];TE.exports=Vi});var VE=c((Qb,HE)=>{"use strict";var{parseContentType:Rf}=cs();function kf(A){let e=A.headers,t=Rf(e["content-type"]);if(!t)throw new Error("Malformed content type");for(let r of Ff){if(!r.detect(t))continue;let n={limits:A.limits,headers:e,conType:t,highWaterMark:void 0,fileHwm:void 0,defCharset:void 0,defParamCharset:void 0,preservePath:!1};return A.highWaterMark&&(n.highWaterMark=A.highWaterMark),A.fileHwm&&(n.fileHwm=A.fileHwm),n.defCharset=A.defCharset,n.defParamCharset=A.defParamCharset,n.preservePath=A.preservePath,new r(n)}throw new Error(`Unsupported content type: ${e["content-type"]}`)}var Ff=[GE(),vE()].filter(function(A){return typeof A.detect=="function"});HE.exports=A=>{if((typeof A!="object"||A===null)&&(A={}),typeof A.headers!="object"||A.headers===null||typeof A.headers["content-type"]!="string")throw new Error("Missing Content-Type");return kf(A)}});var He=c((Eb,xE)=>{"use strict";var{MessageChannel:Nf,receiveMessageOnPort:mf}=require("worker_threads"),bf=["GET","HEAD","POST"],Sf=[101,204,205,304],Uf=[301,302,303,307,308],Lf=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"],Mf=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],Yf=["follow","manual","error"],Jf=["GET","HEAD","OPTIONS","TRACE"],Gf=["navigate","same-origin","no-cors","cors"],Tf=["omit","same-origin","include"],vf=["default","no-store","reload","no-cache","force-cache","only-if-cached"],Hf=["content-encoding","content-language","content-location","content-type","content-length"],Vf=["half"],xf=["CONNECT","TRACE","TRACK"],qf=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],Wf=globalThis.DOMException??(()=>{try{atob("~")}catch(A){return Object.getPrototypeOf(A).constructor}})(),Rt,Of=globalThis.structuredClone??function(e,t=void 0){if(arguments.length===0)throw new TypeError("missing argument");return Rt||(Rt=new Nf),Rt.port1.unref(),Rt.port2.unref(),Rt.port1.postMessage(e,t?.transfer),mf(Rt.port2).message};xE.exports={DOMException:Wf,structuredClone:Of,subresource:qf,forbiddenMethods:xf,requestBodyHeader:Hf,referrerPolicy:Mf,requestRedirect:Yf,requestMode:Gf,requestCredentials:Tf,requestCache:vf,redirectStatus:Uf,corsSafeListedMethods:bf,nullBodyStatus:Sf,safeMethods:Jf,badPorts:Lf,requestDuplex:Vf}});var ur=c((ab,qE)=>{"use strict";var xi=Symbol.for("undici.globalOrigin.1");function Pf(){return globalThis[xi]}function Zf(A){if(A!==void 0&&typeof A!="string"&&!(A instanceof URL))throw new Error("Invalid base url");if(A===void 0){Object.defineProperty(globalThis,xi,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let e=new URL(A);if(e.protocol!=="http:"&&e.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${e.protocol}`);Object.defineProperty(globalThis,xi,{value:e,writable:!0,enumerable:!1,configurable:!1})}qE.exports={getGlobalOrigin:Pf,setGlobalOrigin:Zf}});var jA=c((Cb,XE)=>{"use strict";var{redirectStatus:Xf,badPorts:Kf,referrerPolicy:jf}=He(),{getGlobalOrigin:zf}=ur(),{performance:$f}=require("perf_hooks"),{isBlobLike:Ad,toUSVString:ed,ReadableStreamFrom:td}=G(),kt=require("assert"),{isUint8Array:rd}=require("util/types"),ls;try{ls=require("crypto")}catch{}function WE(A){let e=A.urlList,t=e.length;return t===0?null:e[t-1].toString()}function sd(A,e){if(!Xf.includes(A.status))return null;let t=A.headersList.get("location");return t!==null&&PE(t)&&(t=new URL(t,WE(A))),t&&!t.hash&&(t.hash=e),t}function dr(A){return A.urlList[A.urlList.length-1]}function nd(A){let e=dr(A);return ZE(e)&&Kf.includes(e.port)?"blocked":"allowed"}function id(A){return A instanceof Error||A?.constructor?.name==="Error"||A?.constructor?.name==="DOMException"}function od(A){for(let e=0;e<A.length;++e){let t=A.charCodeAt(e);if(!(t===9||t>=32&&t<=126||t>=128&&t<=255))return!1}return!0}function gd(A){return!(A>=127||A<=32||A==="("||A===")"||A==="<"||A===">"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}")}function OE(A){if(!A||typeof A!="string")return!1;for(let e=0;e<A.length;++e){let t=A.charCodeAt(e);if(t>127||!gd(t))return!1}return!0}function Qd(A){return A.length===0?!1:OE(A)}function PE(A){return!(A.startsWith(" ")||A.startsWith(" ")||A.endsWith(" ")||A.endsWith(" ")||A.includes("\0")||A.includes("\r")||A.includes(` -`))}function Ed(A,e){let{headersList:t}=e,r=(t.get("referrer-policy")??"").split(","),s="";if(r.length>0)for(let n=r.length;n!==0;n--){let i=r[n-1].trim();if(jf.includes(i)){s=i;break}}s!==""&&(A.referrerPolicy=s)}function ad(){return"allowed"}function Cd(){return"success"}function Bd(){return"success"}function Id(A){let e=null;e=A.mode,A.headersList.set("sec-fetch-mode",e)}function cd(A){let e=A.origin;if(A.responseTainting==="cors"||A.mode==="websocket")e&&A.headersList.append("origin",e);else if(A.method!=="GET"&&A.method!=="HEAD"){switch(A.referrerPolicy){case"no-referrer":e=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":A.origin&&Oi(A.origin)&&!Oi(dr(A))&&(e=null);break;case"same-origin":us(A,dr(A))||(e=null);break;default:}e&&A.headersList.append("origin",e)}}function hd(A){return $f.now()}function ld(A){return{startTime:A.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:A.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function ud(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function fd(A){return{referrerPolicy:A.referrerPolicy}}function dd(A){let e=A.referrerPolicy;kt(e);let t=null;if(A.referrer==="client"){let o=zf();if(!o||o.origin==="null")return"no-referrer";t=new URL(o)}else A.referrer instanceof URL&&(t=A.referrer);let r=qi(t),s=qi(t,!0);r.toString().length>4096&&(r=s);let n=us(A,r),i=fr(r)&&!fr(A.url);switch(e){case"origin":return s??qi(t,!0);case"unsafe-url":return r;case"same-origin":return n?s:"no-referrer";case"origin-when-cross-origin":return n?r:s;case"strict-origin-when-cross-origin":{let o=dr(A);return us(r,o)?r:fr(r)&&!fr(o)?"no-referrer":s}case"strict-origin":case"no-referrer-when-downgrade":default:return i?"no-referrer":s}}function qi(A,e){return kt(A instanceof URL),A.protocol==="file:"||A.protocol==="about:"||A.protocol==="blank:"?"no-referrer":(A.username="",A.password="",A.hash="",e&&(A.pathname="",A.search=""),A)}function fr(A){if(!(A instanceof URL))return!1;if(A.href==="about:blank"||A.href==="about:srcdoc"||A.protocol==="data:"||A.protocol==="file:")return!0;return e(A.origin);function e(t){if(t==null||t==="null")return!1;let r=new URL(t);return!!(r.protocol==="https:"||r.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(r.hostname)||r.hostname==="localhost"||r.hostname.includes("localhost.")||r.hostname.endsWith(".localhost"))}}function yd(A,e){if(ls===void 0)return!0;let t=Dd(e);if(t==="no metadata"||t.length===0)return!0;let r=t.sort((i,o)=>o.algo.localeCompare(i.algo)),s=r[0].algo,n=r.filter(i=>i.algo===s);for(let i of n){let o=i.algo,g=i.hash;if(ls.createHash(o).update(A).digest("base64")===g)return!0}return!1}var wd=/((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\x21-\x7e]?)?/i;function Dd(A){let e=[],t=!0,r=ls.getHashes();for(let s of A.split(" ")){t=!1;let n=wd.exec(s);if(n===null||n.groups===void 0)continue;let i=n.groups.algo;r.includes(i.toLowerCase())&&e.push(n.groups)}return t===!0?"no metadata":e}function pd(A){}function us(A,e){return A.origin===e.origin&&A.origin==="null"||A.protocol===e.protocol&&A.hostname===e.hostname&&A.port===e.port}function Rd(){let A,e;return{promise:new Promise((r,s)=>{A=r,e=s}),resolve:A,reject:e}}function kd(A){return A.controller.state==="aborted"}function Fd(A){return A.controller.state==="aborted"||A.controller.state==="terminated"}function Nd(A){return/^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(A)?A.toUpperCase():A}function md(A){let e=JSON.stringify(A);if(e===void 0)throw new TypeError("Value is not JSON serializable");return kt(typeof e=="string"),e}var bd=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function Sd(A,e,t){let r={index:0,kind:t,target:A},s={next(){if(Object.getPrototypeOf(this)!==s)throw new TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`);let{index:n,kind:i,target:o}=r,g=o(),a=g.length;if(n>=a)return{value:void 0,done:!0};let Q=g[n];return r.index=n+1,Ud(Q,i)},[Symbol.toStringTag]:`${e} Iterator`};return Object.setPrototypeOf(s,bd),Object.setPrototypeOf({},s)}function Ud(A,e){let t;switch(e){case"key":{t=A[0];break}case"value":{t=A[1];break}case"key+value":{t=A;break}}return{value:t,done:!1}}function Ld(A,e,t){let r=i=>queueMicrotask(()=>e(i)),s=i=>queueMicrotask(()=>t(i)),n;try{n=A.stream.getReader()}catch(i){s(i);return}_E(n,r,s)}var Wi=globalThis.ReadableStream;function Md(A){return Wi||(Wi=require("stream/web").ReadableStream),A instanceof Wi||A[Symbol.toStringTag]==="ReadableStream"&&typeof A.tee=="function"}var Yd=65535;function Jd(A){return A.length<Yd?String.fromCharCode(...A):A.reduce((e,t)=>e+String.fromCharCode(t),"")}function Gd(A){try{A.close()}catch(e){if(!e.message.includes("Controller is already closed"))throw e}}function Td(A){for(let e=0;e<A.length;e++)kt(A.charCodeAt(e)<=255);return A}async function _E(A,e,t){let r=[],s=0;for(;;){let n,i;try{({done:n,value:i}=await A.read())}catch(o){t(o);return}if(n){e(Buffer.concat(r,s));return}if(!rd(i)){t(new TypeError("Received non-Uint8Array chunk"));return}r.push(i),s+=i.length}}function vd(A){kt("protocol"in A);let e=A.protocol;return e==="about:"||e==="blob:"||e==="data:"}function Oi(A){return typeof A=="string"?A.startsWith("https:"):A.protocol==="https:"}function ZE(A){kt("protocol"in A);let e=A.protocol;return e==="http:"||e==="https:"}var Hd=Object.hasOwn||((A,e)=>Object.prototype.hasOwnProperty.call(A,e));XE.exports={isAborted:kd,isCancelled:Fd,createDeferredPromise:Rd,ReadableStreamFrom:td,toUSVString:ed,tryUpgradeRequestToAPotentiallyTrustworthyURL:pd,coarsenedSharedCurrentTime:hd,determineRequestsReferrer:dd,makePolicyContainer:ud,clonePolicyContainer:fd,appendFetchMetadata:Id,appendRequestOriginHeader:cd,TAOCheck:Bd,corsCheck:Cd,crossOriginResourcePolicyCheck:ad,createOpaqueTimingInfo:ld,setRequestReferrerPolicyOnRedirect:Ed,isValidHTTPToken:OE,requestBadPort:nd,requestCurrentURL:dr,responseURL:WE,responseLocationURL:sd,isBlobLike:Ad,isURLPotentiallyTrustworthy:fr,isValidReasonPhrase:od,sameOrigin:us,normalizeMethod:Nd,serializeJavascriptValueToJSONString:md,makeIterator:Sd,isValidHeaderName:Qd,isValidHeaderValue:PE,hasOwn:Hd,isErrorLike:id,fullyReadBody:Ld,bytesMatch:yd,isReadableStreamLike:Md,readableStreamClose:Gd,isomorphicEncode:Td,isomorphicDecode:Jd,urlIsLocal:vd,urlHasHttpsScheme:Oi,urlIsHttpHttpsScheme:ZE,readAllBytes:_E}});var Fe=c((Bb,KE)=>{"use strict";KE.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}});var DA=c((Ib,zE)=>{"use strict";var{types:he}=require("util"),{hasOwn:jE,toUSVString:Vd}=jA(),d={};d.converters={};d.util={};d.errors={};d.errors.exception=function(A){return new TypeError(`${A.header}: ${A.message}`)};d.errors.conversionFailed=function(A){let e=A.types.length===1?"":" one of",t=`${A.argument} could not be converted to${e}: ${A.types.join(", ")}.`;return d.errors.exception({header:A.prefix,message:t})};d.errors.invalidArgument=function(A){return d.errors.exception({header:A.prefix,message:`"${A.value}" is an invalid ${A.type}.`})};d.brandCheck=function(A,e,t=void 0){if(t?.strict!==!1&&!(A instanceof e))throw new TypeError("Illegal invocation");return A?.[Symbol.toStringTag]===e.prototype[Symbol.toStringTag]};d.argumentLengthCheck=function({length:A},e,t){if(A<e)throw d.errors.exception({message:`${e} argument${e!==1?"s":""} required, but${A?" only":""} ${A} found.`,...t})};d.illegalConstructor=function(){throw d.errors.exception({header:"TypeError",message:"Illegal constructor"})};d.util.Type=function(A){switch(typeof A){case"undefined":return"Undefined";case"boolean":return"Boolean";case"string":return"String";case"symbol":return"Symbol";case"number":return"Number";case"bigint":return"BigInt";case"function":case"object":return A===null?"Null":"Object"}};d.util.ConvertToInt=function(A,e,t,r={}){let s,n;e===64?(s=Math.pow(2,53)-1,t==="unsigned"?n=0:n=Math.pow(-2,53)+1):t==="unsigned"?(n=0,s=Math.pow(2,e)-1):(n=Math.pow(-2,e)-1,s=Math.pow(2,e-1)-1);let i=Number(A);if(i===0&&(i=0),r.enforceRange===!0){if(Number.isNaN(i)||i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY)throw d.errors.exception({header:"Integer conversion",message:`Could not convert ${A} to an integer.`});if(i=d.util.IntegerPart(i),i<n||i>s)throw d.errors.exception({header:"Integer conversion",message:`Value must be between ${n}-${s}, got ${i}.`});return i}return!Number.isNaN(i)&&r.clamp===!0?(i=Math.min(Math.max(i,n),s),Math.floor(i)%2===0?i=Math.floor(i):i=Math.ceil(i),i):Number.isNaN(i)||i===0&&Object.is(0,i)||i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY?0:(i=d.util.IntegerPart(i),i=i%Math.pow(2,e),t==="signed"&&i>=Math.pow(2,e)-1?i-Math.pow(2,e):i)};d.util.IntegerPart=function(A){let e=Math.floor(Math.abs(A));return A<0?-1*e:e};d.sequenceConverter=function(A){return e=>{if(d.util.Type(e)!=="Object")throw d.errors.exception({header:"Sequence",message:`Value of type ${d.util.Type(e)} is not an Object.`});let t=e?.[Symbol.iterator]?.(),r=[];if(t===void 0||typeof t.next!="function")throw d.errors.exception({header:"Sequence",message:"Object is not an iterator."});for(;;){let{done:s,value:n}=t.next();if(s)break;r.push(A(n))}return r}};d.recordConverter=function(A,e){return t=>{if(d.util.Type(t)!=="Object")throw d.errors.exception({header:"Record",message:`Value of type ${d.util.Type(t)} is not an Object.`});let r={};if(!he.isProxy(t)){let n=Object.keys(t);for(let i of n){let o=A(i),g=e(t[i]);r[o]=g}return r}let s=Reflect.ownKeys(t);for(let n of s)if(Reflect.getOwnPropertyDescriptor(t,n)?.enumerable){let o=A(n),g=e(t[n]);r[o]=g}return r}};d.interfaceConverter=function(A){return(e,t={})=>{if(t.strict!==!1&&!(e instanceof A))throw d.errors.exception({header:A.name,message:`Expected ${e} to be an instance of ${A.name}.`});return e}};d.dictionaryConverter=function(A){return e=>{let t=d.util.Type(e),r={};if(t==="Null"||t==="Undefined")return r;if(t!=="Object")throw d.errors.exception({header:"Dictionary",message:`Expected ${e} to be one of: Null, Undefined, Object.`});for(let s of A){let{key:n,defaultValue:i,required:o,converter:g}=s;if(o===!0&&!jE(e,n))throw d.errors.exception({header:"Dictionary",message:`Missing required key "${n}".`});let a=e[n],Q=jE(s,"defaultValue");if(Q&&a!==null&&(a=a??i),o||Q||a!==void 0){if(a=g(a),s.allowedValues&&!s.allowedValues.includes(a))throw d.errors.exception({header:"Dictionary",message:`${a} is not an accepted type. Expected one of ${s.allowedValues.join(", ")}.`});r[n]=a}}return r}};d.nullableConverter=function(A){return e=>e===null?e:A(e)};d.converters.DOMString=function(A,e={}){if(A===null&&e.legacyNullToEmptyString)return"";if(typeof A=="symbol")throw new TypeError("Could not convert argument of type symbol to string.");return String(A)};d.converters.ByteString=function(A){let e=d.converters.DOMString(A);for(let t=0;t<e.length;t++){let r=e.charCodeAt(t);if(r>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${t} has a value of ${r} which is greater than 255.`)}return e};d.converters.USVString=Vd;d.converters.boolean=function(A){return!!A};d.converters.any=function(A){return A};d.converters["long long"]=function(A){return d.util.ConvertToInt(A,64,"signed")};d.converters["unsigned long long"]=function(A){return d.util.ConvertToInt(A,64,"unsigned")};d.converters["unsigned long"]=function(A){return d.util.ConvertToInt(A,32,"unsigned")};d.converters["unsigned short"]=function(A,e){return d.util.ConvertToInt(A,16,"unsigned",e)};d.converters.ArrayBuffer=function(A,e={}){if(d.util.Type(A)!=="Object"||!he.isAnyArrayBuffer(A))throw d.errors.conversionFailed({prefix:`${A}`,argument:`${A}`,types:["ArrayBuffer"]});if(e.allowShared===!1&&he.isSharedArrayBuffer(A))throw d.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return A};d.converters.TypedArray=function(A,e,t={}){if(d.util.Type(A)!=="Object"||!he.isTypedArray(A)||A.constructor.name!==e.name)throw d.errors.conversionFailed({prefix:`${e.name}`,argument:`${A}`,types:[e.name]});if(t.allowShared===!1&&he.isSharedArrayBuffer(A.buffer))throw d.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return A};d.converters.DataView=function(A,e={}){if(d.util.Type(A)!=="Object"||!he.isDataView(A))throw d.errors.exception({header:"DataView",message:"Object is not a DataView."});if(e.allowShared===!1&&he.isSharedArrayBuffer(A.buffer))throw d.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return A};d.converters.BufferSource=function(A,e={}){if(he.isAnyArrayBuffer(A))return d.converters.ArrayBuffer(A,e);if(he.isTypedArray(A))return d.converters.TypedArray(A,A.constructor);if(he.isDataView(A))return d.converters.DataView(A,e);throw new TypeError(`Could not convert ${A} to a BufferSource.`)};d.converters["sequence<ByteString>"]=d.sequenceConverter(d.converters.ByteString);d.converters["sequence<sequence<ByteString>>"]=d.sequenceConverter(d.converters["sequence<ByteString>"]);d.converters["record<ByteString, ByteString>"]=d.recordConverter(d.converters.ByteString,d.converters.ByteString);zE.exports={webidl:d}});var ge=c((cb,sa)=>{var ds=require("assert"),{atob:xd}=require("buffer"),{isomorphicDecode:qd}=jA(),Wd=new TextEncoder,fs=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/,Od=/(\u000A|\u000D|\u0009|\u0020)/,Pd=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function Zd(A){ds(A.protocol==="data:");let e=ea(A,!0);e=e.slice(5);let t={position:0},r=Ft(",",e,t),s=r.length;if(r=zd(r,!0,!0),t.position>=e.length)return"failure";t.position++;let n=e.slice(s+1),i=ta(n);if(/;(\u0020){0,}base64$/i.test(r)){let g=qd(i);if(i=Kd(g),i==="failure")return"failure";r=r.slice(0,-6),r=r.replace(/(\u0020)+$/,""),r=r.slice(0,-1)}r.startsWith(";")&&(r="text/plain"+r);let o=_i(r);return o==="failure"&&(o=_i("text/plain;charset=US-ASCII")),{mimeType:o,body:i}}function ea(A,e=!1){let t=A.href;if(!e)return t;let r=t.lastIndexOf("#");return r===-1?t:t.slice(0,r)}function ys(A,e,t){let r="";for(;t.position<e.length&&A(e[t.position]);)r+=e[t.position],t.position++;return r}function Ft(A,e,t){let r=e.indexOf(A,t.position),s=t.position;return r===-1?(t.position=e.length,e.slice(s)):(t.position=r,e.slice(s,t.position))}function ta(A){let e=Wd.encode(A);return Xd(e)}function Xd(A){let e=[];for(let t=0;t<A.length;t++){let r=A[t];if(r!==37)e.push(r);else if(r===37&&!/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(A[t+1],A[t+2])))e.push(37);else{let s=String.fromCharCode(A[t+1],A[t+2]),n=Number.parseInt(s,16);e.push(n),t+=2}}return Uint8Array.from(e)}function _i(A){A=Pi(A,!0,!0);let e={position:0},t=Ft("/",A,e);if(t.length===0||!fs.test(t)||e.position>A.length)return"failure";e.position++;let r=Ft(";",A,e);if(r=Pi(r,!1,!0),r.length===0||!fs.test(r))return"failure";let s=t.toLowerCase(),n=r.toLowerCase(),i={type:s,subtype:n,parameters:new Map,essence:`${s}/${n}`};for(;e.position<A.length;){e.position++,ys(a=>Od.test(a),A,e);let o=ys(a=>a!==";"&&a!=="=",A,e);if(o=o.toLowerCase(),e.position<A.length){if(A[e.position]===";")continue;e.position++}if(e.position>A.length)break;let g=null;if(A[e.position]==='"')g=ra(A,e,!0),Ft(";",A,e);else if(g=Ft(";",A,e),g=Pi(g,!1,!0),g.length===0)continue;o.length!==0&&fs.test(o)&&(g.length===0||Pd.test(g))&&!i.parameters.has(o)&&i.parameters.set(o,g)}return i}function Kd(A){if(A=A.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,""),A.length%4===0&&(A=A.replace(/=?=$/,"")),A.length%4===1||/[^+/0-9A-Za-z]/.test(A))return"failure";let e=xd(A),t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}function ra(A,e,t){let r=e.position,s="";for(ds(A[e.position]==='"'),e.position++;s+=ys(i=>i!=='"'&&i!=="\\",A,e),!(e.position>=A.length);){let n=A[e.position];if(e.position++,n==="\\"){if(e.position>=A.length){s+="\\";break}s+=A[e.position],e.position++}else{ds(n==='"');break}}return t?s:A.slice(r,e.position)}function jd(A){ds(A!=="failure");let{parameters:e,essence:t}=A,r=t;for(let[s,n]of e.entries())r+=";",r+=s,r+="=",fs.test(n)||(n=n.replace(/(\\|")/g,"\\$1"),n='"'+n,n+='"'),r+=n;return r}function $E(A){return A==="\r"||A===` -`||A===" "||A===" "}function Pi(A,e=!0,t=!0){let r=0,s=A.length-1;if(e)for(;r<A.length&&$E(A[r]);r++);if(t)for(;s>0&&$E(A[s]);s--);return A.slice(r,s+1)}function Aa(A){return A==="\r"||A===` -`||A===" "||A==="\f"||A===" "}function zd(A,e=!0,t=!0){let r=0,s=A.length-1;if(e)for(;r<A.length&&Aa(A[r]);r++);if(t)for(;s>0&&Aa(A[s]);s--);return A.slice(r,s+1)}sa.exports={dataURLProcessor:Zd,URLSerializer:ea,collectASequenceOfCodePoints:ys,collectASequenceOfCodePointsFast:Ft,stringPercentDecode:ta,parseMIMEType:_i,collectAnHTTPQuotedString:ra,serializeAMimeType:jd}});var ws=c((hb,Qa)=>{"use strict";var{Blob:oa,File:na}=require("buffer"),{types:Zi}=require("util"),{kState:vA}=Fe(),{isBlobLike:ga}=jA(),{webidl:H}=DA(),{parseMIMEType:$d,serializeAMimeType:A0}=ge(),{kEnumerableProperty:ia}=G(),yr=class A extends oa{constructor(e,t,r={}){H.argumentLengthCheck(arguments,2,{header:"File constructor"}),e=H.converters["sequence<BlobPart>"](e),t=H.converters.USVString(t),r=H.converters.FilePropertyBag(r);let s=t,n=r.type,i;A:{if(n){if(n=$d(n),n==="failure"){n="";break A}n=A0(n).toLowerCase()}i=r.lastModified}super(e0(e,r),{type:n}),this[vA]={name:s,lastModified:i,type:n}}get name(){return H.brandCheck(this,A),this[vA].name}get lastModified(){return H.brandCheck(this,A),this[vA].lastModified}get type(){return H.brandCheck(this,A),this[vA].type}},Xi=class A{constructor(e,t,r={}){let s=t,n=r.type,i=r.lastModified??Date.now();this[vA]={blobLike:e,name:s,type:n,lastModified:i}}stream(...e){return H.brandCheck(this,A),this[vA].blobLike.stream(...e)}arrayBuffer(...e){return H.brandCheck(this,A),this[vA].blobLike.arrayBuffer(...e)}slice(...e){return H.brandCheck(this,A),this[vA].blobLike.slice(...e)}text(...e){return H.brandCheck(this,A),this[vA].blobLike.text(...e)}get size(){return H.brandCheck(this,A),this[vA].blobLike.size}get type(){return H.brandCheck(this,A),this[vA].blobLike.type}get name(){return H.brandCheck(this,A),this[vA].name}get lastModified(){return H.brandCheck(this,A),this[vA].lastModified}get[Symbol.toStringTag](){return"File"}};Object.defineProperties(yr.prototype,{[Symbol.toStringTag]:{value:"File",configurable:!0},name:ia,lastModified:ia});H.converters.Blob=H.interfaceConverter(oa);H.converters.BlobPart=function(A,e){if(H.util.Type(A)==="Object"){if(ga(A))return H.converters.Blob(A,{strict:!1});if(ArrayBuffer.isView(A)||Zi.isAnyArrayBuffer(A))return H.converters.BufferSource(A,e)}return H.converters.USVString(A,e)};H.converters["sequence<BlobPart>"]=H.sequenceConverter(H.converters.BlobPart);H.converters.FilePropertyBag=H.dictionaryConverter([{key:"lastModified",converter:H.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:H.converters.DOMString,defaultValue:""},{key:"endings",converter:A=>(A=H.converters.DOMString(A),A=A.toLowerCase(),A!=="native"&&(A="transparent"),A),defaultValue:"transparent"}]);function e0(A,e){let t=[];for(let r of A)if(typeof r=="string"){let s=r;e.endings==="native"&&(s=t0(s)),t.push(new TextEncoder().encode(s))}else Zi.isAnyArrayBuffer(r)||Zi.isTypedArray(r)?r.buffer?t.push(new Uint8Array(r.buffer,r.byteOffset,r.byteLength)):t.push(new Uint8Array(r)):ga(r)&&t.push(r);return t}function t0(A){let e=` -`;return process.platform==="win32"&&(e=`\r -`),A.replace(/\r?\n/g,e)}function r0(A){return na&&A instanceof na||A instanceof yr||A&&(typeof A.stream=="function"||typeof A.arrayBuffer=="function")&&A[Symbol.toStringTag]==="File"}Qa.exports={File:yr,FileLike:Xi,isFileLike:r0}});var ps=c((lb,Ia)=>{"use strict";var{isBlobLike:Ds,toUSVString:s0,makeIterator:Ki}=jA(),{kState:fA}=Fe(),{File:Ba,FileLike:Ea,isFileLike:n0}=ws(),{webidl:q}=DA(),{Blob:i0,File:ji}=require("buffer"),aa=ji??Ba,Nt=class A{constructor(e){if(e!==void 0)throw q.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[fA]=[]}append(e,t,r=void 0){if(q.brandCheck(this,A),q.argumentLengthCheck(arguments,2,{header:"FormData.append"}),arguments.length===3&&!Ds(t))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");e=q.converters.USVString(e),t=Ds(t)?q.converters.Blob(t,{strict:!1}):q.converters.USVString(t),r=arguments.length===3?q.converters.USVString(r):void 0;let s=Ca(e,t,r);this[fA].push(s)}delete(e){q.brandCheck(this,A),q.argumentLengthCheck(arguments,1,{header:"FormData.delete"}),e=q.converters.USVString(e),this[fA]=this[fA].filter(t=>t.name!==e)}get(e){q.brandCheck(this,A),q.argumentLengthCheck(arguments,1,{header:"FormData.get"}),e=q.converters.USVString(e);let t=this[fA].findIndex(r=>r.name===e);return t===-1?null:this[fA][t].value}getAll(e){return q.brandCheck(this,A),q.argumentLengthCheck(arguments,1,{header:"FormData.getAll"}),e=q.converters.USVString(e),this[fA].filter(t=>t.name===e).map(t=>t.value)}has(e){return q.brandCheck(this,A),q.argumentLengthCheck(arguments,1,{header:"FormData.has"}),e=q.converters.USVString(e),this[fA].findIndex(t=>t.name===e)!==-1}set(e,t,r=void 0){if(q.brandCheck(this,A),q.argumentLengthCheck(arguments,2,{header:"FormData.set"}),arguments.length===3&&!Ds(t))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");e=q.converters.USVString(e),t=Ds(t)?q.converters.Blob(t,{strict:!1}):q.converters.USVString(t),r=arguments.length===3?s0(r):void 0;let s=Ca(e,t,r),n=this[fA].findIndex(i=>i.name===e);n!==-1?this[fA]=[...this[fA].slice(0,n),s,...this[fA].slice(n+1).filter(i=>i.name!==e)]:this[fA].push(s)}entries(){return q.brandCheck(this,A),Ki(()=>this[fA].map(e=>[e.name,e.value]),"FormData","key+value")}keys(){return q.brandCheck(this,A),Ki(()=>this[fA].map(e=>[e.name,e.value]),"FormData","key")}values(){return q.brandCheck(this,A),Ki(()=>this[fA].map(e=>[e.name,e.value]),"FormData","value")}forEach(e,t=globalThis){if(q.brandCheck(this,A),q.argumentLengthCheck(arguments,1,{header:"FormData.forEach"}),typeof e!="function")throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.");for(let[r,s]of this)e.apply(t,[s,r,this])}};Nt.prototype[Symbol.iterator]=Nt.prototype.entries;Object.defineProperties(Nt.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function Ca(A,e,t){if(A=Buffer.from(A).toString("utf8"),typeof e=="string")e=Buffer.from(e).toString("utf8");else if(n0(e)||(e=e instanceof i0?new aa([e],"blob",{type:e.type}):new Ea(e,"blob",{type:e.type})),t!==void 0){let r={type:e.type,lastModified:e.lastModified};e=ji&&e instanceof ji||e instanceof Ba?new aa([e],t,r):new Ea(e,t,r)}return{name:A,value:e}}Ia.exports={FormData:Nt}});var wr=c((ub,Da)=>{"use strict";var o0=VE(),mt=G(),{ReadableStreamFrom:g0,isBlobLike:ca,isReadableStreamLike:Q0,readableStreamClose:E0,createDeferredPromise:a0,fullyReadBody:C0}=jA(),{FormData:ha}=ps(),{kState:me}=Fe(),{webidl:zi}=DA(),{DOMException:fa,structuredClone:B0}=He(),{Blob:I0,File:c0}=require("buffer"),{kBodyUsed:h0}=$(),$i=require("assert"),{isErrored:l0}=G(),{isUint8Array:da,isArrayBuffer:u0}=require("util/types"),{File:f0}=ws(),{parseMIMEType:d0,serializeAMimeType:y0}=ge(),Ne=globalThis.ReadableStream,la=c0??f0;function ya(A,e=!1){Ne||(Ne=require("stream/web").ReadableStream);let t=null;A instanceof Ne?t=A:ca(A)?t=A.stream():t=new Ne({async pull(g){g.enqueue(typeof s=="string"?new TextEncoder().encode(s):s),queueMicrotask(()=>E0(g))},start(){},type:void 0}),$i(Q0(t));let r=null,s=null,n=null,i=null;if(typeof A=="string")s=A,i="text/plain;charset=UTF-8";else if(A instanceof URLSearchParams)s=A.toString(),i="application/x-www-form-urlencoded;charset=UTF-8";else if(u0(A))s=new Uint8Array(A.slice());else if(ArrayBuffer.isView(A))s=new Uint8Array(A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength));else if(mt.isFormDataLike(A)){let g=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,a=`--${g}\r -Content-Disposition: form-data`;let Q=u=>u.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),E=u=>u.replace(/\r?\n|\r/g,`\r -`),C=new TextEncoder,B=[],I=new Uint8Array([13,10]);n=0;let h=!1;for(let[u,F]of A)if(typeof F=="string"){let w=C.encode(a+`; name="${Q(E(u))}"\r -\r -${E(F)}\r -`);B.push(w),n+=w.byteLength}else{let w=C.encode(`${a}; name="${Q(E(u))}"`+(F.name?`; filename="${Q(F.name)}"`:"")+`\r -Content-Type: ${F.type||"application/octet-stream"}\r -\r -`);B.push(w,F,I),typeof F.size=="number"?n+=w.byteLength+F.size+I.byteLength:h=!0}let l=C.encode(`--${g}--`);B.push(l),n+=l.byteLength,h&&(n=null),s=A,r=async function*(){for(let u of B)u.stream?yield*u.stream():yield u},i="multipart/form-data; boundary="+g}else if(ca(A))s=A,n=A.size,A.type&&(i=A.type);else if(typeof A[Symbol.asyncIterator]=="function"){if(e)throw new TypeError("keepalive");if(mt.isDisturbed(A)||A.locked)throw new TypeError("Response body object should not be disturbed or locked");t=A instanceof Ne?A:g0(A)}if((typeof s=="string"||mt.isBuffer(s))&&(n=Buffer.byteLength(s)),r!=null){let g;t=new Ne({async start(){g=r(A)[Symbol.asyncIterator]()},async pull(a){let{value:Q,done:E}=await g.next();return E?queueMicrotask(()=>{a.close()}):l0(t)||a.enqueue(new Uint8Array(Q)),a.desiredSize>0},async cancel(a){await g.return()},type:void 0})}return[{stream:t,source:s,length:n},i]}function w0(A,e=!1){return Ne||(Ne=require("stream/web").ReadableStream),A instanceof Ne&&($i(!mt.isDisturbed(A),"The body has already been consumed."),$i(!A.locked,"The stream is locked.")),ya(A,e)}function D0(A){let[e,t]=A.stream.tee(),r=B0(t,{transfer:[t]}),[,s]=r.tee();return A.stream=e,{stream:s,length:A.length,source:A.source}}async function*ua(A){if(A)if(da(A))yield A;else{let e=A.stream;if(mt.isDisturbed(e))throw new TypeError("The body has already been consumed.");if(e.locked)throw new TypeError("The stream is locked.");e[h0]=!0,yield*e}}function Ao(A){if(A.aborted)throw new fa("The operation was aborted.","AbortError")}function p0(A){return{blob(){return Rs(this,t=>{let r=N0(this);return r==="failure"?r="":r&&(r=y0(r)),new I0([t],{type:r})},A)},arrayBuffer(){return Rs(this,t=>new Uint8Array(t).buffer,A)},text(){return Rs(this,wa,A)},json(){return Rs(this,F0,A)},async formData(){zi.brandCheck(this,A),Ao(this[me]);let t=this.headers.get("Content-Type");if(/multipart\/form-data/.test(t)){let r={};for(let[o,g]of this.headers)r[o.toLowerCase()]=g;let s=new ha,n;try{n=o0({headers:r,defParamCharset:"utf8"})}catch(o){throw new fa(`${o}`,"AbortError")}n.on("field",(o,g)=>{s.append(o,g)}),n.on("file",(o,g,a)=>{let{filename:Q,encoding:E,mimeType:C}=a,B=[];if(E==="base64"||E.toLowerCase()==="base64"){let I="";g.on("data",h=>{I+=h.toString().replace(/[\r\n]/gm,"");let l=I.length-I.length%4;B.push(Buffer.from(I.slice(0,l),"base64")),I=I.slice(l)}),g.on("end",()=>{B.push(Buffer.from(I,"base64")),s.append(o,new la(B,Q,{type:C}))})}else g.on("data",I=>{B.push(I)}),g.on("end",()=>{s.append(o,new la(B,Q,{type:C}))})});let i=new Promise((o,g)=>{n.on("finish",o),n.on("error",a=>g(new TypeError(a)))});if(this.body!==null)for await(let o of ua(this[me].body))n.write(o);return n.end(),await i,s}else if(/application\/x-www-form-urlencoded/.test(t)){let r;try{let n="",i=new TextDecoder("utf-8",{ignoreBOM:!0});for await(let o of ua(this[me].body)){if(!da(o))throw new TypeError("Expected Uint8Array chunk");n+=i.decode(o,{stream:!0})}n+=i.decode(),r=new URLSearchParams(n)}catch(n){throw Object.assign(new TypeError,{cause:n})}let s=new ha;for(let[n,i]of r)s.append(n,i);return s}else throw await Promise.resolve(),Ao(this[me]),zi.errors.exception({header:`${A.name}.formData`,message:"Could not parse content as FormData."})}}}function R0(A){Object.assign(A.prototype,p0(A))}async function Rs(A,e,t){if(zi.brandCheck(A,t),Ao(A[me]),k0(A[me].body))throw new TypeError("Body is unusable");let r=a0(),s=i=>r.reject(i),n=i=>{try{r.resolve(e(i))}catch(o){s(o)}};return A[me].body==null?(n(new Uint8Array),r.promise):(C0(A[me].body,n,s),r.promise)}function k0(A){return A!=null&&(A.stream.locked||mt.isDisturbed(A.stream))}function wa(A){return A.length===0?"":(A[0]===239&&A[1]===187&&A[2]===191&&(A=A.subarray(3)),new TextDecoder().decode(A))}function F0(A){return JSON.parse(wa(A))}function N0(A){let{headersList:e}=A[me],t=e.get("content-type");return t===null?"failure":d0(t)}Da.exports={extractBody:ya,safelyExtractBody:w0,cloneBody:D0,mixinBody:R0}});var Fa=c((fb,ka)=>{"use strict";var{InvalidArgumentError:AA,NotSupportedError:m0}=Z(),be=require("assert"),HA=G(),pa=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,Ra=/[^\t\x20-\x7e\x80-\xff]/,b0=/[^\u0021-\u00ff]/,Se=Symbol("handler"),iA={},eo;try{let A=require("diagnostics_channel");iA.create=A.channel("undici:request:create"),iA.bodySent=A.channel("undici:request:bodySent"),iA.headers=A.channel("undici:request:headers"),iA.trailers=A.channel("undici:request:trailers"),iA.error=A.channel("undici:request:error")}catch{iA.create={hasSubscribers:!1},iA.bodySent={hasSubscribers:!1},iA.headers={hasSubscribers:!1},iA.trailers={hasSubscribers:!1},iA.error={hasSubscribers:!1}}var so=class{constructor(e,{path:t,method:r,body:s,headers:n,query:i,idempotent:o,blocking:g,upgrade:a,headersTimeout:Q,bodyTimeout:E,reset:C,throwOnError:B},I){if(typeof t!="string")throw new AA("path must be a string");if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&r!=="CONNECT")throw new AA("path must be an absolute URL or start with a slash");if(b0.exec(t)!==null)throw new AA("invalid request path");if(typeof r!="string")throw new AA("method must be a string");if(pa.exec(r)===null)throw new AA("invalid request method");if(a&&typeof a!="string")throw new AA("upgrade must be a string");if(Q!=null&&(!Number.isFinite(Q)||Q<0))throw new AA("invalid headersTimeout");if(E!=null&&(!Number.isFinite(E)||E<0))throw new AA("invalid bodyTimeout");if(C!=null&&typeof C!="boolean")throw new AA("invalid reset");if(this.headersTimeout=Q,this.bodyTimeout=E,this.throwOnError=B===!0,this.method=r,s==null)this.body=null;else if(HA.isStream(s))this.body=s;else if(HA.isBuffer(s))this.body=s.byteLength?s:null;else if(ArrayBuffer.isView(s))this.body=s.buffer.byteLength?Buffer.from(s.buffer,s.byteOffset,s.byteLength):null;else if(s instanceof ArrayBuffer)this.body=s.byteLength?Buffer.from(s):null;else if(typeof s=="string")this.body=s.length?Buffer.from(s):null;else if(HA.isFormDataLike(s)||HA.isIterable(s)||HA.isBlobLike(s))this.body=s;else throw new AA("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=a||null,this.path=i?HA.buildURL(t,i):t,this.origin=e,this.idempotent=o??(r==="HEAD"||r==="GET"),this.blocking=g??!1,this.reset=C??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers="",Array.isArray(n)){if(n.length%2!==0)throw new AA("headers array must be even");for(let h=0;h<n.length;h+=2)ro(this,n[h],n[h+1])}else if(n&&typeof n=="object"){let h=Object.keys(n);for(let l=0;l<h.length;l++){let u=h[l];ro(this,u,n[u])}}else if(n!=null)throw new AA("headers must be an object or an array");if(HA.isFormDataLike(this.body)){if(HA.nodeMajor<16||HA.nodeMajor===16&&HA.nodeMinor<8)throw new AA("Form-Data bodies are only supported in node v16.8 and newer.");eo||(eo=wr().extractBody);let[h,l]=eo(s);this.contentType==null&&(this.contentType=l,this.headers+=`content-type: ${l}\r -`),this.body=h.stream,this.contentLength=h.length}else HA.isBlobLike(s)&&this.contentType==null&&s.type&&(this.contentType=s.type,this.headers+=`content-type: ${s.type}\r -`);HA.validateHandler(I,r,a),this.servername=HA.getServerName(this.host),this[Se]=I,iA.create.hasSubscribers&&iA.create.publish({request:this})}onBodySent(e){if(this[Se].onBodySent)try{this[Se].onBodySent(e)}catch(t){this.onError(t)}}onRequestSent(){iA.bodySent.hasSubscribers&&iA.bodySent.publish({request:this})}onConnect(e){return be(!this.aborted),be(!this.completed),this[Se].onConnect(e)}onHeaders(e,t,r,s){return be(!this.aborted),be(!this.completed),iA.headers.hasSubscribers&&iA.headers.publish({request:this,response:{statusCode:e,headers:t,statusText:s}}),this[Se].onHeaders(e,t,r,s)}onData(e){return be(!this.aborted),be(!this.completed),this[Se].onData(e)}onUpgrade(e,t,r){return be(!this.aborted),be(!this.completed),this[Se].onUpgrade(e,t,r)}onComplete(e){return be(!this.aborted),this.completed=!0,iA.trailers.hasSubscribers&&iA.trailers.publish({request:this,trailers:e}),this[Se].onComplete(e)}onError(e){if(iA.error.hasSubscribers&&iA.error.publish({request:this,error:e}),!this.aborted)return this.aborted=!0,this[Se].onError(e)}addHeader(e,t){return ro(this,e,t),this}};function to(A,e){if(e&&typeof e=="object")throw new AA(`invalid ${A} header`);if(e=e!=null?`${e}`:"",Ra.exec(e)!==null)throw new AA(`invalid ${A} header`);return`${A}: ${e}\r -`}function ro(A,e,t){if(t&&typeof t=="object"&&!Array.isArray(t))throw new AA(`invalid ${e} header`);if(t===void 0)return;if(A.host===null&&e.length===4&&e.toLowerCase()==="host"){if(Ra.exec(t)!==null)throw new AA(`invalid ${e} header`);A.host=t}else if(A.contentLength===null&&e.length===14&&e.toLowerCase()==="content-length"){if(A.contentLength=parseInt(t,10),!Number.isFinite(A.contentLength))throw new AA("invalid content-length header")}else if(A.contentType===null&&e.length===12&&e.toLowerCase()==="content-type")A.contentType=t,A.headers+=to(e,t);else{if(e.length===17&&e.toLowerCase()==="transfer-encoding")throw new AA("invalid transfer-encoding header");if(e.length===10&&e.toLowerCase()==="connection"){let r=typeof t=="string"?t.toLowerCase():null;if(r!=="close"&&r!=="keep-alive")throw new AA("invalid connection header");r==="close"&&(A.reset=!0)}else{if(e.length===10&&e.toLowerCase()==="keep-alive")throw new AA("invalid keep-alive header");if(e.length===7&&e.toLowerCase()==="upgrade")throw new AA("invalid upgrade header");if(e.length===6&&e.toLowerCase()==="expect")throw new m0("expect header not supported");if(pa.exec(e)===null)throw new AA("invalid header key");if(Array.isArray(t))for(let r=0;r<t.length;r++)A.headers+=to(e,t[r]);else A.headers+=to(e,t)}}}ka.exports=so});var ks=c((db,Na)=>{"use strict";var S0=require("events"),no=class extends S0{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}};Na.exports=no});var pr=c((yb,ma)=>{"use strict";var U0=ks(),{ClientDestroyedError:io,ClientClosedError:L0,InvalidArgumentError:bt}=Z(),{kDestroy:M0,kClose:Y0,kDispatch:oo,kInterceptors:et}=$(),St=Symbol("destroyed"),Dr=Symbol("closed"),Ue=Symbol("onDestroyed"),Ut=Symbol("onClosed"),Fs=Symbol("Intercepted Dispatch"),go=class extends U0{constructor(){super(),this[St]=!1,this[Ue]=null,this[Dr]=!1,this[Ut]=[]}get destroyed(){return this[St]}get closed(){return this[Dr]}get interceptors(){return this[et]}set interceptors(e){if(e){for(let t=e.length-1;t>=0;t--)if(typeof this[et][t]!="function")throw new bt("interceptor must be an function")}this[et]=e}close(e){if(e===void 0)return new Promise((r,s)=>{this.close((n,i)=>n?s(n):r(i))});if(typeof e!="function")throw new bt("invalid callback");if(this[St]){queueMicrotask(()=>e(new io,null));return}if(this[Dr]){this[Ut]?this[Ut].push(e):queueMicrotask(()=>e(null,null));return}this[Dr]=!0,this[Ut].push(e);let t=()=>{let r=this[Ut];this[Ut]=null;for(let s=0;s<r.length;s++)r[s](null,null)};this[Y0]().then(()=>this.destroy()).then(()=>{queueMicrotask(t)})}destroy(e,t){if(typeof e=="function"&&(t=e,e=null),t===void 0)return new Promise((s,n)=>{this.destroy(e,(i,o)=>i?n(i):s(o))});if(typeof t!="function")throw new bt("invalid callback");if(this[St]){this[Ue]?this[Ue].push(t):queueMicrotask(()=>t(null,null));return}e||(e=new io),this[St]=!0,this[Ue]=this[Ue]||[],this[Ue].push(t);let r=()=>{let s=this[Ue];this[Ue]=null;for(let n=0;n<s.length;n++)s[n](null,null)};this[M0](e).then(()=>{queueMicrotask(r)})}[Fs](e,t){if(!this[et]||this[et].length===0)return this[Fs]=this[oo],this[oo](e,t);let r=this[oo].bind(this);for(let s=this[et].length-1;s>=0;s--)r=this[et][s](r);return this[Fs]=r,r(e,t)}dispatch(e,t){if(!t||typeof t!="object")throw new bt("handler must be an object");try{if(!e||typeof e!="object")throw new bt("opts must be an object.");if(this[St]||this[Ue])throw new io;if(this[Dr])throw new L0;return this[Fs](e,t)}catch(r){if(typeof t.onError!="function")throw new bt("invalid onError method");return t.onError(r),!1}}};ma.exports=go});var Rr=c((pb,Ua)=>{"use strict";var J0=require("net"),ba=require("assert"),Sa=G(),{InvalidArgumentError:G0,ConnectTimeoutError:T0}=Z(),Qo,Eo;global.FinalizationRegistry?Eo=class{constructor(e){this._maxCachedSessions=e,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(t=>{if(this._sessionCache.size<this._maxCachedSessions)return;let r=this._sessionCache.get(t);r!==void 0&&r.deref()===void 0&&this._sessionCache.delete(t)})}get(e){let t=this._sessionCache.get(e);return t?t.deref():null}set(e,t){this._maxCachedSessions!==0&&(this._sessionCache.set(e,new WeakRef(t)),this._sessionRegistry.register(t,e))}}:Eo=class{constructor(e){this._maxCachedSessions=e,this._sessionCache=new Map}get(e){return this._sessionCache.get(e)}set(e,t){if(this._maxCachedSessions!==0){if(this._sessionCache.size>=this._maxCachedSessions){let{value:r}=this._sessionCache.keys().next();this._sessionCache.delete(r)}this._sessionCache.set(e,t)}}};function v0({maxCachedSessions:A,socketPath:e,timeout:t,...r}){if(A!=null&&(!Number.isInteger(A)||A<0))throw new G0("maxCachedSessions must be a positive integer or zero");let s={path:e,...r},n=new Eo(A??100);return t=t??1e4,function({hostname:o,host:g,protocol:a,port:Q,servername:E,localAddress:C,httpSocket:B},I){let h;if(a==="https:"){Qo||(Qo=require("tls")),E=E||s.servername||Sa.getServerName(g)||null;let u=E||o,F=n.get(u)||null;ba(u),h=Qo.connect({highWaterMark:16384,...s,servername:E,session:F,localAddress:C,socket:B,port:Q||443,host:o}),h.on("session",function(w){n.set(u,w)})}else ba(!B,"httpSocket can only be sent on TLS update"),h=J0.connect({highWaterMark:64*1024,...s,localAddress:C,port:Q||80,host:o});if(s.keepAlive==null||s.keepAlive){let u=s.keepAliveInitialDelay===void 0?6e4:s.keepAliveInitialDelay;h.setKeepAlive(!0,u)}let l=H0(()=>V0(h),t);return h.setNoDelay(!0).once(a==="https:"?"secureConnect":"connect",function(){if(l(),I){let u=I;I=null,u(null,this)}}).on("error",function(u){if(l(),I){let F=I;I=null,F(u)}}),h}}function H0(A,e){if(!e)return()=>{};let t=null,r=null,s=setTimeout(()=>{t=setImmediate(()=>{process.platform==="win32"?r=setImmediate(()=>A()):A()})},e);return()=>{clearTimeout(s),clearImmediate(t),clearImmediate(r)}}function V0(A){Sa.destroy(A,new T0)}Ua.exports=v0});var La=c(Ns=>{"use strict";Object.defineProperty(Ns,"__esModule",{value:!0});Ns.enumToMap=void 0;function x0(A){let e={};return Object.keys(A).forEach(t=>{let r=A[t];typeof r=="number"&&(e[t]=r)}),e}Ns.enumToMap=x0});var Ma=c(f=>{"use strict";Object.defineProperty(f,"__esModule",{value:!0});f.SPECIAL_HEADERS=f.HEADER_STATE=f.MINOR=f.MAJOR=f.CONNECTION_TOKEN_CHARS=f.HEADER_CHARS=f.TOKEN=f.STRICT_TOKEN=f.HEX=f.URL_CHAR=f.STRICT_URL_CHAR=f.USERINFO_CHARS=f.MARK=f.ALPHANUM=f.NUM=f.HEX_MAP=f.NUM_MAP=f.ALPHA=f.FINISH=f.H_METHOD_MAP=f.METHOD_MAP=f.METHODS_RTSP=f.METHODS_ICE=f.METHODS_HTTP=f.METHODS=f.LENIENT_FLAGS=f.FLAGS=f.TYPE=f.ERROR=void 0;var q0=La(),W0;(function(A){A[A.OK=0]="OK",A[A.INTERNAL=1]="INTERNAL",A[A.STRICT=2]="STRICT",A[A.LF_EXPECTED=3]="LF_EXPECTED",A[A.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",A[A.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",A[A.INVALID_METHOD=6]="INVALID_METHOD",A[A.INVALID_URL=7]="INVALID_URL",A[A.INVALID_CONSTANT=8]="INVALID_CONSTANT",A[A.INVALID_VERSION=9]="INVALID_VERSION",A[A.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",A[A.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",A[A.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",A[A.INVALID_STATUS=13]="INVALID_STATUS",A[A.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",A[A.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",A[A.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",A[A.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",A[A.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",A[A.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",A[A.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",A[A.PAUSED=21]="PAUSED",A[A.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",A[A.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",A[A.USER=24]="USER"})(W0=f.ERROR||(f.ERROR={}));var O0;(function(A){A[A.BOTH=0]="BOTH",A[A.REQUEST=1]="REQUEST",A[A.RESPONSE=2]="RESPONSE"})(O0=f.TYPE||(f.TYPE={}));var P0;(function(A){A[A.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",A[A.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",A[A.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",A[A.CHUNKED=8]="CHUNKED",A[A.UPGRADE=16]="UPGRADE",A[A.CONTENT_LENGTH=32]="CONTENT_LENGTH",A[A.SKIPBODY=64]="SKIPBODY",A[A.TRAILING=128]="TRAILING",A[A.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(P0=f.FLAGS||(f.FLAGS={}));var _0;(function(A){A[A.HEADERS=1]="HEADERS",A[A.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",A[A.KEEP_ALIVE=4]="KEEP_ALIVE"})(_0=f.LENIENT_FLAGS||(f.LENIENT_FLAGS={}));var D;(function(A){A[A.DELETE=0]="DELETE",A[A.GET=1]="GET",A[A.HEAD=2]="HEAD",A[A.POST=3]="POST",A[A.PUT=4]="PUT",A[A.CONNECT=5]="CONNECT",A[A.OPTIONS=6]="OPTIONS",A[A.TRACE=7]="TRACE",A[A.COPY=8]="COPY",A[A.LOCK=9]="LOCK",A[A.MKCOL=10]="MKCOL",A[A.MOVE=11]="MOVE",A[A.PROPFIND=12]="PROPFIND",A[A.PROPPATCH=13]="PROPPATCH",A[A.SEARCH=14]="SEARCH",A[A.UNLOCK=15]="UNLOCK",A[A.BIND=16]="BIND",A[A.REBIND=17]="REBIND",A[A.UNBIND=18]="UNBIND",A[A.ACL=19]="ACL",A[A.REPORT=20]="REPORT",A[A.MKACTIVITY=21]="MKACTIVITY",A[A.CHECKOUT=22]="CHECKOUT",A[A.MERGE=23]="MERGE",A[A["M-SEARCH"]=24]="M-SEARCH",A[A.NOTIFY=25]="NOTIFY",A[A.SUBSCRIBE=26]="SUBSCRIBE",A[A.UNSUBSCRIBE=27]="UNSUBSCRIBE",A[A.PATCH=28]="PATCH",A[A.PURGE=29]="PURGE",A[A.MKCALENDAR=30]="MKCALENDAR",A[A.LINK=31]="LINK",A[A.UNLINK=32]="UNLINK",A[A.SOURCE=33]="SOURCE",A[A.PRI=34]="PRI",A[A.DESCRIBE=35]="DESCRIBE",A[A.ANNOUNCE=36]="ANNOUNCE",A[A.SETUP=37]="SETUP",A[A.PLAY=38]="PLAY",A[A.PAUSE=39]="PAUSE",A[A.TEARDOWN=40]="TEARDOWN",A[A.GET_PARAMETER=41]="GET_PARAMETER",A[A.SET_PARAMETER=42]="SET_PARAMETER",A[A.REDIRECT=43]="REDIRECT",A[A.RECORD=44]="RECORD",A[A.FLUSH=45]="FLUSH"})(D=f.METHODS||(f.METHODS={}));f.METHODS_HTTP=[D.DELETE,D.GET,D.HEAD,D.POST,D.PUT,D.CONNECT,D.OPTIONS,D.TRACE,D.COPY,D.LOCK,D.MKCOL,D.MOVE,D.PROPFIND,D.PROPPATCH,D.SEARCH,D.UNLOCK,D.BIND,D.REBIND,D.UNBIND,D.ACL,D.REPORT,D.MKACTIVITY,D.CHECKOUT,D.MERGE,D["M-SEARCH"],D.NOTIFY,D.SUBSCRIBE,D.UNSUBSCRIBE,D.PATCH,D.PURGE,D.MKCALENDAR,D.LINK,D.UNLINK,D.PRI,D.SOURCE];f.METHODS_ICE=[D.SOURCE];f.METHODS_RTSP=[D.OPTIONS,D.DESCRIBE,D.ANNOUNCE,D.SETUP,D.PLAY,D.PAUSE,D.TEARDOWN,D.GET_PARAMETER,D.SET_PARAMETER,D.REDIRECT,D.RECORD,D.FLUSH,D.GET,D.POST];f.METHOD_MAP=q0.enumToMap(D);f.H_METHOD_MAP={};Object.keys(f.METHOD_MAP).forEach(A=>{/^H/.test(A)&&(f.H_METHOD_MAP[A]=f.METHOD_MAP[A])});var Z0;(function(A){A[A.SAFE=0]="SAFE",A[A.SAFE_WITH_CB=1]="SAFE_WITH_CB",A[A.UNSAFE=2]="UNSAFE"})(Z0=f.FINISH||(f.FINISH={}));f.ALPHA=[];for(let A=65;A<=90;A++)f.ALPHA.push(String.fromCharCode(A)),f.ALPHA.push(String.fromCharCode(A+32));f.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};f.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};f.NUM=["0","1","2","3","4","5","6","7","8","9"];f.ALPHANUM=f.ALPHA.concat(f.NUM);f.MARK=["-","_",".","!","~","*","'","(",")"];f.USERINFO_CHARS=f.ALPHANUM.concat(f.MARK).concat(["%",";",":","&","=","+","$",","]);f.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(f.ALPHANUM);f.URL_CHAR=f.STRICT_URL_CHAR.concat([" ","\f"]);for(let A=128;A<=255;A++)f.URL_CHAR.push(A);f.HEX=f.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);f.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(f.ALPHANUM);f.TOKEN=f.STRICT_TOKEN.concat([" "]);f.HEADER_CHARS=[" "];for(let A=32;A<=255;A++)A!==127&&f.HEADER_CHARS.push(A);f.CONNECTION_TOKEN_CHARS=f.HEADER_CHARS.filter(A=>A!==44);f.MAJOR=f.NUM_MAP;f.MINOR=f.MAJOR;var Lt;(function(A){A[A.GENERAL=0]="GENERAL",A[A.CONNECTION=1]="CONNECTION",A[A.CONTENT_LENGTH=2]="CONTENT_LENGTH",A[A.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",A[A.UPGRADE=4]="UPGRADE",A[A.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",A[A.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",A[A.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",A[A.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(Lt=f.HEADER_STATE||(f.HEADER_STATE={}));f.SPECIAL_HEADERS={connection:Lt.CONNECTION,"content-length":Lt.CONTENT_LENGTH,"proxy-connection":Lt.CONNECTION,"transfer-encoding":Lt.TRANSFER_ENCODING,upgrade:Lt.UPGRADE}});var Bo=c((Fb,Ga)=>{"use strict";var Mt=G(),{kBodyUsed:kr}=$(),Co=require("assert"),{InvalidArgumentError:X0}=Z(),K0=require("events"),j0=[300,301,302,303,307,308],Ya=Symbol("body"),ms=class{constructor(e){this[Ya]=e,this[kr]=!1}async*[Symbol.asyncIterator](){Co(!this[kr],"disturbed"),this[kr]=!0,yield*this[Ya]}},ao=class{constructor(e,t,r,s){if(t!=null&&(!Number.isInteger(t)||t<0))throw new X0("maxRedirections must be a positive number");Mt.validateHandler(s,r.method,r.upgrade),this.dispatch=e,this.location=null,this.abort=null,this.opts={...r,maxRedirections:0},this.maxRedirections=t,this.handler=s,this.history=[],Mt.isStream(this.opts.body)?(Mt.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){Co(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[kr]=!1,K0.prototype.on.call(this.opts.body,"data",function(){this[kr]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new ms(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&Mt.isIterable(this.opts.body)&&(this.opts.body=new ms(this.opts.body))}onConnect(e){this.abort=e,this.handler.onConnect(e,{history:this.history})}onUpgrade(e,t,r){this.handler.onUpgrade(e,t,r)}onError(e){this.handler.onError(e)}onHeaders(e,t,r,s){if(this.location=this.history.length>=this.maxRedirections||Mt.isDisturbed(this.opts.body)?null:z0(e,t),this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(e,t,r,s);let{origin:n,pathname:i,search:o}=Mt.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),g=o?`${i}${o}`:i;this.opts.headers=$0(this.opts.headers,e===303,this.opts.origin!==n),this.opts.path=g,this.opts.origin=n,this.opts.maxRedirections=0,this.opts.query=null,e===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(e){if(!this.location)return this.handler.onData(e)}onComplete(e){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(e)}onBodySent(e){this.handler.onBodySent&&this.handler.onBodySent(e)}};function z0(A,e){if(j0.indexOf(A)===-1)return null;for(let t=0;t<e.length;t+=2)if(e[t].toString().toLowerCase()==="location")return e[t+1]}function Ja(A,e,t){return A.length===4&&A.toString().toLowerCase()==="host"||e&&A.toString().toLowerCase().indexOf("content-")===0||t&&A.length===13&&A.toString().toLowerCase()==="authorization"||t&&A.length===6&&A.toString().toLowerCase()==="cookie"}function $0(A,e,t){let r=[];if(Array.isArray(A))for(let s=0;s<A.length;s+=2)Ja(A[s],e,t)||r.push(A[s],A[s+1]);else if(A&&typeof A=="object")for(let s of Object.keys(A))Ja(s,e,t)||r.push(s,A[s]);else Co(A==null,"headers must be an object or an array");return r}Ga.exports=ao});var bs=c((Nb,Ta)=>{"use strict";var Ay=Bo();function ey({maxRedirections:A}){return e=>function(r,s){let{maxRedirections:n=A}=r;if(!n)return e(r,s);let i=new Ay(e,n,r,s);return r={...r,maxRedirections:0},e(r,i)}}Ta.exports=ey});var Io=c((mb,va)=>{va.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="});var Va=c((bb,Ha)=>{Ha.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="});var Ur=c((Sb,iC)=>{"use strict";var y=require("assert"),Wa=require("net"),b=G(),co=uE(),ty=Fa(),ry=pr(),{RequestContentLengthMismatchError:tt,ResponseContentLengthMismatchError:sy,InvalidArgumentError:QA,RequestAbortedError:Oa,HeadersTimeoutError:ny,HeadersOverflowError:iy,SocketError:Ys,InformationalError:rt,BodyTimeoutError:oy,HTTPParserError:gy,ResponseExceededMaxSizeError:Qy,ClientDestroyedError:Ey}=Z(),ay=Rr(),{kUrl:zA,kReset:pA,kServerName:Ve,kClient:Ts,kBusy:lo,kParser:j,kConnect:Cy,kBlocking:Jt,kResuming:st,kRunning:sA,kPending:Gt,kSize:nt,kWriting:Le,kQueue:eA,kConnected:By,kConnecting:Yt,kNeedDrain:qe,kNoRef:Fr,kKeepAliveDefaultTimeout:uo,kHostHeader:Pa,kPendingIdx:$A,kRunningIdx:rA,kError:xA,kPipelining:We,kSocket:VA,kKeepAliveTimeoutValue:br,kMaxHeadersSize:Ls,kKeepAliveMaxTimeout:Za,kKeepAliveTimeoutThreshold:Xa,kHeadersTimeout:Ka,kBodyTimeout:ja,kStrictContentLength:Js,kConnector:Nr,kMaxRedirections:Iy,kMaxRequests:Sr,kCounter:za,kClose:cy,kDestroy:hy,kDispatch:ly,kInterceptors:uy,kLocalAddress:mr,kMaxResponseSize:$a}=$(),Ss=Buffer[Symbol.species],xe=Symbol("kClosedResolve"),dA={};try{let A=require("diagnostics_channel");dA.sendHeaders=A.channel("undici:client:sendHeaders"),dA.beforeConnect=A.channel("undici:client:beforeConnect"),dA.connectError=A.channel("undici:client:connectError"),dA.connected=A.channel("undici:client:connected")}catch{dA.sendHeaders={hasSubscribers:!1},dA.beforeConnect={hasSubscribers:!1},dA.connectError={hasSubscribers:!1},dA.connected={hasSubscribers:!1}}var fo=class extends ry{constructor(e,{interceptors:t,maxHeaderSize:r,headersTimeout:s,socketTimeout:n,requestTimeout:i,connectTimeout:o,bodyTimeout:g,idleTimeout:a,keepAlive:Q,keepAliveTimeout:E,maxKeepAliveTimeout:C,keepAliveMaxTimeout:B,keepAliveTimeoutThreshold:I,socketPath:h,pipelining:l,tls:u,strictContentLength:F,maxCachedSessions:w,maxRedirections:k,connect:T,maxRequestsPerClient:O,localAddress:V,maxResponseSize:K,autoSelectFamily:uA,autoSelectFamilyAttemptTimeout:IA}={}){if(super(),Q!==void 0)throw new QA("unsupported keepAlive, use pipelining=0 instead");if(n!==void 0)throw new QA("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(i!==void 0)throw new QA("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(a!==void 0)throw new QA("unsupported idleTimeout, use keepAliveTimeout instead");if(C!==void 0)throw new QA("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(r!=null&&!Number.isFinite(r))throw new QA("invalid maxHeaderSize");if(h!=null&&typeof h!="string")throw new QA("invalid socketPath");if(o!=null&&(!Number.isFinite(o)||o<0))throw new QA("invalid connectTimeout");if(E!=null&&(!Number.isFinite(E)||E<=0))throw new QA("invalid keepAliveTimeout");if(B!=null&&(!Number.isFinite(B)||B<=0))throw new QA("invalid keepAliveMaxTimeout");if(I!=null&&!Number.isFinite(I))throw new QA("invalid keepAliveTimeoutThreshold");if(s!=null&&(!Number.isInteger(s)||s<0))throw new QA("headersTimeout must be a positive integer or zero");if(g!=null&&(!Number.isInteger(g)||g<0))throw new QA("bodyTimeout must be a positive integer or zero");if(T!=null&&typeof T!="function"&&typeof T!="object")throw new QA("connect must be a function or an object");if(k!=null&&(!Number.isInteger(k)||k<0))throw new QA("maxRedirections must be a positive number");if(O!=null&&(!Number.isInteger(O)||O<0))throw new QA("maxRequestsPerClient must be a positive number");if(V!=null&&(typeof V!="string"||Wa.isIP(V)===0))throw new QA("localAddress must be valid string IP address");if(K!=null&&(!Number.isInteger(K)||K<-1))throw new QA("maxResponseSize must be a positive number");if(IA!=null&&(!Number.isInteger(IA)||IA<-1))throw new QA("autoSelectFamilyAttemptTimeout must be a positive number");typeof T!="function"&&(T=ay({...u,maxCachedSessions:w,socketPath:h,timeout:o,...b.nodeHasAutoSelectFamily&&uA?{autoSelectFamily:uA,autoSelectFamilyAttemptTimeout:IA}:void 0,...T})),this[uy]=t&&t.Client&&Array.isArray(t.Client)?t.Client:[fy({maxRedirections:k})],this[zA]=b.parseOrigin(e),this[Nr]=T,this[VA]=null,this[We]=l??1,this[Ls]=r||16384,this[uo]=E??4e3,this[Za]=B??6e5,this[Xa]=I??1e3,this[br]=this[uo],this[Ve]=null,this[mr]=V??null,this[st]=0,this[qe]=0,this[Pa]=`host: ${this[zA].hostname}${this[zA].port?`:${this[zA].port}`:""}\r -`,this[ja]=g??3e5,this[Ka]=s??3e5,this[Js]=F??!0,this[Iy]=k,this[Sr]=O,this[xe]=null,this[$a]=K>-1?K:-1,this[eA]=[],this[rA]=0,this[$A]=0}get pipelining(){return this[We]}set pipelining(e){this[We]=e,Ae(this,!0)}get[Gt](){return this[eA].length-this[$A]}get[sA](){return this[$A]-this[rA]}get[nt](){return this[eA].length-this[rA]}get[By](){return!!this[VA]&&!this[Yt]&&!this[VA].destroyed}get[lo](){let e=this[VA];return e&&(e[pA]||e[Le]||e[Jt])||this[nt]>=(this[We]||1)||this[Gt]>0}[Cy](e){nC(this),this.once("connect",e)}[ly](e,t){let r=e.origin||this[zA].origin,s=new ty(r,e,t);return this[eA].push(s),this[st]||(b.bodyLength(s.body)==null&&b.isIterable(s.body)?(this[st]=1,process.nextTick(Ae,this)):Ae(this,!0)),this[st]&&this[qe]!==2&&this[lo]&&(this[qe]=2),this[qe]<2}async[cy](){return new Promise(e=>{this[nt]?this[xe]=e:e(null)})}async[hy](e){return new Promise(t=>{let r=this[eA].splice(this[$A]);for(let n=0;n<r.length;n++){let i=r[n];de(this,i,e)}let s=()=>{this[xe]&&(this[xe](),this[xe]=null),t()};this[VA]?b.destroy(this[VA].on("close",s),e):queueMicrotask(s),Ae(this)})}},le=Ma(),fy=bs(),dy=Buffer.alloc(0);async function yy(){let A=process.env.JEST_WORKER_ID?Io():void 0,e;try{e=await WebAssembly.compile(Buffer.from(Va(),"base64"))}catch{e=await WebAssembly.compile(Buffer.from(A||Io(),"base64"))}return await WebAssembly.instantiate(e,{env:{wasm_on_url:(t,r,s)=>0,wasm_on_status:(t,r,s)=>{y.strictEqual(EA.ptr,t);let n=r-fe+ue.byteOffset;return EA.onStatus(new Ss(ue.buffer,n,s))||0},wasm_on_message_begin:t=>(y.strictEqual(EA.ptr,t),EA.onMessageBegin()||0),wasm_on_header_field:(t,r,s)=>{y.strictEqual(EA.ptr,t);let n=r-fe+ue.byteOffset;return EA.onHeaderField(new Ss(ue.buffer,n,s))||0},wasm_on_header_value:(t,r,s)=>{y.strictEqual(EA.ptr,t);let n=r-fe+ue.byteOffset;return EA.onHeaderValue(new Ss(ue.buffer,n,s))||0},wasm_on_headers_complete:(t,r,s,n)=>(y.strictEqual(EA.ptr,t),EA.onHeadersComplete(r,!!s,!!n)||0),wasm_on_body:(t,r,s)=>{y.strictEqual(EA.ptr,t);let n=r-fe+ue.byteOffset;return EA.onBody(new Ss(ue.buffer,n,s))||0},wasm_on_message_complete:t=>(y.strictEqual(EA.ptr,t),EA.onMessageComplete()||0)}})}var ho=null,yo=yy();yo.catch();var EA=null,ue=null,Us=0,fe=null,Tt=1,Ms=2,wo=3,Do=class{constructor(e,t,{exports:r}){y(Number.isFinite(e[Ls])&&e[Ls]>0),this.llhttp=r,this.ptr=this.llhttp.llhttp_alloc(le.TYPE.RESPONSE),this.client=e,this.socket=t,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=e[Ls],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=e[$a]}setTimeout(e,t){this.timeoutType=t,e!==this.timeoutValue?(co.clearTimeout(this.timeout),e?(this.timeout=co.setTimeout(wy,e,this),this.timeout.unref&&this.timeout.unref()):this.timeout=null,this.timeoutValue=e):this.timeout&&this.timeout.refresh&&this.timeout.refresh()}resume(){this.socket.destroyed||!this.paused||(y(this.ptr!=null),y(EA==null),this.llhttp.llhttp_resume(this.ptr),y(this.timeoutType===Ms),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||dy),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let e=this.socket.read();if(e===null)break;this.execute(e)}}execute(e){y(this.ptr!=null),y(EA==null),y(!this.paused);let{socket:t,llhttp:r}=this;e.length>Us&&(fe&&r.free(fe),Us=Math.ceil(e.length/4096)*4096,fe=r.malloc(Us)),new Uint8Array(r.memory.buffer,fe,Us).set(e);try{let s;try{ue=e,EA=this,s=r.llhttp_execute(this.ptr,fe,e.length)}catch(i){throw i}finally{EA=null,ue=null}let n=r.llhttp_get_error_pos(this.ptr)-fe;if(s===le.ERROR.PAUSED_UPGRADE)this.onUpgrade(e.slice(n));else if(s===le.ERROR.PAUSED)this.paused=!0,t.unshift(e.slice(n));else if(s!==le.ERROR.OK){let i=r.llhttp_get_error_reason(this.ptr),o="";if(i){let g=new Uint8Array(r.memory.buffer,i).indexOf(0);o="Response does not match the HTTP/1.1 protocol ("+Buffer.from(r.memory.buffer,i,g).toString()+")"}throw new gy(o,le.ERROR[s],e.slice(n))}}catch(s){b.destroy(t,s)}}destroy(){y(this.ptr!=null),y(EA==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,co.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(e){this.statusText=e.toString()}onMessageBegin(){let{socket:e,client:t}=this;if(e.destroyed||!t[eA][t[rA]])return-1}onHeaderField(e){let t=this.headers.length;(t&1)===0?this.headers.push(e):this.headers[t-1]=Buffer.concat([this.headers[t-1],e]),this.trackHeader(e.length)}onHeaderValue(e){let t=this.headers.length;(t&1)===1?(this.headers.push(e),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],e]);let r=this.headers[t-2];r.length===10&&r.toString().toLowerCase()==="keep-alive"?this.keepAlive+=e.toString():r.length===10&&r.toString().toLowerCase()==="connection"?this.connection+=e.toString():r.length===14&&r.toString().toLowerCase()==="content-length"&&(this.contentLength+=e.toString()),this.trackHeader(e.length)}trackHeader(e){this.headersSize+=e,this.headersSize>=this.headersMaxSize&&b.destroy(this.socket,new iy)}onUpgrade(e){let{upgrade:t,client:r,socket:s,headers:n,statusCode:i}=this;y(t);let o=r[eA][r[rA]];y(o),y(!s.destroyed),y(s===r[VA]),y(!this.paused),y(o.upgrade||o.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,y(this.headers.length%2===0),this.headers=[],this.headersSize=0,s.unshift(e),s[j].destroy(),s[j]=null,s[Ts]=null,s[xA]=null,s.removeListener("error",eC).removeListener("readable",AC).removeListener("end",rC).removeListener("close",sC),r[VA]=null,r[eA][r[rA]++]=null,r.emit("disconnect",r[zA],[r],new rt("upgrade"));try{o.onUpgrade(i,n,s)}catch(g){b.destroy(s,g)}Ae(r)}onHeadersComplete(e,t,r){let{client:s,socket:n,headers:i,statusText:o}=this;if(n.destroyed)return-1;let g=s[eA][s[rA]];if(!g)return-1;if(y(!this.upgrade),y(this.statusCode<200),e===100)return b.destroy(n,new Ys("bad response",b.getSocketInfo(n))),-1;if(t&&!g.upgrade)return b.destroy(n,new Ys("bad upgrade",b.getSocketInfo(n))),-1;if(y.strictEqual(this.timeoutType,Tt),this.statusCode=e,this.shouldKeepAlive=r||g.method==="HEAD"&&!n[pA]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let Q=g.bodyTimeout!=null?g.bodyTimeout:s[ja];this.setTimeout(Q,Ms)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(g.method==="CONNECT")return y(s[sA]===1),this.upgrade=!0,2;if(t)return y(s[sA]===1),this.upgrade=!0,2;if(y(this.headers.length%2===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&s[We]){let Q=this.keepAlive?b.parseKeepAliveTimeout(this.keepAlive):null;if(Q!=null){let E=Math.min(Q-s[Xa],s[Za]);E<=0?n[pA]=!0:s[br]=E}else s[br]=s[uo]}else n[pA]=!0;let a;try{a=g.onHeaders(e,i,this.resume,o)===!1}catch(Q){return b.destroy(n,Q),-1}return g.method==="HEAD"||e<200?1:(n[Jt]&&(n[Jt]=!1,Ae(s)),a?le.ERROR.PAUSED:0)}onBody(e){let{client:t,socket:r,statusCode:s,maxResponseSize:n}=this;if(r.destroyed)return-1;let i=t[eA][t[rA]];if(y(i),y.strictEqual(this.timeoutType,Ms),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),y(s>=200),n>-1&&this.bytesRead+e.length>n)return b.destroy(r,new Qy),-1;this.bytesRead+=e.length;try{if(i.onData(e)===!1)return le.ERROR.PAUSED}catch(o){return b.destroy(r,o),-1}}onMessageComplete(){let{client:e,socket:t,statusCode:r,upgrade:s,headers:n,contentLength:i,bytesRead:o,shouldKeepAlive:g}=this;if(t.destroyed&&(!r||g))return-1;if(s)return;let a=e[eA][e[rA]];if(y(a),y(r>=100),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",y(this.headers.length%2===0),this.headers=[],this.headersSize=0,!(r<200)){if(a.method!=="HEAD"&&i&&o!==parseInt(i,10))return b.destroy(t,new sy),-1;try{a.onComplete(n)}catch(Q){de(e,a,Q)}if(e[eA][e[rA]++]=null,t[Le])return y.strictEqual(e[sA],0),b.destroy(t,new rt("reset")),le.ERROR.PAUSED;if(g){if(t[pA]&&e[sA]===0)return b.destroy(t,new rt("reset")),le.ERROR.PAUSED;e[We]===1?setImmediate(Ae,e):Ae(e)}else return b.destroy(t,new rt("reset")),le.ERROR.PAUSED}}};function wy(A){let{socket:e,timeoutType:t,client:r}=A;t===Tt?(!e[Le]||e.writableNeedDrain||r[sA]>1)&&(y(!A.paused,"cannot be paused while waiting for headers"),b.destroy(e,new ny)):t===Ms?A.paused||b.destroy(e,new oy):t===wo&&(y(r[sA]===0&&r[br]),b.destroy(e,new rt("socket idle timeout")))}function AC(){let{[j]:A}=this;A.readMore()}function eC(A){let{[j]:e}=this;if(y(A.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),A.code==="ECONNRESET"&&e.statusCode&&!e.shouldKeepAlive){e.onMessageComplete();return}this[xA]=A,tC(this[Ts],A)}function tC(A,e){if(A[sA]===0&&e.code!=="UND_ERR_INFO"&&e.code!=="UND_ERR_SOCKET"){y(A[$A]===A[rA]);let t=A[eA].splice(A[rA]);for(let r=0;r<t.length;r++){let s=t[r];de(A,s,e)}y(A[nt]===0)}}function rC(){let{[j]:A}=this;if(A.statusCode&&!A.shouldKeepAlive){A.onMessageComplete();return}b.destroy(this,new Ys("other side closed",b.getSocketInfo(this)))}function sC(){let{[Ts]:A}=this;!this[xA]&&this[j].statusCode&&!this[j].shouldKeepAlive&&this[j].onMessageComplete(),this[j].destroy(),this[j]=null;let e=this[xA]||new Ys("closed",b.getSocketInfo(this));if(A[VA]=null,A.destroyed){y(A[Gt]===0);let t=A[eA].splice(A[rA]);for(let r=0;r<t.length;r++){let s=t[r];de(A,s,e)}}else if(A[sA]>0&&e.code!=="UND_ERR_INFO"){let t=A[eA][A[rA]];A[eA][A[rA]++]=null,de(A,t,e)}A[$A]=A[rA],y(A[sA]===0),A.emit("disconnect",A[zA],[A],e),Ae(A)}async function nC(A){y(!A[Yt]),y(!A[VA]);let{host:e,hostname:t,protocol:r,port:s}=A[zA];if(t[0]==="["){let n=t.indexOf("]");y(n!==-1);let i=t.substr(1,n-1);y(Wa.isIP(i)),t=i}A[Yt]=!0,dA.beforeConnect.hasSubscribers&&dA.beforeConnect.publish({connectParams:{host:e,hostname:t,protocol:r,port:s,servername:A[Ve],localAddress:A[mr]},connector:A[Nr]});try{let n=await new Promise((i,o)=>{A[Nr]({host:e,hostname:t,protocol:r,port:s,servername:A[Ve],localAddress:A[mr]},(g,a)=>{g?o(g):i(a)})});if(A.destroyed){b.destroy(n.on("error",()=>{}),new Ey);return}ho||(ho=await yo,yo=null),A[Yt]=!1,y(n),n[Fr]=!1,n[Le]=!1,n[pA]=!1,n[Jt]=!1,n[xA]=null,n[j]=new Do(A,n,ho),n[Ts]=A,n[za]=0,n[Sr]=A[Sr],n.on("error",eC).on("readable",AC).on("end",rC).on("close",sC),A[VA]=n,dA.connected.hasSubscribers&&dA.connected.publish({connectParams:{host:e,hostname:t,protocol:r,port:s,servername:A[Ve],localAddress:A[mr]},connector:A[Nr],socket:n}),A.emit("connect",A[zA],[A])}catch(n){if(A.destroyed)return;if(A[Yt]=!1,dA.connectError.hasSubscribers&&dA.connectError.publish({connectParams:{host:e,hostname:t,protocol:r,port:s,servername:A[Ve],localAddress:A[mr]},connector:A[Nr],error:n}),n.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(y(A[sA]===0);A[Gt]>0&&A[eA][A[$A]].servername===A[Ve];){let i=A[eA][A[$A]++];de(A,i,n)}else tC(A,n);A.emit("connectionError",A[zA],[A],n)}Ae(A)}function xa(A){A[qe]=0,A.emit("drain",A[zA],[A])}function Ae(A,e){A[st]!==2&&(A[st]=2,Dy(A,e),A[st]=0,A[rA]>256&&(A[eA].splice(0,A[rA]),A[$A]-=A[rA],A[rA]=0))}function Dy(A,e){for(;;){if(A.destroyed){y(A[Gt]===0);return}if(A[xe]&&!A[nt]){A[xe](),A[xe]=null;return}let t=A[VA];if(t&&!t.destroyed){if(A[nt]===0?!t[Fr]&&t.unref&&(t.unref(),t[Fr]=!0):t[Fr]&&t.ref&&(t.ref(),t[Fr]=!1),A[nt]===0)t[j].timeoutType!==wo&&t[j].setTimeout(A[br],wo);else if(A[sA]>0&&t[j].statusCode<200&&t[j].timeoutType!==Tt){let s=A[eA][A[rA]],n=s.headersTimeout!=null?s.headersTimeout:A[Ka];t[j].setTimeout(n,Tt)}}if(A[lo])A[qe]=2;else if(A[qe]===2){e?(A[qe]=1,process.nextTick(xa,A)):xa(A);continue}if(A[Gt]===0||A[sA]>=(A[We]||1))return;let r=A[eA][A[$A]];if(A[zA].protocol==="https:"&&A[Ve]!==r.servername){if(A[sA]>0)return;if(A[Ve]=r.servername,t&&t.servername!==r.servername){b.destroy(t,new rt("servername changed"));return}}if(A[Yt])return;if(!t){nC(A);return}if(t.destroyed||t[Le]||t[pA]||t[Jt]||A[sA]>0&&!r.idempotent||A[sA]>0&&(r.upgrade||r.method==="CONNECT")||(b.isStream(r.body)&&b.bodyLength(r.body)===0&&(r.body.on("data",function(){y(!1)}).on("error",function(s){de(A,r,s)}).on("end",function(){b.destroy(this)}),r.body=null),A[sA]>0&&(b.isStream(r.body)||b.isAsyncIterable(r.body))))return;!r.aborted&&py(A,r)?A[$A]++:A[eA].splice(A[$A],1)}}function py(A,e){let{body:t,method:r,path:s,host:n,upgrade:i,headers:o,blocking:g,reset:a}=e,Q=r==="PUT"||r==="POST"||r==="PATCH";t&&typeof t.read=="function"&&t.read(0);let E=b.bodyLength(t);if(E===null&&(E=e.contentLength),E===0&&!Q&&(E=null),e.contentLength!==null&&e.contentLength!==E){if(A[Js])return de(A,e,new tt),!1;process.emitWarning(new tt)}let C=A[VA];try{e.onConnect(I=>{e.aborted||e.completed||(de(A,e,I||new Oa),b.destroy(C,new rt("aborted")))})}catch(I){de(A,e,I)}if(e.aborted)return!1;r==="HEAD"&&(C[pA]=!0),(i||r==="CONNECT")&&(C[pA]=!0),a!=null&&(C[pA]=a),A[Sr]&&C[za]++>=A[Sr]&&(C[pA]=!0),g&&(C[Jt]=!0);let B=`${r} ${s} HTTP/1.1\r -`;return typeof n=="string"?B+=`host: ${n}\r -`:B+=A[Pa],i?B+=`connection: upgrade\r -upgrade: ${i}\r -`:A[We]&&!C[pA]?B+=`connection: keep-alive\r -`:B+=`connection: close\r -`,o&&(B+=o),dA.sendHeaders.hasSubscribers&&dA.sendHeaders.publish({request:e,headers:B,socket:C}),t?b.isBuffer(t)?(y(E===t.byteLength,"buffer body must have content length"),C.cork(),C.write(`${B}content-length: ${E}\r -\r -`,"latin1"),C.write(t),C.uncork(),e.onBodySent(t),e.onRequestSent(),Q||(C[pA]=!0)):b.isBlobLike(t)?typeof t.stream=="function"?qa({body:t.stream(),client:A,request:e,socket:C,contentLength:E,header:B,expectsPayload:Q}):ky({body:t,client:A,request:e,socket:C,contentLength:E,header:B,expectsPayload:Q}):b.isStream(t)?Ry({body:t,client:A,request:e,socket:C,contentLength:E,header:B,expectsPayload:Q}):b.isIterable(t)?qa({body:t,client:A,request:e,socket:C,contentLength:E,header:B,expectsPayload:Q}):y(!1):(E===0?C.write(`${B}content-length: 0\r -\r -`,"latin1"):(y(E===null,"no body must not have content length"),C.write(`${B}\r -`,"latin1")),e.onRequestSent()),!0}function Ry({body:A,client:e,request:t,socket:r,contentLength:s,header:n,expectsPayload:i}){y(s!==0||e[sA]===0,"stream body cannot be pipelined");let o=!1,g=new Gs({socket:r,request:t,contentLength:s,client:e,expectsPayload:i,header:n}),a=function(B){if(!o)try{!g.write(B)&&this.pause&&this.pause()}catch(I){b.destroy(this,I)}},Q=function(){o||A.resume&&A.resume()},E=function(){C(new Oa)},C=function(B){if(!o){if(o=!0,y(r.destroyed||r[Le]&&e[sA]<=1),r.off("drain",Q).off("error",C),A.removeListener("data",a).removeListener("end",C).removeListener("error",C).removeListener("close",E),!B)try{g.end()}catch(I){B=I}g.destroy(B),B&&(B.code!=="UND_ERR_INFO"||B.message!=="reset")?b.destroy(A,B):b.destroy(A)}};A.on("data",a).on("end",C).on("error",C).on("close",E),A.resume&&A.resume(),r.on("drain",Q).on("error",C)}async function ky({body:A,client:e,request:t,socket:r,contentLength:s,header:n,expectsPayload:i}){y(s===A.size,"blob body must have content length");try{if(s!=null&&s!==A.size)throw new tt;let o=Buffer.from(await A.arrayBuffer());r.cork(),r.write(`${n}content-length: ${s}\r -\r -`,"latin1"),r.write(o),r.uncork(),t.onBodySent(o),t.onRequestSent(),i||(r[pA]=!0),Ae(e)}catch(o){b.destroy(r,o)}}async function qa({body:A,client:e,request:t,socket:r,contentLength:s,header:n,expectsPayload:i}){y(s!==0||e[sA]===0,"iterator body cannot be pipelined");let o=null;function g(){if(o){let E=o;o=null,E()}}let a=()=>new Promise((E,C)=>{y(o===null),r[xA]?C(r[xA]):o=E});r.on("close",g).on("drain",g);let Q=new Gs({socket:r,request:t,contentLength:s,client:e,expectsPayload:i,header:n});try{for await(let E of A){if(r[xA])throw r[xA];Q.write(E)||await a()}Q.end()}catch(E){Q.destroy(E)}finally{r.off("close",g).off("drain",g)}}var Gs=class{constructor({socket:e,request:t,contentLength:r,client:s,expectsPayload:n,header:i}){this.socket=e,this.request=t,this.contentLength=r,this.client=s,this.bytesWritten=0,this.expectsPayload=n,this.header=i,e[Le]=!0}write(e){let{socket:t,request:r,contentLength:s,client:n,bytesWritten:i,expectsPayload:o,header:g}=this;if(t[xA])throw t[xA];if(t.destroyed)return!1;let a=Buffer.byteLength(e);if(!a)return!0;if(s!==null&&i+a>s){if(n[Js])throw new tt;process.emitWarning(new tt)}t.cork(),i===0&&(o||(t[pA]=!0),s===null?t.write(`${g}transfer-encoding: chunked\r -`,"latin1"):t.write(`${g}content-length: ${s}\r -\r -`,"latin1")),s===null&&t.write(`\r -${a.toString(16)}\r -`,"latin1"),this.bytesWritten+=a;let Q=t.write(e);return t.uncork(),r.onBodySent(e),Q||t[j].timeout&&t[j].timeoutType===Tt&&t[j].timeout.refresh&&t[j].timeout.refresh(),Q}end(){let{socket:e,contentLength:t,client:r,bytesWritten:s,expectsPayload:n,header:i,request:o}=this;if(o.onRequestSent(),e[Le]=!1,e[xA])throw e[xA];if(!e.destroyed){if(s===0?n?e.write(`${i}content-length: 0\r -\r -`,"latin1"):e.write(`${i}\r -`,"latin1"):t===null&&e.write(`\r -0\r -\r -`,"latin1"),t!==null&&s!==t){if(r[Js])throw new tt;process.emitWarning(new tt)}e[j].timeout&&e[j].timeoutType===Tt&&e[j].timeout.refresh&&e[j].timeout.refresh(),Ae(r)}}destroy(e){let{socket:t,client:r}=this;t[Le]=!1,e&&(y(r[sA]<=1,"pipeline should only contain this request"),b.destroy(t,e))}};function de(A,e,t){try{e.onError(t),y(e.aborted)}catch(r){A.emit("error",r)}}iC.exports=fo});var gC=c((Lb,oC)=>{"use strict";var vs=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(e){this.list[this.top]=e,this.top=this.top+1&2047}shift(){let e=this.list[this.bottom];return e===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,e)}};oC.exports=class{constructor(){this.head=this.tail=new vs}isEmpty(){return this.head.isEmpty()}push(e){this.head.isFull()&&(this.head=this.head.next=new vs),this.head.push(e)}shift(){let e=this.tail,t=e.shift();return e.isEmpty()&&e.next!==null&&(this.tail=e.next),t}}});var EC=c((Mb,QC)=>{var{kFree:Fy,kConnected:Ny,kPending:my,kQueued:by,kRunning:Sy,kSize:Uy}=$(),it=Symbol("pool"),po=class{constructor(e){this[it]=e}get connected(){return this[it][Ny]}get free(){return this[it][Fy]}get pending(){return this[it][my]}get queued(){return this[it][by]}get running(){return this[it][Sy]}get size(){return this[it][Uy]}};QC.exports=po});var bo=c((Yb,dC)=>{"use strict";var Ly=pr(),My=gC(),{kConnected:Ro,kSize:aC,kRunning:CC,kPending:BC,kQueued:Lr,kBusy:Yy,kFree:Jy,kUrl:Gy,kClose:Ty,kDestroy:vy,kDispatch:Hy}=$(),Vy=EC(),bA=Symbol("clients"),RA=Symbol("needDrain"),Mr=Symbol("queue"),ko=Symbol("closed resolve"),Fo=Symbol("onDrain"),IC=Symbol("onConnect"),cC=Symbol("onDisconnect"),hC=Symbol("onConnectionError"),No=Symbol("get dispatcher"),uC=Symbol("add client"),fC=Symbol("remove client"),lC=Symbol("stats"),mo=class extends Ly{constructor(){super(),this[Mr]=new My,this[bA]=[],this[Lr]=0;let e=this;this[Fo]=function(r,s){let n=e[Mr],i=!1;for(;!i;){let o=n.shift();if(!o)break;e[Lr]--,i=!this.dispatch(o.opts,o.handler)}this[RA]=i,!this[RA]&&e[RA]&&(e[RA]=!1,e.emit("drain",r,[e,...s])),e[ko]&&n.isEmpty()&&Promise.all(e[bA].map(o=>o.close())).then(e[ko])},this[IC]=(t,r)=>{e.emit("connect",t,[e,...r])},this[cC]=(t,r,s)=>{e.emit("disconnect",t,[e,...r],s)},this[hC]=(t,r,s)=>{e.emit("connectionError",t,[e,...r],s)},this[lC]=new Vy(this)}get[Yy](){return this[RA]}get[Ro](){return this[bA].filter(e=>e[Ro]).length}get[Jy](){return this[bA].filter(e=>e[Ro]&&!e[RA]).length}get[BC](){let e=this[Lr];for(let{[BC]:t}of this[bA])e+=t;return e}get[CC](){let e=0;for(let{[CC]:t}of this[bA])e+=t;return e}get[aC](){let e=this[Lr];for(let{[aC]:t}of this[bA])e+=t;return e}get stats(){return this[lC]}async[Ty](){return this[Mr].isEmpty()?Promise.all(this[bA].map(e=>e.close())):new Promise(e=>{this[ko]=e})}async[vy](e){for(;;){let t=this[Mr].shift();if(!t)break;t.handler.onError(e)}return Promise.all(this[bA].map(t=>t.destroy(e)))}[Hy](e,t){let r=this[No]();return r?r.dispatch(e,t)||(r[RA]=!0,this[RA]=!this[No]()):(this[RA]=!0,this[Mr].push({opts:e,handler:t}),this[Lr]++),!this[RA]}[uC](e){return e.on("drain",this[Fo]).on("connect",this[IC]).on("disconnect",this[cC]).on("connectionError",this[hC]),this[bA].push(e),this[RA]&&process.nextTick(()=>{this[RA]&&this[Fo](e[Gy],[this,e])}),this}[fC](e){e.close(()=>{let t=this[bA].indexOf(e);t!==-1&&this[bA].splice(t,1)}),this[RA]=this[bA].some(t=>!t[RA]&&t.closed!==!0&&t.destroyed!==!0)}};dC.exports={PoolBase:mo,kClients:bA,kNeedDrain:RA,kAddClient:uC,kRemoveClient:fC,kGetDispatcher:No}});var vt=c((Jb,pC)=>{"use strict";var{PoolBase:xy,kClients:yC,kNeedDrain:qy,kAddClient:Wy,kGetDispatcher:Oy}=bo(),Py=Ur(),{InvalidArgumentError:So}=Z(),Uo=G(),{kUrl:wC,kInterceptors:_y}=$(),Zy=Rr(),Lo=Symbol("options"),Mo=Symbol("connections"),DC=Symbol("factory");function Xy(A,e){return new Py(A,e)}var Yo=class extends xy{constructor(e,{connections:t,factory:r=Xy,connect:s,connectTimeout:n,tls:i,maxCachedSessions:o,socketPath:g,autoSelectFamily:a,autoSelectFamilyAttemptTimeout:Q,...E}={}){if(super(),t!=null&&(!Number.isFinite(t)||t<0))throw new So("invalid connections");if(typeof r!="function")throw new So("factory must be a function.");if(s!=null&&typeof s!="function"&&typeof s!="object")throw new So("connect must be a function or an object");typeof s!="function"&&(s=Zy({...i,maxCachedSessions:o,socketPath:g,timeout:n??1e4,...Uo.nodeHasAutoSelectFamily&&a?{autoSelectFamily:a,autoSelectFamilyAttemptTimeout:Q}:void 0,...s})),this[_y]=E.interceptors&&E.interceptors.Pool&&Array.isArray(E.interceptors.Pool)?E.interceptors.Pool:[],this[Mo]=t||null,this[wC]=Uo.parseOrigin(e),this[Lo]={...Uo.deepClone(E),connect:s},this[Lo].interceptors=E.interceptors?{...E.interceptors}:void 0,this[DC]=r}[Oy](){let e=this[yC].find(t=>!t[qy]);return e||((!this[Mo]||this[yC].length<this[Mo])&&(e=this[DC](this[wC],this[Lo]),this[Wy](e)),e)}};pC.exports=Yo});var bC=c((Gb,mC)=>{"use strict";var{BalancedPoolMissingUpstreamError:Ky,InvalidArgumentError:jy}=Z(),{PoolBase:zy,kClients:kA,kNeedDrain:Yr,kAddClient:$y,kRemoveClient:Aw,kGetDispatcher:ew}=bo(),tw=vt(),{kUrl:Jo,kInterceptors:rw}=$(),{parseOrigin:RC}=G(),kC=Symbol("factory"),Hs=Symbol("options"),FC=Symbol("kGreatestCommonDivisor"),ot=Symbol("kCurrentWeight"),gt=Symbol("kIndex"),ee=Symbol("kWeight"),Vs=Symbol("kMaxWeightPerServer"),xs=Symbol("kErrorPenalty");function NC(A,e){return e===0?A:NC(e,A%e)}function sw(A,e){return new tw(A,e)}var Go=class extends zy{constructor(e=[],{factory:t=sw,...r}={}){if(super(),this[Hs]=r,this[gt]=-1,this[ot]=0,this[Vs]=this[Hs].maxWeightPerServer||100,this[xs]=this[Hs].errorPenalty||15,Array.isArray(e)||(e=[e]),typeof t!="function")throw new jy("factory must be a function.");this[rw]=r.interceptors&&r.interceptors.BalancedPool&&Array.isArray(r.interceptors.BalancedPool)?r.interceptors.BalancedPool:[],this[kC]=t;for(let s of e)this.addUpstream(s);this._updateBalancedPoolStats()}addUpstream(e){let t=RC(e).origin;if(this[kA].find(s=>s[Jo].origin===t&&s.closed!==!0&&s.destroyed!==!0))return this;let r=this[kC](t,Object.assign({},this[Hs]));this[$y](r),r.on("connect",()=>{r[ee]=Math.min(this[Vs],r[ee]+this[xs])}),r.on("connectionError",()=>{r[ee]=Math.max(1,r[ee]-this[xs]),this._updateBalancedPoolStats()}),r.on("disconnect",(...s)=>{let n=s[2];n&&n.code==="UND_ERR_SOCKET"&&(r[ee]=Math.max(1,r[ee]-this[xs]),this._updateBalancedPoolStats())});for(let s of this[kA])s[ee]=this[Vs];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){this[FC]=this[kA].map(e=>e[ee]).reduce(NC,0)}removeUpstream(e){let t=RC(e).origin,r=this[kA].find(s=>s[Jo].origin===t&&s.closed!==!0&&s.destroyed!==!0);return r&&this[Aw](r),this}get upstreams(){return this[kA].filter(e=>e.closed!==!0&&e.destroyed!==!0).map(e=>e[Jo].origin)}[ew](){if(this[kA].length===0)throw new Ky;if(!this[kA].find(n=>!n[Yr]&&n.closed!==!0&&n.destroyed!==!0)||this[kA].map(n=>n[Yr]).reduce((n,i)=>n&&i,!0))return;let r=0,s=this[kA].findIndex(n=>!n[Yr]);for(;r++<this[kA].length;){this[gt]=(this[gt]+1)%this[kA].length;let n=this[kA][this[gt]];if(n[ee]>this[kA][s][ee]&&!n[Yr]&&(s=this[gt]),this[gt]===0&&(this[ot]=this[ot]-this[FC],this[ot]<=0&&(this[ot]=this[Vs])),n[ee]>=this[ot]&&!n[Yr])return n}return this[ot]=this[kA][s][ee],this[gt]=s,this[kA][s]}};mC.exports=Go});var Ho=c((Tb,LC)=>{"use strict";var{kConnected:SC,kSize:UC}=$(),To=class{constructor(e){this.value=e}deref(){return this.value[SC]===0&&this.value[UC]===0?void 0:this.value}},vo=class{constructor(e){this.finalizer=e}register(e,t){e.on("disconnect",()=>{e[SC]===0&&e[UC]===0&&this.finalizer(t)})}};LC.exports=function(){return{WeakRef:global.WeakRef||To,FinalizationRegistry:global.FinalizationRegistry||vo}}});var Jr=c((vb,VC)=>{"use strict";var{InvalidArgumentError:qs}=Z(),{kClients:Oe,kRunning:MC,kClose:nw,kDestroy:iw,kDispatch:ow,kInterceptors:gw}=$(),Qw=pr(),Ew=vt(),aw=Ur(),Cw=G(),Bw=bs(),{WeakRef:Iw,FinalizationRegistry:cw}=Ho()(),YC=Symbol("onConnect"),JC=Symbol("onDisconnect"),GC=Symbol("onConnectionError"),hw=Symbol("maxRedirections"),TC=Symbol("onDrain"),vC=Symbol("factory"),HC=Symbol("finalizer"),Vo=Symbol("options");function lw(A,e){return e&&e.connections===1?new aw(A,e):new Ew(A,e)}var xo=class extends Qw{constructor({factory:e=lw,maxRedirections:t=0,connect:r,...s}={}){if(super(),typeof e!="function")throw new qs("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new qs("connect must be a function or an object");if(!Number.isInteger(t)||t<0)throw new qs("maxRedirections must be a positive number");r&&typeof r!="function"&&(r={...r}),this[gw]=s.interceptors&&s.interceptors.Agent&&Array.isArray(s.interceptors.Agent)?s.interceptors.Agent:[Bw({maxRedirections:t})],this[Vo]={...Cw.deepClone(s),connect:r},this[Vo].interceptors=s.interceptors?{...s.interceptors}:void 0,this[hw]=t,this[vC]=e,this[Oe]=new Map,this[HC]=new cw(i=>{let o=this[Oe].get(i);o!==void 0&&o.deref()===void 0&&this[Oe].delete(i)});let n=this;this[TC]=(i,o)=>{n.emit("drain",i,[n,...o])},this[YC]=(i,o)=>{n.emit("connect",i,[n,...o])},this[JC]=(i,o,g)=>{n.emit("disconnect",i,[n,...o],g)},this[GC]=(i,o,g)=>{n.emit("connectionError",i,[n,...o],g)}}get[MC](){let e=0;for(let t of this[Oe].values()){let r=t.deref();r&&(e+=r[MC])}return e}[ow](e,t){let r;if(e.origin&&(typeof e.origin=="string"||e.origin instanceof URL))r=String(e.origin);else throw new qs("opts.origin must be a non-empty string or URL.");let s=this[Oe].get(r),n=s?s.deref():null;return n||(n=this[vC](e.origin,this[Vo]).on("drain",this[TC]).on("connect",this[YC]).on("disconnect",this[JC]).on("connectionError",this[GC]),this[Oe].set(r,new Iw(n)),this[HC].register(n,r)),n.dispatch(e,t)}async[nw](){let e=[];for(let t of this[Oe].values()){let r=t.deref();r&&e.push(r.close())}await Promise.all(e)}async[iw](e){let t=[];for(let r of this[Oe].values()){let s=r.deref();s&&t.push(s.destroy(e))}await Promise.all(t)}};VC.exports=xo});var XC=c((Vb,ZC)=>{"use strict";var WC=require("assert"),{Readable:uw}=require("stream"),{RequestAbortedError:OC,NotSupportedError:fw,InvalidArgumentError:dw}=Z(),Ht=G(),{ReadableStreamFrom:yw,toUSVString:ww}=G(),qo,qA=Symbol("kConsume"),Ws=Symbol("kReading"),Pe=Symbol("kBody"),xC=Symbol("abort"),PC=Symbol("kContentType");ZC.exports=class extends uw{constructor({resume:e,abort:t,contentType:r="",highWaterMark:s=64*1024}){super({autoDestroy:!0,read:e,highWaterMark:s}),this._readableState.dataEmitted=!1,this[xC]=t,this[qA]=null,this[Pe]=null,this[PC]=r,this[Ws]=!1}destroy(e){return this.destroyed?this:(!e&&!this._readableState.endEmitted&&(e=new OC),e&&this[xC](),super.destroy(e))}emit(e,...t){return e==="data"?this._readableState.dataEmitted=!0:e==="error"&&(this._readableState.errorEmitted=!0),super.emit(e,...t)}on(e,...t){return(e==="data"||e==="readable")&&(this[Ws]=!0),super.on(e,...t)}addListener(e,...t){return this.on(e,...t)}off(e,...t){let r=super.off(e,...t);return(e==="data"||e==="readable")&&(this[Ws]=this.listenerCount("data")>0||this.listenerCount("readable")>0),r}removeListener(e,...t){return this.off(e,...t)}push(e){return this[qA]&&e!==null&&this.readableLength===0?(_C(this[qA],e),this[Ws]?super.push(e):!0):super.push(e)}async text(){return Os(this,"text")}async json(){return Os(this,"json")}async blob(){return Os(this,"blob")}async arrayBuffer(){return Os(this,"arrayBuffer")}async formData(){throw new fw}get bodyUsed(){return Ht.isDisturbed(this)}get body(){return this[Pe]||(this[Pe]=yw(this),this[qA]&&(this[Pe].getReader(),WC(this[Pe].locked))),this[Pe]}async dump(e){let t=e&&Number.isFinite(e.limit)?e.limit:262144,r=e&&e.signal,s=()=>{this.destroy()},n;if(r){if(typeof r!="object"||!("aborted"in r))throw new dw("signal must be an AbortSignal");Ht.throwIfAborted(r),n=Ht.addAbortListener(r,s)}try{for await(let i of this)if(Ht.throwIfAborted(r),t-=Buffer.byteLength(i),t<0)return}catch{Ht.throwIfAborted(r)}finally{typeof n=="function"?n():n&&n[Symbol.dispose]()}}};function Dw(A){return A[Pe]&&A[Pe].locked===!0||A[qA]}function pw(A){return Ht.isDisturbed(A)||Dw(A)}async function Os(A,e){if(pw(A))throw new TypeError("unusable");return WC(!A[qA]),new Promise((t,r)=>{A[qA]={type:e,stream:A,resolve:t,reject:r,length:0,body:[]},A.on("error",function(s){Wo(this[qA],s)}).on("close",function(){this[qA].body!==null&&Wo(this[qA],new OC)}),process.nextTick(Rw,A[qA])})}function Rw(A){if(A.body===null)return;let{_readableState:e}=A.stream;for(let t of e.buffer)_C(A,t);for(e.endEmitted?qC(this[qA]):A.stream.on("end",function(){qC(this[qA])}),A.stream.resume();A.stream.read()!=null;);}function qC(A){let{type:e,body:t,resolve:r,stream:s,length:n}=A;try{if(e==="text")r(ww(Buffer.concat(t)));else if(e==="json")r(JSON.parse(Buffer.concat(t)));else if(e==="arrayBuffer"){let i=new Uint8Array(n),o=0;for(let g of t)i.set(g,o),o+=g.byteLength;r(i)}else e==="blob"&&(qo||(qo=require("buffer").Blob),r(new qo(t,{type:s[PC]})));Wo(A)}catch(i){s.destroy(i)}}function _C(A,e){A.length+=e.length,A.body.push(e)}function Wo(A,e){A.body!==null&&(e?A.reject(e):A.resolve(),A.type=null,A.stream=null,A.resolve=null,A.reject=null,A.length=0,A.body=null)}});var Oo=c((xb,jC)=>{var kw=require("assert"),{ResponseStatusCodeError:Ps}=Z(),{toUSVString:KC}=G();async function Fw({callback:A,body:e,contentType:t,statusCode:r,statusMessage:s,headers:n}){kw(e);let i=[],o=0;for await(let g of e)if(i.push(g),o+=g.length,o>128*1024){i=null;break}if(r===204||!t||!i){process.nextTick(A,new Ps(`Response status code ${r}${s?`: ${s}`:""}`,r,n));return}try{if(t.startsWith("application/json")){let g=JSON.parse(KC(Buffer.concat(i)));process.nextTick(A,new Ps(`Response status code ${r}${s?`: ${s}`:""}`,r,n,g));return}if(t.startsWith("text/")){let g=KC(Buffer.concat(i));process.nextTick(A,new Ps(`Response status code ${r}${s?`: ${s}`:""}`,r,n,g));return}}catch{}process.nextTick(A,new Ps(`Response status code ${r}${s?`: ${s}`:""}`,r,n))}jC.exports={getResolveErrorBodyCallback:Fw}});var xt=c((qb,$C)=>{var{addAbortListener:Nw}=G(),{RequestAbortedError:mw}=Z(),Vt=Symbol("kListener"),Ze=Symbol("kSignal");function zC(A){A.abort?A.abort():A.onError(new mw)}function bw(A,e){if(A[Ze]=null,A[Vt]=null,!!e){if(e.aborted){zC(A);return}A[Ze]=e,A[Vt]=()=>{zC(A)},Nw(A[Ze],A[Vt])}}function Sw(A){A[Ze]&&("removeEventListener"in A[Ze]?A[Ze].removeEventListener("abort",A[Vt]):A[Ze].removeListener("abort",A[Vt]),A[Ze]=null,A[Vt]=null)}$C.exports={addSignal:bw,removeSignal:Sw}});var rB=c((Wb,tB)=>{"use strict";var Uw=XC(),{InvalidArgumentError:qt,RequestAbortedError:Lw}=Z(),ye=G(),{getResolveErrorBodyCallback:Mw}=Oo(),{AsyncResource:Yw}=require("async_hooks"),{addSignal:Jw,removeSignal:AB}=xt(),Po=class extends Yw{constructor(e,t){if(!e||typeof e!="object")throw new qt("invalid opts");let{signal:r,method:s,opaque:n,body:i,onInfo:o,responseHeaders:g,throwOnError:a,highWaterMark:Q}=e;try{if(typeof t!="function")throw new qt("invalid callback");if(Q&&(typeof Q!="number"||Q<0))throw new qt("invalid highWaterMark");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new qt("signal must be an EventEmitter or EventTarget");if(s==="CONNECT")throw new qt("invalid method");if(o&&typeof o!="function")throw new qt("invalid onInfo callback");super("UNDICI_REQUEST")}catch(E){throw ye.isStream(i)&&ye.destroy(i.on("error",ye.nop),E),E}this.responseHeaders=g||null,this.opaque=n||null,this.callback=t,this.res=null,this.abort=null,this.body=i,this.trailers={},this.context=null,this.onInfo=o||null,this.throwOnError=a,this.highWaterMark=Q,ye.isStream(i)&&i.on("error",E=>{this.onError(E)}),Jw(this,r)}onConnect(e,t){if(!this.callback)throw new Lw;this.abort=e,this.context=t}onHeaders(e,t,r,s){let{callback:n,opaque:i,abort:o,context:g,responseHeaders:a,highWaterMark:Q}=this,E=a==="raw"?ye.parseRawHeaders(t):ye.parseHeaders(t);if(e<200){this.onInfo&&this.onInfo({statusCode:e,headers:E});return}let B=(a==="raw"?ye.parseHeaders(t):E)["content-type"],I=new Uw({resume:r,abort:o,contentType:B,highWaterMark:Q});this.callback=null,this.res=I,n!==null&&(this.throwOnError&&e>=400?this.runInAsyncScope(Mw,null,{callback:n,body:I,contentType:B,statusCode:e,statusMessage:s,headers:E}):this.runInAsyncScope(n,null,null,{statusCode:e,headers:E,trailers:this.trailers,opaque:i,body:I,context:g}))}onData(e){let{res:t}=this;return t.push(e)}onComplete(e){let{res:t}=this;AB(this),ye.parseHeaders(e,this.trailers),t.push(null)}onError(e){let{res:t,callback:r,body:s,opaque:n}=this;AB(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,e,{opaque:n})})),t&&(this.res=null,queueMicrotask(()=>{ye.destroy(t,e)})),s&&(this.body=null,ye.destroy(s,e))}};function eB(A,e){if(e===void 0)return new Promise((t,r)=>{eB.call(this,A,(s,n)=>s?r(s):t(n))});try{this.dispatch(A,new Po(A,e))}catch(t){if(typeof e!="function")throw t;let r=A&&A.opaque;queueMicrotask(()=>e(t,{opaque:r}))}}tB.exports=eB});var oB=c((Ob,iB)=>{"use strict";var{finished:Gw,PassThrough:Tw}=require("stream"),{InvalidArgumentError:Wt,InvalidReturnValueError:vw,RequestAbortedError:Hw}=Z(),Qe=G(),{getResolveErrorBodyCallback:Vw}=Oo(),{AsyncResource:xw}=require("async_hooks"),{addSignal:qw,removeSignal:sB}=xt(),_o=class extends xw{constructor(e,t,r){if(!e||typeof e!="object")throw new Wt("invalid opts");let{signal:s,method:n,opaque:i,body:o,onInfo:g,responseHeaders:a,throwOnError:Q}=e;try{if(typeof r!="function")throw new Wt("invalid callback");if(typeof t!="function")throw new Wt("invalid factory");if(s&&typeof s.on!="function"&&typeof s.addEventListener!="function")throw new Wt("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new Wt("invalid method");if(g&&typeof g!="function")throw new Wt("invalid onInfo callback");super("UNDICI_STREAM")}catch(E){throw Qe.isStream(o)&&Qe.destroy(o.on("error",Qe.nop),E),E}this.responseHeaders=a||null,this.opaque=i||null,this.factory=t,this.callback=r,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=o,this.onInfo=g||null,this.throwOnError=Q||!1,Qe.isStream(o)&&o.on("error",E=>{this.onError(E)}),qw(this,s)}onConnect(e,t){if(!this.callback)throw new Hw;this.abort=e,this.context=t}onHeaders(e,t,r,s){let{factory:n,opaque:i,context:o,callback:g,responseHeaders:a}=this,Q=a==="raw"?Qe.parseRawHeaders(t):Qe.parseHeaders(t);if(e<200){this.onInfo&&this.onInfo({statusCode:e,headers:Q});return}this.factory=null;let E;if(this.throwOnError&&e>=400){let I=(a==="raw"?Qe.parseHeaders(t):Q)["content-type"];E=new Tw,this.callback=null,this.runInAsyncScope(Vw,null,{callback:g,body:E,contentType:I,statusCode:e,statusMessage:s,headers:Q})}else{if(E=this.runInAsyncScope(n,null,{statusCode:e,headers:Q,opaque:i,context:o}),!E||typeof E.write!="function"||typeof E.end!="function"||typeof E.on!="function")throw new vw("expected Writable");Gw(E,{readable:!1},B=>{let{callback:I,res:h,opaque:l,trailers:u,abort:F}=this;this.res=null,(B||!h.readable)&&Qe.destroy(h,B),this.callback=null,this.runInAsyncScope(I,null,B||null,{opaque:l,trailers:u}),B&&F()})}return E.on("drain",r),this.res=E,(E.writableNeedDrain!==void 0?E.writableNeedDrain:E._writableState&&E._writableState.needDrain)!==!0}onData(e){let{res:t}=this;return t.write(e)}onComplete(e){let{res:t}=this;sB(this),this.trailers=Qe.parseHeaders(e),t.end()}onError(e){let{res:t,callback:r,opaque:s,body:n}=this;sB(this),this.factory=null,t?(this.res=null,Qe.destroy(t,e)):r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,e,{opaque:s})})),n&&(this.body=null,Qe.destroy(n,e))}};function nB(A,e,t){if(t===void 0)return new Promise((r,s)=>{nB.call(this,A,e,(n,i)=>n?s(n):r(i))});try{this.dispatch(A,new _o(A,e,t))}catch(r){if(typeof t!="function")throw r;let s=A&&A.opaque;queueMicrotask(()=>t(r,{opaque:s}))}}iB.exports=nB});var EB=c((Pb,QB)=>{"use strict";var{Readable:gB,Duplex:Ww,PassThrough:Ow}=require("stream"),{InvalidArgumentError:Gr,InvalidReturnValueError:Pw,RequestAbortedError:_s}=Z(),te=G(),{AsyncResource:_w}=require("async_hooks"),{addSignal:Zw,removeSignal:Xw}=xt(),Kw=require("assert"),Ot=Symbol("resume"),Zo=class extends gB{constructor(){super({autoDestroy:!0}),this[Ot]=null}_read(){let{[Ot]:e}=this;e&&(this[Ot]=null,e())}_destroy(e,t){this._read(),t(e)}},Xo=class extends gB{constructor(e){super({autoDestroy:!0}),this[Ot]=e}_read(){this[Ot]()}_destroy(e,t){!e&&!this._readableState.endEmitted&&(e=new _s),t(e)}},Ko=class extends _w{constructor(e,t){if(!e||typeof e!="object")throw new Gr("invalid opts");if(typeof t!="function")throw new Gr("invalid handler");let{signal:r,method:s,opaque:n,onInfo:i,responseHeaders:o}=e;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Gr("signal must be an EventEmitter or EventTarget");if(s==="CONNECT")throw new Gr("invalid method");if(i&&typeof i!="function")throw new Gr("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=n||null,this.responseHeaders=o||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=i||null,this.req=new Zo().on("error",te.nop),this.ret=new Ww({readableObjectMode:e.objectMode,autoDestroy:!0,read:()=>{let{body:g}=this;g&&g.resume&&g.resume()},write:(g,a,Q)=>{let{req:E}=this;E.push(g,a)||E._readableState.destroyed?Q():E[Ot]=Q},destroy:(g,a)=>{let{body:Q,req:E,res:C,ret:B,abort:I}=this;!g&&!B._readableState.endEmitted&&(g=new _s),I&&g&&I(),te.destroy(Q,g),te.destroy(E,g),te.destroy(C,g),Xw(this),a(g)}}).on("prefinish",()=>{let{req:g}=this;g.push(null)}),this.res=null,Zw(this,r)}onConnect(e,t){let{ret:r,res:s}=this;if(Kw(!s,"pipeline cannot be retried"),r.destroyed)throw new _s;this.abort=e,this.context=t}onHeaders(e,t,r){let{opaque:s,handler:n,context:i}=this;if(e<200){if(this.onInfo){let g=this.responseHeaders==="raw"?te.parseRawHeaders(t):te.parseHeaders(t);this.onInfo({statusCode:e,headers:g})}return}this.res=new Xo(r);let o;try{this.handler=null;let g=this.responseHeaders==="raw"?te.parseRawHeaders(t):te.parseHeaders(t);o=this.runInAsyncScope(n,null,{statusCode:e,headers:g,opaque:s,body:this.res,context:i})}catch(g){throw this.res.on("error",te.nop),g}if(!o||typeof o.on!="function")throw new Pw("expected Readable");o.on("data",g=>{let{ret:a,body:Q}=this;!a.push(g)&&Q.pause&&Q.pause()}).on("error",g=>{let{ret:a}=this;te.destroy(a,g)}).on("end",()=>{let{ret:g}=this;g.push(null)}).on("close",()=>{let{ret:g}=this;g._readableState.ended||te.destroy(g,new _s)}),this.body=o}onData(e){let{res:t}=this;return t.push(e)}onComplete(e){let{res:t}=this;t.push(null)}onError(e){let{ret:t}=this;this.handler=null,te.destroy(t,e)}};function jw(A,e){try{let t=new Ko(A,e);return this.dispatch({...A,body:t.req},t),t.ret}catch(t){return new Ow().destroy(t)}}QB.exports=jw});var cB=c((Zb,IB)=>{"use strict";var{InvalidArgumentError:jo,RequestAbortedError:zw,SocketError:$w}=Z(),{AsyncResource:AD}=require("async_hooks"),aB=G(),{addSignal:eD,removeSignal:CB}=xt(),tD=require("assert"),zo=class extends AD{constructor(e,t){if(!e||typeof e!="object")throw new jo("invalid opts");if(typeof t!="function")throw new jo("invalid callback");let{signal:r,opaque:s,responseHeaders:n}=e;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new jo("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=n||null,this.opaque=s||null,this.callback=t,this.abort=null,this.context=null,eD(this,r)}onConnect(e,t){if(!this.callback)throw new zw;this.abort=e,this.context=null}onHeaders(){throw new $w("bad upgrade",null)}onUpgrade(e,t,r){let{callback:s,opaque:n,context:i}=this;tD.strictEqual(e,101),CB(this),this.callback=null;let o=this.responseHeaders==="raw"?aB.parseRawHeaders(t):aB.parseHeaders(t);this.runInAsyncScope(s,null,null,{headers:o,socket:r,opaque:n,context:i})}onError(e){let{callback:t,opaque:r}=this;CB(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,e,{opaque:r})}))}};function BB(A,e){if(e===void 0)return new Promise((t,r)=>{BB.call(this,A,(s,n)=>s?r(s):t(n))});try{let t=new zo(A,e);this.dispatch({...A,method:A.method||"GET",upgrade:A.protocol||"Websocket"},t)}catch(t){if(typeof e!="function")throw t;let r=A&&A.opaque;queueMicrotask(()=>e(t,{opaque:r}))}}IB.exports=BB});var dB=c((Xb,fB)=>{"use strict";var{InvalidArgumentError:$o,RequestAbortedError:rD,SocketError:sD}=Z(),{AsyncResource:nD}=require("async_hooks"),hB=G(),{addSignal:iD,removeSignal:lB}=xt(),Ag=class extends nD{constructor(e,t){if(!e||typeof e!="object")throw new $o("invalid opts");if(typeof t!="function")throw new $o("invalid callback");let{signal:r,opaque:s,responseHeaders:n}=e;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new $o("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=s||null,this.responseHeaders=n||null,this.callback=t,this.abort=null,iD(this,r)}onConnect(e,t){if(!this.callback)throw new rD;this.abort=e,this.context=t}onHeaders(){throw new sD("bad connect",null)}onUpgrade(e,t,r){let{callback:s,opaque:n,context:i}=this;lB(this),this.callback=null;let o=this.responseHeaders==="raw"?hB.parseRawHeaders(t):hB.parseHeaders(t);this.runInAsyncScope(s,null,null,{statusCode:e,headers:o,socket:r,opaque:n,context:i})}onError(e){let{callback:t,opaque:r}=this;lB(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,e,{opaque:r})}))}};function uB(A,e){if(e===void 0)return new Promise((t,r)=>{uB.call(this,A,(s,n)=>s?r(s):t(n))});try{let t=new Ag(A,e);this.dispatch({...A,method:"CONNECT"},t)}catch(t){if(typeof e!="function")throw t;let r=A&&A.opaque;queueMicrotask(()=>e(t,{opaque:r}))}}fB.exports=uB});var yB=c((Kb,Pt)=>{"use strict";Pt.exports.request=rB();Pt.exports.stream=oB();Pt.exports.pipeline=EB();Pt.exports.upgrade=cB();Pt.exports.connect=dB()});var tg=c((jb,wB)=>{"use strict";var{UndiciError:oD}=Z(),eg=class A extends oD{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="MockNotMatchedError",this.message=e||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};wB.exports={MockNotMatchedError:eg}});var _t=c((zb,DB)=>{"use strict";DB.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var Tr=c(($b,YB)=>{"use strict";var{MockNotMatchedError:Qt}=tg(),{kDispatches:Zs,kMockAgent:gD,kOriginalDispatch:QD,kOrigin:ED,kGetNetConnect:aD}=_t(),{buildURL:CD,nop:BD}=G(),{STATUS_CODES:ID}=require("http"),{types:{isPromise:cD}}=require("util");function Me(A,e){return typeof A=="string"?A===e:A instanceof RegExp?A.test(e):typeof A=="function"?A(e)===!0:!1}function RB(A){return Object.fromEntries(Object.entries(A).map(([e,t])=>[e.toLocaleLowerCase(),t]))}function kB(A,e){if(Array.isArray(A)){for(let t=0;t<A.length;t+=2)if(A[t].toLocaleLowerCase()===e.toLocaleLowerCase())return A[t+1];return}else return typeof A.get=="function"?A.get(e):RB(A)[e.toLocaleLowerCase()]}function FB(A){let e=A.slice(),t=[];for(let r=0;r<e.length;r+=2)t.push([e[r],e[r+1]]);return Object.fromEntries(t)}function NB(A,e){if(typeof A.headers=="function")return Array.isArray(e)&&(e=FB(e)),A.headers(e?RB(e):{});if(typeof A.headers>"u")return!0;if(typeof e!="object"||typeof A.headers!="object")return!1;for(let[t,r]of Object.entries(A.headers)){let s=kB(e,t);if(!Me(r,s))return!1}return!0}function pB(A){if(typeof A!="string")return A;let e=A.split("?");if(e.length!==2)return A;let t=new URLSearchParams(e.pop());return t.sort(),[...e,t.toString()].join("?")}function hD(A,{path:e,method:t,body:r,headers:s}){let n=Me(A.path,e),i=Me(A.method,t),o=typeof A.body<"u"?Me(A.body,r):!0,g=NB(A,s);return n&&i&&o&&g}function mB(A){return Buffer.isBuffer(A)?A:typeof A=="object"?JSON.stringify(A):A.toString()}function bB(A,e){let t=e.query?CD(e.path,e.query):e.path,r=typeof t=="string"?pB(t):t,s=A.filter(({consumed:n})=>!n).filter(({path:n})=>Me(pB(n),r));if(s.length===0)throw new Qt(`Mock dispatch not matched for path '${r}'`);if(s=s.filter(({method:n})=>Me(n,e.method)),s.length===0)throw new Qt(`Mock dispatch not matched for method '${e.method}'`);if(s=s.filter(({body:n})=>typeof n<"u"?Me(n,e.body):!0),s.length===0)throw new Qt(`Mock dispatch not matched for body '${e.body}'`);if(s=s.filter(n=>NB(n,e.headers)),s.length===0)throw new Qt(`Mock dispatch not matched for headers '${typeof e.headers=="object"?JSON.stringify(e.headers):e.headers}'`);return s[0]}function lD(A,e,t){let r={timesInvoked:0,times:1,persist:!1,consumed:!1},s=typeof t=="function"?{callback:t}:{...t},n={...r,...e,pending:!0,data:{error:null,...s}};return A.push(n),n}function rg(A,e){let t=A.findIndex(r=>r.consumed?hD(r,e):!1);t!==-1&&A.splice(t,1)}function SB(A){let{path:e,method:t,body:r,headers:s,query:n}=A;return{path:e,method:t,body:r,headers:s,query:n}}function sg(A){return Object.entries(A).reduce((e,[t,r])=>[...e,Buffer.from(`${t}`),Array.isArray(r)?r.map(s=>Buffer.from(`${s}`)):Buffer.from(`${r}`)],[])}function UB(A){return ID[A]||"unknown"}async function uD(A){let e=[];for await(let t of A)e.push(t);return Buffer.concat(e).toString("utf8")}function LB(A,e){let t=SB(A),r=bB(this[Zs],t);r.timesInvoked++,r.data.callback&&(r.data={...r.data,...r.data.callback(A)});let{data:{statusCode:s,data:n,headers:i,trailers:o,error:g},delay:a,persist:Q}=r,{timesInvoked:E,times:C}=r;if(r.consumed=!Q&&E>=C,r.pending=E<C,g!==null)return rg(this[Zs],t),e.onError(g),!0;typeof a=="number"&&a>0?setTimeout(()=>{B(this[Zs])},a):B(this[Zs]);function B(h,l=n){let u=Array.isArray(A.headers)?FB(A.headers):A.headers,F=typeof l=="function"?l({...A,headers:u}):l;if(cD(F)){F.then(O=>B(h,O));return}let w=mB(F),k=sg(i),T=sg(o);e.abort=BD,e.onHeaders(s,k,I,UB(s)),e.onData(Buffer.from(w)),e.onComplete(T),rg(h,t)}function I(){}return!0}function fD(){let A=this[gD],e=this[ED],t=this[QD];return function(s,n){if(A.isMockActive)try{LB.call(this,s,n)}catch(i){if(i instanceof Qt){let o=A[aD]();if(o===!1)throw new Qt(`${i.message}: subsequent request to origin ${e} was not allowed (net.connect disabled)`);if(MB(o,e))t.call(this,s,n);else throw new Qt(`${i.message}: subsequent request to origin ${e} was not allowed (net.connect is not enabled for this origin)`)}else throw i}else t.call(this,s,n)}}function MB(A,e){let t=new URL(e);return A===!0?!0:!!(Array.isArray(A)&&A.some(r=>Me(r,t.host)))}function dD(A){if(A){let{agent:e,...t}=A;return t}}YB.exports={getResponseData:mB,getMockDispatch:bB,addMockDispatch:lD,deleteMockDispatch:rg,buildKey:SB,generateKeyValues:sg,matchValue:Me,getResponse:uD,getStatusText:UB,mockDispatch:LB,buildMockDispatch:fD,checkNetConnect:MB,buildMockOptions:dD,getHeaderByName:kB}});var ag=c((AS,Eg)=>{"use strict";var{getResponseData:yD,buildKey:wD,addMockDispatch:ng}=Tr(),{kDispatches:Xs,kDispatchKey:Ks,kDefaultHeaders:ig,kDefaultTrailers:og,kContentLength:gg,kMockDispatch:js}=_t(),{InvalidArgumentError:Ee}=Z(),{buildURL:DD}=G(),Zt=class{constructor(e){this[js]=e}delay(e){if(typeof e!="number"||!Number.isInteger(e)||e<=0)throw new Ee("waitInMs must be a valid integer > 0");return this[js].delay=e,this}persist(){return this[js].persist=!0,this}times(e){if(typeof e!="number"||!Number.isInteger(e)||e<=0)throw new Ee("repeatTimes must be a valid integer > 0");return this[js].times=e,this}},Qg=class{constructor(e,t){if(typeof e!="object")throw new Ee("opts must be an object");if(typeof e.path>"u")throw new Ee("opts.path must be defined");if(typeof e.method>"u"&&(e.method="GET"),typeof e.path=="string")if(e.query)e.path=DD(e.path,e.query);else{let r=new URL(e.path,"data://");e.path=r.pathname+r.search}typeof e.method=="string"&&(e.method=e.method.toUpperCase()),this[Ks]=wD(e),this[Xs]=t,this[ig]={},this[og]={},this[gg]=!1}createMockScopeDispatchData(e,t,r={}){let s=yD(t),n=this[gg]?{"content-length":s.length}:{},i={...this[ig],...n,...r.headers},o={...this[og],...r.trailers};return{statusCode:e,data:t,headers:i,trailers:o}}validateReplyParameters(e,t,r){if(typeof e>"u")throw new Ee("statusCode must be defined");if(typeof t>"u")throw new Ee("data must be defined");if(typeof r!="object")throw new Ee("responseOptions must be an object")}reply(e){if(typeof e=="function"){let o=a=>{let Q=e(a);if(typeof Q!="object")throw new Ee("reply options callback must return an object");let{statusCode:E,data:C="",responseOptions:B={}}=Q;return this.validateReplyParameters(E,C,B),{...this.createMockScopeDispatchData(E,C,B)}},g=ng(this[Xs],this[Ks],o);return new Zt(g)}let[t,r="",s={}]=[...arguments];this.validateReplyParameters(t,r,s);let n=this.createMockScopeDispatchData(t,r,s),i=ng(this[Xs],this[Ks],n);return new Zt(i)}replyWithError(e){if(typeof e>"u")throw new Ee("error must be defined");let t=ng(this[Xs],this[Ks],{error:e});return new Zt(t)}defaultReplyHeaders(e){if(typeof e>"u")throw new Ee("headers must be defined");return this[ig]=e,this}defaultReplyTrailers(e){if(typeof e>"u")throw new Ee("trailers must be defined");return this[og]=e,this}replyContentLength(){return this[gg]=!0,this}};Eg.exports.MockInterceptor=Qg;Eg.exports.MockScope=Zt});var Ig=c((eS,xB)=>{"use strict";var{promisify:pD}=require("util"),RD=Ur(),{buildMockDispatch:kD}=Tr(),{kDispatches:JB,kMockAgent:GB,kClose:TB,kOriginalClose:vB,kOrigin:HB,kOriginalDispatch:FD,kConnected:Cg}=_t(),{MockInterceptor:ND}=ag(),VB=$(),{InvalidArgumentError:mD}=Z(),Bg=class extends RD{constructor(e,t){if(super(e,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new mD("Argument opts.agent must implement Agent");this[GB]=t.agent,this[HB]=e,this[JB]=[],this[Cg]=1,this[FD]=this.dispatch,this[vB]=this.close.bind(this),this.dispatch=kD.call(this),this.close=this[TB]}get[VB.kConnected](){return this[Cg]}intercept(e){return new ND(e,this[JB])}async[TB](){await pD(this[vB])(),this[Cg]=0,this[GB][VB.kClients].delete(this[HB])}};xB.exports=Bg});var lg=c((tS,XB)=>{"use strict";var{promisify:bD}=require("util"),SD=vt(),{buildMockDispatch:UD}=Tr(),{kDispatches:qB,kMockAgent:WB,kClose:OB,kOriginalClose:PB,kOrigin:_B,kOriginalDispatch:LD,kConnected:cg}=_t(),{MockInterceptor:MD}=ag(),ZB=$(),{InvalidArgumentError:YD}=Z(),hg=class extends SD{constructor(e,t){if(super(e,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new YD("Argument opts.agent must implement Agent");this[WB]=t.agent,this[_B]=e,this[qB]=[],this[cg]=1,this[LD]=this.dispatch,this[PB]=this.close.bind(this),this.dispatch=UD.call(this),this.close=this[OB]}get[ZB.kConnected](){return this[cg]}intercept(e){return new MD(e,this[qB])}async[OB](){await bD(this[PB])(),this[cg]=0,this[WB][ZB.kClients].delete(this[_B])}};XB.exports=hg});var jB=c((sS,KB)=>{"use strict";var JD={pronoun:"it",is:"is",was:"was",this:"this"},GD={pronoun:"they",is:"are",was:"were",this:"these"};KB.exports=class{constructor(e,t){this.singular=e,this.plural=t}pluralize(e){let t=e===1,r=t?JD:GD,s=t?this.singular:this.plural;return{...r,count:e,noun:s}}}});var $B=c((iS,zB)=>{"use strict";var{Transform:TD}=require("stream"),{Console:vD}=require("console");zB.exports=class{constructor({disableColors:e}={}){this.transform=new TD({transform(t,r,s){s(null,t)}}),this.logger=new vD({stdout:this.transform,inspectOptions:{colors:!e&&!process.env.CI}})}format(e){let t=e.map(({method:r,path:s,data:{statusCode:n},persist:i,times:o,timesInvoked:g,origin:a})=>({Method:r,Origin:a,Path:s,"Status code":n,Persistent:i?"\u2705":"\u274C",Invocations:g,Remaining:i?1/0:o-g}));return this.logger.table(t),this.transform.read().toString()}}});var rI=c((oS,tI)=>{"use strict";var{kClients:Et}=$(),HD=Jr(),{kAgent:ug,kMockAgentSet:zs,kMockAgentGet:AI,kDispatches:fg,kIsMockActive:$s,kNetConnect:at,kGetNetConnect:VD,kOptions:An,kFactory:en}=_t(),xD=Ig(),qD=lg(),{matchValue:WD,buildMockOptions:OD}=Tr(),{InvalidArgumentError:eI,UndiciError:PD}=Z(),_D=ks(),ZD=jB(),XD=$B(),dg=class{constructor(e){this.value=e}deref(){return this.value}},yg=class extends _D{constructor(e){if(super(e),this[at]=!0,this[$s]=!0,e&&e.agent&&typeof e.agent.dispatch!="function")throw new eI("Argument opts.agent must implement Agent");let t=e&&e.agent?e.agent:new HD(e);this[ug]=t,this[Et]=t[Et],this[An]=OD(e)}get(e){let t=this[AI](e);return t||(t=this[en](e),this[zs](e,t)),t}dispatch(e,t){return this.get(e.origin),this[ug].dispatch(e,t)}async close(){await this[ug].close(),this[Et].clear()}deactivate(){this[$s]=!1}activate(){this[$s]=!0}enableNetConnect(e){if(typeof e=="string"||typeof e=="function"||e instanceof RegExp)Array.isArray(this[at])?this[at].push(e):this[at]=[e];else if(typeof e>"u")this[at]=!0;else throw new eI("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[at]=!1}get isMockActive(){return this[$s]}[zs](e,t){this[Et].set(e,new dg(t))}[en](e){let t=Object.assign({agent:this},this[An]);return this[An]&&this[An].connections===1?new xD(e,t):new qD(e,t)}[AI](e){let t=this[Et].get(e);if(t)return t.deref();if(typeof e!="string"){let r=this[en]("http://localhost:9999");return this[zs](e,r),r}for(let[r,s]of Array.from(this[Et])){let n=s.deref();if(n&&typeof r!="string"&&WD(r,e)){let i=this[en](e);return this[zs](e,i),i[fg]=n[fg],i}}}[VD](){return this[at]}pendingInterceptors(){let e=this[Et];return Array.from(e.entries()).flatMap(([t,r])=>r.deref()[fg].map(s=>({...s,origin:t}))).filter(({pending:t})=>t)}assertNoPendingInterceptors({pendingInterceptorsFormatter:e=new XD}={}){let t=this.pendingInterceptors();if(t.length===0)return;let r=new ZD("interceptor","interceptors").pluralize(t.length);throw new PD(` -${r.count} ${r.noun} ${r.is} pending: - -${e.format(t)} -`.trim())}};tI.exports=yg});var QI=c((gS,gI)=>{"use strict";var{kProxy:KD,kClose:jD,kDestroy:zD,kInterceptors:$D}=$(),{URL:sI}=require("url"),nI=Jr(),Ap=vt(),ep=pr(),{InvalidArgumentError:Hr,RequestAbortedError:tp}=Z(),iI=Rr(),vr=Symbol("proxy agent"),tn=Symbol("proxy client"),rn=Symbol("proxy headers"),wg=Symbol("request tls settings"),rp=Symbol("proxy tls settings"),oI=Symbol("connect endpoint function");function sp(A){return A==="https:"?443:80}function np(A){if(typeof A=="string"&&(A={uri:A}),!A||!A.uri)throw new Hr("Proxy opts.uri is mandatory");return{uri:A.uri,protocol:A.protocol||"https"}}function ip(A,e){return new Ap(A,e)}var Dg=class extends ep{constructor(e){if(super(e),this[KD]=np(e),this[vr]=new nI(e),this[$D]=e.interceptors&&e.interceptors.ProxyAgent&&Array.isArray(e.interceptors.ProxyAgent)?e.interceptors.ProxyAgent:[],typeof e=="string"&&(e={uri:e}),!e||!e.uri)throw new Hr("Proxy opts.uri is mandatory");let{clientFactory:t=ip}=e;if(typeof t!="function")throw new Hr("Proxy opts.clientFactory must be a function.");if(this[wg]=e.requestTls,this[rp]=e.proxyTls,this[rn]=e.headers||{},e.auth&&e.token)throw new Hr("opts.auth cannot be used in combination with opts.token");e.auth?this[rn]["proxy-authorization"]=`Basic ${e.auth}`:e.token&&(this[rn]["proxy-authorization"]=e.token);let r=new sI(e.uri),{origin:s,port:n,host:i}=r,o=iI({...e.proxyTls});this[oI]=iI({...e.requestTls}),this[tn]=t(r,{connect:o}),this[vr]=new nI({...e,connect:async(g,a)=>{let Q=g.host;g.port||(Q+=`:${sp(g.protocol)}`);try{let{socket:E,statusCode:C}=await this[tn].connect({origin:s,port:n,path:Q,signal:g.signal,headers:{...this[rn],host:i}});if(C!==200&&(E.on("error",()=>{}).destroy(),a(new tp("Proxy response !== 200 when HTTP Tunneling"))),g.protocol!=="https:"){a(null,E);return}let B;this[wg]?B=this[wg].servername:B=g.servername,this[oI]({...g,servername:B,httpSocket:E},a)}catch(E){a(E)}}})}dispatch(e,t){let{host:r}=new sI(e.origin),s=op(e.headers);return gp(s),this[vr].dispatch({...e,headers:{...s,host:r}},t)}async[jD](){await this[vr].close(),await this[tn].close()}async[zD](){await this[vr].destroy(),await this[tn].destroy()}};function op(A){if(Array.isArray(A)){let e={};for(let t=0;t<A.length;t+=2)e[A[t]]=A[t+1];return e}return A}function gp(A){if(A&&Object.keys(A).find(t=>t.toLowerCase()==="proxy-authorization"))throw new Hr("Proxy-Authorization should be sent in ProxyAgent constructor")}gI.exports=Dg});var Xt=c((QS,BI)=>{"use strict";var EI=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:Qp}=Z(),Ep=Jr();CI()===void 0&&aI(new Ep);function aI(A){if(!A||typeof A.dispatch!="function")throw new Qp("Argument agent must implement Agent");Object.defineProperty(globalThis,EI,{value:A,writable:!0,enumerable:!1,configurable:!1})}function CI(){return globalThis[EI]}BI.exports={setGlobalDispatcher:aI,getGlobalDispatcher:CI}});var cI=c((aS,II)=>{"use strict";II.exports=class{constructor(e){this.handler=e}onConnect(...e){return this.handler.onConnect(...e)}onError(...e){return this.handler.onError(...e)}onUpgrade(...e){return this.handler.onUpgrade(...e)}onHeaders(...e){return this.handler.onHeaders(...e)}onData(...e){return this.handler.onData(...e)}onComplete(...e){return this.handler.onComplete(...e)}onBodySent(...e){return this.handler.onBodySent(...e)}}});var Bt=c((CS,fI)=>{"use strict";var{kHeadersList:SA}=$(),{kGuard:Ct}=Fe(),{kEnumerableProperty:we}=G(),{makeIterator:pg,isValidHeaderName:Vr,isValidHeaderValue:hI}=jA(),{webidl:Y}=DA(),ap=require("assert"),UA=Symbol("headers map"),LA=Symbol("headers map sorted");function lI(A){let e=A.length;for(;/[\r\n\t ]/.test(A.charAt(--e)););return A.slice(0,e+1).replace(/^[\r\n\t ]+/,"")}function uI(A,e){if(Array.isArray(e))for(let t of e){if(t.length!==2)throw Y.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${t.length}.`});A.append(t[0],t[1])}else if(typeof e=="object"&&e!==null)for(let[t,r]of Object.entries(e))A.append(t,r);else throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}var sn=class A{cookies=null;constructor(e){e instanceof A?(this[UA]=new Map(e[UA]),this[LA]=e[LA],this.cookies=e.cookies):(this[UA]=new Map(e),this[LA]=null)}contains(e){return e=e.toLowerCase(),this[UA].has(e)}clear(){this[UA].clear(),this[LA]=null,this.cookies=null}append(e,t){this[LA]=null;let r=e.toLowerCase(),s=this[UA].get(r);if(s){let n=r==="cookie"?"; ":", ";this[UA].set(r,{name:s.name,value:`${s.value}${n}${t}`})}else this[UA].set(r,{name:e,value:t});r==="set-cookie"&&(this.cookies??=[],this.cookies.push(t))}set(e,t){this[LA]=null;let r=e.toLowerCase();return r==="set-cookie"&&(this.cookies=[t]),this[UA].set(r,{name:e,value:t})}delete(e){return this[LA]=null,e=e.toLowerCase(),e==="set-cookie"&&(this.cookies=null),this[UA].delete(e)}get(e){return this.contains(e)?this[UA].get(e.toLowerCase())?.value??null:null}*[Symbol.iterator](){for(let[e,{value:t}]of this[UA])yield[e,t]}get entries(){let e={};if(this[UA].size)for(let{name:t,value:r}of this[UA].values())e[t]=r;return e}},Kt=class A{constructor(e=void 0){this[SA]=new sn,this[Ct]="none",e!==void 0&&(e=Y.converters.HeadersInit(e),uI(this,e))}append(e,t){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,2,{header:"Headers.append"}),e=Y.converters.ByteString(e),t=Y.converters.ByteString(t),t=lI(t),Vr(e)){if(!hI(t))throw Y.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.append",value:e,type:"header name"});if(this[Ct]==="immutable")throw new TypeError("immutable");return this[Ct],this[SA].append(e,t)}delete(e){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,1,{header:"Headers.delete"}),e=Y.converters.ByteString(e),!Vr(e))throw Y.errors.invalidArgument({prefix:"Headers.delete",value:e,type:"header name"});if(this[Ct]==="immutable")throw new TypeError("immutable");if(this[Ct],!!this[SA].contains(e))return this[SA].delete(e)}get(e){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,1,{header:"Headers.get"}),e=Y.converters.ByteString(e),!Vr(e))throw Y.errors.invalidArgument({prefix:"Headers.get",value:e,type:"header name"});return this[SA].get(e)}has(e){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,1,{header:"Headers.has"}),e=Y.converters.ByteString(e),!Vr(e))throw Y.errors.invalidArgument({prefix:"Headers.has",value:e,type:"header name"});return this[SA].contains(e)}set(e,t){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,2,{header:"Headers.set"}),e=Y.converters.ByteString(e),t=Y.converters.ByteString(t),t=lI(t),Vr(e)){if(!hI(t))throw Y.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.set",value:e,type:"header name"});if(this[Ct]==="immutable")throw new TypeError("immutable");return this[Ct],this[SA].set(e,t)}getSetCookie(){Y.brandCheck(this,A);let e=this[SA].cookies;return e?[...e]:[]}get[LA](){if(this[SA][LA])return this[SA][LA];let e=[],t=[...this[SA]].sort((s,n)=>s[0]<n[0]?-1:1),r=this[SA].cookies;for(let[s,n]of t)if(s==="set-cookie")for(let i of r)e.push([s,i]);else ap(n!==null),e.push([s,n]);return this[SA][LA]=e,e}keys(){return Y.brandCheck(this,A),pg(()=>[...this[LA].values()],"Headers","key")}values(){return Y.brandCheck(this,A),pg(()=>[...this[LA].values()],"Headers","value")}entries(){return Y.brandCheck(this,A),pg(()=>[...this[LA].values()],"Headers","key+value")}forEach(e,t=globalThis){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,1,{header:"Headers.forEach"}),typeof e!="function")throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.");for(let[r,s]of this)e.apply(t,[s,r,this])}[Symbol.for("nodejs.util.inspect.custom")](){return Y.brandCheck(this,A),this[SA]}};Kt.prototype[Symbol.iterator]=Kt.prototype.entries;Object.defineProperties(Kt.prototype,{append:we,delete:we,get:we,has:we,set:we,getSetCookie:we,keys:we,values:we,entries:we,forEach:we,[Symbol.iterator]:{enumerable:!1},[Symbol.toStringTag]:{value:"Headers",configurable:!0}});Y.converters.HeadersInit=function(A){if(Y.util.Type(A)==="Object")return A[Symbol.iterator]?Y.converters["sequence<sequence<ByteString>>"](A):Y.converters["record<ByteString, ByteString>"](A);throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};fI.exports={fill:uI,Headers:Kt,HeadersList:sn}});var Qn=c((BS,kI)=>{"use strict";var{Headers:Cp,HeadersList:dI,fill:Bp}=Bt(),{extractBody:yI,cloneBody:Ip,mixinBody:cp}=wr(),Fg=G(),{kEnumerableProperty:OA}=Fg,{isValidReasonPhrase:hp,isCancelled:lp,isAborted:up,isBlobLike:fp,serializeJavascriptValueToJSONString:dp,isErrorLike:yp,isomorphicEncode:wp}=jA(),{redirectStatus:Dp,nullBodyStatus:pp,DOMException:Rp}=He(),{kState:z,kHeaders:aA,kGuard:jt,kRealm:WA}=Fe(),{webidl:L}=DA(),{FormData:kp}=ps(),{getGlobalOrigin:Fp}=ur(),{URLSerializer:wI}=ge(),{kHeadersList:Rg}=$(),Ng=require("assert"),{types:kg}=require("util"),pI=globalThis.ReadableStream||require("stream/web").ReadableStream,zt=class A{static error(){let e={settingsObject:{}},t=new A;return t[z]=on(),t[WA]=e,t[aA][Rg]=t[z].headersList,t[aA][jt]="immutable",t[aA][WA]=e,t}static json(e=void 0,t={}){L.argumentLengthCheck(arguments,1,{header:"Response.json"}),t!==null&&(t=L.converters.ResponseInit(t));let r=new TextEncoder("utf-8").encode(dp(e)),s=yI(r),n={settingsObject:{}},i=new A;return i[WA]=n,i[aA][jt]="response",i[aA][WA]=n,DI(i,t,{body:s[0],type:"application/json"}),i}static redirect(e,t=302){let r={settingsObject:{}};L.argumentLengthCheck(arguments,1,{header:"Response.redirect"}),e=L.converters.USVString(e),t=L.converters["unsigned short"](t);let s;try{s=new URL(e,Fp())}catch(o){throw Object.assign(new TypeError("Failed to parse URL from "+e),{cause:o})}if(!Dp.includes(t))throw new RangeError("Invalid status code "+t);let n=new A;n[WA]=r,n[aA][jt]="immutable",n[aA][WA]=r,n[z].status=t;let i=wp(wI(s));return n[z].headersList.append("location",i),n}constructor(e=null,t={}){e!==null&&(e=L.converters.BodyInit(e)),t=L.converters.ResponseInit(t),this[WA]={settingsObject:{}},this[z]=gn({}),this[aA]=new Cp,this[aA][jt]="response",this[aA][Rg]=this[z].headersList,this[aA][WA]=this[WA];let r=null;if(e!=null){let[s,n]=yI(e);r={body:s,type:n}}DI(this,t,r)}get type(){return L.brandCheck(this,A),this[z].type}get url(){L.brandCheck(this,A);let e=this[z].urlList,t=e[e.length-1]??null;return t===null?"":wI(t,!0)}get redirected(){return L.brandCheck(this,A),this[z].urlList.length>1}get status(){return L.brandCheck(this,A),this[z].status}get ok(){return L.brandCheck(this,A),this[z].status>=200&&this[z].status<=299}get statusText(){return L.brandCheck(this,A),this[z].statusText}get headers(){return L.brandCheck(this,A),this[aA]}get body(){return L.brandCheck(this,A),this[z].body?this[z].body.stream:null}get bodyUsed(){return L.brandCheck(this,A),!!this[z].body&&Fg.isDisturbed(this[z].body.stream)}clone(){if(L.brandCheck(this,A),this.bodyUsed||this.body&&this.body.locked)throw L.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let e=mg(this[z]),t=new A;return t[z]=e,t[WA]=this[WA],t[aA][Rg]=e.headersList,t[aA][jt]=this[aA][jt],t[aA][WA]=this[aA][WA],t}};cp(zt);Object.defineProperties(zt.prototype,{type:OA,url:OA,status:OA,ok:OA,redirected:OA,statusText:OA,headers:OA,clone:OA,body:OA,bodyUsed:OA,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(zt,{json:OA,redirect:OA,error:OA});function mg(A){if(A.internalResponse)return RI(mg(A.internalResponse),A.type);let e=gn({...A,body:null});return A.body!=null&&(e.body=Ip(A.body)),e}function gn(A){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...A,headersList:A.headersList?new dI(A.headersList):new dI,urlList:A.urlList?[...A.urlList]:[]}}function on(A){let e=yp(A);return gn({type:"error",status:0,error:e?A:new Error(A&&String(A)),aborted:A&&A.name==="AbortError"})}function nn(A,e){return e={internalResponse:A,...e},new Proxy(A,{get(t,r){return r in e?e[r]:t[r]},set(t,r,s){return Ng(!(r in e)),t[r]=s,!0}})}function RI(A,e){if(e==="basic")return nn(A,{type:"basic",headersList:A.headersList});if(e==="cors")return nn(A,{type:"cors",headersList:A.headersList});if(e==="opaque")return nn(A,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(e==="opaqueredirect")return nn(A,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});Ng(!1)}function Np(A){return Ng(lp(A)),up(A)?on(new Rp("The operation was aborted.","AbortError")):on("Request was cancelled.")}function DI(A,e,t){if(e.status!==null&&(e.status<200||e.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in e&&e.statusText!=null&&!hp(String(e.statusText)))throw new TypeError("Invalid statusText");if("status"in e&&e.status!=null&&(A[z].status=e.status),"statusText"in e&&e.statusText!=null&&(A[z].statusText=e.statusText),"headers"in e&&e.headers!=null&&Bp(A[aA],e.headers),t){if(pp.includes(A.status))throw L.errors.exception({header:"Response constructor",message:"Invalid response status code "+A.status});A[z].body=t.body,t.type!=null&&!A[z].headersList.contains("Content-Type")&&A[z].headersList.append("content-type",t.type)}}L.converters.ReadableStream=L.interfaceConverter(pI);L.converters.FormData=L.interfaceConverter(kp);L.converters.URLSearchParams=L.interfaceConverter(URLSearchParams);L.converters.XMLHttpRequestBodyInit=function(A){return typeof A=="string"?L.converters.USVString(A):fp(A)?L.converters.Blob(A,{strict:!1}):kg.isAnyArrayBuffer(A)||kg.isTypedArray(A)||kg.isDataView(A)?L.converters.BufferSource(A):Fg.isFormDataLike(A)?L.converters.FormData(A,{strict:!1}):A instanceof URLSearchParams?L.converters.URLSearchParams(A):L.converters.DOMString(A)};L.converters.BodyInit=function(A){return A instanceof pI?L.converters.ReadableStream(A):A?.[Symbol.asyncIterator]?A:L.converters.XMLHttpRequestBodyInit(A)};L.converters.ResponseInit=L.dictionaryConverter([{key:"status",converter:L.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:L.converters.ByteString,defaultValue:""},{key:"headers",converter:L.converters.HeadersInit}]);kI.exports={makeNetworkError:on,makeResponse:gn,makeAppropriateNetworkError:Np,filterResponse:RI,Response:zt,cloneResponse:mg}});var Wr=c((IS,LI)=>{"use strict";var{extractBody:mp,mixinBody:bp,cloneBody:Sp}=wr(),{Headers:bg,fill:Up,HeadersList:FI}=Bt(),{FinalizationRegistry:Lp}=Ho()(),qr=G(),{isValidHTTPToken:Mp,sameOrigin:NI,normalizeMethod:Yp,makePolicyContainer:Jp}=jA(),{forbiddenMethods:Gp,corsSafeListedMethods:Tp,referrerPolicy:vp,requestRedirect:Hp,requestMode:Vp,requestCredentials:xp,requestCache:qp,requestDuplex:Wp}=He(),{kEnumerableProperty:oA}=qr,{kHeaders:CA,kSignal:xr,kState:X,kGuard:En,kRealm:PA}=Fe(),{webidl:N}=DA(),{getGlobalOrigin:Op}=ur(),{URLSerializer:Pp}=ge(),{kHeadersList:an}=$(),_p=require("assert"),{getMaxListeners:mI,setMaxListeners:bI,getEventListeners:Zp,defaultMaxListeners:SI}=require("events"),Sg=globalThis.TransformStream,UI=Symbol("init"),Xp=Symbol("abortController"),Kp=new Lp(({signal:A,abort:e})=>{A.removeEventListener("abort",e)}),It=class A{constructor(e,t={}){if(e===UI)return;N.argumentLengthCheck(arguments,1,{header:"Request constructor"}),e=N.converters.RequestInfo(e),t=N.converters.RequestInit(t),this[PA]={settingsObject:{baseUrl:Op(),get origin(){return this.baseUrl?.origin},policyContainer:Jp()}};let r=null,s=null,n=this[PA].settingsObject.baseUrl,i=null;if(typeof e=="string"){let h;try{h=new URL(e,n)}catch(l){throw new TypeError("Failed to parse URL from "+e,{cause:l})}if(h.username||h.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+e);r=Cn({urlList:[h]}),s="cors"}else _p(e instanceof A),r=e[X],i=e[xr];let o=this[PA].settingsObject.origin,g="client";if(r.window?.constructor?.name==="EnvironmentSettingsObject"&&NI(r.window,o)&&(g=r.window),t.window!=null)throw new TypeError(`'window' option '${g}' must be null`);if("window"in t&&(g="no-window"),r=Cn({method:r.method,headersList:r.headersList,unsafeRequest:r.unsafeRequest,client:this[PA].settingsObject,window:g,priority:r.priority,origin:r.origin,referrer:r.referrer,referrerPolicy:r.referrerPolicy,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,integrity:r.integrity,keepalive:r.keepalive,reloadNavigation:r.reloadNavigation,historyNavigation:r.historyNavigation,urlList:[...r.urlList]}),Object.keys(t).length>0&&(r.mode==="navigate"&&(r.mode="same-origin"),r.reloadNavigation=!1,r.historyNavigation=!1,r.origin="client",r.referrer="client",r.referrerPolicy="",r.url=r.urlList[r.urlList.length-1],r.urlList=[r.url]),t.referrer!==void 0){let h=t.referrer;if(h==="")r.referrer="no-referrer";else{let l;try{l=new URL(h,n)}catch(u){throw new TypeError(`Referrer "${h}" is not a valid URL.`,{cause:u})}l.protocol==="about:"&&l.hostname==="client"||o&&!NI(l,this[PA].settingsObject.baseUrl)?r.referrer="client":r.referrer=l}}t.referrerPolicy!==void 0&&(r.referrerPolicy=t.referrerPolicy);let a;if(t.mode!==void 0?a=t.mode:a=s,a==="navigate")throw N.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(a!=null&&(r.mode=a),t.credentials!==void 0&&(r.credentials=t.credentials),t.cache!==void 0&&(r.cache=t.cache),r.cache==="only-if-cached"&&r.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(t.redirect!==void 0&&(r.redirect=t.redirect),t.integrity!==void 0&&t.integrity!=null&&(r.integrity=String(t.integrity)),t.keepalive!==void 0&&(r.keepalive=!!t.keepalive),t.method!==void 0){let h=t.method;if(!Mp(t.method))throw TypeError(`'${t.method}' is not a valid HTTP method.`);if(Gp.indexOf(h.toUpperCase())!==-1)throw TypeError(`'${t.method}' HTTP method is unsupported.`);h=Yp(t.method),r.method=h}t.signal!==void 0&&(i=t.signal),this[X]=r;let Q=new AbortController;if(this[xr]=Q.signal,this[xr][PA]=this[PA],i!=null){if(!i||typeof i.aborted!="boolean"||typeof i.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(i.aborted)Q.abort(i.reason);else{this[Xp]=Q;let h=new WeakRef(Q),l=function(){let u=h.deref();u!==void 0&&u.abort(this.reason)};try{(typeof mI=="function"&&mI(i)===SI||Zp(i,"abort").length>=SI)&&bI(100,i)}catch{}qr.addAbortListener(i,l),Kp.register(Q,{signal:i,abort:l})}}if(this[CA]=new bg,this[CA][an]=r.headersList,this[CA][En]="request",this[CA][PA]=this[PA],a==="no-cors"){if(!Tp.includes(r.method))throw new TypeError(`'${r.method} is unsupported in no-cors mode.`);this[CA][En]="request-no-cors"}if(Object.keys(t).length!==0){let h=new bg(this[CA]);if(t.headers!==void 0&&(h=t.headers),this[CA][an].clear(),h.constructor.name==="Headers")for(let[l,u]of h)this[CA].append(l,u);else Up(this[CA],h)}let E=e instanceof A?e[X].body:null;if((t.body!=null||E!=null)&&(r.method==="GET"||r.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let C=null;if(t.body!=null){let[h,l]=mp(t.body,r.keepalive);C=h,l&&!this[CA][an].contains("content-type")&&this[CA].append("content-type",l)}let B=C??E;if(B!=null&&B.source==null){if(C!=null&&t.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(r.mode!=="same-origin"&&r.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');r.useCORSPreflightFlag=!0}let I=B;if(C==null&&E!=null){if(qr.isDisturbed(E.stream)||E.stream.locked)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");Sg||(Sg=require("stream/web").TransformStream);let h=new Sg;E.stream.pipeThrough(h),I={source:E.source,length:E.length,stream:h.readable}}this[X].body=I}get method(){return N.brandCheck(this,A),this[X].method}get url(){return N.brandCheck(this,A),Pp(this[X].url)}get headers(){return N.brandCheck(this,A),this[CA]}get destination(){return N.brandCheck(this,A),this[X].destination}get referrer(){return N.brandCheck(this,A),this[X].referrer==="no-referrer"?"":this[X].referrer==="client"?"about:client":this[X].referrer.toString()}get referrerPolicy(){return N.brandCheck(this,A),this[X].referrerPolicy}get mode(){return N.brandCheck(this,A),this[X].mode}get credentials(){return this[X].credentials}get cache(){return N.brandCheck(this,A),this[X].cache}get redirect(){return N.brandCheck(this,A),this[X].redirect}get integrity(){return N.brandCheck(this,A),this[X].integrity}get keepalive(){return N.brandCheck(this,A),this[X].keepalive}get isReloadNavigation(){return N.brandCheck(this,A),this[X].reloadNavigation}get isHistoryNavigation(){return N.brandCheck(this,A),this[X].historyNavigation}get signal(){return N.brandCheck(this,A),this[xr]}get body(){return N.brandCheck(this,A),this[X].body?this[X].body.stream:null}get bodyUsed(){return N.brandCheck(this,A),!!this[X].body&&qr.isDisturbed(this[X].body.stream)}get duplex(){return N.brandCheck(this,A),"half"}clone(){if(N.brandCheck(this,A),this.bodyUsed||this.body?.locked)throw new TypeError("unusable");let e=jp(this[X]),t=new A(UI);t[X]=e,t[PA]=this[PA],t[CA]=new bg,t[CA][an]=e.headersList,t[CA][En]=this[CA][En],t[CA][PA]=this[CA][PA];let r=new AbortController;return this.signal.aborted?r.abort(this.signal.reason):qr.addAbortListener(this.signal,()=>{r.abort(this.signal.reason)}),t[xr]=r.signal,t}};bp(It);function Cn(A){let e={method:"GET",localURLsOnly:!1,unsafeRequest:!1,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:!1,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:!1,credentials:"same-origin",useCredentials:!1,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:!1,historyNavigation:!1,userActivation:!1,taintedOrigin:!1,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:!1,done:!1,timingAllowFailed:!1,...A,headersList:A.headersList?new FI(A.headersList):new FI};return e.url=e.urlList[0],e}function jp(A){let e=Cn({...A,body:null});return A.body!=null&&(e.body=Sp(A.body)),e}Object.defineProperties(It.prototype,{method:oA,url:oA,headers:oA,redirect:oA,clone:oA,signal:oA,duplex:oA,destination:oA,body:oA,bodyUsed:oA,isHistoryNavigation:oA,isReloadNavigation:oA,keepalive:oA,integrity:oA,cache:oA,credentials:oA,attribute:oA,referrerPolicy:oA,referrer:oA,mode:oA,[Symbol.toStringTag]:{value:"Request",configurable:!0}});N.converters.Request=N.interfaceConverter(It);N.converters.RequestInfo=function(A){return typeof A=="string"?N.converters.USVString(A):A instanceof It?N.converters.Request(A):N.converters.USVString(A)};N.converters.AbortSignal=N.interfaceConverter(AbortSignal);N.converters.RequestInit=N.dictionaryConverter([{key:"method",converter:N.converters.ByteString},{key:"headers",converter:N.converters.HeadersInit},{key:"body",converter:N.nullableConverter(N.converters.BodyInit)},{key:"referrer",converter:N.converters.USVString},{key:"referrerPolicy",converter:N.converters.DOMString,allowedValues:vp},{key:"mode",converter:N.converters.DOMString,allowedValues:Vp},{key:"credentials",converter:N.converters.DOMString,allowedValues:xp},{key:"cache",converter:N.converters.DOMString,allowedValues:qp},{key:"redirect",converter:N.converters.DOMString,allowedValues:Hp},{key:"integrity",converter:N.converters.DOMString},{key:"keepalive",converter:N.converters.boolean},{key:"signal",converter:N.nullableConverter(A=>N.converters.AbortSignal(A,{strict:!1}))},{key:"window",converter:N.converters.any},{key:"duplex",converter:N.converters.DOMString,allowedValues:Wp}]);LI.exports={Request:It,makeRequest:Cn}});var fn=c((cS,_I)=>{"use strict";var{Response:zp,makeNetworkError:P,makeAppropriateNetworkError:Bn,filterResponse:Ug,makeResponse:In}=Qn(),{Headers:MI}=Bt(),{Request:$p,makeRequest:AR}=Wr(),Or=require("zlib"),{bytesMatch:eR,makePolicyContainer:tR,clonePolicyContainer:rR,requestBadPort:sR,TAOCheck:nR,appendRequestOriginHeader:iR,responseLocationURL:oR,requestCurrentURL:De,setRequestReferrerPolicyOnRedirect:gR,tryUpgradeRequestToAPotentiallyTrustworthyURL:QR,createOpaqueTimingInfo:xg,appendFetchMetadata:ER,corsCheck:aR,crossOriginResourcePolicyCheck:CR,determineRequestsReferrer:BR,coarsenedSharedCurrentTime:qg,createDeferredPromise:IR,isBlobLike:cR,sameOrigin:Tg,isCancelled:$t,isAborted:YI,isErrorLike:hR,fullyReadBody:vI,readableStreamClose:lR,isomorphicEncode:vg,urlIsLocal:uR,urlIsHttpHttpsScheme:Wg,urlHasHttpsScheme:fR}=jA(),{kState:Hg,kHeaders:Lg,kGuard:dR,kRealm:JI}=Fe(),Ar=require("assert"),{safelyExtractBody:cn}=wr(),{redirectStatus:HI,nullBodyStatus:VI,safeMethods:yR,requestBodyHeader:wR,subresource:DR,DOMException:hn}=He(),{kHeadersList:Vg}=$(),pR=require("events"),{Readable:RR,pipeline:kR}=require("stream"),{addAbortListener:FR,isErrored:NR,isReadable:ln,nodeMajor:GI,nodeMinor:mR}=G(),{dataURLProcessor:bR,serializeAMimeType:SR}=ge(),{TransformStream:UR}=require("stream/web"),{getGlobalDispatcher:LR}=Xt(),{webidl:MR}=DA(),{STATUS_CODES:YR}=require("http"),Mg,Yg=globalThis.ReadableStream,un=class extends pR{constructor(e){super(),this.dispatcher=e,this.connection=null,this.dump=!1,this.state="ongoing",this.setMaxListeners(21)}terminate(e){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(e),this.emit("terminated",e))}abort(e){this.state==="ongoing"&&(this.state="aborted",e||(e=new hn("The operation was aborted.","AbortError")),this.serializedAbortReason=e,this.connection?.destroy(e),this.emit("terminated",e))}};async function JR(A,e={}){MR.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});let t=IR(),r;try{r=new $p(A,e)}catch(C){return t.reject(C),t.promise}let s=r[Hg];if(r.signal.aborted)return Jg(t,s,null,r.signal.reason),t.promise;s.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(s.serviceWorkers="none");let i=null,o=null,g=!1,a=null;return FR(r.signal,()=>{g=!0,Ar(a!=null),a.abort(r.signal.reason),Jg(t,s,i,r.signal.reason)}),a=qI({request:s,processResponseEndOfBody:C=>xI(C,"fetch"),processResponse:C=>{if(!g){if(C.aborted){Jg(t,s,i,a.serializedAbortReason);return}if(C.type==="error"){t.reject(Object.assign(new TypeError("fetch failed"),{cause:C.error}));return}i=new zp,i[Hg]=C,i[JI]=o,i[Lg][Vg]=C.headersList,i[Lg][dR]="immutable",i[Lg][JI]=o,t.resolve(i)}},dispatcher:e.dispatcher??LR()}),t.promise}function xI(A,e="other"){if(A.type==="error"&&A.aborted||!A.urlList?.length)return;let t=A.urlList[0],r=A.timingInfo,s=A.cacheState;Wg(t)&&r!==null&&(r.timingAllowPassed||(r=xg({startTime:r.startTime}),s=""),r.endTime=qg(),A.timingInfo=r,GR(r,t,e,globalThis,s))}function GR(A,e,t,r,s){(GI>18||GI===18&&mR>=2)&&performance.markResourceTiming(A,e.href,t,r,s)}function Jg(A,e,t,r){if(r||(r=new hn("The operation was aborted.","AbortError")),A.reject(r),e.body!=null&&ln(e.body?.stream)&&e.body.stream.cancel(r).catch(n=>{if(n.code!=="ERR_INVALID_STATE")throw n}),t==null)return;let s=t[Hg];s.body!=null&&ln(s.body?.stream)&&s.body.stream.cancel(r).catch(n=>{if(n.code!=="ERR_INVALID_STATE")throw n})}function qI({request:A,processRequestBodyChunkLength:e,processRequestEndOfBody:t,processResponse:r,processResponseEndOfBody:s,processResponseConsumeBody:n,useParallelQueue:i=!1,dispatcher:o}){let g=null,a=!1;A.client!=null&&(g=A.client.globalObject,a=A.client.crossOriginIsolatedCapability);let Q=qg(a),E=xg({startTime:Q}),C={controller:new un(o),request:A,timingInfo:E,processRequestBodyChunkLength:e,processRequestEndOfBody:t,processResponse:r,processResponseConsumeBody:n,processResponseEndOfBody:s,taskDestination:g,crossOriginIsolatedCapability:a};return Ar(!A.body||A.body.stream),A.window==="client"&&(A.window=A.client?.globalObject?.constructor?.name==="Window"?A.client:"no-window"),A.origin==="client"&&(A.origin=A.client?.origin),A.policyContainer==="client"&&(A.client!=null?A.policyContainer=rR(A.client.policyContainer):A.policyContainer=tR()),A.headersList.contains("accept")||A.headersList.append("accept","*/*"),A.headersList.contains("accept-language")||A.headersList.append("accept-language","*"),A.priority,DR.includes(A.destination),WI(C).catch(B=>{C.controller.terminate(B)}),C.controller}async function WI(A,e=!1){let t=A.request,r=null;if(t.localURLsOnly&&!uR(De(t))&&(r=P("local URLs only")),QR(t),sR(t)==="blocked"&&(r=P("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=BR(t)),r===null&&(r=await(async()=>{let n=De(t);return Tg(n,t.url)&&t.responseTainting==="basic"||n.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await TI(A)):t.mode==="same-origin"?P('request mode cannot be "same-origin"'):t.mode==="no-cors"?t.redirect!=="follow"?P('redirect mode cannot be "follow" for "no-cors" request'):(t.responseTainting="opaque",await TI(A)):Wg(De(t))?(t.responseTainting="cors",await OI(A)):P("URL scheme must be a HTTP(S) scheme")})()),e)return r;r.status!==0&&!r.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?r=Ug(r,"basic"):t.responseTainting==="cors"?r=Ug(r,"cors"):t.responseTainting==="opaque"?r=Ug(r,"opaque"):Ar(!1));let s=r.status===0?r:r.internalResponse;if(s.urlList.length===0&&s.urlList.push(...t.urlList),t.timingAllowFailed||(r.timingAllowPassed=!0),r.type==="opaque"&&s.status===206&&s.rangeRequested&&!t.headers.contains("range")&&(r=s=P()),r.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||VI.includes(s.status))&&(s.body=null,A.controller.dump=!0),t.integrity){let n=o=>Gg(A,P(o));if(t.responseTainting==="opaque"||r.body==null){n(r.error);return}let i=o=>{if(!eR(o,t.integrity)){n("integrity mismatch");return}r.body=cn(o)[0],Gg(A,r)};await vI(r.body,i,n)}else Gg(A,r)}async function TI(A){if($t(A)&&A.request.redirectCount===0)return Bn(A);let{request:e}=A,{protocol:t}=De(e);switch(t){case"about:":return P("about scheme is not supported");case"blob:":{Mg||(Mg=require("buffer").resolveObjectURL);let r=De(e);if(r.search.length!==0)return P("NetworkError when attempting to fetch resource.");let s=Mg(r.toString());if(e.method!=="GET"||!cR(s))return P("invalid method");let n=cn(s),i=n[0],o=vg(`${i.length}`),g=n[1]??"",a=In({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:o}],["content-type",{name:"Content-Type",value:g}]]});return a.body=i,a}case"data:":{let r=De(e),s=bR(r);if(s==="failure")return P("failed to fetch the data URL");let n=SR(s.mimeType);return In({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:n}]],body:cn(s.body)[0]})}case"file:":return P("not implemented... yet...");case"http:":case"https:":return await OI(A).catch(r=>P(r));default:return P("unknown scheme")}}function TR(A,e){A.request.done=!0,A.processResponseDone!=null&&queueMicrotask(()=>A.processResponseDone(e))}async function Gg(A,e){e.type==="error"&&(e.urlList=[A.request.urlList[0]],e.timingInfo=xg({startTime:A.timingInfo.startTime}));let t=()=>{A.request.done=!0,A.processResponseEndOfBody!=null&&queueMicrotask(()=>A.processResponseEndOfBody(e))};if(A.processResponse!=null&&queueMicrotask(()=>A.processResponse(e)),e.body==null)t();else{let r=(n,i)=>{i.enqueue(n)},s=new UR({start(){},transform:r,flush:t},{size(){return 1}},{size(){return 1}});e.body={stream:e.body.stream.pipeThrough(s)}}if(A.processResponseConsumeBody!=null){let r=n=>A.processResponseConsumeBody(e,n),s=n=>A.processResponseConsumeBody(e,n);e.body==null?queueMicrotask(()=>r(null)):await vI(e.body,r,s)}}async function OI(A){let e=A.request,t=null,r=null,s=A.timingInfo;if(e.serviceWorkers,t===null){if(e.redirect==="follow"&&(e.serviceWorkers="none"),r=t=await PI(A),e.responseTainting==="cors"&&aR(e,t)==="failure")return P("cors failure");nR(e,t)==="failure"&&(e.timingAllowFailed=!0)}return(e.responseTainting==="opaque"||t.type==="opaque")&&CR(e.origin,e.client,e.destination,r)==="blocked"?P("blocked"):(HI.includes(r.status)&&(e.redirect!=="manual"&&A.controller.connection.destroy(),e.redirect==="error"?t=P("unexpected redirect"):e.redirect==="manual"?t=r:e.redirect==="follow"?t=await vR(A,t):Ar(!1)),t.timingInfo=s,t)}async function vR(A,e){let t=A.request,r=e.internalResponse?e.internalResponse:e,s;try{if(s=oR(r,De(t).hash),s==null)return e}catch(i){return P(i)}if(!Wg(s))return P("URL scheme must be a HTTP(S) scheme");if(t.redirectCount===20)return P("redirect count exceeded");if(t.redirectCount+=1,t.mode==="cors"&&(s.username||s.password)&&!Tg(t,s))return P('cross origin not allowed for request mode "cors"');if(t.responseTainting==="cors"&&(s.username||s.password))return P('URL cannot contain credentials for request mode "cors"');if(r.status!==303&&t.body!=null&&t.body.source==null)return P();if([301,302].includes(r.status)&&t.method==="POST"||r.status===303&&!["GET","HEAD"].includes(t.method)){t.method="GET",t.body=null;for(let i of wR)t.headersList.delete(i)}Tg(De(t),s)||t.headersList.delete("authorization"),t.body!=null&&(Ar(t.body.source!=null),t.body=cn(t.body.source)[0]);let n=A.timingInfo;return n.redirectEndTime=n.postRedirectStartTime=qg(A.crossOriginIsolatedCapability),n.redirectStartTime===0&&(n.redirectStartTime=n.startTime),t.urlList.push(s),gR(t,r),WI(A,!0)}async function PI(A,e=!1,t=!1){let r=A.request,s=null,n=null,i=null,o=null,g=!1;r.window==="no-window"&&r.redirect==="error"?(s=A,n=r):(n=AR(r),s={...A},s.request=n);let a=r.credentials==="include"||r.credentials==="same-origin"&&r.responseTainting==="basic",Q=n.body?n.body.length:null,E=null;if(n.body==null&&["POST","PUT"].includes(n.method)&&(E="0"),Q!=null&&(E=vg(`${Q}`)),E!=null&&n.headersList.append("content-length",E),Q!=null&&n.keepalive,n.referrer instanceof URL&&n.headersList.append("referer",vg(n.referrer.href)),iR(n),ER(n),n.headersList.contains("user-agent")||n.headersList.append("user-agent","undici"),n.cache==="default"&&(n.headersList.contains("if-modified-since")||n.headersList.contains("if-none-match")||n.headersList.contains("if-unmodified-since")||n.headersList.contains("if-match")||n.headersList.contains("if-range"))&&(n.cache="no-store"),n.cache==="no-cache"&&!n.preventNoCacheCacheControlHeaderModification&&!n.headersList.contains("cache-control")&&n.headersList.append("cache-control","max-age=0"),(n.cache==="no-store"||n.cache==="reload")&&(n.headersList.contains("pragma")||n.headersList.append("pragma","no-cache"),n.headersList.contains("cache-control")||n.headersList.append("cache-control","no-cache")),n.headersList.contains("range")&&n.headersList.append("accept-encoding","identity"),n.headersList.contains("accept-encoding")||(fR(De(n))?n.headersList.append("accept-encoding","br, gzip, deflate"):n.headersList.append("accept-encoding","gzip, deflate")),o==null&&(n.cache="no-store"),n.mode!=="no-store"&&n.mode,i==null){if(n.mode==="only-if-cached")return P("only if cached");let C=await HR(s,a,t);!yR.includes(n.method)&&C.status>=200&&C.status<=399,g&&C.status,i==null&&(i=C)}if(i.urlList=[...n.urlList],n.headersList.contains("range")&&(i.rangeRequested=!0),i.requestIncludesCredentials=a,i.status===407)return r.window==="no-window"?P():$t(A)?Bn(A):P("proxy authentication required");if(i.status===421&&!t&&(r.body==null||r.body.source!=null)){if($t(A))return Bn(A);A.controller.connection.destroy(),i=await PI(A,e,!0)}return i}async function HR(A,e=!1,t=!1){Ar(!A.controller.connection||A.controller.connection.destroyed),A.controller.connection={abort:null,destroyed:!1,destroy(I){this.destroyed||(this.destroyed=!0,this.abort?.(I??new hn("The operation was aborted.","AbortError")))}};let r=A.request,s=null,n=A.timingInfo;null==null&&(r.cache="no-store");let o=t?"yes":"no";r.mode;let g=null;if(r.body==null&&A.processRequestEndOfBody)queueMicrotask(()=>A.processRequestEndOfBody());else if(r.body!=null){let I=async function*(u){$t(A)||(yield u,A.processRequestBodyChunkLength?.(u.byteLength))},h=()=>{$t(A)||A.processRequestEndOfBody&&A.processRequestEndOfBody()},l=u=>{$t(A)||(u.name==="AbortError"?A.controller.abort():A.controller.terminate(u))};g=async function*(){try{for await(let u of r.body.stream)yield*I(u);h()}catch(u){l(u)}}()}try{let{body:I,status:h,statusText:l,headersList:u,socket:F}=await B({body:g});if(F)s=In({status:h,statusText:l,headersList:u,socket:F});else{let w=I[Symbol.asyncIterator]();A.controller.next=()=>w.next(),s=In({status:h,statusText:l,headersList:u})}}catch(I){return I.name==="AbortError"?(A.controller.connection.destroy(),Bn(A)):P(I)}let a=()=>{A.controller.resume()},Q=I=>{A.controller.abort(I)};Yg||(Yg=require("stream/web").ReadableStream);let E=new Yg({async start(I){A.controller.controller=I},async pull(I){await a(I)},async cancel(I){await Q(I)}},{highWaterMark:0,size(){return 1}});s.body={stream:E},A.controller.on("terminated",C),A.controller.resume=async()=>{for(;;){let I,h;try{let{done:l,value:u}=await A.controller.next();if(YI(A))break;I=l?void 0:u}catch(l){A.controller.ended&&!n.encodedBodySize?I=void 0:(I=l,h=!0)}if(I===void 0){lR(A.controller.controller),TR(A,s);return}if(n.decodedBodySize+=I?.byteLength??0,h){A.controller.terminate(I);return}if(A.controller.controller.enqueue(new Uint8Array(I)),NR(E)){A.controller.terminate();return}if(!A.controller.controller.desiredSize)return}};function C(I){YI(A)?(s.aborted=!0,ln(E)&&A.controller.controller.error(A.controller.serializedAbortReason)):ln(E)&&A.controller.controller.error(new TypeError("terminated",{cause:hR(I)?I:void 0})),A.controller.connection.destroy()}return s;async function B({body:I}){let h=De(r),l=A.controller.dispatcher;return new Promise((u,F)=>l.dispatch({path:h.pathname+h.search,origin:h.origin,method:r.method,body:A.controller.dispatcher.isMockActive?r.body&&r.body.source:I,headers:r.headersList.entries,maxRedirections:0,upgrade:r.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(w){let{connection:k}=A.controller;k.destroyed?w(new hn("The operation was aborted.","AbortError")):(A.controller.on("terminated",w),this.abort=k.abort=w)},onHeaders(w,k,T,O){if(w<200)return;let V=[],K="",uA=new MI;for(let wA=0;wA<k.length;wA+=2){let gA=k[wA+0].toString("latin1"),Be=k[wA+1].toString("latin1");gA.toLowerCase()==="content-encoding"?V=Be.toLowerCase().split(",").map(_=>_.trim()).reverse():gA.toLowerCase()==="location"&&(K=Be),uA.append(gA,Be)}this.body=new RR({read:T});let IA=[],wt=r.redirect==="follow"&&K&&HI.includes(w);if(r.method!=="HEAD"&&r.method!=="CONNECT"&&!VI.includes(w)&&!wt)for(let wA of V)if(wA==="x-gzip"||wA==="gzip")IA.push(Or.createGunzip({flush:Or.constants.Z_SYNC_FLUSH,finishFlush:Or.constants.Z_SYNC_FLUSH}));else if(wA==="deflate")IA.push(Or.createInflate());else if(wA==="br")IA.push(Or.createBrotliDecompress());else{IA.length=0;break}return u({status:w,statusText:O,headersList:uA[Vg],body:IA.length?kR(this.body,...IA,()=>{}):this.body.on("error",()=>{})}),!0},onData(w){if(A.controller.dump)return;let k=w;return n.encodedBodySize+=k.byteLength,this.body.push(k)},onComplete(){this.abort&&A.controller.off("terminated",this.abort),A.controller.ended=!0,this.body.push(null)},onError(w){this.abort&&A.controller.off("terminated",this.abort),this.body?.destroy(w),A.controller.terminate(w),F(w)},onUpgrade(w,k,T){if(w!==101)return;let O=new MI;for(let V=0;V<k.length;V+=2){let K=k[V+0].toString("latin1"),uA=k[V+1].toString("latin1");O.append(K,uA)}return u({status:w,statusText:YR[w],headersList:O[Vg],socket:T}),!0}}))}}_I.exports={fetch:JR,Fetch:un,fetching:qI,finalizeAndReportTiming:xI}});var Og=c((hS,ZI)=>{"use strict";ZI.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var KI=c((lS,XI)=>{"use strict";var{webidl:_A}=DA(),dn=Symbol("ProgressEvent state"),Pg=class A extends Event{constructor(e,t={}){e=_A.converters.DOMString(e),t=_A.converters.ProgressEventInit(t??{}),super(e,t),this[dn]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return _A.brandCheck(this,A),this[dn].lengthComputable}get loaded(){return _A.brandCheck(this,A),this[dn].loaded}get total(){return _A.brandCheck(this,A),this[dn].total}};_A.converters.ProgressEventInit=_A.dictionaryConverter([{key:"lengthComputable",converter:_A.converters.boolean,defaultValue:!1},{key:"loaded",converter:_A.converters["unsigned long long"],defaultValue:0},{key:"total",converter:_A.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:_A.converters.boolean,defaultValue:!1},{key:"cancelable",converter:_A.converters.boolean,defaultValue:!1},{key:"composed",converter:_A.converters.boolean,defaultValue:!1}]);XI.exports={ProgressEvent:Pg}});var zI=c((uS,jI)=>{"use strict";function VR(A){if(!A)return"failure";switch(A.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}jI.exports={getEncoding:VR}});var ic=c((fS,nc)=>{"use strict";var{kState:er,kError:Zg,kResult:$I,kAborted:Pr,kLastProgressEventFired:Xg}=Og(),{ProgressEvent:xR}=KI(),{getEncoding:Ac}=zI(),{DOMException:qR}=He(),{serializeAMimeType:WR,parseMIMEType:ec}=ge(),{types:OR}=require("util"),{StringDecoder:tc}=require("string_decoder"),{btoa:rc}=require("buffer"),PR={enumerable:!0,writable:!1,configurable:!1};function _R(A,e,t,r){if(A[er]==="loading")throw new qR("Invalid state","InvalidStateError");A[er]="loading",A[$I]=null,A[Zg]=null;let n=e.stream().getReader(),i=[],o=n.read(),g=!0;(async()=>{for(;!A[Pr];)try{let{done:a,value:Q}=await o;if(g&&!A[Pr]&&queueMicrotask(()=>{Xe("loadstart",A)}),g=!1,!a&&OR.isUint8Array(Q))i.push(Q),(A[Xg]===void 0||Date.now()-A[Xg]>=50)&&!A[Pr]&&(A[Xg]=Date.now(),queueMicrotask(()=>{Xe("progress",A)})),o=n.read();else if(a){queueMicrotask(()=>{A[er]="done";try{let E=ZR(i,t,e.type,r);if(A[Pr])return;A[$I]=E,Xe("load",A)}catch(E){A[Zg]=E,Xe("error",A)}A[er]!=="loading"&&Xe("loadend",A)});break}}catch(a){if(A[Pr])return;queueMicrotask(()=>{A[er]="done",A[Zg]=a,Xe("error",A),A[er]!=="loading"&&Xe("loadend",A)});break}})()}function Xe(A,e){let t=new xR(A,{bubbles:!1,cancelable:!1});e.dispatchEvent(t)}function ZR(A,e,t,r){switch(e){case"DataURL":{let s="data:",n=ec(t||"application/octet-stream");n!=="failure"&&(s+=WR(n)),s+=";base64,";let i=new tc("latin1");for(let o of A)s+=rc(i.write(o));return s+=rc(i.end()),s}case"Text":{let s="failure";if(r&&(s=Ac(r)),s==="failure"&&t){let n=ec(t);n!=="failure"&&(s=Ac(n.parameters.get("charset")))}return s==="failure"&&(s="UTF-8"),XR(A,s)}case"ArrayBuffer":return sc(A).buffer;case"BinaryString":{let s="",n=new tc("latin1");for(let i of A)s+=n.write(i);return s+=n.end(),s}}}function XR(A,e){let t=sc(A),r=KR(t),s=0;r!==null&&(e=r,s=r==="UTF-8"?3:2);let n=t.slice(s);return new TextDecoder(e).decode(n)}function KR(A){let[e,t,r]=A;return e===239&&t===187&&r===191?"UTF-8":e===254&&t===255?"UTF-16BE":e===255&&t===254?"UTF-16LE":null}function sc(A){let e=A.reduce((r,s)=>r+s.byteLength,0),t=0;return A.reduce((r,s)=>(r.set(s,t),t+=s.byteLength,r),new Uint8Array(e))}nc.exports={staticPropertyDescriptors:PR,readOperation:_R,fireAProgressEvent:Xe}});var Ec=c((dS,Qc)=>{"use strict";var{staticPropertyDescriptors:tr,readOperation:yn,fireAProgressEvent:oc}=ic(),{kState:ct,kError:gc,kResult:wn,kEvents:v,kAborted:jR}=Og(),{webidl:W}=DA(),{kEnumerableProperty:MA}=G(),ae=class A extends EventTarget{constructor(){super(),this[ct]="empty",this[wn]=null,this[gc]=null,this[v]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(e){W.brandCheck(this,A),W.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"}),e=W.converters.Blob(e,{strict:!1}),yn(this,e,"ArrayBuffer")}readAsBinaryString(e){W.brandCheck(this,A),W.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"}),e=W.converters.Blob(e,{strict:!1}),yn(this,e,"BinaryString")}readAsText(e,t=void 0){W.brandCheck(this,A),W.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"}),e=W.converters.Blob(e,{strict:!1}),t!==void 0&&(t=W.converters.DOMString(t)),yn(this,e,"Text",t)}readAsDataURL(e){W.brandCheck(this,A),W.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"}),e=W.converters.Blob(e,{strict:!1}),yn(this,e,"DataURL")}abort(){if(this[ct]==="empty"||this[ct]==="done"){this[wn]=null;return}this[ct]==="loading"&&(this[ct]="done",this[wn]=null),this[jR]=!0,oc("abort",this),this[ct]!=="loading"&&oc("loadend",this)}get readyState(){switch(W.brandCheck(this,A),this[ct]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return W.brandCheck(this,A),this[wn]}get error(){return W.brandCheck(this,A),this[gc]}get onloadend(){return W.brandCheck(this,A),this[v].loadend}set onloadend(e){W.brandCheck(this,A),this[v].loadend&&this.removeEventListener("loadend",this[v].loadend),typeof e=="function"?(this[v].loadend=e,this.addEventListener("loadend",e)):this[v].loadend=null}get onerror(){return W.brandCheck(this,A),this[v].error}set onerror(e){W.brandCheck(this,A),this[v].error&&this.removeEventListener("error",this[v].error),typeof e=="function"?(this[v].error=e,this.addEventListener("error",e)):this[v].error=null}get onloadstart(){return W.brandCheck(this,A),this[v].loadstart}set onloadstart(e){W.brandCheck(this,A),this[v].loadstart&&this.removeEventListener("loadstart",this[v].loadstart),typeof e=="function"?(this[v].loadstart=e,this.addEventListener("loadstart",e)):this[v].loadstart=null}get onprogress(){return W.brandCheck(this,A),this[v].progress}set onprogress(e){W.brandCheck(this,A),this[v].progress&&this.removeEventListener("progress",this[v].progress),typeof e=="function"?(this[v].progress=e,this.addEventListener("progress",e)):this[v].progress=null}get onload(){return W.brandCheck(this,A),this[v].load}set onload(e){W.brandCheck(this,A),this[v].load&&this.removeEventListener("load",this[v].load),typeof e=="function"?(this[v].load=e,this.addEventListener("load",e)):this[v].load=null}get onabort(){return W.brandCheck(this,A),this[v].abort}set onabort(e){W.brandCheck(this,A),this[v].abort&&this.removeEventListener("abort",this[v].abort),typeof e=="function"?(this[v].abort=e,this.addEventListener("abort",e)):this[v].abort=null}};ae.EMPTY=ae.prototype.EMPTY=0;ae.LOADING=ae.prototype.LOADING=1;ae.DONE=ae.prototype.DONE=2;Object.defineProperties(ae.prototype,{EMPTY:tr,LOADING:tr,DONE:tr,readAsArrayBuffer:MA,readAsBinaryString:MA,readAsText:MA,readAsDataURL:MA,abort:MA,readyState:MA,result:MA,error:MA,onloadstart:MA,onprogress:MA,onload:MA,onabort:MA,onerror:MA,onloadend:MA,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(ae,{EMPTY:tr,LOADING:tr,DONE:tr});Qc.exports={FileReader:ae}});var Dn=c((yS,ac)=>{"use strict";ac.exports={kConstruct:Symbol("constructable")}});var Ic=c((wS,Bc)=>{"use strict";var zR=require("assert"),{URLSerializer:Cc}=ge(),{isValidHeaderName:$R}=jA();function Ak(A,e,t=!1){let r=Cc(A,t),s=Cc(e,t);return r===s}function ek(A){zR(A!==null);let e=[];for(let t of A.split(",")){if(t=t.trim(),t.length){if(!$R(t))continue}else continue;e.push(t)}return e}Bc.exports={urlEquals:Ak,fieldValues:ek}});var dc=c((DS,fc)=>{"use strict";var{kConstruct:tk}=Dn(),{urlEquals:rk,fieldValues:Kg}=Ic(),{kEnumerableProperty:ht,isDisturbed:sk}=G(),{kHeadersList:cc}=$(),{webidl:p}=DA(),{Response:lc,cloneResponse:nk}=Qn(),{Request:pe}=Wr(),{kState:FA,kHeaders:pn,kGuard:hc,kRealm:ik}=Fe(),{fetching:ok}=fn(),{urlIsHttpHttpsScheme:Rn,createDeferredPromise:rr,readAllBytes:gk}=jA(),jg=require("assert"),{getGlobalDispatcher:Qk}=Xt(),kn=class A{#A;constructor(){arguments[0]!==tk&&p.illegalConstructor(),this.#A=arguments[1]}async match(e,t={}){p.brandCheck(this,A),p.argumentLengthCheck(arguments,1,{header:"Cache.match"}),e=p.converters.RequestInfo(e),t=p.converters.CacheQueryOptions(t);let r=await this.matchAll(e,t);if(r.length!==0)return r[0]}async matchAll(e=void 0,t={}){p.brandCheck(this,A),e!==void 0&&(e=p.converters.RequestInfo(e)),t=p.converters.CacheQueryOptions(t);let r=null;if(e!==void 0)if(e instanceof pe){if(r=e[FA],r.method!=="GET"&&!t.ignoreMethod)return[]}else typeof e=="string"&&(r=new pe(e)[FA]);let s=[];if(e===void 0)for(let i of this.#A)s.push(i[1]);else{let i=this.#r(r,t);for(let o of i)s.push(o[1])}let n=[];for(let i of s){let o=new lc(i.body?.source??null),g=o[FA].body;o[FA]=i,o[FA].body=g,o[pn][cc]=i.headersList,o[pn][hc]="immutable",n.push(o)}return Object.freeze(n)}async add(e){p.brandCheck(this,A),p.argumentLengthCheck(arguments,1,{header:"Cache.add"}),e=p.converters.RequestInfo(e);let t=[e];return await this.addAll(t)}async addAll(e){p.brandCheck(this,A),p.argumentLengthCheck(arguments,1,{header:"Cache.addAll"}),e=p.converters["sequence<RequestInfo>"](e);let t=[],r=[];for(let E of e){if(typeof E=="string")continue;let C=E[FA];if(!Rn(C.url)||C.method!=="GET")throw p.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}let s=[];for(let E of e){let C=new pe(E)[FA];if(!Rn(C.url))throw p.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."});C.initiator="fetch",C.destination="subresource",r.push(C);let B=rr();s.push(ok({request:C,dispatcher:Qk(),processResponse(I){if(I.type==="error"||I.status===206||I.status<200||I.status>299)B.reject(p.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(I.headersList.contains("vary")){let h=Kg(I.headersList.get("vary"));for(let l of h)if(l==="*"){B.reject(p.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let u of s)u.abort();return}}},processResponseEndOfBody(I){if(I.aborted){B.reject(new DOMException("aborted","AbortError"));return}B.resolve(I)}})),t.push(B.promise)}let i=await Promise.all(t),o=[],g=0;for(let E of i){let C={type:"put",request:r[g],response:E};o.push(C),g++}let a=rr(),Q=null;try{this.#t(o)}catch(E){Q=E}return queueMicrotask(()=>{Q===null?a.resolve(void 0):a.reject(Q)}),a.promise}async put(e,t){p.brandCheck(this,A),p.argumentLengthCheck(arguments,2,{header:"Cache.put"}),e=p.converters.RequestInfo(e),t=p.converters.Response(t);let r=null;if(e instanceof pe?r=e[FA]:r=new pe(e)[FA],!Rn(r.url)||r.method!=="GET")throw p.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"});let s=t[FA];if(s.status===206)throw p.errors.exception({header:"Cache.put",message:"Got 206 status"});if(s.headersList.contains("vary")){let C=Kg(s.headersList.get("vary"));for(let B of C)if(B==="*")throw p.errors.exception({header:"Cache.put",message:"Got * vary field value"})}if(s.body&&(sk(s.body.stream)||s.body.stream.locked))throw p.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"});let n=nk(s),i=rr();if(s.body!=null){let B=s.body.stream.getReader();gk(B,I=>i.resolve(I),I=>i.reject(I))}else i.resolve(void 0);let o=[],g={type:"put",request:r,response:n};o.push(g);let a=await i.promise;n.body!=null&&(n.body.source=a);let Q=rr(),E=null;try{this.#t(o)}catch(C){E=C}return queueMicrotask(()=>{E===null?Q.resolve():Q.reject(E)}),Q.promise}async delete(e,t={}){p.brandCheck(this,A),p.argumentLengthCheck(arguments,1,{header:"Cache.delete"}),e=p.converters.RequestInfo(e),t=p.converters.CacheQueryOptions(t);let r=null;if(e instanceof pe){if(r=e[FA],r.method!=="GET"&&!t.ignoreMethod)return!1}else jg(typeof e=="string"),r=new pe(e)[FA];let s=[],n={type:"delete",request:r,options:t};s.push(n);let i=rr(),o=null,g;try{g=this.#t(s)}catch(a){o=a}return queueMicrotask(()=>{o===null?i.resolve(!!g?.length):i.reject(o)}),i.promise}async keys(e=void 0,t={}){p.brandCheck(this,A),e!==void 0&&(e=p.converters.RequestInfo(e)),t=p.converters.CacheQueryOptions(t);let r=null;if(e!==void 0)if(e instanceof pe){if(r=e[FA],r.method!=="GET"&&!t.ignoreMethod)return[]}else typeof e=="string"&&(r=new pe(e)[FA]);let s=rr(),n=[];if(e===void 0)for(let i of this.#A)n.push(i[0]);else{let i=this.#r(r,t);for(let o of i)n.push(o[0])}return queueMicrotask(()=>{let i=[];for(let o of n){let g=new pe("https://a");g[FA]=o,g[pn][cc]=o.headersList,g[pn][hc]="immutable",g[ik]=o.client,i.push(g)}s.resolve(Object.freeze(i))}),s.promise}#t(e){let t=this.#A,r=[...t],s=[],n=[];try{for(let i of e){if(i.type!=="delete"&&i.type!=="put")throw p.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(i.type==="delete"&&i.response!=null)throw p.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#r(i.request,i.options,s).length)throw new DOMException("???","InvalidStateError");let o;if(i.type==="delete"){if(o=this.#r(i.request,i.options),o.length===0)return[];for(let g of o){let a=t.indexOf(g);jg(a!==-1),t.splice(a,1)}}else if(i.type==="put"){if(i.response==null)throw p.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let g=i.request;if(!Rn(g.url))throw p.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(g.method!=="GET")throw p.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(i.options!=null)throw p.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});o=this.#r(i.request);for(let a of o){let Q=t.indexOf(a);jg(Q!==-1),t.splice(Q,1)}t.push([i.request,i.response]),s.push([i.request,i.response])}n.push([i.request,i.response])}return n}catch(i){throw this.#A.length=0,this.#A=r,i}}#r(e,t,r){let s=[],n=r??this.#A;for(let i of n){let[o,g]=i;this.#e(e,o,g,t)&&s.push(i)}return s}#e(e,t,r=null,s){let n=new URL(e.url),i=new URL(t.url);if(s?.ignoreSearch&&(i.search="",n.search=""),!rk(n,i,!0))return!1;if(r==null||s?.ignoreVary||!r.headersList.contains("vary"))return!0;let o=Kg(r.headersList.get("vary"));for(let g of o){if(g==="*")return!1;let a=t.headersList.get(g),Q=e.headersList.get(g);if(a!==Q)return!1}return!0}};Object.defineProperties(kn.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:ht,matchAll:ht,add:ht,addAll:ht,put:ht,delete:ht,keys:ht});var uc=[{key:"ignoreSearch",converter:p.converters.boolean,defaultValue:!1},{key:"ignoreMethod",converter:p.converters.boolean,defaultValue:!1},{key:"ignoreVary",converter:p.converters.boolean,defaultValue:!1}];p.converters.CacheQueryOptions=p.dictionaryConverter(uc);p.converters.MultiCacheQueryOptions=p.dictionaryConverter([...uc,{key:"cacheName",converter:p.converters.DOMString}]);p.converters.Response=p.interfaceConverter(lc);p.converters["sequence<RequestInfo>"]=p.sequenceConverter(p.converters.RequestInfo);fc.exports={Cache:kn}});var wc=c((pS,yc)=>{"use strict";var{kConstruct:_r}=Dn(),{Cache:Fn}=dc(),{webidl:NA}=DA(),{kEnumerableProperty:Zr}=G(),Nn=class A{#A=new Map;constructor(){arguments[0]!==_r&&NA.illegalConstructor()}async match(e,t={}){if(NA.brandCheck(this,A),NA.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"}),e=NA.converters.RequestInfo(e),t=NA.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#A.has(t.cacheName)){let r=this.#A.get(t.cacheName);return await new Fn(_r,r).match(e,t)}}else for(let r of this.#A.values()){let n=await new Fn(_r,r).match(e,t);if(n!==void 0)return n}}async has(e){return NA.brandCheck(this,A),NA.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"}),e=NA.converters.DOMString(e),this.#A.has(e)}async open(e){if(NA.brandCheck(this,A),NA.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"}),e=NA.converters.DOMString(e),this.#A.has(e)){let r=this.#A.get(e);return new Fn(_r,r)}let t=[];return this.#A.set(e,t),new Fn(_r,t)}async delete(e){return NA.brandCheck(this,A),NA.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"}),e=NA.converters.DOMString(e),this.#A.delete(e)}async keys(){return NA.brandCheck(this,A),[...this.#A.keys()]}};Object.defineProperties(Nn.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:Zr,has:Zr,open:Zr,delete:Zr,keys:Zr});yc.exports={CacheStorage:Nn}});var pc=c((RS,Dc)=>{"use strict";Dc.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var zg=c((kS,Fc)=>{"use strict";var Rc=require("assert"),{kHeadersList:kc}=$();function Ek(A){if(A.length===0)return!1;for(let e of A){let t=e.charCodeAt(0);if(t>=0||t<=8||t>=10||t<=31||t===127)return!1}}function ak(A){for(let e of A){let t=e.charCodeAt(0);if(t<=32||t>127||e==="("||e===")"||e===">"||e==="<"||e==="@"||e===","||e===";"||e===":"||e==="\\"||e==='"'||e==="/"||e==="["||e==="]"||e==="?"||e==="="||e==="{"||e==="}")throw new Error("Invalid cookie name")}}function Ck(A){for(let e of A){let t=e.charCodeAt(0);if(t<33||t===34||t===44||t===59||t===92||t>126)throw new Error("Invalid header value")}}function Bk(A){for(let e of A)if(e.charCodeAt(0)<33||e===";")throw new Error("Invalid cookie path")}function Ik(A){if(A.startsWith("-")||A.endsWith(".")||A.endsWith("-"))throw new Error("Invalid cookie domain")}function ck(A){typeof A=="number"&&(A=new Date(A));let e=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],r=e[A.getUTCDay()],s=A.getUTCDate().toString().padStart(2,"0"),n=t[A.getUTCMonth()],i=A.getUTCFullYear(),o=A.getUTCHours().toString().padStart(2,"0"),g=A.getUTCMinutes().toString().padStart(2,"0"),a=A.getUTCSeconds().toString().padStart(2,"0");return`${r}, ${s} ${n} ${i} ${o}:${g}:${a} GMT`}function hk(A){if(A<0)throw new Error("Invalid cookie max-age")}function lk(A){if(A.name.length===0)return null;ak(A.name),Ck(A.value);let e=[`${A.name}=${A.value}`];A.name.startsWith("__Secure-")&&(A.secure=!0),A.name.startsWith("__Host-")&&(A.secure=!0,A.domain=null,A.path="/"),A.secure&&e.push("Secure"),A.httpOnly&&e.push("HttpOnly"),typeof A.maxAge=="number"&&(hk(A.maxAge),e.push(`Max-Age=${A.maxAge}`)),A.domain&&(Ik(A.domain),e.push(`Domain=${A.domain}`)),A.path&&(Bk(A.path),e.push(`Path=${A.path}`)),A.expires&&A.expires.toString()!=="Invalid Date"&&e.push(`Expires=${ck(A.expires)}`),A.sameSite&&e.push(`SameSite=${A.sameSite}`);for(let t of A.unparsed){if(!t.includes("="))throw new Error("Invalid unparsed");let[r,...s]=t.split("=");e.push(`${r.trim()}=${s.join("=")}`)}return e.join("; ")}var mn;function uk(A){if(A[kc])return A[kc];mn||(mn=Object.getOwnPropertySymbols(A).find(t=>t.description==="headers list"),Rc(mn,"Headers cannot be parsed"));let e=A[mn];return Rc(e),e}Fc.exports={isCTLExcludingHtab:Ek,stringify:lk,getHeadersList:uk}});var mc=c((FS,Nc)=>{"use strict";var{maxNameValuePairSize:fk,maxAttributeValueSize:dk}=pc(),{isCTLExcludingHtab:yk}=zg(),{collectASequenceOfCodePointsFast:bn}=ge(),wk=require("assert");function Dk(A){if(yk(A))return null;let e="",t="",r="",s="";if(A.includes(";")){let n={position:0};e=bn(";",A,n),t=A.slice(n.position)}else e=A;if(!e.includes("="))s=e;else{let n={position:0};r=bn("=",e,n),s=e.slice(n.position+1)}return r=r.trim(),s=s.trim(),r.length+s.length>fk?null:{name:r,value:s,...sr(t)}}function sr(A,e={}){if(A.length===0)return e;wk(A[0]===";"),A=A.slice(1);let t="";A.includes(";")?(t=bn(";",A,{position:0}),A=A.slice(t.length)):(t=A,A="");let r="",s="";if(t.includes("=")){let i={position:0};r=bn("=",t,i),s=t.slice(i.position+1)}else r=t;if(r=r.trim(),s=s.trim(),s.length>dk)return sr(A,e);let n=r.toLowerCase();if(n==="expires"){let i=new Date(s);e.expires=i}else if(n==="max-age"){let i=s.charCodeAt(0);if((i<48||i>57)&&s[0]!=="-"||!/^\d+$/.test(s))return sr(A,e);let o=Number(s);e.maxAge=o}else if(n==="domain"){let i=s;i[0]==="."&&(i=i.slice(1)),i=i.toLowerCase(),e.domain=i}else if(n==="path"){let i="";s.length===0||s[0]!=="/"?i="/":i=s,e.path=i}else if(n==="secure")e.secure=!0;else if(n==="httponly")e.httpOnly=!0;else if(n==="samesite"){let i="Default",o=s.toLowerCase();o.includes("none")&&(i="None"),o.includes("strict")&&(i="Strict"),o.includes("lax")&&(i="Lax"),e.sameSite=i}else e.unparsed??=[],e.unparsed.push(`${r}=${s}`);return sr(A,e)}Nc.exports={parseSetCookie:Dk,parseUnparsedAttributes:sr}});var Lc=c((NS,Uc)=>{"use strict";var{parseSetCookie:pk}=mc(),{stringify:bc,getHeadersList:Rk}=zg(),{webidl:J}=DA(),{Headers:Sn}=Bt();function kk(A){J.argumentLengthCheck(arguments,1,{header:"getCookies"}),J.brandCheck(A,Sn,{strict:!1});let e=A.get("cookie"),t={};if(!e)return t;for(let r of e.split(";")){let[s,...n]=r.split("=");t[s.trim()]=n.join("=")}return t}function Fk(A,e,t){J.argumentLengthCheck(arguments,2,{header:"deleteCookie"}),J.brandCheck(A,Sn,{strict:!1}),e=J.converters.DOMString(e),t=J.converters.DeleteCookieAttributes(t),Sc(A,{name:e,value:"",expires:new Date(0),...t})}function Nk(A){J.argumentLengthCheck(arguments,1,{header:"getSetCookies"}),J.brandCheck(A,Sn,{strict:!1});let e=Rk(A).cookies;return e?e.map(t=>pk(Array.isArray(t)?t[1]:t)):[]}function Sc(A,e){J.argumentLengthCheck(arguments,2,{header:"setCookie"}),J.brandCheck(A,Sn,{strict:!1}),e=J.converters.Cookie(e),bc(e)&&A.append("Set-Cookie",bc(e))}J.converters.DeleteCookieAttributes=J.dictionaryConverter([{converter:J.nullableConverter(J.converters.DOMString),key:"path",defaultValue:null},{converter:J.nullableConverter(J.converters.DOMString),key:"domain",defaultValue:null}]);J.converters.Cookie=J.dictionaryConverter([{converter:J.converters.DOMString,key:"name"},{converter:J.converters.DOMString,key:"value"},{converter:J.nullableConverter(A=>typeof A=="number"?J.converters["unsigned long long"](A):new Date(A)),key:"expires",defaultValue:null},{converter:J.nullableConverter(J.converters["long long"]),key:"maxAge",defaultValue:null},{converter:J.nullableConverter(J.converters.DOMString),key:"domain",defaultValue:null},{converter:J.nullableConverter(J.converters.DOMString),key:"path",defaultValue:null},{converter:J.nullableConverter(J.converters.boolean),key:"secure",defaultValue:null},{converter:J.nullableConverter(J.converters.boolean),key:"httpOnly",defaultValue:null},{converter:J.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:J.sequenceConverter(J.converters.DOMString),key:"unparsed",defaultValue:[]}]);Uc.exports={getCookies:kk,deleteCookie:Fk,getSetCookies:Nk,setCookie:Sc}});var nr=c((mS,Mc)=>{"use strict";var mk="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",bk={enumerable:!0,writable:!1,configurable:!1},Sk={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},Uk={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},Lk=2**16-1,Mk={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},Yk=Buffer.allocUnsafe(0);Mc.exports={uid:mk,staticPropertyDescriptors:bk,states:Sk,opcodes:Uk,maxUnsigned16Bit:Lk,parserStates:Mk,emptyBuffer:Yk}});var Xr=c((bS,Yc)=>{"use strict";Yc.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var AQ=c((SS,Jc)=>{"use strict";var{webidl:R}=DA(),{kEnumerableProperty:YA}=G(),{MessagePort:Jk}=require("worker_threads"),Un=class A extends Event{#A;constructor(e,t={}){R.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"}),e=R.converters.DOMString(e),t=R.converters.MessageEventInit(t),super(e,t),this.#A=t}get data(){return R.brandCheck(this,A),this.#A.data}get origin(){return R.brandCheck(this,A),this.#A.origin}get lastEventId(){return R.brandCheck(this,A),this.#A.lastEventId}get source(){return R.brandCheck(this,A),this.#A.source}get ports(){return R.brandCheck(this,A),Object.isFrozen(this.#A.ports)||Object.freeze(this.#A.ports),this.#A.ports}initMessageEvent(e,t=!1,r=!1,s=null,n="",i="",o=null,g=[]){return R.brandCheck(this,A),R.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"}),new A(e,{bubbles:t,cancelable:r,data:s,origin:n,lastEventId:i,source:o,ports:g})}},Ln=class A extends Event{#A;constructor(e,t={}){R.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"}),e=R.converters.DOMString(e),t=R.converters.CloseEventInit(t),super(e,t),this.#A=t}get wasClean(){return R.brandCheck(this,A),this.#A.wasClean}get code(){return R.brandCheck(this,A),this.#A.code}get reason(){return R.brandCheck(this,A),this.#A.reason}},Mn=class A extends Event{#A;constructor(e,t){R.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"}),super(e,t),e=R.converters.DOMString(e),t=R.converters.ErrorEventInit(t??{}),this.#A=t}get message(){return R.brandCheck(this,A),this.#A.message}get filename(){return R.brandCheck(this,A),this.#A.filename}get lineno(){return R.brandCheck(this,A),this.#A.lineno}get colno(){return R.brandCheck(this,A),this.#A.colno}get error(){return R.brandCheck(this,A),this.#A.error}};Object.defineProperties(Un.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:YA,origin:YA,lastEventId:YA,source:YA,ports:YA,initMessageEvent:YA});Object.defineProperties(Ln.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:YA,code:YA,wasClean:YA});Object.defineProperties(Mn.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:YA,filename:YA,lineno:YA,colno:YA,error:YA});R.converters.MessagePort=R.interfaceConverter(Jk);R.converters["sequence<MessagePort>"]=R.sequenceConverter(R.converters.MessagePort);var $g=[{key:"bubbles",converter:R.converters.boolean,defaultValue:!1},{key:"cancelable",converter:R.converters.boolean,defaultValue:!1},{key:"composed",converter:R.converters.boolean,defaultValue:!1}];R.converters.MessageEventInit=R.dictionaryConverter([...$g,{key:"data",converter:R.converters.any,defaultValue:null},{key:"origin",converter:R.converters.USVString,defaultValue:""},{key:"lastEventId",converter:R.converters.DOMString,defaultValue:""},{key:"source",converter:R.nullableConverter(R.converters.MessagePort),defaultValue:null},{key:"ports",converter:R.converters["sequence<MessagePort>"],get defaultValue(){return[]}}]);R.converters.CloseEventInit=R.dictionaryConverter([...$g,{key:"wasClean",converter:R.converters.boolean,defaultValue:!1},{key:"code",converter:R.converters["unsigned short"],defaultValue:0},{key:"reason",converter:R.converters.USVString,defaultValue:""}]);R.converters.ErrorEventInit=R.dictionaryConverter([...$g,{key:"message",converter:R.converters.DOMString,defaultValue:""},{key:"filename",converter:R.converters.USVString,defaultValue:""},{key:"lineno",converter:R.converters["unsigned long"],defaultValue:0},{key:"colno",converter:R.converters["unsigned long"],defaultValue:0},{key:"error",converter:R.converters.any}]);Jc.exports={MessageEvent:Un,CloseEvent:Ln,ErrorEvent:Mn}});var Gn=c((US,vc)=>{"use strict";var{kReadyState:Yn,kController:Gk,kResponse:Tk,kBinaryType:vk,kWebSocketURL:Hk}=Xr(),{states:Jn,opcodes:Gc}=nr(),{MessageEvent:Vk,ErrorEvent:xk}=AQ();function qk(A){return A[Yn]===Jn.OPEN}function Wk(A){return A[Yn]===Jn.CLOSING}function Ok(A){return A[Yn]===Jn.CLOSED}function eQ(A,e,t=Event,r){let s=new t(A,r);e.dispatchEvent(s)}function Pk(A,e,t){if(A[Yn]!==Jn.OPEN)return;let r;if(e===Gc.TEXT)try{r=new TextDecoder("utf-8",{fatal:!0}).decode(t)}catch{Tc(A,"Received invalid UTF-8 in text frame.");return}else e===Gc.BINARY&&(A[vk]==="blob"?r=new Blob([t]):r=new Uint8Array(t).buffer);eQ("message",A,Vk,{origin:A[Hk].origin,data:r})}function _k(A){if(A.length===0)return!1;for(let e of A){let t=e.charCodeAt(0);if(t<33||t>126||e==="("||e===")"||e==="<"||e===">"||e==="@"||e===","||e===";"||e===":"||e==="\\"||e==='"'||e==="/"||e==="["||e==="]"||e==="?"||e==="="||e==="{"||e==="}"||t===32||t===9)return!1}return!0}function Zk(A){return A>=1e3&&A<1015?A!==1004&&A!==1005&&A!==1006:A>=3e3&&A<=4999}function Tc(A,e){let{[Gk]:t,[Tk]:r}=A;t.abort(),r?.socket&&!r.socket.destroyed&&r.socket.destroy(),e&&eQ("error",A,xk,{error:new Error(e)})}vc.exports={isEstablished:qk,isClosing:Wk,isClosed:Ok,fireEvent:eQ,isValidSubprotocol:_k,isValidStatusCode:Zk,failWebsocketConnection:Tc,websocketMessageReceived:Pk}});var Oc=c((LS,Wc)=>{"use strict";var{randomBytes:Xk,createHash:Kk}=require("crypto"),tQ=require("diagnostics_channel"),{uid:jk,states:Vc}=nr(),{kReadyState:xc,kSentClose:Hc,kByteParser:qc,kReceivedClose:zk}=Xr(),{fireEvent:$k,failWebsocketConnection:lt}=Gn(),{CloseEvent:AF}=AQ(),{makeRequest:eF}=Wr(),{fetching:tF}=fn(),{Headers:rF}=Bt(),{getGlobalDispatcher:sF}=Xt(),{kHeadersList:nF}=$(),Ye={};Ye.open=tQ.channel("undici:websocket:open");Ye.close=tQ.channel("undici:websocket:close");Ye.socketError=tQ.channel("undici:websocket:socket_error");function iF(A,e,t,r,s){let n=A;n.protocol=A.protocol==="ws:"?"http:":"https:";let i=eF({urlList:[n],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(s.headers){let Q=new rF(s.headers)[nF];i.headersList=Q}let o=Xk(16).toString("base64");i.headersList.append("sec-websocket-key",o),i.headersList.append("sec-websocket-version","13");for(let Q of e)i.headersList.append("sec-websocket-protocol",Q);let g="";return tF({request:i,useParallelQueue:!0,dispatcher:s.dispatcher??sF(),processResponse(Q){if(Q.type==="error"||Q.status!==101){lt(t,"Received network error or non-101 status code.");return}if(e.length!==0&&!Q.headersList.get("Sec-WebSocket-Protocol")){lt(t,"Server did not respond with sent protocols.");return}if(Q.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){lt(t,'Server did not set Upgrade header to "websocket".');return}if(Q.headersList.get("Connection")?.toLowerCase()!=="upgrade"){lt(t,'Server did not set Connection header to "upgrade".');return}let E=Q.headersList.get("Sec-WebSocket-Accept"),C=Kk("sha1").update(o+jk).digest("base64");if(E!==C){lt(t,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let B=Q.headersList.get("Sec-WebSocket-Extensions");if(B!==null&&B!==g){lt(t,"Received different permessage-deflate than the one set.");return}let I=Q.headersList.get("Sec-WebSocket-Protocol");if(I!==null&&I!==i.headersList.get("Sec-WebSocket-Protocol")){lt(t,"Protocol was not set in the opening handshake.");return}Q.socket.on("data",oF),Q.socket.on("close",gF),Q.socket.on("error",QF),Ye.open.hasSubscribers&&Ye.open.publish({address:Q.socket.address(),protocol:I,extensions:B}),r(Q)}})}function oF(A){this.ws[qc].write(A)||this.pause()}function gF(){let{ws:A}=this,e=A[Hc]&&A[zk],t=1005,r="",s=A[qc].closingInfo;s?(t=s.code??1005,r=s.reason):A[Hc]||(t=1006),A[xc]=Vc.CLOSED,$k("close",A,AF,{wasClean:e,code:t,reason:r}),Ye.close.hasSubscribers&&Ye.close.publish({websocket:A,code:t,reason:r})}function QF(A){let{ws:e}=this;e[xc]=Vc.CLOSING,Ye.socketError.hasSubscribers&&Ye.socketError.publish(A),this.destroy()}Wc.exports={establishWebSocketConnection:iF}});var sQ=c((MS,Pc)=>{"use strict";var{randomBytes:EF}=require("crypto"),{maxUnsigned16Bit:aF}=nr(),rQ=class{constructor(e){this.frameData=e,this.maskKey=EF(4)}createFrame(e){let t=this.frameData?.byteLength??0,r=t,s=6;t>aF?(s+=8,r=127):t>125&&(s+=2,r=126);let n=Buffer.allocUnsafe(t+s);n[0]=n[1]=0,n[0]|=128,n[0]=(n[0]&240)+e;n[s-4]=this.maskKey[0],n[s-3]=this.maskKey[1],n[s-2]=this.maskKey[2],n[s-1]=this.maskKey[3],n[1]=r,r===126?n.writeUInt16BE(t,2):r===127&&(n[2]=n[3]=0,n.writeUIntBE(t,4,6)),n[1]|=128;for(let i=0;i<t;i++)n[s+i]=this.frameData[i]^this.maskKey[i%4];return n}};Pc.exports={WebsocketFrameSend:rQ}});var eh=c((YS,Ah)=>{"use strict";var{Writable:CF}=require("stream"),$c=require("diagnostics_channel"),{parserStates:re,opcodes:se,states:BF,emptyBuffer:IF}=nr(),{kReadyState:cF,kSentClose:Zc,kResponse:Xc,kReceivedClose:Kc}=Xr(),{isValidStatusCode:jc,failWebsocketConnection:Kr,websocketMessageReceived:hF}=Gn(),{WebsocketFrameSend:zc}=sQ(),ir={};ir.ping=$c.channel("undici:websocket:ping");ir.pong=$c.channel("undici:websocket:pong");var nQ=class extends CF{#A=[];#t=0;#r=re.INFO;#e={};#s=[];constructor(e){super(),this.ws=e}_write(e,t,r){this.#A.push(e),this.#t+=e.length,this.run(r)}run(e){for(;;){if(this.#r===re.INFO){if(this.#t<2)return e();let t=this.consume(2);if(this.#e.fin=(t[0]&128)!==0,this.#e.opcode=t[0]&15,this.#e.originalOpcode??=this.#e.opcode,this.#e.fragmented=!this.#e.fin&&this.#e.opcode!==se.CONTINUATION,this.#e.fragmented&&this.#e.opcode!==se.BINARY&&this.#e.opcode!==se.TEXT){Kr(this.ws,"Invalid frame type was fragmented.");return}let r=t[1]&127;if(r<=125?(this.#e.payloadLength=r,this.#r=re.READ_DATA):r===126?this.#r=re.PAYLOADLENGTH_16:r===127&&(this.#r=re.PAYLOADLENGTH_64),this.#e.fragmented&&r>125){Kr(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#e.opcode===se.PING||this.#e.opcode===se.PONG||this.#e.opcode===se.CLOSE)&&r>125){Kr(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#e.opcode===se.CLOSE){if(r===1){Kr(this.ws,"Received close frame with a 1-byte body.");return}let s=this.consume(r);if(this.#e.closeInfo=this.parseCloseBody(!1,s),!this.ws[Zc]){let n=Buffer.allocUnsafe(2);n.writeUInt16BE(this.#e.closeInfo.code,0);let i=new zc(n);this.ws[Xc].socket.write(i.createFrame(se.CLOSE),o=>{o||(this.ws[Zc]=!0)})}this.ws[cF]=BF.CLOSING,this.ws[Kc]=!0,this.end();return}else if(this.#e.opcode===se.PING){let s=this.consume(r);if(!this.ws[Kc]){let n=new zc(s);this.ws[Xc].socket.write(n.createFrame(se.PONG)),ir.ping.hasSubscribers&&ir.ping.publish({payload:s})}if(this.#r=re.INFO,this.#t>0)continue;e();return}else if(this.#e.opcode===se.PONG){let s=this.consume(r);if(ir.pong.hasSubscribers&&ir.pong.publish({payload:s}),this.#t>0)continue;e();return}}else if(this.#r===re.PAYLOADLENGTH_16){if(this.#t<2)return e();let t=this.consume(2);this.#e.payloadLength=t.readUInt16BE(0),this.#r=re.READ_DATA}else if(this.#r===re.PAYLOADLENGTH_64){if(this.#t<8)return e();let t=this.consume(8),r=t.readUInt32BE(0);if(r>2**31-1){Kr(this.ws,"Received payload length > 2^31 bytes.");return}let s=t.readUInt32BE(4);this.#e.payloadLength=(r<<8)+s,this.#r=re.READ_DATA}else if(this.#r===re.READ_DATA){if(this.#t<this.#e.payloadLength)return e();if(this.#t>=this.#e.payloadLength){let t=this.consume(this.#e.payloadLength);if(this.#s.push(t),!this.#e.fragmented||this.#e.fin&&this.#e.opcode===se.CONTINUATION){let r=Buffer.concat(this.#s);hF(this.ws,this.#e.originalOpcode,r),this.#e={},this.#s.length=0}this.#r=re.INFO}}if(!(this.#t>0)){e();break}}}consume(e){if(e>this.#t)return null;if(e===0)return IF;if(this.#A[0].length===e)return this.#t-=this.#A[0].length,this.#A.shift();let t=Buffer.allocUnsafe(e),r=0;for(;r!==e;){let s=this.#A[0],{length:n}=s;if(n+r===e){t.set(this.#A.shift(),r);break}else if(n+r>e){t.set(s.subarray(0,e-r),r),this.#A[0]=s.subarray(e-r);break}else t.set(this.#A.shift(),r),r+=s.length}return this.#t-=e,t}parseCloseBody(e,t){let r;if(t.length>=2&&(r=t.readUInt16BE(0)),e)return jc(r)?{code:r}:null;let s=t.subarray(2);if(s[0]===239&&s[1]===187&&s[2]===191&&(s=s.subarray(3)),r!==void 0&&!jc(r))return null;try{s=new TextDecoder("utf-8",{fatal:!0}).decode(s)}catch{return null}return{code:r,reason:s}}get closingInfo(){return this.#e.closeInfo}};Ah.exports={ByteParser:nQ}});var Qh=c((JS,gh)=>{"use strict";var{webidl:m}=DA(),{DOMException:Ke}=He(),{URLSerializer:lF}=ge(),{staticPropertyDescriptors:je,states:or,opcodes:jr,emptyBuffer:uF}=nr(),{kWebSocketURL:th,kReadyState:Je,kController:fF,kBinaryType:Tn,kResponse:vn,kSentClose:dF,kByteParser:yF}=Xr(),{isEstablished:rh,isClosing:sh,isValidSubprotocol:wF,failWebsocketConnection:DF,fireEvent:pF}=Gn(),{establishWebSocketConnection:RF}=Oc(),{WebsocketFrameSend:zr}=sQ(),{ByteParser:kF}=eh(),{kEnumerableProperty:ne,isBlobLike:ih}=G(),{getGlobalDispatcher:FF}=Xt(),{types:oh}=require("util"),nh=!1,ZA=class A extends EventTarget{#A={open:null,error:null,close:null,message:null};#t=0;#r="";#e="";constructor(e,t=[]){super(),m.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"}),nh||(nh=!0,process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"}));let r=m.converters["DOMString or sequence<DOMString> or WebSocketInit"](t);e=m.converters.USVString(e),t=r.protocols;let s;try{s=new URL(e)}catch(n){throw new Ke(n,"SyntaxError")}if(s.protocol!=="ws:"&&s.protocol!=="wss:")throw new Ke(`Expected a ws: or wss: protocol, got ${s.protocol}`,"SyntaxError");if(s.hash)throw new Ke("Got fragment","SyntaxError");if(typeof t=="string"&&(t=[t]),t.length!==new Set(t.map(n=>n.toLowerCase())).size)throw new Ke("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(t.length>0&&!t.every(n=>wF(n)))throw new Ke("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[th]=s,this[fF]=RF(s,t,this,n=>this.#s(n),r),this[Je]=A.CONNECTING,this[Tn]="blob"}close(e=void 0,t=void 0){if(m.brandCheck(this,A),e!==void 0&&(e=m.converters["unsigned short"](e,{clamp:!0})),t!==void 0&&(t=m.converters.USVString(t)),e!==void 0&&e!==1e3&&(e<3e3||e>4999))throw new Ke("invalid code","InvalidAccessError");let r=0;if(t!==void 0&&(r=Buffer.byteLength(t),r>123))throw new Ke(`Reason must be less than 123 bytes; received ${r}`,"SyntaxError");if(!(this[Je]===A.CLOSING||this[Je]===A.CLOSED))if(!rh(this))DF(this,"Connection was closed before it was established."),this[Je]=A.CLOSING;else if(sh(this))this[Je]=A.CLOSING;else{let s=new zr;e!==void 0&&t===void 0?(s.frameData=Buffer.allocUnsafe(2),s.frameData.writeUInt16BE(e,0)):e!==void 0&&t!==void 0?(s.frameData=Buffer.allocUnsafe(2+r),s.frameData.writeUInt16BE(e,0),s.frameData.write(t,2,"utf-8")):s.frameData=uF,this[vn].socket.write(s.createFrame(jr.CLOSE),i=>{i||(this[dF]=!0)}),this[Je]=or.CLOSING}}send(e){if(m.brandCheck(this,A),m.argumentLengthCheck(arguments,1,{header:"WebSocket.send"}),e=m.converters.WebSocketSendData(e),this[Je]===A.CONNECTING)throw new Ke("Sent before connected.","InvalidStateError");if(!rh(this)||sh(this))return;let t=this[vn].socket;if(typeof e=="string"){let r=Buffer.from(e),n=new zr(r).createFrame(jr.TEXT);this.#t+=r.byteLength,t.write(n,()=>{this.#t-=r.byteLength})}else if(oh.isArrayBuffer(e)){let r=Buffer.from(e),n=new zr(r).createFrame(jr.BINARY);this.#t+=r.byteLength,t.write(n,()=>{this.#t-=r.byteLength})}else if(ArrayBuffer.isView(e)){let r=Buffer.from(e,e.byteOffset,e.byteLength),n=new zr(r).createFrame(jr.BINARY);this.#t+=r.byteLength,t.write(n,()=>{this.#t-=r.byteLength})}else if(ih(e)){let r=new zr;e.arrayBuffer().then(s=>{let n=Buffer.from(s);r.frameData=n;let i=r.createFrame(jr.BINARY);this.#t+=n.byteLength,t.write(i,()=>{this.#t-=n.byteLength})})}}get readyState(){return m.brandCheck(this,A),this[Je]}get bufferedAmount(){return m.brandCheck(this,A),this.#t}get url(){return m.brandCheck(this,A),lF(this[th])}get extensions(){return m.brandCheck(this,A),this.#e}get protocol(){return m.brandCheck(this,A),this.#r}get onopen(){return m.brandCheck(this,A),this.#A.open}set onopen(e){m.brandCheck(this,A),this.#A.open&&this.removeEventListener("open",this.#A.open),typeof e=="function"?(this.#A.open=e,this.addEventListener("open",e)):this.#A.open=null}get onerror(){return m.brandCheck(this,A),this.#A.error}set onerror(e){m.brandCheck(this,A),this.#A.error&&this.removeEventListener("error",this.#A.error),typeof e=="function"?(this.#A.error=e,this.addEventListener("error",e)):this.#A.error=null}get onclose(){return m.brandCheck(this,A),this.#A.close}set onclose(e){m.brandCheck(this,A),this.#A.close&&this.removeEventListener("close",this.#A.close),typeof e=="function"?(this.#A.close=e,this.addEventListener("close",e)):this.#A.close=null}get onmessage(){return m.brandCheck(this,A),this.#A.message}set onmessage(e){m.brandCheck(this,A),this.#A.message&&this.removeEventListener("message",this.#A.message),typeof e=="function"?(this.#A.message=e,this.addEventListener("message",e)):this.#A.message=null}get binaryType(){return m.brandCheck(this,A),this[Tn]}set binaryType(e){m.brandCheck(this,A),e!=="blob"&&e!=="arraybuffer"?this[Tn]="blob":this[Tn]=e}#s(e){this[vn]=e;let t=new kF(this);t.on("drain",function(){this.ws[vn].socket.resume()}),e.socket.ws=this,this[yF]=t,this[Je]=or.OPEN;let r=e.headersList.get("sec-websocket-extensions");r!==null&&(this.#e=r);let s=e.headersList.get("sec-websocket-protocol");s!==null&&(this.#r=s),pF("open",this)}};ZA.CONNECTING=ZA.prototype.CONNECTING=or.CONNECTING;ZA.OPEN=ZA.prototype.OPEN=or.OPEN;ZA.CLOSING=ZA.prototype.CLOSING=or.CLOSING;ZA.CLOSED=ZA.prototype.CLOSED=or.CLOSED;Object.defineProperties(ZA.prototype,{CONNECTING:je,OPEN:je,CLOSING:je,CLOSED:je,url:ne,readyState:ne,bufferedAmount:ne,onopen:ne,onerror:ne,onclose:ne,close:ne,onmessage:ne,binaryType:ne,send:ne,extensions:ne,protocol:ne,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(ZA,{CONNECTING:je,OPEN:je,CLOSING:je,CLOSED:je});m.converters["sequence<DOMString>"]=m.sequenceConverter(m.converters.DOMString);m.converters["DOMString or sequence<DOMString>"]=function(A){return m.util.Type(A)==="Object"&&Symbol.iterator in A?m.converters["sequence<DOMString>"](A):m.converters.DOMString(A)};m.converters.WebSocketInit=m.dictionaryConverter([{key:"protocols",converter:m.converters["DOMString or sequence<DOMString>"],get defaultValue(){return[]}},{key:"dispatcher",converter:A=>A,get defaultValue(){return FF()}},{key:"headers",converter:m.nullableConverter(m.converters.HeadersInit)}]);m.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(A){return m.util.Type(A)==="Object"&&!(Symbol.iterator in A)?m.converters.WebSocketInit(A):{protocols:m.converters["DOMString or sequence<DOMString>"](A)}};m.converters.WebSocketSendData=function(A){if(m.util.Type(A)==="Object"){if(ih(A))return m.converters.Blob(A,{strict:!1});if(ArrayBuffer.isView(A)||oh.isAnyArrayBuffer(A))return m.converters.BufferSource(A)}return m.converters.USVString(A)};gh.exports={WebSocket:ZA}});var oQ=c((GS,M)=>{"use strict";var NF=Ur(),Eh=ks(),ah=Z(),mF=vt(),bF=bC(),SF=Jr(),ut=G(),{InvalidArgumentError:Hn}=ah,gr=yB(),UF=Rr(),LF=Ig(),MF=rI(),YF=lg(),JF=tg(),GF=QI(),{getGlobalDispatcher:Ch,setGlobalDispatcher:TF}=Xt(),vF=cI(),HF=Bo(),VF=bs(),iQ;try{require("crypto"),iQ=!0}catch{iQ=!1}Object.assign(Eh.prototype,gr);M.exports.Dispatcher=Eh;M.exports.Client=NF;M.exports.Pool=mF;M.exports.BalancedPool=bF;M.exports.Agent=SF;M.exports.ProxyAgent=GF;M.exports.DecoratorHandler=vF;M.exports.RedirectHandler=HF;M.exports.createRedirectInterceptor=VF;M.exports.buildConnector=UF;M.exports.errors=ah;function $r(A){return(e,t,r)=>{if(typeof t=="function"&&(r=t,t=null),!e||typeof e!="string"&&typeof e!="object"&&!(e instanceof URL))throw new Hn("invalid url");if(t!=null&&typeof t!="object")throw new Hn("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new Hn("invalid opts.path");let i=t.path;t.path.startsWith("/")||(i=`/${i}`),e=new URL(ut.parseOrigin(e).origin+i)}else t||(t=typeof e=="object"?e:{}),e=ut.parseURL(e);let{agent:s,dispatcher:n=Ch()}=t;if(s)throw new Hn("unsupported opts.agent. Did you mean opts.client?");return A.call(n,{...t,origin:e.origin,path:e.search?`${e.pathname}${e.search}`:e.pathname,method:t.method||(t.body?"PUT":"GET")},r)}}M.exports.setGlobalDispatcher=TF;M.exports.getGlobalDispatcher=Ch;if(ut.nodeMajor>16||ut.nodeMajor===16&&ut.nodeMinor>=8){let A=null;M.exports.fetch=async function(i){A||(A=fn().fetch);try{return await A(...arguments)}catch(o){throw Error.captureStackTrace(o,this),o}},M.exports.Headers=Bt().Headers,M.exports.Response=Qn().Response,M.exports.Request=Wr().Request,M.exports.FormData=ps().FormData,M.exports.File=ws().File,M.exports.FileReader=Ec().FileReader;let{setGlobalOrigin:e,getGlobalOrigin:t}=ur();M.exports.setGlobalOrigin=e,M.exports.getGlobalOrigin=t;let{CacheStorage:r}=wc(),{kConstruct:s}=Dn();M.exports.caches=new r(s)}if(ut.nodeMajor>=16){let{deleteCookie:A,getCookies:e,getSetCookies:t,setCookie:r}=Lc();M.exports.deleteCookie=A,M.exports.getCookies=e,M.exports.getSetCookies=t,M.exports.setCookie=r;let{parseMIMEType:s,serializeAMimeType:n}=ge();M.exports.parseMIMEType=s,M.exports.serializeAMimeType=n}if(ut.nodeMajor>=18&&iQ){let{WebSocket:A}=Qh();M.exports.WebSocket=A}M.exports.request=$r(gr.request);M.exports.stream=$r(gr.stream);M.exports.pipeline=$r(gr.pipeline);M.exports.connect=$r(gr.connect);M.exports.upgrade=$r(gr.upgrade);M.exports.MockClient=LF;M.exports.MockPool=YF;M.exports.MockAgent=MF;M.exports.mockErrors=JF});var CQ=c(aQ=>{"use strict";Object.defineProperty(aQ,"__esModule",{value:!0});var WF=function(A,e,t,r){if(typeof A!="string"||A.length===0)throw new TypeError("text should be a string");if(typeof e!="string"||e.length===0)throw new TypeError("lang should be a string");if(typeof t!="boolean")throw new TypeError("slow should be a boolean");if(typeof r!="string"||r.length===0)throw new TypeError("host should be a string")};aQ.default=WF});var IQ=c(BQ=>{"use strict";Object.defineProperty(BQ,"__esModule",{value:!0});var OF="\\s\\uFEFF\\xA0",PF="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",_F=function(A,e){for(var t=e===void 0?{}:e,r=t.maxLength,s=r===void 0?200:r,n=t.splitPunct,i=n===void 0?"":n,o=function(I,h){var l=new RegExp("["+OF+PF+i+"]");return l.test(I.charAt(h))},g=function(I,h,l){for(var u=l;u>=h;u--)if(o(I,u))return u;return-1},a=[],Q=function(I,h,l){a.push(I.slice(h,l+1))},E=0;;){if(A.length-E<=s){Q(A,E,A.length-1);break}var C=E+s-1;if(o(A,C)||o(A,C+1)){Q(A,E,C),E=C+1;continue}if(C=g(A,E,C),C===-1){var B=A.slice(E,E+s);throw new Error("The word is too long to split into a short text:"+(` -`+B+" ...")+` - -Try the option "splitPunct" to split the text by punctuation.`)}Q(A,E,C),E=C+1}return a};BQ.default=_F});var dh=c(Ge=>{"use strict";var cQ=Ge&&Ge.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(Ge,"__esModule",{value:!0});Ge.getAllAudioUrls=Ge.getAudioUrl=void 0;var fh=cQ(CQ()),ZF=cQ(IQ()),XF=cQ(require("url")),KF=function(A,e){var t=e===void 0?{}:e,r=t.lang,s=r===void 0?"en":r,n=t.slow,i=n===void 0?!1:n,o=t.host,g=o===void 0?"https://translate.google.com":o;if(fh.default(A,s,i,g),A.length>200)throw new RangeError("text length ("+A.length+') should be less than 200 characters. Try "getAllAudioUrls(text, [option])" for long text.');return g+"/translate_tts"+XF.default.format({query:{ie:"UTF-8",q:A,tl:s,total:1,idx:0,textlen:A.length,client:"tw-ob",prev:"input",ttsspeed:i?.24:1}})};Ge.getAudioUrl=KF;var jF=function(A,e){var t=e===void 0?{}:e,r=t.lang,s=r===void 0?"en":r,n=t.slow,i=n===void 0?!1:n,o=t.host,g=o===void 0?"https://translate.google.com":o,a=t.splitPunct,Q=a===void 0?"":a;if(fh.default(A,s,i,g),typeof Q!="string")throw new TypeError("splitPunct should be a string");return ZF.default(A,{splitPunct:Q}).map(function(E){return{shortText:E,url:Ge.getAudioUrl(E,{lang:s,slow:i,host:g})}})};Ge.getAllAudioUrls=jF});var hQ=c((PS,yh)=>{"use strict";yh.exports=function(e,t){return function(){for(var s=new Array(arguments.length),n=0;n<s.length;n++)s[n]=arguments[n];return e.apply(t,s)}}});var mA=c((_S,ph)=>{"use strict";var zF=hQ(),ft=Object.prototype.toString;function fQ(A){return ft.call(A)==="[object Array]"}function lQ(A){return typeof A>"u"}function $F(A){return A!==null&&!lQ(A)&&A.constructor!==null&&!lQ(A.constructor)&&typeof A.constructor.isBuffer=="function"&&A.constructor.isBuffer(A)}function AN(A){return ft.call(A)==="[object ArrayBuffer]"}function eN(A){return typeof FormData<"u"&&A instanceof FormData}function tN(A){var e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(A):e=A&&A.buffer&&A.buffer instanceof ArrayBuffer,e}function rN(A){return typeof A=="string"}function sN(A){return typeof A=="number"}function wh(A){return A!==null&&typeof A=="object"}function qn(A){if(ft.call(A)!=="[object Object]")return!1;var e=Object.getPrototypeOf(A);return e===null||e===Object.prototype}function nN(A){return ft.call(A)==="[object Date]"}function iN(A){return ft.call(A)==="[object File]"}function oN(A){return ft.call(A)==="[object Blob]"}function Dh(A){return ft.call(A)==="[object Function]"}function gN(A){return wh(A)&&Dh(A.pipe)}function QN(A){return typeof URLSearchParams<"u"&&A instanceof URLSearchParams}function EN(A){return A.trim?A.trim():A.replace(/^\s+|\s+$/g,"")}function aN(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function dQ(A,e){if(!(A===null||typeof A>"u"))if(typeof A!="object"&&(A=[A]),fQ(A))for(var t=0,r=A.length;t<r;t++)e.call(null,A[t],t,A);else for(var s in A)Object.prototype.hasOwnProperty.call(A,s)&&e.call(null,A[s],s,A)}function uQ(){var A={};function e(s,n){qn(A[n])&&qn(s)?A[n]=uQ(A[n],s):qn(s)?A[n]=uQ({},s):fQ(s)?A[n]=s.slice():A[n]=s}for(var t=0,r=arguments.length;t<r;t++)dQ(arguments[t],e);return A}function CN(A,e,t){return dQ(e,function(s,n){t&&typeof s=="function"?A[n]=zF(s,t):A[n]=s}),A}function BN(A){return A.charCodeAt(0)===65279&&(A=A.slice(1)),A}ph.exports={isArray:fQ,isArrayBuffer:AN,isBuffer:$F,isFormData:eN,isArrayBufferView:tN,isString:rN,isNumber:sN,isObject:wh,isPlainObject:qn,isUndefined:lQ,isDate:nN,isFile:iN,isBlob:oN,isFunction:Dh,isStream:gN,isURLSearchParams:QN,isStandardBrowserEnv:aN,forEach:dQ,merge:uQ,extend:CN,trim:EN,stripBOM:BN}});var Wn=c((ZS,kh)=>{"use strict";var Qr=mA();function Rh(A){return encodeURIComponent(A).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}kh.exports=function(e,t,r){if(!t)return e;var s;if(r)s=r(t);else if(Qr.isURLSearchParams(t))s=t.toString();else{var n=[];Qr.forEach(t,function(g,a){g===null||typeof g>"u"||(Qr.isArray(g)?a=a+"[]":g=[g],Qr.forEach(g,function(E){Qr.isDate(E)?E=E.toISOString():Qr.isObject(E)&&(E=JSON.stringify(E)),n.push(Rh(a)+"="+Rh(E))}))}),s=n.join("&")}if(s){var i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}});var Nh=c((XS,Fh)=>{"use strict";var IN=mA();function On(){this.handlers=[]}On.prototype.use=function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1};On.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)};On.prototype.forEach=function(e){IN.forEach(this.handlers,function(r){r!==null&&e(r)})};Fh.exports=On});var bh=c((KS,mh)=>{"use strict";var cN=mA();mh.exports=function(e,t){cN.forEach(e,function(s,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=s,delete e[n])})}});var Pn=c((jS,Sh)=>{"use strict";Sh.exports=function(e,t,r,s,n){return e.config=t,r&&(e.code=r),e.request=s,e.response=n,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}});var _n=c((zS,Uh)=>{"use strict";var hN=Pn();Uh.exports=function(e,t,r,s,n){var i=new Error(e);return hN(i,t,r,s,n)}});var yQ=c(($S,Lh)=>{"use strict";var lN=_n();Lh.exports=function(e,t,r){var s=r.config.validateStatus;!r.status||!s||s(r.status)?e(r):t(lN("Request failed with status code "+r.status,r.config,null,r.request,r))}});var Yh=c((AU,Mh)=>{"use strict";var Zn=mA();Mh.exports=Zn.isStandardBrowserEnv()?function(){return{write:function(t,r,s,n,i,o){var g=[];g.push(t+"="+encodeURIComponent(r)),Zn.isNumber(s)&&g.push("expires="+new Date(s).toGMTString()),Zn.isString(n)&&g.push("path="+n),Zn.isString(i)&&g.push("domain="+i),o===!0&&g.push("secure"),document.cookie=g.join("; ")},read:function(t){var r=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return r?decodeURIComponent(r[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var Gh=c((eU,Jh)=>{"use strict";Jh.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}});var vh=c((tU,Th)=>{"use strict";Th.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}});var wQ=c((rU,Hh)=>{"use strict";var uN=Gh(),fN=vh();Hh.exports=function(e,t){return e&&!uN(t)?fN(e,t):t}});var xh=c((sU,Vh)=>{"use strict";var DQ=mA(),dN=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];Vh.exports=function(e){var t={},r,s,n;return e&&DQ.forEach(e.split(` -`),function(o){if(n=o.indexOf(":"),r=DQ.trim(o.substr(0,n)).toLowerCase(),s=DQ.trim(o.substr(n+1)),r){if(t[r]&&dN.indexOf(r)>=0)return;r==="set-cookie"?t[r]=(t[r]?t[r]:[]).concat([s]):t[r]=t[r]?t[r]+", "+s:s}}),t}});var Oh=c((nU,Wh)=>{"use strict";var qh=mA();Wh.exports=qh.isStandardBrowserEnv()?function(){var e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a"),r;function s(n){var i=n;return e&&(t.setAttribute("href",i),i=t.href),t.setAttribute("href",i),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}return r=s(window.location.href),function(i){var o=qh.isString(i)?s(i):i;return o.protocol===r.protocol&&o.host===r.host}}():function(){return function(){return!0}}()});var _h=c((iU,Ph)=>{"use strict";var Xn=mA(),yN=yQ(),wN=Yh(),DN=Wn(),pN=wQ(),RN=xh(),kN=Oh(),pQ=_n();Ph.exports=function(e){return new Promise(function(r,s){var n=e.data,i=e.headers,o=e.responseType;Xn.isFormData(n)&&delete i["Content-Type"];var g=new XMLHttpRequest;if(e.auth){var a=e.auth.username||"",Q=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.Authorization="Basic "+btoa(a+":"+Q)}var E=pN(e.baseURL,e.url);g.open(e.method.toUpperCase(),DN(E,e.params,e.paramsSerializer),!0),g.timeout=e.timeout;function C(){if(g){var I="getAllResponseHeaders"in g?RN(g.getAllResponseHeaders()):null,h=!o||o==="text"||o==="json"?g.responseText:g.response,l={data:h,status:g.status,statusText:g.statusText,headers:I,config:e,request:g};yN(r,s,l),g=null}}if("onloadend"in g?g.onloadend=C:g.onreadystatechange=function(){!g||g.readyState!==4||g.status===0&&!(g.responseURL&&g.responseURL.indexOf("file:")===0)||setTimeout(C)},g.onabort=function(){g&&(s(pQ("Request aborted",e,"ECONNABORTED",g)),g=null)},g.onerror=function(){s(pQ("Network Error",e,null,g)),g=null},g.ontimeout=function(){var h="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(h=e.timeoutErrorMessage),s(pQ(h,e,e.transitional&&e.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",g)),g=null},Xn.isStandardBrowserEnv()){var B=(e.withCredentials||kN(E))&&e.xsrfCookieName?wN.read(e.xsrfCookieName):void 0;B&&(i[e.xsrfHeaderName]=B)}"setRequestHeader"in g&&Xn.forEach(i,function(h,l){typeof n>"u"&&l.toLowerCase()==="content-type"?delete i[l]:g.setRequestHeader(l,h)}),Xn.isUndefined(e.withCredentials)||(g.withCredentials=!!e.withCredentials),o&&o!=="json"&&(g.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&g.addEventListener("progress",e.onDownloadProgress),typeof e.onUploadProgress=="function"&&g.upload&&g.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(h){g&&(g.abort(),s(h),g=null)}),n||(n=null),g.send(n)})}});var Xh=c((oU,Zh)=>{var Er=1e3,ar=Er*60,Cr=ar*60,dt=Cr*24,FN=dt*7,NN=dt*365.25;Zh.exports=function(A,e){e=e||{};var t=typeof A;if(t==="string"&&A.length>0)return mN(A);if(t==="number"&&isFinite(A))return e.long?SN(A):bN(A);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(A))};function mN(A){if(A=String(A),!(A.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(A);if(e){var t=parseFloat(e[1]),r=(e[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return t*NN;case"weeks":case"week":case"w":return t*FN;case"days":case"day":case"d":return t*dt;case"hours":case"hour":case"hrs":case"hr":case"h":return t*Cr;case"minutes":case"minute":case"mins":case"min":case"m":return t*ar;case"seconds":case"second":case"secs":case"sec":case"s":return t*Er;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function bN(A){var e=Math.abs(A);return e>=dt?Math.round(A/dt)+"d":e>=Cr?Math.round(A/Cr)+"h":e>=ar?Math.round(A/ar)+"m":e>=Er?Math.round(A/Er)+"s":A+"ms"}function SN(A){var e=Math.abs(A);return e>=dt?Kn(A,e,dt,"day"):e>=Cr?Kn(A,e,Cr,"hour"):e>=ar?Kn(A,e,ar,"minute"):e>=Er?Kn(A,e,Er,"second"):A+" ms"}function Kn(A,e,t,r){var s=e>=t*1.5;return Math.round(A/t)+" "+r+(s?"s":"")}});var RQ=c((gU,Kh)=>{function UN(A){t.debug=t,t.default=t,t.coerce=g,t.disable=n,t.enable=s,t.enabled=i,t.humanize=Xh(),t.destroy=a,Object.keys(A).forEach(Q=>{t[Q]=A[Q]}),t.names=[],t.skips=[],t.formatters={};function e(Q){let E=0;for(let C=0;C<Q.length;C++)E=(E<<5)-E+Q.charCodeAt(C),E|=0;return t.colors[Math.abs(E)%t.colors.length]}t.selectColor=e;function t(Q){let E,C=null,B,I;function h(...l){if(!h.enabled)return;let u=h,F=Number(new Date),w=F-(E||F);u.diff=w,u.prev=E,u.curr=F,E=F,l[0]=t.coerce(l[0]),typeof l[0]!="string"&&l.unshift("%O");let k=0;l[0]=l[0].replace(/%([a-zA-Z%])/g,(O,V)=>{if(O==="%%")return"%";k++;let K=t.formatters[V];if(typeof K=="function"){let uA=l[k];O=K.call(u,uA),l.splice(k,1),k--}return O}),t.formatArgs.call(u,l),(u.log||t.log).apply(u,l)}return h.namespace=Q,h.useColors=t.useColors(),h.color=t.selectColor(Q),h.extend=r,h.destroy=t.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>C!==null?C:(B!==t.namespaces&&(B=t.namespaces,I=t.enabled(Q)),I),set:l=>{C=l}}),typeof t.init=="function"&&t.init(h),h}function r(Q,E){let C=t(this.namespace+(typeof E>"u"?":":E)+Q);return C.log=this.log,C}function s(Q){t.save(Q),t.namespaces=Q,t.names=[],t.skips=[];let E,C=(typeof Q=="string"?Q:"").split(/[\s,]+/),B=C.length;for(E=0;E<B;E++)C[E]&&(Q=C[E].replace(/\*/g,".*?"),Q[0]==="-"?t.skips.push(new RegExp("^"+Q.slice(1)+"$")):t.names.push(new RegExp("^"+Q+"$")))}function n(){let Q=[...t.names.map(o),...t.skips.map(o).map(E=>"-"+E)].join(",");return t.enable(""),Q}function i(Q){if(Q[Q.length-1]==="*")return!0;let E,C;for(E=0,C=t.skips.length;E<C;E++)if(t.skips[E].test(Q))return!1;for(E=0,C=t.names.length;E<C;E++)if(t.names[E].test(Q))return!0;return!1}function o(Q){return Q.toString().substring(2,Q.toString().length-2).replace(/\.\*\?$/,"*")}function g(Q){return Q instanceof Error?Q.stack||Q.message:Q}function a(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}Kh.exports=UN});var jh=c((XA,jn)=>{XA.formatArgs=MN;XA.save=YN;XA.load=JN;XA.useColors=LN;XA.storage=GN();XA.destroy=(()=>{let A=!1;return()=>{A||(A=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();XA.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function LN(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function MN(A){if(A[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+A[0]+(this.useColors?"%c ":" ")+"+"+jn.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;A.splice(1,0,e,"color: inherit");let t=0,r=0;A[0].replace(/%[a-zA-Z%]/g,s=>{s!=="%%"&&(t++,s==="%c"&&(r=t))}),A.splice(r,0,e)}XA.log=console.debug||console.log||(()=>{});function YN(A){try{A?XA.storage.setItem("debug",A):XA.storage.removeItem("debug")}catch{}}function JN(){let A;try{A=XA.storage.getItem("debug")}catch{}return!A&&typeof process<"u"&&"env"in process&&(A=process.env.DEBUG),A}function GN(){try{return localStorage}catch{}}jn.exports=RQ()(XA);var{formatters:TN}=jn.exports;TN.j=function(A){try{return JSON.stringify(A)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var $h=c((QU,zh)=>{"use strict";zh.exports=(A,e=process.argv)=>{let t=A.startsWith("-")?"":A.length===1?"-":"--",r=e.indexOf(t+A),s=e.indexOf("--");return r!==-1&&(s===-1||r<s)}});var tl=c((EU,el)=>{"use strict";var vN=require("os"),Al=require("tty"),ie=$h(),{env:BA}=process,ze;ie("no-color")||ie("no-colors")||ie("color=false")||ie("color=never")?ze=0:(ie("color")||ie("colors")||ie("color=true")||ie("color=always"))&&(ze=1);"FORCE_COLOR"in BA&&(BA.FORCE_COLOR==="true"?ze=1:BA.FORCE_COLOR==="false"?ze=0:ze=BA.FORCE_COLOR.length===0?1:Math.min(parseInt(BA.FORCE_COLOR,10),3));function kQ(A){return A===0?!1:{level:A,hasBasic:!0,has256:A>=2,has16m:A>=3}}function FQ(A,e){if(ze===0)return 0;if(ie("color=16m")||ie("color=full")||ie("color=truecolor"))return 3;if(ie("color=256"))return 2;if(A&&!e&&ze===void 0)return 0;let t=ze||0;if(BA.TERM==="dumb")return t;if(process.platform==="win32"){let r=vN.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in BA)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(r=>r in BA)||BA.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in BA)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(BA.TEAMCITY_VERSION)?1:0;if(BA.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in BA){let r=parseInt((BA.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(BA.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(BA.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(BA.TERM)||"COLORTERM"in BA?1:t}function HN(A){let e=FQ(A,A&&A.isTTY);return kQ(e)}el.exports={supportsColor:HN,stdout:kQ(FQ(!0,Al.isatty(1))),stderr:kQ(FQ(!0,Al.isatty(2)))}});var sl=c((hA,$n)=>{var VN=require("tty"),zn=require("util");hA.init=ZN;hA.log=ON;hA.formatArgs=qN;hA.save=PN;hA.load=_N;hA.useColors=xN;hA.destroy=zn.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");hA.colors=[6,2,3,4,5,1];try{let A=tl();A&&(A.stderr||A).level>=2&&(hA.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}hA.inspectOpts=Object.keys(process.env).filter(A=>/^debug_/i.test(A)).reduce((A,e)=>{let t=e.substring(6).toLowerCase().replace(/_([a-z])/g,(s,n)=>n.toUpperCase()),r=process.env[e];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),A[t]=r,A},{});function xN(){return"colors"in hA.inspectOpts?!!hA.inspectOpts.colors:VN.isatty(process.stderr.fd)}function qN(A){let{namespace:e,useColors:t}=this;if(t){let r=this.color,s="\x1B[3"+(r<8?r:"8;5;"+r),n=` ${s};1m${e} \x1B[0m`;A[0]=n+A[0].split(` -`).join(` -`+n),A.push(s+"m+"+$n.exports.humanize(this.diff)+"\x1B[0m")}else A[0]=WN()+e+" "+A[0]}function WN(){return hA.inspectOpts.hideDate?"":new Date().toISOString()+" "}function ON(...A){return process.stderr.write(zn.format(...A)+` -`)}function PN(A){A?process.env.DEBUG=A:delete process.env.DEBUG}function _N(){return process.env.DEBUG}function ZN(A){A.inspectOpts={};let e=Object.keys(hA.inspectOpts);for(let t=0;t<e.length;t++)A.inspectOpts[e[t]]=hA.inspectOpts[e[t]]}$n.exports=RQ()(hA);var{formatters:rl}=$n.exports;rl.o=function(A){return this.inspectOpts.colors=this.useColors,zn.inspect(A,this.inspectOpts).split(` -`).map(e=>e.trim()).join(" ")};rl.O=function(A){return this.inspectOpts.colors=this.useColors,zn.inspect(A,this.inspectOpts)}});var Ai=c((aU,NQ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?NQ.exports=jh():NQ.exports=sl()});var il=c((CU,nl)=>{var ts;nl.exports=function(){if(!ts){try{ts=Ai()("follow-redirects")}catch{}typeof ts!="function"&&(ts=function(){})}ts.apply(null,arguments)}});var VQ=c((BU,HQ)=>{var ns=require("url"),rs=ns.URL,XN=require("http"),KN=require("https"),LQ=require("stream").Writable,MQ=require("assert"),ol=il(),YQ=!1;try{MQ(new rs)}catch(A){YQ=A.code==="ERR_INVALID_URL"}var jN=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],JQ=["abort","aborted","connect","error","socket","timeout"],GQ=Object.create(null);JQ.forEach(function(A){GQ[A]=function(e,t,r){this._redirectable.emit(A,e,t,r)}});var bQ=is("ERR_INVALID_URL","Invalid URL",TypeError),SQ=is("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),zN=is("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",SQ),$N=is("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),Am=is("ERR_STREAM_WRITE_AFTER_END","write after end"),em=LQ.prototype.destroy||Ql;function JA(A,e){LQ.call(this),this._sanitizeOptions(A),this._options=A,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],e&&this.on("response",e);var t=this;this._onNativeResponse=function(r){try{t._processResponse(r)}catch(s){t.emit("error",s instanceof SQ?s:new SQ({cause:s}))}},this._performRequest()}JA.prototype=Object.create(LQ.prototype);JA.prototype.abort=function(){vQ(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};JA.prototype.destroy=function(A){return vQ(this._currentRequest,A),em.call(this,A),this};JA.prototype.write=function(A,e,t){if(this._ending)throw new Am;if(!yt(A)&&!sm(A))throw new TypeError("data should be a string, Buffer or Uint8Array");if(ss(e)&&(t=e,e=null),A.length===0){t&&t();return}this._requestBodyLength+A.length<=this._options.maxBodyLength?(this._requestBodyLength+=A.length,this._requestBodyBuffers.push({data:A,encoding:e}),this._currentRequest.write(A,e,t)):(this.emit("error",new $N),this.abort())};JA.prototype.end=function(A,e,t){if(ss(A)?(t=A,A=e=null):ss(e)&&(t=e,e=null),!A)this._ended=this._ending=!0,this._currentRequest.end(null,null,t);else{var r=this,s=this._currentRequest;this.write(A,e,function(){r._ended=!0,s.end(null,null,t)}),this._ending=!0}};JA.prototype.setHeader=function(A,e){this._options.headers[A]=e,this._currentRequest.setHeader(A,e)};JA.prototype.removeHeader=function(A){delete this._options.headers[A],this._currentRequest.removeHeader(A)};JA.prototype.setTimeout=function(A,e){var t=this;function r(i){i.setTimeout(A),i.removeListener("timeout",i.destroy),i.addListener("timeout",i.destroy)}function s(i){t._timeout&&clearTimeout(t._timeout),t._timeout=setTimeout(function(){t.emit("timeout"),n()},A),r(i)}function n(){t._timeout&&(clearTimeout(t._timeout),t._timeout=null),t.removeListener("abort",n),t.removeListener("error",n),t.removeListener("response",n),t.removeListener("close",n),e&&t.removeListener("timeout",e),t.socket||t._currentRequest.removeListener("socket",s)}return e&&this.on("timeout",e),this.socket?s(this.socket):this._currentRequest.once("socket",s),this.on("socket",r),this.on("abort",n),this.on("error",n),this.on("response",n),this.on("close",n),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(A){JA.prototype[A]=function(e,t){return this._currentRequest[A](e,t)}});["aborted","connection","socket"].forEach(function(A){Object.defineProperty(JA.prototype,A,{get:function(){return this._currentRequest[A]}})});JA.prototype._sanitizeOptions=function(A){if(A.headers||(A.headers={}),A.host&&(A.hostname||(A.hostname=A.host),delete A.host),!A.pathname&&A.path){var e=A.path.indexOf("?");e<0?A.pathname=A.path:(A.pathname=A.path.substring(0,e),A.search=A.path.substring(e))}};JA.prototype._performRequest=function(){var A=this._options.protocol,e=this._options.nativeProtocols[A];if(!e)throw new TypeError("Unsupported protocol "+A);if(this._options.agents){var t=A.slice(0,-1);this._options.agent=this._options.agents[t]}var r=this._currentRequest=e.request(this._options,this._onNativeResponse);r._redirectable=this;for(var s of JQ)r.on(s,GQ[s]);if(this._currentUrl=/^\//.test(this._options.path)?ns.format(this._options):this._options.path,this._isRedirect){var n=0,i=this,o=this._requestBodyBuffers;(function g(a){if(r===i._currentRequest)if(a)i.emit("error",a);else if(n<o.length){var Q=o[n++];r.finished||r.write(Q.data,Q.encoding,g)}else i._ended&&r.end()})()}};JA.prototype._processResponse=function(A){var e=A.statusCode;this._options.trackRedirects&&this._redirects.push({url:this._currentUrl,headers:A.headers,statusCode:e});var t=A.headers.location;if(!t||this._options.followRedirects===!1||e<300||e>=400){A.responseUrl=this._currentUrl,A.redirects=this._redirects,this.emit("response",A),this._requestBodyBuffers=[];return}if(vQ(this._currentRequest),A.destroy(),++this._redirectCount>this._options.maxRedirects)throw new zN;var r,s=this._options.beforeRedirect;s&&(r=Object.assign({Host:A.req.getHeader("host")},this._options.headers));var n=this._options.method;((e===301||e===302)&&this._options.method==="POST"||e===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],mQ(/^content-/i,this._options.headers));var i=mQ(/^host$/i,this._options.headers),o=TQ(this._currentUrl),g=i||o.host,a=/^\w+:/.test(t)?this._currentUrl:ns.format(Object.assign(o,{host:g})),Q=tm(t,a);if(ol("redirecting to",Q.href),this._isRedirect=!0,UQ(Q,this._options),(Q.protocol!==o.protocol&&Q.protocol!=="https:"||Q.host!==g&&!rm(Q.host,g))&&mQ(/^(?:authorization|cookie)$/i,this._options.headers),ss(s)){var E={headers:A.headers,statusCode:e},C={url:a,method:n,headers:r};s(this._options,E,C),this._sanitizeOptions(this._options)}this._performRequest()};function gl(A){var e={maxRedirects:21,maxBodyLength:10485760},t={};return Object.keys(A).forEach(function(r){var s=r+":",n=t[s]=A[r],i=e[r]=Object.create(n);function o(a,Q,E){return nm(a)?a=UQ(a):yt(a)?a=UQ(TQ(a)):(E=Q,Q=El(a),a={protocol:s}),ss(Q)&&(E=Q,Q=null),Q=Object.assign({maxRedirects:e.maxRedirects,maxBodyLength:e.maxBodyLength},a,Q),Q.nativeProtocols=t,!yt(Q.host)&&!yt(Q.hostname)&&(Q.hostname="::1"),MQ.equal(Q.protocol,s,"protocol mismatch"),ol("options",Q),new JA(Q,E)}function g(a,Q,E){var C=i.request(a,Q,E);return C.end(),C}Object.defineProperties(i,{request:{value:o,configurable:!0,enumerable:!0,writable:!0},get:{value:g,configurable:!0,enumerable:!0,writable:!0}})}),e}function Ql(){}function TQ(A){var e;if(YQ)e=new rs(A);else if(e=El(ns.parse(A)),!yt(e.protocol))throw new bQ({input:A});return e}function tm(A,e){return YQ?new rs(A,e):TQ(ns.resolve(e,A))}function El(A){if(/^\[/.test(A.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(A.hostname))throw new bQ({input:A.href||A});if(/^\[/.test(A.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(A.host))throw new bQ({input:A.href||A});return A}function UQ(A,e){var t=e||{};for(var r of jN)t[r]=A[r];return t.hostname.startsWith("[")&&(t.hostname=t.hostname.slice(1,-1)),t.port!==""&&(t.port=Number(t.port)),t.path=t.search?t.pathname+t.search:t.pathname,t}function mQ(A,e){var t;for(var r in e)A.test(r)&&(t=e[r],delete e[r]);return t===null||typeof t>"u"?void 0:String(t).trim()}function is(A,e,t){function r(s){Error.captureStackTrace(this,this.constructor),Object.assign(this,s||{}),this.code=A,this.message=this.cause?e+": "+this.cause.message:e}return r.prototype=new(t||Error),Object.defineProperties(r.prototype,{constructor:{value:r,enumerable:!1},name:{value:"Error ["+A+"]",enumerable:!1}}),r}function vQ(A,e){for(var t of JQ)A.removeListener(t,GQ[t]);A.on("error",Ql),A.destroy(e)}function rm(A,e){MQ(yt(A)&&yt(e));var t=A.length-e.length-1;return t>0&&A[t]==="."&&A.endsWith(e)}function yt(A){return typeof A=="string"||A instanceof String}function ss(A){return typeof A=="function"}function sm(A){return typeof A=="object"&&"length"in A}function nm(A){return rs&&A instanceof rs}HQ.exports=gl({http:XN,https:KN});HQ.exports.wrap=gl});var xQ=c((IU,im)=>{im.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var hl=c((cU,cl)=>{"use strict";var os=mA(),al=yQ(),om=wQ(),gm=Wn(),Qm=require("http"),Em=require("https"),am=VQ().http,Cm=VQ().https,Cl=require("url"),Bm=require("zlib"),Im=xQ(),ei=_n(),qQ=Pn(),Bl=/https:?/;function Il(A,e,t){if(A.hostname=e.host,A.host=e.host,A.port=e.port,A.path=t,e.auth){var r=Buffer.from(e.auth.username+":"+e.auth.password,"utf8").toString("base64");A.headers["Proxy-Authorization"]="Basic "+r}A.beforeRedirect=function(n){n.headers.host=n.host,Il(n,e,n.href)}}cl.exports=function(e){return new Promise(function(r,s){var n=function(S){r(S)},i=function(S){s(S)},o=e.data,g=e.headers;if("User-Agent"in g||"user-agent"in g?!g["User-Agent"]&&!g["user-agent"]&&(delete g["User-Agent"],delete g["user-agent"]):g["User-Agent"]="axios/"+Im.version,o&&!os.isStream(o)){if(!Buffer.isBuffer(o))if(os.isArrayBuffer(o))o=Buffer.from(new Uint8Array(o));else if(os.isString(o))o=Buffer.from(o,"utf-8");else return i(ei("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",e));g["Content-Length"]=o.length}var a=void 0;if(e.auth){var Q=e.auth.username||"",E=e.auth.password||"";a=Q+":"+E}var C=om(e.baseURL,e.url),B=Cl.parse(C),I=B.protocol||"http:";if(!a&&B.auth){var h=B.auth.split(":"),l=h[0]||"",u=h[1]||"";a=l+":"+u}a&&delete g.Authorization;var F=Bl.test(I),w=F?e.httpsAgent:e.httpAgent,k={path:gm(B.path,e.params,e.paramsSerializer).replace(/^\?/,""),method:e.method.toUpperCase(),headers:g,agent:w,agents:{http:e.httpAgent,https:e.httpsAgent},auth:a};e.socketPath?k.socketPath=e.socketPath:(k.hostname=B.hostname,k.port=B.port);var T=e.proxy;if(!T&&T!==!1){var O=I.slice(0,-1)+"_proxy",V=process.env[O]||process.env[O.toUpperCase()];if(V){var K=Cl.parse(V),uA=process.env.no_proxy||process.env.NO_PROXY,IA=!0;if(uA){var wt=uA.split(",").map(function(S){return S.trim()});IA=!wt.some(function(S){return S?S==="*"||S[0]==="."&&B.hostname.substr(B.hostname.length-S.length)===S?!0:B.hostname===S:!1})}if(IA&&(T={host:K.hostname,port:K.port,protocol:K.protocol},K.auth)){var wA=K.auth.split(":");T.auth={username:wA[0],password:wA[1]}}}}T&&(k.headers.host=B.hostname+(B.port?":"+B.port:""),Il(k,T,I+"//"+B.hostname+(B.port?":"+B.port:"")+k.path));var gA,Be=F&&(T?Bl.test(T.protocol):!0);e.transport?gA=e.transport:e.maxRedirects===0?gA=Be?Em:Qm:(e.maxRedirects&&(k.maxRedirects=e.maxRedirects),gA=Be?Cm:am),e.maxBodyLength>-1&&(k.maxBodyLength=e.maxBodyLength);var _=gA.request(k,function(S){if(!_.aborted){var Ie=S,x=S.req||_;if(S.statusCode!==204&&x.method!=="HEAD"&&e.decompress!==!1)switch(S.headers["content-encoding"]){case"gzip":case"compress":case"deflate":Ie=Ie.pipe(Bm.createUnzip()),delete S.headers["content-encoding"];break}var TA={status:S.statusCode,statusText:S.statusMessage,headers:S.headers,config:e,request:x};if(e.responseType==="stream")TA.data=Ie,al(n,i,TA);else{var $Q=[],AE=0;Ie.on("data",function(ce){$Q.push(ce),AE+=ce.length,e.maxContentLength>-1&&AE>e.maxContentLength&&(Ie.destroy(),i(ei("maxContentLength size of "+e.maxContentLength+" exceeded",e,null,x)))}),Ie.on("error",function(ce){_.aborted||i(qQ(ce,e,null,x))}),Ie.on("end",function(){var ce=Buffer.concat($Q);e.responseType!=="arraybuffer"&&(ce=ce.toString(e.responseEncoding),(!e.responseEncoding||e.responseEncoding==="utf8")&&(ce=os.stripBOM(ce))),TA.data=ce,al(n,i,TA)})}}});if(_.on("error",function(S){_.aborted&&S.code!=="ERR_FR_TOO_MANY_REDIRECTS"||i(qQ(S,e,null,_))}),e.timeout){var tA=parseInt(e.timeout,10);if(isNaN(tA)){i(ei("error trying to parse `config.timeout` to int",e,"ERR_PARSE_TIMEOUT",_));return}_.setTimeout(tA,function(){_.abort(),i(ei("timeout of "+tA+"ms exceeded",e,e.transitional&&e.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",_))})}e.cancelToken&&e.cancelToken.promise.then(function(S){_.aborted||(_.abort(),i(S))}),os.isStream(o)?o.on("error",function(S){i(qQ(S,e,null,_))}).pipe(_):_.end(o)})}});var ri=c((hU,fl)=>{"use strict";var lA=mA(),ll=bh(),cm=Pn(),hm={"Content-Type":"application/x-www-form-urlencoded"};function ul(A,e){!lA.isUndefined(A)&&lA.isUndefined(A["Content-Type"])&&(A["Content-Type"]=e)}function lm(){var A;return typeof XMLHttpRequest<"u"?A=_h():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(A=hl()),A}function um(A,e,t){if(lA.isString(A))try{return(e||JSON.parse)(A),lA.trim(A)}catch(r){if(r.name!=="SyntaxError")throw r}return(t||JSON.stringify)(A)}var ti={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:lm(),transformRequest:[function(e,t){return ll(t,"Accept"),ll(t,"Content-Type"),lA.isFormData(e)||lA.isArrayBuffer(e)||lA.isBuffer(e)||lA.isStream(e)||lA.isFile(e)||lA.isBlob(e)?e:lA.isArrayBufferView(e)?e.buffer:lA.isURLSearchParams(e)?(ul(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):lA.isObject(e)||t&&t["Content-Type"]==="application/json"?(ul(t,"application/json"),um(e)):e}],transformResponse:[function(e){var t=this.transitional,r=t&&t.silentJSONParsing,s=t&&t.forcedJSONParsing,n=!r&&this.responseType==="json";if(n||s&&lA.isString(e)&&e.length)try{return JSON.parse(e)}catch(i){if(n)throw i.name==="SyntaxError"?cm(i,this,"E_JSON_PARSE"):i}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300}};ti.headers={common:{Accept:"application/json, text/plain, */*"}};lA.forEach(["delete","get","head"],function(e){ti.headers[e]={}});lA.forEach(["post","put","patch"],function(e){ti.headers[e]=lA.merge(hm)});fl.exports=ti});var yl=c((lU,dl)=>{"use strict";var fm=mA(),dm=ri();dl.exports=function(e,t,r){var s=this||dm;return fm.forEach(r,function(i){e=i.call(s,e,t)}),e}});var WQ=c((uU,wl)=>{"use strict";wl.exports=function(e){return!!(e&&e.__CANCEL__)}});var Rl=c((fU,pl)=>{"use strict";var Dl=mA(),OQ=yl(),ym=WQ(),wm=ri();function PQ(A){A.cancelToken&&A.cancelToken.throwIfRequested()}pl.exports=function(e){PQ(e),e.headers=e.headers||{},e.data=OQ.call(e,e.data,e.headers,e.transformRequest),e.headers=Dl.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),Dl.forEach(["delete","get","head","post","put","patch","common"],function(s){delete e.headers[s]});var t=e.adapter||wm.adapter;return t(e).then(function(s){return PQ(e),s.data=OQ.call(e,s.data,s.headers,e.transformResponse),s},function(s){return ym(s)||(PQ(e),s&&s.response&&(s.response.data=OQ.call(e,s.response.data,s.response.headers,e.transformResponse))),Promise.reject(s)})}});var _Q=c((dU,kl)=>{"use strict";var yA=mA();kl.exports=function(e,t){t=t||{};var r={},s=["url","method","data"],n=["headers","auth","proxy","params"],i=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],o=["validateStatus"];function g(C,B){return yA.isPlainObject(C)&&yA.isPlainObject(B)?yA.merge(C,B):yA.isPlainObject(B)?yA.merge({},B):yA.isArray(B)?B.slice():B}function a(C){yA.isUndefined(t[C])?yA.isUndefined(e[C])||(r[C]=g(void 0,e[C])):r[C]=g(e[C],t[C])}yA.forEach(s,function(B){yA.isUndefined(t[B])||(r[B]=g(void 0,t[B]))}),yA.forEach(n,a),yA.forEach(i,function(B){yA.isUndefined(t[B])?yA.isUndefined(e[B])||(r[B]=g(void 0,e[B])):r[B]=g(void 0,t[B])}),yA.forEach(o,function(B){B in t?r[B]=g(e[B],t[B]):B in e&&(r[B]=g(void 0,e[B]))});var Q=s.concat(n).concat(i).concat(o),E=Object.keys(e).concat(Object.keys(t)).filter(function(B){return Q.indexOf(B)===-1});return yA.forEach(E,a),r}});var Sl=c((yU,bl)=>{"use strict";var Nl=xQ(),ZQ={};["object","boolean","number","function","string","symbol"].forEach(function(A,e){ZQ[A]=function(r){return typeof r===A||"a"+(e<1?"n ":" ")+A}});var Fl={},Dm=Nl.version.split(".");function ml(A,e){for(var t=e?e.split("."):Dm,r=A.split("."),s=0;s<3;s++){if(t[s]>r[s])return!0;if(t[s]<r[s])return!1}return!1}ZQ.transitional=function(e,t,r){var s=t&&ml(t);function n(i,o){return"[Axios v"+Nl.version+"] Transitional option '"+i+"'"+o+(r?". "+r:"")}return function(i,o,g){if(e===!1)throw new Error(n(o," has been removed in "+t));return s&&!Fl[o]&&(Fl[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),e?e(i,o,g):!0}};function pm(A,e,t){if(typeof A!="object")throw new TypeError("options must be an object");for(var r=Object.keys(A),s=r.length;s-- >0;){var n=r[s],i=e[n];if(i){var o=A[n],g=o===void 0||i(o,n,A);if(g!==!0)throw new TypeError("option "+n+" must be "+g);continue}if(t!==!0)throw Error("Unknown option "+n)}}bl.exports={isOlderVersion:ml,assertOptions:pm,validators:ZQ}});var Gl=c((wU,Jl)=>{"use strict";var Ml=mA(),Rm=Wn(),Ul=Nh(),Ll=Rl(),si=_Q(),Yl=Sl(),Br=Yl.validators;function gs(A){this.defaults=A,this.interceptors={request:new Ul,response:new Ul}}gs.prototype.request=function(e){typeof e=="string"?(e=arguments[1]||{},e.url=arguments[0]):e=e||{},e=si(this.defaults,e),e.method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;t!==void 0&&Yl.assertOptions(t,{silentJSONParsing:Br.transitional(Br.boolean,"1.0.0"),forcedJSONParsing:Br.transitional(Br.boolean,"1.0.0"),clarifyTimeoutError:Br.transitional(Br.boolean,"1.0.0")},!1);var r=[],s=!0;this.interceptors.request.forEach(function(C){typeof C.runWhen=="function"&&C.runWhen(e)===!1||(s=s&&C.synchronous,r.unshift(C.fulfilled,C.rejected))});var n=[];this.interceptors.response.forEach(function(C){n.push(C.fulfilled,C.rejected)});var i;if(!s){var o=[Ll,void 0];for(Array.prototype.unshift.apply(o,r),o=o.concat(n),i=Promise.resolve(e);o.length;)i=i.then(o.shift(),o.shift());return i}for(var g=e;r.length;){var a=r.shift(),Q=r.shift();try{g=a(g)}catch(E){Q(E);break}}try{i=Ll(g)}catch(E){return Promise.reject(E)}for(;n.length;)i=i.then(n.shift(),n.shift());return i};gs.prototype.getUri=function(e){return e=si(this.defaults,e),Rm(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")};Ml.forEach(["delete","get","head","options"],function(e){gs.prototype[e]=function(t,r){return this.request(si(r||{},{method:e,url:t,data:(r||{}).data}))}});Ml.forEach(["post","put","patch"],function(e){gs.prototype[e]=function(t,r,s){return this.request(si(s||{},{method:e,url:t,data:r}))}});Jl.exports=gs});var KQ=c((DU,Tl)=>{"use strict";function XQ(A){this.message=A}XQ.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};XQ.prototype.__CANCEL__=!0;Tl.exports=XQ});var Hl=c((pU,vl)=>{"use strict";var km=KQ();function ni(A){if(typeof A!="function")throw new TypeError("executor must be a function.");var e;this.promise=new Promise(function(s){e=s});var t=this;A(function(s){t.reason||(t.reason=new km(s),e(t.reason))})}ni.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};ni.source=function(){var e,t=new ni(function(s){e=s});return{token:t,cancel:e}};vl.exports=ni});var xl=c((RU,Vl)=>{"use strict";Vl.exports=function(e){return function(r){return e.apply(null,r)}}});var Wl=c((kU,ql)=>{"use strict";ql.exports=function(e){return typeof e=="object"&&e.isAxiosError===!0}});var _l=c((FU,jQ)=>{"use strict";var Ol=mA(),Fm=hQ(),ii=Gl(),Nm=_Q(),mm=ri();function Pl(A){var e=new ii(A),t=Fm(ii.prototype.request,e);return Ol.extend(t,ii.prototype,e),Ol.extend(t,e),t}var Ce=Pl(mm);Ce.Axios=ii;Ce.create=function(e){return Pl(Nm(Ce.defaults,e))};Ce.Cancel=KQ();Ce.CancelToken=Hl();Ce.isCancel=WQ();Ce.all=function(e){return Promise.all(e)};Ce.spread=xl();Ce.isAxiosError=Wl();jQ.exports=Ce;jQ.exports.default=Ce});var Xl=c((NU,Zl)=>{Zl.exports=_l()});var Kl=c((exports,module)=>{"use strict";var __awaiter=exports&&exports.__awaiter||function(A,e,t,r){function s(n){return n instanceof t?n:new t(function(i){i(n)})}return new(t||(t=Promise))(function(n,i){function o(Q){try{a(r.next(Q))}catch(E){i(E)}}function g(Q){try{a(r.throw(Q))}catch(E){i(E)}}function a(Q){Q.done?n(Q.value):s(Q.value).then(o,g)}a((r=r.apply(A,e||[])).next())})},__generator=exports&&exports.__generator||function(A,e){var t={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},r,s,n,i;return i={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(i[Symbol.iterator]=function(){return this}),i;function o(a){return function(Q){return g([a,Q])}}function g(a){if(r)throw new TypeError("Generator is already executing.");for(;t;)try{if(r=1,s&&(n=a[0]&2?s.return:a[0]?s.throw||((n=s.return)&&n.call(s),0):s.next)&&!(n=n.call(s,a[1])).done)return n;switch(s=0,n&&(a=[a[0]&2,n.value]),a[0]){case 0:case 1:n=a;break;case 4:return t.label++,{value:a[1],done:!1};case 5:t.label++,s=a[1],a=[0];continue;case 7:a=t.ops.pop(),t.trys.pop();continue;default:if(n=t.trys,!(n=n.length>0&&n[n.length-1])&&(a[0]===6||a[0]===2)){t=0;continue}if(a[0]===3&&(!n||a[1]>n[0]&&a[1]<n[3])){t.label=a[1];break}if(a[0]===6&&t.label<n[1]){t.label=n[1],n=a;break}if(n&&t.label<n[2]){t.label=n[2],t.ops.push(a);break}n[2]&&t.ops.pop(),t.trys.pop();continue}a=e.call(A,t)}catch(Q){a=[6,Q],s=0}finally{r=n=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}},__importDefault=exports&&exports.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(exports,"__esModule",{value:!0});exports.getAllAudioBase64=exports.getAudioBase64=void 0;var assertInputTypes_1=__importDefault(CQ()),axios_1=__importDefault(Xl()),splitLongText_1=__importDefault(IQ()),getAudioBase64=function(text,_a){var _b=_a===void 0?{}:_a,_c=_b.lang,lang=_c===void 0?"en":_c,_d=_b.slow,slow=_d===void 0?!1:_d,_e=_b.host,host=_e===void 0?"https://translate.google.com":_e,_f=_b.timeout,timeout=_f===void 0?1e4:_f;return __awaiter(void 0,void 0,void 0,function(){var res,result;return __generator(this,function(_g){switch(_g.label){case 0:if(assertInputTypes_1.default(text,lang,slow,host),typeof timeout!="number"||timeout<=0)throw new TypeError("timeout should be a positive number");if(text.length>200)throw new RangeError("text length ("+text.length+') should be less than 200 characters. Try "getAllAudioBase64(text, [option])" for long text.');return[4,axios_1.default({method:"post",baseURL:host,url:"/_/TranslateWebserverUi/data/batchexecute",timeout,data:"f.req="+encodeURIComponent(JSON.stringify([[["jQ1olc",JSON.stringify([text,lang,slow?!0:null,"null"]),null,"generic"]]]))})];case 1:res=_g.sent();try{result=eval(res.data.slice(5))[0][2]}catch(A){throw new Error(`parse response failed: -`+res.data)}if(!result)throw new Error('lang "'+lang+'" might not exist');try{result=eval(result)[0]}catch(A){throw new Error(`parse response failed: -`+res.data)}return[2,result]}})})};exports.getAudioBase64=getAudioBase64;var getAllAudioBase64=function(A,e){var t=e===void 0?{}:e,r=t.lang,s=r===void 0?"en":r,n=t.slow,i=n===void 0?!1:n,o=t.host,g=o===void 0?"https://translate.google.com":o,a=t.splitPunct,Q=a===void 0?"":a,E=t.timeout,C=E===void 0?1e4:E;return __awaiter(void 0,void 0,void 0,function(){var B,I,h,l,u,F;return __generator(this,function(w){switch(w.label){case 0:if(assertInputTypes_1.default(A,s,i,g),typeof Q!="string")throw new TypeError("splitPunct should be a string");if(typeof C!="number"||C<=0)throw new TypeError("timeout should be a positive number");return B=splitLongText_1.default(A,{splitPunct:Q}),[4,Promise.all(B.map(function(k){return exports.getAudioBase64(k,{lang:s,slow:i,host:g,timeout:C})}))];case 1:for(I=w.sent(),h=[],l=0;l<B.length;l++)u=B[l],F=I[l],h.push({shortText:u,base64:F});return[2,h]}})})};exports.getAllAudioBase64=getAllAudioBase64});var $l=c(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.getAllAudioBase64=Re.getAudioBase64=Re.getAllAudioUrls=Re.getAudioUrl=void 0;var jl=dh();Object.defineProperty(Re,"getAudioUrl",{enumerable:!0,get:function(){return jl.getAudioUrl}});Object.defineProperty(Re,"getAllAudioUrls",{enumerable:!0,get:function(){return jl.getAllAudioUrls}});var zl=Kl();Object.defineProperty(Re,"getAudioBase64",{enumerable:!0,get:function(){return zl.getAudioBase64}});Object.defineProperty(Re,"getAllAudioBase64",{enumerable:!0,get:function(){return zl.getAllAudioBase64}})});var tu=c(GA=>{"use strict";var bm=GA&&GA.__createBinding||(Object.create?function(A,e,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(A,r,s)}:function(A,e,t,r){r===void 0&&(r=t),A[r]=e[t]}),Sm=GA&&GA.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:!0,value:e})}:function(A,e){A.default=e}),Au=GA&&GA.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)t!=="default"&&Object.prototype.hasOwnProperty.call(A,t)&&bm(e,A,t);return Sm(e,A),e};Object.defineProperty(GA,"__esModule",{value:!0});GA.req=GA.json=GA.toBuffer=void 0;var Um=Au(require("http")),Lm=Au(require("https"));async function eu(A){let e=0,t=[];for await(let r of A)e+=r.length,t.push(r);return Buffer.concat(t,e)}GA.toBuffer=eu;async function Mm(A){let t=(await eu(A)).toString("utf8");try{return JSON.parse(t)}catch(r){let s=r;throw s.message+=` (input: ${t})`,s}}GA.json=Mm;function Ym(A,e={}){let r=((typeof A=="string"?A:A.href).startsWith("https:")?Lm:Um).request(A,e),s=new Promise((n,i)=>{r.once("response",n).once("error",i).end()});return r.then=s.then.bind(s),r}GA.req=Ym});var iu=c(KA=>{"use strict";var su=KA&&KA.__createBinding||(Object.create?function(A,e,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(A,r,s)}:function(A,e,t,r){r===void 0&&(r=t),A[r]=e[t]}),Jm=KA&&KA.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:!0,value:e})}:function(A,e){A.default=e}),nu=KA&&KA.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)t!=="default"&&Object.prototype.hasOwnProperty.call(A,t)&&su(e,A,t);return Jm(e,A),e},Gm=KA&&KA.__exportStar||function(A,e){for(var t in A)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&su(e,A,t)};Object.defineProperty(KA,"__esModule",{value:!0});KA.Agent=void 0;var Tm=nu(require("net")),ru=nu(require("http")),vm=require("https");Gm(tu(),KA);var ke=Symbol("AgentBaseInternalState"),zQ=class extends ru.Agent{constructor(e){super(e),this[ke]={}}isSecureEndpoint(e){if(e){if(typeof e.secureEndpoint=="boolean")return e.secureEndpoint;if(typeof e.protocol=="string")return e.protocol==="https:"}let{stack:t}=new Error;return typeof t!="string"?!1:t.split(` -`).some(r=>r.indexOf("(https.js:")!==-1||r.indexOf("node:https:")!==-1)}incrementSockets(e){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[e]||(this.sockets[e]=[]);let t=new Tm.Socket({writable:!1});return this.sockets[e].push(t),this.totalSocketCount++,t}decrementSockets(e,t){if(!this.sockets[e]||t===null)return;let r=this.sockets[e],s=r.indexOf(t);s!==-1&&(r.splice(s,1),this.totalSocketCount--,r.length===0&&delete this.sockets[e])}getName(e){return(typeof e.secureEndpoint=="boolean"?e.secureEndpoint:this.isSecureEndpoint(e))?vm.Agent.prototype.getName.call(this,e):super.getName(e)}createSocket(e,t,r){let s={...t,secureEndpoint:this.isSecureEndpoint(t)},n=this.getName(s),i=this.incrementSockets(n);Promise.resolve().then(()=>this.connect(e,s)).then(o=>{if(this.decrementSockets(n,i),o instanceof ru.Agent)try{return o.addRequest(e,s)}catch(g){return r(g)}this[ke].currentSocket=o,super.createSocket(e,t,r)},o=>{this.decrementSockets(n,i),r(o)})}createConnection(){let e=this[ke].currentSocket;if(this[ke].currentSocket=void 0,!e)throw new Error("No socket was returned in the `connect()` function");return e}get defaultPort(){return this[ke].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(e){this[ke]&&(this[ke].defaultPort=e)}get protocol(){return this[ke].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(e){this[ke]&&(this[ke].protocol=e)}};KA.Agent=zQ});var ou=c(Ir=>{"use strict";var Hm=Ir&&Ir.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(Ir,"__esModule",{value:!0});Ir.parseProxyResponse=void 0;var Vm=Hm(Ai()),oi=(0,Vm.default)("https-proxy-agent:parse-proxy-response");function xm(A){return new Promise((e,t)=>{let r=0,s=[];function n(){let Q=A.read();Q?a(Q):A.once("readable",n)}function i(){A.removeListener("end",o),A.removeListener("error",g),A.removeListener("readable",n)}function o(){i(),oi("onend"),t(new Error("Proxy connection ended before receiving CONNECT response"))}function g(Q){i(),oi("onerror %o",Q),t(Q)}function a(Q){s.push(Q),r+=Q.length;let E=Buffer.concat(s,r),C=E.indexOf(`\r -\r -`);if(C===-1){oi("have not received end of HTTP headers yet..."),n();return}let B=E.slice(0,C).toString("ascii").split(`\r -`),I=B.shift();if(!I)return A.destroy(),t(new Error("No header received from proxy CONNECT response"));let h=I.split(" "),l=+h[1],u=h.slice(2).join(" "),F={};for(let w of B){if(!w)continue;let k=w.indexOf(":");if(k===-1)return A.destroy(),t(new Error(`Invalid header from proxy CONNECT response: "${w}"`));let T=w.slice(0,k).toLowerCase(),O=w.slice(k+1).trimStart(),V=F[T];typeof V=="string"?F[T]=[V,O]:Array.isArray(V)?V.push(O):F[T]=O}oi("got proxy server response: %o %o",I,F),i(),e({connect:{statusCode:l,statusText:u,headers:F},buffered:E})}A.on("error",g),A.on("end",o),n()})}Ir.parseProxyResponse=xm});var Bu=c(oe=>{"use strict";var qm=oe&&oe.__createBinding||(Object.create?function(A,e,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(A,r,s)}:function(A,e,t,r){r===void 0&&(r=t),A[r]=e[t]}),Wm=oe&&oe.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:!0,value:e})}:function(A,e){A.default=e}),au=oe&&oe.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)t!=="default"&&Object.prototype.hasOwnProperty.call(A,t)&&qm(e,A,t);return Wm(e,A),e},Cu=oe&&oe.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(oe,"__esModule",{value:!0});oe.HttpsProxyAgent=void 0;var gi=au(require("net")),gu=au(require("tls")),Om=Cu(require("assert")),Pm=Cu(Ai()),_m=iu(),Zm=require("url"),Xm=ou(),Qs=(0,Pm.default)("https-proxy-agent"),Qu=A=>A.servername===void 0&&A.host&&!gi.isIP(A.host)?{...A,servername:A.host}:A,Qi=class extends _m.Agent{constructor(e,t){super(t),this.options={path:void 0},this.proxy=typeof e=="string"?new Zm.URL(e):e,this.proxyHeaders=t?.headers??{},Qs("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let r=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),s=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...t?Eu(t,"headers"):null,host:r,port:s}}async connect(e,t){let{proxy:r}=this;if(!t.host)throw new TypeError('No "host" provided');let s;r.protocol==="https:"?(Qs("Creating `tls.Socket`: %o",this.connectOpts),s=gu.connect(Qu(this.connectOpts))):(Qs("Creating `net.Socket`: %o",this.connectOpts),s=gi.connect(this.connectOpts));let n=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},i=gi.isIPv6(t.host)?`[${t.host}]`:t.host,o=`CONNECT ${i}:${t.port} HTTP/1.1\r -`;if(r.username||r.password){let C=`${decodeURIComponent(r.username)}:${decodeURIComponent(r.password)}`;n["Proxy-Authorization"]=`Basic ${Buffer.from(C).toString("base64")}`}n.Host=`${i}:${t.port}`,n["Proxy-Connection"]||(n["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let C of Object.keys(n))o+=`${C}: ${n[C]}\r -`;let g=(0,Xm.parseProxyResponse)(s);s.write(`${o}\r -`);let{connect:a,buffered:Q}=await g;if(e.emit("proxyConnect",a),this.emit("proxyConnect",a,e),a.statusCode===200)return e.once("socket",Km),t.secureEndpoint?(Qs("Upgrading socket connection to TLS"),gu.connect({...Eu(Qu(t),"host","path","port"),socket:s})):s;s.destroy();let E=new gi.Socket({writable:!1});return E.readable=!0,e.once("socket",C=>{Qs("Replaying proxy buffer for failed request"),(0,Om.default)(C.listenerCount("data")>0),C.push(Q),C.push(null)}),E}};Qi.protocols=["http","https"];oe.HttpsProxyAgent=Qi;function Km(A){A.resume()}function Eu(A,...e){let t={},r;for(r in A)e.includes(r)||(t[r]=A[r]);return t}});var Ab={};wu(Ab,{default:()=>hu});module.exports=Du(Ab);var ai=require("@raycast/api");var $e=require("@raycast/api");var EQ=cr(require("querystring")),es=cr(oQ());var As={auto:"Auto-Detect",ab:"Abkhaz",ace:"Acehnese",ach:"Acholi",aa:"Afar",af:"Afrikaans",sq:"Albanian",alz:"Alur",am:"Amharic",ar:"Arabic",hy:"Armenian",as:"Assamese",av:"Avar",awa:"Awadhi",ay:"Aymara",az:"Azerbaijani",ban:"Balinese",bal:"Baluchi",bm:"Bambara",bci:"Baoul\xE9",ba:"Bashkir",eu:"Basque",btx:"Batak Karo",bts:"Batak Simalungun",bbc:"Batak Toba",be:"Belarusian",bem:"Bemba",bn:"Bengali",bew:"Betawi",bho:"Bhojpuri",bik:"Bikol",bs:"Bosnian",br:"Breton",bg:"Bulgarian",bua:"Buryat",yue:"Cantonese",ca:"Catalan",ceb:"Cebuano",ch:"Chamorro",ce:"Chechen",ny:"Chichewa","zh-CN":"Chinese (Simplified)","zh-TW":"Chinese (Traditional)",chk:"Chuukese",cv:"Chuvash",co:"Corsican",crh:"Crimean Tatar (Cyrillic)","crh-Latn":"Crimean Tatar (Latin)",hr:"Croatian",cs:"Czech",da:"Danish","fa-AF":"Dari",dv:"Dhivehi",din:"Dinka",doi:"Dogri",dov:"Dombe",nl:"Dutch",dyu:"Dyula",dz:"Dzongkha",en:"English",eo:"Esperanto",et:"Estonian",ee:"Ewe",fo:"Faroese",fj:"Fijian",tl:"Filipino",fi:"Finnish",fon:"Fon",fr:"French","fr-CA":"French (Canada)",fy:"Frisian",fur:"Friulian",ff:"Fulani",gaa:"Ga",gl:"Galician",ka:"Georgian",de:"German",el:"Greek",gn:"Guarani",gu:"Gujarati",ht:"Haitian Creole",cnh:"Hakha Chin",ha:"Hausa",haw:"Hawaiian",iw:"Hebrew",hil:"Hiligaynon",hi:"Hindi",hmn:"Hmong",hu:"Hungarian",hrx:"Hunsrik",iba:"Iban",is:"Icelandic",ig:"Igbo",ilo:"Ilocano",id:"Indonesian","iu-Latn":"Inuktut (Latin)",iu:"Inuktut (Syllabics)",ga:"Irish",it:"Italian",jam:"Jamaican Patois",ja:"Japanese",jv:"Javanese",kac:"Jingpo",kl:"Kalaallisut",kn:"Kannada",kr:"Kanuri",pam:"Kapampangan",kk:"Kazakh",kha:"Khasi",km:"Khmer",cgg:"Kiga",kg:"Kikongo",rw:"Kinyarwanda",ktu:"Kituba",trp:"Kokborok",kv:"Komi",gom:"Konkani",ko:"Korean",kri:"Krio",ku:"Kurdish (Kurmanji)",ckb:"Kurdish (Sorani)",ky:"Kyrgyz",lo:"Lao",ltg:"Latgalian",la:"Latin",lv:"Latvian",lij:"Ligurian",li:"Limburgish",ln:"Lingala",lt:"Lithuanian",lmo:"Lombard",lg:"Luganda",luo:"Luo",lb:"Luxembourgish",mk:"Macedonian",mad:"Madurese",mai:"Maithili",mak:"Makassar",mg:"Malagasy",ms:"Malay","ms-Arab":"Malay (Jawi)",ml:"Malayalam",mt:"Maltese",mam:"Mam",gv:"Manx",mi:"Maori",mr:"Marathi",mh:"Marshallese",mwr:"Marwadi",mfe:"Mauritian Creole",chm:"Meadow Mari","mni-Mtei":"Meiteilon (Manipuri)",min:"Minang",lus:"Mizo",mn:"Mongolian",my:"Myanmar (Burmese)","bm-Nkoo":"NKo",nhe:"Nahuatl (Eastern Huasteca)","ndc-ZW":"Ndau",nr:"Ndebele (South)",new:"Nepalbhasa (Newari)",ne:"Nepali",no:"Norwegian",nus:"Nuer",oc:"Occitan",or:"Odia (Oriya)",om:"Oromo",os:"Ossetian",pag:"Pangasinan",pap:"Papiamento",ps:"Pashto",fa:"Persian",pl:"Polish",pt:"Portuguese (Brazil)","pt-PT":"Portuguese (Portugal)",pa:"Punjabi (Gurmukhi)","pa-Arab":"Punjabi (Shahmukhi)",qu:"Quechua",kek:"Q\u02BCeqchi\u02BC",rom:"Romani",ro:"Romanian",rn:"Rundi",ru:"Russian",se:"Sami (North)",sm:"Samoan",sg:"Sango",sa:"Sanskrit","sat-Latn":"Santali (Latin)",sat:"Santali (Ol Chiki)",gd:"Scots Gaelic",nso:"Sepedi",sr:"Serbian",st:"Sesotho",crs:"Seychellois Creole",shn:"Shan",sn:"Shona",scn:"Sicilian",szl:"Silesian",sd:"Sindhi",si:"Sinhala",sk:"Slovak",sl:"Slovenian",so:"Somali",es:"Spanish",su:"Sundanese",sus:"Susu",sw:"Swahili",ss:"Swati",sv:"Swedish",ty:"Tahitian",tg:"Tajik","ber-Latn":"Tamazight",ber:"Tamazight (Tifinagh)",ta:"Tamil",tt:"Tatar",te:"Telugu",tet:"Tetum",th:"Thai",bo:"Tibetan",ti:"Tigrinya",tiv:"Tiv",tpi:"Tok Pisin",to:"Tongan",lua:"Tshiluba",ts:"Tsonga",tn:"Tswana",tcy:"Tulu",tum:"Tumbuka",tr:"Turkish",tk:"Turkmen",tyv:"Tuvan",ak:"Twi",udm:"Udmurt",uk:"Ukrainian",ur:"Urdu",ug:"Uyghur",uz:"Uzbek",ve:"Venda",vec:"Venetian",vi:"Vietnamese",war:"Waray",cy:"Welsh",wo:"Wolof",xh:"Xhosa",sah:"Yakut",yi:"Yiddish",yo:"Yoruba",yua:"Yucatec Maya",zap:"Zapotec",zu:"Zulu"};function Vn(A){return A?A in As||(A=A.toLowerCase(),A in As)?A:Object.keys(As).filter(t=>typeof As[t]!="string"?!1:As[t].toLowerCase()===A)[0]||void 0:void 0}function Bh(A){return!!Vn(A)}var ch=cr(oQ());function xF(A){let e;if(gQ!==null)e=gQ;else{e=xn("T");let g=xn("K");e=[e(),e()],e[1]=g(),e=(gQ=QQ[e.join(g())]||"")||""}let t=xn("t"),r=xn("k");t=[t(),t()],t[1]=r(),r="&"+t.join("")+"=",t=e.split("."),e=Number(t[0])||0;for(var s=[],n=0,i=0;i<A.length;i++){let g=A.charCodeAt(i);128>g?s[n++]=g:(2048>g?s[n++]=g>>6|192:((g&64512)==55296&&i+1<A.length&&(A.charCodeAt(i+1)&64512)==56320?(g=65536+((g&1023)<<10)+(A.charCodeAt(++i)&1023),s[n++]=g>>18|240,s[n++]=g>>12&63|128):s[n++]=g>>12|224,s[n++]=g>>6&63|128),s[n++]=g&63|128)}let o=Number(e);for(let g=0;g<s.length;g++)A+=s[g],o=Ih(o,"+-a^+6");return o=Ih(o,"+-3^+b+-f"),o^=Number(t[1])||0,0>o&&(o=(o&2147483647)+2147483648),o%=1e6,r+(A.toString()+"."+(o^e))}var gQ=null,xn=function(A){return function(){return A}},Ih=function(A,e){for(let t=0;t<e.length-2;t+=3){let r=e.charAt(t+2),s=r>="a"?r.charCodeAt(0)-87:Number(r);s=e.charAt(t+1)=="+"?A>>>s:A<<s,A=e.charAt(t)=="+"?A+s&4294967295:A^s}return A},hh=new Map,QQ={TKK:hh.get("TKK")||"0"};async function qF(){let A=Math.floor(Date.now()/36e5);if(Number(QQ.TKK.split(".")[0])!==A){let r=(await(await(0,ch.request)("https://translate.google.com")).body.text()).match(/tkk:'\d+.\d+'/g);if(r&&r.length>0){let s=r[0].split(":")[1].replace(/'/g,"");QQ.TKK=s,hh.set("TKK",s)}}}async function lh(A){try{await qF();let e=xF(A);return e=e.replace("&tk=",""),{name:"tk",value:e}}catch(e){return e}}async function uh(A,e){typeof e!="object"&&(e={}),A=String(A);let t=null;if([e.from,e.to].forEach(C=>{C&&!Bh(C)&&(t=new Error,t.message=`The language '${C}' is not supported.`)}),t)throw t;Object.prototype.hasOwnProperty.call(e,"from")||(e.from="auto"),Object.prototype.hasOwnProperty.call(e,"to")||(e.to="en"),e.raw=!!e.raw,e.from=Vn(e.from),e.to=Vn(e.to);let r=await lh(A),s="https://translate.google.com/translate_a/single",n={client:"gtx",sl:e.from,tl:e.to,hl:e.to,dt:["at","bd","ex","ld","md","qca","rw","rm","ss","t"],ie:"UTF-8",oe:"UTF-8",otf:1,ssel:0,tsel:0,kc:7,q:A,[r.name]:r.value},i=`${s}?${EQ.default.stringify(n)}`,o,g=i;i.length>2048?(delete n.q,g=`${s}?${EQ.default.stringify(n)}`,o={method:"POST",body:new URLSearchParams({q:A}).toString(),headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"}},e.proxy&&(o.dispatcher=new es.ProxyAgent(e.proxy))):e.proxy&&(o={dispatcher:new es.ProxyAgent(e.proxy)});let Q=await(await(0,es.request)(g,o)).body.json(),E={text:"",from:{language:{didYouMean:!1,iso:""},text:{autoCorrected:!1,value:"",didYouMean:!1}},raw:""};if(e.raw&&(E.raw=Q),Q[0].forEach(C=>{C[0]&&(E.text+=C[0])}),Q[2]===Q[8][0][0]?E.from.language.iso=Q[2]:(E.from.language.didYouMean=!0,E.from.language.iso=Q[8][0][0]),Q[7]&&Q[7][0]){let C=Q[7][0];C=C.replace(/<b><i>/g,"["),C=C.replace(/<\/i><\/b>/g,"]"),E.from.text.value=C,Q[7][5]===!0?E.from.text.autoCorrected=!0:E.from.text.didYouMean=!0}return E}var jm=cr($l());var zm=cr(Bu());var Ei=class extends Error{},$m=A=>A?.[0]?.[1]?.[2];async function Iu(A,e){try{if(!A)return{originalText:A,translatedText:"",pronunciationText:"",langFrom:e.langFrom,langTo:e.langTo[0]};let t=await uh(A,{from:e.langFrom,to:e.langTo[0],raw:!0,proxy:e.proxy});return{originalText:A,translatedText:t.text,pronunciationText:$m(t?.raw),langFrom:t?.from?.language?.iso,langTo:e.langTo[0]}}catch(t){if(t instanceof Error){if(t.name==="TooManyRequestsError"){let s=new Ei;throw s.name="Too many requests",s.message="please try again later",s}let r=new Ei;throw r.name=t.name,r.message=t.message,r}throw t}}async function cu(A){try{let e=(0,$e.getPreferenceValues)(),t=e.lang2,r=e.lang1,s=e.proxy,n=await(0,$e.getSelectedText)().catch(o=>(console.error("Error getting selected text:",o),""));if(!n||n.trim().length===0){await(0,$e.showHUD)("No text selected. Please select text to translate.");return}await(0,$e.showHUD)("Translating...");let i=await Iu(n,{langFrom:r,langTo:[t],proxy:s});if(i&&i.translatedText){let o=i.translatedText;await A(o)}else throw new Error("Translation not found in response")}catch(e){console.error("Translation error:",e),await(0,$e.showHUD)("Translation failed. Please try again.")}}async function hu(){await cu(async A=>{await ai.Clipboard.copy(A),await(0,ai.showHUD)("\u2713 Copied To Clipboard")})} -/*! Bundled license information: - -undici/lib/fetch/body.js: - (*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *) - -undici/lib/websocket/frame.js: - (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *) -*/ diff --git a/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-copy.js.map b/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-copy.js.map @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../node_modules/undici/lib/core/symbols.js", "../node_modules/undici/lib/core/errors.js", "../node_modules/undici/lib/core/util.js", "../node_modules/undici/lib/timers.js", "../node_modules/busboy/lib/utils.js", "../node_modules/streamsearch/lib/sbmh.js", "../node_modules/busboy/lib/types/multipart.js", "../node_modules/busboy/lib/types/urlencoded.js", "../node_modules/busboy/lib/index.js", "../node_modules/undici/lib/fetch/constants.js", "../node_modules/undici/lib/fetch/global.js", "../node_modules/undici/lib/fetch/util.js", "../node_modules/undici/lib/fetch/symbols.js", "../node_modules/undici/lib/fetch/webidl.js", "../node_modules/undici/lib/fetch/dataURL.js", "../node_modules/undici/lib/fetch/file.js", "../node_modules/undici/lib/fetch/formdata.js", "../node_modules/undici/lib/fetch/body.js", "../node_modules/undici/lib/core/request.js", "../node_modules/undici/lib/dispatcher.js", "../node_modules/undici/lib/dispatcher-base.js", "../node_modules/undici/lib/core/connect.js", "../node_modules/undici/src/llhttp/utils.ts", "../node_modules/undici/src/llhttp/constants.ts", "../node_modules/undici/lib/handler/RedirectHandler.js", "../node_modules/undici/lib/interceptor/redirectInterceptor.js", "../node_modules/undici/lib/llhttp/llhttp-wasm.js", "../node_modules/undici/lib/llhttp/llhttp_simd-wasm.js", "../node_modules/undici/lib/client.js", "../node_modules/undici/lib/node/fixed-queue.js", "../node_modules/undici/lib/pool-stats.js", "../node_modules/undici/lib/pool-base.js", "../node_modules/undici/lib/pool.js", "../node_modules/undici/lib/balanced-pool.js", "../node_modules/undici/lib/compat/dispatcher-weakref.js", "../node_modules/undici/lib/agent.js", "../node_modules/undici/lib/api/readable.js", "../node_modules/undici/lib/api/util.js", "../node_modules/undici/lib/api/abort-signal.js", "../node_modules/undici/lib/api/api-request.js", "../node_modules/undici/lib/api/api-stream.js", "../node_modules/undici/lib/api/api-pipeline.js", "../node_modules/undici/lib/api/api-upgrade.js", "../node_modules/undici/lib/api/api-connect.js", "../node_modules/undici/lib/api/index.js", "../node_modules/undici/lib/mock/mock-errors.js", "../node_modules/undici/lib/mock/mock-symbols.js", "../node_modules/undici/lib/mock/mock-utils.js", "../node_modules/undici/lib/mock/mock-interceptor.js", "../node_modules/undici/lib/mock/mock-client.js", "../node_modules/undici/lib/mock/mock-pool.js", "../node_modules/undici/lib/mock/pluralizer.js", "../node_modules/undici/lib/mock/pending-interceptors-formatter.js", "../node_modules/undici/lib/mock/mock-agent.js", "../node_modules/undici/lib/proxy-agent.js", "../node_modules/undici/lib/global.js", "../node_modules/undici/lib/handler/DecoratorHandler.js", "../node_modules/undici/lib/fetch/headers.js", "../node_modules/undici/lib/fetch/response.js", "../node_modules/undici/lib/fetch/request.js", "../node_modules/undici/lib/fetch/index.js", "../node_modules/undici/lib/fileapi/symbols.js", "../node_modules/undici/lib/fileapi/progressevent.js", "../node_modules/undici/lib/fileapi/encoding.js", "../node_modules/undici/lib/fileapi/util.js", "../node_modules/undici/lib/fileapi/filereader.js", "../node_modules/undici/lib/cache/symbols.js", "../node_modules/undici/lib/cache/util.js", "../node_modules/undici/lib/cache/cache.js", "../node_modules/undici/lib/cache/cachestorage.js", "../node_modules/undici/lib/cookies/constants.js", "../node_modules/undici/lib/cookies/util.js", "../node_modules/undici/lib/cookies/parse.js", "../node_modules/undici/lib/cookies/index.js", "../node_modules/undici/lib/websocket/constants.js", "../node_modules/undici/lib/websocket/symbols.js", "../node_modules/undici/lib/websocket/events.js", "../node_modules/undici/lib/websocket/util.js", "../node_modules/undici/lib/websocket/connection.js", "../node_modules/undici/lib/websocket/frame.js", "../node_modules/undici/lib/websocket/receiver.js", "../node_modules/undici/lib/websocket/websocket.js", "../node_modules/undici/index.js", "../node_modules/google-tts-api/src/assertInputTypes.ts", "../node_modules/google-tts-api/src/splitLongText.ts", "../node_modules/google-tts-api/src/getAudioUrl.ts", "../node_modules/axios/lib/helpers/bind.js", "../node_modules/axios/lib/utils.js", "../node_modules/axios/lib/helpers/buildURL.js", "../node_modules/axios/lib/core/InterceptorManager.js", "../node_modules/axios/lib/helpers/normalizeHeaderName.js", "../node_modules/axios/lib/core/enhanceError.js", "../node_modules/axios/lib/core/createError.js", "../node_modules/axios/lib/core/settle.js", "../node_modules/axios/lib/helpers/cookies.js", "../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../node_modules/axios/lib/helpers/combineURLs.js", "../node_modules/axios/lib/core/buildFullPath.js", "../node_modules/axios/lib/helpers/parseHeaders.js", "../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../node_modules/axios/lib/adapters/xhr.js", "../node_modules/ms/index.js", "../node_modules/debug/src/common.js", "../node_modules/debug/src/browser.js", "../node_modules/has-flag/index.js", "../node_modules/supports-color/index.js", "../node_modules/debug/src/node.js", "../node_modules/debug/src/index.js", "../node_modules/follow-redirects/debug.js", "../node_modules/follow-redirects/index.js", "../node_modules/axios/package.json", "../node_modules/axios/lib/adapters/http.js", "../node_modules/axios/lib/defaults.js", "../node_modules/axios/lib/core/transformData.js", "../node_modules/axios/lib/cancel/isCancel.js", "../node_modules/axios/lib/core/dispatchRequest.js", "../node_modules/axios/lib/core/mergeConfig.js", "../node_modules/axios/lib/helpers/validator.js", "../node_modules/axios/lib/core/Axios.js", "../node_modules/axios/lib/cancel/Cancel.js", "../node_modules/axios/lib/cancel/CancelToken.js", "../node_modules/axios/lib/helpers/spread.js", "../node_modules/axios/lib/helpers/isAxiosError.js", "../node_modules/axios/lib/axios.js", "../node_modules/axios/index.js", "../node_modules/google-tts-api/src/getAudioBase64.ts", "../node_modules/google-tts-api/src/index.ts", "../node_modules/agent-base/src/helpers.ts", "../node_modules/agent-base/src/index.ts", "../node_modules/https-proxy-agent/src/parse-proxy-response.ts", "../node_modules/https-proxy-agent/src/index.ts", "../src/instant-translate-copy.tsx", "../src/instant-translate.tsx", "../vendor/@iamtraction-translate/src/index.ts", "../vendor/@iamtraction-translate/src/languages.ts", "../vendor/@iamtraction-translate/src/tokenGenerator.ts", "../src/simple-translate.ts"], - "sourcesContent": ["module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size')\n}\n", "'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseExceededMaxSizeError)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\n\nconst [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v))\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n return url\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.')\n }\n\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n if (!(url instanceof URL)) {\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substr(1, idx - 1)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substr(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (!isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\nfunction parseHeaders (headers, obj = {}) {\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1]\n } else {\n obj[key] = headers[i + 1].toString('utf8')\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString('utf8'))\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if ('content-length' in obj && 'content-disposition' in obj) {\n obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1')\n }\n\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n const ret = []\n let hasContentLength = false\n let contentDispositionIdx = -1\n\n for (let n = 0; n < headers.length; n += 2) {\n const key = headers[n + 0].toString()\n const val = headers[n + 1].toString('utf8')\n\n if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n ret.push(key, val)\n hasContentLength = true\n } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n contentDispositionIdx = ret.push(key, val) - 1\n } else {\n ret.push(key, val)\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if (hasContentLength && contentDispositionIdx !== -1) {\n ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1')\n }\n\n return ret\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n // https://github.com/whatwg/streams/pull/1083\n return ReadableStream.from(iterable)\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.append === 'function' &&\n typeof object.delete === 'function' &&\n typeof object.get === 'function' &&\n typeof object.getAll === 'function' &&\n typeof object.has === 'function' &&\n typeof object.set === 'function' &&\n object[Symbol.toStringTag] === 'FormData'\n )\n}\n\nfunction throwIfAborted (signal) {\n if (!signal) { return }\n if (typeof signal.throwIfAborted === 'function') {\n signal.throwIfAborted()\n } else {\n if (signal.aborted) {\n // DOMException not available < v17.0.0\n const err = new Error('The operation was aborted')\n err.name = 'AbortError'\n throw err\n }\n }\n}\n\nlet events\nfunction addAbortListener (signal, listener) {\n if (typeof Symbol.dispose === 'symbol') {\n if (!events) {\n events = require('events')\n }\n if (typeof events.addAbortListener === 'function' && 'aborted' in signal) {\n return events.addAbortListener(signal, listener)\n }\n }\n if ('addEventListener' in signal) {\n signal.addEventListener('abort', listener, { once: true })\n return () => signal.removeEventListener('abort', listener)\n }\n signal.addListener('abort', listener)\n return () => signal.removeListener('abort', listener)\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed\n\n/**\n * @param {string} val\n */\nfunction toUSVString (val) {\n if (hasToWellFormed) {\n return `${val}`.toWellFormed()\n } else if (nodeUtil.toUSVString) {\n return nodeUtil.toUSVString(val)\n }\n\n return `${val}`\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString,\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL,\n throwIfAborted,\n addAbortListener,\n nodeMajor,\n nodeMinor,\n nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13)\n}\n", "'use strict'\n\nlet fastNow = Date.now()\nlet fastNowTimeout\n\nconst fastTimers = []\n\nfunction onTimeout () {\n fastNow = Date.now()\n\n let len = fastTimers.length\n let idx = 0\n while (idx < len) {\n const timer = fastTimers[idx]\n\n if (timer.state === 0) {\n timer.state = fastNow + timer.delay\n } else if (timer.state > 0 && fastNow >= timer.state) {\n timer.state = -1\n timer.callback(timer.opaque)\n }\n\n if (timer.state === -1) {\n timer.state = -2\n if (idx !== len - 1) {\n fastTimers[idx] = fastTimers.pop()\n } else {\n fastTimers.pop()\n }\n len -= 1\n } else {\n idx += 1\n }\n }\n\n if (fastTimers.length > 0) {\n refreshTimeout()\n }\n}\n\nfunction refreshTimeout () {\n if (fastNowTimeout && fastNowTimeout.refresh) {\n fastNowTimeout.refresh()\n } else {\n clearTimeout(fastNowTimeout)\n fastNowTimeout = setTimeout(onTimeout, 1e3)\n if (fastNowTimeout.unref) {\n fastNowTimeout.unref()\n }\n }\n}\n\nclass Timeout {\n constructor (callback, delay, opaque) {\n this.callback = callback\n this.delay = delay\n this.opaque = opaque\n\n // -2 not in timer list\n // -1 in timer list but inactive\n // 0 in timer list waiting for time\n // > 0 in timer list waiting for time to expire\n this.state = -2\n\n this.refresh()\n }\n\n refresh () {\n if (this.state === -2) {\n fastTimers.push(this)\n if (!fastNowTimeout || fastTimers.length === 1) {\n refreshTimeout()\n }\n }\n\n this.state = 0\n }\n\n clear () {\n this.state = -1\n }\n}\n\nmodule.exports = {\n setTimeout (callback, delay, opaque) {\n return delay < 1e3\n ? setTimeout(callback, delay, opaque)\n : new Timeout(callback, delay, opaque)\n },\n clearTimeout (timeout) {\n if (timeout instanceof Timeout) {\n timeout.clear()\n } else {\n clearTimeout(timeout)\n }\n }\n}\n", "'use strict';\n\nfunction parseContentType(str) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n // Parse type\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 47/* '/' */ || i === 0)\n return;\n break;\n }\n }\n // Check for type without subtype\n if (i === str.length)\n return;\n\n const type = str.slice(0, i).toLowerCase();\n\n // Parse subtype\n const subtypeStart = ++i;\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n if (parseContentTypeParams(str, i, params) === undefined)\n return;\n break;\n }\n }\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n const subtype = str.slice(subtypeStart, i).toLowerCase();\n\n return { type, subtype, params };\n}\n\nfunction parseContentTypeParams(str, i, params) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 61/* '=' */)\n return;\n break;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n name = str.slice(nameStart, i);\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction parseDisposition(str, defDecoder) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (parseDispositionParams(str, i, params, defDecoder) === undefined)\n return;\n break;\n }\n }\n\n const type = str.slice(0, i).toLowerCase();\n\n return { type, params };\n}\n\nfunction parseDispositionParams(str, i, params, defDecoder) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code === 61/* '=' */)\n break;\n return;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n let charset;\n //~ let lang;\n name = str.slice(nameStart, i);\n if (name.charCodeAt(name.length - 1) === 42/* '*' */) {\n // Extended value\n\n const charsetStart = ++i;\n // Parse charset name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (CHARSET[code] !== 1) {\n if (code !== 39/* '\\'' */)\n return;\n break;\n }\n }\n\n // Incomplete charset (malformed)\n if (i === str.length)\n return;\n\n charset = str.slice(charsetStart, i);\n ++i; // Skip over the '\\''\n\n //~ const langStart = ++i;\n // Parse language name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 39/* '\\'' */)\n break;\n }\n\n // Incomplete language (malformed)\n if (i === str.length)\n return;\n\n //~ lang = str.slice(langStart, i);\n ++i; // Skip over the '\\''\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n valueStart = i;\n\n let encode = 0;\n // Parse value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (EXTENDED_VALUE[code] !== 1) {\n if (code === 37/* '%' */) {\n let hexUpper;\n let hexLower;\n if (i + 2 < str.length\n && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1\n && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) {\n const byteVal = (hexUpper << 4) + hexLower;\n value += str.slice(valueStart, i);\n value += String.fromCharCode(byteVal);\n i += 2;\n valueStart = i + 1;\n if (byteVal >= 128)\n encode = 2;\n else if (encode === 0)\n encode = 1;\n continue;\n }\n // '%' disallowed in non-percent encoded contexts (malformed)\n return;\n }\n break;\n }\n }\n\n value += str.slice(valueStart, i);\n value = convertToUTF8(value, charset, encode);\n if (value === undefined)\n return;\n } else {\n // Non-extended value\n\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n value = defDecoder(value, 2);\n if (value === undefined)\n return;\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction getDecoder(charset) {\n let lc;\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8;\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1;\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le;\n case 'base64':\n return decoders.base64;\n default:\n if (lc === undefined) {\n lc = true;\n charset = charset.toLowerCase();\n continue;\n }\n return decoders.other.bind(charset);\n }\n }\n}\n\nconst decoders = {\n utf8: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string') {\n // If `data` never had any percent-encoded bytes or never had any that\n // were outside of the ASCII range, then we can safely just return the\n // input since UTF-8 is ASCII compatible\n if (hint < 2)\n return data;\n\n data = Buffer.from(data, 'latin1');\n }\n return data.utf8Slice(0, data.length);\n },\n\n latin1: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n return data;\n return data.latin1Slice(0, data.length);\n },\n\n utf16le: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.ucs2Slice(0, data.length);\n },\n\n base64: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.base64Slice(0, data.length);\n },\n\n other: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n try {\n const decoder = new TextDecoder(this);\n return decoder.decode(data);\n } catch {}\n },\n};\n\nfunction convertToUTF8(data, charset, hint) {\n const decode = getDecoder(charset);\n if (decode)\n return decode(data, hint);\n}\n\nfunction basename(path) {\n if (typeof path !== 'string')\n return '';\n for (let i = path.length - 1; i >= 0; --i) {\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1);\n return (path === '..' || path === '.' ? '' : path);\n }\n }\n return (path === '..' || path === '.' ? '' : path);\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst QDTEXT = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nconst CHARSET = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst EXTENDED_VALUE = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n};\n", "'use strict';\n/*\n Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n*/\nfunction memcmp(buf1, pos1, buf2, pos2, num) {\n for (let i = 0; i < num; ++i) {\n if (buf1[pos1 + i] !== buf2[pos2 + i])\n return false;\n }\n return true;\n}\n\nclass SBMH {\n constructor(needle, cb) {\n if (typeof cb !== 'function')\n throw new Error('Missing match callback');\n\n if (typeof needle === 'string')\n needle = Buffer.from(needle);\n else if (!Buffer.isBuffer(needle))\n throw new Error(`Expected Buffer for needle, got ${typeof needle}`);\n\n const needleLen = needle.length;\n\n this.maxMatches = Infinity;\n this.matches = 0;\n\n this._cb = cb;\n this._lookbehindSize = 0;\n this._needle = needle;\n this._bufPos = 0;\n\n this._lookbehind = Buffer.allocUnsafe(needleLen);\n\n // Initialize occurrence table.\n this._occ = [\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen\n ];\n\n // Populate occurrence table with analysis of the needle, ignoring the last\n // letter.\n if (needleLen > 1) {\n for (let i = 0; i < needleLen - 1; ++i)\n this._occ[needle[i]] = needleLen - 1 - i;\n }\n }\n\n reset() {\n this.matches = 0;\n this._lookbehindSize = 0;\n this._bufPos = 0;\n }\n\n push(chunk, pos) {\n let result;\n if (!Buffer.isBuffer(chunk))\n chunk = Buffer.from(chunk, 'latin1');\n const chunkLen = chunk.length;\n this._bufPos = pos || 0;\n while (result !== chunkLen && this.matches < this.maxMatches)\n result = feed(this, chunk);\n return result;\n }\n\n destroy() {\n const lbSize = this._lookbehindSize;\n if (lbSize)\n this._cb(false, this._lookbehind, 0, lbSize, false);\n this.reset();\n }\n}\n\nfunction feed(self, data) {\n const len = data.length;\n const needle = self._needle;\n const needleLen = needle.length;\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehindSize - 2]\n let pos = -self._lookbehindSize;\n const lastNeedleCharPos = needleLen - 1;\n const lastNeedleChar = needle[lastNeedleCharPos];\n const end = len - needleLen;\n const occ = self._occ;\n const lookbehind = self._lookbehind;\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= end) {\n const nextPos = pos + lastNeedleCharPos;\n const ch = (nextPos < 0\n ? lookbehind[self._lookbehindSize + nextPos]\n : data[nextPos]);\n\n if (ch === lastNeedleChar\n && matchNeedle(self, data, pos, lastNeedleCharPos)) {\n self._lookbehindSize = 0;\n ++self.matches;\n if (pos > -self._lookbehindSize)\n self._cb(true, lookbehind, 0, self._lookbehindSize + pos, false);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // No match.\n\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !matchNeedle(self, data, pos, len - pos))\n ++pos;\n\n if (pos < 0) {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = self._lookbehindSize + pos;\n\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n self._cb(false, lookbehind, 0, bytesToCutOff, false);\n }\n\n self._lookbehindSize -= bytesToCutOff;\n lookbehind.copy(lookbehind, 0, bytesToCutOff, self._lookbehindSize);\n lookbehind.set(data, self._lookbehindSize);\n self._lookbehindSize += len;\n\n self._bufPos = len;\n return len;\n }\n\n // Discard lookbehind buffer.\n self._cb(false, lookbehind, 0, self._lookbehindSize, false);\n self._lookbehindSize = 0;\n }\n\n pos += self._bufPos;\n\n const firstNeedleChar = needle[0];\n\n // Lookbehind buffer is now empty. Perform Boyer-Moore-Horspool\n // search with optimized character lookup code that only considers\n // the current round's haystack data.\n while (pos <= end) {\n const ch = data[pos + lastNeedleCharPos];\n\n if (ch === lastNeedleChar\n && data[pos] === firstNeedleChar\n && memcmp(needle, 0, data, pos, lastNeedleCharPos)) {\n ++self.matches;\n if (pos > 0)\n self._cb(true, data, self._bufPos, pos, true);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (pos < len) {\n if (data[pos] !== firstNeedleChar\n || !memcmp(data, pos, needle, 0, len - pos)) {\n ++pos;\n continue;\n }\n data.copy(lookbehind, 0, pos, len);\n self._lookbehindSize = len - pos;\n break;\n }\n\n // Everything until `pos` is guaranteed not to contain needle data.\n if (pos > 0)\n self._cb(false, data, self._bufPos, pos < len ? pos : len, true);\n\n self._bufPos = len;\n return len;\n}\n\nfunction matchNeedle(self, data, pos, len) {\n const lb = self._lookbehind;\n const lbSize = self._lookbehindSize;\n const needle = self._needle;\n\n for (let i = 0; i < len; ++i, ++pos) {\n const ch = (pos < 0 ? lb[lbSize + pos] : data[pos]);\n if (ch !== needle[i])\n return false;\n }\n return true;\n}\n\nmodule.exports = SBMH;\n", "'use strict';\n\nconst { Readable, Writable } = require('stream');\n\nconst StreamSearch = require('streamsearch');\n\nconst {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n} = require('../utils.js');\n\nconst BUF_CRLF = Buffer.from('\\r\\n');\nconst BUF_CR = Buffer.from('\\r');\nconst BUF_DASH = Buffer.from('-');\n\nfunction noop() {}\n\nconst MAX_HEADER_PAIRS = 2000; // From node\nconst MAX_HEADER_SIZE = 16 * 1024; // From node (its default value)\n\nconst HPARSER_NAME = 0;\nconst HPARSER_PRE_OWS = 1;\nconst HPARSER_VALUE = 2;\nclass HeaderParser {\n constructor(cb) {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n this.cb = cb;\n }\n\n reset() {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n }\n\n push(chunk, pos, end) {\n let start = pos;\n while (pos < end) {\n switch (this.state) {\n case HPARSER_NAME: {\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (TOKEN[code] !== 1) {\n if (code !== 58/* ':' */)\n return -1;\n this.name += chunk.latin1Slice(start, pos);\n if (this.name.length === 0)\n return -1;\n ++pos;\n done = true;\n this.state = HPARSER_PRE_OWS;\n break;\n }\n }\n if (!done) {\n this.name += chunk.latin1Slice(start, pos);\n break;\n }\n // FALLTHROUGH\n }\n case HPARSER_PRE_OWS: {\n // Skip optional whitespace\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */) {\n start = pos;\n done = true;\n this.state = HPARSER_VALUE;\n break;\n }\n }\n if (!done)\n break;\n // FALLTHROUGH\n }\n case HPARSER_VALUE:\n switch (this.crlf) {\n case 0: // Nothing yet\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (FIELD_VCHAR[code] !== 1) {\n if (code !== 13/* '\\r' */)\n return -1;\n ++this.crlf;\n break;\n }\n }\n this.value += chunk.latin1Slice(start, pos++);\n break;\n case 1: // Received CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n ++this.crlf;\n break;\n case 2: { // Received CR LF\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code === 32/* ' ' */ || code === 9/* '\\t' */) {\n // Folded value\n start = pos;\n this.crlf = 0;\n } else {\n if (++this.pairCount < MAX_HEADER_PAIRS) {\n this.name = this.name.toLowerCase();\n if (this.header[this.name] === undefined)\n this.header[this.name] = [this.value];\n else\n this.header[this.name].push(this.value);\n }\n if (code === 13/* '\\r' */) {\n ++this.crlf;\n ++pos;\n } else {\n // Assume start of next header field name\n start = pos;\n this.crlf = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n }\n }\n break;\n }\n case 3: { // Received CR LF CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n // End of header\n const header = this.header;\n this.reset();\n this.cb(header);\n return pos;\n }\n }\n break;\n }\n }\n\n return pos;\n }\n}\n\nclass FileStream extends Readable {\n constructor(opts, owner) {\n super(opts);\n this.truncated = false;\n this._readcb = null;\n this.once('end', () => {\n // We need to make sure that we call any outstanding _writecb() that is\n // associated with this file so that processing of the rest of the form\n // can continue. This may not happen if the file stream ends right after\n // backpressure kicks in, so we force it here.\n this._read();\n if (--owner._fileEndsLeft === 0 && owner._finalcb) {\n const cb = owner._finalcb;\n owner._finalcb = null;\n // Make sure other 'end' event handlers get a chance to be executed\n // before busboy's 'finish' event is emitted\n process.nextTick(cb);\n }\n });\n }\n _read(n) {\n const cb = this._readcb;\n if (cb) {\n this._readcb = null;\n cb();\n }\n }\n}\n\nconst ignoreData = {\n push: (chunk, pos) => {},\n destroy: () => {},\n};\n\nfunction callAndUnsetCb(self, err) {\n const cb = self._writecb;\n self._writecb = null;\n if (err)\n self.destroy(err);\n else if (cb)\n cb();\n}\n\nfunction nullDecoder(val, hint) {\n return val;\n}\n\nclass Multipart extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n if (!cfg.conType.params || typeof cfg.conType.params.boundary !== 'string')\n throw new Error('Multipart: Boundary not found');\n\n const boundary = cfg.conType.params.boundary;\n const paramDecoder = (typeof cfg.defParamCharset === 'string'\n && cfg.defParamCharset\n ? getDecoder(cfg.defParamCharset)\n : nullDecoder);\n const defCharset = (cfg.defCharset || 'utf8');\n const preservePath = cfg.preservePath;\n const fileOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.fileHwm === 'number'\n ? cfg.fileHwm\n : undefined),\n };\n\n const limits = cfg.limits;\n const fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n const fileSizeLimit = (limits && typeof limits.fileSize === 'number'\n ? limits.fileSize\n : Infinity);\n const filesLimit = (limits && typeof limits.files === 'number'\n ? limits.files\n : Infinity);\n const fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n const partsLimit = (limits && typeof limits.parts === 'number'\n ? limits.parts\n : Infinity);\n\n let parts = -1; // Account for initial boundary\n let fields = 0;\n let files = 0;\n let skipPart = false;\n\n this._fileEndsLeft = 0;\n this._fileStream = undefined;\n this._complete = false;\n let fileSize = 0;\n\n let field;\n let fieldSize = 0;\n let partCharset;\n let partEncoding;\n let partType;\n let partName;\n let partTruncated = false;\n\n let hitFilesLimit = false;\n let hitFieldsLimit = false;\n\n this._hparser = null;\n const hparser = new HeaderParser((header) => {\n this._hparser = null;\n skipPart = false;\n\n partType = 'text/plain';\n partCharset = defCharset;\n partEncoding = '7bit';\n partName = undefined;\n partTruncated = false;\n\n let filename;\n if (!header['content-disposition']) {\n skipPart = true;\n return;\n }\n\n const disp = parseDisposition(header['content-disposition'][0],\n paramDecoder);\n if (!disp || disp.type !== 'form-data') {\n skipPart = true;\n return;\n }\n\n if (disp.params) {\n if (disp.params.name)\n partName = disp.params.name;\n\n if (disp.params['filename*'])\n filename = disp.params['filename*'];\n else if (disp.params.filename)\n filename = disp.params.filename;\n\n if (filename !== undefined && !preservePath)\n filename = basename(filename);\n }\n\n if (header['content-type']) {\n const conType = parseContentType(header['content-type'][0]);\n if (conType) {\n partType = `${conType.type}/${conType.subtype}`;\n if (conType.params && typeof conType.params.charset === 'string')\n partCharset = conType.params.charset.toLowerCase();\n }\n }\n\n if (header['content-transfer-encoding'])\n partEncoding = header['content-transfer-encoding'][0].toLowerCase();\n\n if (partType === 'application/octet-stream' || filename !== undefined) {\n // File\n\n if (files === filesLimit) {\n if (!hitFilesLimit) {\n hitFilesLimit = true;\n this.emit('filesLimit');\n }\n skipPart = true;\n return;\n }\n ++files;\n\n if (this.listenerCount('file') === 0) {\n skipPart = true;\n return;\n }\n\n fileSize = 0;\n this._fileStream = new FileStream(fileOpts, this);\n ++this._fileEndsLeft;\n this.emit(\n 'file',\n partName,\n this._fileStream,\n { filename,\n encoding: partEncoding,\n mimeType: partType }\n );\n } else {\n // Non-file\n\n if (fields === fieldsLimit) {\n if (!hitFieldsLimit) {\n hitFieldsLimit = true;\n this.emit('fieldsLimit');\n }\n skipPart = true;\n return;\n }\n ++fields;\n\n if (this.listenerCount('field') === 0) {\n skipPart = true;\n return;\n }\n\n field = [];\n fieldSize = 0;\n }\n });\n\n let matchPostBoundary = 0;\n const ssCb = (isMatch, data, start, end, isDataSafe) => {\nretrydata:\n while (data) {\n if (this._hparser !== null) {\n const ret = this._hparser.push(data, start, end);\n if (ret === -1) {\n this._hparser = null;\n hparser.reset();\n this.emit('error', new Error('Malformed part header'));\n break;\n }\n start = ret;\n }\n\n if (start === end)\n break;\n\n if (matchPostBoundary !== 0) {\n if (matchPostBoundary === 1) {\n switch (data[start]) {\n case 45: // '-'\n // Try matching '--' after boundary\n matchPostBoundary = 2;\n ++start;\n break;\n case 13: // '\\r'\n // Try matching CR LF before header\n matchPostBoundary = 3;\n ++start;\n break;\n default:\n matchPostBoundary = 0;\n }\n if (start === end)\n return;\n }\n\n if (matchPostBoundary === 2) {\n matchPostBoundary = 0;\n if (data[start] === 45/* '-' */) {\n // End of multipart data\n this._complete = true;\n this._bparser = ignoreData;\n return;\n }\n // We saw something other than '-', so put the dash we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_DASH, 0, 1, false);\n this._writecb = writecb;\n } else if (matchPostBoundary === 3) {\n matchPostBoundary = 0;\n if (data[start] === 10/* '\\n' */) {\n ++start;\n if (parts >= partsLimit)\n break;\n // Prepare the header parser\n this._hparser = hparser;\n if (start === end)\n break;\n // Process the remaining data as a header\n continue retrydata;\n } else {\n // We saw something other than LF, so put the CR we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_CR, 0, 1, false);\n this._writecb = writecb;\n }\n }\n }\n\n if (!skipPart) {\n if (this._fileStream) {\n let chunk;\n const actualLen = Math.min(end - start, fileSizeLimit - fileSize);\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fileSize += chunk.length;\n if (fileSize === fileSizeLimit) {\n if (chunk.length > 0)\n this._fileStream.push(chunk);\n this._fileStream.emit('limit');\n this._fileStream.truncated = true;\n skipPart = true;\n } else if (!this._fileStream.push(chunk)) {\n if (this._writecb)\n this._fileStream._readcb = this._writecb;\n this._writecb = null;\n }\n } else if (field !== undefined) {\n let chunk;\n const actualLen = Math.min(\n end - start,\n fieldSizeLimit - fieldSize\n );\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fieldSize += actualLen;\n field.push(chunk);\n if (fieldSize === fieldSizeLimit) {\n skipPart = true;\n partTruncated = true;\n }\n }\n }\n\n break;\n }\n\n if (isMatch) {\n matchPostBoundary = 1;\n\n if (this._fileStream) {\n // End the active file stream if the previous part was a file\n this._fileStream.push(null);\n this._fileStream = null;\n } else if (field !== undefined) {\n let data;\n switch (field.length) {\n case 0:\n data = '';\n break;\n case 1:\n data = convertToUTF8(field[0], partCharset, 0);\n break;\n default:\n data = convertToUTF8(\n Buffer.concat(field, fieldSize),\n partCharset,\n 0\n );\n }\n field = undefined;\n fieldSize = 0;\n this.emit(\n 'field',\n partName,\n data,\n { nameTruncated: false,\n valueTruncated: partTruncated,\n encoding: partEncoding,\n mimeType: partType }\n );\n }\n\n if (++parts === partsLimit)\n this.emit('partsLimit');\n }\n };\n this._bparser = new StreamSearch(`\\r\\n--${boundary}`, ssCb);\n\n this._writecb = null;\n this._finalcb = null;\n\n // Just in case there is no preamble\n this.write(BUF_CRLF);\n }\n\n static detect(conType) {\n return (conType.type === 'multipart' && conType.subtype === 'form-data');\n }\n\n _write(chunk, enc, cb) {\n this._writecb = cb;\n this._bparser.push(chunk, 0);\n if (this._writecb)\n callAndUnsetCb(this);\n }\n\n _destroy(err, cb) {\n this._hparser = null;\n this._bparser = ignoreData;\n if (!err)\n err = checkEndState(this);\n const fileStream = this._fileStream;\n if (fileStream) {\n this._fileStream = null;\n fileStream.destroy(err);\n }\n cb(err);\n }\n\n _final(cb) {\n this._bparser.destroy();\n if (!this._complete)\n return cb(new Error('Unexpected end of form'));\n if (this._fileEndsLeft)\n this._finalcb = finalcb.bind(null, this, cb);\n else\n finalcb(this, cb);\n }\n}\n\nfunction finalcb(self, cb, err) {\n if (err)\n return cb(err);\n err = checkEndState(self);\n cb(err);\n}\n\nfunction checkEndState(self) {\n if (self._hparser)\n return new Error('Malformed part header');\n const fileStream = self._fileStream;\n if (fileStream) {\n self._fileStream = null;\n fileStream.destroy(new Error('Unexpected end of file'));\n }\n if (!self._complete)\n return new Error('Unexpected end of form');\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst FIELD_VCHAR = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nmodule.exports = Multipart;\n", "'use strict';\n\nconst { Writable } = require('stream');\n\nconst { getDecoder } = require('../utils.js');\n\nclass URLEncoded extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n let charset = (cfg.defCharset || 'utf8');\n if (cfg.conType.params && typeof cfg.conType.params.charset === 'string')\n charset = cfg.conType.params.charset;\n\n this.charset = charset;\n\n const limits = cfg.limits;\n this.fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n this.fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n this.fieldNameSizeLimit = (\n limits && typeof limits.fieldNameSize === 'number'\n ? limits.fieldNameSize\n : 100\n );\n\n this._inKey = true;\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n this._fields = 0;\n this._key = '';\n this._val = '';\n this._byte = -2;\n this._lastPos = 0;\n this._encode = 0;\n this._decoder = getDecoder(charset);\n }\n\n static detect(conType) {\n return (conType.type === 'application'\n && conType.subtype === 'x-www-form-urlencoded');\n }\n\n _write(chunk, enc, cb) {\n if (this._fields >= this.fieldsLimit)\n return cb();\n\n let i = 0;\n const len = chunk.length;\n this._lastPos = 0;\n\n // Check if we last ended mid-percent-encoded byte\n if (this._byte !== -2) {\n i = readPctEnc(this, chunk, i, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n if (this._inKey)\n ++this._bytesKey;\n else\n ++this._bytesVal;\n }\n\nmain:\n while (i < len) {\n if (this._inKey) {\n // Parsing key\n\n i = skipKeyBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 61: // '='\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n this._inKey = false;\n continue main;\n case 38: // '&'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0) {\n this.emit(\n 'field',\n this._key,\n '',\n { nameTruncated: this._keyTrunc,\n valueTruncated: false,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue;\n case 43: // '+'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._key += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n } else {\n // Parsing value\n\n i = skipValBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 38: // '&'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._inKey = true;\n this._val = this._decoder(this._val, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0 || this._bytesVal > 0) {\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue main;\n case 43: // '+'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._val += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n }\n }\n\n cb();\n }\n\n _final(cb) {\n if (this._byte !== -2)\n return cb(new Error('Malformed urlencoded form'));\n if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) {\n if (this._inKey)\n this._key = this._decoder(this._key, this._encode);\n else\n this._val = this._decoder(this._val, this._encode);\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n cb();\n }\n}\n\nfunction readPctEnc(self, chunk, pos, len) {\n if (pos >= len)\n return len;\n\n if (self._byte === -1) {\n // We saw a '%' but no hex characters yet\n const hexUpper = HEX_VALUES[chunk[pos++]];\n if (hexUpper === -1)\n return -1;\n\n if (hexUpper >= 8)\n self._encode = 2; // Indicate high bits detected\n\n if (pos < len) {\n // Both hex characters are in this chunk\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((hexUpper << 4) + hexLower);\n else\n self._val += String.fromCharCode((hexUpper << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n } else {\n // Only one hex character was available in this chunk\n self._byte = hexUpper;\n }\n } else {\n // We saw only one hex character so far\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((self._byte << 4) + hexLower);\n else\n self._val += String.fromCharCode((self._byte << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipKeyBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesKey > self.fieldNameSizeLimit) {\n if (!self._keyTrunc) {\n if (self._lastPos < pos)\n self._key += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._keyTrunc = true;\n for (; pos < len; ++pos) {\n const code = chunk[pos];\n if (code === 61/* '=' */ || code === 38/* '&' */)\n break;\n ++self._bytesKey;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipValBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesVal > self.fieldSizeLimit) {\n if (!self._valTrunc) {\n if (self._lastPos < pos)\n self._val += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._valTrunc = true;\n for (; pos < len; ++pos) {\n if (chunk[pos] === 38/* '&' */)\n break;\n ++self._bytesVal;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = URLEncoded;\n", "'use strict';\n\nconst { parseContentType } = require('./utils.js');\n\nfunction getInstance(cfg) {\n const headers = cfg.headers;\n const conType = parseContentType(headers['content-type']);\n if (!conType)\n throw new Error('Malformed content type');\n\n for (const type of TYPES) {\n const matched = type.detect(conType);\n if (!matched)\n continue;\n\n const instanceCfg = {\n limits: cfg.limits,\n headers,\n conType,\n highWaterMark: undefined,\n fileHwm: undefined,\n defCharset: undefined,\n defParamCharset: undefined,\n preservePath: false,\n };\n if (cfg.highWaterMark)\n instanceCfg.highWaterMark = cfg.highWaterMark;\n if (cfg.fileHwm)\n instanceCfg.fileHwm = cfg.fileHwm;\n instanceCfg.defCharset = cfg.defCharset;\n instanceCfg.defParamCharset = cfg.defParamCharset;\n instanceCfg.preservePath = cfg.preservePath;\n return new type(instanceCfg);\n }\n\n throw new Error(`Unsupported content type: ${headers['content-type']}`);\n}\n\n// Note: types are explicitly listed here for easier bundling\n// See: https://github.com/mscdex/busboy/issues/121\nconst TYPES = [\n require('./types/multipart'),\n require('./types/urlencoded'),\n].filter(function(typemod) { return typeof typemod.detect === 'function'; });\n\nmodule.exports = (cfg) => {\n if (typeof cfg !== 'object' || cfg === null)\n cfg = {};\n\n if (typeof cfg.headers !== 'object'\n || cfg.headers === null\n || typeof cfg.headers['content-type'] !== 'string') {\n throw new Error('Missing Content-Type');\n }\n\n return getInstance(cfg);\n};\n", "'use strict'\n\nconst { MessageChannel, receiveMessageOnPort } = require('worker_threads')\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\n// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\n// https://fetch.spec.whatwg.org/#request-body-header-name\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type',\n // See https://github.com/nodejs/undici/issues/2021\n // 'Content-Length' is a forbidden header name, which is typically\n // removed in the Headers implementation. However, undici doesn't\n // filter out headers, so we add it here.\n 'content-length'\n]\n\n// https://fetch.spec.whatwg.org/#enumdef-requestduplex\nconst requestDuplex = [\n 'half'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nlet channel\n\n/** @type {globalThis['structuredClone']} */\nconst structuredClone =\n globalThis.structuredClone ??\n // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n // structuredClone was added in v17.0.0, but fetch supports v16.8\n function structuredClone (value, options = undefined) {\n if (arguments.length === 0) {\n throw new TypeError('missing argument')\n }\n\n if (!channel) {\n channel = new MessageChannel()\n }\n channel.port1.unref()\n channel.port2.unref()\n channel.port1.postMessage(value, options?.transfer)\n return receiveMessageOnPort(channel.port2).message\n }\n\nmodule.exports = {\n DOMException,\n structuredClone,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods,\n badPorts,\n requestDuplex\n}\n", "'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (\n newOrigin !== undefined &&\n typeof newOrigin !== 'string' &&\n !(newOrigin instanceof URL)\n ) {\n throw new Error('Invalid base url')\n }\n\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n", "'use strict'\n\nconst { redirectStatus, badPorts, referrerPolicy: referrerPolicyTokens } = require('./constants')\nconst { getGlobalOrigin } = require('./global')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response\u2019s URL list and null if response\u2019s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response\u2019s status is not a redirect status, then return null.\n if (!redirectStatus.includes(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response\u2019s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a header value, then set location to the result of\n // parsing location with response\u2019s URL.\n if (location !== null && isValidHeaderValue(location)) {\n location = new URL(location, responseURL(response))\n }\n\n // 4. If location is a URL whose fragment is null, then set location\u2019s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request\u2019s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url\u2019s scheme is an HTTP(S) scheme and url\u2019s port is a bad port,\n // then return blocked.\n if (urlIsHttpHttpsScheme(url) && badPorts.includes(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\nfunction isTokenChar (c) {\n return !(\n c >= 0x7f ||\n c <= 0x20 ||\n c === '(' ||\n c === ')' ||\n c === '<' ||\n c === '>' ||\n c === '@' ||\n c === ',' ||\n c === ';' ||\n c === ':' ||\n c === '\\\\' ||\n c === '\"' ||\n c === '/' ||\n c === '[' ||\n c === ']' ||\n c === '?' ||\n c === '=' ||\n c === '{' ||\n c === '}'\n )\n}\n\n// See RFC 7230, Section 3.2.6.\n// https://github.com/chromium/chromium/blob/d7da0240cae77824d1eda25745c4022757499131/third_party/blink/renderer/platform/network/http_parsers.cc#L321\nfunction isValidHTTPToken (characters) {\n if (!characters || typeof characters !== 'string') {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n const c = characters.charCodeAt(i)\n if (c > 0x7f || !isTokenChar(c)) {\n return false\n }\n }\n return true\n}\n\n// https://fetch.spec.whatwg.org/#header-name\n// https://github.com/chromium/chromium/blob/b3d37e6f94f87d59e44662d6078f6a12de845d17/net/http/http_util.cc#L342\nfunction isValidHeaderName (potentialValue) {\n if (potentialValue.length === 0) {\n return false\n }\n\n return isValidHTTPToken(potentialValue)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request\u2019s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing \u00A7 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n\n // 8.1 Parse a referrer policy from a Referrer-Policy header\n // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response\u2019s header list.\n const { headersList } = actualResponse\n // 2. Let policy be the empty string.\n // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.\n // 4. Return policy.\n const policyHeader = (headersList.get('referrer-policy') ?? '').split(',')\n\n // Note: As the referrer-policy can contain multiple policies\n // separated by comma, we need to loop through all of them\n // and pick the first valid one.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n let policy = ''\n if (policyHeader.length > 0) {\n // The right-most policy takes precedence.\n // The left-most policy is the fallback.\n for (let i = policyHeader.length; i !== 0; i--) {\n const token = policyHeader[i - 1].trim()\n if (referrerPolicyTokens.includes(token)) {\n policy = token\n break\n }\n }\n }\n\n // 2. If policy is not the empty string, then set request\u2019s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r\u2019s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header\u2019s value to r\u2019s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r\u2019s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request\u2019s response tainting is \"cors\" or request\u2019s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request\u2019s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request\u2019s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request\u2019s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request\u2019s origin is a tuple origin, its scheme is \"https\", and request\u2019s current URL\u2019s scheme is not \"https\", then set serializedOrigin to `null`.\n if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request\u2019s origin is not same origin with request\u2019s current URL\u2019s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request\u2019s header list.\n request.headersList.append('origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // Note: the fetch spec doesn't make use of embedder policy or CSP list\n return {\n referrerPolicy: 'strict-origin-when-cross-origin'\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer (policyContainer) {\n return {\n referrerPolicy: policyContainer.referrerPolicy\n }\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Note: policy cannot (shouldn't) be null or an empty string.\n assert(policy)\n\n // 2. Let environment be request\u2019s client.\n\n let referrerSource = null\n\n // 3. Switch on request\u2019s referrer:\n if (request.referrer === 'client') {\n // Note: node isn't a browser and doesn't implement document/iframes,\n // so we bypass this step and replace it with our own.\n\n const globalOrigin = getGlobalOrigin()\n\n if (!globalOrigin || globalOrigin.origin === 'null') {\n return 'no-referrer'\n }\n\n // note: we need to clone it as it's mutated\n referrerSource = new URL(globalOrigin)\n } else if (request.referrer instanceof URL) {\n // Let referrerSource be request\u2019s referrer.\n referrerSource = request.referrer\n }\n\n // 4. Let request\u2019s referrerURL be the result of stripping referrerSource for\n // use as a referrer.\n let referrerURL = stripURLForReferrer(referrerSource)\n\n // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n // a referrer, with the origin-only flag set to true.\n const referrerOrigin = stripURLForReferrer(referrerSource, true)\n\n // 6. If the result of serializing referrerURL is a string whose length is\n // greater than 4096, set referrerURL to referrerOrigin.\n if (referrerURL.toString().length > 4096) {\n referrerURL = referrerOrigin\n }\n\n const areSameOrigin = sameOrigin(request, referrerURL)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerURL\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerURL : referrerOrigin\n case 'strict-origin-when-cross-origin': {\n const currentURL = requestCurrentURL(request)\n\n // 1. If the origin of referrerURL and the origin of request\u2019s current\n // URL are the same, then return referrerURL.\n if (sameOrigin(referrerURL, currentURL)) {\n return referrerURL\n }\n\n // 2. If referrerURL is a potentially trustworthy URL and request\u2019s\n // current URL is not a potentially trustworthy URL, then return no\n // referrer.\n if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n return 'no-referrer'\n }\n\n // 3. Return referrerOrigin.\n return referrerOrigin\n }\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n * @param {URL} url\n * @param {boolean|undefined} originOnly\n */\nfunction stripURLForReferrer (url, originOnly) {\n // 1. Assert: url is a URL.\n assert(url instanceof URL)\n\n // 2. If url\u2019s scheme is a local scheme, then return no referrer.\n if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n return 'no-referrer'\n }\n\n // 3. Set url\u2019s username to the empty string.\n url.username = ''\n\n // 4. Set url\u2019s password to the empty string.\n url.password = ''\n\n // 5. Set url\u2019s fragment to null.\n url.hash = ''\n\n // 6. If the origin-only flag is true, then:\n if (originOnly) {\n // 1. Set url\u2019s path to \u00AB the empty string \u00BB.\n url.pathname = ''\n\n // 2. Set url\u2019s query to null.\n url.search = ''\n }\n\n // 7. Return url.\n return url\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 4. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n const list = parsedMetadata.sort((c, d) => d.algo.localeCompare(c.algo))\n // get the strongest algorithm\n const strongest = list[0].algo\n // get all entries that use the strongest algorithm; ignore weaker\n const metadata = list.filter((item) => item.algo === strongest)\n\n // 5. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n const actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (actualValue === expectedValue) {\n return true\n }\n }\n\n // 6. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// https://www.w3.org/TR/CSP2/#source-list-syntax\n// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\\x21-\\x7e]?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n const supportedHashes = crypto.getHashes()\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (parsedToken === null || parsedToken.groups === undefined) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm.toLowerCase())) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n if (A.origin === B.origin && A.origin === 'null') {\n return true\n }\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\n// https://fetch.spec.whatwg.org/#concept-method-normalize\nfunction normalizeMethod (method) {\n return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method)\n ? method.toUpperCase()\n : method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, \u00AB value \u00BB).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n/**\n * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n * @param {() => unknown[]} iterator\n * @param {string} name name of the instance\n * @param {'key'|'value'|'key+value'} kind\n */\nfunction makeIterator (iterator, name, kind) {\n const object = {\n index: 0,\n kind,\n target: iterator\n }\n\n const i = {\n next () {\n // 1. Let interface be the interface for which the iterator prototype object exists.\n\n // 2. Let thisValue be the this value.\n\n // 3. Let object be ? ToObject(thisValue).\n\n // 4. If object is a platform object, then perform a security\n // check, passing:\n\n // 5. If object is not a default iterator object for interface,\n // then throw a TypeError.\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n // 6. Let index be object\u2019s index.\n // 7. Let kind be object\u2019s kind.\n // 8. Let values be object\u2019s target's value pairs to iterate over.\n const { index, kind, target } = object\n const values = target()\n\n // 9. Let len be the length of values.\n const len = values.length\n\n // 10. If index is greater than or equal to len, then return\n // CreateIterResultObject(undefined, true).\n if (index >= len) {\n return { value: undefined, done: true }\n }\n\n // 11. Let pair be the entry in values at index index.\n const pair = values[index]\n\n // 12. Set object\u2019s index to index + 1.\n object.index = index + 1\n\n // 13. Return the iterator result for pair and kind.\n return iteratorResult(pair, kind)\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n// https://webidl.spec.whatwg.org/#iterator-result\nfunction iteratorResult (pair, kind) {\n let result\n\n // 1. Let result be a value determined by the value of kind:\n switch (kind) {\n case 'key': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 3. result is key.\n result = pair[0]\n break\n }\n case 'value': {\n // 1. Let idlValue be pair\u2019s value.\n // 2. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 3. result is value.\n result = pair[1]\n break\n }\n case 'key+value': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let idlValue be pair\u2019s value.\n // 3. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 4. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 5. Let array be ! ArrayCreate(2).\n // 6. Call ! CreateDataProperty(array, \"0\", key).\n // 7. Call ! CreateDataProperty(array, \"1\", value).\n // 8. result is array.\n result = pair\n break\n }\n }\n\n // 2. Return CreateIterResultObject(result, false).\n return { value: result, done: false }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nfunction fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let successSteps given a byte sequence bytes be to queue a\n // fetch task to run processBody given bytes, with taskDestination.\n const successSteps = (bytes) => queueMicrotask(() => processBody(bytes))\n\n // 3. Let errorSteps be to queue a fetch task to run processBodyError,\n // with taskDestination.\n const errorSteps = (error) => queueMicrotask(() => processBodyError(error))\n\n // 4. Let reader be the result of getting a reader for body\u2019s stream.\n // If that threw an exception, then run errorSteps with that\n // exception and return.\n let reader\n\n try {\n reader = body.stream.getReader()\n } catch (e) {\n errorSteps(e)\n return\n }\n\n // 5. Read all bytes from reader, given successSteps and errorSteps.\n readAllBytes(reader, successSteps, errorSteps)\n}\n\n/** @type {ReadableStream} */\nlet ReadableStream = globalThis.ReadableStream\n\nfunction isReadableStreamLike (stream) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n return stream instanceof ReadableStream || (\n stream[Symbol.toStringTag] === 'ReadableStream' &&\n typeof stream.tee === 'function'\n )\n}\n\nconst MAXIMUM_ARGUMENT_LENGTH = 65535\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-decode\n * @param {number[]|Uint8Array} input\n */\nfunction isomorphicDecode (input) {\n // 1. To isomorphic decode a byte sequence input, return a string whose code point\n // length is equal to input\u2019s length and whose code points have the same values\n // as the values of input\u2019s bytes, in the same order.\n\n if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n return String.fromCharCode(...input)\n }\n\n return input.reduce((previous, current) => previous + String.fromCharCode(current), '')\n}\n\n/**\n * @param {ReadableStreamController<Uint8Array>} controller\n */\nfunction readableStreamClose (controller) {\n try {\n controller.close()\n } catch (err) {\n // TODO: add comment explaining why this error occurs.\n if (!err.message.includes('Controller is already closed')) {\n throw err\n }\n }\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-encode\n * @param {string} input\n */\nfunction isomorphicEncode (input) {\n // 1. Assert: input contains no code points greater than U+00FF.\n for (let i = 0; i < input.length; i++) {\n assert(input.charCodeAt(i) <= 0xFF)\n }\n\n // 2. Return a byte sequence whose length is equal to input\u2019s code\n // point length and whose bytes have the same values as the\n // values of input\u2019s code points, in the same order\n return input\n}\n\n/**\n * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n * @see https://streams.spec.whatwg.org/#read-loop\n * @param {ReadableStreamDefaultReader} reader\n * @param {(bytes: Uint8Array) => void} successSteps\n * @param {(error: Error) => void} failureSteps\n */\nasync function readAllBytes (reader, successSteps, failureSteps) {\n const bytes = []\n let byteLength = 0\n\n while (true) {\n let done\n let chunk\n\n try {\n ({ done, value: chunk } = await reader.read())\n } catch (e) {\n // 1. Call failureSteps with e.\n failureSteps(e)\n return\n }\n\n if (done) {\n // 1. Call successSteps with bytes.\n successSteps(Buffer.concat(bytes, byteLength))\n return\n }\n\n // 1. If chunk is not a Uint8Array object, call failureSteps\n // with a TypeError and abort these steps.\n if (!isUint8Array(chunk)) {\n failureSteps(new TypeError('Received non-Uint8Array chunk'))\n return\n }\n\n // 2. Append the bytes represented by chunk to bytes.\n bytes.push(chunk)\n byteLength += chunk.length\n\n // 3. Read-loop given reader, bytes, successSteps, and failureSteps.\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#is-local\n * @param {URL} url\n */\nfunction urlIsLocal (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n}\n\n/**\n * @param {string|URL} url\n */\nfunction urlHasHttpsScheme (url) {\n if (typeof url === 'string') {\n return url.startsWith('https:')\n }\n\n return url.protocol === 'https:'\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-scheme\n * @param {URL} url\n */\nfunction urlIsHttpHttpsScheme (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'http:' || protocol === 'https:'\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch,\n isReadableStreamLike,\n readableStreamClose,\n isomorphicEncode,\n isomorphicDecode,\n urlIsLocal,\n urlHasHttpsScheme,\n urlIsHttpHttpsScheme,\n readAllBytes\n}\n", "'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n", "'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\n/** @type {import('../../types/webidl').Webidl} */\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\nwebidl.errors.exception = function (message) {\n return new TypeError(`${message.header}: ${message.message}`)\n}\n\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://webidl.spec.whatwg.org/#implements\nwebidl.brandCheck = function (V, I, opts = undefined) {\n if (opts?.strict !== false && !(V instanceof I)) {\n throw new TypeError('Illegal invocation')\n } else {\n return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n }\n}\n\nwebidl.argumentLengthCheck = function ({ length }, min, ctx) {\n if (length < min) {\n throw webidl.errors.exception({\n message: `${min} argument${min !== 1 ? 's' : ''} required, ` +\n `but${length ? ' only' : ''} ${length} found.`,\n ...ctx\n })\n }\n}\n\nwebidl.illegalConstructor = function () {\n throw webidl.errors.exception({\n header: 'TypeError',\n message: 'Illegal constructor'\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 \u2212 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be \u22122^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength \u2212 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength \u2212 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength \u2212 1 \u2212 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is \u22120, then set x to +0.\n if (x === 0) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +\u221E, or \u2212\u221E, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than \u22120.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +\u221E, or \u2212\u221E, then return +0.\n if (\n Number.isNaN(x) ||\n (x === 0 && Object.is(0, x)) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x \u2265 2^bitLength \u2212 1,\n // then return x \u2212 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 \u00D7 r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-to-record\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (O) => {\n // 1. If Type(O) is not Object, throw a TypeError.\n if (webidl.util.Type(O) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Record',\n message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n })\n }\n\n // 2. Let result be a new empty instance of record<K, V>.\n const result = {}\n\n if (!types.isProxy(O)) {\n // Object.keys only returns enumerable properties\n const keys = Object.keys(O)\n\n for (const key of keys) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n\n // 5. Return result.\n return result\n }\n\n // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n const keys = Reflect.ownKeys(O)\n\n // 4. For each key of keys.\n for (const key of keys) {\n // 1. Let desc be ? O.[[GetOwnProperty]](key).\n const desc = Reflect.getOwnPropertyDescriptor(O, key)\n\n // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n if (desc?.enumerable) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n }\n\n // 5. Return result.\n return result\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n throw webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type === 'Null' || type === 'Undefined') {\n return dict\n } else if (type !== 'Object') {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n const charCode = x.charCodeAt(index)\n\n if (charCode > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at ' +\n `index ${index} has a value of ${charCode} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed')\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long-long\nwebidl.converters['unsigned long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 64, 'unsigned')\n\n // 2. Return the IDL unsigned long long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long\nwebidl.converters['unsigned long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 32, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 32, 'unsigned')\n\n // 2. Return the IDL unsigned long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts)\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T\u2019s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n throw webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence<ByteString>'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence<sequence<ByteString>>'] = webidl.sequenceConverter(\n webidl.converters['sequence<ByteString>']\n)\n\nwebidl.converters['record<ByteString, ByteString>'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n", "const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isomorphicDecode } = require('./util')\n\nconst encoder = new TextEncoder()\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-token-code-point\n */\nconst HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/\nconst HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/ // eslint-disable-line\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n */\nconst HTTP_QUOTED_STRING_TOKENS = /[\\u0009|\\u0020-\\u007E|\\u0080-\\u00FF]/ // eslint-disable-line\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL\u2019s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePointsFast(\n ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = removeASCIIWhitespace(mimeType, true, true)\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = isomorphicDecode(body)\n\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n const href = url.href\n\n if (!excludeFragment) {\n return href\n }\n\n const hash = href.lastIndexOf('#')\n if (hash === -1) {\n return href\n }\n return href.slice(0, hash)\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn\u2019t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n/**\n * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n * @param {string} char\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePointsFast (char, input, position) {\n const idx = input.indexOf(char, position.position)\n const start = position.position\n\n if (idx === -1) {\n position.position = input.length\n return input.slice(start)\n }\n\n position.position = idx\n return input.slice(start, position.position)\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = removeHTTPWhitespace(input, true, true)\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePointsFast(\n '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = removeHTTPWhitespace(subtype, false, true)\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n return 'failure'\n }\n\n const typeLowercase = type.toLowerCase()\n const subtypeLowercase = subtype.toLowerCase()\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: typeLowercase,\n subtype: subtypeLowercase,\n /** @type {Map<string, string>} */\n parameters: new Map(),\n // https://mimesniff.spec.whatwg.org/#mime-type-essence\n essence: `${typeLowercase}/${subtypeLowercase}`\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n char => HTTP_WHITESPACE_REGEX.test(char),\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n parameterValue = removeHTTPWhitespace(parameterValue, false, true)\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType\u2019s parameters[parameterName] does not exist\n // then set mimeType\u2019s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) &&\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data\u2019s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data\u2019s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { parameters, essence } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType\u2019s\n // type, U+002F (/), and mimeType\u2019s subtype.\n let serialization = essence\n\n // 2. For each name \u2192 value of mimeType\u2019s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!HTTP_TOKEN_CODEPOINTS.test(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} char\n */\nfunction isHTTPWhiteSpace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === ' '\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} str\n */\nfunction removeHTTPWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n * @param {string} char\n */\nfunction isASCIIWhitespace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === '\\f' || char === ' '\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace\n */\nfunction removeASCIIWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n collectASequenceOfCodePointsFast,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n", "'use strict'\n\nconst { Blob, File: NativeFile } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' })\n\n fileBits = webidl.converters['sequence<BlobPart>'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n let t = options.type\n let d\n\n // eslint-disable-next-line no-labels\n substep: {\n if (t) {\n t = parseMIMEType(t)\n\n if (t === 'failure') {\n t = ''\n // eslint-disable-next-line no-labels\n break substep\n }\n\n t = serializeAMimeType(t).toLowerCase()\n }\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n d = options.lastModified\n }\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: t })\n this[kState] = {\n name: n,\n lastModified: d,\n type: t\n }\n }\n\n get name () {\n webidl.brandCheck(this, File)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, File)\n\n return this[kState].lastModified\n }\n\n get type () {\n webidl.brandCheck(this, File)\n\n return this[kState].type\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.size\n }\n\n get type () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.type\n }\n\n get name () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nObject.defineProperties(File.prototype, {\n [Symbol.toStringTag]: {\n value: 'File',\n configurable: true\n },\n name: kEnumerableProperty,\n lastModified: kEnumerableProperty\n})\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n ArrayBuffer.isView(V) ||\n types.isAnyArrayBuffer(V)\n ) {\n return webidl.converters.BufferSource(V, opts)\n }\n }\n\n return webidl.converters.USVString(V, opts)\n}\n\nwebidl.converters['sequence<BlobPart>'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(new TextEncoder().encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform\u2019s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return (\n (NativeFile && object instanceof NativeFile) ||\n object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n", "'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File: UndiciFile, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob, File: NativeFile } = require('buffer')\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n constructor (form) {\n if (form !== undefined) {\n throw webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['undefined']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' })\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this\u2019s entry list.\n this[kState] = this[kState].filter(entry => entry.name !== name)\n }\n\n get (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this\u2019s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this\u2019s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' })\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this\u2019s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this\u2019s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n }\n\n entries () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key+value'\n )\n }\n\n keys () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\nObject.defineProperties(FormData.prototype, {\n [Symbol.toStringTag]: {\n value: 'FormData',\n configurable: true\n }\n})\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n /** @type {FilePropertyBag} */\n const options = {\n type: value.type,\n lastModified: value.lastModified\n }\n\n value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n ? new File([value], filename, options)\n : new FileLike(value, filename, options)\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nmodule.exports = { FormData }\n", "'use strict'\n\nconst Busboy = require('busboy')\nconst util = require('../core/util')\nconst {\n ReadableStreamFrom,\n isBlobLike,\n isReadableStreamLike,\n readableStreamClose,\n createDeferredPromise,\n fullyReadBody\n} = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException, structuredClone } = require('./constants')\nconst { Blob, File: NativeFile } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File: UndiciFile } = require('./file')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\n\nlet ReadableStream = globalThis.ReadableStream\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be null.\n let stream = null\n\n // 2. If object is a ReadableStream object, then set stream to object.\n if (object instanceof ReadableStream) {\n stream = object\n } else if (isBlobLike(object)) {\n // 3. Otherwise, if object is a Blob object, set stream to the\n // result of running object\u2019s get stream.\n stream = object.stream()\n } else {\n // 4. Otherwise, set stream to a new ReadableStream object, and set\n // up stream.\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? new TextEncoder().encode(source) : source\n )\n queueMicrotask(() => readableStreamClose(controller))\n },\n start () {},\n type: undefined\n })\n }\n\n // 5. Assert: stream is a ReadableStream object.\n assert(isReadableStreamLike(stream))\n\n // 6. Let action be null.\n let action = null\n\n // 7. Let source be null.\n let source = null\n\n // 8. Let length be null.\n let length = null\n\n // 9. Let type be null.\n let type = null\n\n // 10. Switch on object:\n if (typeof object === 'string') {\n // Set source to the UTF-8 encoding of object.\n // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n source = object\n\n // Set type to `text/plain;charset=UTF-8`.\n type = 'text/plain;charset=UTF-8'\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object\u2019s list.\n source = object.toString()\n\n // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n type = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}`\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy W\u00E4rting <https://jimmy.warting.se/opensource> */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object\u2019s entry list and UTF-8.\n // - This ensures that the body is immutable and can't be changed afterwords\n // - That the content-length is calculated in advance.\n // - And that all parts are pre-encoded and ready to be sent.\n\n const enc = new TextEncoder()\n const blobParts = []\n const rn = new Uint8Array([13, 10]) // '\\r\\n'\n length = 0\n let hasUnknownSizeValue = false\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n const chunk = enc.encode(prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`)\n blobParts.push(chunk)\n length += chunk.byteLength\n } else {\n const chunk = enc.encode(`${prefix}; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') + '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`)\n blobParts.push(chunk, value, rn)\n if (typeof value.size === 'number') {\n length += chunk.byteLength + value.size + rn.byteLength\n } else {\n hasUnknownSizeValue = true\n }\n }\n }\n\n const chunk = enc.encode(`--${boundary}--`)\n blobParts.push(chunk)\n length += chunk.byteLength\n if (hasUnknownSizeValue) {\n length = null\n }\n\n // Set source to object.\n source = object\n\n action = async function * () {\n for (const part of blobParts) {\n if (part.stream) {\n yield * part.stream()\n } else {\n yield part\n }\n }\n }\n\n // Set type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n type = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set source to object.\n source = object\n\n // Set length to object\u2019s size.\n length = object.size\n\n // If object\u2019s type attribute is not the empty byte sequence, set\n // type to its value.\n if (object.type) {\n type = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n }\n\n // 11. If source is a byte sequence, then set action to a\n // step that returns source and length to source\u2019s length.\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 12. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n },\n type: undefined\n })\n }\n\n // 13. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 14. Return (body, type).\n return [body, type]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let \u00AB out1, out2 \u00BB be the result of teeing body\u2019s stream.\n const [out1, out2] = body.stream.tee()\n const out2Clone = structuredClone(out2, { transfer: [out2] })\n // This, for whatever reasons, unrefs out2Clone which allows\n // the process to exit by itself.\n const [, finalClone] = out2Clone.tee()\n\n // 2. Set body\u2019s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: finalClone,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n blob () {\n // The blob() method steps are to return the result of\n // running consume body with this and the following step\n // given a byte sequence bytes: return a Blob whose\n // contents are bytes and whose type attribute is this\u2019s\n // MIME type.\n return specConsumeBody(this, (bytes) => {\n let mimeType = bodyMimeType(this)\n\n if (mimeType === 'failure') {\n mimeType = ''\n } else if (mimeType) {\n mimeType = serializeAMimeType(mimeType)\n }\n\n // Return a Blob whose contents are bytes and type attribute\n // is mimeType.\n return new Blob([bytes], { type: mimeType })\n }, instance)\n },\n\n arrayBuffer () {\n // The arrayBuffer() method steps are to return the result\n // of running consume body with this and the following step\n // given a byte sequence bytes: return a new ArrayBuffer\n // whose contents are bytes.\n return specConsumeBody(this, (bytes) => {\n return new Uint8Array(bytes).buffer\n }, instance)\n },\n\n text () {\n // The text() method steps are to return the result of running\n // consume body with this and UTF-8 decode.\n return specConsumeBody(this, utf8DecodeBytes, instance)\n },\n\n json () {\n // The json() method steps are to return the result of running\n // consume body with this and parse JSON from bytes.\n return specConsumeBody(this, parseJSONFromBytes, instance)\n },\n\n async formData () {\n webidl.brandCheck(this, instance)\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType\u2019s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = Busboy({\n headers,\n defParamCharset: 'utf8'\n })\n } catch (err) {\n throw new DOMException(`${err}`, 'AbortError')\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, info) => {\n const { filename, encoding, mimeType } = info\n const chunks = []\n\n if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(new TypeError(err)))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType\u2019s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n const textDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += textDecoder.decode(chunk, { stream: true })\n }\n text += textDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n throw webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n * @param {Response|Request} object\n * @param {(value: unknown) => unknown} convertBytesToJSValue\n * @param {Response|Request} instance\n */\nasync function specConsumeBody (object, convertBytesToJSValue, instance) {\n webidl.brandCheck(object, instance)\n\n throwIfAborted(object[kState])\n\n // 1. If object is unusable, then return a promise rejected\n // with a TypeError.\n if (bodyUnusable(object[kState].body)) {\n throw new TypeError('Body is unusable')\n }\n\n // 2. Let promise be a new promise.\n const promise = createDeferredPromise()\n\n // 3. Let errorSteps given error be to reject promise with error.\n const errorSteps = (error) => promise.reject(error)\n\n // 4. Let successSteps given a byte sequence data be to resolve\n // promise with the result of running convertBytesToJSValue\n // with data. If that threw an exception, then run errorSteps\n // with that exception.\n const successSteps = (data) => {\n try {\n promise.resolve(convertBytesToJSValue(data))\n } catch (e) {\n errorSteps(e)\n }\n }\n\n // 5. If object\u2019s body is null, then run successSteps with an\n // empty byte sequence.\n if (object[kState].body == null) {\n successSteps(new Uint8Array())\n return promise.promise\n }\n\n // 6. Otherwise, fully read object\u2019s body given successSteps,\n // errorSteps, and object\u2019s relevant global object.\n fullyReadBody(object[kState].body, successSteps, errorSteps)\n\n // 7. Return promise.\n return promise.promise\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction bodyUnusable (body) {\n // An object including the Body interface mixin is\n // said to be unusable if its body is non-null and\n // its body\u2019s stream is disturbed or locked.\n return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#utf-8-decode\n * @param {Buffer} buffer\n */\nfunction utf8DecodeBytes (buffer) {\n if (buffer.length === 0) {\n return ''\n }\n\n // 1. Let buffer be the result of peeking three bytes from\n // ioQueue, converted to a byte sequence.\n\n // 2. If buffer is 0xEF 0xBB 0xBF, then read three\n // bytes from ioQueue. (Do nothing with those bytes.)\n if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n buffer = buffer.subarray(3)\n }\n\n // 3. Process a queue with an instance of UTF-8\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n const output = new TextDecoder().decode(buffer)\n\n // 4. Return output.\n return output\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n * @param {Uint8Array} bytes\n */\nfunction parseJSONFromBytes (bytes) {\n return JSON.parse(utf8DecodeBytes(bytes))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n * @param {import('./response').Response|import('./request').Request} object\n */\nfunction bodyMimeType (object) {\n const { headersList } = object[kState]\n const contentType = headersList.get('content-type')\n\n if (contentType === null) {\n return 'failure'\n }\n\n return parseMIMEType(contentType)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n", "'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n this.contentLength = bodyStream.length\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.onError(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onConnect(abort)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onData(chunk)\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n return this[kHandler].onComplete(trailers)\n }\n\n onError (error) {\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n return this[kHandler].onError(error)\n }\n\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n}\n\nfunction processHeaderValue (key, val) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n val = val != null ? `${val}` : ''\n\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n return `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request, key, val) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type'\n ) {\n request.contentType = val\n request.headers += processHeaderValue(key, val)\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n } else if (value === 'close') {\n request.reset = true\n }\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n request.headers += processHeaderValue(key, val[i])\n }\n } else {\n request.headers += processHeaderValue(key, val)\n }\n }\n}\n\nmodule.exports = Request\n", "'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n", "'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = null\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed] = this[kOnDestroyed] || []\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed] || this[kOnDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n", "'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\n\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache\nif (global.FinalizationRegistry) {\n SessionCache = class WeakSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n this._sessionRegistry = new global.FinalizationRegistry((key) => {\n if (this._sessionCache.size < this._maxCachedSessions) {\n return\n }\n\n const ref = this._sessionCache.get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this._sessionCache.delete(key)\n }\n })\n }\n\n get (sessionKey) {\n const ref = this._sessionCache.get(sessionKey)\n return ref ? ref.deref() : null\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n this._sessionCache.set(sessionKey, new WeakRef(session))\n this._sessionRegistry.register(session, sessionKey)\n }\n }\n} else {\n SessionCache = class SimpleSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n }\n\n get (sessionKey) {\n return this._sessionCache.get(sessionKey)\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n if (this._sessionCache.size >= this._maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = this._sessionCache.keys().next()\n this._sessionCache.delete(oldestKey)\n }\n\n this._sessionCache.set(sessionKey, session)\n }\n }\n}\n\nfunction buildConnector ({ maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions)\n timeout = timeout == null ? 10e3 : timeout\n\n return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n localAddress,\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // TODO (fix): Can a session become invalid once established? Don't think so?\n sessionCache.set(sessionKey, session)\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n localAddress,\n port: port || 80,\n host: hostname\n })\n }\n\n // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n if (options.keepAlive == null || options.keepAlive) {\n const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay\n socket.setKeepAlive(true, keepAliveInitialDelay)\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n", null, null, "'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n this.opts.query = null\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n return (\n (header.length === 4 && header.toString().toLowerCase() === 'host') ||\n (removeContent && header.toString().toLowerCase().indexOf('content-') === 0) ||\n (unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') ||\n (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie')\n )\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n", "'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCrLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC0kBAXsgAEEQav0MAAAAAAAAAAAAAAAAAAAAACIB/QsDACAAIAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AcsBygG4AckBuQHIAboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBANwBC0EAIRAMxgELQQ4hEAzFAQtBDSEQDMQBC0EPIRAMwwELQRAhEAzCAQtBEyEQDMEBC0EUIRAMwAELQRUhEAy/AQtBFiEQDL4BC0EXIRAMvQELQRghEAy8AQtBGSEQDLsBC0EaIRAMugELQRshEAy5AQtBHCEQDLgBC0EIIRAMtwELQR0hEAy2AQtBICEQDLUBC0EfIRAMtAELQQchEAyzAQtBISEQDLIBC0EiIRAMsQELQR4hEAywAQtBIyEQDK8BC0ESIRAMrgELQREhEAytAQtBJCEQDKwBC0ElIRAMqwELQSYhEAyqAQtBJyEQDKkBC0HDASEQDKgBC0EpIRAMpwELQSshEAymAQtBLCEQDKUBC0EtIRAMpAELQS4hEAyjAQtBLyEQDKIBC0HEASEQDKEBC0EwIRAMoAELQTQhEAyfAQtBDCEQDJ4BC0ExIRAMnQELQTIhEAycAQtBMyEQDJsBC0E5IRAMmgELQTUhEAyZAQtBxQEhEAyYAQtBCyEQDJcBC0E6IRAMlgELQTYhEAyVAQtBCiEQDJQBC0E3IRAMkwELQTghEAySAQtBPCEQDJEBC0E7IRAMkAELQT0hEAyPAQtBCSEQDI4BC0EoIRAMjQELQT4hEAyMAQtBPyEQDIsBC0HAACEQDIoBC0HBACEQDIkBC0HCACEQDIgBC0HDACEQDIcBC0HEACEQDIYBC0HFACEQDIUBC0HGACEQDIQBC0EqIRAMgwELQccAIRAMggELQcgAIRAMgQELQckAIRAMgAELQcoAIRAMfwtBywAhEAx+C0HNACEQDH0LQcwAIRAMfAtBzgAhEAx7C0HPACEQDHoLQdAAIRAMeQtB0QAhEAx4C0HSACEQDHcLQdMAIRAMdgtB1AAhEAx1C0HWACEQDHQLQdUAIRAMcwtBBiEQDHILQdcAIRAMcQtBBSEQDHALQdgAIRAMbwtBBCEQDG4LQdkAIRAMbQtB2gAhEAxsC0HbACEQDGsLQdwAIRAMagtBAyEQDGkLQd0AIRAMaAtB3gAhEAxnC0HfACEQDGYLQeEAIRAMZQtB4AAhEAxkC0HiACEQDGMLQeMAIRAMYgtBAiEQDGELQeQAIRAMYAtB5QAhEAxfC0HmACEQDF4LQecAIRAMXQtB6AAhEAxcC0HpACEQDFsLQeoAIRAMWgtB6wAhEAxZC0HsACEQDFgLQe0AIRAMVwtB7gAhEAxWC0HvACEQDFULQfAAIRAMVAtB8QAhEAxTC0HyACEQDFILQfMAIRAMUQtB9AAhEAxQC0H1ACEQDE8LQfYAIRAMTgtB9wAhEAxNC0H4ACEQDEwLQfkAIRAMSwtB+gAhEAxKC0H7ACEQDEkLQfwAIRAMSAtB/QAhEAxHC0H+ACEQDEYLQf8AIRAMRQtBgAEhEAxEC0GBASEQDEMLQYIBIRAMQgtBgwEhEAxBC0GEASEQDEALQYUBIRAMPwtBhgEhEAw+C0GHASEQDD0LQYgBIRAMPAtBiQEhEAw7C0GKASEQDDoLQYsBIRAMOQtBjAEhEAw4C0GNASEQDDcLQY4BIRAMNgtBjwEhEAw1C0GQASEQDDQLQZEBIRAMMwtBkgEhEAwyC0GTASEQDDELQZQBIRAMMAtBlQEhEAwvC0GWASEQDC4LQZcBIRAMLQtBmAEhEAwsC0GZASEQDCsLQZoBIRAMKgtBmwEhEAwpC0GcASEQDCgLQZ0BIRAMJwtBngEhEAwmC0GfASEQDCULQaABIRAMJAtBoQEhEAwjC0GiASEQDCILQaMBIRAMIQtBpAEhEAwgC0GlASEQDB8LQaYBIRAMHgtBpwEhEAwdC0GoASEQDBwLQakBIRAMGwtBqgEhEAwaC0GrASEQDBkLQawBIRAMGAtBrQEhEAwXC0GuASEQDBYLQQEhEAwVC0GvASEQDBQLQbABIRAMEwtBsQEhEAwSC0GzASEQDBELQbIBIRAMEAtBtAEhEAwPC0G1ASEQDA4LQbYBIRAMDQtBtwEhEAwMC0G4ASEQDAsLQbkBIRAMCgtBugEhEAwJC0G7ASEQDAgLQcYBIRAMBwtBvAEhEAwGC0G9ASEQDAULQb4BIRAMBAtBvwEhEAwDC0HAASEQDAILQcIBIRAMAQtBwQEhEAsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='\n", "// @ts-check\n\n'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst util = require('./core/util')\nconst timers = require('./timers')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError,\n ResponseExceededMaxSizeError,\n ClientDestroyedError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors,\n kLocalAddress,\n kMaxResponseSize\n} = require('./core/symbols')\nconst FastBuffer = Buffer[Symbol.species]\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\n/**\n * @type {import('../types/client').default}\n */\nclass Client extends DispatcherBase {\n /**\n *\n * @param {string|URL} url\n * @param {import('../types/client').Client.Options} options\n */\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient,\n localAddress,\n maxResponseSize,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n throw new InvalidArgumentError('localAddress must be valid string IP address')\n }\n\n if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n throw new InvalidArgumentError('maxResponseSize must be a positive number')\n }\n\n if (\n autoSelectFamilyAttemptTimeout != null &&\n (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n ) {\n throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || 16384\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kLocalAddress] = localAddress != null ? localAddress : null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = new Request(origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n return new Promise((resolve) => {\n if (!this[kSize]) {\n resolve(null)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n // TODO (fix): Should we error here with ClientDestroyedError?\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp-wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd-wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp-wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\nllhttpPromise.catch()\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n this.connection = ''\n this.maxResponseSize = client[kMaxResponseSize]\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n timers.clearTimeout(this.timeout)\n if (value) {\n this.timeout = timers.setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message =\n 'Response does not match the HTTP/1.1 protocol (' +\n Buffer.from(llhttp.memory.buffer, ptr, len).toString() +\n ')'\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n timers.clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n this.connection += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = (\n shouldKeepAlive ||\n // Override llhttp value which does not allow keepAlive for HEAD.\n (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n )\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (this.shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n let pause\n try {\n pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n\n if (request.method === 'HEAD') {\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode, maxResponseSize } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n util.destroy(socket, new ResponseExceededMaxSizeError())\n return -1\n }\n\n this.bytesRead += buf.length\n\n try {\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n this.connection = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n try {\n request.onComplete(headers)\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n parser.readMore()\n}\n\nfunction onSocketError (err) {\n const { [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.onMessageComplete()\n return\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser } = this\n\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n return\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client } = this\n\n if (!this[kError] && this[kParser].statusCode && !this[kParser].shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n this[kParser].onMessageComplete()\n }\n\n this[kParser].destroy()\n this[kParser] = null\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substr(1, idx - 1)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (client.destroyed) {\n util.destroy(socket.on('error', () => {}), new ClientDestroyedError())\n return\n }\n\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kError] = null\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n socket[kClient] = client\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n client[kSocket] = socket\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n if (client.destroyed) {\n return\n }\n\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client[kClosedResolve] && !client[kSize]) {\n client[kClosedResolve]()\n client[kClosedResolve] = null\n return\n }\n\n const socket = client[kSocket]\n\n if (socket && !socket.destroyed) {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket) {\n connect(client)\n return\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (util.isStream(request.body) && util.bodyLength(request.body) === 0) {\n request.body\n .on('data', /* istanbul ignore next */ function () {\n /* istanbul ignore next */\n assert(false)\n })\n .on('error', function (err) {\n errorRequest(client, request, err)\n })\n .on('end', function () {\n util.destroy(this)\n })\n\n request.body = null\n }\n\n if (client[kRunning] > 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\nfunction write (client, request) {\n const { body, method, path, host, upgrade, headers, blocking, reset } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n if (request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (reset != null) {\n socket[kReset] = reset\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining] && !socket[kReset]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeStream ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n if (finished) {\n return\n }\n\n try {\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n if (finished) {\n return\n }\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n onFinished(new RequestAbortedError())\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(buffer)\n socket.uncork()\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(socket, err)\n }\n}\n\nasync function writeIterable ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n socket.cork()\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'latin1')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n socket.uncork()\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'latin1')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n", "/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n", "const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n", "'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n", "'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout == null ? 10e3 : connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n", "'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n", "'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n}\n\nmodule.exports = function () {\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n", "'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n", "// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nmodule.exports = class BodyReadable extends Readable {\n constructor ({\n resume,\n abort,\n contentType = '',\n highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n }) {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n async dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n const signal = opts && opts.signal\n const abortFn = () => {\n this.destroy()\n }\n let signalListenerCleanup\n if (signal) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new InvalidArgumentError('signal must be an AbortSignal')\n }\n util.throwIfAborted(signal)\n signalListenerCleanup = util.addAbortListener(signal, abortFn)\n }\n try {\n for await (const chunk of this) {\n util.throwIfAborted(signal)\n limit -= Buffer.byteLength(chunk)\n if (limit < 0) {\n return\n }\n }\n } catch {\n util.throwIfAborted(signal)\n } finally {\n if (typeof signalListenerCleanup === 'function') {\n signalListenerCleanup()\n } else if (signalListenerCleanup) {\n signalListenerCleanup[Symbol.dispose]()\n }\n }\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n", "const assert = require('assert')\nconst {\n ResponseStatusCodeError\n} = require('../core/errors')\nconst { toUSVString } = require('../core/util')\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n assert(body)\n\n let chunks = []\n let limit = 0\n\n for await (const chunk of body) {\n chunks.push(chunk)\n limit += chunk.length\n if (limit > 128 * 1024) {\n chunks = null\n break\n }\n }\n\n if (statusCode === 204 || !contentType || !chunks) {\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = toUSVString(Buffer.concat(chunks))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nmodule.exports = { getResolveErrorBodyCallback }\n", "const { addAbortListener } = require('../core/util')\nconst { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n addAbortListener(self[kSignal], self[kListener])\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n", "'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n throw new InvalidArgumentError('invalid highWaterMark')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n this.highWaterMark = highWaterMark\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n const body = new Readable({ resume, abort, contentType, highWaterMark })\n\n this.callback = null\n this.res = body\n\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n } else {\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\n", "'use strict'\n\nconst { finished, PassThrough } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError || false\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { factory, opaque, context, callback, responseHeaders } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n\n let res\n\n if (this.throwOnError && statusCode >= 400) {\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n res = new PassThrough()\n\n this.callback = null\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body: res, contentType, statusCode, statusMessage, headers }\n )\n } else {\n res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n }\n\n res.on('drain', resume)\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res.write(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n", "'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n", "'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n", "'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n", "'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n", "'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\nconst {\n types: {\n isPromise\n }\n} = require('util')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record<string, string>} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [\n ...keyValuePairs,\n Buffer.from(`${key}`),\n Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n ], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches, _data = data) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const body = typeof _data === 'function'\n ? _data({ ...opts, headers: optsHeaders })\n : _data\n\n // util.types.isPromise is likely needed for jest.\n if (isPromise(body)) {\n // If handleReply is asynchronous, throwing an error\n // in the callback will reject the promise, rather than\n // synchronously throw the error, which breaks some tests.\n // Rather, we wait for the callback to resolve if it is a\n // promise, and then re-run handleReply with the new body.\n body.then((newData) => handleReply(mockDispatches, newData))\n return\n }\n\n const responseData = getResponseData(body)\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n", "'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n", "'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n", "'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(\u2026)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '\u2705' : '\u274C',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n", "'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n", "'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Pool = require('./pool')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n const { clientFactory = defaultFactory } = opts\n\n if (typeof clientFactory !== 'function') {\n throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = opts.headers || {}\n\n if (opts.auth && opts.token) {\n throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token')\n } else if (opts.auth) {\n /* @deprecated in favour of opts.token */\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n } else if (opts.token) {\n this[kProxyHeaders]['proxy-authorization'] = opts.token\n }\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host } = resolvedUrl\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = clientFactory(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError('Proxy response !== 200 when HTTP Tunneling'))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record<string, string>} headers\n * @returns {Record<string, string>}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record<string, string>} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record<string, string>} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n", "'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n", "'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst { webidl } = require('./webidl')\nconst assert = require('assert')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n\n // Trimming the end with `.replace()` and a RegExp is typically subject to\n // ReDoS. This is safer and faster.\n let i = potentialValue.length\n while (/[\\r\\n\\t ]/.test(potentialValue.charAt(--i)));\n return potentialValue.slice(0, i + 1).replace(/^[\\r\\n\\t ]+/, '')\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (const header of object) {\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n throw webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header\u2019s first item, header\u2019s second item) to headers.\n headers.append(header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key \u2192 value in object,\n // append (key, value) to headers\n for (const [key, value] of Object.entries(object)) {\n headers.append(key, value)\n }\n } else {\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n }\n}\n\nclass HeadersList {\n /** @type {[string, string][]|null} */\n cookies = null\n\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n this.cookies = init.cookies\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n this.cookies = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header\u2019s name.\n const lowercaseName = name.toLowerCase()\n const exists = this[kHeadersMap].get(lowercaseName)\n\n // 2. Append (name, value) to list.\n if (exists) {\n const delimiter = lowercaseName === 'cookie' ? '; ' : ', '\n this[kHeadersMap].set(lowercaseName, {\n name: exists.name,\n value: `${exists.value}${delimiter}${value}`\n })\n } else {\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n if (lowercaseName === 'set-cookie') {\n this.cookies ??= []\n this.cookies.push(value)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n const lowercaseName = name.toLowerCase()\n\n if (lowercaseName === 'set-cookie') {\n this.cookies = [value]\n }\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n return this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n\n if (name === 'set-cookie') {\n this.cookies = null\n }\n\n return this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n // 1. If list does not contain name, then return null.\n if (!this.contains(name)) {\n return null\n }\n\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return this[kHeadersMap].get(name.toLowerCase())?.value ?? null\n }\n\n * [Symbol.iterator] () {\n // use the lowercased name\n for (const [name, { value }] of this[kHeadersMap]) {\n yield [name, value]\n }\n }\n\n get entries () {\n const headers = {}\n\n if (this[kHeadersMap].size) {\n for (const { name, value } of this[kHeadersMap].values()) {\n headers[name] = value\n }\n }\n\n return headers\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this\u2019s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers\u2019s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers\u2019s header list.\n // 8. If headers\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n return this[kHeadersList].append(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this\u2019s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this\u2019s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this\u2019s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n return this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this\u2019s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this\u2019s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this\u2019s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n return this[kHeadersList].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n getSetCookie () {\n webidl.brandCheck(this, Headers)\n\n // 1. If this\u2019s header list does not contain `Set-Cookie`, then return \u00AB \u00BB.\n // 2. Return the values of all headers in this\u2019s header list whose name is\n // a byte-case-insensitive match for `Set-Cookie`, in order.\n\n const list = this[kHeadersList].cookies\n\n if (list) {\n return [...list]\n }\n\n return []\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n get [kHeadersSortedMap] () {\n if (this[kHeadersList][kHeadersSortedMap]) {\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n // 1. Let headers be an empty list of headers with the key being the name\n // and value the value.\n const headers = []\n\n // 2. Let names be the result of convert header names to a sorted-lowercase\n // set with all the names of the headers in list.\n const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)\n const cookies = this[kHeadersList].cookies\n\n // 3. For each name of names:\n for (const [name, value] of names) {\n // 1. If name is `set-cookie`, then:\n if (name === 'set-cookie') {\n // 1. Let values be a list of all values of headers in list whose name\n // is a byte-case-insensitive match for name, in order.\n\n // 2. For each value of values:\n // 1. Append (name, value) to headers.\n for (const value of cookies) {\n headers.push([name, value])\n }\n } else {\n // 2. Otherwise:\n\n // 1. Let value be the result of getting name from list.\n\n // 2. Assert: value is non-null.\n assert(value !== null)\n\n // 3. Append (name, value) to headers.\n headers.push([name, value])\n }\n }\n\n this[kHeadersList][kHeadersSortedMap] = headers\n\n // 4. Return headers.\n return headers\n }\n\n keys () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'value'\n )\n }\n\n entries () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key+value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n webidl.brandCheck(this, Headers)\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n getSetCookie: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty,\n [Symbol.iterator]: { enumerable: false },\n [Symbol.toStringTag]: {\n value: 'Headers',\n configurable: true\n }\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence<sequence<ByteString>>'](V)\n }\n\n return webidl.converters['record<ByteString, ByteString>'](V)\n }\n\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n", "'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike,\n isomorphicEncode\n} = require('./util')\nconst {\n redirectStatus,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this\u2019s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data = undefined, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' })\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = new TextEncoder('utf-8').encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this\u2019s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' })\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object\u2019s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatus.includes(status)) {\n throw new RangeError('Invalid status code ' + status)\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this\u2019s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject\u2019s response\u2019s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n const value = isomorphicEncode(URLSerializer(parsedURL))\n\n // 7. Append `Location`/value to responseObject\u2019s response\u2019s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this\u2019s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is this\u2019s response\u2019s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers()\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n // Returns response\u2019s type, e.g., \"cors\".\n get type () {\n webidl.brandCheck(this, Response)\n\n // The type getter steps are to return this\u2019s response\u2019s type.\n return this[kState].type\n }\n\n // Returns response\u2019s URL, if it has one; otherwise the empty string.\n get url () {\n webidl.brandCheck(this, Response)\n\n const urlList = this[kState].urlList\n\n // The url getter steps are to return the empty string if this\u2019s\n // response\u2019s URL is null; otherwise this\u2019s response\u2019s URL,\n // serialized with exclude fragment set to true.\n const url = urlList[urlList.length - 1] ?? null\n\n if (url === null) {\n return ''\n }\n\n return URLSerializer(url, true)\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n webidl.brandCheck(this, Response)\n\n // The redirected getter steps are to return true if this\u2019s response\u2019s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response\u2019s status.\n get status () {\n webidl.brandCheck(this, Response)\n\n // The status getter steps are to return this\u2019s response\u2019s status.\n return this[kState].status\n }\n\n // Returns whether response\u2019s status is an ok status.\n get ok () {\n webidl.brandCheck(this, Response)\n\n // The ok getter steps are to return true if this\u2019s response\u2019s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response\u2019s status message.\n get statusText () {\n webidl.brandCheck(this, Response)\n\n // The statusText getter steps are to return this\u2019s response\u2019s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response\u2019s headers as Headers.\n get headers () {\n webidl.brandCheck(this, Response)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n get body () {\n webidl.brandCheck(this, Response)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Response)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n // Returns a clone of response.\n clone () {\n webidl.brandCheck(this, Response)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n throw webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this\u2019s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Response',\n configurable: true\n }\n})\n\nObject.defineProperties(Response, {\n json: kEnumerableProperty,\n redirect: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response\u2019s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response\u2019s body is non-null, then set newResponse\u2019s body to the\n // result of cloning response\u2019s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response\u2019s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response\u2019s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response\u2019s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(new DOMException('The operation was aborted.', 'AbortError'))\n : makeNetworkError('Request was cancelled.')\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response\u2019s response\u2019s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response\u2019s response\u2019s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response\u2019s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kHeaders], init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n throw webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code ' + response.status\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n types.isAnyArrayBuffer(V) ||\n types.isTypedArray(V) ||\n types.isDataView(V)\n ) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response,\n cloneResponse\n}\n", "/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod,\n makePolicyContainer\n} = require('./util')\nconst {\n forbiddenMethods,\n corsSafeListedMethods,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n requestDuplex\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require('events')\n\nlet TransformStream = globalThis.TransformStream\n\nconst kInit = Symbol('init')\nconst kAbortController = Symbol('abortController')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kInit) {\n return\n }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' })\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin(),\n get origin () {\n return this.baseUrl?.origin\n },\n policyContainer: makePolicyContainer()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this\u2019s relevant settings object\u2019s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input\u2019s request.\n request = input[kState]\n\n // 9. Set signal to input\u2019s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this\u2019s relevant settings object\u2019s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request\u2019s window is an environment settings object and its origin\n // is same origin with origin, then set window to request\u2019s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if ('window' in init) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request\u2019s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request\u2019s method.\n method: request.method,\n // header list A copy of request\u2019s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This\u2019s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request\u2019s priority.\n priority: request.priority,\n // origin request\u2019s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request\u2019s referrer.\n referrer: request.referrer,\n // referrer policy request\u2019s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request\u2019s mode.\n mode: request.mode,\n // credentials mode request\u2019s credentials mode.\n credentials: request.credentials,\n // cache mode request\u2019s cache mode.\n cache: request.cache,\n // redirect mode request\u2019s redirect mode.\n redirect: request.redirect,\n // integrity metadata request\u2019s integrity metadata.\n integrity: request.integrity,\n // keepalive request\u2019s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request\u2019s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request\u2019s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request\u2019s URL list.\n urlList: [...request.urlList]\n })\n\n // 13. If init is not empty, then:\n if (Object.keys(init).length > 0) {\n // 1. If request\u2019s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request\u2019s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request\u2019s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request\u2019s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request\u2019s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request\u2019s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request\u2019s URL to request\u2019s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request\u2019s URL list to \u00AB request\u2019s URL \u00BB.\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request\u2019s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // - parsedReferrer\u2019s scheme is \"about\" and path is the string \"client\"\n // - parsedReferrer\u2019s origin is not same origin with origin\n // then set request\u2019s referrer to \"client\".\n if (\n (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') ||\n (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl))\n ) {\n request.referrer = 'client'\n } else {\n // 4. Otherwise, set request\u2019s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request\u2019s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n throw webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request\u2019s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request\u2019s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n }\n\n // 18. If init[\"cache\"] exists, then set request\u2019s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n }\n\n // 21. If request\u2019s cache mode is \"only-if-cached\" and request\u2019s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request\u2019s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n }\n\n // 23. If init[\"integrity\"] exists, then set request\u2019s integrity metadata to it.\n if (init.integrity !== undefined && init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request\u2019s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(init.method)) {\n throw TypeError(`'${init.method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethods.indexOf(method.toUpperCase()) !== -1) {\n throw TypeError(`'${init.method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethod(init.method)\n\n // 4. Set request\u2019s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this\u2019s request to request.\n this[kState] = request\n\n // 28. Set this\u2019s signal to a new AbortSignal object with this\u2019s relevant\n // Realm.\n // TODO: could this be simplified with AbortSignal.any\n // (https://dom.spec.whatwg.org/#dom-abortsignal-any)\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this\u2019s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n // Keep a strong ref to ac while request object\n // is alive. This is needed to prevent AbortController\n // from being prematurely garbage collected.\n // See, https://github.com/nodejs/undici/issues/1926.\n this[kAbortController] = ac\n\n const acRef = new WeakRef(ac)\n const abort = function () {\n const ac = acRef.deref()\n if (ac !== undefined) {\n ac.abort(this.reason)\n }\n }\n\n // Third-party AbortControllers may not work with these.\n // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n try {\n // If the max amount of listeners is equal to the default, increase it\n // This is only available in node >= v19.9.0\n if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n setMaxListeners(100, signal)\n } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) {\n setMaxListeners(100, signal)\n }\n } catch {}\n\n util.addAbortListener(signal, abort)\n requestFinalizer.register(ac, { signal, abort })\n }\n }\n\n // 30. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is request\u2019s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers()\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this\u2019s request\u2019s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this\u2019s request\u2019s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethods.includes(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this\u2019s headers\u2019s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (Object.keys(init).length !== 0) {\n // 1. Let headers be a copy of this\u2019s headers and its associated header\n // list.\n let headers = new Headers(this[kHeaders])\n\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n if (init.headers !== undefined) {\n headers = init.headers\n }\n\n // 3. Empty this\u2019s headers\u2019s header list.\n this[kHeaders][kHeadersList].clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header\u2019s name/header\u2019s value to this\u2019s headers.\n if (headers.constructor.name === 'Headers') {\n for (const [key, val] of headers) {\n this[kHeaders].append(key, val)\n }\n } else {\n // 5. Otherwise, fill this\u2019s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input\u2019s request\u2019s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request\u2019s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n (init.body != null || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request\u2019s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this\u2019s headers\u2019s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this\u2019s headers.\n if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody\u2019s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If initBody is non-null and init[\"duplex\"] does not exist,\n // then throw a TypeError.\n if (initBody != null && init.duplex == null) {\n throw new TypeError('RequestInit: duplex option is required when sending a body.')\n }\n\n // 2. If this\u2019s request\u2019s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 3. Set this\u2019s request\u2019s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this\u2019s request\u2019s body to finalBody.\n this[kState].body = finalBody\n }\n\n // Returns request\u2019s HTTP method, which is \"GET\" by default.\n get method () {\n webidl.brandCheck(this, Request)\n\n // The method getter steps are to return this\u2019s request\u2019s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n webidl.brandCheck(this, Request)\n\n // The url getter steps are to return this\u2019s request\u2019s URL, serialized.\n return URLSerializer(this[kState].url)\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n webidl.brandCheck(this, Request)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n webidl.brandCheck(this, Request)\n\n // The destination getter are to return this\u2019s request\u2019s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global\u2019s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n webidl.brandCheck(this, Request)\n\n // 1. If this\u2019s request\u2019s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this\u2019s request\u2019s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this\u2019s request\u2019s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request\u2019s\n // referrer.\n get referrerPolicy () {\n webidl.brandCheck(this, Request)\n\n // The referrerPolicy getter steps are to return this\u2019s request\u2019s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n webidl.brandCheck(this, Request)\n\n // The mode getter steps are to return this\u2019s request\u2019s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this\u2019s request\u2019s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser\u2019s cache when fetching.\n get cache () {\n webidl.brandCheck(this, Request)\n\n // The cache getter steps are to return this\u2019s request\u2019s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n webidl.brandCheck(this, Request)\n\n // The redirect getter steps are to return this\u2019s request\u2019s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request\u2019s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n webidl.brandCheck(this, Request)\n\n // The integrity getter steps are to return this\u2019s request\u2019s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n webidl.brandCheck(this, Request)\n\n // The keepalive getter steps are to return this\u2019s request\u2019s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isReloadNavigation getter steps are to return true if this\u2019s\n // request\u2019s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isHistoryNavigation getter steps are to return true if this\u2019s request\u2019s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n webidl.brandCheck(this, Request)\n\n // The signal getter steps are to return this\u2019s signal.\n return this[kSignal]\n }\n\n get body () {\n webidl.brandCheck(this, Request)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Request)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n get duplex () {\n webidl.brandCheck(this, Request)\n\n return 'half'\n }\n\n // Returns a clone of request.\n clone () {\n webidl.brandCheck(this, Request)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this\u2019s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedRequestObject = new Request(kInit)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers()\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject\u2019s signal follow this\u2019s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n util.addAbortListener(\n this.signal,\n () => {\n ac.abort(this.signal.reason)\n }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request\u2019s body is non-null, set newRequest\u2019s body to the\n // result of cloning request\u2019s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty,\n duplex: kEnumerableProperty,\n destination: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n isHistoryNavigation: kEnumerableProperty,\n isReloadNavigation: kEnumerableProperty,\n keepalive: kEnumerableProperty,\n integrity: kEnumerableProperty,\n cache: kEnumerableProperty,\n credentials: kEnumerableProperty,\n attribute: kEnumerableProperty,\n referrerPolicy: kEnumerableProperty,\n referrer: kEnumerableProperty,\n mode: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Request',\n configurable: true\n }\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: referrerPolicy\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: requestMode\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: requestCredentials\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: requestCache\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: requestRedirect\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n },\n {\n key: 'duplex',\n converter: webidl.converters.DOMString,\n allowedValues: requestDuplex\n }\n])\n\nmodule.exports = { Request, makeRequest }\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody,\n readableStreamClose,\n isomorphicEncode,\n urlIsLocal,\n urlIsHttpHttpsScheme,\n urlHasHttpsScheme\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody } = require('./body')\nconst {\n redirectStatus,\n nullBodyStatus,\n safeMethods,\n requestBodyHeader,\n subresource,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\nconst { getGlobalDispatcher } = require('../global')\nconst { webidl } = require('./webidl')\nconst { STATUS_CODES } = require('http')\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream = globalThis.ReadableStream\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n // 2 terminated listeners get added per request,\n // but only 1 gets removed. If there are 20 redirects,\n // 21 listeners will be added.\n // See https://github.com/nodejs/undici/issues/1711\n // TODO (fix): Find and fix root cause for leaked listener.\n this.setMaxListeners(21)\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n // https://fetch.spec.whatwg.org/#fetch-controller-abort\n abort (error) {\n if (this.state !== 'ongoing') {\n return\n }\n\n // 1. Set controller\u2019s state to \"aborted\".\n this.state = 'aborted'\n\n // 2. Let fallbackError be an \"AbortError\" DOMException.\n // 3. Set error to fallbackError if it is not given.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 4. Let serializedError be StructuredSerialize(error).\n // If that threw an exception, catch it, and let\n // serializedError be StructuredSerialize(fallbackError).\n\n // 5. Set controller\u2019s serialized abort reason to serializedError.\n this.serializedAbortReason = error\n\n this.connection?.destroy(error)\n this.emit('terminated', error)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nasync function fetch (input, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' })\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject\u2019s request.\n const request = requestObject[kState]\n\n // 4. If requestObject\u2019s signal\u2019s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort the fetch() call with p, request, null, and\n // requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, null, requestObject.signal.reason)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request\u2019s client\u2019s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request\u2019s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this\u2019s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject\u2019s signal:\n addAbortListener(\n requestObject.signal,\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Assert: controller is non-null.\n assert(controller != null)\n\n // 3. Abort controller with requestObject\u2019s signal\u2019s abort reason.\n controller.abort(requestObject.signal.reason)\n\n // 4. Abort the fetch() call with p, request, responseObject,\n // and requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, responseObject, requestObject.signal.reason)\n }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return\n }\n\n // 2. If response\u2019s aborted flag is set, then:\n if (response.aborted) {\n // 1. Let deserializedError be the result of deserialize a serialized\n // abort reason given controller\u2019s serialized abort reason and\n // relevantRealm.\n\n // 2. Abort the fetch() call with p, request, responseObject, and\n // deserializedError.\n\n abortFetch(p, request, responseObject, controller.serializedAbortReason)\n return\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response\u2019s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response\u2019s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response\u2019s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response\u2019s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL\u2019s scheme is not an HTTP(S) scheme, then return.\n if (!urlIsHttpHttpsScheme(originalURL)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response\u2019s timing allow passed flag is not set, then:\n if (!timingInfo.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo\u2019s end time to the coarsened shared current time\n // given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability.\n // TODO: given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability?\n timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) {\n performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject, error) {\n // Note: AbortSignal.reason was added in node v17.2.0\n // which would give us an undefined error to reject with.\n // Remove this once node v16 is no longer supported.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 1. Reject promise with error.\n p.reject(error)\n\n // 2. If request\u2019s body is not null and is readable, then cancel request\u2019s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 3. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 4. Let response be responseObject\u2019s response.\n const response = responseObject[kState]\n\n // 5. If response\u2019s body is not null and is readable, then error response\u2019s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request\u2019s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request\u2019s client\u2019s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request\u2019s client\u2019s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request\u2019s body is a byte sequence, then set request\u2019s body to\n // request\u2019s body as a body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request\u2019s window is \"client\", then set request\u2019s window to request\u2019s\n // client, if request\u2019s client\u2019s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request\u2019s origin is \"client\", then set request\u2019s origin to request\u2019s\n // client\u2019s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request\u2019s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request\u2019s client is non-null, then set request\u2019s policy\n // container to a clone of request\u2019s client\u2019s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request\u2019s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request\u2019s header list does not contain `Accept`, then:\n if (!request.headersList.contains('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request\u2019s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request\u2019s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request\u2019s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request\u2019s header list.\n if (!request.headersList.contains('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request\u2019s priority is null, then use request\u2019s initiator and\n // destination appropriately in setting request\u2019s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresource.includes(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request\u2019s local-URLs-only flag is set and request\u2019s current URL is\n // not local, then set response to a network error.\n if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request\u2019s referrer policy is the empty string, then set request\u2019s\n // referrer policy to request\u2019s policy container\u2019s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request\u2019s referrer is not \"no-referrer\", then set request\u2019s\n // referrer to the result of invoking determine request\u2019s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request\u2019s current URL\u2019s scheme to \"https\" if all of the following\n // conditions are true:\n // - request\u2019s current URL\u2019s scheme is \"http\"\n // - request\u2019s current URL\u2019s host is a domain\n // - Matching request\u2019s current URL\u2019s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request\u2019s current URL\u2019s origin is same origin with request\u2019s origin,\n // and request\u2019s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request\u2019s current URL\u2019s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request\u2019s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request\u2019s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request\u2019s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request\u2019s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request\u2019s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s current URL\u2019s scheme is not an HTTP(S) scheme\n if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request\u2019s use-CORS-preflight flag is set\n // - request\u2019s unsafe-request flag is set and either request\u2019s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request\u2019s header list is not empty\n // 1. Set request\u2019s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request\u2019s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request\u2019s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response\u2019s header list.\n // TODO\n // 2. If request\u2019s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response\u2019s CORS-exposed header-name list to\n // all unique header names in response\u2019s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response\u2019s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response\u2019s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse\u2019s URL list is empty, then set it to a clone of\n // request\u2019s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request\u2019s timing allow failed flag is unset, then set\n // internalResponse\u2019s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response\u2019s type is \"opaque\", internalResponse\u2019s status is 206,\n // internalResponse\u2019s range-requested flag is set, and request\u2019s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.contains('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request\u2019s method is\n // `HEAD` or `CONNECT`, or internalResponse\u2019s status is a null body status,\n // set internalResponse\u2019s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request\u2019s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request\u2019s response tainting is \"opaque\", or response\u2019s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request\u2019s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response\u2019s body to bytes as a body.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response\u2019s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nasync function schemeFetch (fetchParams) {\n // Note: since the connection is destroyed on redirect, which sets fetchParams to a\n // cancelled state, we do not want this condition to trigger *unless* there have been\n // no redirects. See https://github.com/nodejs/undici/issues/1776\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Let request be fetchParams\u2019s request.\n const { request } = fetchParams\n\n const { protocol: scheme } = requestCurrentURL(request)\n\n // 3. Switch on request\u2019s current URL\u2019s scheme and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request\u2019s current URL\u2019s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is \u00AB (`Content-Type`, `text/html;charset=utf-8`) \u00BB,\n // and body is the empty byte sequence as a body.\n\n // Otherwise, return a network error.\n return makeNetworkError('about scheme is not supported')\n }\n case 'blob:': {\n if (!resolveObjectURL) {\n resolveObjectURL = require('buffer').resolveObjectURL\n }\n\n // 1. Let blobURLEntry be request\u2019s current URL\u2019s blob URL entry.\n const blobURLEntry = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (blobURLEntry.search.length !== 0) {\n return makeNetworkError('NetworkError when attempting to fetch resource.')\n }\n\n const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString())\n\n // 2. If request\u2019s method is not `GET`, blobURLEntry is null, or blobURLEntry\u2019s\n // object is not a Blob object, then return a network error.\n if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n return makeNetworkError('invalid method')\n }\n\n // 3. Let bodyWithType be the result of safely extracting blobURLEntry\u2019s object.\n const bodyWithType = safelyExtractBody(blobURLEntryObject)\n\n // 4. Let body be bodyWithType\u2019s body.\n const body = bodyWithType[0]\n\n // 5. Let length be body\u2019s length, serialized and isomorphic encoded.\n const length = isomorphicEncode(`${body.length}`)\n\n // 6. Let type be bodyWithType\u2019s type if it is non-null; otherwise the empty byte sequence.\n const type = bodyWithType[1] ?? ''\n\n // 7. Return a new response whose status message is `OK`, header list is\n // \u00AB (`Content-Length`, length), (`Content-Type`, type) \u00BB, and body is body.\n const response = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-length', { name: 'Content-Length', value: length }],\n ['content-type', { name: 'Content-Type', value: type }]\n ]\n })\n\n response.body = body\n\n return response\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request\u2019s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return makeNetworkError('failed to fetch the data URL')\n }\n\n // 3. Let mimeType be dataURLStruct\u2019s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is \u00AB (`Content-Type`, mimeType) \u00BB,\n // and body is dataURLStruct\u2019s body as a body.\n return makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', { name: 'Content-Type', value: mimeType }]\n ],\n body: safelyExtractBody(dataURLStruct.body)[0]\n })\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return makeNetworkError('not implemented... yet...')\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return await httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return makeNetworkError('unknown scheme')\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams\u2019s process response done is not null, then queue a fetch\n // task to run fetchParams\u2019s process response done given response, with\n // fetchParams\u2019s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nasync function fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response\u2019s URL list to \u00AB fetchParams\u2019s request\u2019s URL list[0] \u00BB.\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response\u2019s timing info to the result of creating an opaque timing\n // info for fetchParams\u2019s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // If fetchParams\u2019s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams\u2019s process response\n // end-of-body given response with fetchParams\u2019s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams\u2019s process response is non-null, then queue a fetch task\n // to run fetchParams\u2019s process response given response, with fetchParams\u2019s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response\u2019s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n }, {\n size () {\n return 1\n }\n }, {\n size () {\n return 1\n }\n })\n\n // 4. Set response\u2019s body to the result of piping response\u2019s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams\u2019s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams\u2019s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams\u2019s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response\u2019s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams\u2019s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response\u2019s body given processBody, processBodyError,\n // and fetchParams\u2019s task destination.\n await fullyReadBody(response.body, processBody, processBodyError)\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request\u2019s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request\u2019s redirect mode is \"follow\", then set request\u2019s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request\u2019s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request\u2019s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request\u2019s response tainting or response\u2019s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request\u2019s origin, request\u2019s client, request\u2019s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse\u2019s status is a redirect status, then:\n if (redirectStatus.includes(actualResponse.status)) {\n // 1. If actualResponse\u2019s status is not 303, request\u2019s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request\u2019s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nasync function httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response\u2019s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse\u2019s location URL given request\u2019s current\n // URL\u2019s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return makeNetworkError(err)\n }\n\n // 6. If locationURL\u2019s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!urlIsHttpHttpsScheme(locationURL)) {\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // 7. If request\u2019s redirect count is 20, then return a network error.\n if (request.redirectCount === 20) {\n return makeNetworkError('redirect count exceeded')\n }\n\n // 8. Increase request\u2019s redirect count by 1.\n request.redirectCount += 1\n\n // 9. If request\u2019s mode is \"cors\", locationURL includes credentials, and\n // request\u2019s origin is not same origin with locationURL\u2019s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return makeNetworkError('cross origin not allowed for request mode \"cors\"')\n }\n\n // 10. If request\u2019s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n )\n }\n\n // 11. If actualResponse\u2019s status is not 303, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return makeNetworkError()\n }\n\n // 12. If one of the following is true\n // - actualResponse\u2019s status is 301 or 302 and request\u2019s method is `POST`\n // - actualResponse\u2019s status is 303 and request\u2019s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !['GET', 'HEAD'].includes(request.method))\n ) {\n // then:\n // 1. Set request\u2019s method to `GET` and request\u2019s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request\u2019s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request\u2019s current URL\u2019s origin is not same origin with locationURL\u2019s\n // origin, then for each headerName of CORS non-wildcard request-header name,\n // delete headerName from request\u2019s header list.\n if (!sameOrigin(requestCurrentURL(request), locationURL)) {\n // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n request.headersList.delete('authorization')\n }\n\n // 14. If request\u2019s body is non-null, then set request\u2019s body to the first return\n // value of safely extracting request\u2019s body\u2019s source.\n if (request.body != null) {\n assert(request.body.source != null)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 15. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 16. Set timingInfo\u2019s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 17. If timingInfo\u2019s redirect start time is 0, then set timingInfo\u2019s\n // redirect start time to timingInfo\u2019s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 18. Append locationURL to request\u2019s URL list.\n request.urlList.push(locationURL)\n\n // 19. Invoke set request\u2019s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 20. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request\u2019s window is \"no-window\" and request\u2019s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams\u2019s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest\u2019s body\u2019s length, if httpRequest\u2019s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest\u2019s body is null and httpRequest\u2019s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest\u2019s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest\u2019s header list.\n\n // 10. If contentLength is non-null and httpRequest\u2019s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest\u2019s referrer is a URL, then append\n // `Referer`/httpRequest\u2019s referrer, serialized and isomorphic encoded,\n // to httpRequest\u2019s header list.\n if (httpRequest.referrer instanceof URL) {\n httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href))\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest\u2019s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('user-agent')) {\n httpRequest.headersList.append('user-agent', 'undici')\n }\n\n // 15. If httpRequest\u2019s cache mode is \"default\" and httpRequest\u2019s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest\u2019s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.contains('if-modified-since') ||\n httpRequest.headersList.contains('if-none-match') ||\n httpRequest.headersList.contains('if-unmodified-since') ||\n httpRequest.headersList.contains('if-match') ||\n httpRequest.headersList.contains('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest\u2019s cache mode is \"no-cache\", httpRequest\u2019s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest\u2019s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest\u2019s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.contains('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest\u2019s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest\u2019s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest\u2019s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest\u2019s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest\u2019s header list.\n if (httpRequest.headersList.contains('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest\u2019s header list per HTTP. Do not append a given\n // header if httpRequest\u2019s header list contains that header\u2019s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.contains('accept-encoding')) {\n if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest\u2019s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there\u2019s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest\u2019s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest\u2019s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest\u2019s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest\u2019s method is unsafe and forwardResponse\u2019s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethods.includes(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse\u2019s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response\u2019s URL list to a clone of httpRequest\u2019s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest\u2019s header list contains `Range`, then set response\u2019s\n // range-requested flag.\n if (httpRequest.headersList.contains('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response\u2019s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response\u2019s status is 401, httpRequest\u2019s response tainting is not\n // \"cors\", includeCredentials is true, and request\u2019s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response\u2019s status is 407, then:\n if (response.status === 407) {\n // 1. If request\u2019s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request\u2019s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response\u2019s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request\u2019s body is null, or request\u2019s body is non-null and request\u2019s body\u2019s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request\u2019s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request\u2019s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request\u2019s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request\u2019s current URL\u2019s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo\u2019s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection\u2019s\n // timing info, timingInfo\u2019s post-redirect start time, and fetchParams\u2019s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request\u2019s header list.\n\n // 4. Set timingInfo\u2019s final network-request start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request\u2019s body is non-null, and request\u2019s body\u2019s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request\u2019s body in that buffer. If the user agent reads from\n // request\u2019s body beyond that buffer\u2019s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo\u2019s final network-response start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated capability,\n // immediately after the user agent\u2019s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo\u2019s final network-response start time above.\n\n // - If request\u2019s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request\u2019s window is an environment settings object, make the\n // dialog available in request\u2019s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request\u2019s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams\u2019s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams\u2019s process request\n // end-of-body and fetchParams\u2019s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams\u2019s process request body is non-null, then run\n // fetchParams\u2019s process request body given bytes\u2019s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams\u2019s process request end-of-body is non-null,\n // then run fetchParams\u2019s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams\u2019s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request\u2019s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams\u2019s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n // socket is only provided for websockets\n const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody })\n\n if (socket) {\n response = makeResponse({ status, statusText, headersList, socket })\n } else {\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n }\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams\u2019s\n // controller with reason, given reason.\n const cancelAlgorithm = (reason) => {\n fetchParams.controller.abort(reason)\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n {\n highWaterMark: 0,\n size () {\n return 1\n }\n }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response\u2019s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request\u2019s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response\u2019s header list, if any, and request\u2019s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n let isFailure\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n\n // err may be propagated from the result of calling readablestream.cancel,\n // which might not be an error. https://github.com/nodejs/undici/issues/2009\n isFailure = true\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response\u2019s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n readableStreamClose(fetchParams.controller.controller)\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo\u2019s decoded body size by bytes\u2019s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams\u2019s controller.\n if (isFailure) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn\u2019t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response\u2019s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, then error stream with the result of\n // deserialize a serialized abort reason given fetchParams\u2019s\n // controller\u2019s serialized abort reason and an\n // implementation-defined realm.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n fetchParams.controller.serializedAbortReason\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n /** @type {import('../..').Agent} */\n const agent = fetchParams.controller.dispatcher\n\n return new Promise((resolve, reject) => agent.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && request.body.source : body,\n headers: request.headersList.entries,\n maxRedirections: 0,\n upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse()\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers.append(key, val)\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatus.includes(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n if (coding === 'x-gzip' || coding === 'gzip') {\n decoders.push(zlib.createGunzip({\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n }))\n } else if (coding === 'deflate') {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response\u2019s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response\u2019s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo\u2019s encoded body size by bytes\u2019s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n },\n\n onUpgrade (status, headersList, socket) {\n if (status !== 101) {\n return\n }\n\n const headers = new Headers()\n\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n headers.append(key, val)\n }\n\n resolve({\n status,\n statusText: STATUS_CODES[status],\n headersList: headers[kHeadersList],\n socket\n })\n\n return true\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n", "'use strict'\n\nmodule.exports = {\n kState: Symbol('FileReader state'),\n kResult: Symbol('FileReader result'),\n kError: Symbol('FileReader error'),\n kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'),\n kEvents: Symbol('FileReader events'),\n kAborted: Symbol('FileReader aborted')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\n\nconst kState = Symbol('ProgressEvent state')\n\n/**\n * @see https://xhr.spec.whatwg.org/#progressevent\n */\nclass ProgressEvent extends Event {\n constructor (type, eventInitDict = {}) {\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {})\n\n super(type, eventInitDict)\n\n this[kState] = {\n lengthComputable: eventInitDict.lengthComputable,\n loaded: eventInitDict.loaded,\n total: eventInitDict.total\n }\n }\n\n get lengthComputable () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].lengthComputable\n }\n\n get loaded () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].loaded\n }\n\n get total () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].total\n }\n}\n\nwebidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n {\n key: 'lengthComputable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'loaded',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'total',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n])\n\nmodule.exports = {\n ProgressEvent\n}\n", "'use strict'\n\n/**\n * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n * @param {string|undefined} label\n */\nfunction getEncoding (label) {\n if (!label) {\n return 'failure'\n }\n\n // 1. Remove any leading and trailing ASCII whitespace from label.\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, then return the\n // corresponding encoding; otherwise return failure.\n switch (label.trim().toLowerCase()) {\n case 'unicode-1-1-utf-8':\n case 'unicode11utf8':\n case 'unicode20utf8':\n case 'utf-8':\n case 'utf8':\n case 'x-unicode20utf8':\n return 'UTF-8'\n case '866':\n case 'cp866':\n case 'csibm866':\n case 'ibm866':\n return 'IBM866'\n case 'csisolatin2':\n case 'iso-8859-2':\n case 'iso-ir-101':\n case 'iso8859-2':\n case 'iso88592':\n case 'iso_8859-2':\n case 'iso_8859-2:1987':\n case 'l2':\n case 'latin2':\n return 'ISO-8859-2'\n case 'csisolatin3':\n case 'iso-8859-3':\n case 'iso-ir-109':\n case 'iso8859-3':\n case 'iso88593':\n case 'iso_8859-3':\n case 'iso_8859-3:1988':\n case 'l3':\n case 'latin3':\n return 'ISO-8859-3'\n case 'csisolatin4':\n case 'iso-8859-4':\n case 'iso-ir-110':\n case 'iso8859-4':\n case 'iso88594':\n case 'iso_8859-4':\n case 'iso_8859-4:1988':\n case 'l4':\n case 'latin4':\n return 'ISO-8859-4'\n case 'csisolatincyrillic':\n case 'cyrillic':\n case 'iso-8859-5':\n case 'iso-ir-144':\n case 'iso8859-5':\n case 'iso88595':\n case 'iso_8859-5':\n case 'iso_8859-5:1988':\n return 'ISO-8859-5'\n case 'arabic':\n case 'asmo-708':\n case 'csiso88596e':\n case 'csiso88596i':\n case 'csisolatinarabic':\n case 'ecma-114':\n case 'iso-8859-6':\n case 'iso-8859-6-e':\n case 'iso-8859-6-i':\n case 'iso-ir-127':\n case 'iso8859-6':\n case 'iso88596':\n case 'iso_8859-6':\n case 'iso_8859-6:1987':\n return 'ISO-8859-6'\n case 'csisolatingreek':\n case 'ecma-118':\n case 'elot_928':\n case 'greek':\n case 'greek8':\n case 'iso-8859-7':\n case 'iso-ir-126':\n case 'iso8859-7':\n case 'iso88597':\n case 'iso_8859-7':\n case 'iso_8859-7:1987':\n case 'sun_eu_greek':\n return 'ISO-8859-7'\n case 'csiso88598e':\n case 'csisolatinhebrew':\n case 'hebrew':\n case 'iso-8859-8':\n case 'iso-8859-8-e':\n case 'iso-ir-138':\n case 'iso8859-8':\n case 'iso88598':\n case 'iso_8859-8':\n case 'iso_8859-8:1988':\n case 'visual':\n return 'ISO-8859-8'\n case 'csiso88598i':\n case 'iso-8859-8-i':\n case 'logical':\n return 'ISO-8859-8-I'\n case 'csisolatin6':\n case 'iso-8859-10':\n case 'iso-ir-157':\n case 'iso8859-10':\n case 'iso885910':\n case 'l6':\n case 'latin6':\n return 'ISO-8859-10'\n case 'iso-8859-13':\n case 'iso8859-13':\n case 'iso885913':\n return 'ISO-8859-13'\n case 'iso-8859-14':\n case 'iso8859-14':\n case 'iso885914':\n return 'ISO-8859-14'\n case 'csisolatin9':\n case 'iso-8859-15':\n case 'iso8859-15':\n case 'iso885915':\n case 'iso_8859-15':\n case 'l9':\n return 'ISO-8859-15'\n case 'iso-8859-16':\n return 'ISO-8859-16'\n case 'cskoi8r':\n case 'koi':\n case 'koi8':\n case 'koi8-r':\n case 'koi8_r':\n return 'KOI8-R'\n case 'koi8-ru':\n case 'koi8-u':\n return 'KOI8-U'\n case 'csmacintosh':\n case 'mac':\n case 'macintosh':\n case 'x-mac-roman':\n return 'macintosh'\n case 'iso-8859-11':\n case 'iso8859-11':\n case 'iso885911':\n case 'tis-620':\n case 'windows-874':\n return 'windows-874'\n case 'cp1250':\n case 'windows-1250':\n case 'x-cp1250':\n return 'windows-1250'\n case 'cp1251':\n case 'windows-1251':\n case 'x-cp1251':\n return 'windows-1251'\n case 'ansi_x3.4-1968':\n case 'ascii':\n case 'cp1252':\n case 'cp819':\n case 'csisolatin1':\n case 'ibm819':\n case 'iso-8859-1':\n case 'iso-ir-100':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'iso_8859-1:1987':\n case 'l1':\n case 'latin1':\n case 'us-ascii':\n case 'windows-1252':\n case 'x-cp1252':\n return 'windows-1252'\n case 'cp1253':\n case 'windows-1253':\n case 'x-cp1253':\n return 'windows-1253'\n case 'cp1254':\n case 'csisolatin5':\n case 'iso-8859-9':\n case 'iso-ir-148':\n case 'iso8859-9':\n case 'iso88599':\n case 'iso_8859-9':\n case 'iso_8859-9:1989':\n case 'l5':\n case 'latin5':\n case 'windows-1254':\n case 'x-cp1254':\n return 'windows-1254'\n case 'cp1255':\n case 'windows-1255':\n case 'x-cp1255':\n return 'windows-1255'\n case 'cp1256':\n case 'windows-1256':\n case 'x-cp1256':\n return 'windows-1256'\n case 'cp1257':\n case 'windows-1257':\n case 'x-cp1257':\n return 'windows-1257'\n case 'cp1258':\n case 'windows-1258':\n case 'x-cp1258':\n return 'windows-1258'\n case 'x-mac-cyrillic':\n case 'x-mac-ukrainian':\n return 'x-mac-cyrillic'\n case 'chinese':\n case 'csgb2312':\n case 'csiso58gb231280':\n case 'gb2312':\n case 'gb_2312':\n case 'gb_2312-80':\n case 'gbk':\n case 'iso-ir-58':\n case 'x-gbk':\n return 'GBK'\n case 'gb18030':\n return 'gb18030'\n case 'big5':\n case 'big5-hkscs':\n case 'cn-big5':\n case 'csbig5':\n case 'x-x-big5':\n return 'Big5'\n case 'cseucpkdfmtjapanese':\n case 'euc-jp':\n case 'x-euc-jp':\n return 'EUC-JP'\n case 'csiso2022jp':\n case 'iso-2022-jp':\n return 'ISO-2022-JP'\n case 'csshiftjis':\n case 'ms932':\n case 'ms_kanji':\n case 'shift-jis':\n case 'shift_jis':\n case 'sjis':\n case 'windows-31j':\n case 'x-sjis':\n return 'Shift_JIS'\n case 'cseuckr':\n case 'csksc56011987':\n case 'euc-kr':\n case 'iso-ir-149':\n case 'korean':\n case 'ks_c_5601-1987':\n case 'ks_c_5601-1989':\n case 'ksc5601':\n case 'ksc_5601':\n case 'windows-949':\n return 'EUC-KR'\n case 'csiso2022kr':\n case 'hz-gb-2312':\n case 'iso-2022-cn':\n case 'iso-2022-cn-ext':\n case 'iso-2022-kr':\n case 'replacement':\n return 'replacement'\n case 'unicodefffe':\n case 'utf-16be':\n return 'UTF-16BE'\n case 'csunicode':\n case 'iso-10646-ucs-2':\n case 'ucs-2':\n case 'unicode':\n case 'unicodefeff':\n case 'utf-16':\n case 'utf-16le':\n return 'UTF-16LE'\n case 'x-user-defined':\n return 'x-user-defined'\n default: return 'failure'\n }\n}\n\nmodule.exports = {\n getEncoding\n}\n", "'use strict'\n\nconst {\n kState,\n kError,\n kResult,\n kAborted,\n kLastProgressEventFired\n} = require('./symbols')\nconst { ProgressEvent } = require('./progressevent')\nconst { getEncoding } = require('./encoding')\nconst { DOMException } = require('../fetch/constants')\nconst { serializeAMimeType, parseMIMEType } = require('../fetch/dataURL')\nconst { types } = require('util')\nconst { StringDecoder } = require('string_decoder')\nconst { btoa } = require('buffer')\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#readOperation\n * @param {import('./filereader').FileReader} fr\n * @param {import('buffer').Blob} blob\n * @param {string} type\n * @param {string?} encodingName\n */\nfunction readOperation (fr, blob, type, encodingName) {\n // 1. If fr\u2019s state is \"loading\", throw an InvalidStateError\n // DOMException.\n if (fr[kState] === 'loading') {\n throw new DOMException('Invalid state', 'InvalidStateError')\n }\n\n // 2. Set fr\u2019s state to \"loading\".\n fr[kState] = 'loading'\n\n // 3. Set fr\u2019s result to null.\n fr[kResult] = null\n\n // 4. Set fr\u2019s error to null.\n fr[kError] = null\n\n // 5. Let stream be the result of calling get stream on blob.\n /** @type {import('stream/web').ReadableStream} */\n const stream = blob.stream()\n\n // 6. Let reader be the result of getting a reader from stream.\n const reader = stream.getReader()\n\n // 7. Let bytes be an empty byte sequence.\n /** @type {Uint8Array[]} */\n const bytes = []\n\n // 8. Let chunkPromise be the result of reading a chunk from\n // stream with reader.\n let chunkPromise = reader.read()\n\n // 9. Let isFirstChunk be true.\n let isFirstChunk = true\n\n // 10. In parallel, while true:\n // Note: \"In parallel\" just means non-blocking\n // Note 2: readOperation itself cannot be async as double\n // reading the body would then reject the promise, instead\n // of throwing an error.\n ;(async () => {\n while (!fr[kAborted]) {\n // 1. Wait for chunkPromise to be fulfilled or rejected.\n try {\n const { done, value } = await chunkPromise\n\n // 2. If chunkPromise is fulfilled, and isFirstChunk is\n // true, queue a task to fire a progress event called\n // loadstart at fr.\n if (isFirstChunk && !fr[kAborted]) {\n queueMicrotask(() => {\n fireAProgressEvent('loadstart', fr)\n })\n }\n\n // 3. Set isFirstChunk to false.\n isFirstChunk = false\n\n // 4. If chunkPromise is fulfilled with an object whose\n // done property is false and whose value property is\n // a Uint8Array object, run these steps:\n if (!done && types.isUint8Array(value)) {\n // 1. Let bs be the byte sequence represented by the\n // Uint8Array object.\n\n // 2. Append bs to bytes.\n bytes.push(value)\n\n // 3. If roughly 50ms have passed since these steps\n // were last invoked, queue a task to fire a\n // progress event called progress at fr.\n if (\n (\n fr[kLastProgressEventFired] === undefined ||\n Date.now() - fr[kLastProgressEventFired] >= 50\n ) &&\n !fr[kAborted]\n ) {\n fr[kLastProgressEventFired] = Date.now()\n queueMicrotask(() => {\n fireAProgressEvent('progress', fr)\n })\n }\n\n // 4. Set chunkPromise to the result of reading a\n // chunk from stream with reader.\n chunkPromise = reader.read()\n } else if (done) {\n // 5. Otherwise, if chunkPromise is fulfilled with an\n // object whose done property is true, queue a task\n // to run the following steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Let result be the result of package data given\n // bytes, type, blob\u2019s type, and encodingName.\n try {\n const result = packageData(bytes, type, blob.type, encodingName)\n\n // 4. Else:\n\n if (fr[kAborted]) {\n return\n }\n\n // 1. Set fr\u2019s result to result.\n fr[kResult] = result\n\n // 2. Fire a progress event called load at the fr.\n fireAProgressEvent('load', fr)\n } catch (error) {\n // 3. If package data threw an exception error:\n\n // 1. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 2. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n }\n\n // 5. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at the fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n } catch (error) {\n if (fr[kAborted]) {\n return\n }\n\n // 6. Otherwise, if chunkPromise is rejected with an\n // error error, queue a task to run the following\n // steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 3. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n\n // 4. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n }\n })()\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e The name of the event\n * @param {import('./filereader').FileReader} reader\n */\nfunction fireAProgressEvent (e, reader) {\n // The progress event e does not bubble. e.bubbles must be false\n // The progress event e is NOT cancelable. e.cancelable must be false\n const event = new ProgressEvent(e, {\n bubbles: false,\n cancelable: false\n })\n\n reader.dispatchEvent(event)\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#blob-package-data\n * @param {Uint8Array[]} bytes\n * @param {string} type\n * @param {string?} mimeType\n * @param {string?} encodingName\n */\nfunction packageData (bytes, type, mimeType, encodingName) {\n // 1. A Blob has an associated package data algorithm, given\n // bytes, a type, a optional mimeType, and a optional\n // encodingName, which switches on type and runs the\n // associated steps:\n\n switch (type) {\n case 'DataURL': {\n // 1. Return bytes as a DataURL [RFC2397] subject to\n // the considerations below:\n // * Use mimeType as part of the Data URL if it is\n // available in keeping with the Data URL\n // specification [RFC2397].\n // * If mimeType is not available return a Data URL\n // without a media-type. [RFC2397].\n\n // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n // dataurl := \"data:\" [ mediatype ] [ \";base64\" ] \",\" data\n // mediatype := [ type \"/\" subtype ] *( \";\" parameter )\n // data := *urlchar\n // parameter := attribute \"=\" value\n let dataURL = 'data:'\n\n const parsed = parseMIMEType(mimeType || 'application/octet-stream')\n\n if (parsed !== 'failure') {\n dataURL += serializeAMimeType(parsed)\n }\n\n dataURL += ';base64,'\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n dataURL += btoa(decoder.write(chunk))\n }\n\n dataURL += btoa(decoder.end())\n\n return dataURL\n }\n case 'Text': {\n // 1. Let encoding be failure\n let encoding = 'failure'\n\n // 2. If the encodingName is present, set encoding to the\n // result of getting an encoding from encodingName.\n if (encodingName) {\n encoding = getEncoding(encodingName)\n }\n\n // 3. If encoding is failure, and mimeType is present:\n if (encoding === 'failure' && mimeType) {\n // 1. Let type be the result of parse a MIME type\n // given mimeType.\n const type = parseMIMEType(mimeType)\n\n // 2. If type is not failure, set encoding to the result\n // of getting an encoding from type\u2019s parameters[\"charset\"].\n if (type !== 'failure') {\n encoding = getEncoding(type.parameters.get('charset'))\n }\n }\n\n // 4. If encoding is failure, then set encoding to UTF-8.\n if (encoding === 'failure') {\n encoding = 'UTF-8'\n }\n\n // 5. Decode bytes using fallback encoding encoding, and\n // return the result.\n return decode(bytes, encoding)\n }\n case 'ArrayBuffer': {\n // Return a new ArrayBuffer whose contents are bytes.\n const sequence = combineByteSequences(bytes)\n\n return sequence.buffer\n }\n case 'BinaryString': {\n // Return bytes as a binary string, in which every byte\n // is represented by a code unit of equal value [0..255].\n let binaryString = ''\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n binaryString += decoder.write(chunk)\n }\n\n binaryString += decoder.end()\n\n return binaryString\n }\n }\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#decode\n * @param {Uint8Array[]} ioQueue\n * @param {string} encoding\n */\nfunction decode (ioQueue, encoding) {\n const bytes = combineByteSequences(ioQueue)\n\n // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n const BOMEncoding = BOMSniffing(bytes)\n\n let slice = 0\n\n // 2. If BOMEncoding is non-null:\n if (BOMEncoding !== null) {\n // 1. Set encoding to BOMEncoding.\n encoding = BOMEncoding\n\n // 2. Read three bytes from ioQueue, if BOMEncoding is\n // UTF-8; otherwise read two bytes.\n // (Do nothing with those bytes.)\n slice = BOMEncoding === 'UTF-8' ? 3 : 2\n }\n\n // 3. Process a queue with an instance of encoding\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n\n // 4. Return output.\n\n const sliced = bytes.slice(slice)\n return new TextDecoder(encoding).decode(sliced)\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#bom-sniff\n * @param {Uint8Array} ioQueue\n */\nfunction BOMSniffing (ioQueue) {\n // 1. Let BOM be the result of peeking 3 bytes from ioQueue,\n // converted to a byte sequence.\n const [a, b, c] = ioQueue\n\n // 2. For each of the rows in the table below, starting with\n // the first one and going down, if BOM starts with the\n // bytes given in the first column, then return the\n // encoding given in the cell in the second column of that\n // row. Otherwise, return null.\n if (a === 0xEF && b === 0xBB && c === 0xBF) {\n return 'UTF-8'\n } else if (a === 0xFE && b === 0xFF) {\n return 'UTF-16BE'\n } else if (a === 0xFF && b === 0xFE) {\n return 'UTF-16LE'\n }\n\n return null\n}\n\n/**\n * @param {Uint8Array[]} sequences\n */\nfunction combineByteSequences (sequences) {\n const size = sequences.reduce((a, b) => {\n return a + b.byteLength\n }, 0)\n\n let offset = 0\n\n return sequences.reduce((a, b) => {\n a.set(b, offset)\n offset += b.byteLength\n return a\n }, new Uint8Array(size))\n}\n\nmodule.exports = {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n}\n", "'use strict'\n\nconst {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n} = require('./util')\nconst {\n kState,\n kError,\n kResult,\n kEvents,\n kAborted\n} = require('./symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass FileReader extends EventTarget {\n constructor () {\n super()\n\n this[kState] = 'empty'\n this[kResult] = null\n this[kError] = null\n this[kEvents] = {\n loadend: null,\n error: null,\n abort: null,\n load: null,\n progress: null,\n loadstart: null\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n * @param {import('buffer').Blob} blob\n */\n readAsArrayBuffer (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsArrayBuffer(blob) method, when invoked,\n // must initiate a read operation for blob with ArrayBuffer.\n readOperation(this, blob, 'ArrayBuffer')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n * @param {import('buffer').Blob} blob\n */\n readAsBinaryString (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsBinaryString(blob) method, when invoked,\n // must initiate a read operation for blob with BinaryString.\n readOperation(this, blob, 'BinaryString')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsDataText\n * @param {import('buffer').Blob} blob\n * @param {string?} encoding\n */\n readAsText (blob, encoding = undefined) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n if (encoding !== undefined) {\n encoding = webidl.converters.DOMString(encoding)\n }\n\n // The readAsText(blob, encoding) method, when invoked,\n // must initiate a read operation for blob with Text and encoding.\n readOperation(this, blob, 'Text', encoding)\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n * @param {import('buffer').Blob} blob\n */\n readAsDataURL (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsDataURL(blob) method, when invoked, must\n // initiate a read operation for blob with DataURL.\n readOperation(this, blob, 'DataURL')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-abort\n */\n abort () {\n // 1. If this's state is \"empty\" or if this's state is\n // \"done\" set this's result to null and terminate\n // this algorithm.\n if (this[kState] === 'empty' || this[kState] === 'done') {\n this[kResult] = null\n return\n }\n\n // 2. If this's state is \"loading\" set this's state to\n // \"done\" and set this's result to null.\n if (this[kState] === 'loading') {\n this[kState] = 'done'\n this[kResult] = null\n }\n\n // 3. If there are any tasks from this on the file reading\n // task source in an affiliated task queue, then remove\n // those tasks from that task queue.\n this[kAborted] = true\n\n // 4. Terminate the algorithm for the read method being processed.\n // TODO\n\n // 5. Fire a progress event called abort at this.\n fireAProgressEvent('abort', this)\n\n // 6. If this's state is not \"loading\", fire a progress\n // event called loadend at this.\n if (this[kState] !== 'loading') {\n fireAProgressEvent('loadend', this)\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n */\n get readyState () {\n webidl.brandCheck(this, FileReader)\n\n switch (this[kState]) {\n case 'empty': return this.EMPTY\n case 'loading': return this.LOADING\n case 'done': return this.DONE\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n */\n get result () {\n webidl.brandCheck(this, FileReader)\n\n // The result attribute\u2019s getter, when invoked, must return\n // this's result.\n return this[kResult]\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n */\n get error () {\n webidl.brandCheck(this, FileReader)\n\n // The error attribute\u2019s getter, when invoked, must return\n // this's error.\n return this[kError]\n }\n\n get onloadend () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadend\n }\n\n set onloadend (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadend) {\n this.removeEventListener('loadend', this[kEvents].loadend)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadend = fn\n this.addEventListener('loadend', fn)\n } else {\n this[kEvents].loadend = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].error) {\n this.removeEventListener('error', this[kEvents].error)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].error = fn\n this.addEventListener('error', fn)\n } else {\n this[kEvents].error = null\n }\n }\n\n get onloadstart () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadstart\n }\n\n set onloadstart (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadstart) {\n this.removeEventListener('loadstart', this[kEvents].loadstart)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadstart = fn\n this.addEventListener('loadstart', fn)\n } else {\n this[kEvents].loadstart = null\n }\n }\n\n get onprogress () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].progress\n }\n\n set onprogress (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].progress) {\n this.removeEventListener('progress', this[kEvents].progress)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].progress = fn\n this.addEventListener('progress', fn)\n } else {\n this[kEvents].progress = null\n }\n }\n\n get onload () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].load\n }\n\n set onload (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].load) {\n this.removeEventListener('load', this[kEvents].load)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].load = fn\n this.addEventListener('load', fn)\n } else {\n this[kEvents].load = null\n }\n }\n\n get onabort () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].abort\n }\n\n set onabort (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].abort) {\n this.removeEventListener('abort', this[kEvents].abort)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].abort = fn\n this.addEventListener('abort', fn)\n } else {\n this[kEvents].abort = null\n }\n }\n}\n\n// https://w3c.github.io/FileAPI/#dom-filereader-empty\nFileReader.EMPTY = FileReader.prototype.EMPTY = 0\n// https://w3c.github.io/FileAPI/#dom-filereader-loading\nFileReader.LOADING = FileReader.prototype.LOADING = 1\n// https://w3c.github.io/FileAPI/#dom-filereader-done\nFileReader.DONE = FileReader.prototype.DONE = 2\n\nObject.defineProperties(FileReader.prototype, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors,\n readAsArrayBuffer: kEnumerableProperty,\n readAsBinaryString: kEnumerableProperty,\n readAsText: kEnumerableProperty,\n readAsDataURL: kEnumerableProperty,\n abort: kEnumerableProperty,\n readyState: kEnumerableProperty,\n result: kEnumerableProperty,\n error: kEnumerableProperty,\n onloadstart: kEnumerableProperty,\n onprogress: kEnumerableProperty,\n onload: kEnumerableProperty,\n onabort: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onloadend: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'FileReader',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(FileReader, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors\n})\n\nmodule.exports = {\n FileReader\n}\n", "'use strict'\n\nmodule.exports = {\n kConstruct: Symbol('constructable')\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { isValidHeaderName } = require('../fetch/util')\n\n/**\n * @see https://url.spec.whatwg.org/#concept-url-equals\n * @param {URL} A\n * @param {URL} B\n * @param {boolean | undefined} excludeFragment\n * @returns {boolean}\n */\nfunction urlEquals (A, B, excludeFragment = false) {\n const serializedA = URLSerializer(A, excludeFragment)\n\n const serializedB = URLSerializer(B, excludeFragment)\n\n return serializedA === serializedB\n}\n\n/**\n * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262\n * @param {string} header\n */\nfunction fieldValues (header) {\n assert(header !== null)\n\n const values = []\n\n for (let value of header.split(',')) {\n value = value.trim()\n\n if (!value.length) {\n continue\n } else if (!isValidHeaderName(value)) {\n continue\n }\n\n values.push(value)\n }\n\n return values\n}\n\nmodule.exports = {\n urlEquals,\n fieldValues\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { urlEquals, fieldValues: getFieldValues } = require('./util')\nconst { kEnumerableProperty, isDisturbed } = require('../core/util')\nconst { kHeadersList } = require('../core/symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { Response, cloneResponse } = require('../fetch/response')\nconst { Request } = require('../fetch/request')\nconst { kState, kHeaders, kGuard, kRealm } = require('../fetch/symbols')\nconst { fetching } = require('../fetch/index')\nconst { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')\nconst assert = require('assert')\nconst { getGlobalDispatcher } = require('../global')\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation\n * @typedef {Object} CacheBatchOperation\n * @property {'delete' | 'put'} type\n * @property {any} request\n * @property {any} response\n * @property {import('../../types/cache').CacheQueryOptions} options\n */\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list\n * @typedef {[any, any][]} requestResponseList\n */\n\nclass Cache {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list\n * @type {requestResponseList}\n */\n #relevantRequestResponseList\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n\n this.#relevantRequestResponseList = arguments[1]\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n const p = await this.matchAll(request, options)\n\n if (p.length === 0) {\n return\n }\n\n return p[0]\n }\n\n async matchAll (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') {\n // 2.2.1\n r = new Request(request)[kState]\n }\n }\n\n // 5.\n // 5.1\n const responses = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n responses.push(requestResponse[1])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n responses.push(requestResponse[1])\n }\n }\n\n // 5.4\n // We don't implement CORs so we don't need to loop over the responses, yay!\n\n // 5.5.1\n const responseList = []\n\n // 5.5.2\n for (const response of responses) {\n // 5.5.2.1\n const responseObject = new Response(response.body?.source ?? null)\n const body = responseObject[kState].body\n responseObject[kState] = response\n responseObject[kState].body = body\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n\n responseList.push(responseObject)\n }\n\n // 6.\n return Object.freeze(responseList)\n }\n\n async add (request) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })\n\n request = webidl.converters.RequestInfo(request)\n\n // 1.\n const requests = [request]\n\n // 2.\n const responseArrayPromise = this.addAll(requests)\n\n // 3.\n return await responseArrayPromise\n }\n\n async addAll (requests) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })\n\n requests = webidl.converters['sequence<RequestInfo>'](requests)\n\n // 1.\n const responsePromises = []\n\n // 2.\n const requestList = []\n\n // 3.\n for (const request of requests) {\n if (typeof request === 'string') {\n continue\n }\n\n // 3.1\n const r = request[kState]\n\n // 3.2\n if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme when method is not GET.'\n })\n }\n }\n\n // 4.\n /** @type {ReturnType<typeof fetching>[]} */\n const fetchControllers = []\n\n // 5.\n for (const request of requests) {\n // 5.1\n const r = new Request(request)[kState]\n\n // 5.2\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme.'\n })\n }\n\n // 5.4\n r.initiator = 'fetch'\n r.destination = 'subresource'\n\n // 5.5\n requestList.push(r)\n\n // 5.6\n const responsePromise = createDeferredPromise()\n\n // 5.7\n fetchControllers.push(fetching({\n request: r,\n dispatcher: getGlobalDispatcher(),\n processResponse (response) {\n // 1.\n if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Received an invalid status code or the request failed.'\n }))\n } else if (response.headersList.contains('vary')) { // 2.\n // 2.1\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n // 2.2\n for (const fieldValue of fieldValues) {\n // 2.2.1\n if (fieldValue === '*') {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'invalid vary field value'\n }))\n\n for (const controller of fetchControllers) {\n controller.abort()\n }\n\n return\n }\n }\n }\n },\n processResponseEndOfBody (response) {\n // 1.\n if (response.aborted) {\n responsePromise.reject(new DOMException('aborted', 'AbortError'))\n return\n }\n\n // 2.\n responsePromise.resolve(response)\n }\n }))\n\n // 5.8\n responsePromises.push(responsePromise.promise)\n }\n\n // 6.\n const p = Promise.all(responsePromises)\n\n // 7.\n const responses = await p\n\n // 7.1\n const operations = []\n\n // 7.2\n let index = 0\n\n // 7.3\n for (const response of responses) {\n // 7.3.1\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 7.3.2\n request: requestList[index], // 7.3.3\n response // 7.3.4\n }\n\n operations.push(operation) // 7.3.5\n\n index++ // 7.3.6\n }\n\n // 7.5\n const cacheJobPromise = createDeferredPromise()\n\n // 7.6.1\n let errorData = null\n\n // 7.6.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 7.6.3\n queueMicrotask(() => {\n // 7.6.3.1\n if (errorData === null) {\n cacheJobPromise.resolve(undefined)\n } else {\n // 7.6.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n // 7.7\n return cacheJobPromise.promise\n }\n\n async put (request, response) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })\n\n request = webidl.converters.RequestInfo(request)\n response = webidl.converters.Response(response)\n\n // 1.\n let innerRequest = null\n\n // 2.\n if (request instanceof Request) {\n innerRequest = request[kState]\n } else { // 3.\n innerRequest = new Request(request)[kState]\n }\n\n // 4.\n if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Expected an http/s scheme when method is not GET'\n })\n }\n\n // 5.\n const innerResponse = response[kState]\n\n // 6.\n if (innerResponse.status === 206) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got 206 status'\n })\n }\n\n // 7.\n if (innerResponse.headersList.contains('vary')) {\n // 7.1.\n const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))\n\n // 7.2.\n for (const fieldValue of fieldValues) {\n // 7.2.1\n if (fieldValue === '*') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got * vary field value'\n })\n }\n }\n }\n\n // 8.\n if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Response body is locked or disturbed'\n })\n }\n\n // 9.\n const clonedResponse = cloneResponse(innerResponse)\n\n // 10.\n const bodyReadPromise = createDeferredPromise()\n\n // 11.\n if (innerResponse.body != null) {\n // 11.1\n const stream = innerResponse.body.stream\n\n // 11.2\n const reader = stream.getReader()\n\n // 11.3\n readAllBytes(\n reader,\n (bytes) => bodyReadPromise.resolve(bytes),\n (error) => bodyReadPromise.reject(error)\n )\n } else {\n bodyReadPromise.resolve(undefined)\n }\n\n // 12.\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n // 13.\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 14.\n request: innerRequest, // 15.\n response: clonedResponse // 16.\n }\n\n // 17.\n operations.push(operation)\n\n // 19.\n const bytes = await bodyReadPromise.promise\n\n if (clonedResponse.body != null) {\n clonedResponse.body.source = bytes\n }\n\n // 19.1\n const cacheJobPromise = createDeferredPromise()\n\n // 19.2.1\n let errorData = null\n\n // 19.2.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 19.2.3\n queueMicrotask(() => {\n // 19.2.3.1\n if (errorData === null) {\n cacheJobPromise.resolve()\n } else { // 19.2.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n async delete (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n /**\n * @type {Request}\n */\n let r = null\n\n if (request instanceof Request) {\n r = request[kState]\n\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return false\n }\n } else {\n assert(typeof request === 'string')\n\n r = new Request(request)[kState]\n }\n\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'delete',\n request: r,\n options\n }\n\n operations.push(operation)\n\n const cacheJobPromise = createDeferredPromise()\n\n let errorData = null\n let requestResponses\n\n try {\n requestResponses = this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n queueMicrotask(() => {\n if (errorData === null) {\n cacheJobPromise.resolve(!!requestResponses?.length)\n } else {\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys\n * @param {any} request\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @returns {readonly Request[]}\n */\n async keys (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n // 2.1\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') { // 2.2\n r = new Request(request)[kState]\n }\n }\n\n // 4.\n const promise = createDeferredPromise()\n\n // 5.\n // 5.1\n const requests = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n // 5.2.1.1\n requests.push(requestResponse[0])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n // 5.3.2.1\n requests.push(requestResponse[0])\n }\n }\n\n // 5.4\n queueMicrotask(() => {\n // 5.4.1\n const requestList = []\n\n // 5.4.2\n for (const request of requests) {\n const requestObject = new Request('https://a')\n requestObject[kState] = request\n requestObject[kHeaders][kHeadersList] = request.headersList\n requestObject[kHeaders][kGuard] = 'immutable'\n requestObject[kRealm] = request.client\n\n // 5.4.2.1\n requestList.push(requestObject)\n }\n\n // 5.4.3\n promise.resolve(Object.freeze(requestList))\n })\n\n return promise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm\n * @param {CacheBatchOperation[]} operations\n * @returns {requestResponseList}\n */\n #batchCacheOperations (operations) {\n // 1.\n const cache = this.#relevantRequestResponseList\n\n // 2.\n const backupCache = [...cache]\n\n // 3.\n const addedItems = []\n\n // 4.1\n const resultList = []\n\n try {\n // 4.2\n for (const operation of operations) {\n // 4.2.1\n if (operation.type !== 'delete' && operation.type !== 'put') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'operation type does not match \"delete\" or \"put\"'\n })\n }\n\n // 4.2.2\n if (operation.type === 'delete' && operation.response != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'delete operation should not have an associated response'\n })\n }\n\n // 4.2.3\n if (this.#queryCache(operation.request, operation.options, addedItems).length) {\n throw new DOMException('???', 'InvalidStateError')\n }\n\n // 4.2.4\n let requestResponses\n\n // 4.2.5\n if (operation.type === 'delete') {\n // 4.2.5.1\n requestResponses = this.#queryCache(operation.request, operation.options)\n\n // TODO: the spec is wrong, this is needed to pass WPTs\n if (requestResponses.length === 0) {\n return []\n }\n\n // 4.2.5.2\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.5.2.1\n cache.splice(idx, 1)\n }\n } else if (operation.type === 'put') { // 4.2.6\n // 4.2.6.1\n if (operation.response == null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'put operation should have an associated response'\n })\n }\n\n // 4.2.6.2\n const r = operation.request\n\n // 4.2.6.3\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'expected http or https scheme'\n })\n }\n\n // 4.2.6.4\n if (r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'not get method'\n })\n }\n\n // 4.2.6.5\n if (operation.options != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'options must not be defined'\n })\n }\n\n // 4.2.6.6\n requestResponses = this.#queryCache(operation.request)\n\n // 4.2.6.7\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.6.7.1\n cache.splice(idx, 1)\n }\n\n // 4.2.6.8\n cache.push([operation.request, operation.response])\n\n // 4.2.6.10\n addedItems.push([operation.request, operation.response])\n }\n\n // 4.2.7\n resultList.push([operation.request, operation.response])\n }\n\n // 4.3\n return resultList\n } catch (e) { // 5.\n // 5.1\n this.#relevantRequestResponseList.length = 0\n\n // 5.2\n this.#relevantRequestResponseList = backupCache\n\n // 5.3\n throw e\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#query-cache\n * @param {any} requestQuery\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @param {requestResponseList} targetStorage\n * @returns {requestResponseList}\n */\n #queryCache (requestQuery, options, targetStorage) {\n /** @type {requestResponseList} */\n const resultList = []\n\n const storage = targetStorage ?? this.#relevantRequestResponseList\n\n for (const requestResponse of storage) {\n const [cachedRequest, cachedResponse] = requestResponse\n if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {\n resultList.push(requestResponse)\n }\n }\n\n return resultList\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm\n * @param {any} requestQuery\n * @param {any} request\n * @param {any | null} response\n * @param {import('../../types/cache').CacheQueryOptions | undefined} options\n * @returns {boolean}\n */\n #requestMatchesCachedItem (requestQuery, request, response = null, options) {\n // if (options?.ignoreMethod === false && request.method === 'GET') {\n // return false\n // }\n\n const queryURL = new URL(requestQuery.url)\n\n const cachedURL = new URL(request.url)\n\n if (options?.ignoreSearch) {\n cachedURL.search = ''\n\n queryURL.search = ''\n }\n\n if (!urlEquals(queryURL, cachedURL, true)) {\n return false\n }\n\n if (\n response == null ||\n options?.ignoreVary ||\n !response.headersList.contains('vary')\n ) {\n return true\n }\n\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n for (const fieldValue of fieldValues) {\n if (fieldValue === '*') {\n return false\n }\n\n const requestValue = request.headersList.get(fieldValue)\n const queryValue = requestQuery.headersList.get(fieldValue)\n\n // If one has the header and the other doesn't, or one has\n // a different value than the other, return false\n if (requestValue !== queryValue) {\n return false\n }\n }\n\n return true\n }\n}\n\nObject.defineProperties(Cache.prototype, {\n [Symbol.toStringTag]: {\n value: 'Cache',\n configurable: true\n },\n match: kEnumerableProperty,\n matchAll: kEnumerableProperty,\n add: kEnumerableProperty,\n addAll: kEnumerableProperty,\n put: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nconst cacheQueryOptionConverters = [\n {\n key: 'ignoreSearch',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreMethod',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreVary',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)\n\nwebidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([\n ...cacheQueryOptionConverters,\n {\n key: 'cacheName',\n converter: webidl.converters.DOMString\n }\n])\n\nwebidl.converters.Response = webidl.interfaceConverter(Response)\n\nwebidl.converters['sequence<RequestInfo>'] = webidl.sequenceConverter(\n webidl.converters.RequestInfo\n)\n\nmodule.exports = {\n Cache\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { Cache } = require('./cache')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass CacheStorage {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map\n * @type {Map<string, import('./cache').requestResponseList}\n */\n #caches = new Map()\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.MultiCacheQueryOptions(options)\n\n // 1.\n if (options.cacheName != null) {\n // 1.1.1.1\n if (this.#caches.has(options.cacheName)) {\n // 1.1.1.1.1\n const cacheList = this.#caches.get(options.cacheName)\n const cache = new Cache(kConstruct, cacheList)\n\n return await cache.match(request, options)\n }\n } else { // 2.\n // 2.2\n for (const cacheList of this.#caches.values()) {\n const cache = new Cache(kConstruct, cacheList)\n\n // 2.2.1.2\n const response = await cache.match(request, options)\n\n if (response !== undefined) {\n return response\n }\n }\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-has\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async has (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1.1\n // 2.2\n return this.#caches.has(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open\n * @param {string} cacheName\n * @returns {Promise<Cache>}\n */\n async open (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1\n if (this.#caches.has(cacheName)) {\n // await caches.open('v1') !== await caches.open('v1')\n\n // 2.1.1\n const cache = this.#caches.get(cacheName)\n\n // 2.1.1.1\n return new Cache(kConstruct, cache)\n }\n\n // 2.2\n const cache = []\n\n // 2.3\n this.#caches.set(cacheName, cache)\n\n // 2.4\n return new Cache(kConstruct, cache)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async delete (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n return this.#caches.delete(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys\n * @returns {string[]}\n */\n async keys () {\n webidl.brandCheck(this, CacheStorage)\n\n // 2.1\n const keys = this.#caches.keys()\n\n // 2.2\n return [...keys]\n }\n}\n\nObject.defineProperties(CacheStorage.prototype, {\n [Symbol.toStringTag]: {\n value: 'CacheStorage',\n configurable: true\n },\n match: kEnumerableProperty,\n has: kEnumerableProperty,\n open: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nmodule.exports = {\n CacheStorage\n}\n", "'use strict'\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\nconst maxAttributeValueSize = 1024\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\nconst maxNameValuePairSize = 4096\n\nmodule.exports = {\n maxAttributeValueSize,\n maxNameValuePairSize\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kHeadersList } = require('../core/symbols')\n\nfunction isCTLExcludingHtab (value) {\n if (value.length === 0) {\n return false\n }\n\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n (code >= 0x00 || code <= 0x08) ||\n (code >= 0x0A || code <= 0x1F) ||\n code === 0x7F\n ) {\n return false\n }\n }\n}\n\n/**\n CHAR = <any US-ASCII character (octets 0 - 127)>\n token = 1*<any CHAR except CTLs or separators>\n separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n | \",\" | \";\" | \":\" | \"\\\" | <\">\n | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n | \"{\" | \"}\" | SP | HT\n * @param {string} name\n */\nfunction validateCookieName (name) {\n for (const char of name) {\n const code = char.charCodeAt(0)\n\n if (\n (code <= 0x20 || code > 0x7F) ||\n char === '(' ||\n char === ')' ||\n char === '>' ||\n char === '<' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}'\n ) {\n throw new Error('Invalid cookie name')\n }\n }\n}\n\n/**\n cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n ; US-ASCII characters excluding CTLs,\n ; whitespace DQUOTE, comma, semicolon,\n ; and backslash\n * @param {string} value\n */\nfunction validateCookieValue (value) {\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 || // exclude CTLs (0-31)\n code === 0x22 ||\n code === 0x2C ||\n code === 0x3B ||\n code === 0x5C ||\n code > 0x7E // non-ascii\n ) {\n throw new Error('Invalid header value')\n }\n }\n}\n\n/**\n * path-value = <any CHAR except CTLs or \";\">\n * @param {string} path\n */\nfunction validateCookiePath (path) {\n for (const char of path) {\n const code = char.charCodeAt(0)\n\n if (code < 0x21 || char === ';') {\n throw new Error('Invalid cookie path')\n }\n }\n}\n\n/**\n * I have no idea why these values aren't allowed to be honest,\n * but Deno tests these. - Khafra\n * @param {string} domain\n */\nfunction validateCookieDomain (domain) {\n if (\n domain.startsWith('-') ||\n domain.endsWith('.') ||\n domain.endsWith('-')\n ) {\n throw new Error('Invalid cookie domain')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n * @param {number|Date} date\n IMF-fixdate = day-name \",\" SP date1 SP time-of-day SP GMT\n ; fixed length/zone/capitalization subset of the format\n ; see Section 3.3 of [RFC5322]\n\n day-name = %x4D.6F.6E ; \"Mon\", case-sensitive\n / %x54.75.65 ; \"Tue\", case-sensitive\n / %x57.65.64 ; \"Wed\", case-sensitive\n / %x54.68.75 ; \"Thu\", case-sensitive\n / %x46.72.69 ; \"Fri\", case-sensitive\n / %x53.61.74 ; \"Sat\", case-sensitive\n / %x53.75.6E ; \"Sun\", case-sensitive\n date1 = day SP month SP year\n ; e.g., 02 Jun 1982\n\n day = 2DIGIT\n month = %x4A.61.6E ; \"Jan\", case-sensitive\n / %x46.65.62 ; \"Feb\", case-sensitive\n / %x4D.61.72 ; \"Mar\", case-sensitive\n / %x41.70.72 ; \"Apr\", case-sensitive\n / %x4D.61.79 ; \"May\", case-sensitive\n / %x4A.75.6E ; \"Jun\", case-sensitive\n / %x4A.75.6C ; \"Jul\", case-sensitive\n / %x41.75.67 ; \"Aug\", case-sensitive\n / %x53.65.70 ; \"Sep\", case-sensitive\n / %x4F.63.74 ; \"Oct\", case-sensitive\n / %x4E.6F.76 ; \"Nov\", case-sensitive\n / %x44.65.63 ; \"Dec\", case-sensitive\n year = 4DIGIT\n\n GMT = %x47.4D.54 ; \"GMT\", case-sensitive\n\n time-of-day = hour \":\" minute \":\" second\n ; 00:00:00 - 23:59:60 (leap second)\n\n hour = 2DIGIT\n minute = 2DIGIT\n second = 2DIGIT\n */\nfunction toIMFDate (date) {\n if (typeof date === 'number') {\n date = new Date(date)\n }\n\n const days = [\n 'Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'\n ]\n\n const months = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ]\n\n const dayName = days[date.getUTCDay()]\n const day = date.getUTCDate().toString().padStart(2, '0')\n const month = months[date.getUTCMonth()]\n const year = date.getUTCFullYear()\n const hour = date.getUTCHours().toString().padStart(2, '0')\n const minute = date.getUTCMinutes().toString().padStart(2, '0')\n const second = date.getUTCSeconds().toString().padStart(2, '0')\n\n return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n}\n\n/**\n max-age-av = \"Max-Age=\" non-zero-digit *DIGIT\n ; In practice, both expires-av and max-age-av\n ; are limited to dates representable by the\n ; user agent.\n * @param {number} maxAge\n */\nfunction validateCookieMaxAge (maxAge) {\n if (maxAge < 0) {\n throw new Error('Invalid cookie max-age')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n * @param {import('./index').Cookie} cookie\n */\nfunction stringify (cookie) {\n if (cookie.name.length === 0) {\n return null\n }\n\n validateCookieName(cookie.name)\n validateCookieValue(cookie.value)\n\n const out = [`${cookie.name}=${cookie.value}`]\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n if (cookie.name.startsWith('__Secure-')) {\n cookie.secure = true\n }\n\n if (cookie.name.startsWith('__Host-')) {\n cookie.secure = true\n cookie.domain = null\n cookie.path = '/'\n }\n\n if (cookie.secure) {\n out.push('Secure')\n }\n\n if (cookie.httpOnly) {\n out.push('HttpOnly')\n }\n\n if (typeof cookie.maxAge === 'number') {\n validateCookieMaxAge(cookie.maxAge)\n out.push(`Max-Age=${cookie.maxAge}`)\n }\n\n if (cookie.domain) {\n validateCookieDomain(cookie.domain)\n out.push(`Domain=${cookie.domain}`)\n }\n\n if (cookie.path) {\n validateCookiePath(cookie.path)\n out.push(`Path=${cookie.path}`)\n }\n\n if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n out.push(`Expires=${toIMFDate(cookie.expires)}`)\n }\n\n if (cookie.sameSite) {\n out.push(`SameSite=${cookie.sameSite}`)\n }\n\n for (const part of cookie.unparsed) {\n if (!part.includes('=')) {\n throw new Error('Invalid unparsed')\n }\n\n const [key, ...value] = part.split('=')\n\n out.push(`${key.trim()}=${value.join('=')}`)\n }\n\n return out.join('; ')\n}\n\nlet kHeadersListNode\n\nfunction getHeadersList (headers) {\n if (headers[kHeadersList]) {\n return headers[kHeadersList]\n }\n\n if (!kHeadersListNode) {\n kHeadersListNode = Object.getOwnPropertySymbols(headers).find(\n (symbol) => symbol.description === 'headers list'\n )\n\n assert(kHeadersListNode, 'Headers cannot be parsed')\n }\n\n const headersList = headers[kHeadersListNode]\n assert(headersList)\n\n return headersList\n}\n\nmodule.exports = {\n isCTLExcludingHtab,\n stringify,\n getHeadersList\n}\n", "'use strict'\n\nconst { maxNameValuePairSize, maxAttributeValueSize } = require('./constants')\nconst { isCTLExcludingHtab } = require('./util')\nconst { collectASequenceOfCodePointsFast } = require('../fetch/dataURL')\nconst assert = require('assert')\n\n/**\n * @description Parses the field-value attributes of a set-cookie header string.\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} header\n * @returns if the header is invalid, null will be returned\n */\nfunction parseSetCookie (header) {\n // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n // character (CTL characters excluding HTAB): Abort these steps and\n // ignore the set-cookie-string entirely.\n if (isCTLExcludingHtab(header)) {\n return null\n }\n\n let nameValuePair = ''\n let unparsedAttributes = ''\n let name = ''\n let value = ''\n\n // 2. If the set-cookie-string contains a %x3B (\";\") character:\n if (header.includes(';')) {\n // 1. The name-value-pair string consists of the characters up to,\n // but not including, the first %x3B (\";\"), and the unparsed-\n // attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\n const position = { position: 0 }\n\n nameValuePair = collectASequenceOfCodePointsFast(';', header, position)\n unparsedAttributes = header.slice(position.position)\n } else {\n // Otherwise:\n\n // 1. The name-value-pair string consists of all the characters\n // contained in the set-cookie-string, and the unparsed-\n // attributes is the empty string.\n nameValuePair = header\n }\n\n // 3. If the name-value-pair string lacks a %x3D (\"=\") character, then\n // the name string is empty, and the value string is the value of\n // name-value-pair.\n if (!nameValuePair.includes('=')) {\n value = nameValuePair\n } else {\n // Otherwise, the name string consists of the characters up to, but\n // not including, the first %x3D (\"=\") character, and the (possibly\n // empty) value string consists of the characters after the first\n // %x3D (\"=\") character.\n const position = { position: 0 }\n name = collectASequenceOfCodePointsFast(\n '=',\n nameValuePair,\n position\n )\n value = nameValuePair.slice(position.position + 1)\n }\n\n // 4. Remove any leading or trailing WSP characters from the name\n // string and the value string.\n name = name.trim()\n value = value.trim()\n\n // 5. If the sum of the lengths of the name string and the value string\n // is more than 4096 octets, abort these steps and ignore the set-\n // cookie-string entirely.\n if (name.length + value.length > maxNameValuePairSize) {\n return null\n }\n\n // 6. The cookie-name is the name string, and the cookie-value is the\n // value string.\n return {\n name, value, ...parseUnparsedAttributes(unparsedAttributes)\n }\n}\n\n/**\n * Parses the remaining attributes of a set-cookie header\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} unparsedAttributes\n * @param {[Object.<string, unknown>]={}} cookieAttributeList\n */\nfunction parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {\n // 1. If the unparsed-attributes string is empty, skip the rest of\n // these steps.\n if (unparsedAttributes.length === 0) {\n return cookieAttributeList\n }\n\n // 2. Discard the first character of the unparsed-attributes (which\n // will be a %x3B (\";\") character).\n assert(unparsedAttributes[0] === ';')\n unparsedAttributes = unparsedAttributes.slice(1)\n\n let cookieAv = ''\n\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n if (unparsedAttributes.includes(';')) {\n // 1. Consume the characters of the unparsed-attributes up to, but\n // not including, the first %x3B (\";\") character.\n cookieAv = collectASequenceOfCodePointsFast(\n ';',\n unparsedAttributes,\n { position: 0 }\n )\n unparsedAttributes = unparsedAttributes.slice(cookieAv.length)\n } else {\n // Otherwise:\n\n // 1. Consume the remainder of the unparsed-attributes.\n cookieAv = unparsedAttributes\n unparsedAttributes = ''\n }\n\n // Let the cookie-av string be the characters consumed in this step.\n\n let attributeName = ''\n let attributeValue = ''\n\n // 4. If the cookie-av string contains a %x3D (\"=\") character:\n if (cookieAv.includes('=')) {\n // 1. The (possibly empty) attribute-name string consists of the\n // characters up to, but not including, the first %x3D (\"=\")\n // character, and the (possibly empty) attribute-value string\n // consists of the characters after the first %x3D (\"=\")\n // character.\n const position = { position: 0 }\n\n attributeName = collectASequenceOfCodePointsFast(\n '=',\n cookieAv,\n position\n )\n attributeValue = cookieAv.slice(position.position + 1)\n } else {\n // Otherwise:\n\n // 1. The attribute-name string consists of the entire cookie-av\n // string, and the attribute-value string is empty.\n attributeName = cookieAv\n }\n\n // 5. Remove any leading or trailing WSP characters from the attribute-\n // name string and the attribute-value string.\n attributeName = attributeName.trim()\n attributeValue = attributeValue.trim()\n\n // 6. If the attribute-value is longer than 1024 octets, ignore the\n // cookie-av string and return to Step 1 of this algorithm.\n if (attributeValue.length > maxAttributeValueSize) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 7. Process the attribute-name and attribute-value according to the\n // requirements in the following subsections. (Notice that\n // attributes with unrecognized attribute-names are ignored.)\n const attributeNameLowercase = attributeName.toLowerCase()\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n // If the attribute-name case-insensitively matches the string\n // \"Expires\", the user agent MUST process the cookie-av as follows.\n if (attributeNameLowercase === 'expires') {\n // 1. Let the expiry-time be the result of parsing the attribute-value\n // as cookie-date (see Section 5.1.1).\n const expiryTime = new Date(attributeValue)\n\n // 2. If the attribute-value failed to parse as a cookie date, ignore\n // the cookie-av.\n\n cookieAttributeList.expires = expiryTime\n } else if (attributeNameLowercase === 'max-age') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n // If the attribute-name case-insensitively matches the string \"Max-\n // Age\", the user agent MUST process the cookie-av as follows.\n\n // 1. If the first character of the attribute-value is not a DIGIT or a\n // \"-\" character, ignore the cookie-av.\n const charCode = attributeValue.charCodeAt(0)\n\n if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 2. If the remainder of attribute-value contains a non-DIGIT\n // character, ignore the cookie-av.\n if (!/^\\d+$/.test(attributeValue)) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 3. Let delta-seconds be the attribute-value converted to an integer.\n const deltaSeconds = Number(attributeValue)\n\n // 4. Let cookie-age-limit be the maximum age of the cookie (which\n // SHOULD be 400 days or less, see Section 4.1.2.2).\n\n // 5. Set delta-seconds to the smaller of its present value and cookie-\n // age-limit.\n // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)\n\n // 6. If delta-seconds is less than or equal to zero (0), let expiry-\n // time be the earliest representable date and time. Otherwise, let\n // the expiry-time be the current date and time plus delta-seconds\n // seconds.\n // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n // 7. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Max-Age and an attribute-value of expiry-time.\n cookieAttributeList.maxAge = deltaSeconds\n } else if (attributeNameLowercase === 'domain') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n // If the attribute-name case-insensitively matches the string \"Domain\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. Let cookie-domain be the attribute-value.\n let cookieDomain = attributeValue\n\n // 2. If cookie-domain starts with %x2E (\".\"), let cookie-domain be\n // cookie-domain without its leading %x2E (\".\").\n if (cookieDomain[0] === '.') {\n cookieDomain = cookieDomain.slice(1)\n }\n\n // 3. Convert the cookie-domain to lower case.\n cookieDomain = cookieDomain.toLowerCase()\n\n // 4. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Domain and an attribute-value of cookie-domain.\n cookieAttributeList.domain = cookieDomain\n } else if (attributeNameLowercase === 'path') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n // If the attribute-name case-insensitively matches the string \"Path\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. If the attribute-value is empty or if the first character of the\n // attribute-value is not %x2F (\"/\"):\n let cookiePath = ''\n if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n // 1. Let cookie-path be the default-path.\n cookiePath = '/'\n } else {\n // Otherwise:\n\n // 1. Let cookie-path be the attribute-value.\n cookiePath = attributeValue\n }\n\n // 2. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Path and an attribute-value of cookie-path.\n cookieAttributeList.path = cookiePath\n } else if (attributeNameLowercase === 'secure') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n // If the attribute-name case-insensitively matches the string \"Secure\",\n // the user agent MUST append an attribute to the cookie-attribute-list\n // with an attribute-name of Secure and an empty attribute-value.\n\n cookieAttributeList.secure = true\n } else if (attributeNameLowercase === 'httponly') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n // If the attribute-name case-insensitively matches the string\n // \"HttpOnly\", the user agent MUST append an attribute to the cookie-\n // attribute-list with an attribute-name of HttpOnly and an empty\n // attribute-value.\n\n cookieAttributeList.httpOnly = true\n } else if (attributeNameLowercase === 'samesite') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n // If the attribute-name case-insensitively matches the string\n // \"SameSite\", the user agent MUST process the cookie-av as follows:\n\n // 1. Let enforcement be \"Default\".\n let enforcement = 'Default'\n\n const attributeValueLowercase = attributeValue.toLowerCase()\n // 2. If cookie-av's attribute-value is a case-insensitive match for\n // \"None\", set enforcement to \"None\".\n if (attributeValueLowercase.includes('none')) {\n enforcement = 'None'\n }\n\n // 3. If cookie-av's attribute-value is a case-insensitive match for\n // \"Strict\", set enforcement to \"Strict\".\n if (attributeValueLowercase.includes('strict')) {\n enforcement = 'Strict'\n }\n\n // 4. If cookie-av's attribute-value is a case-insensitive match for\n // \"Lax\", set enforcement to \"Lax\".\n if (attributeValueLowercase.includes('lax')) {\n enforcement = 'Lax'\n }\n\n // 5. Append an attribute to the cookie-attribute-list with an\n // attribute-name of \"SameSite\" and an attribute-value of\n // enforcement.\n cookieAttributeList.sameSite = enforcement\n } else {\n cookieAttributeList.unparsed ??= []\n\n cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)\n }\n\n // 8. Return to Step 1 of this algorithm.\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n}\n\nmodule.exports = {\n parseSetCookie,\n parseUnparsedAttributes\n}\n", "'use strict'\n\nconst { parseSetCookie } = require('./parse')\nconst { stringify, getHeadersList } = require('./util')\nconst { webidl } = require('../fetch/webidl')\nconst { Headers } = require('../fetch/headers')\n\n/**\n * @typedef {Object} Cookie\n * @property {string} name\n * @property {string} value\n * @property {Date|number|undefined} expires\n * @property {number|undefined} maxAge\n * @property {string|undefined} domain\n * @property {string|undefined} path\n * @property {boolean|undefined} secure\n * @property {boolean|undefined} httpOnly\n * @property {'Strict'|'Lax'|'None'} sameSite\n * @property {string[]} unparsed\n */\n\n/**\n * @param {Headers} headers\n * @returns {Record<string, string>}\n */\nfunction getCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookie = headers.get('cookie')\n const out = {}\n\n if (!cookie) {\n return out\n }\n\n for (const piece of cookie.split(';')) {\n const [name, ...value] = piece.split('=')\n\n out[name.trim()] = value.join('=')\n }\n\n return out\n}\n\n/**\n * @param {Headers} headers\n * @param {string} name\n * @param {{ path?: string, domain?: string }|undefined} attributes\n * @returns {void}\n */\nfunction deleteCookie (headers, name, attributes) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n name = webidl.converters.DOMString(name)\n attributes = webidl.converters.DeleteCookieAttributes(attributes)\n\n // Matches behavior of\n // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n setCookie(headers, {\n name,\n value: '',\n expires: new Date(0),\n ...attributes\n })\n}\n\n/**\n * @param {Headers} headers\n * @returns {Cookie[]}\n */\nfunction getSetCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookies = getHeadersList(headers).cookies\n\n if (!cookies) {\n return []\n }\n\n // In older versions of undici, cookies is a list of name:value.\n return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair))\n}\n\n/**\n * @param {Headers} headers\n * @param {Cookie} cookie\n * @returns {void}\n */\nfunction setCookie (headers, cookie) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n cookie = webidl.converters.Cookie(cookie)\n\n const str = stringify(cookie)\n\n if (str) {\n headers.append('Set-Cookie', stringify(cookie))\n }\n}\n\nwebidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n }\n])\n\nwebidl.converters.Cookie = webidl.dictionaryConverter([\n {\n converter: webidl.converters.DOMString,\n key: 'name'\n },\n {\n converter: webidl.converters.DOMString,\n key: 'value'\n },\n {\n converter: webidl.nullableConverter((value) => {\n if (typeof value === 'number') {\n return webidl.converters['unsigned long long'](value)\n }\n\n return new Date(value)\n }),\n key: 'expires',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters['long long']),\n key: 'maxAge',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'secure',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'httpOnly',\n defaultValue: null\n },\n {\n converter: webidl.converters.USVString,\n key: 'sameSite',\n allowedValues: ['Strict', 'Lax', 'None']\n },\n {\n converter: webidl.sequenceConverter(webidl.converters.DOMString),\n key: 'unparsed',\n defaultValue: []\n }\n])\n\nmodule.exports = {\n getCookies,\n deleteCookie,\n getSetCookies,\n setCookie\n}\n", "'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nmodule.exports = {\n uid,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer\n}\n", "'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\nconst { MessagePort } = require('worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' })\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' })\n\n super(type, eventInitDict)\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence<MessagePort>'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence<MessagePort>'],\n get defaultValue () {\n return []\n }\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent\n}\n", "'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { MessageEvent, ErrorEvent } = require('./events')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventConstructor = Event, eventInitDict) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event\u2019s type attribute to e.\n const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = new Uint8Array(data).buffer\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object\u2019s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, MessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (const char of protocol) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 ||\n code > 0x7E ||\n char === '(' ||\n char === ')' ||\n char === '<' ||\n char === '>' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}' ||\n code === 32 || // SP\n code === 9 // HT\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n fireEvent('error', ws, ErrorEvent, {\n error: new Error(reason)\n })\n }\n}\n\nmodule.exports = {\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived\n}\n", "'use strict'\n\nconst { randomBytes, createHash } = require('crypto')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { uid, states } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection } = require('./util')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers } = require('../fetch/headers')\nconst { getGlobalDispatcher } = require('../global')\nconst { kHeadersList } = require('../core/symbols')\n\nconst channels = {}\nchannels.open = diagnosticsChannel.channel('undici:websocket:open')\nchannels.close = diagnosticsChannel.channel('undici:websocket:close')\nchannels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error')\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any) => void} onEstablish\n * @param {Partial<import('../../types/websocket').WebSocketInit>} options\n */\nfunction establishWebSocketConnection (url, protocols, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url\u2019s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = new Headers(options.headers)[kHeadersList]\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request\u2019s header list.\n // 4. Append (`Connection`, `Upgrade`) to request\u2019s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request\u2019s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n // TODO: enable once permessage-deflate is supported\n const permessageDeflate = '' // 'permessage-deflate; 15'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request\u2019s header list.\n // request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher ?? getGlobalDispatcher(),\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response\u2019s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n\n if (secExtension !== null && secExtension !== permessageDeflate) {\n failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.')\n return\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response)\n }\n })\n\n return controller\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kSentClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n fireEvent('close', ws, CloseEvent, {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection\n}\n", "'use strict'\n\nconst { randomBytes } = require('crypto')\nconst { maxUnsigned16Bit } = require('./constants')\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n this.maskKey = randomBytes(4)\n }\n\n createFrame (opcode) {\n const bodyLength = this.frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */\n buffer[offset - 4] = this.maskKey[0]\n buffer[offset - 3] = this.maskKey[1]\n buffer[offset - 2] = this.maskKey[2]\n buffer[offset - 1] = this.maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; i++) {\n buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n", "'use strict'\n\nconst { Writable } = require('stream')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { parserStates, opcodes, states, emptyBuffer } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>\n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nconst channels = {}\nchannels.ping = diagnosticsChannel.channel('undici:websocket:ping')\nchannels.pong = diagnosticsChannel.channel('undici:websocket:pong')\n\nclass ByteParser extends Writable {\n #buffers = []\n #byteOffset = 0\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n constructor (ws) {\n super()\n\n this.ws = ws\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n\n this.run(callback)\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (true) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.fin = (buffer[0] & 0x80) !== 0\n this.#info.opcode = buffer[0] & 0x0F\n\n // If we receive a fragmented message, we use the type of the first\n // frame to parse the full message as binary/text, when it's terminated\n this.#info.originalOpcode ??= this.#info.opcode\n\n this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION\n\n if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n const payloadLength = buffer[1] & 0x7F\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (this.#info.fragmented && payloadLength > 125) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n } else if (\n (this.#info.opcode === opcodes.PING ||\n this.#info.opcode === opcodes.PONG ||\n this.#info.opcode === opcodes.CLOSE) &&\n payloadLength > 125\n ) {\n // Control frames can have a payload length of 125 bytes MAX\n failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.')\n return\n } else if (this.#info.opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return\n }\n\n const body = this.consume(payloadLength)\n\n this.#info.closeInfo = this.parseCloseBody(false, body)\n\n if (!this.ws[kSentClose]) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n const body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = true\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n this.end()\n\n return\n } else if (this.#info.opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n const body = this.consume(payloadLength)\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n\n this.#state = parserStates.INFO\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n } else if (this.#info.opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n const body = this.consume(payloadLength)\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n\n // 2^31 is the maxinimum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n const lower = buffer.readUInt32BE(4)\n\n this.#info.payloadLength = (upper << 8) + lower\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n // If there is still more data in this chunk that needs to be read\n return callback()\n } else if (this.#byteOffset >= this.#info.payloadLength) {\n // If the server sent multiple frames in a single chunk\n\n const body = this.consume(this.#info.payloadLength)\n\n this.#fragments.push(body)\n\n // If the frame is unfragmented, or a fragmented frame was terminated,\n // a message was received\n if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n const fullMessage = Buffer.concat(this.#fragments)\n\n websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage)\n\n this.#info = {}\n this.#fragments.length = 0\n }\n\n this.#state = parserStates.INFO\n }\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n break\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer|null}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n return null\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n parseCloseBody (onlyCode, data) {\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (onlyCode) {\n if (!isValidStatusCode(code)) {\n return null\n }\n\n return { code }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return null\n }\n\n try {\n // TODO: optimize this\n reason = new TextDecoder('utf-8', { fatal: true }).decode(reason)\n } catch {\n return null\n }\n\n return { code, reason }\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { DOMException } = require('../fetch/constants')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require('./constants')\nconst {\n kWebSocketURL,\n kReadyState,\n kController,\n kBinaryType,\n kResponse,\n kSentClose,\n kByteParser\n} = require('./symbols')\nconst { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require('./util')\nconst { establishWebSocketConnection } = require('./connection')\nconst { WebsocketFrameSend } = require('./frame')\nconst { ByteParser } = require('./receiver')\nconst { kEnumerableProperty, isBlobLike } = require('../core/util')\nconst { getGlobalDispatcher } = require('../global')\nconst { types } = require('util')\n\nlet experimentalWarned = false\n\n// https://websockets.spec.whatwg.org/#interface-definition\nclass WebSocket extends EventTarget {\n #events = {\n open: null,\n error: null,\n close: null,\n message: null\n }\n\n #bufferedAmount = 0\n #protocol = ''\n #extensions = ''\n\n /**\n * @param {string} url\n * @param {string|string[]} protocols\n */\n constructor (url, protocols = []) {\n super()\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' })\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('WebSockets are experimental, expect them to change at any time.', {\n code: 'UNDICI-WS'\n })\n }\n\n const options = webidl.converters['DOMString or sequence<DOMString> or WebSocketInit'](protocols)\n\n url = webidl.converters.USVString(url)\n protocols = options.protocols\n\n // 1. Let urlRecord be the result of applying the URL parser to url.\n let urlRecord\n\n try {\n urlRecord = new URL(url)\n } catch (e) {\n // 2. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 3. If urlRecord\u2019s scheme is not \"ws\" or \"wss\", then throw a\n // \"SyntaxError\" DOMException.\n if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n throw new DOMException(\n `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,\n 'SyntaxError'\n )\n }\n\n // 4. If urlRecord\u2019s fragment is non-null, then throw a \"SyntaxError\"\n // DOMException.\n if (urlRecord.hash) {\n throw new DOMException('Got fragment', 'SyntaxError')\n }\n\n // 5. If protocols is a string, set protocols to a sequence consisting\n // of just that string.\n if (typeof protocols === 'string') {\n protocols = [protocols]\n }\n\n // 6. If any of the values in protocols occur more than once or otherwise\n // fail to match the requirements for elements that comprise the value\n // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n // protocol, then throw a \"SyntaxError\" DOMException.\n if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n // 7. Set this's url to urlRecord.\n this[kWebSocketURL] = urlRecord\n\n // 8. Let client be this's relevant settings object.\n\n // 9. Run this step in parallel:\n\n // 1. Establish a WebSocket connection given urlRecord, protocols,\n // and client.\n this[kController] = establishWebSocketConnection(\n urlRecord,\n protocols,\n this,\n (response) => this.#onConnectionEstablished(response),\n options\n )\n\n // Each WebSocket object has an associated ready state, which is a\n // number representing the state of the connection. Initially it must\n // be CONNECTING (0).\n this[kReadyState] = WebSocket.CONNECTING\n\n // The extensions attribute must initially return the empty string.\n\n // The protocol attribute must initially return the empty string.\n\n // Each WebSocket object has an associated binary type, which is a\n // BinaryType. Initially it must be \"blob\".\n this[kBinaryType] = 'blob'\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n * @param {number|undefined} code\n * @param {string|undefined} reason\n */\n close (code = undefined, reason = undefined) {\n webidl.brandCheck(this, WebSocket)\n\n if (code !== undefined) {\n code = webidl.converters['unsigned short'](code, { clamp: true })\n }\n\n if (reason !== undefined) {\n reason = webidl.converters.USVString(reason)\n }\n\n // 1. If code is present, but is neither an integer equal to 1000 nor an\n // integer in the range 3000 to 4999, inclusive, throw an\n // \"InvalidAccessError\" DOMException.\n if (code !== undefined) {\n if (code !== 1000 && (code < 3000 || code > 4999)) {\n throw new DOMException('invalid code', 'InvalidAccessError')\n }\n }\n\n let reasonByteLength = 0\n\n // 2. If reason is present, then run these substeps:\n if (reason !== undefined) {\n // 1. Let reasonBytes be the result of encoding reason.\n // 2. If reasonBytes is longer than 123 bytes, then throw a\n // \"SyntaxError\" DOMException.\n reasonByteLength = Buffer.byteLength(reason)\n\n if (reasonByteLength > 123) {\n throw new DOMException(\n `Reason must be less than 123 bytes; received ${reasonByteLength}`,\n 'SyntaxError'\n )\n }\n }\n\n // 3. Run the first matching steps from the following list:\n if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(this)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(this, 'Connection was closed before it was established.')\n this[kReadyState] = WebSocket.CLOSING\n } else if (!isClosing(this)) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE), (err) => {\n if (!err) {\n this[kSentClose] = true\n }\n })\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n this[kReadyState] = WebSocket.CLOSING\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n */\n send (data) {\n webidl.brandCheck(this, WebSocket)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' })\n\n data = webidl.converters.WebSocketSendData(data)\n\n // 1. If this's ready state is CONNECTING, then throw an\n // \"InvalidStateError\" DOMException.\n if (this[kReadyState] === WebSocket.CONNECTING) {\n throw new DOMException('Sent before connected.', 'InvalidStateError')\n }\n\n // 2. Run the appropriate set of steps from the following list:\n // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n if (!isEstablished(this) || isClosing(this)) {\n return\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n // If data is a string\n if (typeof data === 'string') {\n // If the WebSocket connection is established and the WebSocket\n // closing handshake has not yet started, then the user agent\n // must send a WebSocket Message comprised of the data argument\n // using a text frame opcode; if the data cannot be sent, e.g.\n // because it would need to be buffered but the buffer is full,\n // the user agent must flag the WebSocket as full and then close\n // the WebSocket connection. Any invocation of this method with a\n // string argument that does not throw an exception must increase\n // the bufferedAmount attribute by the number of bytes needed to\n // express the argument as UTF-8.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.TEXT)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (types.isArrayBuffer(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need\n // to be buffered but the buffer is full, the user agent must flag\n // the WebSocket as full and then close the WebSocket connection.\n // The data to be sent is the data stored in the buffer described\n // by the ArrayBuffer object. Any invocation of this method with an\n // ArrayBuffer argument that does not throw an exception must\n // increase the bufferedAmount attribute by the length of the\n // ArrayBuffer in bytes.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (ArrayBuffer.isView(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The\n // data to be sent is the data stored in the section of the buffer\n // described by the ArrayBuffer object that data references. Any\n // invocation of this method with this kind of argument that does\n // not throw an exception must increase the bufferedAmount attribute\n // by the length of data\u2019s buffer in bytes.\n\n const ab = Buffer.from(data, data.byteOffset, data.byteLength)\n\n const frame = new WebsocketFrameSend(ab)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += ab.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= ab.byteLength\n })\n } else if (isBlobLike(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The data\n // to be sent is the raw data represented by the Blob object. Any\n // invocation of this method with a Blob argument that does not throw\n // an exception must increase the bufferedAmount attribute by the size\n // of the Blob object\u2019s raw data, in bytes.\n\n const frame = new WebsocketFrameSend()\n\n data.arrayBuffer().then((ab) => {\n const value = Buffer.from(ab)\n frame.frameData = value\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n })\n }\n }\n\n get readyState () {\n webidl.brandCheck(this, WebSocket)\n\n // The readyState getter steps are to return this's ready state.\n return this[kReadyState]\n }\n\n get bufferedAmount () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#bufferedAmount\n }\n\n get url () {\n webidl.brandCheck(this, WebSocket)\n\n // The url getter steps are to return this's url, serialized.\n return URLSerializer(this[kWebSocketURL])\n }\n\n get extensions () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#extensions\n }\n\n get protocol () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#protocol\n }\n\n get onopen () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.open\n }\n\n set onopen (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n\n get onclose () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.close\n }\n\n set onclose (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.close) {\n this.removeEventListener('close', this.#events.close)\n }\n\n if (typeof fn === 'function') {\n this.#events.close = fn\n this.addEventListener('close', fn)\n } else {\n this.#events.close = null\n }\n }\n\n get onmessage () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.message\n }\n\n set onmessage (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get binaryType () {\n webidl.brandCheck(this, WebSocket)\n\n return this[kBinaryType]\n }\n\n set binaryType (type) {\n webidl.brandCheck(this, WebSocket)\n\n if (type !== 'blob' && type !== 'arraybuffer') {\n this[kBinaryType] = 'blob'\n } else {\n this[kBinaryType] = type\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n */\n #onConnectionEstablished (response) {\n // processResponse is called when the \"response\u2019s header list has been received and initialized.\"\n // once this happens, the connection is open\n this[kResponse] = response\n\n const parser = new ByteParser(this)\n parser.on('drain', function onParserDrain () {\n this.ws[kResponse].socket.resume()\n })\n\n response.socket.ws = this\n this[kByteParser] = parser\n\n // 1. Change the ready state to OPEN (1).\n this[kReadyState] = states.OPEN\n\n // 2. Change the extensions attribute\u2019s value to the extensions in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n const extensions = response.headersList.get('sec-websocket-extensions')\n\n if (extensions !== null) {\n this.#extensions = extensions\n }\n\n // 3. Change the protocol attribute\u2019s value to the subprotocol in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n const protocol = response.headersList.get('sec-websocket-protocol')\n\n if (protocol !== null) {\n this.#protocol = protocol\n }\n\n // 4. Fire an event named open at the WebSocket object.\n fireEvent('open', this)\n }\n}\n\n// https://websockets.spec.whatwg.org/#dom-websocket-connecting\nWebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING\n// https://websockets.spec.whatwg.org/#dom-websocket-open\nWebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN\n// https://websockets.spec.whatwg.org/#dom-websocket-closing\nWebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING\n// https://websockets.spec.whatwg.org/#dom-websocket-closed\nWebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED\n\nObject.defineProperties(WebSocket.prototype, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors,\n url: kEnumerableProperty,\n readyState: kEnumerableProperty,\n bufferedAmount: kEnumerableProperty,\n onopen: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onclose: kEnumerableProperty,\n close: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n binaryType: kEnumerableProperty,\n send: kEnumerableProperty,\n extensions: kEnumerableProperty,\n protocol: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'WebSocket',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(WebSocket, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors\n})\n\nwebidl.converters['sequence<DOMString>'] = webidl.sequenceConverter(\n webidl.converters.DOMString\n)\n\nwebidl.converters['DOMString or sequence<DOMString>'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n return webidl.converters['sequence<DOMString>'](V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// This implements the propsal made in https://github.com/whatwg/websockets/issues/42\nwebidl.converters.WebSocketInit = webidl.dictionaryConverter([\n {\n key: 'protocols',\n converter: webidl.converters['DOMString or sequence<DOMString>'],\n get defaultValue () {\n return []\n }\n },\n {\n key: 'dispatcher',\n converter: (V) => V,\n get defaultValue () {\n return getGlobalDispatcher()\n }\n },\n {\n key: 'headers',\n converter: webidl.nullableConverter(webidl.converters.HeadersInit)\n }\n])\n\nwebidl.converters['DOMString or sequence<DOMString> or WebSocketInit'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) {\n return webidl.converters.WebSocketInit(V)\n }\n\n return { protocols: webidl.converters['DOMString or sequence<DOMString>'](V) }\n}\n\nwebidl.converters.WebSocketSendData = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n return webidl.converters.BufferSource(V)\n }\n }\n\n return webidl.converters.USVString(V)\n}\n\nmodule.exports = {\n WebSocket\n}\n", "'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nlet hasCrypto\ntry {\n require('crypto')\n hasCrypto = true\n} catch {\n hasCrypto = false\n}\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n\n try {\n return await fetchImpl(...arguments)\n } catch (err) {\n Error.captureStackTrace(err, this)\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n module.exports.FileReader = require('./lib/fileapi/filereader').FileReader\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n\n const { CacheStorage } = require('./lib/cache/cachestorage')\n const { kConstruct } = require('./lib/cache/symbols')\n\n // Cache & CacheStorage are tightly coupled with fetch. Even if it may run\n // in an older version of Node, it doesn't have any use without fetch.\n module.exports.caches = new CacheStorage(kConstruct)\n}\n\nif (util.nodeMajor >= 16) {\n const { deleteCookie, getCookies, getSetCookies, setCookie } = require('./lib/cookies')\n\n module.exports.deleteCookie = deleteCookie\n module.exports.getCookies = getCookies\n module.exports.getSetCookies = getSetCookies\n module.exports.setCookie = setCookie\n\n const { parseMIMEType, serializeAMimeType } = require('./lib/fetch/dataURL')\n\n module.exports.parseMIMEType = parseMIMEType\n module.exports.serializeAMimeType = serializeAMimeType\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n const { WebSocket } = require('./lib/websocket/websocket')\n\n module.exports.WebSocket = WebSocket\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n", null, null, null, "'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n", "'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n", "'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n", "'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n", "'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n", "'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n", "'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n", "'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n", "var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n", "var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL());\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230\u00A75.3.1: When making a request directly to an origin server, [\u2026]\n // a client MUST send only the absolute path [\u2026] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, [\u2026]\n // a client MUST send the target URI in absolute-form [\u2026].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231\u00A76.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231\u00A76.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231\u00A76.4: Automatic redirection needs to done with\n // care for methods not known to be safe, [\u2026]\n // RFC7231\u00A76.4.2\u20133: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231\u00A76.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource [\u2026]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) [\u2026]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n /* istanbul ignore else */\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n /* istanbul ignore next */\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n", "{\n \"name\": \"axios\",\n \"version\": \"0.21.4\",\n \"description\": \"Promise based HTTP client for the browser and node.js\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"test\": \"grunt test\",\n \"start\": \"node ./sandbox/server.js\",\n \"build\": \"NODE_ENV=production grunt build\",\n \"preversion\": \"npm test\",\n \"version\": \"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json\",\n \"postversion\": \"git push && git push --tags\",\n \"examples\": \"node ./examples/server.js\",\n \"coveralls\": \"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\",\n \"fix\": \"eslint --fix lib/**/*.js\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/axios/axios.git\"\n },\n \"keywords\": [\n \"xhr\",\n \"http\",\n \"ajax\",\n \"promise\",\n \"node\"\n ],\n \"author\": \"Matt Zabriskie\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/axios/axios/issues\"\n },\n \"homepage\": \"https://axios-http.com\",\n \"devDependencies\": {\n \"coveralls\": \"^3.0.0\",\n \"es6-promise\": \"^4.2.4\",\n \"grunt\": \"^1.3.0\",\n \"grunt-banner\": \"^0.6.0\",\n \"grunt-cli\": \"^1.2.0\",\n \"grunt-contrib-clean\": \"^1.1.0\",\n \"grunt-contrib-watch\": \"^1.0.0\",\n \"grunt-eslint\": \"^23.0.0\",\n \"grunt-karma\": \"^4.0.0\",\n \"grunt-mocha-test\": \"^0.13.3\",\n \"grunt-ts\": \"^6.0.0-beta.19\",\n \"grunt-webpack\": \"^4.0.2\",\n \"istanbul-instrumenter-loader\": \"^1.0.0\",\n \"jasmine-core\": \"^2.4.1\",\n \"karma\": \"^6.3.2\",\n \"karma-chrome-launcher\": \"^3.1.0\",\n \"karma-firefox-launcher\": \"^2.1.0\",\n \"karma-jasmine\": \"^1.1.1\",\n \"karma-jasmine-ajax\": \"^0.1.13\",\n \"karma-safari-launcher\": \"^1.0.0\",\n \"karma-sauce-launcher\": \"^4.3.6\",\n \"karma-sinon\": \"^1.0.5\",\n \"karma-sourcemap-loader\": \"^0.3.8\",\n \"karma-webpack\": \"^4.0.2\",\n \"load-grunt-tasks\": \"^3.5.2\",\n \"minimist\": \"^1.2.0\",\n \"mocha\": \"^8.2.1\",\n \"sinon\": \"^4.5.0\",\n \"terser-webpack-plugin\": \"^4.2.3\",\n \"typescript\": \"^4.0.5\",\n \"url-search-params\": \"^0.10.0\",\n \"webpack\": \"^4.44.2\",\n \"webpack-dev-server\": \"^3.11.0\"\n },\n \"browser\": {\n \"./lib/adapters/http.js\": \"./lib/adapters/xhr.js\"\n },\n \"jsdelivr\": \"dist/axios.min.js\",\n \"unpkg\": \"dist/axios.min.js\",\n \"typings\": \"./index.d.ts\",\n \"dependencies\": {\n \"follow-redirects\": \"^1.14.0\"\n },\n \"bundlesize\": [\n {\n \"path\": \"./dist/axios.min.js\",\n \"threshold\": \"5kB\"\n }\n ]\n}\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildFullPath = require('../core/buildFullPath');\nvar buildURL = require('./../helpers/buildURL');\nvar http = require('http');\nvar https = require('https');\nvar httpFollow = require('follow-redirects').http;\nvar httpsFollow = require('follow-redirects').https;\nvar url = require('url');\nvar zlib = require('zlib');\nvar pkg = require('./../../package.json');\nvar createError = require('../core/createError');\nvar enhanceError = require('../core/enhanceError');\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nmodule.exports = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var resolve = function resolve(value) {\n resolvePromise(value);\n };\n var reject = function reject(value) {\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('User-Agent' in headers || 'user-agent' in headers) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers['User-Agent'] && !headers['user-agent']) {\n delete headers['User-Agent'];\n delete headers['user-agent'];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + pkg.version;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers['Content-Length'] = data.length;\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url.parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth) {\n delete headers.Authorization;\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url.parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n var responseData = Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n\n response.data = responseData;\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n reject(createError(\n 'timeout of ' + timeout + 'ms exceeded',\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(cancel);\n });\n }\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n", "'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n", "'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n", "'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n", "'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n", "'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n", "'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n", "module.exports = require('./lib/axios');", null, null, null, null, null, null, "import { Clipboard, showHUD } from \"@raycast/api\";\nimport { baseInstantTranslate } from \"./instant-translate\";\n\nexport default async function InstantTranslateCopy() {\n await baseInstantTranslate(async (translatedText) => {\n await Clipboard.copy(translatedText);\n await showHUD(`\u2713 Copied To Clipboard`);\n });\n}\n", "import { getPreferenceValues, getSelectedText, showHUD } from \"@raycast/api\";\nimport { simpleTranslate } from \"./simple-translate\";\nimport { LanguageCode } from \"./languages\";\n\n// Reading time per character based on average reading speed of ~200 words per minute\nconst READING_TIME_PER_CHAR_MS = 150;\n\n// HUD display constants\nconst MIN_HUD_DURATION_MS = 2000;\nconst MAX_HUD_DURATION_MS = 15000;\nconst HUD_REFRESH_INTERVAL_MS = 1000;\n\n// Helper function to show HUD for a longer duration based on text length\nexport async function showExtendedHUD(message: string, minDurationMs = MIN_HUD_DURATION_MS) {\n await showHUD(message);\n\n // Calculate duration based on message length\n const calculatedDuration = Math.max(minDurationMs, message.length * READING_TIME_PER_CHAR_MS);\n\n // Cap maximum duration to avoid excessive waiting\n const finalDuration = Math.min(calculatedDuration, MAX_HUD_DURATION_MS);\n\n // Show the same message multiple times with a delay to extend visibility\n const iterations = Math.floor(finalDuration / HUD_REFRESH_INTERVAL_MS);\n\n for (let i = 0; i < iterations; i++) {\n await new Promise((resolve) => setTimeout(resolve, HUD_REFRESH_INTERVAL_MS));\n await showHUD(message);\n }\n}\n\n// Base function for instant translation logic\nexport async function baseInstantTranslate(onTranslated: (translatedText: string) => Promise<void>) {\n try {\n const preferences = getPreferenceValues<ExtensionPreferences>();\n const targetLanguage = preferences.lang2; // Use secondary language as target\n const sourceLanguage = preferences.lang1;\n const proxy = preferences.proxy;\n\n // Get the selected text from any active application\n const selectedText = await getSelectedText().catch((error) => {\n console.error(\"Error getting selected text:\", error);\n return \"\";\n });\n\n if (!selectedText || selectedText.trim().length === 0) {\n await showHUD(\"No text selected. Please select text to translate.\");\n return;\n }\n\n await showHUD(\"Translating...\");\n\n const result = await simpleTranslate(selectedText, {\n langFrom: sourceLanguage as LanguageCode,\n langTo: [targetLanguage as LanguageCode],\n proxy: proxy,\n });\n\n if (result && result.translatedText) {\n const translation = result.translatedText;\n await onTranslated(translation);\n } else {\n throw new Error(\"Translation not found in response\");\n }\n } catch (error) {\n console.error(\"Translation error:\", error);\n await showHUD(\"Translation failed. Please try again.\");\n }\n}\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\nimport querystring from \"querystring\";\nimport { request, ProxyAgent } from \"undici\";\nimport { TranslateOption, TranslateResponse } from \"./types\";\nimport { isSupported, getISOCode } from \"./languages\";\nimport { tokenGenerator } from \"./tokenGenerator\";\n\n/**\n * @function translate\n * @param {String} text The text to be translated.\n * @param {TranslateOption} options The options object for the translator.\n * @returns {TranslateResponse} The result containing the translation.\n */\nexport async function translate(text: string, options?: TranslateOption): Promise<TranslateResponse> {\n if (typeof options !== \"object\") options = {};\n text = String(text);\n\n // Check if a lanugage is in supported; if not, throw an error object.\n let error: Error | null = null;\n [ options.from, options.to ].forEach((lang) => {\n if (lang && !isSupported(lang)) {\n error = new Error();\n error.message = `The language '${lang}' is not supported.`;\n }\n });\n if (error) throw error;\n\n // If options object doesn\"t have \"from\" language, set it to \"auto\".\n if (!Object.prototype.hasOwnProperty.call(options, \"from\")) options.from = \"auto\";\n // If options object doesn\"t have \"to\" language, set it to \"en\".\n if (!Object.prototype.hasOwnProperty.call(options, \"to\")) options.to = \"en\";\n // If options object has a \"raw\" property evaluating to true, set it to true.\n options.raw = Boolean(options.raw);\n\n // Get ISO 639-1 codes for the languages.\n options.from = getISOCode(options.from);\n options.to = getISOCode(options.to);\n\n // Generate Google Translate token for the text to be translated.\n let token: any = await tokenGenerator(text);\n\n // URL & query string required by Google Translate.\n let baseUrl = \"https://translate.google.com/translate_a/single\";\n let data: any = {\n client: \"gtx\",\n sl: options.from,\n tl: options.to,\n hl: options.to,\n dt: [ \"at\", \"bd\", \"ex\", \"ld\", \"md\", \"qca\", \"rw\", \"rm\", \"ss\", \"t\" ],\n ie: \"UTF-8\",\n oe: \"UTF-8\",\n otf: 1,\n ssel: 0,\n tsel: 0,\n kc: 7,\n q: text,\n [token.name]: token.value\n };\n\n // Append query string to the request URL.\n let url = `${baseUrl}?${querystring.stringify(data)}`;\n\n let requestOptions: any;\n let requestUrl = url;\n // If request URL is greater than 2048 characters, use POST method.\n if (url.length > 2048) {\n delete data.q;\n requestUrl = `${baseUrl}?${querystring.stringify(data)}`;\n requestOptions = {\n method: \"POST\",\n body: new URLSearchParams({ q: text }).toString(),\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\",\n },\n };\n if (options.proxy) {\n requestOptions.dispatcher = new ProxyAgent(options.proxy);\n }\n }\n else {\n if (options.proxy) {\n requestOptions = { dispatcher: new ProxyAgent(options.proxy) };\n }\n }\n\n // Request translation from Google Translate.\n let response = await request(requestUrl, requestOptions);\n let body: any = await response.body.json();\n\n let result: TranslateResponse = {\n text: \"\",\n from: {\n language: {\n didYouMean: false,\n iso: \"\"\n },\n text: {\n autoCorrected: false,\n value: \"\",\n didYouMean: false\n }\n },\n raw: \"\"\n };\n\n // If user requested a raw output, add the raw response to the result\n if (options.raw) {\n result.raw = body;\n }\n\n // Parse body and add it to the result object.\n body[0].forEach((obj: any) => {\n if (obj[0]) {\n result.text += obj[0];\n }\n });\n\n if (body[2] === body[8][0][0]) {\n result.from.language.iso = body[2];\n }\n else {\n result.from.language.didYouMean = true;\n result.from.language.iso = body[8][0][0];\n }\n\n if (body[7] && body[7][0]) {\n let str = body[7][0];\n\n str = str.replace(/<b><i>/g, \"[\");\n str = str.replace(/<\\/i><\\/b>/g, \"]\");\n\n result.from.text.value = str;\n\n if (body[7][5] === true) {\n result.from.text.autoCorrected = true;\n }\n else {\n result.from.text.didYouMean = true;\n }\n }\n\n return result;\n}\n", "/**\n * Generated from https://translate.google.com\n *\n * The languages that Google Translate supports (as of 7/5/2020) alongside\n * their ISO 639-1 codes\n * @see https://cloud.google.com/translate/docs/languages\n * @see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n */\n\nexport const languages = {\n \"auto\": \"Auto-Detect\",\n \"ab\": \"Abkhaz\",\n \"ace\": \"Acehnese\",\n \"ach\": \"Acholi\",\n \"aa\": \"Afar\",\n \"af\": \"Afrikaans\",\n \"sq\": \"Albanian\",\n \"alz\": \"Alur\",\n \"am\": \"Amharic\",\n \"ar\": \"Arabic\",\n \"hy\": \"Armenian\",\n \"as\": \"Assamese\",\n \"av\": \"Avar\",\n \"awa\": \"Awadhi\",\n \"ay\": \"Aymara\",\n \"az\": \"Azerbaijani\",\n \"ban\": \"Balinese\",\n \"bal\": \"Baluchi\",\n \"bm\": \"Bambara\",\n \"bci\": \"Baoul\\u00e9\",\n \"ba\": \"Bashkir\",\n \"eu\": \"Basque\",\n \"btx\": \"Batak Karo\",\n \"bts\": \"Batak Simalungun\",\n \"bbc\": \"Batak Toba\",\n \"be\": \"Belarusian\",\n \"bem\": \"Bemba\",\n \"bn\": \"Bengali\",\n \"bew\": \"Betawi\",\n \"bho\": \"Bhojpuri\",\n \"bik\": \"Bikol\",\n \"bs\": \"Bosnian\",\n \"br\": \"Breton\",\n \"bg\": \"Bulgarian\",\n \"bua\": \"Buryat\",\n \"yue\": \"Cantonese\",\n \"ca\": \"Catalan\",\n \"ceb\": \"Cebuano\",\n \"ch\": \"Chamorro\",\n \"ce\": \"Chechen\",\n \"ny\": \"Chichewa\",\n \"zh-CN\": \"Chinese (Simplified)\",\n \"zh-TW\": \"Chinese (Traditional)\",\n \"chk\": \"Chuukese\",\n \"cv\": \"Chuvash\",\n \"co\": \"Corsican\",\n \"crh\": \"Crimean Tatar (Cyrillic)\",\n \"crh-Latn\": \"Crimean Tatar (Latin)\",\n \"hr\": \"Croatian\",\n \"cs\": \"Czech\",\n \"da\": \"Danish\",\n \"fa-AF\": \"Dari\",\n \"dv\": \"Dhivehi\",\n \"din\": \"Dinka\",\n \"doi\": \"Dogri\",\n \"dov\": \"Dombe\",\n \"nl\": \"Dutch\",\n \"dyu\": \"Dyula\",\n \"dz\": \"Dzongkha\",\n \"en\": \"English\",\n \"eo\": \"Esperanto\",\n \"et\": \"Estonian\",\n \"ee\": \"Ewe\",\n \"fo\": \"Faroese\",\n \"fj\": \"Fijian\",\n \"tl\": \"Filipino\",\n \"fi\": \"Finnish\",\n \"fon\": \"Fon\",\n \"fr\": \"French\",\n \"fr-CA\": \"French (Canada)\",\n \"fy\": \"Frisian\",\n \"fur\": \"Friulian\",\n \"ff\": \"Fulani\",\n \"gaa\": \"Ga\",\n \"gl\": \"Galician\",\n \"ka\": \"Georgian\",\n \"de\": \"German\",\n \"el\": \"Greek\",\n \"gn\": \"Guarani\",\n \"gu\": \"Gujarati\",\n \"ht\": \"Haitian Creole\",\n \"cnh\": \"Hakha Chin\",\n \"ha\": \"Hausa\",\n \"haw\": \"Hawaiian\",\n \"iw\": \"Hebrew\",\n \"hil\": \"Hiligaynon\",\n \"hi\": \"Hindi\",\n \"hmn\": \"Hmong\",\n \"hu\": \"Hungarian\",\n \"hrx\": \"Hunsrik\",\n \"iba\": \"Iban\",\n \"is\": \"Icelandic\",\n \"ig\": \"Igbo\",\n \"ilo\": \"Ilocano\",\n \"id\": \"Indonesian\",\n \"iu-Latn\": \"Inuktut (Latin)\",\n \"iu\": \"Inuktut (Syllabics)\",\n \"ga\": \"Irish\",\n \"it\": \"Italian\",\n \"jam\": \"Jamaican Patois\",\n \"ja\": \"Japanese\",\n \"jv\": \"Javanese\",\n \"kac\": \"Jingpo\",\n \"kl\": \"Kalaallisut\",\n \"kn\": \"Kannada\",\n \"kr\": \"Kanuri\",\n \"pam\": \"Kapampangan\",\n \"kk\": \"Kazakh\",\n \"kha\": \"Khasi\",\n \"km\": \"Khmer\",\n \"cgg\": \"Kiga\",\n \"kg\": \"Kikongo\",\n \"rw\": \"Kinyarwanda\",\n \"ktu\": \"Kituba\",\n \"trp\": \"Kokborok\",\n \"kv\": \"Komi\",\n \"gom\": \"Konkani\",\n \"ko\": \"Korean\",\n \"kri\": \"Krio\",\n \"ku\": \"Kurdish (Kurmanji)\",\n \"ckb\": \"Kurdish (Sorani)\",\n \"ky\": \"Kyrgyz\",\n \"lo\": \"Lao\",\n \"ltg\": \"Latgalian\",\n \"la\": \"Latin\",\n \"lv\": \"Latvian\",\n \"lij\": \"Ligurian\",\n \"li\": \"Limburgish\",\n \"ln\": \"Lingala\",\n \"lt\": \"Lithuanian\",\n \"lmo\": \"Lombard\",\n \"lg\": \"Luganda\",\n \"luo\": \"Luo\",\n \"lb\": \"Luxembourgish\",\n \"mk\": \"Macedonian\",\n \"mad\": \"Madurese\",\n \"mai\": \"Maithili\",\n \"mak\": \"Makassar\",\n \"mg\": \"Malagasy\",\n \"ms\": \"Malay\",\n \"ms-Arab\": \"Malay (Jawi)\",\n \"ml\": \"Malayalam\",\n \"mt\": \"Maltese\",\n \"mam\": \"Mam\",\n \"gv\": \"Manx\",\n \"mi\": \"Maori\",\n \"mr\": \"Marathi\",\n \"mh\": \"Marshallese\",\n \"mwr\": \"Marwadi\",\n \"mfe\": \"Mauritian Creole\",\n \"chm\": \"Meadow Mari\",\n \"mni-Mtei\": \"Meiteilon (Manipuri)\",\n \"min\": \"Minang\",\n \"lus\": \"Mizo\",\n \"mn\": \"Mongolian\",\n \"my\": \"Myanmar (Burmese)\",\n \"bm-Nkoo\": \"NKo\",\n \"nhe\": \"Nahuatl (Eastern Huasteca)\",\n \"ndc-ZW\": \"Ndau\",\n \"nr\": \"Ndebele (South)\",\n \"new\": \"Nepalbhasa (Newari)\",\n \"ne\": \"Nepali\",\n \"no\": \"Norwegian\",\n \"nus\": \"Nuer\",\n \"oc\": \"Occitan\",\n \"or\": \"Odia (Oriya)\",\n \"om\": \"Oromo\",\n \"os\": \"Ossetian\",\n \"pag\": \"Pangasinan\",\n \"pap\": \"Papiamento\",\n \"ps\": \"Pashto\",\n \"fa\": \"Persian\",\n \"pl\": \"Polish\",\n \"pt\": \"Portuguese (Brazil)\",\n \"pt-PT\": \"Portuguese (Portugal)\",\n \"pa\": \"Punjabi (Gurmukhi)\",\n \"pa-Arab\": \"Punjabi (Shahmukhi)\",\n \"qu\": \"Quechua\",\n \"kek\": \"Q\\u02bceqchi\\u02bc\",\n \"rom\": \"Romani\",\n \"ro\": \"Romanian\",\n \"rn\": \"Rundi\",\n \"ru\": \"Russian\",\n \"se\": \"Sami (North)\",\n \"sm\": \"Samoan\",\n \"sg\": \"Sango\",\n \"sa\": \"Sanskrit\",\n \"sat-Latn\": \"Santali (Latin)\",\n \"sat\": \"Santali (Ol Chiki)\",\n \"gd\": \"Scots Gaelic\",\n \"nso\": \"Sepedi\",\n \"sr\": \"Serbian\",\n \"st\": \"Sesotho\",\n \"crs\": \"Seychellois Creole\",\n \"shn\": \"Shan\",\n \"sn\": \"Shona\",\n \"scn\": \"Sicilian\",\n \"szl\": \"Silesian\",\n \"sd\": \"Sindhi\",\n \"si\": \"Sinhala\",\n \"sk\": \"Slovak\",\n \"sl\": \"Slovenian\",\n \"so\": \"Somali\",\n \"es\": \"Spanish\",\n \"su\": \"Sundanese\",\n \"sus\": \"Susu\",\n \"sw\": \"Swahili\",\n \"ss\": \"Swati\",\n \"sv\": \"Swedish\",\n \"ty\": \"Tahitian\",\n \"tg\": \"Tajik\",\n \"ber-Latn\": \"Tamazight\",\n \"ber\": \"Tamazight (Tifinagh)\",\n \"ta\": \"Tamil\",\n \"tt\": \"Tatar\",\n \"te\": \"Telugu\",\n \"tet\": \"Tetum\",\n \"th\": \"Thai\",\n \"bo\": \"Tibetan\",\n \"ti\": \"Tigrinya\",\n \"tiv\": \"Tiv\",\n \"tpi\": \"Tok Pisin\",\n \"to\": \"Tongan\",\n \"lua\": \"Tshiluba\",\n \"ts\": \"Tsonga\",\n \"tn\": \"Tswana\",\n \"tcy\": \"Tulu\",\n \"tum\": \"Tumbuka\",\n \"tr\": \"Turkish\",\n \"tk\": \"Turkmen\",\n \"tyv\": \"Tuvan\",\n \"ak\": \"Twi\",\n \"udm\": \"Udmurt\",\n \"uk\": \"Ukrainian\",\n \"ur\": \"Urdu\",\n \"ug\": \"Uyghur\",\n \"uz\": \"Uzbek\",\n \"ve\": \"Venda\",\n \"vec\": \"Venetian\",\n \"vi\": \"Vietnamese\",\n \"war\": \"Waray\",\n \"cy\": \"Welsh\",\n \"wo\": \"Wolof\",\n \"xh\": \"Xhosa\",\n \"sah\": \"Yakut\",\n \"yi\": \"Yiddish\",\n \"yo\": \"Yoruba\",\n \"yua\": \"Yucatec Maya\",\n \"zap\": \"Zapotec\",\n \"zu\": \"Zulu\",\n} as const;\n\n/**\n * Returns the ISO 639-1 code of the desiredLang \u2013 if it is supported by\n * Google Translate\n * @param {string} language The name or the code of the desired language\n * @returns {string|undefined} The ISO 639-1 code of the language or null if the\n * language is not supported\n */\nexport function getISOCode(language: string | undefined) {\n if (!language) return undefined;\n if (language in languages) return language;\n language = language.toLowerCase();\n if (language in languages) return language;\n\n const keys = (Object.keys(languages) as (keyof typeof languages)[]).filter((key) => {\n if (typeof languages[key] !== \"string\") return false;\n\n return languages[key].toLowerCase() === language;\n });\n\n return keys[0] || undefined;\n}\n\n/**\n * Returns true if the desiredLang is supported by Google Translate and false otherwise\n * @param {string} language The ISO 639-1 code or the name of the desired language.\n * @returns {boolean} If the language is supported or not.\n */\nexport function isSupported(language: string | undefined) {\n return Boolean(getISOCode(language));\n}\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\n\nimport { request } from \"undici\";\n\nfunction zr(a: string) {\n let b: any;\n if (null !== yr) b = yr;\n else {\n b = wr(String.fromCharCode(84));\n let c = wr(String.fromCharCode(75));\n b = [ b(), b() ];\n b[1] = c();\n b = (yr = window[b.join(c())] || \"\") || \"\";\n }\n let d: any = wr(String.fromCharCode(116));\n let c: any = wr(String.fromCharCode(107));\n d = [ d(), d() ];\n d[1] = c();\n c = \"&\" + d.join(\"\") + \"=\";\n d = b.split(\".\");\n b = Number(d[0]) || 0;\n\n for (var e: any[] = [], f = 0, g = 0; g < a.length; g++) {\n let l = a.charCodeAt(g);\n 128 > l ? e[f++] = l : (2048 > l ? e[f++] = l >> 6 | 192 : ((l & 64512) == 55296 && g + 1 < a.length && (a.charCodeAt(g + 1) & 64512) == 56320 ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023), e[f++] = l >> 18 | 240, e[f++] = l >> 12 & 63 | 128) : e[f++] = l >> 12 | 224, e[f++] = l >> 6 & 63 | 128), e[f++] = l & 63 | 128);\n }\n let h: number = Number(b);\n for (let f = 0; f < e.length; f++) a += e[f], h = xr(h, \"+-a^+6\");\n h = xr(h, \"+-3^+b+-f\");\n h ^= Number(d[1]) || 0;\n 0 > h && (h = (h & 2147483647) + 2147483648);\n h %= 1E6;\n return c + (a.toString() + \".\" + (h ^ b));\n}\n\nlet yr: string | null = null;\nlet wr = function(a: string) {\n return function() {\n return a;\n };\n};\nlet xr = function(a: number, b: string) {\n for (let c = 0; c < b.length - 2; c += 3) {\n let d = b.charAt(c + 2);\n let e = d >= \"a\" ? d.charCodeAt(0) - 87 : Number(d);\n e = b.charAt(c + 1) == \"+\" ? a >>> e : a << e;\n a = b.charAt(c) == \"+\" ? a + e & 4294967295 : a ^ e;\n }\n return a;\n};\n\nconst config = new Map();\n\nconst window: any = {\n TKK: config.get(\"TKK\") || \"0\"\n};\n\nasync function updateTKK() {\n let now = Math.floor(Date.now() / 3600000);\n\n if (Number(window.TKK.split(\".\")[0]) !== now) {\n const response = await request(\"https://translate.google.com\");\n const body = await response.body.text();\n\n // code will extract something like tkk:'1232135.131231321312', we need only value\n const code = body.match(/tkk:'\\d+.\\d+'/g);\n\n if (code && code.length > 0) {\n // extracting value tkk:'1232135.131231321312', this will extract only token: 1232135.131231321312\n const xt = code[0].split(\":\")[1].replace(/'/g, \"\");\n\n window.TKK = xt;\n config.set(\"TKK\", xt);\n }\n }\n}\n\nexport async function tokenGenerator(text: string) {\n try {\n await updateTKK();\n\n let tk = zr(text);\n tk = tk.replace(\"&tk=\", \"\");\n return { name: \"tk\", value: tk };\n }\n catch (error) {\n return error;\n }\n}\n", "import { translate } from \"../vendor/@iamtraction-translate/src\";\nimport * as googleTTS from \"google-tts-api\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport * as https from \"https\";\nimport * as child_process from \"child_process\";\nimport { existsSync, writeFileSync, unlinkSync } from \"fs\";\nimport { LanguageCode } from \"./languages\";\nimport { LanguageCodeSet } from \"./types\";\nimport { HttpsProxyAgent } from \"https-proxy-agent\";\n\nexport const AUTO_DETECT = \"auto\";\n\nexport type SimpleTranslateResult = {\n originalText: string;\n translatedText: string;\n pronunciationText?: string;\n langFrom: LanguageCode;\n langTo: LanguageCode;\n proxy?: string;\n};\n\nexport class TranslateError extends Error {}\n\nconst extractPronounceTextFromRaw = (raw: string) => {\n return raw?.[0]?.[1]?.[2];\n};\n\nexport async function simpleTranslate(text: string, options: LanguageCodeSet): Promise<SimpleTranslateResult> {\n try {\n if (!text) {\n return {\n originalText: text,\n translatedText: \"\",\n pronunciationText: \"\",\n langFrom: options.langFrom,\n langTo: options.langTo[0],\n };\n }\n\n const translated = await translate(text, {\n from: options.langFrom,\n to: options.langTo[0],\n raw: true,\n proxy: options.proxy,\n });\n\n return {\n originalText: text,\n translatedText: translated.text,\n pronunciationText: extractPronounceTextFromRaw(translated?.raw),\n langFrom: translated?.from?.language?.iso as LanguageCode,\n langTo: options.langTo[0],\n };\n } catch (err) {\n if (err instanceof Error) {\n if (err.name === \"TooManyRequestsError\") {\n const error = new TranslateError();\n error.name = \"Too many requests\";\n error.message = \"please try again later\";\n throw error;\n }\n\n const error = new TranslateError();\n error.name = err.name;\n error.message = err.message;\n throw error;\n }\n\n throw err;\n }\n}\n\nexport async function doubleWayTranslate(text: string, options: LanguageCodeSet) {\n if (!text) {\n return [];\n }\n\n if (options.langFrom === AUTO_DETECT) {\n const translated1 = await simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n proxy: options.proxy,\n });\n\n if (translated1?.langFrom) {\n const translated2 = await simpleTranslate(translated1.translatedText, {\n langFrom: options.langTo[0],\n langTo: [translated1.langFrom],\n proxy: options.proxy,\n });\n\n return [translated1, translated2];\n }\n\n return [];\n } else {\n return await Promise.all([\n simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n proxy: options.proxy,\n }),\n simpleTranslate(text, {\n langFrom: options.langTo[0],\n langTo: [options.langFrom],\n proxy: options.proxy,\n }),\n ]);\n }\n}\n\nexport async function playTTS(text: string, langTo: string, proxy?: string) {\n const audioUrl = googleTTS.getAudioUrl(text, {\n lang: langTo,\n slow: false,\n host: \"https://translate.google.com\",\n });\n\n let agent: HttpsProxyAgent<string> | undefined;\n\n if (proxy) {\n try {\n agent = new HttpsProxyAgent(proxy);\n } catch (e) {\n console.error(`Error creating proxy agent for ${proxy}:`, e);\n agent = undefined; // Fallback to no proxy if agent creation fails\n }\n }\n\n // The options object for https.get. If 'agent' is undefined, it won't be included,\n // and https.get will use the default agent.\n const requestOptions: https.RequestOptions = {\n agent: agent,\n };\n\n https.get(audioUrl, requestOptions, (response) => {\n const chunks: Uint8Array[] = [];\n\n response.on(\"data\", (chunk) => {\n chunks.push(chunk);\n });\n\n response\n .on(\"end\", () => {\n const audioData = Buffer.concat(chunks);\n\n const tempFilePath = path.join(os.tmpdir(), \"translation.mp3\");\n writeFileSync(tempFilePath, audioData);\n\n // Play the audio file using afplay\n const afplayProcess = child_process.spawn(\"afplay\", [tempFilePath]);\n\n afplayProcess.on(\"exit\", (code) => {\n if (code !== 0) {\n console.error(`Error playing audio: afplay exited with code ${code}`);\n }\n if (existsSync(tempFilePath)) {\n unlinkSync(tempFilePath);\n }\n });\n })\n .on(\"error\", (error) => {\n console.error(\"Error downloading audio:\", error);\n });\n });\n}\n"], - "mappings": "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G,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMU,GAAS,CACb,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMM,GAAU,CACd,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEME,GAAiB,CACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG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AAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvD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G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMC,GAAc,CAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EA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,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,kBACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,eACH,MAAO,aACT,IAAK,cACL,IAAK,mBACL,IAAK,SACL,IAAK,aACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,eACL,IAAK,UACH,MAAO,eACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,KACL,IAAK,SACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,KACH,MAAO,cACT,IAAK,cACH,MAAO,cACT,IAAK,UACL,IAAK,MACL,IAAK,OACL,IAAK,SACL,IAAK,SACH,MAAO,SACT,IAAK,UACL,IAAK,SACH,MAAO,SACT,IAAK,cACL,IAAK,MACL,IAAK,YACL,IAAK,cACH,MAAO,YACT,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,UACL,IAAK,cACH,MAAO,cACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,iBACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,cACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACL,IAAK,WACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,I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,YACP,GAAM,UACN,GAAM,SACN,IAAO,aACP,IAAO,mBACP,IAAO,aACP,GAAM,aACN,IAAO,QACP,GAAM,UACN,IAAO,SACP,IAAO,WACP,IAAO,QACP,GAAM,UACN,GAAM,SACN,GAAM,YACN,IAAO,SACP,IAAO,YACP,GAAM,UACN,IAAO,UACP,GAAM,WACN,GAAM,UACN,GAAM,WACN,QAAS,uBACT,QAAS,wBACT,IAAO,WACP,GAAM,UACN,GAAM,WACN,IAAO,2BACP,WAAY,wBACZ,GAAM,WACN,GAAM,QACN,GAAM,SACN,QAAS,OACT,GAAM,UACN,IAAO,QACP,IAAO,QACP,IAAO,QACP,GAAM,QACN,IAAO,QACP,GAAM,WACN,GAAM,UACN,GAAM,YACN,GAAM,WACN,GAAM,MACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,IAAO,MACP,GAAM,SACN,QAAS,kBACT,GAAM,UACN,IAAO,WACP,GAAM,SACN,IAAO,KACP,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,iBACN,IAAO,aACP,GAAM,QACN,IAAO,WACP,GAAM,SACN,IAAO,aACP,GAAM,QACN,IAAO,QACP,GAAM,YACN,IAAO,UACP,IAAO,OACP,GAAM,YACN,GAAM,OACN,IAAO,UACP,GAAM,aACN,UAAW,kBACX,GAAM,sBACN,GAAM,QACN,GAAM,UACN,IAAO,kBACP,GAAM,WACN,GAAM,WACN,IAAO,SACP,GAAM,cACN,GAAM,UACN,GAAM,SACN,IAAO,cACP,GAAM,SACN,IAAO,QACP,GAAM,QACN,IAAO,OACP,GAAM,UACN,GAAM,cACN,IAAO,SACP,IAAO,WACP,GAAM,OACN,IAAO,UACP,GAAM,SACN,IAAO,OACP,GAAM,qBACN,IAAO,mBACP,GAAM,SACN,GAAM,MACN,IAAO,YACP,GAAM,QACN,GAAM,UACN,IAAO,WACP,GAAM,aACN,GAAM,UACN,GAAM,aACN,IAAO,UACP,GAAM,UACN,IAAO,MACP,GAAM,gBACN,GAAM,aACN,IAAO,WACP,IAAO,WACP,IAAO,WACP,GAAM,WACN,GAAM,QACN,UAAW,eACX,GAAM,YACN,GAAM,UACN,IAAO,MACP,GAAM,OACN,GAAM,QACN,GAAM,UACN,GAAM,cACN,IAAO,UACP,IAAO,mBACP,IAAO,cACP,WAAY,uBACZ,IAAO,SACP,IAAO,OACP,GAAM,YACN,GAAM,oBACN,UAAW,MACX,IAAO,6BACP,SAAU,OACV,GAAM,kBACN,IAAO,sBACP,GAAM,SACN,GAAM,YACN,IAAO,OACP,GAAM,UACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,IAAO,aACP,IAAO,aACP,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,sBACN,QAAS,wBACT,GAAM,qBACN,UAAW,sBACX,GAAM,UACN,IAAO,qBACP,IAAO,SACP,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,QACN,GAAM,WACN,WAAY,kBACZ,IAAO,qBACP,GAAM,eACN,IAAO,SACP,GAAM,UACN,GAAM,UACN,IAAO,qBACP,IAAO,OACP,GAAM,QACN,IAAO,WACP,IAAO,WACP,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,SACN,GAAM,UACN,GAAM,YACN,IAAO,OACP,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,WAAY,YACZ,IAAO,uBACP,GAAM,QACN,GAAM,QACN,GAAM,SACN,IAAO,QACP,GAAM,OACN,GAAM,UACN,GAAM,WACN,IAAO,MACP,IAAO,YACP,GAAM,SACN,IAAO,WACP,GAAM,SACN,GAAM,SACN,IAAO,OACP,IAAO,UACP,GAAM,UACN,GAAM,UACN,IAAO,QACP,GAAM,MACN,IAAO,SACP,GAAM,YACN,GAAM,OACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,IAAO,WACP,GAAM,aACN,IAAO,QACP,GAAM,QACN,GAAM,QACN,GAAM,QACN,IAAO,QACP,GAAM,UACN,GAAM,SACN,IAAO,eACP,IAAO,UACP,GAAM,MACV,EASO,SAASC,GAAWC,EAA8B,CACrD,OAAKA,EACDA,KAAYF,KAChBE,EAAWA,EAAS,Y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", - "names": ["require_symbols", "__commonJSMin", "exports", "module", "require_errors", "__commonJSMin", "exports", "module", "UndiciError", "message", "ConnectTimeoutError", "_ConnectTimeoutError", "HeadersTimeoutError", "_HeadersTimeoutError", "HeadersOverflowError", "_HeadersOverflowError", "BodyTimeoutError", "_BodyTimeoutError", "ResponseStatusCodeError", "_ResponseStatusCodeError", "statusCode", "headers", "body", "InvalidArgumentError", "_InvalidArgumentError", "InvalidReturnValueError", "_InvalidReturnValueError", "RequestAbortedError", "_RequestAbortedError", "InformationalError", "_InformationalError", "RequestContentLengthMismatchError", "_RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "_ResponseContentLengthMismatchError", "ClientDestroyedError", "_ClientDestroyedError", "ClientClosedError", "_ClientClosedError", "SocketError", "_SocketError", "socket", "NotSupportedError", "_NotSupportedError", "BalancedPoolMissingUpstreamError", "HTTPParserError", "_HTTPParserError", "code", "data", "ResponseExceededMaxSizeError", "_ResponseExceededMaxSizeError", "require_util", "__commonJSMin", "exports", "module", "assert", "kDestroyed", "kBodyUsed", "IncomingMessage", "stream", "net", "InvalidArgumentError", "Blob", "nodeUtil", "stringify", "nodeMajor", "nodeMinor", "v", "nop", "isStream", "obj", "isBlobLike", "object", "buildURL", "url", "queryParams", "stringified", "parseURL", "port", "origin", "path", "parseOrigin", "getHostname", "host", "idx", "getServerName", "servername", "deepClone", "isAsyncIterable", "isIterable", "bodyLength", "body", "state", "isBuffer", "isDestroyed", "isReadableAborted", "destroy", "err", "KEEPALIVE_TIMEOUT_EXPR", "parseKeepAliveTimeout", "val", "m", "parseHeaders", "headers", "i", "key", "parseRawHeaders", "ret", "hasContentLength", "contentDispositionIdx", "n", "buffer", "validateHandler", "handler", "method", "upgrade", "isDisturbed", "isErrored", "isReadable", "getSocketInfo", "socket", "ReadableStream", "ReadableStreamFrom", "iterable", "iterator", "controller", "done", "value", "buf", "reason", "isFormDataLike", "throwIfAborted", "signal", "events", "addAbortListener", "listener", "hasToWellFormed", "toUSVString", "kEnumerableProperty", "require_timers", "__commonJSMin", "exports", "module", "fastNow", "fastNowTimeout", "fastTimers", "onTimeout", "len", "idx", "timer", "refreshTimeout", "Timeout", "callback", "delay", "opaque", "timeout", "require_utils", "__commonJSMin", "exports", "module", "parseContentType", "str", "params", "i", "code", "TOKEN", "type", "subtypeStart", "parseContentTypeParams", "subtype", "name", "nameStart", "value", "valueStart", "escaping", "QDTEXT", "parseDisposition", "defDecoder", "parseDispositionParams", "charset", "charsetStart", "CHARSET", "encode", "EXTENDED_VALUE", "hexUpper", "hexLower", "HEX_VALUES", "byteVal", "convertToUTF8", "getDecoder", "lc", "decoders", "data", "hint", "decode", "basename", "path", "require_sbmh", "__commonJSMin", "exports", "module", "memcmp", "buf1", "pos1", "buf2", "pos2", "num", "i", "SBMH", "needle", "cb", "needleLen", "chunk", "pos", "result", "chunkLen", "feed", "lbSize", "self", "data", "len", "lastNeedleCharPos", "lastNeedleChar", "end", "occ", "lookbehind", "nextPos", "ch", "matchNeedle", "bytesToCutOff", "firstNeedleChar", "lb", "require_multipart", "__commonJSMin", "exports", "module", "Readable", "Writable", "StreamSearch", "basename", "convertToUTF8", "getDecoder", "parseContentType", "parseDisposition", "BUF_CRLF", "BUF_CR", "BUF_DASH", "noop", "MAX_HEADER_PAIRS", "MAX_HEADER_SIZE", "HPARSER_NAME", "HPARSER_PRE_OWS", "HPARSER_VALUE", "HeaderParser", "cb", "chunk", "pos", "end", "start", "done", "code", "TOKEN", "FIELD_VCHAR", "header", "FileStream", "opts", "owner", "n", "ignoreData", "callAndUnsetCb", "self", "err", "nullDecoder", "val", "hint", "Multipart", "cfg", "streamOpts", "boundary", "paramDecoder", "defCharset", "preservePath", "fileOpts", "limits", "fieldSizeLimit", "fileSizeLimit", "filesLimit", "fieldsLimit", "partsLimit", "parts", "fields", "files", "skipPart", "fileSize", "field", "fieldSize", "partCharset", "partEncoding", "partType", "partName", "partTruncated", "hitFilesLimit", "hitFieldsLimit", "hparser", "filename", "disp", "conType", "matchPostBoundary", "ssCb", "isMatch", "data", "isDataSafe", "retrydata", "ret", "writecb", "actualLen", "enc", "checkEndState", "fileStream", "finalcb", "require_urlencoded", "__commonJSMin", "exports", "module", "Writable", "getDecoder", "URLEncoded", "cfg", "streamOpts", "charset", "limits", "conType", "chunk", "enc", "cb", "i", "len", "readPctEnc", "main", "skipKeyBytes", "skipValBytes", "self", "pos", "hexUpper", "HEX_VALUES", "hexLower", "code", "require_lib", "__commonJSMin", "exports", "module", "parseContentType", "getInstance", "cfg", "headers", "conType", "type", "TYPES", "instanceCfg", "typemod", "require_constants", "__commonJSMin", "exports", "module", "MessageChannel", "receiveMessageOnPort", "corsSafeListedMethods", "nullBodyStatus", "redirectStatus", "badPorts", "referrerPolicy", "requestRedirect", "safeMethods", "requestMode", "requestCredentials", "requestCache", "requestBodyHeader", "requestDuplex", "forbiddenMethods", "subresource", "DOMException", "err", "channel", "structuredClone", "value", "options", "require_global", "__commonJSMin", "exports", "module", "globalOrigin", "getGlobalOrigin", "setGlobalOrigin", "newOrigin", "parsedURL", "require_util", "__commonJSMin", "exports", "module", "redirectStatus", "badPorts", "referrerPolicyTokens", "getGlobalOrigin", "performance", "isBlobLike", "toUSVString", "ReadableStreamFrom", "assert", "isUint8Array", "crypto", "responseURL", "response", "urlList", "length", "responseLocationURL", "requestFragment", "location", "isValidHeaderValue", "requestCurrentURL", "request", "requestBadPort", "url", "urlIsHttpHttpsScheme", "isErrorLike", "object", "isValidReasonPhrase", "statusText", "i", "c", "isTokenChar", "isValidHTTPToken", "characters", "isValidHeaderName", "potentialValue", "setRequestReferrerPolicyOnRedirect", "actualResponse", "headersList", "policyHeader", "policy", "token", "crossOriginResourcePolicyCheck", "corsCheck", "TAOCheck", "appendFetchMetadata", "httpRequest", "header", "appendRequestOriginHeader", "serializedOrigin", "urlHasHttpsScheme", "sameOrigin", "coarsenedSharedCurrentTime", "crossOriginIsolatedCapability", "createOpaqueTimingInfo", "timingInfo", "makePolicyContainer", "clonePolicyContainer", "policyContainer", "determineRequestsReferrer", "referrerSource", "globalOrigin", "referrerURL", "stripURLForReferrer", "referrerOrigin", "areSameOrigin", "isNonPotentiallyTrustWorthy", "isURLPotentiallyTrustworthy", "currentURL", "originOnly", "isOriginPotentiallyTrustworthy", "origin", "originAsURL", "bytesMatch", "bytes", "metadataList", "parsedMetadata", "parseMetadata", "list", "d", "strongest", "metadata", "item", "algorithm", "expectedValue", "parseHashWithOptions", "result", "empty", "supportedHashes", "parsedToken", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "B", "createDeferredPromise", "res", "rej", "resolve", "reject", "isAborted", "fetchParams", "isCancelled", "normalizeMethod", "method", "serializeJavascriptValueToJSONString", "value", "esIteratorPrototype", "makeIterator", "iterator", "name", "kind", "index", "target", "values", "len", "pair", "iteratorResult", "fullyReadBody", "body", "processBody", "processBodyError", "successSteps", "errorSteps", "error", "reader", "e", "readAllBytes", "ReadableStream", "isReadableStreamLike", "stream", "MAXIMUM_ARGUMENT_LENGTH", "isomorphicDecode", "input", "previous", "current", "readableStreamClose", "controller", "err", "isomorphicEncode", "failureSteps", "byteLength", "done", "chunk", "urlIsLocal", "protocol", "hasOwn", "dict", "key", "require_symbols", "__commonJSMin", "exports", "module", "require_webidl", "__commonJSMin", "exports", "module", "types", "hasOwn", "toUSVString", "webidl", "message", "context", "plural", "V", "I", "opts", "length", "min", "ctx", "bitLength", "signedness", "upperBound", "lowerBound", "x", "n", "r", "converter", "method", "seq", "done", "value", "keyConverter", "valueConverter", "O", "result", "keys", "key", "typedKey", "typedValue", "i", "converters", "dictionary", "type", "dict", "options", "defaultValue", "required", "hasDefault", "index", "charCode", "T", "require_dataURL", "__commonJSMin", "exports", "module", "assert", "atob", "isomorphicDecode", "encoder", "HTTP_TOKEN_CODEPOINTS", "HTTP_WHITESPACE_REGEX", "HTTP_QUOTED_STRING_TOKENS", "dataURLProcessor", "dataURL", "input", "URLSerializer", "position", "mimeType", "collectASequenceOfCodePointsFast", "mimeTypeLength", "removeASCIIWhitespace", "encodedBody", "body", "stringPercentDecode", "stringBody", "forgivingBase64", "mimeTypeRecord", "parseMIMEType", "url", "excludeFragment", "href", "hash", "collectASequenceOfCodePoints", "condition", "result", "char", "idx", "start", "bytes", "percentDecode", "output", "i", "byte", "nextTwoBytes", "bytePoint", "removeHTTPWhitespace", "type", "subtype", "typeLowercase", "subtypeLowercase", "parameterName", "parameterValue", "collectAnHTTPQuotedString", "data", "binary", "extractValue", "positionStart", "value", "quoteOrBackslash", "serializeAMimeType", "parameters", "essence", "serialization", "name", "isHTTPWhiteSpace", "str", "leading", "trailing", "lead", "trail", "isASCIIWhitespace", "require_file", "__commonJSMin", "exports", "module", "Blob", "NativeFile", "types", "kState", "isBlobLike", "webidl", "parseMIMEType", "serializeAMimeType", "kEnumerableProperty", "File", "_File", "fileBits", "fileName", "options", "n", "t", "d", "substep", "processBlobParts", "FileLike", "_FileLike", "blobLike", "args", "V", "opts", "value", "parts", "bytes", "element", "convertLineEndingsNative", "s", "nativeLineEnding", "isFileLike", "object", "require_formdata", "__commonJSMin", "exports", "module", "isBlobLike", "toUSVString", "makeIterator", "kState", "UndiciFile", "FileLike", "isFileLike", "webidl", "Blob", "NativeFile", "File", "FormData", "_FormData", "form", "name", "value", "filename", "entry", "makeEntry", "idx", "pair", "callbackFn", "thisArg", "key", "options", "require_body", "__commonJSMin", "exports", "module", "Busboy", "util", "ReadableStreamFrom", "isBlobLike", "isReadableStreamLike", "readableStreamClose", "createDeferredPromise", "fullyReadBody", "FormData", "kState", "webidl", "DOMException", "structuredClone", "Blob", "NativeFile", "kBodyUsed", "assert", "isErrored", "isUint8Array", "isArrayBuffer", "UndiciFile", "parseMIMEType", "serializeAMimeType", "ReadableStream", "File", "extractBody", "object", "keepalive", "stream", "controller", "source", "action", "length", "type", "boundary", "prefix", "escape", "str", "normalizeLinefeeds", "value", "enc", "blobParts", "rn", "hasUnknownSizeValue", "name", "chunk", "part", "iterator", "done", "reason", "safelyExtractBody", "cloneBody", "body", "out1", "out2", "out2Clone", "finalClone", "consumeBody", "throwIfAborted", "state", "bodyMixinMethods", "instance", "specConsumeBody", "bytes", "mimeType", "bodyMimeType", "utf8DecodeBytes", "parseJSONFromBytes", "contentType", "headers", "key", "responseFormData", "busboy", "err", "info", "filename", "encoding", "chunks", "base64chunk", "end", "busboyResolve", "resolve", "reject", "entries", "text", "textDecoder", "formData", "mixinBody", "prototype", "convertBytesToJSValue", "bodyUnusable", "promise", "errorSteps", "error", "successSteps", "data", "e", "buffer", "headersList", "require_request", "__commonJSMin", "exports", "module", "InvalidArgumentError", "NotSupportedError", "assert", "util", "tokenRegExp", "headerCharRegex", "invalidPathRegex", "kHandler", "channels", "extractBody", "diagnosticsChannel", "Request", "origin", "path", "method", "body", "headers", "query", "idempotent", "blocking", "upgrade", "headersTimeout", "bodyTimeout", "reset", "throwOnError", "handler", "i", "processHeader", "keys", "key", "bodyStream", "contentType", "chunk", "err", "abort", "statusCode", "resume", "statusText", "socket", "trailers", "error", "value", "processHeaderValue", "val", "request", "require_dispatcher", "__commonJSMin", "exports", "module", "EventEmitter", "Dispatcher", "require_dispatcher_base", "__commonJSMin", "exports", "module", "Dispatcher", "ClientDestroyedError", "ClientClosedError", "InvalidArgumentError", "kDestroy", "kClose", "kDispatch", "kInterceptors", "kDestroyed", "kClosed", "kOnDestroyed", "kOnClosed", "kInterceptedDispatch", "DispatcherBase", "newInterceptors", "i", "callback", "resolve", "reject", "err", "data", "onClosed", "callbacks", "onDestroyed", "opts", "handler", "dispatch", "require_connect", "__commonJSMin", "exports", "module", "net", "assert", "util", "InvalidArgumentError", "ConnectTimeoutError", "tls", "SessionCache", "maxCachedSessions", "key", "ref", "sessionKey", "session", "oldestKey", "buildConnector", "socketPath", "timeout", "opts", "options", "sessionCache", "hostname", "host", "protocol", "port", "servername", "localAddress", "httpSocket", "callback", "socket", "keepAliveInitialDelay", "cancelTimeout", "setupTimeout", "onConnectTimeout", "cb", "err", "s1", "s2", "timeoutId", "enumToMap", "obj", "res", "key", "value", "exports", "utils_1", "ERROR", "exports", "TYPE", "FLAGS", "LENIENT_FLAGS", "METHODS", "key", "FINISH", "i", "c", "HEADER_STATE", "require_RedirectHandler", "__commonJSMin", "exports", "module", "util", "kBodyUsed", "assert", "InvalidArgumentError", "EE", "redirectableStatusCodes", "kBody", "BodyAsyncIterable", "body", "RedirectHandler", "dispatch", "maxRedirections", "opts", "handler", "abort", "statusCode", "headers", "socket", "error", "resume", "statusText", "parseLocation", "origin", "pathname", "search", "path", "cleanRequestHeaders", "chunk", "trailers", "i", "shouldRemoveHeader", "header", "removeContent", "unknownOrigin", "ret", "key", "require_redirectInterceptor", "__commonJSMin", "exports", "module", "RedirectHandler", "createRedirectInterceptor", "defaultMaxRedirections", "dispatch", "opts", "handler", "maxRedirections", "redirectHandler", "require_llhttp_wasm", "__commonJSMin", "exports", "module", "require_llhttp_simd_wasm", "__commonJSMin", "exports", "module", "require_client", "__commonJSMin", "exports", "module", "assert", "net", "util", "timers", "Request", "DispatcherBase", "RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "InvalidArgumentError", "RequestAbortedError", "HeadersTimeoutError", "HeadersOverflowError", "SocketError", "InformationalError", "BodyTimeoutError", "HTTPParserError", "ResponseExceededMaxSizeError", "ClientDestroyedError", "buildConnector", "kUrl", "kReset", "kServerName", "kClient", "kBusy", "kParser", "kConnect", "kBlocking", "kResuming", "kRunning", "kPending", "kSize", "kWriting", "kQueue", "kConnected", "kConnecting", "kNeedDrain", "kNoRef", "kKeepAliveDefaultTimeout", "kHostHeader", "kPendingIdx", "kRunningIdx", "kError", "kPipelining", "kSocket", "kKeepAliveTimeoutValue", "kMaxHeadersSize", "kKeepAliveMaxTimeout", "kKeepAliveTimeoutThreshold", "kHeadersTimeout", "kBodyTimeout", "kStrictContentLength", "kConnector", "kMaxRedirections", "kMaxRequests", "kCounter", "kClose", "kDestroy", "kDispatch", "kInterceptors", "kLocalAddress", "kMaxResponseSize", "FastBuffer", "kClosedResolve", "channels", "diagnosticsChannel", "Client", "url", "interceptors", "maxHeaderSize", "headersTimeout", "socketTimeout", "requestTimeout", "connectTimeout", "bodyTimeout", "idleTimeout", "keepAlive", "keepAliveTimeout", "maxKeepAliveTimeout", "keepAliveMaxTimeout", "keepAliveTimeoutThreshold", "socketPath", "pipelining", "tls", "strictContentLength", "maxCachedSessions", "maxRedirections", "connect", "maxRequestsPerClient", "localAddress", "maxResponseSize", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "createRedirectInterceptor", "value", "resume", "socket", "cb", "opts", "handler", "origin", "request", "resolve", "err", "requests", "i", "errorRequest", "callback", "constants", "EMPTY_BUF", "lazyllhttp", "llhttpWasmData", "mod", "p", "at", "len", "currentParser", "start", "currentBufferPtr", "currentBufferRef", "statusCode", "upgrade", "shouldKeepAlive", "llhttpInstance", "llhttpPromise", "currentBufferSize", "TIMEOUT_HEADERS", "TIMEOUT_BODY", "TIMEOUT_IDLE", "Parser", "client", "type", "onParserTimeout", "chunk", "data", "llhttp", "ret", "offset", "ptr", "message", "buf", "key", "head", "headers", "onSocketError", "onSocketReadable", "onSocketEnd", "onSocketClose", "statusText", "timeout", "pause", "contentLength", "bytesRead", "parser", "timeoutType", "onError", "host", "hostname", "protocol", "port", "idx", "ip", "reject", "emitDrain", "sync", "_resume", "write", "body", "method", "path", "blocking", "reset", "expectsPayload", "header", "writeIterable", "writeBlob", "writeStream", "finished", "writer", "AsyncWriter", "onData", "onDrain", "onAbort", "onFinished", "er", "buffer", "waitForDrain", "bytesWritten", "require_fixed_queue", "__commonJSMin", "exports", "module", "FixedCircularBuffer", "data", "nextItem", "tail", "next", "require_pool_stats", "__commonJSMin", "exports", "module", "kFree", "kConnected", "kPending", "kQueued", "kRunning", "kSize", "kPool", "PoolStats", "pool", "require_pool_base", "__commonJSMin", "exports", "module", "DispatcherBase", "FixedQueue", "kConnected", "kSize", "kRunning", "kPending", "kQueued", "kBusy", "kFree", "kUrl", "kClose", "kDestroy", "kDispatch", "PoolStats", "kClients", "kNeedDrain", "kQueue", "kClosedResolve", "kOnDrain", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kGetDispatcher", "kAddClient", "kRemoveClient", "kStats", "PoolBase", "pool", "origin", "targets", "queue", "needDrain", "item", "c", "err", "client", "ret", "pending", "running", "size", "resolve", "opts", "handler", "dispatcher", "idx", "require_pool", "__commonJSMin", "exports", "module", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kGetDispatcher", "Client", "InvalidArgumentError", "util", "kUrl", "kInterceptors", "buildConnector", "kOptions", "kConnections", "kFactory", "defaultFactory", "origin", "opts", "Pool", "connections", "factory", "connect", "connectTimeout", "tls", "maxCachedSessions", "socketPath", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "options", "dispatcher", "require_balanced_pool", "__commonJSMin", "exports", "module", "BalancedPoolMissingUpstreamError", "InvalidArgumentError", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kRemoveClient", "kGetDispatcher", "Pool", "kUrl", "kInterceptors", "parseOrigin", "kFactory", "kOptions", "kGreatestCommonDivisor", "kCurrentWeight", "kIndex", "kWeight", "kMaxWeightPerServer", "kErrorPenalty", "getGreatestCommonDivisor", "a", "b", "defaultFactory", "origin", "opts", "BalancedPool", "upstreams", "factory", "upstream", "upstreamOrigin", "pool", "args", "err", "client", "p", "dispatcher", "counter", "maxWeightIndex", "require_dispatcher_weakref", "__commonJSMin", "exports", "module", "kConnected", "kSize", "CompatWeakRef", "value", "CompatFinalizer", "finalizer", "dispatcher", "key", "require_agent", "__commonJSMin", "exports", "module", "InvalidArgumentError", "kClients", "kRunning", "kClose", "kDestroy", "kDispatch", "kInterceptors", "DispatcherBase", "Pool", "Client", "util", "createRedirectInterceptor", "WeakRef", "FinalizationRegistry", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kMaxRedirections", "kOnDrain", "kFactory", "kFinalizer", "kOptions", "defaultFactory", "origin", "opts", "Agent", "factory", "maxRedirections", "connect", "options", "key", "ref", "agent", "targets", "err", "ret", "client", "handler", "dispatcher", "closePromises", "destroyPromises", "require_readable", "__commonJSMin", "exports", "module", "assert", "Readable", "RequestAbortedError", "NotSupportedError", "InvalidArgumentError", "util", "ReadableStreamFrom", "toUSVString", "Blob", "kConsume", "kReading", "kBody", "kAbort", "kContentType", "resume", "abort", "contentType", "highWaterMark", "err", "ev", "args", "ret", "chunk", "consumePush", "consume", "opts", "limit", "signal", "abortFn", "signalListenerCleanup", "isLocked", "self", "isUnusable", "stream", "type", "resolve", "reject", "consumeFinish", "consumeStart", "state", "consumeEnd", "body", "length", "dst", "pos", "buf", "require_util", "__commonJSMin", "exports", "module", "assert", "ResponseStatusCodeError", "toUSVString", "getResolveErrorBodyCallback", "callback", "body", "contentType", "statusCode", "statusMessage", "headers", "chunks", "limit", "chunk", "payload", "require_abort_signal", "__commonJSMin", "exports", "module", "addAbortListener", "RequestAbortedError", "kListener", "kSignal", "abort", "self", "addSignal", "signal", "removeSignal", "require_api_request", "__commonJSMin", "exports", "module", "Readable", "InvalidArgumentError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "RequestHandler", "opts", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "highWaterMark", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "contentType", "chunk", "res", "trailers", "request", "resolve", "reject", "data", "require_api_stream", "__commonJSMin", "exports", "module", "finished", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "StreamHandler", "opts", "factory", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "res", "contentType", "trailers", "chunk", "stream", "resolve", "reject", "data", "require_api_pipeline", "__commonJSMin", "exports", "module", "Readable", "Duplex", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "AsyncResource", "addSignal", "removeSignal", "assert", "kResume", "PipelineRequest", "resume", "err", "callback", "PipelineResponse", "PipelineHandler", "opts", "handler", "signal", "method", "opaque", "onInfo", "responseHeaders", "body", "chunk", "encoding", "req", "res", "ret", "abort", "context", "statusCode", "rawHeaders", "headers", "trailers", "pipeline", "pipelineHandler", "require_api_upgrade", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "assert", "UpgradeHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "upgrade", "resolve", "reject", "data", "upgradeHandler", "require_api_connect", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "ConnectHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "connect", "resolve", "reject", "data", "connectHandler", "require_api", "__commonJSMin", "exports", "module", "require_mock_errors", "__commonJSMin", "exports", "module", "UndiciError", "MockNotMatchedError", "_MockNotMatchedError", "message", "require_mock_symbols", "__commonJSMin", "exports", "module", "require_mock_utils", "__commonJSMin", "exports", "module", "MockNotMatchedError", "kDispatches", "kMockAgent", "kOriginalDispatch", "kOrigin", "kGetNetConnect", "buildURL", "nop", "STATUS_CODES", "isPromise", "matchValue", "match", "value", "lowerCaseEntries", "headers", "headerName", "headerValue", "getHeaderByName", "key", "i", "buildHeadersFromArray", "clone", "entries", "index", "matchHeaders", "mockDispatch", "matchHeaderName", "matchHeaderValue", "safeUrl", "path", "pathSegments", "qp", "matchKey", "method", "body", "pathMatch", "methodMatch", "bodyMatch", "headersMatch", "getResponseData", "data", "getMockDispatch", "mockDispatches", "basePath", "resolvedPath", "matchedMockDispatches", "consumed", "addMockDispatch", "baseData", "replyData", "newMockDispatch", "deleteMockDispatch", "dispatch", "buildKey", "opts", "query", "generateKeyValues", "keyValuePairs", "x", "getStatusText", "statusCode", "getResponse", "buffers", "handler", "trailers", "error", "delay", "persist", "timesInvoked", "times", "handleReply", "_data", "optsHeaders", "newData", "responseData", "responseHeaders", "responseTrailers", "resume", "buildMockDispatch", "agent", "origin", "originalDispatch", "netConnect", "checkNetConnect", "url", "matcher", "buildMockOptions", "mockOptions", "require_mock_interceptor", "__commonJSMin", "exports", "module", "getResponseData", "buildKey", "addMockDispatch", "kDispatches", "kDispatchKey", "kDefaultHeaders", "kDefaultTrailers", "kContentLength", "kMockDispatch", "InvalidArgumentError", "buildURL", "MockScope", "mockDispatch", "waitInMs", "repeatTimes", "MockInterceptor", "opts", "mockDispatches", "parsedURL", "statusCode", "data", "responseOptions", "responseData", "contentLength", "headers", "trailers", "replyData", "wrappedDefaultsCallback", "resolvedData", "newMockDispatch", "dispatchData", "error", "require_mock_client", "__commonJSMin", "exports", "module", "promisify", "Client", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockClient", "origin", "opts", "require_mock_pool", "__commonJSMin", "exports", "module", "promisify", "Pool", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockPool", "origin", "opts", "require_pluralizer", "__commonJSMin", "exports", "module", "singulars", "plurals", "singular", "plural", "count", "one", "keys", "noun", "require_pending_interceptors_formatter", "__commonJSMin", "exports", "module", "Transform", "Console", "disableColors", "chunk", "_enc", "cb", "pendingInterceptors", "withPrettyHeaders", "method", "path", "statusCode", "persist", "times", "timesInvoked", "origin", "require_mock_agent", "__commonJSMin", "exports", "module", "kClients", "Agent", "kAgent", "kMockAgentSet", "kMockAgentGet", "kDispatches", "kIsMockActive", "kNetConnect", "kGetNetConnect", "kOptions", "kFactory", "MockClient", "MockPool", "matchValue", "buildMockOptions", "InvalidArgumentError", "UndiciError", "Dispatcher", "Pluralizer", "PendingInterceptorsFormatter", "FakeWeakRef", "value", "MockAgent", "opts", "agent", "origin", "dispatcher", "handler", "matcher", "mockOptions", "ref", "keyMatcher", "nonExplicitRef", "nonExplicitDispatcher", "mockAgentClients", "scope", "dispatch", "pending", "pendingInterceptorsFormatter", "pluralizer", "require_proxy_agent", "__commonJSMin", "exports", "module", "kProxy", "kClose", "kDestroy", "kInterceptors", "URL", "Agent", "Pool", "DispatcherBase", "InvalidArgumentError", "RequestAbortedError", "buildConnector", "kAgent", "kClient", "kProxyHeaders", "kRequestTls", "kProxyTls", "kConnectEndpoint", "defaultProtocolPort", "protocol", "buildProxyOptions", "opts", "defaultFactory", "origin", "ProxyAgent", "clientFactory", "resolvedUrl", "port", "host", "connect", "callback", "requestedHost", "socket", "statusCode", "servername", "err", "handler", "headers", "buildHeaders", "throwIfProxyAuthIsSent", "headersPair", "i", "key", "require_global", "__commonJSMin", "exports", "module", "globalDispatcher", "InvalidArgumentError", "Agent", "getGlobalDispatcher", "setGlobalDispatcher", "agent", "require_DecoratorHandler", "__commonJSMin", "exports", "module", "handler", "args", "require_headers", "__commonJSMin", "exports", "module", "kHeadersList", "kGuard", "kEnumerableProperty", "makeIterator", "isValidHeaderName", "isValidHeaderValue", "webidl", "assert", "kHeadersMap", "kHeadersSortedMap", "headerValueNormalize", "potentialValue", "i", "fill", "headers", "object", "header", "key", "value", "HeadersList", "_HeadersList", "init", "name", "lowercaseName", "exists", "delimiter", "Headers", "_Headers", "list", "names", "a", "b", "cookies", "callbackFn", "thisArg", "V", "require_response", "__commonJSMin", "exports", "module", "Headers", "HeadersList", "fill", "extractBody", "cloneBody", "mixinBody", "util", "kEnumerableProperty", "isValidReasonPhrase", "isCancelled", "isAborted", "isBlobLike", "serializeJavascriptValueToJSONString", "isErrorLike", "isomorphicEncode", "redirectStatus", "nullBodyStatus", "DOMException", "kState", "kHeaders", "kGuard", "kRealm", "webidl", "FormData", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "types", "ReadableStream", "Response", "_Response", "relevantRealm", "responseObject", "makeNetworkError", "data", "init", "bytes", "body", "initializeResponse", "url", "status", "parsedURL", "err", "value", "makeResponse", "bodyWithType", "extractedBody", "type", "urlList", "clonedResponse", "cloneResponse", "clonedResponseObject", "response", "filterResponse", "newResponse", "reason", "isError", "makeFilteredResponse", "state", "target", "p", "makeAppropriateNetworkError", "fetchParams", "V", "require_request", "__commonJSMin", "exports", "module", "extractBody", "mixinBody", "cloneBody", "Headers", "fillHeaders", "HeadersList", "FinalizationRegistry", "util", "isValidHTTPToken", "sameOrigin", "normalizeMethod", "makePolicyContainer", "forbiddenMethods", "corsSafeListedMethods", "referrerPolicy", "requestRedirect", "requestMode", "requestCredentials", "requestCache", "requestDuplex", "kEnumerableProperty", "kHeaders", "kSignal", "kState", "kGuard", "kRealm", "webidl", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "getMaxListeners", "setMaxListeners", "getEventListeners", "defaultMaxListeners", "TransformStream", "kInit", "kAbortController", "requestFinalizer", "signal", "abort", "Request", "_Request", "input", "init", "request", "fallbackMode", "baseUrl", "parsedURL", "err", "makeRequest", "origin", "window", "referrer", "parsedReferrer", "mode", "method", "ac", "acRef", "headers", "key", "val", "inputBody", "initBody", "extractedBody", "contentType", "inputOrInitBody", "finalBody", "identityTransform", "clonedRequest", "cloneRequest", "clonedRequestObject", "newRequest", "V", "require_fetch", "__commonJSMin", "exports", "module", "Response", "makeNetworkError", "makeAppropriateNetworkError", "filterResponse", "makeResponse", "Headers", "Request", "makeRequest", "zlib", "bytesMatch", "makePolicyContainer", "clonePolicyContainer", "requestBadPort", "TAOCheck", "appendRequestOriginHeader", "responseLocationURL", "requestCurrentURL", "setRequestReferrerPolicyOnRedirect", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "createOpaqueTimingInfo", "appendFetchMetadata", "corsCheck", "crossOriginResourcePolicyCheck", "determineRequestsReferrer", "coarsenedSharedCurrentTime", "createDeferredPromise", "isBlobLike", "sameOrigin", "isCancelled", "isAborted", "isErrorLike", "fullyReadBody", "readableStreamClose", "isomorphicEncode", "urlIsLocal", "urlIsHttpHttpsScheme", "urlHasHttpsScheme", "kState", "kHeaders", "kGuard", "kRealm", "assert", "safelyExtractBody", "redirectStatus", "nullBodyStatus", "safeMethods", "requestBodyHeader", "subresource", "DOMException", "kHeadersList", "EE", "Readable", "pipeline", "addAbortListener", "isErrored", "isReadable", "nodeMajor", "nodeMinor", "dataURLProcessor", "serializeAMimeType", "TransformStream", "getGlobalDispatcher", "webidl", "STATUS_CODES", "resolveObjectURL", "ReadableStream", "Fetch", "dispatcher", "reason", "error", "fetch", "input", "init", "p", "requestObject", "e", "request", "abortFetch", "responseObject", "relevantRealm", "locallyAborted", "controller", "fetching", "response", "finalizeAndReportTiming", "initiatorType", "originalURL", "timingInfo", "cacheState", "markResourceTiming", "globalThis", "err", "processRequestBodyChunkLength", "processRequestEndOfBody", "processResponse", "processResponseEndOfBody", "processResponseConsumeBody", "useParallelQueue", "taskDestination", "crossOriginIsolatedCapability", "currenTime", "fetchParams", "mainFetch", "recursive", "currentURL", "schemeFetch", "httpFetch", "internalResponse", "processBodyError", "fetchFinale", "processBody", "bytes", "scheme", "blobURLEntry", "blobURLEntryObject", "bodyWithType", "body", "length", "type", "dataURLStruct", "mimeType", "finalizeResponse", "identityTransformAlgorithm", "chunk", "transformStream", "nullOrBytes", "failure", "actualResponse", "httpNetworkOrCacheFetch", "httpRedirectFetch", "locationURL", "headerName", "isAuthenticationFetch", "isNewConnectionFetch", "httpFetchParams", "httpRequest", "httpCache", "revalidatingFlag", "includeCredentials", "contentLength", "contentLengthHeaderValue", "forwardResponse", "httpNetworkFetch", "forceNewConnection", "newConnection", "requestBody", "processBodyChunk", "processEndOfBody", "status", "statusText", "headersList", "socket", "dispatch", "iterator", "pullAlgorithm", "cancelAlgorithm", "stream", "onAborted", "isFailure", "done", "value", "url", "agent", "resolve", "reject", "abort", "connection", "resume", "codings", "location", "headers", "n", "key", "val", "x", "decoders", "willFollow", "coding", "require_symbols", "__commonJSMin", "exports", "module", "require_progressevent", "__commonJSMin", "exports", "module", "webidl", "kState", "ProgressEvent", "_ProgressEvent", "type", "eventInitDict", "require_encoding", "__commonJSMin", "exports", "module", "getEncoding", "label", "require_util", "__commonJSMin", "exports", "module", "kState", "kError", "kResult", "kAborted", "kLastProgressEventFired", "ProgressEvent", "getEncoding", "DOMException", "serializeAMimeType", "parseMIMEType", "types", "StringDecoder", "btoa", "staticPropertyDescriptors", "readOperation", "fr", "blob", "type", "encodingName", "reader", "bytes", "chunkPromise", "isFirstChunk", "done", "value", "fireAProgressEvent", "result", "packageData", "error", "e", "event", "mimeType", "dataURL", "parsed", "decoder", "chunk", "encoding", "decode", "combineByteSequences", "binaryString", "ioQueue", "BOMEncoding", "BOMSniffing", "slice", "sliced", "a", "b", "c", "sequences", "size", "offset", "require_filereader", "__commonJSMin", "exports", "module", "staticPropertyDescriptors", "readOperation", "fireAProgressEvent", "kState", "kError", "kResult", "kEvents", "kAborted", "webidl", "kEnumerableProperty", "FileReader", "_FileReader", "blob", "encoding", "fn", "require_symbols", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "URLSerializer", "isValidHeaderName", "urlEquals", "B", "excludeFragment", "serializedA", "serializedB", "fieldValues", "header", "values", "value", "require_cache", "__commonJSMin", "exports", "module", "kConstruct", "urlEquals", "getFieldValues", "kEnumerableProperty", "isDisturbed", "kHeadersList", "webidl", "Response", "cloneResponse", "Request", "kState", "kHeaders", "kGuard", "kRealm", "fetching", "urlIsHttpHttpsScheme", "createDeferredPromise", "readAllBytes", "assert", "getGlobalDispatcher", "Cache", "_Cache", "#relevantRequestResponseList", "request", "options", "p", "responses", "requestResponse", "requestResponses", "#queryCache", "responseList", "response", "responseObject", "body", "requests", "responsePromises", "requestList", "r", "fetchControllers", "responsePromise", "fieldValues", "fieldValue", "controller", "operations", "index", "operation", "cacheJobPromise", "errorData", "#batchCacheOperations", "e", "innerRequest", "innerResponse", "clonedResponse", "bodyReadPromise", "reader", "bytes", "error", "promise", "requestObject", "cache", "backupCache", "addedItems", "resultList", "idx", "requestQuery", "targetStorage", "storage", "cachedRequest", "cachedResponse", "#requestMatchesCachedItem", "queryURL", "cachedURL", "requestValue", "queryValue", "cacheQueryOptionConverters", "require_cachestorage", "__commonJSMin", "exports", "module", "kConstruct", "Cache", "webidl", "kEnumerableProperty", "CacheStorage", "_CacheStorage", "#caches", "request", "options", "cacheList", "response", "cacheName", "cache", "require_constants", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "kHeadersList", "isCTLExcludingHtab", "value", "char", "code", "validateCookieName", "name", "validateCookieValue", "validateCookiePath", "path", "validateCookieDomain", "domain", "toIMFDate", "date", "days", "months", "dayName", "day", "month", "year", "hour", "minute", "second", "validateCookieMaxAge", "maxAge", "stringify", "cookie", "out", "part", "key", "kHeadersListNode", "getHeadersList", "headers", "symbol", "headersList", "require_parse", "__commonJSMin", "exports", "module", "maxNameValuePairSize", "maxAttributeValueSize", "isCTLExcludingHtab", "collectASequenceOfCodePointsFast", "assert", "parseSetCookie", "header", "nameValuePair", "unparsedAttributes", "name", "value", "position", "parseUnparsedAttributes", "cookieAttributeList", "cookieAv", "attributeName", "attributeValue", "attributeNameLowercase", "expiryTime", "charCode", "deltaSeconds", "cookieDomain", "cookiePath", "enforcement", "attributeValueLowercase", "require_cookies", "__commonJSMin", "exports", "module", "parseSetCookie", "stringify", "getHeadersList", "webidl", "Headers", "getCookies", "headers", "cookie", "out", "piece", "name", "value", "deleteCookie", "attributes", "setCookie", "getSetCookies", "cookies", "pair", "require_constants", "__commonJSMin", "exports", "module", "uid", "staticPropertyDescriptors", "states", "opcodes", "maxUnsigned16Bit", "parserStates", "emptyBuffer", "require_symbols", "__commonJSMin", "exports", "module", "require_events", "__commonJSMin", "exports", "module", "webidl", "kEnumerableProperty", "MessagePort", "MessageEvent", "_MessageEvent", "#eventInit", "type", "eventInitDict", "bubbles", "cancelable", "data", "origin", "lastEventId", "source", "ports", "CloseEvent", "_CloseEvent", "ErrorEvent", "_ErrorEvent", "eventInit", "require_util", "__commonJSMin", "exports", "module", "kReadyState", "kController", "kResponse", "kBinaryType", "kWebSocketURL", "states", "opcodes", "MessageEvent", "ErrorEvent", "isEstablished", "ws", "isClosing", "isClosed", "fireEvent", "e", "target", "eventConstructor", "eventInitDict", "event", "websocketMessageReceived", "type", "data", "dataForEvent", "failWebsocketConnection", "isValidSubprotocol", "protocol", "char", "code", "isValidStatusCode", "reason", "controller", "response", "require_connection", "__commonJSMin", "exports", "module", "randomBytes", "createHash", "diagnosticsChannel", "uid", "states", "kReadyState", "kSentClose", "kByteParser", "kReceivedClose", "fireEvent", "failWebsocketConnection", "CloseEvent", "makeRequest", "fetching", "Headers", "getGlobalDispatcher", "kHeadersList", "channels", "establishWebSocketConnection", "url", "protocols", "ws", "onEstablish", "options", "requestURL", "request", "headersList", "keyValue", "protocol", "permessageDeflate", "response", "secWSAccept", "digest", "secExtension", "secProtocol", "onSocketData", "onSocketClose", "onSocketError", "chunk", "wasClean", "code", "reason", "result", "error", "require_frame", "__commonJSMin", "exports", "module", "randomBytes", "maxUnsigned16Bit", "WebsocketFrameSend", "data", "opcode", "bodyLength", "payloadLength", "offset", "buffer", "require_receiver", "__commonJSMin", "exports", "module", "Writable", "diagnosticsChannel", "parserStates", "opcodes", "states", "emptyBuffer", "kReadyState", "kSentClose", "kResponse", "kReceivedClose", "isValidStatusCode", "failWebsocketConnection", "websocketMessageReceived", "WebsocketFrameSend", "channels", "ByteParser", "#buffers", "#byteOffset", "#state", "#info", "#fragments", "ws", "chunk", "_", "callback", "buffer", "payloadLength", "body", "closeFrame", "err", "frame", "upper", "lower", "fullMessage", "n", "offset", "next", "length", "onlyCode", "data", "code", "reason", "require_websocket", "__commonJSMin", "exports", "module", "webidl", "DOMException", "URLSerializer", "staticPropertyDescriptors", "states", "opcodes", "emptyBuffer", "kWebSocketURL", "kReadyState", "kController", "kBinaryType", "kResponse", "kSentClose", "kByteParser", "isEstablished", "isClosing", "isValidSubprotocol", "failWebsocketConnection", "fireEvent", "establishWebSocketConnection", "WebsocketFrameSend", "ByteParser", "kEnumerableProperty", "isBlobLike", "getGlobalDispatcher", "types", "experimentalWarned", "WebSocket", "_WebSocket", "#events", "#bufferedAmount", "#protocol", "#extensions", "url", "protocols", "options", "urlRecord", "e", "p", "response", "#onConnectionEstablished", "code", "reason", "reasonByteLength", "frame", "err", "data", "socket", "value", "buffer", "ab", "fn", "type", "parser", "extensions", "protocol", "V", "require_undici", "__commonJSMin", "exports", "module", "Client", "Dispatcher", "errors", "Pool", "BalancedPool", "Agent", "util", "InvalidArgumentError", "api", "buildConnector", "MockClient", "MockAgent", "MockPool", "mockErrors", "ProxyAgent", "getGlobalDispatcher", "setGlobalDispatcher", "DecoratorHandler", "RedirectHandler", "createRedirectInterceptor", "hasCrypto", "makeDispatcher", "fn", "url", "opts", "handler", "path", "agent", "dispatcher", "fetchImpl", "resource", "err", "setGlobalOrigin", "getGlobalOrigin", "CacheStorage", "kConstruct", "deleteCookie", "getCookies", "getSetCookies", "setCookie", "parseMIMEType", "serializeAMimeType", "WebSocket", "assertInputTypes", "text", "lang", "slow", "host", "exports", "SPACE_REGEX", "DEFAULT_PUNCTUATION_REGEX", "splitLongText", "text", "_a", "_b", "_c", "maxLength", "_d", "splitPunct", "isSpaceOrPunct", "s", "i", "regex", "lastIndexOfSpaceOrPunct", "left", "right", "result", "addResult", "start", "end", "str", "exports", "assertInputTypes_1", "__importDefault", "splitLongText_1", "url_1", "getAudioUrl", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "exports", "getAllAudioUrls", "_f", "splitPunct", "shortText", "require_bind", "__commonJSMin", "exports", "module", "fn", "thisArg", "args", "i", "require_utils", "__commonJSMin", "exports", "module", "bind", "toString", "isArray", "val", "isUndefined", "isBuffer", "isArrayBuffer", "isFormData", "isArrayBufferView", "result", "isString", "isNumber", "isObject", "isPlainObject", "prototype", "isDate", "isFile", "isBlob", "isFunction", "isStream", "isURLSearchParams", "trim", "str", "isStandardBrowserEnv", "forEach", "obj", "fn", "i", "l", "key", "merge", "assignValue", "extend", "a", "b", "thisArg", "stripBOM", "content", "require_buildURL", "__commonJSMin", "exports", "module", "utils", "encode", "val", "url", "params", "paramsSerializer", "serializedParams", "parts", "key", "v", "hashmarkIndex", "require_InterceptorManager", "__commonJSMin", "exports", "module", "utils", "InterceptorManager", "fulfilled", "rejected", "options", "id", "fn", "h", "require_normalizeHeaderName", "__commonJSMin", "exports", "module", "utils", "headers", "normalizedName", "value", "name", "require_enhanceError", "__commonJSMin", "exports", "module", "error", "config", "code", "request", "response", "require_createError", "__commonJSMin", "exports", "module", "enhanceError", "message", "config", "code", "request", "response", "error", "require_settle", "__commonJSMin", "exports", "module", "createError", "resolve", "reject", "response", "validateStatus", "require_cookies", "__commonJSMin", "exports", "module", "utils", "name", "value", "expires", "path", "domain", "secure", "cookie", "match", "require_isAbsoluteURL", "__commonJSMin", "exports", "module", "url", "require_combineURLs", "__commonJSMin", "exports", "module", "baseURL", "relativeURL", "require_buildFullPath", "__commonJSMin", "exports", "module", "isAbsoluteURL", "combineURLs", "baseURL", "requestedURL", "require_parseHeaders", "__commonJSMin", "exports", "module", "utils", "ignoreDuplicateOf", "headers", "parsed", "key", "val", "i", "line", "require_isURLSameOrigin", "__commonJSMin", "exports", "module", "utils", "msie", "urlParsingNode", "originURL", "resolveURL", "url", "href", "requestURL", "parsed", "require_xhr", "__commonJSMin", "exports", "module", "utils", "settle", "cookies", "buildURL", "buildFullPath", "parseHeaders", "isURLSameOrigin", "createError", "config", "resolve", "reject", "requestData", "requestHeaders", "responseType", "request", "username", "password", "fullPath", "onloadend", "responseHeaders", "responseData", "response", "timeoutErrorMessage", "xsrfValue", "val", "key", "cancel", "require_ms", "__commonJSMin", "exports", "module", "s", "m", "h", "d", "w", "y", "val", "options", "type", "parse", "fmtLong", "fmtShort", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "require_common", "__commonJSMin", "exports", "module", "setup", "env", "createDebug", "coerce", "disable", "enable", "enabled", "destroy", "key", "selectColor", "namespace", "hash", "i", "prevTime", "enableOverride", "namespacesCache", "enabledCache", "debug", "args", "self", "curr", "ms", "index", "match", "format", "formatter", "val", "extend", "v", "delimiter", "newDebug", "namespaces", "split", "len", "toNamespace", "name", "regexp", "require_browser", "__commonJSMin", "exports", "module", "formatArgs", "save", "load", "useColors", "localstorage", "warned", "args", "c", "index", "lastC", "match", "namespaces", "r", "formatters", "v", "error", "require_has_flag", "__commonJSMin", "exports", "module", "flag", "argv", "prefix", "position", "terminatorPosition", "require_supports_color", "__commonJSMin", "exports", "module", "os", "tty", "hasFlag", "env", "forceColor", "translateLevel", "level", "supportsColor", "haveStream", "streamIsTTY", "min", "osRelease", "sign", "version", "getSupportLevel", "stream", "require_node", "__commonJSMin", "exports", "module", "tty", "util", "init", "log", "formatArgs", "save", "load", "useColors", "supportsColor", "key", "obj", "prop", "_", "k", "val", "args", "name", "c", "colorCode", "prefix", "getDate", "namespaces", "debug", "keys", "i", "formatters", "v", "str", "require_src", "__commonJSMin", "exports", "module", "require_debug", "__commonJSMin", "exports", "module", "debug", "require_follow_redirects", "__commonJSMin", "exports", "module", "url", "URL", "http", "https", "Writable", "assert", "debug", "useNativeURL", "error", "preservedUrlFields", "events", "eventHandlers", "event", "arg1", "arg2", "arg3", "InvalidUrlError", "createErrorType", "RedirectionError", "TooManyRedirectsError", "MaxBodyLengthExceededError", "WriteAfterEndError", "destroy", "noop", "RedirectableRequest", "options", "responseCallback", "self", "response", "cause", "destroyRequest", "data", "encoding", "callback", "isString", "isBuffer", "isFunction", "currentRequest", "name", "value", "msecs", "destroyOnTimeout", "socket", "startTimer", "clearTimer", "method", "a", "b", "property", "searchPos", "protocol", "nativeProtocol", "scheme", "request", "i", "buffers", "writeNext", "buffer", "statusCode", "location", "requestHeaders", "beforeRedirect", "removeMatchingHeaders", "currentHostHeader", "currentUrlParts", "parseUrl", "currentHost", "currentUrl", "redirectUrl", "resolveUrl", "spreadUrlObject", "isSubdomain", "responseDetails", "requestDetails", "wrap", "protocols", "nativeProtocols", "wrappedProtocol", "input", "isURL", "validateUrl", "get", "wrappedRequest", "parsed", "relative", "base", "urlObject", "target", "spread", "key", "regex", "headers", "lastValue", "header", "code", "message", "baseClass", "CustomError", "properties", "subdomain", "domain", "dot", "require_package", "__commonJSMin", "exports", "module", "require_http", "__commonJSMin", "exports", "module", "utils", "settle", "buildFullPath", "buildURL", "http", "https", "httpFollow", "httpsFollow", "url", "zlib", "pkg", "createError", "enhanceError", "isHttps", "setProxy", "options", "proxy", "location", "base64", "redirection", "config", "resolvePromise", "rejectPromise", "resolve", "value", "reject", "data", "headers", "auth", "username", "password", "fullPath", "parsed", "protocol", "urlAuth", "urlUsername", "urlPassword", "isHttpsRequest", "agent", "proxyEnv", "proxyUrl", "parsedProxyUrl", "noProxyEnv", "shouldProxy", "noProxy", "s", "proxyElement", "proxyUrlAuth", "transport", "isHttpsProxy", "req", "res", "stream", "lastRequest", "response", "responseBuffer", "totalResponseBytes", "chunk", "err", "responseData", "timeout", "cancel", "require_defaults", "__commonJSMin", "exports", "module", "utils", "normalizeHeaderName", "enhanceError", "DEFAULT_CONTENT_TYPE", "setContentTypeIfUnset", "headers", "value", "getDefaultAdapter", "adapter", "stringifySafely", "rawValue", "parser", "encoder", "e", "defaults", "data", "transitional", "silentJSONParsing", "forcedJSONParsing", "strictJSONParsing", "status", "method", "require_transformData", "__commonJSMin", "exports", "module", "utils", "defaults", "data", "headers", "fns", "context", "fn", "require_isCancel", "__commonJSMin", "exports", "module", "value", "require_dispatchRequest", "__commonJSMin", "exports", "module", "utils", "transformData", "isCancel", "defaults", "throwIfCancellationRequested", "config", "method", "adapter", "response", "reason", "require_mergeConfig", "__commonJSMin", "exports", "module", "utils", "config1", "config2", "config", "valueFromConfig2Keys", "mergeDeepPropertiesKeys", "defaultToConfig2Keys", "directMergeKeys", "getMergedValue", "target", "source", "mergeDeepProperties", "prop", "axiosKeys", "otherKeys", "key", "require_validator", "__commonJSMin", "exports", "module", "pkg", "validators", "type", "i", "thing", "deprecatedWarnings", "currentVerArr", "isOlderVersion", "version", "thanVersion", "pkgVersionArr", "destVer", "validator", "message", "isDeprecated", "formatMessage", "opt", "desc", "value", "opts", "assertOptions", "options", "schema", "allowUnknown", "keys", "result", "require_Axios", "__commonJSMin", "exports", "module", "utils", "buildURL", "InterceptorManager", "dispatchRequest", "mergeConfig", "validator", "validators", "Axios", "instanceConfig", "config", "transitional", "requestInterceptorChain", "synchronousRequestInterceptors", "interceptor", "responseInterceptorChain", "promise", "chain", "newConfig", "onFulfilled", "onRejected", "error", "method", "url", "data", "require_Cancel", "__commonJSMin", "exports", "module", "Cancel", "message", "require_CancelToken", "__commonJSMin", "exports", "module", "Cancel", "CancelToken", "executor", "resolvePromise", "resolve", "token", "message", "cancel", "c", "require_spread", "__commonJSMin", "exports", "module", "callback", "arr", "require_isAxiosError", "__commonJSMin", "exports", "module", "payload", "require_axios", "__commonJSMin", "exports", "module", "utils", "bind", "Axios", "mergeConfig", "defaults", "createInstance", "defaultConfig", "context", "instance", "axios", "instanceConfig", "promises", "require_axios", "__commonJSMin", "exports", "module", "e", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "_f", "splitPunct", "_g", "timeout", "shortTextList", "shortText", "base64List", "_h", "result", "i", "base64", "getAudioUrl_1", "exports", "getAudioBase64_1", "http", "__importStar", "https", "toBuffer", "stream", "length", "chunks", "chunk", "exports", "json", "str", "_err", "err", "req", "url", "opts", "promise", "resolve", "reject", "net", "__importStar", "http", "https_1", "__exportStar", "exports", "INTERNAL", "Agent", "opts", "options", "stack", "l", "name", "fakeSocket", "socket", "sockets", "index", "req", "cb", "connectOpts", "err", "v", "debug_1", "__importDefault", "debug", "parseProxyResponse", "socket", "resolve", "reject", "buffersLength", "buffers", "read", "b", "ondata", "cleanup", "onend", "onerror", "err", "buffered", "endOfHeaders", "headerParts", "firstLine", "firstLineParts", "statusCode", "statusText", "headers", "header", "firstColon", "key", "value", "current", "exports", "net", "__importStar", "tls", "assert_1", "__importDefault", "debug_1", "agent_base_1", "url_1", "parse_proxy_response_1", "debug", "setServernameFromNonIpHost", "options", "HttpsProxyAgent", "proxy", "opts", "host", "port", "omit", "req", "socket", "headers", "payload", "auth", "name", "proxyResponsePromise", "connect", "buffered", "resume", "fakeSocket", "s", "exports", "obj", "keys", "ret", "key", "instant_translate_copy_exports", "__export", "InstantTranslateCopy", "__toCommonJS", "import_api", "import_api", "import_querystring", "import_undici", "languages", "getISOCode", "language", "key", "isSupported", "import_undici", "zr", "a", "b", "yr", "wr", "c", "window", "d", "e", "f", "g", "l", "h", "xr", "config", "updateTKK", "now", "code", "xt", "tokenGenerator", "text", "tk", "error", "translate", "text", "options", "error", "lang", "isSupported", "getISOCode", "token", "tokenGenerator", "baseUrl", "data", "url", "querystring", "requestOptions", "requestUrl", "body", "result", "obj", "str", "googleTTS", "import_https_proxy_agent", "TranslateError", "extractPronounceTextFromRaw", "raw", "simpleTranslate", "text", "options", "translated", "translate", "err", "error", "baseInstantTranslate", "onTranslated", "preferences", "targetLanguage", "sourceLanguage", "proxy", "selectedText", "error", "result", "simpleTranslate", "translation", "InstantTranslateCopy", "baseInstantTranslate", "translatedText"] -} diff --git a/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-paste.js b/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-paste.js @@ -1,73 +0,0 @@ -"use strict";var lu=Object.create;var Es=Object.defineProperty;var uu=Object.getOwnPropertyDescriptor;var fu=Object.getOwnPropertyNames;var du=Object.getPrototypeOf,yu=Object.prototype.hasOwnProperty;var c=(A,e)=>()=>(e||A((e={exports:{}}).exports,e),e.exports),wu=(A,e)=>{for(var t in e)Es(A,t,{get:e[t],enumerable:!0})},tE=(A,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of fu(e))!yu.call(A,s)&&s!==t&&Es(A,s,{get:()=>e[s],enumerable:!(r=uu(e,s))||r.enumerable});return A};var cr=(A,e,t)=>(t=A!=null?lu(du(A)):{},tE(e||!A||!A.__esModule?Es(t,"default",{value:A,enumerable:!0}):t,A)),Du=A=>tE(Es({},"__esModule",{value:!0}),A);var $=c((tb,rE)=>{rE.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size")}});var Z=c((rb,sE)=>{"use strict";var nA=class extends Error{constructor(e){super(e),this.name="UndiciError",this.code="UND_ERR"}},Ci=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="ConnectTimeoutError",this.message=e||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},Bi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="HeadersTimeoutError",this.message=e||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},Ii=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="HeadersOverflowError",this.message=e||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},ci=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="BodyTimeoutError",this.message=e||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},hi=class A extends nA{constructor(e,t,r,s){super(e),Error.captureStackTrace(this,A),this.name="ResponseStatusCodeError",this.message=e||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=s,this.status=t,this.statusCode=t,this.headers=r}},li=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="InvalidArgumentError",this.message=e||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},ui=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="InvalidReturnValueError",this.message=e||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},fi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="AbortError",this.message=e||"Request aborted",this.code="UND_ERR_ABORTED"}},di=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="InformationalError",this.message=e||"Request information",this.code="UND_ERR_INFO"}},yi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="RequestContentLengthMismatchError",this.message=e||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},wi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="ResponseContentLengthMismatchError",this.message=e||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},Di=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="ClientDestroyedError",this.message=e||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},pi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="ClientClosedError",this.message=e||"The client is closed",this.code="UND_ERR_CLOSED"}},Ri=class A extends nA{constructor(e,t){super(e),Error.captureStackTrace(this,A),this.name="SocketError",this.message=e||"Socket error",this.code="UND_ERR_SOCKET",this.socket=t}},as=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="NotSupportedError",this.message=e||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},ki=class extends nA{constructor(e){super(e),Error.captureStackTrace(this,as),this.name="MissingUpstreamError",this.message=e||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},Fi=class A extends Error{constructor(e,t,r){super(e),Error.captureStackTrace(this,A),this.name="HTTPParserError",this.code=t?`HPE_${t}`:void 0,this.data=r?r.toString():void 0}},Ni=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="ResponseExceededMaxSizeError",this.message=e||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}};sE.exports={HTTPParserError:Fi,UndiciError:nA,HeadersTimeoutError:Bi,HeadersOverflowError:Ii,BodyTimeoutError:ci,RequestContentLengthMismatchError:yi,ConnectTimeoutError:Ci,ResponseStatusCodeError:hi,InvalidArgumentError:li,InvalidReturnValueError:ui,RequestAbortedError:fi,ClientDestroyedError:Di,ClientClosedError:pi,InformationalError:di,SocketError:Ri,NotSupportedError:as,ResponseContentLengthMismatchError:wi,BalancedPoolMissingUpstreamError:ki,ResponseExceededMaxSizeError:Ni}});var G=c((sb,cE)=>{"use strict";var gE=require("assert"),{kDestroyed:QE,kBodyUsed:nE}=$(),{IncomingMessage:pu}=require("http"),Dt=require("stream"),Ru=require("net"),{InvalidArgumentError:cA}=Z(),{Blob:iE}=require("buffer"),Bs=require("util"),{stringify:ku}=require("querystring"),[mi,oE]=process.versions.node.split(".").map(A=>Number(A));function Fu(){}function bi(A){return A&&typeof A=="object"&&typeof A.pipe=="function"&&typeof A.on=="function"}function EE(A){return iE&&A instanceof iE||A&&typeof A=="object"&&(typeof A.stream=="function"||typeof A.arrayBuffer=="function")&&/^(Blob|File)$/.test(A[Symbol.toStringTag])}function Nu(A,e){if(A.includes("?")||A.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let t=ku(e);return t&&(A+="?"+t),A}function aE(A){if(typeof A=="string"){if(A=new URL(A),!/^https?:/.test(A.origin||A.protocol))throw new cA("Invalid URL protocol: the URL must start with `http:` or `https:`.");return A}if(!A||typeof A!="object")throw new cA("Invalid URL: The URL argument must be a non-null object.");if(A.port!=null&&A.port!==""&&!Number.isFinite(parseInt(A.port)))throw new cA("Invalid URL: port must be a valid integer or a string representation of an integer.");if(A.path!=null&&typeof A.path!="string")throw new cA("Invalid URL path: the path must be a string or null/undefined.");if(A.pathname!=null&&typeof A.pathname!="string")throw new cA("Invalid URL pathname: the pathname must be a string or null/undefined.");if(A.hostname!=null&&typeof A.hostname!="string")throw new cA("Invalid URL hostname: the hostname must be a string or null/undefined.");if(A.origin!=null&&typeof A.origin!="string")throw new cA("Invalid URL origin: the origin must be a string or null/undefined.");if(!/^https?:/.test(A.origin||A.protocol))throw new cA("Invalid URL protocol: the URL must start with `http:` or `https:`.");if(!(A instanceof URL)){let e=A.port!=null?A.port:A.protocol==="https:"?443:80,t=A.origin!=null?A.origin:`${A.protocol}//${A.hostname}:${e}`,r=A.path!=null?A.path:`${A.pathname||""}${A.search||""}`;t.endsWith("/")&&(t=t.substring(0,t.length-1)),r&&!r.startsWith("/")&&(r=`/${r}`),A=new URL(t+r)}return A}function mu(A){if(A=aE(A),A.pathname!=="/"||A.search||A.hash)throw new cA("invalid url");return A}function bu(A){if(A[0]==="["){let t=A.indexOf("]");return gE(t!==-1),A.substr(1,t-1)}let e=A.indexOf(":");return e===-1?A:A.substr(0,e)}function Su(A){if(!A)return null;gE.strictEqual(typeof A,"string");let e=bu(A);return Ru.isIP(e)?"":e}function Uu(A){return JSON.parse(JSON.stringify(A))}function Lu(A){return A!=null&&typeof A[Symbol.asyncIterator]=="function"}function Mu(A){return A!=null&&(typeof A[Symbol.iterator]=="function"||typeof A[Symbol.asyncIterator]=="function")}function Yu(A){if(A==null)return 0;if(bi(A)){let e=A._readableState;return e&&e.ended===!0&&Number.isFinite(e.length)?e.length:null}else{if(EE(A))return A.size!=null?A.size:null;if(BE(A))return A.byteLength}return null}function Si(A){return!A||!!(A.destroyed||A[QE])}function CE(A){let e=A&&A._readableState;return Si(A)&&e&&!e.endEmitted}function Ju(A,e){!bi(A)||Si(A)||(typeof A.destroy=="function"?(Object.getPrototypeOf(A).constructor===pu&&(A.socket=null),A.destroy(e)):e&&process.nextTick((t,r)=>{t.emit("error",r)},A,e),A.destroyed!==!0&&(A[QE]=!0))}var Gu=/timeout=(\d+)/;function Tu(A){let e=A.toString().match(Gu);return e?parseInt(e[1],10)*1e3:null}function vu(A,e={}){for(let t=0;t<A.length;t+=2){let r=A[t].toString().toLowerCase(),s=e[r];s?(Array.isArray(s)||(s=[s],e[r]=s),s.push(A[t+1].toString("utf8"))):Array.isArray(A[t+1])?e[r]=A[t+1]:e[r]=A[t+1].toString("utf8")}return"content-length"in e&&"content-disposition"in e&&(e["content-disposition"]=Buffer.from(e["content-disposition"]).toString("latin1")),e}function Hu(A){let e=[],t=!1,r=-1;for(let s=0;s<A.length;s+=2){let n=A[s+0].toString(),i=A[s+1].toString("utf8");n.length===14&&(n==="content-length"||n.toLowerCase()==="content-length")?(e.push(n,i),t=!0):n.length===19&&(n==="content-disposition"||n.toLowerCase()==="content-disposition")?r=e.push(n,i)-1:e.push(n,i)}return t&&r!==-1&&(e[r]=Buffer.from(e[r]).toString("latin1")),e}function BE(A){return A instanceof Uint8Array||Buffer.isBuffer(A)}function Vu(A,e,t){if(!A||typeof A!="object")throw new cA("handler must be an object");if(typeof A.onConnect!="function")throw new cA("invalid onConnect method");if(typeof A.onError!="function")throw new cA("invalid onError method");if(typeof A.onBodySent!="function"&&A.onBodySent!==void 0)throw new cA("invalid onBodySent method");if(t||e==="CONNECT"){if(typeof A.onUpgrade!="function")throw new cA("invalid onUpgrade method")}else{if(typeof A.onHeaders!="function")throw new cA("invalid onHeaders method");if(typeof A.onData!="function")throw new cA("invalid onData method");if(typeof A.onComplete!="function")throw new cA("invalid onComplete method")}}function xu(A){return!!(A&&(Dt.isDisturbed?Dt.isDisturbed(A)||A[nE]:A[nE]||A.readableDidRead||A._readableState&&A._readableState.dataEmitted||CE(A)))}function qu(A){return!!(A&&(Dt.isErrored?Dt.isErrored(A):/state: 'errored'/.test(Bs.inspect(A))))}function Wu(A){return!!(A&&(Dt.isReadable?Dt.isReadable(A):/state: 'readable'/.test(Bs.inspect(A))))}function Ou(A){return{localAddress:A.localAddress,localPort:A.localPort,remoteAddress:A.remoteAddress,remotePort:A.remotePort,remoteFamily:A.remoteFamily,timeout:A.timeout,bytesWritten:A.bytesWritten,bytesRead:A.bytesRead}}var hr;function Pu(A){if(hr||(hr=require("stream/web").ReadableStream),hr.from)return hr.from(A);let e;return new hr({async start(){e=A[Symbol.asyncIterator]()},async pull(t){let{done:r,value:s}=await e.next();if(r)queueMicrotask(()=>{t.close()});else{let n=Buffer.isBuffer(s)?s:Buffer.from(s);t.enqueue(new Uint8Array(n))}return t.desiredSize>0},async cancel(t){await e.return()}},0)}function _u(A){return 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"&&A[Symbol.toStringTag]==="FormData"}function Zu(A){if(A){if(typeof A.throwIfAborted=="function")A.throwIfAborted();else if(A.aborted){let e=new Error("The operation was aborted");throw e.name="AbortError",e}}}var Cs;function Xu(A,e){return typeof Symbol.dispose=="symbol"&&(Cs||(Cs=require("events")),typeof Cs.addAbortListener=="function"&&"aborted"in A)?Cs.addAbortListener(A,e):"addEventListener"in A?(A.addEventListener("abort",e,{once:!0}),()=>A.removeEventListener("abort",e)):(A.addListener("abort",e),()=>A.removeListener("abort",e))}var Ku=!!String.prototype.toWellFormed;function ju(A){return Ku?`${A}`.toWellFormed():Bs.toUSVString?Bs.toUSVString(A):`${A}`}var IE=Object.create(null);IE.enumerable=!0;cE.exports={kEnumerableProperty:IE,nop:Fu,isDisturbed:xu,isErrored:qu,isReadable:Wu,toUSVString:ju,isReadableAborted:CE,isBlobLike:EE,parseOrigin:mu,parseURL:aE,getServerName:Su,isStream:bi,isIterable:Mu,isAsyncIterable:Lu,isDestroyed:Si,parseRawHeaders:Hu,parseHeaders:vu,parseKeepAliveTimeout:Tu,destroy:Ju,bodyLength:Yu,deepClone:Uu,ReadableStreamFrom:Pu,isBuffer:BE,validateHandler:Vu,getSocketInfo:Ou,isFormDataLike:_u,buildURL:Nu,throwIfAborted:Zu,addAbortListener:Xu,nodeMajor:mi,nodeMinor:oE,nodeHasAutoSelectFamily:mi>18||mi===18&&oE>=13}});var uE=c((nb,lE)=>{"use strict";var Ui=Date.now(),Te,ve=[];function zu(){Ui=Date.now();let A=ve.length,e=0;for(;e<A;){let t=ve[e];t.state===0?t.state=Ui+t.delay:t.state>0&&Ui>=t.state&&(t.state=-1,t.callback(t.opaque)),t.state===-1?(t.state=-2,e!==A-1?ve[e]=ve.pop():ve.pop(),A-=1):e+=1}ve.length>0&&hE()}function hE(){Te&&Te.refresh?Te.refresh():(clearTimeout(Te),Te=setTimeout(zu,1e3),Te.unref&&Te.unref())}var Is=class{constructor(e,t,r){this.callback=e,this.delay=t,this.opaque=r,this.state=-2,this.refresh()}refresh(){this.state===-2&&(ve.push(this),(!Te||ve.length===1)&&hE()),this.state=0}clear(){this.state=-1}};lE.exports={setTimeout(A,e,t){return e<1e3?setTimeout(A,e,t):new Is(A,e,t)},clearTimeout(A){A instanceof Is?A.clear():clearTimeout(A)}}});var cs=c((DE,pE)=>{"use strict";function $u(A){if(A.length===0)return;let e=Object.create(null),t=0;for(;t<A.length;++t){let i=A.charCodeAt(t);if(At[i]!==1){if(i!==47||t===0)return;break}}if(t===A.length)return;let r=A.slice(0,t).toLowerCase(),s=++t;for(;t<A.length;++t){let i=A.charCodeAt(t);if(At[i]!==1){if(t===s||Af(A,t,e)===void 0)return;break}}if(t===s)return;let n=A.slice(s,t).toLowerCase();return{type:r,subtype:n,params:e}}function Af(A,e,t){for(;e<A.length;){for(;e<A.length;++e){let o=A.charCodeAt(e);if(o!==32&&o!==9)break}if(e===A.length)break;if(A.charCodeAt(e++)!==59)return;for(;e<A.length;++e){let o=A.charCodeAt(e);if(o!==32&&o!==9)break}if(e===A.length)return;let r,s=e;for(;e<A.length;++e){let o=A.charCodeAt(e);if(At[o]!==1){if(o!==61)return;break}}if(e===A.length||(r=A.slice(s,e),++e,e===A.length))return;let n="",i;if(A.charCodeAt(e)===34){i=++e;let o=!1;for(;e<A.length;++e){let g=A.charCodeAt(e);if(g===92){o?(i=e,o=!1):(n+=A.slice(i,e),o=!0);continue}if(g===34){if(o){i=e,o=!1;continue}n+=A.slice(i,e);break}if(o&&(i=e-1,o=!1),wE[g]!==1)return}if(e===A.length)return;++e}else{for(i=e;e<A.length;++e){let o=A.charCodeAt(e);if(At[o]!==1){if(e===i)return;break}}n=A.slice(i,e)}r=r.toLowerCase(),t[r]===void 0&&(t[r]=n)}return t}function ef(A,e){if(A.length===0)return;let t=Object.create(null),r=0;for(;r<A.length;++r){let n=A.charCodeAt(r);if(At[n]!==1){if(tf(A,r,t,e)===void 0)return;break}}return{type:A.slice(0,r).toLowerCase(),params:t}}function tf(A,e,t,r){for(;e<A.length;){for(;e<A.length;++e){let a=A.charCodeAt(e);if(a!==32&&a!==9)break}if(e===A.length)break;if(A.charCodeAt(e++)!==59)return;for(;e<A.length;++e){let a=A.charCodeAt(e);if(a!==32&&a!==9)break}if(e===A.length)return;let s,n=e;for(;e<A.length;++e){let a=A.charCodeAt(e);if(At[a]!==1){if(a===61)break;return}}if(e===A.length)return;let i="",o,g;if(s=A.slice(n,e),s.charCodeAt(s.length-1)===42){let a=++e;for(;e<A.length;++e){let E=A.charCodeAt(e);if(sf[E]!==1){if(E!==39)return;break}}if(e===A.length)return;for(g=A.slice(a,e),++e;e<A.length&&A.charCodeAt(e)!==39;++e);if(e===A.length||(++e,e===A.length))return;o=e;let Q=0;for(;e<A.length;++e){let E=A.charCodeAt(e);if(nf[E]!==1){if(E===37){let C,B;if(e+2<A.length&&(C=fE[A.charCodeAt(e+1)])!==-1&&(B=fE[A.charCodeAt(e+2)])!==-1){let I=(C<<4)+B;i+=A.slice(o,e),i+=String.fromCharCode(I),e+=2,o=e+1,I>=128?Q=2:Q===0&&(Q=1);continue}return}break}}if(i+=A.slice(o,e),i=yE(i,g,Q),i===void 0)return}else{if(++e,e===A.length)return;if(A.charCodeAt(e)===34){o=++e;let a=!1;for(;e<A.length;++e){let Q=A.charCodeAt(e);if(Q===92){a?(o=e,a=!1):(i+=A.slice(o,e),a=!0);continue}if(Q===34){if(a){o=e,a=!1;continue}i+=A.slice(o,e);break}if(a&&(o=e-1,a=!1),wE[Q]!==1)return}if(e===A.length)return;++e}else{for(o=e;e<A.length;++e){let a=A.charCodeAt(e);if(At[a]!==1){if(e===o)return;break}}i=A.slice(o,e)}if(i=r(i,2),i===void 0)return}s=s.toLowerCase(),t[s]===void 0&&(t[s]=i)}return t}function dE(A){let e;for(;;)switch(A){case"utf-8":case"utf8":return lr.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return lr.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return lr.utf16le;case"base64":return lr.base64;default:if(e===void 0){e=!0,A=A.toLowerCase();continue}return lr.other.bind(A)}}var lr={utf8:(A,e)=>{if(A.length===0)return"";if(typeof A=="string"){if(e<2)return A;A=Buffer.from(A,"latin1")}return A.utf8Slice(0,A.length)},latin1:(A,e)=>A.length===0?"":typeof A=="string"?A:A.latin1Slice(0,A.length),utf16le:(A,e)=>A.length===0?"":(typeof A=="string"&&(A=Buffer.from(A,"latin1")),A.ucs2Slice(0,A.length)),base64:(A,e)=>A.length===0?"":(typeof A=="string"&&(A=Buffer.from(A,"latin1")),A.base64Slice(0,A.length)),other:(A,e)=>{if(A.length===0)return"";typeof A=="string"&&(A=Buffer.from(A,"latin1"));try{return new TextDecoder(DE).decode(A)}catch{}}};function yE(A,e,t){let r=dE(e);if(r)return r(A,t)}function rf(A){if(typeof A!="string")return"";for(let e=A.length-1;e>=0;--e)switch(A.charCodeAt(e)){case 47:case 92:return A=A.slice(e+1),A===".."||A==="."?"":A}return A===".."||A==="."?"":A}var At=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],wE=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],sf=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],nf=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],fE=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];pE.exports={basename:rf,convertToUTF8:yE,getDecoder:dE,parseContentType:$u,parseDisposition:ef}});var NE=c((ib,FE)=>{"use strict";function RE(A,e,t,r,s){for(let n=0;n<s;++n)if(A[e+n]!==t[r+n])return!1;return!0}var Li=class{constructor(e,t){if(typeof t!="function")throw new Error("Missing match callback");if(typeof e=="string")e=Buffer.from(e);else if(!Buffer.isBuffer(e))throw new Error(`Expected Buffer for needle, got ${typeof e}`);let r=e.length;if(this.maxMatches=1/0,this.matches=0,this._cb=t,this._lookbehindSize=0,this._needle=e,this._bufPos=0,this._lookbehind=Buffer.allocUnsafe(r),this._occ=[r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r],r>1)for(let s=0;s<r-1;++s)this._occ[e[s]]=r-1-s}reset(){this.matches=0,this._lookbehindSize=0,this._bufPos=0}push(e,t){let r;Buffer.isBuffer(e)||(e=Buffer.from(e,"latin1"));let s=e.length;for(this._bufPos=t||0;r!==s&&this.matches<this.maxMatches;)r=of(this,e);return r}destroy(){let e=this._lookbehindSize;e&&this._cb(!1,this._lookbehind,0,e,!1),this.reset()}};function of(A,e){let t=e.length,r=A._needle,s=r.length,n=-A._lookbehindSize,i=s-1,o=r[i],g=t-s,a=A._occ,Q=A._lookbehind;if(n<0){for(;n<0&&n<=g;){let C=n+i,B=C<0?Q[A._lookbehindSize+C]:e[C];if(B===o&&kE(A,e,n,i))return A._lookbehindSize=0,++A.matches,n>-A._lookbehindSize?A._cb(!0,Q,0,A._lookbehindSize+n,!1):A._cb(!0,void 0,0,0,!0),A._bufPos=n+s;n+=a[B]}for(;n<0&&!kE(A,e,n,t-n);)++n;if(n<0){let C=A._lookbehindSize+n;return C>0&&A._cb(!1,Q,0,C,!1),A._lookbehindSize-=C,Q.copy(Q,0,C,A._lookbehindSize),Q.set(e,A._lookbehindSize),A._lookbehindSize+=t,A._bufPos=t,t}A._cb(!1,Q,0,A._lookbehindSize,!1),A._lookbehindSize=0}n+=A._bufPos;let E=r[0];for(;n<=g;){let C=e[n+i];if(C===o&&e[n]===E&&RE(r,0,e,n,i))return++A.matches,n>0?A._cb(!0,e,A._bufPos,n,!0):A._cb(!0,void 0,0,0,!0),A._bufPos=n+s;n+=a[C]}for(;n<t;){if(e[n]!==E||!RE(e,n,r,0,t-n)){++n;continue}e.copy(Q,0,n,t),A._lookbehindSize=t-n;break}return n>0&&A._cb(!1,e,A._bufPos,n<t?n:t,!0),A._bufPos=t,t}function kE(A,e,t,r){let s=A._lookbehind,n=A._lookbehindSize,i=A._needle;for(let o=0;o<r;++o,++t)if((t<0?s[n+t]:e[t])!==i[o])return!1;return!0}FE.exports=Li});var GE=c((ob,JE)=>{"use strict";var{Readable:gf,Writable:Qf}=require("stream"),Ef=NE(),{basename:af,convertToUTF8:mE,getDecoder:Cf,parseContentType:Bf,parseDisposition:If}=cs(),cf=Buffer.from(`\r -`),hf=Buffer.from("\r"),lf=Buffer.from("-");function bE(){}var uf=2e3,pt=16*1024,hs=0,SE=1,UE=2,Mi=class{constructor(e){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=hs,this.name="",this.value="",this.crlf=0,this.cb=e}reset(){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=hs,this.name="",this.value="",this.crlf=0}push(e,t,r){let s=t;for(;t<r;)switch(this.state){case hs:{let n=!1;for(;t<r;++t){if(this.byteCount===pt)return-1;++this.byteCount;let i=e[t];if(yf[i]!==1){if(i!==58||(this.name+=e.latin1Slice(s,t),this.name.length===0))return-1;++t,n=!0,this.state=SE;break}}if(!n){this.name+=e.latin1Slice(s,t);break}}case SE:{let n=!1;for(;t<r;++t){if(this.byteCount===pt)return-1;++this.byteCount;let i=e[t];if(i!==32&&i!==9){s=t,n=!0,this.state=UE;break}}if(!n)break}case UE:switch(this.crlf){case 0:for(;t<r;++t){if(this.byteCount===pt)return-1;++this.byteCount;let n=e[t];if(wf[n]!==1){if(n!==13)return-1;++this.crlf;break}}this.value+=e.latin1Slice(s,t++);break;case 1:if(this.byteCount===pt||(++this.byteCount,e[t++]!==10))return-1;++this.crlf;break;case 2:{if(this.byteCount===pt)return-1;++this.byteCount;let n=e[t];n===32||n===9?(s=t,this.crlf=0):(++this.pairCount<uf&&(this.name=this.name.toLowerCase(),this.header[this.name]===void 0?this.header[this.name]=[this.value]:this.header[this.name].push(this.value)),n===13?(++this.crlf,++t):(s=t,this.crlf=0,this.state=hs,this.name="",this.value=""));break}case 3:{if(this.byteCount===pt||(++this.byteCount,e[t++]!==10))return-1;let n=this.header;return this.reset(),this.cb(n),t}}break}return t}},Yi=class extends gf{constructor(e,t){super(e),this.truncated=!1,this._readcb=null,this.once("end",()=>{if(this._read(),--t._fileEndsLeft===0&&t._finalcb){let r=t._finalcb;t._finalcb=null,process.nextTick(r)}})}_read(e){let t=this._readcb;t&&(this._readcb=null,t())}},LE={push:(A,e)=>{},destroy:()=>{}};function ff(A,e){let t=A._writecb;A._writecb=null,e?A.destroy(e):t&&t()}function df(A,e){return A}var Ji=class extends Qf{constructor(e){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof e.highWaterMark=="number"?e.highWaterMark:void 0};if(super(t),!e.conType.params||typeof e.conType.params.boundary!="string")throw new Error("Multipart: Boundary not found");let r=e.conType.params.boundary,s=typeof e.defParamCharset=="string"&&e.defParamCharset?Cf(e.defParamCharset):df,n=e.defCharset||"utf8",i=e.preservePath,o={autoDestroy:!0,emitClose:!0,highWaterMark:typeof e.fileHwm=="number"?e.fileHwm:void 0},g=e.limits,a=g&&typeof g.fieldSize=="number"?g.fieldSize:1*1024*1024,Q=g&&typeof g.fileSize=="number"?g.fileSize:1/0,E=g&&typeof g.files=="number"?g.files:1/0,C=g&&typeof g.fields=="number"?g.fields:1/0,B=g&&typeof g.parts=="number"?g.parts:1/0,I=-1,h=0,l=0,u=!1;this._fileEndsLeft=0,this._fileStream=void 0,this._complete=!1;let F=0,w,k=0,T,O,V,K,uA=!1,IA=!1,wt=!1;this._hparser=null;let wA=new Mi(_=>{this._hparser=null,u=!1,V="text/plain",T=n,O="7bit",K=void 0,uA=!1;let tA;if(!_["content-disposition"]){u=!0;return}let U=If(_["content-disposition"][0],s);if(!U||U.type!=="form-data"){u=!0;return}if(U.params&&(U.params.name&&(K=U.params.name),U.params["filename*"]?tA=U.params["filename*"]:U.params.filename&&(tA=U.params.filename),tA!==void 0&&!i&&(tA=af(tA))),_["content-type"]){let S=Bf(_["content-type"][0]);S&&(V=`${S.type}/${S.subtype}`,S.params&&typeof S.params.charset=="string"&&(T=S.params.charset.toLowerCase()))}if(_["content-transfer-encoding"]&&(O=_["content-transfer-encoding"][0].toLowerCase()),V==="application/octet-stream"||tA!==void 0){if(l===E){IA||(IA=!0,this.emit("filesLimit")),u=!0;return}if(++l,this.listenerCount("file")===0){u=!0;return}F=0,this._fileStream=new Yi(o,this),++this._fileEndsLeft,this.emit("file",K,this._fileStream,{filename:tA,encoding:O,mimeType:V})}else{if(h===C){wt||(wt=!0,this.emit("fieldsLimit")),u=!0;return}if(++h,this.listenerCount("field")===0){u=!0;return}w=[],k=0}}),gA=0,Be=(_,tA,U,S,Ie)=>{A:for(;tA;){if(this._hparser!==null){let x=this._hparser.push(tA,U,S);if(x===-1){this._hparser=null,wA.reset(),this.emit("error",new Error("Malformed part header"));break}U=x}if(U===S)break;if(gA!==0){if(gA===1){switch(tA[U]){case 45:gA=2,++U;break;case 13:gA=3,++U;break;default:gA=0}if(U===S)return}if(gA===2){if(gA=0,tA[U]===45){this._complete=!0,this._bparser=LE;return}let x=this._writecb;this._writecb=bE,Be(!1,lf,0,1,!1),this._writecb=x}else if(gA===3)if(gA=0,tA[U]===10){if(++U,I>=B||(this._hparser=wA,U===S))break;continue A}else{let x=this._writecb;this._writecb=bE,Be(!1,hf,0,1,!1),this._writecb=x}}if(!u){if(this._fileStream){let x,TA=Math.min(S-U,Q-F);Ie?x=tA.slice(U,U+TA):(x=Buffer.allocUnsafe(TA),tA.copy(x,0,U,U+TA)),F+=x.length,F===Q?(x.length>0&&this._fileStream.push(x),this._fileStream.emit("limit"),this._fileStream.truncated=!0,u=!0):this._fileStream.push(x)||(this._writecb&&(this._fileStream._readcb=this._writecb),this._writecb=null)}else if(w!==void 0){let x,TA=Math.min(S-U,a-k);Ie?x=tA.slice(U,U+TA):(x=Buffer.allocUnsafe(TA),tA.copy(x,0,U,U+TA)),k+=TA,w.push(x),k===a&&(u=!0,uA=!0)}}break}if(_){if(gA=1,this._fileStream)this._fileStream.push(null),this._fileStream=null;else if(w!==void 0){let x;switch(w.length){case 0:x="";break;case 1:x=mE(w[0],T,0);break;default:x=mE(Buffer.concat(w,k),T,0)}w=void 0,k=0,this.emit("field",K,x,{nameTruncated:!1,valueTruncated:uA,encoding:O,mimeType:V})}++I===B&&this.emit("partsLimit")}};this._bparser=new Ef(`\r ---${r}`,Be),this._writecb=null,this._finalcb=null,this.write(cf)}static detect(e){return e.type==="multipart"&&e.subtype==="form-data"}_write(e,t,r){this._writecb=r,this._bparser.push(e,0),this._writecb&&ff(this)}_destroy(e,t){this._hparser=null,this._bparser=LE,e||(e=YE(this));let r=this._fileStream;r&&(this._fileStream=null,r.destroy(e)),t(e)}_final(e){if(this._bparser.destroy(),!this._complete)return e(new Error("Unexpected end of form"));this._fileEndsLeft?this._finalcb=ME.bind(null,this,e):ME(this,e)}};function ME(A,e,t){if(t)return e(t);t=YE(A),e(t)}function YE(A){if(A._hparser)return new Error("Malformed part header");let e=A._fileStream;if(e&&(A._fileStream=null,e.destroy(new Error("Unexpected end of file"))),!A._complete)return new Error("Unexpected end of form")}var yf=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],wf=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];JE.exports=Ji});var vE=c((gb,TE)=>{"use strict";var{Writable:Df}=require("stream"),{getDecoder:pf}=cs(),Vi=class extends Df{constructor(e){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof e.highWaterMark=="number"?e.highWaterMark:void 0};super(t);let r=e.defCharset||"utf8";e.conType.params&&typeof e.conType.params.charset=="string"&&(r=e.conType.params.charset),this.charset=r;let s=e.limits;this.fieldSizeLimit=s&&typeof s.fieldSize=="number"?s.fieldSize:1*1024*1024,this.fieldsLimit=s&&typeof s.fields=="number"?s.fields:1/0,this.fieldNameSizeLimit=s&&typeof s.fieldNameSize=="number"?s.fieldNameSize:100,this._inKey=!0,this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,this._fields=0,this._key="",this._val="",this._byte=-2,this._lastPos=0,this._encode=0,this._decoder=pf(r)}static detect(e){return e.type==="application"&&e.subtype==="x-www-form-urlencoded"}_write(e,t,r){if(this._fields>=this.fieldsLimit)return r();let s=0,n=e.length;if(this._lastPos=0,this._byte!==-2){if(s=Gi(this,e,s,n),s===-1)return r(new Error("Malformed urlencoded form"));if(s>=n)return r();this._inKey?++this._bytesKey:++this._bytesVal}A:for(;s<n;)if(this._inKey){for(s=Ti(this,e,s,n);s<n;){switch(e[s]){case 61:this._lastPos<s&&(this._key+=e.latin1Slice(this._lastPos,s)),this._lastPos=++s,this._key=this._decoder(this._key,this._encode),this._encode=0,this._inKey=!1;continue A;case 38:if(this._lastPos<s&&(this._key+=e.latin1Slice(this._lastPos,s)),this._lastPos=++s,this._key=this._decoder(this._key,this._encode),this._encode=0,this._bytesKey>0&&this.emit("field",this._key,"",{nameTruncated:this._keyTrunc,valueTruncated:!1,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),r();continue;case 43:this._lastPos<s&&(this._key+=e.latin1Slice(this._lastPos,s)),this._key+=" ",this._lastPos=s+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<s&&(this._key+=e.latin1Slice(this._lastPos,s)),this._lastPos=s+1,this._byte=-1,s=Gi(this,e,s+1,n),s===-1)return r(new Error("Malformed urlencoded form"));if(s>=n)return r();++this._bytesKey,s=Ti(this,e,s,n);continue}++s,++this._bytesKey,s=Ti(this,e,s,n)}this._lastPos<s&&(this._key+=e.latin1Slice(this._lastPos,s))}else{for(s=vi(this,e,s,n);s<n;){switch(e[s]){case 38:if(this._lastPos<s&&(this._val+=e.latin1Slice(this._lastPos,s)),this._lastPos=++s,this._inKey=!0,this._val=this._decoder(this._val,this._encode),this._encode=0,(this._bytesKey>0||this._bytesVal>0)&&this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),r();continue A;case 43:this._lastPos<s&&(this._val+=e.latin1Slice(this._lastPos,s)),this._val+=" ",this._lastPos=s+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<s&&(this._val+=e.latin1Slice(this._lastPos,s)),this._lastPos=s+1,this._byte=-1,s=Gi(this,e,s+1,n),s===-1)return r(new Error("Malformed urlencoded form"));if(s>=n)return r();++this._bytesVal,s=vi(this,e,s,n);continue}++s,++this._bytesVal,s=vi(this,e,s,n)}this._lastPos<s&&(this._val+=e.latin1Slice(this._lastPos,s))}r()}_final(e){if(this._byte!==-2)return e(new Error("Malformed urlencoded form"));(!this._inKey||this._bytesKey>0||this._bytesVal>0)&&(this._inKey?this._key=this._decoder(this._key,this._encode):this._val=this._decoder(this._val,this._encode),this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"})),e()}};function Gi(A,e,t,r){if(t>=r)return r;if(A._byte===-1){let s=Hi[e[t++]];if(s===-1)return-1;if(s>=8&&(A._encode=2),t<r){let n=Hi[e[t++]];if(n===-1)return-1;A._inKey?A._key+=String.fromCharCode((s<<4)+n):A._val+=String.fromCharCode((s<<4)+n),A._byte=-2,A._lastPos=t}else A._byte=s}else{let s=Hi[e[t++]];if(s===-1)return-1;A._inKey?A._key+=String.fromCharCode((A._byte<<4)+s):A._val+=String.fromCharCode((A._byte<<4)+s),A._byte=-2,A._lastPos=t}return t}function Ti(A,e,t,r){if(A._bytesKey>A.fieldNameSizeLimit){for(A._keyTrunc||A._lastPos<t&&(A._key+=e.latin1Slice(A._lastPos,t-1)),A._keyTrunc=!0;t<r;++t){let s=e[t];if(s===61||s===38)break;++A._bytesKey}A._lastPos=t}return t}function vi(A,e,t,r){if(A._bytesVal>A.fieldSizeLimit){for(A._valTrunc||A._lastPos<t&&(A._val+=e.latin1Slice(A._lastPos,t-1)),A._valTrunc=!0;t<r&&e[t]!==38;++t)++A._bytesVal;A._lastPos=t}return t}var Hi=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];TE.exports=Vi});var VE=c((Qb,HE)=>{"use strict";var{parseContentType:Rf}=cs();function kf(A){let e=A.headers,t=Rf(e["content-type"]);if(!t)throw new Error("Malformed content type");for(let r of Ff){if(!r.detect(t))continue;let n={limits:A.limits,headers:e,conType:t,highWaterMark:void 0,fileHwm:void 0,defCharset:void 0,defParamCharset:void 0,preservePath:!1};return A.highWaterMark&&(n.highWaterMark=A.highWaterMark),A.fileHwm&&(n.fileHwm=A.fileHwm),n.defCharset=A.defCharset,n.defParamCharset=A.defParamCharset,n.preservePath=A.preservePath,new r(n)}throw new Error(`Unsupported content type: ${e["content-type"]}`)}var Ff=[GE(),vE()].filter(function(A){return typeof A.detect=="function"});HE.exports=A=>{if((typeof A!="object"||A===null)&&(A={}),typeof A.headers!="object"||A.headers===null||typeof A.headers["content-type"]!="string")throw new Error("Missing Content-Type");return kf(A)}});var He=c((Eb,xE)=>{"use strict";var{MessageChannel:Nf,receiveMessageOnPort:mf}=require("worker_threads"),bf=["GET","HEAD","POST"],Sf=[101,204,205,304],Uf=[301,302,303,307,308],Lf=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"],Mf=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],Yf=["follow","manual","error"],Jf=["GET","HEAD","OPTIONS","TRACE"],Gf=["navigate","same-origin","no-cors","cors"],Tf=["omit","same-origin","include"],vf=["default","no-store","reload","no-cache","force-cache","only-if-cached"],Hf=["content-encoding","content-language","content-location","content-type","content-length"],Vf=["half"],xf=["CONNECT","TRACE","TRACK"],qf=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],Wf=globalThis.DOMException??(()=>{try{atob("~")}catch(A){return Object.getPrototypeOf(A).constructor}})(),Rt,Of=globalThis.structuredClone??function(e,t=void 0){if(arguments.length===0)throw new TypeError("missing argument");return Rt||(Rt=new Nf),Rt.port1.unref(),Rt.port2.unref(),Rt.port1.postMessage(e,t?.transfer),mf(Rt.port2).message};xE.exports={DOMException:Wf,structuredClone:Of,subresource:qf,forbiddenMethods:xf,requestBodyHeader:Hf,referrerPolicy:Mf,requestRedirect:Yf,requestMode:Gf,requestCredentials:Tf,requestCache:vf,redirectStatus:Uf,corsSafeListedMethods:bf,nullBodyStatus:Sf,safeMethods:Jf,badPorts:Lf,requestDuplex:Vf}});var ur=c((ab,qE)=>{"use strict";var xi=Symbol.for("undici.globalOrigin.1");function Pf(){return globalThis[xi]}function Zf(A){if(A!==void 0&&typeof A!="string"&&!(A instanceof URL))throw new Error("Invalid base url");if(A===void 0){Object.defineProperty(globalThis,xi,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let e=new URL(A);if(e.protocol!=="http:"&&e.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${e.protocol}`);Object.defineProperty(globalThis,xi,{value:e,writable:!0,enumerable:!1,configurable:!1})}qE.exports={getGlobalOrigin:Pf,setGlobalOrigin:Zf}});var jA=c((Cb,XE)=>{"use strict";var{redirectStatus:Xf,badPorts:Kf,referrerPolicy:jf}=He(),{getGlobalOrigin:zf}=ur(),{performance:$f}=require("perf_hooks"),{isBlobLike:Ad,toUSVString:ed,ReadableStreamFrom:td}=G(),kt=require("assert"),{isUint8Array:rd}=require("util/types"),ls;try{ls=require("crypto")}catch{}function WE(A){let e=A.urlList,t=e.length;return t===0?null:e[t-1].toString()}function sd(A,e){if(!Xf.includes(A.status))return null;let t=A.headersList.get("location");return t!==null&&PE(t)&&(t=new URL(t,WE(A))),t&&!t.hash&&(t.hash=e),t}function dr(A){return A.urlList[A.urlList.length-1]}function nd(A){let e=dr(A);return ZE(e)&&Kf.includes(e.port)?"blocked":"allowed"}function id(A){return A instanceof Error||A?.constructor?.name==="Error"||A?.constructor?.name==="DOMException"}function od(A){for(let e=0;e<A.length;++e){let t=A.charCodeAt(e);if(!(t===9||t>=32&&t<=126||t>=128&&t<=255))return!1}return!0}function gd(A){return!(A>=127||A<=32||A==="("||A===")"||A==="<"||A===">"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}")}function OE(A){if(!A||typeof A!="string")return!1;for(let e=0;e<A.length;++e){let t=A.charCodeAt(e);if(t>127||!gd(t))return!1}return!0}function Qd(A){return A.length===0?!1:OE(A)}function PE(A){return!(A.startsWith(" ")||A.startsWith(" ")||A.endsWith(" ")||A.endsWith(" ")||A.includes("\0")||A.includes("\r")||A.includes(` -`))}function Ed(A,e){let{headersList:t}=e,r=(t.get("referrer-policy")??"").split(","),s="";if(r.length>0)for(let n=r.length;n!==0;n--){let i=r[n-1].trim();if(jf.includes(i)){s=i;break}}s!==""&&(A.referrerPolicy=s)}function ad(){return"allowed"}function Cd(){return"success"}function Bd(){return"success"}function Id(A){let e=null;e=A.mode,A.headersList.set("sec-fetch-mode",e)}function cd(A){let e=A.origin;if(A.responseTainting==="cors"||A.mode==="websocket")e&&A.headersList.append("origin",e);else if(A.method!=="GET"&&A.method!=="HEAD"){switch(A.referrerPolicy){case"no-referrer":e=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":A.origin&&Oi(A.origin)&&!Oi(dr(A))&&(e=null);break;case"same-origin":us(A,dr(A))||(e=null);break;default:}e&&A.headersList.append("origin",e)}}function hd(A){return $f.now()}function ld(A){return{startTime:A.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:A.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function ud(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function fd(A){return{referrerPolicy:A.referrerPolicy}}function dd(A){let e=A.referrerPolicy;kt(e);let t=null;if(A.referrer==="client"){let o=zf();if(!o||o.origin==="null")return"no-referrer";t=new URL(o)}else A.referrer instanceof URL&&(t=A.referrer);let r=qi(t),s=qi(t,!0);r.toString().length>4096&&(r=s);let n=us(A,r),i=fr(r)&&!fr(A.url);switch(e){case"origin":return s??qi(t,!0);case"unsafe-url":return r;case"same-origin":return n?s:"no-referrer";case"origin-when-cross-origin":return n?r:s;case"strict-origin-when-cross-origin":{let o=dr(A);return us(r,o)?r:fr(r)&&!fr(o)?"no-referrer":s}case"strict-origin":case"no-referrer-when-downgrade":default:return i?"no-referrer":s}}function qi(A,e){return kt(A instanceof URL),A.protocol==="file:"||A.protocol==="about:"||A.protocol==="blank:"?"no-referrer":(A.username="",A.password="",A.hash="",e&&(A.pathname="",A.search=""),A)}function fr(A){if(!(A instanceof URL))return!1;if(A.href==="about:blank"||A.href==="about:srcdoc"||A.protocol==="data:"||A.protocol==="file:")return!0;return e(A.origin);function e(t){if(t==null||t==="null")return!1;let r=new URL(t);return!!(r.protocol==="https:"||r.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(r.hostname)||r.hostname==="localhost"||r.hostname.includes("localhost.")||r.hostname.endsWith(".localhost"))}}function yd(A,e){if(ls===void 0)return!0;let t=Dd(e);if(t==="no metadata"||t.length===0)return!0;let r=t.sort((i,o)=>o.algo.localeCompare(i.algo)),s=r[0].algo,n=r.filter(i=>i.algo===s);for(let i of n){let o=i.algo,g=i.hash;if(ls.createHash(o).update(A).digest("base64")===g)return!0}return!1}var wd=/((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\x21-\x7e]?)?/i;function Dd(A){let e=[],t=!0,r=ls.getHashes();for(let s of A.split(" ")){t=!1;let n=wd.exec(s);if(n===null||n.groups===void 0)continue;let i=n.groups.algo;r.includes(i.toLowerCase())&&e.push(n.groups)}return t===!0?"no metadata":e}function pd(A){}function us(A,e){return A.origin===e.origin&&A.origin==="null"||A.protocol===e.protocol&&A.hostname===e.hostname&&A.port===e.port}function Rd(){let A,e;return{promise:new Promise((r,s)=>{A=r,e=s}),resolve:A,reject:e}}function kd(A){return A.controller.state==="aborted"}function Fd(A){return A.controller.state==="aborted"||A.controller.state==="terminated"}function Nd(A){return/^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(A)?A.toUpperCase():A}function md(A){let e=JSON.stringify(A);if(e===void 0)throw new TypeError("Value is not JSON serializable");return kt(typeof e=="string"),e}var bd=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function Sd(A,e,t){let r={index:0,kind:t,target:A},s={next(){if(Object.getPrototypeOf(this)!==s)throw new TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`);let{index:n,kind:i,target:o}=r,g=o(),a=g.length;if(n>=a)return{value:void 0,done:!0};let Q=g[n];return r.index=n+1,Ud(Q,i)},[Symbol.toStringTag]:`${e} Iterator`};return Object.setPrototypeOf(s,bd),Object.setPrototypeOf({},s)}function Ud(A,e){let t;switch(e){case"key":{t=A[0];break}case"value":{t=A[1];break}case"key+value":{t=A;break}}return{value:t,done:!1}}function Ld(A,e,t){let r=i=>queueMicrotask(()=>e(i)),s=i=>queueMicrotask(()=>t(i)),n;try{n=A.stream.getReader()}catch(i){s(i);return}_E(n,r,s)}var Wi=globalThis.ReadableStream;function Md(A){return Wi||(Wi=require("stream/web").ReadableStream),A instanceof Wi||A[Symbol.toStringTag]==="ReadableStream"&&typeof A.tee=="function"}var Yd=65535;function Jd(A){return A.length<Yd?String.fromCharCode(...A):A.reduce((e,t)=>e+String.fromCharCode(t),"")}function Gd(A){try{A.close()}catch(e){if(!e.message.includes("Controller is already closed"))throw e}}function Td(A){for(let e=0;e<A.length;e++)kt(A.charCodeAt(e)<=255);return A}async function _E(A,e,t){let r=[],s=0;for(;;){let n,i;try{({done:n,value:i}=await A.read())}catch(o){t(o);return}if(n){e(Buffer.concat(r,s));return}if(!rd(i)){t(new TypeError("Received non-Uint8Array chunk"));return}r.push(i),s+=i.length}}function vd(A){kt("protocol"in A);let e=A.protocol;return e==="about:"||e==="blob:"||e==="data:"}function Oi(A){return typeof A=="string"?A.startsWith("https:"):A.protocol==="https:"}function ZE(A){kt("protocol"in A);let e=A.protocol;return e==="http:"||e==="https:"}var Hd=Object.hasOwn||((A,e)=>Object.prototype.hasOwnProperty.call(A,e));XE.exports={isAborted:kd,isCancelled:Fd,createDeferredPromise:Rd,ReadableStreamFrom:td,toUSVString:ed,tryUpgradeRequestToAPotentiallyTrustworthyURL:pd,coarsenedSharedCurrentTime:hd,determineRequestsReferrer:dd,makePolicyContainer:ud,clonePolicyContainer:fd,appendFetchMetadata:Id,appendRequestOriginHeader:cd,TAOCheck:Bd,corsCheck:Cd,crossOriginResourcePolicyCheck:ad,createOpaqueTimingInfo:ld,setRequestReferrerPolicyOnRedirect:Ed,isValidHTTPToken:OE,requestBadPort:nd,requestCurrentURL:dr,responseURL:WE,responseLocationURL:sd,isBlobLike:Ad,isURLPotentiallyTrustworthy:fr,isValidReasonPhrase:od,sameOrigin:us,normalizeMethod:Nd,serializeJavascriptValueToJSONString:md,makeIterator:Sd,isValidHeaderName:Qd,isValidHeaderValue:PE,hasOwn:Hd,isErrorLike:id,fullyReadBody:Ld,bytesMatch:yd,isReadableStreamLike:Md,readableStreamClose:Gd,isomorphicEncode:Td,isomorphicDecode:Jd,urlIsLocal:vd,urlHasHttpsScheme:Oi,urlIsHttpHttpsScheme:ZE,readAllBytes:_E}});var Fe=c((Bb,KE)=>{"use strict";KE.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}});var DA=c((Ib,zE)=>{"use strict";var{types:he}=require("util"),{hasOwn:jE,toUSVString:Vd}=jA(),d={};d.converters={};d.util={};d.errors={};d.errors.exception=function(A){return new TypeError(`${A.header}: ${A.message}`)};d.errors.conversionFailed=function(A){let e=A.types.length===1?"":" one of",t=`${A.argument} could not be converted to${e}: ${A.types.join(", ")}.`;return d.errors.exception({header:A.prefix,message:t})};d.errors.invalidArgument=function(A){return d.errors.exception({header:A.prefix,message:`"${A.value}" is an invalid ${A.type}.`})};d.brandCheck=function(A,e,t=void 0){if(t?.strict!==!1&&!(A instanceof e))throw new TypeError("Illegal invocation");return A?.[Symbol.toStringTag]===e.prototype[Symbol.toStringTag]};d.argumentLengthCheck=function({length:A},e,t){if(A<e)throw d.errors.exception({message:`${e} argument${e!==1?"s":""} required, but${A?" only":""} ${A} found.`,...t})};d.illegalConstructor=function(){throw d.errors.exception({header:"TypeError",message:"Illegal constructor"})};d.util.Type=function(A){switch(typeof A){case"undefined":return"Undefined";case"boolean":return"Boolean";case"string":return"String";case"symbol":return"Symbol";case"number":return"Number";case"bigint":return"BigInt";case"function":case"object":return A===null?"Null":"Object"}};d.util.ConvertToInt=function(A,e,t,r={}){let s,n;e===64?(s=Math.pow(2,53)-1,t==="unsigned"?n=0:n=Math.pow(-2,53)+1):t==="unsigned"?(n=0,s=Math.pow(2,e)-1):(n=Math.pow(-2,e)-1,s=Math.pow(2,e-1)-1);let i=Number(A);if(i===0&&(i=0),r.enforceRange===!0){if(Number.isNaN(i)||i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY)throw d.errors.exception({header:"Integer conversion",message:`Could not convert ${A} to an integer.`});if(i=d.util.IntegerPart(i),i<n||i>s)throw d.errors.exception({header:"Integer conversion",message:`Value must be between ${n}-${s}, got ${i}.`});return i}return!Number.isNaN(i)&&r.clamp===!0?(i=Math.min(Math.max(i,n),s),Math.floor(i)%2===0?i=Math.floor(i):i=Math.ceil(i),i):Number.isNaN(i)||i===0&&Object.is(0,i)||i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY?0:(i=d.util.IntegerPart(i),i=i%Math.pow(2,e),t==="signed"&&i>=Math.pow(2,e)-1?i-Math.pow(2,e):i)};d.util.IntegerPart=function(A){let e=Math.floor(Math.abs(A));return A<0?-1*e:e};d.sequenceConverter=function(A){return e=>{if(d.util.Type(e)!=="Object")throw d.errors.exception({header:"Sequence",message:`Value of type ${d.util.Type(e)} is not an Object.`});let t=e?.[Symbol.iterator]?.(),r=[];if(t===void 0||typeof t.next!="function")throw d.errors.exception({header:"Sequence",message:"Object is not an iterator."});for(;;){let{done:s,value:n}=t.next();if(s)break;r.push(A(n))}return r}};d.recordConverter=function(A,e){return t=>{if(d.util.Type(t)!=="Object")throw d.errors.exception({header:"Record",message:`Value of type ${d.util.Type(t)} is not an Object.`});let r={};if(!he.isProxy(t)){let n=Object.keys(t);for(let i of n){let o=A(i),g=e(t[i]);r[o]=g}return r}let s=Reflect.ownKeys(t);for(let n of s)if(Reflect.getOwnPropertyDescriptor(t,n)?.enumerable){let o=A(n),g=e(t[n]);r[o]=g}return r}};d.interfaceConverter=function(A){return(e,t={})=>{if(t.strict!==!1&&!(e instanceof A))throw d.errors.exception({header:A.name,message:`Expected ${e} to be an instance of ${A.name}.`});return e}};d.dictionaryConverter=function(A){return e=>{let t=d.util.Type(e),r={};if(t==="Null"||t==="Undefined")return r;if(t!=="Object")throw d.errors.exception({header:"Dictionary",message:`Expected ${e} to be one of: Null, Undefined, Object.`});for(let s of A){let{key:n,defaultValue:i,required:o,converter:g}=s;if(o===!0&&!jE(e,n))throw d.errors.exception({header:"Dictionary",message:`Missing required key "${n}".`});let a=e[n],Q=jE(s,"defaultValue");if(Q&&a!==null&&(a=a??i),o||Q||a!==void 0){if(a=g(a),s.allowedValues&&!s.allowedValues.includes(a))throw d.errors.exception({header:"Dictionary",message:`${a} is not an accepted type. Expected one of ${s.allowedValues.join(", ")}.`});r[n]=a}}return r}};d.nullableConverter=function(A){return e=>e===null?e:A(e)};d.converters.DOMString=function(A,e={}){if(A===null&&e.legacyNullToEmptyString)return"";if(typeof A=="symbol")throw new TypeError("Could not convert argument of type symbol to string.");return String(A)};d.converters.ByteString=function(A){let e=d.converters.DOMString(A);for(let t=0;t<e.length;t++){let r=e.charCodeAt(t);if(r>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${t} has a value of ${r} which is greater than 255.`)}return e};d.converters.USVString=Vd;d.converters.boolean=function(A){return!!A};d.converters.any=function(A){return A};d.converters["long long"]=function(A){return d.util.ConvertToInt(A,64,"signed")};d.converters["unsigned long long"]=function(A){return d.util.ConvertToInt(A,64,"unsigned")};d.converters["unsigned long"]=function(A){return d.util.ConvertToInt(A,32,"unsigned")};d.converters["unsigned short"]=function(A,e){return d.util.ConvertToInt(A,16,"unsigned",e)};d.converters.ArrayBuffer=function(A,e={}){if(d.util.Type(A)!=="Object"||!he.isAnyArrayBuffer(A))throw d.errors.conversionFailed({prefix:`${A}`,argument:`${A}`,types:["ArrayBuffer"]});if(e.allowShared===!1&&he.isSharedArrayBuffer(A))throw d.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return A};d.converters.TypedArray=function(A,e,t={}){if(d.util.Type(A)!=="Object"||!he.isTypedArray(A)||A.constructor.name!==e.name)throw d.errors.conversionFailed({prefix:`${e.name}`,argument:`${A}`,types:[e.name]});if(t.allowShared===!1&&he.isSharedArrayBuffer(A.buffer))throw d.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return A};d.converters.DataView=function(A,e={}){if(d.util.Type(A)!=="Object"||!he.isDataView(A))throw d.errors.exception({header:"DataView",message:"Object is not a DataView."});if(e.allowShared===!1&&he.isSharedArrayBuffer(A.buffer))throw d.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return A};d.converters.BufferSource=function(A,e={}){if(he.isAnyArrayBuffer(A))return d.converters.ArrayBuffer(A,e);if(he.isTypedArray(A))return d.converters.TypedArray(A,A.constructor);if(he.isDataView(A))return d.converters.DataView(A,e);throw new TypeError(`Could not convert ${A} to a BufferSource.`)};d.converters["sequence<ByteString>"]=d.sequenceConverter(d.converters.ByteString);d.converters["sequence<sequence<ByteString>>"]=d.sequenceConverter(d.converters["sequence<ByteString>"]);d.converters["record<ByteString, ByteString>"]=d.recordConverter(d.converters.ByteString,d.converters.ByteString);zE.exports={webidl:d}});var ge=c((cb,sa)=>{var ds=require("assert"),{atob:xd}=require("buffer"),{isomorphicDecode:qd}=jA(),Wd=new TextEncoder,fs=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/,Od=/(\u000A|\u000D|\u0009|\u0020)/,Pd=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function Zd(A){ds(A.protocol==="data:");let e=ea(A,!0);e=e.slice(5);let t={position:0},r=Ft(",",e,t),s=r.length;if(r=zd(r,!0,!0),t.position>=e.length)return"failure";t.position++;let n=e.slice(s+1),i=ta(n);if(/;(\u0020){0,}base64$/i.test(r)){let g=qd(i);if(i=Kd(g),i==="failure")return"failure";r=r.slice(0,-6),r=r.replace(/(\u0020)+$/,""),r=r.slice(0,-1)}r.startsWith(";")&&(r="text/plain"+r);let o=_i(r);return o==="failure"&&(o=_i("text/plain;charset=US-ASCII")),{mimeType:o,body:i}}function ea(A,e=!1){let t=A.href;if(!e)return t;let r=t.lastIndexOf("#");return r===-1?t:t.slice(0,r)}function ys(A,e,t){let r="";for(;t.position<e.length&&A(e[t.position]);)r+=e[t.position],t.position++;return r}function Ft(A,e,t){let r=e.indexOf(A,t.position),s=t.position;return r===-1?(t.position=e.length,e.slice(s)):(t.position=r,e.slice(s,t.position))}function ta(A){let e=Wd.encode(A);return Xd(e)}function Xd(A){let e=[];for(let t=0;t<A.length;t++){let r=A[t];if(r!==37)e.push(r);else if(r===37&&!/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(A[t+1],A[t+2])))e.push(37);else{let s=String.fromCharCode(A[t+1],A[t+2]),n=Number.parseInt(s,16);e.push(n),t+=2}}return Uint8Array.from(e)}function _i(A){A=Pi(A,!0,!0);let e={position:0},t=Ft("/",A,e);if(t.length===0||!fs.test(t)||e.position>A.length)return"failure";e.position++;let r=Ft(";",A,e);if(r=Pi(r,!1,!0),r.length===0||!fs.test(r))return"failure";let s=t.toLowerCase(),n=r.toLowerCase(),i={type:s,subtype:n,parameters:new Map,essence:`${s}/${n}`};for(;e.position<A.length;){e.position++,ys(a=>Od.test(a),A,e);let o=ys(a=>a!==";"&&a!=="=",A,e);if(o=o.toLowerCase(),e.position<A.length){if(A[e.position]===";")continue;e.position++}if(e.position>A.length)break;let g=null;if(A[e.position]==='"')g=ra(A,e,!0),Ft(";",A,e);else if(g=Ft(";",A,e),g=Pi(g,!1,!0),g.length===0)continue;o.length!==0&&fs.test(o)&&(g.length===0||Pd.test(g))&&!i.parameters.has(o)&&i.parameters.set(o,g)}return i}function Kd(A){if(A=A.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,""),A.length%4===0&&(A=A.replace(/=?=$/,"")),A.length%4===1||/[^+/0-9A-Za-z]/.test(A))return"failure";let e=xd(A),t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}function ra(A,e,t){let r=e.position,s="";for(ds(A[e.position]==='"'),e.position++;s+=ys(i=>i!=='"'&&i!=="\\",A,e),!(e.position>=A.length);){let n=A[e.position];if(e.position++,n==="\\"){if(e.position>=A.length){s+="\\";break}s+=A[e.position],e.position++}else{ds(n==='"');break}}return t?s:A.slice(r,e.position)}function jd(A){ds(A!=="failure");let{parameters:e,essence:t}=A,r=t;for(let[s,n]of e.entries())r+=";",r+=s,r+="=",fs.test(n)||(n=n.replace(/(\\|")/g,"\\$1"),n='"'+n,n+='"'),r+=n;return r}function $E(A){return A==="\r"||A===` -`||A===" "||A===" "}function Pi(A,e=!0,t=!0){let r=0,s=A.length-1;if(e)for(;r<A.length&&$E(A[r]);r++);if(t)for(;s>0&&$E(A[s]);s--);return A.slice(r,s+1)}function Aa(A){return A==="\r"||A===` -`||A===" "||A==="\f"||A===" "}function zd(A,e=!0,t=!0){let r=0,s=A.length-1;if(e)for(;r<A.length&&Aa(A[r]);r++);if(t)for(;s>0&&Aa(A[s]);s--);return A.slice(r,s+1)}sa.exports={dataURLProcessor:Zd,URLSerializer:ea,collectASequenceOfCodePoints:ys,collectASequenceOfCodePointsFast:Ft,stringPercentDecode:ta,parseMIMEType:_i,collectAnHTTPQuotedString:ra,serializeAMimeType:jd}});var ws=c((hb,Qa)=>{"use strict";var{Blob:oa,File:na}=require("buffer"),{types:Zi}=require("util"),{kState:vA}=Fe(),{isBlobLike:ga}=jA(),{webidl:H}=DA(),{parseMIMEType:$d,serializeAMimeType:A0}=ge(),{kEnumerableProperty:ia}=G(),yr=class A extends oa{constructor(e,t,r={}){H.argumentLengthCheck(arguments,2,{header:"File constructor"}),e=H.converters["sequence<BlobPart>"](e),t=H.converters.USVString(t),r=H.converters.FilePropertyBag(r);let s=t,n=r.type,i;A:{if(n){if(n=$d(n),n==="failure"){n="";break A}n=A0(n).toLowerCase()}i=r.lastModified}super(e0(e,r),{type:n}),this[vA]={name:s,lastModified:i,type:n}}get name(){return H.brandCheck(this,A),this[vA].name}get lastModified(){return H.brandCheck(this,A),this[vA].lastModified}get type(){return H.brandCheck(this,A),this[vA].type}},Xi=class A{constructor(e,t,r={}){let s=t,n=r.type,i=r.lastModified??Date.now();this[vA]={blobLike:e,name:s,type:n,lastModified:i}}stream(...e){return H.brandCheck(this,A),this[vA].blobLike.stream(...e)}arrayBuffer(...e){return H.brandCheck(this,A),this[vA].blobLike.arrayBuffer(...e)}slice(...e){return H.brandCheck(this,A),this[vA].blobLike.slice(...e)}text(...e){return H.brandCheck(this,A),this[vA].blobLike.text(...e)}get size(){return H.brandCheck(this,A),this[vA].blobLike.size}get type(){return H.brandCheck(this,A),this[vA].blobLike.type}get name(){return H.brandCheck(this,A),this[vA].name}get lastModified(){return H.brandCheck(this,A),this[vA].lastModified}get[Symbol.toStringTag](){return"File"}};Object.defineProperties(yr.prototype,{[Symbol.toStringTag]:{value:"File",configurable:!0},name:ia,lastModified:ia});H.converters.Blob=H.interfaceConverter(oa);H.converters.BlobPart=function(A,e){if(H.util.Type(A)==="Object"){if(ga(A))return H.converters.Blob(A,{strict:!1});if(ArrayBuffer.isView(A)||Zi.isAnyArrayBuffer(A))return H.converters.BufferSource(A,e)}return H.converters.USVString(A,e)};H.converters["sequence<BlobPart>"]=H.sequenceConverter(H.converters.BlobPart);H.converters.FilePropertyBag=H.dictionaryConverter([{key:"lastModified",converter:H.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:H.converters.DOMString,defaultValue:""},{key:"endings",converter:A=>(A=H.converters.DOMString(A),A=A.toLowerCase(),A!=="native"&&(A="transparent"),A),defaultValue:"transparent"}]);function e0(A,e){let t=[];for(let r of A)if(typeof r=="string"){let s=r;e.endings==="native"&&(s=t0(s)),t.push(new TextEncoder().encode(s))}else Zi.isAnyArrayBuffer(r)||Zi.isTypedArray(r)?r.buffer?t.push(new Uint8Array(r.buffer,r.byteOffset,r.byteLength)):t.push(new Uint8Array(r)):ga(r)&&t.push(r);return t}function t0(A){let e=` -`;return process.platform==="win32"&&(e=`\r -`),A.replace(/\r?\n/g,e)}function r0(A){return na&&A instanceof na||A instanceof yr||A&&(typeof A.stream=="function"||typeof A.arrayBuffer=="function")&&A[Symbol.toStringTag]==="File"}Qa.exports={File:yr,FileLike:Xi,isFileLike:r0}});var ps=c((lb,Ia)=>{"use strict";var{isBlobLike:Ds,toUSVString:s0,makeIterator:Ki}=jA(),{kState:fA}=Fe(),{File:Ba,FileLike:Ea,isFileLike:n0}=ws(),{webidl:q}=DA(),{Blob:i0,File:ji}=require("buffer"),aa=ji??Ba,Nt=class A{constructor(e){if(e!==void 0)throw q.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[fA]=[]}append(e,t,r=void 0){if(q.brandCheck(this,A),q.argumentLengthCheck(arguments,2,{header:"FormData.append"}),arguments.length===3&&!Ds(t))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");e=q.converters.USVString(e),t=Ds(t)?q.converters.Blob(t,{strict:!1}):q.converters.USVString(t),r=arguments.length===3?q.converters.USVString(r):void 0;let s=Ca(e,t,r);this[fA].push(s)}delete(e){q.brandCheck(this,A),q.argumentLengthCheck(arguments,1,{header:"FormData.delete"}),e=q.converters.USVString(e),this[fA]=this[fA].filter(t=>t.name!==e)}get(e){q.brandCheck(this,A),q.argumentLengthCheck(arguments,1,{header:"FormData.get"}),e=q.converters.USVString(e);let t=this[fA].findIndex(r=>r.name===e);return t===-1?null:this[fA][t].value}getAll(e){return q.brandCheck(this,A),q.argumentLengthCheck(arguments,1,{header:"FormData.getAll"}),e=q.converters.USVString(e),this[fA].filter(t=>t.name===e).map(t=>t.value)}has(e){return q.brandCheck(this,A),q.argumentLengthCheck(arguments,1,{header:"FormData.has"}),e=q.converters.USVString(e),this[fA].findIndex(t=>t.name===e)!==-1}set(e,t,r=void 0){if(q.brandCheck(this,A),q.argumentLengthCheck(arguments,2,{header:"FormData.set"}),arguments.length===3&&!Ds(t))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");e=q.converters.USVString(e),t=Ds(t)?q.converters.Blob(t,{strict:!1}):q.converters.USVString(t),r=arguments.length===3?s0(r):void 0;let s=Ca(e,t,r),n=this[fA].findIndex(i=>i.name===e);n!==-1?this[fA]=[...this[fA].slice(0,n),s,...this[fA].slice(n+1).filter(i=>i.name!==e)]:this[fA].push(s)}entries(){return q.brandCheck(this,A),Ki(()=>this[fA].map(e=>[e.name,e.value]),"FormData","key+value")}keys(){return q.brandCheck(this,A),Ki(()=>this[fA].map(e=>[e.name,e.value]),"FormData","key")}values(){return q.brandCheck(this,A),Ki(()=>this[fA].map(e=>[e.name,e.value]),"FormData","value")}forEach(e,t=globalThis){if(q.brandCheck(this,A),q.argumentLengthCheck(arguments,1,{header:"FormData.forEach"}),typeof e!="function")throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.");for(let[r,s]of this)e.apply(t,[s,r,this])}};Nt.prototype[Symbol.iterator]=Nt.prototype.entries;Object.defineProperties(Nt.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function Ca(A,e,t){if(A=Buffer.from(A).toString("utf8"),typeof e=="string")e=Buffer.from(e).toString("utf8");else if(n0(e)||(e=e instanceof i0?new aa([e],"blob",{type:e.type}):new Ea(e,"blob",{type:e.type})),t!==void 0){let r={type:e.type,lastModified:e.lastModified};e=ji&&e instanceof ji||e instanceof Ba?new aa([e],t,r):new Ea(e,t,r)}return{name:A,value:e}}Ia.exports={FormData:Nt}});var wr=c((ub,Da)=>{"use strict";var o0=VE(),mt=G(),{ReadableStreamFrom:g0,isBlobLike:ca,isReadableStreamLike:Q0,readableStreamClose:E0,createDeferredPromise:a0,fullyReadBody:C0}=jA(),{FormData:ha}=ps(),{kState:me}=Fe(),{webidl:zi}=DA(),{DOMException:fa,structuredClone:B0}=He(),{Blob:I0,File:c0}=require("buffer"),{kBodyUsed:h0}=$(),$i=require("assert"),{isErrored:l0}=G(),{isUint8Array:da,isArrayBuffer:u0}=require("util/types"),{File:f0}=ws(),{parseMIMEType:d0,serializeAMimeType:y0}=ge(),Ne=globalThis.ReadableStream,la=c0??f0;function ya(A,e=!1){Ne||(Ne=require("stream/web").ReadableStream);let t=null;A instanceof Ne?t=A:ca(A)?t=A.stream():t=new Ne({async pull(g){g.enqueue(typeof s=="string"?new TextEncoder().encode(s):s),queueMicrotask(()=>E0(g))},start(){},type:void 0}),$i(Q0(t));let r=null,s=null,n=null,i=null;if(typeof A=="string")s=A,i="text/plain;charset=UTF-8";else if(A instanceof URLSearchParams)s=A.toString(),i="application/x-www-form-urlencoded;charset=UTF-8";else if(u0(A))s=new Uint8Array(A.slice());else if(ArrayBuffer.isView(A))s=new Uint8Array(A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength));else if(mt.isFormDataLike(A)){let g=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,a=`--${g}\r -Content-Disposition: form-data`;let Q=u=>u.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),E=u=>u.replace(/\r?\n|\r/g,`\r -`),C=new TextEncoder,B=[],I=new Uint8Array([13,10]);n=0;let h=!1;for(let[u,F]of A)if(typeof F=="string"){let w=C.encode(a+`; name="${Q(E(u))}"\r -\r -${E(F)}\r -`);B.push(w),n+=w.byteLength}else{let w=C.encode(`${a}; name="${Q(E(u))}"`+(F.name?`; filename="${Q(F.name)}"`:"")+`\r -Content-Type: ${F.type||"application/octet-stream"}\r -\r -`);B.push(w,F,I),typeof F.size=="number"?n+=w.byteLength+F.size+I.byteLength:h=!0}let l=C.encode(`--${g}--`);B.push(l),n+=l.byteLength,h&&(n=null),s=A,r=async function*(){for(let u of B)u.stream?yield*u.stream():yield u},i="multipart/form-data; boundary="+g}else if(ca(A))s=A,n=A.size,A.type&&(i=A.type);else if(typeof A[Symbol.asyncIterator]=="function"){if(e)throw new TypeError("keepalive");if(mt.isDisturbed(A)||A.locked)throw new TypeError("Response body object should not be disturbed or locked");t=A instanceof Ne?A:g0(A)}if((typeof s=="string"||mt.isBuffer(s))&&(n=Buffer.byteLength(s)),r!=null){let g;t=new Ne({async start(){g=r(A)[Symbol.asyncIterator]()},async pull(a){let{value:Q,done:E}=await g.next();return E?queueMicrotask(()=>{a.close()}):l0(t)||a.enqueue(new Uint8Array(Q)),a.desiredSize>0},async cancel(a){await g.return()},type:void 0})}return[{stream:t,source:s,length:n},i]}function w0(A,e=!1){return Ne||(Ne=require("stream/web").ReadableStream),A instanceof Ne&&($i(!mt.isDisturbed(A),"The body has already been consumed."),$i(!A.locked,"The stream is locked.")),ya(A,e)}function D0(A){let[e,t]=A.stream.tee(),r=B0(t,{transfer:[t]}),[,s]=r.tee();return A.stream=e,{stream:s,length:A.length,source:A.source}}async function*ua(A){if(A)if(da(A))yield A;else{let e=A.stream;if(mt.isDisturbed(e))throw new TypeError("The body has already been consumed.");if(e.locked)throw new TypeError("The stream is locked.");e[h0]=!0,yield*e}}function Ao(A){if(A.aborted)throw new fa("The operation was aborted.","AbortError")}function p0(A){return{blob(){return Rs(this,t=>{let r=N0(this);return r==="failure"?r="":r&&(r=y0(r)),new I0([t],{type:r})},A)},arrayBuffer(){return Rs(this,t=>new Uint8Array(t).buffer,A)},text(){return Rs(this,wa,A)},json(){return Rs(this,F0,A)},async formData(){zi.brandCheck(this,A),Ao(this[me]);let t=this.headers.get("Content-Type");if(/multipart\/form-data/.test(t)){let r={};for(let[o,g]of this.headers)r[o.toLowerCase()]=g;let s=new ha,n;try{n=o0({headers:r,defParamCharset:"utf8"})}catch(o){throw new fa(`${o}`,"AbortError")}n.on("field",(o,g)=>{s.append(o,g)}),n.on("file",(o,g,a)=>{let{filename:Q,encoding:E,mimeType:C}=a,B=[];if(E==="base64"||E.toLowerCase()==="base64"){let I="";g.on("data",h=>{I+=h.toString().replace(/[\r\n]/gm,"");let l=I.length-I.length%4;B.push(Buffer.from(I.slice(0,l),"base64")),I=I.slice(l)}),g.on("end",()=>{B.push(Buffer.from(I,"base64")),s.append(o,new la(B,Q,{type:C}))})}else g.on("data",I=>{B.push(I)}),g.on("end",()=>{s.append(o,new la(B,Q,{type:C}))})});let i=new Promise((o,g)=>{n.on("finish",o),n.on("error",a=>g(new TypeError(a)))});if(this.body!==null)for await(let o of ua(this[me].body))n.write(o);return n.end(),await i,s}else if(/application\/x-www-form-urlencoded/.test(t)){let r;try{let n="",i=new TextDecoder("utf-8",{ignoreBOM:!0});for await(let o of ua(this[me].body)){if(!da(o))throw new TypeError("Expected Uint8Array chunk");n+=i.decode(o,{stream:!0})}n+=i.decode(),r=new URLSearchParams(n)}catch(n){throw Object.assign(new TypeError,{cause:n})}let s=new ha;for(let[n,i]of r)s.append(n,i);return s}else throw await Promise.resolve(),Ao(this[me]),zi.errors.exception({header:`${A.name}.formData`,message:"Could not parse content as FormData."})}}}function R0(A){Object.assign(A.prototype,p0(A))}async function Rs(A,e,t){if(zi.brandCheck(A,t),Ao(A[me]),k0(A[me].body))throw new TypeError("Body is unusable");let r=a0(),s=i=>r.reject(i),n=i=>{try{r.resolve(e(i))}catch(o){s(o)}};return A[me].body==null?(n(new Uint8Array),r.promise):(C0(A[me].body,n,s),r.promise)}function k0(A){return A!=null&&(A.stream.locked||mt.isDisturbed(A.stream))}function wa(A){return A.length===0?"":(A[0]===239&&A[1]===187&&A[2]===191&&(A=A.subarray(3)),new TextDecoder().decode(A))}function F0(A){return JSON.parse(wa(A))}function N0(A){let{headersList:e}=A[me],t=e.get("content-type");return t===null?"failure":d0(t)}Da.exports={extractBody:ya,safelyExtractBody:w0,cloneBody:D0,mixinBody:R0}});var Fa=c((fb,ka)=>{"use strict";var{InvalidArgumentError:AA,NotSupportedError:m0}=Z(),be=require("assert"),HA=G(),pa=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,Ra=/[^\t\x20-\x7e\x80-\xff]/,b0=/[^\u0021-\u00ff]/,Se=Symbol("handler"),iA={},eo;try{let A=require("diagnostics_channel");iA.create=A.channel("undici:request:create"),iA.bodySent=A.channel("undici:request:bodySent"),iA.headers=A.channel("undici:request:headers"),iA.trailers=A.channel("undici:request:trailers"),iA.error=A.channel("undici:request:error")}catch{iA.create={hasSubscribers:!1},iA.bodySent={hasSubscribers:!1},iA.headers={hasSubscribers:!1},iA.trailers={hasSubscribers:!1},iA.error={hasSubscribers:!1}}var so=class{constructor(e,{path:t,method:r,body:s,headers:n,query:i,idempotent:o,blocking:g,upgrade:a,headersTimeout:Q,bodyTimeout:E,reset:C,throwOnError:B},I){if(typeof t!="string")throw new AA("path must be a string");if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&r!=="CONNECT")throw new AA("path must be an absolute URL or start with a slash");if(b0.exec(t)!==null)throw new AA("invalid request path");if(typeof r!="string")throw new AA("method must be a string");if(pa.exec(r)===null)throw new AA("invalid request method");if(a&&typeof a!="string")throw new AA("upgrade must be a string");if(Q!=null&&(!Number.isFinite(Q)||Q<0))throw new AA("invalid headersTimeout");if(E!=null&&(!Number.isFinite(E)||E<0))throw new AA("invalid bodyTimeout");if(C!=null&&typeof C!="boolean")throw new AA("invalid reset");if(this.headersTimeout=Q,this.bodyTimeout=E,this.throwOnError=B===!0,this.method=r,s==null)this.body=null;else if(HA.isStream(s))this.body=s;else if(HA.isBuffer(s))this.body=s.byteLength?s:null;else if(ArrayBuffer.isView(s))this.body=s.buffer.byteLength?Buffer.from(s.buffer,s.byteOffset,s.byteLength):null;else if(s instanceof ArrayBuffer)this.body=s.byteLength?Buffer.from(s):null;else if(typeof s=="string")this.body=s.length?Buffer.from(s):null;else if(HA.isFormDataLike(s)||HA.isIterable(s)||HA.isBlobLike(s))this.body=s;else throw new AA("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=a||null,this.path=i?HA.buildURL(t,i):t,this.origin=e,this.idempotent=o??(r==="HEAD"||r==="GET"),this.blocking=g??!1,this.reset=C??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers="",Array.isArray(n)){if(n.length%2!==0)throw new AA("headers array must be even");for(let h=0;h<n.length;h+=2)ro(this,n[h],n[h+1])}else if(n&&typeof n=="object"){let h=Object.keys(n);for(let l=0;l<h.length;l++){let u=h[l];ro(this,u,n[u])}}else if(n!=null)throw new AA("headers must be an object or an array");if(HA.isFormDataLike(this.body)){if(HA.nodeMajor<16||HA.nodeMajor===16&&HA.nodeMinor<8)throw new AA("Form-Data bodies are only supported in node v16.8 and newer.");eo||(eo=wr().extractBody);let[h,l]=eo(s);this.contentType==null&&(this.contentType=l,this.headers+=`content-type: ${l}\r -`),this.body=h.stream,this.contentLength=h.length}else HA.isBlobLike(s)&&this.contentType==null&&s.type&&(this.contentType=s.type,this.headers+=`content-type: ${s.type}\r -`);HA.validateHandler(I,r,a),this.servername=HA.getServerName(this.host),this[Se]=I,iA.create.hasSubscribers&&iA.create.publish({request:this})}onBodySent(e){if(this[Se].onBodySent)try{this[Se].onBodySent(e)}catch(t){this.onError(t)}}onRequestSent(){iA.bodySent.hasSubscribers&&iA.bodySent.publish({request:this})}onConnect(e){return be(!this.aborted),be(!this.completed),this[Se].onConnect(e)}onHeaders(e,t,r,s){return be(!this.aborted),be(!this.completed),iA.headers.hasSubscribers&&iA.headers.publish({request:this,response:{statusCode:e,headers:t,statusText:s}}),this[Se].onHeaders(e,t,r,s)}onData(e){return be(!this.aborted),be(!this.completed),this[Se].onData(e)}onUpgrade(e,t,r){return be(!this.aborted),be(!this.completed),this[Se].onUpgrade(e,t,r)}onComplete(e){return be(!this.aborted),this.completed=!0,iA.trailers.hasSubscribers&&iA.trailers.publish({request:this,trailers:e}),this[Se].onComplete(e)}onError(e){if(iA.error.hasSubscribers&&iA.error.publish({request:this,error:e}),!this.aborted)return this.aborted=!0,this[Se].onError(e)}addHeader(e,t){return ro(this,e,t),this}};function to(A,e){if(e&&typeof e=="object")throw new AA(`invalid ${A} header`);if(e=e!=null?`${e}`:"",Ra.exec(e)!==null)throw new AA(`invalid ${A} header`);return`${A}: ${e}\r -`}function ro(A,e,t){if(t&&typeof t=="object"&&!Array.isArray(t))throw new AA(`invalid ${e} header`);if(t===void 0)return;if(A.host===null&&e.length===4&&e.toLowerCase()==="host"){if(Ra.exec(t)!==null)throw new AA(`invalid ${e} header`);A.host=t}else if(A.contentLength===null&&e.length===14&&e.toLowerCase()==="content-length"){if(A.contentLength=parseInt(t,10),!Number.isFinite(A.contentLength))throw new AA("invalid content-length header")}else if(A.contentType===null&&e.length===12&&e.toLowerCase()==="content-type")A.contentType=t,A.headers+=to(e,t);else{if(e.length===17&&e.toLowerCase()==="transfer-encoding")throw new AA("invalid transfer-encoding header");if(e.length===10&&e.toLowerCase()==="connection"){let r=typeof t=="string"?t.toLowerCase():null;if(r!=="close"&&r!=="keep-alive")throw new AA("invalid connection header");r==="close"&&(A.reset=!0)}else{if(e.length===10&&e.toLowerCase()==="keep-alive")throw new AA("invalid keep-alive header");if(e.length===7&&e.toLowerCase()==="upgrade")throw new AA("invalid upgrade header");if(e.length===6&&e.toLowerCase()==="expect")throw new m0("expect header not supported");if(pa.exec(e)===null)throw new AA("invalid header key");if(Array.isArray(t))for(let r=0;r<t.length;r++)A.headers+=to(e,t[r]);else A.headers+=to(e,t)}}}ka.exports=so});var ks=c((db,Na)=>{"use strict";var S0=require("events"),no=class extends S0{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}};Na.exports=no});var pr=c((yb,ma)=>{"use strict";var U0=ks(),{ClientDestroyedError:io,ClientClosedError:L0,InvalidArgumentError:bt}=Z(),{kDestroy:M0,kClose:Y0,kDispatch:oo,kInterceptors:et}=$(),St=Symbol("destroyed"),Dr=Symbol("closed"),Ue=Symbol("onDestroyed"),Ut=Symbol("onClosed"),Fs=Symbol("Intercepted Dispatch"),go=class extends U0{constructor(){super(),this[St]=!1,this[Ue]=null,this[Dr]=!1,this[Ut]=[]}get destroyed(){return this[St]}get closed(){return this[Dr]}get interceptors(){return this[et]}set interceptors(e){if(e){for(let t=e.length-1;t>=0;t--)if(typeof this[et][t]!="function")throw new bt("interceptor must be an function")}this[et]=e}close(e){if(e===void 0)return new Promise((r,s)=>{this.close((n,i)=>n?s(n):r(i))});if(typeof e!="function")throw new bt("invalid callback");if(this[St]){queueMicrotask(()=>e(new io,null));return}if(this[Dr]){this[Ut]?this[Ut].push(e):queueMicrotask(()=>e(null,null));return}this[Dr]=!0,this[Ut].push(e);let t=()=>{let r=this[Ut];this[Ut]=null;for(let s=0;s<r.length;s++)r[s](null,null)};this[Y0]().then(()=>this.destroy()).then(()=>{queueMicrotask(t)})}destroy(e,t){if(typeof e=="function"&&(t=e,e=null),t===void 0)return new Promise((s,n)=>{this.destroy(e,(i,o)=>i?n(i):s(o))});if(typeof t!="function")throw new bt("invalid callback");if(this[St]){this[Ue]?this[Ue].push(t):queueMicrotask(()=>t(null,null));return}e||(e=new io),this[St]=!0,this[Ue]=this[Ue]||[],this[Ue].push(t);let r=()=>{let s=this[Ue];this[Ue]=null;for(let n=0;n<s.length;n++)s[n](null,null)};this[M0](e).then(()=>{queueMicrotask(r)})}[Fs](e,t){if(!this[et]||this[et].length===0)return this[Fs]=this[oo],this[oo](e,t);let r=this[oo].bind(this);for(let s=this[et].length-1;s>=0;s--)r=this[et][s](r);return this[Fs]=r,r(e,t)}dispatch(e,t){if(!t||typeof t!="object")throw new bt("handler must be an object");try{if(!e||typeof e!="object")throw new bt("opts must be an object.");if(this[St]||this[Ue])throw new io;if(this[Dr])throw new L0;return this[Fs](e,t)}catch(r){if(typeof t.onError!="function")throw new bt("invalid onError method");return t.onError(r),!1}}};ma.exports=go});var Rr=c((pb,Ua)=>{"use strict";var J0=require("net"),ba=require("assert"),Sa=G(),{InvalidArgumentError:G0,ConnectTimeoutError:T0}=Z(),Qo,Eo;global.FinalizationRegistry?Eo=class{constructor(e){this._maxCachedSessions=e,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(t=>{if(this._sessionCache.size<this._maxCachedSessions)return;let r=this._sessionCache.get(t);r!==void 0&&r.deref()===void 0&&this._sessionCache.delete(t)})}get(e){let t=this._sessionCache.get(e);return t?t.deref():null}set(e,t){this._maxCachedSessions!==0&&(this._sessionCache.set(e,new WeakRef(t)),this._sessionRegistry.register(t,e))}}:Eo=class{constructor(e){this._maxCachedSessions=e,this._sessionCache=new Map}get(e){return this._sessionCache.get(e)}set(e,t){if(this._maxCachedSessions!==0){if(this._sessionCache.size>=this._maxCachedSessions){let{value:r}=this._sessionCache.keys().next();this._sessionCache.delete(r)}this._sessionCache.set(e,t)}}};function v0({maxCachedSessions:A,socketPath:e,timeout:t,...r}){if(A!=null&&(!Number.isInteger(A)||A<0))throw new G0("maxCachedSessions must be a positive integer or zero");let s={path:e,...r},n=new Eo(A??100);return t=t??1e4,function({hostname:o,host:g,protocol:a,port:Q,servername:E,localAddress:C,httpSocket:B},I){let h;if(a==="https:"){Qo||(Qo=require("tls")),E=E||s.servername||Sa.getServerName(g)||null;let u=E||o,F=n.get(u)||null;ba(u),h=Qo.connect({highWaterMark:16384,...s,servername:E,session:F,localAddress:C,socket:B,port:Q||443,host:o}),h.on("session",function(w){n.set(u,w)})}else ba(!B,"httpSocket can only be sent on TLS update"),h=J0.connect({highWaterMark:64*1024,...s,localAddress:C,port:Q||80,host:o});if(s.keepAlive==null||s.keepAlive){let u=s.keepAliveInitialDelay===void 0?6e4:s.keepAliveInitialDelay;h.setKeepAlive(!0,u)}let l=H0(()=>V0(h),t);return h.setNoDelay(!0).once(a==="https:"?"secureConnect":"connect",function(){if(l(),I){let u=I;I=null,u(null,this)}}).on("error",function(u){if(l(),I){let F=I;I=null,F(u)}}),h}}function H0(A,e){if(!e)return()=>{};let t=null,r=null,s=setTimeout(()=>{t=setImmediate(()=>{process.platform==="win32"?r=setImmediate(()=>A()):A()})},e);return()=>{clearTimeout(s),clearImmediate(t),clearImmediate(r)}}function V0(A){Sa.destroy(A,new T0)}Ua.exports=v0});var La=c(Ns=>{"use strict";Object.defineProperty(Ns,"__esModule",{value:!0});Ns.enumToMap=void 0;function x0(A){let e={};return Object.keys(A).forEach(t=>{let r=A[t];typeof r=="number"&&(e[t]=r)}),e}Ns.enumToMap=x0});var Ma=c(f=>{"use strict";Object.defineProperty(f,"__esModule",{value:!0});f.SPECIAL_HEADERS=f.HEADER_STATE=f.MINOR=f.MAJOR=f.CONNECTION_TOKEN_CHARS=f.HEADER_CHARS=f.TOKEN=f.STRICT_TOKEN=f.HEX=f.URL_CHAR=f.STRICT_URL_CHAR=f.USERINFO_CHARS=f.MARK=f.ALPHANUM=f.NUM=f.HEX_MAP=f.NUM_MAP=f.ALPHA=f.FINISH=f.H_METHOD_MAP=f.METHOD_MAP=f.METHODS_RTSP=f.METHODS_ICE=f.METHODS_HTTP=f.METHODS=f.LENIENT_FLAGS=f.FLAGS=f.TYPE=f.ERROR=void 0;var q0=La(),W0;(function(A){A[A.OK=0]="OK",A[A.INTERNAL=1]="INTERNAL",A[A.STRICT=2]="STRICT",A[A.LF_EXPECTED=3]="LF_EXPECTED",A[A.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",A[A.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",A[A.INVALID_METHOD=6]="INVALID_METHOD",A[A.INVALID_URL=7]="INVALID_URL",A[A.INVALID_CONSTANT=8]="INVALID_CONSTANT",A[A.INVALID_VERSION=9]="INVALID_VERSION",A[A.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",A[A.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",A[A.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",A[A.INVALID_STATUS=13]="INVALID_STATUS",A[A.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",A[A.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",A[A.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",A[A.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",A[A.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",A[A.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",A[A.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",A[A.PAUSED=21]="PAUSED",A[A.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",A[A.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",A[A.USER=24]="USER"})(W0=f.ERROR||(f.ERROR={}));var O0;(function(A){A[A.BOTH=0]="BOTH",A[A.REQUEST=1]="REQUEST",A[A.RESPONSE=2]="RESPONSE"})(O0=f.TYPE||(f.TYPE={}));var P0;(function(A){A[A.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",A[A.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",A[A.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",A[A.CHUNKED=8]="CHUNKED",A[A.UPGRADE=16]="UPGRADE",A[A.CONTENT_LENGTH=32]="CONTENT_LENGTH",A[A.SKIPBODY=64]="SKIPBODY",A[A.TRAILING=128]="TRAILING",A[A.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(P0=f.FLAGS||(f.FLAGS={}));var _0;(function(A){A[A.HEADERS=1]="HEADERS",A[A.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",A[A.KEEP_ALIVE=4]="KEEP_ALIVE"})(_0=f.LENIENT_FLAGS||(f.LENIENT_FLAGS={}));var D;(function(A){A[A.DELETE=0]="DELETE",A[A.GET=1]="GET",A[A.HEAD=2]="HEAD",A[A.POST=3]="POST",A[A.PUT=4]="PUT",A[A.CONNECT=5]="CONNECT",A[A.OPTIONS=6]="OPTIONS",A[A.TRACE=7]="TRACE",A[A.COPY=8]="COPY",A[A.LOCK=9]="LOCK",A[A.MKCOL=10]="MKCOL",A[A.MOVE=11]="MOVE",A[A.PROPFIND=12]="PROPFIND",A[A.PROPPATCH=13]="PROPPATCH",A[A.SEARCH=14]="SEARCH",A[A.UNLOCK=15]="UNLOCK",A[A.BIND=16]="BIND",A[A.REBIND=17]="REBIND",A[A.UNBIND=18]="UNBIND",A[A.ACL=19]="ACL",A[A.REPORT=20]="REPORT",A[A.MKACTIVITY=21]="MKACTIVITY",A[A.CHECKOUT=22]="CHECKOUT",A[A.MERGE=23]="MERGE",A[A["M-SEARCH"]=24]="M-SEARCH",A[A.NOTIFY=25]="NOTIFY",A[A.SUBSCRIBE=26]="SUBSCRIBE",A[A.UNSUBSCRIBE=27]="UNSUBSCRIBE",A[A.PATCH=28]="PATCH",A[A.PURGE=29]="PURGE",A[A.MKCALENDAR=30]="MKCALENDAR",A[A.LINK=31]="LINK",A[A.UNLINK=32]="UNLINK",A[A.SOURCE=33]="SOURCE",A[A.PRI=34]="PRI",A[A.DESCRIBE=35]="DESCRIBE",A[A.ANNOUNCE=36]="ANNOUNCE",A[A.SETUP=37]="SETUP",A[A.PLAY=38]="PLAY",A[A.PAUSE=39]="PAUSE",A[A.TEARDOWN=40]="TEARDOWN",A[A.GET_PARAMETER=41]="GET_PARAMETER",A[A.SET_PARAMETER=42]="SET_PARAMETER",A[A.REDIRECT=43]="REDIRECT",A[A.RECORD=44]="RECORD",A[A.FLUSH=45]="FLUSH"})(D=f.METHODS||(f.METHODS={}));f.METHODS_HTTP=[D.DELETE,D.GET,D.HEAD,D.POST,D.PUT,D.CONNECT,D.OPTIONS,D.TRACE,D.COPY,D.LOCK,D.MKCOL,D.MOVE,D.PROPFIND,D.PROPPATCH,D.SEARCH,D.UNLOCK,D.BIND,D.REBIND,D.UNBIND,D.ACL,D.REPORT,D.MKACTIVITY,D.CHECKOUT,D.MERGE,D["M-SEARCH"],D.NOTIFY,D.SUBSCRIBE,D.UNSUBSCRIBE,D.PATCH,D.PURGE,D.MKCALENDAR,D.LINK,D.UNLINK,D.PRI,D.SOURCE];f.METHODS_ICE=[D.SOURCE];f.METHODS_RTSP=[D.OPTIONS,D.DESCRIBE,D.ANNOUNCE,D.SETUP,D.PLAY,D.PAUSE,D.TEARDOWN,D.GET_PARAMETER,D.SET_PARAMETER,D.REDIRECT,D.RECORD,D.FLUSH,D.GET,D.POST];f.METHOD_MAP=q0.enumToMap(D);f.H_METHOD_MAP={};Object.keys(f.METHOD_MAP).forEach(A=>{/^H/.test(A)&&(f.H_METHOD_MAP[A]=f.METHOD_MAP[A])});var Z0;(function(A){A[A.SAFE=0]="SAFE",A[A.SAFE_WITH_CB=1]="SAFE_WITH_CB",A[A.UNSAFE=2]="UNSAFE"})(Z0=f.FINISH||(f.FINISH={}));f.ALPHA=[];for(let A=65;A<=90;A++)f.ALPHA.push(String.fromCharCode(A)),f.ALPHA.push(String.fromCharCode(A+32));f.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};f.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};f.NUM=["0","1","2","3","4","5","6","7","8","9"];f.ALPHANUM=f.ALPHA.concat(f.NUM);f.MARK=["-","_",".","!","~","*","'","(",")"];f.USERINFO_CHARS=f.ALPHANUM.concat(f.MARK).concat(["%",";",":","&","=","+","$",","]);f.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(f.ALPHANUM);f.URL_CHAR=f.STRICT_URL_CHAR.concat([" ","\f"]);for(let A=128;A<=255;A++)f.URL_CHAR.push(A);f.HEX=f.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);f.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(f.ALPHANUM);f.TOKEN=f.STRICT_TOKEN.concat([" "]);f.HEADER_CHARS=[" "];for(let A=32;A<=255;A++)A!==127&&f.HEADER_CHARS.push(A);f.CONNECTION_TOKEN_CHARS=f.HEADER_CHARS.filter(A=>A!==44);f.MAJOR=f.NUM_MAP;f.MINOR=f.MAJOR;var Lt;(function(A){A[A.GENERAL=0]="GENERAL",A[A.CONNECTION=1]="CONNECTION",A[A.CONTENT_LENGTH=2]="CONTENT_LENGTH",A[A.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",A[A.UPGRADE=4]="UPGRADE",A[A.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",A[A.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",A[A.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",A[A.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(Lt=f.HEADER_STATE||(f.HEADER_STATE={}));f.SPECIAL_HEADERS={connection:Lt.CONNECTION,"content-length":Lt.CONTENT_LENGTH,"proxy-connection":Lt.CONNECTION,"transfer-encoding":Lt.TRANSFER_ENCODING,upgrade:Lt.UPGRADE}});var Bo=c((Fb,Ga)=>{"use strict";var Mt=G(),{kBodyUsed:kr}=$(),Co=require("assert"),{InvalidArgumentError:X0}=Z(),K0=require("events"),j0=[300,301,302,303,307,308],Ya=Symbol("body"),ms=class{constructor(e){this[Ya]=e,this[kr]=!1}async*[Symbol.asyncIterator](){Co(!this[kr],"disturbed"),this[kr]=!0,yield*this[Ya]}},ao=class{constructor(e,t,r,s){if(t!=null&&(!Number.isInteger(t)||t<0))throw new X0("maxRedirections must be a positive number");Mt.validateHandler(s,r.method,r.upgrade),this.dispatch=e,this.location=null,this.abort=null,this.opts={...r,maxRedirections:0},this.maxRedirections=t,this.handler=s,this.history=[],Mt.isStream(this.opts.body)?(Mt.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){Co(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[kr]=!1,K0.prototype.on.call(this.opts.body,"data",function(){this[kr]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new ms(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&Mt.isIterable(this.opts.body)&&(this.opts.body=new ms(this.opts.body))}onConnect(e){this.abort=e,this.handler.onConnect(e,{history:this.history})}onUpgrade(e,t,r){this.handler.onUpgrade(e,t,r)}onError(e){this.handler.onError(e)}onHeaders(e,t,r,s){if(this.location=this.history.length>=this.maxRedirections||Mt.isDisturbed(this.opts.body)?null:z0(e,t),this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(e,t,r,s);let{origin:n,pathname:i,search:o}=Mt.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),g=o?`${i}${o}`:i;this.opts.headers=$0(this.opts.headers,e===303,this.opts.origin!==n),this.opts.path=g,this.opts.origin=n,this.opts.maxRedirections=0,this.opts.query=null,e===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(e){if(!this.location)return this.handler.onData(e)}onComplete(e){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(e)}onBodySent(e){this.handler.onBodySent&&this.handler.onBodySent(e)}};function z0(A,e){if(j0.indexOf(A)===-1)return null;for(let t=0;t<e.length;t+=2)if(e[t].toString().toLowerCase()==="location")return e[t+1]}function Ja(A,e,t){return A.length===4&&A.toString().toLowerCase()==="host"||e&&A.toString().toLowerCase().indexOf("content-")===0||t&&A.length===13&&A.toString().toLowerCase()==="authorization"||t&&A.length===6&&A.toString().toLowerCase()==="cookie"}function $0(A,e,t){let r=[];if(Array.isArray(A))for(let s=0;s<A.length;s+=2)Ja(A[s],e,t)||r.push(A[s],A[s+1]);else if(A&&typeof A=="object")for(let s of Object.keys(A))Ja(s,e,t)||r.push(s,A[s]);else Co(A==null,"headers must be an object or an array");return r}Ga.exports=ao});var bs=c((Nb,Ta)=>{"use strict";var Ay=Bo();function ey({maxRedirections:A}){return e=>function(r,s){let{maxRedirections:n=A}=r;if(!n)return e(r,s);let i=new Ay(e,n,r,s);return r={...r,maxRedirections:0},e(r,i)}}Ta.exports=ey});var Io=c((mb,va)=>{va.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwHLAcoBuAHJAbkByAG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAQDcAQtBACEQDMYBC0EOIRAMxQELQQ0hEAzEAQtBDyEQDMMBC0EQIRAMwgELQRMhEAzBAQtBFCEQDMABC0EVIRAMvwELQRYhEAy+AQtBFyEQDL0BC0EYIRAMvAELQRkhEAy7AQtBGiEQDLoBC0EbIRAMuQELQRwhEAy4AQtBCCEQDLcBC0EdIRAMtgELQSAhEAy1AQtBHyEQDLQBC0EHIRAMswELQSEhEAyyAQtBIiEQDLEBC0EeIRAMsAELQSMhEAyvAQtBEiEQDK4BC0ERIRAMrQELQSQhEAysAQtBJSEQDKsBC0EmIRAMqgELQSchEAypAQtBwwEhEAyoAQtBKSEQDKcBC0ErIRAMpgELQSwhEAylAQtBLSEQDKQBC0EuIRAMowELQS8hEAyiAQtBxAEhEAyhAQtBMCEQDKABC0E0IRAMnwELQQwhEAyeAQtBMSEQDJ0BC0EyIRAMnAELQTMhEAybAQtBOSEQDJoBC0E1IRAMmQELQcUBIRAMmAELQQshEAyXAQtBOiEQDJYBC0E2IRAMlQELQQohEAyUAQtBNyEQDJMBC0E4IRAMkgELQTwhEAyRAQtBOyEQDJABC0E9IRAMjwELQQkhEAyOAQtBKCEQDI0BC0E+IRAMjAELQT8hEAyLAQtBwAAhEAyKAQtBwQAhEAyJAQtBwgAhEAyIAQtBwwAhEAyHAQtBxAAhEAyGAQtBxQAhEAyFAQtBxgAhEAyEAQtBKiEQDIMBC0HHACEQDIIBC0HIACEQDIEBC0HJACEQDIABC0HKACEQDH8LQcsAIRAMfgtBzQAhEAx9C0HMACEQDHwLQc4AIRAMewtBzwAhEAx6C0HQACEQDHkLQdEAIRAMeAtB0gAhEAx3C0HTACEQDHYLQdQAIRAMdQtB1gAhEAx0C0HVACEQDHMLQQYhEAxyC0HXACEQDHELQQUhEAxwC0HYACEQDG8LQQQhEAxuC0HZACEQDG0LQdoAIRAMbAtB2wAhEAxrC0HcACEQDGoLQQMhEAxpC0HdACEQDGgLQd4AIRAMZwtB3wAhEAxmC0HhACEQDGULQeAAIRAMZAtB4gAhEAxjC0HjACEQDGILQQIhEAxhC0HkACEQDGALQeUAIRAMXwtB5gAhEAxeC0HnACEQDF0LQegAIRAMXAtB6QAhEAxbC0HqACEQDFoLQesAIRAMWQtB7AAhEAxYC0HtACEQDFcLQe4AIRAMVgtB7wAhEAxVC0HwACEQDFQLQfEAIRAMUwtB8gAhEAxSC0HzACEQDFELQfQAIRAMUAtB9QAhEAxPC0H2ACEQDE4LQfcAIRAMTQtB+AAhEAxMC0H5ACEQDEsLQfoAIRAMSgtB+wAhEAxJC0H8ACEQDEgLQf0AIRAMRwtB/gAhEAxGC0H/ACEQDEULQYABIRAMRAtBgQEhEAxDC0GCASEQDEILQYMBIRAMQQtBhAEhEAxAC0GFASEQDD8LQYYBIRAMPgtBhwEhEAw9C0GIASEQDDwLQYkBIRAMOwtBigEhEAw6C0GLASEQDDkLQYwBIRAMOAtBjQEhEAw3C0GOASEQDDYLQY8BIRAMNQtBkAEhEAw0C0GRASEQDDMLQZIBIRAMMgtBkwEhEAwxC0GUASEQDDALQZUBIRAMLwtBlgEhEAwuC0GXASEQDC0LQZgBIRAMLAtBmQEhEAwrC0GaASEQDCoLQZsBIRAMKQtBnAEhEAwoC0GdASEQDCcLQZ4BIRAMJgtBnwEhEAwlC0GgASEQDCQLQaEBIRAMIwtBogEhEAwiC0GjASEQDCELQaQBIRAMIAtBpQEhEAwfC0GmASEQDB4LQacBIRAMHQtBqAEhEAwcC0GpASEQDBsLQaoBIRAMGgtBqwEhEAwZC0GsASEQDBgLQa0BIRAMFwtBrgEhEAwWC0EBIRAMFQtBrwEhEAwUC0GwASEQDBMLQbEBIRAMEgtBswEhEAwRC0GyASEQDBALQbQBIRAMDwtBtQEhEAwOC0G2ASEQDA0LQbcBIRAMDAtBuAEhEAwLC0G5ASEQDAoLQboBIRAMCQtBuwEhEAwIC0HGASEQDAcLQbwBIRAMBgtBvQEhEAwFC0G+ASEQDAQLQb8BIRAMAwtBwAEhEAwCC0HCASEQDAELQcEBIRALA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="});var Va=c((bb,Ha)=>{Ha.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCrLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC0kBAXsgAEEQav0MAAAAAAAAAAAAAAAAAAAAACIB/QsDACAAIAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="});var Ur=c((Sb,iC)=>{"use strict";var y=require("assert"),Wa=require("net"),b=G(),co=uE(),ty=Fa(),ry=pr(),{RequestContentLengthMismatchError:tt,ResponseContentLengthMismatchError:sy,InvalidArgumentError:QA,RequestAbortedError:Oa,HeadersTimeoutError:ny,HeadersOverflowError:iy,SocketError:Ys,InformationalError:rt,BodyTimeoutError:oy,HTTPParserError:gy,ResponseExceededMaxSizeError:Qy,ClientDestroyedError:Ey}=Z(),ay=Rr(),{kUrl:zA,kReset:pA,kServerName:Ve,kClient:Ts,kBusy:lo,kParser:j,kConnect:Cy,kBlocking:Jt,kResuming:st,kRunning:sA,kPending:Gt,kSize:nt,kWriting:Le,kQueue:eA,kConnected:By,kConnecting:Yt,kNeedDrain:qe,kNoRef:Fr,kKeepAliveDefaultTimeout:uo,kHostHeader:Pa,kPendingIdx:$A,kRunningIdx:rA,kError:xA,kPipelining:We,kSocket:VA,kKeepAliveTimeoutValue:br,kMaxHeadersSize:Ls,kKeepAliveMaxTimeout:Za,kKeepAliveTimeoutThreshold:Xa,kHeadersTimeout:Ka,kBodyTimeout:ja,kStrictContentLength:Js,kConnector:Nr,kMaxRedirections:Iy,kMaxRequests:Sr,kCounter:za,kClose:cy,kDestroy:hy,kDispatch:ly,kInterceptors:uy,kLocalAddress:mr,kMaxResponseSize:$a}=$(),Ss=Buffer[Symbol.species],xe=Symbol("kClosedResolve"),dA={};try{let A=require("diagnostics_channel");dA.sendHeaders=A.channel("undici:client:sendHeaders"),dA.beforeConnect=A.channel("undici:client:beforeConnect"),dA.connectError=A.channel("undici:client:connectError"),dA.connected=A.channel("undici:client:connected")}catch{dA.sendHeaders={hasSubscribers:!1},dA.beforeConnect={hasSubscribers:!1},dA.connectError={hasSubscribers:!1},dA.connected={hasSubscribers:!1}}var fo=class extends ry{constructor(e,{interceptors:t,maxHeaderSize:r,headersTimeout:s,socketTimeout:n,requestTimeout:i,connectTimeout:o,bodyTimeout:g,idleTimeout:a,keepAlive:Q,keepAliveTimeout:E,maxKeepAliveTimeout:C,keepAliveMaxTimeout:B,keepAliveTimeoutThreshold:I,socketPath:h,pipelining:l,tls:u,strictContentLength:F,maxCachedSessions:w,maxRedirections:k,connect:T,maxRequestsPerClient:O,localAddress:V,maxResponseSize:K,autoSelectFamily:uA,autoSelectFamilyAttemptTimeout:IA}={}){if(super(),Q!==void 0)throw new QA("unsupported keepAlive, use pipelining=0 instead");if(n!==void 0)throw new QA("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(i!==void 0)throw new QA("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(a!==void 0)throw new QA("unsupported idleTimeout, use keepAliveTimeout instead");if(C!==void 0)throw new QA("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(r!=null&&!Number.isFinite(r))throw new QA("invalid maxHeaderSize");if(h!=null&&typeof h!="string")throw new QA("invalid socketPath");if(o!=null&&(!Number.isFinite(o)||o<0))throw new QA("invalid connectTimeout");if(E!=null&&(!Number.isFinite(E)||E<=0))throw new QA("invalid keepAliveTimeout");if(B!=null&&(!Number.isFinite(B)||B<=0))throw new QA("invalid keepAliveMaxTimeout");if(I!=null&&!Number.isFinite(I))throw new QA("invalid keepAliveTimeoutThreshold");if(s!=null&&(!Number.isInteger(s)||s<0))throw new QA("headersTimeout must be a positive integer or zero");if(g!=null&&(!Number.isInteger(g)||g<0))throw new QA("bodyTimeout must be a positive integer or zero");if(T!=null&&typeof T!="function"&&typeof T!="object")throw new QA("connect must be a function or an object");if(k!=null&&(!Number.isInteger(k)||k<0))throw new QA("maxRedirections must be a positive number");if(O!=null&&(!Number.isInteger(O)||O<0))throw new QA("maxRequestsPerClient must be a positive number");if(V!=null&&(typeof V!="string"||Wa.isIP(V)===0))throw new QA("localAddress must be valid string IP address");if(K!=null&&(!Number.isInteger(K)||K<-1))throw new QA("maxResponseSize must be a positive number");if(IA!=null&&(!Number.isInteger(IA)||IA<-1))throw new QA("autoSelectFamilyAttemptTimeout must be a positive number");typeof T!="function"&&(T=ay({...u,maxCachedSessions:w,socketPath:h,timeout:o,...b.nodeHasAutoSelectFamily&&uA?{autoSelectFamily:uA,autoSelectFamilyAttemptTimeout:IA}:void 0,...T})),this[uy]=t&&t.Client&&Array.isArray(t.Client)?t.Client:[fy({maxRedirections:k})],this[zA]=b.parseOrigin(e),this[Nr]=T,this[VA]=null,this[We]=l??1,this[Ls]=r||16384,this[uo]=E??4e3,this[Za]=B??6e5,this[Xa]=I??1e3,this[br]=this[uo],this[Ve]=null,this[mr]=V??null,this[st]=0,this[qe]=0,this[Pa]=`host: ${this[zA].hostname}${this[zA].port?`:${this[zA].port}`:""}\r -`,this[ja]=g??3e5,this[Ka]=s??3e5,this[Js]=F??!0,this[Iy]=k,this[Sr]=O,this[xe]=null,this[$a]=K>-1?K:-1,this[eA]=[],this[rA]=0,this[$A]=0}get pipelining(){return this[We]}set pipelining(e){this[We]=e,Ae(this,!0)}get[Gt](){return this[eA].length-this[$A]}get[sA](){return this[$A]-this[rA]}get[nt](){return this[eA].length-this[rA]}get[By](){return!!this[VA]&&!this[Yt]&&!this[VA].destroyed}get[lo](){let e=this[VA];return e&&(e[pA]||e[Le]||e[Jt])||this[nt]>=(this[We]||1)||this[Gt]>0}[Cy](e){nC(this),this.once("connect",e)}[ly](e,t){let r=e.origin||this[zA].origin,s=new ty(r,e,t);return this[eA].push(s),this[st]||(b.bodyLength(s.body)==null&&b.isIterable(s.body)?(this[st]=1,process.nextTick(Ae,this)):Ae(this,!0)),this[st]&&this[qe]!==2&&this[lo]&&(this[qe]=2),this[qe]<2}async[cy](){return new Promise(e=>{this[nt]?this[xe]=e:e(null)})}async[hy](e){return new Promise(t=>{let r=this[eA].splice(this[$A]);for(let n=0;n<r.length;n++){let i=r[n];de(this,i,e)}let s=()=>{this[xe]&&(this[xe](),this[xe]=null),t()};this[VA]?b.destroy(this[VA].on("close",s),e):queueMicrotask(s),Ae(this)})}},le=Ma(),fy=bs(),dy=Buffer.alloc(0);async function yy(){let A=process.env.JEST_WORKER_ID?Io():void 0,e;try{e=await WebAssembly.compile(Buffer.from(Va(),"base64"))}catch{e=await WebAssembly.compile(Buffer.from(A||Io(),"base64"))}return await WebAssembly.instantiate(e,{env:{wasm_on_url:(t,r,s)=>0,wasm_on_status:(t,r,s)=>{y.strictEqual(EA.ptr,t);let n=r-fe+ue.byteOffset;return EA.onStatus(new Ss(ue.buffer,n,s))||0},wasm_on_message_begin:t=>(y.strictEqual(EA.ptr,t),EA.onMessageBegin()||0),wasm_on_header_field:(t,r,s)=>{y.strictEqual(EA.ptr,t);let n=r-fe+ue.byteOffset;return EA.onHeaderField(new Ss(ue.buffer,n,s))||0},wasm_on_header_value:(t,r,s)=>{y.strictEqual(EA.ptr,t);let n=r-fe+ue.byteOffset;return EA.onHeaderValue(new Ss(ue.buffer,n,s))||0},wasm_on_headers_complete:(t,r,s,n)=>(y.strictEqual(EA.ptr,t),EA.onHeadersComplete(r,!!s,!!n)||0),wasm_on_body:(t,r,s)=>{y.strictEqual(EA.ptr,t);let n=r-fe+ue.byteOffset;return EA.onBody(new Ss(ue.buffer,n,s))||0},wasm_on_message_complete:t=>(y.strictEqual(EA.ptr,t),EA.onMessageComplete()||0)}})}var ho=null,yo=yy();yo.catch();var EA=null,ue=null,Us=0,fe=null,Tt=1,Ms=2,wo=3,Do=class{constructor(e,t,{exports:r}){y(Number.isFinite(e[Ls])&&e[Ls]>0),this.llhttp=r,this.ptr=this.llhttp.llhttp_alloc(le.TYPE.RESPONSE),this.client=e,this.socket=t,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=e[Ls],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=e[$a]}setTimeout(e,t){this.timeoutType=t,e!==this.timeoutValue?(co.clearTimeout(this.timeout),e?(this.timeout=co.setTimeout(wy,e,this),this.timeout.unref&&this.timeout.unref()):this.timeout=null,this.timeoutValue=e):this.timeout&&this.timeout.refresh&&this.timeout.refresh()}resume(){this.socket.destroyed||!this.paused||(y(this.ptr!=null),y(EA==null),this.llhttp.llhttp_resume(this.ptr),y(this.timeoutType===Ms),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||dy),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let e=this.socket.read();if(e===null)break;this.execute(e)}}execute(e){y(this.ptr!=null),y(EA==null),y(!this.paused);let{socket:t,llhttp:r}=this;e.length>Us&&(fe&&r.free(fe),Us=Math.ceil(e.length/4096)*4096,fe=r.malloc(Us)),new Uint8Array(r.memory.buffer,fe,Us).set(e);try{let s;try{ue=e,EA=this,s=r.llhttp_execute(this.ptr,fe,e.length)}catch(i){throw i}finally{EA=null,ue=null}let n=r.llhttp_get_error_pos(this.ptr)-fe;if(s===le.ERROR.PAUSED_UPGRADE)this.onUpgrade(e.slice(n));else if(s===le.ERROR.PAUSED)this.paused=!0,t.unshift(e.slice(n));else if(s!==le.ERROR.OK){let i=r.llhttp_get_error_reason(this.ptr),o="";if(i){let g=new Uint8Array(r.memory.buffer,i).indexOf(0);o="Response does not match the HTTP/1.1 protocol ("+Buffer.from(r.memory.buffer,i,g).toString()+")"}throw new gy(o,le.ERROR[s],e.slice(n))}}catch(s){b.destroy(t,s)}}destroy(){y(this.ptr!=null),y(EA==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,co.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(e){this.statusText=e.toString()}onMessageBegin(){let{socket:e,client:t}=this;if(e.destroyed||!t[eA][t[rA]])return-1}onHeaderField(e){let t=this.headers.length;(t&1)===0?this.headers.push(e):this.headers[t-1]=Buffer.concat([this.headers[t-1],e]),this.trackHeader(e.length)}onHeaderValue(e){let t=this.headers.length;(t&1)===1?(this.headers.push(e),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],e]);let r=this.headers[t-2];r.length===10&&r.toString().toLowerCase()==="keep-alive"?this.keepAlive+=e.toString():r.length===10&&r.toString().toLowerCase()==="connection"?this.connection+=e.toString():r.length===14&&r.toString().toLowerCase()==="content-length"&&(this.contentLength+=e.toString()),this.trackHeader(e.length)}trackHeader(e){this.headersSize+=e,this.headersSize>=this.headersMaxSize&&b.destroy(this.socket,new iy)}onUpgrade(e){let{upgrade:t,client:r,socket:s,headers:n,statusCode:i}=this;y(t);let o=r[eA][r[rA]];y(o),y(!s.destroyed),y(s===r[VA]),y(!this.paused),y(o.upgrade||o.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,y(this.headers.length%2===0),this.headers=[],this.headersSize=0,s.unshift(e),s[j].destroy(),s[j]=null,s[Ts]=null,s[xA]=null,s.removeListener("error",eC).removeListener("readable",AC).removeListener("end",rC).removeListener("close",sC),r[VA]=null,r[eA][r[rA]++]=null,r.emit("disconnect",r[zA],[r],new rt("upgrade"));try{o.onUpgrade(i,n,s)}catch(g){b.destroy(s,g)}Ae(r)}onHeadersComplete(e,t,r){let{client:s,socket:n,headers:i,statusText:o}=this;if(n.destroyed)return-1;let g=s[eA][s[rA]];if(!g)return-1;if(y(!this.upgrade),y(this.statusCode<200),e===100)return b.destroy(n,new Ys("bad response",b.getSocketInfo(n))),-1;if(t&&!g.upgrade)return b.destroy(n,new Ys("bad upgrade",b.getSocketInfo(n))),-1;if(y.strictEqual(this.timeoutType,Tt),this.statusCode=e,this.shouldKeepAlive=r||g.method==="HEAD"&&!n[pA]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let Q=g.bodyTimeout!=null?g.bodyTimeout:s[ja];this.setTimeout(Q,Ms)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(g.method==="CONNECT")return y(s[sA]===1),this.upgrade=!0,2;if(t)return y(s[sA]===1),this.upgrade=!0,2;if(y(this.headers.length%2===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&s[We]){let Q=this.keepAlive?b.parseKeepAliveTimeout(this.keepAlive):null;if(Q!=null){let E=Math.min(Q-s[Xa],s[Za]);E<=0?n[pA]=!0:s[br]=E}else s[br]=s[uo]}else n[pA]=!0;let a;try{a=g.onHeaders(e,i,this.resume,o)===!1}catch(Q){return b.destroy(n,Q),-1}return g.method==="HEAD"||e<200?1:(n[Jt]&&(n[Jt]=!1,Ae(s)),a?le.ERROR.PAUSED:0)}onBody(e){let{client:t,socket:r,statusCode:s,maxResponseSize:n}=this;if(r.destroyed)return-1;let i=t[eA][t[rA]];if(y(i),y.strictEqual(this.timeoutType,Ms),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),y(s>=200),n>-1&&this.bytesRead+e.length>n)return b.destroy(r,new Qy),-1;this.bytesRead+=e.length;try{if(i.onData(e)===!1)return le.ERROR.PAUSED}catch(o){return b.destroy(r,o),-1}}onMessageComplete(){let{client:e,socket:t,statusCode:r,upgrade:s,headers:n,contentLength:i,bytesRead:o,shouldKeepAlive:g}=this;if(t.destroyed&&(!r||g))return-1;if(s)return;let a=e[eA][e[rA]];if(y(a),y(r>=100),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",y(this.headers.length%2===0),this.headers=[],this.headersSize=0,!(r<200)){if(a.method!=="HEAD"&&i&&o!==parseInt(i,10))return b.destroy(t,new sy),-1;try{a.onComplete(n)}catch(Q){de(e,a,Q)}if(e[eA][e[rA]++]=null,t[Le])return y.strictEqual(e[sA],0),b.destroy(t,new rt("reset")),le.ERROR.PAUSED;if(g){if(t[pA]&&e[sA]===0)return b.destroy(t,new rt("reset")),le.ERROR.PAUSED;e[We]===1?setImmediate(Ae,e):Ae(e)}else return b.destroy(t,new rt("reset")),le.ERROR.PAUSED}}};function wy(A){let{socket:e,timeoutType:t,client:r}=A;t===Tt?(!e[Le]||e.writableNeedDrain||r[sA]>1)&&(y(!A.paused,"cannot be paused while waiting for headers"),b.destroy(e,new ny)):t===Ms?A.paused||b.destroy(e,new oy):t===wo&&(y(r[sA]===0&&r[br]),b.destroy(e,new rt("socket idle timeout")))}function AC(){let{[j]:A}=this;A.readMore()}function eC(A){let{[j]:e}=this;if(y(A.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),A.code==="ECONNRESET"&&e.statusCode&&!e.shouldKeepAlive){e.onMessageComplete();return}this[xA]=A,tC(this[Ts],A)}function tC(A,e){if(A[sA]===0&&e.code!=="UND_ERR_INFO"&&e.code!=="UND_ERR_SOCKET"){y(A[$A]===A[rA]);let t=A[eA].splice(A[rA]);for(let r=0;r<t.length;r++){let s=t[r];de(A,s,e)}y(A[nt]===0)}}function rC(){let{[j]:A}=this;if(A.statusCode&&!A.shouldKeepAlive){A.onMessageComplete();return}b.destroy(this,new Ys("other side closed",b.getSocketInfo(this)))}function sC(){let{[Ts]:A}=this;!this[xA]&&this[j].statusCode&&!this[j].shouldKeepAlive&&this[j].onMessageComplete(),this[j].destroy(),this[j]=null;let e=this[xA]||new Ys("closed",b.getSocketInfo(this));if(A[VA]=null,A.destroyed){y(A[Gt]===0);let t=A[eA].splice(A[rA]);for(let r=0;r<t.length;r++){let s=t[r];de(A,s,e)}}else if(A[sA]>0&&e.code!=="UND_ERR_INFO"){let t=A[eA][A[rA]];A[eA][A[rA]++]=null,de(A,t,e)}A[$A]=A[rA],y(A[sA]===0),A.emit("disconnect",A[zA],[A],e),Ae(A)}async function nC(A){y(!A[Yt]),y(!A[VA]);let{host:e,hostname:t,protocol:r,port:s}=A[zA];if(t[0]==="["){let n=t.indexOf("]");y(n!==-1);let i=t.substr(1,n-1);y(Wa.isIP(i)),t=i}A[Yt]=!0,dA.beforeConnect.hasSubscribers&&dA.beforeConnect.publish({connectParams:{host:e,hostname:t,protocol:r,port:s,servername:A[Ve],localAddress:A[mr]},connector:A[Nr]});try{let n=await new Promise((i,o)=>{A[Nr]({host:e,hostname:t,protocol:r,port:s,servername:A[Ve],localAddress:A[mr]},(g,a)=>{g?o(g):i(a)})});if(A.destroyed){b.destroy(n.on("error",()=>{}),new Ey);return}ho||(ho=await yo,yo=null),A[Yt]=!1,y(n),n[Fr]=!1,n[Le]=!1,n[pA]=!1,n[Jt]=!1,n[xA]=null,n[j]=new Do(A,n,ho),n[Ts]=A,n[za]=0,n[Sr]=A[Sr],n.on("error",eC).on("readable",AC).on("end",rC).on("close",sC),A[VA]=n,dA.connected.hasSubscribers&&dA.connected.publish({connectParams:{host:e,hostname:t,protocol:r,port:s,servername:A[Ve],localAddress:A[mr]},connector:A[Nr],socket:n}),A.emit("connect",A[zA],[A])}catch(n){if(A.destroyed)return;if(A[Yt]=!1,dA.connectError.hasSubscribers&&dA.connectError.publish({connectParams:{host:e,hostname:t,protocol:r,port:s,servername:A[Ve],localAddress:A[mr]},connector:A[Nr],error:n}),n.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(y(A[sA]===0);A[Gt]>0&&A[eA][A[$A]].servername===A[Ve];){let i=A[eA][A[$A]++];de(A,i,n)}else tC(A,n);A.emit("connectionError",A[zA],[A],n)}Ae(A)}function xa(A){A[qe]=0,A.emit("drain",A[zA],[A])}function Ae(A,e){A[st]!==2&&(A[st]=2,Dy(A,e),A[st]=0,A[rA]>256&&(A[eA].splice(0,A[rA]),A[$A]-=A[rA],A[rA]=0))}function Dy(A,e){for(;;){if(A.destroyed){y(A[Gt]===0);return}if(A[xe]&&!A[nt]){A[xe](),A[xe]=null;return}let t=A[VA];if(t&&!t.destroyed){if(A[nt]===0?!t[Fr]&&t.unref&&(t.unref(),t[Fr]=!0):t[Fr]&&t.ref&&(t.ref(),t[Fr]=!1),A[nt]===0)t[j].timeoutType!==wo&&t[j].setTimeout(A[br],wo);else if(A[sA]>0&&t[j].statusCode<200&&t[j].timeoutType!==Tt){let s=A[eA][A[rA]],n=s.headersTimeout!=null?s.headersTimeout:A[Ka];t[j].setTimeout(n,Tt)}}if(A[lo])A[qe]=2;else if(A[qe]===2){e?(A[qe]=1,process.nextTick(xa,A)):xa(A);continue}if(A[Gt]===0||A[sA]>=(A[We]||1))return;let r=A[eA][A[$A]];if(A[zA].protocol==="https:"&&A[Ve]!==r.servername){if(A[sA]>0)return;if(A[Ve]=r.servername,t&&t.servername!==r.servername){b.destroy(t,new rt("servername changed"));return}}if(A[Yt])return;if(!t){nC(A);return}if(t.destroyed||t[Le]||t[pA]||t[Jt]||A[sA]>0&&!r.idempotent||A[sA]>0&&(r.upgrade||r.method==="CONNECT")||(b.isStream(r.body)&&b.bodyLength(r.body)===0&&(r.body.on("data",function(){y(!1)}).on("error",function(s){de(A,r,s)}).on("end",function(){b.destroy(this)}),r.body=null),A[sA]>0&&(b.isStream(r.body)||b.isAsyncIterable(r.body))))return;!r.aborted&&py(A,r)?A[$A]++:A[eA].splice(A[$A],1)}}function py(A,e){let{body:t,method:r,path:s,host:n,upgrade:i,headers:o,blocking:g,reset:a}=e,Q=r==="PUT"||r==="POST"||r==="PATCH";t&&typeof t.read=="function"&&t.read(0);let E=b.bodyLength(t);if(E===null&&(E=e.contentLength),E===0&&!Q&&(E=null),e.contentLength!==null&&e.contentLength!==E){if(A[Js])return de(A,e,new tt),!1;process.emitWarning(new tt)}let C=A[VA];try{e.onConnect(I=>{e.aborted||e.completed||(de(A,e,I||new Oa),b.destroy(C,new rt("aborted")))})}catch(I){de(A,e,I)}if(e.aborted)return!1;r==="HEAD"&&(C[pA]=!0),(i||r==="CONNECT")&&(C[pA]=!0),a!=null&&(C[pA]=a),A[Sr]&&C[za]++>=A[Sr]&&(C[pA]=!0),g&&(C[Jt]=!0);let B=`${r} ${s} HTTP/1.1\r -`;return typeof n=="string"?B+=`host: ${n}\r -`:B+=A[Pa],i?B+=`connection: upgrade\r -upgrade: ${i}\r -`:A[We]&&!C[pA]?B+=`connection: keep-alive\r -`:B+=`connection: close\r -`,o&&(B+=o),dA.sendHeaders.hasSubscribers&&dA.sendHeaders.publish({request:e,headers:B,socket:C}),t?b.isBuffer(t)?(y(E===t.byteLength,"buffer body must have content length"),C.cork(),C.write(`${B}content-length: ${E}\r -\r -`,"latin1"),C.write(t),C.uncork(),e.onBodySent(t),e.onRequestSent(),Q||(C[pA]=!0)):b.isBlobLike(t)?typeof t.stream=="function"?qa({body:t.stream(),client:A,request:e,socket:C,contentLength:E,header:B,expectsPayload:Q}):ky({body:t,client:A,request:e,socket:C,contentLength:E,header:B,expectsPayload:Q}):b.isStream(t)?Ry({body:t,client:A,request:e,socket:C,contentLength:E,header:B,expectsPayload:Q}):b.isIterable(t)?qa({body:t,client:A,request:e,socket:C,contentLength:E,header:B,expectsPayload:Q}):y(!1):(E===0?C.write(`${B}content-length: 0\r -\r -`,"latin1"):(y(E===null,"no body must not have content length"),C.write(`${B}\r -`,"latin1")),e.onRequestSent()),!0}function Ry({body:A,client:e,request:t,socket:r,contentLength:s,header:n,expectsPayload:i}){y(s!==0||e[sA]===0,"stream body cannot be pipelined");let o=!1,g=new Gs({socket:r,request:t,contentLength:s,client:e,expectsPayload:i,header:n}),a=function(B){if(!o)try{!g.write(B)&&this.pause&&this.pause()}catch(I){b.destroy(this,I)}},Q=function(){o||A.resume&&A.resume()},E=function(){C(new Oa)},C=function(B){if(!o){if(o=!0,y(r.destroyed||r[Le]&&e[sA]<=1),r.off("drain",Q).off("error",C),A.removeListener("data",a).removeListener("end",C).removeListener("error",C).removeListener("close",E),!B)try{g.end()}catch(I){B=I}g.destroy(B),B&&(B.code!=="UND_ERR_INFO"||B.message!=="reset")?b.destroy(A,B):b.destroy(A)}};A.on("data",a).on("end",C).on("error",C).on("close",E),A.resume&&A.resume(),r.on("drain",Q).on("error",C)}async function ky({body:A,client:e,request:t,socket:r,contentLength:s,header:n,expectsPayload:i}){y(s===A.size,"blob body must have content length");try{if(s!=null&&s!==A.size)throw new tt;let o=Buffer.from(await A.arrayBuffer());r.cork(),r.write(`${n}content-length: ${s}\r -\r -`,"latin1"),r.write(o),r.uncork(),t.onBodySent(o),t.onRequestSent(),i||(r[pA]=!0),Ae(e)}catch(o){b.destroy(r,o)}}async function qa({body:A,client:e,request:t,socket:r,contentLength:s,header:n,expectsPayload:i}){y(s!==0||e[sA]===0,"iterator body cannot be pipelined");let o=null;function g(){if(o){let E=o;o=null,E()}}let a=()=>new Promise((E,C)=>{y(o===null),r[xA]?C(r[xA]):o=E});r.on("close",g).on("drain",g);let Q=new Gs({socket:r,request:t,contentLength:s,client:e,expectsPayload:i,header:n});try{for await(let E of A){if(r[xA])throw r[xA];Q.write(E)||await a()}Q.end()}catch(E){Q.destroy(E)}finally{r.off("close",g).off("drain",g)}}var Gs=class{constructor({socket:e,request:t,contentLength:r,client:s,expectsPayload:n,header:i}){this.socket=e,this.request=t,this.contentLength=r,this.client=s,this.bytesWritten=0,this.expectsPayload=n,this.header=i,e[Le]=!0}write(e){let{socket:t,request:r,contentLength:s,client:n,bytesWritten:i,expectsPayload:o,header:g}=this;if(t[xA])throw t[xA];if(t.destroyed)return!1;let a=Buffer.byteLength(e);if(!a)return!0;if(s!==null&&i+a>s){if(n[Js])throw new tt;process.emitWarning(new tt)}t.cork(),i===0&&(o||(t[pA]=!0),s===null?t.write(`${g}transfer-encoding: chunked\r -`,"latin1"):t.write(`${g}content-length: ${s}\r -\r -`,"latin1")),s===null&&t.write(`\r -${a.toString(16)}\r -`,"latin1"),this.bytesWritten+=a;let Q=t.write(e);return t.uncork(),r.onBodySent(e),Q||t[j].timeout&&t[j].timeoutType===Tt&&t[j].timeout.refresh&&t[j].timeout.refresh(),Q}end(){let{socket:e,contentLength:t,client:r,bytesWritten:s,expectsPayload:n,header:i,request:o}=this;if(o.onRequestSent(),e[Le]=!1,e[xA])throw e[xA];if(!e.destroyed){if(s===0?n?e.write(`${i}content-length: 0\r -\r -`,"latin1"):e.write(`${i}\r -`,"latin1"):t===null&&e.write(`\r -0\r -\r -`,"latin1"),t!==null&&s!==t){if(r[Js])throw new tt;process.emitWarning(new tt)}e[j].timeout&&e[j].timeoutType===Tt&&e[j].timeout.refresh&&e[j].timeout.refresh(),Ae(r)}}destroy(e){let{socket:t,client:r}=this;t[Le]=!1,e&&(y(r[sA]<=1,"pipeline should only contain this request"),b.destroy(t,e))}};function de(A,e,t){try{e.onError(t),y(e.aborted)}catch(r){A.emit("error",r)}}iC.exports=fo});var gC=c((Lb,oC)=>{"use strict";var vs=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(e){this.list[this.top]=e,this.top=this.top+1&2047}shift(){let e=this.list[this.bottom];return e===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,e)}};oC.exports=class{constructor(){this.head=this.tail=new vs}isEmpty(){return this.head.isEmpty()}push(e){this.head.isFull()&&(this.head=this.head.next=new vs),this.head.push(e)}shift(){let e=this.tail,t=e.shift();return e.isEmpty()&&e.next!==null&&(this.tail=e.next),t}}});var EC=c((Mb,QC)=>{var{kFree:Fy,kConnected:Ny,kPending:my,kQueued:by,kRunning:Sy,kSize:Uy}=$(),it=Symbol("pool"),po=class{constructor(e){this[it]=e}get connected(){return this[it][Ny]}get free(){return this[it][Fy]}get pending(){return this[it][my]}get queued(){return this[it][by]}get running(){return this[it][Sy]}get size(){return this[it][Uy]}};QC.exports=po});var bo=c((Yb,dC)=>{"use strict";var Ly=pr(),My=gC(),{kConnected:Ro,kSize:aC,kRunning:CC,kPending:BC,kQueued:Lr,kBusy:Yy,kFree:Jy,kUrl:Gy,kClose:Ty,kDestroy:vy,kDispatch:Hy}=$(),Vy=EC(),bA=Symbol("clients"),RA=Symbol("needDrain"),Mr=Symbol("queue"),ko=Symbol("closed resolve"),Fo=Symbol("onDrain"),IC=Symbol("onConnect"),cC=Symbol("onDisconnect"),hC=Symbol("onConnectionError"),No=Symbol("get dispatcher"),uC=Symbol("add client"),fC=Symbol("remove client"),lC=Symbol("stats"),mo=class extends Ly{constructor(){super(),this[Mr]=new My,this[bA]=[],this[Lr]=0;let e=this;this[Fo]=function(r,s){let n=e[Mr],i=!1;for(;!i;){let o=n.shift();if(!o)break;e[Lr]--,i=!this.dispatch(o.opts,o.handler)}this[RA]=i,!this[RA]&&e[RA]&&(e[RA]=!1,e.emit("drain",r,[e,...s])),e[ko]&&n.isEmpty()&&Promise.all(e[bA].map(o=>o.close())).then(e[ko])},this[IC]=(t,r)=>{e.emit("connect",t,[e,...r])},this[cC]=(t,r,s)=>{e.emit("disconnect",t,[e,...r],s)},this[hC]=(t,r,s)=>{e.emit("connectionError",t,[e,...r],s)},this[lC]=new Vy(this)}get[Yy](){return this[RA]}get[Ro](){return this[bA].filter(e=>e[Ro]).length}get[Jy](){return this[bA].filter(e=>e[Ro]&&!e[RA]).length}get[BC](){let e=this[Lr];for(let{[BC]:t}of this[bA])e+=t;return e}get[CC](){let e=0;for(let{[CC]:t}of this[bA])e+=t;return e}get[aC](){let e=this[Lr];for(let{[aC]:t}of this[bA])e+=t;return e}get stats(){return this[lC]}async[Ty](){return this[Mr].isEmpty()?Promise.all(this[bA].map(e=>e.close())):new Promise(e=>{this[ko]=e})}async[vy](e){for(;;){let t=this[Mr].shift();if(!t)break;t.handler.onError(e)}return Promise.all(this[bA].map(t=>t.destroy(e)))}[Hy](e,t){let r=this[No]();return r?r.dispatch(e,t)||(r[RA]=!0,this[RA]=!this[No]()):(this[RA]=!0,this[Mr].push({opts:e,handler:t}),this[Lr]++),!this[RA]}[uC](e){return e.on("drain",this[Fo]).on("connect",this[IC]).on("disconnect",this[cC]).on("connectionError",this[hC]),this[bA].push(e),this[RA]&&process.nextTick(()=>{this[RA]&&this[Fo](e[Gy],[this,e])}),this}[fC](e){e.close(()=>{let t=this[bA].indexOf(e);t!==-1&&this[bA].splice(t,1)}),this[RA]=this[bA].some(t=>!t[RA]&&t.closed!==!0&&t.destroyed!==!0)}};dC.exports={PoolBase:mo,kClients:bA,kNeedDrain:RA,kAddClient:uC,kRemoveClient:fC,kGetDispatcher:No}});var vt=c((Jb,pC)=>{"use strict";var{PoolBase:xy,kClients:yC,kNeedDrain:qy,kAddClient:Wy,kGetDispatcher:Oy}=bo(),Py=Ur(),{InvalidArgumentError:So}=Z(),Uo=G(),{kUrl:wC,kInterceptors:_y}=$(),Zy=Rr(),Lo=Symbol("options"),Mo=Symbol("connections"),DC=Symbol("factory");function Xy(A,e){return new Py(A,e)}var Yo=class extends xy{constructor(e,{connections:t,factory:r=Xy,connect:s,connectTimeout:n,tls:i,maxCachedSessions:o,socketPath:g,autoSelectFamily:a,autoSelectFamilyAttemptTimeout:Q,...E}={}){if(super(),t!=null&&(!Number.isFinite(t)||t<0))throw new So("invalid connections");if(typeof r!="function")throw new So("factory must be a function.");if(s!=null&&typeof s!="function"&&typeof s!="object")throw new So("connect must be a function or an object");typeof s!="function"&&(s=Zy({...i,maxCachedSessions:o,socketPath:g,timeout:n??1e4,...Uo.nodeHasAutoSelectFamily&&a?{autoSelectFamily:a,autoSelectFamilyAttemptTimeout:Q}:void 0,...s})),this[_y]=E.interceptors&&E.interceptors.Pool&&Array.isArray(E.interceptors.Pool)?E.interceptors.Pool:[],this[Mo]=t||null,this[wC]=Uo.parseOrigin(e),this[Lo]={...Uo.deepClone(E),connect:s},this[Lo].interceptors=E.interceptors?{...E.interceptors}:void 0,this[DC]=r}[Oy](){let e=this[yC].find(t=>!t[qy]);return e||((!this[Mo]||this[yC].length<this[Mo])&&(e=this[DC](this[wC],this[Lo]),this[Wy](e)),e)}};pC.exports=Yo});var bC=c((Gb,mC)=>{"use strict";var{BalancedPoolMissingUpstreamError:Ky,InvalidArgumentError:jy}=Z(),{PoolBase:zy,kClients:kA,kNeedDrain:Yr,kAddClient:$y,kRemoveClient:Aw,kGetDispatcher:ew}=bo(),tw=vt(),{kUrl:Jo,kInterceptors:rw}=$(),{parseOrigin:RC}=G(),kC=Symbol("factory"),Hs=Symbol("options"),FC=Symbol("kGreatestCommonDivisor"),ot=Symbol("kCurrentWeight"),gt=Symbol("kIndex"),ee=Symbol("kWeight"),Vs=Symbol("kMaxWeightPerServer"),xs=Symbol("kErrorPenalty");function NC(A,e){return e===0?A:NC(e,A%e)}function sw(A,e){return new tw(A,e)}var Go=class extends zy{constructor(e=[],{factory:t=sw,...r}={}){if(super(),this[Hs]=r,this[gt]=-1,this[ot]=0,this[Vs]=this[Hs].maxWeightPerServer||100,this[xs]=this[Hs].errorPenalty||15,Array.isArray(e)||(e=[e]),typeof t!="function")throw new jy("factory must be a function.");this[rw]=r.interceptors&&r.interceptors.BalancedPool&&Array.isArray(r.interceptors.BalancedPool)?r.interceptors.BalancedPool:[],this[kC]=t;for(let s of e)this.addUpstream(s);this._updateBalancedPoolStats()}addUpstream(e){let t=RC(e).origin;if(this[kA].find(s=>s[Jo].origin===t&&s.closed!==!0&&s.destroyed!==!0))return this;let r=this[kC](t,Object.assign({},this[Hs]));this[$y](r),r.on("connect",()=>{r[ee]=Math.min(this[Vs],r[ee]+this[xs])}),r.on("connectionError",()=>{r[ee]=Math.max(1,r[ee]-this[xs]),this._updateBalancedPoolStats()}),r.on("disconnect",(...s)=>{let n=s[2];n&&n.code==="UND_ERR_SOCKET"&&(r[ee]=Math.max(1,r[ee]-this[xs]),this._updateBalancedPoolStats())});for(let s of this[kA])s[ee]=this[Vs];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){this[FC]=this[kA].map(e=>e[ee]).reduce(NC,0)}removeUpstream(e){let t=RC(e).origin,r=this[kA].find(s=>s[Jo].origin===t&&s.closed!==!0&&s.destroyed!==!0);return r&&this[Aw](r),this}get upstreams(){return this[kA].filter(e=>e.closed!==!0&&e.destroyed!==!0).map(e=>e[Jo].origin)}[ew](){if(this[kA].length===0)throw new Ky;if(!this[kA].find(n=>!n[Yr]&&n.closed!==!0&&n.destroyed!==!0)||this[kA].map(n=>n[Yr]).reduce((n,i)=>n&&i,!0))return;let r=0,s=this[kA].findIndex(n=>!n[Yr]);for(;r++<this[kA].length;){this[gt]=(this[gt]+1)%this[kA].length;let n=this[kA][this[gt]];if(n[ee]>this[kA][s][ee]&&!n[Yr]&&(s=this[gt]),this[gt]===0&&(this[ot]=this[ot]-this[FC],this[ot]<=0&&(this[ot]=this[Vs])),n[ee]>=this[ot]&&!n[Yr])return n}return this[ot]=this[kA][s][ee],this[gt]=s,this[kA][s]}};mC.exports=Go});var Ho=c((Tb,LC)=>{"use strict";var{kConnected:SC,kSize:UC}=$(),To=class{constructor(e){this.value=e}deref(){return this.value[SC]===0&&this.value[UC]===0?void 0:this.value}},vo=class{constructor(e){this.finalizer=e}register(e,t){e.on("disconnect",()=>{e[SC]===0&&e[UC]===0&&this.finalizer(t)})}};LC.exports=function(){return{WeakRef:global.WeakRef||To,FinalizationRegistry:global.FinalizationRegistry||vo}}});var Jr=c((vb,VC)=>{"use strict";var{InvalidArgumentError:qs}=Z(),{kClients:Oe,kRunning:MC,kClose:nw,kDestroy:iw,kDispatch:ow,kInterceptors:gw}=$(),Qw=pr(),Ew=vt(),aw=Ur(),Cw=G(),Bw=bs(),{WeakRef:Iw,FinalizationRegistry:cw}=Ho()(),YC=Symbol("onConnect"),JC=Symbol("onDisconnect"),GC=Symbol("onConnectionError"),hw=Symbol("maxRedirections"),TC=Symbol("onDrain"),vC=Symbol("factory"),HC=Symbol("finalizer"),Vo=Symbol("options");function lw(A,e){return e&&e.connections===1?new aw(A,e):new Ew(A,e)}var xo=class extends Qw{constructor({factory:e=lw,maxRedirections:t=0,connect:r,...s}={}){if(super(),typeof e!="function")throw new qs("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new qs("connect must be a function or an object");if(!Number.isInteger(t)||t<0)throw new qs("maxRedirections must be a positive number");r&&typeof r!="function"&&(r={...r}),this[gw]=s.interceptors&&s.interceptors.Agent&&Array.isArray(s.interceptors.Agent)?s.interceptors.Agent:[Bw({maxRedirections:t})],this[Vo]={...Cw.deepClone(s),connect:r},this[Vo].interceptors=s.interceptors?{...s.interceptors}:void 0,this[hw]=t,this[vC]=e,this[Oe]=new Map,this[HC]=new cw(i=>{let o=this[Oe].get(i);o!==void 0&&o.deref()===void 0&&this[Oe].delete(i)});let n=this;this[TC]=(i,o)=>{n.emit("drain",i,[n,...o])},this[YC]=(i,o)=>{n.emit("connect",i,[n,...o])},this[JC]=(i,o,g)=>{n.emit("disconnect",i,[n,...o],g)},this[GC]=(i,o,g)=>{n.emit("connectionError",i,[n,...o],g)}}get[MC](){let e=0;for(let t of this[Oe].values()){let r=t.deref();r&&(e+=r[MC])}return e}[ow](e,t){let r;if(e.origin&&(typeof e.origin=="string"||e.origin instanceof URL))r=String(e.origin);else throw new qs("opts.origin must be a non-empty string or URL.");let s=this[Oe].get(r),n=s?s.deref():null;return n||(n=this[vC](e.origin,this[Vo]).on("drain",this[TC]).on("connect",this[YC]).on("disconnect",this[JC]).on("connectionError",this[GC]),this[Oe].set(r,new Iw(n)),this[HC].register(n,r)),n.dispatch(e,t)}async[nw](){let e=[];for(let t of this[Oe].values()){let r=t.deref();r&&e.push(r.close())}await Promise.all(e)}async[iw](e){let t=[];for(let r of this[Oe].values()){let s=r.deref();s&&t.push(s.destroy(e))}await Promise.all(t)}};VC.exports=xo});var XC=c((Vb,ZC)=>{"use strict";var WC=require("assert"),{Readable:uw}=require("stream"),{RequestAbortedError:OC,NotSupportedError:fw,InvalidArgumentError:dw}=Z(),Ht=G(),{ReadableStreamFrom:yw,toUSVString:ww}=G(),qo,qA=Symbol("kConsume"),Ws=Symbol("kReading"),Pe=Symbol("kBody"),xC=Symbol("abort"),PC=Symbol("kContentType");ZC.exports=class extends uw{constructor({resume:e,abort:t,contentType:r="",highWaterMark:s=64*1024}){super({autoDestroy:!0,read:e,highWaterMark:s}),this._readableState.dataEmitted=!1,this[xC]=t,this[qA]=null,this[Pe]=null,this[PC]=r,this[Ws]=!1}destroy(e){return this.destroyed?this:(!e&&!this._readableState.endEmitted&&(e=new OC),e&&this[xC](),super.destroy(e))}emit(e,...t){return e==="data"?this._readableState.dataEmitted=!0:e==="error"&&(this._readableState.errorEmitted=!0),super.emit(e,...t)}on(e,...t){return(e==="data"||e==="readable")&&(this[Ws]=!0),super.on(e,...t)}addListener(e,...t){return this.on(e,...t)}off(e,...t){let r=super.off(e,...t);return(e==="data"||e==="readable")&&(this[Ws]=this.listenerCount("data")>0||this.listenerCount("readable")>0),r}removeListener(e,...t){return this.off(e,...t)}push(e){return this[qA]&&e!==null&&this.readableLength===0?(_C(this[qA],e),this[Ws]?super.push(e):!0):super.push(e)}async text(){return Os(this,"text")}async json(){return Os(this,"json")}async blob(){return Os(this,"blob")}async arrayBuffer(){return Os(this,"arrayBuffer")}async formData(){throw new fw}get bodyUsed(){return Ht.isDisturbed(this)}get body(){return this[Pe]||(this[Pe]=yw(this),this[qA]&&(this[Pe].getReader(),WC(this[Pe].locked))),this[Pe]}async dump(e){let t=e&&Number.isFinite(e.limit)?e.limit:262144,r=e&&e.signal,s=()=>{this.destroy()},n;if(r){if(typeof r!="object"||!("aborted"in r))throw new dw("signal must be an AbortSignal");Ht.throwIfAborted(r),n=Ht.addAbortListener(r,s)}try{for await(let i of this)if(Ht.throwIfAborted(r),t-=Buffer.byteLength(i),t<0)return}catch{Ht.throwIfAborted(r)}finally{typeof n=="function"?n():n&&n[Symbol.dispose]()}}};function Dw(A){return A[Pe]&&A[Pe].locked===!0||A[qA]}function pw(A){return Ht.isDisturbed(A)||Dw(A)}async function Os(A,e){if(pw(A))throw new TypeError("unusable");return WC(!A[qA]),new Promise((t,r)=>{A[qA]={type:e,stream:A,resolve:t,reject:r,length:0,body:[]},A.on("error",function(s){Wo(this[qA],s)}).on("close",function(){this[qA].body!==null&&Wo(this[qA],new OC)}),process.nextTick(Rw,A[qA])})}function Rw(A){if(A.body===null)return;let{_readableState:e}=A.stream;for(let t of e.buffer)_C(A,t);for(e.endEmitted?qC(this[qA]):A.stream.on("end",function(){qC(this[qA])}),A.stream.resume();A.stream.read()!=null;);}function qC(A){let{type:e,body:t,resolve:r,stream:s,length:n}=A;try{if(e==="text")r(ww(Buffer.concat(t)));else if(e==="json")r(JSON.parse(Buffer.concat(t)));else if(e==="arrayBuffer"){let i=new Uint8Array(n),o=0;for(let g of t)i.set(g,o),o+=g.byteLength;r(i)}else e==="blob"&&(qo||(qo=require("buffer").Blob),r(new qo(t,{type:s[PC]})));Wo(A)}catch(i){s.destroy(i)}}function _C(A,e){A.length+=e.length,A.body.push(e)}function Wo(A,e){A.body!==null&&(e?A.reject(e):A.resolve(),A.type=null,A.stream=null,A.resolve=null,A.reject=null,A.length=0,A.body=null)}});var Oo=c((xb,jC)=>{var kw=require("assert"),{ResponseStatusCodeError:Ps}=Z(),{toUSVString:KC}=G();async function Fw({callback:A,body:e,contentType:t,statusCode:r,statusMessage:s,headers:n}){kw(e);let i=[],o=0;for await(let g of e)if(i.push(g),o+=g.length,o>128*1024){i=null;break}if(r===204||!t||!i){process.nextTick(A,new Ps(`Response status code ${r}${s?`: ${s}`:""}`,r,n));return}try{if(t.startsWith("application/json")){let g=JSON.parse(KC(Buffer.concat(i)));process.nextTick(A,new Ps(`Response status code ${r}${s?`: ${s}`:""}`,r,n,g));return}if(t.startsWith("text/")){let g=KC(Buffer.concat(i));process.nextTick(A,new Ps(`Response status code ${r}${s?`: ${s}`:""}`,r,n,g));return}}catch{}process.nextTick(A,new Ps(`Response status code ${r}${s?`: ${s}`:""}`,r,n))}jC.exports={getResolveErrorBodyCallback:Fw}});var xt=c((qb,$C)=>{var{addAbortListener:Nw}=G(),{RequestAbortedError:mw}=Z(),Vt=Symbol("kListener"),Ze=Symbol("kSignal");function zC(A){A.abort?A.abort():A.onError(new mw)}function bw(A,e){if(A[Ze]=null,A[Vt]=null,!!e){if(e.aborted){zC(A);return}A[Ze]=e,A[Vt]=()=>{zC(A)},Nw(A[Ze],A[Vt])}}function Sw(A){A[Ze]&&("removeEventListener"in A[Ze]?A[Ze].removeEventListener("abort",A[Vt]):A[Ze].removeListener("abort",A[Vt]),A[Ze]=null,A[Vt]=null)}$C.exports={addSignal:bw,removeSignal:Sw}});var rB=c((Wb,tB)=>{"use strict";var Uw=XC(),{InvalidArgumentError:qt,RequestAbortedError:Lw}=Z(),ye=G(),{getResolveErrorBodyCallback:Mw}=Oo(),{AsyncResource:Yw}=require("async_hooks"),{addSignal:Jw,removeSignal:AB}=xt(),Po=class extends Yw{constructor(e,t){if(!e||typeof e!="object")throw new qt("invalid opts");let{signal:r,method:s,opaque:n,body:i,onInfo:o,responseHeaders:g,throwOnError:a,highWaterMark:Q}=e;try{if(typeof t!="function")throw new qt("invalid callback");if(Q&&(typeof Q!="number"||Q<0))throw new qt("invalid highWaterMark");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new qt("signal must be an EventEmitter or EventTarget");if(s==="CONNECT")throw new qt("invalid method");if(o&&typeof o!="function")throw new qt("invalid onInfo callback");super("UNDICI_REQUEST")}catch(E){throw ye.isStream(i)&&ye.destroy(i.on("error",ye.nop),E),E}this.responseHeaders=g||null,this.opaque=n||null,this.callback=t,this.res=null,this.abort=null,this.body=i,this.trailers={},this.context=null,this.onInfo=o||null,this.throwOnError=a,this.highWaterMark=Q,ye.isStream(i)&&i.on("error",E=>{this.onError(E)}),Jw(this,r)}onConnect(e,t){if(!this.callback)throw new Lw;this.abort=e,this.context=t}onHeaders(e,t,r,s){let{callback:n,opaque:i,abort:o,context:g,responseHeaders:a,highWaterMark:Q}=this,E=a==="raw"?ye.parseRawHeaders(t):ye.parseHeaders(t);if(e<200){this.onInfo&&this.onInfo({statusCode:e,headers:E});return}let B=(a==="raw"?ye.parseHeaders(t):E)["content-type"],I=new Uw({resume:r,abort:o,contentType:B,highWaterMark:Q});this.callback=null,this.res=I,n!==null&&(this.throwOnError&&e>=400?this.runInAsyncScope(Mw,null,{callback:n,body:I,contentType:B,statusCode:e,statusMessage:s,headers:E}):this.runInAsyncScope(n,null,null,{statusCode:e,headers:E,trailers:this.trailers,opaque:i,body:I,context:g}))}onData(e){let{res:t}=this;return t.push(e)}onComplete(e){let{res:t}=this;AB(this),ye.parseHeaders(e,this.trailers),t.push(null)}onError(e){let{res:t,callback:r,body:s,opaque:n}=this;AB(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,e,{opaque:n})})),t&&(this.res=null,queueMicrotask(()=>{ye.destroy(t,e)})),s&&(this.body=null,ye.destroy(s,e))}};function eB(A,e){if(e===void 0)return new Promise((t,r)=>{eB.call(this,A,(s,n)=>s?r(s):t(n))});try{this.dispatch(A,new Po(A,e))}catch(t){if(typeof e!="function")throw t;let r=A&&A.opaque;queueMicrotask(()=>e(t,{opaque:r}))}}tB.exports=eB});var oB=c((Ob,iB)=>{"use strict";var{finished:Gw,PassThrough:Tw}=require("stream"),{InvalidArgumentError:Wt,InvalidReturnValueError:vw,RequestAbortedError:Hw}=Z(),Qe=G(),{getResolveErrorBodyCallback:Vw}=Oo(),{AsyncResource:xw}=require("async_hooks"),{addSignal:qw,removeSignal:sB}=xt(),_o=class extends xw{constructor(e,t,r){if(!e||typeof e!="object")throw new Wt("invalid opts");let{signal:s,method:n,opaque:i,body:o,onInfo:g,responseHeaders:a,throwOnError:Q}=e;try{if(typeof r!="function")throw new Wt("invalid callback");if(typeof t!="function")throw new Wt("invalid factory");if(s&&typeof s.on!="function"&&typeof s.addEventListener!="function")throw new Wt("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new Wt("invalid method");if(g&&typeof g!="function")throw new Wt("invalid onInfo callback");super("UNDICI_STREAM")}catch(E){throw Qe.isStream(o)&&Qe.destroy(o.on("error",Qe.nop),E),E}this.responseHeaders=a||null,this.opaque=i||null,this.factory=t,this.callback=r,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=o,this.onInfo=g||null,this.throwOnError=Q||!1,Qe.isStream(o)&&o.on("error",E=>{this.onError(E)}),qw(this,s)}onConnect(e,t){if(!this.callback)throw new Hw;this.abort=e,this.context=t}onHeaders(e,t,r,s){let{factory:n,opaque:i,context:o,callback:g,responseHeaders:a}=this,Q=a==="raw"?Qe.parseRawHeaders(t):Qe.parseHeaders(t);if(e<200){this.onInfo&&this.onInfo({statusCode:e,headers:Q});return}this.factory=null;let E;if(this.throwOnError&&e>=400){let I=(a==="raw"?Qe.parseHeaders(t):Q)["content-type"];E=new Tw,this.callback=null,this.runInAsyncScope(Vw,null,{callback:g,body:E,contentType:I,statusCode:e,statusMessage:s,headers:Q})}else{if(E=this.runInAsyncScope(n,null,{statusCode:e,headers:Q,opaque:i,context:o}),!E||typeof E.write!="function"||typeof E.end!="function"||typeof E.on!="function")throw new vw("expected Writable");Gw(E,{readable:!1},B=>{let{callback:I,res:h,opaque:l,trailers:u,abort:F}=this;this.res=null,(B||!h.readable)&&Qe.destroy(h,B),this.callback=null,this.runInAsyncScope(I,null,B||null,{opaque:l,trailers:u}),B&&F()})}return E.on("drain",r),this.res=E,(E.writableNeedDrain!==void 0?E.writableNeedDrain:E._writableState&&E._writableState.needDrain)!==!0}onData(e){let{res:t}=this;return t.write(e)}onComplete(e){let{res:t}=this;sB(this),this.trailers=Qe.parseHeaders(e),t.end()}onError(e){let{res:t,callback:r,opaque:s,body:n}=this;sB(this),this.factory=null,t?(this.res=null,Qe.destroy(t,e)):r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,e,{opaque:s})})),n&&(this.body=null,Qe.destroy(n,e))}};function nB(A,e,t){if(t===void 0)return new Promise((r,s)=>{nB.call(this,A,e,(n,i)=>n?s(n):r(i))});try{this.dispatch(A,new _o(A,e,t))}catch(r){if(typeof t!="function")throw r;let s=A&&A.opaque;queueMicrotask(()=>t(r,{opaque:s}))}}iB.exports=nB});var EB=c((Pb,QB)=>{"use strict";var{Readable:gB,Duplex:Ww,PassThrough:Ow}=require("stream"),{InvalidArgumentError:Gr,InvalidReturnValueError:Pw,RequestAbortedError:_s}=Z(),te=G(),{AsyncResource:_w}=require("async_hooks"),{addSignal:Zw,removeSignal:Xw}=xt(),Kw=require("assert"),Ot=Symbol("resume"),Zo=class extends gB{constructor(){super({autoDestroy:!0}),this[Ot]=null}_read(){let{[Ot]:e}=this;e&&(this[Ot]=null,e())}_destroy(e,t){this._read(),t(e)}},Xo=class extends gB{constructor(e){super({autoDestroy:!0}),this[Ot]=e}_read(){this[Ot]()}_destroy(e,t){!e&&!this._readableState.endEmitted&&(e=new _s),t(e)}},Ko=class extends _w{constructor(e,t){if(!e||typeof e!="object")throw new Gr("invalid opts");if(typeof t!="function")throw new Gr("invalid handler");let{signal:r,method:s,opaque:n,onInfo:i,responseHeaders:o}=e;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Gr("signal must be an EventEmitter or EventTarget");if(s==="CONNECT")throw new Gr("invalid method");if(i&&typeof i!="function")throw new Gr("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=n||null,this.responseHeaders=o||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=i||null,this.req=new Zo().on("error",te.nop),this.ret=new Ww({readableObjectMode:e.objectMode,autoDestroy:!0,read:()=>{let{body:g}=this;g&&g.resume&&g.resume()},write:(g,a,Q)=>{let{req:E}=this;E.push(g,a)||E._readableState.destroyed?Q():E[Ot]=Q},destroy:(g,a)=>{let{body:Q,req:E,res:C,ret:B,abort:I}=this;!g&&!B._readableState.endEmitted&&(g=new _s),I&&g&&I(),te.destroy(Q,g),te.destroy(E,g),te.destroy(C,g),Xw(this),a(g)}}).on("prefinish",()=>{let{req:g}=this;g.push(null)}),this.res=null,Zw(this,r)}onConnect(e,t){let{ret:r,res:s}=this;if(Kw(!s,"pipeline cannot be retried"),r.destroyed)throw new _s;this.abort=e,this.context=t}onHeaders(e,t,r){let{opaque:s,handler:n,context:i}=this;if(e<200){if(this.onInfo){let g=this.responseHeaders==="raw"?te.parseRawHeaders(t):te.parseHeaders(t);this.onInfo({statusCode:e,headers:g})}return}this.res=new Xo(r);let o;try{this.handler=null;let g=this.responseHeaders==="raw"?te.parseRawHeaders(t):te.parseHeaders(t);o=this.runInAsyncScope(n,null,{statusCode:e,headers:g,opaque:s,body:this.res,context:i})}catch(g){throw this.res.on("error",te.nop),g}if(!o||typeof o.on!="function")throw new Pw("expected Readable");o.on("data",g=>{let{ret:a,body:Q}=this;!a.push(g)&&Q.pause&&Q.pause()}).on("error",g=>{let{ret:a}=this;te.destroy(a,g)}).on("end",()=>{let{ret:g}=this;g.push(null)}).on("close",()=>{let{ret:g}=this;g._readableState.ended||te.destroy(g,new _s)}),this.body=o}onData(e){let{res:t}=this;return t.push(e)}onComplete(e){let{res:t}=this;t.push(null)}onError(e){let{ret:t}=this;this.handler=null,te.destroy(t,e)}};function jw(A,e){try{let t=new Ko(A,e);return this.dispatch({...A,body:t.req},t),t.ret}catch(t){return new Ow().destroy(t)}}QB.exports=jw});var cB=c((Zb,IB)=>{"use strict";var{InvalidArgumentError:jo,RequestAbortedError:zw,SocketError:$w}=Z(),{AsyncResource:AD}=require("async_hooks"),aB=G(),{addSignal:eD,removeSignal:CB}=xt(),tD=require("assert"),zo=class extends AD{constructor(e,t){if(!e||typeof e!="object")throw new jo("invalid opts");if(typeof t!="function")throw new jo("invalid callback");let{signal:r,opaque:s,responseHeaders:n}=e;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new jo("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=n||null,this.opaque=s||null,this.callback=t,this.abort=null,this.context=null,eD(this,r)}onConnect(e,t){if(!this.callback)throw new zw;this.abort=e,this.context=null}onHeaders(){throw new $w("bad upgrade",null)}onUpgrade(e,t,r){let{callback:s,opaque:n,context:i}=this;tD.strictEqual(e,101),CB(this),this.callback=null;let o=this.responseHeaders==="raw"?aB.parseRawHeaders(t):aB.parseHeaders(t);this.runInAsyncScope(s,null,null,{headers:o,socket:r,opaque:n,context:i})}onError(e){let{callback:t,opaque:r}=this;CB(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,e,{opaque:r})}))}};function BB(A,e){if(e===void 0)return new Promise((t,r)=>{BB.call(this,A,(s,n)=>s?r(s):t(n))});try{let t=new zo(A,e);this.dispatch({...A,method:A.method||"GET",upgrade:A.protocol||"Websocket"},t)}catch(t){if(typeof e!="function")throw t;let r=A&&A.opaque;queueMicrotask(()=>e(t,{opaque:r}))}}IB.exports=BB});var dB=c((Xb,fB)=>{"use strict";var{InvalidArgumentError:$o,RequestAbortedError:rD,SocketError:sD}=Z(),{AsyncResource:nD}=require("async_hooks"),hB=G(),{addSignal:iD,removeSignal:lB}=xt(),Ag=class extends nD{constructor(e,t){if(!e||typeof e!="object")throw new $o("invalid opts");if(typeof t!="function")throw new $o("invalid callback");let{signal:r,opaque:s,responseHeaders:n}=e;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new $o("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=s||null,this.responseHeaders=n||null,this.callback=t,this.abort=null,iD(this,r)}onConnect(e,t){if(!this.callback)throw new rD;this.abort=e,this.context=t}onHeaders(){throw new sD("bad connect",null)}onUpgrade(e,t,r){let{callback:s,opaque:n,context:i}=this;lB(this),this.callback=null;let o=this.responseHeaders==="raw"?hB.parseRawHeaders(t):hB.parseHeaders(t);this.runInAsyncScope(s,null,null,{statusCode:e,headers:o,socket:r,opaque:n,context:i})}onError(e){let{callback:t,opaque:r}=this;lB(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,e,{opaque:r})}))}};function uB(A,e){if(e===void 0)return new Promise((t,r)=>{uB.call(this,A,(s,n)=>s?r(s):t(n))});try{let t=new Ag(A,e);this.dispatch({...A,method:"CONNECT"},t)}catch(t){if(typeof e!="function")throw t;let r=A&&A.opaque;queueMicrotask(()=>e(t,{opaque:r}))}}fB.exports=uB});var yB=c((Kb,Pt)=>{"use strict";Pt.exports.request=rB();Pt.exports.stream=oB();Pt.exports.pipeline=EB();Pt.exports.upgrade=cB();Pt.exports.connect=dB()});var tg=c((jb,wB)=>{"use strict";var{UndiciError:oD}=Z(),eg=class A extends oD{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="MockNotMatchedError",this.message=e||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};wB.exports={MockNotMatchedError:eg}});var _t=c((zb,DB)=>{"use strict";DB.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var Tr=c(($b,YB)=>{"use strict";var{MockNotMatchedError:Qt}=tg(),{kDispatches:Zs,kMockAgent:gD,kOriginalDispatch:QD,kOrigin:ED,kGetNetConnect:aD}=_t(),{buildURL:CD,nop:BD}=G(),{STATUS_CODES:ID}=require("http"),{types:{isPromise:cD}}=require("util");function Me(A,e){return typeof A=="string"?A===e:A instanceof RegExp?A.test(e):typeof A=="function"?A(e)===!0:!1}function RB(A){return Object.fromEntries(Object.entries(A).map(([e,t])=>[e.toLocaleLowerCase(),t]))}function kB(A,e){if(Array.isArray(A)){for(let t=0;t<A.length;t+=2)if(A[t].toLocaleLowerCase()===e.toLocaleLowerCase())return A[t+1];return}else return typeof A.get=="function"?A.get(e):RB(A)[e.toLocaleLowerCase()]}function FB(A){let e=A.slice(),t=[];for(let r=0;r<e.length;r+=2)t.push([e[r],e[r+1]]);return Object.fromEntries(t)}function NB(A,e){if(typeof A.headers=="function")return Array.isArray(e)&&(e=FB(e)),A.headers(e?RB(e):{});if(typeof A.headers>"u")return!0;if(typeof e!="object"||typeof A.headers!="object")return!1;for(let[t,r]of Object.entries(A.headers)){let s=kB(e,t);if(!Me(r,s))return!1}return!0}function pB(A){if(typeof A!="string")return A;let e=A.split("?");if(e.length!==2)return A;let t=new URLSearchParams(e.pop());return t.sort(),[...e,t.toString()].join("?")}function hD(A,{path:e,method:t,body:r,headers:s}){let n=Me(A.path,e),i=Me(A.method,t),o=typeof A.body<"u"?Me(A.body,r):!0,g=NB(A,s);return n&&i&&o&&g}function mB(A){return Buffer.isBuffer(A)?A:typeof A=="object"?JSON.stringify(A):A.toString()}function bB(A,e){let t=e.query?CD(e.path,e.query):e.path,r=typeof t=="string"?pB(t):t,s=A.filter(({consumed:n})=>!n).filter(({path:n})=>Me(pB(n),r));if(s.length===0)throw new Qt(`Mock dispatch not matched for path '${r}'`);if(s=s.filter(({method:n})=>Me(n,e.method)),s.length===0)throw new Qt(`Mock dispatch not matched for method '${e.method}'`);if(s=s.filter(({body:n})=>typeof n<"u"?Me(n,e.body):!0),s.length===0)throw new Qt(`Mock dispatch not matched for body '${e.body}'`);if(s=s.filter(n=>NB(n,e.headers)),s.length===0)throw new Qt(`Mock dispatch not matched for headers '${typeof e.headers=="object"?JSON.stringify(e.headers):e.headers}'`);return s[0]}function lD(A,e,t){let r={timesInvoked:0,times:1,persist:!1,consumed:!1},s=typeof t=="function"?{callback:t}:{...t},n={...r,...e,pending:!0,data:{error:null,...s}};return A.push(n),n}function rg(A,e){let t=A.findIndex(r=>r.consumed?hD(r,e):!1);t!==-1&&A.splice(t,1)}function SB(A){let{path:e,method:t,body:r,headers:s,query:n}=A;return{path:e,method:t,body:r,headers:s,query:n}}function sg(A){return Object.entries(A).reduce((e,[t,r])=>[...e,Buffer.from(`${t}`),Array.isArray(r)?r.map(s=>Buffer.from(`${s}`)):Buffer.from(`${r}`)],[])}function UB(A){return ID[A]||"unknown"}async function uD(A){let e=[];for await(let t of A)e.push(t);return Buffer.concat(e).toString("utf8")}function LB(A,e){let t=SB(A),r=bB(this[Zs],t);r.timesInvoked++,r.data.callback&&(r.data={...r.data,...r.data.callback(A)});let{data:{statusCode:s,data:n,headers:i,trailers:o,error:g},delay:a,persist:Q}=r,{timesInvoked:E,times:C}=r;if(r.consumed=!Q&&E>=C,r.pending=E<C,g!==null)return rg(this[Zs],t),e.onError(g),!0;typeof a=="number"&&a>0?setTimeout(()=>{B(this[Zs])},a):B(this[Zs]);function B(h,l=n){let u=Array.isArray(A.headers)?FB(A.headers):A.headers,F=typeof l=="function"?l({...A,headers:u}):l;if(cD(F)){F.then(O=>B(h,O));return}let w=mB(F),k=sg(i),T=sg(o);e.abort=BD,e.onHeaders(s,k,I,UB(s)),e.onData(Buffer.from(w)),e.onComplete(T),rg(h,t)}function I(){}return!0}function fD(){let A=this[gD],e=this[ED],t=this[QD];return function(s,n){if(A.isMockActive)try{LB.call(this,s,n)}catch(i){if(i instanceof Qt){let o=A[aD]();if(o===!1)throw new Qt(`${i.message}: subsequent request to origin ${e} was not allowed (net.connect disabled)`);if(MB(o,e))t.call(this,s,n);else throw new Qt(`${i.message}: subsequent request to origin ${e} was not allowed (net.connect is not enabled for this origin)`)}else throw i}else t.call(this,s,n)}}function MB(A,e){let t=new URL(e);return A===!0?!0:!!(Array.isArray(A)&&A.some(r=>Me(r,t.host)))}function dD(A){if(A){let{agent:e,...t}=A;return t}}YB.exports={getResponseData:mB,getMockDispatch:bB,addMockDispatch:lD,deleteMockDispatch:rg,buildKey:SB,generateKeyValues:sg,matchValue:Me,getResponse:uD,getStatusText:UB,mockDispatch:LB,buildMockDispatch:fD,checkNetConnect:MB,buildMockOptions:dD,getHeaderByName:kB}});var ag=c((AS,Eg)=>{"use strict";var{getResponseData:yD,buildKey:wD,addMockDispatch:ng}=Tr(),{kDispatches:Xs,kDispatchKey:Ks,kDefaultHeaders:ig,kDefaultTrailers:og,kContentLength:gg,kMockDispatch:js}=_t(),{InvalidArgumentError:Ee}=Z(),{buildURL:DD}=G(),Zt=class{constructor(e){this[js]=e}delay(e){if(typeof e!="number"||!Number.isInteger(e)||e<=0)throw new Ee("waitInMs must be a valid integer > 0");return this[js].delay=e,this}persist(){return this[js].persist=!0,this}times(e){if(typeof e!="number"||!Number.isInteger(e)||e<=0)throw new Ee("repeatTimes must be a valid integer > 0");return this[js].times=e,this}},Qg=class{constructor(e,t){if(typeof e!="object")throw new Ee("opts must be an object");if(typeof e.path>"u")throw new Ee("opts.path must be defined");if(typeof e.method>"u"&&(e.method="GET"),typeof e.path=="string")if(e.query)e.path=DD(e.path,e.query);else{let r=new URL(e.path,"data://");e.path=r.pathname+r.search}typeof e.method=="string"&&(e.method=e.method.toUpperCase()),this[Ks]=wD(e),this[Xs]=t,this[ig]={},this[og]={},this[gg]=!1}createMockScopeDispatchData(e,t,r={}){let s=yD(t),n=this[gg]?{"content-length":s.length}:{},i={...this[ig],...n,...r.headers},o={...this[og],...r.trailers};return{statusCode:e,data:t,headers:i,trailers:o}}validateReplyParameters(e,t,r){if(typeof e>"u")throw new Ee("statusCode must be defined");if(typeof t>"u")throw new Ee("data must be defined");if(typeof r!="object")throw new Ee("responseOptions must be an object")}reply(e){if(typeof e=="function"){let o=a=>{let Q=e(a);if(typeof Q!="object")throw new Ee("reply options callback must return an object");let{statusCode:E,data:C="",responseOptions:B={}}=Q;return this.validateReplyParameters(E,C,B),{...this.createMockScopeDispatchData(E,C,B)}},g=ng(this[Xs],this[Ks],o);return new Zt(g)}let[t,r="",s={}]=[...arguments];this.validateReplyParameters(t,r,s);let n=this.createMockScopeDispatchData(t,r,s),i=ng(this[Xs],this[Ks],n);return new Zt(i)}replyWithError(e){if(typeof e>"u")throw new Ee("error must be defined");let t=ng(this[Xs],this[Ks],{error:e});return new Zt(t)}defaultReplyHeaders(e){if(typeof e>"u")throw new Ee("headers must be defined");return this[ig]=e,this}defaultReplyTrailers(e){if(typeof e>"u")throw new Ee("trailers must be defined");return this[og]=e,this}replyContentLength(){return this[gg]=!0,this}};Eg.exports.MockInterceptor=Qg;Eg.exports.MockScope=Zt});var Ig=c((eS,xB)=>{"use strict";var{promisify:pD}=require("util"),RD=Ur(),{buildMockDispatch:kD}=Tr(),{kDispatches:JB,kMockAgent:GB,kClose:TB,kOriginalClose:vB,kOrigin:HB,kOriginalDispatch:FD,kConnected:Cg}=_t(),{MockInterceptor:ND}=ag(),VB=$(),{InvalidArgumentError:mD}=Z(),Bg=class extends RD{constructor(e,t){if(super(e,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new mD("Argument opts.agent must implement Agent");this[GB]=t.agent,this[HB]=e,this[JB]=[],this[Cg]=1,this[FD]=this.dispatch,this[vB]=this.close.bind(this),this.dispatch=kD.call(this),this.close=this[TB]}get[VB.kConnected](){return this[Cg]}intercept(e){return new ND(e,this[JB])}async[TB](){await pD(this[vB])(),this[Cg]=0,this[GB][VB.kClients].delete(this[HB])}};xB.exports=Bg});var lg=c((tS,XB)=>{"use strict";var{promisify:bD}=require("util"),SD=vt(),{buildMockDispatch:UD}=Tr(),{kDispatches:qB,kMockAgent:WB,kClose:OB,kOriginalClose:PB,kOrigin:_B,kOriginalDispatch:LD,kConnected:cg}=_t(),{MockInterceptor:MD}=ag(),ZB=$(),{InvalidArgumentError:YD}=Z(),hg=class extends SD{constructor(e,t){if(super(e,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new YD("Argument opts.agent must implement Agent");this[WB]=t.agent,this[_B]=e,this[qB]=[],this[cg]=1,this[LD]=this.dispatch,this[PB]=this.close.bind(this),this.dispatch=UD.call(this),this.close=this[OB]}get[ZB.kConnected](){return this[cg]}intercept(e){return new MD(e,this[qB])}async[OB](){await bD(this[PB])(),this[cg]=0,this[WB][ZB.kClients].delete(this[_B])}};XB.exports=hg});var jB=c((sS,KB)=>{"use strict";var JD={pronoun:"it",is:"is",was:"was",this:"this"},GD={pronoun:"they",is:"are",was:"were",this:"these"};KB.exports=class{constructor(e,t){this.singular=e,this.plural=t}pluralize(e){let t=e===1,r=t?JD:GD,s=t?this.singular:this.plural;return{...r,count:e,noun:s}}}});var $B=c((iS,zB)=>{"use strict";var{Transform:TD}=require("stream"),{Console:vD}=require("console");zB.exports=class{constructor({disableColors:e}={}){this.transform=new TD({transform(t,r,s){s(null,t)}}),this.logger=new vD({stdout:this.transform,inspectOptions:{colors:!e&&!process.env.CI}})}format(e){let t=e.map(({method:r,path:s,data:{statusCode:n},persist:i,times:o,timesInvoked:g,origin:a})=>({Method:r,Origin:a,Path:s,"Status code":n,Persistent:i?"\u2705":"\u274C",Invocations:g,Remaining:i?1/0:o-g}));return this.logger.table(t),this.transform.read().toString()}}});var rI=c((oS,tI)=>{"use strict";var{kClients:Et}=$(),HD=Jr(),{kAgent:ug,kMockAgentSet:zs,kMockAgentGet:AI,kDispatches:fg,kIsMockActive:$s,kNetConnect:at,kGetNetConnect:VD,kOptions:An,kFactory:en}=_t(),xD=Ig(),qD=lg(),{matchValue:WD,buildMockOptions:OD}=Tr(),{InvalidArgumentError:eI,UndiciError:PD}=Z(),_D=ks(),ZD=jB(),XD=$B(),dg=class{constructor(e){this.value=e}deref(){return this.value}},yg=class extends _D{constructor(e){if(super(e),this[at]=!0,this[$s]=!0,e&&e.agent&&typeof e.agent.dispatch!="function")throw new eI("Argument opts.agent must implement Agent");let t=e&&e.agent?e.agent:new HD(e);this[ug]=t,this[Et]=t[Et],this[An]=OD(e)}get(e){let t=this[AI](e);return t||(t=this[en](e),this[zs](e,t)),t}dispatch(e,t){return this.get(e.origin),this[ug].dispatch(e,t)}async close(){await this[ug].close(),this[Et].clear()}deactivate(){this[$s]=!1}activate(){this[$s]=!0}enableNetConnect(e){if(typeof e=="string"||typeof e=="function"||e instanceof RegExp)Array.isArray(this[at])?this[at].push(e):this[at]=[e];else if(typeof e>"u")this[at]=!0;else throw new eI("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[at]=!1}get isMockActive(){return this[$s]}[zs](e,t){this[Et].set(e,new dg(t))}[en](e){let t=Object.assign({agent:this},this[An]);return this[An]&&this[An].connections===1?new xD(e,t):new qD(e,t)}[AI](e){let t=this[Et].get(e);if(t)return t.deref();if(typeof e!="string"){let r=this[en]("http://localhost:9999");return this[zs](e,r),r}for(let[r,s]of Array.from(this[Et])){let n=s.deref();if(n&&typeof r!="string"&&WD(r,e)){let i=this[en](e);return this[zs](e,i),i[fg]=n[fg],i}}}[VD](){return this[at]}pendingInterceptors(){let e=this[Et];return Array.from(e.entries()).flatMap(([t,r])=>r.deref()[fg].map(s=>({...s,origin:t}))).filter(({pending:t})=>t)}assertNoPendingInterceptors({pendingInterceptorsFormatter:e=new XD}={}){let t=this.pendingInterceptors();if(t.length===0)return;let r=new ZD("interceptor","interceptors").pluralize(t.length);throw new PD(` -${r.count} ${r.noun} ${r.is} pending: - -${e.format(t)} -`.trim())}};tI.exports=yg});var QI=c((gS,gI)=>{"use strict";var{kProxy:KD,kClose:jD,kDestroy:zD,kInterceptors:$D}=$(),{URL:sI}=require("url"),nI=Jr(),Ap=vt(),ep=pr(),{InvalidArgumentError:Hr,RequestAbortedError:tp}=Z(),iI=Rr(),vr=Symbol("proxy agent"),tn=Symbol("proxy client"),rn=Symbol("proxy headers"),wg=Symbol("request tls settings"),rp=Symbol("proxy tls settings"),oI=Symbol("connect endpoint function");function sp(A){return A==="https:"?443:80}function np(A){if(typeof A=="string"&&(A={uri:A}),!A||!A.uri)throw new Hr("Proxy opts.uri is mandatory");return{uri:A.uri,protocol:A.protocol||"https"}}function ip(A,e){return new Ap(A,e)}var Dg=class extends ep{constructor(e){if(super(e),this[KD]=np(e),this[vr]=new nI(e),this[$D]=e.interceptors&&e.interceptors.ProxyAgent&&Array.isArray(e.interceptors.ProxyAgent)?e.interceptors.ProxyAgent:[],typeof e=="string"&&(e={uri:e}),!e||!e.uri)throw new Hr("Proxy opts.uri is mandatory");let{clientFactory:t=ip}=e;if(typeof t!="function")throw new Hr("Proxy opts.clientFactory must be a function.");if(this[wg]=e.requestTls,this[rp]=e.proxyTls,this[rn]=e.headers||{},e.auth&&e.token)throw new Hr("opts.auth cannot be used in combination with opts.token");e.auth?this[rn]["proxy-authorization"]=`Basic ${e.auth}`:e.token&&(this[rn]["proxy-authorization"]=e.token);let r=new sI(e.uri),{origin:s,port:n,host:i}=r,o=iI({...e.proxyTls});this[oI]=iI({...e.requestTls}),this[tn]=t(r,{connect:o}),this[vr]=new nI({...e,connect:async(g,a)=>{let Q=g.host;g.port||(Q+=`:${sp(g.protocol)}`);try{let{socket:E,statusCode:C}=await this[tn].connect({origin:s,port:n,path:Q,signal:g.signal,headers:{...this[rn],host:i}});if(C!==200&&(E.on("error",()=>{}).destroy(),a(new tp("Proxy response !== 200 when HTTP Tunneling"))),g.protocol!=="https:"){a(null,E);return}let B;this[wg]?B=this[wg].servername:B=g.servername,this[oI]({...g,servername:B,httpSocket:E},a)}catch(E){a(E)}}})}dispatch(e,t){let{host:r}=new sI(e.origin),s=op(e.headers);return gp(s),this[vr].dispatch({...e,headers:{...s,host:r}},t)}async[jD](){await this[vr].close(),await this[tn].close()}async[zD](){await this[vr].destroy(),await this[tn].destroy()}};function op(A){if(Array.isArray(A)){let e={};for(let t=0;t<A.length;t+=2)e[A[t]]=A[t+1];return e}return A}function gp(A){if(A&&Object.keys(A).find(t=>t.toLowerCase()==="proxy-authorization"))throw new Hr("Proxy-Authorization should be sent in ProxyAgent constructor")}gI.exports=Dg});var Xt=c((QS,BI)=>{"use strict";var EI=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:Qp}=Z(),Ep=Jr();CI()===void 0&&aI(new Ep);function aI(A){if(!A||typeof A.dispatch!="function")throw new Qp("Argument agent must implement Agent");Object.defineProperty(globalThis,EI,{value:A,writable:!0,enumerable:!1,configurable:!1})}function CI(){return globalThis[EI]}BI.exports={setGlobalDispatcher:aI,getGlobalDispatcher:CI}});var cI=c((aS,II)=>{"use strict";II.exports=class{constructor(e){this.handler=e}onConnect(...e){return this.handler.onConnect(...e)}onError(...e){return this.handler.onError(...e)}onUpgrade(...e){return this.handler.onUpgrade(...e)}onHeaders(...e){return this.handler.onHeaders(...e)}onData(...e){return this.handler.onData(...e)}onComplete(...e){return this.handler.onComplete(...e)}onBodySent(...e){return this.handler.onBodySent(...e)}}});var Bt=c((CS,fI)=>{"use strict";var{kHeadersList:SA}=$(),{kGuard:Ct}=Fe(),{kEnumerableProperty:we}=G(),{makeIterator:pg,isValidHeaderName:Vr,isValidHeaderValue:hI}=jA(),{webidl:Y}=DA(),ap=require("assert"),UA=Symbol("headers map"),LA=Symbol("headers map sorted");function lI(A){let e=A.length;for(;/[\r\n\t ]/.test(A.charAt(--e)););return A.slice(0,e+1).replace(/^[\r\n\t ]+/,"")}function uI(A,e){if(Array.isArray(e))for(let t of e){if(t.length!==2)throw Y.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${t.length}.`});A.append(t[0],t[1])}else if(typeof e=="object"&&e!==null)for(let[t,r]of Object.entries(e))A.append(t,r);else throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}var sn=class A{cookies=null;constructor(e){e instanceof A?(this[UA]=new Map(e[UA]),this[LA]=e[LA],this.cookies=e.cookies):(this[UA]=new Map(e),this[LA]=null)}contains(e){return e=e.toLowerCase(),this[UA].has(e)}clear(){this[UA].clear(),this[LA]=null,this.cookies=null}append(e,t){this[LA]=null;let r=e.toLowerCase(),s=this[UA].get(r);if(s){let n=r==="cookie"?"; ":", ";this[UA].set(r,{name:s.name,value:`${s.value}${n}${t}`})}else this[UA].set(r,{name:e,value:t});r==="set-cookie"&&(this.cookies??=[],this.cookies.push(t))}set(e,t){this[LA]=null;let r=e.toLowerCase();return r==="set-cookie"&&(this.cookies=[t]),this[UA].set(r,{name:e,value:t})}delete(e){return this[LA]=null,e=e.toLowerCase(),e==="set-cookie"&&(this.cookies=null),this[UA].delete(e)}get(e){return this.contains(e)?this[UA].get(e.toLowerCase())?.value??null:null}*[Symbol.iterator](){for(let[e,{value:t}]of this[UA])yield[e,t]}get entries(){let e={};if(this[UA].size)for(let{name:t,value:r}of this[UA].values())e[t]=r;return e}},Kt=class A{constructor(e=void 0){this[SA]=new sn,this[Ct]="none",e!==void 0&&(e=Y.converters.HeadersInit(e),uI(this,e))}append(e,t){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,2,{header:"Headers.append"}),e=Y.converters.ByteString(e),t=Y.converters.ByteString(t),t=lI(t),Vr(e)){if(!hI(t))throw Y.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.append",value:e,type:"header name"});if(this[Ct]==="immutable")throw new TypeError("immutable");return this[Ct],this[SA].append(e,t)}delete(e){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,1,{header:"Headers.delete"}),e=Y.converters.ByteString(e),!Vr(e))throw Y.errors.invalidArgument({prefix:"Headers.delete",value:e,type:"header name"});if(this[Ct]==="immutable")throw new TypeError("immutable");if(this[Ct],!!this[SA].contains(e))return this[SA].delete(e)}get(e){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,1,{header:"Headers.get"}),e=Y.converters.ByteString(e),!Vr(e))throw Y.errors.invalidArgument({prefix:"Headers.get",value:e,type:"header name"});return this[SA].get(e)}has(e){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,1,{header:"Headers.has"}),e=Y.converters.ByteString(e),!Vr(e))throw Y.errors.invalidArgument({prefix:"Headers.has",value:e,type:"header name"});return this[SA].contains(e)}set(e,t){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,2,{header:"Headers.set"}),e=Y.converters.ByteString(e),t=Y.converters.ByteString(t),t=lI(t),Vr(e)){if(!hI(t))throw Y.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.set",value:e,type:"header name"});if(this[Ct]==="immutable")throw new TypeError("immutable");return this[Ct],this[SA].set(e,t)}getSetCookie(){Y.brandCheck(this,A);let e=this[SA].cookies;return e?[...e]:[]}get[LA](){if(this[SA][LA])return this[SA][LA];let e=[],t=[...this[SA]].sort((s,n)=>s[0]<n[0]?-1:1),r=this[SA].cookies;for(let[s,n]of t)if(s==="set-cookie")for(let i of r)e.push([s,i]);else ap(n!==null),e.push([s,n]);return this[SA][LA]=e,e}keys(){return Y.brandCheck(this,A),pg(()=>[...this[LA].values()],"Headers","key")}values(){return Y.brandCheck(this,A),pg(()=>[...this[LA].values()],"Headers","value")}entries(){return Y.brandCheck(this,A),pg(()=>[...this[LA].values()],"Headers","key+value")}forEach(e,t=globalThis){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,1,{header:"Headers.forEach"}),typeof e!="function")throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.");for(let[r,s]of this)e.apply(t,[s,r,this])}[Symbol.for("nodejs.util.inspect.custom")](){return Y.brandCheck(this,A),this[SA]}};Kt.prototype[Symbol.iterator]=Kt.prototype.entries;Object.defineProperties(Kt.prototype,{append:we,delete:we,get:we,has:we,set:we,getSetCookie:we,keys:we,values:we,entries:we,forEach:we,[Symbol.iterator]:{enumerable:!1},[Symbol.toStringTag]:{value:"Headers",configurable:!0}});Y.converters.HeadersInit=function(A){if(Y.util.Type(A)==="Object")return A[Symbol.iterator]?Y.converters["sequence<sequence<ByteString>>"](A):Y.converters["record<ByteString, ByteString>"](A);throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};fI.exports={fill:uI,Headers:Kt,HeadersList:sn}});var Qn=c((BS,kI)=>{"use strict";var{Headers:Cp,HeadersList:dI,fill:Bp}=Bt(),{extractBody:yI,cloneBody:Ip,mixinBody:cp}=wr(),Fg=G(),{kEnumerableProperty:OA}=Fg,{isValidReasonPhrase:hp,isCancelled:lp,isAborted:up,isBlobLike:fp,serializeJavascriptValueToJSONString:dp,isErrorLike:yp,isomorphicEncode:wp}=jA(),{redirectStatus:Dp,nullBodyStatus:pp,DOMException:Rp}=He(),{kState:z,kHeaders:aA,kGuard:jt,kRealm:WA}=Fe(),{webidl:L}=DA(),{FormData:kp}=ps(),{getGlobalOrigin:Fp}=ur(),{URLSerializer:wI}=ge(),{kHeadersList:Rg}=$(),Ng=require("assert"),{types:kg}=require("util"),pI=globalThis.ReadableStream||require("stream/web").ReadableStream,zt=class A{static error(){let e={settingsObject:{}},t=new A;return t[z]=on(),t[WA]=e,t[aA][Rg]=t[z].headersList,t[aA][jt]="immutable",t[aA][WA]=e,t}static json(e=void 0,t={}){L.argumentLengthCheck(arguments,1,{header:"Response.json"}),t!==null&&(t=L.converters.ResponseInit(t));let r=new TextEncoder("utf-8").encode(dp(e)),s=yI(r),n={settingsObject:{}},i=new A;return i[WA]=n,i[aA][jt]="response",i[aA][WA]=n,DI(i,t,{body:s[0],type:"application/json"}),i}static redirect(e,t=302){let r={settingsObject:{}};L.argumentLengthCheck(arguments,1,{header:"Response.redirect"}),e=L.converters.USVString(e),t=L.converters["unsigned short"](t);let s;try{s=new URL(e,Fp())}catch(o){throw Object.assign(new TypeError("Failed to parse URL from "+e),{cause:o})}if(!Dp.includes(t))throw new RangeError("Invalid status code "+t);let n=new A;n[WA]=r,n[aA][jt]="immutable",n[aA][WA]=r,n[z].status=t;let i=wp(wI(s));return n[z].headersList.append("location",i),n}constructor(e=null,t={}){e!==null&&(e=L.converters.BodyInit(e)),t=L.converters.ResponseInit(t),this[WA]={settingsObject:{}},this[z]=gn({}),this[aA]=new Cp,this[aA][jt]="response",this[aA][Rg]=this[z].headersList,this[aA][WA]=this[WA];let r=null;if(e!=null){let[s,n]=yI(e);r={body:s,type:n}}DI(this,t,r)}get type(){return L.brandCheck(this,A),this[z].type}get url(){L.brandCheck(this,A);let e=this[z].urlList,t=e[e.length-1]??null;return t===null?"":wI(t,!0)}get redirected(){return L.brandCheck(this,A),this[z].urlList.length>1}get status(){return L.brandCheck(this,A),this[z].status}get ok(){return L.brandCheck(this,A),this[z].status>=200&&this[z].status<=299}get statusText(){return L.brandCheck(this,A),this[z].statusText}get headers(){return L.brandCheck(this,A),this[aA]}get body(){return L.brandCheck(this,A),this[z].body?this[z].body.stream:null}get bodyUsed(){return L.brandCheck(this,A),!!this[z].body&&Fg.isDisturbed(this[z].body.stream)}clone(){if(L.brandCheck(this,A),this.bodyUsed||this.body&&this.body.locked)throw L.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let e=mg(this[z]),t=new A;return t[z]=e,t[WA]=this[WA],t[aA][Rg]=e.headersList,t[aA][jt]=this[aA][jt],t[aA][WA]=this[aA][WA],t}};cp(zt);Object.defineProperties(zt.prototype,{type:OA,url:OA,status:OA,ok:OA,redirected:OA,statusText:OA,headers:OA,clone:OA,body:OA,bodyUsed:OA,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(zt,{json:OA,redirect:OA,error:OA});function mg(A){if(A.internalResponse)return RI(mg(A.internalResponse),A.type);let e=gn({...A,body:null});return A.body!=null&&(e.body=Ip(A.body)),e}function gn(A){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...A,headersList:A.headersList?new dI(A.headersList):new dI,urlList:A.urlList?[...A.urlList]:[]}}function on(A){let e=yp(A);return gn({type:"error",status:0,error:e?A:new Error(A&&String(A)),aborted:A&&A.name==="AbortError"})}function nn(A,e){return e={internalResponse:A,...e},new Proxy(A,{get(t,r){return r in e?e[r]:t[r]},set(t,r,s){return Ng(!(r in e)),t[r]=s,!0}})}function RI(A,e){if(e==="basic")return nn(A,{type:"basic",headersList:A.headersList});if(e==="cors")return nn(A,{type:"cors",headersList:A.headersList});if(e==="opaque")return nn(A,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(e==="opaqueredirect")return nn(A,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});Ng(!1)}function Np(A){return Ng(lp(A)),up(A)?on(new Rp("The operation was aborted.","AbortError")):on("Request was cancelled.")}function DI(A,e,t){if(e.status!==null&&(e.status<200||e.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in e&&e.statusText!=null&&!hp(String(e.statusText)))throw new TypeError("Invalid statusText");if("status"in e&&e.status!=null&&(A[z].status=e.status),"statusText"in e&&e.statusText!=null&&(A[z].statusText=e.statusText),"headers"in e&&e.headers!=null&&Bp(A[aA],e.headers),t){if(pp.includes(A.status))throw L.errors.exception({header:"Response constructor",message:"Invalid response status code "+A.status});A[z].body=t.body,t.type!=null&&!A[z].headersList.contains("Content-Type")&&A[z].headersList.append("content-type",t.type)}}L.converters.ReadableStream=L.interfaceConverter(pI);L.converters.FormData=L.interfaceConverter(kp);L.converters.URLSearchParams=L.interfaceConverter(URLSearchParams);L.converters.XMLHttpRequestBodyInit=function(A){return typeof A=="string"?L.converters.USVString(A):fp(A)?L.converters.Blob(A,{strict:!1}):kg.isAnyArrayBuffer(A)||kg.isTypedArray(A)||kg.isDataView(A)?L.converters.BufferSource(A):Fg.isFormDataLike(A)?L.converters.FormData(A,{strict:!1}):A instanceof URLSearchParams?L.converters.URLSearchParams(A):L.converters.DOMString(A)};L.converters.BodyInit=function(A){return A instanceof pI?L.converters.ReadableStream(A):A?.[Symbol.asyncIterator]?A:L.converters.XMLHttpRequestBodyInit(A)};L.converters.ResponseInit=L.dictionaryConverter([{key:"status",converter:L.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:L.converters.ByteString,defaultValue:""},{key:"headers",converter:L.converters.HeadersInit}]);kI.exports={makeNetworkError:on,makeResponse:gn,makeAppropriateNetworkError:Np,filterResponse:RI,Response:zt,cloneResponse:mg}});var Wr=c((IS,LI)=>{"use strict";var{extractBody:mp,mixinBody:bp,cloneBody:Sp}=wr(),{Headers:bg,fill:Up,HeadersList:FI}=Bt(),{FinalizationRegistry:Lp}=Ho()(),qr=G(),{isValidHTTPToken:Mp,sameOrigin:NI,normalizeMethod:Yp,makePolicyContainer:Jp}=jA(),{forbiddenMethods:Gp,corsSafeListedMethods:Tp,referrerPolicy:vp,requestRedirect:Hp,requestMode:Vp,requestCredentials:xp,requestCache:qp,requestDuplex:Wp}=He(),{kEnumerableProperty:oA}=qr,{kHeaders:CA,kSignal:xr,kState:X,kGuard:En,kRealm:PA}=Fe(),{webidl:N}=DA(),{getGlobalOrigin:Op}=ur(),{URLSerializer:Pp}=ge(),{kHeadersList:an}=$(),_p=require("assert"),{getMaxListeners:mI,setMaxListeners:bI,getEventListeners:Zp,defaultMaxListeners:SI}=require("events"),Sg=globalThis.TransformStream,UI=Symbol("init"),Xp=Symbol("abortController"),Kp=new Lp(({signal:A,abort:e})=>{A.removeEventListener("abort",e)}),It=class A{constructor(e,t={}){if(e===UI)return;N.argumentLengthCheck(arguments,1,{header:"Request constructor"}),e=N.converters.RequestInfo(e),t=N.converters.RequestInit(t),this[PA]={settingsObject:{baseUrl:Op(),get origin(){return this.baseUrl?.origin},policyContainer:Jp()}};let r=null,s=null,n=this[PA].settingsObject.baseUrl,i=null;if(typeof e=="string"){let h;try{h=new URL(e,n)}catch(l){throw new TypeError("Failed to parse URL from "+e,{cause:l})}if(h.username||h.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+e);r=Cn({urlList:[h]}),s="cors"}else _p(e instanceof A),r=e[X],i=e[xr];let o=this[PA].settingsObject.origin,g="client";if(r.window?.constructor?.name==="EnvironmentSettingsObject"&&NI(r.window,o)&&(g=r.window),t.window!=null)throw new TypeError(`'window' option '${g}' must be null`);if("window"in t&&(g="no-window"),r=Cn({method:r.method,headersList:r.headersList,unsafeRequest:r.unsafeRequest,client:this[PA].settingsObject,window:g,priority:r.priority,origin:r.origin,referrer:r.referrer,referrerPolicy:r.referrerPolicy,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,integrity:r.integrity,keepalive:r.keepalive,reloadNavigation:r.reloadNavigation,historyNavigation:r.historyNavigation,urlList:[...r.urlList]}),Object.keys(t).length>0&&(r.mode==="navigate"&&(r.mode="same-origin"),r.reloadNavigation=!1,r.historyNavigation=!1,r.origin="client",r.referrer="client",r.referrerPolicy="",r.url=r.urlList[r.urlList.length-1],r.urlList=[r.url]),t.referrer!==void 0){let h=t.referrer;if(h==="")r.referrer="no-referrer";else{let l;try{l=new URL(h,n)}catch(u){throw new TypeError(`Referrer "${h}" is not a valid URL.`,{cause:u})}l.protocol==="about:"&&l.hostname==="client"||o&&!NI(l,this[PA].settingsObject.baseUrl)?r.referrer="client":r.referrer=l}}t.referrerPolicy!==void 0&&(r.referrerPolicy=t.referrerPolicy);let a;if(t.mode!==void 0?a=t.mode:a=s,a==="navigate")throw N.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(a!=null&&(r.mode=a),t.credentials!==void 0&&(r.credentials=t.credentials),t.cache!==void 0&&(r.cache=t.cache),r.cache==="only-if-cached"&&r.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(t.redirect!==void 0&&(r.redirect=t.redirect),t.integrity!==void 0&&t.integrity!=null&&(r.integrity=String(t.integrity)),t.keepalive!==void 0&&(r.keepalive=!!t.keepalive),t.method!==void 0){let h=t.method;if(!Mp(t.method))throw TypeError(`'${t.method}' is not a valid HTTP method.`);if(Gp.indexOf(h.toUpperCase())!==-1)throw TypeError(`'${t.method}' HTTP method is unsupported.`);h=Yp(t.method),r.method=h}t.signal!==void 0&&(i=t.signal),this[X]=r;let Q=new AbortController;if(this[xr]=Q.signal,this[xr][PA]=this[PA],i!=null){if(!i||typeof i.aborted!="boolean"||typeof i.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(i.aborted)Q.abort(i.reason);else{this[Xp]=Q;let h=new WeakRef(Q),l=function(){let u=h.deref();u!==void 0&&u.abort(this.reason)};try{(typeof mI=="function"&&mI(i)===SI||Zp(i,"abort").length>=SI)&&bI(100,i)}catch{}qr.addAbortListener(i,l),Kp.register(Q,{signal:i,abort:l})}}if(this[CA]=new bg,this[CA][an]=r.headersList,this[CA][En]="request",this[CA][PA]=this[PA],a==="no-cors"){if(!Tp.includes(r.method))throw new TypeError(`'${r.method} is unsupported in no-cors mode.`);this[CA][En]="request-no-cors"}if(Object.keys(t).length!==0){let h=new bg(this[CA]);if(t.headers!==void 0&&(h=t.headers),this[CA][an].clear(),h.constructor.name==="Headers")for(let[l,u]of h)this[CA].append(l,u);else Up(this[CA],h)}let E=e instanceof A?e[X].body:null;if((t.body!=null||E!=null)&&(r.method==="GET"||r.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let C=null;if(t.body!=null){let[h,l]=mp(t.body,r.keepalive);C=h,l&&!this[CA][an].contains("content-type")&&this[CA].append("content-type",l)}let B=C??E;if(B!=null&&B.source==null){if(C!=null&&t.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(r.mode!=="same-origin"&&r.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');r.useCORSPreflightFlag=!0}let I=B;if(C==null&&E!=null){if(qr.isDisturbed(E.stream)||E.stream.locked)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");Sg||(Sg=require("stream/web").TransformStream);let h=new Sg;E.stream.pipeThrough(h),I={source:E.source,length:E.length,stream:h.readable}}this[X].body=I}get method(){return N.brandCheck(this,A),this[X].method}get url(){return N.brandCheck(this,A),Pp(this[X].url)}get headers(){return N.brandCheck(this,A),this[CA]}get destination(){return N.brandCheck(this,A),this[X].destination}get referrer(){return N.brandCheck(this,A),this[X].referrer==="no-referrer"?"":this[X].referrer==="client"?"about:client":this[X].referrer.toString()}get referrerPolicy(){return N.brandCheck(this,A),this[X].referrerPolicy}get mode(){return N.brandCheck(this,A),this[X].mode}get credentials(){return this[X].credentials}get cache(){return N.brandCheck(this,A),this[X].cache}get redirect(){return N.brandCheck(this,A),this[X].redirect}get integrity(){return N.brandCheck(this,A),this[X].integrity}get keepalive(){return N.brandCheck(this,A),this[X].keepalive}get isReloadNavigation(){return N.brandCheck(this,A),this[X].reloadNavigation}get isHistoryNavigation(){return N.brandCheck(this,A),this[X].historyNavigation}get signal(){return N.brandCheck(this,A),this[xr]}get body(){return N.brandCheck(this,A),this[X].body?this[X].body.stream:null}get bodyUsed(){return N.brandCheck(this,A),!!this[X].body&&qr.isDisturbed(this[X].body.stream)}get duplex(){return N.brandCheck(this,A),"half"}clone(){if(N.brandCheck(this,A),this.bodyUsed||this.body?.locked)throw new TypeError("unusable");let e=jp(this[X]),t=new A(UI);t[X]=e,t[PA]=this[PA],t[CA]=new bg,t[CA][an]=e.headersList,t[CA][En]=this[CA][En],t[CA][PA]=this[CA][PA];let r=new AbortController;return this.signal.aborted?r.abort(this.signal.reason):qr.addAbortListener(this.signal,()=>{r.abort(this.signal.reason)}),t[xr]=r.signal,t}};bp(It);function Cn(A){let e={method:"GET",localURLsOnly:!1,unsafeRequest:!1,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:!1,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:!1,credentials:"same-origin",useCredentials:!1,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:!1,historyNavigation:!1,userActivation:!1,taintedOrigin:!1,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:!1,done:!1,timingAllowFailed:!1,...A,headersList:A.headersList?new FI(A.headersList):new FI};return e.url=e.urlList[0],e}function jp(A){let e=Cn({...A,body:null});return A.body!=null&&(e.body=Sp(A.body)),e}Object.defineProperties(It.prototype,{method:oA,url:oA,headers:oA,redirect:oA,clone:oA,signal:oA,duplex:oA,destination:oA,body:oA,bodyUsed:oA,isHistoryNavigation:oA,isReloadNavigation:oA,keepalive:oA,integrity:oA,cache:oA,credentials:oA,attribute:oA,referrerPolicy:oA,referrer:oA,mode:oA,[Symbol.toStringTag]:{value:"Request",configurable:!0}});N.converters.Request=N.interfaceConverter(It);N.converters.RequestInfo=function(A){return typeof A=="string"?N.converters.USVString(A):A instanceof It?N.converters.Request(A):N.converters.USVString(A)};N.converters.AbortSignal=N.interfaceConverter(AbortSignal);N.converters.RequestInit=N.dictionaryConverter([{key:"method",converter:N.converters.ByteString},{key:"headers",converter:N.converters.HeadersInit},{key:"body",converter:N.nullableConverter(N.converters.BodyInit)},{key:"referrer",converter:N.converters.USVString},{key:"referrerPolicy",converter:N.converters.DOMString,allowedValues:vp},{key:"mode",converter:N.converters.DOMString,allowedValues:Vp},{key:"credentials",converter:N.converters.DOMString,allowedValues:xp},{key:"cache",converter:N.converters.DOMString,allowedValues:qp},{key:"redirect",converter:N.converters.DOMString,allowedValues:Hp},{key:"integrity",converter:N.converters.DOMString},{key:"keepalive",converter:N.converters.boolean},{key:"signal",converter:N.nullableConverter(A=>N.converters.AbortSignal(A,{strict:!1}))},{key:"window",converter:N.converters.any},{key:"duplex",converter:N.converters.DOMString,allowedValues:Wp}]);LI.exports={Request:It,makeRequest:Cn}});var fn=c((cS,_I)=>{"use strict";var{Response:zp,makeNetworkError:P,makeAppropriateNetworkError:Bn,filterResponse:Ug,makeResponse:In}=Qn(),{Headers:MI}=Bt(),{Request:$p,makeRequest:AR}=Wr(),Or=require("zlib"),{bytesMatch:eR,makePolicyContainer:tR,clonePolicyContainer:rR,requestBadPort:sR,TAOCheck:nR,appendRequestOriginHeader:iR,responseLocationURL:oR,requestCurrentURL:De,setRequestReferrerPolicyOnRedirect:gR,tryUpgradeRequestToAPotentiallyTrustworthyURL:QR,createOpaqueTimingInfo:xg,appendFetchMetadata:ER,corsCheck:aR,crossOriginResourcePolicyCheck:CR,determineRequestsReferrer:BR,coarsenedSharedCurrentTime:qg,createDeferredPromise:IR,isBlobLike:cR,sameOrigin:Tg,isCancelled:$t,isAborted:YI,isErrorLike:hR,fullyReadBody:vI,readableStreamClose:lR,isomorphicEncode:vg,urlIsLocal:uR,urlIsHttpHttpsScheme:Wg,urlHasHttpsScheme:fR}=jA(),{kState:Hg,kHeaders:Lg,kGuard:dR,kRealm:JI}=Fe(),Ar=require("assert"),{safelyExtractBody:cn}=wr(),{redirectStatus:HI,nullBodyStatus:VI,safeMethods:yR,requestBodyHeader:wR,subresource:DR,DOMException:hn}=He(),{kHeadersList:Vg}=$(),pR=require("events"),{Readable:RR,pipeline:kR}=require("stream"),{addAbortListener:FR,isErrored:NR,isReadable:ln,nodeMajor:GI,nodeMinor:mR}=G(),{dataURLProcessor:bR,serializeAMimeType:SR}=ge(),{TransformStream:UR}=require("stream/web"),{getGlobalDispatcher:LR}=Xt(),{webidl:MR}=DA(),{STATUS_CODES:YR}=require("http"),Mg,Yg=globalThis.ReadableStream,un=class extends pR{constructor(e){super(),this.dispatcher=e,this.connection=null,this.dump=!1,this.state="ongoing",this.setMaxListeners(21)}terminate(e){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(e),this.emit("terminated",e))}abort(e){this.state==="ongoing"&&(this.state="aborted",e||(e=new hn("The operation was aborted.","AbortError")),this.serializedAbortReason=e,this.connection?.destroy(e),this.emit("terminated",e))}};async function JR(A,e={}){MR.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});let t=IR(),r;try{r=new $p(A,e)}catch(C){return t.reject(C),t.promise}let s=r[Hg];if(r.signal.aborted)return Jg(t,s,null,r.signal.reason),t.promise;s.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(s.serviceWorkers="none");let i=null,o=null,g=!1,a=null;return FR(r.signal,()=>{g=!0,Ar(a!=null),a.abort(r.signal.reason),Jg(t,s,i,r.signal.reason)}),a=qI({request:s,processResponseEndOfBody:C=>xI(C,"fetch"),processResponse:C=>{if(!g){if(C.aborted){Jg(t,s,i,a.serializedAbortReason);return}if(C.type==="error"){t.reject(Object.assign(new TypeError("fetch failed"),{cause:C.error}));return}i=new zp,i[Hg]=C,i[JI]=o,i[Lg][Vg]=C.headersList,i[Lg][dR]="immutable",i[Lg][JI]=o,t.resolve(i)}},dispatcher:e.dispatcher??LR()}),t.promise}function xI(A,e="other"){if(A.type==="error"&&A.aborted||!A.urlList?.length)return;let t=A.urlList[0],r=A.timingInfo,s=A.cacheState;Wg(t)&&r!==null&&(r.timingAllowPassed||(r=xg({startTime:r.startTime}),s=""),r.endTime=qg(),A.timingInfo=r,GR(r,t,e,globalThis,s))}function GR(A,e,t,r,s){(GI>18||GI===18&&mR>=2)&&performance.markResourceTiming(A,e.href,t,r,s)}function Jg(A,e,t,r){if(r||(r=new hn("The operation was aborted.","AbortError")),A.reject(r),e.body!=null&&ln(e.body?.stream)&&e.body.stream.cancel(r).catch(n=>{if(n.code!=="ERR_INVALID_STATE")throw n}),t==null)return;let s=t[Hg];s.body!=null&&ln(s.body?.stream)&&s.body.stream.cancel(r).catch(n=>{if(n.code!=="ERR_INVALID_STATE")throw n})}function qI({request:A,processRequestBodyChunkLength:e,processRequestEndOfBody:t,processResponse:r,processResponseEndOfBody:s,processResponseConsumeBody:n,useParallelQueue:i=!1,dispatcher:o}){let g=null,a=!1;A.client!=null&&(g=A.client.globalObject,a=A.client.crossOriginIsolatedCapability);let Q=qg(a),E=xg({startTime:Q}),C={controller:new un(o),request:A,timingInfo:E,processRequestBodyChunkLength:e,processRequestEndOfBody:t,processResponse:r,processResponseConsumeBody:n,processResponseEndOfBody:s,taskDestination:g,crossOriginIsolatedCapability:a};return Ar(!A.body||A.body.stream),A.window==="client"&&(A.window=A.client?.globalObject?.constructor?.name==="Window"?A.client:"no-window"),A.origin==="client"&&(A.origin=A.client?.origin),A.policyContainer==="client"&&(A.client!=null?A.policyContainer=rR(A.client.policyContainer):A.policyContainer=tR()),A.headersList.contains("accept")||A.headersList.append("accept","*/*"),A.headersList.contains("accept-language")||A.headersList.append("accept-language","*"),A.priority,DR.includes(A.destination),WI(C).catch(B=>{C.controller.terminate(B)}),C.controller}async function WI(A,e=!1){let t=A.request,r=null;if(t.localURLsOnly&&!uR(De(t))&&(r=P("local URLs only")),QR(t),sR(t)==="blocked"&&(r=P("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=BR(t)),r===null&&(r=await(async()=>{let n=De(t);return Tg(n,t.url)&&t.responseTainting==="basic"||n.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await TI(A)):t.mode==="same-origin"?P('request mode cannot be "same-origin"'):t.mode==="no-cors"?t.redirect!=="follow"?P('redirect mode cannot be "follow" for "no-cors" request'):(t.responseTainting="opaque",await TI(A)):Wg(De(t))?(t.responseTainting="cors",await OI(A)):P("URL scheme must be a HTTP(S) scheme")})()),e)return r;r.status!==0&&!r.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?r=Ug(r,"basic"):t.responseTainting==="cors"?r=Ug(r,"cors"):t.responseTainting==="opaque"?r=Ug(r,"opaque"):Ar(!1));let s=r.status===0?r:r.internalResponse;if(s.urlList.length===0&&s.urlList.push(...t.urlList),t.timingAllowFailed||(r.timingAllowPassed=!0),r.type==="opaque"&&s.status===206&&s.rangeRequested&&!t.headers.contains("range")&&(r=s=P()),r.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||VI.includes(s.status))&&(s.body=null,A.controller.dump=!0),t.integrity){let n=o=>Gg(A,P(o));if(t.responseTainting==="opaque"||r.body==null){n(r.error);return}let i=o=>{if(!eR(o,t.integrity)){n("integrity mismatch");return}r.body=cn(o)[0],Gg(A,r)};await vI(r.body,i,n)}else Gg(A,r)}async function TI(A){if($t(A)&&A.request.redirectCount===0)return Bn(A);let{request:e}=A,{protocol:t}=De(e);switch(t){case"about:":return P("about scheme is not supported");case"blob:":{Mg||(Mg=require("buffer").resolveObjectURL);let r=De(e);if(r.search.length!==0)return P("NetworkError when attempting to fetch resource.");let s=Mg(r.toString());if(e.method!=="GET"||!cR(s))return P("invalid method");let n=cn(s),i=n[0],o=vg(`${i.length}`),g=n[1]??"",a=In({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:o}],["content-type",{name:"Content-Type",value:g}]]});return a.body=i,a}case"data:":{let r=De(e),s=bR(r);if(s==="failure")return P("failed to fetch the data URL");let n=SR(s.mimeType);return In({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:n}]],body:cn(s.body)[0]})}case"file:":return P("not implemented... yet...");case"http:":case"https:":return await OI(A).catch(r=>P(r));default:return P("unknown scheme")}}function TR(A,e){A.request.done=!0,A.processResponseDone!=null&&queueMicrotask(()=>A.processResponseDone(e))}async function Gg(A,e){e.type==="error"&&(e.urlList=[A.request.urlList[0]],e.timingInfo=xg({startTime:A.timingInfo.startTime}));let t=()=>{A.request.done=!0,A.processResponseEndOfBody!=null&&queueMicrotask(()=>A.processResponseEndOfBody(e))};if(A.processResponse!=null&&queueMicrotask(()=>A.processResponse(e)),e.body==null)t();else{let r=(n,i)=>{i.enqueue(n)},s=new UR({start(){},transform:r,flush:t},{size(){return 1}},{size(){return 1}});e.body={stream:e.body.stream.pipeThrough(s)}}if(A.processResponseConsumeBody!=null){let r=n=>A.processResponseConsumeBody(e,n),s=n=>A.processResponseConsumeBody(e,n);e.body==null?queueMicrotask(()=>r(null)):await vI(e.body,r,s)}}async function OI(A){let e=A.request,t=null,r=null,s=A.timingInfo;if(e.serviceWorkers,t===null){if(e.redirect==="follow"&&(e.serviceWorkers="none"),r=t=await PI(A),e.responseTainting==="cors"&&aR(e,t)==="failure")return P("cors failure");nR(e,t)==="failure"&&(e.timingAllowFailed=!0)}return(e.responseTainting==="opaque"||t.type==="opaque")&&CR(e.origin,e.client,e.destination,r)==="blocked"?P("blocked"):(HI.includes(r.status)&&(e.redirect!=="manual"&&A.controller.connection.destroy(),e.redirect==="error"?t=P("unexpected redirect"):e.redirect==="manual"?t=r:e.redirect==="follow"?t=await vR(A,t):Ar(!1)),t.timingInfo=s,t)}async function vR(A,e){let t=A.request,r=e.internalResponse?e.internalResponse:e,s;try{if(s=oR(r,De(t).hash),s==null)return e}catch(i){return P(i)}if(!Wg(s))return P("URL scheme must be a HTTP(S) scheme");if(t.redirectCount===20)return P("redirect count exceeded");if(t.redirectCount+=1,t.mode==="cors"&&(s.username||s.password)&&!Tg(t,s))return P('cross origin not allowed for request mode "cors"');if(t.responseTainting==="cors"&&(s.username||s.password))return P('URL cannot contain credentials for request mode "cors"');if(r.status!==303&&t.body!=null&&t.body.source==null)return P();if([301,302].includes(r.status)&&t.method==="POST"||r.status===303&&!["GET","HEAD"].includes(t.method)){t.method="GET",t.body=null;for(let i of wR)t.headersList.delete(i)}Tg(De(t),s)||t.headersList.delete("authorization"),t.body!=null&&(Ar(t.body.source!=null),t.body=cn(t.body.source)[0]);let n=A.timingInfo;return n.redirectEndTime=n.postRedirectStartTime=qg(A.crossOriginIsolatedCapability),n.redirectStartTime===0&&(n.redirectStartTime=n.startTime),t.urlList.push(s),gR(t,r),WI(A,!0)}async function PI(A,e=!1,t=!1){let r=A.request,s=null,n=null,i=null,o=null,g=!1;r.window==="no-window"&&r.redirect==="error"?(s=A,n=r):(n=AR(r),s={...A},s.request=n);let a=r.credentials==="include"||r.credentials==="same-origin"&&r.responseTainting==="basic",Q=n.body?n.body.length:null,E=null;if(n.body==null&&["POST","PUT"].includes(n.method)&&(E="0"),Q!=null&&(E=vg(`${Q}`)),E!=null&&n.headersList.append("content-length",E),Q!=null&&n.keepalive,n.referrer instanceof URL&&n.headersList.append("referer",vg(n.referrer.href)),iR(n),ER(n),n.headersList.contains("user-agent")||n.headersList.append("user-agent","undici"),n.cache==="default"&&(n.headersList.contains("if-modified-since")||n.headersList.contains("if-none-match")||n.headersList.contains("if-unmodified-since")||n.headersList.contains("if-match")||n.headersList.contains("if-range"))&&(n.cache="no-store"),n.cache==="no-cache"&&!n.preventNoCacheCacheControlHeaderModification&&!n.headersList.contains("cache-control")&&n.headersList.append("cache-control","max-age=0"),(n.cache==="no-store"||n.cache==="reload")&&(n.headersList.contains("pragma")||n.headersList.append("pragma","no-cache"),n.headersList.contains("cache-control")||n.headersList.append("cache-control","no-cache")),n.headersList.contains("range")&&n.headersList.append("accept-encoding","identity"),n.headersList.contains("accept-encoding")||(fR(De(n))?n.headersList.append("accept-encoding","br, gzip, deflate"):n.headersList.append("accept-encoding","gzip, deflate")),o==null&&(n.cache="no-store"),n.mode!=="no-store"&&n.mode,i==null){if(n.mode==="only-if-cached")return P("only if cached");let C=await HR(s,a,t);!yR.includes(n.method)&&C.status>=200&&C.status<=399,g&&C.status,i==null&&(i=C)}if(i.urlList=[...n.urlList],n.headersList.contains("range")&&(i.rangeRequested=!0),i.requestIncludesCredentials=a,i.status===407)return r.window==="no-window"?P():$t(A)?Bn(A):P("proxy authentication required");if(i.status===421&&!t&&(r.body==null||r.body.source!=null)){if($t(A))return Bn(A);A.controller.connection.destroy(),i=await PI(A,e,!0)}return i}async function HR(A,e=!1,t=!1){Ar(!A.controller.connection||A.controller.connection.destroyed),A.controller.connection={abort:null,destroyed:!1,destroy(I){this.destroyed||(this.destroyed=!0,this.abort?.(I??new hn("The operation was aborted.","AbortError")))}};let r=A.request,s=null,n=A.timingInfo;null==null&&(r.cache="no-store");let o=t?"yes":"no";r.mode;let g=null;if(r.body==null&&A.processRequestEndOfBody)queueMicrotask(()=>A.processRequestEndOfBody());else if(r.body!=null){let I=async function*(u){$t(A)||(yield u,A.processRequestBodyChunkLength?.(u.byteLength))},h=()=>{$t(A)||A.processRequestEndOfBody&&A.processRequestEndOfBody()},l=u=>{$t(A)||(u.name==="AbortError"?A.controller.abort():A.controller.terminate(u))};g=async function*(){try{for await(let u of r.body.stream)yield*I(u);h()}catch(u){l(u)}}()}try{let{body:I,status:h,statusText:l,headersList:u,socket:F}=await B({body:g});if(F)s=In({status:h,statusText:l,headersList:u,socket:F});else{let w=I[Symbol.asyncIterator]();A.controller.next=()=>w.next(),s=In({status:h,statusText:l,headersList:u})}}catch(I){return I.name==="AbortError"?(A.controller.connection.destroy(),Bn(A)):P(I)}let a=()=>{A.controller.resume()},Q=I=>{A.controller.abort(I)};Yg||(Yg=require("stream/web").ReadableStream);let E=new Yg({async start(I){A.controller.controller=I},async pull(I){await a(I)},async cancel(I){await Q(I)}},{highWaterMark:0,size(){return 1}});s.body={stream:E},A.controller.on("terminated",C),A.controller.resume=async()=>{for(;;){let I,h;try{let{done:l,value:u}=await A.controller.next();if(YI(A))break;I=l?void 0:u}catch(l){A.controller.ended&&!n.encodedBodySize?I=void 0:(I=l,h=!0)}if(I===void 0){lR(A.controller.controller),TR(A,s);return}if(n.decodedBodySize+=I?.byteLength??0,h){A.controller.terminate(I);return}if(A.controller.controller.enqueue(new Uint8Array(I)),NR(E)){A.controller.terminate();return}if(!A.controller.controller.desiredSize)return}};function C(I){YI(A)?(s.aborted=!0,ln(E)&&A.controller.controller.error(A.controller.serializedAbortReason)):ln(E)&&A.controller.controller.error(new TypeError("terminated",{cause:hR(I)?I:void 0})),A.controller.connection.destroy()}return s;async function B({body:I}){let h=De(r),l=A.controller.dispatcher;return new Promise((u,F)=>l.dispatch({path:h.pathname+h.search,origin:h.origin,method:r.method,body:A.controller.dispatcher.isMockActive?r.body&&r.body.source:I,headers:r.headersList.entries,maxRedirections:0,upgrade:r.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(w){let{connection:k}=A.controller;k.destroyed?w(new hn("The operation was aborted.","AbortError")):(A.controller.on("terminated",w),this.abort=k.abort=w)},onHeaders(w,k,T,O){if(w<200)return;let V=[],K="",uA=new MI;for(let wA=0;wA<k.length;wA+=2){let gA=k[wA+0].toString("latin1"),Be=k[wA+1].toString("latin1");gA.toLowerCase()==="content-encoding"?V=Be.toLowerCase().split(",").map(_=>_.trim()).reverse():gA.toLowerCase()==="location"&&(K=Be),uA.append(gA,Be)}this.body=new RR({read:T});let IA=[],wt=r.redirect==="follow"&&K&&HI.includes(w);if(r.method!=="HEAD"&&r.method!=="CONNECT"&&!VI.includes(w)&&!wt)for(let wA of V)if(wA==="x-gzip"||wA==="gzip")IA.push(Or.createGunzip({flush:Or.constants.Z_SYNC_FLUSH,finishFlush:Or.constants.Z_SYNC_FLUSH}));else if(wA==="deflate")IA.push(Or.createInflate());else if(wA==="br")IA.push(Or.createBrotliDecompress());else{IA.length=0;break}return u({status:w,statusText:O,headersList:uA[Vg],body:IA.length?kR(this.body,...IA,()=>{}):this.body.on("error",()=>{})}),!0},onData(w){if(A.controller.dump)return;let k=w;return n.encodedBodySize+=k.byteLength,this.body.push(k)},onComplete(){this.abort&&A.controller.off("terminated",this.abort),A.controller.ended=!0,this.body.push(null)},onError(w){this.abort&&A.controller.off("terminated",this.abort),this.body?.destroy(w),A.controller.terminate(w),F(w)},onUpgrade(w,k,T){if(w!==101)return;let O=new MI;for(let V=0;V<k.length;V+=2){let K=k[V+0].toString("latin1"),uA=k[V+1].toString("latin1");O.append(K,uA)}return u({status:w,statusText:YR[w],headersList:O[Vg],socket:T}),!0}}))}}_I.exports={fetch:JR,Fetch:un,fetching:qI,finalizeAndReportTiming:xI}});var Og=c((hS,ZI)=>{"use strict";ZI.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var KI=c((lS,XI)=>{"use strict";var{webidl:_A}=DA(),dn=Symbol("ProgressEvent state"),Pg=class A extends Event{constructor(e,t={}){e=_A.converters.DOMString(e),t=_A.converters.ProgressEventInit(t??{}),super(e,t),this[dn]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return _A.brandCheck(this,A),this[dn].lengthComputable}get loaded(){return _A.brandCheck(this,A),this[dn].loaded}get total(){return _A.brandCheck(this,A),this[dn].total}};_A.converters.ProgressEventInit=_A.dictionaryConverter([{key:"lengthComputable",converter:_A.converters.boolean,defaultValue:!1},{key:"loaded",converter:_A.converters["unsigned long long"],defaultValue:0},{key:"total",converter:_A.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:_A.converters.boolean,defaultValue:!1},{key:"cancelable",converter:_A.converters.boolean,defaultValue:!1},{key:"composed",converter:_A.converters.boolean,defaultValue:!1}]);XI.exports={ProgressEvent:Pg}});var zI=c((uS,jI)=>{"use strict";function VR(A){if(!A)return"failure";switch(A.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}jI.exports={getEncoding:VR}});var ic=c((fS,nc)=>{"use strict";var{kState:er,kError:Zg,kResult:$I,kAborted:Pr,kLastProgressEventFired:Xg}=Og(),{ProgressEvent:xR}=KI(),{getEncoding:Ac}=zI(),{DOMException:qR}=He(),{serializeAMimeType:WR,parseMIMEType:ec}=ge(),{types:OR}=require("util"),{StringDecoder:tc}=require("string_decoder"),{btoa:rc}=require("buffer"),PR={enumerable:!0,writable:!1,configurable:!1};function _R(A,e,t,r){if(A[er]==="loading")throw new qR("Invalid state","InvalidStateError");A[er]="loading",A[$I]=null,A[Zg]=null;let n=e.stream().getReader(),i=[],o=n.read(),g=!0;(async()=>{for(;!A[Pr];)try{let{done:a,value:Q}=await o;if(g&&!A[Pr]&&queueMicrotask(()=>{Xe("loadstart",A)}),g=!1,!a&&OR.isUint8Array(Q))i.push(Q),(A[Xg]===void 0||Date.now()-A[Xg]>=50)&&!A[Pr]&&(A[Xg]=Date.now(),queueMicrotask(()=>{Xe("progress",A)})),o=n.read();else if(a){queueMicrotask(()=>{A[er]="done";try{let E=ZR(i,t,e.type,r);if(A[Pr])return;A[$I]=E,Xe("load",A)}catch(E){A[Zg]=E,Xe("error",A)}A[er]!=="loading"&&Xe("loadend",A)});break}}catch(a){if(A[Pr])return;queueMicrotask(()=>{A[er]="done",A[Zg]=a,Xe("error",A),A[er]!=="loading"&&Xe("loadend",A)});break}})()}function Xe(A,e){let t=new xR(A,{bubbles:!1,cancelable:!1});e.dispatchEvent(t)}function ZR(A,e,t,r){switch(e){case"DataURL":{let s="data:",n=ec(t||"application/octet-stream");n!=="failure"&&(s+=WR(n)),s+=";base64,";let i=new tc("latin1");for(let o of A)s+=rc(i.write(o));return s+=rc(i.end()),s}case"Text":{let s="failure";if(r&&(s=Ac(r)),s==="failure"&&t){let n=ec(t);n!=="failure"&&(s=Ac(n.parameters.get("charset")))}return s==="failure"&&(s="UTF-8"),XR(A,s)}case"ArrayBuffer":return sc(A).buffer;case"BinaryString":{let s="",n=new tc("latin1");for(let i of A)s+=n.write(i);return s+=n.end(),s}}}function XR(A,e){let t=sc(A),r=KR(t),s=0;r!==null&&(e=r,s=r==="UTF-8"?3:2);let n=t.slice(s);return new TextDecoder(e).decode(n)}function KR(A){let[e,t,r]=A;return e===239&&t===187&&r===191?"UTF-8":e===254&&t===255?"UTF-16BE":e===255&&t===254?"UTF-16LE":null}function sc(A){let e=A.reduce((r,s)=>r+s.byteLength,0),t=0;return A.reduce((r,s)=>(r.set(s,t),t+=s.byteLength,r),new Uint8Array(e))}nc.exports={staticPropertyDescriptors:PR,readOperation:_R,fireAProgressEvent:Xe}});var Ec=c((dS,Qc)=>{"use strict";var{staticPropertyDescriptors:tr,readOperation:yn,fireAProgressEvent:oc}=ic(),{kState:ct,kError:gc,kResult:wn,kEvents:v,kAborted:jR}=Og(),{webidl:W}=DA(),{kEnumerableProperty:MA}=G(),ae=class A extends EventTarget{constructor(){super(),this[ct]="empty",this[wn]=null,this[gc]=null,this[v]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(e){W.brandCheck(this,A),W.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"}),e=W.converters.Blob(e,{strict:!1}),yn(this,e,"ArrayBuffer")}readAsBinaryString(e){W.brandCheck(this,A),W.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"}),e=W.converters.Blob(e,{strict:!1}),yn(this,e,"BinaryString")}readAsText(e,t=void 0){W.brandCheck(this,A),W.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"}),e=W.converters.Blob(e,{strict:!1}),t!==void 0&&(t=W.converters.DOMString(t)),yn(this,e,"Text",t)}readAsDataURL(e){W.brandCheck(this,A),W.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"}),e=W.converters.Blob(e,{strict:!1}),yn(this,e,"DataURL")}abort(){if(this[ct]==="empty"||this[ct]==="done"){this[wn]=null;return}this[ct]==="loading"&&(this[ct]="done",this[wn]=null),this[jR]=!0,oc("abort",this),this[ct]!=="loading"&&oc("loadend",this)}get readyState(){switch(W.brandCheck(this,A),this[ct]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return W.brandCheck(this,A),this[wn]}get error(){return W.brandCheck(this,A),this[gc]}get onloadend(){return W.brandCheck(this,A),this[v].loadend}set onloadend(e){W.brandCheck(this,A),this[v].loadend&&this.removeEventListener("loadend",this[v].loadend),typeof e=="function"?(this[v].loadend=e,this.addEventListener("loadend",e)):this[v].loadend=null}get onerror(){return W.brandCheck(this,A),this[v].error}set onerror(e){W.brandCheck(this,A),this[v].error&&this.removeEventListener("error",this[v].error),typeof e=="function"?(this[v].error=e,this.addEventListener("error",e)):this[v].error=null}get onloadstart(){return W.brandCheck(this,A),this[v].loadstart}set onloadstart(e){W.brandCheck(this,A),this[v].loadstart&&this.removeEventListener("loadstart",this[v].loadstart),typeof e=="function"?(this[v].loadstart=e,this.addEventListener("loadstart",e)):this[v].loadstart=null}get onprogress(){return W.brandCheck(this,A),this[v].progress}set onprogress(e){W.brandCheck(this,A),this[v].progress&&this.removeEventListener("progress",this[v].progress),typeof e=="function"?(this[v].progress=e,this.addEventListener("progress",e)):this[v].progress=null}get onload(){return W.brandCheck(this,A),this[v].load}set onload(e){W.brandCheck(this,A),this[v].load&&this.removeEventListener("load",this[v].load),typeof e=="function"?(this[v].load=e,this.addEventListener("load",e)):this[v].load=null}get onabort(){return W.brandCheck(this,A),this[v].abort}set onabort(e){W.brandCheck(this,A),this[v].abort&&this.removeEventListener("abort",this[v].abort),typeof e=="function"?(this[v].abort=e,this.addEventListener("abort",e)):this[v].abort=null}};ae.EMPTY=ae.prototype.EMPTY=0;ae.LOADING=ae.prototype.LOADING=1;ae.DONE=ae.prototype.DONE=2;Object.defineProperties(ae.prototype,{EMPTY:tr,LOADING:tr,DONE:tr,readAsArrayBuffer:MA,readAsBinaryString:MA,readAsText:MA,readAsDataURL:MA,abort:MA,readyState:MA,result:MA,error:MA,onloadstart:MA,onprogress:MA,onload:MA,onabort:MA,onerror:MA,onloadend:MA,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(ae,{EMPTY:tr,LOADING:tr,DONE:tr});Qc.exports={FileReader:ae}});var Dn=c((yS,ac)=>{"use strict";ac.exports={kConstruct:Symbol("constructable")}});var Ic=c((wS,Bc)=>{"use strict";var zR=require("assert"),{URLSerializer:Cc}=ge(),{isValidHeaderName:$R}=jA();function Ak(A,e,t=!1){let r=Cc(A,t),s=Cc(e,t);return r===s}function ek(A){zR(A!==null);let e=[];for(let t of A.split(",")){if(t=t.trim(),t.length){if(!$R(t))continue}else continue;e.push(t)}return e}Bc.exports={urlEquals:Ak,fieldValues:ek}});var dc=c((DS,fc)=>{"use strict";var{kConstruct:tk}=Dn(),{urlEquals:rk,fieldValues:Kg}=Ic(),{kEnumerableProperty:ht,isDisturbed:sk}=G(),{kHeadersList:cc}=$(),{webidl:p}=DA(),{Response:lc,cloneResponse:nk}=Qn(),{Request:pe}=Wr(),{kState:FA,kHeaders:pn,kGuard:hc,kRealm:ik}=Fe(),{fetching:ok}=fn(),{urlIsHttpHttpsScheme:Rn,createDeferredPromise:rr,readAllBytes:gk}=jA(),jg=require("assert"),{getGlobalDispatcher:Qk}=Xt(),kn=class A{#A;constructor(){arguments[0]!==tk&&p.illegalConstructor(),this.#A=arguments[1]}async match(e,t={}){p.brandCheck(this,A),p.argumentLengthCheck(arguments,1,{header:"Cache.match"}),e=p.converters.RequestInfo(e),t=p.converters.CacheQueryOptions(t);let r=await this.matchAll(e,t);if(r.length!==0)return r[0]}async matchAll(e=void 0,t={}){p.brandCheck(this,A),e!==void 0&&(e=p.converters.RequestInfo(e)),t=p.converters.CacheQueryOptions(t);let r=null;if(e!==void 0)if(e instanceof pe){if(r=e[FA],r.method!=="GET"&&!t.ignoreMethod)return[]}else typeof e=="string"&&(r=new pe(e)[FA]);let s=[];if(e===void 0)for(let i of this.#A)s.push(i[1]);else{let i=this.#r(r,t);for(let o of i)s.push(o[1])}let n=[];for(let i of s){let o=new lc(i.body?.source??null),g=o[FA].body;o[FA]=i,o[FA].body=g,o[pn][cc]=i.headersList,o[pn][hc]="immutable",n.push(o)}return Object.freeze(n)}async add(e){p.brandCheck(this,A),p.argumentLengthCheck(arguments,1,{header:"Cache.add"}),e=p.converters.RequestInfo(e);let t=[e];return await this.addAll(t)}async addAll(e){p.brandCheck(this,A),p.argumentLengthCheck(arguments,1,{header:"Cache.addAll"}),e=p.converters["sequence<RequestInfo>"](e);let t=[],r=[];for(let E of e){if(typeof E=="string")continue;let C=E[FA];if(!Rn(C.url)||C.method!=="GET")throw p.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}let s=[];for(let E of e){let C=new pe(E)[FA];if(!Rn(C.url))throw p.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."});C.initiator="fetch",C.destination="subresource",r.push(C);let B=rr();s.push(ok({request:C,dispatcher:Qk(),processResponse(I){if(I.type==="error"||I.status===206||I.status<200||I.status>299)B.reject(p.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(I.headersList.contains("vary")){let h=Kg(I.headersList.get("vary"));for(let l of h)if(l==="*"){B.reject(p.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let u of s)u.abort();return}}},processResponseEndOfBody(I){if(I.aborted){B.reject(new DOMException("aborted","AbortError"));return}B.resolve(I)}})),t.push(B.promise)}let i=await Promise.all(t),o=[],g=0;for(let E of i){let C={type:"put",request:r[g],response:E};o.push(C),g++}let a=rr(),Q=null;try{this.#t(o)}catch(E){Q=E}return queueMicrotask(()=>{Q===null?a.resolve(void 0):a.reject(Q)}),a.promise}async put(e,t){p.brandCheck(this,A),p.argumentLengthCheck(arguments,2,{header:"Cache.put"}),e=p.converters.RequestInfo(e),t=p.converters.Response(t);let r=null;if(e instanceof pe?r=e[FA]:r=new pe(e)[FA],!Rn(r.url)||r.method!=="GET")throw p.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"});let s=t[FA];if(s.status===206)throw p.errors.exception({header:"Cache.put",message:"Got 206 status"});if(s.headersList.contains("vary")){let C=Kg(s.headersList.get("vary"));for(let B of C)if(B==="*")throw p.errors.exception({header:"Cache.put",message:"Got * vary field value"})}if(s.body&&(sk(s.body.stream)||s.body.stream.locked))throw p.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"});let n=nk(s),i=rr();if(s.body!=null){let B=s.body.stream.getReader();gk(B,I=>i.resolve(I),I=>i.reject(I))}else i.resolve(void 0);let o=[],g={type:"put",request:r,response:n};o.push(g);let a=await i.promise;n.body!=null&&(n.body.source=a);let Q=rr(),E=null;try{this.#t(o)}catch(C){E=C}return queueMicrotask(()=>{E===null?Q.resolve():Q.reject(E)}),Q.promise}async delete(e,t={}){p.brandCheck(this,A),p.argumentLengthCheck(arguments,1,{header:"Cache.delete"}),e=p.converters.RequestInfo(e),t=p.converters.CacheQueryOptions(t);let r=null;if(e instanceof pe){if(r=e[FA],r.method!=="GET"&&!t.ignoreMethod)return!1}else jg(typeof e=="string"),r=new pe(e)[FA];let s=[],n={type:"delete",request:r,options:t};s.push(n);let i=rr(),o=null,g;try{g=this.#t(s)}catch(a){o=a}return queueMicrotask(()=>{o===null?i.resolve(!!g?.length):i.reject(o)}),i.promise}async keys(e=void 0,t={}){p.brandCheck(this,A),e!==void 0&&(e=p.converters.RequestInfo(e)),t=p.converters.CacheQueryOptions(t);let r=null;if(e!==void 0)if(e instanceof pe){if(r=e[FA],r.method!=="GET"&&!t.ignoreMethod)return[]}else typeof e=="string"&&(r=new pe(e)[FA]);let s=rr(),n=[];if(e===void 0)for(let i of this.#A)n.push(i[0]);else{let i=this.#r(r,t);for(let o of i)n.push(o[0])}return queueMicrotask(()=>{let i=[];for(let o of n){let g=new pe("https://a");g[FA]=o,g[pn][cc]=o.headersList,g[pn][hc]="immutable",g[ik]=o.client,i.push(g)}s.resolve(Object.freeze(i))}),s.promise}#t(e){let t=this.#A,r=[...t],s=[],n=[];try{for(let i of e){if(i.type!=="delete"&&i.type!=="put")throw p.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(i.type==="delete"&&i.response!=null)throw p.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#r(i.request,i.options,s).length)throw new DOMException("???","InvalidStateError");let o;if(i.type==="delete"){if(o=this.#r(i.request,i.options),o.length===0)return[];for(let g of o){let a=t.indexOf(g);jg(a!==-1),t.splice(a,1)}}else if(i.type==="put"){if(i.response==null)throw p.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let g=i.request;if(!Rn(g.url))throw p.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(g.method!=="GET")throw p.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(i.options!=null)throw p.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});o=this.#r(i.request);for(let a of o){let Q=t.indexOf(a);jg(Q!==-1),t.splice(Q,1)}t.push([i.request,i.response]),s.push([i.request,i.response])}n.push([i.request,i.response])}return n}catch(i){throw this.#A.length=0,this.#A=r,i}}#r(e,t,r){let s=[],n=r??this.#A;for(let i of n){let[o,g]=i;this.#e(e,o,g,t)&&s.push(i)}return s}#e(e,t,r=null,s){let n=new URL(e.url),i=new URL(t.url);if(s?.ignoreSearch&&(i.search="",n.search=""),!rk(n,i,!0))return!1;if(r==null||s?.ignoreVary||!r.headersList.contains("vary"))return!0;let o=Kg(r.headersList.get("vary"));for(let g of o){if(g==="*")return!1;let a=t.headersList.get(g),Q=e.headersList.get(g);if(a!==Q)return!1}return!0}};Object.defineProperties(kn.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:ht,matchAll:ht,add:ht,addAll:ht,put:ht,delete:ht,keys:ht});var uc=[{key:"ignoreSearch",converter:p.converters.boolean,defaultValue:!1},{key:"ignoreMethod",converter:p.converters.boolean,defaultValue:!1},{key:"ignoreVary",converter:p.converters.boolean,defaultValue:!1}];p.converters.CacheQueryOptions=p.dictionaryConverter(uc);p.converters.MultiCacheQueryOptions=p.dictionaryConverter([...uc,{key:"cacheName",converter:p.converters.DOMString}]);p.converters.Response=p.interfaceConverter(lc);p.converters["sequence<RequestInfo>"]=p.sequenceConverter(p.converters.RequestInfo);fc.exports={Cache:kn}});var wc=c((pS,yc)=>{"use strict";var{kConstruct:_r}=Dn(),{Cache:Fn}=dc(),{webidl:NA}=DA(),{kEnumerableProperty:Zr}=G(),Nn=class A{#A=new Map;constructor(){arguments[0]!==_r&&NA.illegalConstructor()}async match(e,t={}){if(NA.brandCheck(this,A),NA.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"}),e=NA.converters.RequestInfo(e),t=NA.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#A.has(t.cacheName)){let r=this.#A.get(t.cacheName);return await new Fn(_r,r).match(e,t)}}else for(let r of this.#A.values()){let n=await new Fn(_r,r).match(e,t);if(n!==void 0)return n}}async has(e){return NA.brandCheck(this,A),NA.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"}),e=NA.converters.DOMString(e),this.#A.has(e)}async open(e){if(NA.brandCheck(this,A),NA.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"}),e=NA.converters.DOMString(e),this.#A.has(e)){let r=this.#A.get(e);return new Fn(_r,r)}let t=[];return this.#A.set(e,t),new Fn(_r,t)}async delete(e){return NA.brandCheck(this,A),NA.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"}),e=NA.converters.DOMString(e),this.#A.delete(e)}async keys(){return NA.brandCheck(this,A),[...this.#A.keys()]}};Object.defineProperties(Nn.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:Zr,has:Zr,open:Zr,delete:Zr,keys:Zr});yc.exports={CacheStorage:Nn}});var pc=c((RS,Dc)=>{"use strict";Dc.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var zg=c((kS,Fc)=>{"use strict";var Rc=require("assert"),{kHeadersList:kc}=$();function Ek(A){if(A.length===0)return!1;for(let e of A){let t=e.charCodeAt(0);if(t>=0||t<=8||t>=10||t<=31||t===127)return!1}}function ak(A){for(let e of A){let t=e.charCodeAt(0);if(t<=32||t>127||e==="("||e===")"||e===">"||e==="<"||e==="@"||e===","||e===";"||e===":"||e==="\\"||e==='"'||e==="/"||e==="["||e==="]"||e==="?"||e==="="||e==="{"||e==="}")throw new Error("Invalid cookie name")}}function Ck(A){for(let e of A){let t=e.charCodeAt(0);if(t<33||t===34||t===44||t===59||t===92||t>126)throw new Error("Invalid header value")}}function Bk(A){for(let e of A)if(e.charCodeAt(0)<33||e===";")throw new Error("Invalid cookie path")}function Ik(A){if(A.startsWith("-")||A.endsWith(".")||A.endsWith("-"))throw new Error("Invalid cookie domain")}function ck(A){typeof A=="number"&&(A=new Date(A));let e=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],r=e[A.getUTCDay()],s=A.getUTCDate().toString().padStart(2,"0"),n=t[A.getUTCMonth()],i=A.getUTCFullYear(),o=A.getUTCHours().toString().padStart(2,"0"),g=A.getUTCMinutes().toString().padStart(2,"0"),a=A.getUTCSeconds().toString().padStart(2,"0");return`${r}, ${s} ${n} ${i} ${o}:${g}:${a} GMT`}function hk(A){if(A<0)throw new Error("Invalid cookie max-age")}function lk(A){if(A.name.length===0)return null;ak(A.name),Ck(A.value);let e=[`${A.name}=${A.value}`];A.name.startsWith("__Secure-")&&(A.secure=!0),A.name.startsWith("__Host-")&&(A.secure=!0,A.domain=null,A.path="/"),A.secure&&e.push("Secure"),A.httpOnly&&e.push("HttpOnly"),typeof A.maxAge=="number"&&(hk(A.maxAge),e.push(`Max-Age=${A.maxAge}`)),A.domain&&(Ik(A.domain),e.push(`Domain=${A.domain}`)),A.path&&(Bk(A.path),e.push(`Path=${A.path}`)),A.expires&&A.expires.toString()!=="Invalid Date"&&e.push(`Expires=${ck(A.expires)}`),A.sameSite&&e.push(`SameSite=${A.sameSite}`);for(let t of A.unparsed){if(!t.includes("="))throw new Error("Invalid unparsed");let[r,...s]=t.split("=");e.push(`${r.trim()}=${s.join("=")}`)}return e.join("; ")}var mn;function uk(A){if(A[kc])return A[kc];mn||(mn=Object.getOwnPropertySymbols(A).find(t=>t.description==="headers list"),Rc(mn,"Headers cannot be parsed"));let e=A[mn];return Rc(e),e}Fc.exports={isCTLExcludingHtab:Ek,stringify:lk,getHeadersList:uk}});var mc=c((FS,Nc)=>{"use strict";var{maxNameValuePairSize:fk,maxAttributeValueSize:dk}=pc(),{isCTLExcludingHtab:yk}=zg(),{collectASequenceOfCodePointsFast:bn}=ge(),wk=require("assert");function Dk(A){if(yk(A))return null;let e="",t="",r="",s="";if(A.includes(";")){let n={position:0};e=bn(";",A,n),t=A.slice(n.position)}else e=A;if(!e.includes("="))s=e;else{let n={position:0};r=bn("=",e,n),s=e.slice(n.position+1)}return r=r.trim(),s=s.trim(),r.length+s.length>fk?null:{name:r,value:s,...sr(t)}}function sr(A,e={}){if(A.length===0)return e;wk(A[0]===";"),A=A.slice(1);let t="";A.includes(";")?(t=bn(";",A,{position:0}),A=A.slice(t.length)):(t=A,A="");let r="",s="";if(t.includes("=")){let i={position:0};r=bn("=",t,i),s=t.slice(i.position+1)}else r=t;if(r=r.trim(),s=s.trim(),s.length>dk)return sr(A,e);let n=r.toLowerCase();if(n==="expires"){let i=new Date(s);e.expires=i}else if(n==="max-age"){let i=s.charCodeAt(0);if((i<48||i>57)&&s[0]!=="-"||!/^\d+$/.test(s))return sr(A,e);let o=Number(s);e.maxAge=o}else if(n==="domain"){let i=s;i[0]==="."&&(i=i.slice(1)),i=i.toLowerCase(),e.domain=i}else if(n==="path"){let i="";s.length===0||s[0]!=="/"?i="/":i=s,e.path=i}else if(n==="secure")e.secure=!0;else if(n==="httponly")e.httpOnly=!0;else if(n==="samesite"){let i="Default",o=s.toLowerCase();o.includes("none")&&(i="None"),o.includes("strict")&&(i="Strict"),o.includes("lax")&&(i="Lax"),e.sameSite=i}else e.unparsed??=[],e.unparsed.push(`${r}=${s}`);return sr(A,e)}Nc.exports={parseSetCookie:Dk,parseUnparsedAttributes:sr}});var Lc=c((NS,Uc)=>{"use strict";var{parseSetCookie:pk}=mc(),{stringify:bc,getHeadersList:Rk}=zg(),{webidl:J}=DA(),{Headers:Sn}=Bt();function kk(A){J.argumentLengthCheck(arguments,1,{header:"getCookies"}),J.brandCheck(A,Sn,{strict:!1});let e=A.get("cookie"),t={};if(!e)return t;for(let r of e.split(";")){let[s,...n]=r.split("=");t[s.trim()]=n.join("=")}return t}function Fk(A,e,t){J.argumentLengthCheck(arguments,2,{header:"deleteCookie"}),J.brandCheck(A,Sn,{strict:!1}),e=J.converters.DOMString(e),t=J.converters.DeleteCookieAttributes(t),Sc(A,{name:e,value:"",expires:new Date(0),...t})}function Nk(A){J.argumentLengthCheck(arguments,1,{header:"getSetCookies"}),J.brandCheck(A,Sn,{strict:!1});let e=Rk(A).cookies;return e?e.map(t=>pk(Array.isArray(t)?t[1]:t)):[]}function Sc(A,e){J.argumentLengthCheck(arguments,2,{header:"setCookie"}),J.brandCheck(A,Sn,{strict:!1}),e=J.converters.Cookie(e),bc(e)&&A.append("Set-Cookie",bc(e))}J.converters.DeleteCookieAttributes=J.dictionaryConverter([{converter:J.nullableConverter(J.converters.DOMString),key:"path",defaultValue:null},{converter:J.nullableConverter(J.converters.DOMString),key:"domain",defaultValue:null}]);J.converters.Cookie=J.dictionaryConverter([{converter:J.converters.DOMString,key:"name"},{converter:J.converters.DOMString,key:"value"},{converter:J.nullableConverter(A=>typeof A=="number"?J.converters["unsigned long long"](A):new Date(A)),key:"expires",defaultValue:null},{converter:J.nullableConverter(J.converters["long long"]),key:"maxAge",defaultValue:null},{converter:J.nullableConverter(J.converters.DOMString),key:"domain",defaultValue:null},{converter:J.nullableConverter(J.converters.DOMString),key:"path",defaultValue:null},{converter:J.nullableConverter(J.converters.boolean),key:"secure",defaultValue:null},{converter:J.nullableConverter(J.converters.boolean),key:"httpOnly",defaultValue:null},{converter:J.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:J.sequenceConverter(J.converters.DOMString),key:"unparsed",defaultValue:[]}]);Uc.exports={getCookies:kk,deleteCookie:Fk,getSetCookies:Nk,setCookie:Sc}});var nr=c((mS,Mc)=>{"use strict";var mk="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",bk={enumerable:!0,writable:!1,configurable:!1},Sk={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},Uk={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},Lk=2**16-1,Mk={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},Yk=Buffer.allocUnsafe(0);Mc.exports={uid:mk,staticPropertyDescriptors:bk,states:Sk,opcodes:Uk,maxUnsigned16Bit:Lk,parserStates:Mk,emptyBuffer:Yk}});var Xr=c((bS,Yc)=>{"use strict";Yc.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var AQ=c((SS,Jc)=>{"use strict";var{webidl:R}=DA(),{kEnumerableProperty:YA}=G(),{MessagePort:Jk}=require("worker_threads"),Un=class A extends Event{#A;constructor(e,t={}){R.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"}),e=R.converters.DOMString(e),t=R.converters.MessageEventInit(t),super(e,t),this.#A=t}get data(){return R.brandCheck(this,A),this.#A.data}get origin(){return R.brandCheck(this,A),this.#A.origin}get lastEventId(){return R.brandCheck(this,A),this.#A.lastEventId}get source(){return R.brandCheck(this,A),this.#A.source}get ports(){return R.brandCheck(this,A),Object.isFrozen(this.#A.ports)||Object.freeze(this.#A.ports),this.#A.ports}initMessageEvent(e,t=!1,r=!1,s=null,n="",i="",o=null,g=[]){return R.brandCheck(this,A),R.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"}),new A(e,{bubbles:t,cancelable:r,data:s,origin:n,lastEventId:i,source:o,ports:g})}},Ln=class A extends Event{#A;constructor(e,t={}){R.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"}),e=R.converters.DOMString(e),t=R.converters.CloseEventInit(t),super(e,t),this.#A=t}get wasClean(){return R.brandCheck(this,A),this.#A.wasClean}get code(){return R.brandCheck(this,A),this.#A.code}get reason(){return R.brandCheck(this,A),this.#A.reason}},Mn=class A extends Event{#A;constructor(e,t){R.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"}),super(e,t),e=R.converters.DOMString(e),t=R.converters.ErrorEventInit(t??{}),this.#A=t}get message(){return R.brandCheck(this,A),this.#A.message}get filename(){return R.brandCheck(this,A),this.#A.filename}get lineno(){return R.brandCheck(this,A),this.#A.lineno}get colno(){return R.brandCheck(this,A),this.#A.colno}get error(){return R.brandCheck(this,A),this.#A.error}};Object.defineProperties(Un.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:YA,origin:YA,lastEventId:YA,source:YA,ports:YA,initMessageEvent:YA});Object.defineProperties(Ln.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:YA,code:YA,wasClean:YA});Object.defineProperties(Mn.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:YA,filename:YA,lineno:YA,colno:YA,error:YA});R.converters.MessagePort=R.interfaceConverter(Jk);R.converters["sequence<MessagePort>"]=R.sequenceConverter(R.converters.MessagePort);var $g=[{key:"bubbles",converter:R.converters.boolean,defaultValue:!1},{key:"cancelable",converter:R.converters.boolean,defaultValue:!1},{key:"composed",converter:R.converters.boolean,defaultValue:!1}];R.converters.MessageEventInit=R.dictionaryConverter([...$g,{key:"data",converter:R.converters.any,defaultValue:null},{key:"origin",converter:R.converters.USVString,defaultValue:""},{key:"lastEventId",converter:R.converters.DOMString,defaultValue:""},{key:"source",converter:R.nullableConverter(R.converters.MessagePort),defaultValue:null},{key:"ports",converter:R.converters["sequence<MessagePort>"],get defaultValue(){return[]}}]);R.converters.CloseEventInit=R.dictionaryConverter([...$g,{key:"wasClean",converter:R.converters.boolean,defaultValue:!1},{key:"code",converter:R.converters["unsigned short"],defaultValue:0},{key:"reason",converter:R.converters.USVString,defaultValue:""}]);R.converters.ErrorEventInit=R.dictionaryConverter([...$g,{key:"message",converter:R.converters.DOMString,defaultValue:""},{key:"filename",converter:R.converters.USVString,defaultValue:""},{key:"lineno",converter:R.converters["unsigned long"],defaultValue:0},{key:"colno",converter:R.converters["unsigned long"],defaultValue:0},{key:"error",converter:R.converters.any}]);Jc.exports={MessageEvent:Un,CloseEvent:Ln,ErrorEvent:Mn}});var Gn=c((US,vc)=>{"use strict";var{kReadyState:Yn,kController:Gk,kResponse:Tk,kBinaryType:vk,kWebSocketURL:Hk}=Xr(),{states:Jn,opcodes:Gc}=nr(),{MessageEvent:Vk,ErrorEvent:xk}=AQ();function qk(A){return A[Yn]===Jn.OPEN}function Wk(A){return A[Yn]===Jn.CLOSING}function Ok(A){return A[Yn]===Jn.CLOSED}function eQ(A,e,t=Event,r){let s=new t(A,r);e.dispatchEvent(s)}function Pk(A,e,t){if(A[Yn]!==Jn.OPEN)return;let r;if(e===Gc.TEXT)try{r=new TextDecoder("utf-8",{fatal:!0}).decode(t)}catch{Tc(A,"Received invalid UTF-8 in text frame.");return}else e===Gc.BINARY&&(A[vk]==="blob"?r=new Blob([t]):r=new Uint8Array(t).buffer);eQ("message",A,Vk,{origin:A[Hk].origin,data:r})}function _k(A){if(A.length===0)return!1;for(let e of A){let t=e.charCodeAt(0);if(t<33||t>126||e==="("||e===")"||e==="<"||e===">"||e==="@"||e===","||e===";"||e===":"||e==="\\"||e==='"'||e==="/"||e==="["||e==="]"||e==="?"||e==="="||e==="{"||e==="}"||t===32||t===9)return!1}return!0}function Zk(A){return A>=1e3&&A<1015?A!==1004&&A!==1005&&A!==1006:A>=3e3&&A<=4999}function Tc(A,e){let{[Gk]:t,[Tk]:r}=A;t.abort(),r?.socket&&!r.socket.destroyed&&r.socket.destroy(),e&&eQ("error",A,xk,{error:new Error(e)})}vc.exports={isEstablished:qk,isClosing:Wk,isClosed:Ok,fireEvent:eQ,isValidSubprotocol:_k,isValidStatusCode:Zk,failWebsocketConnection:Tc,websocketMessageReceived:Pk}});var Oc=c((LS,Wc)=>{"use strict";var{randomBytes:Xk,createHash:Kk}=require("crypto"),tQ=require("diagnostics_channel"),{uid:jk,states:Vc}=nr(),{kReadyState:xc,kSentClose:Hc,kByteParser:qc,kReceivedClose:zk}=Xr(),{fireEvent:$k,failWebsocketConnection:lt}=Gn(),{CloseEvent:AF}=AQ(),{makeRequest:eF}=Wr(),{fetching:tF}=fn(),{Headers:rF}=Bt(),{getGlobalDispatcher:sF}=Xt(),{kHeadersList:nF}=$(),Ye={};Ye.open=tQ.channel("undici:websocket:open");Ye.close=tQ.channel("undici:websocket:close");Ye.socketError=tQ.channel("undici:websocket:socket_error");function iF(A,e,t,r,s){let n=A;n.protocol=A.protocol==="ws:"?"http:":"https:";let i=eF({urlList:[n],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(s.headers){let Q=new rF(s.headers)[nF];i.headersList=Q}let o=Xk(16).toString("base64");i.headersList.append("sec-websocket-key",o),i.headersList.append("sec-websocket-version","13");for(let Q of e)i.headersList.append("sec-websocket-protocol",Q);let g="";return tF({request:i,useParallelQueue:!0,dispatcher:s.dispatcher??sF(),processResponse(Q){if(Q.type==="error"||Q.status!==101){lt(t,"Received network error or non-101 status code.");return}if(e.length!==0&&!Q.headersList.get("Sec-WebSocket-Protocol")){lt(t,"Server did not respond with sent protocols.");return}if(Q.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){lt(t,'Server did not set Upgrade header to "websocket".');return}if(Q.headersList.get("Connection")?.toLowerCase()!=="upgrade"){lt(t,'Server did not set Connection header to "upgrade".');return}let E=Q.headersList.get("Sec-WebSocket-Accept"),C=Kk("sha1").update(o+jk).digest("base64");if(E!==C){lt(t,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let B=Q.headersList.get("Sec-WebSocket-Extensions");if(B!==null&&B!==g){lt(t,"Received different permessage-deflate than the one set.");return}let I=Q.headersList.get("Sec-WebSocket-Protocol");if(I!==null&&I!==i.headersList.get("Sec-WebSocket-Protocol")){lt(t,"Protocol was not set in the opening handshake.");return}Q.socket.on("data",oF),Q.socket.on("close",gF),Q.socket.on("error",QF),Ye.open.hasSubscribers&&Ye.open.publish({address:Q.socket.address(),protocol:I,extensions:B}),r(Q)}})}function oF(A){this.ws[qc].write(A)||this.pause()}function gF(){let{ws:A}=this,e=A[Hc]&&A[zk],t=1005,r="",s=A[qc].closingInfo;s?(t=s.code??1005,r=s.reason):A[Hc]||(t=1006),A[xc]=Vc.CLOSED,$k("close",A,AF,{wasClean:e,code:t,reason:r}),Ye.close.hasSubscribers&&Ye.close.publish({websocket:A,code:t,reason:r})}function QF(A){let{ws:e}=this;e[xc]=Vc.CLOSING,Ye.socketError.hasSubscribers&&Ye.socketError.publish(A),this.destroy()}Wc.exports={establishWebSocketConnection:iF}});var sQ=c((MS,Pc)=>{"use strict";var{randomBytes:EF}=require("crypto"),{maxUnsigned16Bit:aF}=nr(),rQ=class{constructor(e){this.frameData=e,this.maskKey=EF(4)}createFrame(e){let t=this.frameData?.byteLength??0,r=t,s=6;t>aF?(s+=8,r=127):t>125&&(s+=2,r=126);let n=Buffer.allocUnsafe(t+s);n[0]=n[1]=0,n[0]|=128,n[0]=(n[0]&240)+e;n[s-4]=this.maskKey[0],n[s-3]=this.maskKey[1],n[s-2]=this.maskKey[2],n[s-1]=this.maskKey[3],n[1]=r,r===126?n.writeUInt16BE(t,2):r===127&&(n[2]=n[3]=0,n.writeUIntBE(t,4,6)),n[1]|=128;for(let i=0;i<t;i++)n[s+i]=this.frameData[i]^this.maskKey[i%4];return n}};Pc.exports={WebsocketFrameSend:rQ}});var eh=c((YS,Ah)=>{"use strict";var{Writable:CF}=require("stream"),$c=require("diagnostics_channel"),{parserStates:re,opcodes:se,states:BF,emptyBuffer:IF}=nr(),{kReadyState:cF,kSentClose:Zc,kResponse:Xc,kReceivedClose:Kc}=Xr(),{isValidStatusCode:jc,failWebsocketConnection:Kr,websocketMessageReceived:hF}=Gn(),{WebsocketFrameSend:zc}=sQ(),ir={};ir.ping=$c.channel("undici:websocket:ping");ir.pong=$c.channel("undici:websocket:pong");var nQ=class extends CF{#A=[];#t=0;#r=re.INFO;#e={};#s=[];constructor(e){super(),this.ws=e}_write(e,t,r){this.#A.push(e),this.#t+=e.length,this.run(r)}run(e){for(;;){if(this.#r===re.INFO){if(this.#t<2)return e();let t=this.consume(2);if(this.#e.fin=(t[0]&128)!==0,this.#e.opcode=t[0]&15,this.#e.originalOpcode??=this.#e.opcode,this.#e.fragmented=!this.#e.fin&&this.#e.opcode!==se.CONTINUATION,this.#e.fragmented&&this.#e.opcode!==se.BINARY&&this.#e.opcode!==se.TEXT){Kr(this.ws,"Invalid frame type was fragmented.");return}let r=t[1]&127;if(r<=125?(this.#e.payloadLength=r,this.#r=re.READ_DATA):r===126?this.#r=re.PAYLOADLENGTH_16:r===127&&(this.#r=re.PAYLOADLENGTH_64),this.#e.fragmented&&r>125){Kr(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#e.opcode===se.PING||this.#e.opcode===se.PONG||this.#e.opcode===se.CLOSE)&&r>125){Kr(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#e.opcode===se.CLOSE){if(r===1){Kr(this.ws,"Received close frame with a 1-byte body.");return}let s=this.consume(r);if(this.#e.closeInfo=this.parseCloseBody(!1,s),!this.ws[Zc]){let n=Buffer.allocUnsafe(2);n.writeUInt16BE(this.#e.closeInfo.code,0);let i=new zc(n);this.ws[Xc].socket.write(i.createFrame(se.CLOSE),o=>{o||(this.ws[Zc]=!0)})}this.ws[cF]=BF.CLOSING,this.ws[Kc]=!0,this.end();return}else if(this.#e.opcode===se.PING){let s=this.consume(r);if(!this.ws[Kc]){let n=new zc(s);this.ws[Xc].socket.write(n.createFrame(se.PONG)),ir.ping.hasSubscribers&&ir.ping.publish({payload:s})}if(this.#r=re.INFO,this.#t>0)continue;e();return}else if(this.#e.opcode===se.PONG){let s=this.consume(r);if(ir.pong.hasSubscribers&&ir.pong.publish({payload:s}),this.#t>0)continue;e();return}}else if(this.#r===re.PAYLOADLENGTH_16){if(this.#t<2)return e();let t=this.consume(2);this.#e.payloadLength=t.readUInt16BE(0),this.#r=re.READ_DATA}else if(this.#r===re.PAYLOADLENGTH_64){if(this.#t<8)return e();let t=this.consume(8),r=t.readUInt32BE(0);if(r>2**31-1){Kr(this.ws,"Received payload length > 2^31 bytes.");return}let s=t.readUInt32BE(4);this.#e.payloadLength=(r<<8)+s,this.#r=re.READ_DATA}else if(this.#r===re.READ_DATA){if(this.#t<this.#e.payloadLength)return e();if(this.#t>=this.#e.payloadLength){let t=this.consume(this.#e.payloadLength);if(this.#s.push(t),!this.#e.fragmented||this.#e.fin&&this.#e.opcode===se.CONTINUATION){let r=Buffer.concat(this.#s);hF(this.ws,this.#e.originalOpcode,r),this.#e={},this.#s.length=0}this.#r=re.INFO}}if(!(this.#t>0)){e();break}}}consume(e){if(e>this.#t)return null;if(e===0)return IF;if(this.#A[0].length===e)return this.#t-=this.#A[0].length,this.#A.shift();let t=Buffer.allocUnsafe(e),r=0;for(;r!==e;){let s=this.#A[0],{length:n}=s;if(n+r===e){t.set(this.#A.shift(),r);break}else if(n+r>e){t.set(s.subarray(0,e-r),r),this.#A[0]=s.subarray(e-r);break}else t.set(this.#A.shift(),r),r+=s.length}return this.#t-=e,t}parseCloseBody(e,t){let r;if(t.length>=2&&(r=t.readUInt16BE(0)),e)return jc(r)?{code:r}:null;let s=t.subarray(2);if(s[0]===239&&s[1]===187&&s[2]===191&&(s=s.subarray(3)),r!==void 0&&!jc(r))return null;try{s=new TextDecoder("utf-8",{fatal:!0}).decode(s)}catch{return null}return{code:r,reason:s}}get closingInfo(){return this.#e.closeInfo}};Ah.exports={ByteParser:nQ}});var Qh=c((JS,gh)=>{"use strict";var{webidl:m}=DA(),{DOMException:Ke}=He(),{URLSerializer:lF}=ge(),{staticPropertyDescriptors:je,states:or,opcodes:jr,emptyBuffer:uF}=nr(),{kWebSocketURL:th,kReadyState:Je,kController:fF,kBinaryType:Tn,kResponse:vn,kSentClose:dF,kByteParser:yF}=Xr(),{isEstablished:rh,isClosing:sh,isValidSubprotocol:wF,failWebsocketConnection:DF,fireEvent:pF}=Gn(),{establishWebSocketConnection:RF}=Oc(),{WebsocketFrameSend:zr}=sQ(),{ByteParser:kF}=eh(),{kEnumerableProperty:ne,isBlobLike:ih}=G(),{getGlobalDispatcher:FF}=Xt(),{types:oh}=require("util"),nh=!1,ZA=class A extends EventTarget{#A={open:null,error:null,close:null,message:null};#t=0;#r="";#e="";constructor(e,t=[]){super(),m.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"}),nh||(nh=!0,process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"}));let r=m.converters["DOMString or sequence<DOMString> or WebSocketInit"](t);e=m.converters.USVString(e),t=r.protocols;let s;try{s=new URL(e)}catch(n){throw new Ke(n,"SyntaxError")}if(s.protocol!=="ws:"&&s.protocol!=="wss:")throw new Ke(`Expected a ws: or wss: protocol, got ${s.protocol}`,"SyntaxError");if(s.hash)throw new Ke("Got fragment","SyntaxError");if(typeof t=="string"&&(t=[t]),t.length!==new Set(t.map(n=>n.toLowerCase())).size)throw new Ke("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(t.length>0&&!t.every(n=>wF(n)))throw new Ke("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[th]=s,this[fF]=RF(s,t,this,n=>this.#s(n),r),this[Je]=A.CONNECTING,this[Tn]="blob"}close(e=void 0,t=void 0){if(m.brandCheck(this,A),e!==void 0&&(e=m.converters["unsigned short"](e,{clamp:!0})),t!==void 0&&(t=m.converters.USVString(t)),e!==void 0&&e!==1e3&&(e<3e3||e>4999))throw new Ke("invalid code","InvalidAccessError");let r=0;if(t!==void 0&&(r=Buffer.byteLength(t),r>123))throw new Ke(`Reason must be less than 123 bytes; received ${r}`,"SyntaxError");if(!(this[Je]===A.CLOSING||this[Je]===A.CLOSED))if(!rh(this))DF(this,"Connection was closed before it was established."),this[Je]=A.CLOSING;else if(sh(this))this[Je]=A.CLOSING;else{let s=new zr;e!==void 0&&t===void 0?(s.frameData=Buffer.allocUnsafe(2),s.frameData.writeUInt16BE(e,0)):e!==void 0&&t!==void 0?(s.frameData=Buffer.allocUnsafe(2+r),s.frameData.writeUInt16BE(e,0),s.frameData.write(t,2,"utf-8")):s.frameData=uF,this[vn].socket.write(s.createFrame(jr.CLOSE),i=>{i||(this[dF]=!0)}),this[Je]=or.CLOSING}}send(e){if(m.brandCheck(this,A),m.argumentLengthCheck(arguments,1,{header:"WebSocket.send"}),e=m.converters.WebSocketSendData(e),this[Je]===A.CONNECTING)throw new Ke("Sent before connected.","InvalidStateError");if(!rh(this)||sh(this))return;let t=this[vn].socket;if(typeof e=="string"){let r=Buffer.from(e),n=new zr(r).createFrame(jr.TEXT);this.#t+=r.byteLength,t.write(n,()=>{this.#t-=r.byteLength})}else if(oh.isArrayBuffer(e)){let r=Buffer.from(e),n=new zr(r).createFrame(jr.BINARY);this.#t+=r.byteLength,t.write(n,()=>{this.#t-=r.byteLength})}else if(ArrayBuffer.isView(e)){let r=Buffer.from(e,e.byteOffset,e.byteLength),n=new zr(r).createFrame(jr.BINARY);this.#t+=r.byteLength,t.write(n,()=>{this.#t-=r.byteLength})}else if(ih(e)){let r=new zr;e.arrayBuffer().then(s=>{let n=Buffer.from(s);r.frameData=n;let i=r.createFrame(jr.BINARY);this.#t+=n.byteLength,t.write(i,()=>{this.#t-=n.byteLength})})}}get readyState(){return m.brandCheck(this,A),this[Je]}get bufferedAmount(){return m.brandCheck(this,A),this.#t}get url(){return m.brandCheck(this,A),lF(this[th])}get extensions(){return m.brandCheck(this,A),this.#e}get protocol(){return m.brandCheck(this,A),this.#r}get onopen(){return m.brandCheck(this,A),this.#A.open}set onopen(e){m.brandCheck(this,A),this.#A.open&&this.removeEventListener("open",this.#A.open),typeof e=="function"?(this.#A.open=e,this.addEventListener("open",e)):this.#A.open=null}get onerror(){return m.brandCheck(this,A),this.#A.error}set onerror(e){m.brandCheck(this,A),this.#A.error&&this.removeEventListener("error",this.#A.error),typeof e=="function"?(this.#A.error=e,this.addEventListener("error",e)):this.#A.error=null}get onclose(){return m.brandCheck(this,A),this.#A.close}set onclose(e){m.brandCheck(this,A),this.#A.close&&this.removeEventListener("close",this.#A.close),typeof e=="function"?(this.#A.close=e,this.addEventListener("close",e)):this.#A.close=null}get onmessage(){return m.brandCheck(this,A),this.#A.message}set onmessage(e){m.brandCheck(this,A),this.#A.message&&this.removeEventListener("message",this.#A.message),typeof e=="function"?(this.#A.message=e,this.addEventListener("message",e)):this.#A.message=null}get binaryType(){return m.brandCheck(this,A),this[Tn]}set binaryType(e){m.brandCheck(this,A),e!=="blob"&&e!=="arraybuffer"?this[Tn]="blob":this[Tn]=e}#s(e){this[vn]=e;let t=new kF(this);t.on("drain",function(){this.ws[vn].socket.resume()}),e.socket.ws=this,this[yF]=t,this[Je]=or.OPEN;let r=e.headersList.get("sec-websocket-extensions");r!==null&&(this.#e=r);let s=e.headersList.get("sec-websocket-protocol");s!==null&&(this.#r=s),pF("open",this)}};ZA.CONNECTING=ZA.prototype.CONNECTING=or.CONNECTING;ZA.OPEN=ZA.prototype.OPEN=or.OPEN;ZA.CLOSING=ZA.prototype.CLOSING=or.CLOSING;ZA.CLOSED=ZA.prototype.CLOSED=or.CLOSED;Object.defineProperties(ZA.prototype,{CONNECTING:je,OPEN:je,CLOSING:je,CLOSED:je,url:ne,readyState:ne,bufferedAmount:ne,onopen:ne,onerror:ne,onclose:ne,close:ne,onmessage:ne,binaryType:ne,send:ne,extensions:ne,protocol:ne,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(ZA,{CONNECTING:je,OPEN:je,CLOSING:je,CLOSED:je});m.converters["sequence<DOMString>"]=m.sequenceConverter(m.converters.DOMString);m.converters["DOMString or sequence<DOMString>"]=function(A){return m.util.Type(A)==="Object"&&Symbol.iterator in A?m.converters["sequence<DOMString>"](A):m.converters.DOMString(A)};m.converters.WebSocketInit=m.dictionaryConverter([{key:"protocols",converter:m.converters["DOMString or sequence<DOMString>"],get defaultValue(){return[]}},{key:"dispatcher",converter:A=>A,get defaultValue(){return FF()}},{key:"headers",converter:m.nullableConverter(m.converters.HeadersInit)}]);m.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(A){return m.util.Type(A)==="Object"&&!(Symbol.iterator in A)?m.converters.WebSocketInit(A):{protocols:m.converters["DOMString or sequence<DOMString>"](A)}};m.converters.WebSocketSendData=function(A){if(m.util.Type(A)==="Object"){if(ih(A))return m.converters.Blob(A,{strict:!1});if(ArrayBuffer.isView(A)||oh.isAnyArrayBuffer(A))return m.converters.BufferSource(A)}return m.converters.USVString(A)};gh.exports={WebSocket:ZA}});var oQ=c((GS,M)=>{"use strict";var NF=Ur(),Eh=ks(),ah=Z(),mF=vt(),bF=bC(),SF=Jr(),ut=G(),{InvalidArgumentError:Hn}=ah,gr=yB(),UF=Rr(),LF=Ig(),MF=rI(),YF=lg(),JF=tg(),GF=QI(),{getGlobalDispatcher:Ch,setGlobalDispatcher:TF}=Xt(),vF=cI(),HF=Bo(),VF=bs(),iQ;try{require("crypto"),iQ=!0}catch{iQ=!1}Object.assign(Eh.prototype,gr);M.exports.Dispatcher=Eh;M.exports.Client=NF;M.exports.Pool=mF;M.exports.BalancedPool=bF;M.exports.Agent=SF;M.exports.ProxyAgent=GF;M.exports.DecoratorHandler=vF;M.exports.RedirectHandler=HF;M.exports.createRedirectInterceptor=VF;M.exports.buildConnector=UF;M.exports.errors=ah;function $r(A){return(e,t,r)=>{if(typeof t=="function"&&(r=t,t=null),!e||typeof e!="string"&&typeof e!="object"&&!(e instanceof URL))throw new Hn("invalid url");if(t!=null&&typeof t!="object")throw new Hn("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new Hn("invalid opts.path");let i=t.path;t.path.startsWith("/")||(i=`/${i}`),e=new URL(ut.parseOrigin(e).origin+i)}else t||(t=typeof e=="object"?e:{}),e=ut.parseURL(e);let{agent:s,dispatcher:n=Ch()}=t;if(s)throw new Hn("unsupported opts.agent. Did you mean opts.client?");return A.call(n,{...t,origin:e.origin,path:e.search?`${e.pathname}${e.search}`:e.pathname,method:t.method||(t.body?"PUT":"GET")},r)}}M.exports.setGlobalDispatcher=TF;M.exports.getGlobalDispatcher=Ch;if(ut.nodeMajor>16||ut.nodeMajor===16&&ut.nodeMinor>=8){let A=null;M.exports.fetch=async function(i){A||(A=fn().fetch);try{return await A(...arguments)}catch(o){throw Error.captureStackTrace(o,this),o}},M.exports.Headers=Bt().Headers,M.exports.Response=Qn().Response,M.exports.Request=Wr().Request,M.exports.FormData=ps().FormData,M.exports.File=ws().File,M.exports.FileReader=Ec().FileReader;let{setGlobalOrigin:e,getGlobalOrigin:t}=ur();M.exports.setGlobalOrigin=e,M.exports.getGlobalOrigin=t;let{CacheStorage:r}=wc(),{kConstruct:s}=Dn();M.exports.caches=new r(s)}if(ut.nodeMajor>=16){let{deleteCookie:A,getCookies:e,getSetCookies:t,setCookie:r}=Lc();M.exports.deleteCookie=A,M.exports.getCookies=e,M.exports.getSetCookies=t,M.exports.setCookie=r;let{parseMIMEType:s,serializeAMimeType:n}=ge();M.exports.parseMIMEType=s,M.exports.serializeAMimeType=n}if(ut.nodeMajor>=18&&iQ){let{WebSocket:A}=Qh();M.exports.WebSocket=A}M.exports.request=$r(gr.request);M.exports.stream=$r(gr.stream);M.exports.pipeline=$r(gr.pipeline);M.exports.connect=$r(gr.connect);M.exports.upgrade=$r(gr.upgrade);M.exports.MockClient=LF;M.exports.MockPool=YF;M.exports.MockAgent=MF;M.exports.mockErrors=JF});var CQ=c(aQ=>{"use strict";Object.defineProperty(aQ,"__esModule",{value:!0});var WF=function(A,e,t,r){if(typeof A!="string"||A.length===0)throw new TypeError("text should be a string");if(typeof e!="string"||e.length===0)throw new TypeError("lang should be a string");if(typeof t!="boolean")throw new TypeError("slow should be a boolean");if(typeof r!="string"||r.length===0)throw new TypeError("host should be a string")};aQ.default=WF});var IQ=c(BQ=>{"use strict";Object.defineProperty(BQ,"__esModule",{value:!0});var OF="\\s\\uFEFF\\xA0",PF="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",_F=function(A,e){for(var t=e===void 0?{}:e,r=t.maxLength,s=r===void 0?200:r,n=t.splitPunct,i=n===void 0?"":n,o=function(I,h){var l=new RegExp("["+OF+PF+i+"]");return l.test(I.charAt(h))},g=function(I,h,l){for(var u=l;u>=h;u--)if(o(I,u))return u;return-1},a=[],Q=function(I,h,l){a.push(I.slice(h,l+1))},E=0;;){if(A.length-E<=s){Q(A,E,A.length-1);break}var C=E+s-1;if(o(A,C)||o(A,C+1)){Q(A,E,C),E=C+1;continue}if(C=g(A,E,C),C===-1){var B=A.slice(E,E+s);throw new Error("The word is too long to split into a short text:"+(` -`+B+" ...")+` - -Try the option "splitPunct" to split the text by punctuation.`)}Q(A,E,C),E=C+1}return a};BQ.default=_F});var dh=c(Ge=>{"use strict";var cQ=Ge&&Ge.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(Ge,"__esModule",{value:!0});Ge.getAllAudioUrls=Ge.getAudioUrl=void 0;var fh=cQ(CQ()),ZF=cQ(IQ()),XF=cQ(require("url")),KF=function(A,e){var t=e===void 0?{}:e,r=t.lang,s=r===void 0?"en":r,n=t.slow,i=n===void 0?!1:n,o=t.host,g=o===void 0?"https://translate.google.com":o;if(fh.default(A,s,i,g),A.length>200)throw new RangeError("text length ("+A.length+') should be less than 200 characters. Try "getAllAudioUrls(text, [option])" for long text.');return g+"/translate_tts"+XF.default.format({query:{ie:"UTF-8",q:A,tl:s,total:1,idx:0,textlen:A.length,client:"tw-ob",prev:"input",ttsspeed:i?.24:1}})};Ge.getAudioUrl=KF;var jF=function(A,e){var t=e===void 0?{}:e,r=t.lang,s=r===void 0?"en":r,n=t.slow,i=n===void 0?!1:n,o=t.host,g=o===void 0?"https://translate.google.com":o,a=t.splitPunct,Q=a===void 0?"":a;if(fh.default(A,s,i,g),typeof Q!="string")throw new TypeError("splitPunct should be a string");return ZF.default(A,{splitPunct:Q}).map(function(E){return{shortText:E,url:Ge.getAudioUrl(E,{lang:s,slow:i,host:g})}})};Ge.getAllAudioUrls=jF});var hQ=c((PS,yh)=>{"use strict";yh.exports=function(e,t){return function(){for(var s=new Array(arguments.length),n=0;n<s.length;n++)s[n]=arguments[n];return e.apply(t,s)}}});var mA=c((_S,ph)=>{"use strict";var zF=hQ(),ft=Object.prototype.toString;function fQ(A){return ft.call(A)==="[object Array]"}function lQ(A){return typeof A>"u"}function $F(A){return A!==null&&!lQ(A)&&A.constructor!==null&&!lQ(A.constructor)&&typeof A.constructor.isBuffer=="function"&&A.constructor.isBuffer(A)}function AN(A){return ft.call(A)==="[object ArrayBuffer]"}function eN(A){return typeof FormData<"u"&&A instanceof FormData}function tN(A){var e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(A):e=A&&A.buffer&&A.buffer instanceof ArrayBuffer,e}function rN(A){return typeof A=="string"}function sN(A){return typeof A=="number"}function wh(A){return A!==null&&typeof A=="object"}function qn(A){if(ft.call(A)!=="[object Object]")return!1;var e=Object.getPrototypeOf(A);return e===null||e===Object.prototype}function nN(A){return ft.call(A)==="[object Date]"}function iN(A){return ft.call(A)==="[object File]"}function oN(A){return ft.call(A)==="[object Blob]"}function Dh(A){return ft.call(A)==="[object Function]"}function gN(A){return wh(A)&&Dh(A.pipe)}function QN(A){return typeof URLSearchParams<"u"&&A instanceof URLSearchParams}function EN(A){return A.trim?A.trim():A.replace(/^\s+|\s+$/g,"")}function aN(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function dQ(A,e){if(!(A===null||typeof A>"u"))if(typeof A!="object"&&(A=[A]),fQ(A))for(var t=0,r=A.length;t<r;t++)e.call(null,A[t],t,A);else for(var s in A)Object.prototype.hasOwnProperty.call(A,s)&&e.call(null,A[s],s,A)}function uQ(){var A={};function e(s,n){qn(A[n])&&qn(s)?A[n]=uQ(A[n],s):qn(s)?A[n]=uQ({},s):fQ(s)?A[n]=s.slice():A[n]=s}for(var t=0,r=arguments.length;t<r;t++)dQ(arguments[t],e);return A}function CN(A,e,t){return dQ(e,function(s,n){t&&typeof s=="function"?A[n]=zF(s,t):A[n]=s}),A}function BN(A){return A.charCodeAt(0)===65279&&(A=A.slice(1)),A}ph.exports={isArray:fQ,isArrayBuffer:AN,isBuffer:$F,isFormData:eN,isArrayBufferView:tN,isString:rN,isNumber:sN,isObject:wh,isPlainObject:qn,isUndefined:lQ,isDate:nN,isFile:iN,isBlob:oN,isFunction:Dh,isStream:gN,isURLSearchParams:QN,isStandardBrowserEnv:aN,forEach:dQ,merge:uQ,extend:CN,trim:EN,stripBOM:BN}});var Wn=c((ZS,kh)=>{"use strict";var Qr=mA();function Rh(A){return encodeURIComponent(A).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}kh.exports=function(e,t,r){if(!t)return e;var s;if(r)s=r(t);else if(Qr.isURLSearchParams(t))s=t.toString();else{var n=[];Qr.forEach(t,function(g,a){g===null||typeof g>"u"||(Qr.isArray(g)?a=a+"[]":g=[g],Qr.forEach(g,function(E){Qr.isDate(E)?E=E.toISOString():Qr.isObject(E)&&(E=JSON.stringify(E)),n.push(Rh(a)+"="+Rh(E))}))}),s=n.join("&")}if(s){var i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}});var Nh=c((XS,Fh)=>{"use strict";var IN=mA();function On(){this.handlers=[]}On.prototype.use=function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1};On.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)};On.prototype.forEach=function(e){IN.forEach(this.handlers,function(r){r!==null&&e(r)})};Fh.exports=On});var bh=c((KS,mh)=>{"use strict";var cN=mA();mh.exports=function(e,t){cN.forEach(e,function(s,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=s,delete e[n])})}});var Pn=c((jS,Sh)=>{"use strict";Sh.exports=function(e,t,r,s,n){return e.config=t,r&&(e.code=r),e.request=s,e.response=n,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}});var _n=c((zS,Uh)=>{"use strict";var hN=Pn();Uh.exports=function(e,t,r,s,n){var i=new Error(e);return hN(i,t,r,s,n)}});var yQ=c(($S,Lh)=>{"use strict";var lN=_n();Lh.exports=function(e,t,r){var s=r.config.validateStatus;!r.status||!s||s(r.status)?e(r):t(lN("Request failed with status code "+r.status,r.config,null,r.request,r))}});var Yh=c((AU,Mh)=>{"use strict";var Zn=mA();Mh.exports=Zn.isStandardBrowserEnv()?function(){return{write:function(t,r,s,n,i,o){var g=[];g.push(t+"="+encodeURIComponent(r)),Zn.isNumber(s)&&g.push("expires="+new Date(s).toGMTString()),Zn.isString(n)&&g.push("path="+n),Zn.isString(i)&&g.push("domain="+i),o===!0&&g.push("secure"),document.cookie=g.join("; ")},read:function(t){var r=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return r?decodeURIComponent(r[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var Gh=c((eU,Jh)=>{"use strict";Jh.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}});var vh=c((tU,Th)=>{"use strict";Th.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}});var wQ=c((rU,Hh)=>{"use strict";var uN=Gh(),fN=vh();Hh.exports=function(e,t){return e&&!uN(t)?fN(e,t):t}});var xh=c((sU,Vh)=>{"use strict";var DQ=mA(),dN=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];Vh.exports=function(e){var t={},r,s,n;return e&&DQ.forEach(e.split(` -`),function(o){if(n=o.indexOf(":"),r=DQ.trim(o.substr(0,n)).toLowerCase(),s=DQ.trim(o.substr(n+1)),r){if(t[r]&&dN.indexOf(r)>=0)return;r==="set-cookie"?t[r]=(t[r]?t[r]:[]).concat([s]):t[r]=t[r]?t[r]+", "+s:s}}),t}});var Oh=c((nU,Wh)=>{"use strict";var qh=mA();Wh.exports=qh.isStandardBrowserEnv()?function(){var e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a"),r;function s(n){var i=n;return e&&(t.setAttribute("href",i),i=t.href),t.setAttribute("href",i),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}return r=s(window.location.href),function(i){var o=qh.isString(i)?s(i):i;return o.protocol===r.protocol&&o.host===r.host}}():function(){return function(){return!0}}()});var _h=c((iU,Ph)=>{"use strict";var Xn=mA(),yN=yQ(),wN=Yh(),DN=Wn(),pN=wQ(),RN=xh(),kN=Oh(),pQ=_n();Ph.exports=function(e){return new Promise(function(r,s){var n=e.data,i=e.headers,o=e.responseType;Xn.isFormData(n)&&delete i["Content-Type"];var g=new XMLHttpRequest;if(e.auth){var a=e.auth.username||"",Q=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.Authorization="Basic "+btoa(a+":"+Q)}var E=pN(e.baseURL,e.url);g.open(e.method.toUpperCase(),DN(E,e.params,e.paramsSerializer),!0),g.timeout=e.timeout;function C(){if(g){var I="getAllResponseHeaders"in g?RN(g.getAllResponseHeaders()):null,h=!o||o==="text"||o==="json"?g.responseText:g.response,l={data:h,status:g.status,statusText:g.statusText,headers:I,config:e,request:g};yN(r,s,l),g=null}}if("onloadend"in g?g.onloadend=C:g.onreadystatechange=function(){!g||g.readyState!==4||g.status===0&&!(g.responseURL&&g.responseURL.indexOf("file:")===0)||setTimeout(C)},g.onabort=function(){g&&(s(pQ("Request aborted",e,"ECONNABORTED",g)),g=null)},g.onerror=function(){s(pQ("Network Error",e,null,g)),g=null},g.ontimeout=function(){var h="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(h=e.timeoutErrorMessage),s(pQ(h,e,e.transitional&&e.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",g)),g=null},Xn.isStandardBrowserEnv()){var B=(e.withCredentials||kN(E))&&e.xsrfCookieName?wN.read(e.xsrfCookieName):void 0;B&&(i[e.xsrfHeaderName]=B)}"setRequestHeader"in g&&Xn.forEach(i,function(h,l){typeof n>"u"&&l.toLowerCase()==="content-type"?delete i[l]:g.setRequestHeader(l,h)}),Xn.isUndefined(e.withCredentials)||(g.withCredentials=!!e.withCredentials),o&&o!=="json"&&(g.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&g.addEventListener("progress",e.onDownloadProgress),typeof e.onUploadProgress=="function"&&g.upload&&g.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(h){g&&(g.abort(),s(h),g=null)}),n||(n=null),g.send(n)})}});var Xh=c((oU,Zh)=>{var Er=1e3,ar=Er*60,Cr=ar*60,dt=Cr*24,FN=dt*7,NN=dt*365.25;Zh.exports=function(A,e){e=e||{};var t=typeof A;if(t==="string"&&A.length>0)return mN(A);if(t==="number"&&isFinite(A))return e.long?SN(A):bN(A);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(A))};function mN(A){if(A=String(A),!(A.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(A);if(e){var t=parseFloat(e[1]),r=(e[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return t*NN;case"weeks":case"week":case"w":return t*FN;case"days":case"day":case"d":return t*dt;case"hours":case"hour":case"hrs":case"hr":case"h":return t*Cr;case"minutes":case"minute":case"mins":case"min":case"m":return t*ar;case"seconds":case"second":case"secs":case"sec":case"s":return t*Er;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function bN(A){var e=Math.abs(A);return e>=dt?Math.round(A/dt)+"d":e>=Cr?Math.round(A/Cr)+"h":e>=ar?Math.round(A/ar)+"m":e>=Er?Math.round(A/Er)+"s":A+"ms"}function SN(A){var e=Math.abs(A);return e>=dt?Kn(A,e,dt,"day"):e>=Cr?Kn(A,e,Cr,"hour"):e>=ar?Kn(A,e,ar,"minute"):e>=Er?Kn(A,e,Er,"second"):A+" ms"}function Kn(A,e,t,r){var s=e>=t*1.5;return Math.round(A/t)+" "+r+(s?"s":"")}});var RQ=c((gU,Kh)=>{function UN(A){t.debug=t,t.default=t,t.coerce=g,t.disable=n,t.enable=s,t.enabled=i,t.humanize=Xh(),t.destroy=a,Object.keys(A).forEach(Q=>{t[Q]=A[Q]}),t.names=[],t.skips=[],t.formatters={};function e(Q){let E=0;for(let C=0;C<Q.length;C++)E=(E<<5)-E+Q.charCodeAt(C),E|=0;return t.colors[Math.abs(E)%t.colors.length]}t.selectColor=e;function t(Q){let E,C=null,B,I;function h(...l){if(!h.enabled)return;let u=h,F=Number(new Date),w=F-(E||F);u.diff=w,u.prev=E,u.curr=F,E=F,l[0]=t.coerce(l[0]),typeof l[0]!="string"&&l.unshift("%O");let k=0;l[0]=l[0].replace(/%([a-zA-Z%])/g,(O,V)=>{if(O==="%%")return"%";k++;let K=t.formatters[V];if(typeof K=="function"){let uA=l[k];O=K.call(u,uA),l.splice(k,1),k--}return O}),t.formatArgs.call(u,l),(u.log||t.log).apply(u,l)}return h.namespace=Q,h.useColors=t.useColors(),h.color=t.selectColor(Q),h.extend=r,h.destroy=t.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>C!==null?C:(B!==t.namespaces&&(B=t.namespaces,I=t.enabled(Q)),I),set:l=>{C=l}}),typeof t.init=="function"&&t.init(h),h}function r(Q,E){let C=t(this.namespace+(typeof E>"u"?":":E)+Q);return C.log=this.log,C}function s(Q){t.save(Q),t.namespaces=Q,t.names=[],t.skips=[];let E,C=(typeof Q=="string"?Q:"").split(/[\s,]+/),B=C.length;for(E=0;E<B;E++)C[E]&&(Q=C[E].replace(/\*/g,".*?"),Q[0]==="-"?t.skips.push(new RegExp("^"+Q.slice(1)+"$")):t.names.push(new RegExp("^"+Q+"$")))}function n(){let Q=[...t.names.map(o),...t.skips.map(o).map(E=>"-"+E)].join(",");return t.enable(""),Q}function i(Q){if(Q[Q.length-1]==="*")return!0;let E,C;for(E=0,C=t.skips.length;E<C;E++)if(t.skips[E].test(Q))return!1;for(E=0,C=t.names.length;E<C;E++)if(t.names[E].test(Q))return!0;return!1}function o(Q){return Q.toString().substring(2,Q.toString().length-2).replace(/\.\*\?$/,"*")}function g(Q){return Q instanceof Error?Q.stack||Q.message:Q}function a(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}Kh.exports=UN});var jh=c((XA,jn)=>{XA.formatArgs=MN;XA.save=YN;XA.load=JN;XA.useColors=LN;XA.storage=GN();XA.destroy=(()=>{let A=!1;return()=>{A||(A=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();XA.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function LN(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function MN(A){if(A[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+A[0]+(this.useColors?"%c ":" ")+"+"+jn.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;A.splice(1,0,e,"color: inherit");let t=0,r=0;A[0].replace(/%[a-zA-Z%]/g,s=>{s!=="%%"&&(t++,s==="%c"&&(r=t))}),A.splice(r,0,e)}XA.log=console.debug||console.log||(()=>{});function YN(A){try{A?XA.storage.setItem("debug",A):XA.storage.removeItem("debug")}catch{}}function JN(){let A;try{A=XA.storage.getItem("debug")}catch{}return!A&&typeof process<"u"&&"env"in process&&(A=process.env.DEBUG),A}function GN(){try{return localStorage}catch{}}jn.exports=RQ()(XA);var{formatters:TN}=jn.exports;TN.j=function(A){try{return JSON.stringify(A)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var $h=c((QU,zh)=>{"use strict";zh.exports=(A,e=process.argv)=>{let t=A.startsWith("-")?"":A.length===1?"-":"--",r=e.indexOf(t+A),s=e.indexOf("--");return r!==-1&&(s===-1||r<s)}});var tl=c((EU,el)=>{"use strict";var vN=require("os"),Al=require("tty"),ie=$h(),{env:BA}=process,ze;ie("no-color")||ie("no-colors")||ie("color=false")||ie("color=never")?ze=0:(ie("color")||ie("colors")||ie("color=true")||ie("color=always"))&&(ze=1);"FORCE_COLOR"in BA&&(BA.FORCE_COLOR==="true"?ze=1:BA.FORCE_COLOR==="false"?ze=0:ze=BA.FORCE_COLOR.length===0?1:Math.min(parseInt(BA.FORCE_COLOR,10),3));function kQ(A){return A===0?!1:{level:A,hasBasic:!0,has256:A>=2,has16m:A>=3}}function FQ(A,e){if(ze===0)return 0;if(ie("color=16m")||ie("color=full")||ie("color=truecolor"))return 3;if(ie("color=256"))return 2;if(A&&!e&&ze===void 0)return 0;let t=ze||0;if(BA.TERM==="dumb")return t;if(process.platform==="win32"){let r=vN.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in BA)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(r=>r in BA)||BA.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in BA)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(BA.TEAMCITY_VERSION)?1:0;if(BA.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in BA){let r=parseInt((BA.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(BA.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(BA.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(BA.TERM)||"COLORTERM"in BA?1:t}function HN(A){let e=FQ(A,A&&A.isTTY);return kQ(e)}el.exports={supportsColor:HN,stdout:kQ(FQ(!0,Al.isatty(1))),stderr:kQ(FQ(!0,Al.isatty(2)))}});var sl=c((hA,$n)=>{var VN=require("tty"),zn=require("util");hA.init=ZN;hA.log=ON;hA.formatArgs=qN;hA.save=PN;hA.load=_N;hA.useColors=xN;hA.destroy=zn.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");hA.colors=[6,2,3,4,5,1];try{let A=tl();A&&(A.stderr||A).level>=2&&(hA.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}hA.inspectOpts=Object.keys(process.env).filter(A=>/^debug_/i.test(A)).reduce((A,e)=>{let t=e.substring(6).toLowerCase().replace(/_([a-z])/g,(s,n)=>n.toUpperCase()),r=process.env[e];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),A[t]=r,A},{});function xN(){return"colors"in hA.inspectOpts?!!hA.inspectOpts.colors:VN.isatty(process.stderr.fd)}function qN(A){let{namespace:e,useColors:t}=this;if(t){let r=this.color,s="\x1B[3"+(r<8?r:"8;5;"+r),n=` ${s};1m${e} \x1B[0m`;A[0]=n+A[0].split(` -`).join(` -`+n),A.push(s+"m+"+$n.exports.humanize(this.diff)+"\x1B[0m")}else A[0]=WN()+e+" "+A[0]}function WN(){return hA.inspectOpts.hideDate?"":new Date().toISOString()+" "}function ON(...A){return process.stderr.write(zn.format(...A)+` -`)}function PN(A){A?process.env.DEBUG=A:delete process.env.DEBUG}function _N(){return process.env.DEBUG}function ZN(A){A.inspectOpts={};let e=Object.keys(hA.inspectOpts);for(let t=0;t<e.length;t++)A.inspectOpts[e[t]]=hA.inspectOpts[e[t]]}$n.exports=RQ()(hA);var{formatters:rl}=$n.exports;rl.o=function(A){return this.inspectOpts.colors=this.useColors,zn.inspect(A,this.inspectOpts).split(` -`).map(e=>e.trim()).join(" ")};rl.O=function(A){return this.inspectOpts.colors=this.useColors,zn.inspect(A,this.inspectOpts)}});var Ai=c((aU,NQ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?NQ.exports=jh():NQ.exports=sl()});var il=c((CU,nl)=>{var ts;nl.exports=function(){if(!ts){try{ts=Ai()("follow-redirects")}catch{}typeof ts!="function"&&(ts=function(){})}ts.apply(null,arguments)}});var VQ=c((BU,HQ)=>{var ns=require("url"),rs=ns.URL,XN=require("http"),KN=require("https"),LQ=require("stream").Writable,MQ=require("assert"),ol=il(),YQ=!1;try{MQ(new rs)}catch(A){YQ=A.code==="ERR_INVALID_URL"}var jN=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],JQ=["abort","aborted","connect","error","socket","timeout"],GQ=Object.create(null);JQ.forEach(function(A){GQ[A]=function(e,t,r){this._redirectable.emit(A,e,t,r)}});var bQ=is("ERR_INVALID_URL","Invalid URL",TypeError),SQ=is("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),zN=is("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",SQ),$N=is("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),Am=is("ERR_STREAM_WRITE_AFTER_END","write after end"),em=LQ.prototype.destroy||Ql;function JA(A,e){LQ.call(this),this._sanitizeOptions(A),this._options=A,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],e&&this.on("response",e);var t=this;this._onNativeResponse=function(r){try{t._processResponse(r)}catch(s){t.emit("error",s instanceof SQ?s:new SQ({cause:s}))}},this._performRequest()}JA.prototype=Object.create(LQ.prototype);JA.prototype.abort=function(){vQ(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};JA.prototype.destroy=function(A){return vQ(this._currentRequest,A),em.call(this,A),this};JA.prototype.write=function(A,e,t){if(this._ending)throw new Am;if(!yt(A)&&!sm(A))throw new TypeError("data should be a string, Buffer or Uint8Array");if(ss(e)&&(t=e,e=null),A.length===0){t&&t();return}this._requestBodyLength+A.length<=this._options.maxBodyLength?(this._requestBodyLength+=A.length,this._requestBodyBuffers.push({data:A,encoding:e}),this._currentRequest.write(A,e,t)):(this.emit("error",new $N),this.abort())};JA.prototype.end=function(A,e,t){if(ss(A)?(t=A,A=e=null):ss(e)&&(t=e,e=null),!A)this._ended=this._ending=!0,this._currentRequest.end(null,null,t);else{var r=this,s=this._currentRequest;this.write(A,e,function(){r._ended=!0,s.end(null,null,t)}),this._ending=!0}};JA.prototype.setHeader=function(A,e){this._options.headers[A]=e,this._currentRequest.setHeader(A,e)};JA.prototype.removeHeader=function(A){delete this._options.headers[A],this._currentRequest.removeHeader(A)};JA.prototype.setTimeout=function(A,e){var t=this;function r(i){i.setTimeout(A),i.removeListener("timeout",i.destroy),i.addListener("timeout",i.destroy)}function s(i){t._timeout&&clearTimeout(t._timeout),t._timeout=setTimeout(function(){t.emit("timeout"),n()},A),r(i)}function n(){t._timeout&&(clearTimeout(t._timeout),t._timeout=null),t.removeListener("abort",n),t.removeListener("error",n),t.removeListener("response",n),t.removeListener("close",n),e&&t.removeListener("timeout",e),t.socket||t._currentRequest.removeListener("socket",s)}return e&&this.on("timeout",e),this.socket?s(this.socket):this._currentRequest.once("socket",s),this.on("socket",r),this.on("abort",n),this.on("error",n),this.on("response",n),this.on("close",n),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(A){JA.prototype[A]=function(e,t){return this._currentRequest[A](e,t)}});["aborted","connection","socket"].forEach(function(A){Object.defineProperty(JA.prototype,A,{get:function(){return this._currentRequest[A]}})});JA.prototype._sanitizeOptions=function(A){if(A.headers||(A.headers={}),A.host&&(A.hostname||(A.hostname=A.host),delete A.host),!A.pathname&&A.path){var e=A.path.indexOf("?");e<0?A.pathname=A.path:(A.pathname=A.path.substring(0,e),A.search=A.path.substring(e))}};JA.prototype._performRequest=function(){var A=this._options.protocol,e=this._options.nativeProtocols[A];if(!e)throw new TypeError("Unsupported protocol "+A);if(this._options.agents){var t=A.slice(0,-1);this._options.agent=this._options.agents[t]}var r=this._currentRequest=e.request(this._options,this._onNativeResponse);r._redirectable=this;for(var s of JQ)r.on(s,GQ[s]);if(this._currentUrl=/^\//.test(this._options.path)?ns.format(this._options):this._options.path,this._isRedirect){var n=0,i=this,o=this._requestBodyBuffers;(function g(a){if(r===i._currentRequest)if(a)i.emit("error",a);else if(n<o.length){var Q=o[n++];r.finished||r.write(Q.data,Q.encoding,g)}else i._ended&&r.end()})()}};JA.prototype._processResponse=function(A){var e=A.statusCode;this._options.trackRedirects&&this._redirects.push({url:this._currentUrl,headers:A.headers,statusCode:e});var t=A.headers.location;if(!t||this._options.followRedirects===!1||e<300||e>=400){A.responseUrl=this._currentUrl,A.redirects=this._redirects,this.emit("response",A),this._requestBodyBuffers=[];return}if(vQ(this._currentRequest),A.destroy(),++this._redirectCount>this._options.maxRedirects)throw new zN;var r,s=this._options.beforeRedirect;s&&(r=Object.assign({Host:A.req.getHeader("host")},this._options.headers));var n=this._options.method;((e===301||e===302)&&this._options.method==="POST"||e===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],mQ(/^content-/i,this._options.headers));var i=mQ(/^host$/i,this._options.headers),o=TQ(this._currentUrl),g=i||o.host,a=/^\w+:/.test(t)?this._currentUrl:ns.format(Object.assign(o,{host:g})),Q=tm(t,a);if(ol("redirecting to",Q.href),this._isRedirect=!0,UQ(Q,this._options),(Q.protocol!==o.protocol&&Q.protocol!=="https:"||Q.host!==g&&!rm(Q.host,g))&&mQ(/^(?:authorization|cookie)$/i,this._options.headers),ss(s)){var E={headers:A.headers,statusCode:e},C={url:a,method:n,headers:r};s(this._options,E,C),this._sanitizeOptions(this._options)}this._performRequest()};function gl(A){var e={maxRedirects:21,maxBodyLength:10485760},t={};return Object.keys(A).forEach(function(r){var s=r+":",n=t[s]=A[r],i=e[r]=Object.create(n);function o(a,Q,E){return nm(a)?a=UQ(a):yt(a)?a=UQ(TQ(a)):(E=Q,Q=El(a),a={protocol:s}),ss(Q)&&(E=Q,Q=null),Q=Object.assign({maxRedirects:e.maxRedirects,maxBodyLength:e.maxBodyLength},a,Q),Q.nativeProtocols=t,!yt(Q.host)&&!yt(Q.hostname)&&(Q.hostname="::1"),MQ.equal(Q.protocol,s,"protocol mismatch"),ol("options",Q),new JA(Q,E)}function g(a,Q,E){var C=i.request(a,Q,E);return C.end(),C}Object.defineProperties(i,{request:{value:o,configurable:!0,enumerable:!0,writable:!0},get:{value:g,configurable:!0,enumerable:!0,writable:!0}})}),e}function Ql(){}function TQ(A){var e;if(YQ)e=new rs(A);else if(e=El(ns.parse(A)),!yt(e.protocol))throw new bQ({input:A});return e}function tm(A,e){return YQ?new rs(A,e):TQ(ns.resolve(e,A))}function El(A){if(/^\[/.test(A.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(A.hostname))throw new bQ({input:A.href||A});if(/^\[/.test(A.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(A.host))throw new bQ({input:A.href||A});return A}function UQ(A,e){var t=e||{};for(var r of jN)t[r]=A[r];return t.hostname.startsWith("[")&&(t.hostname=t.hostname.slice(1,-1)),t.port!==""&&(t.port=Number(t.port)),t.path=t.search?t.pathname+t.search:t.pathname,t}function mQ(A,e){var t;for(var r in e)A.test(r)&&(t=e[r],delete e[r]);return t===null||typeof t>"u"?void 0:String(t).trim()}function is(A,e,t){function r(s){Error.captureStackTrace(this,this.constructor),Object.assign(this,s||{}),this.code=A,this.message=this.cause?e+": "+this.cause.message:e}return r.prototype=new(t||Error),Object.defineProperties(r.prototype,{constructor:{value:r,enumerable:!1},name:{value:"Error ["+A+"]",enumerable:!1}}),r}function vQ(A,e){for(var t of JQ)A.removeListener(t,GQ[t]);A.on("error",Ql),A.destroy(e)}function rm(A,e){MQ(yt(A)&&yt(e));var t=A.length-e.length-1;return t>0&&A[t]==="."&&A.endsWith(e)}function yt(A){return typeof A=="string"||A instanceof String}function ss(A){return typeof A=="function"}function sm(A){return typeof A=="object"&&"length"in A}function nm(A){return rs&&A instanceof rs}HQ.exports=gl({http:XN,https:KN});HQ.exports.wrap=gl});var xQ=c((IU,im)=>{im.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var hl=c((cU,cl)=>{"use strict";var os=mA(),al=yQ(),om=wQ(),gm=Wn(),Qm=require("http"),Em=require("https"),am=VQ().http,Cm=VQ().https,Cl=require("url"),Bm=require("zlib"),Im=xQ(),ei=_n(),qQ=Pn(),Bl=/https:?/;function Il(A,e,t){if(A.hostname=e.host,A.host=e.host,A.port=e.port,A.path=t,e.auth){var r=Buffer.from(e.auth.username+":"+e.auth.password,"utf8").toString("base64");A.headers["Proxy-Authorization"]="Basic "+r}A.beforeRedirect=function(n){n.headers.host=n.host,Il(n,e,n.href)}}cl.exports=function(e){return new Promise(function(r,s){var n=function(S){r(S)},i=function(S){s(S)},o=e.data,g=e.headers;if("User-Agent"in g||"user-agent"in g?!g["User-Agent"]&&!g["user-agent"]&&(delete g["User-Agent"],delete g["user-agent"]):g["User-Agent"]="axios/"+Im.version,o&&!os.isStream(o)){if(!Buffer.isBuffer(o))if(os.isArrayBuffer(o))o=Buffer.from(new Uint8Array(o));else if(os.isString(o))o=Buffer.from(o,"utf-8");else return i(ei("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",e));g["Content-Length"]=o.length}var a=void 0;if(e.auth){var Q=e.auth.username||"",E=e.auth.password||"";a=Q+":"+E}var C=om(e.baseURL,e.url),B=Cl.parse(C),I=B.protocol||"http:";if(!a&&B.auth){var h=B.auth.split(":"),l=h[0]||"",u=h[1]||"";a=l+":"+u}a&&delete g.Authorization;var F=Bl.test(I),w=F?e.httpsAgent:e.httpAgent,k={path:gm(B.path,e.params,e.paramsSerializer).replace(/^\?/,""),method:e.method.toUpperCase(),headers:g,agent:w,agents:{http:e.httpAgent,https:e.httpsAgent},auth:a};e.socketPath?k.socketPath=e.socketPath:(k.hostname=B.hostname,k.port=B.port);var T=e.proxy;if(!T&&T!==!1){var O=I.slice(0,-1)+"_proxy",V=process.env[O]||process.env[O.toUpperCase()];if(V){var K=Cl.parse(V),uA=process.env.no_proxy||process.env.NO_PROXY,IA=!0;if(uA){var wt=uA.split(",").map(function(S){return S.trim()});IA=!wt.some(function(S){return S?S==="*"||S[0]==="."&&B.hostname.substr(B.hostname.length-S.length)===S?!0:B.hostname===S:!1})}if(IA&&(T={host:K.hostname,port:K.port,protocol:K.protocol},K.auth)){var wA=K.auth.split(":");T.auth={username:wA[0],password:wA[1]}}}}T&&(k.headers.host=B.hostname+(B.port?":"+B.port:""),Il(k,T,I+"//"+B.hostname+(B.port?":"+B.port:"")+k.path));var gA,Be=F&&(T?Bl.test(T.protocol):!0);e.transport?gA=e.transport:e.maxRedirects===0?gA=Be?Em:Qm:(e.maxRedirects&&(k.maxRedirects=e.maxRedirects),gA=Be?Cm:am),e.maxBodyLength>-1&&(k.maxBodyLength=e.maxBodyLength);var _=gA.request(k,function(S){if(!_.aborted){var Ie=S,x=S.req||_;if(S.statusCode!==204&&x.method!=="HEAD"&&e.decompress!==!1)switch(S.headers["content-encoding"]){case"gzip":case"compress":case"deflate":Ie=Ie.pipe(Bm.createUnzip()),delete S.headers["content-encoding"];break}var TA={status:S.statusCode,statusText:S.statusMessage,headers:S.headers,config:e,request:x};if(e.responseType==="stream")TA.data=Ie,al(n,i,TA);else{var $Q=[],AE=0;Ie.on("data",function(ce){$Q.push(ce),AE+=ce.length,e.maxContentLength>-1&&AE>e.maxContentLength&&(Ie.destroy(),i(ei("maxContentLength size of "+e.maxContentLength+" exceeded",e,null,x)))}),Ie.on("error",function(ce){_.aborted||i(qQ(ce,e,null,x))}),Ie.on("end",function(){var ce=Buffer.concat($Q);e.responseType!=="arraybuffer"&&(ce=ce.toString(e.responseEncoding),(!e.responseEncoding||e.responseEncoding==="utf8")&&(ce=os.stripBOM(ce))),TA.data=ce,al(n,i,TA)})}}});if(_.on("error",function(S){_.aborted&&S.code!=="ERR_FR_TOO_MANY_REDIRECTS"||i(qQ(S,e,null,_))}),e.timeout){var tA=parseInt(e.timeout,10);if(isNaN(tA)){i(ei("error trying to parse `config.timeout` to int",e,"ERR_PARSE_TIMEOUT",_));return}_.setTimeout(tA,function(){_.abort(),i(ei("timeout of "+tA+"ms exceeded",e,e.transitional&&e.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",_))})}e.cancelToken&&e.cancelToken.promise.then(function(S){_.aborted||(_.abort(),i(S))}),os.isStream(o)?o.on("error",function(S){i(qQ(S,e,null,_))}).pipe(_):_.end(o)})}});var ri=c((hU,fl)=>{"use strict";var lA=mA(),ll=bh(),cm=Pn(),hm={"Content-Type":"application/x-www-form-urlencoded"};function ul(A,e){!lA.isUndefined(A)&&lA.isUndefined(A["Content-Type"])&&(A["Content-Type"]=e)}function lm(){var A;return typeof XMLHttpRequest<"u"?A=_h():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(A=hl()),A}function um(A,e,t){if(lA.isString(A))try{return(e||JSON.parse)(A),lA.trim(A)}catch(r){if(r.name!=="SyntaxError")throw r}return(t||JSON.stringify)(A)}var ti={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:lm(),transformRequest:[function(e,t){return ll(t,"Accept"),ll(t,"Content-Type"),lA.isFormData(e)||lA.isArrayBuffer(e)||lA.isBuffer(e)||lA.isStream(e)||lA.isFile(e)||lA.isBlob(e)?e:lA.isArrayBufferView(e)?e.buffer:lA.isURLSearchParams(e)?(ul(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):lA.isObject(e)||t&&t["Content-Type"]==="application/json"?(ul(t,"application/json"),um(e)):e}],transformResponse:[function(e){var t=this.transitional,r=t&&t.silentJSONParsing,s=t&&t.forcedJSONParsing,n=!r&&this.responseType==="json";if(n||s&&lA.isString(e)&&e.length)try{return JSON.parse(e)}catch(i){if(n)throw i.name==="SyntaxError"?cm(i,this,"E_JSON_PARSE"):i}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300}};ti.headers={common:{Accept:"application/json, text/plain, */*"}};lA.forEach(["delete","get","head"],function(e){ti.headers[e]={}});lA.forEach(["post","put","patch"],function(e){ti.headers[e]=lA.merge(hm)});fl.exports=ti});var yl=c((lU,dl)=>{"use strict";var fm=mA(),dm=ri();dl.exports=function(e,t,r){var s=this||dm;return fm.forEach(r,function(i){e=i.call(s,e,t)}),e}});var WQ=c((uU,wl)=>{"use strict";wl.exports=function(e){return!!(e&&e.__CANCEL__)}});var Rl=c((fU,pl)=>{"use strict";var Dl=mA(),OQ=yl(),ym=WQ(),wm=ri();function PQ(A){A.cancelToken&&A.cancelToken.throwIfRequested()}pl.exports=function(e){PQ(e),e.headers=e.headers||{},e.data=OQ.call(e,e.data,e.headers,e.transformRequest),e.headers=Dl.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),Dl.forEach(["delete","get","head","post","put","patch","common"],function(s){delete e.headers[s]});var t=e.adapter||wm.adapter;return t(e).then(function(s){return PQ(e),s.data=OQ.call(e,s.data,s.headers,e.transformResponse),s},function(s){return ym(s)||(PQ(e),s&&s.response&&(s.response.data=OQ.call(e,s.response.data,s.response.headers,e.transformResponse))),Promise.reject(s)})}});var _Q=c((dU,kl)=>{"use strict";var yA=mA();kl.exports=function(e,t){t=t||{};var r={},s=["url","method","data"],n=["headers","auth","proxy","params"],i=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],o=["validateStatus"];function g(C,B){return yA.isPlainObject(C)&&yA.isPlainObject(B)?yA.merge(C,B):yA.isPlainObject(B)?yA.merge({},B):yA.isArray(B)?B.slice():B}function a(C){yA.isUndefined(t[C])?yA.isUndefined(e[C])||(r[C]=g(void 0,e[C])):r[C]=g(e[C],t[C])}yA.forEach(s,function(B){yA.isUndefined(t[B])||(r[B]=g(void 0,t[B]))}),yA.forEach(n,a),yA.forEach(i,function(B){yA.isUndefined(t[B])?yA.isUndefined(e[B])||(r[B]=g(void 0,e[B])):r[B]=g(void 0,t[B])}),yA.forEach(o,function(B){B in t?r[B]=g(e[B],t[B]):B in e&&(r[B]=g(void 0,e[B]))});var Q=s.concat(n).concat(i).concat(o),E=Object.keys(e).concat(Object.keys(t)).filter(function(B){return Q.indexOf(B)===-1});return yA.forEach(E,a),r}});var Sl=c((yU,bl)=>{"use strict";var Nl=xQ(),ZQ={};["object","boolean","number","function","string","symbol"].forEach(function(A,e){ZQ[A]=function(r){return typeof r===A||"a"+(e<1?"n ":" ")+A}});var Fl={},Dm=Nl.version.split(".");function ml(A,e){for(var t=e?e.split("."):Dm,r=A.split("."),s=0;s<3;s++){if(t[s]>r[s])return!0;if(t[s]<r[s])return!1}return!1}ZQ.transitional=function(e,t,r){var s=t&&ml(t);function n(i,o){return"[Axios v"+Nl.version+"] Transitional option '"+i+"'"+o+(r?". "+r:"")}return function(i,o,g){if(e===!1)throw new Error(n(o," has been removed in "+t));return s&&!Fl[o]&&(Fl[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),e?e(i,o,g):!0}};function pm(A,e,t){if(typeof A!="object")throw new TypeError("options must be an object");for(var r=Object.keys(A),s=r.length;s-- >0;){var n=r[s],i=e[n];if(i){var o=A[n],g=o===void 0||i(o,n,A);if(g!==!0)throw new TypeError("option "+n+" must be "+g);continue}if(t!==!0)throw Error("Unknown option "+n)}}bl.exports={isOlderVersion:ml,assertOptions:pm,validators:ZQ}});var Gl=c((wU,Jl)=>{"use strict";var Ml=mA(),Rm=Wn(),Ul=Nh(),Ll=Rl(),si=_Q(),Yl=Sl(),Br=Yl.validators;function gs(A){this.defaults=A,this.interceptors={request:new Ul,response:new Ul}}gs.prototype.request=function(e){typeof e=="string"?(e=arguments[1]||{},e.url=arguments[0]):e=e||{},e=si(this.defaults,e),e.method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;t!==void 0&&Yl.assertOptions(t,{silentJSONParsing:Br.transitional(Br.boolean,"1.0.0"),forcedJSONParsing:Br.transitional(Br.boolean,"1.0.0"),clarifyTimeoutError:Br.transitional(Br.boolean,"1.0.0")},!1);var r=[],s=!0;this.interceptors.request.forEach(function(C){typeof C.runWhen=="function"&&C.runWhen(e)===!1||(s=s&&C.synchronous,r.unshift(C.fulfilled,C.rejected))});var n=[];this.interceptors.response.forEach(function(C){n.push(C.fulfilled,C.rejected)});var i;if(!s){var o=[Ll,void 0];for(Array.prototype.unshift.apply(o,r),o=o.concat(n),i=Promise.resolve(e);o.length;)i=i.then(o.shift(),o.shift());return i}for(var g=e;r.length;){var a=r.shift(),Q=r.shift();try{g=a(g)}catch(E){Q(E);break}}try{i=Ll(g)}catch(E){return Promise.reject(E)}for(;n.length;)i=i.then(n.shift(),n.shift());return i};gs.prototype.getUri=function(e){return e=si(this.defaults,e),Rm(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")};Ml.forEach(["delete","get","head","options"],function(e){gs.prototype[e]=function(t,r){return this.request(si(r||{},{method:e,url:t,data:(r||{}).data}))}});Ml.forEach(["post","put","patch"],function(e){gs.prototype[e]=function(t,r,s){return this.request(si(s||{},{method:e,url:t,data:r}))}});Jl.exports=gs});var KQ=c((DU,Tl)=>{"use strict";function XQ(A){this.message=A}XQ.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};XQ.prototype.__CANCEL__=!0;Tl.exports=XQ});var Hl=c((pU,vl)=>{"use strict";var km=KQ();function ni(A){if(typeof A!="function")throw new TypeError("executor must be a function.");var e;this.promise=new Promise(function(s){e=s});var t=this;A(function(s){t.reason||(t.reason=new km(s),e(t.reason))})}ni.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};ni.source=function(){var e,t=new ni(function(s){e=s});return{token:t,cancel:e}};vl.exports=ni});var xl=c((RU,Vl)=>{"use strict";Vl.exports=function(e){return function(r){return e.apply(null,r)}}});var Wl=c((kU,ql)=>{"use strict";ql.exports=function(e){return typeof e=="object"&&e.isAxiosError===!0}});var _l=c((FU,jQ)=>{"use strict";var Ol=mA(),Fm=hQ(),ii=Gl(),Nm=_Q(),mm=ri();function Pl(A){var e=new ii(A),t=Fm(ii.prototype.request,e);return Ol.extend(t,ii.prototype,e),Ol.extend(t,e),t}var Ce=Pl(mm);Ce.Axios=ii;Ce.create=function(e){return Pl(Nm(Ce.defaults,e))};Ce.Cancel=KQ();Ce.CancelToken=Hl();Ce.isCancel=WQ();Ce.all=function(e){return Promise.all(e)};Ce.spread=xl();Ce.isAxiosError=Wl();jQ.exports=Ce;jQ.exports.default=Ce});var Xl=c((NU,Zl)=>{Zl.exports=_l()});var Kl=c((exports,module)=>{"use strict";var __awaiter=exports&&exports.__awaiter||function(A,e,t,r){function s(n){return n instanceof t?n:new t(function(i){i(n)})}return new(t||(t=Promise))(function(n,i){function o(Q){try{a(r.next(Q))}catch(E){i(E)}}function g(Q){try{a(r.throw(Q))}catch(E){i(E)}}function a(Q){Q.done?n(Q.value):s(Q.value).then(o,g)}a((r=r.apply(A,e||[])).next())})},__generator=exports&&exports.__generator||function(A,e){var t={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},r,s,n,i;return i={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(i[Symbol.iterator]=function(){return this}),i;function o(a){return function(Q){return g([a,Q])}}function g(a){if(r)throw new TypeError("Generator is already executing.");for(;t;)try{if(r=1,s&&(n=a[0]&2?s.return:a[0]?s.throw||((n=s.return)&&n.call(s),0):s.next)&&!(n=n.call(s,a[1])).done)return n;switch(s=0,n&&(a=[a[0]&2,n.value]),a[0]){case 0:case 1:n=a;break;case 4:return t.label++,{value:a[1],done:!1};case 5:t.label++,s=a[1],a=[0];continue;case 7:a=t.ops.pop(),t.trys.pop();continue;default:if(n=t.trys,!(n=n.length>0&&n[n.length-1])&&(a[0]===6||a[0]===2)){t=0;continue}if(a[0]===3&&(!n||a[1]>n[0]&&a[1]<n[3])){t.label=a[1];break}if(a[0]===6&&t.label<n[1]){t.label=n[1],n=a;break}if(n&&t.label<n[2]){t.label=n[2],t.ops.push(a);break}n[2]&&t.ops.pop(),t.trys.pop();continue}a=e.call(A,t)}catch(Q){a=[6,Q],s=0}finally{r=n=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}},__importDefault=exports&&exports.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(exports,"__esModule",{value:!0});exports.getAllAudioBase64=exports.getAudioBase64=void 0;var assertInputTypes_1=__importDefault(CQ()),axios_1=__importDefault(Xl()),splitLongText_1=__importDefault(IQ()),getAudioBase64=function(text,_a){var _b=_a===void 0?{}:_a,_c=_b.lang,lang=_c===void 0?"en":_c,_d=_b.slow,slow=_d===void 0?!1:_d,_e=_b.host,host=_e===void 0?"https://translate.google.com":_e,_f=_b.timeout,timeout=_f===void 0?1e4:_f;return __awaiter(void 0,void 0,void 0,function(){var res,result;return __generator(this,function(_g){switch(_g.label){case 0:if(assertInputTypes_1.default(text,lang,slow,host),typeof timeout!="number"||timeout<=0)throw new TypeError("timeout should be a positive number");if(text.length>200)throw new RangeError("text length ("+text.length+') should be less than 200 characters. Try "getAllAudioBase64(text, [option])" for long text.');return[4,axios_1.default({method:"post",baseURL:host,url:"/_/TranslateWebserverUi/data/batchexecute",timeout,data:"f.req="+encodeURIComponent(JSON.stringify([[["jQ1olc",JSON.stringify([text,lang,slow?!0:null,"null"]),null,"generic"]]]))})];case 1:res=_g.sent();try{result=eval(res.data.slice(5))[0][2]}catch(A){throw new Error(`parse response failed: -`+res.data)}if(!result)throw new Error('lang "'+lang+'" might not exist');try{result=eval(result)[0]}catch(A){throw new Error(`parse response failed: -`+res.data)}return[2,result]}})})};exports.getAudioBase64=getAudioBase64;var getAllAudioBase64=function(A,e){var t=e===void 0?{}:e,r=t.lang,s=r===void 0?"en":r,n=t.slow,i=n===void 0?!1:n,o=t.host,g=o===void 0?"https://translate.google.com":o,a=t.splitPunct,Q=a===void 0?"":a,E=t.timeout,C=E===void 0?1e4:E;return __awaiter(void 0,void 0,void 0,function(){var B,I,h,l,u,F;return __generator(this,function(w){switch(w.label){case 0:if(assertInputTypes_1.default(A,s,i,g),typeof Q!="string")throw new TypeError("splitPunct should be a string");if(typeof C!="number"||C<=0)throw new TypeError("timeout should be a positive number");return B=splitLongText_1.default(A,{splitPunct:Q}),[4,Promise.all(B.map(function(k){return exports.getAudioBase64(k,{lang:s,slow:i,host:g,timeout:C})}))];case 1:for(I=w.sent(),h=[],l=0;l<B.length;l++)u=B[l],F=I[l],h.push({shortText:u,base64:F});return[2,h]}})})};exports.getAllAudioBase64=getAllAudioBase64});var $l=c(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.getAllAudioBase64=Re.getAudioBase64=Re.getAllAudioUrls=Re.getAudioUrl=void 0;var jl=dh();Object.defineProperty(Re,"getAudioUrl",{enumerable:!0,get:function(){return jl.getAudioUrl}});Object.defineProperty(Re,"getAllAudioUrls",{enumerable:!0,get:function(){return jl.getAllAudioUrls}});var zl=Kl();Object.defineProperty(Re,"getAudioBase64",{enumerable:!0,get:function(){return zl.getAudioBase64}});Object.defineProperty(Re,"getAllAudioBase64",{enumerable:!0,get:function(){return zl.getAllAudioBase64}})});var tu=c(GA=>{"use strict";var bm=GA&&GA.__createBinding||(Object.create?function(A,e,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(A,r,s)}:function(A,e,t,r){r===void 0&&(r=t),A[r]=e[t]}),Sm=GA&&GA.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:!0,value:e})}:function(A,e){A.default=e}),Au=GA&&GA.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)t!=="default"&&Object.prototype.hasOwnProperty.call(A,t)&&bm(e,A,t);return Sm(e,A),e};Object.defineProperty(GA,"__esModule",{value:!0});GA.req=GA.json=GA.toBuffer=void 0;var Um=Au(require("http")),Lm=Au(require("https"));async function eu(A){let e=0,t=[];for await(let r of A)e+=r.length,t.push(r);return Buffer.concat(t,e)}GA.toBuffer=eu;async function Mm(A){let t=(await eu(A)).toString("utf8");try{return JSON.parse(t)}catch(r){let s=r;throw s.message+=` (input: ${t})`,s}}GA.json=Mm;function Ym(A,e={}){let r=((typeof A=="string"?A:A.href).startsWith("https:")?Lm:Um).request(A,e),s=new Promise((n,i)=>{r.once("response",n).once("error",i).end()});return r.then=s.then.bind(s),r}GA.req=Ym});var iu=c(KA=>{"use strict";var su=KA&&KA.__createBinding||(Object.create?function(A,e,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(A,r,s)}:function(A,e,t,r){r===void 0&&(r=t),A[r]=e[t]}),Jm=KA&&KA.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:!0,value:e})}:function(A,e){A.default=e}),nu=KA&&KA.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)t!=="default"&&Object.prototype.hasOwnProperty.call(A,t)&&su(e,A,t);return Jm(e,A),e},Gm=KA&&KA.__exportStar||function(A,e){for(var t in A)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&su(e,A,t)};Object.defineProperty(KA,"__esModule",{value:!0});KA.Agent=void 0;var Tm=nu(require("net")),ru=nu(require("http")),vm=require("https");Gm(tu(),KA);var ke=Symbol("AgentBaseInternalState"),zQ=class extends ru.Agent{constructor(e){super(e),this[ke]={}}isSecureEndpoint(e){if(e){if(typeof e.secureEndpoint=="boolean")return e.secureEndpoint;if(typeof e.protocol=="string")return e.protocol==="https:"}let{stack:t}=new Error;return typeof t!="string"?!1:t.split(` -`).some(r=>r.indexOf("(https.js:")!==-1||r.indexOf("node:https:")!==-1)}incrementSockets(e){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[e]||(this.sockets[e]=[]);let t=new Tm.Socket({writable:!1});return this.sockets[e].push(t),this.totalSocketCount++,t}decrementSockets(e,t){if(!this.sockets[e]||t===null)return;let r=this.sockets[e],s=r.indexOf(t);s!==-1&&(r.splice(s,1),this.totalSocketCount--,r.length===0&&delete this.sockets[e])}getName(e){return(typeof e.secureEndpoint=="boolean"?e.secureEndpoint:this.isSecureEndpoint(e))?vm.Agent.prototype.getName.call(this,e):super.getName(e)}createSocket(e,t,r){let s={...t,secureEndpoint:this.isSecureEndpoint(t)},n=this.getName(s),i=this.incrementSockets(n);Promise.resolve().then(()=>this.connect(e,s)).then(o=>{if(this.decrementSockets(n,i),o instanceof ru.Agent)try{return o.addRequest(e,s)}catch(g){return r(g)}this[ke].currentSocket=o,super.createSocket(e,t,r)},o=>{this.decrementSockets(n,i),r(o)})}createConnection(){let e=this[ke].currentSocket;if(this[ke].currentSocket=void 0,!e)throw new Error("No socket was returned in the `connect()` function");return e}get defaultPort(){return this[ke].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(e){this[ke]&&(this[ke].defaultPort=e)}get protocol(){return this[ke].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(e){this[ke]&&(this[ke].protocol=e)}};KA.Agent=zQ});var ou=c(Ir=>{"use strict";var Hm=Ir&&Ir.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(Ir,"__esModule",{value:!0});Ir.parseProxyResponse=void 0;var Vm=Hm(Ai()),oi=(0,Vm.default)("https-proxy-agent:parse-proxy-response");function xm(A){return new Promise((e,t)=>{let r=0,s=[];function n(){let Q=A.read();Q?a(Q):A.once("readable",n)}function i(){A.removeListener("end",o),A.removeListener("error",g),A.removeListener("readable",n)}function o(){i(),oi("onend"),t(new Error("Proxy connection ended before receiving CONNECT response"))}function g(Q){i(),oi("onerror %o",Q),t(Q)}function a(Q){s.push(Q),r+=Q.length;let E=Buffer.concat(s,r),C=E.indexOf(`\r -\r -`);if(C===-1){oi("have not received end of HTTP headers yet..."),n();return}let B=E.slice(0,C).toString("ascii").split(`\r -`),I=B.shift();if(!I)return A.destroy(),t(new Error("No header received from proxy CONNECT response"));let h=I.split(" "),l=+h[1],u=h.slice(2).join(" "),F={};for(let w of B){if(!w)continue;let k=w.indexOf(":");if(k===-1)return A.destroy(),t(new Error(`Invalid header from proxy CONNECT response: "${w}"`));let T=w.slice(0,k).toLowerCase(),O=w.slice(k+1).trimStart(),V=F[T];typeof V=="string"?F[T]=[V,O]:Array.isArray(V)?V.push(O):F[T]=O}oi("got proxy server response: %o %o",I,F),i(),e({connect:{statusCode:l,statusText:u,headers:F},buffered:E})}A.on("error",g),A.on("end",o),n()})}Ir.parseProxyResponse=xm});var Bu=c(oe=>{"use strict";var qm=oe&&oe.__createBinding||(Object.create?function(A,e,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(A,r,s)}:function(A,e,t,r){r===void 0&&(r=t),A[r]=e[t]}),Wm=oe&&oe.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:!0,value:e})}:function(A,e){A.default=e}),au=oe&&oe.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)t!=="default"&&Object.prototype.hasOwnProperty.call(A,t)&&qm(e,A,t);return Wm(e,A),e},Cu=oe&&oe.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(oe,"__esModule",{value:!0});oe.HttpsProxyAgent=void 0;var gi=au(require("net")),gu=au(require("tls")),Om=Cu(require("assert")),Pm=Cu(Ai()),_m=iu(),Zm=require("url"),Xm=ou(),Qs=(0,Pm.default)("https-proxy-agent"),Qu=A=>A.servername===void 0&&A.host&&!gi.isIP(A.host)?{...A,servername:A.host}:A,Qi=class extends _m.Agent{constructor(e,t){super(t),this.options={path:void 0},this.proxy=typeof e=="string"?new Zm.URL(e):e,this.proxyHeaders=t?.headers??{},Qs("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let r=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),s=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...t?Eu(t,"headers"):null,host:r,port:s}}async connect(e,t){let{proxy:r}=this;if(!t.host)throw new TypeError('No "host" provided');let s;r.protocol==="https:"?(Qs("Creating `tls.Socket`: %o",this.connectOpts),s=gu.connect(Qu(this.connectOpts))):(Qs("Creating `net.Socket`: %o",this.connectOpts),s=gi.connect(this.connectOpts));let n=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},i=gi.isIPv6(t.host)?`[${t.host}]`:t.host,o=`CONNECT ${i}:${t.port} HTTP/1.1\r -`;if(r.username||r.password){let C=`${decodeURIComponent(r.username)}:${decodeURIComponent(r.password)}`;n["Proxy-Authorization"]=`Basic ${Buffer.from(C).toString("base64")}`}n.Host=`${i}:${t.port}`,n["Proxy-Connection"]||(n["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let C of Object.keys(n))o+=`${C}: ${n[C]}\r -`;let g=(0,Xm.parseProxyResponse)(s);s.write(`${o}\r -`);let{connect:a,buffered:Q}=await g;if(e.emit("proxyConnect",a),this.emit("proxyConnect",a,e),a.statusCode===200)return e.once("socket",Km),t.secureEndpoint?(Qs("Upgrading socket connection to TLS"),gu.connect({...Eu(Qu(t),"host","path","port"),socket:s})):s;s.destroy();let E=new gi.Socket({writable:!1});return E.readable=!0,e.once("socket",C=>{Qs("Replaying proxy buffer for failed request"),(0,Om.default)(C.listenerCount("data")>0),C.push(Q),C.push(null)}),E}};Qi.protocols=["http","https"];oe.HttpsProxyAgent=Qi;function Km(A){A.resume()}function Eu(A,...e){let t={},r;for(r in A)e.includes(r)||(t[r]=A[r]);return t}});var Ab={};wu(Ab,{default:()=>hu});module.exports=Du(Ab);var ai=require("@raycast/api");var $e=require("@raycast/api");var EQ=cr(require("querystring")),es=cr(oQ());var As={auto:"Auto-Detect",ab:"Abkhaz",ace:"Acehnese",ach:"Acholi",aa:"Afar",af:"Afrikaans",sq:"Albanian",alz:"Alur",am:"Amharic",ar:"Arabic",hy:"Armenian",as:"Assamese",av:"Avar",awa:"Awadhi",ay:"Aymara",az:"Azerbaijani",ban:"Balinese",bal:"Baluchi",bm:"Bambara",bci:"Baoul\xE9",ba:"Bashkir",eu:"Basque",btx:"Batak Karo",bts:"Batak Simalungun",bbc:"Batak Toba",be:"Belarusian",bem:"Bemba",bn:"Bengali",bew:"Betawi",bho:"Bhojpuri",bik:"Bikol",bs:"Bosnian",br:"Breton",bg:"Bulgarian",bua:"Buryat",yue:"Cantonese",ca:"Catalan",ceb:"Cebuano",ch:"Chamorro",ce:"Chechen",ny:"Chichewa","zh-CN":"Chinese (Simplified)","zh-TW":"Chinese (Traditional)",chk:"Chuukese",cv:"Chuvash",co:"Corsican",crh:"Crimean Tatar (Cyrillic)","crh-Latn":"Crimean Tatar (Latin)",hr:"Croatian",cs:"Czech",da:"Danish","fa-AF":"Dari",dv:"Dhivehi",din:"Dinka",doi:"Dogri",dov:"Dombe",nl:"Dutch",dyu:"Dyula",dz:"Dzongkha",en:"English",eo:"Esperanto",et:"Estonian",ee:"Ewe",fo:"Faroese",fj:"Fijian",tl:"Filipino",fi:"Finnish",fon:"Fon",fr:"French","fr-CA":"French (Canada)",fy:"Frisian",fur:"Friulian",ff:"Fulani",gaa:"Ga",gl:"Galician",ka:"Georgian",de:"German",el:"Greek",gn:"Guarani",gu:"Gujarati",ht:"Haitian Creole",cnh:"Hakha Chin",ha:"Hausa",haw:"Hawaiian",iw:"Hebrew",hil:"Hiligaynon",hi:"Hindi",hmn:"Hmong",hu:"Hungarian",hrx:"Hunsrik",iba:"Iban",is:"Icelandic",ig:"Igbo",ilo:"Ilocano",id:"Indonesian","iu-Latn":"Inuktut (Latin)",iu:"Inuktut (Syllabics)",ga:"Irish",it:"Italian",jam:"Jamaican Patois",ja:"Japanese",jv:"Javanese",kac:"Jingpo",kl:"Kalaallisut",kn:"Kannada",kr:"Kanuri",pam:"Kapampangan",kk:"Kazakh",kha:"Khasi",km:"Khmer",cgg:"Kiga",kg:"Kikongo",rw:"Kinyarwanda",ktu:"Kituba",trp:"Kokborok",kv:"Komi",gom:"Konkani",ko:"Korean",kri:"Krio",ku:"Kurdish (Kurmanji)",ckb:"Kurdish (Sorani)",ky:"Kyrgyz",lo:"Lao",ltg:"Latgalian",la:"Latin",lv:"Latvian",lij:"Ligurian",li:"Limburgish",ln:"Lingala",lt:"Lithuanian",lmo:"Lombard",lg:"Luganda",luo:"Luo",lb:"Luxembourgish",mk:"Macedonian",mad:"Madurese",mai:"Maithili",mak:"Makassar",mg:"Malagasy",ms:"Malay","ms-Arab":"Malay (Jawi)",ml:"Malayalam",mt:"Maltese",mam:"Mam",gv:"Manx",mi:"Maori",mr:"Marathi",mh:"Marshallese",mwr:"Marwadi",mfe:"Mauritian Creole",chm:"Meadow Mari","mni-Mtei":"Meiteilon (Manipuri)",min:"Minang",lus:"Mizo",mn:"Mongolian",my:"Myanmar (Burmese)","bm-Nkoo":"NKo",nhe:"Nahuatl (Eastern Huasteca)","ndc-ZW":"Ndau",nr:"Ndebele (South)",new:"Nepalbhasa (Newari)",ne:"Nepali",no:"Norwegian",nus:"Nuer",oc:"Occitan",or:"Odia (Oriya)",om:"Oromo",os:"Ossetian",pag:"Pangasinan",pap:"Papiamento",ps:"Pashto",fa:"Persian",pl:"Polish",pt:"Portuguese (Brazil)","pt-PT":"Portuguese (Portugal)",pa:"Punjabi (Gurmukhi)","pa-Arab":"Punjabi (Shahmukhi)",qu:"Quechua",kek:"Q\u02BCeqchi\u02BC",rom:"Romani",ro:"Romanian",rn:"Rundi",ru:"Russian",se:"Sami (North)",sm:"Samoan",sg:"Sango",sa:"Sanskrit","sat-Latn":"Santali (Latin)",sat:"Santali (Ol Chiki)",gd:"Scots Gaelic",nso:"Sepedi",sr:"Serbian",st:"Sesotho",crs:"Seychellois Creole",shn:"Shan",sn:"Shona",scn:"Sicilian",szl:"Silesian",sd:"Sindhi",si:"Sinhala",sk:"Slovak",sl:"Slovenian",so:"Somali",es:"Spanish",su:"Sundanese",sus:"Susu",sw:"Swahili",ss:"Swati",sv:"Swedish",ty:"Tahitian",tg:"Tajik","ber-Latn":"Tamazight",ber:"Tamazight (Tifinagh)",ta:"Tamil",tt:"Tatar",te:"Telugu",tet:"Tetum",th:"Thai",bo:"Tibetan",ti:"Tigrinya",tiv:"Tiv",tpi:"Tok Pisin",to:"Tongan",lua:"Tshiluba",ts:"Tsonga",tn:"Tswana",tcy:"Tulu",tum:"Tumbuka",tr:"Turkish",tk:"Turkmen",tyv:"Tuvan",ak:"Twi",udm:"Udmurt",uk:"Ukrainian",ur:"Urdu",ug:"Uyghur",uz:"Uzbek",ve:"Venda",vec:"Venetian",vi:"Vietnamese",war:"Waray",cy:"Welsh",wo:"Wolof",xh:"Xhosa",sah:"Yakut",yi:"Yiddish",yo:"Yoruba",yua:"Yucatec Maya",zap:"Zapotec",zu:"Zulu"};function Vn(A){return A?A in As||(A=A.toLowerCase(),A in As)?A:Object.keys(As).filter(t=>typeof As[t]!="string"?!1:As[t].toLowerCase()===A)[0]||void 0:void 0}function Bh(A){return!!Vn(A)}var ch=cr(oQ());function xF(A){let e;if(gQ!==null)e=gQ;else{e=xn("T");let g=xn("K");e=[e(),e()],e[1]=g(),e=(gQ=QQ[e.join(g())]||"")||""}let t=xn("t"),r=xn("k");t=[t(),t()],t[1]=r(),r="&"+t.join("")+"=",t=e.split("."),e=Number(t[0])||0;for(var s=[],n=0,i=0;i<A.length;i++){let g=A.charCodeAt(i);128>g?s[n++]=g:(2048>g?s[n++]=g>>6|192:((g&64512)==55296&&i+1<A.length&&(A.charCodeAt(i+1)&64512)==56320?(g=65536+((g&1023)<<10)+(A.charCodeAt(++i)&1023),s[n++]=g>>18|240,s[n++]=g>>12&63|128):s[n++]=g>>12|224,s[n++]=g>>6&63|128),s[n++]=g&63|128)}let o=Number(e);for(let g=0;g<s.length;g++)A+=s[g],o=Ih(o,"+-a^+6");return o=Ih(o,"+-3^+b+-f"),o^=Number(t[1])||0,0>o&&(o=(o&2147483647)+2147483648),o%=1e6,r+(A.toString()+"."+(o^e))}var gQ=null,xn=function(A){return function(){return A}},Ih=function(A,e){for(let t=0;t<e.length-2;t+=3){let r=e.charAt(t+2),s=r>="a"?r.charCodeAt(0)-87:Number(r);s=e.charAt(t+1)=="+"?A>>>s:A<<s,A=e.charAt(t)=="+"?A+s&4294967295:A^s}return A},hh=new Map,QQ={TKK:hh.get("TKK")||"0"};async function qF(){let A=Math.floor(Date.now()/36e5);if(Number(QQ.TKK.split(".")[0])!==A){let r=(await(await(0,ch.request)("https://translate.google.com")).body.text()).match(/tkk:'\d+.\d+'/g);if(r&&r.length>0){let s=r[0].split(":")[1].replace(/'/g,"");QQ.TKK=s,hh.set("TKK",s)}}}async function lh(A){try{await qF();let e=xF(A);return e=e.replace("&tk=",""),{name:"tk",value:e}}catch(e){return e}}async function uh(A,e){typeof e!="object"&&(e={}),A=String(A);let t=null;if([e.from,e.to].forEach(C=>{C&&!Bh(C)&&(t=new Error,t.message=`The language '${C}' is not supported.`)}),t)throw t;Object.prototype.hasOwnProperty.call(e,"from")||(e.from="auto"),Object.prototype.hasOwnProperty.call(e,"to")||(e.to="en"),e.raw=!!e.raw,e.from=Vn(e.from),e.to=Vn(e.to);let r=await lh(A),s="https://translate.google.com/translate_a/single",n={client:"gtx",sl:e.from,tl:e.to,hl:e.to,dt:["at","bd","ex","ld","md","qca","rw","rm","ss","t"],ie:"UTF-8",oe:"UTF-8",otf:1,ssel:0,tsel:0,kc:7,q:A,[r.name]:r.value},i=`${s}?${EQ.default.stringify(n)}`,o,g=i;i.length>2048?(delete n.q,g=`${s}?${EQ.default.stringify(n)}`,o={method:"POST",body:new URLSearchParams({q:A}).toString(),headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"}},e.proxy&&(o.dispatcher=new es.ProxyAgent(e.proxy))):e.proxy&&(o={dispatcher:new es.ProxyAgent(e.proxy)});let Q=await(await(0,es.request)(g,o)).body.json(),E={text:"",from:{language:{didYouMean:!1,iso:""},text:{autoCorrected:!1,value:"",didYouMean:!1}},raw:""};if(e.raw&&(E.raw=Q),Q[0].forEach(C=>{C[0]&&(E.text+=C[0])}),Q[2]===Q[8][0][0]?E.from.language.iso=Q[2]:(E.from.language.didYouMean=!0,E.from.language.iso=Q[8][0][0]),Q[7]&&Q[7][0]){let C=Q[7][0];C=C.replace(/<b><i>/g,"["),C=C.replace(/<\/i><\/b>/g,"]"),E.from.text.value=C,Q[7][5]===!0?E.from.text.autoCorrected=!0:E.from.text.didYouMean=!0}return E}var jm=cr($l());var zm=cr(Bu());var Ei=class extends Error{},$m=A=>A?.[0]?.[1]?.[2];async function Iu(A,e){try{if(!A)return{originalText:A,translatedText:"",pronunciationText:"",langFrom:e.langFrom,langTo:e.langTo[0]};let t=await uh(A,{from:e.langFrom,to:e.langTo[0],raw:!0,proxy:e.proxy});return{originalText:A,translatedText:t.text,pronunciationText:$m(t?.raw),langFrom:t?.from?.language?.iso,langTo:e.langTo[0]}}catch(t){if(t instanceof Error){if(t.name==="TooManyRequestsError"){let s=new Ei;throw s.name="Too many requests",s.message="please try again later",s}let r=new Ei;throw r.name=t.name,r.message=t.message,r}throw t}}async function cu(A){try{let e=(0,$e.getPreferenceValues)(),t=e.lang2,r=e.lang1,s=e.proxy,n=await(0,$e.getSelectedText)().catch(o=>(console.error("Error getting selected text:",o),""));if(!n||n.trim().length===0){await(0,$e.showHUD)("No text selected. Please select text to translate.");return}await(0,$e.showHUD)("Translating...");let i=await Iu(n,{langFrom:r,langTo:[t],proxy:s});if(i&&i.translatedText){let o=i.translatedText;await A(o)}else throw new Error("Translation not found in response")}catch(e){console.error("Translation error:",e),await(0,$e.showHUD)("Translation failed. Please try again.")}}async function hu(){await cu(async A=>{await ai.Clipboard.paste(A),await(0,ai.showHUD)("\u2713 Pasted")})} -/*! Bundled license information: - -undici/lib/fetch/body.js: - (*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *) - -undici/lib/websocket/frame.js: - (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *) -*/ diff --git a/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-paste.js.map b/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-paste.js.map @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../node_modules/undici/lib/core/symbols.js", "../node_modules/undici/lib/core/errors.js", "../node_modules/undici/lib/core/util.js", "../node_modules/undici/lib/timers.js", "../node_modules/busboy/lib/utils.js", "../node_modules/streamsearch/lib/sbmh.js", "../node_modules/busboy/lib/types/multipart.js", "../node_modules/busboy/lib/types/urlencoded.js", "../node_modules/busboy/lib/index.js", "../node_modules/undici/lib/fetch/constants.js", "../node_modules/undici/lib/fetch/global.js", "../node_modules/undici/lib/fetch/util.js", "../node_modules/undici/lib/fetch/symbols.js", "../node_modules/undici/lib/fetch/webidl.js", "../node_modules/undici/lib/fetch/dataURL.js", "../node_modules/undici/lib/fetch/file.js", "../node_modules/undici/lib/fetch/formdata.js", "../node_modules/undici/lib/fetch/body.js", "../node_modules/undici/lib/core/request.js", "../node_modules/undici/lib/dispatcher.js", "../node_modules/undici/lib/dispatcher-base.js", "../node_modules/undici/lib/core/connect.js", "../node_modules/undici/src/llhttp/utils.ts", "../node_modules/undici/src/llhttp/constants.ts", "../node_modules/undici/lib/handler/RedirectHandler.js", "../node_modules/undici/lib/interceptor/redirectInterceptor.js", "../node_modules/undici/lib/llhttp/llhttp-wasm.js", "../node_modules/undici/lib/llhttp/llhttp_simd-wasm.js", "../node_modules/undici/lib/client.js", "../node_modules/undici/lib/node/fixed-queue.js", "../node_modules/undici/lib/pool-stats.js", "../node_modules/undici/lib/pool-base.js", "../node_modules/undici/lib/pool.js", "../node_modules/undici/lib/balanced-pool.js", "../node_modules/undici/lib/compat/dispatcher-weakref.js", "../node_modules/undici/lib/agent.js", "../node_modules/undici/lib/api/readable.js", "../node_modules/undici/lib/api/util.js", "../node_modules/undici/lib/api/abort-signal.js", "../node_modules/undici/lib/api/api-request.js", "../node_modules/undici/lib/api/api-stream.js", "../node_modules/undici/lib/api/api-pipeline.js", "../node_modules/undici/lib/api/api-upgrade.js", "../node_modules/undici/lib/api/api-connect.js", "../node_modules/undici/lib/api/index.js", "../node_modules/undici/lib/mock/mock-errors.js", "../node_modules/undici/lib/mock/mock-symbols.js", "../node_modules/undici/lib/mock/mock-utils.js", "../node_modules/undici/lib/mock/mock-interceptor.js", "../node_modules/undici/lib/mock/mock-client.js", "../node_modules/undici/lib/mock/mock-pool.js", "../node_modules/undici/lib/mock/pluralizer.js", "../node_modules/undici/lib/mock/pending-interceptors-formatter.js", "../node_modules/undici/lib/mock/mock-agent.js", "../node_modules/undici/lib/proxy-agent.js", "../node_modules/undici/lib/global.js", "../node_modules/undici/lib/handler/DecoratorHandler.js", "../node_modules/undici/lib/fetch/headers.js", "../node_modules/undici/lib/fetch/response.js", "../node_modules/undici/lib/fetch/request.js", "../node_modules/undici/lib/fetch/index.js", "../node_modules/undici/lib/fileapi/symbols.js", "../node_modules/undici/lib/fileapi/progressevent.js", "../node_modules/undici/lib/fileapi/encoding.js", "../node_modules/undici/lib/fileapi/util.js", "../node_modules/undici/lib/fileapi/filereader.js", "../node_modules/undici/lib/cache/symbols.js", "../node_modules/undici/lib/cache/util.js", "../node_modules/undici/lib/cache/cache.js", "../node_modules/undici/lib/cache/cachestorage.js", "../node_modules/undici/lib/cookies/constants.js", "../node_modules/undici/lib/cookies/util.js", "../node_modules/undici/lib/cookies/parse.js", "../node_modules/undici/lib/cookies/index.js", "../node_modules/undici/lib/websocket/constants.js", "../node_modules/undici/lib/websocket/symbols.js", "../node_modules/undici/lib/websocket/events.js", "../node_modules/undici/lib/websocket/util.js", "../node_modules/undici/lib/websocket/connection.js", "../node_modules/undici/lib/websocket/frame.js", "../node_modules/undici/lib/websocket/receiver.js", "../node_modules/undici/lib/websocket/websocket.js", "../node_modules/undici/index.js", "../node_modules/google-tts-api/src/assertInputTypes.ts", "../node_modules/google-tts-api/src/splitLongText.ts", "../node_modules/google-tts-api/src/getAudioUrl.ts", "../node_modules/axios/lib/helpers/bind.js", "../node_modules/axios/lib/utils.js", "../node_modules/axios/lib/helpers/buildURL.js", "../node_modules/axios/lib/core/InterceptorManager.js", "../node_modules/axios/lib/helpers/normalizeHeaderName.js", "../node_modules/axios/lib/core/enhanceError.js", "../node_modules/axios/lib/core/createError.js", "../node_modules/axios/lib/core/settle.js", "../node_modules/axios/lib/helpers/cookies.js", "../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../node_modules/axios/lib/helpers/combineURLs.js", "../node_modules/axios/lib/core/buildFullPath.js", "../node_modules/axios/lib/helpers/parseHeaders.js", "../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../node_modules/axios/lib/adapters/xhr.js", "../node_modules/ms/index.js", "../node_modules/debug/src/common.js", "../node_modules/debug/src/browser.js", "../node_modules/has-flag/index.js", "../node_modules/supports-color/index.js", "../node_modules/debug/src/node.js", "../node_modules/debug/src/index.js", "../node_modules/follow-redirects/debug.js", "../node_modules/follow-redirects/index.js", "../node_modules/axios/package.json", "../node_modules/axios/lib/adapters/http.js", "../node_modules/axios/lib/defaults.js", "../node_modules/axios/lib/core/transformData.js", "../node_modules/axios/lib/cancel/isCancel.js", "../node_modules/axios/lib/core/dispatchRequest.js", "../node_modules/axios/lib/core/mergeConfig.js", "../node_modules/axios/lib/helpers/validator.js", "../node_modules/axios/lib/core/Axios.js", "../node_modules/axios/lib/cancel/Cancel.js", "../node_modules/axios/lib/cancel/CancelToken.js", "../node_modules/axios/lib/helpers/spread.js", "../node_modules/axios/lib/helpers/isAxiosError.js", "../node_modules/axios/lib/axios.js", "../node_modules/axios/index.js", "../node_modules/google-tts-api/src/getAudioBase64.ts", "../node_modules/google-tts-api/src/index.ts", "../node_modules/agent-base/src/helpers.ts", "../node_modules/agent-base/src/index.ts", "../node_modules/https-proxy-agent/src/parse-proxy-response.ts", "../node_modules/https-proxy-agent/src/index.ts", "../src/instant-translate-paste.tsx", "../src/instant-translate.tsx", "../vendor/@iamtraction-translate/src/index.ts", "../vendor/@iamtraction-translate/src/languages.ts", "../vendor/@iamtraction-translate/src/tokenGenerator.ts", "../src/simple-translate.ts"], - "sourcesContent": ["module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size')\n}\n", "'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseExceededMaxSizeError)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\n\nconst [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v))\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n return url\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.')\n }\n\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n if (!(url instanceof URL)) {\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substr(1, idx - 1)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substr(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (!isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\nfunction parseHeaders (headers, obj = {}) {\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1]\n } else {\n obj[key] = headers[i + 1].toString('utf8')\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString('utf8'))\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if ('content-length' in obj && 'content-disposition' in obj) {\n obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1')\n }\n\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n const ret = []\n let hasContentLength = false\n let contentDispositionIdx = -1\n\n for (let n = 0; n < headers.length; n += 2) {\n const key = headers[n + 0].toString()\n const val = headers[n + 1].toString('utf8')\n\n if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n ret.push(key, val)\n hasContentLength = true\n } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n contentDispositionIdx = ret.push(key, val) - 1\n } else {\n ret.push(key, val)\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if (hasContentLength && contentDispositionIdx !== -1) {\n ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1')\n }\n\n return ret\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n // https://github.com/whatwg/streams/pull/1083\n return ReadableStream.from(iterable)\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.append === 'function' &&\n typeof object.delete === 'function' &&\n typeof object.get === 'function' &&\n typeof object.getAll === 'function' &&\n typeof object.has === 'function' &&\n typeof object.set === 'function' &&\n object[Symbol.toStringTag] === 'FormData'\n )\n}\n\nfunction throwIfAborted (signal) {\n if (!signal) { return }\n if (typeof signal.throwIfAborted === 'function') {\n signal.throwIfAborted()\n } else {\n if (signal.aborted) {\n // DOMException not available < v17.0.0\n const err = new Error('The operation was aborted')\n err.name = 'AbortError'\n throw err\n }\n }\n}\n\nlet events\nfunction addAbortListener (signal, listener) {\n if (typeof Symbol.dispose === 'symbol') {\n if (!events) {\n events = require('events')\n }\n if (typeof events.addAbortListener === 'function' && 'aborted' in signal) {\n return events.addAbortListener(signal, listener)\n }\n }\n if ('addEventListener' in signal) {\n signal.addEventListener('abort', listener, { once: true })\n return () => signal.removeEventListener('abort', listener)\n }\n signal.addListener('abort', listener)\n return () => signal.removeListener('abort', listener)\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed\n\n/**\n * @param {string} val\n */\nfunction toUSVString (val) {\n if (hasToWellFormed) {\n return `${val}`.toWellFormed()\n } else if (nodeUtil.toUSVString) {\n return nodeUtil.toUSVString(val)\n }\n\n return `${val}`\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString,\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL,\n throwIfAborted,\n addAbortListener,\n nodeMajor,\n nodeMinor,\n nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13)\n}\n", "'use strict'\n\nlet fastNow = Date.now()\nlet fastNowTimeout\n\nconst fastTimers = []\n\nfunction onTimeout () {\n fastNow = Date.now()\n\n let len = fastTimers.length\n let idx = 0\n while (idx < len) {\n const timer = fastTimers[idx]\n\n if (timer.state === 0) {\n timer.state = fastNow + timer.delay\n } else if (timer.state > 0 && fastNow >= timer.state) {\n timer.state = -1\n timer.callback(timer.opaque)\n }\n\n if (timer.state === -1) {\n timer.state = -2\n if (idx !== len - 1) {\n fastTimers[idx] = fastTimers.pop()\n } else {\n fastTimers.pop()\n }\n len -= 1\n } else {\n idx += 1\n }\n }\n\n if (fastTimers.length > 0) {\n refreshTimeout()\n }\n}\n\nfunction refreshTimeout () {\n if (fastNowTimeout && fastNowTimeout.refresh) {\n fastNowTimeout.refresh()\n } else {\n clearTimeout(fastNowTimeout)\n fastNowTimeout = setTimeout(onTimeout, 1e3)\n if (fastNowTimeout.unref) {\n fastNowTimeout.unref()\n }\n }\n}\n\nclass Timeout {\n constructor (callback, delay, opaque) {\n this.callback = callback\n this.delay = delay\n this.opaque = opaque\n\n // -2 not in timer list\n // -1 in timer list but inactive\n // 0 in timer list waiting for time\n // > 0 in timer list waiting for time to expire\n this.state = -2\n\n this.refresh()\n }\n\n refresh () {\n if (this.state === -2) {\n fastTimers.push(this)\n if (!fastNowTimeout || fastTimers.length === 1) {\n refreshTimeout()\n }\n }\n\n this.state = 0\n }\n\n clear () {\n this.state = -1\n }\n}\n\nmodule.exports = {\n setTimeout (callback, delay, opaque) {\n return delay < 1e3\n ? setTimeout(callback, delay, opaque)\n : new Timeout(callback, delay, opaque)\n },\n clearTimeout (timeout) {\n if (timeout instanceof Timeout) {\n timeout.clear()\n } else {\n clearTimeout(timeout)\n }\n }\n}\n", "'use strict';\n\nfunction parseContentType(str) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n // Parse type\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 47/* '/' */ || i === 0)\n return;\n break;\n }\n }\n // Check for type without subtype\n if (i === str.length)\n return;\n\n const type = str.slice(0, i).toLowerCase();\n\n // Parse subtype\n const subtypeStart = ++i;\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n if (parseContentTypeParams(str, i, params) === undefined)\n return;\n break;\n }\n }\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n const subtype = str.slice(subtypeStart, i).toLowerCase();\n\n return { type, subtype, params };\n}\n\nfunction parseContentTypeParams(str, i, params) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 61/* '=' */)\n return;\n break;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n name = str.slice(nameStart, i);\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction parseDisposition(str, defDecoder) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (parseDispositionParams(str, i, params, defDecoder) === undefined)\n return;\n break;\n }\n }\n\n const type = str.slice(0, i).toLowerCase();\n\n return { type, params };\n}\n\nfunction parseDispositionParams(str, i, params, defDecoder) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code === 61/* '=' */)\n break;\n return;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n let charset;\n //~ let lang;\n name = str.slice(nameStart, i);\n if (name.charCodeAt(name.length - 1) === 42/* '*' */) {\n // Extended value\n\n const charsetStart = ++i;\n // Parse charset name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (CHARSET[code] !== 1) {\n if (code !== 39/* '\\'' */)\n return;\n break;\n }\n }\n\n // Incomplete charset (malformed)\n if (i === str.length)\n return;\n\n charset = str.slice(charsetStart, i);\n ++i; // Skip over the '\\''\n\n //~ const langStart = ++i;\n // Parse language name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 39/* '\\'' */)\n break;\n }\n\n // Incomplete language (malformed)\n if (i === str.length)\n return;\n\n //~ lang = str.slice(langStart, i);\n ++i; // Skip over the '\\''\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n valueStart = i;\n\n let encode = 0;\n // Parse value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (EXTENDED_VALUE[code] !== 1) {\n if (code === 37/* '%' */) {\n let hexUpper;\n let hexLower;\n if (i + 2 < str.length\n && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1\n && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) {\n const byteVal = (hexUpper << 4) + hexLower;\n value += str.slice(valueStart, i);\n value += String.fromCharCode(byteVal);\n i += 2;\n valueStart = i + 1;\n if (byteVal >= 128)\n encode = 2;\n else if (encode === 0)\n encode = 1;\n continue;\n }\n // '%' disallowed in non-percent encoded contexts (malformed)\n return;\n }\n break;\n }\n }\n\n value += str.slice(valueStart, i);\n value = convertToUTF8(value, charset, encode);\n if (value === undefined)\n return;\n } else {\n // Non-extended value\n\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n value = defDecoder(value, 2);\n if (value === undefined)\n return;\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction getDecoder(charset) {\n let lc;\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8;\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1;\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le;\n case 'base64':\n return decoders.base64;\n default:\n if (lc === undefined) {\n lc = true;\n charset = charset.toLowerCase();\n continue;\n }\n return decoders.other.bind(charset);\n }\n }\n}\n\nconst decoders = {\n utf8: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string') {\n // If `data` never had any percent-encoded bytes or never had any that\n // were outside of the ASCII range, then we can safely just return the\n // input since UTF-8 is ASCII compatible\n if (hint < 2)\n return data;\n\n data = Buffer.from(data, 'latin1');\n }\n return data.utf8Slice(0, data.length);\n },\n\n latin1: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n return data;\n return data.latin1Slice(0, data.length);\n },\n\n utf16le: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.ucs2Slice(0, data.length);\n },\n\n base64: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.base64Slice(0, data.length);\n },\n\n other: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n try {\n const decoder = new TextDecoder(this);\n return decoder.decode(data);\n } catch {}\n },\n};\n\nfunction convertToUTF8(data, charset, hint) {\n const decode = getDecoder(charset);\n if (decode)\n return decode(data, hint);\n}\n\nfunction basename(path) {\n if (typeof path !== 'string')\n return '';\n for (let i = path.length - 1; i >= 0; --i) {\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1);\n return (path === '..' || path === '.' ? '' : path);\n }\n }\n return (path === '..' || path === '.' ? '' : path);\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst QDTEXT = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nconst CHARSET = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst EXTENDED_VALUE = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n};\n", "'use strict';\n/*\n Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n*/\nfunction memcmp(buf1, pos1, buf2, pos2, num) {\n for (let i = 0; i < num; ++i) {\n if (buf1[pos1 + i] !== buf2[pos2 + i])\n return false;\n }\n return true;\n}\n\nclass SBMH {\n constructor(needle, cb) {\n if (typeof cb !== 'function')\n throw new Error('Missing match callback');\n\n if (typeof needle === 'string')\n needle = Buffer.from(needle);\n else if (!Buffer.isBuffer(needle))\n throw new Error(`Expected Buffer for needle, got ${typeof needle}`);\n\n const needleLen = needle.length;\n\n this.maxMatches = Infinity;\n this.matches = 0;\n\n this._cb = cb;\n this._lookbehindSize = 0;\n this._needle = needle;\n this._bufPos = 0;\n\n this._lookbehind = Buffer.allocUnsafe(needleLen);\n\n // Initialize occurrence table.\n this._occ = [\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen\n ];\n\n // Populate occurrence table with analysis of the needle, ignoring the last\n // letter.\n if (needleLen > 1) {\n for (let i = 0; i < needleLen - 1; ++i)\n this._occ[needle[i]] = needleLen - 1 - i;\n }\n }\n\n reset() {\n this.matches = 0;\n this._lookbehindSize = 0;\n this._bufPos = 0;\n }\n\n push(chunk, pos) {\n let result;\n if (!Buffer.isBuffer(chunk))\n chunk = Buffer.from(chunk, 'latin1');\n const chunkLen = chunk.length;\n this._bufPos = pos || 0;\n while (result !== chunkLen && this.matches < this.maxMatches)\n result = feed(this, chunk);\n return result;\n }\n\n destroy() {\n const lbSize = this._lookbehindSize;\n if (lbSize)\n this._cb(false, this._lookbehind, 0, lbSize, false);\n this.reset();\n }\n}\n\nfunction feed(self, data) {\n const len = data.length;\n const needle = self._needle;\n const needleLen = needle.length;\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehindSize - 2]\n let pos = -self._lookbehindSize;\n const lastNeedleCharPos = needleLen - 1;\n const lastNeedleChar = needle[lastNeedleCharPos];\n const end = len - needleLen;\n const occ = self._occ;\n const lookbehind = self._lookbehind;\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= end) {\n const nextPos = pos + lastNeedleCharPos;\n const ch = (nextPos < 0\n ? lookbehind[self._lookbehindSize + nextPos]\n : data[nextPos]);\n\n if (ch === lastNeedleChar\n && matchNeedle(self, data, pos, lastNeedleCharPos)) {\n self._lookbehindSize = 0;\n ++self.matches;\n if (pos > -self._lookbehindSize)\n self._cb(true, lookbehind, 0, self._lookbehindSize + pos, false);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // No match.\n\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !matchNeedle(self, data, pos, len - pos))\n ++pos;\n\n if (pos < 0) {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = self._lookbehindSize + pos;\n\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n self._cb(false, lookbehind, 0, bytesToCutOff, false);\n }\n\n self._lookbehindSize -= bytesToCutOff;\n lookbehind.copy(lookbehind, 0, bytesToCutOff, self._lookbehindSize);\n lookbehind.set(data, self._lookbehindSize);\n self._lookbehindSize += len;\n\n self._bufPos = len;\n return len;\n }\n\n // Discard lookbehind buffer.\n self._cb(false, lookbehind, 0, self._lookbehindSize, false);\n self._lookbehindSize = 0;\n }\n\n pos += self._bufPos;\n\n const firstNeedleChar = needle[0];\n\n // Lookbehind buffer is now empty. Perform Boyer-Moore-Horspool\n // search with optimized character lookup code that only considers\n // the current round's haystack data.\n while (pos <= end) {\n const ch = data[pos + lastNeedleCharPos];\n\n if (ch === lastNeedleChar\n && data[pos] === firstNeedleChar\n && memcmp(needle, 0, data, pos, lastNeedleCharPos)) {\n ++self.matches;\n if (pos > 0)\n self._cb(true, data, self._bufPos, pos, true);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (pos < len) {\n if (data[pos] !== firstNeedleChar\n || !memcmp(data, pos, needle, 0, len - pos)) {\n ++pos;\n continue;\n }\n data.copy(lookbehind, 0, pos, len);\n self._lookbehindSize = len - pos;\n break;\n }\n\n // Everything until `pos` is guaranteed not to contain needle data.\n if (pos > 0)\n self._cb(false, data, self._bufPos, pos < len ? pos : len, true);\n\n self._bufPos = len;\n return len;\n}\n\nfunction matchNeedle(self, data, pos, len) {\n const lb = self._lookbehind;\n const lbSize = self._lookbehindSize;\n const needle = self._needle;\n\n for (let i = 0; i < len; ++i, ++pos) {\n const ch = (pos < 0 ? lb[lbSize + pos] : data[pos]);\n if (ch !== needle[i])\n return false;\n }\n return true;\n}\n\nmodule.exports = SBMH;\n", "'use strict';\n\nconst { Readable, Writable } = require('stream');\n\nconst StreamSearch = require('streamsearch');\n\nconst {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n} = require('../utils.js');\n\nconst BUF_CRLF = Buffer.from('\\r\\n');\nconst BUF_CR = Buffer.from('\\r');\nconst BUF_DASH = Buffer.from('-');\n\nfunction noop() {}\n\nconst MAX_HEADER_PAIRS = 2000; // From node\nconst MAX_HEADER_SIZE = 16 * 1024; // From node (its default value)\n\nconst HPARSER_NAME = 0;\nconst HPARSER_PRE_OWS = 1;\nconst HPARSER_VALUE = 2;\nclass HeaderParser {\n constructor(cb) {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n this.cb = cb;\n }\n\n reset() {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n }\n\n push(chunk, pos, end) {\n let start = pos;\n while (pos < end) {\n switch (this.state) {\n case HPARSER_NAME: {\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (TOKEN[code] !== 1) {\n if (code !== 58/* ':' */)\n return -1;\n this.name += chunk.latin1Slice(start, pos);\n if (this.name.length === 0)\n return -1;\n ++pos;\n done = true;\n this.state = HPARSER_PRE_OWS;\n break;\n }\n }\n if (!done) {\n this.name += chunk.latin1Slice(start, pos);\n break;\n }\n // FALLTHROUGH\n }\n case HPARSER_PRE_OWS: {\n // Skip optional whitespace\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */) {\n start = pos;\n done = true;\n this.state = HPARSER_VALUE;\n break;\n }\n }\n if (!done)\n break;\n // FALLTHROUGH\n }\n case HPARSER_VALUE:\n switch (this.crlf) {\n case 0: // Nothing yet\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (FIELD_VCHAR[code] !== 1) {\n if (code !== 13/* '\\r' */)\n return -1;\n ++this.crlf;\n break;\n }\n }\n this.value += chunk.latin1Slice(start, pos++);\n break;\n case 1: // Received CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n ++this.crlf;\n break;\n case 2: { // Received CR LF\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code === 32/* ' ' */ || code === 9/* '\\t' */) {\n // Folded value\n start = pos;\n this.crlf = 0;\n } else {\n if (++this.pairCount < MAX_HEADER_PAIRS) {\n this.name = this.name.toLowerCase();\n if (this.header[this.name] === undefined)\n this.header[this.name] = [this.value];\n else\n this.header[this.name].push(this.value);\n }\n if (code === 13/* '\\r' */) {\n ++this.crlf;\n ++pos;\n } else {\n // Assume start of next header field name\n start = pos;\n this.crlf = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n }\n }\n break;\n }\n case 3: { // Received CR LF CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n // End of header\n const header = this.header;\n this.reset();\n this.cb(header);\n return pos;\n }\n }\n break;\n }\n }\n\n return pos;\n }\n}\n\nclass FileStream extends Readable {\n constructor(opts, owner) {\n super(opts);\n this.truncated = false;\n this._readcb = null;\n this.once('end', () => {\n // We need to make sure that we call any outstanding _writecb() that is\n // associated with this file so that processing of the rest of the form\n // can continue. This may not happen if the file stream ends right after\n // backpressure kicks in, so we force it here.\n this._read();\n if (--owner._fileEndsLeft === 0 && owner._finalcb) {\n const cb = owner._finalcb;\n owner._finalcb = null;\n // Make sure other 'end' event handlers get a chance to be executed\n // before busboy's 'finish' event is emitted\n process.nextTick(cb);\n }\n });\n }\n _read(n) {\n const cb = this._readcb;\n if (cb) {\n this._readcb = null;\n cb();\n }\n }\n}\n\nconst ignoreData = {\n push: (chunk, pos) => {},\n destroy: () => {},\n};\n\nfunction callAndUnsetCb(self, err) {\n const cb = self._writecb;\n self._writecb = null;\n if (err)\n self.destroy(err);\n else if (cb)\n cb();\n}\n\nfunction nullDecoder(val, hint) {\n return val;\n}\n\nclass Multipart extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n if (!cfg.conType.params || typeof cfg.conType.params.boundary !== 'string')\n throw new Error('Multipart: Boundary not found');\n\n const boundary = cfg.conType.params.boundary;\n const paramDecoder = (typeof cfg.defParamCharset === 'string'\n && cfg.defParamCharset\n ? getDecoder(cfg.defParamCharset)\n : nullDecoder);\n const defCharset = (cfg.defCharset || 'utf8');\n const preservePath = cfg.preservePath;\n const fileOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.fileHwm === 'number'\n ? cfg.fileHwm\n : undefined),\n };\n\n const limits = cfg.limits;\n const fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n const fileSizeLimit = (limits && typeof limits.fileSize === 'number'\n ? limits.fileSize\n : Infinity);\n const filesLimit = (limits && typeof limits.files === 'number'\n ? limits.files\n : Infinity);\n const fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n const partsLimit = (limits && typeof limits.parts === 'number'\n ? limits.parts\n : Infinity);\n\n let parts = -1; // Account for initial boundary\n let fields = 0;\n let files = 0;\n let skipPart = false;\n\n this._fileEndsLeft = 0;\n this._fileStream = undefined;\n this._complete = false;\n let fileSize = 0;\n\n let field;\n let fieldSize = 0;\n let partCharset;\n let partEncoding;\n let partType;\n let partName;\n let partTruncated = false;\n\n let hitFilesLimit = false;\n let hitFieldsLimit = false;\n\n this._hparser = null;\n const hparser = new HeaderParser((header) => {\n this._hparser = null;\n skipPart = false;\n\n partType = 'text/plain';\n partCharset = defCharset;\n partEncoding = '7bit';\n partName = undefined;\n partTruncated = false;\n\n let filename;\n if (!header['content-disposition']) {\n skipPart = true;\n return;\n }\n\n const disp = parseDisposition(header['content-disposition'][0],\n paramDecoder);\n if (!disp || disp.type !== 'form-data') {\n skipPart = true;\n return;\n }\n\n if (disp.params) {\n if (disp.params.name)\n partName = disp.params.name;\n\n if (disp.params['filename*'])\n filename = disp.params['filename*'];\n else if (disp.params.filename)\n filename = disp.params.filename;\n\n if (filename !== undefined && !preservePath)\n filename = basename(filename);\n }\n\n if (header['content-type']) {\n const conType = parseContentType(header['content-type'][0]);\n if (conType) {\n partType = `${conType.type}/${conType.subtype}`;\n if (conType.params && typeof conType.params.charset === 'string')\n partCharset = conType.params.charset.toLowerCase();\n }\n }\n\n if (header['content-transfer-encoding'])\n partEncoding = header['content-transfer-encoding'][0].toLowerCase();\n\n if (partType === 'application/octet-stream' || filename !== undefined) {\n // File\n\n if (files === filesLimit) {\n if (!hitFilesLimit) {\n hitFilesLimit = true;\n this.emit('filesLimit');\n }\n skipPart = true;\n return;\n }\n ++files;\n\n if (this.listenerCount('file') === 0) {\n skipPart = true;\n return;\n }\n\n fileSize = 0;\n this._fileStream = new FileStream(fileOpts, this);\n ++this._fileEndsLeft;\n this.emit(\n 'file',\n partName,\n this._fileStream,\n { filename,\n encoding: partEncoding,\n mimeType: partType }\n );\n } else {\n // Non-file\n\n if (fields === fieldsLimit) {\n if (!hitFieldsLimit) {\n hitFieldsLimit = true;\n this.emit('fieldsLimit');\n }\n skipPart = true;\n return;\n }\n ++fields;\n\n if (this.listenerCount('field') === 0) {\n skipPart = true;\n return;\n }\n\n field = [];\n fieldSize = 0;\n }\n });\n\n let matchPostBoundary = 0;\n const ssCb = (isMatch, data, start, end, isDataSafe) => {\nretrydata:\n while (data) {\n if (this._hparser !== null) {\n const ret = this._hparser.push(data, start, end);\n if (ret === -1) {\n this._hparser = null;\n hparser.reset();\n this.emit('error', new Error('Malformed part header'));\n break;\n }\n start = ret;\n }\n\n if (start === end)\n break;\n\n if (matchPostBoundary !== 0) {\n if (matchPostBoundary === 1) {\n switch (data[start]) {\n case 45: // '-'\n // Try matching '--' after boundary\n matchPostBoundary = 2;\n ++start;\n break;\n case 13: // '\\r'\n // Try matching CR LF before header\n matchPostBoundary = 3;\n ++start;\n break;\n default:\n matchPostBoundary = 0;\n }\n if (start === end)\n return;\n }\n\n if (matchPostBoundary === 2) {\n matchPostBoundary = 0;\n if (data[start] === 45/* '-' */) {\n // End of multipart data\n this._complete = true;\n this._bparser = ignoreData;\n return;\n }\n // We saw something other than '-', so put the dash we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_DASH, 0, 1, false);\n this._writecb = writecb;\n } else if (matchPostBoundary === 3) {\n matchPostBoundary = 0;\n if (data[start] === 10/* '\\n' */) {\n ++start;\n if (parts >= partsLimit)\n break;\n // Prepare the header parser\n this._hparser = hparser;\n if (start === end)\n break;\n // Process the remaining data as a header\n continue retrydata;\n } else {\n // We saw something other than LF, so put the CR we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_CR, 0, 1, false);\n this._writecb = writecb;\n }\n }\n }\n\n if (!skipPart) {\n if (this._fileStream) {\n let chunk;\n const actualLen = Math.min(end - start, fileSizeLimit - fileSize);\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fileSize += chunk.length;\n if (fileSize === fileSizeLimit) {\n if (chunk.length > 0)\n this._fileStream.push(chunk);\n this._fileStream.emit('limit');\n this._fileStream.truncated = true;\n skipPart = true;\n } else if (!this._fileStream.push(chunk)) {\n if (this._writecb)\n this._fileStream._readcb = this._writecb;\n this._writecb = null;\n }\n } else if (field !== undefined) {\n let chunk;\n const actualLen = Math.min(\n end - start,\n fieldSizeLimit - fieldSize\n );\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fieldSize += actualLen;\n field.push(chunk);\n if (fieldSize === fieldSizeLimit) {\n skipPart = true;\n partTruncated = true;\n }\n }\n }\n\n break;\n }\n\n if (isMatch) {\n matchPostBoundary = 1;\n\n if (this._fileStream) {\n // End the active file stream if the previous part was a file\n this._fileStream.push(null);\n this._fileStream = null;\n } else if (field !== undefined) {\n let data;\n switch (field.length) {\n case 0:\n data = '';\n break;\n case 1:\n data = convertToUTF8(field[0], partCharset, 0);\n break;\n default:\n data = convertToUTF8(\n Buffer.concat(field, fieldSize),\n partCharset,\n 0\n );\n }\n field = undefined;\n fieldSize = 0;\n this.emit(\n 'field',\n partName,\n data,\n { nameTruncated: false,\n valueTruncated: partTruncated,\n encoding: partEncoding,\n mimeType: partType }\n );\n }\n\n if (++parts === partsLimit)\n this.emit('partsLimit');\n }\n };\n this._bparser = new StreamSearch(`\\r\\n--${boundary}`, ssCb);\n\n this._writecb = null;\n this._finalcb = null;\n\n // Just in case there is no preamble\n this.write(BUF_CRLF);\n }\n\n static detect(conType) {\n return (conType.type === 'multipart' && conType.subtype === 'form-data');\n }\n\n _write(chunk, enc, cb) {\n this._writecb = cb;\n this._bparser.push(chunk, 0);\n if (this._writecb)\n callAndUnsetCb(this);\n }\n\n _destroy(err, cb) {\n this._hparser = null;\n this._bparser = ignoreData;\n if (!err)\n err = checkEndState(this);\n const fileStream = this._fileStream;\n if (fileStream) {\n this._fileStream = null;\n fileStream.destroy(err);\n }\n cb(err);\n }\n\n _final(cb) {\n this._bparser.destroy();\n if (!this._complete)\n return cb(new Error('Unexpected end of form'));\n if (this._fileEndsLeft)\n this._finalcb = finalcb.bind(null, this, cb);\n else\n finalcb(this, cb);\n }\n}\n\nfunction finalcb(self, cb, err) {\n if (err)\n return cb(err);\n err = checkEndState(self);\n cb(err);\n}\n\nfunction checkEndState(self) {\n if (self._hparser)\n return new Error('Malformed part header');\n const fileStream = self._fileStream;\n if (fileStream) {\n self._fileStream = null;\n fileStream.destroy(new Error('Unexpected end of file'));\n }\n if (!self._complete)\n return new Error('Unexpected end of form');\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst FIELD_VCHAR = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nmodule.exports = Multipart;\n", "'use strict';\n\nconst { Writable } = require('stream');\n\nconst { getDecoder } = require('../utils.js');\n\nclass URLEncoded extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n let charset = (cfg.defCharset || 'utf8');\n if (cfg.conType.params && typeof cfg.conType.params.charset === 'string')\n charset = cfg.conType.params.charset;\n\n this.charset = charset;\n\n const limits = cfg.limits;\n this.fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n this.fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n this.fieldNameSizeLimit = (\n limits && typeof limits.fieldNameSize === 'number'\n ? limits.fieldNameSize\n : 100\n );\n\n this._inKey = true;\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n this._fields = 0;\n this._key = '';\n this._val = '';\n this._byte = -2;\n this._lastPos = 0;\n this._encode = 0;\n this._decoder = getDecoder(charset);\n }\n\n static detect(conType) {\n return (conType.type === 'application'\n && conType.subtype === 'x-www-form-urlencoded');\n }\n\n _write(chunk, enc, cb) {\n if (this._fields >= this.fieldsLimit)\n return cb();\n\n let i = 0;\n const len = chunk.length;\n this._lastPos = 0;\n\n // Check if we last ended mid-percent-encoded byte\n if (this._byte !== -2) {\n i = readPctEnc(this, chunk, i, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n if (this._inKey)\n ++this._bytesKey;\n else\n ++this._bytesVal;\n }\n\nmain:\n while (i < len) {\n if (this._inKey) {\n // Parsing key\n\n i = skipKeyBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 61: // '='\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n this._inKey = false;\n continue main;\n case 38: // '&'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0) {\n this.emit(\n 'field',\n this._key,\n '',\n { nameTruncated: this._keyTrunc,\n valueTruncated: false,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue;\n case 43: // '+'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._key += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n } else {\n // Parsing value\n\n i = skipValBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 38: // '&'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._inKey = true;\n this._val = this._decoder(this._val, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0 || this._bytesVal > 0) {\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue main;\n case 43: // '+'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._val += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n }\n }\n\n cb();\n }\n\n _final(cb) {\n if (this._byte !== -2)\n return cb(new Error('Malformed urlencoded form'));\n if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) {\n if (this._inKey)\n this._key = this._decoder(this._key, this._encode);\n else\n this._val = this._decoder(this._val, this._encode);\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n cb();\n }\n}\n\nfunction readPctEnc(self, chunk, pos, len) {\n if (pos >= len)\n return len;\n\n if (self._byte === -1) {\n // We saw a '%' but no hex characters yet\n const hexUpper = HEX_VALUES[chunk[pos++]];\n if (hexUpper === -1)\n return -1;\n\n if (hexUpper >= 8)\n self._encode = 2; // Indicate high bits detected\n\n if (pos < len) {\n // Both hex characters are in this chunk\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((hexUpper << 4) + hexLower);\n else\n self._val += String.fromCharCode((hexUpper << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n } else {\n // Only one hex character was available in this chunk\n self._byte = hexUpper;\n }\n } else {\n // We saw only one hex character so far\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((self._byte << 4) + hexLower);\n else\n self._val += String.fromCharCode((self._byte << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipKeyBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesKey > self.fieldNameSizeLimit) {\n if (!self._keyTrunc) {\n if (self._lastPos < pos)\n self._key += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._keyTrunc = true;\n for (; pos < len; ++pos) {\n const code = chunk[pos];\n if (code === 61/* '=' */ || code === 38/* '&' */)\n break;\n ++self._bytesKey;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipValBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesVal > self.fieldSizeLimit) {\n if (!self._valTrunc) {\n if (self._lastPos < pos)\n self._val += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._valTrunc = true;\n for (; pos < len; ++pos) {\n if (chunk[pos] === 38/* '&' */)\n break;\n ++self._bytesVal;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = URLEncoded;\n", "'use strict';\n\nconst { parseContentType } = require('./utils.js');\n\nfunction getInstance(cfg) {\n const headers = cfg.headers;\n const conType = parseContentType(headers['content-type']);\n if (!conType)\n throw new Error('Malformed content type');\n\n for (const type of TYPES) {\n const matched = type.detect(conType);\n if (!matched)\n continue;\n\n const instanceCfg = {\n limits: cfg.limits,\n headers,\n conType,\n highWaterMark: undefined,\n fileHwm: undefined,\n defCharset: undefined,\n defParamCharset: undefined,\n preservePath: false,\n };\n if (cfg.highWaterMark)\n instanceCfg.highWaterMark = cfg.highWaterMark;\n if (cfg.fileHwm)\n instanceCfg.fileHwm = cfg.fileHwm;\n instanceCfg.defCharset = cfg.defCharset;\n instanceCfg.defParamCharset = cfg.defParamCharset;\n instanceCfg.preservePath = cfg.preservePath;\n return new type(instanceCfg);\n }\n\n throw new Error(`Unsupported content type: ${headers['content-type']}`);\n}\n\n// Note: types are explicitly listed here for easier bundling\n// See: https://github.com/mscdex/busboy/issues/121\nconst TYPES = [\n require('./types/multipart'),\n require('./types/urlencoded'),\n].filter(function(typemod) { return typeof typemod.detect === 'function'; });\n\nmodule.exports = (cfg) => {\n if (typeof cfg !== 'object' || cfg === null)\n cfg = {};\n\n if (typeof cfg.headers !== 'object'\n || cfg.headers === null\n || typeof cfg.headers['content-type'] !== 'string') {\n throw new Error('Missing Content-Type');\n }\n\n return getInstance(cfg);\n};\n", "'use strict'\n\nconst { MessageChannel, receiveMessageOnPort } = require('worker_threads')\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\n// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\n// https://fetch.spec.whatwg.org/#request-body-header-name\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type',\n // See https://github.com/nodejs/undici/issues/2021\n // 'Content-Length' is a forbidden header name, which is typically\n // removed in the Headers implementation. However, undici doesn't\n // filter out headers, so we add it here.\n 'content-length'\n]\n\n// https://fetch.spec.whatwg.org/#enumdef-requestduplex\nconst requestDuplex = [\n 'half'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nlet channel\n\n/** @type {globalThis['structuredClone']} */\nconst structuredClone =\n globalThis.structuredClone ??\n // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n // structuredClone was added in v17.0.0, but fetch supports v16.8\n function structuredClone (value, options = undefined) {\n if (arguments.length === 0) {\n throw new TypeError('missing argument')\n }\n\n if (!channel) {\n channel = new MessageChannel()\n }\n channel.port1.unref()\n channel.port2.unref()\n channel.port1.postMessage(value, options?.transfer)\n return receiveMessageOnPort(channel.port2).message\n }\n\nmodule.exports = {\n DOMException,\n structuredClone,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods,\n badPorts,\n requestDuplex\n}\n", "'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (\n newOrigin !== undefined &&\n typeof newOrigin !== 'string' &&\n !(newOrigin instanceof URL)\n ) {\n throw new Error('Invalid base url')\n }\n\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n", "'use strict'\n\nconst { redirectStatus, badPorts, referrerPolicy: referrerPolicyTokens } = require('./constants')\nconst { getGlobalOrigin } = require('./global')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response\u2019s URL list and null if response\u2019s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response\u2019s status is not a redirect status, then return null.\n if (!redirectStatus.includes(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response\u2019s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a header value, then set location to the result of\n // parsing location with response\u2019s URL.\n if (location !== null && isValidHeaderValue(location)) {\n location = new URL(location, responseURL(response))\n }\n\n // 4. If location is a URL whose fragment is null, then set location\u2019s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request\u2019s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url\u2019s scheme is an HTTP(S) scheme and url\u2019s port is a bad port,\n // then return blocked.\n if (urlIsHttpHttpsScheme(url) && badPorts.includes(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\nfunction isTokenChar (c) {\n return !(\n c >= 0x7f ||\n c <= 0x20 ||\n c === '(' ||\n c === ')' ||\n c === '<' ||\n c === '>' ||\n c === '@' ||\n c === ',' ||\n c === ';' ||\n c === ':' ||\n c === '\\\\' ||\n c === '\"' ||\n c === '/' ||\n c === '[' ||\n c === ']' ||\n c === '?' ||\n c === '=' ||\n c === '{' ||\n c === '}'\n )\n}\n\n// See RFC 7230, Section 3.2.6.\n// https://github.com/chromium/chromium/blob/d7da0240cae77824d1eda25745c4022757499131/third_party/blink/renderer/platform/network/http_parsers.cc#L321\nfunction isValidHTTPToken (characters) {\n if (!characters || typeof characters !== 'string') {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n const c = characters.charCodeAt(i)\n if (c > 0x7f || !isTokenChar(c)) {\n return false\n }\n }\n return true\n}\n\n// https://fetch.spec.whatwg.org/#header-name\n// https://github.com/chromium/chromium/blob/b3d37e6f94f87d59e44662d6078f6a12de845d17/net/http/http_util.cc#L342\nfunction isValidHeaderName (potentialValue) {\n if (potentialValue.length === 0) {\n return false\n }\n\n return isValidHTTPToken(potentialValue)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request\u2019s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing \u00A7 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n\n // 8.1 Parse a referrer policy from a Referrer-Policy header\n // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response\u2019s header list.\n const { headersList } = actualResponse\n // 2. Let policy be the empty string.\n // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.\n // 4. Return policy.\n const policyHeader = (headersList.get('referrer-policy') ?? '').split(',')\n\n // Note: As the referrer-policy can contain multiple policies\n // separated by comma, we need to loop through all of them\n // and pick the first valid one.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n let policy = ''\n if (policyHeader.length > 0) {\n // The right-most policy takes precedence.\n // The left-most policy is the fallback.\n for (let i = policyHeader.length; i !== 0; i--) {\n const token = policyHeader[i - 1].trim()\n if (referrerPolicyTokens.includes(token)) {\n policy = token\n break\n }\n }\n }\n\n // 2. If policy is not the empty string, then set request\u2019s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r\u2019s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header\u2019s value to r\u2019s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r\u2019s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request\u2019s response tainting is \"cors\" or request\u2019s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request\u2019s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request\u2019s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request\u2019s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request\u2019s origin is a tuple origin, its scheme is \"https\", and request\u2019s current URL\u2019s scheme is not \"https\", then set serializedOrigin to `null`.\n if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request\u2019s origin is not same origin with request\u2019s current URL\u2019s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request\u2019s header list.\n request.headersList.append('origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // Note: the fetch spec doesn't make use of embedder policy or CSP list\n return {\n referrerPolicy: 'strict-origin-when-cross-origin'\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer (policyContainer) {\n return {\n referrerPolicy: policyContainer.referrerPolicy\n }\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Note: policy cannot (shouldn't) be null or an empty string.\n assert(policy)\n\n // 2. Let environment be request\u2019s client.\n\n let referrerSource = null\n\n // 3. Switch on request\u2019s referrer:\n if (request.referrer === 'client') {\n // Note: node isn't a browser and doesn't implement document/iframes,\n // so we bypass this step and replace it with our own.\n\n const globalOrigin = getGlobalOrigin()\n\n if (!globalOrigin || globalOrigin.origin === 'null') {\n return 'no-referrer'\n }\n\n // note: we need to clone it as it's mutated\n referrerSource = new URL(globalOrigin)\n } else if (request.referrer instanceof URL) {\n // Let referrerSource be request\u2019s referrer.\n referrerSource = request.referrer\n }\n\n // 4. Let request\u2019s referrerURL be the result of stripping referrerSource for\n // use as a referrer.\n let referrerURL = stripURLForReferrer(referrerSource)\n\n // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n // a referrer, with the origin-only flag set to true.\n const referrerOrigin = stripURLForReferrer(referrerSource, true)\n\n // 6. If the result of serializing referrerURL is a string whose length is\n // greater than 4096, set referrerURL to referrerOrigin.\n if (referrerURL.toString().length > 4096) {\n referrerURL = referrerOrigin\n }\n\n const areSameOrigin = sameOrigin(request, referrerURL)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerURL\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerURL : referrerOrigin\n case 'strict-origin-when-cross-origin': {\n const currentURL = requestCurrentURL(request)\n\n // 1. If the origin of referrerURL and the origin of request\u2019s current\n // URL are the same, then return referrerURL.\n if (sameOrigin(referrerURL, currentURL)) {\n return referrerURL\n }\n\n // 2. If referrerURL is a potentially trustworthy URL and request\u2019s\n // current URL is not a potentially trustworthy URL, then return no\n // referrer.\n if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n return 'no-referrer'\n }\n\n // 3. Return referrerOrigin.\n return referrerOrigin\n }\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n * @param {URL} url\n * @param {boolean|undefined} originOnly\n */\nfunction stripURLForReferrer (url, originOnly) {\n // 1. Assert: url is a URL.\n assert(url instanceof URL)\n\n // 2. If url\u2019s scheme is a local scheme, then return no referrer.\n if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n return 'no-referrer'\n }\n\n // 3. Set url\u2019s username to the empty string.\n url.username = ''\n\n // 4. Set url\u2019s password to the empty string.\n url.password = ''\n\n // 5. Set url\u2019s fragment to null.\n url.hash = ''\n\n // 6. If the origin-only flag is true, then:\n if (originOnly) {\n // 1. Set url\u2019s path to \u00AB the empty string \u00BB.\n url.pathname = ''\n\n // 2. Set url\u2019s query to null.\n url.search = ''\n }\n\n // 7. Return url.\n return url\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 4. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n const list = parsedMetadata.sort((c, d) => d.algo.localeCompare(c.algo))\n // get the strongest algorithm\n const strongest = list[0].algo\n // get all entries that use the strongest algorithm; ignore weaker\n const metadata = list.filter((item) => item.algo === strongest)\n\n // 5. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n const actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (actualValue === expectedValue) {\n return true\n }\n }\n\n // 6. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// https://www.w3.org/TR/CSP2/#source-list-syntax\n// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\\x21-\\x7e]?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n const supportedHashes = crypto.getHashes()\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (parsedToken === null || parsedToken.groups === undefined) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm.toLowerCase())) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n if (A.origin === B.origin && A.origin === 'null') {\n return true\n }\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\n// https://fetch.spec.whatwg.org/#concept-method-normalize\nfunction normalizeMethod (method) {\n return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method)\n ? method.toUpperCase()\n : method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, \u00AB value \u00BB).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n/**\n * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n * @param {() => unknown[]} iterator\n * @param {string} name name of the instance\n * @param {'key'|'value'|'key+value'} kind\n */\nfunction makeIterator (iterator, name, kind) {\n const object = {\n index: 0,\n kind,\n target: iterator\n }\n\n const i = {\n next () {\n // 1. Let interface be the interface for which the iterator prototype object exists.\n\n // 2. Let thisValue be the this value.\n\n // 3. Let object be ? ToObject(thisValue).\n\n // 4. If object is a platform object, then perform a security\n // check, passing:\n\n // 5. If object is not a default iterator object for interface,\n // then throw a TypeError.\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n // 6. Let index be object\u2019s index.\n // 7. Let kind be object\u2019s kind.\n // 8. Let values be object\u2019s target's value pairs to iterate over.\n const { index, kind, target } = object\n const values = target()\n\n // 9. Let len be the length of values.\n const len = values.length\n\n // 10. If index is greater than or equal to len, then return\n // CreateIterResultObject(undefined, true).\n if (index >= len) {\n return { value: undefined, done: true }\n }\n\n // 11. Let pair be the entry in values at index index.\n const pair = values[index]\n\n // 12. Set object\u2019s index to index + 1.\n object.index = index + 1\n\n // 13. Return the iterator result for pair and kind.\n return iteratorResult(pair, kind)\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n// https://webidl.spec.whatwg.org/#iterator-result\nfunction iteratorResult (pair, kind) {\n let result\n\n // 1. Let result be a value determined by the value of kind:\n switch (kind) {\n case 'key': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 3. result is key.\n result = pair[0]\n break\n }\n case 'value': {\n // 1. Let idlValue be pair\u2019s value.\n // 2. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 3. result is value.\n result = pair[1]\n break\n }\n case 'key+value': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let idlValue be pair\u2019s value.\n // 3. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 4. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 5. Let array be ! ArrayCreate(2).\n // 6. Call ! CreateDataProperty(array, \"0\", key).\n // 7. Call ! CreateDataProperty(array, \"1\", value).\n // 8. result is array.\n result = pair\n break\n }\n }\n\n // 2. Return CreateIterResultObject(result, false).\n return { value: result, done: false }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nfunction fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let successSteps given a byte sequence bytes be to queue a\n // fetch task to run processBody given bytes, with taskDestination.\n const successSteps = (bytes) => queueMicrotask(() => processBody(bytes))\n\n // 3. Let errorSteps be to queue a fetch task to run processBodyError,\n // with taskDestination.\n const errorSteps = (error) => queueMicrotask(() => processBodyError(error))\n\n // 4. Let reader be the result of getting a reader for body\u2019s stream.\n // If that threw an exception, then run errorSteps with that\n // exception and return.\n let reader\n\n try {\n reader = body.stream.getReader()\n } catch (e) {\n errorSteps(e)\n return\n }\n\n // 5. Read all bytes from reader, given successSteps and errorSteps.\n readAllBytes(reader, successSteps, errorSteps)\n}\n\n/** @type {ReadableStream} */\nlet ReadableStream = globalThis.ReadableStream\n\nfunction isReadableStreamLike (stream) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n return stream instanceof ReadableStream || (\n stream[Symbol.toStringTag] === 'ReadableStream' &&\n typeof stream.tee === 'function'\n )\n}\n\nconst MAXIMUM_ARGUMENT_LENGTH = 65535\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-decode\n * @param {number[]|Uint8Array} input\n */\nfunction isomorphicDecode (input) {\n // 1. To isomorphic decode a byte sequence input, return a string whose code point\n // length is equal to input\u2019s length and whose code points have the same values\n // as the values of input\u2019s bytes, in the same order.\n\n if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n return String.fromCharCode(...input)\n }\n\n return input.reduce((previous, current) => previous + String.fromCharCode(current), '')\n}\n\n/**\n * @param {ReadableStreamController<Uint8Array>} controller\n */\nfunction readableStreamClose (controller) {\n try {\n controller.close()\n } catch (err) {\n // TODO: add comment explaining why this error occurs.\n if (!err.message.includes('Controller is already closed')) {\n throw err\n }\n }\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-encode\n * @param {string} input\n */\nfunction isomorphicEncode (input) {\n // 1. Assert: input contains no code points greater than U+00FF.\n for (let i = 0; i < input.length; i++) {\n assert(input.charCodeAt(i) <= 0xFF)\n }\n\n // 2. Return a byte sequence whose length is equal to input\u2019s code\n // point length and whose bytes have the same values as the\n // values of input\u2019s code points, in the same order\n return input\n}\n\n/**\n * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n * @see https://streams.spec.whatwg.org/#read-loop\n * @param {ReadableStreamDefaultReader} reader\n * @param {(bytes: Uint8Array) => void} successSteps\n * @param {(error: Error) => void} failureSteps\n */\nasync function readAllBytes (reader, successSteps, failureSteps) {\n const bytes = []\n let byteLength = 0\n\n while (true) {\n let done\n let chunk\n\n try {\n ({ done, value: chunk } = await reader.read())\n } catch (e) {\n // 1. Call failureSteps with e.\n failureSteps(e)\n return\n }\n\n if (done) {\n // 1. Call successSteps with bytes.\n successSteps(Buffer.concat(bytes, byteLength))\n return\n }\n\n // 1. If chunk is not a Uint8Array object, call failureSteps\n // with a TypeError and abort these steps.\n if (!isUint8Array(chunk)) {\n failureSteps(new TypeError('Received non-Uint8Array chunk'))\n return\n }\n\n // 2. Append the bytes represented by chunk to bytes.\n bytes.push(chunk)\n byteLength += chunk.length\n\n // 3. Read-loop given reader, bytes, successSteps, and failureSteps.\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#is-local\n * @param {URL} url\n */\nfunction urlIsLocal (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n}\n\n/**\n * @param {string|URL} url\n */\nfunction urlHasHttpsScheme (url) {\n if (typeof url === 'string') {\n return url.startsWith('https:')\n }\n\n return url.protocol === 'https:'\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-scheme\n * @param {URL} url\n */\nfunction urlIsHttpHttpsScheme (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'http:' || protocol === 'https:'\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch,\n isReadableStreamLike,\n readableStreamClose,\n isomorphicEncode,\n isomorphicDecode,\n urlIsLocal,\n urlHasHttpsScheme,\n urlIsHttpHttpsScheme,\n readAllBytes\n}\n", "'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n", "'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\n/** @type {import('../../types/webidl').Webidl} */\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\nwebidl.errors.exception = function (message) {\n return new TypeError(`${message.header}: ${message.message}`)\n}\n\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://webidl.spec.whatwg.org/#implements\nwebidl.brandCheck = function (V, I, opts = undefined) {\n if (opts?.strict !== false && !(V instanceof I)) {\n throw new TypeError('Illegal invocation')\n } else {\n return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n }\n}\n\nwebidl.argumentLengthCheck = function ({ length }, min, ctx) {\n if (length < min) {\n throw webidl.errors.exception({\n message: `${min} argument${min !== 1 ? 's' : ''} required, ` +\n `but${length ? ' only' : ''} ${length} found.`,\n ...ctx\n })\n }\n}\n\nwebidl.illegalConstructor = function () {\n throw webidl.errors.exception({\n header: 'TypeError',\n message: 'Illegal constructor'\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 \u2212 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be \u22122^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength \u2212 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength \u2212 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength \u2212 1 \u2212 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is \u22120, then set x to +0.\n if (x === 0) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +\u221E, or \u2212\u221E, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than \u22120.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +\u221E, or \u2212\u221E, then return +0.\n if (\n Number.isNaN(x) ||\n (x === 0 && Object.is(0, x)) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x \u2265 2^bitLength \u2212 1,\n // then return x \u2212 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 \u00D7 r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-to-record\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (O) => {\n // 1. If Type(O) is not Object, throw a TypeError.\n if (webidl.util.Type(O) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Record',\n message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n })\n }\n\n // 2. Let result be a new empty instance of record<K, V>.\n const result = {}\n\n if (!types.isProxy(O)) {\n // Object.keys only returns enumerable properties\n const keys = Object.keys(O)\n\n for (const key of keys) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n\n // 5. Return result.\n return result\n }\n\n // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n const keys = Reflect.ownKeys(O)\n\n // 4. For each key of keys.\n for (const key of keys) {\n // 1. Let desc be ? O.[[GetOwnProperty]](key).\n const desc = Reflect.getOwnPropertyDescriptor(O, key)\n\n // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n if (desc?.enumerable) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n }\n\n // 5. Return result.\n return result\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n throw webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type === 'Null' || type === 'Undefined') {\n return dict\n } else if (type !== 'Object') {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n const charCode = x.charCodeAt(index)\n\n if (charCode > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at ' +\n `index ${index} has a value of ${charCode} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed')\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long-long\nwebidl.converters['unsigned long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 64, 'unsigned')\n\n // 2. Return the IDL unsigned long long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long\nwebidl.converters['unsigned long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 32, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 32, 'unsigned')\n\n // 2. Return the IDL unsigned long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts)\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T\u2019s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n throw webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence<ByteString>'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence<sequence<ByteString>>'] = webidl.sequenceConverter(\n webidl.converters['sequence<ByteString>']\n)\n\nwebidl.converters['record<ByteString, ByteString>'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n", "const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isomorphicDecode } = require('./util')\n\nconst encoder = new TextEncoder()\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-token-code-point\n */\nconst HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/\nconst HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/ // eslint-disable-line\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n */\nconst HTTP_QUOTED_STRING_TOKENS = /[\\u0009|\\u0020-\\u007E|\\u0080-\\u00FF]/ // eslint-disable-line\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL\u2019s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePointsFast(\n ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = removeASCIIWhitespace(mimeType, true, true)\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = isomorphicDecode(body)\n\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n const href = url.href\n\n if (!excludeFragment) {\n return href\n }\n\n const hash = href.lastIndexOf('#')\n if (hash === -1) {\n return href\n }\n return href.slice(0, hash)\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn\u2019t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n/**\n * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n * @param {string} char\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePointsFast (char, input, position) {\n const idx = input.indexOf(char, position.position)\n const start = position.position\n\n if (idx === -1) {\n position.position = input.length\n return input.slice(start)\n }\n\n position.position = idx\n return input.slice(start, position.position)\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = removeHTTPWhitespace(input, true, true)\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePointsFast(\n '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = removeHTTPWhitespace(subtype, false, true)\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n return 'failure'\n }\n\n const typeLowercase = type.toLowerCase()\n const subtypeLowercase = subtype.toLowerCase()\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: typeLowercase,\n subtype: subtypeLowercase,\n /** @type {Map<string, string>} */\n parameters: new Map(),\n // https://mimesniff.spec.whatwg.org/#mime-type-essence\n essence: `${typeLowercase}/${subtypeLowercase}`\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n char => HTTP_WHITESPACE_REGEX.test(char),\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n parameterValue = removeHTTPWhitespace(parameterValue, false, true)\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType\u2019s parameters[parameterName] does not exist\n // then set mimeType\u2019s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) &&\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data\u2019s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data\u2019s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { parameters, essence } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType\u2019s\n // type, U+002F (/), and mimeType\u2019s subtype.\n let serialization = essence\n\n // 2. For each name \u2192 value of mimeType\u2019s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!HTTP_TOKEN_CODEPOINTS.test(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} char\n */\nfunction isHTTPWhiteSpace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === ' '\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} str\n */\nfunction removeHTTPWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n * @param {string} char\n */\nfunction isASCIIWhitespace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === '\\f' || char === ' '\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace\n */\nfunction removeASCIIWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n collectASequenceOfCodePointsFast,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n", "'use strict'\n\nconst { Blob, File: NativeFile } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' })\n\n fileBits = webidl.converters['sequence<BlobPart>'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n let t = options.type\n let d\n\n // eslint-disable-next-line no-labels\n substep: {\n if (t) {\n t = parseMIMEType(t)\n\n if (t === 'failure') {\n t = ''\n // eslint-disable-next-line no-labels\n break substep\n }\n\n t = serializeAMimeType(t).toLowerCase()\n }\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n d = options.lastModified\n }\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: t })\n this[kState] = {\n name: n,\n lastModified: d,\n type: t\n }\n }\n\n get name () {\n webidl.brandCheck(this, File)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, File)\n\n return this[kState].lastModified\n }\n\n get type () {\n webidl.brandCheck(this, File)\n\n return this[kState].type\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.size\n }\n\n get type () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.type\n }\n\n get name () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nObject.defineProperties(File.prototype, {\n [Symbol.toStringTag]: {\n value: 'File',\n configurable: true\n },\n name: kEnumerableProperty,\n lastModified: kEnumerableProperty\n})\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n ArrayBuffer.isView(V) ||\n types.isAnyArrayBuffer(V)\n ) {\n return webidl.converters.BufferSource(V, opts)\n }\n }\n\n return webidl.converters.USVString(V, opts)\n}\n\nwebidl.converters['sequence<BlobPart>'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(new TextEncoder().encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform\u2019s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return (\n (NativeFile && object instanceof NativeFile) ||\n object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n", "'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File: UndiciFile, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob, File: NativeFile } = require('buffer')\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n constructor (form) {\n if (form !== undefined) {\n throw webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['undefined']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' })\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this\u2019s entry list.\n this[kState] = this[kState].filter(entry => entry.name !== name)\n }\n\n get (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this\u2019s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this\u2019s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' })\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this\u2019s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this\u2019s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n }\n\n entries () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key+value'\n )\n }\n\n keys () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\nObject.defineProperties(FormData.prototype, {\n [Symbol.toStringTag]: {\n value: 'FormData',\n configurable: true\n }\n})\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n /** @type {FilePropertyBag} */\n const options = {\n type: value.type,\n lastModified: value.lastModified\n }\n\n value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n ? new File([value], filename, options)\n : new FileLike(value, filename, options)\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nmodule.exports = { FormData }\n", "'use strict'\n\nconst Busboy = require('busboy')\nconst util = require('../core/util')\nconst {\n ReadableStreamFrom,\n isBlobLike,\n isReadableStreamLike,\n readableStreamClose,\n createDeferredPromise,\n fullyReadBody\n} = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException, structuredClone } = require('./constants')\nconst { Blob, File: NativeFile } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File: UndiciFile } = require('./file')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\n\nlet ReadableStream = globalThis.ReadableStream\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be null.\n let stream = null\n\n // 2. If object is a ReadableStream object, then set stream to object.\n if (object instanceof ReadableStream) {\n stream = object\n } else if (isBlobLike(object)) {\n // 3. Otherwise, if object is a Blob object, set stream to the\n // result of running object\u2019s get stream.\n stream = object.stream()\n } else {\n // 4. Otherwise, set stream to a new ReadableStream object, and set\n // up stream.\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? new TextEncoder().encode(source) : source\n )\n queueMicrotask(() => readableStreamClose(controller))\n },\n start () {},\n type: undefined\n })\n }\n\n // 5. Assert: stream is a ReadableStream object.\n assert(isReadableStreamLike(stream))\n\n // 6. Let action be null.\n let action = null\n\n // 7. Let source be null.\n let source = null\n\n // 8. Let length be null.\n let length = null\n\n // 9. Let type be null.\n let type = null\n\n // 10. Switch on object:\n if (typeof object === 'string') {\n // Set source to the UTF-8 encoding of object.\n // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n source = object\n\n // Set type to `text/plain;charset=UTF-8`.\n type = 'text/plain;charset=UTF-8'\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object\u2019s list.\n source = object.toString()\n\n // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n type = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}`\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy W\u00E4rting <https://jimmy.warting.se/opensource> */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object\u2019s entry list and UTF-8.\n // - This ensures that the body is immutable and can't be changed afterwords\n // - That the content-length is calculated in advance.\n // - And that all parts are pre-encoded and ready to be sent.\n\n const enc = new TextEncoder()\n const blobParts = []\n const rn = new Uint8Array([13, 10]) // '\\r\\n'\n length = 0\n let hasUnknownSizeValue = false\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n const chunk = enc.encode(prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`)\n blobParts.push(chunk)\n length += chunk.byteLength\n } else {\n const chunk = enc.encode(`${prefix}; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') + '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`)\n blobParts.push(chunk, value, rn)\n if (typeof value.size === 'number') {\n length += chunk.byteLength + value.size + rn.byteLength\n } else {\n hasUnknownSizeValue = true\n }\n }\n }\n\n const chunk = enc.encode(`--${boundary}--`)\n blobParts.push(chunk)\n length += chunk.byteLength\n if (hasUnknownSizeValue) {\n length = null\n }\n\n // Set source to object.\n source = object\n\n action = async function * () {\n for (const part of blobParts) {\n if (part.stream) {\n yield * part.stream()\n } else {\n yield part\n }\n }\n }\n\n // Set type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n type = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set source to object.\n source = object\n\n // Set length to object\u2019s size.\n length = object.size\n\n // If object\u2019s type attribute is not the empty byte sequence, set\n // type to its value.\n if (object.type) {\n type = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n }\n\n // 11. If source is a byte sequence, then set action to a\n // step that returns source and length to source\u2019s length.\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 12. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n },\n type: undefined\n })\n }\n\n // 13. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 14. Return (body, type).\n return [body, type]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let \u00AB out1, out2 \u00BB be the result of teeing body\u2019s stream.\n const [out1, out2] = body.stream.tee()\n const out2Clone = structuredClone(out2, { transfer: [out2] })\n // This, for whatever reasons, unrefs out2Clone which allows\n // the process to exit by itself.\n const [, finalClone] = out2Clone.tee()\n\n // 2. Set body\u2019s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: finalClone,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n blob () {\n // The blob() method steps are to return the result of\n // running consume body with this and the following step\n // given a byte sequence bytes: return a Blob whose\n // contents are bytes and whose type attribute is this\u2019s\n // MIME type.\n return specConsumeBody(this, (bytes) => {\n let mimeType = bodyMimeType(this)\n\n if (mimeType === 'failure') {\n mimeType = ''\n } else if (mimeType) {\n mimeType = serializeAMimeType(mimeType)\n }\n\n // Return a Blob whose contents are bytes and type attribute\n // is mimeType.\n return new Blob([bytes], { type: mimeType })\n }, instance)\n },\n\n arrayBuffer () {\n // The arrayBuffer() method steps are to return the result\n // of running consume body with this and the following step\n // given a byte sequence bytes: return a new ArrayBuffer\n // whose contents are bytes.\n return specConsumeBody(this, (bytes) => {\n return new Uint8Array(bytes).buffer\n }, instance)\n },\n\n text () {\n // The text() method steps are to return the result of running\n // consume body with this and UTF-8 decode.\n return specConsumeBody(this, utf8DecodeBytes, instance)\n },\n\n json () {\n // The json() method steps are to return the result of running\n // consume body with this and parse JSON from bytes.\n return specConsumeBody(this, parseJSONFromBytes, instance)\n },\n\n async formData () {\n webidl.brandCheck(this, instance)\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType\u2019s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = Busboy({\n headers,\n defParamCharset: 'utf8'\n })\n } catch (err) {\n throw new DOMException(`${err}`, 'AbortError')\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, info) => {\n const { filename, encoding, mimeType } = info\n const chunks = []\n\n if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(new TypeError(err)))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType\u2019s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n const textDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += textDecoder.decode(chunk, { stream: true })\n }\n text += textDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n throw webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n * @param {Response|Request} object\n * @param {(value: unknown) => unknown} convertBytesToJSValue\n * @param {Response|Request} instance\n */\nasync function specConsumeBody (object, convertBytesToJSValue, instance) {\n webidl.brandCheck(object, instance)\n\n throwIfAborted(object[kState])\n\n // 1. If object is unusable, then return a promise rejected\n // with a TypeError.\n if (bodyUnusable(object[kState].body)) {\n throw new TypeError('Body is unusable')\n }\n\n // 2. Let promise be a new promise.\n const promise = createDeferredPromise()\n\n // 3. Let errorSteps given error be to reject promise with error.\n const errorSteps = (error) => promise.reject(error)\n\n // 4. Let successSteps given a byte sequence data be to resolve\n // promise with the result of running convertBytesToJSValue\n // with data. If that threw an exception, then run errorSteps\n // with that exception.\n const successSteps = (data) => {\n try {\n promise.resolve(convertBytesToJSValue(data))\n } catch (e) {\n errorSteps(e)\n }\n }\n\n // 5. If object\u2019s body is null, then run successSteps with an\n // empty byte sequence.\n if (object[kState].body == null) {\n successSteps(new Uint8Array())\n return promise.promise\n }\n\n // 6. Otherwise, fully read object\u2019s body given successSteps,\n // errorSteps, and object\u2019s relevant global object.\n fullyReadBody(object[kState].body, successSteps, errorSteps)\n\n // 7. Return promise.\n return promise.promise\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction bodyUnusable (body) {\n // An object including the Body interface mixin is\n // said to be unusable if its body is non-null and\n // its body\u2019s stream is disturbed or locked.\n return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#utf-8-decode\n * @param {Buffer} buffer\n */\nfunction utf8DecodeBytes (buffer) {\n if (buffer.length === 0) {\n return ''\n }\n\n // 1. Let buffer be the result of peeking three bytes from\n // ioQueue, converted to a byte sequence.\n\n // 2. If buffer is 0xEF 0xBB 0xBF, then read three\n // bytes from ioQueue. (Do nothing with those bytes.)\n if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n buffer = buffer.subarray(3)\n }\n\n // 3. Process a queue with an instance of UTF-8\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n const output = new TextDecoder().decode(buffer)\n\n // 4. Return output.\n return output\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n * @param {Uint8Array} bytes\n */\nfunction parseJSONFromBytes (bytes) {\n return JSON.parse(utf8DecodeBytes(bytes))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n * @param {import('./response').Response|import('./request').Request} object\n */\nfunction bodyMimeType (object) {\n const { headersList } = object[kState]\n const contentType = headersList.get('content-type')\n\n if (contentType === null) {\n return 'failure'\n }\n\n return parseMIMEType(contentType)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n", "'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n this.contentLength = bodyStream.length\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.onError(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onConnect(abort)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onData(chunk)\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n return this[kHandler].onComplete(trailers)\n }\n\n onError (error) {\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n return this[kHandler].onError(error)\n }\n\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n}\n\nfunction processHeaderValue (key, val) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n val = val != null ? `${val}` : ''\n\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n return `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request, key, val) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type'\n ) {\n request.contentType = val\n request.headers += processHeaderValue(key, val)\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n } else if (value === 'close') {\n request.reset = true\n }\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n request.headers += processHeaderValue(key, val[i])\n }\n } else {\n request.headers += processHeaderValue(key, val)\n }\n }\n}\n\nmodule.exports = Request\n", "'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n", "'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = null\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed] = this[kOnDestroyed] || []\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed] || this[kOnDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n", "'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\n\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache\nif (global.FinalizationRegistry) {\n SessionCache = class WeakSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n this._sessionRegistry = new global.FinalizationRegistry((key) => {\n if (this._sessionCache.size < this._maxCachedSessions) {\n return\n }\n\n const ref = this._sessionCache.get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this._sessionCache.delete(key)\n }\n })\n }\n\n get (sessionKey) {\n const ref = this._sessionCache.get(sessionKey)\n return ref ? ref.deref() : null\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n this._sessionCache.set(sessionKey, new WeakRef(session))\n this._sessionRegistry.register(session, sessionKey)\n }\n }\n} else {\n SessionCache = class SimpleSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n }\n\n get (sessionKey) {\n return this._sessionCache.get(sessionKey)\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n if (this._sessionCache.size >= this._maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = this._sessionCache.keys().next()\n this._sessionCache.delete(oldestKey)\n }\n\n this._sessionCache.set(sessionKey, session)\n }\n }\n}\n\nfunction buildConnector ({ maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions)\n timeout = timeout == null ? 10e3 : timeout\n\n return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n localAddress,\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // TODO (fix): Can a session become invalid once established? Don't think so?\n sessionCache.set(sessionKey, session)\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n localAddress,\n port: port || 80,\n host: hostname\n })\n }\n\n // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n if (options.keepAlive == null || options.keepAlive) {\n const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay\n socket.setKeepAlive(true, keepAliveInitialDelay)\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n", null, null, "'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n this.opts.query = null\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n return (\n (header.length === 4 && header.toString().toLowerCase() === 'host') ||\n (removeContent && header.toString().toLowerCase().indexOf('content-') === 0) ||\n (unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') ||\n (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie')\n )\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n", "'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAUNgIUIAAgATYCDEEAIRAMogELIABBADYCHCAAIBQ2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKEBCyAAQQA2AhwgACABNgIUIABBw4+AgAA2AhAgAEEHNgIMQQAhEAygAQtBACEQIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgwMnwELIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgxBACEQDJ4BCyAAQQA2AhwgACAUNgIUIABB/pGAgAA2AhAgAEEHNgIMQQAhEAydAQsgAEEANgIcIAAgATYCFCAAQY6bgIAANgIQIABBBjYCDEEAIRAMnAELIBBBFUYNVyAAQQA2AhwgACABNgIUIABBzI6AgAA2AhAgAEEgNgIMQQAhEAybAQsgAEEANgIAIBBBAWohAUEkIRALIAAgEDoAKSAAKAIEIRAgAEEANgIEIAAgECABEKuAgIAAIhANVCABIQEMPgsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQfGbgIAANgIQIABBBjYCDAyXAQsgAUEVRg1QIABBADYCHCAAIAU2AhQgAEHwjICAADYCECAAQRs2AgxBACEQDJYBCyAAKAIEIQUgAEEANgIEIAAgBSAQEKmAgIAAIgUNASAQQQFqIQULQa0BIRAMewsgAEHBATYCHCAAIAU2AgwgACAQQQFqNgIUQQAhEAyTAQsgACgCBCEGIABBADYCBCAAIAYgEBCpgICAACIGDQEgEEEBaiEGC0GuASEQDHgLIABBwgE2AhwgACAGNgIMIAAgEEEBajYCFEEAIRAMkAELIABBADYCHCAAIAc2AhQgAEGXi4CAADYCECAAQQ02AgxBACEQDI8BCyAAQQA2AhwgACAINgIUIABB45CAgAA2AhAgAEEJNgIMQQAhEAyOAQsgAEEANgIcIAAgCDYCFCAAQZSNgIAANgIQIABBITYCDEEAIRAMjQELQQEhFkEAIRdBACEUQQEhEAsgACAQOgArIAlBAWohCAJAAkAgAC0ALUEQcQ0AAkACQAJAIAAtACoOAwEAAgQLIBZFDQMMAgsgFA0BDAILIBdFDQELIAAoAgQhECAAQQA2AgQgACAQIAgQrYCAgAAiEEUNPSAAQckBNgIcIAAgCDYCFCAAIBA2AgxBACEQDIwBCyAAKAIEIQQgAEEANgIEIAAgBCAIEK2AgIAAIgRFDXYgAEHKATYCHCAAIAg2AhQgACAENgIMQQAhEAyLAQsgACgCBCEEIABBADYCBCAAIAQgCRCtgICAACIERQ10IABBywE2AhwgACAJNgIUIAAgBDYCDEEAIRAMigELIAAoAgQhBCAAQQA2AgQgACAEIAoQrYCAgAAiBEUNciAAQc0BNgIcIAAgCjYCFCAAIAQ2AgxBACEQDIkBCwJAIAstAABBUGoiEEH/AXFBCk8NACAAIBA6ACogC0EBaiEKQbYBIRAMcAsgACgCBCEEIABBADYCBCAAIAQgCxCtgICAACIERQ1wIABBzwE2AhwgACALNgIUIAAgBDYCDEEAIRAMiAELIABBADYCHCAAIAQ2AhQgAEGQs4CAADYCECAAQQg2AgwgAEEANgIAQQAhEAyHAQsgAUEVRg0/IABBADYCHCAAIAw2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDIYBCyAAQYEEOwEoIAAoAgQhECAAQgA3AwAgACAQIAxBAWoiDBCrgICAACIQRQ04IABB0wE2AhwgACAMNgIUIAAgEDYCDEEAIRAMhQELIABBADYCAAtBACEQIABBADYCHCAAIAQ2AhQgAEHYm4CAADYCECAAQQg2AgwMgwELIAAoAgQhECAAQgA3AwAgACAQIAtBAWoiCxCrgICAACIQDQFBxgEhEAxpCyAAQQI6ACgMVQsgAEHVATYCHCAAIAs2AhQgACAQNgIMQQAhEAyAAQsgEEEVRg03IABBADYCHCAAIAQ2AhQgAEGkjICAADYCECAAQRA2AgxBACEQDH8LIAAtADRBAUcNNCAAIAQgAhC8gICAACIQRQ00IBBBFUcNNSAAQdwBNgIcIAAgBDYCFCAAQdWWgIAANgIQIABBFTYCDEEAIRAMfgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQMfQtBACEQDGMLQQIhEAxiC0ENIRAMYQtBDyEQDGALQSUhEAxfC0ETIRAMXgtBFSEQDF0LQRYhEAxcC0EXIRAMWwtBGCEQDFoLQRkhEAxZC0EaIRAMWAtBGyEQDFcLQRwhEAxWC0EdIRAMVQtBHyEQDFQLQSEhEAxTC0EjIRAMUgtBxgAhEAxRC0EuIRAMUAtBLyEQDE8LQTshEAxOC0E9IRAMTQtByAAhEAxMC0HJACEQDEsLQcsAIRAMSgtBzAAhEAxJC0HOACEQDEgLQdEAIRAMRwtB1QAhEAxGC0HYACEQDEULQdkAIRAMRAtB2wAhEAxDC0HkACEQDEILQeUAIRAMQQtB8QAhEAxAC0H0ACEQDD8LQY0BIRAMPgtBlwEhEAw9C0GpASEQDDwLQawBIRAMOwtBwAEhEAw6C0G5ASEQDDkLQa8BIRAMOAtBsQEhEAw3C0GyASEQDDYLQbQBIRAMNQtBtQEhEAw0C0G6ASEQDDMLQb0BIRAMMgtBvwEhEAwxC0HBASEQDDALIABBADYCHCAAIAQ2AhQgAEHpi4CAADYCECAAQR82AgxBACEQDEgLIABB2wE2AhwgACAENgIUIABB+paAgAA2AhAgAEEVNgIMQQAhEAxHCyAAQfgANgIcIAAgDDYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMRgsgAEHRADYCHCAAIAU2AhQgAEGwl4CAADYCECAAQRU2AgxBACEQDEULIABB+QA2AhwgACABNgIUIAAgEDYCDEEAIRAMRAsgAEH4ADYCHCAAIAE2AhQgAEHKmICAADYCECAAQRU2AgxBACEQDEMLIABB5AA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAxCCyAAQdcANgIcIAAgATYCFCAAQcmXgIAANgIQIABBFTYCDEEAIRAMQQsgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMQAsgAEHCADYCHCAAIAE2AhQgAEHjmICAADYCECAAQRU2AgxBACEQDD8LIABBADYCBCAAIA8gDxCxgICAACIERQ0BIABBOjYCHCAAIAQ2AgwgACAPQQFqNgIUQQAhEAw+CyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBEUNACAAQTs2AhwgACAENgIMIAAgAUEBajYCFEEAIRAMPgsgAUEBaiEBDC0LIA9BAWohAQwtCyAAQQA2AhwgACAPNgIUIABB5JKAgAA2AhAgAEEENgIMQQAhEAw7CyAAQTY2AhwgACAENgIUIAAgAjYCDEEAIRAMOgsgAEEuNgIcIAAgDjYCFCAAIAQ2AgxBACEQDDkLIABB0AA2AhwgACABNgIUIABBkZiAgAA2AhAgAEEVNgIMQQAhEAw4CyANQQFqIQEMLAsgAEEVNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMNgsgAEEbNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNQsgAEEPNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNAsgAEELNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMMwsgAEEaNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMgsgAEELNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMQsgAEEKNgIcIAAgATYCFCAAQeSWgIAANgIQIABBFTYCDEEAIRAMMAsgAEEeNgIcIAAgATYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAMLwsgAEEANgIcIAAgEDYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMLgsgAEEENgIcIAAgATYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMLQsgAEEANgIAIAtBAWohCwtBuAEhEAwSCyAAQQA2AgAgEEEBaiEBQfUAIRAMEQsgASEBAkAgAC0AKUEFRw0AQeMAIRAMEQtB4gAhEAwQC0EAIRAgAEEANgIcIABB5JGAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAwoCyAAQQA2AgAgF0EBaiEBQcAAIRAMDgtBASEBCyAAIAE6ACwgAEEANgIAIBdBAWohAQtBKCEQDAsLIAEhAQtBOCEQDAkLAkAgASIPIAJGDQADQAJAIA8tAABBgL6AgABqLQAAIgFBAUYNACABQQJHDQMgD0EBaiEBDAQLIA9BAWoiDyACRw0AC0E+IRAMIgtBPiEQDCELIABBADoALCAPIQEMAQtBCyEQDAYLQTohEAwFCyABQQFqIQFBLSEQDAQLIAAgAToALCAAQQA2AgAgFkEBaiEBQQwhEAwDCyAAQQA2AgAgF0EBaiEBQQohEAwCCyAAQQA2AgALIABBADoALCANIQFBCSEQDAALC0EAIRAgAEEANgIcIAAgCzYCFCAAQc2QgIAANgIQIABBCTYCDAwXC0EAIRAgAEEANgIcIAAgCjYCFCAAQemKgIAANgIQIABBCTYCDAwWC0EAIRAgAEEANgIcIAAgCTYCFCAAQbeQgIAANgIQIABBCTYCDAwVC0EAIRAgAEEANgIcIAAgCDYCFCAAQZyRgIAANgIQIABBCTYCDAwUC0EAIRAgAEEANgIcIAAgATYCFCAAQc2QgIAANgIQIABBCTYCDAwTC0EAIRAgAEEANgIcIAAgATYCFCAAQemKgIAANgIQIABBCTYCDAwSC0EAIRAgAEEANgIcIAAgATYCFCAAQbeQgIAANgIQIABBCTYCDAwRC0EAIRAgAEEANgIcIAAgATYCFCAAQZyRgIAANgIQIABBCTYCDAwQC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwPC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwOC0EAIRAgAEEANgIcIAAgATYCFCAAQcCSgIAANgIQIABBCzYCDAwNC0EAIRAgAEEANgIcIAAgATYCFCAAQZWJgIAANgIQIABBCzYCDAwMC0EAIRAgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDAwLC0EAIRAgAEEANgIcIAAgATYCFCAAQfuPgIAANgIQIABBCjYCDAwKC0EAIRAgAEEANgIcIAAgATYCFCAAQfGZgIAANgIQIABBAjYCDAwJC0EAIRAgAEEANgIcIAAgATYCFCAAQcSUgIAANgIQIABBAjYCDAwIC0EAIRAgAEEANgIcIAAgATYCFCAAQfKVgIAANgIQIABBAjYCDAwHCyAAQQI2AhwgACABNgIUIABBnJqAgAA2AhAgAEEWNgIMQQAhEAwGC0EBIRAMBQtB1AAhECABIgQgAkYNBCADQQhqIAAgBCACQdjCgIAAQQoQxYCAgAAgAygCDCEEIAMoAggOAwEEAgALEMqAgIAAAAsgAEEANgIcIABBtZqAgAA2AhAgAEEXNgIMIAAgBEEBajYCFEEAIRAMAgsgAEEANgIcIAAgBDYCFCAAQcqagIAANgIQIABBCTYCDEEAIRAMAQsCQCABIgQgAkcNAEEiIRAMAQsgAEGJgICAADYCCCAAIAQ2AgRBISEQCyADQRBqJICAgIAAIBALrwEBAn8gASgCACEGAkACQCACIANGDQAgBCAGaiEEIAYgA2ogAmshByACIAZBf3MgBWoiBmohBQNAAkAgAi0AACAELQAARg0AQQIhBAwDCwJAIAYNAEEAIQQgBSECDAMLIAZBf2ohBiAEQQFqIQQgAkEBaiICIANHDQALIAchBiADIQILIABBATYCACABIAY2AgAgACACNgIEDwsgAUEANgIAIAAgBDYCACAAIAI2AgQLCgAgABDHgICAAAvyNgELfyOAgICAAEEQayIBJICAgIAAAkBBACgCoNCAgAANAEEAEMuAgIAAQYDUhIAAayICQdkASQ0AQQAhAwJAQQAoAuDTgIAAIgQNAEEAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEIakFwcUHYqtWqBXMiBDYC4NOAgABBAEEANgL004CAAEEAQQA2AsTTgIAAC0EAIAI2AszTgIAAQQBBgNSEgAA2AsjTgIAAQQBBgNSEgAA2ApjQgIAAQQAgBDYCrNCAgABBAEF/NgKo0ICAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALQYDUhIAAQXhBgNSEgABrQQ9xQQBBgNSEgABBCGpBD3EbIgNqIgRBBGogAkFIaiIFIANrIgNBAXI2AgBBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAQYDUhIAAIAVqQTg2AgQLAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFLDQACQEEAKAKI0ICAACIGQRAgAEETakFwcSAAQQtJGyICQQN2IgR2IgNBA3FFDQACQAJAIANBAXEgBHJBAXMiBUEDdCIEQbDQgIAAaiIDIARBuNCAgABqKAIAIgQoAggiAkcNAEEAIAZBfiAFd3E2AojQgIAADAELIAMgAjYCCCACIAM2AgwLIARBCGohAyAEIAVBA3QiBUEDcjYCBCAEIAVqIgQgBCgCBEEBcjYCBAwMCyACQQAoApDQgIAAIgdNDQECQCADRQ0AAkACQCADIAR0QQIgBHQiA0EAIANrcnEiA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqIgRBA3QiA0Gw0ICAAGoiBSADQbjQgIAAaigCACIDKAIIIgBHDQBBACAGQX4gBHdxIgY2AojQgIAADAELIAUgADYCCCAAIAU2AgwLIAMgAkEDcjYCBCADIARBA3QiBGogBCACayIFNgIAIAMgAmoiACAFQQFyNgIEAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQQCQAJAIAZBASAHQQN2dCIIcQ0AQQAgBiAIcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCAENgIMIAIgBDYCCCAEIAI2AgwgBCAINgIICyADQQhqIQNBACAANgKc0ICAAEEAIAU2ApDQgIAADAwLQQAoAozQgIAAIglFDQEgCUEAIAlrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqQQJ0QbjSgIAAaigCACIAKAIEQXhxIAJrIQQgACEFAkADQAJAIAUoAhAiAw0AIAVBFGooAgAiA0UNAgsgAygCBEF4cSACayIFIAQgBSAESSIFGyEEIAMgACAFGyEAIAMhBQwACwsgACgCGCEKAkAgACgCDCIIIABGDQAgACgCCCIDQQAoApjQgIAASRogCCADNgIIIAMgCDYCDAwLCwJAIABBFGoiBSgCACIDDQAgACgCECIDRQ0DIABBEGohBQsDQCAFIQsgAyIIQRRqIgUoAgAiAw0AIAhBEGohBSAIKAIQIgMNAAsgC0EANgIADAoLQX8hAiAAQb9/Sw0AIABBE2oiA0FwcSECQQAoAozQgIAAIgdFDQBBACELAkAgAkGAAkkNAEEfIQsgAkH///8HSw0AIANBCHYiAyADQYD+P2pBEHZBCHEiA3QiBCAEQYDgH2pBEHZBBHEiBHQiBSAFQYCAD2pBEHZBAnEiBXRBD3YgAyAEciAFcmsiA0EBdCACIANBFWp2QQFxckEcaiELC0EAIAJrIQQCQAJAAkACQCALQQJ0QbjSgIAAaigCACIFDQBBACEDQQAhCAwBC0EAIQMgAkEAQRkgC0EBdmsgC0EfRht0IQBBACEIA0ACQCAFKAIEQXhxIAJrIgYgBE8NACAGIQQgBSEIIAYNAEEAIQQgBSEIIAUhAwwDCyADIAVBFGooAgAiBiAGIAUgAEEddkEEcWpBEGooAgAiBUYbIAMgBhshAyAAQQF0IQAgBQ0ACwsCQCADIAhyDQBBACEIQQIgC3QiA0EAIANrciAHcSIDRQ0DIANBACADa3FBf2oiAyADQQx2QRBxIgN2IgVBBXZBCHEiACADciAFIAB2IgNBAnZBBHEiBXIgAyAFdiIDQQF2QQJxIgVyIAMgBXYiA0EBdkEBcSIFciADIAV2akECdEG40oCAAGooAgAhAwsgA0UNAQsDQCADKAIEQXhxIAJrIgYgBEkhAAJAIAMoAhAiBQ0AIANBFGooAgAhBQsgBiAEIAAbIQQgAyAIIAAbIQggBSEDIAUNAAsLIAhFDQAgBEEAKAKQ0ICAACACa08NACAIKAIYIQsCQCAIKAIMIgAgCEYNACAIKAIIIgNBACgCmNCAgABJGiAAIAM2AgggAyAANgIMDAkLAkAgCEEUaiIFKAIAIgMNACAIKAIQIgNFDQMgCEEQaiEFCwNAIAUhBiADIgBBFGoiBSgCACIDDQAgAEEQaiEFIAAoAhAiAw0ACyAGQQA2AgAMCAsCQEEAKAKQ0ICAACIDIAJJDQBBACgCnNCAgAAhBAJAAkAgAyACayIFQRBJDQAgBCACaiIAIAVBAXI2AgRBACAFNgKQ0ICAAEEAIAA2ApzQgIAAIAQgA2ogBTYCACAEIAJBA3I2AgQMAQsgBCADQQNyNgIEIAQgA2oiAyADKAIEQQFyNgIEQQBBADYCnNCAgABBAEEANgKQ0ICAAAsgBEEIaiEDDAoLAkBBACgClNCAgAAiACACTQ0AQQAoAqDQgIAAIgMgAmoiBCAAIAJrIgVBAXI2AgRBACAFNgKU0ICAAEEAIAQ2AqDQgIAAIAMgAkEDcjYCBCADQQhqIQMMCgsCQAJAQQAoAuDTgIAARQ0AQQAoAujTgIAAIQQMAQtBAEJ/NwLs04CAAEEAQoCAhICAgMAANwLk04CAAEEAIAFBDGpBcHFB2KrVqgVzNgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgABBgIAEIQQLQQAhAwJAIAQgAkHHAGoiB2oiBkEAIARrIgtxIgggAksNAEEAQTA2AvjTgIAADAoLAkBBACgCwNOAgAAiA0UNAAJAQQAoArjTgIAAIgQgCGoiBSAETQ0AIAUgA00NAQtBACEDQQBBMDYC+NOAgAAMCgtBAC0AxNOAgABBBHENBAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQAJAIAMoAgAiBSAESw0AIAUgAygCBGogBEsNAwsgAygCCCIDDQALC0EAEMuAgIAAIgBBf0YNBSAIIQYCQEEAKALk04CAACIDQX9qIgQgAHFFDQAgCCAAayAEIABqQQAgA2txaiEGCyAGIAJNDQUgBkH+////B0sNBQJAQQAoAsDTgIAAIgNFDQBBACgCuNOAgAAiBCAGaiIFIARNDQYgBSADSw0GCyAGEMuAgIAAIgMgAEcNAQwHCyAGIABrIAtxIgZB/v///wdLDQQgBhDLgICAACIAIAMoAgAgAygCBGpGDQMgACEDCwJAIANBf0YNACACQcgAaiAGTQ0AAkAgByAGa0EAKALo04CAACIEakEAIARrcSIEQf7///8HTQ0AIAMhAAwHCwJAIAQQy4CAgABBf0YNACAEIAZqIQYgAyEADAcLQQAgBmsQy4CAgAAaDAQLIAMhACADQX9HDQUMAwtBACEIDAcLQQAhAAwFCyAAQX9HDQILQQBBACgCxNOAgABBBHI2AsTTgIAACyAIQf7///8HSw0BIAgQy4CAgAAhAEEAEMuAgIAAIQMgAEF/Rg0BIANBf0YNASAAIANPDQEgAyAAayIGIAJBOGpNDQELQQBBACgCuNOAgAAgBmoiAzYCuNOAgAACQCADQQAoArzTgIAATQ0AQQAgAzYCvNOAgAALAkACQAJAAkBBACgCoNCAgAAiBEUNAEHI04CAACEDA0AgACADKAIAIgUgAygCBCIIakYNAiADKAIIIgMNAAwDCwsCQAJAQQAoApjQgIAAIgNFDQAgACADTw0BC0EAIAA2ApjQgIAAC0EAIQNBACAGNgLM04CAAEEAIAA2AsjTgIAAQQBBfzYCqNCAgABBAEEAKALg04CAADYCrNCAgABBAEEANgLU04CAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgQgBkFIaiIFIANrIgNBAXI2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAIAAgBWpBODYCBAwCCyADLQAMQQhxDQAgBCAFSQ0AIAQgAE8NACAEQXggBGtBD3FBACAEQQhqQQ9xGyIFaiIAQQAoApTQgIAAIAZqIgsgBWsiBUEBcjYCBCADIAggBmo2AgRBAEEAKALw04CAADYCpNCAgABBACAFNgKU0ICAAEEAIAA2AqDQgIAAIAQgC2pBODYCBAwBCwJAIABBACgCmNCAgAAiCE8NAEEAIAA2ApjQgIAAIAAhCAsgACAGaiEFQcjTgIAAIQMCQAJAAkACQAJAAkACQANAIAMoAgAgBUYNASADKAIIIgMNAAwCCwsgAy0ADEEIcUUNAQtByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiIFIARLDQMLIAMoAgghAwwACwsgAyAANgIAIAMgAygCBCAGajYCBCAAQXggAGtBD3FBACAAQQhqQQ9xG2oiCyACQQNyNgIEIAVBeCAFa0EPcUEAIAVBCGpBD3EbaiIGIAsgAmoiAmshAwJAIAYgBEcNAEEAIAI2AqDQgIAAQQBBACgClNCAgAAgA2oiAzYClNCAgAAgAiADQQFyNgIEDAMLAkAgBkEAKAKc0ICAAEcNAEEAIAI2ApzQgIAAQQBBACgCkNCAgAAgA2oiAzYCkNCAgAAgAiADQQFyNgIEIAIgA2ogAzYCAAwDCwJAIAYoAgQiBEEDcUEBRw0AIARBeHEhBwJAAkAgBEH/AUsNACAGKAIIIgUgBEEDdiIIQQN0QbDQgIAAaiIARhoCQCAGKAIMIgQgBUcNAEEAQQAoAojQgIAAQX4gCHdxNgKI0ICAAAwCCyAEIABGGiAEIAU2AgggBSAENgIMDAELIAYoAhghCQJAAkAgBigCDCIAIAZGDQAgBigCCCIEIAhJGiAAIAQ2AgggBCAANgIMDAELAkAgBkEUaiIEKAIAIgUNACAGQRBqIgQoAgAiBQ0AQQAhAAwBCwNAIAQhCCAFIgBBFGoiBCgCACIFDQAgAEEQaiEEIAAoAhAiBQ0ACyAIQQA2AgALIAlFDQACQAJAIAYgBigCHCIFQQJ0QbjSgIAAaiIEKAIARw0AIAQgADYCACAADQFBAEEAKAKM0ICAAEF+IAV3cTYCjNCAgAAMAgsgCUEQQRQgCSgCECAGRhtqIAA2AgAgAEUNAQsgACAJNgIYAkAgBigCECIERQ0AIAAgBDYCECAEIAA2AhgLIAYoAhQiBEUNACAAQRRqIAQ2AgAgBCAANgIYCyAHIANqIQMgBiAHaiIGKAIEIQQLIAYgBEF+cTYCBCACIANqIAM2AgAgAiADQQFyNgIEAkAgA0H/AUsNACADQXhxQbDQgIAAaiEEAkACQEEAKAKI0ICAACIFQQEgA0EDdnQiA3ENAEEAIAUgA3I2AojQgIAAIAQhAwwBCyAEKAIIIQMLIAMgAjYCDCAEIAI2AgggAiAENgIMIAIgAzYCCAwDC0EfIQQCQCADQf///wdLDQAgA0EIdiIEIARBgP4/akEQdkEIcSIEdCIFIAVBgOAfakEQdkEEcSIFdCIAIABBgIAPakEQdkECcSIAdEEPdiAEIAVyIAByayIEQQF0IAMgBEEVanZBAXFyQRxqIQQLIAIgBDYCHCACQgA3AhAgBEECdEG40oCAAGohBQJAQQAoAozQgIAAIgBBASAEdCIIcQ0AIAUgAjYCAEEAIAAgCHI2AozQgIAAIAIgBTYCGCACIAI2AgggAiACNgIMDAMLIANBAEEZIARBAXZrIARBH0YbdCEEIAUoAgAhAANAIAAiBSgCBEF4cSADRg0CIARBHXYhACAEQQF0IQQgBSAAQQRxakEQaiIIKAIAIgANAAsgCCACNgIAIAIgBTYCGCACIAI2AgwgAiACNgIIDAILIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgsgBkFIaiIIIANrIgNBAXI2AgQgACAIakE4NgIEIAQgBUE3IAVrQQ9xQQAgBUFJakEPcRtqQUFqIgggCCAEQRBqSRsiCEEjNgIEQQBBACgC8NOAgAA2AqTQgIAAQQAgAzYClNCAgABBACALNgKg0ICAACAIQRBqQQApAtDTgIAANwIAIAhBACkCyNOAgAA3AghBACAIQQhqNgLQ04CAAEEAIAY2AszTgIAAQQAgADYCyNOAgABBAEEANgLU04CAACAIQSRqIQMDQCADQQc2AgAgA0EEaiIDIAVJDQALIAggBEYNAyAIIAgoAgRBfnE2AgQgCCAIIARrIgA2AgAgBCAAQQFyNgIEAkAgAEH/AUsNACAAQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgAEEDdnQiAHENAEEAIAUgAHI2AojQgIAAIAMhBQwBCyADKAIIIQULIAUgBDYCDCADIAQ2AgggBCADNgIMIAQgBTYCCAwEC0EfIQMCQCAAQf///wdLDQAgAEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCIIIAhBgIAPakEQdkECcSIIdEEPdiADIAVyIAhyayIDQQF0IAAgA0EVanZBAXFyQRxqIQMLIAQgAzYCHCAEQgA3AhAgA0ECdEG40oCAAGohBQJAQQAoAozQgIAAIghBASADdCIGcQ0AIAUgBDYCAEEAIAggBnI2AozQgIAAIAQgBTYCGCAEIAQ2AgggBCAENgIMDAQLIABBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhCANAIAgiBSgCBEF4cSAARg0DIANBHXYhCCADQQF0IQMgBSAIQQRxakEQaiIGKAIAIggNAAsgBiAENgIAIAQgBTYCGCAEIAQ2AgwgBCAENgIIDAMLIAUoAggiAyACNgIMIAUgAjYCCCACQQA2AhggAiAFNgIMIAIgAzYCCAsgC0EIaiEDDAULIAUoAggiAyAENgIMIAUgBDYCCCAEQQA2AhggBCAFNgIMIAQgAzYCCAtBACgClNCAgAAiAyACTQ0AQQAoAqDQgIAAIgQgAmoiBSADIAJrIgNBAXI2AgRBACADNgKU0ICAAEEAIAU2AqDQgIAAIAQgAkEDcjYCBCAEQQhqIQMMAwtBACEDQQBBMDYC+NOAgAAMAgsCQCALRQ0AAkACQCAIIAgoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAA2AgAgAA0BQQAgB0F+IAV3cSIHNgKM0ICAAAwCCyALQRBBFCALKAIQIAhGG2ogADYCACAARQ0BCyAAIAs2AhgCQCAIKAIQIgNFDQAgACADNgIQIAMgADYCGAsgCEEUaigCACIDRQ0AIABBFGogAzYCACADIAA2AhgLAkACQCAEQQ9LDQAgCCAEIAJqIgNBA3I2AgQgCCADaiIDIAMoAgRBAXI2AgQMAQsgCCACaiIAIARBAXI2AgQgCCACQQNyNgIEIAAgBGogBDYCAAJAIARB/wFLDQAgBEF4cUGw0ICAAGohAwJAAkBBACgCiNCAgAAiBUEBIARBA3Z0IgRxDQBBACAFIARyNgKI0ICAACADIQQMAQsgAygCCCEECyAEIAA2AgwgAyAANgIIIAAgAzYCDCAAIAQ2AggMAQtBHyEDAkAgBEH///8HSw0AIARBCHYiAyADQYD+P2pBEHZBCHEiA3QiBSAFQYDgH2pBEHZBBHEiBXQiAiACQYCAD2pBEHZBAnEiAnRBD3YgAyAFciACcmsiA0EBdCAEIANBFWp2QQFxckEcaiEDCyAAIAM2AhwgAEIANwIQIANBAnRBuNKAgABqIQUCQCAHQQEgA3QiAnENACAFIAA2AgBBACAHIAJyNgKM0ICAACAAIAU2AhggACAANgIIIAAgADYCDAwBCyAEQQBBGSADQQF2ayADQR9GG3QhAyAFKAIAIQICQANAIAIiBSgCBEF4cSAERg0BIANBHXYhAiADQQF0IQMgBSACQQRxakEQaiIGKAIAIgINAAsgBiAANgIAIAAgBTYCGCAAIAA2AgwgACAANgIIDAELIAUoAggiAyAANgIMIAUgADYCCCAAQQA2AhggACAFNgIMIAAgAzYCCAsgCEEIaiEDDAELAkAgCkUNAAJAAkAgACAAKAIcIgVBAnRBuNKAgABqIgMoAgBHDQAgAyAINgIAIAgNAUEAIAlBfiAFd3E2AozQgIAADAILIApBEEEUIAooAhAgAEYbaiAINgIAIAhFDQELIAggCjYCGAJAIAAoAhAiA0UNACAIIAM2AhAgAyAINgIYCyAAQRRqKAIAIgNFDQAgCEEUaiADNgIAIAMgCDYCGAsCQAJAIARBD0sNACAAIAQgAmoiA0EDcjYCBCAAIANqIgMgAygCBEEBcjYCBAwBCyAAIAJqIgUgBEEBcjYCBCAAIAJBA3I2AgQgBSAEaiAENgIAAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQMCQAJAQQEgB0EDdnQiCCAGcQ0AQQAgCCAGcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCADNgIMIAIgAzYCCCADIAI2AgwgAyAINgIIC0EAIAU2ApzQgIAAQQAgBDYCkNCAgAALIABBCGohAwsgAUEQaiSAgICAACADCwoAIAAQyYCAgAAL4g0BB38CQCAARQ0AIABBeGoiASAAQXxqKAIAIgJBeHEiAGohAwJAIAJBAXENACACQQNxRQ0BIAEgASgCACICayIBQQAoApjQgIAAIgRJDQEgAiAAaiEAAkAgAUEAKAKc0ICAAEYNAAJAIAJB/wFLDQAgASgCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgASgCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAwsgAiAGRhogAiAENgIIIAQgAjYCDAwCCyABKAIYIQcCQAJAIAEoAgwiBiABRg0AIAEoAggiAiAESRogBiACNgIIIAIgBjYCDAwBCwJAIAFBFGoiAigCACIEDQAgAUEQaiICKAIAIgQNAEEAIQYMAQsDQCACIQUgBCIGQRRqIgIoAgAiBA0AIAZBEGohAiAGKAIQIgQNAAsgBUEANgIACyAHRQ0BAkACQCABIAEoAhwiBEECdEG40oCAAGoiAigCAEcNACACIAY2AgAgBg0BQQBBACgCjNCAgABBfiAEd3E2AozQgIAADAMLIAdBEEEUIAcoAhAgAUYbaiAGNgIAIAZFDQILIAYgBzYCGAJAIAEoAhAiAkUNACAGIAI2AhAgAiAGNgIYCyABKAIUIgJFDQEgBkEUaiACNgIAIAIgBjYCGAwBCyADKAIEIgJBA3FBA0cNACADIAJBfnE2AgRBACAANgKQ0ICAACABIABqIAA2AgAgASAAQQFyNgIEDwsgASADTw0AIAMoAgQiAkEBcUUNAAJAAkAgAkECcQ0AAkAgA0EAKAKg0ICAAEcNAEEAIAE2AqDQgIAAQQBBACgClNCAgAAgAGoiADYClNCAgAAgASAAQQFyNgIEIAFBACgCnNCAgABHDQNBAEEANgKQ0ICAAEEAQQA2ApzQgIAADwsCQCADQQAoApzQgIAARw0AQQAgATYCnNCAgABBAEEAKAKQ0ICAACAAaiIANgKQ0ICAACABIABBAXI2AgQgASAAaiAANgIADwsgAkF4cSAAaiEAAkACQCACQf8BSw0AIAMoAggiBCACQQN2IgVBA3RBsNCAgABqIgZGGgJAIAMoAgwiAiAERw0AQQBBACgCiNCAgABBfiAFd3E2AojQgIAADAILIAIgBkYaIAIgBDYCCCAEIAI2AgwMAQsgAygCGCEHAkACQCADKAIMIgYgA0YNACADKAIIIgJBACgCmNCAgABJGiAGIAI2AgggAiAGNgIMDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQACQAJAIAMgAygCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAgsgB0EQQRQgBygCECADRhtqIAY2AgAgBkUNAQsgBiAHNgIYAkAgAygCECICRQ0AIAYgAjYCECACIAY2AhgLIAMoAhQiAkUNACAGQRRqIAI2AgAgAiAGNgIYCyABIABqIAA2AgAgASAAQQFyNgIEIAFBACgCnNCAgABHDQFBACAANgKQ0ICAAA8LIAMgAkF+cTYCBCABIABqIAA2AgAgASAAQQFyNgIECwJAIABB/wFLDQAgAEF4cUGw0ICAAGohAgJAAkBBACgCiNCAgAAiBEEBIABBA3Z0IgBxDQBBACAEIAByNgKI0ICAACACIQAMAQsgAigCCCEACyAAIAE2AgwgAiABNgIIIAEgAjYCDCABIAA2AggPC0EfIQICQCAAQf///wdLDQAgAEEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIGIAZBgIAPakEQdkECcSIGdEEPdiACIARyIAZyayICQQF0IAAgAkEVanZBAXFyQRxqIQILIAEgAjYCHCABQgA3AhAgAkECdEG40oCAAGohBAJAAkBBACgCjNCAgAAiBkEBIAJ0IgNxDQAgBCABNgIAQQAgBiADcjYCjNCAgAAgASAENgIYIAEgATYCCCABIAE2AgwMAQsgAEEAQRkgAkEBdmsgAkEfRht0IQIgBCgCACEGAkADQCAGIgQoAgRBeHEgAEYNASACQR12IQYgAkEBdCECIAQgBkEEcWpBEGoiAygCACIGDQALIAMgATYCACABIAQ2AhggASABNgIMIAEgATYCCAwBCyAEKAIIIgAgATYCDCAEIAE2AgggAUEANgIYIAEgBDYCDCABIAA2AggLQQBBACgCqNCAgABBf2oiAUF/IAEbNgKo0ICAAAsLBAAAAAtOAAJAIAANAD8AQRB0DwsCQCAAQf//A3ENACAAQX9MDQACQCAAQRB2QAAiAEF/Rw0AQQBBMDYC+NOAgABBfw8LIABBEHQPCxDKgICAAAAL8gICA38BfgJAIAJFDQAgACABOgAAIAIgAGoiA0F/aiABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBfWogAToAACADQX5qIAE6AAAgAkEHSQ0AIAAgAToAAyADQXxqIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIFayICQSBJDQAgAa1CgYCAgBB+IQYgAyAFaiEBA0AgASAGNwMYIAEgBjcDECABIAY3AwggASAGNwMAIAFBIGohASACQWBqIgJBH0sNAAsLIAALC45IAQBBgAgLhkgBAAAAAgAAAAMAAAAAAAAAAAAAAAQAAAAFAAAAAAAAAAAAAAAGAAAABwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEludmFsaWQgY2hhciBpbiB1cmwgcXVlcnkAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9ib2R5AENvbnRlbnQtTGVuZ3RoIG92ZXJmbG93AENodW5rIHNpemUgb3ZlcmZsb3cAUmVzcG9uc2Ugb3ZlcmZsb3cASW52YWxpZCBtZXRob2QgZm9yIEhUVFAveC54IHJlcXVlc3QASW52YWxpZCBtZXRob2QgZm9yIFJUU1AveC54IHJlcXVlc3QARXhwZWN0ZWQgU09VUkNFIG1ldGhvZCBmb3IgSUNFL3gueCByZXF1ZXN0AEludmFsaWQgY2hhciBpbiB1cmwgZnJhZ21lbnQgc3RhcnQARXhwZWN0ZWQgZG90AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fc3RhdHVzAEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='\n", "// @ts-check\n\n'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst util = require('./core/util')\nconst timers = require('./timers')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError,\n ResponseExceededMaxSizeError,\n ClientDestroyedError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors,\n kLocalAddress,\n kMaxResponseSize\n} = require('./core/symbols')\nconst FastBuffer = Buffer[Symbol.species]\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\n/**\n * @type {import('../types/client').default}\n */\nclass Client extends DispatcherBase {\n /**\n *\n * @param {string|URL} url\n * @param {import('../types/client').Client.Options} options\n */\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient,\n localAddress,\n maxResponseSize,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n throw new InvalidArgumentError('localAddress must be valid string IP address')\n }\n\n if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n throw new InvalidArgumentError('maxResponseSize must be a positive number')\n }\n\n if (\n autoSelectFamilyAttemptTimeout != null &&\n (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n ) {\n throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || 16384\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kLocalAddress] = localAddress != null ? localAddress : null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = new Request(origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n return new Promise((resolve) => {\n if (!this[kSize]) {\n resolve(null)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n // TODO (fix): Should we error here with ClientDestroyedError?\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp-wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd-wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp-wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\nllhttpPromise.catch()\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n this.connection = ''\n this.maxResponseSize = client[kMaxResponseSize]\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n timers.clearTimeout(this.timeout)\n if (value) {\n this.timeout = timers.setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message =\n 'Response does not match the HTTP/1.1 protocol (' +\n Buffer.from(llhttp.memory.buffer, ptr, len).toString() +\n ')'\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n timers.clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n this.connection += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = (\n shouldKeepAlive ||\n // Override llhttp value which does not allow keepAlive for HEAD.\n (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n )\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (this.shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n let pause\n try {\n pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n\n if (request.method === 'HEAD') {\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode, maxResponseSize } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n util.destroy(socket, new ResponseExceededMaxSizeError())\n return -1\n }\n\n this.bytesRead += buf.length\n\n try {\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n this.connection = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n try {\n request.onComplete(headers)\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n parser.readMore()\n}\n\nfunction onSocketError (err) {\n const { [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.onMessageComplete()\n return\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser } = this\n\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n return\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client } = this\n\n if (!this[kError] && this[kParser].statusCode && !this[kParser].shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n this[kParser].onMessageComplete()\n }\n\n this[kParser].destroy()\n this[kParser] = null\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substr(1, idx - 1)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (client.destroyed) {\n util.destroy(socket.on('error', () => {}), new ClientDestroyedError())\n return\n }\n\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kError] = null\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n socket[kClient] = client\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n client[kSocket] = socket\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n if (client.destroyed) {\n return\n }\n\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client[kClosedResolve] && !client[kSize]) {\n client[kClosedResolve]()\n client[kClosedResolve] = null\n return\n }\n\n const socket = client[kSocket]\n\n if (socket && !socket.destroyed) {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket) {\n connect(client)\n return\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (util.isStream(request.body) && util.bodyLength(request.body) === 0) {\n request.body\n .on('data', /* istanbul ignore next */ function () {\n /* istanbul ignore next */\n assert(false)\n })\n .on('error', function (err) {\n errorRequest(client, request, err)\n })\n .on('end', function () {\n util.destroy(this)\n })\n\n request.body = null\n }\n\n if (client[kRunning] > 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\nfunction write (client, request) {\n const { body, method, path, host, upgrade, headers, blocking, reset } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n if (request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (reset != null) {\n socket[kReset] = reset\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining] && !socket[kReset]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeStream ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n if (finished) {\n return\n }\n\n try {\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n if (finished) {\n return\n }\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n onFinished(new RequestAbortedError())\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(buffer)\n socket.uncork()\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(socket, err)\n }\n}\n\nasync function writeIterable ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n socket.cork()\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'latin1')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n socket.uncork()\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'latin1')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n", "/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n", "const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n", "'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n", "'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout == null ? 10e3 : connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n", "'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n", "'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n}\n\nmodule.exports = function () {\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n", "'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n", "// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nmodule.exports = class BodyReadable extends Readable {\n constructor ({\n resume,\n abort,\n contentType = '',\n highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n }) {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n async dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n const signal = opts && opts.signal\n const abortFn = () => {\n this.destroy()\n }\n let signalListenerCleanup\n if (signal) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new InvalidArgumentError('signal must be an AbortSignal')\n }\n util.throwIfAborted(signal)\n signalListenerCleanup = util.addAbortListener(signal, abortFn)\n }\n try {\n for await (const chunk of this) {\n util.throwIfAborted(signal)\n limit -= Buffer.byteLength(chunk)\n if (limit < 0) {\n return\n }\n }\n } catch {\n util.throwIfAborted(signal)\n } finally {\n if (typeof signalListenerCleanup === 'function') {\n signalListenerCleanup()\n } else if (signalListenerCleanup) {\n signalListenerCleanup[Symbol.dispose]()\n }\n }\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n", "const assert = require('assert')\nconst {\n ResponseStatusCodeError\n} = require('../core/errors')\nconst { toUSVString } = require('../core/util')\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n assert(body)\n\n let chunks = []\n let limit = 0\n\n for await (const chunk of body) {\n chunks.push(chunk)\n limit += chunk.length\n if (limit > 128 * 1024) {\n chunks = null\n break\n }\n }\n\n if (statusCode === 204 || !contentType || !chunks) {\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = toUSVString(Buffer.concat(chunks))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nmodule.exports = { getResolveErrorBodyCallback }\n", "const { addAbortListener } = require('../core/util')\nconst { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n addAbortListener(self[kSignal], self[kListener])\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n", "'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n throw new InvalidArgumentError('invalid highWaterMark')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n this.highWaterMark = highWaterMark\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n const body = new Readable({ resume, abort, contentType, highWaterMark })\n\n this.callback = null\n this.res = body\n\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n } else {\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\n", "'use strict'\n\nconst { finished, PassThrough } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError || false\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { factory, opaque, context, callback, responseHeaders } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n\n let res\n\n if (this.throwOnError && statusCode >= 400) {\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n res = new PassThrough()\n\n this.callback = null\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body: res, contentType, statusCode, statusMessage, headers }\n )\n } else {\n res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n }\n\n res.on('drain', resume)\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res.write(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n", "'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n", "'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n", "'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n", "'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n", "'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\nconst {\n types: {\n isPromise\n }\n} = require('util')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record<string, string>} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [\n ...keyValuePairs,\n Buffer.from(`${key}`),\n Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n ], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches, _data = data) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const body = typeof _data === 'function'\n ? _data({ ...opts, headers: optsHeaders })\n : _data\n\n // util.types.isPromise is likely needed for jest.\n if (isPromise(body)) {\n // If handleReply is asynchronous, throwing an error\n // in the callback will reject the promise, rather than\n // synchronously throw the error, which breaks some tests.\n // Rather, we wait for the callback to resolve if it is a\n // promise, and then re-run handleReply with the new body.\n body.then((newData) => handleReply(mockDispatches, newData))\n return\n }\n\n const responseData = getResponseData(body)\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n", "'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n", "'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n", "'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(\u2026)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '\u2705' : '\u274C',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n", "'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n", "'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Pool = require('./pool')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n const { clientFactory = defaultFactory } = opts\n\n if (typeof clientFactory !== 'function') {\n throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = opts.headers || {}\n\n if (opts.auth && opts.token) {\n throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token')\n } else if (opts.auth) {\n /* @deprecated in favour of opts.token */\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n } else if (opts.token) {\n this[kProxyHeaders]['proxy-authorization'] = opts.token\n }\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host } = resolvedUrl\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = clientFactory(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError('Proxy response !== 200 when HTTP Tunneling'))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record<string, string>} headers\n * @returns {Record<string, string>}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record<string, string>} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record<string, string>} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n", "'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n", "'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst { webidl } = require('./webidl')\nconst assert = require('assert')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n\n // Trimming the end with `.replace()` and a RegExp is typically subject to\n // ReDoS. This is safer and faster.\n let i = potentialValue.length\n while (/[\\r\\n\\t ]/.test(potentialValue.charAt(--i)));\n return potentialValue.slice(0, i + 1).replace(/^[\\r\\n\\t ]+/, '')\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (const header of object) {\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n throw webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header\u2019s first item, header\u2019s second item) to headers.\n headers.append(header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key \u2192 value in object,\n // append (key, value) to headers\n for (const [key, value] of Object.entries(object)) {\n headers.append(key, value)\n }\n } else {\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n }\n}\n\nclass HeadersList {\n /** @type {[string, string][]|null} */\n cookies = null\n\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n this.cookies = init.cookies\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n this.cookies = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header\u2019s name.\n const lowercaseName = name.toLowerCase()\n const exists = this[kHeadersMap].get(lowercaseName)\n\n // 2. Append (name, value) to list.\n if (exists) {\n const delimiter = lowercaseName === 'cookie' ? '; ' : ', '\n this[kHeadersMap].set(lowercaseName, {\n name: exists.name,\n value: `${exists.value}${delimiter}${value}`\n })\n } else {\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n if (lowercaseName === 'set-cookie') {\n this.cookies ??= []\n this.cookies.push(value)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n const lowercaseName = name.toLowerCase()\n\n if (lowercaseName === 'set-cookie') {\n this.cookies = [value]\n }\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n return this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n\n if (name === 'set-cookie') {\n this.cookies = null\n }\n\n return this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n // 1. If list does not contain name, then return null.\n if (!this.contains(name)) {\n return null\n }\n\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return this[kHeadersMap].get(name.toLowerCase())?.value ?? null\n }\n\n * [Symbol.iterator] () {\n // use the lowercased name\n for (const [name, { value }] of this[kHeadersMap]) {\n yield [name, value]\n }\n }\n\n get entries () {\n const headers = {}\n\n if (this[kHeadersMap].size) {\n for (const { name, value } of this[kHeadersMap].values()) {\n headers[name] = value\n }\n }\n\n return headers\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this\u2019s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers\u2019s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers\u2019s header list.\n // 8. If headers\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n return this[kHeadersList].append(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this\u2019s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this\u2019s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this\u2019s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n return this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this\u2019s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this\u2019s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this\u2019s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n return this[kHeadersList].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n getSetCookie () {\n webidl.brandCheck(this, Headers)\n\n // 1. If this\u2019s header list does not contain `Set-Cookie`, then return \u00AB \u00BB.\n // 2. Return the values of all headers in this\u2019s header list whose name is\n // a byte-case-insensitive match for `Set-Cookie`, in order.\n\n const list = this[kHeadersList].cookies\n\n if (list) {\n return [...list]\n }\n\n return []\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n get [kHeadersSortedMap] () {\n if (this[kHeadersList][kHeadersSortedMap]) {\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n // 1. Let headers be an empty list of headers with the key being the name\n // and value the value.\n const headers = []\n\n // 2. Let names be the result of convert header names to a sorted-lowercase\n // set with all the names of the headers in list.\n const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)\n const cookies = this[kHeadersList].cookies\n\n // 3. For each name of names:\n for (const [name, value] of names) {\n // 1. If name is `set-cookie`, then:\n if (name === 'set-cookie') {\n // 1. Let values be a list of all values of headers in list whose name\n // is a byte-case-insensitive match for name, in order.\n\n // 2. For each value of values:\n // 1. Append (name, value) to headers.\n for (const value of cookies) {\n headers.push([name, value])\n }\n } else {\n // 2. Otherwise:\n\n // 1. Let value be the result of getting name from list.\n\n // 2. Assert: value is non-null.\n assert(value !== null)\n\n // 3. Append (name, value) to headers.\n headers.push([name, value])\n }\n }\n\n this[kHeadersList][kHeadersSortedMap] = headers\n\n // 4. Return headers.\n return headers\n }\n\n keys () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'value'\n )\n }\n\n entries () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key+value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n webidl.brandCheck(this, Headers)\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n getSetCookie: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty,\n [Symbol.iterator]: { enumerable: false },\n [Symbol.toStringTag]: {\n value: 'Headers',\n configurable: true\n }\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence<sequence<ByteString>>'](V)\n }\n\n return webidl.converters['record<ByteString, ByteString>'](V)\n }\n\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n", "'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike,\n isomorphicEncode\n} = require('./util')\nconst {\n redirectStatus,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this\u2019s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data = undefined, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' })\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = new TextEncoder('utf-8').encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this\u2019s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' })\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object\u2019s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatus.includes(status)) {\n throw new RangeError('Invalid status code ' + status)\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this\u2019s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject\u2019s response\u2019s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n const value = isomorphicEncode(URLSerializer(parsedURL))\n\n // 7. Append `Location`/value to responseObject\u2019s response\u2019s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this\u2019s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is this\u2019s response\u2019s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers()\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n // Returns response\u2019s type, e.g., \"cors\".\n get type () {\n webidl.brandCheck(this, Response)\n\n // The type getter steps are to return this\u2019s response\u2019s type.\n return this[kState].type\n }\n\n // Returns response\u2019s URL, if it has one; otherwise the empty string.\n get url () {\n webidl.brandCheck(this, Response)\n\n const urlList = this[kState].urlList\n\n // The url getter steps are to return the empty string if this\u2019s\n // response\u2019s URL is null; otherwise this\u2019s response\u2019s URL,\n // serialized with exclude fragment set to true.\n const url = urlList[urlList.length - 1] ?? null\n\n if (url === null) {\n return ''\n }\n\n return URLSerializer(url, true)\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n webidl.brandCheck(this, Response)\n\n // The redirected getter steps are to return true if this\u2019s response\u2019s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response\u2019s status.\n get status () {\n webidl.brandCheck(this, Response)\n\n // The status getter steps are to return this\u2019s response\u2019s status.\n return this[kState].status\n }\n\n // Returns whether response\u2019s status is an ok status.\n get ok () {\n webidl.brandCheck(this, Response)\n\n // The ok getter steps are to return true if this\u2019s response\u2019s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response\u2019s status message.\n get statusText () {\n webidl.brandCheck(this, Response)\n\n // The statusText getter steps are to return this\u2019s response\u2019s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response\u2019s headers as Headers.\n get headers () {\n webidl.brandCheck(this, Response)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n get body () {\n webidl.brandCheck(this, Response)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Response)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n // Returns a clone of response.\n clone () {\n webidl.brandCheck(this, Response)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n throw webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this\u2019s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Response',\n configurable: true\n }\n})\n\nObject.defineProperties(Response, {\n json: kEnumerableProperty,\n redirect: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response\u2019s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response\u2019s body is non-null, then set newResponse\u2019s body to the\n // result of cloning response\u2019s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response\u2019s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response\u2019s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response\u2019s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(new DOMException('The operation was aborted.', 'AbortError'))\n : makeNetworkError('Request was cancelled.')\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response\u2019s response\u2019s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response\u2019s response\u2019s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response\u2019s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kHeaders], init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n throw webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code ' + response.status\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n types.isAnyArrayBuffer(V) ||\n types.isTypedArray(V) ||\n types.isDataView(V)\n ) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response,\n cloneResponse\n}\n", "/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod,\n makePolicyContainer\n} = require('./util')\nconst {\n forbiddenMethods,\n corsSafeListedMethods,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n requestDuplex\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require('events')\n\nlet TransformStream = globalThis.TransformStream\n\nconst kInit = Symbol('init')\nconst kAbortController = Symbol('abortController')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kInit) {\n return\n }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' })\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin(),\n get origin () {\n return this.baseUrl?.origin\n },\n policyContainer: makePolicyContainer()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this\u2019s relevant settings object\u2019s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input\u2019s request.\n request = input[kState]\n\n // 9. Set signal to input\u2019s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this\u2019s relevant settings object\u2019s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request\u2019s window is an environment settings object and its origin\n // is same origin with origin, then set window to request\u2019s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if ('window' in init) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request\u2019s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request\u2019s method.\n method: request.method,\n // header list A copy of request\u2019s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This\u2019s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request\u2019s priority.\n priority: request.priority,\n // origin request\u2019s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request\u2019s referrer.\n referrer: request.referrer,\n // referrer policy request\u2019s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request\u2019s mode.\n mode: request.mode,\n // credentials mode request\u2019s credentials mode.\n credentials: request.credentials,\n // cache mode request\u2019s cache mode.\n cache: request.cache,\n // redirect mode request\u2019s redirect mode.\n redirect: request.redirect,\n // integrity metadata request\u2019s integrity metadata.\n integrity: request.integrity,\n // keepalive request\u2019s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request\u2019s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request\u2019s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request\u2019s URL list.\n urlList: [...request.urlList]\n })\n\n // 13. If init is not empty, then:\n if (Object.keys(init).length > 0) {\n // 1. If request\u2019s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request\u2019s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request\u2019s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request\u2019s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request\u2019s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request\u2019s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request\u2019s URL to request\u2019s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request\u2019s URL list to \u00AB request\u2019s URL \u00BB.\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request\u2019s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // - parsedReferrer\u2019s scheme is \"about\" and path is the string \"client\"\n // - parsedReferrer\u2019s origin is not same origin with origin\n // then set request\u2019s referrer to \"client\".\n if (\n (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') ||\n (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl))\n ) {\n request.referrer = 'client'\n } else {\n // 4. Otherwise, set request\u2019s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request\u2019s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n throw webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request\u2019s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request\u2019s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n }\n\n // 18. If init[\"cache\"] exists, then set request\u2019s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n }\n\n // 21. If request\u2019s cache mode is \"only-if-cached\" and request\u2019s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request\u2019s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n }\n\n // 23. If init[\"integrity\"] exists, then set request\u2019s integrity metadata to it.\n if (init.integrity !== undefined && init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request\u2019s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(init.method)) {\n throw TypeError(`'${init.method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethods.indexOf(method.toUpperCase()) !== -1) {\n throw TypeError(`'${init.method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethod(init.method)\n\n // 4. Set request\u2019s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this\u2019s request to request.\n this[kState] = request\n\n // 28. Set this\u2019s signal to a new AbortSignal object with this\u2019s relevant\n // Realm.\n // TODO: could this be simplified with AbortSignal.any\n // (https://dom.spec.whatwg.org/#dom-abortsignal-any)\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this\u2019s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n // Keep a strong ref to ac while request object\n // is alive. This is needed to prevent AbortController\n // from being prematurely garbage collected.\n // See, https://github.com/nodejs/undici/issues/1926.\n this[kAbortController] = ac\n\n const acRef = new WeakRef(ac)\n const abort = function () {\n const ac = acRef.deref()\n if (ac !== undefined) {\n ac.abort(this.reason)\n }\n }\n\n // Third-party AbortControllers may not work with these.\n // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n try {\n // If the max amount of listeners is equal to the default, increase it\n // This is only available in node >= v19.9.0\n if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n setMaxListeners(100, signal)\n } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) {\n setMaxListeners(100, signal)\n }\n } catch {}\n\n util.addAbortListener(signal, abort)\n requestFinalizer.register(ac, { signal, abort })\n }\n }\n\n // 30. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is request\u2019s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers()\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this\u2019s request\u2019s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this\u2019s request\u2019s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethods.includes(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this\u2019s headers\u2019s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (Object.keys(init).length !== 0) {\n // 1. Let headers be a copy of this\u2019s headers and its associated header\n // list.\n let headers = new Headers(this[kHeaders])\n\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n if (init.headers !== undefined) {\n headers = init.headers\n }\n\n // 3. Empty this\u2019s headers\u2019s header list.\n this[kHeaders][kHeadersList].clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header\u2019s name/header\u2019s value to this\u2019s headers.\n if (headers.constructor.name === 'Headers') {\n for (const [key, val] of headers) {\n this[kHeaders].append(key, val)\n }\n } else {\n // 5. Otherwise, fill this\u2019s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input\u2019s request\u2019s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request\u2019s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n (init.body != null || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request\u2019s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this\u2019s headers\u2019s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this\u2019s headers.\n if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody\u2019s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If initBody is non-null and init[\"duplex\"] does not exist,\n // then throw a TypeError.\n if (initBody != null && init.duplex == null) {\n throw new TypeError('RequestInit: duplex option is required when sending a body.')\n }\n\n // 2. If this\u2019s request\u2019s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 3. Set this\u2019s request\u2019s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this\u2019s request\u2019s body to finalBody.\n this[kState].body = finalBody\n }\n\n // Returns request\u2019s HTTP method, which is \"GET\" by default.\n get method () {\n webidl.brandCheck(this, Request)\n\n // The method getter steps are to return this\u2019s request\u2019s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n webidl.brandCheck(this, Request)\n\n // The url getter steps are to return this\u2019s request\u2019s URL, serialized.\n return URLSerializer(this[kState].url)\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n webidl.brandCheck(this, Request)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n webidl.brandCheck(this, Request)\n\n // The destination getter are to return this\u2019s request\u2019s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global\u2019s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n webidl.brandCheck(this, Request)\n\n // 1. If this\u2019s request\u2019s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this\u2019s request\u2019s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this\u2019s request\u2019s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request\u2019s\n // referrer.\n get referrerPolicy () {\n webidl.brandCheck(this, Request)\n\n // The referrerPolicy getter steps are to return this\u2019s request\u2019s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n webidl.brandCheck(this, Request)\n\n // The mode getter steps are to return this\u2019s request\u2019s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this\u2019s request\u2019s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser\u2019s cache when fetching.\n get cache () {\n webidl.brandCheck(this, Request)\n\n // The cache getter steps are to return this\u2019s request\u2019s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n webidl.brandCheck(this, Request)\n\n // The redirect getter steps are to return this\u2019s request\u2019s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request\u2019s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n webidl.brandCheck(this, Request)\n\n // The integrity getter steps are to return this\u2019s request\u2019s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n webidl.brandCheck(this, Request)\n\n // The keepalive getter steps are to return this\u2019s request\u2019s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isReloadNavigation getter steps are to return true if this\u2019s\n // request\u2019s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isHistoryNavigation getter steps are to return true if this\u2019s request\u2019s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n webidl.brandCheck(this, Request)\n\n // The signal getter steps are to return this\u2019s signal.\n return this[kSignal]\n }\n\n get body () {\n webidl.brandCheck(this, Request)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Request)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n get duplex () {\n webidl.brandCheck(this, Request)\n\n return 'half'\n }\n\n // Returns a clone of request.\n clone () {\n webidl.brandCheck(this, Request)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this\u2019s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedRequestObject = new Request(kInit)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers()\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject\u2019s signal follow this\u2019s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n util.addAbortListener(\n this.signal,\n () => {\n ac.abort(this.signal.reason)\n }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request\u2019s body is non-null, set newRequest\u2019s body to the\n // result of cloning request\u2019s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty,\n duplex: kEnumerableProperty,\n destination: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n isHistoryNavigation: kEnumerableProperty,\n isReloadNavigation: kEnumerableProperty,\n keepalive: kEnumerableProperty,\n integrity: kEnumerableProperty,\n cache: kEnumerableProperty,\n credentials: kEnumerableProperty,\n attribute: kEnumerableProperty,\n referrerPolicy: kEnumerableProperty,\n referrer: kEnumerableProperty,\n mode: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Request',\n configurable: true\n }\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: referrerPolicy\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: requestMode\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: requestCredentials\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: requestCache\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: requestRedirect\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n },\n {\n key: 'duplex',\n converter: webidl.converters.DOMString,\n allowedValues: requestDuplex\n }\n])\n\nmodule.exports = { Request, makeRequest }\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody,\n readableStreamClose,\n isomorphicEncode,\n urlIsLocal,\n urlIsHttpHttpsScheme,\n urlHasHttpsScheme\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody } = require('./body')\nconst {\n redirectStatus,\n nullBodyStatus,\n safeMethods,\n requestBodyHeader,\n subresource,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\nconst { getGlobalDispatcher } = require('../global')\nconst { webidl } = require('./webidl')\nconst { STATUS_CODES } = require('http')\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream = globalThis.ReadableStream\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n // 2 terminated listeners get added per request,\n // but only 1 gets removed. If there are 20 redirects,\n // 21 listeners will be added.\n // See https://github.com/nodejs/undici/issues/1711\n // TODO (fix): Find and fix root cause for leaked listener.\n this.setMaxListeners(21)\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n // https://fetch.spec.whatwg.org/#fetch-controller-abort\n abort (error) {\n if (this.state !== 'ongoing') {\n return\n }\n\n // 1. Set controller\u2019s state to \"aborted\".\n this.state = 'aborted'\n\n // 2. Let fallbackError be an \"AbortError\" DOMException.\n // 3. Set error to fallbackError if it is not given.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 4. Let serializedError be StructuredSerialize(error).\n // If that threw an exception, catch it, and let\n // serializedError be StructuredSerialize(fallbackError).\n\n // 5. Set controller\u2019s serialized abort reason to serializedError.\n this.serializedAbortReason = error\n\n this.connection?.destroy(error)\n this.emit('terminated', error)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nasync function fetch (input, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' })\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject\u2019s request.\n const request = requestObject[kState]\n\n // 4. If requestObject\u2019s signal\u2019s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort the fetch() call with p, request, null, and\n // requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, null, requestObject.signal.reason)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request\u2019s client\u2019s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request\u2019s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this\u2019s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject\u2019s signal:\n addAbortListener(\n requestObject.signal,\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Assert: controller is non-null.\n assert(controller != null)\n\n // 3. Abort controller with requestObject\u2019s signal\u2019s abort reason.\n controller.abort(requestObject.signal.reason)\n\n // 4. Abort the fetch() call with p, request, responseObject,\n // and requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, responseObject, requestObject.signal.reason)\n }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return\n }\n\n // 2. If response\u2019s aborted flag is set, then:\n if (response.aborted) {\n // 1. Let deserializedError be the result of deserialize a serialized\n // abort reason given controller\u2019s serialized abort reason and\n // relevantRealm.\n\n // 2. Abort the fetch() call with p, request, responseObject, and\n // deserializedError.\n\n abortFetch(p, request, responseObject, controller.serializedAbortReason)\n return\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response\u2019s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response\u2019s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response\u2019s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response\u2019s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL\u2019s scheme is not an HTTP(S) scheme, then return.\n if (!urlIsHttpHttpsScheme(originalURL)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response\u2019s timing allow passed flag is not set, then:\n if (!timingInfo.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo\u2019s end time to the coarsened shared current time\n // given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability.\n // TODO: given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability?\n timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) {\n performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject, error) {\n // Note: AbortSignal.reason was added in node v17.2.0\n // which would give us an undefined error to reject with.\n // Remove this once node v16 is no longer supported.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 1. Reject promise with error.\n p.reject(error)\n\n // 2. If request\u2019s body is not null and is readable, then cancel request\u2019s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 3. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 4. Let response be responseObject\u2019s response.\n const response = responseObject[kState]\n\n // 5. If response\u2019s body is not null and is readable, then error response\u2019s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request\u2019s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request\u2019s client\u2019s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request\u2019s client\u2019s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request\u2019s body is a byte sequence, then set request\u2019s body to\n // request\u2019s body as a body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request\u2019s window is \"client\", then set request\u2019s window to request\u2019s\n // client, if request\u2019s client\u2019s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request\u2019s origin is \"client\", then set request\u2019s origin to request\u2019s\n // client\u2019s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request\u2019s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request\u2019s client is non-null, then set request\u2019s policy\n // container to a clone of request\u2019s client\u2019s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request\u2019s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request\u2019s header list does not contain `Accept`, then:\n if (!request.headersList.contains('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request\u2019s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request\u2019s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request\u2019s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request\u2019s header list.\n if (!request.headersList.contains('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request\u2019s priority is null, then use request\u2019s initiator and\n // destination appropriately in setting request\u2019s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresource.includes(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request\u2019s local-URLs-only flag is set and request\u2019s current URL is\n // not local, then set response to a network error.\n if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request\u2019s referrer policy is the empty string, then set request\u2019s\n // referrer policy to request\u2019s policy container\u2019s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request\u2019s referrer is not \"no-referrer\", then set request\u2019s\n // referrer to the result of invoking determine request\u2019s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request\u2019s current URL\u2019s scheme to \"https\" if all of the following\n // conditions are true:\n // - request\u2019s current URL\u2019s scheme is \"http\"\n // - request\u2019s current URL\u2019s host is a domain\n // - Matching request\u2019s current URL\u2019s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request\u2019s current URL\u2019s origin is same origin with request\u2019s origin,\n // and request\u2019s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request\u2019s current URL\u2019s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request\u2019s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request\u2019s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request\u2019s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request\u2019s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request\u2019s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s current URL\u2019s scheme is not an HTTP(S) scheme\n if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request\u2019s use-CORS-preflight flag is set\n // - request\u2019s unsafe-request flag is set and either request\u2019s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request\u2019s header list is not empty\n // 1. Set request\u2019s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request\u2019s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request\u2019s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response\u2019s header list.\n // TODO\n // 2. If request\u2019s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response\u2019s CORS-exposed header-name list to\n // all unique header names in response\u2019s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response\u2019s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response\u2019s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse\u2019s URL list is empty, then set it to a clone of\n // request\u2019s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request\u2019s timing allow failed flag is unset, then set\n // internalResponse\u2019s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response\u2019s type is \"opaque\", internalResponse\u2019s status is 206,\n // internalResponse\u2019s range-requested flag is set, and request\u2019s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.contains('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request\u2019s method is\n // `HEAD` or `CONNECT`, or internalResponse\u2019s status is a null body status,\n // set internalResponse\u2019s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request\u2019s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request\u2019s response tainting is \"opaque\", or response\u2019s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request\u2019s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response\u2019s body to bytes as a body.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response\u2019s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nasync function schemeFetch (fetchParams) {\n // Note: since the connection is destroyed on redirect, which sets fetchParams to a\n // cancelled state, we do not want this condition to trigger *unless* there have been\n // no redirects. See https://github.com/nodejs/undici/issues/1776\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Let request be fetchParams\u2019s request.\n const { request } = fetchParams\n\n const { protocol: scheme } = requestCurrentURL(request)\n\n // 3. Switch on request\u2019s current URL\u2019s scheme and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request\u2019s current URL\u2019s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is \u00AB (`Content-Type`, `text/html;charset=utf-8`) \u00BB,\n // and body is the empty byte sequence as a body.\n\n // Otherwise, return a network error.\n return makeNetworkError('about scheme is not supported')\n }\n case 'blob:': {\n if (!resolveObjectURL) {\n resolveObjectURL = require('buffer').resolveObjectURL\n }\n\n // 1. Let blobURLEntry be request\u2019s current URL\u2019s blob URL entry.\n const blobURLEntry = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (blobURLEntry.search.length !== 0) {\n return makeNetworkError('NetworkError when attempting to fetch resource.')\n }\n\n const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString())\n\n // 2. If request\u2019s method is not `GET`, blobURLEntry is null, or blobURLEntry\u2019s\n // object is not a Blob object, then return a network error.\n if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n return makeNetworkError('invalid method')\n }\n\n // 3. Let bodyWithType be the result of safely extracting blobURLEntry\u2019s object.\n const bodyWithType = safelyExtractBody(blobURLEntryObject)\n\n // 4. Let body be bodyWithType\u2019s body.\n const body = bodyWithType[0]\n\n // 5. Let length be body\u2019s length, serialized and isomorphic encoded.\n const length = isomorphicEncode(`${body.length}`)\n\n // 6. Let type be bodyWithType\u2019s type if it is non-null; otherwise the empty byte sequence.\n const type = bodyWithType[1] ?? ''\n\n // 7. Return a new response whose status message is `OK`, header list is\n // \u00AB (`Content-Length`, length), (`Content-Type`, type) \u00BB, and body is body.\n const response = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-length', { name: 'Content-Length', value: length }],\n ['content-type', { name: 'Content-Type', value: type }]\n ]\n })\n\n response.body = body\n\n return response\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request\u2019s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return makeNetworkError('failed to fetch the data URL')\n }\n\n // 3. Let mimeType be dataURLStruct\u2019s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is \u00AB (`Content-Type`, mimeType) \u00BB,\n // and body is dataURLStruct\u2019s body as a body.\n return makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', { name: 'Content-Type', value: mimeType }]\n ],\n body: safelyExtractBody(dataURLStruct.body)[0]\n })\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return makeNetworkError('not implemented... yet...')\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return await httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return makeNetworkError('unknown scheme')\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams\u2019s process response done is not null, then queue a fetch\n // task to run fetchParams\u2019s process response done given response, with\n // fetchParams\u2019s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nasync function fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response\u2019s URL list to \u00AB fetchParams\u2019s request\u2019s URL list[0] \u00BB.\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response\u2019s timing info to the result of creating an opaque timing\n // info for fetchParams\u2019s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // If fetchParams\u2019s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams\u2019s process response\n // end-of-body given response with fetchParams\u2019s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams\u2019s process response is non-null, then queue a fetch task\n // to run fetchParams\u2019s process response given response, with fetchParams\u2019s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response\u2019s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n }, {\n size () {\n return 1\n }\n }, {\n size () {\n return 1\n }\n })\n\n // 4. Set response\u2019s body to the result of piping response\u2019s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams\u2019s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams\u2019s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams\u2019s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response\u2019s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams\u2019s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response\u2019s body given processBody, processBodyError,\n // and fetchParams\u2019s task destination.\n await fullyReadBody(response.body, processBody, processBodyError)\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request\u2019s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request\u2019s redirect mode is \"follow\", then set request\u2019s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request\u2019s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request\u2019s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request\u2019s response tainting or response\u2019s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request\u2019s origin, request\u2019s client, request\u2019s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse\u2019s status is a redirect status, then:\n if (redirectStatus.includes(actualResponse.status)) {\n // 1. If actualResponse\u2019s status is not 303, request\u2019s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request\u2019s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nasync function httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response\u2019s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse\u2019s location URL given request\u2019s current\n // URL\u2019s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return makeNetworkError(err)\n }\n\n // 6. If locationURL\u2019s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!urlIsHttpHttpsScheme(locationURL)) {\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // 7. If request\u2019s redirect count is 20, then return a network error.\n if (request.redirectCount === 20) {\n return makeNetworkError('redirect count exceeded')\n }\n\n // 8. Increase request\u2019s redirect count by 1.\n request.redirectCount += 1\n\n // 9. If request\u2019s mode is \"cors\", locationURL includes credentials, and\n // request\u2019s origin is not same origin with locationURL\u2019s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return makeNetworkError('cross origin not allowed for request mode \"cors\"')\n }\n\n // 10. If request\u2019s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n )\n }\n\n // 11. If actualResponse\u2019s status is not 303, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return makeNetworkError()\n }\n\n // 12. If one of the following is true\n // - actualResponse\u2019s status is 301 or 302 and request\u2019s method is `POST`\n // - actualResponse\u2019s status is 303 and request\u2019s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !['GET', 'HEAD'].includes(request.method))\n ) {\n // then:\n // 1. Set request\u2019s method to `GET` and request\u2019s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request\u2019s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request\u2019s current URL\u2019s origin is not same origin with locationURL\u2019s\n // origin, then for each headerName of CORS non-wildcard request-header name,\n // delete headerName from request\u2019s header list.\n if (!sameOrigin(requestCurrentURL(request), locationURL)) {\n // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n request.headersList.delete('authorization')\n }\n\n // 14. If request\u2019s body is non-null, then set request\u2019s body to the first return\n // value of safely extracting request\u2019s body\u2019s source.\n if (request.body != null) {\n assert(request.body.source != null)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 15. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 16. Set timingInfo\u2019s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 17. If timingInfo\u2019s redirect start time is 0, then set timingInfo\u2019s\n // redirect start time to timingInfo\u2019s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 18. Append locationURL to request\u2019s URL list.\n request.urlList.push(locationURL)\n\n // 19. Invoke set request\u2019s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 20. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request\u2019s window is \"no-window\" and request\u2019s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams\u2019s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest\u2019s body\u2019s length, if httpRequest\u2019s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest\u2019s body is null and httpRequest\u2019s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest\u2019s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest\u2019s header list.\n\n // 10. If contentLength is non-null and httpRequest\u2019s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest\u2019s referrer is a URL, then append\n // `Referer`/httpRequest\u2019s referrer, serialized and isomorphic encoded,\n // to httpRequest\u2019s header list.\n if (httpRequest.referrer instanceof URL) {\n httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href))\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest\u2019s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('user-agent')) {\n httpRequest.headersList.append('user-agent', 'undici')\n }\n\n // 15. If httpRequest\u2019s cache mode is \"default\" and httpRequest\u2019s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest\u2019s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.contains('if-modified-since') ||\n httpRequest.headersList.contains('if-none-match') ||\n httpRequest.headersList.contains('if-unmodified-since') ||\n httpRequest.headersList.contains('if-match') ||\n httpRequest.headersList.contains('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest\u2019s cache mode is \"no-cache\", httpRequest\u2019s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest\u2019s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest\u2019s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.contains('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest\u2019s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest\u2019s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest\u2019s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest\u2019s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest\u2019s header list.\n if (httpRequest.headersList.contains('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest\u2019s header list per HTTP. Do not append a given\n // header if httpRequest\u2019s header list contains that header\u2019s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.contains('accept-encoding')) {\n if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest\u2019s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there\u2019s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest\u2019s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest\u2019s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest\u2019s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest\u2019s method is unsafe and forwardResponse\u2019s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethods.includes(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse\u2019s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response\u2019s URL list to a clone of httpRequest\u2019s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest\u2019s header list contains `Range`, then set response\u2019s\n // range-requested flag.\n if (httpRequest.headersList.contains('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response\u2019s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response\u2019s status is 401, httpRequest\u2019s response tainting is not\n // \"cors\", includeCredentials is true, and request\u2019s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response\u2019s status is 407, then:\n if (response.status === 407) {\n // 1. If request\u2019s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request\u2019s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response\u2019s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request\u2019s body is null, or request\u2019s body is non-null and request\u2019s body\u2019s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request\u2019s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request\u2019s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request\u2019s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request\u2019s current URL\u2019s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo\u2019s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection\u2019s\n // timing info, timingInfo\u2019s post-redirect start time, and fetchParams\u2019s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request\u2019s header list.\n\n // 4. Set timingInfo\u2019s final network-request start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request\u2019s body is non-null, and request\u2019s body\u2019s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request\u2019s body in that buffer. If the user agent reads from\n // request\u2019s body beyond that buffer\u2019s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo\u2019s final network-response start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated capability,\n // immediately after the user agent\u2019s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo\u2019s final network-response start time above.\n\n // - If request\u2019s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request\u2019s window is an environment settings object, make the\n // dialog available in request\u2019s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request\u2019s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams\u2019s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams\u2019s process request\n // end-of-body and fetchParams\u2019s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams\u2019s process request body is non-null, then run\n // fetchParams\u2019s process request body given bytes\u2019s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams\u2019s process request end-of-body is non-null,\n // then run fetchParams\u2019s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams\u2019s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request\u2019s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams\u2019s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n // socket is only provided for websockets\n const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody })\n\n if (socket) {\n response = makeResponse({ status, statusText, headersList, socket })\n } else {\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n }\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams\u2019s\n // controller with reason, given reason.\n const cancelAlgorithm = (reason) => {\n fetchParams.controller.abort(reason)\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n {\n highWaterMark: 0,\n size () {\n return 1\n }\n }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response\u2019s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request\u2019s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response\u2019s header list, if any, and request\u2019s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n let isFailure\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n\n // err may be propagated from the result of calling readablestream.cancel,\n // which might not be an error. https://github.com/nodejs/undici/issues/2009\n isFailure = true\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response\u2019s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n readableStreamClose(fetchParams.controller.controller)\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo\u2019s decoded body size by bytes\u2019s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams\u2019s controller.\n if (isFailure) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn\u2019t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response\u2019s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, then error stream with the result of\n // deserialize a serialized abort reason given fetchParams\u2019s\n // controller\u2019s serialized abort reason and an\n // implementation-defined realm.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n fetchParams.controller.serializedAbortReason\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n /** @type {import('../..').Agent} */\n const agent = fetchParams.controller.dispatcher\n\n return new Promise((resolve, reject) => agent.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && request.body.source : body,\n headers: request.headersList.entries,\n maxRedirections: 0,\n upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse()\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers.append(key, val)\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatus.includes(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n if (coding === 'x-gzip' || coding === 'gzip') {\n decoders.push(zlib.createGunzip({\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n }))\n } else if (coding === 'deflate') {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response\u2019s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response\u2019s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo\u2019s encoded body size by bytes\u2019s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n },\n\n onUpgrade (status, headersList, socket) {\n if (status !== 101) {\n return\n }\n\n const headers = new Headers()\n\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n headers.append(key, val)\n }\n\n resolve({\n status,\n statusText: STATUS_CODES[status],\n headersList: headers[kHeadersList],\n socket\n })\n\n return true\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n", "'use strict'\n\nmodule.exports = {\n kState: Symbol('FileReader state'),\n kResult: Symbol('FileReader result'),\n kError: Symbol('FileReader error'),\n kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'),\n kEvents: Symbol('FileReader events'),\n kAborted: Symbol('FileReader aborted')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\n\nconst kState = Symbol('ProgressEvent state')\n\n/**\n * @see https://xhr.spec.whatwg.org/#progressevent\n */\nclass ProgressEvent extends Event {\n constructor (type, eventInitDict = {}) {\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {})\n\n super(type, eventInitDict)\n\n this[kState] = {\n lengthComputable: eventInitDict.lengthComputable,\n loaded: eventInitDict.loaded,\n total: eventInitDict.total\n }\n }\n\n get lengthComputable () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].lengthComputable\n }\n\n get loaded () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].loaded\n }\n\n get total () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].total\n }\n}\n\nwebidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n {\n key: 'lengthComputable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'loaded',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'total',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n])\n\nmodule.exports = {\n ProgressEvent\n}\n", "'use strict'\n\n/**\n * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n * @param {string|undefined} label\n */\nfunction getEncoding (label) {\n if (!label) {\n return 'failure'\n }\n\n // 1. Remove any leading and trailing ASCII whitespace from label.\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, then return the\n // corresponding encoding; otherwise return failure.\n switch (label.trim().toLowerCase()) {\n case 'unicode-1-1-utf-8':\n case 'unicode11utf8':\n case 'unicode20utf8':\n case 'utf-8':\n case 'utf8':\n case 'x-unicode20utf8':\n return 'UTF-8'\n case '866':\n case 'cp866':\n case 'csibm866':\n case 'ibm866':\n return 'IBM866'\n case 'csisolatin2':\n case 'iso-8859-2':\n case 'iso-ir-101':\n case 'iso8859-2':\n case 'iso88592':\n case 'iso_8859-2':\n case 'iso_8859-2:1987':\n case 'l2':\n case 'latin2':\n return 'ISO-8859-2'\n case 'csisolatin3':\n case 'iso-8859-3':\n case 'iso-ir-109':\n case 'iso8859-3':\n case 'iso88593':\n case 'iso_8859-3':\n case 'iso_8859-3:1988':\n case 'l3':\n case 'latin3':\n return 'ISO-8859-3'\n case 'csisolatin4':\n case 'iso-8859-4':\n case 'iso-ir-110':\n case 'iso8859-4':\n case 'iso88594':\n case 'iso_8859-4':\n case 'iso_8859-4:1988':\n case 'l4':\n case 'latin4':\n return 'ISO-8859-4'\n case 'csisolatincyrillic':\n case 'cyrillic':\n case 'iso-8859-5':\n case 'iso-ir-144':\n case 'iso8859-5':\n case 'iso88595':\n case 'iso_8859-5':\n case 'iso_8859-5:1988':\n return 'ISO-8859-5'\n case 'arabic':\n case 'asmo-708':\n case 'csiso88596e':\n case 'csiso88596i':\n case 'csisolatinarabic':\n case 'ecma-114':\n case 'iso-8859-6':\n case 'iso-8859-6-e':\n case 'iso-8859-6-i':\n case 'iso-ir-127':\n case 'iso8859-6':\n case 'iso88596':\n case 'iso_8859-6':\n case 'iso_8859-6:1987':\n return 'ISO-8859-6'\n case 'csisolatingreek':\n case 'ecma-118':\n case 'elot_928':\n case 'greek':\n case 'greek8':\n case 'iso-8859-7':\n case 'iso-ir-126':\n case 'iso8859-7':\n case 'iso88597':\n case 'iso_8859-7':\n case 'iso_8859-7:1987':\n case 'sun_eu_greek':\n return 'ISO-8859-7'\n case 'csiso88598e':\n case 'csisolatinhebrew':\n case 'hebrew':\n case 'iso-8859-8':\n case 'iso-8859-8-e':\n case 'iso-ir-138':\n case 'iso8859-8':\n case 'iso88598':\n case 'iso_8859-8':\n case 'iso_8859-8:1988':\n case 'visual':\n return 'ISO-8859-8'\n case 'csiso88598i':\n case 'iso-8859-8-i':\n case 'logical':\n return 'ISO-8859-8-I'\n case 'csisolatin6':\n case 'iso-8859-10':\n case 'iso-ir-157':\n case 'iso8859-10':\n case 'iso885910':\n case 'l6':\n case 'latin6':\n return 'ISO-8859-10'\n case 'iso-8859-13':\n case 'iso8859-13':\n case 'iso885913':\n return 'ISO-8859-13'\n case 'iso-8859-14':\n case 'iso8859-14':\n case 'iso885914':\n return 'ISO-8859-14'\n case 'csisolatin9':\n case 'iso-8859-15':\n case 'iso8859-15':\n case 'iso885915':\n case 'iso_8859-15':\n case 'l9':\n return 'ISO-8859-15'\n case 'iso-8859-16':\n return 'ISO-8859-16'\n case 'cskoi8r':\n case 'koi':\n case 'koi8':\n case 'koi8-r':\n case 'koi8_r':\n return 'KOI8-R'\n case 'koi8-ru':\n case 'koi8-u':\n return 'KOI8-U'\n case 'csmacintosh':\n case 'mac':\n case 'macintosh':\n case 'x-mac-roman':\n return 'macintosh'\n case 'iso-8859-11':\n case 'iso8859-11':\n case 'iso885911':\n case 'tis-620':\n case 'windows-874':\n return 'windows-874'\n case 'cp1250':\n case 'windows-1250':\n case 'x-cp1250':\n return 'windows-1250'\n case 'cp1251':\n case 'windows-1251':\n case 'x-cp1251':\n return 'windows-1251'\n case 'ansi_x3.4-1968':\n case 'ascii':\n case 'cp1252':\n case 'cp819':\n case 'csisolatin1':\n case 'ibm819':\n case 'iso-8859-1':\n case 'iso-ir-100':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'iso_8859-1:1987':\n case 'l1':\n case 'latin1':\n case 'us-ascii':\n case 'windows-1252':\n case 'x-cp1252':\n return 'windows-1252'\n case 'cp1253':\n case 'windows-1253':\n case 'x-cp1253':\n return 'windows-1253'\n case 'cp1254':\n case 'csisolatin5':\n case 'iso-8859-9':\n case 'iso-ir-148':\n case 'iso8859-9':\n case 'iso88599':\n case 'iso_8859-9':\n case 'iso_8859-9:1989':\n case 'l5':\n case 'latin5':\n case 'windows-1254':\n case 'x-cp1254':\n return 'windows-1254'\n case 'cp1255':\n case 'windows-1255':\n case 'x-cp1255':\n return 'windows-1255'\n case 'cp1256':\n case 'windows-1256':\n case 'x-cp1256':\n return 'windows-1256'\n case 'cp1257':\n case 'windows-1257':\n case 'x-cp1257':\n return 'windows-1257'\n case 'cp1258':\n case 'windows-1258':\n case 'x-cp1258':\n return 'windows-1258'\n case 'x-mac-cyrillic':\n case 'x-mac-ukrainian':\n return 'x-mac-cyrillic'\n case 'chinese':\n case 'csgb2312':\n case 'csiso58gb231280':\n case 'gb2312':\n case 'gb_2312':\n case 'gb_2312-80':\n case 'gbk':\n case 'iso-ir-58':\n case 'x-gbk':\n return 'GBK'\n case 'gb18030':\n return 'gb18030'\n case 'big5':\n case 'big5-hkscs':\n case 'cn-big5':\n case 'csbig5':\n case 'x-x-big5':\n return 'Big5'\n case 'cseucpkdfmtjapanese':\n case 'euc-jp':\n case 'x-euc-jp':\n return 'EUC-JP'\n case 'csiso2022jp':\n case 'iso-2022-jp':\n return 'ISO-2022-JP'\n case 'csshiftjis':\n case 'ms932':\n case 'ms_kanji':\n case 'shift-jis':\n case 'shift_jis':\n case 'sjis':\n case 'windows-31j':\n case 'x-sjis':\n return 'Shift_JIS'\n case 'cseuckr':\n case 'csksc56011987':\n case 'euc-kr':\n case 'iso-ir-149':\n case 'korean':\n case 'ks_c_5601-1987':\n case 'ks_c_5601-1989':\n case 'ksc5601':\n case 'ksc_5601':\n case 'windows-949':\n return 'EUC-KR'\n case 'csiso2022kr':\n case 'hz-gb-2312':\n case 'iso-2022-cn':\n case 'iso-2022-cn-ext':\n case 'iso-2022-kr':\n case 'replacement':\n return 'replacement'\n case 'unicodefffe':\n case 'utf-16be':\n return 'UTF-16BE'\n case 'csunicode':\n case 'iso-10646-ucs-2':\n case 'ucs-2':\n case 'unicode':\n case 'unicodefeff':\n case 'utf-16':\n case 'utf-16le':\n return 'UTF-16LE'\n case 'x-user-defined':\n return 'x-user-defined'\n default: return 'failure'\n }\n}\n\nmodule.exports = {\n getEncoding\n}\n", "'use strict'\n\nconst {\n kState,\n kError,\n kResult,\n kAborted,\n kLastProgressEventFired\n} = require('./symbols')\nconst { ProgressEvent } = require('./progressevent')\nconst { getEncoding } = require('./encoding')\nconst { DOMException } = require('../fetch/constants')\nconst { serializeAMimeType, parseMIMEType } = require('../fetch/dataURL')\nconst { types } = require('util')\nconst { StringDecoder } = require('string_decoder')\nconst { btoa } = require('buffer')\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#readOperation\n * @param {import('./filereader').FileReader} fr\n * @param {import('buffer').Blob} blob\n * @param {string} type\n * @param {string?} encodingName\n */\nfunction readOperation (fr, blob, type, encodingName) {\n // 1. If fr\u2019s state is \"loading\", throw an InvalidStateError\n // DOMException.\n if (fr[kState] === 'loading') {\n throw new DOMException('Invalid state', 'InvalidStateError')\n }\n\n // 2. Set fr\u2019s state to \"loading\".\n fr[kState] = 'loading'\n\n // 3. Set fr\u2019s result to null.\n fr[kResult] = null\n\n // 4. Set fr\u2019s error to null.\n fr[kError] = null\n\n // 5. Let stream be the result of calling get stream on blob.\n /** @type {import('stream/web').ReadableStream} */\n const stream = blob.stream()\n\n // 6. Let reader be the result of getting a reader from stream.\n const reader = stream.getReader()\n\n // 7. Let bytes be an empty byte sequence.\n /** @type {Uint8Array[]} */\n const bytes = []\n\n // 8. Let chunkPromise be the result of reading a chunk from\n // stream with reader.\n let chunkPromise = reader.read()\n\n // 9. Let isFirstChunk be true.\n let isFirstChunk = true\n\n // 10. In parallel, while true:\n // Note: \"In parallel\" just means non-blocking\n // Note 2: readOperation itself cannot be async as double\n // reading the body would then reject the promise, instead\n // of throwing an error.\n ;(async () => {\n while (!fr[kAborted]) {\n // 1. Wait for chunkPromise to be fulfilled or rejected.\n try {\n const { done, value } = await chunkPromise\n\n // 2. If chunkPromise is fulfilled, and isFirstChunk is\n // true, queue a task to fire a progress event called\n // loadstart at fr.\n if (isFirstChunk && !fr[kAborted]) {\n queueMicrotask(() => {\n fireAProgressEvent('loadstart', fr)\n })\n }\n\n // 3. Set isFirstChunk to false.\n isFirstChunk = false\n\n // 4. If chunkPromise is fulfilled with an object whose\n // done property is false and whose value property is\n // a Uint8Array object, run these steps:\n if (!done && types.isUint8Array(value)) {\n // 1. Let bs be the byte sequence represented by the\n // Uint8Array object.\n\n // 2. Append bs to bytes.\n bytes.push(value)\n\n // 3. If roughly 50ms have passed since these steps\n // were last invoked, queue a task to fire a\n // progress event called progress at fr.\n if (\n (\n fr[kLastProgressEventFired] === undefined ||\n Date.now() - fr[kLastProgressEventFired] >= 50\n ) &&\n !fr[kAborted]\n ) {\n fr[kLastProgressEventFired] = Date.now()\n queueMicrotask(() => {\n fireAProgressEvent('progress', fr)\n })\n }\n\n // 4. Set chunkPromise to the result of reading a\n // chunk from stream with reader.\n chunkPromise = reader.read()\n } else if (done) {\n // 5. Otherwise, if chunkPromise is fulfilled with an\n // object whose done property is true, queue a task\n // to run the following steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Let result be the result of package data given\n // bytes, type, blob\u2019s type, and encodingName.\n try {\n const result = packageData(bytes, type, blob.type, encodingName)\n\n // 4. Else:\n\n if (fr[kAborted]) {\n return\n }\n\n // 1. Set fr\u2019s result to result.\n fr[kResult] = result\n\n // 2. Fire a progress event called load at the fr.\n fireAProgressEvent('load', fr)\n } catch (error) {\n // 3. If package data threw an exception error:\n\n // 1. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 2. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n }\n\n // 5. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at the fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n } catch (error) {\n if (fr[kAborted]) {\n return\n }\n\n // 6. Otherwise, if chunkPromise is rejected with an\n // error error, queue a task to run the following\n // steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 3. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n\n // 4. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n }\n })()\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e The name of the event\n * @param {import('./filereader').FileReader} reader\n */\nfunction fireAProgressEvent (e, reader) {\n // The progress event e does not bubble. e.bubbles must be false\n // The progress event e is NOT cancelable. e.cancelable must be false\n const event = new ProgressEvent(e, {\n bubbles: false,\n cancelable: false\n })\n\n reader.dispatchEvent(event)\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#blob-package-data\n * @param {Uint8Array[]} bytes\n * @param {string} type\n * @param {string?} mimeType\n * @param {string?} encodingName\n */\nfunction packageData (bytes, type, mimeType, encodingName) {\n // 1. A Blob has an associated package data algorithm, given\n // bytes, a type, a optional mimeType, and a optional\n // encodingName, which switches on type and runs the\n // associated steps:\n\n switch (type) {\n case 'DataURL': {\n // 1. Return bytes as a DataURL [RFC2397] subject to\n // the considerations below:\n // * Use mimeType as part of the Data URL if it is\n // available in keeping with the Data URL\n // specification [RFC2397].\n // * If mimeType is not available return a Data URL\n // without a media-type. [RFC2397].\n\n // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n // dataurl := \"data:\" [ mediatype ] [ \";base64\" ] \",\" data\n // mediatype := [ type \"/\" subtype ] *( \";\" parameter )\n // data := *urlchar\n // parameter := attribute \"=\" value\n let dataURL = 'data:'\n\n const parsed = parseMIMEType(mimeType || 'application/octet-stream')\n\n if (parsed !== 'failure') {\n dataURL += serializeAMimeType(parsed)\n }\n\n dataURL += ';base64,'\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n dataURL += btoa(decoder.write(chunk))\n }\n\n dataURL += btoa(decoder.end())\n\n return dataURL\n }\n case 'Text': {\n // 1. Let encoding be failure\n let encoding = 'failure'\n\n // 2. If the encodingName is present, set encoding to the\n // result of getting an encoding from encodingName.\n if (encodingName) {\n encoding = getEncoding(encodingName)\n }\n\n // 3. If encoding is failure, and mimeType is present:\n if (encoding === 'failure' && mimeType) {\n // 1. Let type be the result of parse a MIME type\n // given mimeType.\n const type = parseMIMEType(mimeType)\n\n // 2. If type is not failure, set encoding to the result\n // of getting an encoding from type\u2019s parameters[\"charset\"].\n if (type !== 'failure') {\n encoding = getEncoding(type.parameters.get('charset'))\n }\n }\n\n // 4. If encoding is failure, then set encoding to UTF-8.\n if (encoding === 'failure') {\n encoding = 'UTF-8'\n }\n\n // 5. Decode bytes using fallback encoding encoding, and\n // return the result.\n return decode(bytes, encoding)\n }\n case 'ArrayBuffer': {\n // Return a new ArrayBuffer whose contents are bytes.\n const sequence = combineByteSequences(bytes)\n\n return sequence.buffer\n }\n case 'BinaryString': {\n // Return bytes as a binary string, in which every byte\n // is represented by a code unit of equal value [0..255].\n let binaryString = ''\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n binaryString += decoder.write(chunk)\n }\n\n binaryString += decoder.end()\n\n return binaryString\n }\n }\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#decode\n * @param {Uint8Array[]} ioQueue\n * @param {string} encoding\n */\nfunction decode (ioQueue, encoding) {\n const bytes = combineByteSequences(ioQueue)\n\n // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n const BOMEncoding = BOMSniffing(bytes)\n\n let slice = 0\n\n // 2. If BOMEncoding is non-null:\n if (BOMEncoding !== null) {\n // 1. Set encoding to BOMEncoding.\n encoding = BOMEncoding\n\n // 2. Read three bytes from ioQueue, if BOMEncoding is\n // UTF-8; otherwise read two bytes.\n // (Do nothing with those bytes.)\n slice = BOMEncoding === 'UTF-8' ? 3 : 2\n }\n\n // 3. Process a queue with an instance of encoding\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n\n // 4. Return output.\n\n const sliced = bytes.slice(slice)\n return new TextDecoder(encoding).decode(sliced)\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#bom-sniff\n * @param {Uint8Array} ioQueue\n */\nfunction BOMSniffing (ioQueue) {\n // 1. Let BOM be the result of peeking 3 bytes from ioQueue,\n // converted to a byte sequence.\n const [a, b, c] = ioQueue\n\n // 2. For each of the rows in the table below, starting with\n // the first one and going down, if BOM starts with the\n // bytes given in the first column, then return the\n // encoding given in the cell in the second column of that\n // row. Otherwise, return null.\n if (a === 0xEF && b === 0xBB && c === 0xBF) {\n return 'UTF-8'\n } else if (a === 0xFE && b === 0xFF) {\n return 'UTF-16BE'\n } else if (a === 0xFF && b === 0xFE) {\n return 'UTF-16LE'\n }\n\n return null\n}\n\n/**\n * @param {Uint8Array[]} sequences\n */\nfunction combineByteSequences (sequences) {\n const size = sequences.reduce((a, b) => {\n return a + b.byteLength\n }, 0)\n\n let offset = 0\n\n return sequences.reduce((a, b) => {\n a.set(b, offset)\n offset += b.byteLength\n return a\n }, new Uint8Array(size))\n}\n\nmodule.exports = {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n}\n", "'use strict'\n\nconst {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n} = require('./util')\nconst {\n kState,\n kError,\n kResult,\n kEvents,\n kAborted\n} = require('./symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass FileReader extends EventTarget {\n constructor () {\n super()\n\n this[kState] = 'empty'\n this[kResult] = null\n this[kError] = null\n this[kEvents] = {\n loadend: null,\n error: null,\n abort: null,\n load: null,\n progress: null,\n loadstart: null\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n * @param {import('buffer').Blob} blob\n */\n readAsArrayBuffer (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsArrayBuffer(blob) method, when invoked,\n // must initiate a read operation for blob with ArrayBuffer.\n readOperation(this, blob, 'ArrayBuffer')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n * @param {import('buffer').Blob} blob\n */\n readAsBinaryString (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsBinaryString(blob) method, when invoked,\n // must initiate a read operation for blob with BinaryString.\n readOperation(this, blob, 'BinaryString')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsDataText\n * @param {import('buffer').Blob} blob\n * @param {string?} encoding\n */\n readAsText (blob, encoding = undefined) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n if (encoding !== undefined) {\n encoding = webidl.converters.DOMString(encoding)\n }\n\n // The readAsText(blob, encoding) method, when invoked,\n // must initiate a read operation for blob with Text and encoding.\n readOperation(this, blob, 'Text', encoding)\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n * @param {import('buffer').Blob} blob\n */\n readAsDataURL (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsDataURL(blob) method, when invoked, must\n // initiate a read operation for blob with DataURL.\n readOperation(this, blob, 'DataURL')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-abort\n */\n abort () {\n // 1. If this's state is \"empty\" or if this's state is\n // \"done\" set this's result to null and terminate\n // this algorithm.\n if (this[kState] === 'empty' || this[kState] === 'done') {\n this[kResult] = null\n return\n }\n\n // 2. If this's state is \"loading\" set this's state to\n // \"done\" and set this's result to null.\n if (this[kState] === 'loading') {\n this[kState] = 'done'\n this[kResult] = null\n }\n\n // 3. If there are any tasks from this on the file reading\n // task source in an affiliated task queue, then remove\n // those tasks from that task queue.\n this[kAborted] = true\n\n // 4. Terminate the algorithm for the read method being processed.\n // TODO\n\n // 5. Fire a progress event called abort at this.\n fireAProgressEvent('abort', this)\n\n // 6. If this's state is not \"loading\", fire a progress\n // event called loadend at this.\n if (this[kState] !== 'loading') {\n fireAProgressEvent('loadend', this)\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n */\n get readyState () {\n webidl.brandCheck(this, FileReader)\n\n switch (this[kState]) {\n case 'empty': return this.EMPTY\n case 'loading': return this.LOADING\n case 'done': return this.DONE\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n */\n get result () {\n webidl.brandCheck(this, FileReader)\n\n // The result attribute\u2019s getter, when invoked, must return\n // this's result.\n return this[kResult]\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n */\n get error () {\n webidl.brandCheck(this, FileReader)\n\n // The error attribute\u2019s getter, when invoked, must return\n // this's error.\n return this[kError]\n }\n\n get onloadend () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadend\n }\n\n set onloadend (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadend) {\n this.removeEventListener('loadend', this[kEvents].loadend)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadend = fn\n this.addEventListener('loadend', fn)\n } else {\n this[kEvents].loadend = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].error) {\n this.removeEventListener('error', this[kEvents].error)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].error = fn\n this.addEventListener('error', fn)\n } else {\n this[kEvents].error = null\n }\n }\n\n get onloadstart () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadstart\n }\n\n set onloadstart (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadstart) {\n this.removeEventListener('loadstart', this[kEvents].loadstart)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadstart = fn\n this.addEventListener('loadstart', fn)\n } else {\n this[kEvents].loadstart = null\n }\n }\n\n get onprogress () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].progress\n }\n\n set onprogress (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].progress) {\n this.removeEventListener('progress', this[kEvents].progress)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].progress = fn\n this.addEventListener('progress', fn)\n } else {\n this[kEvents].progress = null\n }\n }\n\n get onload () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].load\n }\n\n set onload (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].load) {\n this.removeEventListener('load', this[kEvents].load)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].load = fn\n this.addEventListener('load', fn)\n } else {\n this[kEvents].load = null\n }\n }\n\n get onabort () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].abort\n }\n\n set onabort (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].abort) {\n this.removeEventListener('abort', this[kEvents].abort)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].abort = fn\n this.addEventListener('abort', fn)\n } else {\n this[kEvents].abort = null\n }\n }\n}\n\n// https://w3c.github.io/FileAPI/#dom-filereader-empty\nFileReader.EMPTY = FileReader.prototype.EMPTY = 0\n// https://w3c.github.io/FileAPI/#dom-filereader-loading\nFileReader.LOADING = FileReader.prototype.LOADING = 1\n// https://w3c.github.io/FileAPI/#dom-filereader-done\nFileReader.DONE = FileReader.prototype.DONE = 2\n\nObject.defineProperties(FileReader.prototype, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors,\n readAsArrayBuffer: kEnumerableProperty,\n readAsBinaryString: kEnumerableProperty,\n readAsText: kEnumerableProperty,\n readAsDataURL: kEnumerableProperty,\n abort: kEnumerableProperty,\n readyState: kEnumerableProperty,\n result: kEnumerableProperty,\n error: kEnumerableProperty,\n onloadstart: kEnumerableProperty,\n onprogress: kEnumerableProperty,\n onload: kEnumerableProperty,\n onabort: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onloadend: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'FileReader',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(FileReader, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors\n})\n\nmodule.exports = {\n FileReader\n}\n", "'use strict'\n\nmodule.exports = {\n kConstruct: Symbol('constructable')\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { isValidHeaderName } = require('../fetch/util')\n\n/**\n * @see https://url.spec.whatwg.org/#concept-url-equals\n * @param {URL} A\n * @param {URL} B\n * @param {boolean | undefined} excludeFragment\n * @returns {boolean}\n */\nfunction urlEquals (A, B, excludeFragment = false) {\n const serializedA = URLSerializer(A, excludeFragment)\n\n const serializedB = URLSerializer(B, excludeFragment)\n\n return serializedA === serializedB\n}\n\n/**\n * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262\n * @param {string} header\n */\nfunction fieldValues (header) {\n assert(header !== null)\n\n const values = []\n\n for (let value of header.split(',')) {\n value = value.trim()\n\n if (!value.length) {\n continue\n } else if (!isValidHeaderName(value)) {\n continue\n }\n\n values.push(value)\n }\n\n return values\n}\n\nmodule.exports = {\n urlEquals,\n fieldValues\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { urlEquals, fieldValues: getFieldValues } = require('./util')\nconst { kEnumerableProperty, isDisturbed } = require('../core/util')\nconst { kHeadersList } = require('../core/symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { Response, cloneResponse } = require('../fetch/response')\nconst { Request } = require('../fetch/request')\nconst { kState, kHeaders, kGuard, kRealm } = require('../fetch/symbols')\nconst { fetching } = require('../fetch/index')\nconst { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')\nconst assert = require('assert')\nconst { getGlobalDispatcher } = require('../global')\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation\n * @typedef {Object} CacheBatchOperation\n * @property {'delete' | 'put'} type\n * @property {any} request\n * @property {any} response\n * @property {import('../../types/cache').CacheQueryOptions} options\n */\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list\n * @typedef {[any, any][]} requestResponseList\n */\n\nclass Cache {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list\n * @type {requestResponseList}\n */\n #relevantRequestResponseList\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n\n this.#relevantRequestResponseList = arguments[1]\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n const p = await this.matchAll(request, options)\n\n if (p.length === 0) {\n return\n }\n\n return p[0]\n }\n\n async matchAll (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') {\n // 2.2.1\n r = new Request(request)[kState]\n }\n }\n\n // 5.\n // 5.1\n const responses = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n responses.push(requestResponse[1])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n responses.push(requestResponse[1])\n }\n }\n\n // 5.4\n // We don't implement CORs so we don't need to loop over the responses, yay!\n\n // 5.5.1\n const responseList = []\n\n // 5.5.2\n for (const response of responses) {\n // 5.5.2.1\n const responseObject = new Response(response.body?.source ?? null)\n const body = responseObject[kState].body\n responseObject[kState] = response\n responseObject[kState].body = body\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n\n responseList.push(responseObject)\n }\n\n // 6.\n return Object.freeze(responseList)\n }\n\n async add (request) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })\n\n request = webidl.converters.RequestInfo(request)\n\n // 1.\n const requests = [request]\n\n // 2.\n const responseArrayPromise = this.addAll(requests)\n\n // 3.\n return await responseArrayPromise\n }\n\n async addAll (requests) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })\n\n requests = webidl.converters['sequence<RequestInfo>'](requests)\n\n // 1.\n const responsePromises = []\n\n // 2.\n const requestList = []\n\n // 3.\n for (const request of requests) {\n if (typeof request === 'string') {\n continue\n }\n\n // 3.1\n const r = request[kState]\n\n // 3.2\n if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme when method is not GET.'\n })\n }\n }\n\n // 4.\n /** @type {ReturnType<typeof fetching>[]} */\n const fetchControllers = []\n\n // 5.\n for (const request of requests) {\n // 5.1\n const r = new Request(request)[kState]\n\n // 5.2\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme.'\n })\n }\n\n // 5.4\n r.initiator = 'fetch'\n r.destination = 'subresource'\n\n // 5.5\n requestList.push(r)\n\n // 5.6\n const responsePromise = createDeferredPromise()\n\n // 5.7\n fetchControllers.push(fetching({\n request: r,\n dispatcher: getGlobalDispatcher(),\n processResponse (response) {\n // 1.\n if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Received an invalid status code or the request failed.'\n }))\n } else if (response.headersList.contains('vary')) { // 2.\n // 2.1\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n // 2.2\n for (const fieldValue of fieldValues) {\n // 2.2.1\n if (fieldValue === '*') {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'invalid vary field value'\n }))\n\n for (const controller of fetchControllers) {\n controller.abort()\n }\n\n return\n }\n }\n }\n },\n processResponseEndOfBody (response) {\n // 1.\n if (response.aborted) {\n responsePromise.reject(new DOMException('aborted', 'AbortError'))\n return\n }\n\n // 2.\n responsePromise.resolve(response)\n }\n }))\n\n // 5.8\n responsePromises.push(responsePromise.promise)\n }\n\n // 6.\n const p = Promise.all(responsePromises)\n\n // 7.\n const responses = await p\n\n // 7.1\n const operations = []\n\n // 7.2\n let index = 0\n\n // 7.3\n for (const response of responses) {\n // 7.3.1\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 7.3.2\n request: requestList[index], // 7.3.3\n response // 7.3.4\n }\n\n operations.push(operation) // 7.3.5\n\n index++ // 7.3.6\n }\n\n // 7.5\n const cacheJobPromise = createDeferredPromise()\n\n // 7.6.1\n let errorData = null\n\n // 7.6.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 7.6.3\n queueMicrotask(() => {\n // 7.6.3.1\n if (errorData === null) {\n cacheJobPromise.resolve(undefined)\n } else {\n // 7.6.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n // 7.7\n return cacheJobPromise.promise\n }\n\n async put (request, response) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })\n\n request = webidl.converters.RequestInfo(request)\n response = webidl.converters.Response(response)\n\n // 1.\n let innerRequest = null\n\n // 2.\n if (request instanceof Request) {\n innerRequest = request[kState]\n } else { // 3.\n innerRequest = new Request(request)[kState]\n }\n\n // 4.\n if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Expected an http/s scheme when method is not GET'\n })\n }\n\n // 5.\n const innerResponse = response[kState]\n\n // 6.\n if (innerResponse.status === 206) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got 206 status'\n })\n }\n\n // 7.\n if (innerResponse.headersList.contains('vary')) {\n // 7.1.\n const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))\n\n // 7.2.\n for (const fieldValue of fieldValues) {\n // 7.2.1\n if (fieldValue === '*') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got * vary field value'\n })\n }\n }\n }\n\n // 8.\n if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Response body is locked or disturbed'\n })\n }\n\n // 9.\n const clonedResponse = cloneResponse(innerResponse)\n\n // 10.\n const bodyReadPromise = createDeferredPromise()\n\n // 11.\n if (innerResponse.body != null) {\n // 11.1\n const stream = innerResponse.body.stream\n\n // 11.2\n const reader = stream.getReader()\n\n // 11.3\n readAllBytes(\n reader,\n (bytes) => bodyReadPromise.resolve(bytes),\n (error) => bodyReadPromise.reject(error)\n )\n } else {\n bodyReadPromise.resolve(undefined)\n }\n\n // 12.\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n // 13.\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 14.\n request: innerRequest, // 15.\n response: clonedResponse // 16.\n }\n\n // 17.\n operations.push(operation)\n\n // 19.\n const bytes = await bodyReadPromise.promise\n\n if (clonedResponse.body != null) {\n clonedResponse.body.source = bytes\n }\n\n // 19.1\n const cacheJobPromise = createDeferredPromise()\n\n // 19.2.1\n let errorData = null\n\n // 19.2.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 19.2.3\n queueMicrotask(() => {\n // 19.2.3.1\n if (errorData === null) {\n cacheJobPromise.resolve()\n } else { // 19.2.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n async delete (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n /**\n * @type {Request}\n */\n let r = null\n\n if (request instanceof Request) {\n r = request[kState]\n\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return false\n }\n } else {\n assert(typeof request === 'string')\n\n r = new Request(request)[kState]\n }\n\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'delete',\n request: r,\n options\n }\n\n operations.push(operation)\n\n const cacheJobPromise = createDeferredPromise()\n\n let errorData = null\n let requestResponses\n\n try {\n requestResponses = this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n queueMicrotask(() => {\n if (errorData === null) {\n cacheJobPromise.resolve(!!requestResponses?.length)\n } else {\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys\n * @param {any} request\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @returns {readonly Request[]}\n */\n async keys (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n // 2.1\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') { // 2.2\n r = new Request(request)[kState]\n }\n }\n\n // 4.\n const promise = createDeferredPromise()\n\n // 5.\n // 5.1\n const requests = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n // 5.2.1.1\n requests.push(requestResponse[0])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n // 5.3.2.1\n requests.push(requestResponse[0])\n }\n }\n\n // 5.4\n queueMicrotask(() => {\n // 5.4.1\n const requestList = []\n\n // 5.4.2\n for (const request of requests) {\n const requestObject = new Request('https://a')\n requestObject[kState] = request\n requestObject[kHeaders][kHeadersList] = request.headersList\n requestObject[kHeaders][kGuard] = 'immutable'\n requestObject[kRealm] = request.client\n\n // 5.4.2.1\n requestList.push(requestObject)\n }\n\n // 5.4.3\n promise.resolve(Object.freeze(requestList))\n })\n\n return promise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm\n * @param {CacheBatchOperation[]} operations\n * @returns {requestResponseList}\n */\n #batchCacheOperations (operations) {\n // 1.\n const cache = this.#relevantRequestResponseList\n\n // 2.\n const backupCache = [...cache]\n\n // 3.\n const addedItems = []\n\n // 4.1\n const resultList = []\n\n try {\n // 4.2\n for (const operation of operations) {\n // 4.2.1\n if (operation.type !== 'delete' && operation.type !== 'put') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'operation type does not match \"delete\" or \"put\"'\n })\n }\n\n // 4.2.2\n if (operation.type === 'delete' && operation.response != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'delete operation should not have an associated response'\n })\n }\n\n // 4.2.3\n if (this.#queryCache(operation.request, operation.options, addedItems).length) {\n throw new DOMException('???', 'InvalidStateError')\n }\n\n // 4.2.4\n let requestResponses\n\n // 4.2.5\n if (operation.type === 'delete') {\n // 4.2.5.1\n requestResponses = this.#queryCache(operation.request, operation.options)\n\n // TODO: the spec is wrong, this is needed to pass WPTs\n if (requestResponses.length === 0) {\n return []\n }\n\n // 4.2.5.2\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.5.2.1\n cache.splice(idx, 1)\n }\n } else if (operation.type === 'put') { // 4.2.6\n // 4.2.6.1\n if (operation.response == null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'put operation should have an associated response'\n })\n }\n\n // 4.2.6.2\n const r = operation.request\n\n // 4.2.6.3\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'expected http or https scheme'\n })\n }\n\n // 4.2.6.4\n if (r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'not get method'\n })\n }\n\n // 4.2.6.5\n if (operation.options != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'options must not be defined'\n })\n }\n\n // 4.2.6.6\n requestResponses = this.#queryCache(operation.request)\n\n // 4.2.6.7\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.6.7.1\n cache.splice(idx, 1)\n }\n\n // 4.2.6.8\n cache.push([operation.request, operation.response])\n\n // 4.2.6.10\n addedItems.push([operation.request, operation.response])\n }\n\n // 4.2.7\n resultList.push([operation.request, operation.response])\n }\n\n // 4.3\n return resultList\n } catch (e) { // 5.\n // 5.1\n this.#relevantRequestResponseList.length = 0\n\n // 5.2\n this.#relevantRequestResponseList = backupCache\n\n // 5.3\n throw e\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#query-cache\n * @param {any} requestQuery\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @param {requestResponseList} targetStorage\n * @returns {requestResponseList}\n */\n #queryCache (requestQuery, options, targetStorage) {\n /** @type {requestResponseList} */\n const resultList = []\n\n const storage = targetStorage ?? this.#relevantRequestResponseList\n\n for (const requestResponse of storage) {\n const [cachedRequest, cachedResponse] = requestResponse\n if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {\n resultList.push(requestResponse)\n }\n }\n\n return resultList\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm\n * @param {any} requestQuery\n * @param {any} request\n * @param {any | null} response\n * @param {import('../../types/cache').CacheQueryOptions | undefined} options\n * @returns {boolean}\n */\n #requestMatchesCachedItem (requestQuery, request, response = null, options) {\n // if (options?.ignoreMethod === false && request.method === 'GET') {\n // return false\n // }\n\n const queryURL = new URL(requestQuery.url)\n\n const cachedURL = new URL(request.url)\n\n if (options?.ignoreSearch) {\n cachedURL.search = ''\n\n queryURL.search = ''\n }\n\n if (!urlEquals(queryURL, cachedURL, true)) {\n return false\n }\n\n if (\n response == null ||\n options?.ignoreVary ||\n !response.headersList.contains('vary')\n ) {\n return true\n }\n\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n for (const fieldValue of fieldValues) {\n if (fieldValue === '*') {\n return false\n }\n\n const requestValue = request.headersList.get(fieldValue)\n const queryValue = requestQuery.headersList.get(fieldValue)\n\n // If one has the header and the other doesn't, or one has\n // a different value than the other, return false\n if (requestValue !== queryValue) {\n return false\n }\n }\n\n return true\n }\n}\n\nObject.defineProperties(Cache.prototype, {\n [Symbol.toStringTag]: {\n value: 'Cache',\n configurable: true\n },\n match: kEnumerableProperty,\n matchAll: kEnumerableProperty,\n add: kEnumerableProperty,\n addAll: kEnumerableProperty,\n put: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nconst cacheQueryOptionConverters = [\n {\n key: 'ignoreSearch',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreMethod',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreVary',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)\n\nwebidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([\n ...cacheQueryOptionConverters,\n {\n key: 'cacheName',\n converter: webidl.converters.DOMString\n }\n])\n\nwebidl.converters.Response = webidl.interfaceConverter(Response)\n\nwebidl.converters['sequence<RequestInfo>'] = webidl.sequenceConverter(\n webidl.converters.RequestInfo\n)\n\nmodule.exports = {\n Cache\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { Cache } = require('./cache')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass CacheStorage {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map\n * @type {Map<string, import('./cache').requestResponseList}\n */\n #caches = new Map()\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.MultiCacheQueryOptions(options)\n\n // 1.\n if (options.cacheName != null) {\n // 1.1.1.1\n if (this.#caches.has(options.cacheName)) {\n // 1.1.1.1.1\n const cacheList = this.#caches.get(options.cacheName)\n const cache = new Cache(kConstruct, cacheList)\n\n return await cache.match(request, options)\n }\n } else { // 2.\n // 2.2\n for (const cacheList of this.#caches.values()) {\n const cache = new Cache(kConstruct, cacheList)\n\n // 2.2.1.2\n const response = await cache.match(request, options)\n\n if (response !== undefined) {\n return response\n }\n }\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-has\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async has (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1.1\n // 2.2\n return this.#caches.has(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open\n * @param {string} cacheName\n * @returns {Promise<Cache>}\n */\n async open (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1\n if (this.#caches.has(cacheName)) {\n // await caches.open('v1') !== await caches.open('v1')\n\n // 2.1.1\n const cache = this.#caches.get(cacheName)\n\n // 2.1.1.1\n return new Cache(kConstruct, cache)\n }\n\n // 2.2\n const cache = []\n\n // 2.3\n this.#caches.set(cacheName, cache)\n\n // 2.4\n return new Cache(kConstruct, cache)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async delete (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n return this.#caches.delete(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys\n * @returns {string[]}\n */\n async keys () {\n webidl.brandCheck(this, CacheStorage)\n\n // 2.1\n const keys = this.#caches.keys()\n\n // 2.2\n return [...keys]\n }\n}\n\nObject.defineProperties(CacheStorage.prototype, {\n [Symbol.toStringTag]: {\n value: 'CacheStorage',\n configurable: true\n },\n match: kEnumerableProperty,\n has: kEnumerableProperty,\n open: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nmodule.exports = {\n CacheStorage\n}\n", "'use strict'\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\nconst maxAttributeValueSize = 1024\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\nconst maxNameValuePairSize = 4096\n\nmodule.exports = {\n maxAttributeValueSize,\n maxNameValuePairSize\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kHeadersList } = require('../core/symbols')\n\nfunction isCTLExcludingHtab (value) {\n if (value.length === 0) {\n return false\n }\n\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n (code >= 0x00 || code <= 0x08) ||\n (code >= 0x0A || code <= 0x1F) ||\n code === 0x7F\n ) {\n return false\n }\n }\n}\n\n/**\n CHAR = <any US-ASCII character (octets 0 - 127)>\n token = 1*<any CHAR except CTLs or separators>\n separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n | \",\" | \";\" | \":\" | \"\\\" | <\">\n | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n | \"{\" | \"}\" | SP | HT\n * @param {string} name\n */\nfunction validateCookieName (name) {\n for (const char of name) {\n const code = char.charCodeAt(0)\n\n if (\n (code <= 0x20 || code > 0x7F) ||\n char === '(' ||\n char === ')' ||\n char === '>' ||\n char === '<' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}'\n ) {\n throw new Error('Invalid cookie name')\n }\n }\n}\n\n/**\n cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n ; US-ASCII characters excluding CTLs,\n ; whitespace DQUOTE, comma, semicolon,\n ; and backslash\n * @param {string} value\n */\nfunction validateCookieValue (value) {\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 || // exclude CTLs (0-31)\n code === 0x22 ||\n code === 0x2C ||\n code === 0x3B ||\n code === 0x5C ||\n code > 0x7E // non-ascii\n ) {\n throw new Error('Invalid header value')\n }\n }\n}\n\n/**\n * path-value = <any CHAR except CTLs or \";\">\n * @param {string} path\n */\nfunction validateCookiePath (path) {\n for (const char of path) {\n const code = char.charCodeAt(0)\n\n if (code < 0x21 || char === ';') {\n throw new Error('Invalid cookie path')\n }\n }\n}\n\n/**\n * I have no idea why these values aren't allowed to be honest,\n * but Deno tests these. - Khafra\n * @param {string} domain\n */\nfunction validateCookieDomain (domain) {\n if (\n domain.startsWith('-') ||\n domain.endsWith('.') ||\n domain.endsWith('-')\n ) {\n throw new Error('Invalid cookie domain')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n * @param {number|Date} date\n IMF-fixdate = day-name \",\" SP date1 SP time-of-day SP GMT\n ; fixed length/zone/capitalization subset of the format\n ; see Section 3.3 of [RFC5322]\n\n day-name = %x4D.6F.6E ; \"Mon\", case-sensitive\n / %x54.75.65 ; \"Tue\", case-sensitive\n / %x57.65.64 ; \"Wed\", case-sensitive\n / %x54.68.75 ; \"Thu\", case-sensitive\n / %x46.72.69 ; \"Fri\", case-sensitive\n / %x53.61.74 ; \"Sat\", case-sensitive\n / %x53.75.6E ; \"Sun\", case-sensitive\n date1 = day SP month SP year\n ; e.g., 02 Jun 1982\n\n day = 2DIGIT\n month = %x4A.61.6E ; \"Jan\", case-sensitive\n / %x46.65.62 ; \"Feb\", case-sensitive\n / %x4D.61.72 ; \"Mar\", case-sensitive\n / %x41.70.72 ; \"Apr\", case-sensitive\n / %x4D.61.79 ; \"May\", case-sensitive\n / %x4A.75.6E ; \"Jun\", case-sensitive\n / %x4A.75.6C ; \"Jul\", case-sensitive\n / %x41.75.67 ; \"Aug\", case-sensitive\n / %x53.65.70 ; \"Sep\", case-sensitive\n / %x4F.63.74 ; \"Oct\", case-sensitive\n / %x4E.6F.76 ; \"Nov\", case-sensitive\n / %x44.65.63 ; \"Dec\", case-sensitive\n year = 4DIGIT\n\n GMT = %x47.4D.54 ; \"GMT\", case-sensitive\n\n time-of-day = hour \":\" minute \":\" second\n ; 00:00:00 - 23:59:60 (leap second)\n\n hour = 2DIGIT\n minute = 2DIGIT\n second = 2DIGIT\n */\nfunction toIMFDate (date) {\n if (typeof date === 'number') {\n date = new Date(date)\n }\n\n const days = [\n 'Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'\n ]\n\n const months = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ]\n\n const dayName = days[date.getUTCDay()]\n const day = date.getUTCDate().toString().padStart(2, '0')\n const month = months[date.getUTCMonth()]\n const year = date.getUTCFullYear()\n const hour = date.getUTCHours().toString().padStart(2, '0')\n const minute = date.getUTCMinutes().toString().padStart(2, '0')\n const second = date.getUTCSeconds().toString().padStart(2, '0')\n\n return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n}\n\n/**\n max-age-av = \"Max-Age=\" non-zero-digit *DIGIT\n ; In practice, both expires-av and max-age-av\n ; are limited to dates representable by the\n ; user agent.\n * @param {number} maxAge\n */\nfunction validateCookieMaxAge (maxAge) {\n if (maxAge < 0) {\n throw new Error('Invalid cookie max-age')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n * @param {import('./index').Cookie} cookie\n */\nfunction stringify (cookie) {\n if (cookie.name.length === 0) {\n return null\n }\n\n validateCookieName(cookie.name)\n validateCookieValue(cookie.value)\n\n const out = [`${cookie.name}=${cookie.value}`]\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n if (cookie.name.startsWith('__Secure-')) {\n cookie.secure = true\n }\n\n if (cookie.name.startsWith('__Host-')) {\n cookie.secure = true\n cookie.domain = null\n cookie.path = '/'\n }\n\n if (cookie.secure) {\n out.push('Secure')\n }\n\n if (cookie.httpOnly) {\n out.push('HttpOnly')\n }\n\n if (typeof cookie.maxAge === 'number') {\n validateCookieMaxAge(cookie.maxAge)\n out.push(`Max-Age=${cookie.maxAge}`)\n }\n\n if (cookie.domain) {\n validateCookieDomain(cookie.domain)\n out.push(`Domain=${cookie.domain}`)\n }\n\n if (cookie.path) {\n validateCookiePath(cookie.path)\n out.push(`Path=${cookie.path}`)\n }\n\n if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n out.push(`Expires=${toIMFDate(cookie.expires)}`)\n }\n\n if (cookie.sameSite) {\n out.push(`SameSite=${cookie.sameSite}`)\n }\n\n for (const part of cookie.unparsed) {\n if (!part.includes('=')) {\n throw new Error('Invalid unparsed')\n }\n\n const [key, ...value] = part.split('=')\n\n out.push(`${key.trim()}=${value.join('=')}`)\n }\n\n return out.join('; ')\n}\n\nlet kHeadersListNode\n\nfunction getHeadersList (headers) {\n if (headers[kHeadersList]) {\n return headers[kHeadersList]\n }\n\n if (!kHeadersListNode) {\n kHeadersListNode = Object.getOwnPropertySymbols(headers).find(\n (symbol) => symbol.description === 'headers list'\n )\n\n assert(kHeadersListNode, 'Headers cannot be parsed')\n }\n\n const headersList = headers[kHeadersListNode]\n assert(headersList)\n\n return headersList\n}\n\nmodule.exports = {\n isCTLExcludingHtab,\n stringify,\n getHeadersList\n}\n", "'use strict'\n\nconst { maxNameValuePairSize, maxAttributeValueSize } = require('./constants')\nconst { isCTLExcludingHtab } = require('./util')\nconst { collectASequenceOfCodePointsFast } = require('../fetch/dataURL')\nconst assert = require('assert')\n\n/**\n * @description Parses the field-value attributes of a set-cookie header string.\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} header\n * @returns if the header is invalid, null will be returned\n */\nfunction parseSetCookie (header) {\n // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n // character (CTL characters excluding HTAB): Abort these steps and\n // ignore the set-cookie-string entirely.\n if (isCTLExcludingHtab(header)) {\n return null\n }\n\n let nameValuePair = ''\n let unparsedAttributes = ''\n let name = ''\n let value = ''\n\n // 2. If the set-cookie-string contains a %x3B (\";\") character:\n if (header.includes(';')) {\n // 1. The name-value-pair string consists of the characters up to,\n // but not including, the first %x3B (\";\"), and the unparsed-\n // attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\n const position = { position: 0 }\n\n nameValuePair = collectASequenceOfCodePointsFast(';', header, position)\n unparsedAttributes = header.slice(position.position)\n } else {\n // Otherwise:\n\n // 1. The name-value-pair string consists of all the characters\n // contained in the set-cookie-string, and the unparsed-\n // attributes is the empty string.\n nameValuePair = header\n }\n\n // 3. If the name-value-pair string lacks a %x3D (\"=\") character, then\n // the name string is empty, and the value string is the value of\n // name-value-pair.\n if (!nameValuePair.includes('=')) {\n value = nameValuePair\n } else {\n // Otherwise, the name string consists of the characters up to, but\n // not including, the first %x3D (\"=\") character, and the (possibly\n // empty) value string consists of the characters after the first\n // %x3D (\"=\") character.\n const position = { position: 0 }\n name = collectASequenceOfCodePointsFast(\n '=',\n nameValuePair,\n position\n )\n value = nameValuePair.slice(position.position + 1)\n }\n\n // 4. Remove any leading or trailing WSP characters from the name\n // string and the value string.\n name = name.trim()\n value = value.trim()\n\n // 5. If the sum of the lengths of the name string and the value string\n // is more than 4096 octets, abort these steps and ignore the set-\n // cookie-string entirely.\n if (name.length + value.length > maxNameValuePairSize) {\n return null\n }\n\n // 6. The cookie-name is the name string, and the cookie-value is the\n // value string.\n return {\n name, value, ...parseUnparsedAttributes(unparsedAttributes)\n }\n}\n\n/**\n * Parses the remaining attributes of a set-cookie header\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} unparsedAttributes\n * @param {[Object.<string, unknown>]={}} cookieAttributeList\n */\nfunction parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {\n // 1. If the unparsed-attributes string is empty, skip the rest of\n // these steps.\n if (unparsedAttributes.length === 0) {\n return cookieAttributeList\n }\n\n // 2. Discard the first character of the unparsed-attributes (which\n // will be a %x3B (\";\") character).\n assert(unparsedAttributes[0] === ';')\n unparsedAttributes = unparsedAttributes.slice(1)\n\n let cookieAv = ''\n\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n if (unparsedAttributes.includes(';')) {\n // 1. Consume the characters of the unparsed-attributes up to, but\n // not including, the first %x3B (\";\") character.\n cookieAv = collectASequenceOfCodePointsFast(\n ';',\n unparsedAttributes,\n { position: 0 }\n )\n unparsedAttributes = unparsedAttributes.slice(cookieAv.length)\n } else {\n // Otherwise:\n\n // 1. Consume the remainder of the unparsed-attributes.\n cookieAv = unparsedAttributes\n unparsedAttributes = ''\n }\n\n // Let the cookie-av string be the characters consumed in this step.\n\n let attributeName = ''\n let attributeValue = ''\n\n // 4. If the cookie-av string contains a %x3D (\"=\") character:\n if (cookieAv.includes('=')) {\n // 1. The (possibly empty) attribute-name string consists of the\n // characters up to, but not including, the first %x3D (\"=\")\n // character, and the (possibly empty) attribute-value string\n // consists of the characters after the first %x3D (\"=\")\n // character.\n const position = { position: 0 }\n\n attributeName = collectASequenceOfCodePointsFast(\n '=',\n cookieAv,\n position\n )\n attributeValue = cookieAv.slice(position.position + 1)\n } else {\n // Otherwise:\n\n // 1. The attribute-name string consists of the entire cookie-av\n // string, and the attribute-value string is empty.\n attributeName = cookieAv\n }\n\n // 5. Remove any leading or trailing WSP characters from the attribute-\n // name string and the attribute-value string.\n attributeName = attributeName.trim()\n attributeValue = attributeValue.trim()\n\n // 6. If the attribute-value is longer than 1024 octets, ignore the\n // cookie-av string and return to Step 1 of this algorithm.\n if (attributeValue.length > maxAttributeValueSize) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 7. Process the attribute-name and attribute-value according to the\n // requirements in the following subsections. (Notice that\n // attributes with unrecognized attribute-names are ignored.)\n const attributeNameLowercase = attributeName.toLowerCase()\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n // If the attribute-name case-insensitively matches the string\n // \"Expires\", the user agent MUST process the cookie-av as follows.\n if (attributeNameLowercase === 'expires') {\n // 1. Let the expiry-time be the result of parsing the attribute-value\n // as cookie-date (see Section 5.1.1).\n const expiryTime = new Date(attributeValue)\n\n // 2. If the attribute-value failed to parse as a cookie date, ignore\n // the cookie-av.\n\n cookieAttributeList.expires = expiryTime\n } else if (attributeNameLowercase === 'max-age') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n // If the attribute-name case-insensitively matches the string \"Max-\n // Age\", the user agent MUST process the cookie-av as follows.\n\n // 1. If the first character of the attribute-value is not a DIGIT or a\n // \"-\" character, ignore the cookie-av.\n const charCode = attributeValue.charCodeAt(0)\n\n if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 2. If the remainder of attribute-value contains a non-DIGIT\n // character, ignore the cookie-av.\n if (!/^\\d+$/.test(attributeValue)) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 3. Let delta-seconds be the attribute-value converted to an integer.\n const deltaSeconds = Number(attributeValue)\n\n // 4. Let cookie-age-limit be the maximum age of the cookie (which\n // SHOULD be 400 days or less, see Section 4.1.2.2).\n\n // 5. Set delta-seconds to the smaller of its present value and cookie-\n // age-limit.\n // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)\n\n // 6. If delta-seconds is less than or equal to zero (0), let expiry-\n // time be the earliest representable date and time. Otherwise, let\n // the expiry-time be the current date and time plus delta-seconds\n // seconds.\n // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n // 7. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Max-Age and an attribute-value of expiry-time.\n cookieAttributeList.maxAge = deltaSeconds\n } else if (attributeNameLowercase === 'domain') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n // If the attribute-name case-insensitively matches the string \"Domain\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. Let cookie-domain be the attribute-value.\n let cookieDomain = attributeValue\n\n // 2. If cookie-domain starts with %x2E (\".\"), let cookie-domain be\n // cookie-domain without its leading %x2E (\".\").\n if (cookieDomain[0] === '.') {\n cookieDomain = cookieDomain.slice(1)\n }\n\n // 3. Convert the cookie-domain to lower case.\n cookieDomain = cookieDomain.toLowerCase()\n\n // 4. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Domain and an attribute-value of cookie-domain.\n cookieAttributeList.domain = cookieDomain\n } else if (attributeNameLowercase === 'path') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n // If the attribute-name case-insensitively matches the string \"Path\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. If the attribute-value is empty or if the first character of the\n // attribute-value is not %x2F (\"/\"):\n let cookiePath = ''\n if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n // 1. Let cookie-path be the default-path.\n cookiePath = '/'\n } else {\n // Otherwise:\n\n // 1. Let cookie-path be the attribute-value.\n cookiePath = attributeValue\n }\n\n // 2. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Path and an attribute-value of cookie-path.\n cookieAttributeList.path = cookiePath\n } else if (attributeNameLowercase === 'secure') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n // If the attribute-name case-insensitively matches the string \"Secure\",\n // the user agent MUST append an attribute to the cookie-attribute-list\n // with an attribute-name of Secure and an empty attribute-value.\n\n cookieAttributeList.secure = true\n } else if (attributeNameLowercase === 'httponly') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n // If the attribute-name case-insensitively matches the string\n // \"HttpOnly\", the user agent MUST append an attribute to the cookie-\n // attribute-list with an attribute-name of HttpOnly and an empty\n // attribute-value.\n\n cookieAttributeList.httpOnly = true\n } else if (attributeNameLowercase === 'samesite') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n // If the attribute-name case-insensitively matches the string\n // \"SameSite\", the user agent MUST process the cookie-av as follows:\n\n // 1. Let enforcement be \"Default\".\n let enforcement = 'Default'\n\n const attributeValueLowercase = attributeValue.toLowerCase()\n // 2. If cookie-av's attribute-value is a case-insensitive match for\n // \"None\", set enforcement to \"None\".\n if (attributeValueLowercase.includes('none')) {\n enforcement = 'None'\n }\n\n // 3. If cookie-av's attribute-value is a case-insensitive match for\n // \"Strict\", set enforcement to \"Strict\".\n if (attributeValueLowercase.includes('strict')) {\n enforcement = 'Strict'\n }\n\n // 4. If cookie-av's attribute-value is a case-insensitive match for\n // \"Lax\", set enforcement to \"Lax\".\n if (attributeValueLowercase.includes('lax')) {\n enforcement = 'Lax'\n }\n\n // 5. Append an attribute to the cookie-attribute-list with an\n // attribute-name of \"SameSite\" and an attribute-value of\n // enforcement.\n cookieAttributeList.sameSite = enforcement\n } else {\n cookieAttributeList.unparsed ??= []\n\n cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)\n }\n\n // 8. Return to Step 1 of this algorithm.\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n}\n\nmodule.exports = {\n parseSetCookie,\n parseUnparsedAttributes\n}\n", "'use strict'\n\nconst { parseSetCookie } = require('./parse')\nconst { stringify, getHeadersList } = require('./util')\nconst { webidl } = require('../fetch/webidl')\nconst { Headers } = require('../fetch/headers')\n\n/**\n * @typedef {Object} Cookie\n * @property {string} name\n * @property {string} value\n * @property {Date|number|undefined} expires\n * @property {number|undefined} maxAge\n * @property {string|undefined} domain\n * @property {string|undefined} path\n * @property {boolean|undefined} secure\n * @property {boolean|undefined} httpOnly\n * @property {'Strict'|'Lax'|'None'} sameSite\n * @property {string[]} unparsed\n */\n\n/**\n * @param {Headers} headers\n * @returns {Record<string, string>}\n */\nfunction getCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookie = headers.get('cookie')\n const out = {}\n\n if (!cookie) {\n return out\n }\n\n for (const piece of cookie.split(';')) {\n const [name, ...value] = piece.split('=')\n\n out[name.trim()] = value.join('=')\n }\n\n return out\n}\n\n/**\n * @param {Headers} headers\n * @param {string} name\n * @param {{ path?: string, domain?: string }|undefined} attributes\n * @returns {void}\n */\nfunction deleteCookie (headers, name, attributes) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n name = webidl.converters.DOMString(name)\n attributes = webidl.converters.DeleteCookieAttributes(attributes)\n\n // Matches behavior of\n // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n setCookie(headers, {\n name,\n value: '',\n expires: new Date(0),\n ...attributes\n })\n}\n\n/**\n * @param {Headers} headers\n * @returns {Cookie[]}\n */\nfunction getSetCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookies = getHeadersList(headers).cookies\n\n if (!cookies) {\n return []\n }\n\n // In older versions of undici, cookies is a list of name:value.\n return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair))\n}\n\n/**\n * @param {Headers} headers\n * @param {Cookie} cookie\n * @returns {void}\n */\nfunction setCookie (headers, cookie) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n cookie = webidl.converters.Cookie(cookie)\n\n const str = stringify(cookie)\n\n if (str) {\n headers.append('Set-Cookie', stringify(cookie))\n }\n}\n\nwebidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n }\n])\n\nwebidl.converters.Cookie = webidl.dictionaryConverter([\n {\n converter: webidl.converters.DOMString,\n key: 'name'\n },\n {\n converter: webidl.converters.DOMString,\n key: 'value'\n },\n {\n converter: webidl.nullableConverter((value) => {\n if (typeof value === 'number') {\n return webidl.converters['unsigned long long'](value)\n }\n\n return new Date(value)\n }),\n key: 'expires',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters['long long']),\n key: 'maxAge',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'secure',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'httpOnly',\n defaultValue: null\n },\n {\n converter: webidl.converters.USVString,\n key: 'sameSite',\n allowedValues: ['Strict', 'Lax', 'None']\n },\n {\n converter: webidl.sequenceConverter(webidl.converters.DOMString),\n key: 'unparsed',\n defaultValue: []\n }\n])\n\nmodule.exports = {\n getCookies,\n deleteCookie,\n getSetCookies,\n setCookie\n}\n", "'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nmodule.exports = {\n uid,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer\n}\n", "'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\nconst { MessagePort } = require('worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' })\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' })\n\n super(type, eventInitDict)\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence<MessagePort>'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence<MessagePort>'],\n get defaultValue () {\n return []\n }\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent\n}\n", "'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { MessageEvent, ErrorEvent } = require('./events')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventConstructor = Event, eventInitDict) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event\u2019s type attribute to e.\n const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = new Uint8Array(data).buffer\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object\u2019s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, MessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (const char of protocol) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 ||\n code > 0x7E ||\n char === '(' ||\n char === ')' ||\n char === '<' ||\n char === '>' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}' ||\n code === 32 || // SP\n code === 9 // HT\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n fireEvent('error', ws, ErrorEvent, {\n error: new Error(reason)\n })\n }\n}\n\nmodule.exports = {\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived\n}\n", "'use strict'\n\nconst { randomBytes, createHash } = require('crypto')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { uid, states } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection } = require('./util')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers } = require('../fetch/headers')\nconst { getGlobalDispatcher } = require('../global')\nconst { kHeadersList } = require('../core/symbols')\n\nconst channels = {}\nchannels.open = diagnosticsChannel.channel('undici:websocket:open')\nchannels.close = diagnosticsChannel.channel('undici:websocket:close')\nchannels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error')\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any) => void} onEstablish\n * @param {Partial<import('../../types/websocket').WebSocketInit>} options\n */\nfunction establishWebSocketConnection (url, protocols, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url\u2019s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = new Headers(options.headers)[kHeadersList]\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request\u2019s header list.\n // 4. Append (`Connection`, `Upgrade`) to request\u2019s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request\u2019s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n // TODO: enable once permessage-deflate is supported\n const permessageDeflate = '' // 'permessage-deflate; 15'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request\u2019s header list.\n // request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher ?? getGlobalDispatcher(),\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response\u2019s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n\n if (secExtension !== null && secExtension !== permessageDeflate) {\n failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.')\n return\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response)\n }\n })\n\n return controller\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kSentClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n fireEvent('close', ws, CloseEvent, {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection\n}\n", "'use strict'\n\nconst { randomBytes } = require('crypto')\nconst { maxUnsigned16Bit } = require('./constants')\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n this.maskKey = randomBytes(4)\n }\n\n createFrame (opcode) {\n const bodyLength = this.frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */\n buffer[offset - 4] = this.maskKey[0]\n buffer[offset - 3] = this.maskKey[1]\n buffer[offset - 2] = this.maskKey[2]\n buffer[offset - 1] = this.maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; i++) {\n buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n", "'use strict'\n\nconst { Writable } = require('stream')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { parserStates, opcodes, states, emptyBuffer } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>\n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nconst channels = {}\nchannels.ping = diagnosticsChannel.channel('undici:websocket:ping')\nchannels.pong = diagnosticsChannel.channel('undici:websocket:pong')\n\nclass ByteParser extends Writable {\n #buffers = []\n #byteOffset = 0\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n constructor (ws) {\n super()\n\n this.ws = ws\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n\n this.run(callback)\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (true) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.fin = (buffer[0] & 0x80) !== 0\n this.#info.opcode = buffer[0] & 0x0F\n\n // If we receive a fragmented message, we use the type of the first\n // frame to parse the full message as binary/text, when it's terminated\n this.#info.originalOpcode ??= this.#info.opcode\n\n this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION\n\n if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n const payloadLength = buffer[1] & 0x7F\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (this.#info.fragmented && payloadLength > 125) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n } else if (\n (this.#info.opcode === opcodes.PING ||\n this.#info.opcode === opcodes.PONG ||\n this.#info.opcode === opcodes.CLOSE) &&\n payloadLength > 125\n ) {\n // Control frames can have a payload length of 125 bytes MAX\n failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.')\n return\n } else if (this.#info.opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return\n }\n\n const body = this.consume(payloadLength)\n\n this.#info.closeInfo = this.parseCloseBody(false, body)\n\n if (!this.ws[kSentClose]) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n const body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = true\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n this.end()\n\n return\n } else if (this.#info.opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n const body = this.consume(payloadLength)\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n\n this.#state = parserStates.INFO\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n } else if (this.#info.opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n const body = this.consume(payloadLength)\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n\n // 2^31 is the maxinimum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n const lower = buffer.readUInt32BE(4)\n\n this.#info.payloadLength = (upper << 8) + lower\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n // If there is still more data in this chunk that needs to be read\n return callback()\n } else if (this.#byteOffset >= this.#info.payloadLength) {\n // If the server sent multiple frames in a single chunk\n\n const body = this.consume(this.#info.payloadLength)\n\n this.#fragments.push(body)\n\n // If the frame is unfragmented, or a fragmented frame was terminated,\n // a message was received\n if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n const fullMessage = Buffer.concat(this.#fragments)\n\n websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage)\n\n this.#info = {}\n this.#fragments.length = 0\n }\n\n this.#state = parserStates.INFO\n }\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n break\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer|null}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n return null\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n parseCloseBody (onlyCode, data) {\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (onlyCode) {\n if (!isValidStatusCode(code)) {\n return null\n }\n\n return { code }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return null\n }\n\n try {\n // TODO: optimize this\n reason = new TextDecoder('utf-8', { fatal: true }).decode(reason)\n } catch {\n return null\n }\n\n return { code, reason }\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { DOMException } = require('../fetch/constants')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require('./constants')\nconst {\n kWebSocketURL,\n kReadyState,\n kController,\n kBinaryType,\n kResponse,\n kSentClose,\n kByteParser\n} = require('./symbols')\nconst { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require('./util')\nconst { establishWebSocketConnection } = require('./connection')\nconst { WebsocketFrameSend } = require('./frame')\nconst { ByteParser } = require('./receiver')\nconst { kEnumerableProperty, isBlobLike } = require('../core/util')\nconst { getGlobalDispatcher } = require('../global')\nconst { types } = require('util')\n\nlet experimentalWarned = false\n\n// https://websockets.spec.whatwg.org/#interface-definition\nclass WebSocket extends EventTarget {\n #events = {\n open: null,\n error: null,\n close: null,\n message: null\n }\n\n #bufferedAmount = 0\n #protocol = ''\n #extensions = ''\n\n /**\n * @param {string} url\n * @param {string|string[]} protocols\n */\n constructor (url, protocols = []) {\n super()\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' })\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('WebSockets are experimental, expect them to change at any time.', {\n code: 'UNDICI-WS'\n })\n }\n\n const options = webidl.converters['DOMString or sequence<DOMString> or WebSocketInit'](protocols)\n\n url = webidl.converters.USVString(url)\n protocols = options.protocols\n\n // 1. Let urlRecord be the result of applying the URL parser to url.\n let urlRecord\n\n try {\n urlRecord = new URL(url)\n } catch (e) {\n // 2. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 3. If urlRecord\u2019s scheme is not \"ws\" or \"wss\", then throw a\n // \"SyntaxError\" DOMException.\n if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n throw new DOMException(\n `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,\n 'SyntaxError'\n )\n }\n\n // 4. If urlRecord\u2019s fragment is non-null, then throw a \"SyntaxError\"\n // DOMException.\n if (urlRecord.hash) {\n throw new DOMException('Got fragment', 'SyntaxError')\n }\n\n // 5. If protocols is a string, set protocols to a sequence consisting\n // of just that string.\n if (typeof protocols === 'string') {\n protocols = [protocols]\n }\n\n // 6. If any of the values in protocols occur more than once or otherwise\n // fail to match the requirements for elements that comprise the value\n // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n // protocol, then throw a \"SyntaxError\" DOMException.\n if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n // 7. Set this's url to urlRecord.\n this[kWebSocketURL] = urlRecord\n\n // 8. Let client be this's relevant settings object.\n\n // 9. Run this step in parallel:\n\n // 1. Establish a WebSocket connection given urlRecord, protocols,\n // and client.\n this[kController] = establishWebSocketConnection(\n urlRecord,\n protocols,\n this,\n (response) => this.#onConnectionEstablished(response),\n options\n )\n\n // Each WebSocket object has an associated ready state, which is a\n // number representing the state of the connection. Initially it must\n // be CONNECTING (0).\n this[kReadyState] = WebSocket.CONNECTING\n\n // The extensions attribute must initially return the empty string.\n\n // The protocol attribute must initially return the empty string.\n\n // Each WebSocket object has an associated binary type, which is a\n // BinaryType. Initially it must be \"blob\".\n this[kBinaryType] = 'blob'\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n * @param {number|undefined} code\n * @param {string|undefined} reason\n */\n close (code = undefined, reason = undefined) {\n webidl.brandCheck(this, WebSocket)\n\n if (code !== undefined) {\n code = webidl.converters['unsigned short'](code, { clamp: true })\n }\n\n if (reason !== undefined) {\n reason = webidl.converters.USVString(reason)\n }\n\n // 1. If code is present, but is neither an integer equal to 1000 nor an\n // integer in the range 3000 to 4999, inclusive, throw an\n // \"InvalidAccessError\" DOMException.\n if (code !== undefined) {\n if (code !== 1000 && (code < 3000 || code > 4999)) {\n throw new DOMException('invalid code', 'InvalidAccessError')\n }\n }\n\n let reasonByteLength = 0\n\n // 2. If reason is present, then run these substeps:\n if (reason !== undefined) {\n // 1. Let reasonBytes be the result of encoding reason.\n // 2. If reasonBytes is longer than 123 bytes, then throw a\n // \"SyntaxError\" DOMException.\n reasonByteLength = Buffer.byteLength(reason)\n\n if (reasonByteLength > 123) {\n throw new DOMException(\n `Reason must be less than 123 bytes; received ${reasonByteLength}`,\n 'SyntaxError'\n )\n }\n }\n\n // 3. Run the first matching steps from the following list:\n if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(this)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(this, 'Connection was closed before it was established.')\n this[kReadyState] = WebSocket.CLOSING\n } else if (!isClosing(this)) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE), (err) => {\n if (!err) {\n this[kSentClose] = true\n }\n })\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n this[kReadyState] = WebSocket.CLOSING\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n */\n send (data) {\n webidl.brandCheck(this, WebSocket)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' })\n\n data = webidl.converters.WebSocketSendData(data)\n\n // 1. If this's ready state is CONNECTING, then throw an\n // \"InvalidStateError\" DOMException.\n if (this[kReadyState] === WebSocket.CONNECTING) {\n throw new DOMException('Sent before connected.', 'InvalidStateError')\n }\n\n // 2. Run the appropriate set of steps from the following list:\n // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n if (!isEstablished(this) || isClosing(this)) {\n return\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n // If data is a string\n if (typeof data === 'string') {\n // If the WebSocket connection is established and the WebSocket\n // closing handshake has not yet started, then the user agent\n // must send a WebSocket Message comprised of the data argument\n // using a text frame opcode; if the data cannot be sent, e.g.\n // because it would need to be buffered but the buffer is full,\n // the user agent must flag the WebSocket as full and then close\n // the WebSocket connection. Any invocation of this method with a\n // string argument that does not throw an exception must increase\n // the bufferedAmount attribute by the number of bytes needed to\n // express the argument as UTF-8.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.TEXT)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (types.isArrayBuffer(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need\n // to be buffered but the buffer is full, the user agent must flag\n // the WebSocket as full and then close the WebSocket connection.\n // The data to be sent is the data stored in the buffer described\n // by the ArrayBuffer object. Any invocation of this method with an\n // ArrayBuffer argument that does not throw an exception must\n // increase the bufferedAmount attribute by the length of the\n // ArrayBuffer in bytes.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (ArrayBuffer.isView(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The\n // data to be sent is the data stored in the section of the buffer\n // described by the ArrayBuffer object that data references. Any\n // invocation of this method with this kind of argument that does\n // not throw an exception must increase the bufferedAmount attribute\n // by the length of data\u2019s buffer in bytes.\n\n const ab = Buffer.from(data, data.byteOffset, data.byteLength)\n\n const frame = new WebsocketFrameSend(ab)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += ab.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= ab.byteLength\n })\n } else if (isBlobLike(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The data\n // to be sent is the raw data represented by the Blob object. Any\n // invocation of this method with a Blob argument that does not throw\n // an exception must increase the bufferedAmount attribute by the size\n // of the Blob object\u2019s raw data, in bytes.\n\n const frame = new WebsocketFrameSend()\n\n data.arrayBuffer().then((ab) => {\n const value = Buffer.from(ab)\n frame.frameData = value\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n })\n }\n }\n\n get readyState () {\n webidl.brandCheck(this, WebSocket)\n\n // The readyState getter steps are to return this's ready state.\n return this[kReadyState]\n }\n\n get bufferedAmount () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#bufferedAmount\n }\n\n get url () {\n webidl.brandCheck(this, WebSocket)\n\n // The url getter steps are to return this's url, serialized.\n return URLSerializer(this[kWebSocketURL])\n }\n\n get extensions () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#extensions\n }\n\n get protocol () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#protocol\n }\n\n get onopen () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.open\n }\n\n set onopen (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n\n get onclose () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.close\n }\n\n set onclose (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.close) {\n this.removeEventListener('close', this.#events.close)\n }\n\n if (typeof fn === 'function') {\n this.#events.close = fn\n this.addEventListener('close', fn)\n } else {\n this.#events.close = null\n }\n }\n\n get onmessage () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.message\n }\n\n set onmessage (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get binaryType () {\n webidl.brandCheck(this, WebSocket)\n\n return this[kBinaryType]\n }\n\n set binaryType (type) {\n webidl.brandCheck(this, WebSocket)\n\n if (type !== 'blob' && type !== 'arraybuffer') {\n this[kBinaryType] = 'blob'\n } else {\n this[kBinaryType] = type\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n */\n #onConnectionEstablished (response) {\n // processResponse is called when the \"response\u2019s header list has been received and initialized.\"\n // once this happens, the connection is open\n this[kResponse] = response\n\n const parser = new ByteParser(this)\n parser.on('drain', function onParserDrain () {\n this.ws[kResponse].socket.resume()\n })\n\n response.socket.ws = this\n this[kByteParser] = parser\n\n // 1. Change the ready state to OPEN (1).\n this[kReadyState] = states.OPEN\n\n // 2. Change the extensions attribute\u2019s value to the extensions in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n const extensions = response.headersList.get('sec-websocket-extensions')\n\n if (extensions !== null) {\n this.#extensions = extensions\n }\n\n // 3. Change the protocol attribute\u2019s value to the subprotocol in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n const protocol = response.headersList.get('sec-websocket-protocol')\n\n if (protocol !== null) {\n this.#protocol = protocol\n }\n\n // 4. Fire an event named open at the WebSocket object.\n fireEvent('open', this)\n }\n}\n\n// https://websockets.spec.whatwg.org/#dom-websocket-connecting\nWebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING\n// https://websockets.spec.whatwg.org/#dom-websocket-open\nWebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN\n// https://websockets.spec.whatwg.org/#dom-websocket-closing\nWebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING\n// https://websockets.spec.whatwg.org/#dom-websocket-closed\nWebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED\n\nObject.defineProperties(WebSocket.prototype, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors,\n url: kEnumerableProperty,\n readyState: kEnumerableProperty,\n bufferedAmount: kEnumerableProperty,\n onopen: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onclose: kEnumerableProperty,\n close: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n binaryType: kEnumerableProperty,\n send: kEnumerableProperty,\n extensions: kEnumerableProperty,\n protocol: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'WebSocket',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(WebSocket, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors\n})\n\nwebidl.converters['sequence<DOMString>'] = webidl.sequenceConverter(\n webidl.converters.DOMString\n)\n\nwebidl.converters['DOMString or sequence<DOMString>'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n return webidl.converters['sequence<DOMString>'](V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// This implements the propsal made in https://github.com/whatwg/websockets/issues/42\nwebidl.converters.WebSocketInit = webidl.dictionaryConverter([\n {\n key: 'protocols',\n converter: webidl.converters['DOMString or sequence<DOMString>'],\n get defaultValue () {\n return []\n }\n },\n {\n key: 'dispatcher',\n converter: (V) => V,\n get defaultValue () {\n return getGlobalDispatcher()\n }\n },\n {\n key: 'headers',\n converter: webidl.nullableConverter(webidl.converters.HeadersInit)\n }\n])\n\nwebidl.converters['DOMString or sequence<DOMString> or WebSocketInit'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) {\n return webidl.converters.WebSocketInit(V)\n }\n\n return { protocols: webidl.converters['DOMString or sequence<DOMString>'](V) }\n}\n\nwebidl.converters.WebSocketSendData = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n return webidl.converters.BufferSource(V)\n }\n }\n\n return webidl.converters.USVString(V)\n}\n\nmodule.exports = {\n WebSocket\n}\n", "'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nlet hasCrypto\ntry {\n require('crypto')\n hasCrypto = true\n} catch {\n hasCrypto = false\n}\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n\n try {\n return await fetchImpl(...arguments)\n } catch (err) {\n Error.captureStackTrace(err, this)\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n module.exports.FileReader = require('./lib/fileapi/filereader').FileReader\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n\n const { CacheStorage } = require('./lib/cache/cachestorage')\n const { kConstruct } = require('./lib/cache/symbols')\n\n // Cache & CacheStorage are tightly coupled with fetch. Even if it may run\n // in an older version of Node, it doesn't have any use without fetch.\n module.exports.caches = new CacheStorage(kConstruct)\n}\n\nif (util.nodeMajor >= 16) {\n const { deleteCookie, getCookies, getSetCookies, setCookie } = require('./lib/cookies')\n\n module.exports.deleteCookie = deleteCookie\n module.exports.getCookies = getCookies\n module.exports.getSetCookies = getSetCookies\n module.exports.setCookie = setCookie\n\n const { parseMIMEType, serializeAMimeType } = require('./lib/fetch/dataURL')\n\n module.exports.parseMIMEType = parseMIMEType\n module.exports.serializeAMimeType = serializeAMimeType\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n const { WebSocket } = require('./lib/websocket/websocket')\n\n module.exports.WebSocket = WebSocket\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n", null, null, null, "'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n", "'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n", "'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n", "'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n", "'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n", "'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n", "'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n", "'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n", "var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n", "var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL());\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230\u00A75.3.1: When making a request directly to an origin server, [\u2026]\n // a client MUST send only the absolute path [\u2026] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, [\u2026]\n // a client MUST send the target URI in absolute-form [\u2026].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231\u00A76.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231\u00A76.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231\u00A76.4: Automatic redirection needs to done with\n // care for methods not known to be safe, [\u2026]\n // RFC7231\u00A76.4.2\u20133: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231\u00A76.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource [\u2026]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) [\u2026]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n /* istanbul ignore else */\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n /* istanbul ignore next */\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n", "{\n \"name\": \"axios\",\n \"version\": \"0.21.4\",\n \"description\": \"Promise based HTTP client for the browser and node.js\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"test\": \"grunt test\",\n \"start\": \"node ./sandbox/server.js\",\n \"build\": \"NODE_ENV=production grunt build\",\n \"preversion\": \"npm test\",\n \"version\": \"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json\",\n \"postversion\": \"git push && git push --tags\",\n \"examples\": \"node ./examples/server.js\",\n \"coveralls\": \"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\",\n \"fix\": \"eslint --fix lib/**/*.js\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/axios/axios.git\"\n },\n \"keywords\": [\n \"xhr\",\n \"http\",\n \"ajax\",\n \"promise\",\n \"node\"\n ],\n \"author\": \"Matt Zabriskie\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/axios/axios/issues\"\n },\n \"homepage\": \"https://axios-http.com\",\n \"devDependencies\": {\n \"coveralls\": \"^3.0.0\",\n \"es6-promise\": \"^4.2.4\",\n \"grunt\": \"^1.3.0\",\n \"grunt-banner\": \"^0.6.0\",\n \"grunt-cli\": \"^1.2.0\",\n \"grunt-contrib-clean\": \"^1.1.0\",\n \"grunt-contrib-watch\": \"^1.0.0\",\n \"grunt-eslint\": \"^23.0.0\",\n \"grunt-karma\": \"^4.0.0\",\n \"grunt-mocha-test\": \"^0.13.3\",\n \"grunt-ts\": \"^6.0.0-beta.19\",\n \"grunt-webpack\": \"^4.0.2\",\n \"istanbul-instrumenter-loader\": \"^1.0.0\",\n \"jasmine-core\": \"^2.4.1\",\n \"karma\": \"^6.3.2\",\n \"karma-chrome-launcher\": \"^3.1.0\",\n \"karma-firefox-launcher\": \"^2.1.0\",\n \"karma-jasmine\": \"^1.1.1\",\n \"karma-jasmine-ajax\": \"^0.1.13\",\n \"karma-safari-launcher\": \"^1.0.0\",\n \"karma-sauce-launcher\": \"^4.3.6\",\n \"karma-sinon\": \"^1.0.5\",\n \"karma-sourcemap-loader\": \"^0.3.8\",\n \"karma-webpack\": \"^4.0.2\",\n \"load-grunt-tasks\": \"^3.5.2\",\n \"minimist\": \"^1.2.0\",\n \"mocha\": \"^8.2.1\",\n \"sinon\": \"^4.5.0\",\n \"terser-webpack-plugin\": \"^4.2.3\",\n \"typescript\": \"^4.0.5\",\n \"url-search-params\": \"^0.10.0\",\n \"webpack\": \"^4.44.2\",\n \"webpack-dev-server\": \"^3.11.0\"\n },\n \"browser\": {\n \"./lib/adapters/http.js\": \"./lib/adapters/xhr.js\"\n },\n \"jsdelivr\": \"dist/axios.min.js\",\n \"unpkg\": \"dist/axios.min.js\",\n \"typings\": \"./index.d.ts\",\n \"dependencies\": {\n \"follow-redirects\": \"^1.14.0\"\n },\n \"bundlesize\": [\n {\n \"path\": \"./dist/axios.min.js\",\n \"threshold\": \"5kB\"\n }\n ]\n}\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildFullPath = require('../core/buildFullPath');\nvar buildURL = require('./../helpers/buildURL');\nvar http = require('http');\nvar https = require('https');\nvar httpFollow = require('follow-redirects').http;\nvar httpsFollow = require('follow-redirects').https;\nvar url = require('url');\nvar zlib = require('zlib');\nvar pkg = require('./../../package.json');\nvar createError = require('../core/createError');\nvar enhanceError = require('../core/enhanceError');\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nmodule.exports = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var resolve = function resolve(value) {\n resolvePromise(value);\n };\n var reject = function reject(value) {\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('User-Agent' in headers || 'user-agent' in headers) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers['User-Agent'] && !headers['user-agent']) {\n delete headers['User-Agent'];\n delete headers['user-agent'];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + pkg.version;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers['Content-Length'] = data.length;\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url.parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth) {\n delete headers.Authorization;\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url.parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n var responseData = Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n\n response.data = responseData;\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n reject(createError(\n 'timeout of ' + timeout + 'ms exceeded',\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(cancel);\n });\n }\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n", "'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n", "'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n", "'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n", "'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n", "'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n", "'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n", "module.exports = require('./lib/axios');", null, null, null, null, null, null, "import { Clipboard, showHUD } from \"@raycast/api\";\nimport { baseInstantTranslate } from \"./instant-translate\";\n\nexport default async function InstantTranslatePaste() {\n await baseInstantTranslate(async (translatedText) => {\n await Clipboard.paste(translatedText);\n await showHUD(`\u2713 Pasted`);\n });\n}\n", "import { getPreferenceValues, getSelectedText, showHUD } from \"@raycast/api\";\nimport { simpleTranslate } from \"./simple-translate\";\nimport { LanguageCode } from \"./languages\";\n\n// Reading time per character based on average reading speed of ~200 words per minute\nconst READING_TIME_PER_CHAR_MS = 150;\n\n// HUD display constants\nconst MIN_HUD_DURATION_MS = 2000;\nconst MAX_HUD_DURATION_MS = 15000;\nconst HUD_REFRESH_INTERVAL_MS = 1000;\n\n// Helper function to show HUD for a longer duration based on text length\nexport async function showExtendedHUD(message: string, minDurationMs = MIN_HUD_DURATION_MS) {\n await showHUD(message);\n\n // Calculate duration based on message length\n const calculatedDuration = Math.max(minDurationMs, message.length * READING_TIME_PER_CHAR_MS);\n\n // Cap maximum duration to avoid excessive waiting\n const finalDuration = Math.min(calculatedDuration, MAX_HUD_DURATION_MS);\n\n // Show the same message multiple times with a delay to extend visibility\n const iterations = Math.floor(finalDuration / HUD_REFRESH_INTERVAL_MS);\n\n for (let i = 0; i < iterations; i++) {\n await new Promise((resolve) => setTimeout(resolve, HUD_REFRESH_INTERVAL_MS));\n await showHUD(message);\n }\n}\n\n// Base function for instant translation logic\nexport async function baseInstantTranslate(onTranslated: (translatedText: string) => Promise<void>) {\n try {\n const preferences = getPreferenceValues<ExtensionPreferences>();\n const targetLanguage = preferences.lang2; // Use secondary language as target\n const sourceLanguage = preferences.lang1;\n const proxy = preferences.proxy;\n\n // Get the selected text from any active application\n const selectedText = await getSelectedText().catch((error) => {\n console.error(\"Error getting selected text:\", error);\n return \"\";\n });\n\n if (!selectedText || selectedText.trim().length === 0) {\n await showHUD(\"No text selected. Please select text to translate.\");\n return;\n }\n\n await showHUD(\"Translating...\");\n\n const result = await simpleTranslate(selectedText, {\n langFrom: sourceLanguage as LanguageCode,\n langTo: [targetLanguage as LanguageCode],\n proxy: proxy,\n });\n\n if (result && result.translatedText) {\n const translation = result.translatedText;\n await onTranslated(translation);\n } else {\n throw new Error(\"Translation not found in response\");\n }\n } catch (error) {\n console.error(\"Translation error:\", error);\n await showHUD(\"Translation failed. Please try again.\");\n }\n}\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\nimport querystring from \"querystring\";\nimport { request, ProxyAgent } from \"undici\";\nimport { TranslateOption, TranslateResponse } from \"./types\";\nimport { isSupported, getISOCode } from \"./languages\";\nimport { tokenGenerator } from \"./tokenGenerator\";\n\n/**\n * @function translate\n * @param {String} text The text to be translated.\n * @param {TranslateOption} options The options object for the translator.\n * @returns {TranslateResponse} The result containing the translation.\n */\nexport async function translate(text: string, options?: TranslateOption): Promise<TranslateResponse> {\n if (typeof options !== \"object\") options = {};\n text = String(text);\n\n // Check if a lanugage is in supported; if not, throw an error object.\n let error: Error | null = null;\n [ options.from, options.to ].forEach((lang) => {\n if (lang && !isSupported(lang)) {\n error = new Error();\n error.message = `The language '${lang}' is not supported.`;\n }\n });\n if (error) throw error;\n\n // If options object doesn\"t have \"from\" language, set it to \"auto\".\n if (!Object.prototype.hasOwnProperty.call(options, \"from\")) options.from = \"auto\";\n // If options object doesn\"t have \"to\" language, set it to \"en\".\n if (!Object.prototype.hasOwnProperty.call(options, \"to\")) options.to = \"en\";\n // If options object has a \"raw\" property evaluating to true, set it to true.\n options.raw = Boolean(options.raw);\n\n // Get ISO 639-1 codes for the languages.\n options.from = getISOCode(options.from);\n options.to = getISOCode(options.to);\n\n // Generate Google Translate token for the text to be translated.\n let token: any = await tokenGenerator(text);\n\n // URL & query string required by Google Translate.\n let baseUrl = \"https://translate.google.com/translate_a/single\";\n let data: any = {\n client: \"gtx\",\n sl: options.from,\n tl: options.to,\n hl: options.to,\n dt: [ \"at\", \"bd\", \"ex\", \"ld\", \"md\", \"qca\", \"rw\", \"rm\", \"ss\", \"t\" ],\n ie: \"UTF-8\",\n oe: \"UTF-8\",\n otf: 1,\n ssel: 0,\n tsel: 0,\n kc: 7,\n q: text,\n [token.name]: token.value\n };\n\n // Append query string to the request URL.\n let url = `${baseUrl}?${querystring.stringify(data)}`;\n\n let requestOptions: any;\n let requestUrl = url;\n // If request URL is greater than 2048 characters, use POST method.\n if (url.length > 2048) {\n delete data.q;\n requestUrl = `${baseUrl}?${querystring.stringify(data)}`;\n requestOptions = {\n method: \"POST\",\n body: new URLSearchParams({ q: text }).toString(),\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\",\n },\n };\n if (options.proxy) {\n requestOptions.dispatcher = new ProxyAgent(options.proxy);\n }\n }\n else {\n if (options.proxy) {\n requestOptions = { dispatcher: new ProxyAgent(options.proxy) };\n }\n }\n\n // Request translation from Google Translate.\n let response = await request(requestUrl, requestOptions);\n let body: any = await response.body.json();\n\n let result: TranslateResponse = {\n text: \"\",\n from: {\n language: {\n didYouMean: false,\n iso: \"\"\n },\n text: {\n autoCorrected: false,\n value: \"\",\n didYouMean: false\n }\n },\n raw: \"\"\n };\n\n // If user requested a raw output, add the raw response to the result\n if (options.raw) {\n result.raw = body;\n }\n\n // Parse body and add it to the result object.\n body[0].forEach((obj: any) => {\n if (obj[0]) {\n result.text += obj[0];\n }\n });\n\n if (body[2] === body[8][0][0]) {\n result.from.language.iso = body[2];\n }\n else {\n result.from.language.didYouMean = true;\n result.from.language.iso = body[8][0][0];\n }\n\n if (body[7] && body[7][0]) {\n let str = body[7][0];\n\n str = str.replace(/<b><i>/g, \"[\");\n str = str.replace(/<\\/i><\\/b>/g, \"]\");\n\n result.from.text.value = str;\n\n if (body[7][5] === true) {\n result.from.text.autoCorrected = true;\n }\n else {\n result.from.text.didYouMean = true;\n }\n }\n\n return result;\n}\n", "/**\n * Generated from https://translate.google.com\n *\n * The languages that Google Translate supports (as of 7/5/2020) alongside\n * their ISO 639-1 codes\n * @see https://cloud.google.com/translate/docs/languages\n * @see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n */\n\nexport const languages = {\n \"auto\": \"Auto-Detect\",\n \"ab\": \"Abkhaz\",\n \"ace\": \"Acehnese\",\n \"ach\": \"Acholi\",\n \"aa\": \"Afar\",\n \"af\": \"Afrikaans\",\n \"sq\": \"Albanian\",\n \"alz\": \"Alur\",\n \"am\": \"Amharic\",\n \"ar\": \"Arabic\",\n \"hy\": \"Armenian\",\n \"as\": \"Assamese\",\n \"av\": \"Avar\",\n \"awa\": \"Awadhi\",\n \"ay\": \"Aymara\",\n \"az\": \"Azerbaijani\",\n \"ban\": \"Balinese\",\n \"bal\": \"Baluchi\",\n \"bm\": \"Bambara\",\n \"bci\": \"Baoul\\u00e9\",\n \"ba\": \"Bashkir\",\n \"eu\": \"Basque\",\n \"btx\": \"Batak Karo\",\n \"bts\": \"Batak Simalungun\",\n \"bbc\": \"Batak Toba\",\n \"be\": \"Belarusian\",\n \"bem\": \"Bemba\",\n \"bn\": \"Bengali\",\n \"bew\": \"Betawi\",\n \"bho\": \"Bhojpuri\",\n \"bik\": \"Bikol\",\n \"bs\": \"Bosnian\",\n \"br\": \"Breton\",\n \"bg\": \"Bulgarian\",\n \"bua\": \"Buryat\",\n \"yue\": \"Cantonese\",\n \"ca\": \"Catalan\",\n \"ceb\": \"Cebuano\",\n \"ch\": \"Chamorro\",\n \"ce\": \"Chechen\",\n \"ny\": \"Chichewa\",\n \"zh-CN\": \"Chinese (Simplified)\",\n \"zh-TW\": \"Chinese (Traditional)\",\n \"chk\": \"Chuukese\",\n \"cv\": \"Chuvash\",\n \"co\": \"Corsican\",\n \"crh\": \"Crimean Tatar (Cyrillic)\",\n \"crh-Latn\": \"Crimean Tatar (Latin)\",\n \"hr\": \"Croatian\",\n \"cs\": \"Czech\",\n \"da\": \"Danish\",\n \"fa-AF\": \"Dari\",\n \"dv\": \"Dhivehi\",\n \"din\": \"Dinka\",\n \"doi\": \"Dogri\",\n \"dov\": \"Dombe\",\n \"nl\": \"Dutch\",\n \"dyu\": \"Dyula\",\n \"dz\": \"Dzongkha\",\n \"en\": \"English\",\n \"eo\": \"Esperanto\",\n \"et\": \"Estonian\",\n \"ee\": \"Ewe\",\n \"fo\": \"Faroese\",\n \"fj\": \"Fijian\",\n \"tl\": \"Filipino\",\n \"fi\": \"Finnish\",\n \"fon\": \"Fon\",\n \"fr\": \"French\",\n \"fr-CA\": \"French (Canada)\",\n \"fy\": \"Frisian\",\n \"fur\": \"Friulian\",\n \"ff\": \"Fulani\",\n \"gaa\": \"Ga\",\n \"gl\": \"Galician\",\n \"ka\": \"Georgian\",\n \"de\": \"German\",\n \"el\": \"Greek\",\n \"gn\": \"Guarani\",\n \"gu\": \"Gujarati\",\n \"ht\": \"Haitian Creole\",\n \"cnh\": \"Hakha Chin\",\n \"ha\": \"Hausa\",\n \"haw\": \"Hawaiian\",\n \"iw\": \"Hebrew\",\n \"hil\": \"Hiligaynon\",\n \"hi\": \"Hindi\",\n \"hmn\": \"Hmong\",\n \"hu\": \"Hungarian\",\n \"hrx\": \"Hunsrik\",\n \"iba\": \"Iban\",\n \"is\": \"Icelandic\",\n \"ig\": \"Igbo\",\n \"ilo\": \"Ilocano\",\n \"id\": \"Indonesian\",\n \"iu-Latn\": \"Inuktut (Latin)\",\n \"iu\": \"Inuktut (Syllabics)\",\n \"ga\": \"Irish\",\n \"it\": \"Italian\",\n \"jam\": \"Jamaican Patois\",\n \"ja\": \"Japanese\",\n \"jv\": \"Javanese\",\n \"kac\": \"Jingpo\",\n \"kl\": \"Kalaallisut\",\n \"kn\": \"Kannada\",\n \"kr\": \"Kanuri\",\n \"pam\": \"Kapampangan\",\n \"kk\": \"Kazakh\",\n \"kha\": \"Khasi\",\n \"km\": \"Khmer\",\n \"cgg\": \"Kiga\",\n \"kg\": \"Kikongo\",\n \"rw\": \"Kinyarwanda\",\n \"ktu\": \"Kituba\",\n \"trp\": \"Kokborok\",\n \"kv\": \"Komi\",\n \"gom\": \"Konkani\",\n \"ko\": \"Korean\",\n \"kri\": \"Krio\",\n \"ku\": \"Kurdish (Kurmanji)\",\n \"ckb\": \"Kurdish (Sorani)\",\n \"ky\": \"Kyrgyz\",\n \"lo\": \"Lao\",\n \"ltg\": \"Latgalian\",\n \"la\": \"Latin\",\n \"lv\": \"Latvian\",\n \"lij\": \"Ligurian\",\n \"li\": \"Limburgish\",\n \"ln\": \"Lingala\",\n \"lt\": \"Lithuanian\",\n \"lmo\": \"Lombard\",\n \"lg\": \"Luganda\",\n \"luo\": \"Luo\",\n \"lb\": \"Luxembourgish\",\n \"mk\": \"Macedonian\",\n \"mad\": \"Madurese\",\n \"mai\": \"Maithili\",\n \"mak\": \"Makassar\",\n \"mg\": \"Malagasy\",\n \"ms\": \"Malay\",\n \"ms-Arab\": \"Malay (Jawi)\",\n \"ml\": \"Malayalam\",\n \"mt\": \"Maltese\",\n \"mam\": \"Mam\",\n \"gv\": \"Manx\",\n \"mi\": \"Maori\",\n \"mr\": \"Marathi\",\n \"mh\": \"Marshallese\",\n \"mwr\": \"Marwadi\",\n \"mfe\": \"Mauritian Creole\",\n \"chm\": \"Meadow Mari\",\n \"mni-Mtei\": \"Meiteilon (Manipuri)\",\n \"min\": \"Minang\",\n \"lus\": \"Mizo\",\n \"mn\": \"Mongolian\",\n \"my\": \"Myanmar (Burmese)\",\n \"bm-Nkoo\": \"NKo\",\n \"nhe\": \"Nahuatl (Eastern Huasteca)\",\n \"ndc-ZW\": \"Ndau\",\n \"nr\": \"Ndebele (South)\",\n \"new\": \"Nepalbhasa (Newari)\",\n \"ne\": \"Nepali\",\n \"no\": \"Norwegian\",\n \"nus\": \"Nuer\",\n \"oc\": \"Occitan\",\n \"or\": \"Odia (Oriya)\",\n \"om\": \"Oromo\",\n \"os\": \"Ossetian\",\n \"pag\": \"Pangasinan\",\n \"pap\": \"Papiamento\",\n \"ps\": \"Pashto\",\n \"fa\": \"Persian\",\n \"pl\": \"Polish\",\n \"pt\": \"Portuguese (Brazil)\",\n \"pt-PT\": \"Portuguese (Portugal)\",\n \"pa\": \"Punjabi (Gurmukhi)\",\n \"pa-Arab\": \"Punjabi (Shahmukhi)\",\n \"qu\": \"Quechua\",\n \"kek\": \"Q\\u02bceqchi\\u02bc\",\n \"rom\": \"Romani\",\n \"ro\": \"Romanian\",\n \"rn\": \"Rundi\",\n \"ru\": \"Russian\",\n \"se\": \"Sami (North)\",\n \"sm\": \"Samoan\",\n \"sg\": \"Sango\",\n \"sa\": \"Sanskrit\",\n \"sat-Latn\": \"Santali (Latin)\",\n \"sat\": \"Santali (Ol Chiki)\",\n \"gd\": \"Scots Gaelic\",\n \"nso\": \"Sepedi\",\n \"sr\": \"Serbian\",\n \"st\": \"Sesotho\",\n \"crs\": \"Seychellois Creole\",\n \"shn\": \"Shan\",\n \"sn\": \"Shona\",\n \"scn\": \"Sicilian\",\n \"szl\": \"Silesian\",\n \"sd\": \"Sindhi\",\n \"si\": \"Sinhala\",\n \"sk\": \"Slovak\",\n \"sl\": \"Slovenian\",\n \"so\": \"Somali\",\n \"es\": \"Spanish\",\n \"su\": \"Sundanese\",\n \"sus\": \"Susu\",\n \"sw\": \"Swahili\",\n \"ss\": \"Swati\",\n \"sv\": \"Swedish\",\n \"ty\": \"Tahitian\",\n \"tg\": \"Tajik\",\n \"ber-Latn\": \"Tamazight\",\n \"ber\": \"Tamazight (Tifinagh)\",\n \"ta\": \"Tamil\",\n \"tt\": \"Tatar\",\n \"te\": \"Telugu\",\n \"tet\": \"Tetum\",\n \"th\": \"Thai\",\n \"bo\": \"Tibetan\",\n \"ti\": \"Tigrinya\",\n \"tiv\": \"Tiv\",\n \"tpi\": \"Tok Pisin\",\n \"to\": \"Tongan\",\n \"lua\": \"Tshiluba\",\n \"ts\": \"Tsonga\",\n \"tn\": \"Tswana\",\n \"tcy\": \"Tulu\",\n \"tum\": \"Tumbuka\",\n \"tr\": \"Turkish\",\n \"tk\": \"Turkmen\",\n \"tyv\": \"Tuvan\",\n \"ak\": \"Twi\",\n \"udm\": \"Udmurt\",\n \"uk\": \"Ukrainian\",\n \"ur\": \"Urdu\",\n \"ug\": \"Uyghur\",\n \"uz\": \"Uzbek\",\n \"ve\": \"Venda\",\n \"vec\": \"Venetian\",\n \"vi\": \"Vietnamese\",\n \"war\": \"Waray\",\n \"cy\": \"Welsh\",\n \"wo\": \"Wolof\",\n \"xh\": \"Xhosa\",\n \"sah\": \"Yakut\",\n \"yi\": \"Yiddish\",\n \"yo\": \"Yoruba\",\n \"yua\": \"Yucatec Maya\",\n \"zap\": \"Zapotec\",\n \"zu\": \"Zulu\",\n} as const;\n\n/**\n * Returns the ISO 639-1 code of the desiredLang \u2013 if it is supported by\n * Google Translate\n * @param {string} language The name or the code of the desired language\n * @returns {string|undefined} The ISO 639-1 code of the language or null if the\n * language is not supported\n */\nexport function getISOCode(language: string | undefined) {\n if (!language) return undefined;\n if (language in languages) return language;\n language = language.toLowerCase();\n if (language in languages) return language;\n\n const keys = (Object.keys(languages) as (keyof typeof languages)[]).filter((key) => {\n if (typeof languages[key] !== \"string\") return false;\n\n return languages[key].toLowerCase() === language;\n });\n\n return keys[0] || undefined;\n}\n\n/**\n * Returns true if the desiredLang is supported by Google Translate and false otherwise\n * @param {string} language The ISO 639-1 code or the name of the desired language.\n * @returns {boolean} If the language is supported or not.\n */\nexport function isSupported(language: string | undefined) {\n return Boolean(getISOCode(language));\n}\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\n\nimport { request } from \"undici\";\n\nfunction zr(a: string) {\n let b: any;\n if (null !== yr) b = yr;\n else {\n b = wr(String.fromCharCode(84));\n let c = wr(String.fromCharCode(75));\n b = [ b(), b() ];\n b[1] = c();\n b = (yr = window[b.join(c())] || \"\") || \"\";\n }\n let d: any = wr(String.fromCharCode(116));\n let c: any = wr(String.fromCharCode(107));\n d = [ d(), d() ];\n d[1] = c();\n c = \"&\" + d.join(\"\") + \"=\";\n d = b.split(\".\");\n b = Number(d[0]) || 0;\n\n for (var e: any[] = [], f = 0, g = 0; g < a.length; g++) {\n let l = a.charCodeAt(g);\n 128 > l ? e[f++] = l : (2048 > l ? e[f++] = l >> 6 | 192 : ((l & 64512) == 55296 && g + 1 < a.length && (a.charCodeAt(g + 1) & 64512) == 56320 ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023), e[f++] = l >> 18 | 240, e[f++] = l >> 12 & 63 | 128) : e[f++] = l >> 12 | 224, e[f++] = l >> 6 & 63 | 128), e[f++] = l & 63 | 128);\n }\n let h: number = Number(b);\n for (let f = 0; f < e.length; f++) a += e[f], h = xr(h, \"+-a^+6\");\n h = xr(h, \"+-3^+b+-f\");\n h ^= Number(d[1]) || 0;\n 0 > h && (h = (h & 2147483647) + 2147483648);\n h %= 1E6;\n return c + (a.toString() + \".\" + (h ^ b));\n}\n\nlet yr: string | null = null;\nlet wr = function(a: string) {\n return function() {\n return a;\n };\n};\nlet xr = function(a: number, b: string) {\n for (let c = 0; c < b.length - 2; c += 3) {\n let d = b.charAt(c + 2);\n let e = d >= \"a\" ? d.charCodeAt(0) - 87 : Number(d);\n e = b.charAt(c + 1) == \"+\" ? a >>> e : a << e;\n a = b.charAt(c) == \"+\" ? a + e & 4294967295 : a ^ e;\n }\n return a;\n};\n\nconst config = new Map();\n\nconst window: any = {\n TKK: config.get(\"TKK\") || \"0\"\n};\n\nasync function updateTKK() {\n let now = Math.floor(Date.now() / 3600000);\n\n if (Number(window.TKK.split(\".\")[0]) !== now) {\n const response = await request(\"https://translate.google.com\");\n const body = await response.body.text();\n\n // code will extract something like tkk:'1232135.131231321312', we need only value\n const code = body.match(/tkk:'\\d+.\\d+'/g);\n\n if (code && code.length > 0) {\n // extracting value tkk:'1232135.131231321312', this will extract only token: 1232135.131231321312\n const xt = code[0].split(\":\")[1].replace(/'/g, \"\");\n\n window.TKK = xt;\n config.set(\"TKK\", xt);\n }\n }\n}\n\nexport async function tokenGenerator(text: string) {\n try {\n await updateTKK();\n\n let tk = zr(text);\n tk = tk.replace(\"&tk=\", \"\");\n return { name: \"tk\", value: tk };\n }\n catch (error) {\n return error;\n }\n}\n", "import { translate } from \"../vendor/@iamtraction-translate/src\";\nimport * as googleTTS from \"google-tts-api\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport * as https from \"https\";\nimport * as child_process from \"child_process\";\nimport { existsSync, writeFileSync, unlinkSync } from \"fs\";\nimport { LanguageCode } from \"./languages\";\nimport { LanguageCodeSet } from \"./types\";\nimport { HttpsProxyAgent } from \"https-proxy-agent\";\n\nexport const AUTO_DETECT = \"auto\";\n\nexport type SimpleTranslateResult = {\n originalText: string;\n translatedText: string;\n pronunciationText?: string;\n langFrom: LanguageCode;\n langTo: LanguageCode;\n proxy?: string;\n};\n\nexport class TranslateError extends Error {}\n\nconst extractPronounceTextFromRaw = (raw: string) => {\n return raw?.[0]?.[1]?.[2];\n};\n\nexport async function simpleTranslate(text: string, options: LanguageCodeSet): Promise<SimpleTranslateResult> {\n try {\n if (!text) {\n return {\n originalText: text,\n translatedText: \"\",\n pronunciationText: \"\",\n langFrom: options.langFrom,\n langTo: options.langTo[0],\n };\n }\n\n const translated = await translate(text, {\n from: options.langFrom,\n to: options.langTo[0],\n raw: true,\n proxy: options.proxy,\n });\n\n return {\n originalText: text,\n translatedText: translated.text,\n pronunciationText: extractPronounceTextFromRaw(translated?.raw),\n langFrom: translated?.from?.language?.iso as LanguageCode,\n langTo: options.langTo[0],\n };\n } catch (err) {\n if (err instanceof Error) {\n if (err.name === \"TooManyRequestsError\") {\n const error = new TranslateError();\n error.name = \"Too many requests\";\n error.message = \"please try again later\";\n throw error;\n }\n\n const error = new TranslateError();\n error.name = err.name;\n error.message = err.message;\n throw error;\n }\n\n throw err;\n }\n}\n\nexport async function doubleWayTranslate(text: string, options: LanguageCodeSet) {\n if (!text) {\n return [];\n }\n\n if (options.langFrom === AUTO_DETECT) {\n const translated1 = await simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n proxy: options.proxy,\n });\n\n if (translated1?.langFrom) {\n const translated2 = await simpleTranslate(translated1.translatedText, {\n langFrom: options.langTo[0],\n langTo: [translated1.langFrom],\n proxy: options.proxy,\n });\n\n return [translated1, translated2];\n }\n\n return [];\n } else {\n return await Promise.all([\n simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n proxy: options.proxy,\n }),\n simpleTranslate(text, {\n langFrom: options.langTo[0],\n langTo: [options.langFrom],\n proxy: options.proxy,\n }),\n ]);\n }\n}\n\nexport async function playTTS(text: string, langTo: string, proxy?: string) {\n const audioUrl = googleTTS.getAudioUrl(text, {\n lang: langTo,\n slow: false,\n host: \"https://translate.google.com\",\n });\n\n let agent: HttpsProxyAgent<string> | undefined;\n\n if (proxy) {\n try {\n agent = new HttpsProxyAgent(proxy);\n } catch (e) {\n console.error(`Error creating proxy agent for ${proxy}:`, e);\n agent = undefined; // Fallback to no proxy if agent creation fails\n }\n }\n\n // The options object for https.get. If 'agent' is undefined, it won't be included,\n // and https.get will use the default agent.\n const requestOptions: https.RequestOptions = {\n agent: agent,\n };\n\n https.get(audioUrl, requestOptions, (response) => {\n const chunks: Uint8Array[] = [];\n\n response.on(\"data\", (chunk) => {\n chunks.push(chunk);\n });\n\n response\n .on(\"end\", () => {\n const audioData = Buffer.concat(chunks);\n\n const tempFilePath = path.join(os.tmpdir(), \"translation.mp3\");\n writeFileSync(tempFilePath, audioData);\n\n // Play the audio file using afplay\n const afplayProcess = child_process.spawn(\"afplay\", [tempFilePath]);\n\n afplayProcess.on(\"exit\", (code) => {\n if (code !== 0) {\n console.error(`Error playing audio: afplay exited with code ${code}`);\n }\n if (existsSync(tempFilePath)) {\n unlinkSync(tempFilePath);\n }\n });\n })\n .on(\"error\", (error) => {\n console.error(\"Error downloading audio:\", error);\n });\n });\n}\n"], - "mappings": "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G,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMU,GAAS,CACb,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMM,GAAU,CACd,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEME,GAAiB,CACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG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AAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvD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G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMC,GAAc,CAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEA3B,GAAO,QAAUwC,KC5oBjB,IAAA6C,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,SAAAC,EAAS,EAAI,QAAQ,QAAQ,EAE/B,CAAE,WAAAC,EAAW,EAAI,KAEjBC,GAAN,cAAyBF,EAAS,CAChC,YAAYG,EAAK,CACf,IAAMC,EAAa,CACjB,YAAa,GACb,UAAW,GACX,cAAgB,OAAOD,EAAI,eAAkB,SAC3BA,EAAI,cACJ,MACpB,EACA,MAAMC,CAAU,EAEhB,IAAIC,EAAWF,EAAI,YAAc,OAC7BA,EAAI,QAAQ,QAAU,OAAOA,EAAI,QAAQ,OAAO,SAAY,WAC9DE,EAAUF,EAAI,QAAQ,OAAO,SAE/B,KAAK,QAAUE,EAEf,IAAMC,EAASH,EAAI,OACnB,KAAK,eAAkBG,GAAU,OAAOA,EAAO,WAAc,SACpCA,EAAO,UACP,EAAI,KAAO,KACpC,KAAK,YAAeA,GAAU,OAAOA,EAAO,QAAW,SACjCA,EAAO,OACP,IACtB,KAAK,mBACHA,GAAU,OAAOA,EAAO,eAAkB,SACxCA,EAAO,cACP,IAGJ,KAAK,OAAS,GACd,KAAK,UAAY,GACjB,KAAK,UAAY,GACjB,KAAK,UAAY,EACjB,KAAK,UAAY,EACjB,KAAK,QAAU,EACf,KAAK,KAAO,GACZ,KAAK,KAAO,GACZ,KAAK,MAAQ,GACb,KAAK,SAAW,EAChB,KAAK,QAAU,EACf,KAAK,SAAWL,GAAWI,CAAO,CACpC,CAEA,OAAO,OAAOE,EAAS,CACrB,OAAQA,EAAQ,OAAS,eACdA,EAAQ,UAAY,uBACjC,CAEA,OAAOC,EAAOC,EAAKC,EAAI,CACrB,GAAI,KAAK,SAAW,KAAK,YACvB,OAAOA,EAAG,EAEZ,IAAIC,EAAI,EACFC,EAAMJ,EAAM,OAIlB,GAHA,KAAK,SAAW,EAGZ,KAAK,QAAU,GAAI,CAErB,GADAG,EAAIE,GAAW,KAAML,EAAOG,EAAGC,CAAG,EAC9BD,IAAM,GACR,OAAOD,EAAG,IAAI,MAAM,2BAA2B,CAAC,EAClD,GAAIC,GAAKC,EACP,OAAOF,EAAG,EACR,KAAK,OACP,EAAE,KAAK,UAEP,EAAE,KAAK,SACX,CAEJI,EACI,KAAOH,EAAIC,GACT,GAAI,KAAK,OAAQ,CAKf,IAFAD,EAAII,GAAa,KAAMP,EAAOG,EAAGC,CAAG,EAE7BD,EAAIC,GAAK,CACd,OAAQJ,EAAMG,CAAC,EAAG,CAChB,IAAK,IACC,KAAK,SAAWA,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,GACjD,KAAK,SAAW,EAAEA,EAClB,KAAK,KAAO,KAAK,SAAS,KAAK,KAAM,KAAK,OAAO,EACjD,KAAK,QAAU,EACf,KAAK,OAAS,GACd,SAASG,EACX,IAAK,IAuBH,GAtBI,KAAK,SAAWH,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,GACjD,KAAK,SAAW,EAAEA,EAClB,KAAK,KAAO,KAAK,SAAS,KAAK,KAAM,KAAK,OAAO,EACjD,KAAK,QAAU,EACX,KAAK,UAAY,GACnB,KAAK,KACH,QACA,KAAK,KACL,GACA,CAAE,cAAe,KAAK,UACpB,eAAgB,GAChB,SAAU,KAAK,QACf,SAAU,YAAa,CAC3B,EAEF,KAAK,KAAO,GACZ,KAAK,KAAO,GACZ,KAAK,UAAY,GACjB,KAAK,UAAY,GACjB,KAAK,UAAY,EACjB,KAAK,UAAY,EACb,EAAE,KAAK,SAAW,KAAK,YACzB,YAAK,KAAK,aAAa,EAChBD,EAAG,EAEZ,SACF,IAAK,IACC,KAAK,SAAWC,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,GACjD,KAAK,MAAQ,IACb,KAAK,SAAWA,EAAI,EACpB,MACF,IAAK,IAQH,GAPI,KAAK,UAAY,IACnB,KAAK,QAAU,GACb,KAAK,SAAWA,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,GACjD,KAAK,SAAWA,EAAI,EACpB,KAAK,MAAQ,GACbA,EAAIE,GAAW,KAAML,EAAOG,EAAI,EAAGC,CAAG,EAClCD,IAAM,GACR,OAAOD,EAAG,IAAI,MAAM,2BAA2B,CAAC,EAClD,GAAIC,GAAKC,EACP,OAAOF,EAAG,EACZ,EAAE,KAAK,UACPC,EAAII,GAAa,KAAMP,EAAOG,EAAGC,CAAG,EACpC,QACJ,CACA,EAAED,EACF,EAAE,KAAK,UACPA,EAAII,GAAa,KAAMP,EAAOG,EAAGC,CAAG,CACtC,CACI,KAAK,SAAWD,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,EACnD,KAAO,CAKL,IAFAA,EAAIK,GAAa,KAAMR,EAAOG,EAAGC,CAAG,EAE7BD,EAAIC,GAAK,CACd,OAAQJ,EAAMG,CAAC,EAAG,CAChB,IAAK,IAwBH,GAvBI,KAAK,SAAWA,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,GACjD,KAAK,SAAW,EAAEA,EAClB,KAAK,OAAS,GACd,KAAK,KAAO,KAAK,SAAS,KAAK,KAAM,KAAK,OAAO,EACjD,KAAK,QAAU,GACX,KAAK,UAAY,GAAK,KAAK,UAAY,IACzC,KAAK,KACH,QACA,KAAK,KACL,KAAK,KACL,CAAE,cAAe,KAAK,UACpB,eAAgB,KAAK,UACrB,SAAU,KAAK,QACf,SAAU,YAAa,CAC3B,EAEF,KAAK,KAAO,GACZ,KAAK,KAAO,GACZ,KAAK,UAAY,GACjB,KAAK,UAAY,GACjB,KAAK,UAAY,EACjB,KAAK,UAAY,EACb,EAAE,KAAK,SAAW,KAAK,YACzB,YAAK,KAAK,aAAa,EAChBD,EAAG,EAEZ,SAASI,EACX,IAAK,IACC,KAAK,SAAWH,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,GACjD,KAAK,MAAQ,IACb,KAAK,SAAWA,EAAI,EACpB,MACF,IAAK,IAQH,GAPI,KAAK,UAAY,IACnB,KAAK,QAAU,GACb,KAAK,SAAWA,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,GACjD,KAAK,SAAWA,EAAI,EACpB,KAAK,MAAQ,GACbA,EAAIE,GAAW,KAAML,EAAOG,EAAI,EAAGC,CAAG,EAClCD,IAAM,GACR,OAAOD,EAAG,IAAI,MAAM,2BAA2B,CAAC,EAClD,GAAIC,GAAKC,EACP,OAAOF,EAAG,EACZ,EAAE,KAAK,UACPC,EAAIK,GAAa,KAAMR,EAAOG,EAAGC,CAAG,EACpC,QACJ,CACA,EAAED,EACF,EAAE,KAAK,UACPA,EAAIK,GAAa,KAAMR,EAAOG,EAAGC,CAAG,CACtC,CACI,KAAK,SAAWD,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,EACnD,CAGFD,EAAG,CACL,CAEA,OAAOA,EAAI,CACT,GAAI,KAAK,QAAU,GACjB,OAAOA,EAAG,IAAI,MAAM,2BAA2B,CAAC,GAC9C,CAAC,KAAK,QAAU,KAAK,UAAY,GAAK,KAAK,UAAY,KACrD,KAAK,OACP,KAAK,KAAO,KAAK,SAAS,KAAK,KAAM,KAAK,OAAO,EAEjD,KAAK,KAAO,KAAK,SAAS,KAAK,KAAM,KAAK,OAAO,EACnD,KAAK,KACH,QACA,KAAK,KACL,KAAK,KACL,CAAE,cAAe,KAAK,UACpB,eAAgB,KAAK,UACrB,SAAU,KAAK,QACf,SAAU,YAAa,CAC3B,GAEFA,EAAG,CACL,CACF,EAEA,SAASG,GAAWI,EAAMT,EAAOU,EAAKN,EAAK,CACzC,GAAIM,GAAON,EACT,OAAOA,EAET,GAAIK,EAAK,QAAU,GAAI,CAErB,IAAME,EAAWC,GAAWZ,EAAMU,GAAK,CAAC,EACxC,GAAIC,IAAa,GACf,MAAO,GAKT,GAHIA,GAAY,IACdF,EAAK,QAAU,GAEbC,EAAMN,EAAK,CAEb,IAAMS,EAAWD,GAAWZ,EAAMU,GAAK,CAAC,EACxC,GAAIG,IAAa,GACf,MAAO,GAELJ,EAAK,OACPA,EAAK,MAAQ,OAAO,cAAcE,GAAY,GAAKE,CAAQ,EAE3DJ,EAAK,MAAQ,OAAO,cAAcE,GAAY,GAAKE,CAAQ,EAE7DJ,EAAK,MAAQ,GACbA,EAAK,SAAWC,CAClB,MAEED,EAAK,MAAQE,CAEjB,KAAO,CAEL,IAAME,EAAWD,GAAWZ,EAAMU,GAAK,CAAC,EACxC,GAAIG,IAAa,GACf,MAAO,GAELJ,EAAK,OACPA,EAAK,MAAQ,OAAO,cAAcA,EAAK,OAAS,GAAKI,CAAQ,EAE7DJ,EAAK,MAAQ,OAAO,cAAcA,EAAK,OAAS,GAAKI,CAAQ,EAE/DJ,EAAK,MAAQ,GACbA,EAAK,SAAWC,CAClB,CAEA,OAAOA,CACT,CAEA,SAASH,GAAaE,EAAMT,EAAOU,EAAKN,EAAK,CAE3C,GAAIK,EAAK,UAAYA,EAAK,mBAAoB,CAM5C,IALKA,EAAK,WACJA,EAAK,SAAWC,IAClBD,EAAK,MAAQT,EAAM,YAAYS,EAAK,SAAUC,EAAM,CAAC,GAEzDD,EAAK,UAAY,GACVC,EAAMN,EAAK,EAAEM,EAAK,CACvB,IAAMI,EAAOd,EAAMU,CAAG,EACtB,GAAII,IAAS,IAAeA,IAAS,GACnC,MACF,EAAEL,EAAK,SACT,CACAA,EAAK,SAAWC,CAClB,CAEA,OAAOA,CACT,CAEA,SAASF,GAAaC,EAAMT,EAAOU,EAAKN,EAAK,CAE3C,GAAIK,EAAK,UAAYA,EAAK,eAAgB,CAMxC,IALKA,EAAK,WACJA,EAAK,SAAWC,IAClBD,EAAK,MAAQT,EAAM,YAAYS,EAAK,SAAUC,EAAM,CAAC,GAEzDD,EAAK,UAAY,GACVC,EAAMN,GACPJ,EAAMU,CAAG,IAAM,GADH,EAAEA,EAGlB,EAAED,EAAK,UAETA,EAAK,SAAWC,CAClB,CAEA,OAAOA,CACT,CAGA,IAAME,GAAa,CACjB,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC9D,EAGArB,GAAO,QAAUG,KC7VjB,IAAAqB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,iBAAAC,EAAiB,EAAI,KAE7B,SAASC,GAAYC,EAAK,CACxB,IAAMC,EAAUD,EAAI,QACdE,EAAUJ,GAAiBG,EAAQ,cAAc,CAAC,EACxD,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,wBAAwB,EAE1C,QAAWC,KAAQC,GAAO,CAExB,GAAI,CADYD,EAAK,OAAOD,CAAO,EAEjC,SAEF,IAAMG,EAAc,CAClB,OAAQL,EAAI,OACZ,QAAAC,EACA,QAAAC,EACA,cAAe,OACf,QAAS,OACT,WAAY,OACZ,gBAAiB,OACjB,aAAc,EAChB,EACA,OAAIF,EAAI,gBACNK,EAAY,cAAgBL,EAAI,eAC9BA,EAAI,UACNK,EAAY,QAAUL,EAAI,SAC5BK,EAAY,WAAaL,EAAI,WAC7BK,EAAY,gBAAkBL,EAAI,gBAClCK,EAAY,aAAeL,EAAI,aACxB,IAAIG,EAAKE,CAAW,CAC7B,CAEA,MAAM,IAAI,MAAM,6BAA6BJ,EAAQ,cAAc,CAAC,EAAE,CACxE,CAIA,IAAMG,GAAQ,CACZ,KACA,IACF,EAAE,OAAO,SAASE,EAAS,CAAE,OAAO,OAAOA,EAAQ,QAAW,UAAY,CAAC,EAE3ET,GAAO,QAAWG,GAAQ,CAIxB,IAHI,OAAOA,GAAQ,UAAYA,IAAQ,QACrCA,EAAM,CAAC,GAEL,OAAOA,EAAI,SAAY,UACpBA,EAAI,UAAY,MAChB,OAAOA,EAAI,QAAQ,cAAc,GAAM,SAC5C,MAAM,IAAI,MAAM,sBAAsB,EAGxC,OAAOD,GAAYC,CAAG,CACxB,ICxDA,IAAAO,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,eAAAC,GAAgB,qBAAAC,EAAqB,EAAI,QAAQ,gBAAgB,EAEnEC,GAAwB,CAAC,MAAO,OAAQ,MAAM,EAE9CC,GAAiB,CAAC,IAAK,IAAK,IAAK,GAAG,EAEpCC,GAAiB,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,EAGzCC,GAAW,CACf,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC/G,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAClG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OACpG,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAChG,OACF,EAGMC,GAAiB,CACrB,GACA,cACA,6BACA,cACA,SACA,gBACA,2BACA,kCACA,YACF,EAEMC,GAAkB,CAAC,SAAU,SAAU,OAAO,EAE9CC,GAAc,CAAC,MAAO,OAAQ,UAAW,OAAO,EAEhDC,GAAc,CAAC,WAAY,cAAe,UAAW,MAAM,EAE3DC,GAAqB,CAAC,OAAQ,cAAe,SAAS,EAEtDC,GAAe,CACnB,UACA,WACA,SACA,WACA,cACA,gBACF,EAGMC,GAAoB,CACxB,mBACA,mBACA,mBACA,eAKA,gBACF,EAGMC,GAAgB,CACpB,MACF,EAGMC,GAAmB,CAAC,UAAW,QAAS,OAAO,EAE/CC,GAAc,CAClB,QACA,eACA,OACA,QACA,WACA,eACA,SACA,QACA,QACA,QACA,OACA,EACF,EAGMC,GAAe,WAAW,eAAiB,IAAM,CAGrD,GAAI,CACF,KAAK,GAAG,CACV,OAASC,EAAK,CACZ,OAAO,OAAO,eAAeA,CAAG,EAAE,WACpC,CACF,GAAG,EAECC,GAGEC,GACJ,WAAW,iBAGX,SAA0BC,EAAOC,EAAU,OAAW,CACpD,GAAI,UAAU,SAAW,EACvB,MAAM,IAAI,UAAU,kBAAkB,EAGxC,OAAKH,KACHA,GAAU,IAAIlB,IAEhBkB,GAAQ,MAAM,MAAM,EACpBA,GAAQ,MAAM,MAAM,EACpBA,GAAQ,MAAM,YAAYE,EAAOC,GAAS,QAAQ,EAC3CpB,GAAqBiB,GAAQ,KAAK,EAAE,OAC7C,EAEFnB,GAAO,QAAU,CACf,aAAAiB,GACA,gBAAAG,GACA,YAAAJ,GACA,iBAAAD,GACA,kBAAAF,GACA,eAAAN,GACA,gBAAAC,GACA,YAAAE,GACA,mBAAAC,GACA,aAAAC,GACA,eAAAP,GACA,sBAAAF,GACA,eAAAC,GACA,YAAAK,GACA,SAAAH,GACA,cAAAQ,EACF,ICvIA,IAAAS,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,IAAMC,GAAe,OAAO,IAAI,uBAAuB,EAEvD,SAASC,IAAmB,CAC1B,OAAO,WAAWD,EAAY,CAChC,CAEA,SAASE,GAAiBC,EAAW,CACnC,GACEA,IAAc,QACd,OAAOA,GAAc,UACrB,EAAEA,aAAqB,KAEvB,MAAM,IAAI,MAAM,kBAAkB,EAGpC,GAAIA,IAAc,OAAW,CAC3B,OAAO,eAAe,WAAYH,GAAc,CAC9C,MAAO,OACP,SAAU,GACV,WAAY,GACZ,aAAc,EAChB,CAAC,EAED,MACF,CAEA,IAAMI,EAAY,IAAI,IAAID,CAAS,EAEnC,GAAIC,EAAU,WAAa,SAAWA,EAAU,WAAa,SAC3D,MAAM,IAAI,UAAU,gDAAgDA,EAAU,QAAQ,EAAE,EAG1F,OAAO,eAAe,WAAYJ,GAAc,CAC9C,MAAOI,EACP,SAAU,GACV,WAAY,GACZ,aAAc,EAChB,CAAC,CACH,CAEAL,GAAO,QAAU,CACf,gBAAAE,GACA,gBAAAC,EACF,IC/CA,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,eAAAC,GAAgB,SAAAC,GAAU,eAAgBC,EAAqB,EAAI,KACrE,CAAE,gBAAAC,EAAgB,EAAI,KACtB,CAAE,YAAAC,EAAY,EAAI,QAAQ,YAAY,EACtC,CAAE,WAAAC,GAAY,YAAAC,GAAa,mBAAAC,EAAmB,EAAI,IAClDC,GAAS,QAAQ,QAAQ,EACzB,CAAE,aAAAC,EAAa,EAAI,QAAQ,YAAY,EAIzCC,GAEJ,GAAI,CACFA,GAAS,QAAQ,QAAQ,CAC3B,MAAQ,CAER,CAEA,SAASC,GAAaC,EAAU,CAI9B,IAAMC,EAAUD,EAAS,QACnBE,EAASD,EAAQ,OACvB,OAAOC,IAAW,EAAI,KAAOD,EAAQC,EAAS,CAAC,EAAE,SAAS,CAC5D,CAGA,SAASC,GAAqBH,EAAUI,EAAiB,CAEvD,GAAI,CAAChB,GAAe,SAASY,EAAS,MAAM,EAC1C,OAAO,KAKT,IAAIK,EAAWL,EAAS,YAAY,IAAI,UAAU,EAIlD,OAAIK,IAAa,MAAQC,GAAmBD,CAAQ,IAClDA,EAAW,IAAI,IAAIA,EAAUN,GAAYC,CAAQ,CAAC,GAKhDK,GAAY,CAACA,EAAS,OACxBA,EAAS,KAAOD,GAIXC,CACT,CAGA,SAASE,GAAmBC,EAAS,CACnC,OAAOA,EAAQ,QAAQA,EAAQ,QAAQ,OAAS,CAAC,CACnD,CAEA,SAASC,GAAgBD,EAAS,CAEhC,IAAME,EAAMH,GAAkBC,CAAO,EAIrC,OAAIG,GAAqBD,CAAG,GAAKrB,GAAS,SAASqB,EAAI,IAAI,EAClD,UAIF,SACT,CAEA,SAASE,GAAaC,EAAQ,CAC5B,OAAOA,aAAkB,OACvBA,GAAQ,aAAa,OAAS,SAC9BA,GAAQ,aAAa,OAAS,cAElC,CAQA,SAASC,GAAqBC,EAAY,CACxC,QAASC,EAAI,EAAGA,EAAID,EAAW,OAAQ,EAAEC,EAAG,CAC1C,IAAMC,EAAIF,EAAW,WAAWC,CAAC,EACjC,GACE,EAEIC,IAAM,GACLA,GAAK,IAAQA,GAAK,KAClBA,GAAK,KAAQA,GAAK,KAIvB,MAAO,EAEX,CACA,MAAO,EACT,CAEA,SAASC,GAAaD,EAAG,CACvB,MAAO,EACLA,GAAK,KACLA,GAAK,IACLA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,MACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,IAEV,CAIA,SAASE,GAAkBC,EAAY,CACrC,GAAI,CAACA,GAAc,OAAOA,GAAe,SACvC,MAAO,GAET,QAASJ,EAAI,EAAGA,EAAII,EAAW,OAAQ,EAAEJ,EAAG,CAC1C,IAAMC,EAAIG,EAAW,WAAWJ,CAAC,EACjC,GAAIC,EAAI,KAAQ,CAACC,GAAYD,CAAC,EAC5B,MAAO,EAEX,CACA,MAAO,EACT,CAIA,SAASI,GAAmBC,EAAgB,CAC1C,OAAIA,EAAe,SAAW,EACrB,GAGFH,GAAiBG,CAAc,CACxC,CAMA,SAAShB,GAAoBgB,EAAgB,CAY3C,MARE,EAAAA,EAAe,WAAW,GAAI,GAC9BA,EAAe,WAAW,GAAG,GAC7BA,EAAe,SAAS,GAAI,GAC5BA,EAAe,SAAS,GAAG,GAM3BA,EAAe,SAAS,IAAI,GAC5BA,EAAe,SAAS,IAAI,GAC5BA,EAAe,SAAS;AAAA,CAAI,EAMhC,CAGA,SAASC,GAAoCf,EAASgB,EAAgB,CAUpE,GAAM,CAAE,YAAAC,CAAY,EAAID,EAIlBE,GAAgBD,EAAY,IAAI,iBAAiB,GAAK,IAAI,MAAM,GAAG,EAMrEE,EAAS,GACb,GAAID,EAAa,OAAS,EAGxB,QAASV,EAAIU,EAAa,OAAQV,IAAM,EAAGA,IAAK,CAC9C,IAAMY,EAAQF,EAAaV,EAAI,CAAC,EAAE,KAAK,EACvC,GAAI1B,GAAqB,SAASsC,CAAK,EAAG,CACxCD,EAASC,EACT,KACF,CACF,CAIED,IAAW,KACbnB,EAAQ,eAAiBmB,EAE7B,CAGA,SAASE,IAAkC,CAEzC,MAAO,SACT,CAGA,SAASC,IAAa,CAEpB,MAAO,SACT,CAGA,SAASC,IAAY,CAEnB,MAAO,SACT,CAEA,SAASC,GAAqBC,EAAa,CAUzC,IAAIC,EAAS,KAGbA,EAASD,EAAY,KAGrBA,EAAY,YAAY,IAAI,iBAAkBC,CAAM,CAOtD,CAGA,SAASC,GAA2B3B,EAAS,CAE3C,IAAI4B,EAAmB5B,EAAQ,OAG/B,GAAIA,EAAQ,mBAAqB,QAAUA,EAAQ,OAAS,YACtD4B,GACF5B,EAAQ,YAAY,OAAO,SAAU4B,CAAgB,UAI9C5B,EAAQ,SAAW,OAASA,EAAQ,SAAW,OAAQ,CAEhE,OAAQA,EAAQ,eAAgB,CAC9B,IAAK,cAEH4B,EAAmB,KACnB,MACF,IAAK,6BACL,IAAK,gBACL,IAAK,kCAEC5B,EAAQ,QAAU6B,GAAkB7B,EAAQ,MAAM,GAAK,CAAC6B,GAAkB9B,GAAkBC,CAAO,CAAC,IACtG4B,EAAmB,MAErB,MACF,IAAK,cAEEE,GAAW9B,EAASD,GAAkBC,CAAO,CAAC,IACjD4B,EAAmB,MAErB,MACF,QAEF,CAEIA,GAEF5B,EAAQ,YAAY,OAAO,SAAU4B,CAAgB,CAEzD,CACF,CAEA,SAASG,GAA4BC,EAA+B,CAElE,OAAOhD,GAAY,IAAI,CACzB,CAGA,SAASiD,GAAwBC,EAAY,CAC3C,MAAO,CACL,UAAWA,EAAW,WAAa,EACnC,kBAAmB,EACnB,gBAAiB,EACjB,sBAAuBA,EAAW,WAAa,EAC/C,4BAA6B,EAC7B,8BAA+B,EAC/B,6BAA8B,EAC9B,QAAS,EACT,gBAAiB,EACjB,gBAAiB,EACjB,0BAA2B,IAC7B,CACF,CAGA,SAASC,IAAuB,CAE9B,MAAO,CACL,eAAgB,iCAClB,CACF,CAGA,SAASC,GAAsBC,EAAiB,CAC9C,MAAO,CACL,eAAgBA,EAAgB,cAClC,CACF,CAGA,SAASC,GAA2BtC,EAAS,CAE3C,IAAMmB,EAASnB,EAAQ,eAGvBZ,GAAO+B,CAAM,EAIb,IAAIoB,EAAiB,KAGrB,GAAIvC,EAAQ,WAAa,SAAU,CAIjC,IAAMwC,EAAezD,GAAgB,EAErC,GAAI,CAACyD,GAAgBA,EAAa,SAAW,OAC3C,MAAO,cAITD,EAAiB,IAAI,IAAIC,CAAY,CACvC,MAAWxC,EAAQ,oBAAoB,MAErCuC,EAAiBvC,EAAQ,UAK3B,IAAIyC,EAAcC,GAAoBH,CAAc,EAI9CI,EAAiBD,GAAoBH,EAAgB,EAAI,EAI3DE,EAAY,SAAS,EAAE,OAAS,OAClCA,EAAcE,GAGhB,IAAMC,EAAgBd,GAAW9B,EAASyC,CAAW,EAC/CI,EAA8BC,GAA4BL,CAAW,GACzE,CAACK,GAA4B9C,EAAQ,GAAG,EAG1C,OAAQmB,EAAQ,CACd,IAAK,SAAU,OAAOwB,GAA0CD,GAAoBH,EAAgB,EAAI,EACxG,IAAK,aAAc,OAAOE,EAC1B,IAAK,cACH,OAAOG,EAAgBD,EAAiB,cAC1C,IAAK,2BACH,OAAOC,EAAgBH,EAAcE,EACvC,IAAK,kCAAmC,CACtC,IAAMI,EAAahD,GAAkBC,CAAO,EAI5C,OAAI8B,GAAWW,EAAaM,CAAU,EAC7BN,EAMLK,GAA4BL,CAAW,GAAK,CAACK,GAA4BC,CAAU,EAC9E,cAIFJ,CACT,CACA,IAAK,gBAOL,IAAK,6BAQL,QACE,OAAOE,EAA8B,cAAgBF,CACzD,CACF,CAOA,SAASD,GAAqBxC,EAAK8C,EAAY,CAK7C,OAHA5D,GAAOc,aAAe,GAAG,EAGrBA,EAAI,WAAa,SAAWA,EAAI,WAAa,UAAYA,EAAI,WAAa,SACrE,eAITA,EAAI,SAAW,GAGfA,EAAI,SAAW,GAGfA,EAAI,KAAO,GAGP8C,IAEF9C,EAAI,SAAW,GAGfA,EAAI,OAAS,IAIRA,EACT,CAEA,SAAS4C,GAA6B5C,EAAK,CACzC,GAAI,EAAEA,aAAe,KACnB,MAAO,GAYT,GARIA,EAAI,OAAS,eAAiBA,EAAI,OAAS,gBAK3CA,EAAI,WAAa,SAGjBA,EAAI,WAAa,QAAS,MAAO,GAErC,OAAO+C,EAA+B/C,EAAI,MAAM,EAEhD,SAAS+C,EAAgCC,EAAQ,CAE/C,GAAIA,GAAU,MAAQA,IAAW,OAAQ,MAAO,GAEhD,IAAMC,EAAc,IAAI,IAAID,CAAM,EAQlC,MALI,GAAAC,EAAY,WAAa,UAAYA,EAAY,WAAa,QAK9D,sDAAsD,KAAKA,EAAY,QAAQ,GACjFA,EAAY,WAAa,aAAeA,EAAY,SAAS,SAAS,YAAY,GAClFA,EAAY,SAAS,SAAS,YAAY,EAM9C,CACF,CAOA,SAASC,GAAYC,EAAOC,EAAc,CAKxC,GAAIhE,KAAW,OACb,MAAO,GAIT,IAAMiE,EAAiBC,GAAcF,CAAY,EAQjD,GALIC,IAAmB,eAKnBA,EAAe,SAAW,EAC5B,MAAO,GAKT,IAAME,EAAOF,EAAe,KAAK,CAAC9C,EAAGiD,IAAMA,EAAE,KAAK,cAAcjD,EAAE,IAAI,CAAC,EAEjEkD,EAAYF,EAAK,CAAC,EAAE,KAEpBG,EAAWH,EAAK,OAAQI,GAASA,EAAK,OAASF,CAAS,EAG9D,QAAWE,KAAQD,EAAU,CAE3B,IAAME,EAAYD,EAAK,KAGjBE,EAAgBF,EAAK,KAO3B,GAJoBvE,GAAO,WAAWwE,CAAS,EAAE,OAAOT,CAAK,EAAE,OAAO,QAAQ,IAI1DU,EAClB,MAAO,EAEX,CAGA,MAAO,EACT,CAKA,IAAMC,GAAuB,mFAM7B,SAASR,GAAeI,EAAU,CAGhC,IAAMK,EAAS,CAAC,EAGZC,EAAQ,GAENC,EAAkB7E,GAAO,UAAU,EAGzC,QAAW8B,KAASwC,EAAS,MAAM,GAAG,EAAG,CAEvCM,EAAQ,GAGR,IAAME,EAAcJ,GAAqB,KAAK5C,CAAK,EAGnD,GAAIgD,IAAgB,MAAQA,EAAY,SAAW,OAKjD,SAIF,IAAMN,EAAYM,EAAY,OAAO,KAIjCD,EAAgB,SAASL,EAAU,YAAY,CAAC,GAClDG,EAAO,KAAKG,EAAY,MAAM,CAElC,CAGA,OAAIF,IAAU,GACL,cAGFD,CACT,CAGA,SAASI,GAA+CrE,EAAS,CAEjE,CAOA,SAAS8B,GAAY,EAAGwC,EAAG,CAQzB,OANI,EAAE,SAAWA,EAAE,QAAU,EAAE,SAAW,QAMtC,EAAE,WAAaA,EAAE,UAAY,EAAE,WAAaA,EAAE,UAAY,EAAE,OAASA,EAAE,IAM7E,CAEA,SAASC,IAAyB,CAChC,IAAIC,EACAC,EAMJ,MAAO,CAAE,QALO,IAAI,QAAQ,CAACC,EAASC,IAAW,CAC/CH,EAAME,EACND,EAAME,CACR,CAAC,EAEiB,QAASH,EAAK,OAAQC,CAAI,CAC9C,CAEA,SAASG,GAAWC,EAAa,CAC/B,OAAOA,EAAY,WAAW,QAAU,SAC1C,CAEA,SAASC,GAAaD,EAAa,CACjC,OAAOA,EAAY,WAAW,QAAU,WACtCA,EAAY,WAAW,QAAU,YACrC,CAGA,SAASE,GAAiBC,EAAQ,CAChC,MAAO,wCAAwC,KAAKA,CAAM,EACtDA,EAAO,YAAY,EACnBA,CACN,CAGA,SAASC,GAAsCC,EAAO,CAEpD,IAAMjB,EAAS,KAAK,UAAUiB,CAAK,EAGnC,GAAIjB,IAAW,OACb,MAAM,IAAI,UAAU,gCAAgC,EAItD,OAAA7E,GAAO,OAAO6E,GAAW,QAAQ,EAG1BA,CACT,CAGA,IAAMkB,GAAsB,OAAO,eAAe,OAAO,eAAe,CAAC,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC,EAQ9F,SAASC,GAAcC,EAAUC,EAAMC,EAAM,CAC3C,IAAMlF,EAAS,CACb,MAAO,EACP,KAAAkF,EACA,OAAQF,CACV,EAEM7E,EAAI,CACR,MAAQ,CAYN,GAAI,OAAO,eAAe,IAAI,IAAMA,EAClC,MAAM,IAAI,UACR,gEAAgE8E,CAAI,YACtE,EAMF,GAAM,CAAE,MAAAE,EAAO,KAAAD,EAAM,OAAAE,CAAO,EAAIpF,EAC1BqF,EAASD,EAAO,EAGhBE,EAAMD,EAAO,OAInB,GAAIF,GAASG,EACX,MAAO,CAAE,MAAO,OAAW,KAAM,EAAK,EAIxC,IAAMC,EAAOF,EAAOF,CAAK,EAGzB,OAAAnF,EAAO,MAAQmF,EAAQ,EAGhBK,GAAeD,EAAML,CAAI,CAClC,EAGA,CAAC,OAAO,WAAW,EAAG,GAAGD,CAAI,WAC/B,EAGA,cAAO,eAAe9E,EAAG2E,EAAmB,EAGrC,OAAO,eAAe,CAAC,EAAG3E,CAAC,CACpC,CAGA,SAASqF,GAAgBD,EAAML,EAAM,CACnC,IAAItB,EAGJ,OAAQsB,EAAM,CACZ,IAAK,MAAO,CAKVtB,EAAS2B,EAAK,CAAC,EACf,KACF,CACA,IAAK,QAAS,CAKZ3B,EAAS2B,EAAK,CAAC,EACf,KACF,CACA,IAAK,YAAa,CAWhB3B,EAAS2B,EACT,KACF,CACF,CAGA,MAAO,CAAE,MAAO3B,EAAQ,KAAM,EAAM,CACtC,CAKA,SAAS6B,GAAeC,EAAMC,EAAaC,EAAkB,CAM3D,IAAMC,EAAgB7C,GAAU,eAAe,IAAM2C,EAAY3C,CAAK,CAAC,EAIjE8C,EAAcC,GAAU,eAAe,IAAMH,EAAiBG,CAAK,CAAC,EAKtEC,EAEJ,GAAI,CACFA,EAASN,EAAK,OAAO,UAAU,CACjC,OAASO,EAAG,CACVH,EAAWG,CAAC,EACZ,MACF,CAGAC,GAAaF,EAAQH,EAAcC,CAAU,CAC/C,CAGA,IAAIK,GAAiB,WAAW,eAEhC,SAASC,GAAsBC,EAAQ,CACrC,OAAKF,KACHA,GAAiB,QAAQ,YAAY,EAAE,gBAGlCE,aAAkBF,IACvBE,EAAO,OAAO,WAAW,IAAM,kBAC/B,OAAOA,EAAO,KAAQ,UAE1B,CAEA,IAAMC,GAA0B,MAMhC,SAASC,GAAkBC,EAAO,CAKhC,OAAIA,EAAM,OAASF,GACV,OAAO,aAAa,GAAGE,CAAK,EAG9BA,EAAM,OAAO,CAACC,EAAUC,IAAYD,EAAW,OAAO,aAAaC,CAAO,EAAG,EAAE,CACxF,CAKA,SAASC,GAAqBC,EAAY,CACxC,GAAI,CACFA,EAAW,MAAM,CACnB,OAASC,EAAK,CAEZ,GAAI,CAACA,EAAI,QAAQ,SAAS,8BAA8B,EACtD,MAAMA,CAEV,CACF,CAMA,SAASC,GAAkBN,EAAO,CAEhC,QAASrG,EAAI,EAAGA,EAAIqG,EAAM,OAAQrG,IAChCpB,GAAOyH,EAAM,WAAWrG,CAAC,GAAK,GAAI,EAMpC,OAAOqG,CACT,CASA,eAAeN,GAAcF,EAAQH,EAAckB,EAAc,CAC/D,IAAM/D,EAAQ,CAAC,EACXgE,EAAa,EAEjB,OAAa,CACX,IAAIC,EACAC,EAEJ,GAAI,EACD,CAAE,KAAAD,EAAM,MAAOC,CAAM,EAAI,MAAMlB,EAAO,KAAK,EAC9C,OAASC,EAAG,CAEVc,EAAad,CAAC,EACd,MACF,CAEA,GAAIgB,EAAM,CAERpB,EAAa,OAAO,OAAO7C,EAAOgE,CAAU,CAAC,EAC7C,MACF,CAIA,GAAI,CAAChI,GAAakI,CAAK,EAAG,CACxBH,EAAa,IAAI,UAAU,+BAA+B,CAAC,EAC3D,MACF,CAGA/D,EAAM,KAAKkE,CAAK,EAChBF,GAAcE,EAAM,MAGtB,CACF,CAMA,SAASC,GAAYtH,EAAK,CACxBd,GAAO,aAAcc,CAAG,EAExB,IAAMuH,EAAWvH,EAAI,SAErB,OAAOuH,IAAa,UAAYA,IAAa,SAAWA,IAAa,OACvE,CAKA,SAAS5F,GAAmB3B,EAAK,CAC/B,OAAI,OAAOA,GAAQ,SACVA,EAAI,WAAW,QAAQ,EAGzBA,EAAI,WAAa,QAC1B,CAMA,SAASC,GAAsBD,EAAK,CAClCd,GAAO,aAAcc,CAAG,EAExB,IAAMuH,EAAWvH,EAAI,SAErB,OAAOuH,IAAa,SAAWA,IAAa,QAC9C,CAKA,IAAMC,GAAS,OAAO,SAAW,CAACC,EAAMC,IAAQ,OAAO,UAAU,eAAe,KAAKD,EAAMC,CAAG,GAE9FjJ,GAAO,QAAU,CACf,UAAAiG,GACA,YAAAE,GACA,sBAAAP,GACA,mBAAApF,GACA,YAAAD,GACA,8CAAAmF,GACA,2BAAAtC,GACA,0BAAAO,GACA,oBAAAH,GACA,qBAAAC,GACA,oBAAAZ,GACA,0BAAAG,GACA,SAAAJ,GACA,UAAAD,GACA,+BAAAD,GACA,uBAAAY,GACA,mCAAAlB,GACA,iBAAAJ,GACA,eAAAV,GACA,kBAAAF,GACA,YAAAR,GACA,oBAAAI,GACA,WAAAV,GACA,4BAAA6D,GACA,oBAAAxC,GACA,WAAAwB,GACA,gBAAAiD,GACA,qCAAAE,GACA,aAAAG,GACA,kBAAAvE,GACA,mBAAAf,GACA,OAAA4H,GACA,YAAAtH,GACA,cAAA0F,GACA,WAAA1C,GACA,qBAAAqD,GACA,oBAAAO,GACA,iBAAAG,GACA,iBAAAP,GACA,WAAAY,GACA,kBAAA3F,GACA,qBAAA1B,GACA,aAAAoG,EACF,ICxgCA,IAAAsB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEAA,GAAO,QAAU,CACf,KAAM,OAAO,KAAK,EAClB,SAAU,OAAO,SAAS,EAC1B,QAAS,OAAO,QAAQ,EACxB,OAAQ,OAAO,OAAO,EACtB,OAAQ,OAAO,OAAO,EACtB,OAAQ,OAAO,OAAO,CACxB,ICTA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,MAAAC,EAAM,EAAI,QAAQ,MAAM,EAC1B,CAAE,OAAAC,GAAQ,YAAAC,EAAY,EAAI,KAG1BC,EAAS,CAAC,EAChBA,EAAO,WAAa,CAAC,EACrBA,EAAO,KAAO,CAAC,EACfA,EAAO,OAAS,CAAC,EAEjBA,EAAO,OAAO,UAAY,SAAUC,EAAS,CAC3C,OAAO,IAAI,UAAU,GAAGA,EAAQ,MAAM,KAAKA,EAAQ,OAAO,EAAE,CAC9D,EAEAD,EAAO,OAAO,iBAAmB,SAAUE,EAAS,CAClD,IAAMC,EAASD,EAAQ,MAAM,SAAW,EAAI,GAAK,UAC3CD,EACJ,GAAGC,EAAQ,QAAQ,6BAChBC,CAAM,KAAKD,EAAQ,MAAM,KAAK,IAAI,CAAC,IAExC,OAAOF,EAAO,OAAO,UAAU,CAC7B,OAAQE,EAAQ,OAChB,QAAAD,CACF,CAAC,CACH,EAEAD,EAAO,OAAO,gBAAkB,SAAUE,EAAS,CACjD,OAAOF,EAAO,OAAO,UAAU,CAC7B,OAAQE,EAAQ,OAChB,QAAS,IAAIA,EAAQ,KAAK,mBAAmBA,EAAQ,IAAI,GAC3D,CAAC,CACH,EAGAF,EAAO,WAAa,SAAUI,EAAGC,EAAGC,EAAO,OAAW,CACpD,GAAIA,GAAM,SAAW,IAAS,EAAEF,aAAaC,GAC3C,MAAM,IAAI,UAAU,oBAAoB,EAExC,OAAOD,IAAI,OAAO,WAAW,IAAMC,EAAE,UAAU,OAAO,WAAW,CAErE,EAEAL,EAAO,oBAAsB,SAAU,CAAE,OAAAO,CAAO,EAAGC,EAAKC,EAAK,CAC3D,GAAIF,EAASC,EACX,MAAMR,EAAO,OAAO,UAAU,CAC5B,QAAS,GAAGQ,CAAG,YAAYA,IAAQ,EAAI,IAAM,EAAE,iBAChCD,EAAS,QAAU,EAAE,IAAIA,CAAM,UAC9C,GAAGE,CACL,CAAC,CAEL,EAEAT,EAAO,mBAAqB,UAAY,CACtC,MAAMA,EAAO,OAAO,UAAU,CAC5B,OAAQ,YACR,QAAS,qBACX,CAAC,CACH,EAGAA,EAAO,KAAK,KAAO,SAAUI,EAAG,CAC9B,OAAQ,OAAOA,EAAG,CAChB,IAAK,YAAa,MAAO,YACzB,IAAK,UAAW,MAAO,UACvB,IAAK,SAAU,MAAO,SACtB,IAAK,SAAU,MAAO,SACtB,IAAK,SAAU,MAAO,SACtB,IAAK,SAAU,MAAO,SACtB,IAAK,WACL,IAAK,SACH,OAAIA,IAAM,KACD,OAGF,QAEX,CACF,EAGAJ,EAAO,KAAK,aAAe,SAAUI,EAAGM,EAAWC,EAAYL,EAAO,CAAC,EAAG,CACxE,IAAIM,EACAC,EAGAH,IAAc,IAEhBE,EAAa,KAAK,IAAI,EAAG,EAAE,EAAI,EAG3BD,IAAe,WACjBE,EAAa,EAGbA,EAAa,KAAK,IAAI,GAAI,EAAE,EAAI,GAEzBF,IAAe,YAIxBE,EAAa,EAGbD,EAAa,KAAK,IAAI,EAAGF,CAAS,EAAI,IAKtCG,EAAa,KAAK,IAAI,GAAIH,CAAS,EAAI,EAGvCE,EAAa,KAAK,IAAI,EAAGF,EAAY,CAAC,EAAI,GAI5C,IAAII,EAAI,OAAOV,CAAC,EAShB,GANIU,IAAM,IACRA,EAAI,GAKFR,EAAK,eAAiB,GAAM,CAE9B,GACE,OAAO,MAAMQ,CAAC,GACdA,IAAM,OAAO,mBACbA,IAAM,OAAO,kBAEb,MAAMd,EAAO,OAAO,UAAU,CAC5B,OAAQ,qBACR,QAAS,qBAAqBI,CAAC,iBACjC,CAAC,EAQH,GAJAU,EAAId,EAAO,KAAK,YAAYc,CAAC,EAIzBA,EAAID,GAAcC,EAAIF,EACxB,MAAMZ,EAAO,OAAO,UAAU,CAC5B,OAAQ,qBACR,QAAS,yBAAyBa,CAAU,IAAID,CAAU,SAASE,CAAC,GACtE,CAAC,EAIH,OAAOA,CACT,CAKA,MAAI,CAAC,OAAO,MAAMA,CAAC,GAAKR,EAAK,QAAU,IAErCQ,EAAI,KAAK,IAAI,KAAK,IAAIA,EAAGD,CAAU,EAAGD,CAAU,EAK5C,KAAK,MAAME,CAAC,EAAI,IAAM,EACxBA,EAAI,KAAK,MAAMA,CAAC,EAEhBA,EAAI,KAAK,KAAKA,CAAC,EAIVA,GAKP,OAAO,MAAMA,CAAC,GACbA,IAAM,GAAK,OAAO,GAAG,EAAGA,CAAC,GAC1BA,IAAM,OAAO,mBACbA,IAAM,OAAO,kBAEN,GAITA,EAAId,EAAO,KAAK,YAAYc,CAAC,EAG7BA,EAAIA,EAAI,KAAK,IAAI,EAAGJ,CAAS,EAIzBC,IAAe,UAAYG,GAAK,KAAK,IAAI,EAAGJ,CAAS,EAAI,EACpDI,EAAI,KAAK,IAAI,EAAGJ,CAAS,EAI3BI,EACT,EAGAd,EAAO,KAAK,YAAc,SAAUe,EAAG,CAErC,IAAMC,EAAI,KAAK,MAAM,KAAK,IAAID,CAAC,CAAC,EAGhC,OAAIA,EAAI,EACC,GAAKC,EAIPA,CACT,EAGAhB,EAAO,kBAAoB,SAAUiB,EAAW,CAC9C,OAAQb,GAAM,CAEZ,GAAIJ,EAAO,KAAK,KAAKI,CAAC,IAAM,SAC1B,MAAMJ,EAAO,OAAO,UAAU,CAC5B,OAAQ,WACR,QAAS,iBAAiBA,EAAO,KAAK,KAAKI,CAAC,CAAC,oBAC/C,CAAC,EAKH,IAAMc,EAASd,IAAI,OAAO,QAAQ,IAAI,EAChCe,EAAM,CAAC,EAGb,GACED,IAAW,QACX,OAAOA,EAAO,MAAS,WAEvB,MAAMlB,EAAO,OAAO,UAAU,CAC5B,OAAQ,WACR,QAAS,4BACX,CAAC,EAIH,OAAa,CACX,GAAM,CAAE,KAAAoB,EAAM,MAAAC,CAAM,EAAIH,EAAO,KAAK,EAEpC,GAAIE,EACF,MAGFD,EAAI,KAAKF,EAAUI,CAAK,CAAC,CAC3B,CAEA,OAAOF,CACT,CACF,EAGAnB,EAAO,gBAAkB,SAAUsB,EAAcC,EAAgB,CAC/D,OAAQC,GAAM,CAEZ,GAAIxB,EAAO,KAAK,KAAKwB,CAAC,IAAM,SAC1B,MAAMxB,EAAO,OAAO,UAAU,CAC5B,OAAQ,SACR,QAAS,iBAAiBA,EAAO,KAAK,KAAKwB,CAAC,CAAC,oBAC/C,CAAC,EAIH,IAAMC,EAAS,CAAC,EAEhB,GAAI,CAAC5B,GAAM,QAAQ2B,CAAC,EAAG,CAErB,IAAME,EAAO,OAAO,KAAKF,CAAC,EAE1B,QAAWG,KAAOD,EAAM,CAEtB,IAAME,EAAWN,EAAaK,CAAG,EAI3BE,EAAaN,EAAeC,EAAEG,CAAG,CAAC,EAGxCF,EAAOG,CAAQ,EAAIC,CACrB,CAGA,OAAOJ,CACT,CAGA,IAAMC,EAAO,QAAQ,QAAQF,CAAC,EAG9B,QAAWG,KAAOD,EAKhB,GAHa,QAAQ,yBAAyBF,EAAGG,CAAG,GAG1C,WAAY,CAEpB,IAAMC,EAAWN,EAAaK,CAAG,EAI3BE,EAAaN,EAAeC,EAAEG,CAAG,CAAC,EAGxCF,EAAOG,CAAQ,EAAIC,CACrB,CAIF,OAAOJ,CACT,CACF,EAEAzB,EAAO,mBAAqB,SAAU8B,EAAG,CACvC,MAAO,CAAC1B,EAAGE,EAAO,CAAC,IAAM,CACvB,GAAIA,EAAK,SAAW,IAAS,EAAEF,aAAa0B,GAC1C,MAAM9B,EAAO,OAAO,UAAU,CAC5B,OAAQ8B,EAAE,KACV,QAAS,YAAY1B,CAAC,yBAAyB0B,EAAE,IAAI,GACvD,CAAC,EAGH,OAAO1B,CACT,CACF,EAEAJ,EAAO,oBAAsB,SAAU+B,EAAY,CACjD,OAAQC,GAAe,CACrB,IAAMC,EAAOjC,EAAO,KAAK,KAAKgC,CAAU,EAClCE,EAAO,CAAC,EAEd,GAAID,IAAS,QAAUA,IAAS,YAC9B,OAAOC,EACF,GAAID,IAAS,SAClB,MAAMjC,EAAO,OAAO,UAAU,CAC5B,OAAQ,aACR,QAAS,YAAYgC,CAAU,yCACjC,CAAC,EAGH,QAAWG,KAAWJ,EAAY,CAChC,GAAM,CAAE,IAAAJ,EAAK,aAAAS,EAAc,SAAAC,EAAU,UAAApB,CAAU,EAAIkB,EAEnD,GAAIE,IAAa,IACX,CAACvC,GAAOkC,EAAYL,CAAG,EACzB,MAAM3B,EAAO,OAAO,UAAU,CAC5B,OAAQ,aACR,QAAS,yBAAyB2B,CAAG,IACvC,CAAC,EAIL,IAAIN,EAAQW,EAAWL,CAAG,EACpBW,EAAaxC,GAAOqC,EAAS,cAAc,EAWjD,GAPIG,GAAcjB,IAAU,OAC1BA,EAAQA,GAASe,GAMfC,GAAYC,GAAcjB,IAAU,OAAW,CAGjD,GAFAA,EAAQJ,EAAUI,CAAK,EAGrBc,EAAQ,eACR,CAACA,EAAQ,cAAc,SAASd,CAAK,EAErC,MAAMrB,EAAO,OAAO,UAAU,CAC5B,OAAQ,aACR,QAAS,GAAGqB,CAAK,6CAA6Cc,EAAQ,cAAc,KAAK,IAAI,CAAC,GAChG,CAAC,EAGHD,EAAKP,CAAG,EAAIN,CACd,CACF,CAEA,OAAOa,CACT,CACF,EAEAlC,EAAO,kBAAoB,SAAUiB,EAAW,CAC9C,OAAQb,GACFA,IAAM,KACDA,EAGFa,EAAUb,CAAC,CAEtB,EAGAJ,EAAO,WAAW,UAAY,SAAUI,EAAGE,EAAO,CAAC,EAAG,CAKpD,GAAIF,IAAM,MAAQE,EAAK,wBACrB,MAAO,GAIT,GAAI,OAAOF,GAAM,SACf,MAAM,IAAI,UAAU,sDAAsD,EAM5E,OAAO,OAAOA,CAAC,CACjB,EAGAJ,EAAO,WAAW,WAAa,SAAUI,EAAG,CAG1C,IAAMU,EAAId,EAAO,WAAW,UAAUI,CAAC,EAIvC,QAASmC,EAAQ,EAAGA,EAAQzB,EAAE,OAAQyB,IAAS,CAC7C,IAAMC,EAAW1B,EAAE,WAAWyB,CAAK,EAEnC,GAAIC,EAAW,IACb,MAAM,IAAI,UACR,0EACSD,CAAK,mBAAmBC,CAAQ,6BAC3C,CAEJ,CAKA,OAAO1B,CACT,EAGAd,EAAO,WAAW,UAAYD,GAG9BC,EAAO,WAAW,QAAU,SAAUI,EAAG,CAMvC,MAJU,EAAQA,CAKpB,EAGAJ,EAAO,WAAW,IAAM,SAAUI,EAAG,CACnC,OAAOA,CACT,EAGAJ,EAAO,WAAW,WAAW,EAAI,SAAUI,EAAG,CAM5C,OAJUJ,EAAO,KAAK,aAAaI,EAAG,GAAI,QAAQ,CAKpD,EAGAJ,EAAO,WAAW,oBAAoB,EAAI,SAAUI,EAAG,CAMrD,OAJUJ,EAAO,KAAK,aAAaI,EAAG,GAAI,UAAU,CAKtD,EAGAJ,EAAO,WAAW,eAAe,EAAI,SAAUI,EAAG,CAMhD,OAJUJ,EAAO,KAAK,aAAaI,EAAG,GAAI,UAAU,CAKtD,EAGAJ,EAAO,WAAW,gBAAgB,EAAI,SAAUI,EAAGE,EAAM,CAMvD,OAJUN,EAAO,KAAK,aAAaI,EAAG,GAAI,WAAYE,CAAI,CAK5D,EAGAN,EAAO,WAAW,YAAc,SAAUI,EAAGE,EAAO,CAAC,EAAG,CAMtD,GACEN,EAAO,KAAK,KAAKI,CAAC,IAAM,UACxB,CAACP,GAAM,iBAAiBO,CAAC,EAEzB,MAAMJ,EAAO,OAAO,iBAAiB,CACnC,OAAQ,GAAGI,CAAC,GACZ,SAAU,GAAGA,CAAC,GACd,MAAO,CAAC,aAAa,CACvB,CAAC,EAOH,GAAIE,EAAK,cAAgB,IAAST,GAAM,oBAAoBO,CAAC,EAC3D,MAAMJ,EAAO,OAAO,UAAU,CAC5B,OAAQ,cACR,QAAS,mCACX,CAAC,EAWH,OAAOI,CACT,EAEAJ,EAAO,WAAW,WAAa,SAAUI,EAAGqC,EAAGnC,EAAO,CAAC,EAAG,CAMxD,GACEN,EAAO,KAAK,KAAKI,CAAC,IAAM,UACxB,CAACP,GAAM,aAAaO,CAAC,GACrBA,EAAE,YAAY,OAASqC,EAAE,KAEzB,MAAMzC,EAAO,OAAO,iBAAiB,CACnC,OAAQ,GAAGyC,EAAE,IAAI,GACjB,SAAU,GAAGrC,CAAC,GACd,MAAO,CAACqC,EAAE,IAAI,CAChB,CAAC,EAOH,GAAInC,EAAK,cAAgB,IAAST,GAAM,oBAAoBO,EAAE,MAAM,EAClE,MAAMJ,EAAO,OAAO,UAAU,CAC5B,OAAQ,cACR,QAAS,mCACX,CAAC,EAWH,OAAOI,CACT,EAEAJ,EAAO,WAAW,SAAW,SAAUI,EAAGE,EAAO,CAAC,EAAG,CAGnD,GAAIN,EAAO,KAAK,KAAKI,CAAC,IAAM,UAAY,CAACP,GAAM,WAAWO,CAAC,EACzD,MAAMJ,EAAO,OAAO,UAAU,CAC5B,OAAQ,WACR,QAAS,2BACX,CAAC,EAOH,GAAIM,EAAK,cAAgB,IAAST,GAAM,oBAAoBO,EAAE,MAAM,EAClE,MAAMJ,EAAO,OAAO,UAAU,CAC5B,OAAQ,cACR,QAAS,mCACX,CAAC,EAWH,OAAOI,CACT,EAGAJ,EAAO,WAAW,aAAe,SAAUI,EAAGE,EAAO,CAAC,EAAG,CACvD,GAAIT,GAAM,iBAAiBO,CAAC,EAC1B,OAAOJ,EAAO,WAAW,YAAYI,EAAGE,CAAI,EAG9C,GAAIT,GAAM,aAAaO,CAAC,EACtB,OAAOJ,EAAO,WAAW,WAAWI,EAAGA,EAAE,WAAW,EAGtD,GAAIP,GAAM,WAAWO,CAAC,EACpB,OAAOJ,EAAO,WAAW,SAASI,EAAGE,CAAI,EAG3C,MAAM,IAAI,UAAU,qBAAqBF,CAAC,qBAAqB,CACjE,EAEAJ,EAAO,WAAW,sBAAsB,EAAIA,EAAO,kBACjDA,EAAO,WAAW,UACpB,EAEAA,EAAO,WAAW,gCAAgC,EAAIA,EAAO,kBAC3DA,EAAO,WAAW,sBAAsB,CAC1C,EAEAA,EAAO,WAAW,gCAAgC,EAAIA,EAAO,gBAC3DA,EAAO,WAAW,WAClBA,EAAO,WAAW,UACpB,EAEAJ,GAAO,QAAU,CACf,OAAAI,CACF,ICvoBA,IAAA0C,GAAAC,EAAA,CAAAC,GAAAC,KAAA,KAAMC,GAAS,QAAQ,QAAQ,EACzB,CAAE,KAAAC,EAAK,EAAI,QAAQ,QAAQ,EAC3B,CAAE,iBAAAC,EAAiB,EAAI,KAEvBC,GAAU,IAAI,YAKdC,GAAwB,+BACxBC,GAAwB,gCAIxBC,GAA4B,uCAIlC,SAASC,GAAkBC,EAAS,CAElCR,GAAOQ,EAAQ,WAAa,OAAO,EAKnC,IAAIC,EAAQC,GAAcF,EAAS,EAAI,EAGvCC,EAAQA,EAAM,MAAM,CAAC,EAGrB,IAAME,EAAW,CAAE,SAAU,CAAE,EAK3BC,EAAWC,GACb,IACAJ,EACAE,CACF,EAQMG,EAAiBF,EAAS,OAKhC,GAJAA,EAAWG,GAAsBH,EAAU,GAAM,EAAI,EAIjDD,EAAS,UAAYF,EAAM,OAC7B,MAAO,UAITE,EAAS,WAGT,IAAMK,EAAcP,EAAM,MAAMK,EAAiB,CAAC,EAG9CG,EAAOC,GAAoBF,CAAW,EAK1C,GAAI,wBAAwB,KAAKJ,CAAQ,EAAG,CAE1C,IAAMO,EAAajB,GAAiBe,CAAI,EAOxC,GAHAA,EAAOG,GAAgBD,CAAU,EAG7BF,IAAS,UACX,MAAO,UAITL,EAAWA,EAAS,MAAM,EAAG,EAAE,EAI/BA,EAAWA,EAAS,QAAQ,aAAc,EAAE,EAG5CA,EAAWA,EAAS,MAAM,EAAG,EAAE,CACjC,CAIIA,EAAS,WAAW,GAAG,IACzBA,EAAW,aAAeA,GAK5B,IAAIS,EAAiBC,GAAcV,CAAQ,EAI3C,OAAIS,IAAmB,YACrBA,EAAiBC,GAAc,6BAA6B,GAMvD,CAAE,SAAUD,EAAgB,KAAAJ,CAAK,CAC1C,CAOA,SAASP,GAAea,EAAKC,EAAkB,GAAO,CACpD,IAAMC,EAAOF,EAAI,KAEjB,GAAI,CAACC,EACH,OAAOC,EAGT,IAAMC,EAAOD,EAAK,YAAY,GAAG,EACjC,OAAIC,IAAS,GACJD,EAEFA,EAAK,MAAM,EAAGC,CAAI,CAC3B,CAQA,SAASC,GAA8BC,EAAWnB,EAAOE,EAAU,CAEjE,IAAIkB,EAAS,GAIb,KAAOlB,EAAS,SAAWF,EAAM,QAAUmB,EAAUnB,EAAME,EAAS,QAAQ,CAAC,GAE3EkB,GAAUpB,EAAME,EAAS,QAAQ,EAGjCA,EAAS,WAIX,OAAOkB,CACT,CAQA,SAAShB,GAAkCiB,EAAMrB,EAAOE,EAAU,CAChE,IAAMoB,EAAMtB,EAAM,QAAQqB,EAAMnB,EAAS,QAAQ,EAC3CqB,EAAQrB,EAAS,SAEvB,OAAIoB,IAAQ,IACVpB,EAAS,SAAWF,EAAM,OACnBA,EAAM,MAAMuB,CAAK,IAG1BrB,EAAS,SAAWoB,EACbtB,EAAM,MAAMuB,EAAOrB,EAAS,QAAQ,EAC7C,CAIA,SAASO,GAAqBT,EAAO,CAEnC,IAAMwB,EAAQ9B,GAAQ,OAAOM,CAAK,EAGlC,OAAOyB,GAAcD,CAAK,CAC5B,CAIA,SAASC,GAAezB,EAAO,CAG7B,IAAM0B,EAAS,CAAC,EAGhB,QAASC,EAAI,EAAGA,EAAI3B,EAAM,OAAQ2B,IAAK,CACrC,IAAMC,EAAO5B,EAAM2B,CAAC,EAGpB,GAAIC,IAAS,GACXF,EAAO,KAAKE,CAAI,UAQhBA,IAAS,IACT,CAAC,oBAAoB,KAAK,OAAO,aAAa5B,EAAM2B,EAAI,CAAC,EAAG3B,EAAM2B,EAAI,CAAC,CAAC,CAAC,EAEzED,EAAO,KAAK,EAAI,MAGX,CAGL,IAAMG,EAAe,OAAO,aAAa7B,EAAM2B,EAAI,CAAC,EAAG3B,EAAM2B,EAAI,CAAC,CAAC,EAC7DG,EAAY,OAAO,SAASD,EAAc,EAAE,EAGlDH,EAAO,KAAKI,CAAS,EAGrBH,GAAK,CACP,CACF,CAGA,OAAO,WAAW,KAAKD,CAAM,CAC/B,CAIA,SAASb,GAAeb,EAAO,CAG7BA,EAAQ+B,GAAqB/B,EAAO,GAAM,EAAI,EAI9C,IAAME,EAAW,CAAE,SAAU,CAAE,EAKzB8B,EAAO5B,GACX,IACAJ,EACAE,CACF,EAWA,GANI8B,EAAK,SAAW,GAAK,CAACrC,GAAsB,KAAKqC,CAAI,GAMrD9B,EAAS,SAAWF,EAAM,OAC5B,MAAO,UAITE,EAAS,WAKT,IAAI+B,EAAU7B,GACZ,IACAJ,EACAE,CACF,EAOA,GAJA+B,EAAUF,GAAqBE,EAAS,GAAO,EAAI,EAI/CA,EAAQ,SAAW,GAAK,CAACtC,GAAsB,KAAKsC,CAAO,EAC7D,MAAO,UAGT,IAAMC,EAAgBF,EAAK,YAAY,EACjCG,EAAmBF,EAAQ,YAAY,EAMvC9B,EAAW,CACf,KAAM+B,EACN,QAASC,EAET,WAAY,IAAI,IAEhB,QAAS,GAAGD,CAAa,IAAIC,CAAgB,EAC/C,EAGA,KAAOjC,EAAS,SAAWF,EAAM,QAAQ,CAEvCE,EAAS,WAITgB,GAEEG,GAAQzB,GAAsB,KAAKyB,CAAI,EACvCrB,EACAE,CACF,EAKA,IAAIkC,EAAgBlB,GACjBG,GAASA,IAAS,KAAOA,IAAS,IACnCrB,EACAE,CACF,EAOA,GAHAkC,EAAgBA,EAAc,YAAY,EAGtClC,EAAS,SAAWF,EAAM,OAAQ,CAGpC,GAAIA,EAAME,EAAS,QAAQ,IAAM,IAC/B,SAIFA,EAAS,UACX,CAGA,GAAIA,EAAS,SAAWF,EAAM,OAC5B,MAIF,IAAIqC,EAAiB,KAIrB,GAAIrC,EAAME,EAAS,QAAQ,IAAM,IAI/BmC,EAAiBC,GAA0BtC,EAAOE,EAAU,EAAI,EAIhEE,GACE,IACAJ,EACAE,CACF,UAOAmC,EAAiBjC,GACf,IACAJ,EACAE,CACF,EAGAmC,EAAiBN,GAAqBM,EAAgB,GAAO,EAAI,EAG7DA,EAAe,SAAW,EAC5B,SAWFD,EAAc,SAAW,GACzBzC,GAAsB,KAAKyC,CAAa,IACvCC,EAAe,SAAW,GAAKxC,GAA0B,KAAKwC,CAAc,IAC7E,CAAClC,EAAS,WAAW,IAAIiC,CAAa,GAEtCjC,EAAS,WAAW,IAAIiC,EAAeC,CAAc,CAEzD,CAGA,OAAOlC,CACT,CAIA,SAASQ,GAAiB4B,EAAM,CAuB9B,GArBAA,EAAOA,EAAK,QAAQ,oCAAqC,EAAE,EAIvDA,EAAK,OAAS,IAAM,IAGtBA,EAAOA,EAAK,QAAQ,OAAQ,EAAE,GAK5BA,EAAK,OAAS,IAAM,GASpB,iBAAiB,KAAKA,CAAI,EAC5B,MAAO,UAGT,IAAMC,EAAShD,GAAK+C,CAAI,EAClBf,EAAQ,IAAI,WAAWgB,EAAO,MAAM,EAE1C,QAASZ,EAAO,EAAGA,EAAOY,EAAO,OAAQZ,IACvCJ,EAAMI,CAAI,EAAIY,EAAO,WAAWZ,CAAI,EAGtC,OAAOJ,CACT,CASA,SAASc,GAA2BtC,EAAOE,EAAUuC,EAAc,CAEjE,IAAMC,EAAgBxC,EAAS,SAG3ByC,EAAQ,GAUZ,IANApD,GAAOS,EAAME,EAAS,QAAQ,IAAM,GAAG,EAGvCA,EAAS,WAOPyC,GAASzB,GACNG,GAASA,IAAS,KAAOA,IAAS,KACnCrB,EACAE,CACF,EAGI,EAAAA,EAAS,UAAYF,EAAM,SAXpB,CAiBX,IAAM4C,EAAmB5C,EAAME,EAAS,QAAQ,EAMhD,GAHAA,EAAS,WAGL0C,IAAqB,KAAM,CAG7B,GAAI1C,EAAS,UAAYF,EAAM,OAAQ,CACrC2C,GAAS,KACT,KACF,CAGAA,GAAS3C,EAAME,EAAS,QAAQ,EAGhCA,EAAS,UAGX,KAAO,CAELX,GAAOqD,IAAqB,GAAG,EAG/B,KACF,CACF,CAGA,OAAIH,EACKE,EAKF3C,EAAM,MAAM0C,EAAexC,EAAS,QAAQ,CACrD,CAKA,SAAS2C,GAAoB1C,EAAU,CACrCZ,GAAOY,IAAa,SAAS,EAC7B,GAAM,CAAE,WAAA2C,EAAY,QAAAC,CAAQ,EAAI5C,EAI5B6C,EAAgBD,EAGpB,OAAS,CAACE,EAAMN,CAAK,IAAKG,EAAW,QAAQ,EAE3CE,GAAiB,IAGjBA,GAAiBC,EAGjBD,GAAiB,IAIZrD,GAAsB,KAAKgD,CAAK,IAGnCA,EAAQA,EAAM,QAAQ,UAAW,MAAM,EAGvCA,EAAQ,IAAMA,EAGdA,GAAS,KAIXK,GAAiBL,EAInB,OAAOK,CACT,CAMA,SAASE,GAAkB7B,EAAM,CAC/B,OAAOA,IAAS,MAAQA,IAAS;AAAA,GAAQA,IAAS,KAAQA,IAAS,GACrE,CAMA,SAASU,GAAsBoB,EAAKC,EAAU,GAAMC,EAAW,GAAM,CACnE,IAAIC,EAAO,EACPC,EAAQJ,EAAI,OAAS,EAEzB,GAAIC,EACF,KAAOE,EAAOH,EAAI,QAAUD,GAAiBC,EAAIG,CAAI,CAAC,EAAGA,IAAO,CAGlE,GAAID,EACF,KAAOE,EAAQ,GAAKL,GAAiBC,EAAII,CAAK,CAAC,EAAGA,IAAQ,CAG5D,OAAOJ,EAAI,MAAMG,EAAMC,EAAQ,CAAC,CAClC,CAMA,SAASC,GAAmBnC,EAAM,CAChC,OAAOA,IAAS,MAAQA,IAAS;AAAA,GAAQA,IAAS,KAAQA,IAAS,MAAQA,IAAS,GACtF,CAKA,SAASf,GAAuB6C,EAAKC,EAAU,GAAMC,EAAW,GAAM,CACpE,IAAIC,EAAO,EACPC,EAAQJ,EAAI,OAAS,EAEzB,GAAIC,EACF,KAAOE,EAAOH,EAAI,QAAUK,GAAkBL,EAAIG,CAAI,CAAC,EAAGA,IAAO,CAGnE,GAAID,EACF,KAAOE,EAAQ,GAAKC,GAAkBL,EAAII,CAAK,CAAC,EAAGA,IAAQ,CAG7D,OAAOJ,EAAI,MAAMG,EAAMC,EAAQ,CAAC,CAClC,CAEAjE,GAAO,QAAU,CACf,iBAAAQ,GACA,cAAAG,GACA,6BAAAiB,GACA,iCAAAd,GACA,oBAAAK,GACA,cAAAI,GACA,0BAAAyB,GACA,mBAAAO,EACF,ICrnBA,IAAAY,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,KAAAC,GAAM,KAAMC,EAAW,EAAI,QAAQ,QAAQ,EAC7C,CAAE,MAAAC,EAAM,EAAI,QAAQ,MAAM,EAC1B,CAAE,OAAAC,EAAO,EAAI,KACb,CAAE,WAAAC,EAAW,EAAI,KACjB,CAAE,OAAAC,CAAO,EAAI,KACb,CAAE,cAAAC,GAAe,mBAAAC,EAAmB,EAAI,KACxC,CAAE,oBAAAC,EAAoB,EAAI,IAE1BC,GAAN,MAAMC,UAAaV,EAAK,CACtB,YAAaW,EAAUC,EAAUC,EAAU,CAAC,EAAG,CAI7CR,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,kBAAmB,CAAC,EAEvEM,EAAWN,EAAO,WAAW,oBAAoB,EAAEM,CAAQ,EAC3DC,EAAWP,EAAO,WAAW,UAAUO,CAAQ,EAC/CC,EAAUR,EAAO,WAAW,gBAAgBQ,CAAO,EAOnD,IAAMC,EAAIF,EAUNG,EAAIF,EAAQ,KACZG,EAGJC,EAAS,CACP,GAAIF,EAAG,CAGL,GAFAA,EAAIT,GAAcS,CAAC,EAEfA,IAAM,UAAW,CACnBA,EAAI,GAEJ,MAAME,CACR,CAEAF,EAAIR,GAAmBQ,CAAC,EAAE,YAAY,CACxC,CAMAC,EAAIH,EAAQ,YACd,CASA,MAAMK,GAAiBP,EAAUE,CAAO,EAAG,CAAE,KAAME,CAAE,CAAC,EACtD,KAAKZ,EAAM,EAAI,CACb,KAAMW,EACN,aAAcE,EACd,KAAMD,CACR,CACF,CAEA,IAAI,MAAQ,CACV,OAAAV,EAAO,WAAW,KAAMK,CAAI,EAErB,KAAKP,EAAM,EAAE,IACtB,CAEA,IAAI,cAAgB,CAClB,OAAAE,EAAO,WAAW,KAAMK,CAAI,EAErB,KAAKP,EAAM,EAAE,YACtB,CAEA,IAAI,MAAQ,CACV,OAAAE,EAAO,WAAW,KAAMK,CAAI,EAErB,KAAKP,EAAM,EAAE,IACtB,CACF,EAEMgB,GAAN,MAAMC,CAAS,CACb,YAAaC,EAAUT,EAAUC,EAAU,CAAC,EAAG,CAW7C,IAAMC,EAAIF,EAUJG,EAAIF,EAAQ,KASZG,EAAIH,EAAQ,cAAgB,KAAK,IAAI,EAS3C,KAAKV,EAAM,EAAI,CACb,SAAAkB,EACA,KAAMP,EACN,KAAMC,EACN,aAAcC,CAChB,CACF,CAEA,UAAWM,EAAM,CACf,OAAAjB,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,SAAS,OAAO,GAAGmB,CAAI,CAC7C,CAEA,eAAgBA,EAAM,CACpB,OAAAjB,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,SAAS,YAAY,GAAGmB,CAAI,CAClD,CAEA,SAAUA,EAAM,CACd,OAAAjB,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,SAAS,MAAM,GAAGmB,CAAI,CAC5C,CAEA,QAASA,EAAM,CACb,OAAAjB,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,SAAS,KAAK,GAAGmB,CAAI,CAC3C,CAEA,IAAI,MAAQ,CACV,OAAAjB,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,SAAS,IAC/B,CAEA,IAAI,MAAQ,CACV,OAAAE,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,SAAS,IAC/B,CAEA,IAAI,MAAQ,CACV,OAAAE,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,IACtB,CAEA,IAAI,cAAgB,CAClB,OAAAE,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,YACtB,CAEA,IAAK,OAAO,WAAW,GAAK,CAC1B,MAAO,MACT,CACF,EAEA,OAAO,iBAAiBM,GAAK,UAAW,CACtC,CAAC,OAAO,WAAW,EAAG,CACpB,MAAO,OACP,aAAc,EAChB,EACA,KAAMD,GACN,aAAcA,EAChB,CAAC,EAEDH,EAAO,WAAW,KAAOA,EAAO,mBAAmBL,EAAI,EAEvDK,EAAO,WAAW,SAAW,SAAUkB,EAAGC,EAAM,CAC9C,GAAInB,EAAO,KAAK,KAAKkB,CAAC,IAAM,SAAU,CACpC,GAAInB,GAAWmB,CAAC,EACd,OAAOlB,EAAO,WAAW,KAAKkB,EAAG,CAAE,OAAQ,EAAM,CAAC,EAGpD,GACE,YAAY,OAAOA,CAAC,GACpBrB,GAAM,iBAAiBqB,CAAC,EAExB,OAAOlB,EAAO,WAAW,aAAakB,EAAGC,CAAI,CAEjD,CAEA,OAAOnB,EAAO,WAAW,UAAUkB,EAAGC,CAAI,CAC5C,EAEAnB,EAAO,WAAW,oBAAoB,EAAIA,EAAO,kBAC/CA,EAAO,WAAW,QACpB,EAGAA,EAAO,WAAW,gBAAkBA,EAAO,oBAAoB,CAC7D,CACE,IAAK,eACL,UAAWA,EAAO,WAAW,WAAW,EACxC,IAAI,cAAgB,CAClB,OAAO,KAAK,IAAI,CAClB,CACF,EACA,CACE,IAAK,OACL,UAAWA,EAAO,WAAW,UAC7B,aAAc,EAChB,EACA,CACE,IAAK,UACL,UAAYoB,IACVA,EAAQpB,EAAO,WAAW,UAAUoB,CAAK,EACzCA,EAAQA,EAAM,YAAY,EAEtBA,IAAU,WACZA,EAAQ,eAGHA,GAET,aAAc,aAChB,CACF,CAAC,EAOD,SAASP,GAAkBQ,EAAOb,EAAS,CAGzC,IAAMc,EAAQ,CAAC,EAGf,QAAWC,KAAWF,EAEpB,GAAI,OAAOE,GAAY,SAAU,CAE/B,IAAI,EAAIA,EAKJf,EAAQ,UAAY,WACtB,EAAIgB,GAAyB,CAAC,GAIhCF,EAAM,KAAK,IAAI,YAAY,EAAE,OAAO,CAAC,CAAC,CACxC,MACEzB,GAAM,iBAAiB0B,CAAO,GAC9B1B,GAAM,aAAa0B,CAAO,EAKrBA,EAAQ,OAGXD,EAAM,KACJ,IAAI,WAAWC,EAAQ,OAAQA,EAAQ,WAAYA,EAAQ,UAAU,CACvE,EAJAD,EAAM,KAAK,IAAI,WAAWC,CAAO,CAAC,EAM3BxB,GAAWwB,CAAO,GAG3BD,EAAM,KAAKC,CAAO,EAKtB,OAAOD,CACT,CAMA,SAASE,GAA0BC,EAAG,CAEpC,IAAIC,EAAmB;AAAA,EAMvB,OAAI,QAAQ,WAAa,UACvBA,EAAmB;AAAA,GAGdD,EAAE,QAAQ,SAAUC,CAAgB,CAC7C,CAKA,SAASC,GAAYC,EAAQ,CAC3B,OACGhC,IAAcgC,aAAkBhC,IACjCgC,aAAkBxB,IAChBwB,IACC,OAAOA,EAAO,QAAW,YAC1B,OAAOA,EAAO,aAAgB,aAC9BA,EAAO,OAAO,WAAW,IAAM,MAGrC,CAEAlC,GAAO,QAAU,CAAE,KAAAU,GAAM,SAAAU,GAAU,WAAAa,EAAW,ICtV9C,IAAAE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,WAAAC,GAAY,YAAAC,GAAa,aAAAC,EAAa,EAAI,KAC5C,CAAE,OAAAC,EAAO,EAAI,KACb,CAAE,KAAMC,GAAY,SAAAC,GAAU,WAAAC,EAAW,EAAI,KAC7C,CAAE,OAAAC,CAAO,EAAI,KACb,CAAE,KAAAC,GAAM,KAAMC,EAAW,EAAI,QAAQ,QAAQ,EAG7CC,GAAOD,IAAcL,GAGrBO,GAAN,MAAMC,CAAS,CACb,YAAaC,EAAM,CACjB,GAAIA,IAAS,OACX,MAAMN,EAAO,OAAO,iBAAiB,CACnC,OAAQ,uBACR,SAAU,aACV,MAAO,CAAC,WAAW,CACrB,CAAC,EAGH,KAAKJ,EAAM,EAAI,CAAC,CAClB,CAEA,OAAQW,EAAMC,EAAOC,EAAW,OAAW,CAKzC,GAJAT,EAAO,WAAW,KAAMK,CAAQ,EAEhCL,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,iBAAkB,CAAC,EAElE,UAAU,SAAW,GAAK,CAACP,GAAWe,CAAK,EAC7C,MAAM,IAAI,UACR,6EACF,EAKFD,EAAOP,EAAO,WAAW,UAAUO,CAAI,EACvCC,EAAQf,GAAWe,CAAK,EACpBR,EAAO,WAAW,KAAKQ,EAAO,CAAE,OAAQ,EAAM,CAAC,EAC/CR,EAAO,WAAW,UAAUQ,CAAK,EACrCC,EAAW,UAAU,SAAW,EAC5BT,EAAO,WAAW,UAAUS,CAAQ,EACpC,OAIJ,IAAMC,EAAQC,GAAUJ,EAAMC,EAAOC,CAAQ,EAG7C,KAAKb,EAAM,EAAE,KAAKc,CAAK,CACzB,CAEA,OAAQH,EAAM,CACZP,EAAO,WAAW,KAAMK,CAAQ,EAEhCL,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,iBAAkB,CAAC,EAEtEO,EAAOP,EAAO,WAAW,UAAUO,CAAI,EAIvC,KAAKX,EAAM,EAAI,KAAKA,EAAM,EAAE,OAAOc,GAASA,EAAM,OAASH,CAAI,CACjE,CAEA,IAAKA,EAAM,CACTP,EAAO,WAAW,KAAMK,CAAQ,EAEhCL,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,cAAe,CAAC,EAEnEO,EAAOP,EAAO,WAAW,UAAUO,CAAI,EAIvC,IAAMK,EAAM,KAAKhB,EAAM,EAAE,UAAWc,GAAUA,EAAM,OAASH,CAAI,EACjE,OAAIK,IAAQ,GACH,KAKF,KAAKhB,EAAM,EAAEgB,CAAG,EAAE,KAC3B,CAEA,OAAQL,EAAM,CACZ,OAAAP,EAAO,WAAW,KAAMK,CAAQ,EAEhCL,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,iBAAkB,CAAC,EAEtEO,EAAOP,EAAO,WAAW,UAAUO,CAAI,EAMhC,KAAKX,EAAM,EACf,OAAQc,GAAUA,EAAM,OAASH,CAAI,EACrC,IAAKG,GAAUA,EAAM,KAAK,CAC/B,CAEA,IAAKH,EAAM,CACT,OAAAP,EAAO,WAAW,KAAMK,CAAQ,EAEhCL,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,cAAe,CAAC,EAEnEO,EAAOP,EAAO,WAAW,UAAUO,CAAI,EAIhC,KAAKX,EAAM,EAAE,UAAWc,GAAUA,EAAM,OAASH,CAAI,IAAM,EACpE,CAEA,IAAKA,EAAMC,EAAOC,EAAW,OAAW,CAKtC,GAJAT,EAAO,WAAW,KAAMK,CAAQ,EAEhCL,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,cAAe,CAAC,EAE/D,UAAU,SAAW,GAAK,CAACP,GAAWe,CAAK,EAC7C,MAAM,IAAI,UACR,0EACF,EAQFD,EAAOP,EAAO,WAAW,UAAUO,CAAI,EACvCC,EAAQf,GAAWe,CAAK,EACpBR,EAAO,WAAW,KAAKQ,EAAO,CAAE,OAAQ,EAAM,CAAC,EAC/CR,EAAO,WAAW,UAAUQ,CAAK,EACrCC,EAAW,UAAU,SAAW,EAC5Bf,GAAYe,CAAQ,EACpB,OAIJ,IAAMC,EAAQC,GAAUJ,EAAMC,EAAOC,CAAQ,EAIvCG,EAAM,KAAKhB,EAAM,EAAE,UAAWc,GAAUA,EAAM,OAASH,CAAI,EAC7DK,IAAQ,GACV,KAAKhB,EAAM,EAAI,CACb,GAAG,KAAKA,EAAM,EAAE,MAAM,EAAGgB,CAAG,EAC5BF,EACA,GAAG,KAAKd,EAAM,EAAE,MAAMgB,EAAM,CAAC,EAAE,OAAQF,GAAUA,EAAM,OAASH,CAAI,CACtE,EAGA,KAAKX,EAAM,EAAE,KAAKc,CAAK,CAE3B,CAEA,SAAW,CACT,OAAAV,EAAO,WAAW,KAAMK,CAAQ,EAEzBV,GACL,IAAM,KAAKC,EAAM,EAAE,IAAIiB,GAAQ,CAACA,EAAK,KAAMA,EAAK,KAAK,CAAC,EACtD,WACA,WACF,CACF,CAEA,MAAQ,CACN,OAAAb,EAAO,WAAW,KAAMK,CAAQ,EAEzBV,GACL,IAAM,KAAKC,EAAM,EAAE,IAAIiB,GAAQ,CAACA,EAAK,KAAMA,EAAK,KAAK,CAAC,EACtD,WACA,KACF,CACF,CAEA,QAAU,CACR,OAAAb,EAAO,WAAW,KAAMK,CAAQ,EAEzBV,GACL,IAAM,KAAKC,EAAM,EAAE,IAAIiB,GAAQ,CAACA,EAAK,KAAMA,EAAK,KAAK,CAAC,EACtD,WACA,OACF,CACF,CAMA,QAASC,EAAYC,EAAU,WAAY,CAKzC,GAJAf,EAAO,WAAW,KAAMK,CAAQ,EAEhCL,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,kBAAmB,CAAC,EAEnE,OAAOc,GAAe,WACxB,MAAM,IAAI,UACR,mFACF,EAGF,OAAW,CAACE,EAAKR,CAAK,IAAK,KACzBM,EAAW,MAAMC,EAAS,CAACP,EAAOQ,EAAK,IAAI,CAAC,CAEhD,CACF,EAEAZ,GAAS,UAAU,OAAO,QAAQ,EAAIA,GAAS,UAAU,QAEzD,OAAO,iBAAiBA,GAAS,UAAW,CAC1C,CAAC,OAAO,WAAW,EAAG,CACpB,MAAO,WACP,aAAc,EAChB,CACF,CAAC,EASD,SAASO,GAAWJ,EAAMC,EAAOC,EAAU,CASzC,GAJAF,EAAO,OAAO,KAAKA,CAAI,EAAE,SAAS,MAAM,EAIpC,OAAOC,GAAU,SACnBA,EAAQ,OAAO,KAAKA,CAAK,EAAE,SAAS,MAAM,UAMrCT,GAAWS,CAAK,IACnBA,EAAQA,aAAiBP,GACrB,IAAIE,GAAK,CAACK,CAAK,EAAG,OAAQ,CAAE,KAAMA,EAAM,IAAK,CAAC,EAC9C,IAAIV,GAASU,EAAO,OAAQ,CAAE,KAAMA,EAAM,IAAK,CAAC,GAKlDC,IAAa,OAAW,CAE1B,IAAMQ,EAAU,CACd,KAAMT,EAAM,KACZ,aAAcA,EAAM,YACtB,EAEAA,EAASN,IAAcM,aAAiBN,IAAeM,aAAiBX,GACpE,IAAIM,GAAK,CAACK,CAAK,EAAGC,EAAUQ,CAAO,EACnC,IAAInB,GAASU,EAAOC,EAAUQ,CAAO,CAC3C,CAIF,MAAO,CAAE,KAAAV,EAAM,MAAAC,CAAM,CACvB,CAEAhB,GAAO,QAAU,CAAE,SAAAY,EAAS,ICxQ5B,IAAAc,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAS,KACTC,GAAO,IACP,CACJ,mBAAAC,GACA,WAAAC,GACA,qBAAAC,GACA,oBAAAC,GACA,sBAAAC,GACA,cAAAC,EACF,EAAI,KACE,CAAE,SAAAC,EAAS,EAAI,KACf,CAAE,OAAAC,EAAO,EAAI,KACb,CAAE,OAAAC,EAAO,EAAI,KACb,CAAE,aAAAC,GAAc,gBAAAC,EAAgB,EAAI,KACpC,CAAE,KAAAC,GAAM,KAAMC,EAAW,EAAI,QAAQ,QAAQ,EAC7C,CAAE,UAAAC,EAAU,EAAI,IAChBC,GAAS,QAAQ,QAAQ,EACzB,CAAE,UAAAC,EAAU,EAAI,IAChB,CAAE,aAAAC,GAAc,cAAAC,EAAc,EAAI,QAAQ,YAAY,EACtD,CAAE,KAAMC,EAAW,EAAI,KACvB,CAAE,cAAAC,GAAe,mBAAAC,EAAmB,EAAI,KAE1CC,GAAiB,WAAW,eAG1BC,GAAOV,IAAcM,GAG3B,SAASK,GAAaC,EAAQC,EAAY,GAAO,CAC1CJ,KACHA,GAAiB,QAAQ,YAAY,EAAE,gBAIzC,IAAIK,EAAS,KAGTF,aAAkBH,GACpBK,EAASF,EACAvB,GAAWuB,CAAM,EAG1BE,EAASF,EAAO,OAAO,EAIvBE,EAAS,IAAIL,GAAe,CAC1B,MAAM,KAAMM,EAAY,CACtBA,EAAW,QACT,OAAOC,GAAW,SAAW,IAAI,YAAY,EAAE,OAAOA,CAAM,EAAIA,CAClE,EACA,eAAe,IAAMzB,GAAoBwB,CAAU,CAAC,CACtD,EACA,OAAS,CAAC,EACV,KAAM,MACR,CAAC,EAIHb,GAAOZ,GAAqBwB,CAAM,CAAC,EAGnC,IAAIG,EAAS,KAGTD,EAAS,KAGTE,EAAS,KAGTC,EAAO,KAGX,GAAI,OAAOP,GAAW,SAGpBI,EAASJ,EAGTO,EAAO,mCACEP,aAAkB,gBAS3BI,EAASJ,EAAO,SAAS,EAGzBO,EAAO,0DACEd,GAAcO,CAAM,EAI7BI,EAAS,IAAI,WAAWJ,EAAO,MAAM,CAAC,UAC7B,YAAY,OAAOA,CAAM,EAIlCI,EAAS,IAAI,WAAWJ,EAAO,OAAO,MAAMA,EAAO,WAAYA,EAAO,WAAaA,EAAO,UAAU,CAAC,UAC5FzB,GAAK,eAAeyB,CAAM,EAAG,CACtC,IAAMQ,EAAW,wBAAwB,GAAG,KAAK,MAAM,KAAK,OAAO,EAAI,IAAI,CAAC,GAAG,SAAS,GAAI,GAAG,CAAC,GAC1FC,EAAS,KAAKD,CAAQ;AAAA,gCAG5B,IAAME,EAAUC,GACdA,EAAI,QAAQ,MAAO,KAAK,EAAE,QAAQ,MAAO,KAAK,EAAE,QAAQ,KAAM,KAAK,EAC/DC,EAAsBC,GAAUA,EAAM,QAAQ,YAAa;AAAA,CAAM,EAQjEC,EAAM,IAAI,YACVC,EAAY,CAAC,EACbC,EAAK,IAAI,WAAW,CAAC,GAAI,EAAE,CAAC,EAClCV,EAAS,EACT,IAAIW,EAAsB,GAE1B,OAAW,CAACC,EAAML,CAAK,IAAKb,EAC1B,GAAI,OAAOa,GAAU,SAAU,CAC7B,IAAMM,EAAQL,EAAI,OAAOL,EACvB,WAAWC,EAAOE,EAAmBM,CAAI,CAAC,CAAC;AAAA;AAAA,EAChCN,EAAmBC,CAAK,CAAC;AAAA,CAAM,EAC5CE,EAAU,KAAKI,CAAK,EACpBb,GAAUa,EAAM,UAClB,KAAO,CACL,IAAMA,EAAQL,EAAI,OAAO,GAAGL,CAAM,WAAWC,EAAOE,EAAmBM,CAAI,CAAC,CAAC,KAC1EL,EAAM,KAAO,eAAeH,EAAOG,EAAM,IAAI,CAAC,IAAM,IAAM;AAAA,gBAEzDA,EAAM,MAAQ,0BAChB;AAAA;AAAA,CAAU,EACZE,EAAU,KAAKI,EAAON,EAAOG,CAAE,EAC3B,OAAOH,EAAM,MAAS,SACxBP,GAAUa,EAAM,WAAaN,EAAM,KAAOG,EAAG,WAE7CC,EAAsB,EAE1B,CAGF,IAAME,EAAQL,EAAI,OAAO,KAAKN,CAAQ,IAAI,EAC1CO,EAAU,KAAKI,CAAK,EACpBb,GAAUa,EAAM,WACZF,IACFX,EAAS,MAIXF,EAASJ,EAETK,EAAS,iBAAoB,CAC3B,QAAWe,KAAQL,EACbK,EAAK,OACP,MAAQA,EAAK,OAAO,EAEpB,MAAMA,CAGZ,EAKAb,EAAO,iCAAmCC,CAC5C,SAAW/B,GAAWuB,CAAM,EAI1BI,EAASJ,EAGTM,EAASN,EAAO,KAIZA,EAAO,OACTO,EAAOP,EAAO,cAEP,OAAOA,EAAO,OAAO,aAAa,GAAM,WAAY,CAE7D,GAAIC,EACF,MAAM,IAAI,UAAU,WAAW,EAIjC,GAAI1B,GAAK,YAAYyB,CAAM,GAAKA,EAAO,OACrC,MAAM,IAAI,UACR,wDACF,EAGFE,EACEF,aAAkBH,GAAiBG,EAASxB,GAAmBwB,CAAM,CACzE,CASA,IALI,OAAOI,GAAW,UAAY7B,GAAK,SAAS6B,CAAM,KACpDE,EAAS,OAAO,WAAWF,CAAM,GAI/BC,GAAU,KAAM,CAElB,IAAIgB,EACJnB,EAAS,IAAIL,GAAe,CAC1B,MAAM,OAAS,CACbwB,EAAWhB,EAAOL,CAAM,EAAE,OAAO,aAAa,EAAE,CAClD,EACA,MAAM,KAAMG,EAAY,CACtB,GAAM,CAAE,MAAAU,EAAO,KAAAS,CAAK,EAAI,MAAMD,EAAS,KAAK,EAC5C,OAAIC,EAEF,eAAe,IAAM,CACnBnB,EAAW,MAAM,CACnB,CAAC,EAKIZ,GAAUW,CAAM,GACnBC,EAAW,QAAQ,IAAI,WAAWU,CAAK,CAAC,EAGrCV,EAAW,YAAc,CAClC,EACA,MAAM,OAAQoB,EAAQ,CACpB,MAAMF,EAAS,OAAO,CACxB,EACA,KAAM,MACR,CAAC,CACH,CAOA,MAAO,CAHM,CAAE,OAAAnB,EAAQ,OAAAE,EAAQ,OAAAE,CAAO,EAGxBC,CAAI,CACpB,CAGA,SAASiB,GAAmBxB,EAAQC,EAAY,GAAO,CACrD,OAAKJ,KAEHA,GAAiB,QAAQ,YAAY,EAAE,gBAOrCG,aAAkBH,KAGpBP,GAAO,CAACf,GAAK,YAAYyB,CAAM,EAAG,qCAAqC,EAEvEV,GAAO,CAACU,EAAO,OAAQ,uBAAuB,GAIzCD,GAAYC,EAAQC,CAAS,CACtC,CAEA,SAASwB,GAAWC,EAAM,CAMxB,GAAM,CAACC,EAAMC,CAAI,EAAIF,EAAK,OAAO,IAAI,EAC/BG,EAAY3C,GAAgB0C,EAAM,CAAE,SAAU,CAACA,CAAI,CAAE,CAAC,EAGtD,CAAC,CAAEE,CAAU,EAAID,EAAU,IAAI,EAGrC,OAAAH,EAAK,OAASC,EAGP,CACL,OAAQG,EACR,OAAQJ,EAAK,OACb,OAAQA,EAAK,MACf,CACF,CAEA,eAAiBK,GAAaL,EAAM,CAClC,GAAIA,EACF,GAAIlC,GAAakC,CAAI,EACnB,MAAMA,MACD,CACL,IAAMxB,EAASwB,EAAK,OAEpB,GAAInD,GAAK,YAAY2B,CAAM,EACzB,MAAM,IAAI,UAAU,qCAAqC,EAG3D,GAAIA,EAAO,OACT,MAAM,IAAI,UAAU,uBAAuB,EAI7CA,EAAOb,EAAS,EAAI,GAEpB,MAAQa,CACV,CAEJ,CAEA,SAAS8B,GAAgBC,EAAO,CAC9B,GAAIA,EAAM,QACR,MAAM,IAAIhD,GAAa,6BAA8B,YAAY,CAErE,CAEA,SAASiD,GAAkBC,EAAU,CA8JnC,MA7JgB,CACd,MAAQ,CAMN,OAAOC,GAAgB,KAAOC,GAAU,CACtC,IAAIC,EAAWC,GAAa,IAAI,EAEhC,OAAID,IAAa,UACfA,EAAW,GACFA,IACTA,EAAW1C,GAAmB0C,CAAQ,GAKjC,IAAInD,GAAK,CAACkD,CAAK,EAAG,CAAE,KAAMC,CAAS,CAAC,CAC7C,EAAGH,CAAQ,CACb,EAEA,aAAe,CAKb,OAAOC,GAAgB,KAAOC,GACrB,IAAI,WAAWA,CAAK,EAAE,OAC5BF,CAAQ,CACb,EAEA,MAAQ,CAGN,OAAOC,GAAgB,KAAMI,GAAiBL,CAAQ,CACxD,EAEA,MAAQ,CAGN,OAAOC,GAAgB,KAAMK,GAAoBN,CAAQ,CAC3D,EAEA,MAAM,UAAY,CAChBnD,GAAO,WAAW,KAAMmD,CAAQ,EAEhCH,GAAe,KAAKjD,EAAM,CAAC,EAE3B,IAAM2D,EAAc,KAAK,QAAQ,IAAI,cAAc,EAGnD,GAAI,uBAAuB,KAAKA,CAAW,EAAG,CAC5C,IAAMC,EAAU,CAAC,EACjB,OAAW,CAACC,EAAK/B,CAAK,IAAK,KAAK,QAAS8B,EAAQC,EAAI,YAAY,CAAC,EAAI/B,EAEtE,IAAMgC,EAAmB,IAAI/D,GAEzBgE,EAEJ,GAAI,CACFA,EAASxE,GAAO,CACd,QAAAqE,EACA,gBAAiB,MACnB,CAAC,CACH,OAASI,EAAK,CACZ,MAAM,IAAI9D,GAAa,GAAG8D,CAAG,GAAI,YAAY,CAC/C,CAEAD,EAAO,GAAG,QAAS,CAAC5B,EAAML,IAAU,CAClCgC,EAAiB,OAAO3B,EAAML,CAAK,CACrC,CAAC,EACDiC,EAAO,GAAG,OAAQ,CAAC5B,EAAML,EAAOmC,IAAS,CACvC,GAAM,CAAE,SAAAC,EAAU,SAAAC,EAAU,SAAAZ,CAAS,EAAIU,EACnCG,EAAS,CAAC,EAEhB,GAAID,IAAa,UAAYA,EAAS,YAAY,IAAM,SAAU,CAChE,IAAIE,EAAc,GAElBvC,EAAM,GAAG,OAASM,GAAU,CAC1BiC,GAAejC,EAAM,SAAS,EAAE,QAAQ,WAAY,EAAE,EAEtD,IAAMkC,EAAMD,EAAY,OAASA,EAAY,OAAS,EACtDD,EAAO,KAAK,OAAO,KAAKC,EAAY,MAAM,EAAGC,CAAG,EAAG,QAAQ,CAAC,EAE5DD,EAAcA,EAAY,MAAMC,CAAG,CACrC,CAAC,EACDxC,EAAM,GAAG,MAAO,IAAM,CACpBsC,EAAO,KAAK,OAAO,KAAKC,EAAa,QAAQ,CAAC,EAC9CP,EAAiB,OAAO3B,EAAM,IAAIpB,GAAKqD,EAAQF,EAAU,CAAE,KAAMX,CAAS,CAAC,CAAC,CAC9E,CAAC,CACH,MACEzB,EAAM,GAAG,OAASM,GAAU,CAC1BgC,EAAO,KAAKhC,CAAK,CACnB,CAAC,EACDN,EAAM,GAAG,MAAO,IAAM,CACpBgC,EAAiB,OAAO3B,EAAM,IAAIpB,GAAKqD,EAAQF,EAAU,CAAE,KAAMX,CAAS,CAAC,CAAC,CAC9E,CAAC,CAEL,CAAC,EAED,IAAMgB,EAAgB,IAAI,QAAQ,CAACC,EAASC,IAAW,CACrDV,EAAO,GAAG,SAAUS,CAAO,EAC3BT,EAAO,GAAG,QAAUC,GAAQS,EAAO,IAAI,UAAUT,CAAG,CAAC,CAAC,CACxD,CAAC,EAED,GAAI,KAAK,OAAS,KAAM,cAAiB5B,KAASY,GAAY,KAAKhD,EAAM,EAAE,IAAI,EAAG+D,EAAO,MAAM3B,CAAK,EACpG,OAAA2B,EAAO,IAAI,EACX,MAAMQ,EAECT,CACT,SAAW,qCAAqC,KAAKH,CAAW,EAAG,CAIjE,IAAIe,EACJ,GAAI,CACF,IAAIC,EAAO,GAGLC,EAAc,IAAI,YAAY,QAAS,CAAE,UAAW,EAAK,CAAC,EAChE,cAAiBxC,KAASY,GAAY,KAAKhD,EAAM,EAAE,IAAI,EAAG,CACxD,GAAI,CAACS,GAAa2B,CAAK,EACrB,MAAM,IAAI,UAAU,2BAA2B,EAEjDuC,GAAQC,EAAY,OAAOxC,EAAO,CAAE,OAAQ,EAAK,CAAC,CACpD,CACAuC,GAAQC,EAAY,OAAO,EAC3BF,EAAU,IAAI,gBAAgBC,CAAI,CACpC,OAASX,EAAK,CAGZ,MAAM,OAAO,OAAO,IAAI,UAAa,CAAE,MAAOA,CAAI,CAAC,CACrD,CAGA,IAAMa,EAAW,IAAI9E,GACrB,OAAW,CAACoC,EAAML,CAAK,IAAK4C,EAC1BG,EAAS,OAAO1C,EAAML,CAAK,EAE7B,OAAO+C,CACT,KAGE,aAAM,QAAQ,QAAQ,EAEtB5B,GAAe,KAAKjD,EAAM,CAAC,EAGrBC,GAAO,OAAO,UAAU,CAC5B,OAAQ,GAAGmD,EAAS,IAAI,YACxB,QAAS,sCACX,CAAC,CAEL,CACF,CAGF,CAEA,SAAS0B,GAAWC,EAAW,CAC7B,OAAO,OAAOA,EAAU,UAAW5B,GAAiB4B,CAAS,CAAC,CAChE,CAQA,eAAe1B,GAAiBpC,EAAQ+D,EAAuB5B,EAAU,CAOvE,GANAnD,GAAO,WAAWgB,EAAQmC,CAAQ,EAElCH,GAAehC,EAAOjB,EAAM,CAAC,EAIzBiF,GAAahE,EAAOjB,EAAM,EAAE,IAAI,EAClC,MAAM,IAAI,UAAU,kBAAkB,EAIxC,IAAMkF,EAAUrF,GAAsB,EAGhCsF,EAAcC,GAAUF,EAAQ,OAAOE,CAAK,EAM5CC,EAAgBC,GAAS,CAC7B,GAAI,CACFJ,EAAQ,QAAQF,EAAsBM,CAAI,CAAC,CAC7C,OAASC,EAAG,CACVJ,EAAWI,CAAC,CACd,CACF,EAIA,OAAItE,EAAOjB,EAAM,EAAE,MAAQ,MACzBqF,EAAa,IAAI,UAAY,EACtBH,EAAQ,UAKjBpF,GAAcmB,EAAOjB,EAAM,EAAE,KAAMqF,EAAcF,CAAU,EAGpDD,EAAQ,QACjB,CAGA,SAASD,GAActC,EAAM,CAI3B,OAAOA,GAAQ,OAASA,EAAK,OAAO,QAAUnD,GAAK,YAAYmD,EAAK,MAAM,EAC5E,CAMA,SAASc,GAAiB+B,EAAQ,CAChC,OAAIA,EAAO,SAAW,EACb,IAQLA,EAAO,CAAC,IAAM,KAAQA,EAAO,CAAC,IAAM,KAAQA,EAAO,CAAC,IAAM,MAC5DA,EAASA,EAAO,SAAS,CAAC,GAKb,IAAI,YAAY,EAAE,OAAOA,CAAM,EAIhD,CAMA,SAAS9B,GAAoBJ,EAAO,CAClC,OAAO,KAAK,MAAMG,GAAgBH,CAAK,CAAC,CAC1C,CAMA,SAASE,GAAcvC,EAAQ,CAC7B,GAAM,CAAE,YAAAwE,CAAY,EAAIxE,EAAOjB,EAAM,EAC/B2D,EAAc8B,EAAY,IAAI,cAAc,EAElD,OAAI9B,IAAgB,KACX,UAGF/C,GAAc+C,CAAW,CAClC,CAEArE,GAAO,QAAU,CACf,YAAA0B,GACA,kBAAAyB,GACA,UAAAC,GACA,UAAAoC,EACF,IC1lBA,IAAAY,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CACJ,qBAAAC,GACA,kBAAAC,EACF,EAAI,IACEC,GAAS,QAAQ,QAAQ,EACzBC,GAAO,IAUPC,GAAc,kCAQdC,GAAkB,0BAGlBC,GAAmB,mBAEnBC,GAAW,OAAO,SAAS,EAE3BC,GAAW,CAAC,EAEdC,GAEJ,GAAI,CACF,IAAMC,EAAqB,QAAQ,qBAAqB,EACxDF,GAAS,OAASE,EAAmB,QAAQ,uBAAuB,EACpEF,GAAS,SAAWE,EAAmB,QAAQ,yBAAyB,EACxEF,GAAS,QAAUE,EAAmB,QAAQ,wBAAwB,EACtEF,GAAS,SAAWE,EAAmB,QAAQ,yBAAyB,EACxEF,GAAS,MAAQE,EAAmB,QAAQ,sBAAsB,CACpE,MAAQ,CACNF,GAAS,OAAS,CAAE,eAAgB,EAAM,EAC1CA,GAAS,SAAW,CAAE,eAAgB,EAAM,EAC5CA,GAAS,QAAU,CAAE,eAAgB,EAAM,EAC3CA,GAAS,SAAW,CAAE,eAAgB,EAAM,EAC5CA,GAAS,MAAQ,CAAE,eAAgB,EAAM,CAC3C,CAEA,IAAMG,GAAN,KAAc,CACZ,YAAaC,EAAQ,CACnB,KAAAC,EACA,OAAAC,EACA,KAAAC,EACA,QAAAC,EACA,MAAAC,EACA,WAAAC,EACA,SAAAC,EACA,QAAAC,EACA,eAAAC,EACA,YAAAC,EACA,MAAAC,EACA,aAAAC,CACF,EAAGC,EAAS,CACV,GAAI,OAAOZ,GAAS,SAClB,MAAM,IAAIb,GAAqB,uBAAuB,EACjD,GACLa,EAAK,CAAC,IAAM,KACZ,EAAEA,EAAK,WAAW,SAAS,GAAKA,EAAK,WAAW,UAAU,IAC1DC,IAAW,UAEX,MAAM,IAAId,GAAqB,oDAAoD,EAC9E,GAAIM,GAAiB,KAAKO,CAAI,IAAM,KACzC,MAAM,IAAIb,GAAqB,sBAAsB,EAGvD,GAAI,OAAOc,GAAW,SACpB,MAAM,IAAId,GAAqB,yBAAyB,EACnD,GAAII,GAAY,KAAKU,CAAM,IAAM,KACtC,MAAM,IAAId,GAAqB,wBAAwB,EAGzD,GAAIoB,GAAW,OAAOA,GAAY,SAChC,MAAM,IAAIpB,GAAqB,0BAA0B,EAG3D,GAAIqB,GAAkB,OAAS,CAAC,OAAO,SAASA,CAAc,GAAKA,EAAiB,GAClF,MAAM,IAAIrB,GAAqB,wBAAwB,EAGzD,GAAIsB,GAAe,OAAS,CAAC,OAAO,SAASA,CAAW,GAAKA,EAAc,GACzE,MAAM,IAAItB,GAAqB,qBAAqB,EAGtD,GAAIuB,GAAS,MAAQ,OAAOA,GAAU,UACpC,MAAM,IAAIvB,GAAqB,eAAe,EAWhD,GARA,KAAK,eAAiBqB,EAEtB,KAAK,YAAcC,EAEnB,KAAK,aAAeE,IAAiB,GAErC,KAAK,OAASV,EAEVC,GAAQ,KACV,KAAK,KAAO,aACHZ,GAAK,SAASY,CAAI,EAC3B,KAAK,KAAOA,UACHZ,GAAK,SAASY,CAAI,EAC3B,KAAK,KAAOA,EAAK,WAAaA,EAAO,aAC5B,YAAY,OAAOA,CAAI,EAChC,KAAK,KAAOA,EAAK,OAAO,WAAa,OAAO,KAAKA,EAAK,OAAQA,EAAK,WAAYA,EAAK,UAAU,EAAI,aACzFA,aAAgB,YACzB,KAAK,KAAOA,EAAK,WAAa,OAAO,KAAKA,CAAI,EAAI,aACzC,OAAOA,GAAS,SACzB,KAAK,KAAOA,EAAK,OAAS,OAAO,KAAKA,CAAI,EAAI,aACrCZ,GAAK,eAAeY,CAAI,GAAKZ,GAAK,WAAWY,CAAI,GAAKZ,GAAK,WAAWY,CAAI,EACnF,KAAK,KAAOA,MAEZ,OAAM,IAAIf,GAAqB,uFAAuF,EA6BxH,GA1BA,KAAK,UAAY,GAEjB,KAAK,QAAU,GAEf,KAAK,QAAUoB,GAAW,KAE1B,KAAK,KAAOH,EAAQd,GAAK,SAASU,EAAMI,CAAK,EAAIJ,EAEjD,KAAK,OAASD,EAEd,KAAK,WAAaM,IACdJ,IAAW,QAAUA,IAAW,OAGpC,KAAK,SAAWK,GAAmB,GAEnC,KAAK,MAAQI,GAAgB,KAE7B,KAAK,KAAO,KAEZ,KAAK,cAAgB,KAErB,KAAK,YAAc,KAEnB,KAAK,QAAU,GAEX,MAAM,QAAQP,CAAO,EAAG,CAC1B,GAAIA,EAAQ,OAAS,IAAM,EACzB,MAAM,IAAIhB,GAAqB,4BAA4B,EAE7D,QAAS0B,EAAI,EAAGA,EAAIV,EAAQ,OAAQU,GAAK,EACvCC,GAAc,KAAMX,EAAQU,CAAC,EAAGV,EAAQU,EAAI,CAAC,CAAC,CAElD,SAAWV,GAAW,OAAOA,GAAY,SAAU,CACjD,IAAMY,EAAO,OAAO,KAAKZ,CAAO,EAChC,QAASU,EAAI,EAAGA,EAAIE,EAAK,OAAQF,IAAK,CACpC,IAAMG,EAAMD,EAAKF,CAAC,EAClBC,GAAc,KAAME,EAAKb,EAAQa,CAAG,CAAC,CACvC,CACF,SAAWb,GAAW,KACpB,MAAM,IAAIhB,GAAqB,uCAAuC,EAGxE,GAAIG,GAAK,eAAe,KAAK,IAAI,EAAG,CAClC,GAAIA,GAAK,UAAY,IAAOA,GAAK,YAAc,IAAMA,GAAK,UAAY,EACpE,MAAM,IAAIH,GAAqB,8DAA8D,EAG1FS,KACHA,GAAc,KAA4B,aAG5C,GAAM,CAACqB,EAAYC,CAAW,EAAItB,GAAYM,CAAI,EAC9C,KAAK,aAAe,OACtB,KAAK,YAAcgB,EACnB,KAAK,SAAW,iBAAiBA,CAAW;AAAA,GAE9C,KAAK,KAAOD,EAAW,OACvB,KAAK,cAAgBA,EAAW,MAClC,MAAW3B,GAAK,WAAWY,CAAI,GAAK,KAAK,aAAe,MAAQA,EAAK,OACnE,KAAK,YAAcA,EAAK,KACxB,KAAK,SAAW,iBAAiBA,EAAK,IAAI;AAAA,GAG5CZ,GAAK,gBAAgBsB,EAASX,EAAQM,CAAO,EAE7C,KAAK,WAAajB,GAAK,cAAc,KAAK,IAAI,EAE9C,KAAKI,EAAQ,EAAIkB,EAEbjB,GAAS,OAAO,gBAClBA,GAAS,OAAO,QAAQ,CAAE,QAAS,IAAK,CAAC,CAE7C,CAEA,WAAYwB,EAAO,CACjB,GAAI,KAAKzB,EAAQ,EAAE,WACjB,GAAI,CACF,KAAKA,EAAQ,EAAE,WAAWyB,CAAK,CACjC,OAASC,EAAK,CACZ,KAAK,QAAQA,CAAG,CAClB,CAEJ,CAEA,eAAiB,CACXzB,GAAS,SAAS,gBACpBA,GAAS,SAAS,QAAQ,CAAE,QAAS,IAAK,CAAC,CAE/C,CAEA,UAAW0B,EAAO,CAChB,OAAAhC,GAAO,CAAC,KAAK,OAAO,EACpBA,GAAO,CAAC,KAAK,SAAS,EAEf,KAAKK,EAAQ,EAAE,UAAU2B,CAAK,CACvC,CAEA,UAAWC,EAAYnB,EAASoB,EAAQC,EAAY,CAClD,OAAAnC,GAAO,CAAC,KAAK,OAAO,EACpBA,GAAO,CAAC,KAAK,SAAS,EAElBM,GAAS,QAAQ,gBACnBA,GAAS,QAAQ,QAAQ,CAAE,QAAS,KAAM,SAAU,CAAE,WAAA2B,EAAY,QAAAnB,EAAS,WAAAqB,CAAW,CAAE,CAAC,EAGpF,KAAK9B,EAAQ,EAAE,UAAU4B,EAAYnB,EAASoB,EAAQC,CAAU,CACzE,CAEA,OAAQL,EAAO,CACb,OAAA9B,GAAO,CAAC,KAAK,OAAO,EACpBA,GAAO,CAAC,KAAK,SAAS,EAEf,KAAKK,EAAQ,EAAE,OAAOyB,CAAK,CACpC,CAEA,UAAWG,EAAYnB,EAASsB,EAAQ,CACtC,OAAApC,GAAO,CAAC,KAAK,OAAO,EACpBA,GAAO,CAAC,KAAK,SAAS,EAEf,KAAKK,EAAQ,EAAE,UAAU4B,EAAYnB,EAASsB,CAAM,CAC7D,CAEA,WAAYC,EAAU,CACpB,OAAArC,GAAO,CAAC,KAAK,OAAO,EAEpB,KAAK,UAAY,GACbM,GAAS,SAAS,gBACpBA,GAAS,SAAS,QAAQ,CAAE,QAAS,KAAM,SAAA+B,CAAS,CAAC,EAEhD,KAAKhC,EAAQ,EAAE,WAAWgC,CAAQ,CAC3C,CAEA,QAASC,EAAO,CAKd,GAJIhC,GAAS,MAAM,gBACjBA,GAAS,MAAM,QAAQ,CAAE,QAAS,KAAM,MAAAgC,CAAM,CAAC,EAG7C,MAAK,QAGT,YAAK,QAAU,GACR,KAAKjC,EAAQ,EAAE,QAAQiC,CAAK,CACrC,CAEA,UAAWX,EAAKY,EAAO,CACrB,OAAAd,GAAc,KAAME,EAAKY,CAAK,EACvB,IACT,CACF,EAEA,SAASC,GAAoBb,EAAKc,EAAK,CACrC,GAAIA,GAAO,OAAOA,GAAQ,SACxB,MAAM,IAAI3C,GAAqB,WAAW6B,CAAG,SAAS,EAKxD,GAFAc,EAAMA,GAAO,KAAO,GAAGA,CAAG,GAAK,GAE3BtC,GAAgB,KAAKsC,CAAG,IAAM,KAChC,MAAM,IAAI3C,GAAqB,WAAW6B,CAAG,SAAS,EAGxD,MAAO,GAAGA,CAAG,KAAKc,CAAG;AAAA,CACvB,CAEA,SAAShB,GAAeiB,EAASf,EAAKc,EAAK,CACzC,GAAIA,GAAQ,OAAOA,GAAQ,UAAY,CAAC,MAAM,QAAQA,CAAG,EACvD,MAAM,IAAI3C,GAAqB,WAAW6B,CAAG,SAAS,EACjD,GAAIc,IAAQ,OACjB,OAGF,GACEC,EAAQ,OAAS,MACjBf,EAAI,SAAW,GACfA,EAAI,YAAY,IAAM,OACtB,CACA,GAAIxB,GAAgB,KAAKsC,CAAG,IAAM,KAChC,MAAM,IAAI3C,GAAqB,WAAW6B,CAAG,SAAS,EAGxDe,EAAQ,KAAOD,CACjB,SACEC,EAAQ,gBAAkB,MAC1Bf,EAAI,SAAW,IACfA,EAAI,YAAY,IAAM,kBAGtB,GADAe,EAAQ,cAAgB,SAASD,EAAK,EAAE,EACpC,CAAC,OAAO,SAASC,EAAQ,aAAa,EACxC,MAAM,IAAI5C,GAAqB,+BAA+B,UAGhE4C,EAAQ,cAAgB,MACxBf,EAAI,SAAW,IACfA,EAAI,YAAY,IAAM,eAEtBe,EAAQ,YAAcD,EACtBC,EAAQ,SAAWF,GAAmBb,EAAKc,CAAG,MACzC,IACLd,EAAI,SAAW,IACfA,EAAI,YAAY,IAAM,oBAEtB,MAAM,IAAI7B,GAAqB,kCAAkC,EAC5D,GACL6B,EAAI,SAAW,IACfA,EAAI,YAAY,IAAM,aACtB,CACA,IAAMY,EAAQ,OAAOE,GAAQ,SAAWA,EAAI,YAAY,EAAI,KAC5D,GAAIF,IAAU,SAAWA,IAAU,aACjC,MAAM,IAAIzC,GAAqB,2BAA2B,EACjDyC,IAAU,UACnBG,EAAQ,MAAQ,GAEpB,KAAO,IACLf,EAAI,SAAW,IACfA,EAAI,YAAY,IAAM,aAEtB,MAAM,IAAI7B,GAAqB,2BAA2B,EACrD,GACL6B,EAAI,SAAW,GACfA,EAAI,YAAY,IAAM,UAEtB,MAAM,IAAI7B,GAAqB,wBAAwB,EAClD,GACL6B,EAAI,SAAW,GACfA,EAAI,YAAY,IAAM,SAEtB,MAAM,IAAI5B,GAAkB,6BAA6B,EACpD,GAAIG,GAAY,KAAKyB,CAAG,IAAM,KACnC,MAAM,IAAI7B,GAAqB,oBAAoB,EAEnD,GAAI,MAAM,QAAQ2C,CAAG,EACnB,QAASjB,EAAI,EAAGA,EAAIiB,EAAI,OAAQjB,IAC9BkB,EAAQ,SAAWF,GAAmBb,EAAKc,EAAIjB,CAAC,CAAC,OAGnDkB,EAAQ,SAAWF,GAAmBb,EAAKc,CAAG,GAGpD,CAEA5C,GAAO,QAAUY,KC/WjB,IAAAkC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAe,QAAQ,QAAQ,EAE/BC,GAAN,cAAyBD,EAAa,CACpC,UAAY,CACV,MAAM,IAAI,MAAM,iBAAiB,CACnC,CAEA,OAAS,CACP,MAAM,IAAI,MAAM,iBAAiB,CACnC,CAEA,SAAW,CACT,MAAM,IAAI,MAAM,iBAAiB,CACnC,CACF,EAEAD,GAAO,QAAUE,KClBjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAa,KACb,CACJ,qBAAAC,GACA,kBAAAC,GACA,qBAAAC,EACF,EAAI,IACE,CAAE,SAAAC,GAAU,OAAAC,GAAQ,UAAAC,GAAW,cAAAC,EAAc,EAAI,IAEjDC,GAAa,OAAO,WAAW,EAC/BC,GAAU,OAAO,QAAQ,EACzBC,GAAe,OAAO,aAAa,EACnCC,GAAY,OAAO,UAAU,EAC7BC,GAAuB,OAAO,sBAAsB,EAEpDC,GAAN,cAA6Bb,EAAW,CACtC,aAAe,CACb,MAAM,EAEN,KAAKQ,EAAU,EAAI,GACnB,KAAKE,EAAY,EAAI,KACrB,KAAKD,EAAO,EAAI,GAChB,KAAKE,EAAS,EAAI,CAAC,CACrB,CAEA,IAAI,WAAa,CACf,OAAO,KAAKH,EAAU,CACxB,CAEA,IAAI,QAAU,CACZ,OAAO,KAAKC,EAAO,CACrB,CAEA,IAAI,cAAgB,CAClB,OAAO,KAAKF,EAAa,CAC3B,CAEA,IAAI,aAAcO,EAAiB,CACjC,GAAIA,GACF,QAASC,EAAID,EAAgB,OAAS,EAAGC,GAAK,EAAGA,IAE/C,GAAI,OADgB,KAAKR,EAAa,EAAEQ,CAAC,GACd,WACzB,MAAM,IAAIZ,GAAqB,iCAAiC,EAKtE,KAAKI,EAAa,EAAIO,CACxB,CAEA,MAAOE,EAAU,CACf,GAAIA,IAAa,OACf,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtC,KAAK,MAAM,CAACC,EAAKC,IACRD,EAAMD,EAAOC,CAAG,EAAIF,EAAQG,CAAI,CACxC,CACH,CAAC,EAGH,GAAI,OAAOJ,GAAa,WACtB,MAAM,IAAIb,GAAqB,kBAAkB,EAGnD,GAAI,KAAKK,EAAU,EAAG,CACpB,eAAe,IAAMQ,EAAS,IAAIf,GAAwB,IAAI,CAAC,EAC/D,MACF,CAEA,GAAI,KAAKQ,EAAO,EAAG,CACb,KAAKE,EAAS,EAChB,KAAKA,EAAS,EAAE,KAAKK,CAAQ,EAE7B,eAAe,IAAMA,EAAS,KAAM,IAAI,CAAC,EAE3C,MACF,CAEA,KAAKP,EAAO,EAAI,GAChB,KAAKE,EAAS,EAAE,KAAKK,CAAQ,EAE7B,IAAMK,EAAW,IAAM,CACrB,IAAMC,EAAY,KAAKX,EAAS,EAChC,KAAKA,EAAS,EAAI,KAClB,QAASI,EAAI,EAAGA,EAAIO,EAAU,OAAQP,IACpCO,EAAUP,CAAC,EAAE,KAAM,IAAI,CAE3B,EAGA,KAAKV,EAAM,EAAE,EACV,KAAK,IAAM,KAAK,QAAQ,CAAC,EACzB,KAAK,IAAM,CACV,eAAegB,CAAQ,CACzB,CAAC,CACL,CAEA,QAASF,EAAKH,EAAU,CAMtB,GALI,OAAOG,GAAQ,aACjBH,EAAWG,EACXA,EAAM,MAGJH,IAAa,OACf,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtC,KAAK,QAAQC,EAAK,CAACA,EAAKC,IACfD,EAAqDD,EAAOC,CAAG,EAAIF,EAAQG,CAAI,CACvF,CACH,CAAC,EAGH,GAAI,OAAOJ,GAAa,WACtB,MAAM,IAAIb,GAAqB,kBAAkB,EAGnD,GAAI,KAAKK,EAAU,EAAG,CAChB,KAAKE,EAAY,EACnB,KAAKA,EAAY,EAAE,KAAKM,CAAQ,EAEhC,eAAe,IAAMA,EAAS,KAAM,IAAI,CAAC,EAE3C,MACF,CAEKG,IACHA,EAAM,IAAIlB,IAGZ,KAAKO,EAAU,EAAI,GACnB,KAAKE,EAAY,EAAI,KAAKA,EAAY,GAAK,CAAC,EAC5C,KAAKA,EAAY,EAAE,KAAKM,CAAQ,EAEhC,IAAMO,EAAc,IAAM,CACxB,IAAMD,EAAY,KAAKZ,EAAY,EACnC,KAAKA,EAAY,EAAI,KACrB,QAASK,EAAI,EAAGA,EAAIO,EAAU,OAAQP,IACpCO,EAAUP,CAAC,EAAE,KAAM,IAAI,CAE3B,EAGA,KAAKX,EAAQ,EAAEe,CAAG,EAAE,KAAK,IAAM,CAC7B,eAAeI,CAAW,CAC5B,CAAC,CACH,CAEA,CAACX,EAAoB,EAAGY,EAAMC,EAAS,CACrC,GAAI,CAAC,KAAKlB,EAAa,GAAK,KAAKA,EAAa,EAAE,SAAW,EACzD,YAAKK,EAAoB,EAAI,KAAKN,EAAS,EACpC,KAAKA,EAAS,EAAEkB,EAAMC,CAAO,EAGtC,IAAIC,EAAW,KAAKpB,EAAS,EAAE,KAAK,IAAI,EACxC,QAASS,EAAI,KAAKR,EAAa,EAAE,OAAS,EAAGQ,GAAK,EAAGA,IACnDW,EAAW,KAAKnB,EAAa,EAAEQ,CAAC,EAAEW,CAAQ,EAE5C,YAAKd,EAAoB,EAAIc,EACtBA,EAASF,EAAMC,CAAO,CAC/B,CAEA,SAAUD,EAAMC,EAAS,CACvB,GAAI,CAACA,GAAW,OAAOA,GAAY,SACjC,MAAM,IAAItB,GAAqB,2BAA2B,EAG5D,GAAI,CACF,GAAI,CAACqB,GAAQ,OAAOA,GAAS,SAC3B,MAAM,IAAIrB,GAAqB,yBAAyB,EAG1D,GAAI,KAAKK,EAAU,GAAK,KAAKE,EAAY,EACvC,MAAM,IAAIT,GAGZ,GAAI,KAAKQ,EAAO,EACd,MAAM,IAAIP,GAGZ,OAAO,KAAKU,EAAoB,EAAEY,EAAMC,CAAO,CACjD,OAASN,EAAK,CACZ,GAAI,OAAOM,EAAQ,SAAY,WAC7B,MAAM,IAAItB,GAAqB,wBAAwB,EAGzD,OAAAsB,EAAQ,QAAQN,CAAG,EAEZ,EACT,CACF,CACF,EAEApB,GAAO,QAAUc,KC/LjB,IAAAc,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAM,QAAQ,KAAK,EACnBC,GAAS,QAAQ,QAAQ,EACzBC,GAAO,IACP,CAAE,qBAAAC,GAAsB,oBAAAC,EAAoB,EAAI,IAElDC,GAOAC,GACA,OAAO,qBACTA,GAAe,KAAuB,CACpC,YAAaC,EAAmB,CAC9B,KAAK,mBAAqBA,EAC1B,KAAK,cAAgB,IAAI,IACzB,KAAK,iBAAmB,IAAI,OAAO,qBAAsBC,GAAQ,CAC/D,GAAI,KAAK,cAAc,KAAO,KAAK,mBACjC,OAGF,IAAMC,EAAM,KAAK,cAAc,IAAID,CAAG,EAClCC,IAAQ,QAAaA,EAAI,MAAM,IAAM,QACvC,KAAK,cAAc,OAAOD,CAAG,CAEjC,CAAC,CACH,CAEA,IAAKE,EAAY,CACf,IAAMD,EAAM,KAAK,cAAc,IAAIC,CAAU,EAC7C,OAAOD,EAAMA,EAAI,MAAM,EAAI,IAC7B,CAEA,IAAKC,EAAYC,EAAS,CACpB,KAAK,qBAAuB,IAIhC,KAAK,cAAc,IAAID,EAAY,IAAI,QAAQC,CAAO,CAAC,EACvD,KAAK,iBAAiB,SAASA,EAASD,CAAU,EACpD,CACF,EAEAJ,GAAe,KAAyB,CACtC,YAAaC,EAAmB,CAC9B,KAAK,mBAAqBA,EAC1B,KAAK,cAAgB,IAAI,GAC3B,CAEA,IAAKG,EAAY,CACf,OAAO,KAAK,cAAc,IAAIA,CAAU,CAC1C,CAEA,IAAKA,EAAYC,EAAS,CACxB,GAAI,KAAK,qBAAuB,EAIhC,IAAI,KAAK,cAAc,MAAQ,KAAK,mBAAoB,CAEtD,GAAM,CAAE,MAAOC,CAAU,EAAI,KAAK,cAAc,KAAK,EAAE,KAAK,EAC5D,KAAK,cAAc,OAAOA,CAAS,CACrC,CAEA,KAAK,cAAc,IAAIF,EAAYC,CAAO,EAC5C,CACF,EAGF,SAASE,GAAgB,CAAE,kBAAAN,EAAmB,WAAAO,EAAY,QAAAC,EAAS,GAAGC,CAAK,EAAG,CAC5E,GAAIT,GAAqB,OAAS,CAAC,OAAO,UAAUA,CAAiB,GAAKA,EAAoB,GAC5F,MAAM,IAAIJ,GAAqB,sDAAsD,EAGvF,IAAMc,EAAU,CAAE,KAAMH,EAAY,GAAGE,CAAK,EACtCE,EAAe,IAAIZ,GAAaC,GAA4B,GAAuB,EACzF,OAAAQ,EAAUA,GAAkB,IAErB,SAAkB,CAAE,SAAAI,EAAU,KAAAC,EAAM,SAAAC,EAAU,KAAAC,EAAM,WAAAC,EAAY,aAAAC,EAAc,WAAAC,CAAW,EAAGC,EAAU,CAC3G,IAAIC,EACJ,GAAIN,IAAa,SAAU,CACpBhB,KACHA,GAAM,QAAQ,KAAK,GAErBkB,EAAaA,GAAcN,EAAQ,YAAcf,GAAK,cAAckB,CAAI,GAAK,KAE7E,IAAMV,EAAaa,GAAcJ,EAC3BR,EAAUO,EAAa,IAAIR,CAAU,GAAK,KAEhDT,GAAOS,CAAU,EAEjBiB,EAAStB,GAAI,QAAQ,CACnB,cAAe,MACf,GAAGY,EACH,WAAAM,EACA,QAAAZ,EACA,aAAAa,EACA,OAAQC,EACR,KAAMH,GAAQ,IACd,KAAMH,CACR,CAAC,EAEDQ,EACG,GAAG,UAAW,SAAUhB,EAAS,CAEhCO,EAAa,IAAIR,EAAYC,CAAO,CACtC,CAAC,CACL,MACEV,GAAO,CAACwB,EAAY,2CAA2C,EAC/DE,EAAS3B,GAAI,QAAQ,CACnB,cAAe,GAAK,KACpB,GAAGiB,EACH,aAAAO,EACA,KAAMF,GAAQ,GACd,KAAMH,CACR,CAAC,EAIH,GAAIF,EAAQ,WAAa,MAAQA,EAAQ,UAAW,CAClD,IAAMW,EAAwBX,EAAQ,wBAA0B,OAAY,IAAOA,EAAQ,sBAC3FU,EAAO,aAAa,GAAMC,CAAqB,CACjD,CAEA,IAAMC,EAAgBC,GAAa,IAAMC,GAAiBJ,CAAM,EAAGZ,CAAO,EAE1E,OAAAY,EACG,WAAW,EAAI,EACf,KAAKN,IAAa,SAAW,gBAAkB,UAAW,UAAY,CAGrE,GAFAQ,EAAc,EAEVH,EAAU,CACZ,IAAMM,EAAKN,EACXA,EAAW,KACXM,EAAG,KAAM,IAAI,CACf,CACF,CAAC,EACA,GAAG,QAAS,SAAUC,EAAK,CAG1B,GAFAJ,EAAc,EAEVH,EAAU,CACZ,IAAMM,EAAKN,EACXA,EAAW,KACXM,EAAGC,CAAG,CACR,CACF,CAAC,EAEIN,CACT,CACF,CAEA,SAASG,GAAcC,EAAkBhB,EAAS,CAChD,GAAI,CAACA,EACH,MAAO,IAAM,CAAC,EAGhB,IAAImB,EAAK,KACLC,EAAK,KACHC,EAAY,WAAW,IAAM,CAEjCF,EAAK,aAAa,IAAM,CAClB,QAAQ,WAAa,QAEvBC,EAAK,aAAa,IAAMJ,EAAiB,CAAC,EAE1CA,EAAiB,CAErB,CAAC,CACH,EAAGhB,CAAO,EACV,MAAO,IAAM,CACX,aAAaqB,CAAS,EACtB,eAAeF,CAAE,EACjB,eAAeC,CAAE,CACnB,CACF,CAEA,SAASJ,GAAkBJ,EAAQ,CACjCzB,GAAK,QAAQyB,EAAQ,IAAIvB,EAAqB,CAChD,CAEAL,GAAO,QAAUc,sGCpLjB,SAAgBwB,GAAUC,EAAQ,CAChC,IAAMC,EAAgB,CAAA,EAEtB,cAAO,KAAKD,CAAG,EAAE,QAASE,GAAO,CAC/B,IAAMC,EAAQH,EAAIE,CAAG,EACjB,OAAOC,GAAU,WACnBF,EAAIC,CAAG,EAAIC,EAEf,CAAC,EAEMF,CACT,CAXAG,GAAA,UAAAL,ibCJA,IAAAM,GAAA,KAMYC,IAAZ,SAAYA,EAAK,CACfA,EAAAA,EAAA,GAAA,CAAA,EAAA,KACAA,EAAAA,EAAA,SAAA,CAAA,EAAA,WACAA,EAAAA,EAAA,OAAA,CAAA,EAAA,SACAA,EAAAA,EAAA,YAAA,CAAA,EAAA,cACAA,EAAAA,EAAA,0BAAA,CAAA,EAAA,4BACAA,EAAAA,EAAA,kBAAA,CAAA,EAAA,oBACAA,EAAAA,EAAA,eAAA,CAAA,EAAA,iBACAA,EAAAA,EAAA,YAAA,CAAA,EAAA,cACAA,EAAAA,EAAA,iBAAA,CAAA,EAAA,mBACAA,EAAAA,EAAA,gBAAA,CAAA,EAAA,kBACAA,EAAAA,EAAA,qBAAA,EAAA,EAAA,uBACAA,EAAAA,EAAA,uBAAA,EAAA,EAAA,yBACAA,EAAAA,EAAA,mBAAA,EAAA,EAAA,qBACAA,EAAAA,EAAA,eAAA,EAAA,EAAA,iBACAA,EAAAA,EAAA,kBAAA,EAAA,EAAA,oBACAA,EAAAA,EAAA,0BAAA,EAAA,EAAA,4BAEAA,EAAAA,EAAA,iBAAA,EAAA,EAAA,mBACAA,EAAAA,EAAA,oBAAA,EAAA,EAAA,sBACAA,EAAAA,EAAA,oBAAA,EAAA,EAAA,sBACAA,EAAAA,EAAA,gBAAA,EAAA,EAAA,kBACAA,EAAAA,EAAA,kBAAA,EAAA,EAAA,oBAEAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SACAA,EAAAA,EAAA,eAAA,EAAA,EAAA,iBACAA,EAAAA,EAAA,kBAAA,EAAA,EAAA,oBAEAA,EAAAA,EAAA,KAAA,EAAA,EAAA,MACF,GA7BYA,GAAAC,EAAA,QAAAA,EAAA,MAAK,CAAA,EAAA,EA+BjB,IAAYC,IAAZ,SAAYA,EAAI,CACdA,EAAAA,EAAA,KAAA,CAAA,EAAA,OACAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,SAAA,CAAA,EAAA,UACF,GAJYA,GAAAD,EAAA,OAAAA,EAAA,KAAI,CAAA,EAAA,EAMhB,IAAYE,IAAZ,SAAYA,EAAK,CACfA,EAAAA,EAAA,sBAAA,CAAA,EAAA,wBACAA,EAAAA,EAAA,iBAAA,CAAA,EAAA,mBACAA,EAAAA,EAAA,mBAAA,CAAA,EAAA,qBACAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,QAAA,EAAA,EAAA,UACAA,EAAAA,EAAA,eAAA,EAAA,EAAA,iBACAA,EAAAA,EAAA,SAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,SAAA,GAAA,EAAA,WAEAA,EAAAA,EAAA,kBAAA,GAAA,EAAA,mBACF,GAXYA,GAAAF,EAAA,QAAAA,EAAA,MAAK,CAAA,EAAA,EAajB,IAAYG,IAAZ,SAAYA,EAAa,CACvBA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,eAAA,CAAA,EAAA,iBACAA,EAAAA,EAAA,WAAA,CAAA,EAAA,YACF,GAJYA,GAAAH,EAAA,gBAAAA,EAAA,cAAa,CAAA,EAAA,EAMzB,IAAYI,GAAZ,SAAYA,EAAO,CACjBA,EAAAA,EAAA,OAAA,CAAA,EAAA,SACAA,EAAAA,EAAA,IAAA,CAAA,EAAA,MACAA,EAAAA,EAAA,KAAA,CAAA,EAAA,OACAA,EAAAA,EAAA,KAAA,CAAA,EAAA,OACAA,EAAAA,EAAA,IAAA,CAAA,EAAA,MAEAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,MAAA,CAAA,EAAA,QAEAA,EAAAA,EAAA,KAAA,CAAA,EAAA,OACAA,EAAAA,EAAA,KAAA,CAAA,EAAA,OACAA,EAAAA,EAAA,MAAA,EAAA,EAAA,QACAA,EAAAA,EAAA,KAAA,EAAA,EAAA,OACAA,EAAAA,EAAA,SAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,UAAA,EAAA,EAAA,YACAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SACAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SACAA,EAAAA,EAAA,KAAA,EAAA,EAAA,OACAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SACAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SACAA,EAAAA,EAAA,IAAA,EAAA,EAAA,MAEAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SACAA,EAAAA,EAAA,WAAA,EAAA,EAAA,aACAA,EAAAA,EAAA,SAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,MAAA,EAAA,EAAA,QAEAA,EAAAA,EAAA,UAAA,EAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SACAA,EAAAA,EAAA,UAAA,EAAA,EAAA,YACAA,EAAAA,EAAA,YAAA,EAAA,EAAA,cAEAA,EAAAA,EAAA,MAAA,EAAA,EAAA,QACAA,EAAAA,EAAA,MAAA,EAAA,EAAA,QAEAA,EAAAA,EAAA,WAAA,EAAA,EAAA,aAEAA,EAAAA,EAAA,KAAA,EAAA,EAAA,OACAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SAEAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SAEAA,EAAAA,EAAA,IAAA,EAAA,EAAA,MAEAA,EAAAA,EAAA,SAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,SAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,MAAA,EAAA,EAAA,QACAA,EAAAA,EAAA,KAAA,EAAA,EAAA,OACAA,EAAAA,EAAA,MAAA,EAAA,EAAA,QACAA,EAAAA,EAAA,SAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,cAAA,EAAA,EAAA,gBACAA,EAAAA,EAAA,cAAA,EAAA,EAAA,gBACAA,EAAAA,EAAA,SAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SAEAA,EAAAA,EAAA,MAAA,EAAA,EAAA,OACF,GA1DYA,EAAAJ,EAAA,UAAAA,EAAA,QAAO,CAAA,EAAA,EA4DNA,EAAA,aAAe,CAC1BI,EAAQ,OACRA,EAAQ,IACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,IACRA,EAAQ,QACRA,EAAQ,QACRA,EAAQ,MACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,MACRA,EAAQ,KACRA,EAAQ,SACRA,EAAQ,UACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,KACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,IACRA,EAAQ,OACRA,EAAQ,WACRA,EAAQ,SACRA,EAAQ,MACRA,EAAQ,UAAU,EAClBA,EAAQ,OACRA,EAAQ,UACRA,EAAQ,YACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,WACRA,EAAQ,KACRA,EAAQ,OACRA,EAAQ,IAGRA,EAAQ,QAGGJ,EAAA,YAAc,CACzBI,EAAQ,QAGGJ,EAAA,aAAe,CAC1BI,EAAQ,QACRA,EAAQ,SACRA,EAAQ,SACRA,EAAQ,MACRA,EAAQ,KACRA,EAAQ,MACRA,EAAQ,SACRA,EAAQ,cACRA,EAAQ,cACRA,EAAQ,SACRA,EAAQ,OACRA,EAAQ,MAGRA,EAAQ,IACRA,EAAQ,MAGGJ,EAAA,WAAaF,GAAA,UAAUM,CAAO,EAC9BJ,EAAA,aAAyB,CAAA,EAEtC,OAAO,KAAKA,EAAA,UAAU,EAAE,QAASK,GAAO,CAClC,KAAK,KAAKA,CAAG,IACfL,EAAA,aAAaK,CAAG,EAAIL,EAAA,WAAWK,CAAG,EAEtC,CAAC,EAED,IAAYC,IAAZ,SAAYA,EAAM,CAChBA,EAAAA,EAAA,KAAA,CAAA,EAAA,OACAA,EAAAA,EAAA,aAAA,CAAA,EAAA,eACAA,EAAAA,EAAA,OAAA,CAAA,EAAA,QACF,GAJYA,GAAAN,EAAA,SAAAA,EAAA,OAAM,CAAA,EAAA,EAULA,EAAA,MAAkB,CAAA,EAE/B,QAASO,EAAI,GAAmBA,GAAK,GAAmBA,IAEtDP,EAAA,MAAM,KAAK,OAAO,aAAaO,CAAC,CAAC,EAGjCP,EAAA,MAAM,KAAK,OAAO,aAAaO,EAAI,EAAI,CAAC,EAG7BP,EAAA,QAAU,CACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBA,EAAA,QAAU,CACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3B,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAC3C,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,IAGhCA,EAAA,IAAgB,CAC3B,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGlCA,EAAA,SAAqBA,EAAA,MAAM,OAAOA,EAAA,GAAG,EACrCA,EAAA,KAAiB,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAM,IAAK,GAAG,EAC/DA,EAAA,eAA2BA,EAAA,SACrC,OAAOA,EAAA,IAAI,EACX,OAAO,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAE,EAGvCA,EAAA,gBAA6B,CACxC,IAAK,IAAK,IAAK,IAAK,IAAK,IACzB,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnC,IAAK,IAAK,IAAK,IAAK,IACpB,IAAK,IAAK,KAAM,IAAK,IAAK,IAC1B,IACA,IAAK,IAAK,IAAK,KACF,OAAOA,EAAA,QAAQ,EAEjBA,EAAA,SAAqBA,EAAA,gBAC/B,OAAQ,CAAE,IAAM,IAAI,CAAe,EAGtC,QAASO,EAAI,IAAMA,GAAK,IAAMA,IAC5BP,EAAA,SAAS,KAAKO,CAAC,EAGJP,EAAA,IAAgBA,EAAA,IAAI,OAC/B,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAE,EASnDA,EAAA,aAA0B,CACrC,IAAK,IAAK,IAAK,IAAK,IAAK,IACzB,IAAK,IAAK,IAAK,IACf,IAAK,IAAK,IACV,IAAK,KACQ,OAAOA,EAAA,QAAQ,EAEjBA,EAAA,MAAkBA,EAAA,aAAa,OAAO,CAAE,GAAG,CAAE,EAM7CA,EAAA,aAAyB,CAAE,GAAI,EAC5C,QAASO,EAAI,GAAIA,GAAK,IAAKA,IACrBA,IAAM,KACRP,EAAA,aAAa,KAAKO,CAAC,EAKVP,EAAA,uBACXA,EAAA,aAAa,OAAQQ,GAAuBA,IAAM,EAAE,EAEzCR,EAAA,MAAQA,EAAA,QACRA,EAAA,MAAQA,EAAA,MAErB,IAAYS,IAAZ,SAAYA,EAAY,CACtBA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,WAAA,CAAA,EAAA,aACAA,EAAAA,EAAA,eAAA,CAAA,EAAA,iBACAA,EAAAA,EAAA,kBAAA,CAAA,EAAA,oBACAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UAEAA,EAAAA,EAAA,sBAAA,CAAA,EAAA,wBACAA,EAAAA,EAAA,iBAAA,CAAA,EAAA,mBACAA,EAAAA,EAAA,mBAAA,CAAA,EAAA,qBACAA,EAAAA,EAAA,0BAAA,CAAA,EAAA,2BACF,GAXYA,GAAAT,EAAA,eAAAA,EAAA,aAAY,CAAA,EAAA,EAaXA,EAAA,gBAAkB,CAC7B,WAAcS,GAAa,WAC3B,iBAAkBA,GAAa,eAC/B,mBAAoBA,GAAa,WACjC,oBAAqBA,GAAa,kBAClC,QAAWA,GAAa,WCrT1B,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAO,IACP,CAAE,UAAAC,EAAU,EAAI,IAChBC,GAAS,QAAQ,QAAQ,EACzB,CAAE,qBAAAC,EAAqB,EAAI,IAC3BC,GAAK,QAAQ,QAAQ,EAErBC,GAA0B,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAEvDC,GAAQ,OAAO,MAAM,EAErBC,GAAN,KAAwB,CACtB,YAAaC,EAAM,CACjB,KAAKF,EAAK,EAAIE,EACd,KAAKP,EAAS,EAAI,EACpB,CAEA,OAAS,OAAO,aAAa,GAAK,CAChCC,GAAO,CAAC,KAAKD,EAAS,EAAG,WAAW,EACpC,KAAKA,EAAS,EAAI,GAClB,MAAQ,KAAKK,EAAK,CACpB,CACF,EAEMG,GAAN,KAAsB,CACpB,YAAaC,EAAUC,EAAiBC,EAAMC,EAAS,CACrD,GAAIF,GAAmB,OAAS,CAAC,OAAO,UAAUA,CAAe,GAAKA,EAAkB,GACtF,MAAM,IAAIR,GAAqB,2CAA2C,EAG5EH,GAAK,gBAAgBa,EAASD,EAAK,OAAQA,EAAK,OAAO,EAEvD,KAAK,SAAWF,EAChB,KAAK,SAAW,KAChB,KAAK,MAAQ,KACb,KAAK,KAAO,CAAE,GAAGE,EAAM,gBAAiB,CAAE,EAC1C,KAAK,gBAAkBD,EACvB,KAAK,QAAUE,EACf,KAAK,QAAU,CAAC,EAEZb,GAAK,SAAS,KAAK,KAAK,IAAI,GAI1BA,GAAK,WAAW,KAAK,KAAK,IAAI,IAAM,GACtC,KAAK,KAAK,KACP,GAAG,OAAQ,UAAY,CACtBE,GAAO,EAAK,CACd,CAAC,EAGD,OAAO,KAAK,KAAK,KAAK,iBAAoB,YAC5C,KAAK,KAAK,KAAKD,EAAS,EAAI,GAC5BG,GAAG,UAAU,GAAG,KAAK,KAAK,KAAK,KAAM,OAAQ,UAAY,CACvD,KAAKH,EAAS,EAAI,EACpB,CAAC,IAEM,KAAK,KAAK,MAAQ,OAAO,KAAK,KAAK,KAAK,QAAW,WAI5D,KAAK,KAAK,KAAO,IAAIM,GAAkB,KAAK,KAAK,IAAI,EAErD,KAAK,KAAK,MACV,OAAO,KAAK,KAAK,MAAS,UAC1B,CAAC,YAAY,OAAO,KAAK,KAAK,IAAI,GAClCP,GAAK,WAAW,KAAK,KAAK,IAAI,IAI9B,KAAK,KAAK,KAAO,IAAIO,GAAkB,KAAK,KAAK,IAAI,EAEzD,CAEA,UAAWO,EAAO,CAChB,KAAK,MAAQA,EACb,KAAK,QAAQ,UAAUA,EAAO,CAAE,QAAS,KAAK,OAAQ,CAAC,CACzD,CAEA,UAAWC,EAAYC,EAASC,EAAQ,CACtC,KAAK,QAAQ,UAAUF,EAAYC,EAASC,CAAM,CACpD,CAEA,QAASC,EAAO,CACd,KAAK,QAAQ,QAAQA,CAAK,CAC5B,CAEA,UAAWH,EAAYC,EAASG,EAAQC,EAAY,CASlD,GARA,KAAK,SAAW,KAAK,QAAQ,QAAU,KAAK,iBAAmBpB,GAAK,YAAY,KAAK,KAAK,IAAI,EAC1F,KACAqB,GAAcN,EAAYC,CAAO,EAEjC,KAAK,KAAK,QACZ,KAAK,QAAQ,KAAK,IAAI,IAAI,KAAK,KAAK,KAAM,KAAK,KAAK,MAAM,CAAC,EAGzD,CAAC,KAAK,SACR,OAAO,KAAK,QAAQ,UAAUD,EAAYC,EAASG,EAAQC,CAAU,EAGvE,GAAM,CAAE,OAAAE,EAAQ,SAAAC,EAAU,OAAAC,CAAO,EAAIxB,GAAK,SAAS,IAAI,IAAI,KAAK,SAAU,KAAK,KAAK,QAAU,IAAI,IAAI,KAAK,KAAK,KAAM,KAAK,KAAK,MAAM,CAAC,CAAC,EAClIyB,EAAOD,EAAS,GAAGD,CAAQ,GAAGC,CAAM,GAAKD,EAK/C,KAAK,KAAK,QAAUG,GAAoB,KAAK,KAAK,QAASX,IAAe,IAAK,KAAK,KAAK,SAAWO,CAAM,EAC1G,KAAK,KAAK,KAAOG,EACjB,KAAK,KAAK,OAASH,EACnB,KAAK,KAAK,gBAAkB,EAC5B,KAAK,KAAK,MAAQ,KAIdP,IAAe,KAAO,KAAK,KAAK,SAAW,SAC7C,KAAK,KAAK,OAAS,MACnB,KAAK,KAAK,KAAO,KAErB,CAEA,OAAQY,EAAO,CACb,GAAI,MAAK,SAmBP,OAAO,KAAK,QAAQ,OAAOA,CAAK,CAEpC,CAEA,WAAYC,EAAU,CAChB,KAAK,UAUP,KAAK,SAAW,KAChB,KAAK,MAAQ,KAEb,KAAK,SAAS,KAAK,KAAM,IAAI,GAE7B,KAAK,QAAQ,WAAWA,CAAQ,CAEpC,CAEA,WAAYD,EAAO,CACb,KAAK,QAAQ,YACf,KAAK,QAAQ,WAAWA,CAAK,CAEjC,CACF,EAEA,SAASN,GAAeN,EAAYC,EAAS,CAC3C,GAAIX,GAAwB,QAAQU,CAAU,IAAM,GAClD,OAAO,KAGT,QAASc,EAAI,EAAGA,EAAIb,EAAQ,OAAQa,GAAK,EACvC,GAAIb,EAAQa,CAAC,EAAE,SAAS,EAAE,YAAY,IAAM,WAC1C,OAAOb,EAAQa,EAAI,CAAC,CAG1B,CAGA,SAASC,GAAoBC,EAAQC,EAAeC,EAAe,CACjE,OACGF,EAAO,SAAW,GAAKA,EAAO,SAAS,EAAE,YAAY,IAAM,QAC3DC,GAAiBD,EAAO,SAAS,EAAE,YAAY,EAAE,QAAQ,UAAU,IAAM,GACzEE,GAAiBF,EAAO,SAAW,IAAMA,EAAO,SAAS,EAAE,YAAY,IAAM,iBAC7EE,GAAiBF,EAAO,SAAW,GAAKA,EAAO,SAAS,EAAE,YAAY,IAAM,QAEjF,CAGA,SAASL,GAAqBV,EAASgB,EAAeC,EAAe,CACnE,IAAMC,EAAM,CAAC,EACb,GAAI,MAAM,QAAQlB,CAAO,EACvB,QAASa,EAAI,EAAGA,EAAIb,EAAQ,OAAQa,GAAK,EAClCC,GAAmBd,EAAQa,CAAC,EAAGG,EAAeC,CAAa,GAC9DC,EAAI,KAAKlB,EAAQa,CAAC,EAAGb,EAAQa,EAAI,CAAC,CAAC,UAG9Bb,GAAW,OAAOA,GAAY,SACvC,QAAWmB,KAAO,OAAO,KAAKnB,CAAO,EAC9Bc,GAAmBK,EAAKH,EAAeC,CAAa,GACvDC,EAAI,KAAKC,EAAKnB,EAAQmB,CAAG,CAAC,OAI9BjC,GAAOc,GAAW,KAAM,uCAAuC,EAEjE,OAAOkB,CACT,CAEAnC,GAAO,QAAUU,KCvNjB,IAAA2B,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAkB,KAExB,SAASC,GAA2B,CAAE,gBAAiBC,CAAuB,EAAG,CAC/E,OAAQC,GACC,SAAoBC,EAAMC,EAAS,CACxC,GAAM,CAAE,gBAAAC,EAAkBJ,CAAuB,EAAIE,EAErD,GAAI,CAACE,EACH,OAAOH,EAASC,EAAMC,CAAO,EAG/B,IAAME,EAAkB,IAAIP,GAAgBG,EAAUG,EAAiBF,EAAMC,CAAO,EACpF,OAAAD,EAAO,CAAE,GAAGA,EAAM,gBAAiB,CAAE,EAC9BD,EAASC,EAAMG,CAAe,CACvC,CAEJ,CAEAR,GAAO,QAAUE,KCpBjB,IAAAO,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAO,QAAU,yuwECAjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAO,QAAU,qtwECAjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAMA,IAAMC,EAAS,QAAQ,QAAQ,EACzBC,GAAM,QAAQ,KAAK,EACnBC,EAAO,IACPC,GAAS,KACTC,GAAU,KACVC,GAAiB,KACjB,CACJ,kCAAAC,GACA,mCAAAC,GACA,qBAAAC,GACA,oBAAAC,GACA,oBAAAC,GACA,qBAAAC,GACA,YAAAC,GACA,mBAAAC,GACA,iBAAAC,GACA,gBAAAC,GACA,6BAAAC,GACA,qBAAAC,EACF,EAAI,IACEC,GAAiB,KACjB,CACJ,KAAAC,GACA,OAAAC,GACA,YAAAC,GACA,QAAAC,GACA,MAAAC,GACA,QAAAC,EACA,SAAAC,GACA,UAAAC,GACA,UAAAC,GACA,SAAAC,GACA,SAAAC,GACA,MAAAC,GACA,SAAAC,GACA,OAAAC,GACA,WAAAC,GACA,YAAAC,GACA,WAAAC,GACA,OAAAC,GACA,yBAAAC,GACA,YAAAC,GACA,YAAAC,GACA,YAAAC,GACA,OAAAC,GACA,YAAAC,GACA,QAAAC,GACA,uBAAAC,GACA,gBAAAC,GACA,qBAAAC,GACA,2BAAAC,GACA,gBAAAC,GACA,aAAAC,GACA,qBAAAC,GACA,WAAAC,GACA,iBAAAC,GACA,aAAAC,GACA,SAAAC,GACA,OAAAC,GACA,SAAAC,GACA,UAAAC,GACA,cAAAC,GACA,cAAAC,GACA,iBAAAC,EACF,EAAI,IACEC,GAAa,OAAO,OAAO,OAAO,EAElCC,GAAiB,OAAO,gBAAgB,EAExCC,GAAW,CAAC,EAElB,GAAI,CACF,IAAMC,EAAqB,QAAQ,qBAAqB,EACxDD,GAAS,YAAcC,EAAmB,QAAQ,2BAA2B,EAC7ED,GAAS,cAAgBC,EAAmB,QAAQ,6BAA6B,EACjFD,GAAS,aAAeC,EAAmB,QAAQ,4BAA4B,EAC/ED,GAAS,UAAYC,EAAmB,QAAQ,yBAAyB,CAC3E,MAAQ,CACND,GAAS,YAAc,CAAE,eAAgB,EAAM,EAC/CA,GAAS,cAAgB,CAAE,eAAgB,EAAM,EACjDA,GAAS,aAAe,CAAE,eAAgB,EAAM,EAChDA,GAAS,UAAY,CAAE,eAAgB,EAAM,CAC/C,CAKA,IAAME,GAAN,cAAqB5D,EAAe,CAMlC,YAAa6D,EAAK,CAChB,aAAAC,EACA,cAAAC,EACA,eAAAC,EACA,cAAAC,EACA,eAAAC,EACA,eAAAC,EACA,YAAAC,EACA,YAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,oBAAAC,EACA,oBAAAC,EACA,0BAAAC,EACA,WAAAC,EACA,WAAAC,EACA,IAAAC,EACA,oBAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,QAAAC,EACA,qBAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,iBAAAC,GACA,+BAAAC,EACF,EAAI,CAAC,EAAG,CAGN,GAFA,MAAM,EAEFhB,IAAc,OAChB,MAAM,IAAInE,GAAqB,iDAAiD,EAGlF,GAAI8D,IAAkB,OACpB,MAAM,IAAI9D,GAAqB,qEAAqE,EAGtG,GAAI+D,IAAmB,OACrB,MAAM,IAAI/D,GAAqB,sEAAsE,EAGvG,GAAIkE,IAAgB,OAClB,MAAM,IAAIlE,GAAqB,uDAAuD,EAGxF,GAAIqE,IAAwB,OAC1B,MAAM,IAAIrE,GAAqB,kEAAkE,EAGnG,GAAI4D,GAAiB,MAAQ,CAAC,OAAO,SAASA,CAAa,EACzD,MAAM,IAAI5D,GAAqB,uBAAuB,EAGxD,GAAIwE,GAAc,MAAQ,OAAOA,GAAe,SAC9C,MAAM,IAAIxE,GAAqB,oBAAoB,EAGrD,GAAIgE,GAAkB,OAAS,CAAC,OAAO,SAASA,CAAc,GAAKA,EAAiB,GAClF,MAAM,IAAIhE,GAAqB,wBAAwB,EAGzD,GAAIoE,GAAoB,OAAS,CAAC,OAAO,SAASA,CAAgB,GAAKA,GAAoB,GACzF,MAAM,IAAIpE,GAAqB,0BAA0B,EAG3D,GAAIsE,GAAuB,OAAS,CAAC,OAAO,SAASA,CAAmB,GAAKA,GAAuB,GAClG,MAAM,IAAItE,GAAqB,6BAA6B,EAG9D,GAAIuE,GAA6B,MAAQ,CAAC,OAAO,SAASA,CAAyB,EACjF,MAAM,IAAIvE,GAAqB,mCAAmC,EAGpE,GAAI6D,GAAkB,OAAS,CAAC,OAAO,UAAUA,CAAc,GAAKA,EAAiB,GACnF,MAAM,IAAI7D,GAAqB,mDAAmD,EAGpF,GAAIiE,GAAe,OAAS,CAAC,OAAO,UAAUA,CAAW,GAAKA,EAAc,GAC1E,MAAM,IAAIjE,GAAqB,gDAAgD,EAGjF,GAAI8E,GAAW,MAAQ,OAAOA,GAAY,YAAc,OAAOA,GAAY,SACzE,MAAM,IAAI9E,GAAqB,yCAAyC,EAG1E,GAAI6E,GAAmB,OAAS,CAAC,OAAO,UAAUA,CAAe,GAAKA,EAAkB,GACtF,MAAM,IAAI7E,GAAqB,2CAA2C,EAG5E,GAAI+E,GAAwB,OAAS,CAAC,OAAO,UAAUA,CAAoB,GAAKA,EAAuB,GACrG,MAAM,IAAI/E,GAAqB,gDAAgD,EAGjF,GAAIgF,GAAgB,OAAS,OAAOA,GAAiB,UAAYvF,GAAI,KAAKuF,CAAY,IAAM,GAC1F,MAAM,IAAIhF,GAAqB,8CAA8C,EAG/E,GAAIiF,GAAmB,OAAS,CAAC,OAAO,UAAUA,CAAe,GAAKA,EAAkB,IACtF,MAAM,IAAIjF,GAAqB,2CAA2C,EAG5E,GACEmF,IAAkC,OACjC,CAAC,OAAO,UAAUA,EAA8B,GAAKA,GAAiC,IAEvF,MAAM,IAAInF,GAAqB,0DAA0D,EAGvF,OAAO8E,GAAY,aACrBA,EAAUpE,GAAe,CACvB,GAAGgE,EACH,kBAAAE,EACA,WAAAJ,EACA,QAASR,EACT,GAAItE,EAAK,yBAA2BwF,GAAmB,CAAE,iBAAAA,GAAkB,+BAAAC,EAA+B,EAAI,OAC9G,GAAGL,CACL,CAAC,GAGH,KAAK5B,EAAa,EAAIS,GAAgBA,EAAa,QAAU,MAAM,QAAQA,EAAa,MAAM,EAC1FA,EAAa,OACb,CAACyB,GAA0B,CAAE,gBAAAP,CAAgB,CAAC,CAAC,EACnD,KAAKlE,EAAI,EAAIjB,EAAK,YAAYgE,CAAG,EACjC,KAAKf,EAAU,EAAImC,EACnB,KAAK3C,EAAO,EAAI,KAChB,KAAKD,EAAW,EAAIuC,GAAkC,EACtD,KAAKpC,EAAe,EAAIuB,GAAiB,MACzC,KAAK/B,EAAwB,EAAIuC,GAA2B,IAC5D,KAAK9B,EAAoB,EAAIgC,GAA8B,IAC3D,KAAK/B,EAA0B,EAAIgC,GAAoC,IACvE,KAAKnC,EAAsB,EAAI,KAAKP,EAAwB,EAC5D,KAAKhB,EAAW,EAAI,KACpB,KAAKsC,EAAa,EAAI6B,GAAsC,KAC5D,KAAK7D,EAAS,EAAI,EAClB,KAAKQ,EAAU,EAAI,EACnB,KAAKG,EAAW,EAAI,SAAS,KAAKnB,EAAI,EAAE,QAAQ,GAAG,KAAKA,EAAI,EAAE,KAAO,IAAI,KAAKA,EAAI,EAAE,IAAI,GAAK,EAAE;AAAA,EAC/F,KAAK8B,EAAY,EAAIwB,GAAoC,IACzD,KAAKzB,EAAe,EAAIqB,GAA0C,IAClE,KAAKnB,EAAoB,EAAIiC,GAA8B,GAC3D,KAAK/B,EAAgB,EAAIiC,EACzB,KAAKhC,EAAY,EAAIkC,EACrB,KAAKzB,EAAc,EAAI,KACvB,KAAKF,EAAgB,EAAI6B,EAAkB,GAAKA,EAAkB,GAWlE,KAAKzD,EAAM,EAAI,CAAC,EAChB,KAAKQ,EAAW,EAAI,EACpB,KAAKD,EAAW,EAAI,CACtB,CAEA,IAAI,YAAc,CAChB,OAAO,KAAKG,EAAW,CACzB,CAEA,IAAI,WAAYmD,EAAO,CACrB,KAAKnD,EAAW,EAAImD,EACpBC,GAAO,KAAM,EAAI,CACnB,CAEA,IAAKjE,EAAQ,GAAK,CAChB,OAAO,KAAKG,EAAM,EAAE,OAAS,KAAKO,EAAW,CAC/C,CAEA,IAAKX,EAAQ,GAAK,CAChB,OAAO,KAAKW,EAAW,EAAI,KAAKC,EAAW,CAC7C,CAEA,IAAKV,EAAK,GAAK,CACb,OAAO,KAAKE,EAAM,EAAE,OAAS,KAAKQ,EAAW,CAC/C,CAEA,IAAKP,EAAU,GAAK,CAClB,MAAO,CAAC,CAAC,KAAKU,EAAO,GAAK,CAAC,KAAKT,EAAW,GAAK,CAAC,KAAKS,EAAO,EAAE,SACjE,CAEA,IAAKpB,EAAK,GAAK,CACb,IAAMwE,EAAS,KAAKpD,EAAO,EAC3B,OACGoD,IAAWA,EAAO3E,EAAM,GAAK2E,EAAOhE,EAAQ,GAAKgE,EAAOrE,EAAS,IACjE,KAAKI,EAAK,IAAM,KAAKY,EAAW,GAAK,IACtC,KAAKb,EAAQ,EAAI,CAErB,CAGA,CAACJ,EAAQ,EAAGuE,EAAI,CACdV,GAAQ,IAAI,EACZ,KAAK,KAAK,UAAWU,CAAE,CACzB,CAEA,CAACvC,EAAS,EAAGwC,EAAMC,EAAS,CAC1B,IAAMC,EAASF,EAAK,QAAU,KAAK9E,EAAI,EAAE,OAEnCiF,EAAU,IAAIhG,GAAQ+F,EAAQF,EAAMC,CAAO,EAEjD,YAAKlE,EAAM,EAAE,KAAKoE,CAAO,EACrB,KAAKzE,EAAS,IAEPzB,EAAK,WAAWkG,EAAQ,IAAI,GAAK,MAAQlG,EAAK,WAAWkG,EAAQ,IAAI,GAE9E,KAAKzE,EAAS,EAAI,EAClB,QAAQ,SAASmE,GAAQ,IAAI,GAE7BA,GAAO,KAAM,EAAI,GAGf,KAAKnE,EAAS,GAAK,KAAKQ,EAAU,IAAM,GAAK,KAAKZ,EAAK,IACzD,KAAKY,EAAU,EAAI,GAGd,KAAKA,EAAU,EAAI,CAC5B,CAEA,MAAOoB,EAAM,GAAK,CAChB,OAAO,IAAI,QAAS8C,GAAY,CACzB,KAAKvE,EAAK,EAGb,KAAKgC,EAAc,EAAIuC,EAFvBA,EAAQ,IAAI,CAIhB,CAAC,CACH,CAEA,MAAO7C,EAAQ,EAAG8C,EAAK,CACrB,OAAO,IAAI,QAASD,GAAY,CAC9B,IAAME,EAAW,KAAKvE,EAAM,EAAE,OAAO,KAAKO,EAAW,CAAC,EACtD,QAASiE,EAAI,EAAGA,EAAID,EAAS,OAAQC,IAAK,CACxC,IAAMJ,EAAUG,EAASC,CAAC,EAC1BC,GAAa,KAAML,EAASE,CAAG,CACjC,CAEA,IAAMI,EAAW,IAAM,CACjB,KAAK5C,EAAc,IAErB,KAAKA,EAAc,EAAE,EACrB,KAAKA,EAAc,EAAI,MAEzBuC,EAAQ,CACV,EAEK,KAAK1D,EAAO,EAGfzC,EAAK,QAAQ,KAAKyC,EAAO,EAAE,GAAG,QAAS+D,CAAQ,EAAGJ,CAAG,EAFrD,eAAeI,CAAQ,EAKzBZ,GAAO,IAAI,CACb,CAAC,CACH,CACF,EAEMa,GAAY,KACZf,GAA4B,KAC5BgB,GAAY,OAAO,MAAM,CAAC,EAEhC,eAAeC,IAAc,CAC3B,IAAMC,EAAiB,QAAQ,IAAI,eAAiB,KAAqC,OAErFC,EACJ,GAAI,CACFA,EAAM,MAAM,YAAY,QAAQ,OAAO,KAAK,KAAyC,QAAQ,CAAC,CAChG,MAAY,CAOVA,EAAM,MAAM,YAAY,QAAQ,OAAO,KAAKD,GAAkB,KAAoC,QAAQ,CAAC,CAC7G,CAEA,OAAO,MAAM,YAAY,YAAYC,EAAK,CACxC,IAAK,CAGH,YAAa,CAACC,EAAGC,EAAIC,IAEZ,EAET,eAAgB,CAACF,EAAGC,EAAIC,IAAQ,CAC9BlH,EAAO,YAAYmH,GAAc,IAAKH,CAAC,EACvC,IAAMI,EAAQH,EAAKI,GAAmBC,GAAiB,WACvD,OAAOH,GAAc,SAAS,IAAItD,GAAWyD,GAAiB,OAAQF,EAAOF,CAAG,CAAC,GAAK,CACxF,EACA,sBAAwBF,IACtBhH,EAAO,YAAYmH,GAAc,IAAKH,CAAC,EAChCG,GAAc,eAAe,GAAK,GAE3C,qBAAsB,CAACH,EAAGC,EAAIC,IAAQ,CACpClH,EAAO,YAAYmH,GAAc,IAAKH,CAAC,EACvC,IAAMI,EAAQH,EAAKI,GAAmBC,GAAiB,WACvD,OAAOH,GAAc,cAAc,IAAItD,GAAWyD,GAAiB,OAAQF,EAAOF,CAAG,CAAC,GAAK,CAC7F,EACA,qBAAsB,CAACF,EAAGC,EAAIC,IAAQ,CACpClH,EAAO,YAAYmH,GAAc,IAAKH,CAAC,EACvC,IAAMI,EAAQH,EAAKI,GAAmBC,GAAiB,WACvD,OAAOH,GAAc,cAAc,IAAItD,GAAWyD,GAAiB,OAAQF,EAAOF,CAAG,CAAC,GAAK,CAC7F,EACA,yBAA0B,CAACF,EAAGO,EAAYC,EAASC,KACjDzH,EAAO,YAAYmH,GAAc,IAAKH,CAAC,EAChCG,GAAc,kBAAkBI,EAAY,EAAQC,EAAU,EAAQC,CAAgB,GAAK,GAEpG,aAAc,CAACT,EAAGC,EAAIC,IAAQ,CAC5BlH,EAAO,YAAYmH,GAAc,IAAKH,CAAC,EACvC,IAAMI,EAAQH,EAAKI,GAAmBC,GAAiB,WACvD,OAAOH,GAAc,OAAO,IAAItD,GAAWyD,GAAiB,OAAQF,EAAOF,CAAG,CAAC,GAAK,CACtF,EACA,yBAA2BF,IACzBhH,EAAO,YAAYmH,GAAc,IAAKH,CAAC,EAChCG,GAAc,kBAAkB,GAAK,EAIhD,CACF,CAAC,CACH,CAEA,IAAIO,GAAiB,KACjBC,GAAgBd,GAAW,EAC/Bc,GAAc,MAAM,EAEpB,IAAIR,GAAgB,KAChBG,GAAmB,KACnBM,GAAoB,EACpBP,GAAmB,KAEjBQ,GAAkB,EAClBC,GAAe,EACfC,GAAe,EAEfC,GAAN,KAAa,CACX,YAAaC,EAAQlC,EAAQ,CAAE,QAAAjG,CAAQ,EAAG,CACxCE,EAAO,OAAO,SAASiI,EAAOpF,EAAe,CAAC,GAAKoF,EAAOpF,EAAe,EAAI,CAAC,EAE9E,KAAK,OAAS/C,EACd,KAAK,IAAM,KAAK,OAAO,aAAa6G,GAAU,KAAK,QAAQ,EAC3D,KAAK,OAASsB,EACd,KAAK,OAASlC,EACd,KAAK,QAAU,KACf,KAAK,aAAe,KACpB,KAAK,YAAc,KACnB,KAAK,WAAa,KAClB,KAAK,WAAa,GAClB,KAAK,QAAU,GACf,KAAK,QAAU,CAAC,EAChB,KAAK,YAAc,EACnB,KAAK,eAAiBkC,EAAOpF,EAAe,EAC5C,KAAK,gBAAkB,GACvB,KAAK,OAAS,GACd,KAAK,OAAS,KAAK,OAAO,KAAK,IAAI,EAEnC,KAAK,UAAY,EAEjB,KAAK,UAAY,GACjB,KAAK,cAAgB,GACrB,KAAK,WAAa,GAClB,KAAK,gBAAkBoF,EAAOrE,EAAgB,CAChD,CAEA,WAAYiC,EAAOqC,EAAM,CACvB,KAAK,YAAcA,EACfrC,IAAU,KAAK,cACjB1F,GAAO,aAAa,KAAK,OAAO,EAC5B0F,GACF,KAAK,QAAU1F,GAAO,WAAWgI,GAAiBtC,EAAO,IAAI,EAEzD,KAAK,QAAQ,OACf,KAAK,QAAQ,MAAM,GAGrB,KAAK,QAAU,KAEjB,KAAK,aAAeA,GACX,KAAK,SAEV,KAAK,QAAQ,SACf,KAAK,QAAQ,QAAQ,CAG3B,CAEA,QAAU,CACJ,KAAK,OAAO,WAAa,CAAC,KAAK,SAInC7F,EAAO,KAAK,KAAO,IAAI,EACvBA,EAAOmH,IAAiB,IAAI,EAE5B,KAAK,OAAO,cAAc,KAAK,GAAG,EAElCnH,EAAO,KAAK,cAAgB8H,EAAY,EACpC,KAAK,SAEH,KAAK,QAAQ,SACf,KAAK,QAAQ,QAAQ,EAIzB,KAAK,OAAS,GACd,KAAK,QAAQ,KAAK,OAAO,KAAK,GAAKlB,EAAS,EAC5C,KAAK,SAAS,EAChB,CAEA,UAAY,CACV,KAAO,CAAC,KAAK,QAAU,KAAK,KAAK,CAC/B,IAAMwB,EAAQ,KAAK,OAAO,KAAK,EAC/B,GAAIA,IAAU,KACZ,MAEF,KAAK,QAAQA,CAAK,CACpB,CACF,CAEA,QAASC,EAAM,CACbrI,EAAO,KAAK,KAAO,IAAI,EACvBA,EAAOmH,IAAiB,IAAI,EAC5BnH,EAAO,CAAC,KAAK,MAAM,EAEnB,GAAM,CAAE,OAAA+F,EAAQ,OAAAuC,CAAO,EAAI,KAEvBD,EAAK,OAAST,KACZP,IACFiB,EAAO,KAAKjB,EAAgB,EAE9BO,GAAoB,KAAK,KAAKS,EAAK,OAAS,IAAI,EAAI,KACpDhB,GAAmBiB,EAAO,OAAOV,EAAiB,GAGpD,IAAI,WAAWU,EAAO,OAAO,OAAQjB,GAAkBO,EAAiB,EAAE,IAAIS,CAAI,EAMlF,GAAI,CACF,IAAIE,EAEJ,GAAI,CACFjB,GAAmBe,EACnBlB,GAAgB,KAChBoB,EAAMD,EAAO,eAAe,KAAK,IAAKjB,GAAkBgB,EAAK,MAAM,CAErE,OAAS/B,EAAK,CAEZ,MAAMA,CACR,QAAE,CACAa,GAAgB,KAChBG,GAAmB,IACrB,CAEA,IAAMkB,EAASF,EAAO,qBAAqB,KAAK,GAAG,EAAIjB,GAEvD,GAAIkB,IAAQ5B,GAAU,MAAM,eAC1B,KAAK,UAAU0B,EAAK,MAAMG,CAAM,CAAC,UACxBD,IAAQ5B,GAAU,MAAM,OACjC,KAAK,OAAS,GACdZ,EAAO,QAAQsC,EAAK,MAAMG,CAAM,CAAC,UACxBD,IAAQ5B,GAAU,MAAM,GAAI,CACrC,IAAM8B,EAAMH,EAAO,wBAAwB,KAAK,GAAG,EAC/CI,EAAU,GAEd,GAAID,EAAK,CACP,IAAMvB,EAAM,IAAI,WAAWoB,EAAO,OAAO,OAAQG,CAAG,EAAE,QAAQ,CAAC,EAC/DC,EACE,kDACA,OAAO,KAAKJ,EAAO,OAAO,OAAQG,EAAKvB,CAAG,EAAE,SAAS,EACrD,GACJ,CACA,MAAM,IAAInG,GAAgB2H,EAAS/B,GAAU,MAAM4B,CAAG,EAAGF,EAAK,MAAMG,CAAM,CAAC,CAC7E,CACF,OAASlC,EAAK,CACZpG,EAAK,QAAQ6F,EAAQO,CAAG,CAC1B,CACF,CAEA,SAAW,CACTtG,EAAO,KAAK,KAAO,IAAI,EACvBA,EAAOmH,IAAiB,IAAI,EAE5B,KAAK,OAAO,YAAY,KAAK,GAAG,EAChC,KAAK,IAAM,KAEXhH,GAAO,aAAa,KAAK,OAAO,EAChC,KAAK,QAAU,KACf,KAAK,aAAe,KACpB,KAAK,YAAc,KAEnB,KAAK,OAAS,EAChB,CAEA,SAAUwI,EAAK,CACb,KAAK,WAAaA,EAAI,SAAS,CACjC,CAEA,gBAAkB,CAChB,GAAM,CAAE,OAAA5C,EAAQ,OAAAkC,CAAO,EAAI,KAQ3B,GALIlC,EAAO,WAKP,CADYkC,EAAOjG,EAAM,EAAEiG,EAAOzF,EAAW,CAAC,EAEhD,MAAO,EAEX,CAEA,cAAemG,EAAK,CAClB,IAAMzB,EAAM,KAAK,QAAQ,QAEpBA,EAAM,KAAO,EAChB,KAAK,QAAQ,KAAKyB,CAAG,EAErB,KAAK,QAAQzB,EAAM,CAAC,EAAI,OAAO,OAAO,CAAC,KAAK,QAAQA,EAAM,CAAC,EAAGyB,CAAG,CAAC,EAGpE,KAAK,YAAYA,EAAI,MAAM,CAC7B,CAEA,cAAeA,EAAK,CAClB,IAAIzB,EAAM,KAAK,QAAQ,QAElBA,EAAM,KAAO,GAChB,KAAK,QAAQ,KAAKyB,CAAG,EACrBzB,GAAO,GAEP,KAAK,QAAQA,EAAM,CAAC,EAAI,OAAO,OAAO,CAAC,KAAK,QAAQA,EAAM,CAAC,EAAGyB,CAAG,CAAC,EAGpE,IAAMC,EAAM,KAAK,QAAQ1B,EAAM,CAAC,EAC5B0B,EAAI,SAAW,IAAMA,EAAI,SAAS,EAAE,YAAY,IAAM,aACxD,KAAK,WAAaD,EAAI,SAAS,EACtBC,EAAI,SAAW,IAAMA,EAAI,SAAS,EAAE,YAAY,IAAM,aAC/D,KAAK,YAAcD,EAAI,SAAS,EACvBC,EAAI,SAAW,IAAMA,EAAI,SAAS,EAAE,YAAY,IAAM,mBAC/D,KAAK,eAAiBD,EAAI,SAAS,GAGrC,KAAK,YAAYA,EAAI,MAAM,CAC7B,CAEA,YAAazB,EAAK,CAChB,KAAK,aAAeA,EAChB,KAAK,aAAe,KAAK,gBAC3BhH,EAAK,QAAQ,KAAK,OAAQ,IAAIS,EAAsB,CAExD,CAEA,UAAWkI,EAAM,CACf,GAAM,CAAE,QAAArB,EAAS,OAAAS,EAAQ,OAAAlC,EAAQ,QAAA+C,EAAS,WAAAvB,CAAW,EAAI,KAEzDvH,EAAOwH,CAAO,EAEd,IAAMpB,EAAU6B,EAAOjG,EAAM,EAAEiG,EAAOzF,EAAW,CAAC,EAClDxC,EAAOoG,CAAO,EAEdpG,EAAO,CAAC+F,EAAO,SAAS,EACxB/F,EAAO+F,IAAWkC,EAAOtF,EAAO,CAAC,EACjC3C,EAAO,CAAC,KAAK,MAAM,EACnBA,EAAOoG,EAAQ,SAAWA,EAAQ,SAAW,SAAS,EAEtD,KAAK,WAAa,KAClB,KAAK,WAAa,GAClB,KAAK,gBAAkB,KAEvBpG,EAAO,KAAK,QAAQ,OAAS,IAAM,CAAC,EACpC,KAAK,QAAU,CAAC,EAChB,KAAK,YAAc,EAEnB+F,EAAO,QAAQ8C,CAAI,EAEnB9C,EAAOvE,CAAO,EAAE,QAAQ,EACxBuE,EAAOvE,CAAO,EAAI,KAElBuE,EAAOzE,EAAO,EAAI,KAClByE,EAAOtD,EAAM,EAAI,KACjBsD,EACG,eAAe,QAASgD,EAAa,EACrC,eAAe,WAAYC,EAAgB,EAC3C,eAAe,MAAOC,EAAW,EACjC,eAAe,QAASC,EAAa,EAExCjB,EAAOtF,EAAO,EAAI,KAClBsF,EAAOjG,EAAM,EAAEiG,EAAOzF,EAAW,GAAG,EAAI,KACxCyF,EAAO,KAAK,aAAcA,EAAO9G,EAAI,EAAG,CAAC8G,CAAM,EAAG,IAAIpH,GAAmB,SAAS,CAAC,EAEnF,GAAI,CACFuF,EAAQ,UAAUmB,EAAYuB,EAAS/C,CAAM,CAC/C,OAASO,EAAK,CACZpG,EAAK,QAAQ6F,EAAQO,CAAG,CAC1B,CAEAR,GAAOmC,CAAM,CACf,CAEA,kBAAmBV,EAAYC,EAASC,EAAiB,CACvD,GAAM,CAAE,OAAAQ,EAAQ,OAAAlC,EAAQ,QAAA+C,EAAS,WAAAK,CAAW,EAAI,KAGhD,GAAIpD,EAAO,UACT,MAAO,GAGT,IAAMK,EAAU6B,EAAOjG,EAAM,EAAEiG,EAAOzF,EAAW,CAAC,EAGlD,GAAI,CAAC4D,EACH,MAAO,GAMT,GAHApG,EAAO,CAAC,KAAK,OAAO,EACpBA,EAAO,KAAK,WAAa,GAAG,EAExBuH,IAAe,IACjB,OAAArH,EAAK,QAAQ6F,EAAQ,IAAInF,GAAY,eAAgBV,EAAK,cAAc6F,CAAM,CAAC,CAAC,EACzE,GAIT,GAAIyB,GAAW,CAACpB,EAAQ,QACtB,OAAAlG,EAAK,QAAQ6F,EAAQ,IAAInF,GAAY,cAAeV,EAAK,cAAc6F,CAAM,CAAC,CAAC,EACxE,GAYT,GATA/F,EAAO,YAAY,KAAK,YAAa6H,EAAe,EAEpD,KAAK,WAAaN,EAClB,KAAK,gBACHE,GAECrB,EAAQ,SAAW,QAAU,CAACL,EAAO3E,EAAM,GAAK,KAAK,WAAW,YAAY,IAAM,aAGjF,KAAK,YAAc,IAAK,CAC1B,IAAMqD,EAAc2B,EAAQ,aAAe,KACvCA,EAAQ,YACR6B,EAAOhF,EAAY,EACvB,KAAK,WAAWwB,EAAaqD,EAAY,CAC3C,MAAW,KAAK,SAEV,KAAK,QAAQ,SACf,KAAK,QAAQ,QAAQ,EAIzB,GAAI1B,EAAQ,SAAW,UACrB,OAAApG,EAAOiI,EAAOrG,EAAQ,IAAM,CAAC,EAC7B,KAAK,QAAU,GACR,EAGT,GAAI4F,EACF,OAAAxH,EAAOiI,EAAOrG,EAAQ,IAAM,CAAC,EAC7B,KAAK,QAAU,GACR,EAOT,GAJA5B,EAAO,KAAK,QAAQ,OAAS,IAAM,CAAC,EACpC,KAAK,QAAU,CAAC,EAChB,KAAK,YAAc,EAEf,KAAK,iBAAmBiI,EAAOvF,EAAW,EAAG,CAC/C,IAAMkC,EAAmB,KAAK,UAAY1E,EAAK,sBAAsB,KAAK,SAAS,EAAI,KAEvF,GAAI0E,GAAoB,KAAM,CAC5B,IAAMwE,EAAU,KAAK,IACnBxE,EAAmBqD,EAAOlF,EAA0B,EACpDkF,EAAOnF,EAAoB,CAC7B,EACIsG,GAAW,EACbrD,EAAO3E,EAAM,EAAI,GAEjB6G,EAAOrF,EAAsB,EAAIwG,CAErC,MACEnB,EAAOrF,EAAsB,EAAIqF,EAAO5F,EAAwB,CAEpE,MAEE0D,EAAO3E,EAAM,EAAI,GAGnB,IAAIiI,EACJ,GAAI,CACFA,EAAQjD,EAAQ,UAAUmB,EAAYuB,EAAS,KAAK,OAAQK,CAAU,IAAM,EAC9E,OAAS7C,EAAK,CACZ,OAAApG,EAAK,QAAQ6F,EAAQO,CAAG,EACjB,EACT,CAMA,OAJIF,EAAQ,SAAW,QAInBmB,EAAa,IACR,GAGLxB,EAAOrE,EAAS,IAClBqE,EAAOrE,EAAS,EAAI,GACpBoE,GAAOmC,CAAM,GAGRoB,EAAQ1C,GAAU,MAAM,OAAS,EAC1C,CAEA,OAAQgC,EAAK,CACX,GAAM,CAAE,OAAAV,EAAQ,OAAAlC,EAAQ,WAAAwB,EAAY,gBAAA9B,CAAgB,EAAI,KAExD,GAAIM,EAAO,UACT,MAAO,GAGT,IAAMK,EAAU6B,EAAOjG,EAAM,EAAEiG,EAAOzF,EAAW,CAAC,EAalD,GAZAxC,EAAOoG,CAAO,EAEdpG,EAAO,YAAY,KAAK,YAAa8H,EAAY,EAC7C,KAAK,SAEH,KAAK,QAAQ,SACf,KAAK,QAAQ,QAAQ,EAIzB9H,EAAOuH,GAAc,GAAG,EAEpB9B,EAAkB,IAAM,KAAK,UAAYkD,EAAI,OAASlD,EACxD,OAAAvF,EAAK,QAAQ6F,EAAQ,IAAI/E,EAA8B,EAChD,GAGT,KAAK,WAAa2H,EAAI,OAEtB,GAAI,CACF,GAAIvC,EAAQ,OAAOuC,CAAG,IAAM,GAC1B,OAAOhC,GAAU,MAAM,MAE3B,OAASL,EAAK,CACZ,OAAApG,EAAK,QAAQ6F,EAAQO,CAAG,EACjB,EACT,CACF,CAEA,mBAAqB,CACnB,GAAM,CAAE,OAAA2B,EAAQ,OAAAlC,EAAQ,WAAAwB,EAAY,QAAAC,EAAS,QAAAsB,EAAS,cAAAQ,EAAe,UAAAC,EAAW,gBAAA9B,CAAgB,EAAI,KAEpG,GAAI1B,EAAO,YAAc,CAACwB,GAAcE,GACtC,MAAO,GAGT,GAAID,EACF,OAGF,IAAMpB,EAAU6B,EAAOjG,EAAM,EAAEiG,EAAOzF,EAAW,CAAC,EAgBlD,GAfAxC,EAAOoG,CAAO,EAEdpG,EAAOuH,GAAc,GAAG,EAExB,KAAK,WAAa,KAClB,KAAK,WAAa,GAClB,KAAK,UAAY,EACjB,KAAK,cAAgB,GACrB,KAAK,UAAY,GACjB,KAAK,WAAa,GAElBvH,EAAO,KAAK,QAAQ,OAAS,IAAM,CAAC,EACpC,KAAK,QAAU,CAAC,EAChB,KAAK,YAAc,EAEf,EAAAuH,EAAa,KAKjB,IAAInB,EAAQ,SAAW,QAAUkD,GAAiBC,IAAc,SAASD,EAAe,EAAE,EACxF,OAAApJ,EAAK,QAAQ6F,EAAQ,IAAIxF,EAAoC,EACtD,GAGT,GAAI,CACF6F,EAAQ,WAAW0C,CAAO,CAC5B,OAASxC,EAAK,CACZG,GAAawB,EAAQ7B,EAASE,CAAG,CACnC,CAIA,GAFA2B,EAAOjG,EAAM,EAAEiG,EAAOzF,EAAW,GAAG,EAAI,KAEpCuD,EAAOhE,EAAQ,EACjB,OAAA/B,EAAO,YAAYiI,EAAOrG,EAAQ,EAAG,CAAC,EAEtC1B,EAAK,QAAQ6F,EAAQ,IAAIlF,GAAmB,OAAO,CAAC,EAC7C8F,GAAU,MAAM,OAClB,GAAKc,EAGL,IAAI1B,EAAO3E,EAAM,GAAK6G,EAAOrG,EAAQ,IAAM,EAKhD,OAAA1B,EAAK,QAAQ6F,EAAQ,IAAIlF,GAAmB,OAAO,CAAC,EAC7C8F,GAAU,MAAM,OACdsB,EAAOvF,EAAW,IAAM,EAIjC,aAAaoD,GAAQmC,CAAM,EAE3BnC,GAAOmC,CAAM,MAfb,QAAA/H,EAAK,QAAQ6F,EAAQ,IAAIlF,GAAmB,OAAO,CAAC,EAC7C8F,GAAU,MAAM,OAgB3B,CACF,EAEA,SAASwB,GAAiBqB,EAAQ,CAChC,GAAM,CAAE,OAAAzD,EAAQ,YAAA0D,EAAa,OAAAxB,CAAO,EAAIuB,EAGpCC,IAAgB5B,IACd,CAAC9B,EAAOhE,EAAQ,GAAKgE,EAAO,mBAAqBkC,EAAOrG,EAAQ,EAAI,KACtE5B,EAAO,CAACwJ,EAAO,OAAQ,4CAA4C,EACnEtJ,EAAK,QAAQ6F,EAAQ,IAAIrF,EAAqB,GAEvC+I,IAAgB3B,GACpB0B,EAAO,QACVtJ,EAAK,QAAQ6F,EAAQ,IAAIjF,EAAkB,EAEpC2I,IAAgB1B,KACzB/H,EAAOiI,EAAOrG,EAAQ,IAAM,GAAKqG,EAAOrF,EAAsB,CAAC,EAC/D1C,EAAK,QAAQ6F,EAAQ,IAAIlF,GAAmB,qBAAqB,CAAC,EAEtE,CAEA,SAASmI,IAAoB,CAC3B,GAAM,CAAE,CAACxH,CAAO,EAAGgI,CAAO,EAAI,KAC9BA,EAAO,SAAS,CAClB,CAEA,SAAST,GAAezC,EAAK,CAC3B,GAAM,CAAE,CAAC9E,CAAO,EAAGgI,CAAO,EAAI,KAM9B,GAJAxJ,EAAOsG,EAAI,OAAS,8BAA8B,EAI9CA,EAAI,OAAS,cAAgBkD,EAAO,YAAc,CAACA,EAAO,gBAAiB,CAE7EA,EAAO,kBAAkB,EACzB,MACF,CAEA,KAAK/G,EAAM,EAAI6D,EAEfoD,GAAQ,KAAKpI,EAAO,EAAGgF,CAAG,CAC5B,CAEA,SAASoD,GAASzB,EAAQ3B,EAAK,CAC7B,GACE2B,EAAOrG,EAAQ,IAAM,GACrB0E,EAAI,OAAS,gBACbA,EAAI,OAAS,iBACb,CAIAtG,EAAOiI,EAAO1F,EAAW,IAAM0F,EAAOzF,EAAW,CAAC,EAElD,IAAM+D,EAAW0B,EAAOjG,EAAM,EAAE,OAAOiG,EAAOzF,EAAW,CAAC,EAC1D,QAASgE,EAAI,EAAGA,EAAID,EAAS,OAAQC,IAAK,CACxC,IAAMJ,EAAUG,EAASC,CAAC,EAC1BC,GAAawB,EAAQ7B,EAASE,CAAG,CACnC,CACAtG,EAAOiI,EAAOnG,EAAK,IAAM,CAAC,CAC5B,CACF,CAEA,SAASmH,IAAe,CACtB,GAAM,CAAE,CAACzH,CAAO,EAAGgI,CAAO,EAAI,KAE9B,GAAIA,EAAO,YAAc,CAACA,EAAO,gBAAiB,CAEhDA,EAAO,kBAAkB,EACzB,MACF,CAEAtJ,EAAK,QAAQ,KAAM,IAAIU,GAAY,oBAAqBV,EAAK,cAAc,IAAI,CAAC,CAAC,CACnF,CAEA,SAASgJ,IAAiB,CACxB,GAAM,CAAE,CAAC5H,EAAO,EAAG2G,CAAO,EAAI,KAE1B,CAAC,KAAKxF,EAAM,GAAK,KAAKjB,CAAO,EAAE,YAAc,CAAC,KAAKA,CAAO,EAAE,iBAE9D,KAAKA,CAAO,EAAE,kBAAkB,EAGlC,KAAKA,CAAO,EAAE,QAAQ,EACtB,KAAKA,CAAO,EAAI,KAEhB,IAAM8E,EAAM,KAAK7D,EAAM,GAAK,IAAI7B,GAAY,SAAUV,EAAK,cAAc,IAAI,CAAC,EAI9E,GAFA+H,EAAOtF,EAAO,EAAI,KAEdsF,EAAO,UAAW,CACpBjI,EAAOiI,EAAOpG,EAAQ,IAAM,CAAC,EAG7B,IAAM0E,EAAW0B,EAAOjG,EAAM,EAAE,OAAOiG,EAAOzF,EAAW,CAAC,EAC1D,QAASgE,EAAI,EAAGA,EAAID,EAAS,OAAQC,IAAK,CACxC,IAAMJ,EAAUG,EAASC,CAAC,EAC1BC,GAAawB,EAAQ7B,EAASE,CAAG,CACnC,CACF,SAAW2B,EAAOrG,EAAQ,EAAI,GAAK0E,EAAI,OAAS,eAAgB,CAE9D,IAAMF,EAAU6B,EAAOjG,EAAM,EAAEiG,EAAOzF,EAAW,CAAC,EAClDyF,EAAOjG,EAAM,EAAEiG,EAAOzF,EAAW,GAAG,EAAI,KAExCiE,GAAawB,EAAQ7B,EAASE,CAAG,CACnC,CAEA2B,EAAO1F,EAAW,EAAI0F,EAAOzF,EAAW,EAExCxC,EAAOiI,EAAOrG,EAAQ,IAAM,CAAC,EAE7BqG,EAAO,KAAK,aAAcA,EAAO9G,EAAI,EAAG,CAAC8G,CAAM,EAAG3B,CAAG,EAErDR,GAAOmC,CAAM,CACf,CAEA,eAAe3C,GAAS2C,EAAQ,CAC9BjI,EAAO,CAACiI,EAAO/F,EAAW,CAAC,EAC3BlC,EAAO,CAACiI,EAAOtF,EAAO,CAAC,EAEvB,GAAI,CAAE,KAAAgH,EAAM,SAAAC,EAAU,SAAAC,EAAU,KAAAC,CAAK,EAAI7B,EAAO9G,EAAI,EAGpD,GAAIyI,EAAS,CAAC,IAAM,IAAK,CACvB,IAAMG,EAAMH,EAAS,QAAQ,GAAG,EAEhC5J,EAAO+J,IAAQ,EAAE,EACjB,IAAMC,EAAKJ,EAAS,OAAO,EAAGG,EAAM,CAAC,EAErC/J,EAAOC,GAAI,KAAK+J,CAAE,CAAC,EACnBJ,EAAWI,CACb,CAEA/B,EAAO/F,EAAW,EAAI,GAElB6B,GAAS,cAAc,gBACzBA,GAAS,cAAc,QAAQ,CAC7B,cAAe,CACb,KAAA4F,EACA,SAAAC,EACA,SAAAC,EACA,KAAAC,EACA,WAAY7B,EAAO5G,EAAW,EAC9B,aAAc4G,EAAOtE,EAAa,CACpC,EACA,UAAWsE,EAAO9E,EAAU,CAC9B,CAAC,EAGH,GAAI,CACF,IAAM4C,EAAS,MAAM,IAAI,QAAQ,CAACM,EAAS4D,IAAW,CACpDhC,EAAO9E,EAAU,EAAE,CACjB,KAAAwG,EACA,SAAAC,EACA,SAAAC,EACA,KAAAC,EACA,WAAY7B,EAAO5G,EAAW,EAC9B,aAAc4G,EAAOtE,EAAa,CACpC,EAAG,CAAC2C,EAAKP,IAAW,CACdO,EACF2D,EAAO3D,CAAG,EAEVD,EAAQN,CAAM,CAElB,CAAC,CACH,CAAC,EAED,GAAIkC,EAAO,UAAW,CACpB/H,EAAK,QAAQ6F,EAAO,GAAG,QAAS,IAAM,CAAC,CAAC,EAAG,IAAI9E,EAAsB,EACrE,MACF,CAEKyG,KACHA,GAAiB,MAAMC,GACvBA,GAAgB,MAGlBM,EAAO/F,EAAW,EAAI,GAEtBlC,EAAO+F,CAAM,EAEbA,EAAO3D,EAAM,EAAI,GACjB2D,EAAOhE,EAAQ,EAAI,GACnBgE,EAAO3E,EAAM,EAAI,GACjB2E,EAAOrE,EAAS,EAAI,GACpBqE,EAAOtD,EAAM,EAAI,KACjBsD,EAAOvE,CAAO,EAAI,IAAIwG,GAAOC,EAAQlC,EAAQ2B,EAAc,EAC3D3B,EAAOzE,EAAO,EAAI2G,EAClBlC,EAAOzC,EAAQ,EAAI,EACnByC,EAAO1C,EAAY,EAAI4E,EAAO5E,EAAY,EAC1C0C,EACG,GAAG,QAASgD,EAAa,EACzB,GAAG,WAAYC,EAAgB,EAC/B,GAAG,MAAOC,EAAW,EACrB,GAAG,QAASC,EAAa,EAE5BjB,EAAOtF,EAAO,EAAIoD,EAEdhC,GAAS,UAAU,gBACrBA,GAAS,UAAU,QAAQ,CACzB,cAAe,CACb,KAAA4F,EACA,SAAAC,EACA,SAAAC,EACA,KAAAC,EACA,WAAY7B,EAAO5G,EAAW,EAC9B,aAAc4G,EAAOtE,EAAa,CACpC,EACA,UAAWsE,EAAO9E,EAAU,EAC5B,OAAA4C,CACF,CAAC,EAEHkC,EAAO,KAAK,UAAWA,EAAO9G,EAAI,EAAG,CAAC8G,CAAM,CAAC,CAC/C,OAAS3B,EAAK,CACZ,GAAI2B,EAAO,UACT,OAoBF,GAjBAA,EAAO/F,EAAW,EAAI,GAElB6B,GAAS,aAAa,gBACxBA,GAAS,aAAa,QAAQ,CAC5B,cAAe,CACb,KAAA4F,EACA,SAAAC,EACA,SAAAC,EACA,KAAAC,EACA,WAAY7B,EAAO5G,EAAW,EAC9B,aAAc4G,EAAOtE,EAAa,CACpC,EACA,UAAWsE,EAAO9E,EAAU,EAC5B,MAAOmD,CACT,CAAC,EAGCA,EAAI,OAAS,+BAEf,IADAtG,EAAOiI,EAAOrG,EAAQ,IAAM,CAAC,EACtBqG,EAAOpG,EAAQ,EAAI,GAAKoG,EAAOjG,EAAM,EAAEiG,EAAO1F,EAAW,CAAC,EAAE,aAAe0F,EAAO5G,EAAW,GAAG,CACrG,IAAM+E,EAAU6B,EAAOjG,EAAM,EAAEiG,EAAO1F,EAAW,GAAG,EACpDkE,GAAawB,EAAQ7B,EAASE,CAAG,CACnC,MAEAoD,GAAQzB,EAAQ3B,CAAG,EAGrB2B,EAAO,KAAK,kBAAmBA,EAAO9G,EAAI,EAAG,CAAC8G,CAAM,EAAG3B,CAAG,CAC5D,CAEAR,GAAOmC,CAAM,CACf,CAEA,SAASiC,GAAWjC,EAAQ,CAC1BA,EAAO9F,EAAU,EAAI,EACrB8F,EAAO,KAAK,QAASA,EAAO9G,EAAI,EAAG,CAAC8G,CAAM,CAAC,CAC7C,CAEA,SAASnC,GAAQmC,EAAQkC,EAAM,CACzBlC,EAAOtG,EAAS,IAAM,IAI1BsG,EAAOtG,EAAS,EAAI,EAEpByI,GAAQnC,EAAQkC,CAAI,EACpBlC,EAAOtG,EAAS,EAAI,EAEhBsG,EAAOzF,EAAW,EAAI,MACxByF,EAAOjG,EAAM,EAAE,OAAO,EAAGiG,EAAOzF,EAAW,CAAC,EAC5CyF,EAAO1F,EAAW,GAAK0F,EAAOzF,EAAW,EACzCyF,EAAOzF,EAAW,EAAI,GAE1B,CAEA,SAAS4H,GAASnC,EAAQkC,EAAM,CAC9B,OAAa,CACX,GAAIlC,EAAO,UAAW,CACpBjI,EAAOiI,EAAOpG,EAAQ,IAAM,CAAC,EAC7B,MACF,CAEA,GAAIoG,EAAOnE,EAAc,GAAK,CAACmE,EAAOnG,EAAK,EAAG,CAC5CmG,EAAOnE,EAAc,EAAE,EACvBmE,EAAOnE,EAAc,EAAI,KACzB,MACF,CAEA,IAAMiC,EAASkC,EAAOtF,EAAO,EAE7B,GAAIoD,GAAU,CAACA,EAAO,WAWpB,GAVIkC,EAAOnG,EAAK,IAAM,EAChB,CAACiE,EAAO3D,EAAM,GAAK2D,EAAO,QAC5BA,EAAO,MAAM,EACbA,EAAO3D,EAAM,EAAI,IAEV2D,EAAO3D,EAAM,GAAK2D,EAAO,MAClCA,EAAO,IAAI,EACXA,EAAO3D,EAAM,EAAI,IAGf6F,EAAOnG,EAAK,IAAM,EAChBiE,EAAOvE,CAAO,EAAE,cAAgBuG,IAClChC,EAAOvE,CAAO,EAAE,WAAWyG,EAAOrF,EAAsB,EAAGmF,EAAY,UAEhEE,EAAOrG,EAAQ,EAAI,GAAKmE,EAAOvE,CAAO,EAAE,WAAa,KAC1DuE,EAAOvE,CAAO,EAAE,cAAgBqG,GAAiB,CACnD,IAAMzB,EAAU6B,EAAOjG,EAAM,EAAEiG,EAAOzF,EAAW,CAAC,EAC5C6B,EAAiB+B,EAAQ,gBAAkB,KAC7CA,EAAQ,eACR6B,EAAOjF,EAAe,EAC1B+C,EAAOvE,CAAO,EAAE,WAAW6C,EAAgBwD,EAAe,CAC5D,EAIJ,GAAII,EAAO1G,EAAK,EACd0G,EAAO9F,EAAU,EAAI,UACZ8F,EAAO9F,EAAU,IAAM,EAAG,CAC/BgI,GACFlC,EAAO9F,EAAU,EAAI,EACrB,QAAQ,SAAS+H,GAAWjC,CAAM,GAElCiC,GAAUjC,CAAM,EAElB,QACF,CAMA,GAJIA,EAAOpG,EAAQ,IAAM,GAIrBoG,EAAOrG,EAAQ,IAAMqG,EAAOvF,EAAW,GAAK,GAC9C,OAGF,IAAM0D,EAAU6B,EAAOjG,EAAM,EAAEiG,EAAO1F,EAAW,CAAC,EAElD,GAAI0F,EAAO9G,EAAI,EAAE,WAAa,UAAY8G,EAAO5G,EAAW,IAAM+E,EAAQ,WAAY,CACpF,GAAI6B,EAAOrG,EAAQ,EAAI,EACrB,OAKF,GAFAqG,EAAO5G,EAAW,EAAI+E,EAAQ,WAE1BL,GAAUA,EAAO,aAAeK,EAAQ,WAAY,CACtDlG,EAAK,QAAQ6F,EAAQ,IAAIlF,GAAmB,oBAAoB,CAAC,EACjE,MACF,CACF,CAEA,GAAIoH,EAAO/F,EAAW,EACpB,OAGF,GAAI,CAAC6D,EAAQ,CACXT,GAAQ2C,CAAM,EACd,MACF,CAoCA,GAlCIlC,EAAO,WAAaA,EAAOhE,EAAQ,GAAKgE,EAAO3E,EAAM,GAAK2E,EAAOrE,EAAS,GAI1EuG,EAAOrG,EAAQ,EAAI,GAAK,CAACwE,EAAQ,YAOjC6B,EAAOrG,EAAQ,EAAI,IAAMwE,EAAQ,SAAWA,EAAQ,SAAW,aAO/DlG,EAAK,SAASkG,EAAQ,IAAI,GAAKlG,EAAK,WAAWkG,EAAQ,IAAI,IAAM,IACnEA,EAAQ,KACL,GAAG,OAAmC,UAAY,CAEjDpG,EAAO,EAAK,CACd,CAAC,EACA,GAAG,QAAS,SAAUsG,EAAK,CAC1BG,GAAawB,EAAQ7B,EAASE,CAAG,CACnC,CAAC,EACA,GAAG,MAAO,UAAY,CACrBpG,EAAK,QAAQ,IAAI,CACnB,CAAC,EAEHkG,EAAQ,KAAO,MAGb6B,EAAOrG,EAAQ,EAAI,IACpB1B,EAAK,SAASkG,EAAQ,IAAI,GAAKlG,EAAK,gBAAgBkG,EAAQ,IAAI,IASjE,OAGE,CAACA,EAAQ,SAAWiE,GAAMpC,EAAQ7B,CAAO,EAC3C6B,EAAO1F,EAAW,IAElB0F,EAAOjG,EAAM,EAAE,OAAOiG,EAAO1F,EAAW,EAAG,CAAC,CAEhD,CACF,CAEA,SAAS8H,GAAOpC,EAAQ7B,EAAS,CAC/B,GAAM,CAAE,KAAAkE,EAAM,OAAAC,EAAQ,KAAAC,EAAM,KAAAb,EAAM,QAAAnC,EAAS,QAAAsB,EAAS,SAAA2B,EAAU,MAAAC,CAAM,EAAItE,EAWlEuE,EACJJ,IAAW,OACXA,IAAW,QACXA,IAAW,QAGTD,GAAQ,OAAOA,EAAK,MAAS,YAE/BA,EAAK,KAAK,CAAC,EAGb,IAAIhB,EAAgBpJ,EAAK,WAAWoK,CAAI,EAexC,GAbIhB,IAAkB,OACpBA,EAAgBlD,EAAQ,eAGtBkD,IAAkB,GAAK,CAACqB,IAM1BrB,EAAgB,MAGdlD,EAAQ,gBAAkB,MAAQA,EAAQ,gBAAkBkD,EAAe,CAC7E,GAAIrB,EAAO/E,EAAoB,EAC7B,OAAAuD,GAAawB,EAAQ7B,EAAS,IAAI9F,EAAmC,EAC9D,GAGT,QAAQ,YAAY,IAAIA,EAAmC,CAC7D,CAEA,IAAMyF,EAASkC,EAAOtF,EAAO,EAE7B,GAAI,CACFyD,EAAQ,UAAWE,GAAQ,CACrBF,EAAQ,SAAWA,EAAQ,YAI/BK,GAAawB,EAAQ7B,EAASE,GAAO,IAAI7F,EAAqB,EAE9DP,EAAK,QAAQ6F,EAAQ,IAAIlF,GAAmB,SAAS,CAAC,EACxD,CAAC,CACH,OAASyF,EAAK,CACZG,GAAawB,EAAQ7B,EAASE,CAAG,CACnC,CAEA,GAAIF,EAAQ,QACV,MAAO,GAGLmE,IAAW,SAKbxE,EAAO3E,EAAM,EAAI,KAGfoG,GAAW+C,IAAW,aAIxBxE,EAAO3E,EAAM,EAAI,IAGfsJ,GAAS,OACX3E,EAAO3E,EAAM,EAAIsJ,GAGfzC,EAAO5E,EAAY,GAAK0C,EAAOzC,EAAQ,KAAO2E,EAAO5E,EAAY,IACnE0C,EAAO3E,EAAM,EAAI,IAGfqJ,IACF1E,EAAOrE,EAAS,EAAI,IAGtB,IAAIkJ,EAAS,GAAGL,CAAM,IAAIC,CAAI;AAAA,EAE9B,OAAI,OAAOb,GAAS,SAClBiB,GAAU,SAASjB,CAAI;AAAA,EAEvBiB,GAAU3C,EAAO3F,EAAW,EAG1BkF,EACFoD,GAAU;AAAA,WAAmCpD,CAAO;AAAA,EAC3CS,EAAOvF,EAAW,GAAK,CAACqD,EAAO3E,EAAM,EAC9CwJ,GAAU;AAAA,EAEVA,GAAU;AAAA,EAGR9B,IACF8B,GAAU9B,GAGR/E,GAAS,YAAY,gBACvBA,GAAS,YAAY,QAAQ,CAAE,QAAAqC,EAAS,QAASwE,EAAQ,OAAA7E,CAAO,CAAC,EAI9DuE,EAQMpK,EAAK,SAASoK,CAAI,GAC3BtK,EAAOsJ,IAAkBgB,EAAK,WAAY,sCAAsC,EAEhFvE,EAAO,KAAK,EACZA,EAAO,MAAM,GAAG6E,CAAM,mBAAmBtB,CAAa;AAAA;AAAA,EAAY,QAAQ,EAC1EvD,EAAO,MAAMuE,CAAI,EACjBvE,EAAO,OAAO,EACdK,EAAQ,WAAWkE,CAAI,EACvBlE,EAAQ,cAAc,EACjBuE,IACH5E,EAAO3E,EAAM,EAAI,KAEVlB,EAAK,WAAWoK,CAAI,EACzB,OAAOA,EAAK,QAAW,WACzBO,GAAc,CAAE,KAAMP,EAAK,OAAO,EAAG,OAAArC,EAAQ,QAAA7B,EAAS,OAAAL,EAAQ,cAAAuD,EAAe,OAAAsB,EAAQ,eAAAD,CAAe,CAAC,EAErGG,GAAU,CAAE,KAAAR,EAAM,OAAArC,EAAQ,QAAA7B,EAAS,OAAAL,EAAQ,cAAAuD,EAAe,OAAAsB,EAAQ,eAAAD,CAAe,CAAC,EAE3EzK,EAAK,SAASoK,CAAI,EAC3BS,GAAY,CAAE,KAAAT,EAAM,OAAArC,EAAQ,QAAA7B,EAAS,OAAAL,EAAQ,cAAAuD,EAAe,OAAAsB,EAAQ,eAAAD,CAAe,CAAC,EAC3EzK,EAAK,WAAWoK,CAAI,EAC7BO,GAAc,CAAE,KAAAP,EAAM,OAAArC,EAAQ,QAAA7B,EAAS,OAAAL,EAAQ,cAAAuD,EAAe,OAAAsB,EAAQ,eAAAD,CAAe,CAAC,EAEtF3K,EAAO,EAAK,GA9BRsJ,IAAkB,EACpBvD,EAAO,MAAM,GAAG6E,CAAM;AAAA;AAAA,EAA6B,QAAQ,GAE3D5K,EAAOsJ,IAAkB,KAAM,sCAAsC,EACrEvD,EAAO,MAAM,GAAG6E,CAAM;AAAA,EAAQ,QAAQ,GAExCxE,EAAQ,cAAc,GA2BjB,EACT,CAEA,SAAS2E,GAAa,CAAE,KAAAT,EAAM,OAAArC,EAAQ,QAAA7B,EAAS,OAAAL,EAAQ,cAAAuD,EAAe,OAAAsB,EAAQ,eAAAD,CAAe,EAAG,CAC9F3K,EAAOsJ,IAAkB,GAAKrB,EAAOrG,EAAQ,IAAM,EAAG,iCAAiC,EAEvF,IAAIoJ,EAAW,GAETC,EAAS,IAAIC,GAAY,CAAE,OAAAnF,EAAQ,QAAAK,EAAS,cAAAkD,EAAe,OAAArB,EAAQ,eAAA0C,EAAgB,OAAAC,CAAO,CAAC,EAE3FO,EAAS,SAAU/C,EAAO,CAC9B,GAAI,CAAA4C,EAIJ,GAAI,CACE,CAACC,EAAO,MAAM7C,CAAK,GAAK,KAAK,OAC/B,KAAK,MAAM,CAEf,OAAS9B,EAAK,CACZpG,EAAK,QAAQ,KAAMoG,CAAG,CACxB,CACF,EACM8E,EAAU,UAAY,CACtBJ,GAIAV,EAAK,QACPA,EAAK,OAAO,CAEhB,EACMe,EAAU,UAAY,CAC1BC,EAAW,IAAI7K,EAAqB,CACtC,EACM6K,EAAa,SAAUhF,EAAK,CAChC,GAAI,CAAA0E,EAkBJ,IAdAA,EAAW,GAEXhL,EAAO+F,EAAO,WAAcA,EAAOhE,EAAQ,GAAKkG,EAAOrG,EAAQ,GAAK,CAAE,EAEtEmE,EACG,IAAI,QAASqF,CAAO,EACpB,IAAI,QAASE,CAAU,EAE1BhB,EACG,eAAe,OAAQa,CAAM,EAC7B,eAAe,MAAOG,CAAU,EAChC,eAAe,QAASA,CAAU,EAClC,eAAe,QAASD,CAAO,EAE9B,CAAC/E,EACH,GAAI,CACF2E,EAAO,IAAI,CACb,OAASM,EAAI,CACXjF,EAAMiF,CACR,CAGFN,EAAO,QAAQ3E,CAAG,EAEdA,IAAQA,EAAI,OAAS,gBAAkBA,EAAI,UAAY,SACzDpG,EAAK,QAAQoK,EAAMhE,CAAG,EAEtBpG,EAAK,QAAQoK,CAAI,EAErB,EAEAA,EACG,GAAG,OAAQa,CAAM,EACjB,GAAG,MAAOG,CAAU,EACpB,GAAG,QAASA,CAAU,EACtB,GAAG,QAASD,CAAO,EAElBf,EAAK,QACPA,EAAK,OAAO,EAGdvE,EACG,GAAG,QAASqF,CAAO,EACnB,GAAG,QAASE,CAAU,CAC3B,CAEA,eAAeR,GAAW,CAAE,KAAAR,EAAM,OAAArC,EAAQ,QAAA7B,EAAS,OAAAL,EAAQ,cAAAuD,EAAe,OAAAsB,EAAQ,eAAAD,CAAe,EAAG,CAClG3K,EAAOsJ,IAAkBgB,EAAK,KAAM,oCAAoC,EAExE,GAAI,CACF,GAAIhB,GAAiB,MAAQA,IAAkBgB,EAAK,KAClD,MAAM,IAAIhK,GAGZ,IAAMkL,EAAS,OAAO,KAAK,MAAMlB,EAAK,YAAY,CAAC,EAEnDvE,EAAO,KAAK,EACZA,EAAO,MAAM,GAAG6E,CAAM,mBAAmBtB,CAAa;AAAA;AAAA,EAAY,QAAQ,EAC1EvD,EAAO,MAAMyF,CAAM,EACnBzF,EAAO,OAAO,EAEdK,EAAQ,WAAWoF,CAAM,EACzBpF,EAAQ,cAAc,EAEjBuE,IACH5E,EAAO3E,EAAM,EAAI,IAGnB0E,GAAOmC,CAAM,CACf,OAAS3B,EAAK,CACZpG,EAAK,QAAQ6F,EAAQO,CAAG,CAC1B,CACF,CAEA,eAAeuE,GAAe,CAAE,KAAAP,EAAM,OAAArC,EAAQ,QAAA7B,EAAS,OAAAL,EAAQ,cAAAuD,EAAe,OAAAsB,EAAQ,eAAAD,CAAe,EAAG,CACtG3K,EAAOsJ,IAAkB,GAAKrB,EAAOrG,EAAQ,IAAM,EAAG,mCAAmC,EAEzF,IAAI8E,EAAW,KACf,SAAS0E,GAAW,CAClB,GAAI1E,EAAU,CACZ,IAAMV,EAAKU,EACXA,EAAW,KACXV,EAAG,CACL,CACF,CAEA,IAAMyF,EAAe,IAAM,IAAI,QAAQ,CAACpF,EAAS4D,IAAW,CAC1DjK,EAAO0G,IAAa,IAAI,EAEpBX,EAAOtD,EAAM,EACfwH,EAAOlE,EAAOtD,EAAM,CAAC,EAErBiE,EAAWL,CAEf,CAAC,EAEDN,EACG,GAAG,QAASqF,CAAO,EACnB,GAAG,QAASA,CAAO,EAEtB,IAAMH,EAAS,IAAIC,GAAY,CAAE,OAAAnF,EAAQ,QAAAK,EAAS,cAAAkD,EAAe,OAAArB,EAAQ,eAAA0C,EAAgB,OAAAC,CAAO,CAAC,EACjG,GAAI,CAEF,cAAiBxC,KAASkC,EAAM,CAC9B,GAAIvE,EAAOtD,EAAM,EACf,MAAMsD,EAAOtD,EAAM,EAGhBwI,EAAO,MAAM7C,CAAK,GACrB,MAAMqD,EAAa,CAEvB,CAEAR,EAAO,IAAI,CACb,OAAS3E,EAAK,CACZ2E,EAAO,QAAQ3E,CAAG,CACpB,QAAE,CACAP,EACG,IAAI,QAASqF,CAAO,EACpB,IAAI,QAASA,CAAO,CACzB,CACF,CAEA,IAAMF,GAAN,KAAkB,CAChB,YAAa,CAAE,OAAAnF,EAAQ,QAAAK,EAAS,cAAAkD,EAAe,OAAArB,EAAQ,eAAA0C,EAAgB,OAAAC,CAAO,EAAG,CAC/E,KAAK,OAAS7E,EACd,KAAK,QAAUK,EACf,KAAK,cAAgBkD,EACrB,KAAK,OAASrB,EACd,KAAK,aAAe,EACpB,KAAK,eAAiB0C,EACtB,KAAK,OAASC,EAEd7E,EAAOhE,EAAQ,EAAI,EACrB,CAEA,MAAOqG,EAAO,CACZ,GAAM,CAAE,OAAArC,EAAQ,QAAAK,EAAS,cAAAkD,EAAe,OAAArB,EAAQ,aAAAyD,EAAc,eAAAf,EAAgB,OAAAC,CAAO,EAAI,KAEzF,GAAI7E,EAAOtD,EAAM,EACf,MAAMsD,EAAOtD,EAAM,EAGrB,GAAIsD,EAAO,UACT,MAAO,GAGT,IAAMmB,EAAM,OAAO,WAAWkB,CAAK,EACnC,GAAI,CAAClB,EACH,MAAO,GAIT,GAAIoC,IAAkB,MAAQoC,EAAexE,EAAMoC,EAAe,CAChE,GAAIrB,EAAO/E,EAAoB,EAC7B,MAAM,IAAI5C,GAGZ,QAAQ,YAAY,IAAIA,EAAmC,CAC7D,CAEAyF,EAAO,KAAK,EAER2F,IAAiB,IACdf,IACH5E,EAAO3E,EAAM,EAAI,IAGfkI,IAAkB,KACpBvD,EAAO,MAAM,GAAG6E,CAAM;AAAA,EAAkC,QAAQ,EAEhE7E,EAAO,MAAM,GAAG6E,CAAM,mBAAmBtB,CAAa;AAAA;AAAA,EAAY,QAAQ,GAI1EA,IAAkB,MACpBvD,EAAO,MAAM;AAAA,EAAOmB,EAAI,SAAS,EAAE,CAAC;AAAA,EAAQ,QAAQ,EAGtD,KAAK,cAAgBA,EAErB,IAAMqB,EAAMxC,EAAO,MAAMqC,CAAK,EAE9B,OAAArC,EAAO,OAAO,EAEdK,EAAQ,WAAWgC,CAAK,EAEnBG,GACCxC,EAAOvE,CAAO,EAAE,SAAWuE,EAAOvE,CAAO,EAAE,cAAgBqG,IAEzD9B,EAAOvE,CAAO,EAAE,QAAQ,SAC1BuE,EAAOvE,CAAO,EAAE,QAAQ,QAAQ,EAK/B+G,CACT,CAEA,KAAO,CACL,GAAM,CAAE,OAAAxC,EAAQ,cAAAuD,EAAe,OAAArB,EAAQ,aAAAyD,EAAc,eAAAf,EAAgB,OAAAC,EAAQ,QAAAxE,CAAQ,EAAI,KAKzF,GAJAA,EAAQ,cAAc,EAEtBL,EAAOhE,EAAQ,EAAI,GAEfgE,EAAOtD,EAAM,EACf,MAAMsD,EAAOtD,EAAM,EAGrB,GAAI,CAAAsD,EAAO,UAmBX,IAfI2F,IAAiB,EACff,EAMF5E,EAAO,MAAM,GAAG6E,CAAM;AAAA;AAAA,EAA6B,QAAQ,EAE3D7E,EAAO,MAAM,GAAG6E,CAAM;AAAA,EAAQ,QAAQ,EAE/BtB,IAAkB,MAC3BvD,EAAO,MAAM;AAAA;AAAA;AAAA,EAAiB,QAAQ,EAGpCuD,IAAkB,MAAQoC,IAAiBpC,EAAe,CAC5D,GAAIrB,EAAO/E,EAAoB,EAC7B,MAAM,IAAI5C,GAEV,QAAQ,YAAY,IAAIA,EAAmC,CAE/D,CAEIyF,EAAOvE,CAAO,EAAE,SAAWuE,EAAOvE,CAAO,EAAE,cAAgBqG,IAEzD9B,EAAOvE,CAAO,EAAE,QAAQ,SAC1BuE,EAAOvE,CAAO,EAAE,QAAQ,QAAQ,EAIpCsE,GAAOmC,CAAM,EACf,CAEA,QAAS3B,EAAK,CACZ,GAAM,CAAE,OAAAP,EAAQ,OAAAkC,CAAO,EAAI,KAE3BlC,EAAOhE,EAAQ,EAAI,GAEfuE,IACFtG,EAAOiI,EAAOrG,EAAQ,GAAK,EAAG,2CAA2C,EACzE1B,EAAK,QAAQ6F,EAAQO,CAAG,EAE5B,CACF,EAEA,SAASG,GAAcwB,EAAQ7B,EAASE,EAAK,CAC3C,GAAI,CACFF,EAAQ,QAAQE,CAAG,EACnBtG,EAAOoG,EAAQ,OAAO,CACxB,OAASE,EAAK,CACZ2B,EAAO,KAAK,QAAS3B,CAAG,CAC1B,CACF,CAEAvG,GAAO,QAAUkE,KCnwDjB,IAAA0H,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cA0DA,IAAMC,GAAN,KAA0B,CACxB,aAAc,CACZ,KAAK,OAAS,EACd,KAAK,IAAM,EACX,KAAK,KAAO,IAAI,MAAM,IAAK,EAC3B,KAAK,KAAO,IACd,CAEA,SAAU,CACR,OAAO,KAAK,MAAQ,KAAK,MAC3B,CAEA,QAAS,CACP,OAAS,KAAK,IAAM,EAAK,QAAW,KAAK,MAC3C,CAEA,KAAKC,EAAM,CACT,KAAK,KAAK,KAAK,GAAG,EAAIA,EACtB,KAAK,IAAO,KAAK,IAAM,EAAK,IAC9B,CAEA,OAAQ,CACN,IAAMC,EAAW,KAAK,KAAK,KAAK,MAAM,EACtC,OAAIA,IAAa,OACR,MACT,KAAK,KAAK,KAAK,MAAM,EAAI,OACzB,KAAK,OAAU,KAAK,OAAS,EAAK,KAC3BA,EACT,CACF,EAEAH,GAAO,QAAU,KAAiB,CAChC,aAAc,CACZ,KAAK,KAAO,KAAK,KAAO,IAAIC,EAC9B,CAEA,SAAU,CACR,OAAO,KAAK,KAAK,QAAQ,CAC3B,CAEA,KAAKC,EAAM,CACL,KAAK,KAAK,OAAO,IAGnB,KAAK,KAAO,KAAK,KAAK,KAAO,IAAID,IAEnC,KAAK,KAAK,KAAKC,CAAI,CACrB,CAEA,OAAQ,CACN,IAAME,EAAO,KAAK,KACZC,EAAOD,EAAK,MAAM,EACxB,OAAIA,EAAK,QAAQ,GAAKA,EAAK,OAAS,OAElC,KAAK,KAAOA,EAAK,MAEZC,CACT,CACF,ICpHA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,IAAM,CAAE,MAAAC,GAAO,WAAAC,GAAY,SAAAC,GAAU,QAAAC,GAAS,SAAAC,GAAU,MAAAC,EAAM,EAAI,IAC5DC,GAAQ,OAAO,MAAM,EAErBC,GAAN,KAAgB,CACd,YAAaC,EAAM,CACjB,KAAKF,EAAK,EAAIE,CAChB,CAEA,IAAI,WAAa,CACf,OAAO,KAAKF,EAAK,EAAEL,EAAU,CAC/B,CAEA,IAAI,MAAQ,CACV,OAAO,KAAKK,EAAK,EAAEN,EAAK,CAC1B,CAEA,IAAI,SAAW,CACb,OAAO,KAAKM,EAAK,EAAEJ,EAAQ,CAC7B,CAEA,IAAI,QAAU,CACZ,OAAO,KAAKI,EAAK,EAAEH,EAAO,CAC5B,CAEA,IAAI,SAAW,CACb,OAAO,KAAKG,EAAK,EAAEF,EAAQ,CAC7B,CAEA,IAAI,MAAQ,CACV,OAAO,KAAKE,EAAK,EAAED,EAAK,CAC1B,CACF,EAEAN,GAAO,QAAUQ,KCjCjB,IAAAE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAiB,KACjBC,GAAa,KACb,CAAE,WAAAC,GAAY,MAAAC,GAAO,SAAAC,GAAU,SAAAC,GAAU,QAAAC,GAAS,MAAAC,GAAO,MAAAC,GAAO,KAAAC,GAAM,OAAAC,GAAQ,SAAAC,GAAU,UAAAC,EAAU,EAAI,IACtGC,GAAY,KAEZC,GAAW,OAAO,SAAS,EAC3BC,GAAa,OAAO,WAAW,EAC/BC,GAAS,OAAO,OAAO,EACvBC,GAAiB,OAAO,gBAAgB,EACxCC,GAAW,OAAO,SAAS,EAC3BC,GAAa,OAAO,WAAW,EAC/BC,GAAgB,OAAO,cAAc,EACrCC,GAAqB,OAAO,mBAAmB,EAC/CC,GAAiB,OAAO,gBAAgB,EACxCC,GAAa,OAAO,YAAY,EAChCC,GAAgB,OAAO,eAAe,EACtCC,GAAS,OAAO,OAAO,EAEvBC,GAAN,cAAuB1B,EAAe,CACpC,aAAe,CACb,MAAM,EAEN,KAAKgB,EAAM,EAAI,IAAIf,GACnB,KAAKa,EAAQ,EAAI,CAAC,EAClB,KAAKR,EAAO,EAAI,EAEhB,IAAMqB,EAAO,KAEb,KAAKT,EAAQ,EAAI,SAAkBU,EAAQC,EAAS,CAClD,IAAMC,EAAQH,EAAKX,EAAM,EAErBe,EAAY,GAEhB,KAAO,CAACA,GAAW,CACjB,IAAMC,EAAOF,EAAM,MAAM,EACzB,GAAI,CAACE,EACH,MAEFL,EAAKrB,EAAO,IACZyB,EAAY,CAAC,KAAK,SAASC,EAAK,KAAMA,EAAK,OAAO,CACpD,CAEA,KAAKjB,EAAU,EAAIgB,EAEf,CAAC,KAAKhB,EAAU,GAAKY,EAAKZ,EAAU,IACtCY,EAAKZ,EAAU,EAAI,GACnBY,EAAK,KAAK,QAASC,EAAQ,CAACD,EAAM,GAAGE,CAAO,CAAC,GAG3CF,EAAKV,EAAc,GAAKa,EAAM,QAAQ,GACxC,QACG,IAAIH,EAAKb,EAAQ,EAAE,IAAImB,GAAKA,EAAE,MAAM,CAAC,CAAC,EACtC,KAAKN,EAAKV,EAAc,CAAC,CAEhC,EAEA,KAAKE,EAAU,EAAI,CAACS,EAAQC,IAAY,CACtCF,EAAK,KAAK,UAAWC,EAAQ,CAACD,EAAM,GAAGE,CAAO,CAAC,CACjD,EAEA,KAAKT,EAAa,EAAI,CAACQ,EAAQC,EAASK,IAAQ,CAC9CP,EAAK,KAAK,aAAcC,EAAQ,CAACD,EAAM,GAAGE,CAAO,EAAGK,CAAG,CACzD,EAEA,KAAKb,EAAkB,EAAI,CAACO,EAAQC,EAASK,IAAQ,CACnDP,EAAK,KAAK,kBAAmBC,EAAQ,CAACD,EAAM,GAAGE,CAAO,EAAGK,CAAG,CAC9D,EAEA,KAAKT,EAAM,EAAI,IAAIZ,GAAU,IAAI,CACnC,CAEA,IAAKN,EAAK,GAAK,CACb,OAAO,KAAKQ,EAAU,CACxB,CAEA,IAAKb,EAAU,GAAK,CAClB,OAAO,KAAKY,EAAQ,EAAE,OAAOqB,GAAUA,EAAOjC,EAAU,CAAC,EAAE,MAC7D,CAEA,IAAKM,EAAK,GAAK,CACb,OAAO,KAAKM,EAAQ,EAAE,OAAOqB,GAAUA,EAAOjC,EAAU,GAAK,CAACiC,EAAOpB,EAAU,CAAC,EAAE,MACpF,CAEA,IAAKV,EAAQ,GAAK,CAChB,IAAI+B,EAAM,KAAK9B,EAAO,EACtB,OAAW,CAAE,CAACD,EAAQ,EAAGgC,CAAQ,IAAK,KAAKvB,EAAQ,EACjDsB,GAAOC,EAET,OAAOD,CACT,CAEA,IAAKhC,EAAQ,GAAK,CAChB,IAAIgC,EAAM,EACV,OAAW,CAAE,CAAChC,EAAQ,EAAGkC,CAAQ,IAAK,KAAKxB,EAAQ,EACjDsB,GAAOE,EAET,OAAOF,CACT,CAEA,IAAKjC,EAAK,GAAK,CACb,IAAIiC,EAAM,KAAK9B,EAAO,EACtB,OAAW,CAAE,CAACH,EAAK,EAAGoC,CAAK,IAAK,KAAKzB,EAAQ,EAC3CsB,GAAOG,EAET,OAAOH,CACT,CAEA,IAAI,OAAS,CACX,OAAO,KAAKX,EAAM,CACpB,CAEA,MAAOf,EAAM,GAAK,CAChB,OAAI,KAAKM,EAAM,EAAE,QAAQ,EAChB,QAAQ,IAAI,KAAKF,EAAQ,EAAE,IAAImB,GAAKA,EAAE,MAAM,CAAC,CAAC,EAE9C,IAAI,QAASO,GAAY,CAC9B,KAAKvB,EAAc,EAAIuB,CACzB,CAAC,CAEL,CAEA,MAAO7B,EAAQ,EAAGuB,EAAK,CACrB,OAAa,CACX,IAAMF,EAAO,KAAKhB,EAAM,EAAE,MAAM,EAChC,GAAI,CAACgB,EACH,MAEFA,EAAK,QAAQ,QAAQE,CAAG,CAC1B,CAEA,OAAO,QAAQ,IAAI,KAAKpB,EAAQ,EAAE,IAAImB,GAAKA,EAAE,QAAQC,CAAG,CAAC,CAAC,CAC5D,CAEA,CAACtB,EAAS,EAAG6B,EAAMC,EAAS,CAC1B,IAAMC,EAAa,KAAKrB,EAAc,EAAE,EAExC,OAAKqB,EAIOA,EAAW,SAASF,EAAMC,CAAO,IAC3CC,EAAW5B,EAAU,EAAI,GACzB,KAAKA,EAAU,EAAI,CAAC,KAAKO,EAAc,EAAE,IALzC,KAAKP,EAAU,EAAI,GACnB,KAAKC,EAAM,EAAE,KAAK,CAAE,KAAAyB,EAAM,QAAAC,CAAQ,CAAC,EACnC,KAAKpC,EAAO,KAMP,CAAC,KAAKS,EAAU,CACzB,CAEA,CAACQ,EAAU,EAAGY,EAAQ,CACpB,OAAAA,EACG,GAAG,QAAS,KAAKjB,EAAQ,CAAC,EAC1B,GAAG,UAAW,KAAKC,EAAU,CAAC,EAC9B,GAAG,aAAc,KAAKC,EAAa,CAAC,EACpC,GAAG,kBAAmB,KAAKC,EAAkB,CAAC,EAEjD,KAAKP,EAAQ,EAAE,KAAKqB,CAAM,EAEtB,KAAKpB,EAAU,GACjB,QAAQ,SAAS,IAAM,CACjB,KAAKA,EAAU,GACjB,KAAKG,EAAQ,EAAEiB,EAAO1B,EAAI,EAAG,CAAC,KAAM0B,CAAM,CAAC,CAE/C,CAAC,EAGI,IACT,CAEA,CAACX,EAAa,EAAGW,EAAQ,CACvBA,EAAO,MAAM,IAAM,CACjB,IAAMS,EAAM,KAAK9B,EAAQ,EAAE,QAAQqB,CAAM,EACrCS,IAAQ,IACV,KAAK9B,EAAQ,EAAE,OAAO8B,EAAK,CAAC,CAEhC,CAAC,EAED,KAAK7B,EAAU,EAAI,KAAKD,EAAQ,EAAE,KAAK6B,GACrC,CAACA,EAAW5B,EAAU,GACtB4B,EAAW,SAAW,IACtBA,EAAW,YAAc,EAC1B,CACH,CACF,EAEA5C,GAAO,QAAU,CACf,SAAA2B,GACA,SAAAZ,GACA,WAAAC,GACA,WAAAQ,GACA,cAAAC,GACA,eAAAF,EACF,ICjMA,IAAAuB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CACJ,SAAAC,GACA,SAAAC,GACA,WAAAC,GACA,WAAAC,GACA,eAAAC,EACF,EAAI,KACEC,GAAS,KACT,CACJ,qBAAAC,EACF,EAAI,IACEC,GAAO,IACP,CAAE,KAAAC,GAAM,cAAAC,EAAc,EAAI,IAC1BC,GAAiB,KAEjBC,GAAW,OAAO,SAAS,EAC3BC,GAAe,OAAO,aAAa,EACnCC,GAAW,OAAO,SAAS,EAEjC,SAASC,GAAgBC,EAAQC,EAAM,CACrC,OAAO,IAAIX,GAAOU,EAAQC,CAAI,CAChC,CAEA,IAAMC,GAAN,cAAmBjB,EAAS,CAC1B,YAAae,EAAQ,CACnB,YAAAG,EACA,QAAAC,EAAUL,GACV,QAAAM,EACA,eAAAC,EACA,IAAAC,EACA,kBAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,+BAAAC,EACA,GAAGC,CACL,EAAI,CAAC,EAAG,CAGN,GAFA,MAAM,EAEFT,GAAe,OAAS,CAAC,OAAO,SAASA,CAAW,GAAKA,EAAc,GACzE,MAAM,IAAIZ,GAAqB,qBAAqB,EAGtD,GAAI,OAAOa,GAAY,WACrB,MAAM,IAAIb,GAAqB,6BAA6B,EAG9D,GAAIc,GAAW,MAAQ,OAAOA,GAAY,YAAc,OAAOA,GAAY,SACzE,MAAM,IAAId,GAAqB,yCAAyC,EAGtE,OAAOc,GAAY,aACrBA,EAAUV,GAAe,CACvB,GAAGY,EACH,kBAAAC,EACA,WAAAC,EACA,QAASH,GAAyB,IAClC,GAAId,GAAK,yBAA2BkB,EAAmB,CAAE,iBAAAA,EAAkB,+BAAAC,CAA+B,EAAI,OAC9G,GAAGN,CACL,CAAC,GAGH,KAAKX,EAAa,EAAIkB,EAAQ,cAAgBA,EAAQ,aAAa,MAAQ,MAAM,QAAQA,EAAQ,aAAa,IAAI,EAC9GA,EAAQ,aAAa,KACrB,CAAC,EACL,KAAKf,EAAY,EAAIM,GAAe,KACpC,KAAKV,EAAI,EAAID,GAAK,YAAYQ,CAAM,EACpC,KAAKJ,EAAQ,EAAI,CAAE,GAAGJ,GAAK,UAAUoB,CAAO,EAAG,QAAAP,CAAQ,EACvD,KAAKT,EAAQ,EAAE,aAAegB,EAAQ,aAClC,CAAE,GAAGA,EAAQ,YAAa,EAC1B,OACJ,KAAKd,EAAQ,EAAIM,CACnB,CAEA,CAACf,EAAc,GAAK,CAClB,IAAIwB,EAAa,KAAK3B,EAAQ,EAAE,KAAK2B,GAAc,CAACA,EAAW1B,EAAU,CAAC,EAE1E,OAAI0B,KAIA,CAAC,KAAKhB,EAAY,GAAK,KAAKX,EAAQ,EAAE,OAAS,KAAKW,EAAY,KAClEgB,EAAa,KAAKf,EAAQ,EAAE,KAAKL,EAAI,EAAG,KAAKG,EAAQ,CAAC,EACtD,KAAKR,EAAU,EAAEyB,CAAU,GAGtBA,EACT,CACF,EAEA7B,GAAO,QAAUkB,KC3FjB,IAAAY,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CACJ,iCAAAC,GACA,qBAAAC,EACF,EAAI,IACE,CACJ,SAAAC,GACA,SAAAC,GACA,WAAAC,GACA,WAAAC,GACA,cAAAC,GACA,eAAAC,EACF,EAAI,KACEC,GAAO,KACP,CAAE,KAAAC,GAAM,cAAAC,EAAc,EAAI,IAC1B,CAAE,YAAAC,EAAY,EAAI,IAClBC,GAAW,OAAO,SAAS,EAE3BC,GAAW,OAAO,SAAS,EAC3BC,GAAyB,OAAO,wBAAwB,EACxDC,GAAiB,OAAO,gBAAgB,EACxCC,GAAS,OAAO,QAAQ,EACxBC,GAAU,OAAO,SAAS,EAC1BC,GAAsB,OAAO,qBAAqB,EAClDC,GAAgB,OAAO,eAAe,EAE5C,SAASC,GAA0BC,EAAGC,EAAG,CACvC,OAAIA,IAAM,EAAUD,EACbD,GAAyBE,EAAGD,EAAIC,CAAC,CAC1C,CAEA,SAASC,GAAgBC,EAAQC,EAAM,CACrC,OAAO,IAAIjB,GAAKgB,EAAQC,CAAI,CAC9B,CAEA,IAAMC,GAAN,cAA2BxB,EAAS,CAClC,YAAayB,EAAY,CAAC,EAAG,CAAE,QAAAC,EAAUL,GAAgB,GAAGE,CAAK,EAAI,CAAC,EAAG,CAcvE,GAbA,MAAM,EAEN,KAAKZ,EAAQ,EAAIY,EACjB,KAAKT,EAAM,EAAI,GACf,KAAKD,EAAc,EAAI,EAEvB,KAAKG,EAAmB,EAAI,KAAKL,EAAQ,EAAE,oBAAsB,IACjE,KAAKM,EAAa,EAAI,KAAKN,EAAQ,EAAE,cAAgB,GAEhD,MAAM,QAAQc,CAAS,IAC1BA,EAAY,CAACA,CAAS,GAGpB,OAAOC,GAAY,WACrB,MAAM,IAAI3B,GAAqB,6BAA6B,EAG9D,KAAKS,EAAa,EAAIe,EAAK,cAAgBA,EAAK,aAAa,cAAgB,MAAM,QAAQA,EAAK,aAAa,YAAY,EACrHA,EAAK,aAAa,aAClB,CAAC,EACL,KAAKb,EAAQ,EAAIgB,EAEjB,QAAWC,KAAYF,EACrB,KAAK,YAAYE,CAAQ,EAE3B,KAAK,yBAAyB,CAChC,CAEA,YAAaA,EAAU,CACrB,IAAMC,EAAiBnB,GAAYkB,CAAQ,EAAE,OAE7C,GAAI,KAAK1B,EAAQ,EAAE,KAAM4B,GACvBA,EAAKtB,EAAI,EAAE,SAAWqB,GACtBC,EAAK,SAAW,IAChBA,EAAK,YAAc,EACpB,EACC,OAAO,KAET,IAAMA,EAAO,KAAKnB,EAAQ,EAAEkB,EAAgB,OAAO,OAAO,CAAC,EAAG,KAAKjB,EAAQ,CAAC,CAAC,EAE7E,KAAKR,EAAU,EAAE0B,CAAI,EACrBA,EAAK,GAAG,UAAW,IAAM,CACvBA,EAAKd,EAAO,EAAI,KAAK,IAAI,KAAKC,EAAmB,EAAGa,EAAKd,EAAO,EAAI,KAAKE,EAAa,CAAC,CACzF,CAAC,EAEDY,EAAK,GAAG,kBAAmB,IAAM,CAC/BA,EAAKd,EAAO,EAAI,KAAK,IAAI,EAAGc,EAAKd,EAAO,EAAI,KAAKE,EAAa,CAAC,EAC/D,KAAK,yBAAyB,CAChC,CAAC,EAEDY,EAAK,GAAG,aAAc,IAAIC,IAAS,CACjC,IAAMC,EAAMD,EAAK,CAAC,EACdC,GAAOA,EAAI,OAAS,mBAEtBF,EAAKd,EAAO,EAAI,KAAK,IAAI,EAAGc,EAAKd,EAAO,EAAI,KAAKE,EAAa,CAAC,EAC/D,KAAK,yBAAyB,EAElC,CAAC,EAED,QAAWe,KAAU,KAAK/B,EAAQ,EAChC+B,EAAOjB,EAAO,EAAI,KAAKC,EAAmB,EAG5C,YAAK,yBAAyB,EAEvB,IACT,CAEA,0BAA4B,CAC1B,KAAKJ,EAAsB,EAAI,KAAKX,EAAQ,EAAE,IAAIgC,GAAKA,EAAElB,EAAO,CAAC,EAAE,OAAOG,GAA0B,CAAC,CACvG,CAEA,eAAgBS,EAAU,CACxB,IAAMC,EAAiBnB,GAAYkB,CAAQ,EAAE,OAEvCE,EAAO,KAAK5B,EAAQ,EAAE,KAAM4B,GAChCA,EAAKtB,EAAI,EAAE,SAAWqB,GACtBC,EAAK,SAAW,IAChBA,EAAK,YAAc,EACpB,EAED,OAAIA,GACF,KAAKzB,EAAa,EAAEyB,CAAI,EAGnB,IACT,CAEA,IAAI,WAAa,CACf,OAAO,KAAK5B,EAAQ,EACjB,OAAOiC,GAAcA,EAAW,SAAW,IAAQA,EAAW,YAAc,EAAI,EAChF,IAAKD,GAAMA,EAAE1B,EAAI,EAAE,MAAM,CAC9B,CAEA,CAACF,EAAc,GAAK,CAIlB,GAAI,KAAKJ,EAAQ,EAAE,SAAW,EAC5B,MAAM,IAAIH,GAeZ,GANI,CANe,KAAKG,EAAQ,EAAE,KAAKiC,GACrC,CAACA,EAAWhC,EAAU,GACtBgC,EAAW,SAAW,IACtBA,EAAW,YAAc,EAC1B,GAMsB,KAAKjC,EAAQ,EAAE,IAAI4B,GAAQA,EAAK3B,EAAU,CAAC,EAAE,OAAO,CAACiB,EAAGC,IAAMD,GAAKC,EAAG,EAAI,EAG/F,OAGF,IAAIe,EAAU,EAEVC,EAAiB,KAAKnC,EAAQ,EAAE,UAAU4B,GAAQ,CAACA,EAAK3B,EAAU,CAAC,EAEvE,KAAOiC,IAAY,KAAKlC,EAAQ,EAAE,QAAQ,CACxC,KAAKa,EAAM,GAAK,KAAKA,EAAM,EAAI,GAAK,KAAKb,EAAQ,EAAE,OACnD,IAAM4B,EAAO,KAAK5B,EAAQ,EAAE,KAAKa,EAAM,CAAC,EAgBxC,GAbIe,EAAKd,EAAO,EAAI,KAAKd,EAAQ,EAAEmC,CAAc,EAAErB,EAAO,GAAK,CAACc,EAAK3B,EAAU,IAC7EkC,EAAiB,KAAKtB,EAAM,GAI1B,KAAKA,EAAM,IAAM,IAEnB,KAAKD,EAAc,EAAI,KAAKA,EAAc,EAAI,KAAKD,EAAsB,EAErE,KAAKC,EAAc,GAAK,IAC1B,KAAKA,EAAc,EAAI,KAAKG,EAAmB,IAG/Ca,EAAKd,EAAO,GAAK,KAAKF,EAAc,GAAM,CAACgB,EAAK3B,EAAU,EAC5D,OAAO2B,CAEX,CAEA,YAAKhB,EAAc,EAAI,KAAKZ,EAAQ,EAAEmC,CAAc,EAAErB,EAAO,EAC7D,KAAKD,EAAM,EAAIsB,EACR,KAAKnC,EAAQ,EAAEmC,CAAc,CACtC,CACF,EAEAvC,GAAO,QAAU2B,KC7LjB,IAAAa,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,GAAM,CAAE,WAAAC,GAAY,MAAAC,EAAM,EAAI,IAExBC,GAAN,KAAoB,CAClB,YAAaC,EAAO,CAClB,KAAK,MAAQA,CACf,CAEA,OAAS,CACP,OAAO,KAAK,MAAMH,EAAU,IAAM,GAAK,KAAK,MAAMC,EAAK,IAAM,EACzD,OACA,KAAK,KACX,CACF,EAEMG,GAAN,KAAsB,CACpB,YAAaC,EAAW,CACtB,KAAK,UAAYA,CACnB,CAEA,SAAUC,EAAYC,EAAK,CACzBD,EAAW,GAAG,aAAc,IAAM,CAC5BA,EAAWN,EAAU,IAAM,GAAKM,EAAWL,EAAK,IAAM,GACxD,KAAK,UAAUM,CAAG,CAEtB,CAAC,CACH,CACF,EAEAR,GAAO,QAAU,UAAY,CAC3B,MAAO,CACL,QAAS,OAAO,SAAWG,GAC3B,qBAAsB,OAAO,sBAAwBE,EACvD,CACF,ICrCA,IAAAI,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,qBAAAC,EAAqB,EAAI,IAC3B,CAAE,SAAAC,GAAU,SAAAC,GAAU,OAAAC,GAAQ,SAAAC,GAAU,UAAAC,GAAW,cAAAC,EAAc,EAAI,IACrEC,GAAiB,KACjBC,GAAO,KACPC,GAAS,KACTC,GAAO,IACPC,GAA4B,KAC5B,CAAE,QAAAC,GAAS,qBAAAC,EAAqB,EAAI,KAAuC,EAE3EC,GAAa,OAAO,WAAW,EAC/BC,GAAgB,OAAO,cAAc,EACrCC,GAAqB,OAAO,mBAAmB,EAC/CC,GAAmB,OAAO,iBAAiB,EAC3CC,GAAW,OAAO,SAAS,EAC3BC,GAAW,OAAO,SAAS,EAC3BC,GAAa,OAAO,WAAW,EAC/BC,GAAW,OAAO,SAAS,EAEjC,SAASC,GAAgBC,EAAQC,EAAM,CACrC,OAAOA,GAAQA,EAAK,cAAgB,EAChC,IAAIf,GAAOc,EAAQC,CAAI,EACvB,IAAIhB,GAAKe,EAAQC,CAAI,CAC3B,CAEA,IAAMC,GAAN,cAAoBlB,EAAe,CACjC,YAAa,CAAE,QAAAmB,EAAUJ,GAAgB,gBAAAK,EAAkB,EAAG,QAAAC,EAAS,GAAGC,CAAQ,EAAI,CAAC,EAAG,CAGxF,GAFA,MAAM,EAEF,OAAOH,GAAY,WACrB,MAAM,IAAI1B,GAAqB,6BAA6B,EAG9D,GAAI4B,GAAW,MAAQ,OAAOA,GAAY,YAAc,OAAOA,GAAY,SACzE,MAAM,IAAI5B,GAAqB,yCAAyC,EAG1E,GAAI,CAAC,OAAO,UAAU2B,CAAe,GAAKA,EAAkB,EAC1D,MAAM,IAAI3B,GAAqB,2CAA2C,EAGxE4B,GAAW,OAAOA,GAAY,aAChCA,EAAU,CAAE,GAAGA,CAAQ,GAGzB,KAAKtB,EAAa,EAAIuB,EAAQ,cAAgBA,EAAQ,aAAa,OAAS,MAAM,QAAQA,EAAQ,aAAa,KAAK,EAChHA,EAAQ,aAAa,MACrB,CAAClB,GAA0B,CAAE,gBAAAgB,CAAgB,CAAC,CAAC,EAEnD,KAAKN,EAAQ,EAAI,CAAE,GAAGX,GAAK,UAAUmB,CAAO,EAAG,QAAAD,CAAQ,EACvD,KAAKP,EAAQ,EAAE,aAAeQ,EAAQ,aAClC,CAAE,GAAGA,EAAQ,YAAa,EAC1B,OACJ,KAAKZ,EAAgB,EAAIU,EACzB,KAAKR,EAAQ,EAAIO,EACjB,KAAKzB,EAAQ,EAAI,IAAI,IACrB,KAAKmB,EAAU,EAAI,IAAIP,GAAuEiB,GAAO,CACnG,IAAMC,EAAM,KAAK9B,EAAQ,EAAE,IAAI6B,CAAG,EAC9BC,IAAQ,QAAaA,EAAI,MAAM,IAAM,QACvC,KAAK9B,EAAQ,EAAE,OAAO6B,CAAG,CAE7B,CAAC,EAED,IAAME,EAAQ,KAEd,KAAKd,EAAQ,EAAI,CAACK,EAAQU,IAAY,CACpCD,EAAM,KAAK,QAAST,EAAQ,CAACS,EAAO,GAAGC,CAAO,CAAC,CACjD,EAEA,KAAKnB,EAAU,EAAI,CAACS,EAAQU,IAAY,CACtCD,EAAM,KAAK,UAAWT,EAAQ,CAACS,EAAO,GAAGC,CAAO,CAAC,CACnD,EAEA,KAAKlB,EAAa,EAAI,CAACQ,EAAQU,EAASC,IAAQ,CAC9CF,EAAM,KAAK,aAAcT,EAAQ,CAACS,EAAO,GAAGC,CAAO,EAAGC,CAAG,CAC3D,EAEA,KAAKlB,EAAkB,EAAI,CAACO,EAAQU,EAASC,IAAQ,CACnDF,EAAM,KAAK,kBAAmBT,EAAQ,CAACS,EAAO,GAAGC,CAAO,EAAGC,CAAG,CAChE,CACF,CAEA,IAAKhC,EAAQ,GAAK,CAChB,IAAIiC,EAAM,EACV,QAAWJ,KAAO,KAAK9B,EAAQ,EAAE,OAAO,EAAG,CACzC,IAAMmC,EAASL,EAAI,MAAM,EAErBK,IACFD,GAAOC,EAAOlC,EAAQ,EAE1B,CACA,OAAOiC,CACT,CAEA,CAAC9B,EAAS,EAAGmB,EAAMa,EAAS,CAC1B,IAAIP,EACJ,GAAIN,EAAK,SAAW,OAAOA,EAAK,QAAW,UAAYA,EAAK,kBAAkB,KAC5EM,EAAM,OAAON,EAAK,MAAM,MAExB,OAAM,IAAIxB,GAAqB,gDAAgD,EAGjF,IAAM+B,EAAM,KAAK9B,EAAQ,EAAE,IAAI6B,CAAG,EAE9BQ,EAAaP,EAAMA,EAAI,MAAM,EAAI,KACrC,OAAKO,IACHA,EAAa,KAAKnB,EAAQ,EAAEK,EAAK,OAAQ,KAAKH,EAAQ,CAAC,EACpD,GAAG,QAAS,KAAKH,EAAQ,CAAC,EAC1B,GAAG,UAAW,KAAKJ,EAAU,CAAC,EAC9B,GAAG,aAAc,KAAKC,EAAa,CAAC,EACpC,GAAG,kBAAmB,KAAKC,EAAkB,CAAC,EAEjD,KAAKf,EAAQ,EAAE,IAAI6B,EAAK,IAAIlB,GAAQ0B,CAAU,CAAC,EAC/C,KAAKlB,EAAU,EAAE,SAASkB,EAAYR,CAAG,GAGpCQ,EAAW,SAASd,EAAMa,CAAO,CAC1C,CAEA,MAAOlC,EAAM,GAAK,CAChB,IAAMoC,EAAgB,CAAC,EACvB,QAAWR,KAAO,KAAK9B,EAAQ,EAAE,OAAO,EAAG,CACzC,IAAMmC,EAASL,EAAI,MAAM,EAErBK,GACFG,EAAc,KAAKH,EAAO,MAAM,CAAC,CAErC,CAEA,MAAM,QAAQ,IAAIG,CAAa,CACjC,CAEA,MAAOnC,EAAQ,EAAG8B,EAAK,CACrB,IAAMM,EAAkB,CAAC,EACzB,QAAWT,KAAO,KAAK9B,EAAQ,EAAE,OAAO,EAAG,CACzC,IAAMmC,EAASL,EAAI,MAAM,EAErBK,GACFI,EAAgB,KAAKJ,EAAO,QAAQF,CAAG,CAAC,CAE5C,CAEA,MAAM,QAAQ,IAAIM,CAAe,CACnC,CACF,EAEAzC,GAAO,QAAU0B,KCnJjB,IAAAgB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,IAAMC,GAAS,QAAQ,QAAQ,EACzB,CAAE,SAAAC,EAAS,EAAI,QAAQ,QAAQ,EAC/B,CAAE,oBAAAC,GAAqB,kBAAAC,GAAmB,qBAAAC,EAAqB,EAAI,IACnEC,GAAO,IACP,CAAE,mBAAAC,GAAoB,YAAAC,EAAY,EAAI,IAExCC,GAEEC,GAAW,OAAO,UAAU,EAC5BC,GAAW,OAAO,UAAU,EAC5BC,GAAQ,OAAO,OAAO,EACtBC,GAAS,OAAO,OAAO,EACvBC,GAAe,OAAO,cAAc,EAE1Cd,GAAO,QAAU,cAA2BE,EAAS,CACnD,YAAa,CACX,OAAAa,EACA,MAAAC,EACA,YAAAC,EAAc,GACd,cAAAC,EAAgB,GAAK,IACvB,EAAG,CACD,MAAM,CACJ,YAAa,GACb,KAAMH,EACN,cAAAG,CACF,CAAC,EAED,KAAK,eAAe,YAAc,GAElC,KAAKL,EAAM,EAAIG,EACf,KAAKN,EAAQ,EAAI,KACjB,KAAKE,EAAK,EAAI,KACd,KAAKE,EAAY,EAAIG,EAMrB,KAAKN,EAAQ,EAAI,EACnB,CAEA,QAASQ,EAAK,CACZ,OAAI,KAAK,UAEA,MAGL,CAACA,GAAO,CAAC,KAAK,eAAe,aAC/BA,EAAM,IAAIhB,IAGRgB,GACF,KAAKN,EAAM,EAAE,EAGR,MAAM,QAAQM,CAAG,EAC1B,CAEA,KAAMC,KAAOC,EAAM,CACjB,OAAID,IAAO,OAET,KAAK,eAAe,YAAc,GACzBA,IAAO,UAEhB,KAAK,eAAe,aAAe,IAE9B,MAAM,KAAKA,EAAI,GAAGC,CAAI,CAC/B,CAEA,GAAID,KAAOC,EAAM,CACf,OAAID,IAAO,QAAUA,IAAO,cAC1B,KAAKT,EAAQ,EAAI,IAEZ,MAAM,GAAGS,EAAI,GAAGC,CAAI,CAC7B,CAEA,YAAaD,KAAOC,EAAM,CACxB,OAAO,KAAK,GAAGD,EAAI,GAAGC,CAAI,CAC5B,CAEA,IAAKD,KAAOC,EAAM,CAChB,IAAMC,EAAM,MAAM,IAAIF,EAAI,GAAGC,CAAI,EACjC,OAAID,IAAO,QAAUA,IAAO,cAC1B,KAAKT,EAAQ,EACX,KAAK,cAAc,MAAM,EAAI,GAC7B,KAAK,cAAc,UAAU,EAAI,GAG9BW,CACT,CAEA,eAAgBF,KAAOC,EAAM,CAC3B,OAAO,KAAK,IAAID,EAAI,GAAGC,CAAI,CAC7B,CAEA,KAAME,EAAO,CACX,OAAI,KAAKb,EAAQ,GAAKa,IAAU,MAAQ,KAAK,iBAAmB,GAC9DC,GAAY,KAAKd,EAAQ,EAAGa,CAAK,EAC1B,KAAKZ,EAAQ,EAAI,MAAM,KAAKY,CAAK,EAAI,IAEvC,MAAM,KAAKA,CAAK,CACzB,CAGA,MAAM,MAAQ,CACZ,OAAOE,GAAQ,KAAM,MAAM,CAC7B,CAGA,MAAM,MAAQ,CACZ,OAAOA,GAAQ,KAAM,MAAM,CAC7B,CAGA,MAAM,MAAQ,CACZ,OAAOA,GAAQ,KAAM,MAAM,CAC7B,CAGA,MAAM,aAAe,CACnB,OAAOA,GAAQ,KAAM,aAAa,CACpC,CAGA,MAAM,UAAY,CAEhB,MAAM,IAAIrB,EACZ,CAGA,IAAI,UAAY,CACd,OAAOE,GAAK,YAAY,IAAI,CAC9B,CAGA,IAAI,MAAQ,CACV,OAAK,KAAKM,EAAK,IACb,KAAKA,EAAK,EAAIL,GAAmB,IAAI,EACjC,KAAKG,EAAQ,IAEf,KAAKE,EAAK,EAAE,UAAU,EACtBX,GAAO,KAAKW,EAAK,EAAE,MAAM,IAGtB,KAAKA,EAAK,CACnB,CAEA,MAAM,KAAMc,EAAM,CAChB,IAAIC,EAAQD,GAAQ,OAAO,SAASA,EAAK,KAAK,EAAIA,EAAK,MAAQ,OACzDE,EAASF,GAAQA,EAAK,OACtBG,EAAU,IAAM,CACpB,KAAK,QAAQ,CACf,EACIC,EACJ,GAAIF,EAAQ,CACV,GAAI,OAAOA,GAAW,UAAY,EAAE,YAAaA,GAC/C,MAAM,IAAIvB,GAAqB,+BAA+B,EAEhEC,GAAK,eAAesB,CAAM,EAC1BE,EAAwBxB,GAAK,iBAAiBsB,EAAQC,CAAO,CAC/D,CACA,GAAI,CACF,cAAiBN,KAAS,KAGxB,GAFAjB,GAAK,eAAesB,CAAM,EAC1BD,GAAS,OAAO,WAAWJ,CAAK,EAC5BI,EAAQ,EACV,MAGN,MAAQ,CACNrB,GAAK,eAAesB,CAAM,CAC5B,QAAE,CACI,OAAOE,GAA0B,WACnCA,EAAsB,EACbA,GACTA,EAAsB,OAAO,OAAO,EAAE,CAE1C,CACF,CACF,EAGA,SAASC,GAAUC,EAAM,CAEvB,OAAQA,EAAKpB,EAAK,GAAKoB,EAAKpB,EAAK,EAAE,SAAW,IAASoB,EAAKtB,EAAQ,CACtE,CAGA,SAASuB,GAAYD,EAAM,CACzB,OAAO1B,GAAK,YAAY0B,CAAI,GAAKD,GAASC,CAAI,CAChD,CAEA,eAAeP,GAASS,EAAQC,EAAM,CACpC,GAAIF,GAAWC,CAAM,EACnB,MAAM,IAAI,UAAU,UAAU,EAGhC,OAAAjC,GAAO,CAACiC,EAAOxB,EAAQ,CAAC,EAEjB,IAAI,QAAQ,CAAC0B,EAASC,IAAW,CACtCH,EAAOxB,EAAQ,EAAI,CACjB,KAAAyB,EACA,OAAAD,EACA,QAAAE,EACA,OAAAC,EACA,OAAQ,EACR,KAAM,CAAC,CACT,EAEAH,EACG,GAAG,QAAS,SAAUf,EAAK,CAC1BmB,GAAc,KAAK5B,EAAQ,EAAGS,CAAG,CACnC,CAAC,EACA,GAAG,QAAS,UAAY,CACnB,KAAKT,EAAQ,EAAE,OAAS,MAC1B4B,GAAc,KAAK5B,EAAQ,EAAG,IAAIP,EAAqB,CAE3D,CAAC,EAEH,QAAQ,SAASoC,GAAcL,EAAOxB,EAAQ,CAAC,CACjD,CAAC,CACH,CAEA,SAAS6B,GAAcd,EAAS,CAC9B,GAAIA,EAAQ,OAAS,KACnB,OAGF,GAAM,CAAE,eAAgBe,CAAM,EAAIf,EAAQ,OAE1C,QAAWF,KAASiB,EAAM,OACxBhB,GAAYC,EAASF,CAAK,EAa5B,IAVIiB,EAAM,WACRC,GAAW,KAAK/B,EAAQ,CAAC,EAEzBe,EAAQ,OAAO,GAAG,MAAO,UAAY,CACnCgB,GAAW,KAAK/B,EAAQ,CAAC,CAC3B,CAAC,EAGHe,EAAQ,OAAO,OAAO,EAEfA,EAAQ,OAAO,KAAK,GAAK,MAAM,CAGxC,CAEA,SAASgB,GAAYhB,EAAS,CAC5B,GAAM,CAAE,KAAAU,EAAM,KAAAO,EAAM,QAAAN,EAAS,OAAAF,EAAQ,OAAAS,CAAO,EAAIlB,EAEhD,GAAI,CACF,GAAIU,IAAS,OACXC,EAAQ5B,GAAY,OAAO,OAAOkC,CAAI,CAAC,CAAC,UAC/BP,IAAS,OAClBC,EAAQ,KAAK,MAAM,OAAO,OAAOM,CAAI,CAAC,CAAC,UAC9BP,IAAS,cAAe,CACjC,IAAMS,EAAM,IAAI,WAAWD,CAAM,EAE7BE,EAAM,EACV,QAAWC,KAAOJ,EAChBE,EAAI,IAAIE,EAAKD,CAAG,EAChBA,GAAOC,EAAI,WAGbV,EAAQQ,CAAG,CACb,MAAWT,IAAS,SACb1B,KACHA,GAAO,QAAQ,QAAQ,EAAE,MAE3B2B,EAAQ,IAAI3B,GAAKiC,EAAM,CAAE,KAAMR,EAAOpB,EAAY,CAAE,CAAC,CAAC,GAGxDwB,GAAcb,CAAO,CACvB,OAASN,EAAK,CACZe,EAAO,QAAQf,CAAG,CACpB,CACF,CAEA,SAASK,GAAaC,EAASF,EAAO,CACpCE,EAAQ,QAAUF,EAAM,OACxBE,EAAQ,KAAK,KAAKF,CAAK,CACzB,CAEA,SAASe,GAAeb,EAASN,EAAK,CAChCM,EAAQ,OAAS,OAIjBN,EACFM,EAAQ,OAAON,CAAG,EAElBM,EAAQ,QAAQ,EAGlBA,EAAQ,KAAO,KACfA,EAAQ,OAAS,KACjBA,EAAQ,QAAU,KAClBA,EAAQ,OAAS,KACjBA,EAAQ,OAAS,EACjBA,EAAQ,KAAO,KACjB,IClTA,IAAAsB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,KAAMC,GAAS,QAAQ,QAAQ,EACzB,CACJ,wBAAAC,EACF,EAAI,IACE,CAAE,YAAAC,EAAY,EAAI,IAExB,eAAeC,GAA6B,CAAE,SAAAC,EAAU,KAAAC,EAAM,YAAAC,EAAa,WAAAC,EAAY,cAAAC,EAAe,QAAAC,CAAQ,EAAG,CAC/GT,GAAOK,CAAI,EAEX,IAAIK,EAAS,CAAC,EACVC,EAAQ,EAEZ,cAAiBC,KAASP,EAGxB,GAFAK,EAAO,KAAKE,CAAK,EACjBD,GAASC,EAAM,OACXD,EAAQ,IAAM,KAAM,CACtBD,EAAS,KACT,KACF,CAGF,GAAIH,IAAe,KAAO,CAACD,GAAe,CAACI,EAAQ,CACjD,QAAQ,SAASN,EAAU,IAAIH,GAAwB,wBAAwBM,CAAU,GAAGC,EAAgB,KAAKA,CAAa,GAAK,EAAE,GAAID,EAAYE,CAAO,CAAC,EAC7J,MACF,CAEA,GAAI,CACF,GAAIH,EAAY,WAAW,kBAAkB,EAAG,CAC9C,IAAMO,EAAU,KAAK,MAAMX,GAAY,OAAO,OAAOQ,CAAM,CAAC,CAAC,EAC7D,QAAQ,SAASN,EAAU,IAAIH,GAAwB,wBAAwBM,CAAU,GAAGC,EAAgB,KAAKA,CAAa,GAAK,EAAE,GAAID,EAAYE,EAASI,CAAO,CAAC,EACtK,MACF,CAEA,GAAIP,EAAY,WAAW,OAAO,EAAG,CACnC,IAAMO,EAAUX,GAAY,OAAO,OAAOQ,CAAM,CAAC,EACjD,QAAQ,SAASN,EAAU,IAAIH,GAAwB,wBAAwBM,CAAU,GAAGC,EAAgB,KAAKA,CAAa,GAAK,EAAE,GAAID,EAAYE,EAASI,CAAO,CAAC,EACtK,MACF,CACF,MAAc,CAEd,CAEA,QAAQ,SAAST,EAAU,IAAIH,GAAwB,wBAAwBM,CAAU,GAAGC,EAAgB,KAAKA,CAAa,GAAK,EAAE,GAAID,EAAYE,CAAO,CAAC,CAC/J,CAEAV,GAAO,QAAU,CAAE,4BAAAI,EAA4B,IC7C/C,IAAAW,GAAAC,EAAA,CAAAC,GAAAC,KAAA,IAAM,CAAE,iBAAAC,EAAiB,EAAI,IACvB,CAAE,oBAAAC,EAAoB,EAAI,IAE1BC,GAAY,OAAO,WAAW,EAC9BC,GAAU,OAAO,SAAS,EAEhC,SAASC,GAAOC,EAAM,CAChBA,EAAK,MACPA,EAAK,MAAM,EAEXA,EAAK,QAAQ,IAAIJ,EAAqB,CAE1C,CAEA,SAASK,GAAWD,EAAME,EAAQ,CAIhC,GAHAF,EAAKF,EAAO,EAAI,KAChBE,EAAKH,EAAS,EAAI,KAEd,EAACK,EAIL,IAAIA,EAAO,QAAS,CAClBH,GAAMC,CAAI,EACV,MACF,CAEAA,EAAKF,EAAO,EAAII,EAChBF,EAAKH,EAAS,EAAI,IAAM,CACtBE,GAAMC,CAAI,CACZ,EAEAL,GAAiBK,EAAKF,EAAO,EAAGE,EAAKH,EAAS,CAAC,EACjD,CAEA,SAASM,GAAcH,EAAM,CACtBA,EAAKF,EAAO,IAIb,wBAAyBE,EAAKF,EAAO,EACvCE,EAAKF,EAAO,EAAE,oBAAoB,QAASE,EAAKH,EAAS,CAAC,EAE1DG,EAAKF,EAAO,EAAE,eAAe,QAASE,EAAKH,EAAS,CAAC,EAGvDG,EAAKF,EAAO,EAAI,KAChBE,EAAKH,EAAS,EAAI,KACpB,CAEAH,GAAO,QAAU,CACf,UAAAO,GACA,aAAAE,EACF,ICrDA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAW,KACX,CACJ,qBAAAC,GACA,oBAAAC,EACF,EAAI,IACEC,GAAO,IACP,CAAE,4BAAAC,EAA4B,EAAI,KAClC,CAAE,cAAAC,EAAc,EAAI,QAAQ,aAAa,EACzC,CAAE,UAAAC,GAAW,aAAAC,EAAa,EAAI,KAE9BC,GAAN,cAA6BH,EAAc,CACzC,YAAaI,EAAMC,EAAU,CAC3B,GAAI,CAACD,GAAQ,OAAOA,GAAS,SAC3B,MAAM,IAAIR,GAAqB,cAAc,EAG/C,GAAM,CAAE,OAAAU,EAAQ,OAAAC,EAAQ,OAAAC,EAAQ,KAAAC,EAAM,OAAAC,EAAQ,gBAAAC,EAAiB,aAAAC,EAAc,cAAAC,CAAc,EAAIT,EAE/F,GAAI,CACF,GAAI,OAAOC,GAAa,WACtB,MAAM,IAAIT,GAAqB,kBAAkB,EAGnD,GAAIiB,IAAkB,OAAOA,GAAkB,UAAYA,EAAgB,GACzE,MAAM,IAAIjB,GAAqB,uBAAuB,EAGxD,GAAIU,GAAU,OAAOA,EAAO,IAAO,YAAc,OAAOA,EAAO,kBAAqB,WAClF,MAAM,IAAIV,GAAqB,+CAA+C,EAGhF,GAAIW,IAAW,UACb,MAAM,IAAIX,GAAqB,gBAAgB,EAGjD,GAAIc,GAAU,OAAOA,GAAW,WAC9B,MAAM,IAAId,GAAqB,yBAAyB,EAG1D,MAAM,gBAAgB,CACxB,OAASkB,EAAK,CACZ,MAAIhB,GAAK,SAASW,CAAI,GACpBX,GAAK,QAAQW,EAAK,GAAG,QAASX,GAAK,GAAG,EAAGgB,CAAG,EAExCA,CACR,CAEA,KAAK,gBAAkBH,GAAmB,KAC1C,KAAK,OAASH,GAAU,KACxB,KAAK,SAAWH,EAChB,KAAK,IAAM,KACX,KAAK,MAAQ,KACb,KAAK,KAAOI,EACZ,KAAK,SAAW,CAAC,EACjB,KAAK,QAAU,KACf,KAAK,OAASC,GAAU,KACxB,KAAK,aAAeE,EACpB,KAAK,cAAgBC,EAEjBf,GAAK,SAASW,CAAI,GACpBA,EAAK,GAAG,QAAUK,GAAQ,CACxB,KAAK,QAAQA,CAAG,CAClB,CAAC,EAGHb,GAAU,KAAMK,CAAM,CACxB,CAEA,UAAWS,EAAOC,EAAS,CACzB,GAAI,CAAC,KAAK,SACR,MAAM,IAAInB,GAGZ,KAAK,MAAQkB,EACb,KAAK,QAAUC,CACjB,CAEA,UAAWC,EAAYC,EAAYC,EAAQC,EAAe,CACxD,GAAM,CAAE,SAAAf,EAAU,OAAAG,EAAQ,MAAAO,EAAO,QAAAC,EAAS,gBAAAL,EAAiB,cAAAE,CAAc,EAAI,KAEvEQ,EAAUV,IAAoB,MAAQb,GAAK,gBAAgBoB,CAAU,EAAIpB,GAAK,aAAaoB,CAAU,EAE3G,GAAID,EAAa,IAAK,CAChB,KAAK,QACP,KAAK,OAAO,CAAE,WAAAA,EAAY,QAAAI,CAAQ,CAAC,EAErC,MACF,CAGA,IAAMC,GADgBX,IAAoB,MAAQb,GAAK,aAAaoB,CAAU,EAAIG,GAChD,cAAc,EAC1CZ,EAAO,IAAId,GAAS,CAAE,OAAAwB,EAAQ,MAAAJ,EAAO,YAAAO,EAAa,cAAAT,CAAc,CAAC,EAEvE,KAAK,SAAW,KAChB,KAAK,IAAMJ,EAEPJ,IAAa,OACX,KAAK,cAAgBY,GAAc,IACrC,KAAK,gBAAgBlB,GAA6B,KAChD,CAAE,SAAAM,EAAU,KAAAI,EAAM,YAAAa,EAAa,WAAAL,EAAY,cAAAG,EAAe,QAAAC,CAAQ,CACpE,EAEA,KAAK,gBAAgBhB,EAAU,KAAM,KAAM,CACzC,WAAAY,EACA,QAAAI,EACA,SAAU,KAAK,SACf,OAAAb,EACA,KAAAC,EACA,QAAAO,CACF,CAAC,EAGP,CAEA,OAAQO,EAAO,CACb,GAAM,CAAE,IAAAC,CAAI,EAAI,KAChB,OAAOA,EAAI,KAAKD,CAAK,CACvB,CAEA,WAAYE,EAAU,CACpB,GAAM,CAAE,IAAAD,CAAI,EAAI,KAEhBtB,GAAa,IAAI,EAEjBJ,GAAK,aAAa2B,EAAU,KAAK,QAAQ,EAEzCD,EAAI,KAAK,IAAI,CACf,CAEA,QAASV,EAAK,CACZ,GAAM,CAAE,IAAAU,EAAK,SAAAnB,EAAU,KAAAI,EAAM,OAAAD,CAAO,EAAI,KAExCN,GAAa,IAAI,EAEbG,IAEF,KAAK,SAAW,KAChB,eAAe,IAAM,CACnB,KAAK,gBAAgBA,EAAU,KAAMS,EAAK,CAAE,OAAAN,CAAO,CAAC,CACtD,CAAC,GAGCgB,IACF,KAAK,IAAM,KAEX,eAAe,IAAM,CACnB1B,GAAK,QAAQ0B,EAAKV,CAAG,CACvB,CAAC,GAGCL,IACF,KAAK,KAAO,KACZX,GAAK,QAAQW,EAAMK,CAAG,EAE1B,CACF,EAEA,SAASY,GAAStB,EAAMC,EAAU,CAChC,GAAIA,IAAa,OACf,OAAO,IAAI,QAAQ,CAACsB,EAASC,IAAW,CACtCF,GAAQ,KAAK,KAAMtB,EAAM,CAACU,EAAKe,IACtBf,EAAMc,EAAOd,CAAG,EAAIa,EAAQE,CAAI,CACxC,CACH,CAAC,EAGH,GAAI,CACF,KAAK,SAASzB,EAAM,IAAID,GAAeC,EAAMC,CAAQ,CAAC,CACxD,OAASS,EAAK,CACZ,GAAI,OAAOT,GAAa,WACtB,MAAMS,EAER,IAAMN,EAASJ,GAAQA,EAAK,OAC5B,eAAe,IAAMC,EAASS,EAAK,CAAE,OAAAN,CAAO,CAAC,CAAC,CAChD,CACF,CAEAd,GAAO,QAAUgC,KCnLjB,IAAAI,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,SAAAC,GAAU,YAAAC,EAAY,EAAI,QAAQ,QAAQ,EAC5C,CACJ,qBAAAC,GACA,wBAAAC,GACA,oBAAAC,EACF,EAAI,IACEC,GAAO,IACP,CAAE,4BAAAC,EAA4B,EAAI,KAClC,CAAE,cAAAC,EAAc,EAAI,QAAQ,aAAa,EACzC,CAAE,UAAAC,GAAW,aAAAC,EAAa,EAAI,KAE9BC,GAAN,cAA4BH,EAAc,CACxC,YAAaI,EAAMC,EAASC,EAAU,CACpC,GAAI,CAACF,GAAQ,OAAOA,GAAS,SAC3B,MAAM,IAAIT,GAAqB,cAAc,EAG/C,GAAM,CAAE,OAAAY,EAAQ,OAAAC,EAAQ,OAAAC,EAAQ,KAAAC,EAAM,OAAAC,EAAQ,gBAAAC,EAAiB,aAAAC,CAAa,EAAIT,EAEhF,GAAI,CACF,GAAI,OAAOE,GAAa,WACtB,MAAM,IAAIX,GAAqB,kBAAkB,EAGnD,GAAI,OAAOU,GAAY,WACrB,MAAM,IAAIV,GAAqB,iBAAiB,EAGlD,GAAIY,GAAU,OAAOA,EAAO,IAAO,YAAc,OAAOA,EAAO,kBAAqB,WAClF,MAAM,IAAIZ,GAAqB,+CAA+C,EAGhF,GAAIa,IAAW,UACb,MAAM,IAAIb,GAAqB,gBAAgB,EAGjD,GAAIgB,GAAU,OAAOA,GAAW,WAC9B,MAAM,IAAIhB,GAAqB,yBAAyB,EAG1D,MAAM,eAAe,CACvB,OAASmB,EAAK,CACZ,MAAIhB,GAAK,SAASY,CAAI,GACpBZ,GAAK,QAAQY,EAAK,GAAG,QAASZ,GAAK,GAAG,EAAGgB,CAAG,EAExCA,CACR,CAEA,KAAK,gBAAkBF,GAAmB,KAC1C,KAAK,OAASH,GAAU,KACxB,KAAK,QAAUJ,EACf,KAAK,SAAWC,EAChB,KAAK,IAAM,KACX,KAAK,MAAQ,KACb,KAAK,QAAU,KACf,KAAK,SAAW,KAChB,KAAK,KAAOI,EACZ,KAAK,OAASC,GAAU,KACxB,KAAK,aAAeE,GAAgB,GAEhCf,GAAK,SAASY,CAAI,GACpBA,EAAK,GAAG,QAAUI,GAAQ,CACxB,KAAK,QAAQA,CAAG,CAClB,CAAC,EAGHb,GAAU,KAAMM,CAAM,CACxB,CAEA,UAAWQ,EAAOC,EAAS,CACzB,GAAI,CAAC,KAAK,SACR,MAAM,IAAInB,GAGZ,KAAK,MAAQkB,EACb,KAAK,QAAUC,CACjB,CAEA,UAAWC,EAAYC,EAAYC,EAAQC,EAAe,CACxD,GAAM,CAAE,QAAAf,EAAS,OAAAI,EAAQ,QAAAO,EAAS,SAAAV,EAAU,gBAAAM,CAAgB,EAAI,KAE1DS,EAAUT,IAAoB,MAAQd,GAAK,gBAAgBoB,CAAU,EAAIpB,GAAK,aAAaoB,CAAU,EAE3G,GAAID,EAAa,IAAK,CAChB,KAAK,QACP,KAAK,OAAO,CAAE,WAAAA,EAAY,QAAAI,CAAQ,CAAC,EAErC,MACF,CAEA,KAAK,QAAU,KAEf,IAAIC,EAEJ,GAAI,KAAK,cAAgBL,GAAc,IAAK,CAE1C,IAAMM,GADgBX,IAAoB,MAAQd,GAAK,aAAaoB,CAAU,EAAIG,GAChD,cAAc,EAChDC,EAAM,IAAI5B,GAEV,KAAK,SAAW,KAChB,KAAK,gBAAgBK,GAA6B,KAChD,CAAE,SAAAO,EAAU,KAAMgB,EAAK,YAAAC,EAAa,WAAAN,EAAY,cAAAG,EAAe,QAAAC,CAAQ,CACzE,CACF,KAAO,CAQL,GAPAC,EAAM,KAAK,gBAAgBjB,EAAS,KAAM,CACxC,WAAAY,EACA,QAAAI,EACA,OAAAZ,EACA,QAAAO,CACF,CAAC,EAGC,CAACM,GACD,OAAOA,EAAI,OAAU,YACrB,OAAOA,EAAI,KAAQ,YACnB,OAAOA,EAAI,IAAO,WAElB,MAAM,IAAI1B,GAAwB,mBAAmB,EAIvDH,GAAS6B,EAAK,CAAE,SAAU,EAAM,EAAIR,GAAQ,CAC1C,GAAM,CAAE,SAAAR,EAAU,IAAAgB,EAAK,OAAAb,EAAQ,SAAAe,EAAU,MAAAT,CAAM,EAAI,KAEnD,KAAK,IAAM,MACPD,GAAO,CAACQ,EAAI,WACdxB,GAAK,QAAQwB,EAAKR,CAAG,EAGvB,KAAK,SAAW,KAChB,KAAK,gBAAgBR,EAAU,KAAMQ,GAAO,KAAM,CAAE,OAAAL,EAAQ,SAAAe,CAAS,CAAC,EAElEV,GACFC,EAAM,CAEV,CAAC,CACH,CAEA,OAAAO,EAAI,GAAG,QAASH,CAAM,EAEtB,KAAK,IAAMG,GAEOA,EAAI,oBAAsB,OACxCA,EAAI,kBACJA,EAAI,gBAAkBA,EAAI,eAAe,aAExB,EACvB,CAEA,OAAQG,EAAO,CACb,GAAM,CAAE,IAAAH,CAAI,EAAI,KAEhB,OAAOA,EAAI,MAAMG,CAAK,CACxB,CAEA,WAAYD,EAAU,CACpB,GAAM,CAAE,IAAAF,CAAI,EAAI,KAEhBpB,GAAa,IAAI,EAEjB,KAAK,SAAWJ,GAAK,aAAa0B,CAAQ,EAE1CF,EAAI,IAAI,CACV,CAEA,QAASR,EAAK,CACZ,GAAM,CAAE,IAAAQ,EAAK,SAAAhB,EAAU,OAAAG,EAAQ,KAAAC,CAAK,EAAI,KAExCR,GAAa,IAAI,EAEjB,KAAK,QAAU,KAEXoB,GACF,KAAK,IAAM,KACXxB,GAAK,QAAQwB,EAAKR,CAAG,GACZR,IACT,KAAK,SAAW,KAChB,eAAe,IAAM,CACnB,KAAK,gBAAgBA,EAAU,KAAMQ,EAAK,CAAE,OAAAL,CAAO,CAAC,CACtD,CAAC,GAGCC,IACF,KAAK,KAAO,KACZZ,GAAK,QAAQY,EAAMI,CAAG,EAE1B,CACF,EAEA,SAASY,GAAQtB,EAAMC,EAASC,EAAU,CACxC,GAAIA,IAAa,OACf,OAAO,IAAI,QAAQ,CAACqB,EAASC,IAAW,CACtCF,GAAO,KAAK,KAAMtB,EAAMC,EAAS,CAACS,EAAKe,IAC9Bf,EAAMc,EAAOd,CAAG,EAAIa,EAAQE,CAAI,CACxC,CACH,CAAC,EAGH,GAAI,CACF,KAAK,SAASzB,EAAM,IAAID,GAAcC,EAAMC,EAASC,CAAQ,CAAC,CAChE,OAASQ,EAAK,CACZ,GAAI,OAAOR,GAAa,WACtB,MAAMQ,EAER,IAAML,EAASL,GAAQA,EAAK,OAC5B,eAAe,IAAME,EAASQ,EAAK,CAAE,OAAAL,CAAO,CAAC,CAAC,CAChD,CACF,CAEAjB,GAAO,QAAUkC,KCnNjB,IAAAI,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CACJ,SAAAC,GACA,OAAAC,GACA,YAAAC,EACF,EAAI,QAAQ,QAAQ,EACd,CACJ,qBAAAC,GACA,wBAAAC,GACA,oBAAAC,EACF,EAAI,IACEC,GAAO,IACP,CAAE,cAAAC,EAAc,EAAI,QAAQ,aAAa,EACzC,CAAE,UAAAC,GAAW,aAAAC,EAAa,EAAI,KAC9BC,GAAS,QAAQ,QAAQ,EAEzBC,GAAU,OAAO,QAAQ,EAEzBC,GAAN,cAA8BZ,EAAS,CACrC,aAAe,CACb,MAAM,CAAE,YAAa,EAAK,CAAC,EAE3B,KAAKW,EAAO,EAAI,IAClB,CAEA,OAAS,CACP,GAAM,CAAE,CAACA,EAAO,EAAGE,CAAO,EAAI,KAE1BA,IACF,KAAKF,EAAO,EAAI,KAChBE,EAAO,EAEX,CAEA,SAAUC,EAAKC,EAAU,CACvB,KAAK,MAAM,EAEXA,EAASD,CAAG,CACd,CACF,EAEME,GAAN,cAA+BhB,EAAS,CACtC,YAAaa,EAAQ,CACnB,MAAM,CAAE,YAAa,EAAK,CAAC,EAC3B,KAAKF,EAAO,EAAIE,CAClB,CAEA,OAAS,CACP,KAAKF,EAAO,EAAE,CAChB,CAEA,SAAUG,EAAKC,EAAU,CACnB,CAACD,GAAO,CAAC,KAAK,eAAe,aAC/BA,EAAM,IAAIT,IAGZU,EAASD,CAAG,CACd,CACF,EAEMG,GAAN,cAA8BV,EAAc,CAC1C,YAAaW,EAAMC,EAAS,CAC1B,GAAI,CAACD,GAAQ,OAAOA,GAAS,SAC3B,MAAM,IAAIf,GAAqB,cAAc,EAG/C,GAAI,OAAOgB,GAAY,WACrB,MAAM,IAAIhB,GAAqB,iBAAiB,EAGlD,GAAM,CAAE,OAAAiB,EAAQ,OAAAC,EAAQ,OAAAC,EAAQ,OAAAC,EAAQ,gBAAAC,CAAgB,EAAIN,EAE5D,GAAIE,GAAU,OAAOA,EAAO,IAAO,YAAc,OAAOA,EAAO,kBAAqB,WAClF,MAAM,IAAIjB,GAAqB,+CAA+C,EAGhF,GAAIkB,IAAW,UACb,MAAM,IAAIlB,GAAqB,gBAAgB,EAGjD,GAAIoB,GAAU,OAAOA,GAAW,WAC9B,MAAM,IAAIpB,GAAqB,yBAAyB,EAG1D,MAAM,iBAAiB,EAEvB,KAAK,OAASmB,GAAU,KACxB,KAAK,gBAAkBE,GAAmB,KAC1C,KAAK,QAAUL,EACf,KAAK,MAAQ,KACb,KAAK,QAAU,KACf,KAAK,OAASI,GAAU,KAExB,KAAK,IAAM,IAAIX,GAAgB,EAAE,GAAG,QAASN,GAAK,GAAG,EAErD,KAAK,IAAM,IAAIL,GAAO,CACpB,mBAAoBiB,EAAK,WACzB,YAAa,GACb,KAAM,IAAM,CACV,GAAM,CAAE,KAAAO,CAAK,EAAI,KAEbA,GAAQA,EAAK,QACfA,EAAK,OAAO,CAEhB,EACA,MAAO,CAACC,EAAOC,EAAUZ,IAAa,CACpC,GAAM,CAAE,IAAAa,CAAI,EAAI,KAEZA,EAAI,KAAKF,EAAOC,CAAQ,GAAKC,EAAI,eAAe,UAClDb,EAAS,EAETa,EAAIjB,EAAO,EAAII,CAEnB,EACA,QAAS,CAACD,EAAKC,IAAa,CAC1B,GAAM,CAAE,KAAAU,EAAM,IAAAG,EAAK,IAAAC,EAAK,IAAAC,EAAK,MAAAC,CAAM,EAAI,KAEnC,CAACjB,GAAO,CAACgB,EAAI,eAAe,aAC9BhB,EAAM,IAAIT,IAGR0B,GAASjB,GACXiB,EAAM,EAGRzB,GAAK,QAAQmB,EAAMX,CAAG,EACtBR,GAAK,QAAQsB,EAAKd,CAAG,EACrBR,GAAK,QAAQuB,EAAKf,CAAG,EAErBL,GAAa,IAAI,EAEjBM,EAASD,CAAG,CACd,CACF,CAAC,EAAE,GAAG,YAAa,IAAM,CACvB,GAAM,CAAE,IAAAc,CAAI,EAAI,KAGhBA,EAAI,KAAK,IAAI,CACf,CAAC,EAED,KAAK,IAAM,KAEXpB,GAAU,KAAMY,CAAM,CACxB,CAEA,UAAWW,EAAOC,EAAS,CACzB,GAAM,CAAE,IAAAF,EAAK,IAAAD,CAAI,EAAI,KAIrB,GAFAnB,GAAO,CAACmB,EAAK,4BAA4B,EAErCC,EAAI,UACN,MAAM,IAAIzB,GAGZ,KAAK,MAAQ0B,EACb,KAAK,QAAUC,CACjB,CAEA,UAAWC,EAAYC,EAAYrB,EAAQ,CACzC,GAAM,CAAE,OAAAS,EAAQ,QAAAH,EAAS,QAAAa,CAAQ,EAAI,KAErC,GAAIC,EAAa,IAAK,CACpB,GAAI,KAAK,OAAQ,CACf,IAAME,EAAU,KAAK,kBAAoB,MAAQ7B,GAAK,gBAAgB4B,CAAU,EAAI5B,GAAK,aAAa4B,CAAU,EAChH,KAAK,OAAO,CAAE,WAAAD,EAAY,QAAAE,CAAQ,CAAC,CACrC,CACA,MACF,CAEA,KAAK,IAAM,IAAInB,GAAiBH,CAAM,EAEtC,IAAIY,EACJ,GAAI,CACF,KAAK,QAAU,KACf,IAAMU,EAAU,KAAK,kBAAoB,MAAQ7B,GAAK,gBAAgB4B,CAAU,EAAI5B,GAAK,aAAa4B,CAAU,EAChHT,EAAO,KAAK,gBAAgBN,EAAS,KAAM,CACzC,WAAAc,EACA,QAAAE,EACA,OAAAb,EACA,KAAM,KAAK,IACX,QAAAU,CACF,CAAC,CACH,OAASlB,EAAK,CACZ,WAAK,IAAI,GAAG,QAASR,GAAK,GAAG,EACvBQ,CACR,CAEA,GAAI,CAACW,GAAQ,OAAOA,EAAK,IAAO,WAC9B,MAAM,IAAIrB,GAAwB,mBAAmB,EAGvDqB,EACG,GAAG,OAASC,GAAU,CACrB,GAAM,CAAE,IAAAI,EAAK,KAAAL,CAAK,EAAI,KAElB,CAACK,EAAI,KAAKJ,CAAK,GAAKD,EAAK,OAC3BA,EAAK,MAAM,CAEf,CAAC,EACA,GAAG,QAAUX,GAAQ,CACpB,GAAM,CAAE,IAAAgB,CAAI,EAAI,KAEhBxB,GAAK,QAAQwB,EAAKhB,CAAG,CACvB,CAAC,EACA,GAAG,MAAO,IAAM,CACf,GAAM,CAAE,IAAAgB,CAAI,EAAI,KAEhBA,EAAI,KAAK,IAAI,CACf,CAAC,EACA,GAAG,QAAS,IAAM,CACjB,GAAM,CAAE,IAAAA,CAAI,EAAI,KAEXA,EAAI,eAAe,OACtBxB,GAAK,QAAQwB,EAAK,IAAIzB,EAAqB,CAE/C,CAAC,EAEH,KAAK,KAAOoB,CACd,CAEA,OAAQC,EAAO,CACb,GAAM,CAAE,IAAAG,CAAI,EAAI,KAChB,OAAOA,EAAI,KAAKH,CAAK,CACvB,CAEA,WAAYU,EAAU,CACpB,GAAM,CAAE,IAAAP,CAAI,EAAI,KAChBA,EAAI,KAAK,IAAI,CACf,CAEA,QAASf,EAAK,CACZ,GAAM,CAAE,IAAAgB,CAAI,EAAI,KAChB,KAAK,QAAU,KACfxB,GAAK,QAAQwB,EAAKhB,CAAG,CACvB,CACF,EAEA,SAASuB,GAAUnB,EAAMC,EAAS,CAChC,GAAI,CACF,IAAMmB,EAAkB,IAAIrB,GAAgBC,EAAMC,CAAO,EACzD,YAAK,SAAS,CAAE,GAAGD,EAAM,KAAMoB,EAAgB,GAAI,EAAGA,CAAe,EAC9DA,EAAgB,GACzB,OAASxB,EAAK,CACZ,OAAO,IAAIZ,GAAY,EAAE,QAAQY,CAAG,CACtC,CACF,CAEAf,GAAO,QAAUsC,KCxPjB,IAAAE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,qBAAAC,GAAsB,oBAAAC,GAAqB,YAAAC,EAAY,EAAI,IAC7D,CAAE,cAAAC,EAAc,EAAI,QAAQ,aAAa,EACzCC,GAAO,IACP,CAAE,UAAAC,GAAW,aAAAC,EAAa,EAAI,KAC9BC,GAAS,QAAQ,QAAQ,EAEzBC,GAAN,cAA6BL,EAAc,CACzC,YAAaM,EAAMC,EAAU,CAC3B,GAAI,CAACD,GAAQ,OAAOA,GAAS,SAC3B,MAAM,IAAIT,GAAqB,cAAc,EAG/C,GAAI,OAAOU,GAAa,WACtB,MAAM,IAAIV,GAAqB,kBAAkB,EAGnD,GAAM,CAAE,OAAAW,EAAQ,OAAAC,EAAQ,gBAAAC,CAAgB,EAAIJ,EAE5C,GAAIE,GAAU,OAAOA,EAAO,IAAO,YAAc,OAAOA,EAAO,kBAAqB,WAClF,MAAM,IAAIX,GAAqB,+CAA+C,EAGhF,MAAM,gBAAgB,EAEtB,KAAK,gBAAkBa,GAAmB,KAC1C,KAAK,OAASD,GAAU,KACxB,KAAK,SAAWF,EAChB,KAAK,MAAQ,KACb,KAAK,QAAU,KAEfL,GAAU,KAAMM,CAAM,CACxB,CAEA,UAAWG,EAAOC,EAAS,CACzB,GAAI,CAAC,KAAK,SACR,MAAM,IAAId,GAGZ,KAAK,MAAQa,EACb,KAAK,QAAU,IACjB,CAEA,WAAa,CACX,MAAM,IAAIZ,GAAY,cAAe,IAAI,CAC3C,CAEA,UAAWc,EAAYC,EAAYC,EAAQ,CACzC,GAAM,CAAE,SAAAR,EAAU,OAAAE,EAAQ,QAAAG,CAAQ,EAAI,KAEtCR,GAAO,YAAYS,EAAY,GAAG,EAElCV,GAAa,IAAI,EAEjB,KAAK,SAAW,KAChB,IAAMa,EAAU,KAAK,kBAAoB,MAAQf,GAAK,gBAAgBa,CAAU,EAAIb,GAAK,aAAaa,CAAU,EAChH,KAAK,gBAAgBP,EAAU,KAAM,KAAM,CACzC,QAAAS,EACA,OAAAD,EACA,OAAAN,EACA,QAAAG,CACF,CAAC,CACH,CAEA,QAASK,EAAK,CACZ,GAAM,CAAE,SAAAV,EAAU,OAAAE,CAAO,EAAI,KAE7BN,GAAa,IAAI,EAEbI,IACF,KAAK,SAAW,KAChB,eAAe,IAAM,CACnB,KAAK,gBAAgBA,EAAU,KAAMU,EAAK,CAAE,OAAAR,CAAO,CAAC,CACtD,CAAC,EAEL,CACF,EAEA,SAASS,GAASZ,EAAMC,EAAU,CAChC,GAAIA,IAAa,OACf,OAAO,IAAI,QAAQ,CAACY,EAASC,IAAW,CACtCF,GAAQ,KAAK,KAAMZ,EAAM,CAACW,EAAKI,IACtBJ,EAAMG,EAAOH,CAAG,EAAIE,EAAQE,CAAI,CACxC,CACH,CAAC,EAGH,GAAI,CACF,IAAMC,EAAiB,IAAIjB,GAAeC,EAAMC,CAAQ,EACxD,KAAK,SAAS,CACZ,GAAGD,EACH,OAAQA,EAAK,QAAU,MACvB,QAASA,EAAK,UAAY,WAC5B,EAAGgB,CAAc,CACnB,OAASL,EAAK,CACZ,GAAI,OAAOV,GAAa,WACtB,MAAMU,EAER,IAAMR,EAASH,GAAQA,EAAK,OAC5B,eAAe,IAAMC,EAASU,EAAK,CAAE,OAAAR,CAAO,CAAC,CAAC,CAChD,CACF,CAEAb,GAAO,QAAUsB,KCxGjB,IAAAK,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,qBAAAC,GAAsB,oBAAAC,GAAqB,YAAAC,EAAY,EAAI,IAC7D,CAAE,cAAAC,EAAc,EAAI,QAAQ,aAAa,EACzCC,GAAO,IACP,CAAE,UAAAC,GAAW,aAAAC,EAAa,EAAI,KAE9BC,GAAN,cAA6BJ,EAAc,CACzC,YAAaK,EAAMC,EAAU,CAC3B,GAAI,CAACD,GAAQ,OAAOA,GAAS,SAC3B,MAAM,IAAIR,GAAqB,cAAc,EAG/C,GAAI,OAAOS,GAAa,WACtB,MAAM,IAAIT,GAAqB,kBAAkB,EAGnD,GAAM,CAAE,OAAAU,EAAQ,OAAAC,EAAQ,gBAAAC,CAAgB,EAAIJ,EAE5C,GAAIE,GAAU,OAAOA,EAAO,IAAO,YAAc,OAAOA,EAAO,kBAAqB,WAClF,MAAM,IAAIV,GAAqB,+CAA+C,EAGhF,MAAM,gBAAgB,EAEtB,KAAK,OAASW,GAAU,KACxB,KAAK,gBAAkBC,GAAmB,KAC1C,KAAK,SAAWH,EAChB,KAAK,MAAQ,KAEbJ,GAAU,KAAMK,CAAM,CACxB,CAEA,UAAWG,EAAOC,EAAS,CACzB,GAAI,CAAC,KAAK,SACR,MAAM,IAAIb,GAGZ,KAAK,MAAQY,EACb,KAAK,QAAUC,CACjB,CAEA,WAAa,CACX,MAAM,IAAIZ,GAAY,cAAe,IAAI,CAC3C,CAEA,UAAWa,EAAYC,EAAYC,EAAQ,CACzC,GAAM,CAAE,SAAAR,EAAU,OAAAE,EAAQ,QAAAG,CAAQ,EAAI,KAEtCR,GAAa,IAAI,EAEjB,KAAK,SAAW,KAChB,IAAMY,EAAU,KAAK,kBAAoB,MAAQd,GAAK,gBAAgBY,CAAU,EAAIZ,GAAK,aAAaY,CAAU,EAChH,KAAK,gBAAgBP,EAAU,KAAM,KAAM,CACzC,WAAAM,EACA,QAAAG,EACA,OAAAD,EACA,OAAAN,EACA,QAAAG,CACF,CAAC,CACH,CAEA,QAASK,EAAK,CACZ,GAAM,CAAE,SAAAV,EAAU,OAAAE,CAAO,EAAI,KAE7BL,GAAa,IAAI,EAEbG,IACF,KAAK,SAAW,KAChB,eAAe,IAAM,CACnB,KAAK,gBAAgBA,EAAU,KAAMU,EAAK,CAAE,OAAAR,CAAO,CAAC,CACtD,CAAC,EAEL,CACF,EAEA,SAASS,GAASZ,EAAMC,EAAU,CAChC,GAAIA,IAAa,OACf,OAAO,IAAI,QAAQ,CAACY,EAASC,IAAW,CACtCF,GAAQ,KAAK,KAAMZ,EAAM,CAACW,EAAKI,IACtBJ,EAAMG,EAAOH,CAAG,EAAIE,EAAQE,CAAI,CACxC,CACH,CAAC,EAGH,GAAI,CACF,IAAMC,EAAiB,IAAIjB,GAAeC,EAAMC,CAAQ,EACxD,KAAK,SAAS,CAAE,GAAGD,EAAM,OAAQ,SAAU,EAAGgB,CAAc,CAC9D,OAASL,EAAK,CACZ,GAAI,OAAOV,GAAa,WACtB,MAAMU,EAER,IAAMR,EAASH,GAAQA,EAAK,OAC5B,eAAe,IAAMC,EAASU,EAAK,CAAE,OAAAR,CAAO,CAAC,CAAC,CAChD,CACF,CAEAZ,GAAO,QAAUqB,KCjGjB,IAAAK,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEAA,GAAO,QAAQ,QAAU,KACzBA,GAAO,QAAQ,OAAS,KACxBA,GAAO,QAAQ,SAAW,KAC1BA,GAAO,QAAQ,QAAU,KACzBA,GAAO,QAAQ,QAAU,OCNzB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,YAAAC,EAAY,EAAI,IAElBC,GAAN,MAAMC,UAA4BF,EAAY,CAC5C,YAAaG,EAAS,CACpB,MAAMA,CAAO,EACb,MAAM,kBAAkB,KAAMD,CAAmB,EACjD,KAAK,KAAO,sBACZ,KAAK,QAAUC,GAAW,4DAC1B,KAAK,KAAO,+BACd,CACF,EAEAJ,GAAO,QAAU,CACf,oBAAAE,EACF,IChBA,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEAA,GAAO,QAAU,CACf,OAAQ,OAAO,OAAO,EACtB,SAAU,OAAO,SAAS,EAC1B,SAAU,OAAO,SAAS,EAC1B,YAAa,OAAO,YAAY,EAChC,aAAc,OAAO,cAAc,EACnC,gBAAiB,OAAO,iBAAiB,EACzC,iBAAkB,OAAO,kBAAkB,EAC3C,eAAgB,OAAO,gBAAgB,EACvC,WAAY,OAAO,YAAY,EAC/B,cAAe,OAAO,gBAAgB,EACtC,cAAe,OAAO,gBAAgB,EACtC,cAAe,OAAO,eAAe,EACrC,OAAQ,OAAO,OAAO,EACtB,eAAgB,OAAO,sBAAsB,EAC7C,QAAS,OAAO,QAAQ,EACxB,cAAe,OAAO,gBAAgB,EACtC,YAAa,OAAO,aAAa,EACjC,eAAgB,OAAO,iBAAiB,EACxC,WAAY,OAAO,WAAW,CAChC,ICtBA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,oBAAAC,EAAoB,EAAI,KAC1B,CACJ,YAAAC,GACA,WAAAC,GACA,kBAAAC,GACA,QAAAC,GACA,eAAAC,EACF,EAAI,KACE,CAAE,SAAAC,GAAU,IAAAC,EAAI,EAAI,IACpB,CAAE,aAAAC,EAAa,EAAI,QAAQ,MAAM,EACjC,CACJ,MAAO,CACL,UAAAC,EACF,CACF,EAAI,QAAQ,MAAM,EAElB,SAASC,GAAYC,EAAOC,EAAO,CACjC,OAAI,OAAOD,GAAU,SACZA,IAAUC,EAEfD,aAAiB,OACZA,EAAM,KAAKC,CAAK,EAErB,OAAOD,GAAU,WACZA,EAAMC,CAAK,IAAM,GAEnB,EACT,CAEA,SAASC,GAAkBC,EAAS,CAClC,OAAO,OAAO,YACZ,OAAO,QAAQA,CAAO,EAAE,IAAI,CAAC,CAACC,EAAYC,CAAW,IAC5C,CAACD,EAAW,kBAAkB,EAAGC,CAAW,CACpD,CACH,CACF,CAMA,SAASC,GAAiBH,EAASI,EAAK,CACtC,GAAI,MAAM,QAAQJ,CAAO,EAAG,CAC1B,QAASK,EAAI,EAAGA,EAAIL,EAAQ,OAAQK,GAAK,EACvC,GAAIL,EAAQK,CAAC,EAAE,kBAAkB,IAAMD,EAAI,kBAAkB,EAC3D,OAAOJ,EAAQK,EAAI,CAAC,EAIxB,MACF,KAAO,QAAI,OAAOL,EAAQ,KAAQ,WACzBA,EAAQ,IAAII,CAAG,EAEfL,GAAiBC,CAAO,EAAEI,EAAI,kBAAkB,CAAC,CAE5D,CAGA,SAASE,GAAuBN,EAAS,CACvC,IAAMO,EAAQP,EAAQ,MAAM,EACtBQ,EAAU,CAAC,EACjB,QAASC,EAAQ,EAAGA,EAAQF,EAAM,OAAQE,GAAS,EACjDD,EAAQ,KAAK,CAACD,EAAME,CAAK,EAAGF,EAAME,EAAQ,CAAC,CAAC,CAAC,EAE/C,OAAO,OAAO,YAAYD,CAAO,CACnC,CAEA,SAASE,GAAcC,EAAcX,EAAS,CAC5C,GAAI,OAAOW,EAAa,SAAY,WAClC,OAAI,MAAM,QAAQX,CAAO,IACvBA,EAAUM,GAAsBN,CAAO,GAElCW,EAAa,QAAQX,EAAUD,GAAiBC,CAAO,EAAI,CAAC,CAAC,EAEtE,GAAI,OAAOW,EAAa,QAAY,IAClC,MAAO,GAET,GAAI,OAAOX,GAAY,UAAY,OAAOW,EAAa,SAAY,SACjE,MAAO,GAGT,OAAW,CAACC,EAAiBC,CAAgB,IAAK,OAAO,QAAQF,EAAa,OAAO,EAAG,CACtF,IAAMT,EAAcC,GAAgBH,EAASY,CAAe,EAE5D,GAAI,CAAChB,GAAWiB,EAAkBX,CAAW,EAC3C,MAAO,EAEX,CACA,MAAO,EACT,CAEA,SAASY,GAASC,EAAM,CACtB,GAAI,OAAOA,GAAS,SAClB,OAAOA,EAGT,IAAMC,EAAeD,EAAK,MAAM,GAAG,EAEnC,GAAIC,EAAa,SAAW,EAC1B,OAAOD,EAGT,IAAME,EAAK,IAAI,gBAAgBD,EAAa,IAAI,CAAC,EACjD,OAAAC,EAAG,KAAK,EACD,CAAC,GAAGD,EAAcC,EAAG,SAAS,CAAC,EAAE,KAAK,GAAG,CAClD,CAEA,SAASC,GAAUP,EAAc,CAAE,KAAAI,EAAM,OAAAI,EAAQ,KAAAC,EAAM,QAAApB,CAAQ,EAAG,CAChE,IAAMqB,EAAYzB,GAAWe,EAAa,KAAMI,CAAI,EAC9CO,EAAc1B,GAAWe,EAAa,OAAQQ,CAAM,EACpDI,EAAY,OAAOZ,EAAa,KAAS,IAAcf,GAAWe,EAAa,KAAMS,CAAI,EAAI,GAC7FI,EAAed,GAAaC,EAAcX,CAAO,EACvD,OAAOqB,GAAaC,GAAeC,GAAaC,CAClD,CAEA,SAASC,GAAiBC,EAAM,CAC9B,OAAI,OAAO,SAASA,CAAI,EACfA,EACE,OAAOA,GAAS,SAClB,KAAK,UAAUA,CAAI,EAEnBA,EAAK,SAAS,CAEzB,CAEA,SAASC,GAAiBC,EAAgBxB,EAAK,CAC7C,IAAMyB,EAAWzB,EAAI,MAAQZ,GAASY,EAAI,KAAMA,EAAI,KAAK,EAAIA,EAAI,KAC3D0B,EAAe,OAAOD,GAAa,SAAWf,GAAQe,CAAQ,EAAIA,EAGpEE,EAAwBH,EAAe,OAAO,CAAC,CAAE,SAAAI,CAAS,IAAM,CAACA,CAAQ,EAAE,OAAO,CAAC,CAAE,KAAAjB,CAAK,IAAMnB,GAAWkB,GAAQC,CAAI,EAAGe,CAAY,CAAC,EAC3I,GAAIC,EAAsB,SAAW,EACnC,MAAM,IAAI7C,GAAoB,uCAAuC4C,CAAY,GAAG,EAKtF,GADAC,EAAwBA,EAAsB,OAAO,CAAC,CAAE,OAAAZ,CAAO,IAAMvB,GAAWuB,EAAQf,EAAI,MAAM,CAAC,EAC/F2B,EAAsB,SAAW,EACnC,MAAM,IAAI7C,GAAoB,yCAAyCkB,EAAI,MAAM,GAAG,EAKtF,GADA2B,EAAwBA,EAAsB,OAAO,CAAC,CAAE,KAAAX,CAAK,IAAM,OAAOA,EAAS,IAAcxB,GAAWwB,EAAMhB,EAAI,IAAI,EAAI,EAAI,EAC9H2B,EAAsB,SAAW,EACnC,MAAM,IAAI7C,GAAoB,uCAAuCkB,EAAI,IAAI,GAAG,EAKlF,GADA2B,EAAwBA,EAAsB,OAAQpB,GAAiBD,GAAaC,EAAcP,EAAI,OAAO,CAAC,EAC1G2B,EAAsB,SAAW,EACnC,MAAM,IAAI7C,GAAoB,0CAA0C,OAAOkB,EAAI,SAAY,SAAW,KAAK,UAAUA,EAAI,OAAO,EAAIA,EAAI,OAAO,GAAG,EAGxJ,OAAO2B,EAAsB,CAAC,CAChC,CAEA,SAASE,GAAiBL,EAAgBxB,EAAKsB,EAAM,CACnD,IAAMQ,EAAW,CAAE,aAAc,EAAG,MAAO,EAAG,QAAS,GAAO,SAAU,EAAM,EACxEC,EAAY,OAAOT,GAAS,WAAa,CAAE,SAAUA,CAAK,EAAI,CAAE,GAAGA,CAAK,EACxEU,EAAkB,CAAE,GAAGF,EAAU,GAAG9B,EAAK,QAAS,GAAM,KAAM,CAAE,MAAO,KAAM,GAAG+B,CAAU,CAAE,EAClG,OAAAP,EAAe,KAAKQ,CAAe,EAC5BA,CACT,CAEA,SAASC,GAAoBT,EAAgBxB,EAAK,CAChD,IAAMK,EAAQmB,EAAe,UAAUU,GAChCA,EAAS,SAGPpB,GAASoB,EAAUlC,CAAG,EAFpB,EAGV,EACGK,IAAU,IACZmB,EAAe,OAAOnB,EAAO,CAAC,CAElC,CAEA,SAAS8B,GAAUC,EAAM,CACvB,GAAM,CAAE,KAAAzB,EAAM,OAAAI,EAAQ,KAAAC,EAAM,QAAApB,EAAS,MAAAyC,CAAM,EAAID,EAC/C,MAAO,CACL,KAAAzB,EACA,OAAAI,EACA,KAAAC,EACA,QAAApB,EACA,MAAAyC,CACF,CACF,CAEA,SAASC,GAAmBhB,EAAM,CAChC,OAAO,OAAO,QAAQA,CAAI,EAAE,OAAO,CAACiB,EAAe,CAACvC,EAAKN,CAAK,IAAM,CAClE,GAAG6C,EACH,OAAO,KAAK,GAAGvC,CAAG,EAAE,EACpB,MAAM,QAAQN,CAAK,EAAIA,EAAM,IAAI8C,GAAK,OAAO,KAAK,GAAGA,CAAC,EAAE,CAAC,EAAI,OAAO,KAAK,GAAG9C,CAAK,EAAE,CACrF,EAAG,CAAC,CAAC,CACP,CAMA,SAAS+C,GAAeC,EAAY,CAClC,OAAOpD,GAAaoD,CAAU,GAAK,SACrC,CAEA,eAAeC,GAAa3B,EAAM,CAChC,IAAM4B,EAAU,CAAC,EACjB,cAAiBtB,KAAQN,EACvB4B,EAAQ,KAAKtB,CAAI,EAEnB,OAAO,OAAO,OAAOsB,CAAO,EAAE,SAAS,MAAM,CAC/C,CAKA,SAASrC,GAAc6B,EAAMS,EAAS,CAEpC,IAAM7C,EAAMmC,GAASC,CAAI,EACnB7B,EAAegB,GAAgB,KAAKxC,EAAW,EAAGiB,CAAG,EAE3DO,EAAa,eAGTA,EAAa,KAAK,WACpBA,EAAa,KAAO,CAAE,GAAGA,EAAa,KAAM,GAAGA,EAAa,KAAK,SAAS6B,CAAI,CAAE,GAIlF,GAAM,CAAE,KAAM,CAAE,WAAAM,EAAY,KAAApB,EAAM,QAAA1B,EAAS,SAAAkD,EAAU,MAAAC,CAAM,EAAG,MAAAC,EAAO,QAAAC,CAAQ,EAAI1C,EAC3E,CAAE,aAAA2C,EAAc,MAAAC,CAAM,EAAI5C,EAOhC,GAJAA,EAAa,SAAW,CAAC0C,GAAWC,GAAgBC,EACpD5C,EAAa,QAAU2C,EAAeC,EAGlCJ,IAAU,KACZ,OAAAd,GAAmB,KAAKlD,EAAW,EAAGiB,CAAG,EACzC6C,EAAQ,QAAQE,CAAK,EACd,GAIL,OAAOC,GAAU,UAAYA,EAAQ,EACvC,WAAW,IAAM,CACfI,EAAY,KAAKrE,EAAW,CAAC,CAC/B,EAAGiE,CAAK,EAERI,EAAY,KAAKrE,EAAW,CAAC,EAG/B,SAASqE,EAAa5B,EAAgB6B,EAAQ/B,EAAM,CAElD,IAAMgC,EAAc,MAAM,QAAQlB,EAAK,OAAO,EAC1ClC,GAAsBkC,EAAK,OAAO,EAClCA,EAAK,QACHpB,EAAO,OAAOqC,GAAU,WAC1BA,EAAM,CAAE,GAAGjB,EAAM,QAASkB,CAAY,CAAC,EACvCD,EAGJ,GAAI9D,GAAUyB,CAAI,EAAG,CAMnBA,EAAK,KAAMuC,GAAYH,EAAY5B,EAAgB+B,CAAO,CAAC,EAC3D,MACF,CAEA,IAAMC,EAAenC,GAAgBL,CAAI,EACnCyC,EAAkBnB,GAAkB1C,CAAO,EAC3C8D,EAAmBpB,GAAkBQ,CAAQ,EAEnDD,EAAQ,MAAQxD,GAChBwD,EAAQ,UAAUH,EAAYe,EAAiBE,EAAQlB,GAAcC,CAAU,CAAC,EAChFG,EAAQ,OAAO,OAAO,KAAKW,CAAY,CAAC,EACxCX,EAAQ,WAAWa,CAAgB,EACnCzB,GAAmBT,EAAgBxB,CAAG,CACxC,CAEA,SAAS2D,GAAU,CAAC,CAEpB,MAAO,EACT,CAEA,SAASC,IAAqB,CAC5B,IAAMC,EAAQ,KAAK7E,EAAU,EACvB8E,EAAS,KAAK5E,EAAO,EACrB6E,EAAmB,KAAK9E,EAAiB,EAE/C,OAAO,SAAmBmD,EAAMS,EAAS,CACvC,GAAIgB,EAAM,aACR,GAAI,CACFtD,GAAa,KAAK,KAAM6B,EAAMS,CAAO,CACvC,OAASE,EAAO,CACd,GAAIA,aAAiBjE,GAAqB,CACxC,IAAMkF,EAAaH,EAAM1E,EAAc,EAAE,EACzC,GAAI6E,IAAe,GACjB,MAAM,IAAIlF,GAAoB,GAAGiE,EAAM,OAAO,kCAAkCe,CAAM,yCAAyC,EAEjI,GAAIG,GAAgBD,EAAYF,CAAM,EACpCC,EAAiB,KAAK,KAAM3B,EAAMS,CAAO,MAEzC,OAAM,IAAI/D,GAAoB,GAAGiE,EAAM,OAAO,kCAAkCe,CAAM,+DAA+D,CAEzJ,KACE,OAAMf,CAEV,MAEAgB,EAAiB,KAAK,KAAM3B,EAAMS,CAAO,CAE7C,CACF,CAEA,SAASoB,GAAiBD,EAAYF,EAAQ,CAC5C,IAAMI,EAAM,IAAI,IAAIJ,CAAM,EAC1B,OAAIE,IAAe,GACV,GACE,SAAM,QAAQA,CAAU,GAAKA,EAAW,KAAMG,GAAY3E,GAAW2E,EAASD,EAAI,IAAI,CAAC,EAIpG,CAEA,SAASE,GAAkBhC,EAAM,CAC/B,GAAIA,EAAM,CACR,GAAM,CAAE,MAAAyB,EAAO,GAAGQ,CAAY,EAAIjC,EAClC,OAAOiC,CACT,CACF,CAEAxF,GAAO,QAAU,CACf,gBAAAwC,GACA,gBAAAE,GACA,gBAAAM,GACA,mBAAAI,GACA,SAAAE,GACA,kBAAAG,GACA,WAAA9C,GACA,YAAAmD,GACA,cAAAF,GACA,aAAAlC,GACA,kBAAAqD,GACA,gBAAAK,GACA,iBAAAG,GACA,gBAAArE,EACF,IC9VA,IAAAuE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,gBAAAC,GAAiB,SAAAC,GAAU,gBAAAC,EAAgB,EAAI,KACjD,CACJ,YAAAC,GACA,aAAAC,GACA,gBAAAC,GACA,iBAAAC,GACA,eAAAC,GACA,cAAAC,EACF,EAAI,KACE,CAAE,qBAAAC,EAAqB,EAAI,IAC3B,CAAE,SAAAC,EAAS,EAAI,IAKfC,GAAN,KAAgB,CACd,YAAaC,EAAc,CACzB,KAAKJ,EAAa,EAAII,CACxB,CAKA,MAAOC,EAAU,CACf,GAAI,OAAOA,GAAa,UAAY,CAAC,OAAO,UAAUA,CAAQ,GAAKA,GAAY,EAC7E,MAAM,IAAIJ,GAAqB,sCAAsC,EAGvE,YAAKD,EAAa,EAAE,MAAQK,EACrB,IACT,CAKA,SAAW,CACT,YAAKL,EAAa,EAAE,QAAU,GACvB,IACT,CAKA,MAAOM,EAAa,CAClB,GAAI,OAAOA,GAAgB,UAAY,CAAC,OAAO,UAAUA,CAAW,GAAKA,GAAe,EACtF,MAAM,IAAIL,GAAqB,yCAAyC,EAG1E,YAAKD,EAAa,EAAE,MAAQM,EACrB,IACT,CACF,EAKMC,GAAN,KAAsB,CACpB,YAAaC,EAAMC,EAAgB,CACjC,GAAI,OAAOD,GAAS,SAClB,MAAM,IAAIP,GAAqB,wBAAwB,EAEzD,GAAI,OAAOO,EAAK,KAAS,IACvB,MAAM,IAAIP,GAAqB,2BAA2B,EAQ5D,GANI,OAAOO,EAAK,OAAW,MACzBA,EAAK,OAAS,OAKZ,OAAOA,EAAK,MAAS,SACvB,GAAIA,EAAK,MACPA,EAAK,KAAON,GAASM,EAAK,KAAMA,EAAK,KAAK,MACrC,CAEL,IAAME,EAAY,IAAI,IAAIF,EAAK,KAAM,SAAS,EAC9CA,EAAK,KAAOE,EAAU,SAAWA,EAAU,MAC7C,CAEE,OAAOF,EAAK,QAAW,WACzBA,EAAK,OAASA,EAAK,OAAO,YAAY,GAGxC,KAAKZ,EAAY,EAAIH,GAASe,CAAI,EAClC,KAAKb,EAAW,EAAIc,EACpB,KAAKZ,EAAe,EAAI,CAAC,EACzB,KAAKC,EAAgB,EAAI,CAAC,EAC1B,KAAKC,EAAc,EAAI,EACzB,CAEA,4BAA6BY,EAAYC,EAAMC,EAAkB,CAAC,EAAG,CACnE,IAAMC,EAAetB,GAAgBoB,CAAI,EACnCG,EAAgB,KAAKhB,EAAc,EAAI,CAAE,iBAAkBe,EAAa,MAAO,EAAI,CAAC,EACpFE,EAAU,CAAE,GAAG,KAAKnB,EAAe,EAAG,GAAGkB,EAAe,GAAGF,EAAgB,OAAQ,EACnFI,EAAW,CAAE,GAAG,KAAKnB,EAAgB,EAAG,GAAGe,EAAgB,QAAS,EAE1E,MAAO,CAAE,WAAAF,EAAY,KAAAC,EAAM,QAAAI,EAAS,SAAAC,CAAS,CAC/C,CAEA,wBAAyBN,EAAYC,EAAMC,EAAiB,CAC1D,GAAI,OAAOF,EAAe,IACxB,MAAM,IAAIV,GAAqB,4BAA4B,EAE7D,GAAI,OAAOW,EAAS,IAClB,MAAM,IAAIX,GAAqB,sBAAsB,EAEvD,GAAI,OAAOY,GAAoB,SAC7B,MAAM,IAAIZ,GAAqB,mCAAmC,CAEtE,CAKA,MAAOiB,EAAW,CAGhB,GAAI,OAAOA,GAAc,WAAY,CAInC,IAAMC,EAA2BX,GAAS,CAExC,IAAMY,EAAeF,EAAUV,CAAI,EAGnC,GAAI,OAAOY,GAAiB,SAC1B,MAAM,IAAInB,GAAqB,8CAA8C,EAG/E,GAAM,CAAE,WAAAU,EAAY,KAAAC,EAAO,GAAI,gBAAAC,EAAkB,CAAC,CAAE,EAAIO,EACxD,YAAK,wBAAwBT,EAAYC,EAAMC,CAAe,EAGvD,CACL,GAAG,KAAK,4BAA4BF,EAAYC,EAAMC,CAAe,CACvE,CACF,EAGMQ,EAAkB3B,GAAgB,KAAKC,EAAW,EAAG,KAAKC,EAAY,EAAGuB,CAAuB,EACtG,OAAO,IAAIhB,GAAUkB,CAAe,CACtC,CAMA,GAAM,CAACV,EAAYC,EAAO,GAAIC,EAAkB,CAAC,CAAC,EAAI,CAAC,GAAG,SAAS,EACnE,KAAK,wBAAwBF,EAAYC,EAAMC,CAAe,EAG9D,IAAMS,EAAe,KAAK,4BAA4BX,EAAYC,EAAMC,CAAe,EACjFQ,EAAkB3B,GAAgB,KAAKC,EAAW,EAAG,KAAKC,EAAY,EAAG0B,CAAY,EAC3F,OAAO,IAAInB,GAAUkB,CAAe,CACtC,CAKA,eAAgBE,EAAO,CACrB,GAAI,OAAOA,EAAU,IACnB,MAAM,IAAItB,GAAqB,uBAAuB,EAGxD,IAAMoB,EAAkB3B,GAAgB,KAAKC,EAAW,EAAG,KAAKC,EAAY,EAAG,CAAE,MAAA2B,CAAM,CAAC,EACxF,OAAO,IAAIpB,GAAUkB,CAAe,CACtC,CAKA,oBAAqBL,EAAS,CAC5B,GAAI,OAAOA,EAAY,IACrB,MAAM,IAAIf,GAAqB,yBAAyB,EAG1D,YAAKJ,EAAe,EAAImB,EACjB,IACT,CAKA,qBAAsBC,EAAU,CAC9B,GAAI,OAAOA,EAAa,IACtB,MAAM,IAAIhB,GAAqB,0BAA0B,EAG3D,YAAKH,EAAgB,EAAImB,EAClB,IACT,CAKA,oBAAsB,CACpB,YAAKlB,EAAc,EAAI,GAChB,IACT,CACF,EAEAR,GAAO,QAAQ,gBAAkBgB,GACjChB,GAAO,QAAQ,UAAYY,KC7M3B,IAAAqB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,UAAAC,EAAU,EAAI,QAAQ,MAAM,EAC9BC,GAAS,KACT,CAAE,kBAAAC,EAAkB,EAAI,KACxB,CACJ,YAAAC,GACA,WAAAC,GACA,OAAAC,GACA,eAAAC,GACA,QAAAC,GACA,kBAAAC,GACA,WAAAC,EACF,EAAI,KACE,CAAE,gBAAAC,EAAgB,EAAI,KACtBC,GAAU,IACV,CAAE,qBAAAC,EAAqB,EAAI,IAK3BC,GAAN,cAAyBZ,EAAO,CAC9B,YAAaa,EAAQC,EAAM,CAGzB,GAFA,MAAMD,EAAQC,CAAI,EAEd,CAACA,GAAQ,CAACA,EAAK,OAAS,OAAOA,EAAK,MAAM,UAAa,WACzD,MAAM,IAAIH,GAAqB,0CAA0C,EAG3E,KAAKR,EAAU,EAAIW,EAAK,MACxB,KAAKR,EAAO,EAAIO,EAChB,KAAKX,EAAW,EAAI,CAAC,EACrB,KAAKM,EAAU,EAAI,EACnB,KAAKD,EAAiB,EAAI,KAAK,SAC/B,KAAKF,EAAc,EAAI,KAAK,MAAM,KAAK,IAAI,EAE3C,KAAK,SAAWJ,GAAkB,KAAK,IAAI,EAC3C,KAAK,MAAQ,KAAKG,EAAM,CAC1B,CAEA,IAAKM,GAAQ,UAAU,GAAK,CAC1B,OAAO,KAAKF,EAAU,CACxB,CAKA,UAAWM,EAAM,CACf,OAAO,IAAIL,GAAgBK,EAAM,KAAKZ,EAAW,CAAC,CACpD,CAEA,MAAOE,EAAM,GAAK,CAChB,MAAML,GAAU,KAAKM,EAAc,CAAC,EAAE,EACtC,KAAKG,EAAU,EAAI,EACnB,KAAKL,EAAU,EAAEO,GAAQ,QAAQ,EAAE,OAAO,KAAKJ,EAAO,CAAC,CACzD,CACF,EAEAR,GAAO,QAAUc,KC1DjB,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,UAAAC,EAAU,EAAI,QAAQ,MAAM,EAC9BC,GAAO,KACP,CAAE,kBAAAC,EAAkB,EAAI,KACxB,CACJ,YAAAC,GACA,WAAAC,GACA,OAAAC,GACA,eAAAC,GACA,QAAAC,GACA,kBAAAC,GACA,WAAAC,EACF,EAAI,KACE,CAAE,gBAAAC,EAAgB,EAAI,KACtBC,GAAU,IACV,CAAE,qBAAAC,EAAqB,EAAI,IAK3BC,GAAN,cAAuBZ,EAAK,CAC1B,YAAaa,EAAQC,EAAM,CAGzB,GAFA,MAAMD,EAAQC,CAAI,EAEd,CAACA,GAAQ,CAACA,EAAK,OAAS,OAAOA,EAAK,MAAM,UAAa,WACzD,MAAM,IAAIH,GAAqB,0CAA0C,EAG3E,KAAKR,EAAU,EAAIW,EAAK,MACxB,KAAKR,EAAO,EAAIO,EAChB,KAAKX,EAAW,EAAI,CAAC,EACrB,KAAKM,EAAU,EAAI,EACnB,KAAKD,EAAiB,EAAI,KAAK,SAC/B,KAAKF,EAAc,EAAI,KAAK,MAAM,KAAK,IAAI,EAE3C,KAAK,SAAWJ,GAAkB,KAAK,IAAI,EAC3C,KAAK,MAAQ,KAAKG,EAAM,CAC1B,CAEA,IAAKM,GAAQ,UAAU,GAAK,CAC1B,OAAO,KAAKF,EAAU,CACxB,CAKA,UAAWM,EAAM,CACf,OAAO,IAAIL,GAAgBK,EAAM,KAAKZ,EAAW,CAAC,CACpD,CAEA,MAAOE,EAAM,GAAK,CAChB,MAAML,GAAU,KAAKM,EAAc,CAAC,EAAE,EACtC,KAAKG,EAAU,EAAI,EACnB,KAAKL,EAAU,EAAEO,GAAQ,QAAQ,EAAE,OAAO,KAAKJ,EAAO,CAAC,CACzD,CACF,EAEAR,GAAO,QAAUc,KC1DjB,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAY,CAChB,QAAS,KACT,GAAI,KACJ,IAAK,MACL,KAAM,MACR,EAEMC,GAAU,CACd,QAAS,OACT,GAAI,MACJ,IAAK,OACL,KAAM,OACR,EAEAF,GAAO,QAAU,KAAiB,CAChC,YAAaG,EAAUC,EAAQ,CAC7B,KAAK,SAAWD,EAChB,KAAK,OAASC,CAChB,CAEA,UAAWC,EAAO,CAChB,IAAMC,EAAMD,IAAU,EAChBE,EAAOD,EAAML,GAAYC,GACzBM,EAAOF,EAAM,KAAK,SAAW,KAAK,OACxC,MAAO,CAAE,GAAGC,EAAM,MAAAF,EAAO,KAAAG,CAAK,CAChC,CACF,IC5BA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,UAAAC,EAAU,EAAI,QAAQ,QAAQ,EAChC,CAAE,QAAAC,EAAQ,EAAI,QAAQ,SAAS,EAKrCF,GAAO,QAAU,KAAmC,CAClD,YAAa,CAAE,cAAAG,CAAc,EAAI,CAAC,EAAG,CACnC,KAAK,UAAY,IAAIF,GAAU,CAC7B,UAAWG,EAAOC,EAAMC,EAAI,CAC1BA,EAAG,KAAMF,CAAK,CAChB,CACF,CAAC,EAED,KAAK,OAAS,IAAIF,GAAQ,CACxB,OAAQ,KAAK,UACb,eAAgB,CACd,OAAQ,CAACC,GAAiB,CAAC,QAAQ,IAAI,EACzC,CACF,CAAC,CACH,CAEA,OAAQI,EAAqB,CAC3B,IAAMC,EAAoBD,EAAoB,IAC5C,CAAC,CAAE,OAAAE,EAAQ,KAAAC,EAAM,KAAM,CAAE,WAAAC,CAAW,EAAG,QAAAC,EAAS,MAAAC,EAAO,aAAAC,EAAc,OAAAC,CAAO,KAAO,CACjF,OAAQN,EACR,OAAQM,EACR,KAAML,EACN,cAAeC,EACf,WAAYC,EAAU,SAAM,SAC5B,YAAaE,EACb,UAAWF,EAAU,IAAWC,EAAQC,CAC1C,EAAE,EAEJ,YAAK,OAAO,MAAMN,CAAiB,EAC5B,KAAK,UAAU,KAAK,EAAE,SAAS,CACxC,CACF,ICvCA,IAAAQ,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,SAAAC,EAAS,EAAI,IACfC,GAAQ,KACR,CACJ,OAAAC,GACA,cAAAC,GACA,cAAAC,GACA,YAAAC,GACA,cAAAC,GACA,YAAAC,GACA,eAAAC,GACA,SAAAC,GACA,SAAAC,EACF,EAAI,KACEC,GAAa,KACbC,GAAW,KACX,CAAE,WAAAC,GAAY,iBAAAC,EAAiB,EAAI,KACnC,CAAE,qBAAAC,GAAsB,YAAAC,EAAY,EAAI,IACxCC,GAAa,KACbC,GAAa,KACbC,GAA+B,KAE/BC,GAAN,KAAkB,CAChB,YAAaC,EAAO,CAClB,KAAK,MAAQA,CACf,CAEA,OAAS,CACP,OAAO,KAAK,KACd,CACF,EAEMC,GAAN,cAAwBL,EAAW,CACjC,YAAaM,EAAM,CAOjB,GANA,MAAMA,CAAI,EAEV,KAAKhB,EAAW,EAAI,GACpB,KAAKD,EAAa,EAAI,GAGjBiB,GAAQA,EAAK,OAAS,OAAOA,EAAK,MAAM,UAAa,WACxD,MAAM,IAAIR,GAAqB,0CAA0C,EAE3E,IAAMS,EAAQD,GAAQA,EAAK,MAAQA,EAAK,MAAQ,IAAItB,GAAMsB,CAAI,EAC9D,KAAKrB,EAAM,EAAIsB,EAEf,KAAKxB,EAAQ,EAAIwB,EAAMxB,EAAQ,EAC/B,KAAKS,EAAQ,EAAIK,GAAiBS,CAAI,CACxC,CAEA,IAAKE,EAAQ,CACX,IAAIC,EAAa,KAAKtB,EAAa,EAAEqB,CAAM,EAE3C,OAAKC,IACHA,EAAa,KAAKhB,EAAQ,EAAEe,CAAM,EAClC,KAAKtB,EAAa,EAAEsB,EAAQC,CAAU,GAEjCA,CACT,CAEA,SAAUH,EAAMI,EAAS,CAEvB,YAAK,IAAIJ,EAAK,MAAM,EACb,KAAKrB,EAAM,EAAE,SAASqB,EAAMI,CAAO,CAC5C,CAEA,MAAM,OAAS,CACb,MAAM,KAAKzB,EAAM,EAAE,MAAM,EACzB,KAAKF,EAAQ,EAAE,MAAM,CACvB,CAEA,YAAc,CACZ,KAAKM,EAAa,EAAI,EACxB,CAEA,UAAY,CACV,KAAKA,EAAa,EAAI,EACxB,CAEA,iBAAkBsB,EAAS,CACzB,GAAI,OAAOA,GAAY,UAAY,OAAOA,GAAY,YAAcA,aAAmB,OACjF,MAAM,QAAQ,KAAKrB,EAAW,CAAC,EACjC,KAAKA,EAAW,EAAE,KAAKqB,CAAO,EAE9B,KAAKrB,EAAW,EAAI,CAACqB,CAAO,UAErB,OAAOA,EAAY,IAC5B,KAAKrB,EAAW,EAAI,OAEpB,OAAM,IAAIQ,GAAqB,6DAA6D,CAEhG,CAEA,mBAAqB,CACnB,KAAKR,EAAW,EAAI,EACtB,CAIA,IAAI,cAAgB,CAClB,OAAO,KAAKD,EAAa,CAC3B,CAEA,CAACH,EAAa,EAAGsB,EAAQC,EAAY,CACnC,KAAK1B,EAAQ,EAAE,IAAIyB,EAAQ,IAAIL,GAAYM,CAAU,CAAC,CACxD,CAEA,CAAChB,EAAQ,EAAGe,EAAQ,CAClB,IAAMI,EAAc,OAAO,OAAO,CAAE,MAAO,IAAK,EAAG,KAAKpB,EAAQ,CAAC,EACjE,OAAO,KAAKA,EAAQ,GAAK,KAAKA,EAAQ,EAAE,cAAgB,EACpD,IAAIE,GAAWc,EAAQI,CAAW,EAClC,IAAIjB,GAASa,EAAQI,CAAW,CACtC,CAEA,CAACzB,EAAa,EAAGqB,EAAQ,CAEvB,IAAMK,EAAM,KAAK9B,EAAQ,EAAE,IAAIyB,CAAM,EACrC,GAAIK,EACF,OAAOA,EAAI,MAAM,EAInB,GAAI,OAAOL,GAAW,SAAU,CAC9B,IAAMC,EAAa,KAAKhB,EAAQ,EAAE,uBAAuB,EACzD,YAAKP,EAAa,EAAEsB,EAAQC,CAAU,EAC/BA,CACT,CAGA,OAAW,CAACK,EAAYC,CAAc,IAAK,MAAM,KAAK,KAAKhC,EAAQ,CAAC,EAAG,CACrE,IAAMiC,EAAwBD,EAAe,MAAM,EACnD,GAAIC,GAAyB,OAAOF,GAAe,UAAYlB,GAAWkB,EAAYN,CAAM,EAAG,CAC7F,IAAMC,EAAa,KAAKhB,EAAQ,EAAEe,CAAM,EACxC,YAAKtB,EAAa,EAAEsB,EAAQC,CAAU,EACtCA,EAAWrB,EAAW,EAAI4B,EAAsB5B,EAAW,EACpDqB,CACT,CACF,CACF,CAEA,CAAClB,EAAc,GAAK,CAClB,OAAO,KAAKD,EAAW,CACzB,CAEA,qBAAuB,CACrB,IAAM2B,EAAmB,KAAKlC,EAAQ,EAEtC,OAAO,MAAM,KAAKkC,EAAiB,QAAQ,CAAC,EACzC,QAAQ,CAAC,CAACT,EAAQU,CAAK,IAAMA,EAAM,MAAM,EAAE9B,EAAW,EAAE,IAAI+B,IAAa,CAAE,GAAGA,EAAU,OAAAX,CAAO,EAAE,CAAC,EAClG,OAAO,CAAC,CAAE,QAAAY,CAAQ,IAAMA,CAAO,CACpC,CAEA,4BAA6B,CAAE,6BAAAC,EAA+B,IAAInB,EAA+B,EAAI,CAAC,EAAG,CACvG,IAAMkB,EAAU,KAAK,oBAAoB,EAEzC,GAAIA,EAAQ,SAAW,EACrB,OAGF,IAAME,EAAa,IAAIrB,GAAW,cAAe,cAAc,EAAE,UAAUmB,EAAQ,MAAM,EAEzF,MAAM,IAAIrB,GAAY;AAAA,EACxBuB,EAAW,KAAK,IAAIA,EAAW,IAAI,IAAIA,EAAW,EAAE;AAAA;AAAA,EAEpDD,EAA6B,OAAOD,CAAO,CAAC;AAAA,EAC5C,KAAK,CAAC,CACN,CACF,EAEAtC,GAAO,QAAUuB,KC1KjB,IAAAkB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,OAAAC,GAAQ,OAAAC,GAAQ,SAAAC,GAAU,cAAAC,EAAc,EAAI,IAC9C,CAAE,IAAAC,EAAI,EAAI,QAAQ,KAAK,EACvBC,GAAQ,KACRC,GAAO,KACPC,GAAiB,KACjB,CAAE,qBAAAC,GAAsB,oBAAAC,EAAoB,EAAI,IAChDC,GAAiB,KAEjBC,GAAS,OAAO,aAAa,EAC7BC,GAAU,OAAO,cAAc,EAC/BC,GAAgB,OAAO,eAAe,EACtCC,GAAc,OAAO,sBAAsB,EAC3CC,GAAY,OAAO,oBAAoB,EACvCC,GAAmB,OAAO,2BAA2B,EAE3D,SAASC,GAAqBC,EAAU,CACtC,OAAOA,IAAa,SAAW,IAAM,EACvC,CAEA,SAASC,GAAmBC,EAAM,CAKhC,GAJI,OAAOA,GAAS,WAClBA,EAAO,CAAE,IAAKA,CAAK,GAGjB,CAACA,GAAQ,CAACA,EAAK,IACjB,MAAM,IAAIZ,GAAqB,6BAA6B,EAG9D,MAAO,CACL,IAAKY,EAAK,IACV,SAAUA,EAAK,UAAY,OAC7B,CACF,CAEA,SAASC,GAAgBC,EAAQF,EAAM,CACrC,OAAO,IAAId,GAAKgB,EAAQF,CAAI,CAC9B,CAEA,IAAMG,GAAN,cAAyBhB,EAAe,CACtC,YAAaa,EAAM,CAYjB,GAXA,MAAMA,CAAI,EACV,KAAKpB,EAAM,EAAImB,GAAkBC,CAAI,EACrC,KAAKT,EAAM,EAAI,IAAIN,GAAMe,CAAI,EAC7B,KAAKjB,EAAa,EAAIiB,EAAK,cAAgBA,EAAK,aAAa,YAAc,MAAM,QAAQA,EAAK,aAAa,UAAU,EACjHA,EAAK,aAAa,WAClB,CAAC,EAED,OAAOA,GAAS,WAClBA,EAAO,CAAE,IAAKA,CAAK,GAGjB,CAACA,GAAQ,CAACA,EAAK,IACjB,MAAM,IAAIZ,GAAqB,6BAA6B,EAG9D,GAAM,CAAE,cAAAgB,EAAgBH,EAAe,EAAID,EAE3C,GAAI,OAAOI,GAAkB,WAC3B,MAAM,IAAIhB,GAAqB,8CAA8C,EAO/E,GAJA,KAAKM,EAAW,EAAIM,EAAK,WACzB,KAAKL,EAAS,EAAIK,EAAK,SACvB,KAAKP,EAAa,EAAIO,EAAK,SAAW,CAAC,EAEnCA,EAAK,MAAQA,EAAK,MACpB,MAAM,IAAIZ,GAAqB,yDAAyD,EAC/EY,EAAK,KAEd,KAAKP,EAAa,EAAE,qBAAqB,EAAI,SAASO,EAAK,IAAI,GACtDA,EAAK,QACd,KAAKP,EAAa,EAAE,qBAAqB,EAAIO,EAAK,OAGpD,IAAMK,EAAc,IAAIrB,GAAIgB,EAAK,GAAG,EAC9B,CAAE,OAAAE,EAAQ,KAAAI,EAAM,KAAAC,CAAK,EAAIF,EAEzBG,EAAUlB,GAAe,CAAE,GAAGU,EAAK,QAAS,CAAC,EACnD,KAAKJ,EAAgB,EAAIN,GAAe,CAAE,GAAGU,EAAK,UAAW,CAAC,EAC9D,KAAKR,EAAO,EAAIY,EAAcC,EAAa,CAAE,QAAAG,CAAQ,CAAC,EACtD,KAAKjB,EAAM,EAAI,IAAIN,GAAM,CACvB,GAAGe,EACH,QAAS,MAAOA,EAAMS,IAAa,CACjC,IAAIC,EAAgBV,EAAK,KACpBA,EAAK,OACRU,GAAiB,IAAIb,GAAoBG,EAAK,QAAQ,CAAC,IAEzD,GAAI,CACF,GAAM,CAAE,OAAAW,EAAQ,WAAAC,CAAW,EAAI,MAAM,KAAKpB,EAAO,EAAE,QAAQ,CACzD,OAAAU,EACA,KAAAI,EACA,KAAMI,EACN,OAAQV,EAAK,OACb,QAAS,CACP,GAAG,KAAKP,EAAa,EACrB,KAAAc,CACF,CACF,CAAC,EAKD,GAJIK,IAAe,MACjBD,EAAO,GAAG,QAAS,IAAM,CAAC,CAAC,EAAE,QAAQ,EACrCF,EAAS,IAAIpB,GAAoB,4CAA4C,CAAC,GAE5EW,EAAK,WAAa,SAAU,CAC9BS,EAAS,KAAME,CAAM,EACrB,MACF,CACA,IAAIE,EACA,KAAKnB,EAAW,EAClBmB,EAAa,KAAKnB,EAAW,EAAE,WAE/BmB,EAAab,EAAK,WAEpB,KAAKJ,EAAgB,EAAE,CAAE,GAAGI,EAAM,WAAAa,EAAY,WAAYF,CAAO,EAAGF,CAAQ,CAC9E,OAASK,EAAK,CACZL,EAASK,CAAG,CACd,CACF,CACF,CAAC,CACH,CAEA,SAAUd,EAAMe,EAAS,CACvB,GAAM,CAAE,KAAAR,CAAK,EAAI,IAAIvB,GAAIgB,EAAK,MAAM,EAC9BgB,EAAUC,GAAajB,EAAK,OAAO,EACzC,OAAAkB,GAAuBF,CAAO,EACvB,KAAKzB,EAAM,EAAE,SAClB,CACE,GAAGS,EACH,QAAS,CACP,GAAGgB,EACH,KAAAT,CACF,CACF,EACAQ,CACF,CACF,CAEA,MAAOlC,EAAM,GAAK,CAChB,MAAM,KAAKU,EAAM,EAAE,MAAM,EACzB,MAAM,KAAKC,EAAO,EAAE,MAAM,CAC5B,CAEA,MAAOV,EAAQ,GAAK,CAClB,MAAM,KAAKS,EAAM,EAAE,QAAQ,EAC3B,MAAM,KAAKC,EAAO,EAAE,QAAQ,CAC9B,CACF,EAMA,SAASyB,GAAcD,EAAS,CAG9B,GAAI,MAAM,QAAQA,CAAO,EAAG,CAE1B,IAAMG,EAAc,CAAC,EAErB,QAASC,EAAI,EAAGA,EAAIJ,EAAQ,OAAQI,GAAK,EACvCD,EAAYH,EAAQI,CAAC,CAAC,EAAIJ,EAAQI,EAAI,CAAC,EAGzC,OAAOD,CACT,CAEA,OAAOH,CACT,CAUA,SAASE,GAAwBF,EAAS,CAGxC,GAFuBA,GAAW,OAAO,KAAKA,CAAO,EAClD,KAAMK,GAAQA,EAAI,YAAY,IAAM,qBAAqB,EAE1D,MAAM,IAAIjC,GAAqB,8DAA8D,CAEjG,CAEAT,GAAO,QAAUwB,KC1LjB,IAAAmB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,IAAMC,GAAmB,OAAO,IAAI,2BAA2B,EACzD,CAAE,qBAAAC,EAAqB,EAAI,IAC3BC,GAAQ,KAEVC,GAAoB,IAAM,QAC5BC,GAAoB,IAAIF,EAAO,EAGjC,SAASE,GAAqBC,EAAO,CACnC,GAAI,CAACA,GAAS,OAAOA,EAAM,UAAa,WACtC,MAAM,IAAIJ,GAAqB,qCAAqC,EAEtE,OAAO,eAAe,WAAYD,GAAkB,CAClD,MAAOK,EACP,SAAU,GACV,WAAY,GACZ,aAAc,EAChB,CAAC,CACH,CAEA,SAASF,IAAuB,CAC9B,OAAO,WAAWH,EAAgB,CACpC,CAEAD,GAAO,QAAU,CACf,oBAAAK,GACA,oBAAAD,EACF,IC/BA,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEAA,GAAO,QAAU,KAAuB,CACtC,YAAaC,EAAS,CACpB,KAAK,QAAUA,CACjB,CAEA,aAAcC,EAAM,CAClB,OAAO,KAAK,QAAQ,UAAU,GAAGA,CAAI,CACvC,CAEA,WAAYA,EAAM,CAChB,OAAO,KAAK,QAAQ,QAAQ,GAAGA,CAAI,CACrC,CAEA,aAAcA,EAAM,CAClB,OAAO,KAAK,QAAQ,UAAU,GAAGA,CAAI,CACvC,CAEA,aAAcA,EAAM,CAClB,OAAO,KAAK,QAAQ,UAAU,GAAGA,CAAI,CACvC,CAEA,UAAWA,EAAM,CACf,OAAO,KAAK,QAAQ,OAAO,GAAGA,CAAI,CACpC,CAEA,cAAeA,EAAM,CACnB,OAAO,KAAK,QAAQ,WAAW,GAAGA,CAAI,CACxC,CAEA,cAAeA,EAAM,CACnB,OAAO,KAAK,QAAQ,WAAW,GAAGA,CAAI,CACxC,CACF,IClCA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,GAAM,CAAE,aAAAC,EAAa,EAAI,IACnB,CAAE,OAAAC,EAAO,EAAI,KACb,CAAE,oBAAAC,EAAoB,EAAI,IAC1B,CACJ,aAAAC,GACA,kBAAAC,GACA,mBAAAC,EACF,EAAI,KACE,CAAE,OAAAC,CAAO,EAAI,KACbC,GAAS,QAAQ,QAAQ,EAEzBC,GAAc,OAAO,aAAa,EAClCC,GAAoB,OAAO,oBAAoB,EAMrD,SAASC,GAAsBC,EAAgB,CAO7C,IAAIC,EAAID,EAAe,OACvB,KAAO,YAAY,KAAKA,EAAe,OAAO,EAAEC,CAAC,CAAC,GAAE,CACpD,OAAOD,EAAe,MAAM,EAAGC,EAAI,CAAC,EAAE,QAAQ,cAAe,EAAE,CACjE,CAEA,SAASC,GAAMC,EAASC,EAAQ,CAK9B,GAAI,MAAM,QAAQA,CAAM,EACtB,QAAWC,KAAUD,EAAQ,CAE3B,GAAIC,EAAO,SAAW,EACpB,MAAMV,EAAO,OAAO,UAAU,CAC5B,OAAQ,sBACR,QAAS,kDAAkDU,EAAO,MAAM,GAC1E,CAAC,EAIHF,EAAQ,OAAOE,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,CACrC,SACS,OAAOD,GAAW,UAAYA,IAAW,KAKlD,OAAW,CAACE,EAAKC,CAAK,IAAK,OAAO,QAAQH,CAAM,EAC9CD,EAAQ,OAAOG,EAAKC,CAAK,MAG3B,OAAMZ,EAAO,OAAO,iBAAiB,CACnC,OAAQ,sBACR,SAAU,aACV,MAAO,CAAC,iCAAkC,gCAAgC,CAC5E,CAAC,CAEL,CAEA,IAAMa,GAAN,MAAMC,CAAY,CAEhB,QAAU,KAEV,YAAaC,EAAM,CACbA,aAAgBD,GAClB,KAAKZ,EAAW,EAAI,IAAI,IAAIa,EAAKb,EAAW,CAAC,EAC7C,KAAKC,EAAiB,EAAIY,EAAKZ,EAAiB,EAChD,KAAK,QAAUY,EAAK,UAEpB,KAAKb,EAAW,EAAI,IAAI,IAAIa,CAAI,EAChC,KAAKZ,EAAiB,EAAI,KAE9B,CAGA,SAAUa,EAAM,CAId,OAAAA,EAAOA,EAAK,YAAY,EAEjB,KAAKd,EAAW,EAAE,IAAIc,CAAI,CACnC,CAEA,OAAS,CACP,KAAKd,EAAW,EAAE,MAAM,EACxB,KAAKC,EAAiB,EAAI,KAC1B,KAAK,QAAU,IACjB,CAGA,OAAQa,EAAMJ,EAAO,CACnB,KAAKT,EAAiB,EAAI,KAI1B,IAAMc,EAAgBD,EAAK,YAAY,EACjCE,EAAS,KAAKhB,EAAW,EAAE,IAAIe,CAAa,EAGlD,GAAIC,EAAQ,CACV,IAAMC,EAAYF,IAAkB,SAAW,KAAO,KACtD,KAAKf,EAAW,EAAE,IAAIe,EAAe,CACnC,KAAMC,EAAO,KACb,MAAO,GAAGA,EAAO,KAAK,GAAGC,CAAS,GAAGP,CAAK,EAC5C,CAAC,CACH,MACE,KAAKV,EAAW,EAAE,IAAIe,EAAe,CAAE,KAAAD,EAAM,MAAAJ,CAAM,CAAC,EAGlDK,IAAkB,eACpB,KAAK,UAAY,CAAC,EAClB,KAAK,QAAQ,KAAKL,CAAK,EAE3B,CAGA,IAAKI,EAAMJ,EAAO,CAChB,KAAKT,EAAiB,EAAI,KAC1B,IAAMc,EAAgBD,EAAK,YAAY,EAEvC,OAAIC,IAAkB,eACpB,KAAK,QAAU,CAACL,CAAK,GAOhB,KAAKV,EAAW,EAAE,IAAIe,EAAe,CAAE,KAAAD,EAAM,MAAAJ,CAAM,CAAC,CAC7D,CAGA,OAAQI,EAAM,CACZ,YAAKb,EAAiB,EAAI,KAE1Ba,EAAOA,EAAK,YAAY,EAEpBA,IAAS,eACX,KAAK,QAAU,MAGV,KAAKd,EAAW,EAAE,OAAOc,CAAI,CACtC,CAGA,IAAKA,EAAM,CAET,OAAK,KAAK,SAASA,CAAI,EAOhB,KAAKd,EAAW,EAAE,IAAIc,EAAK,YAAY,CAAC,GAAG,OAAS,KANlD,IAOX,CAEA,EAAG,OAAO,QAAQ,GAAK,CAErB,OAAW,CAACA,EAAM,CAAE,MAAAJ,CAAM,CAAC,IAAK,KAAKV,EAAW,EAC9C,KAAM,CAACc,EAAMJ,CAAK,CAEtB,CAEA,IAAI,SAAW,CACb,IAAMJ,EAAU,CAAC,EAEjB,GAAI,KAAKN,EAAW,EAAE,KACpB,OAAW,CAAE,KAAAc,EAAM,MAAAJ,CAAM,IAAK,KAAKV,EAAW,EAAE,OAAO,EACrDM,EAAQQ,CAAI,EAAIJ,EAIpB,OAAOJ,CACT,CACF,EAGMY,GAAN,MAAMC,CAAQ,CACZ,YAAaN,EAAO,OAAW,CAC7B,KAAKrB,EAAY,EAAI,IAAImB,GAKzB,KAAKlB,EAAM,EAAI,OAGXoB,IAAS,SACXA,EAAOf,EAAO,WAAW,YAAYe,CAAI,EACzCR,GAAK,KAAMQ,CAAI,EAEnB,CAGA,OAAQC,EAAMJ,EAAO,CAanB,GAZAZ,EAAO,WAAW,KAAMqB,CAAO,EAE/BrB,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,gBAAiB,CAAC,EAErEgB,EAAOhB,EAAO,WAAW,WAAWgB,CAAI,EACxCJ,EAAQZ,EAAO,WAAW,WAAWY,CAAK,EAG1CA,EAAQR,GAAqBQ,CAAK,EAI7Bd,GAAkBkB,CAAI,GAMpB,GAAI,CAACjB,GAAmBa,CAAK,EAClC,MAAMZ,EAAO,OAAO,gBAAgB,CAClC,OAAQ,iBACR,MAAAY,EACA,KAAM,cACR,CAAC,MAVD,OAAMZ,EAAO,OAAO,gBAAgB,CAClC,OAAQ,iBACR,MAAOgB,EACP,KAAM,aACR,CAAC,EAaH,GAAI,KAAKrB,EAAM,IAAM,YACnB,MAAM,IAAI,UAAU,WAAW,EAC1B,OAAI,KAAKA,EAAM,EAWf,KAAKD,EAAY,EAAE,OAAOsB,EAAMJ,CAAK,CAC9C,CAGA,OAAQI,EAAM,CAQZ,GAPAhB,EAAO,WAAW,KAAMqB,CAAO,EAE/BrB,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,gBAAiB,CAAC,EAErEgB,EAAOhB,EAAO,WAAW,WAAWgB,CAAI,EAGpC,CAAClB,GAAkBkB,CAAI,EACzB,MAAMhB,EAAO,OAAO,gBAAgB,CAClC,OAAQ,iBACR,MAAOgB,EACP,KAAM,aACR,CAAC,EAaH,GAAI,KAAKrB,EAAM,IAAM,YACnB,MAAM,IAAI,UAAU,WAAW,EAOjC,GANW,KAAKA,EAAM,EAMlB,EAAC,KAAKD,EAAY,EAAE,SAASsB,CAAI,EAOrC,OAAO,KAAKtB,EAAY,EAAE,OAAOsB,CAAI,CACvC,CAGA,IAAKA,EAAM,CAQT,GAPAhB,EAAO,WAAW,KAAMqB,CAAO,EAE/BrB,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,aAAc,CAAC,EAElEgB,EAAOhB,EAAO,WAAW,WAAWgB,CAAI,EAGpC,CAAClB,GAAkBkB,CAAI,EACzB,MAAMhB,EAAO,OAAO,gBAAgB,CAClC,OAAQ,cACR,MAAOgB,EACP,KAAM,aACR,CAAC,EAKH,OAAO,KAAKtB,EAAY,EAAE,IAAIsB,CAAI,CACpC,CAGA,IAAKA,EAAM,CAQT,GAPAhB,EAAO,WAAW,KAAMqB,CAAO,EAE/BrB,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,aAAc,CAAC,EAElEgB,EAAOhB,EAAO,WAAW,WAAWgB,CAAI,EAGpC,CAAClB,GAAkBkB,CAAI,EACzB,MAAMhB,EAAO,OAAO,gBAAgB,CAClC,OAAQ,cACR,MAAOgB,EACP,KAAM,aACR,CAAC,EAKH,OAAO,KAAKtB,EAAY,EAAE,SAASsB,CAAI,CACzC,CAGA,IAAKA,EAAMJ,EAAO,CAahB,GAZAZ,EAAO,WAAW,KAAMqB,CAAO,EAE/BrB,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,aAAc,CAAC,EAElEgB,EAAOhB,EAAO,WAAW,WAAWgB,CAAI,EACxCJ,EAAQZ,EAAO,WAAW,WAAWY,CAAK,EAG1CA,EAAQR,GAAqBQ,CAAK,EAI7Bd,GAAkBkB,CAAI,GAMpB,GAAI,CAACjB,GAAmBa,CAAK,EAClC,MAAMZ,EAAO,OAAO,gBAAgB,CAClC,OAAQ,cACR,MAAAY,EACA,KAAM,cACR,CAAC,MAVD,OAAMZ,EAAO,OAAO,gBAAgB,CAClC,OAAQ,cACR,MAAOgB,EACP,KAAM,aACR,CAAC,EAkBH,GAAI,KAAKrB,EAAM,IAAM,YACnB,MAAM,IAAI,UAAU,WAAW,EAC1B,OAAI,KAAKA,EAAM,EAOf,KAAKD,EAAY,EAAE,IAAIsB,EAAMJ,CAAK,CAC3C,CAGA,cAAgB,CACdZ,EAAO,WAAW,KAAMqB,CAAO,EAM/B,IAAMC,EAAO,KAAK5B,EAAY,EAAE,QAEhC,OAAI4B,EACK,CAAC,GAAGA,CAAI,EAGV,CAAC,CACV,CAGA,IAAKnB,EAAiB,GAAK,CACzB,GAAI,KAAKT,EAAY,EAAES,EAAiB,EACtC,OAAO,KAAKT,EAAY,EAAES,EAAiB,EAK7C,IAAMK,EAAU,CAAC,EAIXe,EAAQ,CAAC,GAAG,KAAK7B,EAAY,CAAC,EAAE,KAAK,CAAC8B,EAAGC,IAAMD,EAAE,CAAC,EAAIC,EAAE,CAAC,EAAI,GAAK,CAAC,EACnEC,EAAU,KAAKhC,EAAY,EAAE,QAGnC,OAAW,CAACsB,EAAMJ,CAAK,IAAKW,EAE1B,GAAIP,IAAS,aAMX,QAAWJ,KAASc,EAClBlB,EAAQ,KAAK,CAACQ,EAAMJ,CAAK,CAAC,OAQ5BX,GAAOW,IAAU,IAAI,EAGrBJ,EAAQ,KAAK,CAACQ,EAAMJ,CAAK,CAAC,EAI9B,YAAKlB,EAAY,EAAES,EAAiB,EAAIK,EAGjCA,CACT,CAEA,MAAQ,CACN,OAAAR,EAAO,WAAW,KAAMqB,CAAO,EAExBxB,GACL,IAAM,CAAC,GAAG,KAAKM,EAAiB,EAAE,OAAO,CAAC,EAC1C,UACA,KACF,CACF,CAEA,QAAU,CACR,OAAAH,EAAO,WAAW,KAAMqB,CAAO,EAExBxB,GACL,IAAM,CAAC,GAAG,KAAKM,EAAiB,EAAE,OAAO,CAAC,EAC1C,UACA,OACF,CACF,CAEA,SAAW,CACT,OAAAH,EAAO,WAAW,KAAMqB,CAAO,EAExBxB,GACL,IAAM,CAAC,GAAG,KAAKM,EAAiB,EAAE,OAAO,CAAC,EAC1C,UACA,WACF,CACF,CAMA,QAASwB,EAAYC,EAAU,WAAY,CAKzC,GAJA5B,EAAO,WAAW,KAAMqB,CAAO,EAE/BrB,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,iBAAkB,CAAC,EAElE,OAAO2B,GAAe,WACxB,MAAM,IAAI,UACR,kFACF,EAGF,OAAW,CAAChB,EAAKC,CAAK,IAAK,KACzBe,EAAW,MAAMC,EAAS,CAAChB,EAAOD,EAAK,IAAI,CAAC,CAEhD,CAEA,CAAC,OAAO,IAAI,4BAA4B,CAAC,GAAK,CAC5C,OAAAX,EAAO,WAAW,KAAMqB,CAAO,EAExB,KAAK3B,EAAY,CAC1B,CACF,EAEA0B,GAAQ,UAAU,OAAO,QAAQ,EAAIA,GAAQ,UAAU,QAEvD,OAAO,iBAAiBA,GAAQ,UAAW,CACzC,OAAQxB,GACR,OAAQA,GACR,IAAKA,GACL,IAAKA,GACL,IAAKA,GACL,aAAcA,GACd,KAAMA,GACN,OAAQA,GACR,QAASA,GACT,QAASA,GACT,CAAC,OAAO,QAAQ,EAAG,CAAE,WAAY,EAAM,EACvC,CAAC,OAAO,WAAW,EAAG,CACpB,MAAO,UACP,aAAc,EAChB,CACF,CAAC,EAEDI,EAAO,WAAW,YAAc,SAAU6B,EAAG,CAC3C,GAAI7B,EAAO,KAAK,KAAK6B,CAAC,IAAM,SAC1B,OAAIA,EAAE,OAAO,QAAQ,EACZ7B,EAAO,WAAW,gCAAgC,EAAE6B,CAAC,EAGvD7B,EAAO,WAAW,gCAAgC,EAAE6B,CAAC,EAG9D,MAAM7B,EAAO,OAAO,iBAAiB,CACnC,OAAQ,sBACR,SAAU,aACV,MAAO,CAAC,iCAAkC,gCAAgC,CAC5E,CAAC,CACH,EAEAP,GAAO,QAAU,CACf,KAAAc,GACA,QAAAa,GACA,YAAAP,EACF,ICviBA,IAAAiB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,QAAAC,GAAS,YAAAC,GAAa,KAAAC,EAAK,EAAI,KACjC,CAAE,YAAAC,GAAa,UAAAC,GAAW,UAAAC,EAAU,EAAI,KACxCC,GAAO,IACP,CAAE,oBAAAC,EAAoB,EAAID,GAC1B,CACJ,oBAAAE,GACA,YAAAC,GACA,UAAAC,GACA,WAAAC,GACA,qCAAAC,GACA,YAAAC,GACA,iBAAAC,EACF,EAAI,KACE,CACJ,eAAAC,GACA,eAAAC,GACA,aAAAC,EACF,EAAI,KACE,CAAE,OAAAC,EAAQ,SAAAC,GAAU,OAAAC,GAAQ,OAAAC,EAAO,EAAI,KACvC,CAAE,OAAAC,CAAO,EAAI,KACb,CAAE,SAAAC,EAAS,EAAI,KACf,CAAE,gBAAAC,EAAgB,EAAI,KACtB,CAAE,cAAAC,EAAc,EAAI,KACpB,CAAE,aAAAC,EAAa,EAAI,IACnBC,GAAS,QAAQ,QAAQ,EACzB,CAAE,MAAAC,EAAM,EAAI,QAAQ,MAAM,EAE1BC,GAAiB,WAAW,gBAAkB,QAAQ,YAAY,EAAE,eAGpEC,GAAN,MAAMC,CAAS,CAEb,OAAO,OAAS,CAEd,IAAMC,EAAgB,CAAE,eAAgB,CAAC,CAAE,EAKrCC,EAAiB,IAAIF,EAC3B,OAAAE,EAAef,CAAM,EAAIgB,GAAiB,EAC1CD,EAAeZ,EAAM,EAAIW,EACzBC,EAAed,EAAQ,EAAEO,EAAY,EAAIO,EAAef,CAAM,EAAE,YAChEe,EAAed,EAAQ,EAAEC,EAAM,EAAI,YACnCa,EAAed,EAAQ,EAAEE,EAAM,EAAIW,EAC5BC,CACT,CAGA,OAAO,KAAME,EAAO,OAAWC,EAAO,CAAC,EAAG,CACxCd,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,eAAgB,CAAC,EAEhEc,IAAS,OACXA,EAAOd,EAAO,WAAW,aAAac,CAAI,GAI5C,IAAMC,EAAQ,IAAI,YAAY,OAAO,EAAE,OACrCzB,GAAqCuB,CAAI,CAC3C,EAGMG,EAAOnC,GAAYkC,CAAK,EAIxBL,EAAgB,CAAE,eAAgB,CAAC,CAAE,EACrCC,EAAiB,IAAIF,EAC3B,OAAAE,EAAeZ,EAAM,EAAIW,EACzBC,EAAed,EAAQ,EAAEC,EAAM,EAAI,WACnCa,EAAed,EAAQ,EAAEE,EAAM,EAAIW,EAGnCO,GAAmBN,EAAgBG,EAAM,CAAE,KAAME,EAAK,CAAC,EAAG,KAAM,kBAAmB,CAAC,EAG7EL,CACT,CAGA,OAAO,SAAUO,EAAKC,EAAS,IAAK,CAClC,IAAMT,EAAgB,CAAE,eAAgB,CAAC,CAAE,EAE3CV,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,mBAAoB,CAAC,EAExEkB,EAAMlB,EAAO,WAAW,UAAUkB,CAAG,EACrCC,EAASnB,EAAO,WAAW,gBAAgB,EAAEmB,CAAM,EAMnD,IAAIC,EACJ,GAAI,CACFA,EAAY,IAAI,IAAIF,EAAKhB,GAAgB,CAAC,CAC5C,OAASmB,EAAK,CACZ,MAAM,OAAO,OAAO,IAAI,UAAU,4BAA8BH,CAAG,EAAG,CACpE,MAAOG,CACT,CAAC,CACH,CAGA,GAAI,CAAC5B,GAAe,SAAS0B,CAAM,EACjC,MAAM,IAAI,WAAW,uBAAyBA,CAAM,EAKtD,IAAMR,EAAiB,IAAIF,EAC3BE,EAAeZ,EAAM,EAAIW,EACzBC,EAAed,EAAQ,EAAEC,EAAM,EAAI,YACnCa,EAAed,EAAQ,EAAEE,EAAM,EAAIW,EAGnCC,EAAef,CAAM,EAAE,OAASuB,EAGhC,IAAMG,EAAQ9B,GAAiBW,GAAciB,CAAS,CAAC,EAGvD,OAAAT,EAAef,CAAM,EAAE,YAAY,OAAO,WAAY0B,CAAK,EAGpDX,CACT,CAGA,YAAaK,EAAO,KAAMF,EAAO,CAAC,EAAG,CAC/BE,IAAS,OACXA,EAAOhB,EAAO,WAAW,SAASgB,CAAI,GAGxCF,EAAOd,EAAO,WAAW,aAAac,CAAI,EAG1C,KAAKf,EAAM,EAAI,CAAE,eAAgB,CAAC,CAAE,EAGpC,KAAKH,CAAM,EAAI2B,GAAa,CAAC,CAAC,EAK9B,KAAK1B,EAAQ,EAAI,IAAInB,GACrB,KAAKmB,EAAQ,EAAEC,EAAM,EAAI,WACzB,KAAKD,EAAQ,EAAEO,EAAY,EAAI,KAAKR,CAAM,EAAE,YAC5C,KAAKC,EAAQ,EAAEE,EAAM,EAAI,KAAKA,EAAM,EAGpC,IAAIyB,EAAe,KAGnB,GAAIR,GAAQ,KAAM,CAChB,GAAM,CAACS,EAAeC,CAAI,EAAI7C,GAAYmC,CAAI,EAC9CQ,EAAe,CAAE,KAAMC,EAAe,KAAAC,CAAK,CAC7C,CAGAT,GAAmB,KAAMH,EAAMU,CAAY,CAC7C,CAGA,IAAI,MAAQ,CACV,OAAAxB,EAAO,WAAW,KAAMS,CAAQ,EAGzB,KAAKb,CAAM,EAAE,IACtB,CAGA,IAAI,KAAO,CACTI,EAAO,WAAW,KAAMS,CAAQ,EAEhC,IAAMkB,EAAU,KAAK/B,CAAM,EAAE,QAKvBsB,EAAMS,EAAQA,EAAQ,OAAS,CAAC,GAAK,KAE3C,OAAIT,IAAQ,KACH,GAGFf,GAAce,EAAK,EAAI,CAChC,CAGA,IAAI,YAAc,CAChB,OAAAlB,EAAO,WAAW,KAAMS,CAAQ,EAIzB,KAAKb,CAAM,EAAE,QAAQ,OAAS,CACvC,CAGA,IAAI,QAAU,CACZ,OAAAI,EAAO,WAAW,KAAMS,CAAQ,EAGzB,KAAKb,CAAM,EAAE,MACtB,CAGA,IAAI,IAAM,CACR,OAAAI,EAAO,WAAW,KAAMS,CAAQ,EAIzB,KAAKb,CAAM,EAAE,QAAU,KAAO,KAAKA,CAAM,EAAE,QAAU,GAC9D,CAGA,IAAI,YAAc,CAChB,OAAAI,EAAO,WAAW,KAAMS,CAAQ,EAIzB,KAAKb,CAAM,EAAE,UACtB,CAGA,IAAI,SAAW,CACb,OAAAI,EAAO,WAAW,KAAMS,CAAQ,EAGzB,KAAKZ,EAAQ,CACtB,CAEA,IAAI,MAAQ,CACV,OAAAG,EAAO,WAAW,KAAMS,CAAQ,EAEzB,KAAKb,CAAM,EAAE,KAAO,KAAKA,CAAM,EAAE,KAAK,OAAS,IACxD,CAEA,IAAI,UAAY,CACd,OAAAI,EAAO,WAAW,KAAMS,CAAQ,EAEzB,CAAC,CAAC,KAAKb,CAAM,EAAE,MAAQZ,GAAK,YAAY,KAAKY,CAAM,EAAE,KAAK,MAAM,CACzE,CAGA,OAAS,CAIP,GAHAI,EAAO,WAAW,KAAMS,CAAQ,EAG5B,KAAK,UAAa,KAAK,MAAQ,KAAK,KAAK,OAC3C,MAAMT,EAAO,OAAO,UAAU,CAC5B,OAAQ,iBACR,QAAS,iCACX,CAAC,EAIH,IAAM4B,EAAiBC,GAAc,KAAKjC,CAAM,CAAC,EAI3CkC,EAAuB,IAAIrB,EACjC,OAAAqB,EAAqBlC,CAAM,EAAIgC,EAC/BE,EAAqB/B,EAAM,EAAI,KAAKA,EAAM,EAC1C+B,EAAqBjC,EAAQ,EAAEO,EAAY,EAAIwB,EAAe,YAC9DE,EAAqBjC,EAAQ,EAAEC,EAAM,EAAI,KAAKD,EAAQ,EAAEC,EAAM,EAC9DgC,EAAqBjC,EAAQ,EAAEE,EAAM,EAAI,KAAKF,EAAQ,EAAEE,EAAM,EAEvD+B,CACT,CACF,EAEA/C,GAAUyB,EAAQ,EAElB,OAAO,iBAAiBA,GAAS,UAAW,CAC1C,KAAMvB,GACN,IAAKA,GACL,OAAQA,GACR,GAAIA,GACJ,WAAYA,GACZ,WAAYA,GACZ,QAASA,GACT,MAAOA,GACP,KAAMA,GACN,SAAUA,GACV,CAAC,OAAO,WAAW,EAAG,CACpB,MAAO,WACP,aAAc,EAChB,CACF,CAAC,EAED,OAAO,iBAAiBuB,GAAU,CAChC,KAAMvB,GACN,SAAUA,GACV,MAAOA,EACT,CAAC,EAGD,SAAS4C,GAAeE,EAAU,CAMhC,GAAIA,EAAS,iBACX,OAAOC,GACLH,GAAcE,EAAS,gBAAgB,EACvCA,EAAS,IACX,EAIF,IAAME,EAAcV,GAAa,CAAE,GAAGQ,EAAU,KAAM,IAAK,CAAC,EAI5D,OAAIA,EAAS,MAAQ,OACnBE,EAAY,KAAOnD,GAAUiD,EAAS,IAAI,GAIrCE,CACT,CAEA,SAASV,GAAcT,EAAM,CAC3B,MAAO,CACL,QAAS,GACT,eAAgB,GAChB,kBAAmB,GACnB,2BAA4B,GAC5B,KAAM,UACN,OAAQ,IACR,WAAY,KACZ,WAAY,GACZ,WAAY,GACZ,GAAGA,EACH,YAAaA,EAAK,YACd,IAAInC,GAAYmC,EAAK,WAAW,EAChC,IAAInC,GACR,QAASmC,EAAK,QAAU,CAAC,GAAGA,EAAK,OAAO,EAAI,CAAC,CAC/C,CACF,CAEA,SAASF,GAAkBsB,EAAQ,CACjC,IAAMC,EAAU5C,GAAY2C,CAAM,EAClC,OAAOX,GAAa,CAClB,KAAM,QACN,OAAQ,EACR,MAAOY,EACHD,EACA,IAAI,MAAMA,GAAS,OAAOA,CAAM,CAAU,EAC9C,QAASA,GAAUA,EAAO,OAAS,YACrC,CAAC,CACH,CAEA,SAASE,GAAsBL,EAAUM,EAAO,CAC9C,OAAAA,EAAQ,CACN,iBAAkBN,EAClB,GAAGM,CACL,EAEO,IAAI,MAAMN,EAAU,CACzB,IAAKO,EAAQC,EAAG,CACd,OAAOA,KAAKF,EAAQA,EAAME,CAAC,EAAID,EAAOC,CAAC,CACzC,EACA,IAAKD,EAAQC,EAAGjB,EAAO,CACrB,OAAAjB,GAAO,EAAEkC,KAAKF,EAAM,EACpBC,EAAOC,CAAC,EAAIjB,EACL,EACT,CACF,CAAC,CACH,CAGA,SAASU,GAAgBD,EAAUL,EAAM,CAGvC,GAAIA,IAAS,QAMX,OAAOU,GAAqBL,EAAU,CACpC,KAAM,QACN,YAAaA,EAAS,WACxB,CAAC,EACI,GAAIL,IAAS,OAOlB,OAAOU,GAAqBL,EAAU,CACpC,KAAM,OACN,YAAaA,EAAS,WACxB,CAAC,EACI,GAAIL,IAAS,SAKlB,OAAOU,GAAqBL,EAAU,CACpC,KAAM,SACN,QAAS,OAAO,OAAO,CAAC,CAAC,EACzB,OAAQ,EACR,WAAY,GACZ,KAAM,IACR,CAAC,EACI,GAAIL,IAAS,iBAKlB,OAAOU,GAAqBL,EAAU,CACpC,KAAM,iBACN,OAAQ,EACR,WAAY,GACZ,YAAa,CAAC,EACd,KAAM,IACR,CAAC,EAED1B,GAAO,EAAK,CAEhB,CAGA,SAASmC,GAA6BC,EAAa,CAEjD,OAAApC,GAAOlB,GAAYsD,CAAW,CAAC,EAIxBrD,GAAUqD,CAAW,EACxB7B,GAAiB,IAAIjB,GAAa,6BAA8B,YAAY,CAAC,EAC7EiB,GAAiB,wBAAwB,CAC/C,CAGA,SAASK,GAAoBc,EAAUjB,EAAME,EAAM,CAGjD,GAAIF,EAAK,SAAW,OAASA,EAAK,OAAS,KAAOA,EAAK,OAAS,KAC9D,MAAM,IAAI,WAAW,+DAA+D,EAKtF,GAAI,eAAgBA,GAAQA,EAAK,YAAc,MAGzC,CAAC5B,GAAoB,OAAO4B,EAAK,UAAU,CAAC,EAC9C,MAAM,IAAI,UAAU,oBAAoB,EAoB5C,GAfI,WAAYA,GAAQA,EAAK,QAAU,OACrCiB,EAASnC,CAAM,EAAE,OAASkB,EAAK,QAI7B,eAAgBA,GAAQA,EAAK,YAAc,OAC7CiB,EAASnC,CAAM,EAAE,WAAakB,EAAK,YAIjC,YAAaA,GAAQA,EAAK,SAAW,MACvClC,GAAKmD,EAASlC,EAAQ,EAAGiB,EAAK,OAAO,EAInCE,EAAM,CAER,GAAItB,GAAe,SAASqC,EAAS,MAAM,EACzC,MAAM/B,EAAO,OAAO,UAAU,CAC5B,OAAQ,uBACR,QAAS,gCAAkC+B,EAAS,MACtD,CAAC,EAIHA,EAASnC,CAAM,EAAE,KAAOoB,EAAK,KAIzBA,EAAK,MAAQ,MAAQ,CAACe,EAASnC,CAAM,EAAE,YAAY,SAAS,cAAc,GAC5EmC,EAASnC,CAAM,EAAE,YAAY,OAAO,eAAgBoB,EAAK,IAAI,CAEjE,CACF,CAEAhB,EAAO,WAAW,eAAiBA,EAAO,mBACxCO,EACF,EAEAP,EAAO,WAAW,SAAWA,EAAO,mBAClCC,EACF,EAEAD,EAAO,WAAW,gBAAkBA,EAAO,mBACzC,eACF,EAGAA,EAAO,WAAW,uBAAyB,SAAU0C,EAAG,CACtD,OAAI,OAAOA,GAAM,SACR1C,EAAO,WAAW,UAAU0C,CAAC,EAGlCrD,GAAWqD,CAAC,EACP1C,EAAO,WAAW,KAAK0C,EAAG,CAAE,OAAQ,EAAM,CAAC,EAIlDpC,GAAM,iBAAiBoC,CAAC,GACxBpC,GAAM,aAAaoC,CAAC,GACpBpC,GAAM,WAAWoC,CAAC,EAEX1C,EAAO,WAAW,aAAa0C,CAAC,EAGrC1D,GAAK,eAAe0D,CAAC,EAChB1C,EAAO,WAAW,SAAS0C,EAAG,CAAE,OAAQ,EAAM,CAAC,EAGpDA,aAAa,gBACR1C,EAAO,WAAW,gBAAgB0C,CAAC,EAGrC1C,EAAO,WAAW,UAAU0C,CAAC,CACtC,EAGA1C,EAAO,WAAW,SAAW,SAAU0C,EAAG,CACxC,OAAIA,aAAanC,GACRP,EAAO,WAAW,eAAe0C,CAAC,EAKvCA,IAAI,OAAO,aAAa,EACnBA,EAGF1C,EAAO,WAAW,uBAAuB0C,CAAC,CACnD,EAEA1C,EAAO,WAAW,aAAeA,EAAO,oBAAoB,CAC1D,CACE,IAAK,SACL,UAAWA,EAAO,WAAW,gBAAgB,EAC7C,aAAc,GAChB,EACA,CACE,IAAK,aACL,UAAWA,EAAO,WAAW,WAC7B,aAAc,EAChB,EACA,CACE,IAAK,UACL,UAAWA,EAAO,WAAW,WAC/B,CACF,CAAC,EAEDvB,GAAO,QAAU,CACf,iBAAAmC,GACA,aAAAW,GACA,4BAAAiB,GACA,eAAAR,GACA,SAAAxB,GACA,cAAAqB,EACF,IC7jBA,IAAAc,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,GAAM,CAAE,YAAAC,GAAa,UAAAC,GAAW,UAAAC,EAAU,EAAI,KACxC,CAAE,QAAAC,GAAS,KAAMC,GAAa,YAAAC,EAAY,EAAI,KAC9C,CAAE,qBAAAC,EAAqB,EAAI,KAAwC,EACnEC,GAAO,IACP,CACJ,iBAAAC,GACA,WAAAC,GACA,gBAAAC,GACA,oBAAAC,EACF,EAAI,KACE,CACJ,iBAAAC,GACA,sBAAAC,GACA,eAAAC,GACA,gBAAAC,GACA,YAAAC,GACA,mBAAAC,GACA,aAAAC,GACA,cAAAC,EACF,EAAI,KACE,CAAE,oBAAAC,EAAoB,EAAIb,GAC1B,CAAE,SAAAc,GAAU,QAAAC,GAAS,OAAAC,EAAQ,OAAAC,GAAQ,OAAAC,EAAO,EAAI,KAChD,CAAE,OAAAC,CAAO,EAAI,KACb,CAAE,gBAAAC,EAAgB,EAAI,KACtB,CAAE,cAAAC,EAAc,EAAI,KACpB,CAAE,aAAAC,EAAa,EAAI,IACnBC,GAAS,QAAQ,QAAQ,EACzB,CAAE,gBAAAC,GAAiB,gBAAAC,GAAiB,kBAAAC,GAAmB,oBAAAC,EAAoB,EAAI,QAAQ,QAAQ,EAEjGC,GAAkB,WAAW,gBAE3BC,GAAQ,OAAO,MAAM,EACrBC,GAAmB,OAAO,iBAAiB,EAE3CC,GAAmB,IAAIhC,GAAqB,CAAC,CAAE,OAAAiC,EAAQ,MAAAC,CAAM,IAAM,CACvED,EAAO,oBAAoB,QAASC,CAAK,CAC3C,CAAC,EAGKC,GAAN,MAAMC,CAAQ,CAEZ,YAAaC,EAAOC,EAAO,CAAC,EAAG,CAC7B,GAAID,IAAUP,GACZ,OAGFV,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,qBAAsB,CAAC,EAE1EiB,EAAQjB,EAAO,WAAW,YAAYiB,CAAK,EAC3CC,EAAOlB,EAAO,WAAW,YAAYkB,CAAI,EAGzC,KAAKnB,EAAM,EAAI,CACb,eAAgB,CACd,QAASE,GAAgB,EACzB,IAAI,QAAU,CACZ,OAAO,KAAK,SAAS,MACvB,EACA,gBAAiBhB,GAAoB,CACvC,CACF,EAGA,IAAIkC,EAAU,KAGVC,EAAe,KAGbC,EAAU,KAAKtB,EAAM,EAAE,eAAe,QAGxCc,EAAS,KAGb,GAAI,OAAOI,GAAU,SAAU,CAG7B,IAAIK,EACJ,GAAI,CACFA,EAAY,IAAI,IAAIL,EAAOI,CAAO,CACpC,OAASE,EAAK,CACZ,MAAM,IAAI,UAAU,4BAA8BN,EAAO,CAAE,MAAOM,CAAI,CAAC,CACzE,CAGA,GAAID,EAAU,UAAYA,EAAU,SAClC,MAAM,IAAI,UACR,uEACEL,CACJ,EAIFE,EAAUK,GAAY,CAAE,QAAS,CAACF,CAAS,CAAE,CAAC,EAG9CF,EAAe,MACjB,MAIEhB,GAAOa,aAAiBD,CAAO,EAG/BG,EAAUF,EAAMpB,CAAM,EAGtBgB,EAASI,EAAMrB,EAAO,EAIxB,IAAM6B,EAAS,KAAK1B,EAAM,EAAE,eAAe,OAGvC2B,EAAS,SAYb,GAPEP,EAAQ,QAAQ,aAAa,OAAS,6BACtCpC,GAAWoC,EAAQ,OAAQM,CAAM,IAEjCC,EAASP,EAAQ,QAIfD,EAAK,QAAU,KACjB,MAAM,IAAI,UAAU,oBAAoBQ,CAAM,gBAAgB,EAmFhE,GA/EI,WAAYR,IACdQ,EAAS,aAIXP,EAAUK,GAAY,CAIpB,OAAQL,EAAQ,OAGhB,YAAaA,EAAQ,YAErB,cAAeA,EAAQ,cAEvB,OAAQ,KAAKpB,EAAM,EAAE,eAErB,OAAA2B,EAEA,SAAUP,EAAQ,SAIlB,OAAQA,EAAQ,OAEhB,SAAUA,EAAQ,SAElB,eAAgBA,EAAQ,eAExB,KAAMA,EAAQ,KAEd,YAAaA,EAAQ,YAErB,MAAOA,EAAQ,MAEf,SAAUA,EAAQ,SAElB,UAAWA,EAAQ,UAEnB,UAAWA,EAAQ,UAEnB,iBAAkBA,EAAQ,iBAE1B,kBAAmBA,EAAQ,kBAE3B,QAAS,CAAC,GAAGA,EAAQ,OAAO,CAC9B,CAAC,EAGG,OAAO,KAAKD,CAAI,EAAE,OAAS,IAEzBC,EAAQ,OAAS,aACnBA,EAAQ,KAAO,eAIjBA,EAAQ,iBAAmB,GAG3BA,EAAQ,kBAAoB,GAG5BA,EAAQ,OAAS,SAGjBA,EAAQ,SAAW,SAGnBA,EAAQ,eAAiB,GAGzBA,EAAQ,IAAMA,EAAQ,QAAQA,EAAQ,QAAQ,OAAS,CAAC,EAGxDA,EAAQ,QAAU,CAACA,EAAQ,GAAG,GAI5BD,EAAK,WAAa,OAAW,CAE/B,IAAMS,EAAWT,EAAK,SAGtB,GAAIS,IAAa,GACfR,EAAQ,SAAW,kBACd,CAIL,IAAIS,EACJ,GAAI,CACFA,EAAiB,IAAI,IAAID,EAAUN,CAAO,CAC5C,OAASE,EAAK,CACZ,MAAM,IAAI,UAAU,aAAaI,CAAQ,wBAAyB,CAAE,MAAOJ,CAAI,CAAC,CAClF,CAOGK,EAAe,WAAa,UAAYA,EAAe,WAAa,UACpEH,GAAU,CAAC1C,GAAW6C,EAAgB,KAAK7B,EAAM,EAAE,eAAe,OAAO,EAE1EoB,EAAQ,SAAW,SAGnBA,EAAQ,SAAWS,CAEvB,CACF,CAIIV,EAAK,iBAAmB,SAC1BC,EAAQ,eAAiBD,EAAK,gBAIhC,IAAIW,EAQJ,GAPIX,EAAK,OAAS,OAChBW,EAAOX,EAAK,KAEZW,EAAOT,EAILS,IAAS,WACX,MAAM7B,EAAO,OAAO,UAAU,CAC5B,OAAQ,sBACR,QAAS,gCACX,CAAC,EAqBH,GAjBI6B,GAAQ,OACVV,EAAQ,KAAOU,GAKbX,EAAK,cAAgB,SACvBC,EAAQ,YAAcD,EAAK,aAIzBA,EAAK,QAAU,SACjBC,EAAQ,MAAQD,EAAK,OAKnBC,EAAQ,QAAU,kBAAoBA,EAAQ,OAAS,cACzD,MAAM,IAAI,UACR,0DACF,EAmBF,GAfID,EAAK,WAAa,SACpBC,EAAQ,SAAWD,EAAK,UAItBA,EAAK,YAAc,QAAaA,EAAK,WAAa,OACpDC,EAAQ,UAAY,OAAOD,EAAK,SAAS,GAIvCA,EAAK,YAAc,SACrBC,EAAQ,UAAY,EAAQD,EAAK,WAI/BA,EAAK,SAAW,OAAW,CAE7B,IAAIY,EAASZ,EAAK,OAIlB,GAAI,CAACpC,GAAiBoC,EAAK,MAAM,EAC/B,MAAM,UAAU,IAAIA,EAAK,MAAM,+BAA+B,EAGhE,GAAIhC,GAAiB,QAAQ4C,EAAO,YAAY,CAAC,IAAM,GACrD,MAAM,UAAU,IAAIZ,EAAK,MAAM,+BAA+B,EAIhEY,EAAS9C,GAAgBkC,EAAK,MAAM,EAGpCC,EAAQ,OAASW,CACnB,CAGIZ,EAAK,SAAW,SAClBL,EAASK,EAAK,QAIhB,KAAKrB,CAAM,EAAIsB,EAMf,IAAMY,EAAK,IAAI,gBAKf,GAJA,KAAKnC,EAAO,EAAImC,EAAG,OACnB,KAAKnC,EAAO,EAAEG,EAAM,EAAI,KAAKA,EAAM,EAG/Bc,GAAU,KAAM,CAClB,GACE,CAACA,GACD,OAAOA,EAAO,SAAY,WAC1B,OAAOA,EAAO,kBAAqB,WAEnC,MAAM,IAAI,UACR,0EACF,EAGF,GAAIA,EAAO,QACTkB,EAAG,MAAMlB,EAAO,MAAM,MACjB,CAKL,KAAKF,EAAgB,EAAIoB,EAEzB,IAAMC,EAAQ,IAAI,QAAQD,CAAE,EACtBjB,EAAQ,UAAY,CACxB,IAAMiB,EAAKC,EAAM,MAAM,EACnBD,IAAO,QACTA,EAAG,MAAM,KAAK,MAAM,CAExB,EAIA,GAAI,EAGE,OAAO1B,IAAoB,YAAcA,GAAgBQ,CAAM,IAAML,IAE9DD,GAAkBM,EAAQ,OAAO,EAAE,QAAUL,KACtDF,GAAgB,IAAKO,CAAM,CAE/B,MAAQ,CAAC,CAEThC,GAAK,iBAAiBgC,EAAQC,CAAK,EACnCF,GAAiB,SAASmB,EAAI,CAAE,OAAAlB,EAAQ,MAAAC,CAAM,CAAC,CACjD,CACF,CAWA,GANA,KAAKnB,EAAQ,EAAI,IAAIlB,GACrB,KAAKkB,EAAQ,EAAEQ,EAAY,EAAIgB,EAAQ,YACvC,KAAKxB,EAAQ,EAAEG,EAAM,EAAI,UACzB,KAAKH,EAAQ,EAAEI,EAAM,EAAI,KAAKA,EAAM,EAGhC8B,IAAS,UAAW,CAGtB,GAAI,CAAC1C,GAAsB,SAASgC,EAAQ,MAAM,EAChD,MAAM,IAAI,UACR,IAAIA,EAAQ,MAAM,kCACpB,EAIF,KAAKxB,EAAQ,EAAEG,EAAM,EAAI,iBAC3B,CAGA,GAAI,OAAO,KAAKoB,CAAI,EAAE,SAAW,EAAG,CAGlC,IAAIe,EAAU,IAAIxD,GAAQ,KAAKkB,EAAQ,CAAC,EAYxC,GATIuB,EAAK,UAAY,SACnBe,EAAUf,EAAK,SAIjB,KAAKvB,EAAQ,EAAEQ,EAAY,EAAE,MAAM,EAI/B8B,EAAQ,YAAY,OAAS,UAC/B,OAAW,CAACC,EAAKC,CAAG,IAAKF,EACvB,KAAKtC,EAAQ,EAAE,OAAOuC,EAAKC,CAAG,OAIhCzD,GAAY,KAAKiB,EAAQ,EAAGsC,CAAO,CAEvC,CAIA,IAAMG,EAAYnB,aAAiBD,EAAUC,EAAMpB,CAAM,EAAE,KAAO,KAKlE,IACGqB,EAAK,MAAQ,MAAQkB,GAAa,QAClCjB,EAAQ,SAAW,OAASA,EAAQ,SAAW,QAEhD,MAAM,IAAI,UAAU,gDAAgD,EAItE,IAAIkB,EAAW,KAGf,GAAInB,EAAK,MAAQ,KAAM,CAIrB,GAAM,CAACoB,EAAeC,CAAW,EAAIjE,GACnC4C,EAAK,KACLC,EAAQ,SACV,EACAkB,EAAWC,EAKPC,GAAe,CAAC,KAAK5C,EAAQ,EAAEQ,EAAY,EAAE,SAAS,cAAc,GACtE,KAAKR,EAAQ,EAAE,OAAO,eAAgB4C,CAAW,CAErD,CAIA,IAAMC,EAAkBH,GAAYD,EAIpC,GAAII,GAAmB,MAAQA,EAAgB,QAAU,KAAM,CAG7D,GAAIH,GAAY,MAAQnB,EAAK,QAAU,KACrC,MAAM,IAAI,UAAU,6DAA6D,EAKnF,GAAIC,EAAQ,OAAS,eAAiBA,EAAQ,OAAS,OACrD,MAAM,IAAI,UACR,gFACF,EAIFA,EAAQ,qBAAuB,EACjC,CAGA,IAAIsB,EAAYD,EAGhB,GAAIH,GAAY,MAAQD,GAAa,KAAM,CAEzC,GAAIvD,GAAK,YAAYuD,EAAU,MAAM,GAAKA,EAAU,OAAO,OACzD,MAAM,IAAI,UACR,8EACF,EAIG3B,KACHA,GAAkB,QAAQ,YAAY,EAAE,iBAI1C,IAAMiC,EAAoB,IAAIjC,GAC9B2B,EAAU,OAAO,YAAYM,CAAiB,EAC9CD,EAAY,CACV,OAAQL,EAAU,OAClB,OAAQA,EAAU,OAClB,OAAQM,EAAkB,QAC5B,CACF,CAGA,KAAK7C,CAAM,EAAE,KAAO4C,CACtB,CAGA,IAAI,QAAU,CACZ,OAAAzC,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKnB,CAAM,EAAE,MACtB,CAGA,IAAI,KAAO,CACT,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxBd,GAAc,KAAKL,CAAM,EAAE,GAAG,CACvC,CAKA,IAAI,SAAW,CACb,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKrB,EAAQ,CACtB,CAIA,IAAI,aAAe,CACjB,OAAAK,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKnB,CAAM,EAAE,WACtB,CAOA,IAAI,UAAY,CAKd,OAJAG,EAAO,WAAW,KAAMgB,CAAO,EAI3B,KAAKnB,CAAM,EAAE,WAAa,cACrB,GAKL,KAAKA,CAAM,EAAE,WAAa,SACrB,eAIF,KAAKA,CAAM,EAAE,SAAS,SAAS,CACxC,CAKA,IAAI,gBAAkB,CACpB,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKnB,CAAM,EAAE,cACtB,CAKA,IAAI,MAAQ,CACV,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKnB,CAAM,EAAE,IACtB,CAKA,IAAI,aAAe,CAEjB,OAAO,KAAKA,CAAM,EAAE,WACtB,CAKA,IAAI,OAAS,CACX,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKnB,CAAM,EAAE,KACtB,CAMA,IAAI,UAAY,CACd,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKnB,CAAM,EAAE,QACtB,CAKA,IAAI,WAAa,CACf,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAIxB,KAAKnB,CAAM,EAAE,SACtB,CAIA,IAAI,WAAa,CACf,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKnB,CAAM,EAAE,SACtB,CAIA,IAAI,oBAAsB,CACxB,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAIxB,KAAKnB,CAAM,EAAE,gBACtB,CAIA,IAAI,qBAAuB,CACzB,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAIxB,KAAKnB,CAAM,EAAE,iBACtB,CAKA,IAAI,QAAU,CACZ,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKpB,EAAO,CACrB,CAEA,IAAI,MAAQ,CACV,OAAAI,EAAO,WAAW,KAAMgB,CAAO,EAExB,KAAKnB,CAAM,EAAE,KAAO,KAAKA,CAAM,EAAE,KAAK,OAAS,IACxD,CAEA,IAAI,UAAY,CACd,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAExB,CAAC,CAAC,KAAKnB,CAAM,EAAE,MAAQhB,GAAK,YAAY,KAAKgB,CAAM,EAAE,KAAK,MAAM,CACzE,CAEA,IAAI,QAAU,CACZ,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAExB,MACT,CAGA,OAAS,CAIP,GAHAhB,EAAO,WAAW,KAAMgB,CAAO,EAG3B,KAAK,UAAY,KAAK,MAAM,OAC9B,MAAM,IAAI,UAAU,UAAU,EAIhC,IAAM2B,EAAgBC,GAAa,KAAK/C,CAAM,CAAC,EAIzCgD,EAAsB,IAAI7B,EAAQN,EAAK,EAC7CmC,EAAoBhD,CAAM,EAAI8C,EAC9BE,EAAoB9C,EAAM,EAAI,KAAKA,EAAM,EACzC8C,EAAoBlD,EAAQ,EAAI,IAAIlB,GACpCoE,EAAoBlD,EAAQ,EAAEQ,EAAY,EAAIwC,EAAc,YAC5DE,EAAoBlD,EAAQ,EAAEG,EAAM,EAAI,KAAKH,EAAQ,EAAEG,EAAM,EAC7D+C,EAAoBlD,EAAQ,EAAEI,EAAM,EAAI,KAAKJ,EAAQ,EAAEI,EAAM,EAG7D,IAAMgC,EAAK,IAAI,gBACf,OAAI,KAAK,OAAO,QACdA,EAAG,MAAM,KAAK,OAAO,MAAM,EAE3BlD,GAAK,iBACH,KAAK,OACL,IAAM,CACJkD,EAAG,MAAM,KAAK,OAAO,MAAM,CAC7B,CACF,EAEFc,EAAoBjD,EAAO,EAAImC,EAAG,OAG3Bc,CACT,CACF,EAEAtE,GAAUwC,EAAO,EAEjB,SAASS,GAAaN,EAAM,CAE1B,IAAMC,EAAU,CACd,OAAQ,MACR,cAAe,GACf,cAAe,GACf,KAAM,KACN,OAAQ,KACR,eAAgB,KAChB,iBAAkB,GAClB,OAAQ,SACR,UAAW,GACX,eAAgB,MAChB,UAAW,GACX,YAAa,GACb,SAAU,KACV,OAAQ,SACR,gBAAiB,SACjB,SAAU,SACV,eAAgB,GAChB,KAAM,UACN,qBAAsB,GACtB,YAAa,cACb,eAAgB,GAChB,MAAO,UACP,SAAU,SACV,UAAW,GACX,4BAA6B,GAC7B,eAAgB,GAChB,iBAAkB,GAClB,kBAAmB,GACnB,eAAgB,GAChB,cAAe,GACf,cAAe,EACf,iBAAkB,QAClB,6CAA8C,GAC9C,KAAM,GACN,kBAAmB,GACnB,GAAGD,EACH,YAAaA,EAAK,YACd,IAAIvC,GAAYuC,EAAK,WAAW,EAChC,IAAIvC,EACV,EACA,OAAAwC,EAAQ,IAAMA,EAAQ,QAAQ,CAAC,EACxBA,CACT,CAGA,SAASyB,GAAczB,EAAS,CAI9B,IAAM2B,EAAatB,GAAY,CAAE,GAAGL,EAAS,KAAM,IAAK,CAAC,EAIzD,OAAIA,EAAQ,MAAQ,OAClB2B,EAAW,KAAOtE,GAAU2C,EAAQ,IAAI,GAInC2B,CACT,CAEA,OAAO,iBAAiB/B,GAAQ,UAAW,CACzC,OAAQrB,GACR,IAAKA,GACL,QAASA,GACT,SAAUA,GACV,MAAOA,GACP,OAAQA,GACR,OAAQA,GACR,YAAaA,GACb,KAAMA,GACN,SAAUA,GACV,oBAAqBA,GACrB,mBAAoBA,GACpB,UAAWA,GACX,UAAWA,GACX,MAAOA,GACP,YAAaA,GACb,UAAWA,GACX,eAAgBA,GAChB,SAAUA,GACV,KAAMA,GACN,CAAC,OAAO,WAAW,EAAG,CACpB,MAAO,UACP,aAAc,EAChB,CACF,CAAC,EAEDM,EAAO,WAAW,QAAUA,EAAO,mBACjCe,EACF,EAGAf,EAAO,WAAW,YAAc,SAAU+C,EAAG,CAC3C,OAAI,OAAOA,GAAM,SACR/C,EAAO,WAAW,UAAU+C,CAAC,EAGlCA,aAAahC,GACRf,EAAO,WAAW,QAAQ+C,CAAC,EAG7B/C,EAAO,WAAW,UAAU+C,CAAC,CACtC,EAEA/C,EAAO,WAAW,YAAcA,EAAO,mBACrC,WACF,EAGAA,EAAO,WAAW,YAAcA,EAAO,oBAAoB,CACzD,CACE,IAAK,SACL,UAAWA,EAAO,WAAW,UAC/B,EACA,CACE,IAAK,UACL,UAAWA,EAAO,WAAW,WAC/B,EACA,CACE,IAAK,OACL,UAAWA,EAAO,kBAChBA,EAAO,WAAW,QACpB,CACF,EACA,CACE,IAAK,WACL,UAAWA,EAAO,WAAW,SAC/B,EACA,CACE,IAAK,iBACL,UAAWA,EAAO,WAAW,UAE7B,cAAeZ,EACjB,EACA,CACE,IAAK,OACL,UAAWY,EAAO,WAAW,UAE7B,cAAeV,EACjB,EACA,CACE,IAAK,cACL,UAAWU,EAAO,WAAW,UAE7B,cAAeT,EACjB,EACA,CACE,IAAK,QACL,UAAWS,EAAO,WAAW,UAE7B,cAAeR,EACjB,EACA,CACE,IAAK,WACL,UAAWQ,EAAO,WAAW,UAE7B,cAAeX,EACjB,EACA,CACE,IAAK,YACL,UAAWW,EAAO,WAAW,SAC/B,EACA,CACE,IAAK,YACL,UAAWA,EAAO,WAAW,OAC/B,EACA,CACE,IAAK,SACL,UAAWA,EAAO,kBACfa,GAAWb,EAAO,WAAW,YAC5Ba,EACA,CAAE,OAAQ,EAAM,CAClB,CACF,CACF,EACA,CACE,IAAK,SACL,UAAWb,EAAO,WAAW,GAC/B,EACA,CACE,IAAK,SACL,UAAWA,EAAO,WAAW,UAC7B,cAAeP,EACjB,CACF,CAAC,EAEDpB,GAAO,QAAU,CAAE,QAAA0C,GAAS,YAAAS,EAAY,IC/6BxC,IAAAwB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,GAAM,CACJ,SAAAC,GACA,iBAAAC,EACA,4BAAAC,GACA,eAAAC,GACA,aAAAC,EACF,EAAI,KACE,CAAE,QAAAC,EAAQ,EAAI,KACd,CAAE,QAAAC,GAAS,YAAAC,EAAY,EAAI,KAC3BC,GAAO,QAAQ,MAAM,EACrB,CACJ,WAAAC,GACA,oBAAAC,GACA,qBAAAC,GACA,eAAAC,GACA,SAAAC,GACA,0BAAAC,GACA,oBAAAC,GACA,kBAAAC,GACA,mCAAAC,GACA,8CAAAC,GACA,uBAAAC,GACA,oBAAAC,GACA,UAAAC,GACA,+BAAAC,GACA,0BAAAC,GACA,2BAAAC,GACA,sBAAAC,GACA,WAAAC,GACA,WAAAC,GACA,YAAAC,GACA,UAAAC,GACA,YAAAC,GACA,cAAAC,GACA,oBAAAC,GACA,iBAAAC,GACA,WAAAC,GACA,qBAAAC,GACA,kBAAAC,EACF,EAAI,KACE,CAAE,OAAAC,GAAQ,SAAAC,GAAU,OAAAC,GAAQ,OAAAC,EAAO,EAAI,KACvCC,GAAS,QAAQ,QAAQ,EACzB,CAAE,kBAAAC,EAAkB,EAAI,KACxB,CACJ,eAAAC,GACA,eAAAC,GACA,YAAAC,GACA,kBAAAC,GACA,YAAAC,GACA,aAAAC,EACF,EAAI,KACE,CAAE,aAAAC,EAAa,EAAI,IACnBC,GAAK,QAAQ,QAAQ,EACrB,CAAE,SAAAC,GAAU,SAAAC,EAAS,EAAI,QAAQ,QAAQ,EACzC,CAAE,iBAAAC,GAAkB,UAAAC,GAAW,WAAAC,GAAY,UAAAC,GAAW,UAAAC,EAAU,EAAI,IACpE,CAAE,iBAAAC,GAAkB,mBAAAC,EAAmB,EAAI,KAC3C,CAAE,gBAAAC,EAAgB,EAAI,QAAQ,YAAY,EAC1C,CAAE,oBAAAC,EAAoB,EAAI,KAC1B,CAAE,OAAAC,EAAO,EAAI,KACb,CAAE,aAAAC,EAAa,EAAI,QAAQ,MAAM,EAGnCC,GACAC,GAAiB,WAAW,eAE1BC,GAAN,cAAoBhB,EAAG,CACrB,YAAaiB,EAAY,CACvB,MAAM,EAEN,KAAK,WAAaA,EAClB,KAAK,WAAa,KAClB,KAAK,KAAO,GACZ,KAAK,MAAQ,UAMb,KAAK,gBAAgB,EAAE,CACzB,CAEA,UAAWC,EAAQ,CACb,KAAK,QAAU,YAInB,KAAK,MAAQ,aACb,KAAK,YAAY,QAAQA,CAAM,EAC/B,KAAK,KAAK,aAAcA,CAAM,EAChC,CAGA,MAAOC,EAAO,CACR,KAAK,QAAU,YAKnB,KAAK,MAAQ,UAIRA,IACHA,EAAQ,IAAIrB,GAAa,6BAA8B,YAAY,GAQrE,KAAK,sBAAwBqB,EAE7B,KAAK,YAAY,QAAQA,CAAK,EAC9B,KAAK,KAAK,aAAcA,CAAK,EAC/B,CACF,EAGA,eAAeC,GAAOC,EAAOC,EAAO,CAAC,EAAG,CACtCV,GAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,kBAAmB,CAAC,EAGvE,IAAMW,EAAIhD,GAAsB,EAK5BiD,EAEJ,GAAI,CACFA,EAAgB,IAAIpE,GAAQiE,EAAOC,CAAI,CACzC,OAASG,EAAG,CACV,OAAAF,EAAE,OAAOE,CAAC,EACHF,EAAE,OACX,CAGA,IAAMG,EAAUF,EAAcrC,EAAM,EAGpC,GAAIqC,EAAc,OAAO,QAGvB,OAAAG,GAAWJ,EAAGG,EAAS,KAAMF,EAAc,OAAO,MAAM,EAGjDD,EAAE,QAIUG,EAAQ,OAAO,cAIlB,aAAa,OAAS,6BACtCA,EAAQ,eAAiB,QAI3B,IAAIE,EAAiB,KAGfC,EAAgB,KAGlBC,EAAiB,GAGjBC,EAAa,KAGjB,OAAA5B,GACEqB,EAAc,OACd,IAAM,CAEJM,EAAiB,GAGjBvC,GAAOwC,GAAc,IAAI,EAGzBA,EAAW,MAAMP,EAAc,OAAO,MAAM,EAI5CG,GAAWJ,EAAGG,EAASE,EAAgBJ,EAAc,OAAO,MAAM,CACpE,CACF,EAoDAO,EAAaC,GAAS,CACpB,QAAAN,EACA,yBAlDuBO,GACvBC,GAAwBD,EAAU,OAAO,EAkDzC,gBA5CuBA,GAAa,CAEpC,GAAI,CAAAH,EAKJ,IAAIG,EAAS,QAAS,CAQpBN,GAAWJ,EAAGG,EAASE,EAAgBG,EAAW,qBAAqB,EACvE,MACF,CAIA,GAAIE,EAAS,OAAS,QAAS,CAC7BV,EAAE,OACA,OAAO,OAAO,IAAI,UAAU,cAAc,EAAG,CAAE,MAAOU,EAAS,KAAM,CAAC,CACxE,EACA,MACF,CAIAL,EAAiB,IAAI9E,GACrB8E,EAAezC,EAAM,EAAI8C,EACzBL,EAAetC,EAAM,EAAIuC,EACzBD,EAAexC,EAAQ,EAAEW,EAAY,EAAIkC,EAAS,YAClDL,EAAexC,EAAQ,EAAEC,EAAM,EAAI,YACnCuC,EAAexC,EAAQ,EAAEE,EAAM,EAAIuC,EAGnCN,EAAE,QAAQK,CAAc,EAC1B,EAME,WAAYN,EAAK,YAAcX,GAAoB,CACrD,CAAC,EAGMY,EAAE,OACX,CAGA,SAASW,GAAyBD,EAAUE,EAAgB,QAAS,CAOnE,GALIF,EAAS,OAAS,SAAWA,EAAS,SAKtC,CAACA,EAAS,SAAS,OACrB,OAIF,IAAMG,EAAcH,EAAS,QAAQ,CAAC,EAGlCI,EAAaJ,EAAS,WAGtBK,EAAaL,EAAS,WAGrBhD,GAAqBmD,CAAW,GAKjCC,IAAe,OAKdA,EAAW,oBAEdA,EAAapE,GAAuB,CAClC,UAAWoE,EAAW,SACxB,CAAC,EAGDC,EAAa,IAQfD,EAAW,QAAU/D,GAA2B,EAGhD2D,EAAS,WAAaI,EAItBE,GACEF,EACAD,EACAD,EACA,WACAG,CACF,EACF,CAGA,SAASC,GAAoBF,EAAYD,EAAaD,EAAeK,EAAYF,EAAY,EACvFhC,GAAY,IAAOA,KAAc,IAAMC,IAAa,IACtD,YAAY,mBAAmB8B,EAAYD,EAAY,KAAMD,EAAeK,EAAYF,CAAU,CAEtG,CAGA,SAASX,GAAYJ,EAAGG,EAASE,EAAgBT,EAAO,CAwBtD,GApBKA,IACHA,EAAQ,IAAIrB,GAAa,6BAA8B,YAAY,GAIrEyB,EAAE,OAAOJ,CAAK,EAIVO,EAAQ,MAAQ,MAAQrB,GAAWqB,EAAQ,MAAM,MAAM,GACzDA,EAAQ,KAAK,OAAO,OAAOP,CAAK,EAAE,MAAOsB,GAAQ,CAC/C,GAAIA,EAAI,OAAS,oBAIjB,MAAMA,CACR,CAAC,EAICb,GAAkB,KACpB,OAIF,IAAMK,EAAWL,EAAezC,EAAM,EAIlC8C,EAAS,MAAQ,MAAQ5B,GAAW4B,EAAS,MAAM,MAAM,GAC3DA,EAAS,KAAK,OAAO,OAAOd,CAAK,EAAE,MAAOsB,GAAQ,CAChD,GAAIA,EAAI,OAAS,oBAIjB,MAAMA,CACR,CAAC,CAEL,CAGA,SAAST,GAAU,CACjB,QAAAN,EACA,8BAAAgB,EACA,wBAAAC,EACA,gBAAAC,EACA,yBAAAC,EACA,2BAAAC,EACA,iBAAAC,EAAmB,GACnB,WAAA9B,CACF,EAAG,CAED,IAAI+B,EAAkB,KAGlBC,EAAgC,GAGhCvB,EAAQ,QAAU,OAEpBsB,EAAkBtB,EAAQ,OAAO,aAIjCuB,EACEvB,EAAQ,OAAO,+BAUnB,IAAMwB,EAAa5E,GAA2B2E,CAA6B,EACrEZ,EAAapE,GAAuB,CACxC,UAAWiF,CACb,CAAC,EAYKC,EAAc,CAClB,WAAY,IAAInC,GAAMC,CAAU,EAChC,QAAAS,EACA,WAAAW,EACA,8BAAAK,EACA,wBAAAC,EACA,gBAAAC,EACA,2BAAAE,EACA,yBAAAD,EACA,gBAAAG,EACA,8BAAAC,CACF,EAMA,OAAA1D,GAAO,CAACmC,EAAQ,MAAQA,EAAQ,KAAK,MAAM,EAKvCA,EAAQ,SAAW,WAErBA,EAAQ,OACNA,EAAQ,QAAQ,cAAc,aAAa,OAAS,SAChDA,EAAQ,OACR,aAKJA,EAAQ,SAAW,WAErBA,EAAQ,OAASA,EAAQ,QAAQ,QAO/BA,EAAQ,kBAAoB,WAG1BA,EAAQ,QAAU,KACpBA,EAAQ,gBAAkBjE,GACxBiE,EAAQ,OAAO,eACjB,EAIAA,EAAQ,gBAAkBlE,GAAoB,GAK7CkE,EAAQ,YAAY,SAAS,QAAQ,GAiBxCA,EAAQ,YAAY,OAAO,SAfb,KAe4B,EAMvCA,EAAQ,YAAY,SAAS,iBAAiB,GACjDA,EAAQ,YAAY,OAAO,kBAAmB,GAAG,EAM/CA,EAAQ,SAKR7B,GAAY,SAAS6B,EAAQ,WAAW,EAK5C0B,GAAUD,CAAW,EAClB,MAAMV,GAAO,CACZU,EAAY,WAAW,UAAUV,CAAG,CACtC,CAAC,EAGIU,EAAY,UACrB,CAGA,eAAeC,GAAWD,EAAaE,EAAY,GAAO,CAExD,IAAM3B,EAAUyB,EAAY,QAGxBlB,EAAW,KAyHf,GArHIP,EAAQ,eAAiB,CAAC1C,GAAWlB,GAAkB4D,CAAO,CAAC,IACjEO,EAAWlF,EAAiB,iBAAiB,GAO/CiB,GAA8C0D,CAAO,EAKjDhE,GAAegE,CAAO,IAAM,YAC9BO,EAAWlF,EAAiB,UAAU,GAOpC2E,EAAQ,iBAAmB,KAC7BA,EAAQ,eAAiBA,EAAQ,gBAAgB,gBAK/CA,EAAQ,WAAa,gBACvBA,EAAQ,SAAWrD,GAA0BqD,CAAO,GAkBlDO,IAAa,OACfA,EAAW,MAAO,SAAY,CAC5B,IAAMqB,EAAaxF,GAAkB4D,CAAO,EAE5C,OAGGjD,GAAW6E,EAAY5B,EAAQ,GAAG,GAAKA,EAAQ,mBAAqB,SAEpE4B,EAAW,WAAa,SAExB5B,EAAQ,OAAS,YAAcA,EAAQ,OAAS,aAGjDA,EAAQ,iBAAmB,QAGpB,MAAM6B,GAAYJ,CAAW,GAIlCzB,EAAQ,OAAS,cAEZ3E,EAAiB,sCAAsC,EAI5D2E,EAAQ,OAAS,UAGfA,EAAQ,WAAa,SAChB3E,EACL,wDACF,GAIF2E,EAAQ,iBAAmB,SAGpB,MAAM6B,GAAYJ,CAAW,GAIjClE,GAAqBnB,GAAkB4D,CAAO,CAAC,GAmBpDA,EAAQ,iBAAmB,OAGpB,MAAM8B,GAAUL,CAAW,GApBzBpG,EAAiB,qCAAqC,CAqBjE,GAAG,GAIDsG,EACF,OAAOpB,EAKLA,EAAS,SAAW,GAAK,CAACA,EAAS,mBAEjCP,EAAQ,iBAeRA,EAAQ,mBAAqB,QAC/BO,EAAWhF,GAAegF,EAAU,OAAO,EAClCP,EAAQ,mBAAqB,OACtCO,EAAWhF,GAAegF,EAAU,MAAM,EACjCP,EAAQ,mBAAqB,SACtCO,EAAWhF,GAAegF,EAAU,QAAQ,EAE5C1C,GAAO,EAAK,GAMhB,IAAIkE,EACFxB,EAAS,SAAW,EAAIA,EAAWA,EAAS,iBAkD9C,GA9CIwB,EAAiB,QAAQ,SAAW,GACtCA,EAAiB,QAAQ,KAAK,GAAG/B,EAAQ,OAAO,EAK7CA,EAAQ,oBACXO,EAAS,kBAAoB,IAgB7BA,EAAS,OAAS,UAClBwB,EAAiB,SAAW,KAC5BA,EAAiB,gBACjB,CAAC/B,EAAQ,QAAQ,SAAS,OAAO,IAEjCO,EAAWwB,EAAmB1G,EAAiB,GAQ/CkF,EAAS,SAAW,IACnBP,EAAQ,SAAW,QAClBA,EAAQ,SAAW,WACnBhC,GAAe,SAAS+D,EAAiB,MAAM,KAEjDA,EAAiB,KAAO,KACxBN,EAAY,WAAW,KAAO,IAI5BzB,EAAQ,UAAW,CAGrB,IAAMgC,EAAoBxC,GACxByC,GAAYR,EAAapG,EAAiBmE,CAAM,CAAC,EAInD,GAAIQ,EAAQ,mBAAqB,UAAYO,EAAS,MAAQ,KAAM,CAClEyB,EAAiBzB,EAAS,KAAK,EAC/B,MACF,CAGA,IAAM2B,EAAeC,GAAU,CAG7B,GAAI,CAACtG,GAAWsG,EAAOnC,EAAQ,SAAS,EAAG,CACzCgC,EAAiB,oBAAoB,EACrC,MACF,CAGAzB,EAAS,KAAOzC,GAAkBqE,CAAK,EAAE,CAAC,EAG1CF,GAAYR,EAAalB,CAAQ,CACnC,EAGA,MAAMpD,GAAcoD,EAAS,KAAM2B,EAAaF,CAAgB,CAClE,MAEEC,GAAYR,EAAalB,CAAQ,CAErC,CAIA,eAAesB,GAAaJ,EAAa,CAKvC,GAAIzE,GAAYyE,CAAW,GAAKA,EAAY,QAAQ,gBAAkB,EACpE,OAAOnG,GAA4BmG,CAAW,EAIhD,GAAM,CAAE,QAAAzB,CAAQ,EAAIyB,EAEd,CAAE,SAAUW,CAAO,EAAIhG,GAAkB4D,CAAO,EAGtD,OAAQoC,EAAQ,CACd,IAAK,SAMH,OAAO/G,EAAiB,+BAA+B,EAEzD,IAAK,QAAS,CACP+D,KACHA,GAAmB,QAAQ,QAAQ,EAAE,kBAIvC,IAAMiD,EAAejG,GAAkB4D,CAAO,EAI9C,GAAIqC,EAAa,OAAO,SAAW,EACjC,OAAOhH,EAAiB,iDAAiD,EAG3E,IAAMiH,EAAqBlD,GAAiBiD,EAAa,SAAS,CAAC,EAInE,GAAIrC,EAAQ,SAAW,OAAS,CAAClD,GAAWwF,CAAkB,EAC5D,OAAOjH,EAAiB,gBAAgB,EAI1C,IAAMkH,EAAezE,GAAkBwE,CAAkB,EAGnDE,EAAOD,EAAa,CAAC,EAGrBE,EAASpF,GAAiB,GAAGmF,EAAK,MAAM,EAAE,EAG1CE,EAAOH,EAAa,CAAC,GAAK,GAI1BhC,EAAW/E,GAAa,CAC5B,WAAY,KACZ,YAAa,CACX,CAAC,iBAAkB,CAAE,KAAM,iBAAkB,MAAOiH,CAAO,CAAC,EAC5D,CAAC,eAAgB,CAAE,KAAM,eAAgB,MAAOC,CAAK,CAAC,CACxD,CACF,CAAC,EAED,OAAAnC,EAAS,KAAOiC,EAETjC,CACT,CACA,IAAK,QAAS,CAGZ,IAAMqB,EAAaxF,GAAkB4D,CAAO,EACtC2C,EAAgB7D,GAAiB8C,CAAU,EAIjD,GAAIe,IAAkB,UACpB,OAAOtH,EAAiB,8BAA8B,EAIxD,IAAMuH,EAAW7D,GAAmB4D,EAAc,QAAQ,EAK1D,OAAOnH,GAAa,CAClB,WAAY,KACZ,YAAa,CACX,CAAC,eAAgB,CAAE,KAAM,eAAgB,MAAOoH,CAAS,CAAC,CAC5D,EACA,KAAM9E,GAAkB6E,EAAc,IAAI,EAAE,CAAC,CAC/C,CAAC,CACH,CACA,IAAK,QAGH,OAAOtH,EAAiB,2BAA2B,EAErD,IAAK,QACL,IAAK,SAGH,OAAO,MAAMyG,GAAUL,CAAW,EAC/B,MAAOV,GAAQ1F,EAAiB0F,CAAG,CAAC,EAEzC,QACE,OAAO1F,EAAiB,gBAAgB,CAE5C,CACF,CAGA,SAASwH,GAAkBpB,EAAalB,EAAU,CAEhDkB,EAAY,QAAQ,KAAO,GAKvBA,EAAY,qBAAuB,MACrC,eAAe,IAAMA,EAAY,oBAAoBlB,CAAQ,CAAC,CAElE,CAGA,eAAe0B,GAAaR,EAAalB,EAAU,CAE7CA,EAAS,OAAS,UAEpBA,EAAS,QAAU,CAACkB,EAAY,QAAQ,QAAQ,CAAC,CAAC,EAIlDlB,EAAS,WAAahE,GAAuB,CAC3C,UAAWkF,EAAY,WAAW,SACpC,CAAC,GAIH,IAAMN,EAA2B,IAAM,CAErCM,EAAY,QAAQ,KAAO,GAKvBA,EAAY,0BAA4B,MAC1C,eAAe,IAAMA,EAAY,yBAAyBlB,CAAQ,CAAC,CAEvE,EAUA,GALIkB,EAAY,iBAAmB,MACjC,eAAe,IAAMA,EAAY,gBAAgBlB,CAAQ,CAAC,EAIxDA,EAAS,MAAQ,KACnBY,EAAyB,MACpB,CAOL,IAAM2B,EAA6B,CAACC,EAAO1C,IAAe,CACxDA,EAAW,QAAQ0C,CAAK,CAC1B,EAIMC,EAAkB,IAAIhE,GAAgB,CAC1C,OAAS,CAAC,EACV,UAAW8D,EACX,MAAO3B,CACT,EAAG,CACD,MAAQ,CACN,MAAO,EACT,CACF,EAAG,CACD,MAAQ,CACN,MAAO,EACT,CACF,CAAC,EAGDZ,EAAS,KAAO,CAAE,OAAQA,EAAS,KAAK,OAAO,YAAYyC,CAAe,CAAE,CAC9E,CAGA,GAAIvB,EAAY,4BAA8B,KAAM,CAGlD,IAAMS,EAAee,GAAgBxB,EAAY,2BAA2BlB,EAAU0C,CAAW,EAI3FjB,EAAoBkB,GAAYzB,EAAY,2BAA2BlB,EAAU2C,CAAO,EAI1F3C,EAAS,MAAQ,KACnB,eAAe,IAAM2B,EAAY,IAAI,CAAC,EAItC,MAAM/E,GAAcoD,EAAS,KAAM2B,EAAaF,CAAgB,CAEpE,CACF,CAGA,eAAeF,GAAWL,EAAa,CAErC,IAAMzB,EAAUyB,EAAY,QAGxBlB,EAAW,KAGX4C,EAAiB,KAGfxC,EAAac,EAAY,WAQ/B,GALIzB,EAAQ,eAKRO,IAAa,KAAM,CAgBrB,GAVIP,EAAQ,WAAa,WACvBA,EAAQ,eAAiB,QAK3BmD,EAAiB5C,EAAW,MAAM6C,GAAwB3B,CAAW,EAKnEzB,EAAQ,mBAAqB,QAC7BvD,GAAUuD,EAASO,CAAQ,IAAM,UAEjC,OAAOlF,EAAiB,cAAc,EAKpCY,GAAS+D,EAASO,CAAQ,IAAM,YAClCP,EAAQ,kBAAoB,GAEhC,CAMA,OACGA,EAAQ,mBAAqB,UAAYO,EAAS,OAAS,WAC5D7D,GACEsD,EAAQ,OACRA,EAAQ,OACRA,EAAQ,YACRmD,CACF,IAAM,UAEC9H,EAAiB,SAAS,GAI/B0C,GAAe,SAASoF,EAAe,MAAM,IAK3CnD,EAAQ,WAAa,UACvByB,EAAY,WAAW,WAAW,QAAQ,EAIxCzB,EAAQ,WAAa,QAEvBO,EAAWlF,EAAiB,qBAAqB,EACxC2E,EAAQ,WAAa,SAM9BO,EAAW4C,EACFnD,EAAQ,WAAa,SAG9BO,EAAW,MAAM8C,GAAkB5B,EAAalB,CAAQ,EAExD1C,GAAO,EAAK,GAKhB0C,EAAS,WAAaI,EAGfJ,EACT,CAGA,eAAe8C,GAAmB5B,EAAalB,EAAU,CAEvD,IAAMP,EAAUyB,EAAY,QAItB0B,EAAiB5C,EAAS,iBAC5BA,EAAS,iBACTA,EAIA+C,EAEJ,GAAI,CAOF,GANAA,EAAcnH,GACZgH,EACA/G,GAAkB4D,CAAO,EAAE,IAC7B,EAGIsD,GAAe,KACjB,OAAO/C,CAEX,OAASQ,EAAK,CAEZ,OAAO1F,EAAiB0F,CAAG,CAC7B,CAIA,GAAI,CAACxD,GAAqB+F,CAAW,EACnC,OAAOjI,EAAiB,qCAAqC,EAI/D,GAAI2E,EAAQ,gBAAkB,GAC5B,OAAO3E,EAAiB,yBAAyB,EASnD,GALA2E,EAAQ,eAAiB,EAMvBA,EAAQ,OAAS,SAChBsD,EAAY,UAAYA,EAAY,WACrC,CAACvG,GAAWiD,EAASsD,CAAW,EAEhC,OAAOjI,EAAiB,kDAAkD,EAK5E,GACE2E,EAAQ,mBAAqB,SAC5BsD,EAAY,UAAYA,EAAY,UAErC,OAAOjI,EACL,wDACF,EAKF,GACE8H,EAAe,SAAW,KAC1BnD,EAAQ,MAAQ,MAChBA,EAAQ,KAAK,QAAU,KAEvB,OAAO3E,EAAiB,EAM1B,GACG,CAAC,IAAK,GAAG,EAAE,SAAS8H,EAAe,MAAM,GAAKnD,EAAQ,SAAW,QACjEmD,EAAe,SAAW,KACzB,CAAC,CAAC,MAAO,MAAM,EAAE,SAASnD,EAAQ,MAAM,EAC1C,CAGAA,EAAQ,OAAS,MACjBA,EAAQ,KAAO,KAIf,QAAWuD,KAAcrF,GACvB8B,EAAQ,YAAY,OAAOuD,CAAU,CAEzC,CAKKxG,GAAWX,GAAkB4D,CAAO,EAAGsD,CAAW,GAErDtD,EAAQ,YAAY,OAAO,eAAe,EAKxCA,EAAQ,MAAQ,OAClBnC,GAAOmC,EAAQ,KAAK,QAAU,IAAI,EAClCA,EAAQ,KAAOlC,GAAkBkC,EAAQ,KAAK,MAAM,EAAE,CAAC,GAIzD,IAAMW,EAAac,EAAY,WAK/B,OAAAd,EAAW,gBAAkBA,EAAW,sBACtC/D,GAA2B6E,EAAY,6BAA6B,EAIlEd,EAAW,oBAAsB,IACnCA,EAAW,kBAAoBA,EAAW,WAI5CX,EAAQ,QAAQ,KAAKsD,CAAW,EAIhCjH,GAAmC2D,EAASmD,CAAc,EAGnDzB,GAAUD,EAAa,EAAI,CACpC,CAGA,eAAe2B,GACb3B,EACA+B,EAAwB,GACxBC,EAAuB,GACvB,CAEA,IAAMzD,EAAUyB,EAAY,QAGxBiC,EAAkB,KAGlBC,EAAc,KAGdpD,EAAW,KAMTqD,EAAY,KAGZC,EAAmB,GAOrB7D,EAAQ,SAAW,aAAeA,EAAQ,WAAa,SACzD0D,EAAkBjC,EAClBkC,EAAc3D,IAKd2D,EAAchI,GAAYqE,CAAO,EAGjC0D,EAAkB,CAAE,GAAGjC,CAAY,EAGnCiC,EAAgB,QAAUC,GAI5B,IAAMG,EACJ9D,EAAQ,cAAgB,WACvBA,EAAQ,cAAgB,eACvBA,EAAQ,mBAAqB,QAI3B+D,EAAgBJ,EAAY,KAAOA,EAAY,KAAK,OAAS,KAG/DK,EAA2B,KAgJ/B,GA3IEL,EAAY,MAAQ,MACpB,CAAC,OAAQ,KAAK,EAAE,SAASA,EAAY,MAAM,IAE3CK,EAA2B,KAKzBD,GAAiB,OACnBC,EAA2B3G,GAAiB,GAAG0G,CAAa,EAAE,GAM5DC,GAA4B,MAC9BL,EAAY,YAAY,OAAO,iBAAkBK,CAAwB,EAQvED,GAAiB,MAAQJ,EAAY,UAOrCA,EAAY,oBAAoB,KAClCA,EAAY,YAAY,OAAO,UAAWtG,GAAiBsG,EAAY,SAAS,IAAI,CAAC,EAIvFzH,GAA0ByH,CAAW,EAGrCnH,GAAoBmH,CAAW,EAK1BA,EAAY,YAAY,SAAS,YAAY,GAChDA,EAAY,YAAY,OAAO,aAAc,QAAQ,EAQrDA,EAAY,QAAU,YACrBA,EAAY,YAAY,SAAS,mBAAmB,GACnDA,EAAY,YAAY,SAAS,eAAe,GAChDA,EAAY,YAAY,SAAS,qBAAqB,GACtDA,EAAY,YAAY,SAAS,UAAU,GAC3CA,EAAY,YAAY,SAAS,UAAU,KAE7CA,EAAY,MAAQ,YAQpBA,EAAY,QAAU,YACtB,CAACA,EAAY,8CACb,CAACA,EAAY,YAAY,SAAS,eAAe,GAEjDA,EAAY,YAAY,OAAO,gBAAiB,WAAW,GAIzDA,EAAY,QAAU,YAAcA,EAAY,QAAU,YAGvDA,EAAY,YAAY,SAAS,QAAQ,GAC5CA,EAAY,YAAY,OAAO,SAAU,UAAU,EAKhDA,EAAY,YAAY,SAAS,eAAe,GACnDA,EAAY,YAAY,OAAO,gBAAiB,UAAU,GAM1DA,EAAY,YAAY,SAAS,OAAO,GAC1CA,EAAY,YAAY,OAAO,kBAAmB,UAAU,EAMzDA,EAAY,YAAY,SAAS,iBAAiB,IACjDnG,GAAkBpB,GAAkBuH,CAAW,CAAC,EAClDA,EAAY,YAAY,OAAO,kBAAmB,mBAAmB,EAErEA,EAAY,YAAY,OAAO,kBAAmB,eAAe,GAsBjEC,GAAa,OACfD,EAAY,MAAQ,YAKlBA,EAAY,OAAS,YAAcA,EAAY,KAQ/CpD,GAAY,KAAM,CAGpB,GAAIoD,EAAY,OAAS,iBACvB,OAAOtI,EAAiB,gBAAgB,EAK1C,IAAM4I,EAAkB,MAAMC,GAC5BR,EACAI,EACAL,CACF,EAOE,CAACxF,GAAY,SAAS0F,EAAY,MAAM,GACxCM,EAAgB,QAAU,KAC1BA,EAAgB,QAAU,IAOxBJ,GAAoBI,EAAgB,OAKpC1D,GAAY,OAEdA,EAAW0D,EAMf,CAoBA,GAjBA1D,EAAS,QAAU,CAAC,GAAGoD,EAAY,OAAO,EAItCA,EAAY,YAAY,SAAS,OAAO,IAC1CpD,EAAS,eAAiB,IAI5BA,EAAS,2BAA6BuD,EAQlCvD,EAAS,SAAW,IAEtB,OAAIP,EAAQ,SAAW,YACd3E,EAAiB,EAMtB2B,GAAYyE,CAAW,EAClBnG,GAA4BmG,CAAW,EAUzCpG,EAAiB,+BAA+B,EAIzD,GAEEkF,EAAS,SAAW,KAEpB,CAACkD,IAEAzD,EAAQ,MAAQ,MAAQA,EAAQ,KAAK,QAAU,MAChD,CAIA,GAAIhD,GAAYyE,CAAW,EACzB,OAAOnG,GAA4BmG,CAAW,EAShDA,EAAY,WAAW,WAAW,QAAQ,EAE1ClB,EAAW,MAAM6C,GACf3B,EACA+B,EACA,EACF,CACF,CAQA,OAAOjD,CACT,CAGA,eAAe2D,GACbzC,EACAqC,EAAqB,GACrBK,EAAqB,GACrB,CACAtG,GAAO,CAAC4D,EAAY,WAAW,YAAcA,EAAY,WAAW,WAAW,SAAS,EAExFA,EAAY,WAAW,WAAa,CAClC,MAAO,KACP,UAAW,GACX,QAASV,EAAK,CACP,KAAK,YACR,KAAK,UAAY,GACjB,KAAK,QAAQA,GAAO,IAAI3C,GAAa,6BAA8B,YAAY,CAAC,EAEpF,CACF,EAGA,IAAM4B,EAAUyB,EAAY,QAGxBlB,EAAW,KAGTI,EAAac,EAAY,WAKb,MAGD,OACfzB,EAAQ,MAAQ,YASlB,IAAMoE,EAAgBD,EAAqB,MAAQ,KAG/CnE,EAAQ,KAgEZ,IAAIqE,EAAc,KAIlB,GAAIrE,EAAQ,MAAQ,MAAQyB,EAAY,wBACtC,eAAe,IAAMA,EAAY,wBAAwB,CAAC,UACjDzB,EAAQ,MAAQ,KAAM,CAI/B,IAAMsE,EAAmB,gBAAkBnC,EAAO,CAE5CnF,GAAYyE,CAAW,IAK3B,MAAMU,EAINV,EAAY,gCAAgCU,EAAM,UAAU,EAC9D,EAGMoC,EAAmB,IAAM,CAEzBvH,GAAYyE,CAAW,GAMvBA,EAAY,yBACdA,EAAY,wBAAwB,CAExC,EAGMO,EAAoBjC,GAAM,CAE1B/C,GAAYyE,CAAW,IAKvB1B,EAAE,OAAS,aACb0B,EAAY,WAAW,MAAM,EAE7BA,EAAY,WAAW,UAAU1B,CAAC,EAEtC,EAIAsE,EAAe,iBAAoB,CACjC,GAAI,CACF,cAAiBlC,KAASnC,EAAQ,KAAK,OACrC,MAAQsE,EAAiBnC,CAAK,EAEhCoC,EAAiB,CACnB,OAASxD,EAAK,CACZiB,EAAiBjB,CAAG,CACtB,CACF,EAAG,CACL,CAEA,GAAI,CAEF,GAAM,CAAE,KAAAyB,EAAM,OAAAgC,EAAQ,WAAAC,EAAY,YAAAC,EAAa,OAAAC,CAAO,EAAI,MAAMC,EAAS,CAAE,KAAMP,CAAY,CAAC,EAE9F,GAAIM,EACFpE,EAAW/E,GAAa,CAAE,OAAAgJ,EAAQ,WAAAC,EAAY,YAAAC,EAAa,OAAAC,CAAO,CAAC,MAC9D,CACL,IAAME,EAAWrC,EAAK,OAAO,aAAa,EAAE,EAC5Cf,EAAY,WAAW,KAAO,IAAMoD,EAAS,KAAK,EAElDtE,EAAW/E,GAAa,CAAE,OAAAgJ,EAAQ,WAAAC,EAAY,YAAAC,CAAY,CAAC,CAC7D,CACF,OAAS3D,EAAK,CAEZ,OAAIA,EAAI,OAAS,cAEfU,EAAY,WAAW,WAAW,QAAQ,EAGnCnG,GAA4BmG,CAAW,GAGzCpG,EAAiB0F,CAAG,CAC7B,CAIA,IAAM+D,EAAgB,IAAM,CAC1BrD,EAAY,WAAW,OAAO,CAChC,EAIMsD,EAAmBvF,GAAW,CAClCiC,EAAY,WAAW,MAAMjC,CAAM,CACrC,EAcKH,KACHA,GAAiB,QAAQ,YAAY,EAAE,gBAGzC,IAAM2F,EAAS,IAAI3F,GACjB,CACE,MAAM,MAAOgB,EAAY,CACvBoB,EAAY,WAAW,WAAapB,CACtC,EACA,MAAM,KAAMA,EAAY,CACtB,MAAMyE,EAAczE,CAAU,CAChC,EACA,MAAM,OAAQb,EAAQ,CACpB,MAAMuF,EAAgBvF,CAAM,CAC9B,CACF,EACA,CACE,cAAe,EACf,MAAQ,CACN,MAAO,EACT,CACF,CACF,EAKAe,EAAS,KAAO,CAAE,OAAAyE,CAAO,EAmBzBvD,EAAY,WAAW,GAAG,aAAcwD,CAAS,EACjDxD,EAAY,WAAW,OAAS,SAAY,CAE1C,OAAa,CAKX,IAAIU,EACA+C,EACJ,GAAI,CACF,GAAM,CAAE,KAAAC,EAAM,MAAAC,CAAM,EAAI,MAAM3D,EAAY,WAAW,KAAK,EAE1D,GAAIxE,GAAUwE,CAAW,EACvB,MAGFU,EAAQgD,EAAO,OAAYC,CAC7B,OAASrE,EAAK,CACRU,EAAY,WAAW,OAAS,CAACd,EAAW,gBAE9CwB,EAAQ,QAERA,EAAQpB,EAIRmE,EAAY,GAEhB,CAEA,GAAI/C,IAAU,OAAW,CAKvB/E,GAAoBqE,EAAY,WAAW,UAAU,EAErDoB,GAAiBpB,EAAalB,CAAQ,EAEtC,MACF,CAMA,GAHAI,EAAW,iBAAmBwB,GAAO,YAAc,EAG/C+C,EAAW,CACbzD,EAAY,WAAW,UAAUU,CAAK,EACtC,MACF,CAOA,GAHAV,EAAY,WAAW,WAAW,QAAQ,IAAI,WAAWU,CAAK,CAAC,EAG3DzD,GAAUsG,CAAM,EAAG,CACrBvD,EAAY,WAAW,UAAU,EACjC,MACF,CAIA,GAAI,CAACA,EAAY,WAAW,WAAW,YACrC,MAEJ,CACF,EAGA,SAASwD,EAAWzF,EAAQ,CAEtBvC,GAAUwE,CAAW,GAEvBlB,EAAS,QAAU,GAMf5B,GAAWqG,CAAM,GACnBvD,EAAY,WAAW,WAAW,MAChCA,EAAY,WAAW,qBACzB,GAIE9C,GAAWqG,CAAM,GACnBvD,EAAY,WAAW,WAAW,MAAM,IAAI,UAAU,aAAc,CAClE,MAAOvE,GAAYsC,CAAM,EAAIA,EAAS,MACxC,CAAC,CAAC,EAMNiC,EAAY,WAAW,WAAW,QAAQ,CAC5C,CAGA,OAAOlB,EAEP,eAAeqE,EAAU,CAAE,KAAApC,CAAK,EAAG,CACjC,IAAM6C,EAAMjJ,GAAkB4D,CAAO,EAE/BsF,EAAQ7D,EAAY,WAAW,WAErC,OAAO,IAAI,QAAQ,CAAC8D,EAASC,IAAWF,EAAM,SAC5C,CACE,KAAMD,EAAI,SAAWA,EAAI,OACzB,OAAQA,EAAI,OACZ,OAAQrF,EAAQ,OAChB,KAAMyB,EAAY,WAAW,WAAW,aAAezB,EAAQ,MAAQA,EAAQ,KAAK,OAASwC,EAC7F,QAASxC,EAAQ,YAAY,QAC7B,gBAAiB,EACjB,QAASA,EAAQ,OAAS,YAAc,YAAc,MACxD,EACA,CACE,KAAM,KACN,MAAO,KAEP,UAAWyF,EAAO,CAEhB,GAAM,CAAE,WAAAC,CAAW,EAAIjE,EAAY,WAE/BiE,EAAW,UACbD,EAAM,IAAIrH,GAAa,6BAA8B,YAAY,CAAC,GAElEqD,EAAY,WAAW,GAAG,aAAcgE,CAAK,EAC7C,KAAK,MAAQC,EAAW,MAAQD,EAEpC,EAEA,UAAWjB,EAAQE,EAAaiB,EAAQlB,EAAY,CAClD,GAAID,EAAS,IACX,OAGF,IAAIoB,EAAU,CAAC,EACXC,EAAW,GAETC,GAAU,IAAIrK,GACpB,QAASsK,GAAI,EAAGA,GAAIrB,EAAY,OAAQqB,IAAK,EAAG,CAC9C,IAAMC,GAAMtB,EAAYqB,GAAI,CAAC,EAAE,SAAS,QAAQ,EAC1CE,GAAMvB,EAAYqB,GAAI,CAAC,EAAE,SAAS,QAAQ,EAE5CC,GAAI,YAAY,IAAM,mBAGxBJ,EAAUK,GAAI,YAAY,EAAE,MAAM,GAAG,EAAE,IAAKC,GAAMA,EAAE,KAAK,CAAC,EAAE,QAAQ,EAC3DF,GAAI,YAAY,IAAM,aAC/BH,EAAWI,IAGbH,GAAQ,OAAOE,GAAKC,EAAG,CACzB,CAEA,KAAK,KAAO,IAAI1H,GAAS,CAAE,KAAMoH,CAAO,CAAC,EAEzC,IAAMQ,GAAW,CAAC,EAEZC,GAAapG,EAAQ,WAAa,UACtC6F,GACA9H,GAAe,SAASyG,CAAM,EAGhC,GAAIxE,EAAQ,SAAW,QAAUA,EAAQ,SAAW,WAAa,CAAChC,GAAe,SAASwG,CAAM,GAAK,CAAC4B,GACpG,QAAWC,MAAUT,EAEnB,GAAIS,KAAW,UAAYA,KAAW,OACpCF,GAAS,KAAKvK,GAAK,aAAa,CAK9B,MAAOA,GAAK,UAAU,aACtB,YAAaA,GAAK,UAAU,YAC9B,CAAC,CAAC,UACOyK,KAAW,UACpBF,GAAS,KAAKvK,GAAK,cAAc,CAAC,UACzByK,KAAW,KACpBF,GAAS,KAAKvK,GAAK,uBAAuB,CAAC,MACtC,CACLuK,GAAS,OAAS,EAClB,KACF,CAIJ,OAAAZ,EAAQ,CACN,OAAAf,EACA,WAAAC,EACA,YAAaqB,GAAQzH,EAAY,EACjC,KAAM8H,GAAS,OACX3H,GAAS,KAAK,KAAM,GAAG2H,GAAU,IAAM,CAAE,CAAC,EAC1C,KAAK,KAAK,GAAG,QAAS,IAAM,CAAC,CAAC,CACpC,CAAC,EAEM,EACT,EAEA,OAAQpD,EAAO,CACb,GAAItB,EAAY,WAAW,KACzB,OAOF,IAAMU,EAAQY,EAOd,OAAApC,EAAW,iBAAmBwB,EAAM,WAI7B,KAAK,KAAK,KAAKA,CAAK,CAC7B,EAEA,YAAc,CACR,KAAK,OACPV,EAAY,WAAW,IAAI,aAAc,KAAK,KAAK,EAGrDA,EAAY,WAAW,MAAQ,GAE/B,KAAK,KAAK,KAAK,IAAI,CACrB,EAEA,QAAShC,EAAO,CACV,KAAK,OACPgC,EAAY,WAAW,IAAI,aAAc,KAAK,KAAK,EAGrD,KAAK,MAAM,QAAQhC,CAAK,EAExBgC,EAAY,WAAW,UAAUhC,CAAK,EAEtC+F,EAAO/F,CAAK,CACd,EAEA,UAAW+E,EAAQE,EAAaC,EAAQ,CACtC,GAAIH,IAAW,IACb,OAGF,IAAMsB,EAAU,IAAIrK,GAEpB,QAASsK,EAAI,EAAGA,EAAIrB,EAAY,OAAQqB,GAAK,EAAG,CAC9C,IAAMC,EAAMtB,EAAYqB,EAAI,CAAC,EAAE,SAAS,QAAQ,EAC1CE,GAAMvB,EAAYqB,EAAI,CAAC,EAAE,SAAS,QAAQ,EAEhDD,EAAQ,OAAOE,EAAKC,EAAG,CACzB,CAEA,OAAAV,EAAQ,CACN,OAAAf,EACA,WAAYrF,GAAaqF,CAAM,EAC/B,YAAasB,EAAQzH,EAAY,EACjC,OAAAsG,CACF,CAAC,EAEM,EACT,CACF,CACF,CAAC,CACH,CACF,CAEAxJ,GAAO,QAAU,CACf,MAAAuE,GACA,MAAAJ,GACA,SAAAgB,GACA,wBAAAE,EACF,ICtkEA,IAAA8F,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEAA,GAAO,QAAU,CACf,OAAQ,OAAO,kBAAkB,EACjC,QAAS,OAAO,mBAAmB,EACnC,OAAQ,OAAO,kBAAkB,EACjC,wBAAyB,OAAO,gDAAgD,EAChF,QAAS,OAAO,mBAAmB,EACnC,SAAU,OAAO,oBAAoB,CACvC,ICTA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,OAAAC,EAAO,EAAI,KAEbC,GAAS,OAAO,qBAAqB,EAKrCC,GAAN,MAAMC,UAAsB,KAAM,CAChC,YAAaC,EAAMC,EAAgB,CAAC,EAAG,CACrCD,EAAOJ,GAAO,WAAW,UAAUI,CAAI,EACvCC,EAAgBL,GAAO,WAAW,kBAAkBK,GAAiB,CAAC,CAAC,EAEvE,MAAMD,EAAMC,CAAa,EAEzB,KAAKJ,EAAM,EAAI,CACb,iBAAkBI,EAAc,iBAChC,OAAQA,EAAc,OACtB,MAAOA,EAAc,KACvB,CACF,CAEA,IAAI,kBAAoB,CACtB,OAAAL,GAAO,WAAW,KAAMG,CAAa,EAE9B,KAAKF,EAAM,EAAE,gBACtB,CAEA,IAAI,QAAU,CACZ,OAAAD,GAAO,WAAW,KAAMG,CAAa,EAE9B,KAAKF,EAAM,EAAE,MACtB,CAEA,IAAI,OAAS,CACX,OAAAD,GAAO,WAAW,KAAMG,CAAa,EAE9B,KAAKF,EAAM,EAAE,KACtB,CACF,EAEAD,GAAO,WAAW,kBAAoBA,GAAO,oBAAoB,CAC/D,CACE,IAAK,mBACL,UAAWA,GAAO,WAAW,QAC7B,aAAc,EAChB,EACA,CACE,IAAK,SACL,UAAWA,GAAO,WAAW,oBAAoB,EACjD,aAAc,CAChB,EACA,CACE,IAAK,QACL,UAAWA,GAAO,WAAW,oBAAoB,EACjD,aAAc,CAChB,EACA,CACE,IAAK,UACL,UAAWA,GAAO,WAAW,QAC7B,aAAc,EAChB,EACA,CACE,IAAK,aACL,UAAWA,GAAO,WAAW,QAC7B,aAAc,EAChB,EACA,CACE,IAAK,WACL,UAAWA,GAAO,WAAW,QAC7B,aAAc,EAChB,CACF,CAAC,EAEDD,GAAO,QAAU,CACf,cAAAG,EACF,IC7EA,IAAAI,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAMA,SAASC,GAAaC,EAAO,CAC3B,GAAI,CAACA,EACH,MAAO,UAOT,OAAQA,EAAM,KAAK,EAAE,YAAY,EAAG,CAClC,IAAK,oBACL,IAAK,gBACL,IAAK,gBACL,IAAK,QACL,IAAK,OACL,IAAK,kBACH,MAAO,QACT,IAAK,MACL,IAAK,QACL,IAAK,WACL,IAAK,SACH,MAAO,SACT,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,qBACL,IAAK,WACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,SACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,WACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,kBACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,eACH,MAAO,aACT,IAAK,cACL,IAAK,mBACL,IAAK,SACL,IAAK,aACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,eACL,IAAK,UACH,MAAO,eACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,KACL,IAAK,SACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,KACH,MAAO,cACT,IAAK,cACH,MAAO,cACT,IAAK,UACL,IAAK,MACL,IAAK,OACL,IAAK,SACL,IAAK,SACH,MAAO,SACT,IAAK,UACL,IAAK,SACH,MAAO,SACT,IAAK,cACL,IAAK,MACL,IAAK,YACL,IAAK,cACH,MAAO,YACT,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,UACL,IAAK,cACH,MAAO,cACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,iBACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,cACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACL,IAAK,WACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,I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,YACP,GAAM,UACN,GAAM,SACN,IAAO,aACP,IAAO,mBACP,IAAO,aACP,GAAM,aACN,IAAO,QACP,GAAM,UACN,IAAO,SACP,IAAO,WACP,IAAO,QACP,GAAM,UACN,GAAM,SACN,GAAM,YACN,IAAO,SACP,IAAO,YACP,GAAM,UACN,IAAO,UACP,GAAM,WACN,GAAM,UACN,GAAM,WACN,QAAS,uBACT,QAAS,wBACT,IAAO,WACP,GAAM,UACN,GAAM,WACN,IAAO,2BACP,WAAY,wBACZ,GAAM,WACN,GAAM,QACN,GAAM,SACN,QAAS,OACT,GAAM,UACN,IAAO,QACP,IAAO,QACP,IAAO,QACP,GAAM,QACN,IAAO,QACP,GAAM,WACN,GAAM,UACN,GAAM,YACN,GAAM,WACN,GAAM,MACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,IAAO,MACP,GAAM,SACN,QAAS,kBACT,GAAM,UACN,IAAO,WACP,GAAM,SACN,IAAO,KACP,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,iBACN,IAAO,aACP,GAAM,QACN,IAAO,WACP,GAAM,SACN,IAAO,aACP,GAAM,QACN,IAAO,QACP,GAAM,YACN,IAAO,UACP,IAAO,OACP,GAAM,YACN,GAAM,OACN,IAAO,UACP,GAAM,aACN,UAAW,kBACX,GAAM,sBACN,GAAM,QACN,GAAM,UACN,IAAO,kBACP,GAAM,WACN,GAAM,WACN,IAAO,SACP,GAAM,cACN,GAAM,UACN,GAAM,SACN,IAAO,cACP,GAAM,SACN,IAAO,QACP,GAAM,QACN,IAAO,OACP,GAAM,UACN,GAAM,cACN,IAAO,SACP,IAAO,WACP,GAAM,OACN,IAAO,UACP,GAAM,SACN,IAAO,OACP,GAAM,qBACN,IAAO,mBACP,GAAM,SACN,GAAM,MACN,IAAO,YACP,GAAM,QACN,GAAM,UACN,IAAO,WACP,GAAM,aACN,GAAM,UACN,GAAM,aACN,IAAO,UACP,GAAM,UACN,IAAO,MACP,GAAM,gBACN,GAAM,aACN,IAAO,WACP,IAAO,WACP,IAAO,WACP,GAAM,WACN,GAAM,QACN,UAAW,eACX,GAAM,YACN,GAAM,UACN,IAAO,MACP,GAAM,OACN,GAAM,QACN,GAAM,UACN,GAAM,cACN,IAAO,UACP,IAAO,mBACP,IAAO,cACP,WAAY,uBACZ,IAAO,SACP,IAAO,OACP,GAAM,YACN,GAAM,oBACN,UAAW,MACX,IAAO,6BACP,SAAU,OACV,GAAM,kBACN,IAAO,sBACP,GAAM,SACN,GAAM,YACN,IAAO,OACP,GAAM,UACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,IAAO,aACP,IAAO,aACP,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,sBACN,QAAS,wBACT,GAAM,qBACN,UAAW,sBACX,GAAM,UACN,IAAO,qBACP,IAAO,SACP,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,QACN,GAAM,WACN,WAAY,kBACZ,IAAO,qBACP,GAAM,eACN,IAAO,SACP,GAAM,UACN,GAAM,UACN,IAAO,qBACP,IAAO,OACP,GAAM,QACN,IAAO,WACP,IAAO,WACP,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,SACN,GAAM,UACN,GAAM,YACN,IAAO,OACP,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,WAAY,YACZ,IAAO,uBACP,GAAM,QACN,GAAM,QACN,GAAM,SACN,IAAO,QACP,GAAM,OACN,GAAM,UACN,GAAM,WACN,IAAO,MACP,IAAO,YACP,GAAM,SACN,IAAO,WACP,GAAM,SACN,GAAM,SACN,IAAO,OACP,IAAO,UACP,GAAM,UACN,GAAM,UACN,IAAO,QACP,GAAM,MACN,IAAO,SACP,GAAM,YACN,GAAM,OACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,IAAO,WACP,GAAM,aACN,IAAO,QACP,GAAM,QACN,GAAM,QACN,GAAM,QACN,IAAO,QACP,GAAM,UACN,GAAM,SACN,IAAO,eACP,IAAO,UACP,GAAM,MACV,EASO,SAASC,GAAWC,EAA8B,CACrD,OAAKA,EACDA,KAAYF,KAChBE,EAAWA,EAAS,Y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", - "names": ["require_symbols", "__commonJSMin", "exports", "module", "require_errors", "__commonJSMin", "exports", "module", "UndiciError", "message", "ConnectTimeoutError", "_ConnectTimeoutError", "HeadersTimeoutError", "_HeadersTimeoutError", "HeadersOverflowError", "_HeadersOverflowError", "BodyTimeoutError", "_BodyTimeoutError", "ResponseStatusCodeError", "_ResponseStatusCodeError", "statusCode", "headers", "body", "InvalidArgumentError", "_InvalidArgumentError", "InvalidReturnValueError", "_InvalidReturnValueError", "RequestAbortedError", "_RequestAbortedError", "InformationalError", "_InformationalError", "RequestContentLengthMismatchError", "_RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "_ResponseContentLengthMismatchError", "ClientDestroyedError", "_ClientDestroyedError", "ClientClosedError", "_ClientClosedError", "SocketError", "_SocketError", "socket", "NotSupportedError", "_NotSupportedError", "BalancedPoolMissingUpstreamError", "HTTPParserError", "_HTTPParserError", "code", "data", "ResponseExceededMaxSizeError", "_ResponseExceededMaxSizeError", "require_util", "__commonJSMin", "exports", "module", "assert", "kDestroyed", "kBodyUsed", "IncomingMessage", "stream", "net", "InvalidArgumentError", "Blob", "nodeUtil", "stringify", "nodeMajor", "nodeMinor", "v", "nop", "isStream", "obj", "isBlobLike", "object", "buildURL", "url", "queryParams", "stringified", "parseURL", "port", "origin", "path", "parseOrigin", "getHostname", "host", "idx", "getServerName", "servername", "deepClone", "isAsyncIterable", "isIterable", "bodyLength", "body", "state", "isBuffer", "isDestroyed", "isReadableAborted", "destroy", "err", "KEEPALIVE_TIMEOUT_EXPR", "parseKeepAliveTimeout", "val", "m", "parseHeaders", "headers", "i", "key", "parseRawHeaders", "ret", "hasContentLength", "contentDispositionIdx", "n", "buffer", "validateHandler", "handler", "method", "upgrade", "isDisturbed", "isErrored", "isReadable", "getSocketInfo", "socket", "ReadableStream", "ReadableStreamFrom", "iterable", "iterator", "controller", "done", "value", "buf", "reason", "isFormDataLike", "throwIfAborted", "signal", "events", "addAbortListener", "listener", "hasToWellFormed", "toUSVString", "kEnumerableProperty", "require_timers", "__commonJSMin", "exports", "module", "fastNow", "fastNowTimeout", "fastTimers", "onTimeout", "len", "idx", "timer", "refreshTimeout", "Timeout", "callback", "delay", "opaque", "timeout", "require_utils", "__commonJSMin", "exports", "module", "parseContentType", "str", "params", "i", "code", "TOKEN", "type", "subtypeStart", "parseContentTypeParams", "subtype", "name", "nameStart", "value", "valueStart", "escaping", "QDTEXT", "parseDisposition", "defDecoder", "parseDispositionParams", "charset", "charsetStart", "CHARSET", "encode", "EXTENDED_VALUE", "hexUpper", "hexLower", "HEX_VALUES", "byteVal", "convertToUTF8", "getDecoder", "lc", "decoders", "data", "hint", "decode", "basename", "path", "require_sbmh", "__commonJSMin", "exports", "module", "memcmp", "buf1", "pos1", "buf2", "pos2", "num", "i", "SBMH", "needle", "cb", "needleLen", "chunk", "pos", "result", "chunkLen", "feed", "lbSize", "self", "data", "len", "lastNeedleCharPos", "lastNeedleChar", "end", "occ", "lookbehind", "nextPos", "ch", "matchNeedle", "bytesToCutOff", "firstNeedleChar", "lb", "require_multipart", "__commonJSMin", "exports", "module", "Readable", "Writable", "StreamSearch", "basename", "convertToUTF8", "getDecoder", "parseContentType", "parseDisposition", "BUF_CRLF", "BUF_CR", "BUF_DASH", "noop", "MAX_HEADER_PAIRS", "MAX_HEADER_SIZE", "HPARSER_NAME", "HPARSER_PRE_OWS", "HPARSER_VALUE", "HeaderParser", "cb", "chunk", "pos", "end", "start", "done", "code", "TOKEN", "FIELD_VCHAR", "header", "FileStream", "opts", "owner", "n", "ignoreData", "callAndUnsetCb", "self", "err", "nullDecoder", "val", "hint", "Multipart", "cfg", "streamOpts", "boundary", "paramDecoder", "defCharset", "preservePath", "fileOpts", "limits", "fieldSizeLimit", "fileSizeLimit", "filesLimit", "fieldsLimit", "partsLimit", "parts", "fields", "files", "skipPart", "fileSize", "field", "fieldSize", "partCharset", "partEncoding", "partType", "partName", "partTruncated", "hitFilesLimit", "hitFieldsLimit", "hparser", "filename", "disp", "conType", "matchPostBoundary", "ssCb", "isMatch", "data", "isDataSafe", "retrydata", "ret", "writecb", "actualLen", "enc", "checkEndState", "fileStream", "finalcb", "require_urlencoded", "__commonJSMin", "exports", "module", "Writable", "getDecoder", "URLEncoded", "cfg", "streamOpts", "charset", "limits", "conType", "chunk", "enc", "cb", "i", "len", "readPctEnc", "main", "skipKeyBytes", "skipValBytes", "self", "pos", "hexUpper", "HEX_VALUES", "hexLower", "code", "require_lib", "__commonJSMin", "exports", "module", "parseContentType", "getInstance", "cfg", "headers", "conType", "type", "TYPES", "instanceCfg", "typemod", "require_constants", "__commonJSMin", "exports", "module", "MessageChannel", "receiveMessageOnPort", "corsSafeListedMethods", "nullBodyStatus", "redirectStatus", "badPorts", "referrerPolicy", "requestRedirect", "safeMethods", "requestMode", "requestCredentials", "requestCache", "requestBodyHeader", "requestDuplex", "forbiddenMethods", "subresource", "DOMException", "err", "channel", "structuredClone", "value", "options", "require_global", "__commonJSMin", "exports", "module", "globalOrigin", "getGlobalOrigin", "setGlobalOrigin", "newOrigin", "parsedURL", "require_util", "__commonJSMin", "exports", "module", "redirectStatus", "badPorts", "referrerPolicyTokens", "getGlobalOrigin", "performance", "isBlobLike", "toUSVString", "ReadableStreamFrom", "assert", "isUint8Array", "crypto", "responseURL", "response", "urlList", "length", "responseLocationURL", "requestFragment", "location", "isValidHeaderValue", "requestCurrentURL", "request", "requestBadPort", "url", "urlIsHttpHttpsScheme", "isErrorLike", "object", "isValidReasonPhrase", "statusText", "i", "c", "isTokenChar", "isValidHTTPToken", "characters", "isValidHeaderName", "potentialValue", "setRequestReferrerPolicyOnRedirect", "actualResponse", "headersList", "policyHeader", "policy", "token", "crossOriginResourcePolicyCheck", "corsCheck", "TAOCheck", "appendFetchMetadata", "httpRequest", "header", "appendRequestOriginHeader", "serializedOrigin", "urlHasHttpsScheme", "sameOrigin", "coarsenedSharedCurrentTime", "crossOriginIsolatedCapability", "createOpaqueTimingInfo", "timingInfo", "makePolicyContainer", "clonePolicyContainer", "policyContainer", "determineRequestsReferrer", "referrerSource", "globalOrigin", "referrerURL", "stripURLForReferrer", "referrerOrigin", "areSameOrigin", "isNonPotentiallyTrustWorthy", "isURLPotentiallyTrustworthy", "currentURL", "originOnly", "isOriginPotentiallyTrustworthy", "origin", "originAsURL", "bytesMatch", "bytes", "metadataList", "parsedMetadata", "parseMetadata", "list", "d", "strongest", "metadata", "item", "algorithm", "expectedValue", "parseHashWithOptions", "result", "empty", "supportedHashes", "parsedToken", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "B", "createDeferredPromise", "res", "rej", "resolve", "reject", "isAborted", "fetchParams", "isCancelled", "normalizeMethod", "method", "serializeJavascriptValueToJSONString", "value", "esIteratorPrototype", "makeIterator", "iterator", "name", "kind", "index", "target", "values", "len", "pair", "iteratorResult", "fullyReadBody", "body", "processBody", "processBodyError", "successSteps", "errorSteps", "error", "reader", "e", "readAllBytes", "ReadableStream", "isReadableStreamLike", "stream", "MAXIMUM_ARGUMENT_LENGTH", "isomorphicDecode", "input", "previous", "current", "readableStreamClose", "controller", "err", "isomorphicEncode", "failureSteps", "byteLength", "done", "chunk", "urlIsLocal", "protocol", "hasOwn", "dict", "key", "require_symbols", "__commonJSMin", "exports", "module", "require_webidl", "__commonJSMin", "exports", "module", "types", "hasOwn", "toUSVString", "webidl", "message", "context", "plural", "V", "I", "opts", "length", "min", "ctx", "bitLength", "signedness", "upperBound", "lowerBound", "x", "n", "r", "converter", "method", "seq", "done", "value", "keyConverter", "valueConverter", "O", "result", "keys", "key", "typedKey", "typedValue", "i", "converters", "dictionary", "type", "dict", "options", "defaultValue", "required", "hasDefault", "index", "charCode", "T", "require_dataURL", "__commonJSMin", "exports", "module", "assert", "atob", "isomorphicDecode", "encoder", "HTTP_TOKEN_CODEPOINTS", "HTTP_WHITESPACE_REGEX", "HTTP_QUOTED_STRING_TOKENS", "dataURLProcessor", "dataURL", "input", "URLSerializer", "position", "mimeType", "collectASequenceOfCodePointsFast", "mimeTypeLength", "removeASCIIWhitespace", "encodedBody", "body", "stringPercentDecode", "stringBody", "forgivingBase64", "mimeTypeRecord", "parseMIMEType", "url", "excludeFragment", "href", "hash", "collectASequenceOfCodePoints", "condition", "result", "char", "idx", "start", "bytes", "percentDecode", "output", "i", "byte", "nextTwoBytes", "bytePoint", "removeHTTPWhitespace", "type", "subtype", "typeLowercase", "subtypeLowercase", "parameterName", "parameterValue", "collectAnHTTPQuotedString", "data", "binary", "extractValue", "positionStart", "value", "quoteOrBackslash", "serializeAMimeType", "parameters", "essence", "serialization", "name", "isHTTPWhiteSpace", "str", "leading", "trailing", "lead", "trail", "isASCIIWhitespace", "require_file", "__commonJSMin", "exports", "module", "Blob", "NativeFile", "types", "kState", "isBlobLike", "webidl", "parseMIMEType", "serializeAMimeType", "kEnumerableProperty", "File", "_File", "fileBits", "fileName", "options", "n", "t", "d", "substep", "processBlobParts", "FileLike", "_FileLike", "blobLike", "args", "V", "opts", "value", "parts", "bytes", "element", "convertLineEndingsNative", "s", "nativeLineEnding", "isFileLike", "object", "require_formdata", "__commonJSMin", "exports", "module", "isBlobLike", "toUSVString", "makeIterator", "kState", "UndiciFile", "FileLike", "isFileLike", "webidl", "Blob", "NativeFile", "File", "FormData", "_FormData", "form", "name", "value", "filename", "entry", "makeEntry", "idx", "pair", "callbackFn", "thisArg", "key", "options", "require_body", "__commonJSMin", "exports", "module", "Busboy", "util", "ReadableStreamFrom", "isBlobLike", "isReadableStreamLike", "readableStreamClose", "createDeferredPromise", "fullyReadBody", "FormData", "kState", "webidl", "DOMException", "structuredClone", "Blob", "NativeFile", "kBodyUsed", "assert", "isErrored", "isUint8Array", "isArrayBuffer", "UndiciFile", "parseMIMEType", "serializeAMimeType", "ReadableStream", "File", "extractBody", "object", "keepalive", "stream", "controller", "source", "action", "length", "type", "boundary", "prefix", "escape", "str", "normalizeLinefeeds", "value", "enc", "blobParts", "rn", "hasUnknownSizeValue", "name", "chunk", "part", "iterator", "done", "reason", "safelyExtractBody", "cloneBody", "body", "out1", "out2", "out2Clone", "finalClone", "consumeBody", "throwIfAborted", "state", "bodyMixinMethods", "instance", "specConsumeBody", "bytes", "mimeType", "bodyMimeType", "utf8DecodeBytes", "parseJSONFromBytes", "contentType", "headers", "key", "responseFormData", "busboy", "err", "info", "filename", "encoding", "chunks", "base64chunk", "end", "busboyResolve", "resolve", "reject", "entries", "text", "textDecoder", "formData", "mixinBody", "prototype", "convertBytesToJSValue", "bodyUnusable", "promise", "errorSteps", "error", "successSteps", "data", "e", "buffer", "headersList", "require_request", "__commonJSMin", "exports", "module", "InvalidArgumentError", "NotSupportedError", "assert", "util", "tokenRegExp", "headerCharRegex", "invalidPathRegex", "kHandler", "channels", "extractBody", "diagnosticsChannel", "Request", "origin", "path", "method", "body", "headers", "query", "idempotent", "blocking", "upgrade", "headersTimeout", "bodyTimeout", "reset", "throwOnError", "handler", "i", "processHeader", "keys", "key", "bodyStream", "contentType", "chunk", "err", "abort", "statusCode", "resume", "statusText", "socket", "trailers", "error", "value", "processHeaderValue", "val", "request", "require_dispatcher", "__commonJSMin", "exports", "module", "EventEmitter", "Dispatcher", "require_dispatcher_base", "__commonJSMin", "exports", "module", "Dispatcher", "ClientDestroyedError", "ClientClosedError", "InvalidArgumentError", "kDestroy", "kClose", "kDispatch", "kInterceptors", "kDestroyed", "kClosed", "kOnDestroyed", "kOnClosed", "kInterceptedDispatch", "DispatcherBase", "newInterceptors", "i", "callback", "resolve", "reject", "err", "data", "onClosed", "callbacks", "onDestroyed", "opts", "handler", "dispatch", "require_connect", "__commonJSMin", "exports", "module", "net", "assert", "util", "InvalidArgumentError", "ConnectTimeoutError", "tls", "SessionCache", "maxCachedSessions", "key", "ref", "sessionKey", "session", "oldestKey", "buildConnector", "socketPath", "timeout", "opts", "options", "sessionCache", "hostname", "host", "protocol", "port", "servername", "localAddress", "httpSocket", "callback", "socket", "keepAliveInitialDelay", "cancelTimeout", "setupTimeout", "onConnectTimeout", "cb", "err", "s1", "s2", "timeoutId", "enumToMap", "obj", "res", "key", "value", "exports", "utils_1", "ERROR", "exports", "TYPE", "FLAGS", "LENIENT_FLAGS", "METHODS", "key", "FINISH", "i", "c", "HEADER_STATE", "require_RedirectHandler", "__commonJSMin", "exports", "module", "util", "kBodyUsed", "assert", "InvalidArgumentError", "EE", "redirectableStatusCodes", "kBody", "BodyAsyncIterable", "body", "RedirectHandler", "dispatch", "maxRedirections", "opts", "handler", "abort", "statusCode", "headers", "socket", "error", "resume", "statusText", "parseLocation", "origin", "pathname", "search", "path", "cleanRequestHeaders", "chunk", "trailers", "i", "shouldRemoveHeader", "header", "removeContent", "unknownOrigin", "ret", "key", "require_redirectInterceptor", "__commonJSMin", "exports", "module", "RedirectHandler", "createRedirectInterceptor", "defaultMaxRedirections", "dispatch", "opts", "handler", "maxRedirections", "redirectHandler", "require_llhttp_wasm", "__commonJSMin", "exports", "module", "require_llhttp_simd_wasm", "__commonJSMin", "exports", "module", "require_client", "__commonJSMin", "exports", "module", "assert", "net", "util", "timers", "Request", "DispatcherBase", "RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "InvalidArgumentError", "RequestAbortedError", "HeadersTimeoutError", "HeadersOverflowError", "SocketError", "InformationalError", "BodyTimeoutError", "HTTPParserError", "ResponseExceededMaxSizeError", "ClientDestroyedError", "buildConnector", "kUrl", "kReset", "kServerName", "kClient", "kBusy", "kParser", "kConnect", "kBlocking", "kResuming", "kRunning", "kPending", "kSize", "kWriting", "kQueue", "kConnected", "kConnecting", "kNeedDrain", "kNoRef", "kKeepAliveDefaultTimeout", "kHostHeader", "kPendingIdx", "kRunningIdx", "kError", "kPipelining", "kSocket", "kKeepAliveTimeoutValue", "kMaxHeadersSize", "kKeepAliveMaxTimeout", "kKeepAliveTimeoutThreshold", "kHeadersTimeout", "kBodyTimeout", "kStrictContentLength", "kConnector", "kMaxRedirections", "kMaxRequests", "kCounter", "kClose", "kDestroy", "kDispatch", "kInterceptors", "kLocalAddress", "kMaxResponseSize", "FastBuffer", "kClosedResolve", "channels", "diagnosticsChannel", "Client", "url", "interceptors", "maxHeaderSize", "headersTimeout", "socketTimeout", "requestTimeout", "connectTimeout", "bodyTimeout", "idleTimeout", "keepAlive", "keepAliveTimeout", "maxKeepAliveTimeout", "keepAliveMaxTimeout", "keepAliveTimeoutThreshold", "socketPath", "pipelining", "tls", "strictContentLength", "maxCachedSessions", "maxRedirections", "connect", "maxRequestsPerClient", "localAddress", "maxResponseSize", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "createRedirectInterceptor", "value", "resume", "socket", "cb", "opts", "handler", "origin", "request", "resolve", "err", "requests", "i", "errorRequest", "callback", "constants", "EMPTY_BUF", "lazyllhttp", "llhttpWasmData", "mod", "p", "at", "len", "currentParser", "start", "currentBufferPtr", "currentBufferRef", "statusCode", "upgrade", "shouldKeepAlive", "llhttpInstance", "llhttpPromise", "currentBufferSize", "TIMEOUT_HEADERS", "TIMEOUT_BODY", "TIMEOUT_IDLE", "Parser", "client", "type", "onParserTimeout", "chunk", "data", "llhttp", "ret", "offset", "ptr", "message", "buf", "key", "head", "headers", "onSocketError", "onSocketReadable", "onSocketEnd", "onSocketClose", "statusText", "timeout", "pause", "contentLength", "bytesRead", "parser", "timeoutType", "onError", "host", "hostname", "protocol", "port", "idx", "ip", "reject", "emitDrain", "sync", "_resume", "write", "body", "method", "path", "blocking", "reset", "expectsPayload", "header", "writeIterable", "writeBlob", "writeStream", "finished", "writer", "AsyncWriter", "onData", "onDrain", "onAbort", "onFinished", "er", "buffer", "waitForDrain", "bytesWritten", "require_fixed_queue", "__commonJSMin", "exports", "module", "FixedCircularBuffer", "data", "nextItem", "tail", "next", "require_pool_stats", "__commonJSMin", "exports", "module", "kFree", "kConnected", "kPending", "kQueued", "kRunning", "kSize", "kPool", "PoolStats", "pool", "require_pool_base", "__commonJSMin", "exports", "module", "DispatcherBase", "FixedQueue", "kConnected", "kSize", "kRunning", "kPending", "kQueued", "kBusy", "kFree", "kUrl", "kClose", "kDestroy", "kDispatch", "PoolStats", "kClients", "kNeedDrain", "kQueue", "kClosedResolve", "kOnDrain", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kGetDispatcher", "kAddClient", "kRemoveClient", "kStats", "PoolBase", "pool", "origin", "targets", "queue", "needDrain", "item", "c", "err", "client", "ret", "pending", "running", "size", "resolve", "opts", "handler", "dispatcher", "idx", "require_pool", "__commonJSMin", "exports", "module", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kGetDispatcher", "Client", "InvalidArgumentError", "util", "kUrl", "kInterceptors", "buildConnector", "kOptions", "kConnections", "kFactory", "defaultFactory", "origin", "opts", "Pool", "connections", "factory", "connect", "connectTimeout", "tls", "maxCachedSessions", "socketPath", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "options", "dispatcher", "require_balanced_pool", "__commonJSMin", "exports", "module", "BalancedPoolMissingUpstreamError", "InvalidArgumentError", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kRemoveClient", "kGetDispatcher", "Pool", "kUrl", "kInterceptors", "parseOrigin", "kFactory", "kOptions", "kGreatestCommonDivisor", "kCurrentWeight", "kIndex", "kWeight", "kMaxWeightPerServer", "kErrorPenalty", "getGreatestCommonDivisor", "a", "b", "defaultFactory", "origin", "opts", "BalancedPool", "upstreams", "factory", "upstream", "upstreamOrigin", "pool", "args", "err", "client", "p", "dispatcher", "counter", "maxWeightIndex", "require_dispatcher_weakref", "__commonJSMin", "exports", "module", "kConnected", "kSize", "CompatWeakRef", "value", "CompatFinalizer", "finalizer", "dispatcher", "key", "require_agent", "__commonJSMin", "exports", "module", "InvalidArgumentError", "kClients", "kRunning", "kClose", "kDestroy", "kDispatch", "kInterceptors", "DispatcherBase", "Pool", "Client", "util", "createRedirectInterceptor", "WeakRef", "FinalizationRegistry", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kMaxRedirections", "kOnDrain", "kFactory", "kFinalizer", "kOptions", "defaultFactory", "origin", "opts", "Agent", "factory", "maxRedirections", "connect", "options", "key", "ref", "agent", "targets", "err", "ret", "client", "handler", "dispatcher", "closePromises", "destroyPromises", "require_readable", "__commonJSMin", "exports", "module", "assert", "Readable", "RequestAbortedError", "NotSupportedError", "InvalidArgumentError", "util", "ReadableStreamFrom", "toUSVString", "Blob", "kConsume", "kReading", "kBody", "kAbort", "kContentType", "resume", "abort", "contentType", "highWaterMark", "err", "ev", "args", "ret", "chunk", "consumePush", "consume", "opts", "limit", "signal", "abortFn", "signalListenerCleanup", "isLocked", "self", "isUnusable", "stream", "type", "resolve", "reject", "consumeFinish", "consumeStart", "state", "consumeEnd", "body", "length", "dst", "pos", "buf", "require_util", "__commonJSMin", "exports", "module", "assert", "ResponseStatusCodeError", "toUSVString", "getResolveErrorBodyCallback", "callback", "body", "contentType", "statusCode", "statusMessage", "headers", "chunks", "limit", "chunk", "payload", "require_abort_signal", "__commonJSMin", "exports", "module", "addAbortListener", "RequestAbortedError", "kListener", "kSignal", "abort", "self", "addSignal", "signal", "removeSignal", "require_api_request", "__commonJSMin", "exports", "module", "Readable", "InvalidArgumentError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "RequestHandler", "opts", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "highWaterMark", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "contentType", "chunk", "res", "trailers", "request", "resolve", "reject", "data", "require_api_stream", "__commonJSMin", "exports", "module", "finished", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "StreamHandler", "opts", "factory", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "res", "contentType", "trailers", "chunk", "stream", "resolve", "reject", "data", "require_api_pipeline", "__commonJSMin", "exports", "module", "Readable", "Duplex", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "AsyncResource", "addSignal", "removeSignal", "assert", "kResume", "PipelineRequest", "resume", "err", "callback", "PipelineResponse", "PipelineHandler", "opts", "handler", "signal", "method", "opaque", "onInfo", "responseHeaders", "body", "chunk", "encoding", "req", "res", "ret", "abort", "context", "statusCode", "rawHeaders", "headers", "trailers", "pipeline", "pipelineHandler", "require_api_upgrade", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "assert", "UpgradeHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "upgrade", "resolve", "reject", "data", "upgradeHandler", "require_api_connect", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "ConnectHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "connect", "resolve", "reject", "data", "connectHandler", "require_api", "__commonJSMin", "exports", "module", "require_mock_errors", "__commonJSMin", "exports", "module", "UndiciError", "MockNotMatchedError", "_MockNotMatchedError", "message", "require_mock_symbols", "__commonJSMin", "exports", "module", "require_mock_utils", "__commonJSMin", "exports", "module", "MockNotMatchedError", "kDispatches", "kMockAgent", "kOriginalDispatch", "kOrigin", "kGetNetConnect", "buildURL", "nop", "STATUS_CODES", "isPromise", "matchValue", "match", "value", "lowerCaseEntries", "headers", "headerName", "headerValue", "getHeaderByName", "key", "i", "buildHeadersFromArray", "clone", "entries", "index", "matchHeaders", "mockDispatch", "matchHeaderName", "matchHeaderValue", "safeUrl", "path", "pathSegments", "qp", "matchKey", "method", "body", "pathMatch", "methodMatch", "bodyMatch", "headersMatch", "getResponseData", "data", "getMockDispatch", "mockDispatches", "basePath", "resolvedPath", "matchedMockDispatches", "consumed", "addMockDispatch", "baseData", "replyData", "newMockDispatch", "deleteMockDispatch", "dispatch", "buildKey", "opts", "query", "generateKeyValues", "keyValuePairs", "x", "getStatusText", "statusCode", "getResponse", "buffers", "handler", "trailers", "error", "delay", "persist", "timesInvoked", "times", "handleReply", "_data", "optsHeaders", "newData", "responseData", "responseHeaders", "responseTrailers", "resume", "buildMockDispatch", "agent", "origin", "originalDispatch", "netConnect", "checkNetConnect", "url", "matcher", "buildMockOptions", "mockOptions", "require_mock_interceptor", "__commonJSMin", "exports", "module", "getResponseData", "buildKey", "addMockDispatch", "kDispatches", "kDispatchKey", "kDefaultHeaders", "kDefaultTrailers", "kContentLength", "kMockDispatch", "InvalidArgumentError", "buildURL", "MockScope", "mockDispatch", "waitInMs", "repeatTimes", "MockInterceptor", "opts", "mockDispatches", "parsedURL", "statusCode", "data", "responseOptions", "responseData", "contentLength", "headers", "trailers", "replyData", "wrappedDefaultsCallback", "resolvedData", "newMockDispatch", "dispatchData", "error", "require_mock_client", "__commonJSMin", "exports", "module", "promisify", "Client", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockClient", "origin", "opts", "require_mock_pool", "__commonJSMin", "exports", "module", "promisify", "Pool", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockPool", "origin", "opts", "require_pluralizer", "__commonJSMin", "exports", "module", "singulars", "plurals", "singular", "plural", "count", "one", "keys", "noun", "require_pending_interceptors_formatter", "__commonJSMin", "exports", "module", "Transform", "Console", "disableColors", "chunk", "_enc", "cb", "pendingInterceptors", "withPrettyHeaders", "method", "path", "statusCode", "persist", "times", "timesInvoked", "origin", "require_mock_agent", "__commonJSMin", "exports", "module", "kClients", "Agent", "kAgent", "kMockAgentSet", "kMockAgentGet", "kDispatches", "kIsMockActive", "kNetConnect", "kGetNetConnect", "kOptions", "kFactory", "MockClient", "MockPool", "matchValue", "buildMockOptions", "InvalidArgumentError", "UndiciError", "Dispatcher", "Pluralizer", "PendingInterceptorsFormatter", "FakeWeakRef", "value", "MockAgent", "opts", "agent", "origin", "dispatcher", "handler", "matcher", "mockOptions", "ref", "keyMatcher", "nonExplicitRef", "nonExplicitDispatcher", "mockAgentClients", "scope", "dispatch", "pending", "pendingInterceptorsFormatter", "pluralizer", "require_proxy_agent", "__commonJSMin", "exports", "module", "kProxy", "kClose", "kDestroy", "kInterceptors", "URL", "Agent", "Pool", "DispatcherBase", "InvalidArgumentError", "RequestAbortedError", "buildConnector", "kAgent", "kClient", "kProxyHeaders", "kRequestTls", "kProxyTls", "kConnectEndpoint", "defaultProtocolPort", "protocol", "buildProxyOptions", "opts", "defaultFactory", "origin", "ProxyAgent", "clientFactory", "resolvedUrl", "port", "host", "connect", "callback", "requestedHost", "socket", "statusCode", "servername", "err", "handler", "headers", "buildHeaders", "throwIfProxyAuthIsSent", "headersPair", "i", "key", "require_global", "__commonJSMin", "exports", "module", "globalDispatcher", "InvalidArgumentError", "Agent", "getGlobalDispatcher", "setGlobalDispatcher", "agent", "require_DecoratorHandler", "__commonJSMin", "exports", "module", "handler", "args", "require_headers", "__commonJSMin", "exports", "module", "kHeadersList", "kGuard", "kEnumerableProperty", "makeIterator", "isValidHeaderName", "isValidHeaderValue", "webidl", "assert", "kHeadersMap", "kHeadersSortedMap", "headerValueNormalize", "potentialValue", "i", "fill", "headers", "object", "header", "key", "value", "HeadersList", "_HeadersList", "init", "name", "lowercaseName", "exists", "delimiter", "Headers", "_Headers", "list", "names", "a", "b", "cookies", "callbackFn", "thisArg", "V", "require_response", "__commonJSMin", "exports", "module", "Headers", "HeadersList", "fill", "extractBody", "cloneBody", "mixinBody", "util", "kEnumerableProperty", "isValidReasonPhrase", "isCancelled", "isAborted", "isBlobLike", "serializeJavascriptValueToJSONString", "isErrorLike", "isomorphicEncode", "redirectStatus", "nullBodyStatus", "DOMException", "kState", "kHeaders", "kGuard", "kRealm", "webidl", "FormData", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "types", "ReadableStream", "Response", "_Response", "relevantRealm", "responseObject", "makeNetworkError", "data", "init", "bytes", "body", "initializeResponse", "url", "status", "parsedURL", "err", "value", "makeResponse", "bodyWithType", "extractedBody", "type", "urlList", "clonedResponse", "cloneResponse", "clonedResponseObject", "response", "filterResponse", "newResponse", "reason", "isError", "makeFilteredResponse", "state", "target", "p", "makeAppropriateNetworkError", "fetchParams", "V", "require_request", "__commonJSMin", "exports", "module", "extractBody", "mixinBody", "cloneBody", "Headers", "fillHeaders", "HeadersList", "FinalizationRegistry", "util", "isValidHTTPToken", "sameOrigin", "normalizeMethod", "makePolicyContainer", "forbiddenMethods", "corsSafeListedMethods", "referrerPolicy", "requestRedirect", "requestMode", "requestCredentials", "requestCache", "requestDuplex", "kEnumerableProperty", "kHeaders", "kSignal", "kState", "kGuard", "kRealm", "webidl", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "getMaxListeners", "setMaxListeners", "getEventListeners", "defaultMaxListeners", "TransformStream", "kInit", "kAbortController", "requestFinalizer", "signal", "abort", "Request", "_Request", "input", "init", "request", "fallbackMode", "baseUrl", "parsedURL", "err", "makeRequest", "origin", "window", "referrer", "parsedReferrer", "mode", "method", "ac", "acRef", "headers", "key", "val", "inputBody", "initBody", "extractedBody", "contentType", "inputOrInitBody", "finalBody", "identityTransform", "clonedRequest", "cloneRequest", "clonedRequestObject", "newRequest", "V", "require_fetch", "__commonJSMin", "exports", "module", "Response", "makeNetworkError", "makeAppropriateNetworkError", "filterResponse", "makeResponse", "Headers", "Request", "makeRequest", "zlib", "bytesMatch", "makePolicyContainer", "clonePolicyContainer", "requestBadPort", "TAOCheck", "appendRequestOriginHeader", "responseLocationURL", "requestCurrentURL", "setRequestReferrerPolicyOnRedirect", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "createOpaqueTimingInfo", "appendFetchMetadata", "corsCheck", "crossOriginResourcePolicyCheck", "determineRequestsReferrer", "coarsenedSharedCurrentTime", "createDeferredPromise", "isBlobLike", "sameOrigin", "isCancelled", "isAborted", "isErrorLike", "fullyReadBody", "readableStreamClose", "isomorphicEncode", "urlIsLocal", "urlIsHttpHttpsScheme", "urlHasHttpsScheme", "kState", "kHeaders", "kGuard", "kRealm", "assert", "safelyExtractBody", "redirectStatus", "nullBodyStatus", "safeMethods", "requestBodyHeader", "subresource", "DOMException", "kHeadersList", "EE", "Readable", "pipeline", "addAbortListener", "isErrored", "isReadable", "nodeMajor", "nodeMinor", "dataURLProcessor", "serializeAMimeType", "TransformStream", "getGlobalDispatcher", "webidl", "STATUS_CODES", "resolveObjectURL", "ReadableStream", "Fetch", "dispatcher", "reason", "error", "fetch", "input", "init", "p", "requestObject", "e", "request", "abortFetch", "responseObject", "relevantRealm", "locallyAborted", "controller", "fetching", "response", "finalizeAndReportTiming", "initiatorType", "originalURL", "timingInfo", "cacheState", "markResourceTiming", "globalThis", "err", "processRequestBodyChunkLength", "processRequestEndOfBody", "processResponse", "processResponseEndOfBody", "processResponseConsumeBody", "useParallelQueue", "taskDestination", "crossOriginIsolatedCapability", "currenTime", "fetchParams", "mainFetch", "recursive", "currentURL", "schemeFetch", "httpFetch", "internalResponse", "processBodyError", "fetchFinale", "processBody", "bytes", "scheme", "blobURLEntry", "blobURLEntryObject", "bodyWithType", "body", "length", "type", "dataURLStruct", "mimeType", "finalizeResponse", "identityTransformAlgorithm", "chunk", "transformStream", "nullOrBytes", "failure", "actualResponse", "httpNetworkOrCacheFetch", "httpRedirectFetch", "locationURL", "headerName", "isAuthenticationFetch", "isNewConnectionFetch", "httpFetchParams", "httpRequest", "httpCache", "revalidatingFlag", "includeCredentials", "contentLength", "contentLengthHeaderValue", "forwardResponse", "httpNetworkFetch", "forceNewConnection", "newConnection", "requestBody", "processBodyChunk", "processEndOfBody", "status", "statusText", "headersList", "socket", "dispatch", "iterator", "pullAlgorithm", "cancelAlgorithm", "stream", "onAborted", "isFailure", "done", "value", "url", "agent", "resolve", "reject", "abort", "connection", "resume", "codings", "location", "headers", "n", "key", "val", "x", "decoders", "willFollow", "coding", "require_symbols", "__commonJSMin", "exports", "module", "require_progressevent", "__commonJSMin", "exports", "module", "webidl", "kState", "ProgressEvent", "_ProgressEvent", "type", "eventInitDict", "require_encoding", "__commonJSMin", "exports", "module", "getEncoding", "label", "require_util", "__commonJSMin", "exports", "module", "kState", "kError", "kResult", "kAborted", "kLastProgressEventFired", "ProgressEvent", "getEncoding", "DOMException", "serializeAMimeType", "parseMIMEType", "types", "StringDecoder", "btoa", "staticPropertyDescriptors", "readOperation", "fr", "blob", "type", "encodingName", "reader", "bytes", "chunkPromise", "isFirstChunk", "done", "value", "fireAProgressEvent", "result", "packageData", "error", "e", "event", "mimeType", "dataURL", "parsed", "decoder", "chunk", "encoding", "decode", "combineByteSequences", "binaryString", "ioQueue", "BOMEncoding", "BOMSniffing", "slice", "sliced", "a", "b", "c", "sequences", "size", "offset", "require_filereader", "__commonJSMin", "exports", "module", "staticPropertyDescriptors", "readOperation", "fireAProgressEvent", "kState", "kError", "kResult", "kEvents", "kAborted", "webidl", "kEnumerableProperty", "FileReader", "_FileReader", "blob", "encoding", "fn", "require_symbols", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "URLSerializer", "isValidHeaderName", "urlEquals", "B", "excludeFragment", "serializedA", "serializedB", "fieldValues", "header", "values", "value", "require_cache", "__commonJSMin", "exports", "module", "kConstruct", "urlEquals", "getFieldValues", "kEnumerableProperty", "isDisturbed", "kHeadersList", "webidl", "Response", "cloneResponse", "Request", "kState", "kHeaders", "kGuard", "kRealm", "fetching", "urlIsHttpHttpsScheme", "createDeferredPromise", "readAllBytes", "assert", "getGlobalDispatcher", "Cache", "_Cache", "#relevantRequestResponseList", "request", "options", "p", "responses", "requestResponse", "requestResponses", "#queryCache", "responseList", "response", "responseObject", "body", "requests", "responsePromises", "requestList", "r", "fetchControllers", "responsePromise", "fieldValues", "fieldValue", "controller", "operations", "index", "operation", "cacheJobPromise", "errorData", "#batchCacheOperations", "e", "innerRequest", "innerResponse", "clonedResponse", "bodyReadPromise", "reader", "bytes", "error", "promise", "requestObject", "cache", "backupCache", "addedItems", "resultList", "idx", "requestQuery", "targetStorage", "storage", "cachedRequest", "cachedResponse", "#requestMatchesCachedItem", "queryURL", "cachedURL", "requestValue", "queryValue", "cacheQueryOptionConverters", "require_cachestorage", "__commonJSMin", "exports", "module", "kConstruct", "Cache", "webidl", "kEnumerableProperty", "CacheStorage", "_CacheStorage", "#caches", "request", "options", "cacheList", "response", "cacheName", "cache", "require_constants", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "kHeadersList", "isCTLExcludingHtab", "value", "char", "code", "validateCookieName", "name", "validateCookieValue", "validateCookiePath", "path", "validateCookieDomain", "domain", "toIMFDate", "date", "days", "months", "dayName", "day", "month", "year", "hour", "minute", "second", "validateCookieMaxAge", "maxAge", "stringify", "cookie", "out", "part", "key", "kHeadersListNode", "getHeadersList", "headers", "symbol", "headersList", "require_parse", "__commonJSMin", "exports", "module", "maxNameValuePairSize", "maxAttributeValueSize", "isCTLExcludingHtab", "collectASequenceOfCodePointsFast", "assert", "parseSetCookie", "header", "nameValuePair", "unparsedAttributes", "name", "value", "position", "parseUnparsedAttributes", "cookieAttributeList", "cookieAv", "attributeName", "attributeValue", "attributeNameLowercase", "expiryTime", "charCode", "deltaSeconds", "cookieDomain", "cookiePath", "enforcement", "attributeValueLowercase", "require_cookies", "__commonJSMin", "exports", "module", "parseSetCookie", "stringify", "getHeadersList", "webidl", "Headers", "getCookies", "headers", "cookie", "out", "piece", "name", "value", "deleteCookie", "attributes", "setCookie", "getSetCookies", "cookies", "pair", "require_constants", "__commonJSMin", "exports", "module", "uid", "staticPropertyDescriptors", "states", "opcodes", "maxUnsigned16Bit", "parserStates", "emptyBuffer", "require_symbols", "__commonJSMin", "exports", "module", "require_events", "__commonJSMin", "exports", "module", "webidl", "kEnumerableProperty", "MessagePort", "MessageEvent", "_MessageEvent", "#eventInit", "type", "eventInitDict", "bubbles", "cancelable", "data", "origin", "lastEventId", "source", "ports", "CloseEvent", "_CloseEvent", "ErrorEvent", "_ErrorEvent", "eventInit", "require_util", "__commonJSMin", "exports", "module", "kReadyState", "kController", "kResponse", "kBinaryType", "kWebSocketURL", "states", "opcodes", "MessageEvent", "ErrorEvent", "isEstablished", "ws", "isClosing", "isClosed", "fireEvent", "e", "target", "eventConstructor", "eventInitDict", "event", "websocketMessageReceived", "type", "data", "dataForEvent", "failWebsocketConnection", "isValidSubprotocol", "protocol", "char", "code", "isValidStatusCode", "reason", "controller", "response", "require_connection", "__commonJSMin", "exports", "module", "randomBytes", "createHash", "diagnosticsChannel", "uid", "states", "kReadyState", "kSentClose", "kByteParser", "kReceivedClose", "fireEvent", "failWebsocketConnection", "CloseEvent", "makeRequest", "fetching", "Headers", "getGlobalDispatcher", "kHeadersList", "channels", "establishWebSocketConnection", "url", "protocols", "ws", "onEstablish", "options", "requestURL", "request", "headersList", "keyValue", "protocol", "permessageDeflate", "response", "secWSAccept", "digest", "secExtension", "secProtocol", "onSocketData", "onSocketClose", "onSocketError", "chunk", "wasClean", "code", "reason", "result", "error", "require_frame", "__commonJSMin", "exports", "module", "randomBytes", "maxUnsigned16Bit", "WebsocketFrameSend", "data", "opcode", "bodyLength", "payloadLength", "offset", "buffer", "require_receiver", "__commonJSMin", "exports", "module", "Writable", "diagnosticsChannel", "parserStates", "opcodes", "states", "emptyBuffer", "kReadyState", "kSentClose", "kResponse", "kReceivedClose", "isValidStatusCode", "failWebsocketConnection", "websocketMessageReceived", "WebsocketFrameSend", "channels", "ByteParser", "#buffers", "#byteOffset", "#state", "#info", "#fragments", "ws", "chunk", "_", "callback", "buffer", "payloadLength", "body", "closeFrame", "err", "frame", "upper", "lower", "fullMessage", "n", "offset", "next", "length", "onlyCode", "data", "code", "reason", "require_websocket", "__commonJSMin", "exports", "module", "webidl", "DOMException", "URLSerializer", "staticPropertyDescriptors", "states", "opcodes", "emptyBuffer", "kWebSocketURL", "kReadyState", "kController", "kBinaryType", "kResponse", "kSentClose", "kByteParser", "isEstablished", "isClosing", "isValidSubprotocol", "failWebsocketConnection", "fireEvent", "establishWebSocketConnection", "WebsocketFrameSend", "ByteParser", "kEnumerableProperty", "isBlobLike", "getGlobalDispatcher", "types", "experimentalWarned", "WebSocket", "_WebSocket", "#events", "#bufferedAmount", "#protocol", "#extensions", "url", "protocols", "options", "urlRecord", "e", "p", "response", "#onConnectionEstablished", "code", "reason", "reasonByteLength", "frame", "err", "data", "socket", "value", "buffer", "ab", "fn", "type", "parser", "extensions", "protocol", "V", "require_undici", "__commonJSMin", "exports", "module", "Client", "Dispatcher", "errors", "Pool", "BalancedPool", "Agent", "util", "InvalidArgumentError", "api", "buildConnector", "MockClient", "MockAgent", "MockPool", "mockErrors", "ProxyAgent", "getGlobalDispatcher", "setGlobalDispatcher", "DecoratorHandler", "RedirectHandler", "createRedirectInterceptor", "hasCrypto", "makeDispatcher", "fn", "url", "opts", "handler", "path", "agent", "dispatcher", "fetchImpl", "resource", "err", "setGlobalOrigin", "getGlobalOrigin", "CacheStorage", "kConstruct", "deleteCookie", "getCookies", "getSetCookies", "setCookie", "parseMIMEType", "serializeAMimeType", "WebSocket", "assertInputTypes", "text", "lang", "slow", "host", "exports", "SPACE_REGEX", "DEFAULT_PUNCTUATION_REGEX", "splitLongText", "text", "_a", "_b", "_c", "maxLength", "_d", "splitPunct", "isSpaceOrPunct", "s", "i", "regex", "lastIndexOfSpaceOrPunct", "left", "right", "result", "addResult", "start", "end", "str", "exports", "assertInputTypes_1", "__importDefault", "splitLongText_1", "url_1", "getAudioUrl", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "exports", "getAllAudioUrls", "_f", "splitPunct", "shortText", "require_bind", "__commonJSMin", "exports", "module", "fn", "thisArg", "args", "i", "require_utils", "__commonJSMin", "exports", "module", "bind", "toString", "isArray", "val", "isUndefined", "isBuffer", "isArrayBuffer", "isFormData", "isArrayBufferView", "result", "isString", "isNumber", "isObject", "isPlainObject", "prototype", "isDate", "isFile", "isBlob", "isFunction", "isStream", "isURLSearchParams", "trim", "str", "isStandardBrowserEnv", "forEach", "obj", "fn", "i", "l", "key", "merge", "assignValue", "extend", "a", "b", "thisArg", "stripBOM", "content", "require_buildURL", "__commonJSMin", "exports", "module", "utils", "encode", "val", "url", "params", "paramsSerializer", "serializedParams", "parts", "key", "v", "hashmarkIndex", "require_InterceptorManager", "__commonJSMin", "exports", "module", "utils", "InterceptorManager", "fulfilled", "rejected", "options", "id", "fn", "h", "require_normalizeHeaderName", "__commonJSMin", "exports", "module", "utils", "headers", "normalizedName", "value", "name", "require_enhanceError", "__commonJSMin", "exports", "module", "error", "config", "code", "request", "response", "require_createError", "__commonJSMin", "exports", "module", "enhanceError", "message", "config", "code", "request", "response", "error", "require_settle", "__commonJSMin", "exports", "module", "createError", "resolve", "reject", "response", "validateStatus", "require_cookies", "__commonJSMin", "exports", "module", "utils", "name", "value", "expires", "path", "domain", "secure", "cookie", "match", "require_isAbsoluteURL", "__commonJSMin", "exports", "module", "url", "require_combineURLs", "__commonJSMin", "exports", "module", "baseURL", "relativeURL", "require_buildFullPath", "__commonJSMin", "exports", "module", "isAbsoluteURL", "combineURLs", "baseURL", "requestedURL", "require_parseHeaders", "__commonJSMin", "exports", "module", "utils", "ignoreDuplicateOf", "headers", "parsed", "key", "val", "i", "line", "require_isURLSameOrigin", "__commonJSMin", "exports", "module", "utils", "msie", "urlParsingNode", "originURL", "resolveURL", "url", "href", "requestURL", "parsed", "require_xhr", "__commonJSMin", "exports", "module", "utils", "settle", "cookies", "buildURL", "buildFullPath", "parseHeaders", "isURLSameOrigin", "createError", "config", "resolve", "reject", "requestData", "requestHeaders", "responseType", "request", "username", "password", "fullPath", "onloadend", "responseHeaders", "responseData", "response", "timeoutErrorMessage", "xsrfValue", "val", "key", "cancel", "require_ms", "__commonJSMin", "exports", "module", "s", "m", "h", "d", "w", "y", "val", "options", "type", "parse", "fmtLong", "fmtShort", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "require_common", "__commonJSMin", "exports", "module", "setup", "env", "createDebug", "coerce", "disable", "enable", "enabled", "destroy", "key", "selectColor", "namespace", "hash", "i", "prevTime", "enableOverride", "namespacesCache", "enabledCache", "debug", "args", "self", "curr", "ms", "index", "match", "format", "formatter", "val", "extend", "v", "delimiter", "newDebug", "namespaces", "split", "len", "toNamespace", "name", "regexp", "require_browser", "__commonJSMin", "exports", "module", "formatArgs", "save", "load", "useColors", "localstorage", "warned", "args", "c", "index", "lastC", "match", "namespaces", "r", "formatters", "v", "error", "require_has_flag", "__commonJSMin", "exports", "module", "flag", "argv", "prefix", "position", "terminatorPosition", "require_supports_color", "__commonJSMin", "exports", "module", "os", "tty", "hasFlag", "env", "forceColor", "translateLevel", "level", "supportsColor", "haveStream", "streamIsTTY", "min", "osRelease", "sign", "version", "getSupportLevel", "stream", "require_node", "__commonJSMin", "exports", "module", "tty", "util", "init", "log", "formatArgs", "save", "load", "useColors", "supportsColor", "key", "obj", "prop", "_", "k", "val", "args", "name", "c", "colorCode", "prefix", "getDate", "namespaces", "debug", "keys", "i", "formatters", "v", "str", "require_src", "__commonJSMin", "exports", "module", "require_debug", "__commonJSMin", "exports", "module", "debug", "require_follow_redirects", "__commonJSMin", "exports", "module", "url", "URL", "http", "https", "Writable", "assert", "debug", "useNativeURL", "error", "preservedUrlFields", "events", "eventHandlers", "event", "arg1", "arg2", "arg3", "InvalidUrlError", "createErrorType", "RedirectionError", "TooManyRedirectsError", "MaxBodyLengthExceededError", "WriteAfterEndError", "destroy", "noop", "RedirectableRequest", "options", "responseCallback", "self", "response", "cause", "destroyRequest", "data", "encoding", "callback", "isString", "isBuffer", "isFunction", "currentRequest", "name", "value", "msecs", "destroyOnTimeout", "socket", "startTimer", "clearTimer", "method", "a", "b", "property", "searchPos", "protocol", "nativeProtocol", "scheme", "request", "i", "buffers", "writeNext", "buffer", "statusCode", "location", "requestHeaders", "beforeRedirect", "removeMatchingHeaders", "currentHostHeader", "currentUrlParts", "parseUrl", "currentHost", "currentUrl", "redirectUrl", "resolveUrl", "spreadUrlObject", "isSubdomain", "responseDetails", "requestDetails", "wrap", "protocols", "nativeProtocols", "wrappedProtocol", "input", "isURL", "validateUrl", "get", "wrappedRequest", "parsed", "relative", "base", "urlObject", "target", "spread", "key", "regex", "headers", "lastValue", "header", "code", "message", "baseClass", "CustomError", "properties", "subdomain", "domain", "dot", "require_package", "__commonJSMin", "exports", "module", "require_http", "__commonJSMin", "exports", "module", "utils", "settle", "buildFullPath", "buildURL", "http", "https", "httpFollow", "httpsFollow", "url", "zlib", "pkg", "createError", "enhanceError", "isHttps", "setProxy", "options", "proxy", "location", "base64", "redirection", "config", "resolvePromise", "rejectPromise", "resolve", "value", "reject", "data", "headers", "auth", "username", "password", "fullPath", "parsed", "protocol", "urlAuth", "urlUsername", "urlPassword", "isHttpsRequest", "agent", "proxyEnv", "proxyUrl", "parsedProxyUrl", "noProxyEnv", "shouldProxy", "noProxy", "s", "proxyElement", "proxyUrlAuth", "transport", "isHttpsProxy", "req", "res", "stream", "lastRequest", "response", "responseBuffer", "totalResponseBytes", "chunk", "err", "responseData", "timeout", "cancel", "require_defaults", "__commonJSMin", "exports", "module", "utils", "normalizeHeaderName", "enhanceError", "DEFAULT_CONTENT_TYPE", "setContentTypeIfUnset", "headers", "value", "getDefaultAdapter", "adapter", "stringifySafely", "rawValue", "parser", "encoder", "e", "defaults", "data", "transitional", "silentJSONParsing", "forcedJSONParsing", "strictJSONParsing", "status", "method", "require_transformData", "__commonJSMin", "exports", "module", "utils", "defaults", "data", "headers", "fns", "context", "fn", "require_isCancel", "__commonJSMin", "exports", "module", "value", "require_dispatchRequest", "__commonJSMin", "exports", "module", "utils", "transformData", "isCancel", "defaults", "throwIfCancellationRequested", "config", "method", "adapter", "response", "reason", "require_mergeConfig", "__commonJSMin", "exports", "module", "utils", "config1", "config2", "config", "valueFromConfig2Keys", "mergeDeepPropertiesKeys", "defaultToConfig2Keys", "directMergeKeys", "getMergedValue", "target", "source", "mergeDeepProperties", "prop", "axiosKeys", "otherKeys", "key", "require_validator", "__commonJSMin", "exports", "module", "pkg", "validators", "type", "i", "thing", "deprecatedWarnings", "currentVerArr", "isOlderVersion", "version", "thanVersion", "pkgVersionArr", "destVer", "validator", "message", "isDeprecated", "formatMessage", "opt", "desc", "value", "opts", "assertOptions", "options", "schema", "allowUnknown", "keys", "result", "require_Axios", "__commonJSMin", "exports", "module", "utils", "buildURL", "InterceptorManager", "dispatchRequest", "mergeConfig", "validator", "validators", "Axios", "instanceConfig", "config", "transitional", "requestInterceptorChain", "synchronousRequestInterceptors", "interceptor", "responseInterceptorChain", "promise", "chain", "newConfig", "onFulfilled", "onRejected", "error", "method", "url", "data", "require_Cancel", "__commonJSMin", "exports", "module", "Cancel", "message", "require_CancelToken", "__commonJSMin", "exports", "module", "Cancel", "CancelToken", "executor", "resolvePromise", "resolve", "token", "message", "cancel", "c", "require_spread", "__commonJSMin", "exports", "module", "callback", "arr", "require_isAxiosError", "__commonJSMin", "exports", "module", "payload", "require_axios", "__commonJSMin", "exports", "module", "utils", "bind", "Axios", "mergeConfig", "defaults", "createInstance", "defaultConfig", "context", "instance", "axios", "instanceConfig", "promises", "require_axios", "__commonJSMin", "exports", "module", "e", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "_f", "splitPunct", "_g", "timeout", "shortTextList", "shortText", "base64List", "_h", "result", "i", "base64", "getAudioUrl_1", "exports", "getAudioBase64_1", "http", "__importStar", "https", "toBuffer", "stream", "length", "chunks", "chunk", "exports", "json", "str", "_err", "err", "req", "url", "opts", "promise", "resolve", "reject", "net", "__importStar", "http", "https_1", "__exportStar", "exports", "INTERNAL", "Agent", "opts", "options", "stack", "l", "name", "fakeSocket", "socket", "sockets", "index", "req", "cb", "connectOpts", "err", "v", "debug_1", "__importDefault", "debug", "parseProxyResponse", "socket", "resolve", "reject", "buffersLength", "buffers", "read", "b", "ondata", "cleanup", "onend", "onerror", "err", "buffered", "endOfHeaders", "headerParts", "firstLine", "firstLineParts", "statusCode", "statusText", "headers", "header", "firstColon", "key", "value", "current", "exports", "net", "__importStar", "tls", "assert_1", "__importDefault", "debug_1", "agent_base_1", "url_1", "parse_proxy_response_1", "debug", "setServernameFromNonIpHost", "options", "HttpsProxyAgent", "proxy", "opts", "host", "port", "omit", "req", "socket", "headers", "payload", "auth", "name", "proxyResponsePromise", "connect", "buffered", "resume", "fakeSocket", "s", "exports", "obj", "keys", "ret", "key", "instant_translate_paste_exports", "__export", "InstantTranslatePaste", "__toCommonJS", "import_api", "import_api", "import_querystring", "import_undici", "languages", "getISOCode", "language", "key", "isSupported", "import_undici", "zr", "a", "b", "yr", "wr", "c", "window", "d", "e", "f", "g", "l", "h", "xr", "config", "updateTKK", "now", "code", "xt", "tokenGenerator", "text", "tk", "error", "translate", "text", "options", "error", "lang", "isSupported", "getISOCode", "token", "tokenGenerator", "baseUrl", "data", "url", "querystring", "requestOptions", "requestUrl", "body", "result", "obj", "str", "googleTTS", "import_https_proxy_agent", "TranslateError", "extractPronounceTextFromRaw", "raw", "simpleTranslate", "text", "options", "translated", "translate", "err", "error", "baseInstantTranslate", "onTranslated", "preferences", "targetLanguage", "sourceLanguage", "proxy", "selectedText", "error", "result", "simpleTranslate", "translation", "InstantTranslatePaste", "baseInstantTranslate", "translatedText"] -} diff --git a/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-view.js b/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-view.js @@ -1,73 +0,0 @@ -"use strict";var uu=Object.create;var Es=Object.defineProperty;var fu=Object.getOwnPropertyDescriptor;var du=Object.getOwnPropertyNames;var yu=Object.getPrototypeOf,wu=Object.prototype.hasOwnProperty;var c=(A,e)=>()=>(e||A((e={exports:{}}).exports,e),e.exports),Du=(A,e)=>{for(var t in e)Es(A,t,{get:e[t],enumerable:!0})},eE=(A,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of du(e))!wu.call(A,s)&&s!==t&&Es(A,s,{get:()=>e[s],enumerable:!(r=fu(e,s))||r.enumerable});return A};var cr=(A,e,t)=>(t=A!=null?uu(yu(A)):{},eE(e||!A||!A.__esModule?Es(t,"default",{value:A,enumerable:!0}):t,A)),pu=A=>eE(Es({},"__esModule",{value:!0}),A);var $=c((ib,tE)=>{tE.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size")}});var Z=c((ob,rE)=>{"use strict";var nA=class extends Error{constructor(e){super(e),this.name="UndiciError",this.code="UND_ERR"}},ai=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="ConnectTimeoutError",this.message=e||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},Ci=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="HeadersTimeoutError",this.message=e||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},Bi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="HeadersOverflowError",this.message=e||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},Ii=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="BodyTimeoutError",this.message=e||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},ci=class A extends nA{constructor(e,t,r,s){super(e),Error.captureStackTrace(this,A),this.name="ResponseStatusCodeError",this.message=e||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=s,this.status=t,this.statusCode=t,this.headers=r}},hi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="InvalidArgumentError",this.message=e||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},li=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="InvalidReturnValueError",this.message=e||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},ui=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="AbortError",this.message=e||"Request aborted",this.code="UND_ERR_ABORTED"}},fi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="InformationalError",this.message=e||"Request information",this.code="UND_ERR_INFO"}},di=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="RequestContentLengthMismatchError",this.message=e||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},yi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="ResponseContentLengthMismatchError",this.message=e||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},wi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="ClientDestroyedError",this.message=e||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},Di=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="ClientClosedError",this.message=e||"The client is closed",this.code="UND_ERR_CLOSED"}},pi=class A extends nA{constructor(e,t){super(e),Error.captureStackTrace(this,A),this.name="SocketError",this.message=e||"Socket error",this.code="UND_ERR_SOCKET",this.socket=t}},as=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="NotSupportedError",this.message=e||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},Ri=class extends nA{constructor(e){super(e),Error.captureStackTrace(this,as),this.name="MissingUpstreamError",this.message=e||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},ki=class A extends Error{constructor(e,t,r){super(e),Error.captureStackTrace(this,A),this.name="HTTPParserError",this.code=t?`HPE_${t}`:void 0,this.data=r?r.toString():void 0}},Fi=class A extends nA{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="ResponseExceededMaxSizeError",this.message=e||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}};rE.exports={HTTPParserError:ki,UndiciError:nA,HeadersTimeoutError:Ci,HeadersOverflowError:Bi,BodyTimeoutError:Ii,RequestContentLengthMismatchError:di,ConnectTimeoutError:ai,ResponseStatusCodeError:ci,InvalidArgumentError:hi,InvalidReturnValueError:li,RequestAbortedError:ui,ClientDestroyedError:wi,ClientClosedError:Di,InformationalError:fi,SocketError:pi,NotSupportedError:as,ResponseContentLengthMismatchError:yi,BalancedPoolMissingUpstreamError:Ri,ResponseExceededMaxSizeError:Fi}});var G=c((gb,IE)=>{"use strict";var oE=require("assert"),{kDestroyed:gE,kBodyUsed:sE}=$(),{IncomingMessage:Ru}=require("http"),Dt=require("stream"),ku=require("net"),{InvalidArgumentError:cA}=Z(),{Blob:nE}=require("buffer"),Bs=require("util"),{stringify:Fu}=require("querystring"),[Ni,iE]=process.versions.node.split(".").map(A=>Number(A));function Nu(){}function mi(A){return A&&typeof A=="object"&&typeof A.pipe=="function"&&typeof A.on=="function"}function QE(A){return nE&&A instanceof nE||A&&typeof A=="object"&&(typeof A.stream=="function"||typeof A.arrayBuffer=="function")&&/^(Blob|File)$/.test(A[Symbol.toStringTag])}function mu(A,e){if(A.includes("?")||A.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let t=Fu(e);return t&&(A+="?"+t),A}function EE(A){if(typeof A=="string"){if(A=new URL(A),!/^https?:/.test(A.origin||A.protocol))throw new cA("Invalid URL protocol: the URL must start with `http:` or `https:`.");return A}if(!A||typeof A!="object")throw new cA("Invalid URL: The URL argument must be a non-null object.");if(A.port!=null&&A.port!==""&&!Number.isFinite(parseInt(A.port)))throw new cA("Invalid URL: port must be a valid integer or a string representation of an integer.");if(A.path!=null&&typeof A.path!="string")throw new cA("Invalid URL path: the path must be a string or null/undefined.");if(A.pathname!=null&&typeof A.pathname!="string")throw new cA("Invalid URL pathname: the pathname must be a string or null/undefined.");if(A.hostname!=null&&typeof A.hostname!="string")throw new cA("Invalid URL hostname: the hostname must be a string or null/undefined.");if(A.origin!=null&&typeof A.origin!="string")throw new cA("Invalid URL origin: the origin must be a string or null/undefined.");if(!/^https?:/.test(A.origin||A.protocol))throw new cA("Invalid URL protocol: the URL must start with `http:` or `https:`.");if(!(A instanceof URL)){let e=A.port!=null?A.port:A.protocol==="https:"?443:80,t=A.origin!=null?A.origin:`${A.protocol}//${A.hostname}:${e}`,r=A.path!=null?A.path:`${A.pathname||""}${A.search||""}`;t.endsWith("/")&&(t=t.substring(0,t.length-1)),r&&!r.startsWith("/")&&(r=`/${r}`),A=new URL(t+r)}return A}function bu(A){if(A=EE(A),A.pathname!=="/"||A.search||A.hash)throw new cA("invalid url");return A}function Su(A){if(A[0]==="["){let t=A.indexOf("]");return oE(t!==-1),A.substr(1,t-1)}let e=A.indexOf(":");return e===-1?A:A.substr(0,e)}function Uu(A){if(!A)return null;oE.strictEqual(typeof A,"string");let e=Su(A);return ku.isIP(e)?"":e}function Lu(A){return JSON.parse(JSON.stringify(A))}function Mu(A){return A!=null&&typeof A[Symbol.asyncIterator]=="function"}function Yu(A){return A!=null&&(typeof A[Symbol.iterator]=="function"||typeof A[Symbol.asyncIterator]=="function")}function Ju(A){if(A==null)return 0;if(mi(A)){let e=A._readableState;return e&&e.ended===!0&&Number.isFinite(e.length)?e.length:null}else{if(QE(A))return A.size!=null?A.size:null;if(CE(A))return A.byteLength}return null}function bi(A){return!A||!!(A.destroyed||A[gE])}function aE(A){let e=A&&A._readableState;return bi(A)&&e&&!e.endEmitted}function Gu(A,e){!mi(A)||bi(A)||(typeof A.destroy=="function"?(Object.getPrototypeOf(A).constructor===Ru&&(A.socket=null),A.destroy(e)):e&&process.nextTick((t,r)=>{t.emit("error",r)},A,e),A.destroyed!==!0&&(A[gE]=!0))}var Tu=/timeout=(\d+)/;function vu(A){let e=A.toString().match(Tu);return e?parseInt(e[1],10)*1e3:null}function Hu(A,e={}){for(let t=0;t<A.length;t+=2){let r=A[t].toString().toLowerCase(),s=e[r];s?(Array.isArray(s)||(s=[s],e[r]=s),s.push(A[t+1].toString("utf8"))):Array.isArray(A[t+1])?e[r]=A[t+1]:e[r]=A[t+1].toString("utf8")}return"content-length"in e&&"content-disposition"in e&&(e["content-disposition"]=Buffer.from(e["content-disposition"]).toString("latin1")),e}function Vu(A){let e=[],t=!1,r=-1;for(let s=0;s<A.length;s+=2){let n=A[s+0].toString(),i=A[s+1].toString("utf8");n.length===14&&(n==="content-length"||n.toLowerCase()==="content-length")?(e.push(n,i),t=!0):n.length===19&&(n==="content-disposition"||n.toLowerCase()==="content-disposition")?r=e.push(n,i)-1:e.push(n,i)}return t&&r!==-1&&(e[r]=Buffer.from(e[r]).toString("latin1")),e}function CE(A){return A instanceof Uint8Array||Buffer.isBuffer(A)}function xu(A,e,t){if(!A||typeof A!="object")throw new cA("handler must be an object");if(typeof A.onConnect!="function")throw new cA("invalid onConnect method");if(typeof A.onError!="function")throw new cA("invalid onError method");if(typeof A.onBodySent!="function"&&A.onBodySent!==void 0)throw new cA("invalid onBodySent method");if(t||e==="CONNECT"){if(typeof A.onUpgrade!="function")throw new cA("invalid onUpgrade method")}else{if(typeof A.onHeaders!="function")throw new cA("invalid onHeaders method");if(typeof A.onData!="function")throw new cA("invalid onData method");if(typeof A.onComplete!="function")throw new cA("invalid onComplete method")}}function qu(A){return!!(A&&(Dt.isDisturbed?Dt.isDisturbed(A)||A[sE]:A[sE]||A.readableDidRead||A._readableState&&A._readableState.dataEmitted||aE(A)))}function Wu(A){return!!(A&&(Dt.isErrored?Dt.isErrored(A):/state: 'errored'/.test(Bs.inspect(A))))}function Ou(A){return!!(A&&(Dt.isReadable?Dt.isReadable(A):/state: 'readable'/.test(Bs.inspect(A))))}function Pu(A){return{localAddress:A.localAddress,localPort:A.localPort,remoteAddress:A.remoteAddress,remotePort:A.remotePort,remoteFamily:A.remoteFamily,timeout:A.timeout,bytesWritten:A.bytesWritten,bytesRead:A.bytesRead}}var hr;function _u(A){if(hr||(hr=require("stream/web").ReadableStream),hr.from)return hr.from(A);let e;return new hr({async start(){e=A[Symbol.asyncIterator]()},async pull(t){let{done:r,value:s}=await e.next();if(r)queueMicrotask(()=>{t.close()});else{let n=Buffer.isBuffer(s)?s:Buffer.from(s);t.enqueue(new Uint8Array(n))}return t.desiredSize>0},async cancel(t){await e.return()}},0)}function Zu(A){return 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"&&A[Symbol.toStringTag]==="FormData"}function Xu(A){if(A){if(typeof A.throwIfAborted=="function")A.throwIfAborted();else if(A.aborted){let e=new Error("The operation was aborted");throw e.name="AbortError",e}}}var Cs;function Ku(A,e){return typeof Symbol.dispose=="symbol"&&(Cs||(Cs=require("events")),typeof Cs.addAbortListener=="function"&&"aborted"in A)?Cs.addAbortListener(A,e):"addEventListener"in A?(A.addEventListener("abort",e,{once:!0}),()=>A.removeEventListener("abort",e)):(A.addListener("abort",e),()=>A.removeListener("abort",e))}var ju=!!String.prototype.toWellFormed;function zu(A){return ju?`${A}`.toWellFormed():Bs.toUSVString?Bs.toUSVString(A):`${A}`}var BE=Object.create(null);BE.enumerable=!0;IE.exports={kEnumerableProperty:BE,nop:Nu,isDisturbed:qu,isErrored:Wu,isReadable:Ou,toUSVString:zu,isReadableAborted:aE,isBlobLike:QE,parseOrigin:bu,parseURL:EE,getServerName:Uu,isStream:mi,isIterable:Yu,isAsyncIterable:Mu,isDestroyed:bi,parseRawHeaders:Vu,parseHeaders:Hu,parseKeepAliveTimeout:vu,destroy:Gu,bodyLength:Ju,deepClone:Lu,ReadableStreamFrom:_u,isBuffer:CE,validateHandler:xu,getSocketInfo:Pu,isFormDataLike:Zu,buildURL:mu,throwIfAborted:Xu,addAbortListener:Ku,nodeMajor:Ni,nodeMinor:iE,nodeHasAutoSelectFamily:Ni>18||Ni===18&&iE>=13}});var lE=c((Qb,hE)=>{"use strict";var Si=Date.now(),ve,He=[];function $u(){Si=Date.now();let A=He.length,e=0;for(;e<A;){let t=He[e];t.state===0?t.state=Si+t.delay:t.state>0&&Si>=t.state&&(t.state=-1,t.callback(t.opaque)),t.state===-1?(t.state=-2,e!==A-1?He[e]=He.pop():He.pop(),A-=1):e+=1}He.length>0&&cE()}function cE(){ve&&ve.refresh?ve.refresh():(clearTimeout(ve),ve=setTimeout($u,1e3),ve.unref&&ve.unref())}var Is=class{constructor(e,t,r){this.callback=e,this.delay=t,this.opaque=r,this.state=-2,this.refresh()}refresh(){this.state===-2&&(He.push(this),(!ve||He.length===1)&&cE()),this.state=0}clear(){this.state=-1}};hE.exports={setTimeout(A,e,t){return e<1e3?setTimeout(A,e,t):new Is(A,e,t)},clearTimeout(A){A instanceof Is?A.clear():clearTimeout(A)}}});var cs=c((wE,DE)=>{"use strict";function Af(A){if(A.length===0)return;let e=Object.create(null),t=0;for(;t<A.length;++t){let i=A.charCodeAt(t);if(At[i]!==1){if(i!==47||t===0)return;break}}if(t===A.length)return;let r=A.slice(0,t).toLowerCase(),s=++t;for(;t<A.length;++t){let i=A.charCodeAt(t);if(At[i]!==1){if(t===s||ef(A,t,e)===void 0)return;break}}if(t===s)return;let n=A.slice(s,t).toLowerCase();return{type:r,subtype:n,params:e}}function ef(A,e,t){for(;e<A.length;){for(;e<A.length;++e){let o=A.charCodeAt(e);if(o!==32&&o!==9)break}if(e===A.length)break;if(A.charCodeAt(e++)!==59)return;for(;e<A.length;++e){let o=A.charCodeAt(e);if(o!==32&&o!==9)break}if(e===A.length)return;let r,s=e;for(;e<A.length;++e){let o=A.charCodeAt(e);if(At[o]!==1){if(o!==61)return;break}}if(e===A.length||(r=A.slice(s,e),++e,e===A.length))return;let n="",i;if(A.charCodeAt(e)===34){i=++e;let o=!1;for(;e<A.length;++e){let g=A.charCodeAt(e);if(g===92){o?(i=e,o=!1):(n+=A.slice(i,e),o=!0);continue}if(g===34){if(o){i=e,o=!1;continue}n+=A.slice(i,e);break}if(o&&(i=e-1,o=!1),yE[g]!==1)return}if(e===A.length)return;++e}else{for(i=e;e<A.length;++e){let o=A.charCodeAt(e);if(At[o]!==1){if(e===i)return;break}}n=A.slice(i,e)}r=r.toLowerCase(),t[r]===void 0&&(t[r]=n)}return t}function tf(A,e){if(A.length===0)return;let t=Object.create(null),r=0;for(;r<A.length;++r){let n=A.charCodeAt(r);if(At[n]!==1){if(rf(A,r,t,e)===void 0)return;break}}return{type:A.slice(0,r).toLowerCase(),params:t}}function rf(A,e,t,r){for(;e<A.length;){for(;e<A.length;++e){let a=A.charCodeAt(e);if(a!==32&&a!==9)break}if(e===A.length)break;if(A.charCodeAt(e++)!==59)return;for(;e<A.length;++e){let a=A.charCodeAt(e);if(a!==32&&a!==9)break}if(e===A.length)return;let s,n=e;for(;e<A.length;++e){let a=A.charCodeAt(e);if(At[a]!==1){if(a===61)break;return}}if(e===A.length)return;let i="",o,g;if(s=A.slice(n,e),s.charCodeAt(s.length-1)===42){let a=++e;for(;e<A.length;++e){let E=A.charCodeAt(e);if(nf[E]!==1){if(E!==39)return;break}}if(e===A.length)return;for(g=A.slice(a,e),++e;e<A.length&&A.charCodeAt(e)!==39;++e);if(e===A.length||(++e,e===A.length))return;o=e;let Q=0;for(;e<A.length;++e){let E=A.charCodeAt(e);if(of[E]!==1){if(E===37){let C,B;if(e+2<A.length&&(C=uE[A.charCodeAt(e+1)])!==-1&&(B=uE[A.charCodeAt(e+2)])!==-1){let I=(C<<4)+B;i+=A.slice(o,e),i+=String.fromCharCode(I),e+=2,o=e+1,I>=128?Q=2:Q===0&&(Q=1);continue}return}break}}if(i+=A.slice(o,e),i=dE(i,g,Q),i===void 0)return}else{if(++e,e===A.length)return;if(A.charCodeAt(e)===34){o=++e;let a=!1;for(;e<A.length;++e){let Q=A.charCodeAt(e);if(Q===92){a?(o=e,a=!1):(i+=A.slice(o,e),a=!0);continue}if(Q===34){if(a){o=e,a=!1;continue}i+=A.slice(o,e);break}if(a&&(o=e-1,a=!1),yE[Q]!==1)return}if(e===A.length)return;++e}else{for(o=e;e<A.length;++e){let a=A.charCodeAt(e);if(At[a]!==1){if(e===o)return;break}}i=A.slice(o,e)}if(i=r(i,2),i===void 0)return}s=s.toLowerCase(),t[s]===void 0&&(t[s]=i)}return t}function fE(A){let e;for(;;)switch(A){case"utf-8":case"utf8":return lr.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return lr.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return lr.utf16le;case"base64":return lr.base64;default:if(e===void 0){e=!0,A=A.toLowerCase();continue}return lr.other.bind(A)}}var lr={utf8:(A,e)=>{if(A.length===0)return"";if(typeof A=="string"){if(e<2)return A;A=Buffer.from(A,"latin1")}return A.utf8Slice(0,A.length)},latin1:(A,e)=>A.length===0?"":typeof A=="string"?A:A.latin1Slice(0,A.length),utf16le:(A,e)=>A.length===0?"":(typeof A=="string"&&(A=Buffer.from(A,"latin1")),A.ucs2Slice(0,A.length)),base64:(A,e)=>A.length===0?"":(typeof A=="string"&&(A=Buffer.from(A,"latin1")),A.base64Slice(0,A.length)),other:(A,e)=>{if(A.length===0)return"";typeof A=="string"&&(A=Buffer.from(A,"latin1"));try{return new TextDecoder(wE).decode(A)}catch{}}};function dE(A,e,t){let r=fE(e);if(r)return r(A,t)}function sf(A){if(typeof A!="string")return"";for(let e=A.length-1;e>=0;--e)switch(A.charCodeAt(e)){case 47:case 92:return A=A.slice(e+1),A===".."||A==="."?"":A}return A===".."||A==="."?"":A}var At=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],yE=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],nf=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],of=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],uE=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];DE.exports={basename:sf,convertToUTF8:dE,getDecoder:fE,parseContentType:Af,parseDisposition:tf}});var FE=c((Eb,kE)=>{"use strict";function pE(A,e,t,r,s){for(let n=0;n<s;++n)if(A[e+n]!==t[r+n])return!1;return!0}var Ui=class{constructor(e,t){if(typeof t!="function")throw new Error("Missing match callback");if(typeof e=="string")e=Buffer.from(e);else if(!Buffer.isBuffer(e))throw new Error(`Expected Buffer for needle, got ${typeof e}`);let r=e.length;if(this.maxMatches=1/0,this.matches=0,this._cb=t,this._lookbehindSize=0,this._needle=e,this._bufPos=0,this._lookbehind=Buffer.allocUnsafe(r),this._occ=[r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r],r>1)for(let s=0;s<r-1;++s)this._occ[e[s]]=r-1-s}reset(){this.matches=0,this._lookbehindSize=0,this._bufPos=0}push(e,t){let r;Buffer.isBuffer(e)||(e=Buffer.from(e,"latin1"));let s=e.length;for(this._bufPos=t||0;r!==s&&this.matches<this.maxMatches;)r=gf(this,e);return r}destroy(){let e=this._lookbehindSize;e&&this._cb(!1,this._lookbehind,0,e,!1),this.reset()}};function gf(A,e){let t=e.length,r=A._needle,s=r.length,n=-A._lookbehindSize,i=s-1,o=r[i],g=t-s,a=A._occ,Q=A._lookbehind;if(n<0){for(;n<0&&n<=g;){let C=n+i,B=C<0?Q[A._lookbehindSize+C]:e[C];if(B===o&&RE(A,e,n,i))return A._lookbehindSize=0,++A.matches,n>-A._lookbehindSize?A._cb(!0,Q,0,A._lookbehindSize+n,!1):A._cb(!0,void 0,0,0,!0),A._bufPos=n+s;n+=a[B]}for(;n<0&&!RE(A,e,n,t-n);)++n;if(n<0){let C=A._lookbehindSize+n;return C>0&&A._cb(!1,Q,0,C,!1),A._lookbehindSize-=C,Q.copy(Q,0,C,A._lookbehindSize),Q.set(e,A._lookbehindSize),A._lookbehindSize+=t,A._bufPos=t,t}A._cb(!1,Q,0,A._lookbehindSize,!1),A._lookbehindSize=0}n+=A._bufPos;let E=r[0];for(;n<=g;){let C=e[n+i];if(C===o&&e[n]===E&&pE(r,0,e,n,i))return++A.matches,n>0?A._cb(!0,e,A._bufPos,n,!0):A._cb(!0,void 0,0,0,!0),A._bufPos=n+s;n+=a[C]}for(;n<t;){if(e[n]!==E||!pE(e,n,r,0,t-n)){++n;continue}e.copy(Q,0,n,t),A._lookbehindSize=t-n;break}return n>0&&A._cb(!1,e,A._bufPos,n<t?n:t,!0),A._bufPos=t,t}function RE(A,e,t,r){let s=A._lookbehind,n=A._lookbehindSize,i=A._needle;for(let o=0;o<r;++o,++t)if((t<0?s[n+t]:e[t])!==i[o])return!1;return!0}kE.exports=Ui});var JE=c((ab,YE)=>{"use strict";var{Readable:Qf,Writable:Ef}=require("stream"),af=FE(),{basename:Cf,convertToUTF8:NE,getDecoder:Bf,parseContentType:If,parseDisposition:cf}=cs(),hf=Buffer.from(`\r -`),lf=Buffer.from("\r"),uf=Buffer.from("-");function mE(){}var ff=2e3,pt=16*1024,hs=0,bE=1,SE=2,Li=class{constructor(e){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=hs,this.name="",this.value="",this.crlf=0,this.cb=e}reset(){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=hs,this.name="",this.value="",this.crlf=0}push(e,t,r){let s=t;for(;t<r;)switch(this.state){case hs:{let n=!1;for(;t<r;++t){if(this.byteCount===pt)return-1;++this.byteCount;let i=e[t];if(wf[i]!==1){if(i!==58||(this.name+=e.latin1Slice(s,t),this.name.length===0))return-1;++t,n=!0,this.state=bE;break}}if(!n){this.name+=e.latin1Slice(s,t);break}}case bE:{let n=!1;for(;t<r;++t){if(this.byteCount===pt)return-1;++this.byteCount;let i=e[t];if(i!==32&&i!==9){s=t,n=!0,this.state=SE;break}}if(!n)break}case SE:switch(this.crlf){case 0:for(;t<r;++t){if(this.byteCount===pt)return-1;++this.byteCount;let n=e[t];if(Df[n]!==1){if(n!==13)return-1;++this.crlf;break}}this.value+=e.latin1Slice(s,t++);break;case 1:if(this.byteCount===pt||(++this.byteCount,e[t++]!==10))return-1;++this.crlf;break;case 2:{if(this.byteCount===pt)return-1;++this.byteCount;let n=e[t];n===32||n===9?(s=t,this.crlf=0):(++this.pairCount<ff&&(this.name=this.name.toLowerCase(),this.header[this.name]===void 0?this.header[this.name]=[this.value]:this.header[this.name].push(this.value)),n===13?(++this.crlf,++t):(s=t,this.crlf=0,this.state=hs,this.name="",this.value=""));break}case 3:{if(this.byteCount===pt||(++this.byteCount,e[t++]!==10))return-1;let n=this.header;return this.reset(),this.cb(n),t}}break}return t}},Mi=class extends Qf{constructor(e,t){super(e),this.truncated=!1,this._readcb=null,this.once("end",()=>{if(this._read(),--t._fileEndsLeft===0&&t._finalcb){let r=t._finalcb;t._finalcb=null,process.nextTick(r)}})}_read(e){let t=this._readcb;t&&(this._readcb=null,t())}},UE={push:(A,e)=>{},destroy:()=>{}};function df(A,e){let t=A._writecb;A._writecb=null,e?A.destroy(e):t&&t()}function yf(A,e){return A}var Yi=class extends Ef{constructor(e){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof e.highWaterMark=="number"?e.highWaterMark:void 0};if(super(t),!e.conType.params||typeof e.conType.params.boundary!="string")throw new Error("Multipart: Boundary not found");let r=e.conType.params.boundary,s=typeof e.defParamCharset=="string"&&e.defParamCharset?Bf(e.defParamCharset):yf,n=e.defCharset||"utf8",i=e.preservePath,o={autoDestroy:!0,emitClose:!0,highWaterMark:typeof e.fileHwm=="number"?e.fileHwm:void 0},g=e.limits,a=g&&typeof g.fieldSize=="number"?g.fieldSize:1*1024*1024,Q=g&&typeof g.fileSize=="number"?g.fileSize:1/0,E=g&&typeof g.files=="number"?g.files:1/0,C=g&&typeof g.fields=="number"?g.fields:1/0,B=g&&typeof g.parts=="number"?g.parts:1/0,I=-1,h=0,l=0,u=!1;this._fileEndsLeft=0,this._fileStream=void 0,this._complete=!1;let F=0,w,k=0,T,O,V,K,uA=!1,IA=!1,wt=!1;this._hparser=null;let wA=new Li(_=>{this._hparser=null,u=!1,V="text/plain",T=n,O="7bit",K=void 0,uA=!1;let tA;if(!_["content-disposition"]){u=!0;return}let U=cf(_["content-disposition"][0],s);if(!U||U.type!=="form-data"){u=!0;return}if(U.params&&(U.params.name&&(K=U.params.name),U.params["filename*"]?tA=U.params["filename*"]:U.params.filename&&(tA=U.params.filename),tA!==void 0&&!i&&(tA=Cf(tA))),_["content-type"]){let S=If(_["content-type"][0]);S&&(V=`${S.type}/${S.subtype}`,S.params&&typeof S.params.charset=="string"&&(T=S.params.charset.toLowerCase()))}if(_["content-transfer-encoding"]&&(O=_["content-transfer-encoding"][0].toLowerCase()),V==="application/octet-stream"||tA!==void 0){if(l===E){IA||(IA=!0,this.emit("filesLimit")),u=!0;return}if(++l,this.listenerCount("file")===0){u=!0;return}F=0,this._fileStream=new Mi(o,this),++this._fileEndsLeft,this.emit("file",K,this._fileStream,{filename:tA,encoding:O,mimeType:V})}else{if(h===C){wt||(wt=!0,this.emit("fieldsLimit")),u=!0;return}if(++h,this.listenerCount("field")===0){u=!0;return}w=[],k=0}}),gA=0,Be=(_,tA,U,S,Ie)=>{A:for(;tA;){if(this._hparser!==null){let x=this._hparser.push(tA,U,S);if(x===-1){this._hparser=null,wA.reset(),this.emit("error",new Error("Malformed part header"));break}U=x}if(U===S)break;if(gA!==0){if(gA===1){switch(tA[U]){case 45:gA=2,++U;break;case 13:gA=3,++U;break;default:gA=0}if(U===S)return}if(gA===2){if(gA=0,tA[U]===45){this._complete=!0,this._bparser=UE;return}let x=this._writecb;this._writecb=mE,Be(!1,uf,0,1,!1),this._writecb=x}else if(gA===3)if(gA=0,tA[U]===10){if(++U,I>=B||(this._hparser=wA,U===S))break;continue A}else{let x=this._writecb;this._writecb=mE,Be(!1,lf,0,1,!1),this._writecb=x}}if(!u){if(this._fileStream){let x,TA=Math.min(S-U,Q-F);Ie?x=tA.slice(U,U+TA):(x=Buffer.allocUnsafe(TA),tA.copy(x,0,U,U+TA)),F+=x.length,F===Q?(x.length>0&&this._fileStream.push(x),this._fileStream.emit("limit"),this._fileStream.truncated=!0,u=!0):this._fileStream.push(x)||(this._writecb&&(this._fileStream._readcb=this._writecb),this._writecb=null)}else if(w!==void 0){let x,TA=Math.min(S-U,a-k);Ie?x=tA.slice(U,U+TA):(x=Buffer.allocUnsafe(TA),tA.copy(x,0,U,U+TA)),k+=TA,w.push(x),k===a&&(u=!0,uA=!0)}}break}if(_){if(gA=1,this._fileStream)this._fileStream.push(null),this._fileStream=null;else if(w!==void 0){let x;switch(w.length){case 0:x="";break;case 1:x=NE(w[0],T,0);break;default:x=NE(Buffer.concat(w,k),T,0)}w=void 0,k=0,this.emit("field",K,x,{nameTruncated:!1,valueTruncated:uA,encoding:O,mimeType:V})}++I===B&&this.emit("partsLimit")}};this._bparser=new af(`\r ---${r}`,Be),this._writecb=null,this._finalcb=null,this.write(hf)}static detect(e){return e.type==="multipart"&&e.subtype==="form-data"}_write(e,t,r){this._writecb=r,this._bparser.push(e,0),this._writecb&&df(this)}_destroy(e,t){this._hparser=null,this._bparser=UE,e||(e=ME(this));let r=this._fileStream;r&&(this._fileStream=null,r.destroy(e)),t(e)}_final(e){if(this._bparser.destroy(),!this._complete)return e(new Error("Unexpected end of form"));this._fileEndsLeft?this._finalcb=LE.bind(null,this,e):LE(this,e)}};function LE(A,e,t){if(t)return e(t);t=ME(A),e(t)}function ME(A){if(A._hparser)return new Error("Malformed part header");let e=A._fileStream;if(e&&(A._fileStream=null,e.destroy(new Error("Unexpected end of file"))),!A._complete)return new Error("Unexpected end of form")}var wf=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],Df=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];YE.exports=Yi});var TE=c((Cb,GE)=>{"use strict";var{Writable:pf}=require("stream"),{getDecoder:Rf}=cs(),Hi=class extends pf{constructor(e){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof e.highWaterMark=="number"?e.highWaterMark:void 0};super(t);let r=e.defCharset||"utf8";e.conType.params&&typeof e.conType.params.charset=="string"&&(r=e.conType.params.charset),this.charset=r;let s=e.limits;this.fieldSizeLimit=s&&typeof s.fieldSize=="number"?s.fieldSize:1*1024*1024,this.fieldsLimit=s&&typeof s.fields=="number"?s.fields:1/0,this.fieldNameSizeLimit=s&&typeof s.fieldNameSize=="number"?s.fieldNameSize:100,this._inKey=!0,this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,this._fields=0,this._key="",this._val="",this._byte=-2,this._lastPos=0,this._encode=0,this._decoder=Rf(r)}static detect(e){return e.type==="application"&&e.subtype==="x-www-form-urlencoded"}_write(e,t,r){if(this._fields>=this.fieldsLimit)return r();let s=0,n=e.length;if(this._lastPos=0,this._byte!==-2){if(s=Ji(this,e,s,n),s===-1)return r(new Error("Malformed urlencoded form"));if(s>=n)return r();this._inKey?++this._bytesKey:++this._bytesVal}A:for(;s<n;)if(this._inKey){for(s=Gi(this,e,s,n);s<n;){switch(e[s]){case 61:this._lastPos<s&&(this._key+=e.latin1Slice(this._lastPos,s)),this._lastPos=++s,this._key=this._decoder(this._key,this._encode),this._encode=0,this._inKey=!1;continue A;case 38:if(this._lastPos<s&&(this._key+=e.latin1Slice(this._lastPos,s)),this._lastPos=++s,this._key=this._decoder(this._key,this._encode),this._encode=0,this._bytesKey>0&&this.emit("field",this._key,"",{nameTruncated:this._keyTrunc,valueTruncated:!1,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),r();continue;case 43:this._lastPos<s&&(this._key+=e.latin1Slice(this._lastPos,s)),this._key+=" ",this._lastPos=s+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<s&&(this._key+=e.latin1Slice(this._lastPos,s)),this._lastPos=s+1,this._byte=-1,s=Ji(this,e,s+1,n),s===-1)return r(new Error("Malformed urlencoded form"));if(s>=n)return r();++this._bytesKey,s=Gi(this,e,s,n);continue}++s,++this._bytesKey,s=Gi(this,e,s,n)}this._lastPos<s&&(this._key+=e.latin1Slice(this._lastPos,s))}else{for(s=Ti(this,e,s,n);s<n;){switch(e[s]){case 38:if(this._lastPos<s&&(this._val+=e.latin1Slice(this._lastPos,s)),this._lastPos=++s,this._inKey=!0,this._val=this._decoder(this._val,this._encode),this._encode=0,(this._bytesKey>0||this._bytesVal>0)&&this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),r();continue A;case 43:this._lastPos<s&&(this._val+=e.latin1Slice(this._lastPos,s)),this._val+=" ",this._lastPos=s+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<s&&(this._val+=e.latin1Slice(this._lastPos,s)),this._lastPos=s+1,this._byte=-1,s=Ji(this,e,s+1,n),s===-1)return r(new Error("Malformed urlencoded form"));if(s>=n)return r();++this._bytesVal,s=Ti(this,e,s,n);continue}++s,++this._bytesVal,s=Ti(this,e,s,n)}this._lastPos<s&&(this._val+=e.latin1Slice(this._lastPos,s))}r()}_final(e){if(this._byte!==-2)return e(new Error("Malformed urlencoded form"));(!this._inKey||this._bytesKey>0||this._bytesVal>0)&&(this._inKey?this._key=this._decoder(this._key,this._encode):this._val=this._decoder(this._val,this._encode),this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"})),e()}};function Ji(A,e,t,r){if(t>=r)return r;if(A._byte===-1){let s=vi[e[t++]];if(s===-1)return-1;if(s>=8&&(A._encode=2),t<r){let n=vi[e[t++]];if(n===-1)return-1;A._inKey?A._key+=String.fromCharCode((s<<4)+n):A._val+=String.fromCharCode((s<<4)+n),A._byte=-2,A._lastPos=t}else A._byte=s}else{let s=vi[e[t++]];if(s===-1)return-1;A._inKey?A._key+=String.fromCharCode((A._byte<<4)+s):A._val+=String.fromCharCode((A._byte<<4)+s),A._byte=-2,A._lastPos=t}return t}function Gi(A,e,t,r){if(A._bytesKey>A.fieldNameSizeLimit){for(A._keyTrunc||A._lastPos<t&&(A._key+=e.latin1Slice(A._lastPos,t-1)),A._keyTrunc=!0;t<r;++t){let s=e[t];if(s===61||s===38)break;++A._bytesKey}A._lastPos=t}return t}function Ti(A,e,t,r){if(A._bytesVal>A.fieldSizeLimit){for(A._valTrunc||A._lastPos<t&&(A._val+=e.latin1Slice(A._lastPos,t-1)),A._valTrunc=!0;t<r&&e[t]!==38;++t)++A._bytesVal;A._lastPos=t}return t}var vi=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];GE.exports=Hi});var HE=c((Bb,vE)=>{"use strict";var{parseContentType:kf}=cs();function Ff(A){let e=A.headers,t=kf(e["content-type"]);if(!t)throw new Error("Malformed content type");for(let r of Nf){if(!r.detect(t))continue;let n={limits:A.limits,headers:e,conType:t,highWaterMark:void 0,fileHwm:void 0,defCharset:void 0,defParamCharset:void 0,preservePath:!1};return A.highWaterMark&&(n.highWaterMark=A.highWaterMark),A.fileHwm&&(n.fileHwm=A.fileHwm),n.defCharset=A.defCharset,n.defParamCharset=A.defParamCharset,n.preservePath=A.preservePath,new r(n)}throw new Error(`Unsupported content type: ${e["content-type"]}`)}var Nf=[JE(),TE()].filter(function(A){return typeof A.detect=="function"});vE.exports=A=>{if((typeof A!="object"||A===null)&&(A={}),typeof A.headers!="object"||A.headers===null||typeof A.headers["content-type"]!="string")throw new Error("Missing Content-Type");return Ff(A)}});var Ve=c((Ib,VE)=>{"use strict";var{MessageChannel:mf,receiveMessageOnPort:bf}=require("worker_threads"),Sf=["GET","HEAD","POST"],Uf=[101,204,205,304],Lf=[301,302,303,307,308],Mf=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"],Yf=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],Jf=["follow","manual","error"],Gf=["GET","HEAD","OPTIONS","TRACE"],Tf=["navigate","same-origin","no-cors","cors"],vf=["omit","same-origin","include"],Hf=["default","no-store","reload","no-cache","force-cache","only-if-cached"],Vf=["content-encoding","content-language","content-location","content-type","content-length"],xf=["half"],qf=["CONNECT","TRACE","TRACK"],Wf=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],Of=globalThis.DOMException??(()=>{try{atob("~")}catch(A){return Object.getPrototypeOf(A).constructor}})(),Rt,Pf=globalThis.structuredClone??function(e,t=void 0){if(arguments.length===0)throw new TypeError("missing argument");return Rt||(Rt=new mf),Rt.port1.unref(),Rt.port2.unref(),Rt.port1.postMessage(e,t?.transfer),bf(Rt.port2).message};VE.exports={DOMException:Of,structuredClone:Pf,subresource:Wf,forbiddenMethods:qf,requestBodyHeader:Vf,referrerPolicy:Yf,requestRedirect:Jf,requestMode:Tf,requestCredentials:vf,requestCache:Hf,redirectStatus:Lf,corsSafeListedMethods:Sf,nullBodyStatus:Uf,safeMethods:Gf,badPorts:Mf,requestDuplex:xf}});var ur=c((cb,xE)=>{"use strict";var Vi=Symbol.for("undici.globalOrigin.1");function Zf(){return globalThis[Vi]}function Xf(A){if(A!==void 0&&typeof A!="string"&&!(A instanceof URL))throw new Error("Invalid base url");if(A===void 0){Object.defineProperty(globalThis,Vi,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let e=new URL(A);if(e.protocol!=="http:"&&e.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${e.protocol}`);Object.defineProperty(globalThis,Vi,{value:e,writable:!0,enumerable:!1,configurable:!1})}xE.exports={getGlobalOrigin:Zf,setGlobalOrigin:Xf}});var jA=c((hb,ZE)=>{"use strict";var{redirectStatus:Kf,badPorts:jf,referrerPolicy:zf}=Ve(),{getGlobalOrigin:$f}=ur(),{performance:Ad}=require("perf_hooks"),{isBlobLike:ed,toUSVString:td,ReadableStreamFrom:rd}=G(),kt=require("assert"),{isUint8Array:sd}=require("util/types"),ls;try{ls=require("crypto")}catch{}function qE(A){let e=A.urlList,t=e.length;return t===0?null:e[t-1].toString()}function nd(A,e){if(!Kf.includes(A.status))return null;let t=A.headersList.get("location");return t!==null&&OE(t)&&(t=new URL(t,qE(A))),t&&!t.hash&&(t.hash=e),t}function dr(A){return A.urlList[A.urlList.length-1]}function id(A){let e=dr(A);return _E(e)&&jf.includes(e.port)?"blocked":"allowed"}function od(A){return A instanceof Error||A?.constructor?.name==="Error"||A?.constructor?.name==="DOMException"}function gd(A){for(let e=0;e<A.length;++e){let t=A.charCodeAt(e);if(!(t===9||t>=32&&t<=126||t>=128&&t<=255))return!1}return!0}function Qd(A){return!(A>=127||A<=32||A==="("||A===")"||A==="<"||A===">"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}")}function WE(A){if(!A||typeof A!="string")return!1;for(let e=0;e<A.length;++e){let t=A.charCodeAt(e);if(t>127||!Qd(t))return!1}return!0}function Ed(A){return A.length===0?!1:WE(A)}function OE(A){return!(A.startsWith(" ")||A.startsWith(" ")||A.endsWith(" ")||A.endsWith(" ")||A.includes("\0")||A.includes("\r")||A.includes(` -`))}function ad(A,e){let{headersList:t}=e,r=(t.get("referrer-policy")??"").split(","),s="";if(r.length>0)for(let n=r.length;n!==0;n--){let i=r[n-1].trim();if(zf.includes(i)){s=i;break}}s!==""&&(A.referrerPolicy=s)}function Cd(){return"allowed"}function Bd(){return"success"}function Id(){return"success"}function cd(A){let e=null;e=A.mode,A.headersList.set("sec-fetch-mode",e)}function hd(A){let e=A.origin;if(A.responseTainting==="cors"||A.mode==="websocket")e&&A.headersList.append("origin",e);else if(A.method!=="GET"&&A.method!=="HEAD"){switch(A.referrerPolicy){case"no-referrer":e=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":A.origin&&Wi(A.origin)&&!Wi(dr(A))&&(e=null);break;case"same-origin":us(A,dr(A))||(e=null);break;default:}e&&A.headersList.append("origin",e)}}function ld(A){return Ad.now()}function ud(A){return{startTime:A.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:A.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function fd(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function dd(A){return{referrerPolicy:A.referrerPolicy}}function yd(A){let e=A.referrerPolicy;kt(e);let t=null;if(A.referrer==="client"){let o=$f();if(!o||o.origin==="null")return"no-referrer";t=new URL(o)}else A.referrer instanceof URL&&(t=A.referrer);let r=xi(t),s=xi(t,!0);r.toString().length>4096&&(r=s);let n=us(A,r),i=fr(r)&&!fr(A.url);switch(e){case"origin":return s??xi(t,!0);case"unsafe-url":return r;case"same-origin":return n?s:"no-referrer";case"origin-when-cross-origin":return n?r:s;case"strict-origin-when-cross-origin":{let o=dr(A);return us(r,o)?r:fr(r)&&!fr(o)?"no-referrer":s}case"strict-origin":case"no-referrer-when-downgrade":default:return i?"no-referrer":s}}function xi(A,e){return kt(A instanceof URL),A.protocol==="file:"||A.protocol==="about:"||A.protocol==="blank:"?"no-referrer":(A.username="",A.password="",A.hash="",e&&(A.pathname="",A.search=""),A)}function fr(A){if(!(A instanceof URL))return!1;if(A.href==="about:blank"||A.href==="about:srcdoc"||A.protocol==="data:"||A.protocol==="file:")return!0;return e(A.origin);function e(t){if(t==null||t==="null")return!1;let r=new URL(t);return!!(r.protocol==="https:"||r.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(r.hostname)||r.hostname==="localhost"||r.hostname.includes("localhost.")||r.hostname.endsWith(".localhost"))}}function wd(A,e){if(ls===void 0)return!0;let t=pd(e);if(t==="no metadata"||t.length===0)return!0;let r=t.sort((i,o)=>o.algo.localeCompare(i.algo)),s=r[0].algo,n=r.filter(i=>i.algo===s);for(let i of n){let o=i.algo,g=i.hash;if(ls.createHash(o).update(A).digest("base64")===g)return!0}return!1}var Dd=/((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\x21-\x7e]?)?/i;function pd(A){let e=[],t=!0,r=ls.getHashes();for(let s of A.split(" ")){t=!1;let n=Dd.exec(s);if(n===null||n.groups===void 0)continue;let i=n.groups.algo;r.includes(i.toLowerCase())&&e.push(n.groups)}return t===!0?"no metadata":e}function Rd(A){}function us(A,e){return A.origin===e.origin&&A.origin==="null"||A.protocol===e.protocol&&A.hostname===e.hostname&&A.port===e.port}function kd(){let A,e;return{promise:new Promise((r,s)=>{A=r,e=s}),resolve:A,reject:e}}function Fd(A){return A.controller.state==="aborted"}function Nd(A){return A.controller.state==="aborted"||A.controller.state==="terminated"}function md(A){return/^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(A)?A.toUpperCase():A}function bd(A){let e=JSON.stringify(A);if(e===void 0)throw new TypeError("Value is not JSON serializable");return kt(typeof e=="string"),e}var Sd=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function Ud(A,e,t){let r={index:0,kind:t,target:A},s={next(){if(Object.getPrototypeOf(this)!==s)throw new TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`);let{index:n,kind:i,target:o}=r,g=o(),a=g.length;if(n>=a)return{value:void 0,done:!0};let Q=g[n];return r.index=n+1,Ld(Q,i)},[Symbol.toStringTag]:`${e} Iterator`};return Object.setPrototypeOf(s,Sd),Object.setPrototypeOf({},s)}function Ld(A,e){let t;switch(e){case"key":{t=A[0];break}case"value":{t=A[1];break}case"key+value":{t=A;break}}return{value:t,done:!1}}function Md(A,e,t){let r=i=>queueMicrotask(()=>e(i)),s=i=>queueMicrotask(()=>t(i)),n;try{n=A.stream.getReader()}catch(i){s(i);return}PE(n,r,s)}var qi=globalThis.ReadableStream;function Yd(A){return qi||(qi=require("stream/web").ReadableStream),A instanceof qi||A[Symbol.toStringTag]==="ReadableStream"&&typeof A.tee=="function"}var Jd=65535;function Gd(A){return A.length<Jd?String.fromCharCode(...A):A.reduce((e,t)=>e+String.fromCharCode(t),"")}function Td(A){try{A.close()}catch(e){if(!e.message.includes("Controller is already closed"))throw e}}function vd(A){for(let e=0;e<A.length;e++)kt(A.charCodeAt(e)<=255);return A}async function PE(A,e,t){let r=[],s=0;for(;;){let n,i;try{({done:n,value:i}=await A.read())}catch(o){t(o);return}if(n){e(Buffer.concat(r,s));return}if(!sd(i)){t(new TypeError("Received non-Uint8Array chunk"));return}r.push(i),s+=i.length}}function Hd(A){kt("protocol"in A);let e=A.protocol;return e==="about:"||e==="blob:"||e==="data:"}function Wi(A){return typeof A=="string"?A.startsWith("https:"):A.protocol==="https:"}function _E(A){kt("protocol"in A);let e=A.protocol;return e==="http:"||e==="https:"}var Vd=Object.hasOwn||((A,e)=>Object.prototype.hasOwnProperty.call(A,e));ZE.exports={isAborted:Fd,isCancelled:Nd,createDeferredPromise:kd,ReadableStreamFrom:rd,toUSVString:td,tryUpgradeRequestToAPotentiallyTrustworthyURL:Rd,coarsenedSharedCurrentTime:ld,determineRequestsReferrer:yd,makePolicyContainer:fd,clonePolicyContainer:dd,appendFetchMetadata:cd,appendRequestOriginHeader:hd,TAOCheck:Id,corsCheck:Bd,crossOriginResourcePolicyCheck:Cd,createOpaqueTimingInfo:ud,setRequestReferrerPolicyOnRedirect:ad,isValidHTTPToken:WE,requestBadPort:id,requestCurrentURL:dr,responseURL:qE,responseLocationURL:nd,isBlobLike:ed,isURLPotentiallyTrustworthy:fr,isValidReasonPhrase:gd,sameOrigin:us,normalizeMethod:md,serializeJavascriptValueToJSONString:bd,makeIterator:Ud,isValidHeaderName:Ed,isValidHeaderValue:OE,hasOwn:Vd,isErrorLike:od,fullyReadBody:Md,bytesMatch:wd,isReadableStreamLike:Yd,readableStreamClose:Td,isomorphicEncode:vd,isomorphicDecode:Gd,urlIsLocal:Hd,urlHasHttpsScheme:Wi,urlIsHttpHttpsScheme:_E,readAllBytes:PE}});var Ne=c((lb,XE)=>{"use strict";XE.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}});var DA=c((ub,jE)=>{"use strict";var{types:he}=require("util"),{hasOwn:KE,toUSVString:xd}=jA(),d={};d.converters={};d.util={};d.errors={};d.errors.exception=function(A){return new TypeError(`${A.header}: ${A.message}`)};d.errors.conversionFailed=function(A){let e=A.types.length===1?"":" one of",t=`${A.argument} could not be converted to${e}: ${A.types.join(", ")}.`;return d.errors.exception({header:A.prefix,message:t})};d.errors.invalidArgument=function(A){return d.errors.exception({header:A.prefix,message:`"${A.value}" is an invalid ${A.type}.`})};d.brandCheck=function(A,e,t=void 0){if(t?.strict!==!1&&!(A instanceof e))throw new TypeError("Illegal invocation");return A?.[Symbol.toStringTag]===e.prototype[Symbol.toStringTag]};d.argumentLengthCheck=function({length:A},e,t){if(A<e)throw d.errors.exception({message:`${e} argument${e!==1?"s":""} required, but${A?" only":""} ${A} found.`,...t})};d.illegalConstructor=function(){throw d.errors.exception({header:"TypeError",message:"Illegal constructor"})};d.util.Type=function(A){switch(typeof A){case"undefined":return"Undefined";case"boolean":return"Boolean";case"string":return"String";case"symbol":return"Symbol";case"number":return"Number";case"bigint":return"BigInt";case"function":case"object":return A===null?"Null":"Object"}};d.util.ConvertToInt=function(A,e,t,r={}){let s,n;e===64?(s=Math.pow(2,53)-1,t==="unsigned"?n=0:n=Math.pow(-2,53)+1):t==="unsigned"?(n=0,s=Math.pow(2,e)-1):(n=Math.pow(-2,e)-1,s=Math.pow(2,e-1)-1);let i=Number(A);if(i===0&&(i=0),r.enforceRange===!0){if(Number.isNaN(i)||i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY)throw d.errors.exception({header:"Integer conversion",message:`Could not convert ${A} to an integer.`});if(i=d.util.IntegerPart(i),i<n||i>s)throw d.errors.exception({header:"Integer conversion",message:`Value must be between ${n}-${s}, got ${i}.`});return i}return!Number.isNaN(i)&&r.clamp===!0?(i=Math.min(Math.max(i,n),s),Math.floor(i)%2===0?i=Math.floor(i):i=Math.ceil(i),i):Number.isNaN(i)||i===0&&Object.is(0,i)||i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY?0:(i=d.util.IntegerPart(i),i=i%Math.pow(2,e),t==="signed"&&i>=Math.pow(2,e)-1?i-Math.pow(2,e):i)};d.util.IntegerPart=function(A){let e=Math.floor(Math.abs(A));return A<0?-1*e:e};d.sequenceConverter=function(A){return e=>{if(d.util.Type(e)!=="Object")throw d.errors.exception({header:"Sequence",message:`Value of type ${d.util.Type(e)} is not an Object.`});let t=e?.[Symbol.iterator]?.(),r=[];if(t===void 0||typeof t.next!="function")throw d.errors.exception({header:"Sequence",message:"Object is not an iterator."});for(;;){let{done:s,value:n}=t.next();if(s)break;r.push(A(n))}return r}};d.recordConverter=function(A,e){return t=>{if(d.util.Type(t)!=="Object")throw d.errors.exception({header:"Record",message:`Value of type ${d.util.Type(t)} is not an Object.`});let r={};if(!he.isProxy(t)){let n=Object.keys(t);for(let i of n){let o=A(i),g=e(t[i]);r[o]=g}return r}let s=Reflect.ownKeys(t);for(let n of s)if(Reflect.getOwnPropertyDescriptor(t,n)?.enumerable){let o=A(n),g=e(t[n]);r[o]=g}return r}};d.interfaceConverter=function(A){return(e,t={})=>{if(t.strict!==!1&&!(e instanceof A))throw d.errors.exception({header:A.name,message:`Expected ${e} to be an instance of ${A.name}.`});return e}};d.dictionaryConverter=function(A){return e=>{let t=d.util.Type(e),r={};if(t==="Null"||t==="Undefined")return r;if(t!=="Object")throw d.errors.exception({header:"Dictionary",message:`Expected ${e} to be one of: Null, Undefined, Object.`});for(let s of A){let{key:n,defaultValue:i,required:o,converter:g}=s;if(o===!0&&!KE(e,n))throw d.errors.exception({header:"Dictionary",message:`Missing required key "${n}".`});let a=e[n],Q=KE(s,"defaultValue");if(Q&&a!==null&&(a=a??i),o||Q||a!==void 0){if(a=g(a),s.allowedValues&&!s.allowedValues.includes(a))throw d.errors.exception({header:"Dictionary",message:`${a} is not an accepted type. Expected one of ${s.allowedValues.join(", ")}.`});r[n]=a}}return r}};d.nullableConverter=function(A){return e=>e===null?e:A(e)};d.converters.DOMString=function(A,e={}){if(A===null&&e.legacyNullToEmptyString)return"";if(typeof A=="symbol")throw new TypeError("Could not convert argument of type symbol to string.");return String(A)};d.converters.ByteString=function(A){let e=d.converters.DOMString(A);for(let t=0;t<e.length;t++){let r=e.charCodeAt(t);if(r>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${t} has a value of ${r} which is greater than 255.`)}return e};d.converters.USVString=xd;d.converters.boolean=function(A){return!!A};d.converters.any=function(A){return A};d.converters["long long"]=function(A){return d.util.ConvertToInt(A,64,"signed")};d.converters["unsigned long long"]=function(A){return d.util.ConvertToInt(A,64,"unsigned")};d.converters["unsigned long"]=function(A){return d.util.ConvertToInt(A,32,"unsigned")};d.converters["unsigned short"]=function(A,e){return d.util.ConvertToInt(A,16,"unsigned",e)};d.converters.ArrayBuffer=function(A,e={}){if(d.util.Type(A)!=="Object"||!he.isAnyArrayBuffer(A))throw d.errors.conversionFailed({prefix:`${A}`,argument:`${A}`,types:["ArrayBuffer"]});if(e.allowShared===!1&&he.isSharedArrayBuffer(A))throw d.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return A};d.converters.TypedArray=function(A,e,t={}){if(d.util.Type(A)!=="Object"||!he.isTypedArray(A)||A.constructor.name!==e.name)throw d.errors.conversionFailed({prefix:`${e.name}`,argument:`${A}`,types:[e.name]});if(t.allowShared===!1&&he.isSharedArrayBuffer(A.buffer))throw d.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return A};d.converters.DataView=function(A,e={}){if(d.util.Type(A)!=="Object"||!he.isDataView(A))throw d.errors.exception({header:"DataView",message:"Object is not a DataView."});if(e.allowShared===!1&&he.isSharedArrayBuffer(A.buffer))throw d.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return A};d.converters.BufferSource=function(A,e={}){if(he.isAnyArrayBuffer(A))return d.converters.ArrayBuffer(A,e);if(he.isTypedArray(A))return d.converters.TypedArray(A,A.constructor);if(he.isDataView(A))return d.converters.DataView(A,e);throw new TypeError(`Could not convert ${A} to a BufferSource.`)};d.converters["sequence<ByteString>"]=d.sequenceConverter(d.converters.ByteString);d.converters["sequence<sequence<ByteString>>"]=d.sequenceConverter(d.converters["sequence<ByteString>"]);d.converters["record<ByteString, ByteString>"]=d.recordConverter(d.converters.ByteString,d.converters.ByteString);jE.exports={webidl:d}});var ge=c((fb,ra)=>{var ds=require("assert"),{atob:qd}=require("buffer"),{isomorphicDecode:Wd}=jA(),Od=new TextEncoder,fs=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/,Pd=/(\u000A|\u000D|\u0009|\u0020)/,Zd=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function Xd(A){ds(A.protocol==="data:");let e=Aa(A,!0);e=e.slice(5);let t={position:0},r=Ft(",",e,t),s=r.length;if(r=$d(r,!0,!0),t.position>=e.length)return"failure";t.position++;let n=e.slice(s+1),i=ea(n);if(/;(\u0020){0,}base64$/i.test(r)){let g=Wd(i);if(i=jd(g),i==="failure")return"failure";r=r.slice(0,-6),r=r.replace(/(\u0020)+$/,""),r=r.slice(0,-1)}r.startsWith(";")&&(r="text/plain"+r);let o=Pi(r);return o==="failure"&&(o=Pi("text/plain;charset=US-ASCII")),{mimeType:o,body:i}}function Aa(A,e=!1){let t=A.href;if(!e)return t;let r=t.lastIndexOf("#");return r===-1?t:t.slice(0,r)}function ys(A,e,t){let r="";for(;t.position<e.length&&A(e[t.position]);)r+=e[t.position],t.position++;return r}function Ft(A,e,t){let r=e.indexOf(A,t.position),s=t.position;return r===-1?(t.position=e.length,e.slice(s)):(t.position=r,e.slice(s,t.position))}function ea(A){let e=Od.encode(A);return Kd(e)}function Kd(A){let e=[];for(let t=0;t<A.length;t++){let r=A[t];if(r!==37)e.push(r);else if(r===37&&!/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(A[t+1],A[t+2])))e.push(37);else{let s=String.fromCharCode(A[t+1],A[t+2]),n=Number.parseInt(s,16);e.push(n),t+=2}}return Uint8Array.from(e)}function Pi(A){A=Oi(A,!0,!0);let e={position:0},t=Ft("/",A,e);if(t.length===0||!fs.test(t)||e.position>A.length)return"failure";e.position++;let r=Ft(";",A,e);if(r=Oi(r,!1,!0),r.length===0||!fs.test(r))return"failure";let s=t.toLowerCase(),n=r.toLowerCase(),i={type:s,subtype:n,parameters:new Map,essence:`${s}/${n}`};for(;e.position<A.length;){e.position++,ys(a=>Pd.test(a),A,e);let o=ys(a=>a!==";"&&a!=="=",A,e);if(o=o.toLowerCase(),e.position<A.length){if(A[e.position]===";")continue;e.position++}if(e.position>A.length)break;let g=null;if(A[e.position]==='"')g=ta(A,e,!0),Ft(";",A,e);else if(g=Ft(";",A,e),g=Oi(g,!1,!0),g.length===0)continue;o.length!==0&&fs.test(o)&&(g.length===0||Zd.test(g))&&!i.parameters.has(o)&&i.parameters.set(o,g)}return i}function jd(A){if(A=A.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,""),A.length%4===0&&(A=A.replace(/=?=$/,"")),A.length%4===1||/[^+/0-9A-Za-z]/.test(A))return"failure";let e=qd(A),t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}function ta(A,e,t){let r=e.position,s="";for(ds(A[e.position]==='"'),e.position++;s+=ys(i=>i!=='"'&&i!=="\\",A,e),!(e.position>=A.length);){let n=A[e.position];if(e.position++,n==="\\"){if(e.position>=A.length){s+="\\";break}s+=A[e.position],e.position++}else{ds(n==='"');break}}return t?s:A.slice(r,e.position)}function zd(A){ds(A!=="failure");let{parameters:e,essence:t}=A,r=t;for(let[s,n]of e.entries())r+=";",r+=s,r+="=",fs.test(n)||(n=n.replace(/(\\|")/g,"\\$1"),n='"'+n,n+='"'),r+=n;return r}function zE(A){return A==="\r"||A===` -`||A===" "||A===" "}function Oi(A,e=!0,t=!0){let r=0,s=A.length-1;if(e)for(;r<A.length&&zE(A[r]);r++);if(t)for(;s>0&&zE(A[s]);s--);return A.slice(r,s+1)}function $E(A){return A==="\r"||A===` -`||A===" "||A==="\f"||A===" "}function $d(A,e=!0,t=!0){let r=0,s=A.length-1;if(e)for(;r<A.length&&$E(A[r]);r++);if(t)for(;s>0&&$E(A[s]);s--);return A.slice(r,s+1)}ra.exports={dataURLProcessor:Xd,URLSerializer:Aa,collectASequenceOfCodePoints:ys,collectASequenceOfCodePointsFast:Ft,stringPercentDecode:ea,parseMIMEType:Pi,collectAnHTTPQuotedString:ta,serializeAMimeType:zd}});var ws=c((db,ga)=>{"use strict";var{Blob:ia,File:sa}=require("buffer"),{types:_i}=require("util"),{kState:vA}=Ne(),{isBlobLike:oa}=jA(),{webidl:H}=DA(),{parseMIMEType:A0,serializeAMimeType:e0}=ge(),{kEnumerableProperty:na}=G(),yr=class A extends ia{constructor(e,t,r={}){H.argumentLengthCheck(arguments,2,{header:"File constructor"}),e=H.converters["sequence<BlobPart>"](e),t=H.converters.USVString(t),r=H.converters.FilePropertyBag(r);let s=t,n=r.type,i;A:{if(n){if(n=A0(n),n==="failure"){n="";break A}n=e0(n).toLowerCase()}i=r.lastModified}super(t0(e,r),{type:n}),this[vA]={name:s,lastModified:i,type:n}}get name(){return H.brandCheck(this,A),this[vA].name}get lastModified(){return H.brandCheck(this,A),this[vA].lastModified}get type(){return H.brandCheck(this,A),this[vA].type}},Zi=class A{constructor(e,t,r={}){let s=t,n=r.type,i=r.lastModified??Date.now();this[vA]={blobLike:e,name:s,type:n,lastModified:i}}stream(...e){return H.brandCheck(this,A),this[vA].blobLike.stream(...e)}arrayBuffer(...e){return H.brandCheck(this,A),this[vA].blobLike.arrayBuffer(...e)}slice(...e){return H.brandCheck(this,A),this[vA].blobLike.slice(...e)}text(...e){return H.brandCheck(this,A),this[vA].blobLike.text(...e)}get size(){return H.brandCheck(this,A),this[vA].blobLike.size}get type(){return H.brandCheck(this,A),this[vA].blobLike.type}get name(){return H.brandCheck(this,A),this[vA].name}get lastModified(){return H.brandCheck(this,A),this[vA].lastModified}get[Symbol.toStringTag](){return"File"}};Object.defineProperties(yr.prototype,{[Symbol.toStringTag]:{value:"File",configurable:!0},name:na,lastModified:na});H.converters.Blob=H.interfaceConverter(ia);H.converters.BlobPart=function(A,e){if(H.util.Type(A)==="Object"){if(oa(A))return H.converters.Blob(A,{strict:!1});if(ArrayBuffer.isView(A)||_i.isAnyArrayBuffer(A))return H.converters.BufferSource(A,e)}return H.converters.USVString(A,e)};H.converters["sequence<BlobPart>"]=H.sequenceConverter(H.converters.BlobPart);H.converters.FilePropertyBag=H.dictionaryConverter([{key:"lastModified",converter:H.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:H.converters.DOMString,defaultValue:""},{key:"endings",converter:A=>(A=H.converters.DOMString(A),A=A.toLowerCase(),A!=="native"&&(A="transparent"),A),defaultValue:"transparent"}]);function t0(A,e){let t=[];for(let r of A)if(typeof r=="string"){let s=r;e.endings==="native"&&(s=r0(s)),t.push(new TextEncoder().encode(s))}else _i.isAnyArrayBuffer(r)||_i.isTypedArray(r)?r.buffer?t.push(new Uint8Array(r.buffer,r.byteOffset,r.byteLength)):t.push(new Uint8Array(r)):oa(r)&&t.push(r);return t}function r0(A){let e=` -`;return process.platform==="win32"&&(e=`\r -`),A.replace(/\r?\n/g,e)}function s0(A){return sa&&A instanceof sa||A instanceof yr||A&&(typeof A.stream=="function"||typeof A.arrayBuffer=="function")&&A[Symbol.toStringTag]==="File"}ga.exports={File:yr,FileLike:Zi,isFileLike:s0}});var ps=c((yb,Ba)=>{"use strict";var{isBlobLike:Ds,toUSVString:n0,makeIterator:Xi}=jA(),{kState:fA}=Ne(),{File:Ca,FileLike:Qa,isFileLike:i0}=ws(),{webidl:q}=DA(),{Blob:o0,File:Ki}=require("buffer"),Ea=Ki??Ca,Nt=class A{constructor(e){if(e!==void 0)throw q.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[fA]=[]}append(e,t,r=void 0){if(q.brandCheck(this,A),q.argumentLengthCheck(arguments,2,{header:"FormData.append"}),arguments.length===3&&!Ds(t))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");e=q.converters.USVString(e),t=Ds(t)?q.converters.Blob(t,{strict:!1}):q.converters.USVString(t),r=arguments.length===3?q.converters.USVString(r):void 0;let s=aa(e,t,r);this[fA].push(s)}delete(e){q.brandCheck(this,A),q.argumentLengthCheck(arguments,1,{header:"FormData.delete"}),e=q.converters.USVString(e),this[fA]=this[fA].filter(t=>t.name!==e)}get(e){q.brandCheck(this,A),q.argumentLengthCheck(arguments,1,{header:"FormData.get"}),e=q.converters.USVString(e);let t=this[fA].findIndex(r=>r.name===e);return t===-1?null:this[fA][t].value}getAll(e){return q.brandCheck(this,A),q.argumentLengthCheck(arguments,1,{header:"FormData.getAll"}),e=q.converters.USVString(e),this[fA].filter(t=>t.name===e).map(t=>t.value)}has(e){return q.brandCheck(this,A),q.argumentLengthCheck(arguments,1,{header:"FormData.has"}),e=q.converters.USVString(e),this[fA].findIndex(t=>t.name===e)!==-1}set(e,t,r=void 0){if(q.brandCheck(this,A),q.argumentLengthCheck(arguments,2,{header:"FormData.set"}),arguments.length===3&&!Ds(t))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");e=q.converters.USVString(e),t=Ds(t)?q.converters.Blob(t,{strict:!1}):q.converters.USVString(t),r=arguments.length===3?n0(r):void 0;let s=aa(e,t,r),n=this[fA].findIndex(i=>i.name===e);n!==-1?this[fA]=[...this[fA].slice(0,n),s,...this[fA].slice(n+1).filter(i=>i.name!==e)]:this[fA].push(s)}entries(){return q.brandCheck(this,A),Xi(()=>this[fA].map(e=>[e.name,e.value]),"FormData","key+value")}keys(){return q.brandCheck(this,A),Xi(()=>this[fA].map(e=>[e.name,e.value]),"FormData","key")}values(){return q.brandCheck(this,A),Xi(()=>this[fA].map(e=>[e.name,e.value]),"FormData","value")}forEach(e,t=globalThis){if(q.brandCheck(this,A),q.argumentLengthCheck(arguments,1,{header:"FormData.forEach"}),typeof e!="function")throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.");for(let[r,s]of this)e.apply(t,[s,r,this])}};Nt.prototype[Symbol.iterator]=Nt.prototype.entries;Object.defineProperties(Nt.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function aa(A,e,t){if(A=Buffer.from(A).toString("utf8"),typeof e=="string")e=Buffer.from(e).toString("utf8");else if(i0(e)||(e=e instanceof o0?new Ea([e],"blob",{type:e.type}):new Qa(e,"blob",{type:e.type})),t!==void 0){let r={type:e.type,lastModified:e.lastModified};e=Ki&&e instanceof Ki||e instanceof Ca?new Ea([e],t,r):new Qa(e,t,r)}return{name:A,value:e}}Ba.exports={FormData:Nt}});var wr=c((wb,wa)=>{"use strict";var g0=HE(),mt=G(),{ReadableStreamFrom:Q0,isBlobLike:Ia,isReadableStreamLike:E0,readableStreamClose:a0,createDeferredPromise:C0,fullyReadBody:B0}=jA(),{FormData:ca}=ps(),{kState:be}=Ne(),{webidl:ji}=DA(),{DOMException:ua,structuredClone:I0}=Ve(),{Blob:c0,File:h0}=require("buffer"),{kBodyUsed:l0}=$(),zi=require("assert"),{isErrored:u0}=G(),{isUint8Array:fa,isArrayBuffer:f0}=require("util/types"),{File:d0}=ws(),{parseMIMEType:y0,serializeAMimeType:w0}=ge(),me=globalThis.ReadableStream,ha=h0??d0;function da(A,e=!1){me||(me=require("stream/web").ReadableStream);let t=null;A instanceof me?t=A:Ia(A)?t=A.stream():t=new me({async pull(g){g.enqueue(typeof s=="string"?new TextEncoder().encode(s):s),queueMicrotask(()=>a0(g))},start(){},type:void 0}),zi(E0(t));let r=null,s=null,n=null,i=null;if(typeof A=="string")s=A,i="text/plain;charset=UTF-8";else if(A instanceof URLSearchParams)s=A.toString(),i="application/x-www-form-urlencoded;charset=UTF-8";else if(f0(A))s=new Uint8Array(A.slice());else if(ArrayBuffer.isView(A))s=new Uint8Array(A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength));else if(mt.isFormDataLike(A)){let g=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,a=`--${g}\r -Content-Disposition: form-data`;let Q=u=>u.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),E=u=>u.replace(/\r?\n|\r/g,`\r -`),C=new TextEncoder,B=[],I=new Uint8Array([13,10]);n=0;let h=!1;for(let[u,F]of A)if(typeof F=="string"){let w=C.encode(a+`; name="${Q(E(u))}"\r -\r -${E(F)}\r -`);B.push(w),n+=w.byteLength}else{let w=C.encode(`${a}; name="${Q(E(u))}"`+(F.name?`; filename="${Q(F.name)}"`:"")+`\r -Content-Type: ${F.type||"application/octet-stream"}\r -\r -`);B.push(w,F,I),typeof F.size=="number"?n+=w.byteLength+F.size+I.byteLength:h=!0}let l=C.encode(`--${g}--`);B.push(l),n+=l.byteLength,h&&(n=null),s=A,r=async function*(){for(let u of B)u.stream?yield*u.stream():yield u},i="multipart/form-data; boundary="+g}else if(Ia(A))s=A,n=A.size,A.type&&(i=A.type);else if(typeof A[Symbol.asyncIterator]=="function"){if(e)throw new TypeError("keepalive");if(mt.isDisturbed(A)||A.locked)throw new TypeError("Response body object should not be disturbed or locked");t=A instanceof me?A:Q0(A)}if((typeof s=="string"||mt.isBuffer(s))&&(n=Buffer.byteLength(s)),r!=null){let g;t=new me({async start(){g=r(A)[Symbol.asyncIterator]()},async pull(a){let{value:Q,done:E}=await g.next();return E?queueMicrotask(()=>{a.close()}):u0(t)||a.enqueue(new Uint8Array(Q)),a.desiredSize>0},async cancel(a){await g.return()},type:void 0})}return[{stream:t,source:s,length:n},i]}function D0(A,e=!1){return me||(me=require("stream/web").ReadableStream),A instanceof me&&(zi(!mt.isDisturbed(A),"The body has already been consumed."),zi(!A.locked,"The stream is locked.")),da(A,e)}function p0(A){let[e,t]=A.stream.tee(),r=I0(t,{transfer:[t]}),[,s]=r.tee();return A.stream=e,{stream:s,length:A.length,source:A.source}}async function*la(A){if(A)if(fa(A))yield A;else{let e=A.stream;if(mt.isDisturbed(e))throw new TypeError("The body has already been consumed.");if(e.locked)throw new TypeError("The stream is locked.");e[l0]=!0,yield*e}}function $i(A){if(A.aborted)throw new ua("The operation was aborted.","AbortError")}function R0(A){return{blob(){return Rs(this,t=>{let r=m0(this);return r==="failure"?r="":r&&(r=w0(r)),new c0([t],{type:r})},A)},arrayBuffer(){return Rs(this,t=>new Uint8Array(t).buffer,A)},text(){return Rs(this,ya,A)},json(){return Rs(this,N0,A)},async formData(){ji.brandCheck(this,A),$i(this[be]);let t=this.headers.get("Content-Type");if(/multipart\/form-data/.test(t)){let r={};for(let[o,g]of this.headers)r[o.toLowerCase()]=g;let s=new ca,n;try{n=g0({headers:r,defParamCharset:"utf8"})}catch(o){throw new ua(`${o}`,"AbortError")}n.on("field",(o,g)=>{s.append(o,g)}),n.on("file",(o,g,a)=>{let{filename:Q,encoding:E,mimeType:C}=a,B=[];if(E==="base64"||E.toLowerCase()==="base64"){let I="";g.on("data",h=>{I+=h.toString().replace(/[\r\n]/gm,"");let l=I.length-I.length%4;B.push(Buffer.from(I.slice(0,l),"base64")),I=I.slice(l)}),g.on("end",()=>{B.push(Buffer.from(I,"base64")),s.append(o,new ha(B,Q,{type:C}))})}else g.on("data",I=>{B.push(I)}),g.on("end",()=>{s.append(o,new ha(B,Q,{type:C}))})});let i=new Promise((o,g)=>{n.on("finish",o),n.on("error",a=>g(new TypeError(a)))});if(this.body!==null)for await(let o of la(this[be].body))n.write(o);return n.end(),await i,s}else if(/application\/x-www-form-urlencoded/.test(t)){let r;try{let n="",i=new TextDecoder("utf-8",{ignoreBOM:!0});for await(let o of la(this[be].body)){if(!fa(o))throw new TypeError("Expected Uint8Array chunk");n+=i.decode(o,{stream:!0})}n+=i.decode(),r=new URLSearchParams(n)}catch(n){throw Object.assign(new TypeError,{cause:n})}let s=new ca;for(let[n,i]of r)s.append(n,i);return s}else throw await Promise.resolve(),$i(this[be]),ji.errors.exception({header:`${A.name}.formData`,message:"Could not parse content as FormData."})}}}function k0(A){Object.assign(A.prototype,R0(A))}async function Rs(A,e,t){if(ji.brandCheck(A,t),$i(A[be]),F0(A[be].body))throw new TypeError("Body is unusable");let r=C0(),s=i=>r.reject(i),n=i=>{try{r.resolve(e(i))}catch(o){s(o)}};return A[be].body==null?(n(new Uint8Array),r.promise):(B0(A[be].body,n,s),r.promise)}function F0(A){return A!=null&&(A.stream.locked||mt.isDisturbed(A.stream))}function ya(A){return A.length===0?"":(A[0]===239&&A[1]===187&&A[2]===191&&(A=A.subarray(3)),new TextDecoder().decode(A))}function N0(A){return JSON.parse(ya(A))}function m0(A){let{headersList:e}=A[be],t=e.get("content-type");return t===null?"failure":y0(t)}wa.exports={extractBody:da,safelyExtractBody:D0,cloneBody:p0,mixinBody:k0}});var ka=c((Db,Ra)=>{"use strict";var{InvalidArgumentError:AA,NotSupportedError:b0}=Z(),Se=require("assert"),HA=G(),Da=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,pa=/[^\t\x20-\x7e\x80-\xff]/,S0=/[^\u0021-\u00ff]/,Ue=Symbol("handler"),iA={},Ao;try{let A=require("diagnostics_channel");iA.create=A.channel("undici:request:create"),iA.bodySent=A.channel("undici:request:bodySent"),iA.headers=A.channel("undici:request:headers"),iA.trailers=A.channel("undici:request:trailers"),iA.error=A.channel("undici:request:error")}catch{iA.create={hasSubscribers:!1},iA.bodySent={hasSubscribers:!1},iA.headers={hasSubscribers:!1},iA.trailers={hasSubscribers:!1},iA.error={hasSubscribers:!1}}var ro=class{constructor(e,{path:t,method:r,body:s,headers:n,query:i,idempotent:o,blocking:g,upgrade:a,headersTimeout:Q,bodyTimeout:E,reset:C,throwOnError:B},I){if(typeof t!="string")throw new AA("path must be a string");if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&r!=="CONNECT")throw new AA("path must be an absolute URL or start with a slash");if(S0.exec(t)!==null)throw new AA("invalid request path");if(typeof r!="string")throw new AA("method must be a string");if(Da.exec(r)===null)throw new AA("invalid request method");if(a&&typeof a!="string")throw new AA("upgrade must be a string");if(Q!=null&&(!Number.isFinite(Q)||Q<0))throw new AA("invalid headersTimeout");if(E!=null&&(!Number.isFinite(E)||E<0))throw new AA("invalid bodyTimeout");if(C!=null&&typeof C!="boolean")throw new AA("invalid reset");if(this.headersTimeout=Q,this.bodyTimeout=E,this.throwOnError=B===!0,this.method=r,s==null)this.body=null;else if(HA.isStream(s))this.body=s;else if(HA.isBuffer(s))this.body=s.byteLength?s:null;else if(ArrayBuffer.isView(s))this.body=s.buffer.byteLength?Buffer.from(s.buffer,s.byteOffset,s.byteLength):null;else if(s instanceof ArrayBuffer)this.body=s.byteLength?Buffer.from(s):null;else if(typeof s=="string")this.body=s.length?Buffer.from(s):null;else if(HA.isFormDataLike(s)||HA.isIterable(s)||HA.isBlobLike(s))this.body=s;else throw new AA("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=a||null,this.path=i?HA.buildURL(t,i):t,this.origin=e,this.idempotent=o??(r==="HEAD"||r==="GET"),this.blocking=g??!1,this.reset=C??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers="",Array.isArray(n)){if(n.length%2!==0)throw new AA("headers array must be even");for(let h=0;h<n.length;h+=2)to(this,n[h],n[h+1])}else if(n&&typeof n=="object"){let h=Object.keys(n);for(let l=0;l<h.length;l++){let u=h[l];to(this,u,n[u])}}else if(n!=null)throw new AA("headers must be an object or an array");if(HA.isFormDataLike(this.body)){if(HA.nodeMajor<16||HA.nodeMajor===16&&HA.nodeMinor<8)throw new AA("Form-Data bodies are only supported in node v16.8 and newer.");Ao||(Ao=wr().extractBody);let[h,l]=Ao(s);this.contentType==null&&(this.contentType=l,this.headers+=`content-type: ${l}\r -`),this.body=h.stream,this.contentLength=h.length}else HA.isBlobLike(s)&&this.contentType==null&&s.type&&(this.contentType=s.type,this.headers+=`content-type: ${s.type}\r -`);HA.validateHandler(I,r,a),this.servername=HA.getServerName(this.host),this[Ue]=I,iA.create.hasSubscribers&&iA.create.publish({request:this})}onBodySent(e){if(this[Ue].onBodySent)try{this[Ue].onBodySent(e)}catch(t){this.onError(t)}}onRequestSent(){iA.bodySent.hasSubscribers&&iA.bodySent.publish({request:this})}onConnect(e){return Se(!this.aborted),Se(!this.completed),this[Ue].onConnect(e)}onHeaders(e,t,r,s){return Se(!this.aborted),Se(!this.completed),iA.headers.hasSubscribers&&iA.headers.publish({request:this,response:{statusCode:e,headers:t,statusText:s}}),this[Ue].onHeaders(e,t,r,s)}onData(e){return Se(!this.aborted),Se(!this.completed),this[Ue].onData(e)}onUpgrade(e,t,r){return Se(!this.aborted),Se(!this.completed),this[Ue].onUpgrade(e,t,r)}onComplete(e){return Se(!this.aborted),this.completed=!0,iA.trailers.hasSubscribers&&iA.trailers.publish({request:this,trailers:e}),this[Ue].onComplete(e)}onError(e){if(iA.error.hasSubscribers&&iA.error.publish({request:this,error:e}),!this.aborted)return this.aborted=!0,this[Ue].onError(e)}addHeader(e,t){return to(this,e,t),this}};function eo(A,e){if(e&&typeof e=="object")throw new AA(`invalid ${A} header`);if(e=e!=null?`${e}`:"",pa.exec(e)!==null)throw new AA(`invalid ${A} header`);return`${A}: ${e}\r -`}function to(A,e,t){if(t&&typeof t=="object"&&!Array.isArray(t))throw new AA(`invalid ${e} header`);if(t===void 0)return;if(A.host===null&&e.length===4&&e.toLowerCase()==="host"){if(pa.exec(t)!==null)throw new AA(`invalid ${e} header`);A.host=t}else if(A.contentLength===null&&e.length===14&&e.toLowerCase()==="content-length"){if(A.contentLength=parseInt(t,10),!Number.isFinite(A.contentLength))throw new AA("invalid content-length header")}else if(A.contentType===null&&e.length===12&&e.toLowerCase()==="content-type")A.contentType=t,A.headers+=eo(e,t);else{if(e.length===17&&e.toLowerCase()==="transfer-encoding")throw new AA("invalid transfer-encoding header");if(e.length===10&&e.toLowerCase()==="connection"){let r=typeof t=="string"?t.toLowerCase():null;if(r!=="close"&&r!=="keep-alive")throw new AA("invalid connection header");r==="close"&&(A.reset=!0)}else{if(e.length===10&&e.toLowerCase()==="keep-alive")throw new AA("invalid keep-alive header");if(e.length===7&&e.toLowerCase()==="upgrade")throw new AA("invalid upgrade header");if(e.length===6&&e.toLowerCase()==="expect")throw new b0("expect header not supported");if(Da.exec(e)===null)throw new AA("invalid header key");if(Array.isArray(t))for(let r=0;r<t.length;r++)A.headers+=eo(e,t[r]);else A.headers+=eo(e,t)}}}Ra.exports=ro});var ks=c((pb,Fa)=>{"use strict";var U0=require("events"),so=class extends U0{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}};Fa.exports=so});var pr=c((Rb,Na)=>{"use strict";var L0=ks(),{ClientDestroyedError:no,ClientClosedError:M0,InvalidArgumentError:bt}=Z(),{kDestroy:Y0,kClose:J0,kDispatch:io,kInterceptors:et}=$(),St=Symbol("destroyed"),Dr=Symbol("closed"),Le=Symbol("onDestroyed"),Ut=Symbol("onClosed"),Fs=Symbol("Intercepted Dispatch"),oo=class extends L0{constructor(){super(),this[St]=!1,this[Le]=null,this[Dr]=!1,this[Ut]=[]}get destroyed(){return this[St]}get closed(){return this[Dr]}get interceptors(){return this[et]}set interceptors(e){if(e){for(let t=e.length-1;t>=0;t--)if(typeof this[et][t]!="function")throw new bt("interceptor must be an function")}this[et]=e}close(e){if(e===void 0)return new Promise((r,s)=>{this.close((n,i)=>n?s(n):r(i))});if(typeof e!="function")throw new bt("invalid callback");if(this[St]){queueMicrotask(()=>e(new no,null));return}if(this[Dr]){this[Ut]?this[Ut].push(e):queueMicrotask(()=>e(null,null));return}this[Dr]=!0,this[Ut].push(e);let t=()=>{let r=this[Ut];this[Ut]=null;for(let s=0;s<r.length;s++)r[s](null,null)};this[J0]().then(()=>this.destroy()).then(()=>{queueMicrotask(t)})}destroy(e,t){if(typeof e=="function"&&(t=e,e=null),t===void 0)return new Promise((s,n)=>{this.destroy(e,(i,o)=>i?n(i):s(o))});if(typeof t!="function")throw new bt("invalid callback");if(this[St]){this[Le]?this[Le].push(t):queueMicrotask(()=>t(null,null));return}e||(e=new no),this[St]=!0,this[Le]=this[Le]||[],this[Le].push(t);let r=()=>{let s=this[Le];this[Le]=null;for(let n=0;n<s.length;n++)s[n](null,null)};this[Y0](e).then(()=>{queueMicrotask(r)})}[Fs](e,t){if(!this[et]||this[et].length===0)return this[Fs]=this[io],this[io](e,t);let r=this[io].bind(this);for(let s=this[et].length-1;s>=0;s--)r=this[et][s](r);return this[Fs]=r,r(e,t)}dispatch(e,t){if(!t||typeof t!="object")throw new bt("handler must be an object");try{if(!e||typeof e!="object")throw new bt("opts must be an object.");if(this[St]||this[Le])throw new no;if(this[Dr])throw new M0;return this[Fs](e,t)}catch(r){if(typeof t.onError!="function")throw new bt("invalid onError method");return t.onError(r),!1}}};Na.exports=oo});var Rr=c((Nb,Sa)=>{"use strict";var G0=require("net"),ma=require("assert"),ba=G(),{InvalidArgumentError:T0,ConnectTimeoutError:v0}=Z(),go,Qo;global.FinalizationRegistry?Qo=class{constructor(e){this._maxCachedSessions=e,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(t=>{if(this._sessionCache.size<this._maxCachedSessions)return;let r=this._sessionCache.get(t);r!==void 0&&r.deref()===void 0&&this._sessionCache.delete(t)})}get(e){let t=this._sessionCache.get(e);return t?t.deref():null}set(e,t){this._maxCachedSessions!==0&&(this._sessionCache.set(e,new WeakRef(t)),this._sessionRegistry.register(t,e))}}:Qo=class{constructor(e){this._maxCachedSessions=e,this._sessionCache=new Map}get(e){return this._sessionCache.get(e)}set(e,t){if(this._maxCachedSessions!==0){if(this._sessionCache.size>=this._maxCachedSessions){let{value:r}=this._sessionCache.keys().next();this._sessionCache.delete(r)}this._sessionCache.set(e,t)}}};function H0({maxCachedSessions:A,socketPath:e,timeout:t,...r}){if(A!=null&&(!Number.isInteger(A)||A<0))throw new T0("maxCachedSessions must be a positive integer or zero");let s={path:e,...r},n=new Qo(A??100);return t=t??1e4,function({hostname:o,host:g,protocol:a,port:Q,servername:E,localAddress:C,httpSocket:B},I){let h;if(a==="https:"){go||(go=require("tls")),E=E||s.servername||ba.getServerName(g)||null;let u=E||o,F=n.get(u)||null;ma(u),h=go.connect({highWaterMark:16384,...s,servername:E,session:F,localAddress:C,socket:B,port:Q||443,host:o}),h.on("session",function(w){n.set(u,w)})}else ma(!B,"httpSocket can only be sent on TLS update"),h=G0.connect({highWaterMark:64*1024,...s,localAddress:C,port:Q||80,host:o});if(s.keepAlive==null||s.keepAlive){let u=s.keepAliveInitialDelay===void 0?6e4:s.keepAliveInitialDelay;h.setKeepAlive(!0,u)}let l=V0(()=>x0(h),t);return h.setNoDelay(!0).once(a==="https:"?"secureConnect":"connect",function(){if(l(),I){let u=I;I=null,u(null,this)}}).on("error",function(u){if(l(),I){let F=I;I=null,F(u)}}),h}}function V0(A,e){if(!e)return()=>{};let t=null,r=null,s=setTimeout(()=>{t=setImmediate(()=>{process.platform==="win32"?r=setImmediate(()=>A()):A()})},e);return()=>{clearTimeout(s),clearImmediate(t),clearImmediate(r)}}function x0(A){ba.destroy(A,new v0)}Sa.exports=H0});var Ua=c(Ns=>{"use strict";Object.defineProperty(Ns,"__esModule",{value:!0});Ns.enumToMap=void 0;function q0(A){let e={};return Object.keys(A).forEach(t=>{let r=A[t];typeof r=="number"&&(e[t]=r)}),e}Ns.enumToMap=q0});var La=c(f=>{"use strict";Object.defineProperty(f,"__esModule",{value:!0});f.SPECIAL_HEADERS=f.HEADER_STATE=f.MINOR=f.MAJOR=f.CONNECTION_TOKEN_CHARS=f.HEADER_CHARS=f.TOKEN=f.STRICT_TOKEN=f.HEX=f.URL_CHAR=f.STRICT_URL_CHAR=f.USERINFO_CHARS=f.MARK=f.ALPHANUM=f.NUM=f.HEX_MAP=f.NUM_MAP=f.ALPHA=f.FINISH=f.H_METHOD_MAP=f.METHOD_MAP=f.METHODS_RTSP=f.METHODS_ICE=f.METHODS_HTTP=f.METHODS=f.LENIENT_FLAGS=f.FLAGS=f.TYPE=f.ERROR=void 0;var W0=Ua(),O0;(function(A){A[A.OK=0]="OK",A[A.INTERNAL=1]="INTERNAL",A[A.STRICT=2]="STRICT",A[A.LF_EXPECTED=3]="LF_EXPECTED",A[A.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",A[A.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",A[A.INVALID_METHOD=6]="INVALID_METHOD",A[A.INVALID_URL=7]="INVALID_URL",A[A.INVALID_CONSTANT=8]="INVALID_CONSTANT",A[A.INVALID_VERSION=9]="INVALID_VERSION",A[A.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",A[A.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",A[A.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",A[A.INVALID_STATUS=13]="INVALID_STATUS",A[A.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",A[A.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",A[A.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",A[A.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",A[A.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",A[A.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",A[A.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",A[A.PAUSED=21]="PAUSED",A[A.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",A[A.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",A[A.USER=24]="USER"})(O0=f.ERROR||(f.ERROR={}));var P0;(function(A){A[A.BOTH=0]="BOTH",A[A.REQUEST=1]="REQUEST",A[A.RESPONSE=2]="RESPONSE"})(P0=f.TYPE||(f.TYPE={}));var _0;(function(A){A[A.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",A[A.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",A[A.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",A[A.CHUNKED=8]="CHUNKED",A[A.UPGRADE=16]="UPGRADE",A[A.CONTENT_LENGTH=32]="CONTENT_LENGTH",A[A.SKIPBODY=64]="SKIPBODY",A[A.TRAILING=128]="TRAILING",A[A.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(_0=f.FLAGS||(f.FLAGS={}));var Z0;(function(A){A[A.HEADERS=1]="HEADERS",A[A.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",A[A.KEEP_ALIVE=4]="KEEP_ALIVE"})(Z0=f.LENIENT_FLAGS||(f.LENIENT_FLAGS={}));var D;(function(A){A[A.DELETE=0]="DELETE",A[A.GET=1]="GET",A[A.HEAD=2]="HEAD",A[A.POST=3]="POST",A[A.PUT=4]="PUT",A[A.CONNECT=5]="CONNECT",A[A.OPTIONS=6]="OPTIONS",A[A.TRACE=7]="TRACE",A[A.COPY=8]="COPY",A[A.LOCK=9]="LOCK",A[A.MKCOL=10]="MKCOL",A[A.MOVE=11]="MOVE",A[A.PROPFIND=12]="PROPFIND",A[A.PROPPATCH=13]="PROPPATCH",A[A.SEARCH=14]="SEARCH",A[A.UNLOCK=15]="UNLOCK",A[A.BIND=16]="BIND",A[A.REBIND=17]="REBIND",A[A.UNBIND=18]="UNBIND",A[A.ACL=19]="ACL",A[A.REPORT=20]="REPORT",A[A.MKACTIVITY=21]="MKACTIVITY",A[A.CHECKOUT=22]="CHECKOUT",A[A.MERGE=23]="MERGE",A[A["M-SEARCH"]=24]="M-SEARCH",A[A.NOTIFY=25]="NOTIFY",A[A.SUBSCRIBE=26]="SUBSCRIBE",A[A.UNSUBSCRIBE=27]="UNSUBSCRIBE",A[A.PATCH=28]="PATCH",A[A.PURGE=29]="PURGE",A[A.MKCALENDAR=30]="MKCALENDAR",A[A.LINK=31]="LINK",A[A.UNLINK=32]="UNLINK",A[A.SOURCE=33]="SOURCE",A[A.PRI=34]="PRI",A[A.DESCRIBE=35]="DESCRIBE",A[A.ANNOUNCE=36]="ANNOUNCE",A[A.SETUP=37]="SETUP",A[A.PLAY=38]="PLAY",A[A.PAUSE=39]="PAUSE",A[A.TEARDOWN=40]="TEARDOWN",A[A.GET_PARAMETER=41]="GET_PARAMETER",A[A.SET_PARAMETER=42]="SET_PARAMETER",A[A.REDIRECT=43]="REDIRECT",A[A.RECORD=44]="RECORD",A[A.FLUSH=45]="FLUSH"})(D=f.METHODS||(f.METHODS={}));f.METHODS_HTTP=[D.DELETE,D.GET,D.HEAD,D.POST,D.PUT,D.CONNECT,D.OPTIONS,D.TRACE,D.COPY,D.LOCK,D.MKCOL,D.MOVE,D.PROPFIND,D.PROPPATCH,D.SEARCH,D.UNLOCK,D.BIND,D.REBIND,D.UNBIND,D.ACL,D.REPORT,D.MKACTIVITY,D.CHECKOUT,D.MERGE,D["M-SEARCH"],D.NOTIFY,D.SUBSCRIBE,D.UNSUBSCRIBE,D.PATCH,D.PURGE,D.MKCALENDAR,D.LINK,D.UNLINK,D.PRI,D.SOURCE];f.METHODS_ICE=[D.SOURCE];f.METHODS_RTSP=[D.OPTIONS,D.DESCRIBE,D.ANNOUNCE,D.SETUP,D.PLAY,D.PAUSE,D.TEARDOWN,D.GET_PARAMETER,D.SET_PARAMETER,D.REDIRECT,D.RECORD,D.FLUSH,D.GET,D.POST];f.METHOD_MAP=W0.enumToMap(D);f.H_METHOD_MAP={};Object.keys(f.METHOD_MAP).forEach(A=>{/^H/.test(A)&&(f.H_METHOD_MAP[A]=f.METHOD_MAP[A])});var X0;(function(A){A[A.SAFE=0]="SAFE",A[A.SAFE_WITH_CB=1]="SAFE_WITH_CB",A[A.UNSAFE=2]="UNSAFE"})(X0=f.FINISH||(f.FINISH={}));f.ALPHA=[];for(let A=65;A<=90;A++)f.ALPHA.push(String.fromCharCode(A)),f.ALPHA.push(String.fromCharCode(A+32));f.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};f.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};f.NUM=["0","1","2","3","4","5","6","7","8","9"];f.ALPHANUM=f.ALPHA.concat(f.NUM);f.MARK=["-","_",".","!","~","*","'","(",")"];f.USERINFO_CHARS=f.ALPHANUM.concat(f.MARK).concat(["%",";",":","&","=","+","$",","]);f.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(f.ALPHANUM);f.URL_CHAR=f.STRICT_URL_CHAR.concat([" ","\f"]);for(let A=128;A<=255;A++)f.URL_CHAR.push(A);f.HEX=f.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);f.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(f.ALPHANUM);f.TOKEN=f.STRICT_TOKEN.concat([" "]);f.HEADER_CHARS=[" "];for(let A=32;A<=255;A++)A!==127&&f.HEADER_CHARS.push(A);f.CONNECTION_TOKEN_CHARS=f.HEADER_CHARS.filter(A=>A!==44);f.MAJOR=f.NUM_MAP;f.MINOR=f.MAJOR;var Lt;(function(A){A[A.GENERAL=0]="GENERAL",A[A.CONNECTION=1]="CONNECTION",A[A.CONTENT_LENGTH=2]="CONTENT_LENGTH",A[A.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",A[A.UPGRADE=4]="UPGRADE",A[A.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",A[A.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",A[A.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",A[A.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(Lt=f.HEADER_STATE||(f.HEADER_STATE={}));f.SPECIAL_HEADERS={connection:Lt.CONNECTION,"content-length":Lt.CONTENT_LENGTH,"proxy-connection":Lt.CONNECTION,"transfer-encoding":Lt.TRANSFER_ENCODING,upgrade:Lt.UPGRADE}});var Co=c((Sb,Ja)=>{"use strict";var Mt=G(),{kBodyUsed:kr}=$(),ao=require("assert"),{InvalidArgumentError:K0}=Z(),j0=require("events"),z0=[300,301,302,303,307,308],Ma=Symbol("body"),ms=class{constructor(e){this[Ma]=e,this[kr]=!1}async*[Symbol.asyncIterator](){ao(!this[kr],"disturbed"),this[kr]=!0,yield*this[Ma]}},Eo=class{constructor(e,t,r,s){if(t!=null&&(!Number.isInteger(t)||t<0))throw new K0("maxRedirections must be a positive number");Mt.validateHandler(s,r.method,r.upgrade),this.dispatch=e,this.location=null,this.abort=null,this.opts={...r,maxRedirections:0},this.maxRedirections=t,this.handler=s,this.history=[],Mt.isStream(this.opts.body)?(Mt.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){ao(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[kr]=!1,j0.prototype.on.call(this.opts.body,"data",function(){this[kr]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new ms(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&Mt.isIterable(this.opts.body)&&(this.opts.body=new ms(this.opts.body))}onConnect(e){this.abort=e,this.handler.onConnect(e,{history:this.history})}onUpgrade(e,t,r){this.handler.onUpgrade(e,t,r)}onError(e){this.handler.onError(e)}onHeaders(e,t,r,s){if(this.location=this.history.length>=this.maxRedirections||Mt.isDisturbed(this.opts.body)?null:$0(e,t),this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(e,t,r,s);let{origin:n,pathname:i,search:o}=Mt.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),g=o?`${i}${o}`:i;this.opts.headers=Ay(this.opts.headers,e===303,this.opts.origin!==n),this.opts.path=g,this.opts.origin=n,this.opts.maxRedirections=0,this.opts.query=null,e===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(e){if(!this.location)return this.handler.onData(e)}onComplete(e){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(e)}onBodySent(e){this.handler.onBodySent&&this.handler.onBodySent(e)}};function $0(A,e){if(z0.indexOf(A)===-1)return null;for(let t=0;t<e.length;t+=2)if(e[t].toString().toLowerCase()==="location")return e[t+1]}function Ya(A,e,t){return A.length===4&&A.toString().toLowerCase()==="host"||e&&A.toString().toLowerCase().indexOf("content-")===0||t&&A.length===13&&A.toString().toLowerCase()==="authorization"||t&&A.length===6&&A.toString().toLowerCase()==="cookie"}function Ay(A,e,t){let r=[];if(Array.isArray(A))for(let s=0;s<A.length;s+=2)Ya(A[s],e,t)||r.push(A[s],A[s+1]);else if(A&&typeof A=="object")for(let s of Object.keys(A))Ya(s,e,t)||r.push(s,A[s]);else ao(A==null,"headers must be an object or an array");return r}Ja.exports=Eo});var bs=c((Ub,Ga)=>{"use strict";var ey=Co();function ty({maxRedirections:A}){return e=>function(r,s){let{maxRedirections:n=A}=r;if(!n)return e(r,s);let i=new ey(e,n,r,s);return r={...r,maxRedirections:0},e(r,i)}}Ga.exports=ty});var Bo=c((Lb,Ta)=>{Ta.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="});var Ha=c((Mb,va)=>{va.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="});var Ur=c((Yb,nC)=>{"use strict";var y=require("assert"),qa=require("net"),b=G(),Io=lE(),ry=ka(),sy=pr(),{RequestContentLengthMismatchError:tt,ResponseContentLengthMismatchError:ny,InvalidArgumentError:QA,RequestAbortedError:Wa,HeadersTimeoutError:iy,HeadersOverflowError:oy,SocketError:Ys,InformationalError:rt,BodyTimeoutError:gy,HTTPParserError:Qy,ResponseExceededMaxSizeError:Ey,ClientDestroyedError:ay}=Z(),Cy=Rr(),{kUrl:zA,kReset:pA,kServerName:xe,kClient:Ts,kBusy:ho,kParser:j,kConnect:By,kBlocking:Jt,kResuming:st,kRunning:sA,kPending:Gt,kSize:nt,kWriting:Me,kQueue:eA,kConnected:Iy,kConnecting:Yt,kNeedDrain:We,kNoRef:Fr,kKeepAliveDefaultTimeout:lo,kHostHeader:Oa,kPendingIdx:$A,kRunningIdx:rA,kError:xA,kPipelining:Oe,kSocket:VA,kKeepAliveTimeoutValue:br,kMaxHeadersSize:Ls,kKeepAliveMaxTimeout:Pa,kKeepAliveTimeoutThreshold:Za,kHeadersTimeout:Xa,kBodyTimeout:Ka,kStrictContentLength:Js,kConnector:Nr,kMaxRedirections:cy,kMaxRequests:Sr,kCounter:ja,kClose:hy,kDestroy:ly,kDispatch:uy,kInterceptors:fy,kLocalAddress:mr,kMaxResponseSize:za}=$(),Ss=Buffer[Symbol.species],qe=Symbol("kClosedResolve"),dA={};try{let A=require("diagnostics_channel");dA.sendHeaders=A.channel("undici:client:sendHeaders"),dA.beforeConnect=A.channel("undici:client:beforeConnect"),dA.connectError=A.channel("undici:client:connectError"),dA.connected=A.channel("undici:client:connected")}catch{dA.sendHeaders={hasSubscribers:!1},dA.beforeConnect={hasSubscribers:!1},dA.connectError={hasSubscribers:!1},dA.connected={hasSubscribers:!1}}var uo=class extends sy{constructor(e,{interceptors:t,maxHeaderSize:r,headersTimeout:s,socketTimeout:n,requestTimeout:i,connectTimeout:o,bodyTimeout:g,idleTimeout:a,keepAlive:Q,keepAliveTimeout:E,maxKeepAliveTimeout:C,keepAliveMaxTimeout:B,keepAliveTimeoutThreshold:I,socketPath:h,pipelining:l,tls:u,strictContentLength:F,maxCachedSessions:w,maxRedirections:k,connect:T,maxRequestsPerClient:O,localAddress:V,maxResponseSize:K,autoSelectFamily:uA,autoSelectFamilyAttemptTimeout:IA}={}){if(super(),Q!==void 0)throw new QA("unsupported keepAlive, use pipelining=0 instead");if(n!==void 0)throw new QA("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(i!==void 0)throw new QA("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(a!==void 0)throw new QA("unsupported idleTimeout, use keepAliveTimeout instead");if(C!==void 0)throw new QA("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(r!=null&&!Number.isFinite(r))throw new QA("invalid maxHeaderSize");if(h!=null&&typeof h!="string")throw new QA("invalid socketPath");if(o!=null&&(!Number.isFinite(o)||o<0))throw new QA("invalid connectTimeout");if(E!=null&&(!Number.isFinite(E)||E<=0))throw new QA("invalid keepAliveTimeout");if(B!=null&&(!Number.isFinite(B)||B<=0))throw new QA("invalid keepAliveMaxTimeout");if(I!=null&&!Number.isFinite(I))throw new QA("invalid keepAliveTimeoutThreshold");if(s!=null&&(!Number.isInteger(s)||s<0))throw new QA("headersTimeout must be a positive integer or zero");if(g!=null&&(!Number.isInteger(g)||g<0))throw new QA("bodyTimeout must be a positive integer or zero");if(T!=null&&typeof T!="function"&&typeof T!="object")throw new QA("connect must be a function or an object");if(k!=null&&(!Number.isInteger(k)||k<0))throw new QA("maxRedirections must be a positive number");if(O!=null&&(!Number.isInteger(O)||O<0))throw new QA("maxRequestsPerClient must be a positive number");if(V!=null&&(typeof V!="string"||qa.isIP(V)===0))throw new QA("localAddress must be valid string IP address");if(K!=null&&(!Number.isInteger(K)||K<-1))throw new QA("maxResponseSize must be a positive number");if(IA!=null&&(!Number.isInteger(IA)||IA<-1))throw new QA("autoSelectFamilyAttemptTimeout must be a positive number");typeof T!="function"&&(T=Cy({...u,maxCachedSessions:w,socketPath:h,timeout:o,...b.nodeHasAutoSelectFamily&&uA?{autoSelectFamily:uA,autoSelectFamilyAttemptTimeout:IA}:void 0,...T})),this[fy]=t&&t.Client&&Array.isArray(t.Client)?t.Client:[dy({maxRedirections:k})],this[zA]=b.parseOrigin(e),this[Nr]=T,this[VA]=null,this[Oe]=l??1,this[Ls]=r||16384,this[lo]=E??4e3,this[Pa]=B??6e5,this[Za]=I??1e3,this[br]=this[lo],this[xe]=null,this[mr]=V??null,this[st]=0,this[We]=0,this[Oa]=`host: ${this[zA].hostname}${this[zA].port?`:${this[zA].port}`:""}\r -`,this[Ka]=g??3e5,this[Xa]=s??3e5,this[Js]=F??!0,this[cy]=k,this[Sr]=O,this[qe]=null,this[za]=K>-1?K:-1,this[eA]=[],this[rA]=0,this[$A]=0}get pipelining(){return this[Oe]}set pipelining(e){this[Oe]=e,Ae(this,!0)}get[Gt](){return this[eA].length-this[$A]}get[sA](){return this[$A]-this[rA]}get[nt](){return this[eA].length-this[rA]}get[Iy](){return!!this[VA]&&!this[Yt]&&!this[VA].destroyed}get[ho](){let e=this[VA];return e&&(e[pA]||e[Me]||e[Jt])||this[nt]>=(this[Oe]||1)||this[Gt]>0}[By](e){sC(this),this.once("connect",e)}[uy](e,t){let r=e.origin||this[zA].origin,s=new ry(r,e,t);return this[eA].push(s),this[st]||(b.bodyLength(s.body)==null&&b.isIterable(s.body)?(this[st]=1,process.nextTick(Ae,this)):Ae(this,!0)),this[st]&&this[We]!==2&&this[ho]&&(this[We]=2),this[We]<2}async[hy](){return new Promise(e=>{this[nt]?this[qe]=e:e(null)})}async[ly](e){return new Promise(t=>{let r=this[eA].splice(this[$A]);for(let n=0;n<r.length;n++){let i=r[n];de(this,i,e)}let s=()=>{this[qe]&&(this[qe](),this[qe]=null),t()};this[VA]?b.destroy(this[VA].on("close",s),e):queueMicrotask(s),Ae(this)})}},le=La(),dy=bs(),yy=Buffer.alloc(0);async function wy(){let A=process.env.JEST_WORKER_ID?Bo():void 0,e;try{e=await WebAssembly.compile(Buffer.from(Ha(),"base64"))}catch{e=await WebAssembly.compile(Buffer.from(A||Bo(),"base64"))}return await WebAssembly.instantiate(e,{env:{wasm_on_url:(t,r,s)=>0,wasm_on_status:(t,r,s)=>{y.strictEqual(EA.ptr,t);let n=r-fe+ue.byteOffset;return EA.onStatus(new Ss(ue.buffer,n,s))||0},wasm_on_message_begin:t=>(y.strictEqual(EA.ptr,t),EA.onMessageBegin()||0),wasm_on_header_field:(t,r,s)=>{y.strictEqual(EA.ptr,t);let n=r-fe+ue.byteOffset;return EA.onHeaderField(new Ss(ue.buffer,n,s))||0},wasm_on_header_value:(t,r,s)=>{y.strictEqual(EA.ptr,t);let n=r-fe+ue.byteOffset;return EA.onHeaderValue(new Ss(ue.buffer,n,s))||0},wasm_on_headers_complete:(t,r,s,n)=>(y.strictEqual(EA.ptr,t),EA.onHeadersComplete(r,!!s,!!n)||0),wasm_on_body:(t,r,s)=>{y.strictEqual(EA.ptr,t);let n=r-fe+ue.byteOffset;return EA.onBody(new Ss(ue.buffer,n,s))||0},wasm_on_message_complete:t=>(y.strictEqual(EA.ptr,t),EA.onMessageComplete()||0)}})}var co=null,fo=wy();fo.catch();var EA=null,ue=null,Us=0,fe=null,Tt=1,Ms=2,yo=3,wo=class{constructor(e,t,{exports:r}){y(Number.isFinite(e[Ls])&&e[Ls]>0),this.llhttp=r,this.ptr=this.llhttp.llhttp_alloc(le.TYPE.RESPONSE),this.client=e,this.socket=t,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=e[Ls],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=e[za]}setTimeout(e,t){this.timeoutType=t,e!==this.timeoutValue?(Io.clearTimeout(this.timeout),e?(this.timeout=Io.setTimeout(Dy,e,this),this.timeout.unref&&this.timeout.unref()):this.timeout=null,this.timeoutValue=e):this.timeout&&this.timeout.refresh&&this.timeout.refresh()}resume(){this.socket.destroyed||!this.paused||(y(this.ptr!=null),y(EA==null),this.llhttp.llhttp_resume(this.ptr),y(this.timeoutType===Ms),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||yy),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let e=this.socket.read();if(e===null)break;this.execute(e)}}execute(e){y(this.ptr!=null),y(EA==null),y(!this.paused);let{socket:t,llhttp:r}=this;e.length>Us&&(fe&&r.free(fe),Us=Math.ceil(e.length/4096)*4096,fe=r.malloc(Us)),new Uint8Array(r.memory.buffer,fe,Us).set(e);try{let s;try{ue=e,EA=this,s=r.llhttp_execute(this.ptr,fe,e.length)}catch(i){throw i}finally{EA=null,ue=null}let n=r.llhttp_get_error_pos(this.ptr)-fe;if(s===le.ERROR.PAUSED_UPGRADE)this.onUpgrade(e.slice(n));else if(s===le.ERROR.PAUSED)this.paused=!0,t.unshift(e.slice(n));else if(s!==le.ERROR.OK){let i=r.llhttp_get_error_reason(this.ptr),o="";if(i){let g=new Uint8Array(r.memory.buffer,i).indexOf(0);o="Response does not match the HTTP/1.1 protocol ("+Buffer.from(r.memory.buffer,i,g).toString()+")"}throw new Qy(o,le.ERROR[s],e.slice(n))}}catch(s){b.destroy(t,s)}}destroy(){y(this.ptr!=null),y(EA==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,Io.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(e){this.statusText=e.toString()}onMessageBegin(){let{socket:e,client:t}=this;if(e.destroyed||!t[eA][t[rA]])return-1}onHeaderField(e){let t=this.headers.length;(t&1)===0?this.headers.push(e):this.headers[t-1]=Buffer.concat([this.headers[t-1],e]),this.trackHeader(e.length)}onHeaderValue(e){let t=this.headers.length;(t&1)===1?(this.headers.push(e),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],e]);let r=this.headers[t-2];r.length===10&&r.toString().toLowerCase()==="keep-alive"?this.keepAlive+=e.toString():r.length===10&&r.toString().toLowerCase()==="connection"?this.connection+=e.toString():r.length===14&&r.toString().toLowerCase()==="content-length"&&(this.contentLength+=e.toString()),this.trackHeader(e.length)}trackHeader(e){this.headersSize+=e,this.headersSize>=this.headersMaxSize&&b.destroy(this.socket,new oy)}onUpgrade(e){let{upgrade:t,client:r,socket:s,headers:n,statusCode:i}=this;y(t);let o=r[eA][r[rA]];y(o),y(!s.destroyed),y(s===r[VA]),y(!this.paused),y(o.upgrade||o.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,y(this.headers.length%2===0),this.headers=[],this.headersSize=0,s.unshift(e),s[j].destroy(),s[j]=null,s[Ts]=null,s[xA]=null,s.removeListener("error",AC).removeListener("readable",$a).removeListener("end",tC).removeListener("close",rC),r[VA]=null,r[eA][r[rA]++]=null,r.emit("disconnect",r[zA],[r],new rt("upgrade"));try{o.onUpgrade(i,n,s)}catch(g){b.destroy(s,g)}Ae(r)}onHeadersComplete(e,t,r){let{client:s,socket:n,headers:i,statusText:o}=this;if(n.destroyed)return-1;let g=s[eA][s[rA]];if(!g)return-1;if(y(!this.upgrade),y(this.statusCode<200),e===100)return b.destroy(n,new Ys("bad response",b.getSocketInfo(n))),-1;if(t&&!g.upgrade)return b.destroy(n,new Ys("bad upgrade",b.getSocketInfo(n))),-1;if(y.strictEqual(this.timeoutType,Tt),this.statusCode=e,this.shouldKeepAlive=r||g.method==="HEAD"&&!n[pA]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let Q=g.bodyTimeout!=null?g.bodyTimeout:s[Ka];this.setTimeout(Q,Ms)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(g.method==="CONNECT")return y(s[sA]===1),this.upgrade=!0,2;if(t)return y(s[sA]===1),this.upgrade=!0,2;if(y(this.headers.length%2===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&s[Oe]){let Q=this.keepAlive?b.parseKeepAliveTimeout(this.keepAlive):null;if(Q!=null){let E=Math.min(Q-s[Za],s[Pa]);E<=0?n[pA]=!0:s[br]=E}else s[br]=s[lo]}else n[pA]=!0;let a;try{a=g.onHeaders(e,i,this.resume,o)===!1}catch(Q){return b.destroy(n,Q),-1}return g.method==="HEAD"||e<200?1:(n[Jt]&&(n[Jt]=!1,Ae(s)),a?le.ERROR.PAUSED:0)}onBody(e){let{client:t,socket:r,statusCode:s,maxResponseSize:n}=this;if(r.destroyed)return-1;let i=t[eA][t[rA]];if(y(i),y.strictEqual(this.timeoutType,Ms),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),y(s>=200),n>-1&&this.bytesRead+e.length>n)return b.destroy(r,new Ey),-1;this.bytesRead+=e.length;try{if(i.onData(e)===!1)return le.ERROR.PAUSED}catch(o){return b.destroy(r,o),-1}}onMessageComplete(){let{client:e,socket:t,statusCode:r,upgrade:s,headers:n,contentLength:i,bytesRead:o,shouldKeepAlive:g}=this;if(t.destroyed&&(!r||g))return-1;if(s)return;let a=e[eA][e[rA]];if(y(a),y(r>=100),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",y(this.headers.length%2===0),this.headers=[],this.headersSize=0,!(r<200)){if(a.method!=="HEAD"&&i&&o!==parseInt(i,10))return b.destroy(t,new ny),-1;try{a.onComplete(n)}catch(Q){de(e,a,Q)}if(e[eA][e[rA]++]=null,t[Me])return y.strictEqual(e[sA],0),b.destroy(t,new rt("reset")),le.ERROR.PAUSED;if(g){if(t[pA]&&e[sA]===0)return b.destroy(t,new rt("reset")),le.ERROR.PAUSED;e[Oe]===1?setImmediate(Ae,e):Ae(e)}else return b.destroy(t,new rt("reset")),le.ERROR.PAUSED}}};function Dy(A){let{socket:e,timeoutType:t,client:r}=A;t===Tt?(!e[Me]||e.writableNeedDrain||r[sA]>1)&&(y(!A.paused,"cannot be paused while waiting for headers"),b.destroy(e,new iy)):t===Ms?A.paused||b.destroy(e,new gy):t===yo&&(y(r[sA]===0&&r[br]),b.destroy(e,new rt("socket idle timeout")))}function $a(){let{[j]:A}=this;A.readMore()}function AC(A){let{[j]:e}=this;if(y(A.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),A.code==="ECONNRESET"&&e.statusCode&&!e.shouldKeepAlive){e.onMessageComplete();return}this[xA]=A,eC(this[Ts],A)}function eC(A,e){if(A[sA]===0&&e.code!=="UND_ERR_INFO"&&e.code!=="UND_ERR_SOCKET"){y(A[$A]===A[rA]);let t=A[eA].splice(A[rA]);for(let r=0;r<t.length;r++){let s=t[r];de(A,s,e)}y(A[nt]===0)}}function tC(){let{[j]:A}=this;if(A.statusCode&&!A.shouldKeepAlive){A.onMessageComplete();return}b.destroy(this,new Ys("other side closed",b.getSocketInfo(this)))}function rC(){let{[Ts]:A}=this;!this[xA]&&this[j].statusCode&&!this[j].shouldKeepAlive&&this[j].onMessageComplete(),this[j].destroy(),this[j]=null;let e=this[xA]||new Ys("closed",b.getSocketInfo(this));if(A[VA]=null,A.destroyed){y(A[Gt]===0);let t=A[eA].splice(A[rA]);for(let r=0;r<t.length;r++){let s=t[r];de(A,s,e)}}else if(A[sA]>0&&e.code!=="UND_ERR_INFO"){let t=A[eA][A[rA]];A[eA][A[rA]++]=null,de(A,t,e)}A[$A]=A[rA],y(A[sA]===0),A.emit("disconnect",A[zA],[A],e),Ae(A)}async function sC(A){y(!A[Yt]),y(!A[VA]);let{host:e,hostname:t,protocol:r,port:s}=A[zA];if(t[0]==="["){let n=t.indexOf("]");y(n!==-1);let i=t.substr(1,n-1);y(qa.isIP(i)),t=i}A[Yt]=!0,dA.beforeConnect.hasSubscribers&&dA.beforeConnect.publish({connectParams:{host:e,hostname:t,protocol:r,port:s,servername:A[xe],localAddress:A[mr]},connector:A[Nr]});try{let n=await new Promise((i,o)=>{A[Nr]({host:e,hostname:t,protocol:r,port:s,servername:A[xe],localAddress:A[mr]},(g,a)=>{g?o(g):i(a)})});if(A.destroyed){b.destroy(n.on("error",()=>{}),new ay);return}co||(co=await fo,fo=null),A[Yt]=!1,y(n),n[Fr]=!1,n[Me]=!1,n[pA]=!1,n[Jt]=!1,n[xA]=null,n[j]=new wo(A,n,co),n[Ts]=A,n[ja]=0,n[Sr]=A[Sr],n.on("error",AC).on("readable",$a).on("end",tC).on("close",rC),A[VA]=n,dA.connected.hasSubscribers&&dA.connected.publish({connectParams:{host:e,hostname:t,protocol:r,port:s,servername:A[xe],localAddress:A[mr]},connector:A[Nr],socket:n}),A.emit("connect",A[zA],[A])}catch(n){if(A.destroyed)return;if(A[Yt]=!1,dA.connectError.hasSubscribers&&dA.connectError.publish({connectParams:{host:e,hostname:t,protocol:r,port:s,servername:A[xe],localAddress:A[mr]},connector:A[Nr],error:n}),n.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(y(A[sA]===0);A[Gt]>0&&A[eA][A[$A]].servername===A[xe];){let i=A[eA][A[$A]++];de(A,i,n)}else eC(A,n);A.emit("connectionError",A[zA],[A],n)}Ae(A)}function Va(A){A[We]=0,A.emit("drain",A[zA],[A])}function Ae(A,e){A[st]!==2&&(A[st]=2,py(A,e),A[st]=0,A[rA]>256&&(A[eA].splice(0,A[rA]),A[$A]-=A[rA],A[rA]=0))}function py(A,e){for(;;){if(A.destroyed){y(A[Gt]===0);return}if(A[qe]&&!A[nt]){A[qe](),A[qe]=null;return}let t=A[VA];if(t&&!t.destroyed){if(A[nt]===0?!t[Fr]&&t.unref&&(t.unref(),t[Fr]=!0):t[Fr]&&t.ref&&(t.ref(),t[Fr]=!1),A[nt]===0)t[j].timeoutType!==yo&&t[j].setTimeout(A[br],yo);else if(A[sA]>0&&t[j].statusCode<200&&t[j].timeoutType!==Tt){let s=A[eA][A[rA]],n=s.headersTimeout!=null?s.headersTimeout:A[Xa];t[j].setTimeout(n,Tt)}}if(A[ho])A[We]=2;else if(A[We]===2){e?(A[We]=1,process.nextTick(Va,A)):Va(A);continue}if(A[Gt]===0||A[sA]>=(A[Oe]||1))return;let r=A[eA][A[$A]];if(A[zA].protocol==="https:"&&A[xe]!==r.servername){if(A[sA]>0)return;if(A[xe]=r.servername,t&&t.servername!==r.servername){b.destroy(t,new rt("servername changed"));return}}if(A[Yt])return;if(!t){sC(A);return}if(t.destroyed||t[Me]||t[pA]||t[Jt]||A[sA]>0&&!r.idempotent||A[sA]>0&&(r.upgrade||r.method==="CONNECT")||(b.isStream(r.body)&&b.bodyLength(r.body)===0&&(r.body.on("data",function(){y(!1)}).on("error",function(s){de(A,r,s)}).on("end",function(){b.destroy(this)}),r.body=null),A[sA]>0&&(b.isStream(r.body)||b.isAsyncIterable(r.body))))return;!r.aborted&&Ry(A,r)?A[$A]++:A[eA].splice(A[$A],1)}}function Ry(A,e){let{body:t,method:r,path:s,host:n,upgrade:i,headers:o,blocking:g,reset:a}=e,Q=r==="PUT"||r==="POST"||r==="PATCH";t&&typeof t.read=="function"&&t.read(0);let E=b.bodyLength(t);if(E===null&&(E=e.contentLength),E===0&&!Q&&(E=null),e.contentLength!==null&&e.contentLength!==E){if(A[Js])return de(A,e,new tt),!1;process.emitWarning(new tt)}let C=A[VA];try{e.onConnect(I=>{e.aborted||e.completed||(de(A,e,I||new Wa),b.destroy(C,new rt("aborted")))})}catch(I){de(A,e,I)}if(e.aborted)return!1;r==="HEAD"&&(C[pA]=!0),(i||r==="CONNECT")&&(C[pA]=!0),a!=null&&(C[pA]=a),A[Sr]&&C[ja]++>=A[Sr]&&(C[pA]=!0),g&&(C[Jt]=!0);let B=`${r} ${s} HTTP/1.1\r -`;return typeof n=="string"?B+=`host: ${n}\r -`:B+=A[Oa],i?B+=`connection: upgrade\r -upgrade: ${i}\r -`:A[Oe]&&!C[pA]?B+=`connection: keep-alive\r -`:B+=`connection: close\r -`,o&&(B+=o),dA.sendHeaders.hasSubscribers&&dA.sendHeaders.publish({request:e,headers:B,socket:C}),t?b.isBuffer(t)?(y(E===t.byteLength,"buffer body must have content length"),C.cork(),C.write(`${B}content-length: ${E}\r -\r -`,"latin1"),C.write(t),C.uncork(),e.onBodySent(t),e.onRequestSent(),Q||(C[pA]=!0)):b.isBlobLike(t)?typeof t.stream=="function"?xa({body:t.stream(),client:A,request:e,socket:C,contentLength:E,header:B,expectsPayload:Q}):Fy({body:t,client:A,request:e,socket:C,contentLength:E,header:B,expectsPayload:Q}):b.isStream(t)?ky({body:t,client:A,request:e,socket:C,contentLength:E,header:B,expectsPayload:Q}):b.isIterable(t)?xa({body:t,client:A,request:e,socket:C,contentLength:E,header:B,expectsPayload:Q}):y(!1):(E===0?C.write(`${B}content-length: 0\r -\r -`,"latin1"):(y(E===null,"no body must not have content length"),C.write(`${B}\r -`,"latin1")),e.onRequestSent()),!0}function ky({body:A,client:e,request:t,socket:r,contentLength:s,header:n,expectsPayload:i}){y(s!==0||e[sA]===0,"stream body cannot be pipelined");let o=!1,g=new Gs({socket:r,request:t,contentLength:s,client:e,expectsPayload:i,header:n}),a=function(B){if(!o)try{!g.write(B)&&this.pause&&this.pause()}catch(I){b.destroy(this,I)}},Q=function(){o||A.resume&&A.resume()},E=function(){C(new Wa)},C=function(B){if(!o){if(o=!0,y(r.destroyed||r[Me]&&e[sA]<=1),r.off("drain",Q).off("error",C),A.removeListener("data",a).removeListener("end",C).removeListener("error",C).removeListener("close",E),!B)try{g.end()}catch(I){B=I}g.destroy(B),B&&(B.code!=="UND_ERR_INFO"||B.message!=="reset")?b.destroy(A,B):b.destroy(A)}};A.on("data",a).on("end",C).on("error",C).on("close",E),A.resume&&A.resume(),r.on("drain",Q).on("error",C)}async function Fy({body:A,client:e,request:t,socket:r,contentLength:s,header:n,expectsPayload:i}){y(s===A.size,"blob body must have content length");try{if(s!=null&&s!==A.size)throw new tt;let o=Buffer.from(await A.arrayBuffer());r.cork(),r.write(`${n}content-length: ${s}\r -\r -`,"latin1"),r.write(o),r.uncork(),t.onBodySent(o),t.onRequestSent(),i||(r[pA]=!0),Ae(e)}catch(o){b.destroy(r,o)}}async function xa({body:A,client:e,request:t,socket:r,contentLength:s,header:n,expectsPayload:i}){y(s!==0||e[sA]===0,"iterator body cannot be pipelined");let o=null;function g(){if(o){let E=o;o=null,E()}}let a=()=>new Promise((E,C)=>{y(o===null),r[xA]?C(r[xA]):o=E});r.on("close",g).on("drain",g);let Q=new Gs({socket:r,request:t,contentLength:s,client:e,expectsPayload:i,header:n});try{for await(let E of A){if(r[xA])throw r[xA];Q.write(E)||await a()}Q.end()}catch(E){Q.destroy(E)}finally{r.off("close",g).off("drain",g)}}var Gs=class{constructor({socket:e,request:t,contentLength:r,client:s,expectsPayload:n,header:i}){this.socket=e,this.request=t,this.contentLength=r,this.client=s,this.bytesWritten=0,this.expectsPayload=n,this.header=i,e[Me]=!0}write(e){let{socket:t,request:r,contentLength:s,client:n,bytesWritten:i,expectsPayload:o,header:g}=this;if(t[xA])throw t[xA];if(t.destroyed)return!1;let a=Buffer.byteLength(e);if(!a)return!0;if(s!==null&&i+a>s){if(n[Js])throw new tt;process.emitWarning(new tt)}t.cork(),i===0&&(o||(t[pA]=!0),s===null?t.write(`${g}transfer-encoding: chunked\r -`,"latin1"):t.write(`${g}content-length: ${s}\r -\r -`,"latin1")),s===null&&t.write(`\r -${a.toString(16)}\r -`,"latin1"),this.bytesWritten+=a;let Q=t.write(e);return t.uncork(),r.onBodySent(e),Q||t[j].timeout&&t[j].timeoutType===Tt&&t[j].timeout.refresh&&t[j].timeout.refresh(),Q}end(){let{socket:e,contentLength:t,client:r,bytesWritten:s,expectsPayload:n,header:i,request:o}=this;if(o.onRequestSent(),e[Me]=!1,e[xA])throw e[xA];if(!e.destroyed){if(s===0?n?e.write(`${i}content-length: 0\r -\r -`,"latin1"):e.write(`${i}\r -`,"latin1"):t===null&&e.write(`\r -0\r -\r -`,"latin1"),t!==null&&s!==t){if(r[Js])throw new tt;process.emitWarning(new tt)}e[j].timeout&&e[j].timeoutType===Tt&&e[j].timeout.refresh&&e[j].timeout.refresh(),Ae(r)}}destroy(e){let{socket:t,client:r}=this;t[Me]=!1,e&&(y(r[sA]<=1,"pipeline should only contain this request"),b.destroy(t,e))}};function de(A,e,t){try{e.onError(t),y(e.aborted)}catch(r){A.emit("error",r)}}nC.exports=uo});var oC=c((Gb,iC)=>{"use strict";var vs=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(e){this.list[this.top]=e,this.top=this.top+1&2047}shift(){let e=this.list[this.bottom];return e===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,e)}};iC.exports=class{constructor(){this.head=this.tail=new vs}isEmpty(){return this.head.isEmpty()}push(e){this.head.isFull()&&(this.head=this.head.next=new vs),this.head.push(e)}shift(){let e=this.tail,t=e.shift();return e.isEmpty()&&e.next!==null&&(this.tail=e.next),t}}});var QC=c((Tb,gC)=>{var{kFree:Ny,kConnected:my,kPending:by,kQueued:Sy,kRunning:Uy,kSize:Ly}=$(),it=Symbol("pool"),Do=class{constructor(e){this[it]=e}get connected(){return this[it][my]}get free(){return this[it][Ny]}get pending(){return this[it][by]}get queued(){return this[it][Sy]}get running(){return this[it][Uy]}get size(){return this[it][Ly]}};gC.exports=Do});var mo=c((vb,fC)=>{"use strict";var My=pr(),Yy=oC(),{kConnected:po,kSize:EC,kRunning:aC,kPending:CC,kQueued:Lr,kBusy:Jy,kFree:Gy,kUrl:Ty,kClose:vy,kDestroy:Hy,kDispatch:Vy}=$(),xy=QC(),bA=Symbol("clients"),RA=Symbol("needDrain"),Mr=Symbol("queue"),Ro=Symbol("closed resolve"),ko=Symbol("onDrain"),BC=Symbol("onConnect"),IC=Symbol("onDisconnect"),cC=Symbol("onConnectionError"),Fo=Symbol("get dispatcher"),lC=Symbol("add client"),uC=Symbol("remove client"),hC=Symbol("stats"),No=class extends My{constructor(){super(),this[Mr]=new Yy,this[bA]=[],this[Lr]=0;let e=this;this[ko]=function(r,s){let n=e[Mr],i=!1;for(;!i;){let o=n.shift();if(!o)break;e[Lr]--,i=!this.dispatch(o.opts,o.handler)}this[RA]=i,!this[RA]&&e[RA]&&(e[RA]=!1,e.emit("drain",r,[e,...s])),e[Ro]&&n.isEmpty()&&Promise.all(e[bA].map(o=>o.close())).then(e[Ro])},this[BC]=(t,r)=>{e.emit("connect",t,[e,...r])},this[IC]=(t,r,s)=>{e.emit("disconnect",t,[e,...r],s)},this[cC]=(t,r,s)=>{e.emit("connectionError",t,[e,...r],s)},this[hC]=new xy(this)}get[Jy](){return this[RA]}get[po](){return this[bA].filter(e=>e[po]).length}get[Gy](){return this[bA].filter(e=>e[po]&&!e[RA]).length}get[CC](){let e=this[Lr];for(let{[CC]:t}of this[bA])e+=t;return e}get[aC](){let e=0;for(let{[aC]:t}of this[bA])e+=t;return e}get[EC](){let e=this[Lr];for(let{[EC]:t}of this[bA])e+=t;return e}get stats(){return this[hC]}async[vy](){return this[Mr].isEmpty()?Promise.all(this[bA].map(e=>e.close())):new Promise(e=>{this[Ro]=e})}async[Hy](e){for(;;){let t=this[Mr].shift();if(!t)break;t.handler.onError(e)}return Promise.all(this[bA].map(t=>t.destroy(e)))}[Vy](e,t){let r=this[Fo]();return r?r.dispatch(e,t)||(r[RA]=!0,this[RA]=!this[Fo]()):(this[RA]=!0,this[Mr].push({opts:e,handler:t}),this[Lr]++),!this[RA]}[lC](e){return e.on("drain",this[ko]).on("connect",this[BC]).on("disconnect",this[IC]).on("connectionError",this[cC]),this[bA].push(e),this[RA]&&process.nextTick(()=>{this[RA]&&this[ko](e[Ty],[this,e])}),this}[uC](e){e.close(()=>{let t=this[bA].indexOf(e);t!==-1&&this[bA].splice(t,1)}),this[RA]=this[bA].some(t=>!t[RA]&&t.closed!==!0&&t.destroyed!==!0)}};fC.exports={PoolBase:No,kClients:bA,kNeedDrain:RA,kAddClient:lC,kRemoveClient:uC,kGetDispatcher:Fo}});var vt=c((Hb,DC)=>{"use strict";var{PoolBase:qy,kClients:dC,kNeedDrain:Wy,kAddClient:Oy,kGetDispatcher:Py}=mo(),_y=Ur(),{InvalidArgumentError:bo}=Z(),So=G(),{kUrl:yC,kInterceptors:Zy}=$(),Xy=Rr(),Uo=Symbol("options"),Lo=Symbol("connections"),wC=Symbol("factory");function Ky(A,e){return new _y(A,e)}var Mo=class extends qy{constructor(e,{connections:t,factory:r=Ky,connect:s,connectTimeout:n,tls:i,maxCachedSessions:o,socketPath:g,autoSelectFamily:a,autoSelectFamilyAttemptTimeout:Q,...E}={}){if(super(),t!=null&&(!Number.isFinite(t)||t<0))throw new bo("invalid connections");if(typeof r!="function")throw new bo("factory must be a function.");if(s!=null&&typeof s!="function"&&typeof s!="object")throw new bo("connect must be a function or an object");typeof s!="function"&&(s=Xy({...i,maxCachedSessions:o,socketPath:g,timeout:n??1e4,...So.nodeHasAutoSelectFamily&&a?{autoSelectFamily:a,autoSelectFamilyAttemptTimeout:Q}:void 0,...s})),this[Zy]=E.interceptors&&E.interceptors.Pool&&Array.isArray(E.interceptors.Pool)?E.interceptors.Pool:[],this[Lo]=t||null,this[yC]=So.parseOrigin(e),this[Uo]={...So.deepClone(E),connect:s},this[Uo].interceptors=E.interceptors?{...E.interceptors}:void 0,this[wC]=r}[Py](){let e=this[dC].find(t=>!t[Wy]);return e||((!this[Lo]||this[dC].length<this[Lo])&&(e=this[wC](this[yC],this[Uo]),this[Oy](e)),e)}};DC.exports=Mo});var mC=c((Vb,NC)=>{"use strict";var{BalancedPoolMissingUpstreamError:jy,InvalidArgumentError:zy}=Z(),{PoolBase:$y,kClients:kA,kNeedDrain:Yr,kAddClient:Aw,kRemoveClient:ew,kGetDispatcher:tw}=mo(),rw=vt(),{kUrl:Yo,kInterceptors:sw}=$(),{parseOrigin:pC}=G(),RC=Symbol("factory"),Hs=Symbol("options"),kC=Symbol("kGreatestCommonDivisor"),ot=Symbol("kCurrentWeight"),gt=Symbol("kIndex"),ee=Symbol("kWeight"),Vs=Symbol("kMaxWeightPerServer"),xs=Symbol("kErrorPenalty");function FC(A,e){return e===0?A:FC(e,A%e)}function nw(A,e){return new rw(A,e)}var Jo=class extends $y{constructor(e=[],{factory:t=nw,...r}={}){if(super(),this[Hs]=r,this[gt]=-1,this[ot]=0,this[Vs]=this[Hs].maxWeightPerServer||100,this[xs]=this[Hs].errorPenalty||15,Array.isArray(e)||(e=[e]),typeof t!="function")throw new zy("factory must be a function.");this[sw]=r.interceptors&&r.interceptors.BalancedPool&&Array.isArray(r.interceptors.BalancedPool)?r.interceptors.BalancedPool:[],this[RC]=t;for(let s of e)this.addUpstream(s);this._updateBalancedPoolStats()}addUpstream(e){let t=pC(e).origin;if(this[kA].find(s=>s[Yo].origin===t&&s.closed!==!0&&s.destroyed!==!0))return this;let r=this[RC](t,Object.assign({},this[Hs]));this[Aw](r),r.on("connect",()=>{r[ee]=Math.min(this[Vs],r[ee]+this[xs])}),r.on("connectionError",()=>{r[ee]=Math.max(1,r[ee]-this[xs]),this._updateBalancedPoolStats()}),r.on("disconnect",(...s)=>{let n=s[2];n&&n.code==="UND_ERR_SOCKET"&&(r[ee]=Math.max(1,r[ee]-this[xs]),this._updateBalancedPoolStats())});for(let s of this[kA])s[ee]=this[Vs];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){this[kC]=this[kA].map(e=>e[ee]).reduce(FC,0)}removeUpstream(e){let t=pC(e).origin,r=this[kA].find(s=>s[Yo].origin===t&&s.closed!==!0&&s.destroyed!==!0);return r&&this[ew](r),this}get upstreams(){return this[kA].filter(e=>e.closed!==!0&&e.destroyed!==!0).map(e=>e[Yo].origin)}[tw](){if(this[kA].length===0)throw new jy;if(!this[kA].find(n=>!n[Yr]&&n.closed!==!0&&n.destroyed!==!0)||this[kA].map(n=>n[Yr]).reduce((n,i)=>n&&i,!0))return;let r=0,s=this[kA].findIndex(n=>!n[Yr]);for(;r++<this[kA].length;){this[gt]=(this[gt]+1)%this[kA].length;let n=this[kA][this[gt]];if(n[ee]>this[kA][s][ee]&&!n[Yr]&&(s=this[gt]),this[gt]===0&&(this[ot]=this[ot]-this[kC],this[ot]<=0&&(this[ot]=this[Vs])),n[ee]>=this[ot]&&!n[Yr])return n}return this[ot]=this[kA][s][ee],this[gt]=s,this[kA][s]}};NC.exports=Jo});var vo=c((xb,UC)=>{"use strict";var{kConnected:bC,kSize:SC}=$(),Go=class{constructor(e){this.value=e}deref(){return this.value[bC]===0&&this.value[SC]===0?void 0:this.value}},To=class{constructor(e){this.finalizer=e}register(e,t){e.on("disconnect",()=>{e[bC]===0&&e[SC]===0&&this.finalizer(t)})}};UC.exports=function(){return{WeakRef:global.WeakRef||Go,FinalizationRegistry:global.FinalizationRegistry||To}}});var Jr=c((qb,HC)=>{"use strict";var{InvalidArgumentError:qs}=Z(),{kClients:Pe,kRunning:LC,kClose:iw,kDestroy:ow,kDispatch:gw,kInterceptors:Qw}=$(),Ew=pr(),aw=vt(),Cw=Ur(),Bw=G(),Iw=bs(),{WeakRef:cw,FinalizationRegistry:hw}=vo()(),MC=Symbol("onConnect"),YC=Symbol("onDisconnect"),JC=Symbol("onConnectionError"),lw=Symbol("maxRedirections"),GC=Symbol("onDrain"),TC=Symbol("factory"),vC=Symbol("finalizer"),Ho=Symbol("options");function uw(A,e){return e&&e.connections===1?new Cw(A,e):new aw(A,e)}var Vo=class extends Ew{constructor({factory:e=uw,maxRedirections:t=0,connect:r,...s}={}){if(super(),typeof e!="function")throw new qs("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new qs("connect must be a function or an object");if(!Number.isInteger(t)||t<0)throw new qs("maxRedirections must be a positive number");r&&typeof r!="function"&&(r={...r}),this[Qw]=s.interceptors&&s.interceptors.Agent&&Array.isArray(s.interceptors.Agent)?s.interceptors.Agent:[Iw({maxRedirections:t})],this[Ho]={...Bw.deepClone(s),connect:r},this[Ho].interceptors=s.interceptors?{...s.interceptors}:void 0,this[lw]=t,this[TC]=e,this[Pe]=new Map,this[vC]=new hw(i=>{let o=this[Pe].get(i);o!==void 0&&o.deref()===void 0&&this[Pe].delete(i)});let n=this;this[GC]=(i,o)=>{n.emit("drain",i,[n,...o])},this[MC]=(i,o)=>{n.emit("connect",i,[n,...o])},this[YC]=(i,o,g)=>{n.emit("disconnect",i,[n,...o],g)},this[JC]=(i,o,g)=>{n.emit("connectionError",i,[n,...o],g)}}get[LC](){let e=0;for(let t of this[Pe].values()){let r=t.deref();r&&(e+=r[LC])}return e}[gw](e,t){let r;if(e.origin&&(typeof e.origin=="string"||e.origin instanceof URL))r=String(e.origin);else throw new qs("opts.origin must be a non-empty string or URL.");let s=this[Pe].get(r),n=s?s.deref():null;return n||(n=this[TC](e.origin,this[Ho]).on("drain",this[GC]).on("connect",this[MC]).on("disconnect",this[YC]).on("connectionError",this[JC]),this[Pe].set(r,new cw(n)),this[vC].register(n,r)),n.dispatch(e,t)}async[iw](){let e=[];for(let t of this[Pe].values()){let r=t.deref();r&&e.push(r.close())}await Promise.all(e)}async[ow](e){let t=[];for(let r of this[Pe].values()){let s=r.deref();s&&t.push(s.destroy(e))}await Promise.all(t)}};HC.exports=Vo});var ZC=c((Ob,_C)=>{"use strict";var qC=require("assert"),{Readable:fw}=require("stream"),{RequestAbortedError:WC,NotSupportedError:dw,InvalidArgumentError:yw}=Z(),Ht=G(),{ReadableStreamFrom:ww,toUSVString:Dw}=G(),xo,qA=Symbol("kConsume"),Ws=Symbol("kReading"),Ze=Symbol("kBody"),VC=Symbol("abort"),OC=Symbol("kContentType");_C.exports=class extends fw{constructor({resume:e,abort:t,contentType:r="",highWaterMark:s=64*1024}){super({autoDestroy:!0,read:e,highWaterMark:s}),this._readableState.dataEmitted=!1,this[VC]=t,this[qA]=null,this[Ze]=null,this[OC]=r,this[Ws]=!1}destroy(e){return this.destroyed?this:(!e&&!this._readableState.endEmitted&&(e=new WC),e&&this[VC](),super.destroy(e))}emit(e,...t){return e==="data"?this._readableState.dataEmitted=!0:e==="error"&&(this._readableState.errorEmitted=!0),super.emit(e,...t)}on(e,...t){return(e==="data"||e==="readable")&&(this[Ws]=!0),super.on(e,...t)}addListener(e,...t){return this.on(e,...t)}off(e,...t){let r=super.off(e,...t);return(e==="data"||e==="readable")&&(this[Ws]=this.listenerCount("data")>0||this.listenerCount("readable")>0),r}removeListener(e,...t){return this.off(e,...t)}push(e){return this[qA]&&e!==null&&this.readableLength===0?(PC(this[qA],e),this[Ws]?super.push(e):!0):super.push(e)}async text(){return Os(this,"text")}async json(){return Os(this,"json")}async blob(){return Os(this,"blob")}async arrayBuffer(){return Os(this,"arrayBuffer")}async formData(){throw new dw}get bodyUsed(){return Ht.isDisturbed(this)}get body(){return this[Ze]||(this[Ze]=ww(this),this[qA]&&(this[Ze].getReader(),qC(this[Ze].locked))),this[Ze]}async dump(e){let t=e&&Number.isFinite(e.limit)?e.limit:262144,r=e&&e.signal,s=()=>{this.destroy()},n;if(r){if(typeof r!="object"||!("aborted"in r))throw new yw("signal must be an AbortSignal");Ht.throwIfAborted(r),n=Ht.addAbortListener(r,s)}try{for await(let i of this)if(Ht.throwIfAborted(r),t-=Buffer.byteLength(i),t<0)return}catch{Ht.throwIfAborted(r)}finally{typeof n=="function"?n():n&&n[Symbol.dispose]()}}};function pw(A){return A[Ze]&&A[Ze].locked===!0||A[qA]}function Rw(A){return Ht.isDisturbed(A)||pw(A)}async function Os(A,e){if(Rw(A))throw new TypeError("unusable");return qC(!A[qA]),new Promise((t,r)=>{A[qA]={type:e,stream:A,resolve:t,reject:r,length:0,body:[]},A.on("error",function(s){qo(this[qA],s)}).on("close",function(){this[qA].body!==null&&qo(this[qA],new WC)}),process.nextTick(kw,A[qA])})}function kw(A){if(A.body===null)return;let{_readableState:e}=A.stream;for(let t of e.buffer)PC(A,t);for(e.endEmitted?xC(this[qA]):A.stream.on("end",function(){xC(this[qA])}),A.stream.resume();A.stream.read()!=null;);}function xC(A){let{type:e,body:t,resolve:r,stream:s,length:n}=A;try{if(e==="text")r(Dw(Buffer.concat(t)));else if(e==="json")r(JSON.parse(Buffer.concat(t)));else if(e==="arrayBuffer"){let i=new Uint8Array(n),o=0;for(let g of t)i.set(g,o),o+=g.byteLength;r(i)}else e==="blob"&&(xo||(xo=require("buffer").Blob),r(new xo(t,{type:s[OC]})));qo(A)}catch(i){s.destroy(i)}}function PC(A,e){A.length+=e.length,A.body.push(e)}function qo(A,e){A.body!==null&&(e?A.reject(e):A.resolve(),A.type=null,A.stream=null,A.resolve=null,A.reject=null,A.length=0,A.body=null)}});var Wo=c((Pb,KC)=>{var Fw=require("assert"),{ResponseStatusCodeError:Ps}=Z(),{toUSVString:XC}=G();async function Nw({callback:A,body:e,contentType:t,statusCode:r,statusMessage:s,headers:n}){Fw(e);let i=[],o=0;for await(let g of e)if(i.push(g),o+=g.length,o>128*1024){i=null;break}if(r===204||!t||!i){process.nextTick(A,new Ps(`Response status code ${r}${s?`: ${s}`:""}`,r,n));return}try{if(t.startsWith("application/json")){let g=JSON.parse(XC(Buffer.concat(i)));process.nextTick(A,new Ps(`Response status code ${r}${s?`: ${s}`:""}`,r,n,g));return}if(t.startsWith("text/")){let g=XC(Buffer.concat(i));process.nextTick(A,new Ps(`Response status code ${r}${s?`: ${s}`:""}`,r,n,g));return}}catch{}process.nextTick(A,new Ps(`Response status code ${r}${s?`: ${s}`:""}`,r,n))}KC.exports={getResolveErrorBodyCallback:Nw}});var xt=c((Zb,zC)=>{var{addAbortListener:mw}=G(),{RequestAbortedError:bw}=Z(),Vt=Symbol("kListener"),Xe=Symbol("kSignal");function jC(A){A.abort?A.abort():A.onError(new bw)}function Sw(A,e){if(A[Xe]=null,A[Vt]=null,!!e){if(e.aborted){jC(A);return}A[Xe]=e,A[Vt]=()=>{jC(A)},mw(A[Xe],A[Vt])}}function Uw(A){A[Xe]&&("removeEventListener"in A[Xe]?A[Xe].removeEventListener("abort",A[Vt]):A[Xe].removeListener("abort",A[Vt]),A[Xe]=null,A[Vt]=null)}zC.exports={addSignal:Sw,removeSignal:Uw}});var tB=c((Xb,eB)=>{"use strict";var Lw=ZC(),{InvalidArgumentError:qt,RequestAbortedError:Mw}=Z(),ye=G(),{getResolveErrorBodyCallback:Yw}=Wo(),{AsyncResource:Jw}=require("async_hooks"),{addSignal:Gw,removeSignal:$C}=xt(),Oo=class extends Jw{constructor(e,t){if(!e||typeof e!="object")throw new qt("invalid opts");let{signal:r,method:s,opaque:n,body:i,onInfo:o,responseHeaders:g,throwOnError:a,highWaterMark:Q}=e;try{if(typeof t!="function")throw new qt("invalid callback");if(Q&&(typeof Q!="number"||Q<0))throw new qt("invalid highWaterMark");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new qt("signal must be an EventEmitter or EventTarget");if(s==="CONNECT")throw new qt("invalid method");if(o&&typeof o!="function")throw new qt("invalid onInfo callback");super("UNDICI_REQUEST")}catch(E){throw ye.isStream(i)&&ye.destroy(i.on("error",ye.nop),E),E}this.responseHeaders=g||null,this.opaque=n||null,this.callback=t,this.res=null,this.abort=null,this.body=i,this.trailers={},this.context=null,this.onInfo=o||null,this.throwOnError=a,this.highWaterMark=Q,ye.isStream(i)&&i.on("error",E=>{this.onError(E)}),Gw(this,r)}onConnect(e,t){if(!this.callback)throw new Mw;this.abort=e,this.context=t}onHeaders(e,t,r,s){let{callback:n,opaque:i,abort:o,context:g,responseHeaders:a,highWaterMark:Q}=this,E=a==="raw"?ye.parseRawHeaders(t):ye.parseHeaders(t);if(e<200){this.onInfo&&this.onInfo({statusCode:e,headers:E});return}let B=(a==="raw"?ye.parseHeaders(t):E)["content-type"],I=new Lw({resume:r,abort:o,contentType:B,highWaterMark:Q});this.callback=null,this.res=I,n!==null&&(this.throwOnError&&e>=400?this.runInAsyncScope(Yw,null,{callback:n,body:I,contentType:B,statusCode:e,statusMessage:s,headers:E}):this.runInAsyncScope(n,null,null,{statusCode:e,headers:E,trailers:this.trailers,opaque:i,body:I,context:g}))}onData(e){let{res:t}=this;return t.push(e)}onComplete(e){let{res:t}=this;$C(this),ye.parseHeaders(e,this.trailers),t.push(null)}onError(e){let{res:t,callback:r,body:s,opaque:n}=this;$C(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,e,{opaque:n})})),t&&(this.res=null,queueMicrotask(()=>{ye.destroy(t,e)})),s&&(this.body=null,ye.destroy(s,e))}};function AB(A,e){if(e===void 0)return new Promise((t,r)=>{AB.call(this,A,(s,n)=>s?r(s):t(n))});try{this.dispatch(A,new Oo(A,e))}catch(t){if(typeof e!="function")throw t;let r=A&&A.opaque;queueMicrotask(()=>e(t,{opaque:r}))}}eB.exports=AB});var iB=c((Kb,nB)=>{"use strict";var{finished:Tw,PassThrough:vw}=require("stream"),{InvalidArgumentError:Wt,InvalidReturnValueError:Hw,RequestAbortedError:Vw}=Z(),Qe=G(),{getResolveErrorBodyCallback:xw}=Wo(),{AsyncResource:qw}=require("async_hooks"),{addSignal:Ww,removeSignal:rB}=xt(),Po=class extends qw{constructor(e,t,r){if(!e||typeof e!="object")throw new Wt("invalid opts");let{signal:s,method:n,opaque:i,body:o,onInfo:g,responseHeaders:a,throwOnError:Q}=e;try{if(typeof r!="function")throw new Wt("invalid callback");if(typeof t!="function")throw new Wt("invalid factory");if(s&&typeof s.on!="function"&&typeof s.addEventListener!="function")throw new Wt("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new Wt("invalid method");if(g&&typeof g!="function")throw new Wt("invalid onInfo callback");super("UNDICI_STREAM")}catch(E){throw Qe.isStream(o)&&Qe.destroy(o.on("error",Qe.nop),E),E}this.responseHeaders=a||null,this.opaque=i||null,this.factory=t,this.callback=r,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=o,this.onInfo=g||null,this.throwOnError=Q||!1,Qe.isStream(o)&&o.on("error",E=>{this.onError(E)}),Ww(this,s)}onConnect(e,t){if(!this.callback)throw new Vw;this.abort=e,this.context=t}onHeaders(e,t,r,s){let{factory:n,opaque:i,context:o,callback:g,responseHeaders:a}=this,Q=a==="raw"?Qe.parseRawHeaders(t):Qe.parseHeaders(t);if(e<200){this.onInfo&&this.onInfo({statusCode:e,headers:Q});return}this.factory=null;let E;if(this.throwOnError&&e>=400){let I=(a==="raw"?Qe.parseHeaders(t):Q)["content-type"];E=new vw,this.callback=null,this.runInAsyncScope(xw,null,{callback:g,body:E,contentType:I,statusCode:e,statusMessage:s,headers:Q})}else{if(E=this.runInAsyncScope(n,null,{statusCode:e,headers:Q,opaque:i,context:o}),!E||typeof E.write!="function"||typeof E.end!="function"||typeof E.on!="function")throw new Hw("expected Writable");Tw(E,{readable:!1},B=>{let{callback:I,res:h,opaque:l,trailers:u,abort:F}=this;this.res=null,(B||!h.readable)&&Qe.destroy(h,B),this.callback=null,this.runInAsyncScope(I,null,B||null,{opaque:l,trailers:u}),B&&F()})}return E.on("drain",r),this.res=E,(E.writableNeedDrain!==void 0?E.writableNeedDrain:E._writableState&&E._writableState.needDrain)!==!0}onData(e){let{res:t}=this;return t.write(e)}onComplete(e){let{res:t}=this;rB(this),this.trailers=Qe.parseHeaders(e),t.end()}onError(e){let{res:t,callback:r,opaque:s,body:n}=this;rB(this),this.factory=null,t?(this.res=null,Qe.destroy(t,e)):r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,e,{opaque:s})})),n&&(this.body=null,Qe.destroy(n,e))}};function sB(A,e,t){if(t===void 0)return new Promise((r,s)=>{sB.call(this,A,e,(n,i)=>n?s(n):r(i))});try{this.dispatch(A,new Po(A,e,t))}catch(r){if(typeof t!="function")throw r;let s=A&&A.opaque;queueMicrotask(()=>t(r,{opaque:s}))}}nB.exports=sB});var QB=c((jb,gB)=>{"use strict";var{Readable:oB,Duplex:Ow,PassThrough:Pw}=require("stream"),{InvalidArgumentError:Gr,InvalidReturnValueError:_w,RequestAbortedError:_s}=Z(),te=G(),{AsyncResource:Zw}=require("async_hooks"),{addSignal:Xw,removeSignal:Kw}=xt(),jw=require("assert"),Ot=Symbol("resume"),_o=class extends oB{constructor(){super({autoDestroy:!0}),this[Ot]=null}_read(){let{[Ot]:e}=this;e&&(this[Ot]=null,e())}_destroy(e,t){this._read(),t(e)}},Zo=class extends oB{constructor(e){super({autoDestroy:!0}),this[Ot]=e}_read(){this[Ot]()}_destroy(e,t){!e&&!this._readableState.endEmitted&&(e=new _s),t(e)}},Xo=class extends Zw{constructor(e,t){if(!e||typeof e!="object")throw new Gr("invalid opts");if(typeof t!="function")throw new Gr("invalid handler");let{signal:r,method:s,opaque:n,onInfo:i,responseHeaders:o}=e;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Gr("signal must be an EventEmitter or EventTarget");if(s==="CONNECT")throw new Gr("invalid method");if(i&&typeof i!="function")throw new Gr("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=n||null,this.responseHeaders=o||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=i||null,this.req=new _o().on("error",te.nop),this.ret=new Ow({readableObjectMode:e.objectMode,autoDestroy:!0,read:()=>{let{body:g}=this;g&&g.resume&&g.resume()},write:(g,a,Q)=>{let{req:E}=this;E.push(g,a)||E._readableState.destroyed?Q():E[Ot]=Q},destroy:(g,a)=>{let{body:Q,req:E,res:C,ret:B,abort:I}=this;!g&&!B._readableState.endEmitted&&(g=new _s),I&&g&&I(),te.destroy(Q,g),te.destroy(E,g),te.destroy(C,g),Kw(this),a(g)}}).on("prefinish",()=>{let{req:g}=this;g.push(null)}),this.res=null,Xw(this,r)}onConnect(e,t){let{ret:r,res:s}=this;if(jw(!s,"pipeline cannot be retried"),r.destroyed)throw new _s;this.abort=e,this.context=t}onHeaders(e,t,r){let{opaque:s,handler:n,context:i}=this;if(e<200){if(this.onInfo){let g=this.responseHeaders==="raw"?te.parseRawHeaders(t):te.parseHeaders(t);this.onInfo({statusCode:e,headers:g})}return}this.res=new Zo(r);let o;try{this.handler=null;let g=this.responseHeaders==="raw"?te.parseRawHeaders(t):te.parseHeaders(t);o=this.runInAsyncScope(n,null,{statusCode:e,headers:g,opaque:s,body:this.res,context:i})}catch(g){throw this.res.on("error",te.nop),g}if(!o||typeof o.on!="function")throw new _w("expected Readable");o.on("data",g=>{let{ret:a,body:Q}=this;!a.push(g)&&Q.pause&&Q.pause()}).on("error",g=>{let{ret:a}=this;te.destroy(a,g)}).on("end",()=>{let{ret:g}=this;g.push(null)}).on("close",()=>{let{ret:g}=this;g._readableState.ended||te.destroy(g,new _s)}),this.body=o}onData(e){let{res:t}=this;return t.push(e)}onComplete(e){let{res:t}=this;t.push(null)}onError(e){let{ret:t}=this;this.handler=null,te.destroy(t,e)}};function zw(A,e){try{let t=new Xo(A,e);return this.dispatch({...A,body:t.req},t),t.ret}catch(t){return new Pw().destroy(t)}}gB.exports=zw});var IB=c((zb,BB)=>{"use strict";var{InvalidArgumentError:Ko,RequestAbortedError:$w,SocketError:AD}=Z(),{AsyncResource:eD}=require("async_hooks"),EB=G(),{addSignal:tD,removeSignal:aB}=xt(),rD=require("assert"),jo=class extends eD{constructor(e,t){if(!e||typeof e!="object")throw new Ko("invalid opts");if(typeof t!="function")throw new Ko("invalid callback");let{signal:r,opaque:s,responseHeaders:n}=e;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Ko("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=n||null,this.opaque=s||null,this.callback=t,this.abort=null,this.context=null,tD(this,r)}onConnect(e,t){if(!this.callback)throw new $w;this.abort=e,this.context=null}onHeaders(){throw new AD("bad upgrade",null)}onUpgrade(e,t,r){let{callback:s,opaque:n,context:i}=this;rD.strictEqual(e,101),aB(this),this.callback=null;let o=this.responseHeaders==="raw"?EB.parseRawHeaders(t):EB.parseHeaders(t);this.runInAsyncScope(s,null,null,{headers:o,socket:r,opaque:n,context:i})}onError(e){let{callback:t,opaque:r}=this;aB(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,e,{opaque:r})}))}};function CB(A,e){if(e===void 0)return new Promise((t,r)=>{CB.call(this,A,(s,n)=>s?r(s):t(n))});try{let t=new jo(A,e);this.dispatch({...A,method:A.method||"GET",upgrade:A.protocol||"Websocket"},t)}catch(t){if(typeof e!="function")throw t;let r=A&&A.opaque;queueMicrotask(()=>e(t,{opaque:r}))}}BB.exports=CB});var fB=c(($b,uB)=>{"use strict";var{InvalidArgumentError:zo,RequestAbortedError:sD,SocketError:nD}=Z(),{AsyncResource:iD}=require("async_hooks"),cB=G(),{addSignal:oD,removeSignal:hB}=xt(),$o=class extends iD{constructor(e,t){if(!e||typeof e!="object")throw new zo("invalid opts");if(typeof t!="function")throw new zo("invalid callback");let{signal:r,opaque:s,responseHeaders:n}=e;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new zo("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=s||null,this.responseHeaders=n||null,this.callback=t,this.abort=null,oD(this,r)}onConnect(e,t){if(!this.callback)throw new sD;this.abort=e,this.context=t}onHeaders(){throw new nD("bad connect",null)}onUpgrade(e,t,r){let{callback:s,opaque:n,context:i}=this;hB(this),this.callback=null;let o=this.responseHeaders==="raw"?cB.parseRawHeaders(t):cB.parseHeaders(t);this.runInAsyncScope(s,null,null,{statusCode:e,headers:o,socket:r,opaque:n,context:i})}onError(e){let{callback:t,opaque:r}=this;hB(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,e,{opaque:r})}))}};function lB(A,e){if(e===void 0)return new Promise((t,r)=>{lB.call(this,A,(s,n)=>s?r(s):t(n))});try{let t=new $o(A,e);this.dispatch({...A,method:"CONNECT"},t)}catch(t){if(typeof e!="function")throw t;let r=A&&A.opaque;queueMicrotask(()=>e(t,{opaque:r}))}}uB.exports=lB});var dB=c((AS,Pt)=>{"use strict";Pt.exports.request=tB();Pt.exports.stream=iB();Pt.exports.pipeline=QB();Pt.exports.upgrade=IB();Pt.exports.connect=fB()});var eg=c((eS,yB)=>{"use strict";var{UndiciError:gD}=Z(),Ag=class A extends gD{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="MockNotMatchedError",this.message=e||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};yB.exports={MockNotMatchedError:Ag}});var _t=c((tS,wB)=>{"use strict";wB.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var Tr=c((rS,MB)=>{"use strict";var{MockNotMatchedError:Qt}=eg(),{kDispatches:Zs,kMockAgent:QD,kOriginalDispatch:ED,kOrigin:aD,kGetNetConnect:CD}=_t(),{buildURL:BD,nop:ID}=G(),{STATUS_CODES:cD}=require("http"),{types:{isPromise:hD}}=require("util");function Ye(A,e){return typeof A=="string"?A===e:A instanceof RegExp?A.test(e):typeof A=="function"?A(e)===!0:!1}function pB(A){return Object.fromEntries(Object.entries(A).map(([e,t])=>[e.toLocaleLowerCase(),t]))}function RB(A,e){if(Array.isArray(A)){for(let t=0;t<A.length;t+=2)if(A[t].toLocaleLowerCase()===e.toLocaleLowerCase())return A[t+1];return}else return typeof A.get=="function"?A.get(e):pB(A)[e.toLocaleLowerCase()]}function kB(A){let e=A.slice(),t=[];for(let r=0;r<e.length;r+=2)t.push([e[r],e[r+1]]);return Object.fromEntries(t)}function FB(A,e){if(typeof A.headers=="function")return Array.isArray(e)&&(e=kB(e)),A.headers(e?pB(e):{});if(typeof A.headers>"u")return!0;if(typeof e!="object"||typeof A.headers!="object")return!1;for(let[t,r]of Object.entries(A.headers)){let s=RB(e,t);if(!Ye(r,s))return!1}return!0}function DB(A){if(typeof A!="string")return A;let e=A.split("?");if(e.length!==2)return A;let t=new URLSearchParams(e.pop());return t.sort(),[...e,t.toString()].join("?")}function lD(A,{path:e,method:t,body:r,headers:s}){let n=Ye(A.path,e),i=Ye(A.method,t),o=typeof A.body<"u"?Ye(A.body,r):!0,g=FB(A,s);return n&&i&&o&&g}function NB(A){return Buffer.isBuffer(A)?A:typeof A=="object"?JSON.stringify(A):A.toString()}function mB(A,e){let t=e.query?BD(e.path,e.query):e.path,r=typeof t=="string"?DB(t):t,s=A.filter(({consumed:n})=>!n).filter(({path:n})=>Ye(DB(n),r));if(s.length===0)throw new Qt(`Mock dispatch not matched for path '${r}'`);if(s=s.filter(({method:n})=>Ye(n,e.method)),s.length===0)throw new Qt(`Mock dispatch not matched for method '${e.method}'`);if(s=s.filter(({body:n})=>typeof n<"u"?Ye(n,e.body):!0),s.length===0)throw new Qt(`Mock dispatch not matched for body '${e.body}'`);if(s=s.filter(n=>FB(n,e.headers)),s.length===0)throw new Qt(`Mock dispatch not matched for headers '${typeof e.headers=="object"?JSON.stringify(e.headers):e.headers}'`);return s[0]}function uD(A,e,t){let r={timesInvoked:0,times:1,persist:!1,consumed:!1},s=typeof t=="function"?{callback:t}:{...t},n={...r,...e,pending:!0,data:{error:null,...s}};return A.push(n),n}function tg(A,e){let t=A.findIndex(r=>r.consumed?lD(r,e):!1);t!==-1&&A.splice(t,1)}function bB(A){let{path:e,method:t,body:r,headers:s,query:n}=A;return{path:e,method:t,body:r,headers:s,query:n}}function rg(A){return Object.entries(A).reduce((e,[t,r])=>[...e,Buffer.from(`${t}`),Array.isArray(r)?r.map(s=>Buffer.from(`${s}`)):Buffer.from(`${r}`)],[])}function SB(A){return cD[A]||"unknown"}async function fD(A){let e=[];for await(let t of A)e.push(t);return Buffer.concat(e).toString("utf8")}function UB(A,e){let t=bB(A),r=mB(this[Zs],t);r.timesInvoked++,r.data.callback&&(r.data={...r.data,...r.data.callback(A)});let{data:{statusCode:s,data:n,headers:i,trailers:o,error:g},delay:a,persist:Q}=r,{timesInvoked:E,times:C}=r;if(r.consumed=!Q&&E>=C,r.pending=E<C,g!==null)return tg(this[Zs],t),e.onError(g),!0;typeof a=="number"&&a>0?setTimeout(()=>{B(this[Zs])},a):B(this[Zs]);function B(h,l=n){let u=Array.isArray(A.headers)?kB(A.headers):A.headers,F=typeof l=="function"?l({...A,headers:u}):l;if(hD(F)){F.then(O=>B(h,O));return}let w=NB(F),k=rg(i),T=rg(o);e.abort=ID,e.onHeaders(s,k,I,SB(s)),e.onData(Buffer.from(w)),e.onComplete(T),tg(h,t)}function I(){}return!0}function dD(){let A=this[QD],e=this[aD],t=this[ED];return function(s,n){if(A.isMockActive)try{UB.call(this,s,n)}catch(i){if(i instanceof Qt){let o=A[CD]();if(o===!1)throw new Qt(`${i.message}: subsequent request to origin ${e} was not allowed (net.connect disabled)`);if(LB(o,e))t.call(this,s,n);else throw new Qt(`${i.message}: subsequent request to origin ${e} was not allowed (net.connect is not enabled for this origin)`)}else throw i}else t.call(this,s,n)}}function LB(A,e){let t=new URL(e);return A===!0?!0:!!(Array.isArray(A)&&A.some(r=>Ye(r,t.host)))}function yD(A){if(A){let{agent:e,...t}=A;return t}}MB.exports={getResponseData:NB,getMockDispatch:mB,addMockDispatch:uD,deleteMockDispatch:tg,buildKey:bB,generateKeyValues:rg,matchValue:Ye,getResponse:fD,getStatusText:SB,mockDispatch:UB,buildMockDispatch:dD,checkNetConnect:LB,buildMockOptions:yD,getHeaderByName:RB}});var Eg=c((sS,Qg)=>{"use strict";var{getResponseData:wD,buildKey:DD,addMockDispatch:sg}=Tr(),{kDispatches:Xs,kDispatchKey:Ks,kDefaultHeaders:ng,kDefaultTrailers:ig,kContentLength:og,kMockDispatch:js}=_t(),{InvalidArgumentError:Ee}=Z(),{buildURL:pD}=G(),Zt=class{constructor(e){this[js]=e}delay(e){if(typeof e!="number"||!Number.isInteger(e)||e<=0)throw new Ee("waitInMs must be a valid integer > 0");return this[js].delay=e,this}persist(){return this[js].persist=!0,this}times(e){if(typeof e!="number"||!Number.isInteger(e)||e<=0)throw new Ee("repeatTimes must be a valid integer > 0");return this[js].times=e,this}},gg=class{constructor(e,t){if(typeof e!="object")throw new Ee("opts must be an object");if(typeof e.path>"u")throw new Ee("opts.path must be defined");if(typeof e.method>"u"&&(e.method="GET"),typeof e.path=="string")if(e.query)e.path=pD(e.path,e.query);else{let r=new URL(e.path,"data://");e.path=r.pathname+r.search}typeof e.method=="string"&&(e.method=e.method.toUpperCase()),this[Ks]=DD(e),this[Xs]=t,this[ng]={},this[ig]={},this[og]=!1}createMockScopeDispatchData(e,t,r={}){let s=wD(t),n=this[og]?{"content-length":s.length}:{},i={...this[ng],...n,...r.headers},o={...this[ig],...r.trailers};return{statusCode:e,data:t,headers:i,trailers:o}}validateReplyParameters(e,t,r){if(typeof e>"u")throw new Ee("statusCode must be defined");if(typeof t>"u")throw new Ee("data must be defined");if(typeof r!="object")throw new Ee("responseOptions must be an object")}reply(e){if(typeof e=="function"){let o=a=>{let Q=e(a);if(typeof Q!="object")throw new Ee("reply options callback must return an object");let{statusCode:E,data:C="",responseOptions:B={}}=Q;return this.validateReplyParameters(E,C,B),{...this.createMockScopeDispatchData(E,C,B)}},g=sg(this[Xs],this[Ks],o);return new Zt(g)}let[t,r="",s={}]=[...arguments];this.validateReplyParameters(t,r,s);let n=this.createMockScopeDispatchData(t,r,s),i=sg(this[Xs],this[Ks],n);return new Zt(i)}replyWithError(e){if(typeof e>"u")throw new Ee("error must be defined");let t=sg(this[Xs],this[Ks],{error:e});return new Zt(t)}defaultReplyHeaders(e){if(typeof e>"u")throw new Ee("headers must be defined");return this[ng]=e,this}defaultReplyTrailers(e){if(typeof e>"u")throw new Ee("trailers must be defined");return this[ig]=e,this}replyContentLength(){return this[og]=!0,this}};Qg.exports.MockInterceptor=gg;Qg.exports.MockScope=Zt});var Bg=c((nS,VB)=>{"use strict";var{promisify:RD}=require("util"),kD=Ur(),{buildMockDispatch:FD}=Tr(),{kDispatches:YB,kMockAgent:JB,kClose:GB,kOriginalClose:TB,kOrigin:vB,kOriginalDispatch:ND,kConnected:ag}=_t(),{MockInterceptor:mD}=Eg(),HB=$(),{InvalidArgumentError:bD}=Z(),Cg=class extends kD{constructor(e,t){if(super(e,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new bD("Argument opts.agent must implement Agent");this[JB]=t.agent,this[vB]=e,this[YB]=[],this[ag]=1,this[ND]=this.dispatch,this[TB]=this.close.bind(this),this.dispatch=FD.call(this),this.close=this[GB]}get[HB.kConnected](){return this[ag]}intercept(e){return new mD(e,this[YB])}async[GB](){await RD(this[TB])(),this[ag]=0,this[JB][HB.kClients].delete(this[vB])}};VB.exports=Cg});var hg=c((iS,ZB)=>{"use strict";var{promisify:SD}=require("util"),UD=vt(),{buildMockDispatch:LD}=Tr(),{kDispatches:xB,kMockAgent:qB,kClose:WB,kOriginalClose:OB,kOrigin:PB,kOriginalDispatch:MD,kConnected:Ig}=_t(),{MockInterceptor:YD}=Eg(),_B=$(),{InvalidArgumentError:JD}=Z(),cg=class extends UD{constructor(e,t){if(super(e,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new JD("Argument opts.agent must implement Agent");this[qB]=t.agent,this[PB]=e,this[xB]=[],this[Ig]=1,this[MD]=this.dispatch,this[OB]=this.close.bind(this),this.dispatch=LD.call(this),this.close=this[WB]}get[_B.kConnected](){return this[Ig]}intercept(e){return new YD(e,this[xB])}async[WB](){await SD(this[OB])(),this[Ig]=0,this[qB][_B.kClients].delete(this[PB])}};ZB.exports=cg});var KB=c((gS,XB)=>{"use strict";var GD={pronoun:"it",is:"is",was:"was",this:"this"},TD={pronoun:"they",is:"are",was:"were",this:"these"};XB.exports=class{constructor(e,t){this.singular=e,this.plural=t}pluralize(e){let t=e===1,r=t?GD:TD,s=t?this.singular:this.plural;return{...r,count:e,noun:s}}}});var zB=c((ES,jB)=>{"use strict";var{Transform:vD}=require("stream"),{Console:HD}=require("console");jB.exports=class{constructor({disableColors:e}={}){this.transform=new vD({transform(t,r,s){s(null,t)}}),this.logger=new HD({stdout:this.transform,inspectOptions:{colors:!e&&!process.env.CI}})}format(e){let t=e.map(({method:r,path:s,data:{statusCode:n},persist:i,times:o,timesInvoked:g,origin:a})=>({Method:r,Origin:a,Path:s,"Status code":n,Persistent:i?"\u2705":"\u274C",Invocations:g,Remaining:i?1/0:o-g}));return this.logger.table(t),this.transform.read().toString()}}});var tI=c((aS,eI)=>{"use strict";var{kClients:Et}=$(),VD=Jr(),{kAgent:lg,kMockAgentSet:zs,kMockAgentGet:$B,kDispatches:ug,kIsMockActive:$s,kNetConnect:at,kGetNetConnect:xD,kOptions:An,kFactory:en}=_t(),qD=Bg(),WD=hg(),{matchValue:OD,buildMockOptions:PD}=Tr(),{InvalidArgumentError:AI,UndiciError:_D}=Z(),ZD=ks(),XD=KB(),KD=zB(),fg=class{constructor(e){this.value=e}deref(){return this.value}},dg=class extends ZD{constructor(e){if(super(e),this[at]=!0,this[$s]=!0,e&&e.agent&&typeof e.agent.dispatch!="function")throw new AI("Argument opts.agent must implement Agent");let t=e&&e.agent?e.agent:new VD(e);this[lg]=t,this[Et]=t[Et],this[An]=PD(e)}get(e){let t=this[$B](e);return t||(t=this[en](e),this[zs](e,t)),t}dispatch(e,t){return this.get(e.origin),this[lg].dispatch(e,t)}async close(){await this[lg].close(),this[Et].clear()}deactivate(){this[$s]=!1}activate(){this[$s]=!0}enableNetConnect(e){if(typeof e=="string"||typeof e=="function"||e instanceof RegExp)Array.isArray(this[at])?this[at].push(e):this[at]=[e];else if(typeof e>"u")this[at]=!0;else throw new AI("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[at]=!1}get isMockActive(){return this[$s]}[zs](e,t){this[Et].set(e,new fg(t))}[en](e){let t=Object.assign({agent:this},this[An]);return this[An]&&this[An].connections===1?new qD(e,t):new WD(e,t)}[$B](e){let t=this[Et].get(e);if(t)return t.deref();if(typeof e!="string"){let r=this[en]("http://localhost:9999");return this[zs](e,r),r}for(let[r,s]of Array.from(this[Et])){let n=s.deref();if(n&&typeof r!="string"&&OD(r,e)){let i=this[en](e);return this[zs](e,i),i[ug]=n[ug],i}}}[xD](){return this[at]}pendingInterceptors(){let e=this[Et];return Array.from(e.entries()).flatMap(([t,r])=>r.deref()[ug].map(s=>({...s,origin:t}))).filter(({pending:t})=>t)}assertNoPendingInterceptors({pendingInterceptorsFormatter:e=new KD}={}){let t=this.pendingInterceptors();if(t.length===0)return;let r=new XD("interceptor","interceptors").pluralize(t.length);throw new _D(` -${r.count} ${r.noun} ${r.is} pending: - -${e.format(t)} -`.trim())}};eI.exports=dg});var gI=c((CS,oI)=>{"use strict";var{kProxy:jD,kClose:zD,kDestroy:$D,kInterceptors:Ap}=$(),{URL:rI}=require("url"),sI=Jr(),ep=vt(),tp=pr(),{InvalidArgumentError:Hr,RequestAbortedError:rp}=Z(),nI=Rr(),vr=Symbol("proxy agent"),tn=Symbol("proxy client"),rn=Symbol("proxy headers"),yg=Symbol("request tls settings"),sp=Symbol("proxy tls settings"),iI=Symbol("connect endpoint function");function np(A){return A==="https:"?443:80}function ip(A){if(typeof A=="string"&&(A={uri:A}),!A||!A.uri)throw new Hr("Proxy opts.uri is mandatory");return{uri:A.uri,protocol:A.protocol||"https"}}function op(A,e){return new ep(A,e)}var wg=class extends tp{constructor(e){if(super(e),this[jD]=ip(e),this[vr]=new sI(e),this[Ap]=e.interceptors&&e.interceptors.ProxyAgent&&Array.isArray(e.interceptors.ProxyAgent)?e.interceptors.ProxyAgent:[],typeof e=="string"&&(e={uri:e}),!e||!e.uri)throw new Hr("Proxy opts.uri is mandatory");let{clientFactory:t=op}=e;if(typeof t!="function")throw new Hr("Proxy opts.clientFactory must be a function.");if(this[yg]=e.requestTls,this[sp]=e.proxyTls,this[rn]=e.headers||{},e.auth&&e.token)throw new Hr("opts.auth cannot be used in combination with opts.token");e.auth?this[rn]["proxy-authorization"]=`Basic ${e.auth}`:e.token&&(this[rn]["proxy-authorization"]=e.token);let r=new rI(e.uri),{origin:s,port:n,host:i}=r,o=nI({...e.proxyTls});this[iI]=nI({...e.requestTls}),this[tn]=t(r,{connect:o}),this[vr]=new sI({...e,connect:async(g,a)=>{let Q=g.host;g.port||(Q+=`:${np(g.protocol)}`);try{let{socket:E,statusCode:C}=await this[tn].connect({origin:s,port:n,path:Q,signal:g.signal,headers:{...this[rn],host:i}});if(C!==200&&(E.on("error",()=>{}).destroy(),a(new rp("Proxy response !== 200 when HTTP Tunneling"))),g.protocol!=="https:"){a(null,E);return}let B;this[yg]?B=this[yg].servername:B=g.servername,this[iI]({...g,servername:B,httpSocket:E},a)}catch(E){a(E)}}})}dispatch(e,t){let{host:r}=new rI(e.origin),s=gp(e.headers);return Qp(s),this[vr].dispatch({...e,headers:{...s,host:r}},t)}async[zD](){await this[vr].close(),await this[tn].close()}async[$D](){await this[vr].destroy(),await this[tn].destroy()}};function gp(A){if(Array.isArray(A)){let e={};for(let t=0;t<A.length;t+=2)e[A[t]]=A[t+1];return e}return A}function Qp(A){if(A&&Object.keys(A).find(t=>t.toLowerCase()==="proxy-authorization"))throw new Hr("Proxy-Authorization should be sent in ProxyAgent constructor")}oI.exports=wg});var Xt=c((BS,CI)=>{"use strict";var QI=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:Ep}=Z(),ap=Jr();aI()===void 0&&EI(new ap);function EI(A){if(!A||typeof A.dispatch!="function")throw new Ep("Argument agent must implement Agent");Object.defineProperty(globalThis,QI,{value:A,writable:!0,enumerable:!1,configurable:!1})}function aI(){return globalThis[QI]}CI.exports={setGlobalDispatcher:EI,getGlobalDispatcher:aI}});var II=c((cS,BI)=>{"use strict";BI.exports=class{constructor(e){this.handler=e}onConnect(...e){return this.handler.onConnect(...e)}onError(...e){return this.handler.onError(...e)}onUpgrade(...e){return this.handler.onUpgrade(...e)}onHeaders(...e){return this.handler.onHeaders(...e)}onData(...e){return this.handler.onData(...e)}onComplete(...e){return this.handler.onComplete(...e)}onBodySent(...e){return this.handler.onBodySent(...e)}}});var Bt=c((hS,uI)=>{"use strict";var{kHeadersList:SA}=$(),{kGuard:Ct}=Ne(),{kEnumerableProperty:we}=G(),{makeIterator:Dg,isValidHeaderName:Vr,isValidHeaderValue:cI}=jA(),{webidl:Y}=DA(),Cp=require("assert"),UA=Symbol("headers map"),LA=Symbol("headers map sorted");function hI(A){let e=A.length;for(;/[\r\n\t ]/.test(A.charAt(--e)););return A.slice(0,e+1).replace(/^[\r\n\t ]+/,"")}function lI(A,e){if(Array.isArray(e))for(let t of e){if(t.length!==2)throw Y.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${t.length}.`});A.append(t[0],t[1])}else if(typeof e=="object"&&e!==null)for(let[t,r]of Object.entries(e))A.append(t,r);else throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}var sn=class A{cookies=null;constructor(e){e instanceof A?(this[UA]=new Map(e[UA]),this[LA]=e[LA],this.cookies=e.cookies):(this[UA]=new Map(e),this[LA]=null)}contains(e){return e=e.toLowerCase(),this[UA].has(e)}clear(){this[UA].clear(),this[LA]=null,this.cookies=null}append(e,t){this[LA]=null;let r=e.toLowerCase(),s=this[UA].get(r);if(s){let n=r==="cookie"?"; ":", ";this[UA].set(r,{name:s.name,value:`${s.value}${n}${t}`})}else this[UA].set(r,{name:e,value:t});r==="set-cookie"&&(this.cookies??=[],this.cookies.push(t))}set(e,t){this[LA]=null;let r=e.toLowerCase();return r==="set-cookie"&&(this.cookies=[t]),this[UA].set(r,{name:e,value:t})}delete(e){return this[LA]=null,e=e.toLowerCase(),e==="set-cookie"&&(this.cookies=null),this[UA].delete(e)}get(e){return this.contains(e)?this[UA].get(e.toLowerCase())?.value??null:null}*[Symbol.iterator](){for(let[e,{value:t}]of this[UA])yield[e,t]}get entries(){let e={};if(this[UA].size)for(let{name:t,value:r}of this[UA].values())e[t]=r;return e}},Kt=class A{constructor(e=void 0){this[SA]=new sn,this[Ct]="none",e!==void 0&&(e=Y.converters.HeadersInit(e),lI(this,e))}append(e,t){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,2,{header:"Headers.append"}),e=Y.converters.ByteString(e),t=Y.converters.ByteString(t),t=hI(t),Vr(e)){if(!cI(t))throw Y.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.append",value:e,type:"header name"});if(this[Ct]==="immutable")throw new TypeError("immutable");return this[Ct],this[SA].append(e,t)}delete(e){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,1,{header:"Headers.delete"}),e=Y.converters.ByteString(e),!Vr(e))throw Y.errors.invalidArgument({prefix:"Headers.delete",value:e,type:"header name"});if(this[Ct]==="immutable")throw new TypeError("immutable");if(this[Ct],!!this[SA].contains(e))return this[SA].delete(e)}get(e){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,1,{header:"Headers.get"}),e=Y.converters.ByteString(e),!Vr(e))throw Y.errors.invalidArgument({prefix:"Headers.get",value:e,type:"header name"});return this[SA].get(e)}has(e){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,1,{header:"Headers.has"}),e=Y.converters.ByteString(e),!Vr(e))throw Y.errors.invalidArgument({prefix:"Headers.has",value:e,type:"header name"});return this[SA].contains(e)}set(e,t){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,2,{header:"Headers.set"}),e=Y.converters.ByteString(e),t=Y.converters.ByteString(t),t=hI(t),Vr(e)){if(!cI(t))throw Y.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.set",value:e,type:"header name"});if(this[Ct]==="immutable")throw new TypeError("immutable");return this[Ct],this[SA].set(e,t)}getSetCookie(){Y.brandCheck(this,A);let e=this[SA].cookies;return e?[...e]:[]}get[LA](){if(this[SA][LA])return this[SA][LA];let e=[],t=[...this[SA]].sort((s,n)=>s[0]<n[0]?-1:1),r=this[SA].cookies;for(let[s,n]of t)if(s==="set-cookie")for(let i of r)e.push([s,i]);else Cp(n!==null),e.push([s,n]);return this[SA][LA]=e,e}keys(){return Y.brandCheck(this,A),Dg(()=>[...this[LA].values()],"Headers","key")}values(){return Y.brandCheck(this,A),Dg(()=>[...this[LA].values()],"Headers","value")}entries(){return Y.brandCheck(this,A),Dg(()=>[...this[LA].values()],"Headers","key+value")}forEach(e,t=globalThis){if(Y.brandCheck(this,A),Y.argumentLengthCheck(arguments,1,{header:"Headers.forEach"}),typeof e!="function")throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.");for(let[r,s]of this)e.apply(t,[s,r,this])}[Symbol.for("nodejs.util.inspect.custom")](){return Y.brandCheck(this,A),this[SA]}};Kt.prototype[Symbol.iterator]=Kt.prototype.entries;Object.defineProperties(Kt.prototype,{append:we,delete:we,get:we,has:we,set:we,getSetCookie:we,keys:we,values:we,entries:we,forEach:we,[Symbol.iterator]:{enumerable:!1},[Symbol.toStringTag]:{value:"Headers",configurable:!0}});Y.converters.HeadersInit=function(A){if(Y.util.Type(A)==="Object")return A[Symbol.iterator]?Y.converters["sequence<sequence<ByteString>>"](A):Y.converters["record<ByteString, ByteString>"](A);throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};uI.exports={fill:lI,Headers:Kt,HeadersList:sn}});var Qn=c((lS,RI)=>{"use strict";var{Headers:Bp,HeadersList:fI,fill:Ip}=Bt(),{extractBody:dI,cloneBody:cp,mixinBody:hp}=wr(),kg=G(),{kEnumerableProperty:OA}=kg,{isValidReasonPhrase:lp,isCancelled:up,isAborted:fp,isBlobLike:dp,serializeJavascriptValueToJSONString:yp,isErrorLike:wp,isomorphicEncode:Dp}=jA(),{redirectStatus:pp,nullBodyStatus:Rp,DOMException:kp}=Ve(),{kState:z,kHeaders:aA,kGuard:jt,kRealm:WA}=Ne(),{webidl:L}=DA(),{FormData:Fp}=ps(),{getGlobalOrigin:Np}=ur(),{URLSerializer:yI}=ge(),{kHeadersList:pg}=$(),Fg=require("assert"),{types:Rg}=require("util"),DI=globalThis.ReadableStream||require("stream/web").ReadableStream,zt=class A{static error(){let e={settingsObject:{}},t=new A;return t[z]=on(),t[WA]=e,t[aA][pg]=t[z].headersList,t[aA][jt]="immutable",t[aA][WA]=e,t}static json(e=void 0,t={}){L.argumentLengthCheck(arguments,1,{header:"Response.json"}),t!==null&&(t=L.converters.ResponseInit(t));let r=new TextEncoder("utf-8").encode(yp(e)),s=dI(r),n={settingsObject:{}},i=new A;return i[WA]=n,i[aA][jt]="response",i[aA][WA]=n,wI(i,t,{body:s[0],type:"application/json"}),i}static redirect(e,t=302){let r={settingsObject:{}};L.argumentLengthCheck(arguments,1,{header:"Response.redirect"}),e=L.converters.USVString(e),t=L.converters["unsigned short"](t);let s;try{s=new URL(e,Np())}catch(o){throw Object.assign(new TypeError("Failed to parse URL from "+e),{cause:o})}if(!pp.includes(t))throw new RangeError("Invalid status code "+t);let n=new A;n[WA]=r,n[aA][jt]="immutable",n[aA][WA]=r,n[z].status=t;let i=Dp(yI(s));return n[z].headersList.append("location",i),n}constructor(e=null,t={}){e!==null&&(e=L.converters.BodyInit(e)),t=L.converters.ResponseInit(t),this[WA]={settingsObject:{}},this[z]=gn({}),this[aA]=new Bp,this[aA][jt]="response",this[aA][pg]=this[z].headersList,this[aA][WA]=this[WA];let r=null;if(e!=null){let[s,n]=dI(e);r={body:s,type:n}}wI(this,t,r)}get type(){return L.brandCheck(this,A),this[z].type}get url(){L.brandCheck(this,A);let e=this[z].urlList,t=e[e.length-1]??null;return t===null?"":yI(t,!0)}get redirected(){return L.brandCheck(this,A),this[z].urlList.length>1}get status(){return L.brandCheck(this,A),this[z].status}get ok(){return L.brandCheck(this,A),this[z].status>=200&&this[z].status<=299}get statusText(){return L.brandCheck(this,A),this[z].statusText}get headers(){return L.brandCheck(this,A),this[aA]}get body(){return L.brandCheck(this,A),this[z].body?this[z].body.stream:null}get bodyUsed(){return L.brandCheck(this,A),!!this[z].body&&kg.isDisturbed(this[z].body.stream)}clone(){if(L.brandCheck(this,A),this.bodyUsed||this.body&&this.body.locked)throw L.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let e=Ng(this[z]),t=new A;return t[z]=e,t[WA]=this[WA],t[aA][pg]=e.headersList,t[aA][jt]=this[aA][jt],t[aA][WA]=this[aA][WA],t}};hp(zt);Object.defineProperties(zt.prototype,{type:OA,url:OA,status:OA,ok:OA,redirected:OA,statusText:OA,headers:OA,clone:OA,body:OA,bodyUsed:OA,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(zt,{json:OA,redirect:OA,error:OA});function Ng(A){if(A.internalResponse)return pI(Ng(A.internalResponse),A.type);let e=gn({...A,body:null});return A.body!=null&&(e.body=cp(A.body)),e}function gn(A){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...A,headersList:A.headersList?new fI(A.headersList):new fI,urlList:A.urlList?[...A.urlList]:[]}}function on(A){let e=wp(A);return gn({type:"error",status:0,error:e?A:new Error(A&&String(A)),aborted:A&&A.name==="AbortError"})}function nn(A,e){return e={internalResponse:A,...e},new Proxy(A,{get(t,r){return r in e?e[r]:t[r]},set(t,r,s){return Fg(!(r in e)),t[r]=s,!0}})}function pI(A,e){if(e==="basic")return nn(A,{type:"basic",headersList:A.headersList});if(e==="cors")return nn(A,{type:"cors",headersList:A.headersList});if(e==="opaque")return nn(A,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(e==="opaqueredirect")return nn(A,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});Fg(!1)}function mp(A){return Fg(up(A)),fp(A)?on(new kp("The operation was aborted.","AbortError")):on("Request was cancelled.")}function wI(A,e,t){if(e.status!==null&&(e.status<200||e.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in e&&e.statusText!=null&&!lp(String(e.statusText)))throw new TypeError("Invalid statusText");if("status"in e&&e.status!=null&&(A[z].status=e.status),"statusText"in e&&e.statusText!=null&&(A[z].statusText=e.statusText),"headers"in e&&e.headers!=null&&Ip(A[aA],e.headers),t){if(Rp.includes(A.status))throw L.errors.exception({header:"Response constructor",message:"Invalid response status code "+A.status});A[z].body=t.body,t.type!=null&&!A[z].headersList.contains("Content-Type")&&A[z].headersList.append("content-type",t.type)}}L.converters.ReadableStream=L.interfaceConverter(DI);L.converters.FormData=L.interfaceConverter(Fp);L.converters.URLSearchParams=L.interfaceConverter(URLSearchParams);L.converters.XMLHttpRequestBodyInit=function(A){return typeof A=="string"?L.converters.USVString(A):dp(A)?L.converters.Blob(A,{strict:!1}):Rg.isAnyArrayBuffer(A)||Rg.isTypedArray(A)||Rg.isDataView(A)?L.converters.BufferSource(A):kg.isFormDataLike(A)?L.converters.FormData(A,{strict:!1}):A instanceof URLSearchParams?L.converters.URLSearchParams(A):L.converters.DOMString(A)};L.converters.BodyInit=function(A){return A instanceof DI?L.converters.ReadableStream(A):A?.[Symbol.asyncIterator]?A:L.converters.XMLHttpRequestBodyInit(A)};L.converters.ResponseInit=L.dictionaryConverter([{key:"status",converter:L.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:L.converters.ByteString,defaultValue:""},{key:"headers",converter:L.converters.HeadersInit}]);RI.exports={makeNetworkError:on,makeResponse:gn,makeAppropriateNetworkError:mp,filterResponse:pI,Response:zt,cloneResponse:Ng}});var Wr=c((uS,UI)=>{"use strict";var{extractBody:bp,mixinBody:Sp,cloneBody:Up}=wr(),{Headers:mg,fill:Lp,HeadersList:kI}=Bt(),{FinalizationRegistry:Mp}=vo()(),qr=G(),{isValidHTTPToken:Yp,sameOrigin:FI,normalizeMethod:Jp,makePolicyContainer:Gp}=jA(),{forbiddenMethods:Tp,corsSafeListedMethods:vp,referrerPolicy:Hp,requestRedirect:Vp,requestMode:xp,requestCredentials:qp,requestCache:Wp,requestDuplex:Op}=Ve(),{kEnumerableProperty:oA}=qr,{kHeaders:CA,kSignal:xr,kState:X,kGuard:En,kRealm:PA}=Ne(),{webidl:N}=DA(),{getGlobalOrigin:Pp}=ur(),{URLSerializer:_p}=ge(),{kHeadersList:an}=$(),Zp=require("assert"),{getMaxListeners:NI,setMaxListeners:mI,getEventListeners:Xp,defaultMaxListeners:bI}=require("events"),bg=globalThis.TransformStream,SI=Symbol("init"),Kp=Symbol("abortController"),jp=new Mp(({signal:A,abort:e})=>{A.removeEventListener("abort",e)}),It=class A{constructor(e,t={}){if(e===SI)return;N.argumentLengthCheck(arguments,1,{header:"Request constructor"}),e=N.converters.RequestInfo(e),t=N.converters.RequestInit(t),this[PA]={settingsObject:{baseUrl:Pp(),get origin(){return this.baseUrl?.origin},policyContainer:Gp()}};let r=null,s=null,n=this[PA].settingsObject.baseUrl,i=null;if(typeof e=="string"){let h;try{h=new URL(e,n)}catch(l){throw new TypeError("Failed to parse URL from "+e,{cause:l})}if(h.username||h.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+e);r=Cn({urlList:[h]}),s="cors"}else Zp(e instanceof A),r=e[X],i=e[xr];let o=this[PA].settingsObject.origin,g="client";if(r.window?.constructor?.name==="EnvironmentSettingsObject"&&FI(r.window,o)&&(g=r.window),t.window!=null)throw new TypeError(`'window' option '${g}' must be null`);if("window"in t&&(g="no-window"),r=Cn({method:r.method,headersList:r.headersList,unsafeRequest:r.unsafeRequest,client:this[PA].settingsObject,window:g,priority:r.priority,origin:r.origin,referrer:r.referrer,referrerPolicy:r.referrerPolicy,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,integrity:r.integrity,keepalive:r.keepalive,reloadNavigation:r.reloadNavigation,historyNavigation:r.historyNavigation,urlList:[...r.urlList]}),Object.keys(t).length>0&&(r.mode==="navigate"&&(r.mode="same-origin"),r.reloadNavigation=!1,r.historyNavigation=!1,r.origin="client",r.referrer="client",r.referrerPolicy="",r.url=r.urlList[r.urlList.length-1],r.urlList=[r.url]),t.referrer!==void 0){let h=t.referrer;if(h==="")r.referrer="no-referrer";else{let l;try{l=new URL(h,n)}catch(u){throw new TypeError(`Referrer "${h}" is not a valid URL.`,{cause:u})}l.protocol==="about:"&&l.hostname==="client"||o&&!FI(l,this[PA].settingsObject.baseUrl)?r.referrer="client":r.referrer=l}}t.referrerPolicy!==void 0&&(r.referrerPolicy=t.referrerPolicy);let a;if(t.mode!==void 0?a=t.mode:a=s,a==="navigate")throw N.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(a!=null&&(r.mode=a),t.credentials!==void 0&&(r.credentials=t.credentials),t.cache!==void 0&&(r.cache=t.cache),r.cache==="only-if-cached"&&r.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(t.redirect!==void 0&&(r.redirect=t.redirect),t.integrity!==void 0&&t.integrity!=null&&(r.integrity=String(t.integrity)),t.keepalive!==void 0&&(r.keepalive=!!t.keepalive),t.method!==void 0){let h=t.method;if(!Yp(t.method))throw TypeError(`'${t.method}' is not a valid HTTP method.`);if(Tp.indexOf(h.toUpperCase())!==-1)throw TypeError(`'${t.method}' HTTP method is unsupported.`);h=Jp(t.method),r.method=h}t.signal!==void 0&&(i=t.signal),this[X]=r;let Q=new AbortController;if(this[xr]=Q.signal,this[xr][PA]=this[PA],i!=null){if(!i||typeof i.aborted!="boolean"||typeof i.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(i.aborted)Q.abort(i.reason);else{this[Kp]=Q;let h=new WeakRef(Q),l=function(){let u=h.deref();u!==void 0&&u.abort(this.reason)};try{(typeof NI=="function"&&NI(i)===bI||Xp(i,"abort").length>=bI)&&mI(100,i)}catch{}qr.addAbortListener(i,l),jp.register(Q,{signal:i,abort:l})}}if(this[CA]=new mg,this[CA][an]=r.headersList,this[CA][En]="request",this[CA][PA]=this[PA],a==="no-cors"){if(!vp.includes(r.method))throw new TypeError(`'${r.method} is unsupported in no-cors mode.`);this[CA][En]="request-no-cors"}if(Object.keys(t).length!==0){let h=new mg(this[CA]);if(t.headers!==void 0&&(h=t.headers),this[CA][an].clear(),h.constructor.name==="Headers")for(let[l,u]of h)this[CA].append(l,u);else Lp(this[CA],h)}let E=e instanceof A?e[X].body:null;if((t.body!=null||E!=null)&&(r.method==="GET"||r.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let C=null;if(t.body!=null){let[h,l]=bp(t.body,r.keepalive);C=h,l&&!this[CA][an].contains("content-type")&&this[CA].append("content-type",l)}let B=C??E;if(B!=null&&B.source==null){if(C!=null&&t.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(r.mode!=="same-origin"&&r.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');r.useCORSPreflightFlag=!0}let I=B;if(C==null&&E!=null){if(qr.isDisturbed(E.stream)||E.stream.locked)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");bg||(bg=require("stream/web").TransformStream);let h=new bg;E.stream.pipeThrough(h),I={source:E.source,length:E.length,stream:h.readable}}this[X].body=I}get method(){return N.brandCheck(this,A),this[X].method}get url(){return N.brandCheck(this,A),_p(this[X].url)}get headers(){return N.brandCheck(this,A),this[CA]}get destination(){return N.brandCheck(this,A),this[X].destination}get referrer(){return N.brandCheck(this,A),this[X].referrer==="no-referrer"?"":this[X].referrer==="client"?"about:client":this[X].referrer.toString()}get referrerPolicy(){return N.brandCheck(this,A),this[X].referrerPolicy}get mode(){return N.brandCheck(this,A),this[X].mode}get credentials(){return this[X].credentials}get cache(){return N.brandCheck(this,A),this[X].cache}get redirect(){return N.brandCheck(this,A),this[X].redirect}get integrity(){return N.brandCheck(this,A),this[X].integrity}get keepalive(){return N.brandCheck(this,A),this[X].keepalive}get isReloadNavigation(){return N.brandCheck(this,A),this[X].reloadNavigation}get isHistoryNavigation(){return N.brandCheck(this,A),this[X].historyNavigation}get signal(){return N.brandCheck(this,A),this[xr]}get body(){return N.brandCheck(this,A),this[X].body?this[X].body.stream:null}get bodyUsed(){return N.brandCheck(this,A),!!this[X].body&&qr.isDisturbed(this[X].body.stream)}get duplex(){return N.brandCheck(this,A),"half"}clone(){if(N.brandCheck(this,A),this.bodyUsed||this.body?.locked)throw new TypeError("unusable");let e=zp(this[X]),t=new A(SI);t[X]=e,t[PA]=this[PA],t[CA]=new mg,t[CA][an]=e.headersList,t[CA][En]=this[CA][En],t[CA][PA]=this[CA][PA];let r=new AbortController;return this.signal.aborted?r.abort(this.signal.reason):qr.addAbortListener(this.signal,()=>{r.abort(this.signal.reason)}),t[xr]=r.signal,t}};Sp(It);function Cn(A){let e={method:"GET",localURLsOnly:!1,unsafeRequest:!1,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:!1,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:!1,credentials:"same-origin",useCredentials:!1,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:!1,historyNavigation:!1,userActivation:!1,taintedOrigin:!1,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:!1,done:!1,timingAllowFailed:!1,...A,headersList:A.headersList?new kI(A.headersList):new kI};return e.url=e.urlList[0],e}function zp(A){let e=Cn({...A,body:null});return A.body!=null&&(e.body=Up(A.body)),e}Object.defineProperties(It.prototype,{method:oA,url:oA,headers:oA,redirect:oA,clone:oA,signal:oA,duplex:oA,destination:oA,body:oA,bodyUsed:oA,isHistoryNavigation:oA,isReloadNavigation:oA,keepalive:oA,integrity:oA,cache:oA,credentials:oA,attribute:oA,referrerPolicy:oA,referrer:oA,mode:oA,[Symbol.toStringTag]:{value:"Request",configurable:!0}});N.converters.Request=N.interfaceConverter(It);N.converters.RequestInfo=function(A){return typeof A=="string"?N.converters.USVString(A):A instanceof It?N.converters.Request(A):N.converters.USVString(A)};N.converters.AbortSignal=N.interfaceConverter(AbortSignal);N.converters.RequestInit=N.dictionaryConverter([{key:"method",converter:N.converters.ByteString},{key:"headers",converter:N.converters.HeadersInit},{key:"body",converter:N.nullableConverter(N.converters.BodyInit)},{key:"referrer",converter:N.converters.USVString},{key:"referrerPolicy",converter:N.converters.DOMString,allowedValues:Hp},{key:"mode",converter:N.converters.DOMString,allowedValues:xp},{key:"credentials",converter:N.converters.DOMString,allowedValues:qp},{key:"cache",converter:N.converters.DOMString,allowedValues:Wp},{key:"redirect",converter:N.converters.DOMString,allowedValues:Vp},{key:"integrity",converter:N.converters.DOMString},{key:"keepalive",converter:N.converters.boolean},{key:"signal",converter:N.nullableConverter(A=>N.converters.AbortSignal(A,{strict:!1}))},{key:"window",converter:N.converters.any},{key:"duplex",converter:N.converters.DOMString,allowedValues:Op}]);UI.exports={Request:It,makeRequest:Cn}});var fn=c((fS,PI)=>{"use strict";var{Response:$p,makeNetworkError:P,makeAppropriateNetworkError:Bn,filterResponse:Sg,makeResponse:In}=Qn(),{Headers:LI}=Bt(),{Request:AR,makeRequest:eR}=Wr(),Or=require("zlib"),{bytesMatch:tR,makePolicyContainer:rR,clonePolicyContainer:sR,requestBadPort:nR,TAOCheck:iR,appendRequestOriginHeader:oR,responseLocationURL:gR,requestCurrentURL:De,setRequestReferrerPolicyOnRedirect:QR,tryUpgradeRequestToAPotentiallyTrustworthyURL:ER,createOpaqueTimingInfo:Vg,appendFetchMetadata:aR,corsCheck:CR,crossOriginResourcePolicyCheck:BR,determineRequestsReferrer:IR,coarsenedSharedCurrentTime:xg,createDeferredPromise:cR,isBlobLike:hR,sameOrigin:Gg,isCancelled:$t,isAborted:MI,isErrorLike:lR,fullyReadBody:TI,readableStreamClose:uR,isomorphicEncode:Tg,urlIsLocal:fR,urlIsHttpHttpsScheme:qg,urlHasHttpsScheme:dR}=jA(),{kState:vg,kHeaders:Ug,kGuard:yR,kRealm:YI}=Ne(),Ar=require("assert"),{safelyExtractBody:cn}=wr(),{redirectStatus:vI,nullBodyStatus:HI,safeMethods:wR,requestBodyHeader:DR,subresource:pR,DOMException:hn}=Ve(),{kHeadersList:Hg}=$(),RR=require("events"),{Readable:kR,pipeline:FR}=require("stream"),{addAbortListener:NR,isErrored:mR,isReadable:ln,nodeMajor:JI,nodeMinor:bR}=G(),{dataURLProcessor:SR,serializeAMimeType:UR}=ge(),{TransformStream:LR}=require("stream/web"),{getGlobalDispatcher:MR}=Xt(),{webidl:YR}=DA(),{STATUS_CODES:JR}=require("http"),Lg,Mg=globalThis.ReadableStream,un=class extends RR{constructor(e){super(),this.dispatcher=e,this.connection=null,this.dump=!1,this.state="ongoing",this.setMaxListeners(21)}terminate(e){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(e),this.emit("terminated",e))}abort(e){this.state==="ongoing"&&(this.state="aborted",e||(e=new hn("The operation was aborted.","AbortError")),this.serializedAbortReason=e,this.connection?.destroy(e),this.emit("terminated",e))}};async function GR(A,e={}){YR.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});let t=cR(),r;try{r=new AR(A,e)}catch(C){return t.reject(C),t.promise}let s=r[vg];if(r.signal.aborted)return Yg(t,s,null,r.signal.reason),t.promise;s.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(s.serviceWorkers="none");let i=null,o=null,g=!1,a=null;return NR(r.signal,()=>{g=!0,Ar(a!=null),a.abort(r.signal.reason),Yg(t,s,i,r.signal.reason)}),a=xI({request:s,processResponseEndOfBody:C=>VI(C,"fetch"),processResponse:C=>{if(!g){if(C.aborted){Yg(t,s,i,a.serializedAbortReason);return}if(C.type==="error"){t.reject(Object.assign(new TypeError("fetch failed"),{cause:C.error}));return}i=new $p,i[vg]=C,i[YI]=o,i[Ug][Hg]=C.headersList,i[Ug][yR]="immutable",i[Ug][YI]=o,t.resolve(i)}},dispatcher:e.dispatcher??MR()}),t.promise}function VI(A,e="other"){if(A.type==="error"&&A.aborted||!A.urlList?.length)return;let t=A.urlList[0],r=A.timingInfo,s=A.cacheState;qg(t)&&r!==null&&(r.timingAllowPassed||(r=Vg({startTime:r.startTime}),s=""),r.endTime=xg(),A.timingInfo=r,TR(r,t,e,globalThis,s))}function TR(A,e,t,r,s){(JI>18||JI===18&&bR>=2)&&performance.markResourceTiming(A,e.href,t,r,s)}function Yg(A,e,t,r){if(r||(r=new hn("The operation was aborted.","AbortError")),A.reject(r),e.body!=null&&ln(e.body?.stream)&&e.body.stream.cancel(r).catch(n=>{if(n.code!=="ERR_INVALID_STATE")throw n}),t==null)return;let s=t[vg];s.body!=null&&ln(s.body?.stream)&&s.body.stream.cancel(r).catch(n=>{if(n.code!=="ERR_INVALID_STATE")throw n})}function xI({request:A,processRequestBodyChunkLength:e,processRequestEndOfBody:t,processResponse:r,processResponseEndOfBody:s,processResponseConsumeBody:n,useParallelQueue:i=!1,dispatcher:o}){let g=null,a=!1;A.client!=null&&(g=A.client.globalObject,a=A.client.crossOriginIsolatedCapability);let Q=xg(a),E=Vg({startTime:Q}),C={controller:new un(o),request:A,timingInfo:E,processRequestBodyChunkLength:e,processRequestEndOfBody:t,processResponse:r,processResponseConsumeBody:n,processResponseEndOfBody:s,taskDestination:g,crossOriginIsolatedCapability:a};return Ar(!A.body||A.body.stream),A.window==="client"&&(A.window=A.client?.globalObject?.constructor?.name==="Window"?A.client:"no-window"),A.origin==="client"&&(A.origin=A.client?.origin),A.policyContainer==="client"&&(A.client!=null?A.policyContainer=sR(A.client.policyContainer):A.policyContainer=rR()),A.headersList.contains("accept")||A.headersList.append("accept","*/*"),A.headersList.contains("accept-language")||A.headersList.append("accept-language","*"),A.priority,pR.includes(A.destination),qI(C).catch(B=>{C.controller.terminate(B)}),C.controller}async function qI(A,e=!1){let t=A.request,r=null;if(t.localURLsOnly&&!fR(De(t))&&(r=P("local URLs only")),ER(t),nR(t)==="blocked"&&(r=P("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=IR(t)),r===null&&(r=await(async()=>{let n=De(t);return Gg(n,t.url)&&t.responseTainting==="basic"||n.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await GI(A)):t.mode==="same-origin"?P('request mode cannot be "same-origin"'):t.mode==="no-cors"?t.redirect!=="follow"?P('redirect mode cannot be "follow" for "no-cors" request'):(t.responseTainting="opaque",await GI(A)):qg(De(t))?(t.responseTainting="cors",await WI(A)):P("URL scheme must be a HTTP(S) scheme")})()),e)return r;r.status!==0&&!r.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?r=Sg(r,"basic"):t.responseTainting==="cors"?r=Sg(r,"cors"):t.responseTainting==="opaque"?r=Sg(r,"opaque"):Ar(!1));let s=r.status===0?r:r.internalResponse;if(s.urlList.length===0&&s.urlList.push(...t.urlList),t.timingAllowFailed||(r.timingAllowPassed=!0),r.type==="opaque"&&s.status===206&&s.rangeRequested&&!t.headers.contains("range")&&(r=s=P()),r.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||HI.includes(s.status))&&(s.body=null,A.controller.dump=!0),t.integrity){let n=o=>Jg(A,P(o));if(t.responseTainting==="opaque"||r.body==null){n(r.error);return}let i=o=>{if(!tR(o,t.integrity)){n("integrity mismatch");return}r.body=cn(o)[0],Jg(A,r)};await TI(r.body,i,n)}else Jg(A,r)}async function GI(A){if($t(A)&&A.request.redirectCount===0)return Bn(A);let{request:e}=A,{protocol:t}=De(e);switch(t){case"about:":return P("about scheme is not supported");case"blob:":{Lg||(Lg=require("buffer").resolveObjectURL);let r=De(e);if(r.search.length!==0)return P("NetworkError when attempting to fetch resource.");let s=Lg(r.toString());if(e.method!=="GET"||!hR(s))return P("invalid method");let n=cn(s),i=n[0],o=Tg(`${i.length}`),g=n[1]??"",a=In({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:o}],["content-type",{name:"Content-Type",value:g}]]});return a.body=i,a}case"data:":{let r=De(e),s=SR(r);if(s==="failure")return P("failed to fetch the data URL");let n=UR(s.mimeType);return In({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:n}]],body:cn(s.body)[0]})}case"file:":return P("not implemented... yet...");case"http:":case"https:":return await WI(A).catch(r=>P(r));default:return P("unknown scheme")}}function vR(A,e){A.request.done=!0,A.processResponseDone!=null&&queueMicrotask(()=>A.processResponseDone(e))}async function Jg(A,e){e.type==="error"&&(e.urlList=[A.request.urlList[0]],e.timingInfo=Vg({startTime:A.timingInfo.startTime}));let t=()=>{A.request.done=!0,A.processResponseEndOfBody!=null&&queueMicrotask(()=>A.processResponseEndOfBody(e))};if(A.processResponse!=null&&queueMicrotask(()=>A.processResponse(e)),e.body==null)t();else{let r=(n,i)=>{i.enqueue(n)},s=new LR({start(){},transform:r,flush:t},{size(){return 1}},{size(){return 1}});e.body={stream:e.body.stream.pipeThrough(s)}}if(A.processResponseConsumeBody!=null){let r=n=>A.processResponseConsumeBody(e,n),s=n=>A.processResponseConsumeBody(e,n);e.body==null?queueMicrotask(()=>r(null)):await TI(e.body,r,s)}}async function WI(A){let e=A.request,t=null,r=null,s=A.timingInfo;if(e.serviceWorkers,t===null){if(e.redirect==="follow"&&(e.serviceWorkers="none"),r=t=await OI(A),e.responseTainting==="cors"&&CR(e,t)==="failure")return P("cors failure");iR(e,t)==="failure"&&(e.timingAllowFailed=!0)}return(e.responseTainting==="opaque"||t.type==="opaque")&&BR(e.origin,e.client,e.destination,r)==="blocked"?P("blocked"):(vI.includes(r.status)&&(e.redirect!=="manual"&&A.controller.connection.destroy(),e.redirect==="error"?t=P("unexpected redirect"):e.redirect==="manual"?t=r:e.redirect==="follow"?t=await HR(A,t):Ar(!1)),t.timingInfo=s,t)}async function HR(A,e){let t=A.request,r=e.internalResponse?e.internalResponse:e,s;try{if(s=gR(r,De(t).hash),s==null)return e}catch(i){return P(i)}if(!qg(s))return P("URL scheme must be a HTTP(S) scheme");if(t.redirectCount===20)return P("redirect count exceeded");if(t.redirectCount+=1,t.mode==="cors"&&(s.username||s.password)&&!Gg(t,s))return P('cross origin not allowed for request mode "cors"');if(t.responseTainting==="cors"&&(s.username||s.password))return P('URL cannot contain credentials for request mode "cors"');if(r.status!==303&&t.body!=null&&t.body.source==null)return P();if([301,302].includes(r.status)&&t.method==="POST"||r.status===303&&!["GET","HEAD"].includes(t.method)){t.method="GET",t.body=null;for(let i of DR)t.headersList.delete(i)}Gg(De(t),s)||t.headersList.delete("authorization"),t.body!=null&&(Ar(t.body.source!=null),t.body=cn(t.body.source)[0]);let n=A.timingInfo;return n.redirectEndTime=n.postRedirectStartTime=xg(A.crossOriginIsolatedCapability),n.redirectStartTime===0&&(n.redirectStartTime=n.startTime),t.urlList.push(s),QR(t,r),qI(A,!0)}async function OI(A,e=!1,t=!1){let r=A.request,s=null,n=null,i=null,o=null,g=!1;r.window==="no-window"&&r.redirect==="error"?(s=A,n=r):(n=eR(r),s={...A},s.request=n);let a=r.credentials==="include"||r.credentials==="same-origin"&&r.responseTainting==="basic",Q=n.body?n.body.length:null,E=null;if(n.body==null&&["POST","PUT"].includes(n.method)&&(E="0"),Q!=null&&(E=Tg(`${Q}`)),E!=null&&n.headersList.append("content-length",E),Q!=null&&n.keepalive,n.referrer instanceof URL&&n.headersList.append("referer",Tg(n.referrer.href)),oR(n),aR(n),n.headersList.contains("user-agent")||n.headersList.append("user-agent","undici"),n.cache==="default"&&(n.headersList.contains("if-modified-since")||n.headersList.contains("if-none-match")||n.headersList.contains("if-unmodified-since")||n.headersList.contains("if-match")||n.headersList.contains("if-range"))&&(n.cache="no-store"),n.cache==="no-cache"&&!n.preventNoCacheCacheControlHeaderModification&&!n.headersList.contains("cache-control")&&n.headersList.append("cache-control","max-age=0"),(n.cache==="no-store"||n.cache==="reload")&&(n.headersList.contains("pragma")||n.headersList.append("pragma","no-cache"),n.headersList.contains("cache-control")||n.headersList.append("cache-control","no-cache")),n.headersList.contains("range")&&n.headersList.append("accept-encoding","identity"),n.headersList.contains("accept-encoding")||(dR(De(n))?n.headersList.append("accept-encoding","br, gzip, deflate"):n.headersList.append("accept-encoding","gzip, deflate")),o==null&&(n.cache="no-store"),n.mode!=="no-store"&&n.mode,i==null){if(n.mode==="only-if-cached")return P("only if cached");let C=await VR(s,a,t);!wR.includes(n.method)&&C.status>=200&&C.status<=399,g&&C.status,i==null&&(i=C)}if(i.urlList=[...n.urlList],n.headersList.contains("range")&&(i.rangeRequested=!0),i.requestIncludesCredentials=a,i.status===407)return r.window==="no-window"?P():$t(A)?Bn(A):P("proxy authentication required");if(i.status===421&&!t&&(r.body==null||r.body.source!=null)){if($t(A))return Bn(A);A.controller.connection.destroy(),i=await OI(A,e,!0)}return i}async function VR(A,e=!1,t=!1){Ar(!A.controller.connection||A.controller.connection.destroyed),A.controller.connection={abort:null,destroyed:!1,destroy(I){this.destroyed||(this.destroyed=!0,this.abort?.(I??new hn("The operation was aborted.","AbortError")))}};let r=A.request,s=null,n=A.timingInfo;null==null&&(r.cache="no-store");let o=t?"yes":"no";r.mode;let g=null;if(r.body==null&&A.processRequestEndOfBody)queueMicrotask(()=>A.processRequestEndOfBody());else if(r.body!=null){let I=async function*(u){$t(A)||(yield u,A.processRequestBodyChunkLength?.(u.byteLength))},h=()=>{$t(A)||A.processRequestEndOfBody&&A.processRequestEndOfBody()},l=u=>{$t(A)||(u.name==="AbortError"?A.controller.abort():A.controller.terminate(u))};g=async function*(){try{for await(let u of r.body.stream)yield*I(u);h()}catch(u){l(u)}}()}try{let{body:I,status:h,statusText:l,headersList:u,socket:F}=await B({body:g});if(F)s=In({status:h,statusText:l,headersList:u,socket:F});else{let w=I[Symbol.asyncIterator]();A.controller.next=()=>w.next(),s=In({status:h,statusText:l,headersList:u})}}catch(I){return I.name==="AbortError"?(A.controller.connection.destroy(),Bn(A)):P(I)}let a=()=>{A.controller.resume()},Q=I=>{A.controller.abort(I)};Mg||(Mg=require("stream/web").ReadableStream);let E=new Mg({async start(I){A.controller.controller=I},async pull(I){await a(I)},async cancel(I){await Q(I)}},{highWaterMark:0,size(){return 1}});s.body={stream:E},A.controller.on("terminated",C),A.controller.resume=async()=>{for(;;){let I,h;try{let{done:l,value:u}=await A.controller.next();if(MI(A))break;I=l?void 0:u}catch(l){A.controller.ended&&!n.encodedBodySize?I=void 0:(I=l,h=!0)}if(I===void 0){uR(A.controller.controller),vR(A,s);return}if(n.decodedBodySize+=I?.byteLength??0,h){A.controller.terminate(I);return}if(A.controller.controller.enqueue(new Uint8Array(I)),mR(E)){A.controller.terminate();return}if(!A.controller.controller.desiredSize)return}};function C(I){MI(A)?(s.aborted=!0,ln(E)&&A.controller.controller.error(A.controller.serializedAbortReason)):ln(E)&&A.controller.controller.error(new TypeError("terminated",{cause:lR(I)?I:void 0})),A.controller.connection.destroy()}return s;async function B({body:I}){let h=De(r),l=A.controller.dispatcher;return new Promise((u,F)=>l.dispatch({path:h.pathname+h.search,origin:h.origin,method:r.method,body:A.controller.dispatcher.isMockActive?r.body&&r.body.source:I,headers:r.headersList.entries,maxRedirections:0,upgrade:r.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(w){let{connection:k}=A.controller;k.destroyed?w(new hn("The operation was aborted.","AbortError")):(A.controller.on("terminated",w),this.abort=k.abort=w)},onHeaders(w,k,T,O){if(w<200)return;let V=[],K="",uA=new LI;for(let wA=0;wA<k.length;wA+=2){let gA=k[wA+0].toString("latin1"),Be=k[wA+1].toString("latin1");gA.toLowerCase()==="content-encoding"?V=Be.toLowerCase().split(",").map(_=>_.trim()).reverse():gA.toLowerCase()==="location"&&(K=Be),uA.append(gA,Be)}this.body=new kR({read:T});let IA=[],wt=r.redirect==="follow"&&K&&vI.includes(w);if(r.method!=="HEAD"&&r.method!=="CONNECT"&&!HI.includes(w)&&!wt)for(let wA of V)if(wA==="x-gzip"||wA==="gzip")IA.push(Or.createGunzip({flush:Or.constants.Z_SYNC_FLUSH,finishFlush:Or.constants.Z_SYNC_FLUSH}));else if(wA==="deflate")IA.push(Or.createInflate());else if(wA==="br")IA.push(Or.createBrotliDecompress());else{IA.length=0;break}return u({status:w,statusText:O,headersList:uA[Hg],body:IA.length?FR(this.body,...IA,()=>{}):this.body.on("error",()=>{})}),!0},onData(w){if(A.controller.dump)return;let k=w;return n.encodedBodySize+=k.byteLength,this.body.push(k)},onComplete(){this.abort&&A.controller.off("terminated",this.abort),A.controller.ended=!0,this.body.push(null)},onError(w){this.abort&&A.controller.off("terminated",this.abort),this.body?.destroy(w),A.controller.terminate(w),F(w)},onUpgrade(w,k,T){if(w!==101)return;let O=new LI;for(let V=0;V<k.length;V+=2){let K=k[V+0].toString("latin1"),uA=k[V+1].toString("latin1");O.append(K,uA)}return u({status:w,statusText:JR[w],headersList:O[Hg],socket:T}),!0}}))}}PI.exports={fetch:GR,Fetch:un,fetching:xI,finalizeAndReportTiming:VI}});var Wg=c((dS,_I)=>{"use strict";_I.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var XI=c((yS,ZI)=>{"use strict";var{webidl:_A}=DA(),dn=Symbol("ProgressEvent state"),Og=class A extends Event{constructor(e,t={}){e=_A.converters.DOMString(e),t=_A.converters.ProgressEventInit(t??{}),super(e,t),this[dn]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return _A.brandCheck(this,A),this[dn].lengthComputable}get loaded(){return _A.brandCheck(this,A),this[dn].loaded}get total(){return _A.brandCheck(this,A),this[dn].total}};_A.converters.ProgressEventInit=_A.dictionaryConverter([{key:"lengthComputable",converter:_A.converters.boolean,defaultValue:!1},{key:"loaded",converter:_A.converters["unsigned long long"],defaultValue:0},{key:"total",converter:_A.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:_A.converters.boolean,defaultValue:!1},{key:"cancelable",converter:_A.converters.boolean,defaultValue:!1},{key:"composed",converter:_A.converters.boolean,defaultValue:!1}]);ZI.exports={ProgressEvent:Og}});var jI=c((wS,KI)=>{"use strict";function xR(A){if(!A)return"failure";switch(A.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}KI.exports={getEncoding:xR}});var nc=c((DS,sc)=>{"use strict";var{kState:er,kError:Pg,kResult:zI,kAborted:Pr,kLastProgressEventFired:Zg}=Wg(),{ProgressEvent:qR}=XI(),{getEncoding:$I}=jI(),{DOMException:WR}=Ve(),{serializeAMimeType:OR,parseMIMEType:Ac}=ge(),{types:PR}=require("util"),{StringDecoder:ec}=require("string_decoder"),{btoa:tc}=require("buffer"),_R={enumerable:!0,writable:!1,configurable:!1};function ZR(A,e,t,r){if(A[er]==="loading")throw new WR("Invalid state","InvalidStateError");A[er]="loading",A[zI]=null,A[Pg]=null;let n=e.stream().getReader(),i=[],o=n.read(),g=!0;(async()=>{for(;!A[Pr];)try{let{done:a,value:Q}=await o;if(g&&!A[Pr]&&queueMicrotask(()=>{Ke("loadstart",A)}),g=!1,!a&&PR.isUint8Array(Q))i.push(Q),(A[Zg]===void 0||Date.now()-A[Zg]>=50)&&!A[Pr]&&(A[Zg]=Date.now(),queueMicrotask(()=>{Ke("progress",A)})),o=n.read();else if(a){queueMicrotask(()=>{A[er]="done";try{let E=XR(i,t,e.type,r);if(A[Pr])return;A[zI]=E,Ke("load",A)}catch(E){A[Pg]=E,Ke("error",A)}A[er]!=="loading"&&Ke("loadend",A)});break}}catch(a){if(A[Pr])return;queueMicrotask(()=>{A[er]="done",A[Pg]=a,Ke("error",A),A[er]!=="loading"&&Ke("loadend",A)});break}})()}function Ke(A,e){let t=new qR(A,{bubbles:!1,cancelable:!1});e.dispatchEvent(t)}function XR(A,e,t,r){switch(e){case"DataURL":{let s="data:",n=Ac(t||"application/octet-stream");n!=="failure"&&(s+=OR(n)),s+=";base64,";let i=new ec("latin1");for(let o of A)s+=tc(i.write(o));return s+=tc(i.end()),s}case"Text":{let s="failure";if(r&&(s=$I(r)),s==="failure"&&t){let n=Ac(t);n!=="failure"&&(s=$I(n.parameters.get("charset")))}return s==="failure"&&(s="UTF-8"),KR(A,s)}case"ArrayBuffer":return rc(A).buffer;case"BinaryString":{let s="",n=new ec("latin1");for(let i of A)s+=n.write(i);return s+=n.end(),s}}}function KR(A,e){let t=rc(A),r=jR(t),s=0;r!==null&&(e=r,s=r==="UTF-8"?3:2);let n=t.slice(s);return new TextDecoder(e).decode(n)}function jR(A){let[e,t,r]=A;return e===239&&t===187&&r===191?"UTF-8":e===254&&t===255?"UTF-16BE":e===255&&t===254?"UTF-16LE":null}function rc(A){let e=A.reduce((r,s)=>r+s.byteLength,0),t=0;return A.reduce((r,s)=>(r.set(s,t),t+=s.byteLength,r),new Uint8Array(e))}sc.exports={staticPropertyDescriptors:_R,readOperation:ZR,fireAProgressEvent:Ke}});var Qc=c((pS,gc)=>{"use strict";var{staticPropertyDescriptors:tr,readOperation:yn,fireAProgressEvent:ic}=nc(),{kState:ct,kError:oc,kResult:wn,kEvents:v,kAborted:zR}=Wg(),{webidl:W}=DA(),{kEnumerableProperty:MA}=G(),ae=class A extends EventTarget{constructor(){super(),this[ct]="empty",this[wn]=null,this[oc]=null,this[v]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(e){W.brandCheck(this,A),W.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"}),e=W.converters.Blob(e,{strict:!1}),yn(this,e,"ArrayBuffer")}readAsBinaryString(e){W.brandCheck(this,A),W.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"}),e=W.converters.Blob(e,{strict:!1}),yn(this,e,"BinaryString")}readAsText(e,t=void 0){W.brandCheck(this,A),W.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"}),e=W.converters.Blob(e,{strict:!1}),t!==void 0&&(t=W.converters.DOMString(t)),yn(this,e,"Text",t)}readAsDataURL(e){W.brandCheck(this,A),W.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"}),e=W.converters.Blob(e,{strict:!1}),yn(this,e,"DataURL")}abort(){if(this[ct]==="empty"||this[ct]==="done"){this[wn]=null;return}this[ct]==="loading"&&(this[ct]="done",this[wn]=null),this[zR]=!0,ic("abort",this),this[ct]!=="loading"&&ic("loadend",this)}get readyState(){switch(W.brandCheck(this,A),this[ct]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return W.brandCheck(this,A),this[wn]}get error(){return W.brandCheck(this,A),this[oc]}get onloadend(){return W.brandCheck(this,A),this[v].loadend}set onloadend(e){W.brandCheck(this,A),this[v].loadend&&this.removeEventListener("loadend",this[v].loadend),typeof e=="function"?(this[v].loadend=e,this.addEventListener("loadend",e)):this[v].loadend=null}get onerror(){return W.brandCheck(this,A),this[v].error}set onerror(e){W.brandCheck(this,A),this[v].error&&this.removeEventListener("error",this[v].error),typeof e=="function"?(this[v].error=e,this.addEventListener("error",e)):this[v].error=null}get onloadstart(){return W.brandCheck(this,A),this[v].loadstart}set onloadstart(e){W.brandCheck(this,A),this[v].loadstart&&this.removeEventListener("loadstart",this[v].loadstart),typeof e=="function"?(this[v].loadstart=e,this.addEventListener("loadstart",e)):this[v].loadstart=null}get onprogress(){return W.brandCheck(this,A),this[v].progress}set onprogress(e){W.brandCheck(this,A),this[v].progress&&this.removeEventListener("progress",this[v].progress),typeof e=="function"?(this[v].progress=e,this.addEventListener("progress",e)):this[v].progress=null}get onload(){return W.brandCheck(this,A),this[v].load}set onload(e){W.brandCheck(this,A),this[v].load&&this.removeEventListener("load",this[v].load),typeof e=="function"?(this[v].load=e,this.addEventListener("load",e)):this[v].load=null}get onabort(){return W.brandCheck(this,A),this[v].abort}set onabort(e){W.brandCheck(this,A),this[v].abort&&this.removeEventListener("abort",this[v].abort),typeof e=="function"?(this[v].abort=e,this.addEventListener("abort",e)):this[v].abort=null}};ae.EMPTY=ae.prototype.EMPTY=0;ae.LOADING=ae.prototype.LOADING=1;ae.DONE=ae.prototype.DONE=2;Object.defineProperties(ae.prototype,{EMPTY:tr,LOADING:tr,DONE:tr,readAsArrayBuffer:MA,readAsBinaryString:MA,readAsText:MA,readAsDataURL:MA,abort:MA,readyState:MA,result:MA,error:MA,onloadstart:MA,onprogress:MA,onload:MA,onabort:MA,onerror:MA,onloadend:MA,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(ae,{EMPTY:tr,LOADING:tr,DONE:tr});gc.exports={FileReader:ae}});var Dn=c((RS,Ec)=>{"use strict";Ec.exports={kConstruct:Symbol("constructable")}});var Bc=c((kS,Cc)=>{"use strict";var $R=require("assert"),{URLSerializer:ac}=ge(),{isValidHeaderName:Ak}=jA();function ek(A,e,t=!1){let r=ac(A,t),s=ac(e,t);return r===s}function tk(A){$R(A!==null);let e=[];for(let t of A.split(",")){if(t=t.trim(),t.length){if(!Ak(t))continue}else continue;e.push(t)}return e}Cc.exports={urlEquals:ek,fieldValues:tk}});var fc=c((FS,uc)=>{"use strict";var{kConstruct:rk}=Dn(),{urlEquals:sk,fieldValues:Xg}=Bc(),{kEnumerableProperty:ht,isDisturbed:nk}=G(),{kHeadersList:Ic}=$(),{webidl:p}=DA(),{Response:hc,cloneResponse:ik}=Qn(),{Request:pe}=Wr(),{kState:FA,kHeaders:pn,kGuard:cc,kRealm:ok}=Ne(),{fetching:gk}=fn(),{urlIsHttpHttpsScheme:Rn,createDeferredPromise:rr,readAllBytes:Qk}=jA(),Kg=require("assert"),{getGlobalDispatcher:Ek}=Xt(),kn=class A{#A;constructor(){arguments[0]!==rk&&p.illegalConstructor(),this.#A=arguments[1]}async match(e,t={}){p.brandCheck(this,A),p.argumentLengthCheck(arguments,1,{header:"Cache.match"}),e=p.converters.RequestInfo(e),t=p.converters.CacheQueryOptions(t);let r=await this.matchAll(e,t);if(r.length!==0)return r[0]}async matchAll(e=void 0,t={}){p.brandCheck(this,A),e!==void 0&&(e=p.converters.RequestInfo(e)),t=p.converters.CacheQueryOptions(t);let r=null;if(e!==void 0)if(e instanceof pe){if(r=e[FA],r.method!=="GET"&&!t.ignoreMethod)return[]}else typeof e=="string"&&(r=new pe(e)[FA]);let s=[];if(e===void 0)for(let i of this.#A)s.push(i[1]);else{let i=this.#r(r,t);for(let o of i)s.push(o[1])}let n=[];for(let i of s){let o=new hc(i.body?.source??null),g=o[FA].body;o[FA]=i,o[FA].body=g,o[pn][Ic]=i.headersList,o[pn][cc]="immutable",n.push(o)}return Object.freeze(n)}async add(e){p.brandCheck(this,A),p.argumentLengthCheck(arguments,1,{header:"Cache.add"}),e=p.converters.RequestInfo(e);let t=[e];return await this.addAll(t)}async addAll(e){p.brandCheck(this,A),p.argumentLengthCheck(arguments,1,{header:"Cache.addAll"}),e=p.converters["sequence<RequestInfo>"](e);let t=[],r=[];for(let E of e){if(typeof E=="string")continue;let C=E[FA];if(!Rn(C.url)||C.method!=="GET")throw p.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}let s=[];for(let E of e){let C=new pe(E)[FA];if(!Rn(C.url))throw p.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."});C.initiator="fetch",C.destination="subresource",r.push(C);let B=rr();s.push(gk({request:C,dispatcher:Ek(),processResponse(I){if(I.type==="error"||I.status===206||I.status<200||I.status>299)B.reject(p.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(I.headersList.contains("vary")){let h=Xg(I.headersList.get("vary"));for(let l of h)if(l==="*"){B.reject(p.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let u of s)u.abort();return}}},processResponseEndOfBody(I){if(I.aborted){B.reject(new DOMException("aborted","AbortError"));return}B.resolve(I)}})),t.push(B.promise)}let i=await Promise.all(t),o=[],g=0;for(let E of i){let C={type:"put",request:r[g],response:E};o.push(C),g++}let a=rr(),Q=null;try{this.#t(o)}catch(E){Q=E}return queueMicrotask(()=>{Q===null?a.resolve(void 0):a.reject(Q)}),a.promise}async put(e,t){p.brandCheck(this,A),p.argumentLengthCheck(arguments,2,{header:"Cache.put"}),e=p.converters.RequestInfo(e),t=p.converters.Response(t);let r=null;if(e instanceof pe?r=e[FA]:r=new pe(e)[FA],!Rn(r.url)||r.method!=="GET")throw p.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"});let s=t[FA];if(s.status===206)throw p.errors.exception({header:"Cache.put",message:"Got 206 status"});if(s.headersList.contains("vary")){let C=Xg(s.headersList.get("vary"));for(let B of C)if(B==="*")throw p.errors.exception({header:"Cache.put",message:"Got * vary field value"})}if(s.body&&(nk(s.body.stream)||s.body.stream.locked))throw p.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"});let n=ik(s),i=rr();if(s.body!=null){let B=s.body.stream.getReader();Qk(B,I=>i.resolve(I),I=>i.reject(I))}else i.resolve(void 0);let o=[],g={type:"put",request:r,response:n};o.push(g);let a=await i.promise;n.body!=null&&(n.body.source=a);let Q=rr(),E=null;try{this.#t(o)}catch(C){E=C}return queueMicrotask(()=>{E===null?Q.resolve():Q.reject(E)}),Q.promise}async delete(e,t={}){p.brandCheck(this,A),p.argumentLengthCheck(arguments,1,{header:"Cache.delete"}),e=p.converters.RequestInfo(e),t=p.converters.CacheQueryOptions(t);let r=null;if(e instanceof pe){if(r=e[FA],r.method!=="GET"&&!t.ignoreMethod)return!1}else Kg(typeof e=="string"),r=new pe(e)[FA];let s=[],n={type:"delete",request:r,options:t};s.push(n);let i=rr(),o=null,g;try{g=this.#t(s)}catch(a){o=a}return queueMicrotask(()=>{o===null?i.resolve(!!g?.length):i.reject(o)}),i.promise}async keys(e=void 0,t={}){p.brandCheck(this,A),e!==void 0&&(e=p.converters.RequestInfo(e)),t=p.converters.CacheQueryOptions(t);let r=null;if(e!==void 0)if(e instanceof pe){if(r=e[FA],r.method!=="GET"&&!t.ignoreMethod)return[]}else typeof e=="string"&&(r=new pe(e)[FA]);let s=rr(),n=[];if(e===void 0)for(let i of this.#A)n.push(i[0]);else{let i=this.#r(r,t);for(let o of i)n.push(o[0])}return queueMicrotask(()=>{let i=[];for(let o of n){let g=new pe("https://a");g[FA]=o,g[pn][Ic]=o.headersList,g[pn][cc]="immutable",g[ok]=o.client,i.push(g)}s.resolve(Object.freeze(i))}),s.promise}#t(e){let t=this.#A,r=[...t],s=[],n=[];try{for(let i of e){if(i.type!=="delete"&&i.type!=="put")throw p.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(i.type==="delete"&&i.response!=null)throw p.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#r(i.request,i.options,s).length)throw new DOMException("???","InvalidStateError");let o;if(i.type==="delete"){if(o=this.#r(i.request,i.options),o.length===0)return[];for(let g of o){let a=t.indexOf(g);Kg(a!==-1),t.splice(a,1)}}else if(i.type==="put"){if(i.response==null)throw p.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let g=i.request;if(!Rn(g.url))throw p.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(g.method!=="GET")throw p.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(i.options!=null)throw p.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});o=this.#r(i.request);for(let a of o){let Q=t.indexOf(a);Kg(Q!==-1),t.splice(Q,1)}t.push([i.request,i.response]),s.push([i.request,i.response])}n.push([i.request,i.response])}return n}catch(i){throw this.#A.length=0,this.#A=r,i}}#r(e,t,r){let s=[],n=r??this.#A;for(let i of n){let[o,g]=i;this.#e(e,o,g,t)&&s.push(i)}return s}#e(e,t,r=null,s){let n=new URL(e.url),i=new URL(t.url);if(s?.ignoreSearch&&(i.search="",n.search=""),!sk(n,i,!0))return!1;if(r==null||s?.ignoreVary||!r.headersList.contains("vary"))return!0;let o=Xg(r.headersList.get("vary"));for(let g of o){if(g==="*")return!1;let a=t.headersList.get(g),Q=e.headersList.get(g);if(a!==Q)return!1}return!0}};Object.defineProperties(kn.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:ht,matchAll:ht,add:ht,addAll:ht,put:ht,delete:ht,keys:ht});var lc=[{key:"ignoreSearch",converter:p.converters.boolean,defaultValue:!1},{key:"ignoreMethod",converter:p.converters.boolean,defaultValue:!1},{key:"ignoreVary",converter:p.converters.boolean,defaultValue:!1}];p.converters.CacheQueryOptions=p.dictionaryConverter(lc);p.converters.MultiCacheQueryOptions=p.dictionaryConverter([...lc,{key:"cacheName",converter:p.converters.DOMString}]);p.converters.Response=p.interfaceConverter(hc);p.converters["sequence<RequestInfo>"]=p.sequenceConverter(p.converters.RequestInfo);uc.exports={Cache:kn}});var yc=c((NS,dc)=>{"use strict";var{kConstruct:_r}=Dn(),{Cache:Fn}=fc(),{webidl:NA}=DA(),{kEnumerableProperty:Zr}=G(),Nn=class A{#A=new Map;constructor(){arguments[0]!==_r&&NA.illegalConstructor()}async match(e,t={}){if(NA.brandCheck(this,A),NA.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"}),e=NA.converters.RequestInfo(e),t=NA.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#A.has(t.cacheName)){let r=this.#A.get(t.cacheName);return await new Fn(_r,r).match(e,t)}}else for(let r of this.#A.values()){let n=await new Fn(_r,r).match(e,t);if(n!==void 0)return n}}async has(e){return NA.brandCheck(this,A),NA.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"}),e=NA.converters.DOMString(e),this.#A.has(e)}async open(e){if(NA.brandCheck(this,A),NA.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"}),e=NA.converters.DOMString(e),this.#A.has(e)){let r=this.#A.get(e);return new Fn(_r,r)}let t=[];return this.#A.set(e,t),new Fn(_r,t)}async delete(e){return NA.brandCheck(this,A),NA.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"}),e=NA.converters.DOMString(e),this.#A.delete(e)}async keys(){return NA.brandCheck(this,A),[...this.#A.keys()]}};Object.defineProperties(Nn.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:Zr,has:Zr,open:Zr,delete:Zr,keys:Zr});dc.exports={CacheStorage:Nn}});var Dc=c((mS,wc)=>{"use strict";wc.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var jg=c((bS,kc)=>{"use strict";var pc=require("assert"),{kHeadersList:Rc}=$();function ak(A){if(A.length===0)return!1;for(let e of A){let t=e.charCodeAt(0);if(t>=0||t<=8||t>=10||t<=31||t===127)return!1}}function Ck(A){for(let e of A){let t=e.charCodeAt(0);if(t<=32||t>127||e==="("||e===")"||e===">"||e==="<"||e==="@"||e===","||e===";"||e===":"||e==="\\"||e==='"'||e==="/"||e==="["||e==="]"||e==="?"||e==="="||e==="{"||e==="}")throw new Error("Invalid cookie name")}}function Bk(A){for(let e of A){let t=e.charCodeAt(0);if(t<33||t===34||t===44||t===59||t===92||t>126)throw new Error("Invalid header value")}}function Ik(A){for(let e of A)if(e.charCodeAt(0)<33||e===";")throw new Error("Invalid cookie path")}function ck(A){if(A.startsWith("-")||A.endsWith(".")||A.endsWith("-"))throw new Error("Invalid cookie domain")}function hk(A){typeof A=="number"&&(A=new Date(A));let e=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],r=e[A.getUTCDay()],s=A.getUTCDate().toString().padStart(2,"0"),n=t[A.getUTCMonth()],i=A.getUTCFullYear(),o=A.getUTCHours().toString().padStart(2,"0"),g=A.getUTCMinutes().toString().padStart(2,"0"),a=A.getUTCSeconds().toString().padStart(2,"0");return`${r}, ${s} ${n} ${i} ${o}:${g}:${a} GMT`}function lk(A){if(A<0)throw new Error("Invalid cookie max-age")}function uk(A){if(A.name.length===0)return null;Ck(A.name),Bk(A.value);let e=[`${A.name}=${A.value}`];A.name.startsWith("__Secure-")&&(A.secure=!0),A.name.startsWith("__Host-")&&(A.secure=!0,A.domain=null,A.path="/"),A.secure&&e.push("Secure"),A.httpOnly&&e.push("HttpOnly"),typeof A.maxAge=="number"&&(lk(A.maxAge),e.push(`Max-Age=${A.maxAge}`)),A.domain&&(ck(A.domain),e.push(`Domain=${A.domain}`)),A.path&&(Ik(A.path),e.push(`Path=${A.path}`)),A.expires&&A.expires.toString()!=="Invalid Date"&&e.push(`Expires=${hk(A.expires)}`),A.sameSite&&e.push(`SameSite=${A.sameSite}`);for(let t of A.unparsed){if(!t.includes("="))throw new Error("Invalid unparsed");let[r,...s]=t.split("=");e.push(`${r.trim()}=${s.join("=")}`)}return e.join("; ")}var mn;function fk(A){if(A[Rc])return A[Rc];mn||(mn=Object.getOwnPropertySymbols(A).find(t=>t.description==="headers list"),pc(mn,"Headers cannot be parsed"));let e=A[mn];return pc(e),e}kc.exports={isCTLExcludingHtab:ak,stringify:uk,getHeadersList:fk}});var Nc=c((SS,Fc)=>{"use strict";var{maxNameValuePairSize:dk,maxAttributeValueSize:yk}=Dc(),{isCTLExcludingHtab:wk}=jg(),{collectASequenceOfCodePointsFast:bn}=ge(),Dk=require("assert");function pk(A){if(wk(A))return null;let e="",t="",r="",s="";if(A.includes(";")){let n={position:0};e=bn(";",A,n),t=A.slice(n.position)}else e=A;if(!e.includes("="))s=e;else{let n={position:0};r=bn("=",e,n),s=e.slice(n.position+1)}return r=r.trim(),s=s.trim(),r.length+s.length>dk?null:{name:r,value:s,...sr(t)}}function sr(A,e={}){if(A.length===0)return e;Dk(A[0]===";"),A=A.slice(1);let t="";A.includes(";")?(t=bn(";",A,{position:0}),A=A.slice(t.length)):(t=A,A="");let r="",s="";if(t.includes("=")){let i={position:0};r=bn("=",t,i),s=t.slice(i.position+1)}else r=t;if(r=r.trim(),s=s.trim(),s.length>yk)return sr(A,e);let n=r.toLowerCase();if(n==="expires"){let i=new Date(s);e.expires=i}else if(n==="max-age"){let i=s.charCodeAt(0);if((i<48||i>57)&&s[0]!=="-"||!/^\d+$/.test(s))return sr(A,e);let o=Number(s);e.maxAge=o}else if(n==="domain"){let i=s;i[0]==="."&&(i=i.slice(1)),i=i.toLowerCase(),e.domain=i}else if(n==="path"){let i="";s.length===0||s[0]!=="/"?i="/":i=s,e.path=i}else if(n==="secure")e.secure=!0;else if(n==="httponly")e.httpOnly=!0;else if(n==="samesite"){let i="Default",o=s.toLowerCase();o.includes("none")&&(i="None"),o.includes("strict")&&(i="Strict"),o.includes("lax")&&(i="Lax"),e.sameSite=i}else e.unparsed??=[],e.unparsed.push(`${r}=${s}`);return sr(A,e)}Fc.exports={parseSetCookie:pk,parseUnparsedAttributes:sr}});var Uc=c((US,Sc)=>{"use strict";var{parseSetCookie:Rk}=Nc(),{stringify:mc,getHeadersList:kk}=jg(),{webidl:J}=DA(),{Headers:Sn}=Bt();function Fk(A){J.argumentLengthCheck(arguments,1,{header:"getCookies"}),J.brandCheck(A,Sn,{strict:!1});let e=A.get("cookie"),t={};if(!e)return t;for(let r of e.split(";")){let[s,...n]=r.split("=");t[s.trim()]=n.join("=")}return t}function Nk(A,e,t){J.argumentLengthCheck(arguments,2,{header:"deleteCookie"}),J.brandCheck(A,Sn,{strict:!1}),e=J.converters.DOMString(e),t=J.converters.DeleteCookieAttributes(t),bc(A,{name:e,value:"",expires:new Date(0),...t})}function mk(A){J.argumentLengthCheck(arguments,1,{header:"getSetCookies"}),J.brandCheck(A,Sn,{strict:!1});let e=kk(A).cookies;return e?e.map(t=>Rk(Array.isArray(t)?t[1]:t)):[]}function bc(A,e){J.argumentLengthCheck(arguments,2,{header:"setCookie"}),J.brandCheck(A,Sn,{strict:!1}),e=J.converters.Cookie(e),mc(e)&&A.append("Set-Cookie",mc(e))}J.converters.DeleteCookieAttributes=J.dictionaryConverter([{converter:J.nullableConverter(J.converters.DOMString),key:"path",defaultValue:null},{converter:J.nullableConverter(J.converters.DOMString),key:"domain",defaultValue:null}]);J.converters.Cookie=J.dictionaryConverter([{converter:J.converters.DOMString,key:"name"},{converter:J.converters.DOMString,key:"value"},{converter:J.nullableConverter(A=>typeof A=="number"?J.converters["unsigned long long"](A):new Date(A)),key:"expires",defaultValue:null},{converter:J.nullableConverter(J.converters["long long"]),key:"maxAge",defaultValue:null},{converter:J.nullableConverter(J.converters.DOMString),key:"domain",defaultValue:null},{converter:J.nullableConverter(J.converters.DOMString),key:"path",defaultValue:null},{converter:J.nullableConverter(J.converters.boolean),key:"secure",defaultValue:null},{converter:J.nullableConverter(J.converters.boolean),key:"httpOnly",defaultValue:null},{converter:J.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:J.sequenceConverter(J.converters.DOMString),key:"unparsed",defaultValue:[]}]);Sc.exports={getCookies:Fk,deleteCookie:Nk,getSetCookies:mk,setCookie:bc}});var nr=c((LS,Lc)=>{"use strict";var bk="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",Sk={enumerable:!0,writable:!1,configurable:!1},Uk={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},Lk={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},Mk=2**16-1,Yk={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},Jk=Buffer.allocUnsafe(0);Lc.exports={uid:bk,staticPropertyDescriptors:Sk,states:Uk,opcodes:Lk,maxUnsigned16Bit:Mk,parserStates:Yk,emptyBuffer:Jk}});var Xr=c((MS,Mc)=>{"use strict";Mc.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var $g=c((YS,Yc)=>{"use strict";var{webidl:R}=DA(),{kEnumerableProperty:YA}=G(),{MessagePort:Gk}=require("worker_threads"),Un=class A extends Event{#A;constructor(e,t={}){R.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"}),e=R.converters.DOMString(e),t=R.converters.MessageEventInit(t),super(e,t),this.#A=t}get data(){return R.brandCheck(this,A),this.#A.data}get origin(){return R.brandCheck(this,A),this.#A.origin}get lastEventId(){return R.brandCheck(this,A),this.#A.lastEventId}get source(){return R.brandCheck(this,A),this.#A.source}get ports(){return R.brandCheck(this,A),Object.isFrozen(this.#A.ports)||Object.freeze(this.#A.ports),this.#A.ports}initMessageEvent(e,t=!1,r=!1,s=null,n="",i="",o=null,g=[]){return R.brandCheck(this,A),R.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"}),new A(e,{bubbles:t,cancelable:r,data:s,origin:n,lastEventId:i,source:o,ports:g})}},Ln=class A extends Event{#A;constructor(e,t={}){R.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"}),e=R.converters.DOMString(e),t=R.converters.CloseEventInit(t),super(e,t),this.#A=t}get wasClean(){return R.brandCheck(this,A),this.#A.wasClean}get code(){return R.brandCheck(this,A),this.#A.code}get reason(){return R.brandCheck(this,A),this.#A.reason}},Mn=class A extends Event{#A;constructor(e,t){R.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"}),super(e,t),e=R.converters.DOMString(e),t=R.converters.ErrorEventInit(t??{}),this.#A=t}get message(){return R.brandCheck(this,A),this.#A.message}get filename(){return R.brandCheck(this,A),this.#A.filename}get lineno(){return R.brandCheck(this,A),this.#A.lineno}get colno(){return R.brandCheck(this,A),this.#A.colno}get error(){return R.brandCheck(this,A),this.#A.error}};Object.defineProperties(Un.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:YA,origin:YA,lastEventId:YA,source:YA,ports:YA,initMessageEvent:YA});Object.defineProperties(Ln.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:YA,code:YA,wasClean:YA});Object.defineProperties(Mn.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:YA,filename:YA,lineno:YA,colno:YA,error:YA});R.converters.MessagePort=R.interfaceConverter(Gk);R.converters["sequence<MessagePort>"]=R.sequenceConverter(R.converters.MessagePort);var zg=[{key:"bubbles",converter:R.converters.boolean,defaultValue:!1},{key:"cancelable",converter:R.converters.boolean,defaultValue:!1},{key:"composed",converter:R.converters.boolean,defaultValue:!1}];R.converters.MessageEventInit=R.dictionaryConverter([...zg,{key:"data",converter:R.converters.any,defaultValue:null},{key:"origin",converter:R.converters.USVString,defaultValue:""},{key:"lastEventId",converter:R.converters.DOMString,defaultValue:""},{key:"source",converter:R.nullableConverter(R.converters.MessagePort),defaultValue:null},{key:"ports",converter:R.converters["sequence<MessagePort>"],get defaultValue(){return[]}}]);R.converters.CloseEventInit=R.dictionaryConverter([...zg,{key:"wasClean",converter:R.converters.boolean,defaultValue:!1},{key:"code",converter:R.converters["unsigned short"],defaultValue:0},{key:"reason",converter:R.converters.USVString,defaultValue:""}]);R.converters.ErrorEventInit=R.dictionaryConverter([...zg,{key:"message",converter:R.converters.DOMString,defaultValue:""},{key:"filename",converter:R.converters.USVString,defaultValue:""},{key:"lineno",converter:R.converters["unsigned long"],defaultValue:0},{key:"colno",converter:R.converters["unsigned long"],defaultValue:0},{key:"error",converter:R.converters.any}]);Yc.exports={MessageEvent:Un,CloseEvent:Ln,ErrorEvent:Mn}});var Gn=c((JS,Tc)=>{"use strict";var{kReadyState:Yn,kController:Tk,kResponse:vk,kBinaryType:Hk,kWebSocketURL:Vk}=Xr(),{states:Jn,opcodes:Jc}=nr(),{MessageEvent:xk,ErrorEvent:qk}=$g();function Wk(A){return A[Yn]===Jn.OPEN}function Ok(A){return A[Yn]===Jn.CLOSING}function Pk(A){return A[Yn]===Jn.CLOSED}function AQ(A,e,t=Event,r){let s=new t(A,r);e.dispatchEvent(s)}function _k(A,e,t){if(A[Yn]!==Jn.OPEN)return;let r;if(e===Jc.TEXT)try{r=new TextDecoder("utf-8",{fatal:!0}).decode(t)}catch{Gc(A,"Received invalid UTF-8 in text frame.");return}else e===Jc.BINARY&&(A[Hk]==="blob"?r=new Blob([t]):r=new Uint8Array(t).buffer);AQ("message",A,xk,{origin:A[Vk].origin,data:r})}function Zk(A){if(A.length===0)return!1;for(let e of A){let t=e.charCodeAt(0);if(t<33||t>126||e==="("||e===")"||e==="<"||e===">"||e==="@"||e===","||e===";"||e===":"||e==="\\"||e==='"'||e==="/"||e==="["||e==="]"||e==="?"||e==="="||e==="{"||e==="}"||t===32||t===9)return!1}return!0}function Xk(A){return A>=1e3&&A<1015?A!==1004&&A!==1005&&A!==1006:A>=3e3&&A<=4999}function Gc(A,e){let{[Tk]:t,[vk]:r}=A;t.abort(),r?.socket&&!r.socket.destroyed&&r.socket.destroy(),e&&AQ("error",A,qk,{error:new Error(e)})}Tc.exports={isEstablished:Wk,isClosing:Ok,isClosed:Pk,fireEvent:AQ,isValidSubprotocol:Zk,isValidStatusCode:Xk,failWebsocketConnection:Gc,websocketMessageReceived:_k}});var Wc=c((GS,qc)=>{"use strict";var{randomBytes:Kk,createHash:jk}=require("crypto"),eQ=require("diagnostics_channel"),{uid:zk,states:Hc}=nr(),{kReadyState:Vc,kSentClose:vc,kByteParser:xc,kReceivedClose:$k}=Xr(),{fireEvent:AF,failWebsocketConnection:lt}=Gn(),{CloseEvent:eF}=$g(),{makeRequest:tF}=Wr(),{fetching:rF}=fn(),{Headers:sF}=Bt(),{getGlobalDispatcher:nF}=Xt(),{kHeadersList:iF}=$(),Je={};Je.open=eQ.channel("undici:websocket:open");Je.close=eQ.channel("undici:websocket:close");Je.socketError=eQ.channel("undici:websocket:socket_error");function oF(A,e,t,r,s){let n=A;n.protocol=A.protocol==="ws:"?"http:":"https:";let i=tF({urlList:[n],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(s.headers){let Q=new sF(s.headers)[iF];i.headersList=Q}let o=Kk(16).toString("base64");i.headersList.append("sec-websocket-key",o),i.headersList.append("sec-websocket-version","13");for(let Q of e)i.headersList.append("sec-websocket-protocol",Q);let g="";return rF({request:i,useParallelQueue:!0,dispatcher:s.dispatcher??nF(),processResponse(Q){if(Q.type==="error"||Q.status!==101){lt(t,"Received network error or non-101 status code.");return}if(e.length!==0&&!Q.headersList.get("Sec-WebSocket-Protocol")){lt(t,"Server did not respond with sent protocols.");return}if(Q.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){lt(t,'Server did not set Upgrade header to "websocket".');return}if(Q.headersList.get("Connection")?.toLowerCase()!=="upgrade"){lt(t,'Server did not set Connection header to "upgrade".');return}let E=Q.headersList.get("Sec-WebSocket-Accept"),C=jk("sha1").update(o+zk).digest("base64");if(E!==C){lt(t,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let B=Q.headersList.get("Sec-WebSocket-Extensions");if(B!==null&&B!==g){lt(t,"Received different permessage-deflate than the one set.");return}let I=Q.headersList.get("Sec-WebSocket-Protocol");if(I!==null&&I!==i.headersList.get("Sec-WebSocket-Protocol")){lt(t,"Protocol was not set in the opening handshake.");return}Q.socket.on("data",gF),Q.socket.on("close",QF),Q.socket.on("error",EF),Je.open.hasSubscribers&&Je.open.publish({address:Q.socket.address(),protocol:I,extensions:B}),r(Q)}})}function gF(A){this.ws[xc].write(A)||this.pause()}function QF(){let{ws:A}=this,e=A[vc]&&A[$k],t=1005,r="",s=A[xc].closingInfo;s?(t=s.code??1005,r=s.reason):A[vc]||(t=1006),A[Vc]=Hc.CLOSED,AF("close",A,eF,{wasClean:e,code:t,reason:r}),Je.close.hasSubscribers&&Je.close.publish({websocket:A,code:t,reason:r})}function EF(A){let{ws:e}=this;e[Vc]=Hc.CLOSING,Je.socketError.hasSubscribers&&Je.socketError.publish(A),this.destroy()}qc.exports={establishWebSocketConnection:oF}});var rQ=c((TS,Oc)=>{"use strict";var{randomBytes:aF}=require("crypto"),{maxUnsigned16Bit:CF}=nr(),tQ=class{constructor(e){this.frameData=e,this.maskKey=aF(4)}createFrame(e){let t=this.frameData?.byteLength??0,r=t,s=6;t>CF?(s+=8,r=127):t>125&&(s+=2,r=126);let n=Buffer.allocUnsafe(t+s);n[0]=n[1]=0,n[0]|=128,n[0]=(n[0]&240)+e;n[s-4]=this.maskKey[0],n[s-3]=this.maskKey[1],n[s-2]=this.maskKey[2],n[s-1]=this.maskKey[3],n[1]=r,r===126?n.writeUInt16BE(t,2):r===127&&(n[2]=n[3]=0,n.writeUIntBE(t,4,6)),n[1]|=128;for(let i=0;i<t;i++)n[s+i]=this.frameData[i]^this.maskKey[i%4];return n}};Oc.exports={WebsocketFrameSend:tQ}});var Ah=c((vS,$c)=>{"use strict";var{Writable:BF}=require("stream"),zc=require("diagnostics_channel"),{parserStates:re,opcodes:se,states:IF,emptyBuffer:cF}=nr(),{kReadyState:hF,kSentClose:Pc,kResponse:Zc,kReceivedClose:Xc}=Xr(),{isValidStatusCode:Kc,failWebsocketConnection:Kr,websocketMessageReceived:lF}=Gn(),{WebsocketFrameSend:jc}=rQ(),ir={};ir.ping=zc.channel("undici:websocket:ping");ir.pong=zc.channel("undici:websocket:pong");var sQ=class extends BF{#A=[];#t=0;#r=re.INFO;#e={};#s=[];constructor(e){super(),this.ws=e}_write(e,t,r){this.#A.push(e),this.#t+=e.length,this.run(r)}run(e){for(;;){if(this.#r===re.INFO){if(this.#t<2)return e();let t=this.consume(2);if(this.#e.fin=(t[0]&128)!==0,this.#e.opcode=t[0]&15,this.#e.originalOpcode??=this.#e.opcode,this.#e.fragmented=!this.#e.fin&&this.#e.opcode!==se.CONTINUATION,this.#e.fragmented&&this.#e.opcode!==se.BINARY&&this.#e.opcode!==se.TEXT){Kr(this.ws,"Invalid frame type was fragmented.");return}let r=t[1]&127;if(r<=125?(this.#e.payloadLength=r,this.#r=re.READ_DATA):r===126?this.#r=re.PAYLOADLENGTH_16:r===127&&(this.#r=re.PAYLOADLENGTH_64),this.#e.fragmented&&r>125){Kr(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#e.opcode===se.PING||this.#e.opcode===se.PONG||this.#e.opcode===se.CLOSE)&&r>125){Kr(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#e.opcode===se.CLOSE){if(r===1){Kr(this.ws,"Received close frame with a 1-byte body.");return}let s=this.consume(r);if(this.#e.closeInfo=this.parseCloseBody(!1,s),!this.ws[Pc]){let n=Buffer.allocUnsafe(2);n.writeUInt16BE(this.#e.closeInfo.code,0);let i=new jc(n);this.ws[Zc].socket.write(i.createFrame(se.CLOSE),o=>{o||(this.ws[Pc]=!0)})}this.ws[hF]=IF.CLOSING,this.ws[Xc]=!0,this.end();return}else if(this.#e.opcode===se.PING){let s=this.consume(r);if(!this.ws[Xc]){let n=new jc(s);this.ws[Zc].socket.write(n.createFrame(se.PONG)),ir.ping.hasSubscribers&&ir.ping.publish({payload:s})}if(this.#r=re.INFO,this.#t>0)continue;e();return}else if(this.#e.opcode===se.PONG){let s=this.consume(r);if(ir.pong.hasSubscribers&&ir.pong.publish({payload:s}),this.#t>0)continue;e();return}}else if(this.#r===re.PAYLOADLENGTH_16){if(this.#t<2)return e();let t=this.consume(2);this.#e.payloadLength=t.readUInt16BE(0),this.#r=re.READ_DATA}else if(this.#r===re.PAYLOADLENGTH_64){if(this.#t<8)return e();let t=this.consume(8),r=t.readUInt32BE(0);if(r>2**31-1){Kr(this.ws,"Received payload length > 2^31 bytes.");return}let s=t.readUInt32BE(4);this.#e.payloadLength=(r<<8)+s,this.#r=re.READ_DATA}else if(this.#r===re.READ_DATA){if(this.#t<this.#e.payloadLength)return e();if(this.#t>=this.#e.payloadLength){let t=this.consume(this.#e.payloadLength);if(this.#s.push(t),!this.#e.fragmented||this.#e.fin&&this.#e.opcode===se.CONTINUATION){let r=Buffer.concat(this.#s);lF(this.ws,this.#e.originalOpcode,r),this.#e={},this.#s.length=0}this.#r=re.INFO}}if(!(this.#t>0)){e();break}}}consume(e){if(e>this.#t)return null;if(e===0)return cF;if(this.#A[0].length===e)return this.#t-=this.#A[0].length,this.#A.shift();let t=Buffer.allocUnsafe(e),r=0;for(;r!==e;){let s=this.#A[0],{length:n}=s;if(n+r===e){t.set(this.#A.shift(),r);break}else if(n+r>e){t.set(s.subarray(0,e-r),r),this.#A[0]=s.subarray(e-r);break}else t.set(this.#A.shift(),r),r+=s.length}return this.#t-=e,t}parseCloseBody(e,t){let r;if(t.length>=2&&(r=t.readUInt16BE(0)),e)return Kc(r)?{code:r}:null;let s=t.subarray(2);if(s[0]===239&&s[1]===187&&s[2]===191&&(s=s.subarray(3)),r!==void 0&&!Kc(r))return null;try{s=new TextDecoder("utf-8",{fatal:!0}).decode(s)}catch{return null}return{code:r,reason:s}}get closingInfo(){return this.#e.closeInfo}};$c.exports={ByteParser:sQ}});var gh=c((HS,oh)=>{"use strict";var{webidl:m}=DA(),{DOMException:je}=Ve(),{URLSerializer:uF}=ge(),{staticPropertyDescriptors:ze,states:or,opcodes:jr,emptyBuffer:fF}=nr(),{kWebSocketURL:eh,kReadyState:Ge,kController:dF,kBinaryType:Tn,kResponse:vn,kSentClose:yF,kByteParser:wF}=Xr(),{isEstablished:th,isClosing:rh,isValidSubprotocol:DF,failWebsocketConnection:pF,fireEvent:RF}=Gn(),{establishWebSocketConnection:kF}=Wc(),{WebsocketFrameSend:zr}=rQ(),{ByteParser:FF}=Ah(),{kEnumerableProperty:ne,isBlobLike:nh}=G(),{getGlobalDispatcher:NF}=Xt(),{types:ih}=require("util"),sh=!1,ZA=class A extends EventTarget{#A={open:null,error:null,close:null,message:null};#t=0;#r="";#e="";constructor(e,t=[]){super(),m.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"}),sh||(sh=!0,process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"}));let r=m.converters["DOMString or sequence<DOMString> or WebSocketInit"](t);e=m.converters.USVString(e),t=r.protocols;let s;try{s=new URL(e)}catch(n){throw new je(n,"SyntaxError")}if(s.protocol!=="ws:"&&s.protocol!=="wss:")throw new je(`Expected a ws: or wss: protocol, got ${s.protocol}`,"SyntaxError");if(s.hash)throw new je("Got fragment","SyntaxError");if(typeof t=="string"&&(t=[t]),t.length!==new Set(t.map(n=>n.toLowerCase())).size)throw new je("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(t.length>0&&!t.every(n=>DF(n)))throw new je("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[eh]=s,this[dF]=kF(s,t,this,n=>this.#s(n),r),this[Ge]=A.CONNECTING,this[Tn]="blob"}close(e=void 0,t=void 0){if(m.brandCheck(this,A),e!==void 0&&(e=m.converters["unsigned short"](e,{clamp:!0})),t!==void 0&&(t=m.converters.USVString(t)),e!==void 0&&e!==1e3&&(e<3e3||e>4999))throw new je("invalid code","InvalidAccessError");let r=0;if(t!==void 0&&(r=Buffer.byteLength(t),r>123))throw new je(`Reason must be less than 123 bytes; received ${r}`,"SyntaxError");if(!(this[Ge]===A.CLOSING||this[Ge]===A.CLOSED))if(!th(this))pF(this,"Connection was closed before it was established."),this[Ge]=A.CLOSING;else if(rh(this))this[Ge]=A.CLOSING;else{let s=new zr;e!==void 0&&t===void 0?(s.frameData=Buffer.allocUnsafe(2),s.frameData.writeUInt16BE(e,0)):e!==void 0&&t!==void 0?(s.frameData=Buffer.allocUnsafe(2+r),s.frameData.writeUInt16BE(e,0),s.frameData.write(t,2,"utf-8")):s.frameData=fF,this[vn].socket.write(s.createFrame(jr.CLOSE),i=>{i||(this[yF]=!0)}),this[Ge]=or.CLOSING}}send(e){if(m.brandCheck(this,A),m.argumentLengthCheck(arguments,1,{header:"WebSocket.send"}),e=m.converters.WebSocketSendData(e),this[Ge]===A.CONNECTING)throw new je("Sent before connected.","InvalidStateError");if(!th(this)||rh(this))return;let t=this[vn].socket;if(typeof e=="string"){let r=Buffer.from(e),n=new zr(r).createFrame(jr.TEXT);this.#t+=r.byteLength,t.write(n,()=>{this.#t-=r.byteLength})}else if(ih.isArrayBuffer(e)){let r=Buffer.from(e),n=new zr(r).createFrame(jr.BINARY);this.#t+=r.byteLength,t.write(n,()=>{this.#t-=r.byteLength})}else if(ArrayBuffer.isView(e)){let r=Buffer.from(e,e.byteOffset,e.byteLength),n=new zr(r).createFrame(jr.BINARY);this.#t+=r.byteLength,t.write(n,()=>{this.#t-=r.byteLength})}else if(nh(e)){let r=new zr;e.arrayBuffer().then(s=>{let n=Buffer.from(s);r.frameData=n;let i=r.createFrame(jr.BINARY);this.#t+=n.byteLength,t.write(i,()=>{this.#t-=n.byteLength})})}}get readyState(){return m.brandCheck(this,A),this[Ge]}get bufferedAmount(){return m.brandCheck(this,A),this.#t}get url(){return m.brandCheck(this,A),uF(this[eh])}get extensions(){return m.brandCheck(this,A),this.#e}get protocol(){return m.brandCheck(this,A),this.#r}get onopen(){return m.brandCheck(this,A),this.#A.open}set onopen(e){m.brandCheck(this,A),this.#A.open&&this.removeEventListener("open",this.#A.open),typeof e=="function"?(this.#A.open=e,this.addEventListener("open",e)):this.#A.open=null}get onerror(){return m.brandCheck(this,A),this.#A.error}set onerror(e){m.brandCheck(this,A),this.#A.error&&this.removeEventListener("error",this.#A.error),typeof e=="function"?(this.#A.error=e,this.addEventListener("error",e)):this.#A.error=null}get onclose(){return m.brandCheck(this,A),this.#A.close}set onclose(e){m.brandCheck(this,A),this.#A.close&&this.removeEventListener("close",this.#A.close),typeof e=="function"?(this.#A.close=e,this.addEventListener("close",e)):this.#A.close=null}get onmessage(){return m.brandCheck(this,A),this.#A.message}set onmessage(e){m.brandCheck(this,A),this.#A.message&&this.removeEventListener("message",this.#A.message),typeof e=="function"?(this.#A.message=e,this.addEventListener("message",e)):this.#A.message=null}get binaryType(){return m.brandCheck(this,A),this[Tn]}set binaryType(e){m.brandCheck(this,A),e!=="blob"&&e!=="arraybuffer"?this[Tn]="blob":this[Tn]=e}#s(e){this[vn]=e;let t=new FF(this);t.on("drain",function(){this.ws[vn].socket.resume()}),e.socket.ws=this,this[wF]=t,this[Ge]=or.OPEN;let r=e.headersList.get("sec-websocket-extensions");r!==null&&(this.#e=r);let s=e.headersList.get("sec-websocket-protocol");s!==null&&(this.#r=s),RF("open",this)}};ZA.CONNECTING=ZA.prototype.CONNECTING=or.CONNECTING;ZA.OPEN=ZA.prototype.OPEN=or.OPEN;ZA.CLOSING=ZA.prototype.CLOSING=or.CLOSING;ZA.CLOSED=ZA.prototype.CLOSED=or.CLOSED;Object.defineProperties(ZA.prototype,{CONNECTING:ze,OPEN:ze,CLOSING:ze,CLOSED:ze,url:ne,readyState:ne,bufferedAmount:ne,onopen:ne,onerror:ne,onclose:ne,close:ne,onmessage:ne,binaryType:ne,send:ne,extensions:ne,protocol:ne,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(ZA,{CONNECTING:ze,OPEN:ze,CLOSING:ze,CLOSED:ze});m.converters["sequence<DOMString>"]=m.sequenceConverter(m.converters.DOMString);m.converters["DOMString or sequence<DOMString>"]=function(A){return m.util.Type(A)==="Object"&&Symbol.iterator in A?m.converters["sequence<DOMString>"](A):m.converters.DOMString(A)};m.converters.WebSocketInit=m.dictionaryConverter([{key:"protocols",converter:m.converters["DOMString or sequence<DOMString>"],get defaultValue(){return[]}},{key:"dispatcher",converter:A=>A,get defaultValue(){return NF()}},{key:"headers",converter:m.nullableConverter(m.converters.HeadersInit)}]);m.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(A){return m.util.Type(A)==="Object"&&!(Symbol.iterator in A)?m.converters.WebSocketInit(A):{protocols:m.converters["DOMString or sequence<DOMString>"](A)}};m.converters.WebSocketSendData=function(A){if(m.util.Type(A)==="Object"){if(nh(A))return m.converters.Blob(A,{strict:!1});if(ArrayBuffer.isView(A)||ih.isAnyArrayBuffer(A))return m.converters.BufferSource(A)}return m.converters.USVString(A)};oh.exports={WebSocket:ZA}});var iQ=c((VS,M)=>{"use strict";var mF=Ur(),Qh=ks(),Eh=Z(),bF=vt(),SF=mC(),UF=Jr(),ut=G(),{InvalidArgumentError:Hn}=Eh,gr=dB(),LF=Rr(),MF=Bg(),YF=tI(),JF=hg(),GF=eg(),TF=gI(),{getGlobalDispatcher:ah,setGlobalDispatcher:vF}=Xt(),HF=II(),VF=Co(),xF=bs(),nQ;try{require("crypto"),nQ=!0}catch{nQ=!1}Object.assign(Qh.prototype,gr);M.exports.Dispatcher=Qh;M.exports.Client=mF;M.exports.Pool=bF;M.exports.BalancedPool=SF;M.exports.Agent=UF;M.exports.ProxyAgent=TF;M.exports.DecoratorHandler=HF;M.exports.RedirectHandler=VF;M.exports.createRedirectInterceptor=xF;M.exports.buildConnector=LF;M.exports.errors=Eh;function $r(A){return(e,t,r)=>{if(typeof t=="function"&&(r=t,t=null),!e||typeof e!="string"&&typeof e!="object"&&!(e instanceof URL))throw new Hn("invalid url");if(t!=null&&typeof t!="object")throw new Hn("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new Hn("invalid opts.path");let i=t.path;t.path.startsWith("/")||(i=`/${i}`),e=new URL(ut.parseOrigin(e).origin+i)}else t||(t=typeof e=="object"?e:{}),e=ut.parseURL(e);let{agent:s,dispatcher:n=ah()}=t;if(s)throw new Hn("unsupported opts.agent. Did you mean opts.client?");return A.call(n,{...t,origin:e.origin,path:e.search?`${e.pathname}${e.search}`:e.pathname,method:t.method||(t.body?"PUT":"GET")},r)}}M.exports.setGlobalDispatcher=vF;M.exports.getGlobalDispatcher=ah;if(ut.nodeMajor>16||ut.nodeMajor===16&&ut.nodeMinor>=8){let A=null;M.exports.fetch=async function(i){A||(A=fn().fetch);try{return await A(...arguments)}catch(o){throw Error.captureStackTrace(o,this),o}},M.exports.Headers=Bt().Headers,M.exports.Response=Qn().Response,M.exports.Request=Wr().Request,M.exports.FormData=ps().FormData,M.exports.File=ws().File,M.exports.FileReader=Qc().FileReader;let{setGlobalOrigin:e,getGlobalOrigin:t}=ur();M.exports.setGlobalOrigin=e,M.exports.getGlobalOrigin=t;let{CacheStorage:r}=yc(),{kConstruct:s}=Dn();M.exports.caches=new r(s)}if(ut.nodeMajor>=16){let{deleteCookie:A,getCookies:e,getSetCookies:t,setCookie:r}=Uc();M.exports.deleteCookie=A,M.exports.getCookies=e,M.exports.getSetCookies=t,M.exports.setCookie=r;let{parseMIMEType:s,serializeAMimeType:n}=ge();M.exports.parseMIMEType=s,M.exports.serializeAMimeType=n}if(ut.nodeMajor>=18&&nQ){let{WebSocket:A}=gh();M.exports.WebSocket=A}M.exports.request=$r(gr.request);M.exports.stream=$r(gr.stream);M.exports.pipeline=$r(gr.pipeline);M.exports.connect=$r(gr.connect);M.exports.upgrade=$r(gr.upgrade);M.exports.MockClient=MF;M.exports.MockPool=JF;M.exports.MockAgent=YF;M.exports.mockErrors=GF});var aQ=c(EQ=>{"use strict";Object.defineProperty(EQ,"__esModule",{value:!0});var OF=function(A,e,t,r){if(typeof A!="string"||A.length===0)throw new TypeError("text should be a string");if(typeof e!="string"||e.length===0)throw new TypeError("lang should be a string");if(typeof t!="boolean")throw new TypeError("slow should be a boolean");if(typeof r!="string"||r.length===0)throw new TypeError("host should be a string")};EQ.default=OF});var BQ=c(CQ=>{"use strict";Object.defineProperty(CQ,"__esModule",{value:!0});var PF="\\s\\uFEFF\\xA0",_F="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",ZF=function(A,e){for(var t=e===void 0?{}:e,r=t.maxLength,s=r===void 0?200:r,n=t.splitPunct,i=n===void 0?"":n,o=function(I,h){var l=new RegExp("["+PF+_F+i+"]");return l.test(I.charAt(h))},g=function(I,h,l){for(var u=l;u>=h;u--)if(o(I,u))return u;return-1},a=[],Q=function(I,h,l){a.push(I.slice(h,l+1))},E=0;;){if(A.length-E<=s){Q(A,E,A.length-1);break}var C=E+s-1;if(o(A,C)||o(A,C+1)){Q(A,E,C),E=C+1;continue}if(C=g(A,E,C),C===-1){var B=A.slice(E,E+s);throw new Error("The word is too long to split into a short text:"+(` -`+B+" ...")+` - -Try the option "splitPunct" to split the text by punctuation.`)}Q(A,E,C),E=C+1}return a};CQ.default=ZF});var fh=c(Te=>{"use strict";var IQ=Te&&Te.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(Te,"__esModule",{value:!0});Te.getAllAudioUrls=Te.getAudioUrl=void 0;var uh=IQ(aQ()),XF=IQ(BQ()),KF=IQ(require("url")),jF=function(A,e){var t=e===void 0?{}:e,r=t.lang,s=r===void 0?"en":r,n=t.slow,i=n===void 0?!1:n,o=t.host,g=o===void 0?"https://translate.google.com":o;if(uh.default(A,s,i,g),A.length>200)throw new RangeError("text length ("+A.length+') should be less than 200 characters. Try "getAllAudioUrls(text, [option])" for long text.');return g+"/translate_tts"+KF.default.format({query:{ie:"UTF-8",q:A,tl:s,total:1,idx:0,textlen:A.length,client:"tw-ob",prev:"input",ttsspeed:i?.24:1}})};Te.getAudioUrl=jF;var zF=function(A,e){var t=e===void 0?{}:e,r=t.lang,s=r===void 0?"en":r,n=t.slow,i=n===void 0?!1:n,o=t.host,g=o===void 0?"https://translate.google.com":o,a=t.splitPunct,Q=a===void 0?"":a;if(uh.default(A,s,i,g),typeof Q!="string")throw new TypeError("splitPunct should be a string");return XF.default(A,{splitPunct:Q}).map(function(E){return{shortText:E,url:Te.getAudioUrl(E,{lang:s,slow:i,host:g})}})};Te.getAllAudioUrls=zF});var cQ=c((KS,dh)=>{"use strict";dh.exports=function(e,t){return function(){for(var s=new Array(arguments.length),n=0;n<s.length;n++)s[n]=arguments[n];return e.apply(t,s)}}});var mA=c((jS,Dh)=>{"use strict";var $F=cQ(),ft=Object.prototype.toString;function uQ(A){return ft.call(A)==="[object Array]"}function hQ(A){return typeof A>"u"}function AN(A){return A!==null&&!hQ(A)&&A.constructor!==null&&!hQ(A.constructor)&&typeof A.constructor.isBuffer=="function"&&A.constructor.isBuffer(A)}function eN(A){return ft.call(A)==="[object ArrayBuffer]"}function tN(A){return typeof FormData<"u"&&A instanceof FormData}function rN(A){var e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(A):e=A&&A.buffer&&A.buffer instanceof ArrayBuffer,e}function sN(A){return typeof A=="string"}function nN(A){return typeof A=="number"}function yh(A){return A!==null&&typeof A=="object"}function qn(A){if(ft.call(A)!=="[object Object]")return!1;var e=Object.getPrototypeOf(A);return e===null||e===Object.prototype}function iN(A){return ft.call(A)==="[object Date]"}function oN(A){return ft.call(A)==="[object File]"}function gN(A){return ft.call(A)==="[object Blob]"}function wh(A){return ft.call(A)==="[object Function]"}function QN(A){return yh(A)&&wh(A.pipe)}function EN(A){return typeof URLSearchParams<"u"&&A instanceof URLSearchParams}function aN(A){return A.trim?A.trim():A.replace(/^\s+|\s+$/g,"")}function CN(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function fQ(A,e){if(!(A===null||typeof A>"u"))if(typeof A!="object"&&(A=[A]),uQ(A))for(var t=0,r=A.length;t<r;t++)e.call(null,A[t],t,A);else for(var s in A)Object.prototype.hasOwnProperty.call(A,s)&&e.call(null,A[s],s,A)}function lQ(){var A={};function e(s,n){qn(A[n])&&qn(s)?A[n]=lQ(A[n],s):qn(s)?A[n]=lQ({},s):uQ(s)?A[n]=s.slice():A[n]=s}for(var t=0,r=arguments.length;t<r;t++)fQ(arguments[t],e);return A}function BN(A,e,t){return fQ(e,function(s,n){t&&typeof s=="function"?A[n]=$F(s,t):A[n]=s}),A}function IN(A){return A.charCodeAt(0)===65279&&(A=A.slice(1)),A}Dh.exports={isArray:uQ,isArrayBuffer:eN,isBuffer:AN,isFormData:tN,isArrayBufferView:rN,isString:sN,isNumber:nN,isObject:yh,isPlainObject:qn,isUndefined:hQ,isDate:iN,isFile:oN,isBlob:gN,isFunction:wh,isStream:QN,isURLSearchParams:EN,isStandardBrowserEnv:CN,forEach:fQ,merge:lQ,extend:BN,trim:aN,stripBOM:IN}});var Wn=c((zS,Rh)=>{"use strict";var Qr=mA();function ph(A){return encodeURIComponent(A).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}Rh.exports=function(e,t,r){if(!t)return e;var s;if(r)s=r(t);else if(Qr.isURLSearchParams(t))s=t.toString();else{var n=[];Qr.forEach(t,function(g,a){g===null||typeof g>"u"||(Qr.isArray(g)?a=a+"[]":g=[g],Qr.forEach(g,function(E){Qr.isDate(E)?E=E.toISOString():Qr.isObject(E)&&(E=JSON.stringify(E)),n.push(ph(a)+"="+ph(E))}))}),s=n.join("&")}if(s){var i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}});var Fh=c(($S,kh)=>{"use strict";var cN=mA();function On(){this.handlers=[]}On.prototype.use=function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1};On.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)};On.prototype.forEach=function(e){cN.forEach(this.handlers,function(r){r!==null&&e(r)})};kh.exports=On});var mh=c((AU,Nh)=>{"use strict";var hN=mA();Nh.exports=function(e,t){hN.forEach(e,function(s,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=s,delete e[n])})}});var Pn=c((eU,bh)=>{"use strict";bh.exports=function(e,t,r,s,n){return e.config=t,r&&(e.code=r),e.request=s,e.response=n,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}});var _n=c((tU,Sh)=>{"use strict";var lN=Pn();Sh.exports=function(e,t,r,s,n){var i=new Error(e);return lN(i,t,r,s,n)}});var dQ=c((rU,Uh)=>{"use strict";var uN=_n();Uh.exports=function(e,t,r){var s=r.config.validateStatus;!r.status||!s||s(r.status)?e(r):t(uN("Request failed with status code "+r.status,r.config,null,r.request,r))}});var Mh=c((sU,Lh)=>{"use strict";var Zn=mA();Lh.exports=Zn.isStandardBrowserEnv()?function(){return{write:function(t,r,s,n,i,o){var g=[];g.push(t+"="+encodeURIComponent(r)),Zn.isNumber(s)&&g.push("expires="+new Date(s).toGMTString()),Zn.isString(n)&&g.push("path="+n),Zn.isString(i)&&g.push("domain="+i),o===!0&&g.push("secure"),document.cookie=g.join("; ")},read:function(t){var r=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return r?decodeURIComponent(r[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var Jh=c((nU,Yh)=>{"use strict";Yh.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}});var Th=c((iU,Gh)=>{"use strict";Gh.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}});var yQ=c((oU,vh)=>{"use strict";var fN=Jh(),dN=Th();vh.exports=function(e,t){return e&&!fN(t)?dN(e,t):t}});var Vh=c((gU,Hh)=>{"use strict";var wQ=mA(),yN=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];Hh.exports=function(e){var t={},r,s,n;return e&&wQ.forEach(e.split(` -`),function(o){if(n=o.indexOf(":"),r=wQ.trim(o.substr(0,n)).toLowerCase(),s=wQ.trim(o.substr(n+1)),r){if(t[r]&&yN.indexOf(r)>=0)return;r==="set-cookie"?t[r]=(t[r]?t[r]:[]).concat([s]):t[r]=t[r]?t[r]+", "+s:s}}),t}});var Wh=c((QU,qh)=>{"use strict";var xh=mA();qh.exports=xh.isStandardBrowserEnv()?function(){var e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a"),r;function s(n){var i=n;return e&&(t.setAttribute("href",i),i=t.href),t.setAttribute("href",i),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}return r=s(window.location.href),function(i){var o=xh.isString(i)?s(i):i;return o.protocol===r.protocol&&o.host===r.host}}():function(){return function(){return!0}}()});var Ph=c((EU,Oh)=>{"use strict";var Xn=mA(),wN=dQ(),DN=Mh(),pN=Wn(),RN=yQ(),kN=Vh(),FN=Wh(),DQ=_n();Oh.exports=function(e){return new Promise(function(r,s){var n=e.data,i=e.headers,o=e.responseType;Xn.isFormData(n)&&delete i["Content-Type"];var g=new XMLHttpRequest;if(e.auth){var a=e.auth.username||"",Q=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.Authorization="Basic "+btoa(a+":"+Q)}var E=RN(e.baseURL,e.url);g.open(e.method.toUpperCase(),pN(E,e.params,e.paramsSerializer),!0),g.timeout=e.timeout;function C(){if(g){var I="getAllResponseHeaders"in g?kN(g.getAllResponseHeaders()):null,h=!o||o==="text"||o==="json"?g.responseText:g.response,l={data:h,status:g.status,statusText:g.statusText,headers:I,config:e,request:g};wN(r,s,l),g=null}}if("onloadend"in g?g.onloadend=C:g.onreadystatechange=function(){!g||g.readyState!==4||g.status===0&&!(g.responseURL&&g.responseURL.indexOf("file:")===0)||setTimeout(C)},g.onabort=function(){g&&(s(DQ("Request aborted",e,"ECONNABORTED",g)),g=null)},g.onerror=function(){s(DQ("Network Error",e,null,g)),g=null},g.ontimeout=function(){var h="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(h=e.timeoutErrorMessage),s(DQ(h,e,e.transitional&&e.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",g)),g=null},Xn.isStandardBrowserEnv()){var B=(e.withCredentials||FN(E))&&e.xsrfCookieName?DN.read(e.xsrfCookieName):void 0;B&&(i[e.xsrfHeaderName]=B)}"setRequestHeader"in g&&Xn.forEach(i,function(h,l){typeof n>"u"&&l.toLowerCase()==="content-type"?delete i[l]:g.setRequestHeader(l,h)}),Xn.isUndefined(e.withCredentials)||(g.withCredentials=!!e.withCredentials),o&&o!=="json"&&(g.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&g.addEventListener("progress",e.onDownloadProgress),typeof e.onUploadProgress=="function"&&g.upload&&g.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(h){g&&(g.abort(),s(h),g=null)}),n||(n=null),g.send(n)})}});var Zh=c((aU,_h)=>{var Er=1e3,ar=Er*60,Cr=ar*60,dt=Cr*24,NN=dt*7,mN=dt*365.25;_h.exports=function(A,e){e=e||{};var t=typeof A;if(t==="string"&&A.length>0)return bN(A);if(t==="number"&&isFinite(A))return e.long?UN(A):SN(A);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(A))};function bN(A){if(A=String(A),!(A.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(A);if(e){var t=parseFloat(e[1]),r=(e[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return t*mN;case"weeks":case"week":case"w":return t*NN;case"days":case"day":case"d":return t*dt;case"hours":case"hour":case"hrs":case"hr":case"h":return t*Cr;case"minutes":case"minute":case"mins":case"min":case"m":return t*ar;case"seconds":case"second":case"secs":case"sec":case"s":return t*Er;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function SN(A){var e=Math.abs(A);return e>=dt?Math.round(A/dt)+"d":e>=Cr?Math.round(A/Cr)+"h":e>=ar?Math.round(A/ar)+"m":e>=Er?Math.round(A/Er)+"s":A+"ms"}function UN(A){var e=Math.abs(A);return e>=dt?Kn(A,e,dt,"day"):e>=Cr?Kn(A,e,Cr,"hour"):e>=ar?Kn(A,e,ar,"minute"):e>=Er?Kn(A,e,Er,"second"):A+" ms"}function Kn(A,e,t,r){var s=e>=t*1.5;return Math.round(A/t)+" "+r+(s?"s":"")}});var pQ=c((CU,Xh)=>{function LN(A){t.debug=t,t.default=t,t.coerce=g,t.disable=n,t.enable=s,t.enabled=i,t.humanize=Zh(),t.destroy=a,Object.keys(A).forEach(Q=>{t[Q]=A[Q]}),t.names=[],t.skips=[],t.formatters={};function e(Q){let E=0;for(let C=0;C<Q.length;C++)E=(E<<5)-E+Q.charCodeAt(C),E|=0;return t.colors[Math.abs(E)%t.colors.length]}t.selectColor=e;function t(Q){let E,C=null,B,I;function h(...l){if(!h.enabled)return;let u=h,F=Number(new Date),w=F-(E||F);u.diff=w,u.prev=E,u.curr=F,E=F,l[0]=t.coerce(l[0]),typeof l[0]!="string"&&l.unshift("%O");let k=0;l[0]=l[0].replace(/%([a-zA-Z%])/g,(O,V)=>{if(O==="%%")return"%";k++;let K=t.formatters[V];if(typeof K=="function"){let uA=l[k];O=K.call(u,uA),l.splice(k,1),k--}return O}),t.formatArgs.call(u,l),(u.log||t.log).apply(u,l)}return h.namespace=Q,h.useColors=t.useColors(),h.color=t.selectColor(Q),h.extend=r,h.destroy=t.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>C!==null?C:(B!==t.namespaces&&(B=t.namespaces,I=t.enabled(Q)),I),set:l=>{C=l}}),typeof t.init=="function"&&t.init(h),h}function r(Q,E){let C=t(this.namespace+(typeof E>"u"?":":E)+Q);return C.log=this.log,C}function s(Q){t.save(Q),t.namespaces=Q,t.names=[],t.skips=[];let E,C=(typeof Q=="string"?Q:"").split(/[\s,]+/),B=C.length;for(E=0;E<B;E++)C[E]&&(Q=C[E].replace(/\*/g,".*?"),Q[0]==="-"?t.skips.push(new RegExp("^"+Q.slice(1)+"$")):t.names.push(new RegExp("^"+Q+"$")))}function n(){let Q=[...t.names.map(o),...t.skips.map(o).map(E=>"-"+E)].join(",");return t.enable(""),Q}function i(Q){if(Q[Q.length-1]==="*")return!0;let E,C;for(E=0,C=t.skips.length;E<C;E++)if(t.skips[E].test(Q))return!1;for(E=0,C=t.names.length;E<C;E++)if(t.names[E].test(Q))return!0;return!1}function o(Q){return Q.toString().substring(2,Q.toString().length-2).replace(/\.\*\?$/,"*")}function g(Q){return Q instanceof Error?Q.stack||Q.message:Q}function a(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}Xh.exports=LN});var Kh=c((XA,jn)=>{XA.formatArgs=YN;XA.save=JN;XA.load=GN;XA.useColors=MN;XA.storage=TN();XA.destroy=(()=>{let A=!1;return()=>{A||(A=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();XA.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function MN(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function YN(A){if(A[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+A[0]+(this.useColors?"%c ":" ")+"+"+jn.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;A.splice(1,0,e,"color: inherit");let t=0,r=0;A[0].replace(/%[a-zA-Z%]/g,s=>{s!=="%%"&&(t++,s==="%c"&&(r=t))}),A.splice(r,0,e)}XA.log=console.debug||console.log||(()=>{});function JN(A){try{A?XA.storage.setItem("debug",A):XA.storage.removeItem("debug")}catch{}}function GN(){let A;try{A=XA.storage.getItem("debug")}catch{}return!A&&typeof process<"u"&&"env"in process&&(A=process.env.DEBUG),A}function TN(){try{return localStorage}catch{}}jn.exports=pQ()(XA);var{formatters:vN}=jn.exports;vN.j=function(A){try{return JSON.stringify(A)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var zh=c((BU,jh)=>{"use strict";jh.exports=(A,e=process.argv)=>{let t=A.startsWith("-")?"":A.length===1?"-":"--",r=e.indexOf(t+A),s=e.indexOf("--");return r!==-1&&(s===-1||r<s)}});var el=c((IU,Al)=>{"use strict";var HN=require("os"),$h=require("tty"),ie=zh(),{env:BA}=process,$e;ie("no-color")||ie("no-colors")||ie("color=false")||ie("color=never")?$e=0:(ie("color")||ie("colors")||ie("color=true")||ie("color=always"))&&($e=1);"FORCE_COLOR"in BA&&(BA.FORCE_COLOR==="true"?$e=1:BA.FORCE_COLOR==="false"?$e=0:$e=BA.FORCE_COLOR.length===0?1:Math.min(parseInt(BA.FORCE_COLOR,10),3));function RQ(A){return A===0?!1:{level:A,hasBasic:!0,has256:A>=2,has16m:A>=3}}function kQ(A,e){if($e===0)return 0;if(ie("color=16m")||ie("color=full")||ie("color=truecolor"))return 3;if(ie("color=256"))return 2;if(A&&!e&&$e===void 0)return 0;let t=$e||0;if(BA.TERM==="dumb")return t;if(process.platform==="win32"){let r=HN.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in BA)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(r=>r in BA)||BA.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in BA)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(BA.TEAMCITY_VERSION)?1:0;if(BA.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in BA){let r=parseInt((BA.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(BA.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(BA.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(BA.TERM)||"COLORTERM"in BA?1:t}function VN(A){let e=kQ(A,A&&A.isTTY);return RQ(e)}Al.exports={supportsColor:VN,stdout:RQ(kQ(!0,$h.isatty(1))),stderr:RQ(kQ(!0,$h.isatty(2)))}});var rl=c((hA,$n)=>{var xN=require("tty"),zn=require("util");hA.init=XN;hA.log=PN;hA.formatArgs=WN;hA.save=_N;hA.load=ZN;hA.useColors=qN;hA.destroy=zn.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");hA.colors=[6,2,3,4,5,1];try{let A=el();A&&(A.stderr||A).level>=2&&(hA.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}hA.inspectOpts=Object.keys(process.env).filter(A=>/^debug_/i.test(A)).reduce((A,e)=>{let t=e.substring(6).toLowerCase().replace(/_([a-z])/g,(s,n)=>n.toUpperCase()),r=process.env[e];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),A[t]=r,A},{});function qN(){return"colors"in hA.inspectOpts?!!hA.inspectOpts.colors:xN.isatty(process.stderr.fd)}function WN(A){let{namespace:e,useColors:t}=this;if(t){let r=this.color,s="\x1B[3"+(r<8?r:"8;5;"+r),n=` ${s};1m${e} \x1B[0m`;A[0]=n+A[0].split(` -`).join(` -`+n),A.push(s+"m+"+$n.exports.humanize(this.diff)+"\x1B[0m")}else A[0]=ON()+e+" "+A[0]}function ON(){return hA.inspectOpts.hideDate?"":new Date().toISOString()+" "}function PN(...A){return process.stderr.write(zn.format(...A)+` -`)}function _N(A){A?process.env.DEBUG=A:delete process.env.DEBUG}function ZN(){return process.env.DEBUG}function XN(A){A.inspectOpts={};let e=Object.keys(hA.inspectOpts);for(let t=0;t<e.length;t++)A.inspectOpts[e[t]]=hA.inspectOpts[e[t]]}$n.exports=pQ()(hA);var{formatters:tl}=$n.exports;tl.o=function(A){return this.inspectOpts.colors=this.useColors,zn.inspect(A,this.inspectOpts).split(` -`).map(e=>e.trim()).join(" ")};tl.O=function(A){return this.inspectOpts.colors=this.useColors,zn.inspect(A,this.inspectOpts)}});var Ai=c((cU,FQ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?FQ.exports=Kh():FQ.exports=rl()});var nl=c((hU,sl)=>{var ts;sl.exports=function(){if(!ts){try{ts=Ai()("follow-redirects")}catch{}typeof ts!="function"&&(ts=function(){})}ts.apply(null,arguments)}});var HQ=c((lU,vQ)=>{var ns=require("url"),rs=ns.URL,KN=require("http"),jN=require("https"),UQ=require("stream").Writable,LQ=require("assert"),il=nl(),MQ=!1;try{LQ(new rs)}catch(A){MQ=A.code==="ERR_INVALID_URL"}var zN=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],YQ=["abort","aborted","connect","error","socket","timeout"],JQ=Object.create(null);YQ.forEach(function(A){JQ[A]=function(e,t,r){this._redirectable.emit(A,e,t,r)}});var mQ=is("ERR_INVALID_URL","Invalid URL",TypeError),bQ=is("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),$N=is("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",bQ),Am=is("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),em=is("ERR_STREAM_WRITE_AFTER_END","write after end"),tm=UQ.prototype.destroy||gl;function JA(A,e){UQ.call(this),this._sanitizeOptions(A),this._options=A,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],e&&this.on("response",e);var t=this;this._onNativeResponse=function(r){try{t._processResponse(r)}catch(s){t.emit("error",s instanceof bQ?s:new bQ({cause:s}))}},this._performRequest()}JA.prototype=Object.create(UQ.prototype);JA.prototype.abort=function(){TQ(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};JA.prototype.destroy=function(A){return TQ(this._currentRequest,A),tm.call(this,A),this};JA.prototype.write=function(A,e,t){if(this._ending)throw new em;if(!yt(A)&&!nm(A))throw new TypeError("data should be a string, Buffer or Uint8Array");if(ss(e)&&(t=e,e=null),A.length===0){t&&t();return}this._requestBodyLength+A.length<=this._options.maxBodyLength?(this._requestBodyLength+=A.length,this._requestBodyBuffers.push({data:A,encoding:e}),this._currentRequest.write(A,e,t)):(this.emit("error",new Am),this.abort())};JA.prototype.end=function(A,e,t){if(ss(A)?(t=A,A=e=null):ss(e)&&(t=e,e=null),!A)this._ended=this._ending=!0,this._currentRequest.end(null,null,t);else{var r=this,s=this._currentRequest;this.write(A,e,function(){r._ended=!0,s.end(null,null,t)}),this._ending=!0}};JA.prototype.setHeader=function(A,e){this._options.headers[A]=e,this._currentRequest.setHeader(A,e)};JA.prototype.removeHeader=function(A){delete this._options.headers[A],this._currentRequest.removeHeader(A)};JA.prototype.setTimeout=function(A,e){var t=this;function r(i){i.setTimeout(A),i.removeListener("timeout",i.destroy),i.addListener("timeout",i.destroy)}function s(i){t._timeout&&clearTimeout(t._timeout),t._timeout=setTimeout(function(){t.emit("timeout"),n()},A),r(i)}function n(){t._timeout&&(clearTimeout(t._timeout),t._timeout=null),t.removeListener("abort",n),t.removeListener("error",n),t.removeListener("response",n),t.removeListener("close",n),e&&t.removeListener("timeout",e),t.socket||t._currentRequest.removeListener("socket",s)}return e&&this.on("timeout",e),this.socket?s(this.socket):this._currentRequest.once("socket",s),this.on("socket",r),this.on("abort",n),this.on("error",n),this.on("response",n),this.on("close",n),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(A){JA.prototype[A]=function(e,t){return this._currentRequest[A](e,t)}});["aborted","connection","socket"].forEach(function(A){Object.defineProperty(JA.prototype,A,{get:function(){return this._currentRequest[A]}})});JA.prototype._sanitizeOptions=function(A){if(A.headers||(A.headers={}),A.host&&(A.hostname||(A.hostname=A.host),delete A.host),!A.pathname&&A.path){var e=A.path.indexOf("?");e<0?A.pathname=A.path:(A.pathname=A.path.substring(0,e),A.search=A.path.substring(e))}};JA.prototype._performRequest=function(){var A=this._options.protocol,e=this._options.nativeProtocols[A];if(!e)throw new TypeError("Unsupported protocol "+A);if(this._options.agents){var t=A.slice(0,-1);this._options.agent=this._options.agents[t]}var r=this._currentRequest=e.request(this._options,this._onNativeResponse);r._redirectable=this;for(var s of YQ)r.on(s,JQ[s]);if(this._currentUrl=/^\//.test(this._options.path)?ns.format(this._options):this._options.path,this._isRedirect){var n=0,i=this,o=this._requestBodyBuffers;(function g(a){if(r===i._currentRequest)if(a)i.emit("error",a);else if(n<o.length){var Q=o[n++];r.finished||r.write(Q.data,Q.encoding,g)}else i._ended&&r.end()})()}};JA.prototype._processResponse=function(A){var e=A.statusCode;this._options.trackRedirects&&this._redirects.push({url:this._currentUrl,headers:A.headers,statusCode:e});var t=A.headers.location;if(!t||this._options.followRedirects===!1||e<300||e>=400){A.responseUrl=this._currentUrl,A.redirects=this._redirects,this.emit("response",A),this._requestBodyBuffers=[];return}if(TQ(this._currentRequest),A.destroy(),++this._redirectCount>this._options.maxRedirects)throw new $N;var r,s=this._options.beforeRedirect;s&&(r=Object.assign({Host:A.req.getHeader("host")},this._options.headers));var n=this._options.method;((e===301||e===302)&&this._options.method==="POST"||e===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],NQ(/^content-/i,this._options.headers));var i=NQ(/^host$/i,this._options.headers),o=GQ(this._currentUrl),g=i||o.host,a=/^\w+:/.test(t)?this._currentUrl:ns.format(Object.assign(o,{host:g})),Q=rm(t,a);if(il("redirecting to",Q.href),this._isRedirect=!0,SQ(Q,this._options),(Q.protocol!==o.protocol&&Q.protocol!=="https:"||Q.host!==g&&!sm(Q.host,g))&&NQ(/^(?:authorization|cookie)$/i,this._options.headers),ss(s)){var E={headers:A.headers,statusCode:e},C={url:a,method:n,headers:r};s(this._options,E,C),this._sanitizeOptions(this._options)}this._performRequest()};function ol(A){var e={maxRedirects:21,maxBodyLength:10485760},t={};return Object.keys(A).forEach(function(r){var s=r+":",n=t[s]=A[r],i=e[r]=Object.create(n);function o(a,Q,E){return im(a)?a=SQ(a):yt(a)?a=SQ(GQ(a)):(E=Q,Q=Ql(a),a={protocol:s}),ss(Q)&&(E=Q,Q=null),Q=Object.assign({maxRedirects:e.maxRedirects,maxBodyLength:e.maxBodyLength},a,Q),Q.nativeProtocols=t,!yt(Q.host)&&!yt(Q.hostname)&&(Q.hostname="::1"),LQ.equal(Q.protocol,s,"protocol mismatch"),il("options",Q),new JA(Q,E)}function g(a,Q,E){var C=i.request(a,Q,E);return C.end(),C}Object.defineProperties(i,{request:{value:o,configurable:!0,enumerable:!0,writable:!0},get:{value:g,configurable:!0,enumerable:!0,writable:!0}})}),e}function gl(){}function GQ(A){var e;if(MQ)e=new rs(A);else if(e=Ql(ns.parse(A)),!yt(e.protocol))throw new mQ({input:A});return e}function rm(A,e){return MQ?new rs(A,e):GQ(ns.resolve(e,A))}function Ql(A){if(/^\[/.test(A.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(A.hostname))throw new mQ({input:A.href||A});if(/^\[/.test(A.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(A.host))throw new mQ({input:A.href||A});return A}function SQ(A,e){var t=e||{};for(var r of zN)t[r]=A[r];return t.hostname.startsWith("[")&&(t.hostname=t.hostname.slice(1,-1)),t.port!==""&&(t.port=Number(t.port)),t.path=t.search?t.pathname+t.search:t.pathname,t}function NQ(A,e){var t;for(var r in e)A.test(r)&&(t=e[r],delete e[r]);return t===null||typeof t>"u"?void 0:String(t).trim()}function is(A,e,t){function r(s){Error.captureStackTrace(this,this.constructor),Object.assign(this,s||{}),this.code=A,this.message=this.cause?e+": "+this.cause.message:e}return r.prototype=new(t||Error),Object.defineProperties(r.prototype,{constructor:{value:r,enumerable:!1},name:{value:"Error ["+A+"]",enumerable:!1}}),r}function TQ(A,e){for(var t of YQ)A.removeListener(t,JQ[t]);A.on("error",gl),A.destroy(e)}function sm(A,e){LQ(yt(A)&&yt(e));var t=A.length-e.length-1;return t>0&&A[t]==="."&&A.endsWith(e)}function yt(A){return typeof A=="string"||A instanceof String}function ss(A){return typeof A=="function"}function nm(A){return typeof A=="object"&&"length"in A}function im(A){return rs&&A instanceof rs}vQ.exports=ol({http:KN,https:jN});vQ.exports.wrap=ol});var VQ=c((uU,om)=>{om.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var cl=c((fU,Il)=>{"use strict";var os=mA(),El=dQ(),gm=yQ(),Qm=Wn(),Em=require("http"),am=require("https"),Cm=HQ().http,Bm=HQ().https,al=require("url"),Im=require("zlib"),cm=VQ(),ei=_n(),xQ=Pn(),Cl=/https:?/;function Bl(A,e,t){if(A.hostname=e.host,A.host=e.host,A.port=e.port,A.path=t,e.auth){var r=Buffer.from(e.auth.username+":"+e.auth.password,"utf8").toString("base64");A.headers["Proxy-Authorization"]="Basic "+r}A.beforeRedirect=function(n){n.headers.host=n.host,Bl(n,e,n.href)}}Il.exports=function(e){return new Promise(function(r,s){var n=function(S){r(S)},i=function(S){s(S)},o=e.data,g=e.headers;if("User-Agent"in g||"user-agent"in g?!g["User-Agent"]&&!g["user-agent"]&&(delete g["User-Agent"],delete g["user-agent"]):g["User-Agent"]="axios/"+cm.version,o&&!os.isStream(o)){if(!Buffer.isBuffer(o))if(os.isArrayBuffer(o))o=Buffer.from(new Uint8Array(o));else if(os.isString(o))o=Buffer.from(o,"utf-8");else return i(ei("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",e));g["Content-Length"]=o.length}var a=void 0;if(e.auth){var Q=e.auth.username||"",E=e.auth.password||"";a=Q+":"+E}var C=gm(e.baseURL,e.url),B=al.parse(C),I=B.protocol||"http:";if(!a&&B.auth){var h=B.auth.split(":"),l=h[0]||"",u=h[1]||"";a=l+":"+u}a&&delete g.Authorization;var F=Cl.test(I),w=F?e.httpsAgent:e.httpAgent,k={path:Qm(B.path,e.params,e.paramsSerializer).replace(/^\?/,""),method:e.method.toUpperCase(),headers:g,agent:w,agents:{http:e.httpAgent,https:e.httpsAgent},auth:a};e.socketPath?k.socketPath=e.socketPath:(k.hostname=B.hostname,k.port=B.port);var T=e.proxy;if(!T&&T!==!1){var O=I.slice(0,-1)+"_proxy",V=process.env[O]||process.env[O.toUpperCase()];if(V){var K=al.parse(V),uA=process.env.no_proxy||process.env.NO_PROXY,IA=!0;if(uA){var wt=uA.split(",").map(function(S){return S.trim()});IA=!wt.some(function(S){return S?S==="*"||S[0]==="."&&B.hostname.substr(B.hostname.length-S.length)===S?!0:B.hostname===S:!1})}if(IA&&(T={host:K.hostname,port:K.port,protocol:K.protocol},K.auth)){var wA=K.auth.split(":");T.auth={username:wA[0],password:wA[1]}}}}T&&(k.headers.host=B.hostname+(B.port?":"+B.port:""),Bl(k,T,I+"//"+B.hostname+(B.port?":"+B.port:"")+k.path));var gA,Be=F&&(T?Cl.test(T.protocol):!0);e.transport?gA=e.transport:e.maxRedirects===0?gA=Be?am:Em:(e.maxRedirects&&(k.maxRedirects=e.maxRedirects),gA=Be?Bm:Cm),e.maxBodyLength>-1&&(k.maxBodyLength=e.maxBodyLength);var _=gA.request(k,function(S){if(!_.aborted){var Ie=S,x=S.req||_;if(S.statusCode!==204&&x.method!=="HEAD"&&e.decompress!==!1)switch(S.headers["content-encoding"]){case"gzip":case"compress":case"deflate":Ie=Ie.pipe(Im.createUnzip()),delete S.headers["content-encoding"];break}var TA={status:S.statusCode,statusText:S.statusMessage,headers:S.headers,config:e,request:x};if(e.responseType==="stream")TA.data=Ie,El(n,i,TA);else{var zQ=[],$Q=0;Ie.on("data",function(ce){zQ.push(ce),$Q+=ce.length,e.maxContentLength>-1&&$Q>e.maxContentLength&&(Ie.destroy(),i(ei("maxContentLength size of "+e.maxContentLength+" exceeded",e,null,x)))}),Ie.on("error",function(ce){_.aborted||i(xQ(ce,e,null,x))}),Ie.on("end",function(){var ce=Buffer.concat(zQ);e.responseType!=="arraybuffer"&&(ce=ce.toString(e.responseEncoding),(!e.responseEncoding||e.responseEncoding==="utf8")&&(ce=os.stripBOM(ce))),TA.data=ce,El(n,i,TA)})}}});if(_.on("error",function(S){_.aborted&&S.code!=="ERR_FR_TOO_MANY_REDIRECTS"||i(xQ(S,e,null,_))}),e.timeout){var tA=parseInt(e.timeout,10);if(isNaN(tA)){i(ei("error trying to parse `config.timeout` to int",e,"ERR_PARSE_TIMEOUT",_));return}_.setTimeout(tA,function(){_.abort(),i(ei("timeout of "+tA+"ms exceeded",e,e.transitional&&e.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",_))})}e.cancelToken&&e.cancelToken.promise.then(function(S){_.aborted||(_.abort(),i(S))}),os.isStream(o)?o.on("error",function(S){i(xQ(S,e,null,_))}).pipe(_):_.end(o)})}});var ri=c((dU,ul)=>{"use strict";var lA=mA(),hl=mh(),hm=Pn(),lm={"Content-Type":"application/x-www-form-urlencoded"};function ll(A,e){!lA.isUndefined(A)&&lA.isUndefined(A["Content-Type"])&&(A["Content-Type"]=e)}function um(){var A;return typeof XMLHttpRequest<"u"?A=Ph():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(A=cl()),A}function fm(A,e,t){if(lA.isString(A))try{return(e||JSON.parse)(A),lA.trim(A)}catch(r){if(r.name!=="SyntaxError")throw r}return(t||JSON.stringify)(A)}var ti={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:um(),transformRequest:[function(e,t){return hl(t,"Accept"),hl(t,"Content-Type"),lA.isFormData(e)||lA.isArrayBuffer(e)||lA.isBuffer(e)||lA.isStream(e)||lA.isFile(e)||lA.isBlob(e)?e:lA.isArrayBufferView(e)?e.buffer:lA.isURLSearchParams(e)?(ll(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):lA.isObject(e)||t&&t["Content-Type"]==="application/json"?(ll(t,"application/json"),fm(e)):e}],transformResponse:[function(e){var t=this.transitional,r=t&&t.silentJSONParsing,s=t&&t.forcedJSONParsing,n=!r&&this.responseType==="json";if(n||s&&lA.isString(e)&&e.length)try{return JSON.parse(e)}catch(i){if(n)throw i.name==="SyntaxError"?hm(i,this,"E_JSON_PARSE"):i}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300}};ti.headers={common:{Accept:"application/json, text/plain, */*"}};lA.forEach(["delete","get","head"],function(e){ti.headers[e]={}});lA.forEach(["post","put","patch"],function(e){ti.headers[e]=lA.merge(lm)});ul.exports=ti});var dl=c((yU,fl)=>{"use strict";var dm=mA(),ym=ri();fl.exports=function(e,t,r){var s=this||ym;return dm.forEach(r,function(i){e=i.call(s,e,t)}),e}});var qQ=c((wU,yl)=>{"use strict";yl.exports=function(e){return!!(e&&e.__CANCEL__)}});var pl=c((DU,Dl)=>{"use strict";var wl=mA(),WQ=dl(),wm=qQ(),Dm=ri();function OQ(A){A.cancelToken&&A.cancelToken.throwIfRequested()}Dl.exports=function(e){OQ(e),e.headers=e.headers||{},e.data=WQ.call(e,e.data,e.headers,e.transformRequest),e.headers=wl.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),wl.forEach(["delete","get","head","post","put","patch","common"],function(s){delete e.headers[s]});var t=e.adapter||Dm.adapter;return t(e).then(function(s){return OQ(e),s.data=WQ.call(e,s.data,s.headers,e.transformResponse),s},function(s){return wm(s)||(OQ(e),s&&s.response&&(s.response.data=WQ.call(e,s.response.data,s.response.headers,e.transformResponse))),Promise.reject(s)})}});var PQ=c((pU,Rl)=>{"use strict";var yA=mA();Rl.exports=function(e,t){t=t||{};var r={},s=["url","method","data"],n=["headers","auth","proxy","params"],i=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],o=["validateStatus"];function g(C,B){return yA.isPlainObject(C)&&yA.isPlainObject(B)?yA.merge(C,B):yA.isPlainObject(B)?yA.merge({},B):yA.isArray(B)?B.slice():B}function a(C){yA.isUndefined(t[C])?yA.isUndefined(e[C])||(r[C]=g(void 0,e[C])):r[C]=g(e[C],t[C])}yA.forEach(s,function(B){yA.isUndefined(t[B])||(r[B]=g(void 0,t[B]))}),yA.forEach(n,a),yA.forEach(i,function(B){yA.isUndefined(t[B])?yA.isUndefined(e[B])||(r[B]=g(void 0,e[B])):r[B]=g(void 0,t[B])}),yA.forEach(o,function(B){B in t?r[B]=g(e[B],t[B]):B in e&&(r[B]=g(void 0,e[B]))});var Q=s.concat(n).concat(i).concat(o),E=Object.keys(e).concat(Object.keys(t)).filter(function(B){return Q.indexOf(B)===-1});return yA.forEach(E,a),r}});var bl=c((RU,ml)=>{"use strict";var Fl=VQ(),_Q={};["object","boolean","number","function","string","symbol"].forEach(function(A,e){_Q[A]=function(r){return typeof r===A||"a"+(e<1?"n ":" ")+A}});var kl={},pm=Fl.version.split(".");function Nl(A,e){for(var t=e?e.split("."):pm,r=A.split("."),s=0;s<3;s++){if(t[s]>r[s])return!0;if(t[s]<r[s])return!1}return!1}_Q.transitional=function(e,t,r){var s=t&&Nl(t);function n(i,o){return"[Axios v"+Fl.version+"] Transitional option '"+i+"'"+o+(r?". "+r:"")}return function(i,o,g){if(e===!1)throw new Error(n(o," has been removed in "+t));return s&&!kl[o]&&(kl[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),e?e(i,o,g):!0}};function Rm(A,e,t){if(typeof A!="object")throw new TypeError("options must be an object");for(var r=Object.keys(A),s=r.length;s-- >0;){var n=r[s],i=e[n];if(i){var o=A[n],g=o===void 0||i(o,n,A);if(g!==!0)throw new TypeError("option "+n+" must be "+g);continue}if(t!==!0)throw Error("Unknown option "+n)}}ml.exports={isOlderVersion:Nl,assertOptions:Rm,validators:_Q}});var Jl=c((kU,Yl)=>{"use strict";var Ll=mA(),km=Wn(),Sl=Fh(),Ul=pl(),si=PQ(),Ml=bl(),Br=Ml.validators;function gs(A){this.defaults=A,this.interceptors={request:new Sl,response:new Sl}}gs.prototype.request=function(e){typeof e=="string"?(e=arguments[1]||{},e.url=arguments[0]):e=e||{},e=si(this.defaults,e),e.method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;t!==void 0&&Ml.assertOptions(t,{silentJSONParsing:Br.transitional(Br.boolean,"1.0.0"),forcedJSONParsing:Br.transitional(Br.boolean,"1.0.0"),clarifyTimeoutError:Br.transitional(Br.boolean,"1.0.0")},!1);var r=[],s=!0;this.interceptors.request.forEach(function(C){typeof C.runWhen=="function"&&C.runWhen(e)===!1||(s=s&&C.synchronous,r.unshift(C.fulfilled,C.rejected))});var n=[];this.interceptors.response.forEach(function(C){n.push(C.fulfilled,C.rejected)});var i;if(!s){var o=[Ul,void 0];for(Array.prototype.unshift.apply(o,r),o=o.concat(n),i=Promise.resolve(e);o.length;)i=i.then(o.shift(),o.shift());return i}for(var g=e;r.length;){var a=r.shift(),Q=r.shift();try{g=a(g)}catch(E){Q(E);break}}try{i=Ul(g)}catch(E){return Promise.reject(E)}for(;n.length;)i=i.then(n.shift(),n.shift());return i};gs.prototype.getUri=function(e){return e=si(this.defaults,e),km(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")};Ll.forEach(["delete","get","head","options"],function(e){gs.prototype[e]=function(t,r){return this.request(si(r||{},{method:e,url:t,data:(r||{}).data}))}});Ll.forEach(["post","put","patch"],function(e){gs.prototype[e]=function(t,r,s){return this.request(si(s||{},{method:e,url:t,data:r}))}});Yl.exports=gs});var XQ=c((FU,Gl)=>{"use strict";function ZQ(A){this.message=A}ZQ.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};ZQ.prototype.__CANCEL__=!0;Gl.exports=ZQ});var vl=c((NU,Tl)=>{"use strict";var Fm=XQ();function ni(A){if(typeof A!="function")throw new TypeError("executor must be a function.");var e;this.promise=new Promise(function(s){e=s});var t=this;A(function(s){t.reason||(t.reason=new Fm(s),e(t.reason))})}ni.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};ni.source=function(){var e,t=new ni(function(s){e=s});return{token:t,cancel:e}};Tl.exports=ni});var Vl=c((mU,Hl)=>{"use strict";Hl.exports=function(e){return function(r){return e.apply(null,r)}}});var ql=c((bU,xl)=>{"use strict";xl.exports=function(e){return typeof e=="object"&&e.isAxiosError===!0}});var Pl=c((SU,KQ)=>{"use strict";var Wl=mA(),Nm=cQ(),ii=Jl(),mm=PQ(),bm=ri();function Ol(A){var e=new ii(A),t=Nm(ii.prototype.request,e);return Wl.extend(t,ii.prototype,e),Wl.extend(t,e),t}var Ce=Ol(bm);Ce.Axios=ii;Ce.create=function(e){return Ol(mm(Ce.defaults,e))};Ce.Cancel=XQ();Ce.CancelToken=vl();Ce.isCancel=qQ();Ce.all=function(e){return Promise.all(e)};Ce.spread=Vl();Ce.isAxiosError=ql();KQ.exports=Ce;KQ.exports.default=Ce});var Zl=c((UU,_l)=>{_l.exports=Pl()});var Xl=c((exports,module)=>{"use strict";var __awaiter=exports&&exports.__awaiter||function(A,e,t,r){function s(n){return n instanceof t?n:new t(function(i){i(n)})}return new(t||(t=Promise))(function(n,i){function o(Q){try{a(r.next(Q))}catch(E){i(E)}}function g(Q){try{a(r.throw(Q))}catch(E){i(E)}}function a(Q){Q.done?n(Q.value):s(Q.value).then(o,g)}a((r=r.apply(A,e||[])).next())})},__generator=exports&&exports.__generator||function(A,e){var t={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},r,s,n,i;return i={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(i[Symbol.iterator]=function(){return this}),i;function o(a){return function(Q){return g([a,Q])}}function g(a){if(r)throw new TypeError("Generator is already executing.");for(;t;)try{if(r=1,s&&(n=a[0]&2?s.return:a[0]?s.throw||((n=s.return)&&n.call(s),0):s.next)&&!(n=n.call(s,a[1])).done)return n;switch(s=0,n&&(a=[a[0]&2,n.value]),a[0]){case 0:case 1:n=a;break;case 4:return t.label++,{value:a[1],done:!1};case 5:t.label++,s=a[1],a=[0];continue;case 7:a=t.ops.pop(),t.trys.pop();continue;default:if(n=t.trys,!(n=n.length>0&&n[n.length-1])&&(a[0]===6||a[0]===2)){t=0;continue}if(a[0]===3&&(!n||a[1]>n[0]&&a[1]<n[3])){t.label=a[1];break}if(a[0]===6&&t.label<n[1]){t.label=n[1],n=a;break}if(n&&t.label<n[2]){t.label=n[2],t.ops.push(a);break}n[2]&&t.ops.pop(),t.trys.pop();continue}a=e.call(A,t)}catch(Q){a=[6,Q],s=0}finally{r=n=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}},__importDefault=exports&&exports.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(exports,"__esModule",{value:!0});exports.getAllAudioBase64=exports.getAudioBase64=void 0;var assertInputTypes_1=__importDefault(aQ()),axios_1=__importDefault(Zl()),splitLongText_1=__importDefault(BQ()),getAudioBase64=function(text,_a){var _b=_a===void 0?{}:_a,_c=_b.lang,lang=_c===void 0?"en":_c,_d=_b.slow,slow=_d===void 0?!1:_d,_e=_b.host,host=_e===void 0?"https://translate.google.com":_e,_f=_b.timeout,timeout=_f===void 0?1e4:_f;return __awaiter(void 0,void 0,void 0,function(){var res,result;return __generator(this,function(_g){switch(_g.label){case 0:if(assertInputTypes_1.default(text,lang,slow,host),typeof timeout!="number"||timeout<=0)throw new TypeError("timeout should be a positive number");if(text.length>200)throw new RangeError("text length ("+text.length+') should be less than 200 characters. Try "getAllAudioBase64(text, [option])" for long text.');return[4,axios_1.default({method:"post",baseURL:host,url:"/_/TranslateWebserverUi/data/batchexecute",timeout,data:"f.req="+encodeURIComponent(JSON.stringify([[["jQ1olc",JSON.stringify([text,lang,slow?!0:null,"null"]),null,"generic"]]]))})];case 1:res=_g.sent();try{result=eval(res.data.slice(5))[0][2]}catch(A){throw new Error(`parse response failed: -`+res.data)}if(!result)throw new Error('lang "'+lang+'" might not exist');try{result=eval(result)[0]}catch(A){throw new Error(`parse response failed: -`+res.data)}return[2,result]}})})};exports.getAudioBase64=getAudioBase64;var getAllAudioBase64=function(A,e){var t=e===void 0?{}:e,r=t.lang,s=r===void 0?"en":r,n=t.slow,i=n===void 0?!1:n,o=t.host,g=o===void 0?"https://translate.google.com":o,a=t.splitPunct,Q=a===void 0?"":a,E=t.timeout,C=E===void 0?1e4:E;return __awaiter(void 0,void 0,void 0,function(){var B,I,h,l,u,F;return __generator(this,function(w){switch(w.label){case 0:if(assertInputTypes_1.default(A,s,i,g),typeof Q!="string")throw new TypeError("splitPunct should be a string");if(typeof C!="number"||C<=0)throw new TypeError("timeout should be a positive number");return B=splitLongText_1.default(A,{splitPunct:Q}),[4,Promise.all(B.map(function(k){return exports.getAudioBase64(k,{lang:s,slow:i,host:g,timeout:C})}))];case 1:for(I=w.sent(),h=[],l=0;l<B.length;l++)u=B[l],F=I[l],h.push({shortText:u,base64:F});return[2,h]}})})};exports.getAllAudioBase64=getAllAudioBase64});var zl=c(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.getAllAudioBase64=Re.getAudioBase64=Re.getAllAudioUrls=Re.getAudioUrl=void 0;var Kl=fh();Object.defineProperty(Re,"getAudioUrl",{enumerable:!0,get:function(){return Kl.getAudioUrl}});Object.defineProperty(Re,"getAllAudioUrls",{enumerable:!0,get:function(){return Kl.getAllAudioUrls}});var jl=Xl();Object.defineProperty(Re,"getAudioBase64",{enumerable:!0,get:function(){return jl.getAudioBase64}});Object.defineProperty(Re,"getAllAudioBase64",{enumerable:!0,get:function(){return jl.getAllAudioBase64}})});var eu=c(GA=>{"use strict";var Sm=GA&&GA.__createBinding||(Object.create?function(A,e,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(A,r,s)}:function(A,e,t,r){r===void 0&&(r=t),A[r]=e[t]}),Um=GA&&GA.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:!0,value:e})}:function(A,e){A.default=e}),$l=GA&&GA.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)t!=="default"&&Object.prototype.hasOwnProperty.call(A,t)&&Sm(e,A,t);return Um(e,A),e};Object.defineProperty(GA,"__esModule",{value:!0});GA.req=GA.json=GA.toBuffer=void 0;var Lm=$l(require("http")),Mm=$l(require("https"));async function Au(A){let e=0,t=[];for await(let r of A)e+=r.length,t.push(r);return Buffer.concat(t,e)}GA.toBuffer=Au;async function Ym(A){let t=(await Au(A)).toString("utf8");try{return JSON.parse(t)}catch(r){let s=r;throw s.message+=` (input: ${t})`,s}}GA.json=Ym;function Jm(A,e={}){let r=((typeof A=="string"?A:A.href).startsWith("https:")?Mm:Lm).request(A,e),s=new Promise((n,i)=>{r.once("response",n).once("error",i).end()});return r.then=s.then.bind(s),r}GA.req=Jm});var nu=c(KA=>{"use strict";var ru=KA&&KA.__createBinding||(Object.create?function(A,e,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(A,r,s)}:function(A,e,t,r){r===void 0&&(r=t),A[r]=e[t]}),Gm=KA&&KA.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:!0,value:e})}:function(A,e){A.default=e}),su=KA&&KA.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)t!=="default"&&Object.prototype.hasOwnProperty.call(A,t)&&ru(e,A,t);return Gm(e,A),e},Tm=KA&&KA.__exportStar||function(A,e){for(var t in A)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&ru(e,A,t)};Object.defineProperty(KA,"__esModule",{value:!0});KA.Agent=void 0;var vm=su(require("net")),tu=su(require("http")),Hm=require("https");Tm(eu(),KA);var ke=Symbol("AgentBaseInternalState"),jQ=class extends tu.Agent{constructor(e){super(e),this[ke]={}}isSecureEndpoint(e){if(e){if(typeof e.secureEndpoint=="boolean")return e.secureEndpoint;if(typeof e.protocol=="string")return e.protocol==="https:"}let{stack:t}=new Error;return typeof t!="string"?!1:t.split(` -`).some(r=>r.indexOf("(https.js:")!==-1||r.indexOf("node:https:")!==-1)}incrementSockets(e){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[e]||(this.sockets[e]=[]);let t=new vm.Socket({writable:!1});return this.sockets[e].push(t),this.totalSocketCount++,t}decrementSockets(e,t){if(!this.sockets[e]||t===null)return;let r=this.sockets[e],s=r.indexOf(t);s!==-1&&(r.splice(s,1),this.totalSocketCount--,r.length===0&&delete this.sockets[e])}getName(e){return(typeof e.secureEndpoint=="boolean"?e.secureEndpoint:this.isSecureEndpoint(e))?Hm.Agent.prototype.getName.call(this,e):super.getName(e)}createSocket(e,t,r){let s={...t,secureEndpoint:this.isSecureEndpoint(t)},n=this.getName(s),i=this.incrementSockets(n);Promise.resolve().then(()=>this.connect(e,s)).then(o=>{if(this.decrementSockets(n,i),o instanceof tu.Agent)try{return o.addRequest(e,s)}catch(g){return r(g)}this[ke].currentSocket=o,super.createSocket(e,t,r)},o=>{this.decrementSockets(n,i),r(o)})}createConnection(){let e=this[ke].currentSocket;if(this[ke].currentSocket=void 0,!e)throw new Error("No socket was returned in the `connect()` function");return e}get defaultPort(){return this[ke].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(e){this[ke]&&(this[ke].defaultPort=e)}get protocol(){return this[ke].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(e){this[ke]&&(this[ke].protocol=e)}};KA.Agent=jQ});var iu=c(Ir=>{"use strict";var Vm=Ir&&Ir.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(Ir,"__esModule",{value:!0});Ir.parseProxyResponse=void 0;var xm=Vm(Ai()),oi=(0,xm.default)("https-proxy-agent:parse-proxy-response");function qm(A){return new Promise((e,t)=>{let r=0,s=[];function n(){let Q=A.read();Q?a(Q):A.once("readable",n)}function i(){A.removeListener("end",o),A.removeListener("error",g),A.removeListener("readable",n)}function o(){i(),oi("onend"),t(new Error("Proxy connection ended before receiving CONNECT response"))}function g(Q){i(),oi("onerror %o",Q),t(Q)}function a(Q){s.push(Q),r+=Q.length;let E=Buffer.concat(s,r),C=E.indexOf(`\r -\r -`);if(C===-1){oi("have not received end of HTTP headers yet..."),n();return}let B=E.slice(0,C).toString("ascii").split(`\r -`),I=B.shift();if(!I)return A.destroy(),t(new Error("No header received from proxy CONNECT response"));let h=I.split(" "),l=+h[1],u=h.slice(2).join(" "),F={};for(let w of B){if(!w)continue;let k=w.indexOf(":");if(k===-1)return A.destroy(),t(new Error(`Invalid header from proxy CONNECT response: "${w}"`));let T=w.slice(0,k).toLowerCase(),O=w.slice(k+1).trimStart(),V=F[T];typeof V=="string"?F[T]=[V,O]:Array.isArray(V)?V.push(O):F[T]=O}oi("got proxy server response: %o %o",I,F),i(),e({connect:{statusCode:l,statusText:u,headers:F},buffered:E})}A.on("error",g),A.on("end",o),n()})}Ir.parseProxyResponse=qm});var Cu=c(oe=>{"use strict";var Wm=oe&&oe.__createBinding||(Object.create?function(A,e,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(A,r,s)}:function(A,e,t,r){r===void 0&&(r=t),A[r]=e[t]}),Om=oe&&oe.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:!0,value:e})}:function(A,e){A.default=e}),Eu=oe&&oe.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)t!=="default"&&Object.prototype.hasOwnProperty.call(A,t)&&Wm(e,A,t);return Om(e,A),e},au=oe&&oe.__importDefault||function(A){return A&&A.__esModule?A:{default:A}};Object.defineProperty(oe,"__esModule",{value:!0});oe.HttpsProxyAgent=void 0;var gi=Eu(require("net")),ou=Eu(require("tls")),Pm=au(require("assert")),_m=au(Ai()),Zm=nu(),Xm=require("url"),Km=iu(),Qs=(0,_m.default)("https-proxy-agent"),gu=A=>A.servername===void 0&&A.host&&!gi.isIP(A.host)?{...A,servername:A.host}:A,Qi=class extends Zm.Agent{constructor(e,t){super(t),this.options={path:void 0},this.proxy=typeof e=="string"?new Xm.URL(e):e,this.proxyHeaders=t?.headers??{},Qs("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let r=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),s=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...t?Qu(t,"headers"):null,host:r,port:s}}async connect(e,t){let{proxy:r}=this;if(!t.host)throw new TypeError('No "host" provided');let s;r.protocol==="https:"?(Qs("Creating `tls.Socket`: %o",this.connectOpts),s=ou.connect(gu(this.connectOpts))):(Qs("Creating `net.Socket`: %o",this.connectOpts),s=gi.connect(this.connectOpts));let n=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},i=gi.isIPv6(t.host)?`[${t.host}]`:t.host,o=`CONNECT ${i}:${t.port} HTTP/1.1\r -`;if(r.username||r.password){let C=`${decodeURIComponent(r.username)}:${decodeURIComponent(r.password)}`;n["Proxy-Authorization"]=`Basic ${Buffer.from(C).toString("base64")}`}n.Host=`${i}:${t.port}`,n["Proxy-Connection"]||(n["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let C of Object.keys(n))o+=`${C}: ${n[C]}\r -`;let g=(0,Km.parseProxyResponse)(s);s.write(`${o}\r -`);let{connect:a,buffered:Q}=await g;if(e.emit("proxyConnect",a),this.emit("proxyConnect",a,e),a.statusCode===200)return e.once("socket",jm),t.secureEndpoint?(Qs("Upgrading socket connection to TLS"),ou.connect({...Qu(gu(t),"host","path","port"),socket:s})):s;s.destroy();let E=new gi.Socket({writable:!1});return E.readable=!0,e.once("socket",C=>{Qs("Replaying proxy buffer for failed request"),(0,Pm.default)(C.listenerCount("data")>0),C.push(Q),C.push(null)}),E}};Qi.protocols=["http","https"];oe.HttpsProxyAgent=Qi;function jm(A){A.resume()}function Qu(A,...e){let t={},r;for(r in A)e.includes(r)||(t[r]=A[r]);return t}});var sb={};Du(sb,{default:()=>lu});module.exports=pu(sb);var Fe=require("@raycast/api");var QQ=cr(require("querystring")),es=cr(iQ());var As={auto:"Auto-Detect",ab:"Abkhaz",ace:"Acehnese",ach:"Acholi",aa:"Afar",af:"Afrikaans",sq:"Albanian",alz:"Alur",am:"Amharic",ar:"Arabic",hy:"Armenian",as:"Assamese",av:"Avar",awa:"Awadhi",ay:"Aymara",az:"Azerbaijani",ban:"Balinese",bal:"Baluchi",bm:"Bambara",bci:"Baoul\xE9",ba:"Bashkir",eu:"Basque",btx:"Batak Karo",bts:"Batak Simalungun",bbc:"Batak Toba",be:"Belarusian",bem:"Bemba",bn:"Bengali",bew:"Betawi",bho:"Bhojpuri",bik:"Bikol",bs:"Bosnian",br:"Breton",bg:"Bulgarian",bua:"Buryat",yue:"Cantonese",ca:"Catalan",ceb:"Cebuano",ch:"Chamorro",ce:"Chechen",ny:"Chichewa","zh-CN":"Chinese (Simplified)","zh-TW":"Chinese (Traditional)",chk:"Chuukese",cv:"Chuvash",co:"Corsican",crh:"Crimean Tatar (Cyrillic)","crh-Latn":"Crimean Tatar (Latin)",hr:"Croatian",cs:"Czech",da:"Danish","fa-AF":"Dari",dv:"Dhivehi",din:"Dinka",doi:"Dogri",dov:"Dombe",nl:"Dutch",dyu:"Dyula",dz:"Dzongkha",en:"English",eo:"Esperanto",et:"Estonian",ee:"Ewe",fo:"Faroese",fj:"Fijian",tl:"Filipino",fi:"Finnish",fon:"Fon",fr:"French","fr-CA":"French (Canada)",fy:"Frisian",fur:"Friulian",ff:"Fulani",gaa:"Ga",gl:"Galician",ka:"Georgian",de:"German",el:"Greek",gn:"Guarani",gu:"Gujarati",ht:"Haitian Creole",cnh:"Hakha Chin",ha:"Hausa",haw:"Hawaiian",iw:"Hebrew",hil:"Hiligaynon",hi:"Hindi",hmn:"Hmong",hu:"Hungarian",hrx:"Hunsrik",iba:"Iban",is:"Icelandic",ig:"Igbo",ilo:"Ilocano",id:"Indonesian","iu-Latn":"Inuktut (Latin)",iu:"Inuktut (Syllabics)",ga:"Irish",it:"Italian",jam:"Jamaican Patois",ja:"Japanese",jv:"Javanese",kac:"Jingpo",kl:"Kalaallisut",kn:"Kannada",kr:"Kanuri",pam:"Kapampangan",kk:"Kazakh",kha:"Khasi",km:"Khmer",cgg:"Kiga",kg:"Kikongo",rw:"Kinyarwanda",ktu:"Kituba",trp:"Kokborok",kv:"Komi",gom:"Konkani",ko:"Korean",kri:"Krio",ku:"Kurdish (Kurmanji)",ckb:"Kurdish (Sorani)",ky:"Kyrgyz",lo:"Lao",ltg:"Latgalian",la:"Latin",lv:"Latvian",lij:"Ligurian",li:"Limburgish",ln:"Lingala",lt:"Lithuanian",lmo:"Lombard",lg:"Luganda",luo:"Luo",lb:"Luxembourgish",mk:"Macedonian",mad:"Madurese",mai:"Maithili",mak:"Makassar",mg:"Malagasy",ms:"Malay","ms-Arab":"Malay (Jawi)",ml:"Malayalam",mt:"Maltese",mam:"Mam",gv:"Manx",mi:"Maori",mr:"Marathi",mh:"Marshallese",mwr:"Marwadi",mfe:"Mauritian Creole",chm:"Meadow Mari","mni-Mtei":"Meiteilon (Manipuri)",min:"Minang",lus:"Mizo",mn:"Mongolian",my:"Myanmar (Burmese)","bm-Nkoo":"NKo",nhe:"Nahuatl (Eastern Huasteca)","ndc-ZW":"Ndau",nr:"Ndebele (South)",new:"Nepalbhasa (Newari)",ne:"Nepali",no:"Norwegian",nus:"Nuer",oc:"Occitan",or:"Odia (Oriya)",om:"Oromo",os:"Ossetian",pag:"Pangasinan",pap:"Papiamento",ps:"Pashto",fa:"Persian",pl:"Polish",pt:"Portuguese (Brazil)","pt-PT":"Portuguese (Portugal)",pa:"Punjabi (Gurmukhi)","pa-Arab":"Punjabi (Shahmukhi)",qu:"Quechua",kek:"Q\u02BCeqchi\u02BC",rom:"Romani",ro:"Romanian",rn:"Rundi",ru:"Russian",se:"Sami (North)",sm:"Samoan",sg:"Sango",sa:"Sanskrit","sat-Latn":"Santali (Latin)",sat:"Santali (Ol Chiki)",gd:"Scots Gaelic",nso:"Sepedi",sr:"Serbian",st:"Sesotho",crs:"Seychellois Creole",shn:"Shan",sn:"Shona",scn:"Sicilian",szl:"Silesian",sd:"Sindhi",si:"Sinhala",sk:"Slovak",sl:"Slovenian",so:"Somali",es:"Spanish",su:"Sundanese",sus:"Susu",sw:"Swahili",ss:"Swati",sv:"Swedish",ty:"Tahitian",tg:"Tajik","ber-Latn":"Tamazight",ber:"Tamazight (Tifinagh)",ta:"Tamil",tt:"Tatar",te:"Telugu",tet:"Tetum",th:"Thai",bo:"Tibetan",ti:"Tigrinya",tiv:"Tiv",tpi:"Tok Pisin",to:"Tongan",lua:"Tshiluba",ts:"Tsonga",tn:"Tswana",tcy:"Tulu",tum:"Tumbuka",tr:"Turkish",tk:"Turkmen",tyv:"Tuvan",ak:"Twi",udm:"Udmurt",uk:"Ukrainian",ur:"Urdu",ug:"Uyghur",uz:"Uzbek",ve:"Venda",vec:"Venetian",vi:"Vietnamese",war:"Waray",cy:"Welsh",wo:"Wolof",xh:"Xhosa",sah:"Yakut",yi:"Yiddish",yo:"Yoruba",yua:"Yucatec Maya",zap:"Zapotec",zu:"Zulu"};function Vn(A){return A?A in As||(A=A.toLowerCase(),A in As)?A:Object.keys(As).filter(t=>typeof As[t]!="string"?!1:As[t].toLowerCase()===A)[0]||void 0:void 0}function Ch(A){return!!Vn(A)}var Ih=cr(iQ());function qF(A){let e;if(oQ!==null)e=oQ;else{e=xn("T");let g=xn("K");e=[e(),e()],e[1]=g(),e=(oQ=gQ[e.join(g())]||"")||""}let t=xn("t"),r=xn("k");t=[t(),t()],t[1]=r(),r="&"+t.join("")+"=",t=e.split("."),e=Number(t[0])||0;for(var s=[],n=0,i=0;i<A.length;i++){let g=A.charCodeAt(i);128>g?s[n++]=g:(2048>g?s[n++]=g>>6|192:((g&64512)==55296&&i+1<A.length&&(A.charCodeAt(i+1)&64512)==56320?(g=65536+((g&1023)<<10)+(A.charCodeAt(++i)&1023),s[n++]=g>>18|240,s[n++]=g>>12&63|128):s[n++]=g>>12|224,s[n++]=g>>6&63|128),s[n++]=g&63|128)}let o=Number(e);for(let g=0;g<s.length;g++)A+=s[g],o=Bh(o,"+-a^+6");return o=Bh(o,"+-3^+b+-f"),o^=Number(t[1])||0,0>o&&(o=(o&2147483647)+2147483648),o%=1e6,r+(A.toString()+"."+(o^e))}var oQ=null,xn=function(A){return function(){return A}},Bh=function(A,e){for(let t=0;t<e.length-2;t+=3){let r=e.charAt(t+2),s=r>="a"?r.charCodeAt(0)-87:Number(r);s=e.charAt(t+1)=="+"?A>>>s:A<<s,A=e.charAt(t)=="+"?A+s&4294967295:A^s}return A},ch=new Map,gQ={TKK:ch.get("TKK")||"0"};async function WF(){let A=Math.floor(Date.now()/36e5);if(Number(gQ.TKK.split(".")[0])!==A){let r=(await(await(0,Ih.request)("https://translate.google.com")).body.text()).match(/tkk:'\d+.\d+'/g);if(r&&r.length>0){let s=r[0].split(":")[1].replace(/'/g,"");gQ.TKK=s,ch.set("TKK",s)}}}async function hh(A){try{await WF();let e=qF(A);return e=e.replace("&tk=",""),{name:"tk",value:e}}catch(e){return e}}async function lh(A,e){typeof e!="object"&&(e={}),A=String(A);let t=null;if([e.from,e.to].forEach(C=>{C&&!Ch(C)&&(t=new Error,t.message=`The language '${C}' is not supported.`)}),t)throw t;Object.prototype.hasOwnProperty.call(e,"from")||(e.from="auto"),Object.prototype.hasOwnProperty.call(e,"to")||(e.to="en"),e.raw=!!e.raw,e.from=Vn(e.from),e.to=Vn(e.to);let r=await hh(A),s="https://translate.google.com/translate_a/single",n={client:"gtx",sl:e.from,tl:e.to,hl:e.to,dt:["at","bd","ex","ld","md","qca","rw","rm","ss","t"],ie:"UTF-8",oe:"UTF-8",otf:1,ssel:0,tsel:0,kc:7,q:A,[r.name]:r.value},i=`${s}?${QQ.default.stringify(n)}`,o,g=i;i.length>2048?(delete n.q,g=`${s}?${QQ.default.stringify(n)}`,o={method:"POST",body:new URLSearchParams({q:A}).toString(),headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"}},e.proxy&&(o.dispatcher=new es.ProxyAgent(e.proxy))):e.proxy&&(o={dispatcher:new es.ProxyAgent(e.proxy)});let Q=await(await(0,es.request)(g,o)).body.json(),E={text:"",from:{language:{didYouMean:!1,iso:""},text:{autoCorrected:!1,value:"",didYouMean:!1}},raw:""};if(e.raw&&(E.raw=Q),Q[0].forEach(C=>{C[0]&&(E.text+=C[0])}),Q[2]===Q[8][0][0]?E.from.language.iso=Q[2]:(E.from.language.didYouMean=!0,E.from.language.iso=Q[8][0][0]),Q[7]&&Q[7][0]){let C=Q[7][0];C=C.replace(/<b><i>/g,"["),C=C.replace(/<\/i><\/b>/g,"]"),E.from.text.value=C,Q[7][5]===!0?E.from.text.autoCorrected=!0:E.from.text.didYouMean=!0}return E}var zm=cr(zl());var $m=cr(Cu());var Ei=class extends Error{},Ab=A=>A?.[0]?.[1]?.[2];async function Bu(A,e){try{if(!A)return{originalText:A,translatedText:"",pronunciationText:"",langFrom:e.langFrom,langTo:e.langTo[0]};let t=await lh(A,{from:e.langFrom,to:e.langTo[0],raw:!0,proxy:e.proxy});return{originalText:A,translatedText:t.text,pronunciationText:Ab(t?.raw),langFrom:t?.from?.language?.iso,langTo:e.langTo[0]}}catch(t){if(t instanceof Error){if(t.name==="TooManyRequestsError"){let s=new Ei;throw s.name="Too many requests",s.message="please try again later",s}let r=new Ei;throw r.name=t.name,r.message=t.message,r}throw t}}var eb=150,tb=2e3,rb=15e3,Iu=1e3;async function cu(A,e=tb){await(0,Fe.showHUD)(A);let t=Math.max(e,A.length*eb),r=Math.min(t,rb),s=Math.floor(r/Iu);for(let n=0;n<s;n++)await new Promise(i=>setTimeout(i,Iu)),await(0,Fe.showHUD)(A)}async function hu(A){try{let e=(0,Fe.getPreferenceValues)(),t=e.lang2,r=e.lang1,s=e.proxy,n=await(0,Fe.getSelectedText)().catch(o=>(console.error("Error getting selected text:",o),""));if(!n||n.trim().length===0){await(0,Fe.showHUD)("No text selected. Please select text to translate.");return}await(0,Fe.showHUD)("Translating...");let i=await Bu(n,{langFrom:r,langTo:[t],proxy:s});if(i&&i.translatedText){let o=i.translatedText;await A(o)}else throw new Error("Translation not found in response")}catch(e){console.error("Translation error:",e),await(0,Fe.showHUD)("Translation failed. Please try again.")}}async function lu(){await hu(async A=>{await cu(A)})} -/*! Bundled license information: - -undici/lib/fetch/body.js: - (*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *) - -undici/lib/websocket/frame.js: - (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *) -*/ diff --git a/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-view.js.map b/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/instant-translate-view.js.map @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../node_modules/undici/lib/core/symbols.js", "../node_modules/undici/lib/core/errors.js", "../node_modules/undici/lib/core/util.js", "../node_modules/undici/lib/timers.js", "../node_modules/busboy/lib/utils.js", "../node_modules/streamsearch/lib/sbmh.js", "../node_modules/busboy/lib/types/multipart.js", "../node_modules/busboy/lib/types/urlencoded.js", "../node_modules/busboy/lib/index.js", "../node_modules/undici/lib/fetch/constants.js", "../node_modules/undici/lib/fetch/global.js", "../node_modules/undici/lib/fetch/util.js", "../node_modules/undici/lib/fetch/symbols.js", "../node_modules/undici/lib/fetch/webidl.js", "../node_modules/undici/lib/fetch/dataURL.js", "../node_modules/undici/lib/fetch/file.js", "../node_modules/undici/lib/fetch/formdata.js", "../node_modules/undici/lib/fetch/body.js", "../node_modules/undici/lib/core/request.js", "../node_modules/undici/lib/dispatcher.js", "../node_modules/undici/lib/dispatcher-base.js", "../node_modules/undici/lib/core/connect.js", "../node_modules/undici/src/llhttp/utils.ts", "../node_modules/undici/src/llhttp/constants.ts", "../node_modules/undici/lib/handler/RedirectHandler.js", "../node_modules/undici/lib/interceptor/redirectInterceptor.js", "../node_modules/undici/lib/llhttp/llhttp-wasm.js", "../node_modules/undici/lib/llhttp/llhttp_simd-wasm.js", "../node_modules/undici/lib/client.js", "../node_modules/undici/lib/node/fixed-queue.js", "../node_modules/undici/lib/pool-stats.js", "../node_modules/undici/lib/pool-base.js", "../node_modules/undici/lib/pool.js", "../node_modules/undici/lib/balanced-pool.js", "../node_modules/undici/lib/compat/dispatcher-weakref.js", "../node_modules/undici/lib/agent.js", "../node_modules/undici/lib/api/readable.js", "../node_modules/undici/lib/api/util.js", "../node_modules/undici/lib/api/abort-signal.js", "../node_modules/undici/lib/api/api-request.js", "../node_modules/undici/lib/api/api-stream.js", "../node_modules/undici/lib/api/api-pipeline.js", "../node_modules/undici/lib/api/api-upgrade.js", "../node_modules/undici/lib/api/api-connect.js", "../node_modules/undici/lib/api/index.js", "../node_modules/undici/lib/mock/mock-errors.js", "../node_modules/undici/lib/mock/mock-symbols.js", "../node_modules/undici/lib/mock/mock-utils.js", "../node_modules/undici/lib/mock/mock-interceptor.js", "../node_modules/undici/lib/mock/mock-client.js", "../node_modules/undici/lib/mock/mock-pool.js", "../node_modules/undici/lib/mock/pluralizer.js", "../node_modules/undici/lib/mock/pending-interceptors-formatter.js", "../node_modules/undici/lib/mock/mock-agent.js", "../node_modules/undici/lib/proxy-agent.js", "../node_modules/undici/lib/global.js", "../node_modules/undici/lib/handler/DecoratorHandler.js", "../node_modules/undici/lib/fetch/headers.js", "../node_modules/undici/lib/fetch/response.js", "../node_modules/undici/lib/fetch/request.js", "../node_modules/undici/lib/fetch/index.js", "../node_modules/undici/lib/fileapi/symbols.js", "../node_modules/undici/lib/fileapi/progressevent.js", "../node_modules/undici/lib/fileapi/encoding.js", "../node_modules/undici/lib/fileapi/util.js", "../node_modules/undici/lib/fileapi/filereader.js", "../node_modules/undici/lib/cache/symbols.js", "../node_modules/undici/lib/cache/util.js", "../node_modules/undici/lib/cache/cache.js", "../node_modules/undici/lib/cache/cachestorage.js", "../node_modules/undici/lib/cookies/constants.js", "../node_modules/undici/lib/cookies/util.js", "../node_modules/undici/lib/cookies/parse.js", "../node_modules/undici/lib/cookies/index.js", "../node_modules/undici/lib/websocket/constants.js", "../node_modules/undici/lib/websocket/symbols.js", "../node_modules/undici/lib/websocket/events.js", "../node_modules/undici/lib/websocket/util.js", "../node_modules/undici/lib/websocket/connection.js", "../node_modules/undici/lib/websocket/frame.js", "../node_modules/undici/lib/websocket/receiver.js", "../node_modules/undici/lib/websocket/websocket.js", "../node_modules/undici/index.js", "../node_modules/google-tts-api/src/assertInputTypes.ts", "../node_modules/google-tts-api/src/splitLongText.ts", "../node_modules/google-tts-api/src/getAudioUrl.ts", "../node_modules/axios/lib/helpers/bind.js", "../node_modules/axios/lib/utils.js", "../node_modules/axios/lib/helpers/buildURL.js", "../node_modules/axios/lib/core/InterceptorManager.js", "../node_modules/axios/lib/helpers/normalizeHeaderName.js", "../node_modules/axios/lib/core/enhanceError.js", "../node_modules/axios/lib/core/createError.js", "../node_modules/axios/lib/core/settle.js", "../node_modules/axios/lib/helpers/cookies.js", "../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../node_modules/axios/lib/helpers/combineURLs.js", "../node_modules/axios/lib/core/buildFullPath.js", "../node_modules/axios/lib/helpers/parseHeaders.js", "../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../node_modules/axios/lib/adapters/xhr.js", "../node_modules/ms/index.js", "../node_modules/debug/src/common.js", "../node_modules/debug/src/browser.js", "../node_modules/has-flag/index.js", "../node_modules/supports-color/index.js", "../node_modules/debug/src/node.js", "../node_modules/debug/src/index.js", "../node_modules/follow-redirects/debug.js", "../node_modules/follow-redirects/index.js", "../node_modules/axios/package.json", "../node_modules/axios/lib/adapters/http.js", "../node_modules/axios/lib/defaults.js", "../node_modules/axios/lib/core/transformData.js", "../node_modules/axios/lib/cancel/isCancel.js", "../node_modules/axios/lib/core/dispatchRequest.js", "../node_modules/axios/lib/core/mergeConfig.js", "../node_modules/axios/lib/helpers/validator.js", "../node_modules/axios/lib/core/Axios.js", "../node_modules/axios/lib/cancel/Cancel.js", "../node_modules/axios/lib/cancel/CancelToken.js", "../node_modules/axios/lib/helpers/spread.js", "../node_modules/axios/lib/helpers/isAxiosError.js", "../node_modules/axios/lib/axios.js", "../node_modules/axios/index.js", "../node_modules/google-tts-api/src/getAudioBase64.ts", "../node_modules/google-tts-api/src/index.ts", "../node_modules/agent-base/src/helpers.ts", "../node_modules/agent-base/src/index.ts", "../node_modules/https-proxy-agent/src/parse-proxy-response.ts", "../node_modules/https-proxy-agent/src/index.ts", "../src/instant-translate-view.tsx", "../src/instant-translate.tsx", "../vendor/@iamtraction-translate/src/index.ts", "../vendor/@iamtraction-translate/src/languages.ts", "../vendor/@iamtraction-translate/src/tokenGenerator.ts", "../src/simple-translate.ts"], - "sourcesContent": ["module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size')\n}\n", "'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseExceededMaxSizeError)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\n\nconst [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v))\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n return url\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.')\n }\n\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n if (!(url instanceof URL)) {\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substr(1, idx - 1)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substr(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (!isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\nfunction parseHeaders (headers, obj = {}) {\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1]\n } else {\n obj[key] = headers[i + 1].toString('utf8')\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString('utf8'))\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if ('content-length' in obj && 'content-disposition' in obj) {\n obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1')\n }\n\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n const ret = []\n let hasContentLength = false\n let contentDispositionIdx = -1\n\n for (let n = 0; n < headers.length; n += 2) {\n const key = headers[n + 0].toString()\n const val = headers[n + 1].toString('utf8')\n\n if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n ret.push(key, val)\n hasContentLength = true\n } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n contentDispositionIdx = ret.push(key, val) - 1\n } else {\n ret.push(key, val)\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if (hasContentLength && contentDispositionIdx !== -1) {\n ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1')\n }\n\n return ret\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n // https://github.com/whatwg/streams/pull/1083\n return ReadableStream.from(iterable)\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.append === 'function' &&\n typeof object.delete === 'function' &&\n typeof object.get === 'function' &&\n typeof object.getAll === 'function' &&\n typeof object.has === 'function' &&\n typeof object.set === 'function' &&\n object[Symbol.toStringTag] === 'FormData'\n )\n}\n\nfunction throwIfAborted (signal) {\n if (!signal) { return }\n if (typeof signal.throwIfAborted === 'function') {\n signal.throwIfAborted()\n } else {\n if (signal.aborted) {\n // DOMException not available < v17.0.0\n const err = new Error('The operation was aborted')\n err.name = 'AbortError'\n throw err\n }\n }\n}\n\nlet events\nfunction addAbortListener (signal, listener) {\n if (typeof Symbol.dispose === 'symbol') {\n if (!events) {\n events = require('events')\n }\n if (typeof events.addAbortListener === 'function' && 'aborted' in signal) {\n return events.addAbortListener(signal, listener)\n }\n }\n if ('addEventListener' in signal) {\n signal.addEventListener('abort', listener, { once: true })\n return () => signal.removeEventListener('abort', listener)\n }\n signal.addListener('abort', listener)\n return () => signal.removeListener('abort', listener)\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed\n\n/**\n * @param {string} val\n */\nfunction toUSVString (val) {\n if (hasToWellFormed) {\n return `${val}`.toWellFormed()\n } else if (nodeUtil.toUSVString) {\n return nodeUtil.toUSVString(val)\n }\n\n return `${val}`\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString,\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL,\n throwIfAborted,\n addAbortListener,\n nodeMajor,\n nodeMinor,\n nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13)\n}\n", "'use strict'\n\nlet fastNow = Date.now()\nlet fastNowTimeout\n\nconst fastTimers = []\n\nfunction onTimeout () {\n fastNow = Date.now()\n\n let len = fastTimers.length\n let idx = 0\n while (idx < len) {\n const timer = fastTimers[idx]\n\n if (timer.state === 0) {\n timer.state = fastNow + timer.delay\n } else if (timer.state > 0 && fastNow >= timer.state) {\n timer.state = -1\n timer.callback(timer.opaque)\n }\n\n if (timer.state === -1) {\n timer.state = -2\n if (idx !== len - 1) {\n fastTimers[idx] = fastTimers.pop()\n } else {\n fastTimers.pop()\n }\n len -= 1\n } else {\n idx += 1\n }\n }\n\n if (fastTimers.length > 0) {\n refreshTimeout()\n }\n}\n\nfunction refreshTimeout () {\n if (fastNowTimeout && fastNowTimeout.refresh) {\n fastNowTimeout.refresh()\n } else {\n clearTimeout(fastNowTimeout)\n fastNowTimeout = setTimeout(onTimeout, 1e3)\n if (fastNowTimeout.unref) {\n fastNowTimeout.unref()\n }\n }\n}\n\nclass Timeout {\n constructor (callback, delay, opaque) {\n this.callback = callback\n this.delay = delay\n this.opaque = opaque\n\n // -2 not in timer list\n // -1 in timer list but inactive\n // 0 in timer list waiting for time\n // > 0 in timer list waiting for time to expire\n this.state = -2\n\n this.refresh()\n }\n\n refresh () {\n if (this.state === -2) {\n fastTimers.push(this)\n if (!fastNowTimeout || fastTimers.length === 1) {\n refreshTimeout()\n }\n }\n\n this.state = 0\n }\n\n clear () {\n this.state = -1\n }\n}\n\nmodule.exports = {\n setTimeout (callback, delay, opaque) {\n return delay < 1e3\n ? setTimeout(callback, delay, opaque)\n : new Timeout(callback, delay, opaque)\n },\n clearTimeout (timeout) {\n if (timeout instanceof Timeout) {\n timeout.clear()\n } else {\n clearTimeout(timeout)\n }\n }\n}\n", "'use strict';\n\nfunction parseContentType(str) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n // Parse type\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 47/* '/' */ || i === 0)\n return;\n break;\n }\n }\n // Check for type without subtype\n if (i === str.length)\n return;\n\n const type = str.slice(0, i).toLowerCase();\n\n // Parse subtype\n const subtypeStart = ++i;\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n if (parseContentTypeParams(str, i, params) === undefined)\n return;\n break;\n }\n }\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n const subtype = str.slice(subtypeStart, i).toLowerCase();\n\n return { type, subtype, params };\n}\n\nfunction parseContentTypeParams(str, i, params) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 61/* '=' */)\n return;\n break;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n name = str.slice(nameStart, i);\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction parseDisposition(str, defDecoder) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (parseDispositionParams(str, i, params, defDecoder) === undefined)\n return;\n break;\n }\n }\n\n const type = str.slice(0, i).toLowerCase();\n\n return { type, params };\n}\n\nfunction parseDispositionParams(str, i, params, defDecoder) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code === 61/* '=' */)\n break;\n return;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n let charset;\n //~ let lang;\n name = str.slice(nameStart, i);\n if (name.charCodeAt(name.length - 1) === 42/* '*' */) {\n // Extended value\n\n const charsetStart = ++i;\n // Parse charset name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (CHARSET[code] !== 1) {\n if (code !== 39/* '\\'' */)\n return;\n break;\n }\n }\n\n // Incomplete charset (malformed)\n if (i === str.length)\n return;\n\n charset = str.slice(charsetStart, i);\n ++i; // Skip over the '\\''\n\n //~ const langStart = ++i;\n // Parse language name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 39/* '\\'' */)\n break;\n }\n\n // Incomplete language (malformed)\n if (i === str.length)\n return;\n\n //~ lang = str.slice(langStart, i);\n ++i; // Skip over the '\\''\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n valueStart = i;\n\n let encode = 0;\n // Parse value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (EXTENDED_VALUE[code] !== 1) {\n if (code === 37/* '%' */) {\n let hexUpper;\n let hexLower;\n if (i + 2 < str.length\n && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1\n && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) {\n const byteVal = (hexUpper << 4) + hexLower;\n value += str.slice(valueStart, i);\n value += String.fromCharCode(byteVal);\n i += 2;\n valueStart = i + 1;\n if (byteVal >= 128)\n encode = 2;\n else if (encode === 0)\n encode = 1;\n continue;\n }\n // '%' disallowed in non-percent encoded contexts (malformed)\n return;\n }\n break;\n }\n }\n\n value += str.slice(valueStart, i);\n value = convertToUTF8(value, charset, encode);\n if (value === undefined)\n return;\n } else {\n // Non-extended value\n\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n value = defDecoder(value, 2);\n if (value === undefined)\n return;\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction getDecoder(charset) {\n let lc;\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8;\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1;\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le;\n case 'base64':\n return decoders.base64;\n default:\n if (lc === undefined) {\n lc = true;\n charset = charset.toLowerCase();\n continue;\n }\n return decoders.other.bind(charset);\n }\n }\n}\n\nconst decoders = {\n utf8: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string') {\n // If `data` never had any percent-encoded bytes or never had any that\n // were outside of the ASCII range, then we can safely just return the\n // input since UTF-8 is ASCII compatible\n if (hint < 2)\n return data;\n\n data = Buffer.from(data, 'latin1');\n }\n return data.utf8Slice(0, data.length);\n },\n\n latin1: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n return data;\n return data.latin1Slice(0, data.length);\n },\n\n utf16le: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.ucs2Slice(0, data.length);\n },\n\n base64: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.base64Slice(0, data.length);\n },\n\n other: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n try {\n const decoder = new TextDecoder(this);\n return decoder.decode(data);\n } catch {}\n },\n};\n\nfunction convertToUTF8(data, charset, hint) {\n const decode = getDecoder(charset);\n if (decode)\n return decode(data, hint);\n}\n\nfunction basename(path) {\n if (typeof path !== 'string')\n return '';\n for (let i = path.length - 1; i >= 0; --i) {\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1);\n return (path === '..' || path === '.' ? '' : path);\n }\n }\n return (path === '..' || path === '.' ? '' : path);\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst QDTEXT = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nconst CHARSET = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst EXTENDED_VALUE = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n};\n", "'use strict';\n/*\n Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n*/\nfunction memcmp(buf1, pos1, buf2, pos2, num) {\n for (let i = 0; i < num; ++i) {\n if (buf1[pos1 + i] !== buf2[pos2 + i])\n return false;\n }\n return true;\n}\n\nclass SBMH {\n constructor(needle, cb) {\n if (typeof cb !== 'function')\n throw new Error('Missing match callback');\n\n if (typeof needle === 'string')\n needle = Buffer.from(needle);\n else if (!Buffer.isBuffer(needle))\n throw new Error(`Expected Buffer for needle, got ${typeof needle}`);\n\n const needleLen = needle.length;\n\n this.maxMatches = Infinity;\n this.matches = 0;\n\n this._cb = cb;\n this._lookbehindSize = 0;\n this._needle = needle;\n this._bufPos = 0;\n\n this._lookbehind = Buffer.allocUnsafe(needleLen);\n\n // Initialize occurrence table.\n this._occ = [\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen\n ];\n\n // Populate occurrence table with analysis of the needle, ignoring the last\n // letter.\n if (needleLen > 1) {\n for (let i = 0; i < needleLen - 1; ++i)\n this._occ[needle[i]] = needleLen - 1 - i;\n }\n }\n\n reset() {\n this.matches = 0;\n this._lookbehindSize = 0;\n this._bufPos = 0;\n }\n\n push(chunk, pos) {\n let result;\n if (!Buffer.isBuffer(chunk))\n chunk = Buffer.from(chunk, 'latin1');\n const chunkLen = chunk.length;\n this._bufPos = pos || 0;\n while (result !== chunkLen && this.matches < this.maxMatches)\n result = feed(this, chunk);\n return result;\n }\n\n destroy() {\n const lbSize = this._lookbehindSize;\n if (lbSize)\n this._cb(false, this._lookbehind, 0, lbSize, false);\n this.reset();\n }\n}\n\nfunction feed(self, data) {\n const len = data.length;\n const needle = self._needle;\n const needleLen = needle.length;\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehindSize - 2]\n let pos = -self._lookbehindSize;\n const lastNeedleCharPos = needleLen - 1;\n const lastNeedleChar = needle[lastNeedleCharPos];\n const end = len - needleLen;\n const occ = self._occ;\n const lookbehind = self._lookbehind;\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= end) {\n const nextPos = pos + lastNeedleCharPos;\n const ch = (nextPos < 0\n ? lookbehind[self._lookbehindSize + nextPos]\n : data[nextPos]);\n\n if (ch === lastNeedleChar\n && matchNeedle(self, data, pos, lastNeedleCharPos)) {\n self._lookbehindSize = 0;\n ++self.matches;\n if (pos > -self._lookbehindSize)\n self._cb(true, lookbehind, 0, self._lookbehindSize + pos, false);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // No match.\n\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !matchNeedle(self, data, pos, len - pos))\n ++pos;\n\n if (pos < 0) {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = self._lookbehindSize + pos;\n\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n self._cb(false, lookbehind, 0, bytesToCutOff, false);\n }\n\n self._lookbehindSize -= bytesToCutOff;\n lookbehind.copy(lookbehind, 0, bytesToCutOff, self._lookbehindSize);\n lookbehind.set(data, self._lookbehindSize);\n self._lookbehindSize += len;\n\n self._bufPos = len;\n return len;\n }\n\n // Discard lookbehind buffer.\n self._cb(false, lookbehind, 0, self._lookbehindSize, false);\n self._lookbehindSize = 0;\n }\n\n pos += self._bufPos;\n\n const firstNeedleChar = needle[0];\n\n // Lookbehind buffer is now empty. Perform Boyer-Moore-Horspool\n // search with optimized character lookup code that only considers\n // the current round's haystack data.\n while (pos <= end) {\n const ch = data[pos + lastNeedleCharPos];\n\n if (ch === lastNeedleChar\n && data[pos] === firstNeedleChar\n && memcmp(needle, 0, data, pos, lastNeedleCharPos)) {\n ++self.matches;\n if (pos > 0)\n self._cb(true, data, self._bufPos, pos, true);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (pos < len) {\n if (data[pos] !== firstNeedleChar\n || !memcmp(data, pos, needle, 0, len - pos)) {\n ++pos;\n continue;\n }\n data.copy(lookbehind, 0, pos, len);\n self._lookbehindSize = len - pos;\n break;\n }\n\n // Everything until `pos` is guaranteed not to contain needle data.\n if (pos > 0)\n self._cb(false, data, self._bufPos, pos < len ? pos : len, true);\n\n self._bufPos = len;\n return len;\n}\n\nfunction matchNeedle(self, data, pos, len) {\n const lb = self._lookbehind;\n const lbSize = self._lookbehindSize;\n const needle = self._needle;\n\n for (let i = 0; i < len; ++i, ++pos) {\n const ch = (pos < 0 ? lb[lbSize + pos] : data[pos]);\n if (ch !== needle[i])\n return false;\n }\n return true;\n}\n\nmodule.exports = SBMH;\n", "'use strict';\n\nconst { Readable, Writable } = require('stream');\n\nconst StreamSearch = require('streamsearch');\n\nconst {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n} = require('../utils.js');\n\nconst BUF_CRLF = Buffer.from('\\r\\n');\nconst BUF_CR = Buffer.from('\\r');\nconst BUF_DASH = Buffer.from('-');\n\nfunction noop() {}\n\nconst MAX_HEADER_PAIRS = 2000; // From node\nconst MAX_HEADER_SIZE = 16 * 1024; // From node (its default value)\n\nconst HPARSER_NAME = 0;\nconst HPARSER_PRE_OWS = 1;\nconst HPARSER_VALUE = 2;\nclass HeaderParser {\n constructor(cb) {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n this.cb = cb;\n }\n\n reset() {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n }\n\n push(chunk, pos, end) {\n let start = pos;\n while (pos < end) {\n switch (this.state) {\n case HPARSER_NAME: {\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (TOKEN[code] !== 1) {\n if (code !== 58/* ':' */)\n return -1;\n this.name += chunk.latin1Slice(start, pos);\n if (this.name.length === 0)\n return -1;\n ++pos;\n done = true;\n this.state = HPARSER_PRE_OWS;\n break;\n }\n }\n if (!done) {\n this.name += chunk.latin1Slice(start, pos);\n break;\n }\n // FALLTHROUGH\n }\n case HPARSER_PRE_OWS: {\n // Skip optional whitespace\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */) {\n start = pos;\n done = true;\n this.state = HPARSER_VALUE;\n break;\n }\n }\n if (!done)\n break;\n // FALLTHROUGH\n }\n case HPARSER_VALUE:\n switch (this.crlf) {\n case 0: // Nothing yet\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (FIELD_VCHAR[code] !== 1) {\n if (code !== 13/* '\\r' */)\n return -1;\n ++this.crlf;\n break;\n }\n }\n this.value += chunk.latin1Slice(start, pos++);\n break;\n case 1: // Received CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n ++this.crlf;\n break;\n case 2: { // Received CR LF\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code === 32/* ' ' */ || code === 9/* '\\t' */) {\n // Folded value\n start = pos;\n this.crlf = 0;\n } else {\n if (++this.pairCount < MAX_HEADER_PAIRS) {\n this.name = this.name.toLowerCase();\n if (this.header[this.name] === undefined)\n this.header[this.name] = [this.value];\n else\n this.header[this.name].push(this.value);\n }\n if (code === 13/* '\\r' */) {\n ++this.crlf;\n ++pos;\n } else {\n // Assume start of next header field name\n start = pos;\n this.crlf = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n }\n }\n break;\n }\n case 3: { // Received CR LF CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n // End of header\n const header = this.header;\n this.reset();\n this.cb(header);\n return pos;\n }\n }\n break;\n }\n }\n\n return pos;\n }\n}\n\nclass FileStream extends Readable {\n constructor(opts, owner) {\n super(opts);\n this.truncated = false;\n this._readcb = null;\n this.once('end', () => {\n // We need to make sure that we call any outstanding _writecb() that is\n // associated with this file so that processing of the rest of the form\n // can continue. This may not happen if the file stream ends right after\n // backpressure kicks in, so we force it here.\n this._read();\n if (--owner._fileEndsLeft === 0 && owner._finalcb) {\n const cb = owner._finalcb;\n owner._finalcb = null;\n // Make sure other 'end' event handlers get a chance to be executed\n // before busboy's 'finish' event is emitted\n process.nextTick(cb);\n }\n });\n }\n _read(n) {\n const cb = this._readcb;\n if (cb) {\n this._readcb = null;\n cb();\n }\n }\n}\n\nconst ignoreData = {\n push: (chunk, pos) => {},\n destroy: () => {},\n};\n\nfunction callAndUnsetCb(self, err) {\n const cb = self._writecb;\n self._writecb = null;\n if (err)\n self.destroy(err);\n else if (cb)\n cb();\n}\n\nfunction nullDecoder(val, hint) {\n return val;\n}\n\nclass Multipart extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n if (!cfg.conType.params || typeof cfg.conType.params.boundary !== 'string')\n throw new Error('Multipart: Boundary not found');\n\n const boundary = cfg.conType.params.boundary;\n const paramDecoder = (typeof cfg.defParamCharset === 'string'\n && cfg.defParamCharset\n ? getDecoder(cfg.defParamCharset)\n : nullDecoder);\n const defCharset = (cfg.defCharset || 'utf8');\n const preservePath = cfg.preservePath;\n const fileOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.fileHwm === 'number'\n ? cfg.fileHwm\n : undefined),\n };\n\n const limits = cfg.limits;\n const fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n const fileSizeLimit = (limits && typeof limits.fileSize === 'number'\n ? limits.fileSize\n : Infinity);\n const filesLimit = (limits && typeof limits.files === 'number'\n ? limits.files\n : Infinity);\n const fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n const partsLimit = (limits && typeof limits.parts === 'number'\n ? limits.parts\n : Infinity);\n\n let parts = -1; // Account for initial boundary\n let fields = 0;\n let files = 0;\n let skipPart = false;\n\n this._fileEndsLeft = 0;\n this._fileStream = undefined;\n this._complete = false;\n let fileSize = 0;\n\n let field;\n let fieldSize = 0;\n let partCharset;\n let partEncoding;\n let partType;\n let partName;\n let partTruncated = false;\n\n let hitFilesLimit = false;\n let hitFieldsLimit = false;\n\n this._hparser = null;\n const hparser = new HeaderParser((header) => {\n this._hparser = null;\n skipPart = false;\n\n partType = 'text/plain';\n partCharset = defCharset;\n partEncoding = '7bit';\n partName = undefined;\n partTruncated = false;\n\n let filename;\n if (!header['content-disposition']) {\n skipPart = true;\n return;\n }\n\n const disp = parseDisposition(header['content-disposition'][0],\n paramDecoder);\n if (!disp || disp.type !== 'form-data') {\n skipPart = true;\n return;\n }\n\n if (disp.params) {\n if (disp.params.name)\n partName = disp.params.name;\n\n if (disp.params['filename*'])\n filename = disp.params['filename*'];\n else if (disp.params.filename)\n filename = disp.params.filename;\n\n if (filename !== undefined && !preservePath)\n filename = basename(filename);\n }\n\n if (header['content-type']) {\n const conType = parseContentType(header['content-type'][0]);\n if (conType) {\n partType = `${conType.type}/${conType.subtype}`;\n if (conType.params && typeof conType.params.charset === 'string')\n partCharset = conType.params.charset.toLowerCase();\n }\n }\n\n if (header['content-transfer-encoding'])\n partEncoding = header['content-transfer-encoding'][0].toLowerCase();\n\n if (partType === 'application/octet-stream' || filename !== undefined) {\n // File\n\n if (files === filesLimit) {\n if (!hitFilesLimit) {\n hitFilesLimit = true;\n this.emit('filesLimit');\n }\n skipPart = true;\n return;\n }\n ++files;\n\n if (this.listenerCount('file') === 0) {\n skipPart = true;\n return;\n }\n\n fileSize = 0;\n this._fileStream = new FileStream(fileOpts, this);\n ++this._fileEndsLeft;\n this.emit(\n 'file',\n partName,\n this._fileStream,\n { filename,\n encoding: partEncoding,\n mimeType: partType }\n );\n } else {\n // Non-file\n\n if (fields === fieldsLimit) {\n if (!hitFieldsLimit) {\n hitFieldsLimit = true;\n this.emit('fieldsLimit');\n }\n skipPart = true;\n return;\n }\n ++fields;\n\n if (this.listenerCount('field') === 0) {\n skipPart = true;\n return;\n }\n\n field = [];\n fieldSize = 0;\n }\n });\n\n let matchPostBoundary = 0;\n const ssCb = (isMatch, data, start, end, isDataSafe) => {\nretrydata:\n while (data) {\n if (this._hparser !== null) {\n const ret = this._hparser.push(data, start, end);\n if (ret === -1) {\n this._hparser = null;\n hparser.reset();\n this.emit('error', new Error('Malformed part header'));\n break;\n }\n start = ret;\n }\n\n if (start === end)\n break;\n\n if (matchPostBoundary !== 0) {\n if (matchPostBoundary === 1) {\n switch (data[start]) {\n case 45: // '-'\n // Try matching '--' after boundary\n matchPostBoundary = 2;\n ++start;\n break;\n case 13: // '\\r'\n // Try matching CR LF before header\n matchPostBoundary = 3;\n ++start;\n break;\n default:\n matchPostBoundary = 0;\n }\n if (start === end)\n return;\n }\n\n if (matchPostBoundary === 2) {\n matchPostBoundary = 0;\n if (data[start] === 45/* '-' */) {\n // End of multipart data\n this._complete = true;\n this._bparser = ignoreData;\n return;\n }\n // We saw something other than '-', so put the dash we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_DASH, 0, 1, false);\n this._writecb = writecb;\n } else if (matchPostBoundary === 3) {\n matchPostBoundary = 0;\n if (data[start] === 10/* '\\n' */) {\n ++start;\n if (parts >= partsLimit)\n break;\n // Prepare the header parser\n this._hparser = hparser;\n if (start === end)\n break;\n // Process the remaining data as a header\n continue retrydata;\n } else {\n // We saw something other than LF, so put the CR we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_CR, 0, 1, false);\n this._writecb = writecb;\n }\n }\n }\n\n if (!skipPart) {\n if (this._fileStream) {\n let chunk;\n const actualLen = Math.min(end - start, fileSizeLimit - fileSize);\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fileSize += chunk.length;\n if (fileSize === fileSizeLimit) {\n if (chunk.length > 0)\n this._fileStream.push(chunk);\n this._fileStream.emit('limit');\n this._fileStream.truncated = true;\n skipPart = true;\n } else if (!this._fileStream.push(chunk)) {\n if (this._writecb)\n this._fileStream._readcb = this._writecb;\n this._writecb = null;\n }\n } else if (field !== undefined) {\n let chunk;\n const actualLen = Math.min(\n end - start,\n fieldSizeLimit - fieldSize\n );\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fieldSize += actualLen;\n field.push(chunk);\n if (fieldSize === fieldSizeLimit) {\n skipPart = true;\n partTruncated = true;\n }\n }\n }\n\n break;\n }\n\n if (isMatch) {\n matchPostBoundary = 1;\n\n if (this._fileStream) {\n // End the active file stream if the previous part was a file\n this._fileStream.push(null);\n this._fileStream = null;\n } else if (field !== undefined) {\n let data;\n switch (field.length) {\n case 0:\n data = '';\n break;\n case 1:\n data = convertToUTF8(field[0], partCharset, 0);\n break;\n default:\n data = convertToUTF8(\n Buffer.concat(field, fieldSize),\n partCharset,\n 0\n );\n }\n field = undefined;\n fieldSize = 0;\n this.emit(\n 'field',\n partName,\n data,\n { nameTruncated: false,\n valueTruncated: partTruncated,\n encoding: partEncoding,\n mimeType: partType }\n );\n }\n\n if (++parts === partsLimit)\n this.emit('partsLimit');\n }\n };\n this._bparser = new StreamSearch(`\\r\\n--${boundary}`, ssCb);\n\n this._writecb = null;\n this._finalcb = null;\n\n // Just in case there is no preamble\n this.write(BUF_CRLF);\n }\n\n static detect(conType) {\n return (conType.type === 'multipart' && conType.subtype === 'form-data');\n }\n\n _write(chunk, enc, cb) {\n this._writecb = cb;\n this._bparser.push(chunk, 0);\n if (this._writecb)\n callAndUnsetCb(this);\n }\n\n _destroy(err, cb) {\n this._hparser = null;\n this._bparser = ignoreData;\n if (!err)\n err = checkEndState(this);\n const fileStream = this._fileStream;\n if (fileStream) {\n this._fileStream = null;\n fileStream.destroy(err);\n }\n cb(err);\n }\n\n _final(cb) {\n this._bparser.destroy();\n if (!this._complete)\n return cb(new Error('Unexpected end of form'));\n if (this._fileEndsLeft)\n this._finalcb = finalcb.bind(null, this, cb);\n else\n finalcb(this, cb);\n }\n}\n\nfunction finalcb(self, cb, err) {\n if (err)\n return cb(err);\n err = checkEndState(self);\n cb(err);\n}\n\nfunction checkEndState(self) {\n if (self._hparser)\n return new Error('Malformed part header');\n const fileStream = self._fileStream;\n if (fileStream) {\n self._fileStream = null;\n fileStream.destroy(new Error('Unexpected end of file'));\n }\n if (!self._complete)\n return new Error('Unexpected end of form');\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst FIELD_VCHAR = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nmodule.exports = Multipart;\n", "'use strict';\n\nconst { Writable } = require('stream');\n\nconst { getDecoder } = require('../utils.js');\n\nclass URLEncoded extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n let charset = (cfg.defCharset || 'utf8');\n if (cfg.conType.params && typeof cfg.conType.params.charset === 'string')\n charset = cfg.conType.params.charset;\n\n this.charset = charset;\n\n const limits = cfg.limits;\n this.fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n this.fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n this.fieldNameSizeLimit = (\n limits && typeof limits.fieldNameSize === 'number'\n ? limits.fieldNameSize\n : 100\n );\n\n this._inKey = true;\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n this._fields = 0;\n this._key = '';\n this._val = '';\n this._byte = -2;\n this._lastPos = 0;\n this._encode = 0;\n this._decoder = getDecoder(charset);\n }\n\n static detect(conType) {\n return (conType.type === 'application'\n && conType.subtype === 'x-www-form-urlencoded');\n }\n\n _write(chunk, enc, cb) {\n if (this._fields >= this.fieldsLimit)\n return cb();\n\n let i = 0;\n const len = chunk.length;\n this._lastPos = 0;\n\n // Check if we last ended mid-percent-encoded byte\n if (this._byte !== -2) {\n i = readPctEnc(this, chunk, i, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n if (this._inKey)\n ++this._bytesKey;\n else\n ++this._bytesVal;\n }\n\nmain:\n while (i < len) {\n if (this._inKey) {\n // Parsing key\n\n i = skipKeyBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 61: // '='\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n this._inKey = false;\n continue main;\n case 38: // '&'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0) {\n this.emit(\n 'field',\n this._key,\n '',\n { nameTruncated: this._keyTrunc,\n valueTruncated: false,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue;\n case 43: // '+'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._key += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n } else {\n // Parsing value\n\n i = skipValBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 38: // '&'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._inKey = true;\n this._val = this._decoder(this._val, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0 || this._bytesVal > 0) {\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue main;\n case 43: // '+'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._val += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n }\n }\n\n cb();\n }\n\n _final(cb) {\n if (this._byte !== -2)\n return cb(new Error('Malformed urlencoded form'));\n if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) {\n if (this._inKey)\n this._key = this._decoder(this._key, this._encode);\n else\n this._val = this._decoder(this._val, this._encode);\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n cb();\n }\n}\n\nfunction readPctEnc(self, chunk, pos, len) {\n if (pos >= len)\n return len;\n\n if (self._byte === -1) {\n // We saw a '%' but no hex characters yet\n const hexUpper = HEX_VALUES[chunk[pos++]];\n if (hexUpper === -1)\n return -1;\n\n if (hexUpper >= 8)\n self._encode = 2; // Indicate high bits detected\n\n if (pos < len) {\n // Both hex characters are in this chunk\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((hexUpper << 4) + hexLower);\n else\n self._val += String.fromCharCode((hexUpper << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n } else {\n // Only one hex character was available in this chunk\n self._byte = hexUpper;\n }\n } else {\n // We saw only one hex character so far\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((self._byte << 4) + hexLower);\n else\n self._val += String.fromCharCode((self._byte << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipKeyBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesKey > self.fieldNameSizeLimit) {\n if (!self._keyTrunc) {\n if (self._lastPos < pos)\n self._key += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._keyTrunc = true;\n for (; pos < len; ++pos) {\n const code = chunk[pos];\n if (code === 61/* '=' */ || code === 38/* '&' */)\n break;\n ++self._bytesKey;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipValBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesVal > self.fieldSizeLimit) {\n if (!self._valTrunc) {\n if (self._lastPos < pos)\n self._val += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._valTrunc = true;\n for (; pos < len; ++pos) {\n if (chunk[pos] === 38/* '&' */)\n break;\n ++self._bytesVal;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = URLEncoded;\n", "'use strict';\n\nconst { parseContentType } = require('./utils.js');\n\nfunction getInstance(cfg) {\n const headers = cfg.headers;\n const conType = parseContentType(headers['content-type']);\n if (!conType)\n throw new Error('Malformed content type');\n\n for (const type of TYPES) {\n const matched = type.detect(conType);\n if (!matched)\n continue;\n\n const instanceCfg = {\n limits: cfg.limits,\n headers,\n conType,\n highWaterMark: undefined,\n fileHwm: undefined,\n defCharset: undefined,\n defParamCharset: undefined,\n preservePath: false,\n };\n if (cfg.highWaterMark)\n instanceCfg.highWaterMark = cfg.highWaterMark;\n if (cfg.fileHwm)\n instanceCfg.fileHwm = cfg.fileHwm;\n instanceCfg.defCharset = cfg.defCharset;\n instanceCfg.defParamCharset = cfg.defParamCharset;\n instanceCfg.preservePath = cfg.preservePath;\n return new type(instanceCfg);\n }\n\n throw new Error(`Unsupported content type: ${headers['content-type']}`);\n}\n\n// Note: types are explicitly listed here for easier bundling\n// See: https://github.com/mscdex/busboy/issues/121\nconst TYPES = [\n require('./types/multipart'),\n require('./types/urlencoded'),\n].filter(function(typemod) { return typeof typemod.detect === 'function'; });\n\nmodule.exports = (cfg) => {\n if (typeof cfg !== 'object' || cfg === null)\n cfg = {};\n\n if (typeof cfg.headers !== 'object'\n || cfg.headers === null\n || typeof cfg.headers['content-type'] !== 'string') {\n throw new Error('Missing Content-Type');\n }\n\n return getInstance(cfg);\n};\n", "'use strict'\n\nconst { MessageChannel, receiveMessageOnPort } = require('worker_threads')\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\n// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\n// https://fetch.spec.whatwg.org/#request-body-header-name\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type',\n // See https://github.com/nodejs/undici/issues/2021\n // 'Content-Length' is a forbidden header name, which is typically\n // removed in the Headers implementation. However, undici doesn't\n // filter out headers, so we add it here.\n 'content-length'\n]\n\n// https://fetch.spec.whatwg.org/#enumdef-requestduplex\nconst requestDuplex = [\n 'half'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nlet channel\n\n/** @type {globalThis['structuredClone']} */\nconst structuredClone =\n globalThis.structuredClone ??\n // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n // structuredClone was added in v17.0.0, but fetch supports v16.8\n function structuredClone (value, options = undefined) {\n if (arguments.length === 0) {\n throw new TypeError('missing argument')\n }\n\n if (!channel) {\n channel = new MessageChannel()\n }\n channel.port1.unref()\n channel.port2.unref()\n channel.port1.postMessage(value, options?.transfer)\n return receiveMessageOnPort(channel.port2).message\n }\n\nmodule.exports = {\n DOMException,\n structuredClone,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods,\n badPorts,\n requestDuplex\n}\n", "'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (\n newOrigin !== undefined &&\n typeof newOrigin !== 'string' &&\n !(newOrigin instanceof URL)\n ) {\n throw new Error('Invalid base url')\n }\n\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n", "'use strict'\n\nconst { redirectStatus, badPorts, referrerPolicy: referrerPolicyTokens } = require('./constants')\nconst { getGlobalOrigin } = require('./global')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response\u2019s URL list and null if response\u2019s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response\u2019s status is not a redirect status, then return null.\n if (!redirectStatus.includes(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response\u2019s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a header value, then set location to the result of\n // parsing location with response\u2019s URL.\n if (location !== null && isValidHeaderValue(location)) {\n location = new URL(location, responseURL(response))\n }\n\n // 4. If location is a URL whose fragment is null, then set location\u2019s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request\u2019s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url\u2019s scheme is an HTTP(S) scheme and url\u2019s port is a bad port,\n // then return blocked.\n if (urlIsHttpHttpsScheme(url) && badPorts.includes(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\nfunction isTokenChar (c) {\n return !(\n c >= 0x7f ||\n c <= 0x20 ||\n c === '(' ||\n c === ')' ||\n c === '<' ||\n c === '>' ||\n c === '@' ||\n c === ',' ||\n c === ';' ||\n c === ':' ||\n c === '\\\\' ||\n c === '\"' ||\n c === '/' ||\n c === '[' ||\n c === ']' ||\n c === '?' ||\n c === '=' ||\n c === '{' ||\n c === '}'\n )\n}\n\n// See RFC 7230, Section 3.2.6.\n// https://github.com/chromium/chromium/blob/d7da0240cae77824d1eda25745c4022757499131/third_party/blink/renderer/platform/network/http_parsers.cc#L321\nfunction isValidHTTPToken (characters) {\n if (!characters || typeof characters !== 'string') {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n const c = characters.charCodeAt(i)\n if (c > 0x7f || !isTokenChar(c)) {\n return false\n }\n }\n return true\n}\n\n// https://fetch.spec.whatwg.org/#header-name\n// https://github.com/chromium/chromium/blob/b3d37e6f94f87d59e44662d6078f6a12de845d17/net/http/http_util.cc#L342\nfunction isValidHeaderName (potentialValue) {\n if (potentialValue.length === 0) {\n return false\n }\n\n return isValidHTTPToken(potentialValue)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request\u2019s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing \u00A7 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n\n // 8.1 Parse a referrer policy from a Referrer-Policy header\n // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response\u2019s header list.\n const { headersList } = actualResponse\n // 2. Let policy be the empty string.\n // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.\n // 4. Return policy.\n const policyHeader = (headersList.get('referrer-policy') ?? '').split(',')\n\n // Note: As the referrer-policy can contain multiple policies\n // separated by comma, we need to loop through all of them\n // and pick the first valid one.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n let policy = ''\n if (policyHeader.length > 0) {\n // The right-most policy takes precedence.\n // The left-most policy is the fallback.\n for (let i = policyHeader.length; i !== 0; i--) {\n const token = policyHeader[i - 1].trim()\n if (referrerPolicyTokens.includes(token)) {\n policy = token\n break\n }\n }\n }\n\n // 2. If policy is not the empty string, then set request\u2019s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r\u2019s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header\u2019s value to r\u2019s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r\u2019s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request\u2019s response tainting is \"cors\" or request\u2019s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request\u2019s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request\u2019s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request\u2019s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request\u2019s origin is a tuple origin, its scheme is \"https\", and request\u2019s current URL\u2019s scheme is not \"https\", then set serializedOrigin to `null`.\n if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request\u2019s origin is not same origin with request\u2019s current URL\u2019s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request\u2019s header list.\n request.headersList.append('origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // Note: the fetch spec doesn't make use of embedder policy or CSP list\n return {\n referrerPolicy: 'strict-origin-when-cross-origin'\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer (policyContainer) {\n return {\n referrerPolicy: policyContainer.referrerPolicy\n }\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Note: policy cannot (shouldn't) be null or an empty string.\n assert(policy)\n\n // 2. Let environment be request\u2019s client.\n\n let referrerSource = null\n\n // 3. Switch on request\u2019s referrer:\n if (request.referrer === 'client') {\n // Note: node isn't a browser and doesn't implement document/iframes,\n // so we bypass this step and replace it with our own.\n\n const globalOrigin = getGlobalOrigin()\n\n if (!globalOrigin || globalOrigin.origin === 'null') {\n return 'no-referrer'\n }\n\n // note: we need to clone it as it's mutated\n referrerSource = new URL(globalOrigin)\n } else if (request.referrer instanceof URL) {\n // Let referrerSource be request\u2019s referrer.\n referrerSource = request.referrer\n }\n\n // 4. Let request\u2019s referrerURL be the result of stripping referrerSource for\n // use as a referrer.\n let referrerURL = stripURLForReferrer(referrerSource)\n\n // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n // a referrer, with the origin-only flag set to true.\n const referrerOrigin = stripURLForReferrer(referrerSource, true)\n\n // 6. If the result of serializing referrerURL is a string whose length is\n // greater than 4096, set referrerURL to referrerOrigin.\n if (referrerURL.toString().length > 4096) {\n referrerURL = referrerOrigin\n }\n\n const areSameOrigin = sameOrigin(request, referrerURL)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerURL\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerURL : referrerOrigin\n case 'strict-origin-when-cross-origin': {\n const currentURL = requestCurrentURL(request)\n\n // 1. If the origin of referrerURL and the origin of request\u2019s current\n // URL are the same, then return referrerURL.\n if (sameOrigin(referrerURL, currentURL)) {\n return referrerURL\n }\n\n // 2. If referrerURL is a potentially trustworthy URL and request\u2019s\n // current URL is not a potentially trustworthy URL, then return no\n // referrer.\n if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n return 'no-referrer'\n }\n\n // 3. Return referrerOrigin.\n return referrerOrigin\n }\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n * @param {URL} url\n * @param {boolean|undefined} originOnly\n */\nfunction stripURLForReferrer (url, originOnly) {\n // 1. Assert: url is a URL.\n assert(url instanceof URL)\n\n // 2. If url\u2019s scheme is a local scheme, then return no referrer.\n if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n return 'no-referrer'\n }\n\n // 3. Set url\u2019s username to the empty string.\n url.username = ''\n\n // 4. Set url\u2019s password to the empty string.\n url.password = ''\n\n // 5. Set url\u2019s fragment to null.\n url.hash = ''\n\n // 6. If the origin-only flag is true, then:\n if (originOnly) {\n // 1. Set url\u2019s path to \u00AB the empty string \u00BB.\n url.pathname = ''\n\n // 2. Set url\u2019s query to null.\n url.search = ''\n }\n\n // 7. Return url.\n return url\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 4. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n const list = parsedMetadata.sort((c, d) => d.algo.localeCompare(c.algo))\n // get the strongest algorithm\n const strongest = list[0].algo\n // get all entries that use the strongest algorithm; ignore weaker\n const metadata = list.filter((item) => item.algo === strongest)\n\n // 5. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n const actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (actualValue === expectedValue) {\n return true\n }\n }\n\n // 6. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// https://www.w3.org/TR/CSP2/#source-list-syntax\n// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\\x21-\\x7e]?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n const supportedHashes = crypto.getHashes()\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (parsedToken === null || parsedToken.groups === undefined) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm.toLowerCase())) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n if (A.origin === B.origin && A.origin === 'null') {\n return true\n }\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\n// https://fetch.spec.whatwg.org/#concept-method-normalize\nfunction normalizeMethod (method) {\n return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method)\n ? method.toUpperCase()\n : method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, \u00AB value \u00BB).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n/**\n * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n * @param {() => unknown[]} iterator\n * @param {string} name name of the instance\n * @param {'key'|'value'|'key+value'} kind\n */\nfunction makeIterator (iterator, name, kind) {\n const object = {\n index: 0,\n kind,\n target: iterator\n }\n\n const i = {\n next () {\n // 1. Let interface be the interface for which the iterator prototype object exists.\n\n // 2. Let thisValue be the this value.\n\n // 3. Let object be ? ToObject(thisValue).\n\n // 4. If object is a platform object, then perform a security\n // check, passing:\n\n // 5. If object is not a default iterator object for interface,\n // then throw a TypeError.\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n // 6. Let index be object\u2019s index.\n // 7. Let kind be object\u2019s kind.\n // 8. Let values be object\u2019s target's value pairs to iterate over.\n const { index, kind, target } = object\n const values = target()\n\n // 9. Let len be the length of values.\n const len = values.length\n\n // 10. If index is greater than or equal to len, then return\n // CreateIterResultObject(undefined, true).\n if (index >= len) {\n return { value: undefined, done: true }\n }\n\n // 11. Let pair be the entry in values at index index.\n const pair = values[index]\n\n // 12. Set object\u2019s index to index + 1.\n object.index = index + 1\n\n // 13. Return the iterator result for pair and kind.\n return iteratorResult(pair, kind)\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n// https://webidl.spec.whatwg.org/#iterator-result\nfunction iteratorResult (pair, kind) {\n let result\n\n // 1. Let result be a value determined by the value of kind:\n switch (kind) {\n case 'key': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 3. result is key.\n result = pair[0]\n break\n }\n case 'value': {\n // 1. Let idlValue be pair\u2019s value.\n // 2. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 3. result is value.\n result = pair[1]\n break\n }\n case 'key+value': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let idlValue be pair\u2019s value.\n // 3. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 4. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 5. Let array be ! ArrayCreate(2).\n // 6. Call ! CreateDataProperty(array, \"0\", key).\n // 7. Call ! CreateDataProperty(array, \"1\", value).\n // 8. result is array.\n result = pair\n break\n }\n }\n\n // 2. Return CreateIterResultObject(result, false).\n return { value: result, done: false }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nfunction fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let successSteps given a byte sequence bytes be to queue a\n // fetch task to run processBody given bytes, with taskDestination.\n const successSteps = (bytes) => queueMicrotask(() => processBody(bytes))\n\n // 3. Let errorSteps be to queue a fetch task to run processBodyError,\n // with taskDestination.\n const errorSteps = (error) => queueMicrotask(() => processBodyError(error))\n\n // 4. Let reader be the result of getting a reader for body\u2019s stream.\n // If that threw an exception, then run errorSteps with that\n // exception and return.\n let reader\n\n try {\n reader = body.stream.getReader()\n } catch (e) {\n errorSteps(e)\n return\n }\n\n // 5. Read all bytes from reader, given successSteps and errorSteps.\n readAllBytes(reader, successSteps, errorSteps)\n}\n\n/** @type {ReadableStream} */\nlet ReadableStream = globalThis.ReadableStream\n\nfunction isReadableStreamLike (stream) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n return stream instanceof ReadableStream || (\n stream[Symbol.toStringTag] === 'ReadableStream' &&\n typeof stream.tee === 'function'\n )\n}\n\nconst MAXIMUM_ARGUMENT_LENGTH = 65535\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-decode\n * @param {number[]|Uint8Array} input\n */\nfunction isomorphicDecode (input) {\n // 1. To isomorphic decode a byte sequence input, return a string whose code point\n // length is equal to input\u2019s length and whose code points have the same values\n // as the values of input\u2019s bytes, in the same order.\n\n if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n return String.fromCharCode(...input)\n }\n\n return input.reduce((previous, current) => previous + String.fromCharCode(current), '')\n}\n\n/**\n * @param {ReadableStreamController<Uint8Array>} controller\n */\nfunction readableStreamClose (controller) {\n try {\n controller.close()\n } catch (err) {\n // TODO: add comment explaining why this error occurs.\n if (!err.message.includes('Controller is already closed')) {\n throw err\n }\n }\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-encode\n * @param {string} input\n */\nfunction isomorphicEncode (input) {\n // 1. Assert: input contains no code points greater than U+00FF.\n for (let i = 0; i < input.length; i++) {\n assert(input.charCodeAt(i) <= 0xFF)\n }\n\n // 2. Return a byte sequence whose length is equal to input\u2019s code\n // point length and whose bytes have the same values as the\n // values of input\u2019s code points, in the same order\n return input\n}\n\n/**\n * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n * @see https://streams.spec.whatwg.org/#read-loop\n * @param {ReadableStreamDefaultReader} reader\n * @param {(bytes: Uint8Array) => void} successSteps\n * @param {(error: Error) => void} failureSteps\n */\nasync function readAllBytes (reader, successSteps, failureSteps) {\n const bytes = []\n let byteLength = 0\n\n while (true) {\n let done\n let chunk\n\n try {\n ({ done, value: chunk } = await reader.read())\n } catch (e) {\n // 1. Call failureSteps with e.\n failureSteps(e)\n return\n }\n\n if (done) {\n // 1. Call successSteps with bytes.\n successSteps(Buffer.concat(bytes, byteLength))\n return\n }\n\n // 1. If chunk is not a Uint8Array object, call failureSteps\n // with a TypeError and abort these steps.\n if (!isUint8Array(chunk)) {\n failureSteps(new TypeError('Received non-Uint8Array chunk'))\n return\n }\n\n // 2. Append the bytes represented by chunk to bytes.\n bytes.push(chunk)\n byteLength += chunk.length\n\n // 3. Read-loop given reader, bytes, successSteps, and failureSteps.\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#is-local\n * @param {URL} url\n */\nfunction urlIsLocal (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n}\n\n/**\n * @param {string|URL} url\n */\nfunction urlHasHttpsScheme (url) {\n if (typeof url === 'string') {\n return url.startsWith('https:')\n }\n\n return url.protocol === 'https:'\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-scheme\n * @param {URL} url\n */\nfunction urlIsHttpHttpsScheme (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'http:' || protocol === 'https:'\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch,\n isReadableStreamLike,\n readableStreamClose,\n isomorphicEncode,\n isomorphicDecode,\n urlIsLocal,\n urlHasHttpsScheme,\n urlIsHttpHttpsScheme,\n readAllBytes\n}\n", "'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n", "'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\n/** @type {import('../../types/webidl').Webidl} */\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\nwebidl.errors.exception = function (message) {\n return new TypeError(`${message.header}: ${message.message}`)\n}\n\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://webidl.spec.whatwg.org/#implements\nwebidl.brandCheck = function (V, I, opts = undefined) {\n if (opts?.strict !== false && !(V instanceof I)) {\n throw new TypeError('Illegal invocation')\n } else {\n return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n }\n}\n\nwebidl.argumentLengthCheck = function ({ length }, min, ctx) {\n if (length < min) {\n throw webidl.errors.exception({\n message: `${min} argument${min !== 1 ? 's' : ''} required, ` +\n `but${length ? ' only' : ''} ${length} found.`,\n ...ctx\n })\n }\n}\n\nwebidl.illegalConstructor = function () {\n throw webidl.errors.exception({\n header: 'TypeError',\n message: 'Illegal constructor'\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 \u2212 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be \u22122^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength \u2212 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength \u2212 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength \u2212 1 \u2212 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is \u22120, then set x to +0.\n if (x === 0) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +\u221E, or \u2212\u221E, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than \u22120.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +\u221E, or \u2212\u221E, then return +0.\n if (\n Number.isNaN(x) ||\n (x === 0 && Object.is(0, x)) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x \u2265 2^bitLength \u2212 1,\n // then return x \u2212 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 \u00D7 r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-to-record\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (O) => {\n // 1. If Type(O) is not Object, throw a TypeError.\n if (webidl.util.Type(O) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Record',\n message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n })\n }\n\n // 2. Let result be a new empty instance of record<K, V>.\n const result = {}\n\n if (!types.isProxy(O)) {\n // Object.keys only returns enumerable properties\n const keys = Object.keys(O)\n\n for (const key of keys) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n\n // 5. Return result.\n return result\n }\n\n // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n const keys = Reflect.ownKeys(O)\n\n // 4. For each key of keys.\n for (const key of keys) {\n // 1. Let desc be ? O.[[GetOwnProperty]](key).\n const desc = Reflect.getOwnPropertyDescriptor(O, key)\n\n // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n if (desc?.enumerable) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n }\n\n // 5. Return result.\n return result\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n throw webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type === 'Null' || type === 'Undefined') {\n return dict\n } else if (type !== 'Object') {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n const charCode = x.charCodeAt(index)\n\n if (charCode > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at ' +\n `index ${index} has a value of ${charCode} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed')\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long-long\nwebidl.converters['unsigned long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 64, 'unsigned')\n\n // 2. Return the IDL unsigned long long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long\nwebidl.converters['unsigned long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 32, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 32, 'unsigned')\n\n // 2. Return the IDL unsigned long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts)\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T\u2019s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n throw webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence<ByteString>'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence<sequence<ByteString>>'] = webidl.sequenceConverter(\n webidl.converters['sequence<ByteString>']\n)\n\nwebidl.converters['record<ByteString, ByteString>'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n", "const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isomorphicDecode } = require('./util')\n\nconst encoder = new TextEncoder()\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-token-code-point\n */\nconst HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/\nconst HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/ // eslint-disable-line\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n */\nconst HTTP_QUOTED_STRING_TOKENS = /[\\u0009|\\u0020-\\u007E|\\u0080-\\u00FF]/ // eslint-disable-line\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL\u2019s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePointsFast(\n ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = removeASCIIWhitespace(mimeType, true, true)\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = isomorphicDecode(body)\n\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n const href = url.href\n\n if (!excludeFragment) {\n return href\n }\n\n const hash = href.lastIndexOf('#')\n if (hash === -1) {\n return href\n }\n return href.slice(0, hash)\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn\u2019t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n/**\n * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n * @param {string} char\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePointsFast (char, input, position) {\n const idx = input.indexOf(char, position.position)\n const start = position.position\n\n if (idx === -1) {\n position.position = input.length\n return input.slice(start)\n }\n\n position.position = idx\n return input.slice(start, position.position)\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = removeHTTPWhitespace(input, true, true)\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePointsFast(\n '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = removeHTTPWhitespace(subtype, false, true)\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n return 'failure'\n }\n\n const typeLowercase = type.toLowerCase()\n const subtypeLowercase = subtype.toLowerCase()\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: typeLowercase,\n subtype: subtypeLowercase,\n /** @type {Map<string, string>} */\n parameters: new Map(),\n // https://mimesniff.spec.whatwg.org/#mime-type-essence\n essence: `${typeLowercase}/${subtypeLowercase}`\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n char => HTTP_WHITESPACE_REGEX.test(char),\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n parameterValue = removeHTTPWhitespace(parameterValue, false, true)\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType\u2019s parameters[parameterName] does not exist\n // then set mimeType\u2019s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) &&\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data\u2019s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data\u2019s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { parameters, essence } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType\u2019s\n // type, U+002F (/), and mimeType\u2019s subtype.\n let serialization = essence\n\n // 2. For each name \u2192 value of mimeType\u2019s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!HTTP_TOKEN_CODEPOINTS.test(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} char\n */\nfunction isHTTPWhiteSpace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === ' '\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} str\n */\nfunction removeHTTPWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n * @param {string} char\n */\nfunction isASCIIWhitespace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === '\\f' || char === ' '\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace\n */\nfunction removeASCIIWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n collectASequenceOfCodePointsFast,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n", "'use strict'\n\nconst { Blob, File: NativeFile } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' })\n\n fileBits = webidl.converters['sequence<BlobPart>'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n let t = options.type\n let d\n\n // eslint-disable-next-line no-labels\n substep: {\n if (t) {\n t = parseMIMEType(t)\n\n if (t === 'failure') {\n t = ''\n // eslint-disable-next-line no-labels\n break substep\n }\n\n t = serializeAMimeType(t).toLowerCase()\n }\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n d = options.lastModified\n }\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: t })\n this[kState] = {\n name: n,\n lastModified: d,\n type: t\n }\n }\n\n get name () {\n webidl.brandCheck(this, File)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, File)\n\n return this[kState].lastModified\n }\n\n get type () {\n webidl.brandCheck(this, File)\n\n return this[kState].type\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.size\n }\n\n get type () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.type\n }\n\n get name () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nObject.defineProperties(File.prototype, {\n [Symbol.toStringTag]: {\n value: 'File',\n configurable: true\n },\n name: kEnumerableProperty,\n lastModified: kEnumerableProperty\n})\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n ArrayBuffer.isView(V) ||\n types.isAnyArrayBuffer(V)\n ) {\n return webidl.converters.BufferSource(V, opts)\n }\n }\n\n return webidl.converters.USVString(V, opts)\n}\n\nwebidl.converters['sequence<BlobPart>'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(new TextEncoder().encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform\u2019s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return (\n (NativeFile && object instanceof NativeFile) ||\n object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n", "'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File: UndiciFile, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob, File: NativeFile } = require('buffer')\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n constructor (form) {\n if (form !== undefined) {\n throw webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['undefined']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' })\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this\u2019s entry list.\n this[kState] = this[kState].filter(entry => entry.name !== name)\n }\n\n get (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this\u2019s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this\u2019s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' })\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this\u2019s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this\u2019s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n }\n\n entries () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key+value'\n )\n }\n\n keys () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\nObject.defineProperties(FormData.prototype, {\n [Symbol.toStringTag]: {\n value: 'FormData',\n configurable: true\n }\n})\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n /** @type {FilePropertyBag} */\n const options = {\n type: value.type,\n lastModified: value.lastModified\n }\n\n value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n ? new File([value], filename, options)\n : new FileLike(value, filename, options)\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nmodule.exports = { FormData }\n", "'use strict'\n\nconst Busboy = require('busboy')\nconst util = require('../core/util')\nconst {\n ReadableStreamFrom,\n isBlobLike,\n isReadableStreamLike,\n readableStreamClose,\n createDeferredPromise,\n fullyReadBody\n} = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException, structuredClone } = require('./constants')\nconst { Blob, File: NativeFile } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File: UndiciFile } = require('./file')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\n\nlet ReadableStream = globalThis.ReadableStream\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be null.\n let stream = null\n\n // 2. If object is a ReadableStream object, then set stream to object.\n if (object instanceof ReadableStream) {\n stream = object\n } else if (isBlobLike(object)) {\n // 3. Otherwise, if object is a Blob object, set stream to the\n // result of running object\u2019s get stream.\n stream = object.stream()\n } else {\n // 4. Otherwise, set stream to a new ReadableStream object, and set\n // up stream.\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? new TextEncoder().encode(source) : source\n )\n queueMicrotask(() => readableStreamClose(controller))\n },\n start () {},\n type: undefined\n })\n }\n\n // 5. Assert: stream is a ReadableStream object.\n assert(isReadableStreamLike(stream))\n\n // 6. Let action be null.\n let action = null\n\n // 7. Let source be null.\n let source = null\n\n // 8. Let length be null.\n let length = null\n\n // 9. Let type be null.\n let type = null\n\n // 10. Switch on object:\n if (typeof object === 'string') {\n // Set source to the UTF-8 encoding of object.\n // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n source = object\n\n // Set type to `text/plain;charset=UTF-8`.\n type = 'text/plain;charset=UTF-8'\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object\u2019s list.\n source = object.toString()\n\n // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n type = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}`\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy W\u00E4rting <https://jimmy.warting.se/opensource> */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object\u2019s entry list and UTF-8.\n // - This ensures that the body is immutable and can't be changed afterwords\n // - That the content-length is calculated in advance.\n // - And that all parts are pre-encoded and ready to be sent.\n\n const enc = new TextEncoder()\n const blobParts = []\n const rn = new Uint8Array([13, 10]) // '\\r\\n'\n length = 0\n let hasUnknownSizeValue = false\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n const chunk = enc.encode(prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`)\n blobParts.push(chunk)\n length += chunk.byteLength\n } else {\n const chunk = enc.encode(`${prefix}; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') + '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`)\n blobParts.push(chunk, value, rn)\n if (typeof value.size === 'number') {\n length += chunk.byteLength + value.size + rn.byteLength\n } else {\n hasUnknownSizeValue = true\n }\n }\n }\n\n const chunk = enc.encode(`--${boundary}--`)\n blobParts.push(chunk)\n length += chunk.byteLength\n if (hasUnknownSizeValue) {\n length = null\n }\n\n // Set source to object.\n source = object\n\n action = async function * () {\n for (const part of blobParts) {\n if (part.stream) {\n yield * part.stream()\n } else {\n yield part\n }\n }\n }\n\n // Set type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n type = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set source to object.\n source = object\n\n // Set length to object\u2019s size.\n length = object.size\n\n // If object\u2019s type attribute is not the empty byte sequence, set\n // type to its value.\n if (object.type) {\n type = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n }\n\n // 11. If source is a byte sequence, then set action to a\n // step that returns source and length to source\u2019s length.\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 12. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n },\n type: undefined\n })\n }\n\n // 13. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 14. Return (body, type).\n return [body, type]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let \u00AB out1, out2 \u00BB be the result of teeing body\u2019s stream.\n const [out1, out2] = body.stream.tee()\n const out2Clone = structuredClone(out2, { transfer: [out2] })\n // This, for whatever reasons, unrefs out2Clone which allows\n // the process to exit by itself.\n const [, finalClone] = out2Clone.tee()\n\n // 2. Set body\u2019s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: finalClone,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n blob () {\n // The blob() method steps are to return the result of\n // running consume body with this and the following step\n // given a byte sequence bytes: return a Blob whose\n // contents are bytes and whose type attribute is this\u2019s\n // MIME type.\n return specConsumeBody(this, (bytes) => {\n let mimeType = bodyMimeType(this)\n\n if (mimeType === 'failure') {\n mimeType = ''\n } else if (mimeType) {\n mimeType = serializeAMimeType(mimeType)\n }\n\n // Return a Blob whose contents are bytes and type attribute\n // is mimeType.\n return new Blob([bytes], { type: mimeType })\n }, instance)\n },\n\n arrayBuffer () {\n // The arrayBuffer() method steps are to return the result\n // of running consume body with this and the following step\n // given a byte sequence bytes: return a new ArrayBuffer\n // whose contents are bytes.\n return specConsumeBody(this, (bytes) => {\n return new Uint8Array(bytes).buffer\n }, instance)\n },\n\n text () {\n // The text() method steps are to return the result of running\n // consume body with this and UTF-8 decode.\n return specConsumeBody(this, utf8DecodeBytes, instance)\n },\n\n json () {\n // The json() method steps are to return the result of running\n // consume body with this and parse JSON from bytes.\n return specConsumeBody(this, parseJSONFromBytes, instance)\n },\n\n async formData () {\n webidl.brandCheck(this, instance)\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType\u2019s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = Busboy({\n headers,\n defParamCharset: 'utf8'\n })\n } catch (err) {\n throw new DOMException(`${err}`, 'AbortError')\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, info) => {\n const { filename, encoding, mimeType } = info\n const chunks = []\n\n if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(new TypeError(err)))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType\u2019s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n const textDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += textDecoder.decode(chunk, { stream: true })\n }\n text += textDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n throw webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n * @param {Response|Request} object\n * @param {(value: unknown) => unknown} convertBytesToJSValue\n * @param {Response|Request} instance\n */\nasync function specConsumeBody (object, convertBytesToJSValue, instance) {\n webidl.brandCheck(object, instance)\n\n throwIfAborted(object[kState])\n\n // 1. If object is unusable, then return a promise rejected\n // with a TypeError.\n if (bodyUnusable(object[kState].body)) {\n throw new TypeError('Body is unusable')\n }\n\n // 2. Let promise be a new promise.\n const promise = createDeferredPromise()\n\n // 3. Let errorSteps given error be to reject promise with error.\n const errorSteps = (error) => promise.reject(error)\n\n // 4. Let successSteps given a byte sequence data be to resolve\n // promise with the result of running convertBytesToJSValue\n // with data. If that threw an exception, then run errorSteps\n // with that exception.\n const successSteps = (data) => {\n try {\n promise.resolve(convertBytesToJSValue(data))\n } catch (e) {\n errorSteps(e)\n }\n }\n\n // 5. If object\u2019s body is null, then run successSteps with an\n // empty byte sequence.\n if (object[kState].body == null) {\n successSteps(new Uint8Array())\n return promise.promise\n }\n\n // 6. Otherwise, fully read object\u2019s body given successSteps,\n // errorSteps, and object\u2019s relevant global object.\n fullyReadBody(object[kState].body, successSteps, errorSteps)\n\n // 7. Return promise.\n return promise.promise\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction bodyUnusable (body) {\n // An object including the Body interface mixin is\n // said to be unusable if its body is non-null and\n // its body\u2019s stream is disturbed or locked.\n return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#utf-8-decode\n * @param {Buffer} buffer\n */\nfunction utf8DecodeBytes (buffer) {\n if (buffer.length === 0) {\n return ''\n }\n\n // 1. Let buffer be the result of peeking three bytes from\n // ioQueue, converted to a byte sequence.\n\n // 2. If buffer is 0xEF 0xBB 0xBF, then read three\n // bytes from ioQueue. (Do nothing with those bytes.)\n if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n buffer = buffer.subarray(3)\n }\n\n // 3. Process a queue with an instance of UTF-8\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n const output = new TextDecoder().decode(buffer)\n\n // 4. Return output.\n return output\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n * @param {Uint8Array} bytes\n */\nfunction parseJSONFromBytes (bytes) {\n return JSON.parse(utf8DecodeBytes(bytes))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n * @param {import('./response').Response|import('./request').Request} object\n */\nfunction bodyMimeType (object) {\n const { headersList } = object[kState]\n const contentType = headersList.get('content-type')\n\n if (contentType === null) {\n return 'failure'\n }\n\n return parseMIMEType(contentType)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n", "'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n this.contentLength = bodyStream.length\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.onError(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onConnect(abort)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onData(chunk)\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n return this[kHandler].onComplete(trailers)\n }\n\n onError (error) {\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n return this[kHandler].onError(error)\n }\n\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n}\n\nfunction processHeaderValue (key, val) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n val = val != null ? `${val}` : ''\n\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n return `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request, key, val) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type'\n ) {\n request.contentType = val\n request.headers += processHeaderValue(key, val)\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n } else if (value === 'close') {\n request.reset = true\n }\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n request.headers += processHeaderValue(key, val[i])\n }\n } else {\n request.headers += processHeaderValue(key, val)\n }\n }\n}\n\nmodule.exports = Request\n", "'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n", "'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = null\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed] = this[kOnDestroyed] || []\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed] || this[kOnDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n", "'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\n\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache\nif (global.FinalizationRegistry) {\n SessionCache = class WeakSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n this._sessionRegistry = new global.FinalizationRegistry((key) => {\n if (this._sessionCache.size < this._maxCachedSessions) {\n return\n }\n\n const ref = this._sessionCache.get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this._sessionCache.delete(key)\n }\n })\n }\n\n get (sessionKey) {\n const ref = this._sessionCache.get(sessionKey)\n return ref ? ref.deref() : null\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n this._sessionCache.set(sessionKey, new WeakRef(session))\n this._sessionRegistry.register(session, sessionKey)\n }\n }\n} else {\n SessionCache = class SimpleSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n }\n\n get (sessionKey) {\n return this._sessionCache.get(sessionKey)\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n if (this._sessionCache.size >= this._maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = this._sessionCache.keys().next()\n this._sessionCache.delete(oldestKey)\n }\n\n this._sessionCache.set(sessionKey, session)\n }\n }\n}\n\nfunction buildConnector ({ maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions)\n timeout = timeout == null ? 10e3 : timeout\n\n return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n localAddress,\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // TODO (fix): Can a session become invalid once established? Don't think so?\n sessionCache.set(sessionKey, session)\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n localAddress,\n port: port || 80,\n host: hostname\n })\n }\n\n // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n if (options.keepAlive == null || options.keepAlive) {\n const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay\n socket.setKeepAlive(true, keepAliveInitialDelay)\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n", null, null, "'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n this.opts.query = null\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n return (\n (header.length === 4 && header.toString().toLowerCase() === 'host') ||\n (removeContent && header.toString().toLowerCase().indexOf('content-') === 0) ||\n (unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') ||\n (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie')\n )\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n", "'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCsLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC1kAIABBGGpCADcDACAAQgA3AwAgAEE4akIANwMAIABBMGpCADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB4fICEjJSg/QEFERUZHSElKS0xNT1BRUlPeA1dZW1xdYGJlZmdoaWprbG1vcHFyc3R1dnd4eXp7fH1+gAGCAYUBhgGHAYkBiwGMAY0BjgGPAZABkQGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMBmQKkArAC/gL+AgsgASIEIAJHDfMBQd0BIRAM/wMLIAEiECACRw3dAUHDASEQDP4DCyABIgEgAkcNkAFB9wAhEAz9AwsgASIBIAJHDYYBQe8AIRAM/AMLIAEiASACRw1/QeoAIRAM+wMLIAEiASACRw17QegAIRAM+gMLIAEiASACRw14QeYAIRAM+QMLIAEiASACRw0aQRghEAz4AwsgASIBIAJHDRRBEiEQDPcDCyABIgEgAkcNWUHFACEQDPYDCyABIgEgAkcNSkE/IRAM9QMLIAEiASACRw1IQTwhEAz0AwsgASIBIAJHDUFBMSEQDPMDCyAALQAuQQFGDesDDIcCCyAAIAEiASACEMCAgIAAQQFHDeYBIABCADcDIAznAQsgACABIgEgAhC0gICAACIQDecBIAEhAQz1AgsCQCABIgEgAkcNAEEGIRAM8AMLIAAgAUEBaiIBIAIQu4CAgAAiEA3oASABIQEMMQsgAEIANwMgQRIhEAzVAwsgASIQIAJHDStBHSEQDO0DCwJAIAEiASACRg0AIAFBAWohAUEQIRAM1AMLQQchEAzsAwsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3lAUEIIRAM6wMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQRQhEAzSAwtBCSEQDOoDCyABIQEgACkDIFAN5AEgASEBDPICCwJAIAEiASACRw0AQQshEAzpAwsgACABQQFqIgEgAhC2gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeYBIAEhAQwNCyAAIAEiASACELqAgIAAIhAN5wEgASEBDPACCwJAIAEiASACRw0AQQ8hEAzlAwsgAS0AACIQQTtGDQggEEENRw3oASABQQFqIQEM7wILIAAgASIBIAIQuoCAgAAiEA3oASABIQEM8gILA0ACQCABLQAAQfC1gIAAai0AACIQQQFGDQAgEEECRw3rASAAKAIEIRAgAEEANgIEIAAgECABQQFqIgEQuYCAgAAiEA3qASABIQEM9AILIAFBAWoiASACRw0AC0ESIRAM4gMLIAAgASIBIAIQuoCAgAAiEA3pASABIQEMCgsgASIBIAJHDQZBGyEQDOADCwJAIAEiASACRw0AQRYhEAzgAwsgAEGKgICAADYCCCAAIAE2AgQgACABIAIQuICAgAAiEA3qASABIQFBICEQDMYDCwJAIAEiASACRg0AA0ACQCABLQAAQfC3gIAAai0AACIQQQJGDQACQCAQQX9qDgTlAewBAOsB7AELIAFBAWohAUEIIRAMyAMLIAFBAWoiASACRw0AC0EVIRAM3wMLQRUhEAzeAwsDQAJAIAEtAABB8LmAgABqLQAAIhBBAkYNACAQQX9qDgTeAewB4AHrAewBCyABQQFqIgEgAkcNAAtBGCEQDN0DCwJAIAEiASACRg0AIABBi4CAgAA2AgggACABNgIEIAEhAUEHIRAMxAMLQRkhEAzcAwsgAUEBaiEBDAILAkAgASIUIAJHDQBBGiEQDNsDCyAUIQECQCAULQAAQXNqDhTdAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAgDuAgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQM2gMLAkAgAS0AACIQQTtGDQAgEEENRw3oASABQQFqIQEM5QILIAFBAWohAQtBIiEQDL8DCwJAIAEiECACRw0AQRwhEAzYAwtCACERIBAhASAQLQAAQVBqDjfnAeYBAQIDBAUGBwgAAAAAAAAACQoLDA0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPEBESExQAC0EeIRAMvQMLQgIhEQzlAQtCAyERDOQBC0IEIREM4wELQgUhEQziAQtCBiERDOEBC0IHIREM4AELQgghEQzfAQtCCSERDN4BC0IKIREM3QELQgshEQzcAQtCDCERDNsBC0INIREM2gELQg4hEQzZAQtCDyERDNgBC0IKIREM1wELQgshEQzWAQtCDCERDNUBC0INIREM1AELQg4hEQzTAQtCDyERDNIBC0IAIRECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAtAABBUGoON+UB5AEAAQIDBAUGB+YB5gHmAeYB5gHmAeYBCAkKCwwN5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAQ4PEBESE+YBC0ICIREM5AELQgMhEQzjAQtCBCERDOIBC0IFIREM4QELQgYhEQzgAQtCByERDN8BC0IIIREM3gELQgkhEQzdAQtCCiERDNwBC0ILIREM2wELQgwhEQzaAQtCDSERDNkBC0IOIREM2AELQg8hEQzXAQtCCiERDNYBC0ILIREM1QELQgwhEQzUAQtCDSERDNMBC0IOIREM0gELQg8hEQzRAQsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3SAUEfIRAMwAMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQSQhEAynAwtBICEQDL8DCyAAIAEiECACEL6AgIAAQX9qDgW2AQDFAgHRAdIBC0ERIRAMpAMLIABBAToALyAQIQEMuwMLIAEiASACRw3SAUEkIRAMuwMLIAEiDSACRw0eQcYAIRAMugMLIAAgASIBIAIQsoCAgAAiEA3UASABIQEMtQELIAEiECACRw0mQdAAIRAMuAMLAkAgASIBIAJHDQBBKCEQDLgDCyAAQQA2AgQgAEGMgICAADYCCCAAIAEgARCxgICAACIQDdMBIAEhAQzYAQsCQCABIhAgAkcNAEEpIRAMtwMLIBAtAAAiAUEgRg0UIAFBCUcN0wEgEEEBaiEBDBULAkAgASIBIAJGDQAgAUEBaiEBDBcLQSohEAy1AwsCQCABIhAgAkcNAEErIRAMtQMLAkAgEC0AACIBQQlGDQAgAUEgRw3VAQsgAC0ALEEIRg3TASAQIQEMkQMLAkAgASIBIAJHDQBBLCEQDLQDCyABLQAAQQpHDdUBIAFBAWohAQzJAgsgASIOIAJHDdUBQS8hEAyyAwsDQAJAIAEtAAAiEEEgRg0AAkAgEEF2ag4EANwB3AEA2gELIAEhAQzgAQsgAUEBaiIBIAJHDQALQTEhEAyxAwtBMiEQIAEiFCACRg2wAyACIBRrIAAoAgAiAWohFSAUIAFrQQNqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB8LuAgABqLQAARw0BAkAgAUEDRw0AQQYhAQyWAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMsQMLIABBADYCACAUIQEM2QELQTMhECABIhQgAkYNrwMgAiAUayAAKAIAIgFqIRUgFCABa0EIaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfS7gIAAai0AAEcNAQJAIAFBCEcNAEEFIQEMlQMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLADCyAAQQA2AgAgFCEBDNgBC0E0IRAgASIUIAJGDa4DIAIgFGsgACgCACIBaiEVIBQgAWtBBWohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUHQwoCAAGotAABHDQECQCABQQVHDQBBByEBDJQDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAyvAwsgAEEANgIAIBQhAQzXAQsCQCABIgEgAkYNAANAAkAgAS0AAEGAvoCAAGotAAAiEEEBRg0AIBBBAkYNCiABIQEM3QELIAFBAWoiASACRw0AC0EwIRAMrgMLQTAhEAytAwsCQCABIgEgAkYNAANAAkAgAS0AACIQQSBGDQAgEEF2ag4E2QHaAdoB2QHaAQsgAUEBaiIBIAJHDQALQTghEAytAwtBOCEQDKwDCwNAAkAgAS0AACIQQSBGDQAgEEEJRw0DCyABQQFqIgEgAkcNAAtBPCEQDKsDCwNAAkAgAS0AACIQQSBGDQACQAJAIBBBdmoOBNoBAQHaAQALIBBBLEYN2wELIAEhAQwECyABQQFqIgEgAkcNAAtBPyEQDKoDCyABIQEM2wELQcAAIRAgASIUIAJGDagDIAIgFGsgACgCACIBaiEWIBQgAWtBBmohFwJAA0AgFC0AAEEgciABQYDAgIAAai0AAEcNASABQQZGDY4DIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADKkDCyAAQQA2AgAgFCEBC0E2IRAMjgMLAkAgASIPIAJHDQBBwQAhEAynAwsgAEGMgICAADYCCCAAIA82AgQgDyEBIAAtACxBf2oOBM0B1QHXAdkBhwMLIAFBAWohAQzMAQsCQCABIgEgAkYNAANAAkAgAS0AACIQQSByIBAgEEG/f2pB/wFxQRpJG0H/AXEiEEEJRg0AIBBBIEYNAAJAAkACQAJAIBBBnX9qDhMAAwMDAwMDAwEDAwMDAwMDAwMCAwsgAUEBaiEBQTEhEAyRAwsgAUEBaiEBQTIhEAyQAwsgAUEBaiEBQTMhEAyPAwsgASEBDNABCyABQQFqIgEgAkcNAAtBNSEQDKUDC0E1IRAMpAMLAkAgASIBIAJGDQADQAJAIAEtAABBgLyAgABqLQAAQQFGDQAgASEBDNMBCyABQQFqIgEgAkcNAAtBPSEQDKQDC0E9IRAMowMLIAAgASIBIAIQsICAgAAiEA3WASABIQEMAQsgEEEBaiEBC0E8IRAMhwMLAkAgASIBIAJHDQBBwgAhEAygAwsCQANAAkAgAS0AAEF3ag4YAAL+Av4ChAP+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gIA/gILIAFBAWoiASACRw0AC0HCACEQDKADCyABQQFqIQEgAC0ALUEBcUUNvQEgASEBC0EsIRAMhQMLIAEiASACRw3TAUHEACEQDJ0DCwNAAkAgAS0AAEGQwICAAGotAABBAUYNACABIQEMtwILIAFBAWoiASACRw0AC0HFACEQDJwDCyANLQAAIhBBIEYNswEgEEE6Rw2BAyAAKAIEIQEgAEEANgIEIAAgASANEK+AgIAAIgEN0AEgDUEBaiEBDLMCC0HHACEQIAEiDSACRg2aAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQZDCgIAAai0AAEcNgAMgAUEFRg30AiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyaAwtByAAhECABIg0gAkYNmQMgAiANayAAKAIAIgFqIRYgDSABa0EJaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGWwoCAAGotAABHDf8CAkAgAUEJRw0AQQIhAQz1AgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmQMLAkAgASINIAJHDQBByQAhEAyZAwsCQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZJ/ag4HAIADgAOAA4ADgAMBgAMLIA1BAWohAUE+IRAMgAMLIA1BAWohAUE/IRAM/wILQcoAIRAgASINIAJGDZcDIAIgDWsgACgCACIBaiEWIA0gAWtBAWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBoMKAgABqLQAARw39AiABQQFGDfACIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJcDC0HLACEQIAEiDSACRg2WAyACIA1rIAAoAgAiAWohFiANIAFrQQ5qIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaLCgIAAai0AAEcN/AIgAUEORg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyWAwtBzAAhECABIg0gAkYNlQMgAiANayAAKAIAIgFqIRYgDSABa0EPaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUHAwoCAAGotAABHDfsCAkAgAUEPRw0AQQMhAQzxAgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlQMLQc0AIRAgASINIAJGDZQDIAIgDWsgACgCACIBaiEWIA0gAWtBBWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw36AgJAIAFBBUcNAEEEIQEM8AILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJQDCwJAIAEiDSACRw0AQc4AIRAMlAMLAkACQAJAAkAgDS0AACIBQSByIAEgAUG/f2pB/wFxQRpJG0H/AXFBnX9qDhMA/QL9Av0C/QL9Av0C/QL9Av0C/QL9Av0CAf0C/QL9AgID/QILIA1BAWohAUHBACEQDP0CCyANQQFqIQFBwgAhEAz8AgsgDUEBaiEBQcMAIRAM+wILIA1BAWohAUHEACEQDPoCCwJAIAEiASACRg0AIABBjYCAgAA2AgggACABNgIEIAEhAUHFACEQDPoCC0HPACEQDJIDCyAQIQECQAJAIBAtAABBdmoOBAGoAqgCAKgCCyAQQQFqIQELQSchEAz4AgsCQCABIgEgAkcNAEHRACEQDJEDCwJAIAEtAABBIEYNACABIQEMjQELIAFBAWohASAALQAtQQFxRQ3HASABIQEMjAELIAEiFyACRw3IAUHSACEQDI8DC0HTACEQIAEiFCACRg2OAyACIBRrIAAoAgAiAWohFiAUIAFrQQFqIRcDQCAULQAAIAFB1sKAgABqLQAARw3MASABQQFGDccBIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADI4DCwJAIAEiASACRw0AQdUAIRAMjgMLIAEtAABBCkcNzAEgAUEBaiEBDMcBCwJAIAEiASACRw0AQdYAIRAMjQMLAkACQCABLQAAQXZqDgQAzQHNAQHNAQsgAUEBaiEBDMcBCyABQQFqIQFBygAhEAzzAgsgACABIgEgAhCugICAACIQDcsBIAEhAUHNACEQDPICCyAALQApQSJGDYUDDKYCCwJAIAEiASACRw0AQdsAIRAMigMLQQAhFEEBIRdBASEWQQAhEAJAAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgrUAdMBAAECAwQFBgjVAQtBAiEQDAYLQQMhEAwFC0EEIRAMBAtBBSEQDAMLQQYhEAwCC0EHIRAMAQtBCCEQC0EAIRdBACEWQQAhFAzMAQtBCSEQQQEhFEEAIRdBACEWDMsBCwJAIAEiASACRw0AQd0AIRAMiQMLIAEtAABBLkcNzAEgAUEBaiEBDKYCCyABIgEgAkcNzAFB3wAhEAyHAwsCQCABIgEgAkYNACAAQY6AgIAANgIIIAAgATYCBCABIQFB0AAhEAzuAgtB4AAhEAyGAwtB4QAhECABIgEgAkYNhQMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQeLCgIAAai0AAEcNzQEgFEEDRg3MASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyFAwtB4gAhECABIgEgAkYNhAMgAiABayAAKAIAIhRqIRYgASAUa0ECaiEXA0AgAS0AACAUQebCgIAAai0AAEcNzAEgFEECRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyEAwtB4wAhECABIgEgAkYNgwMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQenCgIAAai0AAEcNywEgFEEDRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyDAwsCQCABIgEgAkcNAEHlACEQDIMDCyAAIAFBAWoiASACEKiAgIAAIhANzQEgASEBQdYAIRAM6QILAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AAkACQAJAIBBBuH9qDgsAAc8BzwHPAc8BzwHPAc8BzwECzwELIAFBAWohAUHSACEQDO0CCyABQQFqIQFB0wAhEAzsAgsgAUEBaiEBQdQAIRAM6wILIAFBAWoiASACRw0AC0HkACEQDIIDC0HkACEQDIEDCwNAAkAgAS0AAEHwwoCAAGotAAAiEEEBRg0AIBBBfmoOA88B0AHRAdIBCyABQQFqIgEgAkcNAAtB5gAhEAyAAwsCQCABIgEgAkYNACABQQFqIQEMAwtB5wAhEAz/AgsDQAJAIAEtAABB8MSAgABqLQAAIhBBAUYNAAJAIBBBfmoOBNIB0wHUAQDVAQsgASEBQdcAIRAM5wILIAFBAWoiASACRw0AC0HoACEQDP4CCwJAIAEiASACRw0AQekAIRAM/gILAkAgAS0AACIQQXZqDhq6AdUB1QG8AdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAcoB1QHVAQDTAQsgAUEBaiEBC0EGIRAM4wILA0ACQCABLQAAQfDGgIAAai0AAEEBRg0AIAEhAQyeAgsgAUEBaiIBIAJHDQALQeoAIRAM+wILAkAgASIBIAJGDQAgAUEBaiEBDAMLQesAIRAM+gILAkAgASIBIAJHDQBB7AAhEAz6AgsgAUEBaiEBDAELAkAgASIBIAJHDQBB7QAhEAz5AgsgAUEBaiEBC0EEIRAM3gILAkAgASIUIAJHDQBB7gAhEAz3AgsgFCEBAkACQAJAIBQtAABB8MiAgABqLQAAQX9qDgfUAdUB1gEAnAIBAtcBCyAUQQFqIQEMCgsgFEEBaiEBDM0BC0EAIRAgAEEANgIcIABBm5KAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAz2AgsCQANAAkAgAS0AAEHwyICAAGotAAAiEEEERg0AAkACQCAQQX9qDgfSAdMB1AHZAQAEAdkBCyABIQFB2gAhEAzgAgsgAUEBaiEBQdwAIRAM3wILIAFBAWoiASACRw0AC0HvACEQDPYCCyABQQFqIQEMywELAkAgASIUIAJHDQBB8AAhEAz1AgsgFC0AAEEvRw3UASAUQQFqIQEMBgsCQCABIhQgAkcNAEHxACEQDPQCCwJAIBQtAAAiAUEvRw0AIBRBAWohAUHdACEQDNsCCyABQXZqIgRBFksN0wFBASAEdEGJgIACcUUN0wEMygILAkAgASIBIAJGDQAgAUEBaiEBQd4AIRAM2gILQfIAIRAM8gILAkAgASIUIAJHDQBB9AAhEAzyAgsgFCEBAkAgFC0AAEHwzICAAGotAABBf2oOA8kClAIA1AELQeEAIRAM2AILAkAgASIUIAJGDQADQAJAIBQtAABB8MqAgABqLQAAIgFBA0YNAAJAIAFBf2oOAssCANUBCyAUIQFB3wAhEAzaAgsgFEEBaiIUIAJHDQALQfMAIRAM8QILQfMAIRAM8AILAkAgASIBIAJGDQAgAEGPgICAADYCCCAAIAE2AgQgASEBQeAAIRAM1wILQfUAIRAM7wILAkAgASIBIAJHDQBB9gAhEAzvAgsgAEGPgICAADYCCCAAIAE2AgQgASEBC0EDIRAM1AILA0AgAS0AAEEgRw3DAiABQQFqIgEgAkcNAAtB9wAhEAzsAgsCQCABIgEgAkcNAEH4ACEQDOwCCyABLQAAQSBHDc4BIAFBAWohAQzvAQsgACABIgEgAhCsgICAACIQDc4BIAEhAQyOAgsCQCABIgQgAkcNAEH6ACEQDOoCCyAELQAAQcwARw3RASAEQQFqIQFBEyEQDM8BCwJAIAEiBCACRw0AQfsAIRAM6QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEANAIAQtAAAgAUHwzoCAAGotAABHDdABIAFBBUYNzgEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBB+wAhEAzoAgsCQCABIgQgAkcNAEH8ACEQDOgCCwJAAkAgBC0AAEG9f2oODADRAdEB0QHRAdEB0QHRAdEB0QHRAQHRAQsgBEEBaiEBQeYAIRAMzwILIARBAWohAUHnACEQDM4CCwJAIAEiBCACRw0AQf0AIRAM5wILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNzwEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf0AIRAM5wILIABBADYCACAQQQFqIQFBECEQDMwBCwJAIAEiBCACRw0AQf4AIRAM5gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQfbOgIAAai0AAEcNzgEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf4AIRAM5gILIABBADYCACAQQQFqIQFBFiEQDMsBCwJAIAEiBCACRw0AQf8AIRAM5QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQfzOgIAAai0AAEcNzQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf8AIRAM5QILIABBADYCACAQQQFqIQFBBSEQDMoBCwJAIAEiBCACRw0AQYABIRAM5AILIAQtAABB2QBHDcsBIARBAWohAUEIIRAMyQELAkAgASIEIAJHDQBBgQEhEAzjAgsCQAJAIAQtAABBsn9qDgMAzAEBzAELIARBAWohAUHrACEQDMoCCyAEQQFqIQFB7AAhEAzJAgsCQCABIgQgAkcNAEGCASEQDOICCwJAAkAgBC0AAEG4f2oOCADLAcsBywHLAcsBywEBywELIARBAWohAUHqACEQDMkCCyAEQQFqIQFB7QAhEAzIAgsCQCABIgQgAkcNAEGDASEQDOECCyACIARrIAAoAgAiAWohECAEIAFrQQJqIRQCQANAIAQtAAAgAUGAz4CAAGotAABHDckBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgEDYCAEGDASEQDOECC0EAIRAgAEEANgIAIBRBAWohAQzGAQsCQCABIgQgAkcNAEGEASEQDOACCyACIARrIAAoAgAiAWohFCAEIAFrQQRqIRACQANAIAQtAAAgAUGDz4CAAGotAABHDcgBIAFBBEYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGEASEQDOACCyAAQQA2AgAgEEEBaiEBQSMhEAzFAQsCQCABIgQgAkcNAEGFASEQDN8CCwJAAkAgBC0AAEG0f2oOCADIAcgByAHIAcgByAEByAELIARBAWohAUHvACEQDMYCCyAEQQFqIQFB8AAhEAzFAgsCQCABIgQgAkcNAEGGASEQDN4CCyAELQAAQcUARw3FASAEQQFqIQEMgwILAkAgASIEIAJHDQBBhwEhEAzdAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBiM+AgABqLQAARw3FASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhwEhEAzdAgsgAEEANgIAIBBBAWohAUEtIRAMwgELAkAgASIEIAJHDQBBiAEhEAzcAgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw3EASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiAEhEAzcAgsgAEEANgIAIBBBAWohAUEpIRAMwQELAkAgASIBIAJHDQBBiQEhEAzbAgtBASEQIAEtAABB3wBHDcABIAFBAWohAQyBAgsCQCABIgQgAkcNAEGKASEQDNoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRADQCAELQAAIAFBjM+AgABqLQAARw3BASABQQFGDa8CIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYoBIRAM2QILAkAgASIEIAJHDQBBiwEhEAzZAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBjs+AgABqLQAARw3BASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiwEhEAzZAgsgAEEANgIAIBBBAWohAUECIRAMvgELAkAgASIEIAJHDQBBjAEhEAzYAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw3AASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjAEhEAzYAgsgAEEANgIAIBBBAWohAUEfIRAMvQELAkAgASIEIAJHDQBBjQEhEAzXAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8s+AgABqLQAARw2/ASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjQEhEAzXAgsgAEEANgIAIBBBAWohAUEJIRAMvAELAkAgASIEIAJHDQBBjgEhEAzWAgsCQAJAIAQtAABBt39qDgcAvwG/Ab8BvwG/AQG/AQsgBEEBaiEBQfgAIRAMvQILIARBAWohAUH5ACEQDLwCCwJAIAEiBCACRw0AQY8BIRAM1QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQZHPgIAAai0AAEcNvQEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY8BIRAM1QILIABBADYCACAQQQFqIQFBGCEQDLoBCwJAIAEiBCACRw0AQZABIRAM1AILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQZfPgIAAai0AAEcNvAEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZABIRAM1AILIABBADYCACAQQQFqIQFBFyEQDLkBCwJAIAEiBCACRw0AQZEBIRAM0wILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQZrPgIAAai0AAEcNuwEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZEBIRAM0wILIABBADYCACAQQQFqIQFBFSEQDLgBCwJAIAEiBCACRw0AQZIBIRAM0gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQaHPgIAAai0AAEcNugEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZIBIRAM0gILIABBADYCACAQQQFqIQFBHiEQDLcBCwJAIAEiBCACRw0AQZMBIRAM0QILIAQtAABBzABHDbgBIARBAWohAUEKIRAMtgELAkAgBCACRw0AQZQBIRAM0AILAkACQCAELQAAQb9/ag4PALkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AbkBAbkBCyAEQQFqIQFB/gAhEAy3AgsgBEEBaiEBQf8AIRAMtgILAkAgBCACRw0AQZUBIRAMzwILAkACQCAELQAAQb9/ag4DALgBAbgBCyAEQQFqIQFB/QAhEAy2AgsgBEEBaiEEQYABIRAMtQILAkAgBCACRw0AQZYBIRAMzgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQafPgIAAai0AAEcNtgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZYBIRAMzgILIABBADYCACAQQQFqIQFBCyEQDLMBCwJAIAQgAkcNAEGXASEQDM0CCwJAAkACQAJAIAQtAABBU2oOIwC4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBAbgBuAG4AbgBuAECuAG4AbgBA7gBCyAEQQFqIQFB+wAhEAy2AgsgBEEBaiEBQfwAIRAMtQILIARBAWohBEGBASEQDLQCCyAEQQFqIQRBggEhEAyzAgsCQCAEIAJHDQBBmAEhEAzMAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBqc+AgABqLQAARw20ASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmAEhEAzMAgsgAEEANgIAIBBBAWohAUEZIRAMsQELAkAgBCACRw0AQZkBIRAMywILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQa7PgIAAai0AAEcNswEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZkBIRAMywILIABBADYCACAQQQFqIQFBBiEQDLABCwJAIAQgAkcNAEGaASEQDMoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG0z4CAAGotAABHDbIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGaASEQDMoCCyAAQQA2AgAgEEEBaiEBQRwhEAyvAQsCQCAEIAJHDQBBmwEhEAzJAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBts+AgABqLQAARw2xASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmwEhEAzJAgsgAEEANgIAIBBBAWohAUEnIRAMrgELAkAgBCACRw0AQZwBIRAMyAILAkACQCAELQAAQax/ag4CAAGxAQsgBEEBaiEEQYYBIRAMrwILIARBAWohBEGHASEQDK4CCwJAIAQgAkcNAEGdASEQDMcCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG4z4CAAGotAABHDa8BIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGdASEQDMcCCyAAQQA2AgAgEEEBaiEBQSYhEAysAQsCQCAEIAJHDQBBngEhEAzGAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBus+AgABqLQAARw2uASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBngEhEAzGAgsgAEEANgIAIBBBAWohAUEDIRAMqwELAkAgBCACRw0AQZ8BIRAMxQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNrQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ8BIRAMxQILIABBADYCACAQQQFqIQFBDCEQDKoBCwJAIAQgAkcNAEGgASEQDMQCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUG8z4CAAGotAABHDawBIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGgASEQDMQCCyAAQQA2AgAgEEEBaiEBQQ0hEAypAQsCQCAEIAJHDQBBoQEhEAzDAgsCQAJAIAQtAABBun9qDgsArAGsAawBrAGsAawBrAGsAawBAawBCyAEQQFqIQRBiwEhEAyqAgsgBEEBaiEEQYwBIRAMqQILAkAgBCACRw0AQaIBIRAMwgILIAQtAABB0ABHDakBIARBAWohBAzpAQsCQCAEIAJHDQBBowEhEAzBAgsCQAJAIAQtAABBt39qDgcBqgGqAaoBqgGqAQCqAQsgBEEBaiEEQY4BIRAMqAILIARBAWohAUEiIRAMpgELAkAgBCACRw0AQaQBIRAMwAILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQcDPgIAAai0AAEcNqAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaQBIRAMwAILIABBADYCACAQQQFqIQFBHSEQDKUBCwJAIAQgAkcNAEGlASEQDL8CCwJAAkAgBC0AAEGuf2oOAwCoAQGoAQsgBEEBaiEEQZABIRAMpgILIARBAWohAUEEIRAMpAELAkAgBCACRw0AQaYBIRAMvgILAkACQAJAAkACQCAELQAAQb9/ag4VAKoBqgGqAaoBqgGqAaoBqgGqAaoBAaoBqgECqgGqAQOqAaoBBKoBCyAEQQFqIQRBiAEhEAyoAgsgBEEBaiEEQYkBIRAMpwILIARBAWohBEGKASEQDKYCCyAEQQFqIQRBjwEhEAylAgsgBEEBaiEEQZEBIRAMpAILAkAgBCACRw0AQacBIRAMvQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNpQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQacBIRAMvQILIABBADYCACAQQQFqIQFBESEQDKIBCwJAIAQgAkcNAEGoASEQDLwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHCz4CAAGotAABHDaQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGoASEQDLwCCyAAQQA2AgAgEEEBaiEBQSwhEAyhAQsCQCAEIAJHDQBBqQEhEAy7AgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBxc+AgABqLQAARw2jASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqQEhEAy7AgsgAEEANgIAIBBBAWohAUErIRAMoAELAkAgBCACRw0AQaoBIRAMugILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQcrPgIAAai0AAEcNogEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaoBIRAMugILIABBADYCACAQQQFqIQFBFCEQDJ8BCwJAIAQgAkcNAEGrASEQDLkCCwJAAkACQAJAIAQtAABBvn9qDg8AAQKkAaQBpAGkAaQBpAGkAaQBpAGkAaQBA6QBCyAEQQFqIQRBkwEhEAyiAgsgBEEBaiEEQZQBIRAMoQILIARBAWohBEGVASEQDKACCyAEQQFqIQRBlgEhEAyfAgsCQCAEIAJHDQBBrAEhEAy4AgsgBC0AAEHFAEcNnwEgBEEBaiEEDOABCwJAIAQgAkcNAEGtASEQDLcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHNz4CAAGotAABHDZ8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGtASEQDLcCCyAAQQA2AgAgEEEBaiEBQQ4hEAycAQsCQCAEIAJHDQBBrgEhEAy2AgsgBC0AAEHQAEcNnQEgBEEBaiEBQSUhEAybAQsCQCAEIAJHDQBBrwEhEAy1AgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw2dASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrwEhEAy1AgsgAEEANgIAIBBBAWohAUEqIRAMmgELAkAgBCACRw0AQbABIRAMtAILAkACQCAELQAAQat/ag4LAJ0BnQGdAZ0BnQGdAZ0BnQGdAQGdAQsgBEEBaiEEQZoBIRAMmwILIARBAWohBEGbASEQDJoCCwJAIAQgAkcNAEGxASEQDLMCCwJAAkAgBC0AAEG/f2oOFACcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAEBnAELIARBAWohBEGZASEQDJoCCyAEQQFqIQRBnAEhEAyZAgsCQCAEIAJHDQBBsgEhEAyyAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFB2c+AgABqLQAARw2aASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBsgEhEAyyAgsgAEEANgIAIBBBAWohAUEhIRAMlwELAkAgBCACRw0AQbMBIRAMsQILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQd3PgIAAai0AAEcNmQEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbMBIRAMsQILIABBADYCACAQQQFqIQFBGiEQDJYBCwJAIAQgAkcNAEG0ASEQDLACCwJAAkACQCAELQAAQbt/ag4RAJoBmgGaAZoBmgGaAZoBmgGaAQGaAZoBmgGaAZoBApoBCyAEQQFqIQRBnQEhEAyYAgsgBEEBaiEEQZ4BIRAMlwILIARBAWohBEGfASEQDJYCCwJAIAQgAkcNAEG1ASEQDK8CCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUHkz4CAAGotAABHDZcBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG1ASEQDK8CCyAAQQA2AgAgEEEBaiEBQSghEAyUAQsCQCAEIAJHDQBBtgEhEAyuAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB6s+AgABqLQAARw2WASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtgEhEAyuAgsgAEEANgIAIBBBAWohAUEHIRAMkwELAkAgBCACRw0AQbcBIRAMrQILAkACQCAELQAAQbt/ag4OAJYBlgGWAZYBlgGWAZYBlgGWAZYBlgGWAQGWAQsgBEEBaiEEQaEBIRAMlAILIARBAWohBEGiASEQDJMCCwJAIAQgAkcNAEG4ASEQDKwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDZQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG4ASEQDKwCCyAAQQA2AgAgEEEBaiEBQRIhEAyRAQsCQCAEIAJHDQBBuQEhEAyrAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw2TASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuQEhEAyrAgsgAEEANgIAIBBBAWohAUEgIRAMkAELAkAgBCACRw0AQboBIRAMqgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNkgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQboBIRAMqgILIABBADYCACAQQQFqIQFBDyEQDI8BCwJAIAQgAkcNAEG7ASEQDKkCCwJAAkAgBC0AAEG3f2oOBwCSAZIBkgGSAZIBAZIBCyAEQQFqIQRBpQEhEAyQAgsgBEEBaiEEQaYBIRAMjwILAkAgBCACRw0AQbwBIRAMqAILIAIgBGsgACgCACIBaiEUIAQgAWtBB2ohEAJAA0AgBC0AACABQfTPgIAAai0AAEcNkAEgAUEHRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbwBIRAMqAILIABBADYCACAQQQFqIQFBGyEQDI0BCwJAIAQgAkcNAEG9ASEQDKcCCwJAAkACQCAELQAAQb5/ag4SAJEBkQGRAZEBkQGRAZEBkQGRAQGRAZEBkQGRAZEBkQECkQELIARBAWohBEGkASEQDI8CCyAEQQFqIQRBpwEhEAyOAgsgBEEBaiEEQagBIRAMjQILAkAgBCACRw0AQb4BIRAMpgILIAQtAABBzgBHDY0BIARBAWohBAzPAQsCQCAEIAJHDQBBvwEhEAylAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAELQAAQb9/ag4VAAECA5wBBAUGnAGcAZwBBwgJCgucAQwNDg+cAQsgBEEBaiEBQegAIRAMmgILIARBAWohAUHpACEQDJkCCyAEQQFqIQFB7gAhEAyYAgsgBEEBaiEBQfIAIRAMlwILIARBAWohAUHzACEQDJYCCyAEQQFqIQFB9gAhEAyVAgsgBEEBaiEBQfcAIRAMlAILIARBAWohAUH6ACEQDJMCCyAEQQFqIQRBgwEhEAySAgsgBEEBaiEEQYQBIRAMkQILIARBAWohBEGFASEQDJACCyAEQQFqIQRBkgEhEAyPAgsgBEEBaiEEQZgBIRAMjgILIARBAWohBEGgASEQDI0CCyAEQQFqIQRBowEhEAyMAgsgBEEBaiEEQaoBIRAMiwILAkAgBCACRg0AIABBkICAgAA2AgggACAENgIEQasBIRAMiwILQcABIRAMowILIAAgBSACEKqAgIAAIgENiwEgBSEBDFwLAkAgBiACRg0AIAZBAWohBQyNAQtBwgEhEAyhAgsDQAJAIBAtAABBdmoOBIwBAACPAQALIBBBAWoiECACRw0AC0HDASEQDKACCwJAIAcgAkYNACAAQZGAgIAANgIIIAAgBzYCBCAHIQFBASEQDIcCC0HEASEQDJ8CCwJAIAcgAkcNAEHFASEQDJ8CCwJAAkAgBy0AAEF2ag4EAc4BzgEAzgELIAdBAWohBgyNAQsgB0EBaiEFDIkBCwJAIAcgAkcNAEHGASEQDJ4CCwJAAkAgBy0AAEF2ag4XAY8BjwEBjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAI8BCyAHQQFqIQcLQbABIRAMhAILAkAgCCACRw0AQcgBIRAMnQILIAgtAABBIEcNjQEgAEEAOwEyIAhBAWohAUGzASEQDIMCCyABIRcCQANAIBciByACRg0BIActAABBUGpB/wFxIhBBCk8NzAECQCAALwEyIhRBmTNLDQAgACAUQQpsIhQ7ATIgEEH//wNzIBRB/v8DcUkNACAHQQFqIRcgACAUIBBqIhA7ATIgEEH//wNxQegHSQ0BCwtBACEQIABBADYCHCAAQcGJgIAANgIQIABBDTYCDCAAIAdBAWo2AhQMnAILQccBIRAMmwILIAAgCCACEK6AgIAAIhBFDcoBIBBBFUcNjAEgAEHIATYCHCAAIAg2AhQgAEHJl4CAADYCECAAQRU2AgxBACEQDJoCCwJAIAkgAkcNAEHMASEQDJoCC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgCS0AAEFQag4KlgGVAQABAgMEBQYIlwELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMjgELQQkhEEEBIRRBACEXQQAhFgyNAQsCQCAKIAJHDQBBzgEhEAyZAgsgCi0AAEEuRw2OASAKQQFqIQkMygELIAsgAkcNjgFB0AEhEAyXAgsCQCALIAJGDQAgAEGOgICAADYCCCAAIAs2AgRBtwEhEAz+AQtB0QEhEAyWAgsCQCAEIAJHDQBB0gEhEAyWAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EEaiELA0AgBC0AACAQQfzPgIAAai0AAEcNjgEgEEEERg3pASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHSASEQDJUCCyAAIAwgAhCsgICAACIBDY0BIAwhAQy4AQsCQCAEIAJHDQBB1AEhEAyUAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EBaiEMA0AgBC0AACAQQYHQgIAAai0AAEcNjwEgEEEBRg2OASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHUASEQDJMCCwJAIAQgAkcNAEHWASEQDJMCCyACIARrIAAoAgAiEGohFCAEIBBrQQJqIQsDQCAELQAAIBBBg9CAgABqLQAARw2OASAQQQJGDZABIBBBAWohECAEQQFqIgQgAkcNAAsgACAUNgIAQdYBIRAMkgILAkAgBCACRw0AQdcBIRAMkgILAkACQCAELQAAQbt/ag4QAI8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwEBjwELIARBAWohBEG7ASEQDPkBCyAEQQFqIQRBvAEhEAz4AQsCQCAEIAJHDQBB2AEhEAyRAgsgBC0AAEHIAEcNjAEgBEEBaiEEDMQBCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEG+ASEQDPcBC0HZASEQDI8CCwJAIAQgAkcNAEHaASEQDI8CCyAELQAAQcgARg3DASAAQQE6ACgMuQELIABBAjoALyAAIAQgAhCmgICAACIQDY0BQcIBIRAM9AELIAAtAChBf2oOArcBuQG4AQsDQAJAIAQtAABBdmoOBACOAY4BAI4BCyAEQQFqIgQgAkcNAAtB3QEhEAyLAgsgAEEAOgAvIAAtAC1BBHFFDYQCCyAAQQA6AC8gAEEBOgA0IAEhAQyMAQsgEEEVRg3aASAAQQA2AhwgACABNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAyIAgsCQCAAIBAgAhC0gICAACIEDQAgECEBDIECCwJAIARBFUcNACAAQQM2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAyIAgsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMhwILIBBBFUYN1gEgAEEANgIcIAAgATYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMhgILIAAoAgQhFyAAQQA2AgQgECARp2oiFiEBIAAgFyAQIBYgFBsiEBC1gICAACIURQ2NASAAQQc2AhwgACAQNgIUIAAgFDYCDEEAIRAMhQILIAAgAC8BMEGAAXI7ATAgASEBC0EqIRAM6gELIBBBFUYN0QEgAEEANgIcIAAgATYCFCAAQYOMgIAANgIQIABBEzYCDEEAIRAMggILIBBBFUYNzwEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAMgQILIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDI0BCyAAQQw2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMgAILIBBBFUYNzAEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM/wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIwBCyAAQQ02AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/gELIBBBFUYNyQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM/QELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIsBCyAAQQ42AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/AELIABBADYCHCAAIAE2AhQgAEHAlYCAADYCECAAQQI2AgxBACEQDPsBCyAQQRVGDcUBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPoBCyAAQRA2AhwgACABNgIUIAAgEDYCDEEAIRAM+QELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDPEBCyAAQRE2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM+AELIBBBFUYNwQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM9wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIgBCyAAQRM2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM9gELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDO0BCyAAQRQ2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM9QELIBBBFUYNvQEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM9AELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIYBCyAAQRY2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM8wELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC3gICAACIEDQAgAUEBaiEBDOkBCyAAQRc2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM8gELIABBADYCHCAAIAE2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDPEBC0IBIRELIBBBAWohAQJAIAApAyAiEkL//////////w9WDQAgACASQgSGIBGENwMgIAEhAQyEAQsgAEEANgIcIAAgATYCFCAAQa2JgIAANgIQIABBDDYCDEEAIRAM7wELIABBADYCHCAAIBA2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDO4BCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNcyAAQQU2AhwgACAQNgIUIAAgFDYCDEEAIRAM7QELIABBADYCHCAAIBA2AhQgAEGqnICAADYCECAAQQ82AgxBACEQDOwBCyAAIBAgAhC0gICAACIBDQEgECEBC0EOIRAM0QELAkAgAUEVRw0AIABBAjYCHCAAIBA2AhQgAEGwmICAADYCECAAQRU2AgxBACEQDOoBCyAAQQA2AhwgACAQNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAzpAQsgAUEBaiEQAkAgAC8BMCIBQYABcUUNAAJAIAAgECACELuAgIAAIgENACAQIQEMcAsgAUEVRw26ASAAQQU2AhwgACAQNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAzpAQsCQCABQaAEcUGgBEcNACAALQAtQQJxDQAgAEEANgIcIAAgEDYCFCAAQZaTgIAANgIQIABBBDYCDEEAIRAM6QELIAAgECACEL2AgIAAGiAQIQECQAJAAkACQAJAIAAgECACELOAgIAADhYCAQAEBAQEBAQEBAQEBAQEBAQEBAQDBAsgAEEBOgAuCyAAIAAvATBBwAByOwEwIBAhAQtBJiEQDNEBCyAAQSM2AhwgACAQNgIUIABBpZaAgAA2AhAgAEEVNgIMQQAhEAzpAQsgAEEANgIcIAAgEDYCFCAAQdWLgIAANgIQIABBETYCDEEAIRAM6AELIAAtAC1BAXFFDQFBwwEhEAzOAQsCQCANIAJGDQADQAJAIA0tAABBIEYNACANIQEMxAELIA1BAWoiDSACRw0AC0ElIRAM5wELQSUhEAzmAQsgACgCBCEEIABBADYCBCAAIAQgDRCvgICAACIERQ2tASAAQSY2AhwgACAENgIMIAAgDUEBajYCFEEAIRAM5QELIBBBFUYNqwEgAEEANgIcIAAgATYCFCAAQf2NgIAANgIQIABBHTYCDEEAIRAM5AELIABBJzYCHCAAIAE2AhQgACAQNgIMQQAhEAzjAQsgECEBQQEhFAJAAkACQAJAAkACQAJAIAAtACxBfmoOBwYFBQMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0ErIRAMygELIABBADYCHCAAIBA2AhQgAEGrkoCAADYCECAAQQs2AgxBACEQDOIBCyAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMQQAhEAzhAQsgAEEAOgAsIBAhAQy9AQsgECEBQQEhFAJAAkACQAJAAkAgAC0ALEF7ag4EAwECAAULIAAgAC8BMEEIcjsBMAwDC0ECIRQMAQtBBCEUCyAAQQE6ACwgACAALwEwIBRyOwEwCyAQIQELQSkhEAzFAQsgAEEANgIcIAAgATYCFCAAQfCUgIAANgIQIABBAzYCDEEAIRAM3QELAkAgDi0AAEENRw0AIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHULIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzdAQsgAC0ALUEBcUUNAUHEASEQDMMBCwJAIA4gAkcNAEEtIRAM3AELAkACQANAAkAgDi0AAEF2ag4EAgAAAwALIA5BAWoiDiACRw0AC0EtIRAM3QELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDiEBDHQLIABBLDYCHCAAIA42AhQgACABNgIMQQAhEAzcAQsgACgCBCEBIABBADYCBAJAIAAgASAOELGAgIAAIgENACAOQQFqIQEMcwsgAEEsNgIcIAAgATYCDCAAIA5BAWo2AhRBACEQDNsBCyAAKAIEIQQgAEEANgIEIAAgBCAOELGAgIAAIgQNoAEgDiEBDM4BCyAQQSxHDQEgAUEBaiEQQQEhAQJAAkACQAJAAkAgAC0ALEF7ag4EAwECBAALIBAhAQwEC0ECIQEMAQtBBCEBCyAAQQE6ACwgACAALwEwIAFyOwEwIBAhAQwBCyAAIAAvATBBCHI7ATAgECEBC0E5IRAMvwELIABBADoALCABIQELQTQhEAy9AQsgACAALwEwQSByOwEwIAEhAQwCCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBA0AIAEhAQzHAQsgAEE3NgIcIAAgATYCFCAAIAQ2AgxBACEQDNQBCyAAQQg6ACwgASEBC0EwIRAMuQELAkAgAC0AKEEBRg0AIAEhAQwECyAALQAtQQhxRQ2TASABIQEMAwsgAC0AMEEgcQ2UAUHFASEQDLcBCwJAIA8gAkYNAAJAA0ACQCAPLQAAQVBqIgFB/wFxQQpJDQAgDyEBQTUhEAy6AQsgACkDICIRQpmz5syZs+bMGVYNASAAIBFCCn4iETcDICARIAGtQv8BgyISQn+FVg0BIAAgESASfDcDICAPQQFqIg8gAkcNAAtBOSEQDNEBCyAAKAIEIQIgAEEANgIEIAAgAiAPQQFqIgQQsYCAgAAiAg2VASAEIQEMwwELQTkhEAzPAQsCQCAALwEwIgFBCHFFDQAgAC0AKEEBRw0AIAAtAC1BCHFFDZABCyAAIAFB9/sDcUGABHI7ATAgDyEBC0E3IRAMtAELIAAgAC8BMEEQcjsBMAyrAQsgEEEVRg2LASAAQQA2AhwgACABNgIUIABB8I6AgAA2AhAgAEEcNgIMQQAhEAzLAQsgAEHDADYCHCAAIAE2AgwgACANQQFqNgIUQQAhEAzKAQsCQCABLQAAQTpHDQAgACgCBCEQIABBADYCBAJAIAAgECABEK+AgIAAIhANACABQQFqIQEMYwsgAEHDADYCHCAAIBA2AgwgACABQQFqNgIUQQAhEAzKAQsgAEEANgIcIAAgATYCFCAAQbGRgIAANgIQIABBCjYCDEEAIRAMyQELIABBADYCHCAAIAE2AhQgAEGgmYCAADYCECAAQR42AgxBACEQDMgBCyAAQQA2AgALIABBgBI7ASogACAXQQFqIgEgAhCogICAACIQDQEgASEBC0HHACEQDKwBCyAQQRVHDYMBIABB0QA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAzEAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAzDAQsgAEEANgIcIAAgFDYCFCAAQcGogIAANgIQIABBBzYCDCAAQQA2AgBBACEQDMIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxdCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDMEBC0EAIRAgAEEANgIcIAAgATYCFCAAQYCRgIAANgIQIABBCTYCDAzAAQsgEEEVRg19IABBADYCHCAAIAE2AhQgAEGUjYCAADYCECAAQSE2AgxBACEQDL8BC0EBIRZBACEXQQAhFEEBIRALIAAgEDoAKyABQQFqIQECQAJAIAAtAC1BEHENAAJAAkACQCAALQAqDgMBAAIECyAWRQ0DDAILIBQNAQwCCyAXRQ0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQrYCAgAAiEA0AIAEhAQxcCyAAQdgANgIcIAAgATYCFCAAIBA2AgxBACEQDL4BCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQytAQsgAEHZADYCHCAAIAE2AhQgACAENgIMQQAhEAy9AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMqwELIABB2gA2AhwgACABNgIUIAAgBDYCDEEAIRAMvAELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKkBCyAAQdwANgIcIAAgATYCFCAAIAQ2AgxBACEQDLsBCwJAIAEtAABBUGoiEEH/AXFBCk8NACAAIBA6ACogAUEBaiEBQc8AIRAMogELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKcBCyAAQd4ANgIcIAAgATYCFCAAIAQ2AgxBACEQDLoBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKUEjTw0AIAEhAQxZCyAAQQA2AhwgACABNgIUIABB04mAgAA2AhAgAEEINgIMQQAhEAy5AQsgAEEANgIAC0EAIRAgAEEANgIcIAAgATYCFCAAQZCzgIAANgIQIABBCDYCDAy3AQsgAEEANgIAIBdBAWohAQJAIAAtAClBIUcNACABIQEMVgsgAEEANgIcIAAgATYCFCAAQZuKgIAANgIQIABBCDYCDEEAIRAMtgELIABBADYCACAXQQFqIQECQCAALQApIhBBXWpBC08NACABIQEMVQsCQCAQQQZLDQBBASAQdEHKAHFFDQAgASEBDFULQQAhECAAQQA2AhwgACABNgIUIABB94mAgAA2AhAgAEEINgIMDLUBCyAQQRVGDXEgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMtAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFQLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMswELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMsgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMsQELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFELIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMsAELIABBADYCHCAAIAE2AhQgAEHGioCAADYCECAAQQc2AgxBACEQDK8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDK4BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDK0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDKwBCyAAQQA2AhwgACABNgIUIABB3IiAgAA2AhAgAEEHNgIMQQAhEAyrAQsgEEE/Rw0BIAFBAWohAQtBBSEQDJABC0EAIRAgAEEANgIcIAAgATYCFCAAQf2SgIAANgIQIABBBzYCDAyoAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAynAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAymAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMRgsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAylAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHSADYCHCAAIBQ2AhQgACABNgIMQQAhEAykAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHTADYCHCAAIBQ2AhQgACABNgIMQQAhEAyjAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMQwsgAEHlADYCHCAAIBQ2AhQgACABNgIMQQAhEAyiAQsgAEEANgIcIAAgFDYCFCAAQcOPgIAANgIQIABBBzYCDEEAIRAMoQELIABBADYCHCAAIAE2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKABC0EAIRAgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDAyfAQsgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDEEAIRAMngELIABBADYCHCAAIBQ2AhQgAEH+kYCAADYCECAAQQc2AgxBACEQDJ0BCyAAQQA2AhwgACABNgIUIABBjpuAgAA2AhAgAEEGNgIMQQAhEAycAQsgEEEVRg1XIABBADYCHCAAIAE2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDJsBCyAAQQA2AgAgEEEBaiEBQSQhEAsgACAQOgApIAAoAgQhECAAQQA2AgQgACAQIAEQq4CAgAAiEA1UIAEhAQw+CyAAQQA2AgALQQAhECAAQQA2AhwgACAENgIUIABB8ZuAgAA2AhAgAEEGNgIMDJcBCyABQRVGDVAgAEEANgIcIAAgBTYCFCAAQfCMgIAANgIQIABBGzYCDEEAIRAMlgELIAAoAgQhBSAAQQA2AgQgACAFIBAQqYCAgAAiBQ0BIBBBAWohBQtBrQEhEAx7CyAAQcEBNgIcIAAgBTYCDCAAIBBBAWo2AhRBACEQDJMBCyAAKAIEIQYgAEEANgIEIAAgBiAQEKmAgIAAIgYNASAQQQFqIQYLQa4BIRAMeAsgAEHCATYCHCAAIAY2AgwgACAQQQFqNgIUQQAhEAyQAQsgAEEANgIcIAAgBzYCFCAAQZeLgIAANgIQIABBDTYCDEEAIRAMjwELIABBADYCHCAAIAg2AhQgAEHjkICAADYCECAAQQk2AgxBACEQDI4BCyAAQQA2AhwgACAINgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAyNAQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgCUEBaiEIAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBCAAIBAgCBCtgICAACIQRQ09IABByQE2AhwgACAINgIUIAAgEDYCDEEAIRAMjAELIAAoAgQhBCAAQQA2AgQgACAEIAgQrYCAgAAiBEUNdiAAQcoBNgIcIAAgCDYCFCAAIAQ2AgxBACEQDIsBCyAAKAIEIQQgAEEANgIEIAAgBCAJEK2AgIAAIgRFDXQgAEHLATYCHCAAIAk2AhQgACAENgIMQQAhEAyKAQsgACgCBCEEIABBADYCBCAAIAQgChCtgICAACIERQ1yIABBzQE2AhwgACAKNgIUIAAgBDYCDEEAIRAMiQELAkAgCy0AAEFQaiIQQf8BcUEKTw0AIAAgEDoAKiALQQFqIQpBtgEhEAxwCyAAKAIEIQQgAEEANgIEIAAgBCALEK2AgIAAIgRFDXAgAEHPATYCHCAAIAs2AhQgACAENgIMQQAhEAyIAQsgAEEANgIcIAAgBDYCFCAAQZCzgIAANgIQIABBCDYCDCAAQQA2AgBBACEQDIcBCyABQRVGDT8gAEEANgIcIAAgDDYCFCAAQcyOgIAANgIQIABBIDYCDEEAIRAMhgELIABBgQQ7ASggACgCBCEQIABCADcDACAAIBAgDEEBaiIMEKuAgIAAIhBFDTggAEHTATYCHCAAIAw2AhQgACAQNgIMQQAhEAyFAQsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQdibgIAANgIQIABBCDYCDAyDAQsgACgCBCEQIABCADcDACAAIBAgC0EBaiILEKuAgIAAIhANAUHGASEQDGkLIABBAjoAKAxVCyAAQdUBNgIcIAAgCzYCFCAAIBA2AgxBACEQDIABCyAQQRVGDTcgAEEANgIcIAAgBDYCFCAAQaSMgIAANgIQIABBEDYCDEEAIRAMfwsgAC0ANEEBRw00IAAgBCACELyAgIAAIhBFDTQgEEEVRw01IABB3AE2AhwgACAENgIUIABB1ZaAgAA2AhAgAEEVNgIMQQAhEAx+C0EAIRAgAEEANgIcIABBr4uAgAA2AhAgAEECNgIMIAAgFEEBajYCFAx9C0EAIRAMYwtBAiEQDGILQQ0hEAxhC0EPIRAMYAtBJSEQDF8LQRMhEAxeC0EVIRAMXQtBFiEQDFwLQRchEAxbC0EYIRAMWgtBGSEQDFkLQRohEAxYC0EbIRAMVwtBHCEQDFYLQR0hEAxVC0EfIRAMVAtBISEQDFMLQSMhEAxSC0HGACEQDFELQS4hEAxQC0EvIRAMTwtBOyEQDE4LQT0hEAxNC0HIACEQDEwLQckAIRAMSwtBywAhEAxKC0HMACEQDEkLQc4AIRAMSAtB0QAhEAxHC0HVACEQDEYLQdgAIRAMRQtB2QAhEAxEC0HbACEQDEMLQeQAIRAMQgtB5QAhEAxBC0HxACEQDEALQfQAIRAMPwtBjQEhEAw+C0GXASEQDD0LQakBIRAMPAtBrAEhEAw7C0HAASEQDDoLQbkBIRAMOQtBrwEhEAw4C0GxASEQDDcLQbIBIRAMNgtBtAEhEAw1C0G1ASEQDDQLQboBIRAMMwtBvQEhEAwyC0G/ASEQDDELQcEBIRAMMAsgAEEANgIcIAAgBDYCFCAAQemLgIAANgIQIABBHzYCDEEAIRAMSAsgAEHbATYCHCAAIAQ2AhQgAEH6loCAADYCECAAQRU2AgxBACEQDEcLIABB+AA2AhwgACAMNgIUIABBypiAgAA2AhAgAEEVNgIMQQAhEAxGCyAAQdEANgIcIAAgBTYCFCAAQbCXgIAANgIQIABBFTYCDEEAIRAMRQsgAEH5ADYCHCAAIAE2AhQgACAQNgIMQQAhEAxECyAAQfgANgIcIAAgATYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMQwsgAEHkADYCHCAAIAE2AhQgAEHjl4CAADYCECAAQRU2AgxBACEQDEILIABB1wA2AhwgACABNgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAxBCyAAQQA2AhwgACABNgIUIABBuY2AgAA2AhAgAEEaNgIMQQAhEAxACyAAQcIANgIcIAAgATYCFCAAQeOYgIAANgIQIABBFTYCDEEAIRAMPwsgAEEANgIEIAAgDyAPELGAgIAAIgRFDQEgAEE6NgIcIAAgBDYCDCAAIA9BAWo2AhRBACEQDD4LIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCxgICAACIERQ0AIABBOzYCHCAAIAQ2AgwgACABQQFqNgIUQQAhEAw+CyABQQFqIQEMLQsgD0EBaiEBDC0LIABBADYCHCAAIA82AhQgAEHkkoCAADYCECAAQQQ2AgxBACEQDDsLIABBNjYCHCAAIAQ2AhQgACACNgIMQQAhEAw6CyAAQS42AhwgACAONgIUIAAgBDYCDEEAIRAMOQsgAEHQADYCHCAAIAE2AhQgAEGRmICAADYCECAAQRU2AgxBACEQDDgLIA1BAWohAQwsCyAAQRU2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAw2CyAAQRs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw1CyAAQQ82AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw0CyAAQQs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAwzCyAAQRo2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwyCyAAQQs2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwxCyAAQQo2AhwgACABNgIUIABB5JaAgAA2AhAgAEEVNgIMQQAhEAwwCyAAQR42AhwgACABNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAwvCyAAQQA2AhwgACAQNgIUIABB2o2AgAA2AhAgAEEUNgIMQQAhEAwuCyAAQQQ2AhwgACABNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAwtCyAAQQA2AgAgC0EBaiELC0G4ASEQDBILIABBADYCACAQQQFqIQFB9QAhEAwRCyABIQECQCAALQApQQVHDQBB4wAhEAwRC0HiACEQDBALQQAhECAAQQA2AhwgAEHkkYCAADYCECAAQQc2AgwgACAUQQFqNgIUDCgLIABBADYCACAXQQFqIQFBwAAhEAwOC0EBIQELIAAgAToALCAAQQA2AgAgF0EBaiEBC0EoIRAMCwsgASEBC0E4IRAMCQsCQCABIg8gAkYNAANAAkAgDy0AAEGAvoCAAGotAAAiAUEBRg0AIAFBAkcNAyAPQQFqIQEMBAsgD0EBaiIPIAJHDQALQT4hEAwiC0E+IRAMIQsgAEEAOgAsIA8hAQwBC0ELIRAMBgtBOiEQDAULIAFBAWohAUEtIRAMBAsgACABOgAsIABBADYCACAWQQFqIQFBDCEQDAMLIABBADYCACAXQQFqIQFBCiEQDAILIABBADYCAAsgAEEAOgAsIA0hAUEJIRAMAAsLQQAhECAAQQA2AhwgACALNgIUIABBzZCAgAA2AhAgAEEJNgIMDBcLQQAhECAAQQA2AhwgACAKNgIUIABB6YqAgAA2AhAgAEEJNgIMDBYLQQAhECAAQQA2AhwgACAJNgIUIABBt5CAgAA2AhAgAEEJNgIMDBULQQAhECAAQQA2AhwgACAINgIUIABBnJGAgAA2AhAgAEEJNgIMDBQLQQAhECAAQQA2AhwgACABNgIUIABBzZCAgAA2AhAgAEEJNgIMDBMLQQAhECAAQQA2AhwgACABNgIUIABB6YqAgAA2AhAgAEEJNgIMDBILQQAhECAAQQA2AhwgACABNgIUIABBt5CAgAA2AhAgAEEJNgIMDBELQQAhECAAQQA2AhwgACABNgIUIABBnJGAgAA2AhAgAEEJNgIMDBALQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA8LQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA4LQQAhECAAQQA2AhwgACABNgIUIABBwJKAgAA2AhAgAEELNgIMDA0LQQAhECAAQQA2AhwgACABNgIUIABBlYmAgAA2AhAgAEELNgIMDAwLQQAhECAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMDAsLQQAhECAAQQA2AhwgACABNgIUIABB+4+AgAA2AhAgAEEKNgIMDAoLQQAhECAAQQA2AhwgACABNgIUIABB8ZmAgAA2AhAgAEECNgIMDAkLQQAhECAAQQA2AhwgACABNgIUIABBxJSAgAA2AhAgAEECNgIMDAgLQQAhECAAQQA2AhwgACABNgIUIABB8pWAgAA2AhAgAEECNgIMDAcLIABBAjYCHCAAIAE2AhQgAEGcmoCAADYCECAAQRY2AgxBACEQDAYLQQEhEAwFC0HUACEQIAEiBCACRg0EIANBCGogACAEIAJB2MKAgABBChDFgICAACADKAIMIQQgAygCCA4DAQQCAAsQyoCAgAAACyAAQQA2AhwgAEG1moCAADYCECAAQRc2AgwgACAEQQFqNgIUQQAhEAwCCyAAQQA2AhwgACAENgIUIABBypqAgAA2AhAgAEEJNgIMQQAhEAwBCwJAIAEiBCACRw0AQSIhEAwBCyAAQYmAgIAANgIIIAAgBDYCBEEhIRALIANBEGokgICAgAAgEAuvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAEMeAgIAAC/I2AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKg0ICAAA0AQQAQy4CAgABBgNSEgABrIgJB2QBJDQBBACEDAkBBACgC4NOAgAAiBA0AQQBCfzcC7NOAgABBAEKAgISAgIDAADcC5NOAgABBACABQQhqQXBxQdiq1aoFcyIENgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgAALQQAgAjYCzNOAgABBAEGA1ISAADYCyNOAgABBAEGA1ISAADYCmNCAgABBACAENgKs0ICAAEEAQX82AqjQgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgNSEgABBeEGA1ISAAGtBD3FBAEGA1ISAAEEIakEPcRsiA2oiBEEEaiACQUhqIgUgA2siA0EBcjYCAEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgABBgNSEgAAgBWpBODYCBAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAUsNAAJAQQAoAojQgIAAIgZBECAAQRNqQXBxIABBC0kbIgJBA3YiBHYiA0EDcUUNAAJAAkAgA0EBcSAEckEBcyIFQQN0IgRBsNCAgABqIgMgBEG40ICAAGooAgAiBCgCCCICRw0AQQAgBkF+IAV3cTYCiNCAgAAMAQsgAyACNgIIIAIgAzYCDAsgBEEIaiEDIAQgBUEDdCIFQQNyNgIEIAQgBWoiBCAEKAIEQQFyNgIEDAwLIAJBACgCkNCAgAAiB00NAQJAIANFDQACQAJAIAMgBHRBAiAEdCIDQQAgA2tycSIDQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmoiBEEDdCIDQbDQgIAAaiIFIANBuNCAgABqKAIAIgMoAggiAEcNAEEAIAZBfiAEd3EiBjYCiNCAgAAMAQsgBSAANgIIIAAgBTYCDAsgAyACQQNyNgIEIAMgBEEDdCIEaiAEIAJrIgU2AgAgAyACaiIAIAVBAXI2AgQCQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhBAJAAkAgBkEBIAdBA3Z0IghxDQBBACAGIAhyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAg2AggLIANBCGohA0EAIAA2ApzQgIAAQQAgBTYCkNCAgAAMDAtBACgCjNCAgAAiCUUNASAJQQAgCWtxQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmpBAnRBuNKAgABqKAIAIgAoAgRBeHEgAmshBCAAIQUCQANAAkAgBSgCECIDDQAgBUEUaigCACIDRQ0CCyADKAIEQXhxIAJrIgUgBCAFIARJIgUbIQQgAyAAIAUbIQAgAyEFDAALCyAAKAIYIQoCQCAAKAIMIgggAEYNACAAKAIIIgNBACgCmNCAgABJGiAIIAM2AgggAyAINgIMDAsLAkAgAEEUaiIFKAIAIgMNACAAKAIQIgNFDQMgAEEQaiEFCwNAIAUhCyADIghBFGoiBSgCACIDDQAgCEEQaiEFIAgoAhAiAw0ACyALQQA2AgAMCgtBfyECIABBv39LDQAgAEETaiIDQXBxIQJBACgCjNCAgAAiB0UNAEEAIQsCQCACQYACSQ0AQR8hCyACQf///wdLDQAgA0EIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIFIAVBgIAPakEQdkECcSIFdEEPdiADIARyIAVyayIDQQF0IAIgA0EVanZBAXFyQRxqIQsLQQAgAmshBAJAAkACQAJAIAtBAnRBuNKAgABqKAIAIgUNAEEAIQNBACEIDAELQQAhAyACQQBBGSALQQF2ayALQR9GG3QhAEEAIQgDQAJAIAUoAgRBeHEgAmsiBiAETw0AIAYhBCAFIQggBg0AQQAhBCAFIQggBSEDDAMLIAMgBUEUaigCACIGIAYgBSAAQR12QQRxakEQaigCACIFRhsgAyAGGyEDIABBAXQhACAFDQALCwJAIAMgCHINAEEAIQhBAiALdCIDQQAgA2tyIAdxIgNFDQMgA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBUEFdkEIcSIAIANyIAUgAHYiA0ECdkEEcSIFciADIAV2IgNBAXZBAnEiBXIgAyAFdiIDQQF2QQFxIgVyIAMgBXZqQQJ0QbjSgIAAaigCACEDCyADRQ0BCwNAIAMoAgRBeHEgAmsiBiAESSEAAkAgAygCECIFDQAgA0EUaigCACEFCyAGIAQgABshBCADIAggABshCCAFIQMgBQ0ACwsgCEUNACAEQQAoApDQgIAAIAJrTw0AIAgoAhghCwJAIAgoAgwiACAIRg0AIAgoAggiA0EAKAKY0ICAAEkaIAAgAzYCCCADIAA2AgwMCQsCQCAIQRRqIgUoAgAiAw0AIAgoAhAiA0UNAyAIQRBqIQULA0AgBSEGIAMiAEEUaiIFKAIAIgMNACAAQRBqIQUgACgCECIDDQALIAZBADYCAAwICwJAQQAoApDQgIAAIgMgAkkNAEEAKAKc0ICAACEEAkACQCADIAJrIgVBEEkNACAEIAJqIgAgBUEBcjYCBEEAIAU2ApDQgIAAQQAgADYCnNCAgAAgBCADaiAFNgIAIAQgAkEDcjYCBAwBCyAEIANBA3I2AgQgBCADaiIDIAMoAgRBAXI2AgRBAEEANgKc0ICAAEEAQQA2ApDQgIAACyAEQQhqIQMMCgsCQEEAKAKU0ICAACIAIAJNDQBBACgCoNCAgAAiAyACaiIEIAAgAmsiBUEBcjYCBEEAIAU2ApTQgIAAQQAgBDYCoNCAgAAgAyACQQNyNgIEIANBCGohAwwKCwJAAkBBACgC4NOAgABFDQBBACgC6NOAgAAhBAwBC0EAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEMakFwcUHYqtWqBXM2AuDTgIAAQQBBADYC9NOAgABBAEEANgLE04CAAEGAgAQhBAtBACEDAkAgBCACQccAaiIHaiIGQQAgBGsiC3EiCCACSw0AQQBBMDYC+NOAgAAMCgsCQEEAKALA04CAACIDRQ0AAkBBACgCuNOAgAAiBCAIaiIFIARNDQAgBSADTQ0BC0EAIQNBAEEwNgL404CAAAwKC0EALQDE04CAAEEEcQ0EAkACQAJAQQAoAqDQgIAAIgRFDQBByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiAESw0DCyADKAIIIgMNAAsLQQAQy4CAgAAiAEF/Rg0FIAghBgJAQQAoAuTTgIAAIgNBf2oiBCAAcUUNACAIIABrIAQgAGpBACADa3FqIQYLIAYgAk0NBSAGQf7///8HSw0FAkBBACgCwNOAgAAiA0UNAEEAKAK404CAACIEIAZqIgUgBE0NBiAFIANLDQYLIAYQy4CAgAAiAyAARw0BDAcLIAYgAGsgC3EiBkH+////B0sNBCAGEMuAgIAAIgAgAygCACADKAIEakYNAyAAIQMLAkAgA0F/Rg0AIAJByABqIAZNDQACQCAHIAZrQQAoAujTgIAAIgRqQQAgBGtxIgRB/v///wdNDQAgAyEADAcLAkAgBBDLgICAAEF/Rg0AIAQgBmohBiADIQAMBwtBACAGaxDLgICAABoMBAsgAyEAIANBf0cNBQwDC0EAIQgMBwtBACEADAULIABBf0cNAgtBAEEAKALE04CAAEEEcjYCxNOAgAALIAhB/v///wdLDQEgCBDLgICAACEAQQAQy4CAgAAhAyAAQX9GDQEgA0F/Rg0BIAAgA08NASADIABrIgYgAkE4ak0NAQtBAEEAKAK404CAACAGaiIDNgK404CAAAJAIANBACgCvNOAgABNDQBBACADNgK804CAAAsCQAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQCAAIAMoAgAiBSADKAIEIghqRg0CIAMoAggiAw0ADAMLCwJAAkBBACgCmNCAgAAiA0UNACAAIANPDQELQQAgADYCmNCAgAALQQAhA0EAIAY2AszTgIAAQQAgADYCyNOAgABBAEF/NgKo0ICAAEEAQQAoAuDTgIAANgKs0ICAAEEAQQA2AtTTgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiBCAGQUhqIgUgA2siA0EBcjYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgAAgACAFakE4NgIEDAILIAMtAAxBCHENACAEIAVJDQAgBCAATw0AIARBeCAEa0EPcUEAIARBCGpBD3EbIgVqIgBBACgClNCAgAAgBmoiCyAFayIFQQFyNgIEIAMgCCAGajYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAU2ApTQgIAAQQAgADYCoNCAgAAgBCALakE4NgIEDAELAkAgAEEAKAKY0ICAACIITw0AQQAgADYCmNCAgAAgACEICyAAIAZqIQVByNOAgAAhAwJAAkACQAJAAkACQAJAA0AgAygCACAFRg0BIAMoAggiAw0ADAILCyADLQAMQQhxRQ0BC0HI04CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIgUgBEsNAwsgAygCCCEDDAALCyADIAA2AgAgAyADKAIEIAZqNgIEIABBeCAAa0EPcUEAIABBCGpBD3EbaiILIAJBA3I2AgQgBUF4IAVrQQ9xQQAgBUEIakEPcRtqIgYgCyACaiICayEDAkAgBiAERw0AQQAgAjYCoNCAgABBAEEAKAKU0ICAACADaiIDNgKU0ICAACACIANBAXI2AgQMAwsCQCAGQQAoApzQgIAARw0AQQAgAjYCnNCAgABBAEEAKAKQ0ICAACADaiIDNgKQ0ICAACACIANBAXI2AgQgAiADaiADNgIADAMLAkAgBigCBCIEQQNxQQFHDQAgBEF4cSEHAkACQCAEQf8BSw0AIAYoAggiBSAEQQN2IghBA3RBsNCAgABqIgBGGgJAIAYoAgwiBCAFRw0AQQBBACgCiNCAgABBfiAId3E2AojQgIAADAILIAQgAEYaIAQgBTYCCCAFIAQ2AgwMAQsgBigCGCEJAkACQCAGKAIMIgAgBkYNACAGKAIIIgQgCEkaIAAgBDYCCCAEIAA2AgwMAQsCQCAGQRRqIgQoAgAiBQ0AIAZBEGoiBCgCACIFDQBBACEADAELA0AgBCEIIAUiAEEUaiIEKAIAIgUNACAAQRBqIQQgACgCECIFDQALIAhBADYCAAsgCUUNAAJAAkAgBiAGKAIcIgVBAnRBuNKAgABqIgQoAgBHDQAgBCAANgIAIAANAUEAQQAoAozQgIAAQX4gBXdxNgKM0ICAAAwCCyAJQRBBFCAJKAIQIAZGG2ogADYCACAARQ0BCyAAIAk2AhgCQCAGKAIQIgRFDQAgACAENgIQIAQgADYCGAsgBigCFCIERQ0AIABBFGogBDYCACAEIAA2AhgLIAcgA2ohAyAGIAdqIgYoAgQhBAsgBiAEQX5xNgIEIAIgA2ogAzYCACACIANBAXI2AgQCQCADQf8BSw0AIANBeHFBsNCAgABqIQQCQAJAQQAoAojQgIAAIgVBASADQQN2dCIDcQ0AQQAgBSADcjYCiNCAgAAgBCEDDAELIAQoAgghAwsgAyACNgIMIAQgAjYCCCACIAQ2AgwgAiADNgIIDAMLQR8hBAJAIANB////B0sNACADQQh2IgQgBEGA/j9qQRB2QQhxIgR0IgUgBUGA4B9qQRB2QQRxIgV0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAQgBXIgAHJrIgRBAXQgAyAEQRVqdkEBcXJBHGohBAsgAiAENgIcIAJCADcCECAEQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiAEEBIAR0IghxDQAgBSACNgIAQQAgACAIcjYCjNCAgAAgAiAFNgIYIAIgAjYCCCACIAI2AgwMAwsgA0EAQRkgBEEBdmsgBEEfRht0IQQgBSgCACEAA0AgACIFKAIEQXhxIANGDQIgBEEddiEAIARBAXQhBCAFIABBBHFqQRBqIggoAgAiAA0ACyAIIAI2AgAgAiAFNgIYIAIgAjYCDCACIAI2AggMAgsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiCyAGQUhqIgggA2siA0EBcjYCBCAAIAhqQTg2AgQgBCAFQTcgBWtBD3FBACAFQUlqQQ9xG2pBQWoiCCAIIARBEGpJGyIIQSM2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAs2AqDQgIAAIAhBEGpBACkC0NOAgAA3AgAgCEEAKQLI04CAADcCCEEAIAhBCGo2AtDTgIAAQQAgBjYCzNOAgABBACAANgLI04CAAEEAQQA2AtTTgIAAIAhBJGohAwNAIANBBzYCACADQQRqIgMgBUkNAAsgCCAERg0DIAggCCgCBEF+cTYCBCAIIAggBGsiADYCACAEIABBAXI2AgQCQCAAQf8BSw0AIABBeHFBsNCAgABqIQMCQAJAQQAoAojQgIAAIgVBASAAQQN2dCIAcQ0AQQAgBSAAcjYCiNCAgAAgAyEFDAELIAMoAgghBQsgBSAENgIMIAMgBDYCCCAEIAM2AgwgBCAFNgIIDAQLQR8hAwJAIABB////B0sNACAAQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgggCEGAgA9qQRB2QQJxIgh0QQ92IAMgBXIgCHJrIgNBAXQgACADQRVqdkEBcXJBHGohAwsgBCADNgIcIARCADcCECADQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiCEEBIAN0IgZxDQAgBSAENgIAQQAgCCAGcjYCjNCAgAAgBCAFNgIYIAQgBDYCCCAEIAQ2AgwMBAsgAEEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACEIA0AgCCIFKAIEQXhxIABGDQMgA0EddiEIIANBAXQhAyAFIAhBBHFqQRBqIgYoAgAiCA0ACyAGIAQ2AgAgBCAFNgIYIAQgBDYCDCAEIAQ2AggMAwsgBSgCCCIDIAI2AgwgBSACNgIIIAJBADYCGCACIAU2AgwgAiADNgIICyALQQhqIQMMBQsgBSgCCCIDIAQ2AgwgBSAENgIIIARBADYCGCAEIAU2AgwgBCADNgIIC0EAKAKU0ICAACIDIAJNDQBBACgCoNCAgAAiBCACaiIFIAMgAmsiA0EBcjYCBEEAIAM2ApTQgIAAQQAgBTYCoNCAgAAgBCACQQNyNgIEIARBCGohAwwDC0EAIQNBAEEwNgL404CAAAwCCwJAIAtFDQACQAJAIAggCCgCHCIFQQJ0QbjSgIAAaiIDKAIARw0AIAMgADYCACAADQFBACAHQX4gBXdxIgc2AozQgIAADAILIAtBEEEUIAsoAhAgCEYbaiAANgIAIABFDQELIAAgCzYCGAJAIAgoAhAiA0UNACAAIAM2AhAgAyAANgIYCyAIQRRqKAIAIgNFDQAgAEEUaiADNgIAIAMgADYCGAsCQAJAIARBD0sNACAIIAQgAmoiA0EDcjYCBCAIIANqIgMgAygCBEEBcjYCBAwBCyAIIAJqIgAgBEEBcjYCBCAIIAJBA3I2AgQgACAEaiAENgIAAkAgBEH/AUsNACAEQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgBEEDdnQiBHENAEEAIAUgBHI2AojQgIAAIAMhBAwBCyADKAIIIQQLIAQgADYCDCADIAA2AgggACADNgIMIAAgBDYCCAwBC0EfIQMCQCAEQf///wdLDQAgBEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCICIAJBgIAPakEQdkECcSICdEEPdiADIAVyIAJyayIDQQF0IAQgA0EVanZBAXFyQRxqIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEG40oCAAGohBQJAIAdBASADdCICcQ0AIAUgADYCAEEAIAcgAnI2AozQgIAAIAAgBTYCGCAAIAA2AgggACAANgIMDAELIARBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAgJAA0AgAiIFKAIEQXhxIARGDQEgA0EddiECIANBAXQhAyAFIAJBBHFqQRBqIgYoAgAiAg0ACyAGIAA2AgAgACAFNgIYIAAgADYCDCAAIAA2AggMAQsgBSgCCCIDIAA2AgwgBSAANgIIIABBADYCGCAAIAU2AgwgACADNgIICyAIQQhqIQMMAQsCQCAKRQ0AAkACQCAAIAAoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAg2AgAgCA0BQQAgCUF+IAV3cTYCjNCAgAAMAgsgCkEQQRQgCigCECAARhtqIAg2AgAgCEUNAQsgCCAKNgIYAkAgACgCECIDRQ0AIAggAzYCECADIAg2AhgLIABBFGooAgAiA0UNACAIQRRqIAM2AgAgAyAINgIYCwJAAkAgBEEPSw0AIAAgBCACaiIDQQNyNgIEIAAgA2oiAyADKAIEQQFyNgIEDAELIAAgAmoiBSAEQQFyNgIEIAAgAkEDcjYCBCAFIARqIAQ2AgACQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhAwJAAkBBASAHQQN2dCIIIAZxDQBBACAIIAZyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAM2AgwgAiADNgIIIAMgAjYCDCADIAg2AggLQQAgBTYCnNCAgABBACAENgKQ0ICAAAsgAEEIaiEDCyABQRBqJICAgIAAIAMLCgAgABDJgICAAAviDQEHfwJAIABFDQAgAEF4aiIBIABBfGooAgAiAkF4cSIAaiEDAkAgAkEBcQ0AIAJBA3FFDQEgASABKAIAIgJrIgFBACgCmNCAgAAiBEkNASACIABqIQACQCABQQAoApzQgIAARg0AAkAgAkH/AUsNACABKAIIIgQgAkEDdiIFQQN0QbDQgIAAaiIGRhoCQCABKAIMIgIgBEcNAEEAQQAoAojQgIAAQX4gBXdxNgKI0ICAAAwDCyACIAZGGiACIAQ2AgggBCACNgIMDAILIAEoAhghBwJAAkAgASgCDCIGIAFGDQAgASgCCCICIARJGiAGIAI2AgggAiAGNgIMDAELAkAgAUEUaiICKAIAIgQNACABQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQECQAJAIAEgASgCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAwsgB0EQQRQgBygCECABRhtqIAY2AgAgBkUNAgsgBiAHNgIYAkAgASgCECICRQ0AIAYgAjYCECACIAY2AhgLIAEoAhQiAkUNASAGQRRqIAI2AgAgAiAGNgIYDAELIAMoAgQiAkEDcUEDRw0AIAMgAkF+cTYCBEEAIAA2ApDQgIAAIAEgAGogADYCACABIABBAXI2AgQPCyABIANPDQAgAygCBCICQQFxRQ0AAkACQCACQQJxDQACQCADQQAoAqDQgIAARw0AQQAgATYCoNCAgABBAEEAKAKU0ICAACAAaiIANgKU0ICAACABIABBAXI2AgQgAUEAKAKc0ICAAEcNA0EAQQA2ApDQgIAAQQBBADYCnNCAgAAPCwJAIANBACgCnNCAgABHDQBBACABNgKc0ICAAEEAQQAoApDQgIAAIABqIgA2ApDQgIAAIAEgAEEBcjYCBCABIABqIAA2AgAPCyACQXhxIABqIQACQAJAIAJB/wFLDQAgAygCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgAygCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAgsgAiAGRhogAiAENgIIIAQgAjYCDAwBCyADKAIYIQcCQAJAIAMoAgwiBiADRg0AIAMoAggiAkEAKAKY0ICAAEkaIAYgAjYCCCACIAY2AgwMAQsCQCADQRRqIgIoAgAiBA0AIANBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAAJAAkAgAyADKAIcIgRBAnRBuNKAgABqIgIoAgBHDQAgAiAGNgIAIAYNAUEAQQAoAozQgIAAQX4gBHdxNgKM0ICAAAwCCyAHQRBBFCAHKAIQIANGG2ogBjYCACAGRQ0BCyAGIAc2AhgCQCADKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgAygCFCICRQ0AIAZBFGogAjYCACACIAY2AhgLIAEgAGogADYCACABIABBAXI2AgQgAUEAKAKc0ICAAEcNAUEAIAA2ApDQgIAADwsgAyACQX5xNgIEIAEgAGogADYCACABIABBAXI2AgQLAkAgAEH/AUsNACAAQXhxQbDQgIAAaiECAkACQEEAKAKI0ICAACIEQQEgAEEDdnQiAHENAEEAIAQgAHI2AojQgIAAIAIhAAwBCyACKAIIIQALIAAgATYCDCACIAE2AgggASACNgIMIAEgADYCCA8LQR8hAgJAIABB////B0sNACAAQQh2IgIgAkGA/j9qQRB2QQhxIgJ0IgQgBEGA4B9qQRB2QQRxIgR0IgYgBkGAgA9qQRB2QQJxIgZ0QQ92IAIgBHIgBnJrIgJBAXQgACACQRVqdkEBcXJBHGohAgsgASACNgIcIAFCADcCECACQQJ0QbjSgIAAaiEEAkACQEEAKAKM0ICAACIGQQEgAnQiA3ENACAEIAE2AgBBACAGIANyNgKM0ICAACABIAQ2AhggASABNgIIIAEgATYCDAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiAEKAIAIQYCQANAIAYiBCgCBEF4cSAARg0BIAJBHXYhBiACQQF0IQIgBCAGQQRxakEQaiIDKAIAIgYNAAsgAyABNgIAIAEgBDYCGCABIAE2AgwgASABNgIIDAELIAQoAggiACABNgIMIAQgATYCCCABQQA2AhggASAENgIMIAEgADYCCAtBAEEAKAKo0ICAAEF/aiIBQX8gARs2AqjQgIAACwsEAAAAC04AAkAgAA0APwBBEHQPCwJAIABB//8DcQ0AIABBf0wNAAJAIABBEHZAACIAQX9HDQBBAEEwNgL404CAAEF/DwsgAEEQdA8LEMqAgIAAAAvyAgIDfwF+AkAgAkUNACAAIAE6AAAgAiAAaiIDQX9qIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0F9aiABOgAAIANBfmogAToAACACQQdJDQAgACABOgADIANBfGogAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkF8aiABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBeGogATYCACACQXRqIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQXBqIAE2AgAgAkFsaiABNgIAIAJBaGogATYCACACQWRqIAE2AgAgBCADQQRxQRhyIgVrIgJBIEkNACABrUKBgICAEH4hBiADIAVqIQEDQCABIAY3AxggASAGNwMQIAEgBjcDCCABIAY3AwAgAUEgaiEBIAJBYGoiAkEfSw0ACwsgAAsLjkgBAEGACAuGSAEAAAACAAAAAwAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAYAAAAHAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='\n", "// @ts-check\n\n'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst util = require('./core/util')\nconst timers = require('./timers')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError,\n ResponseExceededMaxSizeError,\n ClientDestroyedError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors,\n kLocalAddress,\n kMaxResponseSize\n} = require('./core/symbols')\nconst FastBuffer = Buffer[Symbol.species]\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\n/**\n * @type {import('../types/client').default}\n */\nclass Client extends DispatcherBase {\n /**\n *\n * @param {string|URL} url\n * @param {import('../types/client').Client.Options} options\n */\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient,\n localAddress,\n maxResponseSize,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n throw new InvalidArgumentError('localAddress must be valid string IP address')\n }\n\n if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n throw new InvalidArgumentError('maxResponseSize must be a positive number')\n }\n\n if (\n autoSelectFamilyAttemptTimeout != null &&\n (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n ) {\n throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || 16384\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kLocalAddress] = localAddress != null ? localAddress : null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = new Request(origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n return new Promise((resolve) => {\n if (!this[kSize]) {\n resolve(null)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n // TODO (fix): Should we error here with ClientDestroyedError?\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp-wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd-wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp-wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\nllhttpPromise.catch()\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n this.connection = ''\n this.maxResponseSize = client[kMaxResponseSize]\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n timers.clearTimeout(this.timeout)\n if (value) {\n this.timeout = timers.setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message =\n 'Response does not match the HTTP/1.1 protocol (' +\n Buffer.from(llhttp.memory.buffer, ptr, len).toString() +\n ')'\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n timers.clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n this.connection += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = (\n shouldKeepAlive ||\n // Override llhttp value which does not allow keepAlive for HEAD.\n (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n )\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (this.shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n let pause\n try {\n pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n\n if (request.method === 'HEAD') {\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode, maxResponseSize } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n util.destroy(socket, new ResponseExceededMaxSizeError())\n return -1\n }\n\n this.bytesRead += buf.length\n\n try {\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n this.connection = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n try {\n request.onComplete(headers)\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n parser.readMore()\n}\n\nfunction onSocketError (err) {\n const { [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.onMessageComplete()\n return\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser } = this\n\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n return\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client } = this\n\n if (!this[kError] && this[kParser].statusCode && !this[kParser].shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n this[kParser].onMessageComplete()\n }\n\n this[kParser].destroy()\n this[kParser] = null\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substr(1, idx - 1)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (client.destroyed) {\n util.destroy(socket.on('error', () => {}), new ClientDestroyedError())\n return\n }\n\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kError] = null\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n socket[kClient] = client\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n client[kSocket] = socket\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n if (client.destroyed) {\n return\n }\n\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client[kClosedResolve] && !client[kSize]) {\n client[kClosedResolve]()\n client[kClosedResolve] = null\n return\n }\n\n const socket = client[kSocket]\n\n if (socket && !socket.destroyed) {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket) {\n connect(client)\n return\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (util.isStream(request.body) && util.bodyLength(request.body) === 0) {\n request.body\n .on('data', /* istanbul ignore next */ function () {\n /* istanbul ignore next */\n assert(false)\n })\n .on('error', function (err) {\n errorRequest(client, request, err)\n })\n .on('end', function () {\n util.destroy(this)\n })\n\n request.body = null\n }\n\n if (client[kRunning] > 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\nfunction write (client, request) {\n const { body, method, path, host, upgrade, headers, blocking, reset } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n if (request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (reset != null) {\n socket[kReset] = reset\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining] && !socket[kReset]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeStream ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n if (finished) {\n return\n }\n\n try {\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n if (finished) {\n return\n }\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n onFinished(new RequestAbortedError())\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(buffer)\n socket.uncork()\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(socket, err)\n }\n}\n\nasync function writeIterable ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n socket.cork()\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'latin1')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n socket.uncork()\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'latin1')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n", "/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n", "const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n", "'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n", "'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout == null ? 10e3 : connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n", "'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n", "'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n}\n\nmodule.exports = function () {\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n", "'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n", "// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nmodule.exports = class BodyReadable extends Readable {\n constructor ({\n resume,\n abort,\n contentType = '',\n highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n }) {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n async dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n const signal = opts && opts.signal\n const abortFn = () => {\n this.destroy()\n }\n let signalListenerCleanup\n if (signal) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new InvalidArgumentError('signal must be an AbortSignal')\n }\n util.throwIfAborted(signal)\n signalListenerCleanup = util.addAbortListener(signal, abortFn)\n }\n try {\n for await (const chunk of this) {\n util.throwIfAborted(signal)\n limit -= Buffer.byteLength(chunk)\n if (limit < 0) {\n return\n }\n }\n } catch {\n util.throwIfAborted(signal)\n } finally {\n if (typeof signalListenerCleanup === 'function') {\n signalListenerCleanup()\n } else if (signalListenerCleanup) {\n signalListenerCleanup[Symbol.dispose]()\n }\n }\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n", "const assert = require('assert')\nconst {\n ResponseStatusCodeError\n} = require('../core/errors')\nconst { toUSVString } = require('../core/util')\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n assert(body)\n\n let chunks = []\n let limit = 0\n\n for await (const chunk of body) {\n chunks.push(chunk)\n limit += chunk.length\n if (limit > 128 * 1024) {\n chunks = null\n break\n }\n }\n\n if (statusCode === 204 || !contentType || !chunks) {\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = toUSVString(Buffer.concat(chunks))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nmodule.exports = { getResolveErrorBodyCallback }\n", "const { addAbortListener } = require('../core/util')\nconst { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n addAbortListener(self[kSignal], self[kListener])\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n", "'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n throw new InvalidArgumentError('invalid highWaterMark')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n this.highWaterMark = highWaterMark\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n const body = new Readable({ resume, abort, contentType, highWaterMark })\n\n this.callback = null\n this.res = body\n\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n } else {\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\n", "'use strict'\n\nconst { finished, PassThrough } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError || false\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { factory, opaque, context, callback, responseHeaders } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n\n let res\n\n if (this.throwOnError && statusCode >= 400) {\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n res = new PassThrough()\n\n this.callback = null\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body: res, contentType, statusCode, statusMessage, headers }\n )\n } else {\n res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n }\n\n res.on('drain', resume)\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res.write(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n", "'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n", "'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n", "'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n", "'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n", "'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\nconst {\n types: {\n isPromise\n }\n} = require('util')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record<string, string>} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [\n ...keyValuePairs,\n Buffer.from(`${key}`),\n Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n ], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches, _data = data) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const body = typeof _data === 'function'\n ? _data({ ...opts, headers: optsHeaders })\n : _data\n\n // util.types.isPromise is likely needed for jest.\n if (isPromise(body)) {\n // If handleReply is asynchronous, throwing an error\n // in the callback will reject the promise, rather than\n // synchronously throw the error, which breaks some tests.\n // Rather, we wait for the callback to resolve if it is a\n // promise, and then re-run handleReply with the new body.\n body.then((newData) => handleReply(mockDispatches, newData))\n return\n }\n\n const responseData = getResponseData(body)\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n", "'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n", "'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n", "'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(\u2026)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '\u2705' : '\u274C',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n", "'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n", "'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Pool = require('./pool')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n const { clientFactory = defaultFactory } = opts\n\n if (typeof clientFactory !== 'function') {\n throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = opts.headers || {}\n\n if (opts.auth && opts.token) {\n throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token')\n } else if (opts.auth) {\n /* @deprecated in favour of opts.token */\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n } else if (opts.token) {\n this[kProxyHeaders]['proxy-authorization'] = opts.token\n }\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host } = resolvedUrl\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = clientFactory(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError('Proxy response !== 200 when HTTP Tunneling'))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record<string, string>} headers\n * @returns {Record<string, string>}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record<string, string>} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record<string, string>} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n", "'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n", "'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst { webidl } = require('./webidl')\nconst assert = require('assert')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n\n // Trimming the end with `.replace()` and a RegExp is typically subject to\n // ReDoS. This is safer and faster.\n let i = potentialValue.length\n while (/[\\r\\n\\t ]/.test(potentialValue.charAt(--i)));\n return potentialValue.slice(0, i + 1).replace(/^[\\r\\n\\t ]+/, '')\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (const header of object) {\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n throw webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header\u2019s first item, header\u2019s second item) to headers.\n headers.append(header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key \u2192 value in object,\n // append (key, value) to headers\n for (const [key, value] of Object.entries(object)) {\n headers.append(key, value)\n }\n } else {\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n }\n}\n\nclass HeadersList {\n /** @type {[string, string][]|null} */\n cookies = null\n\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n this.cookies = init.cookies\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n this.cookies = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header\u2019s name.\n const lowercaseName = name.toLowerCase()\n const exists = this[kHeadersMap].get(lowercaseName)\n\n // 2. Append (name, value) to list.\n if (exists) {\n const delimiter = lowercaseName === 'cookie' ? '; ' : ', '\n this[kHeadersMap].set(lowercaseName, {\n name: exists.name,\n value: `${exists.value}${delimiter}${value}`\n })\n } else {\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n if (lowercaseName === 'set-cookie') {\n this.cookies ??= []\n this.cookies.push(value)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n const lowercaseName = name.toLowerCase()\n\n if (lowercaseName === 'set-cookie') {\n this.cookies = [value]\n }\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n return this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n\n if (name === 'set-cookie') {\n this.cookies = null\n }\n\n return this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n // 1. If list does not contain name, then return null.\n if (!this.contains(name)) {\n return null\n }\n\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return this[kHeadersMap].get(name.toLowerCase())?.value ?? null\n }\n\n * [Symbol.iterator] () {\n // use the lowercased name\n for (const [name, { value }] of this[kHeadersMap]) {\n yield [name, value]\n }\n }\n\n get entries () {\n const headers = {}\n\n if (this[kHeadersMap].size) {\n for (const { name, value } of this[kHeadersMap].values()) {\n headers[name] = value\n }\n }\n\n return headers\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this\u2019s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers\u2019s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers\u2019s header list.\n // 8. If headers\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n return this[kHeadersList].append(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this\u2019s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this\u2019s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this\u2019s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n return this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this\u2019s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this\u2019s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this\u2019s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n return this[kHeadersList].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n getSetCookie () {\n webidl.brandCheck(this, Headers)\n\n // 1. If this\u2019s header list does not contain `Set-Cookie`, then return \u00AB \u00BB.\n // 2. Return the values of all headers in this\u2019s header list whose name is\n // a byte-case-insensitive match for `Set-Cookie`, in order.\n\n const list = this[kHeadersList].cookies\n\n if (list) {\n return [...list]\n }\n\n return []\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n get [kHeadersSortedMap] () {\n if (this[kHeadersList][kHeadersSortedMap]) {\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n // 1. Let headers be an empty list of headers with the key being the name\n // and value the value.\n const headers = []\n\n // 2. Let names be the result of convert header names to a sorted-lowercase\n // set with all the names of the headers in list.\n const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)\n const cookies = this[kHeadersList].cookies\n\n // 3. For each name of names:\n for (const [name, value] of names) {\n // 1. If name is `set-cookie`, then:\n if (name === 'set-cookie') {\n // 1. Let values be a list of all values of headers in list whose name\n // is a byte-case-insensitive match for name, in order.\n\n // 2. For each value of values:\n // 1. Append (name, value) to headers.\n for (const value of cookies) {\n headers.push([name, value])\n }\n } else {\n // 2. Otherwise:\n\n // 1. Let value be the result of getting name from list.\n\n // 2. Assert: value is non-null.\n assert(value !== null)\n\n // 3. Append (name, value) to headers.\n headers.push([name, value])\n }\n }\n\n this[kHeadersList][kHeadersSortedMap] = headers\n\n // 4. Return headers.\n return headers\n }\n\n keys () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'value'\n )\n }\n\n entries () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key+value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n webidl.brandCheck(this, Headers)\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n getSetCookie: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty,\n [Symbol.iterator]: { enumerable: false },\n [Symbol.toStringTag]: {\n value: 'Headers',\n configurable: true\n }\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence<sequence<ByteString>>'](V)\n }\n\n return webidl.converters['record<ByteString, ByteString>'](V)\n }\n\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n", "'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike,\n isomorphicEncode\n} = require('./util')\nconst {\n redirectStatus,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this\u2019s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data = undefined, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' })\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = new TextEncoder('utf-8').encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this\u2019s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' })\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object\u2019s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatus.includes(status)) {\n throw new RangeError('Invalid status code ' + status)\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this\u2019s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject\u2019s response\u2019s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n const value = isomorphicEncode(URLSerializer(parsedURL))\n\n // 7. Append `Location`/value to responseObject\u2019s response\u2019s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this\u2019s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is this\u2019s response\u2019s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers()\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n // Returns response\u2019s type, e.g., \"cors\".\n get type () {\n webidl.brandCheck(this, Response)\n\n // The type getter steps are to return this\u2019s response\u2019s type.\n return this[kState].type\n }\n\n // Returns response\u2019s URL, if it has one; otherwise the empty string.\n get url () {\n webidl.brandCheck(this, Response)\n\n const urlList = this[kState].urlList\n\n // The url getter steps are to return the empty string if this\u2019s\n // response\u2019s URL is null; otherwise this\u2019s response\u2019s URL,\n // serialized with exclude fragment set to true.\n const url = urlList[urlList.length - 1] ?? null\n\n if (url === null) {\n return ''\n }\n\n return URLSerializer(url, true)\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n webidl.brandCheck(this, Response)\n\n // The redirected getter steps are to return true if this\u2019s response\u2019s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response\u2019s status.\n get status () {\n webidl.brandCheck(this, Response)\n\n // The status getter steps are to return this\u2019s response\u2019s status.\n return this[kState].status\n }\n\n // Returns whether response\u2019s status is an ok status.\n get ok () {\n webidl.brandCheck(this, Response)\n\n // The ok getter steps are to return true if this\u2019s response\u2019s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response\u2019s status message.\n get statusText () {\n webidl.brandCheck(this, Response)\n\n // The statusText getter steps are to return this\u2019s response\u2019s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response\u2019s headers as Headers.\n get headers () {\n webidl.brandCheck(this, Response)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n get body () {\n webidl.brandCheck(this, Response)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Response)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n // Returns a clone of response.\n clone () {\n webidl.brandCheck(this, Response)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n throw webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this\u2019s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Response',\n configurable: true\n }\n})\n\nObject.defineProperties(Response, {\n json: kEnumerableProperty,\n redirect: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response\u2019s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response\u2019s body is non-null, then set newResponse\u2019s body to the\n // result of cloning response\u2019s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response\u2019s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response\u2019s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response\u2019s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(new DOMException('The operation was aborted.', 'AbortError'))\n : makeNetworkError('Request was cancelled.')\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response\u2019s response\u2019s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response\u2019s response\u2019s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response\u2019s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kHeaders], init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n throw webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code ' + response.status\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n types.isAnyArrayBuffer(V) ||\n types.isTypedArray(V) ||\n types.isDataView(V)\n ) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response,\n cloneResponse\n}\n", "/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod,\n makePolicyContainer\n} = require('./util')\nconst {\n forbiddenMethods,\n corsSafeListedMethods,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n requestDuplex\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require('events')\n\nlet TransformStream = globalThis.TransformStream\n\nconst kInit = Symbol('init')\nconst kAbortController = Symbol('abortController')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kInit) {\n return\n }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' })\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin(),\n get origin () {\n return this.baseUrl?.origin\n },\n policyContainer: makePolicyContainer()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this\u2019s relevant settings object\u2019s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input\u2019s request.\n request = input[kState]\n\n // 9. Set signal to input\u2019s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this\u2019s relevant settings object\u2019s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request\u2019s window is an environment settings object and its origin\n // is same origin with origin, then set window to request\u2019s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if ('window' in init) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request\u2019s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request\u2019s method.\n method: request.method,\n // header list A copy of request\u2019s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This\u2019s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request\u2019s priority.\n priority: request.priority,\n // origin request\u2019s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request\u2019s referrer.\n referrer: request.referrer,\n // referrer policy request\u2019s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request\u2019s mode.\n mode: request.mode,\n // credentials mode request\u2019s credentials mode.\n credentials: request.credentials,\n // cache mode request\u2019s cache mode.\n cache: request.cache,\n // redirect mode request\u2019s redirect mode.\n redirect: request.redirect,\n // integrity metadata request\u2019s integrity metadata.\n integrity: request.integrity,\n // keepalive request\u2019s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request\u2019s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request\u2019s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request\u2019s URL list.\n urlList: [...request.urlList]\n })\n\n // 13. If init is not empty, then:\n if (Object.keys(init).length > 0) {\n // 1. If request\u2019s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request\u2019s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request\u2019s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request\u2019s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request\u2019s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request\u2019s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request\u2019s URL to request\u2019s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request\u2019s URL list to \u00AB request\u2019s URL \u00BB.\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request\u2019s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // - parsedReferrer\u2019s scheme is \"about\" and path is the string \"client\"\n // - parsedReferrer\u2019s origin is not same origin with origin\n // then set request\u2019s referrer to \"client\".\n if (\n (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') ||\n (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl))\n ) {\n request.referrer = 'client'\n } else {\n // 4. Otherwise, set request\u2019s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request\u2019s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n throw webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request\u2019s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request\u2019s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n }\n\n // 18. If init[\"cache\"] exists, then set request\u2019s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n }\n\n // 21. If request\u2019s cache mode is \"only-if-cached\" and request\u2019s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request\u2019s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n }\n\n // 23. If init[\"integrity\"] exists, then set request\u2019s integrity metadata to it.\n if (init.integrity !== undefined && init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request\u2019s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(init.method)) {\n throw TypeError(`'${init.method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethods.indexOf(method.toUpperCase()) !== -1) {\n throw TypeError(`'${init.method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethod(init.method)\n\n // 4. Set request\u2019s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this\u2019s request to request.\n this[kState] = request\n\n // 28. Set this\u2019s signal to a new AbortSignal object with this\u2019s relevant\n // Realm.\n // TODO: could this be simplified with AbortSignal.any\n // (https://dom.spec.whatwg.org/#dom-abortsignal-any)\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this\u2019s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n // Keep a strong ref to ac while request object\n // is alive. This is needed to prevent AbortController\n // from being prematurely garbage collected.\n // See, https://github.com/nodejs/undici/issues/1926.\n this[kAbortController] = ac\n\n const acRef = new WeakRef(ac)\n const abort = function () {\n const ac = acRef.deref()\n if (ac !== undefined) {\n ac.abort(this.reason)\n }\n }\n\n // Third-party AbortControllers may not work with these.\n // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n try {\n // If the max amount of listeners is equal to the default, increase it\n // This is only available in node >= v19.9.0\n if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n setMaxListeners(100, signal)\n } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) {\n setMaxListeners(100, signal)\n }\n } catch {}\n\n util.addAbortListener(signal, abort)\n requestFinalizer.register(ac, { signal, abort })\n }\n }\n\n // 30. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is request\u2019s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers()\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this\u2019s request\u2019s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this\u2019s request\u2019s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethods.includes(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this\u2019s headers\u2019s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (Object.keys(init).length !== 0) {\n // 1. Let headers be a copy of this\u2019s headers and its associated header\n // list.\n let headers = new Headers(this[kHeaders])\n\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n if (init.headers !== undefined) {\n headers = init.headers\n }\n\n // 3. Empty this\u2019s headers\u2019s header list.\n this[kHeaders][kHeadersList].clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header\u2019s name/header\u2019s value to this\u2019s headers.\n if (headers.constructor.name === 'Headers') {\n for (const [key, val] of headers) {\n this[kHeaders].append(key, val)\n }\n } else {\n // 5. Otherwise, fill this\u2019s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input\u2019s request\u2019s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request\u2019s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n (init.body != null || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request\u2019s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this\u2019s headers\u2019s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this\u2019s headers.\n if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody\u2019s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If initBody is non-null and init[\"duplex\"] does not exist,\n // then throw a TypeError.\n if (initBody != null && init.duplex == null) {\n throw new TypeError('RequestInit: duplex option is required when sending a body.')\n }\n\n // 2. If this\u2019s request\u2019s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 3. Set this\u2019s request\u2019s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this\u2019s request\u2019s body to finalBody.\n this[kState].body = finalBody\n }\n\n // Returns request\u2019s HTTP method, which is \"GET\" by default.\n get method () {\n webidl.brandCheck(this, Request)\n\n // The method getter steps are to return this\u2019s request\u2019s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n webidl.brandCheck(this, Request)\n\n // The url getter steps are to return this\u2019s request\u2019s URL, serialized.\n return URLSerializer(this[kState].url)\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n webidl.brandCheck(this, Request)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n webidl.brandCheck(this, Request)\n\n // The destination getter are to return this\u2019s request\u2019s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global\u2019s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n webidl.brandCheck(this, Request)\n\n // 1. If this\u2019s request\u2019s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this\u2019s request\u2019s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this\u2019s request\u2019s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request\u2019s\n // referrer.\n get referrerPolicy () {\n webidl.brandCheck(this, Request)\n\n // The referrerPolicy getter steps are to return this\u2019s request\u2019s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n webidl.brandCheck(this, Request)\n\n // The mode getter steps are to return this\u2019s request\u2019s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this\u2019s request\u2019s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser\u2019s cache when fetching.\n get cache () {\n webidl.brandCheck(this, Request)\n\n // The cache getter steps are to return this\u2019s request\u2019s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n webidl.brandCheck(this, Request)\n\n // The redirect getter steps are to return this\u2019s request\u2019s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request\u2019s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n webidl.brandCheck(this, Request)\n\n // The integrity getter steps are to return this\u2019s request\u2019s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n webidl.brandCheck(this, Request)\n\n // The keepalive getter steps are to return this\u2019s request\u2019s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isReloadNavigation getter steps are to return true if this\u2019s\n // request\u2019s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isHistoryNavigation getter steps are to return true if this\u2019s request\u2019s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n webidl.brandCheck(this, Request)\n\n // The signal getter steps are to return this\u2019s signal.\n return this[kSignal]\n }\n\n get body () {\n webidl.brandCheck(this, Request)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Request)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n get duplex () {\n webidl.brandCheck(this, Request)\n\n return 'half'\n }\n\n // Returns a clone of request.\n clone () {\n webidl.brandCheck(this, Request)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this\u2019s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedRequestObject = new Request(kInit)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers()\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject\u2019s signal follow this\u2019s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n util.addAbortListener(\n this.signal,\n () => {\n ac.abort(this.signal.reason)\n }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request\u2019s body is non-null, set newRequest\u2019s body to the\n // result of cloning request\u2019s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty,\n duplex: kEnumerableProperty,\n destination: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n isHistoryNavigation: kEnumerableProperty,\n isReloadNavigation: kEnumerableProperty,\n keepalive: kEnumerableProperty,\n integrity: kEnumerableProperty,\n cache: kEnumerableProperty,\n credentials: kEnumerableProperty,\n attribute: kEnumerableProperty,\n referrerPolicy: kEnumerableProperty,\n referrer: kEnumerableProperty,\n mode: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Request',\n configurable: true\n }\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: referrerPolicy\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: requestMode\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: requestCredentials\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: requestCache\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: requestRedirect\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n },\n {\n key: 'duplex',\n converter: webidl.converters.DOMString,\n allowedValues: requestDuplex\n }\n])\n\nmodule.exports = { Request, makeRequest }\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody,\n readableStreamClose,\n isomorphicEncode,\n urlIsLocal,\n urlIsHttpHttpsScheme,\n urlHasHttpsScheme\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody } = require('./body')\nconst {\n redirectStatus,\n nullBodyStatus,\n safeMethods,\n requestBodyHeader,\n subresource,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\nconst { getGlobalDispatcher } = require('../global')\nconst { webidl } = require('./webidl')\nconst { STATUS_CODES } = require('http')\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream = globalThis.ReadableStream\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n // 2 terminated listeners get added per request,\n // but only 1 gets removed. If there are 20 redirects,\n // 21 listeners will be added.\n // See https://github.com/nodejs/undici/issues/1711\n // TODO (fix): Find and fix root cause for leaked listener.\n this.setMaxListeners(21)\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n // https://fetch.spec.whatwg.org/#fetch-controller-abort\n abort (error) {\n if (this.state !== 'ongoing') {\n return\n }\n\n // 1. Set controller\u2019s state to \"aborted\".\n this.state = 'aborted'\n\n // 2. Let fallbackError be an \"AbortError\" DOMException.\n // 3. Set error to fallbackError if it is not given.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 4. Let serializedError be StructuredSerialize(error).\n // If that threw an exception, catch it, and let\n // serializedError be StructuredSerialize(fallbackError).\n\n // 5. Set controller\u2019s serialized abort reason to serializedError.\n this.serializedAbortReason = error\n\n this.connection?.destroy(error)\n this.emit('terminated', error)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nasync function fetch (input, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' })\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject\u2019s request.\n const request = requestObject[kState]\n\n // 4. If requestObject\u2019s signal\u2019s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort the fetch() call with p, request, null, and\n // requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, null, requestObject.signal.reason)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request\u2019s client\u2019s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request\u2019s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this\u2019s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject\u2019s signal:\n addAbortListener(\n requestObject.signal,\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Assert: controller is non-null.\n assert(controller != null)\n\n // 3. Abort controller with requestObject\u2019s signal\u2019s abort reason.\n controller.abort(requestObject.signal.reason)\n\n // 4. Abort the fetch() call with p, request, responseObject,\n // and requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, responseObject, requestObject.signal.reason)\n }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return\n }\n\n // 2. If response\u2019s aborted flag is set, then:\n if (response.aborted) {\n // 1. Let deserializedError be the result of deserialize a serialized\n // abort reason given controller\u2019s serialized abort reason and\n // relevantRealm.\n\n // 2. Abort the fetch() call with p, request, responseObject, and\n // deserializedError.\n\n abortFetch(p, request, responseObject, controller.serializedAbortReason)\n return\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response\u2019s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response\u2019s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response\u2019s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response\u2019s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL\u2019s scheme is not an HTTP(S) scheme, then return.\n if (!urlIsHttpHttpsScheme(originalURL)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response\u2019s timing allow passed flag is not set, then:\n if (!timingInfo.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo\u2019s end time to the coarsened shared current time\n // given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability.\n // TODO: given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability?\n timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) {\n performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject, error) {\n // Note: AbortSignal.reason was added in node v17.2.0\n // which would give us an undefined error to reject with.\n // Remove this once node v16 is no longer supported.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 1. Reject promise with error.\n p.reject(error)\n\n // 2. If request\u2019s body is not null and is readable, then cancel request\u2019s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 3. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 4. Let response be responseObject\u2019s response.\n const response = responseObject[kState]\n\n // 5. If response\u2019s body is not null and is readable, then error response\u2019s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request\u2019s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request\u2019s client\u2019s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request\u2019s client\u2019s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request\u2019s body is a byte sequence, then set request\u2019s body to\n // request\u2019s body as a body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request\u2019s window is \"client\", then set request\u2019s window to request\u2019s\n // client, if request\u2019s client\u2019s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request\u2019s origin is \"client\", then set request\u2019s origin to request\u2019s\n // client\u2019s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request\u2019s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request\u2019s client is non-null, then set request\u2019s policy\n // container to a clone of request\u2019s client\u2019s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request\u2019s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request\u2019s header list does not contain `Accept`, then:\n if (!request.headersList.contains('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request\u2019s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request\u2019s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request\u2019s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request\u2019s header list.\n if (!request.headersList.contains('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request\u2019s priority is null, then use request\u2019s initiator and\n // destination appropriately in setting request\u2019s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresource.includes(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request\u2019s local-URLs-only flag is set and request\u2019s current URL is\n // not local, then set response to a network error.\n if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request\u2019s referrer policy is the empty string, then set request\u2019s\n // referrer policy to request\u2019s policy container\u2019s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request\u2019s referrer is not \"no-referrer\", then set request\u2019s\n // referrer to the result of invoking determine request\u2019s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request\u2019s current URL\u2019s scheme to \"https\" if all of the following\n // conditions are true:\n // - request\u2019s current URL\u2019s scheme is \"http\"\n // - request\u2019s current URL\u2019s host is a domain\n // - Matching request\u2019s current URL\u2019s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request\u2019s current URL\u2019s origin is same origin with request\u2019s origin,\n // and request\u2019s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request\u2019s current URL\u2019s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request\u2019s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request\u2019s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request\u2019s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request\u2019s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request\u2019s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s current URL\u2019s scheme is not an HTTP(S) scheme\n if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request\u2019s use-CORS-preflight flag is set\n // - request\u2019s unsafe-request flag is set and either request\u2019s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request\u2019s header list is not empty\n // 1. Set request\u2019s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request\u2019s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request\u2019s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response\u2019s header list.\n // TODO\n // 2. If request\u2019s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response\u2019s CORS-exposed header-name list to\n // all unique header names in response\u2019s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response\u2019s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response\u2019s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse\u2019s URL list is empty, then set it to a clone of\n // request\u2019s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request\u2019s timing allow failed flag is unset, then set\n // internalResponse\u2019s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response\u2019s type is \"opaque\", internalResponse\u2019s status is 206,\n // internalResponse\u2019s range-requested flag is set, and request\u2019s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.contains('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request\u2019s method is\n // `HEAD` or `CONNECT`, or internalResponse\u2019s status is a null body status,\n // set internalResponse\u2019s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request\u2019s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request\u2019s response tainting is \"opaque\", or response\u2019s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request\u2019s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response\u2019s body to bytes as a body.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response\u2019s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nasync function schemeFetch (fetchParams) {\n // Note: since the connection is destroyed on redirect, which sets fetchParams to a\n // cancelled state, we do not want this condition to trigger *unless* there have been\n // no redirects. See https://github.com/nodejs/undici/issues/1776\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Let request be fetchParams\u2019s request.\n const { request } = fetchParams\n\n const { protocol: scheme } = requestCurrentURL(request)\n\n // 3. Switch on request\u2019s current URL\u2019s scheme and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request\u2019s current URL\u2019s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is \u00AB (`Content-Type`, `text/html;charset=utf-8`) \u00BB,\n // and body is the empty byte sequence as a body.\n\n // Otherwise, return a network error.\n return makeNetworkError('about scheme is not supported')\n }\n case 'blob:': {\n if (!resolveObjectURL) {\n resolveObjectURL = require('buffer').resolveObjectURL\n }\n\n // 1. Let blobURLEntry be request\u2019s current URL\u2019s blob URL entry.\n const blobURLEntry = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (blobURLEntry.search.length !== 0) {\n return makeNetworkError('NetworkError when attempting to fetch resource.')\n }\n\n const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString())\n\n // 2. If request\u2019s method is not `GET`, blobURLEntry is null, or blobURLEntry\u2019s\n // object is not a Blob object, then return a network error.\n if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n return makeNetworkError('invalid method')\n }\n\n // 3. Let bodyWithType be the result of safely extracting blobURLEntry\u2019s object.\n const bodyWithType = safelyExtractBody(blobURLEntryObject)\n\n // 4. Let body be bodyWithType\u2019s body.\n const body = bodyWithType[0]\n\n // 5. Let length be body\u2019s length, serialized and isomorphic encoded.\n const length = isomorphicEncode(`${body.length}`)\n\n // 6. Let type be bodyWithType\u2019s type if it is non-null; otherwise the empty byte sequence.\n const type = bodyWithType[1] ?? ''\n\n // 7. Return a new response whose status message is `OK`, header list is\n // \u00AB (`Content-Length`, length), (`Content-Type`, type) \u00BB, and body is body.\n const response = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-length', { name: 'Content-Length', value: length }],\n ['content-type', { name: 'Content-Type', value: type }]\n ]\n })\n\n response.body = body\n\n return response\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request\u2019s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return makeNetworkError('failed to fetch the data URL')\n }\n\n // 3. Let mimeType be dataURLStruct\u2019s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is \u00AB (`Content-Type`, mimeType) \u00BB,\n // and body is dataURLStruct\u2019s body as a body.\n return makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', { name: 'Content-Type', value: mimeType }]\n ],\n body: safelyExtractBody(dataURLStruct.body)[0]\n })\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return makeNetworkError('not implemented... yet...')\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return await httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return makeNetworkError('unknown scheme')\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams\u2019s process response done is not null, then queue a fetch\n // task to run fetchParams\u2019s process response done given response, with\n // fetchParams\u2019s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nasync function fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response\u2019s URL list to \u00AB fetchParams\u2019s request\u2019s URL list[0] \u00BB.\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response\u2019s timing info to the result of creating an opaque timing\n // info for fetchParams\u2019s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // If fetchParams\u2019s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams\u2019s process response\n // end-of-body given response with fetchParams\u2019s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams\u2019s process response is non-null, then queue a fetch task\n // to run fetchParams\u2019s process response given response, with fetchParams\u2019s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response\u2019s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n }, {\n size () {\n return 1\n }\n }, {\n size () {\n return 1\n }\n })\n\n // 4. Set response\u2019s body to the result of piping response\u2019s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams\u2019s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams\u2019s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams\u2019s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response\u2019s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams\u2019s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response\u2019s body given processBody, processBodyError,\n // and fetchParams\u2019s task destination.\n await fullyReadBody(response.body, processBody, processBodyError)\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request\u2019s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request\u2019s redirect mode is \"follow\", then set request\u2019s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request\u2019s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request\u2019s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request\u2019s response tainting or response\u2019s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request\u2019s origin, request\u2019s client, request\u2019s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse\u2019s status is a redirect status, then:\n if (redirectStatus.includes(actualResponse.status)) {\n // 1. If actualResponse\u2019s status is not 303, request\u2019s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request\u2019s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nasync function httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response\u2019s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse\u2019s location URL given request\u2019s current\n // URL\u2019s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return makeNetworkError(err)\n }\n\n // 6. If locationURL\u2019s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!urlIsHttpHttpsScheme(locationURL)) {\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // 7. If request\u2019s redirect count is 20, then return a network error.\n if (request.redirectCount === 20) {\n return makeNetworkError('redirect count exceeded')\n }\n\n // 8. Increase request\u2019s redirect count by 1.\n request.redirectCount += 1\n\n // 9. If request\u2019s mode is \"cors\", locationURL includes credentials, and\n // request\u2019s origin is not same origin with locationURL\u2019s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return makeNetworkError('cross origin not allowed for request mode \"cors\"')\n }\n\n // 10. If request\u2019s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n )\n }\n\n // 11. If actualResponse\u2019s status is not 303, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return makeNetworkError()\n }\n\n // 12. If one of the following is true\n // - actualResponse\u2019s status is 301 or 302 and request\u2019s method is `POST`\n // - actualResponse\u2019s status is 303 and request\u2019s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !['GET', 'HEAD'].includes(request.method))\n ) {\n // then:\n // 1. Set request\u2019s method to `GET` and request\u2019s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request\u2019s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request\u2019s current URL\u2019s origin is not same origin with locationURL\u2019s\n // origin, then for each headerName of CORS non-wildcard request-header name,\n // delete headerName from request\u2019s header list.\n if (!sameOrigin(requestCurrentURL(request), locationURL)) {\n // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n request.headersList.delete('authorization')\n }\n\n // 14. If request\u2019s body is non-null, then set request\u2019s body to the first return\n // value of safely extracting request\u2019s body\u2019s source.\n if (request.body != null) {\n assert(request.body.source != null)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 15. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 16. Set timingInfo\u2019s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 17. If timingInfo\u2019s redirect start time is 0, then set timingInfo\u2019s\n // redirect start time to timingInfo\u2019s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 18. Append locationURL to request\u2019s URL list.\n request.urlList.push(locationURL)\n\n // 19. Invoke set request\u2019s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 20. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request\u2019s window is \"no-window\" and request\u2019s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams\u2019s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest\u2019s body\u2019s length, if httpRequest\u2019s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest\u2019s body is null and httpRequest\u2019s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest\u2019s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest\u2019s header list.\n\n // 10. If contentLength is non-null and httpRequest\u2019s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest\u2019s referrer is a URL, then append\n // `Referer`/httpRequest\u2019s referrer, serialized and isomorphic encoded,\n // to httpRequest\u2019s header list.\n if (httpRequest.referrer instanceof URL) {\n httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href))\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest\u2019s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('user-agent')) {\n httpRequest.headersList.append('user-agent', 'undici')\n }\n\n // 15. If httpRequest\u2019s cache mode is \"default\" and httpRequest\u2019s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest\u2019s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.contains('if-modified-since') ||\n httpRequest.headersList.contains('if-none-match') ||\n httpRequest.headersList.contains('if-unmodified-since') ||\n httpRequest.headersList.contains('if-match') ||\n httpRequest.headersList.contains('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest\u2019s cache mode is \"no-cache\", httpRequest\u2019s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest\u2019s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest\u2019s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.contains('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest\u2019s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest\u2019s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest\u2019s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest\u2019s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest\u2019s header list.\n if (httpRequest.headersList.contains('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest\u2019s header list per HTTP. Do not append a given\n // header if httpRequest\u2019s header list contains that header\u2019s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.contains('accept-encoding')) {\n if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest\u2019s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there\u2019s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest\u2019s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest\u2019s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest\u2019s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest\u2019s method is unsafe and forwardResponse\u2019s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethods.includes(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse\u2019s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response\u2019s URL list to a clone of httpRequest\u2019s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest\u2019s header list contains `Range`, then set response\u2019s\n // range-requested flag.\n if (httpRequest.headersList.contains('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response\u2019s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response\u2019s status is 401, httpRequest\u2019s response tainting is not\n // \"cors\", includeCredentials is true, and request\u2019s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response\u2019s status is 407, then:\n if (response.status === 407) {\n // 1. If request\u2019s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request\u2019s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response\u2019s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request\u2019s body is null, or request\u2019s body is non-null and request\u2019s body\u2019s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request\u2019s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request\u2019s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request\u2019s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request\u2019s current URL\u2019s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo\u2019s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection\u2019s\n // timing info, timingInfo\u2019s post-redirect start time, and fetchParams\u2019s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request\u2019s header list.\n\n // 4. Set timingInfo\u2019s final network-request start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request\u2019s body is non-null, and request\u2019s body\u2019s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request\u2019s body in that buffer. If the user agent reads from\n // request\u2019s body beyond that buffer\u2019s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo\u2019s final network-response start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated capability,\n // immediately after the user agent\u2019s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo\u2019s final network-response start time above.\n\n // - If request\u2019s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request\u2019s window is an environment settings object, make the\n // dialog available in request\u2019s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request\u2019s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams\u2019s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams\u2019s process request\n // end-of-body and fetchParams\u2019s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams\u2019s process request body is non-null, then run\n // fetchParams\u2019s process request body given bytes\u2019s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams\u2019s process request end-of-body is non-null,\n // then run fetchParams\u2019s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams\u2019s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request\u2019s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams\u2019s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n // socket is only provided for websockets\n const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody })\n\n if (socket) {\n response = makeResponse({ status, statusText, headersList, socket })\n } else {\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n }\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams\u2019s\n // controller with reason, given reason.\n const cancelAlgorithm = (reason) => {\n fetchParams.controller.abort(reason)\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n {\n highWaterMark: 0,\n size () {\n return 1\n }\n }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response\u2019s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request\u2019s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response\u2019s header list, if any, and request\u2019s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n let isFailure\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n\n // err may be propagated from the result of calling readablestream.cancel,\n // which might not be an error. https://github.com/nodejs/undici/issues/2009\n isFailure = true\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response\u2019s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n readableStreamClose(fetchParams.controller.controller)\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo\u2019s decoded body size by bytes\u2019s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams\u2019s controller.\n if (isFailure) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn\u2019t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response\u2019s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, then error stream with the result of\n // deserialize a serialized abort reason given fetchParams\u2019s\n // controller\u2019s serialized abort reason and an\n // implementation-defined realm.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n fetchParams.controller.serializedAbortReason\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n /** @type {import('../..').Agent} */\n const agent = fetchParams.controller.dispatcher\n\n return new Promise((resolve, reject) => agent.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && request.body.source : body,\n headers: request.headersList.entries,\n maxRedirections: 0,\n upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse()\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers.append(key, val)\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatus.includes(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n if (coding === 'x-gzip' || coding === 'gzip') {\n decoders.push(zlib.createGunzip({\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n }))\n } else if (coding === 'deflate') {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response\u2019s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response\u2019s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo\u2019s encoded body size by bytes\u2019s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n },\n\n onUpgrade (status, headersList, socket) {\n if (status !== 101) {\n return\n }\n\n const headers = new Headers()\n\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n headers.append(key, val)\n }\n\n resolve({\n status,\n statusText: STATUS_CODES[status],\n headersList: headers[kHeadersList],\n socket\n })\n\n return true\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n", "'use strict'\n\nmodule.exports = {\n kState: Symbol('FileReader state'),\n kResult: Symbol('FileReader result'),\n kError: Symbol('FileReader error'),\n kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'),\n kEvents: Symbol('FileReader events'),\n kAborted: Symbol('FileReader aborted')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\n\nconst kState = Symbol('ProgressEvent state')\n\n/**\n * @see https://xhr.spec.whatwg.org/#progressevent\n */\nclass ProgressEvent extends Event {\n constructor (type, eventInitDict = {}) {\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {})\n\n super(type, eventInitDict)\n\n this[kState] = {\n lengthComputable: eventInitDict.lengthComputable,\n loaded: eventInitDict.loaded,\n total: eventInitDict.total\n }\n }\n\n get lengthComputable () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].lengthComputable\n }\n\n get loaded () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].loaded\n }\n\n get total () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].total\n }\n}\n\nwebidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n {\n key: 'lengthComputable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'loaded',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'total',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n])\n\nmodule.exports = {\n ProgressEvent\n}\n", "'use strict'\n\n/**\n * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n * @param {string|undefined} label\n */\nfunction getEncoding (label) {\n if (!label) {\n return 'failure'\n }\n\n // 1. Remove any leading and trailing ASCII whitespace from label.\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, then return the\n // corresponding encoding; otherwise return failure.\n switch (label.trim().toLowerCase()) {\n case 'unicode-1-1-utf-8':\n case 'unicode11utf8':\n case 'unicode20utf8':\n case 'utf-8':\n case 'utf8':\n case 'x-unicode20utf8':\n return 'UTF-8'\n case '866':\n case 'cp866':\n case 'csibm866':\n case 'ibm866':\n return 'IBM866'\n case 'csisolatin2':\n case 'iso-8859-2':\n case 'iso-ir-101':\n case 'iso8859-2':\n case 'iso88592':\n case 'iso_8859-2':\n case 'iso_8859-2:1987':\n case 'l2':\n case 'latin2':\n return 'ISO-8859-2'\n case 'csisolatin3':\n case 'iso-8859-3':\n case 'iso-ir-109':\n case 'iso8859-3':\n case 'iso88593':\n case 'iso_8859-3':\n case 'iso_8859-3:1988':\n case 'l3':\n case 'latin3':\n return 'ISO-8859-3'\n case 'csisolatin4':\n case 'iso-8859-4':\n case 'iso-ir-110':\n case 'iso8859-4':\n case 'iso88594':\n case 'iso_8859-4':\n case 'iso_8859-4:1988':\n case 'l4':\n case 'latin4':\n return 'ISO-8859-4'\n case 'csisolatincyrillic':\n case 'cyrillic':\n case 'iso-8859-5':\n case 'iso-ir-144':\n case 'iso8859-5':\n case 'iso88595':\n case 'iso_8859-5':\n case 'iso_8859-5:1988':\n return 'ISO-8859-5'\n case 'arabic':\n case 'asmo-708':\n case 'csiso88596e':\n case 'csiso88596i':\n case 'csisolatinarabic':\n case 'ecma-114':\n case 'iso-8859-6':\n case 'iso-8859-6-e':\n case 'iso-8859-6-i':\n case 'iso-ir-127':\n case 'iso8859-6':\n case 'iso88596':\n case 'iso_8859-6':\n case 'iso_8859-6:1987':\n return 'ISO-8859-6'\n case 'csisolatingreek':\n case 'ecma-118':\n case 'elot_928':\n case 'greek':\n case 'greek8':\n case 'iso-8859-7':\n case 'iso-ir-126':\n case 'iso8859-7':\n case 'iso88597':\n case 'iso_8859-7':\n case 'iso_8859-7:1987':\n case 'sun_eu_greek':\n return 'ISO-8859-7'\n case 'csiso88598e':\n case 'csisolatinhebrew':\n case 'hebrew':\n case 'iso-8859-8':\n case 'iso-8859-8-e':\n case 'iso-ir-138':\n case 'iso8859-8':\n case 'iso88598':\n case 'iso_8859-8':\n case 'iso_8859-8:1988':\n case 'visual':\n return 'ISO-8859-8'\n case 'csiso88598i':\n case 'iso-8859-8-i':\n case 'logical':\n return 'ISO-8859-8-I'\n case 'csisolatin6':\n case 'iso-8859-10':\n case 'iso-ir-157':\n case 'iso8859-10':\n case 'iso885910':\n case 'l6':\n case 'latin6':\n return 'ISO-8859-10'\n case 'iso-8859-13':\n case 'iso8859-13':\n case 'iso885913':\n return 'ISO-8859-13'\n case 'iso-8859-14':\n case 'iso8859-14':\n case 'iso885914':\n return 'ISO-8859-14'\n case 'csisolatin9':\n case 'iso-8859-15':\n case 'iso8859-15':\n case 'iso885915':\n case 'iso_8859-15':\n case 'l9':\n return 'ISO-8859-15'\n case 'iso-8859-16':\n return 'ISO-8859-16'\n case 'cskoi8r':\n case 'koi':\n case 'koi8':\n case 'koi8-r':\n case 'koi8_r':\n return 'KOI8-R'\n case 'koi8-ru':\n case 'koi8-u':\n return 'KOI8-U'\n case 'csmacintosh':\n case 'mac':\n case 'macintosh':\n case 'x-mac-roman':\n return 'macintosh'\n case 'iso-8859-11':\n case 'iso8859-11':\n case 'iso885911':\n case 'tis-620':\n case 'windows-874':\n return 'windows-874'\n case 'cp1250':\n case 'windows-1250':\n case 'x-cp1250':\n return 'windows-1250'\n case 'cp1251':\n case 'windows-1251':\n case 'x-cp1251':\n return 'windows-1251'\n case 'ansi_x3.4-1968':\n case 'ascii':\n case 'cp1252':\n case 'cp819':\n case 'csisolatin1':\n case 'ibm819':\n case 'iso-8859-1':\n case 'iso-ir-100':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'iso_8859-1:1987':\n case 'l1':\n case 'latin1':\n case 'us-ascii':\n case 'windows-1252':\n case 'x-cp1252':\n return 'windows-1252'\n case 'cp1253':\n case 'windows-1253':\n case 'x-cp1253':\n return 'windows-1253'\n case 'cp1254':\n case 'csisolatin5':\n case 'iso-8859-9':\n case 'iso-ir-148':\n case 'iso8859-9':\n case 'iso88599':\n case 'iso_8859-9':\n case 'iso_8859-9:1989':\n case 'l5':\n case 'latin5':\n case 'windows-1254':\n case 'x-cp1254':\n return 'windows-1254'\n case 'cp1255':\n case 'windows-1255':\n case 'x-cp1255':\n return 'windows-1255'\n case 'cp1256':\n case 'windows-1256':\n case 'x-cp1256':\n return 'windows-1256'\n case 'cp1257':\n case 'windows-1257':\n case 'x-cp1257':\n return 'windows-1257'\n case 'cp1258':\n case 'windows-1258':\n case 'x-cp1258':\n return 'windows-1258'\n case 'x-mac-cyrillic':\n case 'x-mac-ukrainian':\n return 'x-mac-cyrillic'\n case 'chinese':\n case 'csgb2312':\n case 'csiso58gb231280':\n case 'gb2312':\n case 'gb_2312':\n case 'gb_2312-80':\n case 'gbk':\n case 'iso-ir-58':\n case 'x-gbk':\n return 'GBK'\n case 'gb18030':\n return 'gb18030'\n case 'big5':\n case 'big5-hkscs':\n case 'cn-big5':\n case 'csbig5':\n case 'x-x-big5':\n return 'Big5'\n case 'cseucpkdfmtjapanese':\n case 'euc-jp':\n case 'x-euc-jp':\n return 'EUC-JP'\n case 'csiso2022jp':\n case 'iso-2022-jp':\n return 'ISO-2022-JP'\n case 'csshiftjis':\n case 'ms932':\n case 'ms_kanji':\n case 'shift-jis':\n case 'shift_jis':\n case 'sjis':\n case 'windows-31j':\n case 'x-sjis':\n return 'Shift_JIS'\n case 'cseuckr':\n case 'csksc56011987':\n case 'euc-kr':\n case 'iso-ir-149':\n case 'korean':\n case 'ks_c_5601-1987':\n case 'ks_c_5601-1989':\n case 'ksc5601':\n case 'ksc_5601':\n case 'windows-949':\n return 'EUC-KR'\n case 'csiso2022kr':\n case 'hz-gb-2312':\n case 'iso-2022-cn':\n case 'iso-2022-cn-ext':\n case 'iso-2022-kr':\n case 'replacement':\n return 'replacement'\n case 'unicodefffe':\n case 'utf-16be':\n return 'UTF-16BE'\n case 'csunicode':\n case 'iso-10646-ucs-2':\n case 'ucs-2':\n case 'unicode':\n case 'unicodefeff':\n case 'utf-16':\n case 'utf-16le':\n return 'UTF-16LE'\n case 'x-user-defined':\n return 'x-user-defined'\n default: return 'failure'\n }\n}\n\nmodule.exports = {\n getEncoding\n}\n", "'use strict'\n\nconst {\n kState,\n kError,\n kResult,\n kAborted,\n kLastProgressEventFired\n} = require('./symbols')\nconst { ProgressEvent } = require('./progressevent')\nconst { getEncoding } = require('./encoding')\nconst { DOMException } = require('../fetch/constants')\nconst { serializeAMimeType, parseMIMEType } = require('../fetch/dataURL')\nconst { types } = require('util')\nconst { StringDecoder } = require('string_decoder')\nconst { btoa } = require('buffer')\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#readOperation\n * @param {import('./filereader').FileReader} fr\n * @param {import('buffer').Blob} blob\n * @param {string} type\n * @param {string?} encodingName\n */\nfunction readOperation (fr, blob, type, encodingName) {\n // 1. If fr\u2019s state is \"loading\", throw an InvalidStateError\n // DOMException.\n if (fr[kState] === 'loading') {\n throw new DOMException('Invalid state', 'InvalidStateError')\n }\n\n // 2. Set fr\u2019s state to \"loading\".\n fr[kState] = 'loading'\n\n // 3. Set fr\u2019s result to null.\n fr[kResult] = null\n\n // 4. Set fr\u2019s error to null.\n fr[kError] = null\n\n // 5. Let stream be the result of calling get stream on blob.\n /** @type {import('stream/web').ReadableStream} */\n const stream = blob.stream()\n\n // 6. Let reader be the result of getting a reader from stream.\n const reader = stream.getReader()\n\n // 7. Let bytes be an empty byte sequence.\n /** @type {Uint8Array[]} */\n const bytes = []\n\n // 8. Let chunkPromise be the result of reading a chunk from\n // stream with reader.\n let chunkPromise = reader.read()\n\n // 9. Let isFirstChunk be true.\n let isFirstChunk = true\n\n // 10. In parallel, while true:\n // Note: \"In parallel\" just means non-blocking\n // Note 2: readOperation itself cannot be async as double\n // reading the body would then reject the promise, instead\n // of throwing an error.\n ;(async () => {\n while (!fr[kAborted]) {\n // 1. Wait for chunkPromise to be fulfilled or rejected.\n try {\n const { done, value } = await chunkPromise\n\n // 2. If chunkPromise is fulfilled, and isFirstChunk is\n // true, queue a task to fire a progress event called\n // loadstart at fr.\n if (isFirstChunk && !fr[kAborted]) {\n queueMicrotask(() => {\n fireAProgressEvent('loadstart', fr)\n })\n }\n\n // 3. Set isFirstChunk to false.\n isFirstChunk = false\n\n // 4. If chunkPromise is fulfilled with an object whose\n // done property is false and whose value property is\n // a Uint8Array object, run these steps:\n if (!done && types.isUint8Array(value)) {\n // 1. Let bs be the byte sequence represented by the\n // Uint8Array object.\n\n // 2. Append bs to bytes.\n bytes.push(value)\n\n // 3. If roughly 50ms have passed since these steps\n // were last invoked, queue a task to fire a\n // progress event called progress at fr.\n if (\n (\n fr[kLastProgressEventFired] === undefined ||\n Date.now() - fr[kLastProgressEventFired] >= 50\n ) &&\n !fr[kAborted]\n ) {\n fr[kLastProgressEventFired] = Date.now()\n queueMicrotask(() => {\n fireAProgressEvent('progress', fr)\n })\n }\n\n // 4. Set chunkPromise to the result of reading a\n // chunk from stream with reader.\n chunkPromise = reader.read()\n } else if (done) {\n // 5. Otherwise, if chunkPromise is fulfilled with an\n // object whose done property is true, queue a task\n // to run the following steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Let result be the result of package data given\n // bytes, type, blob\u2019s type, and encodingName.\n try {\n const result = packageData(bytes, type, blob.type, encodingName)\n\n // 4. Else:\n\n if (fr[kAborted]) {\n return\n }\n\n // 1. Set fr\u2019s result to result.\n fr[kResult] = result\n\n // 2. Fire a progress event called load at the fr.\n fireAProgressEvent('load', fr)\n } catch (error) {\n // 3. If package data threw an exception error:\n\n // 1. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 2. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n }\n\n // 5. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at the fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n } catch (error) {\n if (fr[kAborted]) {\n return\n }\n\n // 6. Otherwise, if chunkPromise is rejected with an\n // error error, queue a task to run the following\n // steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 3. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n\n // 4. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n }\n })()\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e The name of the event\n * @param {import('./filereader').FileReader} reader\n */\nfunction fireAProgressEvent (e, reader) {\n // The progress event e does not bubble. e.bubbles must be false\n // The progress event e is NOT cancelable. e.cancelable must be false\n const event = new ProgressEvent(e, {\n bubbles: false,\n cancelable: false\n })\n\n reader.dispatchEvent(event)\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#blob-package-data\n * @param {Uint8Array[]} bytes\n * @param {string} type\n * @param {string?} mimeType\n * @param {string?} encodingName\n */\nfunction packageData (bytes, type, mimeType, encodingName) {\n // 1. A Blob has an associated package data algorithm, given\n // bytes, a type, a optional mimeType, and a optional\n // encodingName, which switches on type and runs the\n // associated steps:\n\n switch (type) {\n case 'DataURL': {\n // 1. Return bytes as a DataURL [RFC2397] subject to\n // the considerations below:\n // * Use mimeType as part of the Data URL if it is\n // available in keeping with the Data URL\n // specification [RFC2397].\n // * If mimeType is not available return a Data URL\n // without a media-type. [RFC2397].\n\n // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n // dataurl := \"data:\" [ mediatype ] [ \";base64\" ] \",\" data\n // mediatype := [ type \"/\" subtype ] *( \";\" parameter )\n // data := *urlchar\n // parameter := attribute \"=\" value\n let dataURL = 'data:'\n\n const parsed = parseMIMEType(mimeType || 'application/octet-stream')\n\n if (parsed !== 'failure') {\n dataURL += serializeAMimeType(parsed)\n }\n\n dataURL += ';base64,'\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n dataURL += btoa(decoder.write(chunk))\n }\n\n dataURL += btoa(decoder.end())\n\n return dataURL\n }\n case 'Text': {\n // 1. Let encoding be failure\n let encoding = 'failure'\n\n // 2. If the encodingName is present, set encoding to the\n // result of getting an encoding from encodingName.\n if (encodingName) {\n encoding = getEncoding(encodingName)\n }\n\n // 3. If encoding is failure, and mimeType is present:\n if (encoding === 'failure' && mimeType) {\n // 1. Let type be the result of parse a MIME type\n // given mimeType.\n const type = parseMIMEType(mimeType)\n\n // 2. If type is not failure, set encoding to the result\n // of getting an encoding from type\u2019s parameters[\"charset\"].\n if (type !== 'failure') {\n encoding = getEncoding(type.parameters.get('charset'))\n }\n }\n\n // 4. If encoding is failure, then set encoding to UTF-8.\n if (encoding === 'failure') {\n encoding = 'UTF-8'\n }\n\n // 5. Decode bytes using fallback encoding encoding, and\n // return the result.\n return decode(bytes, encoding)\n }\n case 'ArrayBuffer': {\n // Return a new ArrayBuffer whose contents are bytes.\n const sequence = combineByteSequences(bytes)\n\n return sequence.buffer\n }\n case 'BinaryString': {\n // Return bytes as a binary string, in which every byte\n // is represented by a code unit of equal value [0..255].\n let binaryString = ''\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n binaryString += decoder.write(chunk)\n }\n\n binaryString += decoder.end()\n\n return binaryString\n }\n }\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#decode\n * @param {Uint8Array[]} ioQueue\n * @param {string} encoding\n */\nfunction decode (ioQueue, encoding) {\n const bytes = combineByteSequences(ioQueue)\n\n // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n const BOMEncoding = BOMSniffing(bytes)\n\n let slice = 0\n\n // 2. If BOMEncoding is non-null:\n if (BOMEncoding !== null) {\n // 1. Set encoding to BOMEncoding.\n encoding = BOMEncoding\n\n // 2. Read three bytes from ioQueue, if BOMEncoding is\n // UTF-8; otherwise read two bytes.\n // (Do nothing with those bytes.)\n slice = BOMEncoding === 'UTF-8' ? 3 : 2\n }\n\n // 3. Process a queue with an instance of encoding\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n\n // 4. Return output.\n\n const sliced = bytes.slice(slice)\n return new TextDecoder(encoding).decode(sliced)\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#bom-sniff\n * @param {Uint8Array} ioQueue\n */\nfunction BOMSniffing (ioQueue) {\n // 1. Let BOM be the result of peeking 3 bytes from ioQueue,\n // converted to a byte sequence.\n const [a, b, c] = ioQueue\n\n // 2. For each of the rows in the table below, starting with\n // the first one and going down, if BOM starts with the\n // bytes given in the first column, then return the\n // encoding given in the cell in the second column of that\n // row. Otherwise, return null.\n if (a === 0xEF && b === 0xBB && c === 0xBF) {\n return 'UTF-8'\n } else if (a === 0xFE && b === 0xFF) {\n return 'UTF-16BE'\n } else if (a === 0xFF && b === 0xFE) {\n return 'UTF-16LE'\n }\n\n return null\n}\n\n/**\n * @param {Uint8Array[]} sequences\n */\nfunction combineByteSequences (sequences) {\n const size = sequences.reduce((a, b) => {\n return a + b.byteLength\n }, 0)\n\n let offset = 0\n\n return sequences.reduce((a, b) => {\n a.set(b, offset)\n offset += b.byteLength\n return a\n }, new Uint8Array(size))\n}\n\nmodule.exports = {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n}\n", "'use strict'\n\nconst {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n} = require('./util')\nconst {\n kState,\n kError,\n kResult,\n kEvents,\n kAborted\n} = require('./symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass FileReader extends EventTarget {\n constructor () {\n super()\n\n this[kState] = 'empty'\n this[kResult] = null\n this[kError] = null\n this[kEvents] = {\n loadend: null,\n error: null,\n abort: null,\n load: null,\n progress: null,\n loadstart: null\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n * @param {import('buffer').Blob} blob\n */\n readAsArrayBuffer (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsArrayBuffer(blob) method, when invoked,\n // must initiate a read operation for blob with ArrayBuffer.\n readOperation(this, blob, 'ArrayBuffer')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n * @param {import('buffer').Blob} blob\n */\n readAsBinaryString (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsBinaryString(blob) method, when invoked,\n // must initiate a read operation for blob with BinaryString.\n readOperation(this, blob, 'BinaryString')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsDataText\n * @param {import('buffer').Blob} blob\n * @param {string?} encoding\n */\n readAsText (blob, encoding = undefined) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n if (encoding !== undefined) {\n encoding = webidl.converters.DOMString(encoding)\n }\n\n // The readAsText(blob, encoding) method, when invoked,\n // must initiate a read operation for blob with Text and encoding.\n readOperation(this, blob, 'Text', encoding)\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n * @param {import('buffer').Blob} blob\n */\n readAsDataURL (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsDataURL(blob) method, when invoked, must\n // initiate a read operation for blob with DataURL.\n readOperation(this, blob, 'DataURL')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-abort\n */\n abort () {\n // 1. If this's state is \"empty\" or if this's state is\n // \"done\" set this's result to null and terminate\n // this algorithm.\n if (this[kState] === 'empty' || this[kState] === 'done') {\n this[kResult] = null\n return\n }\n\n // 2. If this's state is \"loading\" set this's state to\n // \"done\" and set this's result to null.\n if (this[kState] === 'loading') {\n this[kState] = 'done'\n this[kResult] = null\n }\n\n // 3. If there are any tasks from this on the file reading\n // task source in an affiliated task queue, then remove\n // those tasks from that task queue.\n this[kAborted] = true\n\n // 4. Terminate the algorithm for the read method being processed.\n // TODO\n\n // 5. Fire a progress event called abort at this.\n fireAProgressEvent('abort', this)\n\n // 6. If this's state is not \"loading\", fire a progress\n // event called loadend at this.\n if (this[kState] !== 'loading') {\n fireAProgressEvent('loadend', this)\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n */\n get readyState () {\n webidl.brandCheck(this, FileReader)\n\n switch (this[kState]) {\n case 'empty': return this.EMPTY\n case 'loading': return this.LOADING\n case 'done': return this.DONE\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n */\n get result () {\n webidl.brandCheck(this, FileReader)\n\n // The result attribute\u2019s getter, when invoked, must return\n // this's result.\n return this[kResult]\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n */\n get error () {\n webidl.brandCheck(this, FileReader)\n\n // The error attribute\u2019s getter, when invoked, must return\n // this's error.\n return this[kError]\n }\n\n get onloadend () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadend\n }\n\n set onloadend (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadend) {\n this.removeEventListener('loadend', this[kEvents].loadend)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadend = fn\n this.addEventListener('loadend', fn)\n } else {\n this[kEvents].loadend = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].error) {\n this.removeEventListener('error', this[kEvents].error)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].error = fn\n this.addEventListener('error', fn)\n } else {\n this[kEvents].error = null\n }\n }\n\n get onloadstart () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadstart\n }\n\n set onloadstart (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadstart) {\n this.removeEventListener('loadstart', this[kEvents].loadstart)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadstart = fn\n this.addEventListener('loadstart', fn)\n } else {\n this[kEvents].loadstart = null\n }\n }\n\n get onprogress () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].progress\n }\n\n set onprogress (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].progress) {\n this.removeEventListener('progress', this[kEvents].progress)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].progress = fn\n this.addEventListener('progress', fn)\n } else {\n this[kEvents].progress = null\n }\n }\n\n get onload () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].load\n }\n\n set onload (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].load) {\n this.removeEventListener('load', this[kEvents].load)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].load = fn\n this.addEventListener('load', fn)\n } else {\n this[kEvents].load = null\n }\n }\n\n get onabort () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].abort\n }\n\n set onabort (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].abort) {\n this.removeEventListener('abort', this[kEvents].abort)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].abort = fn\n this.addEventListener('abort', fn)\n } else {\n this[kEvents].abort = null\n }\n }\n}\n\n// https://w3c.github.io/FileAPI/#dom-filereader-empty\nFileReader.EMPTY = FileReader.prototype.EMPTY = 0\n// https://w3c.github.io/FileAPI/#dom-filereader-loading\nFileReader.LOADING = FileReader.prototype.LOADING = 1\n// https://w3c.github.io/FileAPI/#dom-filereader-done\nFileReader.DONE = FileReader.prototype.DONE = 2\n\nObject.defineProperties(FileReader.prototype, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors,\n readAsArrayBuffer: kEnumerableProperty,\n readAsBinaryString: kEnumerableProperty,\n readAsText: kEnumerableProperty,\n readAsDataURL: kEnumerableProperty,\n abort: kEnumerableProperty,\n readyState: kEnumerableProperty,\n result: kEnumerableProperty,\n error: kEnumerableProperty,\n onloadstart: kEnumerableProperty,\n onprogress: kEnumerableProperty,\n onload: kEnumerableProperty,\n onabort: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onloadend: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'FileReader',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(FileReader, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors\n})\n\nmodule.exports = {\n FileReader\n}\n", "'use strict'\n\nmodule.exports = {\n kConstruct: Symbol('constructable')\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { isValidHeaderName } = require('../fetch/util')\n\n/**\n * @see https://url.spec.whatwg.org/#concept-url-equals\n * @param {URL} A\n * @param {URL} B\n * @param {boolean | undefined} excludeFragment\n * @returns {boolean}\n */\nfunction urlEquals (A, B, excludeFragment = false) {\n const serializedA = URLSerializer(A, excludeFragment)\n\n const serializedB = URLSerializer(B, excludeFragment)\n\n return serializedA === serializedB\n}\n\n/**\n * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262\n * @param {string} header\n */\nfunction fieldValues (header) {\n assert(header !== null)\n\n const values = []\n\n for (let value of header.split(',')) {\n value = value.trim()\n\n if (!value.length) {\n continue\n } else if (!isValidHeaderName(value)) {\n continue\n }\n\n values.push(value)\n }\n\n return values\n}\n\nmodule.exports = {\n urlEquals,\n fieldValues\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { urlEquals, fieldValues: getFieldValues } = require('./util')\nconst { kEnumerableProperty, isDisturbed } = require('../core/util')\nconst { kHeadersList } = require('../core/symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { Response, cloneResponse } = require('../fetch/response')\nconst { Request } = require('../fetch/request')\nconst { kState, kHeaders, kGuard, kRealm } = require('../fetch/symbols')\nconst { fetching } = require('../fetch/index')\nconst { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')\nconst assert = require('assert')\nconst { getGlobalDispatcher } = require('../global')\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation\n * @typedef {Object} CacheBatchOperation\n * @property {'delete' | 'put'} type\n * @property {any} request\n * @property {any} response\n * @property {import('../../types/cache').CacheQueryOptions} options\n */\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list\n * @typedef {[any, any][]} requestResponseList\n */\n\nclass Cache {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list\n * @type {requestResponseList}\n */\n #relevantRequestResponseList\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n\n this.#relevantRequestResponseList = arguments[1]\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n const p = await this.matchAll(request, options)\n\n if (p.length === 0) {\n return\n }\n\n return p[0]\n }\n\n async matchAll (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') {\n // 2.2.1\n r = new Request(request)[kState]\n }\n }\n\n // 5.\n // 5.1\n const responses = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n responses.push(requestResponse[1])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n responses.push(requestResponse[1])\n }\n }\n\n // 5.4\n // We don't implement CORs so we don't need to loop over the responses, yay!\n\n // 5.5.1\n const responseList = []\n\n // 5.5.2\n for (const response of responses) {\n // 5.5.2.1\n const responseObject = new Response(response.body?.source ?? null)\n const body = responseObject[kState].body\n responseObject[kState] = response\n responseObject[kState].body = body\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n\n responseList.push(responseObject)\n }\n\n // 6.\n return Object.freeze(responseList)\n }\n\n async add (request) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })\n\n request = webidl.converters.RequestInfo(request)\n\n // 1.\n const requests = [request]\n\n // 2.\n const responseArrayPromise = this.addAll(requests)\n\n // 3.\n return await responseArrayPromise\n }\n\n async addAll (requests) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })\n\n requests = webidl.converters['sequence<RequestInfo>'](requests)\n\n // 1.\n const responsePromises = []\n\n // 2.\n const requestList = []\n\n // 3.\n for (const request of requests) {\n if (typeof request === 'string') {\n continue\n }\n\n // 3.1\n const r = request[kState]\n\n // 3.2\n if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme when method is not GET.'\n })\n }\n }\n\n // 4.\n /** @type {ReturnType<typeof fetching>[]} */\n const fetchControllers = []\n\n // 5.\n for (const request of requests) {\n // 5.1\n const r = new Request(request)[kState]\n\n // 5.2\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme.'\n })\n }\n\n // 5.4\n r.initiator = 'fetch'\n r.destination = 'subresource'\n\n // 5.5\n requestList.push(r)\n\n // 5.6\n const responsePromise = createDeferredPromise()\n\n // 5.7\n fetchControllers.push(fetching({\n request: r,\n dispatcher: getGlobalDispatcher(),\n processResponse (response) {\n // 1.\n if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Received an invalid status code or the request failed.'\n }))\n } else if (response.headersList.contains('vary')) { // 2.\n // 2.1\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n // 2.2\n for (const fieldValue of fieldValues) {\n // 2.2.1\n if (fieldValue === '*') {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'invalid vary field value'\n }))\n\n for (const controller of fetchControllers) {\n controller.abort()\n }\n\n return\n }\n }\n }\n },\n processResponseEndOfBody (response) {\n // 1.\n if (response.aborted) {\n responsePromise.reject(new DOMException('aborted', 'AbortError'))\n return\n }\n\n // 2.\n responsePromise.resolve(response)\n }\n }))\n\n // 5.8\n responsePromises.push(responsePromise.promise)\n }\n\n // 6.\n const p = Promise.all(responsePromises)\n\n // 7.\n const responses = await p\n\n // 7.1\n const operations = []\n\n // 7.2\n let index = 0\n\n // 7.3\n for (const response of responses) {\n // 7.3.1\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 7.3.2\n request: requestList[index], // 7.3.3\n response // 7.3.4\n }\n\n operations.push(operation) // 7.3.5\n\n index++ // 7.3.6\n }\n\n // 7.5\n const cacheJobPromise = createDeferredPromise()\n\n // 7.6.1\n let errorData = null\n\n // 7.6.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 7.6.3\n queueMicrotask(() => {\n // 7.6.3.1\n if (errorData === null) {\n cacheJobPromise.resolve(undefined)\n } else {\n // 7.6.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n // 7.7\n return cacheJobPromise.promise\n }\n\n async put (request, response) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })\n\n request = webidl.converters.RequestInfo(request)\n response = webidl.converters.Response(response)\n\n // 1.\n let innerRequest = null\n\n // 2.\n if (request instanceof Request) {\n innerRequest = request[kState]\n } else { // 3.\n innerRequest = new Request(request)[kState]\n }\n\n // 4.\n if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Expected an http/s scheme when method is not GET'\n })\n }\n\n // 5.\n const innerResponse = response[kState]\n\n // 6.\n if (innerResponse.status === 206) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got 206 status'\n })\n }\n\n // 7.\n if (innerResponse.headersList.contains('vary')) {\n // 7.1.\n const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))\n\n // 7.2.\n for (const fieldValue of fieldValues) {\n // 7.2.1\n if (fieldValue === '*') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got * vary field value'\n })\n }\n }\n }\n\n // 8.\n if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Response body is locked or disturbed'\n })\n }\n\n // 9.\n const clonedResponse = cloneResponse(innerResponse)\n\n // 10.\n const bodyReadPromise = createDeferredPromise()\n\n // 11.\n if (innerResponse.body != null) {\n // 11.1\n const stream = innerResponse.body.stream\n\n // 11.2\n const reader = stream.getReader()\n\n // 11.3\n readAllBytes(\n reader,\n (bytes) => bodyReadPromise.resolve(bytes),\n (error) => bodyReadPromise.reject(error)\n )\n } else {\n bodyReadPromise.resolve(undefined)\n }\n\n // 12.\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n // 13.\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 14.\n request: innerRequest, // 15.\n response: clonedResponse // 16.\n }\n\n // 17.\n operations.push(operation)\n\n // 19.\n const bytes = await bodyReadPromise.promise\n\n if (clonedResponse.body != null) {\n clonedResponse.body.source = bytes\n }\n\n // 19.1\n const cacheJobPromise = createDeferredPromise()\n\n // 19.2.1\n let errorData = null\n\n // 19.2.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 19.2.3\n queueMicrotask(() => {\n // 19.2.3.1\n if (errorData === null) {\n cacheJobPromise.resolve()\n } else { // 19.2.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n async delete (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n /**\n * @type {Request}\n */\n let r = null\n\n if (request instanceof Request) {\n r = request[kState]\n\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return false\n }\n } else {\n assert(typeof request === 'string')\n\n r = new Request(request)[kState]\n }\n\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'delete',\n request: r,\n options\n }\n\n operations.push(operation)\n\n const cacheJobPromise = createDeferredPromise()\n\n let errorData = null\n let requestResponses\n\n try {\n requestResponses = this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n queueMicrotask(() => {\n if (errorData === null) {\n cacheJobPromise.resolve(!!requestResponses?.length)\n } else {\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys\n * @param {any} request\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @returns {readonly Request[]}\n */\n async keys (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n // 2.1\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') { // 2.2\n r = new Request(request)[kState]\n }\n }\n\n // 4.\n const promise = createDeferredPromise()\n\n // 5.\n // 5.1\n const requests = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n // 5.2.1.1\n requests.push(requestResponse[0])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n // 5.3.2.1\n requests.push(requestResponse[0])\n }\n }\n\n // 5.4\n queueMicrotask(() => {\n // 5.4.1\n const requestList = []\n\n // 5.4.2\n for (const request of requests) {\n const requestObject = new Request('https://a')\n requestObject[kState] = request\n requestObject[kHeaders][kHeadersList] = request.headersList\n requestObject[kHeaders][kGuard] = 'immutable'\n requestObject[kRealm] = request.client\n\n // 5.4.2.1\n requestList.push(requestObject)\n }\n\n // 5.4.3\n promise.resolve(Object.freeze(requestList))\n })\n\n return promise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm\n * @param {CacheBatchOperation[]} operations\n * @returns {requestResponseList}\n */\n #batchCacheOperations (operations) {\n // 1.\n const cache = this.#relevantRequestResponseList\n\n // 2.\n const backupCache = [...cache]\n\n // 3.\n const addedItems = []\n\n // 4.1\n const resultList = []\n\n try {\n // 4.2\n for (const operation of operations) {\n // 4.2.1\n if (operation.type !== 'delete' && operation.type !== 'put') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'operation type does not match \"delete\" or \"put\"'\n })\n }\n\n // 4.2.2\n if (operation.type === 'delete' && operation.response != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'delete operation should not have an associated response'\n })\n }\n\n // 4.2.3\n if (this.#queryCache(operation.request, operation.options, addedItems).length) {\n throw new DOMException('???', 'InvalidStateError')\n }\n\n // 4.2.4\n let requestResponses\n\n // 4.2.5\n if (operation.type === 'delete') {\n // 4.2.5.1\n requestResponses = this.#queryCache(operation.request, operation.options)\n\n // TODO: the spec is wrong, this is needed to pass WPTs\n if (requestResponses.length === 0) {\n return []\n }\n\n // 4.2.5.2\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.5.2.1\n cache.splice(idx, 1)\n }\n } else if (operation.type === 'put') { // 4.2.6\n // 4.2.6.1\n if (operation.response == null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'put operation should have an associated response'\n })\n }\n\n // 4.2.6.2\n const r = operation.request\n\n // 4.2.6.3\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'expected http or https scheme'\n })\n }\n\n // 4.2.6.4\n if (r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'not get method'\n })\n }\n\n // 4.2.6.5\n if (operation.options != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'options must not be defined'\n })\n }\n\n // 4.2.6.6\n requestResponses = this.#queryCache(operation.request)\n\n // 4.2.6.7\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.6.7.1\n cache.splice(idx, 1)\n }\n\n // 4.2.6.8\n cache.push([operation.request, operation.response])\n\n // 4.2.6.10\n addedItems.push([operation.request, operation.response])\n }\n\n // 4.2.7\n resultList.push([operation.request, operation.response])\n }\n\n // 4.3\n return resultList\n } catch (e) { // 5.\n // 5.1\n this.#relevantRequestResponseList.length = 0\n\n // 5.2\n this.#relevantRequestResponseList = backupCache\n\n // 5.3\n throw e\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#query-cache\n * @param {any} requestQuery\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @param {requestResponseList} targetStorage\n * @returns {requestResponseList}\n */\n #queryCache (requestQuery, options, targetStorage) {\n /** @type {requestResponseList} */\n const resultList = []\n\n const storage = targetStorage ?? this.#relevantRequestResponseList\n\n for (const requestResponse of storage) {\n const [cachedRequest, cachedResponse] = requestResponse\n if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {\n resultList.push(requestResponse)\n }\n }\n\n return resultList\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm\n * @param {any} requestQuery\n * @param {any} request\n * @param {any | null} response\n * @param {import('../../types/cache').CacheQueryOptions | undefined} options\n * @returns {boolean}\n */\n #requestMatchesCachedItem (requestQuery, request, response = null, options) {\n // if (options?.ignoreMethod === false && request.method === 'GET') {\n // return false\n // }\n\n const queryURL = new URL(requestQuery.url)\n\n const cachedURL = new URL(request.url)\n\n if (options?.ignoreSearch) {\n cachedURL.search = ''\n\n queryURL.search = ''\n }\n\n if (!urlEquals(queryURL, cachedURL, true)) {\n return false\n }\n\n if (\n response == null ||\n options?.ignoreVary ||\n !response.headersList.contains('vary')\n ) {\n return true\n }\n\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n for (const fieldValue of fieldValues) {\n if (fieldValue === '*') {\n return false\n }\n\n const requestValue = request.headersList.get(fieldValue)\n const queryValue = requestQuery.headersList.get(fieldValue)\n\n // If one has the header and the other doesn't, or one has\n // a different value than the other, return false\n if (requestValue !== queryValue) {\n return false\n }\n }\n\n return true\n }\n}\n\nObject.defineProperties(Cache.prototype, {\n [Symbol.toStringTag]: {\n value: 'Cache',\n configurable: true\n },\n match: kEnumerableProperty,\n matchAll: kEnumerableProperty,\n add: kEnumerableProperty,\n addAll: kEnumerableProperty,\n put: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nconst cacheQueryOptionConverters = [\n {\n key: 'ignoreSearch',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreMethod',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreVary',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)\n\nwebidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([\n ...cacheQueryOptionConverters,\n {\n key: 'cacheName',\n converter: webidl.converters.DOMString\n }\n])\n\nwebidl.converters.Response = webidl.interfaceConverter(Response)\n\nwebidl.converters['sequence<RequestInfo>'] = webidl.sequenceConverter(\n webidl.converters.RequestInfo\n)\n\nmodule.exports = {\n Cache\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { Cache } = require('./cache')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass CacheStorage {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map\n * @type {Map<string, import('./cache').requestResponseList}\n */\n #caches = new Map()\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.MultiCacheQueryOptions(options)\n\n // 1.\n if (options.cacheName != null) {\n // 1.1.1.1\n if (this.#caches.has(options.cacheName)) {\n // 1.1.1.1.1\n const cacheList = this.#caches.get(options.cacheName)\n const cache = new Cache(kConstruct, cacheList)\n\n return await cache.match(request, options)\n }\n } else { // 2.\n // 2.2\n for (const cacheList of this.#caches.values()) {\n const cache = new Cache(kConstruct, cacheList)\n\n // 2.2.1.2\n const response = await cache.match(request, options)\n\n if (response !== undefined) {\n return response\n }\n }\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-has\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async has (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1.1\n // 2.2\n return this.#caches.has(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open\n * @param {string} cacheName\n * @returns {Promise<Cache>}\n */\n async open (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1\n if (this.#caches.has(cacheName)) {\n // await caches.open('v1') !== await caches.open('v1')\n\n // 2.1.1\n const cache = this.#caches.get(cacheName)\n\n // 2.1.1.1\n return new Cache(kConstruct, cache)\n }\n\n // 2.2\n const cache = []\n\n // 2.3\n this.#caches.set(cacheName, cache)\n\n // 2.4\n return new Cache(kConstruct, cache)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async delete (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n return this.#caches.delete(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys\n * @returns {string[]}\n */\n async keys () {\n webidl.brandCheck(this, CacheStorage)\n\n // 2.1\n const keys = this.#caches.keys()\n\n // 2.2\n return [...keys]\n }\n}\n\nObject.defineProperties(CacheStorage.prototype, {\n [Symbol.toStringTag]: {\n value: 'CacheStorage',\n configurable: true\n },\n match: kEnumerableProperty,\n has: kEnumerableProperty,\n open: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nmodule.exports = {\n CacheStorage\n}\n", "'use strict'\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\nconst maxAttributeValueSize = 1024\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\nconst maxNameValuePairSize = 4096\n\nmodule.exports = {\n maxAttributeValueSize,\n maxNameValuePairSize\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kHeadersList } = require('../core/symbols')\n\nfunction isCTLExcludingHtab (value) {\n if (value.length === 0) {\n return false\n }\n\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n (code >= 0x00 || code <= 0x08) ||\n (code >= 0x0A || code <= 0x1F) ||\n code === 0x7F\n ) {\n return false\n }\n }\n}\n\n/**\n CHAR = <any US-ASCII character (octets 0 - 127)>\n token = 1*<any CHAR except CTLs or separators>\n separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n | \",\" | \";\" | \":\" | \"\\\" | <\">\n | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n | \"{\" | \"}\" | SP | HT\n * @param {string} name\n */\nfunction validateCookieName (name) {\n for (const char of name) {\n const code = char.charCodeAt(0)\n\n if (\n (code <= 0x20 || code > 0x7F) ||\n char === '(' ||\n char === ')' ||\n char === '>' ||\n char === '<' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}'\n ) {\n throw new Error('Invalid cookie name')\n }\n }\n}\n\n/**\n cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n ; US-ASCII characters excluding CTLs,\n ; whitespace DQUOTE, comma, semicolon,\n ; and backslash\n * @param {string} value\n */\nfunction validateCookieValue (value) {\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 || // exclude CTLs (0-31)\n code === 0x22 ||\n code === 0x2C ||\n code === 0x3B ||\n code === 0x5C ||\n code > 0x7E // non-ascii\n ) {\n throw new Error('Invalid header value')\n }\n }\n}\n\n/**\n * path-value = <any CHAR except CTLs or \";\">\n * @param {string} path\n */\nfunction validateCookiePath (path) {\n for (const char of path) {\n const code = char.charCodeAt(0)\n\n if (code < 0x21 || char === ';') {\n throw new Error('Invalid cookie path')\n }\n }\n}\n\n/**\n * I have no idea why these values aren't allowed to be honest,\n * but Deno tests these. - Khafra\n * @param {string} domain\n */\nfunction validateCookieDomain (domain) {\n if (\n domain.startsWith('-') ||\n domain.endsWith('.') ||\n domain.endsWith('-')\n ) {\n throw new Error('Invalid cookie domain')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n * @param {number|Date} date\n IMF-fixdate = day-name \",\" SP date1 SP time-of-day SP GMT\n ; fixed length/zone/capitalization subset of the format\n ; see Section 3.3 of [RFC5322]\n\n day-name = %x4D.6F.6E ; \"Mon\", case-sensitive\n / %x54.75.65 ; \"Tue\", case-sensitive\n / %x57.65.64 ; \"Wed\", case-sensitive\n / %x54.68.75 ; \"Thu\", case-sensitive\n / %x46.72.69 ; \"Fri\", case-sensitive\n / %x53.61.74 ; \"Sat\", case-sensitive\n / %x53.75.6E ; \"Sun\", case-sensitive\n date1 = day SP month SP year\n ; e.g., 02 Jun 1982\n\n day = 2DIGIT\n month = %x4A.61.6E ; \"Jan\", case-sensitive\n / %x46.65.62 ; \"Feb\", case-sensitive\n / %x4D.61.72 ; \"Mar\", case-sensitive\n / %x41.70.72 ; \"Apr\", case-sensitive\n / %x4D.61.79 ; \"May\", case-sensitive\n / %x4A.75.6E ; \"Jun\", case-sensitive\n / %x4A.75.6C ; \"Jul\", case-sensitive\n / %x41.75.67 ; \"Aug\", case-sensitive\n / %x53.65.70 ; \"Sep\", case-sensitive\n / %x4F.63.74 ; \"Oct\", case-sensitive\n / %x4E.6F.76 ; \"Nov\", case-sensitive\n / %x44.65.63 ; \"Dec\", case-sensitive\n year = 4DIGIT\n\n GMT = %x47.4D.54 ; \"GMT\", case-sensitive\n\n time-of-day = hour \":\" minute \":\" second\n ; 00:00:00 - 23:59:60 (leap second)\n\n hour = 2DIGIT\n minute = 2DIGIT\n second = 2DIGIT\n */\nfunction toIMFDate (date) {\n if (typeof date === 'number') {\n date = new Date(date)\n }\n\n const days = [\n 'Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'\n ]\n\n const months = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ]\n\n const dayName = days[date.getUTCDay()]\n const day = date.getUTCDate().toString().padStart(2, '0')\n const month = months[date.getUTCMonth()]\n const year = date.getUTCFullYear()\n const hour = date.getUTCHours().toString().padStart(2, '0')\n const minute = date.getUTCMinutes().toString().padStart(2, '0')\n const second = date.getUTCSeconds().toString().padStart(2, '0')\n\n return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n}\n\n/**\n max-age-av = \"Max-Age=\" non-zero-digit *DIGIT\n ; In practice, both expires-av and max-age-av\n ; are limited to dates representable by the\n ; user agent.\n * @param {number} maxAge\n */\nfunction validateCookieMaxAge (maxAge) {\n if (maxAge < 0) {\n throw new Error('Invalid cookie max-age')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n * @param {import('./index').Cookie} cookie\n */\nfunction stringify (cookie) {\n if (cookie.name.length === 0) {\n return null\n }\n\n validateCookieName(cookie.name)\n validateCookieValue(cookie.value)\n\n const out = [`${cookie.name}=${cookie.value}`]\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n if (cookie.name.startsWith('__Secure-')) {\n cookie.secure = true\n }\n\n if (cookie.name.startsWith('__Host-')) {\n cookie.secure = true\n cookie.domain = null\n cookie.path = '/'\n }\n\n if (cookie.secure) {\n out.push('Secure')\n }\n\n if (cookie.httpOnly) {\n out.push('HttpOnly')\n }\n\n if (typeof cookie.maxAge === 'number') {\n validateCookieMaxAge(cookie.maxAge)\n out.push(`Max-Age=${cookie.maxAge}`)\n }\n\n if (cookie.domain) {\n validateCookieDomain(cookie.domain)\n out.push(`Domain=${cookie.domain}`)\n }\n\n if (cookie.path) {\n validateCookiePath(cookie.path)\n out.push(`Path=${cookie.path}`)\n }\n\n if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n out.push(`Expires=${toIMFDate(cookie.expires)}`)\n }\n\n if (cookie.sameSite) {\n out.push(`SameSite=${cookie.sameSite}`)\n }\n\n for (const part of cookie.unparsed) {\n if (!part.includes('=')) {\n throw new Error('Invalid unparsed')\n }\n\n const [key, ...value] = part.split('=')\n\n out.push(`${key.trim()}=${value.join('=')}`)\n }\n\n return out.join('; ')\n}\n\nlet kHeadersListNode\n\nfunction getHeadersList (headers) {\n if (headers[kHeadersList]) {\n return headers[kHeadersList]\n }\n\n if (!kHeadersListNode) {\n kHeadersListNode = Object.getOwnPropertySymbols(headers).find(\n (symbol) => symbol.description === 'headers list'\n )\n\n assert(kHeadersListNode, 'Headers cannot be parsed')\n }\n\n const headersList = headers[kHeadersListNode]\n assert(headersList)\n\n return headersList\n}\n\nmodule.exports = {\n isCTLExcludingHtab,\n stringify,\n getHeadersList\n}\n", "'use strict'\n\nconst { maxNameValuePairSize, maxAttributeValueSize } = require('./constants')\nconst { isCTLExcludingHtab } = require('./util')\nconst { collectASequenceOfCodePointsFast } = require('../fetch/dataURL')\nconst assert = require('assert')\n\n/**\n * @description Parses the field-value attributes of a set-cookie header string.\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} header\n * @returns if the header is invalid, null will be returned\n */\nfunction parseSetCookie (header) {\n // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n // character (CTL characters excluding HTAB): Abort these steps and\n // ignore the set-cookie-string entirely.\n if (isCTLExcludingHtab(header)) {\n return null\n }\n\n let nameValuePair = ''\n let unparsedAttributes = ''\n let name = ''\n let value = ''\n\n // 2. If the set-cookie-string contains a %x3B (\";\") character:\n if (header.includes(';')) {\n // 1. The name-value-pair string consists of the characters up to,\n // but not including, the first %x3B (\";\"), and the unparsed-\n // attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\n const position = { position: 0 }\n\n nameValuePair = collectASequenceOfCodePointsFast(';', header, position)\n unparsedAttributes = header.slice(position.position)\n } else {\n // Otherwise:\n\n // 1. The name-value-pair string consists of all the characters\n // contained in the set-cookie-string, and the unparsed-\n // attributes is the empty string.\n nameValuePair = header\n }\n\n // 3. If the name-value-pair string lacks a %x3D (\"=\") character, then\n // the name string is empty, and the value string is the value of\n // name-value-pair.\n if (!nameValuePair.includes('=')) {\n value = nameValuePair\n } else {\n // Otherwise, the name string consists of the characters up to, but\n // not including, the first %x3D (\"=\") character, and the (possibly\n // empty) value string consists of the characters after the first\n // %x3D (\"=\") character.\n const position = { position: 0 }\n name = collectASequenceOfCodePointsFast(\n '=',\n nameValuePair,\n position\n )\n value = nameValuePair.slice(position.position + 1)\n }\n\n // 4. Remove any leading or trailing WSP characters from the name\n // string and the value string.\n name = name.trim()\n value = value.trim()\n\n // 5. If the sum of the lengths of the name string and the value string\n // is more than 4096 octets, abort these steps and ignore the set-\n // cookie-string entirely.\n if (name.length + value.length > maxNameValuePairSize) {\n return null\n }\n\n // 6. The cookie-name is the name string, and the cookie-value is the\n // value string.\n return {\n name, value, ...parseUnparsedAttributes(unparsedAttributes)\n }\n}\n\n/**\n * Parses the remaining attributes of a set-cookie header\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} unparsedAttributes\n * @param {[Object.<string, unknown>]={}} cookieAttributeList\n */\nfunction parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {\n // 1. If the unparsed-attributes string is empty, skip the rest of\n // these steps.\n if (unparsedAttributes.length === 0) {\n return cookieAttributeList\n }\n\n // 2. Discard the first character of the unparsed-attributes (which\n // will be a %x3B (\";\") character).\n assert(unparsedAttributes[0] === ';')\n unparsedAttributes = unparsedAttributes.slice(1)\n\n let cookieAv = ''\n\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n if (unparsedAttributes.includes(';')) {\n // 1. Consume the characters of the unparsed-attributes up to, but\n // not including, the first %x3B (\";\") character.\n cookieAv = collectASequenceOfCodePointsFast(\n ';',\n unparsedAttributes,\n { position: 0 }\n )\n unparsedAttributes = unparsedAttributes.slice(cookieAv.length)\n } else {\n // Otherwise:\n\n // 1. Consume the remainder of the unparsed-attributes.\n cookieAv = unparsedAttributes\n unparsedAttributes = ''\n }\n\n // Let the cookie-av string be the characters consumed in this step.\n\n let attributeName = ''\n let attributeValue = ''\n\n // 4. If the cookie-av string contains a %x3D (\"=\") character:\n if (cookieAv.includes('=')) {\n // 1. The (possibly empty) attribute-name string consists of the\n // characters up to, but not including, the first %x3D (\"=\")\n // character, and the (possibly empty) attribute-value string\n // consists of the characters after the first %x3D (\"=\")\n // character.\n const position = { position: 0 }\n\n attributeName = collectASequenceOfCodePointsFast(\n '=',\n cookieAv,\n position\n )\n attributeValue = cookieAv.slice(position.position + 1)\n } else {\n // Otherwise:\n\n // 1. The attribute-name string consists of the entire cookie-av\n // string, and the attribute-value string is empty.\n attributeName = cookieAv\n }\n\n // 5. Remove any leading or trailing WSP characters from the attribute-\n // name string and the attribute-value string.\n attributeName = attributeName.trim()\n attributeValue = attributeValue.trim()\n\n // 6. If the attribute-value is longer than 1024 octets, ignore the\n // cookie-av string and return to Step 1 of this algorithm.\n if (attributeValue.length > maxAttributeValueSize) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 7. Process the attribute-name and attribute-value according to the\n // requirements in the following subsections. (Notice that\n // attributes with unrecognized attribute-names are ignored.)\n const attributeNameLowercase = attributeName.toLowerCase()\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n // If the attribute-name case-insensitively matches the string\n // \"Expires\", the user agent MUST process the cookie-av as follows.\n if (attributeNameLowercase === 'expires') {\n // 1. Let the expiry-time be the result of parsing the attribute-value\n // as cookie-date (see Section 5.1.1).\n const expiryTime = new Date(attributeValue)\n\n // 2. If the attribute-value failed to parse as a cookie date, ignore\n // the cookie-av.\n\n cookieAttributeList.expires = expiryTime\n } else if (attributeNameLowercase === 'max-age') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n // If the attribute-name case-insensitively matches the string \"Max-\n // Age\", the user agent MUST process the cookie-av as follows.\n\n // 1. If the first character of the attribute-value is not a DIGIT or a\n // \"-\" character, ignore the cookie-av.\n const charCode = attributeValue.charCodeAt(0)\n\n if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 2. If the remainder of attribute-value contains a non-DIGIT\n // character, ignore the cookie-av.\n if (!/^\\d+$/.test(attributeValue)) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 3. Let delta-seconds be the attribute-value converted to an integer.\n const deltaSeconds = Number(attributeValue)\n\n // 4. Let cookie-age-limit be the maximum age of the cookie (which\n // SHOULD be 400 days or less, see Section 4.1.2.2).\n\n // 5. Set delta-seconds to the smaller of its present value and cookie-\n // age-limit.\n // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)\n\n // 6. If delta-seconds is less than or equal to zero (0), let expiry-\n // time be the earliest representable date and time. Otherwise, let\n // the expiry-time be the current date and time plus delta-seconds\n // seconds.\n // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n // 7. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Max-Age and an attribute-value of expiry-time.\n cookieAttributeList.maxAge = deltaSeconds\n } else if (attributeNameLowercase === 'domain') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n // If the attribute-name case-insensitively matches the string \"Domain\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. Let cookie-domain be the attribute-value.\n let cookieDomain = attributeValue\n\n // 2. If cookie-domain starts with %x2E (\".\"), let cookie-domain be\n // cookie-domain without its leading %x2E (\".\").\n if (cookieDomain[0] === '.') {\n cookieDomain = cookieDomain.slice(1)\n }\n\n // 3. Convert the cookie-domain to lower case.\n cookieDomain = cookieDomain.toLowerCase()\n\n // 4. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Domain and an attribute-value of cookie-domain.\n cookieAttributeList.domain = cookieDomain\n } else if (attributeNameLowercase === 'path') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n // If the attribute-name case-insensitively matches the string \"Path\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. If the attribute-value is empty or if the first character of the\n // attribute-value is not %x2F (\"/\"):\n let cookiePath = ''\n if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n // 1. Let cookie-path be the default-path.\n cookiePath = '/'\n } else {\n // Otherwise:\n\n // 1. Let cookie-path be the attribute-value.\n cookiePath = attributeValue\n }\n\n // 2. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Path and an attribute-value of cookie-path.\n cookieAttributeList.path = cookiePath\n } else if (attributeNameLowercase === 'secure') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n // If the attribute-name case-insensitively matches the string \"Secure\",\n // the user agent MUST append an attribute to the cookie-attribute-list\n // with an attribute-name of Secure and an empty attribute-value.\n\n cookieAttributeList.secure = true\n } else if (attributeNameLowercase === 'httponly') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n // If the attribute-name case-insensitively matches the string\n // \"HttpOnly\", the user agent MUST append an attribute to the cookie-\n // attribute-list with an attribute-name of HttpOnly and an empty\n // attribute-value.\n\n cookieAttributeList.httpOnly = true\n } else if (attributeNameLowercase === 'samesite') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n // If the attribute-name case-insensitively matches the string\n // \"SameSite\", the user agent MUST process the cookie-av as follows:\n\n // 1. Let enforcement be \"Default\".\n let enforcement = 'Default'\n\n const attributeValueLowercase = attributeValue.toLowerCase()\n // 2. If cookie-av's attribute-value is a case-insensitive match for\n // \"None\", set enforcement to \"None\".\n if (attributeValueLowercase.includes('none')) {\n enforcement = 'None'\n }\n\n // 3. If cookie-av's attribute-value is a case-insensitive match for\n // \"Strict\", set enforcement to \"Strict\".\n if (attributeValueLowercase.includes('strict')) {\n enforcement = 'Strict'\n }\n\n // 4. If cookie-av's attribute-value is a case-insensitive match for\n // \"Lax\", set enforcement to \"Lax\".\n if (attributeValueLowercase.includes('lax')) {\n enforcement = 'Lax'\n }\n\n // 5. Append an attribute to the cookie-attribute-list with an\n // attribute-name of \"SameSite\" and an attribute-value of\n // enforcement.\n cookieAttributeList.sameSite = enforcement\n } else {\n cookieAttributeList.unparsed ??= []\n\n cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)\n }\n\n // 8. Return to Step 1 of this algorithm.\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n}\n\nmodule.exports = {\n parseSetCookie,\n parseUnparsedAttributes\n}\n", "'use strict'\n\nconst { parseSetCookie } = require('./parse')\nconst { stringify, getHeadersList } = require('./util')\nconst { webidl } = require('../fetch/webidl')\nconst { Headers } = require('../fetch/headers')\n\n/**\n * @typedef {Object} Cookie\n * @property {string} name\n * @property {string} value\n * @property {Date|number|undefined} expires\n * @property {number|undefined} maxAge\n * @property {string|undefined} domain\n * @property {string|undefined} path\n * @property {boolean|undefined} secure\n * @property {boolean|undefined} httpOnly\n * @property {'Strict'|'Lax'|'None'} sameSite\n * @property {string[]} unparsed\n */\n\n/**\n * @param {Headers} headers\n * @returns {Record<string, string>}\n */\nfunction getCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookie = headers.get('cookie')\n const out = {}\n\n if (!cookie) {\n return out\n }\n\n for (const piece of cookie.split(';')) {\n const [name, ...value] = piece.split('=')\n\n out[name.trim()] = value.join('=')\n }\n\n return out\n}\n\n/**\n * @param {Headers} headers\n * @param {string} name\n * @param {{ path?: string, domain?: string }|undefined} attributes\n * @returns {void}\n */\nfunction deleteCookie (headers, name, attributes) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n name = webidl.converters.DOMString(name)\n attributes = webidl.converters.DeleteCookieAttributes(attributes)\n\n // Matches behavior of\n // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n setCookie(headers, {\n name,\n value: '',\n expires: new Date(0),\n ...attributes\n })\n}\n\n/**\n * @param {Headers} headers\n * @returns {Cookie[]}\n */\nfunction getSetCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookies = getHeadersList(headers).cookies\n\n if (!cookies) {\n return []\n }\n\n // In older versions of undici, cookies is a list of name:value.\n return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair))\n}\n\n/**\n * @param {Headers} headers\n * @param {Cookie} cookie\n * @returns {void}\n */\nfunction setCookie (headers, cookie) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n cookie = webidl.converters.Cookie(cookie)\n\n const str = stringify(cookie)\n\n if (str) {\n headers.append('Set-Cookie', stringify(cookie))\n }\n}\n\nwebidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n }\n])\n\nwebidl.converters.Cookie = webidl.dictionaryConverter([\n {\n converter: webidl.converters.DOMString,\n key: 'name'\n },\n {\n converter: webidl.converters.DOMString,\n key: 'value'\n },\n {\n converter: webidl.nullableConverter((value) => {\n if (typeof value === 'number') {\n return webidl.converters['unsigned long long'](value)\n }\n\n return new Date(value)\n }),\n key: 'expires',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters['long long']),\n key: 'maxAge',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'secure',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'httpOnly',\n defaultValue: null\n },\n {\n converter: webidl.converters.USVString,\n key: 'sameSite',\n allowedValues: ['Strict', 'Lax', 'None']\n },\n {\n converter: webidl.sequenceConverter(webidl.converters.DOMString),\n key: 'unparsed',\n defaultValue: []\n }\n])\n\nmodule.exports = {\n getCookies,\n deleteCookie,\n getSetCookies,\n setCookie\n}\n", "'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nmodule.exports = {\n uid,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer\n}\n", "'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\nconst { MessagePort } = require('worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' })\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' })\n\n super(type, eventInitDict)\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence<MessagePort>'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence<MessagePort>'],\n get defaultValue () {\n return []\n }\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent\n}\n", "'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { MessageEvent, ErrorEvent } = require('./events')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventConstructor = Event, eventInitDict) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event\u2019s type attribute to e.\n const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = new Uint8Array(data).buffer\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object\u2019s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, MessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (const char of protocol) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 ||\n code > 0x7E ||\n char === '(' ||\n char === ')' ||\n char === '<' ||\n char === '>' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}' ||\n code === 32 || // SP\n code === 9 // HT\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n fireEvent('error', ws, ErrorEvent, {\n error: new Error(reason)\n })\n }\n}\n\nmodule.exports = {\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived\n}\n", "'use strict'\n\nconst { randomBytes, createHash } = require('crypto')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { uid, states } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection } = require('./util')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers } = require('../fetch/headers')\nconst { getGlobalDispatcher } = require('../global')\nconst { kHeadersList } = require('../core/symbols')\n\nconst channels = {}\nchannels.open = diagnosticsChannel.channel('undici:websocket:open')\nchannels.close = diagnosticsChannel.channel('undici:websocket:close')\nchannels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error')\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any) => void} onEstablish\n * @param {Partial<import('../../types/websocket').WebSocketInit>} options\n */\nfunction establishWebSocketConnection (url, protocols, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url\u2019s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = new Headers(options.headers)[kHeadersList]\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request\u2019s header list.\n // 4. Append (`Connection`, `Upgrade`) to request\u2019s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request\u2019s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n // TODO: enable once permessage-deflate is supported\n const permessageDeflate = '' // 'permessage-deflate; 15'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request\u2019s header list.\n // request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher ?? getGlobalDispatcher(),\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response\u2019s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n\n if (secExtension !== null && secExtension !== permessageDeflate) {\n failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.')\n return\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response)\n }\n })\n\n return controller\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kSentClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n fireEvent('close', ws, CloseEvent, {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection\n}\n", "'use strict'\n\nconst { randomBytes } = require('crypto')\nconst { maxUnsigned16Bit } = require('./constants')\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n this.maskKey = randomBytes(4)\n }\n\n createFrame (opcode) {\n const bodyLength = this.frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */\n buffer[offset - 4] = this.maskKey[0]\n buffer[offset - 3] = this.maskKey[1]\n buffer[offset - 2] = this.maskKey[2]\n buffer[offset - 1] = this.maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; i++) {\n buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n", "'use strict'\n\nconst { Writable } = require('stream')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { parserStates, opcodes, states, emptyBuffer } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>\n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nconst channels = {}\nchannels.ping = diagnosticsChannel.channel('undici:websocket:ping')\nchannels.pong = diagnosticsChannel.channel('undici:websocket:pong')\n\nclass ByteParser extends Writable {\n #buffers = []\n #byteOffset = 0\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n constructor (ws) {\n super()\n\n this.ws = ws\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n\n this.run(callback)\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (true) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.fin = (buffer[0] & 0x80) !== 0\n this.#info.opcode = buffer[0] & 0x0F\n\n // If we receive a fragmented message, we use the type of the first\n // frame to parse the full message as binary/text, when it's terminated\n this.#info.originalOpcode ??= this.#info.opcode\n\n this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION\n\n if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n const payloadLength = buffer[1] & 0x7F\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (this.#info.fragmented && payloadLength > 125) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n } else if (\n (this.#info.opcode === opcodes.PING ||\n this.#info.opcode === opcodes.PONG ||\n this.#info.opcode === opcodes.CLOSE) &&\n payloadLength > 125\n ) {\n // Control frames can have a payload length of 125 bytes MAX\n failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.')\n return\n } else if (this.#info.opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return\n }\n\n const body = this.consume(payloadLength)\n\n this.#info.closeInfo = this.parseCloseBody(false, body)\n\n if (!this.ws[kSentClose]) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n const body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = true\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n this.end()\n\n return\n } else if (this.#info.opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n const body = this.consume(payloadLength)\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n\n this.#state = parserStates.INFO\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n } else if (this.#info.opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n const body = this.consume(payloadLength)\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n\n // 2^31 is the maxinimum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n const lower = buffer.readUInt32BE(4)\n\n this.#info.payloadLength = (upper << 8) + lower\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n // If there is still more data in this chunk that needs to be read\n return callback()\n } else if (this.#byteOffset >= this.#info.payloadLength) {\n // If the server sent multiple frames in a single chunk\n\n const body = this.consume(this.#info.payloadLength)\n\n this.#fragments.push(body)\n\n // If the frame is unfragmented, or a fragmented frame was terminated,\n // a message was received\n if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n const fullMessage = Buffer.concat(this.#fragments)\n\n websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage)\n\n this.#info = {}\n this.#fragments.length = 0\n }\n\n this.#state = parserStates.INFO\n }\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n break\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer|null}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n return null\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n parseCloseBody (onlyCode, data) {\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (onlyCode) {\n if (!isValidStatusCode(code)) {\n return null\n }\n\n return { code }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return null\n }\n\n try {\n // TODO: optimize this\n reason = new TextDecoder('utf-8', { fatal: true }).decode(reason)\n } catch {\n return null\n }\n\n return { code, reason }\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { DOMException } = require('../fetch/constants')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require('./constants')\nconst {\n kWebSocketURL,\n kReadyState,\n kController,\n kBinaryType,\n kResponse,\n kSentClose,\n kByteParser\n} = require('./symbols')\nconst { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require('./util')\nconst { establishWebSocketConnection } = require('./connection')\nconst { WebsocketFrameSend } = require('./frame')\nconst { ByteParser } = require('./receiver')\nconst { kEnumerableProperty, isBlobLike } = require('../core/util')\nconst { getGlobalDispatcher } = require('../global')\nconst { types } = require('util')\n\nlet experimentalWarned = false\n\n// https://websockets.spec.whatwg.org/#interface-definition\nclass WebSocket extends EventTarget {\n #events = {\n open: null,\n error: null,\n close: null,\n message: null\n }\n\n #bufferedAmount = 0\n #protocol = ''\n #extensions = ''\n\n /**\n * @param {string} url\n * @param {string|string[]} protocols\n */\n constructor (url, protocols = []) {\n super()\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' })\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('WebSockets are experimental, expect them to change at any time.', {\n code: 'UNDICI-WS'\n })\n }\n\n const options = webidl.converters['DOMString or sequence<DOMString> or WebSocketInit'](protocols)\n\n url = webidl.converters.USVString(url)\n protocols = options.protocols\n\n // 1. Let urlRecord be the result of applying the URL parser to url.\n let urlRecord\n\n try {\n urlRecord = new URL(url)\n } catch (e) {\n // 2. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 3. If urlRecord\u2019s scheme is not \"ws\" or \"wss\", then throw a\n // \"SyntaxError\" DOMException.\n if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n throw new DOMException(\n `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,\n 'SyntaxError'\n )\n }\n\n // 4. If urlRecord\u2019s fragment is non-null, then throw a \"SyntaxError\"\n // DOMException.\n if (urlRecord.hash) {\n throw new DOMException('Got fragment', 'SyntaxError')\n }\n\n // 5. If protocols is a string, set protocols to a sequence consisting\n // of just that string.\n if (typeof protocols === 'string') {\n protocols = [protocols]\n }\n\n // 6. If any of the values in protocols occur more than once or otherwise\n // fail to match the requirements for elements that comprise the value\n // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n // protocol, then throw a \"SyntaxError\" DOMException.\n if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n // 7. Set this's url to urlRecord.\n this[kWebSocketURL] = urlRecord\n\n // 8. Let client be this's relevant settings object.\n\n // 9. Run this step in parallel:\n\n // 1. Establish a WebSocket connection given urlRecord, protocols,\n // and client.\n this[kController] = establishWebSocketConnection(\n urlRecord,\n protocols,\n this,\n (response) => this.#onConnectionEstablished(response),\n options\n )\n\n // Each WebSocket object has an associated ready state, which is a\n // number representing the state of the connection. Initially it must\n // be CONNECTING (0).\n this[kReadyState] = WebSocket.CONNECTING\n\n // The extensions attribute must initially return the empty string.\n\n // The protocol attribute must initially return the empty string.\n\n // Each WebSocket object has an associated binary type, which is a\n // BinaryType. Initially it must be \"blob\".\n this[kBinaryType] = 'blob'\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n * @param {number|undefined} code\n * @param {string|undefined} reason\n */\n close (code = undefined, reason = undefined) {\n webidl.brandCheck(this, WebSocket)\n\n if (code !== undefined) {\n code = webidl.converters['unsigned short'](code, { clamp: true })\n }\n\n if (reason !== undefined) {\n reason = webidl.converters.USVString(reason)\n }\n\n // 1. If code is present, but is neither an integer equal to 1000 nor an\n // integer in the range 3000 to 4999, inclusive, throw an\n // \"InvalidAccessError\" DOMException.\n if (code !== undefined) {\n if (code !== 1000 && (code < 3000 || code > 4999)) {\n throw new DOMException('invalid code', 'InvalidAccessError')\n }\n }\n\n let reasonByteLength = 0\n\n // 2. If reason is present, then run these substeps:\n if (reason !== undefined) {\n // 1. Let reasonBytes be the result of encoding reason.\n // 2. If reasonBytes is longer than 123 bytes, then throw a\n // \"SyntaxError\" DOMException.\n reasonByteLength = Buffer.byteLength(reason)\n\n if (reasonByteLength > 123) {\n throw new DOMException(\n `Reason must be less than 123 bytes; received ${reasonByteLength}`,\n 'SyntaxError'\n )\n }\n }\n\n // 3. Run the first matching steps from the following list:\n if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(this)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(this, 'Connection was closed before it was established.')\n this[kReadyState] = WebSocket.CLOSING\n } else if (!isClosing(this)) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE), (err) => {\n if (!err) {\n this[kSentClose] = true\n }\n })\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n this[kReadyState] = WebSocket.CLOSING\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n */\n send (data) {\n webidl.brandCheck(this, WebSocket)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' })\n\n data = webidl.converters.WebSocketSendData(data)\n\n // 1. If this's ready state is CONNECTING, then throw an\n // \"InvalidStateError\" DOMException.\n if (this[kReadyState] === WebSocket.CONNECTING) {\n throw new DOMException('Sent before connected.', 'InvalidStateError')\n }\n\n // 2. Run the appropriate set of steps from the following list:\n // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n if (!isEstablished(this) || isClosing(this)) {\n return\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n // If data is a string\n if (typeof data === 'string') {\n // If the WebSocket connection is established and the WebSocket\n // closing handshake has not yet started, then the user agent\n // must send a WebSocket Message comprised of the data argument\n // using a text frame opcode; if the data cannot be sent, e.g.\n // because it would need to be buffered but the buffer is full,\n // the user agent must flag the WebSocket as full and then close\n // the WebSocket connection. Any invocation of this method with a\n // string argument that does not throw an exception must increase\n // the bufferedAmount attribute by the number of bytes needed to\n // express the argument as UTF-8.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.TEXT)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (types.isArrayBuffer(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need\n // to be buffered but the buffer is full, the user agent must flag\n // the WebSocket as full and then close the WebSocket connection.\n // The data to be sent is the data stored in the buffer described\n // by the ArrayBuffer object. Any invocation of this method with an\n // ArrayBuffer argument that does not throw an exception must\n // increase the bufferedAmount attribute by the length of the\n // ArrayBuffer in bytes.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (ArrayBuffer.isView(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The\n // data to be sent is the data stored in the section of the buffer\n // described by the ArrayBuffer object that data references. Any\n // invocation of this method with this kind of argument that does\n // not throw an exception must increase the bufferedAmount attribute\n // by the length of data\u2019s buffer in bytes.\n\n const ab = Buffer.from(data, data.byteOffset, data.byteLength)\n\n const frame = new WebsocketFrameSend(ab)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += ab.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= ab.byteLength\n })\n } else if (isBlobLike(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The data\n // to be sent is the raw data represented by the Blob object. Any\n // invocation of this method with a Blob argument that does not throw\n // an exception must increase the bufferedAmount attribute by the size\n // of the Blob object\u2019s raw data, in bytes.\n\n const frame = new WebsocketFrameSend()\n\n data.arrayBuffer().then((ab) => {\n const value = Buffer.from(ab)\n frame.frameData = value\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n })\n }\n }\n\n get readyState () {\n webidl.brandCheck(this, WebSocket)\n\n // The readyState getter steps are to return this's ready state.\n return this[kReadyState]\n }\n\n get bufferedAmount () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#bufferedAmount\n }\n\n get url () {\n webidl.brandCheck(this, WebSocket)\n\n // The url getter steps are to return this's url, serialized.\n return URLSerializer(this[kWebSocketURL])\n }\n\n get extensions () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#extensions\n }\n\n get protocol () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#protocol\n }\n\n get onopen () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.open\n }\n\n set onopen (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n\n get onclose () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.close\n }\n\n set onclose (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.close) {\n this.removeEventListener('close', this.#events.close)\n }\n\n if (typeof fn === 'function') {\n this.#events.close = fn\n this.addEventListener('close', fn)\n } else {\n this.#events.close = null\n }\n }\n\n get onmessage () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.message\n }\n\n set onmessage (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get binaryType () {\n webidl.brandCheck(this, WebSocket)\n\n return this[kBinaryType]\n }\n\n set binaryType (type) {\n webidl.brandCheck(this, WebSocket)\n\n if (type !== 'blob' && type !== 'arraybuffer') {\n this[kBinaryType] = 'blob'\n } else {\n this[kBinaryType] = type\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n */\n #onConnectionEstablished (response) {\n // processResponse is called when the \"response\u2019s header list has been received and initialized.\"\n // once this happens, the connection is open\n this[kResponse] = response\n\n const parser = new ByteParser(this)\n parser.on('drain', function onParserDrain () {\n this.ws[kResponse].socket.resume()\n })\n\n response.socket.ws = this\n this[kByteParser] = parser\n\n // 1. Change the ready state to OPEN (1).\n this[kReadyState] = states.OPEN\n\n // 2. Change the extensions attribute\u2019s value to the extensions in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n const extensions = response.headersList.get('sec-websocket-extensions')\n\n if (extensions !== null) {\n this.#extensions = extensions\n }\n\n // 3. Change the protocol attribute\u2019s value to the subprotocol in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n const protocol = response.headersList.get('sec-websocket-protocol')\n\n if (protocol !== null) {\n this.#protocol = protocol\n }\n\n // 4. Fire an event named open at the WebSocket object.\n fireEvent('open', this)\n }\n}\n\n// https://websockets.spec.whatwg.org/#dom-websocket-connecting\nWebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING\n// https://websockets.spec.whatwg.org/#dom-websocket-open\nWebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN\n// https://websockets.spec.whatwg.org/#dom-websocket-closing\nWebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING\n// https://websockets.spec.whatwg.org/#dom-websocket-closed\nWebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED\n\nObject.defineProperties(WebSocket.prototype, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors,\n url: kEnumerableProperty,\n readyState: kEnumerableProperty,\n bufferedAmount: kEnumerableProperty,\n onopen: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onclose: kEnumerableProperty,\n close: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n binaryType: kEnumerableProperty,\n send: kEnumerableProperty,\n extensions: kEnumerableProperty,\n protocol: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'WebSocket',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(WebSocket, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors\n})\n\nwebidl.converters['sequence<DOMString>'] = webidl.sequenceConverter(\n webidl.converters.DOMString\n)\n\nwebidl.converters['DOMString or sequence<DOMString>'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n return webidl.converters['sequence<DOMString>'](V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// This implements the propsal made in https://github.com/whatwg/websockets/issues/42\nwebidl.converters.WebSocketInit = webidl.dictionaryConverter([\n {\n key: 'protocols',\n converter: webidl.converters['DOMString or sequence<DOMString>'],\n get defaultValue () {\n return []\n }\n },\n {\n key: 'dispatcher',\n converter: (V) => V,\n get defaultValue () {\n return getGlobalDispatcher()\n }\n },\n {\n key: 'headers',\n converter: webidl.nullableConverter(webidl.converters.HeadersInit)\n }\n])\n\nwebidl.converters['DOMString or sequence<DOMString> or WebSocketInit'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) {\n return webidl.converters.WebSocketInit(V)\n }\n\n return { protocols: webidl.converters['DOMString or sequence<DOMString>'](V) }\n}\n\nwebidl.converters.WebSocketSendData = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n return webidl.converters.BufferSource(V)\n }\n }\n\n return webidl.converters.USVString(V)\n}\n\nmodule.exports = {\n WebSocket\n}\n", "'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nlet hasCrypto\ntry {\n require('crypto')\n hasCrypto = true\n} catch {\n hasCrypto = false\n}\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n\n try {\n return await fetchImpl(...arguments)\n } catch (err) {\n Error.captureStackTrace(err, this)\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n module.exports.FileReader = require('./lib/fileapi/filereader').FileReader\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n\n const { CacheStorage } = require('./lib/cache/cachestorage')\n const { kConstruct } = require('./lib/cache/symbols')\n\n // Cache & CacheStorage are tightly coupled with fetch. Even if it may run\n // in an older version of Node, it doesn't have any use without fetch.\n module.exports.caches = new CacheStorage(kConstruct)\n}\n\nif (util.nodeMajor >= 16) {\n const { deleteCookie, getCookies, getSetCookies, setCookie } = require('./lib/cookies')\n\n module.exports.deleteCookie = deleteCookie\n module.exports.getCookies = getCookies\n module.exports.getSetCookies = getSetCookies\n module.exports.setCookie = setCookie\n\n const { parseMIMEType, serializeAMimeType } = require('./lib/fetch/dataURL')\n\n module.exports.parseMIMEType = parseMIMEType\n module.exports.serializeAMimeType = serializeAMimeType\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n const { WebSocket } = require('./lib/websocket/websocket')\n\n module.exports.WebSocket = WebSocket\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n", null, null, null, "'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n", "'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n", "'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n", "'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n", "'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n", "'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n", "'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n", "'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n", "var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n", "var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL());\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230\u00A75.3.1: When making a request directly to an origin server, [\u2026]\n // a client MUST send only the absolute path [\u2026] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, [\u2026]\n // a client MUST send the target URI in absolute-form [\u2026].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231\u00A76.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231\u00A76.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231\u00A76.4: Automatic redirection needs to done with\n // care for methods not known to be safe, [\u2026]\n // RFC7231\u00A76.4.2\u20133: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231\u00A76.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource [\u2026]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) [\u2026]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n /* istanbul ignore else */\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n /* istanbul ignore next */\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n", "{\n \"name\": \"axios\",\n \"version\": \"0.21.4\",\n \"description\": \"Promise based HTTP client for the browser and node.js\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"test\": \"grunt test\",\n \"start\": \"node ./sandbox/server.js\",\n \"build\": \"NODE_ENV=production grunt build\",\n \"preversion\": \"npm test\",\n \"version\": \"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json\",\n \"postversion\": \"git push && git push --tags\",\n \"examples\": \"node ./examples/server.js\",\n \"coveralls\": \"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\",\n \"fix\": \"eslint --fix lib/**/*.js\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/axios/axios.git\"\n },\n \"keywords\": [\n \"xhr\",\n \"http\",\n \"ajax\",\n \"promise\",\n \"node\"\n ],\n \"author\": \"Matt Zabriskie\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/axios/axios/issues\"\n },\n \"homepage\": \"https://axios-http.com\",\n \"devDependencies\": {\n \"coveralls\": \"^3.0.0\",\n \"es6-promise\": \"^4.2.4\",\n \"grunt\": \"^1.3.0\",\n \"grunt-banner\": \"^0.6.0\",\n \"grunt-cli\": \"^1.2.0\",\n \"grunt-contrib-clean\": \"^1.1.0\",\n \"grunt-contrib-watch\": \"^1.0.0\",\n \"grunt-eslint\": \"^23.0.0\",\n \"grunt-karma\": \"^4.0.0\",\n \"grunt-mocha-test\": \"^0.13.3\",\n \"grunt-ts\": \"^6.0.0-beta.19\",\n \"grunt-webpack\": \"^4.0.2\",\n \"istanbul-instrumenter-loader\": \"^1.0.0\",\n \"jasmine-core\": \"^2.4.1\",\n \"karma\": \"^6.3.2\",\n \"karma-chrome-launcher\": \"^3.1.0\",\n \"karma-firefox-launcher\": \"^2.1.0\",\n \"karma-jasmine\": \"^1.1.1\",\n \"karma-jasmine-ajax\": \"^0.1.13\",\n \"karma-safari-launcher\": \"^1.0.0\",\n \"karma-sauce-launcher\": \"^4.3.6\",\n \"karma-sinon\": \"^1.0.5\",\n \"karma-sourcemap-loader\": \"^0.3.8\",\n \"karma-webpack\": \"^4.0.2\",\n \"load-grunt-tasks\": \"^3.5.2\",\n \"minimist\": \"^1.2.0\",\n \"mocha\": \"^8.2.1\",\n \"sinon\": \"^4.5.0\",\n \"terser-webpack-plugin\": \"^4.2.3\",\n \"typescript\": \"^4.0.5\",\n \"url-search-params\": \"^0.10.0\",\n \"webpack\": \"^4.44.2\",\n \"webpack-dev-server\": \"^3.11.0\"\n },\n \"browser\": {\n \"./lib/adapters/http.js\": \"./lib/adapters/xhr.js\"\n },\n \"jsdelivr\": \"dist/axios.min.js\",\n \"unpkg\": \"dist/axios.min.js\",\n \"typings\": \"./index.d.ts\",\n \"dependencies\": {\n \"follow-redirects\": \"^1.14.0\"\n },\n \"bundlesize\": [\n {\n \"path\": \"./dist/axios.min.js\",\n \"threshold\": \"5kB\"\n }\n ]\n}\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildFullPath = require('../core/buildFullPath');\nvar buildURL = require('./../helpers/buildURL');\nvar http = require('http');\nvar https = require('https');\nvar httpFollow = require('follow-redirects').http;\nvar httpsFollow = require('follow-redirects').https;\nvar url = require('url');\nvar zlib = require('zlib');\nvar pkg = require('./../../package.json');\nvar createError = require('../core/createError');\nvar enhanceError = require('../core/enhanceError');\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nmodule.exports = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var resolve = function resolve(value) {\n resolvePromise(value);\n };\n var reject = function reject(value) {\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('User-Agent' in headers || 'user-agent' in headers) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers['User-Agent'] && !headers['user-agent']) {\n delete headers['User-Agent'];\n delete headers['user-agent'];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + pkg.version;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers['Content-Length'] = data.length;\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url.parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth) {\n delete headers.Authorization;\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url.parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n var responseData = Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n\n response.data = responseData;\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n reject(createError(\n 'timeout of ' + timeout + 'ms exceeded',\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(cancel);\n });\n }\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n", "'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n", "'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n", "'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n", "'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n", "'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n", "'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n", "module.exports = require('./lib/axios');", null, null, null, null, null, null, "import { baseInstantTranslate, showExtendedHUD } from \"./instant-translate\";\n\nexport default async function InstantTranslateView() {\n await baseInstantTranslate(async (translatedText) => {\n await showExtendedHUD(translatedText);\n });\n}\n", "import { getPreferenceValues, getSelectedText, showHUD } from \"@raycast/api\";\nimport { simpleTranslate } from \"./simple-translate\";\nimport { LanguageCode } from \"./languages\";\n\n// Reading time per character based on average reading speed of ~200 words per minute\nconst READING_TIME_PER_CHAR_MS = 150;\n\n// HUD display constants\nconst MIN_HUD_DURATION_MS = 2000;\nconst MAX_HUD_DURATION_MS = 15000;\nconst HUD_REFRESH_INTERVAL_MS = 1000;\n\n// Helper function to show HUD for a longer duration based on text length\nexport async function showExtendedHUD(message: string, minDurationMs = MIN_HUD_DURATION_MS) {\n await showHUD(message);\n\n // Calculate duration based on message length\n const calculatedDuration = Math.max(minDurationMs, message.length * READING_TIME_PER_CHAR_MS);\n\n // Cap maximum duration to avoid excessive waiting\n const finalDuration = Math.min(calculatedDuration, MAX_HUD_DURATION_MS);\n\n // Show the same message multiple times with a delay to extend visibility\n const iterations = Math.floor(finalDuration / HUD_REFRESH_INTERVAL_MS);\n\n for (let i = 0; i < iterations; i++) {\n await new Promise((resolve) => setTimeout(resolve, HUD_REFRESH_INTERVAL_MS));\n await showHUD(message);\n }\n}\n\n// Base function for instant translation logic\nexport async function baseInstantTranslate(onTranslated: (translatedText: string) => Promise<void>) {\n try {\n const preferences = getPreferenceValues<ExtensionPreferences>();\n const targetLanguage = preferences.lang2; // Use secondary language as target\n const sourceLanguage = preferences.lang1;\n const proxy = preferences.proxy;\n\n // Get the selected text from any active application\n const selectedText = await getSelectedText().catch((error) => {\n console.error(\"Error getting selected text:\", error);\n return \"\";\n });\n\n if (!selectedText || selectedText.trim().length === 0) {\n await showHUD(\"No text selected. Please select text to translate.\");\n return;\n }\n\n await showHUD(\"Translating...\");\n\n const result = await simpleTranslate(selectedText, {\n langFrom: sourceLanguage as LanguageCode,\n langTo: [targetLanguage as LanguageCode],\n proxy: proxy,\n });\n\n if (result && result.translatedText) {\n const translation = result.translatedText;\n await onTranslated(translation);\n } else {\n throw new Error(\"Translation not found in response\");\n }\n } catch (error) {\n console.error(\"Translation error:\", error);\n await showHUD(\"Translation failed. Please try again.\");\n }\n}\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\nimport querystring from \"querystring\";\nimport { request, ProxyAgent } from \"undici\";\nimport { TranslateOption, TranslateResponse } from \"./types\";\nimport { isSupported, getISOCode } from \"./languages\";\nimport { tokenGenerator } from \"./tokenGenerator\";\n\n/**\n * @function translate\n * @param {String} text The text to be translated.\n * @param {TranslateOption} options The options object for the translator.\n * @returns {TranslateResponse} The result containing the translation.\n */\nexport async function translate(text: string, options?: TranslateOption): Promise<TranslateResponse> {\n if (typeof options !== \"object\") options = {};\n text = String(text);\n\n // Check if a lanugage is in supported; if not, throw an error object.\n let error: Error | null = null;\n [ options.from, options.to ].forEach((lang) => {\n if (lang && !isSupported(lang)) {\n error = new Error();\n error.message = `The language '${lang}' is not supported.`;\n }\n });\n if (error) throw error;\n\n // If options object doesn\"t have \"from\" language, set it to \"auto\".\n if (!Object.prototype.hasOwnProperty.call(options, \"from\")) options.from = \"auto\";\n // If options object doesn\"t have \"to\" language, set it to \"en\".\n if (!Object.prototype.hasOwnProperty.call(options, \"to\")) options.to = \"en\";\n // If options object has a \"raw\" property evaluating to true, set it to true.\n options.raw = Boolean(options.raw);\n\n // Get ISO 639-1 codes for the languages.\n options.from = getISOCode(options.from);\n options.to = getISOCode(options.to);\n\n // Generate Google Translate token for the text to be translated.\n let token: any = await tokenGenerator(text);\n\n // URL & query string required by Google Translate.\n let baseUrl = \"https://translate.google.com/translate_a/single\";\n let data: any = {\n client: \"gtx\",\n sl: options.from,\n tl: options.to,\n hl: options.to,\n dt: [ \"at\", \"bd\", \"ex\", \"ld\", \"md\", \"qca\", \"rw\", \"rm\", \"ss\", \"t\" ],\n ie: \"UTF-8\",\n oe: \"UTF-8\",\n otf: 1,\n ssel: 0,\n tsel: 0,\n kc: 7,\n q: text,\n [token.name]: token.value\n };\n\n // Append query string to the request URL.\n let url = `${baseUrl}?${querystring.stringify(data)}`;\n\n let requestOptions: any;\n let requestUrl = url;\n // If request URL is greater than 2048 characters, use POST method.\n if (url.length > 2048) {\n delete data.q;\n requestUrl = `${baseUrl}?${querystring.stringify(data)}`;\n requestOptions = {\n method: \"POST\",\n body: new URLSearchParams({ q: text }).toString(),\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\",\n },\n };\n if (options.proxy) {\n requestOptions.dispatcher = new ProxyAgent(options.proxy);\n }\n }\n else {\n if (options.proxy) {\n requestOptions = { dispatcher: new ProxyAgent(options.proxy) };\n }\n }\n\n // Request translation from Google Translate.\n let response = await request(requestUrl, requestOptions);\n let body: any = await response.body.json();\n\n let result: TranslateResponse = {\n text: \"\",\n from: {\n language: {\n didYouMean: false,\n iso: \"\"\n },\n text: {\n autoCorrected: false,\n value: \"\",\n didYouMean: false\n }\n },\n raw: \"\"\n };\n\n // If user requested a raw output, add the raw response to the result\n if (options.raw) {\n result.raw = body;\n }\n\n // Parse body and add it to the result object.\n body[0].forEach((obj: any) => {\n if (obj[0]) {\n result.text += obj[0];\n }\n });\n\n if (body[2] === body[8][0][0]) {\n result.from.language.iso = body[2];\n }\n else {\n result.from.language.didYouMean = true;\n result.from.language.iso = body[8][0][0];\n }\n\n if (body[7] && body[7][0]) {\n let str = body[7][0];\n\n str = str.replace(/<b><i>/g, \"[\");\n str = str.replace(/<\\/i><\\/b>/g, \"]\");\n\n result.from.text.value = str;\n\n if (body[7][5] === true) {\n result.from.text.autoCorrected = true;\n }\n else {\n result.from.text.didYouMean = true;\n }\n }\n\n return result;\n}\n", "/**\n * Generated from https://translate.google.com\n *\n * The languages that Google Translate supports (as of 7/5/2020) alongside\n * their ISO 639-1 codes\n * @see https://cloud.google.com/translate/docs/languages\n * @see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n */\n\nexport const languages = {\n \"auto\": \"Auto-Detect\",\n \"ab\": \"Abkhaz\",\n \"ace\": \"Acehnese\",\n \"ach\": \"Acholi\",\n \"aa\": \"Afar\",\n \"af\": \"Afrikaans\",\n \"sq\": \"Albanian\",\n \"alz\": \"Alur\",\n \"am\": \"Amharic\",\n \"ar\": \"Arabic\",\n \"hy\": \"Armenian\",\n \"as\": \"Assamese\",\n \"av\": \"Avar\",\n \"awa\": \"Awadhi\",\n \"ay\": \"Aymara\",\n \"az\": \"Azerbaijani\",\n \"ban\": \"Balinese\",\n \"bal\": \"Baluchi\",\n \"bm\": \"Bambara\",\n \"bci\": \"Baoul\\u00e9\",\n \"ba\": \"Bashkir\",\n \"eu\": \"Basque\",\n \"btx\": \"Batak Karo\",\n \"bts\": \"Batak Simalungun\",\n \"bbc\": \"Batak Toba\",\n \"be\": \"Belarusian\",\n \"bem\": \"Bemba\",\n \"bn\": \"Bengali\",\n \"bew\": \"Betawi\",\n \"bho\": \"Bhojpuri\",\n \"bik\": \"Bikol\",\n \"bs\": \"Bosnian\",\n \"br\": \"Breton\",\n \"bg\": \"Bulgarian\",\n \"bua\": \"Buryat\",\n \"yue\": \"Cantonese\",\n \"ca\": \"Catalan\",\n \"ceb\": \"Cebuano\",\n \"ch\": \"Chamorro\",\n \"ce\": \"Chechen\",\n \"ny\": \"Chichewa\",\n \"zh-CN\": \"Chinese (Simplified)\",\n \"zh-TW\": \"Chinese (Traditional)\",\n \"chk\": \"Chuukese\",\n \"cv\": \"Chuvash\",\n \"co\": \"Corsican\",\n \"crh\": \"Crimean Tatar (Cyrillic)\",\n \"crh-Latn\": \"Crimean Tatar (Latin)\",\n \"hr\": \"Croatian\",\n \"cs\": \"Czech\",\n \"da\": \"Danish\",\n \"fa-AF\": \"Dari\",\n \"dv\": \"Dhivehi\",\n \"din\": \"Dinka\",\n \"doi\": \"Dogri\",\n \"dov\": \"Dombe\",\n \"nl\": \"Dutch\",\n \"dyu\": \"Dyula\",\n \"dz\": \"Dzongkha\",\n \"en\": \"English\",\n \"eo\": \"Esperanto\",\n \"et\": \"Estonian\",\n \"ee\": \"Ewe\",\n \"fo\": \"Faroese\",\n \"fj\": \"Fijian\",\n \"tl\": \"Filipino\",\n \"fi\": \"Finnish\",\n \"fon\": \"Fon\",\n \"fr\": \"French\",\n \"fr-CA\": \"French (Canada)\",\n \"fy\": \"Frisian\",\n \"fur\": \"Friulian\",\n \"ff\": \"Fulani\",\n \"gaa\": \"Ga\",\n \"gl\": \"Galician\",\n \"ka\": \"Georgian\",\n \"de\": \"German\",\n \"el\": \"Greek\",\n \"gn\": \"Guarani\",\n \"gu\": \"Gujarati\",\n \"ht\": \"Haitian Creole\",\n \"cnh\": \"Hakha Chin\",\n \"ha\": \"Hausa\",\n \"haw\": \"Hawaiian\",\n \"iw\": \"Hebrew\",\n \"hil\": \"Hiligaynon\",\n \"hi\": \"Hindi\",\n \"hmn\": \"Hmong\",\n \"hu\": \"Hungarian\",\n \"hrx\": \"Hunsrik\",\n \"iba\": \"Iban\",\n \"is\": \"Icelandic\",\n \"ig\": \"Igbo\",\n \"ilo\": \"Ilocano\",\n \"id\": \"Indonesian\",\n \"iu-Latn\": \"Inuktut (Latin)\",\n \"iu\": \"Inuktut (Syllabics)\",\n \"ga\": \"Irish\",\n \"it\": \"Italian\",\n \"jam\": \"Jamaican Patois\",\n \"ja\": \"Japanese\",\n \"jv\": \"Javanese\",\n \"kac\": \"Jingpo\",\n \"kl\": \"Kalaallisut\",\n \"kn\": \"Kannada\",\n \"kr\": \"Kanuri\",\n \"pam\": \"Kapampangan\",\n \"kk\": \"Kazakh\",\n \"kha\": \"Khasi\",\n \"km\": \"Khmer\",\n \"cgg\": \"Kiga\",\n \"kg\": \"Kikongo\",\n \"rw\": \"Kinyarwanda\",\n \"ktu\": \"Kituba\",\n \"trp\": \"Kokborok\",\n \"kv\": \"Komi\",\n \"gom\": \"Konkani\",\n \"ko\": \"Korean\",\n \"kri\": \"Krio\",\n \"ku\": \"Kurdish (Kurmanji)\",\n \"ckb\": \"Kurdish (Sorani)\",\n \"ky\": \"Kyrgyz\",\n \"lo\": \"Lao\",\n \"ltg\": \"Latgalian\",\n \"la\": \"Latin\",\n \"lv\": \"Latvian\",\n \"lij\": \"Ligurian\",\n \"li\": \"Limburgish\",\n \"ln\": \"Lingala\",\n \"lt\": \"Lithuanian\",\n \"lmo\": \"Lombard\",\n \"lg\": \"Luganda\",\n \"luo\": \"Luo\",\n \"lb\": \"Luxembourgish\",\n \"mk\": \"Macedonian\",\n \"mad\": \"Madurese\",\n \"mai\": \"Maithili\",\n \"mak\": \"Makassar\",\n \"mg\": \"Malagasy\",\n \"ms\": \"Malay\",\n \"ms-Arab\": \"Malay (Jawi)\",\n \"ml\": \"Malayalam\",\n \"mt\": \"Maltese\",\n \"mam\": \"Mam\",\n \"gv\": \"Manx\",\n \"mi\": \"Maori\",\n \"mr\": \"Marathi\",\n \"mh\": \"Marshallese\",\n \"mwr\": \"Marwadi\",\n \"mfe\": \"Mauritian Creole\",\n \"chm\": \"Meadow Mari\",\n \"mni-Mtei\": \"Meiteilon (Manipuri)\",\n \"min\": \"Minang\",\n \"lus\": \"Mizo\",\n \"mn\": \"Mongolian\",\n \"my\": \"Myanmar (Burmese)\",\n \"bm-Nkoo\": \"NKo\",\n \"nhe\": \"Nahuatl (Eastern Huasteca)\",\n \"ndc-ZW\": \"Ndau\",\n \"nr\": \"Ndebele (South)\",\n \"new\": \"Nepalbhasa (Newari)\",\n \"ne\": \"Nepali\",\n \"no\": \"Norwegian\",\n \"nus\": \"Nuer\",\n \"oc\": \"Occitan\",\n \"or\": \"Odia (Oriya)\",\n \"om\": \"Oromo\",\n \"os\": \"Ossetian\",\n \"pag\": \"Pangasinan\",\n \"pap\": \"Papiamento\",\n \"ps\": \"Pashto\",\n \"fa\": \"Persian\",\n \"pl\": \"Polish\",\n \"pt\": \"Portuguese (Brazil)\",\n \"pt-PT\": \"Portuguese (Portugal)\",\n \"pa\": \"Punjabi (Gurmukhi)\",\n \"pa-Arab\": \"Punjabi (Shahmukhi)\",\n \"qu\": \"Quechua\",\n \"kek\": \"Q\\u02bceqchi\\u02bc\",\n \"rom\": \"Romani\",\n \"ro\": \"Romanian\",\n \"rn\": \"Rundi\",\n \"ru\": \"Russian\",\n \"se\": \"Sami (North)\",\n \"sm\": \"Samoan\",\n \"sg\": \"Sango\",\n \"sa\": \"Sanskrit\",\n \"sat-Latn\": \"Santali (Latin)\",\n \"sat\": \"Santali (Ol Chiki)\",\n \"gd\": \"Scots Gaelic\",\n \"nso\": \"Sepedi\",\n \"sr\": \"Serbian\",\n \"st\": \"Sesotho\",\n \"crs\": \"Seychellois Creole\",\n \"shn\": \"Shan\",\n \"sn\": \"Shona\",\n \"scn\": \"Sicilian\",\n \"szl\": \"Silesian\",\n \"sd\": \"Sindhi\",\n \"si\": \"Sinhala\",\n \"sk\": \"Slovak\",\n \"sl\": \"Slovenian\",\n \"so\": \"Somali\",\n \"es\": \"Spanish\",\n \"su\": \"Sundanese\",\n \"sus\": \"Susu\",\n \"sw\": \"Swahili\",\n \"ss\": \"Swati\",\n \"sv\": \"Swedish\",\n \"ty\": \"Tahitian\",\n \"tg\": \"Tajik\",\n \"ber-Latn\": \"Tamazight\",\n \"ber\": \"Tamazight (Tifinagh)\",\n \"ta\": \"Tamil\",\n \"tt\": \"Tatar\",\n \"te\": \"Telugu\",\n \"tet\": \"Tetum\",\n \"th\": \"Thai\",\n \"bo\": \"Tibetan\",\n \"ti\": \"Tigrinya\",\n \"tiv\": \"Tiv\",\n \"tpi\": \"Tok Pisin\",\n \"to\": \"Tongan\",\n \"lua\": \"Tshiluba\",\n \"ts\": \"Tsonga\",\n \"tn\": \"Tswana\",\n \"tcy\": \"Tulu\",\n \"tum\": \"Tumbuka\",\n \"tr\": \"Turkish\",\n \"tk\": \"Turkmen\",\n \"tyv\": \"Tuvan\",\n \"ak\": \"Twi\",\n \"udm\": \"Udmurt\",\n \"uk\": \"Ukrainian\",\n \"ur\": \"Urdu\",\n \"ug\": \"Uyghur\",\n \"uz\": \"Uzbek\",\n \"ve\": \"Venda\",\n \"vec\": \"Venetian\",\n \"vi\": \"Vietnamese\",\n \"war\": \"Waray\",\n \"cy\": \"Welsh\",\n \"wo\": \"Wolof\",\n \"xh\": \"Xhosa\",\n \"sah\": \"Yakut\",\n \"yi\": \"Yiddish\",\n \"yo\": \"Yoruba\",\n \"yua\": \"Yucatec Maya\",\n \"zap\": \"Zapotec\",\n \"zu\": \"Zulu\",\n} as const;\n\n/**\n * Returns the ISO 639-1 code of the desiredLang \u2013 if it is supported by\n * Google Translate\n * @param {string} language The name or the code of the desired language\n * @returns {string|undefined} The ISO 639-1 code of the language or null if the\n * language is not supported\n */\nexport function getISOCode(language: string | undefined) {\n if (!language) return undefined;\n if (language in languages) return language;\n language = language.toLowerCase();\n if (language in languages) return language;\n\n const keys = (Object.keys(languages) as (keyof typeof languages)[]).filter((key) => {\n if (typeof languages[key] !== \"string\") return false;\n\n return languages[key].toLowerCase() === language;\n });\n\n return keys[0] || undefined;\n}\n\n/**\n * Returns true if the desiredLang is supported by Google Translate and false otherwise\n * @param {string} language The ISO 639-1 code or the name of the desired language.\n * @returns {boolean} If the language is supported or not.\n */\nexport function isSupported(language: string | undefined) {\n return Boolean(getISOCode(language));\n}\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\n\nimport { request } from \"undici\";\n\nfunction zr(a: string) {\n let b: any;\n if (null !== yr) b = yr;\n else {\n b = wr(String.fromCharCode(84));\n let c = wr(String.fromCharCode(75));\n b = [ b(), b() ];\n b[1] = c();\n b = (yr = window[b.join(c())] || \"\") || \"\";\n }\n let d: any = wr(String.fromCharCode(116));\n let c: any = wr(String.fromCharCode(107));\n d = [ d(), d() ];\n d[1] = c();\n c = \"&\" + d.join(\"\") + \"=\";\n d = b.split(\".\");\n b = Number(d[0]) || 0;\n\n for (var e: any[] = [], f = 0, g = 0; g < a.length; g++) {\n let l = a.charCodeAt(g);\n 128 > l ? e[f++] = l : (2048 > l ? e[f++] = l >> 6 | 192 : ((l & 64512) == 55296 && g + 1 < a.length && (a.charCodeAt(g + 1) & 64512) == 56320 ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023), e[f++] = l >> 18 | 240, e[f++] = l >> 12 & 63 | 128) : e[f++] = l >> 12 | 224, e[f++] = l >> 6 & 63 | 128), e[f++] = l & 63 | 128);\n }\n let h: number = Number(b);\n for (let f = 0; f < e.length; f++) a += e[f], h = xr(h, \"+-a^+6\");\n h = xr(h, \"+-3^+b+-f\");\n h ^= Number(d[1]) || 0;\n 0 > h && (h = (h & 2147483647) + 2147483648);\n h %= 1E6;\n return c + (a.toString() + \".\" + (h ^ b));\n}\n\nlet yr: string | null = null;\nlet wr = function(a: string) {\n return function() {\n return a;\n };\n};\nlet xr = function(a: number, b: string) {\n for (let c = 0; c < b.length - 2; c += 3) {\n let d = b.charAt(c + 2);\n let e = d >= \"a\" ? d.charCodeAt(0) - 87 : Number(d);\n e = b.charAt(c + 1) == \"+\" ? a >>> e : a << e;\n a = b.charAt(c) == \"+\" ? a + e & 4294967295 : a ^ e;\n }\n return a;\n};\n\nconst config = new Map();\n\nconst window: any = {\n TKK: config.get(\"TKK\") || \"0\"\n};\n\nasync function updateTKK() {\n let now = Math.floor(Date.now() / 3600000);\n\n if (Number(window.TKK.split(\".\")[0]) !== now) {\n const response = await request(\"https://translate.google.com\");\n const body = await response.body.text();\n\n // code will extract something like tkk:'1232135.131231321312', we need only value\n const code = body.match(/tkk:'\\d+.\\d+'/g);\n\n if (code && code.length > 0) {\n // extracting value tkk:'1232135.131231321312', this will extract only token: 1232135.131231321312\n const xt = code[0].split(\":\")[1].replace(/'/g, \"\");\n\n window.TKK = xt;\n config.set(\"TKK\", xt);\n }\n }\n}\n\nexport async function tokenGenerator(text: string) {\n try {\n await updateTKK();\n\n let tk = zr(text);\n tk = tk.replace(\"&tk=\", \"\");\n return { name: \"tk\", value: tk };\n }\n catch (error) {\n return error;\n }\n}\n", "import { translate } from \"../vendor/@iamtraction-translate/src\";\nimport * as googleTTS from \"google-tts-api\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport * as https from \"https\";\nimport * as child_process from \"child_process\";\nimport { existsSync, writeFileSync, unlinkSync } from \"fs\";\nimport { LanguageCode } from \"./languages\";\nimport { LanguageCodeSet } from \"./types\";\nimport { HttpsProxyAgent } from \"https-proxy-agent\";\n\nexport const AUTO_DETECT = \"auto\";\n\nexport type SimpleTranslateResult = {\n originalText: string;\n translatedText: string;\n pronunciationText?: string;\n langFrom: LanguageCode;\n langTo: LanguageCode;\n proxy?: string;\n};\n\nexport class TranslateError extends Error {}\n\nconst extractPronounceTextFromRaw = (raw: string) => {\n return raw?.[0]?.[1]?.[2];\n};\n\nexport async function simpleTranslate(text: string, options: LanguageCodeSet): Promise<SimpleTranslateResult> {\n try {\n if (!text) {\n return {\n originalText: text,\n translatedText: \"\",\n pronunciationText: \"\",\n langFrom: options.langFrom,\n langTo: options.langTo[0],\n };\n }\n\n const translated = await translate(text, {\n from: options.langFrom,\n to: options.langTo[0],\n raw: true,\n proxy: options.proxy,\n });\n\n return {\n originalText: text,\n translatedText: translated.text,\n pronunciationText: extractPronounceTextFromRaw(translated?.raw),\n langFrom: translated?.from?.language?.iso as LanguageCode,\n langTo: options.langTo[0],\n };\n } catch (err) {\n if (err instanceof Error) {\n if (err.name === \"TooManyRequestsError\") {\n const error = new TranslateError();\n error.name = \"Too many requests\";\n error.message = \"please try again later\";\n throw error;\n }\n\n const error = new TranslateError();\n error.name = err.name;\n error.message = err.message;\n throw error;\n }\n\n throw err;\n }\n}\n\nexport async function doubleWayTranslate(text: string, options: LanguageCodeSet) {\n if (!text) {\n return [];\n }\n\n if (options.langFrom === AUTO_DETECT) {\n const translated1 = await simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n proxy: options.proxy,\n });\n\n if (translated1?.langFrom) {\n const translated2 = await simpleTranslate(translated1.translatedText, {\n langFrom: options.langTo[0],\n langTo: [translated1.langFrom],\n proxy: options.proxy,\n });\n\n return [translated1, translated2];\n }\n\n return [];\n } else {\n return await Promise.all([\n simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n proxy: options.proxy,\n }),\n simpleTranslate(text, {\n langFrom: options.langTo[0],\n langTo: [options.langFrom],\n proxy: options.proxy,\n }),\n ]);\n }\n}\n\nexport async function playTTS(text: string, langTo: string, proxy?: string) {\n const audioUrl = googleTTS.getAudioUrl(text, {\n lang: langTo,\n slow: false,\n host: \"https://translate.google.com\",\n });\n\n let agent: HttpsProxyAgent<string> | undefined;\n\n if (proxy) {\n try {\n agent = new HttpsProxyAgent(proxy);\n } catch (e) {\n console.error(`Error creating proxy agent for ${proxy}:`, e);\n agent = undefined; // Fallback to no proxy if agent creation fails\n }\n }\n\n // The options object for https.get. If 'agent' is undefined, it won't be included,\n // and https.get will use the default agent.\n const requestOptions: https.RequestOptions = {\n agent: agent,\n };\n\n https.get(audioUrl, requestOptions, (response) => {\n const chunks: Uint8Array[] = [];\n\n response.on(\"data\", (chunk) => {\n chunks.push(chunk);\n });\n\n response\n .on(\"end\", () => {\n const audioData = Buffer.concat(chunks);\n\n const tempFilePath = path.join(os.tmpdir(), \"translation.mp3\");\n writeFileSync(tempFilePath, audioData);\n\n // Play the audio file using afplay\n const afplayProcess = child_process.spawn(\"afplay\", [tempFilePath]);\n\n afplayProcess.on(\"exit\", (code) => {\n if (code !== 0) {\n console.error(`Error playing audio: afplay exited with code ${code}`);\n }\n if (existsSync(tempFilePath)) {\n unlinkSync(tempFilePath);\n }\n });\n })\n .on(\"error\", (error) => {\n console.error(\"Error downloading audio:\", error);\n });\n });\n}\n"], - "mappings": "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G,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMU,GAAS,CACb,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMM,GAAU,CACd,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEME,GAAiB,CACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG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AAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvDA,EAAWA,EAAWA,EAAWA,EAAWA,EAAWA,EACvD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G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMC,GAAc,CAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EA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,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,kBACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,eACH,MAAO,aACT,IAAK,cACL,IAAK,mBACL,IAAK,SACL,IAAK,aACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,eACL,IAAK,UACH,MAAO,eACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,KACL,IAAK,SACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,KACH,MAAO,cACT,IAAK,cACH,MAAO,cACT,IAAK,UACL,IAAK,MACL,IAAK,OACL,IAAK,SACL,IAAK,SACH,MAAO,SACT,IAAK,UACL,IAAK,SACH,MAAO,SACT,IAAK,cACL,IAAK,MACL,IAAK,YACL,IAAK,cACH,MAAO,YACT,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,UACL,IAAK,cACH,MAAO,cACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,iBACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,cACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACL,IAAK,WACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,I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M,SACN,IAAO,aACP,IAAO,mBACP,IAAO,aACP,GAAM,aACN,IAAO,QACP,GAAM,UACN,IAAO,SACP,IAAO,WACP,IAAO,QACP,GAAM,UACN,GAAM,SACN,GAAM,YACN,IAAO,SACP,IAAO,YACP,GAAM,UACN,IAAO,UACP,GAAM,WACN,GAAM,UACN,GAAM,WACN,QAAS,uBACT,QAAS,wBACT,IAAO,WACP,GAAM,UACN,GAAM,WACN,IAAO,2BACP,WAAY,wBACZ,GAAM,WACN,GAAM,QACN,GAAM,SACN,QAAS,OACT,GAAM,UACN,IAAO,QACP,IAAO,QACP,IAAO,QACP,GAAM,QACN,IAAO,QACP,GAAM,WACN,GAAM,UACN,GAAM,YACN,GAAM,WACN,GAAM,MACN,GAAM,UACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,IAAO,MACP,GAAM,SACN,QAAS,kBACT,GAAM,UACN,IAAO,WACP,GAAM,SACN,IAAO,KACP,GAAM,WACN,GAAM,WACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,iBACN,IAAO,aACP,GAAM,QACN,IAAO,WACP,GAAM,SACN,IAAO,aACP,GAAM,QACN,IAAO,QACP,GAAM,YACN,IAAO,UACP,IAAO,OACP,GAAM,YACN,GAAM,OACN,IAAO,UACP,GAAM,aACN,UAAW,kBACX,GAAM,sBACN,GAAM,QACN,GAAM,UACN,IAAO,kBACP,GAAM,WACN,GAAM,WACN,IAAO,SACP,GAAM,cACN,GAAM,UACN,GAAM,SACN,IAAO,cACP,GAAM,SACN,IAAO,QACP,GAAM,QACN,IAAO,OACP,GAAM,UACN,GAAM,cACN,IAAO,SACP,IAAO,WACP,GAAM,OACN,IAAO,UACP,GAAM,SACN,IAAO,OACP,GAAM,qBACN,IAAO,mBACP,GAAM,SACN,GAAM,MACN,IAAO,YACP,GAAM,QACN,GAAM,UACN,IAAO,WACP,GAAM,aACN,GAAM,UACN,GAAM,aACN,IAAO,UACP,GAAM,UACN,IAAO,MACP,GAAM,gBACN,GAAM,aACN,IAAO,WACP,IAAO,WACP,IAAO,WACP,GAAM,WACN,GAAM,QACN,UAAW,eACX,GAAM,YACN,GAAM,UACN,IAAO,MACP,GAAM,OACN,GAAM,QACN,GAAM,UACN,GAAM,cACN,IAAO,UACP,IAAO,mBACP,IAAO,cACP,WAAY,uBACZ,IAAO,SACP,IAAO,OACP,GAAM,YACN,GAAM,oBACN,UAAW,MACX,IAAO,6BACP,SAAU,OACV,GAAM,kBACN,IAAO,sBACP,GAAM,SACN,GAAM,YACN,IAAO,OACP,GAAM,UACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,IAAO,aACP,IAAO,aACP,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,sBACN,QAAS,wBACT,GAAM,qBACN,UAAW,sBACX,GAAM,UACN,IAAO,qBACP,IAAO,SACP,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,QACN,GAAM,WACN,WAAY,kBACZ,IAAO,qBACP,GAAM,eACN,IAAO,SACP,GAAM,UACN,GAAM,UACN,IAAO,qBACP,IAAO,OACP,GAAM,QACN,IAAO,WACP,IAAO,WACP,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,SACN,GAAM,UACN,GAAM,YACN,IAAO,OACP,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,WAAY,YACZ,IAAO,uBACP,GAAM,QACN,GAAM,QACN,GAAM,SACN,IAAO,QACP,GAAM,OACN,GAAM,UACN,GAAM,WACN,IAAO,MACP,IAAO,YACP,GAAM,SACN,IAAO,WACP,GAAM,SACN,GAAM,SACN,IAAO,OACP,IAAO,UACP,GAAM,UACN,GAAM,UACN,IAAO,QACP,GAAM,MACN,IAAO,SACP,GAAM,YACN,GAAM,OACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,IAAO,WACP,GAAM,aACN,IAAO,QACP,GAAM,QACN,GAAM,QACN,GAAM,QACN,IAAO,QACP,GAAM,UACN,GAAM,SACN,IAAO,eACP,IAAO,UACP,GAAM,MACV,EASO,SAASC,GAAWC,EAA8B,CACrD,OAAKA,EACDA,KAAYF,KAChBE,EAAWA,EAAS,YAAY,EAC5BA,KAAYF,IAAkBE,EAEpB,OAAO,KAAKF,EAAS,EAAiC,OAAQG,GACpE,OAAOH,GAAUG,CAAG,GAAM,SAAiB,GAExCH,GAAUG,CAAG,EAAE,YAAY,IAAMD,CAC3C,EAEW,CAAC,GAAK,OAXH,MAYnB,CAOO,SAASE,GAAYF,EAA8B,CACtD,MAAO,EAAQD,GAAWC,CAAQ,CACtC,CC9RA,IAAAG,GAAwB,SAExB,SAASC,GAAGC,EAAW,CACnB,IAAIC,EACJ,GAAaC,KAAT,KAAaD,EAAIC,OAChB,CACDD,EAAIE,GAAG,GAAuB,EAC9B,IAAIC,EAAID,GAAG,GAAuB,EAClCF,EAAI,CAAEA,EAAE,EAAGA,EAAE,CAAE,EACfA,EAAE,CAAC,EAAIG,EAAE,EACTH,GAAKC,GAAKG,GAAOJ,EAAE,KAAKG,EAAE,CAAC,CAAC,GAAK,KAAO,EAC5C,CACA,IAAIE,EAASH,GAAG,GAAwB,EACpCC,EAASD,GAAG,GAAwB,EACxCG,EAAI,CAAEA,EAAE,EAAGA,EAAE,CAAE,EACfA,EAAE,CAAC,EAAIF,EAAE,EACTA,EAAI,IAAME,EAAE,KAAK,EAAE,EAAI,IACvBA,EAAIL,EAAE,MAAM,GAAG,EACfA,EAAI,OAAOK,EAAE,CAAC,CAAC,GAAK,EAEpB,QAASC,EAAW,CAAC,EAAGC,EAAI,EAAGC,EAAI,EAAGA,EAAIT,EAAE,OAAQS,IAAK,CACrD,IAAIC,EAAIV,EAAE,WAAWS,CAAC,EACtB,IAAMC,EAAIH,EAAEC,GAAG,EAAIE,GAAK,KAAOA,EAAIH,EAAEC,GAAG,EAAIE,GAAK,EAAI,MAAQA,EAAI,QAAU,OAASD,EAAI,EAAIT,EAAE,SAAWA,EAAE,WAAWS,EAAI,CAAC,EAAI,QAAU,OAASC,EAAI,QAAUA,EAAI,OAAS,KAAOV,EAAE,WAAW,EAAES,CAAC,EAAI,MAAOF,EAAEC,GAAG,EAAIE,GAAK,GAAK,IAAKH,EAAEC,GAAG,EAAIE,GAAK,GAAK,GAAK,KAAOH,EAAEC,GAAG,EAAIE,GAAK,GAAK,IAAKH,EAAEC,GAAG,EAAIE,GAAK,EAAI,GAAK,KAAMH,EAAEC,GAAG,EAAIE,EAAI,GAAK,IACjV,CACA,IAAIC,EAAY,OAAOV,CAAC,EACxB,QAASO,EAAI,EAAGA,EAAID,EAAE,OAAQC,IAAKR,GAAKO,EAAEC,CAAC,EAAGG,EAAIC,GAAGD,EAAG,QAAQ,EAChE,OAAAA,EAAIC,GAAGD,EAAG,WAAW,EACrBA,GAAK,OAAOL,EAAE,CAAC,CAAC,GAAK,EACrB,EAAIK,IAAMA,GAAKA,EAAI,YAAc,YACjCA,GAAK,IACEP,GAAKJ,EAAE,SAAS,EAAI,KAAOW,EAAIV,GAC1C,CAEA,IAAIC,GAAoB,KACpBC,GAAK,SAASH,EAAW,CACzB,OAAO,UAAW,CACd,OAAOA,CACX,CACJ,EACIY,GAAK,SAASZ,EAAWC,EAAW,CACpC,QAASG,EAAI,EAAGA,EAAIH,EAAE,OAAS,EAAGG,GAAK,EAAG,CACtC,IAAIE,EAAIL,EAAE,OAAOG,EAAI,CAAC,EAClBG,EAAID,GAAK,IAAMA,EAAE,WAAW,CAAC,EAAI,GAAK,OAAOA,CAAC,EAClDC,EAAIN,EAAE,OAAOG,EAAI,CAAC,GAAK,IAAMJ,IAAMO,EAAIP,GAAKO,EAC5CP,EAAIC,EAAE,OAAOG,CAAC,GAAK,IAAMJ,EAAIO,EAAI,WAAaP,EAAIO,CACtD,CACA,OAAOP,CACX,EAEMa,GAAS,IAAI,IAEbR,GAAc,CAChB,IAAKQ,GAAO,IAAI,KAAK,GAAK,GAC9B,EAEA,eAAeC,IAAY,CACvB,IAAIC,EAAM,KAAK,MAAM,KAAK,IAAI,EAAI,IAAO,EAEzC,GAAI,OAAOV,GAAO,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,IAAMU,EAAK,CAK1C,IAAMC,GAHO,MADI,QAAM,YAAQ,8BAA8B,GACjC,KAAK,KAAK,GAGpB,MAAM,gBAAgB,EAExC,GAAIA,GAAQA,EAAK,OAAS,EAAG,CAEzB,IAAMC,EAAKD,EAAK,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,QAAQ,KAAM,EAAE,EAEjDX,GAAO,IAAMY,EACbJ,GAAO,IAAI,MAAOI,CAAE,CACxB,CACJ,CACJ,CAEA,eAAsBC,GAAeC,EAAc,CAC/C,GAAI,CACA,MAAML,GAAU,EAEhB,IAAIM,EAAKrB,GAAGoB,CAAI,EAChB,OAAAC,EAAKA,EAAG,QAAQ,OAAQ,EAAE,EACnB,CAAE,KAAM,KAAM,MAAOA,CAAG,CACnC,OACOC,EAAO,CACV,OAAOA,CACX,CACJ,CF3EA,eAAsBC,GAAUC,EAAcC,EAAuD,CAC7F,OAAOA,GAAY,WAAUA,EAAU,CAAC,GAC5CD,EAAO,OAAOA,CAAI,EAGlB,IAAIE,EAAsB,KAO1B,GANA,CAAED,EAAQ,KAAMA,EAAQ,EAAG,EAAE,QAASE,GAAS,CACvCA,GAAQ,CAACC,GAAYD,CAAI,IACzBD,EAAQ,IAAI,MACZA,EAAM,QAAU,iBAAiBC,CAAI,sBAE7C,CAAC,EACGD,EAAO,MAAMA,EAGZ,OAAO,UAAU,eAAe,KAAKD,EAAS,MAAM,IAAGA,EAAQ,KAAO,QAEtE,OAAO,UAAU,eAAe,KAAKA,EAAS,IAAI,IAAGA,EAAQ,GAAK,MAEvEA,EAAQ,IAAM,EAAQA,EAAQ,IAG9BA,EAAQ,KAAOI,GAAWJ,EAAQ,IAAI,EACtCA,EAAQ,GAAKI,GAAWJ,EAAQ,EAAE,EAGlC,IAAIK,EAAa,MAAMC,GAAeP,CAAI,EAGtCQ,EAAU,kDACVC,EAAY,CACZ,OAAQ,MACR,GAAIR,EAAQ,KACZ,GAAIA,EAAQ,GACZ,GAAIA,EAAQ,GACZ,GAAI,CAAE,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,GAAI,EACjE,GAAI,QACJ,GAAI,QACJ,IAAK,EACL,KAAM,EACN,KAAM,EACN,GAAI,EACJ,EAAGD,EACH,CAACM,EAAM,IAAI,EAAGA,EAAM,KACxB,EAGII,EAAM,GAAGF,CAAO,IAAI,GAAAG,QAAY,UAAUF,CAAI,CAAC,GAE/CG,EACAC,EAAaH,EAEbA,EAAI,OAAS,MACb,OAAOD,EAAK,EACZI,EAAa,GAAGL,CAAO,IAAI,GAAAG,QAAY,UAAUF,CAAI,CAAC,GACtDG,EAAiB,CACb,OAAQ,OACR,KAAM,IAAI,gBAAgB,CAAE,EAAGZ,CAAK,CAAC,EAAE,SAAS,EAChD,QAAS,CACL,eAAgB,iDACpB,CACJ,EACIC,EAAQ,QACRW,EAAe,WAAa,IAAI,cAAWX,EAAQ,KAAK,IAIxDA,EAAQ,QACRW,EAAiB,CAAE,WAAY,IAAI,cAAWX,EAAQ,KAAK,CAAE,GAMrE,IAAIa,EAAY,MADD,QAAM,YAAQD,EAAYD,CAAc,GACxB,KAAK,KAAK,EAErCG,EAA4B,CAC5B,KAAM,GACN,KAAM,CACF,SAAU,CACN,WAAY,GACZ,IAAK,EACT,EACA,KAAM,CACF,cAAe,GACf,MAAO,GACP,WAAY,EAChB,CACJ,EACA,IAAK,EACT,EAsBA,GAnBId,EAAQ,MACRc,EAAO,IAAMD,GAIjBA,EAAK,CAAC,EAAE,QAASE,GAAa,CACtBA,EAAI,CAAC,IACLD,EAAO,MAAQC,EAAI,CAAC,EAE5B,CAAC,EAEGF,EAAK,CAAC,IAAMA,EAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EACxBC,EAAO,KAAK,SAAS,IAAMD,EAAK,CAAC,GAGjCC,EAAO,KAAK,SAAS,WAAa,GAClCA,EAAO,KAAK,SAAS,IAAMD,EAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAGvCA,EAAK,CAAC,GAAKA,EAAK,CAAC,EAAE,CAAC,EAAG,CACvB,IAAIG,EAAMH,EAAK,CAAC,EAAE,CAAC,EAEnBG,EAAMA,EAAI,QAAQ,UAAW,GAAG,EAChCA,EAAMA,EAAI,QAAQ,cAAe,GAAG,EAEpCF,EAAO,KAAK,KAAK,MAAQE,EAErBH,EAAK,CAAC,EAAE,CAAC,IAAM,GACfC,EAAO,KAAK,KAAK,cAAgB,GAGjCA,EAAO,KAAK,KAAK,WAAa,EAEtC,CAEA,OAAOA,CACX,CGhJA,IAAAG,GAA2B,SAQ3B,IAAAC,GAAgC,SAazB,IAAMC,GAAN,cAA6B,KAAM,CAAC,EAErCC,GAA+BC,GAC5BA,IAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAG1B,eAAsBC,GAAgBC,EAAcC,EAA0D,CAC5G,GAAI,CACF,GAAI,CAACD,EACH,MAAO,CACL,aAAcA,EACd,eAAgB,GAChB,kBAAmB,GACnB,SAAUC,EAAQ,SAClB,OAAQA,EAAQ,OAAO,CAAC,CAC1B,EAGF,IAAMC,EAAa,MAAMC,GAAUH,EAAM,CACvC,KAAMC,EAAQ,SACd,GAAIA,EAAQ,OAAO,CAAC,EACpB,IAAK,GACL,MAAOA,EAAQ,KACjB,CAAC,EAED,MAAO,CACL,aAAcD,EACd,eAAgBE,EAAW,KAC3B,kBAAmBL,GAA4BK,GAAY,GAAG,EAC9D,SAAUA,GAAY,MAAM,UAAU,IACtC,OAAQD,EAAQ,OAAO,CAAC,CAC1B,CACF,OAASG,EAAK,CACZ,GAAIA,aAAe,MAAO,CACxB,GAAIA,EAAI,OAAS,uBAAwB,CACvC,IAAMC,EAAQ,IAAIT,GAClB,MAAAS,EAAM,KAAO,oBACbA,EAAM,QAAU,yBACVA,CACR,CAEA,IAAMA,EAAQ,IAAIT,GAClB,MAAAS,EAAM,KAAOD,EAAI,KACjBC,EAAM,QAAUD,EAAI,QACdC,CACR,CAEA,MAAMD,CACR,CACF,CJlEA,IAAME,GAA2B,IAG3BC,GAAsB,IACtBC,GAAsB,KACtBC,GAA0B,IAGhC,eAAsBC,GAAgBC,EAAiBC,EAAgBL,GAAqB,CAC1F,QAAM,YAAQI,CAAO,EAGrB,IAAME,EAAqB,KAAK,IAAID,EAAeD,EAAQ,OAASL,EAAwB,EAGtFQ,EAAgB,KAAK,IAAID,EAAoBL,EAAmB,EAGhEO,EAAa,KAAK,MAAMD,EAAgBL,EAAuB,EAErE,QAASO,EAAI,EAAGA,EAAID,EAAYC,IAC9B,MAAM,IAAI,QAASC,GAAY,WAAWA,EAASR,EAAuB,CAAC,EAC3E,QAAM,YAAQE,CAAO,CAEzB,CAGA,eAAsBO,GAAqBC,EAAyD,CAClG,GAAI,CACF,IAAMC,KAAc,wBAA0C,EACxDC,EAAiBD,EAAY,MAC7BE,EAAiBF,EAAY,MAC7BG,EAAQH,EAAY,MAGpBI,EAAe,QAAM,oBAAgB,EAAE,MAAOC,IAClD,QAAQ,MAAM,+BAAgCA,CAAK,EAC5C,GACR,EAED,GAAI,CAACD,GAAgBA,EAAa,KAAK,EAAE,SAAW,EAAG,CACrD,QAAM,YAAQ,oDAAoD,EAClE,MACF,CAEA,QAAM,YAAQ,gBAAgB,EAE9B,IAAME,EAAS,MAAMC,GAAgBH,EAAc,CACjD,SAAUF,EACV,OAAQ,CAACD,CAA8B,EACvC,MAAOE,CACT,CAAC,EAED,GAAIG,GAAUA,EAAO,eAAgB,CACnC,IAAME,EAAcF,EAAO,eAC3B,MAAMP,EAAaS,CAAW,CAChC,KACE,OAAM,IAAI,MAAM,mCAAmC,CAEvD,OAASH,EAAO,CACd,QAAQ,MAAM,qBAAsBA,CAAK,EACzC,QAAM,YAAQ,uCAAuC,CACvD,CACF,CDlEA,eAAOI,IAA8C,CACnD,MAAMC,GAAqB,MAAOC,GAAmB,CACnD,MAAMC,GAAgBD,CAAc,CACtC,CAAC,CACH", - "names": ["require_symbols", "__commonJSMin", "exports", "module", "require_errors", "__commonJSMin", "exports", "module", "UndiciError", "message", "ConnectTimeoutError", "_ConnectTimeoutError", "HeadersTimeoutError", "_HeadersTimeoutError", "HeadersOverflowError", "_HeadersOverflowError", "BodyTimeoutError", "_BodyTimeoutError", "ResponseStatusCodeError", "_ResponseStatusCodeError", "statusCode", "headers", "body", "InvalidArgumentError", "_InvalidArgumentError", "InvalidReturnValueError", "_InvalidReturnValueError", "RequestAbortedError", "_RequestAbortedError", "InformationalError", "_InformationalError", "RequestContentLengthMismatchError", "_RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "_ResponseContentLengthMismatchError", "ClientDestroyedError", "_ClientDestroyedError", "ClientClosedError", "_ClientClosedError", "SocketError", "_SocketError", "socket", "NotSupportedError", "_NotSupportedError", "BalancedPoolMissingUpstreamError", "HTTPParserError", "_HTTPParserError", "code", "data", "ResponseExceededMaxSizeError", "_ResponseExceededMaxSizeError", "require_util", "__commonJSMin", "exports", "module", "assert", "kDestroyed", "kBodyUsed", "IncomingMessage", "stream", "net", "InvalidArgumentError", "Blob", "nodeUtil", "stringify", "nodeMajor", "nodeMinor", "v", "nop", "isStream", "obj", "isBlobLike", "object", "buildURL", "url", "queryParams", "stringified", "parseURL", "port", "origin", "path", "parseOrigin", "getHostname", "host", "idx", "getServerName", "servername", "deepClone", "isAsyncIterable", "isIterable", "bodyLength", "body", "state", "isBuffer", "isDestroyed", "isReadableAborted", "destroy", "err", "KEEPALIVE_TIMEOUT_EXPR", "parseKeepAliveTimeout", "val", "m", "parseHeaders", "headers", "i", "key", "parseRawHeaders", "ret", "hasContentLength", "contentDispositionIdx", "n", "buffer", "validateHandler", "handler", "method", "upgrade", "isDisturbed", "isErrored", "isReadable", "getSocketInfo", "socket", "ReadableStream", "ReadableStreamFrom", "iterable", "iterator", "controller", "done", "value", "buf", "reason", "isFormDataLike", "throwIfAborted", "signal", "events", "addAbortListener", "listener", "hasToWellFormed", "toUSVString", "kEnumerableProperty", "require_timers", "__commonJSMin", "exports", "module", "fastNow", "fastNowTimeout", "fastTimers", "onTimeout", "len", "idx", "timer", "refreshTimeout", "Timeout", "callback", "delay", "opaque", "timeout", "require_utils", "__commonJSMin", "exports", "module", "parseContentType", "str", "params", "i", "code", "TOKEN", "type", "subtypeStart", "parseContentTypeParams", "subtype", "name", "nameStart", "value", "valueStart", "escaping", "QDTEXT", "parseDisposition", "defDecoder", "parseDispositionParams", "charset", "charsetStart", "CHARSET", "encode", "EXTENDED_VALUE", "hexUpper", "hexLower", "HEX_VALUES", "byteVal", "convertToUTF8", "getDecoder", "lc", "decoders", "data", "hint", "decode", "basename", "path", "require_sbmh", "__commonJSMin", "exports", "module", "memcmp", "buf1", "pos1", "buf2", "pos2", "num", "i", "SBMH", "needle", "cb", "needleLen", "chunk", "pos", "result", "chunkLen", "feed", "lbSize", "self", "data", "len", "lastNeedleCharPos", "lastNeedleChar", "end", "occ", "lookbehind", "nextPos", "ch", "matchNeedle", "bytesToCutOff", "firstNeedleChar", "lb", "require_multipart", "__commonJSMin", "exports", "module", "Readable", "Writable", "StreamSearch", "basename", "convertToUTF8", "getDecoder", "parseContentType", "parseDisposition", "BUF_CRLF", "BUF_CR", "BUF_DASH", "noop", "MAX_HEADER_PAIRS", "MAX_HEADER_SIZE", "HPARSER_NAME", "HPARSER_PRE_OWS", "HPARSER_VALUE", "HeaderParser", "cb", "chunk", "pos", "end", "start", "done", "code", "TOKEN", "FIELD_VCHAR", "header", "FileStream", "opts", "owner", "n", "ignoreData", "callAndUnsetCb", "self", "err", "nullDecoder", "val", "hint", "Multipart", "cfg", "streamOpts", "boundary", "paramDecoder", "defCharset", "preservePath", "fileOpts", "limits", "fieldSizeLimit", "fileSizeLimit", "filesLimit", "fieldsLimit", "partsLimit", "parts", "fields", "files", "skipPart", "fileSize", "field", "fieldSize", "partCharset", "partEncoding", "partType", "partName", "partTruncated", "hitFilesLimit", "hitFieldsLimit", "hparser", "filename", "disp", "conType", "matchPostBoundary", "ssCb", "isMatch", "data", "isDataSafe", "retrydata", "ret", "writecb", "actualLen", "enc", "checkEndState", "fileStream", "finalcb", "require_urlencoded", "__commonJSMin", "exports", "module", "Writable", "getDecoder", "URLEncoded", "cfg", "streamOpts", "charset", "limits", "conType", "chunk", "enc", "cb", "i", "len", "readPctEnc", "main", "skipKeyBytes", "skipValBytes", "self", "pos", "hexUpper", "HEX_VALUES", "hexLower", "code", "require_lib", "__commonJSMin", "exports", "module", "parseContentType", "getInstance", "cfg", "headers", "conType", "type", "TYPES", "instanceCfg", "typemod", "require_constants", "__commonJSMin", "exports", "module", "MessageChannel", "receiveMessageOnPort", "corsSafeListedMethods", "nullBodyStatus", "redirectStatus", "badPorts", "referrerPolicy", "requestRedirect", "safeMethods", "requestMode", "requestCredentials", "requestCache", "requestBodyHeader", "requestDuplex", "forbiddenMethods", "subresource", "DOMException", "err", "channel", "structuredClone", "value", "options", "require_global", "__commonJSMin", "exports", "module", "globalOrigin", "getGlobalOrigin", "setGlobalOrigin", "newOrigin", "parsedURL", "require_util", "__commonJSMin", "exports", "module", "redirectStatus", "badPorts", "referrerPolicyTokens", "getGlobalOrigin", "performance", "isBlobLike", "toUSVString", "ReadableStreamFrom", "assert", "isUint8Array", "crypto", "responseURL", "response", "urlList", "length", "responseLocationURL", "requestFragment", "location", "isValidHeaderValue", "requestCurrentURL", "request", "requestBadPort", "url", "urlIsHttpHttpsScheme", "isErrorLike", "object", "isValidReasonPhrase", "statusText", "i", "c", "isTokenChar", "isValidHTTPToken", "characters", "isValidHeaderName", "potentialValue", "setRequestReferrerPolicyOnRedirect", "actualResponse", "headersList", "policyHeader", "policy", "token", "crossOriginResourcePolicyCheck", "corsCheck", "TAOCheck", "appendFetchMetadata", "httpRequest", "header", "appendRequestOriginHeader", "serializedOrigin", "urlHasHttpsScheme", "sameOrigin", "coarsenedSharedCurrentTime", "crossOriginIsolatedCapability", "createOpaqueTimingInfo", "timingInfo", "makePolicyContainer", "clonePolicyContainer", "policyContainer", "determineRequestsReferrer", "referrerSource", "globalOrigin", "referrerURL", "stripURLForReferrer", "referrerOrigin", "areSameOrigin", "isNonPotentiallyTrustWorthy", "isURLPotentiallyTrustworthy", "currentURL", "originOnly", "isOriginPotentiallyTrustworthy", "origin", "originAsURL", "bytesMatch", "bytes", "metadataList", "parsedMetadata", "parseMetadata", "list", "d", "strongest", "metadata", "item", "algorithm", "expectedValue", "parseHashWithOptions", "result", "empty", "supportedHashes", "parsedToken", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "B", "createDeferredPromise", "res", "rej", "resolve", "reject", "isAborted", "fetchParams", "isCancelled", "normalizeMethod", "method", "serializeJavascriptValueToJSONString", "value", "esIteratorPrototype", "makeIterator", "iterator", "name", "kind", "index", "target", "values", "len", "pair", "iteratorResult", "fullyReadBody", "body", "processBody", "processBodyError", "successSteps", "errorSteps", "error", "reader", "e", "readAllBytes", "ReadableStream", "isReadableStreamLike", "stream", "MAXIMUM_ARGUMENT_LENGTH", "isomorphicDecode", "input", "previous", "current", "readableStreamClose", "controller", "err", "isomorphicEncode", "failureSteps", "byteLength", "done", "chunk", "urlIsLocal", "protocol", "hasOwn", "dict", "key", "require_symbols", "__commonJSMin", "exports", "module", "require_webidl", "__commonJSMin", "exports", "module", "types", "hasOwn", "toUSVString", "webidl", "message", "context", "plural", "V", "I", "opts", "length", "min", "ctx", "bitLength", "signedness", "upperBound", "lowerBound", "x", "n", "r", "converter", "method", "seq", "done", "value", "keyConverter", "valueConverter", "O", "result", "keys", "key", "typedKey", "typedValue", "i", "converters", "dictionary", "type", "dict", "options", "defaultValue", "required", "hasDefault", "index", "charCode", "T", "require_dataURL", "__commonJSMin", "exports", "module", "assert", "atob", "isomorphicDecode", "encoder", "HTTP_TOKEN_CODEPOINTS", "HTTP_WHITESPACE_REGEX", "HTTP_QUOTED_STRING_TOKENS", "dataURLProcessor", "dataURL", "input", "URLSerializer", "position", "mimeType", "collectASequenceOfCodePointsFast", "mimeTypeLength", "removeASCIIWhitespace", "encodedBody", "body", "stringPercentDecode", "stringBody", "forgivingBase64", "mimeTypeRecord", "parseMIMEType", "url", "excludeFragment", "href", "hash", "collectASequenceOfCodePoints", "condition", "result", "char", "idx", "start", "bytes", "percentDecode", "output", "i", "byte", "nextTwoBytes", "bytePoint", "removeHTTPWhitespace", "type", "subtype", "typeLowercase", "subtypeLowercase", "parameterName", "parameterValue", "collectAnHTTPQuotedString", "data", "binary", "extractValue", "positionStart", "value", "quoteOrBackslash", "serializeAMimeType", "parameters", "essence", "serialization", "name", "isHTTPWhiteSpace", "str", "leading", "trailing", "lead", "trail", "isASCIIWhitespace", "require_file", "__commonJSMin", "exports", "module", "Blob", "NativeFile", "types", "kState", "isBlobLike", "webidl", "parseMIMEType", "serializeAMimeType", "kEnumerableProperty", "File", "_File", "fileBits", "fileName", "options", "n", "t", "d", "substep", "processBlobParts", "FileLike", "_FileLike", "blobLike", "args", "V", "opts", "value", "parts", "bytes", "element", "convertLineEndingsNative", "s", "nativeLineEnding", "isFileLike", "object", "require_formdata", "__commonJSMin", "exports", "module", "isBlobLike", "toUSVString", "makeIterator", "kState", "UndiciFile", "FileLike", "isFileLike", "webidl", "Blob", "NativeFile", "File", "FormData", "_FormData", "form", "name", "value", "filename", "entry", "makeEntry", "idx", "pair", "callbackFn", "thisArg", "key", "options", "require_body", "__commonJSMin", "exports", "module", "Busboy", "util", "ReadableStreamFrom", "isBlobLike", "isReadableStreamLike", "readableStreamClose", "createDeferredPromise", "fullyReadBody", "FormData", "kState", "webidl", "DOMException", "structuredClone", "Blob", "NativeFile", "kBodyUsed", "assert", "isErrored", "isUint8Array", "isArrayBuffer", "UndiciFile", "parseMIMEType", "serializeAMimeType", "ReadableStream", "File", "extractBody", "object", "keepalive", "stream", "controller", "source", "action", "length", "type", "boundary", "prefix", "escape", "str", "normalizeLinefeeds", "value", "enc", "blobParts", "rn", "hasUnknownSizeValue", "name", "chunk", "part", "iterator", "done", "reason", "safelyExtractBody", "cloneBody", "body", "out1", "out2", "out2Clone", "finalClone", "consumeBody", "throwIfAborted", "state", "bodyMixinMethods", "instance", "specConsumeBody", "bytes", "mimeType", "bodyMimeType", "utf8DecodeBytes", "parseJSONFromBytes", "contentType", "headers", "key", "responseFormData", "busboy", "err", "info", "filename", "encoding", "chunks", "base64chunk", "end", "busboyResolve", "resolve", "reject", "entries", "text", "textDecoder", "formData", "mixinBody", "prototype", "convertBytesToJSValue", "bodyUnusable", "promise", "errorSteps", "error", "successSteps", "data", "e", "buffer", "headersList", "require_request", "__commonJSMin", "exports", "module", "InvalidArgumentError", "NotSupportedError", "assert", "util", "tokenRegExp", "headerCharRegex", "invalidPathRegex", "kHandler", "channels", "extractBody", "diagnosticsChannel", "Request", "origin", "path", "method", "body", "headers", "query", "idempotent", "blocking", "upgrade", "headersTimeout", "bodyTimeout", "reset", "throwOnError", "handler", "i", "processHeader", "keys", "key", "bodyStream", "contentType", "chunk", "err", "abort", "statusCode", "resume", "statusText", "socket", "trailers", "error", "value", "processHeaderValue", "val", "request", "require_dispatcher", "__commonJSMin", "exports", "module", "EventEmitter", "Dispatcher", "require_dispatcher_base", "__commonJSMin", "exports", "module", "Dispatcher", "ClientDestroyedError", "ClientClosedError", "InvalidArgumentError", "kDestroy", "kClose", "kDispatch", "kInterceptors", "kDestroyed", "kClosed", "kOnDestroyed", "kOnClosed", "kInterceptedDispatch", "DispatcherBase", "newInterceptors", "i", "callback", "resolve", "reject", "err", "data", "onClosed", "callbacks", "onDestroyed", "opts", "handler", "dispatch", "require_connect", "__commonJSMin", "exports", "module", "net", "assert", "util", "InvalidArgumentError", "ConnectTimeoutError", "tls", "SessionCache", "maxCachedSessions", "key", "ref", "sessionKey", "session", "oldestKey", "buildConnector", "socketPath", "timeout", "opts", "options", "sessionCache", "hostname", "host", "protocol", "port", "servername", "localAddress", "httpSocket", "callback", "socket", "keepAliveInitialDelay", "cancelTimeout", "setupTimeout", "onConnectTimeout", "cb", "err", "s1", "s2", "timeoutId", "enumToMap", "obj", "res", "key", "value", "exports", "utils_1", "ERROR", "exports", "TYPE", "FLAGS", "LENIENT_FLAGS", "METHODS", "key", "FINISH", "i", "c", "HEADER_STATE", "require_RedirectHandler", "__commonJSMin", "exports", "module", "util", "kBodyUsed", "assert", "InvalidArgumentError", "EE", "redirectableStatusCodes", "kBody", "BodyAsyncIterable", "body", "RedirectHandler", "dispatch", "maxRedirections", "opts", "handler", "abort", "statusCode", "headers", "socket", "error", "resume", "statusText", "parseLocation", "origin", "pathname", "search", "path", "cleanRequestHeaders", "chunk", "trailers", "i", "shouldRemoveHeader", "header", "removeContent", "unknownOrigin", "ret", "key", "require_redirectInterceptor", "__commonJSMin", "exports", "module", "RedirectHandler", "createRedirectInterceptor", "defaultMaxRedirections", "dispatch", "opts", "handler", "maxRedirections", "redirectHandler", "require_llhttp_wasm", "__commonJSMin", "exports", "module", "require_llhttp_simd_wasm", "__commonJSMin", "exports", "module", "require_client", "__commonJSMin", "exports", "module", "assert", "net", "util", "timers", "Request", "DispatcherBase", "RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "InvalidArgumentError", "RequestAbortedError", "HeadersTimeoutError", "HeadersOverflowError", "SocketError", "InformationalError", "BodyTimeoutError", "HTTPParserError", "ResponseExceededMaxSizeError", "ClientDestroyedError", "buildConnector", "kUrl", "kReset", "kServerName", "kClient", "kBusy", "kParser", "kConnect", "kBlocking", "kResuming", "kRunning", "kPending", "kSize", "kWriting", "kQueue", "kConnected", "kConnecting", "kNeedDrain", "kNoRef", "kKeepAliveDefaultTimeout", "kHostHeader", "kPendingIdx", "kRunningIdx", "kError", "kPipelining", "kSocket", "kKeepAliveTimeoutValue", "kMaxHeadersSize", "kKeepAliveMaxTimeout", "kKeepAliveTimeoutThreshold", "kHeadersTimeout", "kBodyTimeout", "kStrictContentLength", "kConnector", "kMaxRedirections", "kMaxRequests", "kCounter", "kClose", "kDestroy", "kDispatch", "kInterceptors", "kLocalAddress", "kMaxResponseSize", "FastBuffer", "kClosedResolve", "channels", "diagnosticsChannel", "Client", "url", "interceptors", "maxHeaderSize", "headersTimeout", "socketTimeout", "requestTimeout", "connectTimeout", "bodyTimeout", "idleTimeout", "keepAlive", "keepAliveTimeout", "maxKeepAliveTimeout", "keepAliveMaxTimeout", "keepAliveTimeoutThreshold", "socketPath", "pipelining", "tls", "strictContentLength", "maxCachedSessions", "maxRedirections", "connect", "maxRequestsPerClient", "localAddress", "maxResponseSize", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "createRedirectInterceptor", "value", "resume", "socket", "cb", "opts", "handler", "origin", "request", "resolve", "err", "requests", "i", "errorRequest", "callback", "constants", "EMPTY_BUF", "lazyllhttp", "llhttpWasmData", "mod", "p", "at", "len", "currentParser", "start", "currentBufferPtr", "currentBufferRef", "statusCode", "upgrade", "shouldKeepAlive", "llhttpInstance", "llhttpPromise", "currentBufferSize", "TIMEOUT_HEADERS", "TIMEOUT_BODY", "TIMEOUT_IDLE", "Parser", "client", "type", "onParserTimeout", "chunk", "data", "llhttp", "ret", "offset", "ptr", "message", "buf", "key", "head", "headers", "onSocketError", "onSocketReadable", "onSocketEnd", "onSocketClose", "statusText", "timeout", "pause", "contentLength", "bytesRead", "parser", "timeoutType", "onError", "host", "hostname", "protocol", "port", "idx", "ip", "reject", "emitDrain", "sync", "_resume", "write", "body", "method", "path", "blocking", "reset", "expectsPayload", "header", "writeIterable", "writeBlob", "writeStream", "finished", "writer", "AsyncWriter", "onData", "onDrain", "onAbort", "onFinished", "er", "buffer", "waitForDrain", "bytesWritten", "require_fixed_queue", "__commonJSMin", "exports", "module", "FixedCircularBuffer", "data", "nextItem", "tail", "next", "require_pool_stats", "__commonJSMin", "exports", "module", "kFree", "kConnected", "kPending", "kQueued", "kRunning", "kSize", "kPool", "PoolStats", "pool", "require_pool_base", "__commonJSMin", "exports", "module", "DispatcherBase", "FixedQueue", "kConnected", "kSize", "kRunning", "kPending", "kQueued", "kBusy", "kFree", "kUrl", "kClose", "kDestroy", "kDispatch", "PoolStats", "kClients", "kNeedDrain", "kQueue", "kClosedResolve", "kOnDrain", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kGetDispatcher", "kAddClient", "kRemoveClient", "kStats", "PoolBase", "pool", "origin", "targets", "queue", "needDrain", "item", "c", "err", "client", "ret", "pending", "running", "size", "resolve", "opts", "handler", "dispatcher", "idx", "require_pool", "__commonJSMin", "exports", "module", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kGetDispatcher", "Client", "InvalidArgumentError", "util", "kUrl", "kInterceptors", "buildConnector", "kOptions", "kConnections", "kFactory", "defaultFactory", "origin", "opts", "Pool", "connections", "factory", "connect", "connectTimeout", "tls", "maxCachedSessions", "socketPath", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "options", "dispatcher", "require_balanced_pool", "__commonJSMin", "exports", "module", "BalancedPoolMissingUpstreamError", "InvalidArgumentError", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kRemoveClient", "kGetDispatcher", "Pool", "kUrl", "kInterceptors", "parseOrigin", "kFactory", "kOptions", "kGreatestCommonDivisor", "kCurrentWeight", "kIndex", "kWeight", "kMaxWeightPerServer", "kErrorPenalty", "getGreatestCommonDivisor", "a", "b", "defaultFactory", "origin", "opts", "BalancedPool", "upstreams", "factory", "upstream", "upstreamOrigin", "pool", "args", "err", "client", "p", "dispatcher", "counter", "maxWeightIndex", "require_dispatcher_weakref", "__commonJSMin", "exports", "module", "kConnected", "kSize", "CompatWeakRef", "value", "CompatFinalizer", "finalizer", "dispatcher", "key", "require_agent", "__commonJSMin", "exports", "module", "InvalidArgumentError", "kClients", "kRunning", "kClose", "kDestroy", "kDispatch", "kInterceptors", "DispatcherBase", "Pool", "Client", "util", "createRedirectInterceptor", "WeakRef", "FinalizationRegistry", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kMaxRedirections", "kOnDrain", "kFactory", "kFinalizer", "kOptions", "defaultFactory", "origin", "opts", "Agent", "factory", "maxRedirections", "connect", "options", "key", "ref", "agent", "targets", "err", "ret", "client", "handler", "dispatcher", "closePromises", "destroyPromises", "require_readable", "__commonJSMin", "exports", "module", "assert", "Readable", "RequestAbortedError", "NotSupportedError", "InvalidArgumentError", "util", "ReadableStreamFrom", "toUSVString", "Blob", "kConsume", "kReading", "kBody", "kAbort", "kContentType", "resume", "abort", "contentType", "highWaterMark", "err", "ev", "args", "ret", "chunk", "consumePush", "consume", "opts", "limit", "signal", "abortFn", "signalListenerCleanup", "isLocked", "self", "isUnusable", "stream", "type", "resolve", "reject", "consumeFinish", "consumeStart", "state", "consumeEnd", "body", "length", "dst", "pos", "buf", "require_util", "__commonJSMin", "exports", "module", "assert", "ResponseStatusCodeError", "toUSVString", "getResolveErrorBodyCallback", "callback", "body", "contentType", "statusCode", "statusMessage", "headers", "chunks", "limit", "chunk", "payload", "require_abort_signal", "__commonJSMin", "exports", "module", "addAbortListener", "RequestAbortedError", "kListener", "kSignal", "abort", "self", "addSignal", "signal", "removeSignal", "require_api_request", "__commonJSMin", "exports", "module", "Readable", "InvalidArgumentError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "RequestHandler", "opts", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "highWaterMark", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "contentType", "chunk", "res", "trailers", "request", "resolve", "reject", "data", "require_api_stream", "__commonJSMin", "exports", "module", "finished", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "StreamHandler", "opts", "factory", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "res", "contentType", "trailers", "chunk", "stream", "resolve", "reject", "data", "require_api_pipeline", "__commonJSMin", "exports", "module", "Readable", "Duplex", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "AsyncResource", "addSignal", "removeSignal", "assert", "kResume", "PipelineRequest", "resume", "err", "callback", "PipelineResponse", "PipelineHandler", "opts", "handler", "signal", "method", "opaque", "onInfo", "responseHeaders", "body", "chunk", "encoding", "req", "res", "ret", "abort", "context", "statusCode", "rawHeaders", "headers", "trailers", "pipeline", "pipelineHandler", "require_api_upgrade", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "assert", "UpgradeHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "upgrade", "resolve", "reject", "data", "upgradeHandler", "require_api_connect", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "ConnectHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "connect", "resolve", "reject", "data", "connectHandler", "require_api", "__commonJSMin", "exports", "module", "require_mock_errors", "__commonJSMin", "exports", "module", "UndiciError", "MockNotMatchedError", "_MockNotMatchedError", "message", "require_mock_symbols", "__commonJSMin", "exports", "module", "require_mock_utils", "__commonJSMin", "exports", "module", "MockNotMatchedError", "kDispatches", "kMockAgent", "kOriginalDispatch", "kOrigin", "kGetNetConnect", "buildURL", "nop", "STATUS_CODES", "isPromise", "matchValue", "match", "value", "lowerCaseEntries", "headers", "headerName", "headerValue", "getHeaderByName", "key", "i", "buildHeadersFromArray", "clone", "entries", "index", "matchHeaders", "mockDispatch", "matchHeaderName", "matchHeaderValue", "safeUrl", "path", "pathSegments", "qp", "matchKey", "method", "body", "pathMatch", "methodMatch", "bodyMatch", "headersMatch", "getResponseData", "data", "getMockDispatch", "mockDispatches", "basePath", "resolvedPath", "matchedMockDispatches", "consumed", "addMockDispatch", "baseData", "replyData", "newMockDispatch", "deleteMockDispatch", "dispatch", "buildKey", "opts", "query", "generateKeyValues", "keyValuePairs", "x", "getStatusText", "statusCode", "getResponse", "buffers", "handler", "trailers", "error", "delay", "persist", "timesInvoked", "times", "handleReply", "_data", "optsHeaders", "newData", "responseData", "responseHeaders", "responseTrailers", "resume", "buildMockDispatch", "agent", "origin", "originalDispatch", "netConnect", "checkNetConnect", "url", "matcher", "buildMockOptions", "mockOptions", "require_mock_interceptor", "__commonJSMin", "exports", "module", "getResponseData", "buildKey", "addMockDispatch", "kDispatches", "kDispatchKey", "kDefaultHeaders", "kDefaultTrailers", "kContentLength", "kMockDispatch", "InvalidArgumentError", "buildURL", "MockScope", "mockDispatch", "waitInMs", "repeatTimes", "MockInterceptor", "opts", "mockDispatches", "parsedURL", "statusCode", "data", "responseOptions", "responseData", "contentLength", "headers", "trailers", "replyData", "wrappedDefaultsCallback", "resolvedData", "newMockDispatch", "dispatchData", "error", "require_mock_client", "__commonJSMin", "exports", "module", "promisify", "Client", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockClient", "origin", "opts", "require_mock_pool", "__commonJSMin", "exports", "module", "promisify", "Pool", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockPool", "origin", "opts", "require_pluralizer", "__commonJSMin", "exports", "module", "singulars", "plurals", "singular", "plural", "count", "one", "keys", "noun", "require_pending_interceptors_formatter", "__commonJSMin", "exports", "module", "Transform", "Console", "disableColors", "chunk", "_enc", "cb", "pendingInterceptors", "withPrettyHeaders", "method", "path", "statusCode", "persist", "times", "timesInvoked", "origin", "require_mock_agent", "__commonJSMin", "exports", "module", "kClients", "Agent", "kAgent", "kMockAgentSet", "kMockAgentGet", "kDispatches", "kIsMockActive", "kNetConnect", "kGetNetConnect", "kOptions", "kFactory", "MockClient", "MockPool", "matchValue", "buildMockOptions", "InvalidArgumentError", "UndiciError", "Dispatcher", "Pluralizer", "PendingInterceptorsFormatter", "FakeWeakRef", "value", "MockAgent", "opts", "agent", "origin", "dispatcher", "handler", "matcher", "mockOptions", "ref", "keyMatcher", "nonExplicitRef", "nonExplicitDispatcher", "mockAgentClients", "scope", "dispatch", "pending", "pendingInterceptorsFormatter", "pluralizer", "require_proxy_agent", "__commonJSMin", "exports", "module", "kProxy", "kClose", "kDestroy", "kInterceptors", "URL", "Agent", "Pool", "DispatcherBase", "InvalidArgumentError", "RequestAbortedError", "buildConnector", "kAgent", "kClient", "kProxyHeaders", "kRequestTls", "kProxyTls", "kConnectEndpoint", "defaultProtocolPort", "protocol", "buildProxyOptions", "opts", "defaultFactory", "origin", "ProxyAgent", "clientFactory", "resolvedUrl", "port", "host", "connect", "callback", "requestedHost", "socket", "statusCode", "servername", "err", "handler", "headers", "buildHeaders", "throwIfProxyAuthIsSent", "headersPair", "i", "key", "require_global", "__commonJSMin", "exports", "module", "globalDispatcher", "InvalidArgumentError", "Agent", "getGlobalDispatcher", "setGlobalDispatcher", "agent", "require_DecoratorHandler", "__commonJSMin", "exports", "module", "handler", "args", "require_headers", "__commonJSMin", "exports", "module", "kHeadersList", "kGuard", "kEnumerableProperty", "makeIterator", "isValidHeaderName", "isValidHeaderValue", "webidl", "assert", "kHeadersMap", "kHeadersSortedMap", "headerValueNormalize", "potentialValue", "i", "fill", "headers", "object", "header", "key", "value", "HeadersList", "_HeadersList", "init", "name", "lowercaseName", "exists", "delimiter", "Headers", "_Headers", "list", "names", "a", "b", "cookies", "callbackFn", "thisArg", "V", "require_response", "__commonJSMin", "exports", "module", "Headers", "HeadersList", "fill", "extractBody", "cloneBody", "mixinBody", "util", "kEnumerableProperty", "isValidReasonPhrase", "isCancelled", "isAborted", "isBlobLike", "serializeJavascriptValueToJSONString", "isErrorLike", "isomorphicEncode", "redirectStatus", "nullBodyStatus", "DOMException", "kState", "kHeaders", "kGuard", "kRealm", "webidl", "FormData", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "types", "ReadableStream", "Response", "_Response", "relevantRealm", "responseObject", "makeNetworkError", "data", "init", "bytes", "body", "initializeResponse", "url", "status", "parsedURL", "err", "value", "makeResponse", "bodyWithType", "extractedBody", "type", "urlList", "clonedResponse", "cloneResponse", "clonedResponseObject", "response", "filterResponse", "newResponse", "reason", "isError", "makeFilteredResponse", "state", "target", "p", "makeAppropriateNetworkError", "fetchParams", "V", "require_request", "__commonJSMin", "exports", "module", "extractBody", "mixinBody", "cloneBody", "Headers", "fillHeaders", "HeadersList", "FinalizationRegistry", "util", "isValidHTTPToken", "sameOrigin", "normalizeMethod", "makePolicyContainer", "forbiddenMethods", "corsSafeListedMethods", "referrerPolicy", "requestRedirect", "requestMode", "requestCredentials", "requestCache", "requestDuplex", "kEnumerableProperty", "kHeaders", "kSignal", "kState", "kGuard", "kRealm", "webidl", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "getMaxListeners", "setMaxListeners", "getEventListeners", "defaultMaxListeners", "TransformStream", "kInit", "kAbortController", "requestFinalizer", "signal", "abort", "Request", "_Request", "input", "init", "request", "fallbackMode", "baseUrl", "parsedURL", "err", "makeRequest", "origin", "window", "referrer", "parsedReferrer", "mode", "method", "ac", "acRef", "headers", "key", "val", "inputBody", "initBody", "extractedBody", "contentType", "inputOrInitBody", "finalBody", "identityTransform", "clonedRequest", "cloneRequest", "clonedRequestObject", "newRequest", "V", "require_fetch", "__commonJSMin", "exports", "module", "Response", "makeNetworkError", "makeAppropriateNetworkError", "filterResponse", "makeResponse", "Headers", "Request", "makeRequest", "zlib", "bytesMatch", "makePolicyContainer", "clonePolicyContainer", "requestBadPort", "TAOCheck", "appendRequestOriginHeader", "responseLocationURL", "requestCurrentURL", "setRequestReferrerPolicyOnRedirect", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "createOpaqueTimingInfo", "appendFetchMetadata", "corsCheck", "crossOriginResourcePolicyCheck", "determineRequestsReferrer", "coarsenedSharedCurrentTime", "createDeferredPromise", "isBlobLike", "sameOrigin", "isCancelled", "isAborted", "isErrorLike", "fullyReadBody", "readableStreamClose", "isomorphicEncode", "urlIsLocal", "urlIsHttpHttpsScheme", "urlHasHttpsScheme", "kState", "kHeaders", "kGuard", "kRealm", "assert", "safelyExtractBody", "redirectStatus", "nullBodyStatus", "safeMethods", "requestBodyHeader", "subresource", "DOMException", "kHeadersList", "EE", "Readable", "pipeline", "addAbortListener", "isErrored", "isReadable", "nodeMajor", "nodeMinor", "dataURLProcessor", "serializeAMimeType", "TransformStream", "getGlobalDispatcher", "webidl", "STATUS_CODES", "resolveObjectURL", "ReadableStream", "Fetch", "dispatcher", "reason", "error", "fetch", "input", "init", "p", "requestObject", "e", "request", "abortFetch", "responseObject", "relevantRealm", "locallyAborted", "controller", "fetching", "response", "finalizeAndReportTiming", "initiatorType", "originalURL", "timingInfo", "cacheState", "markResourceTiming", "globalThis", "err", "processRequestBodyChunkLength", "processRequestEndOfBody", "processResponse", "processResponseEndOfBody", "processResponseConsumeBody", "useParallelQueue", "taskDestination", "crossOriginIsolatedCapability", "currenTime", "fetchParams", "mainFetch", "recursive", "currentURL", "schemeFetch", "httpFetch", "internalResponse", "processBodyError", "fetchFinale", "processBody", "bytes", "scheme", "blobURLEntry", "blobURLEntryObject", "bodyWithType", "body", "length", "type", "dataURLStruct", "mimeType", "finalizeResponse", "identityTransformAlgorithm", "chunk", "transformStream", "nullOrBytes", "failure", "actualResponse", "httpNetworkOrCacheFetch", "httpRedirectFetch", "locationURL", "headerName", "isAuthenticationFetch", "isNewConnectionFetch", "httpFetchParams", "httpRequest", "httpCache", "revalidatingFlag", "includeCredentials", "contentLength", "contentLengthHeaderValue", "forwardResponse", "httpNetworkFetch", "forceNewConnection", "newConnection", "requestBody", "processBodyChunk", "processEndOfBody", "status", "statusText", "headersList", "socket", "dispatch", "iterator", "pullAlgorithm", "cancelAlgorithm", "stream", "onAborted", "isFailure", "done", "value", "url", "agent", "resolve", "reject", "abort", "connection", "resume", "codings", "location", "headers", "n", "key", "val", "x", "decoders", "willFollow", "coding", "require_symbols", "__commonJSMin", "exports", "module", "require_progressevent", "__commonJSMin", "exports", "module", "webidl", "kState", "ProgressEvent", "_ProgressEvent", "type", "eventInitDict", "require_encoding", "__commonJSMin", "exports", "module", "getEncoding", "label", "require_util", "__commonJSMin", "exports", "module", "kState", "kError", "kResult", "kAborted", "kLastProgressEventFired", "ProgressEvent", "getEncoding", "DOMException", "serializeAMimeType", "parseMIMEType", "types", "StringDecoder", "btoa", "staticPropertyDescriptors", "readOperation", "fr", "blob", "type", "encodingName", "reader", "bytes", "chunkPromise", "isFirstChunk", "done", "value", "fireAProgressEvent", "result", "packageData", "error", "e", "event", "mimeType", "dataURL", "parsed", "decoder", "chunk", "encoding", "decode", "combineByteSequences", "binaryString", "ioQueue", "BOMEncoding", "BOMSniffing", "slice", "sliced", "a", "b", "c", "sequences", "size", "offset", "require_filereader", "__commonJSMin", "exports", "module", "staticPropertyDescriptors", "readOperation", "fireAProgressEvent", "kState", "kError", "kResult", "kEvents", "kAborted", "webidl", "kEnumerableProperty", "FileReader", "_FileReader", "blob", "encoding", "fn", "require_symbols", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "URLSerializer", "isValidHeaderName", "urlEquals", "B", "excludeFragment", "serializedA", "serializedB", "fieldValues", "header", "values", "value", "require_cache", "__commonJSMin", "exports", "module", "kConstruct", "urlEquals", "getFieldValues", "kEnumerableProperty", "isDisturbed", "kHeadersList", "webidl", "Response", "cloneResponse", "Request", "kState", "kHeaders", "kGuard", "kRealm", "fetching", "urlIsHttpHttpsScheme", "createDeferredPromise", "readAllBytes", "assert", "getGlobalDispatcher", "Cache", "_Cache", "#relevantRequestResponseList", "request", "options", "p", "responses", "requestResponse", "requestResponses", "#queryCache", "responseList", "response", "responseObject", "body", "requests", "responsePromises", "requestList", "r", "fetchControllers", "responsePromise", "fieldValues", "fieldValue", "controller", "operations", "index", "operation", "cacheJobPromise", "errorData", "#batchCacheOperations", "e", "innerRequest", "innerResponse", "clonedResponse", "bodyReadPromise", "reader", "bytes", "error", "promise", "requestObject", "cache", "backupCache", "addedItems", "resultList", "idx", "requestQuery", "targetStorage", "storage", "cachedRequest", "cachedResponse", "#requestMatchesCachedItem", "queryURL", "cachedURL", "requestValue", "queryValue", "cacheQueryOptionConverters", "require_cachestorage", "__commonJSMin", "exports", "module", "kConstruct", "Cache", "webidl", "kEnumerableProperty", "CacheStorage", "_CacheStorage", "#caches", "request", "options", "cacheList", "response", "cacheName", "cache", "require_constants", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "kHeadersList", "isCTLExcludingHtab", "value", "char", "code", "validateCookieName", "name", "validateCookieValue", "validateCookiePath", "path", "validateCookieDomain", "domain", "toIMFDate", "date", "days", "months", "dayName", "day", "month", "year", "hour", "minute", "second", "validateCookieMaxAge", "maxAge", "stringify", "cookie", "out", "part", "key", "kHeadersListNode", "getHeadersList", "headers", "symbol", "headersList", "require_parse", "__commonJSMin", "exports", "module", "maxNameValuePairSize", "maxAttributeValueSize", "isCTLExcludingHtab", "collectASequenceOfCodePointsFast", "assert", "parseSetCookie", "header", "nameValuePair", "unparsedAttributes", "name", "value", "position", "parseUnparsedAttributes", "cookieAttributeList", "cookieAv", "attributeName", "attributeValue", "attributeNameLowercase", "expiryTime", "charCode", "deltaSeconds", "cookieDomain", "cookiePath", "enforcement", "attributeValueLowercase", "require_cookies", "__commonJSMin", "exports", "module", "parseSetCookie", "stringify", "getHeadersList", "webidl", "Headers", "getCookies", "headers", "cookie", "out", "piece", "name", "value", "deleteCookie", "attributes", "setCookie", "getSetCookies", "cookies", "pair", "require_constants", "__commonJSMin", "exports", "module", "uid", "staticPropertyDescriptors", "states", "opcodes", "maxUnsigned16Bit", "parserStates", "emptyBuffer", "require_symbols", "__commonJSMin", "exports", "module", "require_events", "__commonJSMin", "exports", "module", "webidl", "kEnumerableProperty", "MessagePort", "MessageEvent", "_MessageEvent", "#eventInit", "type", "eventInitDict", "bubbles", "cancelable", "data", "origin", "lastEventId", "source", "ports", "CloseEvent", "_CloseEvent", "ErrorEvent", "_ErrorEvent", "eventInit", "require_util", "__commonJSMin", "exports", "module", "kReadyState", "kController", "kResponse", "kBinaryType", "kWebSocketURL", "states", "opcodes", "MessageEvent", "ErrorEvent", "isEstablished", "ws", "isClosing", "isClosed", "fireEvent", "e", "target", "eventConstructor", "eventInitDict", "event", "websocketMessageReceived", "type", "data", "dataForEvent", "failWebsocketConnection", "isValidSubprotocol", "protocol", "char", "code", "isValidStatusCode", "reason", "controller", "response", "require_connection", "__commonJSMin", "exports", "module", "randomBytes", "createHash", "diagnosticsChannel", "uid", "states", "kReadyState", "kSentClose", "kByteParser", "kReceivedClose", "fireEvent", "failWebsocketConnection", "CloseEvent", "makeRequest", "fetching", "Headers", "getGlobalDispatcher", "kHeadersList", "channels", "establishWebSocketConnection", "url", "protocols", "ws", "onEstablish", "options", "requestURL", "request", "headersList", "keyValue", "protocol", "permessageDeflate", "response", "secWSAccept", "digest", "secExtension", "secProtocol", "onSocketData", "onSocketClose", "onSocketError", "chunk", "wasClean", "code", "reason", "result", "error", "require_frame", "__commonJSMin", "exports", "module", "randomBytes", "maxUnsigned16Bit", "WebsocketFrameSend", "data", "opcode", "bodyLength", "payloadLength", "offset", "buffer", "require_receiver", "__commonJSMin", "exports", "module", "Writable", "diagnosticsChannel", "parserStates", "opcodes", "states", "emptyBuffer", "kReadyState", "kSentClose", "kResponse", "kReceivedClose", "isValidStatusCode", "failWebsocketConnection", "websocketMessageReceived", "WebsocketFrameSend", "channels", "ByteParser", "#buffers", "#byteOffset", "#state", "#info", "#fragments", "ws", "chunk", "_", "callback", "buffer", "payloadLength", "body", "closeFrame", "err", "frame", "upper", "lower", "fullMessage", "n", "offset", "next", "length", "onlyCode", "data", "code", "reason", "require_websocket", "__commonJSMin", "exports", "module", "webidl", "DOMException", "URLSerializer", "staticPropertyDescriptors", "states", "opcodes", "emptyBuffer", "kWebSocketURL", "kReadyState", "kController", "kBinaryType", "kResponse", "kSentClose", "kByteParser", "isEstablished", "isClosing", "isValidSubprotocol", "failWebsocketConnection", "fireEvent", "establishWebSocketConnection", "WebsocketFrameSend", "ByteParser", "kEnumerableProperty", "isBlobLike", "getGlobalDispatcher", "types", "experimentalWarned", "WebSocket", "_WebSocket", "#events", "#bufferedAmount", "#protocol", "#extensions", "url", "protocols", "options", "urlRecord", "e", "p", "response", "#onConnectionEstablished", "code", "reason", "reasonByteLength", "frame", "err", "data", "socket", "value", "buffer", "ab", "fn", "type", "parser", "extensions", "protocol", "V", "require_undici", "__commonJSMin", "exports", "module", "Client", "Dispatcher", "errors", "Pool", "BalancedPool", "Agent", "util", "InvalidArgumentError", "api", "buildConnector", "MockClient", "MockAgent", "MockPool", "mockErrors", "ProxyAgent", "getGlobalDispatcher", "setGlobalDispatcher", "DecoratorHandler", "RedirectHandler", "createRedirectInterceptor", "hasCrypto", "makeDispatcher", "fn", "url", "opts", "handler", "path", "agent", "dispatcher", "fetchImpl", "resource", "err", "setGlobalOrigin", "getGlobalOrigin", "CacheStorage", "kConstruct", "deleteCookie", "getCookies", "getSetCookies", "setCookie", "parseMIMEType", "serializeAMimeType", "WebSocket", "assertInputTypes", "text", "lang", "slow", "host", "exports", "SPACE_REGEX", "DEFAULT_PUNCTUATION_REGEX", "splitLongText", "text", "_a", "_b", "_c", "maxLength", "_d", "splitPunct", "isSpaceOrPunct", "s", "i", "regex", "lastIndexOfSpaceOrPunct", "left", "right", "result", "addResult", "start", "end", "str", "exports", "assertInputTypes_1", "__importDefault", "splitLongText_1", "url_1", "getAudioUrl", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "exports", "getAllAudioUrls", "_f", "splitPunct", "shortText", "require_bind", "__commonJSMin", "exports", "module", "fn", "thisArg", "args", "i", "require_utils", "__commonJSMin", "exports", "module", "bind", "toString", "isArray", "val", "isUndefined", "isBuffer", "isArrayBuffer", "isFormData", "isArrayBufferView", "result", "isString", "isNumber", "isObject", "isPlainObject", "prototype", "isDate", "isFile", "isBlob", "isFunction", "isStream", "isURLSearchParams", "trim", "str", "isStandardBrowserEnv", "forEach", "obj", "fn", "i", "l", "key", "merge", "assignValue", "extend", "a", "b", "thisArg", "stripBOM", "content", "require_buildURL", "__commonJSMin", "exports", "module", "utils", "encode", "val", "url", "params", "paramsSerializer", "serializedParams", "parts", "key", "v", "hashmarkIndex", "require_InterceptorManager", "__commonJSMin", "exports", "module", "utils", "InterceptorManager", "fulfilled", "rejected", "options", "id", "fn", "h", "require_normalizeHeaderName", "__commonJSMin", "exports", "module", "utils", "headers", "normalizedName", "value", "name", "require_enhanceError", "__commonJSMin", "exports", "module", "error", "config", "code", "request", "response", "require_createError", "__commonJSMin", "exports", "module", "enhanceError", "message", "config", "code", "request", "response", "error", "require_settle", "__commonJSMin", "exports", "module", "createError", "resolve", "reject", "response", "validateStatus", "require_cookies", "__commonJSMin", "exports", "module", "utils", "name", "value", "expires", "path", "domain", "secure", "cookie", "match", "require_isAbsoluteURL", "__commonJSMin", "exports", "module", "url", "require_combineURLs", "__commonJSMin", "exports", "module", "baseURL", "relativeURL", "require_buildFullPath", "__commonJSMin", "exports", "module", "isAbsoluteURL", "combineURLs", "baseURL", "requestedURL", "require_parseHeaders", "__commonJSMin", "exports", "module", "utils", "ignoreDuplicateOf", "headers", "parsed", "key", "val", "i", "line", "require_isURLSameOrigin", "__commonJSMin", "exports", "module", "utils", "msie", "urlParsingNode", "originURL", "resolveURL", "url", "href", "requestURL", "parsed", "require_xhr", "__commonJSMin", "exports", "module", "utils", "settle", "cookies", "buildURL", "buildFullPath", "parseHeaders", "isURLSameOrigin", "createError", "config", "resolve", "reject", "requestData", "requestHeaders", "responseType", "request", "username", "password", "fullPath", "onloadend", "responseHeaders", "responseData", "response", "timeoutErrorMessage", "xsrfValue", "val", "key", "cancel", "require_ms", "__commonJSMin", "exports", "module", "s", "m", "h", "d", "w", "y", "val", "options", "type", "parse", "fmtLong", "fmtShort", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "require_common", "__commonJSMin", "exports", "module", "setup", "env", "createDebug", "coerce", "disable", "enable", "enabled", "destroy", "key", "selectColor", "namespace", "hash", "i", "prevTime", "enableOverride", "namespacesCache", "enabledCache", "debug", "args", "self", "curr", "ms", "index", "match", "format", "formatter", "val", "extend", "v", "delimiter", "newDebug", "namespaces", "split", "len", "toNamespace", "name", "regexp", "require_browser", "__commonJSMin", "exports", "module", "formatArgs", "save", "load", "useColors", "localstorage", "warned", "args", "c", "index", "lastC", "match", "namespaces", "r", "formatters", "v", "error", "require_has_flag", "__commonJSMin", "exports", "module", "flag", "argv", "prefix", "position", "terminatorPosition", "require_supports_color", "__commonJSMin", "exports", "module", "os", "tty", "hasFlag", "env", "forceColor", "translateLevel", "level", "supportsColor", "haveStream", "streamIsTTY", "min", "osRelease", "sign", "version", "getSupportLevel", "stream", "require_node", "__commonJSMin", "exports", "module", "tty", "util", "init", "log", "formatArgs", "save", "load", "useColors", "supportsColor", "key", "obj", "prop", "_", "k", "val", "args", "name", "c", "colorCode", "prefix", "getDate", "namespaces", "debug", "keys", "i", "formatters", "v", "str", "require_src", "__commonJSMin", "exports", "module", "require_debug", "__commonJSMin", "exports", "module", "debug", "require_follow_redirects", "__commonJSMin", "exports", "module", "url", "URL", "http", "https", "Writable", "assert", "debug", "useNativeURL", "error", "preservedUrlFields", "events", "eventHandlers", "event", "arg1", "arg2", "arg3", "InvalidUrlError", "createErrorType", "RedirectionError", "TooManyRedirectsError", "MaxBodyLengthExceededError", "WriteAfterEndError", "destroy", "noop", "RedirectableRequest", "options", "responseCallback", "self", "response", "cause", "destroyRequest", "data", "encoding", "callback", "isString", "isBuffer", "isFunction", "currentRequest", "name", "value", "msecs", "destroyOnTimeout", "socket", "startTimer", "clearTimer", "method", "a", "b", "property", "searchPos", "protocol", "nativeProtocol", "scheme", "request", "i", "buffers", "writeNext", "buffer", "statusCode", "location", "requestHeaders", "beforeRedirect", "removeMatchingHeaders", "currentHostHeader", "currentUrlParts", "parseUrl", "currentHost", "currentUrl", "redirectUrl", "resolveUrl", "spreadUrlObject", "isSubdomain", "responseDetails", "requestDetails", "wrap", "protocols", "nativeProtocols", "wrappedProtocol", "input", "isURL", "validateUrl", "get", "wrappedRequest", "parsed", "relative", "base", "urlObject", "target", "spread", "key", "regex", "headers", "lastValue", "header", "code", "message", "baseClass", "CustomError", "properties", "subdomain", "domain", "dot", "require_package", "__commonJSMin", "exports", "module", "require_http", "__commonJSMin", "exports", "module", "utils", "settle", "buildFullPath", "buildURL", "http", "https", "httpFollow", "httpsFollow", "url", "zlib", "pkg", "createError", "enhanceError", "isHttps", "setProxy", "options", "proxy", "location", "base64", "redirection", "config", "resolvePromise", "rejectPromise", "resolve", "value", "reject", "data", "headers", "auth", "username", "password", "fullPath", "parsed", "protocol", "urlAuth", "urlUsername", "urlPassword", "isHttpsRequest", "agent", "proxyEnv", "proxyUrl", "parsedProxyUrl", "noProxyEnv", "shouldProxy", "noProxy", "s", "proxyElement", "proxyUrlAuth", "transport", "isHttpsProxy", "req", "res", "stream", "lastRequest", "response", "responseBuffer", "totalResponseBytes", "chunk", "err", "responseData", "timeout", "cancel", "require_defaults", "__commonJSMin", "exports", "module", "utils", "normalizeHeaderName", "enhanceError", "DEFAULT_CONTENT_TYPE", "setContentTypeIfUnset", "headers", "value", "getDefaultAdapter", "adapter", "stringifySafely", "rawValue", "parser", "encoder", "e", "defaults", "data", "transitional", "silentJSONParsing", "forcedJSONParsing", "strictJSONParsing", "status", "method", "require_transformData", "__commonJSMin", "exports", "module", "utils", "defaults", "data", "headers", "fns", "context", "fn", "require_isCancel", "__commonJSMin", "exports", "module", "value", "require_dispatchRequest", "__commonJSMin", "exports", "module", "utils", "transformData", "isCancel", "defaults", "throwIfCancellationRequested", "config", "method", "adapter", "response", "reason", "require_mergeConfig", "__commonJSMin", "exports", "module", "utils", "config1", "config2", "config", "valueFromConfig2Keys", "mergeDeepPropertiesKeys", "defaultToConfig2Keys", "directMergeKeys", "getMergedValue", "target", "source", "mergeDeepProperties", "prop", "axiosKeys", "otherKeys", "key", "require_validator", "__commonJSMin", "exports", "module", "pkg", "validators", "type", "i", "thing", "deprecatedWarnings", "currentVerArr", "isOlderVersion", "version", "thanVersion", "pkgVersionArr", "destVer", "validator", "message", "isDeprecated", "formatMessage", "opt", "desc", "value", "opts", "assertOptions", "options", "schema", "allowUnknown", "keys", "result", "require_Axios", "__commonJSMin", "exports", "module", "utils", "buildURL", "InterceptorManager", "dispatchRequest", "mergeConfig", "validator", "validators", "Axios", "instanceConfig", "config", "transitional", "requestInterceptorChain", "synchronousRequestInterceptors", "interceptor", "responseInterceptorChain", "promise", "chain", "newConfig", "onFulfilled", "onRejected", "error", "method", "url", "data", "require_Cancel", "__commonJSMin", "exports", "module", "Cancel", "message", "require_CancelToken", "__commonJSMin", "exports", "module", "Cancel", "CancelToken", "executor", "resolvePromise", "resolve", "token", "message", "cancel", "c", "require_spread", "__commonJSMin", "exports", "module", "callback", "arr", "require_isAxiosError", "__commonJSMin", "exports", "module", "payload", "require_axios", "__commonJSMin", "exports", "module", "utils", "bind", "Axios", "mergeConfig", "defaults", "createInstance", "defaultConfig", "context", "instance", "axios", "instanceConfig", "promises", "require_axios", "__commonJSMin", "exports", "module", "e", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "_f", "splitPunct", "_g", "timeout", "shortTextList", "shortText", "base64List", "_h", "result", "i", "base64", "getAudioUrl_1", "exports", "getAudioBase64_1", "http", "__importStar", "https", "toBuffer", "stream", "length", "chunks", "chunk", "exports", "json", "str", "_err", "err", "req", "url", "opts", "promise", "resolve", "reject", "net", "__importStar", "http", "https_1", "__exportStar", "exports", "INTERNAL", "Agent", "opts", "options", "stack", "l", "name", "fakeSocket", "socket", "sockets", "index", "req", "cb", "connectOpts", "err", "v", "debug_1", "__importDefault", "debug", "parseProxyResponse", "socket", "resolve", "reject", "buffersLength", "buffers", "read", "b", "ondata", "cleanup", "onend", "onerror", "err", "buffered", "endOfHeaders", "headerParts", "firstLine", "firstLineParts", "statusCode", "statusText", "headers", "header", "firstColon", "key", "value", "current", "exports", "net", "__importStar", "tls", "assert_1", "__importDefault", "debug_1", "agent_base_1", "url_1", "parse_proxy_response_1", "debug", "setServernameFromNonIpHost", "options", "HttpsProxyAgent", "proxy", "opts", "host", "port", "omit", "req", "socket", "headers", "payload", "auth", "name", "proxyResponsePromise", "connect", "buffered", "resume", "fakeSocket", "s", "exports", "obj", "keys", "ret", "key", "instant_translate_view_exports", "__export", "InstantTranslateView", "__toCommonJS", "import_api", "import_querystring", "import_undici", "languages", "getISOCode", "language", "key", "isSupported", "import_undici", "zr", "a", "b", "yr", "wr", "c", "window", "d", "e", "f", "g", "l", "h", "xr", "config", "updateTKK", "now", "code", "xt", "tokenGenerator", "text", "tk", "error", "translate", "text", "options", "error", "lang", "isSupported", "getISOCode", "token", "tokenGenerator", "baseUrl", "data", "url", "querystring", "requestOptions", "requestUrl", "body", "result", "obj", "str", "googleTTS", "import_https_proxy_agent", "TranslateError", "extractPronounceTextFromRaw", "raw", "simpleTranslate", "text", "options", "translated", "translate", "err", "error", "READING_TIME_PER_CHAR_MS", "MIN_HUD_DURATION_MS", "MAX_HUD_DURATION_MS", "HUD_REFRESH_INTERVAL_MS", "showExtendedHUD", "message", "minDurationMs", "calculatedDuration", "finalDuration", "iterations", "i", "resolve", "baseInstantTranslate", "onTranslated", "preferences", "targetLanguage", "sourceLanguage", "proxy", "selectedText", "error", "result", "simpleTranslate", "translation", "InstantTranslateView", "baseInstantTranslate", "translatedText", "showExtendedHUD"] -} diff --git a/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/package.json b/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/package.json @@ -19,8 +19,7 @@ "rasitayaz", "popalay", "litomore", - "ChanningKuo", - "likid" + "ChanningKuo" ], "license": "MIT", "commands": [ @@ -44,27 +43,6 @@ "subtitle": "Google Translate", "description": "Quickly translate to multiple languages", "mode": "view" - }, - { - "name": "instant-translate-copy", - "title": "Instant Translate Copy", - "subtitle": "Google Translate", - "description": "Instantly translate selected text and copy to clipboard", - "mode": "no-view" - }, - { - "name": "instant-translate-paste", - "title": "Instant Translate Paste", - "subtitle": "Google Translate", - "description": "Instantly translate selected text and paste to active app", - "mode": "no-view" - }, - { - "name": "instant-translate-view", - "title": "Instant Translate View", - "subtitle": "Google Translate", - "description": "Instantly translate selected text with HUD display", - "mode": "no-view" } ], "preferences": [ @@ -77,38 +55,18 @@ "default": "auto", "data": [ { - "title": "Auto-Detect", + "title": "🌐 Auto-detect", "value": "auto" }, { - "title": "Abkhaz", - "value": "ab" - }, - { - "title": "Acehnese", - "value": "ace" - }, - { - "title": "Acholi", - "value": "ach" - }, - { - "title": "Afar", - "value": "aa" - }, - { - "title": "Afrikaans", + "title": "🇿🇦 Afrikaans", "value": "af" }, { - "title": "Albanian", + "title": "🇦🇱 Albanian", "value": "sq" }, { - "title": "Alur", - "value": "alz" - }, - { "title": "Amharic", "value": "am" }, @@ -117,110 +75,34 @@ "value": "ar" }, { - "title": "Armenian", + "title": "🇦🇲 Armenian", "value": "hy" }, { - "title": "Assamese", - "value": "as" - }, - { - "title": "Avar", - "value": "av" - }, - { - "title": "Awadhi", - "value": "awa" - }, - { - "title": "Aymara", - "value": "ay" - }, - { - "title": "Azerbaijani", + "title": "🇦🇿 Azerbaijani", "value": "az" }, { - "title": "Balinese", - "value": "ban" - }, - { - "title": "Baluchi", - "value": "bal" - }, - { - "title": "Bambara", - "value": "bm" - }, - { - "title": "Baoulé", - "value": "bci" - }, - { - "title": "Bashkir", - "value": "ba" - }, - { "title": "Basque", "value": "eu" }, { - "title": "Batak Karo", - "value": "btx" - }, - { - "title": "Batak Simalungun", - "value": "bts" - }, - { - "title": "Batak Toba", - "value": "bbc" - }, - { - "title": "Belarusian", + "title": "🇧🇾 Belarusian", "value": "be" }, { - "title": "Bemba", - "value": "bem" - }, - { "title": "Bengali", "value": "bn" }, { - "title": "Betawi", - "value": "bew" - }, - { - "title": "Bhojpuri", - "value": "bho" - }, - { - "title": "Bikol", - "value": "bik" - }, - { - "title": "Bosnian", + "title": "🇧🇦 Bosnian", "value": "bs" }, { - "title": "Breton", - "value": "br" - }, - { - "title": "Bulgarian", + "title": "🇧🇬 Bulgarian", "value": "bg" }, { - "title": "Buryat", - "value": "bua" - }, - { - "title": "Cantonese", - "value": "yue" - }, - { "title": "Catalan", "value": "ca" }, @@ -229,18 +111,6 @@ "value": "ceb" }, { - "title": "Chamorro", - "value": "ch" - }, - { - "title": "Chechen", - "value": "ce" - }, - { - "title": "Chichewa", - "value": "ny" - }, - { "title": "Chinese (Simplified)", "value": "zh-CN" }, @@ -249,71 +119,27 @@ "value": "zh-TW" }, { - "title": "Chuukese", - "value": "chk" - }, - { - "title": "Chuvash", - "value": "cv" - }, - { "title": "Corsican", "value": "co" }, { - "title": "Crimean Tatar (Cyrillic)", - "value": "crh" - }, - { - "title": "Crimean Tatar (Latin)", - "value": "crh-Latn" - }, - { - "title": "Croatian", + "title": "🇭🇷 Croatian", "value": "hr" }, { - "title": "Czech", + "title": "🇨🇿 Czech", "value": "cs" }, { - "title": "Danish", + "title": "🇩🇰 Danish", "value": "da" }, { - "title": "Dari", - "value": "fa-AF" - }, - { - "title": "Dhivehi", - "value": "dv" - }, - { - "title": "Dinka", - "value": "din" - }, - { - "title": "Dogri", - "value": "doi" - }, - { - "title": "Dombe", - "value": "dov" - }, - { - "title": "Dutch", + "title": "🇳🇱 Dutch", "value": "nl" }, { - "title": "Dyula", - "value": "dyu" - }, - { - "title": "Dzongkha", - "value": "dz" - }, - { - "title": "English", + "title": "🇬🇧 English", "value": "en" }, { @@ -321,107 +147,59 @@ "value": "eo" }, { - "title": "Estonian", + "title": "🇪🇪 Estonian", "value": "et" }, { - "title": "Ewe", - "value": "ee" - }, - { - "title": "Faroese", - "value": "fo" - }, - { - "title": "Fijian", - "value": "fj" - }, - { - "title": "Filipino", - "value": "tl" - }, - { - "title": "Finnish", + "title": "🇫🇮 Finnish", "value": "fi" }, { - "title": "Fon", - "value": "fon" - }, - { - "title": "French", + "title": "🇫🇷 French", "value": "fr" }, { - "title": "French (Canada)", - "value": "fr-CA" - }, - { "title": "Frisian", "value": "fy" }, { - "title": "Friulian", - "value": "fur" - }, - { - "title": "Fulani", - "value": "ff" - }, - { - "title": "Ga", - "value": "gaa" - }, - { "title": "Galician", "value": "gl" }, { - "title": "Georgian", + "title": "🇬🇪 Georgian", "value": "ka" }, { - "title": "German", + "title": "🇩🇪 German", "value": "de" }, { - "title": "Greek", + "title": "🇬🇷 Greek", "value": "el" }, { - "title": "Guarani", - "value": "gn" - }, - { "title": "Gujarati", "value": "gu" }, { - "title": "Haitian Creole", + "title": "🇭🇹 Haitian Creole", "value": "ht" }, { - "title": "Hakha Chin", - "value": "cnh" - }, - { "title": "Hausa", "value": "ha" }, { - "title": "Hawaiian", + "title": "🌺 Hawaiian", "value": "haw" }, { - "title": "Hebrew", + "title": "🇮🇱 Hebrew", "value": "iw" }, { - "title": "Hiligaynon", - "value": "hil" - }, - { - "title": "Hindi", + "title": "🇮🇳 Hindi", "value": "hi" }, { @@ -429,19 +207,11 @@ "value": "hmn" }, { - "title": "Hungarian", + "title": "🇭🇺 Hungarian", "value": "hu" }, { - "title": "Hunsrik", - "value": "hrx" - }, - { - "title": "Iban", - "value": "iba" - }, - { - "title": "Icelandic", + "title": "🇮🇸 Icelandic", "value": "is" }, { @@ -449,35 +219,19 @@ "value": "ig" }, { - "title": "Ilocano", - "value": "ilo" - }, - { - "title": "Indonesian", + "title": "🇮🇩 Indonesian", "value": "id" }, { - "title": "Inuktut (Latin)", - "value": "iu-Latn" - }, - { - "title": "Inuktut (Syllabics)", - "value": "iu" - }, - { - "title": "Irish", + "title": "🇮🇪 Irish", "value": "ga" }, { - "title": "Italian", + "title": "🇮🇹 Italian", "value": "it" }, { - "title": "Jamaican Patois", - "value": "jam" - }, - { - "title": "Japanese", + "title": "🇯🇵 Japanese", "value": "ja" }, { @@ -485,82 +239,30 @@ "value": "jv" }, { - "title": "Jingpo", - "value": "kac" - }, - { - "title": "Kalaallisut", - "value": "kl" - }, - { "title": "Kannada", "value": "kn" }, { - "title": "Kanuri", - "value": "kr" - }, - { - "title": "Kapampangan", - "value": "pam" - }, - { - "title": "Kazakh", + "title": "🇰🇿 Kazakh", "value": "kk" }, { - "title": "Khasi", - "value": "kha" - }, - { "title": "Khmer", "value": "km" }, { - "title": "Kiga", - "value": "cgg" - }, - { - "title": "Kikongo", - "value": "kg" - }, - { "title": "Kinyarwanda", "value": "rw" }, { - "title": "Kituba", - "value": "ktu" - }, - { - "title": "Kokborok", - "value": "trp" - }, - { - "title": "Komi", - "value": "kv" - }, - { - "title": "Konkani", - "value": "gom" - }, - { - "title": "Korean", + "title": "🇰🇷 Korean", "value": "ko" }, { - "title": "Krio", - "value": "kri" - }, - { - "title": "Kurdish (Kurmanji)", + "title": "Kurdish", "value": "ku" }, { - "title": "Kurdish (Sorani)", - "value": "ckb" - }, - { "title": "Kyrgyz", "value": "ky" }, @@ -569,95 +271,39 @@ "value": "lo" }, { - "title": "Latgalian", - "value": "ltg" - }, - { - "title": "Latin", - "value": "la" - }, - { - "title": "Latvian", + "title": "🇱🇻 Latvian", "value": "lv" }, { - "title": "Ligurian", - "value": "lij" - }, - { - "title": "Limburgish", - "value": "li" - }, - { - "title": "Lingala", - "value": "ln" - }, - { - "title": "Lithuanian", + "title": "🇱🇹 Lithuanian", "value": "lt" }, { - "title": "Lombard", - "value": "lmo" - }, - { - "title": "Luganda", - "value": "lg" - }, - { - "title": "Luo", - "value": "luo" - }, - { - "title": "Luxembourgish", + "title": "🇱🇺 Luxembourgish", "value": "lb" }, { - "title": "Macedonian", + "title": "🇲🇰 Macedonian", "value": "mk" }, { - "title": "Madurese", - "value": "mad" - }, - { - "title": "Maithili", - "value": "mai" - }, - { - "title": "Makassar", - "value": "mak" - }, - { "title": "Malagasy", "value": "mg" }, { - "title": "Malay", + "title": "🇲🇾 Malay", "value": "ms" }, { - "title": "Malay (Jawi)", - "value": "ms-Arab" - }, - { "title": "Malayalam", "value": "ml" }, { - "title": "Maltese", + "title": "🇲🇹 Maltese", "value": "mt" }, { - "title": "Mam", - "value": "mam" - }, - { - "title": "Manx", - "value": "gv" - }, - { - "title": "Maori", + "title": "🇳🇿 Maori", "value": "mi" }, { @@ -665,183 +311,67 @@ "value": "mr" }, { - "title": "Marshallese", - "value": "mh" - }, - { - "title": "Marwadi", - "value": "mwr" - }, - { - "title": "Mauritian Creole", - "value": "mfe" - }, - { - "title": "Meadow Mari", - "value": "chm" - }, - { - "title": "Meiteilon (Manipuri)", - "value": "mni-Mtei" - }, - { - "title": "Minang", - "value": "min" - }, - { - "title": "Mizo", - "value": "lus" - }, - { - "title": "Mongolian", + "title": "🇲🇳 Mongolian", "value": "mn" }, { - "title": "Myanmar (Burmese)", + "title": "🇲🇲 Myanmar (Burmese)", "value": "my" }, { - "title": "NKo", - "value": "bm-Nkoo" - }, - { - "title": "Nahuatl (Eastern Huasteca)", - "value": "nhe" - }, - { - "title": "Ndau", - "value": "ndc-ZW" - }, - { - "title": "Ndebele (South)", - "value": "nr" - }, - { - "title": "Nepalbhasa (Newari)", - "value": "new" - }, - { - "title": "Nepali", + "title": "🇳🇵 Nepali", "value": "ne" }, { - "title": "Norwegian", + "title": "🇳🇴 Norwegian", "value": "no" }, { - "title": "Nuer", - "value": "nus" - }, - { - "title": "Occitan", - "value": "oc" + "title": "Nyanja (Chichewa)", + "value": "ny" }, { "title": "Odia (Oriya)", "value": "or" }, { - "title": "Oromo", - "value": "om" - }, - { - "title": "Ossetian", - "value": "os" - }, - { - "title": "Pangasinan", - "value": "pag" - }, - { - "title": "Papiamento", - "value": "pap" - }, - { "title": "Pashto", "value": "ps" }, { - "title": "Persian", + "title": "🇮🇷 Persian", "value": "fa" }, { - "title": "Polish", + "title": "🇵🇱 Polish", "value": "pl" }, { - "title": "Portuguese (Brazil)", + "title": "🇵🇹 Portuguese", "value": "pt" }, { - "title": "Portuguese (Portugal)", - "value": "pt-PT" - }, - { - "title": "Punjabi (Gurmukhi)", + "title": "🇮🇳 Punjabi", "value": "pa" }, { - "title": "Punjabi (Shahmukhi)", - "value": "pa-Arab" - }, - { - "title": "Quechua", - "value": "qu" - }, - { - "title": "Qʼeqchiʼ", - "value": "kek" - }, - { - "title": "Romani", - "value": "rom" - }, - { - "title": "Romanian", + "title": "🇷🇴 Romanian", "value": "ro" }, { - "title": "Rundi", - "value": "rn" - }, - { - "title": "Russian", + "title": "🇷🇺 Russian", "value": "ru" }, { - "title": "Sami (North)", - "value": "se" - }, - { "title": "Samoan", "value": "sm" }, { - "title": "Sango", - "value": "sg" - }, - { - "title": "Sanskrit", - "value": "sa" - }, - { - "title": "Santali (Latin)", - "value": "sat-Latn" - }, - { - "title": "Santali (Ol Chiki)", - "value": "sat" - }, - { - "title": "Scots Gaelic", + "title": "🏴󠁧󠁢󠁳󠁣󠁴󠁿 Scots Gaelic", "value": "gd" }, { - "title": "Sepedi", - "value": "nso" - }, - { - "title": "Serbian", + "title": "🇷🇸 Serbian", "value": "sr" }, { @@ -849,86 +379,54 @@ "value": "st" }, { - "title": "Seychellois Creole", - "value": "crs" - }, - { - "title": "Shan", - "value": "shn" - }, - { "title": "Shona", "value": "sn" }, { - "title": "Sicilian", - "value": "scn" - }, - { - "title": "Silesian", - "value": "szl" - }, - { "title": "Sindhi", "value": "sd" }, { - "title": "Sinhala", + "title": "Sinhala (Sinhalese)", "value": "si" }, { - "title": "Slovak", + "title": "🇸🇰 Slovak", "value": "sk" }, { - "title": "Slovenian", + "title": "🇸🇮 Slovenian", "value": "sl" }, { - "title": "Somali", + "title": "🇸🇴 Somali", "value": "so" }, { - "title": "Spanish", + "title": "🇪🇸 Spanish", "value": "es" }, { - "title": "Sundanese", + "title": "🇸🇩 Sundanese", "value": "su" }, { - "title": "Susu", - "value": "sus" - }, - { "title": "Swahili", "value": "sw" }, { - "title": "Swati", - "value": "ss" - }, - { - "title": "Swedish", + "title": "🇸🇪 Swedish", "value": "sv" }, { - "title": "Tahitian", - "value": "ty" + "title": "🇵🇭 Tagalog (Filipino)", + "value": "tl" }, { "title": "Tajik", "value": "tg" }, { - "title": "Tamazight", - "value": "ber-Latn" - }, - { - "title": "Tamazight (Tifinagh)", - "value": "ber" - }, - { "title": "Tamil", "value": "ta" }, @@ -941,75 +439,19 @@ "value": "te" }, { - "title": "Tetum", - "value": "tet" - }, - { "title": "Thai", "value": "th" }, { - "title": "Tibetan", - "value": "bo" - }, - { - "title": "Tigrinya", - "value": "ti" - }, - { - "title": "Tiv", - "value": "tiv" - }, - { - "title": "Tok Pisin", - "value": "tpi" - }, - { - "title": "Tongan", - "value": "to" - }, - { - "title": "Tshiluba", - "value": "lua" - }, - { - "title": "Tsonga", - "value": "ts" - }, - { - "title": "Tswana", - "value": "tn" - }, - { - "title": "Tulu", - "value": "tcy" - }, - { - "title": "Tumbuka", - "value": "tum" - }, - { - "title": "Turkish", + "title": "🇹🇷 Turkish", "value": "tr" }, { - "title": "Turkmen", + "title": "🇹🇲 Turkmen", "value": "tk" }, { - "title": "Tuvan", - "value": "tyv" - }, - { - "title": "Twi", - "value": "ak" - }, - { - "title": "Udmurt", - "value": "udm" - }, - { - "title": "Ukrainian", + "title": "🇺🇦 Ukrainian", "value": "uk" }, { @@ -1025,39 +467,19 @@ "value": "uz" }, { - "title": "Venda", - "value": "ve" - }, - { - "title": "Venetian", - "value": "vec" - }, - { - "title": "Vietnamese", + "title": "🇻🇳 Vietnamese", "value": "vi" }, { - "title": "Waray", - "value": "war" - }, - { - "title": "Welsh", + "title": "🏴󠁧󠁢󠁷󠁬󠁳󠁿 Welsh", "value": "cy" }, { - "title": "Wolof", - "value": "wo" - }, - { "title": "Xhosa", "value": "xh" }, { - "title": "Yakut", - "value": "sah" - }, - { - "title": "Yiddish", + "title": "🇮🇱 Yiddish", "value": "yi" }, { @@ -1065,14 +487,6 @@ "value": "yo" }, { - "title": "Yucatec Maya", - "value": "yua" - }, - { - "title": "Zapotec", - "value": "zap" - }, - { "title": "Zulu", "value": "zu" } @@ -1084,147 +498,51 @@ "description": "Preferred language to translate to", "required": true, "type": "dropdown", - "default": "en", + "default": "de", "data": [ { - "title": "Abkhaz", - "value": "ab" - }, - { - "title": "Acehnese", - "value": "ace" - }, - { - "title": "Acholi", - "value": "ach" - }, - { - "title": "Afar", - "value": "aa" - }, - { - "title": "Afrikaans", + "title": "🇿🇦 Afrikaans", "value": "af" }, { - "title": "Albanian", + "title": "🇦🇱 Albanian", "value": "sq" }, - { - "title": "Alur", - "value": "alz" - }, - { - "title": "Amharic", - "value": "am" - }, - { - "title": "Arabic", - "value": "ar" - }, - { - "title": "Armenian", - "value": "hy" - }, - { - "title": "Assamese", - "value": "as" - }, - { - "title": "Avar", - "value": "av" - }, - { - "title": "Awadhi", - "value": "awa" - }, - { - "title": "Aymara", - "value": "ay" - }, - { - "title": "Azerbaijani", - "value": "az" - }, - { - "title": "Balinese", - "value": "ban" - }, - { - "title": "Baluchi", - "value": "bal" - }, - { - "title": "Bambara", - "value": "bm" - }, - { - "title": "Baoulé", - "value": "bci" - }, - { - "title": "Bashkir", - "value": "ba" - }, - { - "title": "Basque", - "value": "eu" - }, - { - "title": "Batak Karo", - "value": "btx" - }, - { - "title": "Batak Simalungun", - "value": "bts" - }, - { - "title": "Batak Toba", - "value": "bbc" - }, - { - "title": "Belarusian", - "value": "be" - }, - { - "title": "Bemba", - "value": "bem" - }, - { - "title": "Bengali", - "value": "bn" + { + "title": "Amharic", + "value": "am" }, { - "title": "Betawi", - "value": "bew" + "title": "Arabic", + "value": "ar" }, { - "title": "Bhojpuri", - "value": "bho" + "title": "🇦🇲 Armenian", + "value": "hy" }, { - "title": "Bikol", - "value": "bik" + "title": "🇦🇿 Azerbaijani", + "value": "az" }, { - "title": "Bosnian", - "value": "bs" + "title": "Basque", + "value": "eu" }, { - "title": "Breton", - "value": "br" + "title": "🇧🇾 Belarusian", + "value": "be" }, { - "title": "Bulgarian", - "value": "bg" + "title": "Bengali", + "value": "bn" }, { - "title": "Buryat", - "value": "bua" + "title": "🇧🇦 Bosnian", + "value": "bs" }, { - "title": "Cantonese", - "value": "yue" + "title": "🇧🇬 Bulgarian", + "value": "bg" }, { "title": "Catalan", @@ -1235,18 +553,6 @@ "value": "ceb" }, { - "title": "Chamorro", - "value": "ch" - }, - { - "title": "Chechen", - "value": "ce" - }, - { - "title": "Chichewa", - "value": "ny" - }, - { "title": "Chinese (Simplified)", "value": "zh-CN" }, @@ -1255,71 +561,27 @@ "value": "zh-TW" }, { - "title": "Chuukese", - "value": "chk" - }, - { - "title": "Chuvash", - "value": "cv" - }, - { "title": "Corsican", "value": "co" }, { - "title": "Crimean Tatar (Cyrillic)", - "value": "crh" - }, - { - "title": "Crimean Tatar (Latin)", - "value": "crh-Latn" - }, - { - "title": "Croatian", + "title": "🇭🇷 Croatian", "value": "hr" }, { - "title": "Czech", + "title": "🇨🇿 Czech", "value": "cs" }, { - "title": "Danish", + "title": "🇩🇰 Danish", "value": "da" }, { - "title": "Dari", - "value": "fa-AF" - }, - { - "title": "Dhivehi", - "value": "dv" - }, - { - "title": "Dinka", - "value": "din" - }, - { - "title": "Dogri", - "value": "doi" - }, - { - "title": "Dombe", - "value": "dov" - }, - { - "title": "Dutch", + "title": "🇳🇱 Dutch", "value": "nl" }, { - "title": "Dyula", - "value": "dyu" - }, - { - "title": "Dzongkha", - "value": "dz" - }, - { - "title": "English", + "title": "🇬🇧 English", "value": "en" }, { @@ -1327,107 +589,59 @@ "value": "eo" }, { - "title": "Estonian", + "title": "🇪🇪 Estonian", "value": "et" }, { - "title": "Ewe", - "value": "ee" - }, - { - "title": "Faroese", - "value": "fo" - }, - { - "title": "Fijian", - "value": "fj" - }, - { - "title": "Filipino", - "value": "tl" - }, - { - "title": "Finnish", + "title": "🇫🇮 Finnish", "value": "fi" }, { - "title": "Fon", - "value": "fon" - }, - { - "title": "French", + "title": "🇫🇷 French", "value": "fr" }, { - "title": "French (Canada)", - "value": "fr-CA" - }, - { "title": "Frisian", "value": "fy" }, { - "title": "Friulian", - "value": "fur" - }, - { - "title": "Fulani", - "value": "ff" - }, - { - "title": "Ga", - "value": "gaa" - }, - { "title": "Galician", "value": "gl" }, { - "title": "Georgian", + "title": "🇬🇪 Georgian", "value": "ka" }, { - "title": "German", + "title": "🇩🇪 German", "value": "de" }, { - "title": "Greek", + "title": "🇬🇷 Greek", "value": "el" }, { - "title": "Guarani", - "value": "gn" - }, - { "title": "Gujarati", "value": "gu" }, { - "title": "Haitian Creole", + "title": "🇭🇹 Haitian Creole", "value": "ht" }, { - "title": "Hakha Chin", - "value": "cnh" - }, - { "title": "Hausa", "value": "ha" }, { - "title": "Hawaiian", + "title": "🌺 Hawaiian", "value": "haw" }, { - "title": "Hebrew", + "title": "🇮🇱 Hebrew", "value": "iw" }, { - "title": "Hiligaynon", - "value": "hil" - }, - { - "title": "Hindi", + "title": "🇮🇳 Hindi", "value": "hi" }, { @@ -1435,19 +649,11 @@ "value": "hmn" }, { - "title": "Hungarian", + "title": "🇭🇺 Hungarian", "value": "hu" }, { - "title": "Hunsrik", - "value": "hrx" - }, - { - "title": "Iban", - "value": "iba" - }, - { - "title": "Icelandic", + "title": "🇮🇸 Icelandic", "value": "is" }, { @@ -1455,118 +661,50 @@ "value": "ig" }, { - "title": "Ilocano", - "value": "ilo" - }, - { - "title": "Indonesian", + "title": "🇮🇩 Indonesian", "value": "id" }, { - "title": "Inuktut (Latin)", - "value": "iu-Latn" - }, - { - "title": "Inuktut (Syllabics)", - "value": "iu" - }, - { - "title": "Irish", + "title": "🇮🇪 Irish", "value": "ga" }, { - "title": "Italian", + "title": "🇮🇹 Italian", "value": "it" }, { - "title": "Jamaican Patois", - "value": "jam" - }, - { - "title": "Japanese", + "title": "🇯🇵 Japanese", "value": "ja" }, { "title": "Javanese", - "value": "jw" - }, - { - "title": "Jingpo", - "value": "kac" - }, - { - "title": "Kalaallisut", - "value": "kl" + "value": "jv" }, { "title": "Kannada", "value": "kn" }, { - "title": "Kanuri", - "value": "kr" - }, - { - "title": "Kapampangan", - "value": "pam" - }, - { - "title": "Kazakh", + "title": "🇰🇿 Kazakh", "value": "kk" }, { - "title": "Khasi", - "value": "kha" - }, - { "title": "Khmer", "value": "km" }, { - "title": "Kiga", - "value": "cgg" - }, - { - "title": "Kikongo", - "value": "kg" - }, - { "title": "Kinyarwanda", "value": "rw" }, { - "title": "Kituba", - "value": "ktu" - }, - { - "title": "Kokborok", - "value": "trp" - }, - { - "title": "Komi", - "value": "kv" - }, - { - "title": "Konkani", - "value": "gom" - }, - { - "title": "Korean", + "title": "🇰🇷 Korean", "value": "ko" }, { - "title": "Krio", - "value": "kri" - }, - { - "title": "Kurdish (Kurmanji)", + "title": "Kurdish", "value": "ku" }, { - "title": "Kurdish (Sorani)", - "value": "ckb" - }, - { "title": "Kyrgyz", "value": "ky" }, @@ -1575,95 +713,43 @@ "value": "lo" }, { - "title": "Latgalian", - "value": "ltg" - }, - { - "title": "Latin", - "value": "la" - }, - { - "title": "Latvian", + "title": "🇱🇻 Latvian", "value": "lv" }, { - "title": "Ligurian", - "value": "lij" - }, - { - "title": "Limburgish", - "value": "li" - }, - { - "title": "Lingala", - "value": "ln" + "title": "🏛 Latin", + "value": "la" }, { - "title": "Lithuanian", + "title": "🇱🇹 Lithuanian", "value": "lt" }, { - "title": "Lombard", - "value": "lmo" - }, - { - "title": "Luganda", - "value": "lg" - }, - { - "title": "Luo", - "value": "luo" - }, - { - "title": "Luxembourgish", + "title": "🇱🇺 Luxembourgish", "value": "lb" }, { - "title": "Macedonian", + "title": "🇲🇰 Macedonian", "value": "mk" }, { - "title": "Madurese", - "value": "mad" - }, - { - "title": "Maithili", - "value": "mai" - }, - { - "title": "Makassar", - "value": "mak" - }, - { "title": "Malagasy", "value": "mg" }, { - "title": "Malay", + "title": "🇲🇾 Malay", "value": "ms" }, { - "title": "Malay (Jawi)", - "value": "ms-Arab" - }, - { "title": "Malayalam", "value": "ml" }, { - "title": "Maltese", + "title": "🇲🇹 Maltese", "value": "mt" }, { - "title": "Mam", - "value": "mam" - }, - { - "title": "Manx", - "value": "gv" - }, - { - "title": "Maori", + "title": "🇳🇿 Maori", "value": "mi" }, { @@ -1671,183 +757,67 @@ "value": "mr" }, { - "title": "Marshallese", - "value": "mh" - }, - { - "title": "Marwadi", - "value": "mwr" - }, - { - "title": "Mauritian Creole", - "value": "mfe" - }, - { - "title": "Meadow Mari", - "value": "chm" - }, - { - "title": "Meiteilon (Manipuri)", - "value": "mni-Mtei" - }, - { - "title": "Minang", - "value": "min" - }, - { - "title": "Mizo", - "value": "lus" - }, - { - "title": "Mongolian", + "title": "🇲🇳 Mongolian", "value": "mn" }, { - "title": "Myanmar (Burmese)", + "title": "🇲🇲 Myanmar (Burmese)", "value": "my" }, { - "title": "NKo", - "value": "bm-Nkoo" - }, - { - "title": "Nahuatl (Eastern Huasteca)", - "value": "nhe" - }, - { - "title": "Ndau", - "value": "ndc-ZW" - }, - { - "title": "Ndebele (South)", - "value": "nr" - }, - { - "title": "Nepalbhasa (Newari)", - "value": "new" - }, - { - "title": "Nepali", + "title": "🇳🇵 Nepali", "value": "ne" }, { - "title": "Norwegian", + "title": "🇳🇴 Norwegian", "value": "no" }, { - "title": "Nuer", - "value": "nus" - }, - { - "title": "Occitan", - "value": "oc" + "title": "Nyanja (Chichewa)", + "value": "ny" }, { "title": "Odia (Oriya)", "value": "or" }, { - "title": "Oromo", - "value": "om" - }, - { - "title": "Ossetian", - "value": "os" - }, - { - "title": "Pangasinan", - "value": "pag" - }, - { - "title": "Papiamento", - "value": "pap" - }, - { "title": "Pashto", "value": "ps" }, { - "title": "Persian", + "title": "🇮🇷 Persian", "value": "fa" }, { - "title": "Polish", + "title": "🇵🇱 Polish", "value": "pl" }, { - "title": "Portuguese (Brazil)", + "title": "🇵🇹 Portuguese", "value": "pt" }, { - "title": "Portuguese (Portugal)", - "value": "pt-PT" - }, - { - "title": "Punjabi (Gurmukhi)", + "title": "🇮🇳 Punjabi", "value": "pa" }, { - "title": "Punjabi (Shahmukhi)", - "value": "pa-Arab" - }, - { - "title": "Quechua", - "value": "qu" - }, - { - "title": "Qʼeqchiʼ", - "value": "kek" - }, - { - "title": "Romani", - "value": "rom" - }, - { - "title": "Romanian", + "title": "🇷🇴 Romanian", "value": "ro" }, { - "title": "Rundi", - "value": "rn" - }, - { - "title": "Russian", + "title": "🇷🇺 Russian", "value": "ru" }, { - "title": "Sami (North)", - "value": "se" - }, - { "title": "Samoan", "value": "sm" }, { - "title": "Sango", - "value": "sg" - }, - { - "title": "Sanskrit", - "value": "sa" - }, - { - "title": "Santali (Latin)", - "value": "sat-Latn" - }, - { - "title": "Santali (Ol Chiki)", - "value": "sat" - }, - { - "title": "Scots Gaelic", + "title": "🏴󠁧󠁢󠁳󠁣󠁴󠁿 Scots Gaelic", "value": "gd" }, { - "title": "Sepedi", - "value": "nso" - }, - { - "title": "Serbian", + "title": "🇷🇸 Serbian", "value": "sr" }, { @@ -1855,86 +825,54 @@ "value": "st" }, { - "title": "Seychellois Creole", - "value": "crs" - }, - { - "title": "Shan", - "value": "shn" - }, - { "title": "Shona", "value": "sn" }, { - "title": "Sicilian", - "value": "scn" - }, - { - "title": "Silesian", - "value": "szl" - }, - { "title": "Sindhi", "value": "sd" }, { - "title": "Sinhala", + "title": "Sinhala (Sinhalese)", "value": "si" }, { - "title": "Slovak", + "title": "🇸🇰 Slovak", "value": "sk" }, { - "title": "Slovenian", + "title": "🇸🇮 Slovenian", "value": "sl" }, { - "title": "Somali", + "title": "🇸🇴 Somali", "value": "so" }, { - "title": "Spanish", + "title": "🇪🇸 Spanish", "value": "es" }, { - "title": "Sundanese", + "title": "🇸🇩 Sundanese", "value": "su" }, { - "title": "Susu", - "value": "sus" - }, - { "title": "Swahili", "value": "sw" }, { - "title": "Swati", - "value": "ss" - }, - { - "title": "Swedish", + "title": "🇸🇪 Swedish", "value": "sv" }, { - "title": "Tahitian", - "value": "ty" + "title": "🇵🇭 Tagalog (Filipino)", + "value": "tl" }, { "title": "Tajik", "value": "tg" }, { - "title": "Tamazight", - "value": "ber-Latn" - }, - { - "title": "Tamazight (Tifinagh)", - "value": "ber" - }, - { "title": "Tamil", "value": "ta" }, @@ -1947,75 +885,19 @@ "value": "te" }, { - "title": "Tetum", - "value": "tet" - }, - { "title": "Thai", "value": "th" }, { - "title": "Tibetan", - "value": "bo" - }, - { - "title": "Tigrinya", - "value": "ti" - }, - { - "title": "Tiv", - "value": "tiv" - }, - { - "title": "Tok Pisin", - "value": "tpi" - }, - { - "title": "Tongan", - "value": "to" - }, - { - "title": "Tshiluba", - "value": "lua" - }, - { - "title": "Tsonga", - "value": "ts" - }, - { - "title": "Tswana", - "value": "tn" - }, - { - "title": "Tulu", - "value": "tcy" - }, - { - "title": "Tumbuka", - "value": "tum" - }, - { - "title": "Turkish", + "title": "🇹🇷 Turkish", "value": "tr" }, { - "title": "Turkmen", + "title": "🇹🇲 Turkmen", "value": "tk" }, { - "title": "Tuvan", - "value": "tyv" - }, - { - "title": "Twi", - "value": "ak" - }, - { - "title": "Udmurt", - "value": "udm" - }, - { - "title": "Ukrainian", + "title": "🇺🇦 Ukrainian", "value": "uk" }, { @@ -2031,39 +913,19 @@ "value": "uz" }, { - "title": "Venda", - "value": "ve" - }, - { - "title": "Venetian", - "value": "vec" - }, - { - "title": "Vietnamese", + "title": "🇻🇳 Vietnamese", "value": "vi" }, { - "title": "Waray", - "value": "war" - }, - { - "title": "Welsh", + "title": "🏴󠁧󠁢󠁷󠁬󠁳󠁿 Welsh", "value": "cy" }, { - "title": "Wolof", - "value": "wo" - }, - { "title": "Xhosa", "value": "xh" }, { - "title": "Yakut", - "value": "sah" - }, - { - "title": "Yiddish", + "title": "🇮🇱 Yiddish", "value": "yi" }, { @@ -2071,14 +933,6 @@ "value": "yo" }, { - "title": "Yucatec Maya", - "value": "yua" - }, - { - "title": "Zapotec", - "value": "zap" - }, - { "title": "Zulu", "value": "zu" } @@ -2123,8 +977,7 @@ "undici": "^5.12.0", "@raycast/api": "^1.47.3", "@raycast/utils": "^1.4.16", - "google-tts-api": "^2.0.2", - "https-proxy-agent": "^7.0.6" + "google-tts-api": "^2.0.2" }, "devDependencies": { "@types/node": "~16.10.0", @@ -2142,9 +995,5 @@ "fix-lint": "ray lint --fix", "lint": "ray lint", "publish": "ray publish" - }, - "platforms": [ - "macOS", - "Windows" - ] + } } \ No newline at end of file diff --git a/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/quick-translate.js b/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/quick-translate.js @@ -1,96 +1,89 @@ -"use strict";var pQ=Object.create;var _r=Object.defineProperty;var lQ=Object.getOwnPropertyDescriptor;var gQ=Object.getOwnPropertyNames;var cQ=Object.getPrototypeOf,uQ=Object.prototype.hasOwnProperty;var E=(e,A)=>()=>(A||e((A={exports:{}}).exports,A),A.exports),EQ=(e,A)=>{for(var t in A)_r(e,t,{get:A[t],enumerable:!0})},X0=(e,A,t,a)=>{if(A&&typeof A=="object"||typeof A=="function")for(let r of gQ(A))!uQ.call(e,r)&&r!==t&&_r(e,r,{get:()=>A[r],enumerable:!(a=lQ(A,r))||a.enumerable});return e};var Rt=(e,A,t)=>(t=e!=null?pQ(cQ(e)):{},X0(A||!e||!e.__esModule?_r(t,"default",{value:e,enumerable:!0}):t,e)),QQ=e=>X0(_r({},"__esModule",{value:!0}),e);var $0=E(K0=>{var z0=Object.prototype.hasOwnProperty;function wn(e,A){var t,a;if(e===A)return!0;if(e&&A&&(t=e.constructor)===A.constructor){if(t===Date)return e.getTime()===A.getTime();if(t===RegExp)return e.toString()===A.toString();if(t===Array){if((a=e.length)===A.length)for(;a--&&wn(e[a],A[a]););return a===-1}if(!t||typeof e=="object"){a=0;for(t in e)if(z0.call(e,t)&&++a&&!z0.call(A,t)||!(t in A)||!wn(e[t],A[t]))return!1;return Object.keys(A).length===a}}return e!==e&&A!==A}K0.dequal=wn});var e2=E(qr=>{"use strict";Object.defineProperty(qr,"__esModule",{value:!0});qr.useDeepMemo=void 0;var yn=require("react"),CQ=$0();function BQ(e){let A=(0,yn.useRef)(e),t=(0,yn.useRef)(0);return(0,CQ.dequal)(e,A.current)||(A.current=e,t.current+=1),(0,yn.useMemo)(()=>A.current,[t.current])}qr.useDeepMemo=BQ});var st=E(Hr=>{"use strict";Object.defineProperty(Hr,"__esModule",{value:!0});Hr.useLatest=void 0;var hQ=require("react");function mQ(e){let A=(0,hQ.useRef)(e);return A.current=e,A}Hr.useLatest=mQ});var Dn=E(_A=>{"use strict";var IQ=_A&&_A.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),fQ=_A&&_A.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),A2=_A&&_A.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&IQ(A,e,t);return fQ(A,e),A};Object.defineProperty(_A,"__esModule",{value:!0});_A.handleErrorToastAction=void 0;var wQ=A2(require("fs")),yQ=A2(require("path")),Or=require("@raycast/api"),DQ=e=>{let A=!0,t="[Extension Name]...",a="";try{let i=JSON.parse(wQ.readFileSync(yQ.join(Or.environment.assetsPath,"..","package.json"),"utf8"));t=`[${i.title}]...`,a=`https://raycast.com/${i.owner||i.author}/${i.name}`,(!i.owner||i.access==="public")&&(A=!1)}catch{}let r=Or.environment.isDevelopment||A;return{title:r?"Copy Logs":"Report Error",onAction(i){i.hide(),r?Or.Clipboard.copy(e?.stack||e?.message||""):(0,Or.open)(`https://github.com/raycast/extensions/issues/new?&labels=extension%2Cbug&template=extension_bug_report.yml&title=${encodeURIComponent(t)}&extension-url=${encodeURI(a)}&description=${encodeURIComponent(`#### Error: +"use strict";var H3=Object.create;var Mr=Object.defineProperty;var O3=Object.getOwnPropertyDescriptor;var P3=Object.getOwnPropertyNames;var W3=Object.getPrototypeOf,Z3=Object.prototype.hasOwnProperty;var E=(e,A)=>()=>(A||e((A={exports:{}}).exports,A),A.exports),j3=(e,A)=>{for(var t in A)Mr(e,t,{get:A[t],enumerable:!0})},x0=(e,A,t,a)=>{if(A&&typeof A=="object"||typeof A=="function")for(let r of P3(A))!Z3.call(e,r)&&r!==t&&Mr(e,r,{get:()=>A[r],enumerable:!(a=O3(A,r))||a.enumerable});return e};var _t=(e,A,t)=>(t=e!=null?H3(W3(e)):{},x0(A||!e||!e.__esModule?Mr(t,"default",{value:e,enumerable:!0}):t,e)),X3=e=>x0(Mr({},"__esModule",{value:!0}),e);var H0=E(q0=>{var _0=Object.prototype.hasOwnProperty;function En(e,A){var t,a;if(e===A)return!0;if(e&&A&&(t=e.constructor)===A.constructor){if(t===Date)return e.getTime()===A.getTime();if(t===RegExp)return e.toString()===A.toString();if(t===Array){if((a=e.length)===A.length)for(;a--&&En(e[a],A[a]););return a===-1}if(!t||typeof e=="object"){a=0;for(t in e)if(_0.call(e,t)&&++a&&!_0.call(A,t)||!(t in A)||!En(e[t],A[t]))return!1;return Object.keys(A).length===a}}return e!==e&&A!==A}q0.dequal=En});var O0=E(Tr=>{"use strict";Object.defineProperty(Tr,"__esModule",{value:!0});Tr.useDeepMemo=void 0;var Qn=require("react"),z3=H0();function K3(e){let A=(0,Qn.useRef)(e),t=(0,Qn.useRef)(0);return(0,z3.dequal)(e,A.current)||(A.current=e,t.current+=1),(0,Qn.useMemo)(()=>A.current,[t.current])}Tr.useDeepMemo=K3});var At=E(Vr=>{"use strict";Object.defineProperty(Vr,"__esModule",{value:!0});Vr.useLatest=void 0;var $3=require("react");function eQ(e){let A=(0,$3.useRef)(e);return A.current=e,A}Vr.useLatest=eQ});var Cn=E(YA=>{"use strict";var AQ=YA&&YA.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),tQ=YA&&YA.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),P0=YA&&YA.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&AQ(A,e,t);return tQ(A,e),A};Object.defineProperty(YA,"__esModule",{value:!0});YA.handleErrorToastAction=void 0;var aQ=P0(require("fs")),rQ=P0(require("path")),Yr=require("@raycast/api"),iQ=e=>{let A=!0,t="[Extension Name]...",a="";try{let i=JSON.parse(aQ.readFileSync(rQ.join(Yr.environment.assetsPath,"..","package.json"),"utf8"));t=`[${i.title}]...`,a=`https://raycast.com/${i.owner||i.author}/${i.name}`,(!i.owner||i.access==="public")&&(A=!1)}catch{}let r=Yr.environment.isDevelopment||A;return{title:r?"Copy Logs":"Report Error",onAction(i){i.hide(),r?Yr.Clipboard.copy(e?.stack||e?.message||""):(0,Yr.open)(`https://github.com/raycast/extensions/issues/new?&labels=extension%2Cbug&template=extension_bug_report.yml&title=${encodeURIComponent(t)}&extension-url=${encodeURI(a)}&description=${encodeURIComponent(`#### Error: \`\`\` ${e?.stack||e?.message||""} \`\`\` -`)}`)}}};_A.handleErrorToastAction=DQ});var Ua=E(Pr=>{"use strict";Object.defineProperty(Pr,"__esModule",{value:!0});Pr.usePromise=void 0;var vt=require("react"),Zt=require("@raycast/api"),RQ=e2(),jt=st(),vQ=Dn();function NQ(e,A,t){let a=(0,vt.useRef)(0),[r,i]=(0,vt.useState)({isLoading:!0}),s=(0,jt.useLatest)(e),n=(0,jt.useLatest)(t?.abortable),o=(0,jt.useLatest)(A||[]),d=(0,jt.useLatest)(t?.onError),l=(0,jt.useLatest)(t?.onData),p=(0,jt.useLatest)(t?.onWillExecute),g=(0,jt.useLatest)(r.data),c=(0,vt.useRef)(),u=(0,vt.useCallback)((...f)=>{let m=++a.current;return n.current&&(n.current.current?.abort(),n.current.current=new AbortController),p.current?.(f),i(w=>({...w,isLoading:!0})),bQ(s.current)(...f).then(w=>(m===a.current&&(l.current&&l.current(w),i({data:w,isLoading:!1})),w),w=>(w.name=="AbortError"||m===a.current&&(d.current?d.current(w):(console.error(w),Zt.environment.launchType!==Zt.LaunchType.Background&&(0,Zt.showToast)({style:Zt.Toast.Style.Failure,title:"Failed to fetch latest data",message:w.message,primaryAction:{title:"Retry",onAction(R){R.hide(),c.current?.(...o.current||[])}},secondaryAction:(0,vQ.handleErrorToastAction)(w)})),i({error:w,isLoading:!1})),w))},[n,l,d,o,s,i,c,p]);c.current=u;let Q=(0,vt.useCallback)(()=>u(...o.current||[]),[u,o]),B=(0,vt.useCallback)(async(f,m)=>{let w;try{if(m?.optimisticUpdate){typeof m?.rollbackOnError!="function"&&m?.rollbackOnError!==!1&&(w=structuredClone(g.current?.value));let R=m.optimisticUpdate;i(S=>({...S,data:R(S.data)}))}return await f}catch(R){if(typeof m?.rollbackOnError=="function"){let S=m.rollbackOnError;i(x=>({...x,data:S(x.data)}))}else m?.optimisticUpdate&&m?.rollbackOnError!==!1&&i(S=>({...S,data:w}));throw R}finally{m?.shouldRevalidateAfter!==!1&&(Zt.environment.launchType===Zt.LaunchType.Background||Zt.environment.commandMode==="menu-bar"?await Q():Q())}},[Q,g,i]);(0,vt.useEffect)(()=>{t?.execute!==!1?u(...A||[]):n.current&&n.current.current?.abort()},[(0,RQ.useDeepMemo)([A,t?.execute,u]),n]),(0,vt.useEffect)(()=>()=>{n.current&&n.current.current?.abort()},[n]);let C=t?.execute!==!1?r.isLoading:!1;return{...{...r,isLoading:C},revalidate:Q,mutate:B}}Pr.usePromise=NQ;function bQ(e){return e===Promise.all||e===Promise.race||e===Promise.resolve||e===Promise.reject?e.bind(Promise):e}});var Zr=E(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.useCachedState=void 0;var Rn=require("react"),SQ=require("@raycast/api"),vn=st();function kQ(e,A){let t=this[e];return t instanceof Date?`__raycast_cached_date__${t.toString()}`:Buffer.isBuffer(t)?`__raycast_cached_buffer__${t.toString("base64")}`:A}function FQ(e,A){return typeof A=="string"&&A.startsWith("__raycast_cached_date__")?new Date(A.replace("__raycast_cached_date__","")):typeof A=="string"&&A.startsWith("__raycast_cached_buffer__")?Buffer.from(A.replace("__raycast_cached_buffer__",""),"base64"):A}var UQ=Symbol("cache without namespace"),t2=new Map;function LQ(e,A,t){let a=t?.cacheNamespace||UQ,r=t2.get(a)||t2.set(a,new SQ.Cache({namespace:t?.cacheNamespace})).get(a);if(!r)throw new Error("Missing cache");let i=(0,vn.useLatest)(e),s=(0,vn.useLatest)(A),n=(0,Rn.useSyncExternalStore)(r.subscribe,()=>{try{return r.get(i.current)}catch(p){console.error("Could not get Cache data:",p);return}}),o=(0,Rn.useMemo)(()=>{if(typeof n<"u"){if(n==="undefined")return;try{return JSON.parse(n,FQ)}catch(p){return console.warn("The cached data is corrupted",p),s.current}}else return s.current},[n,s]),d=(0,vn.useLatest)(o),l=(0,Rn.useCallback)(p=>{let g=typeof p=="function"?p(d.current):p;if(typeof g>"u")r.set(i.current,"undefined");else{let c=JSON.stringify(g,kQ);r.set(i.current,c)}return g},[r,i,d]);return[o,l]}Wr.useCachedState=LQ});var Sn=E((Xt,n2)=>{"use strict";var Nn=require("crypto");Xt=n2.exports=La;function La(e,A){return A=i2(e,A),MQ(e,A)}Xt.sha1=function(e){return La(e)};Xt.keys=function(e){return La(e,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})};Xt.MD5=function(e){return La(e,{algorithm:"md5",encoding:"hex"})};Xt.keysMD5=function(e){return La(e,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var D1=Nn.getHashes?Nn.getHashes().slice():["sha1","md5"];D1.push("passthrough");var a2=["buffer","hex","binary","base64"];function i2(e,A){A=A||{};var t={};if(t.algorithm=A.algorithm||"sha1",t.encoding=A.encoding||"hex",t.excludeValues=!!A.excludeValues,t.algorithm=t.algorithm.toLowerCase(),t.encoding=t.encoding.toLowerCase(),t.ignoreUnknown=A.ignoreUnknown===!0,t.respectType=A.respectType!==!1,t.respectFunctionNames=A.respectFunctionNames!==!1,t.respectFunctionProperties=A.respectFunctionProperties!==!1,t.unorderedArrays=A.unorderedArrays===!0,t.unorderedSets=A.unorderedSets!==!1,t.unorderedObjects=A.unorderedObjects!==!1,t.replacer=A.replacer||void 0,t.excludeKeys=A.excludeKeys||void 0,typeof e>"u")throw new Error("Object argument required.");for(var a=0;a<D1.length;++a)D1[a].toLowerCase()===t.algorithm.toLowerCase()&&(t.algorithm=D1[a]);if(D1.indexOf(t.algorithm)===-1)throw new Error('Algorithm "'+t.algorithm+'" not supported. supported values: '+D1.join(", "));if(a2.indexOf(t.encoding)===-1&&t.algorithm!=="passthrough")throw new Error('Encoding "'+t.encoding+'" not supported. supported values: '+a2.join(", "));return t}function r2(e){if(typeof e!="function")return!1;var A=/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i;return A.exec(Function.prototype.toString.call(e))!=null}function MQ(e,A){var t;A.algorithm!=="passthrough"?t=Nn.createHash(A.algorithm):t=new s2,typeof t.write>"u"&&(t.write=t.update,t.end=t.update);var a=bn(A,t);if(a.dispatch(e),t.update||t.end(""),t.digest)return t.digest(A.encoding==="buffer"?void 0:A.encoding);var r=t.read();return A.encoding==="buffer"?r:r.toString(A.encoding)}Xt.writeToStream=function(e,A,t){return typeof t>"u"&&(t=A,A={}),A=i2(e,A),bn(A,t).dispatch(e)};function bn(e,A,t){t=t||[];var a=function(r){return A.update?A.update(r,"utf8"):A.write(r,"utf8")};return{dispatch:function(r){e.replacer&&(r=e.replacer(r));var i=typeof r;return r===null&&(i="null"),this["_"+i](r)},_object:function(r){var i=/\[object (.*)\]/i,s=Object.prototype.toString.call(r),n=i.exec(s);n?n=n[1]:n="unknown:["+s+"]",n=n.toLowerCase();var o=null;if((o=t.indexOf(r))>=0)return this.dispatch("[CIRCULAR:"+o+"]");if(t.push(r),typeof Buffer<"u"&&Buffer.isBuffer&&Buffer.isBuffer(r))return a("buffer:"),a(r);if(n!=="object"&&n!=="function"&&n!=="asyncfunction")if(this["_"+n])this["_"+n](r);else{if(e.ignoreUnknown)return a("["+n+"]");throw new Error('Unknown object type "'+n+'"')}else{var d=Object.keys(r);e.unorderedObjects&&(d=d.sort()),e.respectType!==!1&&!r2(r)&&d.splice(0,0,"prototype","__proto__","constructor"),e.excludeKeys&&(d=d.filter(function(p){return!e.excludeKeys(p)})),a("object:"+d.length+":");var l=this;return d.forEach(function(p){l.dispatch(p),a(":"),e.excludeValues||l.dispatch(r[p]),a(",")})}},_array:function(r,i){i=typeof i<"u"?i:e.unorderedArrays!==!1;var s=this;if(a("array:"+r.length+":"),!i||r.length<=1)return r.forEach(function(d){return s.dispatch(d)});var n=[],o=r.map(function(d){var l=new s2,p=t.slice(),g=bn(e,l,p);return g.dispatch(d),n=n.concat(p.slice(t.length)),l.read().toString()});return t=t.concat(n),o.sort(),this._array(o,!1)},_date:function(r){return a("date:"+r.toJSON())},_symbol:function(r){return a("symbol:"+r.toString())},_error:function(r){return a("error:"+r.toString())},_boolean:function(r){return a("bool:"+r.toString())},_string:function(r){a("string:"+r.length+":"),a(r.toString())},_function:function(r){a("fn:"),r2(r)?this.dispatch("[native]"):this.dispatch(r.toString()),e.respectFunctionNames!==!1&&this.dispatch("function-name:"+String(r.name)),e.respectFunctionProperties&&this._object(r)},_number:function(r){return a("number:"+r.toString())},_xml:function(r){return a("xml:"+r.toString())},_null:function(){return a("Null")},_undefined:function(){return a("Undefined")},_regexp:function(r){return a("regex:"+r.toString())},_uint8array:function(r){return a("uint8array:"),this.dispatch(Array.prototype.slice.call(r))},_uint8clampedarray:function(r){return a("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(r))},_int8array:function(r){return a("int8array:"),this.dispatch(Array.prototype.slice.call(r))},_uint16array:function(r){return a("uint16array:"),this.dispatch(Array.prototype.slice.call(r))},_int16array:function(r){return a("int16array:"),this.dispatch(Array.prototype.slice.call(r))},_uint32array:function(r){return a("uint32array:"),this.dispatch(Array.prototype.slice.call(r))},_int32array:function(r){return a("int32array:"),this.dispatch(Array.prototype.slice.call(r))},_float32array:function(r){return a("float32array:"),this.dispatch(Array.prototype.slice.call(r))},_float64array:function(r){return a("float64array:"),this.dispatch(Array.prototype.slice.call(r))},_arraybuffer:function(r){return a("arraybuffer:"),this.dispatch(new Uint8Array(r))},_url:function(r){return a("url:"+r.toString(),"utf8")},_map:function(r){a("map:");var i=Array.from(r);return this._array(i,e.unorderedSets!==!1)},_set:function(r){a("set:");var i=Array.from(r);return this._array(i,e.unorderedSets!==!1)},_file:function(r){return a("file:"),this.dispatch([r.name,r.size,r.type,r.lastModfied])},_blob:function(){if(e.ignoreUnknown)return a("[blob]");throw Error(`Hashing Blob objects is currently not supported +`)}`)}}};YA.handleErrorToastAction=iQ});var va=E(Jr=>{"use strict";Object.defineProperty(Jr,"__esModule",{value:!0});Jr.usePromise=void 0;var ht=require("react"),qt=require("@raycast/api"),sQ=O0(),Ht=At(),nQ=Cn();function oQ(e,A,t){let a=(0,ht.useRef)(0),[r,i]=(0,ht.useState)({isLoading:!0}),s=(0,Ht.useLatest)(e),n=(0,Ht.useLatest)(t?.abortable),o=(0,Ht.useLatest)(A||[]),d=(0,Ht.useLatest)(t?.onError),l=(0,Ht.useLatest)(t?.onData),p=(0,Ht.useLatest)(t?.onWillExecute),g=(0,Ht.useLatest)(r.data),c=(0,ht.useRef)(),u=(0,ht.useCallback)((...w)=>{let I=++a.current;return n.current&&(n.current.current?.abort(),n.current.current=new AbortController),p.current?.(w),i(y=>({...y,isLoading:!0})),dQ(s.current)(...w).then(y=>(I===a.current&&(l.current&&l.current(y),i({data:y,isLoading:!1})),y),y=>(y.name=="AbortError"||I===a.current&&(d.current?d.current(y):(console.error(y),qt.environment.launchType!==qt.LaunchType.Background&&(0,qt.showToast)({style:qt.Toast.Style.Failure,title:"Failed to fetch latest data",message:y.message,primaryAction:{title:"Retry",onAction(b){b.hide(),c.current?.(...o.current||[])}},secondaryAction:(0,nQ.handleErrorToastAction)(y)})),i({error:y,isLoading:!1})),y))},[n,l,d,o,s,i,c,p]);c.current=u;let Q=(0,ht.useCallback)(()=>u(...o.current||[]),[u,o]),m=(0,ht.useCallback)(async(w,I)=>{let y;try{if(I?.optimisticUpdate){typeof I?.rollbackOnError!="function"&&I?.rollbackOnError!==!1&&(y=structuredClone(g.current?.value));let b=I.optimisticUpdate;i(F=>({...F,data:b(F.data)}))}return await w}catch(b){if(typeof I?.rollbackOnError=="function"){let F=I.rollbackOnError;i(x=>({...x,data:F(x.data)}))}else I?.optimisticUpdate&&I?.rollbackOnError!==!1&&i(F=>({...F,data:y}));throw b}finally{I?.shouldRevalidateAfter!==!1&&(qt.environment.launchType===qt.LaunchType.Background||qt.environment.commandMode==="menu-bar"?await Q():Q())}},[Q,g,i]);(0,ht.useEffect)(()=>{t?.execute!==!1?u(...A||[]):n.current&&n.current.current?.abort()},[(0,sQ.useDeepMemo)([A,t?.execute,u]),n]),(0,ht.useEffect)(()=>()=>{n.current&&n.current.current?.abort()},[n]);let C=t?.execute!==!1?r.isLoading:!1;return{...{...r,isLoading:C},revalidate:Q,mutate:m}}Jr.usePromise=oQ;function dQ(e){return e===Promise.all||e===Promise.race||e===Promise.resolve||e===Promise.reject?e.bind(Promise):e}});var xr=E(Gr=>{"use strict";Object.defineProperty(Gr,"__esModule",{value:!0});Gr.useCachedState=void 0;var mn=require("react"),pQ=require("@raycast/api"),Bn=At();function lQ(e,A){let t=this[e];return t instanceof Date?`__raycast_cached_date__${t.toString()}`:Buffer.isBuffer(t)?`__raycast_cached_buffer__${t.toString("base64")}`:A}function gQ(e,A){return typeof A=="string"&&A.startsWith("__raycast_cached_date__")?new Date(A.replace("__raycast_cached_date__","")):typeof A=="string"&&A.startsWith("__raycast_cached_buffer__")?Buffer.from(A.replace("__raycast_cached_buffer__",""),"base64"):A}var cQ=Symbol("cache without namespace"),W0=new Map;function uQ(e,A,t){let a=t?.cacheNamespace||cQ,r=W0.get(a)||W0.set(a,new pQ.Cache({namespace:t?.cacheNamespace})).get(a);if(!r)throw new Error("Missing cache");let i=(0,Bn.useLatest)(e),s=(0,Bn.useLatest)(A),n=(0,mn.useSyncExternalStore)(r.subscribe,()=>{try{return r.get(i.current)}catch(p){console.error("Could not get Cache data:",p);return}}),o=(0,mn.useMemo)(()=>{if(typeof n<"u"){if(n==="undefined")return;try{return JSON.parse(n,gQ)}catch(p){return console.warn("The cached data is corrupted",p),s.current}}else return s.current},[n,s]),d=(0,Bn.useLatest)(o),l=(0,mn.useCallback)(p=>{let g=typeof p=="function"?p(d.current):p;if(typeof g>"u")r.set(i.current,"undefined");else{let c=JSON.stringify(g,lQ);r.set(i.current,c)}return g},[r,i,d]);return[o,l]}Gr.useCachedState=uQ});var fn=E((Ot,K0)=>{"use strict";var hn=require("crypto");Ot=K0.exports=Na;function Na(e,A){return A=X0(e,A),EQ(e,A)}Ot.sha1=function(e){return Na(e)};Ot.keys=function(e){return Na(e,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})};Ot.MD5=function(e){return Na(e,{algorithm:"md5",encoding:"hex"})};Ot.keysMD5=function(e){return Na(e,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var I1=hn.getHashes?hn.getHashes().slice():["sha1","md5"];I1.push("passthrough");var Z0=["buffer","hex","binary","base64"];function X0(e,A){A=A||{};var t={};if(t.algorithm=A.algorithm||"sha1",t.encoding=A.encoding||"hex",t.excludeValues=!!A.excludeValues,t.algorithm=t.algorithm.toLowerCase(),t.encoding=t.encoding.toLowerCase(),t.ignoreUnknown=A.ignoreUnknown===!0,t.respectType=A.respectType!==!1,t.respectFunctionNames=A.respectFunctionNames!==!1,t.respectFunctionProperties=A.respectFunctionProperties!==!1,t.unorderedArrays=A.unorderedArrays===!0,t.unorderedSets=A.unorderedSets!==!1,t.unorderedObjects=A.unorderedObjects!==!1,t.replacer=A.replacer||void 0,t.excludeKeys=A.excludeKeys||void 0,typeof e>"u")throw new Error("Object argument required.");for(var a=0;a<I1.length;++a)I1[a].toLowerCase()===t.algorithm.toLowerCase()&&(t.algorithm=I1[a]);if(I1.indexOf(t.algorithm)===-1)throw new Error('Algorithm "'+t.algorithm+'" not supported. supported values: '+I1.join(", "));if(Z0.indexOf(t.encoding)===-1&&t.algorithm!=="passthrough")throw new Error('Encoding "'+t.encoding+'" not supported. supported values: '+Z0.join(", "));return t}function j0(e){if(typeof e!="function")return!1;var A=/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i;return A.exec(Function.prototype.toString.call(e))!=null}function EQ(e,A){var t;A.algorithm!=="passthrough"?t=hn.createHash(A.algorithm):t=new z0,typeof t.write>"u"&&(t.write=t.update,t.end=t.update);var a=In(A,t);if(a.dispatch(e),t.update||t.end(""),t.digest)return t.digest(A.encoding==="buffer"?void 0:A.encoding);var r=t.read();return A.encoding==="buffer"?r:r.toString(A.encoding)}Ot.writeToStream=function(e,A,t){return typeof t>"u"&&(t=A,A={}),A=X0(e,A),In(A,t).dispatch(e)};function In(e,A,t){t=t||[];var a=function(r){return A.update?A.update(r,"utf8"):A.write(r,"utf8")};return{dispatch:function(r){e.replacer&&(r=e.replacer(r));var i=typeof r;return r===null&&(i="null"),this["_"+i](r)},_object:function(r){var i=/\[object (.*)\]/i,s=Object.prototype.toString.call(r),n=i.exec(s);n?n=n[1]:n="unknown:["+s+"]",n=n.toLowerCase();var o=null;if((o=t.indexOf(r))>=0)return this.dispatch("[CIRCULAR:"+o+"]");if(t.push(r),typeof Buffer<"u"&&Buffer.isBuffer&&Buffer.isBuffer(r))return a("buffer:"),a(r);if(n!=="object"&&n!=="function"&&n!=="asyncfunction")if(this["_"+n])this["_"+n](r);else{if(e.ignoreUnknown)return a("["+n+"]");throw new Error('Unknown object type "'+n+'"')}else{var d=Object.keys(r);e.unorderedObjects&&(d=d.sort()),e.respectType!==!1&&!j0(r)&&d.splice(0,0,"prototype","__proto__","constructor"),e.excludeKeys&&(d=d.filter(function(p){return!e.excludeKeys(p)})),a("object:"+d.length+":");var l=this;return d.forEach(function(p){l.dispatch(p),a(":"),e.excludeValues||l.dispatch(r[p]),a(",")})}},_array:function(r,i){i=typeof i<"u"?i:e.unorderedArrays!==!1;var s=this;if(a("array:"+r.length+":"),!i||r.length<=1)return r.forEach(function(d){return s.dispatch(d)});var n=[],o=r.map(function(d){var l=new z0,p=t.slice(),g=In(e,l,p);return g.dispatch(d),n=n.concat(p.slice(t.length)),l.read().toString()});return t=t.concat(n),o.sort(),this._array(o,!1)},_date:function(r){return a("date:"+r.toJSON())},_symbol:function(r){return a("symbol:"+r.toString())},_error:function(r){return a("error:"+r.toString())},_boolean:function(r){return a("bool:"+r.toString())},_string:function(r){a("string:"+r.length+":"),a(r.toString())},_function:function(r){a("fn:"),j0(r)?this.dispatch("[native]"):this.dispatch(r.toString()),e.respectFunctionNames!==!1&&this.dispatch("function-name:"+String(r.name)),e.respectFunctionProperties&&this._object(r)},_number:function(r){return a("number:"+r.toString())},_xml:function(r){return a("xml:"+r.toString())},_null:function(){return a("Null")},_undefined:function(){return a("Undefined")},_regexp:function(r){return a("regex:"+r.toString())},_uint8array:function(r){return a("uint8array:"),this.dispatch(Array.prototype.slice.call(r))},_uint8clampedarray:function(r){return a("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(r))},_int8array:function(r){return a("int8array:"),this.dispatch(Array.prototype.slice.call(r))},_uint16array:function(r){return a("uint16array:"),this.dispatch(Array.prototype.slice.call(r))},_int16array:function(r){return a("int16array:"),this.dispatch(Array.prototype.slice.call(r))},_uint32array:function(r){return a("uint32array:"),this.dispatch(Array.prototype.slice.call(r))},_int32array:function(r){return a("int32array:"),this.dispatch(Array.prototype.slice.call(r))},_float32array:function(r){return a("float32array:"),this.dispatch(Array.prototype.slice.call(r))},_float64array:function(r){return a("float64array:"),this.dispatch(Array.prototype.slice.call(r))},_arraybuffer:function(r){return a("arraybuffer:"),this.dispatch(new Uint8Array(r))},_url:function(r){return a("url:"+r.toString(),"utf8")},_map:function(r){a("map:");var i=Array.from(r);return this._array(i,e.unorderedSets!==!1)},_set:function(r){a("set:");var i=Array.from(r);return this._array(i,e.unorderedSets!==!1)},_file:function(r){return a("file:"),this.dispatch([r.name,r.size,r.type,r.lastModfied])},_blob:function(){if(e.ignoreUnknown)return a("[blob]");throw Error(`Hashing Blob objects is currently not supported (see https://github.com/puleos/object-hash/issues/26) Use "options.replacer" or "options.ignoreUnknown" -`)},_domwindow:function(){return a("domwindow")},_bigint:function(r){return a("bigint:"+r.toString())},_process:function(){return a("process")},_timer:function(){return a("timer")},_pipe:function(){return a("pipe")},_tcp:function(){return a("tcp")},_udp:function(){return a("udp")},_tty:function(){return a("tty")},_statwatcher:function(){return a("statwatcher")},_securecontext:function(){return a("securecontext")},_connection:function(){return a("connection")},_zlib:function(){return a("zlib")},_context:function(){return a("context")},_nodescript:function(){return a("nodescript")},_httpparser:function(){return a("httpparser")},_dataview:function(){return a("dataview")},_signal:function(){return a("signal")},_fsevent:function(){return a("fsevent")},_tlswrap:function(){return a("tlswrap")}}}function s2(){return{buf:"",write:function(e){this.buf+=e},end:function(e){this.buf+=e},read:function(){return this.buf}}}});var Xr=E(R1=>{"use strict";var TQ=R1&&R1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(R1,"__esModule",{value:!0});R1.useCachedPromise=void 0;var jr=require("react"),o2=TQ(Sn()),VQ=Zr(),YQ=Ua(),JQ=st(),Ma=Symbol();function GQ(e,A,t){let{initialData:a,keepPreviousData:r,...i}=t||{},s=(0,jr.useRef)(),[n,o]=(0,VQ.useCachedState)((0,o2.default)(A||[]),Ma,{cacheNamespace:(0,o2.default)(e)}),d=(0,jr.useRef)(n!==Ma?n:a),{mutate:l,revalidate:p,...g}=(0,YQ.usePromise)(e,A||[],{...i,onData(C){i.onData&&i.onData(C),s.current="promise",d.current=C,o(C)}}),c=n!==Ma?n:a,u=s.current==="promise"?d.current:r?n!==Ma?n:d.current:c,Q=(0,JQ.useLatest)(u),B=(0,jr.useCallback)(async(C,h)=>{let f;try{if(h?.optimisticUpdate){typeof h?.rollbackOnError!="function"&&h?.rollbackOnError!==!1&&(f=structuredClone(Q.current));let m=h.optimisticUpdate(Q.current);s.current="cache",d.current=m,o(m)}return await l(C,{shouldRevalidateAfter:h?.shouldRevalidateAfter})}catch(m){if(typeof h?.rollbackOnError=="function"){let w=h.rollbackOnError(Q.current);s.current="cache",d.current=w,o(w)}else h?.optimisticUpdate&&h?.rollbackOnError!==!1&&(s.current="cache",d.current=f,o(f));throw m}},[o,l,Q,d,s]);return(0,jr.useEffect)(()=>{n!==Ma&&(s.current="cache",d.current=n)},[n]),{data:u,isLoading:g.isLoading,error:g.error,mutate:B,revalidate:p}}R1.useCachedPromise=GQ});var l2=E(zr=>{"use strict";var xQ=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,d2=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,p2=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;zr.format=_Q;zr.parse=HQ;zr.test=qQ;function _Q(e){if(!e||typeof e!="object")throw new TypeError("argument obj is required");var A=e.subtype,t=e.suffix,a=e.type;if(!a||!d2.test(a))throw new TypeError("invalid type");if(!A||!xQ.test(A))throw new TypeError("invalid subtype");var r=a+"/"+A;if(t){if(!d2.test(t))throw new TypeError("invalid suffix");r+="+"+t}return r}function qQ(e){if(!e)throw new TypeError("argument string is required");if(typeof e!="string")throw new TypeError("argument string is required to be a string");return p2.test(e.toLowerCase())}function HQ(e){if(!e)throw new TypeError("argument string is required");if(typeof e!="string")throw new TypeError("argument string is required to be a string");var A=p2.exec(e.toLowerCase());if(!A)throw new TypeError("invalid media type");var t=A[1],a=A[2],r,i=a.lastIndexOf("+");return i!==-1&&(r=a.substr(i+1),a=a.substr(0,i)),new OQ(t,a,r)}function OQ(e,A,t){this.type=e,this.subtype=A,this.suffix=t}});var E2=E(kn=>{"use strict";var g2=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,PQ=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,c2=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,WQ=/\\([\u000b\u0020-\u00ff])/g,ZQ=/([\\"])/g,u2=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;kn.format=jQ;kn.parse=XQ;function jQ(e){if(!e||typeof e!="object")throw new TypeError("argument obj is required");var A=e.parameters,t=e.type;if(!t||!u2.test(t))throw new TypeError("invalid type");var a=t;if(A&&typeof A=="object")for(var r,i=Object.keys(A).sort(),s=0;s<i.length;s++){if(r=i[s],!c2.test(r))throw new TypeError("invalid parameter name");a+="; "+r+"="+KQ(A[r])}return a}function XQ(e){if(!e)throw new TypeError("argument string is required");var A=typeof e=="object"?zQ(e):e;if(typeof A!="string")throw new TypeError("argument string is required to be a string");var t=A.indexOf(";"),a=t!==-1?A.slice(0,t).trim():A.trim();if(!u2.test(a))throw new TypeError("invalid media type");var r=new $Q(a.toLowerCase());if(t!==-1){var i,s,n;for(g2.lastIndex=t;s=g2.exec(A);){if(s.index!==t)throw new TypeError("invalid parameter format");t+=s[0].length,i=s[1].toLowerCase(),n=s[2],n.charCodeAt(0)===34&&(n=n.slice(1,-1),n.indexOf("\\")!==-1&&(n=n.replace(WQ,"$1"))),r.parameters[i]=n}if(t!==A.length)throw new TypeError("invalid parameter format")}return r}function zQ(e){var A;if(typeof e.getHeader=="function"?A=e.getHeader("content-type"):typeof e.headers=="object"&&(A=e.headers&&e.headers["content-type"]),typeof A!="string")throw new TypeError("content-type header is missing from object");return A}function KQ(e){var A=String(e);if(c2.test(A))return A;if(A.length>0&&!PQ.test(A))throw new TypeError("invalid parameter value");return'"'+A.replace(ZQ,"\\$1")+'"'}function $Q(e){this.parameters=Object.create(null),this.type=e}});var B2=E((ON,C2)=>{"use strict";var ie={};C2.exports=ie;function Q2(e){return e<0?-1:1}function e8(e){return e%1===.5&&(e&1)===0?Math.floor(e):Math.round(e)}function Nt(e,A){A.unsigned||--e;let t=A.unsigned?0:-Math.pow(2,e),a=Math.pow(2,e)-1,r=A.moduloBitLength?Math.pow(2,A.moduloBitLength):Math.pow(2,e),i=A.moduloBitLength?Math.pow(2,A.moduloBitLength-1):Math.pow(2,e-1);return function(s,n){n||(n={});let o=+s;if(n.enforceRange){if(!Number.isFinite(o))throw new TypeError("Argument is not a finite number");if(o=Q2(o)*Math.floor(Math.abs(o)),o<t||o>a)throw new TypeError("Argument is not in byte range");return o}if(!isNaN(o)&&n.clamp)return o=e8(o),o<t&&(o=t),o>a&&(o=a),o;if(!Number.isFinite(o)||o===0)return 0;if(o=Q2(o)*Math.floor(Math.abs(o)),o=o%r,!A.unsigned&&o>=i)return o-r;if(A.unsigned){if(o<0)o+=r;else if(o===-0)return 0}return o}}ie.void=function(){};ie.boolean=function(e){return!!e};ie.byte=Nt(8,{unsigned:!1});ie.octet=Nt(8,{unsigned:!0});ie.short=Nt(16,{unsigned:!1});ie["unsigned short"]=Nt(16,{unsigned:!0});ie.long=Nt(32,{unsigned:!1});ie["unsigned long"]=Nt(32,{unsigned:!0});ie["long long"]=Nt(32,{unsigned:!1,moduloBitLength:64});ie["unsigned long long"]=Nt(32,{unsigned:!0,moduloBitLength:64});ie.double=function(e){let A=+e;if(!Number.isFinite(A))throw new TypeError("Argument is not a finite floating-point value");return A};ie["unrestricted double"]=function(e){let A=+e;if(isNaN(A))throw new TypeError("Argument is NaN");return A};ie.float=ie.double;ie["unrestricted float"]=ie["unrestricted double"];ie.DOMString=function(e,A){return A||(A={}),A.treatNullAsEmptyString&&e===null?"":String(e)};ie.ByteString=function(e,A){let t=String(e),a;for(let r=0;(a=t.codePointAt(r))!==void 0;++r)if(a>255)throw new TypeError("Argument is not a valid bytestring");return t};ie.USVString=function(e){let A=String(e),t=A.length,a=[];for(let r=0;r<t;++r){let i=A.charCodeAt(r);if(i<55296||i>57343)a.push(String.fromCodePoint(i));else if(56320<=i&&i<=57343)a.push(String.fromCodePoint(65533));else if(r===t-1)a.push(String.fromCodePoint(65533));else{let s=A.charCodeAt(r+1);if(56320<=s&&s<=57343){let n=i&1023,o=s&1023;a.push(String.fromCodePoint(65536+1024*n+o)),++r}else a.push(String.fromCodePoint(65533))}}return a.join("")};ie.Date=function(e,A){if(!(e instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(e))return e};ie.RegExp=function(e,A){return e instanceof RegExp||(e=new RegExp(e)),e}});var h2=E((PN,bt)=>{"use strict";bt.exports.mixin=function(A,t){let a=Object.getOwnPropertyNames(t);for(let r=0;r<a.length;++r)Object.defineProperty(A,a[r],Object.getOwnPropertyDescriptor(t,a[r]))};bt.exports.wrapperSymbol=Symbol("wrapper");bt.exports.implSymbol=Symbol("impl");bt.exports.wrapperForImpl=function(e){return e[bt.exports.wrapperSymbol]};bt.exports.implForWrapper=function(e){return e[bt.exports.implSymbol]}});var m2=E((WN,A8)=>{A8.exports=[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1e3,1e3],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6e3],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8e3,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8e3]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9e3],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[3e4]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13e3,13e3],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43e3,43e3],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64e3,64e3],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66e3,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[12e4,12e4],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128e3,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23e3]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149e3]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32e3]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195e3,195e3],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[4e4]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918e3,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]});var R2=E((ZN,$r)=>{"use strict";var f2=require("punycode"),I2=m2(),v1={TRANSITIONAL:0,NONTRANSITIONAL:1};function w2(e){return e.split("\0").map(function(A){return A.normalize("NFC")}).join("\0")}function y2(e){for(var A=0,t=I2.length-1;A<=t;){var a=Math.floor((A+t)/2),r=I2[a];if(r[0][0]<=e&&r[0][1]>=e)return r;r[0][0]>e?t=a-1:A=a+1}return null}var t8=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function D2(e){return e.replace(t8,"_").length}function a8(e,A,t){for(var a=!1,r="",i=D2(e),s=0;s<i;++s){var n=e.codePointAt(s),o=y2(n);switch(o[1]){case"disallowed":a=!0,r+=String.fromCodePoint(n);break;case"ignored":break;case"mapped":r+=String.fromCodePoint.apply(String,o[2]);break;case"deviation":t===v1.TRANSITIONAL?r+=String.fromCodePoint.apply(String,o[2]):r+=String.fromCodePoint(n);break;case"valid":r+=String.fromCodePoint(n);break;case"disallowed_STD3_mapped":A?(a=!0,r+=String.fromCodePoint(n)):r+=String.fromCodePoint.apply(String,o[2]);break;case"disallowed_STD3_valid":A&&(a=!0),r+=String.fromCodePoint(n);break}}return{string:r,error:a}}var r8=/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;function i8(e,A){e.substr(0,4)==="xn--"&&(e=f2.toUnicode(e),A=v1.NONTRANSITIONAL);var t=!1;(w2(e)!==e||e[3]==="-"&&e[4]==="-"||e[0]==="-"||e[e.length-1]==="-"||e.indexOf(".")!==-1||e.search(r8)===0)&&(t=!0);for(var a=D2(e),r=0;r<a;++r){var i=y2(e.codePointAt(r));if(Kr===v1.TRANSITIONAL&&i[1]!=="valid"||Kr===v1.NONTRANSITIONAL&&i[1]!=="valid"&&i[1]!=="deviation"){t=!0;break}}return{label:e,error:t}}function Kr(e,A,t){var a=a8(e,A,t);a.string=w2(a.string);for(var r=a.string.split("."),i=0;i<r.length;++i)try{var s=i8(r[i]);r[i]=s.label,a.error=a.error||s.error}catch{a.error=!0}return{string:r.join("."),error:a.error}}$r.exports.toASCII=function(e,A,t,a){var r=Kr(e,A,t),i=r.string.split(".");if(i=i.map(function(o){try{return f2.toASCII(o)}catch{return r.error=!0,o}}),a){var s=i.slice(0,i.length-1).join(".").length;(s.length>253||s.length===0)&&(r.error=!0);for(var n=0;n<i.length;++n)if(i.length>63||i.length===0){r.error=!0;break}}return r.error?null:i.join(".")};$r.exports.toUnicode=function(e,A){var t=Kr(e,A,v1.NONTRANSITIONAL);return{domain:t.string,error:t.error}};$r.exports.PROCESSING_OPTIONS=v1});var qA=E((jN,AA)=>{"use strict";var N1=require("punycode"),v2=R2(),k2={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443},J=Symbol("failure");function N2(e){return N1.ucs2.decode(e).length}function b2(e,A){let t=e[A];return isNaN(t)?void 0:String.fromCodePoint(t)}function Ta(e){return e>=48&&e<=57}function Va(e){return e>=65&&e<=90||e>=97&&e<=122}function s8(e){return Va(e)||Ta(e)}function kA(e){return Ta(e)||e>=65&&e<=70||e>=97&&e<=102}function S2(e){return e==="."||e.toLowerCase()==="%2e"}function n8(e){return e=e.toLowerCase(),e===".."||e==="%2e."||e===".%2e"||e==="%2e%2e"}function o8(e,A){return Va(e)&&(A===58||A===124)}function F2(e){return e.length===2&&Va(e.codePointAt(0))&&(e[1]===":"||e[1]==="|")}function d8(e){return e.length===2&&Va(e.codePointAt(0))&&e[1]===":"}function p8(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/)!==-1}function l8(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)!==-1}function Fn(e){return k2[e]!==void 0}function Ce(e){return Fn(e.scheme)}function g8(e){return k2[e]}function U2(e){let A=e.toString(16).toUpperCase();return A.length===1&&(A="0"+A),"%"+A}function c8(e){let A=new Buffer(e),t="";for(let a=0;a<A.length;++a)t+=U2(A[a]);return t}function u8(e){let A=new Buffer(e),t=[];for(let a=0;a<A.length;++a)A[a]!==37?t.push(A[a]):A[a]===37&&kA(A[a+1])&&kA(A[a+2])?(t.push(parseInt(A.slice(a+1,a+3).toString(),16)),a+=2):t.push(A[a]);return new Buffer(t).toString()}function ei(e){return e<=31||e>126}var E8=new Set([32,34,35,60,62,63,96,123,125]);function L2(e){return ei(e)||E8.has(e)}var Q8=new Set([47,58,59,61,64,91,92,93,94,124]);function Ln(e){return L2(e)||Q8.has(e)}function zt(e,A){let t=String.fromCodePoint(e);return A(e)?c8(t):t}function C8(e){let A=10;return e.length>=2&&e.charAt(0)==="0"&&e.charAt(1).toLowerCase()==="x"?(e=e.substring(2),A=16):e.length>=2&&e.charAt(0)==="0"&&(e=e.substring(1),A=8),e===""?0:(A===10?/[^0-9]/:A===16?/[^0-9A-Fa-f]/:/[^0-7]/).test(e)?J:parseInt(e,A)}function B8(e){let A=e.split(".");if(A[A.length-1]===""&&A.length>1&&A.pop(),A.length>4)return e;let t=[];for(let i of A){if(i==="")return e;let s=C8(i);if(s===J)return e;t.push(s)}for(let i=0;i<t.length-1;++i)if(t[i]>255)return J;if(t[t.length-1]>=Math.pow(256,5-t.length))return J;let a=t.pop(),r=0;for(let i of t)a+=i*Math.pow(256,3-r),++r;return a}function h8(e){let A="",t=e;for(let a=1;a<=4;++a)A=String(t%256)+A,a!==4&&(A="."+A),t=Math.floor(t/256);return A}function m8(e){let A=[0,0,0,0,0,0,0,0],t=0,a=null,r=0;if(e=N1.ucs2.decode(e),e[r]===58){if(e[r+1]!==58)return J;r+=2,++t,a=t}for(;r<e.length;){if(t===8)return J;if(e[r]===58){if(a!==null)return J;++r,++t,a=t;continue}let i=0,s=0;for(;s<4&&kA(e[r]);)i=i*16+parseInt(b2(e,r),16),++r,++s;if(e[r]===46){if(s===0||(r-=s,t>6))return J;let n=0;for(;e[r]!==void 0;){let o=null;if(n>0)if(e[r]===46&&n<4)++r;else return J;if(!Ta(e[r]))return J;for(;Ta(e[r]);){let d=parseInt(b2(e,r));if(o===null)o=d;else{if(o===0)return J;o=o*10+d}if(o>255)return J;++r}A[t]=A[t]*256+o,++n,(n===2||n===4)&&++t}if(n!==4)return J;break}else if(e[r]===58){if(++r,e[r]===void 0)return J}else if(e[r]!==void 0)return J;A[t]=i,++t}if(a!==null){let i=t-a;for(t=7;t!==0&&i>0;){let s=A[a+i-1];A[a+i-1]=A[t],A[t]=s,--t,--i}}else if(a===null&&t!==8)return J;return A}function I8(e){let A="",a=w8(e).idx,r=!1;for(let i=0;i<=7;++i)if(!(r&&e[i]===0)){if(r&&(r=!1),a===i){A+=i===0?"::":":",r=!0;continue}A+=e[i].toString(16),i!==7&&(A+=":")}return A}function Un(e,A){if(e[0]==="[")return e[e.length-1]!=="]"?J:m8(e.substring(1,e.length-1));if(!A)return f8(e);let t=u8(e),a=v2.toASCII(t,!1,v2.PROCESSING_OPTIONS.NONTRANSITIONAL,!1);if(a===null||p8(a))return J;let r=B8(a);return typeof r=="number"||r===J?r:a}function f8(e){if(l8(e))return J;let A="",t=N1.ucs2.decode(e);for(let a=0;a<t.length;++a)A+=zt(t[a],ei);return A}function w8(e){let A=null,t=1,a=null,r=0;for(let i=0;i<e.length;++i)e[i]!==0?(r>t&&(A=a,t=r),a=null,r=0):(a===null&&(a=i),++r);return r>t&&(A=a,t=r),{idx:A,len:t}}function Mn(e){return typeof e=="number"?h8(e):e instanceof Array?"["+I8(e)+"]":e}function y8(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}function D8(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}function M2(e){let A=e.path;A.length!==0&&(e.scheme==="file"&&A.length===1&&v8(A[0])||A.pop())}function T2(e){return e.username!==""||e.password!==""}function R8(e){return e.host===null||e.host===""||e.cannotBeABaseURL||e.scheme==="file"}function v8(e){return/^[A-Za-z]:$/.test(e)}function se(e,A,t,a,r){if(this.pointer=0,this.input=e,this.base=A||null,this.encodingOverride=t||"utf-8",this.stateOverride=r,this.url=a,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};let s=y8(this.input);s!==this.input&&(this.parseError=!0),this.input=s}let i=D8(this.input);for(i!==this.input&&(this.parseError=!0),this.input=i,this.state=r||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=N1.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){let s=this.input[this.pointer],n=isNaN(s)?void 0:String.fromCodePoint(s),o=this["parse "+this.state](s,n);if(o){if(o===J){this.failure=!0;break}}else break}}se.prototype["parse scheme start"]=function(A,t){if(Va(A))this.buffer+=t.toLowerCase(),this.state="scheme";else if(!this.stateOverride)this.state="no scheme",--this.pointer;else return this.parseError=!0,J;return!0};se.prototype["parse scheme"]=function(A,t){if(s8(A)||A===43||A===45||A===46)this.buffer+=t.toLowerCase();else if(A===58){if(this.stateOverride&&(Ce(this.url)&&!Fn(this.buffer)||!Ce(this.url)&&Fn(this.buffer)||(T2(this.url)||this.url.port!==null)&&this.buffer==="file"||this.url.scheme==="file"&&(this.url.host===""||this.url.host===null))||(this.url.scheme=this.buffer,this.buffer="",this.stateOverride))return!1;this.url.scheme==="file"?((this.input[this.pointer+1]!==47||this.input[this.pointer+2]!==47)&&(this.parseError=!0),this.state="file"):Ce(this.url)&&this.base!==null&&this.base.scheme===this.url.scheme?this.state="special relative or authority":Ce(this.url)?this.state="special authority slashes":this.input[this.pointer+1]===47?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else if(!this.stateOverride)this.buffer="",this.state="no scheme",this.pointer=-1;else return this.parseError=!0,J;return!0};se.prototype["parse no scheme"]=function(A){return this.base===null||this.base.cannotBeABaseURL&&A!==35?J:(this.base.cannotBeABaseURL&&A===35?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):this.base.scheme==="file"?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)};se.prototype["parse special relative or authority"]=function(A){return A===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0};se.prototype["parse path or authority"]=function(A){return A===47?this.state="authority":(this.state="path",--this.pointer),!0};se.prototype["parse relative"]=function(A){return this.url.scheme=this.base.scheme,isNaN(A)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):A===47?this.state="relative slash":A===63?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):A===35?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):Ce(this.url)&&A===92?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0};se.prototype["parse relative slash"]=function(A){return Ce(this.url)&&(A===47||A===92)?(A===92&&(this.parseError=!0),this.state="special authority ignore slashes"):A===47?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer),!0};se.prototype["parse special authority slashes"]=function(A){return A===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0};se.prototype["parse special authority ignore slashes"]=function(A){return A!==47&&A!==92?(this.state="authority",--this.pointer):this.parseError=!0,!0};se.prototype["parse authority"]=function(A,t){if(A===64){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;let a=N2(this.buffer);for(let r=0;r<a;++r){let i=this.buffer.codePointAt(r);if(i===58&&!this.passwordTokenSeenFlag){this.passwordTokenSeenFlag=!0;continue}let s=zt(i,Ln);this.passwordTokenSeenFlag?this.url.password+=s:this.url.username+=s}this.buffer=""}else if(isNaN(A)||A===47||A===63||A===35||Ce(this.url)&&A===92){if(this.atFlag&&this.buffer==="")return this.parseError=!0,J;this.pointer-=N2(this.buffer)+1,this.buffer="",this.state="host"}else this.buffer+=t;return!0};se.prototype["parse hostname"]=se.prototype["parse host"]=function(A,t){if(this.stateOverride&&this.url.scheme==="file")--this.pointer,this.state="file host";else if(A===58&&!this.arrFlag){if(this.buffer==="")return this.parseError=!0,J;let a=Un(this.buffer,Ce(this.url));if(a===J)return J;if(this.url.host=a,this.buffer="",this.state="port",this.stateOverride==="hostname")return!1}else if(isNaN(A)||A===47||A===63||A===35||Ce(this.url)&&A===92){if(--this.pointer,Ce(this.url)&&this.buffer==="")return this.parseError=!0,J;if(this.stateOverride&&this.buffer===""&&(T2(this.url)||this.url.port!==null))return this.parseError=!0,!1;let a=Un(this.buffer,Ce(this.url));if(a===J)return J;if(this.url.host=a,this.buffer="",this.state="path start",this.stateOverride)return!1}else A===91?this.arrFlag=!0:A===93&&(this.arrFlag=!1),this.buffer+=t;return!0};se.prototype["parse port"]=function(A,t){if(Ta(A))this.buffer+=t;else if(isNaN(A)||A===47||A===63||A===35||Ce(this.url)&&A===92||this.stateOverride){if(this.buffer!==""){let a=parseInt(this.buffer);if(a>Math.pow(2,16)-1)return this.parseError=!0,J;this.url.port=a===g8(this.url.scheme)?null:a,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}else return this.parseError=!0,J;return!0};var N8=new Set([47,92,63,35]);se.prototype["parse file"]=function(A){return this.url.scheme="file",A===47||A===92?(A===92&&(this.parseError=!0),this.state="file slash"):this.base!==null&&this.base.scheme==="file"?isNaN(A)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):A===63?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):A===35?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(this.input.length-this.pointer-1===0||!o8(A,this.input[this.pointer+1])||this.input.length-this.pointer-1>=2&&!N8.has(this.input[this.pointer+2])?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),M2(this.url)):this.parseError=!0,this.state="path",--this.pointer):(this.state="path",--this.pointer),!0};se.prototype["parse file slash"]=function(A){return A===47||A===92?(A===92&&(this.parseError=!0),this.state="file host"):(this.base!==null&&this.base.scheme==="file"&&(d8(this.base.path[0])?this.url.path.push(this.base.path[0]):this.url.host=this.base.host),this.state="path",--this.pointer),!0};se.prototype["parse file host"]=function(A,t){if(isNaN(A)||A===47||A===92||A===63||A===35)if(--this.pointer,!this.stateOverride&&F2(this.buffer))this.parseError=!0,this.state="path";else if(this.buffer===""){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let a=Un(this.buffer,Ce(this.url));if(a===J)return J;if(a==="localhost"&&(a=""),this.url.host=a,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=t;return!0};se.prototype["parse path start"]=function(A){return Ce(this.url)?(A===92&&(this.parseError=!0),this.state="path",A!==47&&A!==92&&--this.pointer):!this.stateOverride&&A===63?(this.url.query="",this.state="query"):!this.stateOverride&&A===35?(this.url.fragment="",this.state="fragment"):A!==void 0&&(this.state="path",A!==47&&--this.pointer),!0};se.prototype["parse path"]=function(A){if(isNaN(A)||A===47||Ce(this.url)&&A===92||!this.stateOverride&&(A===63||A===35)){if(Ce(this.url)&&A===92&&(this.parseError=!0),n8(this.buffer)?(M2(this.url),A!==47&&!(Ce(this.url)&&A===92)&&this.url.path.push("")):S2(this.buffer)&&A!==47&&!(Ce(this.url)&&A===92)?this.url.path.push(""):S2(this.buffer)||(this.url.scheme==="file"&&this.url.path.length===0&&F2(this.buffer)&&(this.url.host!==""&&this.url.host!==null&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)),this.buffer="",this.url.scheme==="file"&&(A===void 0||A===63||A===35))for(;this.url.path.length>1&&this.url.path[0]==="";)this.parseError=!0,this.url.path.shift();A===63&&(this.url.query="",this.state="query"),A===35&&(this.url.fragment="",this.state="fragment")}else A===37&&(!kA(this.input[this.pointer+1])||!kA(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=zt(A,L2);return!0};se.prototype["parse cannot-be-a-base-URL path"]=function(A){return A===63?(this.url.query="",this.state="query"):A===35?(this.url.fragment="",this.state="fragment"):(!isNaN(A)&&A!==37&&(this.parseError=!0),A===37&&(!kA(this.input[this.pointer+1])||!kA(this.input[this.pointer+2]))&&(this.parseError=!0),isNaN(A)||(this.url.path[0]=this.url.path[0]+zt(A,ei))),!0};se.prototype["parse query"]=function(A,t){if(isNaN(A)||!this.stateOverride&&A===35){(!Ce(this.url)||this.url.scheme==="ws"||this.url.scheme==="wss")&&(this.encodingOverride="utf-8");let a=new Buffer(this.buffer);for(let r=0;r<a.length;++r)a[r]<33||a[r]>126||a[r]===34||a[r]===35||a[r]===60||a[r]===62?this.url.query+=U2(a[r]):this.url.query+=String.fromCodePoint(a[r]);this.buffer="",A===35&&(this.url.fragment="",this.state="fragment")}else A===37&&(!kA(this.input[this.pointer+1])||!kA(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=t;return!0};se.prototype["parse fragment"]=function(A){return isNaN(A)||(A===0?this.parseError=!0:(A===37&&(!kA(this.input[this.pointer+1])||!kA(this.input[this.pointer+2]))&&(this.parseError=!0),this.url.fragment+=zt(A,ei))),!0};function b8(e,A){let t=e.scheme+":";if(e.host!==null?(t+="//",(e.username!==""||e.password!=="")&&(t+=e.username,e.password!==""&&(t+=":"+e.password),t+="@"),t+=Mn(e.host),e.port!==null&&(t+=":"+e.port)):e.host===null&&e.scheme==="file"&&(t+="//"),e.cannotBeABaseURL)t+=e.path[0];else for(let a of e.path)t+="/"+a;return e.query!==null&&(t+="?"+e.query),!A&&e.fragment!==null&&(t+="#"+e.fragment),t}function S8(e){let A=e.scheme+"://";return A+=Mn(e.host),e.port!==null&&(A+=":"+e.port),A}AA.exports.serializeURL=b8;AA.exports.serializeURLOrigin=function(e){switch(e.scheme){case"blob":try{return AA.exports.serializeURLOrigin(AA.exports.parseURL(e.path[0]))}catch{return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return S8({scheme:e.scheme,host:e.host,port:e.port});case"file":return"file://";default:return"null"}};AA.exports.basicURLParse=function(e,A){A===void 0&&(A={});let t=new se(e,A.baseURL,A.encodingOverride,A.url,A.stateOverride);return t.failure?"failure":t.url};AA.exports.setTheUsername=function(e,A){e.username="";let t=N1.ucs2.decode(A);for(let a=0;a<t.length;++a)e.username+=zt(t[a],Ln)};AA.exports.setThePassword=function(e,A){e.password="";let t=N1.ucs2.decode(A);for(let a=0;a<t.length;++a)e.password+=zt(t[a],Ln)};AA.exports.serializeHost=Mn;AA.exports.cannotHaveAUsernamePasswordPort=R8;AA.exports.serializeInteger=function(e){return String(e)};AA.exports.parseURL=function(e,A){return A===void 0&&(A={}),AA.exports.basicURLParse(e,{baseURL:A.baseURL,encodingOverride:A.encodingOverride})}});var Y2=E(V2=>{"use strict";var ne=qA();V2.implementation=class{constructor(A){let t=A[0],a=A[1],r=null;if(a!==void 0&&(r=ne.basicURLParse(a),r==="failure"))throw new TypeError("Invalid base URL");let i=ne.basicURLParse(t,{baseURL:r});if(i==="failure")throw new TypeError("Invalid URL");this._url=i}get href(){return ne.serializeURL(this._url)}set href(A){let t=ne.basicURLParse(A);if(t==="failure")throw new TypeError("Invalid URL");this._url=t}get origin(){return ne.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(A){ne.basicURLParse(A+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(A){ne.cannotHaveAUsernamePasswordPort(this._url)||ne.setTheUsername(this._url,A)}get password(){return this._url.password}set password(A){ne.cannotHaveAUsernamePasswordPort(this._url)||ne.setThePassword(this._url,A)}get host(){let A=this._url;return A.host===null?"":A.port===null?ne.serializeHost(A.host):ne.serializeHost(A.host)+":"+ne.serializeInteger(A.port)}set host(A){this._url.cannotBeABaseURL||ne.basicURLParse(A,{url:this._url,stateOverride:"host"})}get hostname(){return this._url.host===null?"":ne.serializeHost(this._url.host)}set hostname(A){this._url.cannotBeABaseURL||ne.basicURLParse(A,{url:this._url,stateOverride:"hostname"})}get port(){return this._url.port===null?"":ne.serializeInteger(this._url.port)}set port(A){ne.cannotHaveAUsernamePasswordPort(this._url)||(A===""?this._url.port=null:ne.basicURLParse(A,{url:this._url,stateOverride:"port"}))}get pathname(){return this._url.cannotBeABaseURL?this._url.path[0]:this._url.path.length===0?"":"/"+this._url.path.join("/")}set pathname(A){this._url.cannotBeABaseURL||(this._url.path=[],ne.basicURLParse(A,{url:this._url,stateOverride:"path start"}))}get search(){return this._url.query===null||this._url.query===""?"":"?"+this._url.query}set search(A){let t=this._url;if(A===""){t.query=null;return}let a=A[0]==="?"?A.substring(1):A;t.query="",ne.basicURLParse(a,{url:t,stateOverride:"query"})}get hash(){return this._url.fragment===null||this._url.fragment===""?"":"#"+this._url.fragment}set hash(A){if(A===""){this._url.fragment=null;return}let t=A[0]==="#"?A.substring(1):A;this._url.fragment="",ne.basicURLParse(t,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}});var x2=E((KN,Ya)=>{"use strict";var QA=B2(),G2=h2(),J2=Y2(),j=G2.implSymbol;function Ie(e){if(!this||this[j]||!(this instanceof Ie))throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");if(arguments.length<1)throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.");let A=[];for(let t=0;t<arguments.length&&t<2;++t)A[t]=arguments[t];A[0]=QA.USVString(A[0]),A[1]!==void 0&&(A[1]=QA.USVString(A[1])),Ya.exports.setup(this,A)}Ie.prototype.toJSON=function(){if(!this||!Ya.exports.is(this))throw new TypeError("Illegal invocation");let A=[];for(let t=0;t<arguments.length&&t<0;++t)A[t]=arguments[t];return this[j].toJSON.apply(this[j],A)};Object.defineProperty(Ie.prototype,"href",{get(){return this[j].href},set(e){e=QA.USVString(e),this[j].href=e},enumerable:!0,configurable:!0});Ie.prototype.toString=function(){if(!this||!Ya.exports.is(this))throw new TypeError("Illegal invocation");return this.href};Object.defineProperty(Ie.prototype,"origin",{get(){return this[j].origin},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"protocol",{get(){return this[j].protocol},set(e){e=QA.USVString(e),this[j].protocol=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"username",{get(){return this[j].username},set(e){e=QA.USVString(e),this[j].username=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"password",{get(){return this[j].password},set(e){e=QA.USVString(e),this[j].password=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"host",{get(){return this[j].host},set(e){e=QA.USVString(e),this[j].host=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"hostname",{get(){return this[j].hostname},set(e){e=QA.USVString(e),this[j].hostname=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"port",{get(){return this[j].port},set(e){e=QA.USVString(e),this[j].port=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"pathname",{get(){return this[j].pathname},set(e){e=QA.USVString(e),this[j].pathname=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"search",{get(){return this[j].search},set(e){e=QA.USVString(e),this[j].search=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"hash",{get(){return this[j].hash},set(e){e=QA.USVString(e),this[j].hash=e},enumerable:!0,configurable:!0});Ya.exports={is(e){return!!e&&e[j]instanceof J2.implementation},create(e,A){let t=Object.create(Ie.prototype);return this.setup(t,e,A),t},setup(e,A,t){t||(t={}),t.wrapper=e,e[j]=new J2.implementation(A,t),e[j][G2.wrapperSymbol]=e},interface:Ie,expose:{Window:{URL:Ie},Worker:{URL:Ie}}}});var _2=E(HA=>{"use strict";HA.URL=x2().interface;HA.serializeURL=qA().serializeURL;HA.serializeURLOrigin=qA().serializeURLOrigin;HA.basicURLParse=qA().basicURLParse;HA.setTheUsername=qA().setTheUsername;HA.setThePassword=qA().setThePassword;HA.serializeHost=qA().serializeHost;HA.serializeInteger=qA().serializeInteger;HA.parseURL=qA().parseURL});var el=E((OA,$2)=>{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});function k1(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var FA=k1(require("stream")),P2=k1(require("http")),ti=k1(require("url")),W2=k1(_2()),k8=k1(require("https")),Kt=k1(require("zlib")),F8=FA.Readable,nt=Symbol("buffer"),Tn=Symbol("type"),Ga=class e{constructor(){this[Tn]="";let A=arguments[0],t=arguments[1],a=[],r=0;if(A){let s=A,n=Number(s.length);for(let o=0;o<n;o++){let d=s[o],l;d instanceof Buffer?l=d:ArrayBuffer.isView(d)?l=Buffer.from(d.buffer,d.byteOffset,d.byteLength):d instanceof ArrayBuffer?l=Buffer.from(d):d instanceof e?l=d[nt]:l=Buffer.from(typeof d=="string"?d:String(d)),r+=l.length,a.push(l)}}this[nt]=Buffer.concat(a);let i=t&&t.type!==void 0&&String(t.type).toLowerCase();i&&!/[^\u0020-\u007E]/.test(i)&&(this[Tn]=i)}get size(){return this[nt].length}get type(){return this[Tn]}text(){return Promise.resolve(this[nt].toString())}arrayBuffer(){let A=this[nt],t=A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength);return Promise.resolve(t)}stream(){let A=new F8;return A._read=function(){},A.push(this[nt]),A.push(null),A}toString(){return"[object Blob]"}slice(){let A=this.size,t=arguments[0],a=arguments[1],r,i;t===void 0?r=0:t<0?r=Math.max(A+t,0):r=Math.min(t,A),a===void 0?i=A:a<0?i=Math.max(A+a,0):i=Math.min(a,A);let s=Math.max(i-r,0),o=this[nt].slice(r,r+s),d=new e([],{type:arguments[2]});return d[nt]=o,d}};Object.defineProperties(Ga.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});Object.defineProperty(Ga.prototype,Symbol.toStringTag,{value:"Blob",writable:!1,enumerable:!1,configurable:!0});function ve(e,A,t){Error.call(this,e),this.message=e,this.type=A,t&&(this.code=this.errno=t.code),Error.captureStackTrace(this,this.constructor)}ve.prototype=Object.create(Error.prototype);ve.prototype.constructor=ve;ve.prototype.name="FetchError";var Gn;try{Gn=require("encoding").convert}catch{}var dt=Symbol("Body internals"),q2=FA.PassThrough;function fe(e){var A=this,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=t.size;let r=a===void 0?0:a;var i=t.timeout;let s=i===void 0?0:i;e==null?e=null:Z2(e)?e=Buffer.from(e.toString()):Ha(e)||Buffer.isBuffer(e)||(Object.prototype.toString.call(e)==="[object ArrayBuffer]"?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof FA||(e=Buffer.from(String(e)))),this[dt]={body:e,disturbed:!1,error:null},this.size=r,this.timeout=s,e instanceof FA&&e.on("error",function(n){let o=n.name==="AbortError"?n:new ve(`Invalid response body while trying to fetch ${A.url}: ${n.message}`,"system",n);A[dt].error=o})}fe.prototype={get body(){return this[dt].body},get bodyUsed(){return this[dt].disturbed},arrayBuffer(){return b1.call(this).then(function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)})},blob(){let e=this.headers&&this.headers.get("content-type")||"";return b1.call(this).then(function(A){return Object.assign(new Ga([],{type:e.toLowerCase()}),{[nt]:A})})},json(){var e=this;return b1.call(this).then(function(A){try{return JSON.parse(A.toString())}catch(t){return fe.Promise.reject(new ve(`invalid json response body at ${e.url} reason: ${t.message}`,"invalid-json"))}})},text(){return b1.call(this).then(function(e){return e.toString()})},buffer(){return b1.call(this)},textConverted(){var e=this;return b1.call(this).then(function(A){return U8(A,e.headers)})}};Object.defineProperties(fe.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});fe.mixIn=function(e){for(let A of Object.getOwnPropertyNames(fe.prototype))if(!(A in e)){let t=Object.getOwnPropertyDescriptor(fe.prototype,A);Object.defineProperty(e,A,t)}};function b1(){var e=this;if(this[dt].disturbed)return fe.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[dt].disturbed=!0,this[dt].error)return fe.Promise.reject(this[dt].error);let A=this.body;if(A===null)return fe.Promise.resolve(Buffer.alloc(0));if(Ha(A)&&(A=A.stream()),Buffer.isBuffer(A))return fe.Promise.resolve(A);if(!(A instanceof FA))return fe.Promise.resolve(Buffer.alloc(0));let t=[],a=0,r=!1;return new fe.Promise(function(i,s){let n;e.timeout&&(n=setTimeout(function(){r=!0,s(new ve(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))},e.timeout)),A.on("error",function(o){o.name==="AbortError"?(r=!0,s(o)):s(new ve(`Invalid response body while trying to fetch ${e.url}: ${o.message}`,"system",o))}),A.on("data",function(o){if(!(r||o===null)){if(e.size&&a+o.length>e.size){r=!0,s(new ve(`content size at ${e.url} over limit: ${e.size}`,"max-size"));return}a+=o.length,t.push(o)}}),A.on("end",function(){if(!r){clearTimeout(n);try{i(Buffer.concat(t,a))}catch(o){s(new ve(`Could not create Buffer from response body for ${e.url}: ${o.message}`,"system",o))}}})})}function U8(e,A){if(typeof Gn!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let t=A.get("content-type"),a="utf-8",r,i;return t&&(r=/charset=([^;]*)/i.exec(t)),i=e.slice(0,1024).toString(),!r&&i&&(r=/<meta.+?charset=(['"])(.+?)\1/i.exec(i)),!r&&i&&(r=/<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(i),r||(r=/<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i.exec(i),r&&r.pop()),r&&(r=/charset=(.*)/i.exec(r.pop()))),!r&&i&&(r=/<\?xml.+?encoding=(['"])(.+?)\1/i.exec(i)),r&&(a=r.pop(),(a==="gb2312"||a==="gbk")&&(a="gb18030")),Gn(e,"UTF-8",a).toString()}function Z2(e){return typeof e!="object"||typeof e.append!="function"||typeof e.delete!="function"||typeof e.get!="function"||typeof e.getAll!="function"||typeof e.has!="function"||typeof e.set!="function"?!1:e.constructor.name==="URLSearchParams"||Object.prototype.toString.call(e)==="[object URLSearchParams]"||typeof e.sort=="function"}function Ha(e){return typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&typeof e.constructor=="function"&&typeof e.constructor.name=="string"&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function j2(e){let A,t,a=e.body;if(e.bodyUsed)throw new Error("cannot clone body after it is used");return a instanceof FA&&typeof a.getBoundary!="function"&&(A=new q2,t=new q2,a.pipe(A),a.pipe(t),e[dt].body=A,a=t),a}function X2(e){return e===null?null:typeof e=="string"?"text/plain;charset=UTF-8":Z2(e)?"application/x-www-form-urlencoded;charset=UTF-8":Ha(e)?e.type||null:Buffer.isBuffer(e)||Object.prototype.toString.call(e)==="[object ArrayBuffer]"||ArrayBuffer.isView(e)?null:typeof e.getBoundary=="function"?`multipart/form-data;boundary=${e.getBoundary()}`:e instanceof FA?null:"text/plain;charset=UTF-8"}function z2(e){let A=e.body;return A===null?0:Ha(A)?A.size:Buffer.isBuffer(A)?A.length:A&&typeof A.getLengthSync=="function"&&(A._lengthRetrievers&&A._lengthRetrievers.length==0||A.hasKnownLength&&A.hasKnownLength())?A.getLengthSync():null}function L8(e,A){let t=A.body;t===null?e.end():Ha(t)?t.stream().pipe(e):Buffer.isBuffer(t)?(e.write(t),e.end()):t.pipe(e)}fe.Promise=global.Promise;var K2=/[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/,xn=/[^\t\x20-\x7e\x80-\xff]/;function Ja(e){if(e=`${e}`,K2.test(e)||e==="")throw new TypeError(`${e} is not a legal HTTP header name`)}function H2(e){if(e=`${e}`,xn.test(e))throw new TypeError(`${e} is not a legal HTTP header value`)}function S1(e,A){A=A.toLowerCase();for(let t in e)if(t.toLowerCase()===A)return t}var pe=Symbol("map"),BA=class e{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0;if(this[pe]=Object.create(null),A instanceof e){let t=A.raw(),a=Object.keys(t);for(let r of a)for(let i of t[r])this.append(r,i);return}if(A!=null)if(typeof A=="object"){let t=A[Symbol.iterator];if(t!=null){if(typeof t!="function")throw new TypeError("Header pairs must be iterable");let a=[];for(let r of A){if(typeof r!="object"||typeof r[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");a.push(Array.from(r))}for(let r of a){if(r.length!==2)throw new TypeError("Each header pair must be a name/value tuple");this.append(r[0],r[1])}}else for(let a of Object.keys(A)){let r=A[a];this.append(a,r)}}else throw new TypeError("Provided initializer must be an object")}get(A){A=`${A}`,Ja(A);let t=S1(this[pe],A);return t===void 0?null:this[pe][t].join(", ")}forEach(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,a=_n(this),r=0;for(;r<a.length;){var i=a[r];let s=i[0],n=i[1];A.call(t,n,s,this),a=_n(this),r++}}set(A,t){A=`${A}`,t=`${t}`,Ja(A),H2(t);let a=S1(this[pe],A);this[pe][a!==void 0?a:A]=[t]}append(A,t){A=`${A}`,t=`${t}`,Ja(A),H2(t);let a=S1(this[pe],A);a!==void 0?this[pe][a].push(t):this[pe][A]=[t]}has(A){return A=`${A}`,Ja(A),S1(this[pe],A)!==void 0}delete(A){A=`${A}`,Ja(A);let t=S1(this[pe],A);t!==void 0&&delete this[pe][t]}raw(){return this[pe]}keys(){return Vn(this,"key")}values(){return Vn(this,"value")}[Symbol.iterator](){return Vn(this,"key+value")}};BA.prototype.entries=BA.prototype[Symbol.iterator];Object.defineProperty(BA.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(BA.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});function _n(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"key+value";return Object.keys(e[pe]).sort().map(A==="key"?function(a){return a.toLowerCase()}:A==="value"?function(a){return e[pe][a].join(", ")}:function(a){return[a.toLowerCase(),e[pe][a].join(", ")]})}var qn=Symbol("internal");function Vn(e,A){let t=Object.create(Hn);return t[qn]={target:e,kind:A,index:0},t}var Hn=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==Hn)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[qn];let A=e.target,t=e.kind,a=e.index,r=_n(A,t),i=r.length;return a>=i?{value:void 0,done:!0}:(this[qn].index=a+1,{value:r[a],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(Hn,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});function M8(e){let A=Object.assign({__proto__:null},e[pe]),t=S1(e[pe],"Host");return t!==void 0&&(A[t]=A[t][0]),A}function T8(e){let A=new BA;for(let t of Object.keys(e))if(!K2.test(t))if(Array.isArray(e[t]))for(let a of e[t])xn.test(a)||(A[pe][t]===void 0?A[pe][t]=[a]:A[pe][t].push(a));else xn.test(e[t])||(A[pe][t]=[e[t]]);return A}var St=Symbol("Response internals"),V8=P2.STATUS_CODES,CA=class e{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};fe.call(this,A,t);let a=t.status||200,r=new BA(t.headers);if(A!=null&&!r.has("Content-Type")){let i=X2(A);i&&r.append("Content-Type",i)}this[St]={url:t.url,status:a,statusText:t.statusText||V8[a],headers:r,counter:t.counter}}get url(){return this[St].url||""}get status(){return this[St].status}get ok(){return this[St].status>=200&&this[St].status<300}get redirected(){return this[St].counter>0}get statusText(){return this[St].statusText}get headers(){return this[St].headers}clone(){return new e(j2(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}};fe.mixIn(CA.prototype);Object.defineProperties(CA.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});Object.defineProperty(CA.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});var ot=Symbol("Request internals"),Y8=ti.URL||W2.URL,J8=ti.parse,G8=ti.format;function Yn(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)&&(e=new Y8(e).toString()),J8(e)}var x8="destroy"in FA.Readable.prototype;function Ai(e){return typeof e=="object"&&typeof e[ot]=="object"}function _8(e){let A=e&&typeof e=="object"&&Object.getPrototypeOf(e);return!!(A&&A.constructor.name==="AbortSignal")}var Ft=class e{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a;Ai(A)?a=Yn(A.url):(A&&A.href?a=Yn(A.href):a=Yn(`${A}`),A={});let r=t.method||A.method||"GET";if(r=r.toUpperCase(),(t.body!=null||Ai(A)&&A.body!==null)&&(r==="GET"||r==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let i=t.body!=null?t.body:Ai(A)&&A.body!==null?j2(A):null;fe.call(this,i,{timeout:t.timeout||A.timeout||0,size:t.size||A.size||0});let s=new BA(t.headers||A.headers||{});if(i!=null&&!s.has("Content-Type")){let o=X2(i);o&&s.append("Content-Type",o)}let n=Ai(A)?A.signal:null;if("signal"in t&&(n=t.signal),n!=null&&!_8(n))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[ot]={method:r,redirect:t.redirect||A.redirect||"follow",headers:s,parsedURL:a,signal:n},this.follow=t.follow!==void 0?t.follow:A.follow!==void 0?A.follow:20,this.compress=t.compress!==void 0?t.compress:A.compress!==void 0?A.compress:!0,this.counter=t.counter||A.counter||0,this.agent=t.agent||A.agent}get method(){return this[ot].method}get url(){return G8(this[ot].parsedURL)}get headers(){return this[ot].headers}get redirect(){return this[ot].redirect}get signal(){return this[ot].signal}clone(){return new e(this)}};fe.mixIn(Ft.prototype);Object.defineProperty(Ft.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(Ft.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}});function q8(e){let A=e[ot].parsedURL,t=new BA(e[ot].headers);if(t.has("Accept")||t.set("Accept","*/*"),!A.protocol||!A.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(A.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof FA.Readable&&!x8)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let a=null;if(e.body==null&&/^(POST|PUT)$/i.test(e.method)&&(a="0"),e.body!=null){let i=z2(e);typeof i=="number"&&(a=String(i))}a&&t.set("Content-Length",a),t.has("User-Agent")||t.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!t.has("Accept-Encoding")&&t.set("Accept-Encoding","gzip,deflate");let r=e.agent;return typeof r=="function"&&(r=r(A)),!t.has("Connection")&&!r&&t.set("Connection","close"),Object.assign({},A,{method:e.method,headers:M8(t),agent:r})}function xa(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}xa.prototype=Object.create(Error.prototype);xa.prototype.constructor=xa;xa.prototype.name="AbortError";var qa=ti.URL||W2.URL,O2=FA.PassThrough,H8=function(A,t){let a=new qa(t).hostname,r=new qa(A).hostname;return a===r||a[a.length-r.length-1]==="."&&a.endsWith(r)},O8=function(A,t){let a=new qa(t).protocol,r=new qa(A).protocol;return a===r};function kt(e,A){if(!kt.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return fe.Promise=kt.Promise,new kt.Promise(function(t,a){let r=new Ft(e,A),i=q8(r),s=(i.protocol==="https:"?k8:P2).request,n=r.signal,o=null,d=function(){let Q=new xa("The user aborted a request.");a(Q),r.body&&r.body instanceof FA.Readable&&Jn(r.body,Q),!(!o||!o.body)&&o.body.emit("error",Q)};if(n&&n.aborted){d();return}let l=function(){d(),c()},p=s(i),g;n&&n.addEventListener("abort",l);function c(){p.abort(),n&&n.removeEventListener("abort",l),clearTimeout(g)}r.timeout&&p.once("socket",function(u){g=setTimeout(function(){a(new ve(`network timeout at: ${r.url}`,"request-timeout")),c()},r.timeout)}),p.on("error",function(u){a(new ve(`request to ${r.url} failed, reason: ${u.message}`,"system",u)),o&&o.body&&Jn(o.body,u),c()}),P8(p,function(u){n&&n.aborted||o&&o.body&&Jn(o.body,u)}),parseInt(process.version.substring(1))<14&&p.on("socket",function(u){u.addListener("close",function(Q){let B=u.listenerCount("data")>0;if(o&&B&&!Q&&!(n&&n.aborted)){let C=new Error("Premature close");C.code="ERR_STREAM_PREMATURE_CLOSE",o.body.emit("error",C)}})}),p.on("response",function(u){clearTimeout(g);let Q=T8(u.headers);if(kt.isRedirect(u.statusCode)){let m=Q.get("Location"),w=null;try{w=m===null?null:new qa(m,r.url).toString()}catch{if(r.redirect!=="manual"){a(new ve(`uri requested responds with an invalid redirect URL: ${m}`,"invalid-redirect")),c();return}}switch(r.redirect){case"error":a(new ve(`uri requested responds with a redirect, redirect mode is set to error: ${r.url}`,"no-redirect")),c();return;case"manual":if(w!==null)try{Q.set("Location",w)}catch(S){a(S)}break;case"follow":if(w===null)break;if(r.counter>=r.follow){a(new ve(`maximum redirect reached at: ${r.url}`,"max-redirect")),c();return}let R={headers:new BA(r.headers),follow:r.follow,counter:r.counter+1,agent:r.agent,compress:r.compress,method:r.method,body:r.body,signal:r.signal,timeout:r.timeout,size:r.size};if(!H8(r.url,w)||!O8(r.url,w))for(let S of["authorization","www-authenticate","cookie","cookie2"])R.headers.delete(S);if(u.statusCode!==303&&r.body&&z2(r)===null){a(new ve("Cannot follow redirect with body being a readable stream","unsupported-redirect")),c();return}(u.statusCode===303||(u.statusCode===301||u.statusCode===302)&&r.method==="POST")&&(R.method="GET",R.body=void 0,R.headers.delete("content-length")),t(kt(new Ft(w,R))),c();return}}u.once("end",function(){n&&n.removeEventListener("abort",l)});let B=u.pipe(new O2),C={url:r.url,status:u.statusCode,statusText:u.statusMessage,headers:Q,size:r.size,timeout:r.timeout,counter:r.counter},h=Q.get("Content-Encoding");if(!r.compress||r.method==="HEAD"||h===null||u.statusCode===204||u.statusCode===304){o=new CA(B,C),t(o);return}let f={flush:Kt.Z_SYNC_FLUSH,finishFlush:Kt.Z_SYNC_FLUSH};if(h=="gzip"||h=="x-gzip"){B=B.pipe(Kt.createGunzip(f)),o=new CA(B,C),t(o);return}if(h=="deflate"||h=="x-deflate"){let m=u.pipe(new O2);m.once("data",function(w){(w[0]&15)===8?B=B.pipe(Kt.createInflate()):B=B.pipe(Kt.createInflateRaw()),o=new CA(B,C),t(o)}),m.on("end",function(){o||(o=new CA(B,C),t(o))});return}if(h=="br"&&typeof Kt.createBrotliDecompress=="function"){B=B.pipe(Kt.createBrotliDecompress()),o=new CA(B,C),t(o);return}o=new CA(B,C),t(o)}),L8(p,r)})}function P8(e,A){let t;e.on("socket",function(a){t=a}),e.on("response",function(a){let r=a.headers;r["transfer-encoding"]==="chunked"&&!r["content-length"]&&a.once("close",function(i){if(t&&t.listenerCount("data")>0&&!i){let n=new Error("Premature close");n.code="ERR_STREAM_PREMATURE_CLOSE",A(n)}})})}function Jn(e,A){e.destroy?e.destroy(A):(e.emit("error",A),e.end())}kt.isRedirect=function(e){return e===301||e===302||e===303||e===307||e===308};kt.Promise=global.Promise;$2.exports=OA=kt;Object.defineProperty(OA,"__esModule",{value:!0});OA.default=OA;OA.Headers=BA;OA.Request=Ft;OA.Response=CA;OA.FetchError=ve});var tl=E(($t,Al)=>{var Oa=el(),W8=Oa.default||Oa,ai=function(e,A){return/^\/\//.test(e)&&(e="https:"+e),W8.call(this,e,A)};ai.ponyfill=!0;Al.exports=$t=ai;$t.fetch=ai;$t.Headers=Oa.Headers;$t.Request=Oa.Request;$t.Response=Oa.Response;$t.default=ai});var il=E(F1=>{"use strict";var rl=F1&&F1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(F1,"__esModule",{value:!0});F1.useFetch=void 0;var al=require("react"),Z8=rl(l2()),j8=rl(E2()),X8=Xr(),z8=st(),K8=tl();function $8(e){if(e){let A=j8.default.parse(e),t=Z8.default.parse(A.type);if(t.subtype==="json"||t.suffix==="json"||t.suffix&&/\bjson\b/i.test(t.suffix)||t.subtype&&/\bjson\b/i.test(t.subtype))return!0}return!1}async function e5(e){if(!e.ok)throw new Error(e.statusText);let A=e.headers.get("content-type");return A&&$8(A)?await e.json():await e.text()}function A5(e,A){let{parseResponse:t,initialData:a,execute:r,keepPreviousData:i,onError:s,onData:n,onWillExecute:o,...d}=A||{},l={initialData:a,execute:r,keepPreviousData:i,onError:s,onData:n,onWillExecute:o},p=(0,z8.useLatest)(t||e5),g=(0,al.useRef)(),c=(0,al.useCallback)(async(u,Q)=>{let B=await(0,K8.fetch)(u,{signal:g.current?.signal,...Q});return await p.current(B)},[p]);return(0,X8.useCachedPromise)(c,[e,d],{...l,abortable:g})}F1.useFetch=A5});var sl=E(e1=>{"use strict";Object.defineProperty(e1,"__esModule",{value:!0});e1.signals=void 0;e1.signals=[];e1.signals.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&e1.signals.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&e1.signals.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT")});var nl=E(PA=>{"use strict";var ri;Object.defineProperty(PA,"__esModule",{value:!0});PA.unload=PA.load=PA.onExit=PA.signals=void 0;var ii=sl();Object.defineProperty(PA,"signals",{enumerable:!0,get:function(){return ii.signals}});var si=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",On=Symbol.for("signal-exit emitter"),Pn=globalThis,t5=Object.defineProperty.bind(Object),Wn=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Pn[On])return Pn[On];t5(Pn,On,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(A,t){this.listeners[A].push(t)}removeListener(A,t){let a=this.listeners[A],r=a.indexOf(t);r!==-1&&(r===0&&a.length===1?a.length=0:a.splice(r,1))}emit(A,t,a){if(this.emitted[A])return!1;this.emitted[A]=!0;let r=!1;for(let i of this.listeners[A])r=i(t,a)===!0||r;return A==="exit"&&(r=this.emit("afterExit",t,a)||r),r}},ni=class{},a5=e=>({onExit(A,t){return e.onExit(A,t)},load(){return e.load()},unload(){return e.unload()}}),Zn=class extends ni{onExit(){return()=>{}}load(){}unload(){}},jn=class extends ni{#e=Xn.platform==="win32"?"SIGINT":"SIGHUP";#a=new Wn;#A;#t;#r;#s={};#i=!1;constructor(A){super(),this.#A=A,this.#s={};for(let t of ii.signals)this.#s[t]=()=>{let a=this.#A.listeners(t),{count:r}=this.#a,i=A;if(typeof i.__signal_exit_emitter__=="object"&&typeof i.__signal_exit_emitter__.count=="number"&&(r+=i.__signal_exit_emitter__.count),a.length===r){this.unload();let s=this.#a.emit("exit",null,t),n=t==="SIGHUP"?this.#e:t;s||A.kill(A.pid,n)}};this.#r=A.reallyExit,this.#t=A.emit}onExit(A,t){if(!si(this.#A))return()=>{};this.#i===!1&&this.load();let a=t?.alwaysLast?"afterExit":"exit";return this.#a.on(a,A),()=>{this.#a.removeListener(a,A),this.#a.listeners.exit.length===0&&this.#a.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#i){this.#i=!0,this.#a.count+=1;for(let A of ii.signals)try{let t=this.#s[A];t&&this.#A.on(A,t)}catch{}this.#A.emit=(A,...t)=>this.#o(A,...t),this.#A.reallyExit=A=>this.#n(A)}}unload(){this.#i&&(this.#i=!1,ii.signals.forEach(A=>{let t=this.#s[A];if(!t)throw new Error("Listener not defined for signal: "+A);try{this.#A.removeListener(A,t)}catch{}}),this.#A.emit=this.#t,this.#A.reallyExit=this.#r,this.#a.count-=1)}#n(A){return si(this.#A)?(this.#A.exitCode=A||0,this.#a.emit("exit",this.#A.exitCode,null),this.#r.call(this.#A,this.#A.exitCode)):0}#o(A,...t){let a=this.#t;if(A==="exit"&&si(this.#A)){typeof t[0]=="number"&&(this.#A.exitCode=t[0]);let r=a.call(this.#A,A,...t);return this.#a.emit("exit",this.#A.exitCode,null),r}else return a.call(this.#A,A,...t)}},Xn=globalThis.process;ri=a5(si(Xn)?new jn(Xn):new Zn),PA.onExit=ri.onExit,PA.load=ri.load,PA.unload=ri.unload});var oi=E(hA=>{"use strict";var r5=hA&&hA.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(hA,"__esModule",{value:!0});hA.defaultParsing=hA.handleOutput=hA.getSpawnedResult=hA.getSpawnedPromise=void 0;var i5=require("node:buffer"),pl=r5(require("node:stream")),s5=require("node:util"),n5=nl();function o5(e,{timeout:A}={}){let t=new Promise((n,o)=>{e.on("exit",(d,l)=>{n({exitCode:d,signal:l,timedOut:!1})}),e.on("error",d=>{o(d)}),e.stdin&&e.stdin.on("error",d=>{o(d)})});if(A===0||A===void 0)return t;let a,r=new Promise((n,o)=>{a=setTimeout(()=>{e.kill("SIGTERM"),o(Object.assign(new Error("Timed out"),{timedOut:!0,signal:"SIGTERM"}))},A)}),i=t.finally(()=>{clearTimeout(a)}),s=(0,n5.onExit)(()=>{e.kill()});return Promise.race([r,i]).finally(()=>s())}hA.getSpawnedPromise=o5;var zn=class extends Error{constructor(){super("The output is too big"),this.name="MaxBufferError"}},d5=(0,s5.promisify)(pl.default.pipeline);function p5(e){let{encoding:A}=e,t=A==="buffer",a=new pl.default.PassThrough({objectMode:!1});A&&A!=="buffer"&&a.setEncoding(A);let r=0,i=[];return a.on("data",s=>{i.push(s),r+=s.length}),a.getBufferedValue=()=>t?Buffer.concat(i,r):i.join(""),a.getBufferedLength=()=>r,a}async function ol(e,A){let t=p5(A);return await new Promise((a,r)=>{let i=s=>{s&&t.getBufferedLength()<=i5.constants.MAX_LENGTH&&(s.bufferedData=t.getBufferedValue()),r(s)};(async()=>{try{await d5(e,t),a()}catch(s){i(s)}})(),t.on("data",()=>{t.getBufferedLength()>1e3*1e3*80&&i(new zn)})}),t.getBufferedValue()}async function dl(e,A){e.destroy();try{return await A}catch(t){return t.bufferedData}}async function l5({stdout:e,stderr:A},{encoding:t},a){let r=ol(e,{encoding:t}),i=ol(A,{encoding:t});try{return await Promise.all([a,r,i])}catch(s){return Promise.all([{error:s,exitCode:null,signal:s.signal,timedOut:s.timedOut||!1},dl(e,r),dl(A,i)])}}hA.getSpawnedResult=l5;function g5(e){let A=typeof e=="string"?` -`:10,t=typeof e=="string"?"\r":13;return e[e.length-1]===A&&(e=e.slice(0,-1)),e[e.length-1]===t&&(e=e.slice(0,-1)),e}function c5(e,A){return e.stripFinalNewline?g5(A):A}hA.handleOutput=c5;var u5=({timedOut:e,timeout:A,signal:t,exitCode:a})=>e?`timed out after ${A} milliseconds`:t!=null?`was killed with ${t}`:a!=null?`failed with exit code ${a}`:"failed",E5=({stdout:e,stderr:A,error:t,signal:a,exitCode:r,command:i,timedOut:s,options:n,parentError:o})=>{let l=`Command ${u5({timedOut:s,timeout:n?.timeout,signal:a,exitCode:r})}: ${i}`,p=t?`${l} +`)},_domwindow:function(){return a("domwindow")},_bigint:function(r){return a("bigint:"+r.toString())},_process:function(){return a("process")},_timer:function(){return a("timer")},_pipe:function(){return a("pipe")},_tcp:function(){return a("tcp")},_udp:function(){return a("udp")},_tty:function(){return a("tty")},_statwatcher:function(){return a("statwatcher")},_securecontext:function(){return a("securecontext")},_connection:function(){return a("connection")},_zlib:function(){return a("zlib")},_context:function(){return a("context")},_nodescript:function(){return a("nodescript")},_httpparser:function(){return a("httpparser")},_dataview:function(){return a("dataview")},_signal:function(){return a("signal")},_fsevent:function(){return a("fsevent")},_tlswrap:function(){return a("tlswrap")}}}function z0(){return{buf:"",write:function(e){this.buf+=e},end:function(e){this.buf+=e},read:function(){return this.buf}}}});var qr=E(f1=>{"use strict";var QQ=f1&&f1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f1,"__esModule",{value:!0});f1.useCachedPromise=void 0;var _r=require("react"),$0=QQ(fn()),CQ=xr(),mQ=va(),BQ=At(),ba=Symbol();function hQ(e,A,t){let{initialData:a,keepPreviousData:r,...i}=t||{},s=(0,_r.useRef)(),[n,o]=(0,CQ.useCachedState)((0,$0.default)(A||[]),ba,{cacheNamespace:(0,$0.default)(e)}),d=(0,_r.useRef)(n!==ba?n:a),{mutate:l,revalidate:p,...g}=(0,mQ.usePromise)(e,A||[],{...i,onData(C){i.onData&&i.onData(C),s.current="promise",d.current=C,o(C)}}),c=n!==ba?n:a,u=s.current==="promise"?d.current:r?n!==ba?n:d.current:c,Q=(0,BQ.useLatest)(u),m=(0,_r.useCallback)(async(C,B)=>{let w;try{if(B?.optimisticUpdate){typeof B?.rollbackOnError!="function"&&B?.rollbackOnError!==!1&&(w=structuredClone(Q.current));let I=B.optimisticUpdate(Q.current);s.current="cache",d.current=I,o(I)}return await l(C,{shouldRevalidateAfter:B?.shouldRevalidateAfter})}catch(I){if(typeof B?.rollbackOnError=="function"){let y=B.rollbackOnError(Q.current);s.current="cache",d.current=y,o(y)}else B?.optimisticUpdate&&B?.rollbackOnError!==!1&&(s.current="cache",d.current=w,o(w));throw I}},[o,l,Q,d,s]);return(0,_r.useEffect)(()=>{n!==ba&&(s.current="cache",d.current=n)},[n]),{data:u,isLoading:g.isLoading,error:g.error,mutate:m,revalidate:p}}f1.useCachedPromise=hQ});var t2=E(Hr=>{"use strict";var IQ=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,e2=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,A2=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;Hr.format=fQ;Hr.parse=yQ;Hr.test=wQ;function fQ(e){if(!e||typeof e!="object")throw new TypeError("argument obj is required");var A=e.subtype,t=e.suffix,a=e.type;if(!a||!e2.test(a))throw new TypeError("invalid type");if(!A||!IQ.test(A))throw new TypeError("invalid subtype");var r=a+"/"+A;if(t){if(!e2.test(t))throw new TypeError("invalid suffix");r+="+"+t}return r}function wQ(e){if(!e)throw new TypeError("argument string is required");if(typeof e!="string")throw new TypeError("argument string is required to be a string");return A2.test(e.toLowerCase())}function yQ(e){if(!e)throw new TypeError("argument string is required");if(typeof e!="string")throw new TypeError("argument string is required to be a string");var A=A2.exec(e.toLowerCase());if(!A)throw new TypeError("invalid media type");var t=A[1],a=A[2],r,i=a.lastIndexOf("+");return i!==-1&&(r=a.substr(i+1),a=a.substr(0,i)),new DQ(t,a,r)}function DQ(e,A,t){this.type=e,this.subtype=A,this.suffix=t}});var s2=E(wn=>{"use strict";var a2=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,RQ=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,r2=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,vQ=/\\([\u000b\u0020-\u00ff])/g,NQ=/([\\"])/g,i2=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;wn.format=bQ;wn.parse=SQ;function bQ(e){if(!e||typeof e!="object")throw new TypeError("argument obj is required");var A=e.parameters,t=e.type;if(!t||!i2.test(t))throw new TypeError("invalid type");var a=t;if(A&&typeof A=="object")for(var r,i=Object.keys(A).sort(),s=0;s<i.length;s++){if(r=i[s],!r2.test(r))throw new TypeError("invalid parameter name");a+="; "+r+"="+FQ(A[r])}return a}function SQ(e){if(!e)throw new TypeError("argument string is required");var A=typeof e=="object"?kQ(e):e;if(typeof A!="string")throw new TypeError("argument string is required to be a string");var t=A.indexOf(";"),a=t!==-1?A.slice(0,t).trim():A.trim();if(!i2.test(a))throw new TypeError("invalid media type");var r=new UQ(a.toLowerCase());if(t!==-1){var i,s,n;for(a2.lastIndex=t;s=a2.exec(A);){if(s.index!==t)throw new TypeError("invalid parameter format");t+=s[0].length,i=s[1].toLowerCase(),n=s[2],n.charCodeAt(0)===34&&(n=n.slice(1,-1),n.indexOf("\\")!==-1&&(n=n.replace(vQ,"$1"))),r.parameters[i]=n}if(t!==A.length)throw new TypeError("invalid parameter format")}return r}function kQ(e){var A;if(typeof e.getHeader=="function"?A=e.getHeader("content-type"):typeof e.headers=="object"&&(A=e.headers&&e.headers["content-type"]),typeof A!="string")throw new TypeError("content-type header is missing from object");return A}function FQ(e){var A=String(e);if(r2.test(A))return A;if(A.length>0&&!RQ.test(A))throw new TypeError("invalid parameter value");return'"'+A.replace(NQ,"\\$1")+'"'}function UQ(e){this.parameters=Object.create(null),this.type=e}});var d2=E((sN,o2)=>{"use strict";var ie={};o2.exports=ie;function n2(e){return e<0?-1:1}function LQ(e){return e%1===.5&&(e&1)===0?Math.floor(e):Math.round(e)}function It(e,A){A.unsigned||--e;let t=A.unsigned?0:-Math.pow(2,e),a=Math.pow(2,e)-1,r=A.moduloBitLength?Math.pow(2,A.moduloBitLength):Math.pow(2,e),i=A.moduloBitLength?Math.pow(2,A.moduloBitLength-1):Math.pow(2,e-1);return function(s,n){n||(n={});let o=+s;if(n.enforceRange){if(!Number.isFinite(o))throw new TypeError("Argument is not a finite number");if(o=n2(o)*Math.floor(Math.abs(o)),o<t||o>a)throw new TypeError("Argument is not in byte range");return o}if(!isNaN(o)&&n.clamp)return o=LQ(o),o<t&&(o=t),o>a&&(o=a),o;if(!Number.isFinite(o)||o===0)return 0;if(o=n2(o)*Math.floor(Math.abs(o)),o=o%r,!A.unsigned&&o>=i)return o-r;if(A.unsigned){if(o<0)o+=r;else if(o===-0)return 0}return o}}ie.void=function(){};ie.boolean=function(e){return!!e};ie.byte=It(8,{unsigned:!1});ie.octet=It(8,{unsigned:!0});ie.short=It(16,{unsigned:!1});ie["unsigned short"]=It(16,{unsigned:!0});ie.long=It(32,{unsigned:!1});ie["unsigned long"]=It(32,{unsigned:!0});ie["long long"]=It(32,{unsigned:!1,moduloBitLength:64});ie["unsigned long long"]=It(32,{unsigned:!0,moduloBitLength:64});ie.double=function(e){let A=+e;if(!Number.isFinite(A))throw new TypeError("Argument is not a finite floating-point value");return A};ie["unrestricted double"]=function(e){let A=+e;if(isNaN(A))throw new TypeError("Argument is NaN");return A};ie.float=ie.double;ie["unrestricted float"]=ie["unrestricted double"];ie.DOMString=function(e,A){return A||(A={}),A.treatNullAsEmptyString&&e===null?"":String(e)};ie.ByteString=function(e,A){let t=String(e),a;for(let r=0;(a=t.codePointAt(r))!==void 0;++r)if(a>255)throw new TypeError("Argument is not a valid bytestring");return t};ie.USVString=function(e){let A=String(e),t=A.length,a=[];for(let r=0;r<t;++r){let i=A.charCodeAt(r);if(i<55296||i>57343)a.push(String.fromCodePoint(i));else if(56320<=i&&i<=57343)a.push(String.fromCodePoint(65533));else if(r===t-1)a.push(String.fromCodePoint(65533));else{let s=A.charCodeAt(r+1);if(56320<=s&&s<=57343){let n=i&1023,o=s&1023;a.push(String.fromCodePoint(65536+1024*n+o)),++r}else a.push(String.fromCodePoint(65533))}}return a.join("")};ie.Date=function(e,A){if(!(e instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(e))return e};ie.RegExp=function(e,A){return e instanceof RegExp||(e=new RegExp(e)),e}});var p2=E((nN,ft)=>{"use strict";ft.exports.mixin=function(A,t){let a=Object.getOwnPropertyNames(t);for(let r=0;r<a.length;++r)Object.defineProperty(A,a[r],Object.getOwnPropertyDescriptor(t,a[r]))};ft.exports.wrapperSymbol=Symbol("wrapper");ft.exports.implSymbol=Symbol("impl");ft.exports.wrapperForImpl=function(e){return e[ft.exports.wrapperSymbol]};ft.exports.implForWrapper=function(e){return e[ft.exports.implSymbol]}});var l2=E((oN,MQ)=>{MQ.exports=[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1e3,1e3],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6e3],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8e3,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8e3]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9e3],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[3e4]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13e3,13e3],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43e3,43e3],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64e3,64e3],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66e3,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[12e4,12e4],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128e3,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23e3]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149e3]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32e3]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195e3,195e3],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[4e4]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918e3,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]});var C2=E((dN,Pr)=>{"use strict";var c2=require("punycode"),g2=l2(),w1={TRANSITIONAL:0,NONTRANSITIONAL:1};function u2(e){return e.split("\0").map(function(A){return A.normalize("NFC")}).join("\0")}function E2(e){for(var A=0,t=g2.length-1;A<=t;){var a=Math.floor((A+t)/2),r=g2[a];if(r[0][0]<=e&&r[0][1]>=e)return r;r[0][0]>e?t=a-1:A=a+1}return null}var TQ=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function Q2(e){return e.replace(TQ,"_").length}function VQ(e,A,t){for(var a=!1,r="",i=Q2(e),s=0;s<i;++s){var n=e.codePointAt(s),o=E2(n);switch(o[1]){case"disallowed":a=!0,r+=String.fromCodePoint(n);break;case"ignored":break;case"mapped":r+=String.fromCodePoint.apply(String,o[2]);break;case"deviation":t===w1.TRANSITIONAL?r+=String.fromCodePoint.apply(String,o[2]):r+=String.fromCodePoint(n);break;case"valid":r+=String.fromCodePoint(n);break;case"disallowed_STD3_mapped":A?(a=!0,r+=String.fromCodePoint(n)):r+=String.fromCodePoint.apply(String,o[2]);break;case"disallowed_STD3_valid":A&&(a=!0),r+=String.fromCodePoint(n);break}}return{string:r,error:a}}var YQ=/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;function JQ(e,A){e.substr(0,4)==="xn--"&&(e=c2.toUnicode(e),A=w1.NONTRANSITIONAL);var t=!1;(u2(e)!==e||e[3]==="-"&&e[4]==="-"||e[0]==="-"||e[e.length-1]==="-"||e.indexOf(".")!==-1||e.search(YQ)===0)&&(t=!0);for(var a=Q2(e),r=0;r<a;++r){var i=E2(e.codePointAt(r));if(Or===w1.TRANSITIONAL&&i[1]!=="valid"||Or===w1.NONTRANSITIONAL&&i[1]!=="valid"&&i[1]!=="deviation"){t=!0;break}}return{label:e,error:t}}function Or(e,A,t){var a=VQ(e,A,t);a.string=u2(a.string);for(var r=a.string.split("."),i=0;i<r.length;++i)try{var s=JQ(r[i]);r[i]=s.label,a.error=a.error||s.error}catch{a.error=!0}return{string:r.join("."),error:a.error}}Pr.exports.toASCII=function(e,A,t,a){var r=Or(e,A,t),i=r.string.split(".");if(i=i.map(function(o){try{return c2.toASCII(o)}catch{return r.error=!0,o}}),a){var s=i.slice(0,i.length-1).join(".").length;(s.length>253||s.length===0)&&(r.error=!0);for(var n=0;n<i.length;++n)if(i.length>63||i.length===0){r.error=!0;break}}return r.error?null:i.join(".")};Pr.exports.toUnicode=function(e,A){var t=Or(e,A,w1.NONTRANSITIONAL);return{domain:t.string,error:t.error}};Pr.exports.PROCESSING_OPTIONS=w1});var JA=E((pN,Ke)=>{"use strict";var y1=require("punycode"),m2=C2(),f2={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443},J=Symbol("failure");function B2(e){return y1.ucs2.decode(e).length}function h2(e,A){let t=e[A];return isNaN(t)?void 0:String.fromCodePoint(t)}function Sa(e){return e>=48&&e<=57}function ka(e){return e>=65&&e<=90||e>=97&&e<=122}function GQ(e){return ka(e)||Sa(e)}function RA(e){return Sa(e)||e>=65&&e<=70||e>=97&&e<=102}function I2(e){return e==="."||e.toLowerCase()==="%2e"}function xQ(e){return e=e.toLowerCase(),e===".."||e==="%2e."||e===".%2e"||e==="%2e%2e"}function _Q(e,A){return ka(e)&&(A===58||A===124)}function w2(e){return e.length===2&&ka(e.codePointAt(0))&&(e[1]===":"||e[1]==="|")}function qQ(e){return e.length===2&&ka(e.codePointAt(0))&&e[1]===":"}function HQ(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/)!==-1}function OQ(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)!==-1}function yn(e){return f2[e]!==void 0}function Ce(e){return yn(e.scheme)}function PQ(e){return f2[e]}function y2(e){let A=e.toString(16).toUpperCase();return A.length===1&&(A="0"+A),"%"+A}function WQ(e){let A=new Buffer(e),t="";for(let a=0;a<A.length;++a)t+=y2(A[a]);return t}function ZQ(e){let A=new Buffer(e),t=[];for(let a=0;a<A.length;++a)A[a]!==37?t.push(A[a]):A[a]===37&&RA(A[a+1])&&RA(A[a+2])?(t.push(parseInt(A.slice(a+1,a+3).toString(),16)),a+=2):t.push(A[a]);return new Buffer(t).toString()}function Wr(e){return e<=31||e>126}var jQ=new Set([32,34,35,60,62,63,96,123,125]);function D2(e){return Wr(e)||jQ.has(e)}var XQ=new Set([47,58,59,61,64,91,92,93,94,124]);function Rn(e){return D2(e)||XQ.has(e)}function Pt(e,A){let t=String.fromCodePoint(e);return A(e)?WQ(t):t}function zQ(e){let A=10;return e.length>=2&&e.charAt(0)==="0"&&e.charAt(1).toLowerCase()==="x"?(e=e.substring(2),A=16):e.length>=2&&e.charAt(0)==="0"&&(e=e.substring(1),A=8),e===""?0:(A===10?/[^0-9]/:A===16?/[^0-9A-Fa-f]/:/[^0-7]/).test(e)?J:parseInt(e,A)}function KQ(e){let A=e.split(".");if(A[A.length-1]===""&&A.length>1&&A.pop(),A.length>4)return e;let t=[];for(let i of A){if(i==="")return e;let s=zQ(i);if(s===J)return e;t.push(s)}for(let i=0;i<t.length-1;++i)if(t[i]>255)return J;if(t[t.length-1]>=Math.pow(256,5-t.length))return J;let a=t.pop(),r=0;for(let i of t)a+=i*Math.pow(256,3-r),++r;return a}function $Q(e){let A="",t=e;for(let a=1;a<=4;++a)A=String(t%256)+A,a!==4&&(A="."+A),t=Math.floor(t/256);return A}function e8(e){let A=[0,0,0,0,0,0,0,0],t=0,a=null,r=0;if(e=y1.ucs2.decode(e),e[r]===58){if(e[r+1]!==58)return J;r+=2,++t,a=t}for(;r<e.length;){if(t===8)return J;if(e[r]===58){if(a!==null)return J;++r,++t,a=t;continue}let i=0,s=0;for(;s<4&&RA(e[r]);)i=i*16+parseInt(h2(e,r),16),++r,++s;if(e[r]===46){if(s===0||(r-=s,t>6))return J;let n=0;for(;e[r]!==void 0;){let o=null;if(n>0)if(e[r]===46&&n<4)++r;else return J;if(!Sa(e[r]))return J;for(;Sa(e[r]);){let d=parseInt(h2(e,r));if(o===null)o=d;else{if(o===0)return J;o=o*10+d}if(o>255)return J;++r}A[t]=A[t]*256+o,++n,(n===2||n===4)&&++t}if(n!==4)return J;break}else if(e[r]===58){if(++r,e[r]===void 0)return J}else if(e[r]!==void 0)return J;A[t]=i,++t}if(a!==null){let i=t-a;for(t=7;t!==0&&i>0;){let s=A[a+i-1];A[a+i-1]=A[t],A[t]=s,--t,--i}}else if(a===null&&t!==8)return J;return A}function A8(e){let A="",a=a8(e).idx,r=!1;for(let i=0;i<=7;++i)if(!(r&&e[i]===0)){if(r&&(r=!1),a===i){A+=i===0?"::":":",r=!0;continue}A+=e[i].toString(16),i!==7&&(A+=":")}return A}function Dn(e,A){if(e[0]==="[")return e[e.length-1]!=="]"?J:e8(e.substring(1,e.length-1));if(!A)return t8(e);let t=ZQ(e),a=m2.toASCII(t,!1,m2.PROCESSING_OPTIONS.NONTRANSITIONAL,!1);if(a===null||HQ(a))return J;let r=KQ(a);return typeof r=="number"||r===J?r:a}function t8(e){if(OQ(e))return J;let A="",t=y1.ucs2.decode(e);for(let a=0;a<t.length;++a)A+=Pt(t[a],Wr);return A}function a8(e){let A=null,t=1,a=null,r=0;for(let i=0;i<e.length;++i)e[i]!==0?(r>t&&(A=a,t=r),a=null,r=0):(a===null&&(a=i),++r);return r>t&&(A=a,t=r),{idx:A,len:t}}function vn(e){return typeof e=="number"?$Q(e):e instanceof Array?"["+A8(e)+"]":e}function r8(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}function i8(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}function R2(e){let A=e.path;A.length!==0&&(e.scheme==="file"&&A.length===1&&n8(A[0])||A.pop())}function v2(e){return e.username!==""||e.password!==""}function s8(e){return e.host===null||e.host===""||e.cannotBeABaseURL||e.scheme==="file"}function n8(e){return/^[A-Za-z]:$/.test(e)}function se(e,A,t,a,r){if(this.pointer=0,this.input=e,this.base=A||null,this.encodingOverride=t||"utf-8",this.stateOverride=r,this.url=a,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};let s=r8(this.input);s!==this.input&&(this.parseError=!0),this.input=s}let i=i8(this.input);for(i!==this.input&&(this.parseError=!0),this.input=i,this.state=r||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=y1.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){let s=this.input[this.pointer],n=isNaN(s)?void 0:String.fromCodePoint(s),o=this["parse "+this.state](s,n);if(o){if(o===J){this.failure=!0;break}}else break}}se.prototype["parse scheme start"]=function(A,t){if(ka(A))this.buffer+=t.toLowerCase(),this.state="scheme";else if(!this.stateOverride)this.state="no scheme",--this.pointer;else return this.parseError=!0,J;return!0};se.prototype["parse scheme"]=function(A,t){if(GQ(A)||A===43||A===45||A===46)this.buffer+=t.toLowerCase();else if(A===58){if(this.stateOverride&&(Ce(this.url)&&!yn(this.buffer)||!Ce(this.url)&&yn(this.buffer)||(v2(this.url)||this.url.port!==null)&&this.buffer==="file"||this.url.scheme==="file"&&(this.url.host===""||this.url.host===null))||(this.url.scheme=this.buffer,this.buffer="",this.stateOverride))return!1;this.url.scheme==="file"?((this.input[this.pointer+1]!==47||this.input[this.pointer+2]!==47)&&(this.parseError=!0),this.state="file"):Ce(this.url)&&this.base!==null&&this.base.scheme===this.url.scheme?this.state="special relative or authority":Ce(this.url)?this.state="special authority slashes":this.input[this.pointer+1]===47?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else if(!this.stateOverride)this.buffer="",this.state="no scheme",this.pointer=-1;else return this.parseError=!0,J;return!0};se.prototype["parse no scheme"]=function(A){return this.base===null||this.base.cannotBeABaseURL&&A!==35?J:(this.base.cannotBeABaseURL&&A===35?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):this.base.scheme==="file"?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)};se.prototype["parse special relative or authority"]=function(A){return A===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0};se.prototype["parse path or authority"]=function(A){return A===47?this.state="authority":(this.state="path",--this.pointer),!0};se.prototype["parse relative"]=function(A){return this.url.scheme=this.base.scheme,isNaN(A)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):A===47?this.state="relative slash":A===63?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):A===35?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):Ce(this.url)&&A===92?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0};se.prototype["parse relative slash"]=function(A){return Ce(this.url)&&(A===47||A===92)?(A===92&&(this.parseError=!0),this.state="special authority ignore slashes"):A===47?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer),!0};se.prototype["parse special authority slashes"]=function(A){return A===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0};se.prototype["parse special authority ignore slashes"]=function(A){return A!==47&&A!==92?(this.state="authority",--this.pointer):this.parseError=!0,!0};se.prototype["parse authority"]=function(A,t){if(A===64){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;let a=B2(this.buffer);for(let r=0;r<a;++r){let i=this.buffer.codePointAt(r);if(i===58&&!this.passwordTokenSeenFlag){this.passwordTokenSeenFlag=!0;continue}let s=Pt(i,Rn);this.passwordTokenSeenFlag?this.url.password+=s:this.url.username+=s}this.buffer=""}else if(isNaN(A)||A===47||A===63||A===35||Ce(this.url)&&A===92){if(this.atFlag&&this.buffer==="")return this.parseError=!0,J;this.pointer-=B2(this.buffer)+1,this.buffer="",this.state="host"}else this.buffer+=t;return!0};se.prototype["parse hostname"]=se.prototype["parse host"]=function(A,t){if(this.stateOverride&&this.url.scheme==="file")--this.pointer,this.state="file host";else if(A===58&&!this.arrFlag){if(this.buffer==="")return this.parseError=!0,J;let a=Dn(this.buffer,Ce(this.url));if(a===J)return J;if(this.url.host=a,this.buffer="",this.state="port",this.stateOverride==="hostname")return!1}else if(isNaN(A)||A===47||A===63||A===35||Ce(this.url)&&A===92){if(--this.pointer,Ce(this.url)&&this.buffer==="")return this.parseError=!0,J;if(this.stateOverride&&this.buffer===""&&(v2(this.url)||this.url.port!==null))return this.parseError=!0,!1;let a=Dn(this.buffer,Ce(this.url));if(a===J)return J;if(this.url.host=a,this.buffer="",this.state="path start",this.stateOverride)return!1}else A===91?this.arrFlag=!0:A===93&&(this.arrFlag=!1),this.buffer+=t;return!0};se.prototype["parse port"]=function(A,t){if(Sa(A))this.buffer+=t;else if(isNaN(A)||A===47||A===63||A===35||Ce(this.url)&&A===92||this.stateOverride){if(this.buffer!==""){let a=parseInt(this.buffer);if(a>Math.pow(2,16)-1)return this.parseError=!0,J;this.url.port=a===PQ(this.url.scheme)?null:a,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}else return this.parseError=!0,J;return!0};var o8=new Set([47,92,63,35]);se.prototype["parse file"]=function(A){return this.url.scheme="file",A===47||A===92?(A===92&&(this.parseError=!0),this.state="file slash"):this.base!==null&&this.base.scheme==="file"?isNaN(A)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):A===63?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):A===35?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(this.input.length-this.pointer-1===0||!_Q(A,this.input[this.pointer+1])||this.input.length-this.pointer-1>=2&&!o8.has(this.input[this.pointer+2])?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),R2(this.url)):this.parseError=!0,this.state="path",--this.pointer):(this.state="path",--this.pointer),!0};se.prototype["parse file slash"]=function(A){return A===47||A===92?(A===92&&(this.parseError=!0),this.state="file host"):(this.base!==null&&this.base.scheme==="file"&&(qQ(this.base.path[0])?this.url.path.push(this.base.path[0]):this.url.host=this.base.host),this.state="path",--this.pointer),!0};se.prototype["parse file host"]=function(A,t){if(isNaN(A)||A===47||A===92||A===63||A===35)if(--this.pointer,!this.stateOverride&&w2(this.buffer))this.parseError=!0,this.state="path";else if(this.buffer===""){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let a=Dn(this.buffer,Ce(this.url));if(a===J)return J;if(a==="localhost"&&(a=""),this.url.host=a,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=t;return!0};se.prototype["parse path start"]=function(A){return Ce(this.url)?(A===92&&(this.parseError=!0),this.state="path",A!==47&&A!==92&&--this.pointer):!this.stateOverride&&A===63?(this.url.query="",this.state="query"):!this.stateOverride&&A===35?(this.url.fragment="",this.state="fragment"):A!==void 0&&(this.state="path",A!==47&&--this.pointer),!0};se.prototype["parse path"]=function(A){if(isNaN(A)||A===47||Ce(this.url)&&A===92||!this.stateOverride&&(A===63||A===35)){if(Ce(this.url)&&A===92&&(this.parseError=!0),xQ(this.buffer)?(R2(this.url),A!==47&&!(Ce(this.url)&&A===92)&&this.url.path.push("")):I2(this.buffer)&&A!==47&&!(Ce(this.url)&&A===92)?this.url.path.push(""):I2(this.buffer)||(this.url.scheme==="file"&&this.url.path.length===0&&w2(this.buffer)&&(this.url.host!==""&&this.url.host!==null&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)),this.buffer="",this.url.scheme==="file"&&(A===void 0||A===63||A===35))for(;this.url.path.length>1&&this.url.path[0]==="";)this.parseError=!0,this.url.path.shift();A===63&&(this.url.query="",this.state="query"),A===35&&(this.url.fragment="",this.state="fragment")}else A===37&&(!RA(this.input[this.pointer+1])||!RA(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=Pt(A,D2);return!0};se.prototype["parse cannot-be-a-base-URL path"]=function(A){return A===63?(this.url.query="",this.state="query"):A===35?(this.url.fragment="",this.state="fragment"):(!isNaN(A)&&A!==37&&(this.parseError=!0),A===37&&(!RA(this.input[this.pointer+1])||!RA(this.input[this.pointer+2]))&&(this.parseError=!0),isNaN(A)||(this.url.path[0]=this.url.path[0]+Pt(A,Wr))),!0};se.prototype["parse query"]=function(A,t){if(isNaN(A)||!this.stateOverride&&A===35){(!Ce(this.url)||this.url.scheme==="ws"||this.url.scheme==="wss")&&(this.encodingOverride="utf-8");let a=new Buffer(this.buffer);for(let r=0;r<a.length;++r)a[r]<33||a[r]>126||a[r]===34||a[r]===35||a[r]===60||a[r]===62?this.url.query+=y2(a[r]):this.url.query+=String.fromCodePoint(a[r]);this.buffer="",A===35&&(this.url.fragment="",this.state="fragment")}else A===37&&(!RA(this.input[this.pointer+1])||!RA(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=t;return!0};se.prototype["parse fragment"]=function(A){return isNaN(A)||(A===0?this.parseError=!0:(A===37&&(!RA(this.input[this.pointer+1])||!RA(this.input[this.pointer+2]))&&(this.parseError=!0),this.url.fragment+=Pt(A,Wr))),!0};function d8(e,A){let t=e.scheme+":";if(e.host!==null?(t+="//",(e.username!==""||e.password!=="")&&(t+=e.username,e.password!==""&&(t+=":"+e.password),t+="@"),t+=vn(e.host),e.port!==null&&(t+=":"+e.port)):e.host===null&&e.scheme==="file"&&(t+="//"),e.cannotBeABaseURL)t+=e.path[0];else for(let a of e.path)t+="/"+a;return e.query!==null&&(t+="?"+e.query),!A&&e.fragment!==null&&(t+="#"+e.fragment),t}function p8(e){let A=e.scheme+"://";return A+=vn(e.host),e.port!==null&&(A+=":"+e.port),A}Ke.exports.serializeURL=d8;Ke.exports.serializeURLOrigin=function(e){switch(e.scheme){case"blob":try{return Ke.exports.serializeURLOrigin(Ke.exports.parseURL(e.path[0]))}catch{return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return p8({scheme:e.scheme,host:e.host,port:e.port});case"file":return"file://";default:return"null"}};Ke.exports.basicURLParse=function(e,A){A===void 0&&(A={});let t=new se(e,A.baseURL,A.encodingOverride,A.url,A.stateOverride);return t.failure?"failure":t.url};Ke.exports.setTheUsername=function(e,A){e.username="";let t=y1.ucs2.decode(A);for(let a=0;a<t.length;++a)e.username+=Pt(t[a],Rn)};Ke.exports.setThePassword=function(e,A){e.password="";let t=y1.ucs2.decode(A);for(let a=0;a<t.length;++a)e.password+=Pt(t[a],Rn)};Ke.exports.serializeHost=vn;Ke.exports.cannotHaveAUsernamePasswordPort=s8;Ke.exports.serializeInteger=function(e){return String(e)};Ke.exports.parseURL=function(e,A){return A===void 0&&(A={}),Ke.exports.basicURLParse(e,{baseURL:A.baseURL,encodingOverride:A.encodingOverride})}});var b2=E(N2=>{"use strict";var ne=JA();N2.implementation=class{constructor(A){let t=A[0],a=A[1],r=null;if(a!==void 0&&(r=ne.basicURLParse(a),r==="failure"))throw new TypeError("Invalid base URL");let i=ne.basicURLParse(t,{baseURL:r});if(i==="failure")throw new TypeError("Invalid URL");this._url=i}get href(){return ne.serializeURL(this._url)}set href(A){let t=ne.basicURLParse(A);if(t==="failure")throw new TypeError("Invalid URL");this._url=t}get origin(){return ne.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(A){ne.basicURLParse(A+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(A){ne.cannotHaveAUsernamePasswordPort(this._url)||ne.setTheUsername(this._url,A)}get password(){return this._url.password}set password(A){ne.cannotHaveAUsernamePasswordPort(this._url)||ne.setThePassword(this._url,A)}get host(){let A=this._url;return A.host===null?"":A.port===null?ne.serializeHost(A.host):ne.serializeHost(A.host)+":"+ne.serializeInteger(A.port)}set host(A){this._url.cannotBeABaseURL||ne.basicURLParse(A,{url:this._url,stateOverride:"host"})}get hostname(){return this._url.host===null?"":ne.serializeHost(this._url.host)}set hostname(A){this._url.cannotBeABaseURL||ne.basicURLParse(A,{url:this._url,stateOverride:"hostname"})}get port(){return this._url.port===null?"":ne.serializeInteger(this._url.port)}set port(A){ne.cannotHaveAUsernamePasswordPort(this._url)||(A===""?this._url.port=null:ne.basicURLParse(A,{url:this._url,stateOverride:"port"}))}get pathname(){return this._url.cannotBeABaseURL?this._url.path[0]:this._url.path.length===0?"":"/"+this._url.path.join("/")}set pathname(A){this._url.cannotBeABaseURL||(this._url.path=[],ne.basicURLParse(A,{url:this._url,stateOverride:"path start"}))}get search(){return this._url.query===null||this._url.query===""?"":"?"+this._url.query}set search(A){let t=this._url;if(A===""){t.query=null;return}let a=A[0]==="?"?A.substring(1):A;t.query="",ne.basicURLParse(a,{url:t,stateOverride:"query"})}get hash(){return this._url.fragment===null||this._url.fragment===""?"":"#"+this._url.fragment}set hash(A){if(A===""){this._url.fragment=null;return}let t=A[0]==="#"?A.substring(1):A;this._url.fragment="",ne.basicURLParse(t,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}});var F2=E((cN,Fa)=>{"use strict";var gA=d2(),k2=p2(),S2=b2(),j=k2.implSymbol;function Ie(e){if(!this||this[j]||!(this instanceof Ie))throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");if(arguments.length<1)throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.");let A=[];for(let t=0;t<arguments.length&&t<2;++t)A[t]=arguments[t];A[0]=gA.USVString(A[0]),A[1]!==void 0&&(A[1]=gA.USVString(A[1])),Fa.exports.setup(this,A)}Ie.prototype.toJSON=function(){if(!this||!Fa.exports.is(this))throw new TypeError("Illegal invocation");let A=[];for(let t=0;t<arguments.length&&t<0;++t)A[t]=arguments[t];return this[j].toJSON.apply(this[j],A)};Object.defineProperty(Ie.prototype,"href",{get(){return this[j].href},set(e){e=gA.USVString(e),this[j].href=e},enumerable:!0,configurable:!0});Ie.prototype.toString=function(){if(!this||!Fa.exports.is(this))throw new TypeError("Illegal invocation");return this.href};Object.defineProperty(Ie.prototype,"origin",{get(){return this[j].origin},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"protocol",{get(){return this[j].protocol},set(e){e=gA.USVString(e),this[j].protocol=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"username",{get(){return this[j].username},set(e){e=gA.USVString(e),this[j].username=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"password",{get(){return this[j].password},set(e){e=gA.USVString(e),this[j].password=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"host",{get(){return this[j].host},set(e){e=gA.USVString(e),this[j].host=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"hostname",{get(){return this[j].hostname},set(e){e=gA.USVString(e),this[j].hostname=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"port",{get(){return this[j].port},set(e){e=gA.USVString(e),this[j].port=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"pathname",{get(){return this[j].pathname},set(e){e=gA.USVString(e),this[j].pathname=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"search",{get(){return this[j].search},set(e){e=gA.USVString(e),this[j].search=e},enumerable:!0,configurable:!0});Object.defineProperty(Ie.prototype,"hash",{get(){return this[j].hash},set(e){e=gA.USVString(e),this[j].hash=e},enumerable:!0,configurable:!0});Fa.exports={is(e){return!!e&&e[j]instanceof S2.implementation},create(e,A){let t=Object.create(Ie.prototype);return this.setup(t,e,A),t},setup(e,A,t){t||(t={}),t.wrapper=e,e[j]=new S2.implementation(A,t),e[j][k2.wrapperSymbol]=e},interface:Ie,expose:{Window:{URL:Ie},Worker:{URL:Ie}}}});var U2=E(GA=>{"use strict";GA.URL=F2().interface;GA.serializeURL=JA().serializeURL;GA.serializeURLOrigin=JA().serializeURLOrigin;GA.basicURLParse=JA().basicURLParse;GA.setTheUsername=JA().setTheUsername;GA.setThePassword=JA().setThePassword;GA.serializeHost=JA().serializeHost;GA.serializeInteger=JA().serializeInteger;GA.parseURL=JA().parseURL});var O2=E((xA,H2)=>{"use strict";Object.defineProperty(xA,"__esModule",{value:!0});function v1(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var vA=v1(require("stream")),V2=v1(require("http")),jr=v1(require("url")),Y2=v1(U2()),l8=v1(require("https")),Wt=v1(require("zlib")),g8=vA.Readable,tt=Symbol("buffer"),Nn=Symbol("type"),La=class e{constructor(){this[Nn]="";let A=arguments[0],t=arguments[1],a=[],r=0;if(A){let s=A,n=Number(s.length);for(let o=0;o<n;o++){let d=s[o],l;d instanceof Buffer?l=d:ArrayBuffer.isView(d)?l=Buffer.from(d.buffer,d.byteOffset,d.byteLength):d instanceof ArrayBuffer?l=Buffer.from(d):d instanceof e?l=d[tt]:l=Buffer.from(typeof d=="string"?d:String(d)),r+=l.length,a.push(l)}}this[tt]=Buffer.concat(a);let i=t&&t.type!==void 0&&String(t.type).toLowerCase();i&&!/[^\u0020-\u007E]/.test(i)&&(this[Nn]=i)}get size(){return this[tt].length}get type(){return this[Nn]}text(){return Promise.resolve(this[tt].toString())}arrayBuffer(){let A=this[tt],t=A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength);return Promise.resolve(t)}stream(){let A=new g8;return A._read=function(){},A.push(this[tt]),A.push(null),A}toString(){return"[object Blob]"}slice(){let A=this.size,t=arguments[0],a=arguments[1],r,i;t===void 0?r=0:t<0?r=Math.max(A+t,0):r=Math.min(t,A),a===void 0?i=A:a<0?i=Math.max(A+a,0):i=Math.min(a,A);let s=Math.max(i-r,0),o=this[tt].slice(r,r+s),d=new e([],{type:arguments[2]});return d[tt]=o,d}};Object.defineProperties(La.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});Object.defineProperty(La.prototype,Symbol.toStringTag,{value:"Blob",writable:!1,enumerable:!1,configurable:!0});function ve(e,A,t){Error.call(this,e),this.message=e,this.type=A,t&&(this.code=this.errno=t.code),Error.captureStackTrace(this,this.constructor)}ve.prototype=Object.create(Error.prototype);ve.prototype.constructor=ve;ve.prototype.name="FetchError";var Fn;try{Fn=require("encoding").convert}catch{}var rt=Symbol("Body internals"),L2=vA.PassThrough;function fe(e){var A=this,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=t.size;let r=a===void 0?0:a;var i=t.timeout;let s=i===void 0?0:i;e==null?e=null:J2(e)?e=Buffer.from(e.toString()):Va(e)||Buffer.isBuffer(e)||(Object.prototype.toString.call(e)==="[object ArrayBuffer]"?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof vA||(e=Buffer.from(String(e)))),this[rt]={body:e,disturbed:!1,error:null},this.size=r,this.timeout=s,e instanceof vA&&e.on("error",function(n){let o=n.name==="AbortError"?n:new ve(`Invalid response body while trying to fetch ${A.url}: ${n.message}`,"system",n);A[rt].error=o})}fe.prototype={get body(){return this[rt].body},get bodyUsed(){return this[rt].disturbed},arrayBuffer(){return D1.call(this).then(function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)})},blob(){let e=this.headers&&this.headers.get("content-type")||"";return D1.call(this).then(function(A){return Object.assign(new La([],{type:e.toLowerCase()}),{[tt]:A})})},json(){var e=this;return D1.call(this).then(function(A){try{return JSON.parse(A.toString())}catch(t){return fe.Promise.reject(new ve(`invalid json response body at ${e.url} reason: ${t.message}`,"invalid-json"))}})},text(){return D1.call(this).then(function(e){return e.toString()})},buffer(){return D1.call(this)},textConverted(){var e=this;return D1.call(this).then(function(A){return c8(A,e.headers)})}};Object.defineProperties(fe.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});fe.mixIn=function(e){for(let A of Object.getOwnPropertyNames(fe.prototype))if(!(A in e)){let t=Object.getOwnPropertyDescriptor(fe.prototype,A);Object.defineProperty(e,A,t)}};function D1(){var e=this;if(this[rt].disturbed)return fe.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[rt].disturbed=!0,this[rt].error)return fe.Promise.reject(this[rt].error);let A=this.body;if(A===null)return fe.Promise.resolve(Buffer.alloc(0));if(Va(A)&&(A=A.stream()),Buffer.isBuffer(A))return fe.Promise.resolve(A);if(!(A instanceof vA))return fe.Promise.resolve(Buffer.alloc(0));let t=[],a=0,r=!1;return new fe.Promise(function(i,s){let n;e.timeout&&(n=setTimeout(function(){r=!0,s(new ve(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))},e.timeout)),A.on("error",function(o){o.name==="AbortError"?(r=!0,s(o)):s(new ve(`Invalid response body while trying to fetch ${e.url}: ${o.message}`,"system",o))}),A.on("data",function(o){if(!(r||o===null)){if(e.size&&a+o.length>e.size){r=!0,s(new ve(`content size at ${e.url} over limit: ${e.size}`,"max-size"));return}a+=o.length,t.push(o)}}),A.on("end",function(){if(!r){clearTimeout(n);try{i(Buffer.concat(t,a))}catch(o){s(new ve(`Could not create Buffer from response body for ${e.url}: ${o.message}`,"system",o))}}})})}function c8(e,A){if(typeof Fn!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let t=A.get("content-type"),a="utf-8",r,i;return t&&(r=/charset=([^;]*)/i.exec(t)),i=e.slice(0,1024).toString(),!r&&i&&(r=/<meta.+?charset=(['"])(.+?)\1/i.exec(i)),!r&&i&&(r=/<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(i),r||(r=/<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i.exec(i),r&&r.pop()),r&&(r=/charset=(.*)/i.exec(r.pop()))),!r&&i&&(r=/<\?xml.+?encoding=(['"])(.+?)\1/i.exec(i)),r&&(a=r.pop(),(a==="gb2312"||a==="gbk")&&(a="gb18030")),Fn(e,"UTF-8",a).toString()}function J2(e){return typeof e!="object"||typeof e.append!="function"||typeof e.delete!="function"||typeof e.get!="function"||typeof e.getAll!="function"||typeof e.has!="function"||typeof e.set!="function"?!1:e.constructor.name==="URLSearchParams"||Object.prototype.toString.call(e)==="[object URLSearchParams]"||typeof e.sort=="function"}function Va(e){return typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&typeof e.constructor=="function"&&typeof e.constructor.name=="string"&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function G2(e){let A,t,a=e.body;if(e.bodyUsed)throw new Error("cannot clone body after it is used");return a instanceof vA&&typeof a.getBoundary!="function"&&(A=new L2,t=new L2,a.pipe(A),a.pipe(t),e[rt].body=A,a=t),a}function x2(e){return e===null?null:typeof e=="string"?"text/plain;charset=UTF-8":J2(e)?"application/x-www-form-urlencoded;charset=UTF-8":Va(e)?e.type||null:Buffer.isBuffer(e)||Object.prototype.toString.call(e)==="[object ArrayBuffer]"||ArrayBuffer.isView(e)?null:typeof e.getBoundary=="function"?`multipart/form-data;boundary=${e.getBoundary()}`:e instanceof vA?null:"text/plain;charset=UTF-8"}function _2(e){let A=e.body;return A===null?0:Va(A)?A.size:Buffer.isBuffer(A)?A.length:A&&typeof A.getLengthSync=="function"&&(A._lengthRetrievers&&A._lengthRetrievers.length==0||A.hasKnownLength&&A.hasKnownLength())?A.getLengthSync():null}function u8(e,A){let t=A.body;t===null?e.end():Va(t)?t.stream().pipe(e):Buffer.isBuffer(t)?(e.write(t),e.end()):t.pipe(e)}fe.Promise=global.Promise;var q2=/[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/,Un=/[^\t\x20-\x7e\x80-\xff]/;function Ua(e){if(e=`${e}`,q2.test(e)||e==="")throw new TypeError(`${e} is not a legal HTTP header name`)}function M2(e){if(e=`${e}`,Un.test(e))throw new TypeError(`${e} is not a legal HTTP header value`)}function R1(e,A){A=A.toLowerCase();for(let t in e)if(t.toLowerCase()===A)return t}var pe=Symbol("map"),uA=class e{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0;if(this[pe]=Object.create(null),A instanceof e){let t=A.raw(),a=Object.keys(t);for(let r of a)for(let i of t[r])this.append(r,i);return}if(A!=null)if(typeof A=="object"){let t=A[Symbol.iterator];if(t!=null){if(typeof t!="function")throw new TypeError("Header pairs must be iterable");let a=[];for(let r of A){if(typeof r!="object"||typeof r[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");a.push(Array.from(r))}for(let r of a){if(r.length!==2)throw new TypeError("Each header pair must be a name/value tuple");this.append(r[0],r[1])}}else for(let a of Object.keys(A)){let r=A[a];this.append(a,r)}}else throw new TypeError("Provided initializer must be an object")}get(A){A=`${A}`,Ua(A);let t=R1(this[pe],A);return t===void 0?null:this[pe][t].join(", ")}forEach(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,a=Ln(this),r=0;for(;r<a.length;){var i=a[r];let s=i[0],n=i[1];A.call(t,n,s,this),a=Ln(this),r++}}set(A,t){A=`${A}`,t=`${t}`,Ua(A),M2(t);let a=R1(this[pe],A);this[pe][a!==void 0?a:A]=[t]}append(A,t){A=`${A}`,t=`${t}`,Ua(A),M2(t);let a=R1(this[pe],A);a!==void 0?this[pe][a].push(t):this[pe][A]=[t]}has(A){return A=`${A}`,Ua(A),R1(this[pe],A)!==void 0}delete(A){A=`${A}`,Ua(A);let t=R1(this[pe],A);t!==void 0&&delete this[pe][t]}raw(){return this[pe]}keys(){return bn(this,"key")}values(){return bn(this,"value")}[Symbol.iterator](){return bn(this,"key+value")}};uA.prototype.entries=uA.prototype[Symbol.iterator];Object.defineProperty(uA.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(uA.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});function Ln(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"key+value";return Object.keys(e[pe]).sort().map(A==="key"?function(a){return a.toLowerCase()}:A==="value"?function(a){return e[pe][a].join(", ")}:function(a){return[a.toLowerCase(),e[pe][a].join(", ")]})}var Mn=Symbol("internal");function bn(e,A){let t=Object.create(Tn);return t[Mn]={target:e,kind:A,index:0},t}var Tn=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==Tn)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[Mn];let A=e.target,t=e.kind,a=e.index,r=Ln(A,t),i=r.length;return a>=i?{value:void 0,done:!0}:(this[Mn].index=a+1,{value:r[a],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(Tn,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});function E8(e){let A=Object.assign({__proto__:null},e[pe]),t=R1(e[pe],"Host");return t!==void 0&&(A[t]=A[t][0]),A}function Q8(e){let A=new uA;for(let t of Object.keys(e))if(!q2.test(t))if(Array.isArray(e[t]))for(let a of e[t])Un.test(a)||(A[pe][t]===void 0?A[pe][t]=[a]:A[pe][t].push(a));else Un.test(e[t])||(A[pe][t]=[e[t]]);return A}var wt=Symbol("Response internals"),C8=V2.STATUS_CODES,cA=class e{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};fe.call(this,A,t);let a=t.status||200,r=new uA(t.headers);if(A!=null&&!r.has("Content-Type")){let i=x2(A);i&&r.append("Content-Type",i)}this[wt]={url:t.url,status:a,statusText:t.statusText||C8[a],headers:r,counter:t.counter}}get url(){return this[wt].url||""}get status(){return this[wt].status}get ok(){return this[wt].status>=200&&this[wt].status<300}get redirected(){return this[wt].counter>0}get statusText(){return this[wt].statusText}get headers(){return this[wt].headers}clone(){return new e(G2(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}};fe.mixIn(cA.prototype);Object.defineProperties(cA.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});Object.defineProperty(cA.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});var at=Symbol("Request internals"),m8=jr.URL||Y2.URL,B8=jr.parse,h8=jr.format;function Sn(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)&&(e=new m8(e).toString()),B8(e)}var I8="destroy"in vA.Readable.prototype;function Zr(e){return typeof e=="object"&&typeof e[at]=="object"}function f8(e){let A=e&&typeof e=="object"&&Object.getPrototypeOf(e);return!!(A&&A.constructor.name==="AbortSignal")}var Dt=class e{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a;Zr(A)?a=Sn(A.url):(A&&A.href?a=Sn(A.href):a=Sn(`${A}`),A={});let r=t.method||A.method||"GET";if(r=r.toUpperCase(),(t.body!=null||Zr(A)&&A.body!==null)&&(r==="GET"||r==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let i=t.body!=null?t.body:Zr(A)&&A.body!==null?G2(A):null;fe.call(this,i,{timeout:t.timeout||A.timeout||0,size:t.size||A.size||0});let s=new uA(t.headers||A.headers||{});if(i!=null&&!s.has("Content-Type")){let o=x2(i);o&&s.append("Content-Type",o)}let n=Zr(A)?A.signal:null;if("signal"in t&&(n=t.signal),n!=null&&!f8(n))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[at]={method:r,redirect:t.redirect||A.redirect||"follow",headers:s,parsedURL:a,signal:n},this.follow=t.follow!==void 0?t.follow:A.follow!==void 0?A.follow:20,this.compress=t.compress!==void 0?t.compress:A.compress!==void 0?A.compress:!0,this.counter=t.counter||A.counter||0,this.agent=t.agent||A.agent}get method(){return this[at].method}get url(){return h8(this[at].parsedURL)}get headers(){return this[at].headers}get redirect(){return this[at].redirect}get signal(){return this[at].signal}clone(){return new e(this)}};fe.mixIn(Dt.prototype);Object.defineProperty(Dt.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(Dt.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}});function w8(e){let A=e[at].parsedURL,t=new uA(e[at].headers);if(t.has("Accept")||t.set("Accept","*/*"),!A.protocol||!A.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(A.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof vA.Readable&&!I8)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let a=null;if(e.body==null&&/^(POST|PUT)$/i.test(e.method)&&(a="0"),e.body!=null){let i=_2(e);typeof i=="number"&&(a=String(i))}a&&t.set("Content-Length",a),t.has("User-Agent")||t.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!t.has("Accept-Encoding")&&t.set("Accept-Encoding","gzip,deflate");let r=e.agent;return typeof r=="function"&&(r=r(A)),!t.has("Connection")&&!r&&t.set("Connection","close"),Object.assign({},A,{method:e.method,headers:E8(t),agent:r})}function Ma(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}Ma.prototype=Object.create(Error.prototype);Ma.prototype.constructor=Ma;Ma.prototype.name="AbortError";var Ta=jr.URL||Y2.URL,T2=vA.PassThrough,y8=function(A,t){let a=new Ta(t).hostname,r=new Ta(A).hostname;return a===r||a[a.length-r.length-1]==="."&&a.endsWith(r)},D8=function(A,t){let a=new Ta(t).protocol,r=new Ta(A).protocol;return a===r};function yt(e,A){if(!yt.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return fe.Promise=yt.Promise,new yt.Promise(function(t,a){let r=new Dt(e,A),i=w8(r),s=(i.protocol==="https:"?l8:V2).request,n=r.signal,o=null,d=function(){let Q=new Ma("The user aborted a request.");a(Q),r.body&&r.body instanceof vA.Readable&&kn(r.body,Q),!(!o||!o.body)&&o.body.emit("error",Q)};if(n&&n.aborted){d();return}let l=function(){d(),c()},p=s(i),g;n&&n.addEventListener("abort",l);function c(){p.abort(),n&&n.removeEventListener("abort",l),clearTimeout(g)}r.timeout&&p.once("socket",function(u){g=setTimeout(function(){a(new ve(`network timeout at: ${r.url}`,"request-timeout")),c()},r.timeout)}),p.on("error",function(u){a(new ve(`request to ${r.url} failed, reason: ${u.message}`,"system",u)),o&&o.body&&kn(o.body,u),c()}),R8(p,function(u){n&&n.aborted||o&&o.body&&kn(o.body,u)}),parseInt(process.version.substring(1))<14&&p.on("socket",function(u){u.addListener("close",function(Q){let m=u.listenerCount("data")>0;if(o&&m&&!Q&&!(n&&n.aborted)){let C=new Error("Premature close");C.code="ERR_STREAM_PREMATURE_CLOSE",o.body.emit("error",C)}})}),p.on("response",function(u){clearTimeout(g);let Q=Q8(u.headers);if(yt.isRedirect(u.statusCode)){let I=Q.get("Location"),y=null;try{y=I===null?null:new Ta(I,r.url).toString()}catch{if(r.redirect!=="manual"){a(new ve(`uri requested responds with an invalid redirect URL: ${I}`,"invalid-redirect")),c();return}}switch(r.redirect){case"error":a(new ve(`uri requested responds with a redirect, redirect mode is set to error: ${r.url}`,"no-redirect")),c();return;case"manual":if(y!==null)try{Q.set("Location",y)}catch(F){a(F)}break;case"follow":if(y===null)break;if(r.counter>=r.follow){a(new ve(`maximum redirect reached at: ${r.url}`,"max-redirect")),c();return}let b={headers:new uA(r.headers),follow:r.follow,counter:r.counter+1,agent:r.agent,compress:r.compress,method:r.method,body:r.body,signal:r.signal,timeout:r.timeout,size:r.size};if(!y8(r.url,y)||!D8(r.url,y))for(let F of["authorization","www-authenticate","cookie","cookie2"])b.headers.delete(F);if(u.statusCode!==303&&r.body&&_2(r)===null){a(new ve("Cannot follow redirect with body being a readable stream","unsupported-redirect")),c();return}(u.statusCode===303||(u.statusCode===301||u.statusCode===302)&&r.method==="POST")&&(b.method="GET",b.body=void 0,b.headers.delete("content-length")),t(yt(new Dt(y,b))),c();return}}u.once("end",function(){n&&n.removeEventListener("abort",l)});let m=u.pipe(new T2),C={url:r.url,status:u.statusCode,statusText:u.statusMessage,headers:Q,size:r.size,timeout:r.timeout,counter:r.counter},B=Q.get("Content-Encoding");if(!r.compress||r.method==="HEAD"||B===null||u.statusCode===204||u.statusCode===304){o=new cA(m,C),t(o);return}let w={flush:Wt.Z_SYNC_FLUSH,finishFlush:Wt.Z_SYNC_FLUSH};if(B=="gzip"||B=="x-gzip"){m=m.pipe(Wt.createGunzip(w)),o=new cA(m,C),t(o);return}if(B=="deflate"||B=="x-deflate"){let I=u.pipe(new T2);I.once("data",function(y){(y[0]&15)===8?m=m.pipe(Wt.createInflate()):m=m.pipe(Wt.createInflateRaw()),o=new cA(m,C),t(o)}),I.on("end",function(){o||(o=new cA(m,C),t(o))});return}if(B=="br"&&typeof Wt.createBrotliDecompress=="function"){m=m.pipe(Wt.createBrotliDecompress()),o=new cA(m,C),t(o);return}o=new cA(m,C),t(o)}),u8(p,r)})}function R8(e,A){let t;e.on("socket",function(a){t=a}),e.on("response",function(a){let r=a.headers;r["transfer-encoding"]==="chunked"&&!r["content-length"]&&a.once("close",function(i){if(t&&t.listenerCount("data")>0&&!i){let n=new Error("Premature close");n.code="ERR_STREAM_PREMATURE_CLOSE",A(n)}})})}function kn(e,A){e.destroy?e.destroy(A):(e.emit("error",A),e.end())}yt.isRedirect=function(e){return e===301||e===302||e===303||e===307||e===308};yt.Promise=global.Promise;H2.exports=xA=yt;Object.defineProperty(xA,"__esModule",{value:!0});xA.default=xA;xA.Headers=uA;xA.Request=Dt;xA.Response=cA;xA.FetchError=ve});var W2=E((Zt,P2)=>{var Ya=O2(),v8=Ya.default||Ya,Xr=function(e,A){return/^\/\//.test(e)&&(e="https:"+e),v8.call(this,e,A)};Xr.ponyfill=!0;P2.exports=Zt=Xr;Zt.fetch=Xr;Zt.Headers=Ya.Headers;Zt.Request=Ya.Request;Zt.Response=Ya.Response;Zt.default=Xr});var X2=E(N1=>{"use strict";var j2=N1&&N1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(N1,"__esModule",{value:!0});N1.useFetch=void 0;var Z2=require("react"),N8=j2(t2()),b8=j2(s2()),S8=qr(),k8=At(),F8=W2();function U8(e){if(e){let A=b8.default.parse(e),t=N8.default.parse(A.type);if(t.subtype==="json"||t.suffix==="json"||t.suffix&&/\bjson\b/i.test(t.suffix)||t.subtype&&/\bjson\b/i.test(t.subtype))return!0}return!1}async function L8(e){if(!e.ok)throw new Error(e.statusText);let A=e.headers.get("content-type");return A&&U8(A)?await e.json():await e.text()}function M8(e,A){let{parseResponse:t,initialData:a,execute:r,keepPreviousData:i,onError:s,onData:n,onWillExecute:o,...d}=A||{},l={initialData:a,execute:r,keepPreviousData:i,onError:s,onData:n,onWillExecute:o},p=(0,k8.useLatest)(t||L8),g=(0,Z2.useRef)(),c=(0,Z2.useCallback)(async(u,Q)=>{let m=await(0,F8.fetch)(u,{signal:g.current?.signal,...Q});return await p.current(m)},[p]);return(0,S8.useCachedPromise)(c,[e,d],{...l,abortable:g})}N1.useFetch=M8});var z2=E(jt=>{"use strict";Object.defineProperty(jt,"__esModule",{value:!0});jt.signals=void 0;jt.signals=[];jt.signals.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&jt.signals.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&jt.signals.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT")});var K2=E(_A=>{"use strict";var zr;Object.defineProperty(_A,"__esModule",{value:!0});_A.unload=_A.load=_A.onExit=_A.signals=void 0;var Kr=z2();Object.defineProperty(_A,"signals",{enumerable:!0,get:function(){return Kr.signals}});var $r=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",Vn=Symbol.for("signal-exit emitter"),Yn=globalThis,T8=Object.defineProperty.bind(Object),Jn=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Yn[Vn])return Yn[Vn];T8(Yn,Vn,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(A,t){this.listeners[A].push(t)}removeListener(A,t){let a=this.listeners[A],r=a.indexOf(t);r!==-1&&(r===0&&a.length===1?a.length=0:a.splice(r,1))}emit(A,t,a){if(this.emitted[A])return!1;this.emitted[A]=!0;let r=!1;for(let i of this.listeners[A])r=i(t,a)===!0||r;return A==="exit"&&(r=this.emit("afterExit",t,a)||r),r}},ei=class{},V8=e=>({onExit(A,t){return e.onExit(A,t)},load(){return e.load()},unload(){return e.unload()}}),Gn=class extends ei{onExit(){return()=>{}}load(){}unload(){}},xn=class extends ei{#e=_n.platform==="win32"?"SIGINT":"SIGHUP";#a=new Jn;#A;#t;#r;#s={};#i=!1;constructor(A){super(),this.#A=A,this.#s={};for(let t of Kr.signals)this.#s[t]=()=>{let a=this.#A.listeners(t),{count:r}=this.#a,i=A;if(typeof i.__signal_exit_emitter__=="object"&&typeof i.__signal_exit_emitter__.count=="number"&&(r+=i.__signal_exit_emitter__.count),a.length===r){this.unload();let s=this.#a.emit("exit",null,t),n=t==="SIGHUP"?this.#e:t;s||A.kill(A.pid,n)}};this.#r=A.reallyExit,this.#t=A.emit}onExit(A,t){if(!$r(this.#A))return()=>{};this.#i===!1&&this.load();let a=t?.alwaysLast?"afterExit":"exit";return this.#a.on(a,A),()=>{this.#a.removeListener(a,A),this.#a.listeners.exit.length===0&&this.#a.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#i){this.#i=!0,this.#a.count+=1;for(let A of Kr.signals)try{let t=this.#s[A];t&&this.#A.on(A,t)}catch{}this.#A.emit=(A,...t)=>this.#o(A,...t),this.#A.reallyExit=A=>this.#n(A)}}unload(){this.#i&&(this.#i=!1,Kr.signals.forEach(A=>{let t=this.#s[A];if(!t)throw new Error("Listener not defined for signal: "+A);try{this.#A.removeListener(A,t)}catch{}}),this.#A.emit=this.#t,this.#A.reallyExit=this.#r,this.#a.count-=1)}#n(A){return $r(this.#A)?(this.#A.exitCode=A||0,this.#a.emit("exit",this.#A.exitCode,null),this.#r.call(this.#A,this.#A.exitCode)):0}#o(A,...t){let a=this.#t;if(A==="exit"&&$r(this.#A)){typeof t[0]=="number"&&(this.#A.exitCode=t[0]);let r=a.call(this.#A,A,...t);return this.#a.emit("exit",this.#A.exitCode,null),r}else return a.call(this.#A,A,...t)}},_n=globalThis.process;zr=V8($r(_n)?new xn(_n):new Gn),_A.onExit=zr.onExit,_A.load=zr.load,_A.unload=zr.unload});var Ai=E(EA=>{"use strict";var Y8=EA&&EA.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(EA,"__esModule",{value:!0});EA.defaultParsing=EA.handleOutput=EA.getSpawnedResult=EA.getSpawnedPromise=void 0;var J8=require("node:buffer"),Al=Y8(require("node:stream")),G8=require("node:util"),x8=K2();function _8(e,{timeout:A}={}){let t=new Promise((n,o)=>{e.on("exit",(d,l)=>{n({exitCode:d,signal:l,timedOut:!1})}),e.on("error",d=>{o(d)}),e.stdin&&e.stdin.on("error",d=>{o(d)})});if(A===0||A===void 0)return t;let a,r=new Promise((n,o)=>{a=setTimeout(()=>{e.kill("SIGTERM"),o(Object.assign(new Error("Timed out"),{timedOut:!0,signal:"SIGTERM"}))},A)}),i=t.finally(()=>{clearTimeout(a)}),s=(0,x8.onExit)(()=>{e.kill()});return Promise.race([r,i]).finally(()=>s())}EA.getSpawnedPromise=_8;var qn=class extends Error{constructor(){super("The output is too big"),this.name="MaxBufferError"}},q8=(0,G8.promisify)(Al.default.pipeline);function H8(e){let{encoding:A}=e,t=A==="buffer",a=new Al.default.PassThrough({objectMode:!1});A&&A!=="buffer"&&a.setEncoding(A);let r=0,i=[];return a.on("data",s=>{i.push(s),r+=s.length}),a.getBufferedValue=()=>t?Buffer.concat(i,r):i.join(""),a.getBufferedLength=()=>r,a}async function $2(e,A){let t=H8(A);return await new Promise((a,r)=>{let i=s=>{s&&t.getBufferedLength()<=J8.constants.MAX_LENGTH&&(s.bufferedData=t.getBufferedValue()),r(s)};(async()=>{try{await q8(e,t),a()}catch(s){i(s)}})(),t.on("data",()=>{t.getBufferedLength()>1e3*1e3*80&&i(new qn)})}),t.getBufferedValue()}async function el(e,A){e.destroy();try{return await A}catch(t){return t.bufferedData}}async function O8({stdout:e,stderr:A},{encoding:t},a){let r=$2(e,{encoding:t}),i=$2(A,{encoding:t});try{return await Promise.all([a,r,i])}catch(s){return Promise.all([{error:s,exitCode:null,signal:s.signal,timedOut:s.timedOut||!1},el(e,r),el(A,i)])}}EA.getSpawnedResult=O8;function P8(e){let A=typeof e=="string"?` +`:10,t=typeof e=="string"?"\r":13;return e[e.length-1]===A&&(e=e.slice(0,-1)),e[e.length-1]===t&&(e=e.slice(0,-1)),e}function W8(e,A){return e.stripFinalNewline?P8(A):A}EA.handleOutput=W8;var Z8=({timedOut:e,timeout:A,signal:t,exitCode:a})=>e?`timed out after ${A} milliseconds`:t!=null?`was killed with ${t}`:a!=null?`failed with exit code ${a}`:"failed",j8=({stdout:e,stderr:A,error:t,signal:a,exitCode:r,command:i,timedOut:s,options:n,parentError:o})=>{let l=`Command ${Z8({timedOut:s,timeout:n?.timeout,signal:a,exitCode:r})}: ${i}`,p=t?`${l} ${t.message}`:l,g=[p,A,e].filter(Boolean).join(` -`);return t?t.originalMessage=t.message:t=o,t.message=g,t.shortMessage=p,t.command=i,t.exitCode=r,t.signal=a,t.stdout=e,t.stderr=A,"bufferedData"in t&&delete t.bufferedData,t};function Q5({stdout:e,stderr:A,error:t,exitCode:a,signal:r,timedOut:i,command:s,options:n,parentError:o}){if(t||a!==0||r!==null)throw E5({error:t,exitCode:a,signal:r,stdout:e,stderr:A,command:s,timedOut:i,options:n,parentError:o});return e}hA.defaultParsing=Q5});var gl=E(U1=>{"use strict";var C5=U1&&U1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(U1,"__esModule",{value:!0});U1.useExec=void 0;var B5=C5(require("node:child_process")),ll=require("react"),h5=Xr(),m5=st(),Pa=oi(),I5=/ +/g;function f5(e,A){if(A)return[e,...A];let t=[];for(let a of e.trim().split(I5)){let r=t[t.length-1];r&&r.endsWith("\\")?t[t.length-1]=`${r.slice(0,-1)} ${a}`:t.push(a)}return t}function w5(e,A,t){let{parseOutput:a,input:r,onData:i,onWillExecute:s,initialData:n,execute:o,keepPreviousData:d,onError:l,...p}=Array.isArray(A)?t||{}:A||{},g={initialData:n,execute:o,keepPreviousData:d,onError:l,onData:i,onWillExecute:s},c=(0,ll.useRef)(),u=(0,m5.useLatest)(a||Pa.defaultParsing),Q=(0,ll.useCallback)(async(B,C,h,f)=>{let[m,...w]=f5(B,C),R=[m,...w].join(" "),S={stripFinalNewline:!0,...h,timeout:h?.timeout||1e4,signal:c.current?.signal,encoding:h?.encoding===null?"buffer":h?.encoding||"utf8",env:{PATH:"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",...process.env,...h?.env}},x=B5.default.spawn(m,w,S),me=(0,Pa.getSpawnedPromise)(x,S);f&&x.stdin.end(f);let[{error:Qe,exitCode:Dt,signal:Re,timedOut:de},EA,W]=await(0,Pa.getSpawnedResult)(x,S,me),Ae=(0,Pa.handleOutput)(S,EA),L=(0,Pa.handleOutput)(S,W);return u.current({stdout:Ae,stderr:L,error:Qe,exitCode:Dt,signal:Re,timedOut:de,command:R,options:S,parentError:new Error})},[u]);return(0,h5.useCachedPromise)(Q,[e,Array.isArray(A)?A:[],p,r],{...g,abortable:c})}U1.useExec=w5});var Cl=E(L1=>{"use strict";var ci=L1&&L1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(L1,"__esModule",{value:!0});L1.useSQL=void 0;var WA=require("react/jsx-runtime"),Ne=require("@raycast/api"),y5=require("node:fs"),di=require("node:fs/promises"),El=ci(require("node:os")),cl=ci(require("node:child_process")),ul=ci(require("node:path")),D5=ci(Sn()),pi=require("react"),R5=Ua(),v5=st(),li=oi(),N5=Dn();function b5(e,A,t){let{permissionPriming:a,...r}=t||{},[i,s]=(0,pi.useState)(),n=(0,v5.useLatest)(t||{}),o=(0,pi.useRef)(),d=(0,pi.useCallback)(p=>{console.error(p);let g=p instanceof Error&&p.message.includes("authorization denied")?new $n("You do not have permission to access the database."):p;S5(g)?s((0,WA.jsx)(k5,{priming:n.current.permissionPriming})):n.current.onError?n.current.onError(g):(console.error(g),Ne.environment.launchType!==Ne.LaunchType.Background&&(0,Ne.showToast)({style:Ne.Toast.Style.Failure,title:"Cannot query the data",message:g.message,primaryAction:(0,N5.handleErrorToastAction)(g)}))},[n]),l=(0,pi.useMemo)(()=>{if(!(0,y5.existsSync)(e))throw new Error("The database does not exist");let p;return async(g,c)=>{let u=o.current?.signal,Q=cl.default.spawn("sqlite3",["--json","--readonly",g,c],{signal:u}),B=(0,li.getSpawnedPromise)(Q),[{error:C,exitCode:h,signal:f},m,w]=await(0,li.getSpawnedResult)(Q,{encoding:"utf-8"},B);if(gi(u),w.match("(5)")||w.match("(14)")){if(!p){let x=ul.default.join(El.default.tmpdir(),"useSQL",(0,D5.default)(g));await(0,di.mkdir)(x,{recursive:!0}),gi(u),p=ul.default.join(x,"db.db"),await(0,di.copyFile)(g,p),await(0,di.writeFile)(p+"-shm",""),await(0,di.writeFile)(p+"-wal",""),gi(u)}let R=cl.default.spawn("sqlite3",["--json","--readonly","--vfs","unix-none",p,c],{signal:u}),S=(0,li.getSpawnedPromise)(R);[{error:C,exitCode:h,signal:f},m,w]=await(0,li.getSpawnedResult)(R,{encoding:"utf-8"},S),gi(u)}if(C||h!==0||f!==null)throw new Error(w);return JSON.parse(m.trim()||"[]")}},[e]);return{...(0,R5.usePromise)(l,[e,A],{...r,onError:d}),permissionView:i}}L1.useSQL=b5;var $n=class extends Error{constructor(A){super(A),this.name="PermissionError"}};function S5(e){return e instanceof Error&&e.name==="PermissionError"}var Ql=parseInt(El.default.release().split(".")[0])>=22,Kn=Ql?"Settings":"Preferences";function k5(e){let A=Ql?{title:"Open System Settings -> Privacy",target:"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"}:{title:"Open System Preferences -> Security",target:"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"};return Ne.environment.commandMode==="menu-bar"?(0,WA.jsxs)(Ne.MenuBarExtra,{icon:Ne.Icon.Warning,title:Ne.environment.commandName,children:[(0,WA.jsx)(Ne.MenuBarExtra.Item,{title:"Raycast needs full disk access",tooltip:`You can revert this access in ${Kn} whenever you want`}),e.priming?(0,WA.jsx)(Ne.MenuBarExtra.Item,{title:e.priming,tooltip:`You can revert this access in ${Kn} whenever you want`}):null,(0,WA.jsx)(Ne.MenuBarExtra.Separator,{}),(0,WA.jsx)(Ne.MenuBarExtra.Item,{title:A.title,onAction:()=>(0,Ne.open)(A.target)})]}):(0,WA.jsx)(Ne.List,{children:(0,WA.jsx)(Ne.List.EmptyView,{icon:{source:{light:"https://raycast.com/uploads/extensions-utils-security-permissions-light.png",dark:"https://raycast.com/uploads/extensions-utils-security-permissions-dark.png"}},title:"Raycast needs full disk access.",description:`${e.priming?e.priming+` -`:""}You can revert this access in ${Kn} whenever you want.`,actions:(0,WA.jsx)(Ne.ActionPanel,{children:(0,WA.jsx)(Ne.Action.Open,{...A})})})})}function gi(e){if(e?.aborted){let A=new Error("aborted");throw A.name="AbortError",A}}});var ml=E(A1=>{"use strict";Object.defineProperty(A1,"__esModule",{value:!0});A1.useForm=A1.FormValidation=void 0;var pt=require("react"),Bl=st(),hl;(function(e){e.Required="required"})(hl=A1.FormValidation||(A1.FormValidation={}));function eo(e,A){if(e){if(typeof e=="function")return e(A);if(e===hl.Required){let t=typeof A<"u"&&A!==null;if(t)switch(typeof A){case"string":t=A.length>0;break;case"object":Array.isArray(A)?t=A.length>0:A instanceof Date&&(t=A.getTime()>0);break;default:break}if(!t)return"The item is required"}}}function F5(e){let{onSubmit:A,validation:t,initialValues:a={}}=e,[r,i]=(0,pt.useState)(a),[s,n]=(0,pt.useState)({}),o=(0,pt.useRef)({}),d=(0,Bl.useLatest)(t||{}),l=(0,Bl.useLatest)(A),p=(0,pt.useCallback)(C=>{o.current[C]?.focus()},[o]),g=(0,pt.useCallback)(async C=>{let h=!1;for(let[m,w]of Object.entries(d.current)){let R=eo(w,C[m]);R&&(h||(h={},p(m)),h[m]=R)}if(h)return n(h),!1;let f=await l.current(C);return typeof f=="boolean"?f:!0},[d,l,p]),c=(0,pt.useCallback)((C,h)=>{n(f=>({...f,[C]:h}))},[n]),u=(0,pt.useCallback)(function(C,h){i(f=>({...f,[C]:typeof h=="function"?h(f[C]):h}))},[i]),Q=(0,pt.useMemo)(()=>new Proxy({},{get(C,h){let f=d.current[h],m=r[h];return{onChange(w){s[h]&&(eo(f,w)||c(h,void 0)),u(h,w)},onBlur(w){let R=eo(f,w.target.value);R&&c(h,R)},error:s[h],id:h,value:typeof m>"u"?null:m,ref:w=>{o.current[h]=w}}}}),[s,d,c,r,o,u]),B=(0,pt.useCallback)((C={})=>{i(C),n({})},[i,n]);return{handleSubmit:g,setValidationError:c,setValue:u,values:r,itemProps:Q,focus:p,reset:B}}A1.useForm=F5});var fl=E(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.useAI=void 0;var Il=require("react"),U5=require("@raycast/api"),L5=Ua();function M5(e,A={}){let{creativity:t,stream:a,model:r,...i}=A,[s,n]=(0,Il.useState)(""),o=(0,Il.useRef)(),{isLoading:d,error:l,revalidate:p}=(0,L5.usePromise)(async(g,c,u)=>{n("");let Q=U5.AI.ask(g,{creativity:c,model:r,signal:o.current?.signal});u===!1?n(await Q):(Q.on("data",B=>{n(C=>C+B)}),await Q)},[e,t,a],{...i,abortable:o});return{isLoading:d,data:s,error:l,revalidate:p}}ui.useAI=M5});var Dl=E(Ei=>{"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});Ei.useFrecencySorting=void 0;var Ao=require("react"),wl=st(),T5=Zr(),V5=10,yl=24*60*60*1e3,Y5=Math.log(2)/(V5*yl),J5={Default:100,Embed:0,Bookmark:140};function G5(e){let A=Date.now(),t=e?e.lastVisited:0,a=e?e.frecency:0,r=(A-t)/yl,i=J5.Default*Math.exp(-Y5*r),s=a+i;return{lastVisited:A,frecency:s}}var x5=e=>{if(process.env.NODE_ENV!=="production"&&(typeof e!="object"||!e||!("id"in e)||typeof e.id!="string"))throw new Error("Specify a key function or make sure your items have an 'id' property");return e.id};function _5(e,A){let t=(0,wl.useLatest)(A?.key||x5),a=(0,wl.useLatest)(A?.sortUnvisited),[r,i]=(0,T5.useCachedState)(`raycast_frecency_${A?.namespace}`,{}),s=(0,Ao.useCallback)(async function(l){let p=t.current(l);i(g=>{let c=g[p],u=G5(c);return{...g,[p]:u}})},[t,i]),n=(0,Ao.useCallback)(async function(l){let p=t.current(l);i(g=>{let c={...g};return delete c[p],c})},[t,i]);return{data:(0,Ao.useMemo)(()=>e?e.sort((d,l)=>{let p=r[t.current(d)],g=r[t.current(l)];return p&&!g?-1:!p&&g?1:p&&g?g.frecency-p.frecency:a.current?a.current(d,l):0}):[],[r,e,t,a]),visitItem:s,resetRanking:n}}Ei.useFrecencySorting=_5});var Sl=E(M1=>{"use strict";Object.defineProperty(M1,"__esModule",{value:!0});M1.slightlyLighterColor=M1.slightlyDarkerColor=void 0;function q5(e){let A=0,t=0,a=0;if(e.length===4)A=parseInt(`${e[1]}${e[1]}`,16),t=parseInt(`${e[2]}${e[2]}`,16),a=parseInt(`${e[3]}${e[3]}`,16);else if(e.length===7)A=parseInt(`${e[1]}${e[2]}`,16),t=parseInt(`${e[3]}${e[4]}`,16),a=parseInt(`${e[5]}${e[6]}`,16);else throw new Error(`Malformed hex color: ${e}`);return{r:A,g:t,b:a}}function H5({r:e,g:A,b:t}){let a=e.toString(16),r=A.toString(16),i=t.toString(16);return a.length===1&&(a=`0${a}`),r.length===1&&(r=`0${r}`),i.length===1&&(i=`0${i}`),`#${a}${r}${i}`}function O5({r:e,g:A,b:t}){e/=255,A/=255,t/=255;let a=Math.min(e,A,t),r=Math.max(e,A,t),i=r-a,s=0,n=0,o=0;return i===0?s=0:r===e?s=(A-t)/i%6:r===A?s=(t-e)/i+2:s=(e-A)/i+4,s=Math.round(s*60),s<0&&(s+=360),o=(r+a)/2,n=i===0?0:i/(1-Math.abs(2*o-1)),n=+(n*100).toFixed(1),o=+(o*100).toFixed(1),{h:s,s:n,l:o}}function P5({h:e,s:A,l:t}){A/=100,t/=100;let a=(1-Math.abs(2*t-1))*A,r=a*(1-Math.abs(e/60%2-1)),i=t-a/2,s=0,n=0,o=0;return e>=0&&e<60?(s=a,n=r,o=0):e>=60&&e<120?(s=r,n=a,o=0):e>=120&&e<180?(s=0,n=a,o=r):e>=180&&e<240?(s=0,n=r,o=a):e>=240&&e<300?(s=r,n=0,o=a):e>=300&&e<360&&(s=a,n=0,o=r),s=Math.round((s+i)*255),n=Math.round((n+i)*255),o=Math.round((o+i)*255),{r:s,g:n,b:o}}function Rl(e){return O5(q5(e))}function vl(e){return H5(P5(e))}function Nl(e,A,t){return A<t?e<A?A:e>t?t:e:e<t?t:e>A?A:e}var bl=12;function W5(e){let A=Rl(e);return vl({h:A.h,s:A.s,l:Nl(A.l-bl,0,100)})}M1.slightlyDarkerColor=W5;function Z5(e){let A=Rl(e);return vl({h:A.h,s:A.s,l:Nl(A.l+bl,0,100)})}M1.slightlyLighterColor=Z5});var Ul=E(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});Qi.getAvatarIcon=void 0;var kl=Sl();function T1(e,A){let t=e.charCodeAt(A);if(Number.isNaN(t))return["",A];if(t<55296||t>57343)return[e.charAt(A),A];if(55296<=t&&t<=56319){if(e.length<=A+1)throw new Error("High surrogate without following low surrogate");let r=e.charCodeAt(A+1);if(56320>r||r>57343)throw new Error("High surrogate without following low surrogate");return[e.charAt(A)+e.charAt(A+1),A+1]}if(A===0)throw new Error("Low surrogate without preceding high surrogate");let a=e.charCodeAt(A-1);if(55296>a||a>56319)throw new Error("Low surrogate without preceding high surrogate");return[e.charAt(A+1),A+1]}var Fl=["#DC829A","#D64854","#D47600","#D36CDD","#52A9E4","#7871E8","#70920F","#43B93A","#EB6B3E","#26B795","#D85A9B","#A067DC","#BD9500","#5385D9"];function j5(e,A){let t=e.trim().split(" "),a;if(t.length==1&&T1(t[0],0)[0])a=T1(t[0],0)[0];else if(t.length>1){let o=T1(t[0],0)[0]||"",d=T1(t[t.length-1],0)[0]??"";a=o+d}else a="";let r;if(A?.background)r=A?.background;else{let o=0,[d,l]=T1(a,0);for(;d;)o+=d.charCodeAt(0),[d,l]=T1(a,l+1);let p=o%Fl.length;r=Fl[p]}let s=50-0;return`data:image/svg+xml,${`<svg width="100px" height="100px"> +`);return t?t.originalMessage=t.message:t=o,t.message=g,t.shortMessage=p,t.command=i,t.exitCode=r,t.signal=a,t.stdout=e,t.stderr=A,"bufferedData"in t&&delete t.bufferedData,t};function X8({stdout:e,stderr:A,error:t,exitCode:a,signal:r,timedOut:i,command:s,options:n,parentError:o}){if(t||a!==0||r!==null)throw j8({error:t,exitCode:a,signal:r,stdout:e,stderr:A,command:s,timedOut:i,options:n,parentError:o});return e}EA.defaultParsing=X8});var al=E(b1=>{"use strict";var z8=b1&&b1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(b1,"__esModule",{value:!0});b1.useExec=void 0;var K8=z8(require("node:child_process")),tl=require("react"),$8=qr(),e5=At(),Ja=Ai(),A5=/ +/g;function t5(e,A){if(A)return[e,...A];let t=[];for(let a of e.trim().split(A5)){let r=t[t.length-1];r&&r.endsWith("\\")?t[t.length-1]=`${r.slice(0,-1)} ${a}`:t.push(a)}return t}function a5(e,A,t){let{parseOutput:a,input:r,onData:i,onWillExecute:s,initialData:n,execute:o,keepPreviousData:d,onError:l,...p}=Array.isArray(A)?t||{}:A||{},g={initialData:n,execute:o,keepPreviousData:d,onError:l,onData:i,onWillExecute:s},c=(0,tl.useRef)(),u=(0,e5.useLatest)(a||Ja.defaultParsing),Q=(0,tl.useCallback)(async(m,C,B,w)=>{let[I,...y]=t5(m,C),b=[I,...y].join(" "),F={stripFinalNewline:!0,...B,timeout:B?.timeout||1e4,signal:c.current?.signal,encoding:B?.encoding===null?"buffer":B?.encoding||"utf8",env:{PATH:"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",...process.env,...B?.env}},x=K8.default.spawn(I,y,F),he=(0,Ja.getSpawnedPromise)(x,F);w&&x.stdin.end(w);let[{error:Qe,exitCode:Bt,signal:Re,timedOut:de},lA,W]=await(0,Ja.getSpawnedResult)(x,F,he),Ae=(0,Ja.handleOutput)(F,lA),L=(0,Ja.handleOutput)(F,W);return u.current({stdout:Ae,stderr:L,error:Qe,exitCode:Bt,signal:Re,timedOut:de,command:b,options:F,parentError:new Error})},[u]);return(0,$8.useCachedPromise)(Q,[e,Array.isArray(A)?A:[],p,r],{...g,abortable:c})}b1.useExec=a5});var ol=E(S1=>{"use strict";var si=S1&&S1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(S1,"__esModule",{value:!0});S1.useSQL=void 0;var qA=require("react/jsx-runtime"),Ne=require("@raycast/api"),r5=require("node:fs"),ti=require("node:fs/promises"),sl=si(require("node:os")),rl=si(require("node:child_process")),il=si(require("node:path")),i5=si(fn()),ai=require("react"),s5=va(),n5=At(),ri=Ai(),o5=Cn();function d5(e,A,t){let{permissionPriming:a,...r}=t||{},[i,s]=(0,ai.useState)(),n=(0,n5.useLatest)(t||{}),o=(0,ai.useRef)(),d=(0,ai.useCallback)(p=>{console.error(p);let g=p instanceof Error&&p.message.includes("authorization denied")?new On("You do not have permission to access the database."):p;p5(g)?s((0,qA.jsx)(l5,{priming:n.current.permissionPriming})):n.current.onError?n.current.onError(g):(console.error(g),Ne.environment.launchType!==Ne.LaunchType.Background&&(0,Ne.showToast)({style:Ne.Toast.Style.Failure,title:"Cannot query the data",message:g.message,primaryAction:(0,o5.handleErrorToastAction)(g)}))},[n]),l=(0,ai.useMemo)(()=>{if(!(0,r5.existsSync)(e))throw new Error("The database does not exist");let p;return async(g,c)=>{let u=o.current?.signal,Q=rl.default.spawn("sqlite3",["--json","--readonly",g,c],{signal:u}),m=(0,ri.getSpawnedPromise)(Q),[{error:C,exitCode:B,signal:w},I,y]=await(0,ri.getSpawnedResult)(Q,{encoding:"utf-8"},m);if(ii(u),y.match("(5)")||y.match("(14)")){if(!p){let x=il.default.join(sl.default.tmpdir(),"useSQL",(0,i5.default)(g));await(0,ti.mkdir)(x,{recursive:!0}),ii(u),p=il.default.join(x,"db.db"),await(0,ti.copyFile)(g,p),await(0,ti.writeFile)(p+"-shm",""),await(0,ti.writeFile)(p+"-wal",""),ii(u)}let b=rl.default.spawn("sqlite3",["--json","--readonly","--vfs","unix-none",p,c],{signal:u}),F=(0,ri.getSpawnedPromise)(b);[{error:C,exitCode:B,signal:w},I,y]=await(0,ri.getSpawnedResult)(b,{encoding:"utf-8"},F),ii(u)}if(C||B!==0||w!==null)throw new Error(y);return JSON.parse(I.trim()||"[]")}},[e]);return{...(0,s5.usePromise)(l,[e,A],{...r,onError:d}),permissionView:i}}S1.useSQL=d5;var On=class extends Error{constructor(A){super(A),this.name="PermissionError"}};function p5(e){return e instanceof Error&&e.name==="PermissionError"}var nl=parseInt(sl.default.release().split(".")[0])>=22,Hn=nl?"Settings":"Preferences";function l5(e){let A=nl?{title:"Open System Settings -> Privacy",target:"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"}:{title:"Open System Preferences -> Security",target:"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"};return Ne.environment.commandMode==="menu-bar"?(0,qA.jsxs)(Ne.MenuBarExtra,{icon:Ne.Icon.Warning,title:Ne.environment.commandName,children:[(0,qA.jsx)(Ne.MenuBarExtra.Item,{title:"Raycast needs full disk access",tooltip:`You can revert this access in ${Hn} whenever you want`}),e.priming?(0,qA.jsx)(Ne.MenuBarExtra.Item,{title:e.priming,tooltip:`You can revert this access in ${Hn} whenever you want`}):null,(0,qA.jsx)(Ne.MenuBarExtra.Separator,{}),(0,qA.jsx)(Ne.MenuBarExtra.Item,{title:A.title,onAction:()=>(0,Ne.open)(A.target)})]}):(0,qA.jsx)(Ne.List,{children:(0,qA.jsx)(Ne.List.EmptyView,{icon:{source:{light:"https://raycast.com/uploads/extensions-utils-security-permissions-light.png",dark:"https://raycast.com/uploads/extensions-utils-security-permissions-dark.png"}},title:"Raycast needs full disk access.",description:`${e.priming?e.priming+` +`:""}You can revert this access in ${Hn} whenever you want.`,actions:(0,qA.jsx)(Ne.ActionPanel,{children:(0,qA.jsx)(Ne.Action.Open,{...A})})})})}function ii(e){if(e?.aborted){let A=new Error("aborted");throw A.name="AbortError",A}}});var ll=E(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.useForm=Xt.FormValidation=void 0;var it=require("react"),dl=At(),pl;(function(e){e.Required="required"})(pl=Xt.FormValidation||(Xt.FormValidation={}));function Pn(e,A){if(e){if(typeof e=="function")return e(A);if(e===pl.Required){let t=typeof A<"u"&&A!==null;if(t)switch(typeof A){case"string":t=A.length>0;break;case"object":Array.isArray(A)?t=A.length>0:A instanceof Date&&(t=A.getTime()>0);break;default:break}if(!t)return"The item is required"}}}function g5(e){let{onSubmit:A,validation:t,initialValues:a={}}=e,[r,i]=(0,it.useState)(a),[s,n]=(0,it.useState)({}),o=(0,it.useRef)({}),d=(0,dl.useLatest)(t||{}),l=(0,dl.useLatest)(A),p=(0,it.useCallback)(C=>{o.current[C]?.focus()},[o]),g=(0,it.useCallback)(async C=>{let B=!1;for(let[I,y]of Object.entries(d.current)){let b=Pn(y,C[I]);b&&(B||(B={},p(I)),B[I]=b)}if(B)return n(B),!1;let w=await l.current(C);return typeof w=="boolean"?w:!0},[d,l,p]),c=(0,it.useCallback)((C,B)=>{n(w=>({...w,[C]:B}))},[n]),u=(0,it.useCallback)(function(C,B){i(w=>({...w,[C]:typeof B=="function"?B(w[C]):B}))},[i]),Q=(0,it.useMemo)(()=>new Proxy({},{get(C,B){let w=d.current[B],I=r[B];return{onChange(y){s[B]&&(Pn(w,y)||c(B,void 0)),u(B,y)},onBlur(y){let b=Pn(w,y.target.value);b&&c(B,b)},error:s[B],id:B,value:typeof I>"u"?null:I,ref:y=>{o.current[B]=y}}}}),[s,d,c,r,o,u]),m=(0,it.useCallback)((C={})=>{i(C),n({})},[i,n]);return{handleSubmit:g,setValidationError:c,setValue:u,values:r,itemProps:Q,focus:p,reset:m}}Xt.useForm=g5});var cl=E(ni=>{"use strict";Object.defineProperty(ni,"__esModule",{value:!0});ni.useAI=void 0;var gl=require("react"),c5=require("@raycast/api"),u5=va();function E5(e,A={}){let{creativity:t,stream:a,model:r,...i}=A,[s,n]=(0,gl.useState)(""),o=(0,gl.useRef)(),{isLoading:d,error:l,revalidate:p}=(0,u5.usePromise)(async(g,c,u)=>{n("");let Q=c5.AI.ask(g,{creativity:c,model:r,signal:o.current?.signal});u===!1?n(await Q):(Q.on("data",m=>{n(C=>C+m)}),await Q)},[e,t,a],{...i,abortable:o});return{isLoading:d,data:s,error:l,revalidate:p}}ni.useAI=E5});var Ql=E(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});oi.useFrecencySorting=void 0;var Wn=require("react"),ul=At(),Q5=xr(),C5=10,El=24*60*60*1e3,m5=Math.log(2)/(C5*El),B5={Default:100,Embed:0,Bookmark:140};function h5(e){let A=Date.now(),t=e?e.lastVisited:0,a=e?e.frecency:0,r=(A-t)/El,i=B5.Default*Math.exp(-m5*r),s=a+i;return{lastVisited:A,frecency:s}}var I5=e=>{if(process.env.NODE_ENV!=="production"&&(typeof e!="object"||!e||!("id"in e)||typeof e.id!="string"))throw new Error("Specify a key function or make sure your items have an 'id' property");return e.id};function f5(e,A){let t=(0,ul.useLatest)(A?.key||I5),a=(0,ul.useLatest)(A?.sortUnvisited),[r,i]=(0,Q5.useCachedState)(`raycast_frecency_${A?.namespace}`,{}),s=(0,Wn.useCallback)(async function(l){let p=t.current(l);i(g=>{let c=g[p],u=h5(c);return{...g,[p]:u}})},[t,i]),n=(0,Wn.useCallback)(async function(l){let p=t.current(l);i(g=>{let c={...g};return delete c[p],c})},[t,i]);return{data:(0,Wn.useMemo)(()=>e?e.sort((d,l)=>{let p=r[t.current(d)],g=r[t.current(l)];return p&&!g?-1:!p&&g?1:p&&g?g.frecency-p.frecency:a.current?a.current(d,l):0}):[],[r,e,t,a]),visitItem:s,resetRanking:n}}oi.useFrecencySorting=f5});var Il=E(k1=>{"use strict";Object.defineProperty(k1,"__esModule",{value:!0});k1.slightlyLighterColor=k1.slightlyDarkerColor=void 0;function w5(e){let A=0,t=0,a=0;if(e.length===4)A=parseInt(`${e[1]}${e[1]}`,16),t=parseInt(`${e[2]}${e[2]}`,16),a=parseInt(`${e[3]}${e[3]}`,16);else if(e.length===7)A=parseInt(`${e[1]}${e[2]}`,16),t=parseInt(`${e[3]}${e[4]}`,16),a=parseInt(`${e[5]}${e[6]}`,16);else throw new Error(`Malformed hex color: ${e}`);return{r:A,g:t,b:a}}function y5({r:e,g:A,b:t}){let a=e.toString(16),r=A.toString(16),i=t.toString(16);return a.length===1&&(a=`0${a}`),r.length===1&&(r=`0${r}`),i.length===1&&(i=`0${i}`),`#${a}${r}${i}`}function D5({r:e,g:A,b:t}){e/=255,A/=255,t/=255;let a=Math.min(e,A,t),r=Math.max(e,A,t),i=r-a,s=0,n=0,o=0;return i===0?s=0:r===e?s=(A-t)/i%6:r===A?s=(t-e)/i+2:s=(e-A)/i+4,s=Math.round(s*60),s<0&&(s+=360),o=(r+a)/2,n=i===0?0:i/(1-Math.abs(2*o-1)),n=+(n*100).toFixed(1),o=+(o*100).toFixed(1),{h:s,s:n,l:o}}function R5({h:e,s:A,l:t}){A/=100,t/=100;let a=(1-Math.abs(2*t-1))*A,r=a*(1-Math.abs(e/60%2-1)),i=t-a/2,s=0,n=0,o=0;return e>=0&&e<60?(s=a,n=r,o=0):e>=60&&e<120?(s=r,n=a,o=0):e>=120&&e<180?(s=0,n=a,o=r):e>=180&&e<240?(s=0,n=r,o=a):e>=240&&e<300?(s=r,n=0,o=a):e>=300&&e<360&&(s=a,n=0,o=r),s=Math.round((s+i)*255),n=Math.round((n+i)*255),o=Math.round((o+i)*255),{r:s,g:n,b:o}}function Cl(e){return D5(w5(e))}function ml(e){return y5(R5(e))}function Bl(e,A,t){return A<t?e<A?A:e>t?t:e:e<t?t:e>A?A:e}var hl=12;function v5(e){let A=Cl(e);return ml({h:A.h,s:A.s,l:Bl(A.l-hl,0,100)})}k1.slightlyDarkerColor=v5;function N5(e){let A=Cl(e);return ml({h:A.h,s:A.s,l:Bl(A.l+hl,0,100)})}k1.slightlyLighterColor=N5});var yl=E(di=>{"use strict";Object.defineProperty(di,"__esModule",{value:!0});di.getAvatarIcon=void 0;var fl=Il();function F1(e,A){let t=e.charCodeAt(A);if(Number.isNaN(t))return["",A];if(t<55296||t>57343)return[e.charAt(A),A];if(55296<=t&&t<=56319){if(e.length<=A+1)throw new Error("High surrogate without following low surrogate");let r=e.charCodeAt(A+1);if(56320>r||r>57343)throw new Error("High surrogate without following low surrogate");return[e.charAt(A)+e.charAt(A+1),A+1]}if(A===0)throw new Error("Low surrogate without preceding high surrogate");let a=e.charCodeAt(A-1);if(55296>a||a>56319)throw new Error("Low surrogate without preceding high surrogate");return[e.charAt(A+1),A+1]}var wl=["#DC829A","#D64854","#D47600","#D36CDD","#52A9E4","#7871E8","#70920F","#43B93A","#EB6B3E","#26B795","#D85A9B","#A067DC","#BD9500","#5385D9"];function b5(e,A){let t=e.trim().split(" "),a;if(t.length==1&&F1(t[0],0)[0])a=F1(t[0],0)[0];else if(t.length>1){let o=F1(t[0],0)[0]||"",d=F1(t[t.length-1],0)[0]??"";a=o+d}else a="";let r;if(A?.background)r=A?.background;else{let o=0,[d,l]=F1(a,0);for(;d;)o+=d.charCodeAt(0),[d,l]=F1(a,l+1);let p=o%wl.length;r=wl[p]}let s=50-0;return`data:image/svg+xml,${`<svg width="100px" height="100px"> ${A?.gradient!==!1?`<defs> <linearGradient id="Gradient" x1="0.25" x2="0.75" y1="0" y2="1"> - <stop offset="0%" stop-color="${(0,kl.slightlyLighterColor)(r)}"/> + <stop offset="0%" stop-color="${(0,fl.slightlyLighterColor)(r)}"/> <stop offset="50%" stop-color="${r}"/> - <stop offset="100%" stop-color="${(0,kl.slightlyDarkerColor)(r)}"/> + <stop offset="100%" stop-color="${(0,fl.slightlyDarkerColor)(r)}"/> </linearGradient> </defs>`:""} <circle cx="50" cy="50" r="${s}" fill="${A?.gradient!==!1?"url(#Gradient)":r}" /> ${a?`<text x="50" y="80" font-size="${s-1}" font-family="Inter, sans-serif" text-anchor="middle" fill="white">${a.toUpperCase()}</text>`:""} </svg> `.replaceAll(` -`,"")}`}Qi.getAvatarIcon=j5});var Ml=E(Ci=>{"use strict";Object.defineProperty(Ci,"__esModule",{value:!0});Ci.getFavicon=void 0;var Ll=require("@raycast/api"),X5=require("url");function z5(e,A){try{let a=(typeof e=="string"?new X5.URL(e):e).hostname;return{source:`https://www.google.com/s2/favicons?sz=${A?.size??64}&domain=${a}`,fallback:A?.fallback??Ll.Icon.Link,mask:A?.mask}}catch(t){return console.error(t),Ll.Icon.Link}}Ci.getFavicon=z5});var Yl=E(Bi=>{"use strict";Object.defineProperty(Bi,"__esModule",{value:!0});Bi.getProgressIcon=void 0;var Tl=require("@raycast/api");function Vl(e,A,t,a){let r=(a-90)*Math.PI/180;return{x:e+t*Math.cos(r),y:A+t*Math.sin(r)}}function K5(e,A,t,a,r){let i=Vl(e,A,t,r),s=Vl(e,A,t,a),n=r-a<=180?"0":"1";return["M",i.x,i.y,"A",t,t,0,n,0,s.x,s.y].join(" ")}function $5(e,A=Tl.Color.Red,t){let a=t?.background||(Tl.environment.appearance==="light"?"black":"white"),r=t?.backgroundOpacity||.1,i=10,n=50-5-i/2;return`data:image/svg+xml,${`<svg width="100px" height="100px"> +`,"")}`}di.getAvatarIcon=b5});var Rl=E(pi=>{"use strict";Object.defineProperty(pi,"__esModule",{value:!0});pi.getFavicon=void 0;var Dl=require("@raycast/api"),S5=require("url");function k5(e,A){try{let a=(typeof e=="string"?new S5.URL(e):e).hostname;return{source:`https://www.google.com/s2/favicons?sz=${A?.size??64}&domain=${a}`,fallback:A?.fallback??Dl.Icon.Link,mask:A?.mask}}catch(t){return console.error(t),Dl.Icon.Link}}pi.getFavicon=k5});var bl=E(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.getProgressIcon=void 0;var vl=require("@raycast/api");function Nl(e,A,t,a){let r=(a-90)*Math.PI/180;return{x:e+t*Math.cos(r),y:A+t*Math.sin(r)}}function F5(e,A,t,a,r){let i=Nl(e,A,t,r),s=Nl(e,A,t,a),n=r-a<=180?"0":"1";return["M",i.x,i.y,"A",t,t,0,n,0,s.x,s.y].join(" ")}function U5(e,A=vl.Color.Red,t){let a=t?.background||(vl.environment.appearance==="light"?"black":"white"),r=t?.backgroundOpacity||.1,i=10,n=50-5-i/2;return`data:image/svg+xml,${`<svg width="100px" height="100px"> <circle cx="50" cy="50" r="${n}" stroke-width="${i}" stroke="${e<1?a:A}" opacity="${e<1?r:"1"}" fill="none" /> - ${e>0&&e<1?`<path d="${K5(50,50,n,0,e*360)}" stroke="${A}" stroke-width="${i}" fill="none" />`:""} + ${e>0&&e<1?`<path d="${F5(50,50,n,0,e*360)}" stroke="${A}" stroke-width="${i}" fill="none" />`:""} </svg> `.replaceAll(` -`,"")}`}Bi.getProgressIcon=$5});var Jl=E(lt=>{"use strict";var eC=lt&&lt.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),to=lt&&lt.__exportStar||function(e,A){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(A,t)&&eC(A,e,t)};Object.defineProperty(lt,"__esModule",{value:!0});to(Ul(),lt);to(Ml(),lt);to(Yl(),lt)});var Gl=E(V1=>{"use strict";var AC=V1&&V1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(V1,"__esModule",{value:!0});V1.runAppleScript=void 0;var tC=AC(require("node:child_process")),Wa=oi();async function aC(e,A,t){let{humanReadableOutput:a,language:r,timeout:i,...s}=Array.isArray(A)?t||{}:A||{},n=a!==!1?[]:["-ss"];r==="JavaScript"&&n.push("-l","JavaScript"),Array.isArray(A)&&n.push("-",...A);let o=tC.default.spawn("osascript",n,{...s,env:{PATH:"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"}}),d=(0,Wa.getSpawnedPromise)(o,{timeout:i||1e4});o.stdin.end(e);let[{error:l,exitCode:p,signal:g,timedOut:c},u,Q]=await(0,Wa.getSpawnedResult)(o,{encoding:"utf8"},d),B=(0,Wa.handleOutput)({stripFinalNewline:!0},u),C=(0,Wa.handleOutput)({stripFinalNewline:!0},Q);return(0,Wa.defaultParsing)({stdout:B,stderr:C,error:l,exitCode:p,signal:g,timedOut:c,command:"osascript",options:t,parentError:new Error})}V1.runAppleScript=aC});var ao=E(be=>{"use strict";var rC=be&&be.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),UA=be&&be.__exportStar||function(e,A){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(A,t)&&rC(A,e,t)};Object.defineProperty(be,"__esModule",{value:!0});UA(Ua(),be);UA(Zr(),be);UA(Xr(),be);UA(il(),be);UA(gl(),be);UA(Cl(),be);UA(ml(),be);UA(fl(),be);UA(Dl(),be);UA(Jl(),be);UA(Gl(),be)});var te=E((Qb,xl)=>{xl.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size")}});var z=E((Cb,_l)=>{"use strict";var ce=class extends Error{constructor(A){super(A),this.name="UndiciError",this.code="UND_ERR"}},ro=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ConnectTimeoutError",this.message=A||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},io=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="HeadersTimeoutError",this.message=A||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},so=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="HeadersOverflowError",this.message=A||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},no=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="BodyTimeoutError",this.message=A||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},oo=class e extends ce{constructor(A,t,a,r){super(A),Error.captureStackTrace(this,e),this.name="ResponseStatusCodeError",this.message=A||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=r,this.status=t,this.statusCode=t,this.headers=a}},po=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InvalidArgumentError",this.message=A||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},lo=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InvalidReturnValueError",this.message=A||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},go=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="AbortError",this.message=A||"Request aborted",this.code="UND_ERR_ABORTED"}},co=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InformationalError",this.message=A||"Request information",this.code="UND_ERR_INFO"}},uo=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="RequestContentLengthMismatchError",this.message=A||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},Eo=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ResponseContentLengthMismatchError",this.message=A||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},Qo=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ClientDestroyedError",this.message=A||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},Co=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ClientClosedError",this.message=A||"The client is closed",this.code="UND_ERR_CLOSED"}},Bo=class e extends ce{constructor(A,t){super(A),Error.captureStackTrace(this,e),this.name="SocketError",this.message=A||"Socket error",this.code="UND_ERR_SOCKET",this.socket=t}},hi=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="NotSupportedError",this.message=A||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},ho=class extends ce{constructor(A){super(A),Error.captureStackTrace(this,hi),this.name="MissingUpstreamError",this.message=A||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},mo=class e extends Error{constructor(A,t,a){super(A),Error.captureStackTrace(this,e),this.name="HTTPParserError",this.code=t?`HPE_${t}`:void 0,this.data=a?a.toString():void 0}},Io=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ResponseExceededMaxSizeError",this.message=A||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}};_l.exports={HTTPParserError:mo,UndiciError:ce,HeadersTimeoutError:io,HeadersOverflowError:so,BodyTimeoutError:no,RequestContentLengthMismatchError:uo,ConnectTimeoutError:ro,ResponseStatusCodeError:oo,InvalidArgumentError:po,InvalidReturnValueError:lo,RequestAbortedError:go,ClientDestroyedError:Qo,ClientClosedError:Co,InformationalError:co,SocketError:Bo,NotSupportedError:hi,ResponseContentLengthMismatchError:Eo,BalancedPoolMissingUpstreamError:ho,ResponseExceededMaxSizeError:Io}});var _=E((Bb,$l)=>{"use strict";var Pl=require("assert"),{kDestroyed:Wl,kBodyUsed:ql}=te(),{IncomingMessage:iC}=require("http"),Y1=require("stream"),sC=require("net"),{InvalidArgumentError:Se}=z(),{Blob:Hl}=require("buffer"),Ii=require("util"),{stringify:nC}=require("querystring"),[fo,Ol]=process.versions.node.split(".").map(e=>Number(e));function oC(){}function wo(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function Zl(e){return Hl&&e instanceof Hl||e&&typeof e=="object"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function dC(e,A){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let t=nC(A);return t&&(e+="?"+t),e}function jl(e){if(typeof e=="string"){if(e=new URL(e),!/^https?:/.test(e.origin||e.protocol))throw new Se("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new Se("Invalid URL: The URL argument must be a non-null object.");if(e.port!=null&&e.port!==""&&!Number.isFinite(parseInt(e.port)))throw new Se("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new Se("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new Se("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new Se("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new Se("Invalid URL origin: the origin must be a string or null/undefined.");if(!/^https?:/.test(e.origin||e.protocol))throw new Se("Invalid URL protocol: the URL must start with `http:` or `https:`.");if(!(e instanceof URL)){let A=e.port!=null?e.port:e.protocol==="https:"?443:80,t=e.origin!=null?e.origin:`${e.protocol}//${e.hostname}:${A}`,a=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;t.endsWith("/")&&(t=t.substring(0,t.length-1)),a&&!a.startsWith("/")&&(a=`/${a}`),e=new URL(t+a)}return e}function pC(e){if(e=jl(e),e.pathname!=="/"||e.search||e.hash)throw new Se("invalid url");return e}function lC(e){if(e[0]==="["){let t=e.indexOf("]");return Pl(t!==-1),e.substr(1,t-1)}let A=e.indexOf(":");return A===-1?e:e.substr(0,A)}function gC(e){if(!e)return null;Pl.strictEqual(typeof e,"string");let A=lC(e);return sC.isIP(A)?"":A}function cC(e){return JSON.parse(JSON.stringify(e))}function uC(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function EC(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function QC(e){if(e==null)return 0;if(wo(e)){let A=e._readableState;return A&&A.ended===!0&&Number.isFinite(A.length)?A.length:null}else{if(Zl(e))return e.size!=null?e.size:null;if(zl(e))return e.byteLength}return null}function yo(e){return!e||!!(e.destroyed||e[Wl])}function Xl(e){let A=e&&e._readableState;return yo(e)&&A&&!A.endEmitted}function CC(e,A){!wo(e)||yo(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===iC&&(e.socket=null),e.destroy(A)):A&&process.nextTick((t,a)=>{t.emit("error",a)},e,A),e.destroyed!==!0&&(e[Wl]=!0))}var BC=/timeout=(\d+)/;function hC(e){let A=e.toString().match(BC);return A?parseInt(A[1],10)*1e3:null}function mC(e,A={}){for(let t=0;t<e.length;t+=2){let a=e[t].toString().toLowerCase(),r=A[a];r?(Array.isArray(r)||(r=[r],A[a]=r),r.push(e[t+1].toString("utf8"))):Array.isArray(e[t+1])?A[a]=e[t+1]:A[a]=e[t+1].toString("utf8")}return"content-length"in A&&"content-disposition"in A&&(A["content-disposition"]=Buffer.from(A["content-disposition"]).toString("latin1")),A}function IC(e){let A=[],t=!1,a=-1;for(let r=0;r<e.length;r+=2){let i=e[r+0].toString(),s=e[r+1].toString("utf8");i.length===14&&(i==="content-length"||i.toLowerCase()==="content-length")?(A.push(i,s),t=!0):i.length===19&&(i==="content-disposition"||i.toLowerCase()==="content-disposition")?a=A.push(i,s)-1:A.push(i,s)}return t&&a!==-1&&(A[a]=Buffer.from(A[a]).toString("latin1")),A}function zl(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function fC(e,A,t){if(!e||typeof e!="object")throw new Se("handler must be an object");if(typeof e.onConnect!="function")throw new Se("invalid onConnect method");if(typeof e.onError!="function")throw new Se("invalid onError method");if(typeof e.onBodySent!="function"&&e.onBodySent!==void 0)throw new Se("invalid onBodySent method");if(t||A==="CONNECT"){if(typeof e.onUpgrade!="function")throw new Se("invalid onUpgrade method")}else{if(typeof e.onHeaders!="function")throw new Se("invalid onHeaders method");if(typeof e.onData!="function")throw new Se("invalid onData method");if(typeof e.onComplete!="function")throw new Se("invalid onComplete method")}}function wC(e){return!!(e&&(Y1.isDisturbed?Y1.isDisturbed(e)||e[ql]:e[ql]||e.readableDidRead||e._readableState&&e._readableState.dataEmitted||Xl(e)))}function yC(e){return!!(e&&(Y1.isErrored?Y1.isErrored(e):/state: 'errored'/.test(Ii.inspect(e))))}function DC(e){return!!(e&&(Y1.isReadable?Y1.isReadable(e):/state: 'readable'/.test(Ii.inspect(e))))}function RC(e){return{localAddress:e.localAddress,localPort:e.localPort,remoteAddress:e.remoteAddress,remotePort:e.remotePort,remoteFamily:e.remoteFamily,timeout:e.timeout,bytesWritten:e.bytesWritten,bytesRead:e.bytesRead}}var Za;function vC(e){if(Za||(Za=require("stream/web").ReadableStream),Za.from)return Za.from(e);let A;return new Za({async start(){A=e[Symbol.asyncIterator]()},async pull(t){let{done:a,value:r}=await A.next();if(a)queueMicrotask(()=>{t.close()});else{let i=Buffer.isBuffer(r)?r:Buffer.from(r);t.enqueue(new Uint8Array(i))}return t.desiredSize>0},async cancel(t){await A.return()}},0)}function NC(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function bC(e){if(e){if(typeof e.throwIfAborted=="function")e.throwIfAborted();else if(e.aborted){let A=new Error("The operation was aborted");throw A.name="AbortError",A}}}var mi;function SC(e,A){return typeof Symbol.dispose=="symbol"&&(mi||(mi=require("events")),typeof mi.addAbortListener=="function"&&"aborted"in e)?mi.addAbortListener(e,A):"addEventListener"in e?(e.addEventListener("abort",A,{once:!0}),()=>e.removeEventListener("abort",A)):(e.addListener("abort",A),()=>e.removeListener("abort",A))}var kC=!!String.prototype.toWellFormed;function FC(e){return kC?`${e}`.toWellFormed():Ii.toUSVString?Ii.toUSVString(e):`${e}`}var Kl=Object.create(null);Kl.enumerable=!0;$l.exports={kEnumerableProperty:Kl,nop:oC,isDisturbed:wC,isErrored:yC,isReadable:DC,toUSVString:FC,isReadableAborted:Xl,isBlobLike:Zl,parseOrigin:pC,parseURL:jl,getServerName:gC,isStream:wo,isIterable:EC,isAsyncIterable:uC,isDestroyed:yo,parseRawHeaders:IC,parseHeaders:mC,parseKeepAliveTimeout:hC,destroy:CC,bodyLength:QC,deepClone:cC,ReadableStreamFrom:vC,isBuffer:zl,validateHandler:fC,getSocketInfo:RC,isFormDataLike:NC,buildURL:dC,throwIfAborted:bC,addAbortListener:SC,nodeMajor:fo,nodeMinor:Ol,nodeHasAutoSelectFamily:fo>18||fo===18&&Ol>=13}});var t4=E((hb,A4)=>{"use strict";var Do=Date.now(),Ut,Lt=[];function UC(){Do=Date.now();let e=Lt.length,A=0;for(;A<e;){let t=Lt[A];t.state===0?t.state=Do+t.delay:t.state>0&&Do>=t.state&&(t.state=-1,t.callback(t.opaque)),t.state===-1?(t.state=-2,A!==e-1?Lt[A]=Lt.pop():Lt.pop(),e-=1):A+=1}Lt.length>0&&e4()}function e4(){Ut&&Ut.refresh?Ut.refresh():(clearTimeout(Ut),Ut=setTimeout(UC,1e3),Ut.unref&&Ut.unref())}var fi=class{constructor(A,t,a){this.callback=A,this.delay=t,this.opaque=a,this.state=-2,this.refresh()}refresh(){this.state===-2&&(Lt.push(this),(!Ut||Lt.length===1)&&e4()),this.state=0}clear(){this.state=-1}};A4.exports={setTimeout(e,A,t){return A<1e3?setTimeout(e,A,t):new fi(e,A,t)},clearTimeout(e){e instanceof fi?e.clear():clearTimeout(e)}}});var wi=E((n4,o4)=>{"use strict";function LC(e){if(e.length===0)return;let A=Object.create(null),t=0;for(;t<e.length;++t){let s=e.charCodeAt(t);if(t1[s]!==1){if(s!==47||t===0)return;break}}if(t===e.length)return;let a=e.slice(0,t).toLowerCase(),r=++t;for(;t<e.length;++t){let s=e.charCodeAt(t);if(t1[s]!==1){if(t===r||MC(e,t,A)===void 0)return;break}}if(t===r)return;let i=e.slice(r,t).toLowerCase();return{type:a,subtype:i,params:A}}function MC(e,A,t){for(;A<e.length;){for(;A<e.length;++A){let n=e.charCodeAt(A);if(n!==32&&n!==9)break}if(A===e.length)break;if(e.charCodeAt(A++)!==59)return;for(;A<e.length;++A){let n=e.charCodeAt(A);if(n!==32&&n!==9)break}if(A===e.length)return;let a,r=A;for(;A<e.length;++A){let n=e.charCodeAt(A);if(t1[n]!==1){if(n!==61)return;break}}if(A===e.length||(a=e.slice(r,A),++A,A===e.length))return;let i="",s;if(e.charCodeAt(A)===34){s=++A;let n=!1;for(;A<e.length;++A){let o=e.charCodeAt(A);if(o===92){n?(s=A,n=!1):(i+=e.slice(s,A),n=!0);continue}if(o===34){if(n){s=A,n=!1;continue}i+=e.slice(s,A);break}if(n&&(s=A-1,n=!1),s4[o]!==1)return}if(A===e.length)return;++A}else{for(s=A;A<e.length;++A){let n=e.charCodeAt(A);if(t1[n]!==1){if(A===s)return;break}}i=e.slice(s,A)}a=a.toLowerCase(),t[a]===void 0&&(t[a]=i)}return t}function TC(e,A){if(e.length===0)return;let t=Object.create(null),a=0;for(;a<e.length;++a){let i=e.charCodeAt(a);if(t1[i]!==1){if(VC(e,a,t,A)===void 0)return;break}}return{type:e.slice(0,a).toLowerCase(),params:t}}function VC(e,A,t,a){for(;A<e.length;){for(;A<e.length;++A){let d=e.charCodeAt(A);if(d!==32&&d!==9)break}if(A===e.length)break;if(e.charCodeAt(A++)!==59)return;for(;A<e.length;++A){let d=e.charCodeAt(A);if(d!==32&&d!==9)break}if(A===e.length)return;let r,i=A;for(;A<e.length;++A){let d=e.charCodeAt(A);if(t1[d]!==1){if(d===61)break;return}}if(A===e.length)return;let s="",n,o;if(r=e.slice(i,A),r.charCodeAt(r.length-1)===42){let d=++A;for(;A<e.length;++A){let p=e.charCodeAt(A);if(JC[p]!==1){if(p!==39)return;break}}if(A===e.length)return;for(o=e.slice(d,A),++A;A<e.length&&e.charCodeAt(A)!==39;++A);if(A===e.length||(++A,A===e.length))return;n=A;let l=0;for(;A<e.length;++A){let p=e.charCodeAt(A);if(GC[p]!==1){if(p===37){let g,c;if(A+2<e.length&&(g=a4[e.charCodeAt(A+1)])!==-1&&(c=a4[e.charCodeAt(A+2)])!==-1){let u=(g<<4)+c;s+=e.slice(n,A),s+=String.fromCharCode(u),A+=2,n=A+1,u>=128?l=2:l===0&&(l=1);continue}return}break}}if(s+=e.slice(n,A),s=i4(s,o,l),s===void 0)return}else{if(++A,A===e.length)return;if(e.charCodeAt(A)===34){n=++A;let d=!1;for(;A<e.length;++A){let l=e.charCodeAt(A);if(l===92){d?(n=A,d=!1):(s+=e.slice(n,A),d=!0);continue}if(l===34){if(d){n=A,d=!1;continue}s+=e.slice(n,A);break}if(d&&(n=A-1,d=!1),s4[l]!==1)return}if(A===e.length)return;++A}else{for(n=A;A<e.length;++A){let d=e.charCodeAt(A);if(t1[d]!==1){if(A===n)return;break}}s=e.slice(n,A)}if(s=a(s,2),s===void 0)return}r=r.toLowerCase(),t[r]===void 0&&(t[r]=s)}return t}function r4(e){let A;for(;;)switch(e){case"utf-8":case"utf8":return ja.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return ja.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return ja.utf16le;case"base64":return ja.base64;default:if(A===void 0){A=!0,e=e.toLowerCase();continue}return ja.other.bind(e)}}var ja={utf8:(e,A)=>{if(e.length===0)return"";if(typeof e=="string"){if(A<2)return e;e=Buffer.from(e,"latin1")}return e.utf8Slice(0,e.length)},latin1:(e,A)=>e.length===0?"":typeof e=="string"?e:e.latin1Slice(0,e.length),utf16le:(e,A)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,"latin1")),e.ucs2Slice(0,e.length)),base64:(e,A)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,"latin1")),e.base64Slice(0,e.length)),other:(e,A)=>{if(e.length===0)return"";typeof e=="string"&&(e=Buffer.from(e,"latin1"));try{return new TextDecoder(n4).decode(e)}catch{}}};function i4(e,A,t){let a=r4(A);if(a)return a(e,t)}function YC(e){if(typeof e!="string")return"";for(let A=e.length-1;A>=0;--A)switch(e.charCodeAt(A)){case 47:case 92:return e=e.slice(A+1),e===".."||e==="."?"":e}return e===".."||e==="."?"":e}var t1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],s4=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],JC=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],GC=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],a4=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];o4.exports={basename:YC,convertToUTF8:i4,getDecoder:r4,parseContentType:LC,parseDisposition:TC}});var g4=E((mb,l4)=>{"use strict";function d4(e,A,t,a,r){for(let i=0;i<r;++i)if(e[A+i]!==t[a+i])return!1;return!0}var Ro=class{constructor(A,t){if(typeof t!="function")throw new Error("Missing match callback");if(typeof A=="string")A=Buffer.from(A);else if(!Buffer.isBuffer(A))throw new Error(`Expected Buffer for needle, got ${typeof A}`);let a=A.length;if(this.maxMatches=1/0,this.matches=0,this._cb=t,this._lookbehindSize=0,this._needle=A,this._bufPos=0,this._lookbehind=Buffer.allocUnsafe(a),this._occ=[a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a],a>1)for(let r=0;r<a-1;++r)this._occ[A[r]]=a-1-r}reset(){this.matches=0,this._lookbehindSize=0,this._bufPos=0}push(A,t){let a;Buffer.isBuffer(A)||(A=Buffer.from(A,"latin1"));let r=A.length;for(this._bufPos=t||0;a!==r&&this.matches<this.maxMatches;)a=xC(this,A);return a}destroy(){let A=this._lookbehindSize;A&&this._cb(!1,this._lookbehind,0,A,!1),this.reset()}};function xC(e,A){let t=A.length,a=e._needle,r=a.length,i=-e._lookbehindSize,s=r-1,n=a[s],o=t-r,d=e._occ,l=e._lookbehind;if(i<0){for(;i<0&&i<=o;){let g=i+s,c=g<0?l[e._lookbehindSize+g]:A[g];if(c===n&&p4(e,A,i,s))return e._lookbehindSize=0,++e.matches,i>-e._lookbehindSize?e._cb(!0,l,0,e._lookbehindSize+i,!1):e._cb(!0,void 0,0,0,!0),e._bufPos=i+r;i+=d[c]}for(;i<0&&!p4(e,A,i,t-i);)++i;if(i<0){let g=e._lookbehindSize+i;return g>0&&e._cb(!1,l,0,g,!1),e._lookbehindSize-=g,l.copy(l,0,g,e._lookbehindSize),l.set(A,e._lookbehindSize),e._lookbehindSize+=t,e._bufPos=t,t}e._cb(!1,l,0,e._lookbehindSize,!1),e._lookbehindSize=0}i+=e._bufPos;let p=a[0];for(;i<=o;){let g=A[i+s];if(g===n&&A[i]===p&&d4(a,0,A,i,s))return++e.matches,i>0?e._cb(!0,A,e._bufPos,i,!0):e._cb(!0,void 0,0,0,!0),e._bufPos=i+r;i+=d[g]}for(;i<t;){if(A[i]!==p||!d4(A,i,a,0,t-i)){++i;continue}A.copy(l,0,i,t),e._lookbehindSize=t-i;break}return i>0&&e._cb(!1,A,e._bufPos,i<t?i:t,!0),e._bufPos=t,t}function p4(e,A,t,a){let r=e._lookbehind,i=e._lookbehindSize,s=e._needle;for(let n=0;n<a;++n,++t)if((t<0?r[i+t]:A[t])!==s[n])return!1;return!0}l4.exports=Ro});var I4=E((Ib,m4)=>{"use strict";var{Readable:_C,Writable:qC}=require("stream"),HC=g4(),{basename:OC,convertToUTF8:c4,getDecoder:PC,parseContentType:WC,parseDisposition:ZC}=wi(),jC=Buffer.from(`\r -`),XC=Buffer.from("\r"),zC=Buffer.from("-");function u4(){}var KC=2e3,J1=16*1024,yi=0,E4=1,Q4=2,vo=class{constructor(A){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=yi,this.name="",this.value="",this.crlf=0,this.cb=A}reset(){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=yi,this.name="",this.value="",this.crlf=0}push(A,t,a){let r=t;for(;t<a;)switch(this.state){case yi:{let i=!1;for(;t<a;++t){if(this.byteCount===J1)return-1;++this.byteCount;let s=A[t];if(AB[s]!==1){if(s!==58||(this.name+=A.latin1Slice(r,t),this.name.length===0))return-1;++t,i=!0,this.state=E4;break}}if(!i){this.name+=A.latin1Slice(r,t);break}}case E4:{let i=!1;for(;t<a;++t){if(this.byteCount===J1)return-1;++this.byteCount;let s=A[t];if(s!==32&&s!==9){r=t,i=!0,this.state=Q4;break}}if(!i)break}case Q4:switch(this.crlf){case 0:for(;t<a;++t){if(this.byteCount===J1)return-1;++this.byteCount;let i=A[t];if(tB[i]!==1){if(i!==13)return-1;++this.crlf;break}}this.value+=A.latin1Slice(r,t++);break;case 1:if(this.byteCount===J1||(++this.byteCount,A[t++]!==10))return-1;++this.crlf;break;case 2:{if(this.byteCount===J1)return-1;++this.byteCount;let i=A[t];i===32||i===9?(r=t,this.crlf=0):(++this.pairCount<KC&&(this.name=this.name.toLowerCase(),this.header[this.name]===void 0?this.header[this.name]=[this.value]:this.header[this.name].push(this.value)),i===13?(++this.crlf,++t):(r=t,this.crlf=0,this.state=yi,this.name="",this.value=""));break}case 3:{if(this.byteCount===J1||(++this.byteCount,A[t++]!==10))return-1;let i=this.header;return this.reset(),this.cb(i),t}}break}return t}},No=class extends _C{constructor(A,t){super(A),this.truncated=!1,this._readcb=null,this.once("end",()=>{if(this._read(),--t._fileEndsLeft===0&&t._finalcb){let a=t._finalcb;t._finalcb=null,process.nextTick(a)}})}_read(A){let t=this._readcb;t&&(this._readcb=null,t())}},C4={push:(e,A)=>{},destroy:()=>{}};function $C(e,A){let t=e._writecb;e._writecb=null,A?e.destroy(A):t&&t()}function eB(e,A){return e}var bo=class extends qC{constructor(A){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.highWaterMark=="number"?A.highWaterMark:void 0};if(super(t),!A.conType.params||typeof A.conType.params.boundary!="string")throw new Error("Multipart: Boundary not found");let a=A.conType.params.boundary,r=typeof A.defParamCharset=="string"&&A.defParamCharset?PC(A.defParamCharset):eB,i=A.defCharset||"utf8",s=A.preservePath,n={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.fileHwm=="number"?A.fileHwm:void 0},o=A.limits,d=o&&typeof o.fieldSize=="number"?o.fieldSize:1*1024*1024,l=o&&typeof o.fileSize=="number"?o.fileSize:1/0,p=o&&typeof o.files=="number"?o.files:1/0,g=o&&typeof o.fields=="number"?o.fields:1/0,c=o&&typeof o.parts=="number"?o.parts:1/0,u=-1,Q=0,B=0,C=!1;this._fileEndsLeft=0,this._fileStream=void 0,this._complete=!1;let h=0,f,m=0,w,R,S,x,me=!1,Qe=!1,Dt=!1;this._hparser=null;let Re=new vo(W=>{this._hparser=null,C=!1,S="text/plain",w=i,R="7bit",x=void 0,me=!1;let Ae;if(!W["content-disposition"]){C=!0;return}let L=ZC(W["content-disposition"][0],r);if(!L||L.type!=="form-data"){C=!0;return}if(L.params&&(L.params.name&&(x=L.params.name),L.params["filename*"]?Ae=L.params["filename*"]:L.params.filename&&(Ae=L.params.filename),Ae!==void 0&&!s&&(Ae=OC(Ae))),W["content-type"]){let M=WC(W["content-type"][0]);M&&(S=`${M.type}/${M.subtype}`,M.params&&typeof M.params.charset=="string"&&(w=M.params.charset.toLowerCase()))}if(W["content-transfer-encoding"]&&(R=W["content-transfer-encoding"][0].toLowerCase()),S==="application/octet-stream"||Ae!==void 0){if(B===p){Qe||(Qe=!0,this.emit("filesLimit")),C=!0;return}if(++B,this.listenerCount("file")===0){C=!0;return}h=0,this._fileStream=new No(n,this),++this._fileEndsLeft,this.emit("file",x,this._fileStream,{filename:Ae,encoding:R,mimeType:S})}else{if(Q===g){Dt||(Dt=!0,this.emit("fieldsLimit")),C=!0;return}if(++Q,this.listenerCount("field")===0){C=!0;return}f=[],m=0}}),de=0,EA=(W,Ae,L,M,GA)=>{e:for(;Ae;){if(this._hparser!==null){let O=this._hparser.push(Ae,L,M);if(O===-1){this._hparser=null,Re.reset(),this.emit("error",new Error("Malformed part header"));break}L=O}if(L===M)break;if(de!==0){if(de===1){switch(Ae[L]){case 45:de=2,++L;break;case 13:de=3,++L;break;default:de=0}if(L===M)return}if(de===2){if(de=0,Ae[L]===45){this._complete=!0,this._bparser=C4;return}let O=this._writecb;this._writecb=u4,EA(!1,zC,0,1,!1),this._writecb=O}else if(de===3)if(de=0,Ae[L]===10){if(++L,u>=c||(this._hparser=Re,L===M))break;continue e}else{let O=this._writecb;this._writecb=u4,EA(!1,XC,0,1,!1),this._writecb=O}}if(!C){if(this._fileStream){let O,eA=Math.min(M-L,l-h);GA?O=Ae.slice(L,L+eA):(O=Buffer.allocUnsafe(eA),Ae.copy(O,0,L,L+eA)),h+=O.length,h===l?(O.length>0&&this._fileStream.push(O),this._fileStream.emit("limit"),this._fileStream.truncated=!0,C=!0):this._fileStream.push(O)||(this._writecb&&(this._fileStream._readcb=this._writecb),this._writecb=null)}else if(f!==void 0){let O,eA=Math.min(M-L,d-m);GA?O=Ae.slice(L,L+eA):(O=Buffer.allocUnsafe(eA),Ae.copy(O,0,L,L+eA)),m+=eA,f.push(O),m===d&&(C=!0,me=!0)}}break}if(W){if(de=1,this._fileStream)this._fileStream.push(null),this._fileStream=null;else if(f!==void 0){let O;switch(f.length){case 0:O="";break;case 1:O=c4(f[0],w,0);break;default:O=c4(Buffer.concat(f,m),w,0)}f=void 0,m=0,this.emit("field",x,O,{nameTruncated:!1,valueTruncated:me,encoding:R,mimeType:S})}++u===c&&this.emit("partsLimit")}};this._bparser=new HC(`\r ---${a}`,EA),this._writecb=null,this._finalcb=null,this.write(jC)}static detect(A){return A.type==="multipart"&&A.subtype==="form-data"}_write(A,t,a){this._writecb=a,this._bparser.push(A,0),this._writecb&&$C(this)}_destroy(A,t){this._hparser=null,this._bparser=C4,A||(A=h4(this));let a=this._fileStream;a&&(this._fileStream=null,a.destroy(A)),t(A)}_final(A){if(this._bparser.destroy(),!this._complete)return A(new Error("Unexpected end of form"));this._fileEndsLeft?this._finalcb=B4.bind(null,this,A):B4(this,A)}};function B4(e,A,t){if(t)return A(t);t=h4(e),A(t)}function h4(e){if(e._hparser)return new Error("Malformed part header");let A=e._fileStream;if(A&&(e._fileStream=null,A.destroy(new Error("Unexpected end of file"))),!e._complete)return new Error("Unexpected end of form")}var AB=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],tB=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];m4.exports=bo});var w4=E((fb,f4)=>{"use strict";var{Writable:aB}=require("stream"),{getDecoder:rB}=wi(),Lo=class extends aB{constructor(A){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.highWaterMark=="number"?A.highWaterMark:void 0};super(t);let a=A.defCharset||"utf8";A.conType.params&&typeof A.conType.params.charset=="string"&&(a=A.conType.params.charset),this.charset=a;let r=A.limits;this.fieldSizeLimit=r&&typeof r.fieldSize=="number"?r.fieldSize:1*1024*1024,this.fieldsLimit=r&&typeof r.fields=="number"?r.fields:1/0,this.fieldNameSizeLimit=r&&typeof r.fieldNameSize=="number"?r.fieldNameSize:100,this._inKey=!0,this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,this._fields=0,this._key="",this._val="",this._byte=-2,this._lastPos=0,this._encode=0,this._decoder=rB(a)}static detect(A){return A.type==="application"&&A.subtype==="x-www-form-urlencoded"}_write(A,t,a){if(this._fields>=this.fieldsLimit)return a();let r=0,i=A.length;if(this._lastPos=0,this._byte!==-2){if(r=So(this,A,r,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();this._inKey?++this._bytesKey:++this._bytesVal}e:for(;r<i;)if(this._inKey){for(r=ko(this,A,r,i);r<i;){switch(A[r]){case 61:this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._key=this._decoder(this._key,this._encode),this._encode=0,this._inKey=!1;continue e;case 38:if(this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._key=this._decoder(this._key,this._encode),this._encode=0,this._bytesKey>0&&this.emit("field",this._key,"",{nameTruncated:this._keyTrunc,valueTruncated:!1,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),a();continue;case 43:this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._key+=" ",this._lastPos=r+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=r+1,this._byte=-1,r=So(this,A,r+1,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();++this._bytesKey,r=ko(this,A,r,i);continue}++r,++this._bytesKey,r=ko(this,A,r,i)}this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r))}else{for(r=Fo(this,A,r,i);r<i;){switch(A[r]){case 38:if(this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._inKey=!0,this._val=this._decoder(this._val,this._encode),this._encode=0,(this._bytesKey>0||this._bytesVal>0)&&this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),a();continue e;case 43:this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._val+=" ",this._lastPos=r+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._lastPos=r+1,this._byte=-1,r=So(this,A,r+1,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();++this._bytesVal,r=Fo(this,A,r,i);continue}++r,++this._bytesVal,r=Fo(this,A,r,i)}this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r))}a()}_final(A){if(this._byte!==-2)return A(new Error("Malformed urlencoded form"));(!this._inKey||this._bytesKey>0||this._bytesVal>0)&&(this._inKey?this._key=this._decoder(this._key,this._encode):this._val=this._decoder(this._val,this._encode),this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"})),A()}};function So(e,A,t,a){if(t>=a)return a;if(e._byte===-1){let r=Uo[A[t++]];if(r===-1)return-1;if(r>=8&&(e._encode=2),t<a){let i=Uo[A[t++]];if(i===-1)return-1;e._inKey?e._key+=String.fromCharCode((r<<4)+i):e._val+=String.fromCharCode((r<<4)+i),e._byte=-2,e._lastPos=t}else e._byte=r}else{let r=Uo[A[t++]];if(r===-1)return-1;e._inKey?e._key+=String.fromCharCode((e._byte<<4)+r):e._val+=String.fromCharCode((e._byte<<4)+r),e._byte=-2,e._lastPos=t}return t}function ko(e,A,t,a){if(e._bytesKey>e.fieldNameSizeLimit){for(e._keyTrunc||e._lastPos<t&&(e._key+=A.latin1Slice(e._lastPos,t-1)),e._keyTrunc=!0;t<a;++t){let r=A[t];if(r===61||r===38)break;++e._bytesKey}e._lastPos=t}return t}function Fo(e,A,t,a){if(e._bytesVal>e.fieldSizeLimit){for(e._valTrunc||e._lastPos<t&&(e._val+=A.latin1Slice(e._lastPos,t-1)),e._valTrunc=!0;t<a&&A[t]!==38;++t)++e._bytesVal;e._lastPos=t}return t}var Uo=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];f4.exports=Lo});var D4=E((wb,y4)=>{"use strict";var{parseContentType:iB}=wi();function sB(e){let A=e.headers,t=iB(A["content-type"]);if(!t)throw new Error("Malformed content type");for(let a of nB){if(!a.detect(t))continue;let i={limits:e.limits,headers:A,conType:t,highWaterMark:void 0,fileHwm:void 0,defCharset:void 0,defParamCharset:void 0,preservePath:!1};return e.highWaterMark&&(i.highWaterMark=e.highWaterMark),e.fileHwm&&(i.fileHwm=e.fileHwm),i.defCharset=e.defCharset,i.defParamCharset=e.defParamCharset,i.preservePath=e.preservePath,new a(i)}throw new Error(`Unsupported content type: ${A["content-type"]}`)}var nB=[I4(),w4()].filter(function(e){return typeof e.detect=="function"});y4.exports=e=>{if((typeof e!="object"||e===null)&&(e={}),typeof e.headers!="object"||e.headers===null||typeof e.headers["content-type"]!="string")throw new Error("Missing Content-Type");return sB(e)}});var Mt=E((yb,R4)=>{"use strict";var{MessageChannel:oB,receiveMessageOnPort:dB}=require("worker_threads"),pB=["GET","HEAD","POST"],lB=[101,204,205,304],gB=[301,302,303,307,308],cB=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"],uB=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],EB=["follow","manual","error"],QB=["GET","HEAD","OPTIONS","TRACE"],CB=["navigate","same-origin","no-cors","cors"],BB=["omit","same-origin","include"],hB=["default","no-store","reload","no-cache","force-cache","only-if-cached"],mB=["content-encoding","content-language","content-location","content-type","content-length"],IB=["half"],fB=["CONNECT","TRACE","TRACK"],wB=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],yB=globalThis.DOMException??(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})(),G1,DB=globalThis.structuredClone??function(A,t=void 0){if(arguments.length===0)throw new TypeError("missing argument");return G1||(G1=new oB),G1.port1.unref(),G1.port2.unref(),G1.port1.postMessage(A,t?.transfer),dB(G1.port2).message};R4.exports={DOMException:yB,structuredClone:DB,subresource:wB,forbiddenMethods:fB,requestBodyHeader:mB,referrerPolicy:uB,requestRedirect:EB,requestMode:CB,requestCredentials:BB,requestCache:hB,redirectStatus:gB,corsSafeListedMethods:pB,nullBodyStatus:lB,safeMethods:QB,badPorts:cB,requestDuplex:IB}});var Xa=E((Db,v4)=>{"use strict";var Mo=Symbol.for("undici.globalOrigin.1");function RB(){return globalThis[Mo]}function vB(e){if(e!==void 0&&typeof e!="string"&&!(e instanceof URL))throw new Error("Invalid base url");if(e===void 0){Object.defineProperty(globalThis,Mo,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let A=new URL(e);if(A.protocol!=="http:"&&A.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${A.protocol}`);Object.defineProperty(globalThis,Mo,{value:A,writable:!0,enumerable:!1,configurable:!1})}v4.exports={getGlobalOrigin:RB,setGlobalOrigin:vB}});var mA=E((Rb,U4)=>{"use strict";var{redirectStatus:NB,badPorts:bB,referrerPolicy:SB}=Mt(),{getGlobalOrigin:kB}=Xa(),{performance:FB}=require("perf_hooks"),{isBlobLike:UB,toUSVString:LB,ReadableStreamFrom:MB}=_(),x1=require("assert"),{isUint8Array:TB}=require("util/types"),Di;try{Di=require("crypto")}catch{}function N4(e){let A=e.urlList,t=A.length;return t===0?null:A[t-1].toString()}function VB(e,A){if(!NB.includes(e.status))return null;let t=e.headersList.get("location");return t!==null&&S4(t)&&(t=new URL(t,N4(e))),t&&!t.hash&&(t.hash=A),t}function Ka(e){return e.urlList[e.urlList.length-1]}function YB(e){let A=Ka(e);return F4(A)&&bB.includes(A.port)?"blocked":"allowed"}function JB(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function GB(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(!(t===9||t>=32&&t<=126||t>=128&&t<=255))return!1}return!0}function xB(e){return!(e>=127||e<=32||e==="("||e===")"||e==="<"||e===">"||e==="@"||e===","||e===";"||e===":"||e==="\\"||e==='"'||e==="/"||e==="["||e==="]"||e==="?"||e==="="||e==="{"||e==="}")}function b4(e){if(!e||typeof e!="string")return!1;for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t>127||!xB(t))return!1}return!0}function _B(e){return e.length===0?!1:b4(e)}function S4(e){return!(e.startsWith(" ")||e.startsWith(" ")||e.endsWith(" ")||e.endsWith(" ")||e.includes("\0")||e.includes("\r")||e.includes(` -`))}function qB(e,A){let{headersList:t}=A,a=(t.get("referrer-policy")??"").split(","),r="";if(a.length>0)for(let i=a.length;i!==0;i--){let s=a[i-1].trim();if(SB.includes(s)){r=s;break}}r!==""&&(e.referrerPolicy=r)}function HB(){return"allowed"}function OB(){return"success"}function PB(){return"success"}function WB(e){let A=null;A=e.mode,e.headersList.set("sec-fetch-mode",A)}function ZB(e){let A=e.origin;if(e.responseTainting==="cors"||e.mode==="websocket")A&&e.headersList.append("origin",A);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":A=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&Yo(e.origin)&&!Yo(Ka(e))&&(A=null);break;case"same-origin":Ri(e,Ka(e))||(A=null);break;default:}A&&e.headersList.append("origin",A)}}function jB(e){return FB.now()}function XB(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function zB(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function KB(e){return{referrerPolicy:e.referrerPolicy}}function $B(e){let A=e.referrerPolicy;x1(A);let t=null;if(e.referrer==="client"){let n=kB();if(!n||n.origin==="null")return"no-referrer";t=new URL(n)}else e.referrer instanceof URL&&(t=e.referrer);let a=To(t),r=To(t,!0);a.toString().length>4096&&(a=r);let i=Ri(e,a),s=za(a)&&!za(e.url);switch(A){case"origin":return r??To(t,!0);case"unsafe-url":return a;case"same-origin":return i?r:"no-referrer";case"origin-when-cross-origin":return i?a:r;case"strict-origin-when-cross-origin":{let n=Ka(e);return Ri(a,n)?a:za(a)&&!za(n)?"no-referrer":r}case"strict-origin":case"no-referrer-when-downgrade":default:return s?"no-referrer":r}}function To(e,A){return x1(e instanceof URL),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",A&&(e.pathname="",e.search=""),e)}function za(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return A(e.origin);function A(t){if(t==null||t==="null")return!1;let a=new URL(t);return!!(a.protocol==="https:"||a.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(a.hostname)||a.hostname==="localhost"||a.hostname.includes("localhost.")||a.hostname.endsWith(".localhost"))}}function eh(e,A){if(Di===void 0)return!0;let t=th(A);if(t==="no metadata"||t.length===0)return!0;let a=t.sort((s,n)=>n.algo.localeCompare(s.algo)),r=a[0].algo,i=a.filter(s=>s.algo===r);for(let s of i){let n=s.algo,o=s.hash;if(Di.createHash(n).update(e).digest("base64")===o)return!0}return!1}var Ah=/((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\x21-\x7e]?)?/i;function th(e){let A=[],t=!0,a=Di.getHashes();for(let r of e.split(" ")){t=!1;let i=Ah.exec(r);if(i===null||i.groups===void 0)continue;let s=i.groups.algo;a.includes(s.toLowerCase())&&A.push(i.groups)}return t===!0?"no metadata":A}function ah(e){}function Ri(e,A){return e.origin===A.origin&&e.origin==="null"||e.protocol===A.protocol&&e.hostname===A.hostname&&e.port===A.port}function rh(){let e,A;return{promise:new Promise((a,r)=>{e=a,A=r}),resolve:e,reject:A}}function ih(e){return e.controller.state==="aborted"}function sh(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}function nh(e){return/^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(e)?e.toUpperCase():e}function oh(e){let A=JSON.stringify(e);if(A===void 0)throw new TypeError("Value is not JSON serializable");return x1(typeof A=="string"),A}var dh=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function ph(e,A,t){let a={index:0,kind:t,target:e},r={next(){if(Object.getPrototypeOf(this)!==r)throw new TypeError(`'next' called on an object that does not implement interface ${A} Iterator.`);let{index:i,kind:s,target:n}=a,o=n(),d=o.length;if(i>=d)return{value:void 0,done:!0};let l=o[i];return a.index=i+1,lh(l,s)},[Symbol.toStringTag]:`${A} Iterator`};return Object.setPrototypeOf(r,dh),Object.setPrototypeOf({},r)}function lh(e,A){let t;switch(A){case"key":{t=e[0];break}case"value":{t=e[1];break}case"key+value":{t=e;break}}return{value:t,done:!1}}function gh(e,A,t){let a=s=>queueMicrotask(()=>A(s)),r=s=>queueMicrotask(()=>t(s)),i;try{i=e.stream.getReader()}catch(s){r(s);return}k4(i,a,r)}var Vo=globalThis.ReadableStream;function ch(e){return Vo||(Vo=require("stream/web").ReadableStream),e instanceof Vo||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}var uh=65535;function Eh(e){return e.length<uh?String.fromCharCode(...e):e.reduce((A,t)=>A+String.fromCharCode(t),"")}function Qh(e){try{e.close()}catch(A){if(!A.message.includes("Controller is already closed"))throw A}}function Ch(e){for(let A=0;A<e.length;A++)x1(e.charCodeAt(A)<=255);return e}async function k4(e,A,t){let a=[],r=0;for(;;){let i,s;try{({done:i,value:s}=await e.read())}catch(n){t(n);return}if(i){A(Buffer.concat(a,r));return}if(!TB(s)){t(new TypeError("Received non-Uint8Array chunk"));return}a.push(s),r+=s.length}}function Bh(e){x1("protocol"in e);let A=e.protocol;return A==="about:"||A==="blob:"||A==="data:"}function Yo(e){return typeof e=="string"?e.startsWith("https:"):e.protocol==="https:"}function F4(e){x1("protocol"in e);let A=e.protocol;return A==="http:"||A==="https:"}var hh=Object.hasOwn||((e,A)=>Object.prototype.hasOwnProperty.call(e,A));U4.exports={isAborted:ih,isCancelled:sh,createDeferredPromise:rh,ReadableStreamFrom:MB,toUSVString:LB,tryUpgradeRequestToAPotentiallyTrustworthyURL:ah,coarsenedSharedCurrentTime:jB,determineRequestsReferrer:$B,makePolicyContainer:zB,clonePolicyContainer:KB,appendFetchMetadata:WB,appendRequestOriginHeader:ZB,TAOCheck:PB,corsCheck:OB,crossOriginResourcePolicyCheck:HB,createOpaqueTimingInfo:XB,setRequestReferrerPolicyOnRedirect:qB,isValidHTTPToken:b4,requestBadPort:YB,requestCurrentURL:Ka,responseURL:N4,responseLocationURL:VB,isBlobLike:UB,isURLPotentiallyTrustworthy:za,isValidReasonPhrase:GB,sameOrigin:Ri,normalizeMethod:nh,serializeJavascriptValueToJSONString:oh,makeIterator:ph,isValidHeaderName:_B,isValidHeaderValue:S4,hasOwn:hh,isErrorLike:JB,fullyReadBody:gh,bytesMatch:eh,isReadableStreamLike:ch,readableStreamClose:Qh,isomorphicEncode:Ch,isomorphicDecode:Eh,urlIsLocal:Bh,urlHasHttpsScheme:Yo,urlIsHttpHttpsScheme:F4,readAllBytes:k4}});var gt=E((vb,L4)=>{"use strict";L4.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}});var Ye=E((Nb,T4)=>{"use strict";var{types:ZA}=require("util"),{hasOwn:M4,toUSVString:mh}=mA(),y={};y.converters={};y.util={};y.errors={};y.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};y.errors.conversionFailed=function(e){let A=e.types.length===1?"":" one of",t=`${e.argument} could not be converted to${A}: ${e.types.join(", ")}.`;return y.errors.exception({header:e.prefix,message:t})};y.errors.invalidArgument=function(e){return y.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};y.brandCheck=function(e,A,t=void 0){if(t?.strict!==!1&&!(e instanceof A))throw new TypeError("Illegal invocation");return e?.[Symbol.toStringTag]===A.prototype[Symbol.toStringTag]};y.argumentLengthCheck=function({length:e},A,t){if(e<A)throw y.errors.exception({message:`${A} argument${A!==1?"s":""} required, but${e?" only":""} ${e} found.`,...t})};y.illegalConstructor=function(){throw y.errors.exception({header:"TypeError",message:"Illegal constructor"})};y.util.Type=function(e){switch(typeof e){case"undefined":return"Undefined";case"boolean":return"Boolean";case"string":return"String";case"symbol":return"Symbol";case"number":return"Number";case"bigint":return"BigInt";case"function":case"object":return e===null?"Null":"Object"}};y.util.ConvertToInt=function(e,A,t,a={}){let r,i;A===64?(r=Math.pow(2,53)-1,t==="unsigned"?i=0:i=Math.pow(-2,53)+1):t==="unsigned"?(i=0,r=Math.pow(2,A)-1):(i=Math.pow(-2,A)-1,r=Math.pow(2,A-1)-1);let s=Number(e);if(s===0&&(s=0),a.enforceRange===!0){if(Number.isNaN(s)||s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY)throw y.errors.exception({header:"Integer conversion",message:`Could not convert ${e} to an integer.`});if(s=y.util.IntegerPart(s),s<i||s>r)throw y.errors.exception({header:"Integer conversion",message:`Value must be between ${i}-${r}, got ${s}.`});return s}return!Number.isNaN(s)&&a.clamp===!0?(s=Math.min(Math.max(s,i),r),Math.floor(s)%2===0?s=Math.floor(s):s=Math.ceil(s),s):Number.isNaN(s)||s===0&&Object.is(0,s)||s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY?0:(s=y.util.IntegerPart(s),s=s%Math.pow(2,A),t==="signed"&&s>=Math.pow(2,A)-1?s-Math.pow(2,A):s)};y.util.IntegerPart=function(e){let A=Math.floor(Math.abs(e));return e<0?-1*A:A};y.sequenceConverter=function(e){return A=>{if(y.util.Type(A)!=="Object")throw y.errors.exception({header:"Sequence",message:`Value of type ${y.util.Type(A)} is not an Object.`});let t=A?.[Symbol.iterator]?.(),a=[];if(t===void 0||typeof t.next!="function")throw y.errors.exception({header:"Sequence",message:"Object is not an iterator."});for(;;){let{done:r,value:i}=t.next();if(r)break;a.push(e(i))}return a}};y.recordConverter=function(e,A){return t=>{if(y.util.Type(t)!=="Object")throw y.errors.exception({header:"Record",message:`Value of type ${y.util.Type(t)} is not an Object.`});let a={};if(!ZA.isProxy(t)){let i=Object.keys(t);for(let s of i){let n=e(s),o=A(t[s]);a[n]=o}return a}let r=Reflect.ownKeys(t);for(let i of r)if(Reflect.getOwnPropertyDescriptor(t,i)?.enumerable){let n=e(i),o=A(t[i]);a[n]=o}return a}};y.interfaceConverter=function(e){return(A,t={})=>{if(t.strict!==!1&&!(A instanceof e))throw y.errors.exception({header:e.name,message:`Expected ${A} to be an instance of ${e.name}.`});return A}};y.dictionaryConverter=function(e){return A=>{let t=y.util.Type(A),a={};if(t==="Null"||t==="Undefined")return a;if(t!=="Object")throw y.errors.exception({header:"Dictionary",message:`Expected ${A} to be one of: Null, Undefined, Object.`});for(let r of e){let{key:i,defaultValue:s,required:n,converter:o}=r;if(n===!0&&!M4(A,i))throw y.errors.exception({header:"Dictionary",message:`Missing required key "${i}".`});let d=A[i],l=M4(r,"defaultValue");if(l&&d!==null&&(d=d??s),n||l||d!==void 0){if(d=o(d),r.allowedValues&&!r.allowedValues.includes(d))throw y.errors.exception({header:"Dictionary",message:`${d} is not an accepted type. Expected one of ${r.allowedValues.join(", ")}.`});a[i]=d}}return a}};y.nullableConverter=function(e){return A=>A===null?A:e(A)};y.converters.DOMString=function(e,A={}){if(e===null&&A.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw new TypeError("Could not convert argument of type symbol to string.");return String(e)};y.converters.ByteString=function(e){let A=y.converters.DOMString(e);for(let t=0;t<A.length;t++){let a=A.charCodeAt(t);if(a>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${t} has a value of ${a} which is greater than 255.`)}return A};y.converters.USVString=mh;y.converters.boolean=function(e){return!!e};y.converters.any=function(e){return e};y.converters["long long"]=function(e){return y.util.ConvertToInt(e,64,"signed")};y.converters["unsigned long long"]=function(e){return y.util.ConvertToInt(e,64,"unsigned")};y.converters["unsigned long"]=function(e){return y.util.ConvertToInt(e,32,"unsigned")};y.converters["unsigned short"]=function(e,A){return y.util.ConvertToInt(e,16,"unsigned",A)};y.converters.ArrayBuffer=function(e,A={}){if(y.util.Type(e)!=="Object"||!ZA.isAnyArrayBuffer(e))throw y.errors.conversionFailed({prefix:`${e}`,argument:`${e}`,types:["ArrayBuffer"]});if(A.allowShared===!1&&ZA.isSharedArrayBuffer(e))throw y.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};y.converters.TypedArray=function(e,A,t={}){if(y.util.Type(e)!=="Object"||!ZA.isTypedArray(e)||e.constructor.name!==A.name)throw y.errors.conversionFailed({prefix:`${A.name}`,argument:`${e}`,types:[A.name]});if(t.allowShared===!1&&ZA.isSharedArrayBuffer(e.buffer))throw y.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};y.converters.DataView=function(e,A={}){if(y.util.Type(e)!=="Object"||!ZA.isDataView(e))throw y.errors.exception({header:"DataView",message:"Object is not a DataView."});if(A.allowShared===!1&&ZA.isSharedArrayBuffer(e.buffer))throw y.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};y.converters.BufferSource=function(e,A={}){if(ZA.isAnyArrayBuffer(e))return y.converters.ArrayBuffer(e,A);if(ZA.isTypedArray(e))return y.converters.TypedArray(e,e.constructor);if(ZA.isDataView(e))return y.converters.DataView(e,A);throw new TypeError(`Could not convert ${e} to a BufferSource.`)};y.converters["sequence<ByteString>"]=y.sequenceConverter(y.converters.ByteString);y.converters["sequence<sequence<ByteString>>"]=y.sequenceConverter(y.converters["sequence<ByteString>"]);y.converters["record<ByteString, ByteString>"]=y.recordConverter(y.converters.ByteString,y.converters.ByteString);T4.exports={webidl:y}});var LA=E((bb,_4)=>{var Ni=require("assert"),{atob:Ih}=require("buffer"),{isomorphicDecode:fh}=mA(),wh=new TextEncoder,vi=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/,yh=/(\u000A|\u000D|\u0009|\u0020)/,Dh=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function Rh(e){Ni(e.protocol==="data:");let A=J4(e,!0);A=A.slice(5);let t={position:0},a=_1(",",A,t),r=a.length;if(a=Sh(a,!0,!0),t.position>=A.length)return"failure";t.position++;let i=A.slice(r+1),s=G4(i);if(/;(\u0020){0,}base64$/i.test(a)){let o=fh(s);if(s=Nh(o),s==="failure")return"failure";a=a.slice(0,-6),a=a.replace(/(\u0020)+$/,""),a=a.slice(0,-1)}a.startsWith(";")&&(a="text/plain"+a);let n=Go(a);return n==="failure"&&(n=Go("text/plain;charset=US-ASCII")),{mimeType:n,body:s}}function J4(e,A=!1){let t=e.href;if(!A)return t;let a=t.lastIndexOf("#");return a===-1?t:t.slice(0,a)}function bi(e,A,t){let a="";for(;t.position<A.length&&e(A[t.position]);)a+=A[t.position],t.position++;return a}function _1(e,A,t){let a=A.indexOf(e,t.position),r=t.position;return a===-1?(t.position=A.length,A.slice(r)):(t.position=a,A.slice(r,t.position))}function G4(e){let A=wh.encode(e);return vh(A)}function vh(e){let A=[];for(let t=0;t<e.length;t++){let a=e[t];if(a!==37)A.push(a);else if(a===37&&!/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(e[t+1],e[t+2])))A.push(37);else{let r=String.fromCharCode(e[t+1],e[t+2]),i=Number.parseInt(r,16);A.push(i),t+=2}}return Uint8Array.from(A)}function Go(e){e=Jo(e,!0,!0);let A={position:0},t=_1("/",e,A);if(t.length===0||!vi.test(t)||A.position>e.length)return"failure";A.position++;let a=_1(";",e,A);if(a=Jo(a,!1,!0),a.length===0||!vi.test(a))return"failure";let r=t.toLowerCase(),i=a.toLowerCase(),s={type:r,subtype:i,parameters:new Map,essence:`${r}/${i}`};for(;A.position<e.length;){A.position++,bi(d=>yh.test(d),e,A);let n=bi(d=>d!==";"&&d!=="=",e,A);if(n=n.toLowerCase(),A.position<e.length){if(e[A.position]===";")continue;A.position++}if(A.position>e.length)break;let o=null;if(e[A.position]==='"')o=x4(e,A,!0),_1(";",e,A);else if(o=_1(";",e,A),o=Jo(o,!1,!0),o.length===0)continue;n.length!==0&&vi.test(n)&&(o.length===0||Dh.test(o))&&!s.parameters.has(n)&&s.parameters.set(n,o)}return s}function Nh(e){if(e=e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,""),e.length%4===0&&(e=e.replace(/=?=$/,"")),e.length%4===1||/[^+/0-9A-Za-z]/.test(e))return"failure";let A=Ih(e),t=new Uint8Array(A.length);for(let a=0;a<A.length;a++)t[a]=A.charCodeAt(a);return t}function x4(e,A,t){let a=A.position,r="";for(Ni(e[A.position]==='"'),A.position++;r+=bi(s=>s!=='"'&&s!=="\\",e,A),!(A.position>=e.length);){let i=e[A.position];if(A.position++,i==="\\"){if(A.position>=e.length){r+="\\";break}r+=e[A.position],A.position++}else{Ni(i==='"');break}}return t?r:e.slice(a,A.position)}function bh(e){Ni(e!=="failure");let{parameters:A,essence:t}=e,a=t;for(let[r,i]of A.entries())a+=";",a+=r,a+="=",vi.test(i)||(i=i.replace(/(\\|")/g,"\\$1"),i='"'+i,i+='"'),a+=i;return a}function V4(e){return e==="\r"||e===` -`||e===" "||e===" "}function Jo(e,A=!0,t=!0){let a=0,r=e.length-1;if(A)for(;a<e.length&&V4(e[a]);a++);if(t)for(;r>0&&V4(e[r]);r--);return e.slice(a,r+1)}function Y4(e){return e==="\r"||e===` -`||e===" "||e==="\f"||e===" "}function Sh(e,A=!0,t=!0){let a=0,r=e.length-1;if(A)for(;a<e.length&&Y4(e[a]);a++);if(t)for(;r>0&&Y4(e[r]);r--);return e.slice(a,r+1)}_4.exports={dataURLProcessor:Rh,URLSerializer:J4,collectASequenceOfCodePoints:bi,collectASequenceOfCodePointsFast:_1,stringPercentDecode:G4,parseMIMEType:Go,collectAnHTTPQuotedString:x4,serializeAMimeType:bh}});var Si=E((Sb,W4)=>{"use strict";var{Blob:O4,File:q4}=require("buffer"),{types:xo}=require("util"),{kState:tA}=gt(),{isBlobLike:P4}=mA(),{webidl:H}=Ye(),{parseMIMEType:kh,serializeAMimeType:Fh}=LA(),{kEnumerableProperty:H4}=_(),$a=class e extends O4{constructor(A,t,a={}){H.argumentLengthCheck(arguments,2,{header:"File constructor"}),A=H.converters["sequence<BlobPart>"](A),t=H.converters.USVString(t),a=H.converters.FilePropertyBag(a);let r=t,i=a.type,s;e:{if(i){if(i=kh(i),i==="failure"){i="";break e}i=Fh(i).toLowerCase()}s=a.lastModified}super(Uh(A,a),{type:i}),this[tA]={name:r,lastModified:s,type:i}}get name(){return H.brandCheck(this,e),this[tA].name}get lastModified(){return H.brandCheck(this,e),this[tA].lastModified}get type(){return H.brandCheck(this,e),this[tA].type}},_o=class e{constructor(A,t,a={}){let r=t,i=a.type,s=a.lastModified??Date.now();this[tA]={blobLike:A,name:r,type:i,lastModified:s}}stream(...A){return H.brandCheck(this,e),this[tA].blobLike.stream(...A)}arrayBuffer(...A){return H.brandCheck(this,e),this[tA].blobLike.arrayBuffer(...A)}slice(...A){return H.brandCheck(this,e),this[tA].blobLike.slice(...A)}text(...A){return H.brandCheck(this,e),this[tA].blobLike.text(...A)}get size(){return H.brandCheck(this,e),this[tA].blobLike.size}get type(){return H.brandCheck(this,e),this[tA].blobLike.type}get name(){return H.brandCheck(this,e),this[tA].name}get lastModified(){return H.brandCheck(this,e),this[tA].lastModified}get[Symbol.toStringTag](){return"File"}};Object.defineProperties($a.prototype,{[Symbol.toStringTag]:{value:"File",configurable:!0},name:H4,lastModified:H4});H.converters.Blob=H.interfaceConverter(O4);H.converters.BlobPart=function(e,A){if(H.util.Type(e)==="Object"){if(P4(e))return H.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||xo.isAnyArrayBuffer(e))return H.converters.BufferSource(e,A)}return H.converters.USVString(e,A)};H.converters["sequence<BlobPart>"]=H.sequenceConverter(H.converters.BlobPart);H.converters.FilePropertyBag=H.dictionaryConverter([{key:"lastModified",converter:H.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:H.converters.DOMString,defaultValue:""},{key:"endings",converter:e=>(e=H.converters.DOMString(e),e=e.toLowerCase(),e!=="native"&&(e="transparent"),e),defaultValue:"transparent"}]);function Uh(e,A){let t=[];for(let a of e)if(typeof a=="string"){let r=a;A.endings==="native"&&(r=Lh(r)),t.push(new TextEncoder().encode(r))}else xo.isAnyArrayBuffer(a)||xo.isTypedArray(a)?a.buffer?t.push(new Uint8Array(a.buffer,a.byteOffset,a.byteLength)):t.push(new Uint8Array(a)):P4(a)&&t.push(a);return t}function Lh(e){let A=` +`,"")}`}li.getProgressIcon=U5});var Sl=E(st=>{"use strict";var L5=st&&st.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),Zn=st&&st.__exportStar||function(e,A){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(A,t)&&L5(A,e,t)};Object.defineProperty(st,"__esModule",{value:!0});Zn(yl(),st);Zn(Rl(),st);Zn(bl(),st)});var kl=E(U1=>{"use strict";var M5=U1&&U1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(U1,"__esModule",{value:!0});U1.runAppleScript=void 0;var T5=M5(require("node:child_process")),Ga=Ai();async function V5(e,A,t){let{humanReadableOutput:a,language:r,timeout:i,...s}=Array.isArray(A)?t||{}:A||{},n=a!==!1?[]:["-ss"];r==="JavaScript"&&n.push("-l","JavaScript"),Array.isArray(A)&&n.push("-",...A);let o=T5.default.spawn("osascript",n,{...s,env:{PATH:"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"}}),d=(0,Ga.getSpawnedPromise)(o,{timeout:i||1e4});o.stdin.end(e);let[{error:l,exitCode:p,signal:g,timedOut:c},u,Q]=await(0,Ga.getSpawnedResult)(o,{encoding:"utf8"},d),m=(0,Ga.handleOutput)({stripFinalNewline:!0},u),C=(0,Ga.handleOutput)({stripFinalNewline:!0},Q);return(0,Ga.defaultParsing)({stdout:m,stderr:C,error:l,exitCode:p,signal:g,timedOut:c,command:"osascript",options:t,parentError:new Error})}U1.runAppleScript=V5});var jn=E(be=>{"use strict";var Y5=be&&be.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),NA=be&&be.__exportStar||function(e,A){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(A,t)&&Y5(A,e,t)};Object.defineProperty(be,"__esModule",{value:!0});NA(va(),be);NA(xr(),be);NA(qr(),be);NA(X2(),be);NA(al(),be);NA(ol(),be);NA(ll(),be);NA(cl(),be);NA(Ql(),be);NA(Sl(),be);NA(kl(),be)});var te=E((kN,Fl)=>{Fl.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size")}});var z=E((FN,Ul)=>{"use strict";var ce=class extends Error{constructor(A){super(A),this.name="UndiciError",this.code="UND_ERR"}},Xn=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ConnectTimeoutError",this.message=A||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},zn=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="HeadersTimeoutError",this.message=A||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},Kn=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="HeadersOverflowError",this.message=A||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},$n=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="BodyTimeoutError",this.message=A||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},eo=class e extends ce{constructor(A,t,a,r){super(A),Error.captureStackTrace(this,e),this.name="ResponseStatusCodeError",this.message=A||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=r,this.status=t,this.statusCode=t,this.headers=a}},Ao=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InvalidArgumentError",this.message=A||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},to=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InvalidReturnValueError",this.message=A||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},ao=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="AbortError",this.message=A||"Request aborted",this.code="UND_ERR_ABORTED"}},ro=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InformationalError",this.message=A||"Request information",this.code="UND_ERR_INFO"}},io=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="RequestContentLengthMismatchError",this.message=A||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},so=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ResponseContentLengthMismatchError",this.message=A||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},no=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ClientDestroyedError",this.message=A||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},oo=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ClientClosedError",this.message=A||"The client is closed",this.code="UND_ERR_CLOSED"}},po=class e extends ce{constructor(A,t){super(A),Error.captureStackTrace(this,e),this.name="SocketError",this.message=A||"Socket error",this.code="UND_ERR_SOCKET",this.socket=t}},gi=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="NotSupportedError",this.message=A||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},lo=class extends ce{constructor(A){super(A),Error.captureStackTrace(this,gi),this.name="MissingUpstreamError",this.message=A||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},go=class e extends Error{constructor(A,t,a){super(A),Error.captureStackTrace(this,e),this.name="HTTPParserError",this.code=t?`HPE_${t}`:void 0,this.data=a?a.toString():void 0}},co=class e extends ce{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ResponseExceededMaxSizeError",this.message=A||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}};Ul.exports={HTTPParserError:go,UndiciError:ce,HeadersTimeoutError:zn,HeadersOverflowError:Kn,BodyTimeoutError:$n,RequestContentLengthMismatchError:io,ConnectTimeoutError:Xn,ResponseStatusCodeError:eo,InvalidArgumentError:Ao,InvalidReturnValueError:to,RequestAbortedError:ao,ClientDestroyedError:no,ClientClosedError:oo,InformationalError:ro,SocketError:po,NotSupportedError:gi,ResponseContentLengthMismatchError:so,BalancedPoolMissingUpstreamError:lo,ResponseExceededMaxSizeError:co}});var _=E((UN,Hl)=>{"use strict";var Vl=require("assert"),{kDestroyed:Yl,kBodyUsed:Ll}=te(),{IncomingMessage:J5}=require("http"),L1=require("stream"),G5=require("net"),{InvalidArgumentError:Se}=z(),{Blob:Ml}=require("buffer"),ui=require("util"),{stringify:x5}=require("querystring"),[uo,Tl]=process.versions.node.split(".").map(e=>Number(e));function _5(){}function Eo(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function Jl(e){return Ml&&e instanceof Ml||e&&typeof e=="object"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function q5(e,A){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let t=x5(A);return t&&(e+="?"+t),e}function Gl(e){if(typeof e=="string"){if(e=new URL(e),!/^https?:/.test(e.origin||e.protocol))throw new Se("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new Se("Invalid URL: The URL argument must be a non-null object.");if(e.port!=null&&e.port!==""&&!Number.isFinite(parseInt(e.port)))throw new Se("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new Se("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new Se("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new Se("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new Se("Invalid URL origin: the origin must be a string or null/undefined.");if(!/^https?:/.test(e.origin||e.protocol))throw new Se("Invalid URL protocol: the URL must start with `http:` or `https:`.");if(!(e instanceof URL)){let A=e.port!=null?e.port:e.protocol==="https:"?443:80,t=e.origin!=null?e.origin:`${e.protocol}//${e.hostname}:${A}`,a=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;t.endsWith("/")&&(t=t.substring(0,t.length-1)),a&&!a.startsWith("/")&&(a=`/${a}`),e=new URL(t+a)}return e}function H5(e){if(e=Gl(e),e.pathname!=="/"||e.search||e.hash)throw new Se("invalid url");return e}function O5(e){if(e[0]==="["){let t=e.indexOf("]");return Vl(t!==-1),e.substr(1,t-1)}let A=e.indexOf(":");return A===-1?e:e.substr(0,A)}function P5(e){if(!e)return null;Vl.strictEqual(typeof e,"string");let A=O5(e);return G5.isIP(A)?"":A}function W5(e){return JSON.parse(JSON.stringify(e))}function Z5(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function j5(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function X5(e){if(e==null)return 0;if(Eo(e)){let A=e._readableState;return A&&A.ended===!0&&Number.isFinite(A.length)?A.length:null}else{if(Jl(e))return e.size!=null?e.size:null;if(_l(e))return e.byteLength}return null}function Qo(e){return!e||!!(e.destroyed||e[Yl])}function xl(e){let A=e&&e._readableState;return Qo(e)&&A&&!A.endEmitted}function z5(e,A){!Eo(e)||Qo(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===J5&&(e.socket=null),e.destroy(A)):A&&process.nextTick((t,a)=>{t.emit("error",a)},e,A),e.destroyed!==!0&&(e[Yl]=!0))}var K5=/timeout=(\d+)/;function $5(e){let A=e.toString().match(K5);return A?parseInt(A[1],10)*1e3:null}function eC(e,A={}){for(let t=0;t<e.length;t+=2){let a=e[t].toString().toLowerCase(),r=A[a];r?(Array.isArray(r)||(r=[r],A[a]=r),r.push(e[t+1].toString("utf8"))):Array.isArray(e[t+1])?A[a]=e[t+1]:A[a]=e[t+1].toString("utf8")}return"content-length"in A&&"content-disposition"in A&&(A["content-disposition"]=Buffer.from(A["content-disposition"]).toString("latin1")),A}function AC(e){let A=[],t=!1,a=-1;for(let r=0;r<e.length;r+=2){let i=e[r+0].toString(),s=e[r+1].toString("utf8");i.length===14&&(i==="content-length"||i.toLowerCase()==="content-length")?(A.push(i,s),t=!0):i.length===19&&(i==="content-disposition"||i.toLowerCase()==="content-disposition")?a=A.push(i,s)-1:A.push(i,s)}return t&&a!==-1&&(A[a]=Buffer.from(A[a]).toString("latin1")),A}function _l(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function tC(e,A,t){if(!e||typeof e!="object")throw new Se("handler must be an object");if(typeof e.onConnect!="function")throw new Se("invalid onConnect method");if(typeof e.onError!="function")throw new Se("invalid onError method");if(typeof e.onBodySent!="function"&&e.onBodySent!==void 0)throw new Se("invalid onBodySent method");if(t||A==="CONNECT"){if(typeof e.onUpgrade!="function")throw new Se("invalid onUpgrade method")}else{if(typeof e.onHeaders!="function")throw new Se("invalid onHeaders method");if(typeof e.onData!="function")throw new Se("invalid onData method");if(typeof e.onComplete!="function")throw new Se("invalid onComplete method")}}function aC(e){return!!(e&&(L1.isDisturbed?L1.isDisturbed(e)||e[Ll]:e[Ll]||e.readableDidRead||e._readableState&&e._readableState.dataEmitted||xl(e)))}function rC(e){return!!(e&&(L1.isErrored?L1.isErrored(e):/state: 'errored'/.test(ui.inspect(e))))}function iC(e){return!!(e&&(L1.isReadable?L1.isReadable(e):/state: 'readable'/.test(ui.inspect(e))))}function sC(e){return{localAddress:e.localAddress,localPort:e.localPort,remoteAddress:e.remoteAddress,remotePort:e.remotePort,remoteFamily:e.remoteFamily,timeout:e.timeout,bytesWritten:e.bytesWritten,bytesRead:e.bytesRead}}var xa;function nC(e){if(xa||(xa=require("stream/web").ReadableStream),xa.from)return xa.from(e);let A;return new xa({async start(){A=e[Symbol.asyncIterator]()},async pull(t){let{done:a,value:r}=await A.next();if(a)queueMicrotask(()=>{t.close()});else{let i=Buffer.isBuffer(r)?r:Buffer.from(r);t.enqueue(new Uint8Array(i))}return t.desiredSize>0},async cancel(t){await A.return()}},0)}function oC(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function dC(e){if(e){if(typeof e.throwIfAborted=="function")e.throwIfAborted();else if(e.aborted){let A=new Error("The operation was aborted");throw A.name="AbortError",A}}}var ci;function pC(e,A){return typeof Symbol.dispose=="symbol"&&(ci||(ci=require("events")),typeof ci.addAbortListener=="function"&&"aborted"in e)?ci.addAbortListener(e,A):"addEventListener"in e?(e.addEventListener("abort",A,{once:!0}),()=>e.removeEventListener("abort",A)):(e.addListener("abort",A),()=>e.removeListener("abort",A))}var lC=!!String.prototype.toWellFormed;function gC(e){return lC?`${e}`.toWellFormed():ui.toUSVString?ui.toUSVString(e):`${e}`}var ql=Object.create(null);ql.enumerable=!0;Hl.exports={kEnumerableProperty:ql,nop:_5,isDisturbed:aC,isErrored:rC,isReadable:iC,toUSVString:gC,isReadableAborted:xl,isBlobLike:Jl,parseOrigin:H5,parseURL:Gl,getServerName:P5,isStream:Eo,isIterable:j5,isAsyncIterable:Z5,isDestroyed:Qo,parseRawHeaders:AC,parseHeaders:eC,parseKeepAliveTimeout:$5,destroy:z5,bodyLength:X5,deepClone:W5,ReadableStreamFrom:nC,isBuffer:_l,validateHandler:tC,getSocketInfo:sC,isFormDataLike:oC,buildURL:q5,throwIfAborted:dC,addAbortListener:pC,nodeMajor:uo,nodeMinor:Tl,nodeHasAutoSelectFamily:uo>18||uo===18&&Tl>=13}});var Wl=E((LN,Pl)=>{"use strict";var Co=Date.now(),Rt,vt=[];function cC(){Co=Date.now();let e=vt.length,A=0;for(;A<e;){let t=vt[A];t.state===0?t.state=Co+t.delay:t.state>0&&Co>=t.state&&(t.state=-1,t.callback(t.opaque)),t.state===-1?(t.state=-2,A!==e-1?vt[A]=vt.pop():vt.pop(),e-=1):A+=1}vt.length>0&&Ol()}function Ol(){Rt&&Rt.refresh?Rt.refresh():(clearTimeout(Rt),Rt=setTimeout(cC,1e3),Rt.unref&&Rt.unref())}var Ei=class{constructor(A,t,a){this.callback=A,this.delay=t,this.opaque=a,this.state=-2,this.refresh()}refresh(){this.state===-2&&(vt.push(this),(!Rt||vt.length===1)&&Ol()),this.state=0}clear(){this.state=-1}};Pl.exports={setTimeout(e,A,t){return A<1e3?setTimeout(e,A,t):new Ei(e,A,t)},clearTimeout(e){e instanceof Ei?e.clear():clearTimeout(e)}}});var Qi=E((Kl,$l)=>{"use strict";function uC(e){if(e.length===0)return;let A=Object.create(null),t=0;for(;t<e.length;++t){let s=e.charCodeAt(t);if(zt[s]!==1){if(s!==47||t===0)return;break}}if(t===e.length)return;let a=e.slice(0,t).toLowerCase(),r=++t;for(;t<e.length;++t){let s=e.charCodeAt(t);if(zt[s]!==1){if(t===r||EC(e,t,A)===void 0)return;break}}if(t===r)return;let i=e.slice(r,t).toLowerCase();return{type:a,subtype:i,params:A}}function EC(e,A,t){for(;A<e.length;){for(;A<e.length;++A){let n=e.charCodeAt(A);if(n!==32&&n!==9)break}if(A===e.length)break;if(e.charCodeAt(A++)!==59)return;for(;A<e.length;++A){let n=e.charCodeAt(A);if(n!==32&&n!==9)break}if(A===e.length)return;let a,r=A;for(;A<e.length;++A){let n=e.charCodeAt(A);if(zt[n]!==1){if(n!==61)return;break}}if(A===e.length||(a=e.slice(r,A),++A,A===e.length))return;let i="",s;if(e.charCodeAt(A)===34){s=++A;let n=!1;for(;A<e.length;++A){let o=e.charCodeAt(A);if(o===92){n?(s=A,n=!1):(i+=e.slice(s,A),n=!0);continue}if(o===34){if(n){s=A,n=!1;continue}i+=e.slice(s,A);break}if(n&&(s=A-1,n=!1),zl[o]!==1)return}if(A===e.length)return;++A}else{for(s=A;A<e.length;++A){let n=e.charCodeAt(A);if(zt[n]!==1){if(A===s)return;break}}i=e.slice(s,A)}a=a.toLowerCase(),t[a]===void 0&&(t[a]=i)}return t}function QC(e,A){if(e.length===0)return;let t=Object.create(null),a=0;for(;a<e.length;++a){let i=e.charCodeAt(a);if(zt[i]!==1){if(CC(e,a,t,A)===void 0)return;break}}return{type:e.slice(0,a).toLowerCase(),params:t}}function CC(e,A,t,a){for(;A<e.length;){for(;A<e.length;++A){let d=e.charCodeAt(A);if(d!==32&&d!==9)break}if(A===e.length)break;if(e.charCodeAt(A++)!==59)return;for(;A<e.length;++A){let d=e.charCodeAt(A);if(d!==32&&d!==9)break}if(A===e.length)return;let r,i=A;for(;A<e.length;++A){let d=e.charCodeAt(A);if(zt[d]!==1){if(d===61)break;return}}if(A===e.length)return;let s="",n,o;if(r=e.slice(i,A),r.charCodeAt(r.length-1)===42){let d=++A;for(;A<e.length;++A){let p=e.charCodeAt(A);if(BC[p]!==1){if(p!==39)return;break}}if(A===e.length)return;for(o=e.slice(d,A),++A;A<e.length&&e.charCodeAt(A)!==39;++A);if(A===e.length||(++A,A===e.length))return;n=A;let l=0;for(;A<e.length;++A){let p=e.charCodeAt(A);if(hC[p]!==1){if(p===37){let g,c;if(A+2<e.length&&(g=Zl[e.charCodeAt(A+1)])!==-1&&(c=Zl[e.charCodeAt(A+2)])!==-1){let u=(g<<4)+c;s+=e.slice(n,A),s+=String.fromCharCode(u),A+=2,n=A+1,u>=128?l=2:l===0&&(l=1);continue}return}break}}if(s+=e.slice(n,A),s=Xl(s,o,l),s===void 0)return}else{if(++A,A===e.length)return;if(e.charCodeAt(A)===34){n=++A;let d=!1;for(;A<e.length;++A){let l=e.charCodeAt(A);if(l===92){d?(n=A,d=!1):(s+=e.slice(n,A),d=!0);continue}if(l===34){if(d){n=A,d=!1;continue}s+=e.slice(n,A);break}if(d&&(n=A-1,d=!1),zl[l]!==1)return}if(A===e.length)return;++A}else{for(n=A;A<e.length;++A){let d=e.charCodeAt(A);if(zt[d]!==1){if(A===n)return;break}}s=e.slice(n,A)}if(s=a(s,2),s===void 0)return}r=r.toLowerCase(),t[r]===void 0&&(t[r]=s)}return t}function jl(e){let A;for(;;)switch(e){case"utf-8":case"utf8":return qa.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return qa.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return qa.utf16le;case"base64":return qa.base64;default:if(A===void 0){A=!0,e=e.toLowerCase();continue}return qa.other.bind(e)}}var qa={utf8:(e,A)=>{if(e.length===0)return"";if(typeof e=="string"){if(A<2)return e;e=Buffer.from(e,"latin1")}return e.utf8Slice(0,e.length)},latin1:(e,A)=>e.length===0?"":typeof e=="string"?e:e.latin1Slice(0,e.length),utf16le:(e,A)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,"latin1")),e.ucs2Slice(0,e.length)),base64:(e,A)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,"latin1")),e.base64Slice(0,e.length)),other:(e,A)=>{if(e.length===0)return"";typeof e=="string"&&(e=Buffer.from(e,"latin1"));try{return new TextDecoder(Kl).decode(e)}catch{}}};function Xl(e,A,t){let a=jl(A);if(a)return a(e,t)}function mC(e){if(typeof e!="string")return"";for(let A=e.length-1;A>=0;--A)switch(e.charCodeAt(A)){case 47:case 92:return e=e.slice(A+1),e===".."||e==="."?"":e}return e===".."||e==="."?"":e}var zt=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],zl=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],BC=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],hC=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],Zl=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];$l.exports={basename:mC,convertToUTF8:Xl,getDecoder:jl,parseContentType:uC,parseDisposition:QC}});var a4=E((MN,t4)=>{"use strict";function e4(e,A,t,a,r){for(let i=0;i<r;++i)if(e[A+i]!==t[a+i])return!1;return!0}var mo=class{constructor(A,t){if(typeof t!="function")throw new Error("Missing match callback");if(typeof A=="string")A=Buffer.from(A);else if(!Buffer.isBuffer(A))throw new Error(`Expected Buffer for needle, got ${typeof A}`);let a=A.length;if(this.maxMatches=1/0,this.matches=0,this._cb=t,this._lookbehindSize=0,this._needle=A,this._bufPos=0,this._lookbehind=Buffer.allocUnsafe(a),this._occ=[a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a],a>1)for(let r=0;r<a-1;++r)this._occ[A[r]]=a-1-r}reset(){this.matches=0,this._lookbehindSize=0,this._bufPos=0}push(A,t){let a;Buffer.isBuffer(A)||(A=Buffer.from(A,"latin1"));let r=A.length;for(this._bufPos=t||0;a!==r&&this.matches<this.maxMatches;)a=IC(this,A);return a}destroy(){let A=this._lookbehindSize;A&&this._cb(!1,this._lookbehind,0,A,!1),this.reset()}};function IC(e,A){let t=A.length,a=e._needle,r=a.length,i=-e._lookbehindSize,s=r-1,n=a[s],o=t-r,d=e._occ,l=e._lookbehind;if(i<0){for(;i<0&&i<=o;){let g=i+s,c=g<0?l[e._lookbehindSize+g]:A[g];if(c===n&&A4(e,A,i,s))return e._lookbehindSize=0,++e.matches,i>-e._lookbehindSize?e._cb(!0,l,0,e._lookbehindSize+i,!1):e._cb(!0,void 0,0,0,!0),e._bufPos=i+r;i+=d[c]}for(;i<0&&!A4(e,A,i,t-i);)++i;if(i<0){let g=e._lookbehindSize+i;return g>0&&e._cb(!1,l,0,g,!1),e._lookbehindSize-=g,l.copy(l,0,g,e._lookbehindSize),l.set(A,e._lookbehindSize),e._lookbehindSize+=t,e._bufPos=t,t}e._cb(!1,l,0,e._lookbehindSize,!1),e._lookbehindSize=0}i+=e._bufPos;let p=a[0];for(;i<=o;){let g=A[i+s];if(g===n&&A[i]===p&&e4(a,0,A,i,s))return++e.matches,i>0?e._cb(!0,A,e._bufPos,i,!0):e._cb(!0,void 0,0,0,!0),e._bufPos=i+r;i+=d[g]}for(;i<t;){if(A[i]!==p||!e4(A,i,a,0,t-i)){++i;continue}A.copy(l,0,i,t),e._lookbehindSize=t-i;break}return i>0&&e._cb(!1,A,e._bufPos,i<t?i:t,!0),e._bufPos=t,t}function A4(e,A,t,a){let r=e._lookbehind,i=e._lookbehindSize,s=e._needle;for(let n=0;n<a;++n,++t)if((t<0?r[i+t]:A[t])!==s[n])return!1;return!0}t4.exports=mo});var g4=E((TN,l4)=>{"use strict";var{Readable:fC,Writable:wC}=require("stream"),yC=a4(),{basename:DC,convertToUTF8:r4,getDecoder:RC,parseContentType:vC,parseDisposition:NC}=Qi(),bC=Buffer.from(`\r +`),SC=Buffer.from("\r"),kC=Buffer.from("-");function i4(){}var FC=2e3,M1=16*1024,Ci=0,s4=1,n4=2,Bo=class{constructor(A){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=Ci,this.name="",this.value="",this.crlf=0,this.cb=A}reset(){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=Ci,this.name="",this.value="",this.crlf=0}push(A,t,a){let r=t;for(;t<a;)switch(this.state){case Ci:{let i=!1;for(;t<a;++t){if(this.byteCount===M1)return-1;++this.byteCount;let s=A[t];if(MC[s]!==1){if(s!==58||(this.name+=A.latin1Slice(r,t),this.name.length===0))return-1;++t,i=!0,this.state=s4;break}}if(!i){this.name+=A.latin1Slice(r,t);break}}case s4:{let i=!1;for(;t<a;++t){if(this.byteCount===M1)return-1;++this.byteCount;let s=A[t];if(s!==32&&s!==9){r=t,i=!0,this.state=n4;break}}if(!i)break}case n4:switch(this.crlf){case 0:for(;t<a;++t){if(this.byteCount===M1)return-1;++this.byteCount;let i=A[t];if(TC[i]!==1){if(i!==13)return-1;++this.crlf;break}}this.value+=A.latin1Slice(r,t++);break;case 1:if(this.byteCount===M1||(++this.byteCount,A[t++]!==10))return-1;++this.crlf;break;case 2:{if(this.byteCount===M1)return-1;++this.byteCount;let i=A[t];i===32||i===9?(r=t,this.crlf=0):(++this.pairCount<FC&&(this.name=this.name.toLowerCase(),this.header[this.name]===void 0?this.header[this.name]=[this.value]:this.header[this.name].push(this.value)),i===13?(++this.crlf,++t):(r=t,this.crlf=0,this.state=Ci,this.name="",this.value=""));break}case 3:{if(this.byteCount===M1||(++this.byteCount,A[t++]!==10))return-1;let i=this.header;return this.reset(),this.cb(i),t}}break}return t}},ho=class extends fC{constructor(A,t){super(A),this.truncated=!1,this._readcb=null,this.once("end",()=>{if(this._read(),--t._fileEndsLeft===0&&t._finalcb){let a=t._finalcb;t._finalcb=null,process.nextTick(a)}})}_read(A){let t=this._readcb;t&&(this._readcb=null,t())}},o4={push:(e,A)=>{},destroy:()=>{}};function UC(e,A){let t=e._writecb;e._writecb=null,A?e.destroy(A):t&&t()}function LC(e,A){return e}var Io=class extends wC{constructor(A){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.highWaterMark=="number"?A.highWaterMark:void 0};if(super(t),!A.conType.params||typeof A.conType.params.boundary!="string")throw new Error("Multipart: Boundary not found");let a=A.conType.params.boundary,r=typeof A.defParamCharset=="string"&&A.defParamCharset?RC(A.defParamCharset):LC,i=A.defCharset||"utf8",s=A.preservePath,n={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.fileHwm=="number"?A.fileHwm:void 0},o=A.limits,d=o&&typeof o.fieldSize=="number"?o.fieldSize:1*1024*1024,l=o&&typeof o.fileSize=="number"?o.fileSize:1/0,p=o&&typeof o.files=="number"?o.files:1/0,g=o&&typeof o.fields=="number"?o.fields:1/0,c=o&&typeof o.parts=="number"?o.parts:1/0,u=-1,Q=0,m=0,C=!1;this._fileEndsLeft=0,this._fileStream=void 0,this._complete=!1;let B=0,w,I=0,y,b,F,x,he=!1,Qe=!1,Bt=!1;this._hparser=null;let Re=new Bo(W=>{this._hparser=null,C=!1,F="text/plain",y=i,b="7bit",x=void 0,he=!1;let Ae;if(!W["content-disposition"]){C=!0;return}let L=NC(W["content-disposition"][0],r);if(!L||L.type!=="form-data"){C=!0;return}if(L.params&&(L.params.name&&(x=L.params.name),L.params["filename*"]?Ae=L.params["filename*"]:L.params.filename&&(Ae=L.params.filename),Ae!==void 0&&!s&&(Ae=DC(Ae))),W["content-type"]){let M=vC(W["content-type"][0]);M&&(F=`${M.type}/${M.subtype}`,M.params&&typeof M.params.charset=="string"&&(y=M.params.charset.toLowerCase()))}if(W["content-transfer-encoding"]&&(b=W["content-transfer-encoding"][0].toLowerCase()),F==="application/octet-stream"||Ae!==void 0){if(m===p){Qe||(Qe=!0,this.emit("filesLimit")),C=!0;return}if(++m,this.listenerCount("file")===0){C=!0;return}B=0,this._fileStream=new ho(n,this),++this._fileEndsLeft,this.emit("file",x,this._fileStream,{filename:Ae,encoding:b,mimeType:F})}else{if(Q===g){Bt||(Bt=!0,this.emit("fieldsLimit")),C=!0;return}if(++Q,this.listenerCount("field")===0){C=!0;return}w=[],I=0}}),de=0,lA=(W,Ae,L,M,TA)=>{e:for(;Ae;){if(this._hparser!==null){let O=this._hparser.push(Ae,L,M);if(O===-1){this._hparser=null,Re.reset(),this.emit("error",new Error("Malformed part header"));break}L=O}if(L===M)break;if(de!==0){if(de===1){switch(Ae[L]){case 45:de=2,++L;break;case 13:de=3,++L;break;default:de=0}if(L===M)return}if(de===2){if(de=0,Ae[L]===45){this._complete=!0,this._bparser=o4;return}let O=this._writecb;this._writecb=i4,lA(!1,kC,0,1,!1),this._writecb=O}else if(de===3)if(de=0,Ae[L]===10){if(++L,u>=c||(this._hparser=Re,L===M))break;continue e}else{let O=this._writecb;this._writecb=i4,lA(!1,SC,0,1,!1),this._writecb=O}}if(!C){if(this._fileStream){let O,ze=Math.min(M-L,l-B);TA?O=Ae.slice(L,L+ze):(O=Buffer.allocUnsafe(ze),Ae.copy(O,0,L,L+ze)),B+=O.length,B===l?(O.length>0&&this._fileStream.push(O),this._fileStream.emit("limit"),this._fileStream.truncated=!0,C=!0):this._fileStream.push(O)||(this._writecb&&(this._fileStream._readcb=this._writecb),this._writecb=null)}else if(w!==void 0){let O,ze=Math.min(M-L,d-I);TA?O=Ae.slice(L,L+ze):(O=Buffer.allocUnsafe(ze),Ae.copy(O,0,L,L+ze)),I+=ze,w.push(O),I===d&&(C=!0,he=!0)}}break}if(W){if(de=1,this._fileStream)this._fileStream.push(null),this._fileStream=null;else if(w!==void 0){let O;switch(w.length){case 0:O="";break;case 1:O=r4(w[0],y,0);break;default:O=r4(Buffer.concat(w,I),y,0)}w=void 0,I=0,this.emit("field",x,O,{nameTruncated:!1,valueTruncated:he,encoding:b,mimeType:F})}++u===c&&this.emit("partsLimit")}};this._bparser=new yC(`\r +--${a}`,lA),this._writecb=null,this._finalcb=null,this.write(bC)}static detect(A){return A.type==="multipart"&&A.subtype==="form-data"}_write(A,t,a){this._writecb=a,this._bparser.push(A,0),this._writecb&&UC(this)}_destroy(A,t){this._hparser=null,this._bparser=o4,A||(A=p4(this));let a=this._fileStream;a&&(this._fileStream=null,a.destroy(A)),t(A)}_final(A){if(this._bparser.destroy(),!this._complete)return A(new Error("Unexpected end of form"));this._fileEndsLeft?this._finalcb=d4.bind(null,this,A):d4(this,A)}};function d4(e,A,t){if(t)return A(t);t=p4(e),A(t)}function p4(e){if(e._hparser)return new Error("Malformed part header");let A=e._fileStream;if(A&&(e._fileStream=null,A.destroy(new Error("Unexpected end of file"))),!e._complete)return new Error("Unexpected end of form")}var MC=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],TC=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];l4.exports=Io});var u4=E((VN,c4)=>{"use strict";var{Writable:VC}=require("stream"),{getDecoder:YC}=Qi(),Ro=class extends VC{constructor(A){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.highWaterMark=="number"?A.highWaterMark:void 0};super(t);let a=A.defCharset||"utf8";A.conType.params&&typeof A.conType.params.charset=="string"&&(a=A.conType.params.charset),this.charset=a;let r=A.limits;this.fieldSizeLimit=r&&typeof r.fieldSize=="number"?r.fieldSize:1*1024*1024,this.fieldsLimit=r&&typeof r.fields=="number"?r.fields:1/0,this.fieldNameSizeLimit=r&&typeof r.fieldNameSize=="number"?r.fieldNameSize:100,this._inKey=!0,this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,this._fields=0,this._key="",this._val="",this._byte=-2,this._lastPos=0,this._encode=0,this._decoder=YC(a)}static detect(A){return A.type==="application"&&A.subtype==="x-www-form-urlencoded"}_write(A,t,a){if(this._fields>=this.fieldsLimit)return a();let r=0,i=A.length;if(this._lastPos=0,this._byte!==-2){if(r=fo(this,A,r,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();this._inKey?++this._bytesKey:++this._bytesVal}e:for(;r<i;)if(this._inKey){for(r=wo(this,A,r,i);r<i;){switch(A[r]){case 61:this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._key=this._decoder(this._key,this._encode),this._encode=0,this._inKey=!1;continue e;case 38:if(this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._key=this._decoder(this._key,this._encode),this._encode=0,this._bytesKey>0&&this.emit("field",this._key,"",{nameTruncated:this._keyTrunc,valueTruncated:!1,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),a();continue;case 43:this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._key+=" ",this._lastPos=r+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=r+1,this._byte=-1,r=fo(this,A,r+1,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();++this._bytesKey,r=wo(this,A,r,i);continue}++r,++this._bytesKey,r=wo(this,A,r,i)}this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r))}else{for(r=yo(this,A,r,i);r<i;){switch(A[r]){case 38:if(this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._inKey=!0,this._val=this._decoder(this._val,this._encode),this._encode=0,(this._bytesKey>0||this._bytesVal>0)&&this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),a();continue e;case 43:this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._val+=" ",this._lastPos=r+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._lastPos=r+1,this._byte=-1,r=fo(this,A,r+1,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();++this._bytesVal,r=yo(this,A,r,i);continue}++r,++this._bytesVal,r=yo(this,A,r,i)}this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r))}a()}_final(A){if(this._byte!==-2)return A(new Error("Malformed urlencoded form"));(!this._inKey||this._bytesKey>0||this._bytesVal>0)&&(this._inKey?this._key=this._decoder(this._key,this._encode):this._val=this._decoder(this._val,this._encode),this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"})),A()}};function fo(e,A,t,a){if(t>=a)return a;if(e._byte===-1){let r=Do[A[t++]];if(r===-1)return-1;if(r>=8&&(e._encode=2),t<a){let i=Do[A[t++]];if(i===-1)return-1;e._inKey?e._key+=String.fromCharCode((r<<4)+i):e._val+=String.fromCharCode((r<<4)+i),e._byte=-2,e._lastPos=t}else e._byte=r}else{let r=Do[A[t++]];if(r===-1)return-1;e._inKey?e._key+=String.fromCharCode((e._byte<<4)+r):e._val+=String.fromCharCode((e._byte<<4)+r),e._byte=-2,e._lastPos=t}return t}function wo(e,A,t,a){if(e._bytesKey>e.fieldNameSizeLimit){for(e._keyTrunc||e._lastPos<t&&(e._key+=A.latin1Slice(e._lastPos,t-1)),e._keyTrunc=!0;t<a;++t){let r=A[t];if(r===61||r===38)break;++e._bytesKey}e._lastPos=t}return t}function yo(e,A,t,a){if(e._bytesVal>e.fieldSizeLimit){for(e._valTrunc||e._lastPos<t&&(e._val+=A.latin1Slice(e._lastPos,t-1)),e._valTrunc=!0;t<a&&A[t]!==38;++t)++e._bytesVal;e._lastPos=t}return t}var Do=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];c4.exports=Ro});var Q4=E((YN,E4)=>{"use strict";var{parseContentType:JC}=Qi();function GC(e){let A=e.headers,t=JC(A["content-type"]);if(!t)throw new Error("Malformed content type");for(let a of xC){if(!a.detect(t))continue;let i={limits:e.limits,headers:A,conType:t,highWaterMark:void 0,fileHwm:void 0,defCharset:void 0,defParamCharset:void 0,preservePath:!1};return e.highWaterMark&&(i.highWaterMark=e.highWaterMark),e.fileHwm&&(i.fileHwm=e.fileHwm),i.defCharset=e.defCharset,i.defParamCharset=e.defParamCharset,i.preservePath=e.preservePath,new a(i)}throw new Error(`Unsupported content type: ${A["content-type"]}`)}var xC=[g4(),u4()].filter(function(e){return typeof e.detect=="function"});E4.exports=e=>{if((typeof e!="object"||e===null)&&(e={}),typeof e.headers!="object"||e.headers===null||typeof e.headers["content-type"]!="string")throw new Error("Missing Content-Type");return GC(e)}});var Nt=E((JN,C4)=>{"use strict";var{MessageChannel:_C,receiveMessageOnPort:qC}=require("worker_threads"),HC=["GET","HEAD","POST"],OC=[101,204,205,304],PC=[301,302,303,307,308],WC=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"],ZC=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],jC=["follow","manual","error"],XC=["GET","HEAD","OPTIONS","TRACE"],zC=["navigate","same-origin","no-cors","cors"],KC=["omit","same-origin","include"],$C=["default","no-store","reload","no-cache","force-cache","only-if-cached"],em=["content-encoding","content-language","content-location","content-type","content-length"],Am=["half"],tm=["CONNECT","TRACE","TRACK"],am=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],rm=globalThis.DOMException??(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})(),T1,im=globalThis.structuredClone??function(A,t=void 0){if(arguments.length===0)throw new TypeError("missing argument");return T1||(T1=new _C),T1.port1.unref(),T1.port2.unref(),T1.port1.postMessage(A,t?.transfer),qC(T1.port2).message};C4.exports={DOMException:rm,structuredClone:im,subresource:am,forbiddenMethods:tm,requestBodyHeader:em,referrerPolicy:ZC,requestRedirect:jC,requestMode:zC,requestCredentials:KC,requestCache:$C,redirectStatus:PC,corsSafeListedMethods:HC,nullBodyStatus:OC,safeMethods:XC,badPorts:WC,requestDuplex:Am}});var Ha=E((GN,m4)=>{"use strict";var vo=Symbol.for("undici.globalOrigin.1");function sm(){return globalThis[vo]}function nm(e){if(e!==void 0&&typeof e!="string"&&!(e instanceof URL))throw new Error("Invalid base url");if(e===void 0){Object.defineProperty(globalThis,vo,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let A=new URL(e);if(A.protocol!=="http:"&&A.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${A.protocol}`);Object.defineProperty(globalThis,vo,{value:A,writable:!0,enumerable:!1,configurable:!1})}m4.exports={getGlobalOrigin:sm,setGlobalOrigin:nm}});var QA=E((xN,y4)=>{"use strict";var{redirectStatus:om,badPorts:dm,referrerPolicy:pm}=Nt(),{getGlobalOrigin:lm}=Ha(),{performance:gm}=require("perf_hooks"),{isBlobLike:cm,toUSVString:um,ReadableStreamFrom:Em}=_(),V1=require("assert"),{isUint8Array:Qm}=require("util/types"),mi;try{mi=require("crypto")}catch{}function B4(e){let A=e.urlList,t=A.length;return t===0?null:A[t-1].toString()}function Cm(e,A){if(!om.includes(e.status))return null;let t=e.headersList.get("location");return t!==null&&I4(t)&&(t=new URL(t,B4(e))),t&&!t.hash&&(t.hash=A),t}function Pa(e){return e.urlList[e.urlList.length-1]}function mm(e){let A=Pa(e);return w4(A)&&dm.includes(A.port)?"blocked":"allowed"}function Bm(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function hm(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(!(t===9||t>=32&&t<=126||t>=128&&t<=255))return!1}return!0}function Im(e){return!(e>=127||e<=32||e==="("||e===")"||e==="<"||e===">"||e==="@"||e===","||e===";"||e===":"||e==="\\"||e==='"'||e==="/"||e==="["||e==="]"||e==="?"||e==="="||e==="{"||e==="}")}function h4(e){if(!e||typeof e!="string")return!1;for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t>127||!Im(t))return!1}return!0}function fm(e){return e.length===0?!1:h4(e)}function I4(e){return!(e.startsWith(" ")||e.startsWith(" ")||e.endsWith(" ")||e.endsWith(" ")||e.includes("\0")||e.includes("\r")||e.includes(` +`))}function wm(e,A){let{headersList:t}=A,a=(t.get("referrer-policy")??"").split(","),r="";if(a.length>0)for(let i=a.length;i!==0;i--){let s=a[i-1].trim();if(pm.includes(s)){r=s;break}}r!==""&&(e.referrerPolicy=r)}function ym(){return"allowed"}function Dm(){return"success"}function Rm(){return"success"}function vm(e){let A=null;A=e.mode,e.headersList.set("sec-fetch-mode",A)}function Nm(e){let A=e.origin;if(e.responseTainting==="cors"||e.mode==="websocket")A&&e.headersList.append("origin",A);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":A=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&So(e.origin)&&!So(Pa(e))&&(A=null);break;case"same-origin":Bi(e,Pa(e))||(A=null);break;default:}A&&e.headersList.append("origin",A)}}function bm(e){return gm.now()}function Sm(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function km(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function Fm(e){return{referrerPolicy:e.referrerPolicy}}function Um(e){let A=e.referrerPolicy;V1(A);let t=null;if(e.referrer==="client"){let n=lm();if(!n||n.origin==="null")return"no-referrer";t=new URL(n)}else e.referrer instanceof URL&&(t=e.referrer);let a=No(t),r=No(t,!0);a.toString().length>4096&&(a=r);let i=Bi(e,a),s=Oa(a)&&!Oa(e.url);switch(A){case"origin":return r??No(t,!0);case"unsafe-url":return a;case"same-origin":return i?r:"no-referrer";case"origin-when-cross-origin":return i?a:r;case"strict-origin-when-cross-origin":{let n=Pa(e);return Bi(a,n)?a:Oa(a)&&!Oa(n)?"no-referrer":r}case"strict-origin":case"no-referrer-when-downgrade":default:return s?"no-referrer":r}}function No(e,A){return V1(e instanceof URL),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",A&&(e.pathname="",e.search=""),e)}function Oa(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return A(e.origin);function A(t){if(t==null||t==="null")return!1;let a=new URL(t);return!!(a.protocol==="https:"||a.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(a.hostname)||a.hostname==="localhost"||a.hostname.includes("localhost.")||a.hostname.endsWith(".localhost"))}}function Lm(e,A){if(mi===void 0)return!0;let t=Tm(A);if(t==="no metadata"||t.length===0)return!0;let a=t.sort((s,n)=>n.algo.localeCompare(s.algo)),r=a[0].algo,i=a.filter(s=>s.algo===r);for(let s of i){let n=s.algo,o=s.hash;if(mi.createHash(n).update(e).digest("base64")===o)return!0}return!1}var Mm=/((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\x21-\x7e]?)?/i;function Tm(e){let A=[],t=!0,a=mi.getHashes();for(let r of e.split(" ")){t=!1;let i=Mm.exec(r);if(i===null||i.groups===void 0)continue;let s=i.groups.algo;a.includes(s.toLowerCase())&&A.push(i.groups)}return t===!0?"no metadata":A}function Vm(e){}function Bi(e,A){return e.origin===A.origin&&e.origin==="null"||e.protocol===A.protocol&&e.hostname===A.hostname&&e.port===A.port}function Ym(){let e,A;return{promise:new Promise((a,r)=>{e=a,A=r}),resolve:e,reject:A}}function Jm(e){return e.controller.state==="aborted"}function Gm(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}function xm(e){return/^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(e)?e.toUpperCase():e}function _m(e){let A=JSON.stringify(e);if(A===void 0)throw new TypeError("Value is not JSON serializable");return V1(typeof A=="string"),A}var qm=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function Hm(e,A,t){let a={index:0,kind:t,target:e},r={next(){if(Object.getPrototypeOf(this)!==r)throw new TypeError(`'next' called on an object that does not implement interface ${A} Iterator.`);let{index:i,kind:s,target:n}=a,o=n(),d=o.length;if(i>=d)return{value:void 0,done:!0};let l=o[i];return a.index=i+1,Om(l,s)},[Symbol.toStringTag]:`${A} Iterator`};return Object.setPrototypeOf(r,qm),Object.setPrototypeOf({},r)}function Om(e,A){let t;switch(A){case"key":{t=e[0];break}case"value":{t=e[1];break}case"key+value":{t=e;break}}return{value:t,done:!1}}function Pm(e,A,t){let a=s=>queueMicrotask(()=>A(s)),r=s=>queueMicrotask(()=>t(s)),i;try{i=e.stream.getReader()}catch(s){r(s);return}f4(i,a,r)}var bo=globalThis.ReadableStream;function Wm(e){return bo||(bo=require("stream/web").ReadableStream),e instanceof bo||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}var Zm=65535;function jm(e){return e.length<Zm?String.fromCharCode(...e):e.reduce((A,t)=>A+String.fromCharCode(t),"")}function Xm(e){try{e.close()}catch(A){if(!A.message.includes("Controller is already closed"))throw A}}function zm(e){for(let A=0;A<e.length;A++)V1(e.charCodeAt(A)<=255);return e}async function f4(e,A,t){let a=[],r=0;for(;;){let i,s;try{({done:i,value:s}=await e.read())}catch(n){t(n);return}if(i){A(Buffer.concat(a,r));return}if(!Qm(s)){t(new TypeError("Received non-Uint8Array chunk"));return}a.push(s),r+=s.length}}function Km(e){V1("protocol"in e);let A=e.protocol;return A==="about:"||A==="blob:"||A==="data:"}function So(e){return typeof e=="string"?e.startsWith("https:"):e.protocol==="https:"}function w4(e){V1("protocol"in e);let A=e.protocol;return A==="http:"||A==="https:"}var $m=Object.hasOwn||((e,A)=>Object.prototype.hasOwnProperty.call(e,A));y4.exports={isAborted:Jm,isCancelled:Gm,createDeferredPromise:Ym,ReadableStreamFrom:Em,toUSVString:um,tryUpgradeRequestToAPotentiallyTrustworthyURL:Vm,coarsenedSharedCurrentTime:bm,determineRequestsReferrer:Um,makePolicyContainer:km,clonePolicyContainer:Fm,appendFetchMetadata:vm,appendRequestOriginHeader:Nm,TAOCheck:Rm,corsCheck:Dm,crossOriginResourcePolicyCheck:ym,createOpaqueTimingInfo:Sm,setRequestReferrerPolicyOnRedirect:wm,isValidHTTPToken:h4,requestBadPort:mm,requestCurrentURL:Pa,responseURL:B4,responseLocationURL:Cm,isBlobLike:cm,isURLPotentiallyTrustworthy:Oa,isValidReasonPhrase:hm,sameOrigin:Bi,normalizeMethod:xm,serializeJavascriptValueToJSONString:_m,makeIterator:Hm,isValidHeaderName:fm,isValidHeaderValue:I4,hasOwn:$m,isErrorLike:Bm,fullyReadBody:Pm,bytesMatch:Lm,isReadableStreamLike:Wm,readableStreamClose:Xm,isomorphicEncode:zm,isomorphicDecode:jm,urlIsLocal:Km,urlHasHttpsScheme:So,urlIsHttpHttpsScheme:w4,readAllBytes:f4}});var nt=E((_N,D4)=>{"use strict";D4.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}});var Te=E((qN,v4)=>{"use strict";var{types:HA}=require("util"),{hasOwn:R4,toUSVString:eB}=QA(),f={};f.converters={};f.util={};f.errors={};f.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};f.errors.conversionFailed=function(e){let A=e.types.length===1?"":" one of",t=`${e.argument} could not be converted to${A}: ${e.types.join(", ")}.`;return f.errors.exception({header:e.prefix,message:t})};f.errors.invalidArgument=function(e){return f.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};f.brandCheck=function(e,A,t=void 0){if(t?.strict!==!1&&!(e instanceof A))throw new TypeError("Illegal invocation");return e?.[Symbol.toStringTag]===A.prototype[Symbol.toStringTag]};f.argumentLengthCheck=function({length:e},A,t){if(e<A)throw f.errors.exception({message:`${A} argument${A!==1?"s":""} required, but${e?" only":""} ${e} found.`,...t})};f.illegalConstructor=function(){throw f.errors.exception({header:"TypeError",message:"Illegal constructor"})};f.util.Type=function(e){switch(typeof e){case"undefined":return"Undefined";case"boolean":return"Boolean";case"string":return"String";case"symbol":return"Symbol";case"number":return"Number";case"bigint":return"BigInt";case"function":case"object":return e===null?"Null":"Object"}};f.util.ConvertToInt=function(e,A,t,a={}){let r,i;A===64?(r=Math.pow(2,53)-1,t==="unsigned"?i=0:i=Math.pow(-2,53)+1):t==="unsigned"?(i=0,r=Math.pow(2,A)-1):(i=Math.pow(-2,A)-1,r=Math.pow(2,A-1)-1);let s=Number(e);if(s===0&&(s=0),a.enforceRange===!0){if(Number.isNaN(s)||s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY)throw f.errors.exception({header:"Integer conversion",message:`Could not convert ${e} to an integer.`});if(s=f.util.IntegerPart(s),s<i||s>r)throw f.errors.exception({header:"Integer conversion",message:`Value must be between ${i}-${r}, got ${s}.`});return s}return!Number.isNaN(s)&&a.clamp===!0?(s=Math.min(Math.max(s,i),r),Math.floor(s)%2===0?s=Math.floor(s):s=Math.ceil(s),s):Number.isNaN(s)||s===0&&Object.is(0,s)||s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY?0:(s=f.util.IntegerPart(s),s=s%Math.pow(2,A),t==="signed"&&s>=Math.pow(2,A)-1?s-Math.pow(2,A):s)};f.util.IntegerPart=function(e){let A=Math.floor(Math.abs(e));return e<0?-1*A:A};f.sequenceConverter=function(e){return A=>{if(f.util.Type(A)!=="Object")throw f.errors.exception({header:"Sequence",message:`Value of type ${f.util.Type(A)} is not an Object.`});let t=A?.[Symbol.iterator]?.(),a=[];if(t===void 0||typeof t.next!="function")throw f.errors.exception({header:"Sequence",message:"Object is not an iterator."});for(;;){let{done:r,value:i}=t.next();if(r)break;a.push(e(i))}return a}};f.recordConverter=function(e,A){return t=>{if(f.util.Type(t)!=="Object")throw f.errors.exception({header:"Record",message:`Value of type ${f.util.Type(t)} is not an Object.`});let a={};if(!HA.isProxy(t)){let i=Object.keys(t);for(let s of i){let n=e(s),o=A(t[s]);a[n]=o}return a}let r=Reflect.ownKeys(t);for(let i of r)if(Reflect.getOwnPropertyDescriptor(t,i)?.enumerable){let n=e(i),o=A(t[i]);a[n]=o}return a}};f.interfaceConverter=function(e){return(A,t={})=>{if(t.strict!==!1&&!(A instanceof e))throw f.errors.exception({header:e.name,message:`Expected ${A} to be an instance of ${e.name}.`});return A}};f.dictionaryConverter=function(e){return A=>{let t=f.util.Type(A),a={};if(t==="Null"||t==="Undefined")return a;if(t!=="Object")throw f.errors.exception({header:"Dictionary",message:`Expected ${A} to be one of: Null, Undefined, Object.`});for(let r of e){let{key:i,defaultValue:s,required:n,converter:o}=r;if(n===!0&&!R4(A,i))throw f.errors.exception({header:"Dictionary",message:`Missing required key "${i}".`});let d=A[i],l=R4(r,"defaultValue");if(l&&d!==null&&(d=d??s),n||l||d!==void 0){if(d=o(d),r.allowedValues&&!r.allowedValues.includes(d))throw f.errors.exception({header:"Dictionary",message:`${d} is not an accepted type. Expected one of ${r.allowedValues.join(", ")}.`});a[i]=d}}return a}};f.nullableConverter=function(e){return A=>A===null?A:e(A)};f.converters.DOMString=function(e,A={}){if(e===null&&A.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw new TypeError("Could not convert argument of type symbol to string.");return String(e)};f.converters.ByteString=function(e){let A=f.converters.DOMString(e);for(let t=0;t<A.length;t++){let a=A.charCodeAt(t);if(a>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${t} has a value of ${a} which is greater than 255.`)}return A};f.converters.USVString=eB;f.converters.boolean=function(e){return!!e};f.converters.any=function(e){return e};f.converters["long long"]=function(e){return f.util.ConvertToInt(e,64,"signed")};f.converters["unsigned long long"]=function(e){return f.util.ConvertToInt(e,64,"unsigned")};f.converters["unsigned long"]=function(e){return f.util.ConvertToInt(e,32,"unsigned")};f.converters["unsigned short"]=function(e,A){return f.util.ConvertToInt(e,16,"unsigned",A)};f.converters.ArrayBuffer=function(e,A={}){if(f.util.Type(e)!=="Object"||!HA.isAnyArrayBuffer(e))throw f.errors.conversionFailed({prefix:`${e}`,argument:`${e}`,types:["ArrayBuffer"]});if(A.allowShared===!1&&HA.isSharedArrayBuffer(e))throw f.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};f.converters.TypedArray=function(e,A,t={}){if(f.util.Type(e)!=="Object"||!HA.isTypedArray(e)||e.constructor.name!==A.name)throw f.errors.conversionFailed({prefix:`${A.name}`,argument:`${e}`,types:[A.name]});if(t.allowShared===!1&&HA.isSharedArrayBuffer(e.buffer))throw f.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};f.converters.DataView=function(e,A={}){if(f.util.Type(e)!=="Object"||!HA.isDataView(e))throw f.errors.exception({header:"DataView",message:"Object is not a DataView."});if(A.allowShared===!1&&HA.isSharedArrayBuffer(e.buffer))throw f.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};f.converters.BufferSource=function(e,A={}){if(HA.isAnyArrayBuffer(e))return f.converters.ArrayBuffer(e,A);if(HA.isTypedArray(e))return f.converters.TypedArray(e,e.constructor);if(HA.isDataView(e))return f.converters.DataView(e,A);throw new TypeError(`Could not convert ${e} to a BufferSource.`)};f.converters["sequence<ByteString>"]=f.sequenceConverter(f.converters.ByteString);f.converters["sequence<sequence<ByteString>>"]=f.sequenceConverter(f.converters["sequence<ByteString>"]);f.converters["record<ByteString, ByteString>"]=f.recordConverter(f.converters.ByteString,f.converters.ByteString);v4.exports={webidl:f}});var bA=E((HN,U4)=>{var Ii=require("assert"),{atob:AB}=require("buffer"),{isomorphicDecode:tB}=QA(),aB=new TextEncoder,hi=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/,rB=/(\u000A|\u000D|\u0009|\u0020)/,iB=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function sB(e){Ii(e.protocol==="data:");let A=S4(e,!0);A=A.slice(5);let t={position:0},a=Y1(",",A,t),r=a.length;if(a=pB(a,!0,!0),t.position>=A.length)return"failure";t.position++;let i=A.slice(r+1),s=k4(i);if(/;(\u0020){0,}base64$/i.test(a)){let o=tB(s);if(s=oB(o),s==="failure")return"failure";a=a.slice(0,-6),a=a.replace(/(\u0020)+$/,""),a=a.slice(0,-1)}a.startsWith(";")&&(a="text/plain"+a);let n=Fo(a);return n==="failure"&&(n=Fo("text/plain;charset=US-ASCII")),{mimeType:n,body:s}}function S4(e,A=!1){let t=e.href;if(!A)return t;let a=t.lastIndexOf("#");return a===-1?t:t.slice(0,a)}function fi(e,A,t){let a="";for(;t.position<A.length&&e(A[t.position]);)a+=A[t.position],t.position++;return a}function Y1(e,A,t){let a=A.indexOf(e,t.position),r=t.position;return a===-1?(t.position=A.length,A.slice(r)):(t.position=a,A.slice(r,t.position))}function k4(e){let A=aB.encode(e);return nB(A)}function nB(e){let A=[];for(let t=0;t<e.length;t++){let a=e[t];if(a!==37)A.push(a);else if(a===37&&!/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(e[t+1],e[t+2])))A.push(37);else{let r=String.fromCharCode(e[t+1],e[t+2]),i=Number.parseInt(r,16);A.push(i),t+=2}}return Uint8Array.from(A)}function Fo(e){e=ko(e,!0,!0);let A={position:0},t=Y1("/",e,A);if(t.length===0||!hi.test(t)||A.position>e.length)return"failure";A.position++;let a=Y1(";",e,A);if(a=ko(a,!1,!0),a.length===0||!hi.test(a))return"failure";let r=t.toLowerCase(),i=a.toLowerCase(),s={type:r,subtype:i,parameters:new Map,essence:`${r}/${i}`};for(;A.position<e.length;){A.position++,fi(d=>rB.test(d),e,A);let n=fi(d=>d!==";"&&d!=="=",e,A);if(n=n.toLowerCase(),A.position<e.length){if(e[A.position]===";")continue;A.position++}if(A.position>e.length)break;let o=null;if(e[A.position]==='"')o=F4(e,A,!0),Y1(";",e,A);else if(o=Y1(";",e,A),o=ko(o,!1,!0),o.length===0)continue;n.length!==0&&hi.test(n)&&(o.length===0||iB.test(o))&&!s.parameters.has(n)&&s.parameters.set(n,o)}return s}function oB(e){if(e=e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,""),e.length%4===0&&(e=e.replace(/=?=$/,"")),e.length%4===1||/[^+/0-9A-Za-z]/.test(e))return"failure";let A=AB(e),t=new Uint8Array(A.length);for(let a=0;a<A.length;a++)t[a]=A.charCodeAt(a);return t}function F4(e,A,t){let a=A.position,r="";for(Ii(e[A.position]==='"'),A.position++;r+=fi(s=>s!=='"'&&s!=="\\",e,A),!(A.position>=e.length);){let i=e[A.position];if(A.position++,i==="\\"){if(A.position>=e.length){r+="\\";break}r+=e[A.position],A.position++}else{Ii(i==='"');break}}return t?r:e.slice(a,A.position)}function dB(e){Ii(e!=="failure");let{parameters:A,essence:t}=e,a=t;for(let[r,i]of A.entries())a+=";",a+=r,a+="=",hi.test(i)||(i=i.replace(/(\\|")/g,"\\$1"),i='"'+i,i+='"'),a+=i;return a}function N4(e){return e==="\r"||e===` +`||e===" "||e===" "}function ko(e,A=!0,t=!0){let a=0,r=e.length-1;if(A)for(;a<e.length&&N4(e[a]);a++);if(t)for(;r>0&&N4(e[r]);r--);return e.slice(a,r+1)}function b4(e){return e==="\r"||e===` +`||e===" "||e==="\f"||e===" "}function pB(e,A=!0,t=!0){let a=0,r=e.length-1;if(A)for(;a<e.length&&b4(e[a]);a++);if(t)for(;r>0&&b4(e[r]);r--);return e.slice(a,r+1)}U4.exports={dataURLProcessor:sB,URLSerializer:S4,collectASequenceOfCodePoints:fi,collectASequenceOfCodePointsFast:Y1,stringPercentDecode:k4,parseMIMEType:Fo,collectAnHTTPQuotedString:F4,serializeAMimeType:dB}});var wi=E((ON,Y4)=>{"use strict";var{Blob:T4,File:L4}=require("buffer"),{types:Uo}=require("util"),{kState:$e}=nt(),{isBlobLike:V4}=QA(),{webidl:H}=Te(),{parseMIMEType:lB,serializeAMimeType:gB}=bA(),{kEnumerableProperty:M4}=_(),Wa=class e extends T4{constructor(A,t,a={}){H.argumentLengthCheck(arguments,2,{header:"File constructor"}),A=H.converters["sequence<BlobPart>"](A),t=H.converters.USVString(t),a=H.converters.FilePropertyBag(a);let r=t,i=a.type,s;e:{if(i){if(i=lB(i),i==="failure"){i="";break e}i=gB(i).toLowerCase()}s=a.lastModified}super(cB(A,a),{type:i}),this[$e]={name:r,lastModified:s,type:i}}get name(){return H.brandCheck(this,e),this[$e].name}get lastModified(){return H.brandCheck(this,e),this[$e].lastModified}get type(){return H.brandCheck(this,e),this[$e].type}},Lo=class e{constructor(A,t,a={}){let r=t,i=a.type,s=a.lastModified??Date.now();this[$e]={blobLike:A,name:r,type:i,lastModified:s}}stream(...A){return H.brandCheck(this,e),this[$e].blobLike.stream(...A)}arrayBuffer(...A){return H.brandCheck(this,e),this[$e].blobLike.arrayBuffer(...A)}slice(...A){return H.brandCheck(this,e),this[$e].blobLike.slice(...A)}text(...A){return H.brandCheck(this,e),this[$e].blobLike.text(...A)}get size(){return H.brandCheck(this,e),this[$e].blobLike.size}get type(){return H.brandCheck(this,e),this[$e].blobLike.type}get name(){return H.brandCheck(this,e),this[$e].name}get lastModified(){return H.brandCheck(this,e),this[$e].lastModified}get[Symbol.toStringTag](){return"File"}};Object.defineProperties(Wa.prototype,{[Symbol.toStringTag]:{value:"File",configurable:!0},name:M4,lastModified:M4});H.converters.Blob=H.interfaceConverter(T4);H.converters.BlobPart=function(e,A){if(H.util.Type(e)==="Object"){if(V4(e))return H.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||Uo.isAnyArrayBuffer(e))return H.converters.BufferSource(e,A)}return H.converters.USVString(e,A)};H.converters["sequence<BlobPart>"]=H.sequenceConverter(H.converters.BlobPart);H.converters.FilePropertyBag=H.dictionaryConverter([{key:"lastModified",converter:H.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:H.converters.DOMString,defaultValue:""},{key:"endings",converter:e=>(e=H.converters.DOMString(e),e=e.toLowerCase(),e!=="native"&&(e="transparent"),e),defaultValue:"transparent"}]);function cB(e,A){let t=[];for(let a of e)if(typeof a=="string"){let r=a;A.endings==="native"&&(r=uB(r)),t.push(new TextEncoder().encode(r))}else Uo.isAnyArrayBuffer(a)||Uo.isTypedArray(a)?a.buffer?t.push(new Uint8Array(a.buffer,a.byteOffset,a.byteLength)):t.push(new Uint8Array(a)):V4(a)&&t.push(a);return t}function uB(e){let A=` `;return process.platform==="win32"&&(A=`\r -`),e.replace(/\r?\n/g,A)}function Mh(e){return q4&&e instanceof q4||e instanceof $a||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}W4.exports={File:$a,FileLike:_o,isFileLike:Mh}});var Fi=E((kb,K4)=>{"use strict";var{isBlobLike:ki,toUSVString:Th,makeIterator:qo}=mA(),{kState:Le}=gt(),{File:z4,FileLike:Z4,isFileLike:Vh}=Si(),{webidl:P}=Ye(),{Blob:Yh,File:Ho}=require("buffer"),j4=Ho??z4,q1=class e{constructor(A){if(A!==void 0)throw P.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[Le]=[]}append(A,t,a=void 0){if(P.brandCheck(this,e),P.argumentLengthCheck(arguments,2,{header:"FormData.append"}),arguments.length===3&&!ki(t))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");A=P.converters.USVString(A),t=ki(t)?P.converters.Blob(t,{strict:!1}):P.converters.USVString(t),a=arguments.length===3?P.converters.USVString(a):void 0;let r=X4(A,t,a);this[Le].push(r)}delete(A){P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,{header:"FormData.delete"}),A=P.converters.USVString(A),this[Le]=this[Le].filter(t=>t.name!==A)}get(A){P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,{header:"FormData.get"}),A=P.converters.USVString(A);let t=this[Le].findIndex(a=>a.name===A);return t===-1?null:this[Le][t].value}getAll(A){return P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,{header:"FormData.getAll"}),A=P.converters.USVString(A),this[Le].filter(t=>t.name===A).map(t=>t.value)}has(A){return P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,{header:"FormData.has"}),A=P.converters.USVString(A),this[Le].findIndex(t=>t.name===A)!==-1}set(A,t,a=void 0){if(P.brandCheck(this,e),P.argumentLengthCheck(arguments,2,{header:"FormData.set"}),arguments.length===3&&!ki(t))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");A=P.converters.USVString(A),t=ki(t)?P.converters.Blob(t,{strict:!1}):P.converters.USVString(t),a=arguments.length===3?Th(a):void 0;let r=X4(A,t,a),i=this[Le].findIndex(s=>s.name===A);i!==-1?this[Le]=[...this[Le].slice(0,i),r,...this[Le].slice(i+1).filter(s=>s.name!==A)]:this[Le].push(r)}entries(){return P.brandCheck(this,e),qo(()=>this[Le].map(A=>[A.name,A.value]),"FormData","key+value")}keys(){return P.brandCheck(this,e),qo(()=>this[Le].map(A=>[A.name,A.value]),"FormData","key")}values(){return P.brandCheck(this,e),qo(()=>this[Le].map(A=>[A.name,A.value]),"FormData","value")}forEach(A,t=globalThis){if(P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,{header:"FormData.forEach"}),typeof A!="function")throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.");for(let[a,r]of this)A.apply(t,[r,a,this])}};q1.prototype[Symbol.iterator]=q1.prototype.entries;Object.defineProperties(q1.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function X4(e,A,t){if(e=Buffer.from(e).toString("utf8"),typeof A=="string")A=Buffer.from(A).toString("utf8");else if(Vh(A)||(A=A instanceof Yh?new j4([A],"blob",{type:A.type}):new Z4(A,"blob",{type:A.type})),t!==void 0){let a={type:A.type,lastModified:A.lastModified};A=Ho&&A instanceof Ho||A instanceof z4?new j4([A],t,a):new Z4(A,t,a)}return{name:e,value:A}}K4.exports={FormData:q1}});var er=E((Fb,n6)=>{"use strict";var Jh=D4(),H1=_(),{ReadableStreamFrom:Gh,isBlobLike:$4,isReadableStreamLike:xh,readableStreamClose:_h,createDeferredPromise:qh,fullyReadBody:Hh}=mA(),{FormData:e6}=Fi(),{kState:ut}=gt(),{webidl:Oo}=Ye(),{DOMException:a6,structuredClone:Oh}=Mt(),{Blob:Ph,File:Wh}=require("buffer"),{kBodyUsed:Zh}=te(),Po=require("assert"),{isErrored:jh}=_(),{isUint8Array:r6,isArrayBuffer:Xh}=require("util/types"),{File:zh}=Si(),{parseMIMEType:Kh,serializeAMimeType:$h}=LA(),ct=globalThis.ReadableStream,A6=Wh??zh;function i6(e,A=!1){ct||(ct=require("stream/web").ReadableStream);let t=null;e instanceof ct?t=e:$4(e)?t=e.stream():t=new ct({async pull(o){o.enqueue(typeof r=="string"?new TextEncoder().encode(r):r),queueMicrotask(()=>_h(o))},start(){},type:void 0}),Po(xh(t));let a=null,r=null,i=null,s=null;if(typeof e=="string")r=e,s="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)r=e.toString(),s="application/x-www-form-urlencoded;charset=UTF-8";else if(Xh(e))r=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))r=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(H1.isFormDataLike(e)){let o=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,d=`--${o}\r +`),e.replace(/\r?\n/g,A)}function EB(e){return L4&&e instanceof L4||e instanceof Wa||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}Y4.exports={File:Wa,FileLike:Lo,isFileLike:EB}});var Di=E((PN,q4)=>{"use strict";var{isBlobLike:yi,toUSVString:QB,makeIterator:Mo}=QA(),{kState:Ue}=nt(),{File:_4,FileLike:J4,isFileLike:CB}=wi(),{webidl:P}=Te(),{Blob:mB,File:To}=require("buffer"),G4=To??_4,J1=class e{constructor(A){if(A!==void 0)throw P.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[Ue]=[]}append(A,t,a=void 0){if(P.brandCheck(this,e),P.argumentLengthCheck(arguments,2,{header:"FormData.append"}),arguments.length===3&&!yi(t))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");A=P.converters.USVString(A),t=yi(t)?P.converters.Blob(t,{strict:!1}):P.converters.USVString(t),a=arguments.length===3?P.converters.USVString(a):void 0;let r=x4(A,t,a);this[Ue].push(r)}delete(A){P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,{header:"FormData.delete"}),A=P.converters.USVString(A),this[Ue]=this[Ue].filter(t=>t.name!==A)}get(A){P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,{header:"FormData.get"}),A=P.converters.USVString(A);let t=this[Ue].findIndex(a=>a.name===A);return t===-1?null:this[Ue][t].value}getAll(A){return P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,{header:"FormData.getAll"}),A=P.converters.USVString(A),this[Ue].filter(t=>t.name===A).map(t=>t.value)}has(A){return P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,{header:"FormData.has"}),A=P.converters.USVString(A),this[Ue].findIndex(t=>t.name===A)!==-1}set(A,t,a=void 0){if(P.brandCheck(this,e),P.argumentLengthCheck(arguments,2,{header:"FormData.set"}),arguments.length===3&&!yi(t))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");A=P.converters.USVString(A),t=yi(t)?P.converters.Blob(t,{strict:!1}):P.converters.USVString(t),a=arguments.length===3?QB(a):void 0;let r=x4(A,t,a),i=this[Ue].findIndex(s=>s.name===A);i!==-1?this[Ue]=[...this[Ue].slice(0,i),r,...this[Ue].slice(i+1).filter(s=>s.name!==A)]:this[Ue].push(r)}entries(){return P.brandCheck(this,e),Mo(()=>this[Ue].map(A=>[A.name,A.value]),"FormData","key+value")}keys(){return P.brandCheck(this,e),Mo(()=>this[Ue].map(A=>[A.name,A.value]),"FormData","key")}values(){return P.brandCheck(this,e),Mo(()=>this[Ue].map(A=>[A.name,A.value]),"FormData","value")}forEach(A,t=globalThis){if(P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,{header:"FormData.forEach"}),typeof A!="function")throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.");for(let[a,r]of this)A.apply(t,[r,a,this])}};J1.prototype[Symbol.iterator]=J1.prototype.entries;Object.defineProperties(J1.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function x4(e,A,t){if(e=Buffer.from(e).toString("utf8"),typeof A=="string")A=Buffer.from(A).toString("utf8");else if(CB(A)||(A=A instanceof mB?new G4([A],"blob",{type:A.type}):new J4(A,"blob",{type:A.type})),t!==void 0){let a={type:A.type,lastModified:A.lastModified};A=To&&A instanceof To||A instanceof _4?new G4([A],t,a):new J4(A,t,a)}return{name:e,value:A}}q4.exports={FormData:J1}});var Za=E((WN,K4)=>{"use strict";var BB=Q4(),G1=_(),{ReadableStreamFrom:hB,isBlobLike:H4,isReadableStreamLike:IB,readableStreamClose:fB,createDeferredPromise:wB,fullyReadBody:yB}=QA(),{FormData:O4}=Di(),{kState:dt}=nt(),{webidl:Vo}=Te(),{DOMException:Z4,structuredClone:DB}=Nt(),{Blob:RB,File:vB}=require("buffer"),{kBodyUsed:NB}=te(),Yo=require("assert"),{isErrored:bB}=_(),{isUint8Array:j4,isArrayBuffer:SB}=require("util/types"),{File:kB}=wi(),{parseMIMEType:FB,serializeAMimeType:UB}=bA(),ot=globalThis.ReadableStream,P4=vB??kB;function X4(e,A=!1){ot||(ot=require("stream/web").ReadableStream);let t=null;e instanceof ot?t=e:H4(e)?t=e.stream():t=new ot({async pull(o){o.enqueue(typeof r=="string"?new TextEncoder().encode(r):r),queueMicrotask(()=>fB(o))},start(){},type:void 0}),Yo(IB(t));let a=null,r=null,i=null,s=null;if(typeof e=="string")r=e,s="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)r=e.toString(),s="application/x-www-form-urlencoded;charset=UTF-8";else if(SB(e))r=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))r=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(G1.isFormDataLike(e)){let o=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,d=`--${o}\r Content-Disposition: form-data`;let l=C=>C.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),p=C=>C.replace(/\r?\n|\r/g,`\r -`),g=new TextEncoder,c=[],u=new Uint8Array([13,10]);i=0;let Q=!1;for(let[C,h]of e)if(typeof h=="string"){let f=g.encode(d+`; name="${l(p(C))}"\r +`),g=new TextEncoder,c=[],u=new Uint8Array([13,10]);i=0;let Q=!1;for(let[C,B]of e)if(typeof B=="string"){let w=g.encode(d+`; name="${l(p(C))}"\r \r -${p(h)}\r -`);c.push(f),i+=f.byteLength}else{let f=g.encode(`${d}; name="${l(p(C))}"`+(h.name?`; filename="${l(h.name)}"`:"")+`\r -Content-Type: ${h.type||"application/octet-stream"}\r +${p(B)}\r +`);c.push(w),i+=w.byteLength}else{let w=g.encode(`${d}; name="${l(p(C))}"`+(B.name?`; filename="${l(B.name)}"`:"")+`\r +Content-Type: ${B.type||"application/octet-stream"}\r \r -`);c.push(f,h,u),typeof h.size=="number"?i+=f.byteLength+h.size+u.byteLength:Q=!0}let B=g.encode(`--${o}--`);c.push(B),i+=B.byteLength,Q&&(i=null),r=e,a=async function*(){for(let C of c)C.stream?yield*C.stream():yield C},s="multipart/form-data; boundary="+o}else if($4(e))r=e,i=e.size,e.type&&(s=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(A)throw new TypeError("keepalive");if(H1.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");t=e instanceof ct?e:Gh(e)}if((typeof r=="string"||H1.isBuffer(r))&&(i=Buffer.byteLength(r)),a!=null){let o;t=new ct({async start(){o=a(e)[Symbol.asyncIterator]()},async pull(d){let{value:l,done:p}=await o.next();return p?queueMicrotask(()=>{d.close()}):jh(t)||d.enqueue(new Uint8Array(l)),d.desiredSize>0},async cancel(d){await o.return()},type:void 0})}return[{stream:t,source:r,length:i},s]}function em(e,A=!1){return ct||(ct=require("stream/web").ReadableStream),e instanceof ct&&(Po(!H1.isDisturbed(e),"The body has already been consumed."),Po(!e.locked,"The stream is locked.")),i6(e,A)}function Am(e){let[A,t]=e.stream.tee(),a=Oh(t,{transfer:[t]}),[,r]=a.tee();return e.stream=A,{stream:r,length:e.length,source:e.source}}async function*t6(e){if(e)if(r6(e))yield e;else{let A=e.stream;if(H1.isDisturbed(A))throw new TypeError("The body has already been consumed.");if(A.locked)throw new TypeError("The stream is locked.");A[Zh]=!0,yield*A}}function Wo(e){if(e.aborted)throw new a6("The operation was aborted.","AbortError")}function tm(e){return{blob(){return Ui(this,t=>{let a=sm(this);return a==="failure"?a="":a&&(a=$h(a)),new Ph([t],{type:a})},e)},arrayBuffer(){return Ui(this,t=>new Uint8Array(t).buffer,e)},text(){return Ui(this,s6,e)},json(){return Ui(this,im,e)},async formData(){Oo.brandCheck(this,e),Wo(this[ut]);let t=this.headers.get("Content-Type");if(/multipart\/form-data/.test(t)){let a={};for(let[n,o]of this.headers)a[n.toLowerCase()]=o;let r=new e6,i;try{i=Jh({headers:a,defParamCharset:"utf8"})}catch(n){throw new a6(`${n}`,"AbortError")}i.on("field",(n,o)=>{r.append(n,o)}),i.on("file",(n,o,d)=>{let{filename:l,encoding:p,mimeType:g}=d,c=[];if(p==="base64"||p.toLowerCase()==="base64"){let u="";o.on("data",Q=>{u+=Q.toString().replace(/[\r\n]/gm,"");let B=u.length-u.length%4;c.push(Buffer.from(u.slice(0,B),"base64")),u=u.slice(B)}),o.on("end",()=>{c.push(Buffer.from(u,"base64")),r.append(n,new A6(c,l,{type:g}))})}else o.on("data",u=>{c.push(u)}),o.on("end",()=>{r.append(n,new A6(c,l,{type:g}))})});let s=new Promise((n,o)=>{i.on("finish",n),i.on("error",d=>o(new TypeError(d)))});if(this.body!==null)for await(let n of t6(this[ut].body))i.write(n);return i.end(),await s,r}else if(/application\/x-www-form-urlencoded/.test(t)){let a;try{let i="",s=new TextDecoder("utf-8",{ignoreBOM:!0});for await(let n of t6(this[ut].body)){if(!r6(n))throw new TypeError("Expected Uint8Array chunk");i+=s.decode(n,{stream:!0})}i+=s.decode(),a=new URLSearchParams(i)}catch(i){throw Object.assign(new TypeError,{cause:i})}let r=new e6;for(let[i,s]of a)r.append(i,s);return r}else throw await Promise.resolve(),Wo(this[ut]),Oo.errors.exception({header:`${e.name}.formData`,message:"Could not parse content as FormData."})}}}function am(e){Object.assign(e.prototype,tm(e))}async function Ui(e,A,t){if(Oo.brandCheck(e,t),Wo(e[ut]),rm(e[ut].body))throw new TypeError("Body is unusable");let a=qh(),r=s=>a.reject(s),i=s=>{try{a.resolve(A(s))}catch(n){r(n)}};return e[ut].body==null?(i(new Uint8Array),a.promise):(Hh(e[ut].body,i,r),a.promise)}function rm(e){return e!=null&&(e.stream.locked||H1.isDisturbed(e.stream))}function s6(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),new TextDecoder().decode(e))}function im(e){return JSON.parse(s6(e))}function sm(e){let{headersList:A}=e[ut],t=A.get("content-type");return t===null?"failure":Kh(t)}n6.exports={extractBody:i6,safelyExtractBody:em,cloneBody:Am,mixinBody:am}});var l6=E((Ub,p6)=>{"use strict";var{InvalidArgumentError:ae,NotSupportedError:nm}=z(),Et=require("assert"),aA=_(),o6=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,d6=/[^\t\x20-\x7e\x80-\xff]/,om=/[^\u0021-\u00ff]/,Qt=Symbol("handler"),ue={},Zo;try{let e=require("diagnostics_channel");ue.create=e.channel("undici:request:create"),ue.bodySent=e.channel("undici:request:bodySent"),ue.headers=e.channel("undici:request:headers"),ue.trailers=e.channel("undici:request:trailers"),ue.error=e.channel("undici:request:error")}catch{ue.create={hasSubscribers:!1},ue.bodySent={hasSubscribers:!1},ue.headers={hasSubscribers:!1},ue.trailers={hasSubscribers:!1},ue.error={hasSubscribers:!1}}var zo=class{constructor(A,{path:t,method:a,body:r,headers:i,query:s,idempotent:n,blocking:o,upgrade:d,headersTimeout:l,bodyTimeout:p,reset:g,throwOnError:c},u){if(typeof t!="string")throw new ae("path must be a string");if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&a!=="CONNECT")throw new ae("path must be an absolute URL or start with a slash");if(om.exec(t)!==null)throw new ae("invalid request path");if(typeof a!="string")throw new ae("method must be a string");if(o6.exec(a)===null)throw new ae("invalid request method");if(d&&typeof d!="string")throw new ae("upgrade must be a string");if(l!=null&&(!Number.isFinite(l)||l<0))throw new ae("invalid headersTimeout");if(p!=null&&(!Number.isFinite(p)||p<0))throw new ae("invalid bodyTimeout");if(g!=null&&typeof g!="boolean")throw new ae("invalid reset");if(this.headersTimeout=l,this.bodyTimeout=p,this.throwOnError=c===!0,this.method=a,r==null)this.body=null;else if(aA.isStream(r))this.body=r;else if(aA.isBuffer(r))this.body=r.byteLength?r:null;else if(ArrayBuffer.isView(r))this.body=r.buffer.byteLength?Buffer.from(r.buffer,r.byteOffset,r.byteLength):null;else if(r instanceof ArrayBuffer)this.body=r.byteLength?Buffer.from(r):null;else if(typeof r=="string")this.body=r.length?Buffer.from(r):null;else if(aA.isFormDataLike(r)||aA.isIterable(r)||aA.isBlobLike(r))this.body=r;else throw new ae("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=d||null,this.path=s?aA.buildURL(t,s):t,this.origin=A,this.idempotent=n??(a==="HEAD"||a==="GET"),this.blocking=o??!1,this.reset=g??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers="",Array.isArray(i)){if(i.length%2!==0)throw new ae("headers array must be even");for(let Q=0;Q<i.length;Q+=2)Xo(this,i[Q],i[Q+1])}else if(i&&typeof i=="object"){let Q=Object.keys(i);for(let B=0;B<Q.length;B++){let C=Q[B];Xo(this,C,i[C])}}else if(i!=null)throw new ae("headers must be an object or an array");if(aA.isFormDataLike(this.body)){if(aA.nodeMajor<16||aA.nodeMajor===16&&aA.nodeMinor<8)throw new ae("Form-Data bodies are only supported in node v16.8 and newer.");Zo||(Zo=er().extractBody);let[Q,B]=Zo(r);this.contentType==null&&(this.contentType=B,this.headers+=`content-type: ${B}\r -`),this.body=Q.stream,this.contentLength=Q.length}else aA.isBlobLike(r)&&this.contentType==null&&r.type&&(this.contentType=r.type,this.headers+=`content-type: ${r.type}\r -`);aA.validateHandler(u,a,d),this.servername=aA.getServerName(this.host),this[Qt]=u,ue.create.hasSubscribers&&ue.create.publish({request:this})}onBodySent(A){if(this[Qt].onBodySent)try{this[Qt].onBodySent(A)}catch(t){this.onError(t)}}onRequestSent(){ue.bodySent.hasSubscribers&&ue.bodySent.publish({request:this})}onConnect(A){return Et(!this.aborted),Et(!this.completed),this[Qt].onConnect(A)}onHeaders(A,t,a,r){return Et(!this.aborted),Et(!this.completed),ue.headers.hasSubscribers&&ue.headers.publish({request:this,response:{statusCode:A,headers:t,statusText:r}}),this[Qt].onHeaders(A,t,a,r)}onData(A){return Et(!this.aborted),Et(!this.completed),this[Qt].onData(A)}onUpgrade(A,t,a){return Et(!this.aborted),Et(!this.completed),this[Qt].onUpgrade(A,t,a)}onComplete(A){return Et(!this.aborted),this.completed=!0,ue.trailers.hasSubscribers&&ue.trailers.publish({request:this,trailers:A}),this[Qt].onComplete(A)}onError(A){if(ue.error.hasSubscribers&&ue.error.publish({request:this,error:A}),!this.aborted)return this.aborted=!0,this[Qt].onError(A)}addHeader(A,t){return Xo(this,A,t),this}};function jo(e,A){if(A&&typeof A=="object")throw new ae(`invalid ${e} header`);if(A=A!=null?`${A}`:"",d6.exec(A)!==null)throw new ae(`invalid ${e} header`);return`${e}: ${A}\r -`}function Xo(e,A,t){if(t&&typeof t=="object"&&!Array.isArray(t))throw new ae(`invalid ${A} header`);if(t===void 0)return;if(e.host===null&&A.length===4&&A.toLowerCase()==="host"){if(d6.exec(t)!==null)throw new ae(`invalid ${A} header`);e.host=t}else if(e.contentLength===null&&A.length===14&&A.toLowerCase()==="content-length"){if(e.contentLength=parseInt(t,10),!Number.isFinite(e.contentLength))throw new ae("invalid content-length header")}else if(e.contentType===null&&A.length===12&&A.toLowerCase()==="content-type")e.contentType=t,e.headers+=jo(A,t);else{if(A.length===17&&A.toLowerCase()==="transfer-encoding")throw new ae("invalid transfer-encoding header");if(A.length===10&&A.toLowerCase()==="connection"){let a=typeof t=="string"?t.toLowerCase():null;if(a!=="close"&&a!=="keep-alive")throw new ae("invalid connection header");a==="close"&&(e.reset=!0)}else{if(A.length===10&&A.toLowerCase()==="keep-alive")throw new ae("invalid keep-alive header");if(A.length===7&&A.toLowerCase()==="upgrade")throw new ae("invalid upgrade header");if(A.length===6&&A.toLowerCase()==="expect")throw new nm("expect header not supported");if(o6.exec(A)===null)throw new ae("invalid header key");if(Array.isArray(t))for(let a=0;a<t.length;a++)e.headers+=jo(A,t[a]);else e.headers+=jo(A,t)}}}p6.exports=zo});var Li=E((Lb,g6)=>{"use strict";var dm=require("events"),Ko=class extends dm{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}};g6.exports=Ko});var tr=E((Mb,c6)=>{"use strict";var pm=Li(),{ClientDestroyedError:$o,ClientClosedError:lm,InvalidArgumentError:O1}=z(),{kDestroy:gm,kClose:cm,kDispatch:ed,kInterceptors:a1}=te(),P1=Symbol("destroyed"),Ar=Symbol("closed"),Ct=Symbol("onDestroyed"),W1=Symbol("onClosed"),Mi=Symbol("Intercepted Dispatch"),Ad=class extends pm{constructor(){super(),this[P1]=!1,this[Ct]=null,this[Ar]=!1,this[W1]=[]}get destroyed(){return this[P1]}get closed(){return this[Ar]}get interceptors(){return this[a1]}set interceptors(A){if(A){for(let t=A.length-1;t>=0;t--)if(typeof this[a1][t]!="function")throw new O1("interceptor must be an function")}this[a1]=A}close(A){if(A===void 0)return new Promise((a,r)=>{this.close((i,s)=>i?r(i):a(s))});if(typeof A!="function")throw new O1("invalid callback");if(this[P1]){queueMicrotask(()=>A(new $o,null));return}if(this[Ar]){this[W1]?this[W1].push(A):queueMicrotask(()=>A(null,null));return}this[Ar]=!0,this[W1].push(A);let t=()=>{let a=this[W1];this[W1]=null;for(let r=0;r<a.length;r++)a[r](null,null)};this[cm]().then(()=>this.destroy()).then(()=>{queueMicrotask(t)})}destroy(A,t){if(typeof A=="function"&&(t=A,A=null),t===void 0)return new Promise((r,i)=>{this.destroy(A,(s,n)=>s?i(s):r(n))});if(typeof t!="function")throw new O1("invalid callback");if(this[P1]){this[Ct]?this[Ct].push(t):queueMicrotask(()=>t(null,null));return}A||(A=new $o),this[P1]=!0,this[Ct]=this[Ct]||[],this[Ct].push(t);let a=()=>{let r=this[Ct];this[Ct]=null;for(let i=0;i<r.length;i++)r[i](null,null)};this[gm](A).then(()=>{queueMicrotask(a)})}[Mi](A,t){if(!this[a1]||this[a1].length===0)return this[Mi]=this[ed],this[ed](A,t);let a=this[ed].bind(this);for(let r=this[a1].length-1;r>=0;r--)a=this[a1][r](a);return this[Mi]=a,a(A,t)}dispatch(A,t){if(!t||typeof t!="object")throw new O1("handler must be an object");try{if(!A||typeof A!="object")throw new O1("opts must be an object.");if(this[P1]||this[Ct])throw new $o;if(this[Ar])throw new lm;return this[Mi](A,t)}catch(a){if(typeof t.onError!="function")throw new O1("invalid onError method");return t.onError(a),!1}}};c6.exports=Ad});var ar=E((Yb,Q6)=>{"use strict";var um=require("net"),u6=require("assert"),E6=_(),{InvalidArgumentError:Em,ConnectTimeoutError:Qm}=z(),td,ad;global.FinalizationRegistry?ad=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(t=>{if(this._sessionCache.size<this._maxCachedSessions)return;let a=this._sessionCache.get(t);a!==void 0&&a.deref()===void 0&&this._sessionCache.delete(t)})}get(A){let t=this._sessionCache.get(A);return t?t.deref():null}set(A,t){this._maxCachedSessions!==0&&(this._sessionCache.set(A,new WeakRef(t)),this._sessionRegistry.register(t,A))}}:ad=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map}get(A){return this._sessionCache.get(A)}set(A,t){if(this._maxCachedSessions!==0){if(this._sessionCache.size>=this._maxCachedSessions){let{value:a}=this._sessionCache.keys().next();this._sessionCache.delete(a)}this._sessionCache.set(A,t)}}};function Cm({maxCachedSessions:e,socketPath:A,timeout:t,...a}){if(e!=null&&(!Number.isInteger(e)||e<0))throw new Em("maxCachedSessions must be a positive integer or zero");let r={path:A,...a},i=new ad(e??100);return t=t??1e4,function({hostname:n,host:o,protocol:d,port:l,servername:p,localAddress:g,httpSocket:c},u){let Q;if(d==="https:"){td||(td=require("tls")),p=p||r.servername||E6.getServerName(o)||null;let C=p||n,h=i.get(C)||null;u6(C),Q=td.connect({highWaterMark:16384,...r,servername:p,session:h,localAddress:g,socket:c,port:l||443,host:n}),Q.on("session",function(f){i.set(C,f)})}else u6(!c,"httpSocket can only be sent on TLS update"),Q=um.connect({highWaterMark:64*1024,...r,localAddress:g,port:l||80,host:n});if(r.keepAlive==null||r.keepAlive){let C=r.keepAliveInitialDelay===void 0?6e4:r.keepAliveInitialDelay;Q.setKeepAlive(!0,C)}let B=Bm(()=>hm(Q),t);return Q.setNoDelay(!0).once(d==="https:"?"secureConnect":"connect",function(){if(B(),u){let C=u;u=null,C(null,this)}}).on("error",function(C){if(B(),u){let h=u;u=null,h(C)}}),Q}}function Bm(e,A){if(!A)return()=>{};let t=null,a=null,r=setTimeout(()=>{t=setImmediate(()=>{process.platform==="win32"?a=setImmediate(()=>e()):e()})},A);return()=>{clearTimeout(r),clearImmediate(t),clearImmediate(a)}}function hm(e){E6.destroy(e,new Qm)}Q6.exports=Cm});var C6=E(Ti=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});Ti.enumToMap=void 0;function mm(e){let A={};return Object.keys(e).forEach(t=>{let a=e[t];typeof a=="number"&&(A[t]=a)}),A}Ti.enumToMap=mm});var B6=E(I=>{"use strict";Object.defineProperty(I,"__esModule",{value:!0});I.SPECIAL_HEADERS=I.HEADER_STATE=I.MINOR=I.MAJOR=I.CONNECTION_TOKEN_CHARS=I.HEADER_CHARS=I.TOKEN=I.STRICT_TOKEN=I.HEX=I.URL_CHAR=I.STRICT_URL_CHAR=I.USERINFO_CHARS=I.MARK=I.ALPHANUM=I.NUM=I.HEX_MAP=I.NUM_MAP=I.ALPHA=I.FINISH=I.H_METHOD_MAP=I.METHOD_MAP=I.METHODS_RTSP=I.METHODS_ICE=I.METHODS_HTTP=I.METHODS=I.LENIENT_FLAGS=I.FLAGS=I.TYPE=I.ERROR=void 0;var Im=C6(),fm;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(fm=I.ERROR||(I.ERROR={}));var wm;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(wm=I.TYPE||(I.TYPE={}));var ym;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(ym=I.FLAGS||(I.FLAGS={}));var Dm;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(Dm=I.LENIENT_FLAGS||(I.LENIENT_FLAGS={}));var v;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(v=I.METHODS||(I.METHODS={}));I.METHODS_HTTP=[v.DELETE,v.GET,v.HEAD,v.POST,v.PUT,v.CONNECT,v.OPTIONS,v.TRACE,v.COPY,v.LOCK,v.MKCOL,v.MOVE,v.PROPFIND,v.PROPPATCH,v.SEARCH,v.UNLOCK,v.BIND,v.REBIND,v.UNBIND,v.ACL,v.REPORT,v.MKACTIVITY,v.CHECKOUT,v.MERGE,v["M-SEARCH"],v.NOTIFY,v.SUBSCRIBE,v.UNSUBSCRIBE,v.PATCH,v.PURGE,v.MKCALENDAR,v.LINK,v.UNLINK,v.PRI,v.SOURCE];I.METHODS_ICE=[v.SOURCE];I.METHODS_RTSP=[v.OPTIONS,v.DESCRIBE,v.ANNOUNCE,v.SETUP,v.PLAY,v.PAUSE,v.TEARDOWN,v.GET_PARAMETER,v.SET_PARAMETER,v.REDIRECT,v.RECORD,v.FLUSH,v.GET,v.POST];I.METHOD_MAP=Im.enumToMap(v);I.H_METHOD_MAP={};Object.keys(I.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(I.H_METHOD_MAP[e]=I.METHOD_MAP[e])});var Rm;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(Rm=I.FINISH||(I.FINISH={}));I.ALPHA=[];for(let e=65;e<=90;e++)I.ALPHA.push(String.fromCharCode(e)),I.ALPHA.push(String.fromCharCode(e+32));I.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};I.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};I.NUM=["0","1","2","3","4","5","6","7","8","9"];I.ALPHANUM=I.ALPHA.concat(I.NUM);I.MARK=["-","_",".","!","~","*","'","(",")"];I.USERINFO_CHARS=I.ALPHANUM.concat(I.MARK).concat(["%",";",":","&","=","+","$",","]);I.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(I.ALPHANUM);I.URL_CHAR=I.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)I.URL_CHAR.push(e);I.HEX=I.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);I.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(I.ALPHANUM);I.TOKEN=I.STRICT_TOKEN.concat([" "]);I.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&I.HEADER_CHARS.push(e);I.CONNECTION_TOKEN_CHARS=I.HEADER_CHARS.filter(e=>e!==44);I.MAJOR=I.NUM_MAP;I.MINOR=I.MAJOR;var Z1;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(Z1=I.HEADER_STATE||(I.HEADER_STATE={}));I.SPECIAL_HEADERS={connection:Z1.CONNECTION,"content-length":Z1.CONTENT_LENGTH,"proxy-connection":Z1.CONNECTION,"transfer-encoding":Z1.TRANSFER_ENCODING,upgrade:Z1.UPGRADE}});var sd=E((xb,I6)=>{"use strict";var j1=_(),{kBodyUsed:rr}=te(),id=require("assert"),{InvalidArgumentError:vm}=z(),Nm=require("events"),bm=[300,301,302,303,307,308],h6=Symbol("body"),Vi=class{constructor(A){this[h6]=A,this[rr]=!1}async*[Symbol.asyncIterator](){id(!this[rr],"disturbed"),this[rr]=!0,yield*this[h6]}},rd=class{constructor(A,t,a,r){if(t!=null&&(!Number.isInteger(t)||t<0))throw new vm("maxRedirections must be a positive number");j1.validateHandler(r,a.method,a.upgrade),this.dispatch=A,this.location=null,this.abort=null,this.opts={...a,maxRedirections:0},this.maxRedirections=t,this.handler=r,this.history=[],j1.isStream(this.opts.body)?(j1.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){id(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[rr]=!1,Nm.prototype.on.call(this.opts.body,"data",function(){this[rr]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new Vi(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&j1.isIterable(this.opts.body)&&(this.opts.body=new Vi(this.opts.body))}onConnect(A){this.abort=A,this.handler.onConnect(A,{history:this.history})}onUpgrade(A,t,a){this.handler.onUpgrade(A,t,a)}onError(A){this.handler.onError(A)}onHeaders(A,t,a,r){if(this.location=this.history.length>=this.maxRedirections||j1.isDisturbed(this.opts.body)?null:Sm(A,t),this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(A,t,a,r);let{origin:i,pathname:s,search:n}=j1.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),o=n?`${s}${n}`:s;this.opts.headers=km(this.opts.headers,A===303,this.opts.origin!==i),this.opts.path=o,this.opts.origin=i,this.opts.maxRedirections=0,this.opts.query=null,A===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(A){if(!this.location)return this.handler.onData(A)}onComplete(A){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(A)}onBodySent(A){this.handler.onBodySent&&this.handler.onBodySent(A)}};function Sm(e,A){if(bm.indexOf(e)===-1)return null;for(let t=0;t<A.length;t+=2)if(A[t].toString().toLowerCase()==="location")return A[t+1]}function m6(e,A,t){return e.length===4&&e.toString().toLowerCase()==="host"||A&&e.toString().toLowerCase().indexOf("content-")===0||t&&e.length===13&&e.toString().toLowerCase()==="authorization"||t&&e.length===6&&e.toString().toLowerCase()==="cookie"}function km(e,A,t){let a=[];if(Array.isArray(e))for(let r=0;r<e.length;r+=2)m6(e[r],A,t)||a.push(e[r],e[r+1]);else if(e&&typeof e=="object")for(let r of Object.keys(e))m6(r,A,t)||a.push(r,e[r]);else id(e==null,"headers must be an object or an array");return a}I6.exports=rd});var Yi=E((qb,f6)=>{"use strict";var Fm=sd();function Um({maxRedirections:e}){return A=>function(a,r){let{maxRedirections:i=e}=a;if(!i)return A(a,r);let s=new Fm(A,i,a,r);return a={...a,maxRedirections:0},A(a,s)}}f6.exports=Um});var nd=E((Hb,w6)=>{w6.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQDscBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxweHyAhIyUoP0BBREVGR0hJSktMTU9QUVJT3gNXWVtcXWBiZWZnaGlqa2xtb3BxcnN0dXZ3eHl6e3x9foABggGFAYYBhwGJAYsBjAGNAY4BjwGQAZEBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAZkCpAKwAv4C/gILIAEiBCACRw3zAUHdASEQDP8DCyABIhAgAkcN3QFBwwEhEAz+AwsgASIBIAJHDZABQfcAIRAM/QMLIAEiASACRw2GAUHvACEQDPwDCyABIgEgAkcNf0HqACEQDPsDCyABIgEgAkcNe0HoACEQDPoDCyABIgEgAkcNeEHmACEQDPkDCyABIgEgAkcNGkEYIRAM+AMLIAEiASACRw0UQRIhEAz3AwsgASIBIAJHDVlBxQAhEAz2AwsgASIBIAJHDUpBPyEQDPUDCyABIgEgAkcNSEE8IRAM9AMLIAEiASACRw1BQTEhEAzzAwsgAC0ALkEBRg3rAwyHAgsgACABIgEgAhDAgICAAEEBRw3mASAAQgA3AyAM5wELIAAgASIBIAIQtICAgAAiEA3nASABIQEM9QILAkAgASIBIAJHDQBBBiEQDPADCyAAIAFBAWoiASACELuAgIAAIhAN6AEgASEBDDELIABCADcDIEESIRAM1QMLIAEiECACRw0rQR0hEAztAwsCQCABIgEgAkYNACABQQFqIQFBECEQDNQDC0EHIRAM7AMLIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN5QFBCCEQDOsDCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEUIRAM0gMLQQkhEAzqAwsgASEBIAApAyBQDeQBIAEhAQzyAgsCQCABIgEgAkcNAEELIRAM6QMLIAAgAUEBaiIBIAIQtoCAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3mASABIQEMDQsgACABIgEgAhC6gICAACIQDecBIAEhAQzwAgsCQCABIgEgAkcNAEEPIRAM5QMLIAEtAAAiEEE7Rg0IIBBBDUcN6AEgAUEBaiEBDO8CCyAAIAEiASACELqAgIAAIhAN6AEgASEBDPICCwNAAkAgAS0AAEHwtYCAAGotAAAiEEEBRg0AIBBBAkcN6wEgACgCBCEQIABBADYCBCAAIBAgAUEBaiIBELmAgIAAIhAN6gEgASEBDPQCCyABQQFqIgEgAkcNAAtBEiEQDOIDCyAAIAEiASACELqAgIAAIhAN6QEgASEBDAoLIAEiASACRw0GQRshEAzgAwsCQCABIgEgAkcNAEEWIRAM4AMLIABBioCAgAA2AgggACABNgIEIAAgASACELiAgIAAIhAN6gEgASEBQSAhEAzGAwsCQCABIgEgAkYNAANAAkAgAS0AAEHwt4CAAGotAAAiEEECRg0AAkAgEEF/ag4E5QHsAQDrAewBCyABQQFqIQFBCCEQDMgDCyABQQFqIgEgAkcNAAtBFSEQDN8DC0EVIRAM3gMLA0ACQCABLQAAQfC5gIAAai0AACIQQQJGDQAgEEF/ag4E3gHsAeAB6wHsAQsgAUEBaiIBIAJHDQALQRghEAzdAwsCQCABIgEgAkYNACAAQYuAgIAANgIIIAAgATYCBCABIQFBByEQDMQDC0EZIRAM3AMLIAFBAWohAQwCCwJAIAEiFCACRw0AQRohEAzbAwsgFCEBAkAgFC0AAEFzag4U3QLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gIA7gILQQAhECAAQQA2AhwgAEGvi4CAADYCECAAQQI2AgwgACAUQQFqNgIUDNoDCwJAIAEtAAAiEEE7Rg0AIBBBDUcN6AEgAUEBaiEBDOUCCyABQQFqIQELQSIhEAy/AwsCQCABIhAgAkcNAEEcIRAM2AMLQgAhESAQIQEgEC0AAEFQag435wHmAQECAwQFBgcIAAAAAAAAAAkKCwwNDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxAREhMUAAtBHiEQDL0DC0ICIREM5QELQgMhEQzkAQtCBCERDOMBC0IFIREM4gELQgYhEQzhAQtCByERDOABC0IIIREM3wELQgkhEQzeAQtCCiERDN0BC0ILIREM3AELQgwhEQzbAQtCDSERDNoBC0IOIREM2QELQg8hEQzYAQtCCiERDNcBC0ILIREM1gELQgwhEQzVAQtCDSERDNQBC0IOIREM0wELQg8hEQzSAQtCACERAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQLQAAQVBqDjflAeQBAAECAwQFBgfmAeYB5gHmAeYB5gHmAQgJCgsMDeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gEODxAREhPmAQtCAiERDOQBC0IDIREM4wELQgQhEQziAQtCBSERDOEBC0IGIREM4AELQgchEQzfAQtCCCERDN4BC0IJIREM3QELQgohEQzcAQtCCyERDNsBC0IMIREM2gELQg0hEQzZAQtCDiERDNgBC0IPIREM1wELQgohEQzWAQtCCyERDNUBC0IMIREM1AELQg0hEQzTAQtCDiERDNIBC0IPIREM0QELIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN0gFBHyEQDMADCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEkIRAMpwMLQSAhEAy/AwsgACABIhAgAhC+gICAAEF/ag4FtgEAxQIB0QHSAQtBESEQDKQDCyAAQQE6AC8gECEBDLsDCyABIgEgAkcN0gFBJCEQDLsDCyABIg0gAkcNHkHGACEQDLoDCyAAIAEiASACELKAgIAAIhAN1AEgASEBDLUBCyABIhAgAkcNJkHQACEQDLgDCwJAIAEiASACRw0AQSghEAy4AwsgAEEANgIEIABBjICAgAA2AgggACABIAEQsYCAgAAiEA3TASABIQEM2AELAkAgASIQIAJHDQBBKSEQDLcDCyAQLQAAIgFBIEYNFCABQQlHDdMBIBBBAWohAQwVCwJAIAEiASACRg0AIAFBAWohAQwXC0EqIRAMtQMLAkAgASIQIAJHDQBBKyEQDLUDCwJAIBAtAAAiAUEJRg0AIAFBIEcN1QELIAAtACxBCEYN0wEgECEBDJEDCwJAIAEiASACRw0AQSwhEAy0AwsgAS0AAEEKRw3VASABQQFqIQEMyQILIAEiDiACRw3VAUEvIRAMsgMLA0ACQCABLQAAIhBBIEYNAAJAIBBBdmoOBADcAdwBANoBCyABIQEM4AELIAFBAWoiASACRw0AC0ExIRAMsQMLQTIhECABIhQgAkYNsAMgAiAUayAAKAIAIgFqIRUgFCABa0EDaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfC7gIAAai0AAEcNAQJAIAFBA0cNAEEGIQEMlgMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLEDCyAAQQA2AgAgFCEBDNkBC0EzIRAgASIUIAJGDa8DIAIgFGsgACgCACIBaiEVIBQgAWtBCGohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUH0u4CAAGotAABHDQECQCABQQhHDQBBBSEBDJUDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAywAwsgAEEANgIAIBQhAQzYAQtBNCEQIAEiFCACRg2uAyACIBRrIAAoAgAiAWohFSAUIAFrQQVqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw0BAkAgAUEFRw0AQQchAQyUAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMrwMLIABBADYCACAUIQEM1wELAkAgASIBIAJGDQADQAJAIAEtAABBgL6AgABqLQAAIhBBAUYNACAQQQJGDQogASEBDN0BCyABQQFqIgEgAkcNAAtBMCEQDK4DC0EwIRAMrQMLAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AIBBBdmoOBNkB2gHaAdkB2gELIAFBAWoiASACRw0AC0E4IRAMrQMLQTghEAysAwsDQAJAIAEtAAAiEEEgRg0AIBBBCUcNAwsgAUEBaiIBIAJHDQALQTwhEAyrAwsDQAJAIAEtAAAiEEEgRg0AAkACQCAQQXZqDgTaAQEB2gEACyAQQSxGDdsBCyABIQEMBAsgAUEBaiIBIAJHDQALQT8hEAyqAwsgASEBDNsBC0HAACEQIAEiFCACRg2oAyACIBRrIAAoAgAiAWohFiAUIAFrQQZqIRcCQANAIBQtAABBIHIgAUGAwICAAGotAABHDQEgAUEGRg2OAyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAypAwsgAEEANgIAIBQhAQtBNiEQDI4DCwJAIAEiDyACRw0AQcEAIRAMpwMLIABBjICAgAA2AgggACAPNgIEIA8hASAALQAsQX9qDgTNAdUB1wHZAYcDCyABQQFqIQEMzAELAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgciAQIBBBv39qQf8BcUEaSRtB/wFxIhBBCUYNACAQQSBGDQACQAJAAkACQCAQQZ1/ag4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUExIRAMkQMLIAFBAWohAUEyIRAMkAMLIAFBAWohAUEzIRAMjwMLIAEhAQzQAQsgAUEBaiIBIAJHDQALQTUhEAylAwtBNSEQDKQDCwJAIAEiASACRg0AA0ACQCABLQAAQYC8gIAAai0AAEEBRg0AIAEhAQzTAQsgAUEBaiIBIAJHDQALQT0hEAykAwtBPSEQDKMDCyAAIAEiASACELCAgIAAIhAN1gEgASEBDAELIBBBAWohAQtBPCEQDIcDCwJAIAEiASACRw0AQcIAIRAMoAMLAkADQAJAIAEtAABBd2oOGAAC/gL+AoQD/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4CAP4CCyABQQFqIgEgAkcNAAtBwgAhEAygAwsgAUEBaiEBIAAtAC1BAXFFDb0BIAEhAQtBLCEQDIUDCyABIgEgAkcN0wFBxAAhEAydAwsDQAJAIAEtAABBkMCAgABqLQAAQQFGDQAgASEBDLcCCyABQQFqIgEgAkcNAAtBxQAhEAycAwsgDS0AACIQQSBGDbMBIBBBOkcNgQMgACgCBCEBIABBADYCBCAAIAEgDRCvgICAACIBDdABIA1BAWohAQyzAgtBxwAhECABIg0gAkYNmgMgAiANayAAKAIAIgFqIRYgDSABa0EFaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGQwoCAAGotAABHDYADIAFBBUYN9AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmgMLQcgAIRAgASINIAJGDZkDIAIgDWsgACgCACIBaiEWIA0gAWtBCWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBlsKAgABqLQAARw3/AgJAIAFBCUcNAEECIQEM9QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJkDCwJAIAEiDSACRw0AQckAIRAMmQMLAkACQCANLQAAIgFBIHIgASABQb9/akH/AXFBGkkbQf8BcUGSf2oOBwCAA4ADgAOAA4ADAYADCyANQQFqIQFBPiEQDIADCyANQQFqIQFBPyEQDP8CC0HKACEQIAEiDSACRg2XAyACIA1rIAAoAgAiAWohFiANIAFrQQFqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaDCgIAAai0AAEcN/QIgAUEBRg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyXAwtBywAhECABIg0gAkYNlgMgAiANayAAKAIAIgFqIRYgDSABa0EOaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGiwoCAAGotAABHDfwCIAFBDkYN8AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlgMLQcwAIRAgASINIAJGDZUDIAIgDWsgACgCACIBaiEWIA0gAWtBD2ohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBwMKAgABqLQAARw37AgJAIAFBD0cNAEEDIQEM8QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJUDC0HNACEQIAEiDSACRg2UAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQdDCgIAAai0AAEcN+gICQCABQQVHDQBBBCEBDPACCyABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyUAwsCQCABIg0gAkcNAEHOACEQDJQDCwJAAkACQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZ1/ag4TAP0C/QL9Av0C/QL9Av0C/QL9Av0C/QL9AgH9Av0C/QICA/0CCyANQQFqIQFBwQAhEAz9AgsgDUEBaiEBQcIAIRAM/AILIA1BAWohAUHDACEQDPsCCyANQQFqIQFBxAAhEAz6AgsCQCABIgEgAkYNACAAQY2AgIAANgIIIAAgATYCBCABIQFBxQAhEAz6AgtBzwAhEAySAwsgECEBAkACQCAQLQAAQXZqDgQBqAKoAgCoAgsgEEEBaiEBC0EnIRAM+AILAkAgASIBIAJHDQBB0QAhEAyRAwsCQCABLQAAQSBGDQAgASEBDI0BCyABQQFqIQEgAC0ALUEBcUUNxwEgASEBDIwBCyABIhcgAkcNyAFB0gAhEAyPAwtB0wAhECABIhQgAkYNjgMgAiAUayAAKAIAIgFqIRYgFCABa0EBaiEXA0AgFC0AACABQdbCgIAAai0AAEcNzAEgAUEBRg3HASABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAyOAwsCQCABIgEgAkcNAEHVACEQDI4DCyABLQAAQQpHDcwBIAFBAWohAQzHAQsCQCABIgEgAkcNAEHWACEQDI0DCwJAAkAgAS0AAEF2ag4EAM0BzQEBzQELIAFBAWohAQzHAQsgAUEBaiEBQcoAIRAM8wILIAAgASIBIAIQroCAgAAiEA3LASABIQFBzQAhEAzyAgsgAC0AKUEiRg2FAwymAgsCQCABIgEgAkcNAEHbACEQDIoDC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4K1AHTAQABAgMEBQYI1QELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMzAELQQkhEEEBIRRBACEXQQAhFgzLAQsCQCABIgEgAkcNAEHdACEQDIkDCyABLQAAQS5HDcwBIAFBAWohAQymAgsgASIBIAJHDcwBQd8AIRAMhwMLAkAgASIBIAJGDQAgAEGOgICAADYCCCAAIAE2AgQgASEBQdAAIRAM7gILQeAAIRAMhgMLQeEAIRAgASIBIAJGDYUDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHiwoCAAGotAABHDc0BIBRBA0YNzAEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhQMLQeIAIRAgASIBIAJGDYQDIAIgAWsgACgCACIUaiEWIAEgFGtBAmohFwNAIAEtAAAgFEHmwoCAAGotAABHDcwBIBRBAkYNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhAMLQeMAIRAgASIBIAJGDYMDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHpwoCAAGotAABHDcsBIBRBA0YNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMgwMLAkAgASIBIAJHDQBB5QAhEAyDAwsgACABQQFqIgEgAhCogICAACIQDc0BIAEhAUHWACEQDOkCCwJAIAEiASACRg0AA0ACQCABLQAAIhBBIEYNAAJAAkACQCAQQbh/ag4LAAHPAc8BzwHPAc8BzwHPAc8BAs8BCyABQQFqIQFB0gAhEAztAgsgAUEBaiEBQdMAIRAM7AILIAFBAWohAUHUACEQDOsCCyABQQFqIgEgAkcNAAtB5AAhEAyCAwtB5AAhEAyBAwsDQAJAIAEtAABB8MKAgABqLQAAIhBBAUYNACAQQX5qDgPPAdAB0QHSAQsgAUEBaiIBIAJHDQALQeYAIRAMgAMLAkAgASIBIAJGDQAgAUEBaiEBDAMLQecAIRAM/wILA0ACQCABLQAAQfDEgIAAai0AACIQQQFGDQACQCAQQX5qDgTSAdMB1AEA1QELIAEhAUHXACEQDOcCCyABQQFqIgEgAkcNAAtB6AAhEAz+AgsCQCABIgEgAkcNAEHpACEQDP4CCwJAIAEtAAAiEEF2ag4augHVAdUBvAHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHKAdUB1QEA0wELIAFBAWohAQtBBiEQDOMCCwNAAkAgAS0AAEHwxoCAAGotAABBAUYNACABIQEMngILIAFBAWoiASACRw0AC0HqACEQDPsCCwJAIAEiASACRg0AIAFBAWohAQwDC0HrACEQDPoCCwJAIAEiASACRw0AQewAIRAM+gILIAFBAWohAQwBCwJAIAEiASACRw0AQe0AIRAM+QILIAFBAWohAQtBBCEQDN4CCwJAIAEiFCACRw0AQe4AIRAM9wILIBQhAQJAAkACQCAULQAAQfDIgIAAai0AAEF/ag4H1AHVAdYBAJwCAQLXAQsgFEEBaiEBDAoLIBRBAWohAQzNAQtBACEQIABBADYCHCAAQZuSgIAANgIQIABBBzYCDCAAIBRBAWo2AhQM9gILAkADQAJAIAEtAABB8MiAgABqLQAAIhBBBEYNAAJAAkAgEEF/ag4H0gHTAdQB2QEABAHZAQsgASEBQdoAIRAM4AILIAFBAWohAUHcACEQDN8CCyABQQFqIgEgAkcNAAtB7wAhEAz2AgsgAUEBaiEBDMsBCwJAIAEiFCACRw0AQfAAIRAM9QILIBQtAABBL0cN1AEgFEEBaiEBDAYLAkAgASIUIAJHDQBB8QAhEAz0AgsCQCAULQAAIgFBL0cNACAUQQFqIQFB3QAhEAzbAgsgAUF2aiIEQRZLDdMBQQEgBHRBiYCAAnFFDdMBDMoCCwJAIAEiASACRg0AIAFBAWohAUHeACEQDNoCC0HyACEQDPICCwJAIAEiFCACRw0AQfQAIRAM8gILIBQhAQJAIBQtAABB8MyAgABqLQAAQX9qDgPJApQCANQBC0HhACEQDNgCCwJAIAEiFCACRg0AA0ACQCAULQAAQfDKgIAAai0AACIBQQNGDQACQCABQX9qDgLLAgDVAQsgFCEBQd8AIRAM2gILIBRBAWoiFCACRw0AC0HzACEQDPECC0HzACEQDPACCwJAIAEiASACRg0AIABBj4CAgAA2AgggACABNgIEIAEhAUHgACEQDNcCC0H1ACEQDO8CCwJAIAEiASACRw0AQfYAIRAM7wILIABBj4CAgAA2AgggACABNgIEIAEhAQtBAyEQDNQCCwNAIAEtAABBIEcNwwIgAUEBaiIBIAJHDQALQfcAIRAM7AILAkAgASIBIAJHDQBB+AAhEAzsAgsgAS0AAEEgRw3OASABQQFqIQEM7wELIAAgASIBIAIQrICAgAAiEA3OASABIQEMjgILAkAgASIEIAJHDQBB+gAhEAzqAgsgBC0AAEHMAEcN0QEgBEEBaiEBQRMhEAzPAQsCQCABIgQgAkcNAEH7ACEQDOkCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRADQCAELQAAIAFB8M6AgABqLQAARw3QASABQQVGDc4BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQfsAIRAM6AILAkAgASIEIAJHDQBB/AAhEAzoAgsCQAJAIAQtAABBvX9qDgwA0QHRAdEB0QHRAdEB0QHRAdEB0QEB0QELIARBAWohAUHmACEQDM8CCyAEQQFqIQFB5wAhEAzOAgsCQCABIgQgAkcNAEH9ACEQDOcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDc8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH9ACEQDOcCCyAAQQA2AgAgEEEBaiEBQRAhEAzMAQsCQCABIgQgAkcNAEH+ACEQDOYCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUH2zoCAAGotAABHDc4BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH+ACEQDOYCCyAAQQA2AgAgEEEBaiEBQRYhEAzLAQsCQCABIgQgAkcNAEH/ACEQDOUCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUH8zoCAAGotAABHDc0BIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH/ACEQDOUCCyAAQQA2AgAgEEEBaiEBQQUhEAzKAQsCQCABIgQgAkcNAEGAASEQDOQCCyAELQAAQdkARw3LASAEQQFqIQFBCCEQDMkBCwJAIAEiBCACRw0AQYEBIRAM4wILAkACQCAELQAAQbJ/ag4DAMwBAcwBCyAEQQFqIQFB6wAhEAzKAgsgBEEBaiEBQewAIRAMyQILAkAgASIEIAJHDQBBggEhEAziAgsCQAJAIAQtAABBuH9qDggAywHLAcsBywHLAcsBAcsBCyAEQQFqIQFB6gAhEAzJAgsgBEEBaiEBQe0AIRAMyAILAkAgASIEIAJHDQBBgwEhEAzhAgsgAiAEayAAKAIAIgFqIRAgBCABa0ECaiEUAkADQCAELQAAIAFBgM+AgABqLQAARw3JASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBA2AgBBgwEhEAzhAgtBACEQIABBADYCACAUQQFqIQEMxgELAkAgASIEIAJHDQBBhAEhEAzgAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBg8+AgABqLQAARw3IASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhAEhEAzgAgsgAEEANgIAIBBBAWohAUEjIRAMxQELAkAgASIEIAJHDQBBhQEhEAzfAgsCQAJAIAQtAABBtH9qDggAyAHIAcgByAHIAcgBAcgBCyAEQQFqIQFB7wAhEAzGAgsgBEEBaiEBQfAAIRAMxQILAkAgASIEIAJHDQBBhgEhEAzeAgsgBC0AAEHFAEcNxQEgBEEBaiEBDIMCCwJAIAEiBCACRw0AQYcBIRAM3QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQYjPgIAAai0AAEcNxQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYcBIRAM3QILIABBADYCACAQQQFqIQFBLSEQDMIBCwJAIAEiBCACRw0AQYgBIRAM3AILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNxAEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYgBIRAM3AILIABBADYCACAQQQFqIQFBKSEQDMEBCwJAIAEiASACRw0AQYkBIRAM2wILQQEhECABLQAAQd8ARw3AASABQQFqIQEMgQILAkAgASIEIAJHDQBBigEhEAzaAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQA0AgBC0AACABQYzPgIAAai0AAEcNwQEgAUEBRg2vAiABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGKASEQDNkCCwJAIAEiBCACRw0AQYsBIRAM2QILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQY7PgIAAai0AAEcNwQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYsBIRAM2QILIABBADYCACAQQQFqIQFBAiEQDL4BCwJAIAEiBCACRw0AQYwBIRAM2AILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNwAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYwBIRAM2AILIABBADYCACAQQQFqIQFBHyEQDL0BCwJAIAEiBCACRw0AQY0BIRAM1wILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNvwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY0BIRAM1wILIABBADYCACAQQQFqIQFBCSEQDLwBCwJAIAEiBCACRw0AQY4BIRAM1gILAkACQCAELQAAQbd/ag4HAL8BvwG/Ab8BvwEBvwELIARBAWohAUH4ACEQDL0CCyAEQQFqIQFB+QAhEAy8AgsCQCABIgQgAkcNAEGPASEQDNUCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGRz4CAAGotAABHDb0BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGPASEQDNUCCyAAQQA2AgAgEEEBaiEBQRghEAy6AQsCQCABIgQgAkcNAEGQASEQDNQCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUGXz4CAAGotAABHDbwBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGQASEQDNQCCyAAQQA2AgAgEEEBaiEBQRchEAy5AQsCQCABIgQgAkcNAEGRASEQDNMCCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUGaz4CAAGotAABHDbsBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGRASEQDNMCCyAAQQA2AgAgEEEBaiEBQRUhEAy4AQsCQCABIgQgAkcNAEGSASEQDNICCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGhz4CAAGotAABHDboBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGSASEQDNICCyAAQQA2AgAgEEEBaiEBQR4hEAy3AQsCQCABIgQgAkcNAEGTASEQDNECCyAELQAAQcwARw24ASAEQQFqIQFBCiEQDLYBCwJAIAQgAkcNAEGUASEQDNACCwJAAkAgBC0AAEG/f2oODwC5AbkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AQG5AQsgBEEBaiEBQf4AIRAMtwILIARBAWohAUH/ACEQDLYCCwJAIAQgAkcNAEGVASEQDM8CCwJAAkAgBC0AAEG/f2oOAwC4AQG4AQsgBEEBaiEBQf0AIRAMtgILIARBAWohBEGAASEQDLUCCwJAIAQgAkcNAEGWASEQDM4CCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUGnz4CAAGotAABHDbYBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGWASEQDM4CCyAAQQA2AgAgEEEBaiEBQQshEAyzAQsCQCAEIAJHDQBBlwEhEAzNAgsCQAJAAkACQCAELQAAQVNqDiMAuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AQG4AbgBuAG4AbgBArgBuAG4AQO4AQsgBEEBaiEBQfsAIRAMtgILIARBAWohAUH8ACEQDLUCCyAEQQFqIQRBgQEhEAy0AgsgBEEBaiEEQYIBIRAMswILAkAgBCACRw0AQZgBIRAMzAILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQanPgIAAai0AAEcNtAEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZgBIRAMzAILIABBADYCACAQQQFqIQFBGSEQDLEBCwJAIAQgAkcNAEGZASEQDMsCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGuz4CAAGotAABHDbMBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGZASEQDMsCCyAAQQA2AgAgEEEBaiEBQQYhEAywAQsCQCAEIAJHDQBBmgEhEAzKAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBtM+AgABqLQAARw2yASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmgEhEAzKAgsgAEEANgIAIBBBAWohAUEcIRAMrwELAkAgBCACRw0AQZsBIRAMyQILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbbPgIAAai0AAEcNsQEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZsBIRAMyQILIABBADYCACAQQQFqIQFBJyEQDK4BCwJAIAQgAkcNAEGcASEQDMgCCwJAAkAgBC0AAEGsf2oOAgABsQELIARBAWohBEGGASEQDK8CCyAEQQFqIQRBhwEhEAyuAgsCQCAEIAJHDQBBnQEhEAzHAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBuM+AgABqLQAARw2vASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBnQEhEAzHAgsgAEEANgIAIBBBAWohAUEmIRAMrAELAkAgBCACRw0AQZ4BIRAMxgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbrPgIAAai0AAEcNrgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ4BIRAMxgILIABBADYCACAQQQFqIQFBAyEQDKsBCwJAIAQgAkcNAEGfASEQDMUCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDa0BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGfASEQDMUCCyAAQQA2AgAgEEEBaiEBQQwhEAyqAQsCQCAEIAJHDQBBoAEhEAzEAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBvM+AgABqLQAARw2sASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBoAEhEAzEAgsgAEEANgIAIBBBAWohAUENIRAMqQELAkAgBCACRw0AQaEBIRAMwwILAkACQCAELQAAQbp/ag4LAKwBrAGsAawBrAGsAawBrAGsAQGsAQsgBEEBaiEEQYsBIRAMqgILIARBAWohBEGMASEQDKkCCwJAIAQgAkcNAEGiASEQDMICCyAELQAAQdAARw2pASAEQQFqIQQM6QELAkAgBCACRw0AQaMBIRAMwQILAkACQCAELQAAQbd/ag4HAaoBqgGqAaoBqgEAqgELIARBAWohBEGOASEQDKgCCyAEQQFqIQFBIiEQDKYBCwJAIAQgAkcNAEGkASEQDMACCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHAz4CAAGotAABHDagBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGkASEQDMACCyAAQQA2AgAgEEEBaiEBQR0hEAylAQsCQCAEIAJHDQBBpQEhEAy/AgsCQAJAIAQtAABBrn9qDgMAqAEBqAELIARBAWohBEGQASEQDKYCCyAEQQFqIQFBBCEQDKQBCwJAIAQgAkcNAEGmASEQDL4CCwJAAkACQAJAAkAgBC0AAEG/f2oOFQCqAaoBqgGqAaoBqgGqAaoBqgGqAQGqAaoBAqoBqgEDqgGqAQSqAQsgBEEBaiEEQYgBIRAMqAILIARBAWohBEGJASEQDKcCCyAEQQFqIQRBigEhEAymAgsgBEEBaiEEQY8BIRAMpQILIARBAWohBEGRASEQDKQCCwJAIAQgAkcNAEGnASEQDL0CCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDaUBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGnASEQDL0CCyAAQQA2AgAgEEEBaiEBQREhEAyiAQsCQCAEIAJHDQBBqAEhEAy8AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBws+AgABqLQAARw2kASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqAEhEAy8AgsgAEEANgIAIBBBAWohAUEsIRAMoQELAkAgBCACRw0AQakBIRAMuwILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQcXPgIAAai0AAEcNowEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQakBIRAMuwILIABBADYCACAQQQFqIQFBKyEQDKABCwJAIAQgAkcNAEGqASEQDLoCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHKz4CAAGotAABHDaIBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGqASEQDLoCCyAAQQA2AgAgEEEBaiEBQRQhEAyfAQsCQCAEIAJHDQBBqwEhEAy5AgsCQAJAAkACQCAELQAAQb5/ag4PAAECpAGkAaQBpAGkAaQBpAGkAaQBpAGkAQOkAQsgBEEBaiEEQZMBIRAMogILIARBAWohBEGUASEQDKECCyAEQQFqIQRBlQEhEAygAgsgBEEBaiEEQZYBIRAMnwILAkAgBCACRw0AQawBIRAMuAILIAQtAABBxQBHDZ8BIARBAWohBAzgAQsCQCAEIAJHDQBBrQEhEAy3AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBzc+AgABqLQAARw2fASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrQEhEAy3AgsgAEEANgIAIBBBAWohAUEOIRAMnAELAkAgBCACRw0AQa4BIRAMtgILIAQtAABB0ABHDZ0BIARBAWohAUElIRAMmwELAkAgBCACRw0AQa8BIRAMtQILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNnQEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQa8BIRAMtQILIABBADYCACAQQQFqIQFBKiEQDJoBCwJAIAQgAkcNAEGwASEQDLQCCwJAAkAgBC0AAEGrf2oOCwCdAZ0BnQGdAZ0BnQGdAZ0BnQEBnQELIARBAWohBEGaASEQDJsCCyAEQQFqIQRBmwEhEAyaAgsCQCAEIAJHDQBBsQEhEAyzAgsCQAJAIAQtAABBv39qDhQAnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBAZwBCyAEQQFqIQRBmQEhEAyaAgsgBEEBaiEEQZwBIRAMmQILAkAgBCACRw0AQbIBIRAMsgILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQdnPgIAAai0AAEcNmgEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbIBIRAMsgILIABBADYCACAQQQFqIQFBISEQDJcBCwJAIAQgAkcNAEGzASEQDLECCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUHdz4CAAGotAABHDZkBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGzASEQDLECCyAAQQA2AgAgEEEBaiEBQRohEAyWAQsCQCAEIAJHDQBBtAEhEAywAgsCQAJAAkAgBC0AAEG7f2oOEQCaAZoBmgGaAZoBmgGaAZoBmgEBmgGaAZoBmgGaAQKaAQsgBEEBaiEEQZ0BIRAMmAILIARBAWohBEGeASEQDJcCCyAEQQFqIQRBnwEhEAyWAgsCQCAEIAJHDQBBtQEhEAyvAgsgAiAEayAAKAIAIgFqIRQgBCABa0EFaiEQAkADQCAELQAAIAFB5M+AgABqLQAARw2XASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtQEhEAyvAgsgAEEANgIAIBBBAWohAUEoIRAMlAELAkAgBCACRw0AQbYBIRAMrgILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQerPgIAAai0AAEcNlgEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbYBIRAMrgILIABBADYCACAQQQFqIQFBByEQDJMBCwJAIAQgAkcNAEG3ASEQDK0CCwJAAkAgBC0AAEG7f2oODgCWAZYBlgGWAZYBlgGWAZYBlgGWAZYBlgEBlgELIARBAWohBEGhASEQDJQCCyAEQQFqIQRBogEhEAyTAgsCQCAEIAJHDQBBuAEhEAysAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB7c+AgABqLQAARw2UASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuAEhEAysAgsgAEEANgIAIBBBAWohAUESIRAMkQELAkAgBCACRw0AQbkBIRAMqwILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNkwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbkBIRAMqwILIABBADYCACAQQQFqIQFBICEQDJABCwJAIAQgAkcNAEG6ASEQDKoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHyz4CAAGotAABHDZIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG6ASEQDKoCCyAAQQA2AgAgEEEBaiEBQQ8hEAyPAQsCQCAEIAJHDQBBuwEhEAypAgsCQAJAIAQtAABBt39qDgcAkgGSAZIBkgGSAQGSAQsgBEEBaiEEQaUBIRAMkAILIARBAWohBEGmASEQDI8CCwJAIAQgAkcNAEG8ASEQDKgCCyACIARrIAAoAgAiAWohFCAEIAFrQQdqIRACQANAIAQtAAAgAUH0z4CAAGotAABHDZABIAFBB0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG8ASEQDKgCCyAAQQA2AgAgEEEBaiEBQRshEAyNAQsCQCAEIAJHDQBBvQEhEAynAgsCQAJAAkAgBC0AAEG+f2oOEgCRAZEBkQGRAZEBkQGRAZEBkQEBkQGRAZEBkQGRAZEBApEBCyAEQQFqIQRBpAEhEAyPAgsgBEEBaiEEQacBIRAMjgILIARBAWohBEGoASEQDI0CCwJAIAQgAkcNAEG+ASEQDKYCCyAELQAAQc4ARw2NASAEQQFqIQQMzwELAkAgBCACRw0AQb8BIRAMpQILAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBC0AAEG/f2oOFQABAgOcAQQFBpwBnAGcAQcICQoLnAEMDQ4PnAELIARBAWohAUHoACEQDJoCCyAEQQFqIQFB6QAhEAyZAgsgBEEBaiEBQe4AIRAMmAILIARBAWohAUHyACEQDJcCCyAEQQFqIQFB8wAhEAyWAgsgBEEBaiEBQfYAIRAMlQILIARBAWohAUH3ACEQDJQCCyAEQQFqIQFB+gAhEAyTAgsgBEEBaiEEQYMBIRAMkgILIARBAWohBEGEASEQDJECCyAEQQFqIQRBhQEhEAyQAgsgBEEBaiEEQZIBIRAMjwILIARBAWohBEGYASEQDI4CCyAEQQFqIQRBoAEhEAyNAgsgBEEBaiEEQaMBIRAMjAILIARBAWohBEGqASEQDIsCCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEGrASEQDIsCC0HAASEQDKMCCyAAIAUgAhCqgICAACIBDYsBIAUhAQxcCwJAIAYgAkYNACAGQQFqIQUMjQELQcIBIRAMoQILA0ACQCAQLQAAQXZqDgSMAQAAjwEACyAQQQFqIhAgAkcNAAtBwwEhEAygAgsCQCAHIAJGDQAgAEGRgICAADYCCCAAIAc2AgQgByEBQQEhEAyHAgtBxAEhEAyfAgsCQCAHIAJHDQBBxQEhEAyfAgsCQAJAIActAABBdmoOBAHOAc4BAM4BCyAHQQFqIQYMjQELIAdBAWohBQyJAQsCQCAHIAJHDQBBxgEhEAyeAgsCQAJAIActAABBdmoOFwGPAY8BAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAQCPAQsgB0EBaiEHC0GwASEQDIQCCwJAIAggAkcNAEHIASEQDJ0CCyAILQAAQSBHDY0BIABBADsBMiAIQQFqIQFBswEhEAyDAgsgASEXAkADQCAXIgcgAkYNASAHLQAAQVBqQf8BcSIQQQpPDcwBAkAgAC8BMiIUQZkzSw0AIAAgFEEKbCIUOwEyIBBB//8DcyAUQf7/A3FJDQAgB0EBaiEXIAAgFCAQaiIQOwEyIBBB//8DcUHoB0kNAQsLQQAhECAAQQA2AhwgAEHBiYCAADYCECAAQQ02AgwgACAHQQFqNgIUDJwCC0HHASEQDJsCCyAAIAggAhCugICAACIQRQ3KASAQQRVHDYwBIABByAE2AhwgACAINgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAyaAgsCQCAJIAJHDQBBzAEhEAyaAgtBACEUQQEhF0EBIRZBACEQAkACQAJAAkACQAJAAkACQAJAIAktAABBUGoOCpYBlQEAAQIDBAUGCJcBC0ECIRAMBgtBAyEQDAULQQQhEAwEC0EFIRAMAwtBBiEQDAILQQchEAwBC0EIIRALQQAhF0EAIRZBACEUDI4BC0EJIRBBASEUQQAhF0EAIRYMjQELAkAgCiACRw0AQc4BIRAMmQILIAotAABBLkcNjgEgCkEBaiEJDMoBCyALIAJHDY4BQdABIRAMlwILAkAgCyACRg0AIABBjoCAgAA2AgggACALNgIEQbcBIRAM/gELQdEBIRAMlgILAkAgBCACRw0AQdIBIRAMlgILIAIgBGsgACgCACIQaiEUIAQgEGtBBGohCwNAIAQtAAAgEEH8z4CAAGotAABHDY4BIBBBBEYN6QEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB0gEhEAyVAgsgACAMIAIQrICAgAAiAQ2NASAMIQEMuAELAkAgBCACRw0AQdQBIRAMlAILIAIgBGsgACgCACIQaiEUIAQgEGtBAWohDANAIAQtAAAgEEGB0ICAAGotAABHDY8BIBBBAUYNjgEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB1AEhEAyTAgsCQCAEIAJHDQBB1gEhEAyTAgsgAiAEayAAKAIAIhBqIRQgBCAQa0ECaiELA0AgBC0AACAQQYPQgIAAai0AAEcNjgEgEEECRg2QASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHWASEQDJICCwJAIAQgAkcNAEHXASEQDJICCwJAAkAgBC0AAEG7f2oOEACPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAY8BCyAEQQFqIQRBuwEhEAz5AQsgBEEBaiEEQbwBIRAM+AELAkAgBCACRw0AQdgBIRAMkQILIAQtAABByABHDYwBIARBAWohBAzEAQsCQCAEIAJGDQAgAEGQgICAADYCCCAAIAQ2AgRBvgEhEAz3AQtB2QEhEAyPAgsCQCAEIAJHDQBB2gEhEAyPAgsgBC0AAEHIAEYNwwEgAEEBOgAoDLkBCyAAQQI6AC8gACAEIAIQpoCAgAAiEA2NAUHCASEQDPQBCyAALQAoQX9qDgK3AbkBuAELA0ACQCAELQAAQXZqDgQAjgGOAQCOAQsgBEEBaiIEIAJHDQALQd0BIRAMiwILIABBADoALyAALQAtQQRxRQ2EAgsgAEEAOgAvIABBAToANCABIQEMjAELIBBBFUYN2gEgAEEANgIcIAAgATYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMiAILAkAgACAQIAIQtICAgAAiBA0AIBAhAQyBAgsCQCAEQRVHDQAgAEEDNgIcIAAgEDYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMiAILIABBADYCHCAAIBA2AhQgAEGnjoCAADYCECAAQRI2AgxBACEQDIcCCyAQQRVGDdYBIABBADYCHCAAIAE2AhQgAEHajYCAADYCECAAQRQ2AgxBACEQDIYCCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNjQEgAEEHNgIcIAAgEDYCFCAAIBQ2AgxBACEQDIUCCyAAIAAvATBBgAFyOwEwIAEhAQtBKiEQDOoBCyAQQRVGDdEBIABBADYCHCAAIAE2AhQgAEGDjICAADYCECAAQRM2AgxBACEQDIICCyAQQRVGDc8BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDIECCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyNAQsgAEEMNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDIACCyAQQRVGDcwBIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDP8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyMAQsgAEENNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDP4BCyAQQRVGDckBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDP0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyLAQsgAEEONgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPwBCyAAQQA2AhwgACABNgIUIABBwJWAgAA2AhAgAEECNgIMQQAhEAz7AQsgEEEVRg3FASAAQQA2AhwgACABNgIUIABBxoyAgAA2AhAgAEEjNgIMQQAhEAz6AQsgAEEQNgIcIAAgATYCFCAAIBA2AgxBACEQDPkBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQzxAQsgAEERNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPgBCyAQQRVGDcEBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPcBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyIAQsgAEETNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPYBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQztAQsgAEEUNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPUBCyAQQRVGDb0BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDPQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyGAQsgAEEWNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPMBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQt4CAgAAiBA0AIAFBAWohAQzpAQsgAEEXNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPIBCyAAQQA2AhwgACABNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzxAQtCASERCyAQQQFqIQECQCAAKQMgIhJC//////////8PVg0AIAAgEkIEhiARhDcDICABIQEMhAELIABBADYCHCAAIAE2AhQgAEGtiYCAADYCECAAQQw2AgxBACEQDO8BCyAAQQA2AhwgACAQNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzuAQsgACgCBCEXIABBADYCBCAQIBGnaiIWIQEgACAXIBAgFiAUGyIQELWAgIAAIhRFDXMgAEEFNgIcIAAgEDYCFCAAIBQ2AgxBACEQDO0BCyAAQQA2AhwgACAQNgIUIABBqpyAgAA2AhAgAEEPNgIMQQAhEAzsAQsgACAQIAIQtICAgAAiAQ0BIBAhAQtBDiEQDNEBCwJAIAFBFUcNACAAQQI2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAzqAQsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAM6QELIAFBAWohEAJAIAAvATAiAUGAAXFFDQACQCAAIBAgAhC7gICAACIBDQAgECEBDHALIAFBFUcNugEgAEEFNgIcIAAgEDYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAM6QELAkAgAUGgBHFBoARHDQAgAC0ALUECcQ0AIABBADYCHCAAIBA2AhQgAEGWk4CAADYCECAAQQQ2AgxBACEQDOkBCyAAIBAgAhC9gICAABogECEBAkACQAJAAkACQCAAIBAgAhCzgICAAA4WAgEABAQEBAQEBAQEBAQEBAQEBAQEAwQLIABBAToALgsgACAALwEwQcAAcjsBMCAQIQELQSYhEAzRAQsgAEEjNgIcIAAgEDYCFCAAQaWWgIAANgIQIABBFTYCDEEAIRAM6QELIABBADYCHCAAIBA2AhQgAEHVi4CAADYCECAAQRE2AgxBACEQDOgBCyAALQAtQQFxRQ0BQcMBIRAMzgELAkAgDSACRg0AA0ACQCANLQAAQSBGDQAgDSEBDMQBCyANQQFqIg0gAkcNAAtBJSEQDOcBC0ElIRAM5gELIAAoAgQhBCAAQQA2AgQgACAEIA0Qr4CAgAAiBEUNrQEgAEEmNgIcIAAgBDYCDCAAIA1BAWo2AhRBACEQDOUBCyAQQRVGDasBIABBADYCHCAAIAE2AhQgAEH9jYCAADYCECAAQR02AgxBACEQDOQBCyAAQSc2AhwgACABNgIUIAAgEDYCDEEAIRAM4wELIBAhAUEBIRQCQAJAAkACQAJAAkACQCAALQAsQX5qDgcGBQUDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhFAwBC0EEIRQLIABBAToALCAAIAAvATAgFHI7ATALIBAhAQtBKyEQDMoBCyAAQQA2AhwgACAQNgIUIABBq5KAgAA2AhAgAEELNgIMQQAhEAziAQsgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDEEAIRAM4QELIABBADoALCAQIQEMvQELIBAhAUEBIRQCQAJAAkACQAJAIAAtACxBe2oOBAMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0EpIRAMxQELIABBADYCHCAAIAE2AhQgAEHwlICAADYCECAAQQM2AgxBACEQDN0BCwJAIA4tAABBDUcNACAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA5BAWohAQx1CyAAQSw2AhwgACABNgIMIAAgDkEBajYCFEEAIRAM3QELIAAtAC1BAXFFDQFBxAEhEAzDAQsCQCAOIAJHDQBBLSEQDNwBCwJAAkADQAJAIA4tAABBdmoOBAIAAAMACyAOQQFqIg4gAkcNAAtBLSEQDN0BCyAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA4hAQx0CyAAQSw2AhwgACAONgIUIAAgATYCDEEAIRAM3AELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHMLIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzbAQsgACgCBCEEIABBADYCBCAAIAQgDhCxgICAACIEDaABIA4hAQzOAQsgEEEsRw0BIAFBAWohEEEBIQECQAJAAkACQAJAIAAtACxBe2oOBAMBAgQACyAQIQEMBAtBAiEBDAELQQQhAQsgAEEBOgAsIAAgAC8BMCABcjsBMCAQIQEMAQsgACAALwEwQQhyOwEwIBAhAQtBOSEQDL8BCyAAQQA6ACwgASEBC0E0IRAMvQELIAAgAC8BMEEgcjsBMCABIQEMAgsgACgCBCEEIABBADYCBAJAIAAgBCABELGAgIAAIgQNACABIQEMxwELIABBNzYCHCAAIAE2AhQgACAENgIMQQAhEAzUAQsgAEEIOgAsIAEhAQtBMCEQDLkBCwJAIAAtAChBAUYNACABIQEMBAsgAC0ALUEIcUUNkwEgASEBDAMLIAAtADBBIHENlAFBxQEhEAy3AQsCQCAPIAJGDQACQANAAkAgDy0AAEFQaiIBQf8BcUEKSQ0AIA8hAUE1IRAMugELIAApAyAiEUKZs+bMmbPmzBlWDQEgACARQgp+IhE3AyAgESABrUL/AYMiEkJ/hVYNASAAIBEgEnw3AyAgD0EBaiIPIAJHDQALQTkhEAzRAQsgACgCBCECIABBADYCBCAAIAIgD0EBaiIEELGAgIAAIgINlQEgBCEBDMMBC0E5IRAMzwELAkAgAC8BMCIBQQhxRQ0AIAAtAChBAUcNACAALQAtQQhxRQ2QAQsgACABQff7A3FBgARyOwEwIA8hAQtBNyEQDLQBCyAAIAAvATBBEHI7ATAMqwELIBBBFUYNiwEgAEEANgIcIAAgATYCFCAAQfCOgIAANgIQIABBHDYCDEEAIRAMywELIABBwwA2AhwgACABNgIMIAAgDUEBajYCFEEAIRAMygELAkAgAS0AAEE6Rw0AIAAoAgQhECAAQQA2AgQCQCAAIBAgARCvgICAACIQDQAgAUEBaiEBDGMLIABBwwA2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMygELIABBADYCHCAAIAE2AhQgAEGxkYCAADYCECAAQQo2AgxBACEQDMkBCyAAQQA2AhwgACABNgIUIABBoJmAgAA2AhAgAEEeNgIMQQAhEAzIAQsgAEEANgIACyAAQYASOwEqIAAgF0EBaiIBIAIQqICAgAAiEA0BIAEhAQtBxwAhEAysAQsgEEEVRw2DASAAQdEANgIcIAAgATYCFCAAQeOXgIAANgIQIABBFTYCDEEAIRAMxAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDF4LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMwwELIABBADYCHCAAIBQ2AhQgAEHBqICAADYCECAAQQc2AgwgAEEANgIAQQAhEAzCAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAzBAQtBACEQIABBADYCHCAAIAE2AhQgAEGAkYCAADYCECAAQQk2AgwMwAELIBBBFUYNfSAAQQA2AhwgACABNgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAy/AQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgAUEBaiEBAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBAJAIAAgECABEK2AgIAAIhANACABIQEMXAsgAEHYADYCHCAAIAE2AhQgACAQNgIMQQAhEAy+AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMrQELIABB2QA2AhwgACABNgIUIAAgBDYCDEEAIRAMvQELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKsBCyAAQdoANgIcIAAgATYCFCAAIAQ2AgxBACEQDLwBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQypAQsgAEHcADYCHCAAIAE2AhQgACAENgIMQQAhEAy7AQsCQCABLQAAQVBqIhBB/wFxQQpPDQAgACAQOgAqIAFBAWohAUHPACEQDKIBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQynAQsgAEHeADYCHCAAIAE2AhQgACAENgIMQQAhEAy6AQsgAEEANgIAIBdBAWohAQJAIAAtAClBI08NACABIQEMWQsgAEEANgIcIAAgATYCFCAAQdOJgIAANgIQIABBCDYCDEEAIRAMuQELIABBADYCAAtBACEQIABBADYCHCAAIAE2AhQgAEGQs4CAADYCECAAQQg2AgwMtwELIABBADYCACAXQQFqIQECQCAALQApQSFHDQAgASEBDFYLIABBADYCHCAAIAE2AhQgAEGbioCAADYCECAAQQg2AgxBACEQDLYBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKSIQQV1qQQtPDQAgASEBDFULAkAgEEEGSw0AQQEgEHRBygBxRQ0AIAEhAQxVC0EAIRAgAEEANgIcIAAgATYCFCAAQfeJgIAANgIQIABBCDYCDAy1AQsgEEEVRg1xIABBADYCHCAAIAE2AhQgAEG5jYCAADYCECAAQRo2AgxBACEQDLQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxUCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLMBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="});var D6=E((Ob,y6)=>{y6.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="});var pr=E((Pb,q6)=>{"use strict";var D=require("assert"),N6=require("net"),U=_(),od=t4(),Lm=l6(),Mm=tr(),{RequestContentLengthMismatchError:r1,ResponseContentLengthMismatchError:Tm,InvalidArgumentError:Be,RequestAbortedError:b6,HeadersTimeoutError:Vm,HeadersOverflowError:Ym,SocketError:qi,InformationalError:i1,BodyTimeoutError:Jm,HTTPParserError:Gm,ResponseExceededMaxSizeError:xm,ClientDestroyedError:_m}=z(),qm=ar(),{kUrl:IA,kReset:Je,kServerName:Tt,kClient:Pi,kBusy:pd,kParser:$,kConnect:Hm,kBlocking:z1,kResuming:s1,kRunning:ge,kPending:K1,kSize:n1,kWriting:Bt,kQueue:oe,kConnected:Om,kConnecting:X1,kNeedDrain:Yt,kNoRef:ir,kKeepAliveDefaultTimeout:ld,kHostHeader:S6,kPendingIdx:fA,kRunningIdx:le,kError:iA,kPipelining:Jt,kSocket:rA,kKeepAliveTimeoutValue:or,kMaxHeadersSize:xi,kKeepAliveMaxTimeout:k6,kKeepAliveTimeoutThreshold:F6,kHeadersTimeout:U6,kBodyTimeout:L6,kStrictContentLength:Hi,kConnector:sr,kMaxRedirections:Pm,kMaxRequests:dr,kCounter:M6,kClose:Wm,kDestroy:Zm,kDispatch:jm,kInterceptors:Xm,kLocalAddress:nr,kMaxResponseSize:T6}=te(),Ji=Buffer[Symbol.species],Vt=Symbol("kClosedResolve"),Me={};try{let e=require("diagnostics_channel");Me.sendHeaders=e.channel("undici:client:sendHeaders"),Me.beforeConnect=e.channel("undici:client:beforeConnect"),Me.connectError=e.channel("undici:client:connectError"),Me.connected=e.channel("undici:client:connected")}catch{Me.sendHeaders={hasSubscribers:!1},Me.beforeConnect={hasSubscribers:!1},Me.connectError={hasSubscribers:!1},Me.connected={hasSubscribers:!1}}var gd=class extends Mm{constructor(A,{interceptors:t,maxHeaderSize:a,headersTimeout:r,socketTimeout:i,requestTimeout:s,connectTimeout:n,bodyTimeout:o,idleTimeout:d,keepAlive:l,keepAliveTimeout:p,maxKeepAliveTimeout:g,keepAliveMaxTimeout:c,keepAliveTimeoutThreshold:u,socketPath:Q,pipelining:B,tls:C,strictContentLength:h,maxCachedSessions:f,maxRedirections:m,connect:w,maxRequestsPerClient:R,localAddress:S,maxResponseSize:x,autoSelectFamily:me,autoSelectFamilyAttemptTimeout:Qe}={}){if(super(),l!==void 0)throw new Be("unsupported keepAlive, use pipelining=0 instead");if(i!==void 0)throw new Be("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(s!==void 0)throw new Be("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(d!==void 0)throw new Be("unsupported idleTimeout, use keepAliveTimeout instead");if(g!==void 0)throw new Be("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(a!=null&&!Number.isFinite(a))throw new Be("invalid maxHeaderSize");if(Q!=null&&typeof Q!="string")throw new Be("invalid socketPath");if(n!=null&&(!Number.isFinite(n)||n<0))throw new Be("invalid connectTimeout");if(p!=null&&(!Number.isFinite(p)||p<=0))throw new Be("invalid keepAliveTimeout");if(c!=null&&(!Number.isFinite(c)||c<=0))throw new Be("invalid keepAliveMaxTimeout");if(u!=null&&!Number.isFinite(u))throw new Be("invalid keepAliveTimeoutThreshold");if(r!=null&&(!Number.isInteger(r)||r<0))throw new Be("headersTimeout must be a positive integer or zero");if(o!=null&&(!Number.isInteger(o)||o<0))throw new Be("bodyTimeout must be a positive integer or zero");if(w!=null&&typeof w!="function"&&typeof w!="object")throw new Be("connect must be a function or an object");if(m!=null&&(!Number.isInteger(m)||m<0))throw new Be("maxRedirections must be a positive number");if(R!=null&&(!Number.isInteger(R)||R<0))throw new Be("maxRequestsPerClient must be a positive number");if(S!=null&&(typeof S!="string"||N6.isIP(S)===0))throw new Be("localAddress must be valid string IP address");if(x!=null&&(!Number.isInteger(x)||x<-1))throw new Be("maxResponseSize must be a positive number");if(Qe!=null&&(!Number.isInteger(Qe)||Qe<-1))throw new Be("autoSelectFamilyAttemptTimeout must be a positive number");typeof w!="function"&&(w=qm({...C,maxCachedSessions:f,socketPath:Q,timeout:n,...U.nodeHasAutoSelectFamily&&me?{autoSelectFamily:me,autoSelectFamilyAttemptTimeout:Qe}:void 0,...w})),this[Xm]=t&&t.Client&&Array.isArray(t.Client)?t.Client:[zm({maxRedirections:m})],this[IA]=U.parseOrigin(A),this[sr]=w,this[rA]=null,this[Jt]=B??1,this[xi]=a||16384,this[ld]=p??4e3,this[k6]=c??6e5,this[F6]=u??1e3,this[or]=this[ld],this[Tt]=null,this[nr]=S??null,this[s1]=0,this[Yt]=0,this[S6]=`host: ${this[IA].hostname}${this[IA].port?`:${this[IA].port}`:""}\r -`,this[L6]=o??3e5,this[U6]=r??3e5,this[Hi]=h??!0,this[Pm]=m,this[dr]=R,this[Vt]=null,this[T6]=x>-1?x:-1,this[oe]=[],this[le]=0,this[fA]=0}get pipelining(){return this[Jt]}set pipelining(A){this[Jt]=A,wA(this,!0)}get[K1](){return this[oe].length-this[fA]}get[ge](){return this[fA]-this[le]}get[n1](){return this[oe].length-this[le]}get[Om](){return!!this[rA]&&!this[X1]&&!this[rA].destroyed}get[pd](){let A=this[rA];return A&&(A[Je]||A[Bt]||A[z1])||this[n1]>=(this[Jt]||1)||this[K1]>0}[Hm](A){_6(this),this.once("connect",A)}[jm](A,t){let a=A.origin||this[IA].origin,r=new Lm(a,A,t);return this[oe].push(r),this[s1]||(U.bodyLength(r.body)==null&&U.isIterable(r.body)?(this[s1]=1,process.nextTick(wA,this)):wA(this,!0)),this[s1]&&this[Yt]!==2&&this[pd]&&(this[Yt]=2),this[Yt]<2}async[Wm](){return new Promise(A=>{this[n1]?this[Vt]=A:A(null)})}async[Zm](A){return new Promise(t=>{let a=this[oe].splice(this[fA]);for(let i=0;i<a.length;i++){let s=a[i];KA(this,s,A)}let r=()=>{this[Vt]&&(this[Vt](),this[Vt]=null),t()};this[rA]?U.destroy(this[rA].on("close",r),A):queueMicrotask(r),wA(this)})}},jA=B6(),zm=Yi(),Km=Buffer.alloc(0);async function $m(){let e=process.env.JEST_WORKER_ID?nd():void 0,A;try{A=await WebAssembly.compile(Buffer.from(D6(),"base64"))}catch{A=await WebAssembly.compile(Buffer.from(e||nd(),"base64"))}return await WebAssembly.instantiate(A,{env:{wasm_on_url:(t,a,r)=>0,wasm_on_status:(t,a,r)=>{D.strictEqual(he.ptr,t);let i=a-zA+XA.byteOffset;return he.onStatus(new Ji(XA.buffer,i,r))||0},wasm_on_message_begin:t=>(D.strictEqual(he.ptr,t),he.onMessageBegin()||0),wasm_on_header_field:(t,a,r)=>{D.strictEqual(he.ptr,t);let i=a-zA+XA.byteOffset;return he.onHeaderField(new Ji(XA.buffer,i,r))||0},wasm_on_header_value:(t,a,r)=>{D.strictEqual(he.ptr,t);let i=a-zA+XA.byteOffset;return he.onHeaderValue(new Ji(XA.buffer,i,r))||0},wasm_on_headers_complete:(t,a,r,i)=>(D.strictEqual(he.ptr,t),he.onHeadersComplete(a,!!r,!!i)||0),wasm_on_body:(t,a,r)=>{D.strictEqual(he.ptr,t);let i=a-zA+XA.byteOffset;return he.onBody(new Ji(XA.buffer,i,r))||0},wasm_on_message_complete:t=>(D.strictEqual(he.ptr,t),he.onMessageComplete()||0)}})}var dd=null,cd=$m();cd.catch();var he=null,XA=null,Gi=0,zA=null,$1=1,_i=2,ud=3,Ed=class{constructor(A,t,{exports:a}){D(Number.isFinite(A[xi])&&A[xi]>0),this.llhttp=a,this.ptr=this.llhttp.llhttp_alloc(jA.TYPE.RESPONSE),this.client=A,this.socket=t,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=A[xi],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=A[T6]}setTimeout(A,t){this.timeoutType=t,A!==this.timeoutValue?(od.clearTimeout(this.timeout),A?(this.timeout=od.setTimeout(eI,A,this),this.timeout.unref&&this.timeout.unref()):this.timeout=null,this.timeoutValue=A):this.timeout&&this.timeout.refresh&&this.timeout.refresh()}resume(){this.socket.destroyed||!this.paused||(D(this.ptr!=null),D(he==null),this.llhttp.llhttp_resume(this.ptr),D(this.timeoutType===_i),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||Km),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let A=this.socket.read();if(A===null)break;this.execute(A)}}execute(A){D(this.ptr!=null),D(he==null),D(!this.paused);let{socket:t,llhttp:a}=this;A.length>Gi&&(zA&&a.free(zA),Gi=Math.ceil(A.length/4096)*4096,zA=a.malloc(Gi)),new Uint8Array(a.memory.buffer,zA,Gi).set(A);try{let r;try{XA=A,he=this,r=a.llhttp_execute(this.ptr,zA,A.length)}catch(s){throw s}finally{he=null,XA=null}let i=a.llhttp_get_error_pos(this.ptr)-zA;if(r===jA.ERROR.PAUSED_UPGRADE)this.onUpgrade(A.slice(i));else if(r===jA.ERROR.PAUSED)this.paused=!0,t.unshift(A.slice(i));else if(r!==jA.ERROR.OK){let s=a.llhttp_get_error_reason(this.ptr),n="";if(s){let o=new Uint8Array(a.memory.buffer,s).indexOf(0);n="Response does not match the HTTP/1.1 protocol ("+Buffer.from(a.memory.buffer,s,o).toString()+")"}throw new Gm(n,jA.ERROR[r],A.slice(i))}}catch(r){U.destroy(t,r)}}destroy(){D(this.ptr!=null),D(he==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,od.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(A){this.statusText=A.toString()}onMessageBegin(){let{socket:A,client:t}=this;if(A.destroyed||!t[oe][t[le]])return-1}onHeaderField(A){let t=this.headers.length;(t&1)===0?this.headers.push(A):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]),this.trackHeader(A.length)}onHeaderValue(A){let t=this.headers.length;(t&1)===1?(this.headers.push(A),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]);let a=this.headers[t-2];a.length===10&&a.toString().toLowerCase()==="keep-alive"?this.keepAlive+=A.toString():a.length===10&&a.toString().toLowerCase()==="connection"?this.connection+=A.toString():a.length===14&&a.toString().toLowerCase()==="content-length"&&(this.contentLength+=A.toString()),this.trackHeader(A.length)}trackHeader(A){this.headersSize+=A,this.headersSize>=this.headersMaxSize&&U.destroy(this.socket,new Ym)}onUpgrade(A){let{upgrade:t,client:a,socket:r,headers:i,statusCode:s}=this;D(t);let n=a[oe][a[le]];D(n),D(!r.destroyed),D(r===a[rA]),D(!this.paused),D(n.upgrade||n.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,D(this.headers.length%2===0),this.headers=[],this.headersSize=0,r.unshift(A),r[$].destroy(),r[$]=null,r[Pi]=null,r[iA]=null,r.removeListener("error",Y6).removeListener("readable",V6).removeListener("end",G6).removeListener("close",x6),a[rA]=null,a[oe][a[le]++]=null,a.emit("disconnect",a[IA],[a],new i1("upgrade"));try{n.onUpgrade(s,i,r)}catch(o){U.destroy(r,o)}wA(a)}onHeadersComplete(A,t,a){let{client:r,socket:i,headers:s,statusText:n}=this;if(i.destroyed)return-1;let o=r[oe][r[le]];if(!o)return-1;if(D(!this.upgrade),D(this.statusCode<200),A===100)return U.destroy(i,new qi("bad response",U.getSocketInfo(i))),-1;if(t&&!o.upgrade)return U.destroy(i,new qi("bad upgrade",U.getSocketInfo(i))),-1;if(D.strictEqual(this.timeoutType,$1),this.statusCode=A,this.shouldKeepAlive=a||o.method==="HEAD"&&!i[Je]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let l=o.bodyTimeout!=null?o.bodyTimeout:r[L6];this.setTimeout(l,_i)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(o.method==="CONNECT")return D(r[ge]===1),this.upgrade=!0,2;if(t)return D(r[ge]===1),this.upgrade=!0,2;if(D(this.headers.length%2===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&r[Jt]){let l=this.keepAlive?U.parseKeepAliveTimeout(this.keepAlive):null;if(l!=null){let p=Math.min(l-r[F6],r[k6]);p<=0?i[Je]=!0:r[or]=p}else r[or]=r[ld]}else i[Je]=!0;let d;try{d=o.onHeaders(A,s,this.resume,n)===!1}catch(l){return U.destroy(i,l),-1}return o.method==="HEAD"||A<200?1:(i[z1]&&(i[z1]=!1,wA(r)),d?jA.ERROR.PAUSED:0)}onBody(A){let{client:t,socket:a,statusCode:r,maxResponseSize:i}=this;if(a.destroyed)return-1;let s=t[oe][t[le]];if(D(s),D.strictEqual(this.timeoutType,_i),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),D(r>=200),i>-1&&this.bytesRead+A.length>i)return U.destroy(a,new xm),-1;this.bytesRead+=A.length;try{if(s.onData(A)===!1)return jA.ERROR.PAUSED}catch(n){return U.destroy(a,n),-1}}onMessageComplete(){let{client:A,socket:t,statusCode:a,upgrade:r,headers:i,contentLength:s,bytesRead:n,shouldKeepAlive:o}=this;if(t.destroyed&&(!a||o))return-1;if(r)return;let d=A[oe][A[le]];if(D(d),D(a>=100),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",D(this.headers.length%2===0),this.headers=[],this.headersSize=0,!(a<200)){if(d.method!=="HEAD"&&s&&n!==parseInt(s,10))return U.destroy(t,new Tm),-1;try{d.onComplete(i)}catch(l){KA(A,d,l)}if(A[oe][A[le]++]=null,t[Bt])return D.strictEqual(A[ge],0),U.destroy(t,new i1("reset")),jA.ERROR.PAUSED;if(o){if(t[Je]&&A[ge]===0)return U.destroy(t,new i1("reset")),jA.ERROR.PAUSED;A[Jt]===1?setImmediate(wA,A):wA(A)}else return U.destroy(t,new i1("reset")),jA.ERROR.PAUSED}}};function eI(e){let{socket:A,timeoutType:t,client:a}=e;t===$1?(!A[Bt]||A.writableNeedDrain||a[ge]>1)&&(D(!e.paused,"cannot be paused while waiting for headers"),U.destroy(A,new Vm)):t===_i?e.paused||U.destroy(A,new Jm):t===ud&&(D(a[ge]===0&&a[or]),U.destroy(A,new i1("socket idle timeout")))}function V6(){let{[$]:e}=this;e.readMore()}function Y6(e){let{[$]:A}=this;if(D(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),e.code==="ECONNRESET"&&A.statusCode&&!A.shouldKeepAlive){A.onMessageComplete();return}this[iA]=e,J6(this[Pi],e)}function J6(e,A){if(e[ge]===0&&A.code!=="UND_ERR_INFO"&&A.code!=="UND_ERR_SOCKET"){D(e[fA]===e[le]);let t=e[oe].splice(e[le]);for(let a=0;a<t.length;a++){let r=t[a];KA(e,r,A)}D(e[n1]===0)}}function G6(){let{[$]:e}=this;if(e.statusCode&&!e.shouldKeepAlive){e.onMessageComplete();return}U.destroy(this,new qi("other side closed",U.getSocketInfo(this)))}function x6(){let{[Pi]:e}=this;!this[iA]&&this[$].statusCode&&!this[$].shouldKeepAlive&&this[$].onMessageComplete(),this[$].destroy(),this[$]=null;let A=this[iA]||new qi("closed",U.getSocketInfo(this));if(e[rA]=null,e.destroyed){D(e[K1]===0);let t=e[oe].splice(e[le]);for(let a=0;a<t.length;a++){let r=t[a];KA(e,r,A)}}else if(e[ge]>0&&A.code!=="UND_ERR_INFO"){let t=e[oe][e[le]];e[oe][e[le]++]=null,KA(e,t,A)}e[fA]=e[le],D(e[ge]===0),e.emit("disconnect",e[IA],[e],A),wA(e)}async function _6(e){D(!e[X1]),D(!e[rA]);let{host:A,hostname:t,protocol:a,port:r}=e[IA];if(t[0]==="["){let i=t.indexOf("]");D(i!==-1);let s=t.substr(1,i-1);D(N6.isIP(s)),t=s}e[X1]=!0,Me.beforeConnect.hasSubscribers&&Me.beforeConnect.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[Tt],localAddress:e[nr]},connector:e[sr]});try{let i=await new Promise((s,n)=>{e[sr]({host:A,hostname:t,protocol:a,port:r,servername:e[Tt],localAddress:e[nr]},(o,d)=>{o?n(o):s(d)})});if(e.destroyed){U.destroy(i.on("error",()=>{}),new _m);return}dd||(dd=await cd,cd=null),e[X1]=!1,D(i),i[ir]=!1,i[Bt]=!1,i[Je]=!1,i[z1]=!1,i[iA]=null,i[$]=new Ed(e,i,dd),i[Pi]=e,i[M6]=0,i[dr]=e[dr],i.on("error",Y6).on("readable",V6).on("end",G6).on("close",x6),e[rA]=i,Me.connected.hasSubscribers&&Me.connected.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[Tt],localAddress:e[nr]},connector:e[sr],socket:i}),e.emit("connect",e[IA],[e])}catch(i){if(e.destroyed)return;if(e[X1]=!1,Me.connectError.hasSubscribers&&Me.connectError.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[Tt],localAddress:e[nr]},connector:e[sr],error:i}),i.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(D(e[ge]===0);e[K1]>0&&e[oe][e[fA]].servername===e[Tt];){let s=e[oe][e[fA]++];KA(e,s,i)}else J6(e,i);e.emit("connectionError",e[IA],[e],i)}wA(e)}function R6(e){e[Yt]=0,e.emit("drain",e[IA],[e])}function wA(e,A){e[s1]!==2&&(e[s1]=2,AI(e,A),e[s1]=0,e[le]>256&&(e[oe].splice(0,e[le]),e[fA]-=e[le],e[le]=0))}function AI(e,A){for(;;){if(e.destroyed){D(e[K1]===0);return}if(e[Vt]&&!e[n1]){e[Vt](),e[Vt]=null;return}let t=e[rA];if(t&&!t.destroyed){if(e[n1]===0?!t[ir]&&t.unref&&(t.unref(),t[ir]=!0):t[ir]&&t.ref&&(t.ref(),t[ir]=!1),e[n1]===0)t[$].timeoutType!==ud&&t[$].setTimeout(e[or],ud);else if(e[ge]>0&&t[$].statusCode<200&&t[$].timeoutType!==$1){let r=e[oe][e[le]],i=r.headersTimeout!=null?r.headersTimeout:e[U6];t[$].setTimeout(i,$1)}}if(e[pd])e[Yt]=2;else if(e[Yt]===2){A?(e[Yt]=1,process.nextTick(R6,e)):R6(e);continue}if(e[K1]===0||e[ge]>=(e[Jt]||1))return;let a=e[oe][e[fA]];if(e[IA].protocol==="https:"&&e[Tt]!==a.servername){if(e[ge]>0)return;if(e[Tt]=a.servername,t&&t.servername!==a.servername){U.destroy(t,new i1("servername changed"));return}}if(e[X1])return;if(!t){_6(e);return}if(t.destroyed||t[Bt]||t[Je]||t[z1]||e[ge]>0&&!a.idempotent||e[ge]>0&&(a.upgrade||a.method==="CONNECT")||(U.isStream(a.body)&&U.bodyLength(a.body)===0&&(a.body.on("data",function(){D(!1)}).on("error",function(r){KA(e,a,r)}).on("end",function(){U.destroy(this)}),a.body=null),e[ge]>0&&(U.isStream(a.body)||U.isAsyncIterable(a.body))))return;!a.aborted&&tI(e,a)?e[fA]++:e[oe].splice(e[fA],1)}}function tI(e,A){let{body:t,method:a,path:r,host:i,upgrade:s,headers:n,blocking:o,reset:d}=A,l=a==="PUT"||a==="POST"||a==="PATCH";t&&typeof t.read=="function"&&t.read(0);let p=U.bodyLength(t);if(p===null&&(p=A.contentLength),p===0&&!l&&(p=null),A.contentLength!==null&&A.contentLength!==p){if(e[Hi])return KA(e,A,new r1),!1;process.emitWarning(new r1)}let g=e[rA];try{A.onConnect(u=>{A.aborted||A.completed||(KA(e,A,u||new b6),U.destroy(g,new i1("aborted")))})}catch(u){KA(e,A,u)}if(A.aborted)return!1;a==="HEAD"&&(g[Je]=!0),(s||a==="CONNECT")&&(g[Je]=!0),d!=null&&(g[Je]=d),e[dr]&&g[M6]++>=e[dr]&&(g[Je]=!0),o&&(g[z1]=!0);let c=`${a} ${r} HTTP/1.1\r +`);c.push(w,B,u),typeof B.size=="number"?i+=w.byteLength+B.size+u.byteLength:Q=!0}let m=g.encode(`--${o}--`);c.push(m),i+=m.byteLength,Q&&(i=null),r=e,a=async function*(){for(let C of c)C.stream?yield*C.stream():yield C},s="multipart/form-data; boundary="+o}else if(H4(e))r=e,i=e.size,e.type&&(s=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(A)throw new TypeError("keepalive");if(G1.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");t=e instanceof ot?e:hB(e)}if((typeof r=="string"||G1.isBuffer(r))&&(i=Buffer.byteLength(r)),a!=null){let o;t=new ot({async start(){o=a(e)[Symbol.asyncIterator]()},async pull(d){let{value:l,done:p}=await o.next();return p?queueMicrotask(()=>{d.close()}):bB(t)||d.enqueue(new Uint8Array(l)),d.desiredSize>0},async cancel(d){await o.return()},type:void 0})}return[{stream:t,source:r,length:i},s]}function LB(e,A=!1){return ot||(ot=require("stream/web").ReadableStream),e instanceof ot&&(Yo(!G1.isDisturbed(e),"The body has already been consumed."),Yo(!e.locked,"The stream is locked.")),X4(e,A)}function MB(e){let[A,t]=e.stream.tee(),a=DB(t,{transfer:[t]}),[,r]=a.tee();return e.stream=A,{stream:r,length:e.length,source:e.source}}async function*W4(e){if(e)if(j4(e))yield e;else{let A=e.stream;if(G1.isDisturbed(A))throw new TypeError("The body has already been consumed.");if(A.locked)throw new TypeError("The stream is locked.");A[NB]=!0,yield*A}}function Jo(e){if(e.aborted)throw new Z4("The operation was aborted.","AbortError")}function TB(e){return{blob(){return Ri(this,t=>{let a=GB(this);return a==="failure"?a="":a&&(a=UB(a)),new RB([t],{type:a})},e)},arrayBuffer(){return Ri(this,t=>new Uint8Array(t).buffer,e)},text(){return Ri(this,z4,e)},json(){return Ri(this,JB,e)},async formData(){Vo.brandCheck(this,e),Jo(this[dt]);let t=this.headers.get("Content-Type");if(/multipart\/form-data/.test(t)){let a={};for(let[n,o]of this.headers)a[n.toLowerCase()]=o;let r=new O4,i;try{i=BB({headers:a,defParamCharset:"utf8"})}catch(n){throw new Z4(`${n}`,"AbortError")}i.on("field",(n,o)=>{r.append(n,o)}),i.on("file",(n,o,d)=>{let{filename:l,encoding:p,mimeType:g}=d,c=[];if(p==="base64"||p.toLowerCase()==="base64"){let u="";o.on("data",Q=>{u+=Q.toString().replace(/[\r\n]/gm,"");let m=u.length-u.length%4;c.push(Buffer.from(u.slice(0,m),"base64")),u=u.slice(m)}),o.on("end",()=>{c.push(Buffer.from(u,"base64")),r.append(n,new P4(c,l,{type:g}))})}else o.on("data",u=>{c.push(u)}),o.on("end",()=>{r.append(n,new P4(c,l,{type:g}))})});let s=new Promise((n,o)=>{i.on("finish",n),i.on("error",d=>o(new TypeError(d)))});if(this.body!==null)for await(let n of W4(this[dt].body))i.write(n);return i.end(),await s,r}else if(/application\/x-www-form-urlencoded/.test(t)){let a;try{let i="",s=new TextDecoder("utf-8",{ignoreBOM:!0});for await(let n of W4(this[dt].body)){if(!j4(n))throw new TypeError("Expected Uint8Array chunk");i+=s.decode(n,{stream:!0})}i+=s.decode(),a=new URLSearchParams(i)}catch(i){throw Object.assign(new TypeError,{cause:i})}let r=new O4;for(let[i,s]of a)r.append(i,s);return r}else throw await Promise.resolve(),Jo(this[dt]),Vo.errors.exception({header:`${e.name}.formData`,message:"Could not parse content as FormData."})}}}function VB(e){Object.assign(e.prototype,TB(e))}async function Ri(e,A,t){if(Vo.brandCheck(e,t),Jo(e[dt]),YB(e[dt].body))throw new TypeError("Body is unusable");let a=wB(),r=s=>a.reject(s),i=s=>{try{a.resolve(A(s))}catch(n){r(n)}};return e[dt].body==null?(i(new Uint8Array),a.promise):(yB(e[dt].body,i,r),a.promise)}function YB(e){return e!=null&&(e.stream.locked||G1.isDisturbed(e.stream))}function z4(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),new TextDecoder().decode(e))}function JB(e){return JSON.parse(z4(e))}function GB(e){let{headersList:A}=e[dt],t=A.get("content-type");return t===null?"failure":FB(t)}K4.exports={extractBody:X4,safelyExtractBody:LB,cloneBody:MB,mixinBody:VB}});var tg=E((ZN,Ag)=>{"use strict";var{InvalidArgumentError:ae,NotSupportedError:xB}=z(),pt=require("assert"),eA=_(),$4=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,eg=/[^\t\x20-\x7e\x80-\xff]/,_B=/[^\u0021-\u00ff]/,lt=Symbol("handler"),ue={},Go;try{let e=require("diagnostics_channel");ue.create=e.channel("undici:request:create"),ue.bodySent=e.channel("undici:request:bodySent"),ue.headers=e.channel("undici:request:headers"),ue.trailers=e.channel("undici:request:trailers"),ue.error=e.channel("undici:request:error")}catch{ue.create={hasSubscribers:!1},ue.bodySent={hasSubscribers:!1},ue.headers={hasSubscribers:!1},ue.trailers={hasSubscribers:!1},ue.error={hasSubscribers:!1}}var qo=class{constructor(A,{path:t,method:a,body:r,headers:i,query:s,idempotent:n,blocking:o,upgrade:d,headersTimeout:l,bodyTimeout:p,reset:g,throwOnError:c},u){if(typeof t!="string")throw new ae("path must be a string");if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&a!=="CONNECT")throw new ae("path must be an absolute URL or start with a slash");if(_B.exec(t)!==null)throw new ae("invalid request path");if(typeof a!="string")throw new ae("method must be a string");if($4.exec(a)===null)throw new ae("invalid request method");if(d&&typeof d!="string")throw new ae("upgrade must be a string");if(l!=null&&(!Number.isFinite(l)||l<0))throw new ae("invalid headersTimeout");if(p!=null&&(!Number.isFinite(p)||p<0))throw new ae("invalid bodyTimeout");if(g!=null&&typeof g!="boolean")throw new ae("invalid reset");if(this.headersTimeout=l,this.bodyTimeout=p,this.throwOnError=c===!0,this.method=a,r==null)this.body=null;else if(eA.isStream(r))this.body=r;else if(eA.isBuffer(r))this.body=r.byteLength?r:null;else if(ArrayBuffer.isView(r))this.body=r.buffer.byteLength?Buffer.from(r.buffer,r.byteOffset,r.byteLength):null;else if(r instanceof ArrayBuffer)this.body=r.byteLength?Buffer.from(r):null;else if(typeof r=="string")this.body=r.length?Buffer.from(r):null;else if(eA.isFormDataLike(r)||eA.isIterable(r)||eA.isBlobLike(r))this.body=r;else throw new ae("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=d||null,this.path=s?eA.buildURL(t,s):t,this.origin=A,this.idempotent=n??(a==="HEAD"||a==="GET"),this.blocking=o??!1,this.reset=g??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers="",Array.isArray(i)){if(i.length%2!==0)throw new ae("headers array must be even");for(let Q=0;Q<i.length;Q+=2)_o(this,i[Q],i[Q+1])}else if(i&&typeof i=="object"){let Q=Object.keys(i);for(let m=0;m<Q.length;m++){let C=Q[m];_o(this,C,i[C])}}else if(i!=null)throw new ae("headers must be an object or an array");if(eA.isFormDataLike(this.body)){if(eA.nodeMajor<16||eA.nodeMajor===16&&eA.nodeMinor<8)throw new ae("Form-Data bodies are only supported in node v16.8 and newer.");Go||(Go=Za().extractBody);let[Q,m]=Go(r);this.contentType==null&&(this.contentType=m,this.headers+=`content-type: ${m}\r +`),this.body=Q.stream,this.contentLength=Q.length}else eA.isBlobLike(r)&&this.contentType==null&&r.type&&(this.contentType=r.type,this.headers+=`content-type: ${r.type}\r +`);eA.validateHandler(u,a,d),this.servername=eA.getServerName(this.host),this[lt]=u,ue.create.hasSubscribers&&ue.create.publish({request:this})}onBodySent(A){if(this[lt].onBodySent)try{this[lt].onBodySent(A)}catch(t){this.onError(t)}}onRequestSent(){ue.bodySent.hasSubscribers&&ue.bodySent.publish({request:this})}onConnect(A){return pt(!this.aborted),pt(!this.completed),this[lt].onConnect(A)}onHeaders(A,t,a,r){return pt(!this.aborted),pt(!this.completed),ue.headers.hasSubscribers&&ue.headers.publish({request:this,response:{statusCode:A,headers:t,statusText:r}}),this[lt].onHeaders(A,t,a,r)}onData(A){return pt(!this.aborted),pt(!this.completed),this[lt].onData(A)}onUpgrade(A,t,a){return pt(!this.aborted),pt(!this.completed),this[lt].onUpgrade(A,t,a)}onComplete(A){return pt(!this.aborted),this.completed=!0,ue.trailers.hasSubscribers&&ue.trailers.publish({request:this,trailers:A}),this[lt].onComplete(A)}onError(A){if(ue.error.hasSubscribers&&ue.error.publish({request:this,error:A}),!this.aborted)return this.aborted=!0,this[lt].onError(A)}addHeader(A,t){return _o(this,A,t),this}};function xo(e,A){if(A&&typeof A=="object")throw new ae(`invalid ${e} header`);if(A=A!=null?`${A}`:"",eg.exec(A)!==null)throw new ae(`invalid ${e} header`);return`${e}: ${A}\r +`}function _o(e,A,t){if(t&&typeof t=="object"&&!Array.isArray(t))throw new ae(`invalid ${A} header`);if(t===void 0)return;if(e.host===null&&A.length===4&&A.toLowerCase()==="host"){if(eg.exec(t)!==null)throw new ae(`invalid ${A} header`);e.host=t}else if(e.contentLength===null&&A.length===14&&A.toLowerCase()==="content-length"){if(e.contentLength=parseInt(t,10),!Number.isFinite(e.contentLength))throw new ae("invalid content-length header")}else if(e.contentType===null&&A.length===12&&A.toLowerCase()==="content-type")e.contentType=t,e.headers+=xo(A,t);else{if(A.length===17&&A.toLowerCase()==="transfer-encoding")throw new ae("invalid transfer-encoding header");if(A.length===10&&A.toLowerCase()==="connection"){let a=typeof t=="string"?t.toLowerCase():null;if(a!=="close"&&a!=="keep-alive")throw new ae("invalid connection header");a==="close"&&(e.reset=!0)}else{if(A.length===10&&A.toLowerCase()==="keep-alive")throw new ae("invalid keep-alive header");if(A.length===7&&A.toLowerCase()==="upgrade")throw new ae("invalid upgrade header");if(A.length===6&&A.toLowerCase()==="expect")throw new xB("expect header not supported");if($4.exec(A)===null)throw new ae("invalid header key");if(Array.isArray(t))for(let a=0;a<t.length;a++)e.headers+=xo(A,t[a]);else e.headers+=xo(A,t)}}}Ag.exports=qo});var vi=E((jN,ag)=>{"use strict";var qB=require("events"),Ho=class extends qB{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}};ag.exports=Ho});var Xa=E((XN,rg)=>{"use strict";var HB=vi(),{ClientDestroyedError:Oo,ClientClosedError:OB,InvalidArgumentError:x1}=z(),{kDestroy:PB,kClose:WB,kDispatch:Po,kInterceptors:Kt}=te(),_1=Symbol("destroyed"),ja=Symbol("closed"),gt=Symbol("onDestroyed"),q1=Symbol("onClosed"),Ni=Symbol("Intercepted Dispatch"),Wo=class extends HB{constructor(){super(),this[_1]=!1,this[gt]=null,this[ja]=!1,this[q1]=[]}get destroyed(){return this[_1]}get closed(){return this[ja]}get interceptors(){return this[Kt]}set interceptors(A){if(A){for(let t=A.length-1;t>=0;t--)if(typeof this[Kt][t]!="function")throw new x1("interceptor must be an function")}this[Kt]=A}close(A){if(A===void 0)return new Promise((a,r)=>{this.close((i,s)=>i?r(i):a(s))});if(typeof A!="function")throw new x1("invalid callback");if(this[_1]){queueMicrotask(()=>A(new Oo,null));return}if(this[ja]){this[q1]?this[q1].push(A):queueMicrotask(()=>A(null,null));return}this[ja]=!0,this[q1].push(A);let t=()=>{let a=this[q1];this[q1]=null;for(let r=0;r<a.length;r++)a[r](null,null)};this[WB]().then(()=>this.destroy()).then(()=>{queueMicrotask(t)})}destroy(A,t){if(typeof A=="function"&&(t=A,A=null),t===void 0)return new Promise((r,i)=>{this.destroy(A,(s,n)=>s?i(s):r(n))});if(typeof t!="function")throw new x1("invalid callback");if(this[_1]){this[gt]?this[gt].push(t):queueMicrotask(()=>t(null,null));return}A||(A=new Oo),this[_1]=!0,this[gt]=this[gt]||[],this[gt].push(t);let a=()=>{let r=this[gt];this[gt]=null;for(let i=0;i<r.length;i++)r[i](null,null)};this[PB](A).then(()=>{queueMicrotask(a)})}[Ni](A,t){if(!this[Kt]||this[Kt].length===0)return this[Ni]=this[Po],this[Po](A,t);let a=this[Po].bind(this);for(let r=this[Kt].length-1;r>=0;r--)a=this[Kt][r](a);return this[Ni]=a,a(A,t)}dispatch(A,t){if(!t||typeof t!="object")throw new x1("handler must be an object");try{if(!A||typeof A!="object")throw new x1("opts must be an object.");if(this[_1]||this[gt])throw new Oo;if(this[ja])throw new OB;return this[Ni](A,t)}catch(a){if(typeof t.onError!="function")throw new x1("invalid onError method");return t.onError(a),!1}}};rg.exports=Wo});var za=E(($N,ng)=>{"use strict";var ZB=require("net"),ig=require("assert"),sg=_(),{InvalidArgumentError:jB,ConnectTimeoutError:XB}=z(),Zo,jo;global.FinalizationRegistry?jo=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(t=>{if(this._sessionCache.size<this._maxCachedSessions)return;let a=this._sessionCache.get(t);a!==void 0&&a.deref()===void 0&&this._sessionCache.delete(t)})}get(A){let t=this._sessionCache.get(A);return t?t.deref():null}set(A,t){this._maxCachedSessions!==0&&(this._sessionCache.set(A,new WeakRef(t)),this._sessionRegistry.register(t,A))}}:jo=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map}get(A){return this._sessionCache.get(A)}set(A,t){if(this._maxCachedSessions!==0){if(this._sessionCache.size>=this._maxCachedSessions){let{value:a}=this._sessionCache.keys().next();this._sessionCache.delete(a)}this._sessionCache.set(A,t)}}};function zB({maxCachedSessions:e,socketPath:A,timeout:t,...a}){if(e!=null&&(!Number.isInteger(e)||e<0))throw new jB("maxCachedSessions must be a positive integer or zero");let r={path:A,...a},i=new jo(e??100);return t=t??1e4,function({hostname:n,host:o,protocol:d,port:l,servername:p,localAddress:g,httpSocket:c},u){let Q;if(d==="https:"){Zo||(Zo=require("tls")),p=p||r.servername||sg.getServerName(o)||null;let C=p||n,B=i.get(C)||null;ig(C),Q=Zo.connect({highWaterMark:16384,...r,servername:p,session:B,localAddress:g,socket:c,port:l||443,host:n}),Q.on("session",function(w){i.set(C,w)})}else ig(!c,"httpSocket can only be sent on TLS update"),Q=ZB.connect({highWaterMark:64*1024,...r,localAddress:g,port:l||80,host:n});if(r.keepAlive==null||r.keepAlive){let C=r.keepAliveInitialDelay===void 0?6e4:r.keepAliveInitialDelay;Q.setKeepAlive(!0,C)}let m=KB(()=>$B(Q),t);return Q.setNoDelay(!0).once(d==="https:"?"secureConnect":"connect",function(){if(m(),u){let C=u;u=null,C(null,this)}}).on("error",function(C){if(m(),u){let B=u;u=null,B(C)}}),Q}}function KB(e,A){if(!A)return()=>{};let t=null,a=null,r=setTimeout(()=>{t=setImmediate(()=>{process.platform==="win32"?a=setImmediate(()=>e()):e()})},A);return()=>{clearTimeout(r),clearImmediate(t),clearImmediate(a)}}function $B(e){sg.destroy(e,new XB)}ng.exports=zB});var og=E(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});bi.enumToMap=void 0;function eh(e){let A={};return Object.keys(e).forEach(t=>{let a=e[t];typeof a=="number"&&(A[t]=a)}),A}bi.enumToMap=eh});var dg=E(h=>{"use strict";Object.defineProperty(h,"__esModule",{value:!0});h.SPECIAL_HEADERS=h.HEADER_STATE=h.MINOR=h.MAJOR=h.CONNECTION_TOKEN_CHARS=h.HEADER_CHARS=h.TOKEN=h.STRICT_TOKEN=h.HEX=h.URL_CHAR=h.STRICT_URL_CHAR=h.USERINFO_CHARS=h.MARK=h.ALPHANUM=h.NUM=h.HEX_MAP=h.NUM_MAP=h.ALPHA=h.FINISH=h.H_METHOD_MAP=h.METHOD_MAP=h.METHODS_RTSP=h.METHODS_ICE=h.METHODS_HTTP=h.METHODS=h.LENIENT_FLAGS=h.FLAGS=h.TYPE=h.ERROR=void 0;var Ah=og(),th;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(th=h.ERROR||(h.ERROR={}));var ah;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(ah=h.TYPE||(h.TYPE={}));var rh;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(rh=h.FLAGS||(h.FLAGS={}));var ih;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(ih=h.LENIENT_FLAGS||(h.LENIENT_FLAGS={}));var R;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(R=h.METHODS||(h.METHODS={}));h.METHODS_HTTP=[R.DELETE,R.GET,R.HEAD,R.POST,R.PUT,R.CONNECT,R.OPTIONS,R.TRACE,R.COPY,R.LOCK,R.MKCOL,R.MOVE,R.PROPFIND,R.PROPPATCH,R.SEARCH,R.UNLOCK,R.BIND,R.REBIND,R.UNBIND,R.ACL,R.REPORT,R.MKACTIVITY,R.CHECKOUT,R.MERGE,R["M-SEARCH"],R.NOTIFY,R.SUBSCRIBE,R.UNSUBSCRIBE,R.PATCH,R.PURGE,R.MKCALENDAR,R.LINK,R.UNLINK,R.PRI,R.SOURCE];h.METHODS_ICE=[R.SOURCE];h.METHODS_RTSP=[R.OPTIONS,R.DESCRIBE,R.ANNOUNCE,R.SETUP,R.PLAY,R.PAUSE,R.TEARDOWN,R.GET_PARAMETER,R.SET_PARAMETER,R.REDIRECT,R.RECORD,R.FLUSH,R.GET,R.POST];h.METHOD_MAP=Ah.enumToMap(R);h.H_METHOD_MAP={};Object.keys(h.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(h.H_METHOD_MAP[e]=h.METHOD_MAP[e])});var sh;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(sh=h.FINISH||(h.FINISH={}));h.ALPHA=[];for(let e=65;e<=90;e++)h.ALPHA.push(String.fromCharCode(e)),h.ALPHA.push(String.fromCharCode(e+32));h.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};h.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};h.NUM=["0","1","2","3","4","5","6","7","8","9"];h.ALPHANUM=h.ALPHA.concat(h.NUM);h.MARK=["-","_",".","!","~","*","'","(",")"];h.USERINFO_CHARS=h.ALPHANUM.concat(h.MARK).concat(["%",";",":","&","=","+","$",","]);h.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(h.ALPHANUM);h.URL_CHAR=h.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)h.URL_CHAR.push(e);h.HEX=h.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);h.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(h.ALPHANUM);h.TOKEN=h.STRICT_TOKEN.concat([" "]);h.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&h.HEADER_CHARS.push(e);h.CONNECTION_TOKEN_CHARS=h.HEADER_CHARS.filter(e=>e!==44);h.MAJOR=h.NUM_MAP;h.MINOR=h.MAJOR;var H1;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(H1=h.HEADER_STATE||(h.HEADER_STATE={}));h.SPECIAL_HEADERS={connection:H1.CONNECTION,"content-length":H1.CONTENT_LENGTH,"proxy-connection":H1.CONNECTION,"transfer-encoding":H1.TRANSFER_ENCODING,upgrade:H1.UPGRADE}});var Ko=E((tb,gg)=>{"use strict";var O1=_(),{kBodyUsed:Ka}=te(),zo=require("assert"),{InvalidArgumentError:nh}=z(),oh=require("events"),dh=[300,301,302,303,307,308],pg=Symbol("body"),Si=class{constructor(A){this[pg]=A,this[Ka]=!1}async*[Symbol.asyncIterator](){zo(!this[Ka],"disturbed"),this[Ka]=!0,yield*this[pg]}},Xo=class{constructor(A,t,a,r){if(t!=null&&(!Number.isInteger(t)||t<0))throw new nh("maxRedirections must be a positive number");O1.validateHandler(r,a.method,a.upgrade),this.dispatch=A,this.location=null,this.abort=null,this.opts={...a,maxRedirections:0},this.maxRedirections=t,this.handler=r,this.history=[],O1.isStream(this.opts.body)?(O1.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){zo(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[Ka]=!1,oh.prototype.on.call(this.opts.body,"data",function(){this[Ka]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new Si(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&O1.isIterable(this.opts.body)&&(this.opts.body=new Si(this.opts.body))}onConnect(A){this.abort=A,this.handler.onConnect(A,{history:this.history})}onUpgrade(A,t,a){this.handler.onUpgrade(A,t,a)}onError(A){this.handler.onError(A)}onHeaders(A,t,a,r){if(this.location=this.history.length>=this.maxRedirections||O1.isDisturbed(this.opts.body)?null:ph(A,t),this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(A,t,a,r);let{origin:i,pathname:s,search:n}=O1.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),o=n?`${s}${n}`:s;this.opts.headers=lh(this.opts.headers,A===303,this.opts.origin!==i),this.opts.path=o,this.opts.origin=i,this.opts.maxRedirections=0,this.opts.query=null,A===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(A){if(!this.location)return this.handler.onData(A)}onComplete(A){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(A)}onBodySent(A){this.handler.onBodySent&&this.handler.onBodySent(A)}};function ph(e,A){if(dh.indexOf(e)===-1)return null;for(let t=0;t<A.length;t+=2)if(A[t].toString().toLowerCase()==="location")return A[t+1]}function lg(e,A,t){return e.length===4&&e.toString().toLowerCase()==="host"||A&&e.toString().toLowerCase().indexOf("content-")===0||t&&e.length===13&&e.toString().toLowerCase()==="authorization"||t&&e.length===6&&e.toString().toLowerCase()==="cookie"}function lh(e,A,t){let a=[];if(Array.isArray(e))for(let r=0;r<e.length;r+=2)lg(e[r],A,t)||a.push(e[r],e[r+1]);else if(e&&typeof e=="object")for(let r of Object.keys(e))lg(r,A,t)||a.push(r,e[r]);else zo(e==null,"headers must be an object or an array");return a}gg.exports=Xo});var ki=E((ab,cg)=>{"use strict";var gh=Ko();function ch({maxRedirections:e}){return A=>function(a,r){let{maxRedirections:i=e}=a;if(!i)return A(a,r);let s=new gh(A,i,a,r);return a={...a,maxRedirections:0},A(a,s)}}cg.exports=ch});var $o=E((rb,ug)=>{ug.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="});var Qg=E((ib,Eg)=>{Eg.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="});var rr=E((sb,Lg)=>{"use strict";var D=require("assert"),Bg=require("net"),U=_(),ed=Wl(),uh=tg(),Eh=Xa(),{RequestContentLengthMismatchError:$t,ResponseContentLengthMismatchError:Qh,InvalidArgumentError:me,RequestAbortedError:hg,HeadersTimeoutError:Ch,HeadersOverflowError:mh,SocketError:Ti,InformationalError:e1,BodyTimeoutError:Bh,HTTPParserError:hh,ResponseExceededMaxSizeError:Ih,ClientDestroyedError:fh}=z(),wh=za(),{kUrl:CA,kReset:Ve,kServerName:bt,kClient:Ji,kBusy:td,kParser:$,kConnect:yh,kBlocking:W1,kResuming:A1,kRunning:ge,kPending:Z1,kSize:t1,kWriting:ct,kQueue:oe,kConnected:Dh,kConnecting:P1,kNeedDrain:kt,kNoRef:$a,kKeepAliveDefaultTimeout:ad,kHostHeader:Ig,kPendingIdx:mA,kRunningIdx:le,kError:tA,kPipelining:Ft,kSocket:AA,kKeepAliveTimeoutValue:tr,kMaxHeadersSize:Li,kKeepAliveMaxTimeout:fg,kKeepAliveTimeoutThreshold:wg,kHeadersTimeout:yg,kBodyTimeout:Dg,kStrictContentLength:Vi,kConnector:er,kMaxRedirections:Rh,kMaxRequests:ar,kCounter:Rg,kClose:vh,kDestroy:Nh,kDispatch:bh,kInterceptors:Sh,kLocalAddress:Ar,kMaxResponseSize:vg}=te(),Fi=Buffer[Symbol.species],St=Symbol("kClosedResolve"),Le={};try{let e=require("diagnostics_channel");Le.sendHeaders=e.channel("undici:client:sendHeaders"),Le.beforeConnect=e.channel("undici:client:beforeConnect"),Le.connectError=e.channel("undici:client:connectError"),Le.connected=e.channel("undici:client:connected")}catch{Le.sendHeaders={hasSubscribers:!1},Le.beforeConnect={hasSubscribers:!1},Le.connectError={hasSubscribers:!1},Le.connected={hasSubscribers:!1}}var rd=class extends Eh{constructor(A,{interceptors:t,maxHeaderSize:a,headersTimeout:r,socketTimeout:i,requestTimeout:s,connectTimeout:n,bodyTimeout:o,idleTimeout:d,keepAlive:l,keepAliveTimeout:p,maxKeepAliveTimeout:g,keepAliveMaxTimeout:c,keepAliveTimeoutThreshold:u,socketPath:Q,pipelining:m,tls:C,strictContentLength:B,maxCachedSessions:w,maxRedirections:I,connect:y,maxRequestsPerClient:b,localAddress:F,maxResponseSize:x,autoSelectFamily:he,autoSelectFamilyAttemptTimeout:Qe}={}){if(super(),l!==void 0)throw new me("unsupported keepAlive, use pipelining=0 instead");if(i!==void 0)throw new me("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(s!==void 0)throw new me("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(d!==void 0)throw new me("unsupported idleTimeout, use keepAliveTimeout instead");if(g!==void 0)throw new me("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(a!=null&&!Number.isFinite(a))throw new me("invalid maxHeaderSize");if(Q!=null&&typeof Q!="string")throw new me("invalid socketPath");if(n!=null&&(!Number.isFinite(n)||n<0))throw new me("invalid connectTimeout");if(p!=null&&(!Number.isFinite(p)||p<=0))throw new me("invalid keepAliveTimeout");if(c!=null&&(!Number.isFinite(c)||c<=0))throw new me("invalid keepAliveMaxTimeout");if(u!=null&&!Number.isFinite(u))throw new me("invalid keepAliveTimeoutThreshold");if(r!=null&&(!Number.isInteger(r)||r<0))throw new me("headersTimeout must be a positive integer or zero");if(o!=null&&(!Number.isInteger(o)||o<0))throw new me("bodyTimeout must be a positive integer or zero");if(y!=null&&typeof y!="function"&&typeof y!="object")throw new me("connect must be a function or an object");if(I!=null&&(!Number.isInteger(I)||I<0))throw new me("maxRedirections must be a positive number");if(b!=null&&(!Number.isInteger(b)||b<0))throw new me("maxRequestsPerClient must be a positive number");if(F!=null&&(typeof F!="string"||Bg.isIP(F)===0))throw new me("localAddress must be valid string IP address");if(x!=null&&(!Number.isInteger(x)||x<-1))throw new me("maxResponseSize must be a positive number");if(Qe!=null&&(!Number.isInteger(Qe)||Qe<-1))throw new me("autoSelectFamilyAttemptTimeout must be a positive number");typeof y!="function"&&(y=wh({...C,maxCachedSessions:w,socketPath:Q,timeout:n,...U.nodeHasAutoSelectFamily&&he?{autoSelectFamily:he,autoSelectFamilyAttemptTimeout:Qe}:void 0,...y})),this[Sh]=t&&t.Client&&Array.isArray(t.Client)?t.Client:[kh({maxRedirections:I})],this[CA]=U.parseOrigin(A),this[er]=y,this[AA]=null,this[Ft]=m??1,this[Li]=a||16384,this[ad]=p??4e3,this[fg]=c??6e5,this[wg]=u??1e3,this[tr]=this[ad],this[bt]=null,this[Ar]=F??null,this[A1]=0,this[kt]=0,this[Ig]=`host: ${this[CA].hostname}${this[CA].port?`:${this[CA].port}`:""}\r +`,this[Dg]=o??3e5,this[yg]=r??3e5,this[Vi]=B??!0,this[Rh]=I,this[ar]=b,this[St]=null,this[vg]=x>-1?x:-1,this[oe]=[],this[le]=0,this[mA]=0}get pipelining(){return this[Ft]}set pipelining(A){this[Ft]=A,BA(this,!0)}get[Z1](){return this[oe].length-this[mA]}get[ge](){return this[mA]-this[le]}get[t1](){return this[oe].length-this[le]}get[Dh](){return!!this[AA]&&!this[P1]&&!this[AA].destroyed}get[td](){let A=this[AA];return A&&(A[Ve]||A[ct]||A[W1])||this[t1]>=(this[Ft]||1)||this[Z1]>0}[yh](A){Ug(this),this.once("connect",A)}[bh](A,t){let a=A.origin||this[CA].origin,r=new uh(a,A,t);return this[oe].push(r),this[A1]||(U.bodyLength(r.body)==null&&U.isIterable(r.body)?(this[A1]=1,process.nextTick(BA,this)):BA(this,!0)),this[A1]&&this[kt]!==2&&this[td]&&(this[kt]=2),this[kt]<2}async[vh](){return new Promise(A=>{this[t1]?this[St]=A:A(null)})}async[Nh](A){return new Promise(t=>{let a=this[oe].splice(this[mA]);for(let i=0;i<a.length;i++){let s=a[i];ZA(this,s,A)}let r=()=>{this[St]&&(this[St](),this[St]=null),t()};this[AA]?U.destroy(this[AA].on("close",r),A):queueMicrotask(r),BA(this)})}},OA=dg(),kh=ki(),Fh=Buffer.alloc(0);async function Uh(){let e=process.env.JEST_WORKER_ID?$o():void 0,A;try{A=await WebAssembly.compile(Buffer.from(Qg(),"base64"))}catch{A=await WebAssembly.compile(Buffer.from(e||$o(),"base64"))}return await WebAssembly.instantiate(A,{env:{wasm_on_url:(t,a,r)=>0,wasm_on_status:(t,a,r)=>{D.strictEqual(Be.ptr,t);let i=a-WA+PA.byteOffset;return Be.onStatus(new Fi(PA.buffer,i,r))||0},wasm_on_message_begin:t=>(D.strictEqual(Be.ptr,t),Be.onMessageBegin()||0),wasm_on_header_field:(t,a,r)=>{D.strictEqual(Be.ptr,t);let i=a-WA+PA.byteOffset;return Be.onHeaderField(new Fi(PA.buffer,i,r))||0},wasm_on_header_value:(t,a,r)=>{D.strictEqual(Be.ptr,t);let i=a-WA+PA.byteOffset;return Be.onHeaderValue(new Fi(PA.buffer,i,r))||0},wasm_on_headers_complete:(t,a,r,i)=>(D.strictEqual(Be.ptr,t),Be.onHeadersComplete(a,!!r,!!i)||0),wasm_on_body:(t,a,r)=>{D.strictEqual(Be.ptr,t);let i=a-WA+PA.byteOffset;return Be.onBody(new Fi(PA.buffer,i,r))||0},wasm_on_message_complete:t=>(D.strictEqual(Be.ptr,t),Be.onMessageComplete()||0)}})}var Ad=null,id=Uh();id.catch();var Be=null,PA=null,Ui=0,WA=null,j1=1,Mi=2,sd=3,nd=class{constructor(A,t,{exports:a}){D(Number.isFinite(A[Li])&&A[Li]>0),this.llhttp=a,this.ptr=this.llhttp.llhttp_alloc(OA.TYPE.RESPONSE),this.client=A,this.socket=t,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=A[Li],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=A[vg]}setTimeout(A,t){this.timeoutType=t,A!==this.timeoutValue?(ed.clearTimeout(this.timeout),A?(this.timeout=ed.setTimeout(Lh,A,this),this.timeout.unref&&this.timeout.unref()):this.timeout=null,this.timeoutValue=A):this.timeout&&this.timeout.refresh&&this.timeout.refresh()}resume(){this.socket.destroyed||!this.paused||(D(this.ptr!=null),D(Be==null),this.llhttp.llhttp_resume(this.ptr),D(this.timeoutType===Mi),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||Fh),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let A=this.socket.read();if(A===null)break;this.execute(A)}}execute(A){D(this.ptr!=null),D(Be==null),D(!this.paused);let{socket:t,llhttp:a}=this;A.length>Ui&&(WA&&a.free(WA),Ui=Math.ceil(A.length/4096)*4096,WA=a.malloc(Ui)),new Uint8Array(a.memory.buffer,WA,Ui).set(A);try{let r;try{PA=A,Be=this,r=a.llhttp_execute(this.ptr,WA,A.length)}catch(s){throw s}finally{Be=null,PA=null}let i=a.llhttp_get_error_pos(this.ptr)-WA;if(r===OA.ERROR.PAUSED_UPGRADE)this.onUpgrade(A.slice(i));else if(r===OA.ERROR.PAUSED)this.paused=!0,t.unshift(A.slice(i));else if(r!==OA.ERROR.OK){let s=a.llhttp_get_error_reason(this.ptr),n="";if(s){let o=new Uint8Array(a.memory.buffer,s).indexOf(0);n="Response does not match the HTTP/1.1 protocol ("+Buffer.from(a.memory.buffer,s,o).toString()+")"}throw new hh(n,OA.ERROR[r],A.slice(i))}}catch(r){U.destroy(t,r)}}destroy(){D(this.ptr!=null),D(Be==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,ed.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(A){this.statusText=A.toString()}onMessageBegin(){let{socket:A,client:t}=this;if(A.destroyed||!t[oe][t[le]])return-1}onHeaderField(A){let t=this.headers.length;(t&1)===0?this.headers.push(A):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]),this.trackHeader(A.length)}onHeaderValue(A){let t=this.headers.length;(t&1)===1?(this.headers.push(A),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]);let a=this.headers[t-2];a.length===10&&a.toString().toLowerCase()==="keep-alive"?this.keepAlive+=A.toString():a.length===10&&a.toString().toLowerCase()==="connection"?this.connection+=A.toString():a.length===14&&a.toString().toLowerCase()==="content-length"&&(this.contentLength+=A.toString()),this.trackHeader(A.length)}trackHeader(A){this.headersSize+=A,this.headersSize>=this.headersMaxSize&&U.destroy(this.socket,new mh)}onUpgrade(A){let{upgrade:t,client:a,socket:r,headers:i,statusCode:s}=this;D(t);let n=a[oe][a[le]];D(n),D(!r.destroyed),D(r===a[AA]),D(!this.paused),D(n.upgrade||n.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,D(this.headers.length%2===0),this.headers=[],this.headersSize=0,r.unshift(A),r[$].destroy(),r[$]=null,r[Ji]=null,r[tA]=null,r.removeListener("error",bg).removeListener("readable",Ng).removeListener("end",kg).removeListener("close",Fg),a[AA]=null,a[oe][a[le]++]=null,a.emit("disconnect",a[CA],[a],new e1("upgrade"));try{n.onUpgrade(s,i,r)}catch(o){U.destroy(r,o)}BA(a)}onHeadersComplete(A,t,a){let{client:r,socket:i,headers:s,statusText:n}=this;if(i.destroyed)return-1;let o=r[oe][r[le]];if(!o)return-1;if(D(!this.upgrade),D(this.statusCode<200),A===100)return U.destroy(i,new Ti("bad response",U.getSocketInfo(i))),-1;if(t&&!o.upgrade)return U.destroy(i,new Ti("bad upgrade",U.getSocketInfo(i))),-1;if(D.strictEqual(this.timeoutType,j1),this.statusCode=A,this.shouldKeepAlive=a||o.method==="HEAD"&&!i[Ve]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let l=o.bodyTimeout!=null?o.bodyTimeout:r[Dg];this.setTimeout(l,Mi)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(o.method==="CONNECT")return D(r[ge]===1),this.upgrade=!0,2;if(t)return D(r[ge]===1),this.upgrade=!0,2;if(D(this.headers.length%2===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&r[Ft]){let l=this.keepAlive?U.parseKeepAliveTimeout(this.keepAlive):null;if(l!=null){let p=Math.min(l-r[wg],r[fg]);p<=0?i[Ve]=!0:r[tr]=p}else r[tr]=r[ad]}else i[Ve]=!0;let d;try{d=o.onHeaders(A,s,this.resume,n)===!1}catch(l){return U.destroy(i,l),-1}return o.method==="HEAD"||A<200?1:(i[W1]&&(i[W1]=!1,BA(r)),d?OA.ERROR.PAUSED:0)}onBody(A){let{client:t,socket:a,statusCode:r,maxResponseSize:i}=this;if(a.destroyed)return-1;let s=t[oe][t[le]];if(D(s),D.strictEqual(this.timeoutType,Mi),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),D(r>=200),i>-1&&this.bytesRead+A.length>i)return U.destroy(a,new Ih),-1;this.bytesRead+=A.length;try{if(s.onData(A)===!1)return OA.ERROR.PAUSED}catch(n){return U.destroy(a,n),-1}}onMessageComplete(){let{client:A,socket:t,statusCode:a,upgrade:r,headers:i,contentLength:s,bytesRead:n,shouldKeepAlive:o}=this;if(t.destroyed&&(!a||o))return-1;if(r)return;let d=A[oe][A[le]];if(D(d),D(a>=100),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",D(this.headers.length%2===0),this.headers=[],this.headersSize=0,!(a<200)){if(d.method!=="HEAD"&&s&&n!==parseInt(s,10))return U.destroy(t,new Qh),-1;try{d.onComplete(i)}catch(l){ZA(A,d,l)}if(A[oe][A[le]++]=null,t[ct])return D.strictEqual(A[ge],0),U.destroy(t,new e1("reset")),OA.ERROR.PAUSED;if(o){if(t[Ve]&&A[ge]===0)return U.destroy(t,new e1("reset")),OA.ERROR.PAUSED;A[Ft]===1?setImmediate(BA,A):BA(A)}else return U.destroy(t,new e1("reset")),OA.ERROR.PAUSED}}};function Lh(e){let{socket:A,timeoutType:t,client:a}=e;t===j1?(!A[ct]||A.writableNeedDrain||a[ge]>1)&&(D(!e.paused,"cannot be paused while waiting for headers"),U.destroy(A,new Ch)):t===Mi?e.paused||U.destroy(A,new Bh):t===sd&&(D(a[ge]===0&&a[tr]),U.destroy(A,new e1("socket idle timeout")))}function Ng(){let{[$]:e}=this;e.readMore()}function bg(e){let{[$]:A}=this;if(D(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),e.code==="ECONNRESET"&&A.statusCode&&!A.shouldKeepAlive){A.onMessageComplete();return}this[tA]=e,Sg(this[Ji],e)}function Sg(e,A){if(e[ge]===0&&A.code!=="UND_ERR_INFO"&&A.code!=="UND_ERR_SOCKET"){D(e[mA]===e[le]);let t=e[oe].splice(e[le]);for(let a=0;a<t.length;a++){let r=t[a];ZA(e,r,A)}D(e[t1]===0)}}function kg(){let{[$]:e}=this;if(e.statusCode&&!e.shouldKeepAlive){e.onMessageComplete();return}U.destroy(this,new Ti("other side closed",U.getSocketInfo(this)))}function Fg(){let{[Ji]:e}=this;!this[tA]&&this[$].statusCode&&!this[$].shouldKeepAlive&&this[$].onMessageComplete(),this[$].destroy(),this[$]=null;let A=this[tA]||new Ti("closed",U.getSocketInfo(this));if(e[AA]=null,e.destroyed){D(e[Z1]===0);let t=e[oe].splice(e[le]);for(let a=0;a<t.length;a++){let r=t[a];ZA(e,r,A)}}else if(e[ge]>0&&A.code!=="UND_ERR_INFO"){let t=e[oe][e[le]];e[oe][e[le]++]=null,ZA(e,t,A)}e[mA]=e[le],D(e[ge]===0),e.emit("disconnect",e[CA],[e],A),BA(e)}async function Ug(e){D(!e[P1]),D(!e[AA]);let{host:A,hostname:t,protocol:a,port:r}=e[CA];if(t[0]==="["){let i=t.indexOf("]");D(i!==-1);let s=t.substr(1,i-1);D(Bg.isIP(s)),t=s}e[P1]=!0,Le.beforeConnect.hasSubscribers&&Le.beforeConnect.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[bt],localAddress:e[Ar]},connector:e[er]});try{let i=await new Promise((s,n)=>{e[er]({host:A,hostname:t,protocol:a,port:r,servername:e[bt],localAddress:e[Ar]},(o,d)=>{o?n(o):s(d)})});if(e.destroyed){U.destroy(i.on("error",()=>{}),new fh);return}Ad||(Ad=await id,id=null),e[P1]=!1,D(i),i[$a]=!1,i[ct]=!1,i[Ve]=!1,i[W1]=!1,i[tA]=null,i[$]=new nd(e,i,Ad),i[Ji]=e,i[Rg]=0,i[ar]=e[ar],i.on("error",bg).on("readable",Ng).on("end",kg).on("close",Fg),e[AA]=i,Le.connected.hasSubscribers&&Le.connected.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[bt],localAddress:e[Ar]},connector:e[er],socket:i}),e.emit("connect",e[CA],[e])}catch(i){if(e.destroyed)return;if(e[P1]=!1,Le.connectError.hasSubscribers&&Le.connectError.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[bt],localAddress:e[Ar]},connector:e[er],error:i}),i.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(D(e[ge]===0);e[Z1]>0&&e[oe][e[mA]].servername===e[bt];){let s=e[oe][e[mA]++];ZA(e,s,i)}else Sg(e,i);e.emit("connectionError",e[CA],[e],i)}BA(e)}function Cg(e){e[kt]=0,e.emit("drain",e[CA],[e])}function BA(e,A){e[A1]!==2&&(e[A1]=2,Mh(e,A),e[A1]=0,e[le]>256&&(e[oe].splice(0,e[le]),e[mA]-=e[le],e[le]=0))}function Mh(e,A){for(;;){if(e.destroyed){D(e[Z1]===0);return}if(e[St]&&!e[t1]){e[St](),e[St]=null;return}let t=e[AA];if(t&&!t.destroyed){if(e[t1]===0?!t[$a]&&t.unref&&(t.unref(),t[$a]=!0):t[$a]&&t.ref&&(t.ref(),t[$a]=!1),e[t1]===0)t[$].timeoutType!==sd&&t[$].setTimeout(e[tr],sd);else if(e[ge]>0&&t[$].statusCode<200&&t[$].timeoutType!==j1){let r=e[oe][e[le]],i=r.headersTimeout!=null?r.headersTimeout:e[yg];t[$].setTimeout(i,j1)}}if(e[td])e[kt]=2;else if(e[kt]===2){A?(e[kt]=1,process.nextTick(Cg,e)):Cg(e);continue}if(e[Z1]===0||e[ge]>=(e[Ft]||1))return;let a=e[oe][e[mA]];if(e[CA].protocol==="https:"&&e[bt]!==a.servername){if(e[ge]>0)return;if(e[bt]=a.servername,t&&t.servername!==a.servername){U.destroy(t,new e1("servername changed"));return}}if(e[P1])return;if(!t){Ug(e);return}if(t.destroyed||t[ct]||t[Ve]||t[W1]||e[ge]>0&&!a.idempotent||e[ge]>0&&(a.upgrade||a.method==="CONNECT")||(U.isStream(a.body)&&U.bodyLength(a.body)===0&&(a.body.on("data",function(){D(!1)}).on("error",function(r){ZA(e,a,r)}).on("end",function(){U.destroy(this)}),a.body=null),e[ge]>0&&(U.isStream(a.body)||U.isAsyncIterable(a.body))))return;!a.aborted&&Th(e,a)?e[mA]++:e[oe].splice(e[mA],1)}}function Th(e,A){let{body:t,method:a,path:r,host:i,upgrade:s,headers:n,blocking:o,reset:d}=A,l=a==="PUT"||a==="POST"||a==="PATCH";t&&typeof t.read=="function"&&t.read(0);let p=U.bodyLength(t);if(p===null&&(p=A.contentLength),p===0&&!l&&(p=null),A.contentLength!==null&&A.contentLength!==p){if(e[Vi])return ZA(e,A,new $t),!1;process.emitWarning(new $t)}let g=e[AA];try{A.onConnect(u=>{A.aborted||A.completed||(ZA(e,A,u||new hg),U.destroy(g,new e1("aborted")))})}catch(u){ZA(e,A,u)}if(A.aborted)return!1;a==="HEAD"&&(g[Ve]=!0),(s||a==="CONNECT")&&(g[Ve]=!0),d!=null&&(g[Ve]=d),e[ar]&&g[Rg]++>=e[ar]&&(g[Ve]=!0),o&&(g[W1]=!0);let c=`${a} ${r} HTTP/1.1\r `;return typeof i=="string"?c+=`host: ${i}\r -`:c+=e[S6],s?c+=`connection: upgrade\r +`:c+=e[Ig],s?c+=`connection: upgrade\r upgrade: ${s}\r -`:e[Jt]&&!g[Je]?c+=`connection: keep-alive\r +`:e[Ft]&&!g[Ve]?c+=`connection: keep-alive\r `:c+=`connection: close\r -`,n&&(c+=n),Me.sendHeaders.hasSubscribers&&Me.sendHeaders.publish({request:A,headers:c,socket:g}),t?U.isBuffer(t)?(D(p===t.byteLength,"buffer body must have content length"),g.cork(),g.write(`${c}content-length: ${p}\r +`,n&&(c+=n),Le.sendHeaders.hasSubscribers&&Le.sendHeaders.publish({request:A,headers:c,socket:g}),t?U.isBuffer(t)?(D(p===t.byteLength,"buffer body must have content length"),g.cork(),g.write(`${c}content-length: ${p}\r \r -`,"latin1"),g.write(t),g.uncork(),A.onBodySent(t),A.onRequestSent(),l||(g[Je]=!0)):U.isBlobLike(t)?typeof t.stream=="function"?v6({body:t.stream(),client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):rI({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):U.isStream(t)?aI({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):U.isIterable(t)?v6({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):D(!1):(p===0?g.write(`${c}content-length: 0\r +`,"latin1"),g.write(t),g.uncork(),A.onBodySent(t),A.onRequestSent(),l||(g[Ve]=!0)):U.isBlobLike(t)?typeof t.stream=="function"?mg({body:t.stream(),client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):Yh({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):U.isStream(t)?Vh({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):U.isIterable(t)?mg({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):D(!1):(p===0?g.write(`${c}content-length: 0\r \r `,"latin1"):(D(p===null,"no body must not have content length"),g.write(`${c}\r -`,"latin1")),A.onRequestSent()),!0}function aI({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r!==0||A[ge]===0,"stream body cannot be pipelined");let n=!1,o=new Oi({socket:a,request:t,contentLength:r,client:A,expectsPayload:s,header:i}),d=function(c){if(!n)try{!o.write(c)&&this.pause&&this.pause()}catch(u){U.destroy(this,u)}},l=function(){n||e.resume&&e.resume()},p=function(){g(new b6)},g=function(c){if(!n){if(n=!0,D(a.destroyed||a[Bt]&&A[ge]<=1),a.off("drain",l).off("error",g),e.removeListener("data",d).removeListener("end",g).removeListener("error",g).removeListener("close",p),!c)try{o.end()}catch(u){c=u}o.destroy(c),c&&(c.code!=="UND_ERR_INFO"||c.message!=="reset")?U.destroy(e,c):U.destroy(e)}};e.on("data",d).on("end",g).on("error",g).on("close",p),e.resume&&e.resume(),a.on("drain",l).on("error",g)}async function rI({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r===e.size,"blob body must have content length");try{if(r!=null&&r!==e.size)throw new r1;let n=Buffer.from(await e.arrayBuffer());a.cork(),a.write(`${i}content-length: ${r}\r +`,"latin1")),A.onRequestSent()),!0}function Vh({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r!==0||A[ge]===0,"stream body cannot be pipelined");let n=!1,o=new Yi({socket:a,request:t,contentLength:r,client:A,expectsPayload:s,header:i}),d=function(c){if(!n)try{!o.write(c)&&this.pause&&this.pause()}catch(u){U.destroy(this,u)}},l=function(){n||e.resume&&e.resume()},p=function(){g(new hg)},g=function(c){if(!n){if(n=!0,D(a.destroyed||a[ct]&&A[ge]<=1),a.off("drain",l).off("error",g),e.removeListener("data",d).removeListener("end",g).removeListener("error",g).removeListener("close",p),!c)try{o.end()}catch(u){c=u}o.destroy(c),c&&(c.code!=="UND_ERR_INFO"||c.message!=="reset")?U.destroy(e,c):U.destroy(e)}};e.on("data",d).on("end",g).on("error",g).on("close",p),e.resume&&e.resume(),a.on("drain",l).on("error",g)}async function Yh({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r===e.size,"blob body must have content length");try{if(r!=null&&r!==e.size)throw new $t;let n=Buffer.from(await e.arrayBuffer());a.cork(),a.write(`${i}content-length: ${r}\r \r -`,"latin1"),a.write(n),a.uncork(),t.onBodySent(n),t.onRequestSent(),s||(a[Je]=!0),wA(A)}catch(n){U.destroy(a,n)}}async function v6({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r!==0||A[ge]===0,"iterator body cannot be pipelined");let n=null;function o(){if(n){let p=n;n=null,p()}}let d=()=>new Promise((p,g)=>{D(n===null),a[iA]?g(a[iA]):n=p});a.on("close",o).on("drain",o);let l=new Oi({socket:a,request:t,contentLength:r,client:A,expectsPayload:s,header:i});try{for await(let p of e){if(a[iA])throw a[iA];l.write(p)||await d()}l.end()}catch(p){l.destroy(p)}finally{a.off("close",o).off("drain",o)}}var Oi=class{constructor({socket:A,request:t,contentLength:a,client:r,expectsPayload:i,header:s}){this.socket=A,this.request=t,this.contentLength=a,this.client=r,this.bytesWritten=0,this.expectsPayload=i,this.header=s,A[Bt]=!0}write(A){let{socket:t,request:a,contentLength:r,client:i,bytesWritten:s,expectsPayload:n,header:o}=this;if(t[iA])throw t[iA];if(t.destroyed)return!1;let d=Buffer.byteLength(A);if(!d)return!0;if(r!==null&&s+d>r){if(i[Hi])throw new r1;process.emitWarning(new r1)}t.cork(),s===0&&(n||(t[Je]=!0),r===null?t.write(`${o}transfer-encoding: chunked\r +`,"latin1"),a.write(n),a.uncork(),t.onBodySent(n),t.onRequestSent(),s||(a[Ve]=!0),BA(A)}catch(n){U.destroy(a,n)}}async function mg({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r!==0||A[ge]===0,"iterator body cannot be pipelined");let n=null;function o(){if(n){let p=n;n=null,p()}}let d=()=>new Promise((p,g)=>{D(n===null),a[tA]?g(a[tA]):n=p});a.on("close",o).on("drain",o);let l=new Yi({socket:a,request:t,contentLength:r,client:A,expectsPayload:s,header:i});try{for await(let p of e){if(a[tA])throw a[tA];l.write(p)||await d()}l.end()}catch(p){l.destroy(p)}finally{a.off("close",o).off("drain",o)}}var Yi=class{constructor({socket:A,request:t,contentLength:a,client:r,expectsPayload:i,header:s}){this.socket=A,this.request=t,this.contentLength=a,this.client=r,this.bytesWritten=0,this.expectsPayload=i,this.header=s,A[ct]=!0}write(A){let{socket:t,request:a,contentLength:r,client:i,bytesWritten:s,expectsPayload:n,header:o}=this;if(t[tA])throw t[tA];if(t.destroyed)return!1;let d=Buffer.byteLength(A);if(!d)return!0;if(r!==null&&s+d>r){if(i[Vi])throw new $t;process.emitWarning(new $t)}t.cork(),s===0&&(n||(t[Ve]=!0),r===null?t.write(`${o}transfer-encoding: chunked\r `,"latin1"):t.write(`${o}content-length: ${r}\r \r `,"latin1")),r===null&&t.write(`\r ${d.toString(16)}\r -`,"latin1"),this.bytesWritten+=d;let l=t.write(A);return t.uncork(),a.onBodySent(A),l||t[$].timeout&&t[$].timeoutType===$1&&t[$].timeout.refresh&&t[$].timeout.refresh(),l}end(){let{socket:A,contentLength:t,client:a,bytesWritten:r,expectsPayload:i,header:s,request:n}=this;if(n.onRequestSent(),A[Bt]=!1,A[iA])throw A[iA];if(!A.destroyed){if(r===0?i?A.write(`${s}content-length: 0\r +`,"latin1"),this.bytesWritten+=d;let l=t.write(A);return t.uncork(),a.onBodySent(A),l||t[$].timeout&&t[$].timeoutType===j1&&t[$].timeout.refresh&&t[$].timeout.refresh(),l}end(){let{socket:A,contentLength:t,client:a,bytesWritten:r,expectsPayload:i,header:s,request:n}=this;if(n.onRequestSent(),A[ct]=!1,A[tA])throw A[tA];if(!A.destroyed){if(r===0?i?A.write(`${s}content-length: 0\r \r `,"latin1"):A.write(`${s}\r `,"latin1"):t===null&&A.write(`\r 0\r \r -`,"latin1"),t!==null&&r!==t){if(a[Hi])throw new r1;process.emitWarning(new r1)}A[$].timeout&&A[$].timeoutType===$1&&A[$].timeout.refresh&&A[$].timeout.refresh(),wA(a)}}destroy(A){let{socket:t,client:a}=this;t[Bt]=!1,A&&(D(a[ge]<=1,"pipeline should only contain this request"),U.destroy(t,A))}};function KA(e,A,t){try{A.onError(t),D(A.aborted)}catch(a){e.emit("error",a)}}q6.exports=gd});var O6=E((Zb,H6)=>{"use strict";var Wi=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(A){this.list[this.top]=A,this.top=this.top+1&2047}shift(){let A=this.list[this.bottom];return A===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,A)}};H6.exports=class{constructor(){this.head=this.tail=new Wi}isEmpty(){return this.head.isEmpty()}push(A){this.head.isFull()&&(this.head=this.head.next=new Wi),this.head.push(A)}shift(){let A=this.tail,t=A.shift();return A.isEmpty()&&A.next!==null&&(this.tail=A.next),t}}});var W6=E((jb,P6)=>{var{kFree:iI,kConnected:sI,kPending:nI,kQueued:oI,kRunning:dI,kSize:pI}=te(),o1=Symbol("pool"),Qd=class{constructor(A){this[o1]=A}get connected(){return this[o1][sI]}get free(){return this[o1][iI]}get pending(){return this[o1][nI]}get queued(){return this[o1][oI]}get running(){return this[o1][dI]}get size(){return this[o1][pI]}};P6.exports=Qd});var fd=E((Xb,ag)=>{"use strict";var lI=tr(),gI=O6(),{kConnected:Cd,kSize:Z6,kRunning:j6,kPending:X6,kQueued:lr,kBusy:cI,kFree:uI,kUrl:EI,kClose:QI,kDestroy:CI,kDispatch:BI}=te(),hI=W6(),Pe=Symbol("clients"),Ge=Symbol("needDrain"),gr=Symbol("queue"),Bd=Symbol("closed resolve"),hd=Symbol("onDrain"),z6=Symbol("onConnect"),K6=Symbol("onDisconnect"),$6=Symbol("onConnectionError"),md=Symbol("get dispatcher"),Ag=Symbol("add client"),tg=Symbol("remove client"),eg=Symbol("stats"),Id=class extends lI{constructor(){super(),this[gr]=new gI,this[Pe]=[],this[lr]=0;let A=this;this[hd]=function(a,r){let i=A[gr],s=!1;for(;!s;){let n=i.shift();if(!n)break;A[lr]--,s=!this.dispatch(n.opts,n.handler)}this[Ge]=s,!this[Ge]&&A[Ge]&&(A[Ge]=!1,A.emit("drain",a,[A,...r])),A[Bd]&&i.isEmpty()&&Promise.all(A[Pe].map(n=>n.close())).then(A[Bd])},this[z6]=(t,a)=>{A.emit("connect",t,[A,...a])},this[K6]=(t,a,r)=>{A.emit("disconnect",t,[A,...a],r)},this[$6]=(t,a,r)=>{A.emit("connectionError",t,[A,...a],r)},this[eg]=new hI(this)}get[cI](){return this[Ge]}get[Cd](){return this[Pe].filter(A=>A[Cd]).length}get[uI](){return this[Pe].filter(A=>A[Cd]&&!A[Ge]).length}get[X6](){let A=this[lr];for(let{[X6]:t}of this[Pe])A+=t;return A}get[j6](){let A=0;for(let{[j6]:t}of this[Pe])A+=t;return A}get[Z6](){let A=this[lr];for(let{[Z6]:t}of this[Pe])A+=t;return A}get stats(){return this[eg]}async[QI](){return this[gr].isEmpty()?Promise.all(this[Pe].map(A=>A.close())):new Promise(A=>{this[Bd]=A})}async[CI](A){for(;;){let t=this[gr].shift();if(!t)break;t.handler.onError(A)}return Promise.all(this[Pe].map(t=>t.destroy(A)))}[BI](A,t){let a=this[md]();return a?a.dispatch(A,t)||(a[Ge]=!0,this[Ge]=!this[md]()):(this[Ge]=!0,this[gr].push({opts:A,handler:t}),this[lr]++),!this[Ge]}[Ag](A){return A.on("drain",this[hd]).on("connect",this[z6]).on("disconnect",this[K6]).on("connectionError",this[$6]),this[Pe].push(A),this[Ge]&&process.nextTick(()=>{this[Ge]&&this[hd](A[EI],[this,A])}),this}[tg](A){A.close(()=>{let t=this[Pe].indexOf(A);t!==-1&&this[Pe].splice(t,1)}),this[Ge]=this[Pe].some(t=>!t[Ge]&&t.closed!==!0&&t.destroyed!==!0)}};ag.exports={PoolBase:Id,kClients:Pe,kNeedDrain:Ge,kAddClient:Ag,kRemoveClient:tg,kGetDispatcher:md}});var ea=E((zb,ng)=>{"use strict";var{PoolBase:mI,kClients:rg,kNeedDrain:II,kAddClient:fI,kGetDispatcher:wI}=fd(),yI=pr(),{InvalidArgumentError:wd}=z(),yd=_(),{kUrl:ig,kInterceptors:DI}=te(),RI=ar(),Dd=Symbol("options"),Rd=Symbol("connections"),sg=Symbol("factory");function vI(e,A){return new yI(e,A)}var vd=class extends mI{constructor(A,{connections:t,factory:a=vI,connect:r,connectTimeout:i,tls:s,maxCachedSessions:n,socketPath:o,autoSelectFamily:d,autoSelectFamilyAttemptTimeout:l,...p}={}){if(super(),t!=null&&(!Number.isFinite(t)||t<0))throw new wd("invalid connections");if(typeof a!="function")throw new wd("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new wd("connect must be a function or an object");typeof r!="function"&&(r=RI({...s,maxCachedSessions:n,socketPath:o,timeout:i??1e4,...yd.nodeHasAutoSelectFamily&&d?{autoSelectFamily:d,autoSelectFamilyAttemptTimeout:l}:void 0,...r})),this[DI]=p.interceptors&&p.interceptors.Pool&&Array.isArray(p.interceptors.Pool)?p.interceptors.Pool:[],this[Rd]=t||null,this[ig]=yd.parseOrigin(A),this[Dd]={...yd.deepClone(p),connect:r},this[Dd].interceptors=p.interceptors?{...p.interceptors}:void 0,this[sg]=a}[wI](){let A=this[rg].find(t=>!t[II]);return A||((!this[Rd]||this[rg].length<this[Rd])&&(A=this[sg](this[ig],this[Dd]),this[fI](A)),A)}};ng.exports=vd});var cg=E((Kb,gg)=>{"use strict";var{BalancedPoolMissingUpstreamError:NI,InvalidArgumentError:bI}=z(),{PoolBase:SI,kClients:xe,kNeedDrain:cr,kAddClient:kI,kRemoveClient:FI,kGetDispatcher:UI}=fd(),LI=ea(),{kUrl:Nd,kInterceptors:MI}=te(),{parseOrigin:og}=_(),dg=Symbol("factory"),Zi=Symbol("options"),pg=Symbol("kGreatestCommonDivisor"),d1=Symbol("kCurrentWeight"),p1=Symbol("kIndex"),yA=Symbol("kWeight"),ji=Symbol("kMaxWeightPerServer"),Xi=Symbol("kErrorPenalty");function lg(e,A){return A===0?e:lg(A,e%A)}function TI(e,A){return new LI(e,A)}var bd=class extends SI{constructor(A=[],{factory:t=TI,...a}={}){if(super(),this[Zi]=a,this[p1]=-1,this[d1]=0,this[ji]=this[Zi].maxWeightPerServer||100,this[Xi]=this[Zi].errorPenalty||15,Array.isArray(A)||(A=[A]),typeof t!="function")throw new bI("factory must be a function.");this[MI]=a.interceptors&&a.interceptors.BalancedPool&&Array.isArray(a.interceptors.BalancedPool)?a.interceptors.BalancedPool:[],this[dg]=t;for(let r of A)this.addUpstream(r);this._updateBalancedPoolStats()}addUpstream(A){let t=og(A).origin;if(this[xe].find(r=>r[Nd].origin===t&&r.closed!==!0&&r.destroyed!==!0))return this;let a=this[dg](t,Object.assign({},this[Zi]));this[kI](a),a.on("connect",()=>{a[yA]=Math.min(this[ji],a[yA]+this[Xi])}),a.on("connectionError",()=>{a[yA]=Math.max(1,a[yA]-this[Xi]),this._updateBalancedPoolStats()}),a.on("disconnect",(...r)=>{let i=r[2];i&&i.code==="UND_ERR_SOCKET"&&(a[yA]=Math.max(1,a[yA]-this[Xi]),this._updateBalancedPoolStats())});for(let r of this[xe])r[yA]=this[ji];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){this[pg]=this[xe].map(A=>A[yA]).reduce(lg,0)}removeUpstream(A){let t=og(A).origin,a=this[xe].find(r=>r[Nd].origin===t&&r.closed!==!0&&r.destroyed!==!0);return a&&this[FI](a),this}get upstreams(){return this[xe].filter(A=>A.closed!==!0&&A.destroyed!==!0).map(A=>A[Nd].origin)}[UI](){if(this[xe].length===0)throw new NI;if(!this[xe].find(i=>!i[cr]&&i.closed!==!0&&i.destroyed!==!0)||this[xe].map(i=>i[cr]).reduce((i,s)=>i&&s,!0))return;let a=0,r=this[xe].findIndex(i=>!i[cr]);for(;a++<this[xe].length;){this[p1]=(this[p1]+1)%this[xe].length;let i=this[xe][this[p1]];if(i[yA]>this[xe][r][yA]&&!i[cr]&&(r=this[p1]),this[p1]===0&&(this[d1]=this[d1]-this[pg],this[d1]<=0&&(this[d1]=this[ji])),i[yA]>=this[d1]&&!i[cr])return i}return this[d1]=this[xe][r][yA],this[p1]=r,this[xe][r]}};gg.exports=bd});var Fd=E(($b,Qg)=>{"use strict";var{kConnected:ug,kSize:Eg}=te(),Sd=class{constructor(A){this.value=A}deref(){return this.value[ug]===0&&this.value[Eg]===0?void 0:this.value}},kd=class{constructor(A){this.finalizer=A}register(A,t){A.on("disconnect",()=>{A[ug]===0&&A[Eg]===0&&this.finalizer(t)})}};Qg.exports=function(){return{WeakRef:global.WeakRef||Sd,FinalizationRegistry:global.FinalizationRegistry||kd}}});var ur=E((eS,yg)=>{"use strict";var{InvalidArgumentError:zi}=z(),{kClients:Gt,kRunning:Cg,kClose:VI,kDestroy:YI,kDispatch:JI,kInterceptors:GI}=te(),xI=tr(),_I=ea(),qI=pr(),HI=_(),OI=Yi(),{WeakRef:PI,FinalizationRegistry:WI}=Fd()(),Bg=Symbol("onConnect"),hg=Symbol("onDisconnect"),mg=Symbol("onConnectionError"),ZI=Symbol("maxRedirections"),Ig=Symbol("onDrain"),fg=Symbol("factory"),wg=Symbol("finalizer"),Ud=Symbol("options");function jI(e,A){return A&&A.connections===1?new qI(e,A):new _I(e,A)}var Ld=class extends xI{constructor({factory:A=jI,maxRedirections:t=0,connect:a,...r}={}){if(super(),typeof A!="function")throw new zi("factory must be a function.");if(a!=null&&typeof a!="function"&&typeof a!="object")throw new zi("connect must be a function or an object");if(!Number.isInteger(t)||t<0)throw new zi("maxRedirections must be a positive number");a&&typeof a!="function"&&(a={...a}),this[GI]=r.interceptors&&r.interceptors.Agent&&Array.isArray(r.interceptors.Agent)?r.interceptors.Agent:[OI({maxRedirections:t})],this[Ud]={...HI.deepClone(r),connect:a},this[Ud].interceptors=r.interceptors?{...r.interceptors}:void 0,this[ZI]=t,this[fg]=A,this[Gt]=new Map,this[wg]=new WI(s=>{let n=this[Gt].get(s);n!==void 0&&n.deref()===void 0&&this[Gt].delete(s)});let i=this;this[Ig]=(s,n)=>{i.emit("drain",s,[i,...n])},this[Bg]=(s,n)=>{i.emit("connect",s,[i,...n])},this[hg]=(s,n,o)=>{i.emit("disconnect",s,[i,...n],o)},this[mg]=(s,n,o)=>{i.emit("connectionError",s,[i,...n],o)}}get[Cg](){let A=0;for(let t of this[Gt].values()){let a=t.deref();a&&(A+=a[Cg])}return A}[JI](A,t){let a;if(A.origin&&(typeof A.origin=="string"||A.origin instanceof URL))a=String(A.origin);else throw new zi("opts.origin must be a non-empty string or URL.");let r=this[Gt].get(a),i=r?r.deref():null;return i||(i=this[fg](A.origin,this[Ud]).on("drain",this[Ig]).on("connect",this[Bg]).on("disconnect",this[hg]).on("connectionError",this[mg]),this[Gt].set(a,new PI(i)),this[wg].register(i,a)),i.dispatch(A,t)}async[VI](){let A=[];for(let t of this[Gt].values()){let a=t.deref();a&&A.push(a.close())}await Promise.all(A)}async[YI](A){let t=[];for(let a of this[Gt].values()){let r=a.deref();r&&t.push(r.destroy(A))}await Promise.all(t)}};yg.exports=Ld});var Fg=E((tS,kg)=>{"use strict";var vg=require("assert"),{Readable:XI}=require("stream"),{RequestAbortedError:Ng,NotSupportedError:zI,InvalidArgumentError:KI}=z(),Aa=_(),{ReadableStreamFrom:$I,toUSVString:e7}=_(),Md,sA=Symbol("kConsume"),Ki=Symbol("kReading"),xt=Symbol("kBody"),Dg=Symbol("abort"),bg=Symbol("kContentType");kg.exports=class extends XI{constructor({resume:A,abort:t,contentType:a="",highWaterMark:r=64*1024}){super({autoDestroy:!0,read:A,highWaterMark:r}),this._readableState.dataEmitted=!1,this[Dg]=t,this[sA]=null,this[xt]=null,this[bg]=a,this[Ki]=!1}destroy(A){return this.destroyed?this:(!A&&!this._readableState.endEmitted&&(A=new Ng),A&&this[Dg](),super.destroy(A))}emit(A,...t){return A==="data"?this._readableState.dataEmitted=!0:A==="error"&&(this._readableState.errorEmitted=!0),super.emit(A,...t)}on(A,...t){return(A==="data"||A==="readable")&&(this[Ki]=!0),super.on(A,...t)}addListener(A,...t){return this.on(A,...t)}off(A,...t){let a=super.off(A,...t);return(A==="data"||A==="readable")&&(this[Ki]=this.listenerCount("data")>0||this.listenerCount("readable")>0),a}removeListener(A,...t){return this.off(A,...t)}push(A){return this[sA]&&A!==null&&this.readableLength===0?(Sg(this[sA],A),this[Ki]?super.push(A):!0):super.push(A)}async text(){return $i(this,"text")}async json(){return $i(this,"json")}async blob(){return $i(this,"blob")}async arrayBuffer(){return $i(this,"arrayBuffer")}async formData(){throw new zI}get bodyUsed(){return Aa.isDisturbed(this)}get body(){return this[xt]||(this[xt]=$I(this),this[sA]&&(this[xt].getReader(),vg(this[xt].locked))),this[xt]}async dump(A){let t=A&&Number.isFinite(A.limit)?A.limit:262144,a=A&&A.signal,r=()=>{this.destroy()},i;if(a){if(typeof a!="object"||!("aborted"in a))throw new KI("signal must be an AbortSignal");Aa.throwIfAborted(a),i=Aa.addAbortListener(a,r)}try{for await(let s of this)if(Aa.throwIfAborted(a),t-=Buffer.byteLength(s),t<0)return}catch{Aa.throwIfAborted(a)}finally{typeof i=="function"?i():i&&i[Symbol.dispose]()}}};function A7(e){return e[xt]&&e[xt].locked===!0||e[sA]}function t7(e){return Aa.isDisturbed(e)||A7(e)}async function $i(e,A){if(t7(e))throw new TypeError("unusable");return vg(!e[sA]),new Promise((t,a)=>{e[sA]={type:A,stream:e,resolve:t,reject:a,length:0,body:[]},e.on("error",function(r){Td(this[sA],r)}).on("close",function(){this[sA].body!==null&&Td(this[sA],new Ng)}),process.nextTick(a7,e[sA])})}function a7(e){if(e.body===null)return;let{_readableState:A}=e.stream;for(let t of A.buffer)Sg(e,t);for(A.endEmitted?Rg(this[sA]):e.stream.on("end",function(){Rg(this[sA])}),e.stream.resume();e.stream.read()!=null;);}function Rg(e){let{type:A,body:t,resolve:a,stream:r,length:i}=e;try{if(A==="text")a(e7(Buffer.concat(t)));else if(A==="json")a(JSON.parse(Buffer.concat(t)));else if(A==="arrayBuffer"){let s=new Uint8Array(i),n=0;for(let o of t)s.set(o,n),n+=o.byteLength;a(s)}else A==="blob"&&(Md||(Md=require("buffer").Blob),a(new Md(t,{type:r[bg]})));Td(e)}catch(s){r.destroy(s)}}function Sg(e,A){e.length+=A.length,e.body.push(A)}function Td(e,A){e.body!==null&&(A?e.reject(A):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}});var Vd=E((aS,Lg)=>{var r7=require("assert"),{ResponseStatusCodeError:es}=z(),{toUSVString:Ug}=_();async function i7({callback:e,body:A,contentType:t,statusCode:a,statusMessage:r,headers:i}){r7(A);let s=[],n=0;for await(let o of A)if(s.push(o),n+=o.length,n>128*1024){s=null;break}if(a===204||!t||!s){process.nextTick(e,new es(`Response status code ${a}${r?`: ${r}`:""}`,a,i));return}try{if(t.startsWith("application/json")){let o=JSON.parse(Ug(Buffer.concat(s)));process.nextTick(e,new es(`Response status code ${a}${r?`: ${r}`:""}`,a,i,o));return}if(t.startsWith("text/")){let o=Ug(Buffer.concat(s));process.nextTick(e,new es(`Response status code ${a}${r?`: ${r}`:""}`,a,i,o));return}}catch{}process.nextTick(e,new es(`Response status code ${a}${r?`: ${r}`:""}`,a,i))}Lg.exports={getResolveErrorBodyCallback:i7}});var aa=E((rS,Tg)=>{var{addAbortListener:s7}=_(),{RequestAbortedError:n7}=z(),ta=Symbol("kListener"),_t=Symbol("kSignal");function Mg(e){e.abort?e.abort():e.onError(new n7)}function o7(e,A){if(e[_t]=null,e[ta]=null,!!A){if(A.aborted){Mg(e);return}e[_t]=A,e[ta]=()=>{Mg(e)},s7(e[_t],e[ta])}}function d7(e){e[_t]&&("removeEventListener"in e[_t]?e[_t].removeEventListener("abort",e[ta]):e[_t].removeListener("abort",e[ta]),e[_t]=null,e[ta]=null)}Tg.exports={addSignal:o7,removeSignal:d7}});var Gg=E((iS,Jg)=>{"use strict";var p7=Fg(),{InvalidArgumentError:ra,RequestAbortedError:l7}=z(),$A=_(),{getResolveErrorBodyCallback:g7}=Vd(),{AsyncResource:c7}=require("async_hooks"),{addSignal:u7,removeSignal:Vg}=aa(),Yd=class extends c7{constructor(A,t){if(!A||typeof A!="object")throw new ra("invalid opts");let{signal:a,method:r,opaque:i,body:s,onInfo:n,responseHeaders:o,throwOnError:d,highWaterMark:l}=A;try{if(typeof t!="function")throw new ra("invalid callback");if(l&&(typeof l!="number"||l<0))throw new ra("invalid highWaterMark");if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new ra("signal must be an EventEmitter or EventTarget");if(r==="CONNECT")throw new ra("invalid method");if(n&&typeof n!="function")throw new ra("invalid onInfo callback");super("UNDICI_REQUEST")}catch(p){throw $A.isStream(s)&&$A.destroy(s.on("error",$A.nop),p),p}this.responseHeaders=o||null,this.opaque=i||null,this.callback=t,this.res=null,this.abort=null,this.body=s,this.trailers={},this.context=null,this.onInfo=n||null,this.throwOnError=d,this.highWaterMark=l,$A.isStream(s)&&s.on("error",p=>{this.onError(p)}),u7(this,a)}onConnect(A,t){if(!this.callback)throw new l7;this.abort=A,this.context=t}onHeaders(A,t,a,r){let{callback:i,opaque:s,abort:n,context:o,responseHeaders:d,highWaterMark:l}=this,p=d==="raw"?$A.parseRawHeaders(t):$A.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:p});return}let c=(d==="raw"?$A.parseHeaders(t):p)["content-type"],u=new p7({resume:a,abort:n,contentType:c,highWaterMark:l});this.callback=null,this.res=u,i!==null&&(this.throwOnError&&A>=400?this.runInAsyncScope(g7,null,{callback:i,body:u,contentType:c,statusCode:A,statusMessage:r,headers:p}):this.runInAsyncScope(i,null,null,{statusCode:A,headers:p,trailers:this.trailers,opaque:s,body:u,context:o}))}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;Vg(this),$A.parseHeaders(A,this.trailers),t.push(null)}onError(A){let{res:t,callback:a,body:r,opaque:i}=this;Vg(this),a&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(a,null,A,{opaque:i})})),t&&(this.res=null,queueMicrotask(()=>{$A.destroy(t,A)})),r&&(this.body=null,$A.destroy(r,A))}};function Yg(e,A){if(A===void 0)return new Promise((t,a)=>{Yg.call(this,e,(r,i)=>r?a(r):t(i))});try{this.dispatch(e,new Yd(e,A))}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}Jg.exports=Yg});var Og=E((sS,Hg)=>{"use strict";var{finished:E7,PassThrough:Q7}=require("stream"),{InvalidArgumentError:ia,InvalidReturnValueError:C7,RequestAbortedError:B7}=z(),MA=_(),{getResolveErrorBodyCallback:h7}=Vd(),{AsyncResource:m7}=require("async_hooks"),{addSignal:I7,removeSignal:xg}=aa(),Jd=class extends m7{constructor(A,t,a){if(!A||typeof A!="object")throw new ia("invalid opts");let{signal:r,method:i,opaque:s,body:n,onInfo:o,responseHeaders:d,throwOnError:l}=A;try{if(typeof a!="function")throw new ia("invalid callback");if(typeof t!="function")throw new ia("invalid factory");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new ia("signal must be an EventEmitter or EventTarget");if(i==="CONNECT")throw new ia("invalid method");if(o&&typeof o!="function")throw new ia("invalid onInfo callback");super("UNDICI_STREAM")}catch(p){throw MA.isStream(n)&&MA.destroy(n.on("error",MA.nop),p),p}this.responseHeaders=d||null,this.opaque=s||null,this.factory=t,this.callback=a,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=n,this.onInfo=o||null,this.throwOnError=l||!1,MA.isStream(n)&&n.on("error",p=>{this.onError(p)}),I7(this,r)}onConnect(A,t){if(!this.callback)throw new B7;this.abort=A,this.context=t}onHeaders(A,t,a,r){let{factory:i,opaque:s,context:n,callback:o,responseHeaders:d}=this,l=d==="raw"?MA.parseRawHeaders(t):MA.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:l});return}this.factory=null;let p;if(this.throwOnError&&A>=400){let u=(d==="raw"?MA.parseHeaders(t):l)["content-type"];p=new Q7,this.callback=null,this.runInAsyncScope(h7,null,{callback:o,body:p,contentType:u,statusCode:A,statusMessage:r,headers:l})}else{if(p=this.runInAsyncScope(i,null,{statusCode:A,headers:l,opaque:s,context:n}),!p||typeof p.write!="function"||typeof p.end!="function"||typeof p.on!="function")throw new C7("expected Writable");E7(p,{readable:!1},c=>{let{callback:u,res:Q,opaque:B,trailers:C,abort:h}=this;this.res=null,(c||!Q.readable)&&MA.destroy(Q,c),this.callback=null,this.runInAsyncScope(u,null,c||null,{opaque:B,trailers:C}),c&&h()})}return p.on("drain",a),this.res=p,(p.writableNeedDrain!==void 0?p.writableNeedDrain:p._writableState&&p._writableState.needDrain)!==!0}onData(A){let{res:t}=this;return t.write(A)}onComplete(A){let{res:t}=this;xg(this),this.trailers=MA.parseHeaders(A),t.end()}onError(A){let{res:t,callback:a,opaque:r,body:i}=this;xg(this),this.factory=null,t?(this.res=null,MA.destroy(t,A)):a&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(a,null,A,{opaque:r})})),i&&(this.body=null,MA.destroy(i,A))}};function qg(e,A,t){if(t===void 0)return new Promise((a,r)=>{qg.call(this,e,A,(i,s)=>i?r(i):a(s))});try{this.dispatch(e,new Jd(e,A,t))}catch(a){if(typeof t!="function")throw a;let r=e&&e.opaque;queueMicrotask(()=>t(a,{opaque:r}))}}Hg.exports=qg});var Zg=E((nS,Wg)=>{"use strict";var{Readable:Pg,Duplex:f7,PassThrough:w7}=require("stream"),{InvalidArgumentError:Er,InvalidReturnValueError:y7,RequestAbortedError:As}=z(),DA=_(),{AsyncResource:D7}=require("async_hooks"),{addSignal:R7,removeSignal:v7}=aa(),N7=require("assert"),sa=Symbol("resume"),Gd=class extends Pg{constructor(){super({autoDestroy:!0}),this[sa]=null}_read(){let{[sa]:A}=this;A&&(this[sa]=null,A())}_destroy(A,t){this._read(),t(A)}},xd=class extends Pg{constructor(A){super({autoDestroy:!0}),this[sa]=A}_read(){this[sa]()}_destroy(A,t){!A&&!this._readableState.endEmitted&&(A=new As),t(A)}},qd=class extends D7{constructor(A,t){if(!A||typeof A!="object")throw new Er("invalid opts");if(typeof t!="function")throw new Er("invalid handler");let{signal:a,method:r,opaque:i,onInfo:s,responseHeaders:n}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Er("signal must be an EventEmitter or EventTarget");if(r==="CONNECT")throw new Er("invalid method");if(s&&typeof s!="function")throw new Er("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=i||null,this.responseHeaders=n||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=s||null,this.req=new Gd().on("error",DA.nop),this.ret=new f7({readableObjectMode:A.objectMode,autoDestroy:!0,read:()=>{let{body:o}=this;o&&o.resume&&o.resume()},write:(o,d,l)=>{let{req:p}=this;p.push(o,d)||p._readableState.destroyed?l():p[sa]=l},destroy:(o,d)=>{let{body:l,req:p,res:g,ret:c,abort:u}=this;!o&&!c._readableState.endEmitted&&(o=new As),u&&o&&u(),DA.destroy(l,o),DA.destroy(p,o),DA.destroy(g,o),v7(this),d(o)}}).on("prefinish",()=>{let{req:o}=this;o.push(null)}),this.res=null,R7(this,a)}onConnect(A,t){let{ret:a,res:r}=this;if(N7(!r,"pipeline cannot be retried"),a.destroyed)throw new As;this.abort=A,this.context=t}onHeaders(A,t,a){let{opaque:r,handler:i,context:s}=this;if(A<200){if(this.onInfo){let o=this.responseHeaders==="raw"?DA.parseRawHeaders(t):DA.parseHeaders(t);this.onInfo({statusCode:A,headers:o})}return}this.res=new xd(a);let n;try{this.handler=null;let o=this.responseHeaders==="raw"?DA.parseRawHeaders(t):DA.parseHeaders(t);n=this.runInAsyncScope(i,null,{statusCode:A,headers:o,opaque:r,body:this.res,context:s})}catch(o){throw this.res.on("error",DA.nop),o}if(!n||typeof n.on!="function")throw new y7("expected Readable");n.on("data",o=>{let{ret:d,body:l}=this;!d.push(o)&&l.pause&&l.pause()}).on("error",o=>{let{ret:d}=this;DA.destroy(d,o)}).on("end",()=>{let{ret:o}=this;o.push(null)}).on("close",()=>{let{ret:o}=this;o._readableState.ended||DA.destroy(o,new As)}),this.body=n}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;t.push(null)}onError(A){let{ret:t}=this;this.handler=null,DA.destroy(t,A)}};function b7(e,A){try{let t=new qd(e,A);return this.dispatch({...e,body:t.req},t),t.ret}catch(t){return new w7().destroy(t)}}Wg.exports=b7});var $g=E((oS,Kg)=>{"use strict";var{InvalidArgumentError:Hd,RequestAbortedError:S7,SocketError:k7}=z(),{AsyncResource:F7}=require("async_hooks"),jg=_(),{addSignal:U7,removeSignal:Xg}=aa(),L7=require("assert"),Od=class extends F7{constructor(A,t){if(!A||typeof A!="object")throw new Hd("invalid opts");if(typeof t!="function")throw new Hd("invalid callback");let{signal:a,opaque:r,responseHeaders:i}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Hd("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=i||null,this.opaque=r||null,this.callback=t,this.abort=null,this.context=null,U7(this,a)}onConnect(A,t){if(!this.callback)throw new S7;this.abort=A,this.context=null}onHeaders(){throw new k7("bad upgrade",null)}onUpgrade(A,t,a){let{callback:r,opaque:i,context:s}=this;L7.strictEqual(A,101),Xg(this),this.callback=null;let n=this.responseHeaders==="raw"?jg.parseRawHeaders(t):jg.parseHeaders(t);this.runInAsyncScope(r,null,null,{headers:n,socket:a,opaque:i,context:s})}onError(A){let{callback:t,opaque:a}=this;Xg(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:a})}))}};function zg(e,A){if(A===void 0)return new Promise((t,a)=>{zg.call(this,e,(r,i)=>r?a(r):t(i))});try{let t=new Od(e,A);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},t)}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}Kg.exports=zg});var rc=E((dS,ac)=>{"use strict";var{InvalidArgumentError:Pd,RequestAbortedError:M7,SocketError:T7}=z(),{AsyncResource:V7}=require("async_hooks"),ec=_(),{addSignal:Y7,removeSignal:Ac}=aa(),Wd=class extends V7{constructor(A,t){if(!A||typeof A!="object")throw new Pd("invalid opts");if(typeof t!="function")throw new Pd("invalid callback");let{signal:a,opaque:r,responseHeaders:i}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Pd("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=r||null,this.responseHeaders=i||null,this.callback=t,this.abort=null,Y7(this,a)}onConnect(A,t){if(!this.callback)throw new M7;this.abort=A,this.context=t}onHeaders(){throw new T7("bad connect",null)}onUpgrade(A,t,a){let{callback:r,opaque:i,context:s}=this;Ac(this),this.callback=null;let n=this.responseHeaders==="raw"?ec.parseRawHeaders(t):ec.parseHeaders(t);this.runInAsyncScope(r,null,null,{statusCode:A,headers:n,socket:a,opaque:i,context:s})}onError(A){let{callback:t,opaque:a}=this;Ac(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:a})}))}};function tc(e,A){if(A===void 0)return new Promise((t,a)=>{tc.call(this,e,(r,i)=>r?a(r):t(i))});try{let t=new Wd(e,A);this.dispatch({...e,method:"CONNECT"},t)}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}ac.exports=tc});var ic=E((pS,na)=>{"use strict";na.exports.request=Gg();na.exports.stream=Og();na.exports.pipeline=Zg();na.exports.upgrade=$g();na.exports.connect=rc()});var jd=E((lS,sc)=>{"use strict";var{UndiciError:J7}=z(),Zd=class e extends J7{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=A||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};sc.exports={MockNotMatchedError:Zd}});var oa=E((gS,nc)=>{"use strict";nc.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var Qr=E((cS,hc)=>{"use strict";var{MockNotMatchedError:l1}=jd(),{kDispatches:ts,kMockAgent:G7,kOriginalDispatch:x7,kOrigin:_7,kGetNetConnect:q7}=oa(),{buildURL:H7,nop:O7}=_(),{STATUS_CODES:P7}=require("http"),{types:{isPromise:W7}}=require("util");function ht(e,A){return typeof e=="string"?e===A:e instanceof RegExp?e.test(A):typeof e=="function"?e(A)===!0:!1}function dc(e){return Object.fromEntries(Object.entries(e).map(([A,t])=>[A.toLocaleLowerCase(),t]))}function pc(e,A){if(Array.isArray(e)){for(let t=0;t<e.length;t+=2)if(e[t].toLocaleLowerCase()===A.toLocaleLowerCase())return e[t+1];return}else return typeof e.get=="function"?e.get(A):dc(e)[A.toLocaleLowerCase()]}function lc(e){let A=e.slice(),t=[];for(let a=0;a<A.length;a+=2)t.push([A[a],A[a+1]]);return Object.fromEntries(t)}function gc(e,A){if(typeof e.headers=="function")return Array.isArray(A)&&(A=lc(A)),e.headers(A?dc(A):{});if(typeof e.headers>"u")return!0;if(typeof A!="object"||typeof e.headers!="object")return!1;for(let[t,a]of Object.entries(e.headers)){let r=pc(A,t);if(!ht(a,r))return!1}return!0}function oc(e){if(typeof e!="string")return e;let A=e.split("?");if(A.length!==2)return e;let t=new URLSearchParams(A.pop());return t.sort(),[...A,t.toString()].join("?")}function Z7(e,{path:A,method:t,body:a,headers:r}){let i=ht(e.path,A),s=ht(e.method,t),n=typeof e.body<"u"?ht(e.body,a):!0,o=gc(e,r);return i&&s&&n&&o}function cc(e){return Buffer.isBuffer(e)?e:typeof e=="object"?JSON.stringify(e):e.toString()}function uc(e,A){let t=A.query?H7(A.path,A.query):A.path,a=typeof t=="string"?oc(t):t,r=e.filter(({consumed:i})=>!i).filter(({path:i})=>ht(oc(i),a));if(r.length===0)throw new l1(`Mock dispatch not matched for path '${a}'`);if(r=r.filter(({method:i})=>ht(i,A.method)),r.length===0)throw new l1(`Mock dispatch not matched for method '${A.method}'`);if(r=r.filter(({body:i})=>typeof i<"u"?ht(i,A.body):!0),r.length===0)throw new l1(`Mock dispatch not matched for body '${A.body}'`);if(r=r.filter(i=>gc(i,A.headers)),r.length===0)throw new l1(`Mock dispatch not matched for headers '${typeof A.headers=="object"?JSON.stringify(A.headers):A.headers}'`);return r[0]}function j7(e,A,t){let a={timesInvoked:0,times:1,persist:!1,consumed:!1},r=typeof t=="function"?{callback:t}:{...t},i={...a,...A,pending:!0,data:{error:null,...r}};return e.push(i),i}function Xd(e,A){let t=e.findIndex(a=>a.consumed?Z7(a,A):!1);t!==-1&&e.splice(t,1)}function Ec(e){let{path:A,method:t,body:a,headers:r,query:i}=e;return{path:A,method:t,body:a,headers:r,query:i}}function zd(e){return Object.entries(e).reduce((A,[t,a])=>[...A,Buffer.from(`${t}`),Array.isArray(a)?a.map(r=>Buffer.from(`${r}`)):Buffer.from(`${a}`)],[])}function Qc(e){return P7[e]||"unknown"}async function X7(e){let A=[];for await(let t of e)A.push(t);return Buffer.concat(A).toString("utf8")}function Cc(e,A){let t=Ec(e),a=uc(this[ts],t);a.timesInvoked++,a.data.callback&&(a.data={...a.data,...a.data.callback(e)});let{data:{statusCode:r,data:i,headers:s,trailers:n,error:o},delay:d,persist:l}=a,{timesInvoked:p,times:g}=a;if(a.consumed=!l&&p>=g,a.pending=p<g,o!==null)return Xd(this[ts],t),A.onError(o),!0;typeof d=="number"&&d>0?setTimeout(()=>{c(this[ts])},d):c(this[ts]);function c(Q,B=i){let C=Array.isArray(e.headers)?lc(e.headers):e.headers,h=typeof B=="function"?B({...e,headers:C}):B;if(W7(h)){h.then(R=>c(Q,R));return}let f=cc(h),m=zd(s),w=zd(n);A.abort=O7,A.onHeaders(r,m,u,Qc(r)),A.onData(Buffer.from(f)),A.onComplete(w),Xd(Q,t)}function u(){}return!0}function z7(){let e=this[G7],A=this[_7],t=this[x7];return function(r,i){if(e.isMockActive)try{Cc.call(this,r,i)}catch(s){if(s instanceof l1){let n=e[q7]();if(n===!1)throw new l1(`${s.message}: subsequent request to origin ${A} was not allowed (net.connect disabled)`);if(Bc(n,A))t.call(this,r,i);else throw new l1(`${s.message}: subsequent request to origin ${A} was not allowed (net.connect is not enabled for this origin)`)}else throw s}else t.call(this,r,i)}}function Bc(e,A){let t=new URL(A);return e===!0?!0:!!(Array.isArray(e)&&e.some(a=>ht(a,t.host)))}function K7(e){if(e){let{agent:A,...t}=e;return t}}hc.exports={getResponseData:cc,getMockDispatch:uc,addMockDispatch:j7,deleteMockDispatch:Xd,buildKey:Ec,generateKeyValues:zd,matchValue:ht,getResponse:X7,getStatusText:Qc,mockDispatch:Cc,buildMockDispatch:z7,checkNetConnect:Bc,buildMockOptions:K7,getHeaderByName:pc}});var rp=E((uS,ap)=>{"use strict";var{getResponseData:$7,buildKey:ef,addMockDispatch:Kd}=Qr(),{kDispatches:as,kDispatchKey:rs,kDefaultHeaders:$d,kDefaultTrailers:ep,kContentLength:Ap,kMockDispatch:is}=oa(),{InvalidArgumentError:TA}=z(),{buildURL:Af}=_(),da=class{constructor(A){this[is]=A}delay(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new TA("waitInMs must be a valid integer > 0");return this[is].delay=A,this}persist(){return this[is].persist=!0,this}times(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new TA("repeatTimes must be a valid integer > 0");return this[is].times=A,this}},tp=class{constructor(A,t){if(typeof A!="object")throw new TA("opts must be an object");if(typeof A.path>"u")throw new TA("opts.path must be defined");if(typeof A.method>"u"&&(A.method="GET"),typeof A.path=="string")if(A.query)A.path=Af(A.path,A.query);else{let a=new URL(A.path,"data://");A.path=a.pathname+a.search}typeof A.method=="string"&&(A.method=A.method.toUpperCase()),this[rs]=ef(A),this[as]=t,this[$d]={},this[ep]={},this[Ap]=!1}createMockScopeDispatchData(A,t,a={}){let r=$7(t),i=this[Ap]?{"content-length":r.length}:{},s={...this[$d],...i,...a.headers},n={...this[ep],...a.trailers};return{statusCode:A,data:t,headers:s,trailers:n}}validateReplyParameters(A,t,a){if(typeof A>"u")throw new TA("statusCode must be defined");if(typeof t>"u")throw new TA("data must be defined");if(typeof a!="object")throw new TA("responseOptions must be an object")}reply(A){if(typeof A=="function"){let n=d=>{let l=A(d);if(typeof l!="object")throw new TA("reply options callback must return an object");let{statusCode:p,data:g="",responseOptions:c={}}=l;return this.validateReplyParameters(p,g,c),{...this.createMockScopeDispatchData(p,g,c)}},o=Kd(this[as],this[rs],n);return new da(o)}let[t,a="",r={}]=[...arguments];this.validateReplyParameters(t,a,r);let i=this.createMockScopeDispatchData(t,a,r),s=Kd(this[as],this[rs],i);return new da(s)}replyWithError(A){if(typeof A>"u")throw new TA("error must be defined");let t=Kd(this[as],this[rs],{error:A});return new da(t)}defaultReplyHeaders(A){if(typeof A>"u")throw new TA("headers must be defined");return this[$d]=A,this}defaultReplyTrailers(A){if(typeof A>"u")throw new TA("trailers must be defined");return this[ep]=A,this}replyContentLength(){return this[Ap]=!0,this}};ap.exports.MockInterceptor=tp;ap.exports.MockScope=da});var np=E((ES,Rc)=>{"use strict";var{promisify:tf}=require("util"),af=pr(),{buildMockDispatch:rf}=Qr(),{kDispatches:mc,kMockAgent:Ic,kClose:fc,kOriginalClose:wc,kOrigin:yc,kOriginalDispatch:sf,kConnected:ip}=oa(),{MockInterceptor:nf}=rp(),Dc=te(),{InvalidArgumentError:of}=z(),sp=class extends af{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new of("Argument opts.agent must implement Agent");this[Ic]=t.agent,this[yc]=A,this[mc]=[],this[ip]=1,this[sf]=this.dispatch,this[wc]=this.close.bind(this),this.dispatch=rf.call(this),this.close=this[fc]}get[Dc.kConnected](){return this[ip]}intercept(A){return new nf(A,this[mc])}async[fc](){await tf(this[wc])(),this[ip]=0,this[Ic][Dc.kClients].delete(this[yc])}};Rc.exports=sp});var pp=E((QS,Uc)=>{"use strict";var{promisify:df}=require("util"),pf=ea(),{buildMockDispatch:lf}=Qr(),{kDispatches:vc,kMockAgent:Nc,kClose:bc,kOriginalClose:Sc,kOrigin:kc,kOriginalDispatch:gf,kConnected:op}=oa(),{MockInterceptor:cf}=rp(),Fc=te(),{InvalidArgumentError:uf}=z(),dp=class extends pf{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new uf("Argument opts.agent must implement Agent");this[Nc]=t.agent,this[kc]=A,this[vc]=[],this[op]=1,this[gf]=this.dispatch,this[Sc]=this.close.bind(this),this.dispatch=lf.call(this),this.close=this[bc]}get[Fc.kConnected](){return this[op]}intercept(A){return new cf(A,this[vc])}async[bc](){await df(this[Sc])(),this[op]=0,this[Nc][Fc.kClients].delete(this[kc])}};Uc.exports=dp});var Mc=E((BS,Lc)=>{"use strict";var Ef={pronoun:"it",is:"is",was:"was",this:"this"},Qf={pronoun:"they",is:"are",was:"were",this:"these"};Lc.exports=class{constructor(A,t){this.singular=A,this.plural=t}pluralize(A){let t=A===1,a=t?Ef:Qf,r=t?this.singular:this.plural;return{...a,count:A,noun:r}}}});var Vc=E((mS,Tc)=>{"use strict";var{Transform:Cf}=require("stream"),{Console:Bf}=require("console");Tc.exports=class{constructor({disableColors:A}={}){this.transform=new Cf({transform(t,a,r){r(null,t)}}),this.logger=new Bf({stdout:this.transform,inspectOptions:{colors:!A&&!process.env.CI}})}format(A){let t=A.map(({method:a,path:r,data:{statusCode:i},persist:s,times:n,timesInvoked:o,origin:d})=>({Method:a,Origin:d,Path:r,"Status code":i,Persistent:s?"\u2705":"\u274C",Invocations:o,Remaining:s?1/0:n-o}));return this.logger.table(t),this.transform.read().toString()}}});var xc=E((IS,Gc)=>{"use strict";var{kClients:g1}=te(),hf=ur(),{kAgent:lp,kMockAgentSet:ss,kMockAgentGet:Yc,kDispatches:gp,kIsMockActive:ns,kNetConnect:c1,kGetNetConnect:mf,kOptions:os,kFactory:ds}=oa(),If=np(),ff=pp(),{matchValue:wf,buildMockOptions:yf}=Qr(),{InvalidArgumentError:Jc,UndiciError:Df}=z(),Rf=Li(),vf=Mc(),Nf=Vc(),cp=class{constructor(A){this.value=A}deref(){return this.value}},up=class extends Rf{constructor(A){if(super(A),this[c1]=!0,this[ns]=!0,A&&A.agent&&typeof A.agent.dispatch!="function")throw new Jc("Argument opts.agent must implement Agent");let t=A&&A.agent?A.agent:new hf(A);this[lp]=t,this[g1]=t[g1],this[os]=yf(A)}get(A){let t=this[Yc](A);return t||(t=this[ds](A),this[ss](A,t)),t}dispatch(A,t){return this.get(A.origin),this[lp].dispatch(A,t)}async close(){await this[lp].close(),this[g1].clear()}deactivate(){this[ns]=!1}activate(){this[ns]=!0}enableNetConnect(A){if(typeof A=="string"||typeof A=="function"||A instanceof RegExp)Array.isArray(this[c1])?this[c1].push(A):this[c1]=[A];else if(typeof A>"u")this[c1]=!0;else throw new Jc("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[c1]=!1}get isMockActive(){return this[ns]}[ss](A,t){this[g1].set(A,new cp(t))}[ds](A){let t=Object.assign({agent:this},this[os]);return this[os]&&this[os].connections===1?new If(A,t):new ff(A,t)}[Yc](A){let t=this[g1].get(A);if(t)return t.deref();if(typeof A!="string"){let a=this[ds]("http://localhost:9999");return this[ss](A,a),a}for(let[a,r]of Array.from(this[g1])){let i=r.deref();if(i&&typeof a!="string"&&wf(a,A)){let s=this[ds](A);return this[ss](A,s),s[gp]=i[gp],s}}}[mf](){return this[c1]}pendingInterceptors(){let A=this[g1];return Array.from(A.entries()).flatMap(([t,a])=>a.deref()[gp].map(r=>({...r,origin:t}))).filter(({pending:t})=>t)}assertNoPendingInterceptors({pendingInterceptorsFormatter:A=new Nf}={}){let t=this.pendingInterceptors();if(t.length===0)return;let a=new vf("interceptor","interceptors").pluralize(t.length);throw new Df(` +`,"latin1"),t!==null&&r!==t){if(a[Vi])throw new $t;process.emitWarning(new $t)}A[$].timeout&&A[$].timeoutType===j1&&A[$].timeout.refresh&&A[$].timeout.refresh(),BA(a)}}destroy(A){let{socket:t,client:a}=this;t[ct]=!1,A&&(D(a[ge]<=1,"pipeline should only contain this request"),U.destroy(t,A))}};function ZA(e,A,t){try{A.onError(t),D(A.aborted)}catch(a){e.emit("error",a)}}Lg.exports=rd});var Tg=E((ob,Mg)=>{"use strict";var Gi=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(A){this.list[this.top]=A,this.top=this.top+1&2047}shift(){let A=this.list[this.bottom];return A===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,A)}};Mg.exports=class{constructor(){this.head=this.tail=new Gi}isEmpty(){return this.head.isEmpty()}push(A){this.head.isFull()&&(this.head=this.head.next=new Gi),this.head.push(A)}shift(){let A=this.tail,t=A.shift();return A.isEmpty()&&A.next!==null&&(this.tail=A.next),t}}});var Yg=E((db,Vg)=>{var{kFree:Jh,kConnected:Gh,kPending:xh,kQueued:_h,kRunning:qh,kSize:Hh}=te(),a1=Symbol("pool"),od=class{constructor(A){this[a1]=A}get connected(){return this[a1][Gh]}get free(){return this[a1][Jh]}get pending(){return this[a1][xh]}get queued(){return this[a1][_h]}get running(){return this[a1][qh]}get size(){return this[a1][Hh]}};Vg.exports=od});var ud=E((pb,jg)=>{"use strict";var Oh=Xa(),Ph=Tg(),{kConnected:dd,kSize:Jg,kRunning:Gg,kPending:xg,kQueued:ir,kBusy:Wh,kFree:Zh,kUrl:jh,kClose:Xh,kDestroy:zh,kDispatch:Kh}=te(),$h=Yg(),He=Symbol("clients"),Ye=Symbol("needDrain"),sr=Symbol("queue"),pd=Symbol("closed resolve"),ld=Symbol("onDrain"),qg=Symbol("onConnect"),Hg=Symbol("onDisconnect"),Og=Symbol("onConnectionError"),gd=Symbol("get dispatcher"),Wg=Symbol("add client"),Zg=Symbol("remove client"),Pg=Symbol("stats"),cd=class extends Oh{constructor(){super(),this[sr]=new Ph,this[He]=[],this[ir]=0;let A=this;this[ld]=function(a,r){let i=A[sr],s=!1;for(;!s;){let n=i.shift();if(!n)break;A[ir]--,s=!this.dispatch(n.opts,n.handler)}this[Ye]=s,!this[Ye]&&A[Ye]&&(A[Ye]=!1,A.emit("drain",a,[A,...r])),A[pd]&&i.isEmpty()&&Promise.all(A[He].map(n=>n.close())).then(A[pd])},this[qg]=(t,a)=>{A.emit("connect",t,[A,...a])},this[Hg]=(t,a,r)=>{A.emit("disconnect",t,[A,...a],r)},this[Og]=(t,a,r)=>{A.emit("connectionError",t,[A,...a],r)},this[Pg]=new $h(this)}get[Wh](){return this[Ye]}get[dd](){return this[He].filter(A=>A[dd]).length}get[Zh](){return this[He].filter(A=>A[dd]&&!A[Ye]).length}get[xg](){let A=this[ir];for(let{[xg]:t}of this[He])A+=t;return A}get[Gg](){let A=0;for(let{[Gg]:t}of this[He])A+=t;return A}get[Jg](){let A=this[ir];for(let{[Jg]:t}of this[He])A+=t;return A}get stats(){return this[Pg]}async[Xh](){return this[sr].isEmpty()?Promise.all(this[He].map(A=>A.close())):new Promise(A=>{this[pd]=A})}async[zh](A){for(;;){let t=this[sr].shift();if(!t)break;t.handler.onError(A)}return Promise.all(this[He].map(t=>t.destroy(A)))}[Kh](A,t){let a=this[gd]();return a?a.dispatch(A,t)||(a[Ye]=!0,this[Ye]=!this[gd]()):(this[Ye]=!0,this[sr].push({opts:A,handler:t}),this[ir]++),!this[Ye]}[Wg](A){return A.on("drain",this[ld]).on("connect",this[qg]).on("disconnect",this[Hg]).on("connectionError",this[Og]),this[He].push(A),this[Ye]&&process.nextTick(()=>{this[Ye]&&this[ld](A[jh],[this,A])}),this}[Zg](A){A.close(()=>{let t=this[He].indexOf(A);t!==-1&&this[He].splice(t,1)}),this[Ye]=this[He].some(t=>!t[Ye]&&t.closed!==!0&&t.destroyed!==!0)}};jg.exports={PoolBase:cd,kClients:He,kNeedDrain:Ye,kAddClient:Wg,kRemoveClient:Zg,kGetDispatcher:gd}});var X1=E((lb,$g)=>{"use strict";var{PoolBase:eI,kClients:Xg,kNeedDrain:AI,kAddClient:tI,kGetDispatcher:aI}=ud(),rI=rr(),{InvalidArgumentError:Ed}=z(),Qd=_(),{kUrl:zg,kInterceptors:iI}=te(),sI=za(),Cd=Symbol("options"),md=Symbol("connections"),Kg=Symbol("factory");function nI(e,A){return new rI(e,A)}var Bd=class extends eI{constructor(A,{connections:t,factory:a=nI,connect:r,connectTimeout:i,tls:s,maxCachedSessions:n,socketPath:o,autoSelectFamily:d,autoSelectFamilyAttemptTimeout:l,...p}={}){if(super(),t!=null&&(!Number.isFinite(t)||t<0))throw new Ed("invalid connections");if(typeof a!="function")throw new Ed("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new Ed("connect must be a function or an object");typeof r!="function"&&(r=sI({...s,maxCachedSessions:n,socketPath:o,timeout:i??1e4,...Qd.nodeHasAutoSelectFamily&&d?{autoSelectFamily:d,autoSelectFamilyAttemptTimeout:l}:void 0,...r})),this[iI]=p.interceptors&&p.interceptors.Pool&&Array.isArray(p.interceptors.Pool)?p.interceptors.Pool:[],this[md]=t||null,this[zg]=Qd.parseOrigin(A),this[Cd]={...Qd.deepClone(p),connect:r},this[Cd].interceptors=p.interceptors?{...p.interceptors}:void 0,this[Kg]=a}[aI](){let A=this[Xg].find(t=>!t[AI]);return A||((!this[md]||this[Xg].length<this[md])&&(A=this[Kg](this[zg],this[Cd]),this[tI](A)),A)}};$g.exports=Bd});var i6=E((gb,r6)=>{"use strict";var{BalancedPoolMissingUpstreamError:oI,InvalidArgumentError:dI}=z(),{PoolBase:pI,kClients:Je,kNeedDrain:nr,kAddClient:lI,kRemoveClient:gI,kGetDispatcher:cI}=ud(),uI=X1(),{kUrl:hd,kInterceptors:EI}=te(),{parseOrigin:e6}=_(),A6=Symbol("factory"),xi=Symbol("options"),t6=Symbol("kGreatestCommonDivisor"),r1=Symbol("kCurrentWeight"),i1=Symbol("kIndex"),hA=Symbol("kWeight"),_i=Symbol("kMaxWeightPerServer"),qi=Symbol("kErrorPenalty");function a6(e,A){return A===0?e:a6(A,e%A)}function QI(e,A){return new uI(e,A)}var Id=class extends pI{constructor(A=[],{factory:t=QI,...a}={}){if(super(),this[xi]=a,this[i1]=-1,this[r1]=0,this[_i]=this[xi].maxWeightPerServer||100,this[qi]=this[xi].errorPenalty||15,Array.isArray(A)||(A=[A]),typeof t!="function")throw new dI("factory must be a function.");this[EI]=a.interceptors&&a.interceptors.BalancedPool&&Array.isArray(a.interceptors.BalancedPool)?a.interceptors.BalancedPool:[],this[A6]=t;for(let r of A)this.addUpstream(r);this._updateBalancedPoolStats()}addUpstream(A){let t=e6(A).origin;if(this[Je].find(r=>r[hd].origin===t&&r.closed!==!0&&r.destroyed!==!0))return this;let a=this[A6](t,Object.assign({},this[xi]));this[lI](a),a.on("connect",()=>{a[hA]=Math.min(this[_i],a[hA]+this[qi])}),a.on("connectionError",()=>{a[hA]=Math.max(1,a[hA]-this[qi]),this._updateBalancedPoolStats()}),a.on("disconnect",(...r)=>{let i=r[2];i&&i.code==="UND_ERR_SOCKET"&&(a[hA]=Math.max(1,a[hA]-this[qi]),this._updateBalancedPoolStats())});for(let r of this[Je])r[hA]=this[_i];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){this[t6]=this[Je].map(A=>A[hA]).reduce(a6,0)}removeUpstream(A){let t=e6(A).origin,a=this[Je].find(r=>r[hd].origin===t&&r.closed!==!0&&r.destroyed!==!0);return a&&this[gI](a),this}get upstreams(){return this[Je].filter(A=>A.closed!==!0&&A.destroyed!==!0).map(A=>A[hd].origin)}[cI](){if(this[Je].length===0)throw new oI;if(!this[Je].find(i=>!i[nr]&&i.closed!==!0&&i.destroyed!==!0)||this[Je].map(i=>i[nr]).reduce((i,s)=>i&&s,!0))return;let a=0,r=this[Je].findIndex(i=>!i[nr]);for(;a++<this[Je].length;){this[i1]=(this[i1]+1)%this[Je].length;let i=this[Je][this[i1]];if(i[hA]>this[Je][r][hA]&&!i[nr]&&(r=this[i1]),this[i1]===0&&(this[r1]=this[r1]-this[t6],this[r1]<=0&&(this[r1]=this[_i])),i[hA]>=this[r1]&&!i[nr])return i}return this[r1]=this[Je][r][hA],this[i1]=r,this[Je][r]}};r6.exports=Id});var yd=E((cb,o6)=>{"use strict";var{kConnected:s6,kSize:n6}=te(),fd=class{constructor(A){this.value=A}deref(){return this.value[s6]===0&&this.value[n6]===0?void 0:this.value}},wd=class{constructor(A){this.finalizer=A}register(A,t){A.on("disconnect",()=>{A[s6]===0&&A[n6]===0&&this.finalizer(t)})}};o6.exports=function(){return{WeakRef:global.WeakRef||fd,FinalizationRegistry:global.FinalizationRegistry||wd}}});var or=E((ub,Q6)=>{"use strict";var{InvalidArgumentError:Hi}=z(),{kClients:Ut,kRunning:d6,kClose:CI,kDestroy:mI,kDispatch:BI,kInterceptors:hI}=te(),II=Xa(),fI=X1(),wI=rr(),yI=_(),DI=ki(),{WeakRef:RI,FinalizationRegistry:vI}=yd()(),p6=Symbol("onConnect"),l6=Symbol("onDisconnect"),g6=Symbol("onConnectionError"),NI=Symbol("maxRedirections"),c6=Symbol("onDrain"),u6=Symbol("factory"),E6=Symbol("finalizer"),Dd=Symbol("options");function bI(e,A){return A&&A.connections===1?new wI(e,A):new fI(e,A)}var Rd=class extends II{constructor({factory:A=bI,maxRedirections:t=0,connect:a,...r}={}){if(super(),typeof A!="function")throw new Hi("factory must be a function.");if(a!=null&&typeof a!="function"&&typeof a!="object")throw new Hi("connect must be a function or an object");if(!Number.isInteger(t)||t<0)throw new Hi("maxRedirections must be a positive number");a&&typeof a!="function"&&(a={...a}),this[hI]=r.interceptors&&r.interceptors.Agent&&Array.isArray(r.interceptors.Agent)?r.interceptors.Agent:[DI({maxRedirections:t})],this[Dd]={...yI.deepClone(r),connect:a},this[Dd].interceptors=r.interceptors?{...r.interceptors}:void 0,this[NI]=t,this[u6]=A,this[Ut]=new Map,this[E6]=new vI(s=>{let n=this[Ut].get(s);n!==void 0&&n.deref()===void 0&&this[Ut].delete(s)});let i=this;this[c6]=(s,n)=>{i.emit("drain",s,[i,...n])},this[p6]=(s,n)=>{i.emit("connect",s,[i,...n])},this[l6]=(s,n,o)=>{i.emit("disconnect",s,[i,...n],o)},this[g6]=(s,n,o)=>{i.emit("connectionError",s,[i,...n],o)}}get[d6](){let A=0;for(let t of this[Ut].values()){let a=t.deref();a&&(A+=a[d6])}return A}[BI](A,t){let a;if(A.origin&&(typeof A.origin=="string"||A.origin instanceof URL))a=String(A.origin);else throw new Hi("opts.origin must be a non-empty string or URL.");let r=this[Ut].get(a),i=r?r.deref():null;return i||(i=this[u6](A.origin,this[Dd]).on("drain",this[c6]).on("connect",this[p6]).on("disconnect",this[l6]).on("connectionError",this[g6]),this[Ut].set(a,new RI(i)),this[E6].register(i,a)),i.dispatch(A,t)}async[CI](){let A=[];for(let t of this[Ut].values()){let a=t.deref();a&&A.push(a.close())}await Promise.all(A)}async[mI](A){let t=[];for(let a of this[Ut].values()){let r=a.deref();r&&t.push(r.destroy(A))}await Promise.all(t)}};Q6.exports=Rd});var y6=E((Qb,w6)=>{"use strict";var B6=require("assert"),{Readable:SI}=require("stream"),{RequestAbortedError:h6,NotSupportedError:kI,InvalidArgumentError:FI}=z(),z1=_(),{ReadableStreamFrom:UI,toUSVString:LI}=_(),vd,aA=Symbol("kConsume"),Oi=Symbol("kReading"),Lt=Symbol("kBody"),C6=Symbol("abort"),I6=Symbol("kContentType");w6.exports=class extends SI{constructor({resume:A,abort:t,contentType:a="",highWaterMark:r=64*1024}){super({autoDestroy:!0,read:A,highWaterMark:r}),this._readableState.dataEmitted=!1,this[C6]=t,this[aA]=null,this[Lt]=null,this[I6]=a,this[Oi]=!1}destroy(A){return this.destroyed?this:(!A&&!this._readableState.endEmitted&&(A=new h6),A&&this[C6](),super.destroy(A))}emit(A,...t){return A==="data"?this._readableState.dataEmitted=!0:A==="error"&&(this._readableState.errorEmitted=!0),super.emit(A,...t)}on(A,...t){return(A==="data"||A==="readable")&&(this[Oi]=!0),super.on(A,...t)}addListener(A,...t){return this.on(A,...t)}off(A,...t){let a=super.off(A,...t);return(A==="data"||A==="readable")&&(this[Oi]=this.listenerCount("data")>0||this.listenerCount("readable")>0),a}removeListener(A,...t){return this.off(A,...t)}push(A){return this[aA]&&A!==null&&this.readableLength===0?(f6(this[aA],A),this[Oi]?super.push(A):!0):super.push(A)}async text(){return Pi(this,"text")}async json(){return Pi(this,"json")}async blob(){return Pi(this,"blob")}async arrayBuffer(){return Pi(this,"arrayBuffer")}async formData(){throw new kI}get bodyUsed(){return z1.isDisturbed(this)}get body(){return this[Lt]||(this[Lt]=UI(this),this[aA]&&(this[Lt].getReader(),B6(this[Lt].locked))),this[Lt]}async dump(A){let t=A&&Number.isFinite(A.limit)?A.limit:262144,a=A&&A.signal,r=()=>{this.destroy()},i;if(a){if(typeof a!="object"||!("aborted"in a))throw new FI("signal must be an AbortSignal");z1.throwIfAborted(a),i=z1.addAbortListener(a,r)}try{for await(let s of this)if(z1.throwIfAborted(a),t-=Buffer.byteLength(s),t<0)return}catch{z1.throwIfAborted(a)}finally{typeof i=="function"?i():i&&i[Symbol.dispose]()}}};function MI(e){return e[Lt]&&e[Lt].locked===!0||e[aA]}function TI(e){return z1.isDisturbed(e)||MI(e)}async function Pi(e,A){if(TI(e))throw new TypeError("unusable");return B6(!e[aA]),new Promise((t,a)=>{e[aA]={type:A,stream:e,resolve:t,reject:a,length:0,body:[]},e.on("error",function(r){Nd(this[aA],r)}).on("close",function(){this[aA].body!==null&&Nd(this[aA],new h6)}),process.nextTick(VI,e[aA])})}function VI(e){if(e.body===null)return;let{_readableState:A}=e.stream;for(let t of A.buffer)f6(e,t);for(A.endEmitted?m6(this[aA]):e.stream.on("end",function(){m6(this[aA])}),e.stream.resume();e.stream.read()!=null;);}function m6(e){let{type:A,body:t,resolve:a,stream:r,length:i}=e;try{if(A==="text")a(LI(Buffer.concat(t)));else if(A==="json")a(JSON.parse(Buffer.concat(t)));else if(A==="arrayBuffer"){let s=new Uint8Array(i),n=0;for(let o of t)s.set(o,n),n+=o.byteLength;a(s)}else A==="blob"&&(vd||(vd=require("buffer").Blob),a(new vd(t,{type:r[I6]})));Nd(e)}catch(s){r.destroy(s)}}function f6(e,A){e.length+=A.length,e.body.push(A)}function Nd(e,A){e.body!==null&&(A?e.reject(A):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}});var bd=E((Cb,R6)=>{var YI=require("assert"),{ResponseStatusCodeError:Wi}=z(),{toUSVString:D6}=_();async function JI({callback:e,body:A,contentType:t,statusCode:a,statusMessage:r,headers:i}){YI(A);let s=[],n=0;for await(let o of A)if(s.push(o),n+=o.length,n>128*1024){s=null;break}if(a===204||!t||!s){process.nextTick(e,new Wi(`Response status code ${a}${r?`: ${r}`:""}`,a,i));return}try{if(t.startsWith("application/json")){let o=JSON.parse(D6(Buffer.concat(s)));process.nextTick(e,new Wi(`Response status code ${a}${r?`: ${r}`:""}`,a,i,o));return}if(t.startsWith("text/")){let o=D6(Buffer.concat(s));process.nextTick(e,new Wi(`Response status code ${a}${r?`: ${r}`:""}`,a,i,o));return}}catch{}process.nextTick(e,new Wi(`Response status code ${a}${r?`: ${r}`:""}`,a,i))}R6.exports={getResolveErrorBodyCallback:JI}});var $1=E((mb,N6)=>{var{addAbortListener:GI}=_(),{RequestAbortedError:xI}=z(),K1=Symbol("kListener"),Mt=Symbol("kSignal");function v6(e){e.abort?e.abort():e.onError(new xI)}function _I(e,A){if(e[Mt]=null,e[K1]=null,!!A){if(A.aborted){v6(e);return}e[Mt]=A,e[K1]=()=>{v6(e)},GI(e[Mt],e[K1])}}function qI(e){e[Mt]&&("removeEventListener"in e[Mt]?e[Mt].removeEventListener("abort",e[K1]):e[Mt].removeListener("abort",e[K1]),e[Mt]=null,e[K1]=null)}N6.exports={addSignal:_I,removeSignal:qI}});var F6=E((Bb,k6)=>{"use strict";var HI=y6(),{InvalidArgumentError:ea,RequestAbortedError:OI}=z(),jA=_(),{getResolveErrorBodyCallback:PI}=bd(),{AsyncResource:WI}=require("async_hooks"),{addSignal:ZI,removeSignal:b6}=$1(),Sd=class extends WI{constructor(A,t){if(!A||typeof A!="object")throw new ea("invalid opts");let{signal:a,method:r,opaque:i,body:s,onInfo:n,responseHeaders:o,throwOnError:d,highWaterMark:l}=A;try{if(typeof t!="function")throw new ea("invalid callback");if(l&&(typeof l!="number"||l<0))throw new ea("invalid highWaterMark");if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new ea("signal must be an EventEmitter or EventTarget");if(r==="CONNECT")throw new ea("invalid method");if(n&&typeof n!="function")throw new ea("invalid onInfo callback");super("UNDICI_REQUEST")}catch(p){throw jA.isStream(s)&&jA.destroy(s.on("error",jA.nop),p),p}this.responseHeaders=o||null,this.opaque=i||null,this.callback=t,this.res=null,this.abort=null,this.body=s,this.trailers={},this.context=null,this.onInfo=n||null,this.throwOnError=d,this.highWaterMark=l,jA.isStream(s)&&s.on("error",p=>{this.onError(p)}),ZI(this,a)}onConnect(A,t){if(!this.callback)throw new OI;this.abort=A,this.context=t}onHeaders(A,t,a,r){let{callback:i,opaque:s,abort:n,context:o,responseHeaders:d,highWaterMark:l}=this,p=d==="raw"?jA.parseRawHeaders(t):jA.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:p});return}let c=(d==="raw"?jA.parseHeaders(t):p)["content-type"],u=new HI({resume:a,abort:n,contentType:c,highWaterMark:l});this.callback=null,this.res=u,i!==null&&(this.throwOnError&&A>=400?this.runInAsyncScope(PI,null,{callback:i,body:u,contentType:c,statusCode:A,statusMessage:r,headers:p}):this.runInAsyncScope(i,null,null,{statusCode:A,headers:p,trailers:this.trailers,opaque:s,body:u,context:o}))}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;b6(this),jA.parseHeaders(A,this.trailers),t.push(null)}onError(A){let{res:t,callback:a,body:r,opaque:i}=this;b6(this),a&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(a,null,A,{opaque:i})})),t&&(this.res=null,queueMicrotask(()=>{jA.destroy(t,A)})),r&&(this.body=null,jA.destroy(r,A))}};function S6(e,A){if(A===void 0)return new Promise((t,a)=>{S6.call(this,e,(r,i)=>r?a(r):t(i))});try{this.dispatch(e,new Sd(e,A))}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}k6.exports=S6});var T6=E((hb,M6)=>{"use strict";var{finished:jI,PassThrough:XI}=require("stream"),{InvalidArgumentError:Aa,InvalidReturnValueError:zI,RequestAbortedError:KI}=z(),SA=_(),{getResolveErrorBodyCallback:$I}=bd(),{AsyncResource:e7}=require("async_hooks"),{addSignal:A7,removeSignal:U6}=$1(),kd=class extends e7{constructor(A,t,a){if(!A||typeof A!="object")throw new Aa("invalid opts");let{signal:r,method:i,opaque:s,body:n,onInfo:o,responseHeaders:d,throwOnError:l}=A;try{if(typeof a!="function")throw new Aa("invalid callback");if(typeof t!="function")throw new Aa("invalid factory");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Aa("signal must be an EventEmitter or EventTarget");if(i==="CONNECT")throw new Aa("invalid method");if(o&&typeof o!="function")throw new Aa("invalid onInfo callback");super("UNDICI_STREAM")}catch(p){throw SA.isStream(n)&&SA.destroy(n.on("error",SA.nop),p),p}this.responseHeaders=d||null,this.opaque=s||null,this.factory=t,this.callback=a,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=n,this.onInfo=o||null,this.throwOnError=l||!1,SA.isStream(n)&&n.on("error",p=>{this.onError(p)}),A7(this,r)}onConnect(A,t){if(!this.callback)throw new KI;this.abort=A,this.context=t}onHeaders(A,t,a,r){let{factory:i,opaque:s,context:n,callback:o,responseHeaders:d}=this,l=d==="raw"?SA.parseRawHeaders(t):SA.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:l});return}this.factory=null;let p;if(this.throwOnError&&A>=400){let u=(d==="raw"?SA.parseHeaders(t):l)["content-type"];p=new XI,this.callback=null,this.runInAsyncScope($I,null,{callback:o,body:p,contentType:u,statusCode:A,statusMessage:r,headers:l})}else{if(p=this.runInAsyncScope(i,null,{statusCode:A,headers:l,opaque:s,context:n}),!p||typeof p.write!="function"||typeof p.end!="function"||typeof p.on!="function")throw new zI("expected Writable");jI(p,{readable:!1},c=>{let{callback:u,res:Q,opaque:m,trailers:C,abort:B}=this;this.res=null,(c||!Q.readable)&&SA.destroy(Q,c),this.callback=null,this.runInAsyncScope(u,null,c||null,{opaque:m,trailers:C}),c&&B()})}return p.on("drain",a),this.res=p,(p.writableNeedDrain!==void 0?p.writableNeedDrain:p._writableState&&p._writableState.needDrain)!==!0}onData(A){let{res:t}=this;return t.write(A)}onComplete(A){let{res:t}=this;U6(this),this.trailers=SA.parseHeaders(A),t.end()}onError(A){let{res:t,callback:a,opaque:r,body:i}=this;U6(this),this.factory=null,t?(this.res=null,SA.destroy(t,A)):a&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(a,null,A,{opaque:r})})),i&&(this.body=null,SA.destroy(i,A))}};function L6(e,A,t){if(t===void 0)return new Promise((a,r)=>{L6.call(this,e,A,(i,s)=>i?r(i):a(s))});try{this.dispatch(e,new kd(e,A,t))}catch(a){if(typeof t!="function")throw a;let r=e&&e.opaque;queueMicrotask(()=>t(a,{opaque:r}))}}M6.exports=L6});var J6=E((Ib,Y6)=>{"use strict";var{Readable:V6,Duplex:t7,PassThrough:a7}=require("stream"),{InvalidArgumentError:dr,InvalidReturnValueError:r7,RequestAbortedError:Zi}=z(),IA=_(),{AsyncResource:i7}=require("async_hooks"),{addSignal:s7,removeSignal:n7}=$1(),o7=require("assert"),ta=Symbol("resume"),Fd=class extends V6{constructor(){super({autoDestroy:!0}),this[ta]=null}_read(){let{[ta]:A}=this;A&&(this[ta]=null,A())}_destroy(A,t){this._read(),t(A)}},Ud=class extends V6{constructor(A){super({autoDestroy:!0}),this[ta]=A}_read(){this[ta]()}_destroy(A,t){!A&&!this._readableState.endEmitted&&(A=new Zi),t(A)}},Ld=class extends i7{constructor(A,t){if(!A||typeof A!="object")throw new dr("invalid opts");if(typeof t!="function")throw new dr("invalid handler");let{signal:a,method:r,opaque:i,onInfo:s,responseHeaders:n}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new dr("signal must be an EventEmitter or EventTarget");if(r==="CONNECT")throw new dr("invalid method");if(s&&typeof s!="function")throw new dr("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=i||null,this.responseHeaders=n||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=s||null,this.req=new Fd().on("error",IA.nop),this.ret=new t7({readableObjectMode:A.objectMode,autoDestroy:!0,read:()=>{let{body:o}=this;o&&o.resume&&o.resume()},write:(o,d,l)=>{let{req:p}=this;p.push(o,d)||p._readableState.destroyed?l():p[ta]=l},destroy:(o,d)=>{let{body:l,req:p,res:g,ret:c,abort:u}=this;!o&&!c._readableState.endEmitted&&(o=new Zi),u&&o&&u(),IA.destroy(l,o),IA.destroy(p,o),IA.destroy(g,o),n7(this),d(o)}}).on("prefinish",()=>{let{req:o}=this;o.push(null)}),this.res=null,s7(this,a)}onConnect(A,t){let{ret:a,res:r}=this;if(o7(!r,"pipeline cannot be retried"),a.destroyed)throw new Zi;this.abort=A,this.context=t}onHeaders(A,t,a){let{opaque:r,handler:i,context:s}=this;if(A<200){if(this.onInfo){let o=this.responseHeaders==="raw"?IA.parseRawHeaders(t):IA.parseHeaders(t);this.onInfo({statusCode:A,headers:o})}return}this.res=new Ud(a);let n;try{this.handler=null;let o=this.responseHeaders==="raw"?IA.parseRawHeaders(t):IA.parseHeaders(t);n=this.runInAsyncScope(i,null,{statusCode:A,headers:o,opaque:r,body:this.res,context:s})}catch(o){throw this.res.on("error",IA.nop),o}if(!n||typeof n.on!="function")throw new r7("expected Readable");n.on("data",o=>{let{ret:d,body:l}=this;!d.push(o)&&l.pause&&l.pause()}).on("error",o=>{let{ret:d}=this;IA.destroy(d,o)}).on("end",()=>{let{ret:o}=this;o.push(null)}).on("close",()=>{let{ret:o}=this;o._readableState.ended||IA.destroy(o,new Zi)}),this.body=n}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;t.push(null)}onError(A){let{ret:t}=this;this.handler=null,IA.destroy(t,A)}};function d7(e,A){try{let t=new Ld(e,A);return this.dispatch({...e,body:t.req},t),t.ret}catch(t){return new a7().destroy(t)}}Y6.exports=d7});var H6=E((fb,q6)=>{"use strict";var{InvalidArgumentError:Md,RequestAbortedError:p7,SocketError:l7}=z(),{AsyncResource:g7}=require("async_hooks"),G6=_(),{addSignal:c7,removeSignal:x6}=$1(),u7=require("assert"),Td=class extends g7{constructor(A,t){if(!A||typeof A!="object")throw new Md("invalid opts");if(typeof t!="function")throw new Md("invalid callback");let{signal:a,opaque:r,responseHeaders:i}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Md("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=i||null,this.opaque=r||null,this.callback=t,this.abort=null,this.context=null,c7(this,a)}onConnect(A,t){if(!this.callback)throw new p7;this.abort=A,this.context=null}onHeaders(){throw new l7("bad upgrade",null)}onUpgrade(A,t,a){let{callback:r,opaque:i,context:s}=this;u7.strictEqual(A,101),x6(this),this.callback=null;let n=this.responseHeaders==="raw"?G6.parseRawHeaders(t):G6.parseHeaders(t);this.runInAsyncScope(r,null,null,{headers:n,socket:a,opaque:i,context:s})}onError(A){let{callback:t,opaque:a}=this;x6(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:a})}))}};function _6(e,A){if(A===void 0)return new Promise((t,a)=>{_6.call(this,e,(r,i)=>r?a(r):t(i))});try{let t=new Td(e,A);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},t)}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}q6.exports=_6});var j6=E((wb,Z6)=>{"use strict";var{InvalidArgumentError:Vd,RequestAbortedError:E7,SocketError:Q7}=z(),{AsyncResource:C7}=require("async_hooks"),O6=_(),{addSignal:m7,removeSignal:P6}=$1(),Yd=class extends C7{constructor(A,t){if(!A||typeof A!="object")throw new Vd("invalid opts");if(typeof t!="function")throw new Vd("invalid callback");let{signal:a,opaque:r,responseHeaders:i}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Vd("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=r||null,this.responseHeaders=i||null,this.callback=t,this.abort=null,m7(this,a)}onConnect(A,t){if(!this.callback)throw new E7;this.abort=A,this.context=t}onHeaders(){throw new Q7("bad connect",null)}onUpgrade(A,t,a){let{callback:r,opaque:i,context:s}=this;P6(this),this.callback=null;let n=this.responseHeaders==="raw"?O6.parseRawHeaders(t):O6.parseHeaders(t);this.runInAsyncScope(r,null,null,{statusCode:A,headers:n,socket:a,opaque:i,context:s})}onError(A){let{callback:t,opaque:a}=this;P6(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:a})}))}};function W6(e,A){if(A===void 0)return new Promise((t,a)=>{W6.call(this,e,(r,i)=>r?a(r):t(i))});try{let t=new Yd(e,A);this.dispatch({...e,method:"CONNECT"},t)}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}Z6.exports=W6});var X6=E((yb,aa)=>{"use strict";aa.exports.request=F6();aa.exports.stream=T6();aa.exports.pipeline=J6();aa.exports.upgrade=H6();aa.exports.connect=j6()});var Gd=E((Db,z6)=>{"use strict";var{UndiciError:B7}=z(),Jd=class e extends B7{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=A||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};z6.exports={MockNotMatchedError:Jd}});var ra=E((Rb,K6)=>{"use strict";K6.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var pr=E((vb,pc)=>{"use strict";var{MockNotMatchedError:s1}=Gd(),{kDispatches:ji,kMockAgent:h7,kOriginalDispatch:I7,kOrigin:f7,kGetNetConnect:w7}=ra(),{buildURL:y7,nop:D7}=_(),{STATUS_CODES:R7}=require("http"),{types:{isPromise:v7}}=require("util");function ut(e,A){return typeof e=="string"?e===A:e instanceof RegExp?e.test(A):typeof e=="function"?e(A)===!0:!1}function ec(e){return Object.fromEntries(Object.entries(e).map(([A,t])=>[A.toLocaleLowerCase(),t]))}function Ac(e,A){if(Array.isArray(e)){for(let t=0;t<e.length;t+=2)if(e[t].toLocaleLowerCase()===A.toLocaleLowerCase())return e[t+1];return}else return typeof e.get=="function"?e.get(A):ec(e)[A.toLocaleLowerCase()]}function tc(e){let A=e.slice(),t=[];for(let a=0;a<A.length;a+=2)t.push([A[a],A[a+1]]);return Object.fromEntries(t)}function ac(e,A){if(typeof e.headers=="function")return Array.isArray(A)&&(A=tc(A)),e.headers(A?ec(A):{});if(typeof e.headers>"u")return!0;if(typeof A!="object"||typeof e.headers!="object")return!1;for(let[t,a]of Object.entries(e.headers)){let r=Ac(A,t);if(!ut(a,r))return!1}return!0}function $6(e){if(typeof e!="string")return e;let A=e.split("?");if(A.length!==2)return e;let t=new URLSearchParams(A.pop());return t.sort(),[...A,t.toString()].join("?")}function N7(e,{path:A,method:t,body:a,headers:r}){let i=ut(e.path,A),s=ut(e.method,t),n=typeof e.body<"u"?ut(e.body,a):!0,o=ac(e,r);return i&&s&&n&&o}function rc(e){return Buffer.isBuffer(e)?e:typeof e=="object"?JSON.stringify(e):e.toString()}function ic(e,A){let t=A.query?y7(A.path,A.query):A.path,a=typeof t=="string"?$6(t):t,r=e.filter(({consumed:i})=>!i).filter(({path:i})=>ut($6(i),a));if(r.length===0)throw new s1(`Mock dispatch not matched for path '${a}'`);if(r=r.filter(({method:i})=>ut(i,A.method)),r.length===0)throw new s1(`Mock dispatch not matched for method '${A.method}'`);if(r=r.filter(({body:i})=>typeof i<"u"?ut(i,A.body):!0),r.length===0)throw new s1(`Mock dispatch not matched for body '${A.body}'`);if(r=r.filter(i=>ac(i,A.headers)),r.length===0)throw new s1(`Mock dispatch not matched for headers '${typeof A.headers=="object"?JSON.stringify(A.headers):A.headers}'`);return r[0]}function b7(e,A,t){let a={timesInvoked:0,times:1,persist:!1,consumed:!1},r=typeof t=="function"?{callback:t}:{...t},i={...a,...A,pending:!0,data:{error:null,...r}};return e.push(i),i}function xd(e,A){let t=e.findIndex(a=>a.consumed?N7(a,A):!1);t!==-1&&e.splice(t,1)}function sc(e){let{path:A,method:t,body:a,headers:r,query:i}=e;return{path:A,method:t,body:a,headers:r,query:i}}function qd(e){return Object.entries(e).reduce((A,[t,a])=>[...A,Buffer.from(`${t}`),Array.isArray(a)?a.map(r=>Buffer.from(`${r}`)):Buffer.from(`${a}`)],[])}function nc(e){return R7[e]||"unknown"}async function S7(e){let A=[];for await(let t of e)A.push(t);return Buffer.concat(A).toString("utf8")}function oc(e,A){let t=sc(e),a=ic(this[ji],t);a.timesInvoked++,a.data.callback&&(a.data={...a.data,...a.data.callback(e)});let{data:{statusCode:r,data:i,headers:s,trailers:n,error:o},delay:d,persist:l}=a,{timesInvoked:p,times:g}=a;if(a.consumed=!l&&p>=g,a.pending=p<g,o!==null)return xd(this[ji],t),A.onError(o),!0;typeof d=="number"&&d>0?setTimeout(()=>{c(this[ji])},d):c(this[ji]);function c(Q,m=i){let C=Array.isArray(e.headers)?tc(e.headers):e.headers,B=typeof m=="function"?m({...e,headers:C}):m;if(v7(B)){B.then(b=>c(Q,b));return}let w=rc(B),I=qd(s),y=qd(n);A.abort=D7,A.onHeaders(r,I,u,nc(r)),A.onData(Buffer.from(w)),A.onComplete(y),xd(Q,t)}function u(){}return!0}function k7(){let e=this[h7],A=this[f7],t=this[I7];return function(r,i){if(e.isMockActive)try{oc.call(this,r,i)}catch(s){if(s instanceof s1){let n=e[w7]();if(n===!1)throw new s1(`${s.message}: subsequent request to origin ${A} was not allowed (net.connect disabled)`);if(dc(n,A))t.call(this,r,i);else throw new s1(`${s.message}: subsequent request to origin ${A} was not allowed (net.connect is not enabled for this origin)`)}else throw s}else t.call(this,r,i)}}function dc(e,A){let t=new URL(A);return e===!0?!0:!!(Array.isArray(e)&&e.some(a=>ut(a,t.host)))}function F7(e){if(e){let{agent:A,...t}=e;return t}}pc.exports={getResponseData:rc,getMockDispatch:ic,addMockDispatch:b7,deleteMockDispatch:xd,buildKey:sc,generateKeyValues:qd,matchValue:ut,getResponse:S7,getStatusText:nc,mockDispatch:oc,buildMockDispatch:k7,checkNetConnect:dc,buildMockOptions:F7,getHeaderByName:Ac}});var Xd=E((Nb,jd)=>{"use strict";var{getResponseData:U7,buildKey:L7,addMockDispatch:Hd}=pr(),{kDispatches:Xi,kDispatchKey:zi,kDefaultHeaders:Od,kDefaultTrailers:Pd,kContentLength:Wd,kMockDispatch:Ki}=ra(),{InvalidArgumentError:kA}=z(),{buildURL:M7}=_(),ia=class{constructor(A){this[Ki]=A}delay(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new kA("waitInMs must be a valid integer > 0");return this[Ki].delay=A,this}persist(){return this[Ki].persist=!0,this}times(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new kA("repeatTimes must be a valid integer > 0");return this[Ki].times=A,this}},Zd=class{constructor(A,t){if(typeof A!="object")throw new kA("opts must be an object");if(typeof A.path>"u")throw new kA("opts.path must be defined");if(typeof A.method>"u"&&(A.method="GET"),typeof A.path=="string")if(A.query)A.path=M7(A.path,A.query);else{let a=new URL(A.path,"data://");A.path=a.pathname+a.search}typeof A.method=="string"&&(A.method=A.method.toUpperCase()),this[zi]=L7(A),this[Xi]=t,this[Od]={},this[Pd]={},this[Wd]=!1}createMockScopeDispatchData(A,t,a={}){let r=U7(t),i=this[Wd]?{"content-length":r.length}:{},s={...this[Od],...i,...a.headers},n={...this[Pd],...a.trailers};return{statusCode:A,data:t,headers:s,trailers:n}}validateReplyParameters(A,t,a){if(typeof A>"u")throw new kA("statusCode must be defined");if(typeof t>"u")throw new kA("data must be defined");if(typeof a!="object")throw new kA("responseOptions must be an object")}reply(A){if(typeof A=="function"){let n=d=>{let l=A(d);if(typeof l!="object")throw new kA("reply options callback must return an object");let{statusCode:p,data:g="",responseOptions:c={}}=l;return this.validateReplyParameters(p,g,c),{...this.createMockScopeDispatchData(p,g,c)}},o=Hd(this[Xi],this[zi],n);return new ia(o)}let[t,a="",r={}]=[...arguments];this.validateReplyParameters(t,a,r);let i=this.createMockScopeDispatchData(t,a,r),s=Hd(this[Xi],this[zi],i);return new ia(s)}replyWithError(A){if(typeof A>"u")throw new kA("error must be defined");let t=Hd(this[Xi],this[zi],{error:A});return new ia(t)}defaultReplyHeaders(A){if(typeof A>"u")throw new kA("headers must be defined");return this[Od]=A,this}defaultReplyTrailers(A){if(typeof A>"u")throw new kA("trailers must be defined");return this[Pd]=A,this}replyContentLength(){return this[Wd]=!0,this}};jd.exports.MockInterceptor=Zd;jd.exports.MockScope=ia});var $d=E((bb,Cc)=>{"use strict";var{promisify:T7}=require("util"),V7=rr(),{buildMockDispatch:Y7}=pr(),{kDispatches:lc,kMockAgent:gc,kClose:cc,kOriginalClose:uc,kOrigin:Ec,kOriginalDispatch:J7,kConnected:zd}=ra(),{MockInterceptor:G7}=Xd(),Qc=te(),{InvalidArgumentError:x7}=z(),Kd=class extends V7{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new x7("Argument opts.agent must implement Agent");this[gc]=t.agent,this[Ec]=A,this[lc]=[],this[zd]=1,this[J7]=this.dispatch,this[uc]=this.close.bind(this),this.dispatch=Y7.call(this),this.close=this[cc]}get[Qc.kConnected](){return this[zd]}intercept(A){return new G7(A,this[lc])}async[cc](){await T7(this[uc])(),this[zd]=0,this[gc][Qc.kClients].delete(this[Ec])}};Cc.exports=Kd});var tp=E((Sb,yc)=>{"use strict";var{promisify:_7}=require("util"),q7=X1(),{buildMockDispatch:H7}=pr(),{kDispatches:mc,kMockAgent:Bc,kClose:hc,kOriginalClose:Ic,kOrigin:fc,kOriginalDispatch:O7,kConnected:ep}=ra(),{MockInterceptor:P7}=Xd(),wc=te(),{InvalidArgumentError:W7}=z(),Ap=class extends q7{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new W7("Argument opts.agent must implement Agent");this[Bc]=t.agent,this[fc]=A,this[mc]=[],this[ep]=1,this[O7]=this.dispatch,this[Ic]=this.close.bind(this),this.dispatch=H7.call(this),this.close=this[hc]}get[wc.kConnected](){return this[ep]}intercept(A){return new P7(A,this[mc])}async[hc](){await _7(this[Ic])(),this[ep]=0,this[Bc][wc.kClients].delete(this[fc])}};yc.exports=Ap});var Rc=E((Fb,Dc)=>{"use strict";var Z7={pronoun:"it",is:"is",was:"was",this:"this"},j7={pronoun:"they",is:"are",was:"were",this:"these"};Dc.exports=class{constructor(A,t){this.singular=A,this.plural=t}pluralize(A){let t=A===1,a=t?Z7:j7,r=t?this.singular:this.plural;return{...a,count:A,noun:r}}}});var Nc=E((Lb,vc)=>{"use strict";var{Transform:X7}=require("stream"),{Console:z7}=require("console");vc.exports=class{constructor({disableColors:A}={}){this.transform=new X7({transform(t,a,r){r(null,t)}}),this.logger=new z7({stdout:this.transform,inspectOptions:{colors:!A&&!process.env.CI}})}format(A){let t=A.map(({method:a,path:r,data:{statusCode:i},persist:s,times:n,timesInvoked:o,origin:d})=>({Method:a,Origin:d,Path:r,"Status code":i,Persistent:s?"\u2705":"\u274C",Invocations:o,Remaining:s?1/0:n-o}));return this.logger.table(t),this.transform.read().toString()}}});var Fc=E((Mb,kc)=>{"use strict";var{kClients:n1}=te(),K7=or(),{kAgent:ap,kMockAgentSet:$i,kMockAgentGet:bc,kDispatches:rp,kIsMockActive:es,kNetConnect:o1,kGetNetConnect:$7,kOptions:As,kFactory:ts}=ra(),ef=$d(),Af=tp(),{matchValue:tf,buildMockOptions:af}=pr(),{InvalidArgumentError:Sc,UndiciError:rf}=z(),sf=vi(),nf=Rc(),of=Nc(),ip=class{constructor(A){this.value=A}deref(){return this.value}},sp=class extends sf{constructor(A){if(super(A),this[o1]=!0,this[es]=!0,A&&A.agent&&typeof A.agent.dispatch!="function")throw new Sc("Argument opts.agent must implement Agent");let t=A&&A.agent?A.agent:new K7(A);this[ap]=t,this[n1]=t[n1],this[As]=af(A)}get(A){let t=this[bc](A);return t||(t=this[ts](A),this[$i](A,t)),t}dispatch(A,t){return this.get(A.origin),this[ap].dispatch(A,t)}async close(){await this[ap].close(),this[n1].clear()}deactivate(){this[es]=!1}activate(){this[es]=!0}enableNetConnect(A){if(typeof A=="string"||typeof A=="function"||A instanceof RegExp)Array.isArray(this[o1])?this[o1].push(A):this[o1]=[A];else if(typeof A>"u")this[o1]=!0;else throw new Sc("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[o1]=!1}get isMockActive(){return this[es]}[$i](A,t){this[n1].set(A,new ip(t))}[ts](A){let t=Object.assign({agent:this},this[As]);return this[As]&&this[As].connections===1?new ef(A,t):new Af(A,t)}[bc](A){let t=this[n1].get(A);if(t)return t.deref();if(typeof A!="string"){let a=this[ts]("http://localhost:9999");return this[$i](A,a),a}for(let[a,r]of Array.from(this[n1])){let i=r.deref();if(i&&typeof a!="string"&&tf(a,A)){let s=this[ts](A);return this[$i](A,s),s[rp]=i[rp],s}}}[$7](){return this[o1]}pendingInterceptors(){let A=this[n1];return Array.from(A.entries()).flatMap(([t,a])=>a.deref()[rp].map(r=>({...r,origin:t}))).filter(({pending:t})=>t)}assertNoPendingInterceptors({pendingInterceptorsFormatter:A=new of}={}){let t=this.pendingInterceptors();if(t.length===0)return;let a=new nf("interceptor","interceptors").pluralize(t.length);throw new rf(` ${a.count} ${a.noun} ${a.is} pending: ${A.format(t)} -`.trim())}};Gc.exports=up});var Zc=E((fS,Wc)=>{"use strict";var{kProxy:bf,kClose:Sf,kDestroy:kf,kInterceptors:Ff}=te(),{URL:qc}=require("url"),Hc=ur(),Uf=ea(),Lf=tr(),{InvalidArgumentError:Br,RequestAbortedError:Mf}=z(),Oc=ar(),Cr=Symbol("proxy agent"),ps=Symbol("proxy client"),ls=Symbol("proxy headers"),Ep=Symbol("request tls settings"),Tf=Symbol("proxy tls settings"),Pc=Symbol("connect endpoint function");function Vf(e){return e==="https:"?443:80}function Yf(e){if(typeof e=="string"&&(e={uri:e}),!e||!e.uri)throw new Br("Proxy opts.uri is mandatory");return{uri:e.uri,protocol:e.protocol||"https"}}function Jf(e,A){return new Uf(e,A)}var Qp=class extends Lf{constructor(A){if(super(A),this[bf]=Yf(A),this[Cr]=new Hc(A),this[Ff]=A.interceptors&&A.interceptors.ProxyAgent&&Array.isArray(A.interceptors.ProxyAgent)?A.interceptors.ProxyAgent:[],typeof A=="string"&&(A={uri:A}),!A||!A.uri)throw new Br("Proxy opts.uri is mandatory");let{clientFactory:t=Jf}=A;if(typeof t!="function")throw new Br("Proxy opts.clientFactory must be a function.");if(this[Ep]=A.requestTls,this[Tf]=A.proxyTls,this[ls]=A.headers||{},A.auth&&A.token)throw new Br("opts.auth cannot be used in combination with opts.token");A.auth?this[ls]["proxy-authorization"]=`Basic ${A.auth}`:A.token&&(this[ls]["proxy-authorization"]=A.token);let a=new qc(A.uri),{origin:r,port:i,host:s}=a,n=Oc({...A.proxyTls});this[Pc]=Oc({...A.requestTls}),this[ps]=t(a,{connect:n}),this[Cr]=new Hc({...A,connect:async(o,d)=>{let l=o.host;o.port||(l+=`:${Vf(o.protocol)}`);try{let{socket:p,statusCode:g}=await this[ps].connect({origin:r,port:i,path:l,signal:o.signal,headers:{...this[ls],host:s}});if(g!==200&&(p.on("error",()=>{}).destroy(),d(new Mf("Proxy response !== 200 when HTTP Tunneling"))),o.protocol!=="https:"){d(null,p);return}let c;this[Ep]?c=this[Ep].servername:c=o.servername,this[Pc]({...o,servername:c,httpSocket:p},d)}catch(p){d(p)}}})}dispatch(A,t){let{host:a}=new qc(A.origin),r=Gf(A.headers);return xf(r),this[Cr].dispatch({...A,headers:{...r,host:a}},t)}async[Sf](){await this[Cr].close(),await this[ps].close()}async[kf](){await this[Cr].destroy(),await this[ps].destroy()}};function Gf(e){if(Array.isArray(e)){let A={};for(let t=0;t<e.length;t+=2)A[e[t]]=e[t+1];return A}return e}function xf(e){if(e&&Object.keys(e).find(t=>t.toLowerCase()==="proxy-authorization"))throw new Br("Proxy-Authorization should be sent in ProxyAgent constructor")}Wc.exports=Qp});var pa=E((wS,Kc)=>{"use strict";var jc=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:qf}=z(),Hf=ur();zc()===void 0&&Xc(new Hf);function Xc(e){if(!e||typeof e.dispatch!="function")throw new qf("Argument agent must implement Agent");Object.defineProperty(globalThis,jc,{value:e,writable:!0,enumerable:!1,configurable:!1})}function zc(){return globalThis[jc]}Kc.exports={setGlobalDispatcher:Xc,getGlobalDispatcher:zc}});var eu=E((DS,$c)=>{"use strict";$c.exports=class{constructor(A){this.handler=A}onConnect(...A){return this.handler.onConnect(...A)}onError(...A){return this.handler.onError(...A)}onUpgrade(...A){return this.handler.onUpgrade(...A)}onHeaders(...A){return this.handler.onHeaders(...A)}onData(...A){return this.handler.onData(...A)}onComplete(...A){return this.handler.onComplete(...A)}onBodySent(...A){return this.handler.onBodySent(...A)}}});var E1=E((RS,ru)=>{"use strict";var{kHeadersList:We}=te(),{kGuard:u1}=gt(),{kEnumerableProperty:et}=_(),{makeIterator:Cp,isValidHeaderName:hr,isValidHeaderValue:Au}=mA(),{webidl:Y}=Ye(),Of=require("assert"),Ze=Symbol("headers map"),je=Symbol("headers map sorted");function tu(e){let A=e.length;for(;/[\r\n\t ]/.test(e.charAt(--A)););return e.slice(0,A+1).replace(/^[\r\n\t ]+/,"")}function au(e,A){if(Array.isArray(A))for(let t of A){if(t.length!==2)throw Y.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${t.length}.`});e.append(t[0],t[1])}else if(typeof A=="object"&&A!==null)for(let[t,a]of Object.entries(A))e.append(t,a);else throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}var gs=class e{cookies=null;constructor(A){A instanceof e?(this[Ze]=new Map(A[Ze]),this[je]=A[je],this.cookies=A.cookies):(this[Ze]=new Map(A),this[je]=null)}contains(A){return A=A.toLowerCase(),this[Ze].has(A)}clear(){this[Ze].clear(),this[je]=null,this.cookies=null}append(A,t){this[je]=null;let a=A.toLowerCase(),r=this[Ze].get(a);if(r){let i=a==="cookie"?"; ":", ";this[Ze].set(a,{name:r.name,value:`${r.value}${i}${t}`})}else this[Ze].set(a,{name:A,value:t});a==="set-cookie"&&(this.cookies??=[],this.cookies.push(t))}set(A,t){this[je]=null;let a=A.toLowerCase();return a==="set-cookie"&&(this.cookies=[t]),this[Ze].set(a,{name:A,value:t})}delete(A){return this[je]=null,A=A.toLowerCase(),A==="set-cookie"&&(this.cookies=null),this[Ze].delete(A)}get(A){return this.contains(A)?this[Ze].get(A.toLowerCase())?.value??null:null}*[Symbol.iterator](){for(let[A,{value:t}]of this[Ze])yield[A,t]}get entries(){let A={};if(this[Ze].size)for(let{name:t,value:a}of this[Ze].values())A[t]=a;return A}},la=class e{constructor(A=void 0){this[We]=new gs,this[u1]="none",A!==void 0&&(A=Y.converters.HeadersInit(A),au(this,A))}append(A,t){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,2,{header:"Headers.append"}),A=Y.converters.ByteString(A),t=Y.converters.ByteString(t),t=tu(t),hr(A)){if(!Au(t))throw Y.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.append",value:A,type:"header name"});if(this[u1]==="immutable")throw new TypeError("immutable");return this[u1],this[We].append(A,t)}delete(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.delete"}),A=Y.converters.ByteString(A),!hr(A))throw Y.errors.invalidArgument({prefix:"Headers.delete",value:A,type:"header name"});if(this[u1]==="immutable")throw new TypeError("immutable");if(this[u1],!!this[We].contains(A))return this[We].delete(A)}get(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.get"}),A=Y.converters.ByteString(A),!hr(A))throw Y.errors.invalidArgument({prefix:"Headers.get",value:A,type:"header name"});return this[We].get(A)}has(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.has"}),A=Y.converters.ByteString(A),!hr(A))throw Y.errors.invalidArgument({prefix:"Headers.has",value:A,type:"header name"});return this[We].contains(A)}set(A,t){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,2,{header:"Headers.set"}),A=Y.converters.ByteString(A),t=Y.converters.ByteString(t),t=tu(t),hr(A)){if(!Au(t))throw Y.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.set",value:A,type:"header name"});if(this[u1]==="immutable")throw new TypeError("immutable");return this[u1],this[We].set(A,t)}getSetCookie(){Y.brandCheck(this,e);let A=this[We].cookies;return A?[...A]:[]}get[je](){if(this[We][je])return this[We][je];let A=[],t=[...this[We]].sort((r,i)=>r[0]<i[0]?-1:1),a=this[We].cookies;for(let[r,i]of t)if(r==="set-cookie")for(let s of a)A.push([r,s]);else Of(i!==null),A.push([r,i]);return this[We][je]=A,A}keys(){return Y.brandCheck(this,e),Cp(()=>[...this[je].values()],"Headers","key")}values(){return Y.brandCheck(this,e),Cp(()=>[...this[je].values()],"Headers","value")}entries(){return Y.brandCheck(this,e),Cp(()=>[...this[je].values()],"Headers","key+value")}forEach(A,t=globalThis){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.forEach"}),typeof A!="function")throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.");for(let[a,r]of this)A.apply(t,[r,a,this])}[Symbol.for("nodejs.util.inspect.custom")](){return Y.brandCheck(this,e),this[We]}};la.prototype[Symbol.iterator]=la.prototype.entries;Object.defineProperties(la.prototype,{append:et,delete:et,get:et,has:et,set:et,getSetCookie:et,keys:et,values:et,entries:et,forEach:et,[Symbol.iterator]:{enumerable:!1},[Symbol.toStringTag]:{value:"Headers",configurable:!0}});Y.converters.HeadersInit=function(e){if(Y.util.Type(e)==="Object")return e[Symbol.iterator]?Y.converters["sequence<sequence<ByteString>>"](e):Y.converters["record<ByteString, ByteString>"](e);throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};ru.exports={fill:au,Headers:la,HeadersList:gs}});var Qs=E((vS,lu)=>{"use strict";var{Headers:Pf,HeadersList:iu,fill:Wf}=E1(),{extractBody:su,cloneBody:Zf,mixinBody:jf}=er(),mp=_(),{kEnumerableProperty:oA}=mp,{isValidReasonPhrase:Xf,isCancelled:zf,isAborted:Kf,isBlobLike:$f,serializeJavascriptValueToJSONString:ew,isErrorLike:Aw,isomorphicEncode:tw}=mA(),{redirectStatus:aw,nullBodyStatus:rw,DOMException:iw}=Mt(),{kState:ee,kHeaders:we,kGuard:ga,kRealm:nA}=gt(),{webidl:T}=Ye(),{FormData:sw}=Fi(),{getGlobalOrigin:nw}=Xa(),{URLSerializer:nu}=LA(),{kHeadersList:Bp}=te(),Ip=require("assert"),{types:hp}=require("util"),du=globalThis.ReadableStream||require("stream/web").ReadableStream,ca=class e{static error(){let A={settingsObject:{}},t=new e;return t[ee]=us(),t[nA]=A,t[we][Bp]=t[ee].headersList,t[we][ga]="immutable",t[we][nA]=A,t}static json(A=void 0,t={}){T.argumentLengthCheck(arguments,1,{header:"Response.json"}),t!==null&&(t=T.converters.ResponseInit(t));let a=new TextEncoder("utf-8").encode(ew(A)),r=su(a),i={settingsObject:{}},s=new e;return s[nA]=i,s[we][ga]="response",s[we][nA]=i,ou(s,t,{body:r[0],type:"application/json"}),s}static redirect(A,t=302){let a={settingsObject:{}};T.argumentLengthCheck(arguments,1,{header:"Response.redirect"}),A=T.converters.USVString(A),t=T.converters["unsigned short"](t);let r;try{r=new URL(A,nw())}catch(n){throw Object.assign(new TypeError("Failed to parse URL from "+A),{cause:n})}if(!aw.includes(t))throw new RangeError("Invalid status code "+t);let i=new e;i[nA]=a,i[we][ga]="immutable",i[we][nA]=a,i[ee].status=t;let s=tw(nu(r));return i[ee].headersList.append("location",s),i}constructor(A=null,t={}){A!==null&&(A=T.converters.BodyInit(A)),t=T.converters.ResponseInit(t),this[nA]={settingsObject:{}},this[ee]=Es({}),this[we]=new Pf,this[we][ga]="response",this[we][Bp]=this[ee].headersList,this[we][nA]=this[nA];let a=null;if(A!=null){let[r,i]=su(A);a={body:r,type:i}}ou(this,t,a)}get type(){return T.brandCheck(this,e),this[ee].type}get url(){T.brandCheck(this,e);let A=this[ee].urlList,t=A[A.length-1]??null;return t===null?"":nu(t,!0)}get redirected(){return T.brandCheck(this,e),this[ee].urlList.length>1}get status(){return T.brandCheck(this,e),this[ee].status}get ok(){return T.brandCheck(this,e),this[ee].status>=200&&this[ee].status<=299}get statusText(){return T.brandCheck(this,e),this[ee].statusText}get headers(){return T.brandCheck(this,e),this[we]}get body(){return T.brandCheck(this,e),this[ee].body?this[ee].body.stream:null}get bodyUsed(){return T.brandCheck(this,e),!!this[ee].body&&mp.isDisturbed(this[ee].body.stream)}clone(){if(T.brandCheck(this,e),this.bodyUsed||this.body&&this.body.locked)throw T.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let A=fp(this[ee]),t=new e;return t[ee]=A,t[nA]=this[nA],t[we][Bp]=A.headersList,t[we][ga]=this[we][ga],t[we][nA]=this[we][nA],t}};jf(ca);Object.defineProperties(ca.prototype,{type:oA,url:oA,status:oA,ok:oA,redirected:oA,statusText:oA,headers:oA,clone:oA,body:oA,bodyUsed:oA,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(ca,{json:oA,redirect:oA,error:oA});function fp(e){if(e.internalResponse)return pu(fp(e.internalResponse),e.type);let A=Es({...e,body:null});return e.body!=null&&(A.body=Zf(e.body)),A}function Es(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e.headersList?new iu(e.headersList):new iu,urlList:e.urlList?[...e.urlList]:[]}}function us(e){let A=Aw(e);return Es({type:"error",status:0,error:A?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function cs(e,A){return A={internalResponse:e,...A},new Proxy(e,{get(t,a){return a in A?A[a]:t[a]},set(t,a,r){return Ip(!(a in A)),t[a]=r,!0}})}function pu(e,A){if(A==="basic")return cs(e,{type:"basic",headersList:e.headersList});if(A==="cors")return cs(e,{type:"cors",headersList:e.headersList});if(A==="opaque")return cs(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(A==="opaqueredirect")return cs(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});Ip(!1)}function ow(e){return Ip(zf(e)),Kf(e)?us(new iw("The operation was aborted.","AbortError")):us("Request was cancelled.")}function ou(e,A,t){if(A.status!==null&&(A.status<200||A.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in A&&A.statusText!=null&&!Xf(String(A.statusText)))throw new TypeError("Invalid statusText");if("status"in A&&A.status!=null&&(e[ee].status=A.status),"statusText"in A&&A.statusText!=null&&(e[ee].statusText=A.statusText),"headers"in A&&A.headers!=null&&Wf(e[we],A.headers),t){if(rw.includes(e.status))throw T.errors.exception({header:"Response constructor",message:"Invalid response status code "+e.status});e[ee].body=t.body,t.type!=null&&!e[ee].headersList.contains("Content-Type")&&e[ee].headersList.append("content-type",t.type)}}T.converters.ReadableStream=T.interfaceConverter(du);T.converters.FormData=T.interfaceConverter(sw);T.converters.URLSearchParams=T.interfaceConverter(URLSearchParams);T.converters.XMLHttpRequestBodyInit=function(e){return typeof e=="string"?T.converters.USVString(e):$f(e)?T.converters.Blob(e,{strict:!1}):hp.isAnyArrayBuffer(e)||hp.isTypedArray(e)||hp.isDataView(e)?T.converters.BufferSource(e):mp.isFormDataLike(e)?T.converters.FormData(e,{strict:!1}):e instanceof URLSearchParams?T.converters.URLSearchParams(e):T.converters.DOMString(e)};T.converters.BodyInit=function(e){return e instanceof du?T.converters.ReadableStream(e):e?.[Symbol.asyncIterator]?e:T.converters.XMLHttpRequestBodyInit(e)};T.converters.ResponseInit=T.dictionaryConverter([{key:"status",converter:T.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:T.converters.ByteString,defaultValue:""},{key:"headers",converter:T.converters.HeadersInit}]);lu.exports={makeNetworkError:us,makeResponse:Es,makeAppropriateNetworkError:ow,filterResponse:pu,Response:ca,cloneResponse:fp}});var fr=E((NS,Bu)=>{"use strict";var{extractBody:dw,mixinBody:pw,cloneBody:lw}=er(),{Headers:wp,fill:gw,HeadersList:gu}=E1(),{FinalizationRegistry:cw}=Fd()(),Ir=_(),{isValidHTTPToken:uw,sameOrigin:cu,normalizeMethod:Ew,makePolicyContainer:Qw}=mA(),{forbiddenMethods:Cw,corsSafeListedMethods:Bw,referrerPolicy:hw,requestRedirect:mw,requestMode:Iw,requestCredentials:fw,requestCache:ww,requestDuplex:yw}=Mt(),{kEnumerableProperty:Ee}=Ir,{kHeaders:ye,kSignal:mr,kState:K,kGuard:Cs,kRealm:dA}=gt(),{webidl:k}=Ye(),{getGlobalOrigin:Dw}=Xa(),{URLSerializer:Rw}=LA(),{kHeadersList:Bs}=te(),vw=require("assert"),{getMaxListeners:uu,setMaxListeners:Eu,getEventListeners:Nw,defaultMaxListeners:Qu}=require("events"),yp=globalThis.TransformStream,Cu=Symbol("init"),bw=Symbol("abortController"),Sw=new cw(({signal:e,abort:A})=>{e.removeEventListener("abort",A)}),Q1=class e{constructor(A,t={}){if(A===Cu)return;k.argumentLengthCheck(arguments,1,{header:"Request constructor"}),A=k.converters.RequestInfo(A),t=k.converters.RequestInit(t),this[dA]={settingsObject:{baseUrl:Dw(),get origin(){return this.baseUrl?.origin},policyContainer:Qw()}};let a=null,r=null,i=this[dA].settingsObject.baseUrl,s=null;if(typeof A=="string"){let Q;try{Q=new URL(A,i)}catch(B){throw new TypeError("Failed to parse URL from "+A,{cause:B})}if(Q.username||Q.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+A);a=hs({urlList:[Q]}),r="cors"}else vw(A instanceof e),a=A[K],s=A[mr];let n=this[dA].settingsObject.origin,o="client";if(a.window?.constructor?.name==="EnvironmentSettingsObject"&&cu(a.window,n)&&(o=a.window),t.window!=null)throw new TypeError(`'window' option '${o}' must be null`);if("window"in t&&(o="no-window"),a=hs({method:a.method,headersList:a.headersList,unsafeRequest:a.unsafeRequest,client:this[dA].settingsObject,window:o,priority:a.priority,origin:a.origin,referrer:a.referrer,referrerPolicy:a.referrerPolicy,mode:a.mode,credentials:a.credentials,cache:a.cache,redirect:a.redirect,integrity:a.integrity,keepalive:a.keepalive,reloadNavigation:a.reloadNavigation,historyNavigation:a.historyNavigation,urlList:[...a.urlList]}),Object.keys(t).length>0&&(a.mode==="navigate"&&(a.mode="same-origin"),a.reloadNavigation=!1,a.historyNavigation=!1,a.origin="client",a.referrer="client",a.referrerPolicy="",a.url=a.urlList[a.urlList.length-1],a.urlList=[a.url]),t.referrer!==void 0){let Q=t.referrer;if(Q==="")a.referrer="no-referrer";else{let B;try{B=new URL(Q,i)}catch(C){throw new TypeError(`Referrer "${Q}" is not a valid URL.`,{cause:C})}B.protocol==="about:"&&B.hostname==="client"||n&&!cu(B,this[dA].settingsObject.baseUrl)?a.referrer="client":a.referrer=B}}t.referrerPolicy!==void 0&&(a.referrerPolicy=t.referrerPolicy);let d;if(t.mode!==void 0?d=t.mode:d=r,d==="navigate")throw k.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(d!=null&&(a.mode=d),t.credentials!==void 0&&(a.credentials=t.credentials),t.cache!==void 0&&(a.cache=t.cache),a.cache==="only-if-cached"&&a.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(t.redirect!==void 0&&(a.redirect=t.redirect),t.integrity!==void 0&&t.integrity!=null&&(a.integrity=String(t.integrity)),t.keepalive!==void 0&&(a.keepalive=!!t.keepalive),t.method!==void 0){let Q=t.method;if(!uw(t.method))throw TypeError(`'${t.method}' is not a valid HTTP method.`);if(Cw.indexOf(Q.toUpperCase())!==-1)throw TypeError(`'${t.method}' HTTP method is unsupported.`);Q=Ew(t.method),a.method=Q}t.signal!==void 0&&(s=t.signal),this[K]=a;let l=new AbortController;if(this[mr]=l.signal,this[mr][dA]=this[dA],s!=null){if(!s||typeof s.aborted!="boolean"||typeof s.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(s.aborted)l.abort(s.reason);else{this[bw]=l;let Q=new WeakRef(l),B=function(){let C=Q.deref();C!==void 0&&C.abort(this.reason)};try{(typeof uu=="function"&&uu(s)===Qu||Nw(s,"abort").length>=Qu)&&Eu(100,s)}catch{}Ir.addAbortListener(s,B),Sw.register(l,{signal:s,abort:B})}}if(this[ye]=new wp,this[ye][Bs]=a.headersList,this[ye][Cs]="request",this[ye][dA]=this[dA],d==="no-cors"){if(!Bw.includes(a.method))throw new TypeError(`'${a.method} is unsupported in no-cors mode.`);this[ye][Cs]="request-no-cors"}if(Object.keys(t).length!==0){let Q=new wp(this[ye]);if(t.headers!==void 0&&(Q=t.headers),this[ye][Bs].clear(),Q.constructor.name==="Headers")for(let[B,C]of Q)this[ye].append(B,C);else gw(this[ye],Q)}let p=A instanceof e?A[K].body:null;if((t.body!=null||p!=null)&&(a.method==="GET"||a.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let g=null;if(t.body!=null){let[Q,B]=dw(t.body,a.keepalive);g=Q,B&&!this[ye][Bs].contains("content-type")&&this[ye].append("content-type",B)}let c=g??p;if(c!=null&&c.source==null){if(g!=null&&t.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(a.mode!=="same-origin"&&a.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');a.useCORSPreflightFlag=!0}let u=c;if(g==null&&p!=null){if(Ir.isDisturbed(p.stream)||p.stream.locked)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");yp||(yp=require("stream/web").TransformStream);let Q=new yp;p.stream.pipeThrough(Q),u={source:p.source,length:p.length,stream:Q.readable}}this[K].body=u}get method(){return k.brandCheck(this,e),this[K].method}get url(){return k.brandCheck(this,e),Rw(this[K].url)}get headers(){return k.brandCheck(this,e),this[ye]}get destination(){return k.brandCheck(this,e),this[K].destination}get referrer(){return k.brandCheck(this,e),this[K].referrer==="no-referrer"?"":this[K].referrer==="client"?"about:client":this[K].referrer.toString()}get referrerPolicy(){return k.brandCheck(this,e),this[K].referrerPolicy}get mode(){return k.brandCheck(this,e),this[K].mode}get credentials(){return this[K].credentials}get cache(){return k.brandCheck(this,e),this[K].cache}get redirect(){return k.brandCheck(this,e),this[K].redirect}get integrity(){return k.brandCheck(this,e),this[K].integrity}get keepalive(){return k.brandCheck(this,e),this[K].keepalive}get isReloadNavigation(){return k.brandCheck(this,e),this[K].reloadNavigation}get isHistoryNavigation(){return k.brandCheck(this,e),this[K].historyNavigation}get signal(){return k.brandCheck(this,e),this[mr]}get body(){return k.brandCheck(this,e),this[K].body?this[K].body.stream:null}get bodyUsed(){return k.brandCheck(this,e),!!this[K].body&&Ir.isDisturbed(this[K].body.stream)}get duplex(){return k.brandCheck(this,e),"half"}clone(){if(k.brandCheck(this,e),this.bodyUsed||this.body?.locked)throw new TypeError("unusable");let A=kw(this[K]),t=new e(Cu);t[K]=A,t[dA]=this[dA],t[ye]=new wp,t[ye][Bs]=A.headersList,t[ye][Cs]=this[ye][Cs],t[ye][dA]=this[ye][dA];let a=new AbortController;return this.signal.aborted?a.abort(this.signal.reason):Ir.addAbortListener(this.signal,()=>{a.abort(this.signal.reason)}),t[mr]=a.signal,t}};pw(Q1);function hs(e){let A={method:"GET",localURLsOnly:!1,unsafeRequest:!1,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:!1,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:!1,credentials:"same-origin",useCredentials:!1,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:!1,historyNavigation:!1,userActivation:!1,taintedOrigin:!1,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:!1,done:!1,timingAllowFailed:!1,...e,headersList:e.headersList?new gu(e.headersList):new gu};return A.url=A.urlList[0],A}function kw(e){let A=hs({...e,body:null});return e.body!=null&&(A.body=lw(e.body)),A}Object.defineProperties(Q1.prototype,{method:Ee,url:Ee,headers:Ee,redirect:Ee,clone:Ee,signal:Ee,duplex:Ee,destination:Ee,body:Ee,bodyUsed:Ee,isHistoryNavigation:Ee,isReloadNavigation:Ee,keepalive:Ee,integrity:Ee,cache:Ee,credentials:Ee,attribute:Ee,referrerPolicy:Ee,referrer:Ee,mode:Ee,[Symbol.toStringTag]:{value:"Request",configurable:!0}});k.converters.Request=k.interfaceConverter(Q1);k.converters.RequestInfo=function(e){return typeof e=="string"?k.converters.USVString(e):e instanceof Q1?k.converters.Request(e):k.converters.USVString(e)};k.converters.AbortSignal=k.interfaceConverter(AbortSignal);k.converters.RequestInit=k.dictionaryConverter([{key:"method",converter:k.converters.ByteString},{key:"headers",converter:k.converters.HeadersInit},{key:"body",converter:k.nullableConverter(k.converters.BodyInit)},{key:"referrer",converter:k.converters.USVString},{key:"referrerPolicy",converter:k.converters.DOMString,allowedValues:hw},{key:"mode",converter:k.converters.DOMString,allowedValues:Iw},{key:"credentials",converter:k.converters.DOMString,allowedValues:fw},{key:"cache",converter:k.converters.DOMString,allowedValues:ww},{key:"redirect",converter:k.converters.DOMString,allowedValues:mw},{key:"integrity",converter:k.converters.DOMString},{key:"keepalive",converter:k.converters.boolean},{key:"signal",converter:k.nullableConverter(e=>k.converters.AbortSignal(e,{strict:!1}))},{key:"window",converter:k.converters.any},{key:"duplex",converter:k.converters.DOMString,allowedValues:yw}]);Bu.exports={Request:Q1,makeRequest:hs}});var Rs=E((bS,Fu)=>{"use strict";var{Response:Fw,makeNetworkError:X,makeAppropriateNetworkError:ms,filterResponse:Dp,makeResponse:Is}=Qs(),{Headers:hu}=E1(),{Request:Uw,makeRequest:Lw}=fr(),wr=require("zlib"),{bytesMatch:Mw,makePolicyContainer:Tw,clonePolicyContainer:Vw,requestBadPort:Yw,TAOCheck:Jw,appendRequestOriginHeader:Gw,responseLocationURL:xw,requestCurrentURL:At,setRequestReferrerPolicyOnRedirect:_w,tryUpgradeRequestToAPotentiallyTrustworthyURL:qw,createOpaqueTimingInfo:Mp,appendFetchMetadata:Hw,corsCheck:Ow,crossOriginResourcePolicyCheck:Pw,determineRequestsReferrer:Ww,coarsenedSharedCurrentTime:Tp,createDeferredPromise:Zw,isBlobLike:jw,sameOrigin:kp,isCancelled:ua,isAborted:mu,isErrorLike:Xw,fullyReadBody:yu,readableStreamClose:zw,isomorphicEncode:Fp,urlIsLocal:Kw,urlIsHttpHttpsScheme:Vp,urlHasHttpsScheme:$w}=mA(),{kState:Up,kHeaders:Rp,kGuard:ey,kRealm:Iu}=gt(),Ea=require("assert"),{safelyExtractBody:fs}=er(),{redirectStatus:Du,nullBodyStatus:Ru,safeMethods:Ay,requestBodyHeader:ty,subresource:ay,DOMException:ws}=Mt(),{kHeadersList:Lp}=te(),ry=require("events"),{Readable:iy,pipeline:sy}=require("stream"),{addAbortListener:ny,isErrored:oy,isReadable:ys,nodeMajor:fu,nodeMinor:dy}=_(),{dataURLProcessor:py,serializeAMimeType:ly}=LA(),{TransformStream:gy}=require("stream/web"),{getGlobalDispatcher:cy}=pa(),{webidl:uy}=Ye(),{STATUS_CODES:Ey}=require("http"),vp,Np=globalThis.ReadableStream,Ds=class extends ry{constructor(A){super(),this.dispatcher=A,this.connection=null,this.dump=!1,this.state="ongoing",this.setMaxListeners(21)}terminate(A){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(A),this.emit("terminated",A))}abort(A){this.state==="ongoing"&&(this.state="aborted",A||(A=new ws("The operation was aborted.","AbortError")),this.serializedAbortReason=A,this.connection?.destroy(A),this.emit("terminated",A))}};async function Qy(e,A={}){uy.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});let t=Zw(),a;try{a=new Uw(e,A)}catch(g){return t.reject(g),t.promise}let r=a[Up];if(a.signal.aborted)return bp(t,r,null,a.signal.reason),t.promise;r.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(r.serviceWorkers="none");let s=null,n=null,o=!1,d=null;return ny(a.signal,()=>{o=!0,Ea(d!=null),d.abort(a.signal.reason),bp(t,r,s,a.signal.reason)}),d=Nu({request:r,processResponseEndOfBody:g=>vu(g,"fetch"),processResponse:g=>{if(!o){if(g.aborted){bp(t,r,s,d.serializedAbortReason);return}if(g.type==="error"){t.reject(Object.assign(new TypeError("fetch failed"),{cause:g.error}));return}s=new Fw,s[Up]=g,s[Iu]=n,s[Rp][Lp]=g.headersList,s[Rp][ey]="immutable",s[Rp][Iu]=n,t.resolve(s)}},dispatcher:A.dispatcher??cy()}),t.promise}function vu(e,A="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let t=e.urlList[0],a=e.timingInfo,r=e.cacheState;Vp(t)&&a!==null&&(a.timingAllowPassed||(a=Mp({startTime:a.startTime}),r=""),a.endTime=Tp(),e.timingInfo=a,Cy(a,t,A,globalThis,r))}function Cy(e,A,t,a,r){(fu>18||fu===18&&dy>=2)&&performance.markResourceTiming(e,A.href,t,a,r)}function bp(e,A,t,a){if(a||(a=new ws("The operation was aborted.","AbortError")),e.reject(a),A.body!=null&&ys(A.body?.stream)&&A.body.stream.cancel(a).catch(i=>{if(i.code!=="ERR_INVALID_STATE")throw i}),t==null)return;let r=t[Up];r.body!=null&&ys(r.body?.stream)&&r.body.stream.cancel(a).catch(i=>{if(i.code!=="ERR_INVALID_STATE")throw i})}function Nu({request:e,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:a,processResponseEndOfBody:r,processResponseConsumeBody:i,useParallelQueue:s=!1,dispatcher:n}){let o=null,d=!1;e.client!=null&&(o=e.client.globalObject,d=e.client.crossOriginIsolatedCapability);let l=Tp(d),p=Mp({startTime:l}),g={controller:new Ds(n),request:e,timingInfo:p,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:a,processResponseConsumeBody:i,processResponseEndOfBody:r,taskDestination:o,crossOriginIsolatedCapability:d};return Ea(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client?.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=Vw(e.client.policyContainer):e.policyContainer=Tw()),e.headersList.contains("accept")||e.headersList.append("accept","*/*"),e.headersList.contains("accept-language")||e.headersList.append("accept-language","*"),e.priority,ay.includes(e.destination),bu(g).catch(c=>{g.controller.terminate(c)}),g.controller}async function bu(e,A=!1){let t=e.request,a=null;if(t.localURLsOnly&&!Kw(At(t))&&(a=X("local URLs only")),qw(t),Yw(t)==="blocked"&&(a=X("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=Ww(t)),a===null&&(a=await(async()=>{let i=At(t);return kp(i,t.url)&&t.responseTainting==="basic"||i.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await wu(e)):t.mode==="same-origin"?X('request mode cannot be "same-origin"'):t.mode==="no-cors"?t.redirect!=="follow"?X('redirect mode cannot be "follow" for "no-cors" request'):(t.responseTainting="opaque",await wu(e)):Vp(At(t))?(t.responseTainting="cors",await Su(e)):X("URL scheme must be a HTTP(S) scheme")})()),A)return a;a.status!==0&&!a.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?a=Dp(a,"basic"):t.responseTainting==="cors"?a=Dp(a,"cors"):t.responseTainting==="opaque"?a=Dp(a,"opaque"):Ea(!1));let r=a.status===0?a:a.internalResponse;if(r.urlList.length===0&&r.urlList.push(...t.urlList),t.timingAllowFailed||(a.timingAllowPassed=!0),a.type==="opaque"&&r.status===206&&r.rangeRequested&&!t.headers.contains("range")&&(a=r=X()),a.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||Ru.includes(r.status))&&(r.body=null,e.controller.dump=!0),t.integrity){let i=n=>Sp(e,X(n));if(t.responseTainting==="opaque"||a.body==null){i(a.error);return}let s=n=>{if(!Mw(n,t.integrity)){i("integrity mismatch");return}a.body=fs(n)[0],Sp(e,a)};await yu(a.body,s,i)}else Sp(e,a)}async function wu(e){if(ua(e)&&e.request.redirectCount===0)return ms(e);let{request:A}=e,{protocol:t}=At(A);switch(t){case"about:":return X("about scheme is not supported");case"blob:":{vp||(vp=require("buffer").resolveObjectURL);let a=At(A);if(a.search.length!==0)return X("NetworkError when attempting to fetch resource.");let r=vp(a.toString());if(A.method!=="GET"||!jw(r))return X("invalid method");let i=fs(r),s=i[0],n=Fp(`${s.length}`),o=i[1]??"",d=Is({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:n}],["content-type",{name:"Content-Type",value:o}]]});return d.body=s,d}case"data:":{let a=At(A),r=py(a);if(r==="failure")return X("failed to fetch the data URL");let i=ly(r.mimeType);return Is({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:i}]],body:fs(r.body)[0]})}case"file:":return X("not implemented... yet...");case"http:":case"https:":return await Su(e).catch(a=>X(a));default:return X("unknown scheme")}}function By(e,A){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(A))}async function Sp(e,A){A.type==="error"&&(A.urlList=[e.request.urlList[0]],A.timingInfo=Mp({startTime:e.timingInfo.startTime}));let t=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(A))};if(e.processResponse!=null&&queueMicrotask(()=>e.processResponse(A)),A.body==null)t();else{let a=(i,s)=>{s.enqueue(i)},r=new gy({start(){},transform:a,flush:t},{size(){return 1}},{size(){return 1}});A.body={stream:A.body.stream.pipeThrough(r)}}if(e.processResponseConsumeBody!=null){let a=i=>e.processResponseConsumeBody(A,i),r=i=>e.processResponseConsumeBody(A,i);A.body==null?queueMicrotask(()=>a(null)):await yu(A.body,a,r)}}async function Su(e){let A=e.request,t=null,a=null,r=e.timingInfo;if(A.serviceWorkers,t===null){if(A.redirect==="follow"&&(A.serviceWorkers="none"),a=t=await ku(e),A.responseTainting==="cors"&&Ow(A,t)==="failure")return X("cors failure");Jw(A,t)==="failure"&&(A.timingAllowFailed=!0)}return(A.responseTainting==="opaque"||t.type==="opaque")&&Pw(A.origin,A.client,A.destination,a)==="blocked"?X("blocked"):(Du.includes(a.status)&&(A.redirect!=="manual"&&e.controller.connection.destroy(),A.redirect==="error"?t=X("unexpected redirect"):A.redirect==="manual"?t=a:A.redirect==="follow"?t=await hy(e,t):Ea(!1)),t.timingInfo=r,t)}async function hy(e,A){let t=e.request,a=A.internalResponse?A.internalResponse:A,r;try{if(r=xw(a,At(t).hash),r==null)return A}catch(s){return X(s)}if(!Vp(r))return X("URL scheme must be a HTTP(S) scheme");if(t.redirectCount===20)return X("redirect count exceeded");if(t.redirectCount+=1,t.mode==="cors"&&(r.username||r.password)&&!kp(t,r))return X('cross origin not allowed for request mode "cors"');if(t.responseTainting==="cors"&&(r.username||r.password))return X('URL cannot contain credentials for request mode "cors"');if(a.status!==303&&t.body!=null&&t.body.source==null)return X();if([301,302].includes(a.status)&&t.method==="POST"||a.status===303&&!["GET","HEAD"].includes(t.method)){t.method="GET",t.body=null;for(let s of ty)t.headersList.delete(s)}kp(At(t),r)||t.headersList.delete("authorization"),t.body!=null&&(Ea(t.body.source!=null),t.body=fs(t.body.source)[0]);let i=e.timingInfo;return i.redirectEndTime=i.postRedirectStartTime=Tp(e.crossOriginIsolatedCapability),i.redirectStartTime===0&&(i.redirectStartTime=i.startTime),t.urlList.push(r),_w(t,a),bu(e,!0)}async function ku(e,A=!1,t=!1){let a=e.request,r=null,i=null,s=null,n=null,o=!1;a.window==="no-window"&&a.redirect==="error"?(r=e,i=a):(i=Lw(a),r={...e},r.request=i);let d=a.credentials==="include"||a.credentials==="same-origin"&&a.responseTainting==="basic",l=i.body?i.body.length:null,p=null;if(i.body==null&&["POST","PUT"].includes(i.method)&&(p="0"),l!=null&&(p=Fp(`${l}`)),p!=null&&i.headersList.append("content-length",p),l!=null&&i.keepalive,i.referrer instanceof URL&&i.headersList.append("referer",Fp(i.referrer.href)),Gw(i),Hw(i),i.headersList.contains("user-agent")||i.headersList.append("user-agent","undici"),i.cache==="default"&&(i.headersList.contains("if-modified-since")||i.headersList.contains("if-none-match")||i.headersList.contains("if-unmodified-since")||i.headersList.contains("if-match")||i.headersList.contains("if-range"))&&(i.cache="no-store"),i.cache==="no-cache"&&!i.preventNoCacheCacheControlHeaderModification&&!i.headersList.contains("cache-control")&&i.headersList.append("cache-control","max-age=0"),(i.cache==="no-store"||i.cache==="reload")&&(i.headersList.contains("pragma")||i.headersList.append("pragma","no-cache"),i.headersList.contains("cache-control")||i.headersList.append("cache-control","no-cache")),i.headersList.contains("range")&&i.headersList.append("accept-encoding","identity"),i.headersList.contains("accept-encoding")||($w(At(i))?i.headersList.append("accept-encoding","br, gzip, deflate"):i.headersList.append("accept-encoding","gzip, deflate")),n==null&&(i.cache="no-store"),i.mode!=="no-store"&&i.mode,s==null){if(i.mode==="only-if-cached")return X("only if cached");let g=await my(r,d,t);!Ay.includes(i.method)&&g.status>=200&&g.status<=399,o&&g.status,s==null&&(s=g)}if(s.urlList=[...i.urlList],i.headersList.contains("range")&&(s.rangeRequested=!0),s.requestIncludesCredentials=d,s.status===407)return a.window==="no-window"?X():ua(e)?ms(e):X("proxy authentication required");if(s.status===421&&!t&&(a.body==null||a.body.source!=null)){if(ua(e))return ms(e);e.controller.connection.destroy(),s=await ku(e,A,!0)}return s}async function my(e,A=!1,t=!1){Ea(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(u){this.destroyed||(this.destroyed=!0,this.abort?.(u??new ws("The operation was aborted.","AbortError")))}};let a=e.request,r=null,i=e.timingInfo;null==null&&(a.cache="no-store");let n=t?"yes":"no";a.mode;let o=null;if(a.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(a.body!=null){let u=async function*(C){ua(e)||(yield C,e.processRequestBodyChunkLength?.(C.byteLength))},Q=()=>{ua(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},B=C=>{ua(e)||(C.name==="AbortError"?e.controller.abort():e.controller.terminate(C))};o=async function*(){try{for await(let C of a.body.stream)yield*u(C);Q()}catch(C){B(C)}}()}try{let{body:u,status:Q,statusText:B,headersList:C,socket:h}=await c({body:o});if(h)r=Is({status:Q,statusText:B,headersList:C,socket:h});else{let f=u[Symbol.asyncIterator]();e.controller.next=()=>f.next(),r=Is({status:Q,statusText:B,headersList:C})}}catch(u){return u.name==="AbortError"?(e.controller.connection.destroy(),ms(e)):X(u)}let d=()=>{e.controller.resume()},l=u=>{e.controller.abort(u)};Np||(Np=require("stream/web").ReadableStream);let p=new Np({async start(u){e.controller.controller=u},async pull(u){await d(u)},async cancel(u){await l(u)}},{highWaterMark:0,size(){return 1}});r.body={stream:p},e.controller.on("terminated",g),e.controller.resume=async()=>{for(;;){let u,Q;try{let{done:B,value:C}=await e.controller.next();if(mu(e))break;u=B?void 0:C}catch(B){e.controller.ended&&!i.encodedBodySize?u=void 0:(u=B,Q=!0)}if(u===void 0){zw(e.controller.controller),By(e,r);return}if(i.decodedBodySize+=u?.byteLength??0,Q){e.controller.terminate(u);return}if(e.controller.controller.enqueue(new Uint8Array(u)),oy(p)){e.controller.terminate();return}if(!e.controller.controller.desiredSize)return}};function g(u){mu(e)?(r.aborted=!0,ys(p)&&e.controller.controller.error(e.controller.serializedAbortReason)):ys(p)&&e.controller.controller.error(new TypeError("terminated",{cause:Xw(u)?u:void 0})),e.controller.connection.destroy()}return r;async function c({body:u}){let Q=At(a),B=e.controller.dispatcher;return new Promise((C,h)=>B.dispatch({path:Q.pathname+Q.search,origin:Q.origin,method:a.method,body:e.controller.dispatcher.isMockActive?a.body&&a.body.source:u,headers:a.headersList.entries,maxRedirections:0,upgrade:a.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(f){let{connection:m}=e.controller;m.destroyed?f(new ws("The operation was aborted.","AbortError")):(e.controller.on("terminated",f),this.abort=m.abort=f)},onHeaders(f,m,w,R){if(f<200)return;let S=[],x="",me=new hu;for(let Re=0;Re<m.length;Re+=2){let de=m[Re+0].toString("latin1"),EA=m[Re+1].toString("latin1");de.toLowerCase()==="content-encoding"?S=EA.toLowerCase().split(",").map(W=>W.trim()).reverse():de.toLowerCase()==="location"&&(x=EA),me.append(de,EA)}this.body=new iy({read:w});let Qe=[],Dt=a.redirect==="follow"&&x&&Du.includes(f);if(a.method!=="HEAD"&&a.method!=="CONNECT"&&!Ru.includes(f)&&!Dt)for(let Re of S)if(Re==="x-gzip"||Re==="gzip")Qe.push(wr.createGunzip({flush:wr.constants.Z_SYNC_FLUSH,finishFlush:wr.constants.Z_SYNC_FLUSH}));else if(Re==="deflate")Qe.push(wr.createInflate());else if(Re==="br")Qe.push(wr.createBrotliDecompress());else{Qe.length=0;break}return C({status:f,statusText:R,headersList:me[Lp],body:Qe.length?sy(this.body,...Qe,()=>{}):this.body.on("error",()=>{})}),!0},onData(f){if(e.controller.dump)return;let m=f;return i.encodedBodySize+=m.byteLength,this.body.push(m)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.ended=!0,this.body.push(null)},onError(f){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(f),e.controller.terminate(f),h(f)},onUpgrade(f,m,w){if(f!==101)return;let R=new hu;for(let S=0;S<m.length;S+=2){let x=m[S+0].toString("latin1"),me=m[S+1].toString("latin1");R.append(x,me)}return C({status:f,statusText:Ey[f],headersList:R[Lp],socket:w}),!0}}))}}Fu.exports={fetch:Qy,Fetch:Ds,fetching:Nu,finalizeAndReportTiming:vu}});var Yp=E((SS,Uu)=>{"use strict";Uu.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var Mu=E((kS,Lu)=>{"use strict";var{webidl:pA}=Ye(),vs=Symbol("ProgressEvent state"),Jp=class e extends Event{constructor(A,t={}){A=pA.converters.DOMString(A),t=pA.converters.ProgressEventInit(t??{}),super(A,t),this[vs]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return pA.brandCheck(this,e),this[vs].lengthComputable}get loaded(){return pA.brandCheck(this,e),this[vs].loaded}get total(){return pA.brandCheck(this,e),this[vs].total}};pA.converters.ProgressEventInit=pA.dictionaryConverter([{key:"lengthComputable",converter:pA.converters.boolean,defaultValue:!1},{key:"loaded",converter:pA.converters["unsigned long long"],defaultValue:0},{key:"total",converter:pA.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:pA.converters.boolean,defaultValue:!1},{key:"cancelable",converter:pA.converters.boolean,defaultValue:!1},{key:"composed",converter:pA.converters.boolean,defaultValue:!1}]);Lu.exports={ProgressEvent:Jp}});var Vu=E((FS,Tu)=>{"use strict";function Iy(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}Tu.exports={getEncoding:Iy}});var Ou=E((US,Hu)=>{"use strict";var{kState:Qa,kError:Gp,kResult:Yu,kAborted:yr,kLastProgressEventFired:xp}=Yp(),{ProgressEvent:fy}=Mu(),{getEncoding:Ju}=Vu(),{DOMException:wy}=Mt(),{serializeAMimeType:yy,parseMIMEType:Gu}=LA(),{types:Dy}=require("util"),{StringDecoder:xu}=require("string_decoder"),{btoa:_u}=require("buffer"),Ry={enumerable:!0,writable:!1,configurable:!1};function vy(e,A,t,a){if(e[Qa]==="loading")throw new wy("Invalid state","InvalidStateError");e[Qa]="loading",e[Yu]=null,e[Gp]=null;let i=A.stream().getReader(),s=[],n=i.read(),o=!0;(async()=>{for(;!e[yr];)try{let{done:d,value:l}=await n;if(o&&!e[yr]&&queueMicrotask(()=>{qt("loadstart",e)}),o=!1,!d&&Dy.isUint8Array(l))s.push(l),(e[xp]===void 0||Date.now()-e[xp]>=50)&&!e[yr]&&(e[xp]=Date.now(),queueMicrotask(()=>{qt("progress",e)})),n=i.read();else if(d){queueMicrotask(()=>{e[Qa]="done";try{let p=Ny(s,t,A.type,a);if(e[yr])return;e[Yu]=p,qt("load",e)}catch(p){e[Gp]=p,qt("error",e)}e[Qa]!=="loading"&&qt("loadend",e)});break}}catch(d){if(e[yr])return;queueMicrotask(()=>{e[Qa]="done",e[Gp]=d,qt("error",e),e[Qa]!=="loading"&&qt("loadend",e)});break}})()}function qt(e,A){let t=new fy(e,{bubbles:!1,cancelable:!1});A.dispatchEvent(t)}function Ny(e,A,t,a){switch(A){case"DataURL":{let r="data:",i=Gu(t||"application/octet-stream");i!=="failure"&&(r+=yy(i)),r+=";base64,";let s=new xu("latin1");for(let n of e)r+=_u(s.write(n));return r+=_u(s.end()),r}case"Text":{let r="failure";if(a&&(r=Ju(a)),r==="failure"&&t){let i=Gu(t);i!=="failure"&&(r=Ju(i.parameters.get("charset")))}return r==="failure"&&(r="UTF-8"),by(e,r)}case"ArrayBuffer":return qu(e).buffer;case"BinaryString":{let r="",i=new xu("latin1");for(let s of e)r+=i.write(s);return r+=i.end(),r}}}function by(e,A){let t=qu(e),a=Sy(t),r=0;a!==null&&(A=a,r=a==="UTF-8"?3:2);let i=t.slice(r);return new TextDecoder(A).decode(i)}function Sy(e){let[A,t,a]=e;return A===239&&t===187&&a===191?"UTF-8":A===254&&t===255?"UTF-16BE":A===255&&t===254?"UTF-16LE":null}function qu(e){let A=e.reduce((a,r)=>a+r.byteLength,0),t=0;return e.reduce((a,r)=>(a.set(r,t),t+=r.byteLength,a),new Uint8Array(A))}Hu.exports={staticPropertyDescriptors:Ry,readOperation:vy,fireAProgressEvent:qt}});var ju=E((LS,Zu)=>{"use strict";var{staticPropertyDescriptors:Ca,readOperation:Ns,fireAProgressEvent:Pu}=Ou(),{kState:C1,kError:Wu,kResult:bs,kEvents:q,kAborted:ky}=Yp(),{webidl:Z}=Ye(),{kEnumerableProperty:Xe}=_(),VA=class e extends EventTarget{constructor(){super(),this[C1]="empty",this[bs]=null,this[Wu]=null,this[q]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(A){Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"}),A=Z.converters.Blob(A,{strict:!1}),Ns(this,A,"ArrayBuffer")}readAsBinaryString(A){Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"}),A=Z.converters.Blob(A,{strict:!1}),Ns(this,A,"BinaryString")}readAsText(A,t=void 0){Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"}),A=Z.converters.Blob(A,{strict:!1}),t!==void 0&&(t=Z.converters.DOMString(t)),Ns(this,A,"Text",t)}readAsDataURL(A){Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"}),A=Z.converters.Blob(A,{strict:!1}),Ns(this,A,"DataURL")}abort(){if(this[C1]==="empty"||this[C1]==="done"){this[bs]=null;return}this[C1]==="loading"&&(this[C1]="done",this[bs]=null),this[ky]=!0,Pu("abort",this),this[C1]!=="loading"&&Pu("loadend",this)}get readyState(){switch(Z.brandCheck(this,e),this[C1]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return Z.brandCheck(this,e),this[bs]}get error(){return Z.brandCheck(this,e),this[Wu]}get onloadend(){return Z.brandCheck(this,e),this[q].loadend}set onloadend(A){Z.brandCheck(this,e),this[q].loadend&&this.removeEventListener("loadend",this[q].loadend),typeof A=="function"?(this[q].loadend=A,this.addEventListener("loadend",A)):this[q].loadend=null}get onerror(){return Z.brandCheck(this,e),this[q].error}set onerror(A){Z.brandCheck(this,e),this[q].error&&this.removeEventListener("error",this[q].error),typeof A=="function"?(this[q].error=A,this.addEventListener("error",A)):this[q].error=null}get onloadstart(){return Z.brandCheck(this,e),this[q].loadstart}set onloadstart(A){Z.brandCheck(this,e),this[q].loadstart&&this.removeEventListener("loadstart",this[q].loadstart),typeof A=="function"?(this[q].loadstart=A,this.addEventListener("loadstart",A)):this[q].loadstart=null}get onprogress(){return Z.brandCheck(this,e),this[q].progress}set onprogress(A){Z.brandCheck(this,e),this[q].progress&&this.removeEventListener("progress",this[q].progress),typeof A=="function"?(this[q].progress=A,this.addEventListener("progress",A)):this[q].progress=null}get onload(){return Z.brandCheck(this,e),this[q].load}set onload(A){Z.brandCheck(this,e),this[q].load&&this.removeEventListener("load",this[q].load),typeof A=="function"?(this[q].load=A,this.addEventListener("load",A)):this[q].load=null}get onabort(){return Z.brandCheck(this,e),this[q].abort}set onabort(A){Z.brandCheck(this,e),this[q].abort&&this.removeEventListener("abort",this[q].abort),typeof A=="function"?(this[q].abort=A,this.addEventListener("abort",A)):this[q].abort=null}};VA.EMPTY=VA.prototype.EMPTY=0;VA.LOADING=VA.prototype.LOADING=1;VA.DONE=VA.prototype.DONE=2;Object.defineProperties(VA.prototype,{EMPTY:Ca,LOADING:Ca,DONE:Ca,readAsArrayBuffer:Xe,readAsBinaryString:Xe,readAsText:Xe,readAsDataURL:Xe,abort:Xe,readyState:Xe,result:Xe,error:Xe,onloadstart:Xe,onprogress:Xe,onload:Xe,onabort:Xe,onerror:Xe,onloadend:Xe,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(VA,{EMPTY:Ca,LOADING:Ca,DONE:Ca});Zu.exports={FileReader:VA}});var Ss=E((MS,Xu)=>{"use strict";Xu.exports={kConstruct:Symbol("constructable")}});var $u=E((TS,Ku)=>{"use strict";var Fy=require("assert"),{URLSerializer:zu}=LA(),{isValidHeaderName:Uy}=mA();function Ly(e,A,t=!1){let a=zu(e,t),r=zu(A,t);return a===r}function My(e){Fy(e!==null);let A=[];for(let t of e.split(",")){if(t=t.trim(),t.length){if(!Uy(t))continue}else continue;A.push(t)}return A}Ku.exports={urlEquals:Ly,fieldValues:My}});var iE=E((VS,rE)=>{"use strict";var{kConstruct:Ty}=Ss(),{urlEquals:Vy,fieldValues:_p}=$u(),{kEnumerableProperty:B1,isDisturbed:Yy}=_(),{kHeadersList:eE}=te(),{webidl:N}=Ye(),{Response:tE,cloneResponse:Jy}=Qs(),{Request:tt}=fr(),{kState:qe,kHeaders:ks,kGuard:AE,kRealm:Gy}=gt(),{fetching:xy}=Rs(),{urlIsHttpHttpsScheme:Fs,createDeferredPromise:Ba,readAllBytes:_y}=mA(),qp=require("assert"),{getGlobalDispatcher:qy}=pa(),Us=class e{#e;constructor(){arguments[0]!==Ty&&N.illegalConstructor(),this.#e=arguments[1]}async match(A,t={}){N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,{header:"Cache.match"}),A=N.converters.RequestInfo(A),t=N.converters.CacheQueryOptions(t);let a=await this.matchAll(A,t);if(a.length!==0)return a[0]}async matchAll(A=void 0,t={}){N.brandCheck(this,e),A!==void 0&&(A=N.converters.RequestInfo(A)),t=N.converters.CacheQueryOptions(t);let a=null;if(A!==void 0)if(A instanceof tt){if(a=A[qe],a.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(a=new tt(A)[qe]);let r=[];if(A===void 0)for(let s of this.#e)r.push(s[1]);else{let s=this.#A(a,t);for(let n of s)r.push(n[1])}let i=[];for(let s of r){let n=new tE(s.body?.source??null),o=n[qe].body;n[qe]=s,n[qe].body=o,n[ks][eE]=s.headersList,n[ks][AE]="immutable",i.push(n)}return Object.freeze(i)}async add(A){N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,{header:"Cache.add"}),A=N.converters.RequestInfo(A);let t=[A];return await this.addAll(t)}async addAll(A){N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,{header:"Cache.addAll"}),A=N.converters["sequence<RequestInfo>"](A);let t=[],a=[];for(let p of A){if(typeof p=="string")continue;let g=p[qe];if(!Fs(g.url)||g.method!=="GET")throw N.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}let r=[];for(let p of A){let g=new tt(p)[qe];if(!Fs(g.url))throw N.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."});g.initiator="fetch",g.destination="subresource",a.push(g);let c=Ba();r.push(xy({request:g,dispatcher:qy(),processResponse(u){if(u.type==="error"||u.status===206||u.status<200||u.status>299)c.reject(N.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(u.headersList.contains("vary")){let Q=_p(u.headersList.get("vary"));for(let B of Q)if(B==="*"){c.reject(N.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let C of r)C.abort();return}}},processResponseEndOfBody(u){if(u.aborted){c.reject(new DOMException("aborted","AbortError"));return}c.resolve(u)}})),t.push(c.promise)}let s=await Promise.all(t),n=[],o=0;for(let p of s){let g={type:"put",request:a[o],response:p};n.push(g),o++}let d=Ba(),l=null;try{this.#a(n)}catch(p){l=p}return queueMicrotask(()=>{l===null?d.resolve(void 0):d.reject(l)}),d.promise}async put(A,t){N.brandCheck(this,e),N.argumentLengthCheck(arguments,2,{header:"Cache.put"}),A=N.converters.RequestInfo(A),t=N.converters.Response(t);let a=null;if(A instanceof tt?a=A[qe]:a=new tt(A)[qe],!Fs(a.url)||a.method!=="GET")throw N.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"});let r=t[qe];if(r.status===206)throw N.errors.exception({header:"Cache.put",message:"Got 206 status"});if(r.headersList.contains("vary")){let g=_p(r.headersList.get("vary"));for(let c of g)if(c==="*")throw N.errors.exception({header:"Cache.put",message:"Got * vary field value"})}if(r.body&&(Yy(r.body.stream)||r.body.stream.locked))throw N.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"});let i=Jy(r),s=Ba();if(r.body!=null){let c=r.body.stream.getReader();_y(c,u=>s.resolve(u),u=>s.reject(u))}else s.resolve(void 0);let n=[],o={type:"put",request:a,response:i};n.push(o);let d=await s.promise;i.body!=null&&(i.body.source=d);let l=Ba(),p=null;try{this.#a(n)}catch(g){p=g}return queueMicrotask(()=>{p===null?l.resolve():l.reject(p)}),l.promise}async delete(A,t={}){N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,{header:"Cache.delete"}),A=N.converters.RequestInfo(A),t=N.converters.CacheQueryOptions(t);let a=null;if(A instanceof tt){if(a=A[qe],a.method!=="GET"&&!t.ignoreMethod)return!1}else qp(typeof A=="string"),a=new tt(A)[qe];let r=[],i={type:"delete",request:a,options:t};r.push(i);let s=Ba(),n=null,o;try{o=this.#a(r)}catch(d){n=d}return queueMicrotask(()=>{n===null?s.resolve(!!o?.length):s.reject(n)}),s.promise}async keys(A=void 0,t={}){N.brandCheck(this,e),A!==void 0&&(A=N.converters.RequestInfo(A)),t=N.converters.CacheQueryOptions(t);let a=null;if(A!==void 0)if(A instanceof tt){if(a=A[qe],a.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(a=new tt(A)[qe]);let r=Ba(),i=[];if(A===void 0)for(let s of this.#e)i.push(s[0]);else{let s=this.#A(a,t);for(let n of s)i.push(n[0])}return queueMicrotask(()=>{let s=[];for(let n of i){let o=new tt("https://a");o[qe]=n,o[ks][eE]=n.headersList,o[ks][AE]="immutable",o[Gy]=n.client,s.push(o)}r.resolve(Object.freeze(s))}),r.promise}#a(A){let t=this.#e,a=[...t],r=[],i=[];try{for(let s of A){if(s.type!=="delete"&&s.type!=="put")throw N.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(s.type==="delete"&&s.response!=null)throw N.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#A(s.request,s.options,r).length)throw new DOMException("???","InvalidStateError");let n;if(s.type==="delete"){if(n=this.#A(s.request,s.options),n.length===0)return[];for(let o of n){let d=t.indexOf(o);qp(d!==-1),t.splice(d,1)}}else if(s.type==="put"){if(s.response==null)throw N.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let o=s.request;if(!Fs(o.url))throw N.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(o.method!=="GET")throw N.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(s.options!=null)throw N.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});n=this.#A(s.request);for(let d of n){let l=t.indexOf(d);qp(l!==-1),t.splice(l,1)}t.push([s.request,s.response]),r.push([s.request,s.response])}i.push([s.request,s.response])}return i}catch(s){throw this.#e.length=0,this.#e=a,s}}#A(A,t,a){let r=[],i=a??this.#e;for(let s of i){let[n,o]=s;this.#t(A,n,o,t)&&r.push(s)}return r}#t(A,t,a=null,r){let i=new URL(A.url),s=new URL(t.url);if(r?.ignoreSearch&&(s.search="",i.search=""),!Vy(i,s,!0))return!1;if(a==null||r?.ignoreVary||!a.headersList.contains("vary"))return!0;let n=_p(a.headersList.get("vary"));for(let o of n){if(o==="*")return!1;let d=t.headersList.get(o),l=A.headersList.get(o);if(d!==l)return!1}return!0}};Object.defineProperties(Us.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:B1,matchAll:B1,add:B1,addAll:B1,put:B1,delete:B1,keys:B1});var aE=[{key:"ignoreSearch",converter:N.converters.boolean,defaultValue:!1},{key:"ignoreMethod",converter:N.converters.boolean,defaultValue:!1},{key:"ignoreVary",converter:N.converters.boolean,defaultValue:!1}];N.converters.CacheQueryOptions=N.dictionaryConverter(aE);N.converters.MultiCacheQueryOptions=N.dictionaryConverter([...aE,{key:"cacheName",converter:N.converters.DOMString}]);N.converters.Response=N.interfaceConverter(tE);N.converters["sequence<RequestInfo>"]=N.sequenceConverter(N.converters.RequestInfo);rE.exports={Cache:Us}});var nE=E((YS,sE)=>{"use strict";var{kConstruct:Dr}=Ss(),{Cache:Ls}=iE(),{webidl:He}=Ye(),{kEnumerableProperty:Rr}=_(),Ms=class e{#e=new Map;constructor(){arguments[0]!==Dr&&He.illegalConstructor()}async match(A,t={}){if(He.brandCheck(this,e),He.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"}),A=He.converters.RequestInfo(A),t=He.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#e.has(t.cacheName)){let a=this.#e.get(t.cacheName);return await new Ls(Dr,a).match(A,t)}}else for(let a of this.#e.values()){let i=await new Ls(Dr,a).match(A,t);if(i!==void 0)return i}}async has(A){return He.brandCheck(this,e),He.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"}),A=He.converters.DOMString(A),this.#e.has(A)}async open(A){if(He.brandCheck(this,e),He.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"}),A=He.converters.DOMString(A),this.#e.has(A)){let a=this.#e.get(A);return new Ls(Dr,a)}let t=[];return this.#e.set(A,t),new Ls(Dr,t)}async delete(A){return He.brandCheck(this,e),He.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"}),A=He.converters.DOMString(A),this.#e.delete(A)}async keys(){return He.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(Ms.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:Rr,has:Rr,open:Rr,delete:Rr,keys:Rr});sE.exports={CacheStorage:Ms}});var dE=E((JS,oE)=>{"use strict";oE.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var Hp=E((GS,gE)=>{"use strict";var pE=require("assert"),{kHeadersList:lE}=te();function Hy(e){if(e.length===0)return!1;for(let A of e){let t=A.charCodeAt(0);if(t>=0||t<=8||t>=10||t<=31||t===127)return!1}}function Oy(e){for(let A of e){let t=A.charCodeAt(0);if(t<=32||t>127||A==="("||A===")"||A===">"||A==="<"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}")throw new Error("Invalid cookie name")}}function Py(e){for(let A of e){let t=A.charCodeAt(0);if(t<33||t===34||t===44||t===59||t===92||t>126)throw new Error("Invalid header value")}}function Wy(e){for(let A of e)if(A.charCodeAt(0)<33||A===";")throw new Error("Invalid cookie path")}function Zy(e){if(e.startsWith("-")||e.endsWith(".")||e.endsWith("-"))throw new Error("Invalid cookie domain")}function jy(e){typeof e=="number"&&(e=new Date(e));let A=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],a=A[e.getUTCDay()],r=e.getUTCDate().toString().padStart(2,"0"),i=t[e.getUTCMonth()],s=e.getUTCFullYear(),n=e.getUTCHours().toString().padStart(2,"0"),o=e.getUTCMinutes().toString().padStart(2,"0"),d=e.getUTCSeconds().toString().padStart(2,"0");return`${a}, ${r} ${i} ${s} ${n}:${o}:${d} GMT`}function Xy(e){if(e<0)throw new Error("Invalid cookie max-age")}function zy(e){if(e.name.length===0)return null;Oy(e.name),Py(e.value);let A=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&A.push("Secure"),e.httpOnly&&A.push("HttpOnly"),typeof e.maxAge=="number"&&(Xy(e.maxAge),A.push(`Max-Age=${e.maxAge}`)),e.domain&&(Zy(e.domain),A.push(`Domain=${e.domain}`)),e.path&&(Wy(e.path),A.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&A.push(`Expires=${jy(e.expires)}`),e.sameSite&&A.push(`SameSite=${e.sameSite}`);for(let t of e.unparsed){if(!t.includes("="))throw new Error("Invalid unparsed");let[a,...r]=t.split("=");A.push(`${a.trim()}=${r.join("=")}`)}return A.join("; ")}var Ts;function Ky(e){if(e[lE])return e[lE];Ts||(Ts=Object.getOwnPropertySymbols(e).find(t=>t.description==="headers list"),pE(Ts,"Headers cannot be parsed"));let A=e[Ts];return pE(A),A}gE.exports={isCTLExcludingHtab:Hy,stringify:zy,getHeadersList:Ky}});var uE=E((xS,cE)=>{"use strict";var{maxNameValuePairSize:$y,maxAttributeValueSize:eD}=dE(),{isCTLExcludingHtab:AD}=Hp(),{collectASequenceOfCodePointsFast:Vs}=LA(),tD=require("assert");function aD(e){if(AD(e))return null;let A="",t="",a="",r="";if(e.includes(";")){let i={position:0};A=Vs(";",e,i),t=e.slice(i.position)}else A=e;if(!A.includes("="))r=A;else{let i={position:0};a=Vs("=",A,i),r=A.slice(i.position+1)}return a=a.trim(),r=r.trim(),a.length+r.length>$y?null:{name:a,value:r,...ha(t)}}function ha(e,A={}){if(e.length===0)return A;tD(e[0]===";"),e=e.slice(1);let t="";e.includes(";")?(t=Vs(";",e,{position:0}),e=e.slice(t.length)):(t=e,e="");let a="",r="";if(t.includes("=")){let s={position:0};a=Vs("=",t,s),r=t.slice(s.position+1)}else a=t;if(a=a.trim(),r=r.trim(),r.length>eD)return ha(e,A);let i=a.toLowerCase();if(i==="expires"){let s=new Date(r);A.expires=s}else if(i==="max-age"){let s=r.charCodeAt(0);if((s<48||s>57)&&r[0]!=="-"||!/^\d+$/.test(r))return ha(e,A);let n=Number(r);A.maxAge=n}else if(i==="domain"){let s=r;s[0]==="."&&(s=s.slice(1)),s=s.toLowerCase(),A.domain=s}else if(i==="path"){let s="";r.length===0||r[0]!=="/"?s="/":s=r,A.path=s}else if(i==="secure")A.secure=!0;else if(i==="httponly")A.httpOnly=!0;else if(i==="samesite"){let s="Default",n=r.toLowerCase();n.includes("none")&&(s="None"),n.includes("strict")&&(s="Strict"),n.includes("lax")&&(s="Lax"),A.sameSite=s}else A.unparsed??=[],A.unparsed.push(`${a}=${r}`);return ha(e,A)}cE.exports={parseSetCookie:aD,parseUnparsedAttributes:ha}});var BE=E((_S,CE)=>{"use strict";var{parseSetCookie:rD}=uE(),{stringify:EE,getHeadersList:iD}=Hp(),{webidl:G}=Ye(),{Headers:Ys}=E1();function sD(e){G.argumentLengthCheck(arguments,1,{header:"getCookies"}),G.brandCheck(e,Ys,{strict:!1});let A=e.get("cookie"),t={};if(!A)return t;for(let a of A.split(";")){let[r,...i]=a.split("=");t[r.trim()]=i.join("=")}return t}function nD(e,A,t){G.argumentLengthCheck(arguments,2,{header:"deleteCookie"}),G.brandCheck(e,Ys,{strict:!1}),A=G.converters.DOMString(A),t=G.converters.DeleteCookieAttributes(t),QE(e,{name:A,value:"",expires:new Date(0),...t})}function oD(e){G.argumentLengthCheck(arguments,1,{header:"getSetCookies"}),G.brandCheck(e,Ys,{strict:!1});let A=iD(e).cookies;return A?A.map(t=>rD(Array.isArray(t)?t[1]:t)):[]}function QE(e,A){G.argumentLengthCheck(arguments,2,{header:"setCookie"}),G.brandCheck(e,Ys,{strict:!1}),A=G.converters.Cookie(A),EE(A)&&e.append("Set-Cookie",EE(A))}G.converters.DeleteCookieAttributes=G.dictionaryConverter([{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:null}]);G.converters.Cookie=G.dictionaryConverter([{converter:G.converters.DOMString,key:"name"},{converter:G.converters.DOMString,key:"value"},{converter:G.nullableConverter(e=>typeof e=="number"?G.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:null},{converter:G.nullableConverter(G.converters["long long"]),key:"maxAge",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:null},{converter:G.nullableConverter(G.converters.boolean),key:"secure",defaultValue:null},{converter:G.nullableConverter(G.converters.boolean),key:"httpOnly",defaultValue:null},{converter:G.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:G.sequenceConverter(G.converters.DOMString),key:"unparsed",defaultValue:[]}]);CE.exports={getCookies:sD,deleteCookie:nD,getSetCookies:oD,setCookie:QE}});var ma=E((qS,hE)=>{"use strict";var dD="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",pD={enumerable:!0,writable:!1,configurable:!1},lD={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},gD={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},cD=2**16-1,uD={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},ED=Buffer.allocUnsafe(0);hE.exports={uid:dD,staticPropertyDescriptors:pD,states:lD,opcodes:gD,maxUnsigned16Bit:cD,parserStates:uD,emptyBuffer:ED}});var vr=E((HS,mE)=>{"use strict";mE.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var Pp=E((OS,IE)=>{"use strict";var{webidl:b}=Ye(),{kEnumerableProperty:ze}=_(),{MessagePort:QD}=require("worker_threads"),Js=class e extends Event{#e;constructor(A,t={}){b.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"}),A=b.converters.DOMString(A),t=b.converters.MessageEventInit(t),super(A,t),this.#e=t}get data(){return b.brandCheck(this,e),this.#e.data}get origin(){return b.brandCheck(this,e),this.#e.origin}get lastEventId(){return b.brandCheck(this,e),this.#e.lastEventId}get source(){return b.brandCheck(this,e),this.#e.source}get ports(){return b.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(A,t=!1,a=!1,r=null,i="",s="",n=null,o=[]){return b.brandCheck(this,e),b.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"}),new e(A,{bubbles:t,cancelable:a,data:r,origin:i,lastEventId:s,source:n,ports:o})}},Gs=class e extends Event{#e;constructor(A,t={}){b.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"}),A=b.converters.DOMString(A),t=b.converters.CloseEventInit(t),super(A,t),this.#e=t}get wasClean(){return b.brandCheck(this,e),this.#e.wasClean}get code(){return b.brandCheck(this,e),this.#e.code}get reason(){return b.brandCheck(this,e),this.#e.reason}},xs=class e extends Event{#e;constructor(A,t){b.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"}),super(A,t),A=b.converters.DOMString(A),t=b.converters.ErrorEventInit(t??{}),this.#e=t}get message(){return b.brandCheck(this,e),this.#e.message}get filename(){return b.brandCheck(this,e),this.#e.filename}get lineno(){return b.brandCheck(this,e),this.#e.lineno}get colno(){return b.brandCheck(this,e),this.#e.colno}get error(){return b.brandCheck(this,e),this.#e.error}};Object.defineProperties(Js.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:ze,origin:ze,lastEventId:ze,source:ze,ports:ze,initMessageEvent:ze});Object.defineProperties(Gs.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:ze,code:ze,wasClean:ze});Object.defineProperties(xs.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:ze,filename:ze,lineno:ze,colno:ze,error:ze});b.converters.MessagePort=b.interfaceConverter(QD);b.converters["sequence<MessagePort>"]=b.sequenceConverter(b.converters.MessagePort);var Op=[{key:"bubbles",converter:b.converters.boolean,defaultValue:!1},{key:"cancelable",converter:b.converters.boolean,defaultValue:!1},{key:"composed",converter:b.converters.boolean,defaultValue:!1}];b.converters.MessageEventInit=b.dictionaryConverter([...Op,{key:"data",converter:b.converters.any,defaultValue:null},{key:"origin",converter:b.converters.USVString,defaultValue:""},{key:"lastEventId",converter:b.converters.DOMString,defaultValue:""},{key:"source",converter:b.nullableConverter(b.converters.MessagePort),defaultValue:null},{key:"ports",converter:b.converters["sequence<MessagePort>"],get defaultValue(){return[]}}]);b.converters.CloseEventInit=b.dictionaryConverter([...Op,{key:"wasClean",converter:b.converters.boolean,defaultValue:!1},{key:"code",converter:b.converters["unsigned short"],defaultValue:0},{key:"reason",converter:b.converters.USVString,defaultValue:""}]);b.converters.ErrorEventInit=b.dictionaryConverter([...Op,{key:"message",converter:b.converters.DOMString,defaultValue:""},{key:"filename",converter:b.converters.USVString,defaultValue:""},{key:"lineno",converter:b.converters["unsigned long"],defaultValue:0},{key:"colno",converter:b.converters["unsigned long"],defaultValue:0},{key:"error",converter:b.converters.any}]);IE.exports={MessageEvent:Js,CloseEvent:Gs,ErrorEvent:xs}});var Hs=E((PS,yE)=>{"use strict";var{kReadyState:_s,kController:CD,kResponse:BD,kBinaryType:hD,kWebSocketURL:mD}=vr(),{states:qs,opcodes:fE}=ma(),{MessageEvent:ID,ErrorEvent:fD}=Pp();function wD(e){return e[_s]===qs.OPEN}function yD(e){return e[_s]===qs.CLOSING}function DD(e){return e[_s]===qs.CLOSED}function Wp(e,A,t=Event,a){let r=new t(e,a);A.dispatchEvent(r)}function RD(e,A,t){if(e[_s]!==qs.OPEN)return;let a;if(A===fE.TEXT)try{a=new TextDecoder("utf-8",{fatal:!0}).decode(t)}catch{wE(e,"Received invalid UTF-8 in text frame.");return}else A===fE.BINARY&&(e[hD]==="blob"?a=new Blob([t]):a=new Uint8Array(t).buffer);Wp("message",e,ID,{origin:e[mD].origin,data:a})}function vD(e){if(e.length===0)return!1;for(let A of e){let t=A.charCodeAt(0);if(t<33||t>126||A==="("||A===")"||A==="<"||A===">"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}"||t===32||t===9)return!1}return!0}function ND(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function wE(e,A){let{[CD]:t,[BD]:a}=e;t.abort(),a?.socket&&!a.socket.destroyed&&a.socket.destroy(),A&&Wp("error",e,fD,{error:new Error(A)})}yE.exports={isEstablished:wD,isClosing:yD,isClosed:DD,fireEvent:Wp,isValidSubprotocol:vD,isValidStatusCode:ND,failWebsocketConnection:wE,websocketMessageReceived:RD}});var SE=E((WS,bE)=>{"use strict";var{randomBytes:bD,createHash:SD}=require("crypto"),Zp=require("diagnostics_channel"),{uid:kD,states:RE}=ma(),{kReadyState:vE,kSentClose:DE,kByteParser:NE,kReceivedClose:FD}=vr(),{fireEvent:UD,failWebsocketConnection:h1}=Hs(),{CloseEvent:LD}=Pp(),{makeRequest:MD}=fr(),{fetching:TD}=Rs(),{Headers:VD}=E1(),{getGlobalDispatcher:YD}=pa(),{kHeadersList:JD}=te(),mt={};mt.open=Zp.channel("undici:websocket:open");mt.close=Zp.channel("undici:websocket:close");mt.socketError=Zp.channel("undici:websocket:socket_error");function GD(e,A,t,a,r){let i=e;i.protocol=e.protocol==="ws:"?"http:":"https:";let s=MD({urlList:[i],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(r.headers){let l=new VD(r.headers)[JD];s.headersList=l}let n=bD(16).toString("base64");s.headersList.append("sec-websocket-key",n),s.headersList.append("sec-websocket-version","13");for(let l of A)s.headersList.append("sec-websocket-protocol",l);let o="";return TD({request:s,useParallelQueue:!0,dispatcher:r.dispatcher??YD(),processResponse(l){if(l.type==="error"||l.status!==101){h1(t,"Received network error or non-101 status code.");return}if(A.length!==0&&!l.headersList.get("Sec-WebSocket-Protocol")){h1(t,"Server did not respond with sent protocols.");return}if(l.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){h1(t,'Server did not set Upgrade header to "websocket".');return}if(l.headersList.get("Connection")?.toLowerCase()!=="upgrade"){h1(t,'Server did not set Connection header to "upgrade".');return}let p=l.headersList.get("Sec-WebSocket-Accept"),g=SD("sha1").update(n+kD).digest("base64");if(p!==g){h1(t,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let c=l.headersList.get("Sec-WebSocket-Extensions");if(c!==null&&c!==o){h1(t,"Received different permessage-deflate than the one set.");return}let u=l.headersList.get("Sec-WebSocket-Protocol");if(u!==null&&u!==s.headersList.get("Sec-WebSocket-Protocol")){h1(t,"Protocol was not set in the opening handshake.");return}l.socket.on("data",xD),l.socket.on("close",_D),l.socket.on("error",qD),mt.open.hasSubscribers&&mt.open.publish({address:l.socket.address(),protocol:u,extensions:c}),a(l)}})}function xD(e){this.ws[NE].write(e)||this.pause()}function _D(){let{ws:e}=this,A=e[DE]&&e[FD],t=1005,a="",r=e[NE].closingInfo;r?(t=r.code??1005,a=r.reason):e[DE]||(t=1006),e[vE]=RE.CLOSED,UD("close",e,LD,{wasClean:A,code:t,reason:a}),mt.close.hasSubscribers&&mt.close.publish({websocket:e,code:t,reason:a})}function qD(e){let{ws:A}=this;A[vE]=RE.CLOSING,mt.socketError.hasSubscribers&&mt.socketError.publish(e),this.destroy()}bE.exports={establishWebSocketConnection:GD}});var Xp=E((ZS,kE)=>{"use strict";var{randomBytes:HD}=require("crypto"),{maxUnsigned16Bit:OD}=ma(),jp=class{constructor(A){this.frameData=A,this.maskKey=HD(4)}createFrame(A){let t=this.frameData?.byteLength??0,a=t,r=6;t>OD?(r+=8,a=127):t>125&&(r+=2,a=126);let i=Buffer.allocUnsafe(t+r);i[0]=i[1]=0,i[0]|=128,i[0]=(i[0]&240)+A;i[r-4]=this.maskKey[0],i[r-3]=this.maskKey[1],i[r-2]=this.maskKey[2],i[r-1]=this.maskKey[3],i[1]=a,a===126?i.writeUInt16BE(t,2):a===127&&(i[2]=i[3]=0,i.writeUIntBE(t,4,6)),i[1]|=128;for(let s=0;s<t;s++)i[r+s]=this.frameData[s]^this.maskKey[s%4];return i}};kE.exports={WebsocketFrameSend:jp}});var JE=E((jS,YE)=>{"use strict";var{Writable:PD}=require("stream"),VE=require("diagnostics_channel"),{parserStates:RA,opcodes:vA,states:WD,emptyBuffer:ZD}=ma(),{kReadyState:jD,kSentClose:FE,kResponse:UE,kReceivedClose:LE}=vr(),{isValidStatusCode:ME,failWebsocketConnection:Nr,websocketMessageReceived:XD}=Hs(),{WebsocketFrameSend:TE}=Xp(),Ia={};Ia.ping=VE.channel("undici:websocket:ping");Ia.pong=VE.channel("undici:websocket:pong");var zp=class extends PD{#e=[];#a=0;#A=RA.INFO;#t={};#r=[];constructor(A){super(),this.ws=A}_write(A,t,a){this.#e.push(A),this.#a+=A.length,this.run(a)}run(A){for(;;){if(this.#A===RA.INFO){if(this.#a<2)return A();let t=this.consume(2);if(this.#t.fin=(t[0]&128)!==0,this.#t.opcode=t[0]&15,this.#t.originalOpcode??=this.#t.opcode,this.#t.fragmented=!this.#t.fin&&this.#t.opcode!==vA.CONTINUATION,this.#t.fragmented&&this.#t.opcode!==vA.BINARY&&this.#t.opcode!==vA.TEXT){Nr(this.ws,"Invalid frame type was fragmented.");return}let a=t[1]&127;if(a<=125?(this.#t.payloadLength=a,this.#A=RA.READ_DATA):a===126?this.#A=RA.PAYLOADLENGTH_16:a===127&&(this.#A=RA.PAYLOADLENGTH_64),this.#t.fragmented&&a>125){Nr(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#t.opcode===vA.PING||this.#t.opcode===vA.PONG||this.#t.opcode===vA.CLOSE)&&a>125){Nr(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#t.opcode===vA.CLOSE){if(a===1){Nr(this.ws,"Received close frame with a 1-byte body.");return}let r=this.consume(a);if(this.#t.closeInfo=this.parseCloseBody(!1,r),!this.ws[FE]){let i=Buffer.allocUnsafe(2);i.writeUInt16BE(this.#t.closeInfo.code,0);let s=new TE(i);this.ws[UE].socket.write(s.createFrame(vA.CLOSE),n=>{n||(this.ws[FE]=!0)})}this.ws[jD]=WD.CLOSING,this.ws[LE]=!0,this.end();return}else if(this.#t.opcode===vA.PING){let r=this.consume(a);if(!this.ws[LE]){let i=new TE(r);this.ws[UE].socket.write(i.createFrame(vA.PONG)),Ia.ping.hasSubscribers&&Ia.ping.publish({payload:r})}if(this.#A=RA.INFO,this.#a>0)continue;A();return}else if(this.#t.opcode===vA.PONG){let r=this.consume(a);if(Ia.pong.hasSubscribers&&Ia.pong.publish({payload:r}),this.#a>0)continue;A();return}}else if(this.#A===RA.PAYLOADLENGTH_16){if(this.#a<2)return A();let t=this.consume(2);this.#t.payloadLength=t.readUInt16BE(0),this.#A=RA.READ_DATA}else if(this.#A===RA.PAYLOADLENGTH_64){if(this.#a<8)return A();let t=this.consume(8),a=t.readUInt32BE(0);if(a>2**31-1){Nr(this.ws,"Received payload length > 2^31 bytes.");return}let r=t.readUInt32BE(4);this.#t.payloadLength=(a<<8)+r,this.#A=RA.READ_DATA}else if(this.#A===RA.READ_DATA){if(this.#a<this.#t.payloadLength)return A();if(this.#a>=this.#t.payloadLength){let t=this.consume(this.#t.payloadLength);if(this.#r.push(t),!this.#t.fragmented||this.#t.fin&&this.#t.opcode===vA.CONTINUATION){let a=Buffer.concat(this.#r);XD(this.ws,this.#t.originalOpcode,a),this.#t={},this.#r.length=0}this.#A=RA.INFO}}if(!(this.#a>0)){A();break}}}consume(A){if(A>this.#a)return null;if(A===0)return ZD;if(this.#e[0].length===A)return this.#a-=this.#e[0].length,this.#e.shift();let t=Buffer.allocUnsafe(A),a=0;for(;a!==A;){let r=this.#e[0],{length:i}=r;if(i+a===A){t.set(this.#e.shift(),a);break}else if(i+a>A){t.set(r.subarray(0,A-a),a),this.#e[0]=r.subarray(A-a);break}else t.set(this.#e.shift(),a),a+=r.length}return this.#a-=A,t}parseCloseBody(A,t){let a;if(t.length>=2&&(a=t.readUInt16BE(0)),A)return ME(a)?{code:a}:null;let r=t.subarray(2);if(r[0]===239&&r[1]===187&&r[2]===191&&(r=r.subarray(3)),a!==void 0&&!ME(a))return null;try{r=new TextDecoder("utf-8",{fatal:!0}).decode(r)}catch{return null}return{code:a,reason:r}}get closingInfo(){return this.#t.closeInfo}};YE.exports={ByteParser:zp}});var WE=E((XS,PE)=>{"use strict";var{webidl:F}=Ye(),{DOMException:Ht}=Mt(),{URLSerializer:zD}=LA(),{staticPropertyDescriptors:Ot,states:fa,opcodes:br,emptyBuffer:KD}=ma(),{kWebSocketURL:GE,kReadyState:It,kController:$D,kBinaryType:Os,kResponse:Ps,kSentClose:eR,kByteParser:AR}=vr(),{isEstablished:xE,isClosing:_E,isValidSubprotocol:tR,failWebsocketConnection:aR,fireEvent:rR}=Hs(),{establishWebSocketConnection:iR}=SE(),{WebsocketFrameSend:Sr}=Xp(),{ByteParser:sR}=JE(),{kEnumerableProperty:NA,isBlobLike:HE}=_(),{getGlobalDispatcher:nR}=pa(),{types:OE}=require("util"),qE=!1,lA=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#a=0;#A="";#t="";constructor(A,t=[]){super(),F.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"}),qE||(qE=!0,process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"}));let a=F.converters["DOMString or sequence<DOMString> or WebSocketInit"](t);A=F.converters.USVString(A),t=a.protocols;let r;try{r=new URL(A)}catch(i){throw new Ht(i,"SyntaxError")}if(r.protocol!=="ws:"&&r.protocol!=="wss:")throw new Ht(`Expected a ws: or wss: protocol, got ${r.protocol}`,"SyntaxError");if(r.hash)throw new Ht("Got fragment","SyntaxError");if(typeof t=="string"&&(t=[t]),t.length!==new Set(t.map(i=>i.toLowerCase())).size)throw new Ht("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(t.length>0&&!t.every(i=>tR(i)))throw new Ht("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[GE]=r,this[$D]=iR(r,t,this,i=>this.#r(i),a),this[It]=e.CONNECTING,this[Os]="blob"}close(A=void 0,t=void 0){if(F.brandCheck(this,e),A!==void 0&&(A=F.converters["unsigned short"](A,{clamp:!0})),t!==void 0&&(t=F.converters.USVString(t)),A!==void 0&&A!==1e3&&(A<3e3||A>4999))throw new Ht("invalid code","InvalidAccessError");let a=0;if(t!==void 0&&(a=Buffer.byteLength(t),a>123))throw new Ht(`Reason must be less than 123 bytes; received ${a}`,"SyntaxError");if(!(this[It]===e.CLOSING||this[It]===e.CLOSED))if(!xE(this))aR(this,"Connection was closed before it was established."),this[It]=e.CLOSING;else if(_E(this))this[It]=e.CLOSING;else{let r=new Sr;A!==void 0&&t===void 0?(r.frameData=Buffer.allocUnsafe(2),r.frameData.writeUInt16BE(A,0)):A!==void 0&&t!==void 0?(r.frameData=Buffer.allocUnsafe(2+a),r.frameData.writeUInt16BE(A,0),r.frameData.write(t,2,"utf-8")):r.frameData=KD,this[Ps].socket.write(r.createFrame(br.CLOSE),s=>{s||(this[eR]=!0)}),this[It]=fa.CLOSING}}send(A){if(F.brandCheck(this,e),F.argumentLengthCheck(arguments,1,{header:"WebSocket.send"}),A=F.converters.WebSocketSendData(A),this[It]===e.CONNECTING)throw new Ht("Sent before connected.","InvalidStateError");if(!xE(this)||_E(this))return;let t=this[Ps].socket;if(typeof A=="string"){let a=Buffer.from(A),i=new Sr(a).createFrame(br.TEXT);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(OE.isArrayBuffer(A)){let a=Buffer.from(A),i=new Sr(a).createFrame(br.BINARY);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(ArrayBuffer.isView(A)){let a=Buffer.from(A,A.byteOffset,A.byteLength),i=new Sr(a).createFrame(br.BINARY);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(HE(A)){let a=new Sr;A.arrayBuffer().then(r=>{let i=Buffer.from(r);a.frameData=i;let s=a.createFrame(br.BINARY);this.#a+=i.byteLength,t.write(s,()=>{this.#a-=i.byteLength})})}}get readyState(){return F.brandCheck(this,e),this[It]}get bufferedAmount(){return F.brandCheck(this,e),this.#a}get url(){return F.brandCheck(this,e),zD(this[GE])}get extensions(){return F.brandCheck(this,e),this.#t}get protocol(){return F.brandCheck(this,e),this.#A}get onopen(){return F.brandCheck(this,e),this.#e.open}set onopen(A){F.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof A=="function"?(this.#e.open=A,this.addEventListener("open",A)):this.#e.open=null}get onerror(){return F.brandCheck(this,e),this.#e.error}set onerror(A){F.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof A=="function"?(this.#e.error=A,this.addEventListener("error",A)):this.#e.error=null}get onclose(){return F.brandCheck(this,e),this.#e.close}set onclose(A){F.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof A=="function"?(this.#e.close=A,this.addEventListener("close",A)):this.#e.close=null}get onmessage(){return F.brandCheck(this,e),this.#e.message}set onmessage(A){F.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof A=="function"?(this.#e.message=A,this.addEventListener("message",A)):this.#e.message=null}get binaryType(){return F.brandCheck(this,e),this[Os]}set binaryType(A){F.brandCheck(this,e),A!=="blob"&&A!=="arraybuffer"?this[Os]="blob":this[Os]=A}#r(A){this[Ps]=A;let t=new sR(this);t.on("drain",function(){this.ws[Ps].socket.resume()}),A.socket.ws=this,this[AR]=t,this[It]=fa.OPEN;let a=A.headersList.get("sec-websocket-extensions");a!==null&&(this.#t=a);let r=A.headersList.get("sec-websocket-protocol");r!==null&&(this.#A=r),rR("open",this)}};lA.CONNECTING=lA.prototype.CONNECTING=fa.CONNECTING;lA.OPEN=lA.prototype.OPEN=fa.OPEN;lA.CLOSING=lA.prototype.CLOSING=fa.CLOSING;lA.CLOSED=lA.prototype.CLOSED=fa.CLOSED;Object.defineProperties(lA.prototype,{CONNECTING:Ot,OPEN:Ot,CLOSING:Ot,CLOSED:Ot,url:NA,readyState:NA,bufferedAmount:NA,onopen:NA,onerror:NA,onclose:NA,close:NA,onmessage:NA,binaryType:NA,send:NA,extensions:NA,protocol:NA,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(lA,{CONNECTING:Ot,OPEN:Ot,CLOSING:Ot,CLOSED:Ot});F.converters["sequence<DOMString>"]=F.sequenceConverter(F.converters.DOMString);F.converters["DOMString or sequence<DOMString>"]=function(e){return F.util.Type(e)==="Object"&&Symbol.iterator in e?F.converters["sequence<DOMString>"](e):F.converters.DOMString(e)};F.converters.WebSocketInit=F.dictionaryConverter([{key:"protocols",converter:F.converters["DOMString or sequence<DOMString>"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return nR()}},{key:"headers",converter:F.nullableConverter(F.converters.HeadersInit)}]);F.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(e){return F.util.Type(e)==="Object"&&!(Symbol.iterator in e)?F.converters.WebSocketInit(e):{protocols:F.converters["DOMString or sequence<DOMString>"](e)}};F.converters.WebSocketSendData=function(e){if(F.util.Type(e)==="Object"){if(HE(e))return F.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||OE.isAnyArrayBuffer(e))return F.converters.BufferSource(e)}return F.converters.USVString(e)};PE.exports={WebSocket:lA}});var $p=E((zS,V)=>{"use strict";var oR=pr(),ZE=Li(),jE=z(),dR=ea(),pR=cg(),lR=ur(),m1=_(),{InvalidArgumentError:Ws}=jE,wa=ic(),gR=ar(),cR=np(),uR=xc(),ER=pp(),QR=jd(),CR=Zc(),{getGlobalDispatcher:XE,setGlobalDispatcher:BR}=pa(),hR=eu(),mR=sd(),IR=Yi(),Kp;try{require("crypto"),Kp=!0}catch{Kp=!1}Object.assign(ZE.prototype,wa);V.exports.Dispatcher=ZE;V.exports.Client=oR;V.exports.Pool=dR;V.exports.BalancedPool=pR;V.exports.Agent=lR;V.exports.ProxyAgent=CR;V.exports.DecoratorHandler=hR;V.exports.RedirectHandler=mR;V.exports.createRedirectInterceptor=IR;V.exports.buildConnector=gR;V.exports.errors=jE;function kr(e){return(A,t,a)=>{if(typeof t=="function"&&(a=t,t=null),!A||typeof A!="string"&&typeof A!="object"&&!(A instanceof URL))throw new Ws("invalid url");if(t!=null&&typeof t!="object")throw new Ws("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new Ws("invalid opts.path");let s=t.path;t.path.startsWith("/")||(s=`/${s}`),A=new URL(m1.parseOrigin(A).origin+s)}else t||(t=typeof A=="object"?A:{}),A=m1.parseURL(A);let{agent:r,dispatcher:i=XE()}=t;if(r)throw new Ws("unsupported opts.agent. Did you mean opts.client?");return e.call(i,{...t,origin:A.origin,path:A.search?`${A.pathname}${A.search}`:A.pathname,method:t.method||(t.body?"PUT":"GET")},a)}}V.exports.setGlobalDispatcher=BR;V.exports.getGlobalDispatcher=XE;if(m1.nodeMajor>16||m1.nodeMajor===16&&m1.nodeMinor>=8){let e=null;V.exports.fetch=async function(s){e||(e=Rs().fetch);try{return await e(...arguments)}catch(n){throw Error.captureStackTrace(n,this),n}},V.exports.Headers=E1().Headers,V.exports.Response=Qs().Response,V.exports.Request=fr().Request,V.exports.FormData=Fi().FormData,V.exports.File=Si().File,V.exports.FileReader=ju().FileReader;let{setGlobalOrigin:A,getGlobalOrigin:t}=Xa();V.exports.setGlobalOrigin=A,V.exports.getGlobalOrigin=t;let{CacheStorage:a}=nE(),{kConstruct:r}=Ss();V.exports.caches=new a(r)}if(m1.nodeMajor>=16){let{deleteCookie:e,getCookies:A,getSetCookies:t,setCookie:a}=BE();V.exports.deleteCookie=e,V.exports.getCookies=A,V.exports.getSetCookies=t,V.exports.setCookie=a;let{parseMIMEType:r,serializeAMimeType:i}=LA();V.exports.parseMIMEType=r,V.exports.serializeAMimeType=i}if(m1.nodeMajor>=18&&Kp){let{WebSocket:e}=WE();V.exports.WebSocket=e}V.exports.request=kr(wa.request);V.exports.stream=kr(wa.stream);V.exports.pipeline=kr(wa.pipeline);V.exports.connect=kr(wa.connect);V.exports.upgrade=kr(wa.upgrade);V.exports.MockClient=cR;V.exports.MockPool=ER;V.exports.MockAgent=uR;V.exports.mockErrors=QR});var r0=E(a0=>{"use strict";Object.defineProperty(a0,"__esModule",{value:!0});var yR=function(e,A,t,a){if(typeof e!="string"||e.length===0)throw new TypeError("text should be a string");if(typeof A!="string"||A.length===0)throw new TypeError("lang should be a string");if(typeof t!="boolean")throw new TypeError("slow should be a boolean");if(typeof a!="string"||a.length===0)throw new TypeError("host should be a string")};a0.default=yR});var s0=E(i0=>{"use strict";Object.defineProperty(i0,"__esModule",{value:!0});var DR="\\s\\uFEFF\\xA0",RR="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",vR=function(e,A){for(var t=A===void 0?{}:A,a=t.maxLength,r=a===void 0?200:a,i=t.splitPunct,s=i===void 0?"":i,n=function(u,Q){var B=new RegExp("["+DR+RR+s+"]");return B.test(u.charAt(Q))},o=function(u,Q,B){for(var C=B;C>=Q;C--)if(n(u,C))return C;return-1},d=[],l=function(u,Q,B){d.push(u.slice(Q,B+1))},p=0;;){if(e.length-p<=r){l(e,p,e.length-1);break}var g=p+r-1;if(n(e,g)||n(e,g+1)){l(e,p,g),p=g+1;continue}if(g=o(e,p,g),g===-1){var c=e.slice(p,p+r);throw new Error("The word is too long to split into a short text:"+(` +`.trim())}};kc.exports=sp});var Yc=E((Tb,Vc)=>{"use strict";var{kProxy:df,kClose:pf,kDestroy:lf,kInterceptors:gf}=te(),{URL:Uc}=require("url"),Lc=or(),cf=X1(),uf=Xa(),{InvalidArgumentError:gr,RequestAbortedError:Ef}=z(),Mc=za(),lr=Symbol("proxy agent"),as=Symbol("proxy client"),rs=Symbol("proxy headers"),np=Symbol("request tls settings"),Qf=Symbol("proxy tls settings"),Tc=Symbol("connect endpoint function");function Cf(e){return e==="https:"?443:80}function mf(e){if(typeof e=="string"&&(e={uri:e}),!e||!e.uri)throw new gr("Proxy opts.uri is mandatory");return{uri:e.uri,protocol:e.protocol||"https"}}function Bf(e,A){return new cf(e,A)}var op=class extends uf{constructor(A){if(super(A),this[df]=mf(A),this[lr]=new Lc(A),this[gf]=A.interceptors&&A.interceptors.ProxyAgent&&Array.isArray(A.interceptors.ProxyAgent)?A.interceptors.ProxyAgent:[],typeof A=="string"&&(A={uri:A}),!A||!A.uri)throw new gr("Proxy opts.uri is mandatory");let{clientFactory:t=Bf}=A;if(typeof t!="function")throw new gr("Proxy opts.clientFactory must be a function.");if(this[np]=A.requestTls,this[Qf]=A.proxyTls,this[rs]=A.headers||{},A.auth&&A.token)throw new gr("opts.auth cannot be used in combination with opts.token");A.auth?this[rs]["proxy-authorization"]=`Basic ${A.auth}`:A.token&&(this[rs]["proxy-authorization"]=A.token);let a=new Uc(A.uri),{origin:r,port:i,host:s}=a,n=Mc({...A.proxyTls});this[Tc]=Mc({...A.requestTls}),this[as]=t(a,{connect:n}),this[lr]=new Lc({...A,connect:async(o,d)=>{let l=o.host;o.port||(l+=`:${Cf(o.protocol)}`);try{let{socket:p,statusCode:g}=await this[as].connect({origin:r,port:i,path:l,signal:o.signal,headers:{...this[rs],host:s}});if(g!==200&&(p.on("error",()=>{}).destroy(),d(new Ef("Proxy response !== 200 when HTTP Tunneling"))),o.protocol!=="https:"){d(null,p);return}let c;this[np]?c=this[np].servername:c=o.servername,this[Tc]({...o,servername:c,httpSocket:p},d)}catch(p){d(p)}}})}dispatch(A,t){let{host:a}=new Uc(A.origin),r=hf(A.headers);return If(r),this[lr].dispatch({...A,headers:{...r,host:a}},t)}async[pf](){await this[lr].close(),await this[as].close()}async[lf](){await this[lr].destroy(),await this[as].destroy()}};function hf(e){if(Array.isArray(e)){let A={};for(let t=0;t<e.length;t+=2)A[e[t]]=e[t+1];return A}return e}function If(e){if(e&&Object.keys(e).find(t=>t.toLowerCase()==="proxy-authorization"))throw new gr("Proxy-Authorization should be sent in ProxyAgent constructor")}Vc.exports=op});var sa=E((Vb,qc)=>{"use strict";var Jc=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:ff}=z(),wf=or();xc()===void 0&&Gc(new wf);function Gc(e){if(!e||typeof e.dispatch!="function")throw new ff("Argument agent must implement Agent");Object.defineProperty(globalThis,Jc,{value:e,writable:!0,enumerable:!1,configurable:!1})}function xc(){return globalThis[Jc]}qc.exports={setGlobalDispatcher:Gc,getGlobalDispatcher:xc}});var Oc=E((Jb,Hc)=>{"use strict";Hc.exports=class{constructor(A){this.handler=A}onConnect(...A){return this.handler.onConnect(...A)}onError(...A){return this.handler.onError(...A)}onUpgrade(...A){return this.handler.onUpgrade(...A)}onHeaders(...A){return this.handler.onHeaders(...A)}onData(...A){return this.handler.onData(...A)}onComplete(...A){return this.handler.onComplete(...A)}onBodySent(...A){return this.handler.onBodySent(...A)}}});var p1=E((Gb,jc)=>{"use strict";var{kHeadersList:Oe}=te(),{kGuard:d1}=nt(),{kEnumerableProperty:XA}=_(),{makeIterator:dp,isValidHeaderName:cr,isValidHeaderValue:Pc}=QA(),{webidl:Y}=Te(),yf=require("assert"),Pe=Symbol("headers map"),We=Symbol("headers map sorted");function Wc(e){let A=e.length;for(;/[\r\n\t ]/.test(e.charAt(--A)););return e.slice(0,A+1).replace(/^[\r\n\t ]+/,"")}function Zc(e,A){if(Array.isArray(A))for(let t of A){if(t.length!==2)throw Y.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${t.length}.`});e.append(t[0],t[1])}else if(typeof A=="object"&&A!==null)for(let[t,a]of Object.entries(A))e.append(t,a);else throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}var is=class e{cookies=null;constructor(A){A instanceof e?(this[Pe]=new Map(A[Pe]),this[We]=A[We],this.cookies=A.cookies):(this[Pe]=new Map(A),this[We]=null)}contains(A){return A=A.toLowerCase(),this[Pe].has(A)}clear(){this[Pe].clear(),this[We]=null,this.cookies=null}append(A,t){this[We]=null;let a=A.toLowerCase(),r=this[Pe].get(a);if(r){let i=a==="cookie"?"; ":", ";this[Pe].set(a,{name:r.name,value:`${r.value}${i}${t}`})}else this[Pe].set(a,{name:A,value:t});a==="set-cookie"&&(this.cookies??=[],this.cookies.push(t))}set(A,t){this[We]=null;let a=A.toLowerCase();return a==="set-cookie"&&(this.cookies=[t]),this[Pe].set(a,{name:A,value:t})}delete(A){return this[We]=null,A=A.toLowerCase(),A==="set-cookie"&&(this.cookies=null),this[Pe].delete(A)}get(A){return this.contains(A)?this[Pe].get(A.toLowerCase())?.value??null:null}*[Symbol.iterator](){for(let[A,{value:t}]of this[Pe])yield[A,t]}get entries(){let A={};if(this[Pe].size)for(let{name:t,value:a}of this[Pe].values())A[t]=a;return A}},na=class e{constructor(A=void 0){this[Oe]=new is,this[d1]="none",A!==void 0&&(A=Y.converters.HeadersInit(A),Zc(this,A))}append(A,t){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,2,{header:"Headers.append"}),A=Y.converters.ByteString(A),t=Y.converters.ByteString(t),t=Wc(t),cr(A)){if(!Pc(t))throw Y.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.append",value:A,type:"header name"});if(this[d1]==="immutable")throw new TypeError("immutable");return this[d1],this[Oe].append(A,t)}delete(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.delete"}),A=Y.converters.ByteString(A),!cr(A))throw Y.errors.invalidArgument({prefix:"Headers.delete",value:A,type:"header name"});if(this[d1]==="immutable")throw new TypeError("immutable");if(this[d1],!!this[Oe].contains(A))return this[Oe].delete(A)}get(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.get"}),A=Y.converters.ByteString(A),!cr(A))throw Y.errors.invalidArgument({prefix:"Headers.get",value:A,type:"header name"});return this[Oe].get(A)}has(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.has"}),A=Y.converters.ByteString(A),!cr(A))throw Y.errors.invalidArgument({prefix:"Headers.has",value:A,type:"header name"});return this[Oe].contains(A)}set(A,t){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,2,{header:"Headers.set"}),A=Y.converters.ByteString(A),t=Y.converters.ByteString(t),t=Wc(t),cr(A)){if(!Pc(t))throw Y.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.set",value:A,type:"header name"});if(this[d1]==="immutable")throw new TypeError("immutable");return this[d1],this[Oe].set(A,t)}getSetCookie(){Y.brandCheck(this,e);let A=this[Oe].cookies;return A?[...A]:[]}get[We](){if(this[Oe][We])return this[Oe][We];let A=[],t=[...this[Oe]].sort((r,i)=>r[0]<i[0]?-1:1),a=this[Oe].cookies;for(let[r,i]of t)if(r==="set-cookie")for(let s of a)A.push([r,s]);else yf(i!==null),A.push([r,i]);return this[Oe][We]=A,A}keys(){return Y.brandCheck(this,e),dp(()=>[...this[We].values()],"Headers","key")}values(){return Y.brandCheck(this,e),dp(()=>[...this[We].values()],"Headers","value")}entries(){return Y.brandCheck(this,e),dp(()=>[...this[We].values()],"Headers","key+value")}forEach(A,t=globalThis){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.forEach"}),typeof A!="function")throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.");for(let[a,r]of this)A.apply(t,[r,a,this])}[Symbol.for("nodejs.util.inspect.custom")](){return Y.brandCheck(this,e),this[Oe]}};na.prototype[Symbol.iterator]=na.prototype.entries;Object.defineProperties(na.prototype,{append:XA,delete:XA,get:XA,has:XA,set:XA,getSetCookie:XA,keys:XA,values:XA,entries:XA,forEach:XA,[Symbol.iterator]:{enumerable:!1},[Symbol.toStringTag]:{value:"Headers",configurable:!0}});Y.converters.HeadersInit=function(e){if(Y.util.Type(e)==="Object")return e[Symbol.iterator]?Y.converters["sequence<sequence<ByteString>>"](e):Y.converters["record<ByteString, ByteString>"](e);throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};jc.exports={fill:Zc,Headers:na,HeadersList:is}});var ds=E((xb,tu)=>{"use strict";var{Headers:Df,HeadersList:Xc,fill:Rf}=p1(),{extractBody:zc,cloneBody:vf,mixinBody:Nf}=Za(),gp=_(),{kEnumerableProperty:iA}=gp,{isValidReasonPhrase:bf,isCancelled:Sf,isAborted:kf,isBlobLike:Ff,serializeJavascriptValueToJSONString:Uf,isErrorLike:Lf,isomorphicEncode:Mf}=QA(),{redirectStatus:Tf,nullBodyStatus:Vf,DOMException:Yf}=Nt(),{kState:ee,kHeaders:we,kGuard:oa,kRealm:rA}=nt(),{webidl:T}=Te(),{FormData:Jf}=Di(),{getGlobalOrigin:Gf}=Ha(),{URLSerializer:Kc}=bA(),{kHeadersList:pp}=te(),cp=require("assert"),{types:lp}=require("util"),eu=globalThis.ReadableStream||require("stream/web").ReadableStream,da=class e{static error(){let A={settingsObject:{}},t=new e;return t[ee]=ns(),t[rA]=A,t[we][pp]=t[ee].headersList,t[we][oa]="immutable",t[we][rA]=A,t}static json(A=void 0,t={}){T.argumentLengthCheck(arguments,1,{header:"Response.json"}),t!==null&&(t=T.converters.ResponseInit(t));let a=new TextEncoder("utf-8").encode(Uf(A)),r=zc(a),i={settingsObject:{}},s=new e;return s[rA]=i,s[we][oa]="response",s[we][rA]=i,$c(s,t,{body:r[0],type:"application/json"}),s}static redirect(A,t=302){let a={settingsObject:{}};T.argumentLengthCheck(arguments,1,{header:"Response.redirect"}),A=T.converters.USVString(A),t=T.converters["unsigned short"](t);let r;try{r=new URL(A,Gf())}catch(n){throw Object.assign(new TypeError("Failed to parse URL from "+A),{cause:n})}if(!Tf.includes(t))throw new RangeError("Invalid status code "+t);let i=new e;i[rA]=a,i[we][oa]="immutable",i[we][rA]=a,i[ee].status=t;let s=Mf(Kc(r));return i[ee].headersList.append("location",s),i}constructor(A=null,t={}){A!==null&&(A=T.converters.BodyInit(A)),t=T.converters.ResponseInit(t),this[rA]={settingsObject:{}},this[ee]=os({}),this[we]=new Df,this[we][oa]="response",this[we][pp]=this[ee].headersList,this[we][rA]=this[rA];let a=null;if(A!=null){let[r,i]=zc(A);a={body:r,type:i}}$c(this,t,a)}get type(){return T.brandCheck(this,e),this[ee].type}get url(){T.brandCheck(this,e);let A=this[ee].urlList,t=A[A.length-1]??null;return t===null?"":Kc(t,!0)}get redirected(){return T.brandCheck(this,e),this[ee].urlList.length>1}get status(){return T.brandCheck(this,e),this[ee].status}get ok(){return T.brandCheck(this,e),this[ee].status>=200&&this[ee].status<=299}get statusText(){return T.brandCheck(this,e),this[ee].statusText}get headers(){return T.brandCheck(this,e),this[we]}get body(){return T.brandCheck(this,e),this[ee].body?this[ee].body.stream:null}get bodyUsed(){return T.brandCheck(this,e),!!this[ee].body&&gp.isDisturbed(this[ee].body.stream)}clone(){if(T.brandCheck(this,e),this.bodyUsed||this.body&&this.body.locked)throw T.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let A=up(this[ee]),t=new e;return t[ee]=A,t[rA]=this[rA],t[we][pp]=A.headersList,t[we][oa]=this[we][oa],t[we][rA]=this[we][rA],t}};Nf(da);Object.defineProperties(da.prototype,{type:iA,url:iA,status:iA,ok:iA,redirected:iA,statusText:iA,headers:iA,clone:iA,body:iA,bodyUsed:iA,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(da,{json:iA,redirect:iA,error:iA});function up(e){if(e.internalResponse)return Au(up(e.internalResponse),e.type);let A=os({...e,body:null});return e.body!=null&&(A.body=vf(e.body)),A}function os(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e.headersList?new Xc(e.headersList):new Xc,urlList:e.urlList?[...e.urlList]:[]}}function ns(e){let A=Lf(e);return os({type:"error",status:0,error:A?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function ss(e,A){return A={internalResponse:e,...A},new Proxy(e,{get(t,a){return a in A?A[a]:t[a]},set(t,a,r){return cp(!(a in A)),t[a]=r,!0}})}function Au(e,A){if(A==="basic")return ss(e,{type:"basic",headersList:e.headersList});if(A==="cors")return ss(e,{type:"cors",headersList:e.headersList});if(A==="opaque")return ss(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(A==="opaqueredirect")return ss(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});cp(!1)}function xf(e){return cp(Sf(e)),kf(e)?ns(new Yf("The operation was aborted.","AbortError")):ns("Request was cancelled.")}function $c(e,A,t){if(A.status!==null&&(A.status<200||A.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in A&&A.statusText!=null&&!bf(String(A.statusText)))throw new TypeError("Invalid statusText");if("status"in A&&A.status!=null&&(e[ee].status=A.status),"statusText"in A&&A.statusText!=null&&(e[ee].statusText=A.statusText),"headers"in A&&A.headers!=null&&Rf(e[we],A.headers),t){if(Vf.includes(e.status))throw T.errors.exception({header:"Response constructor",message:"Invalid response status code "+e.status});e[ee].body=t.body,t.type!=null&&!e[ee].headersList.contains("Content-Type")&&e[ee].headersList.append("content-type",t.type)}}T.converters.ReadableStream=T.interfaceConverter(eu);T.converters.FormData=T.interfaceConverter(Jf);T.converters.URLSearchParams=T.interfaceConverter(URLSearchParams);T.converters.XMLHttpRequestBodyInit=function(e){return typeof e=="string"?T.converters.USVString(e):Ff(e)?T.converters.Blob(e,{strict:!1}):lp.isAnyArrayBuffer(e)||lp.isTypedArray(e)||lp.isDataView(e)?T.converters.BufferSource(e):gp.isFormDataLike(e)?T.converters.FormData(e,{strict:!1}):e instanceof URLSearchParams?T.converters.URLSearchParams(e):T.converters.DOMString(e)};T.converters.BodyInit=function(e){return e instanceof eu?T.converters.ReadableStream(e):e?.[Symbol.asyncIterator]?e:T.converters.XMLHttpRequestBodyInit(e)};T.converters.ResponseInit=T.dictionaryConverter([{key:"status",converter:T.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:T.converters.ByteString,defaultValue:""},{key:"headers",converter:T.converters.HeadersInit}]);tu.exports={makeNetworkError:ns,makeResponse:os,makeAppropriateNetworkError:xf,filterResponse:Au,Response:da,cloneResponse:up}});var Qr=E((qb,du)=>{"use strict";var{extractBody:qf,mixinBody:Hf,cloneBody:Of}=Za(),{Headers:Ep,fill:Pf,HeadersList:au}=p1(),{FinalizationRegistry:Wf}=yd()(),Er=_(),{isValidHTTPToken:Zf,sameOrigin:ru,normalizeMethod:jf,makePolicyContainer:Xf}=QA(),{forbiddenMethods:zf,corsSafeListedMethods:Kf,referrerPolicy:$f,requestRedirect:ew,requestMode:Aw,requestCredentials:tw,requestCache:aw,requestDuplex:rw}=Nt(),{kEnumerableProperty:Ee}=Er,{kHeaders:ye,kSignal:ur,kState:K,kGuard:ps,kRealm:sA}=nt(),{webidl:S}=Te(),{getGlobalOrigin:iw}=Ha(),{URLSerializer:sw}=bA(),{kHeadersList:ls}=te(),nw=require("assert"),{getMaxListeners:iu,setMaxListeners:su,getEventListeners:ow,defaultMaxListeners:nu}=require("events"),Qp=globalThis.TransformStream,ou=Symbol("init"),dw=Symbol("abortController"),pw=new Wf(({signal:e,abort:A})=>{e.removeEventListener("abort",A)}),l1=class e{constructor(A,t={}){if(A===ou)return;S.argumentLengthCheck(arguments,1,{header:"Request constructor"}),A=S.converters.RequestInfo(A),t=S.converters.RequestInit(t),this[sA]={settingsObject:{baseUrl:iw(),get origin(){return this.baseUrl?.origin},policyContainer:Xf()}};let a=null,r=null,i=this[sA].settingsObject.baseUrl,s=null;if(typeof A=="string"){let Q;try{Q=new URL(A,i)}catch(m){throw new TypeError("Failed to parse URL from "+A,{cause:m})}if(Q.username||Q.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+A);a=gs({urlList:[Q]}),r="cors"}else nw(A instanceof e),a=A[K],s=A[ur];let n=this[sA].settingsObject.origin,o="client";if(a.window?.constructor?.name==="EnvironmentSettingsObject"&&ru(a.window,n)&&(o=a.window),t.window!=null)throw new TypeError(`'window' option '${o}' must be null`);if("window"in t&&(o="no-window"),a=gs({method:a.method,headersList:a.headersList,unsafeRequest:a.unsafeRequest,client:this[sA].settingsObject,window:o,priority:a.priority,origin:a.origin,referrer:a.referrer,referrerPolicy:a.referrerPolicy,mode:a.mode,credentials:a.credentials,cache:a.cache,redirect:a.redirect,integrity:a.integrity,keepalive:a.keepalive,reloadNavigation:a.reloadNavigation,historyNavigation:a.historyNavigation,urlList:[...a.urlList]}),Object.keys(t).length>0&&(a.mode==="navigate"&&(a.mode="same-origin"),a.reloadNavigation=!1,a.historyNavigation=!1,a.origin="client",a.referrer="client",a.referrerPolicy="",a.url=a.urlList[a.urlList.length-1],a.urlList=[a.url]),t.referrer!==void 0){let Q=t.referrer;if(Q==="")a.referrer="no-referrer";else{let m;try{m=new URL(Q,i)}catch(C){throw new TypeError(`Referrer "${Q}" is not a valid URL.`,{cause:C})}m.protocol==="about:"&&m.hostname==="client"||n&&!ru(m,this[sA].settingsObject.baseUrl)?a.referrer="client":a.referrer=m}}t.referrerPolicy!==void 0&&(a.referrerPolicy=t.referrerPolicy);let d;if(t.mode!==void 0?d=t.mode:d=r,d==="navigate")throw S.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(d!=null&&(a.mode=d),t.credentials!==void 0&&(a.credentials=t.credentials),t.cache!==void 0&&(a.cache=t.cache),a.cache==="only-if-cached"&&a.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(t.redirect!==void 0&&(a.redirect=t.redirect),t.integrity!==void 0&&t.integrity!=null&&(a.integrity=String(t.integrity)),t.keepalive!==void 0&&(a.keepalive=!!t.keepalive),t.method!==void 0){let Q=t.method;if(!Zf(t.method))throw TypeError(`'${t.method}' is not a valid HTTP method.`);if(zf.indexOf(Q.toUpperCase())!==-1)throw TypeError(`'${t.method}' HTTP method is unsupported.`);Q=jf(t.method),a.method=Q}t.signal!==void 0&&(s=t.signal),this[K]=a;let l=new AbortController;if(this[ur]=l.signal,this[ur][sA]=this[sA],s!=null){if(!s||typeof s.aborted!="boolean"||typeof s.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(s.aborted)l.abort(s.reason);else{this[dw]=l;let Q=new WeakRef(l),m=function(){let C=Q.deref();C!==void 0&&C.abort(this.reason)};try{(typeof iu=="function"&&iu(s)===nu||ow(s,"abort").length>=nu)&&su(100,s)}catch{}Er.addAbortListener(s,m),pw.register(l,{signal:s,abort:m})}}if(this[ye]=new Ep,this[ye][ls]=a.headersList,this[ye][ps]="request",this[ye][sA]=this[sA],d==="no-cors"){if(!Kf.includes(a.method))throw new TypeError(`'${a.method} is unsupported in no-cors mode.`);this[ye][ps]="request-no-cors"}if(Object.keys(t).length!==0){let Q=new Ep(this[ye]);if(t.headers!==void 0&&(Q=t.headers),this[ye][ls].clear(),Q.constructor.name==="Headers")for(let[m,C]of Q)this[ye].append(m,C);else Pf(this[ye],Q)}let p=A instanceof e?A[K].body:null;if((t.body!=null||p!=null)&&(a.method==="GET"||a.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let g=null;if(t.body!=null){let[Q,m]=qf(t.body,a.keepalive);g=Q,m&&!this[ye][ls].contains("content-type")&&this[ye].append("content-type",m)}let c=g??p;if(c!=null&&c.source==null){if(g!=null&&t.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(a.mode!=="same-origin"&&a.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');a.useCORSPreflightFlag=!0}let u=c;if(g==null&&p!=null){if(Er.isDisturbed(p.stream)||p.stream.locked)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");Qp||(Qp=require("stream/web").TransformStream);let Q=new Qp;p.stream.pipeThrough(Q),u={source:p.source,length:p.length,stream:Q.readable}}this[K].body=u}get method(){return S.brandCheck(this,e),this[K].method}get url(){return S.brandCheck(this,e),sw(this[K].url)}get headers(){return S.brandCheck(this,e),this[ye]}get destination(){return S.brandCheck(this,e),this[K].destination}get referrer(){return S.brandCheck(this,e),this[K].referrer==="no-referrer"?"":this[K].referrer==="client"?"about:client":this[K].referrer.toString()}get referrerPolicy(){return S.brandCheck(this,e),this[K].referrerPolicy}get mode(){return S.brandCheck(this,e),this[K].mode}get credentials(){return this[K].credentials}get cache(){return S.brandCheck(this,e),this[K].cache}get redirect(){return S.brandCheck(this,e),this[K].redirect}get integrity(){return S.brandCheck(this,e),this[K].integrity}get keepalive(){return S.brandCheck(this,e),this[K].keepalive}get isReloadNavigation(){return S.brandCheck(this,e),this[K].reloadNavigation}get isHistoryNavigation(){return S.brandCheck(this,e),this[K].historyNavigation}get signal(){return S.brandCheck(this,e),this[ur]}get body(){return S.brandCheck(this,e),this[K].body?this[K].body.stream:null}get bodyUsed(){return S.brandCheck(this,e),!!this[K].body&&Er.isDisturbed(this[K].body.stream)}get duplex(){return S.brandCheck(this,e),"half"}clone(){if(S.brandCheck(this,e),this.bodyUsed||this.body?.locked)throw new TypeError("unusable");let A=lw(this[K]),t=new e(ou);t[K]=A,t[sA]=this[sA],t[ye]=new Ep,t[ye][ls]=A.headersList,t[ye][ps]=this[ye][ps],t[ye][sA]=this[ye][sA];let a=new AbortController;return this.signal.aborted?a.abort(this.signal.reason):Er.addAbortListener(this.signal,()=>{a.abort(this.signal.reason)}),t[ur]=a.signal,t}};Hf(l1);function gs(e){let A={method:"GET",localURLsOnly:!1,unsafeRequest:!1,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:!1,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:!1,credentials:"same-origin",useCredentials:!1,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:!1,historyNavigation:!1,userActivation:!1,taintedOrigin:!1,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:!1,done:!1,timingAllowFailed:!1,...e,headersList:e.headersList?new au(e.headersList):new au};return A.url=A.urlList[0],A}function lw(e){let A=gs({...e,body:null});return e.body!=null&&(A.body=Of(e.body)),A}Object.defineProperties(l1.prototype,{method:Ee,url:Ee,headers:Ee,redirect:Ee,clone:Ee,signal:Ee,duplex:Ee,destination:Ee,body:Ee,bodyUsed:Ee,isHistoryNavigation:Ee,isReloadNavigation:Ee,keepalive:Ee,integrity:Ee,cache:Ee,credentials:Ee,attribute:Ee,referrerPolicy:Ee,referrer:Ee,mode:Ee,[Symbol.toStringTag]:{value:"Request",configurable:!0}});S.converters.Request=S.interfaceConverter(l1);S.converters.RequestInfo=function(e){return typeof e=="string"?S.converters.USVString(e):e instanceof l1?S.converters.Request(e):S.converters.USVString(e)};S.converters.AbortSignal=S.interfaceConverter(AbortSignal);S.converters.RequestInit=S.dictionaryConverter([{key:"method",converter:S.converters.ByteString},{key:"headers",converter:S.converters.HeadersInit},{key:"body",converter:S.nullableConverter(S.converters.BodyInit)},{key:"referrer",converter:S.converters.USVString},{key:"referrerPolicy",converter:S.converters.DOMString,allowedValues:$f},{key:"mode",converter:S.converters.DOMString,allowedValues:Aw},{key:"credentials",converter:S.converters.DOMString,allowedValues:tw},{key:"cache",converter:S.converters.DOMString,allowedValues:aw},{key:"redirect",converter:S.converters.DOMString,allowedValues:ew},{key:"integrity",converter:S.converters.DOMString},{key:"keepalive",converter:S.converters.boolean},{key:"signal",converter:S.nullableConverter(e=>S.converters.AbortSignal(e,{strict:!1}))},{key:"window",converter:S.converters.any},{key:"duplex",converter:S.converters.DOMString,allowedValues:rw}]);du.exports={Request:l1,makeRequest:gs}});var Bs=E((Hb,wu)=>{"use strict";var{Response:gw,makeNetworkError:X,makeAppropriateNetworkError:cs,filterResponse:Cp,makeResponse:us}=ds(),{Headers:pu}=p1(),{Request:cw,makeRequest:uw}=Qr(),Cr=require("zlib"),{bytesMatch:Ew,makePolicyContainer:Qw,clonePolicyContainer:Cw,requestBadPort:mw,TAOCheck:Bw,appendRequestOriginHeader:hw,responseLocationURL:Iw,requestCurrentURL:zA,setRequestReferrerPolicyOnRedirect:fw,tryUpgradeRequestToAPotentiallyTrustworthyURL:ww,createOpaqueTimingInfo:vp,appendFetchMetadata:yw,corsCheck:Dw,crossOriginResourcePolicyCheck:Rw,determineRequestsReferrer:vw,coarsenedSharedCurrentTime:Np,createDeferredPromise:Nw,isBlobLike:bw,sameOrigin:wp,isCancelled:pa,isAborted:lu,isErrorLike:Sw,fullyReadBody:Eu,readableStreamClose:kw,isomorphicEncode:yp,urlIsLocal:Fw,urlIsHttpHttpsScheme:bp,urlHasHttpsScheme:Uw}=QA(),{kState:Dp,kHeaders:mp,kGuard:Lw,kRealm:gu}=nt(),la=require("assert"),{safelyExtractBody:Es}=Za(),{redirectStatus:Qu,nullBodyStatus:Cu,safeMethods:Mw,requestBodyHeader:Tw,subresource:Vw,DOMException:Qs}=Nt(),{kHeadersList:Rp}=te(),Yw=require("events"),{Readable:Jw,pipeline:Gw}=require("stream"),{addAbortListener:xw,isErrored:_w,isReadable:Cs,nodeMajor:cu,nodeMinor:qw}=_(),{dataURLProcessor:Hw,serializeAMimeType:Ow}=bA(),{TransformStream:Pw}=require("stream/web"),{getGlobalDispatcher:Ww}=sa(),{webidl:Zw}=Te(),{STATUS_CODES:jw}=require("http"),Bp,hp=globalThis.ReadableStream,ms=class extends Yw{constructor(A){super(),this.dispatcher=A,this.connection=null,this.dump=!1,this.state="ongoing",this.setMaxListeners(21)}terminate(A){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(A),this.emit("terminated",A))}abort(A){this.state==="ongoing"&&(this.state="aborted",A||(A=new Qs("The operation was aborted.","AbortError")),this.serializedAbortReason=A,this.connection?.destroy(A),this.emit("terminated",A))}};async function Xw(e,A={}){Zw.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});let t=Nw(),a;try{a=new cw(e,A)}catch(g){return t.reject(g),t.promise}let r=a[Dp];if(a.signal.aborted)return Ip(t,r,null,a.signal.reason),t.promise;r.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(r.serviceWorkers="none");let s=null,n=null,o=!1,d=null;return xw(a.signal,()=>{o=!0,la(d!=null),d.abort(a.signal.reason),Ip(t,r,s,a.signal.reason)}),d=Bu({request:r,processResponseEndOfBody:g=>mu(g,"fetch"),processResponse:g=>{if(!o){if(g.aborted){Ip(t,r,s,d.serializedAbortReason);return}if(g.type==="error"){t.reject(Object.assign(new TypeError("fetch failed"),{cause:g.error}));return}s=new gw,s[Dp]=g,s[gu]=n,s[mp][Rp]=g.headersList,s[mp][Lw]="immutable",s[mp][gu]=n,t.resolve(s)}},dispatcher:A.dispatcher??Ww()}),t.promise}function mu(e,A="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let t=e.urlList[0],a=e.timingInfo,r=e.cacheState;bp(t)&&a!==null&&(a.timingAllowPassed||(a=vp({startTime:a.startTime}),r=""),a.endTime=Np(),e.timingInfo=a,zw(a,t,A,globalThis,r))}function zw(e,A,t,a,r){(cu>18||cu===18&&qw>=2)&&performance.markResourceTiming(e,A.href,t,a,r)}function Ip(e,A,t,a){if(a||(a=new Qs("The operation was aborted.","AbortError")),e.reject(a),A.body!=null&&Cs(A.body?.stream)&&A.body.stream.cancel(a).catch(i=>{if(i.code!=="ERR_INVALID_STATE")throw i}),t==null)return;let r=t[Dp];r.body!=null&&Cs(r.body?.stream)&&r.body.stream.cancel(a).catch(i=>{if(i.code!=="ERR_INVALID_STATE")throw i})}function Bu({request:e,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:a,processResponseEndOfBody:r,processResponseConsumeBody:i,useParallelQueue:s=!1,dispatcher:n}){let o=null,d=!1;e.client!=null&&(o=e.client.globalObject,d=e.client.crossOriginIsolatedCapability);let l=Np(d),p=vp({startTime:l}),g={controller:new ms(n),request:e,timingInfo:p,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:a,processResponseConsumeBody:i,processResponseEndOfBody:r,taskDestination:o,crossOriginIsolatedCapability:d};return la(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client?.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=Cw(e.client.policyContainer):e.policyContainer=Qw()),e.headersList.contains("accept")||e.headersList.append("accept","*/*"),e.headersList.contains("accept-language")||e.headersList.append("accept-language","*"),e.priority,Vw.includes(e.destination),hu(g).catch(c=>{g.controller.terminate(c)}),g.controller}async function hu(e,A=!1){let t=e.request,a=null;if(t.localURLsOnly&&!Fw(zA(t))&&(a=X("local URLs only")),ww(t),mw(t)==="blocked"&&(a=X("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=vw(t)),a===null&&(a=await(async()=>{let i=zA(t);return wp(i,t.url)&&t.responseTainting==="basic"||i.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await uu(e)):t.mode==="same-origin"?X('request mode cannot be "same-origin"'):t.mode==="no-cors"?t.redirect!=="follow"?X('redirect mode cannot be "follow" for "no-cors" request'):(t.responseTainting="opaque",await uu(e)):bp(zA(t))?(t.responseTainting="cors",await Iu(e)):X("URL scheme must be a HTTP(S) scheme")})()),A)return a;a.status!==0&&!a.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?a=Cp(a,"basic"):t.responseTainting==="cors"?a=Cp(a,"cors"):t.responseTainting==="opaque"?a=Cp(a,"opaque"):la(!1));let r=a.status===0?a:a.internalResponse;if(r.urlList.length===0&&r.urlList.push(...t.urlList),t.timingAllowFailed||(a.timingAllowPassed=!0),a.type==="opaque"&&r.status===206&&r.rangeRequested&&!t.headers.contains("range")&&(a=r=X()),a.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||Cu.includes(r.status))&&(r.body=null,e.controller.dump=!0),t.integrity){let i=n=>fp(e,X(n));if(t.responseTainting==="opaque"||a.body==null){i(a.error);return}let s=n=>{if(!Ew(n,t.integrity)){i("integrity mismatch");return}a.body=Es(n)[0],fp(e,a)};await Eu(a.body,s,i)}else fp(e,a)}async function uu(e){if(pa(e)&&e.request.redirectCount===0)return cs(e);let{request:A}=e,{protocol:t}=zA(A);switch(t){case"about:":return X("about scheme is not supported");case"blob:":{Bp||(Bp=require("buffer").resolveObjectURL);let a=zA(A);if(a.search.length!==0)return X("NetworkError when attempting to fetch resource.");let r=Bp(a.toString());if(A.method!=="GET"||!bw(r))return X("invalid method");let i=Es(r),s=i[0],n=yp(`${s.length}`),o=i[1]??"",d=us({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:n}],["content-type",{name:"Content-Type",value:o}]]});return d.body=s,d}case"data:":{let a=zA(A),r=Hw(a);if(r==="failure")return X("failed to fetch the data URL");let i=Ow(r.mimeType);return us({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:i}]],body:Es(r.body)[0]})}case"file:":return X("not implemented... yet...");case"http:":case"https:":return await Iu(e).catch(a=>X(a));default:return X("unknown scheme")}}function Kw(e,A){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(A))}async function fp(e,A){A.type==="error"&&(A.urlList=[e.request.urlList[0]],A.timingInfo=vp({startTime:e.timingInfo.startTime}));let t=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(A))};if(e.processResponse!=null&&queueMicrotask(()=>e.processResponse(A)),A.body==null)t();else{let a=(i,s)=>{s.enqueue(i)},r=new Pw({start(){},transform:a,flush:t},{size(){return 1}},{size(){return 1}});A.body={stream:A.body.stream.pipeThrough(r)}}if(e.processResponseConsumeBody!=null){let a=i=>e.processResponseConsumeBody(A,i),r=i=>e.processResponseConsumeBody(A,i);A.body==null?queueMicrotask(()=>a(null)):await Eu(A.body,a,r)}}async function Iu(e){let A=e.request,t=null,a=null,r=e.timingInfo;if(A.serviceWorkers,t===null){if(A.redirect==="follow"&&(A.serviceWorkers="none"),a=t=await fu(e),A.responseTainting==="cors"&&Dw(A,t)==="failure")return X("cors failure");Bw(A,t)==="failure"&&(A.timingAllowFailed=!0)}return(A.responseTainting==="opaque"||t.type==="opaque")&&Rw(A.origin,A.client,A.destination,a)==="blocked"?X("blocked"):(Qu.includes(a.status)&&(A.redirect!=="manual"&&e.controller.connection.destroy(),A.redirect==="error"?t=X("unexpected redirect"):A.redirect==="manual"?t=a:A.redirect==="follow"?t=await $w(e,t):la(!1)),t.timingInfo=r,t)}async function $w(e,A){let t=e.request,a=A.internalResponse?A.internalResponse:A,r;try{if(r=Iw(a,zA(t).hash),r==null)return A}catch(s){return X(s)}if(!bp(r))return X("URL scheme must be a HTTP(S) scheme");if(t.redirectCount===20)return X("redirect count exceeded");if(t.redirectCount+=1,t.mode==="cors"&&(r.username||r.password)&&!wp(t,r))return X('cross origin not allowed for request mode "cors"');if(t.responseTainting==="cors"&&(r.username||r.password))return X('URL cannot contain credentials for request mode "cors"');if(a.status!==303&&t.body!=null&&t.body.source==null)return X();if([301,302].includes(a.status)&&t.method==="POST"||a.status===303&&!["GET","HEAD"].includes(t.method)){t.method="GET",t.body=null;for(let s of Tw)t.headersList.delete(s)}wp(zA(t),r)||t.headersList.delete("authorization"),t.body!=null&&(la(t.body.source!=null),t.body=Es(t.body.source)[0]);let i=e.timingInfo;return i.redirectEndTime=i.postRedirectStartTime=Np(e.crossOriginIsolatedCapability),i.redirectStartTime===0&&(i.redirectStartTime=i.startTime),t.urlList.push(r),fw(t,a),hu(e,!0)}async function fu(e,A=!1,t=!1){let a=e.request,r=null,i=null,s=null,n=null,o=!1;a.window==="no-window"&&a.redirect==="error"?(r=e,i=a):(i=uw(a),r={...e},r.request=i);let d=a.credentials==="include"||a.credentials==="same-origin"&&a.responseTainting==="basic",l=i.body?i.body.length:null,p=null;if(i.body==null&&["POST","PUT"].includes(i.method)&&(p="0"),l!=null&&(p=yp(`${l}`)),p!=null&&i.headersList.append("content-length",p),l!=null&&i.keepalive,i.referrer instanceof URL&&i.headersList.append("referer",yp(i.referrer.href)),hw(i),yw(i),i.headersList.contains("user-agent")||i.headersList.append("user-agent","undici"),i.cache==="default"&&(i.headersList.contains("if-modified-since")||i.headersList.contains("if-none-match")||i.headersList.contains("if-unmodified-since")||i.headersList.contains("if-match")||i.headersList.contains("if-range"))&&(i.cache="no-store"),i.cache==="no-cache"&&!i.preventNoCacheCacheControlHeaderModification&&!i.headersList.contains("cache-control")&&i.headersList.append("cache-control","max-age=0"),(i.cache==="no-store"||i.cache==="reload")&&(i.headersList.contains("pragma")||i.headersList.append("pragma","no-cache"),i.headersList.contains("cache-control")||i.headersList.append("cache-control","no-cache")),i.headersList.contains("range")&&i.headersList.append("accept-encoding","identity"),i.headersList.contains("accept-encoding")||(Uw(zA(i))?i.headersList.append("accept-encoding","br, gzip, deflate"):i.headersList.append("accept-encoding","gzip, deflate")),n==null&&(i.cache="no-store"),i.mode!=="no-store"&&i.mode,s==null){if(i.mode==="only-if-cached")return X("only if cached");let g=await ey(r,d,t);!Mw.includes(i.method)&&g.status>=200&&g.status<=399,o&&g.status,s==null&&(s=g)}if(s.urlList=[...i.urlList],i.headersList.contains("range")&&(s.rangeRequested=!0),s.requestIncludesCredentials=d,s.status===407)return a.window==="no-window"?X():pa(e)?cs(e):X("proxy authentication required");if(s.status===421&&!t&&(a.body==null||a.body.source!=null)){if(pa(e))return cs(e);e.controller.connection.destroy(),s=await fu(e,A,!0)}return s}async function ey(e,A=!1,t=!1){la(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(u){this.destroyed||(this.destroyed=!0,this.abort?.(u??new Qs("The operation was aborted.","AbortError")))}};let a=e.request,r=null,i=e.timingInfo;null==null&&(a.cache="no-store");let n=t?"yes":"no";a.mode;let o=null;if(a.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(a.body!=null){let u=async function*(C){pa(e)||(yield C,e.processRequestBodyChunkLength?.(C.byteLength))},Q=()=>{pa(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},m=C=>{pa(e)||(C.name==="AbortError"?e.controller.abort():e.controller.terminate(C))};o=async function*(){try{for await(let C of a.body.stream)yield*u(C);Q()}catch(C){m(C)}}()}try{let{body:u,status:Q,statusText:m,headersList:C,socket:B}=await c({body:o});if(B)r=us({status:Q,statusText:m,headersList:C,socket:B});else{let w=u[Symbol.asyncIterator]();e.controller.next=()=>w.next(),r=us({status:Q,statusText:m,headersList:C})}}catch(u){return u.name==="AbortError"?(e.controller.connection.destroy(),cs(e)):X(u)}let d=()=>{e.controller.resume()},l=u=>{e.controller.abort(u)};hp||(hp=require("stream/web").ReadableStream);let p=new hp({async start(u){e.controller.controller=u},async pull(u){await d(u)},async cancel(u){await l(u)}},{highWaterMark:0,size(){return 1}});r.body={stream:p},e.controller.on("terminated",g),e.controller.resume=async()=>{for(;;){let u,Q;try{let{done:m,value:C}=await e.controller.next();if(lu(e))break;u=m?void 0:C}catch(m){e.controller.ended&&!i.encodedBodySize?u=void 0:(u=m,Q=!0)}if(u===void 0){kw(e.controller.controller),Kw(e,r);return}if(i.decodedBodySize+=u?.byteLength??0,Q){e.controller.terminate(u);return}if(e.controller.controller.enqueue(new Uint8Array(u)),_w(p)){e.controller.terminate();return}if(!e.controller.controller.desiredSize)return}};function g(u){lu(e)?(r.aborted=!0,Cs(p)&&e.controller.controller.error(e.controller.serializedAbortReason)):Cs(p)&&e.controller.controller.error(new TypeError("terminated",{cause:Sw(u)?u:void 0})),e.controller.connection.destroy()}return r;async function c({body:u}){let Q=zA(a),m=e.controller.dispatcher;return new Promise((C,B)=>m.dispatch({path:Q.pathname+Q.search,origin:Q.origin,method:a.method,body:e.controller.dispatcher.isMockActive?a.body&&a.body.source:u,headers:a.headersList.entries,maxRedirections:0,upgrade:a.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(w){let{connection:I}=e.controller;I.destroyed?w(new Qs("The operation was aborted.","AbortError")):(e.controller.on("terminated",w),this.abort=I.abort=w)},onHeaders(w,I,y,b){if(w<200)return;let F=[],x="",he=new pu;for(let Re=0;Re<I.length;Re+=2){let de=I[Re+0].toString("latin1"),lA=I[Re+1].toString("latin1");de.toLowerCase()==="content-encoding"?F=lA.toLowerCase().split(",").map(W=>W.trim()).reverse():de.toLowerCase()==="location"&&(x=lA),he.append(de,lA)}this.body=new Jw({read:y});let Qe=[],Bt=a.redirect==="follow"&&x&&Qu.includes(w);if(a.method!=="HEAD"&&a.method!=="CONNECT"&&!Cu.includes(w)&&!Bt)for(let Re of F)if(Re==="x-gzip"||Re==="gzip")Qe.push(Cr.createGunzip({flush:Cr.constants.Z_SYNC_FLUSH,finishFlush:Cr.constants.Z_SYNC_FLUSH}));else if(Re==="deflate")Qe.push(Cr.createInflate());else if(Re==="br")Qe.push(Cr.createBrotliDecompress());else{Qe.length=0;break}return C({status:w,statusText:b,headersList:he[Rp],body:Qe.length?Gw(this.body,...Qe,()=>{}):this.body.on("error",()=>{})}),!0},onData(w){if(e.controller.dump)return;let I=w;return i.encodedBodySize+=I.byteLength,this.body.push(I)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.ended=!0,this.body.push(null)},onError(w){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(w),e.controller.terminate(w),B(w)},onUpgrade(w,I,y){if(w!==101)return;let b=new pu;for(let F=0;F<I.length;F+=2){let x=I[F+0].toString("latin1"),he=I[F+1].toString("latin1");b.append(x,he)}return C({status:w,statusText:jw[w],headersList:b[Rp],socket:y}),!0}}))}}wu.exports={fetch:Xw,Fetch:ms,fetching:Bu,finalizeAndReportTiming:mu}});var Sp=E((Ob,yu)=>{"use strict";yu.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var Ru=E((Pb,Du)=>{"use strict";var{webidl:nA}=Te(),hs=Symbol("ProgressEvent state"),kp=class e extends Event{constructor(A,t={}){A=nA.converters.DOMString(A),t=nA.converters.ProgressEventInit(t??{}),super(A,t),this[hs]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return nA.brandCheck(this,e),this[hs].lengthComputable}get loaded(){return nA.brandCheck(this,e),this[hs].loaded}get total(){return nA.brandCheck(this,e),this[hs].total}};nA.converters.ProgressEventInit=nA.dictionaryConverter([{key:"lengthComputable",converter:nA.converters.boolean,defaultValue:!1},{key:"loaded",converter:nA.converters["unsigned long long"],defaultValue:0},{key:"total",converter:nA.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:nA.converters.boolean,defaultValue:!1},{key:"cancelable",converter:nA.converters.boolean,defaultValue:!1},{key:"composed",converter:nA.converters.boolean,defaultValue:!1}]);Du.exports={ProgressEvent:kp}});var Nu=E((Wb,vu)=>{"use strict";function Ay(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}vu.exports={getEncoding:Ay}});var Tu=E((Zb,Mu)=>{"use strict";var{kState:ga,kError:Fp,kResult:bu,kAborted:mr,kLastProgressEventFired:Up}=Sp(),{ProgressEvent:ty}=Ru(),{getEncoding:Su}=Nu(),{DOMException:ay}=Nt(),{serializeAMimeType:ry,parseMIMEType:ku}=bA(),{types:iy}=require("util"),{StringDecoder:Fu}=require("string_decoder"),{btoa:Uu}=require("buffer"),sy={enumerable:!0,writable:!1,configurable:!1};function ny(e,A,t,a){if(e[ga]==="loading")throw new ay("Invalid state","InvalidStateError");e[ga]="loading",e[bu]=null,e[Fp]=null;let i=A.stream().getReader(),s=[],n=i.read(),o=!0;(async()=>{for(;!e[mr];)try{let{done:d,value:l}=await n;if(o&&!e[mr]&&queueMicrotask(()=>{Tt("loadstart",e)}),o=!1,!d&&iy.isUint8Array(l))s.push(l),(e[Up]===void 0||Date.now()-e[Up]>=50)&&!e[mr]&&(e[Up]=Date.now(),queueMicrotask(()=>{Tt("progress",e)})),n=i.read();else if(d){queueMicrotask(()=>{e[ga]="done";try{let p=oy(s,t,A.type,a);if(e[mr])return;e[bu]=p,Tt("load",e)}catch(p){e[Fp]=p,Tt("error",e)}e[ga]!=="loading"&&Tt("loadend",e)});break}}catch(d){if(e[mr])return;queueMicrotask(()=>{e[ga]="done",e[Fp]=d,Tt("error",e),e[ga]!=="loading"&&Tt("loadend",e)});break}})()}function Tt(e,A){let t=new ty(e,{bubbles:!1,cancelable:!1});A.dispatchEvent(t)}function oy(e,A,t,a){switch(A){case"DataURL":{let r="data:",i=ku(t||"application/octet-stream");i!=="failure"&&(r+=ry(i)),r+=";base64,";let s=new Fu("latin1");for(let n of e)r+=Uu(s.write(n));return r+=Uu(s.end()),r}case"Text":{let r="failure";if(a&&(r=Su(a)),r==="failure"&&t){let i=ku(t);i!=="failure"&&(r=Su(i.parameters.get("charset")))}return r==="failure"&&(r="UTF-8"),dy(e,r)}case"ArrayBuffer":return Lu(e).buffer;case"BinaryString":{let r="",i=new Fu("latin1");for(let s of e)r+=i.write(s);return r+=i.end(),r}}}function dy(e,A){let t=Lu(e),a=py(t),r=0;a!==null&&(A=a,r=a==="UTF-8"?3:2);let i=t.slice(r);return new TextDecoder(A).decode(i)}function py(e){let[A,t,a]=e;return A===239&&t===187&&a===191?"UTF-8":A===254&&t===255?"UTF-16BE":A===255&&t===254?"UTF-16LE":null}function Lu(e){let A=e.reduce((a,r)=>a+r.byteLength,0),t=0;return e.reduce((a,r)=>(a.set(r,t),t+=r.byteLength,a),new Uint8Array(A))}Mu.exports={staticPropertyDescriptors:sy,readOperation:ny,fireAProgressEvent:Tt}});var Gu=E((jb,Ju)=>{"use strict";var{staticPropertyDescriptors:ca,readOperation:Is,fireAProgressEvent:Vu}=Tu(),{kState:g1,kError:Yu,kResult:fs,kEvents:q,kAborted:ly}=Sp(),{webidl:Z}=Te(),{kEnumerableProperty:Ze}=_(),FA=class e extends EventTarget{constructor(){super(),this[g1]="empty",this[fs]=null,this[Yu]=null,this[q]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(A){Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"}),A=Z.converters.Blob(A,{strict:!1}),Is(this,A,"ArrayBuffer")}readAsBinaryString(A){Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"}),A=Z.converters.Blob(A,{strict:!1}),Is(this,A,"BinaryString")}readAsText(A,t=void 0){Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"}),A=Z.converters.Blob(A,{strict:!1}),t!==void 0&&(t=Z.converters.DOMString(t)),Is(this,A,"Text",t)}readAsDataURL(A){Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"}),A=Z.converters.Blob(A,{strict:!1}),Is(this,A,"DataURL")}abort(){if(this[g1]==="empty"||this[g1]==="done"){this[fs]=null;return}this[g1]==="loading"&&(this[g1]="done",this[fs]=null),this[ly]=!0,Vu("abort",this),this[g1]!=="loading"&&Vu("loadend",this)}get readyState(){switch(Z.brandCheck(this,e),this[g1]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return Z.brandCheck(this,e),this[fs]}get error(){return Z.brandCheck(this,e),this[Yu]}get onloadend(){return Z.brandCheck(this,e),this[q].loadend}set onloadend(A){Z.brandCheck(this,e),this[q].loadend&&this.removeEventListener("loadend",this[q].loadend),typeof A=="function"?(this[q].loadend=A,this.addEventListener("loadend",A)):this[q].loadend=null}get onerror(){return Z.brandCheck(this,e),this[q].error}set onerror(A){Z.brandCheck(this,e),this[q].error&&this.removeEventListener("error",this[q].error),typeof A=="function"?(this[q].error=A,this.addEventListener("error",A)):this[q].error=null}get onloadstart(){return Z.brandCheck(this,e),this[q].loadstart}set onloadstart(A){Z.brandCheck(this,e),this[q].loadstart&&this.removeEventListener("loadstart",this[q].loadstart),typeof A=="function"?(this[q].loadstart=A,this.addEventListener("loadstart",A)):this[q].loadstart=null}get onprogress(){return Z.brandCheck(this,e),this[q].progress}set onprogress(A){Z.brandCheck(this,e),this[q].progress&&this.removeEventListener("progress",this[q].progress),typeof A=="function"?(this[q].progress=A,this.addEventListener("progress",A)):this[q].progress=null}get onload(){return Z.brandCheck(this,e),this[q].load}set onload(A){Z.brandCheck(this,e),this[q].load&&this.removeEventListener("load",this[q].load),typeof A=="function"?(this[q].load=A,this.addEventListener("load",A)):this[q].load=null}get onabort(){return Z.brandCheck(this,e),this[q].abort}set onabort(A){Z.brandCheck(this,e),this[q].abort&&this.removeEventListener("abort",this[q].abort),typeof A=="function"?(this[q].abort=A,this.addEventListener("abort",A)):this[q].abort=null}};FA.EMPTY=FA.prototype.EMPTY=0;FA.LOADING=FA.prototype.LOADING=1;FA.DONE=FA.prototype.DONE=2;Object.defineProperties(FA.prototype,{EMPTY:ca,LOADING:ca,DONE:ca,readAsArrayBuffer:Ze,readAsBinaryString:Ze,readAsText:Ze,readAsDataURL:Ze,abort:Ze,readyState:Ze,result:Ze,error:Ze,onloadstart:Ze,onprogress:Ze,onload:Ze,onabort:Ze,onerror:Ze,onloadend:Ze,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(FA,{EMPTY:ca,LOADING:ca,DONE:ca});Ju.exports={FileReader:FA}});var ws=E((Xb,xu)=>{"use strict";xu.exports={kConstruct:Symbol("constructable")}});var Hu=E((zb,qu)=>{"use strict";var gy=require("assert"),{URLSerializer:_u}=bA(),{isValidHeaderName:cy}=QA();function uy(e,A,t=!1){let a=_u(e,t),r=_u(A,t);return a===r}function Ey(e){gy(e!==null);let A=[];for(let t of e.split(",")){if(t=t.trim(),t.length){if(!cy(t))continue}else continue;A.push(t)}return A}qu.exports={urlEquals:uy,fieldValues:Ey}});var Xu=E((Kb,ju)=>{"use strict";var{kConstruct:Qy}=ws(),{urlEquals:Cy,fieldValues:Lp}=Hu(),{kEnumerableProperty:c1,isDisturbed:my}=_(),{kHeadersList:Ou}=te(),{webidl:v}=Te(),{Response:Wu,cloneResponse:By}=ds(),{Request:KA}=Qr(),{kState:Ge,kHeaders:ys,kGuard:Pu,kRealm:hy}=nt(),{fetching:Iy}=Bs(),{urlIsHttpHttpsScheme:Ds,createDeferredPromise:ua,readAllBytes:fy}=QA(),Mp=require("assert"),{getGlobalDispatcher:wy}=sa(),Rs=class e{#e;constructor(){arguments[0]!==Qy&&v.illegalConstructor(),this.#e=arguments[1]}async match(A,t={}){v.brandCheck(this,e),v.argumentLengthCheck(arguments,1,{header:"Cache.match"}),A=v.converters.RequestInfo(A),t=v.converters.CacheQueryOptions(t);let a=await this.matchAll(A,t);if(a.length!==0)return a[0]}async matchAll(A=void 0,t={}){v.brandCheck(this,e),A!==void 0&&(A=v.converters.RequestInfo(A)),t=v.converters.CacheQueryOptions(t);let a=null;if(A!==void 0)if(A instanceof KA){if(a=A[Ge],a.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(a=new KA(A)[Ge]);let r=[];if(A===void 0)for(let s of this.#e)r.push(s[1]);else{let s=this.#A(a,t);for(let n of s)r.push(n[1])}let i=[];for(let s of r){let n=new Wu(s.body?.source??null),o=n[Ge].body;n[Ge]=s,n[Ge].body=o,n[ys][Ou]=s.headersList,n[ys][Pu]="immutable",i.push(n)}return Object.freeze(i)}async add(A){v.brandCheck(this,e),v.argumentLengthCheck(arguments,1,{header:"Cache.add"}),A=v.converters.RequestInfo(A);let t=[A];return await this.addAll(t)}async addAll(A){v.brandCheck(this,e),v.argumentLengthCheck(arguments,1,{header:"Cache.addAll"}),A=v.converters["sequence<RequestInfo>"](A);let t=[],a=[];for(let p of A){if(typeof p=="string")continue;let g=p[Ge];if(!Ds(g.url)||g.method!=="GET")throw v.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}let r=[];for(let p of A){let g=new KA(p)[Ge];if(!Ds(g.url))throw v.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."});g.initiator="fetch",g.destination="subresource",a.push(g);let c=ua();r.push(Iy({request:g,dispatcher:wy(),processResponse(u){if(u.type==="error"||u.status===206||u.status<200||u.status>299)c.reject(v.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(u.headersList.contains("vary")){let Q=Lp(u.headersList.get("vary"));for(let m of Q)if(m==="*"){c.reject(v.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let C of r)C.abort();return}}},processResponseEndOfBody(u){if(u.aborted){c.reject(new DOMException("aborted","AbortError"));return}c.resolve(u)}})),t.push(c.promise)}let s=await Promise.all(t),n=[],o=0;for(let p of s){let g={type:"put",request:a[o],response:p};n.push(g),o++}let d=ua(),l=null;try{this.#a(n)}catch(p){l=p}return queueMicrotask(()=>{l===null?d.resolve(void 0):d.reject(l)}),d.promise}async put(A,t){v.brandCheck(this,e),v.argumentLengthCheck(arguments,2,{header:"Cache.put"}),A=v.converters.RequestInfo(A),t=v.converters.Response(t);let a=null;if(A instanceof KA?a=A[Ge]:a=new KA(A)[Ge],!Ds(a.url)||a.method!=="GET")throw v.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"});let r=t[Ge];if(r.status===206)throw v.errors.exception({header:"Cache.put",message:"Got 206 status"});if(r.headersList.contains("vary")){let g=Lp(r.headersList.get("vary"));for(let c of g)if(c==="*")throw v.errors.exception({header:"Cache.put",message:"Got * vary field value"})}if(r.body&&(my(r.body.stream)||r.body.stream.locked))throw v.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"});let i=By(r),s=ua();if(r.body!=null){let c=r.body.stream.getReader();fy(c,u=>s.resolve(u),u=>s.reject(u))}else s.resolve(void 0);let n=[],o={type:"put",request:a,response:i};n.push(o);let d=await s.promise;i.body!=null&&(i.body.source=d);let l=ua(),p=null;try{this.#a(n)}catch(g){p=g}return queueMicrotask(()=>{p===null?l.resolve():l.reject(p)}),l.promise}async delete(A,t={}){v.brandCheck(this,e),v.argumentLengthCheck(arguments,1,{header:"Cache.delete"}),A=v.converters.RequestInfo(A),t=v.converters.CacheQueryOptions(t);let a=null;if(A instanceof KA){if(a=A[Ge],a.method!=="GET"&&!t.ignoreMethod)return!1}else Mp(typeof A=="string"),a=new KA(A)[Ge];let r=[],i={type:"delete",request:a,options:t};r.push(i);let s=ua(),n=null,o;try{o=this.#a(r)}catch(d){n=d}return queueMicrotask(()=>{n===null?s.resolve(!!o?.length):s.reject(n)}),s.promise}async keys(A=void 0,t={}){v.brandCheck(this,e),A!==void 0&&(A=v.converters.RequestInfo(A)),t=v.converters.CacheQueryOptions(t);let a=null;if(A!==void 0)if(A instanceof KA){if(a=A[Ge],a.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(a=new KA(A)[Ge]);let r=ua(),i=[];if(A===void 0)for(let s of this.#e)i.push(s[0]);else{let s=this.#A(a,t);for(let n of s)i.push(n[0])}return queueMicrotask(()=>{let s=[];for(let n of i){let o=new KA("https://a");o[Ge]=n,o[ys][Ou]=n.headersList,o[ys][Pu]="immutable",o[hy]=n.client,s.push(o)}r.resolve(Object.freeze(s))}),r.promise}#a(A){let t=this.#e,a=[...t],r=[],i=[];try{for(let s of A){if(s.type!=="delete"&&s.type!=="put")throw v.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(s.type==="delete"&&s.response!=null)throw v.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#A(s.request,s.options,r).length)throw new DOMException("???","InvalidStateError");let n;if(s.type==="delete"){if(n=this.#A(s.request,s.options),n.length===0)return[];for(let o of n){let d=t.indexOf(o);Mp(d!==-1),t.splice(d,1)}}else if(s.type==="put"){if(s.response==null)throw v.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let o=s.request;if(!Ds(o.url))throw v.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(o.method!=="GET")throw v.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(s.options!=null)throw v.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});n=this.#A(s.request);for(let d of n){let l=t.indexOf(d);Mp(l!==-1),t.splice(l,1)}t.push([s.request,s.response]),r.push([s.request,s.response])}i.push([s.request,s.response])}return i}catch(s){throw this.#e.length=0,this.#e=a,s}}#A(A,t,a){let r=[],i=a??this.#e;for(let s of i){let[n,o]=s;this.#t(A,n,o,t)&&r.push(s)}return r}#t(A,t,a=null,r){let i=new URL(A.url),s=new URL(t.url);if(r?.ignoreSearch&&(s.search="",i.search=""),!Cy(i,s,!0))return!1;if(a==null||r?.ignoreVary||!a.headersList.contains("vary"))return!0;let n=Lp(a.headersList.get("vary"));for(let o of n){if(o==="*")return!1;let d=t.headersList.get(o),l=A.headersList.get(o);if(d!==l)return!1}return!0}};Object.defineProperties(Rs.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:c1,matchAll:c1,add:c1,addAll:c1,put:c1,delete:c1,keys:c1});var Zu=[{key:"ignoreSearch",converter:v.converters.boolean,defaultValue:!1},{key:"ignoreMethod",converter:v.converters.boolean,defaultValue:!1},{key:"ignoreVary",converter:v.converters.boolean,defaultValue:!1}];v.converters.CacheQueryOptions=v.dictionaryConverter(Zu);v.converters.MultiCacheQueryOptions=v.dictionaryConverter([...Zu,{key:"cacheName",converter:v.converters.DOMString}]);v.converters.Response=v.interfaceConverter(Wu);v.converters["sequence<RequestInfo>"]=v.sequenceConverter(v.converters.RequestInfo);ju.exports={Cache:Rs}});var Ku=E(($b,zu)=>{"use strict";var{kConstruct:Br}=ws(),{Cache:vs}=Xu(),{webidl:xe}=Te(),{kEnumerableProperty:hr}=_(),Ns=class e{#e=new Map;constructor(){arguments[0]!==Br&&xe.illegalConstructor()}async match(A,t={}){if(xe.brandCheck(this,e),xe.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"}),A=xe.converters.RequestInfo(A),t=xe.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#e.has(t.cacheName)){let a=this.#e.get(t.cacheName);return await new vs(Br,a).match(A,t)}}else for(let a of this.#e.values()){let i=await new vs(Br,a).match(A,t);if(i!==void 0)return i}}async has(A){return xe.brandCheck(this,e),xe.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"}),A=xe.converters.DOMString(A),this.#e.has(A)}async open(A){if(xe.brandCheck(this,e),xe.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"}),A=xe.converters.DOMString(A),this.#e.has(A)){let a=this.#e.get(A);return new vs(Br,a)}let t=[];return this.#e.set(A,t),new vs(Br,t)}async delete(A){return xe.brandCheck(this,e),xe.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"}),A=xe.converters.DOMString(A),this.#e.delete(A)}async keys(){return xe.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(Ns.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:hr,has:hr,open:hr,delete:hr,keys:hr});zu.exports={CacheStorage:Ns}});var e9=E((eS,$u)=>{"use strict";$u.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var Tp=E((AS,a9)=>{"use strict";var A9=require("assert"),{kHeadersList:t9}=te();function yy(e){if(e.length===0)return!1;for(let A of e){let t=A.charCodeAt(0);if(t>=0||t<=8||t>=10||t<=31||t===127)return!1}}function Dy(e){for(let A of e){let t=A.charCodeAt(0);if(t<=32||t>127||A==="("||A===")"||A===">"||A==="<"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}")throw new Error("Invalid cookie name")}}function Ry(e){for(let A of e){let t=A.charCodeAt(0);if(t<33||t===34||t===44||t===59||t===92||t>126)throw new Error("Invalid header value")}}function vy(e){for(let A of e)if(A.charCodeAt(0)<33||A===";")throw new Error("Invalid cookie path")}function Ny(e){if(e.startsWith("-")||e.endsWith(".")||e.endsWith("-"))throw new Error("Invalid cookie domain")}function by(e){typeof e=="number"&&(e=new Date(e));let A=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],a=A[e.getUTCDay()],r=e.getUTCDate().toString().padStart(2,"0"),i=t[e.getUTCMonth()],s=e.getUTCFullYear(),n=e.getUTCHours().toString().padStart(2,"0"),o=e.getUTCMinutes().toString().padStart(2,"0"),d=e.getUTCSeconds().toString().padStart(2,"0");return`${a}, ${r} ${i} ${s} ${n}:${o}:${d} GMT`}function Sy(e){if(e<0)throw new Error("Invalid cookie max-age")}function ky(e){if(e.name.length===0)return null;Dy(e.name),Ry(e.value);let A=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&A.push("Secure"),e.httpOnly&&A.push("HttpOnly"),typeof e.maxAge=="number"&&(Sy(e.maxAge),A.push(`Max-Age=${e.maxAge}`)),e.domain&&(Ny(e.domain),A.push(`Domain=${e.domain}`)),e.path&&(vy(e.path),A.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&A.push(`Expires=${by(e.expires)}`),e.sameSite&&A.push(`SameSite=${e.sameSite}`);for(let t of e.unparsed){if(!t.includes("="))throw new Error("Invalid unparsed");let[a,...r]=t.split("=");A.push(`${a.trim()}=${r.join("=")}`)}return A.join("; ")}var bs;function Fy(e){if(e[t9])return e[t9];bs||(bs=Object.getOwnPropertySymbols(e).find(t=>t.description==="headers list"),A9(bs,"Headers cannot be parsed"));let A=e[bs];return A9(A),A}a9.exports={isCTLExcludingHtab:yy,stringify:ky,getHeadersList:Fy}});var i9=E((tS,r9)=>{"use strict";var{maxNameValuePairSize:Uy,maxAttributeValueSize:Ly}=e9(),{isCTLExcludingHtab:My}=Tp(),{collectASequenceOfCodePointsFast:Ss}=bA(),Ty=require("assert");function Vy(e){if(My(e))return null;let A="",t="",a="",r="";if(e.includes(";")){let i={position:0};A=Ss(";",e,i),t=e.slice(i.position)}else A=e;if(!A.includes("="))r=A;else{let i={position:0};a=Ss("=",A,i),r=A.slice(i.position+1)}return a=a.trim(),r=r.trim(),a.length+r.length>Uy?null:{name:a,value:r,...Ea(t)}}function Ea(e,A={}){if(e.length===0)return A;Ty(e[0]===";"),e=e.slice(1);let t="";e.includes(";")?(t=Ss(";",e,{position:0}),e=e.slice(t.length)):(t=e,e="");let a="",r="";if(t.includes("=")){let s={position:0};a=Ss("=",t,s),r=t.slice(s.position+1)}else a=t;if(a=a.trim(),r=r.trim(),r.length>Ly)return Ea(e,A);let i=a.toLowerCase();if(i==="expires"){let s=new Date(r);A.expires=s}else if(i==="max-age"){let s=r.charCodeAt(0);if((s<48||s>57)&&r[0]!=="-"||!/^\d+$/.test(r))return Ea(e,A);let n=Number(r);A.maxAge=n}else if(i==="domain"){let s=r;s[0]==="."&&(s=s.slice(1)),s=s.toLowerCase(),A.domain=s}else if(i==="path"){let s="";r.length===0||r[0]!=="/"?s="/":s=r,A.path=s}else if(i==="secure")A.secure=!0;else if(i==="httponly")A.httpOnly=!0;else if(i==="samesite"){let s="Default",n=r.toLowerCase();n.includes("none")&&(s="None"),n.includes("strict")&&(s="Strict"),n.includes("lax")&&(s="Lax"),A.sameSite=s}else A.unparsed??=[],A.unparsed.push(`${a}=${r}`);return Ea(e,A)}r9.exports={parseSetCookie:Vy,parseUnparsedAttributes:Ea}});var d9=E((aS,o9)=>{"use strict";var{parseSetCookie:Yy}=i9(),{stringify:s9,getHeadersList:Jy}=Tp(),{webidl:G}=Te(),{Headers:ks}=p1();function Gy(e){G.argumentLengthCheck(arguments,1,{header:"getCookies"}),G.brandCheck(e,ks,{strict:!1});let A=e.get("cookie"),t={};if(!A)return t;for(let a of A.split(";")){let[r,...i]=a.split("=");t[r.trim()]=i.join("=")}return t}function xy(e,A,t){G.argumentLengthCheck(arguments,2,{header:"deleteCookie"}),G.brandCheck(e,ks,{strict:!1}),A=G.converters.DOMString(A),t=G.converters.DeleteCookieAttributes(t),n9(e,{name:A,value:"",expires:new Date(0),...t})}function _y(e){G.argumentLengthCheck(arguments,1,{header:"getSetCookies"}),G.brandCheck(e,ks,{strict:!1});let A=Jy(e).cookies;return A?A.map(t=>Yy(Array.isArray(t)?t[1]:t)):[]}function n9(e,A){G.argumentLengthCheck(arguments,2,{header:"setCookie"}),G.brandCheck(e,ks,{strict:!1}),A=G.converters.Cookie(A),s9(A)&&e.append("Set-Cookie",s9(A))}G.converters.DeleteCookieAttributes=G.dictionaryConverter([{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:null}]);G.converters.Cookie=G.dictionaryConverter([{converter:G.converters.DOMString,key:"name"},{converter:G.converters.DOMString,key:"value"},{converter:G.nullableConverter(e=>typeof e=="number"?G.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:null},{converter:G.nullableConverter(G.converters["long long"]),key:"maxAge",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:null},{converter:G.nullableConverter(G.converters.boolean),key:"secure",defaultValue:null},{converter:G.nullableConverter(G.converters.boolean),key:"httpOnly",defaultValue:null},{converter:G.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:G.sequenceConverter(G.converters.DOMString),key:"unparsed",defaultValue:[]}]);o9.exports={getCookies:Gy,deleteCookie:xy,getSetCookies:_y,setCookie:n9}});var Qa=E((rS,p9)=>{"use strict";var qy="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",Hy={enumerable:!0,writable:!1,configurable:!1},Oy={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},Py={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},Wy=2**16-1,Zy={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},jy=Buffer.allocUnsafe(0);p9.exports={uid:qy,staticPropertyDescriptors:Hy,states:Oy,opcodes:Py,maxUnsigned16Bit:Wy,parserStates:Zy,emptyBuffer:jy}});var Ir=E((iS,l9)=>{"use strict";l9.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var Yp=E((sS,g9)=>{"use strict";var{webidl:N}=Te(),{kEnumerableProperty:je}=_(),{MessagePort:Xy}=require("worker_threads"),Fs=class e extends Event{#e;constructor(A,t={}){N.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"}),A=N.converters.DOMString(A),t=N.converters.MessageEventInit(t),super(A,t),this.#e=t}get data(){return N.brandCheck(this,e),this.#e.data}get origin(){return N.brandCheck(this,e),this.#e.origin}get lastEventId(){return N.brandCheck(this,e),this.#e.lastEventId}get source(){return N.brandCheck(this,e),this.#e.source}get ports(){return N.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(A,t=!1,a=!1,r=null,i="",s="",n=null,o=[]){return N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"}),new e(A,{bubbles:t,cancelable:a,data:r,origin:i,lastEventId:s,source:n,ports:o})}},Us=class e extends Event{#e;constructor(A,t={}){N.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"}),A=N.converters.DOMString(A),t=N.converters.CloseEventInit(t),super(A,t),this.#e=t}get wasClean(){return N.brandCheck(this,e),this.#e.wasClean}get code(){return N.brandCheck(this,e),this.#e.code}get reason(){return N.brandCheck(this,e),this.#e.reason}},Ls=class e extends Event{#e;constructor(A,t){N.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"}),super(A,t),A=N.converters.DOMString(A),t=N.converters.ErrorEventInit(t??{}),this.#e=t}get message(){return N.brandCheck(this,e),this.#e.message}get filename(){return N.brandCheck(this,e),this.#e.filename}get lineno(){return N.brandCheck(this,e),this.#e.lineno}get colno(){return N.brandCheck(this,e),this.#e.colno}get error(){return N.brandCheck(this,e),this.#e.error}};Object.defineProperties(Fs.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:je,origin:je,lastEventId:je,source:je,ports:je,initMessageEvent:je});Object.defineProperties(Us.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:je,code:je,wasClean:je});Object.defineProperties(Ls.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:je,filename:je,lineno:je,colno:je,error:je});N.converters.MessagePort=N.interfaceConverter(Xy);N.converters["sequence<MessagePort>"]=N.sequenceConverter(N.converters.MessagePort);var Vp=[{key:"bubbles",converter:N.converters.boolean,defaultValue:!1},{key:"cancelable",converter:N.converters.boolean,defaultValue:!1},{key:"composed",converter:N.converters.boolean,defaultValue:!1}];N.converters.MessageEventInit=N.dictionaryConverter([...Vp,{key:"data",converter:N.converters.any,defaultValue:null},{key:"origin",converter:N.converters.USVString,defaultValue:""},{key:"lastEventId",converter:N.converters.DOMString,defaultValue:""},{key:"source",converter:N.nullableConverter(N.converters.MessagePort),defaultValue:null},{key:"ports",converter:N.converters["sequence<MessagePort>"],get defaultValue(){return[]}}]);N.converters.CloseEventInit=N.dictionaryConverter([...Vp,{key:"wasClean",converter:N.converters.boolean,defaultValue:!1},{key:"code",converter:N.converters["unsigned short"],defaultValue:0},{key:"reason",converter:N.converters.USVString,defaultValue:""}]);N.converters.ErrorEventInit=N.dictionaryConverter([...Vp,{key:"message",converter:N.converters.DOMString,defaultValue:""},{key:"filename",converter:N.converters.USVString,defaultValue:""},{key:"lineno",converter:N.converters["unsigned long"],defaultValue:0},{key:"colno",converter:N.converters["unsigned long"],defaultValue:0},{key:"error",converter:N.converters.any}]);g9.exports={MessageEvent:Fs,CloseEvent:Us,ErrorEvent:Ls}});var Vs=E((nS,E9)=>{"use strict";var{kReadyState:Ms,kController:zy,kResponse:Ky,kBinaryType:$y,kWebSocketURL:eD}=Ir(),{states:Ts,opcodes:c9}=Qa(),{MessageEvent:AD,ErrorEvent:tD}=Yp();function aD(e){return e[Ms]===Ts.OPEN}function rD(e){return e[Ms]===Ts.CLOSING}function iD(e){return e[Ms]===Ts.CLOSED}function Jp(e,A,t=Event,a){let r=new t(e,a);A.dispatchEvent(r)}function sD(e,A,t){if(e[Ms]!==Ts.OPEN)return;let a;if(A===c9.TEXT)try{a=new TextDecoder("utf-8",{fatal:!0}).decode(t)}catch{u9(e,"Received invalid UTF-8 in text frame.");return}else A===c9.BINARY&&(e[$y]==="blob"?a=new Blob([t]):a=new Uint8Array(t).buffer);Jp("message",e,AD,{origin:e[eD].origin,data:a})}function nD(e){if(e.length===0)return!1;for(let A of e){let t=A.charCodeAt(0);if(t<33||t>126||A==="("||A===")"||A==="<"||A===">"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}"||t===32||t===9)return!1}return!0}function oD(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function u9(e,A){let{[zy]:t,[Ky]:a}=e;t.abort(),a?.socket&&!a.socket.destroyed&&a.socket.destroy(),A&&Jp("error",e,tD,{error:new Error(A)})}E9.exports={isEstablished:aD,isClosing:rD,isClosed:iD,fireEvent:Jp,isValidSubprotocol:nD,isValidStatusCode:oD,failWebsocketConnection:u9,websocketMessageReceived:sD}});var I9=E((oS,h9)=>{"use strict";var{randomBytes:dD,createHash:pD}=require("crypto"),Gp=require("diagnostics_channel"),{uid:lD,states:C9}=Qa(),{kReadyState:m9,kSentClose:Q9,kByteParser:B9,kReceivedClose:gD}=Ir(),{fireEvent:cD,failWebsocketConnection:u1}=Vs(),{CloseEvent:uD}=Yp(),{makeRequest:ED}=Qr(),{fetching:QD}=Bs(),{Headers:CD}=p1(),{getGlobalDispatcher:mD}=sa(),{kHeadersList:BD}=te(),Et={};Et.open=Gp.channel("undici:websocket:open");Et.close=Gp.channel("undici:websocket:close");Et.socketError=Gp.channel("undici:websocket:socket_error");function hD(e,A,t,a,r){let i=e;i.protocol=e.protocol==="ws:"?"http:":"https:";let s=ED({urlList:[i],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(r.headers){let l=new CD(r.headers)[BD];s.headersList=l}let n=dD(16).toString("base64");s.headersList.append("sec-websocket-key",n),s.headersList.append("sec-websocket-version","13");for(let l of A)s.headersList.append("sec-websocket-protocol",l);let o="";return QD({request:s,useParallelQueue:!0,dispatcher:r.dispatcher??mD(),processResponse(l){if(l.type==="error"||l.status!==101){u1(t,"Received network error or non-101 status code.");return}if(A.length!==0&&!l.headersList.get("Sec-WebSocket-Protocol")){u1(t,"Server did not respond with sent protocols.");return}if(l.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){u1(t,'Server did not set Upgrade header to "websocket".');return}if(l.headersList.get("Connection")?.toLowerCase()!=="upgrade"){u1(t,'Server did not set Connection header to "upgrade".');return}let p=l.headersList.get("Sec-WebSocket-Accept"),g=pD("sha1").update(n+lD).digest("base64");if(p!==g){u1(t,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let c=l.headersList.get("Sec-WebSocket-Extensions");if(c!==null&&c!==o){u1(t,"Received different permessage-deflate than the one set.");return}let u=l.headersList.get("Sec-WebSocket-Protocol");if(u!==null&&u!==s.headersList.get("Sec-WebSocket-Protocol")){u1(t,"Protocol was not set in the opening handshake.");return}l.socket.on("data",ID),l.socket.on("close",fD),l.socket.on("error",wD),Et.open.hasSubscribers&&Et.open.publish({address:l.socket.address(),protocol:u,extensions:c}),a(l)}})}function ID(e){this.ws[B9].write(e)||this.pause()}function fD(){let{ws:e}=this,A=e[Q9]&&e[gD],t=1005,a="",r=e[B9].closingInfo;r?(t=r.code??1005,a=r.reason):e[Q9]||(t=1006),e[m9]=C9.CLOSED,cD("close",e,uD,{wasClean:A,code:t,reason:a}),Et.close.hasSubscribers&&Et.close.publish({websocket:e,code:t,reason:a})}function wD(e){let{ws:A}=this;A[m9]=C9.CLOSING,Et.socketError.hasSubscribers&&Et.socketError.publish(e),this.destroy()}h9.exports={establishWebSocketConnection:hD}});var _p=E((dS,f9)=>{"use strict";var{randomBytes:yD}=require("crypto"),{maxUnsigned16Bit:DD}=Qa(),xp=class{constructor(A){this.frameData=A,this.maskKey=yD(4)}createFrame(A){let t=this.frameData?.byteLength??0,a=t,r=6;t>DD?(r+=8,a=127):t>125&&(r+=2,a=126);let i=Buffer.allocUnsafe(t+r);i[0]=i[1]=0,i[0]|=128,i[0]=(i[0]&240)+A;i[r-4]=this.maskKey[0],i[r-3]=this.maskKey[1],i[r-2]=this.maskKey[2],i[r-1]=this.maskKey[3],i[1]=a,a===126?i.writeUInt16BE(t,2):a===127&&(i[2]=i[3]=0,i.writeUIntBE(t,4,6)),i[1]|=128;for(let s=0;s<t;s++)i[r+s]=this.frameData[s]^this.maskKey[s%4];return i}};f9.exports={WebsocketFrameSend:xp}});var S9=E((pS,b9)=>{"use strict";var{Writable:RD}=require("stream"),N9=require("diagnostics_channel"),{parserStates:fA,opcodes:wA,states:vD,emptyBuffer:ND}=Qa(),{kReadyState:bD,kSentClose:w9,kResponse:y9,kReceivedClose:D9}=Ir(),{isValidStatusCode:R9,failWebsocketConnection:fr,websocketMessageReceived:SD}=Vs(),{WebsocketFrameSend:v9}=_p(),Ca={};Ca.ping=N9.channel("undici:websocket:ping");Ca.pong=N9.channel("undici:websocket:pong");var qp=class extends RD{#e=[];#a=0;#A=fA.INFO;#t={};#r=[];constructor(A){super(),this.ws=A}_write(A,t,a){this.#e.push(A),this.#a+=A.length,this.run(a)}run(A){for(;;){if(this.#A===fA.INFO){if(this.#a<2)return A();let t=this.consume(2);if(this.#t.fin=(t[0]&128)!==0,this.#t.opcode=t[0]&15,this.#t.originalOpcode??=this.#t.opcode,this.#t.fragmented=!this.#t.fin&&this.#t.opcode!==wA.CONTINUATION,this.#t.fragmented&&this.#t.opcode!==wA.BINARY&&this.#t.opcode!==wA.TEXT){fr(this.ws,"Invalid frame type was fragmented.");return}let a=t[1]&127;if(a<=125?(this.#t.payloadLength=a,this.#A=fA.READ_DATA):a===126?this.#A=fA.PAYLOADLENGTH_16:a===127&&(this.#A=fA.PAYLOADLENGTH_64),this.#t.fragmented&&a>125){fr(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#t.opcode===wA.PING||this.#t.opcode===wA.PONG||this.#t.opcode===wA.CLOSE)&&a>125){fr(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#t.opcode===wA.CLOSE){if(a===1){fr(this.ws,"Received close frame with a 1-byte body.");return}let r=this.consume(a);if(this.#t.closeInfo=this.parseCloseBody(!1,r),!this.ws[w9]){let i=Buffer.allocUnsafe(2);i.writeUInt16BE(this.#t.closeInfo.code,0);let s=new v9(i);this.ws[y9].socket.write(s.createFrame(wA.CLOSE),n=>{n||(this.ws[w9]=!0)})}this.ws[bD]=vD.CLOSING,this.ws[D9]=!0,this.end();return}else if(this.#t.opcode===wA.PING){let r=this.consume(a);if(!this.ws[D9]){let i=new v9(r);this.ws[y9].socket.write(i.createFrame(wA.PONG)),Ca.ping.hasSubscribers&&Ca.ping.publish({payload:r})}if(this.#A=fA.INFO,this.#a>0)continue;A();return}else if(this.#t.opcode===wA.PONG){let r=this.consume(a);if(Ca.pong.hasSubscribers&&Ca.pong.publish({payload:r}),this.#a>0)continue;A();return}}else if(this.#A===fA.PAYLOADLENGTH_16){if(this.#a<2)return A();let t=this.consume(2);this.#t.payloadLength=t.readUInt16BE(0),this.#A=fA.READ_DATA}else if(this.#A===fA.PAYLOADLENGTH_64){if(this.#a<8)return A();let t=this.consume(8),a=t.readUInt32BE(0);if(a>2**31-1){fr(this.ws,"Received payload length > 2^31 bytes.");return}let r=t.readUInt32BE(4);this.#t.payloadLength=(a<<8)+r,this.#A=fA.READ_DATA}else if(this.#A===fA.READ_DATA){if(this.#a<this.#t.payloadLength)return A();if(this.#a>=this.#t.payloadLength){let t=this.consume(this.#t.payloadLength);if(this.#r.push(t),!this.#t.fragmented||this.#t.fin&&this.#t.opcode===wA.CONTINUATION){let a=Buffer.concat(this.#r);SD(this.ws,this.#t.originalOpcode,a),this.#t={},this.#r.length=0}this.#A=fA.INFO}}if(!(this.#a>0)){A();break}}}consume(A){if(A>this.#a)return null;if(A===0)return ND;if(this.#e[0].length===A)return this.#a-=this.#e[0].length,this.#e.shift();let t=Buffer.allocUnsafe(A),a=0;for(;a!==A;){let r=this.#e[0],{length:i}=r;if(i+a===A){t.set(this.#e.shift(),a);break}else if(i+a>A){t.set(r.subarray(0,A-a),a),this.#e[0]=r.subarray(A-a);break}else t.set(this.#e.shift(),a),a+=r.length}return this.#a-=A,t}parseCloseBody(A,t){let a;if(t.length>=2&&(a=t.readUInt16BE(0)),A)return R9(a)?{code:a}:null;let r=t.subarray(2);if(r[0]===239&&r[1]===187&&r[2]===191&&(r=r.subarray(3)),a!==void 0&&!R9(a))return null;try{r=new TextDecoder("utf-8",{fatal:!0}).decode(r)}catch{return null}return{code:a,reason:r}}get closingInfo(){return this.#t.closeInfo}};b9.exports={ByteParser:qp}});var Y9=E((lS,V9)=>{"use strict";var{webidl:k}=Te(),{DOMException:Vt}=Nt(),{URLSerializer:kD}=bA(),{staticPropertyDescriptors:Yt,states:ma,opcodes:wr,emptyBuffer:FD}=Qa(),{kWebSocketURL:k9,kReadyState:Qt,kController:UD,kBinaryType:Ys,kResponse:Js,kSentClose:LD,kByteParser:MD}=Ir(),{isEstablished:F9,isClosing:U9,isValidSubprotocol:TD,failWebsocketConnection:VD,fireEvent:YD}=Vs(),{establishWebSocketConnection:JD}=I9(),{WebsocketFrameSend:yr}=_p(),{ByteParser:GD}=S9(),{kEnumerableProperty:yA,isBlobLike:M9}=_(),{getGlobalDispatcher:xD}=sa(),{types:T9}=require("util"),L9=!1,oA=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#a=0;#A="";#t="";constructor(A,t=[]){super(),k.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"}),L9||(L9=!0,process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"}));let a=k.converters["DOMString or sequence<DOMString> or WebSocketInit"](t);A=k.converters.USVString(A),t=a.protocols;let r;try{r=new URL(A)}catch(i){throw new Vt(i,"SyntaxError")}if(r.protocol!=="ws:"&&r.protocol!=="wss:")throw new Vt(`Expected a ws: or wss: protocol, got ${r.protocol}`,"SyntaxError");if(r.hash)throw new Vt("Got fragment","SyntaxError");if(typeof t=="string"&&(t=[t]),t.length!==new Set(t.map(i=>i.toLowerCase())).size)throw new Vt("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(t.length>0&&!t.every(i=>TD(i)))throw new Vt("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[k9]=r,this[UD]=JD(r,t,this,i=>this.#r(i),a),this[Qt]=e.CONNECTING,this[Ys]="blob"}close(A=void 0,t=void 0){if(k.brandCheck(this,e),A!==void 0&&(A=k.converters["unsigned short"](A,{clamp:!0})),t!==void 0&&(t=k.converters.USVString(t)),A!==void 0&&A!==1e3&&(A<3e3||A>4999))throw new Vt("invalid code","InvalidAccessError");let a=0;if(t!==void 0&&(a=Buffer.byteLength(t),a>123))throw new Vt(`Reason must be less than 123 bytes; received ${a}`,"SyntaxError");if(!(this[Qt]===e.CLOSING||this[Qt]===e.CLOSED))if(!F9(this))VD(this,"Connection was closed before it was established."),this[Qt]=e.CLOSING;else if(U9(this))this[Qt]=e.CLOSING;else{let r=new yr;A!==void 0&&t===void 0?(r.frameData=Buffer.allocUnsafe(2),r.frameData.writeUInt16BE(A,0)):A!==void 0&&t!==void 0?(r.frameData=Buffer.allocUnsafe(2+a),r.frameData.writeUInt16BE(A,0),r.frameData.write(t,2,"utf-8")):r.frameData=FD,this[Js].socket.write(r.createFrame(wr.CLOSE),s=>{s||(this[LD]=!0)}),this[Qt]=ma.CLOSING}}send(A){if(k.brandCheck(this,e),k.argumentLengthCheck(arguments,1,{header:"WebSocket.send"}),A=k.converters.WebSocketSendData(A),this[Qt]===e.CONNECTING)throw new Vt("Sent before connected.","InvalidStateError");if(!F9(this)||U9(this))return;let t=this[Js].socket;if(typeof A=="string"){let a=Buffer.from(A),i=new yr(a).createFrame(wr.TEXT);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(T9.isArrayBuffer(A)){let a=Buffer.from(A),i=new yr(a).createFrame(wr.BINARY);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(ArrayBuffer.isView(A)){let a=Buffer.from(A,A.byteOffset,A.byteLength),i=new yr(a).createFrame(wr.BINARY);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(M9(A)){let a=new yr;A.arrayBuffer().then(r=>{let i=Buffer.from(r);a.frameData=i;let s=a.createFrame(wr.BINARY);this.#a+=i.byteLength,t.write(s,()=>{this.#a-=i.byteLength})})}}get readyState(){return k.brandCheck(this,e),this[Qt]}get bufferedAmount(){return k.brandCheck(this,e),this.#a}get url(){return k.brandCheck(this,e),kD(this[k9])}get extensions(){return k.brandCheck(this,e),this.#t}get protocol(){return k.brandCheck(this,e),this.#A}get onopen(){return k.brandCheck(this,e),this.#e.open}set onopen(A){k.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof A=="function"?(this.#e.open=A,this.addEventListener("open",A)):this.#e.open=null}get onerror(){return k.brandCheck(this,e),this.#e.error}set onerror(A){k.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof A=="function"?(this.#e.error=A,this.addEventListener("error",A)):this.#e.error=null}get onclose(){return k.brandCheck(this,e),this.#e.close}set onclose(A){k.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof A=="function"?(this.#e.close=A,this.addEventListener("close",A)):this.#e.close=null}get onmessage(){return k.brandCheck(this,e),this.#e.message}set onmessage(A){k.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof A=="function"?(this.#e.message=A,this.addEventListener("message",A)):this.#e.message=null}get binaryType(){return k.brandCheck(this,e),this[Ys]}set binaryType(A){k.brandCheck(this,e),A!=="blob"&&A!=="arraybuffer"?this[Ys]="blob":this[Ys]=A}#r(A){this[Js]=A;let t=new GD(this);t.on("drain",function(){this.ws[Js].socket.resume()}),A.socket.ws=this,this[MD]=t,this[Qt]=ma.OPEN;let a=A.headersList.get("sec-websocket-extensions");a!==null&&(this.#t=a);let r=A.headersList.get("sec-websocket-protocol");r!==null&&(this.#A=r),YD("open",this)}};oA.CONNECTING=oA.prototype.CONNECTING=ma.CONNECTING;oA.OPEN=oA.prototype.OPEN=ma.OPEN;oA.CLOSING=oA.prototype.CLOSING=ma.CLOSING;oA.CLOSED=oA.prototype.CLOSED=ma.CLOSED;Object.defineProperties(oA.prototype,{CONNECTING:Yt,OPEN:Yt,CLOSING:Yt,CLOSED:Yt,url:yA,readyState:yA,bufferedAmount:yA,onopen:yA,onerror:yA,onclose:yA,close:yA,onmessage:yA,binaryType:yA,send:yA,extensions:yA,protocol:yA,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(oA,{CONNECTING:Yt,OPEN:Yt,CLOSING:Yt,CLOSED:Yt});k.converters["sequence<DOMString>"]=k.sequenceConverter(k.converters.DOMString);k.converters["DOMString or sequence<DOMString>"]=function(e){return k.util.Type(e)==="Object"&&Symbol.iterator in e?k.converters["sequence<DOMString>"](e):k.converters.DOMString(e)};k.converters.WebSocketInit=k.dictionaryConverter([{key:"protocols",converter:k.converters["DOMString or sequence<DOMString>"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return xD()}},{key:"headers",converter:k.nullableConverter(k.converters.HeadersInit)}]);k.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(e){return k.util.Type(e)==="Object"&&!(Symbol.iterator in e)?k.converters.WebSocketInit(e):{protocols:k.converters["DOMString or sequence<DOMString>"](e)}};k.converters.WebSocketSendData=function(e){if(k.util.Type(e)==="Object"){if(M9(e))return k.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||T9.isAnyArrayBuffer(e))return k.converters.BufferSource(e)}return k.converters.USVString(e)};V9.exports={WebSocket:oA}});var Op=E((gS,V)=>{"use strict";var _D=rr(),J9=vi(),G9=z(),qD=X1(),HD=i6(),OD=or(),E1=_(),{InvalidArgumentError:Gs}=G9,Ba=X6(),PD=za(),WD=$d(),ZD=Fc(),jD=tp(),XD=Gd(),zD=Yc(),{getGlobalDispatcher:x9,setGlobalDispatcher:KD}=sa(),$D=Oc(),eR=Ko(),AR=ki(),Hp;try{require("crypto"),Hp=!0}catch{Hp=!1}Object.assign(J9.prototype,Ba);V.exports.Dispatcher=J9;V.exports.Client=_D;V.exports.Pool=qD;V.exports.BalancedPool=HD;V.exports.Agent=OD;V.exports.ProxyAgent=zD;V.exports.DecoratorHandler=$D;V.exports.RedirectHandler=eR;V.exports.createRedirectInterceptor=AR;V.exports.buildConnector=PD;V.exports.errors=G9;function Dr(e){return(A,t,a)=>{if(typeof t=="function"&&(a=t,t=null),!A||typeof A!="string"&&typeof A!="object"&&!(A instanceof URL))throw new Gs("invalid url");if(t!=null&&typeof t!="object")throw new Gs("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new Gs("invalid opts.path");let s=t.path;t.path.startsWith("/")||(s=`/${s}`),A=new URL(E1.parseOrigin(A).origin+s)}else t||(t=typeof A=="object"?A:{}),A=E1.parseURL(A);let{agent:r,dispatcher:i=x9()}=t;if(r)throw new Gs("unsupported opts.agent. Did you mean opts.client?");return e.call(i,{...t,origin:A.origin,path:A.search?`${A.pathname}${A.search}`:A.pathname,method:t.method||(t.body?"PUT":"GET")},a)}}V.exports.setGlobalDispatcher=KD;V.exports.getGlobalDispatcher=x9;if(E1.nodeMajor>16||E1.nodeMajor===16&&E1.nodeMinor>=8){let e=null;V.exports.fetch=async function(s){e||(e=Bs().fetch);try{return await e(...arguments)}catch(n){throw Error.captureStackTrace(n,this),n}},V.exports.Headers=p1().Headers,V.exports.Response=ds().Response,V.exports.Request=Qr().Request,V.exports.FormData=Di().FormData,V.exports.File=wi().File,V.exports.FileReader=Gu().FileReader;let{setGlobalOrigin:A,getGlobalOrigin:t}=Ha();V.exports.setGlobalOrigin=A,V.exports.getGlobalOrigin=t;let{CacheStorage:a}=Ku(),{kConstruct:r}=ws();V.exports.caches=new a(r)}if(E1.nodeMajor>=16){let{deleteCookie:e,getCookies:A,getSetCookies:t,setCookie:a}=d9();V.exports.deleteCookie=e,V.exports.getCookies=A,V.exports.getSetCookies=t,V.exports.setCookie=a;let{parseMIMEType:r,serializeAMimeType:i}=bA();V.exports.parseMIMEType=r,V.exports.serializeAMimeType=i}if(E1.nodeMajor>=18&&Hp){let{WebSocket:e}=Y9();V.exports.WebSocket=e}V.exports.request=Dr(Ba.request);V.exports.stream=Dr(Ba.stream);V.exports.pipeline=Dr(Ba.pipeline);V.exports.connect=Dr(Ba.connect);V.exports.upgrade=Dr(Ba.upgrade);V.exports.MockClient=WD;V.exports.MockPool=jD;V.exports.MockAgent=ZD;V.exports.mockErrors=XD});var Xp=E(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});var rR=function(e,A,t,a){if(typeof e!="string"||e.length===0)throw new TypeError("text should be a string");if(typeof A!="string"||A.length===0)throw new TypeError("lang should be a string");if(typeof t!="boolean")throw new TypeError("slow should be a boolean");if(typeof a!="string"||a.length===0)throw new TypeError("host should be a string")};jp.default=rR});var Kp=E(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});var iR="\\s\\uFEFF\\xA0",sR="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",nR=function(e,A){for(var t=A===void 0?{}:A,a=t.maxLength,r=a===void 0?200:a,i=t.splitPunct,s=i===void 0?"":i,n=function(u,Q){var m=new RegExp("["+iR+sR+s+"]");return m.test(u.charAt(Q))},o=function(u,Q,m){for(var C=m;C>=Q;C--)if(n(u,C))return C;return-1},d=[],l=function(u,Q,m){d.push(u.slice(Q,m+1))},p=0;;){if(e.length-p<=r){l(e,p,e.length-1);break}var g=p+r-1;if(n(e,g)||n(e,g+1)){l(e,p,g),p=g+1;continue}if(g=o(e,p,g),g===-1){var c=e.slice(p,p+r);throw new Error("The word is too long to split into a short text:"+(` `+c+" ...")+` -Try the option "splitPunct" to split the text by punctuation.`)}l(e,p,g),p=g+1}return d};i0.default=vR});var r9=E(ft=>{"use strict";var n0=ft&&ft.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ft,"__esModule",{value:!0});ft.getAllAudioUrls=ft.getAudioUrl=void 0;var a9=n0(r0()),NR=n0(s0()),bR=n0(require("url")),SR=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n;if(a9.default(e,r,s,o),e.length>200)throw new RangeError("text length ("+e.length+') should be less than 200 characters. Try "getAllAudioUrls(text, [option])" for long text.');return o+"/translate_tts"+bR.default.format({query:{ie:"UTF-8",q:e,tl:r,total:1,idx:0,textlen:e.length,client:"tw-ob",prev:"input",ttsspeed:s?.24:1}})};ft.getAudioUrl=SR;var kR=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n,d=t.splitPunct,l=d===void 0?"":d;if(a9.default(e,r,s,o),typeof l!="string")throw new TypeError("splitPunct should be a string");return NR.default(e,{splitPunct:l}).map(function(p){return{shortText:p,url:ft.getAudioUrl(p,{lang:r,slow:s,host:o})}})};ft.getAllAudioUrls=kR});var o0=E((sk,i9)=>{"use strict";i9.exports=function(A,t){return function(){for(var r=new Array(arguments.length),i=0;i<r.length;i++)r[i]=arguments[i];return A.apply(t,r)}}});var Oe=E((nk,o9)=>{"use strict";var FR=o0(),I1=Object.prototype.toString;function l0(e){return I1.call(e)==="[object Array]"}function d0(e){return typeof e>"u"}function UR(e){return e!==null&&!d0(e)&&e.constructor!==null&&!d0(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function LR(e){return I1.call(e)==="[object ArrayBuffer]"}function MR(e){return typeof FormData<"u"&&e instanceof FormData}function TR(e){var A;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?A=ArrayBuffer.isView(e):A=e&&e.buffer&&e.buffer instanceof ArrayBuffer,A}function VR(e){return typeof e=="string"}function YR(e){return typeof e=="number"}function s9(e){return e!==null&&typeof e=="object"}function Xs(e){if(I1.call(e)!=="[object Object]")return!1;var A=Object.getPrototypeOf(e);return A===null||A===Object.prototype}function JR(e){return I1.call(e)==="[object Date]"}function GR(e){return I1.call(e)==="[object File]"}function xR(e){return I1.call(e)==="[object Blob]"}function n9(e){return I1.call(e)==="[object Function]"}function _R(e){return s9(e)&&n9(e.pipe)}function qR(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function HR(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function OR(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function g0(e,A){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),l0(e))for(var t=0,a=e.length;t<a;t++)A.call(null,e[t],t,e);else for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&A.call(null,e[r],r,e)}function p0(){var e={};function A(r,i){Xs(e[i])&&Xs(r)?e[i]=p0(e[i],r):Xs(r)?e[i]=p0({},r):l0(r)?e[i]=r.slice():e[i]=r}for(var t=0,a=arguments.length;t<a;t++)g0(arguments[t],A);return e}function PR(e,A,t){return g0(A,function(r,i){t&&typeof r=="function"?e[i]=FR(r,t):e[i]=r}),e}function WR(e){return e.charCodeAt(0)===65279&&(e=e.slice(1)),e}o9.exports={isArray:l0,isArrayBuffer:LR,isBuffer:UR,isFormData:MR,isArrayBufferView:TR,isString:VR,isNumber:YR,isObject:s9,isPlainObject:Xs,isUndefined:d0,isDate:JR,isFile:GR,isBlob:xR,isFunction:n9,isStream:_R,isURLSearchParams:qR,isStandardBrowserEnv:OR,forEach:g0,merge:p0,extend:PR,trim:HR,stripBOM:WR}});var zs=E((ok,p9)=>{"use strict";var ya=Oe();function d9(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}p9.exports=function(A,t,a){if(!t)return A;var r;if(a)r=a(t);else if(ya.isURLSearchParams(t))r=t.toString();else{var i=[];ya.forEach(t,function(o,d){o===null||typeof o>"u"||(ya.isArray(o)?d=d+"[]":o=[o],ya.forEach(o,function(p){ya.isDate(p)?p=p.toISOString():ya.isObject(p)&&(p=JSON.stringify(p)),i.push(d9(d)+"="+d9(p))}))}),r=i.join("&")}if(r){var s=A.indexOf("#");s!==-1&&(A=A.slice(0,s)),A+=(A.indexOf("?")===-1?"?":"&")+r}return A}});var g9=E((dk,l9)=>{"use strict";var ZR=Oe();function Ks(){this.handlers=[]}Ks.prototype.use=function(A,t,a){return this.handlers.push({fulfilled:A,rejected:t,synchronous:a?a.synchronous:!1,runWhen:a?a.runWhen:null}),this.handlers.length-1};Ks.prototype.eject=function(A){this.handlers[A]&&(this.handlers[A]=null)};Ks.prototype.forEach=function(A){ZR.forEach(this.handlers,function(a){a!==null&&A(a)})};l9.exports=Ks});var u9=E((pk,c9)=>{"use strict";var jR=Oe();c9.exports=function(A,t){jR.forEach(A,function(r,i){i!==t&&i.toUpperCase()===t.toUpperCase()&&(A[t]=r,delete A[i])})}});var $s=E((lk,E9)=>{"use strict";E9.exports=function(A,t,a,r,i){return A.config=t,a&&(A.code=a),A.request=r,A.response=i,A.isAxiosError=!0,A.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},A}});var en=E((gk,Q9)=>{"use strict";var XR=$s();Q9.exports=function(A,t,a,r,i){var s=new Error(A);return XR(s,t,a,r,i)}});var c0=E((ck,C9)=>{"use strict";var zR=en();C9.exports=function(A,t,a){var r=a.config.validateStatus;!a.status||!r||r(a.status)?A(a):t(zR("Request failed with status code "+a.status,a.config,null,a.request,a))}});var h9=E((uk,B9)=>{"use strict";var An=Oe();B9.exports=An.isStandardBrowserEnv()?function(){return{write:function(t,a,r,i,s,n){var o=[];o.push(t+"="+encodeURIComponent(a)),An.isNumber(r)&&o.push("expires="+new Date(r).toGMTString()),An.isString(i)&&o.push("path="+i),An.isString(s)&&o.push("domain="+s),n===!0&&o.push("secure"),document.cookie=o.join("; ")},read:function(t){var a=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return a?decodeURIComponent(a[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var I9=E((Ek,m9)=>{"use strict";m9.exports=function(A){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(A)}});var w9=E((Qk,f9)=>{"use strict";f9.exports=function(A,t){return t?A.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):A}});var u0=E((Ck,y9)=>{"use strict";var KR=I9(),$R=w9();y9.exports=function(A,t){return A&&!KR(t)?$R(A,t):t}});var R9=E((Bk,D9)=>{"use strict";var E0=Oe(),ev=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];D9.exports=function(A){var t={},a,r,i;return A&&E0.forEach(A.split(` -`),function(n){if(i=n.indexOf(":"),a=E0.trim(n.substr(0,i)).toLowerCase(),r=E0.trim(n.substr(i+1)),a){if(t[a]&&ev.indexOf(a)>=0)return;a==="set-cookie"?t[a]=(t[a]?t[a]:[]).concat([r]):t[a]=t[a]?t[a]+", "+r:r}}),t}});var b9=E((hk,N9)=>{"use strict";var v9=Oe();N9.exports=v9.isStandardBrowserEnv()?function(){var A=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a"),a;function r(i){var s=i;return A&&(t.setAttribute("href",s),s=t.href),t.setAttribute("href",s),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}return a=r(window.location.href),function(s){var n=v9.isString(s)?r(s):s;return n.protocol===a.protocol&&n.host===a.host}}():function(){return function(){return!0}}()});var k9=E((mk,S9)=>{"use strict";var tn=Oe(),Av=c0(),tv=h9(),av=zs(),rv=u0(),iv=R9(),sv=b9(),Q0=en();S9.exports=function(A){return new Promise(function(a,r){var i=A.data,s=A.headers,n=A.responseType;tn.isFormData(i)&&delete s["Content-Type"];var o=new XMLHttpRequest;if(A.auth){var d=A.auth.username||"",l=A.auth.password?unescape(encodeURIComponent(A.auth.password)):"";s.Authorization="Basic "+btoa(d+":"+l)}var p=rv(A.baseURL,A.url);o.open(A.method.toUpperCase(),av(p,A.params,A.paramsSerializer),!0),o.timeout=A.timeout;function g(){if(o){var u="getAllResponseHeaders"in o?iv(o.getAllResponseHeaders()):null,Q=!n||n==="text"||n==="json"?o.responseText:o.response,B={data:Q,status:o.status,statusText:o.statusText,headers:u,config:A,request:o};Av(a,r,B),o=null}}if("onloadend"in o?o.onloadend=g:o.onreadystatechange=function(){!o||o.readyState!==4||o.status===0&&!(o.responseURL&&o.responseURL.indexOf("file:")===0)||setTimeout(g)},o.onabort=function(){o&&(r(Q0("Request aborted",A,"ECONNABORTED",o)),o=null)},o.onerror=function(){r(Q0("Network Error",A,null,o)),o=null},o.ontimeout=function(){var Q="timeout of "+A.timeout+"ms exceeded";A.timeoutErrorMessage&&(Q=A.timeoutErrorMessage),r(Q0(Q,A,A.transitional&&A.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",o)),o=null},tn.isStandardBrowserEnv()){var c=(A.withCredentials||sv(p))&&A.xsrfCookieName?tv.read(A.xsrfCookieName):void 0;c&&(s[A.xsrfHeaderName]=c)}"setRequestHeader"in o&&tn.forEach(s,function(Q,B){typeof i>"u"&&B.toLowerCase()==="content-type"?delete s[B]:o.setRequestHeader(B,Q)}),tn.isUndefined(A.withCredentials)||(o.withCredentials=!!A.withCredentials),n&&n!=="json"&&(o.responseType=A.responseType),typeof A.onDownloadProgress=="function"&&o.addEventListener("progress",A.onDownloadProgress),typeof A.onUploadProgress=="function"&&o.upload&&o.upload.addEventListener("progress",A.onUploadProgress),A.cancelToken&&A.cancelToken.promise.then(function(Q){o&&(o.abort(),r(Q),o=null)}),i||(i=null),o.send(i)})}});var U9=E((Ik,F9)=>{var Da=1e3,Ra=Da*60,va=Ra*60,f1=va*24,nv=f1*7,ov=f1*365.25;F9.exports=function(e,A){A=A||{};var t=typeof e;if(t==="string"&&e.length>0)return dv(e);if(t==="number"&&isFinite(e))return A.long?lv(e):pv(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function dv(e){if(e=String(e),!(e.length>100)){var A=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(A){var t=parseFloat(A[1]),a=(A[2]||"ms").toLowerCase();switch(a){case"years":case"year":case"yrs":case"yr":case"y":return t*ov;case"weeks":case"week":case"w":return t*nv;case"days":case"day":case"d":return t*f1;case"hours":case"hour":case"hrs":case"hr":case"h":return t*va;case"minutes":case"minute":case"mins":case"min":case"m":return t*Ra;case"seconds":case"second":case"secs":case"sec":case"s":return t*Da;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function pv(e){var A=Math.abs(e);return A>=f1?Math.round(e/f1)+"d":A>=va?Math.round(e/va)+"h":A>=Ra?Math.round(e/Ra)+"m":A>=Da?Math.round(e/Da)+"s":e+"ms"}function lv(e){var A=Math.abs(e);return A>=f1?an(e,A,f1,"day"):A>=va?an(e,A,va,"hour"):A>=Ra?an(e,A,Ra,"minute"):A>=Da?an(e,A,Da,"second"):e+" ms"}function an(e,A,t,a){var r=A>=t*1.5;return Math.round(e/t)+" "+a+(r?"s":"")}});var C0=E((fk,L9)=>{function gv(e){t.debug=t,t.default=t,t.coerce=o,t.disable=i,t.enable=r,t.enabled=s,t.humanize=U9(),t.destroy=d,Object.keys(e).forEach(l=>{t[l]=e[l]}),t.names=[],t.skips=[],t.formatters={};function A(l){let p=0;for(let g=0;g<l.length;g++)p=(p<<5)-p+l.charCodeAt(g),p|=0;return t.colors[Math.abs(p)%t.colors.length]}t.selectColor=A;function t(l){let p,g=null,c,u;function Q(...B){if(!Q.enabled)return;let C=Q,h=Number(new Date),f=h-(p||h);C.diff=f,C.prev=p,C.curr=h,p=h,B[0]=t.coerce(B[0]),typeof B[0]!="string"&&B.unshift("%O");let m=0;B[0]=B[0].replace(/%([a-zA-Z%])/g,(R,S)=>{if(R==="%%")return"%";m++;let x=t.formatters[S];if(typeof x=="function"){let me=B[m];R=x.call(C,me),B.splice(m,1),m--}return R}),t.formatArgs.call(C,B),(C.log||t.log).apply(C,B)}return Q.namespace=l,Q.useColors=t.useColors(),Q.color=t.selectColor(l),Q.extend=a,Q.destroy=t.destroy,Object.defineProperty(Q,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(c!==t.namespaces&&(c=t.namespaces,u=t.enabled(l)),u),set:B=>{g=B}}),typeof t.init=="function"&&t.init(Q),Q}function a(l,p){let g=t(this.namespace+(typeof p>"u"?":":p)+l);return g.log=this.log,g}function r(l){t.save(l),t.namespaces=l,t.names=[],t.skips=[];let p,g=(typeof l=="string"?l:"").split(/[\s,]+/),c=g.length;for(p=0;p<c;p++)g[p]&&(l=g[p].replace(/\*/g,".*?"),l[0]==="-"?t.skips.push(new RegExp("^"+l.slice(1)+"$")):t.names.push(new RegExp("^"+l+"$")))}function i(){let l=[...t.names.map(n),...t.skips.map(n).map(p=>"-"+p)].join(",");return t.enable(""),l}function s(l){if(l[l.length-1]==="*")return!0;let p,g;for(p=0,g=t.skips.length;p<g;p++)if(t.skips[p].test(l))return!1;for(p=0,g=t.names.length;p<g;p++)if(t.names[p].test(l))return!0;return!1}function n(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function o(l){return l instanceof Error?l.stack||l.message:l}function d(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}L9.exports=gv});var M9=E((gA,rn)=>{gA.formatArgs=uv;gA.save=Ev;gA.load=Qv;gA.useColors=cv;gA.storage=Cv();gA.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();gA.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function cv(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function uv(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+rn.exports.humanize(this.diff),!this.useColors)return;let A="color: "+this.color;e.splice(1,0,A,"color: inherit");let t=0,a=0;e[0].replace(/%[a-zA-Z%]/g,r=>{r!=="%%"&&(t++,r==="%c"&&(a=t))}),e.splice(a,0,A)}gA.log=console.debug||console.log||(()=>{});function Ev(e){try{e?gA.storage.setItem("debug",e):gA.storage.removeItem("debug")}catch{}}function Qv(){let e;try{e=gA.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function Cv(){try{return localStorage}catch{}}rn.exports=C0()(gA);var{formatters:Bv}=rn.exports;Bv.j=function(e){try{return JSON.stringify(e)}catch(A){return"[UnexpectedJSONParseError]: "+A.message}}});var V9=E((wk,T9)=>{"use strict";T9.exports=(e,A=process.argv)=>{let t=e.startsWith("-")?"":e.length===1?"-":"--",a=A.indexOf(t+e),r=A.indexOf("--");return a!==-1&&(r===-1||a<r)}});var G9=E((yk,J9)=>{"use strict";var hv=require("os"),Y9=require("tty"),bA=V9(),{env:De}=process,Pt;bA("no-color")||bA("no-colors")||bA("color=false")||bA("color=never")?Pt=0:(bA("color")||bA("colors")||bA("color=true")||bA("color=always"))&&(Pt=1);"FORCE_COLOR"in De&&(De.FORCE_COLOR==="true"?Pt=1:De.FORCE_COLOR==="false"?Pt=0:Pt=De.FORCE_COLOR.length===0?1:Math.min(parseInt(De.FORCE_COLOR,10),3));function B0(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function h0(e,A){if(Pt===0)return 0;if(bA("color=16m")||bA("color=full")||bA("color=truecolor"))return 3;if(bA("color=256"))return 2;if(e&&!A&&Pt===void 0)return 0;let t=Pt||0;if(De.TERM==="dumb")return t;if(process.platform==="win32"){let a=hv.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in De)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(a=>a in De)||De.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in De)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(De.TEAMCITY_VERSION)?1:0;if(De.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in De){let a=parseInt((De.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(De.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(De.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(De.TERM)||"COLORTERM"in De?1:t}function mv(e){let A=h0(e,e&&e.isTTY);return B0(A)}J9.exports={supportsColor:mv,stdout:B0(h0(!0,Y9.isatty(1))),stderr:B0(h0(!0,Y9.isatty(2)))}});var _9=E((ke,nn)=>{var Iv=require("tty"),sn=require("util");ke.init=Nv;ke.log=Dv;ke.formatArgs=wv;ke.save=Rv;ke.load=vv;ke.useColors=fv;ke.destroy=sn.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");ke.colors=[6,2,3,4,5,1];try{let e=G9();e&&(e.stderr||e).level>=2&&(ke.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}ke.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,A)=>{let t=A.substring(6).toLowerCase().replace(/_([a-z])/g,(r,i)=>i.toUpperCase()),a=process.env[A];return/^(yes|on|true|enabled)$/i.test(a)?a=!0:/^(no|off|false|disabled)$/i.test(a)?a=!1:a==="null"?a=null:a=Number(a),e[t]=a,e},{});function fv(){return"colors"in ke.inspectOpts?!!ke.inspectOpts.colors:Iv.isatty(process.stderr.fd)}function wv(e){let{namespace:A,useColors:t}=this;if(t){let a=this.color,r="\x1B[3"+(a<8?a:"8;5;"+a),i=` ${r};1m${A} \x1B[0m`;e[0]=i+e[0].split(` +Try the option "splitPunct" to split the text by punctuation.`)}l(e,p,g),p=g+1}return d};zp.default=nR});var j9=E(Ct=>{"use strict";var $p=Ct&&Ct.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ct,"__esModule",{value:!0});Ct.getAllAudioUrls=Ct.getAudioUrl=void 0;var Z9=$p(Xp()),oR=$p(Kp()),dR=$p(require("url")),pR=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n;if(Z9.default(e,r,s,o),e.length>200)throw new RangeError("text length ("+e.length+') should be less than 200 characters. Try "getAllAudioUrls(text, [option])" for long text.');return o+"/translate_tts"+dR.default.format({query:{ie:"UTF-8",q:e,tl:r,total:1,idx:0,textlen:e.length,client:"tw-ob",prev:"input",ttsspeed:s?.24:1}})};Ct.getAudioUrl=pR;var lR=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n,d=t.splitPunct,l=d===void 0?"":d;if(Z9.default(e,r,s,o),typeof l!="string")throw new TypeError("splitPunct should be a string");return oR.default(e,{splitPunct:l}).map(function(p){return{shortText:p,url:Ct.getAudioUrl(p,{lang:r,slow:s,host:o})}})};Ct.getAllAudioUrls=lR});var e0=E((IS,X9)=>{"use strict";X9.exports=function(A,t){return function(){for(var r=new Array(arguments.length),i=0;i<r.length;i++)r[i]=arguments[i];return A.apply(t,r)}}});var qe=E((fS,$9)=>{"use strict";var gR=e0(),Q1=Object.prototype.toString;function a0(e){return Q1.call(e)==="[object Array]"}function A0(e){return typeof e>"u"}function cR(e){return e!==null&&!A0(e)&&e.constructor!==null&&!A0(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function uR(e){return Q1.call(e)==="[object ArrayBuffer]"}function ER(e){return typeof FormData<"u"&&e instanceof FormData}function QR(e){var A;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?A=ArrayBuffer.isView(e):A=e&&e.buffer&&e.buffer instanceof ArrayBuffer,A}function CR(e){return typeof e=="string"}function mR(e){return typeof e=="number"}function z9(e){return e!==null&&typeof e=="object"}function Hs(e){if(Q1.call(e)!=="[object Object]")return!1;var A=Object.getPrototypeOf(e);return A===null||A===Object.prototype}function BR(e){return Q1.call(e)==="[object Date]"}function hR(e){return Q1.call(e)==="[object File]"}function IR(e){return Q1.call(e)==="[object Blob]"}function K9(e){return Q1.call(e)==="[object Function]"}function fR(e){return z9(e)&&K9(e.pipe)}function wR(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function yR(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function DR(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function r0(e,A){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),a0(e))for(var t=0,a=e.length;t<a;t++)A.call(null,e[t],t,e);else for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&A.call(null,e[r],r,e)}function t0(){var e={};function A(r,i){Hs(e[i])&&Hs(r)?e[i]=t0(e[i],r):Hs(r)?e[i]=t0({},r):a0(r)?e[i]=r.slice():e[i]=r}for(var t=0,a=arguments.length;t<a;t++)r0(arguments[t],A);return e}function RR(e,A,t){return r0(A,function(r,i){t&&typeof r=="function"?e[i]=gR(r,t):e[i]=r}),e}function vR(e){return e.charCodeAt(0)===65279&&(e=e.slice(1)),e}$9.exports={isArray:a0,isArrayBuffer:uR,isBuffer:cR,isFormData:ER,isArrayBufferView:QR,isString:CR,isNumber:mR,isObject:z9,isPlainObject:Hs,isUndefined:A0,isDate:BR,isFile:hR,isBlob:IR,isFunction:K9,isStream:fR,isURLSearchParams:wR,isStandardBrowserEnv:DR,forEach:r0,merge:t0,extend:RR,trim:yR,stripBOM:vR}});var Os=E((wS,AE)=>{"use strict";var ha=qe();function eE(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}AE.exports=function(A,t,a){if(!t)return A;var r;if(a)r=a(t);else if(ha.isURLSearchParams(t))r=t.toString();else{var i=[];ha.forEach(t,function(o,d){o===null||typeof o>"u"||(ha.isArray(o)?d=d+"[]":o=[o],ha.forEach(o,function(p){ha.isDate(p)?p=p.toISOString():ha.isObject(p)&&(p=JSON.stringify(p)),i.push(eE(d)+"="+eE(p))}))}),r=i.join("&")}if(r){var s=A.indexOf("#");s!==-1&&(A=A.slice(0,s)),A+=(A.indexOf("?")===-1?"?":"&")+r}return A}});var aE=E((yS,tE)=>{"use strict";var NR=qe();function Ps(){this.handlers=[]}Ps.prototype.use=function(A,t,a){return this.handlers.push({fulfilled:A,rejected:t,synchronous:a?a.synchronous:!1,runWhen:a?a.runWhen:null}),this.handlers.length-1};Ps.prototype.eject=function(A){this.handlers[A]&&(this.handlers[A]=null)};Ps.prototype.forEach=function(A){NR.forEach(this.handlers,function(a){a!==null&&A(a)})};tE.exports=Ps});var iE=E((DS,rE)=>{"use strict";var bR=qe();rE.exports=function(A,t){bR.forEach(A,function(r,i){i!==t&&i.toUpperCase()===t.toUpperCase()&&(A[t]=r,delete A[i])})}});var Ws=E((RS,sE)=>{"use strict";sE.exports=function(A,t,a,r,i){return A.config=t,a&&(A.code=a),A.request=r,A.response=i,A.isAxiosError=!0,A.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},A}});var Zs=E((vS,nE)=>{"use strict";var SR=Ws();nE.exports=function(A,t,a,r,i){var s=new Error(A);return SR(s,t,a,r,i)}});var i0=E((NS,oE)=>{"use strict";var kR=Zs();oE.exports=function(A,t,a){var r=a.config.validateStatus;!a.status||!r||r(a.status)?A(a):t(kR("Request failed with status code "+a.status,a.config,null,a.request,a))}});var pE=E((bS,dE)=>{"use strict";var js=qe();dE.exports=js.isStandardBrowserEnv()?function(){return{write:function(t,a,r,i,s,n){var o=[];o.push(t+"="+encodeURIComponent(a)),js.isNumber(r)&&o.push("expires="+new Date(r).toGMTString()),js.isString(i)&&o.push("path="+i),js.isString(s)&&o.push("domain="+s),n===!0&&o.push("secure"),document.cookie=o.join("; ")},read:function(t){var a=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return a?decodeURIComponent(a[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var gE=E((SS,lE)=>{"use strict";lE.exports=function(A){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(A)}});var uE=E((kS,cE)=>{"use strict";cE.exports=function(A,t){return t?A.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):A}});var s0=E((FS,EE)=>{"use strict";var FR=gE(),UR=uE();EE.exports=function(A,t){return A&&!FR(t)?UR(A,t):t}});var CE=E((US,QE)=>{"use strict";var n0=qe(),LR=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];QE.exports=function(A){var t={},a,r,i;return A&&n0.forEach(A.split(` +`),function(n){if(i=n.indexOf(":"),a=n0.trim(n.substr(0,i)).toLowerCase(),r=n0.trim(n.substr(i+1)),a){if(t[a]&&LR.indexOf(a)>=0)return;a==="set-cookie"?t[a]=(t[a]?t[a]:[]).concat([r]):t[a]=t[a]?t[a]+", "+r:r}}),t}});var hE=E((LS,BE)=>{"use strict";var mE=qe();BE.exports=mE.isStandardBrowserEnv()?function(){var A=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a"),a;function r(i){var s=i;return A&&(t.setAttribute("href",s),s=t.href),t.setAttribute("href",s),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}return a=r(window.location.href),function(s){var n=mE.isString(s)?r(s):s;return n.protocol===a.protocol&&n.host===a.host}}():function(){return function(){return!0}}()});var fE=E((MS,IE)=>{"use strict";var Xs=qe(),MR=i0(),TR=pE(),VR=Os(),YR=s0(),JR=CE(),GR=hE(),o0=Zs();IE.exports=function(A){return new Promise(function(a,r){var i=A.data,s=A.headers,n=A.responseType;Xs.isFormData(i)&&delete s["Content-Type"];var o=new XMLHttpRequest;if(A.auth){var d=A.auth.username||"",l=A.auth.password?unescape(encodeURIComponent(A.auth.password)):"";s.Authorization="Basic "+btoa(d+":"+l)}var p=YR(A.baseURL,A.url);o.open(A.method.toUpperCase(),VR(p,A.params,A.paramsSerializer),!0),o.timeout=A.timeout;function g(){if(o){var u="getAllResponseHeaders"in o?JR(o.getAllResponseHeaders()):null,Q=!n||n==="text"||n==="json"?o.responseText:o.response,m={data:Q,status:o.status,statusText:o.statusText,headers:u,config:A,request:o};MR(a,r,m),o=null}}if("onloadend"in o?o.onloadend=g:o.onreadystatechange=function(){!o||o.readyState!==4||o.status===0&&!(o.responseURL&&o.responseURL.indexOf("file:")===0)||setTimeout(g)},o.onabort=function(){o&&(r(o0("Request aborted",A,"ECONNABORTED",o)),o=null)},o.onerror=function(){r(o0("Network Error",A,null,o)),o=null},o.ontimeout=function(){var Q="timeout of "+A.timeout+"ms exceeded";A.timeoutErrorMessage&&(Q=A.timeoutErrorMessage),r(o0(Q,A,A.transitional&&A.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",o)),o=null},Xs.isStandardBrowserEnv()){var c=(A.withCredentials||GR(p))&&A.xsrfCookieName?TR.read(A.xsrfCookieName):void 0;c&&(s[A.xsrfHeaderName]=c)}"setRequestHeader"in o&&Xs.forEach(s,function(Q,m){typeof i>"u"&&m.toLowerCase()==="content-type"?delete s[m]:o.setRequestHeader(m,Q)}),Xs.isUndefined(A.withCredentials)||(o.withCredentials=!!A.withCredentials),n&&n!=="json"&&(o.responseType=A.responseType),typeof A.onDownloadProgress=="function"&&o.addEventListener("progress",A.onDownloadProgress),typeof A.onUploadProgress=="function"&&o.upload&&o.upload.addEventListener("progress",A.onUploadProgress),A.cancelToken&&A.cancelToken.promise.then(function(Q){o&&(o.abort(),r(Q),o=null)}),i||(i=null),o.send(i)})}});var yE=E((TS,wE)=>{var Ia=1e3,fa=Ia*60,wa=fa*60,C1=wa*24,xR=C1*7,_R=C1*365.25;wE.exports=function(e,A){A=A||{};var t=typeof e;if(t==="string"&&e.length>0)return qR(e);if(t==="number"&&isFinite(e))return A.long?OR(e):HR(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function qR(e){if(e=String(e),!(e.length>100)){var A=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(A){var t=parseFloat(A[1]),a=(A[2]||"ms").toLowerCase();switch(a){case"years":case"year":case"yrs":case"yr":case"y":return t*_R;case"weeks":case"week":case"w":return t*xR;case"days":case"day":case"d":return t*C1;case"hours":case"hour":case"hrs":case"hr":case"h":return t*wa;case"minutes":case"minute":case"mins":case"min":case"m":return t*fa;case"seconds":case"second":case"secs":case"sec":case"s":return t*Ia;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function HR(e){var A=Math.abs(e);return A>=C1?Math.round(e/C1)+"d":A>=wa?Math.round(e/wa)+"h":A>=fa?Math.round(e/fa)+"m":A>=Ia?Math.round(e/Ia)+"s":e+"ms"}function OR(e){var A=Math.abs(e);return A>=C1?zs(e,A,C1,"day"):A>=wa?zs(e,A,wa,"hour"):A>=fa?zs(e,A,fa,"minute"):A>=Ia?zs(e,A,Ia,"second"):e+" ms"}function zs(e,A,t,a){var r=A>=t*1.5;return Math.round(e/t)+" "+a+(r?"s":"")}});var d0=E((VS,DE)=>{function PR(e){t.debug=t,t.default=t,t.coerce=o,t.disable=i,t.enable=r,t.enabled=s,t.humanize=yE(),t.destroy=d,Object.keys(e).forEach(l=>{t[l]=e[l]}),t.names=[],t.skips=[],t.formatters={};function A(l){let p=0;for(let g=0;g<l.length;g++)p=(p<<5)-p+l.charCodeAt(g),p|=0;return t.colors[Math.abs(p)%t.colors.length]}t.selectColor=A;function t(l){let p,g=null,c,u;function Q(...m){if(!Q.enabled)return;let C=Q,B=Number(new Date),w=B-(p||B);C.diff=w,C.prev=p,C.curr=B,p=B,m[0]=t.coerce(m[0]),typeof m[0]!="string"&&m.unshift("%O");let I=0;m[0]=m[0].replace(/%([a-zA-Z%])/g,(b,F)=>{if(b==="%%")return"%";I++;let x=t.formatters[F];if(typeof x=="function"){let he=m[I];b=x.call(C,he),m.splice(I,1),I--}return b}),t.formatArgs.call(C,m),(C.log||t.log).apply(C,m)}return Q.namespace=l,Q.useColors=t.useColors(),Q.color=t.selectColor(l),Q.extend=a,Q.destroy=t.destroy,Object.defineProperty(Q,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(c!==t.namespaces&&(c=t.namespaces,u=t.enabled(l)),u),set:m=>{g=m}}),typeof t.init=="function"&&t.init(Q),Q}function a(l,p){let g=t(this.namespace+(typeof p>"u"?":":p)+l);return g.log=this.log,g}function r(l){t.save(l),t.namespaces=l,t.names=[],t.skips=[];let p,g=(typeof l=="string"?l:"").split(/[\s,]+/),c=g.length;for(p=0;p<c;p++)g[p]&&(l=g[p].replace(/\*/g,".*?"),l[0]==="-"?t.skips.push(new RegExp("^"+l.slice(1)+"$")):t.names.push(new RegExp("^"+l+"$")))}function i(){let l=[...t.names.map(n),...t.skips.map(n).map(p=>"-"+p)].join(",");return t.enable(""),l}function s(l){if(l[l.length-1]==="*")return!0;let p,g;for(p=0,g=t.skips.length;p<g;p++)if(t.skips[p].test(l))return!1;for(p=0,g=t.names.length;p<g;p++)if(t.names[p].test(l))return!0;return!1}function n(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function o(l){return l instanceof Error?l.stack||l.message:l}function d(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}DE.exports=PR});var RE=E((dA,Ks)=>{dA.formatArgs=ZR;dA.save=jR;dA.load=XR;dA.useColors=WR;dA.storage=zR();dA.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();dA.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function WR(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function ZR(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+Ks.exports.humanize(this.diff),!this.useColors)return;let A="color: "+this.color;e.splice(1,0,A,"color: inherit");let t=0,a=0;e[0].replace(/%[a-zA-Z%]/g,r=>{r!=="%%"&&(t++,r==="%c"&&(a=t))}),e.splice(a,0,A)}dA.log=console.debug||console.log||(()=>{});function jR(e){try{e?dA.storage.setItem("debug",e):dA.storage.removeItem("debug")}catch{}}function XR(){let e;try{e=dA.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function zR(){try{return localStorage}catch{}}Ks.exports=d0()(dA);var{formatters:KR}=Ks.exports;KR.j=function(e){try{return JSON.stringify(e)}catch(A){return"[UnexpectedJSONParseError]: "+A.message}}});var NE=E((YS,vE)=>{"use strict";vE.exports=(e,A=process.argv)=>{let t=e.startsWith("-")?"":e.length===1?"-":"--",a=A.indexOf(t+e),r=A.indexOf("--");return a!==-1&&(r===-1||a<r)}});var kE=E((JS,SE)=>{"use strict";var $R=require("os"),bE=require("tty"),DA=NE(),{env:De}=process,Jt;DA("no-color")||DA("no-colors")||DA("color=false")||DA("color=never")?Jt=0:(DA("color")||DA("colors")||DA("color=true")||DA("color=always"))&&(Jt=1);"FORCE_COLOR"in De&&(De.FORCE_COLOR==="true"?Jt=1:De.FORCE_COLOR==="false"?Jt=0:Jt=De.FORCE_COLOR.length===0?1:Math.min(parseInt(De.FORCE_COLOR,10),3));function p0(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function l0(e,A){if(Jt===0)return 0;if(DA("color=16m")||DA("color=full")||DA("color=truecolor"))return 3;if(DA("color=256"))return 2;if(e&&!A&&Jt===void 0)return 0;let t=Jt||0;if(De.TERM==="dumb")return t;if(process.platform==="win32"){let a=$R.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in De)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(a=>a in De)||De.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in De)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(De.TEAMCITY_VERSION)?1:0;if(De.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in De){let a=parseInt((De.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(De.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(De.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(De.TERM)||"COLORTERM"in De?1:t}function ev(e){let A=l0(e,e&&e.isTTY);return p0(A)}SE.exports={supportsColor:ev,stdout:p0(l0(!0,bE.isatty(1))),stderr:p0(l0(!0,bE.isatty(2)))}});var UE=E((ke,en)=>{var Av=require("tty"),$s=require("util");ke.init=ov;ke.log=iv;ke.formatArgs=av;ke.save=sv;ke.load=nv;ke.useColors=tv;ke.destroy=$s.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");ke.colors=[6,2,3,4,5,1];try{let e=kE();e&&(e.stderr||e).level>=2&&(ke.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}ke.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,A)=>{let t=A.substring(6).toLowerCase().replace(/_([a-z])/g,(r,i)=>i.toUpperCase()),a=process.env[A];return/^(yes|on|true|enabled)$/i.test(a)?a=!0:/^(no|off|false|disabled)$/i.test(a)?a=!1:a==="null"?a=null:a=Number(a),e[t]=a,e},{});function tv(){return"colors"in ke.inspectOpts?!!ke.inspectOpts.colors:Av.isatty(process.stderr.fd)}function av(e){let{namespace:A,useColors:t}=this;if(t){let a=this.color,r="\x1B[3"+(a<8?a:"8;5;"+a),i=` ${r};1m${A} \x1B[0m`;e[0]=i+e[0].split(` `).join(` -`+i),e.push(r+"m+"+nn.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=yv()+A+" "+e[0]}function yv(){return ke.inspectOpts.hideDate?"":new Date().toISOString()+" "}function Dv(...e){return process.stderr.write(sn.format(...e)+` -`)}function Rv(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function vv(){return process.env.DEBUG}function Nv(e){e.inspectOpts={};let A=Object.keys(ke.inspectOpts);for(let t=0;t<A.length;t++)e.inspectOpts[A[t]]=ke.inspectOpts[A[t]]}nn.exports=C0()(ke);var{formatters:x9}=nn.exports;x9.o=function(e){return this.inspectOpts.colors=this.useColors,sn.inspect(e,this.inspectOpts).split(` -`).map(A=>A.trim()).join(" ")};x9.O=function(e){return this.inspectOpts.colors=this.useColors,sn.inspect(e,this.inspectOpts)}});var on=E((Dk,m0)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?m0.exports=M9():m0.exports=_9()});var H9=E((Rk,q9)=>{var Ur;q9.exports=function(){if(!Ur){try{Ur=on()("follow-redirects")}catch{}typeof Ur!="function"&&(Ur=function(){})}Ur.apply(null,arguments)}});var U0=E((vk,F0)=>{var Tr=require("url"),Lr=Tr.URL,bv=require("http"),Sv=require("https"),D0=require("stream").Writable,R0=require("assert"),O9=H9(),v0=!1;try{R0(new Lr)}catch(e){v0=e.code==="ERR_INVALID_URL"}var kv=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],N0=["abort","aborted","connect","error","socket","timeout"],b0=Object.create(null);N0.forEach(function(e){b0[e]=function(A,t,a){this._redirectable.emit(e,A,t,a)}});var f0=Vr("ERR_INVALID_URL","Invalid URL",TypeError),w0=Vr("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),Fv=Vr("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",w0),Uv=Vr("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),Lv=Vr("ERR_STREAM_WRITE_AFTER_END","write after end"),Mv=D0.prototype.destroy||W9;function Ke(e,A){D0.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],A&&this.on("response",A);var t=this;this._onNativeResponse=function(a){try{t._processResponse(a)}catch(r){t.emit("error",r instanceof w0?r:new w0({cause:r}))}},this._performRequest()}Ke.prototype=Object.create(D0.prototype);Ke.prototype.abort=function(){k0(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};Ke.prototype.destroy=function(e){return k0(this._currentRequest,e),Mv.call(this,e),this};Ke.prototype.write=function(e,A,t){if(this._ending)throw new Lv;if(!w1(e)&&!Yv(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(Mr(A)&&(t=A,A=null),e.length===0){t&&t();return}this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:A}),this._currentRequest.write(e,A,t)):(this.emit("error",new Uv),this.abort())};Ke.prototype.end=function(e,A,t){if(Mr(e)?(t=e,e=A=null):Mr(A)&&(t=A,A=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,t);else{var a=this,r=this._currentRequest;this.write(e,A,function(){a._ended=!0,r.end(null,null,t)}),this._ending=!0}};Ke.prototype.setHeader=function(e,A){this._options.headers[e]=A,this._currentRequest.setHeader(e,A)};Ke.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};Ke.prototype.setTimeout=function(e,A){var t=this;function a(s){s.setTimeout(e),s.removeListener("timeout",s.destroy),s.addListener("timeout",s.destroy)}function r(s){t._timeout&&clearTimeout(t._timeout),t._timeout=setTimeout(function(){t.emit("timeout"),i()},e),a(s)}function i(){t._timeout&&(clearTimeout(t._timeout),t._timeout=null),t.removeListener("abort",i),t.removeListener("error",i),t.removeListener("response",i),t.removeListener("close",i),A&&t.removeListener("timeout",A),t.socket||t._currentRequest.removeListener("socket",r)}return A&&this.on("timeout",A),this.socket?r(this.socket):this._currentRequest.once("socket",r),this.on("socket",a),this.on("abort",i),this.on("error",i),this.on("response",i),this.on("close",i),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){Ke.prototype[e]=function(A,t){return this._currentRequest[e](A,t)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(Ke.prototype,e,{get:function(){return this._currentRequest[e]}})});Ke.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var A=e.path.indexOf("?");A<0?e.pathname=e.path:(e.pathname=e.path.substring(0,A),e.search=e.path.substring(A))}};Ke.prototype._performRequest=function(){var e=this._options.protocol,A=this._options.nativeProtocols[e];if(!A)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var t=e.slice(0,-1);this._options.agent=this._options.agents[t]}var a=this._currentRequest=A.request(this._options,this._onNativeResponse);a._redirectable=this;for(var r of N0)a.on(r,b0[r]);if(this._currentUrl=/^\//.test(this._options.path)?Tr.format(this._options):this._options.path,this._isRedirect){var i=0,s=this,n=this._requestBodyBuffers;(function o(d){if(a===s._currentRequest)if(d)s.emit("error",d);else if(i<n.length){var l=n[i++];a.finished||a.write(l.data,l.encoding,o)}else s._ended&&a.end()})()}};Ke.prototype._processResponse=function(e){var A=e.statusCode;this._options.trackRedirects&&this._redirects.push({url:this._currentUrl,headers:e.headers,statusCode:A});var t=e.headers.location;if(!t||this._options.followRedirects===!1||A<300||A>=400){e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[];return}if(k0(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new Fv;var a,r=this._options.beforeRedirect;r&&(a=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var i=this._options.method;((A===301||A===302)&&this._options.method==="POST"||A===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],I0(/^content-/i,this._options.headers));var s=I0(/^host$/i,this._options.headers),n=S0(this._currentUrl),o=s||n.host,d=/^\w+:/.test(t)?this._currentUrl:Tr.format(Object.assign(n,{host:o})),l=Tv(t,d);if(O9("redirecting to",l.href),this._isRedirect=!0,y0(l,this._options),(l.protocol!==n.protocol&&l.protocol!=="https:"||l.host!==o&&!Vv(l.host,o))&&I0(/^(?:authorization|cookie)$/i,this._options.headers),Mr(r)){var p={headers:e.headers,statusCode:A},g={url:d,method:i,headers:a};r(this._options,p,g),this._sanitizeOptions(this._options)}this._performRequest()};function P9(e){var A={maxRedirects:21,maxBodyLength:10485760},t={};return Object.keys(e).forEach(function(a){var r=a+":",i=t[r]=e[a],s=A[a]=Object.create(i);function n(d,l,p){return Jv(d)?d=y0(d):w1(d)?d=y0(S0(d)):(p=l,l=Z9(d),d={protocol:r}),Mr(l)&&(p=l,l=null),l=Object.assign({maxRedirects:A.maxRedirects,maxBodyLength:A.maxBodyLength},d,l),l.nativeProtocols=t,!w1(l.host)&&!w1(l.hostname)&&(l.hostname="::1"),R0.equal(l.protocol,r,"protocol mismatch"),O9("options",l),new Ke(l,p)}function o(d,l,p){var g=s.request(d,l,p);return g.end(),g}Object.defineProperties(s,{request:{value:n,configurable:!0,enumerable:!0,writable:!0},get:{value:o,configurable:!0,enumerable:!0,writable:!0}})}),A}function W9(){}function S0(e){var A;if(v0)A=new Lr(e);else if(A=Z9(Tr.parse(e)),!w1(A.protocol))throw new f0({input:e});return A}function Tv(e,A){return v0?new Lr(e,A):S0(Tr.resolve(A,e))}function Z9(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new f0({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new f0({input:e.href||e});return e}function y0(e,A){var t=A||{};for(var a of kv)t[a]=e[a];return t.hostname.startsWith("[")&&(t.hostname=t.hostname.slice(1,-1)),t.port!==""&&(t.port=Number(t.port)),t.path=t.search?t.pathname+t.search:t.pathname,t}function I0(e,A){var t;for(var a in A)e.test(a)&&(t=A[a],delete A[a]);return t===null||typeof t>"u"?void 0:String(t).trim()}function Vr(e,A,t){function a(r){Error.captureStackTrace(this,this.constructor),Object.assign(this,r||{}),this.code=e,this.message=this.cause?A+": "+this.cause.message:A}return a.prototype=new(t||Error),Object.defineProperties(a.prototype,{constructor:{value:a,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),a}function k0(e,A){for(var t of N0)e.removeListener(t,b0[t]);e.on("error",W9),e.destroy(A)}function Vv(e,A){R0(w1(e)&&w1(A));var t=e.length-A.length-1;return t>0&&e[t]==="."&&e.endsWith(A)}function w1(e){return typeof e=="string"||e instanceof String}function Mr(e){return typeof e=="function"}function Yv(e){return typeof e=="object"&&"length"in e}function Jv(e){return Lr&&e instanceof Lr}F0.exports=P9({http:bv,https:Sv});F0.exports.wrap=P9});var L0=E((Nk,Gv)=>{Gv.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var e3=E((bk,$9)=>{"use strict";var Yr=Oe(),j9=c0(),xv=u0(),_v=zs(),qv=require("http"),Hv=require("https"),Ov=U0().http,Pv=U0().https,X9=require("url"),Wv=require("zlib"),Zv=L0(),dn=en(),M0=$s(),z9=/https:?/;function K9(e,A,t){if(e.hostname=A.host,e.host=A.host,e.port=A.port,e.path=t,A.auth){var a=Buffer.from(A.auth.username+":"+A.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.beforeRedirect=function(i){i.headers.host=i.host,K9(i,A,i.href)}}$9.exports=function(A){return new Promise(function(a,r){var i=function(M){a(M)},s=function(M){r(M)},n=A.data,o=A.headers;if("User-Agent"in o||"user-agent"in o?!o["User-Agent"]&&!o["user-agent"]&&(delete o["User-Agent"],delete o["user-agent"]):o["User-Agent"]="axios/"+Zv.version,n&&!Yr.isStream(n)){if(!Buffer.isBuffer(n))if(Yr.isArrayBuffer(n))n=Buffer.from(new Uint8Array(n));else if(Yr.isString(n))n=Buffer.from(n,"utf-8");else return s(dn("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",A));o["Content-Length"]=n.length}var d=void 0;if(A.auth){var l=A.auth.username||"",p=A.auth.password||"";d=l+":"+p}var g=xv(A.baseURL,A.url),c=X9.parse(g),u=c.protocol||"http:";if(!d&&c.auth){var Q=c.auth.split(":"),B=Q[0]||"",C=Q[1]||"";d=B+":"+C}d&&delete o.Authorization;var h=z9.test(u),f=h?A.httpsAgent:A.httpAgent,m={path:_v(c.path,A.params,A.paramsSerializer).replace(/^\?/,""),method:A.method.toUpperCase(),headers:o,agent:f,agents:{http:A.httpAgent,https:A.httpsAgent},auth:d};A.socketPath?m.socketPath=A.socketPath:(m.hostname=c.hostname,m.port=c.port);var w=A.proxy;if(!w&&w!==!1){var R=u.slice(0,-1)+"_proxy",S=process.env[R]||process.env[R.toUpperCase()];if(S){var x=X9.parse(S),me=process.env.no_proxy||process.env.NO_PROXY,Qe=!0;if(me){var Dt=me.split(",").map(function(M){return M.trim()});Qe=!Dt.some(function(M){return M?M==="*"||M[0]==="."&&c.hostname.substr(c.hostname.length-M.length)===M?!0:c.hostname===M:!1})}if(Qe&&(w={host:x.hostname,port:x.port,protocol:x.protocol},x.auth)){var Re=x.auth.split(":");w.auth={username:Re[0],password:Re[1]}}}}w&&(m.headers.host=c.hostname+(c.port?":"+c.port:""),K9(m,w,u+"//"+c.hostname+(c.port?":"+c.port:"")+m.path));var de,EA=h&&(w?z9.test(w.protocol):!0);A.transport?de=A.transport:A.maxRedirects===0?de=EA?Hv:qv:(A.maxRedirects&&(m.maxRedirects=A.maxRedirects),de=EA?Pv:Ov),A.maxBodyLength>-1&&(m.maxBodyLength=A.maxBodyLength);var W=de.request(m,function(M){if(!W.aborted){var GA=M,O=M.req||W;if(M.statusCode!==204&&O.method!=="HEAD"&&A.decompress!==!1)switch(M.headers["content-encoding"]){case"gzip":case"compress":case"deflate":GA=GA.pipe(Wv.createUnzip()),delete M.headers["content-encoding"];break}var eA={status:M.statusCode,statusText:M.statusMessage,headers:M.headers,config:A,request:O};if(A.responseType==="stream")eA.data=GA,j9(i,s,eA);else{var W0=[],Z0=0;GA.on("data",function(xA){W0.push(xA),Z0+=xA.length,A.maxContentLength>-1&&Z0>A.maxContentLength&&(GA.destroy(),s(dn("maxContentLength size of "+A.maxContentLength+" exceeded",A,null,O)))}),GA.on("error",function(xA){W.aborted||s(M0(xA,A,null,O))}),GA.on("end",function(){var xA=Buffer.concat(W0);A.responseType!=="arraybuffer"&&(xA=xA.toString(A.responseEncoding),(!A.responseEncoding||A.responseEncoding==="utf8")&&(xA=Yr.stripBOM(xA))),eA.data=xA,j9(i,s,eA)})}}});if(W.on("error",function(M){W.aborted&&M.code!=="ERR_FR_TOO_MANY_REDIRECTS"||s(M0(M,A,null,W))}),A.timeout){var Ae=parseInt(A.timeout,10);if(isNaN(Ae)){s(dn("error trying to parse `config.timeout` to int",A,"ERR_PARSE_TIMEOUT",W));return}W.setTimeout(Ae,function(){W.abort(),s(dn("timeout of "+Ae+"ms exceeded",A,A.transitional&&A.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",W))})}A.cancelToken&&A.cancelToken.promise.then(function(M){W.aborted||(W.abort(),s(M))}),Yr.isStream(n)?n.on("error",function(M){s(M0(M,A,null,W))}).pipe(W):W.end(n)})}});var ln=E((Sk,a3)=>{"use strict";var Fe=Oe(),A3=u9(),jv=$s(),Xv={"Content-Type":"application/x-www-form-urlencoded"};function t3(e,A){!Fe.isUndefined(e)&&Fe.isUndefined(e["Content-Type"])&&(e["Content-Type"]=A)}function zv(){var e;return typeof XMLHttpRequest<"u"?e=k9():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=e3()),e}function Kv(e,A,t){if(Fe.isString(e))try{return(A||JSON.parse)(e),Fe.trim(e)}catch(a){if(a.name!=="SyntaxError")throw a}return(t||JSON.stringify)(e)}var pn={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:zv(),transformRequest:[function(A,t){return A3(t,"Accept"),A3(t,"Content-Type"),Fe.isFormData(A)||Fe.isArrayBuffer(A)||Fe.isBuffer(A)||Fe.isStream(A)||Fe.isFile(A)||Fe.isBlob(A)?A:Fe.isArrayBufferView(A)?A.buffer:Fe.isURLSearchParams(A)?(t3(t,"application/x-www-form-urlencoded;charset=utf-8"),A.toString()):Fe.isObject(A)||t&&t["Content-Type"]==="application/json"?(t3(t,"application/json"),Kv(A)):A}],transformResponse:[function(A){var t=this.transitional,a=t&&t.silentJSONParsing,r=t&&t.forcedJSONParsing,i=!a&&this.responseType==="json";if(i||r&&Fe.isString(A)&&A.length)try{return JSON.parse(A)}catch(s){if(i)throw s.name==="SyntaxError"?jv(s,this,"E_JSON_PARSE"):s}return A}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(A){return A>=200&&A<300}};pn.headers={common:{Accept:"application/json, text/plain, */*"}};Fe.forEach(["delete","get","head"],function(A){pn.headers[A]={}});Fe.forEach(["post","put","patch"],function(A){pn.headers[A]=Fe.merge(Xv)});a3.exports=pn});var i3=E((kk,r3)=>{"use strict";var $v=Oe(),eN=ln();r3.exports=function(A,t,a){var r=this||eN;return $v.forEach(a,function(s){A=s.call(r,A,t)}),A}});var T0=E((Fk,s3)=>{"use strict";s3.exports=function(A){return!!(A&&A.__CANCEL__)}});var d3=E((Uk,o3)=>{"use strict";var n3=Oe(),V0=i3(),AN=T0(),tN=ln();function Y0(e){e.cancelToken&&e.cancelToken.throwIfRequested()}o3.exports=function(A){Y0(A),A.headers=A.headers||{},A.data=V0.call(A,A.data,A.headers,A.transformRequest),A.headers=n3.merge(A.headers.common||{},A.headers[A.method]||{},A.headers),n3.forEach(["delete","get","head","post","put","patch","common"],function(r){delete A.headers[r]});var t=A.adapter||tN.adapter;return t(A).then(function(r){return Y0(A),r.data=V0.call(A,r.data,r.headers,A.transformResponse),r},function(r){return AN(r)||(Y0(A),r&&r.response&&(r.response.data=V0.call(A,r.response.data,r.response.headers,A.transformResponse))),Promise.reject(r)})}});var J0=E((Lk,p3)=>{"use strict";var Te=Oe();p3.exports=function(A,t){t=t||{};var a={},r=["url","method","data"],i=["headers","auth","proxy","params"],s=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],n=["validateStatus"];function o(g,c){return Te.isPlainObject(g)&&Te.isPlainObject(c)?Te.merge(g,c):Te.isPlainObject(c)?Te.merge({},c):Te.isArray(c)?c.slice():c}function d(g){Te.isUndefined(t[g])?Te.isUndefined(A[g])||(a[g]=o(void 0,A[g])):a[g]=o(A[g],t[g])}Te.forEach(r,function(c){Te.isUndefined(t[c])||(a[c]=o(void 0,t[c]))}),Te.forEach(i,d),Te.forEach(s,function(c){Te.isUndefined(t[c])?Te.isUndefined(A[c])||(a[c]=o(void 0,A[c])):a[c]=o(void 0,t[c])}),Te.forEach(n,function(c){c in t?a[c]=o(A[c],t[c]):c in A&&(a[c]=o(void 0,A[c]))});var l=r.concat(i).concat(s).concat(n),p=Object.keys(A).concat(Object.keys(t)).filter(function(c){return l.indexOf(c)===-1});return Te.forEach(p,d),a}});var E3=E((Mk,u3)=>{"use strict";var g3=L0(),G0={};["object","boolean","number","function","string","symbol"].forEach(function(e,A){G0[e]=function(a){return typeof a===e||"a"+(A<1?"n ":" ")+e}});var l3={},aN=g3.version.split(".");function c3(e,A){for(var t=A?A.split("."):aN,a=e.split("."),r=0;r<3;r++){if(t[r]>a[r])return!0;if(t[r]<a[r])return!1}return!1}G0.transitional=function(A,t,a){var r=t&&c3(t);function i(s,n){return"[Axios v"+g3.version+"] Transitional option '"+s+"'"+n+(a?". "+a:"")}return function(s,n,o){if(A===!1)throw new Error(i(n," has been removed in "+t));return r&&!l3[n]&&(l3[n]=!0,console.warn(i(n," has been deprecated since v"+t+" and will be removed in the near future"))),A?A(s,n,o):!0}};function rN(e,A,t){if(typeof e!="object")throw new TypeError("options must be an object");for(var a=Object.keys(e),r=a.length;r-- >0;){var i=a[r],s=A[i];if(s){var n=e[i],o=n===void 0||s(n,i,e);if(o!==!0)throw new TypeError("option "+i+" must be "+o);continue}if(t!==!0)throw Error("Unknown option "+i)}}u3.exports={isOlderVersion:c3,assertOptions:rN,validators:G0}});var I3=E((Tk,m3)=>{"use strict";var B3=Oe(),iN=zs(),Q3=g9(),C3=d3(),gn=J0(),h3=E3(),Na=h3.validators;function Jr(e){this.defaults=e,this.interceptors={request:new Q3,response:new Q3}}Jr.prototype.request=function(A){typeof A=="string"?(A=arguments[1]||{},A.url=arguments[0]):A=A||{},A=gn(this.defaults,A),A.method?A.method=A.method.toLowerCase():this.defaults.method?A.method=this.defaults.method.toLowerCase():A.method="get";var t=A.transitional;t!==void 0&&h3.assertOptions(t,{silentJSONParsing:Na.transitional(Na.boolean,"1.0.0"),forcedJSONParsing:Na.transitional(Na.boolean,"1.0.0"),clarifyTimeoutError:Na.transitional(Na.boolean,"1.0.0")},!1);var a=[],r=!0;this.interceptors.request.forEach(function(g){typeof g.runWhen=="function"&&g.runWhen(A)===!1||(r=r&&g.synchronous,a.unshift(g.fulfilled,g.rejected))});var i=[];this.interceptors.response.forEach(function(g){i.push(g.fulfilled,g.rejected)});var s;if(!r){var n=[C3,void 0];for(Array.prototype.unshift.apply(n,a),n=n.concat(i),s=Promise.resolve(A);n.length;)s=s.then(n.shift(),n.shift());return s}for(var o=A;a.length;){var d=a.shift(),l=a.shift();try{o=d(o)}catch(p){l(p);break}}try{s=C3(o)}catch(p){return Promise.reject(p)}for(;i.length;)s=s.then(i.shift(),i.shift());return s};Jr.prototype.getUri=function(A){return A=gn(this.defaults,A),iN(A.url,A.params,A.paramsSerializer).replace(/^\?/,"")};B3.forEach(["delete","get","head","options"],function(A){Jr.prototype[A]=function(t,a){return this.request(gn(a||{},{method:A,url:t,data:(a||{}).data}))}});B3.forEach(["post","put","patch"],function(A){Jr.prototype[A]=function(t,a,r){return this.request(gn(r||{},{method:A,url:t,data:a}))}});m3.exports=Jr});var _0=E((Vk,f3)=>{"use strict";function x0(e){this.message=e}x0.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};x0.prototype.__CANCEL__=!0;f3.exports=x0});var y3=E((Yk,w3)=>{"use strict";var sN=_0();function cn(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var A;this.promise=new Promise(function(r){A=r});var t=this;e(function(r){t.reason||(t.reason=new sN(r),A(t.reason))})}cn.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};cn.source=function(){var A,t=new cn(function(r){A=r});return{token:t,cancel:A}};w3.exports=cn});var R3=E((Jk,D3)=>{"use strict";D3.exports=function(A){return function(a){return A.apply(null,a)}}});var N3=E((Gk,v3)=>{"use strict";v3.exports=function(A){return typeof A=="object"&&A.isAxiosError===!0}});var k3=E((xk,q0)=>{"use strict";var b3=Oe(),nN=o0(),un=I3(),oN=J0(),dN=ln();function S3(e){var A=new un(e),t=nN(un.prototype.request,A);return b3.extend(t,un.prototype,A),b3.extend(t,A),t}var YA=S3(dN);YA.Axios=un;YA.create=function(A){return S3(oN(YA.defaults,A))};YA.Cancel=_0();YA.CancelToken=y3();YA.isCancel=T0();YA.all=function(A){return Promise.all(A)};YA.spread=R3();YA.isAxiosError=N3();q0.exports=YA;q0.exports.default=YA});var U3=E((_k,F3)=>{F3.exports=k3()});var L3=E((exports,module)=>{"use strict";var __awaiter=exports&&exports.__awaiter||function(e,A,t,a){function r(i){return i instanceof t?i:new t(function(s){s(i)})}return new(t||(t=Promise))(function(i,s){function n(l){try{d(a.next(l))}catch(p){s(p)}}function o(l){try{d(a.throw(l))}catch(p){s(p)}}function d(l){l.done?i(l.value):r(l.value).then(n,o)}d((a=a.apply(e,A||[])).next())})},__generator=exports&&exports.__generator||function(e,A){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},a,r,i,s;return s={next:n(0),throw:n(1),return:n(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function n(d){return function(l){return o([d,l])}}function o(d){if(a)throw new TypeError("Generator is already executing.");for(;t;)try{if(a=1,r&&(i=d[0]&2?r.return:d[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,d[1])).done)return i;switch(r=0,i&&(d=[d[0]&2,i.value]),d[0]){case 0:case 1:i=d;break;case 4:return t.label++,{value:d[1],done:!1};case 5:t.label++,r=d[1],d=[0];continue;case 7:d=t.ops.pop(),t.trys.pop();continue;default:if(i=t.trys,!(i=i.length>0&&i[i.length-1])&&(d[0]===6||d[0]===2)){t=0;continue}if(d[0]===3&&(!i||d[1]>i[0]&&d[1]<i[3])){t.label=d[1];break}if(d[0]===6&&t.label<i[1]){t.label=i[1],i=d;break}if(i&&t.label<i[2]){t.label=i[2],t.ops.push(d);break}i[2]&&t.ops.pop(),t.trys.pop();continue}d=A.call(e,t)}catch(l){d=[6,l],r=0}finally{a=i=0}if(d[0]&5)throw d[1];return{value:d[0]?d[1]:void 0,done:!0}}},__importDefault=exports&&exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});exports.getAllAudioBase64=exports.getAudioBase64=void 0;var assertInputTypes_1=__importDefault(r0()),axios_1=__importDefault(U3()),splitLongText_1=__importDefault(s0()),getAudioBase64=function(text,_a){var _b=_a===void 0?{}:_a,_c=_b.lang,lang=_c===void 0?"en":_c,_d=_b.slow,slow=_d===void 0?!1:_d,_e=_b.host,host=_e===void 0?"https://translate.google.com":_e,_f=_b.timeout,timeout=_f===void 0?1e4:_f;return __awaiter(void 0,void 0,void 0,function(){var res,result;return __generator(this,function(_g){switch(_g.label){case 0:if(assertInputTypes_1.default(text,lang,slow,host),typeof timeout!="number"||timeout<=0)throw new TypeError("timeout should be a positive number");if(text.length>200)throw new RangeError("text length ("+text.length+') should be less than 200 characters. Try "getAllAudioBase64(text, [option])" for long text.');return[4,axios_1.default({method:"post",baseURL:host,url:"/_/TranslateWebserverUi/data/batchexecute",timeout,data:"f.req="+encodeURIComponent(JSON.stringify([[["jQ1olc",JSON.stringify([text,lang,slow?!0:null,"null"]),null,"generic"]]]))})];case 1:res=_g.sent();try{result=eval(res.data.slice(5))[0][2]}catch(e){throw new Error(`parse response failed: +`+i),e.push(r+"m+"+en.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=rv()+A+" "+e[0]}function rv(){return ke.inspectOpts.hideDate?"":new Date().toISOString()+" "}function iv(...e){return process.stderr.write($s.format(...e)+` +`)}function sv(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function nv(){return process.env.DEBUG}function ov(e){e.inspectOpts={};let A=Object.keys(ke.inspectOpts);for(let t=0;t<A.length;t++)e.inspectOpts[A[t]]=ke.inspectOpts[A[t]]}en.exports=d0()(ke);var{formatters:FE}=en.exports;FE.o=function(e){return this.inspectOpts.colors=this.useColors,$s.inspect(e,this.inspectOpts).split(` +`).map(A=>A.trim()).join(" ")};FE.O=function(e){return this.inspectOpts.colors=this.useColors,$s.inspect(e,this.inspectOpts)}});var LE=E((GS,g0)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?g0.exports=RE():g0.exports=UE()});var TE=E((xS,ME)=>{var vr;ME.exports=function(){if(!vr){try{vr=LE()("follow-redirects")}catch{}typeof vr!="function"&&(vr=function(){})}vr.apply(null,arguments)}});var D0=E((_S,y0)=>{var Sr=require("url"),Nr=Sr.URL,dv=require("http"),pv=require("https"),C0=require("stream").Writable,m0=require("assert"),VE=TE(),B0=!1;try{m0(new Nr)}catch(e){B0=e.code==="ERR_INVALID_URL"}var lv=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],h0=["abort","aborted","connect","error","socket","timeout"],I0=Object.create(null);h0.forEach(function(e){I0[e]=function(A,t,a){this._redirectable.emit(e,A,t,a)}});var u0=kr("ERR_INVALID_URL","Invalid URL",TypeError),E0=kr("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),gv=kr("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",E0),cv=kr("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),uv=kr("ERR_STREAM_WRITE_AFTER_END","write after end"),Ev=C0.prototype.destroy||JE;function Xe(e,A){C0.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],A&&this.on("response",A);var t=this;this._onNativeResponse=function(a){try{t._processResponse(a)}catch(r){t.emit("error",r instanceof E0?r:new E0({cause:r}))}},this._performRequest()}Xe.prototype=Object.create(C0.prototype);Xe.prototype.abort=function(){w0(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};Xe.prototype.destroy=function(e){return w0(this._currentRequest,e),Ev.call(this,e),this};Xe.prototype.write=function(e,A,t){if(this._ending)throw new uv;if(!m1(e)&&!mv(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(br(A)&&(t=A,A=null),e.length===0){t&&t();return}this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:A}),this._currentRequest.write(e,A,t)):(this.emit("error",new cv),this.abort())};Xe.prototype.end=function(e,A,t){if(br(e)?(t=e,e=A=null):br(A)&&(t=A,A=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,t);else{var a=this,r=this._currentRequest;this.write(e,A,function(){a._ended=!0,r.end(null,null,t)}),this._ending=!0}};Xe.prototype.setHeader=function(e,A){this._options.headers[e]=A,this._currentRequest.setHeader(e,A)};Xe.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};Xe.prototype.setTimeout=function(e,A){var t=this;function a(s){s.setTimeout(e),s.removeListener("timeout",s.destroy),s.addListener("timeout",s.destroy)}function r(s){t._timeout&&clearTimeout(t._timeout),t._timeout=setTimeout(function(){t.emit("timeout"),i()},e),a(s)}function i(){t._timeout&&(clearTimeout(t._timeout),t._timeout=null),t.removeListener("abort",i),t.removeListener("error",i),t.removeListener("response",i),t.removeListener("close",i),A&&t.removeListener("timeout",A),t.socket||t._currentRequest.removeListener("socket",r)}return A&&this.on("timeout",A),this.socket?r(this.socket):this._currentRequest.once("socket",r),this.on("socket",a),this.on("abort",i),this.on("error",i),this.on("response",i),this.on("close",i),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){Xe.prototype[e]=function(A,t){return this._currentRequest[e](A,t)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(Xe.prototype,e,{get:function(){return this._currentRequest[e]}})});Xe.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var A=e.path.indexOf("?");A<0?e.pathname=e.path:(e.pathname=e.path.substring(0,A),e.search=e.path.substring(A))}};Xe.prototype._performRequest=function(){var e=this._options.protocol,A=this._options.nativeProtocols[e];if(!A)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var t=e.slice(0,-1);this._options.agent=this._options.agents[t]}var a=this._currentRequest=A.request(this._options,this._onNativeResponse);a._redirectable=this;for(var r of h0)a.on(r,I0[r]);if(this._currentUrl=/^\//.test(this._options.path)?Sr.format(this._options):this._options.path,this._isRedirect){var i=0,s=this,n=this._requestBodyBuffers;(function o(d){if(a===s._currentRequest)if(d)s.emit("error",d);else if(i<n.length){var l=n[i++];a.finished||a.write(l.data,l.encoding,o)}else s._ended&&a.end()})()}};Xe.prototype._processResponse=function(e){var A=e.statusCode;this._options.trackRedirects&&this._redirects.push({url:this._currentUrl,headers:e.headers,statusCode:A});var t=e.headers.location;if(!t||this._options.followRedirects===!1||A<300||A>=400){e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[];return}if(w0(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new gv;var a,r=this._options.beforeRedirect;r&&(a=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var i=this._options.method;((A===301||A===302)&&this._options.method==="POST"||A===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],c0(/^content-/i,this._options.headers));var s=c0(/^host$/i,this._options.headers),n=f0(this._currentUrl),o=s||n.host,d=/^\w+:/.test(t)?this._currentUrl:Sr.format(Object.assign(n,{host:o})),l=Qv(t,d);if(VE("redirecting to",l.href),this._isRedirect=!0,Q0(l,this._options),(l.protocol!==n.protocol&&l.protocol!=="https:"||l.host!==o&&!Cv(l.host,o))&&c0(/^(?:authorization|cookie)$/i,this._options.headers),br(r)){var p={headers:e.headers,statusCode:A},g={url:d,method:i,headers:a};r(this._options,p,g),this._sanitizeOptions(this._options)}this._performRequest()};function YE(e){var A={maxRedirects:21,maxBodyLength:10485760},t={};return Object.keys(e).forEach(function(a){var r=a+":",i=t[r]=e[a],s=A[a]=Object.create(i);function n(d,l,p){return Bv(d)?d=Q0(d):m1(d)?d=Q0(f0(d)):(p=l,l=GE(d),d={protocol:r}),br(l)&&(p=l,l=null),l=Object.assign({maxRedirects:A.maxRedirects,maxBodyLength:A.maxBodyLength},d,l),l.nativeProtocols=t,!m1(l.host)&&!m1(l.hostname)&&(l.hostname="::1"),m0.equal(l.protocol,r,"protocol mismatch"),VE("options",l),new Xe(l,p)}function o(d,l,p){var g=s.request(d,l,p);return g.end(),g}Object.defineProperties(s,{request:{value:n,configurable:!0,enumerable:!0,writable:!0},get:{value:o,configurable:!0,enumerable:!0,writable:!0}})}),A}function JE(){}function f0(e){var A;if(B0)A=new Nr(e);else if(A=GE(Sr.parse(e)),!m1(A.protocol))throw new u0({input:e});return A}function Qv(e,A){return B0?new Nr(e,A):f0(Sr.resolve(A,e))}function GE(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new u0({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new u0({input:e.href||e});return e}function Q0(e,A){var t=A||{};for(var a of lv)t[a]=e[a];return t.hostname.startsWith("[")&&(t.hostname=t.hostname.slice(1,-1)),t.port!==""&&(t.port=Number(t.port)),t.path=t.search?t.pathname+t.search:t.pathname,t}function c0(e,A){var t;for(var a in A)e.test(a)&&(t=A[a],delete A[a]);return t===null||typeof t>"u"?void 0:String(t).trim()}function kr(e,A,t){function a(r){Error.captureStackTrace(this,this.constructor),Object.assign(this,r||{}),this.code=e,this.message=this.cause?A+": "+this.cause.message:A}return a.prototype=new(t||Error),Object.defineProperties(a.prototype,{constructor:{value:a,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),a}function w0(e,A){for(var t of h0)e.removeListener(t,I0[t]);e.on("error",JE),e.destroy(A)}function Cv(e,A){m0(m1(e)&&m1(A));var t=e.length-A.length-1;return t>0&&e[t]==="."&&e.endsWith(A)}function m1(e){return typeof e=="string"||e instanceof String}function br(e){return typeof e=="function"}function mv(e){return typeof e=="object"&&"length"in e}function Bv(e){return Nr&&e instanceof Nr}y0.exports=YE({http:dv,https:pv});y0.exports.wrap=YE});var R0=E((qS,hv)=>{hv.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var PE=E((HS,OE)=>{"use strict";var Fr=qe(),xE=i0(),Iv=s0(),fv=Os(),wv=require("http"),yv=require("https"),Dv=D0().http,Rv=D0().https,_E=require("url"),vv=require("zlib"),Nv=R0(),An=Zs(),v0=Ws(),qE=/https:?/;function HE(e,A,t){if(e.hostname=A.host,e.host=A.host,e.port=A.port,e.path=t,A.auth){var a=Buffer.from(A.auth.username+":"+A.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.beforeRedirect=function(i){i.headers.host=i.host,HE(i,A,i.href)}}OE.exports=function(A){return new Promise(function(a,r){var i=function(M){a(M)},s=function(M){r(M)},n=A.data,o=A.headers;if("User-Agent"in o||"user-agent"in o?!o["User-Agent"]&&!o["user-agent"]&&(delete o["User-Agent"],delete o["user-agent"]):o["User-Agent"]="axios/"+Nv.version,n&&!Fr.isStream(n)){if(!Buffer.isBuffer(n))if(Fr.isArrayBuffer(n))n=Buffer.from(new Uint8Array(n));else if(Fr.isString(n))n=Buffer.from(n,"utf-8");else return s(An("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",A));o["Content-Length"]=n.length}var d=void 0;if(A.auth){var l=A.auth.username||"",p=A.auth.password||"";d=l+":"+p}var g=Iv(A.baseURL,A.url),c=_E.parse(g),u=c.protocol||"http:";if(!d&&c.auth){var Q=c.auth.split(":"),m=Q[0]||"",C=Q[1]||"";d=m+":"+C}d&&delete o.Authorization;var B=qE.test(u),w=B?A.httpsAgent:A.httpAgent,I={path:fv(c.path,A.params,A.paramsSerializer).replace(/^\?/,""),method:A.method.toUpperCase(),headers:o,agent:w,agents:{http:A.httpAgent,https:A.httpsAgent},auth:d};A.socketPath?I.socketPath=A.socketPath:(I.hostname=c.hostname,I.port=c.port);var y=A.proxy;if(!y&&y!==!1){var b=u.slice(0,-1)+"_proxy",F=process.env[b]||process.env[b.toUpperCase()];if(F){var x=_E.parse(F),he=process.env.no_proxy||process.env.NO_PROXY,Qe=!0;if(he){var Bt=he.split(",").map(function(M){return M.trim()});Qe=!Bt.some(function(M){return M?M==="*"||M[0]==="."&&c.hostname.substr(c.hostname.length-M.length)===M?!0:c.hostname===M:!1})}if(Qe&&(y={host:x.hostname,port:x.port,protocol:x.protocol},x.auth)){var Re=x.auth.split(":");y.auth={username:Re[0],password:Re[1]}}}}y&&(I.headers.host=c.hostname+(c.port?":"+c.port:""),HE(I,y,u+"//"+c.hostname+(c.port?":"+c.port:"")+I.path));var de,lA=B&&(y?qE.test(y.protocol):!0);A.transport?de=A.transport:A.maxRedirects===0?de=lA?yv:wv:(A.maxRedirects&&(I.maxRedirects=A.maxRedirects),de=lA?Rv:Dv),A.maxBodyLength>-1&&(I.maxBodyLength=A.maxBodyLength);var W=de.request(I,function(M){if(!W.aborted){var TA=M,O=M.req||W;if(M.statusCode!==204&&O.method!=="HEAD"&&A.decompress!==!1)switch(M.headers["content-encoding"]){case"gzip":case"compress":case"deflate":TA=TA.pipe(vv.createUnzip()),delete M.headers["content-encoding"];break}var ze={status:M.statusCode,statusText:M.statusMessage,headers:M.headers,config:A,request:O};if(A.responseType==="stream")ze.data=TA,xE(i,s,ze);else{var Y0=[],J0=0;TA.on("data",function(VA){Y0.push(VA),J0+=VA.length,A.maxContentLength>-1&&J0>A.maxContentLength&&(TA.destroy(),s(An("maxContentLength size of "+A.maxContentLength+" exceeded",A,null,O)))}),TA.on("error",function(VA){W.aborted||s(v0(VA,A,null,O))}),TA.on("end",function(){var VA=Buffer.concat(Y0);A.responseType!=="arraybuffer"&&(VA=VA.toString(A.responseEncoding),(!A.responseEncoding||A.responseEncoding==="utf8")&&(VA=Fr.stripBOM(VA))),ze.data=VA,xE(i,s,ze)})}}});if(W.on("error",function(M){W.aborted&&M.code!=="ERR_FR_TOO_MANY_REDIRECTS"||s(v0(M,A,null,W))}),A.timeout){var Ae=parseInt(A.timeout,10);if(isNaN(Ae)){s(An("error trying to parse `config.timeout` to int",A,"ERR_PARSE_TIMEOUT",W));return}W.setTimeout(Ae,function(){W.abort(),s(An("timeout of "+Ae+"ms exceeded",A,A.transitional&&A.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",W))})}A.cancelToken&&A.cancelToken.promise.then(function(M){W.aborted||(W.abort(),s(M))}),Fr.isStream(n)?n.on("error",function(M){s(v0(M,A,null,W))}).pipe(W):W.end(n)})}});var an=E((OS,jE)=>{"use strict";var Fe=qe(),WE=iE(),bv=Ws(),Sv={"Content-Type":"application/x-www-form-urlencoded"};function ZE(e,A){!Fe.isUndefined(e)&&Fe.isUndefined(e["Content-Type"])&&(e["Content-Type"]=A)}function kv(){var e;return typeof XMLHttpRequest<"u"?e=fE():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=PE()),e}function Fv(e,A,t){if(Fe.isString(e))try{return(A||JSON.parse)(e),Fe.trim(e)}catch(a){if(a.name!=="SyntaxError")throw a}return(t||JSON.stringify)(e)}var tn={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:kv(),transformRequest:[function(A,t){return WE(t,"Accept"),WE(t,"Content-Type"),Fe.isFormData(A)||Fe.isArrayBuffer(A)||Fe.isBuffer(A)||Fe.isStream(A)||Fe.isFile(A)||Fe.isBlob(A)?A:Fe.isArrayBufferView(A)?A.buffer:Fe.isURLSearchParams(A)?(ZE(t,"application/x-www-form-urlencoded;charset=utf-8"),A.toString()):Fe.isObject(A)||t&&t["Content-Type"]==="application/json"?(ZE(t,"application/json"),Fv(A)):A}],transformResponse:[function(A){var t=this.transitional,a=t&&t.silentJSONParsing,r=t&&t.forcedJSONParsing,i=!a&&this.responseType==="json";if(i||r&&Fe.isString(A)&&A.length)try{return JSON.parse(A)}catch(s){if(i)throw s.name==="SyntaxError"?bv(s,this,"E_JSON_PARSE"):s}return A}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(A){return A>=200&&A<300}};tn.headers={common:{Accept:"application/json, text/plain, */*"}};Fe.forEach(["delete","get","head"],function(A){tn.headers[A]={}});Fe.forEach(["post","put","patch"],function(A){tn.headers[A]=Fe.merge(Sv)});jE.exports=tn});var zE=E((PS,XE)=>{"use strict";var Uv=qe(),Lv=an();XE.exports=function(A,t,a){var r=this||Lv;return Uv.forEach(a,function(s){A=s.call(r,A,t)}),A}});var N0=E((WS,KE)=>{"use strict";KE.exports=function(A){return!!(A&&A.__CANCEL__)}});var A3=E((ZS,e3)=>{"use strict";var $E=qe(),b0=zE(),Mv=N0(),Tv=an();function S0(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e3.exports=function(A){S0(A),A.headers=A.headers||{},A.data=b0.call(A,A.data,A.headers,A.transformRequest),A.headers=$E.merge(A.headers.common||{},A.headers[A.method]||{},A.headers),$E.forEach(["delete","get","head","post","put","patch","common"],function(r){delete A.headers[r]});var t=A.adapter||Tv.adapter;return t(A).then(function(r){return S0(A),r.data=b0.call(A,r.data,r.headers,A.transformResponse),r},function(r){return Mv(r)||(S0(A),r&&r.response&&(r.response.data=b0.call(A,r.response.data,r.response.headers,A.transformResponse))),Promise.reject(r)})}});var k0=E((jS,t3)=>{"use strict";var Me=qe();t3.exports=function(A,t){t=t||{};var a={},r=["url","method","data"],i=["headers","auth","proxy","params"],s=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],n=["validateStatus"];function o(g,c){return Me.isPlainObject(g)&&Me.isPlainObject(c)?Me.merge(g,c):Me.isPlainObject(c)?Me.merge({},c):Me.isArray(c)?c.slice():c}function d(g){Me.isUndefined(t[g])?Me.isUndefined(A[g])||(a[g]=o(void 0,A[g])):a[g]=o(A[g],t[g])}Me.forEach(r,function(c){Me.isUndefined(t[c])||(a[c]=o(void 0,t[c]))}),Me.forEach(i,d),Me.forEach(s,function(c){Me.isUndefined(t[c])?Me.isUndefined(A[c])||(a[c]=o(void 0,A[c])):a[c]=o(void 0,t[c])}),Me.forEach(n,function(c){c in t?a[c]=o(A[c],t[c]):c in A&&(a[c]=o(void 0,A[c]))});var l=r.concat(i).concat(s).concat(n),p=Object.keys(A).concat(Object.keys(t)).filter(function(c){return l.indexOf(c)===-1});return Me.forEach(p,d),a}});var n3=E((XS,s3)=>{"use strict";var r3=R0(),F0={};["object","boolean","number","function","string","symbol"].forEach(function(e,A){F0[e]=function(a){return typeof a===e||"a"+(A<1?"n ":" ")+e}});var a3={},Vv=r3.version.split(".");function i3(e,A){for(var t=A?A.split("."):Vv,a=e.split("."),r=0;r<3;r++){if(t[r]>a[r])return!0;if(t[r]<a[r])return!1}return!1}F0.transitional=function(A,t,a){var r=t&&i3(t);function i(s,n){return"[Axios v"+r3.version+"] Transitional option '"+s+"'"+n+(a?". "+a:"")}return function(s,n,o){if(A===!1)throw new Error(i(n," has been removed in "+t));return r&&!a3[n]&&(a3[n]=!0,console.warn(i(n," has been deprecated since v"+t+" and will be removed in the near future"))),A?A(s,n,o):!0}};function Yv(e,A,t){if(typeof e!="object")throw new TypeError("options must be an object");for(var a=Object.keys(e),r=a.length;r-- >0;){var i=a[r],s=A[i];if(s){var n=e[i],o=n===void 0||s(n,i,e);if(o!==!0)throw new TypeError("option "+i+" must be "+o);continue}if(t!==!0)throw Error("Unknown option "+i)}}s3.exports={isOlderVersion:i3,assertOptions:Yv,validators:F0}});var c3=E((zS,g3)=>{"use strict";var p3=qe(),Jv=Os(),o3=aE(),d3=A3(),rn=k0(),l3=n3(),ya=l3.validators;function Ur(e){this.defaults=e,this.interceptors={request:new o3,response:new o3}}Ur.prototype.request=function(A){typeof A=="string"?(A=arguments[1]||{},A.url=arguments[0]):A=A||{},A=rn(this.defaults,A),A.method?A.method=A.method.toLowerCase():this.defaults.method?A.method=this.defaults.method.toLowerCase():A.method="get";var t=A.transitional;t!==void 0&&l3.assertOptions(t,{silentJSONParsing:ya.transitional(ya.boolean,"1.0.0"),forcedJSONParsing:ya.transitional(ya.boolean,"1.0.0"),clarifyTimeoutError:ya.transitional(ya.boolean,"1.0.0")},!1);var a=[],r=!0;this.interceptors.request.forEach(function(g){typeof g.runWhen=="function"&&g.runWhen(A)===!1||(r=r&&g.synchronous,a.unshift(g.fulfilled,g.rejected))});var i=[];this.interceptors.response.forEach(function(g){i.push(g.fulfilled,g.rejected)});var s;if(!r){var n=[d3,void 0];for(Array.prototype.unshift.apply(n,a),n=n.concat(i),s=Promise.resolve(A);n.length;)s=s.then(n.shift(),n.shift());return s}for(var o=A;a.length;){var d=a.shift(),l=a.shift();try{o=d(o)}catch(p){l(p);break}}try{s=d3(o)}catch(p){return Promise.reject(p)}for(;i.length;)s=s.then(i.shift(),i.shift());return s};Ur.prototype.getUri=function(A){return A=rn(this.defaults,A),Jv(A.url,A.params,A.paramsSerializer).replace(/^\?/,"")};p3.forEach(["delete","get","head","options"],function(A){Ur.prototype[A]=function(t,a){return this.request(rn(a||{},{method:A,url:t,data:(a||{}).data}))}});p3.forEach(["post","put","patch"],function(A){Ur.prototype[A]=function(t,a,r){return this.request(rn(r||{},{method:A,url:t,data:a}))}});g3.exports=Ur});var L0=E((KS,u3)=>{"use strict";function U0(e){this.message=e}U0.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};U0.prototype.__CANCEL__=!0;u3.exports=U0});var Q3=E(($S,E3)=>{"use strict";var Gv=L0();function sn(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var A;this.promise=new Promise(function(r){A=r});var t=this;e(function(r){t.reason||(t.reason=new Gv(r),A(t.reason))})}sn.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};sn.source=function(){var A,t=new sn(function(r){A=r});return{token:t,cancel:A}};E3.exports=sn});var m3=E((ek,C3)=>{"use strict";C3.exports=function(A){return function(a){return A.apply(null,a)}}});var h3=E((Ak,B3)=>{"use strict";B3.exports=function(A){return typeof A=="object"&&A.isAxiosError===!0}});var w3=E((tk,M0)=>{"use strict";var I3=qe(),xv=e0(),nn=c3(),_v=k0(),qv=an();function f3(e){var A=new nn(e),t=xv(nn.prototype.request,A);return I3.extend(t,nn.prototype,A),I3.extend(t,A),t}var UA=f3(qv);UA.Axios=nn;UA.create=function(A){return f3(_v(UA.defaults,A))};UA.Cancel=L0();UA.CancelToken=Q3();UA.isCancel=N0();UA.all=function(A){return Promise.all(A)};UA.spread=m3();UA.isAxiosError=h3();M0.exports=UA;M0.exports.default=UA});var D3=E((ak,y3)=>{y3.exports=w3()});var R3=E((exports,module)=>{"use strict";var __awaiter=exports&&exports.__awaiter||function(e,A,t,a){function r(i){return i instanceof t?i:new t(function(s){s(i)})}return new(t||(t=Promise))(function(i,s){function n(l){try{d(a.next(l))}catch(p){s(p)}}function o(l){try{d(a.throw(l))}catch(p){s(p)}}function d(l){l.done?i(l.value):r(l.value).then(n,o)}d((a=a.apply(e,A||[])).next())})},__generator=exports&&exports.__generator||function(e,A){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},a,r,i,s;return s={next:n(0),throw:n(1),return:n(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function n(d){return function(l){return o([d,l])}}function o(d){if(a)throw new TypeError("Generator is already executing.");for(;t;)try{if(a=1,r&&(i=d[0]&2?r.return:d[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,d[1])).done)return i;switch(r=0,i&&(d=[d[0]&2,i.value]),d[0]){case 0:case 1:i=d;break;case 4:return t.label++,{value:d[1],done:!1};case 5:t.label++,r=d[1],d=[0];continue;case 7:d=t.ops.pop(),t.trys.pop();continue;default:if(i=t.trys,!(i=i.length>0&&i[i.length-1])&&(d[0]===6||d[0]===2)){t=0;continue}if(d[0]===3&&(!i||d[1]>i[0]&&d[1]<i[3])){t.label=d[1];break}if(d[0]===6&&t.label<i[1]){t.label=i[1],i=d;break}if(i&&t.label<i[2]){t.label=i[2],t.ops.push(d);break}i[2]&&t.ops.pop(),t.trys.pop();continue}d=A.call(e,t)}catch(l){d=[6,l],r=0}finally{a=i=0}if(d[0]&5)throw d[1];return{value:d[0]?d[1]:void 0,done:!0}}},__importDefault=exports&&exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});exports.getAllAudioBase64=exports.getAudioBase64=void 0;var assertInputTypes_1=__importDefault(Xp()),axios_1=__importDefault(D3()),splitLongText_1=__importDefault(Kp()),getAudioBase64=function(text,_a){var _b=_a===void 0?{}:_a,_c=_b.lang,lang=_c===void 0?"en":_c,_d=_b.slow,slow=_d===void 0?!1:_d,_e=_b.host,host=_e===void 0?"https://translate.google.com":_e,_f=_b.timeout,timeout=_f===void 0?1e4:_f;return __awaiter(void 0,void 0,void 0,function(){var res,result;return __generator(this,function(_g){switch(_g.label){case 0:if(assertInputTypes_1.default(text,lang,slow,host),typeof timeout!="number"||timeout<=0)throw new TypeError("timeout should be a positive number");if(text.length>200)throw new RangeError("text length ("+text.length+') should be less than 200 characters. Try "getAllAudioBase64(text, [option])" for long text.');return[4,axios_1.default({method:"post",baseURL:host,url:"/_/TranslateWebserverUi/data/batchexecute",timeout,data:"f.req="+encodeURIComponent(JSON.stringify([[["jQ1olc",JSON.stringify([text,lang,slow?!0:null,"null"]),null,"generic"]]]))})];case 1:res=_g.sent();try{result=eval(res.data.slice(5))[0][2]}catch(e){throw new Error(`parse response failed: `+res.data)}if(!result)throw new Error('lang "'+lang+'" might not exist');try{result=eval(result)[0]}catch(e){throw new Error(`parse response failed: -`+res.data)}return[2,result]}})})};exports.getAudioBase64=getAudioBase64;var getAllAudioBase64=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n,d=t.splitPunct,l=d===void 0?"":d,p=t.timeout,g=p===void 0?1e4:p;return __awaiter(void 0,void 0,void 0,function(){var c,u,Q,B,C,h;return __generator(this,function(f){switch(f.label){case 0:if(assertInputTypes_1.default(e,r,s,o),typeof l!="string")throw new TypeError("splitPunct should be a string");if(typeof g!="number"||g<=0)throw new TypeError("timeout should be a positive number");return c=splitLongText_1.default(e,{splitPunct:l}),[4,Promise.all(c.map(function(m){return exports.getAudioBase64(m,{lang:r,slow:s,host:o,timeout:g})}))];case 1:for(u=f.sent(),Q=[],B=0;B<c.length;B++)C=c[B],h=u[B],Q.push({shortText:C,base64:h});return[2,Q]}})})};exports.getAllAudioBase64=getAllAudioBase64});var V3=E(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.getAllAudioBase64=rt.getAudioBase64=rt.getAllAudioUrls=rt.getAudioUrl=void 0;var M3=r9();Object.defineProperty(rt,"getAudioUrl",{enumerable:!0,get:function(){return M3.getAudioUrl}});Object.defineProperty(rt,"getAllAudioUrls",{enumerable:!0,get:function(){return M3.getAllAudioUrls}});var T3=L3();Object.defineProperty(rt,"getAudioBase64",{enumerable:!0,get:function(){return T3.getAudioBase64}});Object.defineProperty(rt,"getAllAudioBase64",{enumerable:!0,get:function(){return T3.getAllAudioBase64}})});var G3=E($e=>{"use strict";var pN=$e&&$e.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),lN=$e&&$e.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),Y3=$e&&$e.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&pN(A,e,t);return lN(A,e),A};Object.defineProperty($e,"__esModule",{value:!0});$e.req=$e.json=$e.toBuffer=void 0;var gN=Y3(require("http")),cN=Y3(require("https"));async function J3(e){let A=0,t=[];for await(let a of e)A+=a.length,t.push(a);return Buffer.concat(t,A)}$e.toBuffer=J3;async function uN(e){let t=(await J3(e)).toString("utf8");try{return JSON.parse(t)}catch(a){let r=a;throw r.message+=` (input: ${t})`,r}}$e.json=uN;function EN(e,A={}){let a=((typeof e=="string"?e:e.href).startsWith("https:")?cN:gN).request(e,A),r=new Promise((i,s)=>{a.once("response",i).once("error",s).end()});return a.then=r.then.bind(r),a}$e.req=EN});var H3=E(cA=>{"use strict";var _3=cA&&cA.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),QN=cA&&cA.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),q3=cA&&cA.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&_3(A,e,t);return QN(A,e),A},CN=cA&&cA.__exportStar||function(e,A){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(A,t)&&_3(A,e,t)};Object.defineProperty(cA,"__esModule",{value:!0});cA.Agent=void 0;var BN=q3(require("net")),x3=q3(require("http")),hN=require("https");CN(G3(),cA);var it=Symbol("AgentBaseInternalState"),H0=class extends x3.Agent{constructor(A){super(A),this[it]={}}isSecureEndpoint(A){if(A){if(typeof A.secureEndpoint=="boolean")return A.secureEndpoint;if(typeof A.protocol=="string")return A.protocol==="https:"}let{stack:t}=new Error;return typeof t!="string"?!1:t.split(` -`).some(a=>a.indexOf("(https.js:")!==-1||a.indexOf("node:https:")!==-1)}incrementSockets(A){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[A]||(this.sockets[A]=[]);let t=new BN.Socket({writable:!1});return this.sockets[A].push(t),this.totalSocketCount++,t}decrementSockets(A,t){if(!this.sockets[A]||t===null)return;let a=this.sockets[A],r=a.indexOf(t);r!==-1&&(a.splice(r,1),this.totalSocketCount--,a.length===0&&delete this.sockets[A])}getName(A){return(typeof A.secureEndpoint=="boolean"?A.secureEndpoint:this.isSecureEndpoint(A))?hN.Agent.prototype.getName.call(this,A):super.getName(A)}createSocket(A,t,a){let r={...t,secureEndpoint:this.isSecureEndpoint(t)},i=this.getName(r),s=this.incrementSockets(i);Promise.resolve().then(()=>this.connect(A,r)).then(n=>{if(this.decrementSockets(i,s),n instanceof x3.Agent)try{return n.addRequest(A,r)}catch(o){return a(o)}this[it].currentSocket=n,super.createSocket(A,t,a)},n=>{this.decrementSockets(i,s),a(n)})}createConnection(){let A=this[it].currentSocket;if(this[it].currentSocket=void 0,!A)throw new Error("No socket was returned in the `connect()` function");return A}get defaultPort(){return this[it].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(A){this[it]&&(this[it].defaultPort=A)}get protocol(){return this[it].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(A){this[it]&&(this[it].protocol=A)}};cA.Agent=H0});var O3=E(ba=>{"use strict";var mN=ba&&ba.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ba,"__esModule",{value:!0});ba.parseProxyResponse=void 0;var IN=mN(on()),En=(0,IN.default)("https-proxy-agent:parse-proxy-response");function fN(e){return new Promise((A,t)=>{let a=0,r=[];function i(){let l=e.read();l?d(l):e.once("readable",i)}function s(){e.removeListener("end",n),e.removeListener("error",o),e.removeListener("readable",i)}function n(){s(),En("onend"),t(new Error("Proxy connection ended before receiving CONNECT response"))}function o(l){s(),En("onerror %o",l),t(l)}function d(l){r.push(l),a+=l.length;let p=Buffer.concat(r,a),g=p.indexOf(`\r -\r -`);if(g===-1){En("have not received end of HTTP headers yet..."),i();return}let c=p.slice(0,g).toString("ascii").split(`\r -`),u=c.shift();if(!u)return e.destroy(),t(new Error("No header received from proxy CONNECT response"));let Q=u.split(" "),B=+Q[1],C=Q.slice(2).join(" "),h={};for(let f of c){if(!f)continue;let m=f.indexOf(":");if(m===-1)return e.destroy(),t(new Error(`Invalid header from proxy CONNECT response: "${f}"`));let w=f.slice(0,m).toLowerCase(),R=f.slice(m+1).trimStart(),S=h[w];typeof S=="string"?h[w]=[S,R]:Array.isArray(S)?S.push(R):h[w]=R}En("got proxy server response: %o %o",u,h),s(),A({connect:{statusCode:B,statusText:C,headers:h},buffered:p})}e.on("error",o),e.on("end",n),i()})}ba.parseProxyResponse=fN});var z3=E(SA=>{"use strict";var wN=SA&&SA.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),yN=SA&&SA.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),j3=SA&&SA.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&wN(A,e,t);return yN(A,e),A},X3=SA&&SA.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(SA,"__esModule",{value:!0});SA.HttpsProxyAgent=void 0;var Qn=j3(require("net")),P3=j3(require("tls")),DN=X3(require("assert")),RN=X3(on()),vN=H3(),NN=require("url"),bN=O3(),Gr=(0,RN.default)("https-proxy-agent"),W3=e=>e.servername===void 0&&e.host&&!Qn.isIP(e.host)?{...e,servername:e.host}:e,Cn=class extends vN.Agent{constructor(A,t){super(t),this.options={path:void 0},this.proxy=typeof A=="string"?new NN.URL(A):A,this.proxyHeaders=t?.headers??{},Gr("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let a=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),r=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...t?Z3(t,"headers"):null,host:a,port:r}}async connect(A,t){let{proxy:a}=this;if(!t.host)throw new TypeError('No "host" provided');let r;a.protocol==="https:"?(Gr("Creating `tls.Socket`: %o",this.connectOpts),r=P3.connect(W3(this.connectOpts))):(Gr("Creating `net.Socket`: %o",this.connectOpts),r=Qn.connect(this.connectOpts));let i=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},s=Qn.isIPv6(t.host)?`[${t.host}]`:t.host,n=`CONNECT ${s}:${t.port} HTTP/1.1\r -`;if(a.username||a.password){let g=`${decodeURIComponent(a.username)}:${decodeURIComponent(a.password)}`;i["Proxy-Authorization"]=`Basic ${Buffer.from(g).toString("base64")}`}i.Host=`${s}:${t.port}`,i["Proxy-Connection"]||(i["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let g of Object.keys(i))n+=`${g}: ${i[g]}\r -`;let o=(0,bN.parseProxyResponse)(r);r.write(`${n}\r -`);let{connect:d,buffered:l}=await o;if(A.emit("proxyConnect",d),this.emit("proxyConnect",d,A),d.statusCode===200)return A.once("socket",SN),t.secureEndpoint?(Gr("Upgrading socket connection to TLS"),P3.connect({...Z3(W3(t),"host","path","port"),socket:r})):r;r.destroy();let p=new Qn.Socket({writable:!1});return p.readable=!0,A.once("socket",g=>{Gr("Replaying proxy buffer for failed request"),(0,DN.default)(g.listenerCount("data")>0),g.push(l),g.push(null)}),p}};Cn.protocols=["http","https"];SA.HttpsProxyAgent=Cn;function SN(e){e.resume()}function Z3(e,...A){let t={},a;for(a in e)A.includes(a)||(t[a]=e[a]);return t}});var LN={};EQ(LN,{default:()=>dQ});module.exports=QQ(LN);var oQ=require("@raycast/api"),P0=require("react");var Wt=require("@raycast/api");var hn=require("@raycast/api"),O0=Rt(ao()),y1=Rt(require("react"));var t0=Rt(require("querystring")),Fr=Rt($p());var at={auto:"Auto-Detect",ab:"Abkhaz",ace:"Acehnese",ach:"Acholi",aa:"Afar",af:"Afrikaans",sq:"Albanian",alz:"Alur",am:"Amharic",ar:"Arabic",hy:"Armenian",as:"Assamese",av:"Avar",awa:"Awadhi",ay:"Aymara",az:"Azerbaijani",ban:"Balinese",bal:"Baluchi",bm:"Bambara",bci:"Baoul\xE9",ba:"Bashkir",eu:"Basque",btx:"Batak Karo",bts:"Batak Simalungun",bbc:"Batak Toba",be:"Belarusian",bem:"Bemba",bn:"Bengali",bew:"Betawi",bho:"Bhojpuri",bik:"Bikol",bs:"Bosnian",br:"Breton",bg:"Bulgarian",bua:"Buryat",yue:"Cantonese",ca:"Catalan",ceb:"Cebuano",ch:"Chamorro",ce:"Chechen",ny:"Chichewa","zh-CN":"Chinese (Simplified)","zh-TW":"Chinese (Traditional)",chk:"Chuukese",cv:"Chuvash",co:"Corsican",crh:"Crimean Tatar (Cyrillic)","crh-Latn":"Crimean Tatar (Latin)",hr:"Croatian",cs:"Czech",da:"Danish","fa-AF":"Dari",dv:"Dhivehi",din:"Dinka",doi:"Dogri",dov:"Dombe",nl:"Dutch",dyu:"Dyula",dz:"Dzongkha",en:"English",eo:"Esperanto",et:"Estonian",ee:"Ewe",fo:"Faroese",fj:"Fijian",tl:"Filipino",fi:"Finnish",fon:"Fon",fr:"French","fr-CA":"French (Canada)",fy:"Frisian",fur:"Friulian",ff:"Fulani",gaa:"Ga",gl:"Galician",ka:"Georgian",de:"German",el:"Greek",gn:"Guarani",gu:"Gujarati",ht:"Haitian Creole",cnh:"Hakha Chin",ha:"Hausa",haw:"Hawaiian",iw:"Hebrew",hil:"Hiligaynon",hi:"Hindi",hmn:"Hmong",hu:"Hungarian",hrx:"Hunsrik",iba:"Iban",is:"Icelandic",ig:"Igbo",ilo:"Ilocano",id:"Indonesian","iu-Latn":"Inuktut (Latin)",iu:"Inuktut (Syllabics)",ga:"Irish",it:"Italian",jam:"Jamaican Patois",ja:"Japanese",jv:"Javanese",kac:"Jingpo",kl:"Kalaallisut",kn:"Kannada",kr:"Kanuri",pam:"Kapampangan",kk:"Kazakh",kha:"Khasi",km:"Khmer",cgg:"Kiga",kg:"Kikongo",rw:"Kinyarwanda",ktu:"Kituba",trp:"Kokborok",kv:"Komi",gom:"Konkani",ko:"Korean",kri:"Krio",ku:"Kurdish (Kurmanji)",ckb:"Kurdish (Sorani)",ky:"Kyrgyz",lo:"Lao",ltg:"Latgalian",la:"Latin",lv:"Latvian",lij:"Ligurian",li:"Limburgish",ln:"Lingala",lt:"Lithuanian",lmo:"Lombard",lg:"Luganda",luo:"Luo",lb:"Luxembourgish",mk:"Macedonian",mad:"Madurese",mai:"Maithili",mak:"Makassar",mg:"Malagasy",ms:"Malay","ms-Arab":"Malay (Jawi)",ml:"Malayalam",mt:"Maltese",mam:"Mam",gv:"Manx",mi:"Maori",mr:"Marathi",mh:"Marshallese",mwr:"Marwadi",mfe:"Mauritian Creole",chm:"Meadow Mari","mni-Mtei":"Meiteilon (Manipuri)",min:"Minang",lus:"Mizo",mn:"Mongolian",my:"Myanmar (Burmese)","bm-Nkoo":"NKo",nhe:"Nahuatl (Eastern Huasteca)","ndc-ZW":"Ndau",nr:"Ndebele (South)",new:"Nepalbhasa (Newari)",ne:"Nepali",no:"Norwegian",nus:"Nuer",oc:"Occitan",or:"Odia (Oriya)",om:"Oromo",os:"Ossetian",pag:"Pangasinan",pap:"Papiamento",ps:"Pashto",fa:"Persian",pl:"Polish",pt:"Portuguese (Brazil)","pt-PT":"Portuguese (Portugal)",pa:"Punjabi (Gurmukhi)","pa-Arab":"Punjabi (Shahmukhi)",qu:"Quechua",kek:"Q\u02BCeqchi\u02BC",rom:"Romani",ro:"Romanian",rn:"Rundi",ru:"Russian",se:"Sami (North)",sm:"Samoan",sg:"Sango",sa:"Sanskrit","sat-Latn":"Santali (Latin)",sat:"Santali (Ol Chiki)",gd:"Scots Gaelic",nso:"Sepedi",sr:"Serbian",st:"Sesotho",crs:"Seychellois Creole",shn:"Shan",sn:"Shona",scn:"Sicilian",szl:"Silesian",sd:"Sindhi",si:"Sinhala",sk:"Slovak",sl:"Slovenian",so:"Somali",es:"Spanish",su:"Sundanese",sus:"Susu",sw:"Swahili",ss:"Swati",sv:"Swedish",ty:"Tahitian",tg:"Tajik","ber-Latn":"Tamazight",ber:"Tamazight (Tifinagh)",ta:"Tamil",tt:"Tatar",te:"Telugu",tet:"Tetum",th:"Thai",bo:"Tibetan",ti:"Tigrinya",tiv:"Tiv",tpi:"Tok Pisin",to:"Tongan",lua:"Tshiluba",ts:"Tsonga",tn:"Tswana",tcy:"Tulu",tum:"Tumbuka",tr:"Turkish",tk:"Turkmen",tyv:"Tuvan",ak:"Twi",udm:"Udmurt",uk:"Ukrainian",ur:"Urdu",ug:"Uyghur",uz:"Uzbek",ve:"Venda",vec:"Venetian",vi:"Vietnamese",war:"Waray",cy:"Welsh",wo:"Wolof",xh:"Xhosa",sah:"Yakut",yi:"Yiddish",yo:"Yoruba",yua:"Yucatec Maya",zap:"Zapotec",zu:"Zulu"};function Zs(e){return e?e in at||(e=e.toLowerCase(),e in at)?e:Object.keys(at).filter(t=>typeof at[t]!="string"?!1:at[t].toLowerCase()===e)[0]||void 0:void 0}function zE(e){return!!Zs(e)}var $E=Rt($p());function fR(e){let A;if(e0!==null)A=e0;else{A=js("T");let o=js("K");A=[A(),A()],A[1]=o(),A=(e0=A0[A.join(o())]||"")||""}let t=js("t"),a=js("k");t=[t(),t()],t[1]=a(),a="&"+t.join("")+"=",t=A.split("."),A=Number(t[0])||0;for(var r=[],i=0,s=0;s<e.length;s++){let o=e.charCodeAt(s);128>o?r[i++]=o:(2048>o?r[i++]=o>>6|192:((o&64512)==55296&&s+1<e.length&&(e.charCodeAt(s+1)&64512)==56320?(o=65536+((o&1023)<<10)+(e.charCodeAt(++s)&1023),r[i++]=o>>18|240,r[i++]=o>>12&63|128):r[i++]=o>>12|224,r[i++]=o>>6&63|128),r[i++]=o&63|128)}let n=Number(A);for(let o=0;o<r.length;o++)e+=r[o],n=KE(n,"+-a^+6");return n=KE(n,"+-3^+b+-f"),n^=Number(t[1])||0,0>n&&(n=(n&2147483647)+2147483648),n%=1e6,a+(e.toString()+"."+(n^A))}var e0=null,js=function(e){return function(){return e}},KE=function(e,A){for(let t=0;t<A.length-2;t+=3){let a=A.charAt(t+2),r=a>="a"?a.charCodeAt(0)-87:Number(a);r=A.charAt(t+1)=="+"?e>>>r:e<<r,e=A.charAt(t)=="+"?e+r&4294967295:e^r}return e},e9=new Map,A0={TKK:e9.get("TKK")||"0"};async function wR(){let e=Math.floor(Date.now()/36e5);if(Number(A0.TKK.split(".")[0])!==e){let a=(await(await(0,$E.request)("https://translate.google.com")).body.text()).match(/tkk:'\d+.\d+'/g);if(a&&a.length>0){let r=a[0].split(":")[1].replace(/'/g,"");A0.TKK=r,e9.set("TKK",r)}}}async function A9(e){try{await wR();let A=fR(e);return A=A.replace("&tk=",""),{name:"tk",value:A}}catch(A){return A}}async function t9(e,A){typeof A!="object"&&(A={}),e=String(e);let t=null;if([A.from,A.to].forEach(g=>{g&&!zE(g)&&(t=new Error,t.message=`The language '${g}' is not supported.`)}),t)throw t;Object.prototype.hasOwnProperty.call(A,"from")||(A.from="auto"),Object.prototype.hasOwnProperty.call(A,"to")||(A.to="en"),A.raw=!!A.raw,A.from=Zs(A.from),A.to=Zs(A.to);let a=await A9(e),r="https://translate.google.com/translate_a/single",i={client:"gtx",sl:A.from,tl:A.to,hl:A.to,dt:["at","bd","ex","ld","md","qca","rw","rm","ss","t"],ie:"UTF-8",oe:"UTF-8",otf:1,ssel:0,tsel:0,kc:7,q:e,[a.name]:a.value},s=`${r}?${t0.default.stringify(i)}`,n,o=s;s.length>2048?(delete i.q,o=`${r}?${t0.default.stringify(i)}`,n={method:"POST",body:new URLSearchParams({q:e}).toString(),headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"}},A.proxy&&(n.dispatcher=new Fr.ProxyAgent(A.proxy))):A.proxy&&(n={dispatcher:new Fr.ProxyAgent(A.proxy)});let l=await(await(0,Fr.request)(o,n)).body.json(),p={text:"",from:{language:{didYouMean:!1,iso:""},text:{autoCorrected:!1,value:"",didYouMean:!1}},raw:""};if(A.raw&&(p.raw=l),l[0].forEach(g=>{g[0]&&(p.text+=g[0])}),l[2]===l[8][0][0]?p.from.language.iso=l[2]:(p.from.language.didYouMean=!0,p.from.language.iso=l[8][0][0]),l[7]&&l[7][0]){let g=l[7][0];g=g.replace(/<b><i>/g,"["),g=g.replace(/<\/i><\/b>/g,"]"),p.from.text.value=g,l[7][5]===!0?p.from.text.autoCorrected=!0:p.from.text.didYouMean=!0}return p}var kN=Rt(V3());var FN=Rt(z3()),xr="auto",Bn=class extends Error{},UN=e=>e?.[0]?.[1]?.[2];async function K3(e,A){try{if(!e)return{originalText:e,translatedText:"",pronunciationText:"",langFrom:A.langFrom,langTo:A.langTo[0]};let t=await t9(e,{from:A.langFrom,to:A.langTo[0],raw:!0,proxy:A.proxy});return{originalText:e,translatedText:t.text,pronunciationText:UN(t?.raw),langFrom:t?.from?.language?.iso,langTo:A.langTo[0]}}catch(t){if(t instanceof Error){if(t.name==="TooManyRequestsError"){let r=new Bn;throw r.name="Too many requests",r.message="please try again later",r}let a=new Bn;throw a.name=t.name,a.message=t.message,a}throw t}}var mn=()=>y1.default.useMemo(()=>(0,hn.getPreferenceValues)(),[]),$3=()=>{let e=mn(),[A,t]=y1.default.useState(""),a=y1.default.useRef(A);return a.current=A,y1.default.useEffect(()=>{e.autoInput&&(0,hn.getSelectedText)().then(r=>{a.current||t(r??"")}).catch(r=>{console.log("Error:",r)})},[]),[A,t]};var eQ=(e,A)=>{let[t,a]=y1.default.useState(e);return y1.default.useEffect(()=>{let r=setTimeout(()=>{a(e)},A);return()=>{clearTimeout(r)}},[e,A]),t};var In=()=>{let[e,A]=(0,O0.useCachedState)("sourceLanguage",xr);return[e,A]},Sa=()=>{let e=mn(),[A,t]=(0,O0.useCachedState)("targetLanguages",[e.lang1,e.lang2].filter(a=>a!==xr));return[A,t]};var $k={code:"en",name:at.en},eF={code:"auto",name:at.auto},ka=Object.keys(at).map(e=>({code:e,name:at[e]})),wt=ka.reduce((e,A)=>({...e,[A.code]:A}),{}),AF=ka.reduce((e,A)=>({...e,[A.name]:A}),{});var re=require("@raycast/api");var uA=require("react/jsx-runtime"),AQ=()=>{let[e,A]=Sa();return(0,uA.jsxs)(re.List,{searchBarPlaceholder:"Search languages",children:[(0,uA.jsx)(re.List.Section,{title:"Selected Languages",subtitle:`${e.length}`,children:e.map(t=>(0,uA.jsx)(re.List.Item,{title:wt[t].name,subtitle:t,actions:e.length===1&&e[0]==="en"?void 0:(0,uA.jsxs)(re.ActionPanel,{children:[(0,uA.jsx)(re.Action,{title:"Remove",icon:re.Icon.Minus,style:re.Action.Style.Destructive,shortcut:{modifiers:["ctrl"],key:"x"},onAction:()=>{let a=e.filter(r=>r!=t);A(a.length===0?["en"]:a),(0,re.clearSearchBar)()}}),(0,uA.jsx)(re.Action,{title:"Move up",icon:re.Icon.ArrowUp,shortcut:{modifiers:["shift"],key:"arrowUp"},onAction:()=>{let a=e.indexOf(t);if(a>0){let r=[...e];r.splice(a-1,0,r.splice(a,1)[0]),A(r)}}}),(0,uA.jsx)(re.Action,{title:"Move down",icon:re.Icon.ArrowDown,shortcut:{modifiers:["shift"],key:"arrowDown"},onAction:()=>{let a=e.indexOf(t);if(a<e.length-1){let r=[...e];r.splice(a+1,0,r.splice(a,1)[0]),A(r)}}})]})},t))}),(0,uA.jsx)(re.List.Section,{title:"Available Languages",children:ka.filter(t=>t.code!=xr&&!e.includes(t.code)).map(t=>(0,uA.jsx)(re.List.Item,{title:t.name,subtitle:t.code,actions:(0,uA.jsx)(re.ActionPanel,{children:(0,uA.jsx)(re.Action,{title:"Add",icon:re.Icon.Plus,onAction:()=>{A(a=>[...a,t.code]),(0,re.clearSearchBar)()}})})},t.code))})]})};var Fa=require("react/jsx-runtime");function tQ(){let e=(0,Wt.useNavigation)(),[A,t]=In(),[a]=Sa();return(0,Fa.jsxs)(Wt.List.Dropdown,{value:A,tooltip:"Language",onChange:r=>{r==="manageTargetLanguages"?e.push((0,Fa.jsx)(AQ,{})):t(r)},children:[(0,Fa.jsx)(Wt.List.Dropdown.Item,{icon:Wt.Icon.Pencil,title:`Translate to -> ${a.map(r=>wt[r].name).join(" ")}`,value:"manageTargetLanguages"},"manageTargetLanguages"),ka.map(r=>(0,Fa.jsx)(Wt.List.Dropdown.Item,{title:r.name,value:r.code},r.code))]})}var Ue=require("@raycast/api"),sQ=Rt(ao());var yt=require("@raycast/api"),JA=require("react/jsx-runtime"),aQ=({defaultActionsPrefix:e,value:A})=>{let t=(0,yt.getPreferenceValues)().defaultAction,a=(0,JA.jsx)(yt.Action.Paste,{title:e?`Paste ${e}`:"Paste",content:A}),r=(0,JA.jsx)(yt.Action.CopyToClipboard,{title:e?`Copy ${e}`:"Copy",content:A});return t==="paste"?(0,JA.jsxs)(JA.Fragment,{children:[a,r]}):(0,JA.jsxs)(JA.Fragment,{children:[r,a]})},rQ=({onAction:e})=>(0,JA.jsx)(yt.Action,{title:"Toggle Full Text",icon:yt.Icon.Text,onAction:e,shortcut:{modifiers:["cmd"],key:"f"}}),iQ=({translationText:e,translation:A})=>(0,JA.jsx)(yt.Action.OpenInBrowser,{title:"Open in Google Translate",shortcut:{modifiers:["opt"],key:"enter"},url:"https://translate.google.com/?sl="+A.langFrom+"&tl="+A.langTo+"&text="+encodeURIComponent(e)+"&op=translate"});var Ve=require("react/jsx-runtime");function nQ(e){let A=wt[e.languageSet.langFrom],t=wt[e.languageSet.langTo[0]],{data:a,isLoading:r}=(0,sQ.usePromise)(K3,[e.debouncedText,e.languageSet],{onWillExecute(){e.setIsLoading(!0)},onData(){e.setIsLoading(!1)},onError(i){e.setIsLoading(!1),(0,Ue.showToast)({style:Ue.Toast.Style.Failure,title:`Could not translate to ${t.name}`,message:i.toString()})}});return r?(0,Ve.jsx)(Ue.List.Item,{title:`Translating to ${t.name}...`,accessories:[{text:t.name,tooltip:`${A.name} -> ${t.name}`}]}):a?(A=wt[a.langFrom],(0,Ve.jsx)(Ue.List.Item,{title:a.translatedText,accessories:[{text:t.name,tooltip:`${A.name} -> ${t.name}`}],detail:(0,Ve.jsx)(Ue.List.Item.Detail,{markdown:a.translatedText,metadata:(0,Ve.jsxs)(Ue.List.Item.Detail.Metadata,{children:[(0,Ve.jsxs)(Ue.List.Item.Detail.Metadata.TagList,{title:"Source Language",children:[e.languageSet.langFrom==="auto"&&(0,Ve.jsx)(Ue.List.Item.Detail.Metadata.TagList.Item,{text:wt.auto.name,color:"#FECD57"}),(0,Ve.jsx)(Ue.List.Item.Detail.Metadata.TagList.Item,{text:A.name,color:"#A0D468"})]}),(0,Ve.jsx)(Ue.List.Item.Detail.Metadata.TagList,{title:"Target Language",children:(0,Ve.jsx)(Ue.List.Item.Detail.Metadata.TagList.Item,{text:t.name,color:"#B3A5EF"})})]})}),actions:(0,Ve.jsx)(Ue.ActionPanel,{children:(0,Ve.jsxs)(Ue.ActionPanel.Section,{children:[(0,Ve.jsx)(aQ,{defaultActionsPrefix:"Translation",value:a.translatedText}),(0,Ve.jsx)(rQ,{onAction:()=>e.setIsShowingDetail(!e.isShowingDetail)}),(0,Ve.jsx)(iQ,{translationText:e.debouncedText,translation:a})]})})},t.code)):null}var fn=require("react/jsx-runtime");function dQ(){let[e]=In(),[A]=Sa(),{proxy:t}=mn(),[a,r]=(0,P0.useState)(!0),[i,s]=$3(),n=eQ(i,500).trim(),[o,d]=(0,P0.useState)(new Map(A.map(g=>[g,!1]))),l=Array.from(o.values()).some(g=>g);function p(g,c){d(u=>new Map(u).set(g,c))}return(0,fn.jsx)(oQ.List,{searchBarPlaceholder:"Enter text to translate",searchText:i,onSearchTextChange:s,isLoading:l,isShowingDetail:a,searchBarAccessory:(0,fn.jsx)(tQ,{}),children:n?A.map(g=>(0,fn.jsx)(nQ,{debouncedText:n,languageSet:{langFrom:e,langTo:[g],proxy:t},isShowingDetail:a,setIsShowingDetail:r,setIsLoading:c=>p(g,c)},g)):null})} +`+res.data)}return[2,result]}})})};exports.getAudioBase64=getAudioBase64;var getAllAudioBase64=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n,d=t.splitPunct,l=d===void 0?"":d,p=t.timeout,g=p===void 0?1e4:p;return __awaiter(void 0,void 0,void 0,function(){var c,u,Q,m,C,B;return __generator(this,function(w){switch(w.label){case 0:if(assertInputTypes_1.default(e,r,s,o),typeof l!="string")throw new TypeError("splitPunct should be a string");if(typeof g!="number"||g<=0)throw new TypeError("timeout should be a positive number");return c=splitLongText_1.default(e,{splitPunct:l}),[4,Promise.all(c.map(function(I){return exports.getAudioBase64(I,{lang:r,slow:s,host:o,timeout:g})}))];case 1:for(u=w.sent(),Q=[],m=0;m<c.length;m++)C=c[m],B=u[m],Q.push({shortText:C,base64:B});return[2,Q]}})})};exports.getAllAudioBase64=getAllAudioBase64});var b3=E($A=>{"use strict";Object.defineProperty($A,"__esModule",{value:!0});$A.getAllAudioBase64=$A.getAudioBase64=$A.getAllAudioUrls=$A.getAudioUrl=void 0;var v3=j9();Object.defineProperty($A,"getAudioUrl",{enumerable:!0,get:function(){return v3.getAudioUrl}});Object.defineProperty($A,"getAllAudioUrls",{enumerable:!0,get:function(){return v3.getAllAudioUrls}});var N3=R3();Object.defineProperty($A,"getAudioBase64",{enumerable:!0,get:function(){return N3.getAudioBase64}});Object.defineProperty($A,"getAllAudioBase64",{enumerable:!0,get:function(){return N3.getAllAudioBase64}})});var jv={};j3(jv,{default:()=>q3});module.exports=X3(jv);var _3=require("@raycast/api"),V0=require("react");var xt=require("@raycast/api");var dn=require("@raycast/api"),T0=_t(jn()),B1=_t(require("react"));var Zp=_t(require("querystring")),Rr=_t(Op());var xs={auto:"Automatic",af:"Afrikaans",sq:"Albanian",am:"Amharic",ar:"Arabic",hy:"Armenian",az:"Azerbaijani",eu:"Basque",be:"Belarusian",bn:"Bengali",bs:"Bosnian",bg:"Bulgarian",ca:"Catalan",ceb:"Cebuano",ny:"Chichewa","zh-cn":"Chinese Simplified","zh-tw":"Chinese Traditional",co:"Corsican",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch",en:"English",eo:"Esperanto",et:"Estonian",tl:"Filipino",fi:"Finnish",fr:"French",fy:"Frisian",gl:"Galician",ka:"Georgian",de:"German",el:"Greek",gu:"Gujarati",ht:"Haitian Creole",ha:"Hausa",haw:"Hawaiian",iw:"Hebrew",hi:"Hindi",hmn:"Hmong",hu:"Hungarian",is:"Icelandic",ig:"Igbo",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",jw:"Javanese",kn:"Kannada",kk:"Kazakh",km:"Khmer",ko:"Korean",ku:"Kurdish (Kurmanji)",ky:"Kyrgyz",lo:"Lao",la:"Latin",lv:"Latvian",lt:"Lithuanian",lb:"Luxembourgish",mk:"Macedonian",mg:"Malagasy",ms:"Malay",ml:"Malayalam",mt:"Maltese",mi:"Maori",mr:"Marathi",mn:"Mongolian",my:"Myanmar (Burmese)",ne:"Nepali",no:"Norwegian",ps:"Pashto",fa:"Persian",pl:"Polish",pt:"Portuguese",pa:"Punjabi",ro:"Romanian",ru:"Russian",sm:"Samoan",gd:"Scots Gaelic",sr:"Serbian",st:"Sesotho",sn:"Shona",sd:"Sindhi",si:"Sinhala",sk:"Slovak",sl:"Slovenian",so:"Somali",es:"Spanish",su:"Sundanese",sw:"Swahili",sv:"Swedish",tg:"Tajik",ta:"Tamil",te:"Telugu",th:"Thai",tr:"Turkish",uk:"Ukrainian",ur:"Urdu",uz:"Uzbek",vi:"Vietnamese",cy:"Welsh",xh:"Xhosa",yi:"Yiddish",yo:"Yoruba",zu:"Zulu"};function _s(e){return e?(e=e.toLowerCase(),e in xs?e:Object.keys(xs).filter(t=>typeof xs[t]!="string"?!1:xs[t].toLowerCase()===e)[0]||void 0):void 0}function _9(e){return!!_s(e)}var H9=_t(Op());function tR(e){let A;if(Pp!==null)A=Pp;else{A=qs("T");let o=qs("K");A=[A(),A()],A[1]=o(),A=(Pp=Wp[A.join(o())]||"")||""}let t=qs("t"),a=qs("k");t=[t(),t()],t[1]=a(),a="&"+t.join("")+"=",t=A.split("."),A=Number(t[0])||0;for(var r=[],i=0,s=0;s<e.length;s++){let o=e.charCodeAt(s);128>o?r[i++]=o:(2048>o?r[i++]=o>>6|192:((o&64512)==55296&&s+1<e.length&&(e.charCodeAt(s+1)&64512)==56320?(o=65536+((o&1023)<<10)+(e.charCodeAt(++s)&1023),r[i++]=o>>18|240,r[i++]=o>>12&63|128):r[i++]=o>>12|224,r[i++]=o>>6&63|128),r[i++]=o&63|128)}let n=Number(A);for(let o=0;o<r.length;o++)e+=r[o],n=q9(n,"+-a^+6");return n=q9(n,"+-3^+b+-f"),n^=Number(t[1])||0,0>n&&(n=(n&2147483647)+2147483648),n%=1e6,a+(e.toString()+"."+(n^A))}var Pp=null,qs=function(e){return function(){return e}},q9=function(e,A){for(let t=0;t<A.length-2;t+=3){let a=A.charAt(t+2),r=a>="a"?a.charCodeAt(0)-87:Number(a);r=A.charAt(t+1)=="+"?e>>>r:e<<r,e=A.charAt(t)=="+"?e+r&4294967295:e^r}return e},O9=new Map,Wp={TKK:O9.get("TKK")||"0"};async function aR(){let e=Math.floor(Date.now()/36e5);if(Number(Wp.TKK.split(".")[0])!==e){let a=(await(await(0,H9.request)("https://translate.google.com")).body.text()).match(/tkk:'\d+.\d+'/g);if(a&&a.length>0){let r=a[0].split(":")[1].replace(/'/g,"");Wp.TKK=r,O9.set("TKK",r)}}}async function P9(e){try{await aR();let A=tR(e);return A=A.replace("&tk=",""),{name:"tk",value:A}}catch(A){return A}}async function W9(e,A){typeof A!="object"&&(A={}),e=String(e);let t=null;if([A.from,A.to].forEach(g=>{g&&!_9(g)&&(t=new Error,t.message=`The language '${g}' is not supported.`)}),t)throw t;Object.prototype.hasOwnProperty.call(A,"from")||(A.from="auto"),Object.prototype.hasOwnProperty.call(A,"to")||(A.to="en"),A.raw=!!A.raw,A.from=_s(A.from),A.to=_s(A.to);let a=await P9(e),r="https://translate.google.com/translate_a/single",i={client:"gtx",sl:A.from,tl:A.to,hl:A.to,dt:["at","bd","ex","ld","md","qca","rw","rm","ss","t"],ie:"UTF-8",oe:"UTF-8",otf:1,ssel:0,tsel:0,kc:7,q:e,[a.name]:a.value},s=`${r}?${Zp.default.stringify(i)}`,n,o=s;s.length>2048?(delete i.q,o=`${r}?${Zp.default.stringify(i)}`,n={method:"POST",body:new URLSearchParams({q:e}).toString(),headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"}},A.proxy&&(n.dispatcher=new Rr.ProxyAgent(A.proxy))):A.proxy&&(n={dispatcher:new Rr.ProxyAgent(A.proxy)});let l=await(await(0,Rr.request)(o,n)).body.json(),p={text:"",from:{language:{didYouMean:!1,iso:""},text:{autoCorrected:!1,value:"",didYouMean:!1}},raw:""};if(A.raw&&(p.raw=l),l[0].forEach(g=>{g[0]&&(p.text+=g[0])}),l[2]===l[8][0][0]?p.from.language.iso=l[2]:(p.from.language.didYouMean=!0,p.from.language.iso=l[8][0][0]),l[7]&&l[7][0]){let g=l[7][0];g=g.replace(/<b><i>/g,"["),g=g.replace(/<\/i><\/b>/g,"]"),p.from.text.value=g,l[7][5]===!0?p.from.text.autoCorrected=!0:p.from.text.didYouMean=!0}return p}var Hv=_t(b3());var Lr="auto",on=class extends Error{},Ov=e=>e?.[0]?.[1]?.[2];async function S3(e,A){try{if(!e)return{originalText:e,translatedText:"",pronunciationText:"",langFrom:A.langFrom,langTo:A.langTo[0]};let t=await W9(e,{from:A.langFrom,to:A.langTo[0],raw:!0,proxy:A.proxy});return{originalText:e,translatedText:t.text,pronunciationText:Ov(t?.raw),langFrom:t?.from?.language?.iso,langTo:A.langTo[0]}}catch(t){if(t instanceof Error){if(t.name==="TooManyRequestsError"){let r=new on;throw r.name="Too many requests",r.message="please try again later",r}let a=new on;throw a.name=t.name,a.message=t.message,a}throw t}}var pn=()=>B1.default.useMemo(()=>(0,dn.getPreferenceValues)(),[]),k3=()=>{let e=pn(),[A,t]=B1.default.useState(""),a=B1.default.useRef(A);return a.current=A,B1.default.useEffect(()=>{e.autoInput&&(0,dn.getSelectedText)().then(r=>{a.current||t(r??"")}).catch(r=>{console.log("Error:",r)})},[]),[A,t]};var F3=(e,A)=>{let[t,a]=B1.default.useState(e);return B1.default.useEffect(()=>{let r=setTimeout(()=>{a(e)},A);return()=>{clearTimeout(r)}},[e,A]),t};var ln=()=>{let[e,A]=(0,T0.useCachedState)("sourceLanguage",Lr);return[e,A]},Da=()=>{let e=pn(),[A,t]=(0,T0.useCachedState)("targetLanguages",[e.lang1,e.lang2].filter(a=>a!==Lr));return[A,t]};var U3={"Auto-detect":{code:"auto",name:"Auto-detect",flag:"\u{1F310}"},Afrikaans:{code:"af",name:"Afrikaans",flag:"\u{1F1FF}\u{1F1E6}"},Albanian:{code:"sq",name:"Albanian",flag:"\u{1F1E6}\u{1F1F1}"},Amharic:{code:"am",name:"Amharic"},Arabic:{code:"ar",name:"Arabic"},Armenian:{code:"hy",name:"Armenian",flag:"\u{1F1E6}\u{1F1F2}"},Azerbaijani:{code:"az",name:"Azerbaijani",flag:"\u{1F1E6}\u{1F1FF}"},Basque:{code:"eu",name:"Basque"},Belarusian:{code:"be",name:"Belarusian",flag:"\u{1F1E7}\u{1F1FE}"},Bengali:{code:"bn",name:"Bengali"},Bosnian:{code:"bs",name:"Bosnian",flag:"\u{1F1E7}\u{1F1E6}"},Bulgarian:{code:"bg",name:"Bulgarian",flag:"\u{1F1E7}\u{1F1EC}"},Catalan:{code:"ca",name:"Catalan"},Cebuano:{code:"ceb",name:"Cebuano"},"Chinese Simplified":{code:"zh-CN",name:"Chinese Simplified",flag:"\u{1F1E8}\u{1F1F3}"},Mandarin:{code:"zh-TW",name:"Chinese Traditional"},Corsican:{code:"co",name:"Corsican"},Croatian:{code:"hr",name:"Croatian",flag:"\u{1F1ED}\u{1F1F7}"},Czech:{code:"cs",name:"Czech",flag:"\u{1F1E8}\u{1F1FF}"},Danish:{code:"da",name:"Danish",flag:"\u{1F1E9}\u{1F1F0}"},Dutch:{code:"nl",name:"Dutch",flag:"\u{1F1F3}\u{1F1F1}"},English:{code:"en",name:"English",flag:"\u{1F1EC}\u{1F1E7}"},Esperanto:{code:"eo",name:"Esperanto"},Estonian:{code:"et",name:"Estonian",flag:"\u{1F1EA}\u{1F1EA}"},Finnish:{code:"fi",name:"Finnish",flag:"\u{1F1EB}\u{1F1EE}"},French:{code:"fr",name:"French",flag:"\u{1F1EB}\u{1F1F7}"},Frisian:{code:"fy",name:"Frisian"},Galician:{code:"gl",name:"Galician"},Georgian:{code:"ka",name:"Georgian",flag:"\u{1F1EC}\u{1F1EA}"},German:{code:"de",name:"German",flag:"\u{1F1E9}\u{1F1EA}"},Greek:{code:"el",name:"Greek",flag:"\u{1F1EC}\u{1F1F7}"},Gujarati:{code:"gu",name:"Gujarati"},"Haitian Creole":{code:"ht",name:"Haitian Creole",flag:"\u{1F1ED}\u{1F1F9}"},Hausa:{code:"ha",name:"Hausa"},Hawaiian:{code:"haw",name:"Hawaiian",flag:"\u{1F33A}"},Hebrew:{code:"iw",name:"Hebrew",flag:"\u{1F1EE}\u{1F1F1}"},Hindi:{code:"hi",name:"Hindi",flag:"\u{1F1EE}\u{1F1F3}"},Hmong:{code:"hmn",name:"Hmong"},Hungarian:{code:"hu",name:"Hungarian",flag:"\u{1F1ED}\u{1F1FA}"},Icelandic:{code:"is",name:"Icelandic",flag:"\u{1F1EE}\u{1F1F8}"},Igbo:{code:"ig",name:"Igbo"},Indonesian:{code:"id",name:"Indonesian",flag:"\u{1F1EE}\u{1F1E9}"},Irish:{code:"ga",name:"Irish",flag:"\u{1F1EE}\u{1F1EA}"},Italian:{code:"it",name:"Italian",flag:"\u{1F1EE}\u{1F1F9}"},Japanese:{code:"ja",name:"Japanese",flag:"\u{1F1EF}\u{1F1F5}"},Javanese:{code:"jv",name:"Javanese"},Kannada:{code:"kn",name:"Kannada"},Kazakh:{code:"kk",name:"Kazakh",flag:"\u{1F1F0}\u{1F1FF}"},Khmer:{code:"km",name:"Khmer"},Kinyarwanda:{code:"rw",name:"Kinyarwanda"},Korean:{code:"ko",name:"Korean",flag:"\u{1F1F0}\u{1F1F7}"},Kurdish:{code:"ku",name:"Kurdish"},Kyrgyz:{code:"ky",name:"Kyrgyz"},Lao:{code:"lo",name:"Lao"},Latvian:{code:"lv",name:"Latvian",flag:"\u{1F1F1}\u{1F1FB}"},Lithuanian:{code:"lt",name:"Lithuanian",flag:"\u{1F1F1}\u{1F1F9}"},Luxembourgish:{code:"lb",name:"Luxembourgish",flag:"\u{1F1F1}\u{1F1FA}"},Latin:{code:"la",name:"Latin",flag:"\u{1F3DB}"},Macedonian:{code:"mk",name:"Macedonian",flag:"\u{1F1F2}\u{1F1F0}"},Malagasy:{code:"mg",name:"Malagasy"},Malay:{code:"ms",name:"Malay",flag:"\u{1F1F2}\u{1F1FE}"},Malayalam:{code:"ml",name:"Malayalam"},Maltese:{code:"mt",name:"Maltese",flag:"\u{1F1F2}\u{1F1F9}"},Maori:{code:"mi",name:"Maori",flag:"\u{1F1F3}\u{1F1FF}"},Marathi:{code:"mr",name:"Marathi"},Mongolian:{code:"mn",name:"Mongolian",flag:"\u{1F1F2}\u{1F1F3}"},"Myanmar (Burmese)":{code:"my",name:"Myanmar (Burmese)",flag:"\u{1F1F2}\u{1F1F2}"},Nepali:{code:"ne",name:"Nepali",flag:"\u{1F1F3}\u{1F1F5}"},Norwegian:{code:"no",name:"Norwegian",flag:"\u{1F1F3}\u{1F1F4}"},"Nyanja (Chichewa)":{code:"ny",name:"Nyanja (Chichewa)"},"Odia (Oriya)":{code:"or",name:"Odia (Oriya)"},Pashto:{code:"ps",name:"Pashto"},Persian:{code:"fa",name:"Persian",flag:"\u{1F1EE}\u{1F1F7}"},Polish:{code:"pl",name:"Polish",flag:"\u{1F1F5}\u{1F1F1}"},Portuguese:{code:"pt",name:"Portuguese",flag:"\u{1F1F5}\u{1F1F9}"},Punjabi:{code:"pa",name:"Punjabi",flag:"\u{1F1EE}\u{1F1F3}"},Romanian:{code:"ro",name:"Romanian",flag:"\u{1F1F7}\u{1F1F4}"},Russian:{code:"ru",name:"Russian",flag:"\u{1F1F7}\u{1F1FA}"},Samoan:{code:"sm",name:"Samoan"},"Scots Gaelic":{code:"gd",name:"Scots Gaelic",flag:"\u{1F3F4}\u{E0067}\u{E0062}\u{E0073}\u{E0063}\u{E0074}\u{E007F}"},Serbian:{code:"sr",name:"Serbian",flag:"\u{1F1F7}\u{1F1F8}"},Sesotho:{code:"st",name:"Sesotho"},Shona:{code:"sn",name:"Shona"},Sindhi:{code:"sd",name:"Sindhi"},"Sinhala (Sinhalese)":{code:"si",name:"Sinhala (Sinhalese)"},Slovak:{code:"sk",name:"Slovak",flag:"\u{1F1F8}\u{1F1F0}"},Slovenian:{code:"sl",name:"Slovenian",flag:"\u{1F1F8}\u{1F1EE}"},Somali:{code:"so",name:"Somali",flag:"\u{1F1F8}\u{1F1F4}"},Spanish:{code:"es",name:"Spanish",flag:"\u{1F1EA}\u{1F1F8}"},Sundanese:{code:"su",name:"Sundanese",flag:"\u{1F1F8}\u{1F1E9}"},Swahili:{code:"sw",name:"Swahili"},Swedish:{code:"sv",name:"Swedish",flag:"\u{1F1F8}\u{1F1EA}"},"Tagalog (Filipino)":{code:"tl",name:"Tagalog (Filipino)",flag:"\u{1F1F5}\u{1F1ED}"},Tajik:{code:"tg",name:"Tajik"},Tamil:{code:"ta",name:"Tamil"},Tatar:{code:"tt",name:"Tatar"},Telugu:{code:"te",name:"Telugu"},Thai:{code:"th",name:"Thai"},Turkish:{code:"tr",name:"Turkish",flag:"\u{1F1F9}\u{1F1F7}"},Turkmen:{code:"tk",name:"Turkmen",flag:"\u{1F1F9}\u{1F1F2}"},Ukrainian:{code:"uk",name:"Ukrainian",flag:"\u{1F1FA}\u{1F1E6}"},Urdu:{code:"ur",name:"Urdu"},Uyghur:{code:"ug",name:"Uyghur"},Uzbek:{code:"uz",name:"Uzbek"},Vietnamese:{code:"vi",name:"Vietnamese",flag:"\u{1F1FB}\u{1F1F3}"},Welsh:{code:"cy",name:"Welsh",flag:"\u{1F3F4}\u{E0067}\u{E0062}\u{E0077}\u{E006C}\u{E0073}\u{E007F}"},Xhosa:{code:"xh",name:"Xhosa"},Yiddish:{code:"yi",name:"Yiddish",flag:"\u{1F1EE}\u{1F1F1}"},Yoruba:{code:"yo",name:"Yoruba"},Zulu:{code:"zu",name:"Zulu"}};var L3={auto:{code:"auto",name:"Auto-detect",flag:"\u{1F310}"},af:{code:"af",name:"Afrikaans",flag:"\u{1F1FF}\u{1F1E6}"},sq:{code:"sq",name:"Albanian",flag:"\u{1F1E6}\u{1F1F1}"},am:{code:"am",name:"Amharic"},ar:{code:"ar",name:"Arabic"},hy:{code:"hy",name:"Armenian",flag:"\u{1F1E6}\u{1F1F2}"},az:{code:"az",name:"Azerbaijani",flag:"\u{1F1E6}\u{1F1FF}"},eu:{code:"eu",name:"Basque"},be:{code:"be",name:"Belarusian",flag:"\u{1F1E7}\u{1F1FE}"},bn:{code:"bn",name:"Bengali"},bs:{code:"bs",name:"Bosnian",flag:"\u{1F1E7}\u{1F1E6}"},bg:{code:"bg",name:"Bulgarian",flag:"\u{1F1E7}\u{1F1EC}"},ca:{code:"ca",name:"Catalan"},ceb:{code:"ceb",name:"Cebuano"},"zh-CN":{code:"zh-CN",name:"Chinese Simplified",flag:"\u{1F1E8}\u{1F1F3}"},"zh-TW":{code:"zh-TW",name:"Chinese Traditional"},co:{code:"co",name:"Corsican"},hr:{code:"hr",name:"Croatian",flag:"\u{1F1ED}\u{1F1F7}"},cs:{code:"cs",name:"Czech",flag:"\u{1F1E8}\u{1F1FF}"},da:{code:"da",name:"Danish",flag:"\u{1F1E9}\u{1F1F0}"},nl:{code:"nl",name:"Dutch",flag:"\u{1F1F3}\u{1F1F1}"},en:{code:"en",name:"English",flag:"\u{1F1EC}\u{1F1E7}"},eo:{code:"eo",name:"Esperanto"},et:{code:"et",name:"Estonian",flag:"\u{1F1EA}\u{1F1EA}"},fi:{code:"fi",name:"Finnish",flag:"\u{1F1EB}\u{1F1EE}"},fr:{code:"fr",name:"French",flag:"\u{1F1EB}\u{1F1F7}"},fy:{code:"fy",name:"Frisian"},gl:{code:"gl",name:"Galician"},ka:{code:"ka",name:"Georgian",flag:"\u{1F1EC}\u{1F1EA}"},de:{code:"de",name:"German",flag:"\u{1F1E9}\u{1F1EA}"},el:{code:"el",name:"Greek",flag:"\u{1F1EC}\u{1F1F7}"},gu:{code:"gu",name:"Gujarati"},ht:{code:"ht",name:"Haitian Creole",flag:"\u{1F1ED}\u{1F1F9}"},ha:{code:"ha",name:"Hausa"},haw:{code:"haw",name:"Hawaiian",flag:"\u{1F33A}"},iw:{code:"iw",name:"Hebrew",flag:"\u{1F1EE}\u{1F1F1}"},hi:{code:"hi",name:"Hindi",flag:"\u{1F1EE}\u{1F1F3}"},hmn:{code:"hmn",name:"Hmong"},hu:{code:"hu",name:"Hungarian",flag:"\u{1F1ED}\u{1F1FA}"},is:{code:"is",name:"Icelandic",flag:"\u{1F1EE}\u{1F1F8}"},ig:{code:"ig",name:"Igbo"},id:{code:"id",name:"Indonesian",flag:"\u{1F1EE}\u{1F1E9}"},ga:{code:"ga",name:"Irish",flag:"\u{1F1EE}\u{1F1EA}"},it:{code:"it",name:"Italian",flag:"\u{1F1EE}\u{1F1F9}"},ja:{code:"ja",name:"Japanese",flag:"\u{1F1EF}\u{1F1F5}"},jv:{code:"jv",name:"Javanese"},kn:{code:"kn",name:"Kannada"},kk:{code:"kk",name:"Kazakh",flag:"\u{1F1F0}\u{1F1FF}"},km:{code:"km",name:"Khmer"},rw:{code:"rw",name:"Kinyarwanda"},ko:{code:"ko",name:"Korean",flag:"\u{1F1F0}\u{1F1F7}"},ku:{code:"ku",name:"Kurdish"},ky:{code:"ky",name:"Kyrgyz"},lo:{code:"lo",name:"Lao"},lv:{code:"lv",name:"Latvian",flag:"\u{1F1F1}\u{1F1FB}"},lt:{code:"lt",name:"Lithuanian",flag:"\u{1F1F1}\u{1F1F9}"},lb:{code:"lb",name:"Luxembourgish",flag:"\u{1F1F1}\u{1F1FA}"},la:{code:"la",name:"Latin",flag:"\u{1F3DB}"},mk:{code:"mk",name:"Macedonian",flag:"\u{1F1F2}\u{1F1F0}"},mg:{code:"mg",name:"Malagasy"},ms:{code:"ms",name:"Malay",flag:"\u{1F1F2}\u{1F1FE}"},ml:{code:"ml",name:"Malayalam"},mt:{code:"mt",name:"Maltese",flag:"\u{1F1F2}\u{1F1F9}"},mi:{code:"mi",name:"Maori",flag:"\u{1F1F3}\u{1F1FF}"},mr:{code:"mr",name:"Marathi"},mn:{code:"mn",name:"Mongolian",flag:"\u{1F1F2}\u{1F1F3}"},my:{code:"my",name:"Myanmar (Burmese)",flag:"\u{1F1F2}\u{1F1F2}"},ne:{code:"ne",name:"Nepali",flag:"\u{1F1F3}\u{1F1F5}"},no:{code:"no",name:"Norwegian",flag:"\u{1F1F3}\u{1F1F4}"},ny:{code:"ny",name:"Nyanja (Chichewa)"},or:{code:"or",name:"Odia (Oriya)"},ps:{code:"ps",name:"Pashto"},fa:{code:"fa",name:"Persian",flag:"\u{1F1EE}\u{1F1F7}"},pl:{code:"pl",name:"Polish",flag:"\u{1F1F5}\u{1F1F1}"},pt:{code:"pt",name:"Portuguese",flag:"\u{1F1F5}\u{1F1F9}"},pa:{code:"pa",name:"Punjabi",flag:"\u{1F1EE}\u{1F1F3}"},ro:{code:"ro",name:"Romanian",flag:"\u{1F1F7}\u{1F1F4}"},ru:{code:"ru",name:"Russian",flag:"\u{1F1F7}\u{1F1FA}"},sm:{code:"sm",name:"Samoan"},gd:{code:"gd",name:"Scots Gaelic",flag:"\u{1F3F4}\u{E0067}\u{E0062}\u{E0073}\u{E0063}\u{E0074}\u{E007F}"},sr:{code:"sr",name:"Serbian",flag:"\u{1F1F7}\u{1F1F8}"},st:{code:"st",name:"Sesotho"},sn:{code:"sn",name:"Shona"},sd:{code:"sd",name:"Sindhi"},si:{code:"si",name:"Sinhala (Sinhalese)"},sk:{code:"sk",name:"Slovak",flag:"\u{1F1F8}\u{1F1F0}"},sl:{code:"sl",name:"Slovenian",flag:"\u{1F1F8}\u{1F1EE}"},so:{code:"so",name:"Somali",flag:"\u{1F1F8}\u{1F1F4}"},es:{code:"es",name:"Spanish",flag:"\u{1F1EA}\u{1F1F8}"},su:{code:"su",name:"Sundanese",flag:"\u{1F1F8}\u{1F1E9}"},sw:{code:"sw",name:"Swahili"},sv:{code:"sv",name:"Swedish",flag:"\u{1F1F8}\u{1F1EA}"},tl:{code:"tl",name:"Tagalog (Filipino)",flag:"\u{1F1F5}\u{1F1ED}"},tg:{code:"tg",name:"Tajik"},ta:{code:"ta",name:"Tamil"},tt:{code:"tt",name:"Tatar"},te:{code:"te",name:"Telugu"},th:{code:"th",name:"Thai"},tr:{code:"tr",name:"Turkish",flag:"\u{1F1F9}\u{1F1F7}"},tk:{code:"tk",name:"Turkmen",flag:"\u{1F1F9}\u{1F1F2}"},uk:{code:"uk",name:"Ukrainian",flag:"\u{1F1FA}\u{1F1E6}"},ur:{code:"ur",name:"Urdu"},ug:{code:"ug",name:"Uyghur"},uz:{code:"uz",name:"Uzbek"},vi:{code:"vi",name:"Vietnamese",flag:"\u{1F1FB}\u{1F1F3}"},cy:{code:"cy",name:"Welsh",flag:"\u{1F3F4}\u{E0067}\u{E0062}\u{E0077}\u{E006C}\u{E0073}\u{E007F}"},xh:{code:"xh",name:"Xhosa"},yi:{code:"yi",name:"Yiddish",flag:"\u{1F1EE}\u{1F1F1}"},yo:{code:"yo",name:"Yoruba"},zu:{code:"zu",name:"Zulu"}};var Gt=(e,A="\u{1F3F3}\uFE0F")=>e?.flag??A,gn=e=>Gt(h1[e]),h1=L3,Zv=U3,cn=Object.values(Zv);var re=require("@raycast/api");var pA=require("react/jsx-runtime"),M3=()=>{let[e,A]=Da();return(0,pA.jsxs)(re.List,{searchBarPlaceholder:"Search languages",children:[(0,pA.jsx)(re.List.Section,{title:"Selected Languages",subtitle:`${e.length}`,children:e.map(t=>(0,pA.jsx)(re.List.Item,{title:`${gn(t)} ${h1[t].name}`,subtitle:t,actions:e.length===1&&e[0]==="en"?void 0:(0,pA.jsxs)(re.ActionPanel,{children:[(0,pA.jsx)(re.Action,{title:"Remove",icon:re.Icon.Minus,style:re.Action.Style.Destructive,shortcut:{modifiers:["ctrl"],key:"x"},onAction:()=>{let a=e.filter(r=>r!=t);A(a.length===0?["en"]:a),(0,re.clearSearchBar)()}}),(0,pA.jsx)(re.Action,{title:"Move up",icon:re.Icon.ArrowUp,shortcut:{modifiers:["shift"],key:"arrowUp"},onAction:()=>{let a=e.indexOf(t);if(a>0){let r=[...e];r.splice(a-1,0,r.splice(a,1)[0]),A(r)}}}),(0,pA.jsx)(re.Action,{title:"Move down",icon:re.Icon.ArrowDown,shortcut:{modifiers:["shift"],key:"arrowDown"},onAction:()=>{let a=e.indexOf(t);if(a<e.length-1){let r=[...e];r.splice(a+1,0,r.splice(a,1)[0]),A(r)}}})]})},t))}),(0,pA.jsx)(re.List.Section,{title:"Available Languages",children:cn.filter(t=>t.code!=Lr&&!e.includes(t.code)).map(t=>(0,pA.jsx)(re.List.Item,{title:`${Gt(t)} ${t.name}`,subtitle:t.code,actions:(0,pA.jsx)(re.ActionPanel,{children:(0,pA.jsx)(re.Action,{title:"Add",icon:re.Icon.Plus,onAction:()=>{A(a=>[...a,t.code]),(0,re.clearSearchBar)()}})})},t.code))})]})};var Ra=require("react/jsx-runtime");function T3(){let e=(0,xt.useNavigation)(),[A,t]=ln(),[a]=Da();return(0,Ra.jsxs)(xt.List.Dropdown,{value:A,tooltip:"Language",onChange:r=>{r==="manageTargetLanguages"?e.push((0,Ra.jsx)(M3,{})):t(r)},children:[(0,Ra.jsx)(xt.List.Dropdown.Item,{icon:xt.Icon.Pencil,title:`Translate to -> ${a.map(gn).join(" ")}`,value:"manageTargetLanguages"},"manageTargetLanguages"),cn.map(r=>(0,Ra.jsx)(xt.List.Dropdown.Item,{title:`${Gt(r)} ${r.name}`,value:r.code},r.code))]})}var MA=require("@raycast/api"),G3=_t(jn());var mt=require("@raycast/api"),LA=require("react/jsx-runtime"),V3=({defaultActionsPrefix:e,value:A})=>{let t=(0,mt.getPreferenceValues)().defaultAction,a=(0,LA.jsx)(mt.Action.Paste,{title:e?`Paste ${e}`:"Paste",content:A}),r=(0,LA.jsx)(mt.Action.CopyToClipboard,{title:e?`Copy ${e}`:"Copy",content:A});return t==="paste"?(0,LA.jsxs)(LA.Fragment,{children:[a,r]}):(0,LA.jsxs)(LA.Fragment,{children:[r,a]})},Y3=({onAction:e})=>(0,LA.jsx)(mt.Action,{title:"Toggle Full Text",icon:mt.Icon.Text,onAction:e,shortcut:{modifiers:["cmd"],key:"f"}}),J3=({translationText:e,translation:A})=>(0,LA.jsx)(mt.Action.OpenInBrowser,{title:"Open in Google Translate",shortcut:{modifiers:["opt"],key:"enter"},url:"https://translate.google.com/?sl="+A.langFrom+"&tl="+A.langTo+"&text="+encodeURIComponent(e)+"&op=translate"});var et=require("react/jsx-runtime");function x3(e){let A=h1[e.languageSet.langFrom],t=h1[e.languageSet.langTo[0]],{data:a,isLoading:r}=(0,G3.usePromise)(S3,[e.debouncedText,e.languageSet],{onWillExecute(){e.setIsLoading(!0)},onData(){e.setIsLoading(!1)},onError(i){e.setIsLoading(!1),(0,MA.showToast)({style:MA.Toast.Style.Failure,title:`Could not translate to ${t.name}`,message:i.toString()})}});return r?(0,et.jsx)(MA.List.Item,{title:`Translating to ${t.name}...`,accessories:[{text:`${Gt(t,t?.code)}`,tooltip:`${A.name} -> ${t.name}`}]}):a?(A=h1[a.langFrom],(0,et.jsx)(MA.List.Item,{title:a.translatedText,accessories:[{text:`${Gt(t,t?.code)}`,tooltip:`${A.name} -> ${t.name}`}],detail:(0,et.jsx)(MA.List.Item.Detail,{markdown:a.translatedText}),actions:(0,et.jsx)(MA.ActionPanel,{children:(0,et.jsxs)(MA.ActionPanel.Section,{children:[(0,et.jsx)(V3,{defaultActionsPrefix:"Translation",value:a.translatedText}),(0,et.jsx)(Y3,{onAction:()=>e.setIsShowingDetail(!e.isShowingDetail)}),(0,et.jsx)(J3,{translationText:e.debouncedText,translation:a})]})})},t.code)):null}var un=require("react/jsx-runtime");function q3(){let[e]=ln(),[A]=Da(),{proxy:t}=pn(),[a,r]=(0,V0.useState)(!0),[i,s]=k3(),n=F3(i,500).trim(),[o,d]=(0,V0.useState)(new Map(A.map(g=>[g,!1]))),l=Array.from(o.values()).some(g=>g);function p(g,c){d(u=>new Map(u).set(g,c))}return(0,un.jsx)(_3.List,{searchBarPlaceholder:"Enter text to translate",searchText:i,onSearchTextChange:s,isLoading:l,isShowingDetail:a,searchBarAccessory:(0,un.jsx)(T3,{}),children:n?A.map(g=>(0,un.jsx)(x3,{debouncedText:n,languageSet:{langFrom:e,langTo:[g],proxy:t},isShowingDetail:a,setIsShowingDetail:r,setIsLoading:c=>p(g,c)},g)):null})} /*! Bundled license information: media-typer/index.js: diff --git a/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/quick-translate.js.map b/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/quick-translate.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../node_modules/dequal/lite/index.js", "../node_modules/@raycast/utils/dist/useDeepMemo.js", "../node_modules/@raycast/utils/dist/useLatest.js", "../node_modules/@raycast/utils/dist/handle-error-toast-action.js", "../node_modules/@raycast/utils/dist/usePromise.js", "../node_modules/@raycast/utils/dist/useCachedState.js", "../node_modules/object-hash/index.js", "../node_modules/@raycast/utils/dist/useCachedPromise.js", "../node_modules/media-typer/index.js", "../node_modules/content-type/index.js", "../node_modules/webidl-conversions/lib/index.js", "../node_modules/whatwg-url/lib/utils.js", "../node_modules/tr46/lib/mappingTable.json", "../node_modules/tr46/index.js", "../node_modules/whatwg-url/lib/url-state-machine.js", "../node_modules/whatwg-url/lib/URL-impl.js", "../node_modules/whatwg-url/lib/URL.js", "../node_modules/whatwg-url/lib/public-api.js", "../node_modules/node-fetch/lib/index.js", "../node_modules/cross-fetch/dist/node-ponyfill.js", "../node_modules/@raycast/utils/dist/useFetch.js", "../node_modules/signal-exit/src/signals.ts", "../node_modules/signal-exit/src/index.ts", "../node_modules/@raycast/utils/dist/exec-utils.js", "../node_modules/@raycast/utils/dist/useExec.js", "../node_modules/@raycast/utils/dist/useSQL.js", "../node_modules/@raycast/utils/dist/useForm.js", "../node_modules/@raycast/utils/dist/useAI.js", "../node_modules/@raycast/utils/dist/useFrecencySorting.js", "../node_modules/@raycast/utils/dist/icon/color.js", "../node_modules/@raycast/utils/dist/icon/avatar.js", "../node_modules/@raycast/utils/dist/icon/favicon.js", "../node_modules/@raycast/utils/dist/icon/progress.js", "../node_modules/@raycast/utils/dist/icon/index.js", "../node_modules/@raycast/utils/dist/run-applescript.js", "../node_modules/@raycast/utils/dist/index.js", "../node_modules/undici/lib/core/symbols.js", "../node_modules/undici/lib/core/errors.js", "../node_modules/undici/lib/core/util.js", "../node_modules/undici/lib/timers.js", "../node_modules/busboy/lib/utils.js", "../node_modules/streamsearch/lib/sbmh.js", "../node_modules/busboy/lib/types/multipart.js", "../node_modules/busboy/lib/types/urlencoded.js", "../node_modules/busboy/lib/index.js", "../node_modules/undici/lib/fetch/constants.js", "../node_modules/undici/lib/fetch/global.js", "../node_modules/undici/lib/fetch/util.js", "../node_modules/undici/lib/fetch/symbols.js", "../node_modules/undici/lib/fetch/webidl.js", "../node_modules/undici/lib/fetch/dataURL.js", "../node_modules/undici/lib/fetch/file.js", "../node_modules/undici/lib/fetch/formdata.js", "../node_modules/undici/lib/fetch/body.js", "../node_modules/undici/lib/core/request.js", "../node_modules/undici/lib/dispatcher.js", "../node_modules/undici/lib/dispatcher-base.js", "../node_modules/undici/lib/core/connect.js", "../node_modules/undici/src/llhttp/utils.ts", "../node_modules/undici/src/llhttp/constants.ts", "../node_modules/undici/lib/handler/RedirectHandler.js", "../node_modules/undici/lib/interceptor/redirectInterceptor.js", "../node_modules/undici/lib/llhttp/llhttp-wasm.js", "../node_modules/undici/lib/llhttp/llhttp_simd-wasm.js", "../node_modules/undici/lib/client.js", "../node_modules/undici/lib/node/fixed-queue.js", "../node_modules/undici/lib/pool-stats.js", "../node_modules/undici/lib/pool-base.js", "../node_modules/undici/lib/pool.js", "../node_modules/undici/lib/balanced-pool.js", "../node_modules/undici/lib/compat/dispatcher-weakref.js", "../node_modules/undici/lib/agent.js", "../node_modules/undici/lib/api/readable.js", "../node_modules/undici/lib/api/util.js", "../node_modules/undici/lib/api/abort-signal.js", "../node_modules/undici/lib/api/api-request.js", "../node_modules/undici/lib/api/api-stream.js", "../node_modules/undici/lib/api/api-pipeline.js", "../node_modules/undici/lib/api/api-upgrade.js", "../node_modules/undici/lib/api/api-connect.js", "../node_modules/undici/lib/api/index.js", "../node_modules/undici/lib/mock/mock-errors.js", "../node_modules/undici/lib/mock/mock-symbols.js", "../node_modules/undici/lib/mock/mock-utils.js", "../node_modules/undici/lib/mock/mock-interceptor.js", "../node_modules/undici/lib/mock/mock-client.js", "../node_modules/undici/lib/mock/mock-pool.js", "../node_modules/undici/lib/mock/pluralizer.js", "../node_modules/undici/lib/mock/pending-interceptors-formatter.js", "../node_modules/undici/lib/mock/mock-agent.js", "../node_modules/undici/lib/proxy-agent.js", "../node_modules/undici/lib/global.js", "../node_modules/undici/lib/handler/DecoratorHandler.js", "../node_modules/undici/lib/fetch/headers.js", "../node_modules/undici/lib/fetch/response.js", "../node_modules/undici/lib/fetch/request.js", "../node_modules/undici/lib/fetch/index.js", "../node_modules/undici/lib/fileapi/symbols.js", "../node_modules/undici/lib/fileapi/progressevent.js", "../node_modules/undici/lib/fileapi/encoding.js", "../node_modules/undici/lib/fileapi/util.js", "../node_modules/undici/lib/fileapi/filereader.js", "../node_modules/undici/lib/cache/symbols.js", "../node_modules/undici/lib/cache/util.js", "../node_modules/undici/lib/cache/cache.js", "../node_modules/undici/lib/cache/cachestorage.js", "../node_modules/undici/lib/cookies/constants.js", "../node_modules/undici/lib/cookies/util.js", "../node_modules/undici/lib/cookies/parse.js", "../node_modules/undici/lib/cookies/index.js", "../node_modules/undici/lib/websocket/constants.js", "../node_modules/undici/lib/websocket/symbols.js", "../node_modules/undici/lib/websocket/events.js", "../node_modules/undici/lib/websocket/util.js", "../node_modules/undici/lib/websocket/connection.js", "../node_modules/undici/lib/websocket/frame.js", "../node_modules/undici/lib/websocket/receiver.js", "../node_modules/undici/lib/websocket/websocket.js", "../node_modules/undici/index.js", "../node_modules/google-tts-api/src/assertInputTypes.ts", "../node_modules/google-tts-api/src/splitLongText.ts", "../node_modules/google-tts-api/src/getAudioUrl.ts", "../node_modules/axios/lib/helpers/bind.js", "../node_modules/axios/lib/utils.js", "../node_modules/axios/lib/helpers/buildURL.js", "../node_modules/axios/lib/core/InterceptorManager.js", "../node_modules/axios/lib/helpers/normalizeHeaderName.js", "../node_modules/axios/lib/core/enhanceError.js", "../node_modules/axios/lib/core/createError.js", "../node_modules/axios/lib/core/settle.js", "../node_modules/axios/lib/helpers/cookies.js", "../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../node_modules/axios/lib/helpers/combineURLs.js", "../node_modules/axios/lib/core/buildFullPath.js", "../node_modules/axios/lib/helpers/parseHeaders.js", "../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../node_modules/axios/lib/adapters/xhr.js", "../node_modules/ms/index.js", "../node_modules/debug/src/common.js", "../node_modules/debug/src/browser.js", "../node_modules/has-flag/index.js", "../node_modules/supports-color/index.js", "../node_modules/debug/src/node.js", "../node_modules/debug/src/index.js", "../node_modules/follow-redirects/debug.js", "../node_modules/follow-redirects/index.js", "../node_modules/axios/package.json", "../node_modules/axios/lib/adapters/http.js", "../node_modules/axios/lib/defaults.js", "../node_modules/axios/lib/core/transformData.js", "../node_modules/axios/lib/cancel/isCancel.js", "../node_modules/axios/lib/core/dispatchRequest.js", "../node_modules/axios/lib/core/mergeConfig.js", "../node_modules/axios/lib/helpers/validator.js", "../node_modules/axios/lib/core/Axios.js", "../node_modules/axios/lib/cancel/Cancel.js", "../node_modules/axios/lib/cancel/CancelToken.js", "../node_modules/axios/lib/helpers/spread.js", "../node_modules/axios/lib/helpers/isAxiosError.js", "../node_modules/axios/lib/axios.js", "../node_modules/axios/index.js", "../node_modules/google-tts-api/src/getAudioBase64.ts", "../node_modules/google-tts-api/src/index.ts", "../node_modules/agent-base/src/helpers.ts", "../node_modules/agent-base/src/index.ts", "../node_modules/https-proxy-agent/src/parse-proxy-response.ts", "../node_modules/https-proxy-agent/src/index.ts", "../src/quick-translate.tsx", "../src/QuickTranslate/LanguageDropdown.tsx", "../src/hooks.ts", "../vendor/@iamtraction-translate/src/index.ts", "../vendor/@iamtraction-translate/src/languages.ts", "../vendor/@iamtraction-translate/src/tokenGenerator.ts", "../src/simple-translate.ts", "../src/languages.ts", "../src/QuickTranslate/TargetLanguageList.tsx", "../src/QuickTranslate/QuickTranslateListItem.tsx", "../src/actions.tsx"], - "sourcesContent": ["var has = Object.prototype.hasOwnProperty;\n\nfunction dequal(foo, bar) {\n\tvar ctor, len;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n\nexports.dequal = dequal;", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useDeepMemo = void 0;\nconst react_1 = require(\"react\");\nconst lite_1 = require(\"dequal/lite\");\n/**\n * @param value the value to be memoized (usually a dependency list)\n * @returns a memoized version of the value as long as it remains deeply equal\n */\nfunction useDeepMemo(value) {\n const ref = (0, react_1.useRef)(value);\n const signalRef = (0, react_1.useRef)(0);\n if (!(0, lite_1.dequal)(value, ref.current)) {\n ref.current = value;\n signalRef.current += 1;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return (0, react_1.useMemo)(() => ref.current, [signalRef.current]);\n}\nexports.useDeepMemo = useDeepMemo;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useLatest = void 0;\nconst react_1 = require(\"react\");\n/**\n * Returns the latest state.\n *\n * This is mostly useful to get access to the latest value of some props or state inside an asynchronous callback, instead of that value at the time the callback was created from.\n */\nfunction useLatest(value) {\n const ref = (0, react_1.useRef)(value);\n ref.current = value;\n return ref;\n}\nexports.useLatest = useLatest;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.handleErrorToastAction = void 0;\nconst fs = __importStar(require(\"fs\"));\nconst path = __importStar(require(\"path\"));\nconst api_1 = require(\"@raycast/api\");\nconst handleErrorToastAction = (error) => {\n let privateExtension = true;\n let title = \"[Extension Name]...\";\n let extensionURL = \"\";\n try {\n const packageJSON = JSON.parse(fs.readFileSync(path.join(api_1.environment.assetsPath, \"..\", \"package.json\"), \"utf8\"));\n title = `[${packageJSON.title}]...`;\n extensionURL = `https://raycast.com/${packageJSON.owner || packageJSON.author}/${packageJSON.name}`;\n if (!packageJSON.owner || packageJSON.access === \"public\") {\n privateExtension = false;\n }\n }\n catch (err) {\n // no-op\n }\n // if it's a private extension, we can't construct the URL to report the error\n // so we fallback to copying the error to the clipboard\n const fallback = api_1.environment.isDevelopment || privateExtension;\n return {\n title: fallback ? \"Copy Logs\" : \"Report Error\",\n onAction(toast) {\n toast.hide();\n if (fallback) {\n api_1.Clipboard.copy(error?.stack || error?.message || \"\");\n }\n else {\n (0, api_1.open)(`https://github.com/raycast/extensions/issues/new?&labels=extension%2Cbug&template=extension_bug_report.yml&title=${encodeURIComponent(title)}&extension-url=${encodeURI(extensionURL)}&description=${encodeURIComponent(`#### Error:\n\\`\\`\\`\n${error?.stack || error?.message || \"\"}\n\\`\\`\\`\n`)}`);\n }\n },\n };\n};\nexports.handleErrorToastAction = handleErrorToastAction;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.usePromise = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst useDeepMemo_1 = require(\"./useDeepMemo\");\nconst useLatest_1 = require(\"./useLatest\");\nconst handle_error_toast_action_1 = require(\"./handle-error-toast-action\");\nfunction usePromise(fn, args, options) {\n const lastCallId = (0, react_1.useRef)(0);\n const [state, set] = (0, react_1.useState)({ isLoading: true });\n const fnRef = (0, useLatest_1.useLatest)(fn);\n const latestAbortable = (0, useLatest_1.useLatest)(options?.abortable);\n const latestArgs = (0, useLatest_1.useLatest)(args || []);\n const latestOnError = (0, useLatest_1.useLatest)(options?.onError);\n const latestOnData = (0, useLatest_1.useLatest)(options?.onData);\n const latestOnWillExecute = (0, useLatest_1.useLatest)(options?.onWillExecute);\n const latestValue = (0, useLatest_1.useLatest)(state.data);\n const latestCallback = (0, react_1.useRef)();\n const callback = (0, react_1.useCallback)((...args) => {\n const callId = ++lastCallId.current;\n if (latestAbortable.current) {\n latestAbortable.current.current?.abort();\n latestAbortable.current.current = new AbortController();\n }\n latestOnWillExecute.current?.(args);\n set((prevState) => ({ ...prevState, isLoading: true }));\n return bindPromiseIfNeeded(fnRef.current)(...args).then((data) => {\n if (callId === lastCallId.current) {\n if (latestOnData.current) {\n latestOnData.current(data);\n }\n set({ data, isLoading: false });\n }\n return data;\n }, (error) => {\n if (error.name == \"AbortError\") {\n return error;\n }\n if (callId === lastCallId.current) {\n // handle errors\n if (latestOnError.current) {\n latestOnError.current(error);\n }\n else {\n console.error(error);\n if (api_1.environment.launchType !== api_1.LaunchType.Background) {\n (0, api_1.showToast)({\n style: api_1.Toast.Style.Failure,\n title: \"Failed to fetch latest data\",\n message: error.message,\n primaryAction: {\n title: \"Retry\",\n onAction(toast) {\n toast.hide();\n latestCallback.current?.(...(latestArgs.current || []));\n },\n },\n secondaryAction: (0, handle_error_toast_action_1.handleErrorToastAction)(error),\n });\n }\n }\n set({ error, isLoading: false });\n }\n return error;\n });\n }, [latestAbortable, latestOnData, latestOnError, latestArgs, fnRef, set, latestCallback, latestOnWillExecute]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n );\n latestCallback.current = callback;\n const revalidate = (0, react_1.useCallback)(() => {\n return callback(...(latestArgs.current || []));\n }, [callback, latestArgs]);\n const mutate = (0, react_1.useCallback)(async (asyncUpdate, options) => {\n let dataBeforeOptimisticUpdate;\n try {\n if (options?.optimisticUpdate) {\n if (typeof options?.rollbackOnError !== \"function\" && options?.rollbackOnError !== false) {\n // keep track of the data before the optimistic update,\n // but only if we need it (eg. only when we want to automatically rollback after)\n dataBeforeOptimisticUpdate = structuredClone(latestValue.current?.value);\n }\n const update = options.optimisticUpdate;\n set((prevState) => ({ ...prevState, data: update(prevState.data) }));\n }\n return await asyncUpdate;\n }\n catch (err) {\n if (typeof options?.rollbackOnError === \"function\") {\n const update = options.rollbackOnError;\n set((prevState) => ({ ...prevState, data: update(prevState.data) }));\n }\n else if (options?.optimisticUpdate && options?.rollbackOnError !== false) {\n set((prevState) => ({ ...prevState, data: dataBeforeOptimisticUpdate }));\n }\n throw err;\n }\n finally {\n if (options?.shouldRevalidateAfter !== false) {\n if (api_1.environment.launchType === api_1.LaunchType.Background || api_1.environment.commandMode === \"menu-bar\") {\n // when in the background or in a menu bar, we are going to await the revalidation\n // to make sure we get the right data at the end of the mutation\n await revalidate();\n }\n else {\n revalidate();\n }\n }\n }\n }, [revalidate, latestValue, set]);\n // revalidate when the args change\n (0, react_1.useEffect)(() => {\n if (options?.execute !== false) {\n callback(...(args || []));\n }\n else {\n // cancel the previous request if we don't want to execute anymore\n if (latestAbortable.current) {\n latestAbortable.current.current?.abort();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(0, useDeepMemo_1.useDeepMemo)([args, options?.execute, callback]), latestAbortable]);\n // abort request when unmounting\n (0, react_1.useEffect)(() => {\n return () => {\n if (latestAbortable.current) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n latestAbortable.current.current?.abort();\n }\n };\n }, [latestAbortable]);\n // we only want to show the loading indicator if the promise is executing\n const isLoading = options?.execute !== false ? state.isLoading : false;\n // @ts-expect-error loading is has some fixed value in the enum which\n const stateWithLoadingFixed = { ...state, isLoading };\n return { ...stateWithLoadingFixed, revalidate, mutate };\n}\nexports.usePromise = usePromise;\n/** Bind the fn if it's a Promise method */\nfunction bindPromiseIfNeeded(fn) {\n if (fn === Promise.all) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.race) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.resolve) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.reject) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n return fn;\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useCachedState = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst useLatest_1 = require(\"./useLatest\");\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction replacer(key, _value) {\n const value = this[key];\n if (value instanceof Date) {\n return `__raycast_cached_date__${value.toString()}`;\n }\n if (Buffer.isBuffer(value)) {\n return `__raycast_cached_buffer__${value.toString(\"base64\")}`;\n }\n return _value;\n}\nfunction reviver(_key, value) {\n if (typeof value === \"string\" && value.startsWith(\"__raycast_cached_date__\")) {\n return new Date(value.replace(\"__raycast_cached_date__\", \"\"));\n }\n if (typeof value === \"string\" && value.startsWith(\"__raycast_cached_buffer__\")) {\n return Buffer.from(value.replace(\"__raycast_cached_buffer__\", \"\"), \"base64\");\n }\n return value;\n}\nconst rootCache = Symbol(\"cache without namespace\");\nconst cacheMap = new Map();\nfunction useCachedState(key, initialState, config) {\n const cacheKey = config?.cacheNamespace || rootCache;\n const cache = cacheMap.get(cacheKey) || cacheMap.set(cacheKey, new api_1.Cache({ namespace: config?.cacheNamespace })).get(cacheKey);\n if (!cache) {\n throw new Error(\"Missing cache\");\n }\n const keyRef = (0, useLatest_1.useLatest)(key);\n const initialValueRef = (0, useLatest_1.useLatest)(initialState);\n const cachedState = (0, react_1.useSyncExternalStore)(cache.subscribe, () => {\n try {\n return cache.get(keyRef.current);\n }\n catch (error) {\n console.error(\"Could not get Cache data:\", error);\n return undefined;\n }\n });\n const state = (0, react_1.useMemo)(() => {\n if (typeof cachedState !== \"undefined\") {\n if (cachedState === \"undefined\") {\n return undefined;\n }\n try {\n return JSON.parse(cachedState, reviver);\n }\n catch (err) {\n // the data got corrupted somehow\n console.warn(\"The cached data is corrupted\", err);\n return initialValueRef.current;\n }\n }\n else {\n return initialValueRef.current;\n }\n }, [cachedState, initialValueRef]);\n const stateRef = (0, useLatest_1.useLatest)(state);\n const setStateAndCache = (0, react_1.useCallback)((updater) => {\n // @ts-expect-error TS struggles to infer the types as T could potentially be a function\n const newValue = typeof updater === \"function\" ? updater(stateRef.current) : updater;\n if (typeof newValue === \"undefined\") {\n cache.set(keyRef.current, \"undefined\");\n }\n else {\n const stringifiedValue = JSON.stringify(newValue, replacer);\n cache.set(keyRef.current, stringifiedValue);\n }\n return newValue;\n }, [cache, keyRef, stateRef]);\n return [state, setStateAndCache];\n}\nexports.useCachedState = useCachedState;\n", "'use strict';\n\nvar crypto = require('crypto');\n\n/**\n * Exported function\n *\n * Options:\n *\n * - `algorithm` hash algo to be used by this instance: *'sha1', 'md5'\n * - `excludeValues` {true|*false} hash object keys, values ignored\n * - `encoding` hash encoding, supports 'buffer', '*hex', 'binary', 'base64'\n * - `ignoreUnknown` {true|*false} ignore unknown object types\n * - `replacer` optional function that replaces values before hashing\n * - `respectFunctionProperties` {*true|false} consider function properties when hashing\n * - `respectFunctionNames` {*true|false} consider 'name' property of functions for hashing\n * - `respectType` {*true|false} Respect special properties (prototype, constructor)\n * when hashing to distinguish between types\n * - `unorderedArrays` {true|*false} Sort all arrays before hashing\n * - `unorderedSets` {*true|false} Sort `Set` and `Map` instances before hashing\n * * = default\n *\n * @param {object} object value to hash\n * @param {object} options hashing options\n * @return {string} hash value\n * @api public\n */\nexports = module.exports = objectHash;\n\nfunction objectHash(object, options){\n options = applyDefaults(object, options);\n\n return hash(object, options);\n}\n\n/**\n * Exported sugar methods\n *\n * @param {object} object value to hash\n * @return {string} hash value\n * @api public\n */\nexports.sha1 = function(object){\n return objectHash(object);\n};\nexports.keys = function(object){\n return objectHash(object, {excludeValues: true, algorithm: 'sha1', encoding: 'hex'});\n};\nexports.MD5 = function(object){\n return objectHash(object, {algorithm: 'md5', encoding: 'hex'});\n};\nexports.keysMD5 = function(object){\n return objectHash(object, {algorithm: 'md5', encoding: 'hex', excludeValues: true});\n};\n\n// Internals\nvar hashes = crypto.getHashes ? crypto.getHashes().slice() : ['sha1', 'md5'];\nhashes.push('passthrough');\nvar encodings = ['buffer', 'hex', 'binary', 'base64'];\n\nfunction applyDefaults(object, sourceOptions){\n sourceOptions = sourceOptions || {};\n\n // create a copy rather than mutating\n var options = {};\n options.algorithm = sourceOptions.algorithm || 'sha1';\n options.encoding = sourceOptions.encoding || 'hex';\n options.excludeValues = sourceOptions.excludeValues ? true : false;\n options.algorithm = options.algorithm.toLowerCase();\n options.encoding = options.encoding.toLowerCase();\n options.ignoreUnknown = sourceOptions.ignoreUnknown !== true ? false : true; // default to false\n options.respectType = sourceOptions.respectType === false ? false : true; // default to true\n options.respectFunctionNames = sourceOptions.respectFunctionNames === false ? false : true;\n options.respectFunctionProperties = sourceOptions.respectFunctionProperties === false ? false : true;\n options.unorderedArrays = sourceOptions.unorderedArrays !== true ? false : true; // default to false\n options.unorderedSets = sourceOptions.unorderedSets === false ? false : true; // default to false\n options.unorderedObjects = sourceOptions.unorderedObjects === false ? false : true; // default to true\n options.replacer = sourceOptions.replacer || undefined;\n options.excludeKeys = sourceOptions.excludeKeys || undefined;\n\n if(typeof object === 'undefined') {\n throw new Error('Object argument required.');\n }\n\n // if there is a case-insensitive match in the hashes list, accept it\n // (i.e. SHA256 for sha256)\n for (var i = 0; i < hashes.length; ++i) {\n if (hashes[i].toLowerCase() === options.algorithm.toLowerCase()) {\n options.algorithm = hashes[i];\n }\n }\n\n if(hashes.indexOf(options.algorithm) === -1){\n throw new Error('Algorithm \"' + options.algorithm + '\" not supported. ' +\n 'supported values: ' + hashes.join(', '));\n }\n\n if(encodings.indexOf(options.encoding) === -1 &&\n options.algorithm !== 'passthrough'){\n throw new Error('Encoding \"' + options.encoding + '\" not supported. ' +\n 'supported values: ' + encodings.join(', '));\n }\n\n return options;\n}\n\n/** Check if the given function is a native function */\nfunction isNativeFunction(f) {\n if ((typeof f) !== 'function') {\n return false;\n }\n var exp = /^function\\s+\\w*\\s*\\(\\s*\\)\\s*{\\s+\\[native code\\]\\s+}$/i;\n return exp.exec(Function.prototype.toString.call(f)) != null;\n}\n\nfunction hash(object, options) {\n var hashingStream;\n\n if (options.algorithm !== 'passthrough') {\n hashingStream = crypto.createHash(options.algorithm);\n } else {\n hashingStream = new PassThrough();\n }\n\n if (typeof hashingStream.write === 'undefined') {\n hashingStream.write = hashingStream.update;\n hashingStream.end = hashingStream.update;\n }\n\n var hasher = typeHasher(options, hashingStream);\n hasher.dispatch(object);\n if (!hashingStream.update) {\n hashingStream.end('');\n }\n\n if (hashingStream.digest) {\n return hashingStream.digest(options.encoding === 'buffer' ? undefined : options.encoding);\n }\n\n var buf = hashingStream.read();\n if (options.encoding === 'buffer') {\n return buf;\n }\n\n return buf.toString(options.encoding);\n}\n\n/**\n * Expose streaming API\n *\n * @param {object} object Value to serialize\n * @param {object} options Options, as for hash()\n * @param {object} stream A stream to write the serializiation to\n * @api public\n */\nexports.writeToStream = function(object, options, stream) {\n if (typeof stream === 'undefined') {\n stream = options;\n options = {};\n }\n\n options = applyDefaults(object, options);\n\n return typeHasher(options, stream).dispatch(object);\n};\n\nfunction typeHasher(options, writeTo, context){\n context = context || [];\n var write = function(str) {\n if (writeTo.update) {\n return writeTo.update(str, 'utf8');\n } else {\n return writeTo.write(str, 'utf8');\n }\n };\n\n return {\n dispatch: function(value){\n if (options.replacer) {\n value = options.replacer(value);\n }\n\n var type = typeof value;\n if (value === null) {\n type = 'null';\n }\n\n //console.log(\"[DEBUG] Dispatch: \", value, \"->\", type, \" -> \", \"_\" + type);\n\n return this['_' + type](value);\n },\n _object: function(object) {\n var pattern = (/\\[object (.*)\\]/i);\n var objString = Object.prototype.toString.call(object);\n var objType = pattern.exec(objString);\n if (!objType) { // object type did not match [object ...]\n objType = 'unknown:[' + objString + ']';\n } else {\n objType = objType[1]; // take only the class name\n }\n\n objType = objType.toLowerCase();\n\n var objectNumber = null;\n\n if ((objectNumber = context.indexOf(object)) >= 0) {\n return this.dispatch('[CIRCULAR:' + objectNumber + ']');\n } else {\n context.push(object);\n }\n\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer && Buffer.isBuffer(object)) {\n write('buffer:');\n return write(object);\n }\n\n if(objType !== 'object' && objType !== 'function' && objType !== 'asyncfunction') {\n if(this['_' + objType]) {\n this['_' + objType](object);\n } else if (options.ignoreUnknown) {\n return write('[' + objType + ']');\n } else {\n throw new Error('Unknown object type \"' + objType + '\"');\n }\n }else{\n var keys = Object.keys(object);\n if (options.unorderedObjects) {\n keys = keys.sort();\n }\n // Make sure to incorporate special properties, so\n // Types with different prototypes will produce\n // a different hash and objects derived from\n // different functions (`new Foo`, `new Bar`) will\n // produce different hashes.\n // We never do this for native functions since some\n // seem to break because of that.\n if (options.respectType !== false && !isNativeFunction(object)) {\n keys.splice(0, 0, 'prototype', '__proto__', 'constructor');\n }\n\n if (options.excludeKeys) {\n keys = keys.filter(function(key) { return !options.excludeKeys(key); });\n }\n\n write('object:' + keys.length + ':');\n var self = this;\n return keys.forEach(function(key){\n self.dispatch(key);\n write(':');\n if(!options.excludeValues) {\n self.dispatch(object[key]);\n }\n write(',');\n });\n }\n },\n _array: function(arr, unordered){\n unordered = typeof unordered !== 'undefined' ? unordered :\n options.unorderedArrays !== false; // default to options.unorderedArrays\n\n var self = this;\n write('array:' + arr.length + ':');\n if (!unordered || arr.length <= 1) {\n return arr.forEach(function(entry) {\n return self.dispatch(entry);\n });\n }\n\n // the unordered case is a little more complicated:\n // since there is no canonical ordering on objects,\n // i.e. {a:1} < {a:2} and {a:1} > {a:2} are both false,\n // we first serialize each entry using a PassThrough stream\n // before sorting.\n // also: we can\u2019t use the same context array for all entries\n // since the order of hashing should *not* matter. instead,\n // we keep track of the additions to a copy of the context array\n // and add all of them to the global context array when we\u2019re done\n var contextAdditions = [];\n var entries = arr.map(function(entry) {\n var strm = new PassThrough();\n var localContext = context.slice(); // make copy\n var hasher = typeHasher(options, strm, localContext);\n hasher.dispatch(entry);\n // take only what was added to localContext and append it to contextAdditions\n contextAdditions = contextAdditions.concat(localContext.slice(context.length));\n return strm.read().toString();\n });\n context = context.concat(contextAdditions);\n entries.sort();\n return this._array(entries, false);\n },\n _date: function(date){\n return write('date:' + date.toJSON());\n },\n _symbol: function(sym){\n return write('symbol:' + sym.toString());\n },\n _error: function(err){\n return write('error:' + err.toString());\n },\n _boolean: function(bool){\n return write('bool:' + bool.toString());\n },\n _string: function(string){\n write('string:' + string.length + ':');\n write(string.toString());\n },\n _function: function(fn){\n write('fn:');\n if (isNativeFunction(fn)) {\n this.dispatch('[native]');\n } else {\n this.dispatch(fn.toString());\n }\n\n if (options.respectFunctionNames !== false) {\n // Make sure we can still distinguish native functions\n // by their name, otherwise String and Function will\n // have the same hash\n this.dispatch(\"function-name:\" + String(fn.name));\n }\n\n if (options.respectFunctionProperties) {\n this._object(fn);\n }\n },\n _number: function(number){\n return write('number:' + number.toString());\n },\n _xml: function(xml){\n return write('xml:' + xml.toString());\n },\n _null: function() {\n return write('Null');\n },\n _undefined: function() {\n return write('Undefined');\n },\n _regexp: function(regex){\n return write('regex:' + regex.toString());\n },\n _uint8array: function(arr){\n write('uint8array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint8clampedarray: function(arr){\n write('uint8clampedarray:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int8array: function(arr){\n write('int8array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint16array: function(arr){\n write('uint16array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int16array: function(arr){\n write('int16array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint32array: function(arr){\n write('uint32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int32array: function(arr){\n write('int32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _float32array: function(arr){\n write('float32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _float64array: function(arr){\n write('float64array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _arraybuffer: function(arr){\n write('arraybuffer:');\n return this.dispatch(new Uint8Array(arr));\n },\n _url: function(url) {\n return write('url:' + url.toString(), 'utf8');\n },\n _map: function(map) {\n write('map:');\n var arr = Array.from(map);\n return this._array(arr, options.unorderedSets !== false);\n },\n _set: function(set) {\n write('set:');\n var arr = Array.from(set);\n return this._array(arr, options.unorderedSets !== false);\n },\n _file: function(file) {\n write('file:');\n return this.dispatch([file.name, file.size, file.type, file.lastModfied]);\n },\n _blob: function() {\n if (options.ignoreUnknown) {\n return write('[blob]');\n }\n\n throw Error('Hashing Blob objects is currently not supported\\n' +\n '(see https://github.com/puleos/object-hash/issues/26)\\n' +\n 'Use \"options.replacer\" or \"options.ignoreUnknown\"\\n');\n },\n _domwindow: function() { return write('domwindow'); },\n _bigint: function(number){\n return write('bigint:' + number.toString());\n },\n /* Node.js standard native objects */\n _process: function() { return write('process'); },\n _timer: function() { return write('timer'); },\n _pipe: function() { return write('pipe'); },\n _tcp: function() { return write('tcp'); },\n _udp: function() { return write('udp'); },\n _tty: function() { return write('tty'); },\n _statwatcher: function() { return write('statwatcher'); },\n _securecontext: function() { return write('securecontext'); },\n _connection: function() { return write('connection'); },\n _zlib: function() { return write('zlib'); },\n _context: function() { return write('context'); },\n _nodescript: function() { return write('nodescript'); },\n _httpparser: function() { return write('httpparser'); },\n _dataview: function() { return write('dataview'); },\n _signal: function() { return write('signal'); },\n _fsevent: function() { return write('fsevent'); },\n _tlswrap: function() { return write('tlswrap'); },\n };\n}\n\n// Mini-implementation of stream.PassThrough\n// We are far from having need for the full implementation, and we can\n// make assumptions like \"many writes, then only one final read\"\n// and we can ignore encoding specifics\nfunction PassThrough() {\n return {\n buf: '',\n\n write: function(b) {\n this.buf += b;\n },\n\n end: function(b) {\n this.buf += b;\n },\n\n read: function() {\n return this.buf;\n }\n };\n}\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useCachedPromise = void 0;\nconst react_1 = require(\"react\");\nconst object_hash_1 = __importDefault(require(\"object-hash\"));\nconst useCachedState_1 = require(\"./useCachedState\");\nconst usePromise_1 = require(\"./usePromise\");\nconst useLatest_1 = require(\"./useLatest\");\n// Symbol to differentiate an empty cache from `undefined`\nconst emptyCache = Symbol();\nfunction useCachedPromise(fn, args, options) {\n const { initialData, keepPreviousData, ...usePromiseOptions } = options || {};\n const lastUpdateFrom = (0, react_1.useRef)();\n const [cachedData, mutateCache] = (0, useCachedState_1.useCachedState)((0, object_hash_1.default)(args || []), emptyCache, {\n cacheNamespace: (0, object_hash_1.default)(fn),\n });\n // Use a ref to store previous returned data. Use the inital data as its inital value from the cache.\n const laggyDataRef = (0, react_1.useRef)(cachedData !== emptyCache ? cachedData : initialData);\n const { mutate: _mutate, revalidate, ...state\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = (0, usePromise_1.usePromise)(fn, args || [], {\n ...usePromiseOptions,\n onData(data) {\n if (usePromiseOptions.onData) {\n usePromiseOptions.onData(data);\n }\n // update the cache when we fetch new values\n lastUpdateFrom.current = \"promise\";\n laggyDataRef.current = data;\n mutateCache(data);\n },\n });\n // data returned if there are no special cases\n const data = cachedData !== emptyCache ? cachedData : initialData;\n const returnedData = \n // if the latest update if from the Promise, we keep it\n lastUpdateFrom.current === \"promise\"\n ? laggyDataRef.current\n : // if we want to keep the latest data, we pick the cache but only if it's not empty\n keepPreviousData\n ? cachedData !== emptyCache\n ? cachedData\n : // if the cache is empty, we will return the previous data\n laggyDataRef.current\n : data;\n const latestData = (0, useLatest_1.useLatest)(returnedData);\n // we rewrite the mutate function to update the cache instead\n const mutate = (0, react_1.useCallback)(async (asyncUpdate, options) => {\n let dataBeforeOptimisticUpdate;\n try {\n if (options?.optimisticUpdate) {\n if (typeof options?.rollbackOnError !== \"function\" && options?.rollbackOnError !== false) {\n // keep track of the data before the optimistic update,\n // but only if we need it (eg. only when we want to automatically rollback after)\n dataBeforeOptimisticUpdate = structuredClone(latestData.current);\n }\n const data = options.optimisticUpdate(latestData.current);\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = data;\n mutateCache(data);\n }\n return await _mutate(asyncUpdate, { shouldRevalidateAfter: options?.shouldRevalidateAfter });\n }\n catch (err) {\n if (typeof options?.rollbackOnError === \"function\") {\n const data = options.rollbackOnError(latestData.current);\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = data;\n mutateCache(data);\n }\n else if (options?.optimisticUpdate && options?.rollbackOnError !== false) {\n lastUpdateFrom.current = \"cache\";\n // @ts-expect-error when undefined, it's expected\n laggyDataRef.current = dataBeforeOptimisticUpdate;\n // @ts-expect-error when undefined, it's expected\n mutateCache(dataBeforeOptimisticUpdate);\n }\n throw err;\n }\n }, [mutateCache, _mutate, latestData, laggyDataRef, lastUpdateFrom]);\n (0, react_1.useEffect)(() => {\n if (cachedData !== emptyCache) {\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = cachedData;\n }\n }, [cachedData]);\n return {\n data: returnedData,\n isLoading: state.isLoading,\n error: state.error,\n mutate,\n revalidate,\n };\n}\nexports.useCachedPromise = useCachedPromise;\n", "/*!\n * media-typer\n * Copyright(c) 2014-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match type in RFC 6838\n *\n * type-name = restricted-name\n * subtype-name = restricted-name\n * restricted-name = restricted-name-first *126restricted-name-chars\n * restricted-name-first = ALPHA / DIGIT\n * restricted-name-chars = ALPHA / DIGIT / \"!\" / \"#\" /\n * \"$\" / \"&\" / \"-\" / \"^\" / \"_\"\n * restricted-name-chars =/ \".\" ; Characters before first dot always\n * ; specify a facet name\n * restricted-name-chars =/ \"+\" ; Characters after last plus always\n * ; specify a structured syntax suffix\n * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n * DIGIT = %x30-39 ; 0-9\n */\nvar SUBTYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/\nvar TYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/\nvar TYPE_REGEXP = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/\n\n/**\n * Module exports.\n */\n\nexports.format = format\nexports.parse = parse\nexports.test = test\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var subtype = obj.subtype\n var suffix = obj.suffix\n var type = obj.type\n\n if (!type || !TYPE_NAME_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n if (!subtype || !SUBTYPE_NAME_REGEXP.test(subtype)) {\n throw new TypeError('invalid subtype')\n }\n\n // format as type/subtype\n var string = type + '/' + subtype\n\n // append +suffix\n if (suffix) {\n if (!TYPE_NAME_REGEXP.test(suffix)) {\n throw new TypeError('invalid suffix')\n }\n\n string += '+' + suffix\n }\n\n return string\n}\n\n/**\n * Test media type.\n *\n * @param {string} string\n * @return {object}\n * @public\n */\n\nfunction test (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n if (typeof string !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n return TYPE_REGEXP.test(string.toLowerCase())\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string} string\n * @return {object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n if (typeof string !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var match = TYPE_REGEXP.exec(string.toLowerCase())\n\n if (!match) {\n throw new TypeError('invalid media type')\n }\n\n var type = match[1]\n var subtype = match[2]\n var suffix\n\n // suffix after last +\n var index = subtype.lastIndexOf('+')\n if (index !== -1) {\n suffix = subtype.substr(index + 1)\n subtype = subtype.substr(0, index)\n }\n\n return new MediaType(type, subtype, suffix)\n}\n\n/**\n * Class for MediaType object.\n * @public\n */\n\nfunction MediaType (type, subtype, suffix) {\n this.type = type\n this.subtype = subtype\n this.suffix = suffix\n}\n", "/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match *( \";\" parameter ) in RFC 7231 sec 3.1.1.1\n *\n * parameter = token \"=\" ( token / quoted-string )\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n * / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n * / DIGIT / ALPHA\n * ; any VCHAR, except delimiters\n * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE\n * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text\n * obs-text = %x80-FF\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n */\nvar PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *(\"(?:[\\u000b\\u0020\\u0021\\u0023-\\u005b\\u005d-\\u007e\\u0080-\\u00ff]|\\\\[\\u000b\\u0020-\\u00ff])*\"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g // eslint-disable-line no-control-regex\nvar TEXT_REGEXP = /^[\\u000b\\u0020-\\u007e\\u0080-\\u00ff]+$/ // eslint-disable-line no-control-regex\nvar TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * RegExp to match quoted-pair in RFC 7230 sec 3.2.6\n *\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n * obs-text = %x80-FF\n */\nvar QESC_REGEXP = /\\\\([\\u000b\\u0020-\\u00ff])/g // eslint-disable-line no-control-regex\n\n/**\n * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6\n */\nvar QUOTE_REGEXP = /([\\\\\"])/g\n\n/**\n * RegExp to match type in RFC 7231 sec 3.1.1.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nvar TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * Module exports.\n * @public\n */\n\nexports.format = format\nexports.parse = parse\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var parameters = obj.parameters\n var type = obj.type\n\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n var string = type\n\n // append parameters\n if (parameters && typeof parameters === 'object') {\n var param\n var params = Object.keys(parameters).sort()\n\n for (var i = 0; i < params.length; i++) {\n param = params[i]\n\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError('invalid parameter name')\n }\n\n string += '; ' + param + '=' + qstring(parameters[param])\n }\n }\n\n return string\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string|object} string\n * @return {Object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n // support req/res-like objects as argument\n var header = typeof string === 'object'\n ? getcontenttype(string)\n : string\n\n if (typeof header !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var index = header.indexOf(';')\n var type = index !== -1\n ? header.slice(0, index).trim()\n : header.trim()\n\n if (!TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid media type')\n }\n\n var obj = new ContentType(type.toLowerCase())\n\n // parse parameters\n if (index !== -1) {\n var key\n var match\n var value\n\n PARAM_REGEXP.lastIndex = index\n\n while ((match = PARAM_REGEXP.exec(header))) {\n if (match.index !== index) {\n throw new TypeError('invalid parameter format')\n }\n\n index += match[0].length\n key = match[1].toLowerCase()\n value = match[2]\n\n if (value.charCodeAt(0) === 0x22 /* \" */) {\n // remove quotes\n value = value.slice(1, -1)\n\n // remove escapes\n if (value.indexOf('\\\\') !== -1) {\n value = value.replace(QESC_REGEXP, '$1')\n }\n }\n\n obj.parameters[key] = value\n }\n\n if (index !== header.length) {\n throw new TypeError('invalid parameter format')\n }\n }\n\n return obj\n}\n\n/**\n * Get content-type from req/res objects.\n *\n * @param {object}\n * @return {Object}\n * @private\n */\n\nfunction getcontenttype (obj) {\n var header\n\n if (typeof obj.getHeader === 'function') {\n // res-like\n header = obj.getHeader('content-type')\n } else if (typeof obj.headers === 'object') {\n // req-like\n header = obj.headers && obj.headers['content-type']\n }\n\n if (typeof header !== 'string') {\n throw new TypeError('content-type header is missing from object')\n }\n\n return header\n}\n\n/**\n * Quote a string if necessary.\n *\n * @param {string} val\n * @return {string}\n * @private\n */\n\nfunction qstring (val) {\n var str = String(val)\n\n // no need to quote tokens\n if (TOKEN_REGEXP.test(str)) {\n return str\n }\n\n if (str.length > 0 && !TEXT_REGEXP.test(str)) {\n throw new TypeError('invalid parameter value')\n }\n\n return '\"' + str.replace(QUOTE_REGEXP, '\\\\$1') + '\"'\n}\n\n/**\n * Class to represent a content type.\n * @private\n */\nfunction ContentType (type) {\n this.parameters = Object.create(null)\n this.type = type\n}\n", "\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n", "\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n", "[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"valid\"],[[47,47],\"disallowed_STD3_valid\"],[[48,57],\"valid\"],[[58,64],\"disallowed_STD3_valid\"],[[65,65],\"mapped\",[97]],[[66,66],\"mapped\",[98]],[[67,67],\"mapped\",[99]],[[68,68],\"mapped\",[100]],[[69,69],\"mapped\",[101]],[[70,70],\"mapped\",[102]],[[71,71],\"mapped\",[103]],[[72,72],\"mapped\",[104]],[[73,73],\"mapped\",[105]],[[74,74],\"mapped\",[106]],[[75,75],\"mapped\",[107]],[[76,76],\"mapped\",[108]],[[77,77],\"mapped\",[109]],[[78,78],\"mapped\",[110]],[[79,79],\"mapped\",[111]],[[80,80],\"mapped\",[112]],[[81,81],\"mapped\",[113]],[[82,82],\"mapped\",[114]],[[83,83],\"mapped\",[115]],[[84,84],\"mapped\",[116]],[[85,85],\"mapped\",[117]],[[86,86],\"mapped\",[118]],[[87,87],\"mapped\",[119]],[[88,88],\"mapped\",[120]],[[89,89],\"mapped\",[121]],[[90,90],\"mapped\",[122]],[[91,96],\"disallowed_STD3_valid\"],[[97,122],\"valid\"],[[123,127],\"disallowed_STD3_valid\"],[[128,159],\"disallowed\"],[[160,160],\"disallowed_STD3_mapped\",[32]],[[161,167],\"valid\",[],\"NV8\"],[[168,168],\"disallowed_STD3_mapped\",[32,776]],[[169,169],\"valid\",[],\"NV8\"],[[170,170],\"mapped\",[97]],[[171,172],\"valid\",[],\"NV8\"],[[173,173],\"ignored\"],[[174,174],\"valid\",[],\"NV8\"],[[175,175],\"disallowed_STD3_mapped\",[32,772]],[[176,177],\"valid\",[],\"NV8\"],[[178,178],\"mapped\",[50]],[[179,179],\"mapped\",[51]],[[180,180],\"disallowed_STD3_mapped\",[32,769]],[[181,181],\"mapped\",[956]],[[182,182],\"valid\",[],\"NV8\"],[[183,183],\"valid\"],[[184,184],\"disallowed_STD3_mapped\",[32,807]],[[185,185],\"mapped\",[49]],[[186,186],\"mapped\",[111]],[[187,187],\"valid\",[],\"NV8\"],[[188,188],\"mapped\",[49,8260,52]],[[189,189],\"mapped\",[49,8260,50]],[[190,190],\"mapped\",[51,8260,52]],[[191,191],\"valid\",[],\"NV8\"],[[192,192],\"mapped\",[224]],[[193,193],\"mapped\",[225]],[[194,194],\"mapped\",[226]],[[195,195],\"mapped\",[227]],[[196,196],\"mapped\",[228]],[[197,197],\"mapped\",[229]],[[198,198],\"mapped\",[230]],[[199,199],\"mapped\",[231]],[[200,200],\"mapped\",[232]],[[201,201],\"mapped\",[233]],[[202,202],\"mapped\",[234]],[[203,203],\"mapped\",[235]],[[204,204],\"mapped\",[236]],[[205,205],\"mapped\",[237]],[[206,206],\"mapped\",[238]],[[207,207],\"mapped\",[239]],[[208,208],\"mapped\",[240]],[[209,209],\"mapped\",[241]],[[210,210],\"mapped\",[242]],[[211,211],\"mapped\",[243]],[[212,212],\"mapped\",[244]],[[213,213],\"mapped\",[245]],[[214,214],\"mapped\",[246]],[[215,215],\"valid\",[],\"NV8\"],[[216,216],\"mapped\",[248]],[[217,217],\"mapped\",[249]],[[218,218],\"mapped\",[250]],[[219,219],\"mapped\",[251]],[[220,220],\"mapped\",[252]],[[221,221],\"mapped\",[253]],[[222,222],\"mapped\",[254]],[[223,223],\"deviation\",[115,115]],[[224,246],\"valid\"],[[247,247],\"valid\",[],\"NV8\"],[[248,255],\"valid\"],[[256,256],\"mapped\",[257]],[[257,257],\"valid\"],[[258,258],\"mapped\",[259]],[[259,259],\"valid\"],[[260,260],\"mapped\",[261]],[[261,261],\"valid\"],[[262,262],\"mapped\",[263]],[[263,263],\"valid\"],[[264,264],\"mapped\",[265]],[[265,265],\"valid\"],[[266,266],\"mapped\",[267]],[[267,267],\"valid\"],[[268,268],\"mapped\",[269]],[[269,269],\"valid\"],[[270,270],\"mapped\",[271]],[[271,271],\"valid\"],[[272,272],\"mapped\",[273]],[[273,273],\"valid\"],[[274,274],\"mapped\",[275]],[[275,275],\"valid\"],[[276,276],\"mapped\",[277]],[[277,277],\"valid\"],[[278,278],\"mapped\",[279]],[[279,279],\"valid\"],[[280,280],\"mapped\",[281]],[[281,281],\"valid\"],[[282,282],\"mapped\",[283]],[[283,283],\"valid\"],[[284,284],\"mapped\",[285]],[[285,285],\"valid\"],[[286,286],\"mapped\",[287]],[[287,287],\"valid\"],[[288,288],\"mapped\",[289]],[[289,289],\"valid\"],[[290,290],\"mapped\",[291]],[[291,291],\"valid\"],[[292,292],\"mapped\",[293]],[[293,293],\"valid\"],[[294,294],\"mapped\",[295]],[[295,295],\"valid\"],[[296,296],\"mapped\",[297]],[[297,297],\"valid\"],[[298,298],\"mapped\",[299]],[[299,299],\"valid\"],[[300,300],\"mapped\",[301]],[[301,301],\"valid\"],[[302,302],\"mapped\",[303]],[[303,303],\"valid\"],[[304,304],\"mapped\",[105,775]],[[305,305],\"valid\"],[[306,307],\"mapped\",[105,106]],[[308,308],\"mapped\",[309]],[[309,309],\"valid\"],[[310,310],\"mapped\",[311]],[[311,312],\"valid\"],[[313,313],\"mapped\",[314]],[[314,314],\"valid\"],[[315,315],\"mapped\",[316]],[[316,316],\"valid\"],[[317,317],\"mapped\",[318]],[[318,318],\"valid\"],[[319,320],\"mapped\",[108,183]],[[321,321],\"mapped\",[322]],[[322,322],\"valid\"],[[323,323],\"mapped\",[324]],[[324,324],\"valid\"],[[325,325],\"mapped\",[326]],[[326,326],\"valid\"],[[327,327],\"mapped\",[328]],[[328,328],\"valid\"],[[329,329],\"mapped\",[700,110]],[[330,330],\"mapped\",[331]],[[331,331],\"valid\"],[[332,332],\"mapped\",[333]],[[333,333],\"valid\"],[[334,334],\"mapped\",[335]],[[335,335],\"valid\"],[[336,336],\"mapped\",[337]],[[337,337],\"valid\"],[[338,338],\"mapped\",[339]],[[339,339],\"valid\"],[[340,340],\"mapped\",[341]],[[341,341],\"valid\"],[[342,342],\"mapped\",[343]],[[343,343],\"valid\"],[[344,344],\"mapped\",[345]],[[345,345],\"valid\"],[[346,346],\"mapped\",[347]],[[347,347],\"valid\"],[[348,348],\"mapped\",[349]],[[349,349],\"valid\"],[[350,350],\"mapped\",[351]],[[351,351],\"valid\"],[[352,352],\"mapped\",[353]],[[353,353],\"valid\"],[[354,354],\"mapped\",[355]],[[355,355],\"valid\"],[[356,356],\"mapped\",[357]],[[357,357],\"valid\"],[[358,358],\"mapped\",[359]],[[359,359],\"valid\"],[[360,360],\"mapped\",[361]],[[361,361],\"valid\"],[[362,362],\"mapped\",[363]],[[363,363],\"valid\"],[[364,364],\"mapped\",[365]],[[365,365],\"valid\"],[[366,366],\"mapped\",[367]],[[367,367],\"valid\"],[[368,368],\"mapped\",[369]],[[369,369],\"valid\"],[[370,370],\"mapped\",[371]],[[371,371],\"valid\"],[[372,372],\"mapped\",[373]],[[373,373],\"valid\"],[[374,374],\"mapped\",[375]],[[375,375],\"valid\"],[[376,376],\"mapped\",[255]],[[377,377],\"mapped\",[378]],[[378,378],\"valid\"],[[379,379],\"mapped\",[380]],[[380,380],\"valid\"],[[381,381],\"mapped\",[382]],[[382,382],\"valid\"],[[383,383],\"mapped\",[115]],[[384,384],\"valid\"],[[385,385],\"mapped\",[595]],[[386,386],\"mapped\",[387]],[[387,387],\"valid\"],[[388,388],\"mapped\",[389]],[[389,389],\"valid\"],[[390,390],\"mapped\",[596]],[[391,391],\"mapped\",[392]],[[392,392],\"valid\"],[[393,393],\"mapped\",[598]],[[394,394],\"mapped\",[599]],[[395,395],\"mapped\",[396]],[[396,397],\"valid\"],[[398,398],\"mapped\",[477]],[[399,399],\"mapped\",[601]],[[400,400],\"mapped\",[603]],[[401,401],\"mapped\",[402]],[[402,402],\"valid\"],[[403,403],\"mapped\",[608]],[[404,404],\"mapped\",[611]],[[405,405],\"valid\"],[[406,406],\"mapped\",[617]],[[407,407],\"mapped\",[616]],[[408,408],\"mapped\",[409]],[[409,411],\"valid\"],[[412,412],\"mapped\",[623]],[[413,413],\"mapped\",[626]],[[414,414],\"valid\"],[[415,415],\"mapped\",[629]],[[416,416],\"mapped\",[417]],[[417,417],\"valid\"],[[418,418],\"mapped\",[419]],[[419,419],\"valid\"],[[420,420],\"mapped\",[421]],[[421,421],\"valid\"],[[422,422],\"mapped\",[640]],[[423,423],\"mapped\",[424]],[[424,424],\"valid\"],[[425,425],\"mapped\",[643]],[[426,427],\"valid\"],[[428,428],\"mapped\",[429]],[[429,429],\"valid\"],[[430,430],\"mapped\",[648]],[[431,431],\"mapped\",[432]],[[432,432],\"valid\"],[[433,433],\"mapped\",[650]],[[434,434],\"mapped\",[651]],[[435,435],\"mapped\",[436]],[[436,436],\"valid\"],[[437,437],\"mapped\",[438]],[[438,438],\"valid\"],[[439,439],\"mapped\",[658]],[[440,440],\"mapped\",[441]],[[441,443],\"valid\"],[[444,444],\"mapped\",[445]],[[445,451],\"valid\"],[[452,454],\"mapped\",[100,382]],[[455,457],\"mapped\",[108,106]],[[458,460],\"mapped\",[110,106]],[[461,461],\"mapped\",[462]],[[462,462],\"valid\"],[[463,463],\"mapped\",[464]],[[464,464],\"valid\"],[[465,465],\"mapped\",[466]],[[466,466],\"valid\"],[[467,467],\"mapped\",[468]],[[468,468],\"valid\"],[[469,469],\"mapped\",[470]],[[470,470],\"valid\"],[[471,471],\"mapped\",[472]],[[472,472],\"valid\"],[[473,473],\"mapped\",[474]],[[474,474],\"valid\"],[[475,475],\"mapped\",[476]],[[476,477],\"valid\"],[[478,478],\"mapped\",[479]],[[479,479],\"valid\"],[[480,480],\"mapped\",[481]],[[481,481],\"valid\"],[[482,482],\"mapped\",[483]],[[483,483],\"valid\"],[[484,484],\"mapped\",[485]],[[485,485],\"valid\"],[[486,486],\"mapped\",[487]],[[487,487],\"valid\"],[[488,488],\"mapped\",[489]],[[489,489],\"valid\"],[[490,490],\"mapped\",[491]],[[491,491],\"valid\"],[[492,492],\"mapped\",[493]],[[493,493],\"valid\"],[[494,494],\"mapped\",[495]],[[495,496],\"valid\"],[[497,499],\"mapped\",[100,122]],[[500,500],\"mapped\",[501]],[[501,501],\"valid\"],[[502,502],\"mapped\",[405]],[[503,503],\"mapped\",[447]],[[504,504],\"mapped\",[505]],[[505,505],\"valid\"],[[506,506],\"mapped\",[507]],[[507,507],\"valid\"],[[508,508],\"mapped\",[509]],[[509,509],\"valid\"],[[510,510],\"mapped\",[511]],[[511,511],\"valid\"],[[512,512],\"mapped\",[513]],[[513,513],\"valid\"],[[514,514],\"mapped\",[515]],[[515,515],\"valid\"],[[516,516],\"mapped\",[517]],[[517,517],\"valid\"],[[518,518],\"mapped\",[519]],[[519,519],\"valid\"],[[520,520],\"mapped\",[521]],[[521,521],\"valid\"],[[522,522],\"mapped\",[523]],[[523,523],\"valid\"],[[524,524],\"mapped\",[525]],[[525,525],\"valid\"],[[526,526],\"mapped\",[527]],[[527,527],\"valid\"],[[528,528],\"mapped\",[529]],[[529,529],\"valid\"],[[530,530],\"mapped\",[531]],[[531,531],\"valid\"],[[532,532],\"mapped\",[533]],[[533,533],\"valid\"],[[534,534],\"mapped\",[535]],[[535,535],\"valid\"],[[536,536],\"mapped\",[537]],[[537,537],\"valid\"],[[538,538],\"mapped\",[539]],[[539,539],\"valid\"],[[540,540],\"mapped\",[541]],[[541,541],\"valid\"],[[542,542],\"mapped\",[543]],[[543,543],\"valid\"],[[544,544],\"mapped\",[414]],[[545,545],\"valid\"],[[546,546],\"mapped\",[547]],[[547,547],\"valid\"],[[548,548],\"mapped\",[549]],[[549,549],\"valid\"],[[550,550],\"mapped\",[551]],[[551,551],\"valid\"],[[552,552],\"mapped\",[553]],[[553,553],\"valid\"],[[554,554],\"mapped\",[555]],[[555,555],\"valid\"],[[556,556],\"mapped\",[557]],[[557,557],\"valid\"],[[558,558],\"mapped\",[559]],[[559,559],\"valid\"],[[560,560],\"mapped\",[561]],[[561,561],\"valid\"],[[562,562],\"mapped\",[563]],[[563,563],\"valid\"],[[564,566],\"valid\"],[[567,569],\"valid\"],[[570,570],\"mapped\",[11365]],[[571,571],\"mapped\",[572]],[[572,572],\"valid\"],[[573,573],\"mapped\",[410]],[[574,574],\"mapped\",[11366]],[[575,576],\"valid\"],[[577,577],\"mapped\",[578]],[[578,578],\"valid\"],[[579,579],\"mapped\",[384]],[[580,580],\"mapped\",[649]],[[581,581],\"mapped\",[652]],[[582,582],\"mapped\",[583]],[[583,583],\"valid\"],[[584,584],\"mapped\",[585]],[[585,585],\"valid\"],[[586,586],\"mapped\",[587]],[[587,587],\"valid\"],[[588,588],\"mapped\",[589]],[[589,589],\"valid\"],[[590,590],\"mapped\",[591]],[[591,591],\"valid\"],[[592,680],\"valid\"],[[681,685],\"valid\"],[[686,687],\"valid\"],[[688,688],\"mapped\",[104]],[[689,689],\"mapped\",[614]],[[690,690],\"mapped\",[106]],[[691,691],\"mapped\",[114]],[[692,692],\"mapped\",[633]],[[693,693],\"mapped\",[635]],[[694,694],\"mapped\",[641]],[[695,695],\"mapped\",[119]],[[696,696],\"mapped\",[121]],[[697,705],\"valid\"],[[706,709],\"valid\",[],\"NV8\"],[[710,721],\"valid\"],[[722,727],\"valid\",[],\"NV8\"],[[728,728],\"disallowed_STD3_mapped\",[32,774]],[[729,729],\"disallowed_STD3_mapped\",[32,775]],[[730,730],\"disallowed_STD3_mapped\",[32,778]],[[731,731],\"disallowed_STD3_mapped\",[32,808]],[[732,732],\"disallowed_STD3_mapped\",[32,771]],[[733,733],\"disallowed_STD3_mapped\",[32,779]],[[734,734],\"valid\",[],\"NV8\"],[[735,735],\"valid\",[],\"NV8\"],[[736,736],\"mapped\",[611]],[[737,737],\"mapped\",[108]],[[738,738],\"mapped\",[115]],[[739,739],\"mapped\",[120]],[[740,740],\"mapped\",[661]],[[741,745],\"valid\",[],\"NV8\"],[[746,747],\"valid\",[],\"NV8\"],[[748,748],\"valid\"],[[749,749],\"valid\",[],\"NV8\"],[[750,750],\"valid\"],[[751,767],\"valid\",[],\"NV8\"],[[768,831],\"valid\"],[[832,832],\"mapped\",[768]],[[833,833],\"mapped\",[769]],[[834,834],\"valid\"],[[835,835],\"mapped\",[787]],[[836,836],\"mapped\",[776,769]],[[837,837],\"mapped\",[953]],[[838,846],\"valid\"],[[847,847],\"ignored\"],[[848,855],\"valid\"],[[856,860],\"valid\"],[[861,863],\"valid\"],[[864,865],\"valid\"],[[866,866],\"valid\"],[[867,879],\"valid\"],[[880,880],\"mapped\",[881]],[[881,881],\"valid\"],[[882,882],\"mapped\",[883]],[[883,883],\"valid\"],[[884,884],\"mapped\",[697]],[[885,885],\"valid\"],[[886,886],\"mapped\",[887]],[[887,887],\"valid\"],[[888,889],\"disallowed\"],[[890,890],\"disallowed_STD3_mapped\",[32,953]],[[891,893],\"valid\"],[[894,894],\"disallowed_STD3_mapped\",[59]],[[895,895],\"mapped\",[1011]],[[896,899],\"disallowed\"],[[900,900],\"disallowed_STD3_mapped\",[32,769]],[[901,901],\"disallowed_STD3_mapped\",[32,776,769]],[[902,902],\"mapped\",[940]],[[903,903],\"mapped\",[183]],[[904,904],\"mapped\",[941]],[[905,905],\"mapped\",[942]],[[906,906],\"mapped\",[943]],[[907,907],\"disallowed\"],[[908,908],\"mapped\",[972]],[[909,909],\"disallowed\"],[[910,910],\"mapped\",[973]],[[911,911],\"mapped\",[974]],[[912,912],\"valid\"],[[913,913],\"mapped\",[945]],[[914,914],\"mapped\",[946]],[[915,915],\"mapped\",[947]],[[916,916],\"mapped\",[948]],[[917,917],\"mapped\",[949]],[[918,918],\"mapped\",[950]],[[919,919],\"mapped\",[951]],[[920,920],\"mapped\",[952]],[[921,921],\"mapped\",[953]],[[922,922],\"mapped\",[954]],[[923,923],\"mapped\",[955]],[[924,924],\"mapped\",[956]],[[925,925],\"mapped\",[957]],[[926,926],\"mapped\",[958]],[[927,927],\"mapped\",[959]],[[928,928],\"mapped\",[960]],[[929,929],\"mapped\",[961]],[[930,930],\"disallowed\"],[[931,931],\"mapped\",[963]],[[932,932],\"mapped\",[964]],[[933,933],\"mapped\",[965]],[[934,934],\"mapped\",[966]],[[935,935],\"mapped\",[967]],[[936,936],\"mapped\",[968]],[[937,937],\"mapped\",[969]],[[938,938],\"mapped\",[970]],[[939,939],\"mapped\",[971]],[[940,961],\"valid\"],[[962,962],\"deviation\",[963]],[[963,974],\"valid\"],[[975,975],\"mapped\",[983]],[[976,976],\"mapped\",[946]],[[977,977],\"mapped\",[952]],[[978,978],\"mapped\",[965]],[[979,979],\"mapped\",[973]],[[980,980],\"mapped\",[971]],[[981,981],\"mapped\",[966]],[[982,982],\"mapped\",[960]],[[983,983],\"valid\"],[[984,984],\"mapped\",[985]],[[985,985],\"valid\"],[[986,986],\"mapped\",[987]],[[987,987],\"valid\"],[[988,988],\"mapped\",[989]],[[989,989],\"valid\"],[[990,990],\"mapped\",[991]],[[991,991],\"valid\"],[[992,992],\"mapped\",[993]],[[993,993],\"valid\"],[[994,994],\"mapped\",[995]],[[995,995],\"valid\"],[[996,996],\"mapped\",[997]],[[997,997],\"valid\"],[[998,998],\"mapped\",[999]],[[999,999],\"valid\"],[[1000,1000],\"mapped\",[1001]],[[1001,1001],\"valid\"],[[1002,1002],\"mapped\",[1003]],[[1003,1003],\"valid\"],[[1004,1004],\"mapped\",[1005]],[[1005,1005],\"valid\"],[[1006,1006],\"mapped\",[1007]],[[1007,1007],\"valid\"],[[1008,1008],\"mapped\",[954]],[[1009,1009],\"mapped\",[961]],[[1010,1010],\"mapped\",[963]],[[1011,1011],\"valid\"],[[1012,1012],\"mapped\",[952]],[[1013,1013],\"mapped\",[949]],[[1014,1014],\"valid\",[],\"NV8\"],[[1015,1015],\"mapped\",[1016]],[[1016,1016],\"valid\"],[[1017,1017],\"mapped\",[963]],[[1018,1018],\"mapped\",[1019]],[[1019,1019],\"valid\"],[[1020,1020],\"valid\"],[[1021,1021],\"mapped\",[891]],[[1022,1022],\"mapped\",[892]],[[1023,1023],\"mapped\",[893]],[[1024,1024],\"mapped\",[1104]],[[1025,1025],\"mapped\",[1105]],[[1026,1026],\"mapped\",[1106]],[[1027,1027],\"mapped\",[1107]],[[1028,1028],\"mapped\",[1108]],[[1029,1029],\"mapped\",[1109]],[[1030,1030],\"mapped\",[1110]],[[1031,1031],\"mapped\",[1111]],[[1032,1032],\"mapped\",[1112]],[[1033,1033],\"mapped\",[1113]],[[1034,1034],\"mapped\",[1114]],[[1035,1035],\"mapped\",[1115]],[[1036,1036],\"mapped\",[1116]],[[1037,1037],\"mapped\",[1117]],[[1038,1038],\"mapped\",[1118]],[[1039,1039],\"mapped\",[1119]],[[1040,1040],\"mapped\",[1072]],[[1041,1041],\"mapped\",[1073]],[[1042,1042],\"mapped\",[1074]],[[1043,1043],\"mapped\",[1075]],[[1044,1044],\"mapped\",[1076]],[[1045,1045],\"mapped\",[1077]],[[1046,1046],\"mapped\",[1078]],[[1047,1047],\"mapped\",[1079]],[[1048,1048],\"mapped\",[1080]],[[1049,1049],\"mapped\",[1081]],[[1050,1050],\"mapped\",[1082]],[[1051,1051],\"mapped\",[1083]],[[1052,1052],\"mapped\",[1084]],[[1053,1053],\"mapped\",[1085]],[[1054,1054],\"mapped\",[1086]],[[1055,1055],\"mapped\",[1087]],[[1056,1056],\"mapped\",[1088]],[[1057,1057],\"mapped\",[1089]],[[1058,1058],\"mapped\",[1090]],[[1059,1059],\"mapped\",[1091]],[[1060,1060],\"mapped\",[1092]],[[1061,1061],\"mapped\",[1093]],[[1062,1062],\"mapped\",[1094]],[[1063,1063],\"mapped\",[1095]],[[1064,1064],\"mapped\",[1096]],[[1065,1065],\"mapped\",[1097]],[[1066,1066],\"mapped\",[1098]],[[1067,1067],\"mapped\",[1099]],[[1068,1068],\"mapped\",[1100]],[[1069,1069],\"mapped\",[1101]],[[1070,1070],\"mapped\",[1102]],[[1071,1071],\"mapped\",[1103]],[[1072,1103],\"valid\"],[[1104,1104],\"valid\"],[[1105,1116],\"valid\"],[[1117,1117],\"valid\"],[[1118,1119],\"valid\"],[[1120,1120],\"mapped\",[1121]],[[1121,1121],\"valid\"],[[1122,1122],\"mapped\",[1123]],[[1123,1123],\"valid\"],[[1124,1124],\"mapped\",[1125]],[[1125,1125],\"valid\"],[[1126,1126],\"mapped\",[1127]],[[1127,1127],\"valid\"],[[1128,1128],\"mapped\",[1129]],[[1129,1129],\"valid\"],[[1130,1130],\"mapped\",[1131]],[[1131,1131],\"valid\"],[[1132,1132],\"mapped\",[1133]],[[1133,1133],\"valid\"],[[1134,1134],\"mapped\",[1135]],[[1135,1135],\"valid\"],[[1136,1136],\"mapped\",[1137]],[[1137,1137],\"valid\"],[[1138,1138],\"mapped\",[1139]],[[1139,1139],\"valid\"],[[1140,1140],\"mapped\",[1141]],[[1141,1141],\"valid\"],[[1142,1142],\"mapped\",[1143]],[[1143,1143],\"valid\"],[[1144,1144],\"mapped\",[1145]],[[1145,1145],\"valid\"],[[1146,1146],\"mapped\",[1147]],[[1147,1147],\"valid\"],[[1148,1148],\"mapped\",[1149]],[[1149,1149],\"valid\"],[[1150,1150],\"mapped\",[1151]],[[1151,1151],\"valid\"],[[1152,1152],\"mapped\",[1153]],[[1153,1153],\"valid\"],[[1154,1154],\"valid\",[],\"NV8\"],[[1155,1158],\"valid\"],[[1159,1159],\"valid\"],[[1160,1161],\"valid\",[],\"NV8\"],[[1162,1162],\"mapped\",[1163]],[[1163,1163],\"valid\"],[[1164,1164],\"mapped\",[1165]],[[1165,1165],\"valid\"],[[1166,1166],\"mapped\",[1167]],[[1167,1167],\"valid\"],[[1168,1168],\"mapped\",[1169]],[[1169,1169],\"valid\"],[[1170,1170],\"mapped\",[1171]],[[1171,1171],\"valid\"],[[1172,1172],\"mapped\",[1173]],[[1173,1173],\"valid\"],[[1174,1174],\"mapped\",[1175]],[[1175,1175],\"valid\"],[[1176,1176],\"mapped\",[1177]],[[1177,1177],\"valid\"],[[1178,1178],\"mapped\",[1179]],[[1179,1179],\"valid\"],[[1180,1180],\"mapped\",[1181]],[[1181,1181],\"valid\"],[[1182,1182],\"mapped\",[1183]],[[1183,1183],\"valid\"],[[1184,1184],\"mapped\",[1185]],[[1185,1185],\"valid\"],[[1186,1186],\"mapped\",[1187]],[[1187,1187],\"valid\"],[[1188,1188],\"mapped\",[1189]],[[1189,1189],\"valid\"],[[1190,1190],\"mapped\",[1191]],[[1191,1191],\"valid\"],[[1192,1192],\"mapped\",[1193]],[[1193,1193],\"valid\"],[[1194,1194],\"mapped\",[1195]],[[1195,1195],\"valid\"],[[1196,1196],\"mapped\",[1197]],[[1197,1197],\"valid\"],[[1198,1198],\"mapped\",[1199]],[[1199,1199],\"valid\"],[[1200,1200],\"mapped\",[1201]],[[1201,1201],\"valid\"],[[1202,1202],\"mapped\",[1203]],[[1203,1203],\"valid\"],[[1204,1204],\"mapped\",[1205]],[[1205,1205],\"valid\"],[[1206,1206],\"mapped\",[1207]],[[1207,1207],\"valid\"],[[1208,1208],\"mapped\",[1209]],[[1209,1209],\"valid\"],[[1210,1210],\"mapped\",[1211]],[[1211,1211],\"valid\"],[[1212,1212],\"mapped\",[1213]],[[1213,1213],\"valid\"],[[1214,1214],\"mapped\",[1215]],[[1215,1215],\"valid\"],[[1216,1216],\"disallowed\"],[[1217,1217],\"mapped\",[1218]],[[1218,1218],\"valid\"],[[1219,1219],\"mapped\",[1220]],[[1220,1220],\"valid\"],[[1221,1221],\"mapped\",[1222]],[[1222,1222],\"valid\"],[[1223,1223],\"mapped\",[1224]],[[1224,1224],\"valid\"],[[1225,1225],\"mapped\",[1226]],[[1226,1226],\"valid\"],[[1227,1227],\"mapped\",[1228]],[[1228,1228],\"valid\"],[[1229,1229],\"mapped\",[1230]],[[1230,1230],\"valid\"],[[1231,1231],\"valid\"],[[1232,1232],\"mapped\",[1233]],[[1233,1233],\"valid\"],[[1234,1234],\"mapped\",[1235]],[[1235,1235],\"valid\"],[[1236,1236],\"mapped\",[1237]],[[1237,1237],\"valid\"],[[1238,1238],\"mapped\",[1239]],[[1239,1239],\"valid\"],[[1240,1240],\"mapped\",[1241]],[[1241,1241],\"valid\"],[[1242,1242],\"mapped\",[1243]],[[1243,1243],\"valid\"],[[1244,1244],\"mapped\",[1245]],[[1245,1245],\"valid\"],[[1246,1246],\"mapped\",[1247]],[[1247,1247],\"valid\"],[[1248,1248],\"mapped\",[1249]],[[1249,1249],\"valid\"],[[1250,1250],\"mapped\",[1251]],[[1251,1251],\"valid\"],[[1252,1252],\"mapped\",[1253]],[[1253,1253],\"valid\"],[[1254,1254],\"mapped\",[1255]],[[1255,1255],\"valid\"],[[1256,1256],\"mapped\",[1257]],[[1257,1257],\"valid\"],[[1258,1258],\"mapped\",[1259]],[[1259,1259],\"valid\"],[[1260,1260],\"mapped\",[1261]],[[1261,1261],\"valid\"],[[1262,1262],\"mapped\",[1263]],[[1263,1263],\"valid\"],[[1264,1264],\"mapped\",[1265]],[[1265,1265],\"valid\"],[[1266,1266],\"mapped\",[1267]],[[1267,1267],\"valid\"],[[1268,1268],\"mapped\",[1269]],[[1269,1269],\"valid\"],[[1270,1270],\"mapped\",[1271]],[[1271,1271],\"valid\"],[[1272,1272],\"mapped\",[1273]],[[1273,1273],\"valid\"],[[1274,1274],\"mapped\",[1275]],[[1275,1275],\"valid\"],[[1276,1276],\"mapped\",[1277]],[[1277,1277],\"valid\"],[[1278,1278],\"mapped\",[1279]],[[1279,1279],\"valid\"],[[1280,1280],\"mapped\",[1281]],[[1281,1281],\"valid\"],[[1282,1282],\"mapped\",[1283]],[[1283,1283],\"valid\"],[[1284,1284],\"mapped\",[1285]],[[1285,1285],\"valid\"],[[1286,1286],\"mapped\",[1287]],[[1287,1287],\"valid\"],[[1288,1288],\"mapped\",[1289]],[[1289,1289],\"valid\"],[[1290,1290],\"mapped\",[1291]],[[1291,1291],\"valid\"],[[1292,1292],\"mapped\",[1293]],[[1293,1293],\"valid\"],[[1294,1294],\"mapped\",[1295]],[[1295,1295],\"valid\"],[[1296,1296],\"mapped\",[1297]],[[1297,1297],\"valid\"],[[1298,1298],\"mapped\",[1299]],[[1299,1299],\"valid\"],[[1300,1300],\"mapped\",[1301]],[[1301,1301],\"valid\"],[[1302,1302],\"mapped\",[1303]],[[1303,1303],\"valid\"],[[1304,1304],\"mapped\",[1305]],[[1305,1305],\"valid\"],[[1306,1306],\"mapped\",[1307]],[[1307,1307],\"valid\"],[[1308,1308],\"mapped\",[1309]],[[1309,1309],\"valid\"],[[1310,1310],\"mapped\",[1311]],[[1311,1311],\"valid\"],[[1312,1312],\"mapped\",[1313]],[[1313,1313],\"valid\"],[[1314,1314],\"mapped\",[1315]],[[1315,1315],\"valid\"],[[1316,1316],\"mapped\",[1317]],[[1317,1317],\"valid\"],[[1318,1318],\"mapped\",[1319]],[[1319,1319],\"valid\"],[[1320,1320],\"mapped\",[1321]],[[1321,1321],\"valid\"],[[1322,1322],\"mapped\",[1323]],[[1323,1323],\"valid\"],[[1324,1324],\"mapped\",[1325]],[[1325,1325],\"valid\"],[[1326,1326],\"mapped\",[1327]],[[1327,1327],\"valid\"],[[1328,1328],\"disallowed\"],[[1329,1329],\"mapped\",[1377]],[[1330,1330],\"mapped\",[1378]],[[1331,1331],\"mapped\",[1379]],[[1332,1332],\"mapped\",[1380]],[[1333,1333],\"mapped\",[1381]],[[1334,1334],\"mapped\",[1382]],[[1335,1335],\"mapped\",[1383]],[[1336,1336],\"mapped\",[1384]],[[1337,1337],\"mapped\",[1385]],[[1338,1338],\"mapped\",[1386]],[[1339,1339],\"mapped\",[1387]],[[1340,1340],\"mapped\",[1388]],[[1341,1341],\"mapped\",[1389]],[[1342,1342],\"mapped\",[1390]],[[1343,1343],\"mapped\",[1391]],[[1344,1344],\"mapped\",[1392]],[[1345,1345],\"mapped\",[1393]],[[1346,1346],\"mapped\",[1394]],[[1347,1347],\"mapped\",[1395]],[[1348,1348],\"mapped\",[1396]],[[1349,1349],\"mapped\",[1397]],[[1350,1350],\"mapped\",[1398]],[[1351,1351],\"mapped\",[1399]],[[1352,1352],\"mapped\",[1400]],[[1353,1353],\"mapped\",[1401]],[[1354,1354],\"mapped\",[1402]],[[1355,1355],\"mapped\",[1403]],[[1356,1356],\"mapped\",[1404]],[[1357,1357],\"mapped\",[1405]],[[1358,1358],\"mapped\",[1406]],[[1359,1359],\"mapped\",[1407]],[[1360,1360],\"mapped\",[1408]],[[1361,1361],\"mapped\",[1409]],[[1362,1362],\"mapped\",[1410]],[[1363,1363],\"mapped\",[1411]],[[1364,1364],\"mapped\",[1412]],[[1365,1365],\"mapped\",[1413]],[[1366,1366],\"mapped\",[1414]],[[1367,1368],\"disallowed\"],[[1369,1369],\"valid\"],[[1370,1375],\"valid\",[],\"NV8\"],[[1376,1376],\"disallowed\"],[[1377,1414],\"valid\"],[[1415,1415],\"mapped\",[1381,1410]],[[1416,1416],\"disallowed\"],[[1417,1417],\"valid\",[],\"NV8\"],[[1418,1418],\"valid\",[],\"NV8\"],[[1419,1420],\"disallowed\"],[[1421,1422],\"valid\",[],\"NV8\"],[[1423,1423],\"valid\",[],\"NV8\"],[[1424,1424],\"disallowed\"],[[1425,1441],\"valid\"],[[1442,1442],\"valid\"],[[1443,1455],\"valid\"],[[1456,1465],\"valid\"],[[1466,1466],\"valid\"],[[1467,1469],\"valid\"],[[1470,1470],\"valid\",[],\"NV8\"],[[1471,1471],\"valid\"],[[1472,1472],\"valid\",[],\"NV8\"],[[1473,1474],\"valid\"],[[1475,1475],\"valid\",[],\"NV8\"],[[1476,1476],\"valid\"],[[1477,1477],\"valid\"],[[1478,1478],\"valid\",[],\"NV8\"],[[1479,1479],\"valid\"],[[1480,1487],\"disallowed\"],[[1488,1514],\"valid\"],[[1515,1519],\"disallowed\"],[[1520,1524],\"valid\"],[[1525,1535],\"disallowed\"],[[1536,1539],\"disallowed\"],[[1540,1540],\"disallowed\"],[[1541,1541],\"disallowed\"],[[1542,1546],\"valid\",[],\"NV8\"],[[1547,1547],\"valid\",[],\"NV8\"],[[1548,1548],\"valid\",[],\"NV8\"],[[1549,1551],\"valid\",[],\"NV8\"],[[1552,1557],\"valid\"],[[1558,1562],\"valid\"],[[1563,1563],\"valid\",[],\"NV8\"],[[1564,1564],\"disallowed\"],[[1565,1565],\"disallowed\"],[[1566,1566],\"valid\",[],\"NV8\"],[[1567,1567],\"valid\",[],\"NV8\"],[[1568,1568],\"valid\"],[[1569,1594],\"valid\"],[[1595,1599],\"valid\"],[[1600,1600],\"valid\",[],\"NV8\"],[[1601,1618],\"valid\"],[[1619,1621],\"valid\"],[[1622,1624],\"valid\"],[[1625,1630],\"valid\"],[[1631,1631],\"valid\"],[[1632,1641],\"valid\"],[[1642,1645],\"valid\",[],\"NV8\"],[[1646,1647],\"valid\"],[[1648,1652],\"valid\"],[[1653,1653],\"mapped\",[1575,1652]],[[1654,1654],\"mapped\",[1608,1652]],[[1655,1655],\"mapped\",[1735,1652]],[[1656,1656],\"mapped\",[1610,1652]],[[1657,1719],\"valid\"],[[1720,1721],\"valid\"],[[1722,1726],\"valid\"],[[1727,1727],\"valid\"],[[1728,1742],\"valid\"],[[1743,1743],\"valid\"],[[1744,1747],\"valid\"],[[1748,1748],\"valid\",[],\"NV8\"],[[1749,1756],\"valid\"],[[1757,1757],\"disallowed\"],[[1758,1758],\"valid\",[],\"NV8\"],[[1759,1768],\"valid\"],[[1769,1769],\"valid\",[],\"NV8\"],[[1770,1773],\"valid\"],[[1774,1775],\"valid\"],[[1776,1785],\"valid\"],[[1786,1790],\"valid\"],[[1791,1791],\"valid\"],[[1792,1805],\"valid\",[],\"NV8\"],[[1806,1806],\"disallowed\"],[[1807,1807],\"disallowed\"],[[1808,1836],\"valid\"],[[1837,1839],\"valid\"],[[1840,1866],\"valid\"],[[1867,1868],\"disallowed\"],[[1869,1871],\"valid\"],[[1872,1901],\"valid\"],[[1902,1919],\"valid\"],[[1920,1968],\"valid\"],[[1969,1969],\"valid\"],[[1970,1983],\"disallowed\"],[[1984,2037],\"valid\"],[[2038,2042],\"valid\",[],\"NV8\"],[[2043,2047],\"disallowed\"],[[2048,2093],\"valid\"],[[2094,2095],\"disallowed\"],[[2096,2110],\"valid\",[],\"NV8\"],[[2111,2111],\"disallowed\"],[[2112,2139],\"valid\"],[[2140,2141],\"disallowed\"],[[2142,2142],\"valid\",[],\"NV8\"],[[2143,2207],\"disallowed\"],[[2208,2208],\"valid\"],[[2209,2209],\"valid\"],[[2210,2220],\"valid\"],[[2221,2226],\"valid\"],[[2227,2228],\"valid\"],[[2229,2274],\"disallowed\"],[[2275,2275],\"valid\"],[[2276,2302],\"valid\"],[[2303,2303],\"valid\"],[[2304,2304],\"valid\"],[[2305,2307],\"valid\"],[[2308,2308],\"valid\"],[[2309,2361],\"valid\"],[[2362,2363],\"valid\"],[[2364,2381],\"valid\"],[[2382,2382],\"valid\"],[[2383,2383],\"valid\"],[[2384,2388],\"valid\"],[[2389,2389],\"valid\"],[[2390,2391],\"valid\"],[[2392,2392],\"mapped\",[2325,2364]],[[2393,2393],\"mapped\",[2326,2364]],[[2394,2394],\"mapped\",[2327,2364]],[[2395,2395],\"mapped\",[2332,2364]],[[2396,2396],\"mapped\",[2337,2364]],[[2397,2397],\"mapped\",[2338,2364]],[[2398,2398],\"mapped\",[2347,2364]],[[2399,2399],\"mapped\",[2351,2364]],[[2400,2403],\"valid\"],[[2404,2405],\"valid\",[],\"NV8\"],[[2406,2415],\"valid\"],[[2416,2416],\"valid\",[],\"NV8\"],[[2417,2418],\"valid\"],[[2419,2423],\"valid\"],[[2424,2424],\"valid\"],[[2425,2426],\"valid\"],[[2427,2428],\"valid\"],[[2429,2429],\"valid\"],[[2430,2431],\"valid\"],[[2432,2432],\"valid\"],[[2433,2435],\"valid\"],[[2436,2436],\"disallowed\"],[[2437,2444],\"valid\"],[[2445,2446],\"disallowed\"],[[2447,2448],\"valid\"],[[2449,2450],\"disallowed\"],[[2451,2472],\"valid\"],[[2473,2473],\"disallowed\"],[[2474,2480],\"valid\"],[[2481,2481],\"disallowed\"],[[2482,2482],\"valid\"],[[2483,2485],\"disallowed\"],[[2486,2489],\"valid\"],[[2490,2491],\"disallowed\"],[[2492,2492],\"valid\"],[[2493,2493],\"valid\"],[[2494,2500],\"valid\"],[[2501,2502],\"disallowed\"],[[2503,2504],\"valid\"],[[2505,2506],\"disallowed\"],[[2507,2509],\"valid\"],[[2510,2510],\"valid\"],[[2511,2518],\"disallowed\"],[[2519,2519],\"valid\"],[[2520,2523],\"disallowed\"],[[2524,2524],\"mapped\",[2465,2492]],[[2525,2525],\"mapped\",[2466,2492]],[[2526,2526],\"disallowed\"],[[2527,2527],\"mapped\",[2479,2492]],[[2528,2531],\"valid\"],[[2532,2533],\"disallowed\"],[[2534,2545],\"valid\"],[[2546,2554],\"valid\",[],\"NV8\"],[[2555,2555],\"valid\",[],\"NV8\"],[[2556,2560],\"disallowed\"],[[2561,2561],\"valid\"],[[2562,2562],\"valid\"],[[2563,2563],\"valid\"],[[2564,2564],\"disallowed\"],[[2565,2570],\"valid\"],[[2571,2574],\"disallowed\"],[[2575,2576],\"valid\"],[[2577,2578],\"disallowed\"],[[2579,2600],\"valid\"],[[2601,2601],\"disallowed\"],[[2602,2608],\"valid\"],[[2609,2609],\"disallowed\"],[[2610,2610],\"valid\"],[[2611,2611],\"mapped\",[2610,2620]],[[2612,2612],\"disallowed\"],[[2613,2613],\"valid\"],[[2614,2614],\"mapped\",[2616,2620]],[[2615,2615],\"disallowed\"],[[2616,2617],\"valid\"],[[2618,2619],\"disallowed\"],[[2620,2620],\"valid\"],[[2621,2621],\"disallowed\"],[[2622,2626],\"valid\"],[[2627,2630],\"disallowed\"],[[2631,2632],\"valid\"],[[2633,2634],\"disallowed\"],[[2635,2637],\"valid\"],[[2638,2640],\"disallowed\"],[[2641,2641],\"valid\"],[[2642,2648],\"disallowed\"],[[2649,2649],\"mapped\",[2582,2620]],[[2650,2650],\"mapped\",[2583,2620]],[[2651,2651],\"mapped\",[2588,2620]],[[2652,2652],\"valid\"],[[2653,2653],\"disallowed\"],[[2654,2654],\"mapped\",[2603,2620]],[[2655,2661],\"disallowed\"],[[2662,2676],\"valid\"],[[2677,2677],\"valid\"],[[2678,2688],\"disallowed\"],[[2689,2691],\"valid\"],[[2692,2692],\"disallowed\"],[[2693,2699],\"valid\"],[[2700,2700],\"valid\"],[[2701,2701],\"valid\"],[[2702,2702],\"disallowed\"],[[2703,2705],\"valid\"],[[2706,2706],\"disallowed\"],[[2707,2728],\"valid\"],[[2729,2729],\"disallowed\"],[[2730,2736],\"valid\"],[[2737,2737],\"disallowed\"],[[2738,2739],\"valid\"],[[2740,2740],\"disallowed\"],[[2741,2745],\"valid\"],[[2746,2747],\"disallowed\"],[[2748,2757],\"valid\"],[[2758,2758],\"disallowed\"],[[2759,2761],\"valid\"],[[2762,2762],\"disallowed\"],[[2763,2765],\"valid\"],[[2766,2767],\"disallowed\"],[[2768,2768],\"valid\"],[[2769,2783],\"disallowed\"],[[2784,2784],\"valid\"],[[2785,2787],\"valid\"],[[2788,2789],\"disallowed\"],[[2790,2799],\"valid\"],[[2800,2800],\"valid\",[],\"NV8\"],[[2801,2801],\"valid\",[],\"NV8\"],[[2802,2808],\"disallowed\"],[[2809,2809],\"valid\"],[[2810,2816],\"disallowed\"],[[2817,2819],\"valid\"],[[2820,2820],\"disallowed\"],[[2821,2828],\"valid\"],[[2829,2830],\"disallowed\"],[[2831,2832],\"valid\"],[[2833,2834],\"disallowed\"],[[2835,2856],\"valid\"],[[2857,2857],\"disallowed\"],[[2858,2864],\"valid\"],[[2865,2865],\"disallowed\"],[[2866,2867],\"valid\"],[[2868,2868],\"disallowed\"],[[2869,2869],\"valid\"],[[2870,2873],\"valid\"],[[2874,2875],\"disallowed\"],[[2876,2883],\"valid\"],[[2884,2884],\"valid\"],[[2885,2886],\"disallowed\"],[[2887,2888],\"valid\"],[[2889,2890],\"disallowed\"],[[2891,2893],\"valid\"],[[2894,2901],\"disallowed\"],[[2902,2903],\"valid\"],[[2904,2907],\"disallowed\"],[[2908,2908],\"mapped\",[2849,2876]],[[2909,2909],\"mapped\",[2850,2876]],[[2910,2910],\"disallowed\"],[[2911,2913],\"valid\"],[[2914,2915],\"valid\"],[[2916,2917],\"disallowed\"],[[2918,2927],\"valid\"],[[2928,2928],\"valid\",[],\"NV8\"],[[2929,2929],\"valid\"],[[2930,2935],\"valid\",[],\"NV8\"],[[2936,2945],\"disallowed\"],[[2946,2947],\"valid\"],[[2948,2948],\"disallowed\"],[[2949,2954],\"valid\"],[[2955,2957],\"disallowed\"],[[2958,2960],\"valid\"],[[2961,2961],\"disallowed\"],[[2962,2965],\"valid\"],[[2966,2968],\"disallowed\"],[[2969,2970],\"valid\"],[[2971,2971],\"disallowed\"],[[2972,2972],\"valid\"],[[2973,2973],\"disallowed\"],[[2974,2975],\"valid\"],[[2976,2978],\"disallowed\"],[[2979,2980],\"valid\"],[[2981,2983],\"disallowed\"],[[2984,2986],\"valid\"],[[2987,2989],\"disallowed\"],[[2990,2997],\"valid\"],[[2998,2998],\"valid\"],[[2999,3001],\"valid\"],[[3002,3005],\"disallowed\"],[[3006,3010],\"valid\"],[[3011,3013],\"disallowed\"],[[3014,3016],\"valid\"],[[3017,3017],\"disallowed\"],[[3018,3021],\"valid\"],[[3022,3023],\"disallowed\"],[[3024,3024],\"valid\"],[[3025,3030],\"disallowed\"],[[3031,3031],\"valid\"],[[3032,3045],\"disallowed\"],[[3046,3046],\"valid\"],[[3047,3055],\"valid\"],[[3056,3058],\"valid\",[],\"NV8\"],[[3059,3066],\"valid\",[],\"NV8\"],[[3067,3071],\"disallowed\"],[[3072,3072],\"valid\"],[[3073,3075],\"valid\"],[[3076,3076],\"disallowed\"],[[3077,3084],\"valid\"],[[3085,3085],\"disallowed\"],[[3086,3088],\"valid\"],[[3089,3089],\"disallowed\"],[[3090,3112],\"valid\"],[[3113,3113],\"disallowed\"],[[3114,3123],\"valid\"],[[3124,3124],\"valid\"],[[3125,3129],\"valid\"],[[3130,3132],\"disallowed\"],[[3133,3133],\"valid\"],[[3134,3140],\"valid\"],[[3141,3141],\"disallowed\"],[[3142,3144],\"valid\"],[[3145,3145],\"disallowed\"],[[3146,3149],\"valid\"],[[3150,3156],\"disallowed\"],[[3157,3158],\"valid\"],[[3159,3159],\"disallowed\"],[[3160,3161],\"valid\"],[[3162,3162],\"valid\"],[[3163,3167],\"disallowed\"],[[3168,3169],\"valid\"],[[3170,3171],\"valid\"],[[3172,3173],\"disallowed\"],[[3174,3183],\"valid\"],[[3184,3191],\"disallowed\"],[[3192,3199],\"valid\",[],\"NV8\"],[[3200,3200],\"disallowed\"],[[3201,3201],\"valid\"],[[3202,3203],\"valid\"],[[3204,3204],\"disallowed\"],[[3205,3212],\"valid\"],[[3213,3213],\"disallowed\"],[[3214,3216],\"valid\"],[[3217,3217],\"disallowed\"],[[3218,3240],\"valid\"],[[3241,3241],\"disallowed\"],[[3242,3251],\"valid\"],[[3252,3252],\"disallowed\"],[[3253,3257],\"valid\"],[[3258,3259],\"disallowed\"],[[3260,3261],\"valid\"],[[3262,3268],\"valid\"],[[3269,3269],\"disallowed\"],[[3270,3272],\"valid\"],[[3273,3273],\"disallowed\"],[[3274,3277],\"valid\"],[[3278,3284],\"disallowed\"],[[3285,3286],\"valid\"],[[3287,3293],\"disallowed\"],[[3294,3294],\"valid\"],[[3295,3295],\"disallowed\"],[[3296,3297],\"valid\"],[[3298,3299],\"valid\"],[[3300,3301],\"disallowed\"],[[3302,3311],\"valid\"],[[3312,3312],\"disallowed\"],[[3313,3314],\"valid\"],[[3315,3328],\"disallowed\"],[[3329,3329],\"valid\"],[[3330,3331],\"valid\"],[[3332,3332],\"disallowed\"],[[3333,3340],\"valid\"],[[3341,3341],\"disallowed\"],[[3342,3344],\"valid\"],[[3345,3345],\"disallowed\"],[[3346,3368],\"valid\"],[[3369,3369],\"valid\"],[[3370,3385],\"valid\"],[[3386,3386],\"valid\"],[[3387,3388],\"disallowed\"],[[3389,3389],\"valid\"],[[3390,3395],\"valid\"],[[3396,3396],\"valid\"],[[3397,3397],\"disallowed\"],[[3398,3400],\"valid\"],[[3401,3401],\"disallowed\"],[[3402,3405],\"valid\"],[[3406,3406],\"valid\"],[[3407,3414],\"disallowed\"],[[3415,3415],\"valid\"],[[3416,3422],\"disallowed\"],[[3423,3423],\"valid\"],[[3424,3425],\"valid\"],[[3426,3427],\"valid\"],[[3428,3429],\"disallowed\"],[[3430,3439],\"valid\"],[[3440,3445],\"valid\",[],\"NV8\"],[[3446,3448],\"disallowed\"],[[3449,3449],\"valid\",[],\"NV8\"],[[3450,3455],\"valid\"],[[3456,3457],\"disallowed\"],[[3458,3459],\"valid\"],[[3460,3460],\"disallowed\"],[[3461,3478],\"valid\"],[[3479,3481],\"disallowed\"],[[3482,3505],\"valid\"],[[3506,3506],\"disallowed\"],[[3507,3515],\"valid\"],[[3516,3516],\"disallowed\"],[[3517,3517],\"valid\"],[[3518,3519],\"disallowed\"],[[3520,3526],\"valid\"],[[3527,3529],\"disallowed\"],[[3530,3530],\"valid\"],[[3531,3534],\"disallowed\"],[[3535,3540],\"valid\"],[[3541,3541],\"disallowed\"],[[3542,3542],\"valid\"],[[3543,3543],\"disallowed\"],[[3544,3551],\"valid\"],[[3552,3557],\"disallowed\"],[[3558,3567],\"valid\"],[[3568,3569],\"disallowed\"],[[3570,3571],\"valid\"],[[3572,3572],\"valid\",[],\"NV8\"],[[3573,3584],\"disallowed\"],[[3585,3634],\"valid\"],[[3635,3635],\"mapped\",[3661,3634]],[[3636,3642],\"valid\"],[[3643,3646],\"disallowed\"],[[3647,3647],\"valid\",[],\"NV8\"],[[3648,3662],\"valid\"],[[3663,3663],\"valid\",[],\"NV8\"],[[3664,3673],\"valid\"],[[3674,3675],\"valid\",[],\"NV8\"],[[3676,3712],\"disallowed\"],[[3713,3714],\"valid\"],[[3715,3715],\"disallowed\"],[[3716,3716],\"valid\"],[[3717,3718],\"disallowed\"],[[3719,3720],\"valid\"],[[3721,3721],\"disallowed\"],[[3722,3722],\"valid\"],[[3723,3724],\"disallowed\"],[[3725,3725],\"valid\"],[[3726,3731],\"disallowed\"],[[3732,3735],\"valid\"],[[3736,3736],\"disallowed\"],[[3737,3743],\"valid\"],[[3744,3744],\"disallowed\"],[[3745,3747],\"valid\"],[[3748,3748],\"disallowed\"],[[3749,3749],\"valid\"],[[3750,3750],\"disallowed\"],[[3751,3751],\"valid\"],[[3752,3753],\"disallowed\"],[[3754,3755],\"valid\"],[[3756,3756],\"disallowed\"],[[3757,3762],\"valid\"],[[3763,3763],\"mapped\",[3789,3762]],[[3764,3769],\"valid\"],[[3770,3770],\"disallowed\"],[[3771,3773],\"valid\"],[[3774,3775],\"disallowed\"],[[3776,3780],\"valid\"],[[3781,3781],\"disallowed\"],[[3782,3782],\"valid\"],[[3783,3783],\"disallowed\"],[[3784,3789],\"valid\"],[[3790,3791],\"disallowed\"],[[3792,3801],\"valid\"],[[3802,3803],\"disallowed\"],[[3804,3804],\"mapped\",[3755,3737]],[[3805,3805],\"mapped\",[3755,3745]],[[3806,3807],\"valid\"],[[3808,3839],\"disallowed\"],[[3840,3840],\"valid\"],[[3841,3850],\"valid\",[],\"NV8\"],[[3851,3851],\"valid\"],[[3852,3852],\"mapped\",[3851]],[[3853,3863],\"valid\",[],\"NV8\"],[[3864,3865],\"valid\"],[[3866,3871],\"valid\",[],\"NV8\"],[[3872,3881],\"valid\"],[[3882,3892],\"valid\",[],\"NV8\"],[[3893,3893],\"valid\"],[[3894,3894],\"valid\",[],\"NV8\"],[[3895,3895],\"valid\"],[[3896,3896],\"valid\",[],\"NV8\"],[[3897,3897],\"valid\"],[[3898,3901],\"valid\",[],\"NV8\"],[[3902,3906],\"valid\"],[[3907,3907],\"mapped\",[3906,4023]],[[3908,3911],\"valid\"],[[3912,3912],\"disallowed\"],[[3913,3916],\"valid\"],[[3917,3917],\"mapped\",[3916,4023]],[[3918,3921],\"valid\"],[[3922,3922],\"mapped\",[3921,4023]],[[3923,3926],\"valid\"],[[3927,3927],\"mapped\",[3926,4023]],[[3928,3931],\"valid\"],[[3932,3932],\"mapped\",[3931,4023]],[[3933,3944],\"valid\"],[[3945,3945],\"mapped\",[3904,4021]],[[3946,3946],\"valid\"],[[3947,3948],\"valid\"],[[3949,3952],\"disallowed\"],[[3953,3954],\"valid\"],[[3955,3955],\"mapped\",[3953,3954]],[[3956,3956],\"valid\"],[[3957,3957],\"mapped\",[3953,3956]],[[3958,3958],\"mapped\",[4018,3968]],[[3959,3959],\"mapped\",[4018,3953,3968]],[[3960,3960],\"mapped\",[4019,3968]],[[3961,3961],\"mapped\",[4019,3953,3968]],[[3962,3968],\"valid\"],[[3969,3969],\"mapped\",[3953,3968]],[[3970,3972],\"valid\"],[[3973,3973],\"valid\",[],\"NV8\"],[[3974,3979],\"valid\"],[[3980,3983],\"valid\"],[[3984,3986],\"valid\"],[[3987,3987],\"mapped\",[3986,4023]],[[3988,3989],\"valid\"],[[3990,3990],\"valid\"],[[3991,3991],\"valid\"],[[3992,3992],\"disallowed\"],[[3993,3996],\"valid\"],[[3997,3997],\"mapped\",[3996,4023]],[[3998,4001],\"valid\"],[[4002,4002],\"mapped\",[4001,4023]],[[4003,4006],\"valid\"],[[4007,4007],\"mapped\",[4006,4023]],[[4008,4011],\"valid\"],[[4012,4012],\"mapped\",[4011,4023]],[[4013,4013],\"valid\"],[[4014,4016],\"valid\"],[[4017,4023],\"valid\"],[[4024,4024],\"valid\"],[[4025,4025],\"mapped\",[3984,4021]],[[4026,4028],\"valid\"],[[4029,4029],\"disallowed\"],[[4030,4037],\"valid\",[],\"NV8\"],[[4038,4038],\"valid\"],[[4039,4044],\"valid\",[],\"NV8\"],[[4045,4045],\"disallowed\"],[[4046,4046],\"valid\",[],\"NV8\"],[[4047,4047],\"valid\",[],\"NV8\"],[[4048,4049],\"valid\",[],\"NV8\"],[[4050,4052],\"valid\",[],\"NV8\"],[[4053,4056],\"valid\",[],\"NV8\"],[[4057,4058],\"valid\",[],\"NV8\"],[[4059,4095],\"disallowed\"],[[4096,4129],\"valid\"],[[4130,4130],\"valid\"],[[4131,4135],\"valid\"],[[4136,4136],\"valid\"],[[4137,4138],\"valid\"],[[4139,4139],\"valid\"],[[4140,4146],\"valid\"],[[4147,4149],\"valid\"],[[4150,4153],\"valid\"],[[4154,4159],\"valid\"],[[4160,4169],\"valid\"],[[4170,4175],\"valid\",[],\"NV8\"],[[4176,4185],\"valid\"],[[4186,4249],\"valid\"],[[4250,4253],\"valid\"],[[4254,4255],\"valid\",[],\"NV8\"],[[4256,4293],\"disallowed\"],[[4294,4294],\"disallowed\"],[[4295,4295],\"mapped\",[11559]],[[4296,4300],\"disallowed\"],[[4301,4301],\"mapped\",[11565]],[[4302,4303],\"disallowed\"],[[4304,4342],\"valid\"],[[4343,4344],\"valid\"],[[4345,4346],\"valid\"],[[4347,4347],\"valid\",[],\"NV8\"],[[4348,4348],\"mapped\",[4316]],[[4349,4351],\"valid\"],[[4352,4441],\"valid\",[],\"NV8\"],[[4442,4446],\"valid\",[],\"NV8\"],[[4447,4448],\"disallowed\"],[[4449,4514],\"valid\",[],\"NV8\"],[[4515,4519],\"valid\",[],\"NV8\"],[[4520,4601],\"valid\",[],\"NV8\"],[[4602,4607],\"valid\",[],\"NV8\"],[[4608,4614],\"valid\"],[[4615,4615],\"valid\"],[[4616,4678],\"valid\"],[[4679,4679],\"valid\"],[[4680,4680],\"valid\"],[[4681,4681],\"disallowed\"],[[4682,4685],\"valid\"],[[4686,4687],\"disallowed\"],[[4688,4694],\"valid\"],[[4695,4695],\"disallowed\"],[[4696,4696],\"valid\"],[[4697,4697],\"disallowed\"],[[4698,4701],\"valid\"],[[4702,4703],\"disallowed\"],[[4704,4742],\"valid\"],[[4743,4743],\"valid\"],[[4744,4744],\"valid\"],[[4745,4745],\"disallowed\"],[[4746,4749],\"valid\"],[[4750,4751],\"disallowed\"],[[4752,4782],\"valid\"],[[4783,4783],\"valid\"],[[4784,4784],\"valid\"],[[4785,4785],\"disallowed\"],[[4786,4789],\"valid\"],[[4790,4791],\"disallowed\"],[[4792,4798],\"valid\"],[[4799,4799],\"disallowed\"],[[4800,4800],\"valid\"],[[4801,4801],\"disallowed\"],[[4802,4805],\"valid\"],[[4806,4807],\"disallowed\"],[[4808,4814],\"valid\"],[[4815,4815],\"valid\"],[[4816,4822],\"valid\"],[[4823,4823],\"disallowed\"],[[4824,4846],\"valid\"],[[4847,4847],\"valid\"],[[4848,4878],\"valid\"],[[4879,4879],\"valid\"],[[4880,4880],\"valid\"],[[4881,4881],\"disallowed\"],[[4882,4885],\"valid\"],[[4886,4887],\"disallowed\"],[[4888,4894],\"valid\"],[[4895,4895],\"valid\"],[[4896,4934],\"valid\"],[[4935,4935],\"valid\"],[[4936,4954],\"valid\"],[[4955,4956],\"disallowed\"],[[4957,4958],\"valid\"],[[4959,4959],\"valid\"],[[4960,4960],\"valid\",[],\"NV8\"],[[4961,4988],\"valid\",[],\"NV8\"],[[4989,4991],\"disallowed\"],[[4992,5007],\"valid\"],[[5008,5017],\"valid\",[],\"NV8\"],[[5018,5023],\"disallowed\"],[[5024,5108],\"valid\"],[[5109,5109],\"valid\"],[[5110,5111],\"disallowed\"],[[5112,5112],\"mapped\",[5104]],[[5113,5113],\"mapped\",[5105]],[[5114,5114],\"mapped\",[5106]],[[5115,5115],\"mapped\",[5107]],[[5116,5116],\"mapped\",[5108]],[[5117,5117],\"mapped\",[5109]],[[5118,5119],\"disallowed\"],[[5120,5120],\"valid\",[],\"NV8\"],[[5121,5740],\"valid\"],[[5741,5742],\"valid\",[],\"NV8\"],[[5743,5750],\"valid\"],[[5751,5759],\"valid\"],[[5760,5760],\"disallowed\"],[[5761,5786],\"valid\"],[[5787,5788],\"valid\",[],\"NV8\"],[[5789,5791],\"disallowed\"],[[5792,5866],\"valid\"],[[5867,5872],\"valid\",[],\"NV8\"],[[5873,5880],\"valid\"],[[5881,5887],\"disallowed\"],[[5888,5900],\"valid\"],[[5901,5901],\"disallowed\"],[[5902,5908],\"valid\"],[[5909,5919],\"disallowed\"],[[5920,5940],\"valid\"],[[5941,5942],\"valid\",[],\"NV8\"],[[5943,5951],\"disallowed\"],[[5952,5971],\"valid\"],[[5972,5983],\"disallowed\"],[[5984,5996],\"valid\"],[[5997,5997],\"disallowed\"],[[5998,6000],\"valid\"],[[6001,6001],\"disallowed\"],[[6002,6003],\"valid\"],[[6004,6015],\"disallowed\"],[[6016,6067],\"valid\"],[[6068,6069],\"disallowed\"],[[6070,6099],\"valid\"],[[6100,6102],\"valid\",[],\"NV8\"],[[6103,6103],\"valid\"],[[6104,6107],\"valid\",[],\"NV8\"],[[6108,6108],\"valid\"],[[6109,6109],\"valid\"],[[6110,6111],\"disallowed\"],[[6112,6121],\"valid\"],[[6122,6127],\"disallowed\"],[[6128,6137],\"valid\",[],\"NV8\"],[[6138,6143],\"disallowed\"],[[6144,6149],\"valid\",[],\"NV8\"],[[6150,6150],\"disallowed\"],[[6151,6154],\"valid\",[],\"NV8\"],[[6155,6157],\"ignored\"],[[6158,6158],\"disallowed\"],[[6159,6159],\"disallowed\"],[[6160,6169],\"valid\"],[[6170,6175],\"disallowed\"],[[6176,6263],\"valid\"],[[6264,6271],\"disallowed\"],[[6272,6313],\"valid\"],[[6314,6314],\"valid\"],[[6315,6319],\"disallowed\"],[[6320,6389],\"valid\"],[[6390,6399],\"disallowed\"],[[6400,6428],\"valid\"],[[6429,6430],\"valid\"],[[6431,6431],\"disallowed\"],[[6432,6443],\"valid\"],[[6444,6447],\"disallowed\"],[[6448,6459],\"valid\"],[[6460,6463],\"disallowed\"],[[6464,6464],\"valid\",[],\"NV8\"],[[6465,6467],\"disallowed\"],[[6468,6469],\"valid\",[],\"NV8\"],[[6470,6509],\"valid\"],[[6510,6511],\"disallowed\"],[[6512,6516],\"valid\"],[[6517,6527],\"disallowed\"],[[6528,6569],\"valid\"],[[6570,6571],\"valid\"],[[6572,6575],\"disallowed\"],[[6576,6601],\"valid\"],[[6602,6607],\"disallowed\"],[[6608,6617],\"valid\"],[[6618,6618],\"valid\",[],\"XV8\"],[[6619,6621],\"disallowed\"],[[6622,6623],\"valid\",[],\"NV8\"],[[6624,6655],\"valid\",[],\"NV8\"],[[6656,6683],\"valid\"],[[6684,6685],\"disallowed\"],[[6686,6687],\"valid\",[],\"NV8\"],[[6688,6750],\"valid\"],[[6751,6751],\"disallowed\"],[[6752,6780],\"valid\"],[[6781,6782],\"disallowed\"],[[6783,6793],\"valid\"],[[6794,6799],\"disallowed\"],[[6800,6809],\"valid\"],[[6810,6815],\"disallowed\"],[[6816,6822],\"valid\",[],\"NV8\"],[[6823,6823],\"valid\"],[[6824,6829],\"valid\",[],\"NV8\"],[[6830,6831],\"disallowed\"],[[6832,6845],\"valid\"],[[6846,6846],\"valid\",[],\"NV8\"],[[6847,6911],\"disallowed\"],[[6912,6987],\"valid\"],[[6988,6991],\"disallowed\"],[[6992,7001],\"valid\"],[[7002,7018],\"valid\",[],\"NV8\"],[[7019,7027],\"valid\"],[[7028,7036],\"valid\",[],\"NV8\"],[[7037,7039],\"disallowed\"],[[7040,7082],\"valid\"],[[7083,7085],\"valid\"],[[7086,7097],\"valid\"],[[7098,7103],\"valid\"],[[7104,7155],\"valid\"],[[7156,7163],\"disallowed\"],[[7164,7167],\"valid\",[],\"NV8\"],[[7168,7223],\"valid\"],[[7224,7226],\"disallowed\"],[[7227,7231],\"valid\",[],\"NV8\"],[[7232,7241],\"valid\"],[[7242,7244],\"disallowed\"],[[7245,7293],\"valid\"],[[7294,7295],\"valid\",[],\"NV8\"],[[7296,7359],\"disallowed\"],[[7360,7367],\"valid\",[],\"NV8\"],[[7368,7375],\"disallowed\"],[[7376,7378],\"valid\"],[[7379,7379],\"valid\",[],\"NV8\"],[[7380,7410],\"valid\"],[[7411,7414],\"valid\"],[[7415,7415],\"disallowed\"],[[7416,7417],\"valid\"],[[7418,7423],\"disallowed\"],[[7424,7467],\"valid\"],[[7468,7468],\"mapped\",[97]],[[7469,7469],\"mapped\",[230]],[[7470,7470],\"mapped\",[98]],[[7471,7471],\"valid\"],[[7472,7472],\"mapped\",[100]],[[7473,7473],\"mapped\",[101]],[[7474,7474],\"mapped\",[477]],[[7475,7475],\"mapped\",[103]],[[7476,7476],\"mapped\",[104]],[[7477,7477],\"mapped\",[105]],[[7478,7478],\"mapped\",[106]],[[7479,7479],\"mapped\",[107]],[[7480,7480],\"mapped\",[108]],[[7481,7481],\"mapped\",[109]],[[7482,7482],\"mapped\",[110]],[[7483,7483],\"valid\"],[[7484,7484],\"mapped\",[111]],[[7485,7485],\"mapped\",[547]],[[7486,7486],\"mapped\",[112]],[[7487,7487],\"mapped\",[114]],[[7488,7488],\"mapped\",[116]],[[7489,7489],\"mapped\",[117]],[[7490,7490],\"mapped\",[119]],[[7491,7491],\"mapped\",[97]],[[7492,7492],\"mapped\",[592]],[[7493,7493],\"mapped\",[593]],[[7494,7494],\"mapped\",[7426]],[[7495,7495],\"mapped\",[98]],[[7496,7496],\"mapped\",[100]],[[7497,7497],\"mapped\",[101]],[[7498,7498],\"mapped\",[601]],[[7499,7499],\"mapped\",[603]],[[7500,7500],\"mapped\",[604]],[[7501,7501],\"mapped\",[103]],[[7502,7502],\"valid\"],[[7503,7503],\"mapped\",[107]],[[7504,7504],\"mapped\",[109]],[[7505,7505],\"mapped\",[331]],[[7506,7506],\"mapped\",[111]],[[7507,7507],\"mapped\",[596]],[[7508,7508],\"mapped\",[7446]],[[7509,7509],\"mapped\",[7447]],[[7510,7510],\"mapped\",[112]],[[7511,7511],\"mapped\",[116]],[[7512,7512],\"mapped\",[117]],[[7513,7513],\"mapped\",[7453]],[[7514,7514],\"mapped\",[623]],[[7515,7515],\"mapped\",[118]],[[7516,7516],\"mapped\",[7461]],[[7517,7517],\"mapped\",[946]],[[7518,7518],\"mapped\",[947]],[[7519,7519],\"mapped\",[948]],[[7520,7520],\"mapped\",[966]],[[7521,7521],\"mapped\",[967]],[[7522,7522],\"mapped\",[105]],[[7523,7523],\"mapped\",[114]],[[7524,7524],\"mapped\",[117]],[[7525,7525],\"mapped\",[118]],[[7526,7526],\"mapped\",[946]],[[7527,7527],\"mapped\",[947]],[[7528,7528],\"mapped\",[961]],[[7529,7529],\"mapped\",[966]],[[7530,7530],\"mapped\",[967]],[[7531,7531],\"valid\"],[[7532,7543],\"valid\"],[[7544,7544],\"mapped\",[1085]],[[7545,7578],\"valid\"],[[7579,7579],\"mapped\",[594]],[[7580,7580],\"mapped\",[99]],[[7581,7581],\"mapped\",[597]],[[7582,7582],\"mapped\",[240]],[[7583,7583],\"mapped\",[604]],[[7584,7584],\"mapped\",[102]],[[7585,7585],\"mapped\",[607]],[[7586,7586],\"mapped\",[609]],[[7587,7587],\"mapped\",[613]],[[7588,7588],\"mapped\",[616]],[[7589,7589],\"mapped\",[617]],[[7590,7590],\"mapped\",[618]],[[7591,7591],\"mapped\",[7547]],[[7592,7592],\"mapped\",[669]],[[7593,7593],\"mapped\",[621]],[[7594,7594],\"mapped\",[7557]],[[7595,7595],\"mapped\",[671]],[[7596,7596],\"mapped\",[625]],[[7597,7597],\"mapped\",[624]],[[7598,7598],\"mapped\",[626]],[[7599,7599],\"mapped\",[627]],[[7600,7600],\"mapped\",[628]],[[7601,7601],\"mapped\",[629]],[[7602,7602],\"mapped\",[632]],[[7603,7603],\"mapped\",[642]],[[7604,7604],\"mapped\",[643]],[[7605,7605],\"mapped\",[427]],[[7606,7606],\"mapped\",[649]],[[7607,7607],\"mapped\",[650]],[[7608,7608],\"mapped\",[7452]],[[7609,7609],\"mapped\",[651]],[[7610,7610],\"mapped\",[652]],[[7611,7611],\"mapped\",[122]],[[7612,7612],\"mapped\",[656]],[[7613,7613],\"mapped\",[657]],[[7614,7614],\"mapped\",[658]],[[7615,7615],\"mapped\",[952]],[[7616,7619],\"valid\"],[[7620,7626],\"valid\"],[[7627,7654],\"valid\"],[[7655,7669],\"valid\"],[[7670,7675],\"disallowed\"],[[7676,7676],\"valid\"],[[7677,7677],\"valid\"],[[7678,7679],\"valid\"],[[7680,7680],\"mapped\",[7681]],[[7681,7681],\"valid\"],[[7682,7682],\"mapped\",[7683]],[[7683,7683],\"valid\"],[[7684,7684],\"mapped\",[7685]],[[7685,7685],\"valid\"],[[7686,7686],\"mapped\",[7687]],[[7687,7687],\"valid\"],[[7688,7688],\"mapped\",[7689]],[[7689,7689],\"valid\"],[[7690,7690],\"mapped\",[7691]],[[7691,7691],\"valid\"],[[7692,7692],\"mapped\",[7693]],[[7693,7693],\"valid\"],[[7694,7694],\"mapped\",[7695]],[[7695,7695],\"valid\"],[[7696,7696],\"mapped\",[7697]],[[7697,7697],\"valid\"],[[7698,7698],\"mapped\",[7699]],[[7699,7699],\"valid\"],[[7700,7700],\"mapped\",[7701]],[[7701,7701],\"valid\"],[[7702,7702],\"mapped\",[7703]],[[7703,7703],\"valid\"],[[7704,7704],\"mapped\",[7705]],[[7705,7705],\"valid\"],[[7706,7706],\"mapped\",[7707]],[[7707,7707],\"valid\"],[[7708,7708],\"mapped\",[7709]],[[7709,7709],\"valid\"],[[7710,7710],\"mapped\",[7711]],[[7711,7711],\"valid\"],[[7712,7712],\"mapped\",[7713]],[[7713,7713],\"valid\"],[[7714,7714],\"mapped\",[7715]],[[7715,7715],\"valid\"],[[7716,7716],\"mapped\",[7717]],[[7717,7717],\"valid\"],[[7718,7718],\"mapped\",[7719]],[[7719,7719],\"valid\"],[[7720,7720],\"mapped\",[7721]],[[7721,7721],\"valid\"],[[7722,7722],\"mapped\",[7723]],[[7723,7723],\"valid\"],[[7724,7724],\"mapped\",[7725]],[[7725,7725],\"valid\"],[[7726,7726],\"mapped\",[7727]],[[7727,7727],\"valid\"],[[7728,7728],\"mapped\",[7729]],[[7729,7729],\"valid\"],[[7730,7730],\"mapped\",[7731]],[[7731,7731],\"valid\"],[[7732,7732],\"mapped\",[7733]],[[7733,7733],\"valid\"],[[7734,7734],\"mapped\",[7735]],[[7735,7735],\"valid\"],[[7736,7736],\"mapped\",[7737]],[[7737,7737],\"valid\"],[[7738,7738],\"mapped\",[7739]],[[7739,7739],\"valid\"],[[7740,7740],\"mapped\",[7741]],[[7741,7741],\"valid\"],[[7742,7742],\"mapped\",[7743]],[[7743,7743],\"valid\"],[[7744,7744],\"mapped\",[7745]],[[7745,7745],\"valid\"],[[7746,7746],\"mapped\",[7747]],[[7747,7747],\"valid\"],[[7748,7748],\"mapped\",[7749]],[[7749,7749],\"valid\"],[[7750,7750],\"mapped\",[7751]],[[7751,7751],\"valid\"],[[7752,7752],\"mapped\",[7753]],[[7753,7753],\"valid\"],[[7754,7754],\"mapped\",[7755]],[[7755,7755],\"valid\"],[[7756,7756],\"mapped\",[7757]],[[7757,7757],\"valid\"],[[7758,7758],\"mapped\",[7759]],[[7759,7759],\"valid\"],[[7760,7760],\"mapped\",[7761]],[[7761,7761],\"valid\"],[[7762,7762],\"mapped\",[7763]],[[7763,7763],\"valid\"],[[7764,7764],\"mapped\",[7765]],[[7765,7765],\"valid\"],[[7766,7766],\"mapped\",[7767]],[[7767,7767],\"valid\"],[[7768,7768],\"mapped\",[7769]],[[7769,7769],\"valid\"],[[7770,7770],\"mapped\",[7771]],[[7771,7771],\"valid\"],[[7772,7772],\"mapped\",[7773]],[[7773,7773],\"valid\"],[[7774,7774],\"mapped\",[7775]],[[7775,7775],\"valid\"],[[7776,7776],\"mapped\",[7777]],[[7777,7777],\"valid\"],[[7778,7778],\"mapped\",[7779]],[[7779,7779],\"valid\"],[[7780,7780],\"mapped\",[7781]],[[7781,7781],\"valid\"],[[7782,7782],\"mapped\",[7783]],[[7783,7783],\"valid\"],[[7784,7784],\"mapped\",[7785]],[[7785,7785],\"valid\"],[[7786,7786],\"mapped\",[7787]],[[7787,7787],\"valid\"],[[7788,7788],\"mapped\",[7789]],[[7789,7789],\"valid\"],[[7790,7790],\"mapped\",[7791]],[[7791,7791],\"valid\"],[[7792,7792],\"mapped\",[7793]],[[7793,7793],\"valid\"],[[7794,7794],\"mapped\",[7795]],[[7795,7795],\"valid\"],[[7796,7796],\"mapped\",[7797]],[[7797,7797],\"valid\"],[[7798,7798],\"mapped\",[7799]],[[7799,7799],\"valid\"],[[7800,7800],\"mapped\",[7801]],[[7801,7801],\"valid\"],[[7802,7802],\"mapped\",[7803]],[[7803,7803],\"valid\"],[[7804,7804],\"mapped\",[7805]],[[7805,7805],\"valid\"],[[7806,7806],\"mapped\",[7807]],[[7807,7807],\"valid\"],[[7808,7808],\"mapped\",[7809]],[[7809,7809],\"valid\"],[[7810,7810],\"mapped\",[7811]],[[7811,7811],\"valid\"],[[7812,7812],\"mapped\",[7813]],[[7813,7813],\"valid\"],[[7814,7814],\"mapped\",[7815]],[[7815,7815],\"valid\"],[[7816,7816],\"mapped\",[7817]],[[7817,7817],\"valid\"],[[7818,7818],\"mapped\",[7819]],[[7819,7819],\"valid\"],[[7820,7820],\"mapped\",[7821]],[[7821,7821],\"valid\"],[[7822,7822],\"mapped\",[7823]],[[7823,7823],\"valid\"],[[7824,7824],\"mapped\",[7825]],[[7825,7825],\"valid\"],[[7826,7826],\"mapped\",[7827]],[[7827,7827],\"valid\"],[[7828,7828],\"mapped\",[7829]],[[7829,7833],\"valid\"],[[7834,7834],\"mapped\",[97,702]],[[7835,7835],\"mapped\",[7777]],[[7836,7837],\"valid\"],[[7838,7838],\"mapped\",[115,115]],[[7839,7839],\"valid\"],[[7840,7840],\"mapped\",[7841]],[[7841,7841],\"valid\"],[[7842,7842],\"mapped\",[7843]],[[7843,7843],\"valid\"],[[7844,7844],\"mapped\",[7845]],[[7845,7845],\"valid\"],[[7846,7846],\"mapped\",[7847]],[[7847,7847],\"valid\"],[[7848,7848],\"mapped\",[7849]],[[7849,7849],\"valid\"],[[7850,7850],\"mapped\",[7851]],[[7851,7851],\"valid\"],[[7852,7852],\"mapped\",[7853]],[[7853,7853],\"valid\"],[[7854,7854],\"mapped\",[7855]],[[7855,7855],\"valid\"],[[7856,7856],\"mapped\",[7857]],[[7857,7857],\"valid\"],[[7858,7858],\"mapped\",[7859]],[[7859,7859],\"valid\"],[[7860,7860],\"mapped\",[7861]],[[7861,7861],\"valid\"],[[7862,7862],\"mapped\",[7863]],[[7863,7863],\"valid\"],[[7864,7864],\"mapped\",[7865]],[[7865,7865],\"valid\"],[[7866,7866],\"mapped\",[7867]],[[7867,7867],\"valid\"],[[7868,7868],\"mapped\",[7869]],[[7869,7869],\"valid\"],[[7870,7870],\"mapped\",[7871]],[[7871,7871],\"valid\"],[[7872,7872],\"mapped\",[7873]],[[7873,7873],\"valid\"],[[7874,7874],\"mapped\",[7875]],[[7875,7875],\"valid\"],[[7876,7876],\"mapped\",[7877]],[[7877,7877],\"valid\"],[[7878,7878],\"mapped\",[7879]],[[7879,7879],\"valid\"],[[7880,7880],\"mapped\",[7881]],[[7881,7881],\"valid\"],[[7882,7882],\"mapped\",[7883]],[[7883,7883],\"valid\"],[[7884,7884],\"mapped\",[7885]],[[7885,7885],\"valid\"],[[7886,7886],\"mapped\",[7887]],[[7887,7887],\"valid\"],[[7888,7888],\"mapped\",[7889]],[[7889,7889],\"valid\"],[[7890,7890],\"mapped\",[7891]],[[7891,7891],\"valid\"],[[7892,7892],\"mapped\",[7893]],[[7893,7893],\"valid\"],[[7894,7894],\"mapped\",[7895]],[[7895,7895],\"valid\"],[[7896,7896],\"mapped\",[7897]],[[7897,7897],\"valid\"],[[7898,7898],\"mapped\",[7899]],[[7899,7899],\"valid\"],[[7900,7900],\"mapped\",[7901]],[[7901,7901],\"valid\"],[[7902,7902],\"mapped\",[7903]],[[7903,7903],\"valid\"],[[7904,7904],\"mapped\",[7905]],[[7905,7905],\"valid\"],[[7906,7906],\"mapped\",[7907]],[[7907,7907],\"valid\"],[[7908,7908],\"mapped\",[7909]],[[7909,7909],\"valid\"],[[7910,7910],\"mapped\",[7911]],[[7911,7911],\"valid\"],[[7912,7912],\"mapped\",[7913]],[[7913,7913],\"valid\"],[[7914,7914],\"mapped\",[7915]],[[7915,7915],\"valid\"],[[7916,7916],\"mapped\",[7917]],[[7917,7917],\"valid\"],[[7918,7918],\"mapped\",[7919]],[[7919,7919],\"valid\"],[[7920,7920],\"mapped\",[7921]],[[7921,7921],\"valid\"],[[7922,7922],\"mapped\",[7923]],[[7923,7923],\"valid\"],[[7924,7924],\"mapped\",[7925]],[[7925,7925],\"valid\"],[[7926,7926],\"mapped\",[7927]],[[7927,7927],\"valid\"],[[7928,7928],\"mapped\",[7929]],[[7929,7929],\"valid\"],[[7930,7930],\"mapped\",[7931]],[[7931,7931],\"valid\"],[[7932,7932],\"mapped\",[7933]],[[7933,7933],\"valid\"],[[7934,7934],\"mapped\",[7935]],[[7935,7935],\"valid\"],[[7936,7943],\"valid\"],[[7944,7944],\"mapped\",[7936]],[[7945,7945],\"mapped\",[7937]],[[7946,7946],\"mapped\",[7938]],[[7947,7947],\"mapped\",[7939]],[[7948,7948],\"mapped\",[7940]],[[7949,7949],\"mapped\",[7941]],[[7950,7950],\"mapped\",[7942]],[[7951,7951],\"mapped\",[7943]],[[7952,7957],\"valid\"],[[7958,7959],\"disallowed\"],[[7960,7960],\"mapped\",[7952]],[[7961,7961],\"mapped\",[7953]],[[7962,7962],\"mapped\",[7954]],[[7963,7963],\"mapped\",[7955]],[[7964,7964],\"mapped\",[7956]],[[7965,7965],\"mapped\",[7957]],[[7966,7967],\"disallowed\"],[[7968,7975],\"valid\"],[[7976,7976],\"mapped\",[7968]],[[7977,7977],\"mapped\",[7969]],[[7978,7978],\"mapped\",[7970]],[[7979,7979],\"mapped\",[7971]],[[7980,7980],\"mapped\",[7972]],[[7981,7981],\"mapped\",[7973]],[[7982,7982],\"mapped\",[7974]],[[7983,7983],\"mapped\",[7975]],[[7984,7991],\"valid\"],[[7992,7992],\"mapped\",[7984]],[[7993,7993],\"mapped\",[7985]],[[7994,7994],\"mapped\",[7986]],[[7995,7995],\"mapped\",[7987]],[[7996,7996],\"mapped\",[7988]],[[7997,7997],\"mapped\",[7989]],[[7998,7998],\"mapped\",[7990]],[[7999,7999],\"mapped\",[7991]],[[8000,8005],\"valid\"],[[8006,8007],\"disallowed\"],[[8008,8008],\"mapped\",[8000]],[[8009,8009],\"mapped\",[8001]],[[8010,8010],\"mapped\",[8002]],[[8011,8011],\"mapped\",[8003]],[[8012,8012],\"mapped\",[8004]],[[8013,8013],\"mapped\",[8005]],[[8014,8015],\"disallowed\"],[[8016,8023],\"valid\"],[[8024,8024],\"disallowed\"],[[8025,8025],\"mapped\",[8017]],[[8026,8026],\"disallowed\"],[[8027,8027],\"mapped\",[8019]],[[8028,8028],\"disallowed\"],[[8029,8029],\"mapped\",[8021]],[[8030,8030],\"disallowed\"],[[8031,8031],\"mapped\",[8023]],[[8032,8039],\"valid\"],[[8040,8040],\"mapped\",[8032]],[[8041,8041],\"mapped\",[8033]],[[8042,8042],\"mapped\",[8034]],[[8043,8043],\"mapped\",[8035]],[[8044,8044],\"mapped\",[8036]],[[8045,8045],\"mapped\",[8037]],[[8046,8046],\"mapped\",[8038]],[[8047,8047],\"mapped\",[8039]],[[8048,8048],\"valid\"],[[8049,8049],\"mapped\",[940]],[[8050,8050],\"valid\"],[[8051,8051],\"mapped\",[941]],[[8052,8052],\"valid\"],[[8053,8053],\"mapped\",[942]],[[8054,8054],\"valid\"],[[8055,8055],\"mapped\",[943]],[[8056,8056],\"valid\"],[[8057,8057],\"mapped\",[972]],[[8058,8058],\"valid\"],[[8059,8059],\"mapped\",[973]],[[8060,8060],\"valid\"],[[8061,8061],\"mapped\",[974]],[[8062,8063],\"disallowed\"],[[8064,8064],\"mapped\",[7936,953]],[[8065,8065],\"mapped\",[7937,953]],[[8066,8066],\"mapped\",[7938,953]],[[8067,8067],\"mapped\",[7939,953]],[[8068,8068],\"mapped\",[7940,953]],[[8069,8069],\"mapped\",[7941,953]],[[8070,8070],\"mapped\",[7942,953]],[[8071,8071],\"mapped\",[7943,953]],[[8072,8072],\"mapped\",[7936,953]],[[8073,8073],\"mapped\",[7937,953]],[[8074,8074],\"mapped\",[7938,953]],[[8075,8075],\"mapped\",[7939,953]],[[8076,8076],\"mapped\",[7940,953]],[[8077,8077],\"mapped\",[7941,953]],[[8078,8078],\"mapped\",[7942,953]],[[8079,8079],\"mapped\",[7943,953]],[[8080,8080],\"mapped\",[7968,953]],[[8081,8081],\"mapped\",[7969,953]],[[8082,8082],\"mapped\",[7970,953]],[[8083,8083],\"mapped\",[7971,953]],[[8084,8084],\"mapped\",[7972,953]],[[8085,8085],\"mapped\",[7973,953]],[[8086,8086],\"mapped\",[7974,953]],[[8087,8087],\"mapped\",[7975,953]],[[8088,8088],\"mapped\",[7968,953]],[[8089,8089],\"mapped\",[7969,953]],[[8090,8090],\"mapped\",[7970,953]],[[8091,8091],\"mapped\",[7971,953]],[[8092,8092],\"mapped\",[7972,953]],[[8093,8093],\"mapped\",[7973,953]],[[8094,8094],\"mapped\",[7974,953]],[[8095,8095],\"mapped\",[7975,953]],[[8096,8096],\"mapped\",[8032,953]],[[8097,8097],\"mapped\",[8033,953]],[[8098,8098],\"mapped\",[8034,953]],[[8099,8099],\"mapped\",[8035,953]],[[8100,8100],\"mapped\",[8036,953]],[[8101,8101],\"mapped\",[8037,953]],[[8102,8102],\"mapped\",[8038,953]],[[8103,8103],\"mapped\",[8039,953]],[[8104,8104],\"mapped\",[8032,953]],[[8105,8105],\"mapped\",[8033,953]],[[8106,8106],\"mapped\",[8034,953]],[[8107,8107],\"mapped\",[8035,953]],[[8108,8108],\"mapped\",[8036,953]],[[8109,8109],\"mapped\",[8037,953]],[[8110,8110],\"mapped\",[8038,953]],[[8111,8111],\"mapped\",[8039,953]],[[8112,8113],\"valid\"],[[8114,8114],\"mapped\",[8048,953]],[[8115,8115],\"mapped\",[945,953]],[[8116,8116],\"mapped\",[940,953]],[[8117,8117],\"disallowed\"],[[8118,8118],\"valid\"],[[8119,8119],\"mapped\",[8118,953]],[[8120,8120],\"mapped\",[8112]],[[8121,8121],\"mapped\",[8113]],[[8122,8122],\"mapped\",[8048]],[[8123,8123],\"mapped\",[940]],[[8124,8124],\"mapped\",[945,953]],[[8125,8125],\"disallowed_STD3_mapped\",[32,787]],[[8126,8126],\"mapped\",[953]],[[8127,8127],\"disallowed_STD3_mapped\",[32,787]],[[8128,8128],\"disallowed_STD3_mapped\",[32,834]],[[8129,8129],\"disallowed_STD3_mapped\",[32,776,834]],[[8130,8130],\"mapped\",[8052,953]],[[8131,8131],\"mapped\",[951,953]],[[8132,8132],\"mapped\",[942,953]],[[8133,8133],\"disallowed\"],[[8134,8134],\"valid\"],[[8135,8135],\"mapped\",[8134,953]],[[8136,8136],\"mapped\",[8050]],[[8137,8137],\"mapped\",[941]],[[8138,8138],\"mapped\",[8052]],[[8139,8139],\"mapped\",[942]],[[8140,8140],\"mapped\",[951,953]],[[8141,8141],\"disallowed_STD3_mapped\",[32,787,768]],[[8142,8142],\"disallowed_STD3_mapped\",[32,787,769]],[[8143,8143],\"disallowed_STD3_mapped\",[32,787,834]],[[8144,8146],\"valid\"],[[8147,8147],\"mapped\",[912]],[[8148,8149],\"disallowed\"],[[8150,8151],\"valid\"],[[8152,8152],\"mapped\",[8144]],[[8153,8153],\"mapped\",[8145]],[[8154,8154],\"mapped\",[8054]],[[8155,8155],\"mapped\",[943]],[[8156,8156],\"disallowed\"],[[8157,8157],\"disallowed_STD3_mapped\",[32,788,768]],[[8158,8158],\"disallowed_STD3_mapped\",[32,788,769]],[[8159,8159],\"disallowed_STD3_mapped\",[32,788,834]],[[8160,8162],\"valid\"],[[8163,8163],\"mapped\",[944]],[[8164,8167],\"valid\"],[[8168,8168],\"mapped\",[8160]],[[8169,8169],\"mapped\",[8161]],[[8170,8170],\"mapped\",[8058]],[[8171,8171],\"mapped\",[973]],[[8172,8172],\"mapped\",[8165]],[[8173,8173],\"disallowed_STD3_mapped\",[32,776,768]],[[8174,8174],\"disallowed_STD3_mapped\",[32,776,769]],[[8175,8175],\"disallowed_STD3_mapped\",[96]],[[8176,8177],\"disallowed\"],[[8178,8178],\"mapped\",[8060,953]],[[8179,8179],\"mapped\",[969,953]],[[8180,8180],\"mapped\",[974,953]],[[8181,8181],\"disallowed\"],[[8182,8182],\"valid\"],[[8183,8183],\"mapped\",[8182,953]],[[8184,8184],\"mapped\",[8056]],[[8185,8185],\"mapped\",[972]],[[8186,8186],\"mapped\",[8060]],[[8187,8187],\"mapped\",[974]],[[8188,8188],\"mapped\",[969,953]],[[8189,8189],\"disallowed_STD3_mapped\",[32,769]],[[8190,8190],\"disallowed_STD3_mapped\",[32,788]],[[8191,8191],\"disallowed\"],[[8192,8202],\"disallowed_STD3_mapped\",[32]],[[8203,8203],\"ignored\"],[[8204,8205],\"deviation\",[]],[[8206,8207],\"disallowed\"],[[8208,8208],\"valid\",[],\"NV8\"],[[8209,8209],\"mapped\",[8208]],[[8210,8214],\"valid\",[],\"NV8\"],[[8215,8215],\"disallowed_STD3_mapped\",[32,819]],[[8216,8227],\"valid\",[],\"NV8\"],[[8228,8230],\"disallowed\"],[[8231,8231],\"valid\",[],\"NV8\"],[[8232,8238],\"disallowed\"],[[8239,8239],\"disallowed_STD3_mapped\",[32]],[[8240,8242],\"valid\",[],\"NV8\"],[[8243,8243],\"mapped\",[8242,8242]],[[8244,8244],\"mapped\",[8242,8242,8242]],[[8245,8245],\"valid\",[],\"NV8\"],[[8246,8246],\"mapped\",[8245,8245]],[[8247,8247],\"mapped\",[8245,8245,8245]],[[8248,8251],\"valid\",[],\"NV8\"],[[8252,8252],\"disallowed_STD3_mapped\",[33,33]],[[8253,8253],\"valid\",[],\"NV8\"],[[8254,8254],\"disallowed_STD3_mapped\",[32,773]],[[8255,8262],\"valid\",[],\"NV8\"],[[8263,8263],\"disallowed_STD3_mapped\",[63,63]],[[8264,8264],\"disallowed_STD3_mapped\",[63,33]],[[8265,8265],\"disallowed_STD3_mapped\",[33,63]],[[8266,8269],\"valid\",[],\"NV8\"],[[8270,8274],\"valid\",[],\"NV8\"],[[8275,8276],\"valid\",[],\"NV8\"],[[8277,8278],\"valid\",[],\"NV8\"],[[8279,8279],\"mapped\",[8242,8242,8242,8242]],[[8280,8286],\"valid\",[],\"NV8\"],[[8287,8287],\"disallowed_STD3_mapped\",[32]],[[8288,8288],\"ignored\"],[[8289,8291],\"disallowed\"],[[8292,8292],\"ignored\"],[[8293,8293],\"disallowed\"],[[8294,8297],\"disallowed\"],[[8298,8303],\"disallowed\"],[[8304,8304],\"mapped\",[48]],[[8305,8305],\"mapped\",[105]],[[8306,8307],\"disallowed\"],[[8308,8308],\"mapped\",[52]],[[8309,8309],\"mapped\",[53]],[[8310,8310],\"mapped\",[54]],[[8311,8311],\"mapped\",[55]],[[8312,8312],\"mapped\",[56]],[[8313,8313],\"mapped\",[57]],[[8314,8314],\"disallowed_STD3_mapped\",[43]],[[8315,8315],\"mapped\",[8722]],[[8316,8316],\"disallowed_STD3_mapped\",[61]],[[8317,8317],\"disallowed_STD3_mapped\",[40]],[[8318,8318],\"disallowed_STD3_mapped\",[41]],[[8319,8319],\"mapped\",[110]],[[8320,8320],\"mapped\",[48]],[[8321,8321],\"mapped\",[49]],[[8322,8322],\"mapped\",[50]],[[8323,8323],\"mapped\",[51]],[[8324,8324],\"mapped\",[52]],[[8325,8325],\"mapped\",[53]],[[8326,8326],\"mapped\",[54]],[[8327,8327],\"mapped\",[55]],[[8328,8328],\"mapped\",[56]],[[8329,8329],\"mapped\",[57]],[[8330,8330],\"disallowed_STD3_mapped\",[43]],[[8331,8331],\"mapped\",[8722]],[[8332,8332],\"disallowed_STD3_mapped\",[61]],[[8333,8333],\"disallowed_STD3_mapped\",[40]],[[8334,8334],\"disallowed_STD3_mapped\",[41]],[[8335,8335],\"disallowed\"],[[8336,8336],\"mapped\",[97]],[[8337,8337],\"mapped\",[101]],[[8338,8338],\"mapped\",[111]],[[8339,8339],\"mapped\",[120]],[[8340,8340],\"mapped\",[601]],[[8341,8341],\"mapped\",[104]],[[8342,8342],\"mapped\",[107]],[[8343,8343],\"mapped\",[108]],[[8344,8344],\"mapped\",[109]],[[8345,8345],\"mapped\",[110]],[[8346,8346],\"mapped\",[112]],[[8347,8347],\"mapped\",[115]],[[8348,8348],\"mapped\",[116]],[[8349,8351],\"disallowed\"],[[8352,8359],\"valid\",[],\"NV8\"],[[8360,8360],\"mapped\",[114,115]],[[8361,8362],\"valid\",[],\"NV8\"],[[8363,8363],\"valid\",[],\"NV8\"],[[8364,8364],\"valid\",[],\"NV8\"],[[8365,8367],\"valid\",[],\"NV8\"],[[8368,8369],\"valid\",[],\"NV8\"],[[8370,8373],\"valid\",[],\"NV8\"],[[8374,8376],\"valid\",[],\"NV8\"],[[8377,8377],\"valid\",[],\"NV8\"],[[8378,8378],\"valid\",[],\"NV8\"],[[8379,8381],\"valid\",[],\"NV8\"],[[8382,8382],\"valid\",[],\"NV8\"],[[8383,8399],\"disallowed\"],[[8400,8417],\"valid\",[],\"NV8\"],[[8418,8419],\"valid\",[],\"NV8\"],[[8420,8426],\"valid\",[],\"NV8\"],[[8427,8427],\"valid\",[],\"NV8\"],[[8428,8431],\"valid\",[],\"NV8\"],[[8432,8432],\"valid\",[],\"NV8\"],[[8433,8447],\"disallowed\"],[[8448,8448],\"disallowed_STD3_mapped\",[97,47,99]],[[8449,8449],\"disallowed_STD3_mapped\",[97,47,115]],[[8450,8450],\"mapped\",[99]],[[8451,8451],\"mapped\",[176,99]],[[8452,8452],\"valid\",[],\"NV8\"],[[8453,8453],\"disallowed_STD3_mapped\",[99,47,111]],[[8454,8454],\"disallowed_STD3_mapped\",[99,47,117]],[[8455,8455],\"mapped\",[603]],[[8456,8456],\"valid\",[],\"NV8\"],[[8457,8457],\"mapped\",[176,102]],[[8458,8458],\"mapped\",[103]],[[8459,8462],\"mapped\",[104]],[[8463,8463],\"mapped\",[295]],[[8464,8465],\"mapped\",[105]],[[8466,8467],\"mapped\",[108]],[[8468,8468],\"valid\",[],\"NV8\"],[[8469,8469],\"mapped\",[110]],[[8470,8470],\"mapped\",[110,111]],[[8471,8472],\"valid\",[],\"NV8\"],[[8473,8473],\"mapped\",[112]],[[8474,8474],\"mapped\",[113]],[[8475,8477],\"mapped\",[114]],[[8478,8479],\"valid\",[],\"NV8\"],[[8480,8480],\"mapped\",[115,109]],[[8481,8481],\"mapped\",[116,101,108]],[[8482,8482],\"mapped\",[116,109]],[[8483,8483],\"valid\",[],\"NV8\"],[[8484,8484],\"mapped\",[122]],[[8485,8485],\"valid\",[],\"NV8\"],[[8486,8486],\"mapped\",[969]],[[8487,8487],\"valid\",[],\"NV8\"],[[8488,8488],\"mapped\",[122]],[[8489,8489],\"valid\",[],\"NV8\"],[[8490,8490],\"mapped\",[107]],[[8491,8491],\"mapped\",[229]],[[8492,8492],\"mapped\",[98]],[[8493,8493],\"mapped\",[99]],[[8494,8494],\"valid\",[],\"NV8\"],[[8495,8496],\"mapped\",[101]],[[8497,8497],\"mapped\",[102]],[[8498,8498],\"disallowed\"],[[8499,8499],\"mapped\",[109]],[[8500,8500],\"mapped\",[111]],[[8501,8501],\"mapped\",[1488]],[[8502,8502],\"mapped\",[1489]],[[8503,8503],\"mapped\",[1490]],[[8504,8504],\"mapped\",[1491]],[[8505,8505],\"mapped\",[105]],[[8506,8506],\"valid\",[],\"NV8\"],[[8507,8507],\"mapped\",[102,97,120]],[[8508,8508],\"mapped\",[960]],[[8509,8510],\"mapped\",[947]],[[8511,8511],\"mapped\",[960]],[[8512,8512],\"mapped\",[8721]],[[8513,8516],\"valid\",[],\"NV8\"],[[8517,8518],\"mapped\",[100]],[[8519,8519],\"mapped\",[101]],[[8520,8520],\"mapped\",[105]],[[8521,8521],\"mapped\",[106]],[[8522,8523],\"valid\",[],\"NV8\"],[[8524,8524],\"valid\",[],\"NV8\"],[[8525,8525],\"valid\",[],\"NV8\"],[[8526,8526],\"valid\"],[[8527,8527],\"valid\",[],\"NV8\"],[[8528,8528],\"mapped\",[49,8260,55]],[[8529,8529],\"mapped\",[49,8260,57]],[[8530,8530],\"mapped\",[49,8260,49,48]],[[8531,8531],\"mapped\",[49,8260,51]],[[8532,8532],\"mapped\",[50,8260,51]],[[8533,8533],\"mapped\",[49,8260,53]],[[8534,8534],\"mapped\",[50,8260,53]],[[8535,8535],\"mapped\",[51,8260,53]],[[8536,8536],\"mapped\",[52,8260,53]],[[8537,8537],\"mapped\",[49,8260,54]],[[8538,8538],\"mapped\",[53,8260,54]],[[8539,8539],\"mapped\",[49,8260,56]],[[8540,8540],\"mapped\",[51,8260,56]],[[8541,8541],\"mapped\",[53,8260,56]],[[8542,8542],\"mapped\",[55,8260,56]],[[8543,8543],\"mapped\",[49,8260]],[[8544,8544],\"mapped\",[105]],[[8545,8545],\"mapped\",[105,105]],[[8546,8546],\"mapped\",[105,105,105]],[[8547,8547],\"mapped\",[105,118]],[[8548,8548],\"mapped\",[118]],[[8549,8549],\"mapped\",[118,105]],[[8550,8550],\"mapped\",[118,105,105]],[[8551,8551],\"mapped\",[118,105,105,105]],[[8552,8552],\"mapped\",[105,120]],[[8553,8553],\"mapped\",[120]],[[8554,8554],\"mapped\",[120,105]],[[8555,8555],\"mapped\",[120,105,105]],[[8556,8556],\"mapped\",[108]],[[8557,8557],\"mapped\",[99]],[[8558,8558],\"mapped\",[100]],[[8559,8559],\"mapped\",[109]],[[8560,8560],\"mapped\",[105]],[[8561,8561],\"mapped\",[105,105]],[[8562,8562],\"mapped\",[105,105,105]],[[8563,8563],\"mapped\",[105,118]],[[8564,8564],\"mapped\",[118]],[[8565,8565],\"mapped\",[118,105]],[[8566,8566],\"mapped\",[118,105,105]],[[8567,8567],\"mapped\",[118,105,105,105]],[[8568,8568],\"mapped\",[105,120]],[[8569,8569],\"mapped\",[120]],[[8570,8570],\"mapped\",[120,105]],[[8571,8571],\"mapped\",[120,105,105]],[[8572,8572],\"mapped\",[108]],[[8573,8573],\"mapped\",[99]],[[8574,8574],\"mapped\",[100]],[[8575,8575],\"mapped\",[109]],[[8576,8578],\"valid\",[],\"NV8\"],[[8579,8579],\"disallowed\"],[[8580,8580],\"valid\"],[[8581,8584],\"valid\",[],\"NV8\"],[[8585,8585],\"mapped\",[48,8260,51]],[[8586,8587],\"valid\",[],\"NV8\"],[[8588,8591],\"disallowed\"],[[8592,8682],\"valid\",[],\"NV8\"],[[8683,8691],\"valid\",[],\"NV8\"],[[8692,8703],\"valid\",[],\"NV8\"],[[8704,8747],\"valid\",[],\"NV8\"],[[8748,8748],\"mapped\",[8747,8747]],[[8749,8749],\"mapped\",[8747,8747,8747]],[[8750,8750],\"valid\",[],\"NV8\"],[[8751,8751],\"mapped\",[8750,8750]],[[8752,8752],\"mapped\",[8750,8750,8750]],[[8753,8799],\"valid\",[],\"NV8\"],[[8800,8800],\"disallowed_STD3_valid\"],[[8801,8813],\"valid\",[],\"NV8\"],[[8814,8815],\"disallowed_STD3_valid\"],[[8816,8945],\"valid\",[],\"NV8\"],[[8946,8959],\"valid\",[],\"NV8\"],[[8960,8960],\"valid\",[],\"NV8\"],[[8961,8961],\"valid\",[],\"NV8\"],[[8962,9000],\"valid\",[],\"NV8\"],[[9001,9001],\"mapped\",[12296]],[[9002,9002],\"mapped\",[12297]],[[9003,9082],\"valid\",[],\"NV8\"],[[9083,9083],\"valid\",[],\"NV8\"],[[9084,9084],\"valid\",[],\"NV8\"],[[9085,9114],\"valid\",[],\"NV8\"],[[9115,9166],\"valid\",[],\"NV8\"],[[9167,9168],\"valid\",[],\"NV8\"],[[9169,9179],\"valid\",[],\"NV8\"],[[9180,9191],\"valid\",[],\"NV8\"],[[9192,9192],\"valid\",[],\"NV8\"],[[9193,9203],\"valid\",[],\"NV8\"],[[9204,9210],\"valid\",[],\"NV8\"],[[9211,9215],\"disallowed\"],[[9216,9252],\"valid\",[],\"NV8\"],[[9253,9254],\"valid\",[],\"NV8\"],[[9255,9279],\"disallowed\"],[[9280,9290],\"valid\",[],\"NV8\"],[[9291,9311],\"disallowed\"],[[9312,9312],\"mapped\",[49]],[[9313,9313],\"mapped\",[50]],[[9314,9314],\"mapped\",[51]],[[9315,9315],\"mapped\",[52]],[[9316,9316],\"mapped\",[53]],[[9317,9317],\"mapped\",[54]],[[9318,9318],\"mapped\",[55]],[[9319,9319],\"mapped\",[56]],[[9320,9320],\"mapped\",[57]],[[9321,9321],\"mapped\",[49,48]],[[9322,9322],\"mapped\",[49,49]],[[9323,9323],\"mapped\",[49,50]],[[9324,9324],\"mapped\",[49,51]],[[9325,9325],\"mapped\",[49,52]],[[9326,9326],\"mapped\",[49,53]],[[9327,9327],\"mapped\",[49,54]],[[9328,9328],\"mapped\",[49,55]],[[9329,9329],\"mapped\",[49,56]],[[9330,9330],\"mapped\",[49,57]],[[9331,9331],\"mapped\",[50,48]],[[9332,9332],\"disallowed_STD3_mapped\",[40,49,41]],[[9333,9333],\"disallowed_STD3_mapped\",[40,50,41]],[[9334,9334],\"disallowed_STD3_mapped\",[40,51,41]],[[9335,9335],\"disallowed_STD3_mapped\",[40,52,41]],[[9336,9336],\"disallowed_STD3_mapped\",[40,53,41]],[[9337,9337],\"disallowed_STD3_mapped\",[40,54,41]],[[9338,9338],\"disallowed_STD3_mapped\",[40,55,41]],[[9339,9339],\"disallowed_STD3_mapped\",[40,56,41]],[[9340,9340],\"disallowed_STD3_mapped\",[40,57,41]],[[9341,9341],\"disallowed_STD3_mapped\",[40,49,48,41]],[[9342,9342],\"disallowed_STD3_mapped\",[40,49,49,41]],[[9343,9343],\"disallowed_STD3_mapped\",[40,49,50,41]],[[9344,9344],\"disallowed_STD3_mapped\",[40,49,51,41]],[[9345,9345],\"disallowed_STD3_mapped\",[40,49,52,41]],[[9346,9346],\"disallowed_STD3_mapped\",[40,49,53,41]],[[9347,9347],\"disallowed_STD3_mapped\",[40,49,54,41]],[[9348,9348],\"disallowed_STD3_mapped\",[40,49,55,41]],[[9349,9349],\"disallowed_STD3_mapped\",[40,49,56,41]],[[9350,9350],\"disallowed_STD3_mapped\",[40,49,57,41]],[[9351,9351],\"disallowed_STD3_mapped\",[40,50,48,41]],[[9352,9371],\"disallowed\"],[[9372,9372],\"disallowed_STD3_mapped\",[40,97,41]],[[9373,9373],\"disallowed_STD3_mapped\",[40,98,41]],[[9374,9374],\"disallowed_STD3_mapped\",[40,99,41]],[[9375,9375],\"disallowed_STD3_mapped\",[40,100,41]],[[9376,9376],\"disallowed_STD3_mapped\",[40,101,41]],[[9377,9377],\"disallowed_STD3_mapped\",[40,102,41]],[[9378,9378],\"disallowed_STD3_mapped\",[40,103,41]],[[9379,9379],\"disallowed_STD3_mapped\",[40,104,41]],[[9380,9380],\"disallowed_STD3_mapped\",[40,105,41]],[[9381,9381],\"disallowed_STD3_mapped\",[40,106,41]],[[9382,9382],\"disallowed_STD3_mapped\",[40,107,41]],[[9383,9383],\"disallowed_STD3_mapped\",[40,108,41]],[[9384,9384],\"disallowed_STD3_mapped\",[40,109,41]],[[9385,9385],\"disallowed_STD3_mapped\",[40,110,41]],[[9386,9386],\"disallowed_STD3_mapped\",[40,111,41]],[[9387,9387],\"disallowed_STD3_mapped\",[40,112,41]],[[9388,9388],\"disallowed_STD3_mapped\",[40,113,41]],[[9389,9389],\"disallowed_STD3_mapped\",[40,114,41]],[[9390,9390],\"disallowed_STD3_mapped\",[40,115,41]],[[9391,9391],\"disallowed_STD3_mapped\",[40,116,41]],[[9392,9392],\"disallowed_STD3_mapped\",[40,117,41]],[[9393,9393],\"disallowed_STD3_mapped\",[40,118,41]],[[9394,9394],\"disallowed_STD3_mapped\",[40,119,41]],[[9395,9395],\"disallowed_STD3_mapped\",[40,120,41]],[[9396,9396],\"disallowed_STD3_mapped\",[40,121,41]],[[9397,9397],\"disallowed_STD3_mapped\",[40,122,41]],[[9398,9398],\"mapped\",[97]],[[9399,9399],\"mapped\",[98]],[[9400,9400],\"mapped\",[99]],[[9401,9401],\"mapped\",[100]],[[9402,9402],\"mapped\",[101]],[[9403,9403],\"mapped\",[102]],[[9404,9404],\"mapped\",[103]],[[9405,9405],\"mapped\",[104]],[[9406,9406],\"mapped\",[105]],[[9407,9407],\"mapped\",[106]],[[9408,9408],\"mapped\",[107]],[[9409,9409],\"mapped\",[108]],[[9410,9410],\"mapped\",[109]],[[9411,9411],\"mapped\",[110]],[[9412,9412],\"mapped\",[111]],[[9413,9413],\"mapped\",[112]],[[9414,9414],\"mapped\",[113]],[[9415,9415],\"mapped\",[114]],[[9416,9416],\"mapped\",[115]],[[9417,9417],\"mapped\",[116]],[[9418,9418],\"mapped\",[117]],[[9419,9419],\"mapped\",[118]],[[9420,9420],\"mapped\",[119]],[[9421,9421],\"mapped\",[120]],[[9422,9422],\"mapped\",[121]],[[9423,9423],\"mapped\",[122]],[[9424,9424],\"mapped\",[97]],[[9425,9425],\"mapped\",[98]],[[9426,9426],\"mapped\",[99]],[[9427,9427],\"mapped\",[100]],[[9428,9428],\"mapped\",[101]],[[9429,9429],\"mapped\",[102]],[[9430,9430],\"mapped\",[103]],[[9431,9431],\"mapped\",[104]],[[9432,9432],\"mapped\",[105]],[[9433,9433],\"mapped\",[106]],[[9434,9434],\"mapped\",[107]],[[9435,9435],\"mapped\",[108]],[[9436,9436],\"mapped\",[109]],[[9437,9437],\"mapped\",[110]],[[9438,9438],\"mapped\",[111]],[[9439,9439],\"mapped\",[112]],[[9440,9440],\"mapped\",[113]],[[9441,9441],\"mapped\",[114]],[[9442,9442],\"mapped\",[115]],[[9443,9443],\"mapped\",[116]],[[9444,9444],\"mapped\",[117]],[[9445,9445],\"mapped\",[118]],[[9446,9446],\"mapped\",[119]],[[9447,9447],\"mapped\",[120]],[[9448,9448],\"mapped\",[121]],[[9449,9449],\"mapped\",[122]],[[9450,9450],\"mapped\",[48]],[[9451,9470],\"valid\",[],\"NV8\"],[[9471,9471],\"valid\",[],\"NV8\"],[[9472,9621],\"valid\",[],\"NV8\"],[[9622,9631],\"valid\",[],\"NV8\"],[[9632,9711],\"valid\",[],\"NV8\"],[[9712,9719],\"valid\",[],\"NV8\"],[[9720,9727],\"valid\",[],\"NV8\"],[[9728,9747],\"valid\",[],\"NV8\"],[[9748,9749],\"valid\",[],\"NV8\"],[[9750,9751],\"valid\",[],\"NV8\"],[[9752,9752],\"valid\",[],\"NV8\"],[[9753,9753],\"valid\",[],\"NV8\"],[[9754,9839],\"valid\",[],\"NV8\"],[[9840,9841],\"valid\",[],\"NV8\"],[[9842,9853],\"valid\",[],\"NV8\"],[[9854,9855],\"valid\",[],\"NV8\"],[[9856,9865],\"valid\",[],\"NV8\"],[[9866,9873],\"valid\",[],\"NV8\"],[[9874,9884],\"valid\",[],\"NV8\"],[[9885,9885],\"valid\",[],\"NV8\"],[[9886,9887],\"valid\",[],\"NV8\"],[[9888,9889],\"valid\",[],\"NV8\"],[[9890,9905],\"valid\",[],\"NV8\"],[[9906,9906],\"valid\",[],\"NV8\"],[[9907,9916],\"valid\",[],\"NV8\"],[[9917,9919],\"valid\",[],\"NV8\"],[[9920,9923],\"valid\",[],\"NV8\"],[[9924,9933],\"valid\",[],\"NV8\"],[[9934,9934],\"valid\",[],\"NV8\"],[[9935,9953],\"valid\",[],\"NV8\"],[[9954,9954],\"valid\",[],\"NV8\"],[[9955,9955],\"valid\",[],\"NV8\"],[[9956,9959],\"valid\",[],\"NV8\"],[[9960,9983],\"valid\",[],\"NV8\"],[[9984,9984],\"valid\",[],\"NV8\"],[[9985,9988],\"valid\",[],\"NV8\"],[[9989,9989],\"valid\",[],\"NV8\"],[[9990,9993],\"valid\",[],\"NV8\"],[[9994,9995],\"valid\",[],\"NV8\"],[[9996,10023],\"valid\",[],\"NV8\"],[[10024,10024],\"valid\",[],\"NV8\"],[[10025,10059],\"valid\",[],\"NV8\"],[[10060,10060],\"valid\",[],\"NV8\"],[[10061,10061],\"valid\",[],\"NV8\"],[[10062,10062],\"valid\",[],\"NV8\"],[[10063,10066],\"valid\",[],\"NV8\"],[[10067,10069],\"valid\",[],\"NV8\"],[[10070,10070],\"valid\",[],\"NV8\"],[[10071,10071],\"valid\",[],\"NV8\"],[[10072,10078],\"valid\",[],\"NV8\"],[[10079,10080],\"valid\",[],\"NV8\"],[[10081,10087],\"valid\",[],\"NV8\"],[[10088,10101],\"valid\",[],\"NV8\"],[[10102,10132],\"valid\",[],\"NV8\"],[[10133,10135],\"valid\",[],\"NV8\"],[[10136,10159],\"valid\",[],\"NV8\"],[[10160,10160],\"valid\",[],\"NV8\"],[[10161,10174],\"valid\",[],\"NV8\"],[[10175,10175],\"valid\",[],\"NV8\"],[[10176,10182],\"valid\",[],\"NV8\"],[[10183,10186],\"valid\",[],\"NV8\"],[[10187,10187],\"valid\",[],\"NV8\"],[[10188,10188],\"valid\",[],\"NV8\"],[[10189,10189],\"valid\",[],\"NV8\"],[[10190,10191],\"valid\",[],\"NV8\"],[[10192,10219],\"valid\",[],\"NV8\"],[[10220,10223],\"valid\",[],\"NV8\"],[[10224,10239],\"valid\",[],\"NV8\"],[[10240,10495],\"valid\",[],\"NV8\"],[[10496,10763],\"valid\",[],\"NV8\"],[[10764,10764],\"mapped\",[8747,8747,8747,8747]],[[10765,10867],\"valid\",[],\"NV8\"],[[10868,10868],\"disallowed_STD3_mapped\",[58,58,61]],[[10869,10869],\"disallowed_STD3_mapped\",[61,61]],[[10870,10870],\"disallowed_STD3_mapped\",[61,61,61]],[[10871,10971],\"valid\",[],\"NV8\"],[[10972,10972],\"mapped\",[10973,824]],[[10973,11007],\"valid\",[],\"NV8\"],[[11008,11021],\"valid\",[],\"NV8\"],[[11022,11027],\"valid\",[],\"NV8\"],[[11028,11034],\"valid\",[],\"NV8\"],[[11035,11039],\"valid\",[],\"NV8\"],[[11040,11043],\"valid\",[],\"NV8\"],[[11044,11084],\"valid\",[],\"NV8\"],[[11085,11087],\"valid\",[],\"NV8\"],[[11088,11092],\"valid\",[],\"NV8\"],[[11093,11097],\"valid\",[],\"NV8\"],[[11098,11123],\"valid\",[],\"NV8\"],[[11124,11125],\"disallowed\"],[[11126,11157],\"valid\",[],\"NV8\"],[[11158,11159],\"disallowed\"],[[11160,11193],\"valid\",[],\"NV8\"],[[11194,11196],\"disallowed\"],[[11197,11208],\"valid\",[],\"NV8\"],[[11209,11209],\"disallowed\"],[[11210,11217],\"valid\",[],\"NV8\"],[[11218,11243],\"disallowed\"],[[11244,11247],\"valid\",[],\"NV8\"],[[11248,11263],\"disallowed\"],[[11264,11264],\"mapped\",[11312]],[[11265,11265],\"mapped\",[11313]],[[11266,11266],\"mapped\",[11314]],[[11267,11267],\"mapped\",[11315]],[[11268,11268],\"mapped\",[11316]],[[11269,11269],\"mapped\",[11317]],[[11270,11270],\"mapped\",[11318]],[[11271,11271],\"mapped\",[11319]],[[11272,11272],\"mapped\",[11320]],[[11273,11273],\"mapped\",[11321]],[[11274,11274],\"mapped\",[11322]],[[11275,11275],\"mapped\",[11323]],[[11276,11276],\"mapped\",[11324]],[[11277,11277],\"mapped\",[11325]],[[11278,11278],\"mapped\",[11326]],[[11279,11279],\"mapped\",[11327]],[[11280,11280],\"mapped\",[11328]],[[11281,11281],\"mapped\",[11329]],[[11282,11282],\"mapped\",[11330]],[[11283,11283],\"mapped\",[11331]],[[11284,11284],\"mapped\",[11332]],[[11285,11285],\"mapped\",[11333]],[[11286,11286],\"mapped\",[11334]],[[11287,11287],\"mapped\",[11335]],[[11288,11288],\"mapped\",[11336]],[[11289,11289],\"mapped\",[11337]],[[11290,11290],\"mapped\",[11338]],[[11291,11291],\"mapped\",[11339]],[[11292,11292],\"mapped\",[11340]],[[11293,11293],\"mapped\",[11341]],[[11294,11294],\"mapped\",[11342]],[[11295,11295],\"mapped\",[11343]],[[11296,11296],\"mapped\",[11344]],[[11297,11297],\"mapped\",[11345]],[[11298,11298],\"mapped\",[11346]],[[11299,11299],\"mapped\",[11347]],[[11300,11300],\"mapped\",[11348]],[[11301,11301],\"mapped\",[11349]],[[11302,11302],\"mapped\",[11350]],[[11303,11303],\"mapped\",[11351]],[[11304,11304],\"mapped\",[11352]],[[11305,11305],\"mapped\",[11353]],[[11306,11306],\"mapped\",[11354]],[[11307,11307],\"mapped\",[11355]],[[11308,11308],\"mapped\",[11356]],[[11309,11309],\"mapped\",[11357]],[[11310,11310],\"mapped\",[11358]],[[11311,11311],\"disallowed\"],[[11312,11358],\"valid\"],[[11359,11359],\"disallowed\"],[[11360,11360],\"mapped\",[11361]],[[11361,11361],\"valid\"],[[11362,11362],\"mapped\",[619]],[[11363,11363],\"mapped\",[7549]],[[11364,11364],\"mapped\",[637]],[[11365,11366],\"valid\"],[[11367,11367],\"mapped\",[11368]],[[11368,11368],\"valid\"],[[11369,11369],\"mapped\",[11370]],[[11370,11370],\"valid\"],[[11371,11371],\"mapped\",[11372]],[[11372,11372],\"valid\"],[[11373,11373],\"mapped\",[593]],[[11374,11374],\"mapped\",[625]],[[11375,11375],\"mapped\",[592]],[[11376,11376],\"mapped\",[594]],[[11377,11377],\"valid\"],[[11378,11378],\"mapped\",[11379]],[[11379,11379],\"valid\"],[[11380,11380],\"valid\"],[[11381,11381],\"mapped\",[11382]],[[11382,11383],\"valid\"],[[11384,11387],\"valid\"],[[11388,11388],\"mapped\",[106]],[[11389,11389],\"mapped\",[118]],[[11390,11390],\"mapped\",[575]],[[11391,11391],\"mapped\",[576]],[[11392,11392],\"mapped\",[11393]],[[11393,11393],\"valid\"],[[11394,11394],\"mapped\",[11395]],[[11395,11395],\"valid\"],[[11396,11396],\"mapped\",[11397]],[[11397,11397],\"valid\"],[[11398,11398],\"mapped\",[11399]],[[11399,11399],\"valid\"],[[11400,11400],\"mapped\",[11401]],[[11401,11401],\"valid\"],[[11402,11402],\"mapped\",[11403]],[[11403,11403],\"valid\"],[[11404,11404],\"mapped\",[11405]],[[11405,11405],\"valid\"],[[11406,11406],\"mapped\",[11407]],[[11407,11407],\"valid\"],[[11408,11408],\"mapped\",[11409]],[[11409,11409],\"valid\"],[[11410,11410],\"mapped\",[11411]],[[11411,11411],\"valid\"],[[11412,11412],\"mapped\",[11413]],[[11413,11413],\"valid\"],[[11414,11414],\"mapped\",[11415]],[[11415,11415],\"valid\"],[[11416,11416],\"mapped\",[11417]],[[11417,11417],\"valid\"],[[11418,11418],\"mapped\",[11419]],[[11419,11419],\"valid\"],[[11420,11420],\"mapped\",[11421]],[[11421,11421],\"valid\"],[[11422,11422],\"mapped\",[11423]],[[11423,11423],\"valid\"],[[11424,11424],\"mapped\",[11425]],[[11425,11425],\"valid\"],[[11426,11426],\"mapped\",[11427]],[[11427,11427],\"valid\"],[[11428,11428],\"mapped\",[11429]],[[11429,11429],\"valid\"],[[11430,11430],\"mapped\",[11431]],[[11431,11431],\"valid\"],[[11432,11432],\"mapped\",[11433]],[[11433,11433],\"valid\"],[[11434,11434],\"mapped\",[11435]],[[11435,11435],\"valid\"],[[11436,11436],\"mapped\",[11437]],[[11437,11437],\"valid\"],[[11438,11438],\"mapped\",[11439]],[[11439,11439],\"valid\"],[[11440,11440],\"mapped\",[11441]],[[11441,11441],\"valid\"],[[11442,11442],\"mapped\",[11443]],[[11443,11443],\"valid\"],[[11444,11444],\"mapped\",[11445]],[[11445,11445],\"valid\"],[[11446,11446],\"mapped\",[11447]],[[11447,11447],\"valid\"],[[11448,11448],\"mapped\",[11449]],[[11449,11449],\"valid\"],[[11450,11450],\"mapped\",[11451]],[[11451,11451],\"valid\"],[[11452,11452],\"mapped\",[11453]],[[11453,11453],\"valid\"],[[11454,11454],\"mapped\",[11455]],[[11455,11455],\"valid\"],[[11456,11456],\"mapped\",[11457]],[[11457,11457],\"valid\"],[[11458,11458],\"mapped\",[11459]],[[11459,11459],\"valid\"],[[11460,11460],\"mapped\",[11461]],[[11461,11461],\"valid\"],[[11462,11462],\"mapped\",[11463]],[[11463,11463],\"valid\"],[[11464,11464],\"mapped\",[11465]],[[11465,11465],\"valid\"],[[11466,11466],\"mapped\",[11467]],[[11467,11467],\"valid\"],[[11468,11468],\"mapped\",[11469]],[[11469,11469],\"valid\"],[[11470,11470],\"mapped\",[11471]],[[11471,11471],\"valid\"],[[11472,11472],\"mapped\",[11473]],[[11473,11473],\"valid\"],[[11474,11474],\"mapped\",[11475]],[[11475,11475],\"valid\"],[[11476,11476],\"mapped\",[11477]],[[11477,11477],\"valid\"],[[11478,11478],\"mapped\",[11479]],[[11479,11479],\"valid\"],[[11480,11480],\"mapped\",[11481]],[[11481,11481],\"valid\"],[[11482,11482],\"mapped\",[11483]],[[11483,11483],\"valid\"],[[11484,11484],\"mapped\",[11485]],[[11485,11485],\"valid\"],[[11486,11486],\"mapped\",[11487]],[[11487,11487],\"valid\"],[[11488,11488],\"mapped\",[11489]],[[11489,11489],\"valid\"],[[11490,11490],\"mapped\",[11491]],[[11491,11492],\"valid\"],[[11493,11498],\"valid\",[],\"NV8\"],[[11499,11499],\"mapped\",[11500]],[[11500,11500],\"valid\"],[[11501,11501],\"mapped\",[11502]],[[11502,11505],\"valid\"],[[11506,11506],\"mapped\",[11507]],[[11507,11507],\"valid\"],[[11508,11512],\"disallowed\"],[[11513,11519],\"valid\",[],\"NV8\"],[[11520,11557],\"valid\"],[[11558,11558],\"disallowed\"],[[11559,11559],\"valid\"],[[11560,11564],\"disallowed\"],[[11565,11565],\"valid\"],[[11566,11567],\"disallowed\"],[[11568,11621],\"valid\"],[[11622,11623],\"valid\"],[[11624,11630],\"disallowed\"],[[11631,11631],\"mapped\",[11617]],[[11632,11632],\"valid\",[],\"NV8\"],[[11633,11646],\"disallowed\"],[[11647,11647],\"valid\"],[[11648,11670],\"valid\"],[[11671,11679],\"disallowed\"],[[11680,11686],\"valid\"],[[11687,11687],\"disallowed\"],[[11688,11694],\"valid\"],[[11695,11695],\"disallowed\"],[[11696,11702],\"valid\"],[[11703,11703],\"disallowed\"],[[11704,11710],\"valid\"],[[11711,11711],\"disallowed\"],[[11712,11718],\"valid\"],[[11719,11719],\"disallowed\"],[[11720,11726],\"valid\"],[[11727,11727],\"disallowed\"],[[11728,11734],\"valid\"],[[11735,11735],\"disallowed\"],[[11736,11742],\"valid\"],[[11743,11743],\"disallowed\"],[[11744,11775],\"valid\"],[[11776,11799],\"valid\",[],\"NV8\"],[[11800,11803],\"valid\",[],\"NV8\"],[[11804,11805],\"valid\",[],\"NV8\"],[[11806,11822],\"valid\",[],\"NV8\"],[[11823,11823],\"valid\"],[[11824,11824],\"valid\",[],\"NV8\"],[[11825,11825],\"valid\",[],\"NV8\"],[[11826,11835],\"valid\",[],\"NV8\"],[[11836,11842],\"valid\",[],\"NV8\"],[[11843,11903],\"disallowed\"],[[11904,11929],\"valid\",[],\"NV8\"],[[11930,11930],\"disallowed\"],[[11931,11934],\"valid\",[],\"NV8\"],[[11935,11935],\"mapped\",[27597]],[[11936,12018],\"valid\",[],\"NV8\"],[[12019,12019],\"mapped\",[40863]],[[12020,12031],\"disallowed\"],[[12032,12032],\"mapped\",[19968]],[[12033,12033],\"mapped\",[20008]],[[12034,12034],\"mapped\",[20022]],[[12035,12035],\"mapped\",[20031]],[[12036,12036],\"mapped\",[20057]],[[12037,12037],\"mapped\",[20101]],[[12038,12038],\"mapped\",[20108]],[[12039,12039],\"mapped\",[20128]],[[12040,12040],\"mapped\",[20154]],[[12041,12041],\"mapped\",[20799]],[[12042,12042],\"mapped\",[20837]],[[12043,12043],\"mapped\",[20843]],[[12044,12044],\"mapped\",[20866]],[[12045,12045],\"mapped\",[20886]],[[12046,12046],\"mapped\",[20907]],[[12047,12047],\"mapped\",[20960]],[[12048,12048],\"mapped\",[20981]],[[12049,12049],\"mapped\",[20992]],[[12050,12050],\"mapped\",[21147]],[[12051,12051],\"mapped\",[21241]],[[12052,12052],\"mapped\",[21269]],[[12053,12053],\"mapped\",[21274]],[[12054,12054],\"mapped\",[21304]],[[12055,12055],\"mapped\",[21313]],[[12056,12056],\"mapped\",[21340]],[[12057,12057],\"mapped\",[21353]],[[12058,12058],\"mapped\",[21378]],[[12059,12059],\"mapped\",[21430]],[[12060,12060],\"mapped\",[21448]],[[12061,12061],\"mapped\",[21475]],[[12062,12062],\"mapped\",[22231]],[[12063,12063],\"mapped\",[22303]],[[12064,12064],\"mapped\",[22763]],[[12065,12065],\"mapped\",[22786]],[[12066,12066],\"mapped\",[22794]],[[12067,12067],\"mapped\",[22805]],[[12068,12068],\"mapped\",[22823]],[[12069,12069],\"mapped\",[22899]],[[12070,12070],\"mapped\",[23376]],[[12071,12071],\"mapped\",[23424]],[[12072,12072],\"mapped\",[23544]],[[12073,12073],\"mapped\",[23567]],[[12074,12074],\"mapped\",[23586]],[[12075,12075],\"mapped\",[23608]],[[12076,12076],\"mapped\",[23662]],[[12077,12077],\"mapped\",[23665]],[[12078,12078],\"mapped\",[24027]],[[12079,12079],\"mapped\",[24037]],[[12080,12080],\"mapped\",[24049]],[[12081,12081],\"mapped\",[24062]],[[12082,12082],\"mapped\",[24178]],[[12083,12083],\"mapped\",[24186]],[[12084,12084],\"mapped\",[24191]],[[12085,12085],\"mapped\",[24308]],[[12086,12086],\"mapped\",[24318]],[[12087,12087],\"mapped\",[24331]],[[12088,12088],\"mapped\",[24339]],[[12089,12089],\"mapped\",[24400]],[[12090,12090],\"mapped\",[24417]],[[12091,12091],\"mapped\",[24435]],[[12092,12092],\"mapped\",[24515]],[[12093,12093],\"mapped\",[25096]],[[12094,12094],\"mapped\",[25142]],[[12095,12095],\"mapped\",[25163]],[[12096,12096],\"mapped\",[25903]],[[12097,12097],\"mapped\",[25908]],[[12098,12098],\"mapped\",[25991]],[[12099,12099],\"mapped\",[26007]],[[12100,12100],\"mapped\",[26020]],[[12101,12101],\"mapped\",[26041]],[[12102,12102],\"mapped\",[26080]],[[12103,12103],\"mapped\",[26085]],[[12104,12104],\"mapped\",[26352]],[[12105,12105],\"mapped\",[26376]],[[12106,12106],\"mapped\",[26408]],[[12107,12107],\"mapped\",[27424]],[[12108,12108],\"mapped\",[27490]],[[12109,12109],\"mapped\",[27513]],[[12110,12110],\"mapped\",[27571]],[[12111,12111],\"mapped\",[27595]],[[12112,12112],\"mapped\",[27604]],[[12113,12113],\"mapped\",[27611]],[[12114,12114],\"mapped\",[27663]],[[12115,12115],\"mapped\",[27668]],[[12116,12116],\"mapped\",[27700]],[[12117,12117],\"mapped\",[28779]],[[12118,12118],\"mapped\",[29226]],[[12119,12119],\"mapped\",[29238]],[[12120,12120],\"mapped\",[29243]],[[12121,12121],\"mapped\",[29247]],[[12122,12122],\"mapped\",[29255]],[[12123,12123],\"mapped\",[29273]],[[12124,12124],\"mapped\",[29275]],[[12125,12125],\"mapped\",[29356]],[[12126,12126],\"mapped\",[29572]],[[12127,12127],\"mapped\",[29577]],[[12128,12128],\"mapped\",[29916]],[[12129,12129],\"mapped\",[29926]],[[12130,12130],\"mapped\",[29976]],[[12131,12131],\"mapped\",[29983]],[[12132,12132],\"mapped\",[29992]],[[12133,12133],\"mapped\",[30000]],[[12134,12134],\"mapped\",[30091]],[[12135,12135],\"mapped\",[30098]],[[12136,12136],\"mapped\",[30326]],[[12137,12137],\"mapped\",[30333]],[[12138,12138],\"mapped\",[30382]],[[12139,12139],\"mapped\",[30399]],[[12140,12140],\"mapped\",[30446]],[[12141,12141],\"mapped\",[30683]],[[12142,12142],\"mapped\",[30690]],[[12143,12143],\"mapped\",[30707]],[[12144,12144],\"mapped\",[31034]],[[12145,12145],\"mapped\",[31160]],[[12146,12146],\"mapped\",[31166]],[[12147,12147],\"mapped\",[31348]],[[12148,12148],\"mapped\",[31435]],[[12149,12149],\"mapped\",[31481]],[[12150,12150],\"mapped\",[31859]],[[12151,12151],\"mapped\",[31992]],[[12152,12152],\"mapped\",[32566]],[[12153,12153],\"mapped\",[32593]],[[12154,12154],\"mapped\",[32650]],[[12155,12155],\"mapped\",[32701]],[[12156,12156],\"mapped\",[32769]],[[12157,12157],\"mapped\",[32780]],[[12158,12158],\"mapped\",[32786]],[[12159,12159],\"mapped\",[32819]],[[12160,12160],\"mapped\",[32895]],[[12161,12161],\"mapped\",[32905]],[[12162,12162],\"mapped\",[33251]],[[12163,12163],\"mapped\",[33258]],[[12164,12164],\"mapped\",[33267]],[[12165,12165],\"mapped\",[33276]],[[12166,12166],\"mapped\",[33292]],[[12167,12167],\"mapped\",[33307]],[[12168,12168],\"mapped\",[33311]],[[12169,12169],\"mapped\",[33390]],[[12170,12170],\"mapped\",[33394]],[[12171,12171],\"mapped\",[33400]],[[12172,12172],\"mapped\",[34381]],[[12173,12173],\"mapped\",[34411]],[[12174,12174],\"mapped\",[34880]],[[12175,12175],\"mapped\",[34892]],[[12176,12176],\"mapped\",[34915]],[[12177,12177],\"mapped\",[35198]],[[12178,12178],\"mapped\",[35211]],[[12179,12179],\"mapped\",[35282]],[[12180,12180],\"mapped\",[35328]],[[12181,12181],\"mapped\",[35895]],[[12182,12182],\"mapped\",[35910]],[[12183,12183],\"mapped\",[35925]],[[12184,12184],\"mapped\",[35960]],[[12185,12185],\"mapped\",[35997]],[[12186,12186],\"mapped\",[36196]],[[12187,12187],\"mapped\",[36208]],[[12188,12188],\"mapped\",[36275]],[[12189,12189],\"mapped\",[36523]],[[12190,12190],\"mapped\",[36554]],[[12191,12191],\"mapped\",[36763]],[[12192,12192],\"mapped\",[36784]],[[12193,12193],\"mapped\",[36789]],[[12194,12194],\"mapped\",[37009]],[[12195,12195],\"mapped\",[37193]],[[12196,12196],\"mapped\",[37318]],[[12197,12197],\"mapped\",[37324]],[[12198,12198],\"mapped\",[37329]],[[12199,12199],\"mapped\",[38263]],[[12200,12200],\"mapped\",[38272]],[[12201,12201],\"mapped\",[38428]],[[12202,12202],\"mapped\",[38582]],[[12203,12203],\"mapped\",[38585]],[[12204,12204],\"mapped\",[38632]],[[12205,12205],\"mapped\",[38737]],[[12206,12206],\"mapped\",[38750]],[[12207,12207],\"mapped\",[38754]],[[12208,12208],\"mapped\",[38761]],[[12209,12209],\"mapped\",[38859]],[[12210,12210],\"mapped\",[38893]],[[12211,12211],\"mapped\",[38899]],[[12212,12212],\"mapped\",[38913]],[[12213,12213],\"mapped\",[39080]],[[12214,12214],\"mapped\",[39131]],[[12215,12215],\"mapped\",[39135]],[[12216,12216],\"mapped\",[39318]],[[12217,12217],\"mapped\",[39321]],[[12218,12218],\"mapped\",[39340]],[[12219,12219],\"mapped\",[39592]],[[12220,12220],\"mapped\",[39640]],[[12221,12221],\"mapped\",[39647]],[[12222,12222],\"mapped\",[39717]],[[12223,12223],\"mapped\",[39727]],[[12224,12224],\"mapped\",[39730]],[[12225,12225],\"mapped\",[39740]],[[12226,12226],\"mapped\",[39770]],[[12227,12227],\"mapped\",[40165]],[[12228,12228],\"mapped\",[40565]],[[12229,12229],\"mapped\",[40575]],[[12230,12230],\"mapped\",[40613]],[[12231,12231],\"mapped\",[40635]],[[12232,12232],\"mapped\",[40643]],[[12233,12233],\"mapped\",[40653]],[[12234,12234],\"mapped\",[40657]],[[12235,12235],\"mapped\",[40697]],[[12236,12236],\"mapped\",[40701]],[[12237,12237],\"mapped\",[40718]],[[12238,12238],\"mapped\",[40723]],[[12239,12239],\"mapped\",[40736]],[[12240,12240],\"mapped\",[40763]],[[12241,12241],\"mapped\",[40778]],[[12242,12242],\"mapped\",[40786]],[[12243,12243],\"mapped\",[40845]],[[12244,12244],\"mapped\",[40860]],[[12245,12245],\"mapped\",[40864]],[[12246,12271],\"disallowed\"],[[12272,12283],\"disallowed\"],[[12284,12287],\"disallowed\"],[[12288,12288],\"disallowed_STD3_mapped\",[32]],[[12289,12289],\"valid\",[],\"NV8\"],[[12290,12290],\"mapped\",[46]],[[12291,12292],\"valid\",[],\"NV8\"],[[12293,12295],\"valid\"],[[12296,12329],\"valid\",[],\"NV8\"],[[12330,12333],\"valid\"],[[12334,12341],\"valid\",[],\"NV8\"],[[12342,12342],\"mapped\",[12306]],[[12343,12343],\"valid\",[],\"NV8\"],[[12344,12344],\"mapped\",[21313]],[[12345,12345],\"mapped\",[21316]],[[12346,12346],\"mapped\",[21317]],[[12347,12347],\"valid\",[],\"NV8\"],[[12348,12348],\"valid\"],[[12349,12349],\"valid\",[],\"NV8\"],[[12350,12350],\"valid\",[],\"NV8\"],[[12351,12351],\"valid\",[],\"NV8\"],[[12352,12352],\"disallowed\"],[[12353,12436],\"valid\"],[[12437,12438],\"valid\"],[[12439,12440],\"disallowed\"],[[12441,12442],\"valid\"],[[12443,12443],\"disallowed_STD3_mapped\",[32,12441]],[[12444,12444],\"disallowed_STD3_mapped\",[32,12442]],[[12445,12446],\"valid\"],[[12447,12447],\"mapped\",[12424,12426]],[[12448,12448],\"valid\",[],\"NV8\"],[[12449,12542],\"valid\"],[[12543,12543],\"mapped\",[12467,12488]],[[12544,12548],\"disallowed\"],[[12549,12588],\"valid\"],[[12589,12589],\"valid\"],[[12590,12592],\"disallowed\"],[[12593,12593],\"mapped\",[4352]],[[12594,12594],\"mapped\",[4353]],[[12595,12595],\"mapped\",[4522]],[[12596,12596],\"mapped\",[4354]],[[12597,12597],\"mapped\",[4524]],[[12598,12598],\"mapped\",[4525]],[[12599,12599],\"mapped\",[4355]],[[12600,12600],\"mapped\",[4356]],[[12601,12601],\"mapped\",[4357]],[[12602,12602],\"mapped\",[4528]],[[12603,12603],\"mapped\",[4529]],[[12604,12604],\"mapped\",[4530]],[[12605,12605],\"mapped\",[4531]],[[12606,12606],\"mapped\",[4532]],[[12607,12607],\"mapped\",[4533]],[[12608,12608],\"mapped\",[4378]],[[12609,12609],\"mapped\",[4358]],[[12610,12610],\"mapped\",[4359]],[[12611,12611],\"mapped\",[4360]],[[12612,12612],\"mapped\",[4385]],[[12613,12613],\"mapped\",[4361]],[[12614,12614],\"mapped\",[4362]],[[12615,12615],\"mapped\",[4363]],[[12616,12616],\"mapped\",[4364]],[[12617,12617],\"mapped\",[4365]],[[12618,12618],\"mapped\",[4366]],[[12619,12619],\"mapped\",[4367]],[[12620,12620],\"mapped\",[4368]],[[12621,12621],\"mapped\",[4369]],[[12622,12622],\"mapped\",[4370]],[[12623,12623],\"mapped\",[4449]],[[12624,12624],\"mapped\",[4450]],[[12625,12625],\"mapped\",[4451]],[[12626,12626],\"mapped\",[4452]],[[12627,12627],\"mapped\",[4453]],[[12628,12628],\"mapped\",[4454]],[[12629,12629],\"mapped\",[4455]],[[12630,12630],\"mapped\",[4456]],[[12631,12631],\"mapped\",[4457]],[[12632,12632],\"mapped\",[4458]],[[12633,12633],\"mapped\",[4459]],[[12634,12634],\"mapped\",[4460]],[[12635,12635],\"mapped\",[4461]],[[12636,12636],\"mapped\",[4462]],[[12637,12637],\"mapped\",[4463]],[[12638,12638],\"mapped\",[4464]],[[12639,12639],\"mapped\",[4465]],[[12640,12640],\"mapped\",[4466]],[[12641,12641],\"mapped\",[4467]],[[12642,12642],\"mapped\",[4468]],[[12643,12643],\"mapped\",[4469]],[[12644,12644],\"disallowed\"],[[12645,12645],\"mapped\",[4372]],[[12646,12646],\"mapped\",[4373]],[[12647,12647],\"mapped\",[4551]],[[12648,12648],\"mapped\",[4552]],[[12649,12649],\"mapped\",[4556]],[[12650,12650],\"mapped\",[4558]],[[12651,12651],\"mapped\",[4563]],[[12652,12652],\"mapped\",[4567]],[[12653,12653],\"mapped\",[4569]],[[12654,12654],\"mapped\",[4380]],[[12655,12655],\"mapped\",[4573]],[[12656,12656],\"mapped\",[4575]],[[12657,12657],\"mapped\",[4381]],[[12658,12658],\"mapped\",[4382]],[[12659,12659],\"mapped\",[4384]],[[12660,12660],\"mapped\",[4386]],[[12661,12661],\"mapped\",[4387]],[[12662,12662],\"mapped\",[4391]],[[12663,12663],\"mapped\",[4393]],[[12664,12664],\"mapped\",[4395]],[[12665,12665],\"mapped\",[4396]],[[12666,12666],\"mapped\",[4397]],[[12667,12667],\"mapped\",[4398]],[[12668,12668],\"mapped\",[4399]],[[12669,12669],\"mapped\",[4402]],[[12670,12670],\"mapped\",[4406]],[[12671,12671],\"mapped\",[4416]],[[12672,12672],\"mapped\",[4423]],[[12673,12673],\"mapped\",[4428]],[[12674,12674],\"mapped\",[4593]],[[12675,12675],\"mapped\",[4594]],[[12676,12676],\"mapped\",[4439]],[[12677,12677],\"mapped\",[4440]],[[12678,12678],\"mapped\",[4441]],[[12679,12679],\"mapped\",[4484]],[[12680,12680],\"mapped\",[4485]],[[12681,12681],\"mapped\",[4488]],[[12682,12682],\"mapped\",[4497]],[[12683,12683],\"mapped\",[4498]],[[12684,12684],\"mapped\",[4500]],[[12685,12685],\"mapped\",[4510]],[[12686,12686],\"mapped\",[4513]],[[12687,12687],\"disallowed\"],[[12688,12689],\"valid\",[],\"NV8\"],[[12690,12690],\"mapped\",[19968]],[[12691,12691],\"mapped\",[20108]],[[12692,12692],\"mapped\",[19977]],[[12693,12693],\"mapped\",[22235]],[[12694,12694],\"mapped\",[19978]],[[12695,12695],\"mapped\",[20013]],[[12696,12696],\"mapped\",[19979]],[[12697,12697],\"mapped\",[30002]],[[12698,12698],\"mapped\",[20057]],[[12699,12699],\"mapped\",[19993]],[[12700,12700],\"mapped\",[19969]],[[12701,12701],\"mapped\",[22825]],[[12702,12702],\"mapped\",[22320]],[[12703,12703],\"mapped\",[20154]],[[12704,12727],\"valid\"],[[12728,12730],\"valid\"],[[12731,12735],\"disallowed\"],[[12736,12751],\"valid\",[],\"NV8\"],[[12752,12771],\"valid\",[],\"NV8\"],[[12772,12783],\"disallowed\"],[[12784,12799],\"valid\"],[[12800,12800],\"disallowed_STD3_mapped\",[40,4352,41]],[[12801,12801],\"disallowed_STD3_mapped\",[40,4354,41]],[[12802,12802],\"disallowed_STD3_mapped\",[40,4355,41]],[[12803,12803],\"disallowed_STD3_mapped\",[40,4357,41]],[[12804,12804],\"disallowed_STD3_mapped\",[40,4358,41]],[[12805,12805],\"disallowed_STD3_mapped\",[40,4359,41]],[[12806,12806],\"disallowed_STD3_mapped\",[40,4361,41]],[[12807,12807],\"disallowed_STD3_mapped\",[40,4363,41]],[[12808,12808],\"disallowed_STD3_mapped\",[40,4364,41]],[[12809,12809],\"disallowed_STD3_mapped\",[40,4366,41]],[[12810,12810],\"disallowed_STD3_mapped\",[40,4367,41]],[[12811,12811],\"disallowed_STD3_mapped\",[40,4368,41]],[[12812,12812],\"disallowed_STD3_mapped\",[40,4369,41]],[[12813,12813],\"disallowed_STD3_mapped\",[40,4370,41]],[[12814,12814],\"disallowed_STD3_mapped\",[40,44032,41]],[[12815,12815],\"disallowed_STD3_mapped\",[40,45208,41]],[[12816,12816],\"disallowed_STD3_mapped\",[40,45796,41]],[[12817,12817],\"disallowed_STD3_mapped\",[40,46972,41]],[[12818,12818],\"disallowed_STD3_mapped\",[40,47560,41]],[[12819,12819],\"disallowed_STD3_mapped\",[40,48148,41]],[[12820,12820],\"disallowed_STD3_mapped\",[40,49324,41]],[[12821,12821],\"disallowed_STD3_mapped\",[40,50500,41]],[[12822,12822],\"disallowed_STD3_mapped\",[40,51088,41]],[[12823,12823],\"disallowed_STD3_mapped\",[40,52264,41]],[[12824,12824],\"disallowed_STD3_mapped\",[40,52852,41]],[[12825,12825],\"disallowed_STD3_mapped\",[40,53440,41]],[[12826,12826],\"disallowed_STD3_mapped\",[40,54028,41]],[[12827,12827],\"disallowed_STD3_mapped\",[40,54616,41]],[[12828,12828],\"disallowed_STD3_mapped\",[40,51452,41]],[[12829,12829],\"disallowed_STD3_mapped\",[40,50724,51204,41]],[[12830,12830],\"disallowed_STD3_mapped\",[40,50724,54980,41]],[[12831,12831],\"disallowed\"],[[12832,12832],\"disallowed_STD3_mapped\",[40,19968,41]],[[12833,12833],\"disallowed_STD3_mapped\",[40,20108,41]],[[12834,12834],\"disallowed_STD3_mapped\",[40,19977,41]],[[12835,12835],\"disallowed_STD3_mapped\",[40,22235,41]],[[12836,12836],\"disallowed_STD3_mapped\",[40,20116,41]],[[12837,12837],\"disallowed_STD3_mapped\",[40,20845,41]],[[12838,12838],\"disallowed_STD3_mapped\",[40,19971,41]],[[12839,12839],\"disallowed_STD3_mapped\",[40,20843,41]],[[12840,12840],\"disallowed_STD3_mapped\",[40,20061,41]],[[12841,12841],\"disallowed_STD3_mapped\",[40,21313,41]],[[12842,12842],\"disallowed_STD3_mapped\",[40,26376,41]],[[12843,12843],\"disallowed_STD3_mapped\",[40,28779,41]],[[12844,12844],\"disallowed_STD3_mapped\",[40,27700,41]],[[12845,12845],\"disallowed_STD3_mapped\",[40,26408,41]],[[12846,12846],\"disallowed_STD3_mapped\",[40,37329,41]],[[12847,12847],\"disallowed_STD3_mapped\",[40,22303,41]],[[12848,12848],\"disallowed_STD3_mapped\",[40,26085,41]],[[12849,12849],\"disallowed_STD3_mapped\",[40,26666,41]],[[12850,12850],\"disallowed_STD3_mapped\",[40,26377,41]],[[12851,12851],\"disallowed_STD3_mapped\",[40,31038,41]],[[12852,12852],\"disallowed_STD3_mapped\",[40,21517,41]],[[12853,12853],\"disallowed_STD3_mapped\",[40,29305,41]],[[12854,12854],\"disallowed_STD3_mapped\",[40,36001,41]],[[12855,12855],\"disallowed_STD3_mapped\",[40,31069,41]],[[12856,12856],\"disallowed_STD3_mapped\",[40,21172,41]],[[12857,12857],\"disallowed_STD3_mapped\",[40,20195,41]],[[12858,12858],\"disallowed_STD3_mapped\",[40,21628,41]],[[12859,12859],\"disallowed_STD3_mapped\",[40,23398,41]],[[12860,12860],\"disallowed_STD3_mapped\",[40,30435,41]],[[12861,12861],\"disallowed_STD3_mapped\",[40,20225,41]],[[12862,12862],\"disallowed_STD3_mapped\",[40,36039,41]],[[12863,12863],\"disallowed_STD3_mapped\",[40,21332,41]],[[12864,12864],\"disallowed_STD3_mapped\",[40,31085,41]],[[12865,12865],\"disallowed_STD3_mapped\",[40,20241,41]],[[12866,12866],\"disallowed_STD3_mapped\",[40,33258,41]],[[12867,12867],\"disallowed_STD3_mapped\",[40,33267,41]],[[12868,12868],\"mapped\",[21839]],[[12869,12869],\"mapped\",[24188]],[[12870,12870],\"mapped\",[25991]],[[12871,12871],\"mapped\",[31631]],[[12872,12879],\"valid\",[],\"NV8\"],[[12880,12880],\"mapped\",[112,116,101]],[[12881,12881],\"mapped\",[50,49]],[[12882,12882],\"mapped\",[50,50]],[[12883,12883],\"mapped\",[50,51]],[[12884,12884],\"mapped\",[50,52]],[[12885,12885],\"mapped\",[50,53]],[[12886,12886],\"mapped\",[50,54]],[[12887,12887],\"mapped\",[50,55]],[[12888,12888],\"mapped\",[50,56]],[[12889,12889],\"mapped\",[50,57]],[[12890,12890],\"mapped\",[51,48]],[[12891,12891],\"mapped\",[51,49]],[[12892,12892],\"mapped\",[51,50]],[[12893,12893],\"mapped\",[51,51]],[[12894,12894],\"mapped\",[51,52]],[[12895,12895],\"mapped\",[51,53]],[[12896,12896],\"mapped\",[4352]],[[12897,12897],\"mapped\",[4354]],[[12898,12898],\"mapped\",[4355]],[[12899,12899],\"mapped\",[4357]],[[12900,12900],\"mapped\",[4358]],[[12901,12901],\"mapped\",[4359]],[[12902,12902],\"mapped\",[4361]],[[12903,12903],\"mapped\",[4363]],[[12904,12904],\"mapped\",[4364]],[[12905,12905],\"mapped\",[4366]],[[12906,12906],\"mapped\",[4367]],[[12907,12907],\"mapped\",[4368]],[[12908,12908],\"mapped\",[4369]],[[12909,12909],\"mapped\",[4370]],[[12910,12910],\"mapped\",[44032]],[[12911,12911],\"mapped\",[45208]],[[12912,12912],\"mapped\",[45796]],[[12913,12913],\"mapped\",[46972]],[[12914,12914],\"mapped\",[47560]],[[12915,12915],\"mapped\",[48148]],[[12916,12916],\"mapped\",[49324]],[[12917,12917],\"mapped\",[50500]],[[12918,12918],\"mapped\",[51088]],[[12919,12919],\"mapped\",[52264]],[[12920,12920],\"mapped\",[52852]],[[12921,12921],\"mapped\",[53440]],[[12922,12922],\"mapped\",[54028]],[[12923,12923],\"mapped\",[54616]],[[12924,12924],\"mapped\",[52280,44256]],[[12925,12925],\"mapped\",[51452,51032]],[[12926,12926],\"mapped\",[50864]],[[12927,12927],\"valid\",[],\"NV8\"],[[12928,12928],\"mapped\",[19968]],[[12929,12929],\"mapped\",[20108]],[[12930,12930],\"mapped\",[19977]],[[12931,12931],\"mapped\",[22235]],[[12932,12932],\"mapped\",[20116]],[[12933,12933],\"mapped\",[20845]],[[12934,12934],\"mapped\",[19971]],[[12935,12935],\"mapped\",[20843]],[[12936,12936],\"mapped\",[20061]],[[12937,12937],\"mapped\",[21313]],[[12938,12938],\"mapped\",[26376]],[[12939,12939],\"mapped\",[28779]],[[12940,12940],\"mapped\",[27700]],[[12941,12941],\"mapped\",[26408]],[[12942,12942],\"mapped\",[37329]],[[12943,12943],\"mapped\",[22303]],[[12944,12944],\"mapped\",[26085]],[[12945,12945],\"mapped\",[26666]],[[12946,12946],\"mapped\",[26377]],[[12947,12947],\"mapped\",[31038]],[[12948,12948],\"mapped\",[21517]],[[12949,12949],\"mapped\",[29305]],[[12950,12950],\"mapped\",[36001]],[[12951,12951],\"mapped\",[31069]],[[12952,12952],\"mapped\",[21172]],[[12953,12953],\"mapped\",[31192]],[[12954,12954],\"mapped\",[30007]],[[12955,12955],\"mapped\",[22899]],[[12956,12956],\"mapped\",[36969]],[[12957,12957],\"mapped\",[20778]],[[12958,12958],\"mapped\",[21360]],[[12959,12959],\"mapped\",[27880]],[[12960,12960],\"mapped\",[38917]],[[12961,12961],\"mapped\",[20241]],[[12962,12962],\"mapped\",[20889]],[[12963,12963],\"mapped\",[27491]],[[12964,12964],\"mapped\",[19978]],[[12965,12965],\"mapped\",[20013]],[[12966,12966],\"mapped\",[19979]],[[12967,12967],\"mapped\",[24038]],[[12968,12968],\"mapped\",[21491]],[[12969,12969],\"mapped\",[21307]],[[12970,12970],\"mapped\",[23447]],[[12971,12971],\"mapped\",[23398]],[[12972,12972],\"mapped\",[30435]],[[12973,12973],\"mapped\",[20225]],[[12974,12974],\"mapped\",[36039]],[[12975,12975],\"mapped\",[21332]],[[12976,12976],\"mapped\",[22812]],[[12977,12977],\"mapped\",[51,54]],[[12978,12978],\"mapped\",[51,55]],[[12979,12979],\"mapped\",[51,56]],[[12980,12980],\"mapped\",[51,57]],[[12981,12981],\"mapped\",[52,48]],[[12982,12982],\"mapped\",[52,49]],[[12983,12983],\"mapped\",[52,50]],[[12984,12984],\"mapped\",[52,51]],[[12985,12985],\"mapped\",[52,52]],[[12986,12986],\"mapped\",[52,53]],[[12987,12987],\"mapped\",[52,54]],[[12988,12988],\"mapped\",[52,55]],[[12989,12989],\"mapped\",[52,56]],[[12990,12990],\"mapped\",[52,57]],[[12991,12991],\"mapped\",[53,48]],[[12992,12992],\"mapped\",[49,26376]],[[12993,12993],\"mapped\",[50,26376]],[[12994,12994],\"mapped\",[51,26376]],[[12995,12995],\"mapped\",[52,26376]],[[12996,12996],\"mapped\",[53,26376]],[[12997,12997],\"mapped\",[54,26376]],[[12998,12998],\"mapped\",[55,26376]],[[12999,12999],\"mapped\",[56,26376]],[[13000,13000],\"mapped\",[57,26376]],[[13001,13001],\"mapped\",[49,48,26376]],[[13002,13002],\"mapped\",[49,49,26376]],[[13003,13003],\"mapped\",[49,50,26376]],[[13004,13004],\"mapped\",[104,103]],[[13005,13005],\"mapped\",[101,114,103]],[[13006,13006],\"mapped\",[101,118]],[[13007,13007],\"mapped\",[108,116,100]],[[13008,13008],\"mapped\",[12450]],[[13009,13009],\"mapped\",[12452]],[[13010,13010],\"mapped\",[12454]],[[13011,13011],\"mapped\",[12456]],[[13012,13012],\"mapped\",[12458]],[[13013,13013],\"mapped\",[12459]],[[13014,13014],\"mapped\",[12461]],[[13015,13015],\"mapped\",[12463]],[[13016,13016],\"mapped\",[12465]],[[13017,13017],\"mapped\",[12467]],[[13018,13018],\"mapped\",[12469]],[[13019,13019],\"mapped\",[12471]],[[13020,13020],\"mapped\",[12473]],[[13021,13021],\"mapped\",[12475]],[[13022,13022],\"mapped\",[12477]],[[13023,13023],\"mapped\",[12479]],[[13024,13024],\"mapped\",[12481]],[[13025,13025],\"mapped\",[12484]],[[13026,13026],\"mapped\",[12486]],[[13027,13027],\"mapped\",[12488]],[[13028,13028],\"mapped\",[12490]],[[13029,13029],\"mapped\",[12491]],[[13030,13030],\"mapped\",[12492]],[[13031,13031],\"mapped\",[12493]],[[13032,13032],\"mapped\",[12494]],[[13033,13033],\"mapped\",[12495]],[[13034,13034],\"mapped\",[12498]],[[13035,13035],\"mapped\",[12501]],[[13036,13036],\"mapped\",[12504]],[[13037,13037],\"mapped\",[12507]],[[13038,13038],\"mapped\",[12510]],[[13039,13039],\"mapped\",[12511]],[[13040,13040],\"mapped\",[12512]],[[13041,13041],\"mapped\",[12513]],[[13042,13042],\"mapped\",[12514]],[[13043,13043],\"mapped\",[12516]],[[13044,13044],\"mapped\",[12518]],[[13045,13045],\"mapped\",[12520]],[[13046,13046],\"mapped\",[12521]],[[13047,13047],\"mapped\",[12522]],[[13048,13048],\"mapped\",[12523]],[[13049,13049],\"mapped\",[12524]],[[13050,13050],\"mapped\",[12525]],[[13051,13051],\"mapped\",[12527]],[[13052,13052],\"mapped\",[12528]],[[13053,13053],\"mapped\",[12529]],[[13054,13054],\"mapped\",[12530]],[[13055,13055],\"disallowed\"],[[13056,13056],\"mapped\",[12450,12497,12540,12488]],[[13057,13057],\"mapped\",[12450,12523,12501,12449]],[[13058,13058],\"mapped\",[12450,12531,12506,12450]],[[13059,13059],\"mapped\",[12450,12540,12523]],[[13060,13060],\"mapped\",[12452,12491,12531,12464]],[[13061,13061],\"mapped\",[12452,12531,12481]],[[13062,13062],\"mapped\",[12454,12457,12531]],[[13063,13063],\"mapped\",[12456,12473,12463,12540,12489]],[[13064,13064],\"mapped\",[12456,12540,12459,12540]],[[13065,13065],\"mapped\",[12458,12531,12473]],[[13066,13066],\"mapped\",[12458,12540,12512]],[[13067,13067],\"mapped\",[12459,12452,12522]],[[13068,13068],\"mapped\",[12459,12521,12483,12488]],[[13069,13069],\"mapped\",[12459,12525,12522,12540]],[[13070,13070],\"mapped\",[12460,12525,12531]],[[13071,13071],\"mapped\",[12460,12531,12510]],[[13072,13072],\"mapped\",[12462,12460]],[[13073,13073],\"mapped\",[12462,12491,12540]],[[13074,13074],\"mapped\",[12461,12517,12522,12540]],[[13075,13075],\"mapped\",[12462,12523,12480,12540]],[[13076,13076],\"mapped\",[12461,12525]],[[13077,13077],\"mapped\",[12461,12525,12464,12521,12512]],[[13078,13078],\"mapped\",[12461,12525,12513,12540,12488,12523]],[[13079,13079],\"mapped\",[12461,12525,12527,12483,12488]],[[13080,13080],\"mapped\",[12464,12521,12512]],[[13081,13081],\"mapped\",[12464,12521,12512,12488,12531]],[[13082,13082],\"mapped\",[12463,12523,12476,12452,12525]],[[13083,13083],\"mapped\",[12463,12525,12540,12493]],[[13084,13084],\"mapped\",[12465,12540,12473]],[[13085,13085],\"mapped\",[12467,12523,12490]],[[13086,13086],\"mapped\",[12467,12540,12509]],[[13087,13087],\"mapped\",[12469,12452,12463,12523]],[[13088,13088],\"mapped\",[12469,12531,12481,12540,12512]],[[13089,13089],\"mapped\",[12471,12522,12531,12464]],[[13090,13090],\"mapped\",[12475,12531,12481]],[[13091,13091],\"mapped\",[12475,12531,12488]],[[13092,13092],\"mapped\",[12480,12540,12473]],[[13093,13093],\"mapped\",[12487,12471]],[[13094,13094],\"mapped\",[12489,12523]],[[13095,13095],\"mapped\",[12488,12531]],[[13096,13096],\"mapped\",[12490,12494]],[[13097,13097],\"mapped\",[12494,12483,12488]],[[13098,13098],\"mapped\",[12495,12452,12484]],[[13099,13099],\"mapped\",[12497,12540,12475,12531,12488]],[[13100,13100],\"mapped\",[12497,12540,12484]],[[13101,13101],\"mapped\",[12496,12540,12524,12523]],[[13102,13102],\"mapped\",[12500,12450,12473,12488,12523]],[[13103,13103],\"mapped\",[12500,12463,12523]],[[13104,13104],\"mapped\",[12500,12467]],[[13105,13105],\"mapped\",[12499,12523]],[[13106,13106],\"mapped\",[12501,12449,12521,12483,12489]],[[13107,13107],\"mapped\",[12501,12451,12540,12488]],[[13108,13108],\"mapped\",[12502,12483,12471,12455,12523]],[[13109,13109],\"mapped\",[12501,12521,12531]],[[13110,13110],\"mapped\",[12504,12463,12479,12540,12523]],[[13111,13111],\"mapped\",[12506,12477]],[[13112,13112],\"mapped\",[12506,12491,12498]],[[13113,13113],\"mapped\",[12504,12523,12484]],[[13114,13114],\"mapped\",[12506,12531,12473]],[[13115,13115],\"mapped\",[12506,12540,12472]],[[13116,13116],\"mapped\",[12505,12540,12479]],[[13117,13117],\"mapped\",[12509,12452,12531,12488]],[[13118,13118],\"mapped\",[12508,12523,12488]],[[13119,13119],\"mapped\",[12507,12531]],[[13120,13120],\"mapped\",[12509,12531,12489]],[[13121,13121],\"mapped\",[12507,12540,12523]],[[13122,13122],\"mapped\",[12507,12540,12531]],[[13123,13123],\"mapped\",[12510,12452,12463,12525]],[[13124,13124],\"mapped\",[12510,12452,12523]],[[13125,13125],\"mapped\",[12510,12483,12495]],[[13126,13126],\"mapped\",[12510,12523,12463]],[[13127,13127],\"mapped\",[12510,12531,12471,12519,12531]],[[13128,13128],\"mapped\",[12511,12463,12525,12531]],[[13129,13129],\"mapped\",[12511,12522]],[[13130,13130],\"mapped\",[12511,12522,12496,12540,12523]],[[13131,13131],\"mapped\",[12513,12460]],[[13132,13132],\"mapped\",[12513,12460,12488,12531]],[[13133,13133],\"mapped\",[12513,12540,12488,12523]],[[13134,13134],\"mapped\",[12516,12540,12489]],[[13135,13135],\"mapped\",[12516,12540,12523]],[[13136,13136],\"mapped\",[12518,12450,12531]],[[13137,13137],\"mapped\",[12522,12483,12488,12523]],[[13138,13138],\"mapped\",[12522,12521]],[[13139,13139],\"mapped\",[12523,12500,12540]],[[13140,13140],\"mapped\",[12523,12540,12502,12523]],[[13141,13141],\"mapped\",[12524,12512]],[[13142,13142],\"mapped\",[12524,12531,12488,12466,12531]],[[13143,13143],\"mapped\",[12527,12483,12488]],[[13144,13144],\"mapped\",[48,28857]],[[13145,13145],\"mapped\",[49,28857]],[[13146,13146],\"mapped\",[50,28857]],[[13147,13147],\"mapped\",[51,28857]],[[13148,13148],\"mapped\",[52,28857]],[[13149,13149],\"mapped\",[53,28857]],[[13150,13150],\"mapped\",[54,28857]],[[13151,13151],\"mapped\",[55,28857]],[[13152,13152],\"mapped\",[56,28857]],[[13153,13153],\"mapped\",[57,28857]],[[13154,13154],\"mapped\",[49,48,28857]],[[13155,13155],\"mapped\",[49,49,28857]],[[13156,13156],\"mapped\",[49,50,28857]],[[13157,13157],\"mapped\",[49,51,28857]],[[13158,13158],\"mapped\",[49,52,28857]],[[13159,13159],\"mapped\",[49,53,28857]],[[13160,13160],\"mapped\",[49,54,28857]],[[13161,13161],\"mapped\",[49,55,28857]],[[13162,13162],\"mapped\",[49,56,28857]],[[13163,13163],\"mapped\",[49,57,28857]],[[13164,13164],\"mapped\",[50,48,28857]],[[13165,13165],\"mapped\",[50,49,28857]],[[13166,13166],\"mapped\",[50,50,28857]],[[13167,13167],\"mapped\",[50,51,28857]],[[13168,13168],\"mapped\",[50,52,28857]],[[13169,13169],\"mapped\",[104,112,97]],[[13170,13170],\"mapped\",[100,97]],[[13171,13171],\"mapped\",[97,117]],[[13172,13172],\"mapped\",[98,97,114]],[[13173,13173],\"mapped\",[111,118]],[[13174,13174],\"mapped\",[112,99]],[[13175,13175],\"mapped\",[100,109]],[[13176,13176],\"mapped\",[100,109,50]],[[13177,13177],\"mapped\",[100,109,51]],[[13178,13178],\"mapped\",[105,117]],[[13179,13179],\"mapped\",[24179,25104]],[[13180,13180],\"mapped\",[26157,21644]],[[13181,13181],\"mapped\",[22823,27491]],[[13182,13182],\"mapped\",[26126,27835]],[[13183,13183],\"mapped\",[26666,24335,20250,31038]],[[13184,13184],\"mapped\",[112,97]],[[13185,13185],\"mapped\",[110,97]],[[13186,13186],\"mapped\",[956,97]],[[13187,13187],\"mapped\",[109,97]],[[13188,13188],\"mapped\",[107,97]],[[13189,13189],\"mapped\",[107,98]],[[13190,13190],\"mapped\",[109,98]],[[13191,13191],\"mapped\",[103,98]],[[13192,13192],\"mapped\",[99,97,108]],[[13193,13193],\"mapped\",[107,99,97,108]],[[13194,13194],\"mapped\",[112,102]],[[13195,13195],\"mapped\",[110,102]],[[13196,13196],\"mapped\",[956,102]],[[13197,13197],\"mapped\",[956,103]],[[13198,13198],\"mapped\",[109,103]],[[13199,13199],\"mapped\",[107,103]],[[13200,13200],\"mapped\",[104,122]],[[13201,13201],\"mapped\",[107,104,122]],[[13202,13202],\"mapped\",[109,104,122]],[[13203,13203],\"mapped\",[103,104,122]],[[13204,13204],\"mapped\",[116,104,122]],[[13205,13205],\"mapped\",[956,108]],[[13206,13206],\"mapped\",[109,108]],[[13207,13207],\"mapped\",[100,108]],[[13208,13208],\"mapped\",[107,108]],[[13209,13209],\"mapped\",[102,109]],[[13210,13210],\"mapped\",[110,109]],[[13211,13211],\"mapped\",[956,109]],[[13212,13212],\"mapped\",[109,109]],[[13213,13213],\"mapped\",[99,109]],[[13214,13214],\"mapped\",[107,109]],[[13215,13215],\"mapped\",[109,109,50]],[[13216,13216],\"mapped\",[99,109,50]],[[13217,13217],\"mapped\",[109,50]],[[13218,13218],\"mapped\",[107,109,50]],[[13219,13219],\"mapped\",[109,109,51]],[[13220,13220],\"mapped\",[99,109,51]],[[13221,13221],\"mapped\",[109,51]],[[13222,13222],\"mapped\",[107,109,51]],[[13223,13223],\"mapped\",[109,8725,115]],[[13224,13224],\"mapped\",[109,8725,115,50]],[[13225,13225],\"mapped\",[112,97]],[[13226,13226],\"mapped\",[107,112,97]],[[13227,13227],\"mapped\",[109,112,97]],[[13228,13228],\"mapped\",[103,112,97]],[[13229,13229],\"mapped\",[114,97,100]],[[13230,13230],\"mapped\",[114,97,100,8725,115]],[[13231,13231],\"mapped\",[114,97,100,8725,115,50]],[[13232,13232],\"mapped\",[112,115]],[[13233,13233],\"mapped\",[110,115]],[[13234,13234],\"mapped\",[956,115]],[[13235,13235],\"mapped\",[109,115]],[[13236,13236],\"mapped\",[112,118]],[[13237,13237],\"mapped\",[110,118]],[[13238,13238],\"mapped\",[956,118]],[[13239,13239],\"mapped\",[109,118]],[[13240,13240],\"mapped\",[107,118]],[[13241,13241],\"mapped\",[109,118]],[[13242,13242],\"mapped\",[112,119]],[[13243,13243],\"mapped\",[110,119]],[[13244,13244],\"mapped\",[956,119]],[[13245,13245],\"mapped\",[109,119]],[[13246,13246],\"mapped\",[107,119]],[[13247,13247],\"mapped\",[109,119]],[[13248,13248],\"mapped\",[107,969]],[[13249,13249],\"mapped\",[109,969]],[[13250,13250],\"disallowed\"],[[13251,13251],\"mapped\",[98,113]],[[13252,13252],\"mapped\",[99,99]],[[13253,13253],\"mapped\",[99,100]],[[13254,13254],\"mapped\",[99,8725,107,103]],[[13255,13255],\"disallowed\"],[[13256,13256],\"mapped\",[100,98]],[[13257,13257],\"mapped\",[103,121]],[[13258,13258],\"mapped\",[104,97]],[[13259,13259],\"mapped\",[104,112]],[[13260,13260],\"mapped\",[105,110]],[[13261,13261],\"mapped\",[107,107]],[[13262,13262],\"mapped\",[107,109]],[[13263,13263],\"mapped\",[107,116]],[[13264,13264],\"mapped\",[108,109]],[[13265,13265],\"mapped\",[108,110]],[[13266,13266],\"mapped\",[108,111,103]],[[13267,13267],\"mapped\",[108,120]],[[13268,13268],\"mapped\",[109,98]],[[13269,13269],\"mapped\",[109,105,108]],[[13270,13270],\"mapped\",[109,111,108]],[[13271,13271],\"mapped\",[112,104]],[[13272,13272],\"disallowed\"],[[13273,13273],\"mapped\",[112,112,109]],[[13274,13274],\"mapped\",[112,114]],[[13275,13275],\"mapped\",[115,114]],[[13276,13276],\"mapped\",[115,118]],[[13277,13277],\"mapped\",[119,98]],[[13278,13278],\"mapped\",[118,8725,109]],[[13279,13279],\"mapped\",[97,8725,109]],[[13280,13280],\"mapped\",[49,26085]],[[13281,13281],\"mapped\",[50,26085]],[[13282,13282],\"mapped\",[51,26085]],[[13283,13283],\"mapped\",[52,26085]],[[13284,13284],\"mapped\",[53,26085]],[[13285,13285],\"mapped\",[54,26085]],[[13286,13286],\"mapped\",[55,26085]],[[13287,13287],\"mapped\",[56,26085]],[[13288,13288],\"mapped\",[57,26085]],[[13289,13289],\"mapped\",[49,48,26085]],[[13290,13290],\"mapped\",[49,49,26085]],[[13291,13291],\"mapped\",[49,50,26085]],[[13292,13292],\"mapped\",[49,51,26085]],[[13293,13293],\"mapped\",[49,52,26085]],[[13294,13294],\"mapped\",[49,53,26085]],[[13295,13295],\"mapped\",[49,54,26085]],[[13296,13296],\"mapped\",[49,55,26085]],[[13297,13297],\"mapped\",[49,56,26085]],[[13298,13298],\"mapped\",[49,57,26085]],[[13299,13299],\"mapped\",[50,48,26085]],[[13300,13300],\"mapped\",[50,49,26085]],[[13301,13301],\"mapped\",[50,50,26085]],[[13302,13302],\"mapped\",[50,51,26085]],[[13303,13303],\"mapped\",[50,52,26085]],[[13304,13304],\"mapped\",[50,53,26085]],[[13305,13305],\"mapped\",[50,54,26085]],[[13306,13306],\"mapped\",[50,55,26085]],[[13307,13307],\"mapped\",[50,56,26085]],[[13308,13308],\"mapped\",[50,57,26085]],[[13309,13309],\"mapped\",[51,48,26085]],[[13310,13310],\"mapped\",[51,49,26085]],[[13311,13311],\"mapped\",[103,97,108]],[[13312,19893],\"valid\"],[[19894,19903],\"disallowed\"],[[19904,19967],\"valid\",[],\"NV8\"],[[19968,40869],\"valid\"],[[40870,40891],\"valid\"],[[40892,40899],\"valid\"],[[40900,40907],\"valid\"],[[40908,40908],\"valid\"],[[40909,40917],\"valid\"],[[40918,40959],\"disallowed\"],[[40960,42124],\"valid\"],[[42125,42127],\"disallowed\"],[[42128,42145],\"valid\",[],\"NV8\"],[[42146,42147],\"valid\",[],\"NV8\"],[[42148,42163],\"valid\",[],\"NV8\"],[[42164,42164],\"valid\",[],\"NV8\"],[[42165,42176],\"valid\",[],\"NV8\"],[[42177,42177],\"valid\",[],\"NV8\"],[[42178,42180],\"valid\",[],\"NV8\"],[[42181,42181],\"valid\",[],\"NV8\"],[[42182,42182],\"valid\",[],\"NV8\"],[[42183,42191],\"disallowed\"],[[42192,42237],\"valid\"],[[42238,42239],\"valid\",[],\"NV8\"],[[42240,42508],\"valid\"],[[42509,42511],\"valid\",[],\"NV8\"],[[42512,42539],\"valid\"],[[42540,42559],\"disallowed\"],[[42560,42560],\"mapped\",[42561]],[[42561,42561],\"valid\"],[[42562,42562],\"mapped\",[42563]],[[42563,42563],\"valid\"],[[42564,42564],\"mapped\",[42565]],[[42565,42565],\"valid\"],[[42566,42566],\"mapped\",[42567]],[[42567,42567],\"valid\"],[[42568,42568],\"mapped\",[42569]],[[42569,42569],\"valid\"],[[42570,42570],\"mapped\",[42571]],[[42571,42571],\"valid\"],[[42572,42572],\"mapped\",[42573]],[[42573,42573],\"valid\"],[[42574,42574],\"mapped\",[42575]],[[42575,42575],\"valid\"],[[42576,42576],\"mapped\",[42577]],[[42577,42577],\"valid\"],[[42578,42578],\"mapped\",[42579]],[[42579,42579],\"valid\"],[[42580,42580],\"mapped\",[42581]],[[42581,42581],\"valid\"],[[42582,42582],\"mapped\",[42583]],[[42583,42583],\"valid\"],[[42584,42584],\"mapped\",[42585]],[[42585,42585],\"valid\"],[[42586,42586],\"mapped\",[42587]],[[42587,42587],\"valid\"],[[42588,42588],\"mapped\",[42589]],[[42589,42589],\"valid\"],[[42590,42590],\"mapped\",[42591]],[[42591,42591],\"valid\"],[[42592,42592],\"mapped\",[42593]],[[42593,42593],\"valid\"],[[42594,42594],\"mapped\",[42595]],[[42595,42595],\"valid\"],[[42596,42596],\"mapped\",[42597]],[[42597,42597],\"valid\"],[[42598,42598],\"mapped\",[42599]],[[42599,42599],\"valid\"],[[42600,42600],\"mapped\",[42601]],[[42601,42601],\"valid\"],[[42602,42602],\"mapped\",[42603]],[[42603,42603],\"valid\"],[[42604,42604],\"mapped\",[42605]],[[42605,42607],\"valid\"],[[42608,42611],\"valid\",[],\"NV8\"],[[42612,42619],\"valid\"],[[42620,42621],\"valid\"],[[42622,42622],\"valid\",[],\"NV8\"],[[42623,42623],\"valid\"],[[42624,42624],\"mapped\",[42625]],[[42625,42625],\"valid\"],[[42626,42626],\"mapped\",[42627]],[[42627,42627],\"valid\"],[[42628,42628],\"mapped\",[42629]],[[42629,42629],\"valid\"],[[42630,42630],\"mapped\",[42631]],[[42631,42631],\"valid\"],[[42632,42632],\"mapped\",[42633]],[[42633,42633],\"valid\"],[[42634,42634],\"mapped\",[42635]],[[42635,42635],\"valid\"],[[42636,42636],\"mapped\",[42637]],[[42637,42637],\"valid\"],[[42638,42638],\"mapped\",[42639]],[[42639,42639],\"valid\"],[[42640,42640],\"mapped\",[42641]],[[42641,42641],\"valid\"],[[42642,42642],\"mapped\",[42643]],[[42643,42643],\"valid\"],[[42644,42644],\"mapped\",[42645]],[[42645,42645],\"valid\"],[[42646,42646],\"mapped\",[42647]],[[42647,42647],\"valid\"],[[42648,42648],\"mapped\",[42649]],[[42649,42649],\"valid\"],[[42650,42650],\"mapped\",[42651]],[[42651,42651],\"valid\"],[[42652,42652],\"mapped\",[1098]],[[42653,42653],\"mapped\",[1100]],[[42654,42654],\"valid\"],[[42655,42655],\"valid\"],[[42656,42725],\"valid\"],[[42726,42735],\"valid\",[],\"NV8\"],[[42736,42737],\"valid\"],[[42738,42743],\"valid\",[],\"NV8\"],[[42744,42751],\"disallowed\"],[[42752,42774],\"valid\",[],\"NV8\"],[[42775,42778],\"valid\"],[[42779,42783],\"valid\"],[[42784,42785],\"valid\",[],\"NV8\"],[[42786,42786],\"mapped\",[42787]],[[42787,42787],\"valid\"],[[42788,42788],\"mapped\",[42789]],[[42789,42789],\"valid\"],[[42790,42790],\"mapped\",[42791]],[[42791,42791],\"valid\"],[[42792,42792],\"mapped\",[42793]],[[42793,42793],\"valid\"],[[42794,42794],\"mapped\",[42795]],[[42795,42795],\"valid\"],[[42796,42796],\"mapped\",[42797]],[[42797,42797],\"valid\"],[[42798,42798],\"mapped\",[42799]],[[42799,42801],\"valid\"],[[42802,42802],\"mapped\",[42803]],[[42803,42803],\"valid\"],[[42804,42804],\"mapped\",[42805]],[[42805,42805],\"valid\"],[[42806,42806],\"mapped\",[42807]],[[42807,42807],\"valid\"],[[42808,42808],\"mapped\",[42809]],[[42809,42809],\"valid\"],[[42810,42810],\"mapped\",[42811]],[[42811,42811],\"valid\"],[[42812,42812],\"mapped\",[42813]],[[42813,42813],\"valid\"],[[42814,42814],\"mapped\",[42815]],[[42815,42815],\"valid\"],[[42816,42816],\"mapped\",[42817]],[[42817,42817],\"valid\"],[[42818,42818],\"mapped\",[42819]],[[42819,42819],\"valid\"],[[42820,42820],\"mapped\",[42821]],[[42821,42821],\"valid\"],[[42822,42822],\"mapped\",[42823]],[[42823,42823],\"valid\"],[[42824,42824],\"mapped\",[42825]],[[42825,42825],\"valid\"],[[42826,42826],\"mapped\",[42827]],[[42827,42827],\"valid\"],[[42828,42828],\"mapped\",[42829]],[[42829,42829],\"valid\"],[[42830,42830],\"mapped\",[42831]],[[42831,42831],\"valid\"],[[42832,42832],\"mapped\",[42833]],[[42833,42833],\"valid\"],[[42834,42834],\"mapped\",[42835]],[[42835,42835],\"valid\"],[[42836,42836],\"mapped\",[42837]],[[42837,42837],\"valid\"],[[42838,42838],\"mapped\",[42839]],[[42839,42839],\"valid\"],[[42840,42840],\"mapped\",[42841]],[[42841,42841],\"valid\"],[[42842,42842],\"mapped\",[42843]],[[42843,42843],\"valid\"],[[42844,42844],\"mapped\",[42845]],[[42845,42845],\"valid\"],[[42846,42846],\"mapped\",[42847]],[[42847,42847],\"valid\"],[[42848,42848],\"mapped\",[42849]],[[42849,42849],\"valid\"],[[42850,42850],\"mapped\",[42851]],[[42851,42851],\"valid\"],[[42852,42852],\"mapped\",[42853]],[[42853,42853],\"valid\"],[[42854,42854],\"mapped\",[42855]],[[42855,42855],\"valid\"],[[42856,42856],\"mapped\",[42857]],[[42857,42857],\"valid\"],[[42858,42858],\"mapped\",[42859]],[[42859,42859],\"valid\"],[[42860,42860],\"mapped\",[42861]],[[42861,42861],\"valid\"],[[42862,42862],\"mapped\",[42863]],[[42863,42863],\"valid\"],[[42864,42864],\"mapped\",[42863]],[[42865,42872],\"valid\"],[[42873,42873],\"mapped\",[42874]],[[42874,42874],\"valid\"],[[42875,42875],\"mapped\",[42876]],[[42876,42876],\"valid\"],[[42877,42877],\"mapped\",[7545]],[[42878,42878],\"mapped\",[42879]],[[42879,42879],\"valid\"],[[42880,42880],\"mapped\",[42881]],[[42881,42881],\"valid\"],[[42882,42882],\"mapped\",[42883]],[[42883,42883],\"valid\"],[[42884,42884],\"mapped\",[42885]],[[42885,42885],\"valid\"],[[42886,42886],\"mapped\",[42887]],[[42887,42888],\"valid\"],[[42889,42890],\"valid\",[],\"NV8\"],[[42891,42891],\"mapped\",[42892]],[[42892,42892],\"valid\"],[[42893,42893],\"mapped\",[613]],[[42894,42894],\"valid\"],[[42895,42895],\"valid\"],[[42896,42896],\"mapped\",[42897]],[[42897,42897],\"valid\"],[[42898,42898],\"mapped\",[42899]],[[42899,42899],\"valid\"],[[42900,42901],\"valid\"],[[42902,42902],\"mapped\",[42903]],[[42903,42903],\"valid\"],[[42904,42904],\"mapped\",[42905]],[[42905,42905],\"valid\"],[[42906,42906],\"mapped\",[42907]],[[42907,42907],\"valid\"],[[42908,42908],\"mapped\",[42909]],[[42909,42909],\"valid\"],[[42910,42910],\"mapped\",[42911]],[[42911,42911],\"valid\"],[[42912,42912],\"mapped\",[42913]],[[42913,42913],\"valid\"],[[42914,42914],\"mapped\",[42915]],[[42915,42915],\"valid\"],[[42916,42916],\"mapped\",[42917]],[[42917,42917],\"valid\"],[[42918,42918],\"mapped\",[42919]],[[42919,42919],\"valid\"],[[42920,42920],\"mapped\",[42921]],[[42921,42921],\"valid\"],[[42922,42922],\"mapped\",[614]],[[42923,42923],\"mapped\",[604]],[[42924,42924],\"mapped\",[609]],[[42925,42925],\"mapped\",[620]],[[42926,42927],\"disallowed\"],[[42928,42928],\"mapped\",[670]],[[42929,42929],\"mapped\",[647]],[[42930,42930],\"mapped\",[669]],[[42931,42931],\"mapped\",[43859]],[[42932,42932],\"mapped\",[42933]],[[42933,42933],\"valid\"],[[42934,42934],\"mapped\",[42935]],[[42935,42935],\"valid\"],[[42936,42998],\"disallowed\"],[[42999,42999],\"valid\"],[[43000,43000],\"mapped\",[295]],[[43001,43001],\"mapped\",[339]],[[43002,43002],\"valid\"],[[43003,43007],\"valid\"],[[43008,43047],\"valid\"],[[43048,43051],\"valid\",[],\"NV8\"],[[43052,43055],\"disallowed\"],[[43056,43065],\"valid\",[],\"NV8\"],[[43066,43071],\"disallowed\"],[[43072,43123],\"valid\"],[[43124,43127],\"valid\",[],\"NV8\"],[[43128,43135],\"disallowed\"],[[43136,43204],\"valid\"],[[43205,43213],\"disallowed\"],[[43214,43215],\"valid\",[],\"NV8\"],[[43216,43225],\"valid\"],[[43226,43231],\"disallowed\"],[[43232,43255],\"valid\"],[[43256,43258],\"valid\",[],\"NV8\"],[[43259,43259],\"valid\"],[[43260,43260],\"valid\",[],\"NV8\"],[[43261,43261],\"valid\"],[[43262,43263],\"disallowed\"],[[43264,43309],\"valid\"],[[43310,43311],\"valid\",[],\"NV8\"],[[43312,43347],\"valid\"],[[43348,43358],\"disallowed\"],[[43359,43359],\"valid\",[],\"NV8\"],[[43360,43388],\"valid\",[],\"NV8\"],[[43389,43391],\"disallowed\"],[[43392,43456],\"valid\"],[[43457,43469],\"valid\",[],\"NV8\"],[[43470,43470],\"disallowed\"],[[43471,43481],\"valid\"],[[43482,43485],\"disallowed\"],[[43486,43487],\"valid\",[],\"NV8\"],[[43488,43518],\"valid\"],[[43519,43519],\"disallowed\"],[[43520,43574],\"valid\"],[[43575,43583],\"disallowed\"],[[43584,43597],\"valid\"],[[43598,43599],\"disallowed\"],[[43600,43609],\"valid\"],[[43610,43611],\"disallowed\"],[[43612,43615],\"valid\",[],\"NV8\"],[[43616,43638],\"valid\"],[[43639,43641],\"valid\",[],\"NV8\"],[[43642,43643],\"valid\"],[[43644,43647],\"valid\"],[[43648,43714],\"valid\"],[[43715,43738],\"disallowed\"],[[43739,43741],\"valid\"],[[43742,43743],\"valid\",[],\"NV8\"],[[43744,43759],\"valid\"],[[43760,43761],\"valid\",[],\"NV8\"],[[43762,43766],\"valid\"],[[43767,43776],\"disallowed\"],[[43777,43782],\"valid\"],[[43783,43784],\"disallowed\"],[[43785,43790],\"valid\"],[[43791,43792],\"disallowed\"],[[43793,43798],\"valid\"],[[43799,43807],\"disallowed\"],[[43808,43814],\"valid\"],[[43815,43815],\"disallowed\"],[[43816,43822],\"valid\"],[[43823,43823],\"disallowed\"],[[43824,43866],\"valid\"],[[43867,43867],\"valid\",[],\"NV8\"],[[43868,43868],\"mapped\",[42791]],[[43869,43869],\"mapped\",[43831]],[[43870,43870],\"mapped\",[619]],[[43871,43871],\"mapped\",[43858]],[[43872,43875],\"valid\"],[[43876,43877],\"valid\"],[[43878,43887],\"disallowed\"],[[43888,43888],\"mapped\",[5024]],[[43889,43889],\"mapped\",[5025]],[[43890,43890],\"mapped\",[5026]],[[43891,43891],\"mapped\",[5027]],[[43892,43892],\"mapped\",[5028]],[[43893,43893],\"mapped\",[5029]],[[43894,43894],\"mapped\",[5030]],[[43895,43895],\"mapped\",[5031]],[[43896,43896],\"mapped\",[5032]],[[43897,43897],\"mapped\",[5033]],[[43898,43898],\"mapped\",[5034]],[[43899,43899],\"mapped\",[5035]],[[43900,43900],\"mapped\",[5036]],[[43901,43901],\"mapped\",[5037]],[[43902,43902],\"mapped\",[5038]],[[43903,43903],\"mapped\",[5039]],[[43904,43904],\"mapped\",[5040]],[[43905,43905],\"mapped\",[5041]],[[43906,43906],\"mapped\",[5042]],[[43907,43907],\"mapped\",[5043]],[[43908,43908],\"mapped\",[5044]],[[43909,43909],\"mapped\",[5045]],[[43910,43910],\"mapped\",[5046]],[[43911,43911],\"mapped\",[5047]],[[43912,43912],\"mapped\",[5048]],[[43913,43913],\"mapped\",[5049]],[[43914,43914],\"mapped\",[5050]],[[43915,43915],\"mapped\",[5051]],[[43916,43916],\"mapped\",[5052]],[[43917,43917],\"mapped\",[5053]],[[43918,43918],\"mapped\",[5054]],[[43919,43919],\"mapped\",[5055]],[[43920,43920],\"mapped\",[5056]],[[43921,43921],\"mapped\",[5057]],[[43922,43922],\"mapped\",[5058]],[[43923,43923],\"mapped\",[5059]],[[43924,43924],\"mapped\",[5060]],[[43925,43925],\"mapped\",[5061]],[[43926,43926],\"mapped\",[5062]],[[43927,43927],\"mapped\",[5063]],[[43928,43928],\"mapped\",[5064]],[[43929,43929],\"mapped\",[5065]],[[43930,43930],\"mapped\",[5066]],[[43931,43931],\"mapped\",[5067]],[[43932,43932],\"mapped\",[5068]],[[43933,43933],\"mapped\",[5069]],[[43934,43934],\"mapped\",[5070]],[[43935,43935],\"mapped\",[5071]],[[43936,43936],\"mapped\",[5072]],[[43937,43937],\"mapped\",[5073]],[[43938,43938],\"mapped\",[5074]],[[43939,43939],\"mapped\",[5075]],[[43940,43940],\"mapped\",[5076]],[[43941,43941],\"mapped\",[5077]],[[43942,43942],\"mapped\",[5078]],[[43943,43943],\"mapped\",[5079]],[[43944,43944],\"mapped\",[5080]],[[43945,43945],\"mapped\",[5081]],[[43946,43946],\"mapped\",[5082]],[[43947,43947],\"mapped\",[5083]],[[43948,43948],\"mapped\",[5084]],[[43949,43949],\"mapped\",[5085]],[[43950,43950],\"mapped\",[5086]],[[43951,43951],\"mapped\",[5087]],[[43952,43952],\"mapped\",[5088]],[[43953,43953],\"mapped\",[5089]],[[43954,43954],\"mapped\",[5090]],[[43955,43955],\"mapped\",[5091]],[[43956,43956],\"mapped\",[5092]],[[43957,43957],\"mapped\",[5093]],[[43958,43958],\"mapped\",[5094]],[[43959,43959],\"mapped\",[5095]],[[43960,43960],\"mapped\",[5096]],[[43961,43961],\"mapped\",[5097]],[[43962,43962],\"mapped\",[5098]],[[43963,43963],\"mapped\",[5099]],[[43964,43964],\"mapped\",[5100]],[[43965,43965],\"mapped\",[5101]],[[43966,43966],\"mapped\",[5102]],[[43967,43967],\"mapped\",[5103]],[[43968,44010],\"valid\"],[[44011,44011],\"valid\",[],\"NV8\"],[[44012,44013],\"valid\"],[[44014,44015],\"disallowed\"],[[44016,44025],\"valid\"],[[44026,44031],\"disallowed\"],[[44032,55203],\"valid\"],[[55204,55215],\"disallowed\"],[[55216,55238],\"valid\",[],\"NV8\"],[[55239,55242],\"disallowed\"],[[55243,55291],\"valid\",[],\"NV8\"],[[55292,55295],\"disallowed\"],[[55296,57343],\"disallowed\"],[[57344,63743],\"disallowed\"],[[63744,63744],\"mapped\",[35912]],[[63745,63745],\"mapped\",[26356]],[[63746,63746],\"mapped\",[36554]],[[63747,63747],\"mapped\",[36040]],[[63748,63748],\"mapped\",[28369]],[[63749,63749],\"mapped\",[20018]],[[63750,63750],\"mapped\",[21477]],[[63751,63752],\"mapped\",[40860]],[[63753,63753],\"mapped\",[22865]],[[63754,63754],\"mapped\",[37329]],[[63755,63755],\"mapped\",[21895]],[[63756,63756],\"mapped\",[22856]],[[63757,63757],\"mapped\",[25078]],[[63758,63758],\"mapped\",[30313]],[[63759,63759],\"mapped\",[32645]],[[63760,63760],\"mapped\",[34367]],[[63761,63761],\"mapped\",[34746]],[[63762,63762],\"mapped\",[35064]],[[63763,63763],\"mapped\",[37007]],[[63764,63764],\"mapped\",[27138]],[[63765,63765],\"mapped\",[27931]],[[63766,63766],\"mapped\",[28889]],[[63767,63767],\"mapped\",[29662]],[[63768,63768],\"mapped\",[33853]],[[63769,63769],\"mapped\",[37226]],[[63770,63770],\"mapped\",[39409]],[[63771,63771],\"mapped\",[20098]],[[63772,63772],\"mapped\",[21365]],[[63773,63773],\"mapped\",[27396]],[[63774,63774],\"mapped\",[29211]],[[63775,63775],\"mapped\",[34349]],[[63776,63776],\"mapped\",[40478]],[[63777,63777],\"mapped\",[23888]],[[63778,63778],\"mapped\",[28651]],[[63779,63779],\"mapped\",[34253]],[[63780,63780],\"mapped\",[35172]],[[63781,63781],\"mapped\",[25289]],[[63782,63782],\"mapped\",[33240]],[[63783,63783],\"mapped\",[34847]],[[63784,63784],\"mapped\",[24266]],[[63785,63785],\"mapped\",[26391]],[[63786,63786],\"mapped\",[28010]],[[63787,63787],\"mapped\",[29436]],[[63788,63788],\"mapped\",[37070]],[[63789,63789],\"mapped\",[20358]],[[63790,63790],\"mapped\",[20919]],[[63791,63791],\"mapped\",[21214]],[[63792,63792],\"mapped\",[25796]],[[63793,63793],\"mapped\",[27347]],[[63794,63794],\"mapped\",[29200]],[[63795,63795],\"mapped\",[30439]],[[63796,63796],\"mapped\",[32769]],[[63797,63797],\"mapped\",[34310]],[[63798,63798],\"mapped\",[34396]],[[63799,63799],\"mapped\",[36335]],[[63800,63800],\"mapped\",[38706]],[[63801,63801],\"mapped\",[39791]],[[63802,63802],\"mapped\",[40442]],[[63803,63803],\"mapped\",[30860]],[[63804,63804],\"mapped\",[31103]],[[63805,63805],\"mapped\",[32160]],[[63806,63806],\"mapped\",[33737]],[[63807,63807],\"mapped\",[37636]],[[63808,63808],\"mapped\",[40575]],[[63809,63809],\"mapped\",[35542]],[[63810,63810],\"mapped\",[22751]],[[63811,63811],\"mapped\",[24324]],[[63812,63812],\"mapped\",[31840]],[[63813,63813],\"mapped\",[32894]],[[63814,63814],\"mapped\",[29282]],[[63815,63815],\"mapped\",[30922]],[[63816,63816],\"mapped\",[36034]],[[63817,63817],\"mapped\",[38647]],[[63818,63818],\"mapped\",[22744]],[[63819,63819],\"mapped\",[23650]],[[63820,63820],\"mapped\",[27155]],[[63821,63821],\"mapped\",[28122]],[[63822,63822],\"mapped\",[28431]],[[63823,63823],\"mapped\",[32047]],[[63824,63824],\"mapped\",[32311]],[[63825,63825],\"mapped\",[38475]],[[63826,63826],\"mapped\",[21202]],[[63827,63827],\"mapped\",[32907]],[[63828,63828],\"mapped\",[20956]],[[63829,63829],\"mapped\",[20940]],[[63830,63830],\"mapped\",[31260]],[[63831,63831],\"mapped\",[32190]],[[63832,63832],\"mapped\",[33777]],[[63833,63833],\"mapped\",[38517]],[[63834,63834],\"mapped\",[35712]],[[63835,63835],\"mapped\",[25295]],[[63836,63836],\"mapped\",[27138]],[[63837,63837],\"mapped\",[35582]],[[63838,63838],\"mapped\",[20025]],[[63839,63839],\"mapped\",[23527]],[[63840,63840],\"mapped\",[24594]],[[63841,63841],\"mapped\",[29575]],[[63842,63842],\"mapped\",[30064]],[[63843,63843],\"mapped\",[21271]],[[63844,63844],\"mapped\",[30971]],[[63845,63845],\"mapped\",[20415]],[[63846,63846],\"mapped\",[24489]],[[63847,63847],\"mapped\",[19981]],[[63848,63848],\"mapped\",[27852]],[[63849,63849],\"mapped\",[25976]],[[63850,63850],\"mapped\",[32034]],[[63851,63851],\"mapped\",[21443]],[[63852,63852],\"mapped\",[22622]],[[63853,63853],\"mapped\",[30465]],[[63854,63854],\"mapped\",[33865]],[[63855,63855],\"mapped\",[35498]],[[63856,63856],\"mapped\",[27578]],[[63857,63857],\"mapped\",[36784]],[[63858,63858],\"mapped\",[27784]],[[63859,63859],\"mapped\",[25342]],[[63860,63860],\"mapped\",[33509]],[[63861,63861],\"mapped\",[25504]],[[63862,63862],\"mapped\",[30053]],[[63863,63863],\"mapped\",[20142]],[[63864,63864],\"mapped\",[20841]],[[63865,63865],\"mapped\",[20937]],[[63866,63866],\"mapped\",[26753]],[[63867,63867],\"mapped\",[31975]],[[63868,63868],\"mapped\",[33391]],[[63869,63869],\"mapped\",[35538]],[[63870,63870],\"mapped\",[37327]],[[63871,63871],\"mapped\",[21237]],[[63872,63872],\"mapped\",[21570]],[[63873,63873],\"mapped\",[22899]],[[63874,63874],\"mapped\",[24300]],[[63875,63875],\"mapped\",[26053]],[[63876,63876],\"mapped\",[28670]],[[63877,63877],\"mapped\",[31018]],[[63878,63878],\"mapped\",[38317]],[[63879,63879],\"mapped\",[39530]],[[63880,63880],\"mapped\",[40599]],[[63881,63881],\"mapped\",[40654]],[[63882,63882],\"mapped\",[21147]],[[63883,63883],\"mapped\",[26310]],[[63884,63884],\"mapped\",[27511]],[[63885,63885],\"mapped\",[36706]],[[63886,63886],\"mapped\",[24180]],[[63887,63887],\"mapped\",[24976]],[[63888,63888],\"mapped\",[25088]],[[63889,63889],\"mapped\",[25754]],[[63890,63890],\"mapped\",[28451]],[[63891,63891],\"mapped\",[29001]],[[63892,63892],\"mapped\",[29833]],[[63893,63893],\"mapped\",[31178]],[[63894,63894],\"mapped\",[32244]],[[63895,63895],\"mapped\",[32879]],[[63896,63896],\"mapped\",[36646]],[[63897,63897],\"mapped\",[34030]],[[63898,63898],\"mapped\",[36899]],[[63899,63899],\"mapped\",[37706]],[[63900,63900],\"mapped\",[21015]],[[63901,63901],\"mapped\",[21155]],[[63902,63902],\"mapped\",[21693]],[[63903,63903],\"mapped\",[28872]],[[63904,63904],\"mapped\",[35010]],[[63905,63905],\"mapped\",[35498]],[[63906,63906],\"mapped\",[24265]],[[63907,63907],\"mapped\",[24565]],[[63908,63908],\"mapped\",[25467]],[[63909,63909],\"mapped\",[27566]],[[63910,63910],\"mapped\",[31806]],[[63911,63911],\"mapped\",[29557]],[[63912,63912],\"mapped\",[20196]],[[63913,63913],\"mapped\",[22265]],[[63914,63914],\"mapped\",[23527]],[[63915,63915],\"mapped\",[23994]],[[63916,63916],\"mapped\",[24604]],[[63917,63917],\"mapped\",[29618]],[[63918,63918],\"mapped\",[29801]],[[63919,63919],\"mapped\",[32666]],[[63920,63920],\"mapped\",[32838]],[[63921,63921],\"mapped\",[37428]],[[63922,63922],\"mapped\",[38646]],[[63923,63923],\"mapped\",[38728]],[[63924,63924],\"mapped\",[38936]],[[63925,63925],\"mapped\",[20363]],[[63926,63926],\"mapped\",[31150]],[[63927,63927],\"mapped\",[37300]],[[63928,63928],\"mapped\",[38584]],[[63929,63929],\"mapped\",[24801]],[[63930,63930],\"mapped\",[20102]],[[63931,63931],\"mapped\",[20698]],[[63932,63932],\"mapped\",[23534]],[[63933,63933],\"mapped\",[23615]],[[63934,63934],\"mapped\",[26009]],[[63935,63935],\"mapped\",[27138]],[[63936,63936],\"mapped\",[29134]],[[63937,63937],\"mapped\",[30274]],[[63938,63938],\"mapped\",[34044]],[[63939,63939],\"mapped\",[36988]],[[63940,63940],\"mapped\",[40845]],[[63941,63941],\"mapped\",[26248]],[[63942,63942],\"mapped\",[38446]],[[63943,63943],\"mapped\",[21129]],[[63944,63944],\"mapped\",[26491]],[[63945,63945],\"mapped\",[26611]],[[63946,63946],\"mapped\",[27969]],[[63947,63947],\"mapped\",[28316]],[[63948,63948],\"mapped\",[29705]],[[63949,63949],\"mapped\",[30041]],[[63950,63950],\"mapped\",[30827]],[[63951,63951],\"mapped\",[32016]],[[63952,63952],\"mapped\",[39006]],[[63953,63953],\"mapped\",[20845]],[[63954,63954],\"mapped\",[25134]],[[63955,63955],\"mapped\",[38520]],[[63956,63956],\"mapped\",[20523]],[[63957,63957],\"mapped\",[23833]],[[63958,63958],\"mapped\",[28138]],[[63959,63959],\"mapped\",[36650]],[[63960,63960],\"mapped\",[24459]],[[63961,63961],\"mapped\",[24900]],[[63962,63962],\"mapped\",[26647]],[[63963,63963],\"mapped\",[29575]],[[63964,63964],\"mapped\",[38534]],[[63965,63965],\"mapped\",[21033]],[[63966,63966],\"mapped\",[21519]],[[63967,63967],\"mapped\",[23653]],[[63968,63968],\"mapped\",[26131]],[[63969,63969],\"mapped\",[26446]],[[63970,63970],\"mapped\",[26792]],[[63971,63971],\"mapped\",[27877]],[[63972,63972],\"mapped\",[29702]],[[63973,63973],\"mapped\",[30178]],[[63974,63974],\"mapped\",[32633]],[[63975,63975],\"mapped\",[35023]],[[63976,63976],\"mapped\",[35041]],[[63977,63977],\"mapped\",[37324]],[[63978,63978],\"mapped\",[38626]],[[63979,63979],\"mapped\",[21311]],[[63980,63980],\"mapped\",[28346]],[[63981,63981],\"mapped\",[21533]],[[63982,63982],\"mapped\",[29136]],[[63983,63983],\"mapped\",[29848]],[[63984,63984],\"mapped\",[34298]],[[63985,63985],\"mapped\",[38563]],[[63986,63986],\"mapped\",[40023]],[[63987,63987],\"mapped\",[40607]],[[63988,63988],\"mapped\",[26519]],[[63989,63989],\"mapped\",[28107]],[[63990,63990],\"mapped\",[33256]],[[63991,63991],\"mapped\",[31435]],[[63992,63992],\"mapped\",[31520]],[[63993,63993],\"mapped\",[31890]],[[63994,63994],\"mapped\",[29376]],[[63995,63995],\"mapped\",[28825]],[[63996,63996],\"mapped\",[35672]],[[63997,63997],\"mapped\",[20160]],[[63998,63998],\"mapped\",[33590]],[[63999,63999],\"mapped\",[21050]],[[64000,64000],\"mapped\",[20999]],[[64001,64001],\"mapped\",[24230]],[[64002,64002],\"mapped\",[25299]],[[64003,64003],\"mapped\",[31958]],[[64004,64004],\"mapped\",[23429]],[[64005,64005],\"mapped\",[27934]],[[64006,64006],\"mapped\",[26292]],[[64007,64007],\"mapped\",[36667]],[[64008,64008],\"mapped\",[34892]],[[64009,64009],\"mapped\",[38477]],[[64010,64010],\"mapped\",[35211]],[[64011,64011],\"mapped\",[24275]],[[64012,64012],\"mapped\",[20800]],[[64013,64013],\"mapped\",[21952]],[[64014,64015],\"valid\"],[[64016,64016],\"mapped\",[22618]],[[64017,64017],\"valid\"],[[64018,64018],\"mapped\",[26228]],[[64019,64020],\"valid\"],[[64021,64021],\"mapped\",[20958]],[[64022,64022],\"mapped\",[29482]],[[64023,64023],\"mapped\",[30410]],[[64024,64024],\"mapped\",[31036]],[[64025,64025],\"mapped\",[31070]],[[64026,64026],\"mapped\",[31077]],[[64027,64027],\"mapped\",[31119]],[[64028,64028],\"mapped\",[38742]],[[64029,64029],\"mapped\",[31934]],[[64030,64030],\"mapped\",[32701]],[[64031,64031],\"valid\"],[[64032,64032],\"mapped\",[34322]],[[64033,64033],\"valid\"],[[64034,64034],\"mapped\",[35576]],[[64035,64036],\"valid\"],[[64037,64037],\"mapped\",[36920]],[[64038,64038],\"mapped\",[37117]],[[64039,64041],\"valid\"],[[64042,64042],\"mapped\",[39151]],[[64043,64043],\"mapped\",[39164]],[[64044,64044],\"mapped\",[39208]],[[64045,64045],\"mapped\",[40372]],[[64046,64046],\"mapped\",[37086]],[[64047,64047],\"mapped\",[38583]],[[64048,64048],\"mapped\",[20398]],[[64049,64049],\"mapped\",[20711]],[[64050,64050],\"mapped\",[20813]],[[64051,64051],\"mapped\",[21193]],[[64052,64052],\"mapped\",[21220]],[[64053,64053],\"mapped\",[21329]],[[64054,64054],\"mapped\",[21917]],[[64055,64055],\"mapped\",[22022]],[[64056,64056],\"mapped\",[22120]],[[64057,64057],\"mapped\",[22592]],[[64058,64058],\"mapped\",[22696]],[[64059,64059],\"mapped\",[23652]],[[64060,64060],\"mapped\",[23662]],[[64061,64061],\"mapped\",[24724]],[[64062,64062],\"mapped\",[24936]],[[64063,64063],\"mapped\",[24974]],[[64064,64064],\"mapped\",[25074]],[[64065,64065],\"mapped\",[25935]],[[64066,64066],\"mapped\",[26082]],[[64067,64067],\"mapped\",[26257]],[[64068,64068],\"mapped\",[26757]],[[64069,64069],\"mapped\",[28023]],[[64070,64070],\"mapped\",[28186]],[[64071,64071],\"mapped\",[28450]],[[64072,64072],\"mapped\",[29038]],[[64073,64073],\"mapped\",[29227]],[[64074,64074],\"mapped\",[29730]],[[64075,64075],\"mapped\",[30865]],[[64076,64076],\"mapped\",[31038]],[[64077,64077],\"mapped\",[31049]],[[64078,64078],\"mapped\",[31048]],[[64079,64079],\"mapped\",[31056]],[[64080,64080],\"mapped\",[31062]],[[64081,64081],\"mapped\",[31069]],[[64082,64082],\"mapped\",[31117]],[[64083,64083],\"mapped\",[31118]],[[64084,64084],\"mapped\",[31296]],[[64085,64085],\"mapped\",[31361]],[[64086,64086],\"mapped\",[31680]],[[64087,64087],\"mapped\",[32244]],[[64088,64088],\"mapped\",[32265]],[[64089,64089],\"mapped\",[32321]],[[64090,64090],\"mapped\",[32626]],[[64091,64091],\"mapped\",[32773]],[[64092,64092],\"mapped\",[33261]],[[64093,64094],\"mapped\",[33401]],[[64095,64095],\"mapped\",[33879]],[[64096,64096],\"mapped\",[35088]],[[64097,64097],\"mapped\",[35222]],[[64098,64098],\"mapped\",[35585]],[[64099,64099],\"mapped\",[35641]],[[64100,64100],\"mapped\",[36051]],[[64101,64101],\"mapped\",[36104]],[[64102,64102],\"mapped\",[36790]],[[64103,64103],\"mapped\",[36920]],[[64104,64104],\"mapped\",[38627]],[[64105,64105],\"mapped\",[38911]],[[64106,64106],\"mapped\",[38971]],[[64107,64107],\"mapped\",[24693]],[[64108,64108],\"mapped\",[148206]],[[64109,64109],\"mapped\",[33304]],[[64110,64111],\"disallowed\"],[[64112,64112],\"mapped\",[20006]],[[64113,64113],\"mapped\",[20917]],[[64114,64114],\"mapped\",[20840]],[[64115,64115],\"mapped\",[20352]],[[64116,64116],\"mapped\",[20805]],[[64117,64117],\"mapped\",[20864]],[[64118,64118],\"mapped\",[21191]],[[64119,64119],\"mapped\",[21242]],[[64120,64120],\"mapped\",[21917]],[[64121,64121],\"mapped\",[21845]],[[64122,64122],\"mapped\",[21913]],[[64123,64123],\"mapped\",[21986]],[[64124,64124],\"mapped\",[22618]],[[64125,64125],\"mapped\",[22707]],[[64126,64126],\"mapped\",[22852]],[[64127,64127],\"mapped\",[22868]],[[64128,64128],\"mapped\",[23138]],[[64129,64129],\"mapped\",[23336]],[[64130,64130],\"mapped\",[24274]],[[64131,64131],\"mapped\",[24281]],[[64132,64132],\"mapped\",[24425]],[[64133,64133],\"mapped\",[24493]],[[64134,64134],\"mapped\",[24792]],[[64135,64135],\"mapped\",[24910]],[[64136,64136],\"mapped\",[24840]],[[64137,64137],\"mapped\",[24974]],[[64138,64138],\"mapped\",[24928]],[[64139,64139],\"mapped\",[25074]],[[64140,64140],\"mapped\",[25140]],[[64141,64141],\"mapped\",[25540]],[[64142,64142],\"mapped\",[25628]],[[64143,64143],\"mapped\",[25682]],[[64144,64144],\"mapped\",[25942]],[[64145,64145],\"mapped\",[26228]],[[64146,64146],\"mapped\",[26391]],[[64147,64147],\"mapped\",[26395]],[[64148,64148],\"mapped\",[26454]],[[64149,64149],\"mapped\",[27513]],[[64150,64150],\"mapped\",[27578]],[[64151,64151],\"mapped\",[27969]],[[64152,64152],\"mapped\",[28379]],[[64153,64153],\"mapped\",[28363]],[[64154,64154],\"mapped\",[28450]],[[64155,64155],\"mapped\",[28702]],[[64156,64156],\"mapped\",[29038]],[[64157,64157],\"mapped\",[30631]],[[64158,64158],\"mapped\",[29237]],[[64159,64159],\"mapped\",[29359]],[[64160,64160],\"mapped\",[29482]],[[64161,64161],\"mapped\",[29809]],[[64162,64162],\"mapped\",[29958]],[[64163,64163],\"mapped\",[30011]],[[64164,64164],\"mapped\",[30237]],[[64165,64165],\"mapped\",[30239]],[[64166,64166],\"mapped\",[30410]],[[64167,64167],\"mapped\",[30427]],[[64168,64168],\"mapped\",[30452]],[[64169,64169],\"mapped\",[30538]],[[64170,64170],\"mapped\",[30528]],[[64171,64171],\"mapped\",[30924]],[[64172,64172],\"mapped\",[31409]],[[64173,64173],\"mapped\",[31680]],[[64174,64174],\"mapped\",[31867]],[[64175,64175],\"mapped\",[32091]],[[64176,64176],\"mapped\",[32244]],[[64177,64177],\"mapped\",[32574]],[[64178,64178],\"mapped\",[32773]],[[64179,64179],\"mapped\",[33618]],[[64180,64180],\"mapped\",[33775]],[[64181,64181],\"mapped\",[34681]],[[64182,64182],\"mapped\",[35137]],[[64183,64183],\"mapped\",[35206]],[[64184,64184],\"mapped\",[35222]],[[64185,64185],\"mapped\",[35519]],[[64186,64186],\"mapped\",[35576]],[[64187,64187],\"mapped\",[35531]],[[64188,64188],\"mapped\",[35585]],[[64189,64189],\"mapped\",[35582]],[[64190,64190],\"mapped\",[35565]],[[64191,64191],\"mapped\",[35641]],[[64192,64192],\"mapped\",[35722]],[[64193,64193],\"mapped\",[36104]],[[64194,64194],\"mapped\",[36664]],[[64195,64195],\"mapped\",[36978]],[[64196,64196],\"mapped\",[37273]],[[64197,64197],\"mapped\",[37494]],[[64198,64198],\"mapped\",[38524]],[[64199,64199],\"mapped\",[38627]],[[64200,64200],\"mapped\",[38742]],[[64201,64201],\"mapped\",[38875]],[[64202,64202],\"mapped\",[38911]],[[64203,64203],\"mapped\",[38923]],[[64204,64204],\"mapped\",[38971]],[[64205,64205],\"mapped\",[39698]],[[64206,64206],\"mapped\",[40860]],[[64207,64207],\"mapped\",[141386]],[[64208,64208],\"mapped\",[141380]],[[64209,64209],\"mapped\",[144341]],[[64210,64210],\"mapped\",[15261]],[[64211,64211],\"mapped\",[16408]],[[64212,64212],\"mapped\",[16441]],[[64213,64213],\"mapped\",[152137]],[[64214,64214],\"mapped\",[154832]],[[64215,64215],\"mapped\",[163539]],[[64216,64216],\"mapped\",[40771]],[[64217,64217],\"mapped\",[40846]],[[64218,64255],\"disallowed\"],[[64256,64256],\"mapped\",[102,102]],[[64257,64257],\"mapped\",[102,105]],[[64258,64258],\"mapped\",[102,108]],[[64259,64259],\"mapped\",[102,102,105]],[[64260,64260],\"mapped\",[102,102,108]],[[64261,64262],\"mapped\",[115,116]],[[64263,64274],\"disallowed\"],[[64275,64275],\"mapped\",[1396,1398]],[[64276,64276],\"mapped\",[1396,1381]],[[64277,64277],\"mapped\",[1396,1387]],[[64278,64278],\"mapped\",[1406,1398]],[[64279,64279],\"mapped\",[1396,1389]],[[64280,64284],\"disallowed\"],[[64285,64285],\"mapped\",[1497,1460]],[[64286,64286],\"valid\"],[[64287,64287],\"mapped\",[1522,1463]],[[64288,64288],\"mapped\",[1506]],[[64289,64289],\"mapped\",[1488]],[[64290,64290],\"mapped\",[1491]],[[64291,64291],\"mapped\",[1492]],[[64292,64292],\"mapped\",[1499]],[[64293,64293],\"mapped\",[1500]],[[64294,64294],\"mapped\",[1501]],[[64295,64295],\"mapped\",[1512]],[[64296,64296],\"mapped\",[1514]],[[64297,64297],\"disallowed_STD3_mapped\",[43]],[[64298,64298],\"mapped\",[1513,1473]],[[64299,64299],\"mapped\",[1513,1474]],[[64300,64300],\"mapped\",[1513,1468,1473]],[[64301,64301],\"mapped\",[1513,1468,1474]],[[64302,64302],\"mapped\",[1488,1463]],[[64303,64303],\"mapped\",[1488,1464]],[[64304,64304],\"mapped\",[1488,1468]],[[64305,64305],\"mapped\",[1489,1468]],[[64306,64306],\"mapped\",[1490,1468]],[[64307,64307],\"mapped\",[1491,1468]],[[64308,64308],\"mapped\",[1492,1468]],[[64309,64309],\"mapped\",[1493,1468]],[[64310,64310],\"mapped\",[1494,1468]],[[64311,64311],\"disallowed\"],[[64312,64312],\"mapped\",[1496,1468]],[[64313,64313],\"mapped\",[1497,1468]],[[64314,64314],\"mapped\",[1498,1468]],[[64315,64315],\"mapped\",[1499,1468]],[[64316,64316],\"mapped\",[1500,1468]],[[64317,64317],\"disallowed\"],[[64318,64318],\"mapped\",[1502,1468]],[[64319,64319],\"disallowed\"],[[64320,64320],\"mapped\",[1504,1468]],[[64321,64321],\"mapped\",[1505,1468]],[[64322,64322],\"disallowed\"],[[64323,64323],\"mapped\",[1507,1468]],[[64324,64324],\"mapped\",[1508,1468]],[[64325,64325],\"disallowed\"],[[64326,64326],\"mapped\",[1510,1468]],[[64327,64327],\"mapped\",[1511,1468]],[[64328,64328],\"mapped\",[1512,1468]],[[64329,64329],\"mapped\",[1513,1468]],[[64330,64330],\"mapped\",[1514,1468]],[[64331,64331],\"mapped\",[1493,1465]],[[64332,64332],\"mapped\",[1489,1471]],[[64333,64333],\"mapped\",[1499,1471]],[[64334,64334],\"mapped\",[1508,1471]],[[64335,64335],\"mapped\",[1488,1500]],[[64336,64337],\"mapped\",[1649]],[[64338,64341],\"mapped\",[1659]],[[64342,64345],\"mapped\",[1662]],[[64346,64349],\"mapped\",[1664]],[[64350,64353],\"mapped\",[1658]],[[64354,64357],\"mapped\",[1663]],[[64358,64361],\"mapped\",[1657]],[[64362,64365],\"mapped\",[1700]],[[64366,64369],\"mapped\",[1702]],[[64370,64373],\"mapped\",[1668]],[[64374,64377],\"mapped\",[1667]],[[64378,64381],\"mapped\",[1670]],[[64382,64385],\"mapped\",[1671]],[[64386,64387],\"mapped\",[1677]],[[64388,64389],\"mapped\",[1676]],[[64390,64391],\"mapped\",[1678]],[[64392,64393],\"mapped\",[1672]],[[64394,64395],\"mapped\",[1688]],[[64396,64397],\"mapped\",[1681]],[[64398,64401],\"mapped\",[1705]],[[64402,64405],\"mapped\",[1711]],[[64406,64409],\"mapped\",[1715]],[[64410,64413],\"mapped\",[1713]],[[64414,64415],\"mapped\",[1722]],[[64416,64419],\"mapped\",[1723]],[[64420,64421],\"mapped\",[1728]],[[64422,64425],\"mapped\",[1729]],[[64426,64429],\"mapped\",[1726]],[[64430,64431],\"mapped\",[1746]],[[64432,64433],\"mapped\",[1747]],[[64434,64449],\"valid\",[],\"NV8\"],[[64450,64466],\"disallowed\"],[[64467,64470],\"mapped\",[1709]],[[64471,64472],\"mapped\",[1735]],[[64473,64474],\"mapped\",[1734]],[[64475,64476],\"mapped\",[1736]],[[64477,64477],\"mapped\",[1735,1652]],[[64478,64479],\"mapped\",[1739]],[[64480,64481],\"mapped\",[1733]],[[64482,64483],\"mapped\",[1737]],[[64484,64487],\"mapped\",[1744]],[[64488,64489],\"mapped\",[1609]],[[64490,64491],\"mapped\",[1574,1575]],[[64492,64493],\"mapped\",[1574,1749]],[[64494,64495],\"mapped\",[1574,1608]],[[64496,64497],\"mapped\",[1574,1735]],[[64498,64499],\"mapped\",[1574,1734]],[[64500,64501],\"mapped\",[1574,1736]],[[64502,64504],\"mapped\",[1574,1744]],[[64505,64507],\"mapped\",[1574,1609]],[[64508,64511],\"mapped\",[1740]],[[64512,64512],\"mapped\",[1574,1580]],[[64513,64513],\"mapped\",[1574,1581]],[[64514,64514],\"mapped\",[1574,1605]],[[64515,64515],\"mapped\",[1574,1609]],[[64516,64516],\"mapped\",[1574,1610]],[[64517,64517],\"mapped\",[1576,1580]],[[64518,64518],\"mapped\",[1576,1581]],[[64519,64519],\"mapped\",[1576,1582]],[[64520,64520],\"mapped\",[1576,1605]],[[64521,64521],\"mapped\",[1576,1609]],[[64522,64522],\"mapped\",[1576,1610]],[[64523,64523],\"mapped\",[1578,1580]],[[64524,64524],\"mapped\",[1578,1581]],[[64525,64525],\"mapped\",[1578,1582]],[[64526,64526],\"mapped\",[1578,1605]],[[64527,64527],\"mapped\",[1578,1609]],[[64528,64528],\"mapped\",[1578,1610]],[[64529,64529],\"mapped\",[1579,1580]],[[64530,64530],\"mapped\",[1579,1605]],[[64531,64531],\"mapped\",[1579,1609]],[[64532,64532],\"mapped\",[1579,1610]],[[64533,64533],\"mapped\",[1580,1581]],[[64534,64534],\"mapped\",[1580,1605]],[[64535,64535],\"mapped\",[1581,1580]],[[64536,64536],\"mapped\",[1581,1605]],[[64537,64537],\"mapped\",[1582,1580]],[[64538,64538],\"mapped\",[1582,1581]],[[64539,64539],\"mapped\",[1582,1605]],[[64540,64540],\"mapped\",[1587,1580]],[[64541,64541],\"mapped\",[1587,1581]],[[64542,64542],\"mapped\",[1587,1582]],[[64543,64543],\"mapped\",[1587,1605]],[[64544,64544],\"mapped\",[1589,1581]],[[64545,64545],\"mapped\",[1589,1605]],[[64546,64546],\"mapped\",[1590,1580]],[[64547,64547],\"mapped\",[1590,1581]],[[64548,64548],\"mapped\",[1590,1582]],[[64549,64549],\"mapped\",[1590,1605]],[[64550,64550],\"mapped\",[1591,1581]],[[64551,64551],\"mapped\",[1591,1605]],[[64552,64552],\"mapped\",[1592,1605]],[[64553,64553],\"mapped\",[1593,1580]],[[64554,64554],\"mapped\",[1593,1605]],[[64555,64555],\"mapped\",[1594,1580]],[[64556,64556],\"mapped\",[1594,1605]],[[64557,64557],\"mapped\",[1601,1580]],[[64558,64558],\"mapped\",[1601,1581]],[[64559,64559],\"mapped\",[1601,1582]],[[64560,64560],\"mapped\",[1601,1605]],[[64561,64561],\"mapped\",[1601,1609]],[[64562,64562],\"mapped\",[1601,1610]],[[64563,64563],\"mapped\",[1602,1581]],[[64564,64564],\"mapped\",[1602,1605]],[[64565,64565],\"mapped\",[1602,1609]],[[64566,64566],\"mapped\",[1602,1610]],[[64567,64567],\"mapped\",[1603,1575]],[[64568,64568],\"mapped\",[1603,1580]],[[64569,64569],\"mapped\",[1603,1581]],[[64570,64570],\"mapped\",[1603,1582]],[[64571,64571],\"mapped\",[1603,1604]],[[64572,64572],\"mapped\",[1603,1605]],[[64573,64573],\"mapped\",[1603,1609]],[[64574,64574],\"mapped\",[1603,1610]],[[64575,64575],\"mapped\",[1604,1580]],[[64576,64576],\"mapped\",[1604,1581]],[[64577,64577],\"mapped\",[1604,1582]],[[64578,64578],\"mapped\",[1604,1605]],[[64579,64579],\"mapped\",[1604,1609]],[[64580,64580],\"mapped\",[1604,1610]],[[64581,64581],\"mapped\",[1605,1580]],[[64582,64582],\"mapped\",[1605,1581]],[[64583,64583],\"mapped\",[1605,1582]],[[64584,64584],\"mapped\",[1605,1605]],[[64585,64585],\"mapped\",[1605,1609]],[[64586,64586],\"mapped\",[1605,1610]],[[64587,64587],\"mapped\",[1606,1580]],[[64588,64588],\"mapped\",[1606,1581]],[[64589,64589],\"mapped\",[1606,1582]],[[64590,64590],\"mapped\",[1606,1605]],[[64591,64591],\"mapped\",[1606,1609]],[[64592,64592],\"mapped\",[1606,1610]],[[64593,64593],\"mapped\",[1607,1580]],[[64594,64594],\"mapped\",[1607,1605]],[[64595,64595],\"mapped\",[1607,1609]],[[64596,64596],\"mapped\",[1607,1610]],[[64597,64597],\"mapped\",[1610,1580]],[[64598,64598],\"mapped\",[1610,1581]],[[64599,64599],\"mapped\",[1610,1582]],[[64600,64600],\"mapped\",[1610,1605]],[[64601,64601],\"mapped\",[1610,1609]],[[64602,64602],\"mapped\",[1610,1610]],[[64603,64603],\"mapped\",[1584,1648]],[[64604,64604],\"mapped\",[1585,1648]],[[64605,64605],\"mapped\",[1609,1648]],[[64606,64606],\"disallowed_STD3_mapped\",[32,1612,1617]],[[64607,64607],\"disallowed_STD3_mapped\",[32,1613,1617]],[[64608,64608],\"disallowed_STD3_mapped\",[32,1614,1617]],[[64609,64609],\"disallowed_STD3_mapped\",[32,1615,1617]],[[64610,64610],\"disallowed_STD3_mapped\",[32,1616,1617]],[[64611,64611],\"disallowed_STD3_mapped\",[32,1617,1648]],[[64612,64612],\"mapped\",[1574,1585]],[[64613,64613],\"mapped\",[1574,1586]],[[64614,64614],\"mapped\",[1574,1605]],[[64615,64615],\"mapped\",[1574,1606]],[[64616,64616],\"mapped\",[1574,1609]],[[64617,64617],\"mapped\",[1574,1610]],[[64618,64618],\"mapped\",[1576,1585]],[[64619,64619],\"mapped\",[1576,1586]],[[64620,64620],\"mapped\",[1576,1605]],[[64621,64621],\"mapped\",[1576,1606]],[[64622,64622],\"mapped\",[1576,1609]],[[64623,64623],\"mapped\",[1576,1610]],[[64624,64624],\"mapped\",[1578,1585]],[[64625,64625],\"mapped\",[1578,1586]],[[64626,64626],\"mapped\",[1578,1605]],[[64627,64627],\"mapped\",[1578,1606]],[[64628,64628],\"mapped\",[1578,1609]],[[64629,64629],\"mapped\",[1578,1610]],[[64630,64630],\"mapped\",[1579,1585]],[[64631,64631],\"mapped\",[1579,1586]],[[64632,64632],\"mapped\",[1579,1605]],[[64633,64633],\"mapped\",[1579,1606]],[[64634,64634],\"mapped\",[1579,1609]],[[64635,64635],\"mapped\",[1579,1610]],[[64636,64636],\"mapped\",[1601,1609]],[[64637,64637],\"mapped\",[1601,1610]],[[64638,64638],\"mapped\",[1602,1609]],[[64639,64639],\"mapped\",[1602,1610]],[[64640,64640],\"mapped\",[1603,1575]],[[64641,64641],\"mapped\",[1603,1604]],[[64642,64642],\"mapped\",[1603,1605]],[[64643,64643],\"mapped\",[1603,1609]],[[64644,64644],\"mapped\",[1603,1610]],[[64645,64645],\"mapped\",[1604,1605]],[[64646,64646],\"mapped\",[1604,1609]],[[64647,64647],\"mapped\",[1604,1610]],[[64648,64648],\"mapped\",[1605,1575]],[[64649,64649],\"mapped\",[1605,1605]],[[64650,64650],\"mapped\",[1606,1585]],[[64651,64651],\"mapped\",[1606,1586]],[[64652,64652],\"mapped\",[1606,1605]],[[64653,64653],\"mapped\",[1606,1606]],[[64654,64654],\"mapped\",[1606,1609]],[[64655,64655],\"mapped\",[1606,1610]],[[64656,64656],\"mapped\",[1609,1648]],[[64657,64657],\"mapped\",[1610,1585]],[[64658,64658],\"mapped\",[1610,1586]],[[64659,64659],\"mapped\",[1610,1605]],[[64660,64660],\"mapped\",[1610,1606]],[[64661,64661],\"mapped\",[1610,1609]],[[64662,64662],\"mapped\",[1610,1610]],[[64663,64663],\"mapped\",[1574,1580]],[[64664,64664],\"mapped\",[1574,1581]],[[64665,64665],\"mapped\",[1574,1582]],[[64666,64666],\"mapped\",[1574,1605]],[[64667,64667],\"mapped\",[1574,1607]],[[64668,64668],\"mapped\",[1576,1580]],[[64669,64669],\"mapped\",[1576,1581]],[[64670,64670],\"mapped\",[1576,1582]],[[64671,64671],\"mapped\",[1576,1605]],[[64672,64672],\"mapped\",[1576,1607]],[[64673,64673],\"mapped\",[1578,1580]],[[64674,64674],\"mapped\",[1578,1581]],[[64675,64675],\"mapped\",[1578,1582]],[[64676,64676],\"mapped\",[1578,1605]],[[64677,64677],\"mapped\",[1578,1607]],[[64678,64678],\"mapped\",[1579,1605]],[[64679,64679],\"mapped\",[1580,1581]],[[64680,64680],\"mapped\",[1580,1605]],[[64681,64681],\"mapped\",[1581,1580]],[[64682,64682],\"mapped\",[1581,1605]],[[64683,64683],\"mapped\",[1582,1580]],[[64684,64684],\"mapped\",[1582,1605]],[[64685,64685],\"mapped\",[1587,1580]],[[64686,64686],\"mapped\",[1587,1581]],[[64687,64687],\"mapped\",[1587,1582]],[[64688,64688],\"mapped\",[1587,1605]],[[64689,64689],\"mapped\",[1589,1581]],[[64690,64690],\"mapped\",[1589,1582]],[[64691,64691],\"mapped\",[1589,1605]],[[64692,64692],\"mapped\",[1590,1580]],[[64693,64693],\"mapped\",[1590,1581]],[[64694,64694],\"mapped\",[1590,1582]],[[64695,64695],\"mapped\",[1590,1605]],[[64696,64696],\"mapped\",[1591,1581]],[[64697,64697],\"mapped\",[1592,1605]],[[64698,64698],\"mapped\",[1593,1580]],[[64699,64699],\"mapped\",[1593,1605]],[[64700,64700],\"mapped\",[1594,1580]],[[64701,64701],\"mapped\",[1594,1605]],[[64702,64702],\"mapped\",[1601,1580]],[[64703,64703],\"mapped\",[1601,1581]],[[64704,64704],\"mapped\",[1601,1582]],[[64705,64705],\"mapped\",[1601,1605]],[[64706,64706],\"mapped\",[1602,1581]],[[64707,64707],\"mapped\",[1602,1605]],[[64708,64708],\"mapped\",[1603,1580]],[[64709,64709],\"mapped\",[1603,1581]],[[64710,64710],\"mapped\",[1603,1582]],[[64711,64711],\"mapped\",[1603,1604]],[[64712,64712],\"mapped\",[1603,1605]],[[64713,64713],\"mapped\",[1604,1580]],[[64714,64714],\"mapped\",[1604,1581]],[[64715,64715],\"mapped\",[1604,1582]],[[64716,64716],\"mapped\",[1604,1605]],[[64717,64717],\"mapped\",[1604,1607]],[[64718,64718],\"mapped\",[1605,1580]],[[64719,64719],\"mapped\",[1605,1581]],[[64720,64720],\"mapped\",[1605,1582]],[[64721,64721],\"mapped\",[1605,1605]],[[64722,64722],\"mapped\",[1606,1580]],[[64723,64723],\"mapped\",[1606,1581]],[[64724,64724],\"mapped\",[1606,1582]],[[64725,64725],\"mapped\",[1606,1605]],[[64726,64726],\"mapped\",[1606,1607]],[[64727,64727],\"mapped\",[1607,1580]],[[64728,64728],\"mapped\",[1607,1605]],[[64729,64729],\"mapped\",[1607,1648]],[[64730,64730],\"mapped\",[1610,1580]],[[64731,64731],\"mapped\",[1610,1581]],[[64732,64732],\"mapped\",[1610,1582]],[[64733,64733],\"mapped\",[1610,1605]],[[64734,64734],\"mapped\",[1610,1607]],[[64735,64735],\"mapped\",[1574,1605]],[[64736,64736],\"mapped\",[1574,1607]],[[64737,64737],\"mapped\",[1576,1605]],[[64738,64738],\"mapped\",[1576,1607]],[[64739,64739],\"mapped\",[1578,1605]],[[64740,64740],\"mapped\",[1578,1607]],[[64741,64741],\"mapped\",[1579,1605]],[[64742,64742],\"mapped\",[1579,1607]],[[64743,64743],\"mapped\",[1587,1605]],[[64744,64744],\"mapped\",[1587,1607]],[[64745,64745],\"mapped\",[1588,1605]],[[64746,64746],\"mapped\",[1588,1607]],[[64747,64747],\"mapped\",[1603,1604]],[[64748,64748],\"mapped\",[1603,1605]],[[64749,64749],\"mapped\",[1604,1605]],[[64750,64750],\"mapped\",[1606,1605]],[[64751,64751],\"mapped\",[1606,1607]],[[64752,64752],\"mapped\",[1610,1605]],[[64753,64753],\"mapped\",[1610,1607]],[[64754,64754],\"mapped\",[1600,1614,1617]],[[64755,64755],\"mapped\",[1600,1615,1617]],[[64756,64756],\"mapped\",[1600,1616,1617]],[[64757,64757],\"mapped\",[1591,1609]],[[64758,64758],\"mapped\",[1591,1610]],[[64759,64759],\"mapped\",[1593,1609]],[[64760,64760],\"mapped\",[1593,1610]],[[64761,64761],\"mapped\",[1594,1609]],[[64762,64762],\"mapped\",[1594,1610]],[[64763,64763],\"mapped\",[1587,1609]],[[64764,64764],\"mapped\",[1587,1610]],[[64765,64765],\"mapped\",[1588,1609]],[[64766,64766],\"mapped\",[1588,1610]],[[64767,64767],\"mapped\",[1581,1609]],[[64768,64768],\"mapped\",[1581,1610]],[[64769,64769],\"mapped\",[1580,1609]],[[64770,64770],\"mapped\",[1580,1610]],[[64771,64771],\"mapped\",[1582,1609]],[[64772,64772],\"mapped\",[1582,1610]],[[64773,64773],\"mapped\",[1589,1609]],[[64774,64774],\"mapped\",[1589,1610]],[[64775,64775],\"mapped\",[1590,1609]],[[64776,64776],\"mapped\",[1590,1610]],[[64777,64777],\"mapped\",[1588,1580]],[[64778,64778],\"mapped\",[1588,1581]],[[64779,64779],\"mapped\",[1588,1582]],[[64780,64780],\"mapped\",[1588,1605]],[[64781,64781],\"mapped\",[1588,1585]],[[64782,64782],\"mapped\",[1587,1585]],[[64783,64783],\"mapped\",[1589,1585]],[[64784,64784],\"mapped\",[1590,1585]],[[64785,64785],\"mapped\",[1591,1609]],[[64786,64786],\"mapped\",[1591,1610]],[[64787,64787],\"mapped\",[1593,1609]],[[64788,64788],\"mapped\",[1593,1610]],[[64789,64789],\"mapped\",[1594,1609]],[[64790,64790],\"mapped\",[1594,1610]],[[64791,64791],\"mapped\",[1587,1609]],[[64792,64792],\"mapped\",[1587,1610]],[[64793,64793],\"mapped\",[1588,1609]],[[64794,64794],\"mapped\",[1588,1610]],[[64795,64795],\"mapped\",[1581,1609]],[[64796,64796],\"mapped\",[1581,1610]],[[64797,64797],\"mapped\",[1580,1609]],[[64798,64798],\"mapped\",[1580,1610]],[[64799,64799],\"mapped\",[1582,1609]],[[64800,64800],\"mapped\",[1582,1610]],[[64801,64801],\"mapped\",[1589,1609]],[[64802,64802],\"mapped\",[1589,1610]],[[64803,64803],\"mapped\",[1590,1609]],[[64804,64804],\"mapped\",[1590,1610]],[[64805,64805],\"mapped\",[1588,1580]],[[64806,64806],\"mapped\",[1588,1581]],[[64807,64807],\"mapped\",[1588,1582]],[[64808,64808],\"mapped\",[1588,1605]],[[64809,64809],\"mapped\",[1588,1585]],[[64810,64810],\"mapped\",[1587,1585]],[[64811,64811],\"mapped\",[1589,1585]],[[64812,64812],\"mapped\",[1590,1585]],[[64813,64813],\"mapped\",[1588,1580]],[[64814,64814],\"mapped\",[1588,1581]],[[64815,64815],\"mapped\",[1588,1582]],[[64816,64816],\"mapped\",[1588,1605]],[[64817,64817],\"mapped\",[1587,1607]],[[64818,64818],\"mapped\",[1588,1607]],[[64819,64819],\"mapped\",[1591,1605]],[[64820,64820],\"mapped\",[1587,1580]],[[64821,64821],\"mapped\",[1587,1581]],[[64822,64822],\"mapped\",[1587,1582]],[[64823,64823],\"mapped\",[1588,1580]],[[64824,64824],\"mapped\",[1588,1581]],[[64825,64825],\"mapped\",[1588,1582]],[[64826,64826],\"mapped\",[1591,1605]],[[64827,64827],\"mapped\",[1592,1605]],[[64828,64829],\"mapped\",[1575,1611]],[[64830,64831],\"valid\",[],\"NV8\"],[[64832,64847],\"disallowed\"],[[64848,64848],\"mapped\",[1578,1580,1605]],[[64849,64850],\"mapped\",[1578,1581,1580]],[[64851,64851],\"mapped\",[1578,1581,1605]],[[64852,64852],\"mapped\",[1578,1582,1605]],[[64853,64853],\"mapped\",[1578,1605,1580]],[[64854,64854],\"mapped\",[1578,1605,1581]],[[64855,64855],\"mapped\",[1578,1605,1582]],[[64856,64857],\"mapped\",[1580,1605,1581]],[[64858,64858],\"mapped\",[1581,1605,1610]],[[64859,64859],\"mapped\",[1581,1605,1609]],[[64860,64860],\"mapped\",[1587,1581,1580]],[[64861,64861],\"mapped\",[1587,1580,1581]],[[64862,64862],\"mapped\",[1587,1580,1609]],[[64863,64864],\"mapped\",[1587,1605,1581]],[[64865,64865],\"mapped\",[1587,1605,1580]],[[64866,64867],\"mapped\",[1587,1605,1605]],[[64868,64869],\"mapped\",[1589,1581,1581]],[[64870,64870],\"mapped\",[1589,1605,1605]],[[64871,64872],\"mapped\",[1588,1581,1605]],[[64873,64873],\"mapped\",[1588,1580,1610]],[[64874,64875],\"mapped\",[1588,1605,1582]],[[64876,64877],\"mapped\",[1588,1605,1605]],[[64878,64878],\"mapped\",[1590,1581,1609]],[[64879,64880],\"mapped\",[1590,1582,1605]],[[64881,64882],\"mapped\",[1591,1605,1581]],[[64883,64883],\"mapped\",[1591,1605,1605]],[[64884,64884],\"mapped\",[1591,1605,1610]],[[64885,64885],\"mapped\",[1593,1580,1605]],[[64886,64887],\"mapped\",[1593,1605,1605]],[[64888,64888],\"mapped\",[1593,1605,1609]],[[64889,64889],\"mapped\",[1594,1605,1605]],[[64890,64890],\"mapped\",[1594,1605,1610]],[[64891,64891],\"mapped\",[1594,1605,1609]],[[64892,64893],\"mapped\",[1601,1582,1605]],[[64894,64894],\"mapped\",[1602,1605,1581]],[[64895,64895],\"mapped\",[1602,1605,1605]],[[64896,64896],\"mapped\",[1604,1581,1605]],[[64897,64897],\"mapped\",[1604,1581,1610]],[[64898,64898],\"mapped\",[1604,1581,1609]],[[64899,64900],\"mapped\",[1604,1580,1580]],[[64901,64902],\"mapped\",[1604,1582,1605]],[[64903,64904],\"mapped\",[1604,1605,1581]],[[64905,64905],\"mapped\",[1605,1581,1580]],[[64906,64906],\"mapped\",[1605,1581,1605]],[[64907,64907],\"mapped\",[1605,1581,1610]],[[64908,64908],\"mapped\",[1605,1580,1581]],[[64909,64909],\"mapped\",[1605,1580,1605]],[[64910,64910],\"mapped\",[1605,1582,1580]],[[64911,64911],\"mapped\",[1605,1582,1605]],[[64912,64913],\"disallowed\"],[[64914,64914],\"mapped\",[1605,1580,1582]],[[64915,64915],\"mapped\",[1607,1605,1580]],[[64916,64916],\"mapped\",[1607,1605,1605]],[[64917,64917],\"mapped\",[1606,1581,1605]],[[64918,64918],\"mapped\",[1606,1581,1609]],[[64919,64920],\"mapped\",[1606,1580,1605]],[[64921,64921],\"mapped\",[1606,1580,1609]],[[64922,64922],\"mapped\",[1606,1605,1610]],[[64923,64923],\"mapped\",[1606,1605,1609]],[[64924,64925],\"mapped\",[1610,1605,1605]],[[64926,64926],\"mapped\",[1576,1582,1610]],[[64927,64927],\"mapped\",[1578,1580,1610]],[[64928,64928],\"mapped\",[1578,1580,1609]],[[64929,64929],\"mapped\",[1578,1582,1610]],[[64930,64930],\"mapped\",[1578,1582,1609]],[[64931,64931],\"mapped\",[1578,1605,1610]],[[64932,64932],\"mapped\",[1578,1605,1609]],[[64933,64933],\"mapped\",[1580,1605,1610]],[[64934,64934],\"mapped\",[1580,1581,1609]],[[64935,64935],\"mapped\",[1580,1605,1609]],[[64936,64936],\"mapped\",[1587,1582,1609]],[[64937,64937],\"mapped\",[1589,1581,1610]],[[64938,64938],\"mapped\",[1588,1581,1610]],[[64939,64939],\"mapped\",[1590,1581,1610]],[[64940,64940],\"mapped\",[1604,1580,1610]],[[64941,64941],\"mapped\",[1604,1605,1610]],[[64942,64942],\"mapped\",[1610,1581,1610]],[[64943,64943],\"mapped\",[1610,1580,1610]],[[64944,64944],\"mapped\",[1610,1605,1610]],[[64945,64945],\"mapped\",[1605,1605,1610]],[[64946,64946],\"mapped\",[1602,1605,1610]],[[64947,64947],\"mapped\",[1606,1581,1610]],[[64948,64948],\"mapped\",[1602,1605,1581]],[[64949,64949],\"mapped\",[1604,1581,1605]],[[64950,64950],\"mapped\",[1593,1605,1610]],[[64951,64951],\"mapped\",[1603,1605,1610]],[[64952,64952],\"mapped\",[1606,1580,1581]],[[64953,64953],\"mapped\",[1605,1582,1610]],[[64954,64954],\"mapped\",[1604,1580,1605]],[[64955,64955],\"mapped\",[1603,1605,1605]],[[64956,64956],\"mapped\",[1604,1580,1605]],[[64957,64957],\"mapped\",[1606,1580,1581]],[[64958,64958],\"mapped\",[1580,1581,1610]],[[64959,64959],\"mapped\",[1581,1580,1610]],[[64960,64960],\"mapped\",[1605,1580,1610]],[[64961,64961],\"mapped\",[1601,1605,1610]],[[64962,64962],\"mapped\",[1576,1581,1610]],[[64963,64963],\"mapped\",[1603,1605,1605]],[[64964,64964],\"mapped\",[1593,1580,1605]],[[64965,64965],\"mapped\",[1589,1605,1605]],[[64966,64966],\"mapped\",[1587,1582,1610]],[[64967,64967],\"mapped\",[1606,1580,1610]],[[64968,64975],\"disallowed\"],[[64976,65007],\"disallowed\"],[[65008,65008],\"mapped\",[1589,1604,1746]],[[65009,65009],\"mapped\",[1602,1604,1746]],[[65010,65010],\"mapped\",[1575,1604,1604,1607]],[[65011,65011],\"mapped\",[1575,1603,1576,1585]],[[65012,65012],\"mapped\",[1605,1581,1605,1583]],[[65013,65013],\"mapped\",[1589,1604,1593,1605]],[[65014,65014],\"mapped\",[1585,1587,1608,1604]],[[65015,65015],\"mapped\",[1593,1604,1610,1607]],[[65016,65016],\"mapped\",[1608,1587,1604,1605]],[[65017,65017],\"mapped\",[1589,1604,1609]],[[65018,65018],\"disallowed_STD3_mapped\",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],\"disallowed_STD3_mapped\",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],\"mapped\",[1585,1740,1575,1604]],[[65021,65021],\"valid\",[],\"NV8\"],[[65022,65023],\"disallowed\"],[[65024,65039],\"ignored\"],[[65040,65040],\"disallowed_STD3_mapped\",[44]],[[65041,65041],\"mapped\",[12289]],[[65042,65042],\"disallowed\"],[[65043,65043],\"disallowed_STD3_mapped\",[58]],[[65044,65044],\"disallowed_STD3_mapped\",[59]],[[65045,65045],\"disallowed_STD3_mapped\",[33]],[[65046,65046],\"disallowed_STD3_mapped\",[63]],[[65047,65047],\"mapped\",[12310]],[[65048,65048],\"mapped\",[12311]],[[65049,65049],\"disallowed\"],[[65050,65055],\"disallowed\"],[[65056,65059],\"valid\"],[[65060,65062],\"valid\"],[[65063,65069],\"valid\"],[[65070,65071],\"valid\"],[[65072,65072],\"disallowed\"],[[65073,65073],\"mapped\",[8212]],[[65074,65074],\"mapped\",[8211]],[[65075,65076],\"disallowed_STD3_mapped\",[95]],[[65077,65077],\"disallowed_STD3_mapped\",[40]],[[65078,65078],\"disallowed_STD3_mapped\",[41]],[[65079,65079],\"disallowed_STD3_mapped\",[123]],[[65080,65080],\"disallowed_STD3_mapped\",[125]],[[65081,65081],\"mapped\",[12308]],[[65082,65082],\"mapped\",[12309]],[[65083,65083],\"mapped\",[12304]],[[65084,65084],\"mapped\",[12305]],[[65085,65085],\"mapped\",[12298]],[[65086,65086],\"mapped\",[12299]],[[65087,65087],\"mapped\",[12296]],[[65088,65088],\"mapped\",[12297]],[[65089,65089],\"mapped\",[12300]],[[65090,65090],\"mapped\",[12301]],[[65091,65091],\"mapped\",[12302]],[[65092,65092],\"mapped\",[12303]],[[65093,65094],\"valid\",[],\"NV8\"],[[65095,65095],\"disallowed_STD3_mapped\",[91]],[[65096,65096],\"disallowed_STD3_mapped\",[93]],[[65097,65100],\"disallowed_STD3_mapped\",[32,773]],[[65101,65103],\"disallowed_STD3_mapped\",[95]],[[65104,65104],\"disallowed_STD3_mapped\",[44]],[[65105,65105],\"mapped\",[12289]],[[65106,65106],\"disallowed\"],[[65107,65107],\"disallowed\"],[[65108,65108],\"disallowed_STD3_mapped\",[59]],[[65109,65109],\"disallowed_STD3_mapped\",[58]],[[65110,65110],\"disallowed_STD3_mapped\",[63]],[[65111,65111],\"disallowed_STD3_mapped\",[33]],[[65112,65112],\"mapped\",[8212]],[[65113,65113],\"disallowed_STD3_mapped\",[40]],[[65114,65114],\"disallowed_STD3_mapped\",[41]],[[65115,65115],\"disallowed_STD3_mapped\",[123]],[[65116,65116],\"disallowed_STD3_mapped\",[125]],[[65117,65117],\"mapped\",[12308]],[[65118,65118],\"mapped\",[12309]],[[65119,65119],\"disallowed_STD3_mapped\",[35]],[[65120,65120],\"disallowed_STD3_mapped\",[38]],[[65121,65121],\"disallowed_STD3_mapped\",[42]],[[65122,65122],\"disallowed_STD3_mapped\",[43]],[[65123,65123],\"mapped\",[45]],[[65124,65124],\"disallowed_STD3_mapped\",[60]],[[65125,65125],\"disallowed_STD3_mapped\",[62]],[[65126,65126],\"disallowed_STD3_mapped\",[61]],[[65127,65127],\"disallowed\"],[[65128,65128],\"disallowed_STD3_mapped\",[92]],[[65129,65129],\"disallowed_STD3_mapped\",[36]],[[65130,65130],\"disallowed_STD3_mapped\",[37]],[[65131,65131],\"disallowed_STD3_mapped\",[64]],[[65132,65135],\"disallowed\"],[[65136,65136],\"disallowed_STD3_mapped\",[32,1611]],[[65137,65137],\"mapped\",[1600,1611]],[[65138,65138],\"disallowed_STD3_mapped\",[32,1612]],[[65139,65139],\"valid\"],[[65140,65140],\"disallowed_STD3_mapped\",[32,1613]],[[65141,65141],\"disallowed\"],[[65142,65142],\"disallowed_STD3_mapped\",[32,1614]],[[65143,65143],\"mapped\",[1600,1614]],[[65144,65144],\"disallowed_STD3_mapped\",[32,1615]],[[65145,65145],\"mapped\",[1600,1615]],[[65146,65146],\"disallowed_STD3_mapped\",[32,1616]],[[65147,65147],\"mapped\",[1600,1616]],[[65148,65148],\"disallowed_STD3_mapped\",[32,1617]],[[65149,65149],\"mapped\",[1600,1617]],[[65150,65150],\"disallowed_STD3_mapped\",[32,1618]],[[65151,65151],\"mapped\",[1600,1618]],[[65152,65152],\"mapped\",[1569]],[[65153,65154],\"mapped\",[1570]],[[65155,65156],\"mapped\",[1571]],[[65157,65158],\"mapped\",[1572]],[[65159,65160],\"mapped\",[1573]],[[65161,65164],\"mapped\",[1574]],[[65165,65166],\"mapped\",[1575]],[[65167,65170],\"mapped\",[1576]],[[65171,65172],\"mapped\",[1577]],[[65173,65176],\"mapped\",[1578]],[[65177,65180],\"mapped\",[1579]],[[65181,65184],\"mapped\",[1580]],[[65185,65188],\"mapped\",[1581]],[[65189,65192],\"mapped\",[1582]],[[65193,65194],\"mapped\",[1583]],[[65195,65196],\"mapped\",[1584]],[[65197,65198],\"mapped\",[1585]],[[65199,65200],\"mapped\",[1586]],[[65201,65204],\"mapped\",[1587]],[[65205,65208],\"mapped\",[1588]],[[65209,65212],\"mapped\",[1589]],[[65213,65216],\"mapped\",[1590]],[[65217,65220],\"mapped\",[1591]],[[65221,65224],\"mapped\",[1592]],[[65225,65228],\"mapped\",[1593]],[[65229,65232],\"mapped\",[1594]],[[65233,65236],\"mapped\",[1601]],[[65237,65240],\"mapped\",[1602]],[[65241,65244],\"mapped\",[1603]],[[65245,65248],\"mapped\",[1604]],[[65249,65252],\"mapped\",[1605]],[[65253,65256],\"mapped\",[1606]],[[65257,65260],\"mapped\",[1607]],[[65261,65262],\"mapped\",[1608]],[[65263,65264],\"mapped\",[1609]],[[65265,65268],\"mapped\",[1610]],[[65269,65270],\"mapped\",[1604,1570]],[[65271,65272],\"mapped\",[1604,1571]],[[65273,65274],\"mapped\",[1604,1573]],[[65275,65276],\"mapped\",[1604,1575]],[[65277,65278],\"disallowed\"],[[65279,65279],\"ignored\"],[[65280,65280],\"disallowed\"],[[65281,65281],\"disallowed_STD3_mapped\",[33]],[[65282,65282],\"disallowed_STD3_mapped\",[34]],[[65283,65283],\"disallowed_STD3_mapped\",[35]],[[65284,65284],\"disallowed_STD3_mapped\",[36]],[[65285,65285],\"disallowed_STD3_mapped\",[37]],[[65286,65286],\"disallowed_STD3_mapped\",[38]],[[65287,65287],\"disallowed_STD3_mapped\",[39]],[[65288,65288],\"disallowed_STD3_mapped\",[40]],[[65289,65289],\"disallowed_STD3_mapped\",[41]],[[65290,65290],\"disallowed_STD3_mapped\",[42]],[[65291,65291],\"disallowed_STD3_mapped\",[43]],[[65292,65292],\"disallowed_STD3_mapped\",[44]],[[65293,65293],\"mapped\",[45]],[[65294,65294],\"mapped\",[46]],[[65295,65295],\"disallowed_STD3_mapped\",[47]],[[65296,65296],\"mapped\",[48]],[[65297,65297],\"mapped\",[49]],[[65298,65298],\"mapped\",[50]],[[65299,65299],\"mapped\",[51]],[[65300,65300],\"mapped\",[52]],[[65301,65301],\"mapped\",[53]],[[65302,65302],\"mapped\",[54]],[[65303,65303],\"mapped\",[55]],[[65304,65304],\"mapped\",[56]],[[65305,65305],\"mapped\",[57]],[[65306,65306],\"disallowed_STD3_mapped\",[58]],[[65307,65307],\"disallowed_STD3_mapped\",[59]],[[65308,65308],\"disallowed_STD3_mapped\",[60]],[[65309,65309],\"disallowed_STD3_mapped\",[61]],[[65310,65310],\"disallowed_STD3_mapped\",[62]],[[65311,65311],\"disallowed_STD3_mapped\",[63]],[[65312,65312],\"disallowed_STD3_mapped\",[64]],[[65313,65313],\"mapped\",[97]],[[65314,65314],\"mapped\",[98]],[[65315,65315],\"mapped\",[99]],[[65316,65316],\"mapped\",[100]],[[65317,65317],\"mapped\",[101]],[[65318,65318],\"mapped\",[102]],[[65319,65319],\"mapped\",[103]],[[65320,65320],\"mapped\",[104]],[[65321,65321],\"mapped\",[105]],[[65322,65322],\"mapped\",[106]],[[65323,65323],\"mapped\",[107]],[[65324,65324],\"mapped\",[108]],[[65325,65325],\"mapped\",[109]],[[65326,65326],\"mapped\",[110]],[[65327,65327],\"mapped\",[111]],[[65328,65328],\"mapped\",[112]],[[65329,65329],\"mapped\",[113]],[[65330,65330],\"mapped\",[114]],[[65331,65331],\"mapped\",[115]],[[65332,65332],\"mapped\",[116]],[[65333,65333],\"mapped\",[117]],[[65334,65334],\"mapped\",[118]],[[65335,65335],\"mapped\",[119]],[[65336,65336],\"mapped\",[120]],[[65337,65337],\"mapped\",[121]],[[65338,65338],\"mapped\",[122]],[[65339,65339],\"disallowed_STD3_mapped\",[91]],[[65340,65340],\"disallowed_STD3_mapped\",[92]],[[65341,65341],\"disallowed_STD3_mapped\",[93]],[[65342,65342],\"disallowed_STD3_mapped\",[94]],[[65343,65343],\"disallowed_STD3_mapped\",[95]],[[65344,65344],\"disallowed_STD3_mapped\",[96]],[[65345,65345],\"mapped\",[97]],[[65346,65346],\"mapped\",[98]],[[65347,65347],\"mapped\",[99]],[[65348,65348],\"mapped\",[100]],[[65349,65349],\"mapped\",[101]],[[65350,65350],\"mapped\",[102]],[[65351,65351],\"mapped\",[103]],[[65352,65352],\"mapped\",[104]],[[65353,65353],\"mapped\",[105]],[[65354,65354],\"mapped\",[106]],[[65355,65355],\"mapped\",[107]],[[65356,65356],\"mapped\",[108]],[[65357,65357],\"mapped\",[109]],[[65358,65358],\"mapped\",[110]],[[65359,65359],\"mapped\",[111]],[[65360,65360],\"mapped\",[112]],[[65361,65361],\"mapped\",[113]],[[65362,65362],\"mapped\",[114]],[[65363,65363],\"mapped\",[115]],[[65364,65364],\"mapped\",[116]],[[65365,65365],\"mapped\",[117]],[[65366,65366],\"mapped\",[118]],[[65367,65367],\"mapped\",[119]],[[65368,65368],\"mapped\",[120]],[[65369,65369],\"mapped\",[121]],[[65370,65370],\"mapped\",[122]],[[65371,65371],\"disallowed_STD3_mapped\",[123]],[[65372,65372],\"disallowed_STD3_mapped\",[124]],[[65373,65373],\"disallowed_STD3_mapped\",[125]],[[65374,65374],\"disallowed_STD3_mapped\",[126]],[[65375,65375],\"mapped\",[10629]],[[65376,65376],\"mapped\",[10630]],[[65377,65377],\"mapped\",[46]],[[65378,65378],\"mapped\",[12300]],[[65379,65379],\"mapped\",[12301]],[[65380,65380],\"mapped\",[12289]],[[65381,65381],\"mapped\",[12539]],[[65382,65382],\"mapped\",[12530]],[[65383,65383],\"mapped\",[12449]],[[65384,65384],\"mapped\",[12451]],[[65385,65385],\"mapped\",[12453]],[[65386,65386],\"mapped\",[12455]],[[65387,65387],\"mapped\",[12457]],[[65388,65388],\"mapped\",[12515]],[[65389,65389],\"mapped\",[12517]],[[65390,65390],\"mapped\",[12519]],[[65391,65391],\"mapped\",[12483]],[[65392,65392],\"mapped\",[12540]],[[65393,65393],\"mapped\",[12450]],[[65394,65394],\"mapped\",[12452]],[[65395,65395],\"mapped\",[12454]],[[65396,65396],\"mapped\",[12456]],[[65397,65397],\"mapped\",[12458]],[[65398,65398],\"mapped\",[12459]],[[65399,65399],\"mapped\",[12461]],[[65400,65400],\"mapped\",[12463]],[[65401,65401],\"mapped\",[12465]],[[65402,65402],\"mapped\",[12467]],[[65403,65403],\"mapped\",[12469]],[[65404,65404],\"mapped\",[12471]],[[65405,65405],\"mapped\",[12473]],[[65406,65406],\"mapped\",[12475]],[[65407,65407],\"mapped\",[12477]],[[65408,65408],\"mapped\",[12479]],[[65409,65409],\"mapped\",[12481]],[[65410,65410],\"mapped\",[12484]],[[65411,65411],\"mapped\",[12486]],[[65412,65412],\"mapped\",[12488]],[[65413,65413],\"mapped\",[12490]],[[65414,65414],\"mapped\",[12491]],[[65415,65415],\"mapped\",[12492]],[[65416,65416],\"mapped\",[12493]],[[65417,65417],\"mapped\",[12494]],[[65418,65418],\"mapped\",[12495]],[[65419,65419],\"mapped\",[12498]],[[65420,65420],\"mapped\",[12501]],[[65421,65421],\"mapped\",[12504]],[[65422,65422],\"mapped\",[12507]],[[65423,65423],\"mapped\",[12510]],[[65424,65424],\"mapped\",[12511]],[[65425,65425],\"mapped\",[12512]],[[65426,65426],\"mapped\",[12513]],[[65427,65427],\"mapped\",[12514]],[[65428,65428],\"mapped\",[12516]],[[65429,65429],\"mapped\",[12518]],[[65430,65430],\"mapped\",[12520]],[[65431,65431],\"mapped\",[12521]],[[65432,65432],\"mapped\",[12522]],[[65433,65433],\"mapped\",[12523]],[[65434,65434],\"mapped\",[12524]],[[65435,65435],\"mapped\",[12525]],[[65436,65436],\"mapped\",[12527]],[[65437,65437],\"mapped\",[12531]],[[65438,65438],\"mapped\",[12441]],[[65439,65439],\"mapped\",[12442]],[[65440,65440],\"disallowed\"],[[65441,65441],\"mapped\",[4352]],[[65442,65442],\"mapped\",[4353]],[[65443,65443],\"mapped\",[4522]],[[65444,65444],\"mapped\",[4354]],[[65445,65445],\"mapped\",[4524]],[[65446,65446],\"mapped\",[4525]],[[65447,65447],\"mapped\",[4355]],[[65448,65448],\"mapped\",[4356]],[[65449,65449],\"mapped\",[4357]],[[65450,65450],\"mapped\",[4528]],[[65451,65451],\"mapped\",[4529]],[[65452,65452],\"mapped\",[4530]],[[65453,65453],\"mapped\",[4531]],[[65454,65454],\"mapped\",[4532]],[[65455,65455],\"mapped\",[4533]],[[65456,65456],\"mapped\",[4378]],[[65457,65457],\"mapped\",[4358]],[[65458,65458],\"mapped\",[4359]],[[65459,65459],\"mapped\",[4360]],[[65460,65460],\"mapped\",[4385]],[[65461,65461],\"mapped\",[4361]],[[65462,65462],\"mapped\",[4362]],[[65463,65463],\"mapped\",[4363]],[[65464,65464],\"mapped\",[4364]],[[65465,65465],\"mapped\",[4365]],[[65466,65466],\"mapped\",[4366]],[[65467,65467],\"mapped\",[4367]],[[65468,65468],\"mapped\",[4368]],[[65469,65469],\"mapped\",[4369]],[[65470,65470],\"mapped\",[4370]],[[65471,65473],\"disallowed\"],[[65474,65474],\"mapped\",[4449]],[[65475,65475],\"mapped\",[4450]],[[65476,65476],\"mapped\",[4451]],[[65477,65477],\"mapped\",[4452]],[[65478,65478],\"mapped\",[4453]],[[65479,65479],\"mapped\",[4454]],[[65480,65481],\"disallowed\"],[[65482,65482],\"mapped\",[4455]],[[65483,65483],\"mapped\",[4456]],[[65484,65484],\"mapped\",[4457]],[[65485,65485],\"mapped\",[4458]],[[65486,65486],\"mapped\",[4459]],[[65487,65487],\"mapped\",[4460]],[[65488,65489],\"disallowed\"],[[65490,65490],\"mapped\",[4461]],[[65491,65491],\"mapped\",[4462]],[[65492,65492],\"mapped\",[4463]],[[65493,65493],\"mapped\",[4464]],[[65494,65494],\"mapped\",[4465]],[[65495,65495],\"mapped\",[4466]],[[65496,65497],\"disallowed\"],[[65498,65498],\"mapped\",[4467]],[[65499,65499],\"mapped\",[4468]],[[65500,65500],\"mapped\",[4469]],[[65501,65503],\"disallowed\"],[[65504,65504],\"mapped\",[162]],[[65505,65505],\"mapped\",[163]],[[65506,65506],\"mapped\",[172]],[[65507,65507],\"disallowed_STD3_mapped\",[32,772]],[[65508,65508],\"mapped\",[166]],[[65509,65509],\"mapped\",[165]],[[65510,65510],\"mapped\",[8361]],[[65511,65511],\"disallowed\"],[[65512,65512],\"mapped\",[9474]],[[65513,65513],\"mapped\",[8592]],[[65514,65514],\"mapped\",[8593]],[[65515,65515],\"mapped\",[8594]],[[65516,65516],\"mapped\",[8595]],[[65517,65517],\"mapped\",[9632]],[[65518,65518],\"mapped\",[9675]],[[65519,65528],\"disallowed\"],[[65529,65531],\"disallowed\"],[[65532,65532],\"disallowed\"],[[65533,65533],\"disallowed\"],[[65534,65535],\"disallowed\"],[[65536,65547],\"valid\"],[[65548,65548],\"disallowed\"],[[65549,65574],\"valid\"],[[65575,65575],\"disallowed\"],[[65576,65594],\"valid\"],[[65595,65595],\"disallowed\"],[[65596,65597],\"valid\"],[[65598,65598],\"disallowed\"],[[65599,65613],\"valid\"],[[65614,65615],\"disallowed\"],[[65616,65629],\"valid\"],[[65630,65663],\"disallowed\"],[[65664,65786],\"valid\"],[[65787,65791],\"disallowed\"],[[65792,65794],\"valid\",[],\"NV8\"],[[65795,65798],\"disallowed\"],[[65799,65843],\"valid\",[],\"NV8\"],[[65844,65846],\"disallowed\"],[[65847,65855],\"valid\",[],\"NV8\"],[[65856,65930],\"valid\",[],\"NV8\"],[[65931,65932],\"valid\",[],\"NV8\"],[[65933,65935],\"disallowed\"],[[65936,65947],\"valid\",[],\"NV8\"],[[65948,65951],\"disallowed\"],[[65952,65952],\"valid\",[],\"NV8\"],[[65953,65999],\"disallowed\"],[[66000,66044],\"valid\",[],\"NV8\"],[[66045,66045],\"valid\"],[[66046,66175],\"disallowed\"],[[66176,66204],\"valid\"],[[66205,66207],\"disallowed\"],[[66208,66256],\"valid\"],[[66257,66271],\"disallowed\"],[[66272,66272],\"valid\"],[[66273,66299],\"valid\",[],\"NV8\"],[[66300,66303],\"disallowed\"],[[66304,66334],\"valid\"],[[66335,66335],\"valid\"],[[66336,66339],\"valid\",[],\"NV8\"],[[66340,66351],\"disallowed\"],[[66352,66368],\"valid\"],[[66369,66369],\"valid\",[],\"NV8\"],[[66370,66377],\"valid\"],[[66378,66378],\"valid\",[],\"NV8\"],[[66379,66383],\"disallowed\"],[[66384,66426],\"valid\"],[[66427,66431],\"disallowed\"],[[66432,66461],\"valid\"],[[66462,66462],\"disallowed\"],[[66463,66463],\"valid\",[],\"NV8\"],[[66464,66499],\"valid\"],[[66500,66503],\"disallowed\"],[[66504,66511],\"valid\"],[[66512,66517],\"valid\",[],\"NV8\"],[[66518,66559],\"disallowed\"],[[66560,66560],\"mapped\",[66600]],[[66561,66561],\"mapped\",[66601]],[[66562,66562],\"mapped\",[66602]],[[66563,66563],\"mapped\",[66603]],[[66564,66564],\"mapped\",[66604]],[[66565,66565],\"mapped\",[66605]],[[66566,66566],\"mapped\",[66606]],[[66567,66567],\"mapped\",[66607]],[[66568,66568],\"mapped\",[66608]],[[66569,66569],\"mapped\",[66609]],[[66570,66570],\"mapped\",[66610]],[[66571,66571],\"mapped\",[66611]],[[66572,66572],\"mapped\",[66612]],[[66573,66573],\"mapped\",[66613]],[[66574,66574],\"mapped\",[66614]],[[66575,66575],\"mapped\",[66615]],[[66576,66576],\"mapped\",[66616]],[[66577,66577],\"mapped\",[66617]],[[66578,66578],\"mapped\",[66618]],[[66579,66579],\"mapped\",[66619]],[[66580,66580],\"mapped\",[66620]],[[66581,66581],\"mapped\",[66621]],[[66582,66582],\"mapped\",[66622]],[[66583,66583],\"mapped\",[66623]],[[66584,66584],\"mapped\",[66624]],[[66585,66585],\"mapped\",[66625]],[[66586,66586],\"mapped\",[66626]],[[66587,66587],\"mapped\",[66627]],[[66588,66588],\"mapped\",[66628]],[[66589,66589],\"mapped\",[66629]],[[66590,66590],\"mapped\",[66630]],[[66591,66591],\"mapped\",[66631]],[[66592,66592],\"mapped\",[66632]],[[66593,66593],\"mapped\",[66633]],[[66594,66594],\"mapped\",[66634]],[[66595,66595],\"mapped\",[66635]],[[66596,66596],\"mapped\",[66636]],[[66597,66597],\"mapped\",[66637]],[[66598,66598],\"mapped\",[66638]],[[66599,66599],\"mapped\",[66639]],[[66600,66637],\"valid\"],[[66638,66717],\"valid\"],[[66718,66719],\"disallowed\"],[[66720,66729],\"valid\"],[[66730,66815],\"disallowed\"],[[66816,66855],\"valid\"],[[66856,66863],\"disallowed\"],[[66864,66915],\"valid\"],[[66916,66926],\"disallowed\"],[[66927,66927],\"valid\",[],\"NV8\"],[[66928,67071],\"disallowed\"],[[67072,67382],\"valid\"],[[67383,67391],\"disallowed\"],[[67392,67413],\"valid\"],[[67414,67423],\"disallowed\"],[[67424,67431],\"valid\"],[[67432,67583],\"disallowed\"],[[67584,67589],\"valid\"],[[67590,67591],\"disallowed\"],[[67592,67592],\"valid\"],[[67593,67593],\"disallowed\"],[[67594,67637],\"valid\"],[[67638,67638],\"disallowed\"],[[67639,67640],\"valid\"],[[67641,67643],\"disallowed\"],[[67644,67644],\"valid\"],[[67645,67646],\"disallowed\"],[[67647,67647],\"valid\"],[[67648,67669],\"valid\"],[[67670,67670],\"disallowed\"],[[67671,67679],\"valid\",[],\"NV8\"],[[67680,67702],\"valid\"],[[67703,67711],\"valid\",[],\"NV8\"],[[67712,67742],\"valid\"],[[67743,67750],\"disallowed\"],[[67751,67759],\"valid\",[],\"NV8\"],[[67760,67807],\"disallowed\"],[[67808,67826],\"valid\"],[[67827,67827],\"disallowed\"],[[67828,67829],\"valid\"],[[67830,67834],\"disallowed\"],[[67835,67839],\"valid\",[],\"NV8\"],[[67840,67861],\"valid\"],[[67862,67865],\"valid\",[],\"NV8\"],[[67866,67867],\"valid\",[],\"NV8\"],[[67868,67870],\"disallowed\"],[[67871,67871],\"valid\",[],\"NV8\"],[[67872,67897],\"valid\"],[[67898,67902],\"disallowed\"],[[67903,67903],\"valid\",[],\"NV8\"],[[67904,67967],\"disallowed\"],[[67968,68023],\"valid\"],[[68024,68027],\"disallowed\"],[[68028,68029],\"valid\",[],\"NV8\"],[[68030,68031],\"valid\"],[[68032,68047],\"valid\",[],\"NV8\"],[[68048,68049],\"disallowed\"],[[68050,68095],\"valid\",[],\"NV8\"],[[68096,68099],\"valid\"],[[68100,68100],\"disallowed\"],[[68101,68102],\"valid\"],[[68103,68107],\"disallowed\"],[[68108,68115],\"valid\"],[[68116,68116],\"disallowed\"],[[68117,68119],\"valid\"],[[68120,68120],\"disallowed\"],[[68121,68147],\"valid\"],[[68148,68151],\"disallowed\"],[[68152,68154],\"valid\"],[[68155,68158],\"disallowed\"],[[68159,68159],\"valid\"],[[68160,68167],\"valid\",[],\"NV8\"],[[68168,68175],\"disallowed\"],[[68176,68184],\"valid\",[],\"NV8\"],[[68185,68191],\"disallowed\"],[[68192,68220],\"valid\"],[[68221,68223],\"valid\",[],\"NV8\"],[[68224,68252],\"valid\"],[[68253,68255],\"valid\",[],\"NV8\"],[[68256,68287],\"disallowed\"],[[68288,68295],\"valid\"],[[68296,68296],\"valid\",[],\"NV8\"],[[68297,68326],\"valid\"],[[68327,68330],\"disallowed\"],[[68331,68342],\"valid\",[],\"NV8\"],[[68343,68351],\"disallowed\"],[[68352,68405],\"valid\"],[[68406,68408],\"disallowed\"],[[68409,68415],\"valid\",[],\"NV8\"],[[68416,68437],\"valid\"],[[68438,68439],\"disallowed\"],[[68440,68447],\"valid\",[],\"NV8\"],[[68448,68466],\"valid\"],[[68467,68471],\"disallowed\"],[[68472,68479],\"valid\",[],\"NV8\"],[[68480,68497],\"valid\"],[[68498,68504],\"disallowed\"],[[68505,68508],\"valid\",[],\"NV8\"],[[68509,68520],\"disallowed\"],[[68521,68527],\"valid\",[],\"NV8\"],[[68528,68607],\"disallowed\"],[[68608,68680],\"valid\"],[[68681,68735],\"disallowed\"],[[68736,68736],\"mapped\",[68800]],[[68737,68737],\"mapped\",[68801]],[[68738,68738],\"mapped\",[68802]],[[68739,68739],\"mapped\",[68803]],[[68740,68740],\"mapped\",[68804]],[[68741,68741],\"mapped\",[68805]],[[68742,68742],\"mapped\",[68806]],[[68743,68743],\"mapped\",[68807]],[[68744,68744],\"mapped\",[68808]],[[68745,68745],\"mapped\",[68809]],[[68746,68746],\"mapped\",[68810]],[[68747,68747],\"mapped\",[68811]],[[68748,68748],\"mapped\",[68812]],[[68749,68749],\"mapped\",[68813]],[[68750,68750],\"mapped\",[68814]],[[68751,68751],\"mapped\",[68815]],[[68752,68752],\"mapped\",[68816]],[[68753,68753],\"mapped\",[68817]],[[68754,68754],\"mapped\",[68818]],[[68755,68755],\"mapped\",[68819]],[[68756,68756],\"mapped\",[68820]],[[68757,68757],\"mapped\",[68821]],[[68758,68758],\"mapped\",[68822]],[[68759,68759],\"mapped\",[68823]],[[68760,68760],\"mapped\",[68824]],[[68761,68761],\"mapped\",[68825]],[[68762,68762],\"mapped\",[68826]],[[68763,68763],\"mapped\",[68827]],[[68764,68764],\"mapped\",[68828]],[[68765,68765],\"mapped\",[68829]],[[68766,68766],\"mapped\",[68830]],[[68767,68767],\"mapped\",[68831]],[[68768,68768],\"mapped\",[68832]],[[68769,68769],\"mapped\",[68833]],[[68770,68770],\"mapped\",[68834]],[[68771,68771],\"mapped\",[68835]],[[68772,68772],\"mapped\",[68836]],[[68773,68773],\"mapped\",[68837]],[[68774,68774],\"mapped\",[68838]],[[68775,68775],\"mapped\",[68839]],[[68776,68776],\"mapped\",[68840]],[[68777,68777],\"mapped\",[68841]],[[68778,68778],\"mapped\",[68842]],[[68779,68779],\"mapped\",[68843]],[[68780,68780],\"mapped\",[68844]],[[68781,68781],\"mapped\",[68845]],[[68782,68782],\"mapped\",[68846]],[[68783,68783],\"mapped\",[68847]],[[68784,68784],\"mapped\",[68848]],[[68785,68785],\"mapped\",[68849]],[[68786,68786],\"mapped\",[68850]],[[68787,68799],\"disallowed\"],[[68800,68850],\"valid\"],[[68851,68857],\"disallowed\"],[[68858,68863],\"valid\",[],\"NV8\"],[[68864,69215],\"disallowed\"],[[69216,69246],\"valid\",[],\"NV8\"],[[69247,69631],\"disallowed\"],[[69632,69702],\"valid\"],[[69703,69709],\"valid\",[],\"NV8\"],[[69710,69713],\"disallowed\"],[[69714,69733],\"valid\",[],\"NV8\"],[[69734,69743],\"valid\"],[[69744,69758],\"disallowed\"],[[69759,69759],\"valid\"],[[69760,69818],\"valid\"],[[69819,69820],\"valid\",[],\"NV8\"],[[69821,69821],\"disallowed\"],[[69822,69825],\"valid\",[],\"NV8\"],[[69826,69839],\"disallowed\"],[[69840,69864],\"valid\"],[[69865,69871],\"disallowed\"],[[69872,69881],\"valid\"],[[69882,69887],\"disallowed\"],[[69888,69940],\"valid\"],[[69941,69941],\"disallowed\"],[[69942,69951],\"valid\"],[[69952,69955],\"valid\",[],\"NV8\"],[[69956,69967],\"disallowed\"],[[69968,70003],\"valid\"],[[70004,70005],\"valid\",[],\"NV8\"],[[70006,70006],\"valid\"],[[70007,70015],\"disallowed\"],[[70016,70084],\"valid\"],[[70085,70088],\"valid\",[],\"NV8\"],[[70089,70089],\"valid\",[],\"NV8\"],[[70090,70092],\"valid\"],[[70093,70093],\"valid\",[],\"NV8\"],[[70094,70095],\"disallowed\"],[[70096,70105],\"valid\"],[[70106,70106],\"valid\"],[[70107,70107],\"valid\",[],\"NV8\"],[[70108,70108],\"valid\"],[[70109,70111],\"valid\",[],\"NV8\"],[[70112,70112],\"disallowed\"],[[70113,70132],\"valid\",[],\"NV8\"],[[70133,70143],\"disallowed\"],[[70144,70161],\"valid\"],[[70162,70162],\"disallowed\"],[[70163,70199],\"valid\"],[[70200,70205],\"valid\",[],\"NV8\"],[[70206,70271],\"disallowed\"],[[70272,70278],\"valid\"],[[70279,70279],\"disallowed\"],[[70280,70280],\"valid\"],[[70281,70281],\"disallowed\"],[[70282,70285],\"valid\"],[[70286,70286],\"disallowed\"],[[70287,70301],\"valid\"],[[70302,70302],\"disallowed\"],[[70303,70312],\"valid\"],[[70313,70313],\"valid\",[],\"NV8\"],[[70314,70319],\"disallowed\"],[[70320,70378],\"valid\"],[[70379,70383],\"disallowed\"],[[70384,70393],\"valid\"],[[70394,70399],\"disallowed\"],[[70400,70400],\"valid\"],[[70401,70403],\"valid\"],[[70404,70404],\"disallowed\"],[[70405,70412],\"valid\"],[[70413,70414],\"disallowed\"],[[70415,70416],\"valid\"],[[70417,70418],\"disallowed\"],[[70419,70440],\"valid\"],[[70441,70441],\"disallowed\"],[[70442,70448],\"valid\"],[[70449,70449],\"disallowed\"],[[70450,70451],\"valid\"],[[70452,70452],\"disallowed\"],[[70453,70457],\"valid\"],[[70458,70459],\"disallowed\"],[[70460,70468],\"valid\"],[[70469,70470],\"disallowed\"],[[70471,70472],\"valid\"],[[70473,70474],\"disallowed\"],[[70475,70477],\"valid\"],[[70478,70479],\"disallowed\"],[[70480,70480],\"valid\"],[[70481,70486],\"disallowed\"],[[70487,70487],\"valid\"],[[70488,70492],\"disallowed\"],[[70493,70499],\"valid\"],[[70500,70501],\"disallowed\"],[[70502,70508],\"valid\"],[[70509,70511],\"disallowed\"],[[70512,70516],\"valid\"],[[70517,70783],\"disallowed\"],[[70784,70853],\"valid\"],[[70854,70854],\"valid\",[],\"NV8\"],[[70855,70855],\"valid\"],[[70856,70863],\"disallowed\"],[[70864,70873],\"valid\"],[[70874,71039],\"disallowed\"],[[71040,71093],\"valid\"],[[71094,71095],\"disallowed\"],[[71096,71104],\"valid\"],[[71105,71113],\"valid\",[],\"NV8\"],[[71114,71127],\"valid\",[],\"NV8\"],[[71128,71133],\"valid\"],[[71134,71167],\"disallowed\"],[[71168,71232],\"valid\"],[[71233,71235],\"valid\",[],\"NV8\"],[[71236,71236],\"valid\"],[[71237,71247],\"disallowed\"],[[71248,71257],\"valid\"],[[71258,71295],\"disallowed\"],[[71296,71351],\"valid\"],[[71352,71359],\"disallowed\"],[[71360,71369],\"valid\"],[[71370,71423],\"disallowed\"],[[71424,71449],\"valid\"],[[71450,71452],\"disallowed\"],[[71453,71467],\"valid\"],[[71468,71471],\"disallowed\"],[[71472,71481],\"valid\"],[[71482,71487],\"valid\",[],\"NV8\"],[[71488,71839],\"disallowed\"],[[71840,71840],\"mapped\",[71872]],[[71841,71841],\"mapped\",[71873]],[[71842,71842],\"mapped\",[71874]],[[71843,71843],\"mapped\",[71875]],[[71844,71844],\"mapped\",[71876]],[[71845,71845],\"mapped\",[71877]],[[71846,71846],\"mapped\",[71878]],[[71847,71847],\"mapped\",[71879]],[[71848,71848],\"mapped\",[71880]],[[71849,71849],\"mapped\",[71881]],[[71850,71850],\"mapped\",[71882]],[[71851,71851],\"mapped\",[71883]],[[71852,71852],\"mapped\",[71884]],[[71853,71853],\"mapped\",[71885]],[[71854,71854],\"mapped\",[71886]],[[71855,71855],\"mapped\",[71887]],[[71856,71856],\"mapped\",[71888]],[[71857,71857],\"mapped\",[71889]],[[71858,71858],\"mapped\",[71890]],[[71859,71859],\"mapped\",[71891]],[[71860,71860],\"mapped\",[71892]],[[71861,71861],\"mapped\",[71893]],[[71862,71862],\"mapped\",[71894]],[[71863,71863],\"mapped\",[71895]],[[71864,71864],\"mapped\",[71896]],[[71865,71865],\"mapped\",[71897]],[[71866,71866],\"mapped\",[71898]],[[71867,71867],\"mapped\",[71899]],[[71868,71868],\"mapped\",[71900]],[[71869,71869],\"mapped\",[71901]],[[71870,71870],\"mapped\",[71902]],[[71871,71871],\"mapped\",[71903]],[[71872,71913],\"valid\"],[[71914,71922],\"valid\",[],\"NV8\"],[[71923,71934],\"disallowed\"],[[71935,71935],\"valid\"],[[71936,72383],\"disallowed\"],[[72384,72440],\"valid\"],[[72441,73727],\"disallowed\"],[[73728,74606],\"valid\"],[[74607,74648],\"valid\"],[[74649,74649],\"valid\"],[[74650,74751],\"disallowed\"],[[74752,74850],\"valid\",[],\"NV8\"],[[74851,74862],\"valid\",[],\"NV8\"],[[74863,74863],\"disallowed\"],[[74864,74867],\"valid\",[],\"NV8\"],[[74868,74868],\"valid\",[],\"NV8\"],[[74869,74879],\"disallowed\"],[[74880,75075],\"valid\"],[[75076,77823],\"disallowed\"],[[77824,78894],\"valid\"],[[78895,82943],\"disallowed\"],[[82944,83526],\"valid\"],[[83527,92159],\"disallowed\"],[[92160,92728],\"valid\"],[[92729,92735],\"disallowed\"],[[92736,92766],\"valid\"],[[92767,92767],\"disallowed\"],[[92768,92777],\"valid\"],[[92778,92781],\"disallowed\"],[[92782,92783],\"valid\",[],\"NV8\"],[[92784,92879],\"disallowed\"],[[92880,92909],\"valid\"],[[92910,92911],\"disallowed\"],[[92912,92916],\"valid\"],[[92917,92917],\"valid\",[],\"NV8\"],[[92918,92927],\"disallowed\"],[[92928,92982],\"valid\"],[[92983,92991],\"valid\",[],\"NV8\"],[[92992,92995],\"valid\"],[[92996,92997],\"valid\",[],\"NV8\"],[[92998,93007],\"disallowed\"],[[93008,93017],\"valid\"],[[93018,93018],\"disallowed\"],[[93019,93025],\"valid\",[],\"NV8\"],[[93026,93026],\"disallowed\"],[[93027,93047],\"valid\"],[[93048,93052],\"disallowed\"],[[93053,93071],\"valid\"],[[93072,93951],\"disallowed\"],[[93952,94020],\"valid\"],[[94021,94031],\"disallowed\"],[[94032,94078],\"valid\"],[[94079,94094],\"disallowed\"],[[94095,94111],\"valid\"],[[94112,110591],\"disallowed\"],[[110592,110593],\"valid\"],[[110594,113663],\"disallowed\"],[[113664,113770],\"valid\"],[[113771,113775],\"disallowed\"],[[113776,113788],\"valid\"],[[113789,113791],\"disallowed\"],[[113792,113800],\"valid\"],[[113801,113807],\"disallowed\"],[[113808,113817],\"valid\"],[[113818,113819],\"disallowed\"],[[113820,113820],\"valid\",[],\"NV8\"],[[113821,113822],\"valid\"],[[113823,113823],\"valid\",[],\"NV8\"],[[113824,113827],\"ignored\"],[[113828,118783],\"disallowed\"],[[118784,119029],\"valid\",[],\"NV8\"],[[119030,119039],\"disallowed\"],[[119040,119078],\"valid\",[],\"NV8\"],[[119079,119080],\"disallowed\"],[[119081,119081],\"valid\",[],\"NV8\"],[[119082,119133],\"valid\",[],\"NV8\"],[[119134,119134],\"mapped\",[119127,119141]],[[119135,119135],\"mapped\",[119128,119141]],[[119136,119136],\"mapped\",[119128,119141,119150]],[[119137,119137],\"mapped\",[119128,119141,119151]],[[119138,119138],\"mapped\",[119128,119141,119152]],[[119139,119139],\"mapped\",[119128,119141,119153]],[[119140,119140],\"mapped\",[119128,119141,119154]],[[119141,119154],\"valid\",[],\"NV8\"],[[119155,119162],\"disallowed\"],[[119163,119226],\"valid\",[],\"NV8\"],[[119227,119227],\"mapped\",[119225,119141]],[[119228,119228],\"mapped\",[119226,119141]],[[119229,119229],\"mapped\",[119225,119141,119150]],[[119230,119230],\"mapped\",[119226,119141,119150]],[[119231,119231],\"mapped\",[119225,119141,119151]],[[119232,119232],\"mapped\",[119226,119141,119151]],[[119233,119261],\"valid\",[],\"NV8\"],[[119262,119272],\"valid\",[],\"NV8\"],[[119273,119295],\"disallowed\"],[[119296,119365],\"valid\",[],\"NV8\"],[[119366,119551],\"disallowed\"],[[119552,119638],\"valid\",[],\"NV8\"],[[119639,119647],\"disallowed\"],[[119648,119665],\"valid\",[],\"NV8\"],[[119666,119807],\"disallowed\"],[[119808,119808],\"mapped\",[97]],[[119809,119809],\"mapped\",[98]],[[119810,119810],\"mapped\",[99]],[[119811,119811],\"mapped\",[100]],[[119812,119812],\"mapped\",[101]],[[119813,119813],\"mapped\",[102]],[[119814,119814],\"mapped\",[103]],[[119815,119815],\"mapped\",[104]],[[119816,119816],\"mapped\",[105]],[[119817,119817],\"mapped\",[106]],[[119818,119818],\"mapped\",[107]],[[119819,119819],\"mapped\",[108]],[[119820,119820],\"mapped\",[109]],[[119821,119821],\"mapped\",[110]],[[119822,119822],\"mapped\",[111]],[[119823,119823],\"mapped\",[112]],[[119824,119824],\"mapped\",[113]],[[119825,119825],\"mapped\",[114]],[[119826,119826],\"mapped\",[115]],[[119827,119827],\"mapped\",[116]],[[119828,119828],\"mapped\",[117]],[[119829,119829],\"mapped\",[118]],[[119830,119830],\"mapped\",[119]],[[119831,119831],\"mapped\",[120]],[[119832,119832],\"mapped\",[121]],[[119833,119833],\"mapped\",[122]],[[119834,119834],\"mapped\",[97]],[[119835,119835],\"mapped\",[98]],[[119836,119836],\"mapped\",[99]],[[119837,119837],\"mapped\",[100]],[[119838,119838],\"mapped\",[101]],[[119839,119839],\"mapped\",[102]],[[119840,119840],\"mapped\",[103]],[[119841,119841],\"mapped\",[104]],[[119842,119842],\"mapped\",[105]],[[119843,119843],\"mapped\",[106]],[[119844,119844],\"mapped\",[107]],[[119845,119845],\"mapped\",[108]],[[119846,119846],\"mapped\",[109]],[[119847,119847],\"mapped\",[110]],[[119848,119848],\"mapped\",[111]],[[119849,119849],\"mapped\",[112]],[[119850,119850],\"mapped\",[113]],[[119851,119851],\"mapped\",[114]],[[119852,119852],\"mapped\",[115]],[[119853,119853],\"mapped\",[116]],[[119854,119854],\"mapped\",[117]],[[119855,119855],\"mapped\",[118]],[[119856,119856],\"mapped\",[119]],[[119857,119857],\"mapped\",[120]],[[119858,119858],\"mapped\",[121]],[[119859,119859],\"mapped\",[122]],[[119860,119860],\"mapped\",[97]],[[119861,119861],\"mapped\",[98]],[[119862,119862],\"mapped\",[99]],[[119863,119863],\"mapped\",[100]],[[119864,119864],\"mapped\",[101]],[[119865,119865],\"mapped\",[102]],[[119866,119866],\"mapped\",[103]],[[119867,119867],\"mapped\",[104]],[[119868,119868],\"mapped\",[105]],[[119869,119869],\"mapped\",[106]],[[119870,119870],\"mapped\",[107]],[[119871,119871],\"mapped\",[108]],[[119872,119872],\"mapped\",[109]],[[119873,119873],\"mapped\",[110]],[[119874,119874],\"mapped\",[111]],[[119875,119875],\"mapped\",[112]],[[119876,119876],\"mapped\",[113]],[[119877,119877],\"mapped\",[114]],[[119878,119878],\"mapped\",[115]],[[119879,119879],\"mapped\",[116]],[[119880,119880],\"mapped\",[117]],[[119881,119881],\"mapped\",[118]],[[119882,119882],\"mapped\",[119]],[[119883,119883],\"mapped\",[120]],[[119884,119884],\"mapped\",[121]],[[119885,119885],\"mapped\",[122]],[[119886,119886],\"mapped\",[97]],[[119887,119887],\"mapped\",[98]],[[119888,119888],\"mapped\",[99]],[[119889,119889],\"mapped\",[100]],[[119890,119890],\"mapped\",[101]],[[119891,119891],\"mapped\",[102]],[[119892,119892],\"mapped\",[103]],[[119893,119893],\"disallowed\"],[[119894,119894],\"mapped\",[105]],[[119895,119895],\"mapped\",[106]],[[119896,119896],\"mapped\",[107]],[[119897,119897],\"mapped\",[108]],[[119898,119898],\"mapped\",[109]],[[119899,119899],\"mapped\",[110]],[[119900,119900],\"mapped\",[111]],[[119901,119901],\"mapped\",[112]],[[119902,119902],\"mapped\",[113]],[[119903,119903],\"mapped\",[114]],[[119904,119904],\"mapped\",[115]],[[119905,119905],\"mapped\",[116]],[[119906,119906],\"mapped\",[117]],[[119907,119907],\"mapped\",[118]],[[119908,119908],\"mapped\",[119]],[[119909,119909],\"mapped\",[120]],[[119910,119910],\"mapped\",[121]],[[119911,119911],\"mapped\",[122]],[[119912,119912],\"mapped\",[97]],[[119913,119913],\"mapped\",[98]],[[119914,119914],\"mapped\",[99]],[[119915,119915],\"mapped\",[100]],[[119916,119916],\"mapped\",[101]],[[119917,119917],\"mapped\",[102]],[[119918,119918],\"mapped\",[103]],[[119919,119919],\"mapped\",[104]],[[119920,119920],\"mapped\",[105]],[[119921,119921],\"mapped\",[106]],[[119922,119922],\"mapped\",[107]],[[119923,119923],\"mapped\",[108]],[[119924,119924],\"mapped\",[109]],[[119925,119925],\"mapped\",[110]],[[119926,119926],\"mapped\",[111]],[[119927,119927],\"mapped\",[112]],[[119928,119928],\"mapped\",[113]],[[119929,119929],\"mapped\",[114]],[[119930,119930],\"mapped\",[115]],[[119931,119931],\"mapped\",[116]],[[119932,119932],\"mapped\",[117]],[[119933,119933],\"mapped\",[118]],[[119934,119934],\"mapped\",[119]],[[119935,119935],\"mapped\",[120]],[[119936,119936],\"mapped\",[121]],[[119937,119937],\"mapped\",[122]],[[119938,119938],\"mapped\",[97]],[[119939,119939],\"mapped\",[98]],[[119940,119940],\"mapped\",[99]],[[119941,119941],\"mapped\",[100]],[[119942,119942],\"mapped\",[101]],[[119943,119943],\"mapped\",[102]],[[119944,119944],\"mapped\",[103]],[[119945,119945],\"mapped\",[104]],[[119946,119946],\"mapped\",[105]],[[119947,119947],\"mapped\",[106]],[[119948,119948],\"mapped\",[107]],[[119949,119949],\"mapped\",[108]],[[119950,119950],\"mapped\",[109]],[[119951,119951],\"mapped\",[110]],[[119952,119952],\"mapped\",[111]],[[119953,119953],\"mapped\",[112]],[[119954,119954],\"mapped\",[113]],[[119955,119955],\"mapped\",[114]],[[119956,119956],\"mapped\",[115]],[[119957,119957],\"mapped\",[116]],[[119958,119958],\"mapped\",[117]],[[119959,119959],\"mapped\",[118]],[[119960,119960],\"mapped\",[119]],[[119961,119961],\"mapped\",[120]],[[119962,119962],\"mapped\",[121]],[[119963,119963],\"mapped\",[122]],[[119964,119964],\"mapped\",[97]],[[119965,119965],\"disallowed\"],[[119966,119966],\"mapped\",[99]],[[119967,119967],\"mapped\",[100]],[[119968,119969],\"disallowed\"],[[119970,119970],\"mapped\",[103]],[[119971,119972],\"disallowed\"],[[119973,119973],\"mapped\",[106]],[[119974,119974],\"mapped\",[107]],[[119975,119976],\"disallowed\"],[[119977,119977],\"mapped\",[110]],[[119978,119978],\"mapped\",[111]],[[119979,119979],\"mapped\",[112]],[[119980,119980],\"mapped\",[113]],[[119981,119981],\"disallowed\"],[[119982,119982],\"mapped\",[115]],[[119983,119983],\"mapped\",[116]],[[119984,119984],\"mapped\",[117]],[[119985,119985],\"mapped\",[118]],[[119986,119986],\"mapped\",[119]],[[119987,119987],\"mapped\",[120]],[[119988,119988],\"mapped\",[121]],[[119989,119989],\"mapped\",[122]],[[119990,119990],\"mapped\",[97]],[[119991,119991],\"mapped\",[98]],[[119992,119992],\"mapped\",[99]],[[119993,119993],\"mapped\",[100]],[[119994,119994],\"disallowed\"],[[119995,119995],\"mapped\",[102]],[[119996,119996],\"disallowed\"],[[119997,119997],\"mapped\",[104]],[[119998,119998],\"mapped\",[105]],[[119999,119999],\"mapped\",[106]],[[120000,120000],\"mapped\",[107]],[[120001,120001],\"mapped\",[108]],[[120002,120002],\"mapped\",[109]],[[120003,120003],\"mapped\",[110]],[[120004,120004],\"disallowed\"],[[120005,120005],\"mapped\",[112]],[[120006,120006],\"mapped\",[113]],[[120007,120007],\"mapped\",[114]],[[120008,120008],\"mapped\",[115]],[[120009,120009],\"mapped\",[116]],[[120010,120010],\"mapped\",[117]],[[120011,120011],\"mapped\",[118]],[[120012,120012],\"mapped\",[119]],[[120013,120013],\"mapped\",[120]],[[120014,120014],\"mapped\",[121]],[[120015,120015],\"mapped\",[122]],[[120016,120016],\"mapped\",[97]],[[120017,120017],\"mapped\",[98]],[[120018,120018],\"mapped\",[99]],[[120019,120019],\"mapped\",[100]],[[120020,120020],\"mapped\",[101]],[[120021,120021],\"mapped\",[102]],[[120022,120022],\"mapped\",[103]],[[120023,120023],\"mapped\",[104]],[[120024,120024],\"mapped\",[105]],[[120025,120025],\"mapped\",[106]],[[120026,120026],\"mapped\",[107]],[[120027,120027],\"mapped\",[108]],[[120028,120028],\"mapped\",[109]],[[120029,120029],\"mapped\",[110]],[[120030,120030],\"mapped\",[111]],[[120031,120031],\"mapped\",[112]],[[120032,120032],\"mapped\",[113]],[[120033,120033],\"mapped\",[114]],[[120034,120034],\"mapped\",[115]],[[120035,120035],\"mapped\",[116]],[[120036,120036],\"mapped\",[117]],[[120037,120037],\"mapped\",[118]],[[120038,120038],\"mapped\",[119]],[[120039,120039],\"mapped\",[120]],[[120040,120040],\"mapped\",[121]],[[120041,120041],\"mapped\",[122]],[[120042,120042],\"mapped\",[97]],[[120043,120043],\"mapped\",[98]],[[120044,120044],\"mapped\",[99]],[[120045,120045],\"mapped\",[100]],[[120046,120046],\"mapped\",[101]],[[120047,120047],\"mapped\",[102]],[[120048,120048],\"mapped\",[103]],[[120049,120049],\"mapped\",[104]],[[120050,120050],\"mapped\",[105]],[[120051,120051],\"mapped\",[106]],[[120052,120052],\"mapped\",[107]],[[120053,120053],\"mapped\",[108]],[[120054,120054],\"mapped\",[109]],[[120055,120055],\"mapped\",[110]],[[120056,120056],\"mapped\",[111]],[[120057,120057],\"mapped\",[112]],[[120058,120058],\"mapped\",[113]],[[120059,120059],\"mapped\",[114]],[[120060,120060],\"mapped\",[115]],[[120061,120061],\"mapped\",[116]],[[120062,120062],\"mapped\",[117]],[[120063,120063],\"mapped\",[118]],[[120064,120064],\"mapped\",[119]],[[120065,120065],\"mapped\",[120]],[[120066,120066],\"mapped\",[121]],[[120067,120067],\"mapped\",[122]],[[120068,120068],\"mapped\",[97]],[[120069,120069],\"mapped\",[98]],[[120070,120070],\"disallowed\"],[[120071,120071],\"mapped\",[100]],[[120072,120072],\"mapped\",[101]],[[120073,120073],\"mapped\",[102]],[[120074,120074],\"mapped\",[103]],[[120075,120076],\"disallowed\"],[[120077,120077],\"mapped\",[106]],[[120078,120078],\"mapped\",[107]],[[120079,120079],\"mapped\",[108]],[[120080,120080],\"mapped\",[109]],[[120081,120081],\"mapped\",[110]],[[120082,120082],\"mapped\",[111]],[[120083,120083],\"mapped\",[112]],[[120084,120084],\"mapped\",[113]],[[120085,120085],\"disallowed\"],[[120086,120086],\"mapped\",[115]],[[120087,120087],\"mapped\",[116]],[[120088,120088],\"mapped\",[117]],[[120089,120089],\"mapped\",[118]],[[120090,120090],\"mapped\",[119]],[[120091,120091],\"mapped\",[120]],[[120092,120092],\"mapped\",[121]],[[120093,120093],\"disallowed\"],[[120094,120094],\"mapped\",[97]],[[120095,120095],\"mapped\",[98]],[[120096,120096],\"mapped\",[99]],[[120097,120097],\"mapped\",[100]],[[120098,120098],\"mapped\",[101]],[[120099,120099],\"mapped\",[102]],[[120100,120100],\"mapped\",[103]],[[120101,120101],\"mapped\",[104]],[[120102,120102],\"mapped\",[105]],[[120103,120103],\"mapped\",[106]],[[120104,120104],\"mapped\",[107]],[[120105,120105],\"mapped\",[108]],[[120106,120106],\"mapped\",[109]],[[120107,120107],\"mapped\",[110]],[[120108,120108],\"mapped\",[111]],[[120109,120109],\"mapped\",[112]],[[120110,120110],\"mapped\",[113]],[[120111,120111],\"mapped\",[114]],[[120112,120112],\"mapped\",[115]],[[120113,120113],\"mapped\",[116]],[[120114,120114],\"mapped\",[117]],[[120115,120115],\"mapped\",[118]],[[120116,120116],\"mapped\",[119]],[[120117,120117],\"mapped\",[120]],[[120118,120118],\"mapped\",[121]],[[120119,120119],\"mapped\",[122]],[[120120,120120],\"mapped\",[97]],[[120121,120121],\"mapped\",[98]],[[120122,120122],\"disallowed\"],[[120123,120123],\"mapped\",[100]],[[120124,120124],\"mapped\",[101]],[[120125,120125],\"mapped\",[102]],[[120126,120126],\"mapped\",[103]],[[120127,120127],\"disallowed\"],[[120128,120128],\"mapped\",[105]],[[120129,120129],\"mapped\",[106]],[[120130,120130],\"mapped\",[107]],[[120131,120131],\"mapped\",[108]],[[120132,120132],\"mapped\",[109]],[[120133,120133],\"disallowed\"],[[120134,120134],\"mapped\",[111]],[[120135,120137],\"disallowed\"],[[120138,120138],\"mapped\",[115]],[[120139,120139],\"mapped\",[116]],[[120140,120140],\"mapped\",[117]],[[120141,120141],\"mapped\",[118]],[[120142,120142],\"mapped\",[119]],[[120143,120143],\"mapped\",[120]],[[120144,120144],\"mapped\",[121]],[[120145,120145],\"disallowed\"],[[120146,120146],\"mapped\",[97]],[[120147,120147],\"mapped\",[98]],[[120148,120148],\"mapped\",[99]],[[120149,120149],\"mapped\",[100]],[[120150,120150],\"mapped\",[101]],[[120151,120151],\"mapped\",[102]],[[120152,120152],\"mapped\",[103]],[[120153,120153],\"mapped\",[104]],[[120154,120154],\"mapped\",[105]],[[120155,120155],\"mapped\",[106]],[[120156,120156],\"mapped\",[107]],[[120157,120157],\"mapped\",[108]],[[120158,120158],\"mapped\",[109]],[[120159,120159],\"mapped\",[110]],[[120160,120160],\"mapped\",[111]],[[120161,120161],\"mapped\",[112]],[[120162,120162],\"mapped\",[113]],[[120163,120163],\"mapped\",[114]],[[120164,120164],\"mapped\",[115]],[[120165,120165],\"mapped\",[116]],[[120166,120166],\"mapped\",[117]],[[120167,120167],\"mapped\",[118]],[[120168,120168],\"mapped\",[119]],[[120169,120169],\"mapped\",[120]],[[120170,120170],\"mapped\",[121]],[[120171,120171],\"mapped\",[122]],[[120172,120172],\"mapped\",[97]],[[120173,120173],\"mapped\",[98]],[[120174,120174],\"mapped\",[99]],[[120175,120175],\"mapped\",[100]],[[120176,120176],\"mapped\",[101]],[[120177,120177],\"mapped\",[102]],[[120178,120178],\"mapped\",[103]],[[120179,120179],\"mapped\",[104]],[[120180,120180],\"mapped\",[105]],[[120181,120181],\"mapped\",[106]],[[120182,120182],\"mapped\",[107]],[[120183,120183],\"mapped\",[108]],[[120184,120184],\"mapped\",[109]],[[120185,120185],\"mapped\",[110]],[[120186,120186],\"mapped\",[111]],[[120187,120187],\"mapped\",[112]],[[120188,120188],\"mapped\",[113]],[[120189,120189],\"mapped\",[114]],[[120190,120190],\"mapped\",[115]],[[120191,120191],\"mapped\",[116]],[[120192,120192],\"mapped\",[117]],[[120193,120193],\"mapped\",[118]],[[120194,120194],\"mapped\",[119]],[[120195,120195],\"mapped\",[120]],[[120196,120196],\"mapped\",[121]],[[120197,120197],\"mapped\",[122]],[[120198,120198],\"mapped\",[97]],[[120199,120199],\"mapped\",[98]],[[120200,120200],\"mapped\",[99]],[[120201,120201],\"mapped\",[100]],[[120202,120202],\"mapped\",[101]],[[120203,120203],\"mapped\",[102]],[[120204,120204],\"mapped\",[103]],[[120205,120205],\"mapped\",[104]],[[120206,120206],\"mapped\",[105]],[[120207,120207],\"mapped\",[106]],[[120208,120208],\"mapped\",[107]],[[120209,120209],\"mapped\",[108]],[[120210,120210],\"mapped\",[109]],[[120211,120211],\"mapped\",[110]],[[120212,120212],\"mapped\",[111]],[[120213,120213],\"mapped\",[112]],[[120214,120214],\"mapped\",[113]],[[120215,120215],\"mapped\",[114]],[[120216,120216],\"mapped\",[115]],[[120217,120217],\"mapped\",[116]],[[120218,120218],\"mapped\",[117]],[[120219,120219],\"mapped\",[118]],[[120220,120220],\"mapped\",[119]],[[120221,120221],\"mapped\",[120]],[[120222,120222],\"mapped\",[121]],[[120223,120223],\"mapped\",[122]],[[120224,120224],\"mapped\",[97]],[[120225,120225],\"mapped\",[98]],[[120226,120226],\"mapped\",[99]],[[120227,120227],\"mapped\",[100]],[[120228,120228],\"mapped\",[101]],[[120229,120229],\"mapped\",[102]],[[120230,120230],\"mapped\",[103]],[[120231,120231],\"mapped\",[104]],[[120232,120232],\"mapped\",[105]],[[120233,120233],\"mapped\",[106]],[[120234,120234],\"mapped\",[107]],[[120235,120235],\"mapped\",[108]],[[120236,120236],\"mapped\",[109]],[[120237,120237],\"mapped\",[110]],[[120238,120238],\"mapped\",[111]],[[120239,120239],\"mapped\",[112]],[[120240,120240],\"mapped\",[113]],[[120241,120241],\"mapped\",[114]],[[120242,120242],\"mapped\",[115]],[[120243,120243],\"mapped\",[116]],[[120244,120244],\"mapped\",[117]],[[120245,120245],\"mapped\",[118]],[[120246,120246],\"mapped\",[119]],[[120247,120247],\"mapped\",[120]],[[120248,120248],\"mapped\",[121]],[[120249,120249],\"mapped\",[122]],[[120250,120250],\"mapped\",[97]],[[120251,120251],\"mapped\",[98]],[[120252,120252],\"mapped\",[99]],[[120253,120253],\"mapped\",[100]],[[120254,120254],\"mapped\",[101]],[[120255,120255],\"mapped\",[102]],[[120256,120256],\"mapped\",[103]],[[120257,120257],\"mapped\",[104]],[[120258,120258],\"mapped\",[105]],[[120259,120259],\"mapped\",[106]],[[120260,120260],\"mapped\",[107]],[[120261,120261],\"mapped\",[108]],[[120262,120262],\"mapped\",[109]],[[120263,120263],\"mapped\",[110]],[[120264,120264],\"mapped\",[111]],[[120265,120265],\"mapped\",[112]],[[120266,120266],\"mapped\",[113]],[[120267,120267],\"mapped\",[114]],[[120268,120268],\"mapped\",[115]],[[120269,120269],\"mapped\",[116]],[[120270,120270],\"mapped\",[117]],[[120271,120271],\"mapped\",[118]],[[120272,120272],\"mapped\",[119]],[[120273,120273],\"mapped\",[120]],[[120274,120274],\"mapped\",[121]],[[120275,120275],\"mapped\",[122]],[[120276,120276],\"mapped\",[97]],[[120277,120277],\"mapped\",[98]],[[120278,120278],\"mapped\",[99]],[[120279,120279],\"mapped\",[100]],[[120280,120280],\"mapped\",[101]],[[120281,120281],\"mapped\",[102]],[[120282,120282],\"mapped\",[103]],[[120283,120283],\"mapped\",[104]],[[120284,120284],\"mapped\",[105]],[[120285,120285],\"mapped\",[106]],[[120286,120286],\"mapped\",[107]],[[120287,120287],\"mapped\",[108]],[[120288,120288],\"mapped\",[109]],[[120289,120289],\"mapped\",[110]],[[120290,120290],\"mapped\",[111]],[[120291,120291],\"mapped\",[112]],[[120292,120292],\"mapped\",[113]],[[120293,120293],\"mapped\",[114]],[[120294,120294],\"mapped\",[115]],[[120295,120295],\"mapped\",[116]],[[120296,120296],\"mapped\",[117]],[[120297,120297],\"mapped\",[118]],[[120298,120298],\"mapped\",[119]],[[120299,120299],\"mapped\",[120]],[[120300,120300],\"mapped\",[121]],[[120301,120301],\"mapped\",[122]],[[120302,120302],\"mapped\",[97]],[[120303,120303],\"mapped\",[98]],[[120304,120304],\"mapped\",[99]],[[120305,120305],\"mapped\",[100]],[[120306,120306],\"mapped\",[101]],[[120307,120307],\"mapped\",[102]],[[120308,120308],\"mapped\",[103]],[[120309,120309],\"mapped\",[104]],[[120310,120310],\"mapped\",[105]],[[120311,120311],\"mapped\",[106]],[[120312,120312],\"mapped\",[107]],[[120313,120313],\"mapped\",[108]],[[120314,120314],\"mapped\",[109]],[[120315,120315],\"mapped\",[110]],[[120316,120316],\"mapped\",[111]],[[120317,120317],\"mapped\",[112]],[[120318,120318],\"mapped\",[113]],[[120319,120319],\"mapped\",[114]],[[120320,120320],\"mapped\",[115]],[[120321,120321],\"mapped\",[116]],[[120322,120322],\"mapped\",[117]],[[120323,120323],\"mapped\",[118]],[[120324,120324],\"mapped\",[119]],[[120325,120325],\"mapped\",[120]],[[120326,120326],\"mapped\",[121]],[[120327,120327],\"mapped\",[122]],[[120328,120328],\"mapped\",[97]],[[120329,120329],\"mapped\",[98]],[[120330,120330],\"mapped\",[99]],[[120331,120331],\"mapped\",[100]],[[120332,120332],\"mapped\",[101]],[[120333,120333],\"mapped\",[102]],[[120334,120334],\"mapped\",[103]],[[120335,120335],\"mapped\",[104]],[[120336,120336],\"mapped\",[105]],[[120337,120337],\"mapped\",[106]],[[120338,120338],\"mapped\",[107]],[[120339,120339],\"mapped\",[108]],[[120340,120340],\"mapped\",[109]],[[120341,120341],\"mapped\",[110]],[[120342,120342],\"mapped\",[111]],[[120343,120343],\"mapped\",[112]],[[120344,120344],\"mapped\",[113]],[[120345,120345],\"mapped\",[114]],[[120346,120346],\"mapped\",[115]],[[120347,120347],\"mapped\",[116]],[[120348,120348],\"mapped\",[117]],[[120349,120349],\"mapped\",[118]],[[120350,120350],\"mapped\",[119]],[[120351,120351],\"mapped\",[120]],[[120352,120352],\"mapped\",[121]],[[120353,120353],\"mapped\",[122]],[[120354,120354],\"mapped\",[97]],[[120355,120355],\"mapped\",[98]],[[120356,120356],\"mapped\",[99]],[[120357,120357],\"mapped\",[100]],[[120358,120358],\"mapped\",[101]],[[120359,120359],\"mapped\",[102]],[[120360,120360],\"mapped\",[103]],[[120361,120361],\"mapped\",[104]],[[120362,120362],\"mapped\",[105]],[[120363,120363],\"mapped\",[106]],[[120364,120364],\"mapped\",[107]],[[120365,120365],\"mapped\",[108]],[[120366,120366],\"mapped\",[109]],[[120367,120367],\"mapped\",[110]],[[120368,120368],\"mapped\",[111]],[[120369,120369],\"mapped\",[112]],[[120370,120370],\"mapped\",[113]],[[120371,120371],\"mapped\",[114]],[[120372,120372],\"mapped\",[115]],[[120373,120373],\"mapped\",[116]],[[120374,120374],\"mapped\",[117]],[[120375,120375],\"mapped\",[118]],[[120376,120376],\"mapped\",[119]],[[120377,120377],\"mapped\",[120]],[[120378,120378],\"mapped\",[121]],[[120379,120379],\"mapped\",[122]],[[120380,120380],\"mapped\",[97]],[[120381,120381],\"mapped\",[98]],[[120382,120382],\"mapped\",[99]],[[120383,120383],\"mapped\",[100]],[[120384,120384],\"mapped\",[101]],[[120385,120385],\"mapped\",[102]],[[120386,120386],\"mapped\",[103]],[[120387,120387],\"mapped\",[104]],[[120388,120388],\"mapped\",[105]],[[120389,120389],\"mapped\",[106]],[[120390,120390],\"mapped\",[107]],[[120391,120391],\"mapped\",[108]],[[120392,120392],\"mapped\",[109]],[[120393,120393],\"mapped\",[110]],[[120394,120394],\"mapped\",[111]],[[120395,120395],\"mapped\",[112]],[[120396,120396],\"mapped\",[113]],[[120397,120397],\"mapped\",[114]],[[120398,120398],\"mapped\",[115]],[[120399,120399],\"mapped\",[116]],[[120400,120400],\"mapped\",[117]],[[120401,120401],\"mapped\",[118]],[[120402,120402],\"mapped\",[119]],[[120403,120403],\"mapped\",[120]],[[120404,120404],\"mapped\",[121]],[[120405,120405],\"mapped\",[122]],[[120406,120406],\"mapped\",[97]],[[120407,120407],\"mapped\",[98]],[[120408,120408],\"mapped\",[99]],[[120409,120409],\"mapped\",[100]],[[120410,120410],\"mapped\",[101]],[[120411,120411],\"mapped\",[102]],[[120412,120412],\"mapped\",[103]],[[120413,120413],\"mapped\",[104]],[[120414,120414],\"mapped\",[105]],[[120415,120415],\"mapped\",[106]],[[120416,120416],\"mapped\",[107]],[[120417,120417],\"mapped\",[108]],[[120418,120418],\"mapped\",[109]],[[120419,120419],\"mapped\",[110]],[[120420,120420],\"mapped\",[111]],[[120421,120421],\"mapped\",[112]],[[120422,120422],\"mapped\",[113]],[[120423,120423],\"mapped\",[114]],[[120424,120424],\"mapped\",[115]],[[120425,120425],\"mapped\",[116]],[[120426,120426],\"mapped\",[117]],[[120427,120427],\"mapped\",[118]],[[120428,120428],\"mapped\",[119]],[[120429,120429],\"mapped\",[120]],[[120430,120430],\"mapped\",[121]],[[120431,120431],\"mapped\",[122]],[[120432,120432],\"mapped\",[97]],[[120433,120433],\"mapped\",[98]],[[120434,120434],\"mapped\",[99]],[[120435,120435],\"mapped\",[100]],[[120436,120436],\"mapped\",[101]],[[120437,120437],\"mapped\",[102]],[[120438,120438],\"mapped\",[103]],[[120439,120439],\"mapped\",[104]],[[120440,120440],\"mapped\",[105]],[[120441,120441],\"mapped\",[106]],[[120442,120442],\"mapped\",[107]],[[120443,120443],\"mapped\",[108]],[[120444,120444],\"mapped\",[109]],[[120445,120445],\"mapped\",[110]],[[120446,120446],\"mapped\",[111]],[[120447,120447],\"mapped\",[112]],[[120448,120448],\"mapped\",[113]],[[120449,120449],\"mapped\",[114]],[[120450,120450],\"mapped\",[115]],[[120451,120451],\"mapped\",[116]],[[120452,120452],\"mapped\",[117]],[[120453,120453],\"mapped\",[118]],[[120454,120454],\"mapped\",[119]],[[120455,120455],\"mapped\",[120]],[[120456,120456],\"mapped\",[121]],[[120457,120457],\"mapped\",[122]],[[120458,120458],\"mapped\",[97]],[[120459,120459],\"mapped\",[98]],[[120460,120460],\"mapped\",[99]],[[120461,120461],\"mapped\",[100]],[[120462,120462],\"mapped\",[101]],[[120463,120463],\"mapped\",[102]],[[120464,120464],\"mapped\",[103]],[[120465,120465],\"mapped\",[104]],[[120466,120466],\"mapped\",[105]],[[120467,120467],\"mapped\",[106]],[[120468,120468],\"mapped\",[107]],[[120469,120469],\"mapped\",[108]],[[120470,120470],\"mapped\",[109]],[[120471,120471],\"mapped\",[110]],[[120472,120472],\"mapped\",[111]],[[120473,120473],\"mapped\",[112]],[[120474,120474],\"mapped\",[113]],[[120475,120475],\"mapped\",[114]],[[120476,120476],\"mapped\",[115]],[[120477,120477],\"mapped\",[116]],[[120478,120478],\"mapped\",[117]],[[120479,120479],\"mapped\",[118]],[[120480,120480],\"mapped\",[119]],[[120481,120481],\"mapped\",[120]],[[120482,120482],\"mapped\",[121]],[[120483,120483],\"mapped\",[122]],[[120484,120484],\"mapped\",[305]],[[120485,120485],\"mapped\",[567]],[[120486,120487],\"disallowed\"],[[120488,120488],\"mapped\",[945]],[[120489,120489],\"mapped\",[946]],[[120490,120490],\"mapped\",[947]],[[120491,120491],\"mapped\",[948]],[[120492,120492],\"mapped\",[949]],[[120493,120493],\"mapped\",[950]],[[120494,120494],\"mapped\",[951]],[[120495,120495],\"mapped\",[952]],[[120496,120496],\"mapped\",[953]],[[120497,120497],\"mapped\",[954]],[[120498,120498],\"mapped\",[955]],[[120499,120499],\"mapped\",[956]],[[120500,120500],\"mapped\",[957]],[[120501,120501],\"mapped\",[958]],[[120502,120502],\"mapped\",[959]],[[120503,120503],\"mapped\",[960]],[[120504,120504],\"mapped\",[961]],[[120505,120505],\"mapped\",[952]],[[120506,120506],\"mapped\",[963]],[[120507,120507],\"mapped\",[964]],[[120508,120508],\"mapped\",[965]],[[120509,120509],\"mapped\",[966]],[[120510,120510],\"mapped\",[967]],[[120511,120511],\"mapped\",[968]],[[120512,120512],\"mapped\",[969]],[[120513,120513],\"mapped\",[8711]],[[120514,120514],\"mapped\",[945]],[[120515,120515],\"mapped\",[946]],[[120516,120516],\"mapped\",[947]],[[120517,120517],\"mapped\",[948]],[[120518,120518],\"mapped\",[949]],[[120519,120519],\"mapped\",[950]],[[120520,120520],\"mapped\",[951]],[[120521,120521],\"mapped\",[952]],[[120522,120522],\"mapped\",[953]],[[120523,120523],\"mapped\",[954]],[[120524,120524],\"mapped\",[955]],[[120525,120525],\"mapped\",[956]],[[120526,120526],\"mapped\",[957]],[[120527,120527],\"mapped\",[958]],[[120528,120528],\"mapped\",[959]],[[120529,120529],\"mapped\",[960]],[[120530,120530],\"mapped\",[961]],[[120531,120532],\"mapped\",[963]],[[120533,120533],\"mapped\",[964]],[[120534,120534],\"mapped\",[965]],[[120535,120535],\"mapped\",[966]],[[120536,120536],\"mapped\",[967]],[[120537,120537],\"mapped\",[968]],[[120538,120538],\"mapped\",[969]],[[120539,120539],\"mapped\",[8706]],[[120540,120540],\"mapped\",[949]],[[120541,120541],\"mapped\",[952]],[[120542,120542],\"mapped\",[954]],[[120543,120543],\"mapped\",[966]],[[120544,120544],\"mapped\",[961]],[[120545,120545],\"mapped\",[960]],[[120546,120546],\"mapped\",[945]],[[120547,120547],\"mapped\",[946]],[[120548,120548],\"mapped\",[947]],[[120549,120549],\"mapped\",[948]],[[120550,120550],\"mapped\",[949]],[[120551,120551],\"mapped\",[950]],[[120552,120552],\"mapped\",[951]],[[120553,120553],\"mapped\",[952]],[[120554,120554],\"mapped\",[953]],[[120555,120555],\"mapped\",[954]],[[120556,120556],\"mapped\",[955]],[[120557,120557],\"mapped\",[956]],[[120558,120558],\"mapped\",[957]],[[120559,120559],\"mapped\",[958]],[[120560,120560],\"mapped\",[959]],[[120561,120561],\"mapped\",[960]],[[120562,120562],\"mapped\",[961]],[[120563,120563],\"mapped\",[952]],[[120564,120564],\"mapped\",[963]],[[120565,120565],\"mapped\",[964]],[[120566,120566],\"mapped\",[965]],[[120567,120567],\"mapped\",[966]],[[120568,120568],\"mapped\",[967]],[[120569,120569],\"mapped\",[968]],[[120570,120570],\"mapped\",[969]],[[120571,120571],\"mapped\",[8711]],[[120572,120572],\"mapped\",[945]],[[120573,120573],\"mapped\",[946]],[[120574,120574],\"mapped\",[947]],[[120575,120575],\"mapped\",[948]],[[120576,120576],\"mapped\",[949]],[[120577,120577],\"mapped\",[950]],[[120578,120578],\"mapped\",[951]],[[120579,120579],\"mapped\",[952]],[[120580,120580],\"mapped\",[953]],[[120581,120581],\"mapped\",[954]],[[120582,120582],\"mapped\",[955]],[[120583,120583],\"mapped\",[956]],[[120584,120584],\"mapped\",[957]],[[120585,120585],\"mapped\",[958]],[[120586,120586],\"mapped\",[959]],[[120587,120587],\"mapped\",[960]],[[120588,120588],\"mapped\",[961]],[[120589,120590],\"mapped\",[963]],[[120591,120591],\"mapped\",[964]],[[120592,120592],\"mapped\",[965]],[[120593,120593],\"mapped\",[966]],[[120594,120594],\"mapped\",[967]],[[120595,120595],\"mapped\",[968]],[[120596,120596],\"mapped\",[969]],[[120597,120597],\"mapped\",[8706]],[[120598,120598],\"mapped\",[949]],[[120599,120599],\"mapped\",[952]],[[120600,120600],\"mapped\",[954]],[[120601,120601],\"mapped\",[966]],[[120602,120602],\"mapped\",[961]],[[120603,120603],\"mapped\",[960]],[[120604,120604],\"mapped\",[945]],[[120605,120605],\"mapped\",[946]],[[120606,120606],\"mapped\",[947]],[[120607,120607],\"mapped\",[948]],[[120608,120608],\"mapped\",[949]],[[120609,120609],\"mapped\",[950]],[[120610,120610],\"mapped\",[951]],[[120611,120611],\"mapped\",[952]],[[120612,120612],\"mapped\",[953]],[[120613,120613],\"mapped\",[954]],[[120614,120614],\"mapped\",[955]],[[120615,120615],\"mapped\",[956]],[[120616,120616],\"mapped\",[957]],[[120617,120617],\"mapped\",[958]],[[120618,120618],\"mapped\",[959]],[[120619,120619],\"mapped\",[960]],[[120620,120620],\"mapped\",[961]],[[120621,120621],\"mapped\",[952]],[[120622,120622],\"mapped\",[963]],[[120623,120623],\"mapped\",[964]],[[120624,120624],\"mapped\",[965]],[[120625,120625],\"mapped\",[966]],[[120626,120626],\"mapped\",[967]],[[120627,120627],\"mapped\",[968]],[[120628,120628],\"mapped\",[969]],[[120629,120629],\"mapped\",[8711]],[[120630,120630],\"mapped\",[945]],[[120631,120631],\"mapped\",[946]],[[120632,120632],\"mapped\",[947]],[[120633,120633],\"mapped\",[948]],[[120634,120634],\"mapped\",[949]],[[120635,120635],\"mapped\",[950]],[[120636,120636],\"mapped\",[951]],[[120637,120637],\"mapped\",[952]],[[120638,120638],\"mapped\",[953]],[[120639,120639],\"mapped\",[954]],[[120640,120640],\"mapped\",[955]],[[120641,120641],\"mapped\",[956]],[[120642,120642],\"mapped\",[957]],[[120643,120643],\"mapped\",[958]],[[120644,120644],\"mapped\",[959]],[[120645,120645],\"mapped\",[960]],[[120646,120646],\"mapped\",[961]],[[120647,120648],\"mapped\",[963]],[[120649,120649],\"mapped\",[964]],[[120650,120650],\"mapped\",[965]],[[120651,120651],\"mapped\",[966]],[[120652,120652],\"mapped\",[967]],[[120653,120653],\"mapped\",[968]],[[120654,120654],\"mapped\",[969]],[[120655,120655],\"mapped\",[8706]],[[120656,120656],\"mapped\",[949]],[[120657,120657],\"mapped\",[952]],[[120658,120658],\"mapped\",[954]],[[120659,120659],\"mapped\",[966]],[[120660,120660],\"mapped\",[961]],[[120661,120661],\"mapped\",[960]],[[120662,120662],\"mapped\",[945]],[[120663,120663],\"mapped\",[946]],[[120664,120664],\"mapped\",[947]],[[120665,120665],\"mapped\",[948]],[[120666,120666],\"mapped\",[949]],[[120667,120667],\"mapped\",[950]],[[120668,120668],\"mapped\",[951]],[[120669,120669],\"mapped\",[952]],[[120670,120670],\"mapped\",[953]],[[120671,120671],\"mapped\",[954]],[[120672,120672],\"mapped\",[955]],[[120673,120673],\"mapped\",[956]],[[120674,120674],\"mapped\",[957]],[[120675,120675],\"mapped\",[958]],[[120676,120676],\"mapped\",[959]],[[120677,120677],\"mapped\",[960]],[[120678,120678],\"mapped\",[961]],[[120679,120679],\"mapped\",[952]],[[120680,120680],\"mapped\",[963]],[[120681,120681],\"mapped\",[964]],[[120682,120682],\"mapped\",[965]],[[120683,120683],\"mapped\",[966]],[[120684,120684],\"mapped\",[967]],[[120685,120685],\"mapped\",[968]],[[120686,120686],\"mapped\",[969]],[[120687,120687],\"mapped\",[8711]],[[120688,120688],\"mapped\",[945]],[[120689,120689],\"mapped\",[946]],[[120690,120690],\"mapped\",[947]],[[120691,120691],\"mapped\",[948]],[[120692,120692],\"mapped\",[949]],[[120693,120693],\"mapped\",[950]],[[120694,120694],\"mapped\",[951]],[[120695,120695],\"mapped\",[952]],[[120696,120696],\"mapped\",[953]],[[120697,120697],\"mapped\",[954]],[[120698,120698],\"mapped\",[955]],[[120699,120699],\"mapped\",[956]],[[120700,120700],\"mapped\",[957]],[[120701,120701],\"mapped\",[958]],[[120702,120702],\"mapped\",[959]],[[120703,120703],\"mapped\",[960]],[[120704,120704],\"mapped\",[961]],[[120705,120706],\"mapped\",[963]],[[120707,120707],\"mapped\",[964]],[[120708,120708],\"mapped\",[965]],[[120709,120709],\"mapped\",[966]],[[120710,120710],\"mapped\",[967]],[[120711,120711],\"mapped\",[968]],[[120712,120712],\"mapped\",[969]],[[120713,120713],\"mapped\",[8706]],[[120714,120714],\"mapped\",[949]],[[120715,120715],\"mapped\",[952]],[[120716,120716],\"mapped\",[954]],[[120717,120717],\"mapped\",[966]],[[120718,120718],\"mapped\",[961]],[[120719,120719],\"mapped\",[960]],[[120720,120720],\"mapped\",[945]],[[120721,120721],\"mapped\",[946]],[[120722,120722],\"mapped\",[947]],[[120723,120723],\"mapped\",[948]],[[120724,120724],\"mapped\",[949]],[[120725,120725],\"mapped\",[950]],[[120726,120726],\"mapped\",[951]],[[120727,120727],\"mapped\",[952]],[[120728,120728],\"mapped\",[953]],[[120729,120729],\"mapped\",[954]],[[120730,120730],\"mapped\",[955]],[[120731,120731],\"mapped\",[956]],[[120732,120732],\"mapped\",[957]],[[120733,120733],\"mapped\",[958]],[[120734,120734],\"mapped\",[959]],[[120735,120735],\"mapped\",[960]],[[120736,120736],\"mapped\",[961]],[[120737,120737],\"mapped\",[952]],[[120738,120738],\"mapped\",[963]],[[120739,120739],\"mapped\",[964]],[[120740,120740],\"mapped\",[965]],[[120741,120741],\"mapped\",[966]],[[120742,120742],\"mapped\",[967]],[[120743,120743],\"mapped\",[968]],[[120744,120744],\"mapped\",[969]],[[120745,120745],\"mapped\",[8711]],[[120746,120746],\"mapped\",[945]],[[120747,120747],\"mapped\",[946]],[[120748,120748],\"mapped\",[947]],[[120749,120749],\"mapped\",[948]],[[120750,120750],\"mapped\",[949]],[[120751,120751],\"mapped\",[950]],[[120752,120752],\"mapped\",[951]],[[120753,120753],\"mapped\",[952]],[[120754,120754],\"mapped\",[953]],[[120755,120755],\"mapped\",[954]],[[120756,120756],\"mapped\",[955]],[[120757,120757],\"mapped\",[956]],[[120758,120758],\"mapped\",[957]],[[120759,120759],\"mapped\",[958]],[[120760,120760],\"mapped\",[959]],[[120761,120761],\"mapped\",[960]],[[120762,120762],\"mapped\",[961]],[[120763,120764],\"mapped\",[963]],[[120765,120765],\"mapped\",[964]],[[120766,120766],\"mapped\",[965]],[[120767,120767],\"mapped\",[966]],[[120768,120768],\"mapped\",[967]],[[120769,120769],\"mapped\",[968]],[[120770,120770],\"mapped\",[969]],[[120771,120771],\"mapped\",[8706]],[[120772,120772],\"mapped\",[949]],[[120773,120773],\"mapped\",[952]],[[120774,120774],\"mapped\",[954]],[[120775,120775],\"mapped\",[966]],[[120776,120776],\"mapped\",[961]],[[120777,120777],\"mapped\",[960]],[[120778,120779],\"mapped\",[989]],[[120780,120781],\"disallowed\"],[[120782,120782],\"mapped\",[48]],[[120783,120783],\"mapped\",[49]],[[120784,120784],\"mapped\",[50]],[[120785,120785],\"mapped\",[51]],[[120786,120786],\"mapped\",[52]],[[120787,120787],\"mapped\",[53]],[[120788,120788],\"mapped\",[54]],[[120789,120789],\"mapped\",[55]],[[120790,120790],\"mapped\",[56]],[[120791,120791],\"mapped\",[57]],[[120792,120792],\"mapped\",[48]],[[120793,120793],\"mapped\",[49]],[[120794,120794],\"mapped\",[50]],[[120795,120795],\"mapped\",[51]],[[120796,120796],\"mapped\",[52]],[[120797,120797],\"mapped\",[53]],[[120798,120798],\"mapped\",[54]],[[120799,120799],\"mapped\",[55]],[[120800,120800],\"mapped\",[56]],[[120801,120801],\"mapped\",[57]],[[120802,120802],\"mapped\",[48]],[[120803,120803],\"mapped\",[49]],[[120804,120804],\"mapped\",[50]],[[120805,120805],\"mapped\",[51]],[[120806,120806],\"mapped\",[52]],[[120807,120807],\"mapped\",[53]],[[120808,120808],\"mapped\",[54]],[[120809,120809],\"mapped\",[55]],[[120810,120810],\"mapped\",[56]],[[120811,120811],\"mapped\",[57]],[[120812,120812],\"mapped\",[48]],[[120813,120813],\"mapped\",[49]],[[120814,120814],\"mapped\",[50]],[[120815,120815],\"mapped\",[51]],[[120816,120816],\"mapped\",[52]],[[120817,120817],\"mapped\",[53]],[[120818,120818],\"mapped\",[54]],[[120819,120819],\"mapped\",[55]],[[120820,120820],\"mapped\",[56]],[[120821,120821],\"mapped\",[57]],[[120822,120822],\"mapped\",[48]],[[120823,120823],\"mapped\",[49]],[[120824,120824],\"mapped\",[50]],[[120825,120825],\"mapped\",[51]],[[120826,120826],\"mapped\",[52]],[[120827,120827],\"mapped\",[53]],[[120828,120828],\"mapped\",[54]],[[120829,120829],\"mapped\",[55]],[[120830,120830],\"mapped\",[56]],[[120831,120831],\"mapped\",[57]],[[120832,121343],\"valid\",[],\"NV8\"],[[121344,121398],\"valid\"],[[121399,121402],\"valid\",[],\"NV8\"],[[121403,121452],\"valid\"],[[121453,121460],\"valid\",[],\"NV8\"],[[121461,121461],\"valid\"],[[121462,121475],\"valid\",[],\"NV8\"],[[121476,121476],\"valid\"],[[121477,121483],\"valid\",[],\"NV8\"],[[121484,121498],\"disallowed\"],[[121499,121503],\"valid\"],[[121504,121504],\"disallowed\"],[[121505,121519],\"valid\"],[[121520,124927],\"disallowed\"],[[124928,125124],\"valid\"],[[125125,125126],\"disallowed\"],[[125127,125135],\"valid\",[],\"NV8\"],[[125136,125142],\"valid\"],[[125143,126463],\"disallowed\"],[[126464,126464],\"mapped\",[1575]],[[126465,126465],\"mapped\",[1576]],[[126466,126466],\"mapped\",[1580]],[[126467,126467],\"mapped\",[1583]],[[126468,126468],\"disallowed\"],[[126469,126469],\"mapped\",[1608]],[[126470,126470],\"mapped\",[1586]],[[126471,126471],\"mapped\",[1581]],[[126472,126472],\"mapped\",[1591]],[[126473,126473],\"mapped\",[1610]],[[126474,126474],\"mapped\",[1603]],[[126475,126475],\"mapped\",[1604]],[[126476,126476],\"mapped\",[1605]],[[126477,126477],\"mapped\",[1606]],[[126478,126478],\"mapped\",[1587]],[[126479,126479],\"mapped\",[1593]],[[126480,126480],\"mapped\",[1601]],[[126481,126481],\"mapped\",[1589]],[[126482,126482],\"mapped\",[1602]],[[126483,126483],\"mapped\",[1585]],[[126484,126484],\"mapped\",[1588]],[[126485,126485],\"mapped\",[1578]],[[126486,126486],\"mapped\",[1579]],[[126487,126487],\"mapped\",[1582]],[[126488,126488],\"mapped\",[1584]],[[126489,126489],\"mapped\",[1590]],[[126490,126490],\"mapped\",[1592]],[[126491,126491],\"mapped\",[1594]],[[126492,126492],\"mapped\",[1646]],[[126493,126493],\"mapped\",[1722]],[[126494,126494],\"mapped\",[1697]],[[126495,126495],\"mapped\",[1647]],[[126496,126496],\"disallowed\"],[[126497,126497],\"mapped\",[1576]],[[126498,126498],\"mapped\",[1580]],[[126499,126499],\"disallowed\"],[[126500,126500],\"mapped\",[1607]],[[126501,126502],\"disallowed\"],[[126503,126503],\"mapped\",[1581]],[[126504,126504],\"disallowed\"],[[126505,126505],\"mapped\",[1610]],[[126506,126506],\"mapped\",[1603]],[[126507,126507],\"mapped\",[1604]],[[126508,126508],\"mapped\",[1605]],[[126509,126509],\"mapped\",[1606]],[[126510,126510],\"mapped\",[1587]],[[126511,126511],\"mapped\",[1593]],[[126512,126512],\"mapped\",[1601]],[[126513,126513],\"mapped\",[1589]],[[126514,126514],\"mapped\",[1602]],[[126515,126515],\"disallowed\"],[[126516,126516],\"mapped\",[1588]],[[126517,126517],\"mapped\",[1578]],[[126518,126518],\"mapped\",[1579]],[[126519,126519],\"mapped\",[1582]],[[126520,126520],\"disallowed\"],[[126521,126521],\"mapped\",[1590]],[[126522,126522],\"disallowed\"],[[126523,126523],\"mapped\",[1594]],[[126524,126529],\"disallowed\"],[[126530,126530],\"mapped\",[1580]],[[126531,126534],\"disallowed\"],[[126535,126535],\"mapped\",[1581]],[[126536,126536],\"disallowed\"],[[126537,126537],\"mapped\",[1610]],[[126538,126538],\"disallowed\"],[[126539,126539],\"mapped\",[1604]],[[126540,126540],\"disallowed\"],[[126541,126541],\"mapped\",[1606]],[[126542,126542],\"mapped\",[1587]],[[126543,126543],\"mapped\",[1593]],[[126544,126544],\"disallowed\"],[[126545,126545],\"mapped\",[1589]],[[126546,126546],\"mapped\",[1602]],[[126547,126547],\"disallowed\"],[[126548,126548],\"mapped\",[1588]],[[126549,126550],\"disallowed\"],[[126551,126551],\"mapped\",[1582]],[[126552,126552],\"disallowed\"],[[126553,126553],\"mapped\",[1590]],[[126554,126554],\"disallowed\"],[[126555,126555],\"mapped\",[1594]],[[126556,126556],\"disallowed\"],[[126557,126557],\"mapped\",[1722]],[[126558,126558],\"disallowed\"],[[126559,126559],\"mapped\",[1647]],[[126560,126560],\"disallowed\"],[[126561,126561],\"mapped\",[1576]],[[126562,126562],\"mapped\",[1580]],[[126563,126563],\"disallowed\"],[[126564,126564],\"mapped\",[1607]],[[126565,126566],\"disallowed\"],[[126567,126567],\"mapped\",[1581]],[[126568,126568],\"mapped\",[1591]],[[126569,126569],\"mapped\",[1610]],[[126570,126570],\"mapped\",[1603]],[[126571,126571],\"disallowed\"],[[126572,126572],\"mapped\",[1605]],[[126573,126573],\"mapped\",[1606]],[[126574,126574],\"mapped\",[1587]],[[126575,126575],\"mapped\",[1593]],[[126576,126576],\"mapped\",[1601]],[[126577,126577],\"mapped\",[1589]],[[126578,126578],\"mapped\",[1602]],[[126579,126579],\"disallowed\"],[[126580,126580],\"mapped\",[1588]],[[126581,126581],\"mapped\",[1578]],[[126582,126582],\"mapped\",[1579]],[[126583,126583],\"mapped\",[1582]],[[126584,126584],\"disallowed\"],[[126585,126585],\"mapped\",[1590]],[[126586,126586],\"mapped\",[1592]],[[126587,126587],\"mapped\",[1594]],[[126588,126588],\"mapped\",[1646]],[[126589,126589],\"disallowed\"],[[126590,126590],\"mapped\",[1697]],[[126591,126591],\"disallowed\"],[[126592,126592],\"mapped\",[1575]],[[126593,126593],\"mapped\",[1576]],[[126594,126594],\"mapped\",[1580]],[[126595,126595],\"mapped\",[1583]],[[126596,126596],\"mapped\",[1607]],[[126597,126597],\"mapped\",[1608]],[[126598,126598],\"mapped\",[1586]],[[126599,126599],\"mapped\",[1581]],[[126600,126600],\"mapped\",[1591]],[[126601,126601],\"mapped\",[1610]],[[126602,126602],\"disallowed\"],[[126603,126603],\"mapped\",[1604]],[[126604,126604],\"mapped\",[1605]],[[126605,126605],\"mapped\",[1606]],[[126606,126606],\"mapped\",[1587]],[[126607,126607],\"mapped\",[1593]],[[126608,126608],\"mapped\",[1601]],[[126609,126609],\"mapped\",[1589]],[[126610,126610],\"mapped\",[1602]],[[126611,126611],\"mapped\",[1585]],[[126612,126612],\"mapped\",[1588]],[[126613,126613],\"mapped\",[1578]],[[126614,126614],\"mapped\",[1579]],[[126615,126615],\"mapped\",[1582]],[[126616,126616],\"mapped\",[1584]],[[126617,126617],\"mapped\",[1590]],[[126618,126618],\"mapped\",[1592]],[[126619,126619],\"mapped\",[1594]],[[126620,126624],\"disallowed\"],[[126625,126625],\"mapped\",[1576]],[[126626,126626],\"mapped\",[1580]],[[126627,126627],\"mapped\",[1583]],[[126628,126628],\"disallowed\"],[[126629,126629],\"mapped\",[1608]],[[126630,126630],\"mapped\",[1586]],[[126631,126631],\"mapped\",[1581]],[[126632,126632],\"mapped\",[1591]],[[126633,126633],\"mapped\",[1610]],[[126634,126634],\"disallowed\"],[[126635,126635],\"mapped\",[1604]],[[126636,126636],\"mapped\",[1605]],[[126637,126637],\"mapped\",[1606]],[[126638,126638],\"mapped\",[1587]],[[126639,126639],\"mapped\",[1593]],[[126640,126640],\"mapped\",[1601]],[[126641,126641],\"mapped\",[1589]],[[126642,126642],\"mapped\",[1602]],[[126643,126643],\"mapped\",[1585]],[[126644,126644],\"mapped\",[1588]],[[126645,126645],\"mapped\",[1578]],[[126646,126646],\"mapped\",[1579]],[[126647,126647],\"mapped\",[1582]],[[126648,126648],\"mapped\",[1584]],[[126649,126649],\"mapped\",[1590]],[[126650,126650],\"mapped\",[1592]],[[126651,126651],\"mapped\",[1594]],[[126652,126703],\"disallowed\"],[[126704,126705],\"valid\",[],\"NV8\"],[[126706,126975],\"disallowed\"],[[126976,127019],\"valid\",[],\"NV8\"],[[127020,127023],\"disallowed\"],[[127024,127123],\"valid\",[],\"NV8\"],[[127124,127135],\"disallowed\"],[[127136,127150],\"valid\",[],\"NV8\"],[[127151,127152],\"disallowed\"],[[127153,127166],\"valid\",[],\"NV8\"],[[127167,127167],\"valid\",[],\"NV8\"],[[127168,127168],\"disallowed\"],[[127169,127183],\"valid\",[],\"NV8\"],[[127184,127184],\"disallowed\"],[[127185,127199],\"valid\",[],\"NV8\"],[[127200,127221],\"valid\",[],\"NV8\"],[[127222,127231],\"disallowed\"],[[127232,127232],\"disallowed\"],[[127233,127233],\"disallowed_STD3_mapped\",[48,44]],[[127234,127234],\"disallowed_STD3_mapped\",[49,44]],[[127235,127235],\"disallowed_STD3_mapped\",[50,44]],[[127236,127236],\"disallowed_STD3_mapped\",[51,44]],[[127237,127237],\"disallowed_STD3_mapped\",[52,44]],[[127238,127238],\"disallowed_STD3_mapped\",[53,44]],[[127239,127239],\"disallowed_STD3_mapped\",[54,44]],[[127240,127240],\"disallowed_STD3_mapped\",[55,44]],[[127241,127241],\"disallowed_STD3_mapped\",[56,44]],[[127242,127242],\"disallowed_STD3_mapped\",[57,44]],[[127243,127244],\"valid\",[],\"NV8\"],[[127245,127247],\"disallowed\"],[[127248,127248],\"disallowed_STD3_mapped\",[40,97,41]],[[127249,127249],\"disallowed_STD3_mapped\",[40,98,41]],[[127250,127250],\"disallowed_STD3_mapped\",[40,99,41]],[[127251,127251],\"disallowed_STD3_mapped\",[40,100,41]],[[127252,127252],\"disallowed_STD3_mapped\",[40,101,41]],[[127253,127253],\"disallowed_STD3_mapped\",[40,102,41]],[[127254,127254],\"disallowed_STD3_mapped\",[40,103,41]],[[127255,127255],\"disallowed_STD3_mapped\",[40,104,41]],[[127256,127256],\"disallowed_STD3_mapped\",[40,105,41]],[[127257,127257],\"disallowed_STD3_mapped\",[40,106,41]],[[127258,127258],\"disallowed_STD3_mapped\",[40,107,41]],[[127259,127259],\"disallowed_STD3_mapped\",[40,108,41]],[[127260,127260],\"disallowed_STD3_mapped\",[40,109,41]],[[127261,127261],\"disallowed_STD3_mapped\",[40,110,41]],[[127262,127262],\"disallowed_STD3_mapped\",[40,111,41]],[[127263,127263],\"disallowed_STD3_mapped\",[40,112,41]],[[127264,127264],\"disallowed_STD3_mapped\",[40,113,41]],[[127265,127265],\"disallowed_STD3_mapped\",[40,114,41]],[[127266,127266],\"disallowed_STD3_mapped\",[40,115,41]],[[127267,127267],\"disallowed_STD3_mapped\",[40,116,41]],[[127268,127268],\"disallowed_STD3_mapped\",[40,117,41]],[[127269,127269],\"disallowed_STD3_mapped\",[40,118,41]],[[127270,127270],\"disallowed_STD3_mapped\",[40,119,41]],[[127271,127271],\"disallowed_STD3_mapped\",[40,120,41]],[[127272,127272],\"disallowed_STD3_mapped\",[40,121,41]],[[127273,127273],\"disallowed_STD3_mapped\",[40,122,41]],[[127274,127274],\"mapped\",[12308,115,12309]],[[127275,127275],\"mapped\",[99]],[[127276,127276],\"mapped\",[114]],[[127277,127277],\"mapped\",[99,100]],[[127278,127278],\"mapped\",[119,122]],[[127279,127279],\"disallowed\"],[[127280,127280],\"mapped\",[97]],[[127281,127281],\"mapped\",[98]],[[127282,127282],\"mapped\",[99]],[[127283,127283],\"mapped\",[100]],[[127284,127284],\"mapped\",[101]],[[127285,127285],\"mapped\",[102]],[[127286,127286],\"mapped\",[103]],[[127287,127287],\"mapped\",[104]],[[127288,127288],\"mapped\",[105]],[[127289,127289],\"mapped\",[106]],[[127290,127290],\"mapped\",[107]],[[127291,127291],\"mapped\",[108]],[[127292,127292],\"mapped\",[109]],[[127293,127293],\"mapped\",[110]],[[127294,127294],\"mapped\",[111]],[[127295,127295],\"mapped\",[112]],[[127296,127296],\"mapped\",[113]],[[127297,127297],\"mapped\",[114]],[[127298,127298],\"mapped\",[115]],[[127299,127299],\"mapped\",[116]],[[127300,127300],\"mapped\",[117]],[[127301,127301],\"mapped\",[118]],[[127302,127302],\"mapped\",[119]],[[127303,127303],\"mapped\",[120]],[[127304,127304],\"mapped\",[121]],[[127305,127305],\"mapped\",[122]],[[127306,127306],\"mapped\",[104,118]],[[127307,127307],\"mapped\",[109,118]],[[127308,127308],\"mapped\",[115,100]],[[127309,127309],\"mapped\",[115,115]],[[127310,127310],\"mapped\",[112,112,118]],[[127311,127311],\"mapped\",[119,99]],[[127312,127318],\"valid\",[],\"NV8\"],[[127319,127319],\"valid\",[],\"NV8\"],[[127320,127326],\"valid\",[],\"NV8\"],[[127327,127327],\"valid\",[],\"NV8\"],[[127328,127337],\"valid\",[],\"NV8\"],[[127338,127338],\"mapped\",[109,99]],[[127339,127339],\"mapped\",[109,100]],[[127340,127343],\"disallowed\"],[[127344,127352],\"valid\",[],\"NV8\"],[[127353,127353],\"valid\",[],\"NV8\"],[[127354,127354],\"valid\",[],\"NV8\"],[[127355,127356],\"valid\",[],\"NV8\"],[[127357,127358],\"valid\",[],\"NV8\"],[[127359,127359],\"valid\",[],\"NV8\"],[[127360,127369],\"valid\",[],\"NV8\"],[[127370,127373],\"valid\",[],\"NV8\"],[[127374,127375],\"valid\",[],\"NV8\"],[[127376,127376],\"mapped\",[100,106]],[[127377,127386],\"valid\",[],\"NV8\"],[[127387,127461],\"disallowed\"],[[127462,127487],\"valid\",[],\"NV8\"],[[127488,127488],\"mapped\",[12411,12363]],[[127489,127489],\"mapped\",[12467,12467]],[[127490,127490],\"mapped\",[12469]],[[127491,127503],\"disallowed\"],[[127504,127504],\"mapped\",[25163]],[[127505,127505],\"mapped\",[23383]],[[127506,127506],\"mapped\",[21452]],[[127507,127507],\"mapped\",[12487]],[[127508,127508],\"mapped\",[20108]],[[127509,127509],\"mapped\",[22810]],[[127510,127510],\"mapped\",[35299]],[[127511,127511],\"mapped\",[22825]],[[127512,127512],\"mapped\",[20132]],[[127513,127513],\"mapped\",[26144]],[[127514,127514],\"mapped\",[28961]],[[127515,127515],\"mapped\",[26009]],[[127516,127516],\"mapped\",[21069]],[[127517,127517],\"mapped\",[24460]],[[127518,127518],\"mapped\",[20877]],[[127519,127519],\"mapped\",[26032]],[[127520,127520],\"mapped\",[21021]],[[127521,127521],\"mapped\",[32066]],[[127522,127522],\"mapped\",[29983]],[[127523,127523],\"mapped\",[36009]],[[127524,127524],\"mapped\",[22768]],[[127525,127525],\"mapped\",[21561]],[[127526,127526],\"mapped\",[28436]],[[127527,127527],\"mapped\",[25237]],[[127528,127528],\"mapped\",[25429]],[[127529,127529],\"mapped\",[19968]],[[127530,127530],\"mapped\",[19977]],[[127531,127531],\"mapped\",[36938]],[[127532,127532],\"mapped\",[24038]],[[127533,127533],\"mapped\",[20013]],[[127534,127534],\"mapped\",[21491]],[[127535,127535],\"mapped\",[25351]],[[127536,127536],\"mapped\",[36208]],[[127537,127537],\"mapped\",[25171]],[[127538,127538],\"mapped\",[31105]],[[127539,127539],\"mapped\",[31354]],[[127540,127540],\"mapped\",[21512]],[[127541,127541],\"mapped\",[28288]],[[127542,127542],\"mapped\",[26377]],[[127543,127543],\"mapped\",[26376]],[[127544,127544],\"mapped\",[30003]],[[127545,127545],\"mapped\",[21106]],[[127546,127546],\"mapped\",[21942]],[[127547,127551],\"disallowed\"],[[127552,127552],\"mapped\",[12308,26412,12309]],[[127553,127553],\"mapped\",[12308,19977,12309]],[[127554,127554],\"mapped\",[12308,20108,12309]],[[127555,127555],\"mapped\",[12308,23433,12309]],[[127556,127556],\"mapped\",[12308,28857,12309]],[[127557,127557],\"mapped\",[12308,25171,12309]],[[127558,127558],\"mapped\",[12308,30423,12309]],[[127559,127559],\"mapped\",[12308,21213,12309]],[[127560,127560],\"mapped\",[12308,25943,12309]],[[127561,127567],\"disallowed\"],[[127568,127568],\"mapped\",[24471]],[[127569,127569],\"mapped\",[21487]],[[127570,127743],\"disallowed\"],[[127744,127776],\"valid\",[],\"NV8\"],[[127777,127788],\"valid\",[],\"NV8\"],[[127789,127791],\"valid\",[],\"NV8\"],[[127792,127797],\"valid\",[],\"NV8\"],[[127798,127798],\"valid\",[],\"NV8\"],[[127799,127868],\"valid\",[],\"NV8\"],[[127869,127869],\"valid\",[],\"NV8\"],[[127870,127871],\"valid\",[],\"NV8\"],[[127872,127891],\"valid\",[],\"NV8\"],[[127892,127903],\"valid\",[],\"NV8\"],[[127904,127940],\"valid\",[],\"NV8\"],[[127941,127941],\"valid\",[],\"NV8\"],[[127942,127946],\"valid\",[],\"NV8\"],[[127947,127950],\"valid\",[],\"NV8\"],[[127951,127955],\"valid\",[],\"NV8\"],[[127956,127967],\"valid\",[],\"NV8\"],[[127968,127984],\"valid\",[],\"NV8\"],[[127985,127991],\"valid\",[],\"NV8\"],[[127992,127999],\"valid\",[],\"NV8\"],[[128000,128062],\"valid\",[],\"NV8\"],[[128063,128063],\"valid\",[],\"NV8\"],[[128064,128064],\"valid\",[],\"NV8\"],[[128065,128065],\"valid\",[],\"NV8\"],[[128066,128247],\"valid\",[],\"NV8\"],[[128248,128248],\"valid\",[],\"NV8\"],[[128249,128252],\"valid\",[],\"NV8\"],[[128253,128254],\"valid\",[],\"NV8\"],[[128255,128255],\"valid\",[],\"NV8\"],[[128256,128317],\"valid\",[],\"NV8\"],[[128318,128319],\"valid\",[],\"NV8\"],[[128320,128323],\"valid\",[],\"NV8\"],[[128324,128330],\"valid\",[],\"NV8\"],[[128331,128335],\"valid\",[],\"NV8\"],[[128336,128359],\"valid\",[],\"NV8\"],[[128360,128377],\"valid\",[],\"NV8\"],[[128378,128378],\"disallowed\"],[[128379,128419],\"valid\",[],\"NV8\"],[[128420,128420],\"disallowed\"],[[128421,128506],\"valid\",[],\"NV8\"],[[128507,128511],\"valid\",[],\"NV8\"],[[128512,128512],\"valid\",[],\"NV8\"],[[128513,128528],\"valid\",[],\"NV8\"],[[128529,128529],\"valid\",[],\"NV8\"],[[128530,128532],\"valid\",[],\"NV8\"],[[128533,128533],\"valid\",[],\"NV8\"],[[128534,128534],\"valid\",[],\"NV8\"],[[128535,128535],\"valid\",[],\"NV8\"],[[128536,128536],\"valid\",[],\"NV8\"],[[128537,128537],\"valid\",[],\"NV8\"],[[128538,128538],\"valid\",[],\"NV8\"],[[128539,128539],\"valid\",[],\"NV8\"],[[128540,128542],\"valid\",[],\"NV8\"],[[128543,128543],\"valid\",[],\"NV8\"],[[128544,128549],\"valid\",[],\"NV8\"],[[128550,128551],\"valid\",[],\"NV8\"],[[128552,128555],\"valid\",[],\"NV8\"],[[128556,128556],\"valid\",[],\"NV8\"],[[128557,128557],\"valid\",[],\"NV8\"],[[128558,128559],\"valid\",[],\"NV8\"],[[128560,128563],\"valid\",[],\"NV8\"],[[128564,128564],\"valid\",[],\"NV8\"],[[128565,128576],\"valid\",[],\"NV8\"],[[128577,128578],\"valid\",[],\"NV8\"],[[128579,128580],\"valid\",[],\"NV8\"],[[128581,128591],\"valid\",[],\"NV8\"],[[128592,128639],\"valid\",[],\"NV8\"],[[128640,128709],\"valid\",[],\"NV8\"],[[128710,128719],\"valid\",[],\"NV8\"],[[128720,128720],\"valid\",[],\"NV8\"],[[128721,128735],\"disallowed\"],[[128736,128748],\"valid\",[],\"NV8\"],[[128749,128751],\"disallowed\"],[[128752,128755],\"valid\",[],\"NV8\"],[[128756,128767],\"disallowed\"],[[128768,128883],\"valid\",[],\"NV8\"],[[128884,128895],\"disallowed\"],[[128896,128980],\"valid\",[],\"NV8\"],[[128981,129023],\"disallowed\"],[[129024,129035],\"valid\",[],\"NV8\"],[[129036,129039],\"disallowed\"],[[129040,129095],\"valid\",[],\"NV8\"],[[129096,129103],\"disallowed\"],[[129104,129113],\"valid\",[],\"NV8\"],[[129114,129119],\"disallowed\"],[[129120,129159],\"valid\",[],\"NV8\"],[[129160,129167],\"disallowed\"],[[129168,129197],\"valid\",[],\"NV8\"],[[129198,129295],\"disallowed\"],[[129296,129304],\"valid\",[],\"NV8\"],[[129305,129407],\"disallowed\"],[[129408,129412],\"valid\",[],\"NV8\"],[[129413,129471],\"disallowed\"],[[129472,129472],\"valid\",[],\"NV8\"],[[129473,131069],\"disallowed\"],[[131070,131071],\"disallowed\"],[[131072,173782],\"valid\"],[[173783,173823],\"disallowed\"],[[173824,177972],\"valid\"],[[177973,177983],\"disallowed\"],[[177984,178205],\"valid\"],[[178206,178207],\"disallowed\"],[[178208,183969],\"valid\"],[[183970,194559],\"disallowed\"],[[194560,194560],\"mapped\",[20029]],[[194561,194561],\"mapped\",[20024]],[[194562,194562],\"mapped\",[20033]],[[194563,194563],\"mapped\",[131362]],[[194564,194564],\"mapped\",[20320]],[[194565,194565],\"mapped\",[20398]],[[194566,194566],\"mapped\",[20411]],[[194567,194567],\"mapped\",[20482]],[[194568,194568],\"mapped\",[20602]],[[194569,194569],\"mapped\",[20633]],[[194570,194570],\"mapped\",[20711]],[[194571,194571],\"mapped\",[20687]],[[194572,194572],\"mapped\",[13470]],[[194573,194573],\"mapped\",[132666]],[[194574,194574],\"mapped\",[20813]],[[194575,194575],\"mapped\",[20820]],[[194576,194576],\"mapped\",[20836]],[[194577,194577],\"mapped\",[20855]],[[194578,194578],\"mapped\",[132380]],[[194579,194579],\"mapped\",[13497]],[[194580,194580],\"mapped\",[20839]],[[194581,194581],\"mapped\",[20877]],[[194582,194582],\"mapped\",[132427]],[[194583,194583],\"mapped\",[20887]],[[194584,194584],\"mapped\",[20900]],[[194585,194585],\"mapped\",[20172]],[[194586,194586],\"mapped\",[20908]],[[194587,194587],\"mapped\",[20917]],[[194588,194588],\"mapped\",[168415]],[[194589,194589],\"mapped\",[20981]],[[194590,194590],\"mapped\",[20995]],[[194591,194591],\"mapped\",[13535]],[[194592,194592],\"mapped\",[21051]],[[194593,194593],\"mapped\",[21062]],[[194594,194594],\"mapped\",[21106]],[[194595,194595],\"mapped\",[21111]],[[194596,194596],\"mapped\",[13589]],[[194597,194597],\"mapped\",[21191]],[[194598,194598],\"mapped\",[21193]],[[194599,194599],\"mapped\",[21220]],[[194600,194600],\"mapped\",[21242]],[[194601,194601],\"mapped\",[21253]],[[194602,194602],\"mapped\",[21254]],[[194603,194603],\"mapped\",[21271]],[[194604,194604],\"mapped\",[21321]],[[194605,194605],\"mapped\",[21329]],[[194606,194606],\"mapped\",[21338]],[[194607,194607],\"mapped\",[21363]],[[194608,194608],\"mapped\",[21373]],[[194609,194611],\"mapped\",[21375]],[[194612,194612],\"mapped\",[133676]],[[194613,194613],\"mapped\",[28784]],[[194614,194614],\"mapped\",[21450]],[[194615,194615],\"mapped\",[21471]],[[194616,194616],\"mapped\",[133987]],[[194617,194617],\"mapped\",[21483]],[[194618,194618],\"mapped\",[21489]],[[194619,194619],\"mapped\",[21510]],[[194620,194620],\"mapped\",[21662]],[[194621,194621],\"mapped\",[21560]],[[194622,194622],\"mapped\",[21576]],[[194623,194623],\"mapped\",[21608]],[[194624,194624],\"mapped\",[21666]],[[194625,194625],\"mapped\",[21750]],[[194626,194626],\"mapped\",[21776]],[[194627,194627],\"mapped\",[21843]],[[194628,194628],\"mapped\",[21859]],[[194629,194630],\"mapped\",[21892]],[[194631,194631],\"mapped\",[21913]],[[194632,194632],\"mapped\",[21931]],[[194633,194633],\"mapped\",[21939]],[[194634,194634],\"mapped\",[21954]],[[194635,194635],\"mapped\",[22294]],[[194636,194636],\"mapped\",[22022]],[[194637,194637],\"mapped\",[22295]],[[194638,194638],\"mapped\",[22097]],[[194639,194639],\"mapped\",[22132]],[[194640,194640],\"mapped\",[20999]],[[194641,194641],\"mapped\",[22766]],[[194642,194642],\"mapped\",[22478]],[[194643,194643],\"mapped\",[22516]],[[194644,194644],\"mapped\",[22541]],[[194645,194645],\"mapped\",[22411]],[[194646,194646],\"mapped\",[22578]],[[194647,194647],\"mapped\",[22577]],[[194648,194648],\"mapped\",[22700]],[[194649,194649],\"mapped\",[136420]],[[194650,194650],\"mapped\",[22770]],[[194651,194651],\"mapped\",[22775]],[[194652,194652],\"mapped\",[22790]],[[194653,194653],\"mapped\",[22810]],[[194654,194654],\"mapped\",[22818]],[[194655,194655],\"mapped\",[22882]],[[194656,194656],\"mapped\",[136872]],[[194657,194657],\"mapped\",[136938]],[[194658,194658],\"mapped\",[23020]],[[194659,194659],\"mapped\",[23067]],[[194660,194660],\"mapped\",[23079]],[[194661,194661],\"mapped\",[23000]],[[194662,194662],\"mapped\",[23142]],[[194663,194663],\"mapped\",[14062]],[[194664,194664],\"disallowed\"],[[194665,194665],\"mapped\",[23304]],[[194666,194667],\"mapped\",[23358]],[[194668,194668],\"mapped\",[137672]],[[194669,194669],\"mapped\",[23491]],[[194670,194670],\"mapped\",[23512]],[[194671,194671],\"mapped\",[23527]],[[194672,194672],\"mapped\",[23539]],[[194673,194673],\"mapped\",[138008]],[[194674,194674],\"mapped\",[23551]],[[194675,194675],\"mapped\",[23558]],[[194676,194676],\"disallowed\"],[[194677,194677],\"mapped\",[23586]],[[194678,194678],\"mapped\",[14209]],[[194679,194679],\"mapped\",[23648]],[[194680,194680],\"mapped\",[23662]],[[194681,194681],\"mapped\",[23744]],[[194682,194682],\"mapped\",[23693]],[[194683,194683],\"mapped\",[138724]],[[194684,194684],\"mapped\",[23875]],[[194685,194685],\"mapped\",[138726]],[[194686,194686],\"mapped\",[23918]],[[194687,194687],\"mapped\",[23915]],[[194688,194688],\"mapped\",[23932]],[[194689,194689],\"mapped\",[24033]],[[194690,194690],\"mapped\",[24034]],[[194691,194691],\"mapped\",[14383]],[[194692,194692],\"mapped\",[24061]],[[194693,194693],\"mapped\",[24104]],[[194694,194694],\"mapped\",[24125]],[[194695,194695],\"mapped\",[24169]],[[194696,194696],\"mapped\",[14434]],[[194697,194697],\"mapped\",[139651]],[[194698,194698],\"mapped\",[14460]],[[194699,194699],\"mapped\",[24240]],[[194700,194700],\"mapped\",[24243]],[[194701,194701],\"mapped\",[24246]],[[194702,194702],\"mapped\",[24266]],[[194703,194703],\"mapped\",[172946]],[[194704,194704],\"mapped\",[24318]],[[194705,194706],\"mapped\",[140081]],[[194707,194707],\"mapped\",[33281]],[[194708,194709],\"mapped\",[24354]],[[194710,194710],\"mapped\",[14535]],[[194711,194711],\"mapped\",[144056]],[[194712,194712],\"mapped\",[156122]],[[194713,194713],\"mapped\",[24418]],[[194714,194714],\"mapped\",[24427]],[[194715,194715],\"mapped\",[14563]],[[194716,194716],\"mapped\",[24474]],[[194717,194717],\"mapped\",[24525]],[[194718,194718],\"mapped\",[24535]],[[194719,194719],\"mapped\",[24569]],[[194720,194720],\"mapped\",[24705]],[[194721,194721],\"mapped\",[14650]],[[194722,194722],\"mapped\",[14620]],[[194723,194723],\"mapped\",[24724]],[[194724,194724],\"mapped\",[141012]],[[194725,194725],\"mapped\",[24775]],[[194726,194726],\"mapped\",[24904]],[[194727,194727],\"mapped\",[24908]],[[194728,194728],\"mapped\",[24910]],[[194729,194729],\"mapped\",[24908]],[[194730,194730],\"mapped\",[24954]],[[194731,194731],\"mapped\",[24974]],[[194732,194732],\"mapped\",[25010]],[[194733,194733],\"mapped\",[24996]],[[194734,194734],\"mapped\",[25007]],[[194735,194735],\"mapped\",[25054]],[[194736,194736],\"mapped\",[25074]],[[194737,194737],\"mapped\",[25078]],[[194738,194738],\"mapped\",[25104]],[[194739,194739],\"mapped\",[25115]],[[194740,194740],\"mapped\",[25181]],[[194741,194741],\"mapped\",[25265]],[[194742,194742],\"mapped\",[25300]],[[194743,194743],\"mapped\",[25424]],[[194744,194744],\"mapped\",[142092]],[[194745,194745],\"mapped\",[25405]],[[194746,194746],\"mapped\",[25340]],[[194747,194747],\"mapped\",[25448]],[[194748,194748],\"mapped\",[25475]],[[194749,194749],\"mapped\",[25572]],[[194750,194750],\"mapped\",[142321]],[[194751,194751],\"mapped\",[25634]],[[194752,194752],\"mapped\",[25541]],[[194753,194753],\"mapped\",[25513]],[[194754,194754],\"mapped\",[14894]],[[194755,194755],\"mapped\",[25705]],[[194756,194756],\"mapped\",[25726]],[[194757,194757],\"mapped\",[25757]],[[194758,194758],\"mapped\",[25719]],[[194759,194759],\"mapped\",[14956]],[[194760,194760],\"mapped\",[25935]],[[194761,194761],\"mapped\",[25964]],[[194762,194762],\"mapped\",[143370]],[[194763,194763],\"mapped\",[26083]],[[194764,194764],\"mapped\",[26360]],[[194765,194765],\"mapped\",[26185]],[[194766,194766],\"mapped\",[15129]],[[194767,194767],\"mapped\",[26257]],[[194768,194768],\"mapped\",[15112]],[[194769,194769],\"mapped\",[15076]],[[194770,194770],\"mapped\",[20882]],[[194771,194771],\"mapped\",[20885]],[[194772,194772],\"mapped\",[26368]],[[194773,194773],\"mapped\",[26268]],[[194774,194774],\"mapped\",[32941]],[[194775,194775],\"mapped\",[17369]],[[194776,194776],\"mapped\",[26391]],[[194777,194777],\"mapped\",[26395]],[[194778,194778],\"mapped\",[26401]],[[194779,194779],\"mapped\",[26462]],[[194780,194780],\"mapped\",[26451]],[[194781,194781],\"mapped\",[144323]],[[194782,194782],\"mapped\",[15177]],[[194783,194783],\"mapped\",[26618]],[[194784,194784],\"mapped\",[26501]],[[194785,194785],\"mapped\",[26706]],[[194786,194786],\"mapped\",[26757]],[[194787,194787],\"mapped\",[144493]],[[194788,194788],\"mapped\",[26766]],[[194789,194789],\"mapped\",[26655]],[[194790,194790],\"mapped\",[26900]],[[194791,194791],\"mapped\",[15261]],[[194792,194792],\"mapped\",[26946]],[[194793,194793],\"mapped\",[27043]],[[194794,194794],\"mapped\",[27114]],[[194795,194795],\"mapped\",[27304]],[[194796,194796],\"mapped\",[145059]],[[194797,194797],\"mapped\",[27355]],[[194798,194798],\"mapped\",[15384]],[[194799,194799],\"mapped\",[27425]],[[194800,194800],\"mapped\",[145575]],[[194801,194801],\"mapped\",[27476]],[[194802,194802],\"mapped\",[15438]],[[194803,194803],\"mapped\",[27506]],[[194804,194804],\"mapped\",[27551]],[[194805,194805],\"mapped\",[27578]],[[194806,194806],\"mapped\",[27579]],[[194807,194807],\"mapped\",[146061]],[[194808,194808],\"mapped\",[138507]],[[194809,194809],\"mapped\",[146170]],[[194810,194810],\"mapped\",[27726]],[[194811,194811],\"mapped\",[146620]],[[194812,194812],\"mapped\",[27839]],[[194813,194813],\"mapped\",[27853]],[[194814,194814],\"mapped\",[27751]],[[194815,194815],\"mapped\",[27926]],[[194816,194816],\"mapped\",[27966]],[[194817,194817],\"mapped\",[28023]],[[194818,194818],\"mapped\",[27969]],[[194819,194819],\"mapped\",[28009]],[[194820,194820],\"mapped\",[28024]],[[194821,194821],\"mapped\",[28037]],[[194822,194822],\"mapped\",[146718]],[[194823,194823],\"mapped\",[27956]],[[194824,194824],\"mapped\",[28207]],[[194825,194825],\"mapped\",[28270]],[[194826,194826],\"mapped\",[15667]],[[194827,194827],\"mapped\",[28363]],[[194828,194828],\"mapped\",[28359]],[[194829,194829],\"mapped\",[147153]],[[194830,194830],\"mapped\",[28153]],[[194831,194831],\"mapped\",[28526]],[[194832,194832],\"mapped\",[147294]],[[194833,194833],\"mapped\",[147342]],[[194834,194834],\"mapped\",[28614]],[[194835,194835],\"mapped\",[28729]],[[194836,194836],\"mapped\",[28702]],[[194837,194837],\"mapped\",[28699]],[[194838,194838],\"mapped\",[15766]],[[194839,194839],\"mapped\",[28746]],[[194840,194840],\"mapped\",[28797]],[[194841,194841],\"mapped\",[28791]],[[194842,194842],\"mapped\",[28845]],[[194843,194843],\"mapped\",[132389]],[[194844,194844],\"mapped\",[28997]],[[194845,194845],\"mapped\",[148067]],[[194846,194846],\"mapped\",[29084]],[[194847,194847],\"disallowed\"],[[194848,194848],\"mapped\",[29224]],[[194849,194849],\"mapped\",[29237]],[[194850,194850],\"mapped\",[29264]],[[194851,194851],\"mapped\",[149000]],[[194852,194852],\"mapped\",[29312]],[[194853,194853],\"mapped\",[29333]],[[194854,194854],\"mapped\",[149301]],[[194855,194855],\"mapped\",[149524]],[[194856,194856],\"mapped\",[29562]],[[194857,194857],\"mapped\",[29579]],[[194858,194858],\"mapped\",[16044]],[[194859,194859],\"mapped\",[29605]],[[194860,194861],\"mapped\",[16056]],[[194862,194862],\"mapped\",[29767]],[[194863,194863],\"mapped\",[29788]],[[194864,194864],\"mapped\",[29809]],[[194865,194865],\"mapped\",[29829]],[[194866,194866],\"mapped\",[29898]],[[194867,194867],\"mapped\",[16155]],[[194868,194868],\"mapped\",[29988]],[[194869,194869],\"mapped\",[150582]],[[194870,194870],\"mapped\",[30014]],[[194871,194871],\"mapped\",[150674]],[[194872,194872],\"mapped\",[30064]],[[194873,194873],\"mapped\",[139679]],[[194874,194874],\"mapped\",[30224]],[[194875,194875],\"mapped\",[151457]],[[194876,194876],\"mapped\",[151480]],[[194877,194877],\"mapped\",[151620]],[[194878,194878],\"mapped\",[16380]],[[194879,194879],\"mapped\",[16392]],[[194880,194880],\"mapped\",[30452]],[[194881,194881],\"mapped\",[151795]],[[194882,194882],\"mapped\",[151794]],[[194883,194883],\"mapped\",[151833]],[[194884,194884],\"mapped\",[151859]],[[194885,194885],\"mapped\",[30494]],[[194886,194887],\"mapped\",[30495]],[[194888,194888],\"mapped\",[30538]],[[194889,194889],\"mapped\",[16441]],[[194890,194890],\"mapped\",[30603]],[[194891,194891],\"mapped\",[16454]],[[194892,194892],\"mapped\",[16534]],[[194893,194893],\"mapped\",[152605]],[[194894,194894],\"mapped\",[30798]],[[194895,194895],\"mapped\",[30860]],[[194896,194896],\"mapped\",[30924]],[[194897,194897],\"mapped\",[16611]],[[194898,194898],\"mapped\",[153126]],[[194899,194899],\"mapped\",[31062]],[[194900,194900],\"mapped\",[153242]],[[194901,194901],\"mapped\",[153285]],[[194902,194902],\"mapped\",[31119]],[[194903,194903],\"mapped\",[31211]],[[194904,194904],\"mapped\",[16687]],[[194905,194905],\"mapped\",[31296]],[[194906,194906],\"mapped\",[31306]],[[194907,194907],\"mapped\",[31311]],[[194908,194908],\"mapped\",[153980]],[[194909,194910],\"mapped\",[154279]],[[194911,194911],\"disallowed\"],[[194912,194912],\"mapped\",[16898]],[[194913,194913],\"mapped\",[154539]],[[194914,194914],\"mapped\",[31686]],[[194915,194915],\"mapped\",[31689]],[[194916,194916],\"mapped\",[16935]],[[194917,194917],\"mapped\",[154752]],[[194918,194918],\"mapped\",[31954]],[[194919,194919],\"mapped\",[17056]],[[194920,194920],\"mapped\",[31976]],[[194921,194921],\"mapped\",[31971]],[[194922,194922],\"mapped\",[32000]],[[194923,194923],\"mapped\",[155526]],[[194924,194924],\"mapped\",[32099]],[[194925,194925],\"mapped\",[17153]],[[194926,194926],\"mapped\",[32199]],[[194927,194927],\"mapped\",[32258]],[[194928,194928],\"mapped\",[32325]],[[194929,194929],\"mapped\",[17204]],[[194930,194930],\"mapped\",[156200]],[[194931,194931],\"mapped\",[156231]],[[194932,194932],\"mapped\",[17241]],[[194933,194933],\"mapped\",[156377]],[[194934,194934],\"mapped\",[32634]],[[194935,194935],\"mapped\",[156478]],[[194936,194936],\"mapped\",[32661]],[[194937,194937],\"mapped\",[32762]],[[194938,194938],\"mapped\",[32773]],[[194939,194939],\"mapped\",[156890]],[[194940,194940],\"mapped\",[156963]],[[194941,194941],\"mapped\",[32864]],[[194942,194942],\"mapped\",[157096]],[[194943,194943],\"mapped\",[32880]],[[194944,194944],\"mapped\",[144223]],[[194945,194945],\"mapped\",[17365]],[[194946,194946],\"mapped\",[32946]],[[194947,194947],\"mapped\",[33027]],[[194948,194948],\"mapped\",[17419]],[[194949,194949],\"mapped\",[33086]],[[194950,194950],\"mapped\",[23221]],[[194951,194951],\"mapped\",[157607]],[[194952,194952],\"mapped\",[157621]],[[194953,194953],\"mapped\",[144275]],[[194954,194954],\"mapped\",[144284]],[[194955,194955],\"mapped\",[33281]],[[194956,194956],\"mapped\",[33284]],[[194957,194957],\"mapped\",[36766]],[[194958,194958],\"mapped\",[17515]],[[194959,194959],\"mapped\",[33425]],[[194960,194960],\"mapped\",[33419]],[[194961,194961],\"mapped\",[33437]],[[194962,194962],\"mapped\",[21171]],[[194963,194963],\"mapped\",[33457]],[[194964,194964],\"mapped\",[33459]],[[194965,194965],\"mapped\",[33469]],[[194966,194966],\"mapped\",[33510]],[[194967,194967],\"mapped\",[158524]],[[194968,194968],\"mapped\",[33509]],[[194969,194969],\"mapped\",[33565]],[[194970,194970],\"mapped\",[33635]],[[194971,194971],\"mapped\",[33709]],[[194972,194972],\"mapped\",[33571]],[[194973,194973],\"mapped\",[33725]],[[194974,194974],\"mapped\",[33767]],[[194975,194975],\"mapped\",[33879]],[[194976,194976],\"mapped\",[33619]],[[194977,194977],\"mapped\",[33738]],[[194978,194978],\"mapped\",[33740]],[[194979,194979],\"mapped\",[33756]],[[194980,194980],\"mapped\",[158774]],[[194981,194981],\"mapped\",[159083]],[[194982,194982],\"mapped\",[158933]],[[194983,194983],\"mapped\",[17707]],[[194984,194984],\"mapped\",[34033]],[[194985,194985],\"mapped\",[34035]],[[194986,194986],\"mapped\",[34070]],[[194987,194987],\"mapped\",[160714]],[[194988,194988],\"mapped\",[34148]],[[194989,194989],\"mapped\",[159532]],[[194990,194990],\"mapped\",[17757]],[[194991,194991],\"mapped\",[17761]],[[194992,194992],\"mapped\",[159665]],[[194993,194993],\"mapped\",[159954]],[[194994,194994],\"mapped\",[17771]],[[194995,194995],\"mapped\",[34384]],[[194996,194996],\"mapped\",[34396]],[[194997,194997],\"mapped\",[34407]],[[194998,194998],\"mapped\",[34409]],[[194999,194999],\"mapped\",[34473]],[[195000,195000],\"mapped\",[34440]],[[195001,195001],\"mapped\",[34574]],[[195002,195002],\"mapped\",[34530]],[[195003,195003],\"mapped\",[34681]],[[195004,195004],\"mapped\",[34600]],[[195005,195005],\"mapped\",[34667]],[[195006,195006],\"mapped\",[34694]],[[195007,195007],\"disallowed\"],[[195008,195008],\"mapped\",[34785]],[[195009,195009],\"mapped\",[34817]],[[195010,195010],\"mapped\",[17913]],[[195011,195011],\"mapped\",[34912]],[[195012,195012],\"mapped\",[34915]],[[195013,195013],\"mapped\",[161383]],[[195014,195014],\"mapped\",[35031]],[[195015,195015],\"mapped\",[35038]],[[195016,195016],\"mapped\",[17973]],[[195017,195017],\"mapped\",[35066]],[[195018,195018],\"mapped\",[13499]],[[195019,195019],\"mapped\",[161966]],[[195020,195020],\"mapped\",[162150]],[[195021,195021],\"mapped\",[18110]],[[195022,195022],\"mapped\",[18119]],[[195023,195023],\"mapped\",[35488]],[[195024,195024],\"mapped\",[35565]],[[195025,195025],\"mapped\",[35722]],[[195026,195026],\"mapped\",[35925]],[[195027,195027],\"mapped\",[162984]],[[195028,195028],\"mapped\",[36011]],[[195029,195029],\"mapped\",[36033]],[[195030,195030],\"mapped\",[36123]],[[195031,195031],\"mapped\",[36215]],[[195032,195032],\"mapped\",[163631]],[[195033,195033],\"mapped\",[133124]],[[195034,195034],\"mapped\",[36299]],[[195035,195035],\"mapped\",[36284]],[[195036,195036],\"mapped\",[36336]],[[195037,195037],\"mapped\",[133342]],[[195038,195038],\"mapped\",[36564]],[[195039,195039],\"mapped\",[36664]],[[195040,195040],\"mapped\",[165330]],[[195041,195041],\"mapped\",[165357]],[[195042,195042],\"mapped\",[37012]],[[195043,195043],\"mapped\",[37105]],[[195044,195044],\"mapped\",[37137]],[[195045,195045],\"mapped\",[165678]],[[195046,195046],\"mapped\",[37147]],[[195047,195047],\"mapped\",[37432]],[[195048,195048],\"mapped\",[37591]],[[195049,195049],\"mapped\",[37592]],[[195050,195050],\"mapped\",[37500]],[[195051,195051],\"mapped\",[37881]],[[195052,195052],\"mapped\",[37909]],[[195053,195053],\"mapped\",[166906]],[[195054,195054],\"mapped\",[38283]],[[195055,195055],\"mapped\",[18837]],[[195056,195056],\"mapped\",[38327]],[[195057,195057],\"mapped\",[167287]],[[195058,195058],\"mapped\",[18918]],[[195059,195059],\"mapped\",[38595]],[[195060,195060],\"mapped\",[23986]],[[195061,195061],\"mapped\",[38691]],[[195062,195062],\"mapped\",[168261]],[[195063,195063],\"mapped\",[168474]],[[195064,195064],\"mapped\",[19054]],[[195065,195065],\"mapped\",[19062]],[[195066,195066],\"mapped\",[38880]],[[195067,195067],\"mapped\",[168970]],[[195068,195068],\"mapped\",[19122]],[[195069,195069],\"mapped\",[169110]],[[195070,195071],\"mapped\",[38923]],[[195072,195072],\"mapped\",[38953]],[[195073,195073],\"mapped\",[169398]],[[195074,195074],\"mapped\",[39138]],[[195075,195075],\"mapped\",[19251]],[[195076,195076],\"mapped\",[39209]],[[195077,195077],\"mapped\",[39335]],[[195078,195078],\"mapped\",[39362]],[[195079,195079],\"mapped\",[39422]],[[195080,195080],\"mapped\",[19406]],[[195081,195081],\"mapped\",[170800]],[[195082,195082],\"mapped\",[39698]],[[195083,195083],\"mapped\",[40000]],[[195084,195084],\"mapped\",[40189]],[[195085,195085],\"mapped\",[19662]],[[195086,195086],\"mapped\",[19693]],[[195087,195087],\"mapped\",[40295]],[[195088,195088],\"mapped\",[172238]],[[195089,195089],\"mapped\",[19704]],[[195090,195090],\"mapped\",[172293]],[[195091,195091],\"mapped\",[172558]],[[195092,195092],\"mapped\",[172689]],[[195093,195093],\"mapped\",[40635]],[[195094,195094],\"mapped\",[19798]],[[195095,195095],\"mapped\",[40697]],[[195096,195096],\"mapped\",[40702]],[[195097,195097],\"mapped\",[40709]],[[195098,195098],\"mapped\",[40719]],[[195099,195099],\"mapped\",[40726]],[[195100,195100],\"mapped\",[40763]],[[195101,195101],\"mapped\",[173568]],[[195102,196605],\"disallowed\"],[[196606,196607],\"disallowed\"],[[196608,262141],\"disallowed\"],[[262142,262143],\"disallowed\"],[[262144,327677],\"disallowed\"],[[327678,327679],\"disallowed\"],[[327680,393213],\"disallowed\"],[[393214,393215],\"disallowed\"],[[393216,458749],\"disallowed\"],[[458750,458751],\"disallowed\"],[[458752,524285],\"disallowed\"],[[524286,524287],\"disallowed\"],[[524288,589821],\"disallowed\"],[[589822,589823],\"disallowed\"],[[589824,655357],\"disallowed\"],[[655358,655359],\"disallowed\"],[[655360,720893],\"disallowed\"],[[720894,720895],\"disallowed\"],[[720896,786429],\"disallowed\"],[[786430,786431],\"disallowed\"],[[786432,851965],\"disallowed\"],[[851966,851967],\"disallowed\"],[[851968,917501],\"disallowed\"],[[917502,917503],\"disallowed\"],[[917504,917504],\"disallowed\"],[[917505,917505],\"disallowed\"],[[917506,917535],\"disallowed\"],[[917536,917631],\"disallowed\"],[[917632,917759],\"disallowed\"],[[917760,917999],\"ignored\"],[[918000,983037],\"disallowed\"],[[983038,983039],\"disallowed\"],[[983040,1048573],\"disallowed\"],[[1048574,1048575],\"disallowed\"],[[1048576,1114109],\"disallowed\"],[[1114110,1114111],\"disallowed\"]]", "\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n", "\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n", "\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n", "\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n", "\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = /<meta.+?charset=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// html4\n\tif (!res && str) {\n\t\tres = /<meta[\\s]+?http-equiv=(['\"])content-type\\1[\\s]+?content=(['\"])(.+?)\\2/i.exec(str);\n\t\tif (!res) {\n\t\t\tres = /<meta[\\s]+?content=(['\"])(.+?)\\1[\\s]+?http-equiv=(['\"])content-type\\3/i.exec(str);\n\t\t\tif (res) {\n\t\t\t\tres.pop(); // drop last quote\n\t\t\t}\n\t\t}\n\n\t\tif (res) {\n\t\t\tres = /charset=(.*)/i.exec(res.pop());\n\t\t}\n\t}\n\n\t// xml\n\tif (!res && str) {\n\t\tres = /<\\?xml.+?encoding=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// found charset\n\tif (res) {\n\t\tcharset = res.pop();\n\n\t\t// prevent decode issues when sites use incorrect encoding\n\t\t// ref: https://hsivonen.fi/encoding-menu/\n\t\tif (charset === 'gb2312' || charset === 'gbk') {\n\t\t\tcharset = 'gb18030';\n\t\t}\n\t}\n\n\t// turn raw buffers into a single utf-8 buffer\n\treturn convert(buffer, 'UTF-8', charset).toString();\n}\n\n/**\n * Detect a URLSearchParams object\n * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143\n *\n * @param Object obj Object to detect by type or brand\n * @return String\n */\nfunction isURLSearchParams(obj) {\n\t// Duck-typing as a necessary condition.\n\tif (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {\n\t\treturn false;\n\t}\n\n\t// Brand-checking and more duck-typing as optional condition.\n\treturn obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';\n}\n\n/**\n * Check if `obj` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} obj\n * @return {boolean}\n */\nfunction isBlob(obj) {\n\treturn typeof obj === 'object' && typeof obj.arrayBuffer === 'function' && typeof obj.type === 'string' && typeof obj.stream === 'function' && typeof obj.constructor === 'function' && typeof obj.constructor.name === 'string' && /^(Blob|File)$/.test(obj.constructor.name) && /^(Blob|File)$/.test(obj[Symbol.toStringTag]);\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @return Mixed\n */\nfunction clone(instance) {\n\tlet p1, p2;\n\tlet body = instance.body;\n\n\t// don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif (body instanceof Stream && typeof body.getBoundary !== 'function') {\n\t\t// tee instance body\n\t\tp1 = new PassThrough();\n\t\tp2 = new PassThrough();\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].body = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n}\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param Mixed instance Any options.body input\n */\nfunction extractContentType(body) {\n\tif (body === null) {\n\t\t// body is null\n\t\treturn null;\n\t} else if (typeof body === 'string') {\n\t\t// body is string\n\t\treturn 'text/plain;charset=UTF-8';\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t} else if (isBlob(body)) {\n\t\t// body is blob\n\t\treturn body.type || null;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn null;\n\t} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\treturn null;\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\treturn null;\n\t} else if (typeof body.getBoundary === 'function') {\n\t\t// detect form data input from form-data module\n\t\treturn `multipart/form-data;boundary=${body.getBoundary()}`;\n\t} else if (body instanceof Stream) {\n\t\t// body is stream\n\t\t// can't really do much about this\n\t\treturn null;\n\t} else {\n\t\t// Body constructor defaults other things to string\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n}\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param Body instance Instance of Body\n * @return Number? Number of bytes, or null if not possible\n */\nfunction getTotalBytes(instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\treturn 0;\n\t} else if (isBlob(body)) {\n\t\treturn body.size;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn body.length;\n\t} else if (body && typeof body.getLengthSync === 'function') {\n\t\t// detect form data input from form-data module\n\t\tif (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x\n\t\tbody.hasKnownLength && body.hasKnownLength()) {\n\t\t\t// 2.x\n\t\t\treturn body.getLengthSync();\n\t\t}\n\t\treturn null;\n\t} else {\n\t\t// body is stream\n\t\treturn null;\n\t}\n}\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param Body instance Instance of Body\n * @return Void\n */\nfunction writeToStream(dest, instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\tdest.end();\n\t} else if (isBlob(body)) {\n\t\tbody.stream().pipe(dest);\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\tdest.write(body);\n\t\tdest.end();\n\t} else {\n\t\t// body is stream\n\t\tbody.pipe(dest);\n\t}\n}\n\n// expose Promise\nBody.Promise = global.Promise;\n\n/**\n * headers.js\n *\n * Headers class offers convenient helpers\n */\n\nconst invalidTokenRegex = /[^\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]/;\nconst invalidHeaderCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/;\n\nfunction validateName(name) {\n\tname = `${name}`;\n\tif (invalidTokenRegex.test(name) || name === '') {\n\t\tthrow new TypeError(`${name} is not a legal HTTP header name`);\n\t}\n}\n\nfunction validateValue(value) {\n\tvalue = `${value}`;\n\tif (invalidHeaderCharRegex.test(value)) {\n\t\tthrow new TypeError(`${value} is not a legal HTTP header value`);\n\t}\n}\n\n/**\n * Find the key in the map object given a header name.\n *\n * Returns undefined if not found.\n *\n * @param String name Header name\n * @return String|Undefined\n */\nfunction find(map, name) {\n\tname = name.toLowerCase();\n\tfor (const key in map) {\n\t\tif (key.toLowerCase() === name) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst MAP = Symbol('map');\nclass Headers {\n\t/**\n * Headers class\n *\n * @param Object headers Response headers\n * @return Void\n */\n\tconstructor() {\n\t\tlet init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence<sequence<ByteString>>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record<ByteString, ByteString>\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nconst isSameProtocol = function isSameProtocol(destination, original) {\n\tconst orig = new URL$1(original).protocol;\n\tconst dest = new URL$1(destination).protocol;\n\n\treturn orig === dest;\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\tdestroyStream(request.body, error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(req, function (err) {\n\t\t\tif (signal && signal.aborted) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (parseInt(process.version.substring(1)) < 14) {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\treq.on('socket', function (s) {\n\t\t\t\ts.addListener('close', function (hadError) {\n\t\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\t\tconst hasDataListener = s.listenerCount('data') > 0;\n\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && hasDataListener && !hadError && !(signal && signal.aborted)) {\n\t\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', err);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.on('end', function () {\n\t\t\t\t\t// some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted.\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tlet socket;\n\n\trequest.on('socket', function (s) {\n\t\tsocket = s;\n\t});\n\n\trequest.on('response', function (response) {\n\t\tconst headers = response.headers;\n\n\t\tif (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) {\n\t\t\tresponse.once('close', function (hadError) {\n\t\t\t\t// tests for socket presence, as in some situations the\n\t\t\t\t// the 'socket' event is not triggered for the request\n\t\t\t\t// (happens in deno), avoids `TypeError`\n\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\tconst hasDataListener = socket && socket.listenerCount('data') > 0;\n\n\t\t\t\tif (hasDataListener && !hadError) {\n\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\terrorCallback(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction destroyStream(stream, err) {\n\tif (stream.destroy) {\n\t\tstream.destroy(err);\n\t} else {\n\t\t// node < 8\n\t\tstream.emit('error', err);\n\t\tstream.end();\n\t}\n}\n\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n", "const nodeFetch = require('node-fetch')\nconst realFetch = nodeFetch.default || nodeFetch\n\nconst fetch = function (url, options) {\n // Support schemaless URIs on the server for parity with the browser.\n // Ex: //github.com/ -> https://github.com/\n if (/^\\/\\//.test(url)) {\n url = 'https:' + url\n }\n return realFetch.call(this, url, options)\n}\n\nfetch.ponyfill = true\n\nmodule.exports = exports = fetch\nexports.fetch = fetch\nexports.Headers = nodeFetch.Headers\nexports.Request = nodeFetch.Request\nexports.Response = nodeFetch.Response\n\n// Needed for TypeScript consumers without esModuleInterop.\nexports.default = fetch\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFetch = void 0;\nconst react_1 = require(\"react\");\nconst media_typer_1 = __importDefault(require(\"media-typer\"));\nconst content_type_1 = __importDefault(require(\"content-type\"));\nconst useCachedPromise_1 = require(\"./useCachedPromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst cross_fetch_1 = require(\"cross-fetch\");\nfunction isJSON(contentTypeHeader) {\n if (contentTypeHeader) {\n const ct = content_type_1.default.parse(contentTypeHeader);\n const mediaType = media_typer_1.default.parse(ct.type);\n if (mediaType.subtype === \"json\") {\n return true;\n }\n if (mediaType.suffix === \"json\") {\n return true;\n }\n if (mediaType.suffix && /\\bjson\\b/i.test(mediaType.suffix)) {\n return true;\n }\n if (mediaType.subtype && /\\bjson\\b/i.test(mediaType.subtype)) {\n return true;\n }\n }\n return false;\n}\nasync function defaultParsing(response) {\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const contentTypeHeader = response.headers.get(\"content-type\");\n if (contentTypeHeader && isJSON(contentTypeHeader)) {\n return await response.json();\n }\n return await response.text();\n}\n/**\n * Fetch the URL and returns the {@link AsyncState} corresponding to the execution of the fetch. The last value will be kept between command runs.\n *\n * @example\n * ```\n * import { useFetch } from '@raycast/utils';\n *\n * export default function Command() {\n * const { isLoading, data, revalidate } = useFetch('https://api.example');\n *\n * return (\n * <Detail\n * isLoading={isLoading}\n * markdown={data}\n * actions={\n * <ActionPanel>\n * <Action title=\"Reload\" onAction={() => revalidate()} />\n * </ActionPanel>\n * }\n * />\n * );\n * };\n * ```\n */\nfunction useFetch(url, options) {\n const { parseResponse, initialData, execute, keepPreviousData, onError, onData, onWillExecute, ...fetchOptions } = options || {};\n const useCachedPromiseOptions = {\n initialData,\n execute,\n keepPreviousData,\n onError,\n onData,\n onWillExecute,\n };\n const parseResponseRef = (0, useLatest_1.useLatest)(parseResponse || defaultParsing);\n const abortable = (0, react_1.useRef)();\n const fn = (0, react_1.useCallback)(async (url, options) => {\n const res = await (0, cross_fetch_1.fetch)(url, { signal: abortable.current?.signal, ...options });\n return (await parseResponseRef.current(res));\n }, [parseResponseRef]);\n // @ts-expect-error T can't be a Promise so it's actually the same\n return (0, useCachedPromise_1.useCachedPromise)(fn, [url, fetchOptions], { ...useCachedPromiseOptions, abortable });\n}\nexports.useFetch = useFetch;\n", "/**\n * This is not the set of all possible signals.\n *\n * It IS, however, the set of all signals that trigger\n * an exit on either Linux or BSD systems. Linux is a\n * superset of the signal names supported on BSD, and\n * the unknown signals just fail to register, so we can\n * catch that easily enough.\n *\n * Windows signals are a different set, since there are\n * signals that terminate Windows processes, but don't\n * terminate (or don't even exist) on Posix systems.\n *\n * Don't bother with SIGKILL. It's uncatchable, which\n * means that we can't fire any callbacks anyway.\n *\n * If a user does happen to register a handler on a non-\n * fatal signal like SIGWINCH or something, and then\n * exit, it'll end up firing `process.emit('exit')`, so\n * the handler will be fired anyway.\n *\n * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n * artificially, inherently leave the process in a\n * state from which it is not safe to try and enter JS\n * listeners.\n */\nexport const signals: NodeJS.Signals[] = []\nsignals.push('SIGHUP', 'SIGINT', 'SIGTERM')\n\nif (process.platform !== 'win32') {\n signals.push(\n 'SIGALRM',\n 'SIGABRT',\n 'SIGVTALRM',\n 'SIGXCPU',\n 'SIGXFSZ',\n 'SIGUSR2',\n 'SIGTRAP',\n 'SIGSYS',\n 'SIGQUIT',\n 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n )\n}\n\nif (process.platform === 'linux') {\n signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT')\n}\n", "// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nimport { signals } from './signals.js'\nexport { signals }\n\n// just a loosened process type so we can do some evil things\ntype ProcessRE = NodeJS.Process & {\n reallyExit: (code?: number | undefined | null) => any\n emit: (ev: string, ...a: any[]) => any\n}\n\nconst processOk = (process: any): process is ProcessRE =>\n !!process &&\n typeof process === 'object' &&\n typeof process.removeListener === 'function' &&\n typeof process.emit === 'function' &&\n typeof process.reallyExit === 'function' &&\n typeof process.listeners === 'function' &&\n typeof process.kill === 'function' &&\n typeof process.pid === 'number' &&\n typeof process.on === 'function'\n\nconst kExitEmitter = Symbol.for('signal-exit emitter')\nconst global: typeof globalThis & { [kExitEmitter]?: Emitter } = globalThis\nconst ObjectDefineProperty = Object.defineProperty.bind(Object)\n\n/**\n * A function that takes an exit code and signal as arguments\n *\n * In the case of signal exits *only*, a return value of true\n * will indicate that the signal is being handled, and we should\n * not synthetically exit with the signal we received. Regardless\n * of the handler return value, the handler is unloaded when an\n * otherwise fatal signal is received, so you get exactly 1 shot\n * at it, unless you add another onExit handler at that point.\n *\n * In the case of numeric code exits, we may already have committed\n * to exiting the process, for example via a fatal exception or\n * unhandled promise rejection, so it is impossible to stop safely.\n */\nexport type Handler = (\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n) => true | void\ntype ExitEvent = 'afterExit' | 'exit'\ntype Emitted = { [k in ExitEvent]: boolean }\ntype Listeners = { [k in ExitEvent]: Handler[] }\n\n// teeny special purpose ee\nclass Emitter {\n emitted: Emitted = {\n afterExit: false,\n exit: false,\n }\n\n listeners: Listeners = {\n afterExit: [],\n exit: [],\n }\n\n count: number = 0\n id: number = Math.random()\n\n constructor() {\n if (global[kExitEmitter]) {\n return global[kExitEmitter]\n }\n ObjectDefineProperty(global, kExitEmitter, {\n value: this,\n writable: false,\n enumerable: false,\n configurable: false,\n })\n }\n\n on(ev: ExitEvent, fn: Handler) {\n this.listeners[ev].push(fn)\n }\n\n removeListener(ev: ExitEvent, fn: Handler) {\n const list = this.listeners[ev]\n const i = list.indexOf(fn)\n /* c8 ignore start */\n if (i === -1) {\n return\n }\n /* c8 ignore stop */\n if (i === 0 && list.length === 1) {\n list.length = 0\n } else {\n list.splice(i, 1)\n }\n }\n\n emit(\n ev: ExitEvent,\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n ): boolean {\n if (this.emitted[ev]) {\n return false\n }\n this.emitted[ev] = true\n let ret: boolean = false\n for (const fn of this.listeners[ev]) {\n ret = fn(code, signal) === true || ret\n }\n if (ev === 'exit') {\n ret = this.emit('afterExit', code, signal) || ret\n }\n return ret\n }\n}\n\nabstract class SignalExitBase {\n abstract onExit(cb: Handler, opts?: { alwaysLast?: boolean }): () => void\n abstract load(): void\n abstract unload(): void\n}\n\nconst signalExitWrap = <T extends SignalExitBase>(handler: T) => {\n return {\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n return handler.onExit(cb, opts)\n },\n load() {\n return handler.load()\n },\n unload() {\n return handler.unload()\n },\n }\n}\n\nclass SignalExitFallback extends SignalExitBase {\n onExit() {\n return () => {}\n }\n load() {}\n unload() {}\n}\n\nclass SignalExit extends SignalExitBase {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n /* c8 ignore start */\n #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP'\n /* c8 ignore stop */\n #emitter = new Emitter()\n #process: ProcessRE\n #originalProcessEmit: ProcessRE['emit']\n #originalProcessReallyExit: ProcessRE['reallyExit']\n\n #sigListeners: { [k in NodeJS.Signals]?: () => void } = {}\n #loaded: boolean = false\n\n constructor(process: ProcessRE) {\n super()\n this.#process = process\n // { <signal>: <listener fn>, ... }\n this.#sigListeners = {}\n for (const sig of signals) {\n this.#sigListeners[sig] = () => {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n const listeners = this.#process.listeners(sig)\n let { count } = this.#emitter\n // This is a workaround for the fact that signal-exit v3 and signal\n // exit v4 are not aware of each other, and each will attempt to let\n // the other handle it, so neither of them do. To correct this, we\n // detect if we're the only handler *except* for previous versions\n // of signal-exit, and increment by the count of listeners it has\n // created.\n /* c8 ignore start */\n const p = process as unknown as {\n __signal_exit_emitter__?: { count: number }\n }\n if (\n typeof p.__signal_exit_emitter__ === 'object' &&\n typeof p.__signal_exit_emitter__.count === 'number'\n ) {\n count += p.__signal_exit_emitter__.count\n }\n /* c8 ignore stop */\n if (listeners.length === count) {\n this.unload()\n const ret = this.#emitter.emit('exit', null, sig)\n /* c8 ignore start */\n const s = sig === 'SIGHUP' ? this.#hupSig : sig\n if (!ret) process.kill(process.pid, s)\n /* c8 ignore stop */\n }\n }\n }\n\n this.#originalProcessReallyExit = process.reallyExit\n this.#originalProcessEmit = process.emit\n }\n\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return () => {}\n }\n /* c8 ignore stop */\n\n if (this.#loaded === false) {\n this.load()\n }\n\n const ev = opts?.alwaysLast ? 'afterExit' : 'exit'\n this.#emitter.on(ev, cb)\n return () => {\n this.#emitter.removeListener(ev, cb)\n if (\n this.#emitter.listeners['exit'].length === 0 &&\n this.#emitter.listeners['afterExit'].length === 0\n ) {\n this.unload()\n }\n }\n }\n\n load() {\n if (this.#loaded) {\n return\n }\n this.#loaded = true\n\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n this.#emitter.count += 1\n\n for (const sig of signals) {\n try {\n const fn = this.#sigListeners[sig]\n if (fn) this.#process.on(sig, fn)\n } catch (_) {}\n }\n\n this.#process.emit = (ev: string, ...a: any[]) => {\n return this.#processEmit(ev, ...a)\n }\n this.#process.reallyExit = (code?: number | null | undefined) => {\n return this.#processReallyExit(code)\n }\n }\n\n unload() {\n if (!this.#loaded) {\n return\n }\n this.#loaded = false\n\n signals.forEach(sig => {\n const listener = this.#sigListeners[sig]\n /* c8 ignore start */\n if (!listener) {\n throw new Error('Listener not defined for signal: ' + sig)\n }\n /* c8 ignore stop */\n try {\n this.#process.removeListener(sig, listener)\n /* c8 ignore start */\n } catch (_) {}\n /* c8 ignore stop */\n })\n this.#process.emit = this.#originalProcessEmit\n this.#process.reallyExit = this.#originalProcessReallyExit\n this.#emitter.count -= 1\n }\n\n #processReallyExit(code?: number | null | undefined) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return 0\n }\n this.#process.exitCode = code || 0\n /* c8 ignore stop */\n\n this.#emitter.emit('exit', this.#process.exitCode, null)\n return this.#originalProcessReallyExit.call(\n this.#process,\n this.#process.exitCode\n )\n }\n\n #processEmit(ev: string, ...args: any[]): any {\n const og = this.#originalProcessEmit\n if (ev === 'exit' && processOk(this.#process)) {\n if (typeof args[0] === 'number') {\n this.#process.exitCode = args[0]\n /* c8 ignore start */\n }\n /* c8 ignore start */\n const ret = og.call(this.#process, ev, ...args)\n /* c8 ignore start */\n this.#emitter.emit('exit', this.#process.exitCode, null)\n /* c8 ignore stop */\n return ret\n } else {\n return og.call(this.#process, ev, ...args)\n }\n }\n}\n\nconst process = globalThis.process\n// wrap so that we call the method on the actual handler, without\n// exporting it directly.\nexport const {\n /**\n * Called when the process is exiting, whether via signal, explicit\n * exit, or running out of stuff to do.\n *\n * If the global process object is not suitable for instrumentation,\n * then this will be a no-op.\n *\n * Returns a function that may be used to unload signal-exit.\n */\n onExit,\n\n /**\n * Load the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n load,\n\n /**\n * Unload the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n unload,\n} = signalExitWrap(\n processOk(process) ? new SignalExit(process) : new SignalExitFallback()\n)\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultParsing = exports.handleOutput = exports.getSpawnedResult = exports.getSpawnedPromise = void 0;\nconst node_buffer_1 = require(\"node:buffer\");\nconst node_stream_1 = __importDefault(require(\"node:stream\"));\nconst node_util_1 = require(\"node:util\");\nconst signal_exit_1 = require(\"signal-exit\");\nfunction getSpawnedPromise(spawned, { timeout } = {}) {\n const spawnedPromise = new Promise((resolve, reject) => {\n spawned.on(\"exit\", (exitCode, signal) => {\n resolve({ exitCode, signal, timedOut: false });\n });\n spawned.on(\"error\", (error) => {\n reject(error);\n });\n if (spawned.stdin) {\n spawned.stdin.on(\"error\", (error) => {\n reject(error);\n });\n }\n });\n if (timeout === 0 || timeout === undefined) {\n return spawnedPromise;\n }\n let timeoutId;\n const timeoutPromise = new Promise((_resolve, reject) => {\n timeoutId = setTimeout(() => {\n spawned.kill(\"SIGTERM\");\n reject(Object.assign(new Error(\"Timed out\"), { timedOut: true, signal: \"SIGTERM\" }));\n }, timeout);\n });\n const safeSpawnedPromise = spawnedPromise.finally(() => {\n clearTimeout(timeoutId);\n });\n const removeExitHandler = (0, signal_exit_1.onExit)(() => {\n spawned.kill();\n });\n return Promise.race([timeoutPromise, safeSpawnedPromise]).finally(() => removeExitHandler());\n}\nexports.getSpawnedPromise = getSpawnedPromise;\nclass MaxBufferError extends Error {\n constructor() {\n super(\"The output is too big\");\n this.name = \"MaxBufferError\";\n }\n}\nconst streamPipelinePromisified = (0, node_util_1.promisify)(node_stream_1.default.pipeline);\nfunction bufferStream(options) {\n const { encoding } = options;\n const isBuffer = encoding === \"buffer\";\n // @ts-expect-error missing the methods we are adding below\n const stream = new node_stream_1.default.PassThrough({ objectMode: false });\n if (encoding && encoding !== \"buffer\") {\n stream.setEncoding(encoding);\n }\n let length = 0;\n const chunks = [];\n stream.on(\"data\", (chunk) => {\n chunks.push(chunk);\n length += chunk.length;\n });\n stream.getBufferedValue = () => {\n return (isBuffer ? Buffer.concat(chunks, length) : chunks.join(\"\"));\n };\n stream.getBufferedLength = () => length;\n return stream;\n}\nasync function getStream(inputStream, options) {\n const stream = bufferStream(options);\n await new Promise((resolve, reject) => {\n const rejectPromise = (error) => {\n // Don't retrieve an oversized buffer.\n if (error && stream.getBufferedLength() <= node_buffer_1.constants.MAX_LENGTH) {\n error.bufferedData = stream.getBufferedValue();\n }\n reject(error);\n };\n (async () => {\n try {\n await streamPipelinePromisified(inputStream, stream);\n resolve();\n }\n catch (error) {\n rejectPromise(error);\n }\n })();\n stream.on(\"data\", () => {\n // 80mb\n if (stream.getBufferedLength() > 1000 * 1000 * 80) {\n rejectPromise(new MaxBufferError());\n }\n });\n });\n return stream.getBufferedValue();\n}\n// On failure, `result.stdout|stderr` should contain the currently buffered stream\nasync function getBufferedData(stream, streamPromise) {\n stream.destroy();\n try {\n return await streamPromise;\n }\n catch (error) {\n return error.bufferedData;\n }\n}\nasync function getSpawnedResult({ stdout, stderr }, { encoding }, processDone) {\n const stdoutPromise = getStream(stdout, { encoding });\n const stderrPromise = getStream(stderr, { encoding });\n try {\n return await Promise.all([processDone, stdoutPromise, stderrPromise]);\n }\n catch (error) {\n return Promise.all([\n {\n error: error,\n exitCode: null,\n signal: error.signal,\n timedOut: error.timedOut || false,\n },\n getBufferedData(stdout, stdoutPromise),\n getBufferedData(stderr, stderrPromise),\n ]);\n }\n}\nexports.getSpawnedResult = getSpawnedResult;\nfunction stripFinalNewline(input) {\n const LF = typeof input === \"string\" ? \"\\n\" : \"\\n\".charCodeAt(0);\n const CR = typeof input === \"string\" ? \"\\r\" : \"\\r\".charCodeAt(0);\n if (input[input.length - 1] === LF) {\n // @ts-expect-error we are doing some nasty stuff here\n input = input.slice(0, -1);\n }\n if (input[input.length - 1] === CR) {\n // @ts-expect-error we are doing some nasty stuff here\n input = input.slice(0, -1);\n }\n return input;\n}\nfunction handleOutput(options, value) {\n if (options.stripFinalNewline) {\n return stripFinalNewline(value);\n }\n return value;\n}\nexports.handleOutput = handleOutput;\nconst getErrorPrefix = ({ timedOut, timeout, signal, exitCode, }) => {\n if (timedOut) {\n return `timed out after ${timeout} milliseconds`;\n }\n if (signal !== undefined && signal !== null) {\n return `was killed with ${signal}`;\n }\n if (exitCode !== undefined && exitCode !== null) {\n return `failed with exit code ${exitCode}`;\n }\n return \"failed\";\n};\nconst makeError = ({ stdout, stderr, error, signal, exitCode, command, timedOut, options, parentError, }) => {\n const prefix = getErrorPrefix({ timedOut, timeout: options?.timeout, signal, exitCode });\n const execaMessage = `Command ${prefix}: ${command}`;\n const shortMessage = error ? `${execaMessage}\\n${error.message}` : execaMessage;\n const message = [shortMessage, stderr, stdout].filter(Boolean).join(\"\\n\");\n if (error) {\n // @ts-expect-error not on Error\n error.originalMessage = error.message;\n }\n else {\n error = parentError;\n }\n error.message = message;\n // @ts-expect-error not on Error\n error.shortMessage = shortMessage;\n // @ts-expect-error not on Error\n error.command = command;\n // @ts-expect-error not on Error\n error.exitCode = exitCode;\n // @ts-expect-error not on Error\n error.signal = signal;\n // @ts-expect-error not on Error\n error.stdout = stdout;\n // @ts-expect-error not on Error\n error.stderr = stderr;\n if (\"bufferedData\" in error) {\n delete error[\"bufferedData\"];\n }\n return error;\n};\nfunction defaultParsing({ stdout, stderr, error, exitCode, signal, timedOut, command, options, parentError, }) {\n if (error || exitCode !== 0 || signal !== null) {\n const returnedError = makeError({\n error,\n exitCode,\n signal,\n stdout,\n stderr,\n command,\n timedOut,\n options,\n parentError,\n });\n throw returnedError;\n }\n return stdout;\n}\nexports.defaultParsing = defaultParsing;\n", "\"use strict\";\n/*\n * Inspired by Execa\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useExec = void 0;\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst react_1 = require(\"react\");\nconst useCachedPromise_1 = require(\"./useCachedPromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst exec_utils_1 = require(\"./exec-utils\");\nconst SPACES_REGEXP = / +/g;\nfunction parseCommand(command, args) {\n if (args) {\n return [command, ...args];\n }\n const tokens = [];\n for (const token of command.trim().split(SPACES_REGEXP)) {\n // Allow spaces to be escaped by a backslash if not meant as a delimiter\n const previousToken = tokens[tokens.length - 1];\n if (previousToken && previousToken.endsWith(\"\\\\\")) {\n // Merge previous token with current one\n tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`;\n }\n else {\n tokens.push(token);\n }\n }\n return tokens;\n}\nfunction useExec(command, optionsOrArgs, options) {\n const { parseOutput, input, onData, onWillExecute, initialData, execute, keepPreviousData, onError, ...execOptions } = Array.isArray(optionsOrArgs) ? options || {} : optionsOrArgs || {};\n const useCachedPromiseOptions = {\n initialData,\n execute,\n keepPreviousData,\n onError,\n onData,\n onWillExecute,\n };\n const abortable = (0, react_1.useRef)();\n const parseOutputRef = (0, useLatest_1.useLatest)(parseOutput || exec_utils_1.defaultParsing);\n const fn = (0, react_1.useCallback)(async (_command, _args, _options, input) => {\n const [file, ...args] = parseCommand(_command, _args);\n const command = [file, ...args].join(\" \");\n const options = {\n stripFinalNewline: true,\n ..._options,\n timeout: _options?.timeout || 10000,\n signal: abortable.current?.signal,\n encoding: _options?.encoding === null ? \"buffer\" : _options?.encoding || \"utf8\",\n env: { PATH: \"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\", ...process.env, ..._options?.env },\n };\n const spawned = node_child_process_1.default.spawn(file, args, options);\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned, options);\n if (input) {\n spawned.stdin.end(input);\n }\n const [{ error, exitCode, signal, timedOut }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, options, spawnedPromise);\n const stdout = (0, exec_utils_1.handleOutput)(options, stdoutResult);\n const stderr = (0, exec_utils_1.handleOutput)(options, stderrResult);\n return parseOutputRef.current({\n // @ts-expect-error too many generics, I give up\n stdout,\n // @ts-expect-error too many generics, I give up\n stderr,\n error,\n exitCode,\n signal,\n timedOut,\n command,\n options,\n parentError: new Error(),\n });\n }, [parseOutputRef]);\n // @ts-expect-error T can't be a Promise so it's actually the same\n return (0, useCachedPromise_1.useCachedPromise)(fn, [command, Array.isArray(optionsOrArgs) ? optionsOrArgs : [], execOptions, input], {\n ...useCachedPromiseOptions,\n abortable,\n });\n}\nexports.useExec = useExec;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useSQL = void 0;\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\nconst api_1 = require(\"@raycast/api\");\nconst node_fs_1 = require(\"node:fs\");\nconst promises_1 = require(\"node:fs/promises\");\nconst node_os_1 = __importDefault(require(\"node:os\"));\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst node_path_1 = __importDefault(require(\"node:path\"));\nconst object_hash_1 = __importDefault(require(\"object-hash\"));\nconst react_1 = require(\"react\");\nconst usePromise_1 = require(\"./usePromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst exec_utils_1 = require(\"./exec-utils\");\nconst handle_error_toast_action_1 = require(\"./handle-error-toast-action\");\n/**\n * Executes a query on a local SQL database and returns the {@link AsyncState} corresponding to the query of the command. The last value will be kept between command runs.\n *\n * @example\n * ```\n * import { useSQL } from \"@raycast/utils\";\n * import { resolve } from \"path\";\n * import { homedir } from \"os\";\n *\n * const NOTES_DB = resolve(homedir(), \"Library/Group Containers/group.com.apple.notes/NoteStore.sqlite\");\n * const notesQuery = `SELECT id, title FROM ...`;\n * type NoteItem = {\n * id: string;\n * title: string;\n * };\n *\n * export default function Command() {\n * const { isLoading, data, permissionView } = useSQL<NoteItem>(NOTES_DB, notesQuery);\n *\n * if (permissionView) {\n * return permissionView;\n * }\n *\n * return (\n * <List isLoading={isLoading}>\n * {(data || []).map((item) => (\n * <List.Item key={item.id} title={item.title} />\n * ))}\n * </List>\n * );\n * };\n * ```\n */\nfunction useSQL(databasePath, query, options) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { permissionPriming, ...usePromiseOptions } = options || {};\n const [permissionView, setPermissionView] = (0, react_1.useState)();\n const latestOptions = (0, useLatest_1.useLatest)(options || {});\n const abortable = (0, react_1.useRef)();\n const handleError = (0, react_1.useCallback)((_error) => {\n console.error(_error);\n const error = _error instanceof Error && _error.message.includes(\"authorization denied\")\n ? new PermissionError(\"You do not have permission to access the database.\")\n : _error;\n if (isPermissionError(error)) {\n setPermissionView((0, jsx_runtime_1.jsx)(PermissionErrorScreen, { priming: latestOptions.current.permissionPriming }));\n }\n else {\n if (latestOptions.current.onError) {\n latestOptions.current.onError(error);\n }\n else {\n console.error(error);\n if (api_1.environment.launchType !== api_1.LaunchType.Background) {\n (0, api_1.showToast)({\n style: api_1.Toast.Style.Failure,\n title: \"Cannot query the data\",\n message: error.message,\n primaryAction: (0, handle_error_toast_action_1.handleErrorToastAction)(error),\n });\n }\n }\n }\n }, [latestOptions]);\n const fn = (0, react_1.useMemo)(() => {\n if (!(0, node_fs_1.existsSync)(databasePath)) {\n throw new Error(\"The database does not exist\");\n }\n let workaroundCopiedDb = undefined;\n return async (databasePath, query) => {\n const abortSignal = abortable.current?.signal;\n const spawned = node_child_process_1.default.spawn(\"sqlite3\", [\"--json\", \"--readonly\", databasePath, query], {\n signal: abortSignal,\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned);\n let [{ error, exitCode, signal }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf-8\" }, spawnedPromise);\n checkAborted(abortSignal);\n if (stderrResult.match(\"(5)\") || stderrResult.match(\"(14)\")) {\n // That means that the DB is busy because of another app is locking it\n // This happens when Chrome or Arc is opened: they lock the History db.\n // As an ugly workaround, we duplicate the file and read that instead\n // (with vfs unix - none to just not care about locks)\n if (!workaroundCopiedDb) {\n const tempFolder = node_path_1.default.join(node_os_1.default.tmpdir(), \"useSQL\", (0, object_hash_1.default)(databasePath));\n await (0, promises_1.mkdir)(tempFolder, { recursive: true });\n checkAborted(abortSignal);\n workaroundCopiedDb = node_path_1.default.join(tempFolder, \"db.db\");\n await (0, promises_1.copyFile)(databasePath, workaroundCopiedDb);\n // needed for certain db\n await (0, promises_1.writeFile)(workaroundCopiedDb + \"-shm\", \"\");\n await (0, promises_1.writeFile)(workaroundCopiedDb + \"-wal\", \"\");\n checkAborted(abortSignal);\n }\n const spawned = node_child_process_1.default.spawn(\"sqlite3\", [\"--json\", \"--readonly\", \"--vfs\", \"unix-none\", workaroundCopiedDb, query], {\n signal: abortSignal,\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned);\n [{ error, exitCode, signal }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf-8\" }, spawnedPromise);\n checkAborted(abortSignal);\n }\n if (error || exitCode !== 0 || signal !== null) {\n throw new Error(stderrResult);\n }\n return JSON.parse(stdoutResult.trim() || \"[]\");\n };\n }, [databasePath]);\n return {\n ...(0, usePromise_1.usePromise)(fn, [databasePath, query], { ...usePromiseOptions, onError: handleError }),\n permissionView,\n };\n}\nexports.useSQL = useSQL;\nclass PermissionError extends Error {\n constructor(message) {\n super(message);\n this.name = \"PermissionError\";\n }\n}\nfunction isPermissionError(error) {\n return error instanceof Error && error.name === \"PermissionError\";\n}\nconst macosVenturaAndLater = parseInt(node_os_1.default.release().split(\".\")[0]) >= 22;\nconst preferencesString = macosVenturaAndLater ? \"Settings\" : \"Preferences\";\nfunction PermissionErrorScreen(props) {\n const action = macosVenturaAndLater\n ? {\n title: \"Open System Settings -> Privacy\",\n target: \"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles\",\n }\n : {\n title: \"Open System Preferences -> Security\",\n target: \"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles\",\n };\n if (api_1.environment.commandMode === \"menu-bar\") {\n return ((0, jsx_runtime_1.jsxs)(api_1.MenuBarExtra, { icon: api_1.Icon.Warning, title: api_1.environment.commandName, children: [(0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: \"Raycast needs full disk access\", tooltip: `You can revert this access in ${preferencesString} whenever you want` }), props.priming ? ((0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: props.priming, tooltip: `You can revert this access in ${preferencesString} whenever you want` })) : null, (0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Separator, {}), (0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: action.title, onAction: () => (0, api_1.open)(action.target) })] }));\n }\n return ((0, jsx_runtime_1.jsx)(api_1.List, { children: (0, jsx_runtime_1.jsx)(api_1.List.EmptyView, { icon: {\n source: {\n light: \"https://raycast.com/uploads/extensions-utils-security-permissions-light.png\",\n dark: \"https://raycast.com/uploads/extensions-utils-security-permissions-dark.png\",\n },\n }, title: \"Raycast needs full disk access.\", description: `${props.priming ? props.priming + \"\\n\" : \"\"}You can revert this access in ${preferencesString} whenever you want.`, actions: (0, jsx_runtime_1.jsx)(api_1.ActionPanel, { children: (0, jsx_runtime_1.jsx)(api_1.Action.Open, { ...action }) }) }) }));\n}\nfunction checkAborted(signal) {\n if (signal?.aborted) {\n const error = new Error(\"aborted\");\n error.name = \"AbortError\";\n throw error;\n }\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useForm = exports.FormValidation = void 0;\nconst react_1 = require(\"react\");\nconst useLatest_1 = require(\"./useLatest\");\n/**\n * Shorthands for common validation cases\n */\nvar FormValidation;\n(function (FormValidation) {\n /** Show an error when the value of the item is empty */\n FormValidation[\"Required\"] = \"required\";\n})(FormValidation = exports.FormValidation || (exports.FormValidation = {}));\nfunction validationError(validation, value) {\n if (validation) {\n if (typeof validation === \"function\") {\n return validation(value);\n }\n else if (validation === FormValidation.Required) {\n let valueIsValid = typeof value !== \"undefined\" && value !== null;\n if (valueIsValid) {\n switch (typeof value) {\n case \"string\":\n valueIsValid = value.length > 0;\n break;\n case \"object\":\n if (Array.isArray(value)) {\n valueIsValid = value.length > 0;\n }\n else if (value instanceof Date) {\n valueIsValid = value.getTime() > 0;\n }\n break;\n default:\n break;\n }\n }\n if (!valueIsValid) {\n return \"The item is required\";\n }\n }\n }\n}\n/**\n * Hook that provides a high-level interface to work with Forms, and more particularly, with Form validations. It incorporates all the good practices to provide a great User Experience for your Forms.\n *\n * @returns an object which contains the necessary methods and props to provide a good User Experience in your Form.\n *\n * @example\n * ```\n * import { Action, ActionPanel, Form, showToast, Toast } from \"@raycast/api\";\n * import { useForm, FormValidation } from \"@raycast/utils\";\n *\n * interface SignUpFormValues {\n * nickname: string;\n * password: string;\n * }\n *\n * export default function Command() {\n * const { handleSubmit, itemProps } = useForm<SignUpFormValues>({\n * onSubmit(values) {\n * showToast(Toast.Style.Success, \"Yay!\", `${values.nickname} account created`);\n * },\n * validation: {\n * nickname: FormValidation.Required,\n * password: (value) => {\n * if (value && value.length < 8) {\n * return \"Password must be at least 8 symbols\";\n * } else if (!value) {\n * return \"The item is required\";\n * }\n * },\n * },\n * });\n *\n * return (\n * <Form\n * actions={\n * <ActionPanel>\n * <Action.SubmitForm title=\"Submit\" onSubmit={handleSubmit} />\n * </ActionPanel>\n * }\n * >\n * <Form.TextField title=\"Nickname\" placeholder=\"Enter your nickname\" {...itemProps.nickname} />\n * <Form.PasswordField\n * title=\"Password\"\n * placeholder=\"Enter password at least 8 characters long\"\n * {...itemProps.password}\n * />\n * </Form>\n * );\n * }\n * ```\n */\nfunction useForm(props) {\n const { onSubmit: _onSubmit, validation, initialValues = {} } = props;\n // @ts-expect-error it's fine if we don't specify all the values\n const [values, setValues] = (0, react_1.useState)(initialValues);\n const [errors, setErrors] = (0, react_1.useState)({});\n const refs = (0, react_1.useRef)({});\n const latestValidation = (0, useLatest_1.useLatest)(validation || {});\n const latestOnSubmit = (0, useLatest_1.useLatest)(_onSubmit);\n const focus = (0, react_1.useCallback)((id) => {\n refs.current[id]?.focus();\n }, [refs]);\n const handleSubmit = (0, react_1.useCallback)(async (values) => {\n let validationErrors = false;\n for (const [id, validation] of Object.entries(latestValidation.current)) {\n const error = validationError(validation, values[id]);\n if (error) {\n if (!validationErrors) {\n validationErrors = {};\n // we focus the first item that has an error\n focus(id);\n }\n validationErrors[id] = error;\n }\n }\n if (validationErrors) {\n setErrors(validationErrors);\n return false;\n }\n const result = await latestOnSubmit.current(values);\n return typeof result === \"boolean\" ? result : true;\n }, [latestValidation, latestOnSubmit, focus]);\n const setValidationError = (0, react_1.useCallback)((id, error) => {\n setErrors((errors) => ({ ...errors, [id]: error }));\n }, [setErrors]);\n const setValue = (0, react_1.useCallback)(function (id, value) {\n // @ts-expect-error TS is always confused about SetStateAction, but it's fine here\n setValues((values) => ({ ...values, [id]: typeof value === \"function\" ? value(values[id]) : value }));\n }, [setValues]);\n const itemProps = (0, react_1.useMemo)(() => {\n // we have to use a proxy because we don't actually have any object to iterate through\n // so instead we dynamically create the props when required\n return new Proxy(\n // @ts-expect-error the whole point of a proxy...\n {}, {\n get(target, id) {\n const validation = latestValidation.current[id];\n const value = values[id];\n return {\n onChange(value) {\n if (errors[id]) {\n const error = validationError(validation, value);\n if (!error) {\n setValidationError(id, undefined);\n }\n }\n setValue(id, value);\n },\n onBlur(event) {\n const error = validationError(validation, event.target.value);\n if (error) {\n setValidationError(id, error);\n }\n },\n error: errors[id],\n id,\n // we shouldn't return `undefined` otherwise it will be an uncontrolled component\n value: typeof value === \"undefined\" ? null : value,\n ref: (instance) => {\n refs.current[id] = instance;\n },\n };\n },\n });\n }, [errors, latestValidation, setValidationError, values, refs, setValue]);\n const reset = (0, react_1.useCallback)((initialValues = {}) => {\n // @ts-expect-error it's fine if we don't specify all the values\n setValues(initialValues);\n setErrors({});\n }, [setValues, setErrors]);\n return { handleSubmit, setValidationError, setValue, values, itemProps, focus, reset };\n}\nexports.useForm = useForm;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useAI = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst usePromise_1 = require(\"./usePromise\");\n/**\n * Stream a prompt completion.\n *\n * @example\n * ```typescript\n * import { Detail, LaunchProps } from \"@raycast/api\";\n * import { use AI } from \"@raycast/utils\";\n *\n * export default function Command(props: LaunchProps<{ arguments: { prompt: string } }>) {\n * const { isLoading, data } = useAI(props.arguments.prompt);\n *\n * return <Detail isLoading={isLoading} markdown={data} />;\n * }\n * ```\n */\nfunction useAI(prompt, options = {}) {\n const { creativity, stream, model, ...usePromiseOptions } = options;\n const [data, setData] = (0, react_1.useState)(\"\");\n const abortable = (0, react_1.useRef)();\n const { isLoading, error, revalidate } = (0, usePromise_1.usePromise)(async (prompt, creativity, shouldStream) => {\n setData(\"\");\n const stream = api_1.AI.ask(prompt, { creativity, model, signal: abortable.current?.signal });\n if (shouldStream === false) {\n setData(await stream);\n }\n else {\n stream.on(\"data\", (data) => {\n setData((x) => x + data);\n });\n await stream;\n }\n }, [prompt, creativity, stream], { ...usePromiseOptions, abortable });\n return { isLoading, data, error, revalidate };\n}\nexports.useAI = useAI;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFrecencySorting = void 0;\nconst react_1 = require(\"react\");\nconst useLatest_1 = require(\"./useLatest\");\nconst useCachedState_1 = require(\"./useCachedState\");\nconst HALF_LIFE_DAYS = 10;\nconst MS_PER_DAY = 24 * 60 * 60 * 1000;\nconst DECAY_RATE_CONSTANT = Math.log(2) / (HALF_LIFE_DAYS * MS_PER_DAY);\nconst VISIT_TYPE_POINTS = {\n Default: 100,\n Embed: 0,\n Bookmark: 140,\n};\nfunction getNewFrecency(item) {\n const now = Date.now();\n const lastVisited = item ? item.lastVisited : 0;\n const frecency = item ? item.frecency : 0;\n const visitAgeInDays = (now - lastVisited) / MS_PER_DAY;\n const currentVisitValue = VISIT_TYPE_POINTS.Default * Math.exp(-DECAY_RATE_CONSTANT * visitAgeInDays);\n const totalVisitValue = frecency + currentVisitValue;\n return {\n lastVisited: now,\n frecency: totalVisitValue,\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst defaultKey = (item) => {\n if (process.env.NODE_ENV !== \"production\" &&\n (typeof item !== \"object\" || !item || !(\"id\" in item) || typeof item.id != \"string\")) {\n throw new Error(\"Specify a key function or make sure your items have an 'id' property\");\n }\n return item.id;\n};\nfunction useFrecencySorting(data, options) {\n const keyRef = (0, useLatest_1.useLatest)(options?.key || defaultKey);\n const sortUnvisitedRef = (0, useLatest_1.useLatest)(options?.sortUnvisited);\n const [storedFrecencies, setStoredFrecencies] = (0, useCachedState_1.useCachedState)(`raycast_frecency_${options?.namespace}`, {});\n const visitItem = (0, react_1.useCallback)(async function updateFrecency(item) {\n const itemKey = keyRef.current(item);\n setStoredFrecencies((storedFrecencies) => {\n const frecency = storedFrecencies[itemKey];\n const newFrecency = getNewFrecency(frecency);\n return {\n ...storedFrecencies,\n [itemKey]: newFrecency,\n };\n });\n }, [keyRef, setStoredFrecencies]);\n const resetRanking = (0, react_1.useCallback)(async function removeFrecency(item) {\n const itemKey = keyRef.current(item);\n setStoredFrecencies((storedFrecencies) => {\n const newFrencencies = { ...storedFrecencies };\n delete newFrencencies[itemKey];\n return newFrencencies;\n });\n }, [keyRef, setStoredFrecencies]);\n const sortedData = (0, react_1.useMemo)(() => {\n if (!data) {\n return [];\n }\n return data.sort((a, b) => {\n const frecencyA = storedFrecencies[keyRef.current(a)];\n const frecencyB = storedFrecencies[keyRef.current(b)];\n // If a has a frecency, but b doesn't, a should come first\n if (frecencyA && !frecencyB) {\n return -1;\n }\n // If b has a frecency, but a doesn't, b should come first\n if (!frecencyA && frecencyB) {\n return 1;\n }\n // If both frecencies are defined,put the one with the higher frecency first\n if (frecencyA && frecencyB) {\n return frecencyB.frecency - frecencyA.frecency;\n }\n // If both frecencies are undefined, keep the original order\n return sortUnvisitedRef.current ? sortUnvisitedRef.current(a, b) : 0;\n });\n }, [storedFrecencies, data, keyRef, sortUnvisitedRef]);\n return { data: sortedData, visitItem, resetRanking };\n}\nexports.useFrecencySorting = useFrecencySorting;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.slightlyLighterColor = exports.slightlyDarkerColor = void 0;\nfunction hexToRGB(hex) {\n let r = 0;\n let g = 0;\n let b = 0;\n // 3 digits\n if (hex.length === 4) {\n r = parseInt(`${hex[1]}${hex[1]}`, 16);\n g = parseInt(`${hex[2]}${hex[2]}`, 16);\n b = parseInt(`${hex[3]}${hex[3]}`, 16);\n // 6 digits\n }\n else if (hex.length === 7) {\n r = parseInt(`${hex[1]}${hex[2]}`, 16);\n g = parseInt(`${hex[3]}${hex[4]}`, 16);\n b = parseInt(`${hex[5]}${hex[6]}`, 16);\n }\n else {\n throw new Error(`Malformed hex color: ${hex}`);\n }\n return { r, g, b };\n}\nfunction rgbToHex({ r, g, b }) {\n let rString = r.toString(16);\n let gString = g.toString(16);\n let bString = b.toString(16);\n if (rString.length === 1) {\n rString = `0${rString}`;\n }\n if (gString.length === 1) {\n gString = `0${gString}`;\n }\n if (bString.length === 1) {\n bString = `0${bString}`;\n }\n return `#${rString}${gString}${bString}`;\n}\nfunction rgbToHSL({ r, g, b }) {\n // Make r, g, and b fractions of 1\n r /= 255;\n g /= 255;\n b /= 255;\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b);\n const cmax = Math.max(r, g, b);\n const delta = cmax - cmin;\n let h = 0;\n let s = 0;\n let l = 0;\n // Calculate hue\n // No difference\n if (delta === 0) {\n h = 0;\n }\n // Red is max\n else if (cmax === r) {\n h = ((g - b) / delta) % 6;\n }\n // Green is max\n else if (cmax === g) {\n h = (b - r) / delta + 2;\n }\n // Blue is max\n else {\n h = (r - g) / delta + 4;\n }\n h = Math.round(h * 60);\n // Make negative hues positive behind 360\u00B0\n if (h < 0) {\n h += 360;\n }\n // Calculate lightness\n l = (cmax + cmin) / 2;\n // Calculate saturation\n s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1);\n l = +(l * 100).toFixed(1);\n return { h, s, l };\n}\nfunction hslToRGB({ h, s, l }) {\n // Must be fractions of 1\n s /= 100;\n l /= 100;\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = l - c / 2;\n let r = 0;\n let g = 0;\n let b = 0;\n if (h >= 0 && h < 60) {\n r = c;\n g = x;\n b = 0;\n }\n else if (h >= 60 && h < 120) {\n r = x;\n g = c;\n b = 0;\n }\n else if (h >= 120 && h < 180) {\n r = 0;\n g = c;\n b = x;\n }\n else if (h >= 180 && h < 240) {\n r = 0;\n g = x;\n b = c;\n }\n else if (h >= 240 && h < 300) {\n r = x;\n g = 0;\n b = c;\n }\n else if (h >= 300 && h < 360) {\n r = c;\n g = 0;\n b = x;\n }\n r = Math.round((r + m) * 255);\n g = Math.round((g + m) * 255);\n b = Math.round((b + m) * 255);\n return { r, g, b };\n}\nfunction hexToHSL(hex) {\n return rgbToHSL(hexToRGB(hex));\n}\nfunction hslToHex(hsl) {\n return rgbToHex(hslToRGB(hsl));\n}\nfunction clamp(value, min, max) {\n return min < max ? (value < min ? min : value > max ? max : value) : value < max ? max : value > min ? min : value;\n}\nconst offset = 12;\nfunction slightlyDarkerColor(hex) {\n const hsl = hexToHSL(hex);\n return hslToHex({\n h: hsl.h,\n s: hsl.s,\n l: clamp(hsl.l - offset, 0, 100),\n });\n}\nexports.slightlyDarkerColor = slightlyDarkerColor;\nfunction slightlyLighterColor(hex) {\n const hsl = hexToHSL(hex);\n return hslToHex({\n h: hsl.h,\n s: hsl.s,\n l: clamp(hsl.l + offset, 0, 100),\n });\n}\nexports.slightlyLighterColor = slightlyLighterColor;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAvatarIcon = void 0;\nconst color_1 = require(\"./color\");\nfunction getWholeCharAndI(str, i) {\n const code = str.charCodeAt(i);\n if (Number.isNaN(code)) {\n return [\"\", i];\n }\n if (code < 0xd800 || code > 0xdfff) {\n return [str.charAt(i), i]; // Normal character, keeping 'i' the same\n }\n // High surrogate (could change last hex to 0xDB7F to treat high private\n // surrogates as single characters)\n if (0xd800 <= code && code <= 0xdbff) {\n if (str.length <= i + 1) {\n throw new Error(\"High surrogate without following low surrogate\");\n }\n const next = str.charCodeAt(i + 1);\n if (0xdc00 > next || next > 0xdfff) {\n throw new Error(\"High surrogate without following low surrogate\");\n }\n return [str.charAt(i) + str.charAt(i + 1), i + 1];\n }\n // Low surrogate (0xDC00 <= code && code <= 0xDFFF)\n if (i === 0) {\n throw new Error(\"Low surrogate without preceding high surrogate\");\n }\n const prev = str.charCodeAt(i - 1);\n // (could change last hex to 0xDB7F to treat high private surrogates\n // as single characters)\n if (0xd800 > prev || prev > 0xdbff) {\n throw new Error(\"Low surrogate without preceding high surrogate\");\n }\n // Return the next character instead (and increment)\n return [str.charAt(i + 1), i + 1];\n}\nconst avatarColorSet = [\n \"#DC829A\",\n \"#D64854\",\n \"#D47600\",\n \"#D36CDD\",\n \"#52A9E4\",\n \"#7871E8\",\n \"#70920F\",\n \"#43B93A\",\n \"#EB6B3E\",\n \"#26B795\",\n \"#D85A9B\",\n \"#A067DC\",\n \"#BD9500\",\n \"#5385D9\", // Blue\n];\n/**\n * Icon to represent an avatar when you don't have one. The generated avatar\n * will be generated from the initials of the name and have a colorful but consistent background.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getAvatarIcon('Mathieu Dutour')} title=\"Project\" />\n * ```\n */\nfunction getAvatarIcon(name, options) {\n const words = name.trim().split(\" \");\n let initials;\n if (words.length == 1 && getWholeCharAndI(words[0], 0)[0]) {\n initials = getWholeCharAndI(words[0], 0)[0];\n }\n else if (words.length > 1) {\n const firstWordFirstLetter = getWholeCharAndI(words[0], 0)[0] || \"\";\n const lastWordFirstLetter = getWholeCharAndI(words[words.length - 1], 0)[0] ?? \"\";\n initials = firstWordFirstLetter + lastWordFirstLetter;\n }\n else {\n initials = \"\";\n }\n let backgroundColor;\n if (options?.background) {\n backgroundColor = options?.background;\n }\n else {\n let initialsCharIndex = 0;\n let [char, i] = getWholeCharAndI(initials, 0);\n while (char) {\n initialsCharIndex += char.charCodeAt(0);\n [char, i] = getWholeCharAndI(initials, i + 1);\n }\n const colorIndex = initialsCharIndex % avatarColorSet.length;\n backgroundColor = avatarColorSet[colorIndex];\n }\n const padding = 0;\n const radius = 50 - padding;\n const svg = `<svg width=\"100px\" height=\"100px\">\n ${options?.gradient !== false\n ? `<defs>\n <linearGradient id=\"Gradient\" x1=\"0.25\" x2=\"0.75\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" stop-color=\"${(0, color_1.slightlyLighterColor)(backgroundColor)}\"/>\n <stop offset=\"50%\" stop-color=\"${backgroundColor}\"/>\n <stop offset=\"100%\" stop-color=\"${(0, color_1.slightlyDarkerColor)(backgroundColor)}\"/>\n </linearGradient>\n </defs>`\n : \"\"}\n <circle cx=\"50\" cy=\"50\" r=\"${radius}\" fill=\"${options?.gradient !== false ? \"url(#Gradient)\" : backgroundColor}\" />\n ${initials\n ? `<text x=\"50\" y=\"80\" font-size=\"${radius - 1}\" font-family=\"Inter, sans-serif\" text-anchor=\"middle\" fill=\"white\">${initials.toUpperCase()}</text>`\n : \"\"}\n </svg>\n `.replaceAll(\"\\n\", \"\");\n return `data:image/svg+xml,${svg}`;\n}\nexports.getAvatarIcon = getAvatarIcon;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFavicon = void 0;\nconst api_1 = require(\"@raycast/api\");\nconst url_1 = require(\"url\");\n/**\n * Icon showing the favicon of a website.\n *\n * A favicon (favorite icon) is a tiny icon included along with a website, which is displayed in places like the browser's address bar, page tabs, and bookmarks menu.\n *\n * @param url The URL of the website to represent.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getFavicon(\"https://raycast.com\")} title=\"Raycast Website\" />\n * ```\n */\nfunction getFavicon(url, options) {\n try {\n const urlObj = typeof url === \"string\" ? new url_1.URL(url) : url;\n const hostname = urlObj.hostname;\n return {\n source: `https://www.google.com/s2/favicons?sz=${options?.size ?? 64}&domain=${hostname}`,\n fallback: options?.fallback ?? api_1.Icon.Link,\n mask: options?.mask,\n };\n }\n catch (e) {\n console.error(e);\n return api_1.Icon.Link;\n }\n}\nexports.getFavicon = getFavicon;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getProgressIcon = void 0;\nconst api_1 = require(\"@raycast/api\");\nfunction polarToCartesian(centerX, centerY, radius, angleInDegrees) {\n const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180.0;\n return {\n x: centerX + radius * Math.cos(angleInRadians),\n y: centerY + radius * Math.sin(angleInRadians),\n };\n}\nfunction describeArc(x, y, radius, startAngle, endAngle) {\n const start = polarToCartesian(x, y, radius, endAngle);\n const end = polarToCartesian(x, y, radius, startAngle);\n const largeArcFlag = endAngle - startAngle <= 180 ? \"0\" : \"1\";\n const d = [\"M\", start.x, start.y, \"A\", radius, radius, 0, largeArcFlag, 0, end.x, end.y].join(\" \");\n return d;\n}\n/**\n * Icon to represent the progress of _something_.\n *\n * @param progress Number between 0 and 1.\n * @param color Hex color (default `\"#FF6363\"`) or Color.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getProgressIcon(0.1)} title=\"Project\" />\n * ```\n */\nfunction getProgressIcon(progress, color = api_1.Color.Red, options) {\n const background = options?.background || (api_1.environment.appearance === \"light\" ? \"black\" : \"white\");\n const backgroundOpacity = options?.backgroundOpacity || 0.1;\n const stroke = 10;\n const padding = 5;\n const radius = 50 - padding - stroke / 2;\n const svg = `<svg width=\"100px\" height=\"100px\">\n <circle cx=\"50\" cy=\"50\" r=\"${radius}\" stroke-width=\"${stroke}\" stroke=\"${progress < 1 ? background : color}\" opacity=\"${progress < 1 ? backgroundOpacity : \"1\"}\" fill=\"none\" />\n ${progress > 0 && progress < 1\n ? `<path d=\"${describeArc(50, 50, radius, 0, progress * 360)}\" stroke=\"${color}\" stroke-width=\"${stroke}\" fill=\"none\" />`\n : \"\"}\n </svg>\n `.replaceAll(\"\\n\", \"\");\n return `data:image/svg+xml,${svg}`;\n}\nexports.getProgressIcon = getProgressIcon;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./avatar\"), exports);\n__exportStar(require(\"./favicon\"), exports);\n__exportStar(require(\"./progress\"), exports);\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.runAppleScript = void 0;\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst exec_utils_1 = require(\"./exec-utils\");\nasync function runAppleScript(script, optionsOrArgs, options) {\n const { humanReadableOutput, language, timeout, ...execOptions } = Array.isArray(optionsOrArgs)\n ? options || {}\n : optionsOrArgs || {};\n const outputArguments = humanReadableOutput !== false ? [] : [\"-ss\"];\n if (language === \"JavaScript\") {\n outputArguments.push(\"-l\", \"JavaScript\");\n }\n if (Array.isArray(optionsOrArgs)) {\n outputArguments.push(\"-\", ...optionsOrArgs);\n }\n const spawned = node_child_process_1.default.spawn(\"osascript\", outputArguments, {\n ...execOptions,\n env: { PATH: \"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\" },\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned, { timeout: timeout || 10000 });\n spawned.stdin.end(script);\n const [{ error, exitCode, signal, timedOut }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf8\" }, spawnedPromise);\n const stdout = (0, exec_utils_1.handleOutput)({ stripFinalNewline: true }, stdoutResult);\n const stderr = (0, exec_utils_1.handleOutput)({ stripFinalNewline: true }, stderrResult);\n return (0, exec_utils_1.defaultParsing)({\n stdout,\n stderr,\n error,\n exitCode,\n signal,\n timedOut,\n command: \"osascript\",\n options,\n parentError: new Error(),\n });\n}\nexports.runAppleScript = runAppleScript;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./usePromise\"), exports);\n__exportStar(require(\"./useCachedState\"), exports);\n__exportStar(require(\"./useCachedPromise\"), exports);\n__exportStar(require(\"./useFetch\"), exports);\n__exportStar(require(\"./useExec\"), exports);\n__exportStar(require(\"./useSQL\"), exports);\n__exportStar(require(\"./useForm\"), exports);\n__exportStar(require(\"./useAI\"), exports);\n__exportStar(require(\"./useFrecencySorting\"), exports);\n__exportStar(require(\"./icon\"), exports);\n__exportStar(require(\"./run-applescript\"), exports);\n", "module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size')\n}\n", "'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseExceededMaxSizeError)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\n\nconst [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v))\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n return url\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.')\n }\n\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n if (!(url instanceof URL)) {\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substr(1, idx - 1)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substr(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (!isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\nfunction parseHeaders (headers, obj = {}) {\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1]\n } else {\n obj[key] = headers[i + 1].toString('utf8')\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString('utf8'))\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if ('content-length' in obj && 'content-disposition' in obj) {\n obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1')\n }\n\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n const ret = []\n let hasContentLength = false\n let contentDispositionIdx = -1\n\n for (let n = 0; n < headers.length; n += 2) {\n const key = headers[n + 0].toString()\n const val = headers[n + 1].toString('utf8')\n\n if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n ret.push(key, val)\n hasContentLength = true\n } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n contentDispositionIdx = ret.push(key, val) - 1\n } else {\n ret.push(key, val)\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if (hasContentLength && contentDispositionIdx !== -1) {\n ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1')\n }\n\n return ret\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n // https://github.com/whatwg/streams/pull/1083\n return ReadableStream.from(iterable)\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.append === 'function' &&\n typeof object.delete === 'function' &&\n typeof object.get === 'function' &&\n typeof object.getAll === 'function' &&\n typeof object.has === 'function' &&\n typeof object.set === 'function' &&\n object[Symbol.toStringTag] === 'FormData'\n )\n}\n\nfunction throwIfAborted (signal) {\n if (!signal) { return }\n if (typeof signal.throwIfAborted === 'function') {\n signal.throwIfAborted()\n } else {\n if (signal.aborted) {\n // DOMException not available < v17.0.0\n const err = new Error('The operation was aborted')\n err.name = 'AbortError'\n throw err\n }\n }\n}\n\nlet events\nfunction addAbortListener (signal, listener) {\n if (typeof Symbol.dispose === 'symbol') {\n if (!events) {\n events = require('events')\n }\n if (typeof events.addAbortListener === 'function' && 'aborted' in signal) {\n return events.addAbortListener(signal, listener)\n }\n }\n if ('addEventListener' in signal) {\n signal.addEventListener('abort', listener, { once: true })\n return () => signal.removeEventListener('abort', listener)\n }\n signal.addListener('abort', listener)\n return () => signal.removeListener('abort', listener)\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed\n\n/**\n * @param {string} val\n */\nfunction toUSVString (val) {\n if (hasToWellFormed) {\n return `${val}`.toWellFormed()\n } else if (nodeUtil.toUSVString) {\n return nodeUtil.toUSVString(val)\n }\n\n return `${val}`\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString,\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL,\n throwIfAborted,\n addAbortListener,\n nodeMajor,\n nodeMinor,\n nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13)\n}\n", "'use strict'\n\nlet fastNow = Date.now()\nlet fastNowTimeout\n\nconst fastTimers = []\n\nfunction onTimeout () {\n fastNow = Date.now()\n\n let len = fastTimers.length\n let idx = 0\n while (idx < len) {\n const timer = fastTimers[idx]\n\n if (timer.state === 0) {\n timer.state = fastNow + timer.delay\n } else if (timer.state > 0 && fastNow >= timer.state) {\n timer.state = -1\n timer.callback(timer.opaque)\n }\n\n if (timer.state === -1) {\n timer.state = -2\n if (idx !== len - 1) {\n fastTimers[idx] = fastTimers.pop()\n } else {\n fastTimers.pop()\n }\n len -= 1\n } else {\n idx += 1\n }\n }\n\n if (fastTimers.length > 0) {\n refreshTimeout()\n }\n}\n\nfunction refreshTimeout () {\n if (fastNowTimeout && fastNowTimeout.refresh) {\n fastNowTimeout.refresh()\n } else {\n clearTimeout(fastNowTimeout)\n fastNowTimeout = setTimeout(onTimeout, 1e3)\n if (fastNowTimeout.unref) {\n fastNowTimeout.unref()\n }\n }\n}\n\nclass Timeout {\n constructor (callback, delay, opaque) {\n this.callback = callback\n this.delay = delay\n this.opaque = opaque\n\n // -2 not in timer list\n // -1 in timer list but inactive\n // 0 in timer list waiting for time\n // > 0 in timer list waiting for time to expire\n this.state = -2\n\n this.refresh()\n }\n\n refresh () {\n if (this.state === -2) {\n fastTimers.push(this)\n if (!fastNowTimeout || fastTimers.length === 1) {\n refreshTimeout()\n }\n }\n\n this.state = 0\n }\n\n clear () {\n this.state = -1\n }\n}\n\nmodule.exports = {\n setTimeout (callback, delay, opaque) {\n return delay < 1e3\n ? setTimeout(callback, delay, opaque)\n : new Timeout(callback, delay, opaque)\n },\n clearTimeout (timeout) {\n if (timeout instanceof Timeout) {\n timeout.clear()\n } else {\n clearTimeout(timeout)\n }\n }\n}\n", "'use strict';\n\nfunction parseContentType(str) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n // Parse type\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 47/* '/' */ || i === 0)\n return;\n break;\n }\n }\n // Check for type without subtype\n if (i === str.length)\n return;\n\n const type = str.slice(0, i).toLowerCase();\n\n // Parse subtype\n const subtypeStart = ++i;\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n if (parseContentTypeParams(str, i, params) === undefined)\n return;\n break;\n }\n }\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n const subtype = str.slice(subtypeStart, i).toLowerCase();\n\n return { type, subtype, params };\n}\n\nfunction parseContentTypeParams(str, i, params) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 61/* '=' */)\n return;\n break;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n name = str.slice(nameStart, i);\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction parseDisposition(str, defDecoder) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (parseDispositionParams(str, i, params, defDecoder) === undefined)\n return;\n break;\n }\n }\n\n const type = str.slice(0, i).toLowerCase();\n\n return { type, params };\n}\n\nfunction parseDispositionParams(str, i, params, defDecoder) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code === 61/* '=' */)\n break;\n return;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n let charset;\n //~ let lang;\n name = str.slice(nameStart, i);\n if (name.charCodeAt(name.length - 1) === 42/* '*' */) {\n // Extended value\n\n const charsetStart = ++i;\n // Parse charset name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (CHARSET[code] !== 1) {\n if (code !== 39/* '\\'' */)\n return;\n break;\n }\n }\n\n // Incomplete charset (malformed)\n if (i === str.length)\n return;\n\n charset = str.slice(charsetStart, i);\n ++i; // Skip over the '\\''\n\n //~ const langStart = ++i;\n // Parse language name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 39/* '\\'' */)\n break;\n }\n\n // Incomplete language (malformed)\n if (i === str.length)\n return;\n\n //~ lang = str.slice(langStart, i);\n ++i; // Skip over the '\\''\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n valueStart = i;\n\n let encode = 0;\n // Parse value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (EXTENDED_VALUE[code] !== 1) {\n if (code === 37/* '%' */) {\n let hexUpper;\n let hexLower;\n if (i + 2 < str.length\n && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1\n && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) {\n const byteVal = (hexUpper << 4) + hexLower;\n value += str.slice(valueStart, i);\n value += String.fromCharCode(byteVal);\n i += 2;\n valueStart = i + 1;\n if (byteVal >= 128)\n encode = 2;\n else if (encode === 0)\n encode = 1;\n continue;\n }\n // '%' disallowed in non-percent encoded contexts (malformed)\n return;\n }\n break;\n }\n }\n\n value += str.slice(valueStart, i);\n value = convertToUTF8(value, charset, encode);\n if (value === undefined)\n return;\n } else {\n // Non-extended value\n\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n value = defDecoder(value, 2);\n if (value === undefined)\n return;\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction getDecoder(charset) {\n let lc;\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8;\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1;\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le;\n case 'base64':\n return decoders.base64;\n default:\n if (lc === undefined) {\n lc = true;\n charset = charset.toLowerCase();\n continue;\n }\n return decoders.other.bind(charset);\n }\n }\n}\n\nconst decoders = {\n utf8: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string') {\n // If `data` never had any percent-encoded bytes or never had any that\n // were outside of the ASCII range, then we can safely just return the\n // input since UTF-8 is ASCII compatible\n if (hint < 2)\n return data;\n\n data = Buffer.from(data, 'latin1');\n }\n return data.utf8Slice(0, data.length);\n },\n\n latin1: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n return data;\n return data.latin1Slice(0, data.length);\n },\n\n utf16le: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.ucs2Slice(0, data.length);\n },\n\n base64: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.base64Slice(0, data.length);\n },\n\n other: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n try {\n const decoder = new TextDecoder(this);\n return decoder.decode(data);\n } catch {}\n },\n};\n\nfunction convertToUTF8(data, charset, hint) {\n const decode = getDecoder(charset);\n if (decode)\n return decode(data, hint);\n}\n\nfunction basename(path) {\n if (typeof path !== 'string')\n return '';\n for (let i = path.length - 1; i >= 0; --i) {\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1);\n return (path === '..' || path === '.' ? '' : path);\n }\n }\n return (path === '..' || path === '.' ? '' : path);\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst QDTEXT = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nconst CHARSET = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst EXTENDED_VALUE = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n};\n", "'use strict';\n/*\n Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n*/\nfunction memcmp(buf1, pos1, buf2, pos2, num) {\n for (let i = 0; i < num; ++i) {\n if (buf1[pos1 + i] !== buf2[pos2 + i])\n return false;\n }\n return true;\n}\n\nclass SBMH {\n constructor(needle, cb) {\n if (typeof cb !== 'function')\n throw new Error('Missing match callback');\n\n if (typeof needle === 'string')\n needle = Buffer.from(needle);\n else if (!Buffer.isBuffer(needle))\n throw new Error(`Expected Buffer for needle, got ${typeof needle}`);\n\n const needleLen = needle.length;\n\n this.maxMatches = Infinity;\n this.matches = 0;\n\n this._cb = cb;\n this._lookbehindSize = 0;\n this._needle = needle;\n this._bufPos = 0;\n\n this._lookbehind = Buffer.allocUnsafe(needleLen);\n\n // Initialize occurrence table.\n this._occ = [\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen\n ];\n\n // Populate occurrence table with analysis of the needle, ignoring the last\n // letter.\n if (needleLen > 1) {\n for (let i = 0; i < needleLen - 1; ++i)\n this._occ[needle[i]] = needleLen - 1 - i;\n }\n }\n\n reset() {\n this.matches = 0;\n this._lookbehindSize = 0;\n this._bufPos = 0;\n }\n\n push(chunk, pos) {\n let result;\n if (!Buffer.isBuffer(chunk))\n chunk = Buffer.from(chunk, 'latin1');\n const chunkLen = chunk.length;\n this._bufPos = pos || 0;\n while (result !== chunkLen && this.matches < this.maxMatches)\n result = feed(this, chunk);\n return result;\n }\n\n destroy() {\n const lbSize = this._lookbehindSize;\n if (lbSize)\n this._cb(false, this._lookbehind, 0, lbSize, false);\n this.reset();\n }\n}\n\nfunction feed(self, data) {\n const len = data.length;\n const needle = self._needle;\n const needleLen = needle.length;\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehindSize - 2]\n let pos = -self._lookbehindSize;\n const lastNeedleCharPos = needleLen - 1;\n const lastNeedleChar = needle[lastNeedleCharPos];\n const end = len - needleLen;\n const occ = self._occ;\n const lookbehind = self._lookbehind;\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= end) {\n const nextPos = pos + lastNeedleCharPos;\n const ch = (nextPos < 0\n ? lookbehind[self._lookbehindSize + nextPos]\n : data[nextPos]);\n\n if (ch === lastNeedleChar\n && matchNeedle(self, data, pos, lastNeedleCharPos)) {\n self._lookbehindSize = 0;\n ++self.matches;\n if (pos > -self._lookbehindSize)\n self._cb(true, lookbehind, 0, self._lookbehindSize + pos, false);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // No match.\n\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !matchNeedle(self, data, pos, len - pos))\n ++pos;\n\n if (pos < 0) {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = self._lookbehindSize + pos;\n\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n self._cb(false, lookbehind, 0, bytesToCutOff, false);\n }\n\n self._lookbehindSize -= bytesToCutOff;\n lookbehind.copy(lookbehind, 0, bytesToCutOff, self._lookbehindSize);\n lookbehind.set(data, self._lookbehindSize);\n self._lookbehindSize += len;\n\n self._bufPos = len;\n return len;\n }\n\n // Discard lookbehind buffer.\n self._cb(false, lookbehind, 0, self._lookbehindSize, false);\n self._lookbehindSize = 0;\n }\n\n pos += self._bufPos;\n\n const firstNeedleChar = needle[0];\n\n // Lookbehind buffer is now empty. Perform Boyer-Moore-Horspool\n // search with optimized character lookup code that only considers\n // the current round's haystack data.\n while (pos <= end) {\n const ch = data[pos + lastNeedleCharPos];\n\n if (ch === lastNeedleChar\n && data[pos] === firstNeedleChar\n && memcmp(needle, 0, data, pos, lastNeedleCharPos)) {\n ++self.matches;\n if (pos > 0)\n self._cb(true, data, self._bufPos, pos, true);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (pos < len) {\n if (data[pos] !== firstNeedleChar\n || !memcmp(data, pos, needle, 0, len - pos)) {\n ++pos;\n continue;\n }\n data.copy(lookbehind, 0, pos, len);\n self._lookbehindSize = len - pos;\n break;\n }\n\n // Everything until `pos` is guaranteed not to contain needle data.\n if (pos > 0)\n self._cb(false, data, self._bufPos, pos < len ? pos : len, true);\n\n self._bufPos = len;\n return len;\n}\n\nfunction matchNeedle(self, data, pos, len) {\n const lb = self._lookbehind;\n const lbSize = self._lookbehindSize;\n const needle = self._needle;\n\n for (let i = 0; i < len; ++i, ++pos) {\n const ch = (pos < 0 ? lb[lbSize + pos] : data[pos]);\n if (ch !== needle[i])\n return false;\n }\n return true;\n}\n\nmodule.exports = SBMH;\n", "'use strict';\n\nconst { Readable, Writable } = require('stream');\n\nconst StreamSearch = require('streamsearch');\n\nconst {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n} = require('../utils.js');\n\nconst BUF_CRLF = Buffer.from('\\r\\n');\nconst BUF_CR = Buffer.from('\\r');\nconst BUF_DASH = Buffer.from('-');\n\nfunction noop() {}\n\nconst MAX_HEADER_PAIRS = 2000; // From node\nconst MAX_HEADER_SIZE = 16 * 1024; // From node (its default value)\n\nconst HPARSER_NAME = 0;\nconst HPARSER_PRE_OWS = 1;\nconst HPARSER_VALUE = 2;\nclass HeaderParser {\n constructor(cb) {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n this.cb = cb;\n }\n\n reset() {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n }\n\n push(chunk, pos, end) {\n let start = pos;\n while (pos < end) {\n switch (this.state) {\n case HPARSER_NAME: {\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (TOKEN[code] !== 1) {\n if (code !== 58/* ':' */)\n return -1;\n this.name += chunk.latin1Slice(start, pos);\n if (this.name.length === 0)\n return -1;\n ++pos;\n done = true;\n this.state = HPARSER_PRE_OWS;\n break;\n }\n }\n if (!done) {\n this.name += chunk.latin1Slice(start, pos);\n break;\n }\n // FALLTHROUGH\n }\n case HPARSER_PRE_OWS: {\n // Skip optional whitespace\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */) {\n start = pos;\n done = true;\n this.state = HPARSER_VALUE;\n break;\n }\n }\n if (!done)\n break;\n // FALLTHROUGH\n }\n case HPARSER_VALUE:\n switch (this.crlf) {\n case 0: // Nothing yet\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (FIELD_VCHAR[code] !== 1) {\n if (code !== 13/* '\\r' */)\n return -1;\n ++this.crlf;\n break;\n }\n }\n this.value += chunk.latin1Slice(start, pos++);\n break;\n case 1: // Received CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n ++this.crlf;\n break;\n case 2: { // Received CR LF\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code === 32/* ' ' */ || code === 9/* '\\t' */) {\n // Folded value\n start = pos;\n this.crlf = 0;\n } else {\n if (++this.pairCount < MAX_HEADER_PAIRS) {\n this.name = this.name.toLowerCase();\n if (this.header[this.name] === undefined)\n this.header[this.name] = [this.value];\n else\n this.header[this.name].push(this.value);\n }\n if (code === 13/* '\\r' */) {\n ++this.crlf;\n ++pos;\n } else {\n // Assume start of next header field name\n start = pos;\n this.crlf = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n }\n }\n break;\n }\n case 3: { // Received CR LF CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n // End of header\n const header = this.header;\n this.reset();\n this.cb(header);\n return pos;\n }\n }\n break;\n }\n }\n\n return pos;\n }\n}\n\nclass FileStream extends Readable {\n constructor(opts, owner) {\n super(opts);\n this.truncated = false;\n this._readcb = null;\n this.once('end', () => {\n // We need to make sure that we call any outstanding _writecb() that is\n // associated with this file so that processing of the rest of the form\n // can continue. This may not happen if the file stream ends right after\n // backpressure kicks in, so we force it here.\n this._read();\n if (--owner._fileEndsLeft === 0 && owner._finalcb) {\n const cb = owner._finalcb;\n owner._finalcb = null;\n // Make sure other 'end' event handlers get a chance to be executed\n // before busboy's 'finish' event is emitted\n process.nextTick(cb);\n }\n });\n }\n _read(n) {\n const cb = this._readcb;\n if (cb) {\n this._readcb = null;\n cb();\n }\n }\n}\n\nconst ignoreData = {\n push: (chunk, pos) => {},\n destroy: () => {},\n};\n\nfunction callAndUnsetCb(self, err) {\n const cb = self._writecb;\n self._writecb = null;\n if (err)\n self.destroy(err);\n else if (cb)\n cb();\n}\n\nfunction nullDecoder(val, hint) {\n return val;\n}\n\nclass Multipart extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n if (!cfg.conType.params || typeof cfg.conType.params.boundary !== 'string')\n throw new Error('Multipart: Boundary not found');\n\n const boundary = cfg.conType.params.boundary;\n const paramDecoder = (typeof cfg.defParamCharset === 'string'\n && cfg.defParamCharset\n ? getDecoder(cfg.defParamCharset)\n : nullDecoder);\n const defCharset = (cfg.defCharset || 'utf8');\n const preservePath = cfg.preservePath;\n const fileOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.fileHwm === 'number'\n ? cfg.fileHwm\n : undefined),\n };\n\n const limits = cfg.limits;\n const fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n const fileSizeLimit = (limits && typeof limits.fileSize === 'number'\n ? limits.fileSize\n : Infinity);\n const filesLimit = (limits && typeof limits.files === 'number'\n ? limits.files\n : Infinity);\n const fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n const partsLimit = (limits && typeof limits.parts === 'number'\n ? limits.parts\n : Infinity);\n\n let parts = -1; // Account for initial boundary\n let fields = 0;\n let files = 0;\n let skipPart = false;\n\n this._fileEndsLeft = 0;\n this._fileStream = undefined;\n this._complete = false;\n let fileSize = 0;\n\n let field;\n let fieldSize = 0;\n let partCharset;\n let partEncoding;\n let partType;\n let partName;\n let partTruncated = false;\n\n let hitFilesLimit = false;\n let hitFieldsLimit = false;\n\n this._hparser = null;\n const hparser = new HeaderParser((header) => {\n this._hparser = null;\n skipPart = false;\n\n partType = 'text/plain';\n partCharset = defCharset;\n partEncoding = '7bit';\n partName = undefined;\n partTruncated = false;\n\n let filename;\n if (!header['content-disposition']) {\n skipPart = true;\n return;\n }\n\n const disp = parseDisposition(header['content-disposition'][0],\n paramDecoder);\n if (!disp || disp.type !== 'form-data') {\n skipPart = true;\n return;\n }\n\n if (disp.params) {\n if (disp.params.name)\n partName = disp.params.name;\n\n if (disp.params['filename*'])\n filename = disp.params['filename*'];\n else if (disp.params.filename)\n filename = disp.params.filename;\n\n if (filename !== undefined && !preservePath)\n filename = basename(filename);\n }\n\n if (header['content-type']) {\n const conType = parseContentType(header['content-type'][0]);\n if (conType) {\n partType = `${conType.type}/${conType.subtype}`;\n if (conType.params && typeof conType.params.charset === 'string')\n partCharset = conType.params.charset.toLowerCase();\n }\n }\n\n if (header['content-transfer-encoding'])\n partEncoding = header['content-transfer-encoding'][0].toLowerCase();\n\n if (partType === 'application/octet-stream' || filename !== undefined) {\n // File\n\n if (files === filesLimit) {\n if (!hitFilesLimit) {\n hitFilesLimit = true;\n this.emit('filesLimit');\n }\n skipPart = true;\n return;\n }\n ++files;\n\n if (this.listenerCount('file') === 0) {\n skipPart = true;\n return;\n }\n\n fileSize = 0;\n this._fileStream = new FileStream(fileOpts, this);\n ++this._fileEndsLeft;\n this.emit(\n 'file',\n partName,\n this._fileStream,\n { filename,\n encoding: partEncoding,\n mimeType: partType }\n );\n } else {\n // Non-file\n\n if (fields === fieldsLimit) {\n if (!hitFieldsLimit) {\n hitFieldsLimit = true;\n this.emit('fieldsLimit');\n }\n skipPart = true;\n return;\n }\n ++fields;\n\n if (this.listenerCount('field') === 0) {\n skipPart = true;\n return;\n }\n\n field = [];\n fieldSize = 0;\n }\n });\n\n let matchPostBoundary = 0;\n const ssCb = (isMatch, data, start, end, isDataSafe) => {\nretrydata:\n while (data) {\n if (this._hparser !== null) {\n const ret = this._hparser.push(data, start, end);\n if (ret === -1) {\n this._hparser = null;\n hparser.reset();\n this.emit('error', new Error('Malformed part header'));\n break;\n }\n start = ret;\n }\n\n if (start === end)\n break;\n\n if (matchPostBoundary !== 0) {\n if (matchPostBoundary === 1) {\n switch (data[start]) {\n case 45: // '-'\n // Try matching '--' after boundary\n matchPostBoundary = 2;\n ++start;\n break;\n case 13: // '\\r'\n // Try matching CR LF before header\n matchPostBoundary = 3;\n ++start;\n break;\n default:\n matchPostBoundary = 0;\n }\n if (start === end)\n return;\n }\n\n if (matchPostBoundary === 2) {\n matchPostBoundary = 0;\n if (data[start] === 45/* '-' */) {\n // End of multipart data\n this._complete = true;\n this._bparser = ignoreData;\n return;\n }\n // We saw something other than '-', so put the dash we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_DASH, 0, 1, false);\n this._writecb = writecb;\n } else if (matchPostBoundary === 3) {\n matchPostBoundary = 0;\n if (data[start] === 10/* '\\n' */) {\n ++start;\n if (parts >= partsLimit)\n break;\n // Prepare the header parser\n this._hparser = hparser;\n if (start === end)\n break;\n // Process the remaining data as a header\n continue retrydata;\n } else {\n // We saw something other than LF, so put the CR we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_CR, 0, 1, false);\n this._writecb = writecb;\n }\n }\n }\n\n if (!skipPart) {\n if (this._fileStream) {\n let chunk;\n const actualLen = Math.min(end - start, fileSizeLimit - fileSize);\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fileSize += chunk.length;\n if (fileSize === fileSizeLimit) {\n if (chunk.length > 0)\n this._fileStream.push(chunk);\n this._fileStream.emit('limit');\n this._fileStream.truncated = true;\n skipPart = true;\n } else if (!this._fileStream.push(chunk)) {\n if (this._writecb)\n this._fileStream._readcb = this._writecb;\n this._writecb = null;\n }\n } else if (field !== undefined) {\n let chunk;\n const actualLen = Math.min(\n end - start,\n fieldSizeLimit - fieldSize\n );\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fieldSize += actualLen;\n field.push(chunk);\n if (fieldSize === fieldSizeLimit) {\n skipPart = true;\n partTruncated = true;\n }\n }\n }\n\n break;\n }\n\n if (isMatch) {\n matchPostBoundary = 1;\n\n if (this._fileStream) {\n // End the active file stream if the previous part was a file\n this._fileStream.push(null);\n this._fileStream = null;\n } else if (field !== undefined) {\n let data;\n switch (field.length) {\n case 0:\n data = '';\n break;\n case 1:\n data = convertToUTF8(field[0], partCharset, 0);\n break;\n default:\n data = convertToUTF8(\n Buffer.concat(field, fieldSize),\n partCharset,\n 0\n );\n }\n field = undefined;\n fieldSize = 0;\n this.emit(\n 'field',\n partName,\n data,\n { nameTruncated: false,\n valueTruncated: partTruncated,\n encoding: partEncoding,\n mimeType: partType }\n );\n }\n\n if (++parts === partsLimit)\n this.emit('partsLimit');\n }\n };\n this._bparser = new StreamSearch(`\\r\\n--${boundary}`, ssCb);\n\n this._writecb = null;\n this._finalcb = null;\n\n // Just in case there is no preamble\n this.write(BUF_CRLF);\n }\n\n static detect(conType) {\n return (conType.type === 'multipart' && conType.subtype === 'form-data');\n }\n\n _write(chunk, enc, cb) {\n this._writecb = cb;\n this._bparser.push(chunk, 0);\n if (this._writecb)\n callAndUnsetCb(this);\n }\n\n _destroy(err, cb) {\n this._hparser = null;\n this._bparser = ignoreData;\n if (!err)\n err = checkEndState(this);\n const fileStream = this._fileStream;\n if (fileStream) {\n this._fileStream = null;\n fileStream.destroy(err);\n }\n cb(err);\n }\n\n _final(cb) {\n this._bparser.destroy();\n if (!this._complete)\n return cb(new Error('Unexpected end of form'));\n if (this._fileEndsLeft)\n this._finalcb = finalcb.bind(null, this, cb);\n else\n finalcb(this, cb);\n }\n}\n\nfunction finalcb(self, cb, err) {\n if (err)\n return cb(err);\n err = checkEndState(self);\n cb(err);\n}\n\nfunction checkEndState(self) {\n if (self._hparser)\n return new Error('Malformed part header');\n const fileStream = self._fileStream;\n if (fileStream) {\n self._fileStream = null;\n fileStream.destroy(new Error('Unexpected end of file'));\n }\n if (!self._complete)\n return new Error('Unexpected end of form');\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst FIELD_VCHAR = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nmodule.exports = Multipart;\n", "'use strict';\n\nconst { Writable } = require('stream');\n\nconst { getDecoder } = require('../utils.js');\n\nclass URLEncoded extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n let charset = (cfg.defCharset || 'utf8');\n if (cfg.conType.params && typeof cfg.conType.params.charset === 'string')\n charset = cfg.conType.params.charset;\n\n this.charset = charset;\n\n const limits = cfg.limits;\n this.fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n this.fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n this.fieldNameSizeLimit = (\n limits && typeof limits.fieldNameSize === 'number'\n ? limits.fieldNameSize\n : 100\n );\n\n this._inKey = true;\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n this._fields = 0;\n this._key = '';\n this._val = '';\n this._byte = -2;\n this._lastPos = 0;\n this._encode = 0;\n this._decoder = getDecoder(charset);\n }\n\n static detect(conType) {\n return (conType.type === 'application'\n && conType.subtype === 'x-www-form-urlencoded');\n }\n\n _write(chunk, enc, cb) {\n if (this._fields >= this.fieldsLimit)\n return cb();\n\n let i = 0;\n const len = chunk.length;\n this._lastPos = 0;\n\n // Check if we last ended mid-percent-encoded byte\n if (this._byte !== -2) {\n i = readPctEnc(this, chunk, i, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n if (this._inKey)\n ++this._bytesKey;\n else\n ++this._bytesVal;\n }\n\nmain:\n while (i < len) {\n if (this._inKey) {\n // Parsing key\n\n i = skipKeyBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 61: // '='\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n this._inKey = false;\n continue main;\n case 38: // '&'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0) {\n this.emit(\n 'field',\n this._key,\n '',\n { nameTruncated: this._keyTrunc,\n valueTruncated: false,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue;\n case 43: // '+'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._key += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n } else {\n // Parsing value\n\n i = skipValBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 38: // '&'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._inKey = true;\n this._val = this._decoder(this._val, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0 || this._bytesVal > 0) {\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue main;\n case 43: // '+'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._val += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n }\n }\n\n cb();\n }\n\n _final(cb) {\n if (this._byte !== -2)\n return cb(new Error('Malformed urlencoded form'));\n if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) {\n if (this._inKey)\n this._key = this._decoder(this._key, this._encode);\n else\n this._val = this._decoder(this._val, this._encode);\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n cb();\n }\n}\n\nfunction readPctEnc(self, chunk, pos, len) {\n if (pos >= len)\n return len;\n\n if (self._byte === -1) {\n // We saw a '%' but no hex characters yet\n const hexUpper = HEX_VALUES[chunk[pos++]];\n if (hexUpper === -1)\n return -1;\n\n if (hexUpper >= 8)\n self._encode = 2; // Indicate high bits detected\n\n if (pos < len) {\n // Both hex characters are in this chunk\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((hexUpper << 4) + hexLower);\n else\n self._val += String.fromCharCode((hexUpper << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n } else {\n // Only one hex character was available in this chunk\n self._byte = hexUpper;\n }\n } else {\n // We saw only one hex character so far\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((self._byte << 4) + hexLower);\n else\n self._val += String.fromCharCode((self._byte << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipKeyBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesKey > self.fieldNameSizeLimit) {\n if (!self._keyTrunc) {\n if (self._lastPos < pos)\n self._key += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._keyTrunc = true;\n for (; pos < len; ++pos) {\n const code = chunk[pos];\n if (code === 61/* '=' */ || code === 38/* '&' */)\n break;\n ++self._bytesKey;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipValBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesVal > self.fieldSizeLimit) {\n if (!self._valTrunc) {\n if (self._lastPos < pos)\n self._val += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._valTrunc = true;\n for (; pos < len; ++pos) {\n if (chunk[pos] === 38/* '&' */)\n break;\n ++self._bytesVal;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = URLEncoded;\n", "'use strict';\n\nconst { parseContentType } = require('./utils.js');\n\nfunction getInstance(cfg) {\n const headers = cfg.headers;\n const conType = parseContentType(headers['content-type']);\n if (!conType)\n throw new Error('Malformed content type');\n\n for (const type of TYPES) {\n const matched = type.detect(conType);\n if (!matched)\n continue;\n\n const instanceCfg = {\n limits: cfg.limits,\n headers,\n conType,\n highWaterMark: undefined,\n fileHwm: undefined,\n defCharset: undefined,\n defParamCharset: undefined,\n preservePath: false,\n };\n if (cfg.highWaterMark)\n instanceCfg.highWaterMark = cfg.highWaterMark;\n if (cfg.fileHwm)\n instanceCfg.fileHwm = cfg.fileHwm;\n instanceCfg.defCharset = cfg.defCharset;\n instanceCfg.defParamCharset = cfg.defParamCharset;\n instanceCfg.preservePath = cfg.preservePath;\n return new type(instanceCfg);\n }\n\n throw new Error(`Unsupported content type: ${headers['content-type']}`);\n}\n\n// Note: types are explicitly listed here for easier bundling\n// See: https://github.com/mscdex/busboy/issues/121\nconst TYPES = [\n require('./types/multipart'),\n require('./types/urlencoded'),\n].filter(function(typemod) { return typeof typemod.detect === 'function'; });\n\nmodule.exports = (cfg) => {\n if (typeof cfg !== 'object' || cfg === null)\n cfg = {};\n\n if (typeof cfg.headers !== 'object'\n || cfg.headers === null\n || typeof cfg.headers['content-type'] !== 'string') {\n throw new Error('Missing Content-Type');\n }\n\n return getInstance(cfg);\n};\n", "'use strict'\n\nconst { MessageChannel, receiveMessageOnPort } = require('worker_threads')\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\n// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\n// https://fetch.spec.whatwg.org/#request-body-header-name\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type',\n // See https://github.com/nodejs/undici/issues/2021\n // 'Content-Length' is a forbidden header name, which is typically\n // removed in the Headers implementation. However, undici doesn't\n // filter out headers, so we add it here.\n 'content-length'\n]\n\n// https://fetch.spec.whatwg.org/#enumdef-requestduplex\nconst requestDuplex = [\n 'half'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nlet channel\n\n/** @type {globalThis['structuredClone']} */\nconst structuredClone =\n globalThis.structuredClone ??\n // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n // structuredClone was added in v17.0.0, but fetch supports v16.8\n function structuredClone (value, options = undefined) {\n if (arguments.length === 0) {\n throw new TypeError('missing argument')\n }\n\n if (!channel) {\n channel = new MessageChannel()\n }\n channel.port1.unref()\n channel.port2.unref()\n channel.port1.postMessage(value, options?.transfer)\n return receiveMessageOnPort(channel.port2).message\n }\n\nmodule.exports = {\n DOMException,\n structuredClone,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods,\n badPorts,\n requestDuplex\n}\n", "'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (\n newOrigin !== undefined &&\n typeof newOrigin !== 'string' &&\n !(newOrigin instanceof URL)\n ) {\n throw new Error('Invalid base url')\n }\n\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n", "'use strict'\n\nconst { redirectStatus, badPorts, referrerPolicy: referrerPolicyTokens } = require('./constants')\nconst { getGlobalOrigin } = require('./global')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response\u2019s URL list and null if response\u2019s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response\u2019s status is not a redirect status, then return null.\n if (!redirectStatus.includes(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response\u2019s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a header value, then set location to the result of\n // parsing location with response\u2019s URL.\n if (location !== null && isValidHeaderValue(location)) {\n location = new URL(location, responseURL(response))\n }\n\n // 4. If location is a URL whose fragment is null, then set location\u2019s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request\u2019s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url\u2019s scheme is an HTTP(S) scheme and url\u2019s port is a bad port,\n // then return blocked.\n if (urlIsHttpHttpsScheme(url) && badPorts.includes(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\nfunction isTokenChar (c) {\n return !(\n c >= 0x7f ||\n c <= 0x20 ||\n c === '(' ||\n c === ')' ||\n c === '<' ||\n c === '>' ||\n c === '@' ||\n c === ',' ||\n c === ';' ||\n c === ':' ||\n c === '\\\\' ||\n c === '\"' ||\n c === '/' ||\n c === '[' ||\n c === ']' ||\n c === '?' ||\n c === '=' ||\n c === '{' ||\n c === '}'\n )\n}\n\n// See RFC 7230, Section 3.2.6.\n// https://github.com/chromium/chromium/blob/d7da0240cae77824d1eda25745c4022757499131/third_party/blink/renderer/platform/network/http_parsers.cc#L321\nfunction isValidHTTPToken (characters) {\n if (!characters || typeof characters !== 'string') {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n const c = characters.charCodeAt(i)\n if (c > 0x7f || !isTokenChar(c)) {\n return false\n }\n }\n return true\n}\n\n// https://fetch.spec.whatwg.org/#header-name\n// https://github.com/chromium/chromium/blob/b3d37e6f94f87d59e44662d6078f6a12de845d17/net/http/http_util.cc#L342\nfunction isValidHeaderName (potentialValue) {\n if (potentialValue.length === 0) {\n return false\n }\n\n return isValidHTTPToken(potentialValue)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request\u2019s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing \u00A7 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n\n // 8.1 Parse a referrer policy from a Referrer-Policy header\n // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response\u2019s header list.\n const { headersList } = actualResponse\n // 2. Let policy be the empty string.\n // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.\n // 4. Return policy.\n const policyHeader = (headersList.get('referrer-policy') ?? '').split(',')\n\n // Note: As the referrer-policy can contain multiple policies\n // separated by comma, we need to loop through all of them\n // and pick the first valid one.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n let policy = ''\n if (policyHeader.length > 0) {\n // The right-most policy takes precedence.\n // The left-most policy is the fallback.\n for (let i = policyHeader.length; i !== 0; i--) {\n const token = policyHeader[i - 1].trim()\n if (referrerPolicyTokens.includes(token)) {\n policy = token\n break\n }\n }\n }\n\n // 2. If policy is not the empty string, then set request\u2019s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r\u2019s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header\u2019s value to r\u2019s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r\u2019s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request\u2019s response tainting is \"cors\" or request\u2019s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request\u2019s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request\u2019s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request\u2019s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request\u2019s origin is a tuple origin, its scheme is \"https\", and request\u2019s current URL\u2019s scheme is not \"https\", then set serializedOrigin to `null`.\n if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request\u2019s origin is not same origin with request\u2019s current URL\u2019s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request\u2019s header list.\n request.headersList.append('origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // Note: the fetch spec doesn't make use of embedder policy or CSP list\n return {\n referrerPolicy: 'strict-origin-when-cross-origin'\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer (policyContainer) {\n return {\n referrerPolicy: policyContainer.referrerPolicy\n }\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Note: policy cannot (shouldn't) be null or an empty string.\n assert(policy)\n\n // 2. Let environment be request\u2019s client.\n\n let referrerSource = null\n\n // 3. Switch on request\u2019s referrer:\n if (request.referrer === 'client') {\n // Note: node isn't a browser and doesn't implement document/iframes,\n // so we bypass this step and replace it with our own.\n\n const globalOrigin = getGlobalOrigin()\n\n if (!globalOrigin || globalOrigin.origin === 'null') {\n return 'no-referrer'\n }\n\n // note: we need to clone it as it's mutated\n referrerSource = new URL(globalOrigin)\n } else if (request.referrer instanceof URL) {\n // Let referrerSource be request\u2019s referrer.\n referrerSource = request.referrer\n }\n\n // 4. Let request\u2019s referrerURL be the result of stripping referrerSource for\n // use as a referrer.\n let referrerURL = stripURLForReferrer(referrerSource)\n\n // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n // a referrer, with the origin-only flag set to true.\n const referrerOrigin = stripURLForReferrer(referrerSource, true)\n\n // 6. If the result of serializing referrerURL is a string whose length is\n // greater than 4096, set referrerURL to referrerOrigin.\n if (referrerURL.toString().length > 4096) {\n referrerURL = referrerOrigin\n }\n\n const areSameOrigin = sameOrigin(request, referrerURL)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerURL\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerURL : referrerOrigin\n case 'strict-origin-when-cross-origin': {\n const currentURL = requestCurrentURL(request)\n\n // 1. If the origin of referrerURL and the origin of request\u2019s current\n // URL are the same, then return referrerURL.\n if (sameOrigin(referrerURL, currentURL)) {\n return referrerURL\n }\n\n // 2. If referrerURL is a potentially trustworthy URL and request\u2019s\n // current URL is not a potentially trustworthy URL, then return no\n // referrer.\n if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n return 'no-referrer'\n }\n\n // 3. Return referrerOrigin.\n return referrerOrigin\n }\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n * @param {URL} url\n * @param {boolean|undefined} originOnly\n */\nfunction stripURLForReferrer (url, originOnly) {\n // 1. Assert: url is a URL.\n assert(url instanceof URL)\n\n // 2. If url\u2019s scheme is a local scheme, then return no referrer.\n if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n return 'no-referrer'\n }\n\n // 3. Set url\u2019s username to the empty string.\n url.username = ''\n\n // 4. Set url\u2019s password to the empty string.\n url.password = ''\n\n // 5. Set url\u2019s fragment to null.\n url.hash = ''\n\n // 6. If the origin-only flag is true, then:\n if (originOnly) {\n // 1. Set url\u2019s path to \u00AB the empty string \u00BB.\n url.pathname = ''\n\n // 2. Set url\u2019s query to null.\n url.search = ''\n }\n\n // 7. Return url.\n return url\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 4. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n const list = parsedMetadata.sort((c, d) => d.algo.localeCompare(c.algo))\n // get the strongest algorithm\n const strongest = list[0].algo\n // get all entries that use the strongest algorithm; ignore weaker\n const metadata = list.filter((item) => item.algo === strongest)\n\n // 5. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n const actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (actualValue === expectedValue) {\n return true\n }\n }\n\n // 6. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// https://www.w3.org/TR/CSP2/#source-list-syntax\n// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\\x21-\\x7e]?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n const supportedHashes = crypto.getHashes()\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (parsedToken === null || parsedToken.groups === undefined) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm.toLowerCase())) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n if (A.origin === B.origin && A.origin === 'null') {\n return true\n }\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\n// https://fetch.spec.whatwg.org/#concept-method-normalize\nfunction normalizeMethod (method) {\n return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method)\n ? method.toUpperCase()\n : method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, \u00AB value \u00BB).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n/**\n * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n * @param {() => unknown[]} iterator\n * @param {string} name name of the instance\n * @param {'key'|'value'|'key+value'} kind\n */\nfunction makeIterator (iterator, name, kind) {\n const object = {\n index: 0,\n kind,\n target: iterator\n }\n\n const i = {\n next () {\n // 1. Let interface be the interface for which the iterator prototype object exists.\n\n // 2. Let thisValue be the this value.\n\n // 3. Let object be ? ToObject(thisValue).\n\n // 4. If object is a platform object, then perform a security\n // check, passing:\n\n // 5. If object is not a default iterator object for interface,\n // then throw a TypeError.\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n // 6. Let index be object\u2019s index.\n // 7. Let kind be object\u2019s kind.\n // 8. Let values be object\u2019s target's value pairs to iterate over.\n const { index, kind, target } = object\n const values = target()\n\n // 9. Let len be the length of values.\n const len = values.length\n\n // 10. If index is greater than or equal to len, then return\n // CreateIterResultObject(undefined, true).\n if (index >= len) {\n return { value: undefined, done: true }\n }\n\n // 11. Let pair be the entry in values at index index.\n const pair = values[index]\n\n // 12. Set object\u2019s index to index + 1.\n object.index = index + 1\n\n // 13. Return the iterator result for pair and kind.\n return iteratorResult(pair, kind)\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n// https://webidl.spec.whatwg.org/#iterator-result\nfunction iteratorResult (pair, kind) {\n let result\n\n // 1. Let result be a value determined by the value of kind:\n switch (kind) {\n case 'key': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 3. result is key.\n result = pair[0]\n break\n }\n case 'value': {\n // 1. Let idlValue be pair\u2019s value.\n // 2. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 3. result is value.\n result = pair[1]\n break\n }\n case 'key+value': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let idlValue be pair\u2019s value.\n // 3. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 4. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 5. Let array be ! ArrayCreate(2).\n // 6. Call ! CreateDataProperty(array, \"0\", key).\n // 7. Call ! CreateDataProperty(array, \"1\", value).\n // 8. result is array.\n result = pair\n break\n }\n }\n\n // 2. Return CreateIterResultObject(result, false).\n return { value: result, done: false }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nfunction fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let successSteps given a byte sequence bytes be to queue a\n // fetch task to run processBody given bytes, with taskDestination.\n const successSteps = (bytes) => queueMicrotask(() => processBody(bytes))\n\n // 3. Let errorSteps be to queue a fetch task to run processBodyError,\n // with taskDestination.\n const errorSteps = (error) => queueMicrotask(() => processBodyError(error))\n\n // 4. Let reader be the result of getting a reader for body\u2019s stream.\n // If that threw an exception, then run errorSteps with that\n // exception and return.\n let reader\n\n try {\n reader = body.stream.getReader()\n } catch (e) {\n errorSteps(e)\n return\n }\n\n // 5. Read all bytes from reader, given successSteps and errorSteps.\n readAllBytes(reader, successSteps, errorSteps)\n}\n\n/** @type {ReadableStream} */\nlet ReadableStream = globalThis.ReadableStream\n\nfunction isReadableStreamLike (stream) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n return stream instanceof ReadableStream || (\n stream[Symbol.toStringTag] === 'ReadableStream' &&\n typeof stream.tee === 'function'\n )\n}\n\nconst MAXIMUM_ARGUMENT_LENGTH = 65535\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-decode\n * @param {number[]|Uint8Array} input\n */\nfunction isomorphicDecode (input) {\n // 1. To isomorphic decode a byte sequence input, return a string whose code point\n // length is equal to input\u2019s length and whose code points have the same values\n // as the values of input\u2019s bytes, in the same order.\n\n if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n return String.fromCharCode(...input)\n }\n\n return input.reduce((previous, current) => previous + String.fromCharCode(current), '')\n}\n\n/**\n * @param {ReadableStreamController<Uint8Array>} controller\n */\nfunction readableStreamClose (controller) {\n try {\n controller.close()\n } catch (err) {\n // TODO: add comment explaining why this error occurs.\n if (!err.message.includes('Controller is already closed')) {\n throw err\n }\n }\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-encode\n * @param {string} input\n */\nfunction isomorphicEncode (input) {\n // 1. Assert: input contains no code points greater than U+00FF.\n for (let i = 0; i < input.length; i++) {\n assert(input.charCodeAt(i) <= 0xFF)\n }\n\n // 2. Return a byte sequence whose length is equal to input\u2019s code\n // point length and whose bytes have the same values as the\n // values of input\u2019s code points, in the same order\n return input\n}\n\n/**\n * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n * @see https://streams.spec.whatwg.org/#read-loop\n * @param {ReadableStreamDefaultReader} reader\n * @param {(bytes: Uint8Array) => void} successSteps\n * @param {(error: Error) => void} failureSteps\n */\nasync function readAllBytes (reader, successSteps, failureSteps) {\n const bytes = []\n let byteLength = 0\n\n while (true) {\n let done\n let chunk\n\n try {\n ({ done, value: chunk } = await reader.read())\n } catch (e) {\n // 1. Call failureSteps with e.\n failureSteps(e)\n return\n }\n\n if (done) {\n // 1. Call successSteps with bytes.\n successSteps(Buffer.concat(bytes, byteLength))\n return\n }\n\n // 1. If chunk is not a Uint8Array object, call failureSteps\n // with a TypeError and abort these steps.\n if (!isUint8Array(chunk)) {\n failureSteps(new TypeError('Received non-Uint8Array chunk'))\n return\n }\n\n // 2. Append the bytes represented by chunk to bytes.\n bytes.push(chunk)\n byteLength += chunk.length\n\n // 3. Read-loop given reader, bytes, successSteps, and failureSteps.\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#is-local\n * @param {URL} url\n */\nfunction urlIsLocal (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n}\n\n/**\n * @param {string|URL} url\n */\nfunction urlHasHttpsScheme (url) {\n if (typeof url === 'string') {\n return url.startsWith('https:')\n }\n\n return url.protocol === 'https:'\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-scheme\n * @param {URL} url\n */\nfunction urlIsHttpHttpsScheme (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'http:' || protocol === 'https:'\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch,\n isReadableStreamLike,\n readableStreamClose,\n isomorphicEncode,\n isomorphicDecode,\n urlIsLocal,\n urlHasHttpsScheme,\n urlIsHttpHttpsScheme,\n readAllBytes\n}\n", "'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n", "'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\n/** @type {import('../../types/webidl').Webidl} */\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\nwebidl.errors.exception = function (message) {\n return new TypeError(`${message.header}: ${message.message}`)\n}\n\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://webidl.spec.whatwg.org/#implements\nwebidl.brandCheck = function (V, I, opts = undefined) {\n if (opts?.strict !== false && !(V instanceof I)) {\n throw new TypeError('Illegal invocation')\n } else {\n return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n }\n}\n\nwebidl.argumentLengthCheck = function ({ length }, min, ctx) {\n if (length < min) {\n throw webidl.errors.exception({\n message: `${min} argument${min !== 1 ? 's' : ''} required, ` +\n `but${length ? ' only' : ''} ${length} found.`,\n ...ctx\n })\n }\n}\n\nwebidl.illegalConstructor = function () {\n throw webidl.errors.exception({\n header: 'TypeError',\n message: 'Illegal constructor'\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 \u2212 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be \u22122^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength \u2212 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength \u2212 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength \u2212 1 \u2212 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is \u22120, then set x to +0.\n if (x === 0) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +\u221E, or \u2212\u221E, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than \u22120.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +\u221E, or \u2212\u221E, then return +0.\n if (\n Number.isNaN(x) ||\n (x === 0 && Object.is(0, x)) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x \u2265 2^bitLength \u2212 1,\n // then return x \u2212 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 \u00D7 r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-to-record\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (O) => {\n // 1. If Type(O) is not Object, throw a TypeError.\n if (webidl.util.Type(O) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Record',\n message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n })\n }\n\n // 2. Let result be a new empty instance of record<K, V>.\n const result = {}\n\n if (!types.isProxy(O)) {\n // Object.keys only returns enumerable properties\n const keys = Object.keys(O)\n\n for (const key of keys) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n\n // 5. Return result.\n return result\n }\n\n // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n const keys = Reflect.ownKeys(O)\n\n // 4. For each key of keys.\n for (const key of keys) {\n // 1. Let desc be ? O.[[GetOwnProperty]](key).\n const desc = Reflect.getOwnPropertyDescriptor(O, key)\n\n // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n if (desc?.enumerable) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n }\n\n // 5. Return result.\n return result\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n throw webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type === 'Null' || type === 'Undefined') {\n return dict\n } else if (type !== 'Object') {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n const charCode = x.charCodeAt(index)\n\n if (charCode > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at ' +\n `index ${index} has a value of ${charCode} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed')\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long-long\nwebidl.converters['unsigned long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 64, 'unsigned')\n\n // 2. Return the IDL unsigned long long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long\nwebidl.converters['unsigned long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 32, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 32, 'unsigned')\n\n // 2. Return the IDL unsigned long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts)\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T\u2019s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n throw webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence<ByteString>'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence<sequence<ByteString>>'] = webidl.sequenceConverter(\n webidl.converters['sequence<ByteString>']\n)\n\nwebidl.converters['record<ByteString, ByteString>'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n", "const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isomorphicDecode } = require('./util')\n\nconst encoder = new TextEncoder()\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-token-code-point\n */\nconst HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/\nconst HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/ // eslint-disable-line\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n */\nconst HTTP_QUOTED_STRING_TOKENS = /[\\u0009|\\u0020-\\u007E|\\u0080-\\u00FF]/ // eslint-disable-line\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL\u2019s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePointsFast(\n ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = removeASCIIWhitespace(mimeType, true, true)\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = isomorphicDecode(body)\n\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n const href = url.href\n\n if (!excludeFragment) {\n return href\n }\n\n const hash = href.lastIndexOf('#')\n if (hash === -1) {\n return href\n }\n return href.slice(0, hash)\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn\u2019t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n/**\n * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n * @param {string} char\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePointsFast (char, input, position) {\n const idx = input.indexOf(char, position.position)\n const start = position.position\n\n if (idx === -1) {\n position.position = input.length\n return input.slice(start)\n }\n\n position.position = idx\n return input.slice(start, position.position)\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = removeHTTPWhitespace(input, true, true)\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePointsFast(\n '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = removeHTTPWhitespace(subtype, false, true)\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n return 'failure'\n }\n\n const typeLowercase = type.toLowerCase()\n const subtypeLowercase = subtype.toLowerCase()\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: typeLowercase,\n subtype: subtypeLowercase,\n /** @type {Map<string, string>} */\n parameters: new Map(),\n // https://mimesniff.spec.whatwg.org/#mime-type-essence\n essence: `${typeLowercase}/${subtypeLowercase}`\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n char => HTTP_WHITESPACE_REGEX.test(char),\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n parameterValue = removeHTTPWhitespace(parameterValue, false, true)\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType\u2019s parameters[parameterName] does not exist\n // then set mimeType\u2019s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) &&\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data\u2019s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data\u2019s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { parameters, essence } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType\u2019s\n // type, U+002F (/), and mimeType\u2019s subtype.\n let serialization = essence\n\n // 2. For each name \u2192 value of mimeType\u2019s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!HTTP_TOKEN_CODEPOINTS.test(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} char\n */\nfunction isHTTPWhiteSpace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === ' '\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} str\n */\nfunction removeHTTPWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n * @param {string} char\n */\nfunction isASCIIWhitespace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === '\\f' || char === ' '\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace\n */\nfunction removeASCIIWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n collectASequenceOfCodePointsFast,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n", "'use strict'\n\nconst { Blob, File: NativeFile } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' })\n\n fileBits = webidl.converters['sequence<BlobPart>'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n let t = options.type\n let d\n\n // eslint-disable-next-line no-labels\n substep: {\n if (t) {\n t = parseMIMEType(t)\n\n if (t === 'failure') {\n t = ''\n // eslint-disable-next-line no-labels\n break substep\n }\n\n t = serializeAMimeType(t).toLowerCase()\n }\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n d = options.lastModified\n }\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: t })\n this[kState] = {\n name: n,\n lastModified: d,\n type: t\n }\n }\n\n get name () {\n webidl.brandCheck(this, File)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, File)\n\n return this[kState].lastModified\n }\n\n get type () {\n webidl.brandCheck(this, File)\n\n return this[kState].type\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.size\n }\n\n get type () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.type\n }\n\n get name () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nObject.defineProperties(File.prototype, {\n [Symbol.toStringTag]: {\n value: 'File',\n configurable: true\n },\n name: kEnumerableProperty,\n lastModified: kEnumerableProperty\n})\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n ArrayBuffer.isView(V) ||\n types.isAnyArrayBuffer(V)\n ) {\n return webidl.converters.BufferSource(V, opts)\n }\n }\n\n return webidl.converters.USVString(V, opts)\n}\n\nwebidl.converters['sequence<BlobPart>'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(new TextEncoder().encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform\u2019s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return (\n (NativeFile && object instanceof NativeFile) ||\n object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n", "'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File: UndiciFile, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob, File: NativeFile } = require('buffer')\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n constructor (form) {\n if (form !== undefined) {\n throw webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['undefined']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' })\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this\u2019s entry list.\n this[kState] = this[kState].filter(entry => entry.name !== name)\n }\n\n get (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this\u2019s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this\u2019s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' })\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this\u2019s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this\u2019s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n }\n\n entries () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key+value'\n )\n }\n\n keys () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\nObject.defineProperties(FormData.prototype, {\n [Symbol.toStringTag]: {\n value: 'FormData',\n configurable: true\n }\n})\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n /** @type {FilePropertyBag} */\n const options = {\n type: value.type,\n lastModified: value.lastModified\n }\n\n value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n ? new File([value], filename, options)\n : new FileLike(value, filename, options)\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nmodule.exports = { FormData }\n", "'use strict'\n\nconst Busboy = require('busboy')\nconst util = require('../core/util')\nconst {\n ReadableStreamFrom,\n isBlobLike,\n isReadableStreamLike,\n readableStreamClose,\n createDeferredPromise,\n fullyReadBody\n} = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException, structuredClone } = require('./constants')\nconst { Blob, File: NativeFile } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File: UndiciFile } = require('./file')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\n\nlet ReadableStream = globalThis.ReadableStream\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be null.\n let stream = null\n\n // 2. If object is a ReadableStream object, then set stream to object.\n if (object instanceof ReadableStream) {\n stream = object\n } else if (isBlobLike(object)) {\n // 3. Otherwise, if object is a Blob object, set stream to the\n // result of running object\u2019s get stream.\n stream = object.stream()\n } else {\n // 4. Otherwise, set stream to a new ReadableStream object, and set\n // up stream.\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? new TextEncoder().encode(source) : source\n )\n queueMicrotask(() => readableStreamClose(controller))\n },\n start () {},\n type: undefined\n })\n }\n\n // 5. Assert: stream is a ReadableStream object.\n assert(isReadableStreamLike(stream))\n\n // 6. Let action be null.\n let action = null\n\n // 7. Let source be null.\n let source = null\n\n // 8. Let length be null.\n let length = null\n\n // 9. Let type be null.\n let type = null\n\n // 10. Switch on object:\n if (typeof object === 'string') {\n // Set source to the UTF-8 encoding of object.\n // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n source = object\n\n // Set type to `text/plain;charset=UTF-8`.\n type = 'text/plain;charset=UTF-8'\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object\u2019s list.\n source = object.toString()\n\n // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n type = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}`\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy W\u00E4rting <https://jimmy.warting.se/opensource> */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object\u2019s entry list and UTF-8.\n // - This ensures that the body is immutable and can't be changed afterwords\n // - That the content-length is calculated in advance.\n // - And that all parts are pre-encoded and ready to be sent.\n\n const enc = new TextEncoder()\n const blobParts = []\n const rn = new Uint8Array([13, 10]) // '\\r\\n'\n length = 0\n let hasUnknownSizeValue = false\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n const chunk = enc.encode(prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`)\n blobParts.push(chunk)\n length += chunk.byteLength\n } else {\n const chunk = enc.encode(`${prefix}; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') + '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`)\n blobParts.push(chunk, value, rn)\n if (typeof value.size === 'number') {\n length += chunk.byteLength + value.size + rn.byteLength\n } else {\n hasUnknownSizeValue = true\n }\n }\n }\n\n const chunk = enc.encode(`--${boundary}--`)\n blobParts.push(chunk)\n length += chunk.byteLength\n if (hasUnknownSizeValue) {\n length = null\n }\n\n // Set source to object.\n source = object\n\n action = async function * () {\n for (const part of blobParts) {\n if (part.stream) {\n yield * part.stream()\n } else {\n yield part\n }\n }\n }\n\n // Set type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n type = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set source to object.\n source = object\n\n // Set length to object\u2019s size.\n length = object.size\n\n // If object\u2019s type attribute is not the empty byte sequence, set\n // type to its value.\n if (object.type) {\n type = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n }\n\n // 11. If source is a byte sequence, then set action to a\n // step that returns source and length to source\u2019s length.\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 12. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n },\n type: undefined\n })\n }\n\n // 13. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 14. Return (body, type).\n return [body, type]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let \u00AB out1, out2 \u00BB be the result of teeing body\u2019s stream.\n const [out1, out2] = body.stream.tee()\n const out2Clone = structuredClone(out2, { transfer: [out2] })\n // This, for whatever reasons, unrefs out2Clone which allows\n // the process to exit by itself.\n const [, finalClone] = out2Clone.tee()\n\n // 2. Set body\u2019s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: finalClone,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n blob () {\n // The blob() method steps are to return the result of\n // running consume body with this and the following step\n // given a byte sequence bytes: return a Blob whose\n // contents are bytes and whose type attribute is this\u2019s\n // MIME type.\n return specConsumeBody(this, (bytes) => {\n let mimeType = bodyMimeType(this)\n\n if (mimeType === 'failure') {\n mimeType = ''\n } else if (mimeType) {\n mimeType = serializeAMimeType(mimeType)\n }\n\n // Return a Blob whose contents are bytes and type attribute\n // is mimeType.\n return new Blob([bytes], { type: mimeType })\n }, instance)\n },\n\n arrayBuffer () {\n // The arrayBuffer() method steps are to return the result\n // of running consume body with this and the following step\n // given a byte sequence bytes: return a new ArrayBuffer\n // whose contents are bytes.\n return specConsumeBody(this, (bytes) => {\n return new Uint8Array(bytes).buffer\n }, instance)\n },\n\n text () {\n // The text() method steps are to return the result of running\n // consume body with this and UTF-8 decode.\n return specConsumeBody(this, utf8DecodeBytes, instance)\n },\n\n json () {\n // The json() method steps are to return the result of running\n // consume body with this and parse JSON from bytes.\n return specConsumeBody(this, parseJSONFromBytes, instance)\n },\n\n async formData () {\n webidl.brandCheck(this, instance)\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType\u2019s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = Busboy({\n headers,\n defParamCharset: 'utf8'\n })\n } catch (err) {\n throw new DOMException(`${err}`, 'AbortError')\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, info) => {\n const { filename, encoding, mimeType } = info\n const chunks = []\n\n if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(new TypeError(err)))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType\u2019s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n const textDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += textDecoder.decode(chunk, { stream: true })\n }\n text += textDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n throw webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n * @param {Response|Request} object\n * @param {(value: unknown) => unknown} convertBytesToJSValue\n * @param {Response|Request} instance\n */\nasync function specConsumeBody (object, convertBytesToJSValue, instance) {\n webidl.brandCheck(object, instance)\n\n throwIfAborted(object[kState])\n\n // 1. If object is unusable, then return a promise rejected\n // with a TypeError.\n if (bodyUnusable(object[kState].body)) {\n throw new TypeError('Body is unusable')\n }\n\n // 2. Let promise be a new promise.\n const promise = createDeferredPromise()\n\n // 3. Let errorSteps given error be to reject promise with error.\n const errorSteps = (error) => promise.reject(error)\n\n // 4. Let successSteps given a byte sequence data be to resolve\n // promise with the result of running convertBytesToJSValue\n // with data. If that threw an exception, then run errorSteps\n // with that exception.\n const successSteps = (data) => {\n try {\n promise.resolve(convertBytesToJSValue(data))\n } catch (e) {\n errorSteps(e)\n }\n }\n\n // 5. If object\u2019s body is null, then run successSteps with an\n // empty byte sequence.\n if (object[kState].body == null) {\n successSteps(new Uint8Array())\n return promise.promise\n }\n\n // 6. Otherwise, fully read object\u2019s body given successSteps,\n // errorSteps, and object\u2019s relevant global object.\n fullyReadBody(object[kState].body, successSteps, errorSteps)\n\n // 7. Return promise.\n return promise.promise\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction bodyUnusable (body) {\n // An object including the Body interface mixin is\n // said to be unusable if its body is non-null and\n // its body\u2019s stream is disturbed or locked.\n return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#utf-8-decode\n * @param {Buffer} buffer\n */\nfunction utf8DecodeBytes (buffer) {\n if (buffer.length === 0) {\n return ''\n }\n\n // 1. Let buffer be the result of peeking three bytes from\n // ioQueue, converted to a byte sequence.\n\n // 2. If buffer is 0xEF 0xBB 0xBF, then read three\n // bytes from ioQueue. (Do nothing with those bytes.)\n if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n buffer = buffer.subarray(3)\n }\n\n // 3. Process a queue with an instance of UTF-8\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n const output = new TextDecoder().decode(buffer)\n\n // 4. Return output.\n return output\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n * @param {Uint8Array} bytes\n */\nfunction parseJSONFromBytes (bytes) {\n return JSON.parse(utf8DecodeBytes(bytes))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n * @param {import('./response').Response|import('./request').Request} object\n */\nfunction bodyMimeType (object) {\n const { headersList } = object[kState]\n const contentType = headersList.get('content-type')\n\n if (contentType === null) {\n return 'failure'\n }\n\n return parseMIMEType(contentType)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n", "'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n this.contentLength = bodyStream.length\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.onError(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onConnect(abort)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onData(chunk)\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n return this[kHandler].onComplete(trailers)\n }\n\n onError (error) {\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n return this[kHandler].onError(error)\n }\n\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n}\n\nfunction processHeaderValue (key, val) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n val = val != null ? `${val}` : ''\n\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n return `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request, key, val) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type'\n ) {\n request.contentType = val\n request.headers += processHeaderValue(key, val)\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n } else if (value === 'close') {\n request.reset = true\n }\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n request.headers += processHeaderValue(key, val[i])\n }\n } else {\n request.headers += processHeaderValue(key, val)\n }\n }\n}\n\nmodule.exports = Request\n", "'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n", "'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = null\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed] = this[kOnDestroyed] || []\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed] || this[kOnDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n", "'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\n\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache\nif (global.FinalizationRegistry) {\n SessionCache = class WeakSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n this._sessionRegistry = new global.FinalizationRegistry((key) => {\n if (this._sessionCache.size < this._maxCachedSessions) {\n return\n }\n\n const ref = this._sessionCache.get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this._sessionCache.delete(key)\n }\n })\n }\n\n get (sessionKey) {\n const ref = this._sessionCache.get(sessionKey)\n return ref ? ref.deref() : null\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n this._sessionCache.set(sessionKey, new WeakRef(session))\n this._sessionRegistry.register(session, sessionKey)\n }\n }\n} else {\n SessionCache = class SimpleSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n }\n\n get (sessionKey) {\n return this._sessionCache.get(sessionKey)\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n if (this._sessionCache.size >= this._maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = this._sessionCache.keys().next()\n this._sessionCache.delete(oldestKey)\n }\n\n this._sessionCache.set(sessionKey, session)\n }\n }\n}\n\nfunction buildConnector ({ maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions)\n timeout = timeout == null ? 10e3 : timeout\n\n return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n localAddress,\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // TODO (fix): Can a session become invalid once established? Don't think so?\n sessionCache.set(sessionKey, session)\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n localAddress,\n port: port || 80,\n host: hostname\n })\n }\n\n // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n if (options.keepAlive == null || options.keepAlive) {\n const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay\n socket.setKeepAlive(true, keepAliveInitialDelay)\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n", null, null, "'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n this.opts.query = null\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n return (\n (header.length === 4 && header.toString().toLowerCase() === 'host') ||\n (removeContent && header.toString().toLowerCase().indexOf('content-') === 0) ||\n (unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') ||\n (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie')\n )\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n", "'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB4fICEjJSg/QEFERUZHSElKS0xNT1BRUlPeA1dZW1xdYGJlZmdoaWprbG1vcHFyc3R1dnd4eXp7fH1+gAGCAYUBhgGHAYkBiwGMAY0BjgGPAZABkQGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMBmQKkArAC/gL+AgsgASIEIAJHDfMBQd0BIRAM/wMLIAEiECACRw3dAUHDASEQDP4DCyABIgEgAkcNkAFB9wAhEAz9AwsgASIBIAJHDYYBQe8AIRAM/AMLIAEiASACRw1/QeoAIRAM+wMLIAEiASACRw17QegAIRAM+gMLIAEiASACRw14QeYAIRAM+QMLIAEiASACRw0aQRghEAz4AwsgASIBIAJHDRRBEiEQDPcDCyABIgEgAkcNWUHFACEQDPYDCyABIgEgAkcNSkE/IRAM9QMLIAEiASACRw1IQTwhEAz0AwsgASIBIAJHDUFBMSEQDPMDCyAALQAuQQFGDesDDIcCCyAAIAEiASACEMCAgIAAQQFHDeYBIABCADcDIAznAQsgACABIgEgAhC0gICAACIQDecBIAEhAQz1AgsCQCABIgEgAkcNAEEGIRAM8AMLIAAgAUEBaiIBIAIQu4CAgAAiEA3oASABIQEMMQsgAEIANwMgQRIhEAzVAwsgASIQIAJHDStBHSEQDO0DCwJAIAEiASACRg0AIAFBAWohAUEQIRAM1AMLQQchEAzsAwsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3lAUEIIRAM6wMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQRQhEAzSAwtBCSEQDOoDCyABIQEgACkDIFAN5AEgASEBDPICCwJAIAEiASACRw0AQQshEAzpAwsgACABQQFqIgEgAhC2gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeYBIAEhAQwNCyAAIAEiASACELqAgIAAIhAN5wEgASEBDPACCwJAIAEiASACRw0AQQ8hEAzlAwsgAS0AACIQQTtGDQggEEENRw3oASABQQFqIQEM7wILIAAgASIBIAIQuoCAgAAiEA3oASABIQEM8gILA0ACQCABLQAAQfC1gIAAai0AACIQQQFGDQAgEEECRw3rASAAKAIEIRAgAEEANgIEIAAgECABQQFqIgEQuYCAgAAiEA3qASABIQEM9AILIAFBAWoiASACRw0AC0ESIRAM4gMLIAAgASIBIAIQuoCAgAAiEA3pASABIQEMCgsgASIBIAJHDQZBGyEQDOADCwJAIAEiASACRw0AQRYhEAzgAwsgAEGKgICAADYCCCAAIAE2AgQgACABIAIQuICAgAAiEA3qASABIQFBICEQDMYDCwJAIAEiASACRg0AA0ACQCABLQAAQfC3gIAAai0AACIQQQJGDQACQCAQQX9qDgTlAewBAOsB7AELIAFBAWohAUEIIRAMyAMLIAFBAWoiASACRw0AC0EVIRAM3wMLQRUhEAzeAwsDQAJAIAEtAABB8LmAgABqLQAAIhBBAkYNACAQQX9qDgTeAewB4AHrAewBCyABQQFqIgEgAkcNAAtBGCEQDN0DCwJAIAEiASACRg0AIABBi4CAgAA2AgggACABNgIEIAEhAUEHIRAMxAMLQRkhEAzcAwsgAUEBaiEBDAILAkAgASIUIAJHDQBBGiEQDNsDCyAUIQECQCAULQAAQXNqDhTdAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAgDuAgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQM2gMLAkAgAS0AACIQQTtGDQAgEEENRw3oASABQQFqIQEM5QILIAFBAWohAQtBIiEQDL8DCwJAIAEiECACRw0AQRwhEAzYAwtCACERIBAhASAQLQAAQVBqDjfnAeYBAQIDBAUGBwgAAAAAAAAACQoLDA0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPEBESExQAC0EeIRAMvQMLQgIhEQzlAQtCAyERDOQBC0IEIREM4wELQgUhEQziAQtCBiERDOEBC0IHIREM4AELQgghEQzfAQtCCSERDN4BC0IKIREM3QELQgshEQzcAQtCDCERDNsBC0INIREM2gELQg4hEQzZAQtCDyERDNgBC0IKIREM1wELQgshEQzWAQtCDCERDNUBC0INIREM1AELQg4hEQzTAQtCDyERDNIBC0IAIRECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAtAABBUGoON+UB5AEAAQIDBAUGB+YB5gHmAeYB5gHmAeYBCAkKCwwN5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAQ4PEBESE+YBC0ICIREM5AELQgMhEQzjAQtCBCERDOIBC0IFIREM4QELQgYhEQzgAQtCByERDN8BC0IIIREM3gELQgkhEQzdAQtCCiERDNwBC0ILIREM2wELQgwhEQzaAQtCDSERDNkBC0IOIREM2AELQg8hEQzXAQtCCiERDNYBC0ILIREM1QELQgwhEQzUAQtCDSERDNMBC0IOIREM0gELQg8hEQzRAQsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3SAUEfIRAMwAMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQSQhEAynAwtBICEQDL8DCyAAIAEiECACEL6AgIAAQX9qDgW2AQDFAgHRAdIBC0ERIRAMpAMLIABBAToALyAQIQEMuwMLIAEiASACRw3SAUEkIRAMuwMLIAEiDSACRw0eQcYAIRAMugMLIAAgASIBIAIQsoCAgAAiEA3UASABIQEMtQELIAEiECACRw0mQdAAIRAMuAMLAkAgASIBIAJHDQBBKCEQDLgDCyAAQQA2AgQgAEGMgICAADYCCCAAIAEgARCxgICAACIQDdMBIAEhAQzYAQsCQCABIhAgAkcNAEEpIRAMtwMLIBAtAAAiAUEgRg0UIAFBCUcN0wEgEEEBaiEBDBULAkAgASIBIAJGDQAgAUEBaiEBDBcLQSohEAy1AwsCQCABIhAgAkcNAEErIRAMtQMLAkAgEC0AACIBQQlGDQAgAUEgRw3VAQsgAC0ALEEIRg3TASAQIQEMkQMLAkAgASIBIAJHDQBBLCEQDLQDCyABLQAAQQpHDdUBIAFBAWohAQzJAgsgASIOIAJHDdUBQS8hEAyyAwsDQAJAIAEtAAAiEEEgRg0AAkAgEEF2ag4EANwB3AEA2gELIAEhAQzgAQsgAUEBaiIBIAJHDQALQTEhEAyxAwtBMiEQIAEiFCACRg2wAyACIBRrIAAoAgAiAWohFSAUIAFrQQNqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB8LuAgABqLQAARw0BAkAgAUEDRw0AQQYhAQyWAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMsQMLIABBADYCACAUIQEM2QELQTMhECABIhQgAkYNrwMgAiAUayAAKAIAIgFqIRUgFCABa0EIaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfS7gIAAai0AAEcNAQJAIAFBCEcNAEEFIQEMlQMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLADCyAAQQA2AgAgFCEBDNgBC0E0IRAgASIUIAJGDa4DIAIgFGsgACgCACIBaiEVIBQgAWtBBWohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUHQwoCAAGotAABHDQECQCABQQVHDQBBByEBDJQDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAyvAwsgAEEANgIAIBQhAQzXAQsCQCABIgEgAkYNAANAAkAgAS0AAEGAvoCAAGotAAAiEEEBRg0AIBBBAkYNCiABIQEM3QELIAFBAWoiASACRw0AC0EwIRAMrgMLQTAhEAytAwsCQCABIgEgAkYNAANAAkAgAS0AACIQQSBGDQAgEEF2ag4E2QHaAdoB2QHaAQsgAUEBaiIBIAJHDQALQTghEAytAwtBOCEQDKwDCwNAAkAgAS0AACIQQSBGDQAgEEEJRw0DCyABQQFqIgEgAkcNAAtBPCEQDKsDCwNAAkAgAS0AACIQQSBGDQACQAJAIBBBdmoOBNoBAQHaAQALIBBBLEYN2wELIAEhAQwECyABQQFqIgEgAkcNAAtBPyEQDKoDCyABIQEM2wELQcAAIRAgASIUIAJGDagDIAIgFGsgACgCACIBaiEWIBQgAWtBBmohFwJAA0AgFC0AAEEgciABQYDAgIAAai0AAEcNASABQQZGDY4DIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADKkDCyAAQQA2AgAgFCEBC0E2IRAMjgMLAkAgASIPIAJHDQBBwQAhEAynAwsgAEGMgICAADYCCCAAIA82AgQgDyEBIAAtACxBf2oOBM0B1QHXAdkBhwMLIAFBAWohAQzMAQsCQCABIgEgAkYNAANAAkAgAS0AACIQQSByIBAgEEG/f2pB/wFxQRpJG0H/AXEiEEEJRg0AIBBBIEYNAAJAAkACQAJAIBBBnX9qDhMAAwMDAwMDAwEDAwMDAwMDAwMCAwsgAUEBaiEBQTEhEAyRAwsgAUEBaiEBQTIhEAyQAwsgAUEBaiEBQTMhEAyPAwsgASEBDNABCyABQQFqIgEgAkcNAAtBNSEQDKUDC0E1IRAMpAMLAkAgASIBIAJGDQADQAJAIAEtAABBgLyAgABqLQAAQQFGDQAgASEBDNMBCyABQQFqIgEgAkcNAAtBPSEQDKQDC0E9IRAMowMLIAAgASIBIAIQsICAgAAiEA3WASABIQEMAQsgEEEBaiEBC0E8IRAMhwMLAkAgASIBIAJHDQBBwgAhEAygAwsCQANAAkAgAS0AAEF3ag4YAAL+Av4ChAP+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gIA/gILIAFBAWoiASACRw0AC0HCACEQDKADCyABQQFqIQEgAC0ALUEBcUUNvQEgASEBC0EsIRAMhQMLIAEiASACRw3TAUHEACEQDJ0DCwNAAkAgAS0AAEGQwICAAGotAABBAUYNACABIQEMtwILIAFBAWoiASACRw0AC0HFACEQDJwDCyANLQAAIhBBIEYNswEgEEE6Rw2BAyAAKAIEIQEgAEEANgIEIAAgASANEK+AgIAAIgEN0AEgDUEBaiEBDLMCC0HHACEQIAEiDSACRg2aAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQZDCgIAAai0AAEcNgAMgAUEFRg30AiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyaAwtByAAhECABIg0gAkYNmQMgAiANayAAKAIAIgFqIRYgDSABa0EJaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGWwoCAAGotAABHDf8CAkAgAUEJRw0AQQIhAQz1AgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmQMLAkAgASINIAJHDQBByQAhEAyZAwsCQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZJ/ag4HAIADgAOAA4ADgAMBgAMLIA1BAWohAUE+IRAMgAMLIA1BAWohAUE/IRAM/wILQcoAIRAgASINIAJGDZcDIAIgDWsgACgCACIBaiEWIA0gAWtBAWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBoMKAgABqLQAARw39AiABQQFGDfACIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJcDC0HLACEQIAEiDSACRg2WAyACIA1rIAAoAgAiAWohFiANIAFrQQ5qIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaLCgIAAai0AAEcN/AIgAUEORg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyWAwtBzAAhECABIg0gAkYNlQMgAiANayAAKAIAIgFqIRYgDSABa0EPaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUHAwoCAAGotAABHDfsCAkAgAUEPRw0AQQMhAQzxAgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlQMLQc0AIRAgASINIAJGDZQDIAIgDWsgACgCACIBaiEWIA0gAWtBBWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw36AgJAIAFBBUcNAEEEIQEM8AILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJQDCwJAIAEiDSACRw0AQc4AIRAMlAMLAkACQAJAAkAgDS0AACIBQSByIAEgAUG/f2pB/wFxQRpJG0H/AXFBnX9qDhMA/QL9Av0C/QL9Av0C/QL9Av0C/QL9Av0CAf0C/QL9AgID/QILIA1BAWohAUHBACEQDP0CCyANQQFqIQFBwgAhEAz8AgsgDUEBaiEBQcMAIRAM+wILIA1BAWohAUHEACEQDPoCCwJAIAEiASACRg0AIABBjYCAgAA2AgggACABNgIEIAEhAUHFACEQDPoCC0HPACEQDJIDCyAQIQECQAJAIBAtAABBdmoOBAGoAqgCAKgCCyAQQQFqIQELQSchEAz4AgsCQCABIgEgAkcNAEHRACEQDJEDCwJAIAEtAABBIEYNACABIQEMjQELIAFBAWohASAALQAtQQFxRQ3HASABIQEMjAELIAEiFyACRw3IAUHSACEQDI8DC0HTACEQIAEiFCACRg2OAyACIBRrIAAoAgAiAWohFiAUIAFrQQFqIRcDQCAULQAAIAFB1sKAgABqLQAARw3MASABQQFGDccBIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADI4DCwJAIAEiASACRw0AQdUAIRAMjgMLIAEtAABBCkcNzAEgAUEBaiEBDMcBCwJAIAEiASACRw0AQdYAIRAMjQMLAkACQCABLQAAQXZqDgQAzQHNAQHNAQsgAUEBaiEBDMcBCyABQQFqIQFBygAhEAzzAgsgACABIgEgAhCugICAACIQDcsBIAEhAUHNACEQDPICCyAALQApQSJGDYUDDKYCCwJAIAEiASACRw0AQdsAIRAMigMLQQAhFEEBIRdBASEWQQAhEAJAAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgrUAdMBAAECAwQFBgjVAQtBAiEQDAYLQQMhEAwFC0EEIRAMBAtBBSEQDAMLQQYhEAwCC0EHIRAMAQtBCCEQC0EAIRdBACEWQQAhFAzMAQtBCSEQQQEhFEEAIRdBACEWDMsBCwJAIAEiASACRw0AQd0AIRAMiQMLIAEtAABBLkcNzAEgAUEBaiEBDKYCCyABIgEgAkcNzAFB3wAhEAyHAwsCQCABIgEgAkYNACAAQY6AgIAANgIIIAAgATYCBCABIQFB0AAhEAzuAgtB4AAhEAyGAwtB4QAhECABIgEgAkYNhQMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQeLCgIAAai0AAEcNzQEgFEEDRg3MASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyFAwtB4gAhECABIgEgAkYNhAMgAiABayAAKAIAIhRqIRYgASAUa0ECaiEXA0AgAS0AACAUQebCgIAAai0AAEcNzAEgFEECRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyEAwtB4wAhECABIgEgAkYNgwMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQenCgIAAai0AAEcNywEgFEEDRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyDAwsCQCABIgEgAkcNAEHlACEQDIMDCyAAIAFBAWoiASACEKiAgIAAIhANzQEgASEBQdYAIRAM6QILAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AAkACQAJAIBBBuH9qDgsAAc8BzwHPAc8BzwHPAc8BzwECzwELIAFBAWohAUHSACEQDO0CCyABQQFqIQFB0wAhEAzsAgsgAUEBaiEBQdQAIRAM6wILIAFBAWoiASACRw0AC0HkACEQDIIDC0HkACEQDIEDCwNAAkAgAS0AAEHwwoCAAGotAAAiEEEBRg0AIBBBfmoOA88B0AHRAdIBCyABQQFqIgEgAkcNAAtB5gAhEAyAAwsCQCABIgEgAkYNACABQQFqIQEMAwtB5wAhEAz/AgsDQAJAIAEtAABB8MSAgABqLQAAIhBBAUYNAAJAIBBBfmoOBNIB0wHUAQDVAQsgASEBQdcAIRAM5wILIAFBAWoiASACRw0AC0HoACEQDP4CCwJAIAEiASACRw0AQekAIRAM/gILAkAgAS0AACIQQXZqDhq6AdUB1QG8AdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAcoB1QHVAQDTAQsgAUEBaiEBC0EGIRAM4wILA0ACQCABLQAAQfDGgIAAai0AAEEBRg0AIAEhAQyeAgsgAUEBaiIBIAJHDQALQeoAIRAM+wILAkAgASIBIAJGDQAgAUEBaiEBDAMLQesAIRAM+gILAkAgASIBIAJHDQBB7AAhEAz6AgsgAUEBaiEBDAELAkAgASIBIAJHDQBB7QAhEAz5AgsgAUEBaiEBC0EEIRAM3gILAkAgASIUIAJHDQBB7gAhEAz3AgsgFCEBAkACQAJAIBQtAABB8MiAgABqLQAAQX9qDgfUAdUB1gEAnAIBAtcBCyAUQQFqIQEMCgsgFEEBaiEBDM0BC0EAIRAgAEEANgIcIABBm5KAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAz2AgsCQANAAkAgAS0AAEHwyICAAGotAAAiEEEERg0AAkACQCAQQX9qDgfSAdMB1AHZAQAEAdkBCyABIQFB2gAhEAzgAgsgAUEBaiEBQdwAIRAM3wILIAFBAWoiASACRw0AC0HvACEQDPYCCyABQQFqIQEMywELAkAgASIUIAJHDQBB8AAhEAz1AgsgFC0AAEEvRw3UASAUQQFqIQEMBgsCQCABIhQgAkcNAEHxACEQDPQCCwJAIBQtAAAiAUEvRw0AIBRBAWohAUHdACEQDNsCCyABQXZqIgRBFksN0wFBASAEdEGJgIACcUUN0wEMygILAkAgASIBIAJGDQAgAUEBaiEBQd4AIRAM2gILQfIAIRAM8gILAkAgASIUIAJHDQBB9AAhEAzyAgsgFCEBAkAgFC0AAEHwzICAAGotAABBf2oOA8kClAIA1AELQeEAIRAM2AILAkAgASIUIAJGDQADQAJAIBQtAABB8MqAgABqLQAAIgFBA0YNAAJAIAFBf2oOAssCANUBCyAUIQFB3wAhEAzaAgsgFEEBaiIUIAJHDQALQfMAIRAM8QILQfMAIRAM8AILAkAgASIBIAJGDQAgAEGPgICAADYCCCAAIAE2AgQgASEBQeAAIRAM1wILQfUAIRAM7wILAkAgASIBIAJHDQBB9gAhEAzvAgsgAEGPgICAADYCCCAAIAE2AgQgASEBC0EDIRAM1AILA0AgAS0AAEEgRw3DAiABQQFqIgEgAkcNAAtB9wAhEAzsAgsCQCABIgEgAkcNAEH4ACEQDOwCCyABLQAAQSBHDc4BIAFBAWohAQzvAQsgACABIgEgAhCsgICAACIQDc4BIAEhAQyOAgsCQCABIgQgAkcNAEH6ACEQDOoCCyAELQAAQcwARw3RASAEQQFqIQFBEyEQDM8BCwJAIAEiBCACRw0AQfsAIRAM6QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEANAIAQtAAAgAUHwzoCAAGotAABHDdABIAFBBUYNzgEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBB+wAhEAzoAgsCQCABIgQgAkcNAEH8ACEQDOgCCwJAAkAgBC0AAEG9f2oODADRAdEB0QHRAdEB0QHRAdEB0QHRAQHRAQsgBEEBaiEBQeYAIRAMzwILIARBAWohAUHnACEQDM4CCwJAIAEiBCACRw0AQf0AIRAM5wILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNzwEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf0AIRAM5wILIABBADYCACAQQQFqIQFBECEQDMwBCwJAIAEiBCACRw0AQf4AIRAM5gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQfbOgIAAai0AAEcNzgEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf4AIRAM5gILIABBADYCACAQQQFqIQFBFiEQDMsBCwJAIAEiBCACRw0AQf8AIRAM5QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQfzOgIAAai0AAEcNzQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf8AIRAM5QILIABBADYCACAQQQFqIQFBBSEQDMoBCwJAIAEiBCACRw0AQYABIRAM5AILIAQtAABB2QBHDcsBIARBAWohAUEIIRAMyQELAkAgASIEIAJHDQBBgQEhEAzjAgsCQAJAIAQtAABBsn9qDgMAzAEBzAELIARBAWohAUHrACEQDMoCCyAEQQFqIQFB7AAhEAzJAgsCQCABIgQgAkcNAEGCASEQDOICCwJAAkAgBC0AAEG4f2oOCADLAcsBywHLAcsBywEBywELIARBAWohAUHqACEQDMkCCyAEQQFqIQFB7QAhEAzIAgsCQCABIgQgAkcNAEGDASEQDOECCyACIARrIAAoAgAiAWohECAEIAFrQQJqIRQCQANAIAQtAAAgAUGAz4CAAGotAABHDckBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgEDYCAEGDASEQDOECC0EAIRAgAEEANgIAIBRBAWohAQzGAQsCQCABIgQgAkcNAEGEASEQDOACCyACIARrIAAoAgAiAWohFCAEIAFrQQRqIRACQANAIAQtAAAgAUGDz4CAAGotAABHDcgBIAFBBEYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGEASEQDOACCyAAQQA2AgAgEEEBaiEBQSMhEAzFAQsCQCABIgQgAkcNAEGFASEQDN8CCwJAAkAgBC0AAEG0f2oOCADIAcgByAHIAcgByAEByAELIARBAWohAUHvACEQDMYCCyAEQQFqIQFB8AAhEAzFAgsCQCABIgQgAkcNAEGGASEQDN4CCyAELQAAQcUARw3FASAEQQFqIQEMgwILAkAgASIEIAJHDQBBhwEhEAzdAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBiM+AgABqLQAARw3FASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhwEhEAzdAgsgAEEANgIAIBBBAWohAUEtIRAMwgELAkAgASIEIAJHDQBBiAEhEAzcAgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw3EASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiAEhEAzcAgsgAEEANgIAIBBBAWohAUEpIRAMwQELAkAgASIBIAJHDQBBiQEhEAzbAgtBASEQIAEtAABB3wBHDcABIAFBAWohAQyBAgsCQCABIgQgAkcNAEGKASEQDNoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRADQCAELQAAIAFBjM+AgABqLQAARw3BASABQQFGDa8CIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYoBIRAM2QILAkAgASIEIAJHDQBBiwEhEAzZAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBjs+AgABqLQAARw3BASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiwEhEAzZAgsgAEEANgIAIBBBAWohAUECIRAMvgELAkAgASIEIAJHDQBBjAEhEAzYAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw3AASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjAEhEAzYAgsgAEEANgIAIBBBAWohAUEfIRAMvQELAkAgASIEIAJHDQBBjQEhEAzXAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8s+AgABqLQAARw2/ASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjQEhEAzXAgsgAEEANgIAIBBBAWohAUEJIRAMvAELAkAgASIEIAJHDQBBjgEhEAzWAgsCQAJAIAQtAABBt39qDgcAvwG/Ab8BvwG/AQG/AQsgBEEBaiEBQfgAIRAMvQILIARBAWohAUH5ACEQDLwCCwJAIAEiBCACRw0AQY8BIRAM1QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQZHPgIAAai0AAEcNvQEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY8BIRAM1QILIABBADYCACAQQQFqIQFBGCEQDLoBCwJAIAEiBCACRw0AQZABIRAM1AILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQZfPgIAAai0AAEcNvAEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZABIRAM1AILIABBADYCACAQQQFqIQFBFyEQDLkBCwJAIAEiBCACRw0AQZEBIRAM0wILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQZrPgIAAai0AAEcNuwEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZEBIRAM0wILIABBADYCACAQQQFqIQFBFSEQDLgBCwJAIAEiBCACRw0AQZIBIRAM0gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQaHPgIAAai0AAEcNugEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZIBIRAM0gILIABBADYCACAQQQFqIQFBHiEQDLcBCwJAIAEiBCACRw0AQZMBIRAM0QILIAQtAABBzABHDbgBIARBAWohAUEKIRAMtgELAkAgBCACRw0AQZQBIRAM0AILAkACQCAELQAAQb9/ag4PALkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AbkBAbkBCyAEQQFqIQFB/gAhEAy3AgsgBEEBaiEBQf8AIRAMtgILAkAgBCACRw0AQZUBIRAMzwILAkACQCAELQAAQb9/ag4DALgBAbgBCyAEQQFqIQFB/QAhEAy2AgsgBEEBaiEEQYABIRAMtQILAkAgBCACRw0AQZYBIRAMzgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQafPgIAAai0AAEcNtgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZYBIRAMzgILIABBADYCACAQQQFqIQFBCyEQDLMBCwJAIAQgAkcNAEGXASEQDM0CCwJAAkACQAJAIAQtAABBU2oOIwC4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBAbgBuAG4AbgBuAECuAG4AbgBA7gBCyAEQQFqIQFB+wAhEAy2AgsgBEEBaiEBQfwAIRAMtQILIARBAWohBEGBASEQDLQCCyAEQQFqIQRBggEhEAyzAgsCQCAEIAJHDQBBmAEhEAzMAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBqc+AgABqLQAARw20ASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmAEhEAzMAgsgAEEANgIAIBBBAWohAUEZIRAMsQELAkAgBCACRw0AQZkBIRAMywILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQa7PgIAAai0AAEcNswEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZkBIRAMywILIABBADYCACAQQQFqIQFBBiEQDLABCwJAIAQgAkcNAEGaASEQDMoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG0z4CAAGotAABHDbIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGaASEQDMoCCyAAQQA2AgAgEEEBaiEBQRwhEAyvAQsCQCAEIAJHDQBBmwEhEAzJAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBts+AgABqLQAARw2xASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmwEhEAzJAgsgAEEANgIAIBBBAWohAUEnIRAMrgELAkAgBCACRw0AQZwBIRAMyAILAkACQCAELQAAQax/ag4CAAGxAQsgBEEBaiEEQYYBIRAMrwILIARBAWohBEGHASEQDK4CCwJAIAQgAkcNAEGdASEQDMcCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG4z4CAAGotAABHDa8BIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGdASEQDMcCCyAAQQA2AgAgEEEBaiEBQSYhEAysAQsCQCAEIAJHDQBBngEhEAzGAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBus+AgABqLQAARw2uASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBngEhEAzGAgsgAEEANgIAIBBBAWohAUEDIRAMqwELAkAgBCACRw0AQZ8BIRAMxQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNrQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ8BIRAMxQILIABBADYCACAQQQFqIQFBDCEQDKoBCwJAIAQgAkcNAEGgASEQDMQCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUG8z4CAAGotAABHDawBIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGgASEQDMQCCyAAQQA2AgAgEEEBaiEBQQ0hEAypAQsCQCAEIAJHDQBBoQEhEAzDAgsCQAJAIAQtAABBun9qDgsArAGsAawBrAGsAawBrAGsAawBAawBCyAEQQFqIQRBiwEhEAyqAgsgBEEBaiEEQYwBIRAMqQILAkAgBCACRw0AQaIBIRAMwgILIAQtAABB0ABHDakBIARBAWohBAzpAQsCQCAEIAJHDQBBowEhEAzBAgsCQAJAIAQtAABBt39qDgcBqgGqAaoBqgGqAQCqAQsgBEEBaiEEQY4BIRAMqAILIARBAWohAUEiIRAMpgELAkAgBCACRw0AQaQBIRAMwAILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQcDPgIAAai0AAEcNqAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaQBIRAMwAILIABBADYCACAQQQFqIQFBHSEQDKUBCwJAIAQgAkcNAEGlASEQDL8CCwJAAkAgBC0AAEGuf2oOAwCoAQGoAQsgBEEBaiEEQZABIRAMpgILIARBAWohAUEEIRAMpAELAkAgBCACRw0AQaYBIRAMvgILAkACQAJAAkACQCAELQAAQb9/ag4VAKoBqgGqAaoBqgGqAaoBqgGqAaoBAaoBqgECqgGqAQOqAaoBBKoBCyAEQQFqIQRBiAEhEAyoAgsgBEEBaiEEQYkBIRAMpwILIARBAWohBEGKASEQDKYCCyAEQQFqIQRBjwEhEAylAgsgBEEBaiEEQZEBIRAMpAILAkAgBCACRw0AQacBIRAMvQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNpQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQacBIRAMvQILIABBADYCACAQQQFqIQFBESEQDKIBCwJAIAQgAkcNAEGoASEQDLwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHCz4CAAGotAABHDaQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGoASEQDLwCCyAAQQA2AgAgEEEBaiEBQSwhEAyhAQsCQCAEIAJHDQBBqQEhEAy7AgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBxc+AgABqLQAARw2jASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqQEhEAy7AgsgAEEANgIAIBBBAWohAUErIRAMoAELAkAgBCACRw0AQaoBIRAMugILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQcrPgIAAai0AAEcNogEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaoBIRAMugILIABBADYCACAQQQFqIQFBFCEQDJ8BCwJAIAQgAkcNAEGrASEQDLkCCwJAAkACQAJAIAQtAABBvn9qDg8AAQKkAaQBpAGkAaQBpAGkAaQBpAGkAaQBA6QBCyAEQQFqIQRBkwEhEAyiAgsgBEEBaiEEQZQBIRAMoQILIARBAWohBEGVASEQDKACCyAEQQFqIQRBlgEhEAyfAgsCQCAEIAJHDQBBrAEhEAy4AgsgBC0AAEHFAEcNnwEgBEEBaiEEDOABCwJAIAQgAkcNAEGtASEQDLcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHNz4CAAGotAABHDZ8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGtASEQDLcCCyAAQQA2AgAgEEEBaiEBQQ4hEAycAQsCQCAEIAJHDQBBrgEhEAy2AgsgBC0AAEHQAEcNnQEgBEEBaiEBQSUhEAybAQsCQCAEIAJHDQBBrwEhEAy1AgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw2dASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrwEhEAy1AgsgAEEANgIAIBBBAWohAUEqIRAMmgELAkAgBCACRw0AQbABIRAMtAILAkACQCAELQAAQat/ag4LAJ0BnQGdAZ0BnQGdAZ0BnQGdAQGdAQsgBEEBaiEEQZoBIRAMmwILIARBAWohBEGbASEQDJoCCwJAIAQgAkcNAEGxASEQDLMCCwJAAkAgBC0AAEG/f2oOFACcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAEBnAELIARBAWohBEGZASEQDJoCCyAEQQFqIQRBnAEhEAyZAgsCQCAEIAJHDQBBsgEhEAyyAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFB2c+AgABqLQAARw2aASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBsgEhEAyyAgsgAEEANgIAIBBBAWohAUEhIRAMlwELAkAgBCACRw0AQbMBIRAMsQILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQd3PgIAAai0AAEcNmQEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbMBIRAMsQILIABBADYCACAQQQFqIQFBGiEQDJYBCwJAIAQgAkcNAEG0ASEQDLACCwJAAkACQCAELQAAQbt/ag4RAJoBmgGaAZoBmgGaAZoBmgGaAQGaAZoBmgGaAZoBApoBCyAEQQFqIQRBnQEhEAyYAgsgBEEBaiEEQZ4BIRAMlwILIARBAWohBEGfASEQDJYCCwJAIAQgAkcNAEG1ASEQDK8CCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUHkz4CAAGotAABHDZcBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG1ASEQDK8CCyAAQQA2AgAgEEEBaiEBQSghEAyUAQsCQCAEIAJHDQBBtgEhEAyuAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB6s+AgABqLQAARw2WASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtgEhEAyuAgsgAEEANgIAIBBBAWohAUEHIRAMkwELAkAgBCACRw0AQbcBIRAMrQILAkACQCAELQAAQbt/ag4OAJYBlgGWAZYBlgGWAZYBlgGWAZYBlgGWAQGWAQsgBEEBaiEEQaEBIRAMlAILIARBAWohBEGiASEQDJMCCwJAIAQgAkcNAEG4ASEQDKwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDZQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG4ASEQDKwCCyAAQQA2AgAgEEEBaiEBQRIhEAyRAQsCQCAEIAJHDQBBuQEhEAyrAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw2TASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuQEhEAyrAgsgAEEANgIAIBBBAWohAUEgIRAMkAELAkAgBCACRw0AQboBIRAMqgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNkgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQboBIRAMqgILIABBADYCACAQQQFqIQFBDyEQDI8BCwJAIAQgAkcNAEG7ASEQDKkCCwJAAkAgBC0AAEG3f2oOBwCSAZIBkgGSAZIBAZIBCyAEQQFqIQRBpQEhEAyQAgsgBEEBaiEEQaYBIRAMjwILAkAgBCACRw0AQbwBIRAMqAILIAIgBGsgACgCACIBaiEUIAQgAWtBB2ohEAJAA0AgBC0AACABQfTPgIAAai0AAEcNkAEgAUEHRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbwBIRAMqAILIABBADYCACAQQQFqIQFBGyEQDI0BCwJAIAQgAkcNAEG9ASEQDKcCCwJAAkACQCAELQAAQb5/ag4SAJEBkQGRAZEBkQGRAZEBkQGRAQGRAZEBkQGRAZEBkQECkQELIARBAWohBEGkASEQDI8CCyAEQQFqIQRBpwEhEAyOAgsgBEEBaiEEQagBIRAMjQILAkAgBCACRw0AQb4BIRAMpgILIAQtAABBzgBHDY0BIARBAWohBAzPAQsCQCAEIAJHDQBBvwEhEAylAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAELQAAQb9/ag4VAAECA5wBBAUGnAGcAZwBBwgJCgucAQwNDg+cAQsgBEEBaiEBQegAIRAMmgILIARBAWohAUHpACEQDJkCCyAEQQFqIQFB7gAhEAyYAgsgBEEBaiEBQfIAIRAMlwILIARBAWohAUHzACEQDJYCCyAEQQFqIQFB9gAhEAyVAgsgBEEBaiEBQfcAIRAMlAILIARBAWohAUH6ACEQDJMCCyAEQQFqIQRBgwEhEAySAgsgBEEBaiEEQYQBIRAMkQILIARBAWohBEGFASEQDJACCyAEQQFqIQRBkgEhEAyPAgsgBEEBaiEEQZgBIRAMjgILIARBAWohBEGgASEQDI0CCyAEQQFqIQRBowEhEAyMAgsgBEEBaiEEQaoBIRAMiwILAkAgBCACRg0AIABBkICAgAA2AgggACAENgIEQasBIRAMiwILQcABIRAMowILIAAgBSACEKqAgIAAIgENiwEgBSEBDFwLAkAgBiACRg0AIAZBAWohBQyNAQtBwgEhEAyhAgsDQAJAIBAtAABBdmoOBIwBAACPAQALIBBBAWoiECACRw0AC0HDASEQDKACCwJAIAcgAkYNACAAQZGAgIAANgIIIAAgBzYCBCAHIQFBASEQDIcCC0HEASEQDJ8CCwJAIAcgAkcNAEHFASEQDJ8CCwJAAkAgBy0AAEF2ag4EAc4BzgEAzgELIAdBAWohBgyNAQsgB0EBaiEFDIkBCwJAIAcgAkcNAEHGASEQDJ4CCwJAAkAgBy0AAEF2ag4XAY8BjwEBjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAI8BCyAHQQFqIQcLQbABIRAMhAILAkAgCCACRw0AQcgBIRAMnQILIAgtAABBIEcNjQEgAEEAOwEyIAhBAWohAUGzASEQDIMCCyABIRcCQANAIBciByACRg0BIActAABBUGpB/wFxIhBBCk8NzAECQCAALwEyIhRBmTNLDQAgACAUQQpsIhQ7ATIgEEH//wNzIBRB/v8DcUkNACAHQQFqIRcgACAUIBBqIhA7ATIgEEH//wNxQegHSQ0BCwtBACEQIABBADYCHCAAQcGJgIAANgIQIABBDTYCDCAAIAdBAWo2AhQMnAILQccBIRAMmwILIAAgCCACEK6AgIAAIhBFDcoBIBBBFUcNjAEgAEHIATYCHCAAIAg2AhQgAEHJl4CAADYCECAAQRU2AgxBACEQDJoCCwJAIAkgAkcNAEHMASEQDJoCC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgCS0AAEFQag4KlgGVAQABAgMEBQYIlwELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMjgELQQkhEEEBIRRBACEXQQAhFgyNAQsCQCAKIAJHDQBBzgEhEAyZAgsgCi0AAEEuRw2OASAKQQFqIQkMygELIAsgAkcNjgFB0AEhEAyXAgsCQCALIAJGDQAgAEGOgICAADYCCCAAIAs2AgRBtwEhEAz+AQtB0QEhEAyWAgsCQCAEIAJHDQBB0gEhEAyWAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EEaiELA0AgBC0AACAQQfzPgIAAai0AAEcNjgEgEEEERg3pASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHSASEQDJUCCyAAIAwgAhCsgICAACIBDY0BIAwhAQy4AQsCQCAEIAJHDQBB1AEhEAyUAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EBaiEMA0AgBC0AACAQQYHQgIAAai0AAEcNjwEgEEEBRg2OASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHUASEQDJMCCwJAIAQgAkcNAEHWASEQDJMCCyACIARrIAAoAgAiEGohFCAEIBBrQQJqIQsDQCAELQAAIBBBg9CAgABqLQAARw2OASAQQQJGDZABIBBBAWohECAEQQFqIgQgAkcNAAsgACAUNgIAQdYBIRAMkgILAkAgBCACRw0AQdcBIRAMkgILAkACQCAELQAAQbt/ag4QAI8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwEBjwELIARBAWohBEG7ASEQDPkBCyAEQQFqIQRBvAEhEAz4AQsCQCAEIAJHDQBB2AEhEAyRAgsgBC0AAEHIAEcNjAEgBEEBaiEEDMQBCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEG+ASEQDPcBC0HZASEQDI8CCwJAIAQgAkcNAEHaASEQDI8CCyAELQAAQcgARg3DASAAQQE6ACgMuQELIABBAjoALyAAIAQgAhCmgICAACIQDY0BQcIBIRAM9AELIAAtAChBf2oOArcBuQG4AQsDQAJAIAQtAABBdmoOBACOAY4BAI4BCyAEQQFqIgQgAkcNAAtB3QEhEAyLAgsgAEEAOgAvIAAtAC1BBHFFDYQCCyAAQQA6AC8gAEEBOgA0IAEhAQyMAQsgEEEVRg3aASAAQQA2AhwgACABNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAyIAgsCQCAAIBAgAhC0gICAACIEDQAgECEBDIECCwJAIARBFUcNACAAQQM2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAyIAgsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMhwILIBBBFUYN1gEgAEEANgIcIAAgATYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMhgILIAAoAgQhFyAAQQA2AgQgECARp2oiFiEBIAAgFyAQIBYgFBsiEBC1gICAACIURQ2NASAAQQc2AhwgACAQNgIUIAAgFDYCDEEAIRAMhQILIAAgAC8BMEGAAXI7ATAgASEBC0EqIRAM6gELIBBBFUYN0QEgAEEANgIcIAAgATYCFCAAQYOMgIAANgIQIABBEzYCDEEAIRAMggILIBBBFUYNzwEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAMgQILIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDI0BCyAAQQw2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMgAILIBBBFUYNzAEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM/wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIwBCyAAQQ02AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/gELIBBBFUYNyQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM/QELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIsBCyAAQQ42AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/AELIABBADYCHCAAIAE2AhQgAEHAlYCAADYCECAAQQI2AgxBACEQDPsBCyAQQRVGDcUBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPoBCyAAQRA2AhwgACABNgIUIAAgEDYCDEEAIRAM+QELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDPEBCyAAQRE2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM+AELIBBBFUYNwQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM9wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIgBCyAAQRM2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM9gELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDO0BCyAAQRQ2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM9QELIBBBFUYNvQEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM9AELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIYBCyAAQRY2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM8wELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC3gICAACIEDQAgAUEBaiEBDOkBCyAAQRc2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM8gELIABBADYCHCAAIAE2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDPEBC0IBIRELIBBBAWohAQJAIAApAyAiEkL//////////w9WDQAgACASQgSGIBGENwMgIAEhAQyEAQsgAEEANgIcIAAgATYCFCAAQa2JgIAANgIQIABBDDYCDEEAIRAM7wELIABBADYCHCAAIBA2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDO4BCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNcyAAQQU2AhwgACAQNgIUIAAgFDYCDEEAIRAM7QELIABBADYCHCAAIBA2AhQgAEGqnICAADYCECAAQQ82AgxBACEQDOwBCyAAIBAgAhC0gICAACIBDQEgECEBC0EOIRAM0QELAkAgAUEVRw0AIABBAjYCHCAAIBA2AhQgAEGwmICAADYCECAAQRU2AgxBACEQDOoBCyAAQQA2AhwgACAQNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAzpAQsgAUEBaiEQAkAgAC8BMCIBQYABcUUNAAJAIAAgECACELuAgIAAIgENACAQIQEMcAsgAUEVRw26ASAAQQU2AhwgACAQNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAzpAQsCQCABQaAEcUGgBEcNACAALQAtQQJxDQAgAEEANgIcIAAgEDYCFCAAQZaTgIAANgIQIABBBDYCDEEAIRAM6QELIAAgECACEL2AgIAAGiAQIQECQAJAAkACQAJAIAAgECACELOAgIAADhYCAQAEBAQEBAQEBAQEBAQEBAQEBAQDBAsgAEEBOgAuCyAAIAAvATBBwAByOwEwIBAhAQtBJiEQDNEBCyAAQSM2AhwgACAQNgIUIABBpZaAgAA2AhAgAEEVNgIMQQAhEAzpAQsgAEEANgIcIAAgEDYCFCAAQdWLgIAANgIQIABBETYCDEEAIRAM6AELIAAtAC1BAXFFDQFBwwEhEAzOAQsCQCANIAJGDQADQAJAIA0tAABBIEYNACANIQEMxAELIA1BAWoiDSACRw0AC0ElIRAM5wELQSUhEAzmAQsgACgCBCEEIABBADYCBCAAIAQgDRCvgICAACIERQ2tASAAQSY2AhwgACAENgIMIAAgDUEBajYCFEEAIRAM5QELIBBBFUYNqwEgAEEANgIcIAAgATYCFCAAQf2NgIAANgIQIABBHTYCDEEAIRAM5AELIABBJzYCHCAAIAE2AhQgACAQNgIMQQAhEAzjAQsgECEBQQEhFAJAAkACQAJAAkACQAJAIAAtACxBfmoOBwYFBQMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0ErIRAMygELIABBADYCHCAAIBA2AhQgAEGrkoCAADYCECAAQQs2AgxBACEQDOIBCyAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMQQAhEAzhAQsgAEEAOgAsIBAhAQy9AQsgECEBQQEhFAJAAkACQAJAAkAgAC0ALEF7ag4EAwECAAULIAAgAC8BMEEIcjsBMAwDC0ECIRQMAQtBBCEUCyAAQQE6ACwgACAALwEwIBRyOwEwCyAQIQELQSkhEAzFAQsgAEEANgIcIAAgATYCFCAAQfCUgIAANgIQIABBAzYCDEEAIRAM3QELAkAgDi0AAEENRw0AIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHULIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzdAQsgAC0ALUEBcUUNAUHEASEQDMMBCwJAIA4gAkcNAEEtIRAM3AELAkACQANAAkAgDi0AAEF2ag4EAgAAAwALIA5BAWoiDiACRw0AC0EtIRAM3QELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDiEBDHQLIABBLDYCHCAAIA42AhQgACABNgIMQQAhEAzcAQsgACgCBCEBIABBADYCBAJAIAAgASAOELGAgIAAIgENACAOQQFqIQEMcwsgAEEsNgIcIAAgATYCDCAAIA5BAWo2AhRBACEQDNsBCyAAKAIEIQQgAEEANgIEIAAgBCAOELGAgIAAIgQNoAEgDiEBDM4BCyAQQSxHDQEgAUEBaiEQQQEhAQJAAkACQAJAAkAgAC0ALEF7ag4EAwECBAALIBAhAQwEC0ECIQEMAQtBBCEBCyAAQQE6ACwgACAALwEwIAFyOwEwIBAhAQwBCyAAIAAvATBBCHI7ATAgECEBC0E5IRAMvwELIABBADoALCABIQELQTQhEAy9AQsgACAALwEwQSByOwEwIAEhAQwCCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBA0AIAEhAQzHAQsgAEE3NgIcIAAgATYCFCAAIAQ2AgxBACEQDNQBCyAAQQg6ACwgASEBC0EwIRAMuQELAkAgAC0AKEEBRg0AIAEhAQwECyAALQAtQQhxRQ2TASABIQEMAwsgAC0AMEEgcQ2UAUHFASEQDLcBCwJAIA8gAkYNAAJAA0ACQCAPLQAAQVBqIgFB/wFxQQpJDQAgDyEBQTUhEAy6AQsgACkDICIRQpmz5syZs+bMGVYNASAAIBFCCn4iETcDICARIAGtQv8BgyISQn+FVg0BIAAgESASfDcDICAPQQFqIg8gAkcNAAtBOSEQDNEBCyAAKAIEIQIgAEEANgIEIAAgAiAPQQFqIgQQsYCAgAAiAg2VASAEIQEMwwELQTkhEAzPAQsCQCAALwEwIgFBCHFFDQAgAC0AKEEBRw0AIAAtAC1BCHFFDZABCyAAIAFB9/sDcUGABHI7ATAgDyEBC0E3IRAMtAELIAAgAC8BMEEQcjsBMAyrAQsgEEEVRg2LASAAQQA2AhwgACABNgIUIABB8I6AgAA2AhAgAEEcNgIMQQAhEAzLAQsgAEHDADYCHCAAIAE2AgwgACANQQFqNgIUQQAhEAzKAQsCQCABLQAAQTpHDQAgACgCBCEQIABBADYCBAJAIAAgECABEK+AgIAAIhANACABQQFqIQEMYwsgAEHDADYCHCAAIBA2AgwgACABQQFqNgIUQQAhEAzKAQsgAEEANgIcIAAgATYCFCAAQbGRgIAANgIQIABBCjYCDEEAIRAMyQELIABBADYCHCAAIAE2AhQgAEGgmYCAADYCECAAQR42AgxBACEQDMgBCyAAQQA2AgALIABBgBI7ASogACAXQQFqIgEgAhCogICAACIQDQEgASEBC0HHACEQDKwBCyAQQRVHDYMBIABB0QA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAzEAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAzDAQsgAEEANgIcIAAgFDYCFCAAQcGogIAANgIQIABBBzYCDCAAQQA2AgBBACEQDMIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxdCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDMEBC0EAIRAgAEEANgIcIAAgATYCFCAAQYCRgIAANgIQIABBCTYCDAzAAQsgEEEVRg19IABBADYCHCAAIAE2AhQgAEGUjYCAADYCECAAQSE2AgxBACEQDL8BC0EBIRZBACEXQQAhFEEBIRALIAAgEDoAKyABQQFqIQECQAJAIAAtAC1BEHENAAJAAkACQCAALQAqDgMBAAIECyAWRQ0DDAILIBQNAQwCCyAXRQ0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQrYCAgAAiEA0AIAEhAQxcCyAAQdgANgIcIAAgATYCFCAAIBA2AgxBACEQDL4BCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQytAQsgAEHZADYCHCAAIAE2AhQgACAENgIMQQAhEAy9AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMqwELIABB2gA2AhwgACABNgIUIAAgBDYCDEEAIRAMvAELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKkBCyAAQdwANgIcIAAgATYCFCAAIAQ2AgxBACEQDLsBCwJAIAEtAABBUGoiEEH/AXFBCk8NACAAIBA6ACogAUEBaiEBQc8AIRAMogELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKcBCyAAQd4ANgIcIAAgATYCFCAAIAQ2AgxBACEQDLoBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKUEjTw0AIAEhAQxZCyAAQQA2AhwgACABNgIUIABB04mAgAA2AhAgAEEINgIMQQAhEAy5AQsgAEEANgIAC0EAIRAgAEEANgIcIAAgATYCFCAAQZCzgIAANgIQIABBCDYCDAy3AQsgAEEANgIAIBdBAWohAQJAIAAtAClBIUcNACABIQEMVgsgAEEANgIcIAAgATYCFCAAQZuKgIAANgIQIABBCDYCDEEAIRAMtgELIABBADYCACAXQQFqIQECQCAALQApIhBBXWpBC08NACABIQEMVQsCQCAQQQZLDQBBASAQdEHKAHFFDQAgASEBDFULQQAhECAAQQA2AhwgACABNgIUIABB94mAgAA2AhAgAEEINgIMDLUBCyAQQRVGDXEgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMtAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFQLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMswELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMsgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMsQELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFELIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMsAELIABBADYCHCAAIAE2AhQgAEHGioCAADYCECAAQQc2AgxBACEQDK8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDK4BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDK0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDKwBCyAAQQA2AhwgACABNgIUIABB3IiAgAA2AhAgAEEHNgIMQQAhEAyrAQsgEEE/Rw0BIAFBAWohAQtBBSEQDJABC0EAIRAgAEEANgIcIAAgATYCFCAAQf2SgIAANgIQIABBBzYCDAyoAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAynAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAymAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMRgsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAylAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHSADYCHCAAIBQ2AhQgACABNgIMQQAhEAykAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHTADYCHCAAIBQ2AhQgACABNgIMQQAhEAyjAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMQwsgAEHlADYCHCAAIBQ2AhQgACABNgIMQQAhEAyiAQsgAEEANgIcIAAgFDYCFCAAQcOPgIAANgIQIABBBzYCDEEAIRAMoQELIABBADYCHCAAIAE2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKABC0EAIRAgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDAyfAQsgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDEEAIRAMngELIABBADYCHCAAIBQ2AhQgAEH+kYCAADYCECAAQQc2AgxBACEQDJ0BCyAAQQA2AhwgACABNgIUIABBjpuAgAA2AhAgAEEGNgIMQQAhEAycAQsgEEEVRg1XIABBADYCHCAAIAE2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDJsBCyAAQQA2AgAgEEEBaiEBQSQhEAsgACAQOgApIAAoAgQhECAAQQA2AgQgACAQIAEQq4CAgAAiEA1UIAEhAQw+CyAAQQA2AgALQQAhECAAQQA2AhwgACAENgIUIABB8ZuAgAA2AhAgAEEGNgIMDJcBCyABQRVGDVAgAEEANgIcIAAgBTYCFCAAQfCMgIAANgIQIABBGzYCDEEAIRAMlgELIAAoAgQhBSAAQQA2AgQgACAFIBAQqYCAgAAiBQ0BIBBBAWohBQtBrQEhEAx7CyAAQcEBNgIcIAAgBTYCDCAAIBBBAWo2AhRBACEQDJMBCyAAKAIEIQYgAEEANgIEIAAgBiAQEKmAgIAAIgYNASAQQQFqIQYLQa4BIRAMeAsgAEHCATYCHCAAIAY2AgwgACAQQQFqNgIUQQAhEAyQAQsgAEEANgIcIAAgBzYCFCAAQZeLgIAANgIQIABBDTYCDEEAIRAMjwELIABBADYCHCAAIAg2AhQgAEHjkICAADYCECAAQQk2AgxBACEQDI4BCyAAQQA2AhwgACAINgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAyNAQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgCUEBaiEIAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBCAAIBAgCBCtgICAACIQRQ09IABByQE2AhwgACAINgIUIAAgEDYCDEEAIRAMjAELIAAoAgQhBCAAQQA2AgQgACAEIAgQrYCAgAAiBEUNdiAAQcoBNgIcIAAgCDYCFCAAIAQ2AgxBACEQDIsBCyAAKAIEIQQgAEEANgIEIAAgBCAJEK2AgIAAIgRFDXQgAEHLATYCHCAAIAk2AhQgACAENgIMQQAhEAyKAQsgACgCBCEEIABBADYCBCAAIAQgChCtgICAACIERQ1yIABBzQE2AhwgACAKNgIUIAAgBDYCDEEAIRAMiQELAkAgCy0AAEFQaiIQQf8BcUEKTw0AIAAgEDoAKiALQQFqIQpBtgEhEAxwCyAAKAIEIQQgAEEANgIEIAAgBCALEK2AgIAAIgRFDXAgAEHPATYCHCAAIAs2AhQgACAENgIMQQAhEAyIAQsgAEEANgIcIAAgBDYCFCAAQZCzgIAANgIQIABBCDYCDCAAQQA2AgBBACEQDIcBCyABQRVGDT8gAEEANgIcIAAgDDYCFCAAQcyOgIAANgIQIABBIDYCDEEAIRAMhgELIABBgQQ7ASggACgCBCEQIABCADcDACAAIBAgDEEBaiIMEKuAgIAAIhBFDTggAEHTATYCHCAAIAw2AhQgACAQNgIMQQAhEAyFAQsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQdibgIAANgIQIABBCDYCDAyDAQsgACgCBCEQIABCADcDACAAIBAgC0EBaiILEKuAgIAAIhANAUHGASEQDGkLIABBAjoAKAxVCyAAQdUBNgIcIAAgCzYCFCAAIBA2AgxBACEQDIABCyAQQRVGDTcgAEEANgIcIAAgBDYCFCAAQaSMgIAANgIQIABBEDYCDEEAIRAMfwsgAC0ANEEBRw00IAAgBCACELyAgIAAIhBFDTQgEEEVRw01IABB3AE2AhwgACAENgIUIABB1ZaAgAA2AhAgAEEVNgIMQQAhEAx+C0EAIRAgAEEANgIcIABBr4uAgAA2AhAgAEECNgIMIAAgFEEBajYCFAx9C0EAIRAMYwtBAiEQDGILQQ0hEAxhC0EPIRAMYAtBJSEQDF8LQRMhEAxeC0EVIRAMXQtBFiEQDFwLQRchEAxbC0EYIRAMWgtBGSEQDFkLQRohEAxYC0EbIRAMVwtBHCEQDFYLQR0hEAxVC0EfIRAMVAtBISEQDFMLQSMhEAxSC0HGACEQDFELQS4hEAxQC0EvIRAMTwtBOyEQDE4LQT0hEAxNC0HIACEQDEwLQckAIRAMSwtBywAhEAxKC0HMACEQDEkLQc4AIRAMSAtB0QAhEAxHC0HVACEQDEYLQdgAIRAMRQtB2QAhEAxEC0HbACEQDEMLQeQAIRAMQgtB5QAhEAxBC0HxACEQDEALQfQAIRAMPwtBjQEhEAw+C0GXASEQDD0LQakBIRAMPAtBrAEhEAw7C0HAASEQDDoLQbkBIRAMOQtBrwEhEAw4C0GxASEQDDcLQbIBIRAMNgtBtAEhEAw1C0G1ASEQDDQLQboBIRAMMwtBvQEhEAwyC0G/ASEQDDELQcEBIRAMMAsgAEEANgIcIAAgBDYCFCAAQemLgIAANgIQIABBHzYCDEEAIRAMSAsgAEHbATYCHCAAIAQ2AhQgAEH6loCAADYCECAAQRU2AgxBACEQDEcLIABB+AA2AhwgACAMNgIUIABBypiAgAA2AhAgAEEVNgIMQQAhEAxGCyAAQdEANgIcIAAgBTYCFCAAQbCXgIAANgIQIABBFTYCDEEAIRAMRQsgAEH5ADYCHCAAIAE2AhQgACAQNgIMQQAhEAxECyAAQfgANgIcIAAgATYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMQwsgAEHkADYCHCAAIAE2AhQgAEHjl4CAADYCECAAQRU2AgxBACEQDEILIABB1wA2AhwgACABNgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAxBCyAAQQA2AhwgACABNgIUIABBuY2AgAA2AhAgAEEaNgIMQQAhEAxACyAAQcIANgIcIAAgATYCFCAAQeOYgIAANgIQIABBFTYCDEEAIRAMPwsgAEEANgIEIAAgDyAPELGAgIAAIgRFDQEgAEE6NgIcIAAgBDYCDCAAIA9BAWo2AhRBACEQDD4LIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCxgICAACIERQ0AIABBOzYCHCAAIAQ2AgwgACABQQFqNgIUQQAhEAw+CyABQQFqIQEMLQsgD0EBaiEBDC0LIABBADYCHCAAIA82AhQgAEHkkoCAADYCECAAQQQ2AgxBACEQDDsLIABBNjYCHCAAIAQ2AhQgACACNgIMQQAhEAw6CyAAQS42AhwgACAONgIUIAAgBDYCDEEAIRAMOQsgAEHQADYCHCAAIAE2AhQgAEGRmICAADYCECAAQRU2AgxBACEQDDgLIA1BAWohAQwsCyAAQRU2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAw2CyAAQRs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw1CyAAQQ82AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw0CyAAQQs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAwzCyAAQRo2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwyCyAAQQs2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwxCyAAQQo2AhwgACABNgIUIABB5JaAgAA2AhAgAEEVNgIMQQAhEAwwCyAAQR42AhwgACABNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAwvCyAAQQA2AhwgACAQNgIUIABB2o2AgAA2AhAgAEEUNgIMQQAhEAwuCyAAQQQ2AhwgACABNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAwtCyAAQQA2AgAgC0EBaiELC0G4ASEQDBILIABBADYCACAQQQFqIQFB9QAhEAwRCyABIQECQCAALQApQQVHDQBB4wAhEAwRC0HiACEQDBALQQAhECAAQQA2AhwgAEHkkYCAADYCECAAQQc2AgwgACAUQQFqNgIUDCgLIABBADYCACAXQQFqIQFBwAAhEAwOC0EBIQELIAAgAToALCAAQQA2AgAgF0EBaiEBC0EoIRAMCwsgASEBC0E4IRAMCQsCQCABIg8gAkYNAANAAkAgDy0AAEGAvoCAAGotAAAiAUEBRg0AIAFBAkcNAyAPQQFqIQEMBAsgD0EBaiIPIAJHDQALQT4hEAwiC0E+IRAMIQsgAEEAOgAsIA8hAQwBC0ELIRAMBgtBOiEQDAULIAFBAWohAUEtIRAMBAsgACABOgAsIABBADYCACAWQQFqIQFBDCEQDAMLIABBADYCACAXQQFqIQFBCiEQDAILIABBADYCAAsgAEEAOgAsIA0hAUEJIRAMAAsLQQAhECAAQQA2AhwgACALNgIUIABBzZCAgAA2AhAgAEEJNgIMDBcLQQAhECAAQQA2AhwgACAKNgIUIABB6YqAgAA2AhAgAEEJNgIMDBYLQQAhECAAQQA2AhwgACAJNgIUIABBt5CAgAA2AhAgAEEJNgIMDBULQQAhECAAQQA2AhwgACAINgIUIABBnJGAgAA2AhAgAEEJNgIMDBQLQQAhECAAQQA2AhwgACABNgIUIABBzZCAgAA2AhAgAEEJNgIMDBMLQQAhECAAQQA2AhwgACABNgIUIABB6YqAgAA2AhAgAEEJNgIMDBILQQAhECAAQQA2AhwgACABNgIUIABBt5CAgAA2AhAgAEEJNgIMDBELQQAhECAAQQA2AhwgACABNgIUIABBnJGAgAA2AhAgAEEJNgIMDBALQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA8LQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA4LQQAhECAAQQA2AhwgACABNgIUIABBwJKAgAA2AhAgAEELNgIMDA0LQQAhECAAQQA2AhwgACABNgIUIABBlYmAgAA2AhAgAEELNgIMDAwLQQAhECAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMDAsLQQAhECAAQQA2AhwgACABNgIUIABB+4+AgAA2AhAgAEEKNgIMDAoLQQAhECAAQQA2AhwgACABNgIUIABB8ZmAgAA2AhAgAEECNgIMDAkLQQAhECAAQQA2AhwgACABNgIUIABBxJSAgAA2AhAgAEECNgIMDAgLQQAhECAAQQA2AhwgACABNgIUIABB8pWAgAA2AhAgAEECNgIMDAcLIABBAjYCHCAAIAE2AhQgAEGcmoCAADYCECAAQRY2AgxBACEQDAYLQQEhEAwFC0HUACEQIAEiBCACRg0EIANBCGogACAEIAJB2MKAgABBChDFgICAACADKAIMIQQgAygCCA4DAQQCAAsQyoCAgAAACyAAQQA2AhwgAEG1moCAADYCECAAQRc2AgwgACAEQQFqNgIUQQAhEAwCCyAAQQA2AhwgACAENgIUIABBypqAgAA2AhAgAEEJNgIMQQAhEAwBCwJAIAEiBCACRw0AQSIhEAwBCyAAQYmAgIAANgIIIAAgBDYCBEEhIRALIANBEGokgICAgAAgEAuvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAEMeAgIAAC/I2AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKg0ICAAA0AQQAQy4CAgABBgNSEgABrIgJB2QBJDQBBACEDAkBBACgC4NOAgAAiBA0AQQBCfzcC7NOAgABBAEKAgISAgIDAADcC5NOAgABBACABQQhqQXBxQdiq1aoFcyIENgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgAALQQAgAjYCzNOAgABBAEGA1ISAADYCyNOAgABBAEGA1ISAADYCmNCAgABBACAENgKs0ICAAEEAQX82AqjQgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgNSEgABBeEGA1ISAAGtBD3FBAEGA1ISAAEEIakEPcRsiA2oiBEEEaiACQUhqIgUgA2siA0EBcjYCAEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgABBgNSEgAAgBWpBODYCBAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAUsNAAJAQQAoAojQgIAAIgZBECAAQRNqQXBxIABBC0kbIgJBA3YiBHYiA0EDcUUNAAJAAkAgA0EBcSAEckEBcyIFQQN0IgRBsNCAgABqIgMgBEG40ICAAGooAgAiBCgCCCICRw0AQQAgBkF+IAV3cTYCiNCAgAAMAQsgAyACNgIIIAIgAzYCDAsgBEEIaiEDIAQgBUEDdCIFQQNyNgIEIAQgBWoiBCAEKAIEQQFyNgIEDAwLIAJBACgCkNCAgAAiB00NAQJAIANFDQACQAJAIAMgBHRBAiAEdCIDQQAgA2tycSIDQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmoiBEEDdCIDQbDQgIAAaiIFIANBuNCAgABqKAIAIgMoAggiAEcNAEEAIAZBfiAEd3EiBjYCiNCAgAAMAQsgBSAANgIIIAAgBTYCDAsgAyACQQNyNgIEIAMgBEEDdCIEaiAEIAJrIgU2AgAgAyACaiIAIAVBAXI2AgQCQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhBAJAAkAgBkEBIAdBA3Z0IghxDQBBACAGIAhyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAg2AggLIANBCGohA0EAIAA2ApzQgIAAQQAgBTYCkNCAgAAMDAtBACgCjNCAgAAiCUUNASAJQQAgCWtxQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmpBAnRBuNKAgABqKAIAIgAoAgRBeHEgAmshBCAAIQUCQANAAkAgBSgCECIDDQAgBUEUaigCACIDRQ0CCyADKAIEQXhxIAJrIgUgBCAFIARJIgUbIQQgAyAAIAUbIQAgAyEFDAALCyAAKAIYIQoCQCAAKAIMIgggAEYNACAAKAIIIgNBACgCmNCAgABJGiAIIAM2AgggAyAINgIMDAsLAkAgAEEUaiIFKAIAIgMNACAAKAIQIgNFDQMgAEEQaiEFCwNAIAUhCyADIghBFGoiBSgCACIDDQAgCEEQaiEFIAgoAhAiAw0ACyALQQA2AgAMCgtBfyECIABBv39LDQAgAEETaiIDQXBxIQJBACgCjNCAgAAiB0UNAEEAIQsCQCACQYACSQ0AQR8hCyACQf///wdLDQAgA0EIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIFIAVBgIAPakEQdkECcSIFdEEPdiADIARyIAVyayIDQQF0IAIgA0EVanZBAXFyQRxqIQsLQQAgAmshBAJAAkACQAJAIAtBAnRBuNKAgABqKAIAIgUNAEEAIQNBACEIDAELQQAhAyACQQBBGSALQQF2ayALQR9GG3QhAEEAIQgDQAJAIAUoAgRBeHEgAmsiBiAETw0AIAYhBCAFIQggBg0AQQAhBCAFIQggBSEDDAMLIAMgBUEUaigCACIGIAYgBSAAQR12QQRxakEQaigCACIFRhsgAyAGGyEDIABBAXQhACAFDQALCwJAIAMgCHINAEEAIQhBAiALdCIDQQAgA2tyIAdxIgNFDQMgA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBUEFdkEIcSIAIANyIAUgAHYiA0ECdkEEcSIFciADIAV2IgNBAXZBAnEiBXIgAyAFdiIDQQF2QQFxIgVyIAMgBXZqQQJ0QbjSgIAAaigCACEDCyADRQ0BCwNAIAMoAgRBeHEgAmsiBiAESSEAAkAgAygCECIFDQAgA0EUaigCACEFCyAGIAQgABshBCADIAggABshCCAFIQMgBQ0ACwsgCEUNACAEQQAoApDQgIAAIAJrTw0AIAgoAhghCwJAIAgoAgwiACAIRg0AIAgoAggiA0EAKAKY0ICAAEkaIAAgAzYCCCADIAA2AgwMCQsCQCAIQRRqIgUoAgAiAw0AIAgoAhAiA0UNAyAIQRBqIQULA0AgBSEGIAMiAEEUaiIFKAIAIgMNACAAQRBqIQUgACgCECIDDQALIAZBADYCAAwICwJAQQAoApDQgIAAIgMgAkkNAEEAKAKc0ICAACEEAkACQCADIAJrIgVBEEkNACAEIAJqIgAgBUEBcjYCBEEAIAU2ApDQgIAAQQAgADYCnNCAgAAgBCADaiAFNgIAIAQgAkEDcjYCBAwBCyAEIANBA3I2AgQgBCADaiIDIAMoAgRBAXI2AgRBAEEANgKc0ICAAEEAQQA2ApDQgIAACyAEQQhqIQMMCgsCQEEAKAKU0ICAACIAIAJNDQBBACgCoNCAgAAiAyACaiIEIAAgAmsiBUEBcjYCBEEAIAU2ApTQgIAAQQAgBDYCoNCAgAAgAyACQQNyNgIEIANBCGohAwwKCwJAAkBBACgC4NOAgABFDQBBACgC6NOAgAAhBAwBC0EAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEMakFwcUHYqtWqBXM2AuDTgIAAQQBBADYC9NOAgABBAEEANgLE04CAAEGAgAQhBAtBACEDAkAgBCACQccAaiIHaiIGQQAgBGsiC3EiCCACSw0AQQBBMDYC+NOAgAAMCgsCQEEAKALA04CAACIDRQ0AAkBBACgCuNOAgAAiBCAIaiIFIARNDQAgBSADTQ0BC0EAIQNBAEEwNgL404CAAAwKC0EALQDE04CAAEEEcQ0EAkACQAJAQQAoAqDQgIAAIgRFDQBByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiAESw0DCyADKAIIIgMNAAsLQQAQy4CAgAAiAEF/Rg0FIAghBgJAQQAoAuTTgIAAIgNBf2oiBCAAcUUNACAIIABrIAQgAGpBACADa3FqIQYLIAYgAk0NBSAGQf7///8HSw0FAkBBACgCwNOAgAAiA0UNAEEAKAK404CAACIEIAZqIgUgBE0NBiAFIANLDQYLIAYQy4CAgAAiAyAARw0BDAcLIAYgAGsgC3EiBkH+////B0sNBCAGEMuAgIAAIgAgAygCACADKAIEakYNAyAAIQMLAkAgA0F/Rg0AIAJByABqIAZNDQACQCAHIAZrQQAoAujTgIAAIgRqQQAgBGtxIgRB/v///wdNDQAgAyEADAcLAkAgBBDLgICAAEF/Rg0AIAQgBmohBiADIQAMBwtBACAGaxDLgICAABoMBAsgAyEAIANBf0cNBQwDC0EAIQgMBwtBACEADAULIABBf0cNAgtBAEEAKALE04CAAEEEcjYCxNOAgAALIAhB/v///wdLDQEgCBDLgICAACEAQQAQy4CAgAAhAyAAQX9GDQEgA0F/Rg0BIAAgA08NASADIABrIgYgAkE4ak0NAQtBAEEAKAK404CAACAGaiIDNgK404CAAAJAIANBACgCvNOAgABNDQBBACADNgK804CAAAsCQAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQCAAIAMoAgAiBSADKAIEIghqRg0CIAMoAggiAw0ADAMLCwJAAkBBACgCmNCAgAAiA0UNACAAIANPDQELQQAgADYCmNCAgAALQQAhA0EAIAY2AszTgIAAQQAgADYCyNOAgABBAEF/NgKo0ICAAEEAQQAoAuDTgIAANgKs0ICAAEEAQQA2AtTTgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiBCAGQUhqIgUgA2siA0EBcjYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgAAgACAFakE4NgIEDAILIAMtAAxBCHENACAEIAVJDQAgBCAATw0AIARBeCAEa0EPcUEAIARBCGpBD3EbIgVqIgBBACgClNCAgAAgBmoiCyAFayIFQQFyNgIEIAMgCCAGajYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAU2ApTQgIAAQQAgADYCoNCAgAAgBCALakE4NgIEDAELAkAgAEEAKAKY0ICAACIITw0AQQAgADYCmNCAgAAgACEICyAAIAZqIQVByNOAgAAhAwJAAkACQAJAAkACQAJAA0AgAygCACAFRg0BIAMoAggiAw0ADAILCyADLQAMQQhxRQ0BC0HI04CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIgUgBEsNAwsgAygCCCEDDAALCyADIAA2AgAgAyADKAIEIAZqNgIEIABBeCAAa0EPcUEAIABBCGpBD3EbaiILIAJBA3I2AgQgBUF4IAVrQQ9xQQAgBUEIakEPcRtqIgYgCyACaiICayEDAkAgBiAERw0AQQAgAjYCoNCAgABBAEEAKAKU0ICAACADaiIDNgKU0ICAACACIANBAXI2AgQMAwsCQCAGQQAoApzQgIAARw0AQQAgAjYCnNCAgABBAEEAKAKQ0ICAACADaiIDNgKQ0ICAACACIANBAXI2AgQgAiADaiADNgIADAMLAkAgBigCBCIEQQNxQQFHDQAgBEF4cSEHAkACQCAEQf8BSw0AIAYoAggiBSAEQQN2IghBA3RBsNCAgABqIgBGGgJAIAYoAgwiBCAFRw0AQQBBACgCiNCAgABBfiAId3E2AojQgIAADAILIAQgAEYaIAQgBTYCCCAFIAQ2AgwMAQsgBigCGCEJAkACQCAGKAIMIgAgBkYNACAGKAIIIgQgCEkaIAAgBDYCCCAEIAA2AgwMAQsCQCAGQRRqIgQoAgAiBQ0AIAZBEGoiBCgCACIFDQBBACEADAELA0AgBCEIIAUiAEEUaiIEKAIAIgUNACAAQRBqIQQgACgCECIFDQALIAhBADYCAAsgCUUNAAJAAkAgBiAGKAIcIgVBAnRBuNKAgABqIgQoAgBHDQAgBCAANgIAIAANAUEAQQAoAozQgIAAQX4gBXdxNgKM0ICAAAwCCyAJQRBBFCAJKAIQIAZGG2ogADYCACAARQ0BCyAAIAk2AhgCQCAGKAIQIgRFDQAgACAENgIQIAQgADYCGAsgBigCFCIERQ0AIABBFGogBDYCACAEIAA2AhgLIAcgA2ohAyAGIAdqIgYoAgQhBAsgBiAEQX5xNgIEIAIgA2ogAzYCACACIANBAXI2AgQCQCADQf8BSw0AIANBeHFBsNCAgABqIQQCQAJAQQAoAojQgIAAIgVBASADQQN2dCIDcQ0AQQAgBSADcjYCiNCAgAAgBCEDDAELIAQoAgghAwsgAyACNgIMIAQgAjYCCCACIAQ2AgwgAiADNgIIDAMLQR8hBAJAIANB////B0sNACADQQh2IgQgBEGA/j9qQRB2QQhxIgR0IgUgBUGA4B9qQRB2QQRxIgV0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAQgBXIgAHJrIgRBAXQgAyAEQRVqdkEBcXJBHGohBAsgAiAENgIcIAJCADcCECAEQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiAEEBIAR0IghxDQAgBSACNgIAQQAgACAIcjYCjNCAgAAgAiAFNgIYIAIgAjYCCCACIAI2AgwMAwsgA0EAQRkgBEEBdmsgBEEfRht0IQQgBSgCACEAA0AgACIFKAIEQXhxIANGDQIgBEEddiEAIARBAXQhBCAFIABBBHFqQRBqIggoAgAiAA0ACyAIIAI2AgAgAiAFNgIYIAIgAjYCDCACIAI2AggMAgsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiCyAGQUhqIgggA2siA0EBcjYCBCAAIAhqQTg2AgQgBCAFQTcgBWtBD3FBACAFQUlqQQ9xG2pBQWoiCCAIIARBEGpJGyIIQSM2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAs2AqDQgIAAIAhBEGpBACkC0NOAgAA3AgAgCEEAKQLI04CAADcCCEEAIAhBCGo2AtDTgIAAQQAgBjYCzNOAgABBACAANgLI04CAAEEAQQA2AtTTgIAAIAhBJGohAwNAIANBBzYCACADQQRqIgMgBUkNAAsgCCAERg0DIAggCCgCBEF+cTYCBCAIIAggBGsiADYCACAEIABBAXI2AgQCQCAAQf8BSw0AIABBeHFBsNCAgABqIQMCQAJAQQAoAojQgIAAIgVBASAAQQN2dCIAcQ0AQQAgBSAAcjYCiNCAgAAgAyEFDAELIAMoAgghBQsgBSAENgIMIAMgBDYCCCAEIAM2AgwgBCAFNgIIDAQLQR8hAwJAIABB////B0sNACAAQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgggCEGAgA9qQRB2QQJxIgh0QQ92IAMgBXIgCHJrIgNBAXQgACADQRVqdkEBcXJBHGohAwsgBCADNgIcIARCADcCECADQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiCEEBIAN0IgZxDQAgBSAENgIAQQAgCCAGcjYCjNCAgAAgBCAFNgIYIAQgBDYCCCAEIAQ2AgwMBAsgAEEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACEIA0AgCCIFKAIEQXhxIABGDQMgA0EddiEIIANBAXQhAyAFIAhBBHFqQRBqIgYoAgAiCA0ACyAGIAQ2AgAgBCAFNgIYIAQgBDYCDCAEIAQ2AggMAwsgBSgCCCIDIAI2AgwgBSACNgIIIAJBADYCGCACIAU2AgwgAiADNgIICyALQQhqIQMMBQsgBSgCCCIDIAQ2AgwgBSAENgIIIARBADYCGCAEIAU2AgwgBCADNgIIC0EAKAKU0ICAACIDIAJNDQBBACgCoNCAgAAiBCACaiIFIAMgAmsiA0EBcjYCBEEAIAM2ApTQgIAAQQAgBTYCoNCAgAAgBCACQQNyNgIEIARBCGohAwwDC0EAIQNBAEEwNgL404CAAAwCCwJAIAtFDQACQAJAIAggCCgCHCIFQQJ0QbjSgIAAaiIDKAIARw0AIAMgADYCACAADQFBACAHQX4gBXdxIgc2AozQgIAADAILIAtBEEEUIAsoAhAgCEYbaiAANgIAIABFDQELIAAgCzYCGAJAIAgoAhAiA0UNACAAIAM2AhAgAyAANgIYCyAIQRRqKAIAIgNFDQAgAEEUaiADNgIAIAMgADYCGAsCQAJAIARBD0sNACAIIAQgAmoiA0EDcjYCBCAIIANqIgMgAygCBEEBcjYCBAwBCyAIIAJqIgAgBEEBcjYCBCAIIAJBA3I2AgQgACAEaiAENgIAAkAgBEH/AUsNACAEQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgBEEDdnQiBHENAEEAIAUgBHI2AojQgIAAIAMhBAwBCyADKAIIIQQLIAQgADYCDCADIAA2AgggACADNgIMIAAgBDYCCAwBC0EfIQMCQCAEQf///wdLDQAgBEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCICIAJBgIAPakEQdkECcSICdEEPdiADIAVyIAJyayIDQQF0IAQgA0EVanZBAXFyQRxqIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEG40oCAAGohBQJAIAdBASADdCICcQ0AIAUgADYCAEEAIAcgAnI2AozQgIAAIAAgBTYCGCAAIAA2AgggACAANgIMDAELIARBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAgJAA0AgAiIFKAIEQXhxIARGDQEgA0EddiECIANBAXQhAyAFIAJBBHFqQRBqIgYoAgAiAg0ACyAGIAA2AgAgACAFNgIYIAAgADYCDCAAIAA2AggMAQsgBSgCCCIDIAA2AgwgBSAANgIIIABBADYCGCAAIAU2AgwgACADNgIICyAIQQhqIQMMAQsCQCAKRQ0AAkACQCAAIAAoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAg2AgAgCA0BQQAgCUF+IAV3cTYCjNCAgAAMAgsgCkEQQRQgCigCECAARhtqIAg2AgAgCEUNAQsgCCAKNgIYAkAgACgCECIDRQ0AIAggAzYCECADIAg2AhgLIABBFGooAgAiA0UNACAIQRRqIAM2AgAgAyAINgIYCwJAAkAgBEEPSw0AIAAgBCACaiIDQQNyNgIEIAAgA2oiAyADKAIEQQFyNgIEDAELIAAgAmoiBSAEQQFyNgIEIAAgAkEDcjYCBCAFIARqIAQ2AgACQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhAwJAAkBBASAHQQN2dCIIIAZxDQBBACAIIAZyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAM2AgwgAiADNgIIIAMgAjYCDCADIAg2AggLQQAgBTYCnNCAgABBACAENgKQ0ICAAAsgAEEIaiEDCyABQRBqJICAgIAAIAMLCgAgABDJgICAAAviDQEHfwJAIABFDQAgAEF4aiIBIABBfGooAgAiAkF4cSIAaiEDAkAgAkEBcQ0AIAJBA3FFDQEgASABKAIAIgJrIgFBACgCmNCAgAAiBEkNASACIABqIQACQCABQQAoApzQgIAARg0AAkAgAkH/AUsNACABKAIIIgQgAkEDdiIFQQN0QbDQgIAAaiIGRhoCQCABKAIMIgIgBEcNAEEAQQAoAojQgIAAQX4gBXdxNgKI0ICAAAwDCyACIAZGGiACIAQ2AgggBCACNgIMDAILIAEoAhghBwJAAkAgASgCDCIGIAFGDQAgASgCCCICIARJGiAGIAI2AgggAiAGNgIMDAELAkAgAUEUaiICKAIAIgQNACABQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQECQAJAIAEgASgCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAwsgB0EQQRQgBygCECABRhtqIAY2AgAgBkUNAgsgBiAHNgIYAkAgASgCECICRQ0AIAYgAjYCECACIAY2AhgLIAEoAhQiAkUNASAGQRRqIAI2AgAgAiAGNgIYDAELIAMoAgQiAkEDcUEDRw0AIAMgAkF+cTYCBEEAIAA2ApDQgIAAIAEgAGogADYCACABIABBAXI2AgQPCyABIANPDQAgAygCBCICQQFxRQ0AAkACQCACQQJxDQACQCADQQAoAqDQgIAARw0AQQAgATYCoNCAgABBAEEAKAKU0ICAACAAaiIANgKU0ICAACABIABBAXI2AgQgAUEAKAKc0ICAAEcNA0EAQQA2ApDQgIAAQQBBADYCnNCAgAAPCwJAIANBACgCnNCAgABHDQBBACABNgKc0ICAAEEAQQAoApDQgIAAIABqIgA2ApDQgIAAIAEgAEEBcjYCBCABIABqIAA2AgAPCyACQXhxIABqIQACQAJAIAJB/wFLDQAgAygCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgAygCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAgsgAiAGRhogAiAENgIIIAQgAjYCDAwBCyADKAIYIQcCQAJAIAMoAgwiBiADRg0AIAMoAggiAkEAKAKY0ICAAEkaIAYgAjYCCCACIAY2AgwMAQsCQCADQRRqIgIoAgAiBA0AIANBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAAJAAkAgAyADKAIcIgRBAnRBuNKAgABqIgIoAgBHDQAgAiAGNgIAIAYNAUEAQQAoAozQgIAAQX4gBHdxNgKM0ICAAAwCCyAHQRBBFCAHKAIQIANGG2ogBjYCACAGRQ0BCyAGIAc2AhgCQCADKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgAygCFCICRQ0AIAZBFGogAjYCACACIAY2AhgLIAEgAGogADYCACABIABBAXI2AgQgAUEAKAKc0ICAAEcNAUEAIAA2ApDQgIAADwsgAyACQX5xNgIEIAEgAGogADYCACABIABBAXI2AgQLAkAgAEH/AUsNACAAQXhxQbDQgIAAaiECAkACQEEAKAKI0ICAACIEQQEgAEEDdnQiAHENAEEAIAQgAHI2AojQgIAAIAIhAAwBCyACKAIIIQALIAAgATYCDCACIAE2AgggASACNgIMIAEgADYCCA8LQR8hAgJAIABB////B0sNACAAQQh2IgIgAkGA/j9qQRB2QQhxIgJ0IgQgBEGA4B9qQRB2QQRxIgR0IgYgBkGAgA9qQRB2QQJxIgZ0QQ92IAIgBHIgBnJrIgJBAXQgACACQRVqdkEBcXJBHGohAgsgASACNgIcIAFCADcCECACQQJ0QbjSgIAAaiEEAkACQEEAKAKM0ICAACIGQQEgAnQiA3ENACAEIAE2AgBBACAGIANyNgKM0ICAACABIAQ2AhggASABNgIIIAEgATYCDAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiAEKAIAIQYCQANAIAYiBCgCBEF4cSAARg0BIAJBHXYhBiACQQF0IQIgBCAGQQRxakEQaiIDKAIAIgYNAAsgAyABNgIAIAEgBDYCGCABIAE2AgwgASABNgIIDAELIAQoAggiACABNgIMIAQgATYCCCABQQA2AhggASAENgIMIAEgADYCCAtBAEEAKAKo0ICAAEF/aiIBQX8gARs2AqjQgIAACwsEAAAAC04AAkAgAA0APwBBEHQPCwJAIABB//8DcQ0AIABBf0wNAAJAIABBEHZAACIAQX9HDQBBAEEwNgL404CAAEF/DwsgAEEQdA8LEMqAgIAAAAvyAgIDfwF+AkAgAkUNACAAIAE6AAAgAiAAaiIDQX9qIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0F9aiABOgAAIANBfmogAToAACACQQdJDQAgACABOgADIANBfGogAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkF8aiABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBeGogATYCACACQXRqIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQXBqIAE2AgAgAkFsaiABNgIAIAJBaGogATYCACACQWRqIAE2AgAgBCADQQRxQRhyIgVrIgJBIEkNACABrUKBgICAEH4hBiADIAVqIQEDQCABIAY3AxggASAGNwMQIAEgBjcDCCABIAY3AwAgAUEgaiEBIAJBYGoiAkEfSw0ACwsgAAsLjkgBAEGACAuGSAEAAAACAAAAAwAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAYAAAAHAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='\n", "// @ts-check\n\n'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst util = require('./core/util')\nconst timers = require('./timers')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError,\n ResponseExceededMaxSizeError,\n ClientDestroyedError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors,\n kLocalAddress,\n kMaxResponseSize\n} = require('./core/symbols')\nconst FastBuffer = Buffer[Symbol.species]\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\n/**\n * @type {import('../types/client').default}\n */\nclass Client extends DispatcherBase {\n /**\n *\n * @param {string|URL} url\n * @param {import('../types/client').Client.Options} options\n */\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient,\n localAddress,\n maxResponseSize,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n throw new InvalidArgumentError('localAddress must be valid string IP address')\n }\n\n if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n throw new InvalidArgumentError('maxResponseSize must be a positive number')\n }\n\n if (\n autoSelectFamilyAttemptTimeout != null &&\n (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n ) {\n throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || 16384\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kLocalAddress] = localAddress != null ? localAddress : null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = new Request(origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n return new Promise((resolve) => {\n if (!this[kSize]) {\n resolve(null)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n // TODO (fix): Should we error here with ClientDestroyedError?\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp-wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd-wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp-wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\nllhttpPromise.catch()\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n this.connection = ''\n this.maxResponseSize = client[kMaxResponseSize]\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n timers.clearTimeout(this.timeout)\n if (value) {\n this.timeout = timers.setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message =\n 'Response does not match the HTTP/1.1 protocol (' +\n Buffer.from(llhttp.memory.buffer, ptr, len).toString() +\n ')'\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n timers.clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n this.connection += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = (\n shouldKeepAlive ||\n // Override llhttp value which does not allow keepAlive for HEAD.\n (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n )\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (this.shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n let pause\n try {\n pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n\n if (request.method === 'HEAD') {\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode, maxResponseSize } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n util.destroy(socket, new ResponseExceededMaxSizeError())\n return -1\n }\n\n this.bytesRead += buf.length\n\n try {\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n this.connection = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n try {\n request.onComplete(headers)\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n parser.readMore()\n}\n\nfunction onSocketError (err) {\n const { [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.onMessageComplete()\n return\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser } = this\n\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n return\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client } = this\n\n if (!this[kError] && this[kParser].statusCode && !this[kParser].shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n this[kParser].onMessageComplete()\n }\n\n this[kParser].destroy()\n this[kParser] = null\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substr(1, idx - 1)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (client.destroyed) {\n util.destroy(socket.on('error', () => {}), new ClientDestroyedError())\n return\n }\n\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kError] = null\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n socket[kClient] = client\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n client[kSocket] = socket\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n if (client.destroyed) {\n return\n }\n\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client[kClosedResolve] && !client[kSize]) {\n client[kClosedResolve]()\n client[kClosedResolve] = null\n return\n }\n\n const socket = client[kSocket]\n\n if (socket && !socket.destroyed) {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket) {\n connect(client)\n return\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (util.isStream(request.body) && util.bodyLength(request.body) === 0) {\n request.body\n .on('data', /* istanbul ignore next */ function () {\n /* istanbul ignore next */\n assert(false)\n })\n .on('error', function (err) {\n errorRequest(client, request, err)\n })\n .on('end', function () {\n util.destroy(this)\n })\n\n request.body = null\n }\n\n if (client[kRunning] > 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\nfunction write (client, request) {\n const { body, method, path, host, upgrade, headers, blocking, reset } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n if (request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (reset != null) {\n socket[kReset] = reset\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining] && !socket[kReset]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeStream ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n if (finished) {\n return\n }\n\n try {\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n if (finished) {\n return\n }\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n onFinished(new RequestAbortedError())\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(buffer)\n socket.uncork()\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(socket, err)\n }\n}\n\nasync function writeIterable ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n socket.cork()\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'latin1')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n socket.uncork()\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'latin1')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n", "/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n", "const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n", "'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n", "'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout == null ? 10e3 : connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n", "'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n", "'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n}\n\nmodule.exports = function () {\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n", "'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n", "// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nmodule.exports = class BodyReadable extends Readable {\n constructor ({\n resume,\n abort,\n contentType = '',\n highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n }) {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n async dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n const signal = opts && opts.signal\n const abortFn = () => {\n this.destroy()\n }\n let signalListenerCleanup\n if (signal) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new InvalidArgumentError('signal must be an AbortSignal')\n }\n util.throwIfAborted(signal)\n signalListenerCleanup = util.addAbortListener(signal, abortFn)\n }\n try {\n for await (const chunk of this) {\n util.throwIfAborted(signal)\n limit -= Buffer.byteLength(chunk)\n if (limit < 0) {\n return\n }\n }\n } catch {\n util.throwIfAborted(signal)\n } finally {\n if (typeof signalListenerCleanup === 'function') {\n signalListenerCleanup()\n } else if (signalListenerCleanup) {\n signalListenerCleanup[Symbol.dispose]()\n }\n }\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n", "const assert = require('assert')\nconst {\n ResponseStatusCodeError\n} = require('../core/errors')\nconst { toUSVString } = require('../core/util')\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n assert(body)\n\n let chunks = []\n let limit = 0\n\n for await (const chunk of body) {\n chunks.push(chunk)\n limit += chunk.length\n if (limit > 128 * 1024) {\n chunks = null\n break\n }\n }\n\n if (statusCode === 204 || !contentType || !chunks) {\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = toUSVString(Buffer.concat(chunks))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nmodule.exports = { getResolveErrorBodyCallback }\n", "const { addAbortListener } = require('../core/util')\nconst { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n addAbortListener(self[kSignal], self[kListener])\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n", "'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n throw new InvalidArgumentError('invalid highWaterMark')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n this.highWaterMark = highWaterMark\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n const body = new Readable({ resume, abort, contentType, highWaterMark })\n\n this.callback = null\n this.res = body\n\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n } else {\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\n", "'use strict'\n\nconst { finished, PassThrough } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError || false\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { factory, opaque, context, callback, responseHeaders } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n\n let res\n\n if (this.throwOnError && statusCode >= 400) {\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n res = new PassThrough()\n\n this.callback = null\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body: res, contentType, statusCode, statusMessage, headers }\n )\n } else {\n res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n }\n\n res.on('drain', resume)\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res.write(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n", "'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n", "'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n", "'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n", "'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n", "'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\nconst {\n types: {\n isPromise\n }\n} = require('util')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record<string, string>} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [\n ...keyValuePairs,\n Buffer.from(`${key}`),\n Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n ], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches, _data = data) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const body = typeof _data === 'function'\n ? _data({ ...opts, headers: optsHeaders })\n : _data\n\n // util.types.isPromise is likely needed for jest.\n if (isPromise(body)) {\n // If handleReply is asynchronous, throwing an error\n // in the callback will reject the promise, rather than\n // synchronously throw the error, which breaks some tests.\n // Rather, we wait for the callback to resolve if it is a\n // promise, and then re-run handleReply with the new body.\n body.then((newData) => handleReply(mockDispatches, newData))\n return\n }\n\n const responseData = getResponseData(body)\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n", "'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n", "'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n", "'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(\u2026)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '\u2705' : '\u274C',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n", "'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n", "'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Pool = require('./pool')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n const { clientFactory = defaultFactory } = opts\n\n if (typeof clientFactory !== 'function') {\n throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = opts.headers || {}\n\n if (opts.auth && opts.token) {\n throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token')\n } else if (opts.auth) {\n /* @deprecated in favour of opts.token */\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n } else if (opts.token) {\n this[kProxyHeaders]['proxy-authorization'] = opts.token\n }\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host } = resolvedUrl\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = clientFactory(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError('Proxy response !== 200 when HTTP Tunneling'))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record<string, string>} headers\n * @returns {Record<string, string>}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record<string, string>} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record<string, string>} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n", "'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n", "'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst { webidl } = require('./webidl')\nconst assert = require('assert')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n\n // Trimming the end with `.replace()` and a RegExp is typically subject to\n // ReDoS. This is safer and faster.\n let i = potentialValue.length\n while (/[\\r\\n\\t ]/.test(potentialValue.charAt(--i)));\n return potentialValue.slice(0, i + 1).replace(/^[\\r\\n\\t ]+/, '')\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (const header of object) {\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n throw webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header\u2019s first item, header\u2019s second item) to headers.\n headers.append(header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key \u2192 value in object,\n // append (key, value) to headers\n for (const [key, value] of Object.entries(object)) {\n headers.append(key, value)\n }\n } else {\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n }\n}\n\nclass HeadersList {\n /** @type {[string, string][]|null} */\n cookies = null\n\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n this.cookies = init.cookies\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n this.cookies = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header\u2019s name.\n const lowercaseName = name.toLowerCase()\n const exists = this[kHeadersMap].get(lowercaseName)\n\n // 2. Append (name, value) to list.\n if (exists) {\n const delimiter = lowercaseName === 'cookie' ? '; ' : ', '\n this[kHeadersMap].set(lowercaseName, {\n name: exists.name,\n value: `${exists.value}${delimiter}${value}`\n })\n } else {\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n if (lowercaseName === 'set-cookie') {\n this.cookies ??= []\n this.cookies.push(value)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n const lowercaseName = name.toLowerCase()\n\n if (lowercaseName === 'set-cookie') {\n this.cookies = [value]\n }\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n return this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n\n if (name === 'set-cookie') {\n this.cookies = null\n }\n\n return this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n // 1. If list does not contain name, then return null.\n if (!this.contains(name)) {\n return null\n }\n\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return this[kHeadersMap].get(name.toLowerCase())?.value ?? null\n }\n\n * [Symbol.iterator] () {\n // use the lowercased name\n for (const [name, { value }] of this[kHeadersMap]) {\n yield [name, value]\n }\n }\n\n get entries () {\n const headers = {}\n\n if (this[kHeadersMap].size) {\n for (const { name, value } of this[kHeadersMap].values()) {\n headers[name] = value\n }\n }\n\n return headers\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this\u2019s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers\u2019s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers\u2019s header list.\n // 8. If headers\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n return this[kHeadersList].append(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this\u2019s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this\u2019s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this\u2019s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n return this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this\u2019s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this\u2019s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this\u2019s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n return this[kHeadersList].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n getSetCookie () {\n webidl.brandCheck(this, Headers)\n\n // 1. If this\u2019s header list does not contain `Set-Cookie`, then return \u00AB \u00BB.\n // 2. Return the values of all headers in this\u2019s header list whose name is\n // a byte-case-insensitive match for `Set-Cookie`, in order.\n\n const list = this[kHeadersList].cookies\n\n if (list) {\n return [...list]\n }\n\n return []\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n get [kHeadersSortedMap] () {\n if (this[kHeadersList][kHeadersSortedMap]) {\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n // 1. Let headers be an empty list of headers with the key being the name\n // and value the value.\n const headers = []\n\n // 2. Let names be the result of convert header names to a sorted-lowercase\n // set with all the names of the headers in list.\n const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)\n const cookies = this[kHeadersList].cookies\n\n // 3. For each name of names:\n for (const [name, value] of names) {\n // 1. If name is `set-cookie`, then:\n if (name === 'set-cookie') {\n // 1. Let values be a list of all values of headers in list whose name\n // is a byte-case-insensitive match for name, in order.\n\n // 2. For each value of values:\n // 1. Append (name, value) to headers.\n for (const value of cookies) {\n headers.push([name, value])\n }\n } else {\n // 2. Otherwise:\n\n // 1. Let value be the result of getting name from list.\n\n // 2. Assert: value is non-null.\n assert(value !== null)\n\n // 3. Append (name, value) to headers.\n headers.push([name, value])\n }\n }\n\n this[kHeadersList][kHeadersSortedMap] = headers\n\n // 4. Return headers.\n return headers\n }\n\n keys () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'value'\n )\n }\n\n entries () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key+value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n webidl.brandCheck(this, Headers)\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n getSetCookie: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty,\n [Symbol.iterator]: { enumerable: false },\n [Symbol.toStringTag]: {\n value: 'Headers',\n configurable: true\n }\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence<sequence<ByteString>>'](V)\n }\n\n return webidl.converters['record<ByteString, ByteString>'](V)\n }\n\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n", "'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike,\n isomorphicEncode\n} = require('./util')\nconst {\n redirectStatus,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this\u2019s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data = undefined, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' })\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = new TextEncoder('utf-8').encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this\u2019s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' })\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object\u2019s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatus.includes(status)) {\n throw new RangeError('Invalid status code ' + status)\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this\u2019s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject\u2019s response\u2019s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n const value = isomorphicEncode(URLSerializer(parsedURL))\n\n // 7. Append `Location`/value to responseObject\u2019s response\u2019s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this\u2019s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is this\u2019s response\u2019s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers()\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n // Returns response\u2019s type, e.g., \"cors\".\n get type () {\n webidl.brandCheck(this, Response)\n\n // The type getter steps are to return this\u2019s response\u2019s type.\n return this[kState].type\n }\n\n // Returns response\u2019s URL, if it has one; otherwise the empty string.\n get url () {\n webidl.brandCheck(this, Response)\n\n const urlList = this[kState].urlList\n\n // The url getter steps are to return the empty string if this\u2019s\n // response\u2019s URL is null; otherwise this\u2019s response\u2019s URL,\n // serialized with exclude fragment set to true.\n const url = urlList[urlList.length - 1] ?? null\n\n if (url === null) {\n return ''\n }\n\n return URLSerializer(url, true)\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n webidl.brandCheck(this, Response)\n\n // The redirected getter steps are to return true if this\u2019s response\u2019s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response\u2019s status.\n get status () {\n webidl.brandCheck(this, Response)\n\n // The status getter steps are to return this\u2019s response\u2019s status.\n return this[kState].status\n }\n\n // Returns whether response\u2019s status is an ok status.\n get ok () {\n webidl.brandCheck(this, Response)\n\n // The ok getter steps are to return true if this\u2019s response\u2019s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response\u2019s status message.\n get statusText () {\n webidl.brandCheck(this, Response)\n\n // The statusText getter steps are to return this\u2019s response\u2019s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response\u2019s headers as Headers.\n get headers () {\n webidl.brandCheck(this, Response)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n get body () {\n webidl.brandCheck(this, Response)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Response)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n // Returns a clone of response.\n clone () {\n webidl.brandCheck(this, Response)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n throw webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this\u2019s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Response',\n configurable: true\n }\n})\n\nObject.defineProperties(Response, {\n json: kEnumerableProperty,\n redirect: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response\u2019s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response\u2019s body is non-null, then set newResponse\u2019s body to the\n // result of cloning response\u2019s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response\u2019s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response\u2019s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response\u2019s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(new DOMException('The operation was aborted.', 'AbortError'))\n : makeNetworkError('Request was cancelled.')\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response\u2019s response\u2019s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response\u2019s response\u2019s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response\u2019s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kHeaders], init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n throw webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code ' + response.status\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n types.isAnyArrayBuffer(V) ||\n types.isTypedArray(V) ||\n types.isDataView(V)\n ) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response,\n cloneResponse\n}\n", "/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod,\n makePolicyContainer\n} = require('./util')\nconst {\n forbiddenMethods,\n corsSafeListedMethods,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n requestDuplex\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require('events')\n\nlet TransformStream = globalThis.TransformStream\n\nconst kInit = Symbol('init')\nconst kAbortController = Symbol('abortController')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kInit) {\n return\n }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' })\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin(),\n get origin () {\n return this.baseUrl?.origin\n },\n policyContainer: makePolicyContainer()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this\u2019s relevant settings object\u2019s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input\u2019s request.\n request = input[kState]\n\n // 9. Set signal to input\u2019s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this\u2019s relevant settings object\u2019s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request\u2019s window is an environment settings object and its origin\n // is same origin with origin, then set window to request\u2019s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if ('window' in init) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request\u2019s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request\u2019s method.\n method: request.method,\n // header list A copy of request\u2019s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This\u2019s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request\u2019s priority.\n priority: request.priority,\n // origin request\u2019s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request\u2019s referrer.\n referrer: request.referrer,\n // referrer policy request\u2019s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request\u2019s mode.\n mode: request.mode,\n // credentials mode request\u2019s credentials mode.\n credentials: request.credentials,\n // cache mode request\u2019s cache mode.\n cache: request.cache,\n // redirect mode request\u2019s redirect mode.\n redirect: request.redirect,\n // integrity metadata request\u2019s integrity metadata.\n integrity: request.integrity,\n // keepalive request\u2019s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request\u2019s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request\u2019s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request\u2019s URL list.\n urlList: [...request.urlList]\n })\n\n // 13. If init is not empty, then:\n if (Object.keys(init).length > 0) {\n // 1. If request\u2019s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request\u2019s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request\u2019s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request\u2019s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request\u2019s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request\u2019s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request\u2019s URL to request\u2019s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request\u2019s URL list to \u00AB request\u2019s URL \u00BB.\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request\u2019s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // - parsedReferrer\u2019s scheme is \"about\" and path is the string \"client\"\n // - parsedReferrer\u2019s origin is not same origin with origin\n // then set request\u2019s referrer to \"client\".\n if (\n (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') ||\n (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl))\n ) {\n request.referrer = 'client'\n } else {\n // 4. Otherwise, set request\u2019s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request\u2019s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n throw webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request\u2019s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request\u2019s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n }\n\n // 18. If init[\"cache\"] exists, then set request\u2019s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n }\n\n // 21. If request\u2019s cache mode is \"only-if-cached\" and request\u2019s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request\u2019s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n }\n\n // 23. If init[\"integrity\"] exists, then set request\u2019s integrity metadata to it.\n if (init.integrity !== undefined && init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request\u2019s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(init.method)) {\n throw TypeError(`'${init.method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethods.indexOf(method.toUpperCase()) !== -1) {\n throw TypeError(`'${init.method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethod(init.method)\n\n // 4. Set request\u2019s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this\u2019s request to request.\n this[kState] = request\n\n // 28. Set this\u2019s signal to a new AbortSignal object with this\u2019s relevant\n // Realm.\n // TODO: could this be simplified with AbortSignal.any\n // (https://dom.spec.whatwg.org/#dom-abortsignal-any)\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this\u2019s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n // Keep a strong ref to ac while request object\n // is alive. This is needed to prevent AbortController\n // from being prematurely garbage collected.\n // See, https://github.com/nodejs/undici/issues/1926.\n this[kAbortController] = ac\n\n const acRef = new WeakRef(ac)\n const abort = function () {\n const ac = acRef.deref()\n if (ac !== undefined) {\n ac.abort(this.reason)\n }\n }\n\n // Third-party AbortControllers may not work with these.\n // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n try {\n // If the max amount of listeners is equal to the default, increase it\n // This is only available in node >= v19.9.0\n if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n setMaxListeners(100, signal)\n } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) {\n setMaxListeners(100, signal)\n }\n } catch {}\n\n util.addAbortListener(signal, abort)\n requestFinalizer.register(ac, { signal, abort })\n }\n }\n\n // 30. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is request\u2019s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers()\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this\u2019s request\u2019s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this\u2019s request\u2019s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethods.includes(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this\u2019s headers\u2019s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (Object.keys(init).length !== 0) {\n // 1. Let headers be a copy of this\u2019s headers and its associated header\n // list.\n let headers = new Headers(this[kHeaders])\n\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n if (init.headers !== undefined) {\n headers = init.headers\n }\n\n // 3. Empty this\u2019s headers\u2019s header list.\n this[kHeaders][kHeadersList].clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header\u2019s name/header\u2019s value to this\u2019s headers.\n if (headers.constructor.name === 'Headers') {\n for (const [key, val] of headers) {\n this[kHeaders].append(key, val)\n }\n } else {\n // 5. Otherwise, fill this\u2019s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input\u2019s request\u2019s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request\u2019s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n (init.body != null || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request\u2019s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this\u2019s headers\u2019s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this\u2019s headers.\n if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody\u2019s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If initBody is non-null and init[\"duplex\"] does not exist,\n // then throw a TypeError.\n if (initBody != null && init.duplex == null) {\n throw new TypeError('RequestInit: duplex option is required when sending a body.')\n }\n\n // 2. If this\u2019s request\u2019s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 3. Set this\u2019s request\u2019s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this\u2019s request\u2019s body to finalBody.\n this[kState].body = finalBody\n }\n\n // Returns request\u2019s HTTP method, which is \"GET\" by default.\n get method () {\n webidl.brandCheck(this, Request)\n\n // The method getter steps are to return this\u2019s request\u2019s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n webidl.brandCheck(this, Request)\n\n // The url getter steps are to return this\u2019s request\u2019s URL, serialized.\n return URLSerializer(this[kState].url)\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n webidl.brandCheck(this, Request)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n webidl.brandCheck(this, Request)\n\n // The destination getter are to return this\u2019s request\u2019s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global\u2019s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n webidl.brandCheck(this, Request)\n\n // 1. If this\u2019s request\u2019s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this\u2019s request\u2019s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this\u2019s request\u2019s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request\u2019s\n // referrer.\n get referrerPolicy () {\n webidl.brandCheck(this, Request)\n\n // The referrerPolicy getter steps are to return this\u2019s request\u2019s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n webidl.brandCheck(this, Request)\n\n // The mode getter steps are to return this\u2019s request\u2019s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this\u2019s request\u2019s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser\u2019s cache when fetching.\n get cache () {\n webidl.brandCheck(this, Request)\n\n // The cache getter steps are to return this\u2019s request\u2019s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n webidl.brandCheck(this, Request)\n\n // The redirect getter steps are to return this\u2019s request\u2019s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request\u2019s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n webidl.brandCheck(this, Request)\n\n // The integrity getter steps are to return this\u2019s request\u2019s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n webidl.brandCheck(this, Request)\n\n // The keepalive getter steps are to return this\u2019s request\u2019s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isReloadNavigation getter steps are to return true if this\u2019s\n // request\u2019s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isHistoryNavigation getter steps are to return true if this\u2019s request\u2019s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n webidl.brandCheck(this, Request)\n\n // The signal getter steps are to return this\u2019s signal.\n return this[kSignal]\n }\n\n get body () {\n webidl.brandCheck(this, Request)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Request)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n get duplex () {\n webidl.brandCheck(this, Request)\n\n return 'half'\n }\n\n // Returns a clone of request.\n clone () {\n webidl.brandCheck(this, Request)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this\u2019s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedRequestObject = new Request(kInit)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers()\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject\u2019s signal follow this\u2019s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n util.addAbortListener(\n this.signal,\n () => {\n ac.abort(this.signal.reason)\n }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request\u2019s body is non-null, set newRequest\u2019s body to the\n // result of cloning request\u2019s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty,\n duplex: kEnumerableProperty,\n destination: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n isHistoryNavigation: kEnumerableProperty,\n isReloadNavigation: kEnumerableProperty,\n keepalive: kEnumerableProperty,\n integrity: kEnumerableProperty,\n cache: kEnumerableProperty,\n credentials: kEnumerableProperty,\n attribute: kEnumerableProperty,\n referrerPolicy: kEnumerableProperty,\n referrer: kEnumerableProperty,\n mode: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Request',\n configurable: true\n }\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: referrerPolicy\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: requestMode\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: requestCredentials\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: requestCache\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: requestRedirect\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n },\n {\n key: 'duplex',\n converter: webidl.converters.DOMString,\n allowedValues: requestDuplex\n }\n])\n\nmodule.exports = { Request, makeRequest }\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody,\n readableStreamClose,\n isomorphicEncode,\n urlIsLocal,\n urlIsHttpHttpsScheme,\n urlHasHttpsScheme\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody } = require('./body')\nconst {\n redirectStatus,\n nullBodyStatus,\n safeMethods,\n requestBodyHeader,\n subresource,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\nconst { getGlobalDispatcher } = require('../global')\nconst { webidl } = require('./webidl')\nconst { STATUS_CODES } = require('http')\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream = globalThis.ReadableStream\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n // 2 terminated listeners get added per request,\n // but only 1 gets removed. If there are 20 redirects,\n // 21 listeners will be added.\n // See https://github.com/nodejs/undici/issues/1711\n // TODO (fix): Find and fix root cause for leaked listener.\n this.setMaxListeners(21)\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n // https://fetch.spec.whatwg.org/#fetch-controller-abort\n abort (error) {\n if (this.state !== 'ongoing') {\n return\n }\n\n // 1. Set controller\u2019s state to \"aborted\".\n this.state = 'aborted'\n\n // 2. Let fallbackError be an \"AbortError\" DOMException.\n // 3. Set error to fallbackError if it is not given.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 4. Let serializedError be StructuredSerialize(error).\n // If that threw an exception, catch it, and let\n // serializedError be StructuredSerialize(fallbackError).\n\n // 5. Set controller\u2019s serialized abort reason to serializedError.\n this.serializedAbortReason = error\n\n this.connection?.destroy(error)\n this.emit('terminated', error)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nasync function fetch (input, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' })\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject\u2019s request.\n const request = requestObject[kState]\n\n // 4. If requestObject\u2019s signal\u2019s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort the fetch() call with p, request, null, and\n // requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, null, requestObject.signal.reason)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request\u2019s client\u2019s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request\u2019s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this\u2019s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject\u2019s signal:\n addAbortListener(\n requestObject.signal,\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Assert: controller is non-null.\n assert(controller != null)\n\n // 3. Abort controller with requestObject\u2019s signal\u2019s abort reason.\n controller.abort(requestObject.signal.reason)\n\n // 4. Abort the fetch() call with p, request, responseObject,\n // and requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, responseObject, requestObject.signal.reason)\n }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return\n }\n\n // 2. If response\u2019s aborted flag is set, then:\n if (response.aborted) {\n // 1. Let deserializedError be the result of deserialize a serialized\n // abort reason given controller\u2019s serialized abort reason and\n // relevantRealm.\n\n // 2. Abort the fetch() call with p, request, responseObject, and\n // deserializedError.\n\n abortFetch(p, request, responseObject, controller.serializedAbortReason)\n return\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response\u2019s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response\u2019s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response\u2019s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response\u2019s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL\u2019s scheme is not an HTTP(S) scheme, then return.\n if (!urlIsHttpHttpsScheme(originalURL)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response\u2019s timing allow passed flag is not set, then:\n if (!timingInfo.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo\u2019s end time to the coarsened shared current time\n // given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability.\n // TODO: given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability?\n timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) {\n performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject, error) {\n // Note: AbortSignal.reason was added in node v17.2.0\n // which would give us an undefined error to reject with.\n // Remove this once node v16 is no longer supported.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 1. Reject promise with error.\n p.reject(error)\n\n // 2. If request\u2019s body is not null and is readable, then cancel request\u2019s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 3. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 4. Let response be responseObject\u2019s response.\n const response = responseObject[kState]\n\n // 5. If response\u2019s body is not null and is readable, then error response\u2019s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request\u2019s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request\u2019s client\u2019s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request\u2019s client\u2019s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request\u2019s body is a byte sequence, then set request\u2019s body to\n // request\u2019s body as a body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request\u2019s window is \"client\", then set request\u2019s window to request\u2019s\n // client, if request\u2019s client\u2019s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request\u2019s origin is \"client\", then set request\u2019s origin to request\u2019s\n // client\u2019s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request\u2019s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request\u2019s client is non-null, then set request\u2019s policy\n // container to a clone of request\u2019s client\u2019s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request\u2019s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request\u2019s header list does not contain `Accept`, then:\n if (!request.headersList.contains('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request\u2019s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request\u2019s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request\u2019s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request\u2019s header list.\n if (!request.headersList.contains('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request\u2019s priority is null, then use request\u2019s initiator and\n // destination appropriately in setting request\u2019s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresource.includes(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request\u2019s local-URLs-only flag is set and request\u2019s current URL is\n // not local, then set response to a network error.\n if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request\u2019s referrer policy is the empty string, then set request\u2019s\n // referrer policy to request\u2019s policy container\u2019s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request\u2019s referrer is not \"no-referrer\", then set request\u2019s\n // referrer to the result of invoking determine request\u2019s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request\u2019s current URL\u2019s scheme to \"https\" if all of the following\n // conditions are true:\n // - request\u2019s current URL\u2019s scheme is \"http\"\n // - request\u2019s current URL\u2019s host is a domain\n // - Matching request\u2019s current URL\u2019s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request\u2019s current URL\u2019s origin is same origin with request\u2019s origin,\n // and request\u2019s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request\u2019s current URL\u2019s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request\u2019s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request\u2019s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request\u2019s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request\u2019s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request\u2019s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s current URL\u2019s scheme is not an HTTP(S) scheme\n if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request\u2019s use-CORS-preflight flag is set\n // - request\u2019s unsafe-request flag is set and either request\u2019s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request\u2019s header list is not empty\n // 1. Set request\u2019s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request\u2019s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request\u2019s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response\u2019s header list.\n // TODO\n // 2. If request\u2019s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response\u2019s CORS-exposed header-name list to\n // all unique header names in response\u2019s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response\u2019s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response\u2019s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse\u2019s URL list is empty, then set it to a clone of\n // request\u2019s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request\u2019s timing allow failed flag is unset, then set\n // internalResponse\u2019s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response\u2019s type is \"opaque\", internalResponse\u2019s status is 206,\n // internalResponse\u2019s range-requested flag is set, and request\u2019s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.contains('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request\u2019s method is\n // `HEAD` or `CONNECT`, or internalResponse\u2019s status is a null body status,\n // set internalResponse\u2019s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request\u2019s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request\u2019s response tainting is \"opaque\", or response\u2019s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request\u2019s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response\u2019s body to bytes as a body.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response\u2019s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nasync function schemeFetch (fetchParams) {\n // Note: since the connection is destroyed on redirect, which sets fetchParams to a\n // cancelled state, we do not want this condition to trigger *unless* there have been\n // no redirects. See https://github.com/nodejs/undici/issues/1776\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Let request be fetchParams\u2019s request.\n const { request } = fetchParams\n\n const { protocol: scheme } = requestCurrentURL(request)\n\n // 3. Switch on request\u2019s current URL\u2019s scheme and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request\u2019s current URL\u2019s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is \u00AB (`Content-Type`, `text/html;charset=utf-8`) \u00BB,\n // and body is the empty byte sequence as a body.\n\n // Otherwise, return a network error.\n return makeNetworkError('about scheme is not supported')\n }\n case 'blob:': {\n if (!resolveObjectURL) {\n resolveObjectURL = require('buffer').resolveObjectURL\n }\n\n // 1. Let blobURLEntry be request\u2019s current URL\u2019s blob URL entry.\n const blobURLEntry = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (blobURLEntry.search.length !== 0) {\n return makeNetworkError('NetworkError when attempting to fetch resource.')\n }\n\n const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString())\n\n // 2. If request\u2019s method is not `GET`, blobURLEntry is null, or blobURLEntry\u2019s\n // object is not a Blob object, then return a network error.\n if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n return makeNetworkError('invalid method')\n }\n\n // 3. Let bodyWithType be the result of safely extracting blobURLEntry\u2019s object.\n const bodyWithType = safelyExtractBody(blobURLEntryObject)\n\n // 4. Let body be bodyWithType\u2019s body.\n const body = bodyWithType[0]\n\n // 5. Let length be body\u2019s length, serialized and isomorphic encoded.\n const length = isomorphicEncode(`${body.length}`)\n\n // 6. Let type be bodyWithType\u2019s type if it is non-null; otherwise the empty byte sequence.\n const type = bodyWithType[1] ?? ''\n\n // 7. Return a new response whose status message is `OK`, header list is\n // \u00AB (`Content-Length`, length), (`Content-Type`, type) \u00BB, and body is body.\n const response = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-length', { name: 'Content-Length', value: length }],\n ['content-type', { name: 'Content-Type', value: type }]\n ]\n })\n\n response.body = body\n\n return response\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request\u2019s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return makeNetworkError('failed to fetch the data URL')\n }\n\n // 3. Let mimeType be dataURLStruct\u2019s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is \u00AB (`Content-Type`, mimeType) \u00BB,\n // and body is dataURLStruct\u2019s body as a body.\n return makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', { name: 'Content-Type', value: mimeType }]\n ],\n body: safelyExtractBody(dataURLStruct.body)[0]\n })\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return makeNetworkError('not implemented... yet...')\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return await httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return makeNetworkError('unknown scheme')\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams\u2019s process response done is not null, then queue a fetch\n // task to run fetchParams\u2019s process response done given response, with\n // fetchParams\u2019s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nasync function fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response\u2019s URL list to \u00AB fetchParams\u2019s request\u2019s URL list[0] \u00BB.\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response\u2019s timing info to the result of creating an opaque timing\n // info for fetchParams\u2019s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // If fetchParams\u2019s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams\u2019s process response\n // end-of-body given response with fetchParams\u2019s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams\u2019s process response is non-null, then queue a fetch task\n // to run fetchParams\u2019s process response given response, with fetchParams\u2019s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response\u2019s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n }, {\n size () {\n return 1\n }\n }, {\n size () {\n return 1\n }\n })\n\n // 4. Set response\u2019s body to the result of piping response\u2019s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams\u2019s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams\u2019s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams\u2019s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response\u2019s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams\u2019s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response\u2019s body given processBody, processBodyError,\n // and fetchParams\u2019s task destination.\n await fullyReadBody(response.body, processBody, processBodyError)\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request\u2019s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request\u2019s redirect mode is \"follow\", then set request\u2019s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request\u2019s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request\u2019s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request\u2019s response tainting or response\u2019s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request\u2019s origin, request\u2019s client, request\u2019s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse\u2019s status is a redirect status, then:\n if (redirectStatus.includes(actualResponse.status)) {\n // 1. If actualResponse\u2019s status is not 303, request\u2019s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request\u2019s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nasync function httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response\u2019s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse\u2019s location URL given request\u2019s current\n // URL\u2019s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return makeNetworkError(err)\n }\n\n // 6. If locationURL\u2019s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!urlIsHttpHttpsScheme(locationURL)) {\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // 7. If request\u2019s redirect count is 20, then return a network error.\n if (request.redirectCount === 20) {\n return makeNetworkError('redirect count exceeded')\n }\n\n // 8. Increase request\u2019s redirect count by 1.\n request.redirectCount += 1\n\n // 9. If request\u2019s mode is \"cors\", locationURL includes credentials, and\n // request\u2019s origin is not same origin with locationURL\u2019s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return makeNetworkError('cross origin not allowed for request mode \"cors\"')\n }\n\n // 10. If request\u2019s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n )\n }\n\n // 11. If actualResponse\u2019s status is not 303, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return makeNetworkError()\n }\n\n // 12. If one of the following is true\n // - actualResponse\u2019s status is 301 or 302 and request\u2019s method is `POST`\n // - actualResponse\u2019s status is 303 and request\u2019s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !['GET', 'HEAD'].includes(request.method))\n ) {\n // then:\n // 1. Set request\u2019s method to `GET` and request\u2019s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request\u2019s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request\u2019s current URL\u2019s origin is not same origin with locationURL\u2019s\n // origin, then for each headerName of CORS non-wildcard request-header name,\n // delete headerName from request\u2019s header list.\n if (!sameOrigin(requestCurrentURL(request), locationURL)) {\n // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n request.headersList.delete('authorization')\n }\n\n // 14. If request\u2019s body is non-null, then set request\u2019s body to the first return\n // value of safely extracting request\u2019s body\u2019s source.\n if (request.body != null) {\n assert(request.body.source != null)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 15. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 16. Set timingInfo\u2019s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 17. If timingInfo\u2019s redirect start time is 0, then set timingInfo\u2019s\n // redirect start time to timingInfo\u2019s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 18. Append locationURL to request\u2019s URL list.\n request.urlList.push(locationURL)\n\n // 19. Invoke set request\u2019s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 20. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request\u2019s window is \"no-window\" and request\u2019s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams\u2019s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest\u2019s body\u2019s length, if httpRequest\u2019s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest\u2019s body is null and httpRequest\u2019s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest\u2019s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest\u2019s header list.\n\n // 10. If contentLength is non-null and httpRequest\u2019s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest\u2019s referrer is a URL, then append\n // `Referer`/httpRequest\u2019s referrer, serialized and isomorphic encoded,\n // to httpRequest\u2019s header list.\n if (httpRequest.referrer instanceof URL) {\n httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href))\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest\u2019s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('user-agent')) {\n httpRequest.headersList.append('user-agent', 'undici')\n }\n\n // 15. If httpRequest\u2019s cache mode is \"default\" and httpRequest\u2019s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest\u2019s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.contains('if-modified-since') ||\n httpRequest.headersList.contains('if-none-match') ||\n httpRequest.headersList.contains('if-unmodified-since') ||\n httpRequest.headersList.contains('if-match') ||\n httpRequest.headersList.contains('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest\u2019s cache mode is \"no-cache\", httpRequest\u2019s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest\u2019s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest\u2019s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.contains('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest\u2019s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest\u2019s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest\u2019s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest\u2019s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest\u2019s header list.\n if (httpRequest.headersList.contains('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest\u2019s header list per HTTP. Do not append a given\n // header if httpRequest\u2019s header list contains that header\u2019s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.contains('accept-encoding')) {\n if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest\u2019s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there\u2019s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest\u2019s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest\u2019s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest\u2019s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest\u2019s method is unsafe and forwardResponse\u2019s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethods.includes(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse\u2019s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response\u2019s URL list to a clone of httpRequest\u2019s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest\u2019s header list contains `Range`, then set response\u2019s\n // range-requested flag.\n if (httpRequest.headersList.contains('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response\u2019s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response\u2019s status is 401, httpRequest\u2019s response tainting is not\n // \"cors\", includeCredentials is true, and request\u2019s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response\u2019s status is 407, then:\n if (response.status === 407) {\n // 1. If request\u2019s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request\u2019s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response\u2019s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request\u2019s body is null, or request\u2019s body is non-null and request\u2019s body\u2019s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request\u2019s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request\u2019s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request\u2019s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request\u2019s current URL\u2019s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo\u2019s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection\u2019s\n // timing info, timingInfo\u2019s post-redirect start time, and fetchParams\u2019s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request\u2019s header list.\n\n // 4. Set timingInfo\u2019s final network-request start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request\u2019s body is non-null, and request\u2019s body\u2019s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request\u2019s body in that buffer. If the user agent reads from\n // request\u2019s body beyond that buffer\u2019s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo\u2019s final network-response start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated capability,\n // immediately after the user agent\u2019s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo\u2019s final network-response start time above.\n\n // - If request\u2019s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request\u2019s window is an environment settings object, make the\n // dialog available in request\u2019s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request\u2019s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams\u2019s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams\u2019s process request\n // end-of-body and fetchParams\u2019s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams\u2019s process request body is non-null, then run\n // fetchParams\u2019s process request body given bytes\u2019s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams\u2019s process request end-of-body is non-null,\n // then run fetchParams\u2019s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams\u2019s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request\u2019s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams\u2019s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n // socket is only provided for websockets\n const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody })\n\n if (socket) {\n response = makeResponse({ status, statusText, headersList, socket })\n } else {\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n }\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams\u2019s\n // controller with reason, given reason.\n const cancelAlgorithm = (reason) => {\n fetchParams.controller.abort(reason)\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n {\n highWaterMark: 0,\n size () {\n return 1\n }\n }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response\u2019s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request\u2019s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response\u2019s header list, if any, and request\u2019s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n let isFailure\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n\n // err may be propagated from the result of calling readablestream.cancel,\n // which might not be an error. https://github.com/nodejs/undici/issues/2009\n isFailure = true\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response\u2019s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n readableStreamClose(fetchParams.controller.controller)\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo\u2019s decoded body size by bytes\u2019s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams\u2019s controller.\n if (isFailure) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn\u2019t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response\u2019s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, then error stream with the result of\n // deserialize a serialized abort reason given fetchParams\u2019s\n // controller\u2019s serialized abort reason and an\n // implementation-defined realm.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n fetchParams.controller.serializedAbortReason\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n /** @type {import('../..').Agent} */\n const agent = fetchParams.controller.dispatcher\n\n return new Promise((resolve, reject) => agent.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && request.body.source : body,\n headers: request.headersList.entries,\n maxRedirections: 0,\n upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse()\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers.append(key, val)\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatus.includes(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n if (coding === 'x-gzip' || coding === 'gzip') {\n decoders.push(zlib.createGunzip({\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n }))\n } else if (coding === 'deflate') {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response\u2019s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response\u2019s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo\u2019s encoded body size by bytes\u2019s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n },\n\n onUpgrade (status, headersList, socket) {\n if (status !== 101) {\n return\n }\n\n const headers = new Headers()\n\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n headers.append(key, val)\n }\n\n resolve({\n status,\n statusText: STATUS_CODES[status],\n headersList: headers[kHeadersList],\n socket\n })\n\n return true\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n", "'use strict'\n\nmodule.exports = {\n kState: Symbol('FileReader state'),\n kResult: Symbol('FileReader result'),\n kError: Symbol('FileReader error'),\n kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'),\n kEvents: Symbol('FileReader events'),\n kAborted: Symbol('FileReader aborted')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\n\nconst kState = Symbol('ProgressEvent state')\n\n/**\n * @see https://xhr.spec.whatwg.org/#progressevent\n */\nclass ProgressEvent extends Event {\n constructor (type, eventInitDict = {}) {\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {})\n\n super(type, eventInitDict)\n\n this[kState] = {\n lengthComputable: eventInitDict.lengthComputable,\n loaded: eventInitDict.loaded,\n total: eventInitDict.total\n }\n }\n\n get lengthComputable () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].lengthComputable\n }\n\n get loaded () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].loaded\n }\n\n get total () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].total\n }\n}\n\nwebidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n {\n key: 'lengthComputable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'loaded',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'total',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n])\n\nmodule.exports = {\n ProgressEvent\n}\n", "'use strict'\n\n/**\n * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n * @param {string|undefined} label\n */\nfunction getEncoding (label) {\n if (!label) {\n return 'failure'\n }\n\n // 1. Remove any leading and trailing ASCII whitespace from label.\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, then return the\n // corresponding encoding; otherwise return failure.\n switch (label.trim().toLowerCase()) {\n case 'unicode-1-1-utf-8':\n case 'unicode11utf8':\n case 'unicode20utf8':\n case 'utf-8':\n case 'utf8':\n case 'x-unicode20utf8':\n return 'UTF-8'\n case '866':\n case 'cp866':\n case 'csibm866':\n case 'ibm866':\n return 'IBM866'\n case 'csisolatin2':\n case 'iso-8859-2':\n case 'iso-ir-101':\n case 'iso8859-2':\n case 'iso88592':\n case 'iso_8859-2':\n case 'iso_8859-2:1987':\n case 'l2':\n case 'latin2':\n return 'ISO-8859-2'\n case 'csisolatin3':\n case 'iso-8859-3':\n case 'iso-ir-109':\n case 'iso8859-3':\n case 'iso88593':\n case 'iso_8859-3':\n case 'iso_8859-3:1988':\n case 'l3':\n case 'latin3':\n return 'ISO-8859-3'\n case 'csisolatin4':\n case 'iso-8859-4':\n case 'iso-ir-110':\n case 'iso8859-4':\n case 'iso88594':\n case 'iso_8859-4':\n case 'iso_8859-4:1988':\n case 'l4':\n case 'latin4':\n return 'ISO-8859-4'\n case 'csisolatincyrillic':\n case 'cyrillic':\n case 'iso-8859-5':\n case 'iso-ir-144':\n case 'iso8859-5':\n case 'iso88595':\n case 'iso_8859-5':\n case 'iso_8859-5:1988':\n return 'ISO-8859-5'\n case 'arabic':\n case 'asmo-708':\n case 'csiso88596e':\n case 'csiso88596i':\n case 'csisolatinarabic':\n case 'ecma-114':\n case 'iso-8859-6':\n case 'iso-8859-6-e':\n case 'iso-8859-6-i':\n case 'iso-ir-127':\n case 'iso8859-6':\n case 'iso88596':\n case 'iso_8859-6':\n case 'iso_8859-6:1987':\n return 'ISO-8859-6'\n case 'csisolatingreek':\n case 'ecma-118':\n case 'elot_928':\n case 'greek':\n case 'greek8':\n case 'iso-8859-7':\n case 'iso-ir-126':\n case 'iso8859-7':\n case 'iso88597':\n case 'iso_8859-7':\n case 'iso_8859-7:1987':\n case 'sun_eu_greek':\n return 'ISO-8859-7'\n case 'csiso88598e':\n case 'csisolatinhebrew':\n case 'hebrew':\n case 'iso-8859-8':\n case 'iso-8859-8-e':\n case 'iso-ir-138':\n case 'iso8859-8':\n case 'iso88598':\n case 'iso_8859-8':\n case 'iso_8859-8:1988':\n case 'visual':\n return 'ISO-8859-8'\n case 'csiso88598i':\n case 'iso-8859-8-i':\n case 'logical':\n return 'ISO-8859-8-I'\n case 'csisolatin6':\n case 'iso-8859-10':\n case 'iso-ir-157':\n case 'iso8859-10':\n case 'iso885910':\n case 'l6':\n case 'latin6':\n return 'ISO-8859-10'\n case 'iso-8859-13':\n case 'iso8859-13':\n case 'iso885913':\n return 'ISO-8859-13'\n case 'iso-8859-14':\n case 'iso8859-14':\n case 'iso885914':\n return 'ISO-8859-14'\n case 'csisolatin9':\n case 'iso-8859-15':\n case 'iso8859-15':\n case 'iso885915':\n case 'iso_8859-15':\n case 'l9':\n return 'ISO-8859-15'\n case 'iso-8859-16':\n return 'ISO-8859-16'\n case 'cskoi8r':\n case 'koi':\n case 'koi8':\n case 'koi8-r':\n case 'koi8_r':\n return 'KOI8-R'\n case 'koi8-ru':\n case 'koi8-u':\n return 'KOI8-U'\n case 'csmacintosh':\n case 'mac':\n case 'macintosh':\n case 'x-mac-roman':\n return 'macintosh'\n case 'iso-8859-11':\n case 'iso8859-11':\n case 'iso885911':\n case 'tis-620':\n case 'windows-874':\n return 'windows-874'\n case 'cp1250':\n case 'windows-1250':\n case 'x-cp1250':\n return 'windows-1250'\n case 'cp1251':\n case 'windows-1251':\n case 'x-cp1251':\n return 'windows-1251'\n case 'ansi_x3.4-1968':\n case 'ascii':\n case 'cp1252':\n case 'cp819':\n case 'csisolatin1':\n case 'ibm819':\n case 'iso-8859-1':\n case 'iso-ir-100':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'iso_8859-1:1987':\n case 'l1':\n case 'latin1':\n case 'us-ascii':\n case 'windows-1252':\n case 'x-cp1252':\n return 'windows-1252'\n case 'cp1253':\n case 'windows-1253':\n case 'x-cp1253':\n return 'windows-1253'\n case 'cp1254':\n case 'csisolatin5':\n case 'iso-8859-9':\n case 'iso-ir-148':\n case 'iso8859-9':\n case 'iso88599':\n case 'iso_8859-9':\n case 'iso_8859-9:1989':\n case 'l5':\n case 'latin5':\n case 'windows-1254':\n case 'x-cp1254':\n return 'windows-1254'\n case 'cp1255':\n case 'windows-1255':\n case 'x-cp1255':\n return 'windows-1255'\n case 'cp1256':\n case 'windows-1256':\n case 'x-cp1256':\n return 'windows-1256'\n case 'cp1257':\n case 'windows-1257':\n case 'x-cp1257':\n return 'windows-1257'\n case 'cp1258':\n case 'windows-1258':\n case 'x-cp1258':\n return 'windows-1258'\n case 'x-mac-cyrillic':\n case 'x-mac-ukrainian':\n return 'x-mac-cyrillic'\n case 'chinese':\n case 'csgb2312':\n case 'csiso58gb231280':\n case 'gb2312':\n case 'gb_2312':\n case 'gb_2312-80':\n case 'gbk':\n case 'iso-ir-58':\n case 'x-gbk':\n return 'GBK'\n case 'gb18030':\n return 'gb18030'\n case 'big5':\n case 'big5-hkscs':\n case 'cn-big5':\n case 'csbig5':\n case 'x-x-big5':\n return 'Big5'\n case 'cseucpkdfmtjapanese':\n case 'euc-jp':\n case 'x-euc-jp':\n return 'EUC-JP'\n case 'csiso2022jp':\n case 'iso-2022-jp':\n return 'ISO-2022-JP'\n case 'csshiftjis':\n case 'ms932':\n case 'ms_kanji':\n case 'shift-jis':\n case 'shift_jis':\n case 'sjis':\n case 'windows-31j':\n case 'x-sjis':\n return 'Shift_JIS'\n case 'cseuckr':\n case 'csksc56011987':\n case 'euc-kr':\n case 'iso-ir-149':\n case 'korean':\n case 'ks_c_5601-1987':\n case 'ks_c_5601-1989':\n case 'ksc5601':\n case 'ksc_5601':\n case 'windows-949':\n return 'EUC-KR'\n case 'csiso2022kr':\n case 'hz-gb-2312':\n case 'iso-2022-cn':\n case 'iso-2022-cn-ext':\n case 'iso-2022-kr':\n case 'replacement':\n return 'replacement'\n case 'unicodefffe':\n case 'utf-16be':\n return 'UTF-16BE'\n case 'csunicode':\n case 'iso-10646-ucs-2':\n case 'ucs-2':\n case 'unicode':\n case 'unicodefeff':\n case 'utf-16':\n case 'utf-16le':\n return 'UTF-16LE'\n case 'x-user-defined':\n return 'x-user-defined'\n default: return 'failure'\n }\n}\n\nmodule.exports = {\n getEncoding\n}\n", "'use strict'\n\nconst {\n kState,\n kError,\n kResult,\n kAborted,\n kLastProgressEventFired\n} = require('./symbols')\nconst { ProgressEvent } = require('./progressevent')\nconst { getEncoding } = require('./encoding')\nconst { DOMException } = require('../fetch/constants')\nconst { serializeAMimeType, parseMIMEType } = require('../fetch/dataURL')\nconst { types } = require('util')\nconst { StringDecoder } = require('string_decoder')\nconst { btoa } = require('buffer')\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#readOperation\n * @param {import('./filereader').FileReader} fr\n * @param {import('buffer').Blob} blob\n * @param {string} type\n * @param {string?} encodingName\n */\nfunction readOperation (fr, blob, type, encodingName) {\n // 1. If fr\u2019s state is \"loading\", throw an InvalidStateError\n // DOMException.\n if (fr[kState] === 'loading') {\n throw new DOMException('Invalid state', 'InvalidStateError')\n }\n\n // 2. Set fr\u2019s state to \"loading\".\n fr[kState] = 'loading'\n\n // 3. Set fr\u2019s result to null.\n fr[kResult] = null\n\n // 4. Set fr\u2019s error to null.\n fr[kError] = null\n\n // 5. Let stream be the result of calling get stream on blob.\n /** @type {import('stream/web').ReadableStream} */\n const stream = blob.stream()\n\n // 6. Let reader be the result of getting a reader from stream.\n const reader = stream.getReader()\n\n // 7. Let bytes be an empty byte sequence.\n /** @type {Uint8Array[]} */\n const bytes = []\n\n // 8. Let chunkPromise be the result of reading a chunk from\n // stream with reader.\n let chunkPromise = reader.read()\n\n // 9. Let isFirstChunk be true.\n let isFirstChunk = true\n\n // 10. In parallel, while true:\n // Note: \"In parallel\" just means non-blocking\n // Note 2: readOperation itself cannot be async as double\n // reading the body would then reject the promise, instead\n // of throwing an error.\n ;(async () => {\n while (!fr[kAborted]) {\n // 1. Wait for chunkPromise to be fulfilled or rejected.\n try {\n const { done, value } = await chunkPromise\n\n // 2. If chunkPromise is fulfilled, and isFirstChunk is\n // true, queue a task to fire a progress event called\n // loadstart at fr.\n if (isFirstChunk && !fr[kAborted]) {\n queueMicrotask(() => {\n fireAProgressEvent('loadstart', fr)\n })\n }\n\n // 3. Set isFirstChunk to false.\n isFirstChunk = false\n\n // 4. If chunkPromise is fulfilled with an object whose\n // done property is false and whose value property is\n // a Uint8Array object, run these steps:\n if (!done && types.isUint8Array(value)) {\n // 1. Let bs be the byte sequence represented by the\n // Uint8Array object.\n\n // 2. Append bs to bytes.\n bytes.push(value)\n\n // 3. If roughly 50ms have passed since these steps\n // were last invoked, queue a task to fire a\n // progress event called progress at fr.\n if (\n (\n fr[kLastProgressEventFired] === undefined ||\n Date.now() - fr[kLastProgressEventFired] >= 50\n ) &&\n !fr[kAborted]\n ) {\n fr[kLastProgressEventFired] = Date.now()\n queueMicrotask(() => {\n fireAProgressEvent('progress', fr)\n })\n }\n\n // 4. Set chunkPromise to the result of reading a\n // chunk from stream with reader.\n chunkPromise = reader.read()\n } else if (done) {\n // 5. Otherwise, if chunkPromise is fulfilled with an\n // object whose done property is true, queue a task\n // to run the following steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Let result be the result of package data given\n // bytes, type, blob\u2019s type, and encodingName.\n try {\n const result = packageData(bytes, type, blob.type, encodingName)\n\n // 4. Else:\n\n if (fr[kAborted]) {\n return\n }\n\n // 1. Set fr\u2019s result to result.\n fr[kResult] = result\n\n // 2. Fire a progress event called load at the fr.\n fireAProgressEvent('load', fr)\n } catch (error) {\n // 3. If package data threw an exception error:\n\n // 1. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 2. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n }\n\n // 5. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at the fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n } catch (error) {\n if (fr[kAborted]) {\n return\n }\n\n // 6. Otherwise, if chunkPromise is rejected with an\n // error error, queue a task to run the following\n // steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 3. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n\n // 4. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n }\n })()\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e The name of the event\n * @param {import('./filereader').FileReader} reader\n */\nfunction fireAProgressEvent (e, reader) {\n // The progress event e does not bubble. e.bubbles must be false\n // The progress event e is NOT cancelable. e.cancelable must be false\n const event = new ProgressEvent(e, {\n bubbles: false,\n cancelable: false\n })\n\n reader.dispatchEvent(event)\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#blob-package-data\n * @param {Uint8Array[]} bytes\n * @param {string} type\n * @param {string?} mimeType\n * @param {string?} encodingName\n */\nfunction packageData (bytes, type, mimeType, encodingName) {\n // 1. A Blob has an associated package data algorithm, given\n // bytes, a type, a optional mimeType, and a optional\n // encodingName, which switches on type and runs the\n // associated steps:\n\n switch (type) {\n case 'DataURL': {\n // 1. Return bytes as a DataURL [RFC2397] subject to\n // the considerations below:\n // * Use mimeType as part of the Data URL if it is\n // available in keeping with the Data URL\n // specification [RFC2397].\n // * If mimeType is not available return a Data URL\n // without a media-type. [RFC2397].\n\n // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n // dataurl := \"data:\" [ mediatype ] [ \";base64\" ] \",\" data\n // mediatype := [ type \"/\" subtype ] *( \";\" parameter )\n // data := *urlchar\n // parameter := attribute \"=\" value\n let dataURL = 'data:'\n\n const parsed = parseMIMEType(mimeType || 'application/octet-stream')\n\n if (parsed !== 'failure') {\n dataURL += serializeAMimeType(parsed)\n }\n\n dataURL += ';base64,'\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n dataURL += btoa(decoder.write(chunk))\n }\n\n dataURL += btoa(decoder.end())\n\n return dataURL\n }\n case 'Text': {\n // 1. Let encoding be failure\n let encoding = 'failure'\n\n // 2. If the encodingName is present, set encoding to the\n // result of getting an encoding from encodingName.\n if (encodingName) {\n encoding = getEncoding(encodingName)\n }\n\n // 3. If encoding is failure, and mimeType is present:\n if (encoding === 'failure' && mimeType) {\n // 1. Let type be the result of parse a MIME type\n // given mimeType.\n const type = parseMIMEType(mimeType)\n\n // 2. If type is not failure, set encoding to the result\n // of getting an encoding from type\u2019s parameters[\"charset\"].\n if (type !== 'failure') {\n encoding = getEncoding(type.parameters.get('charset'))\n }\n }\n\n // 4. If encoding is failure, then set encoding to UTF-8.\n if (encoding === 'failure') {\n encoding = 'UTF-8'\n }\n\n // 5. Decode bytes using fallback encoding encoding, and\n // return the result.\n return decode(bytes, encoding)\n }\n case 'ArrayBuffer': {\n // Return a new ArrayBuffer whose contents are bytes.\n const sequence = combineByteSequences(bytes)\n\n return sequence.buffer\n }\n case 'BinaryString': {\n // Return bytes as a binary string, in which every byte\n // is represented by a code unit of equal value [0..255].\n let binaryString = ''\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n binaryString += decoder.write(chunk)\n }\n\n binaryString += decoder.end()\n\n return binaryString\n }\n }\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#decode\n * @param {Uint8Array[]} ioQueue\n * @param {string} encoding\n */\nfunction decode (ioQueue, encoding) {\n const bytes = combineByteSequences(ioQueue)\n\n // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n const BOMEncoding = BOMSniffing(bytes)\n\n let slice = 0\n\n // 2. If BOMEncoding is non-null:\n if (BOMEncoding !== null) {\n // 1. Set encoding to BOMEncoding.\n encoding = BOMEncoding\n\n // 2. Read three bytes from ioQueue, if BOMEncoding is\n // UTF-8; otherwise read two bytes.\n // (Do nothing with those bytes.)\n slice = BOMEncoding === 'UTF-8' ? 3 : 2\n }\n\n // 3. Process a queue with an instance of encoding\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n\n // 4. Return output.\n\n const sliced = bytes.slice(slice)\n return new TextDecoder(encoding).decode(sliced)\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#bom-sniff\n * @param {Uint8Array} ioQueue\n */\nfunction BOMSniffing (ioQueue) {\n // 1. Let BOM be the result of peeking 3 bytes from ioQueue,\n // converted to a byte sequence.\n const [a, b, c] = ioQueue\n\n // 2. For each of the rows in the table below, starting with\n // the first one and going down, if BOM starts with the\n // bytes given in the first column, then return the\n // encoding given in the cell in the second column of that\n // row. Otherwise, return null.\n if (a === 0xEF && b === 0xBB && c === 0xBF) {\n return 'UTF-8'\n } else if (a === 0xFE && b === 0xFF) {\n return 'UTF-16BE'\n } else if (a === 0xFF && b === 0xFE) {\n return 'UTF-16LE'\n }\n\n return null\n}\n\n/**\n * @param {Uint8Array[]} sequences\n */\nfunction combineByteSequences (sequences) {\n const size = sequences.reduce((a, b) => {\n return a + b.byteLength\n }, 0)\n\n let offset = 0\n\n return sequences.reduce((a, b) => {\n a.set(b, offset)\n offset += b.byteLength\n return a\n }, new Uint8Array(size))\n}\n\nmodule.exports = {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n}\n", "'use strict'\n\nconst {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n} = require('./util')\nconst {\n kState,\n kError,\n kResult,\n kEvents,\n kAborted\n} = require('./symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass FileReader extends EventTarget {\n constructor () {\n super()\n\n this[kState] = 'empty'\n this[kResult] = null\n this[kError] = null\n this[kEvents] = {\n loadend: null,\n error: null,\n abort: null,\n load: null,\n progress: null,\n loadstart: null\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n * @param {import('buffer').Blob} blob\n */\n readAsArrayBuffer (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsArrayBuffer(blob) method, when invoked,\n // must initiate a read operation for blob with ArrayBuffer.\n readOperation(this, blob, 'ArrayBuffer')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n * @param {import('buffer').Blob} blob\n */\n readAsBinaryString (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsBinaryString(blob) method, when invoked,\n // must initiate a read operation for blob with BinaryString.\n readOperation(this, blob, 'BinaryString')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsDataText\n * @param {import('buffer').Blob} blob\n * @param {string?} encoding\n */\n readAsText (blob, encoding = undefined) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n if (encoding !== undefined) {\n encoding = webidl.converters.DOMString(encoding)\n }\n\n // The readAsText(blob, encoding) method, when invoked,\n // must initiate a read operation for blob with Text and encoding.\n readOperation(this, blob, 'Text', encoding)\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n * @param {import('buffer').Blob} blob\n */\n readAsDataURL (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsDataURL(blob) method, when invoked, must\n // initiate a read operation for blob with DataURL.\n readOperation(this, blob, 'DataURL')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-abort\n */\n abort () {\n // 1. If this's state is \"empty\" or if this's state is\n // \"done\" set this's result to null and terminate\n // this algorithm.\n if (this[kState] === 'empty' || this[kState] === 'done') {\n this[kResult] = null\n return\n }\n\n // 2. If this's state is \"loading\" set this's state to\n // \"done\" and set this's result to null.\n if (this[kState] === 'loading') {\n this[kState] = 'done'\n this[kResult] = null\n }\n\n // 3. If there are any tasks from this on the file reading\n // task source in an affiliated task queue, then remove\n // those tasks from that task queue.\n this[kAborted] = true\n\n // 4. Terminate the algorithm for the read method being processed.\n // TODO\n\n // 5. Fire a progress event called abort at this.\n fireAProgressEvent('abort', this)\n\n // 6. If this's state is not \"loading\", fire a progress\n // event called loadend at this.\n if (this[kState] !== 'loading') {\n fireAProgressEvent('loadend', this)\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n */\n get readyState () {\n webidl.brandCheck(this, FileReader)\n\n switch (this[kState]) {\n case 'empty': return this.EMPTY\n case 'loading': return this.LOADING\n case 'done': return this.DONE\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n */\n get result () {\n webidl.brandCheck(this, FileReader)\n\n // The result attribute\u2019s getter, when invoked, must return\n // this's result.\n return this[kResult]\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n */\n get error () {\n webidl.brandCheck(this, FileReader)\n\n // The error attribute\u2019s getter, when invoked, must return\n // this's error.\n return this[kError]\n }\n\n get onloadend () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadend\n }\n\n set onloadend (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadend) {\n this.removeEventListener('loadend', this[kEvents].loadend)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadend = fn\n this.addEventListener('loadend', fn)\n } else {\n this[kEvents].loadend = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].error) {\n this.removeEventListener('error', this[kEvents].error)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].error = fn\n this.addEventListener('error', fn)\n } else {\n this[kEvents].error = null\n }\n }\n\n get onloadstart () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadstart\n }\n\n set onloadstart (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadstart) {\n this.removeEventListener('loadstart', this[kEvents].loadstart)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadstart = fn\n this.addEventListener('loadstart', fn)\n } else {\n this[kEvents].loadstart = null\n }\n }\n\n get onprogress () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].progress\n }\n\n set onprogress (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].progress) {\n this.removeEventListener('progress', this[kEvents].progress)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].progress = fn\n this.addEventListener('progress', fn)\n } else {\n this[kEvents].progress = null\n }\n }\n\n get onload () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].load\n }\n\n set onload (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].load) {\n this.removeEventListener('load', this[kEvents].load)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].load = fn\n this.addEventListener('load', fn)\n } else {\n this[kEvents].load = null\n }\n }\n\n get onabort () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].abort\n }\n\n set onabort (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].abort) {\n this.removeEventListener('abort', this[kEvents].abort)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].abort = fn\n this.addEventListener('abort', fn)\n } else {\n this[kEvents].abort = null\n }\n }\n}\n\n// https://w3c.github.io/FileAPI/#dom-filereader-empty\nFileReader.EMPTY = FileReader.prototype.EMPTY = 0\n// https://w3c.github.io/FileAPI/#dom-filereader-loading\nFileReader.LOADING = FileReader.prototype.LOADING = 1\n// https://w3c.github.io/FileAPI/#dom-filereader-done\nFileReader.DONE = FileReader.prototype.DONE = 2\n\nObject.defineProperties(FileReader.prototype, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors,\n readAsArrayBuffer: kEnumerableProperty,\n readAsBinaryString: kEnumerableProperty,\n readAsText: kEnumerableProperty,\n readAsDataURL: kEnumerableProperty,\n abort: kEnumerableProperty,\n readyState: kEnumerableProperty,\n result: kEnumerableProperty,\n error: kEnumerableProperty,\n onloadstart: kEnumerableProperty,\n onprogress: kEnumerableProperty,\n onload: kEnumerableProperty,\n onabort: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onloadend: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'FileReader',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(FileReader, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors\n})\n\nmodule.exports = {\n FileReader\n}\n", "'use strict'\n\nmodule.exports = {\n kConstruct: Symbol('constructable')\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { isValidHeaderName } = require('../fetch/util')\n\n/**\n * @see https://url.spec.whatwg.org/#concept-url-equals\n * @param {URL} A\n * @param {URL} B\n * @param {boolean | undefined} excludeFragment\n * @returns {boolean}\n */\nfunction urlEquals (A, B, excludeFragment = false) {\n const serializedA = URLSerializer(A, excludeFragment)\n\n const serializedB = URLSerializer(B, excludeFragment)\n\n return serializedA === serializedB\n}\n\n/**\n * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262\n * @param {string} header\n */\nfunction fieldValues (header) {\n assert(header !== null)\n\n const values = []\n\n for (let value of header.split(',')) {\n value = value.trim()\n\n if (!value.length) {\n continue\n } else if (!isValidHeaderName(value)) {\n continue\n }\n\n values.push(value)\n }\n\n return values\n}\n\nmodule.exports = {\n urlEquals,\n fieldValues\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { urlEquals, fieldValues: getFieldValues } = require('./util')\nconst { kEnumerableProperty, isDisturbed } = require('../core/util')\nconst { kHeadersList } = require('../core/symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { Response, cloneResponse } = require('../fetch/response')\nconst { Request } = require('../fetch/request')\nconst { kState, kHeaders, kGuard, kRealm } = require('../fetch/symbols')\nconst { fetching } = require('../fetch/index')\nconst { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')\nconst assert = require('assert')\nconst { getGlobalDispatcher } = require('../global')\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation\n * @typedef {Object} CacheBatchOperation\n * @property {'delete' | 'put'} type\n * @property {any} request\n * @property {any} response\n * @property {import('../../types/cache').CacheQueryOptions} options\n */\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list\n * @typedef {[any, any][]} requestResponseList\n */\n\nclass Cache {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list\n * @type {requestResponseList}\n */\n #relevantRequestResponseList\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n\n this.#relevantRequestResponseList = arguments[1]\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n const p = await this.matchAll(request, options)\n\n if (p.length === 0) {\n return\n }\n\n return p[0]\n }\n\n async matchAll (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') {\n // 2.2.1\n r = new Request(request)[kState]\n }\n }\n\n // 5.\n // 5.1\n const responses = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n responses.push(requestResponse[1])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n responses.push(requestResponse[1])\n }\n }\n\n // 5.4\n // We don't implement CORs so we don't need to loop over the responses, yay!\n\n // 5.5.1\n const responseList = []\n\n // 5.5.2\n for (const response of responses) {\n // 5.5.2.1\n const responseObject = new Response(response.body?.source ?? null)\n const body = responseObject[kState].body\n responseObject[kState] = response\n responseObject[kState].body = body\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n\n responseList.push(responseObject)\n }\n\n // 6.\n return Object.freeze(responseList)\n }\n\n async add (request) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })\n\n request = webidl.converters.RequestInfo(request)\n\n // 1.\n const requests = [request]\n\n // 2.\n const responseArrayPromise = this.addAll(requests)\n\n // 3.\n return await responseArrayPromise\n }\n\n async addAll (requests) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })\n\n requests = webidl.converters['sequence<RequestInfo>'](requests)\n\n // 1.\n const responsePromises = []\n\n // 2.\n const requestList = []\n\n // 3.\n for (const request of requests) {\n if (typeof request === 'string') {\n continue\n }\n\n // 3.1\n const r = request[kState]\n\n // 3.2\n if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme when method is not GET.'\n })\n }\n }\n\n // 4.\n /** @type {ReturnType<typeof fetching>[]} */\n const fetchControllers = []\n\n // 5.\n for (const request of requests) {\n // 5.1\n const r = new Request(request)[kState]\n\n // 5.2\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme.'\n })\n }\n\n // 5.4\n r.initiator = 'fetch'\n r.destination = 'subresource'\n\n // 5.5\n requestList.push(r)\n\n // 5.6\n const responsePromise = createDeferredPromise()\n\n // 5.7\n fetchControllers.push(fetching({\n request: r,\n dispatcher: getGlobalDispatcher(),\n processResponse (response) {\n // 1.\n if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Received an invalid status code or the request failed.'\n }))\n } else if (response.headersList.contains('vary')) { // 2.\n // 2.1\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n // 2.2\n for (const fieldValue of fieldValues) {\n // 2.2.1\n if (fieldValue === '*') {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'invalid vary field value'\n }))\n\n for (const controller of fetchControllers) {\n controller.abort()\n }\n\n return\n }\n }\n }\n },\n processResponseEndOfBody (response) {\n // 1.\n if (response.aborted) {\n responsePromise.reject(new DOMException('aborted', 'AbortError'))\n return\n }\n\n // 2.\n responsePromise.resolve(response)\n }\n }))\n\n // 5.8\n responsePromises.push(responsePromise.promise)\n }\n\n // 6.\n const p = Promise.all(responsePromises)\n\n // 7.\n const responses = await p\n\n // 7.1\n const operations = []\n\n // 7.2\n let index = 0\n\n // 7.3\n for (const response of responses) {\n // 7.3.1\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 7.3.2\n request: requestList[index], // 7.3.3\n response // 7.3.4\n }\n\n operations.push(operation) // 7.3.5\n\n index++ // 7.3.6\n }\n\n // 7.5\n const cacheJobPromise = createDeferredPromise()\n\n // 7.6.1\n let errorData = null\n\n // 7.6.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 7.6.3\n queueMicrotask(() => {\n // 7.6.3.1\n if (errorData === null) {\n cacheJobPromise.resolve(undefined)\n } else {\n // 7.6.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n // 7.7\n return cacheJobPromise.promise\n }\n\n async put (request, response) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })\n\n request = webidl.converters.RequestInfo(request)\n response = webidl.converters.Response(response)\n\n // 1.\n let innerRequest = null\n\n // 2.\n if (request instanceof Request) {\n innerRequest = request[kState]\n } else { // 3.\n innerRequest = new Request(request)[kState]\n }\n\n // 4.\n if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Expected an http/s scheme when method is not GET'\n })\n }\n\n // 5.\n const innerResponse = response[kState]\n\n // 6.\n if (innerResponse.status === 206) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got 206 status'\n })\n }\n\n // 7.\n if (innerResponse.headersList.contains('vary')) {\n // 7.1.\n const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))\n\n // 7.2.\n for (const fieldValue of fieldValues) {\n // 7.2.1\n if (fieldValue === '*') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got * vary field value'\n })\n }\n }\n }\n\n // 8.\n if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Response body is locked or disturbed'\n })\n }\n\n // 9.\n const clonedResponse = cloneResponse(innerResponse)\n\n // 10.\n const bodyReadPromise = createDeferredPromise()\n\n // 11.\n if (innerResponse.body != null) {\n // 11.1\n const stream = innerResponse.body.stream\n\n // 11.2\n const reader = stream.getReader()\n\n // 11.3\n readAllBytes(\n reader,\n (bytes) => bodyReadPromise.resolve(bytes),\n (error) => bodyReadPromise.reject(error)\n )\n } else {\n bodyReadPromise.resolve(undefined)\n }\n\n // 12.\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n // 13.\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 14.\n request: innerRequest, // 15.\n response: clonedResponse // 16.\n }\n\n // 17.\n operations.push(operation)\n\n // 19.\n const bytes = await bodyReadPromise.promise\n\n if (clonedResponse.body != null) {\n clonedResponse.body.source = bytes\n }\n\n // 19.1\n const cacheJobPromise = createDeferredPromise()\n\n // 19.2.1\n let errorData = null\n\n // 19.2.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 19.2.3\n queueMicrotask(() => {\n // 19.2.3.1\n if (errorData === null) {\n cacheJobPromise.resolve()\n } else { // 19.2.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n async delete (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n /**\n * @type {Request}\n */\n let r = null\n\n if (request instanceof Request) {\n r = request[kState]\n\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return false\n }\n } else {\n assert(typeof request === 'string')\n\n r = new Request(request)[kState]\n }\n\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'delete',\n request: r,\n options\n }\n\n operations.push(operation)\n\n const cacheJobPromise = createDeferredPromise()\n\n let errorData = null\n let requestResponses\n\n try {\n requestResponses = this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n queueMicrotask(() => {\n if (errorData === null) {\n cacheJobPromise.resolve(!!requestResponses?.length)\n } else {\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys\n * @param {any} request\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @returns {readonly Request[]}\n */\n async keys (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n // 2.1\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') { // 2.2\n r = new Request(request)[kState]\n }\n }\n\n // 4.\n const promise = createDeferredPromise()\n\n // 5.\n // 5.1\n const requests = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n // 5.2.1.1\n requests.push(requestResponse[0])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n // 5.3.2.1\n requests.push(requestResponse[0])\n }\n }\n\n // 5.4\n queueMicrotask(() => {\n // 5.4.1\n const requestList = []\n\n // 5.4.2\n for (const request of requests) {\n const requestObject = new Request('https://a')\n requestObject[kState] = request\n requestObject[kHeaders][kHeadersList] = request.headersList\n requestObject[kHeaders][kGuard] = 'immutable'\n requestObject[kRealm] = request.client\n\n // 5.4.2.1\n requestList.push(requestObject)\n }\n\n // 5.4.3\n promise.resolve(Object.freeze(requestList))\n })\n\n return promise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm\n * @param {CacheBatchOperation[]} operations\n * @returns {requestResponseList}\n */\n #batchCacheOperations (operations) {\n // 1.\n const cache = this.#relevantRequestResponseList\n\n // 2.\n const backupCache = [...cache]\n\n // 3.\n const addedItems = []\n\n // 4.1\n const resultList = []\n\n try {\n // 4.2\n for (const operation of operations) {\n // 4.2.1\n if (operation.type !== 'delete' && operation.type !== 'put') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'operation type does not match \"delete\" or \"put\"'\n })\n }\n\n // 4.2.2\n if (operation.type === 'delete' && operation.response != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'delete operation should not have an associated response'\n })\n }\n\n // 4.2.3\n if (this.#queryCache(operation.request, operation.options, addedItems).length) {\n throw new DOMException('???', 'InvalidStateError')\n }\n\n // 4.2.4\n let requestResponses\n\n // 4.2.5\n if (operation.type === 'delete') {\n // 4.2.5.1\n requestResponses = this.#queryCache(operation.request, operation.options)\n\n // TODO: the spec is wrong, this is needed to pass WPTs\n if (requestResponses.length === 0) {\n return []\n }\n\n // 4.2.5.2\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.5.2.1\n cache.splice(idx, 1)\n }\n } else if (operation.type === 'put') { // 4.2.6\n // 4.2.6.1\n if (operation.response == null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'put operation should have an associated response'\n })\n }\n\n // 4.2.6.2\n const r = operation.request\n\n // 4.2.6.3\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'expected http or https scheme'\n })\n }\n\n // 4.2.6.4\n if (r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'not get method'\n })\n }\n\n // 4.2.6.5\n if (operation.options != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'options must not be defined'\n })\n }\n\n // 4.2.6.6\n requestResponses = this.#queryCache(operation.request)\n\n // 4.2.6.7\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.6.7.1\n cache.splice(idx, 1)\n }\n\n // 4.2.6.8\n cache.push([operation.request, operation.response])\n\n // 4.2.6.10\n addedItems.push([operation.request, operation.response])\n }\n\n // 4.2.7\n resultList.push([operation.request, operation.response])\n }\n\n // 4.3\n return resultList\n } catch (e) { // 5.\n // 5.1\n this.#relevantRequestResponseList.length = 0\n\n // 5.2\n this.#relevantRequestResponseList = backupCache\n\n // 5.3\n throw e\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#query-cache\n * @param {any} requestQuery\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @param {requestResponseList} targetStorage\n * @returns {requestResponseList}\n */\n #queryCache (requestQuery, options, targetStorage) {\n /** @type {requestResponseList} */\n const resultList = []\n\n const storage = targetStorage ?? this.#relevantRequestResponseList\n\n for (const requestResponse of storage) {\n const [cachedRequest, cachedResponse] = requestResponse\n if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {\n resultList.push(requestResponse)\n }\n }\n\n return resultList\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm\n * @param {any} requestQuery\n * @param {any} request\n * @param {any | null} response\n * @param {import('../../types/cache').CacheQueryOptions | undefined} options\n * @returns {boolean}\n */\n #requestMatchesCachedItem (requestQuery, request, response = null, options) {\n // if (options?.ignoreMethod === false && request.method === 'GET') {\n // return false\n // }\n\n const queryURL = new URL(requestQuery.url)\n\n const cachedURL = new URL(request.url)\n\n if (options?.ignoreSearch) {\n cachedURL.search = ''\n\n queryURL.search = ''\n }\n\n if (!urlEquals(queryURL, cachedURL, true)) {\n return false\n }\n\n if (\n response == null ||\n options?.ignoreVary ||\n !response.headersList.contains('vary')\n ) {\n return true\n }\n\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n for (const fieldValue of fieldValues) {\n if (fieldValue === '*') {\n return false\n }\n\n const requestValue = request.headersList.get(fieldValue)\n const queryValue = requestQuery.headersList.get(fieldValue)\n\n // If one has the header and the other doesn't, or one has\n // a different value than the other, return false\n if (requestValue !== queryValue) {\n return false\n }\n }\n\n return true\n }\n}\n\nObject.defineProperties(Cache.prototype, {\n [Symbol.toStringTag]: {\n value: 'Cache',\n configurable: true\n },\n match: kEnumerableProperty,\n matchAll: kEnumerableProperty,\n add: kEnumerableProperty,\n addAll: kEnumerableProperty,\n put: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nconst cacheQueryOptionConverters = [\n {\n key: 'ignoreSearch',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreMethod',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreVary',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)\n\nwebidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([\n ...cacheQueryOptionConverters,\n {\n key: 'cacheName',\n converter: webidl.converters.DOMString\n }\n])\n\nwebidl.converters.Response = webidl.interfaceConverter(Response)\n\nwebidl.converters['sequence<RequestInfo>'] = webidl.sequenceConverter(\n webidl.converters.RequestInfo\n)\n\nmodule.exports = {\n Cache\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { Cache } = require('./cache')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass CacheStorage {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map\n * @type {Map<string, import('./cache').requestResponseList}\n */\n #caches = new Map()\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.MultiCacheQueryOptions(options)\n\n // 1.\n if (options.cacheName != null) {\n // 1.1.1.1\n if (this.#caches.has(options.cacheName)) {\n // 1.1.1.1.1\n const cacheList = this.#caches.get(options.cacheName)\n const cache = new Cache(kConstruct, cacheList)\n\n return await cache.match(request, options)\n }\n } else { // 2.\n // 2.2\n for (const cacheList of this.#caches.values()) {\n const cache = new Cache(kConstruct, cacheList)\n\n // 2.2.1.2\n const response = await cache.match(request, options)\n\n if (response !== undefined) {\n return response\n }\n }\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-has\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async has (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1.1\n // 2.2\n return this.#caches.has(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open\n * @param {string} cacheName\n * @returns {Promise<Cache>}\n */\n async open (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1\n if (this.#caches.has(cacheName)) {\n // await caches.open('v1') !== await caches.open('v1')\n\n // 2.1.1\n const cache = this.#caches.get(cacheName)\n\n // 2.1.1.1\n return new Cache(kConstruct, cache)\n }\n\n // 2.2\n const cache = []\n\n // 2.3\n this.#caches.set(cacheName, cache)\n\n // 2.4\n return new Cache(kConstruct, cache)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async delete (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n return this.#caches.delete(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys\n * @returns {string[]}\n */\n async keys () {\n webidl.brandCheck(this, CacheStorage)\n\n // 2.1\n const keys = this.#caches.keys()\n\n // 2.2\n return [...keys]\n }\n}\n\nObject.defineProperties(CacheStorage.prototype, {\n [Symbol.toStringTag]: {\n value: 'CacheStorage',\n configurable: true\n },\n match: kEnumerableProperty,\n has: kEnumerableProperty,\n open: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nmodule.exports = {\n CacheStorage\n}\n", "'use strict'\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\nconst maxAttributeValueSize = 1024\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\nconst maxNameValuePairSize = 4096\n\nmodule.exports = {\n maxAttributeValueSize,\n maxNameValuePairSize\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kHeadersList } = require('../core/symbols')\n\nfunction isCTLExcludingHtab (value) {\n if (value.length === 0) {\n return false\n }\n\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n (code >= 0x00 || code <= 0x08) ||\n (code >= 0x0A || code <= 0x1F) ||\n code === 0x7F\n ) {\n return false\n }\n }\n}\n\n/**\n CHAR = <any US-ASCII character (octets 0 - 127)>\n token = 1*<any CHAR except CTLs or separators>\n separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n | \",\" | \";\" | \":\" | \"\\\" | <\">\n | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n | \"{\" | \"}\" | SP | HT\n * @param {string} name\n */\nfunction validateCookieName (name) {\n for (const char of name) {\n const code = char.charCodeAt(0)\n\n if (\n (code <= 0x20 || code > 0x7F) ||\n char === '(' ||\n char === ')' ||\n char === '>' ||\n char === '<' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}'\n ) {\n throw new Error('Invalid cookie name')\n }\n }\n}\n\n/**\n cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n ; US-ASCII characters excluding CTLs,\n ; whitespace DQUOTE, comma, semicolon,\n ; and backslash\n * @param {string} value\n */\nfunction validateCookieValue (value) {\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 || // exclude CTLs (0-31)\n code === 0x22 ||\n code === 0x2C ||\n code === 0x3B ||\n code === 0x5C ||\n code > 0x7E // non-ascii\n ) {\n throw new Error('Invalid header value')\n }\n }\n}\n\n/**\n * path-value = <any CHAR except CTLs or \";\">\n * @param {string} path\n */\nfunction validateCookiePath (path) {\n for (const char of path) {\n const code = char.charCodeAt(0)\n\n if (code < 0x21 || char === ';') {\n throw new Error('Invalid cookie path')\n }\n }\n}\n\n/**\n * I have no idea why these values aren't allowed to be honest,\n * but Deno tests these. - Khafra\n * @param {string} domain\n */\nfunction validateCookieDomain (domain) {\n if (\n domain.startsWith('-') ||\n domain.endsWith('.') ||\n domain.endsWith('-')\n ) {\n throw new Error('Invalid cookie domain')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n * @param {number|Date} date\n IMF-fixdate = day-name \",\" SP date1 SP time-of-day SP GMT\n ; fixed length/zone/capitalization subset of the format\n ; see Section 3.3 of [RFC5322]\n\n day-name = %x4D.6F.6E ; \"Mon\", case-sensitive\n / %x54.75.65 ; \"Tue\", case-sensitive\n / %x57.65.64 ; \"Wed\", case-sensitive\n / %x54.68.75 ; \"Thu\", case-sensitive\n / %x46.72.69 ; \"Fri\", case-sensitive\n / %x53.61.74 ; \"Sat\", case-sensitive\n / %x53.75.6E ; \"Sun\", case-sensitive\n date1 = day SP month SP year\n ; e.g., 02 Jun 1982\n\n day = 2DIGIT\n month = %x4A.61.6E ; \"Jan\", case-sensitive\n / %x46.65.62 ; \"Feb\", case-sensitive\n / %x4D.61.72 ; \"Mar\", case-sensitive\n / %x41.70.72 ; \"Apr\", case-sensitive\n / %x4D.61.79 ; \"May\", case-sensitive\n / %x4A.75.6E ; \"Jun\", case-sensitive\n / %x4A.75.6C ; \"Jul\", case-sensitive\n / %x41.75.67 ; \"Aug\", case-sensitive\n / %x53.65.70 ; \"Sep\", case-sensitive\n / %x4F.63.74 ; \"Oct\", case-sensitive\n / %x4E.6F.76 ; \"Nov\", case-sensitive\n / %x44.65.63 ; \"Dec\", case-sensitive\n year = 4DIGIT\n\n GMT = %x47.4D.54 ; \"GMT\", case-sensitive\n\n time-of-day = hour \":\" minute \":\" second\n ; 00:00:00 - 23:59:60 (leap second)\n\n hour = 2DIGIT\n minute = 2DIGIT\n second = 2DIGIT\n */\nfunction toIMFDate (date) {\n if (typeof date === 'number') {\n date = new Date(date)\n }\n\n const days = [\n 'Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'\n ]\n\n const months = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ]\n\n const dayName = days[date.getUTCDay()]\n const day = date.getUTCDate().toString().padStart(2, '0')\n const month = months[date.getUTCMonth()]\n const year = date.getUTCFullYear()\n const hour = date.getUTCHours().toString().padStart(2, '0')\n const minute = date.getUTCMinutes().toString().padStart(2, '0')\n const second = date.getUTCSeconds().toString().padStart(2, '0')\n\n return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n}\n\n/**\n max-age-av = \"Max-Age=\" non-zero-digit *DIGIT\n ; In practice, both expires-av and max-age-av\n ; are limited to dates representable by the\n ; user agent.\n * @param {number} maxAge\n */\nfunction validateCookieMaxAge (maxAge) {\n if (maxAge < 0) {\n throw new Error('Invalid cookie max-age')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n * @param {import('./index').Cookie} cookie\n */\nfunction stringify (cookie) {\n if (cookie.name.length === 0) {\n return null\n }\n\n validateCookieName(cookie.name)\n validateCookieValue(cookie.value)\n\n const out = [`${cookie.name}=${cookie.value}`]\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n if (cookie.name.startsWith('__Secure-')) {\n cookie.secure = true\n }\n\n if (cookie.name.startsWith('__Host-')) {\n cookie.secure = true\n cookie.domain = null\n cookie.path = '/'\n }\n\n if (cookie.secure) {\n out.push('Secure')\n }\n\n if (cookie.httpOnly) {\n out.push('HttpOnly')\n }\n\n if (typeof cookie.maxAge === 'number') {\n validateCookieMaxAge(cookie.maxAge)\n out.push(`Max-Age=${cookie.maxAge}`)\n }\n\n if (cookie.domain) {\n validateCookieDomain(cookie.domain)\n out.push(`Domain=${cookie.domain}`)\n }\n\n if (cookie.path) {\n validateCookiePath(cookie.path)\n out.push(`Path=${cookie.path}`)\n }\n\n if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n out.push(`Expires=${toIMFDate(cookie.expires)}`)\n }\n\n if (cookie.sameSite) {\n out.push(`SameSite=${cookie.sameSite}`)\n }\n\n for (const part of cookie.unparsed) {\n if (!part.includes('=')) {\n throw new Error('Invalid unparsed')\n }\n\n const [key, ...value] = part.split('=')\n\n out.push(`${key.trim()}=${value.join('=')}`)\n }\n\n return out.join('; ')\n}\n\nlet kHeadersListNode\n\nfunction getHeadersList (headers) {\n if (headers[kHeadersList]) {\n return headers[kHeadersList]\n }\n\n if (!kHeadersListNode) {\n kHeadersListNode = Object.getOwnPropertySymbols(headers).find(\n (symbol) => symbol.description === 'headers list'\n )\n\n assert(kHeadersListNode, 'Headers cannot be parsed')\n }\n\n const headersList = headers[kHeadersListNode]\n assert(headersList)\n\n return headersList\n}\n\nmodule.exports = {\n isCTLExcludingHtab,\n stringify,\n getHeadersList\n}\n", "'use strict'\n\nconst { maxNameValuePairSize, maxAttributeValueSize } = require('./constants')\nconst { isCTLExcludingHtab } = require('./util')\nconst { collectASequenceOfCodePointsFast } = require('../fetch/dataURL')\nconst assert = require('assert')\n\n/**\n * @description Parses the field-value attributes of a set-cookie header string.\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} header\n * @returns if the header is invalid, null will be returned\n */\nfunction parseSetCookie (header) {\n // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n // character (CTL characters excluding HTAB): Abort these steps and\n // ignore the set-cookie-string entirely.\n if (isCTLExcludingHtab(header)) {\n return null\n }\n\n let nameValuePair = ''\n let unparsedAttributes = ''\n let name = ''\n let value = ''\n\n // 2. If the set-cookie-string contains a %x3B (\";\") character:\n if (header.includes(';')) {\n // 1. The name-value-pair string consists of the characters up to,\n // but not including, the first %x3B (\";\"), and the unparsed-\n // attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\n const position = { position: 0 }\n\n nameValuePair = collectASequenceOfCodePointsFast(';', header, position)\n unparsedAttributes = header.slice(position.position)\n } else {\n // Otherwise:\n\n // 1. The name-value-pair string consists of all the characters\n // contained in the set-cookie-string, and the unparsed-\n // attributes is the empty string.\n nameValuePair = header\n }\n\n // 3. If the name-value-pair string lacks a %x3D (\"=\") character, then\n // the name string is empty, and the value string is the value of\n // name-value-pair.\n if (!nameValuePair.includes('=')) {\n value = nameValuePair\n } else {\n // Otherwise, the name string consists of the characters up to, but\n // not including, the first %x3D (\"=\") character, and the (possibly\n // empty) value string consists of the characters after the first\n // %x3D (\"=\") character.\n const position = { position: 0 }\n name = collectASequenceOfCodePointsFast(\n '=',\n nameValuePair,\n position\n )\n value = nameValuePair.slice(position.position + 1)\n }\n\n // 4. Remove any leading or trailing WSP characters from the name\n // string and the value string.\n name = name.trim()\n value = value.trim()\n\n // 5. If the sum of the lengths of the name string and the value string\n // is more than 4096 octets, abort these steps and ignore the set-\n // cookie-string entirely.\n if (name.length + value.length > maxNameValuePairSize) {\n return null\n }\n\n // 6. The cookie-name is the name string, and the cookie-value is the\n // value string.\n return {\n name, value, ...parseUnparsedAttributes(unparsedAttributes)\n }\n}\n\n/**\n * Parses the remaining attributes of a set-cookie header\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} unparsedAttributes\n * @param {[Object.<string, unknown>]={}} cookieAttributeList\n */\nfunction parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {\n // 1. If the unparsed-attributes string is empty, skip the rest of\n // these steps.\n if (unparsedAttributes.length === 0) {\n return cookieAttributeList\n }\n\n // 2. Discard the first character of the unparsed-attributes (which\n // will be a %x3B (\";\") character).\n assert(unparsedAttributes[0] === ';')\n unparsedAttributes = unparsedAttributes.slice(1)\n\n let cookieAv = ''\n\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n if (unparsedAttributes.includes(';')) {\n // 1. Consume the characters of the unparsed-attributes up to, but\n // not including, the first %x3B (\";\") character.\n cookieAv = collectASequenceOfCodePointsFast(\n ';',\n unparsedAttributes,\n { position: 0 }\n )\n unparsedAttributes = unparsedAttributes.slice(cookieAv.length)\n } else {\n // Otherwise:\n\n // 1. Consume the remainder of the unparsed-attributes.\n cookieAv = unparsedAttributes\n unparsedAttributes = ''\n }\n\n // Let the cookie-av string be the characters consumed in this step.\n\n let attributeName = ''\n let attributeValue = ''\n\n // 4. If the cookie-av string contains a %x3D (\"=\") character:\n if (cookieAv.includes('=')) {\n // 1. The (possibly empty) attribute-name string consists of the\n // characters up to, but not including, the first %x3D (\"=\")\n // character, and the (possibly empty) attribute-value string\n // consists of the characters after the first %x3D (\"=\")\n // character.\n const position = { position: 0 }\n\n attributeName = collectASequenceOfCodePointsFast(\n '=',\n cookieAv,\n position\n )\n attributeValue = cookieAv.slice(position.position + 1)\n } else {\n // Otherwise:\n\n // 1. The attribute-name string consists of the entire cookie-av\n // string, and the attribute-value string is empty.\n attributeName = cookieAv\n }\n\n // 5. Remove any leading or trailing WSP characters from the attribute-\n // name string and the attribute-value string.\n attributeName = attributeName.trim()\n attributeValue = attributeValue.trim()\n\n // 6. If the attribute-value is longer than 1024 octets, ignore the\n // cookie-av string and return to Step 1 of this algorithm.\n if (attributeValue.length > maxAttributeValueSize) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 7. Process the attribute-name and attribute-value according to the\n // requirements in the following subsections. (Notice that\n // attributes with unrecognized attribute-names are ignored.)\n const attributeNameLowercase = attributeName.toLowerCase()\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n // If the attribute-name case-insensitively matches the string\n // \"Expires\", the user agent MUST process the cookie-av as follows.\n if (attributeNameLowercase === 'expires') {\n // 1. Let the expiry-time be the result of parsing the attribute-value\n // as cookie-date (see Section 5.1.1).\n const expiryTime = new Date(attributeValue)\n\n // 2. If the attribute-value failed to parse as a cookie date, ignore\n // the cookie-av.\n\n cookieAttributeList.expires = expiryTime\n } else if (attributeNameLowercase === 'max-age') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n // If the attribute-name case-insensitively matches the string \"Max-\n // Age\", the user agent MUST process the cookie-av as follows.\n\n // 1. If the first character of the attribute-value is not a DIGIT or a\n // \"-\" character, ignore the cookie-av.\n const charCode = attributeValue.charCodeAt(0)\n\n if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 2. If the remainder of attribute-value contains a non-DIGIT\n // character, ignore the cookie-av.\n if (!/^\\d+$/.test(attributeValue)) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 3. Let delta-seconds be the attribute-value converted to an integer.\n const deltaSeconds = Number(attributeValue)\n\n // 4. Let cookie-age-limit be the maximum age of the cookie (which\n // SHOULD be 400 days or less, see Section 4.1.2.2).\n\n // 5. Set delta-seconds to the smaller of its present value and cookie-\n // age-limit.\n // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)\n\n // 6. If delta-seconds is less than or equal to zero (0), let expiry-\n // time be the earliest representable date and time. Otherwise, let\n // the expiry-time be the current date and time plus delta-seconds\n // seconds.\n // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n // 7. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Max-Age and an attribute-value of expiry-time.\n cookieAttributeList.maxAge = deltaSeconds\n } else if (attributeNameLowercase === 'domain') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n // If the attribute-name case-insensitively matches the string \"Domain\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. Let cookie-domain be the attribute-value.\n let cookieDomain = attributeValue\n\n // 2. If cookie-domain starts with %x2E (\".\"), let cookie-domain be\n // cookie-domain without its leading %x2E (\".\").\n if (cookieDomain[0] === '.') {\n cookieDomain = cookieDomain.slice(1)\n }\n\n // 3. Convert the cookie-domain to lower case.\n cookieDomain = cookieDomain.toLowerCase()\n\n // 4. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Domain and an attribute-value of cookie-domain.\n cookieAttributeList.domain = cookieDomain\n } else if (attributeNameLowercase === 'path') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n // If the attribute-name case-insensitively matches the string \"Path\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. If the attribute-value is empty or if the first character of the\n // attribute-value is not %x2F (\"/\"):\n let cookiePath = ''\n if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n // 1. Let cookie-path be the default-path.\n cookiePath = '/'\n } else {\n // Otherwise:\n\n // 1. Let cookie-path be the attribute-value.\n cookiePath = attributeValue\n }\n\n // 2. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Path and an attribute-value of cookie-path.\n cookieAttributeList.path = cookiePath\n } else if (attributeNameLowercase === 'secure') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n // If the attribute-name case-insensitively matches the string \"Secure\",\n // the user agent MUST append an attribute to the cookie-attribute-list\n // with an attribute-name of Secure and an empty attribute-value.\n\n cookieAttributeList.secure = true\n } else if (attributeNameLowercase === 'httponly') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n // If the attribute-name case-insensitively matches the string\n // \"HttpOnly\", the user agent MUST append an attribute to the cookie-\n // attribute-list with an attribute-name of HttpOnly and an empty\n // attribute-value.\n\n cookieAttributeList.httpOnly = true\n } else if (attributeNameLowercase === 'samesite') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n // If the attribute-name case-insensitively matches the string\n // \"SameSite\", the user agent MUST process the cookie-av as follows:\n\n // 1. Let enforcement be \"Default\".\n let enforcement = 'Default'\n\n const attributeValueLowercase = attributeValue.toLowerCase()\n // 2. If cookie-av's attribute-value is a case-insensitive match for\n // \"None\", set enforcement to \"None\".\n if (attributeValueLowercase.includes('none')) {\n enforcement = 'None'\n }\n\n // 3. If cookie-av's attribute-value is a case-insensitive match for\n // \"Strict\", set enforcement to \"Strict\".\n if (attributeValueLowercase.includes('strict')) {\n enforcement = 'Strict'\n }\n\n // 4. If cookie-av's attribute-value is a case-insensitive match for\n // \"Lax\", set enforcement to \"Lax\".\n if (attributeValueLowercase.includes('lax')) {\n enforcement = 'Lax'\n }\n\n // 5. Append an attribute to the cookie-attribute-list with an\n // attribute-name of \"SameSite\" and an attribute-value of\n // enforcement.\n cookieAttributeList.sameSite = enforcement\n } else {\n cookieAttributeList.unparsed ??= []\n\n cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)\n }\n\n // 8. Return to Step 1 of this algorithm.\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n}\n\nmodule.exports = {\n parseSetCookie,\n parseUnparsedAttributes\n}\n", "'use strict'\n\nconst { parseSetCookie } = require('./parse')\nconst { stringify, getHeadersList } = require('./util')\nconst { webidl } = require('../fetch/webidl')\nconst { Headers } = require('../fetch/headers')\n\n/**\n * @typedef {Object} Cookie\n * @property {string} name\n * @property {string} value\n * @property {Date|number|undefined} expires\n * @property {number|undefined} maxAge\n * @property {string|undefined} domain\n * @property {string|undefined} path\n * @property {boolean|undefined} secure\n * @property {boolean|undefined} httpOnly\n * @property {'Strict'|'Lax'|'None'} sameSite\n * @property {string[]} unparsed\n */\n\n/**\n * @param {Headers} headers\n * @returns {Record<string, string>}\n */\nfunction getCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookie = headers.get('cookie')\n const out = {}\n\n if (!cookie) {\n return out\n }\n\n for (const piece of cookie.split(';')) {\n const [name, ...value] = piece.split('=')\n\n out[name.trim()] = value.join('=')\n }\n\n return out\n}\n\n/**\n * @param {Headers} headers\n * @param {string} name\n * @param {{ path?: string, domain?: string }|undefined} attributes\n * @returns {void}\n */\nfunction deleteCookie (headers, name, attributes) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n name = webidl.converters.DOMString(name)\n attributes = webidl.converters.DeleteCookieAttributes(attributes)\n\n // Matches behavior of\n // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n setCookie(headers, {\n name,\n value: '',\n expires: new Date(0),\n ...attributes\n })\n}\n\n/**\n * @param {Headers} headers\n * @returns {Cookie[]}\n */\nfunction getSetCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookies = getHeadersList(headers).cookies\n\n if (!cookies) {\n return []\n }\n\n // In older versions of undici, cookies is a list of name:value.\n return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair))\n}\n\n/**\n * @param {Headers} headers\n * @param {Cookie} cookie\n * @returns {void}\n */\nfunction setCookie (headers, cookie) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n cookie = webidl.converters.Cookie(cookie)\n\n const str = stringify(cookie)\n\n if (str) {\n headers.append('Set-Cookie', stringify(cookie))\n }\n}\n\nwebidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n }\n])\n\nwebidl.converters.Cookie = webidl.dictionaryConverter([\n {\n converter: webidl.converters.DOMString,\n key: 'name'\n },\n {\n converter: webidl.converters.DOMString,\n key: 'value'\n },\n {\n converter: webidl.nullableConverter((value) => {\n if (typeof value === 'number') {\n return webidl.converters['unsigned long long'](value)\n }\n\n return new Date(value)\n }),\n key: 'expires',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters['long long']),\n key: 'maxAge',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'secure',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'httpOnly',\n defaultValue: null\n },\n {\n converter: webidl.converters.USVString,\n key: 'sameSite',\n allowedValues: ['Strict', 'Lax', 'None']\n },\n {\n converter: webidl.sequenceConverter(webidl.converters.DOMString),\n key: 'unparsed',\n defaultValue: []\n }\n])\n\nmodule.exports = {\n getCookies,\n deleteCookie,\n getSetCookies,\n setCookie\n}\n", "'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nmodule.exports = {\n uid,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer\n}\n", "'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\nconst { MessagePort } = require('worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' })\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' })\n\n super(type, eventInitDict)\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence<MessagePort>'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence<MessagePort>'],\n get defaultValue () {\n return []\n }\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent\n}\n", "'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { MessageEvent, ErrorEvent } = require('./events')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventConstructor = Event, eventInitDict) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event\u2019s type attribute to e.\n const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = new Uint8Array(data).buffer\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object\u2019s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, MessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (const char of protocol) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 ||\n code > 0x7E ||\n char === '(' ||\n char === ')' ||\n char === '<' ||\n char === '>' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}' ||\n code === 32 || // SP\n code === 9 // HT\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n fireEvent('error', ws, ErrorEvent, {\n error: new Error(reason)\n })\n }\n}\n\nmodule.exports = {\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived\n}\n", "'use strict'\n\nconst { randomBytes, createHash } = require('crypto')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { uid, states } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection } = require('./util')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers } = require('../fetch/headers')\nconst { getGlobalDispatcher } = require('../global')\nconst { kHeadersList } = require('../core/symbols')\n\nconst channels = {}\nchannels.open = diagnosticsChannel.channel('undici:websocket:open')\nchannels.close = diagnosticsChannel.channel('undici:websocket:close')\nchannels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error')\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any) => void} onEstablish\n * @param {Partial<import('../../types/websocket').WebSocketInit>} options\n */\nfunction establishWebSocketConnection (url, protocols, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url\u2019s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = new Headers(options.headers)[kHeadersList]\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request\u2019s header list.\n // 4. Append (`Connection`, `Upgrade`) to request\u2019s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request\u2019s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n // TODO: enable once permessage-deflate is supported\n const permessageDeflate = '' // 'permessage-deflate; 15'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request\u2019s header list.\n // request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher ?? getGlobalDispatcher(),\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response\u2019s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n\n if (secExtension !== null && secExtension !== permessageDeflate) {\n failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.')\n return\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response)\n }\n })\n\n return controller\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kSentClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n fireEvent('close', ws, CloseEvent, {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection\n}\n", "'use strict'\n\nconst { randomBytes } = require('crypto')\nconst { maxUnsigned16Bit } = require('./constants')\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n this.maskKey = randomBytes(4)\n }\n\n createFrame (opcode) {\n const bodyLength = this.frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */\n buffer[offset - 4] = this.maskKey[0]\n buffer[offset - 3] = this.maskKey[1]\n buffer[offset - 2] = this.maskKey[2]\n buffer[offset - 1] = this.maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; i++) {\n buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n", "'use strict'\n\nconst { Writable } = require('stream')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { parserStates, opcodes, states, emptyBuffer } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>\n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nconst channels = {}\nchannels.ping = diagnosticsChannel.channel('undici:websocket:ping')\nchannels.pong = diagnosticsChannel.channel('undici:websocket:pong')\n\nclass ByteParser extends Writable {\n #buffers = []\n #byteOffset = 0\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n constructor (ws) {\n super()\n\n this.ws = ws\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n\n this.run(callback)\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (true) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.fin = (buffer[0] & 0x80) !== 0\n this.#info.opcode = buffer[0] & 0x0F\n\n // If we receive a fragmented message, we use the type of the first\n // frame to parse the full message as binary/text, when it's terminated\n this.#info.originalOpcode ??= this.#info.opcode\n\n this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION\n\n if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n const payloadLength = buffer[1] & 0x7F\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (this.#info.fragmented && payloadLength > 125) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n } else if (\n (this.#info.opcode === opcodes.PING ||\n this.#info.opcode === opcodes.PONG ||\n this.#info.opcode === opcodes.CLOSE) &&\n payloadLength > 125\n ) {\n // Control frames can have a payload length of 125 bytes MAX\n failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.')\n return\n } else if (this.#info.opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return\n }\n\n const body = this.consume(payloadLength)\n\n this.#info.closeInfo = this.parseCloseBody(false, body)\n\n if (!this.ws[kSentClose]) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n const body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = true\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n this.end()\n\n return\n } else if (this.#info.opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n const body = this.consume(payloadLength)\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n\n this.#state = parserStates.INFO\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n } else if (this.#info.opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n const body = this.consume(payloadLength)\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n\n // 2^31 is the maxinimum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n const lower = buffer.readUInt32BE(4)\n\n this.#info.payloadLength = (upper << 8) + lower\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n // If there is still more data in this chunk that needs to be read\n return callback()\n } else if (this.#byteOffset >= this.#info.payloadLength) {\n // If the server sent multiple frames in a single chunk\n\n const body = this.consume(this.#info.payloadLength)\n\n this.#fragments.push(body)\n\n // If the frame is unfragmented, or a fragmented frame was terminated,\n // a message was received\n if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n const fullMessage = Buffer.concat(this.#fragments)\n\n websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage)\n\n this.#info = {}\n this.#fragments.length = 0\n }\n\n this.#state = parserStates.INFO\n }\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n break\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer|null}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n return null\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n parseCloseBody (onlyCode, data) {\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (onlyCode) {\n if (!isValidStatusCode(code)) {\n return null\n }\n\n return { code }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return null\n }\n\n try {\n // TODO: optimize this\n reason = new TextDecoder('utf-8', { fatal: true }).decode(reason)\n } catch {\n return null\n }\n\n return { code, reason }\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { DOMException } = require('../fetch/constants')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require('./constants')\nconst {\n kWebSocketURL,\n kReadyState,\n kController,\n kBinaryType,\n kResponse,\n kSentClose,\n kByteParser\n} = require('./symbols')\nconst { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require('./util')\nconst { establishWebSocketConnection } = require('./connection')\nconst { WebsocketFrameSend } = require('./frame')\nconst { ByteParser } = require('./receiver')\nconst { kEnumerableProperty, isBlobLike } = require('../core/util')\nconst { getGlobalDispatcher } = require('../global')\nconst { types } = require('util')\n\nlet experimentalWarned = false\n\n// https://websockets.spec.whatwg.org/#interface-definition\nclass WebSocket extends EventTarget {\n #events = {\n open: null,\n error: null,\n close: null,\n message: null\n }\n\n #bufferedAmount = 0\n #protocol = ''\n #extensions = ''\n\n /**\n * @param {string} url\n * @param {string|string[]} protocols\n */\n constructor (url, protocols = []) {\n super()\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' })\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('WebSockets are experimental, expect them to change at any time.', {\n code: 'UNDICI-WS'\n })\n }\n\n const options = webidl.converters['DOMString or sequence<DOMString> or WebSocketInit'](protocols)\n\n url = webidl.converters.USVString(url)\n protocols = options.protocols\n\n // 1. Let urlRecord be the result of applying the URL parser to url.\n let urlRecord\n\n try {\n urlRecord = new URL(url)\n } catch (e) {\n // 2. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 3. If urlRecord\u2019s scheme is not \"ws\" or \"wss\", then throw a\n // \"SyntaxError\" DOMException.\n if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n throw new DOMException(\n `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,\n 'SyntaxError'\n )\n }\n\n // 4. If urlRecord\u2019s fragment is non-null, then throw a \"SyntaxError\"\n // DOMException.\n if (urlRecord.hash) {\n throw new DOMException('Got fragment', 'SyntaxError')\n }\n\n // 5. If protocols is a string, set protocols to a sequence consisting\n // of just that string.\n if (typeof protocols === 'string') {\n protocols = [protocols]\n }\n\n // 6. If any of the values in protocols occur more than once or otherwise\n // fail to match the requirements for elements that comprise the value\n // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n // protocol, then throw a \"SyntaxError\" DOMException.\n if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n // 7. Set this's url to urlRecord.\n this[kWebSocketURL] = urlRecord\n\n // 8. Let client be this's relevant settings object.\n\n // 9. Run this step in parallel:\n\n // 1. Establish a WebSocket connection given urlRecord, protocols,\n // and client.\n this[kController] = establishWebSocketConnection(\n urlRecord,\n protocols,\n this,\n (response) => this.#onConnectionEstablished(response),\n options\n )\n\n // Each WebSocket object has an associated ready state, which is a\n // number representing the state of the connection. Initially it must\n // be CONNECTING (0).\n this[kReadyState] = WebSocket.CONNECTING\n\n // The extensions attribute must initially return the empty string.\n\n // The protocol attribute must initially return the empty string.\n\n // Each WebSocket object has an associated binary type, which is a\n // BinaryType. Initially it must be \"blob\".\n this[kBinaryType] = 'blob'\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n * @param {number|undefined} code\n * @param {string|undefined} reason\n */\n close (code = undefined, reason = undefined) {\n webidl.brandCheck(this, WebSocket)\n\n if (code !== undefined) {\n code = webidl.converters['unsigned short'](code, { clamp: true })\n }\n\n if (reason !== undefined) {\n reason = webidl.converters.USVString(reason)\n }\n\n // 1. If code is present, but is neither an integer equal to 1000 nor an\n // integer in the range 3000 to 4999, inclusive, throw an\n // \"InvalidAccessError\" DOMException.\n if (code !== undefined) {\n if (code !== 1000 && (code < 3000 || code > 4999)) {\n throw new DOMException('invalid code', 'InvalidAccessError')\n }\n }\n\n let reasonByteLength = 0\n\n // 2. If reason is present, then run these substeps:\n if (reason !== undefined) {\n // 1. Let reasonBytes be the result of encoding reason.\n // 2. If reasonBytes is longer than 123 bytes, then throw a\n // \"SyntaxError\" DOMException.\n reasonByteLength = Buffer.byteLength(reason)\n\n if (reasonByteLength > 123) {\n throw new DOMException(\n `Reason must be less than 123 bytes; received ${reasonByteLength}`,\n 'SyntaxError'\n )\n }\n }\n\n // 3. Run the first matching steps from the following list:\n if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(this)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(this, 'Connection was closed before it was established.')\n this[kReadyState] = WebSocket.CLOSING\n } else if (!isClosing(this)) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE), (err) => {\n if (!err) {\n this[kSentClose] = true\n }\n })\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n this[kReadyState] = WebSocket.CLOSING\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n */\n send (data) {\n webidl.brandCheck(this, WebSocket)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' })\n\n data = webidl.converters.WebSocketSendData(data)\n\n // 1. If this's ready state is CONNECTING, then throw an\n // \"InvalidStateError\" DOMException.\n if (this[kReadyState] === WebSocket.CONNECTING) {\n throw new DOMException('Sent before connected.', 'InvalidStateError')\n }\n\n // 2. Run the appropriate set of steps from the following list:\n // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n if (!isEstablished(this) || isClosing(this)) {\n return\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n // If data is a string\n if (typeof data === 'string') {\n // If the WebSocket connection is established and the WebSocket\n // closing handshake has not yet started, then the user agent\n // must send a WebSocket Message comprised of the data argument\n // using a text frame opcode; if the data cannot be sent, e.g.\n // because it would need to be buffered but the buffer is full,\n // the user agent must flag the WebSocket as full and then close\n // the WebSocket connection. Any invocation of this method with a\n // string argument that does not throw an exception must increase\n // the bufferedAmount attribute by the number of bytes needed to\n // express the argument as UTF-8.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.TEXT)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (types.isArrayBuffer(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need\n // to be buffered but the buffer is full, the user agent must flag\n // the WebSocket as full and then close the WebSocket connection.\n // The data to be sent is the data stored in the buffer described\n // by the ArrayBuffer object. Any invocation of this method with an\n // ArrayBuffer argument that does not throw an exception must\n // increase the bufferedAmount attribute by the length of the\n // ArrayBuffer in bytes.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (ArrayBuffer.isView(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The\n // data to be sent is the data stored in the section of the buffer\n // described by the ArrayBuffer object that data references. Any\n // invocation of this method with this kind of argument that does\n // not throw an exception must increase the bufferedAmount attribute\n // by the length of data\u2019s buffer in bytes.\n\n const ab = Buffer.from(data, data.byteOffset, data.byteLength)\n\n const frame = new WebsocketFrameSend(ab)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += ab.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= ab.byteLength\n })\n } else if (isBlobLike(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The data\n // to be sent is the raw data represented by the Blob object. Any\n // invocation of this method with a Blob argument that does not throw\n // an exception must increase the bufferedAmount attribute by the size\n // of the Blob object\u2019s raw data, in bytes.\n\n const frame = new WebsocketFrameSend()\n\n data.arrayBuffer().then((ab) => {\n const value = Buffer.from(ab)\n frame.frameData = value\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n })\n }\n }\n\n get readyState () {\n webidl.brandCheck(this, WebSocket)\n\n // The readyState getter steps are to return this's ready state.\n return this[kReadyState]\n }\n\n get bufferedAmount () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#bufferedAmount\n }\n\n get url () {\n webidl.brandCheck(this, WebSocket)\n\n // The url getter steps are to return this's url, serialized.\n return URLSerializer(this[kWebSocketURL])\n }\n\n get extensions () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#extensions\n }\n\n get protocol () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#protocol\n }\n\n get onopen () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.open\n }\n\n set onopen (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n\n get onclose () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.close\n }\n\n set onclose (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.close) {\n this.removeEventListener('close', this.#events.close)\n }\n\n if (typeof fn === 'function') {\n this.#events.close = fn\n this.addEventListener('close', fn)\n } else {\n this.#events.close = null\n }\n }\n\n get onmessage () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.message\n }\n\n set onmessage (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get binaryType () {\n webidl.brandCheck(this, WebSocket)\n\n return this[kBinaryType]\n }\n\n set binaryType (type) {\n webidl.brandCheck(this, WebSocket)\n\n if (type !== 'blob' && type !== 'arraybuffer') {\n this[kBinaryType] = 'blob'\n } else {\n this[kBinaryType] = type\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n */\n #onConnectionEstablished (response) {\n // processResponse is called when the \"response\u2019s header list has been received and initialized.\"\n // once this happens, the connection is open\n this[kResponse] = response\n\n const parser = new ByteParser(this)\n parser.on('drain', function onParserDrain () {\n this.ws[kResponse].socket.resume()\n })\n\n response.socket.ws = this\n this[kByteParser] = parser\n\n // 1. Change the ready state to OPEN (1).\n this[kReadyState] = states.OPEN\n\n // 2. Change the extensions attribute\u2019s value to the extensions in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n const extensions = response.headersList.get('sec-websocket-extensions')\n\n if (extensions !== null) {\n this.#extensions = extensions\n }\n\n // 3. Change the protocol attribute\u2019s value to the subprotocol in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n const protocol = response.headersList.get('sec-websocket-protocol')\n\n if (protocol !== null) {\n this.#protocol = protocol\n }\n\n // 4. Fire an event named open at the WebSocket object.\n fireEvent('open', this)\n }\n}\n\n// https://websockets.spec.whatwg.org/#dom-websocket-connecting\nWebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING\n// https://websockets.spec.whatwg.org/#dom-websocket-open\nWebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN\n// https://websockets.spec.whatwg.org/#dom-websocket-closing\nWebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING\n// https://websockets.spec.whatwg.org/#dom-websocket-closed\nWebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED\n\nObject.defineProperties(WebSocket.prototype, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors,\n url: kEnumerableProperty,\n readyState: kEnumerableProperty,\n bufferedAmount: kEnumerableProperty,\n onopen: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onclose: kEnumerableProperty,\n close: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n binaryType: kEnumerableProperty,\n send: kEnumerableProperty,\n extensions: kEnumerableProperty,\n protocol: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'WebSocket',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(WebSocket, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors\n})\n\nwebidl.converters['sequence<DOMString>'] = webidl.sequenceConverter(\n webidl.converters.DOMString\n)\n\nwebidl.converters['DOMString or sequence<DOMString>'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n return webidl.converters['sequence<DOMString>'](V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// This implements the propsal made in https://github.com/whatwg/websockets/issues/42\nwebidl.converters.WebSocketInit = webidl.dictionaryConverter([\n {\n key: 'protocols',\n converter: webidl.converters['DOMString or sequence<DOMString>'],\n get defaultValue () {\n return []\n }\n },\n {\n key: 'dispatcher',\n converter: (V) => V,\n get defaultValue () {\n return getGlobalDispatcher()\n }\n },\n {\n key: 'headers',\n converter: webidl.nullableConverter(webidl.converters.HeadersInit)\n }\n])\n\nwebidl.converters['DOMString or sequence<DOMString> or WebSocketInit'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) {\n return webidl.converters.WebSocketInit(V)\n }\n\n return { protocols: webidl.converters['DOMString or sequence<DOMString>'](V) }\n}\n\nwebidl.converters.WebSocketSendData = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n return webidl.converters.BufferSource(V)\n }\n }\n\n return webidl.converters.USVString(V)\n}\n\nmodule.exports = {\n WebSocket\n}\n", "'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nlet hasCrypto\ntry {\n require('crypto')\n hasCrypto = true\n} catch {\n hasCrypto = false\n}\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n\n try {\n return await fetchImpl(...arguments)\n } catch (err) {\n Error.captureStackTrace(err, this)\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n module.exports.FileReader = require('./lib/fileapi/filereader').FileReader\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n\n const { CacheStorage } = require('./lib/cache/cachestorage')\n const { kConstruct } = require('./lib/cache/symbols')\n\n // Cache & CacheStorage are tightly coupled with fetch. Even if it may run\n // in an older version of Node, it doesn't have any use without fetch.\n module.exports.caches = new CacheStorage(kConstruct)\n}\n\nif (util.nodeMajor >= 16) {\n const { deleteCookie, getCookies, getSetCookies, setCookie } = require('./lib/cookies')\n\n module.exports.deleteCookie = deleteCookie\n module.exports.getCookies = getCookies\n module.exports.getSetCookies = getSetCookies\n module.exports.setCookie = setCookie\n\n const { parseMIMEType, serializeAMimeType } = require('./lib/fetch/dataURL')\n\n module.exports.parseMIMEType = parseMIMEType\n module.exports.serializeAMimeType = serializeAMimeType\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n const { WebSocket } = require('./lib/websocket/websocket')\n\n module.exports.WebSocket = WebSocket\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n", null, null, null, "'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n", "'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n", "'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n", "'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n", "'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n", "'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n", "'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n", "'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n", "var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n", "var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL());\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230\u00A75.3.1: When making a request directly to an origin server, [\u2026]\n // a client MUST send only the absolute path [\u2026] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, [\u2026]\n // a client MUST send the target URI in absolute-form [\u2026].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231\u00A76.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231\u00A76.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231\u00A76.4: Automatic redirection needs to done with\n // care for methods not known to be safe, [\u2026]\n // RFC7231\u00A76.4.2\u20133: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231\u00A76.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource [\u2026]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) [\u2026]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n /* istanbul ignore else */\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n /* istanbul ignore next */\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n", "{\n \"name\": \"axios\",\n \"version\": \"0.21.4\",\n \"description\": \"Promise based HTTP client for the browser and node.js\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"test\": \"grunt test\",\n \"start\": \"node ./sandbox/server.js\",\n \"build\": \"NODE_ENV=production grunt build\",\n \"preversion\": \"npm test\",\n \"version\": \"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json\",\n \"postversion\": \"git push && git push --tags\",\n \"examples\": \"node ./examples/server.js\",\n \"coveralls\": \"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\",\n \"fix\": \"eslint --fix lib/**/*.js\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/axios/axios.git\"\n },\n \"keywords\": [\n \"xhr\",\n \"http\",\n \"ajax\",\n \"promise\",\n \"node\"\n ],\n \"author\": \"Matt Zabriskie\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/axios/axios/issues\"\n },\n \"homepage\": \"https://axios-http.com\",\n \"devDependencies\": {\n \"coveralls\": \"^3.0.0\",\n \"es6-promise\": \"^4.2.4\",\n \"grunt\": \"^1.3.0\",\n \"grunt-banner\": \"^0.6.0\",\n \"grunt-cli\": \"^1.2.0\",\n \"grunt-contrib-clean\": \"^1.1.0\",\n \"grunt-contrib-watch\": \"^1.0.0\",\n \"grunt-eslint\": \"^23.0.0\",\n \"grunt-karma\": \"^4.0.0\",\n \"grunt-mocha-test\": \"^0.13.3\",\n \"grunt-ts\": \"^6.0.0-beta.19\",\n \"grunt-webpack\": \"^4.0.2\",\n \"istanbul-instrumenter-loader\": \"^1.0.0\",\n \"jasmine-core\": \"^2.4.1\",\n \"karma\": \"^6.3.2\",\n \"karma-chrome-launcher\": \"^3.1.0\",\n \"karma-firefox-launcher\": \"^2.1.0\",\n \"karma-jasmine\": \"^1.1.1\",\n \"karma-jasmine-ajax\": \"^0.1.13\",\n \"karma-safari-launcher\": \"^1.0.0\",\n \"karma-sauce-launcher\": \"^4.3.6\",\n \"karma-sinon\": \"^1.0.5\",\n \"karma-sourcemap-loader\": \"^0.3.8\",\n \"karma-webpack\": \"^4.0.2\",\n \"load-grunt-tasks\": \"^3.5.2\",\n \"minimist\": \"^1.2.0\",\n \"mocha\": \"^8.2.1\",\n \"sinon\": \"^4.5.0\",\n \"terser-webpack-plugin\": \"^4.2.3\",\n \"typescript\": \"^4.0.5\",\n \"url-search-params\": \"^0.10.0\",\n \"webpack\": \"^4.44.2\",\n \"webpack-dev-server\": \"^3.11.0\"\n },\n \"browser\": {\n \"./lib/adapters/http.js\": \"./lib/adapters/xhr.js\"\n },\n \"jsdelivr\": \"dist/axios.min.js\",\n \"unpkg\": \"dist/axios.min.js\",\n \"typings\": \"./index.d.ts\",\n \"dependencies\": {\n \"follow-redirects\": \"^1.14.0\"\n },\n \"bundlesize\": [\n {\n \"path\": \"./dist/axios.min.js\",\n \"threshold\": \"5kB\"\n }\n ]\n}\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildFullPath = require('../core/buildFullPath');\nvar buildURL = require('./../helpers/buildURL');\nvar http = require('http');\nvar https = require('https');\nvar httpFollow = require('follow-redirects').http;\nvar httpsFollow = require('follow-redirects').https;\nvar url = require('url');\nvar zlib = require('zlib');\nvar pkg = require('./../../package.json');\nvar createError = require('../core/createError');\nvar enhanceError = require('../core/enhanceError');\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nmodule.exports = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var resolve = function resolve(value) {\n resolvePromise(value);\n };\n var reject = function reject(value) {\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('User-Agent' in headers || 'user-agent' in headers) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers['User-Agent'] && !headers['user-agent']) {\n delete headers['User-Agent'];\n delete headers['user-agent'];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + pkg.version;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers['Content-Length'] = data.length;\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url.parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth) {\n delete headers.Authorization;\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url.parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n var responseData = Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n\n response.data = responseData;\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n reject(createError(\n 'timeout of ' + timeout + 'ms exceeded',\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(cancel);\n });\n }\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n", "'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n", "'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n", "'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n", "'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n", "'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n", "'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n", "module.exports = require('./lib/axios');", null, null, null, null, null, null, "import { List } from \"@raycast/api\";\nimport { ReactElement, useState } from \"react\";\nimport { LanguageDropdown } from \"./QuickTranslate/LanguageDropdown\";\nimport { QuickTranslateListItem } from \"./QuickTranslate/QuickTranslateListItem\";\nimport { useDebouncedValue, usePreferences, useSourceLanguage, useTargetLanguages, useTextState } from \"./hooks\";\nimport { LanguageCode } from \"./languages\";\n\nexport default function QuickTranslate(): ReactElement {\n const [sourceLanguage] = useSourceLanguage();\n const [targetLanguages] = useTargetLanguages();\n const { proxy } = usePreferences();\n const [isShowingDetail, setIsShowingDetail] = useState(true);\n const [text, setText] = useTextState();\n const debouncedText = useDebouncedValue(text, 500).trim();\n\n const [loadingStates, setLoadingStates] = useState(new Map(targetLanguages.map((lang) => [lang, false])));\n\n const isAnyLoading = Array.from(loadingStates.values()).some((isLoading) => isLoading);\n\n function setIsLoading(lang: LanguageCode, isLoading: boolean) {\n setLoadingStates((prev) => new Map(prev).set(lang, isLoading));\n }\n\n return (\n <List\n searchBarPlaceholder=\"Enter text to translate\"\n searchText={text}\n onSearchTextChange={setText}\n isLoading={isAnyLoading}\n isShowingDetail={isShowingDetail}\n searchBarAccessory={<LanguageDropdown />}\n >\n {debouncedText\n ? targetLanguages.map((targetLanguage) => (\n <QuickTranslateListItem\n key={targetLanguage}\n debouncedText={debouncedText}\n languageSet={{ langFrom: sourceLanguage, langTo: [targetLanguage], proxy }}\n isShowingDetail={isShowingDetail}\n setIsShowingDetail={setIsShowingDetail}\n setIsLoading={(isLoading) => setIsLoading(targetLanguage, isLoading)}\n />\n ))\n : null}\n </List>\n );\n}\n", "import { Icon, List, useNavigation } from \"@raycast/api\";\nimport { useSourceLanguage, useTargetLanguages } from \"../hooks\";\nimport { LanguageCode, languages, supportedLanguagesByCode } from \"../languages\";\nimport { TargetLanguageList } from \"./TargetLanguageList\";\n\nexport function LanguageDropdown() {\n const navigation = useNavigation();\n const [sourceLanguage, setSourceLanguage] = useSourceLanguage();\n const [targetLanguages] = useTargetLanguages();\n return (\n <List.Dropdown\n value={sourceLanguage}\n tooltip=\"Language\"\n onChange={(value) => {\n if (value === \"manageTargetLanguages\") {\n navigation.push(<TargetLanguageList />);\n } else {\n setSourceLanguage(value as LanguageCode);\n }\n }}\n >\n <List.Dropdown.Item\n key=\"manageTargetLanguages\"\n icon={Icon.Pencil}\n title={`Translate to -> ${targetLanguages.map((l) => supportedLanguagesByCode[l].name).join(\" \")}`}\n value=\"manageTargetLanguages\"\n />\n {languages.map((lang) => (\n <List.Dropdown.Item key={lang.code} title={lang.name} value={lang.code} />\n ))}\n </List.Dropdown>\n );\n}\n", "import { getPreferenceValues, getSelectedText } from \"@raycast/api\";\nimport { useCachedState } from \"@raycast/utils\";\nimport React from \"react\";\nimport { LanguageCode } from \"./languages\";\nimport { LanguageCodeSet, TranslatePreferences } from \"./types\";\nimport { AUTO_DETECT } from \"./simple-translate\";\n\ntype _LegacySingleLanguageCodeSet = {\n langFrom: LanguageCode;\n langTo: LanguageCode;\n};\n\ntype _StoredLanguageCodeSet = _LegacySingleLanguageCodeSet | LanguageCodeSet;\n\nconst unifyLegacyLanguageSet = (legacy: _StoredLanguageCodeSet): LanguageCodeSet => {\n return {\n langFrom: legacy.langFrom,\n langTo: Array.isArray(legacy.langTo) ? legacy.langTo : [legacy.langTo],\n };\n};\n\nexport const usePreferences = () => {\n return React.useMemo(() => getPreferenceValues<TranslatePreferences>(), []);\n};\n\nexport const useTextState = () => {\n const preferences = usePreferences();\n const [text, setText] = React.useState(\"\");\n const textRef = React.useRef(text);\n textRef.current = text;\n\n React.useEffect(() => {\n if (preferences.autoInput) {\n getSelectedText()\n .then((cbText) => {\n if (!textRef.current) {\n setText(cbText ?? \"\");\n }\n })\n .catch((err) => {\n console.log(\"Error:\", err);\n });\n }\n }, []);\n\n return [text, setText] as const;\n};\n\nexport const useSelectedLanguagesSet = () => {\n const preferences = usePreferences();\n const [selectedLanguageSet, setSelectedLanguageSet] = useCachedState<_StoredLanguageCodeSet>(\n \"selectedLanguageSet\",\n unifyLegacyLanguageSet({\n langFrom: preferences.lang1,\n langTo: preferences.lang2,\n }),\n );\n\n return [unifyLegacyLanguageSet(selectedLanguageSet), setSelectedLanguageSet] as const;\n};\n\nexport const usePreferencesLanguageSet = () => {\n const preferences = usePreferences();\n const preferencesLanguageSet: LanguageCodeSet = { langFrom: preferences.lang1, langTo: [preferences.lang2] };\n return preferencesLanguageSet;\n};\n\nexport const useDebouncedValue = <T>(value: T, delay: number) => {\n const [debouncedValue, setDebouncedValue] = React.useState<T>(value);\n\n React.useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n\nexport const useAllLanguageSets = () => {\n const [languages, setLanguages] = useCachedState<_StoredLanguageCodeSet[]>(\"languages\", []);\n\n return [languages.map(unifyLegacyLanguageSet), setLanguages] as const;\n};\n\nexport const useSourceLanguage = () => {\n const [sourceLanguage, setSourceLanguage] = useCachedState<LanguageCode>(\"sourceLanguage\", AUTO_DETECT);\n\n return [sourceLanguage, setSourceLanguage] as const;\n};\n\nexport const useTargetLanguages = () => {\n const preferences = usePreferences();\n const [targetLanguages, setTargetLanguages] = useCachedState<LanguageCode[]>(\n \"targetLanguages\",\n [preferences.lang1, preferences.lang2].filter((lang) => lang !== AUTO_DETECT),\n );\n\n return [targetLanguages, setTargetLanguages] as const;\n};\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\nimport querystring from \"querystring\";\nimport { request, ProxyAgent } from \"undici\";\nimport { TranslateOption, TranslateResponse } from \"./types\";\nimport { isSupported, getISOCode } from \"./languages\";\nimport { tokenGenerator } from \"./tokenGenerator\";\n\n/**\n * @function translate\n * @param {String} text The text to be translated.\n * @param {TranslateOption} options The options object for the translator.\n * @returns {TranslateResponse} The result containing the translation.\n */\nexport async function translate(text: string, options?: TranslateOption): Promise<TranslateResponse> {\n if (typeof options !== \"object\") options = {};\n text = String(text);\n\n // Check if a lanugage is in supported; if not, throw an error object.\n let error: Error | null = null;\n [ options.from, options.to ].forEach((lang) => {\n if (lang && !isSupported(lang)) {\n error = new Error();\n error.message = `The language '${lang}' is not supported.`;\n }\n });\n if (error) throw error;\n\n // If options object doesn\"t have \"from\" language, set it to \"auto\".\n if (!Object.prototype.hasOwnProperty.call(options, \"from\")) options.from = \"auto\";\n // If options object doesn\"t have \"to\" language, set it to \"en\".\n if (!Object.prototype.hasOwnProperty.call(options, \"to\")) options.to = \"en\";\n // If options object has a \"raw\" property evaluating to true, set it to true.\n options.raw = Boolean(options.raw);\n\n // Get ISO 639-1 codes for the languages.\n options.from = getISOCode(options.from);\n options.to = getISOCode(options.to);\n\n // Generate Google Translate token for the text to be translated.\n let token: any = await tokenGenerator(text);\n\n // URL & query string required by Google Translate.\n let baseUrl = \"https://translate.google.com/translate_a/single\";\n let data: any = {\n client: \"gtx\",\n sl: options.from,\n tl: options.to,\n hl: options.to,\n dt: [ \"at\", \"bd\", \"ex\", \"ld\", \"md\", \"qca\", \"rw\", \"rm\", \"ss\", \"t\" ],\n ie: \"UTF-8\",\n oe: \"UTF-8\",\n otf: 1,\n ssel: 0,\n tsel: 0,\n kc: 7,\n q: text,\n [token.name]: token.value\n };\n\n // Append query string to the request URL.\n let url = `${baseUrl}?${querystring.stringify(data)}`;\n\n let requestOptions: any;\n let requestUrl = url;\n // If request URL is greater than 2048 characters, use POST method.\n if (url.length > 2048) {\n delete data.q;\n requestUrl = `${baseUrl}?${querystring.stringify(data)}`;\n requestOptions = {\n method: \"POST\",\n body: new URLSearchParams({ q: text }).toString(),\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\",\n },\n };\n if (options.proxy) {\n requestOptions.dispatcher = new ProxyAgent(options.proxy);\n }\n }\n else {\n if (options.proxy) {\n requestOptions = { dispatcher: new ProxyAgent(options.proxy) };\n }\n }\n\n // Request translation from Google Translate.\n let response = await request(requestUrl, requestOptions);\n let body: any = await response.body.json();\n\n let result: TranslateResponse = {\n text: \"\",\n from: {\n language: {\n didYouMean: false,\n iso: \"\"\n },\n text: {\n autoCorrected: false,\n value: \"\",\n didYouMean: false\n }\n },\n raw: \"\"\n };\n\n // If user requested a raw output, add the raw response to the result\n if (options.raw) {\n result.raw = body;\n }\n\n // Parse body and add it to the result object.\n body[0].forEach((obj: any) => {\n if (obj[0]) {\n result.text += obj[0];\n }\n });\n\n if (body[2] === body[8][0][0]) {\n result.from.language.iso = body[2];\n }\n else {\n result.from.language.didYouMean = true;\n result.from.language.iso = body[8][0][0];\n }\n\n if (body[7] && body[7][0]) {\n let str = body[7][0];\n\n str = str.replace(/<b><i>/g, \"[\");\n str = str.replace(/<\\/i><\\/b>/g, \"]\");\n\n result.from.text.value = str;\n\n if (body[7][5] === true) {\n result.from.text.autoCorrected = true;\n }\n else {\n result.from.text.didYouMean = true;\n }\n }\n\n return result;\n}\n", "/**\n * Generated from https://translate.google.com\n *\n * The languages that Google Translate supports (as of 7/5/2020) alongside\n * their ISO 639-1 codes\n * @see https://cloud.google.com/translate/docs/languages\n * @see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n */\n\nexport const languages = {\n \"auto\": \"Auto-Detect\",\n \"ab\": \"Abkhaz\",\n \"ace\": \"Acehnese\",\n \"ach\": \"Acholi\",\n \"aa\": \"Afar\",\n \"af\": \"Afrikaans\",\n \"sq\": \"Albanian\",\n \"alz\": \"Alur\",\n \"am\": \"Amharic\",\n \"ar\": \"Arabic\",\n \"hy\": \"Armenian\",\n \"as\": \"Assamese\",\n \"av\": \"Avar\",\n \"awa\": \"Awadhi\",\n \"ay\": \"Aymara\",\n \"az\": \"Azerbaijani\",\n \"ban\": \"Balinese\",\n \"bal\": \"Baluchi\",\n \"bm\": \"Bambara\",\n \"bci\": \"Baoul\\u00e9\",\n \"ba\": \"Bashkir\",\n \"eu\": \"Basque\",\n \"btx\": \"Batak Karo\",\n \"bts\": \"Batak Simalungun\",\n \"bbc\": \"Batak Toba\",\n \"be\": \"Belarusian\",\n \"bem\": \"Bemba\",\n \"bn\": \"Bengali\",\n \"bew\": \"Betawi\",\n \"bho\": \"Bhojpuri\",\n \"bik\": \"Bikol\",\n \"bs\": \"Bosnian\",\n \"br\": \"Breton\",\n \"bg\": \"Bulgarian\",\n \"bua\": \"Buryat\",\n \"yue\": \"Cantonese\",\n \"ca\": \"Catalan\",\n \"ceb\": \"Cebuano\",\n \"ch\": \"Chamorro\",\n \"ce\": \"Chechen\",\n \"ny\": \"Chichewa\",\n \"zh-CN\": \"Chinese (Simplified)\",\n \"zh-TW\": \"Chinese (Traditional)\",\n \"chk\": \"Chuukese\",\n \"cv\": \"Chuvash\",\n \"co\": \"Corsican\",\n \"crh\": \"Crimean Tatar (Cyrillic)\",\n \"crh-Latn\": \"Crimean Tatar (Latin)\",\n \"hr\": \"Croatian\",\n \"cs\": \"Czech\",\n \"da\": \"Danish\",\n \"fa-AF\": \"Dari\",\n \"dv\": \"Dhivehi\",\n \"din\": \"Dinka\",\n \"doi\": \"Dogri\",\n \"dov\": \"Dombe\",\n \"nl\": \"Dutch\",\n \"dyu\": \"Dyula\",\n \"dz\": \"Dzongkha\",\n \"en\": \"English\",\n \"eo\": \"Esperanto\",\n \"et\": \"Estonian\",\n \"ee\": \"Ewe\",\n \"fo\": \"Faroese\",\n \"fj\": \"Fijian\",\n \"tl\": \"Filipino\",\n \"fi\": \"Finnish\",\n \"fon\": \"Fon\",\n \"fr\": \"French\",\n \"fr-CA\": \"French (Canada)\",\n \"fy\": \"Frisian\",\n \"fur\": \"Friulian\",\n \"ff\": \"Fulani\",\n \"gaa\": \"Ga\",\n \"gl\": \"Galician\",\n \"ka\": \"Georgian\",\n \"de\": \"German\",\n \"el\": \"Greek\",\n \"gn\": \"Guarani\",\n \"gu\": \"Gujarati\",\n \"ht\": \"Haitian Creole\",\n \"cnh\": \"Hakha Chin\",\n \"ha\": \"Hausa\",\n \"haw\": \"Hawaiian\",\n \"iw\": \"Hebrew\",\n \"hil\": \"Hiligaynon\",\n \"hi\": \"Hindi\",\n \"hmn\": \"Hmong\",\n \"hu\": \"Hungarian\",\n \"hrx\": \"Hunsrik\",\n \"iba\": \"Iban\",\n \"is\": \"Icelandic\",\n \"ig\": \"Igbo\",\n \"ilo\": \"Ilocano\",\n \"id\": \"Indonesian\",\n \"iu-Latn\": \"Inuktut (Latin)\",\n \"iu\": \"Inuktut (Syllabics)\",\n \"ga\": \"Irish\",\n \"it\": \"Italian\",\n \"jam\": \"Jamaican Patois\",\n \"ja\": \"Japanese\",\n \"jv\": \"Javanese\",\n \"kac\": \"Jingpo\",\n \"kl\": \"Kalaallisut\",\n \"kn\": \"Kannada\",\n \"kr\": \"Kanuri\",\n \"pam\": \"Kapampangan\",\n \"kk\": \"Kazakh\",\n \"kha\": \"Khasi\",\n \"km\": \"Khmer\",\n \"cgg\": \"Kiga\",\n \"kg\": \"Kikongo\",\n \"rw\": \"Kinyarwanda\",\n \"ktu\": \"Kituba\",\n \"trp\": \"Kokborok\",\n \"kv\": \"Komi\",\n \"gom\": \"Konkani\",\n \"ko\": \"Korean\",\n \"kri\": \"Krio\",\n \"ku\": \"Kurdish (Kurmanji)\",\n \"ckb\": \"Kurdish (Sorani)\",\n \"ky\": \"Kyrgyz\",\n \"lo\": \"Lao\",\n \"ltg\": \"Latgalian\",\n \"la\": \"Latin\",\n \"lv\": \"Latvian\",\n \"lij\": \"Ligurian\",\n \"li\": \"Limburgish\",\n \"ln\": \"Lingala\",\n \"lt\": \"Lithuanian\",\n \"lmo\": \"Lombard\",\n \"lg\": \"Luganda\",\n \"luo\": \"Luo\",\n \"lb\": \"Luxembourgish\",\n \"mk\": \"Macedonian\",\n \"mad\": \"Madurese\",\n \"mai\": \"Maithili\",\n \"mak\": \"Makassar\",\n \"mg\": \"Malagasy\",\n \"ms\": \"Malay\",\n \"ms-Arab\": \"Malay (Jawi)\",\n \"ml\": \"Malayalam\",\n \"mt\": \"Maltese\",\n \"mam\": \"Mam\",\n \"gv\": \"Manx\",\n \"mi\": \"Maori\",\n \"mr\": \"Marathi\",\n \"mh\": \"Marshallese\",\n \"mwr\": \"Marwadi\",\n \"mfe\": \"Mauritian Creole\",\n \"chm\": \"Meadow Mari\",\n \"mni-Mtei\": \"Meiteilon (Manipuri)\",\n \"min\": \"Minang\",\n \"lus\": \"Mizo\",\n \"mn\": \"Mongolian\",\n \"my\": \"Myanmar (Burmese)\",\n \"bm-Nkoo\": \"NKo\",\n \"nhe\": \"Nahuatl (Eastern Huasteca)\",\n \"ndc-ZW\": \"Ndau\",\n \"nr\": \"Ndebele (South)\",\n \"new\": \"Nepalbhasa (Newari)\",\n \"ne\": \"Nepali\",\n \"no\": \"Norwegian\",\n \"nus\": \"Nuer\",\n \"oc\": \"Occitan\",\n \"or\": \"Odia (Oriya)\",\n \"om\": \"Oromo\",\n \"os\": \"Ossetian\",\n \"pag\": \"Pangasinan\",\n \"pap\": \"Papiamento\",\n \"ps\": \"Pashto\",\n \"fa\": \"Persian\",\n \"pl\": \"Polish\",\n \"pt\": \"Portuguese (Brazil)\",\n \"pt-PT\": \"Portuguese (Portugal)\",\n \"pa\": \"Punjabi (Gurmukhi)\",\n \"pa-Arab\": \"Punjabi (Shahmukhi)\",\n \"qu\": \"Quechua\",\n \"kek\": \"Q\\u02bceqchi\\u02bc\",\n \"rom\": \"Romani\",\n \"ro\": \"Romanian\",\n \"rn\": \"Rundi\",\n \"ru\": \"Russian\",\n \"se\": \"Sami (North)\",\n \"sm\": \"Samoan\",\n \"sg\": \"Sango\",\n \"sa\": \"Sanskrit\",\n \"sat-Latn\": \"Santali (Latin)\",\n \"sat\": \"Santali (Ol Chiki)\",\n \"gd\": \"Scots Gaelic\",\n \"nso\": \"Sepedi\",\n \"sr\": \"Serbian\",\n \"st\": \"Sesotho\",\n \"crs\": \"Seychellois Creole\",\n \"shn\": \"Shan\",\n \"sn\": \"Shona\",\n \"scn\": \"Sicilian\",\n \"szl\": \"Silesian\",\n \"sd\": \"Sindhi\",\n \"si\": \"Sinhala\",\n \"sk\": \"Slovak\",\n \"sl\": \"Slovenian\",\n \"so\": \"Somali\",\n \"es\": \"Spanish\",\n \"su\": \"Sundanese\",\n \"sus\": \"Susu\",\n \"sw\": \"Swahili\",\n \"ss\": \"Swati\",\n \"sv\": \"Swedish\",\n \"ty\": \"Tahitian\",\n \"tg\": \"Tajik\",\n \"ber-Latn\": \"Tamazight\",\n \"ber\": \"Tamazight (Tifinagh)\",\n \"ta\": \"Tamil\",\n \"tt\": \"Tatar\",\n \"te\": \"Telugu\",\n \"tet\": \"Tetum\",\n \"th\": \"Thai\",\n \"bo\": \"Tibetan\",\n \"ti\": \"Tigrinya\",\n \"tiv\": \"Tiv\",\n \"tpi\": \"Tok Pisin\",\n \"to\": \"Tongan\",\n \"lua\": \"Tshiluba\",\n \"ts\": \"Tsonga\",\n \"tn\": \"Tswana\",\n \"tcy\": \"Tulu\",\n \"tum\": \"Tumbuka\",\n \"tr\": \"Turkish\",\n \"tk\": \"Turkmen\",\n \"tyv\": \"Tuvan\",\n \"ak\": \"Twi\",\n \"udm\": \"Udmurt\",\n \"uk\": \"Ukrainian\",\n \"ur\": \"Urdu\",\n \"ug\": \"Uyghur\",\n \"uz\": \"Uzbek\",\n \"ve\": \"Venda\",\n \"vec\": \"Venetian\",\n \"vi\": \"Vietnamese\",\n \"war\": \"Waray\",\n \"cy\": \"Welsh\",\n \"wo\": \"Wolof\",\n \"xh\": \"Xhosa\",\n \"sah\": \"Yakut\",\n \"yi\": \"Yiddish\",\n \"yo\": \"Yoruba\",\n \"yua\": \"Yucatec Maya\",\n \"zap\": \"Zapotec\",\n \"zu\": \"Zulu\",\n} as const;\n\n/**\n * Returns the ISO 639-1 code of the desiredLang \u2013 if it is supported by\n * Google Translate\n * @param {string} language The name or the code of the desired language\n * @returns {string|undefined} The ISO 639-1 code of the language or null if the\n * language is not supported\n */\nexport function getISOCode(language: string | undefined) {\n if (!language) return undefined;\n if (language in languages) return language;\n language = language.toLowerCase();\n if (language in languages) return language;\n\n const keys = (Object.keys(languages) as (keyof typeof languages)[]).filter((key) => {\n if (typeof languages[key] !== \"string\") return false;\n\n return languages[key].toLowerCase() === language;\n });\n\n return keys[0] || undefined;\n}\n\n/**\n * Returns true if the desiredLang is supported by Google Translate and false otherwise\n * @param {string} language The ISO 639-1 code or the name of the desired language.\n * @returns {boolean} If the language is supported or not.\n */\nexport function isSupported(language: string | undefined) {\n return Boolean(getISOCode(language));\n}\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\n\nimport { request } from \"undici\";\n\nfunction zr(a: string) {\n let b: any;\n if (null !== yr) b = yr;\n else {\n b = wr(String.fromCharCode(84));\n let c = wr(String.fromCharCode(75));\n b = [ b(), b() ];\n b[1] = c();\n b = (yr = window[b.join(c())] || \"\") || \"\";\n }\n let d: any = wr(String.fromCharCode(116));\n let c: any = wr(String.fromCharCode(107));\n d = [ d(), d() ];\n d[1] = c();\n c = \"&\" + d.join(\"\") + \"=\";\n d = b.split(\".\");\n b = Number(d[0]) || 0;\n\n for (var e: any[] = [], f = 0, g = 0; g < a.length; g++) {\n let l = a.charCodeAt(g);\n 128 > l ? e[f++] = l : (2048 > l ? e[f++] = l >> 6 | 192 : ((l & 64512) == 55296 && g + 1 < a.length && (a.charCodeAt(g + 1) & 64512) == 56320 ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023), e[f++] = l >> 18 | 240, e[f++] = l >> 12 & 63 | 128) : e[f++] = l >> 12 | 224, e[f++] = l >> 6 & 63 | 128), e[f++] = l & 63 | 128);\n }\n let h: number = Number(b);\n for (let f = 0; f < e.length; f++) a += e[f], h = xr(h, \"+-a^+6\");\n h = xr(h, \"+-3^+b+-f\");\n h ^= Number(d[1]) || 0;\n 0 > h && (h = (h & 2147483647) + 2147483648);\n h %= 1E6;\n return c + (a.toString() + \".\" + (h ^ b));\n}\n\nlet yr: string | null = null;\nlet wr = function(a: string) {\n return function() {\n return a;\n };\n};\nlet xr = function(a: number, b: string) {\n for (let c = 0; c < b.length - 2; c += 3) {\n let d = b.charAt(c + 2);\n let e = d >= \"a\" ? d.charCodeAt(0) - 87 : Number(d);\n e = b.charAt(c + 1) == \"+\" ? a >>> e : a << e;\n a = b.charAt(c) == \"+\" ? a + e & 4294967295 : a ^ e;\n }\n return a;\n};\n\nconst config = new Map();\n\nconst window: any = {\n TKK: config.get(\"TKK\") || \"0\"\n};\n\nasync function updateTKK() {\n let now = Math.floor(Date.now() / 3600000);\n\n if (Number(window.TKK.split(\".\")[0]) !== now) {\n const response = await request(\"https://translate.google.com\");\n const body = await response.body.text();\n\n // code will extract something like tkk:'1232135.131231321312', we need only value\n const code = body.match(/tkk:'\\d+.\\d+'/g);\n\n if (code && code.length > 0) {\n // extracting value tkk:'1232135.131231321312', this will extract only token: 1232135.131231321312\n const xt = code[0].split(\":\")[1].replace(/'/g, \"\");\n\n window.TKK = xt;\n config.set(\"TKK\", xt);\n }\n }\n}\n\nexport async function tokenGenerator(text: string) {\n try {\n await updateTKK();\n\n let tk = zr(text);\n tk = tk.replace(\"&tk=\", \"\");\n return { name: \"tk\", value: tk };\n }\n catch (error) {\n return error;\n }\n}\n", "import { translate } from \"../vendor/@iamtraction-translate/src\";\nimport * as googleTTS from \"google-tts-api\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport * as https from \"https\";\nimport * as child_process from \"child_process\";\nimport { existsSync, writeFileSync, unlinkSync } from \"fs\";\nimport { LanguageCode } from \"./languages\";\nimport { LanguageCodeSet } from \"./types\";\nimport { HttpsProxyAgent } from \"https-proxy-agent\";\n\nexport const AUTO_DETECT = \"auto\";\n\nexport type SimpleTranslateResult = {\n originalText: string;\n translatedText: string;\n pronunciationText?: string;\n langFrom: LanguageCode;\n langTo: LanguageCode;\n proxy?: string;\n};\n\nexport class TranslateError extends Error {}\n\nconst extractPronounceTextFromRaw = (raw: string) => {\n return raw?.[0]?.[1]?.[2];\n};\n\nexport async function simpleTranslate(text: string, options: LanguageCodeSet): Promise<SimpleTranslateResult> {\n try {\n if (!text) {\n return {\n originalText: text,\n translatedText: \"\",\n pronunciationText: \"\",\n langFrom: options.langFrom,\n langTo: options.langTo[0],\n };\n }\n\n const translated = await translate(text, {\n from: options.langFrom,\n to: options.langTo[0],\n raw: true,\n proxy: options.proxy,\n });\n\n return {\n originalText: text,\n translatedText: translated.text,\n pronunciationText: extractPronounceTextFromRaw(translated?.raw),\n langFrom: translated?.from?.language?.iso as LanguageCode,\n langTo: options.langTo[0],\n };\n } catch (err) {\n if (err instanceof Error) {\n if (err.name === \"TooManyRequestsError\") {\n const error = new TranslateError();\n error.name = \"Too many requests\";\n error.message = \"please try again later\";\n throw error;\n }\n\n const error = new TranslateError();\n error.name = err.name;\n error.message = err.message;\n throw error;\n }\n\n throw err;\n }\n}\n\nexport async function doubleWayTranslate(text: string, options: LanguageCodeSet) {\n if (!text) {\n return [];\n }\n\n if (options.langFrom === AUTO_DETECT) {\n const translated1 = await simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n proxy: options.proxy,\n });\n\n if (translated1?.langFrom) {\n const translated2 = await simpleTranslate(translated1.translatedText, {\n langFrom: options.langTo[0],\n langTo: [translated1.langFrom],\n proxy: options.proxy,\n });\n\n return [translated1, translated2];\n }\n\n return [];\n } else {\n return await Promise.all([\n simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n proxy: options.proxy,\n }),\n simpleTranslate(text, {\n langFrom: options.langTo[0],\n langTo: [options.langFrom],\n proxy: options.proxy,\n }),\n ]);\n }\n}\n\nexport async function playTTS(text: string, langTo: string, proxy?: string) {\n const audioUrl = googleTTS.getAudioUrl(text, {\n lang: langTo,\n slow: false,\n host: \"https://translate.google.com\",\n });\n\n let agent: HttpsProxyAgent<string> | undefined;\n\n if (proxy) {\n try {\n agent = new HttpsProxyAgent(proxy);\n } catch (e) {\n console.error(`Error creating proxy agent for ${proxy}:`, e);\n agent = undefined; // Fallback to no proxy if agent creation fails\n }\n }\n\n // The options object for https.get. If 'agent' is undefined, it won't be included,\n // and https.get will use the default agent.\n const requestOptions: https.RequestOptions = {\n agent: agent,\n };\n\n https.get(audioUrl, requestOptions, (response) => {\n const chunks: Uint8Array[] = [];\n\n response.on(\"data\", (chunk) => {\n chunks.push(chunk);\n });\n\n response\n .on(\"end\", () => {\n const audioData = Buffer.concat(chunks);\n\n const tempFilePath = path.join(os.tmpdir(), \"translation.mp3\");\n writeFileSync(tempFilePath, audioData);\n\n // Play the audio file using afplay\n const afplayProcess = child_process.spawn(\"afplay\", [tempFilePath]);\n\n afplayProcess.on(\"exit\", (code) => {\n if (code !== 0) {\n console.error(`Error playing audio: afplay exited with code ${code}`);\n }\n if (existsSync(tempFilePath)) {\n unlinkSync(tempFilePath);\n }\n });\n })\n .on(\"error\", (error) => {\n console.error(\"Error downloading audio:\", error);\n });\n });\n}\n", "import { languages as _languages } from \"../vendor/@iamtraction-translate/src/languages\";\n\nexport type LanguageCode = keyof typeof _languages;\nexport type LanguageName = (typeof _languages)[LanguageCode];\nexport type LanguagesItem = {\n code: LanguageCode;\n name: LanguageName;\n};\nexport const english: LanguagesItem = { code: \"en\", name: _languages.en };\nexport const autoDetect: LanguagesItem = { code: \"auto\", name: _languages.auto };\n\nexport const languages: LanguagesItem[] = (Object.keys(_languages) as (keyof typeof _languages)[]).map((code) => ({\n code,\n name: _languages[code],\n}));\n\nexport const supportedLanguagesByCode = languages.reduce(\n (acc, lang) => ({\n ...acc,\n [lang.code]: lang,\n }),\n {} as Record<LanguageCode, LanguagesItem>,\n);\nexport const supportedLanguagesByCountry = languages.reduce(\n (acc, lang) => ({\n ...acc,\n [lang.name]: lang,\n }),\n {} as Record<LanguageName, LanguagesItem>,\n);\n", "import { Action, ActionPanel, Icon, List, clearSearchBar } from \"@raycast/api\";\nimport React from \"react\";\nimport { useTargetLanguages } from \"../hooks\";\nimport { languages, supportedLanguagesByCode } from \"../languages\";\nimport { AUTO_DETECT } from \"../simple-translate\";\n\nexport const TargetLanguageList: React.VFC = () => {\n const [targetLanguages, setTargetLanguages] = useTargetLanguages();\n\n return (\n <List searchBarPlaceholder=\"Search languages\">\n <List.Section title=\"Selected Languages\" subtitle={`${targetLanguages.length}`}>\n {targetLanguages.map((lang) => (\n <List.Item\n key={lang}\n title={supportedLanguagesByCode[lang].name}\n subtitle={lang}\n actions={\n targetLanguages.length === 1 && targetLanguages[0] === \"en\" ? undefined : (\n <ActionPanel>\n <Action\n title=\"Remove\"\n icon={Icon.Minus}\n style={Action.Style.Destructive}\n shortcut={{ modifiers: [\"ctrl\"], key: \"x\" }}\n onAction={() => {\n const updated = targetLanguages.filter((l) => l != lang);\n setTargetLanguages(updated.length === 0 ? [\"en\"] : updated);\n clearSearchBar();\n }}\n />\n <Action\n title=\"Move up\"\n icon={Icon.ArrowUp}\n shortcut={{ modifiers: [\"shift\"], key: \"arrowUp\" }}\n onAction={() => {\n const index = targetLanguages.indexOf(lang);\n if (index > 0) {\n const updated = [...targetLanguages];\n updated.splice(index - 1, 0, updated.splice(index, 1)[0]);\n setTargetLanguages(updated);\n }\n }}\n />\n <Action\n title=\"Move down\"\n icon={Icon.ArrowDown}\n shortcut={{ modifiers: [\"shift\"], key: \"arrowDown\" }}\n onAction={() => {\n const index = targetLanguages.indexOf(lang);\n if (index < targetLanguages.length - 1) {\n const updated = [...targetLanguages];\n updated.splice(index + 1, 0, updated.splice(index, 1)[0]);\n setTargetLanguages(updated);\n }\n }}\n />\n </ActionPanel>\n )\n }\n />\n ))}\n </List.Section>\n <List.Section title=\"Available Languages\">\n {languages\n .filter((lang) => lang.code != AUTO_DETECT && !targetLanguages.includes(lang.code))\n .map((lang) => (\n <List.Item\n key={lang.code}\n title={lang.name}\n subtitle={lang.code}\n actions={\n <ActionPanel>\n <Action\n title=\"Add\"\n icon={Icon.Plus}\n onAction={() => {\n setTargetLanguages((prev) => [...prev, lang.code]);\n clearSearchBar();\n }}\n />\n </ActionPanel>\n }\n />\n ))}\n </List.Section>\n </List>\n );\n};\n", "import { ActionPanel, List, Toast, showToast } from \"@raycast/api\";\nimport { usePromise } from \"@raycast/utils\";\nimport { supportedLanguagesByCode } from \"../languages\";\nimport { simpleTranslate } from \"../simple-translate\";\nimport { LanguageCodeSet } from \"../types\";\nimport { ConfigurableCopyPasteActions, OpenOnGoogleTranslateWebsiteAction, ToggleFullTextAction } from \"../actions\";\n\nexport function QuickTranslateListItem(props: {\n debouncedText: string;\n languageSet: LanguageCodeSet;\n isShowingDetail: boolean;\n setIsShowingDetail: (isShowingDetail: boolean) => void;\n setIsLoading: (isLoading: boolean) => void;\n}) {\n let langFrom = supportedLanguagesByCode[props.languageSet.langFrom];\n const langTo = supportedLanguagesByCode[props.languageSet.langTo[0]];\n\n const { data: result, isLoading: isLoading } = usePromise(simpleTranslate, [props.debouncedText, props.languageSet], {\n onWillExecute() {\n props.setIsLoading(true);\n },\n onData() {\n props.setIsLoading(false);\n },\n onError(error) {\n props.setIsLoading(false);\n showToast({\n style: Toast.Style.Failure,\n title: `Could not translate to ${langTo.name}`,\n message: error.toString(),\n });\n },\n });\n\n if (isLoading) {\n return (\n <List.Item\n title={`Translating to ${langTo.name}...`}\n accessories={[\n {\n text: langTo.name,\n tooltip: `${langFrom.name} -> ${langTo.name}`,\n },\n ]}\n />\n );\n }\n\n if (!result) {\n return null;\n }\n\n // Reassigning langFrom to the detected language in case it was auto-detected\n langFrom = supportedLanguagesByCode[result.langFrom];\n\n return (\n <List.Item\n key={langTo.code}\n title={result.translatedText}\n accessories={[\n {\n text: langTo.name,\n tooltip: `${langFrom.name} -> ${langTo.name}`,\n },\n ]}\n detail={\n <List.Item.Detail\n markdown={result.translatedText}\n metadata={\n <List.Item.Detail.Metadata>\n <List.Item.Detail.Metadata.TagList title=\"Source Language\">\n {props.languageSet.langFrom === \"auto\" && (\n <List.Item.Detail.Metadata.TagList.Item text={supportedLanguagesByCode.auto.name} color={\"#FECD57\"} />\n )}\n <List.Item.Detail.Metadata.TagList.Item text={langFrom.name} color={\"#A0D468\"} />\n </List.Item.Detail.Metadata.TagList>\n <List.Item.Detail.Metadata.TagList title=\"Target Language\">\n <List.Item.Detail.Metadata.TagList.Item text={langTo.name} color={\"#B3A5EF\"} />\n </List.Item.Detail.Metadata.TagList>\n </List.Item.Detail.Metadata>\n }\n />\n }\n actions={\n <ActionPanel>\n <ActionPanel.Section>\n <ConfigurableCopyPasteActions defaultActionsPrefix=\"Translation\" value={result.translatedText} />\n <ToggleFullTextAction onAction={() => props.setIsShowingDetail(!props.isShowingDetail)} />\n <OpenOnGoogleTranslateWebsiteAction translationText={props.debouncedText} translation={result} />\n </ActionPanel.Section>\n </ActionPanel>\n }\n />\n );\n}\n", "import React from \"react\";\nimport { Action, Icon, getPreferenceValues } from \"@raycast/api\";\nimport { SimpleTranslateResult } from \"./simple-translate\";\n\ninterface ActionsOpts {\n value: string;\n defaultActionsPrefix?: string;\n}\n\nexport const ConfigurableCopyPasteActions = ({ defaultActionsPrefix, value }: ActionsOpts) => {\n const defaultPreference = getPreferenceValues<ExtensionPreferences>().defaultAction;\n\n const pasteAction = (\n <Action.Paste title={defaultActionsPrefix ? `Paste ${defaultActionsPrefix}` : `Paste`} content={value} />\n );\n const copyAction = (\n <Action.CopyToClipboard title={defaultActionsPrefix ? `Copy ${defaultActionsPrefix}` : `Copy`} content={value} />\n );\n\n if (defaultPreference === \"paste\") {\n return (\n <>\n {pasteAction}\n {copyAction}\n </>\n );\n }\n\n return (\n <>\n {copyAction}\n {pasteAction}\n </>\n );\n};\n\nexport const ToggleFullTextAction: React.VFC<{\n onAction: () => void;\n}> = ({ onAction }) => {\n return (\n <Action title=\"Toggle Full Text\" icon={Icon.Text} onAction={onAction} shortcut={{ modifiers: [\"cmd\"], key: \"f\" }} />\n );\n};\n\nexport const OpenOnGoogleTranslateWebsiteAction: React.VFC<{\n translation: Pick<SimpleTranslateResult, \"langFrom\" | \"langTo\">;\n translationText: string;\n}> = ({ translationText, translation }) => {\n return (\n <Action.OpenInBrowser\n title=\"Open in Google Translate\"\n shortcut={{ modifiers: [\"opt\"], key: \"enter\" }}\n url={\n \"https://translate.google.com/?sl=\" +\n translation.langFrom +\n \"&tl=\" +\n translation.langTo +\n \"&text=\" +\n encodeURIComponent(translationText) +\n \"&op=translate\"\n }\n />\n );\n};\n"], - "mappings": "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AAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,uBAAuB,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAK,GAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,GAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,KAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAO,IAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI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AC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAO,KAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OA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,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMU,GAAS,CACb,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMM,GAAU,CACd,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEME,GAAiB,CACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,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,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMC,GAAc,CAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAA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L,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,qBACL,IAAK,WACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,SACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,WACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,kBACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,eACH,MAAO,aACT,IAAK,cACL,IAAK,mBACL,IAAK,SACL,IAAK,aACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,eACL,IAAK,UACH,MAAO,eACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,KACL,IAAK,SACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,KACH,MAAO,cACT,IAAK,cACH,MAAO,cACT,IAAK,UACL,IAAK,MACL,IAAK,OACL,IAAK,SACL,IAAK,SACH,MAAO,SACT,IAAK,UACL,IAAK,SACH,MAAO,SACT,IAAK,cACL,IAAK,MACL,IAAK,YACL,IAAK,cACH,MAAO,YACT,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,UACL,IAAK,cACH,MAAO,cACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,iBACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,cACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACL,IAAK,WACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,iBACL,IAAK,kBACH,MAAO,iBACT,IAAK,UACL,IAAK,WACL,IAAK,kBACL,IAAK,SACL,IAAK,UACL,IAAK,aACL,IAAK,MACL,IAAK,YACL,IAAK,QACH,MAAO,MACT,IAAK,UACH,MAAO,UACT,IAAK,OACL,IAAK,aACL,IAAK,UACL,IAAK,SACL,IAAK,WACH,MAAO,OACT,IAAK,sBACL,IAAK,SACL,IAAK,WACH,MAAO,SACT,IAAK,cACL,IAAK,cACH,MAAO,cACT,IAAK,aACL,IAAK,QACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,OACL,IAAK,cACL,IAAK,SACH,MAAO,YACT,IAAK,UACL,IAAK,gBACL,IAAK,SACL,IAAK,aACL,IAAK,SACL,IAAK,iBACL,IAAK,iBACL,IAAK,UACL,IAAK,WACL,IAAK,cACH,MAAO,SACT,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,cACH,MAAO,cACT,IAAK,cACL,IAAK,WACH,MAAO,WACT,IAAK,YACL,IAAK,kBACL,IAAK,QACL,IAAK,UACL,IAAK,cACL,IAAK,SACL,IAAK,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O,kBACP,GAAM,WACN,GAAM,WACN,IAAO,SACP,GAAM,cACN,GAAM,UACN,GAAM,SACN,IAAO,cACP,GAAM,SACN,IAAO,QACP,GAAM,QACN,IAAO,OACP,GAAM,UACN,GAAM,cACN,IAAO,SACP,IAAO,WACP,GAAM,OACN,IAAO,UACP,GAAM,SACN,IAAO,OACP,GAAM,qBACN,IAAO,mBACP,GAAM,SACN,GAAM,MACN,IAAO,YACP,GAAM,QACN,GAAM,UACN,IAAO,WACP,GAAM,aACN,GAAM,UACN,GAAM,aACN,IAAO,UACP,GAAM,UACN,IAAO,MACP,GAAM,gBACN,GAAM,aACN,IAAO,WACP,IAAO,WACP,IAAO,WACP,GAAM,WACN,GAAM,QACN,UAAW,eACX,GAAM,YACN,GAAM,UACN,IAAO,MACP,GAAM,OACN,GAAM,QACN,GAAM,UACN,GAAM,cACN,IAAO,UACP,IAAO,mBACP,IAAO,cACP,WAAY,uBACZ,IAAO,SACP,IAAO,OACP,GAAM,YACN,GAAM,oBACN,UAAW,MACX,IAAO,6BACP,SAAU,OACV,GAAM,kBACN,IAAO,sBACP,GAAM,SACN,GAAM,YACN,IAAO,OACP,GAAM,UACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,IAAO,aACP,IAAO,aACP,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,sBACN,QAAS,wBACT,GAAM,qBACN,UAAW,sBACX,GAAM,UACN,IAAO,qBACP,IAAO,SACP,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,QACN,GAAM,WACN,WAAY,kBACZ,IAAO,qBACP,GAAM,eACN,IAAO,SACP,GAAM,UACN,GAAM,UACN,IAAO,qBACP,IAAO,OACP,GAAM,QACN,IAAO,WACP,IAAO,WACP,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,SACN,GAAM,UACN,GAAM,YACN,IAAO,OACP,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,WAAY,YACZ,IAAO,uBACP,GAAM,QACN,GAAM,QACN,GAAM,SACN,IAAO,QACP,GAAM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", - "names": ["require_lite", "__commonJSMin", "exports", "has", "dequal", "foo", "bar", "ctor", "len", "require_useDeepMemo", "__commonJSMin", "exports", "react_1", "lite_1", "useDeepMemo", "value", "ref", "signalRef", "require_useLatest", "__commonJSMin", "exports", "react_1", "useLatest", "value", "ref", "require_handle_error_toast_action", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "fs", "path", "api_1", "handleErrorToastAction", "error", "privateExtension", "title", "extensionURL", "packageJSON", "fallback", "toast", "require_usePromise", "__commonJSMin", "exports", "react_1", "api_1", "useDeepMemo_1", "useLatest_1", "handle_error_toast_action_1", "usePromise", "fn", "args", "options", "lastCallId", "state", "set", "fnRef", "latestAbortable", "latestArgs", "latestOnError", "latestOnData", "latestOnWillExecute", "latestValue", "latestCallback", "callback", "callId", "prevState", "bindPromiseIfNeeded", "data", "error", "toast", "revalidate", "mutate", "asyncUpdate", "dataBeforeOptimisticUpdate", "update", "err", "isLoading", "require_useCachedState", "__commonJSMin", "exports", "react_1", "api_1", "useLatest_1", "replacer", "key", "_value", "value", "reviver", "_key", "rootCache", "cacheMap", "useCachedState", "initialState", "config", "cacheKey", "cache", "keyRef", "initialValueRef", "cachedState", "error", "state", "err", "stateRef", "setStateAndCache", "updater", "newValue", "stringifiedValue", "require_object_hash", "__commonJSMin", "exports", "module", "crypto", "objectHash", "object", "options", "applyDefaults", "hash", "hashes", "encodings", "sourceOptions", "i", "isNativeFunction", "f", "exp", "hashingStream", "PassThrough", "hasher", "typeHasher", "buf", "stream", "writeTo", "context", "write", "str", "value", "type", "pattern", "objString", "objType", "objectNumber", "keys", "key", "self", "arr", "unordered", "entry", "contextAdditions", "entries", "strm", "localContext", "date", "sym", "err", "bool", "string", "fn", "number", "xml", "regex", "url", "map", "set", "file", "b", "require_useCachedPromise", "__commonJSMin", "exports", "__importDefault", "mod", "react_1", "object_hash_1", "useCachedState_1", "usePromise_1", "useLatest_1", "emptyCache", "useCachedPromise", "fn", "args", "options", "initialData", "keepPreviousData", "usePromiseOptions", "lastUpdateFrom", "cachedData", "mutateCache", "laggyDataRef", "_mutate", "revalidate", "state", "data", "returnedData", "latestData", "mutate", "asyncUpdate", "dataBeforeOptimisticUpdate", "err", "require_media_typer", "__commonJSMin", "exports", "SUBTYPE_NAME_REGEXP", "TYPE_NAME_REGEXP", "TYPE_REGEXP", "format", "parse", "test", "obj", "subtype", "suffix", "type", "string", "match", "index", "MediaType", "require_content_type", "__commonJSMin", "exports", "PARAM_REGEXP", "TEXT_REGEXP", "TOKEN_REGEXP", "QESC_REGEXP", "QUOTE_REGEXP", "TYPE_REGEXP", "format", "parse", "obj", "parameters", "type", "string", "param", "params", "i", "qstring", "header", "getcontenttype", "index", "ContentType", "key", "match", "value", "val", "str", "require_lib", "__commonJSMin", "exports", "module", "conversions", "sign", "x", "evenRound", "createNumberConversion", "bitLength", "typeOpts", "lowerBound", "upperBound", "moduloVal", "moduloBound", "V", "opts", "val", "c", "i", "S", "n", "U", "d", "a", "b", "require_utils", "__commonJSMin", "exports", "module", "target", "source", "keys", "i", "impl", "wrapper", "require_mappingTable", "__commonJSMin", "exports", "module", "require_tr46", "__commonJSMin", "exports", "module", "punycode", "mappingTable", "PROCESSING_OPTIONS", "normalize", "str", "s", "findStatus", "val", "start", "end", "mid", "target", "regexAstralSymbols", "countSymbols", "string", "mapChars", "domain_name", "useSTD3", "processing_option", "hasError", "processed", "len", "i", "codePoint", "status", "combiningMarksRegex", "validateLabel", "label", "error", "processing", "result", "labels", "validation", "verifyDnsLength", "l", "total", "require_url_state_machine", "__commonJSMin", "exports", "module", "punycode", "tr46", "specialSchemes", "failure", "countSymbols", "str", "at", "input", "idx", "c", "isASCIIDigit", "isASCIIAlpha", "isASCIIAlphanumeric", "isASCIIHex", "isSingleDot", "buffer", "isDoubleDot", "isWindowsDriveLetterCodePoints", "cp1", "cp2", "isWindowsDriveLetterString", "string", "isNormalizedWindowsDriveLetterString", "containsForbiddenHostCodePoint", "containsForbiddenHostCodePointExcludingPercent", "isSpecialScheme", "scheme", "isSpecial", "url", "defaultPort", "percentEncode", "hex", "utf8PercentEncode", "buf", "i", "utf8PercentDecode", "output", "isC0ControlPercentEncode", "extraPathPercentEncodeSet", "isPathPercentEncode", "extraUserinfoPercentEncodeSet", "isUserinfoPercentEncode", "percentEncodeChar", "encodeSetPredicate", "cStr", "parseIPv4Number", "R", "parseIPv4", "parts", "numbers", "part", "n", "ipv4", "counter", "serializeIPv4", "address", "parseIPv6", "pieceIndex", "compress", "pointer", "value", "length", "numbersSeen", "ipv4Piece", "number", "swaps", "temp", "serializeIPv6", "findLongestZeroSequence", "ignore0", "parseHost", "isSpecialArg", "parseOpaqueHost", "domain", "asciiDomain", "ipv4Host", "decoded", "arr", "maxIdx", "maxLen", "currStart", "currLen", "serializeHost", "host", "trimControlChars", "trimTabAndNewline", "shortenPath", "path", "isNormalizedWindowsDriveLetter", "includesCredentials", "cannotHaveAUsernamePasswordPort", "URLStateMachine", "base", "encodingOverride", "stateOverride", "res", "ret", "len", "codePoint", "encodedCodePoints", "port", "fileOtherwiseCodePoints", "serializeURL", "excludeFragment", "serializeOrigin", "tuple", "result", "options", "usm", "username", "password", "integer", "require_URL_impl", "__commonJSMin", "exports", "usm", "constructorArgs", "url", "base", "parsedBase", "parsedURL", "v", "input", "require_URL", "__commonJSMin", "exports", "module", "conversions", "utils", "Impl", "impl", "URL", "url", "args", "i", "V", "obj", "constructorArgs", "privateData", "require_public_api", "__commonJSMin", "exports", "require_lib", "__commonJSMin", "exports", "module", "_interopDefault", "ex", "Stream", "http", "Url", "whatwgUrl", "https", "zlib", "Readable", "BUFFER", "TYPE", "Blob", "_Blob", "blobParts", "options", "buffers", "size", "a", "length", "i", "element", "buffer", "type", "buf", "ab", "readable", "start", "end", "relativeStart", "relativeEnd", "span", "slicedBuffer", "blob", "FetchError", "message", "systemError", "convert", "INTERNALS", "PassThrough", "Body", "body", "_this", "_ref", "_ref$size", "_ref$timeout", "timeout", "isURLSearchParams", "isBlob", "err", "error", "consumeBody", "ct", "_this2", "_this3", "convertBody", "proto", "name", "desc", "_this4", "accum", "accumBytes", "abort", "resolve", "reject", "resTimeout", "chunk", "headers", "charset", "res", "str", "obj", "clone", "instance", "p1", "p2", "extractContentType", "getTotalBytes", "writeToStream", "dest", "invalidTokenRegex", "invalidHeaderCharRegex", "validateName", "validateValue", "value", "find", "map", "key", "MAP", "Headers", "_Headers", "init", "rawHeaders", "headerNames", "headerName", "method", "pairs", "pair", "callback", "thisArg", "getHeaders", "_pairs$i", "createHeadersIterator", "kind", "k", "INTERNAL", "target", "iterator", "HeadersIteratorPrototype", "_INTERNAL", "index", "values", "len", "exportNodeCompatibleHeaders", "hostHeaderKey", "createHeadersLenient", "val", "INTERNALS$1", "STATUS_CODES", "Response", "_Response", "opts", "status", "contentType", "INTERNALS$2", "URL", "parse_url", "format_url", "parseURL", "urlStr", "streamDestructionSupported", "isRequest", "input", "isAbortSignal", "signal", "Request", "_Request", "parsedURL", "inputBody", "getNodeRequestOptions", "request", "contentLengthValue", "totalBytes", "agent", "AbortError", "URL$1", "PassThrough$1", "isDomainOrSubdomain", "destination", "original", "orig", "isSameProtocol", "fetch", "url", "send", "response", "destroyStream", "abortAndFinalize", "finalize", "req", "reqTimeout", "socket", "fixResponseChunkedTransferBadEnding", "s", "hadError", "hasDataListener", "location", "locationURL", "requestOpts", "response_options", "codings", "zlibOptions", "raw", "errorCallback", "stream", "code", "require_node_ponyfill", "__commonJSMin", "exports", "module", "nodeFetch", "realFetch", "fetch", "url", "options", "require_useFetch", "__commonJSMin", "exports", "__importDefault", "mod", "react_1", "media_typer_1", "content_type_1", "useCachedPromise_1", "useLatest_1", "cross_fetch_1", "isJSON", "contentTypeHeader", "ct", "mediaType", "defaultParsing", "response", "useFetch", "url", "options", "parseResponse", "initialData", "execute", "keepPreviousData", "onError", "onData", "onWillExecute", "fetchOptions", "useCachedPromiseOptions", "parseResponseRef", "abortable", "fn", "res", "exports", "signals_js_1", "exports", "processOk", "process", "kExitEmitter", "global", "ObjectDefineProperty", "Emitter", "ev", "fn", "list", "i", "code", "signal", "ret", "SignalExitBase", "signalExitWrap", "handler", "cb", "opts", "SignalExitFallback", "SignalExit", "#hupSig", "#emitter", "#process", "#originalProcessEmit", "#originalProcessReallyExit", "#sigListeners", "#loaded", "sig", "listeners", "count", "p", "s", "a", "#processEmit", "#processReallyExit", "listener", "args", "og", "_a", "require_exec_utils", "__commonJSMin", "exports", "__importDefault", "mod", "node_buffer_1", "node_stream_1", "node_util_1", "signal_exit_1", "getSpawnedPromise", "spawned", "timeout", "spawnedPromise", "resolve", "reject", "exitCode", "signal", "error", "timeoutId", "timeoutPromise", "_resolve", "safeSpawnedPromise", "removeExitHandler", "MaxBufferError", "streamPipelinePromisified", "bufferStream", "options", "encoding", "isBuffer", "stream", "length", "chunks", "chunk", "getStream", "inputStream", "rejectPromise", "getBufferedData", "streamPromise", "getSpawnedResult", "stdout", "stderr", "processDone", "stdoutPromise", "stderrPromise", "stripFinalNewline", "input", "LF", "CR", "handleOutput", "value", "getErrorPrefix", "timedOut", "makeError", "command", "parentError", "execaMessage", "shortMessage", "message", "defaultParsing", "require_useExec", "__commonJSMin", "exports", "__importDefault", "mod", "node_child_process_1", "react_1", "useCachedPromise_1", "useLatest_1", "exec_utils_1", "SPACES_REGEXP", "parseCommand", "command", "args", "tokens", "token", "previousToken", "useExec", "optionsOrArgs", "options", "parseOutput", "input", "onData", "onWillExecute", "initialData", "execute", "keepPreviousData", "onError", "execOptions", "useCachedPromiseOptions", "abortable", "parseOutputRef", "fn", "_command", "_args", "_options", "file", "spawned", "spawnedPromise", "error", "exitCode", "signal", "timedOut", "stdoutResult", "stderrResult", "stdout", "stderr", "require_useSQL", "__commonJSMin", "exports", "__importDefault", "mod", "jsx_runtime_1", "api_1", "node_fs_1", "promises_1", "node_os_1", "node_child_process_1", "node_path_1", "object_hash_1", "react_1", "usePromise_1", "useLatest_1", "exec_utils_1", "handle_error_toast_action_1", "useSQL", "databasePath", "query", "options", "permissionPriming", "usePromiseOptions", "permissionView", "setPermissionView", "latestOptions", "abortable", "handleError", "_error", "error", "PermissionError", "isPermissionError", "PermissionErrorScreen", "fn", "workaroundCopiedDb", "abortSignal", "spawned", "spawnedPromise", "exitCode", "signal", "stdoutResult", "stderrResult", "checkAborted", "tempFolder", "message", "macosVenturaAndLater", "preferencesString", "props", "action", "require_useForm", "__commonJSMin", "exports", "react_1", "useLatest_1", "FormValidation", "validationError", "validation", "value", "valueIsValid", "useForm", "props", "_onSubmit", "initialValues", "values", "setValues", "errors", "setErrors", "refs", "latestValidation", "latestOnSubmit", "focus", "id", "handleSubmit", "validationErrors", "error", "result", "setValidationError", "setValue", "itemProps", "target", "event", "instance", "reset", "require_useAI", "__commonJSMin", "exports", "react_1", "api_1", "usePromise_1", "useAI", "prompt", "options", "creativity", "stream", "model", "usePromiseOptions", "data", "setData", "abortable", "isLoading", "error", "revalidate", "shouldStream", "x", "require_useFrecencySorting", "__commonJSMin", "exports", "react_1", "useLatest_1", "useCachedState_1", "HALF_LIFE_DAYS", "MS_PER_DAY", "DECAY_RATE_CONSTANT", "VISIT_TYPE_POINTS", "getNewFrecency", "item", "now", "lastVisited", "frecency", "visitAgeInDays", "currentVisitValue", "totalVisitValue", "defaultKey", "useFrecencySorting", "data", "options", "keyRef", "sortUnvisitedRef", "storedFrecencies", "setStoredFrecencies", "visitItem", "itemKey", "newFrecency", "resetRanking", "newFrencencies", "a", "b", "frecencyA", "frecencyB", "require_color", "__commonJSMin", "exports", "hexToRGB", "hex", "r", "g", "b", "rgbToHex", "rString", "gString", "bString", "rgbToHSL", "cmin", "cmax", "delta", "h", "s", "l", "hslToRGB", "c", "x", "m", "hexToHSL", "hslToHex", "hsl", "clamp", "value", "min", "max", "offset", "slightlyDarkerColor", "slightlyLighterColor", "require_avatar", "__commonJSMin", "exports", "color_1", "getWholeCharAndI", "str", "i", "code", "next", "prev", "avatarColorSet", "getAvatarIcon", "name", "options", "words", "initials", "firstWordFirstLetter", "lastWordFirstLetter", "backgroundColor", "initialsCharIndex", "char", "colorIndex", "radius", "require_favicon", "__commonJSMin", "exports", "api_1", "url_1", "getFavicon", "url", "options", "hostname", "e", "require_progress", "__commonJSMin", "exports", "api_1", "polarToCartesian", "centerX", "centerY", "radius", "angleInDegrees", "angleInRadians", "describeArc", "x", "y", "startAngle", "endAngle", "start", "end", "largeArcFlag", "getProgressIcon", "progress", "color", "options", "background", "backgroundOpacity", "stroke", "require_icon", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "require_run_applescript", "__commonJSMin", "exports", "__importDefault", "mod", "node_child_process_1", "exec_utils_1", "runAppleScript", "script", "optionsOrArgs", "options", "humanReadableOutput", "language", "timeout", "execOptions", "outputArguments", "spawned", "spawnedPromise", "error", "exitCode", "signal", "timedOut", "stdoutResult", "stderrResult", "stdout", "stderr", "require_dist", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "require_symbols", "__commonJSMin", "exports", "module", "require_errors", "__commonJSMin", "exports", "module", "UndiciError", "message", "ConnectTimeoutError", "_ConnectTimeoutError", "HeadersTimeoutError", "_HeadersTimeoutError", "HeadersOverflowError", "_HeadersOverflowError", "BodyTimeoutError", "_BodyTimeoutError", "ResponseStatusCodeError", "_ResponseStatusCodeError", "statusCode", "headers", "body", "InvalidArgumentError", "_InvalidArgumentError", "InvalidReturnValueError", "_InvalidReturnValueError", "RequestAbortedError", "_RequestAbortedError", "InformationalError", "_InformationalError", "RequestContentLengthMismatchError", "_RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "_ResponseContentLengthMismatchError", "ClientDestroyedError", "_ClientDestroyedError", "ClientClosedError", "_ClientClosedError", "SocketError", "_SocketError", "socket", "NotSupportedError", "_NotSupportedError", "BalancedPoolMissingUpstreamError", "HTTPParserError", "_HTTPParserError", "code", "data", "ResponseExceededMaxSizeError", "_ResponseExceededMaxSizeError", "require_util", "__commonJSMin", "exports", "module", "assert", "kDestroyed", "kBodyUsed", "IncomingMessage", "stream", "net", "InvalidArgumentError", "Blob", "nodeUtil", "stringify", "nodeMajor", "nodeMinor", "v", "nop", "isStream", "obj", "isBlobLike", "object", "buildURL", "url", "queryParams", "stringified", "parseURL", "port", "origin", "path", "parseOrigin", "getHostname", "host", "idx", "getServerName", "servername", "deepClone", "isAsyncIterable", "isIterable", "bodyLength", "body", "state", "isBuffer", "isDestroyed", "isReadableAborted", "destroy", "err", "KEEPALIVE_TIMEOUT_EXPR", "parseKeepAliveTimeout", "val", "m", "parseHeaders", "headers", "i", "key", "parseRawHeaders", "ret", "hasContentLength", "contentDispositionIdx", "n", "buffer", "validateHandler", "handler", "method", "upgrade", "isDisturbed", "isErrored", "isReadable", "getSocketInfo", "socket", "ReadableStream", "ReadableStreamFrom", "iterable", "iterator", "controller", "done", "value", "buf", "reason", "isFormDataLike", "throwIfAborted", "signal", "events", "addAbortListener", "listener", "hasToWellFormed", "toUSVString", "kEnumerableProperty", "require_timers", "__commonJSMin", "exports", "module", "fastNow", "fastNowTimeout", "fastTimers", "onTimeout", "len", "idx", "timer", "refreshTimeout", "Timeout", "callback", "delay", "opaque", "timeout", "require_utils", "__commonJSMin", "exports", "module", "parseContentType", "str", "params", "i", "code", "TOKEN", "type", "subtypeStart", "parseContentTypeParams", "subtype", "name", "nameStart", "value", "valueStart", "escaping", "QDTEXT", "parseDisposition", "defDecoder", "parseDispositionParams", "charset", "charsetStart", "CHARSET", "encode", "EXTENDED_VALUE", "hexUpper", "hexLower", "HEX_VALUES", "byteVal", "convertToUTF8", "getDecoder", "lc", "decoders", "data", "hint", "decode", "basename", "path", "require_sbmh", "__commonJSMin", "exports", "module", "memcmp", "buf1", "pos1", "buf2", "pos2", "num", "SBMH", "needle", "cb", "needleLen", "i", "chunk", "pos", "result", "chunkLen", "feed", "lbSize", "self", "data", "len", "lastNeedleCharPos", "lastNeedleChar", "end", "occ", "lookbehind", "nextPos", "ch", "matchNeedle", "bytesToCutOff", "firstNeedleChar", "lb", "require_multipart", "__commonJSMin", "exports", "module", "Readable", "Writable", "StreamSearch", "basename", "convertToUTF8", "getDecoder", "parseContentType", "parseDisposition", "BUF_CRLF", "BUF_CR", "BUF_DASH", "noop", "MAX_HEADER_PAIRS", "MAX_HEADER_SIZE", "HPARSER_NAME", "HPARSER_PRE_OWS", "HPARSER_VALUE", "HeaderParser", "cb", "chunk", "pos", "end", "start", "done", "code", "TOKEN", "FIELD_VCHAR", "header", "FileStream", "opts", "owner", "n", "ignoreData", "callAndUnsetCb", "self", "err", "nullDecoder", "val", "hint", "Multipart", "cfg", "streamOpts", "boundary", "paramDecoder", "defCharset", "preservePath", "fileOpts", "limits", "fieldSizeLimit", "fileSizeLimit", "filesLimit", "fieldsLimit", "partsLimit", "parts", "fields", "files", "skipPart", "fileSize", "field", "fieldSize", "partCharset", "partEncoding", "partType", "partName", "partTruncated", "hitFilesLimit", "hitFieldsLimit", "hparser", "filename", "disp", "conType", "matchPostBoundary", "ssCb", "isMatch", "data", "isDataSafe", "retrydata", "ret", "writecb", "actualLen", "enc", "checkEndState", "fileStream", "finalcb", "require_urlencoded", "__commonJSMin", "exports", "module", "Writable", "getDecoder", "URLEncoded", "cfg", "streamOpts", "charset", "limits", "conType", "chunk", "enc", "cb", "i", "len", "readPctEnc", "main", "skipKeyBytes", "skipValBytes", "self", "pos", "hexUpper", "HEX_VALUES", "hexLower", "code", "require_lib", "__commonJSMin", "exports", "module", "parseContentType", "getInstance", "cfg", "headers", "conType", "type", "TYPES", "instanceCfg", "typemod", "require_constants", "__commonJSMin", "exports", "module", "MessageChannel", "receiveMessageOnPort", "corsSafeListedMethods", "nullBodyStatus", "redirectStatus", "badPorts", "referrerPolicy", "requestRedirect", "safeMethods", "requestMode", "requestCredentials", "requestCache", "requestBodyHeader", "requestDuplex", "forbiddenMethods", "subresource", "DOMException", "err", "channel", "structuredClone", "value", "options", "require_global", "__commonJSMin", "exports", "module", "globalOrigin", "getGlobalOrigin", "setGlobalOrigin", "newOrigin", "parsedURL", "require_util", "__commonJSMin", "exports", "module", "redirectStatus", "badPorts", "referrerPolicyTokens", "getGlobalOrigin", "performance", "isBlobLike", "toUSVString", "ReadableStreamFrom", "assert", "isUint8Array", "crypto", "responseURL", "response", "urlList", "length", "responseLocationURL", "requestFragment", "location", "isValidHeaderValue", "requestCurrentURL", "request", "requestBadPort", "url", "urlIsHttpHttpsScheme", "isErrorLike", "object", "isValidReasonPhrase", "statusText", "i", "c", "isTokenChar", "isValidHTTPToken", "characters", "isValidHeaderName", "potentialValue", "setRequestReferrerPolicyOnRedirect", "actualResponse", "headersList", "policyHeader", "policy", "token", "crossOriginResourcePolicyCheck", "corsCheck", "TAOCheck", "appendFetchMetadata", "httpRequest", "header", "appendRequestOriginHeader", "serializedOrigin", "urlHasHttpsScheme", "sameOrigin", "coarsenedSharedCurrentTime", "crossOriginIsolatedCapability", "createOpaqueTimingInfo", "timingInfo", "makePolicyContainer", "clonePolicyContainer", "policyContainer", "determineRequestsReferrer", "referrerSource", "globalOrigin", "referrerURL", "stripURLForReferrer", "referrerOrigin", "areSameOrigin", "isNonPotentiallyTrustWorthy", "isURLPotentiallyTrustworthy", "currentURL", "originOnly", "isOriginPotentiallyTrustworthy", "origin", "originAsURL", "bytesMatch", "bytes", "metadataList", "parsedMetadata", "parseMetadata", "list", "d", "strongest", "metadata", "item", "algorithm", "expectedValue", "parseHashWithOptions", "result", "empty", "supportedHashes", "parsedToken", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "A", "B", "createDeferredPromise", "res", "rej", "resolve", "reject", "isAborted", "fetchParams", "isCancelled", "normalizeMethod", "method", "serializeJavascriptValueToJSONString", "value", "esIteratorPrototype", "makeIterator", "iterator", "name", "kind", "index", "target", "values", "len", "pair", "iteratorResult", "fullyReadBody", "body", "processBody", "processBodyError", "successSteps", "errorSteps", "error", "reader", "e", "readAllBytes", "ReadableStream", "isReadableStreamLike", "stream", "MAXIMUM_ARGUMENT_LENGTH", "isomorphicDecode", "input", "previous", "current", "readableStreamClose", "controller", "err", "isomorphicEncode", "failureSteps", "byteLength", "done", "chunk", "urlIsLocal", "protocol", "hasOwn", "dict", "key", "require_symbols", "__commonJSMin", "exports", "module", "require_webidl", "__commonJSMin", "exports", "module", "types", "hasOwn", "toUSVString", "webidl", "message", "context", "plural", "V", "I", "opts", "length", "min", "ctx", "bitLength", "signedness", "upperBound", "lowerBound", "x", "n", "r", "converter", "method", "seq", "done", "value", "keyConverter", "valueConverter", "O", "result", "keys", "key", "typedKey", "typedValue", "i", "converters", "dictionary", "type", "dict", "options", "defaultValue", "required", "hasDefault", "index", "charCode", "T", "require_dataURL", "__commonJSMin", "exports", "module", "assert", "atob", "isomorphicDecode", "encoder", "HTTP_TOKEN_CODEPOINTS", "HTTP_WHITESPACE_REGEX", "HTTP_QUOTED_STRING_TOKENS", "dataURLProcessor", "dataURL", "input", "URLSerializer", "position", "mimeType", "collectASequenceOfCodePointsFast", "mimeTypeLength", "removeASCIIWhitespace", "encodedBody", "body", "stringPercentDecode", "stringBody", "forgivingBase64", "mimeTypeRecord", "parseMIMEType", "url", "excludeFragment", "href", "hash", "collectASequenceOfCodePoints", "condition", "result", "char", "idx", "start", "bytes", "percentDecode", "output", "i", "byte", "nextTwoBytes", "bytePoint", "removeHTTPWhitespace", "type", "subtype", "typeLowercase", "subtypeLowercase", "parameterName", "parameterValue", "collectAnHTTPQuotedString", "data", "binary", "extractValue", "positionStart", "value", "quoteOrBackslash", "serializeAMimeType", "parameters", "essence", "serialization", "name", "isHTTPWhiteSpace", "str", "leading", "trailing", "lead", "trail", "isASCIIWhitespace", "require_file", "__commonJSMin", "exports", "module", "Blob", "NativeFile", "types", "kState", "isBlobLike", "webidl", "parseMIMEType", "serializeAMimeType", "kEnumerableProperty", "File", "_File", "fileBits", "fileName", "options", "n", "t", "d", "substep", "processBlobParts", "FileLike", "_FileLike", "blobLike", "args", "V", "opts", "value", "parts", "bytes", "element", "s", "convertLineEndingsNative", "nativeLineEnding", "isFileLike", "object", "require_formdata", "__commonJSMin", "exports", "module", "isBlobLike", "toUSVString", "makeIterator", "kState", "UndiciFile", "FileLike", "isFileLike", "webidl", "Blob", "NativeFile", "File", "FormData", "_FormData", "form", "name", "value", "filename", "entry", "makeEntry", "idx", "pair", "callbackFn", "thisArg", "key", "options", "require_body", "__commonJSMin", "exports", "module", "Busboy", "util", "ReadableStreamFrom", "isBlobLike", "isReadableStreamLike", "readableStreamClose", "createDeferredPromise", "fullyReadBody", "FormData", "kState", "webidl", "DOMException", "structuredClone", "Blob", "NativeFile", "kBodyUsed", "assert", "isErrored", "isUint8Array", "isArrayBuffer", "UndiciFile", "parseMIMEType", "serializeAMimeType", "ReadableStream", "File", "extractBody", "object", "keepalive", "stream", "controller", "source", "action", "length", "type", "boundary", "prefix", "escape", "str", "normalizeLinefeeds", "value", "enc", "blobParts", "rn", "hasUnknownSizeValue", "name", "chunk", "part", "iterator", "done", "reason", "safelyExtractBody", "cloneBody", "body", "out1", "out2", "out2Clone", "finalClone", "consumeBody", "throwIfAborted", "state", "bodyMixinMethods", "instance", "specConsumeBody", "bytes", "mimeType", "bodyMimeType", "utf8DecodeBytes", "parseJSONFromBytes", "contentType", "headers", "key", "responseFormData", "busboy", "err", "info", "filename", "encoding", "chunks", "base64chunk", "end", "busboyResolve", "resolve", "reject", "entries", "text", "textDecoder", "formData", "mixinBody", "prototype", "convertBytesToJSValue", "bodyUnusable", "promise", "errorSteps", "error", "successSteps", "data", "e", "buffer", "headersList", "require_request", "__commonJSMin", "exports", "module", "InvalidArgumentError", "NotSupportedError", "assert", "util", "tokenRegExp", "headerCharRegex", "invalidPathRegex", "kHandler", "channels", "extractBody", "diagnosticsChannel", "Request", "origin", "path", "method", "body", "headers", "query", "idempotent", "blocking", "upgrade", "headersTimeout", "bodyTimeout", "reset", "throwOnError", "handler", "i", "processHeader", "keys", "key", "bodyStream", "contentType", "chunk", "err", "abort", "statusCode", "resume", "statusText", "socket", "trailers", "error", "value", "processHeaderValue", "val", "request", "require_dispatcher", "__commonJSMin", "exports", "module", "EventEmitter", "Dispatcher", "require_dispatcher_base", "__commonJSMin", "exports", "module", "Dispatcher", "ClientDestroyedError", "ClientClosedError", "InvalidArgumentError", "kDestroy", "kClose", "kDispatch", "kInterceptors", "kDestroyed", "kClosed", "kOnDestroyed", "kOnClosed", "kInterceptedDispatch", "DispatcherBase", "newInterceptors", "i", "callback", "resolve", "reject", "err", "data", "onClosed", "callbacks", "onDestroyed", "opts", "handler", "dispatch", "require_connect", "__commonJSMin", "exports", "module", "net", "assert", "util", "InvalidArgumentError", "ConnectTimeoutError", "tls", "SessionCache", "maxCachedSessions", "key", "ref", "sessionKey", "session", "oldestKey", "buildConnector", "socketPath", "timeout", "opts", "options", "sessionCache", "hostname", "host", "protocol", "port", "servername", "localAddress", "httpSocket", "callback", "socket", "keepAliveInitialDelay", "cancelTimeout", "setupTimeout", "onConnectTimeout", "cb", "err", "s1", "s2", "timeoutId", "enumToMap", "obj", "res", "key", "value", "exports", "utils_1", "ERROR", "exports", "TYPE", "FLAGS", "LENIENT_FLAGS", "METHODS", "key", "FINISH", "i", "c", "HEADER_STATE", "require_RedirectHandler", "__commonJSMin", "exports", "module", "util", "kBodyUsed", "assert", "InvalidArgumentError", "EE", "redirectableStatusCodes", "kBody", "BodyAsyncIterable", "body", "RedirectHandler", "dispatch", "maxRedirections", "opts", "handler", "abort", "statusCode", "headers", "socket", "error", "resume", "statusText", "parseLocation", "origin", "pathname", "search", "path", "cleanRequestHeaders", "chunk", "trailers", "i", "shouldRemoveHeader", "header", "removeContent", "unknownOrigin", "ret", "key", "require_redirectInterceptor", "__commonJSMin", "exports", "module", "RedirectHandler", "createRedirectInterceptor", "defaultMaxRedirections", "dispatch", "opts", "handler", "maxRedirections", "redirectHandler", "require_llhttp_wasm", "__commonJSMin", "exports", "module", "require_llhttp_simd_wasm", "__commonJSMin", "exports", "module", "require_client", "__commonJSMin", "exports", "module", "assert", "net", "util", "timers", "Request", "DispatcherBase", "RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "InvalidArgumentError", "RequestAbortedError", "HeadersTimeoutError", "HeadersOverflowError", "SocketError", "InformationalError", "BodyTimeoutError", "HTTPParserError", "ResponseExceededMaxSizeError", "ClientDestroyedError", "buildConnector", "kUrl", "kReset", "kServerName", "kClient", "kBusy", "kParser", "kConnect", "kBlocking", "kResuming", "kRunning", "kPending", "kSize", "kWriting", "kQueue", "kConnected", "kConnecting", "kNeedDrain", "kNoRef", "kKeepAliveDefaultTimeout", "kHostHeader", "kPendingIdx", "kRunningIdx", "kError", "kPipelining", "kSocket", "kKeepAliveTimeoutValue", "kMaxHeadersSize", "kKeepAliveMaxTimeout", "kKeepAliveTimeoutThreshold", "kHeadersTimeout", "kBodyTimeout", "kStrictContentLength", "kConnector", "kMaxRedirections", "kMaxRequests", "kCounter", "kClose", "kDestroy", "kDispatch", "kInterceptors", "kLocalAddress", "kMaxResponseSize", "FastBuffer", "kClosedResolve", "channels", "diagnosticsChannel", "Client", "url", "interceptors", "maxHeaderSize", "headersTimeout", "socketTimeout", "requestTimeout", "connectTimeout", "bodyTimeout", "idleTimeout", "keepAlive", "keepAliveTimeout", "maxKeepAliveTimeout", "keepAliveMaxTimeout", "keepAliveTimeoutThreshold", "socketPath", "pipelining", "tls", "strictContentLength", "maxCachedSessions", "maxRedirections", "connect", "maxRequestsPerClient", "localAddress", "maxResponseSize", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "createRedirectInterceptor", "value", "resume", "socket", "cb", "opts", "handler", "origin", "request", "resolve", "err", "requests", "errorRequest", "callback", "constants", "EMPTY_BUF", "lazyllhttp", "llhttpWasmData", "mod", "p", "at", "len", "currentParser", "start", "currentBufferPtr", "currentBufferRef", "statusCode", "upgrade", "shouldKeepAlive", "llhttpInstance", "llhttpPromise", "currentBufferSize", "TIMEOUT_HEADERS", "TIMEOUT_BODY", "TIMEOUT_IDLE", "Parser", "client", "type", "onParserTimeout", "chunk", "data", "llhttp", "ret", "offset", "ptr", "message", "buf", "key", "head", "headers", "onSocketError", "onSocketReadable", "onSocketEnd", "onSocketClose", "statusText", "timeout", "pause", "contentLength", "bytesRead", "parser", "timeoutType", "onError", "i", "host", "hostname", "protocol", "port", "idx", "ip", "reject", "emitDrain", "sync", "_resume", "write", "body", "method", "path", "blocking", "reset", "expectsPayload", "header", "writeIterable", "writeBlob", "writeStream", "finished", "writer", "AsyncWriter", "onData", "onDrain", "onAbort", "onFinished", "er", "buffer", "waitForDrain", "bytesWritten", "require_fixed_queue", "__commonJSMin", "exports", "module", "FixedCircularBuffer", "data", "nextItem", "tail", "next", "require_pool_stats", "__commonJSMin", "exports", "module", "kFree", "kConnected", "kPending", "kQueued", "kRunning", "kSize", "kPool", "PoolStats", "pool", "require_pool_base", "__commonJSMin", "exports", "module", "DispatcherBase", "FixedQueue", "kConnected", "kSize", "kRunning", "kPending", "kQueued", "kBusy", "kFree", "kUrl", "kClose", "kDestroy", "kDispatch", "PoolStats", "kClients", "kNeedDrain", "kQueue", "kClosedResolve", "kOnDrain", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kGetDispatcher", "kAddClient", "kRemoveClient", "kStats", "PoolBase", "pool", "origin", "targets", "queue", "needDrain", "item", "c", "err", "client", "ret", "pending", "running", "size", "resolve", "opts", "handler", "dispatcher", "idx", "require_pool", "__commonJSMin", "exports", "module", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kGetDispatcher", "Client", "InvalidArgumentError", "util", "kUrl", "kInterceptors", "buildConnector", "kOptions", "kConnections", "kFactory", "defaultFactory", "origin", "opts", "Pool", "connections", "factory", "connect", "connectTimeout", "tls", "maxCachedSessions", "socketPath", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "options", "dispatcher", "require_balanced_pool", "__commonJSMin", "exports", "module", "BalancedPoolMissingUpstreamError", "InvalidArgumentError", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kRemoveClient", "kGetDispatcher", "Pool", "kUrl", "kInterceptors", "parseOrigin", "kFactory", "kOptions", "kGreatestCommonDivisor", "kCurrentWeight", "kIndex", "kWeight", "kMaxWeightPerServer", "kErrorPenalty", "getGreatestCommonDivisor", "a", "b", "defaultFactory", "origin", "opts", "BalancedPool", "upstreams", "factory", "upstream", "upstreamOrigin", "pool", "args", "err", "client", "p", "dispatcher", "counter", "maxWeightIndex", "require_dispatcher_weakref", "__commonJSMin", "exports", "module", "kConnected", "kSize", "CompatWeakRef", "value", "CompatFinalizer", "finalizer", "dispatcher", "key", "require_agent", "__commonJSMin", "exports", "module", "InvalidArgumentError", "kClients", "kRunning", "kClose", "kDestroy", "kDispatch", "kInterceptors", "DispatcherBase", "Pool", "Client", "util", "createRedirectInterceptor", "WeakRef", "FinalizationRegistry", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kMaxRedirections", "kOnDrain", "kFactory", "kFinalizer", "kOptions", "defaultFactory", "origin", "opts", "Agent", "factory", "maxRedirections", "connect", "options", "key", "ref", "agent", "targets", "err", "ret", "client", "handler", "dispatcher", "closePromises", "destroyPromises", "require_readable", "__commonJSMin", "exports", "module", "assert", "Readable", "RequestAbortedError", "NotSupportedError", "InvalidArgumentError", "util", "ReadableStreamFrom", "toUSVString", "Blob", "kConsume", "kReading", "kBody", "kAbort", "kContentType", "resume", "abort", "contentType", "highWaterMark", "err", "ev", "args", "ret", "chunk", "consumePush", "consume", "opts", "limit", "signal", "abortFn", "signalListenerCleanup", "isLocked", "self", "isUnusable", "stream", "type", "resolve", "reject", "consumeFinish", "consumeStart", "state", "consumeEnd", "body", "length", "dst", "pos", "buf", "require_util", "__commonJSMin", "exports", "module", "assert", "ResponseStatusCodeError", "toUSVString", "getResolveErrorBodyCallback", "callback", "body", "contentType", "statusCode", "statusMessage", "headers", "chunks", "limit", "chunk", "payload", "require_abort_signal", "__commonJSMin", "exports", "module", "addAbortListener", "RequestAbortedError", "kListener", "kSignal", "abort", "self", "addSignal", "signal", "removeSignal", "require_api_request", "__commonJSMin", "exports", "module", "Readable", "InvalidArgumentError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "RequestHandler", "opts", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "highWaterMark", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "contentType", "chunk", "res", "trailers", "request", "resolve", "reject", "data", "require_api_stream", "__commonJSMin", "exports", "module", "finished", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "StreamHandler", "opts", "factory", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "res", "contentType", "trailers", "chunk", "stream", "resolve", "reject", "data", "require_api_pipeline", "__commonJSMin", "exports", "module", "Readable", "Duplex", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "AsyncResource", "addSignal", "removeSignal", "assert", "kResume", "PipelineRequest", "resume", "err", "callback", "PipelineResponse", "PipelineHandler", "opts", "handler", "signal", "method", "opaque", "onInfo", "responseHeaders", "body", "chunk", "encoding", "req", "res", "ret", "abort", "context", "statusCode", "rawHeaders", "headers", "trailers", "pipeline", "pipelineHandler", "require_api_upgrade", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "assert", "UpgradeHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "upgrade", "resolve", "reject", "data", "upgradeHandler", "require_api_connect", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "ConnectHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "connect", "resolve", "reject", "data", "connectHandler", "require_api", "__commonJSMin", "exports", "module", "require_mock_errors", "__commonJSMin", "exports", "module", "UndiciError", "MockNotMatchedError", "_MockNotMatchedError", "message", "require_mock_symbols", "__commonJSMin", "exports", "module", "require_mock_utils", "__commonJSMin", "exports", "module", "MockNotMatchedError", "kDispatches", "kMockAgent", "kOriginalDispatch", "kOrigin", "kGetNetConnect", "buildURL", "nop", "STATUS_CODES", "isPromise", "matchValue", "match", "value", "lowerCaseEntries", "headers", "headerName", "headerValue", "getHeaderByName", "key", "i", "buildHeadersFromArray", "clone", "entries", "index", "matchHeaders", "mockDispatch", "matchHeaderName", "matchHeaderValue", "safeUrl", "path", "pathSegments", "qp", "matchKey", "method", "body", "pathMatch", "methodMatch", "bodyMatch", "headersMatch", "getResponseData", "data", "getMockDispatch", "mockDispatches", "basePath", "resolvedPath", "matchedMockDispatches", "consumed", "addMockDispatch", "baseData", "replyData", "newMockDispatch", "deleteMockDispatch", "dispatch", "buildKey", "opts", "query", "generateKeyValues", "keyValuePairs", "x", "getStatusText", "statusCode", "getResponse", "buffers", "handler", "trailers", "error", "delay", "persist", "timesInvoked", "times", "handleReply", "_data", "optsHeaders", "newData", "responseData", "responseHeaders", "responseTrailers", "resume", "buildMockDispatch", "agent", "origin", "originalDispatch", "netConnect", "checkNetConnect", "url", "matcher", "buildMockOptions", "mockOptions", "require_mock_interceptor", "__commonJSMin", "exports", "module", "getResponseData", "buildKey", "addMockDispatch", "kDispatches", "kDispatchKey", "kDefaultHeaders", "kDefaultTrailers", "kContentLength", "kMockDispatch", "InvalidArgumentError", "buildURL", "MockScope", "mockDispatch", "waitInMs", "repeatTimes", "MockInterceptor", "opts", "mockDispatches", "parsedURL", "statusCode", "data", "responseOptions", "responseData", "contentLength", "headers", "trailers", "replyData", "wrappedDefaultsCallback", "resolvedData", "newMockDispatch", "dispatchData", "error", "require_mock_client", "__commonJSMin", "exports", "module", "promisify", "Client", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockClient", "origin", "opts", "require_mock_pool", "__commonJSMin", "exports", "module", "promisify", "Pool", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockPool", "origin", "opts", "require_pluralizer", "__commonJSMin", "exports", "module", "singulars", "plurals", "singular", "plural", "count", "one", "keys", "noun", "require_pending_interceptors_formatter", "__commonJSMin", "exports", "module", "Transform", "Console", "disableColors", "chunk", "_enc", "cb", "pendingInterceptors", "withPrettyHeaders", "method", "path", "statusCode", "persist", "times", "timesInvoked", "origin", "require_mock_agent", "__commonJSMin", "exports", "module", "kClients", "Agent", "kAgent", "kMockAgentSet", "kMockAgentGet", "kDispatches", "kIsMockActive", "kNetConnect", "kGetNetConnect", "kOptions", "kFactory", "MockClient", "MockPool", "matchValue", "buildMockOptions", "InvalidArgumentError", "UndiciError", "Dispatcher", "Pluralizer", "PendingInterceptorsFormatter", "FakeWeakRef", "value", "MockAgent", "opts", "agent", "origin", "dispatcher", "handler", "matcher", "mockOptions", "ref", "keyMatcher", "nonExplicitRef", "nonExplicitDispatcher", "mockAgentClients", "scope", "dispatch", "pending", "pendingInterceptorsFormatter", "pluralizer", "require_proxy_agent", "__commonJSMin", "exports", "module", "kProxy", "kClose", "kDestroy", "kInterceptors", "URL", "Agent", "Pool", "DispatcherBase", "InvalidArgumentError", "RequestAbortedError", "buildConnector", "kAgent", "kClient", "kProxyHeaders", "kRequestTls", "kProxyTls", "kConnectEndpoint", "defaultProtocolPort", "protocol", "buildProxyOptions", "opts", "defaultFactory", "origin", "ProxyAgent", "clientFactory", "resolvedUrl", "port", "host", "connect", "callback", "requestedHost", "socket", "statusCode", "servername", "err", "handler", "headers", "buildHeaders", "throwIfProxyAuthIsSent", "headersPair", "i", "key", "require_global", "__commonJSMin", "exports", "module", "globalDispatcher", "InvalidArgumentError", "Agent", "getGlobalDispatcher", "setGlobalDispatcher", "agent", "require_DecoratorHandler", "__commonJSMin", "exports", "module", "handler", "args", "require_headers", "__commonJSMin", "exports", "module", "kHeadersList", "kGuard", "kEnumerableProperty", "makeIterator", "isValidHeaderName", "isValidHeaderValue", "webidl", "assert", "kHeadersMap", "kHeadersSortedMap", "headerValueNormalize", "potentialValue", "i", "fill", "headers", "object", "header", "key", "value", "HeadersList", "_HeadersList", "init", "name", "lowercaseName", "exists", "delimiter", "Headers", "_Headers", "list", "names", "a", "b", "cookies", "callbackFn", "thisArg", "V", "require_response", "__commonJSMin", "exports", "module", "Headers", "HeadersList", "fill", "extractBody", "cloneBody", "mixinBody", "util", "kEnumerableProperty", "isValidReasonPhrase", "isCancelled", "isAborted", "isBlobLike", "serializeJavascriptValueToJSONString", "isErrorLike", "isomorphicEncode", "redirectStatus", "nullBodyStatus", "DOMException", "kState", "kHeaders", "kGuard", "kRealm", "webidl", "FormData", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "types", "ReadableStream", "Response", "_Response", "relevantRealm", "responseObject", "makeNetworkError", "data", "init", "bytes", "body", "initializeResponse", "url", "status", "parsedURL", "err", "value", "makeResponse", "bodyWithType", "extractedBody", "type", "urlList", "clonedResponse", "cloneResponse", "clonedResponseObject", "response", "filterResponse", "newResponse", "reason", "isError", "makeFilteredResponse", "state", "target", "p", "makeAppropriateNetworkError", "fetchParams", "V", "require_request", "__commonJSMin", "exports", "module", "extractBody", "mixinBody", "cloneBody", "Headers", "fillHeaders", "HeadersList", "FinalizationRegistry", "util", "isValidHTTPToken", "sameOrigin", "normalizeMethod", "makePolicyContainer", "forbiddenMethods", "corsSafeListedMethods", "referrerPolicy", "requestRedirect", "requestMode", "requestCredentials", "requestCache", "requestDuplex", "kEnumerableProperty", "kHeaders", "kSignal", "kState", "kGuard", "kRealm", "webidl", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "getMaxListeners", "setMaxListeners", "getEventListeners", "defaultMaxListeners", "TransformStream", "kInit", "kAbortController", "requestFinalizer", "signal", "abort", "Request", "_Request", "input", "init", "request", "fallbackMode", "baseUrl", "parsedURL", "err", "makeRequest", "origin", "window", "referrer", "parsedReferrer", "mode", "method", "ac", "acRef", "headers", "key", "val", "inputBody", "initBody", "extractedBody", "contentType", "inputOrInitBody", "finalBody", "identityTransform", "clonedRequest", "cloneRequest", "clonedRequestObject", "newRequest", "V", "require_fetch", "__commonJSMin", "exports", "module", "Response", "makeNetworkError", "makeAppropriateNetworkError", "filterResponse", "makeResponse", "Headers", "Request", "makeRequest", "zlib", "bytesMatch", "makePolicyContainer", "clonePolicyContainer", "requestBadPort", "TAOCheck", "appendRequestOriginHeader", "responseLocationURL", "requestCurrentURL", "setRequestReferrerPolicyOnRedirect", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "createOpaqueTimingInfo", "appendFetchMetadata", "corsCheck", "crossOriginResourcePolicyCheck", "determineRequestsReferrer", "coarsenedSharedCurrentTime", "createDeferredPromise", "isBlobLike", "sameOrigin", "isCancelled", "isAborted", "isErrorLike", "fullyReadBody", "readableStreamClose", "isomorphicEncode", "urlIsLocal", "urlIsHttpHttpsScheme", "urlHasHttpsScheme", "kState", "kHeaders", "kGuard", "kRealm", "assert", "safelyExtractBody", "redirectStatus", "nullBodyStatus", "safeMethods", "requestBodyHeader", "subresource", "DOMException", "kHeadersList", "EE", "Readable", "pipeline", "addAbortListener", "isErrored", "isReadable", "nodeMajor", "nodeMinor", "dataURLProcessor", "serializeAMimeType", "TransformStream", "getGlobalDispatcher", "webidl", "STATUS_CODES", "resolveObjectURL", "ReadableStream", "Fetch", "dispatcher", "reason", "error", "fetch", "input", "init", "p", "requestObject", "e", "request", "abortFetch", "responseObject", "relevantRealm", "locallyAborted", "controller", "fetching", "response", "finalizeAndReportTiming", "initiatorType", "originalURL", "timingInfo", "cacheState", "markResourceTiming", "globalThis", "err", "processRequestBodyChunkLength", "processRequestEndOfBody", "processResponse", "processResponseEndOfBody", "processResponseConsumeBody", "useParallelQueue", "taskDestination", "crossOriginIsolatedCapability", "currenTime", "fetchParams", "mainFetch", "recursive", "currentURL", "schemeFetch", "httpFetch", "internalResponse", "processBodyError", "fetchFinale", "processBody", "bytes", "scheme", "blobURLEntry", "blobURLEntryObject", "bodyWithType", "body", "length", "type", "dataURLStruct", "mimeType", "finalizeResponse", "identityTransformAlgorithm", "chunk", "transformStream", "nullOrBytes", "failure", "actualResponse", "httpNetworkOrCacheFetch", "httpRedirectFetch", "locationURL", "headerName", "isAuthenticationFetch", "isNewConnectionFetch", "httpFetchParams", "httpRequest", "httpCache", "revalidatingFlag", "includeCredentials", "contentLength", "contentLengthHeaderValue", "forwardResponse", "httpNetworkFetch", "forceNewConnection", "newConnection", "requestBody", "processBodyChunk", "processEndOfBody", "status", "statusText", "headersList", "socket", "dispatch", "iterator", "pullAlgorithm", "cancelAlgorithm", "stream", "onAborted", "isFailure", "done", "value", "url", "agent", "resolve", "reject", "abort", "connection", "resume", "codings", "location", "headers", "n", "key", "val", "x", "decoders", "willFollow", "coding", "require_symbols", "__commonJSMin", "exports", "module", "require_progressevent", "__commonJSMin", "exports", "module", "webidl", "kState", "ProgressEvent", "_ProgressEvent", "type", "eventInitDict", "require_encoding", "__commonJSMin", "exports", "module", "getEncoding", "label", "require_util", "__commonJSMin", "exports", "module", "kState", "kError", "kResult", "kAborted", "kLastProgressEventFired", "ProgressEvent", "getEncoding", "DOMException", "serializeAMimeType", "parseMIMEType", "types", "StringDecoder", "btoa", "staticPropertyDescriptors", "readOperation", "fr", "blob", "type", "encodingName", "reader", "bytes", "chunkPromise", "isFirstChunk", "done", "value", "fireAProgressEvent", "result", "packageData", "error", "event", "mimeType", "dataURL", "parsed", "decoder", "chunk", "encoding", "decode", "combineByteSequences", "binaryString", "ioQueue", "BOMEncoding", "BOMSniffing", "slice", "sliced", "a", "b", "c", "sequences", "size", "offset", "require_filereader", "__commonJSMin", "exports", "module", "staticPropertyDescriptors", "readOperation", "fireAProgressEvent", "kState", "kError", "kResult", "kEvents", "kAborted", "webidl", "kEnumerableProperty", "FileReader", "_FileReader", "blob", "encoding", "fn", "require_symbols", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "URLSerializer", "isValidHeaderName", "urlEquals", "A", "B", "excludeFragment", "serializedA", "serializedB", "fieldValues", "header", "values", "value", "require_cache", "__commonJSMin", "exports", "module", "kConstruct", "urlEquals", "getFieldValues", "kEnumerableProperty", "isDisturbed", "kHeadersList", "webidl", "Response", "cloneResponse", "Request", "kState", "kHeaders", "kGuard", "kRealm", "fetching", "urlIsHttpHttpsScheme", "createDeferredPromise", "readAllBytes", "assert", "getGlobalDispatcher", "Cache", "_Cache", "#relevantRequestResponseList", "request", "options", "p", "r", "responses", "requestResponse", "requestResponses", "#queryCache", "responseList", "response", "responseObject", "body", "requests", "responsePromises", "requestList", "fetchControllers", "responsePromise", "fieldValues", "fieldValue", "controller", "operations", "index", "operation", "cacheJobPromise", "errorData", "#batchCacheOperations", "e", "innerRequest", "innerResponse", "clonedResponse", "bodyReadPromise", "reader", "bytes", "error", "promise", "requestObject", "cache", "backupCache", "addedItems", "resultList", "idx", "requestQuery", "targetStorage", "storage", "cachedRequest", "cachedResponse", "#requestMatchesCachedItem", "queryURL", "cachedURL", "requestValue", "queryValue", "cacheQueryOptionConverters", "require_cachestorage", "__commonJSMin", "exports", "module", "kConstruct", "Cache", "webidl", "kEnumerableProperty", "CacheStorage", "_CacheStorage", "#caches", "request", "options", "cacheList", "response", "cacheName", "cache", "require_constants", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "kHeadersList", "isCTLExcludingHtab", "value", "char", "code", "validateCookieName", "name", "validateCookieValue", "validateCookiePath", "path", "validateCookieDomain", "domain", "toIMFDate", "date", "days", "months", "dayName", "day", "month", "year", "hour", "minute", "second", "validateCookieMaxAge", "maxAge", "stringify", "cookie", "out", "part", "key", "kHeadersListNode", "getHeadersList", "headers", "symbol", "headersList", "require_parse", "__commonJSMin", "exports", "module", "maxNameValuePairSize", "maxAttributeValueSize", "isCTLExcludingHtab", "collectASequenceOfCodePointsFast", "assert", "parseSetCookie", "header", "nameValuePair", "unparsedAttributes", "name", "value", "position", "parseUnparsedAttributes", "cookieAttributeList", "cookieAv", "attributeName", "attributeValue", "attributeNameLowercase", "expiryTime", "charCode", "deltaSeconds", "cookieDomain", "cookiePath", "enforcement", "attributeValueLowercase", "require_cookies", "__commonJSMin", "exports", "module", "parseSetCookie", "stringify", "getHeadersList", "webidl", "Headers", "getCookies", "headers", "cookie", "out", "piece", "name", "value", "deleteCookie", "attributes", "setCookie", "getSetCookies", "cookies", "pair", "require_constants", "__commonJSMin", "exports", "module", "uid", "staticPropertyDescriptors", "states", "opcodes", "maxUnsigned16Bit", "parserStates", "emptyBuffer", "require_symbols", "__commonJSMin", "exports", "module", "require_events", "__commonJSMin", "exports", "module", "webidl", "kEnumerableProperty", "MessagePort", "MessageEvent", "_MessageEvent", "#eventInit", "type", "eventInitDict", "bubbles", "cancelable", "data", "origin", "lastEventId", "source", "ports", "CloseEvent", "_CloseEvent", "ErrorEvent", "_ErrorEvent", "eventInit", "require_util", "__commonJSMin", "exports", "module", "kReadyState", "kController", "kResponse", "kBinaryType", "kWebSocketURL", "states", "opcodes", "MessageEvent", "ErrorEvent", "isEstablished", "ws", "isClosing", "isClosed", "fireEvent", "target", "eventConstructor", "eventInitDict", "event", "websocketMessageReceived", "type", "data", "dataForEvent", "failWebsocketConnection", "isValidSubprotocol", "protocol", "char", "code", "isValidStatusCode", "reason", "controller", "response", "require_connection", "__commonJSMin", "exports", "module", "randomBytes", "createHash", "diagnosticsChannel", "uid", "states", "kReadyState", "kSentClose", "kByteParser", "kReceivedClose", "fireEvent", "failWebsocketConnection", "CloseEvent", "makeRequest", "fetching", "Headers", "getGlobalDispatcher", "kHeadersList", "channels", "establishWebSocketConnection", "url", "protocols", "ws", "onEstablish", "options", "requestURL", "request", "headersList", "keyValue", "protocol", "permessageDeflate", "response", "secWSAccept", "digest", "secExtension", "secProtocol", "onSocketData", "onSocketClose", "onSocketError", "chunk", "wasClean", "code", "reason", "result", "error", "require_frame", "__commonJSMin", "exports", "module", "randomBytes", "maxUnsigned16Bit", "WebsocketFrameSend", "data", "opcode", "bodyLength", "payloadLength", "offset", "buffer", "i", "require_receiver", "__commonJSMin", "exports", "module", "Writable", "diagnosticsChannel", "parserStates", "opcodes", "states", "emptyBuffer", "kReadyState", "kSentClose", "kResponse", "kReceivedClose", "isValidStatusCode", "failWebsocketConnection", "websocketMessageReceived", "WebsocketFrameSend", "channels", "ByteParser", "#buffers", "#byteOffset", "#state", "#info", "#fragments", "ws", "chunk", "_", "callback", "buffer", "payloadLength", "body", "closeFrame", "err", "frame", "upper", "lower", "fullMessage", "n", "offset", "next", "length", "onlyCode", "data", "code", "reason", "require_websocket", "__commonJSMin", "exports", "module", "webidl", "DOMException", "URLSerializer", "staticPropertyDescriptors", "states", "opcodes", "emptyBuffer", "kWebSocketURL", "kReadyState", "kController", "kBinaryType", "kResponse", "kSentClose", "kByteParser", "isEstablished", "isClosing", "isValidSubprotocol", "failWebsocketConnection", "fireEvent", "establishWebSocketConnection", "WebsocketFrameSend", "ByteParser", "kEnumerableProperty", "isBlobLike", "getGlobalDispatcher", "types", "experimentalWarned", "WebSocket", "_WebSocket", "#events", "#bufferedAmount", "#protocol", "#extensions", "url", "protocols", "options", "urlRecord", "e", "p", "response", "#onConnectionEstablished", "code", "reason", "reasonByteLength", "frame", "err", "data", "socket", "value", "buffer", "ab", "fn", "type", "parser", "extensions", "protocol", "V", "require_undici", "__commonJSMin", "exports", "module", "Client", "Dispatcher", "errors", "Pool", "BalancedPool", "Agent", "util", "InvalidArgumentError", "api", "buildConnector", "MockClient", "MockAgent", "MockPool", "mockErrors", "ProxyAgent", "getGlobalDispatcher", "setGlobalDispatcher", "DecoratorHandler", "RedirectHandler", "createRedirectInterceptor", "hasCrypto", "makeDispatcher", "fn", "url", "opts", "handler", "path", "agent", "dispatcher", "fetchImpl", "resource", "err", "setGlobalOrigin", "getGlobalOrigin", "CacheStorage", "kConstruct", "deleteCookie", "getCookies", "getSetCookies", "setCookie", "parseMIMEType", "serializeAMimeType", "WebSocket", "assertInputTypes", "text", "lang", "slow", "host", "exports", "SPACE_REGEX", "DEFAULT_PUNCTUATION_REGEX", "splitLongText", "text", "_a", "_b", "_c", "maxLength", "_d", "splitPunct", "isSpaceOrPunct", "s", "i", "regex", "lastIndexOfSpaceOrPunct", "left", "right", "result", "addResult", "start", "end", "str", "exports", "assertInputTypes_1", "__importDefault", "splitLongText_1", "url_1", "getAudioUrl", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "exports", "getAllAudioUrls", "_f", "splitPunct", "shortText", "require_bind", "__commonJSMin", "exports", "module", "fn", "thisArg", "args", "require_utils", "__commonJSMin", "exports", "module", "bind", "toString", "isArray", "val", "isUndefined", "isBuffer", "isArrayBuffer", "isFormData", "isArrayBufferView", "result", "isString", "isNumber", "isObject", "isPlainObject", "prototype", "isDate", "isFile", "isBlob", "isFunction", "isStream", "isURLSearchParams", "trim", "str", "isStandardBrowserEnv", "forEach", "obj", "fn", "i", "l", "key", "merge", "assignValue", "extend", "a", "b", "thisArg", "stripBOM", "content", "require_buildURL", "__commonJSMin", "exports", "module", "utils", "encode", "val", "url", "params", "paramsSerializer", "serializedParams", "parts", "key", "v", "hashmarkIndex", "require_InterceptorManager", "__commonJSMin", "exports", "module", "utils", "InterceptorManager", "fulfilled", "rejected", "options", "id", "fn", "h", "require_normalizeHeaderName", "__commonJSMin", "exports", "module", "utils", "headers", "normalizedName", "value", "name", "require_enhanceError", "__commonJSMin", "exports", "module", "error", "config", "code", "request", "response", "require_createError", "__commonJSMin", "exports", "module", "enhanceError", "message", "config", "code", "request", "response", "error", "require_settle", "__commonJSMin", "exports", "module", "createError", "resolve", "reject", "response", "validateStatus", "require_cookies", "__commonJSMin", "exports", "module", "utils", "name", "value", "expires", "path", "domain", "secure", "cookie", "match", "require_isAbsoluteURL", "__commonJSMin", "exports", "module", "url", "require_combineURLs", "__commonJSMin", "exports", "module", "baseURL", "relativeURL", "require_buildFullPath", "__commonJSMin", "exports", "module", "isAbsoluteURL", "combineURLs", "baseURL", "requestedURL", "require_parseHeaders", "__commonJSMin", "exports", "module", "utils", "ignoreDuplicateOf", "headers", "parsed", "key", "val", "line", "require_isURLSameOrigin", "__commonJSMin", "exports", "module", "utils", "msie", "urlParsingNode", "originURL", "resolveURL", "url", "href", "requestURL", "parsed", "require_xhr", "__commonJSMin", "exports", "module", "utils", "settle", "cookies", "buildURL", "buildFullPath", "parseHeaders", "isURLSameOrigin", "createError", "config", "resolve", "reject", "requestData", "requestHeaders", "responseType", "request", "username", "password", "fullPath", "onloadend", "responseHeaders", "responseData", "response", "timeoutErrorMessage", "xsrfValue", "val", "key", "cancel", "require_ms", "__commonJSMin", "exports", "module", "s", "m", "h", "d", "w", "y", "val", "options", "type", "parse", "fmtLong", "fmtShort", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "require_common", "__commonJSMin", "exports", "module", "setup", "env", "createDebug", "coerce", "disable", "enable", "enabled", "destroy", "key", "selectColor", "namespace", "hash", "i", "prevTime", "enableOverride", "namespacesCache", "enabledCache", "debug", "args", "self", "curr", "ms", "index", "match", "format", "formatter", "val", "extend", "v", "delimiter", "newDebug", "namespaces", "split", "len", "toNamespace", "name", "regexp", "require_browser", "__commonJSMin", "exports", "module", "formatArgs", "save", "load", "useColors", "localstorage", "warned", "args", "c", "index", "lastC", "match", "namespaces", "r", "formatters", "v", "error", "require_has_flag", "__commonJSMin", "exports", "module", "flag", "argv", "prefix", "position", "terminatorPosition", "require_supports_color", "__commonJSMin", "exports", "module", "os", "tty", "hasFlag", "env", "forceColor", "translateLevel", "level", "supportsColor", "haveStream", "streamIsTTY", "min", "osRelease", "sign", "version", "getSupportLevel", "stream", "require_node", "__commonJSMin", "exports", "module", "tty", "util", "init", "log", "formatArgs", "save", "load", "useColors", "supportsColor", "key", "obj", "prop", "_", "k", "val", "args", "name", "c", "colorCode", "prefix", "getDate", "namespaces", "debug", "keys", "i", "formatters", "v", "str", "require_src", "__commonJSMin", "exports", "module", "require_debug", "__commonJSMin", "exports", "module", "debug", "require_follow_redirects", "__commonJSMin", "exports", "module", "url", "URL", "http", "https", "Writable", "assert", "debug", "useNativeURL", "error", "preservedUrlFields", "events", "eventHandlers", "event", "arg1", "arg2", "arg3", "InvalidUrlError", "createErrorType", "RedirectionError", "TooManyRedirectsError", "MaxBodyLengthExceededError", "WriteAfterEndError", "destroy", "noop", "RedirectableRequest", "options", "responseCallback", "self", "response", "cause", "destroyRequest", "data", "encoding", "callback", "isString", "isBuffer", "isFunction", "currentRequest", "name", "value", "msecs", "destroyOnTimeout", "socket", "startTimer", "clearTimer", "method", "a", "b", "property", "searchPos", "protocol", "nativeProtocol", "scheme", "request", "buffers", "writeNext", "buffer", "statusCode", "location", "requestHeaders", "beforeRedirect", "removeMatchingHeaders", "currentHostHeader", "currentUrlParts", "parseUrl", "currentHost", "currentUrl", "redirectUrl", "resolveUrl", "spreadUrlObject", "isSubdomain", "responseDetails", "requestDetails", "wrap", "protocols", "nativeProtocols", "wrappedProtocol", "input", "isURL", "validateUrl", "get", "wrappedRequest", "parsed", "relative", "base", "urlObject", "target", "spread", "key", "regex", "headers", "lastValue", "header", "code", "message", "baseClass", "CustomError", "properties", "subdomain", "domain", "dot", "require_package", "__commonJSMin", "exports", "module", "require_http", "__commonJSMin", "exports", "module", "utils", "settle", "buildFullPath", "buildURL", "http", "https", "httpFollow", "httpsFollow", "url", "zlib", "pkg", "createError", "enhanceError", "isHttps", "setProxy", "options", "proxy", "location", "base64", "redirection", "config", "resolvePromise", "rejectPromise", "resolve", "value", "reject", "data", "headers", "auth", "username", "password", "fullPath", "parsed", "protocol", "urlAuth", "urlUsername", "urlPassword", "isHttpsRequest", "agent", "proxyEnv", "proxyUrl", "parsedProxyUrl", "noProxyEnv", "shouldProxy", "noProxy", "s", "proxyElement", "proxyUrlAuth", "transport", "isHttpsProxy", "req", "res", "stream", "lastRequest", "response", "responseBuffer", "totalResponseBytes", "chunk", "err", "responseData", "timeout", "cancel", "require_defaults", "__commonJSMin", "exports", "module", "utils", "normalizeHeaderName", "enhanceError", "DEFAULT_CONTENT_TYPE", "setContentTypeIfUnset", "headers", "value", "getDefaultAdapter", "adapter", "stringifySafely", "rawValue", "parser", "encoder", "e", "defaults", "data", "transitional", "silentJSONParsing", "forcedJSONParsing", "strictJSONParsing", "status", "method", "require_transformData", "__commonJSMin", "exports", "module", "utils", "defaults", "data", "headers", "fns", "context", "fn", "require_isCancel", "__commonJSMin", "exports", "module", "value", "require_dispatchRequest", "__commonJSMin", "exports", "module", "utils", "transformData", "isCancel", "defaults", "throwIfCancellationRequested", "config", "method", "adapter", "response", "reason", "require_mergeConfig", "__commonJSMin", "exports", "module", "utils", "config1", "config2", "config", "valueFromConfig2Keys", "mergeDeepPropertiesKeys", "defaultToConfig2Keys", "directMergeKeys", "getMergedValue", "target", "source", "mergeDeepProperties", "prop", "axiosKeys", "otherKeys", "key", "require_validator", "__commonJSMin", "exports", "module", "pkg", "validators", "type", "i", "thing", "deprecatedWarnings", "currentVerArr", "isOlderVersion", "version", "thanVersion", "pkgVersionArr", "destVer", "validator", "message", "isDeprecated", "formatMessage", "opt", "desc", "value", "opts", "assertOptions", "options", "schema", "allowUnknown", "keys", "result", "require_Axios", "__commonJSMin", "exports", "module", "utils", "buildURL", "InterceptorManager", "dispatchRequest", "mergeConfig", "validator", "validators", "Axios", "instanceConfig", "config", "transitional", "requestInterceptorChain", "synchronousRequestInterceptors", "interceptor", "responseInterceptorChain", "promise", "chain", "newConfig", "onFulfilled", "onRejected", "error", "method", "url", "data", "require_Cancel", "__commonJSMin", "exports", "module", "Cancel", "message", "require_CancelToken", "__commonJSMin", "exports", "module", "Cancel", "CancelToken", "executor", "resolvePromise", "resolve", "token", "message", "cancel", "c", "require_spread", "__commonJSMin", "exports", "module", "callback", "arr", "require_isAxiosError", "__commonJSMin", "exports", "module", "payload", "require_axios", "__commonJSMin", "exports", "module", "utils", "bind", "Axios", "mergeConfig", "defaults", "createInstance", "defaultConfig", "context", "instance", "axios", "instanceConfig", "promises", "require_axios", "__commonJSMin", "exports", "module", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "_f", "splitPunct", "_g", "timeout", "shortTextList", "shortText", "base64List", "_h", "result", "i", "base64", "getAudioUrl_1", "exports", "getAudioBase64_1", "http", "__importStar", "https", "toBuffer", "stream", "length", "chunks", "chunk", "exports", "json", "str", "_err", "err", "req", "url", "opts", "promise", "resolve", "reject", "net", "__importStar", "http", "https_1", "__exportStar", "exports", "INTERNAL", "Agent", "opts", "options", "stack", "l", "name", "fakeSocket", "socket", "sockets", "index", "req", "cb", "connectOpts", "err", "v", "debug_1", "__importDefault", "debug", "parseProxyResponse", "socket", "resolve", "reject", "buffersLength", "buffers", "read", "b", "ondata", "cleanup", "onend", "onerror", "err", "buffered", "endOfHeaders", "headerParts", "firstLine", "firstLineParts", "statusCode", "statusText", "headers", "header", "firstColon", "key", "value", "current", "exports", "net", "__importStar", "tls", "assert_1", "__importDefault", "debug_1", "agent_base_1", "url_1", "parse_proxy_response_1", "debug", "setServernameFromNonIpHost", "options", "HttpsProxyAgent", "proxy", "opts", "host", "port", "omit", "req", "socket", "headers", "payload", "auth", "name", "proxyResponsePromise", "connect", "buffered", "resume", "fakeSocket", "s", "exports", "obj", "keys", "ret", "key", "quick_translate_exports", "__export", "QuickTranslate", "__toCommonJS", "import_api", "import_react", "import_api", "import_api", "import_utils", "import_react", "import_querystring", "import_undici", "languages", "getISOCode", "language", "key", "isSupported", "import_undici", "zr", "a", "b", "yr", "wr", "c", "window", "d", "e", "f", "g", "l", "h", "xr", "config", "updateTKK", "now", "code", "xt", "tokenGenerator", "text", "tk", "error", "translate", "text", "options", "error", "lang", "isSupported", "getISOCode", "token", "tokenGenerator", "baseUrl", "data", "url", "querystring", "requestOptions", "requestUrl", "body", "result", "obj", "str", "googleTTS", "import_https_proxy_agent", "AUTO_DETECT", "TranslateError", "extractPronounceTextFromRaw", "raw", "simpleTranslate", "text", "options", "translated", "translate", "err", "error", "usePreferences", "React", "useTextState", "preferences", "text", "setText", "textRef", "cbText", "err", "useDebouncedValue", "value", "delay", "debouncedValue", "setDebouncedValue", "React", "handler", "useSourceLanguage", "sourceLanguage", "setSourceLanguage", "AUTO_DETECT", "useTargetLanguages", "preferences", "usePreferences", "targetLanguages", "setTargetLanguages", "lang", "english", "languages", "autoDetect", "code", "supportedLanguagesByCode", "acc", "lang", "supportedLanguagesByCountry", "import_api", "import_jsx_runtime", "TargetLanguageList", "targetLanguages", "setTargetLanguages", "useTargetLanguages", "lang", "supportedLanguagesByCode", "updated", "l", "index", "languages", "AUTO_DETECT", "prev", "import_jsx_runtime", "LanguageDropdown", "navigation", "sourceLanguage", "setSourceLanguage", "useSourceLanguage", "targetLanguages", "useTargetLanguages", "value", "TargetLanguageList", "l", "supportedLanguagesByCode", "languages", "lang", "import_api", "import_utils", "import_api", "import_jsx_runtime", "ConfigurableCopyPasteActions", "defaultActionsPrefix", "value", "defaultPreference", "pasteAction", "copyAction", "ToggleFullTextAction", "onAction", "OpenOnGoogleTranslateWebsiteAction", "translationText", "translation", "import_jsx_runtime", "QuickTranslateListItem", "props", "langFrom", "supportedLanguagesByCode", "langTo", "result", "isLoading", "simpleTranslate", "error", "ConfigurableCopyPasteActions", "ToggleFullTextAction", "OpenOnGoogleTranslateWebsiteAction", "import_jsx_runtime", "QuickTranslate", "sourceLanguage", "useSourceLanguage", "targetLanguages", "useTargetLanguages", "proxy", "usePreferences", "isShowingDetail", "setIsShowingDetail", "text", "setText", "useTextState", "debouncedText", "useDebouncedValue", "loadingStates", "setLoadingStates", "lang", "isAnyLoading", "isLoading", "setIsLoading", "prev", "LanguageDropdown", "targetLanguage", "QuickTranslateListItem"] + "sources": ["../node_modules/dequal/lite/index.js", "../node_modules/@raycast/utils/dist/useDeepMemo.js", "../node_modules/@raycast/utils/dist/useLatest.js", "../node_modules/@raycast/utils/dist/handle-error-toast-action.js", "../node_modules/@raycast/utils/dist/usePromise.js", "../node_modules/@raycast/utils/dist/useCachedState.js", "../node_modules/object-hash/index.js", "../node_modules/@raycast/utils/dist/useCachedPromise.js", "../node_modules/media-typer/index.js", "../node_modules/content-type/index.js", "../node_modules/webidl-conversions/lib/index.js", "../node_modules/whatwg-url/lib/utils.js", "../node_modules/tr46/lib/mappingTable.json", "../node_modules/tr46/index.js", "../node_modules/whatwg-url/lib/url-state-machine.js", "../node_modules/whatwg-url/lib/URL-impl.js", "../node_modules/whatwg-url/lib/URL.js", "../node_modules/whatwg-url/lib/public-api.js", "../node_modules/node-fetch/lib/index.js", "../node_modules/cross-fetch/dist/node-ponyfill.js", "../node_modules/@raycast/utils/dist/useFetch.js", "../node_modules/signal-exit/src/signals.ts", "../node_modules/signal-exit/src/index.ts", "../node_modules/@raycast/utils/dist/exec-utils.js", "../node_modules/@raycast/utils/dist/useExec.js", "../node_modules/@raycast/utils/dist/useSQL.js", "../node_modules/@raycast/utils/dist/useForm.js", "../node_modules/@raycast/utils/dist/useAI.js", "../node_modules/@raycast/utils/dist/useFrecencySorting.js", "../node_modules/@raycast/utils/dist/icon/color.js", "../node_modules/@raycast/utils/dist/icon/avatar.js", "../node_modules/@raycast/utils/dist/icon/favicon.js", "../node_modules/@raycast/utils/dist/icon/progress.js", "../node_modules/@raycast/utils/dist/icon/index.js", "../node_modules/@raycast/utils/dist/run-applescript.js", "../node_modules/@raycast/utils/dist/index.js", "../node_modules/undici/lib/core/symbols.js", "../node_modules/undici/lib/core/errors.js", "../node_modules/undici/lib/core/util.js", "../node_modules/undici/lib/timers.js", "../node_modules/busboy/lib/utils.js", "../node_modules/streamsearch/lib/sbmh.js", "../node_modules/busboy/lib/types/multipart.js", "../node_modules/busboy/lib/types/urlencoded.js", "../node_modules/busboy/lib/index.js", "../node_modules/undici/lib/fetch/constants.js", "../node_modules/undici/lib/fetch/global.js", "../node_modules/undici/lib/fetch/util.js", "../node_modules/undici/lib/fetch/symbols.js", "../node_modules/undici/lib/fetch/webidl.js", "../node_modules/undici/lib/fetch/dataURL.js", "../node_modules/undici/lib/fetch/file.js", "../node_modules/undici/lib/fetch/formdata.js", "../node_modules/undici/lib/fetch/body.js", "../node_modules/undici/lib/core/request.js", "../node_modules/undici/lib/dispatcher.js", "../node_modules/undici/lib/dispatcher-base.js", "../node_modules/undici/lib/core/connect.js", "../node_modules/undici/src/llhttp/utils.ts", "../node_modules/undici/src/llhttp/constants.ts", "../node_modules/undici/lib/handler/RedirectHandler.js", "../node_modules/undici/lib/interceptor/redirectInterceptor.js", "../node_modules/undici/lib/llhttp/llhttp-wasm.js", "../node_modules/undici/lib/llhttp/llhttp_simd-wasm.js", "../node_modules/undici/lib/client.js", "../node_modules/undici/lib/node/fixed-queue.js", "../node_modules/undici/lib/pool-stats.js", "../node_modules/undici/lib/pool-base.js", "../node_modules/undici/lib/pool.js", "../node_modules/undici/lib/balanced-pool.js", "../node_modules/undici/lib/compat/dispatcher-weakref.js", "../node_modules/undici/lib/agent.js", "../node_modules/undici/lib/api/readable.js", "../node_modules/undici/lib/api/util.js", "../node_modules/undici/lib/api/abort-signal.js", "../node_modules/undici/lib/api/api-request.js", "../node_modules/undici/lib/api/api-stream.js", "../node_modules/undici/lib/api/api-pipeline.js", "../node_modules/undici/lib/api/api-upgrade.js", "../node_modules/undici/lib/api/api-connect.js", "../node_modules/undici/lib/api/index.js", "../node_modules/undici/lib/mock/mock-errors.js", "../node_modules/undici/lib/mock/mock-symbols.js", "../node_modules/undici/lib/mock/mock-utils.js", "../node_modules/undici/lib/mock/mock-interceptor.js", "../node_modules/undici/lib/mock/mock-client.js", "../node_modules/undici/lib/mock/mock-pool.js", "../node_modules/undici/lib/mock/pluralizer.js", "../node_modules/undici/lib/mock/pending-interceptors-formatter.js", "../node_modules/undici/lib/mock/mock-agent.js", "../node_modules/undici/lib/proxy-agent.js", "../node_modules/undici/lib/global.js", "../node_modules/undici/lib/handler/DecoratorHandler.js", "../node_modules/undici/lib/fetch/headers.js", "../node_modules/undici/lib/fetch/response.js", "../node_modules/undici/lib/fetch/request.js", "../node_modules/undici/lib/fetch/index.js", "../node_modules/undici/lib/fileapi/symbols.js", "../node_modules/undici/lib/fileapi/progressevent.js", "../node_modules/undici/lib/fileapi/encoding.js", "../node_modules/undici/lib/fileapi/util.js", "../node_modules/undici/lib/fileapi/filereader.js", "../node_modules/undici/lib/cache/symbols.js", "../node_modules/undici/lib/cache/util.js", "../node_modules/undici/lib/cache/cache.js", "../node_modules/undici/lib/cache/cachestorage.js", "../node_modules/undici/lib/cookies/constants.js", "../node_modules/undici/lib/cookies/util.js", "../node_modules/undici/lib/cookies/parse.js", "../node_modules/undici/lib/cookies/index.js", "../node_modules/undici/lib/websocket/constants.js", "../node_modules/undici/lib/websocket/symbols.js", "../node_modules/undici/lib/websocket/events.js", "../node_modules/undici/lib/websocket/util.js", "../node_modules/undici/lib/websocket/connection.js", "../node_modules/undici/lib/websocket/frame.js", "../node_modules/undici/lib/websocket/receiver.js", "../node_modules/undici/lib/websocket/websocket.js", "../node_modules/undici/index.js", "../node_modules/google-tts-api/src/assertInputTypes.ts", "../node_modules/google-tts-api/src/splitLongText.ts", "../node_modules/google-tts-api/src/getAudioUrl.ts", "../node_modules/axios/lib/helpers/bind.js", "../node_modules/axios/lib/utils.js", "../node_modules/axios/lib/helpers/buildURL.js", "../node_modules/axios/lib/core/InterceptorManager.js", "../node_modules/axios/lib/helpers/normalizeHeaderName.js", "../node_modules/axios/lib/core/enhanceError.js", "../node_modules/axios/lib/core/createError.js", "../node_modules/axios/lib/core/settle.js", "../node_modules/axios/lib/helpers/cookies.js", "../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../node_modules/axios/lib/helpers/combineURLs.js", "../node_modules/axios/lib/core/buildFullPath.js", "../node_modules/axios/lib/helpers/parseHeaders.js", "../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../node_modules/axios/lib/adapters/xhr.js", "../node_modules/ms/index.js", "../node_modules/debug/src/common.js", "../node_modules/debug/src/browser.js", "../node_modules/has-flag/index.js", "../node_modules/supports-color/index.js", "../node_modules/debug/src/node.js", "../node_modules/debug/src/index.js", "../node_modules/follow-redirects/debug.js", "../node_modules/follow-redirects/index.js", "../node_modules/axios/package.json", "../node_modules/axios/lib/adapters/http.js", "../node_modules/axios/lib/defaults.js", "../node_modules/axios/lib/core/transformData.js", "../node_modules/axios/lib/cancel/isCancel.js", "../node_modules/axios/lib/core/dispatchRequest.js", "../node_modules/axios/lib/core/mergeConfig.js", "../node_modules/axios/lib/helpers/validator.js", "../node_modules/axios/lib/core/Axios.js", "../node_modules/axios/lib/cancel/Cancel.js", "../node_modules/axios/lib/cancel/CancelToken.js", "../node_modules/axios/lib/helpers/spread.js", "../node_modules/axios/lib/helpers/isAxiosError.js", "../node_modules/axios/lib/axios.js", "../node_modules/axios/index.js", "../node_modules/google-tts-api/src/getAudioBase64.ts", "../node_modules/google-tts-api/src/index.ts", "../src/quick-translate.tsx", "../src/QuickTranslate/LanguageDropdown.tsx", "../src/hooks.ts", "../vendor/@iamtraction-translate/src/index.ts", "../vendor/@iamtraction-translate/src/languages.ts", "../vendor/@iamtraction-translate/src/tokenGenerator.ts", "../src/simple-translate.ts", "../src/supportedLanguages.json", "../src/supportedLanguagesByCode.json", "../src/languages.ts", "../src/QuickTranslate/TargetLanguageList.tsx", "../src/QuickTranslate/QuickTranslateListItem.tsx", "../src/actions.tsx"], + "sourcesContent": ["var has = Object.prototype.hasOwnProperty;\n\nfunction dequal(foo, bar) {\n\tvar ctor, len;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n\nexports.dequal = dequal;", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useDeepMemo = void 0;\nconst react_1 = require(\"react\");\nconst lite_1 = require(\"dequal/lite\");\n/**\n * @param value the value to be memoized (usually a dependency list)\n * @returns a memoized version of the value as long as it remains deeply equal\n */\nfunction useDeepMemo(value) {\n const ref = (0, react_1.useRef)(value);\n const signalRef = (0, react_1.useRef)(0);\n if (!(0, lite_1.dequal)(value, ref.current)) {\n ref.current = value;\n signalRef.current += 1;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return (0, react_1.useMemo)(() => ref.current, [signalRef.current]);\n}\nexports.useDeepMemo = useDeepMemo;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useLatest = void 0;\nconst react_1 = require(\"react\");\n/**\n * Returns the latest state.\n *\n * This is mostly useful to get access to the latest value of some props or state inside an asynchronous callback, instead of that value at the time the callback was created from.\n */\nfunction useLatest(value) {\n const ref = (0, react_1.useRef)(value);\n ref.current = value;\n return ref;\n}\nexports.useLatest = useLatest;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.handleErrorToastAction = void 0;\nconst fs = __importStar(require(\"fs\"));\nconst path = __importStar(require(\"path\"));\nconst api_1 = require(\"@raycast/api\");\nconst handleErrorToastAction = (error) => {\n let privateExtension = true;\n let title = \"[Extension Name]...\";\n let extensionURL = \"\";\n try {\n const packageJSON = JSON.parse(fs.readFileSync(path.join(api_1.environment.assetsPath, \"..\", \"package.json\"), \"utf8\"));\n title = `[${packageJSON.title}]...`;\n extensionURL = `https://raycast.com/${packageJSON.owner || packageJSON.author}/${packageJSON.name}`;\n if (!packageJSON.owner || packageJSON.access === \"public\") {\n privateExtension = false;\n }\n }\n catch (err) {\n // no-op\n }\n // if it's a private extension, we can't construct the URL to report the error\n // so we fallback to copying the error to the clipboard\n const fallback = api_1.environment.isDevelopment || privateExtension;\n return {\n title: fallback ? \"Copy Logs\" : \"Report Error\",\n onAction(toast) {\n toast.hide();\n if (fallback) {\n api_1.Clipboard.copy(error?.stack || error?.message || \"\");\n }\n else {\n (0, api_1.open)(`https://github.com/raycast/extensions/issues/new?&labels=extension%2Cbug&template=extension_bug_report.yml&title=${encodeURIComponent(title)}&extension-url=${encodeURI(extensionURL)}&description=${encodeURIComponent(`#### Error:\n\\`\\`\\`\n${error?.stack || error?.message || \"\"}\n\\`\\`\\`\n`)}`);\n }\n },\n };\n};\nexports.handleErrorToastAction = handleErrorToastAction;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.usePromise = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst useDeepMemo_1 = require(\"./useDeepMemo\");\nconst useLatest_1 = require(\"./useLatest\");\nconst handle_error_toast_action_1 = require(\"./handle-error-toast-action\");\nfunction usePromise(fn, args, options) {\n const lastCallId = (0, react_1.useRef)(0);\n const [state, set] = (0, react_1.useState)({ isLoading: true });\n const fnRef = (0, useLatest_1.useLatest)(fn);\n const latestAbortable = (0, useLatest_1.useLatest)(options?.abortable);\n const latestArgs = (0, useLatest_1.useLatest)(args || []);\n const latestOnError = (0, useLatest_1.useLatest)(options?.onError);\n const latestOnData = (0, useLatest_1.useLatest)(options?.onData);\n const latestOnWillExecute = (0, useLatest_1.useLatest)(options?.onWillExecute);\n const latestValue = (0, useLatest_1.useLatest)(state.data);\n const latestCallback = (0, react_1.useRef)();\n const callback = (0, react_1.useCallback)((...args) => {\n const callId = ++lastCallId.current;\n if (latestAbortable.current) {\n latestAbortable.current.current?.abort();\n latestAbortable.current.current = new AbortController();\n }\n latestOnWillExecute.current?.(args);\n set((prevState) => ({ ...prevState, isLoading: true }));\n return bindPromiseIfNeeded(fnRef.current)(...args).then((data) => {\n if (callId === lastCallId.current) {\n if (latestOnData.current) {\n latestOnData.current(data);\n }\n set({ data, isLoading: false });\n }\n return data;\n }, (error) => {\n if (error.name == \"AbortError\") {\n return error;\n }\n if (callId === lastCallId.current) {\n // handle errors\n if (latestOnError.current) {\n latestOnError.current(error);\n }\n else {\n console.error(error);\n if (api_1.environment.launchType !== api_1.LaunchType.Background) {\n (0, api_1.showToast)({\n style: api_1.Toast.Style.Failure,\n title: \"Failed to fetch latest data\",\n message: error.message,\n primaryAction: {\n title: \"Retry\",\n onAction(toast) {\n toast.hide();\n latestCallback.current?.(...(latestArgs.current || []));\n },\n },\n secondaryAction: (0, handle_error_toast_action_1.handleErrorToastAction)(error),\n });\n }\n }\n set({ error, isLoading: false });\n }\n return error;\n });\n }, [latestAbortable, latestOnData, latestOnError, latestArgs, fnRef, set, latestCallback, latestOnWillExecute]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n );\n latestCallback.current = callback;\n const revalidate = (0, react_1.useCallback)(() => {\n return callback(...(latestArgs.current || []));\n }, [callback, latestArgs]);\n const mutate = (0, react_1.useCallback)(async (asyncUpdate, options) => {\n let dataBeforeOptimisticUpdate;\n try {\n if (options?.optimisticUpdate) {\n if (typeof options?.rollbackOnError !== \"function\" && options?.rollbackOnError !== false) {\n // keep track of the data before the optimistic update,\n // but only if we need it (eg. only when we want to automatically rollback after)\n dataBeforeOptimisticUpdate = structuredClone(latestValue.current?.value);\n }\n const update = options.optimisticUpdate;\n set((prevState) => ({ ...prevState, data: update(prevState.data) }));\n }\n return await asyncUpdate;\n }\n catch (err) {\n if (typeof options?.rollbackOnError === \"function\") {\n const update = options.rollbackOnError;\n set((prevState) => ({ ...prevState, data: update(prevState.data) }));\n }\n else if (options?.optimisticUpdate && options?.rollbackOnError !== false) {\n set((prevState) => ({ ...prevState, data: dataBeforeOptimisticUpdate }));\n }\n throw err;\n }\n finally {\n if (options?.shouldRevalidateAfter !== false) {\n if (api_1.environment.launchType === api_1.LaunchType.Background || api_1.environment.commandMode === \"menu-bar\") {\n // when in the background or in a menu bar, we are going to await the revalidation\n // to make sure we get the right data at the end of the mutation\n await revalidate();\n }\n else {\n revalidate();\n }\n }\n }\n }, [revalidate, latestValue, set]);\n // revalidate when the args change\n (0, react_1.useEffect)(() => {\n if (options?.execute !== false) {\n callback(...(args || []));\n }\n else {\n // cancel the previous request if we don't want to execute anymore\n if (latestAbortable.current) {\n latestAbortable.current.current?.abort();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(0, useDeepMemo_1.useDeepMemo)([args, options?.execute, callback]), latestAbortable]);\n // abort request when unmounting\n (0, react_1.useEffect)(() => {\n return () => {\n if (latestAbortable.current) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n latestAbortable.current.current?.abort();\n }\n };\n }, [latestAbortable]);\n // we only want to show the loading indicator if the promise is executing\n const isLoading = options?.execute !== false ? state.isLoading : false;\n // @ts-expect-error loading is has some fixed value in the enum which\n const stateWithLoadingFixed = { ...state, isLoading };\n return { ...stateWithLoadingFixed, revalidate, mutate };\n}\nexports.usePromise = usePromise;\n/** Bind the fn if it's a Promise method */\nfunction bindPromiseIfNeeded(fn) {\n if (fn === Promise.all) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.race) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.resolve) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.reject) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n return fn;\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useCachedState = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst useLatest_1 = require(\"./useLatest\");\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction replacer(key, _value) {\n const value = this[key];\n if (value instanceof Date) {\n return `__raycast_cached_date__${value.toString()}`;\n }\n if (Buffer.isBuffer(value)) {\n return `__raycast_cached_buffer__${value.toString(\"base64\")}`;\n }\n return _value;\n}\nfunction reviver(_key, value) {\n if (typeof value === \"string\" && value.startsWith(\"__raycast_cached_date__\")) {\n return new Date(value.replace(\"__raycast_cached_date__\", \"\"));\n }\n if (typeof value === \"string\" && value.startsWith(\"__raycast_cached_buffer__\")) {\n return Buffer.from(value.replace(\"__raycast_cached_buffer__\", \"\"), \"base64\");\n }\n return value;\n}\nconst rootCache = Symbol(\"cache without namespace\");\nconst cacheMap = new Map();\nfunction useCachedState(key, initialState, config) {\n const cacheKey = config?.cacheNamespace || rootCache;\n const cache = cacheMap.get(cacheKey) || cacheMap.set(cacheKey, new api_1.Cache({ namespace: config?.cacheNamespace })).get(cacheKey);\n if (!cache) {\n throw new Error(\"Missing cache\");\n }\n const keyRef = (0, useLatest_1.useLatest)(key);\n const initialValueRef = (0, useLatest_1.useLatest)(initialState);\n const cachedState = (0, react_1.useSyncExternalStore)(cache.subscribe, () => {\n try {\n return cache.get(keyRef.current);\n }\n catch (error) {\n console.error(\"Could not get Cache data:\", error);\n return undefined;\n }\n });\n const state = (0, react_1.useMemo)(() => {\n if (typeof cachedState !== \"undefined\") {\n if (cachedState === \"undefined\") {\n return undefined;\n }\n try {\n return JSON.parse(cachedState, reviver);\n }\n catch (err) {\n // the data got corrupted somehow\n console.warn(\"The cached data is corrupted\", err);\n return initialValueRef.current;\n }\n }\n else {\n return initialValueRef.current;\n }\n }, [cachedState, initialValueRef]);\n const stateRef = (0, useLatest_1.useLatest)(state);\n const setStateAndCache = (0, react_1.useCallback)((updater) => {\n // @ts-expect-error TS struggles to infer the types as T could potentially be a function\n const newValue = typeof updater === \"function\" ? updater(stateRef.current) : updater;\n if (typeof newValue === \"undefined\") {\n cache.set(keyRef.current, \"undefined\");\n }\n else {\n const stringifiedValue = JSON.stringify(newValue, replacer);\n cache.set(keyRef.current, stringifiedValue);\n }\n return newValue;\n }, [cache, keyRef, stateRef]);\n return [state, setStateAndCache];\n}\nexports.useCachedState = useCachedState;\n", "'use strict';\n\nvar crypto = require('crypto');\n\n/**\n * Exported function\n *\n * Options:\n *\n * - `algorithm` hash algo to be used by this instance: *'sha1', 'md5'\n * - `excludeValues` {true|*false} hash object keys, values ignored\n * - `encoding` hash encoding, supports 'buffer', '*hex', 'binary', 'base64'\n * - `ignoreUnknown` {true|*false} ignore unknown object types\n * - `replacer` optional function that replaces values before hashing\n * - `respectFunctionProperties` {*true|false} consider function properties when hashing\n * - `respectFunctionNames` {*true|false} consider 'name' property of functions for hashing\n * - `respectType` {*true|false} Respect special properties (prototype, constructor)\n * when hashing to distinguish between types\n * - `unorderedArrays` {true|*false} Sort all arrays before hashing\n * - `unorderedSets` {*true|false} Sort `Set` and `Map` instances before hashing\n * * = default\n *\n * @param {object} object value to hash\n * @param {object} options hashing options\n * @return {string} hash value\n * @api public\n */\nexports = module.exports = objectHash;\n\nfunction objectHash(object, options){\n options = applyDefaults(object, options);\n\n return hash(object, options);\n}\n\n/**\n * Exported sugar methods\n *\n * @param {object} object value to hash\n * @return {string} hash value\n * @api public\n */\nexports.sha1 = function(object){\n return objectHash(object);\n};\nexports.keys = function(object){\n return objectHash(object, {excludeValues: true, algorithm: 'sha1', encoding: 'hex'});\n};\nexports.MD5 = function(object){\n return objectHash(object, {algorithm: 'md5', encoding: 'hex'});\n};\nexports.keysMD5 = function(object){\n return objectHash(object, {algorithm: 'md5', encoding: 'hex', excludeValues: true});\n};\n\n// Internals\nvar hashes = crypto.getHashes ? crypto.getHashes().slice() : ['sha1', 'md5'];\nhashes.push('passthrough');\nvar encodings = ['buffer', 'hex', 'binary', 'base64'];\n\nfunction applyDefaults(object, sourceOptions){\n sourceOptions = sourceOptions || {};\n\n // create a copy rather than mutating\n var options = {};\n options.algorithm = sourceOptions.algorithm || 'sha1';\n options.encoding = sourceOptions.encoding || 'hex';\n options.excludeValues = sourceOptions.excludeValues ? true : false;\n options.algorithm = options.algorithm.toLowerCase();\n options.encoding = options.encoding.toLowerCase();\n options.ignoreUnknown = sourceOptions.ignoreUnknown !== true ? false : true; // default to false\n options.respectType = sourceOptions.respectType === false ? false : true; // default to true\n options.respectFunctionNames = sourceOptions.respectFunctionNames === false ? false : true;\n options.respectFunctionProperties = sourceOptions.respectFunctionProperties === false ? false : true;\n options.unorderedArrays = sourceOptions.unorderedArrays !== true ? false : true; // default to false\n options.unorderedSets = sourceOptions.unorderedSets === false ? false : true; // default to false\n options.unorderedObjects = sourceOptions.unorderedObjects === false ? false : true; // default to true\n options.replacer = sourceOptions.replacer || undefined;\n options.excludeKeys = sourceOptions.excludeKeys || undefined;\n\n if(typeof object === 'undefined') {\n throw new Error('Object argument required.');\n }\n\n // if there is a case-insensitive match in the hashes list, accept it\n // (i.e. SHA256 for sha256)\n for (var i = 0; i < hashes.length; ++i) {\n if (hashes[i].toLowerCase() === options.algorithm.toLowerCase()) {\n options.algorithm = hashes[i];\n }\n }\n\n if(hashes.indexOf(options.algorithm) === -1){\n throw new Error('Algorithm \"' + options.algorithm + '\" not supported. ' +\n 'supported values: ' + hashes.join(', '));\n }\n\n if(encodings.indexOf(options.encoding) === -1 &&\n options.algorithm !== 'passthrough'){\n throw new Error('Encoding \"' + options.encoding + '\" not supported. ' +\n 'supported values: ' + encodings.join(', '));\n }\n\n return options;\n}\n\n/** Check if the given function is a native function */\nfunction isNativeFunction(f) {\n if ((typeof f) !== 'function') {\n return false;\n }\n var exp = /^function\\s+\\w*\\s*\\(\\s*\\)\\s*{\\s+\\[native code\\]\\s+}$/i;\n return exp.exec(Function.prototype.toString.call(f)) != null;\n}\n\nfunction hash(object, options) {\n var hashingStream;\n\n if (options.algorithm !== 'passthrough') {\n hashingStream = crypto.createHash(options.algorithm);\n } else {\n hashingStream = new PassThrough();\n }\n\n if (typeof hashingStream.write === 'undefined') {\n hashingStream.write = hashingStream.update;\n hashingStream.end = hashingStream.update;\n }\n\n var hasher = typeHasher(options, hashingStream);\n hasher.dispatch(object);\n if (!hashingStream.update) {\n hashingStream.end('');\n }\n\n if (hashingStream.digest) {\n return hashingStream.digest(options.encoding === 'buffer' ? undefined : options.encoding);\n }\n\n var buf = hashingStream.read();\n if (options.encoding === 'buffer') {\n return buf;\n }\n\n return buf.toString(options.encoding);\n}\n\n/**\n * Expose streaming API\n *\n * @param {object} object Value to serialize\n * @param {object} options Options, as for hash()\n * @param {object} stream A stream to write the serializiation to\n * @api public\n */\nexports.writeToStream = function(object, options, stream) {\n if (typeof stream === 'undefined') {\n stream = options;\n options = {};\n }\n\n options = applyDefaults(object, options);\n\n return typeHasher(options, stream).dispatch(object);\n};\n\nfunction typeHasher(options, writeTo, context){\n context = context || [];\n var write = function(str) {\n if (writeTo.update) {\n return writeTo.update(str, 'utf8');\n } else {\n return writeTo.write(str, 'utf8');\n }\n };\n\n return {\n dispatch: function(value){\n if (options.replacer) {\n value = options.replacer(value);\n }\n\n var type = typeof value;\n if (value === null) {\n type = 'null';\n }\n\n //console.log(\"[DEBUG] Dispatch: \", value, \"->\", type, \" -> \", \"_\" + type);\n\n return this['_' + type](value);\n },\n _object: function(object) {\n var pattern = (/\\[object (.*)\\]/i);\n var objString = Object.prototype.toString.call(object);\n var objType = pattern.exec(objString);\n if (!objType) { // object type did not match [object ...]\n objType = 'unknown:[' + objString + ']';\n } else {\n objType = objType[1]; // take only the class name\n }\n\n objType = objType.toLowerCase();\n\n var objectNumber = null;\n\n if ((objectNumber = context.indexOf(object)) >= 0) {\n return this.dispatch('[CIRCULAR:' + objectNumber + ']');\n } else {\n context.push(object);\n }\n\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer && Buffer.isBuffer(object)) {\n write('buffer:');\n return write(object);\n }\n\n if(objType !== 'object' && objType !== 'function' && objType !== 'asyncfunction') {\n if(this['_' + objType]) {\n this['_' + objType](object);\n } else if (options.ignoreUnknown) {\n return write('[' + objType + ']');\n } else {\n throw new Error('Unknown object type \"' + objType + '\"');\n }\n }else{\n var keys = Object.keys(object);\n if (options.unorderedObjects) {\n keys = keys.sort();\n }\n // Make sure to incorporate special properties, so\n // Types with different prototypes will produce\n // a different hash and objects derived from\n // different functions (`new Foo`, `new Bar`) will\n // produce different hashes.\n // We never do this for native functions since some\n // seem to break because of that.\n if (options.respectType !== false && !isNativeFunction(object)) {\n keys.splice(0, 0, 'prototype', '__proto__', 'constructor');\n }\n\n if (options.excludeKeys) {\n keys = keys.filter(function(key) { return !options.excludeKeys(key); });\n }\n\n write('object:' + keys.length + ':');\n var self = this;\n return keys.forEach(function(key){\n self.dispatch(key);\n write(':');\n if(!options.excludeValues) {\n self.dispatch(object[key]);\n }\n write(',');\n });\n }\n },\n _array: function(arr, unordered){\n unordered = typeof unordered !== 'undefined' ? unordered :\n options.unorderedArrays !== false; // default to options.unorderedArrays\n\n var self = this;\n write('array:' + arr.length + ':');\n if (!unordered || arr.length <= 1) {\n return arr.forEach(function(entry) {\n return self.dispatch(entry);\n });\n }\n\n // the unordered case is a little more complicated:\n // since there is no canonical ordering on objects,\n // i.e. {a:1} < {a:2} and {a:1} > {a:2} are both false,\n // we first serialize each entry using a PassThrough stream\n // before sorting.\n // also: we can\u2019t use the same context array for all entries\n // since the order of hashing should *not* matter. instead,\n // we keep track of the additions to a copy of the context array\n // and add all of them to the global context array when we\u2019re done\n var contextAdditions = [];\n var entries = arr.map(function(entry) {\n var strm = new PassThrough();\n var localContext = context.slice(); // make copy\n var hasher = typeHasher(options, strm, localContext);\n hasher.dispatch(entry);\n // take only what was added to localContext and append it to contextAdditions\n contextAdditions = contextAdditions.concat(localContext.slice(context.length));\n return strm.read().toString();\n });\n context = context.concat(contextAdditions);\n entries.sort();\n return this._array(entries, false);\n },\n _date: function(date){\n return write('date:' + date.toJSON());\n },\n _symbol: function(sym){\n return write('symbol:' + sym.toString());\n },\n _error: function(err){\n return write('error:' + err.toString());\n },\n _boolean: function(bool){\n return write('bool:' + bool.toString());\n },\n _string: function(string){\n write('string:' + string.length + ':');\n write(string.toString());\n },\n _function: function(fn){\n write('fn:');\n if (isNativeFunction(fn)) {\n this.dispatch('[native]');\n } else {\n this.dispatch(fn.toString());\n }\n\n if (options.respectFunctionNames !== false) {\n // Make sure we can still distinguish native functions\n // by their name, otherwise String and Function will\n // have the same hash\n this.dispatch(\"function-name:\" + String(fn.name));\n }\n\n if (options.respectFunctionProperties) {\n this._object(fn);\n }\n },\n _number: function(number){\n return write('number:' + number.toString());\n },\n _xml: function(xml){\n return write('xml:' + xml.toString());\n },\n _null: function() {\n return write('Null');\n },\n _undefined: function() {\n return write('Undefined');\n },\n _regexp: function(regex){\n return write('regex:' + regex.toString());\n },\n _uint8array: function(arr){\n write('uint8array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint8clampedarray: function(arr){\n write('uint8clampedarray:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int8array: function(arr){\n write('int8array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint16array: function(arr){\n write('uint16array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int16array: function(arr){\n write('int16array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint32array: function(arr){\n write('uint32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int32array: function(arr){\n write('int32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _float32array: function(arr){\n write('float32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _float64array: function(arr){\n write('float64array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _arraybuffer: function(arr){\n write('arraybuffer:');\n return this.dispatch(new Uint8Array(arr));\n },\n _url: function(url) {\n return write('url:' + url.toString(), 'utf8');\n },\n _map: function(map) {\n write('map:');\n var arr = Array.from(map);\n return this._array(arr, options.unorderedSets !== false);\n },\n _set: function(set) {\n write('set:');\n var arr = Array.from(set);\n return this._array(arr, options.unorderedSets !== false);\n },\n _file: function(file) {\n write('file:');\n return this.dispatch([file.name, file.size, file.type, file.lastModfied]);\n },\n _blob: function() {\n if (options.ignoreUnknown) {\n return write('[blob]');\n }\n\n throw Error('Hashing Blob objects is currently not supported\\n' +\n '(see https://github.com/puleos/object-hash/issues/26)\\n' +\n 'Use \"options.replacer\" or \"options.ignoreUnknown\"\\n');\n },\n _domwindow: function() { return write('domwindow'); },\n _bigint: function(number){\n return write('bigint:' + number.toString());\n },\n /* Node.js standard native objects */\n _process: function() { return write('process'); },\n _timer: function() { return write('timer'); },\n _pipe: function() { return write('pipe'); },\n _tcp: function() { return write('tcp'); },\n _udp: function() { return write('udp'); },\n _tty: function() { return write('tty'); },\n _statwatcher: function() { return write('statwatcher'); },\n _securecontext: function() { return write('securecontext'); },\n _connection: function() { return write('connection'); },\n _zlib: function() { return write('zlib'); },\n _context: function() { return write('context'); },\n _nodescript: function() { return write('nodescript'); },\n _httpparser: function() { return write('httpparser'); },\n _dataview: function() { return write('dataview'); },\n _signal: function() { return write('signal'); },\n _fsevent: function() { return write('fsevent'); },\n _tlswrap: function() { return write('tlswrap'); },\n };\n}\n\n// Mini-implementation of stream.PassThrough\n// We are far from having need for the full implementation, and we can\n// make assumptions like \"many writes, then only one final read\"\n// and we can ignore encoding specifics\nfunction PassThrough() {\n return {\n buf: '',\n\n write: function(b) {\n this.buf += b;\n },\n\n end: function(b) {\n this.buf += b;\n },\n\n read: function() {\n return this.buf;\n }\n };\n}\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useCachedPromise = void 0;\nconst react_1 = require(\"react\");\nconst object_hash_1 = __importDefault(require(\"object-hash\"));\nconst useCachedState_1 = require(\"./useCachedState\");\nconst usePromise_1 = require(\"./usePromise\");\nconst useLatest_1 = require(\"./useLatest\");\n// Symbol to differentiate an empty cache from `undefined`\nconst emptyCache = Symbol();\nfunction useCachedPromise(fn, args, options) {\n const { initialData, keepPreviousData, ...usePromiseOptions } = options || {};\n const lastUpdateFrom = (0, react_1.useRef)();\n const [cachedData, mutateCache] = (0, useCachedState_1.useCachedState)((0, object_hash_1.default)(args || []), emptyCache, {\n cacheNamespace: (0, object_hash_1.default)(fn),\n });\n // Use a ref to store previous returned data. Use the inital data as its inital value from the cache.\n const laggyDataRef = (0, react_1.useRef)(cachedData !== emptyCache ? cachedData : initialData);\n const { mutate: _mutate, revalidate, ...state\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = (0, usePromise_1.usePromise)(fn, args || [], {\n ...usePromiseOptions,\n onData(data) {\n if (usePromiseOptions.onData) {\n usePromiseOptions.onData(data);\n }\n // update the cache when we fetch new values\n lastUpdateFrom.current = \"promise\";\n laggyDataRef.current = data;\n mutateCache(data);\n },\n });\n // data returned if there are no special cases\n const data = cachedData !== emptyCache ? cachedData : initialData;\n const returnedData = \n // if the latest update if from the Promise, we keep it\n lastUpdateFrom.current === \"promise\"\n ? laggyDataRef.current\n : // if we want to keep the latest data, we pick the cache but only if it's not empty\n keepPreviousData\n ? cachedData !== emptyCache\n ? cachedData\n : // if the cache is empty, we will return the previous data\n laggyDataRef.current\n : data;\n const latestData = (0, useLatest_1.useLatest)(returnedData);\n // we rewrite the mutate function to update the cache instead\n const mutate = (0, react_1.useCallback)(async (asyncUpdate, options) => {\n let dataBeforeOptimisticUpdate;\n try {\n if (options?.optimisticUpdate) {\n if (typeof options?.rollbackOnError !== \"function\" && options?.rollbackOnError !== false) {\n // keep track of the data before the optimistic update,\n // but only if we need it (eg. only when we want to automatically rollback after)\n dataBeforeOptimisticUpdate = structuredClone(latestData.current);\n }\n const data = options.optimisticUpdate(latestData.current);\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = data;\n mutateCache(data);\n }\n return await _mutate(asyncUpdate, { shouldRevalidateAfter: options?.shouldRevalidateAfter });\n }\n catch (err) {\n if (typeof options?.rollbackOnError === \"function\") {\n const data = options.rollbackOnError(latestData.current);\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = data;\n mutateCache(data);\n }\n else if (options?.optimisticUpdate && options?.rollbackOnError !== false) {\n lastUpdateFrom.current = \"cache\";\n // @ts-expect-error when undefined, it's expected\n laggyDataRef.current = dataBeforeOptimisticUpdate;\n // @ts-expect-error when undefined, it's expected\n mutateCache(dataBeforeOptimisticUpdate);\n }\n throw err;\n }\n }, [mutateCache, _mutate, latestData, laggyDataRef, lastUpdateFrom]);\n (0, react_1.useEffect)(() => {\n if (cachedData !== emptyCache) {\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = cachedData;\n }\n }, [cachedData]);\n return {\n data: returnedData,\n isLoading: state.isLoading,\n error: state.error,\n mutate,\n revalidate,\n };\n}\nexports.useCachedPromise = useCachedPromise;\n", "/*!\n * media-typer\n * Copyright(c) 2014-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match type in RFC 6838\n *\n * type-name = restricted-name\n * subtype-name = restricted-name\n * restricted-name = restricted-name-first *126restricted-name-chars\n * restricted-name-first = ALPHA / DIGIT\n * restricted-name-chars = ALPHA / DIGIT / \"!\" / \"#\" /\n * \"$\" / \"&\" / \"-\" / \"^\" / \"_\"\n * restricted-name-chars =/ \".\" ; Characters before first dot always\n * ; specify a facet name\n * restricted-name-chars =/ \"+\" ; Characters after last plus always\n * ; specify a structured syntax suffix\n * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n * DIGIT = %x30-39 ; 0-9\n */\nvar SUBTYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/\nvar TYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/\nvar TYPE_REGEXP = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/\n\n/**\n * Module exports.\n */\n\nexports.format = format\nexports.parse = parse\nexports.test = test\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var subtype = obj.subtype\n var suffix = obj.suffix\n var type = obj.type\n\n if (!type || !TYPE_NAME_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n if (!subtype || !SUBTYPE_NAME_REGEXP.test(subtype)) {\n throw new TypeError('invalid subtype')\n }\n\n // format as type/subtype\n var string = type + '/' + subtype\n\n // append +suffix\n if (suffix) {\n if (!TYPE_NAME_REGEXP.test(suffix)) {\n throw new TypeError('invalid suffix')\n }\n\n string += '+' + suffix\n }\n\n return string\n}\n\n/**\n * Test media type.\n *\n * @param {string} string\n * @return {object}\n * @public\n */\n\nfunction test (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n if (typeof string !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n return TYPE_REGEXP.test(string.toLowerCase())\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string} string\n * @return {object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n if (typeof string !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var match = TYPE_REGEXP.exec(string.toLowerCase())\n\n if (!match) {\n throw new TypeError('invalid media type')\n }\n\n var type = match[1]\n var subtype = match[2]\n var suffix\n\n // suffix after last +\n var index = subtype.lastIndexOf('+')\n if (index !== -1) {\n suffix = subtype.substr(index + 1)\n subtype = subtype.substr(0, index)\n }\n\n return new MediaType(type, subtype, suffix)\n}\n\n/**\n * Class for MediaType object.\n * @public\n */\n\nfunction MediaType (type, subtype, suffix) {\n this.type = type\n this.subtype = subtype\n this.suffix = suffix\n}\n", "/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match *( \";\" parameter ) in RFC 7231 sec 3.1.1.1\n *\n * parameter = token \"=\" ( token / quoted-string )\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n * / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n * / DIGIT / ALPHA\n * ; any VCHAR, except delimiters\n * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE\n * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text\n * obs-text = %x80-FF\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n */\nvar PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *(\"(?:[\\u000b\\u0020\\u0021\\u0023-\\u005b\\u005d-\\u007e\\u0080-\\u00ff]|\\\\[\\u000b\\u0020-\\u00ff])*\"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g // eslint-disable-line no-control-regex\nvar TEXT_REGEXP = /^[\\u000b\\u0020-\\u007e\\u0080-\\u00ff]+$/ // eslint-disable-line no-control-regex\nvar TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * RegExp to match quoted-pair in RFC 7230 sec 3.2.6\n *\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n * obs-text = %x80-FF\n */\nvar QESC_REGEXP = /\\\\([\\u000b\\u0020-\\u00ff])/g // eslint-disable-line no-control-regex\n\n/**\n * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6\n */\nvar QUOTE_REGEXP = /([\\\\\"])/g\n\n/**\n * RegExp to match type in RFC 7231 sec 3.1.1.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nvar TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * Module exports.\n * @public\n */\n\nexports.format = format\nexports.parse = parse\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var parameters = obj.parameters\n var type = obj.type\n\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n var string = type\n\n // append parameters\n if (parameters && typeof parameters === 'object') {\n var param\n var params = Object.keys(parameters).sort()\n\n for (var i = 0; i < params.length; i++) {\n param = params[i]\n\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError('invalid parameter name')\n }\n\n string += '; ' + param + '=' + qstring(parameters[param])\n }\n }\n\n return string\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string|object} string\n * @return {Object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n // support req/res-like objects as argument\n var header = typeof string === 'object'\n ? getcontenttype(string)\n : string\n\n if (typeof header !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var index = header.indexOf(';')\n var type = index !== -1\n ? header.slice(0, index).trim()\n : header.trim()\n\n if (!TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid media type')\n }\n\n var obj = new ContentType(type.toLowerCase())\n\n // parse parameters\n if (index !== -1) {\n var key\n var match\n var value\n\n PARAM_REGEXP.lastIndex = index\n\n while ((match = PARAM_REGEXP.exec(header))) {\n if (match.index !== index) {\n throw new TypeError('invalid parameter format')\n }\n\n index += match[0].length\n key = match[1].toLowerCase()\n value = match[2]\n\n if (value.charCodeAt(0) === 0x22 /* \" */) {\n // remove quotes\n value = value.slice(1, -1)\n\n // remove escapes\n if (value.indexOf('\\\\') !== -1) {\n value = value.replace(QESC_REGEXP, '$1')\n }\n }\n\n obj.parameters[key] = value\n }\n\n if (index !== header.length) {\n throw new TypeError('invalid parameter format')\n }\n }\n\n return obj\n}\n\n/**\n * Get content-type from req/res objects.\n *\n * @param {object}\n * @return {Object}\n * @private\n */\n\nfunction getcontenttype (obj) {\n var header\n\n if (typeof obj.getHeader === 'function') {\n // res-like\n header = obj.getHeader('content-type')\n } else if (typeof obj.headers === 'object') {\n // req-like\n header = obj.headers && obj.headers['content-type']\n }\n\n if (typeof header !== 'string') {\n throw new TypeError('content-type header is missing from object')\n }\n\n return header\n}\n\n/**\n * Quote a string if necessary.\n *\n * @param {string} val\n * @return {string}\n * @private\n */\n\nfunction qstring (val) {\n var str = String(val)\n\n // no need to quote tokens\n if (TOKEN_REGEXP.test(str)) {\n return str\n }\n\n if (str.length > 0 && !TEXT_REGEXP.test(str)) {\n throw new TypeError('invalid parameter value')\n }\n\n return '\"' + str.replace(QUOTE_REGEXP, '\\\\$1') + '\"'\n}\n\n/**\n * Class to represent a content type.\n * @private\n */\nfunction ContentType (type) {\n this.parameters = Object.create(null)\n this.type = type\n}\n", "\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n", "\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n", "[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"valid\"],[[47,47],\"disallowed_STD3_valid\"],[[48,57],\"valid\"],[[58,64],\"disallowed_STD3_valid\"],[[65,65],\"mapped\",[97]],[[66,66],\"mapped\",[98]],[[67,67],\"mapped\",[99]],[[68,68],\"mapped\",[100]],[[69,69],\"mapped\",[101]],[[70,70],\"mapped\",[102]],[[71,71],\"mapped\",[103]],[[72,72],\"mapped\",[104]],[[73,73],\"mapped\",[105]],[[74,74],\"mapped\",[106]],[[75,75],\"mapped\",[107]],[[76,76],\"mapped\",[108]],[[77,77],\"mapped\",[109]],[[78,78],\"mapped\",[110]],[[79,79],\"mapped\",[111]],[[80,80],\"mapped\",[112]],[[81,81],\"mapped\",[113]],[[82,82],\"mapped\",[114]],[[83,83],\"mapped\",[115]],[[84,84],\"mapped\",[116]],[[85,85],\"mapped\",[117]],[[86,86],\"mapped\",[118]],[[87,87],\"mapped\",[119]],[[88,88],\"mapped\",[120]],[[89,89],\"mapped\",[121]],[[90,90],\"mapped\",[122]],[[91,96],\"disallowed_STD3_valid\"],[[97,122],\"valid\"],[[123,127],\"disallowed_STD3_valid\"],[[128,159],\"disallowed\"],[[160,160],\"disallowed_STD3_mapped\",[32]],[[161,167],\"valid\",[],\"NV8\"],[[168,168],\"disallowed_STD3_mapped\",[32,776]],[[169,169],\"valid\",[],\"NV8\"],[[170,170],\"mapped\",[97]],[[171,172],\"valid\",[],\"NV8\"],[[173,173],\"ignored\"],[[174,174],\"valid\",[],\"NV8\"],[[175,175],\"disallowed_STD3_mapped\",[32,772]],[[176,177],\"valid\",[],\"NV8\"],[[178,178],\"mapped\",[50]],[[179,179],\"mapped\",[51]],[[180,180],\"disallowed_STD3_mapped\",[32,769]],[[181,181],\"mapped\",[956]],[[182,182],\"valid\",[],\"NV8\"],[[183,183],\"valid\"],[[184,184],\"disallowed_STD3_mapped\",[32,807]],[[185,185],\"mapped\",[49]],[[186,186],\"mapped\",[111]],[[187,187],\"valid\",[],\"NV8\"],[[188,188],\"mapped\",[49,8260,52]],[[189,189],\"mapped\",[49,8260,50]],[[190,190],\"mapped\",[51,8260,52]],[[191,191],\"valid\",[],\"NV8\"],[[192,192],\"mapped\",[224]],[[193,193],\"mapped\",[225]],[[194,194],\"mapped\",[226]],[[195,195],\"mapped\",[227]],[[196,196],\"mapped\",[228]],[[197,197],\"mapped\",[229]],[[198,198],\"mapped\",[230]],[[199,199],\"mapped\",[231]],[[200,200],\"mapped\",[232]],[[201,201],\"mapped\",[233]],[[202,202],\"mapped\",[234]],[[203,203],\"mapped\",[235]],[[204,204],\"mapped\",[236]],[[205,205],\"mapped\",[237]],[[206,206],\"mapped\",[238]],[[207,207],\"mapped\",[239]],[[208,208],\"mapped\",[240]],[[209,209],\"mapped\",[241]],[[210,210],\"mapped\",[242]],[[211,211],\"mapped\",[243]],[[212,212],\"mapped\",[244]],[[213,213],\"mapped\",[245]],[[214,214],\"mapped\",[246]],[[215,215],\"valid\",[],\"NV8\"],[[216,216],\"mapped\",[248]],[[217,217],\"mapped\",[249]],[[218,218],\"mapped\",[250]],[[219,219],\"mapped\",[251]],[[220,220],\"mapped\",[252]],[[221,221],\"mapped\",[253]],[[222,222],\"mapped\",[254]],[[223,223],\"deviation\",[115,115]],[[224,246],\"valid\"],[[247,247],\"valid\",[],\"NV8\"],[[248,255],\"valid\"],[[256,256],\"mapped\",[257]],[[257,257],\"valid\"],[[258,258],\"mapped\",[259]],[[259,259],\"valid\"],[[260,260],\"mapped\",[261]],[[261,261],\"valid\"],[[262,262],\"mapped\",[263]],[[263,263],\"valid\"],[[264,264],\"mapped\",[265]],[[265,265],\"valid\"],[[266,266],\"mapped\",[267]],[[267,267],\"valid\"],[[268,268],\"mapped\",[269]],[[269,269],\"valid\"],[[270,270],\"mapped\",[271]],[[271,271],\"valid\"],[[272,272],\"mapped\",[273]],[[273,273],\"valid\"],[[274,274],\"mapped\",[275]],[[275,275],\"valid\"],[[276,276],\"mapped\",[277]],[[277,277],\"valid\"],[[278,278],\"mapped\",[279]],[[279,279],\"valid\"],[[280,280],\"mapped\",[281]],[[281,281],\"valid\"],[[282,282],\"mapped\",[283]],[[283,283],\"valid\"],[[284,284],\"mapped\",[285]],[[285,285],\"valid\"],[[286,286],\"mapped\",[287]],[[287,287],\"valid\"],[[288,288],\"mapped\",[289]],[[289,289],\"valid\"],[[290,290],\"mapped\",[291]],[[291,291],\"valid\"],[[292,292],\"mapped\",[293]],[[293,293],\"valid\"],[[294,294],\"mapped\",[295]],[[295,295],\"valid\"],[[296,296],\"mapped\",[297]],[[297,297],\"valid\"],[[298,298],\"mapped\",[299]],[[299,299],\"valid\"],[[300,300],\"mapped\",[301]],[[301,301],\"valid\"],[[302,302],\"mapped\",[303]],[[303,303],\"valid\"],[[304,304],\"mapped\",[105,775]],[[305,305],\"valid\"],[[306,307],\"mapped\",[105,106]],[[308,308],\"mapped\",[309]],[[309,309],\"valid\"],[[310,310],\"mapped\",[311]],[[311,312],\"valid\"],[[313,313],\"mapped\",[314]],[[314,314],\"valid\"],[[315,315],\"mapped\",[316]],[[316,316],\"valid\"],[[317,317],\"mapped\",[318]],[[318,318],\"valid\"],[[319,320],\"mapped\",[108,183]],[[321,321],\"mapped\",[322]],[[322,322],\"valid\"],[[323,323],\"mapped\",[324]],[[324,324],\"valid\"],[[325,325],\"mapped\",[326]],[[326,326],\"valid\"],[[327,327],\"mapped\",[328]],[[328,328],\"valid\"],[[329,329],\"mapped\",[700,110]],[[330,330],\"mapped\",[331]],[[331,331],\"valid\"],[[332,332],\"mapped\",[333]],[[333,333],\"valid\"],[[334,334],\"mapped\",[335]],[[335,335],\"valid\"],[[336,336],\"mapped\",[337]],[[337,337],\"valid\"],[[338,338],\"mapped\",[339]],[[339,339],\"valid\"],[[340,340],\"mapped\",[341]],[[341,341],\"valid\"],[[342,342],\"mapped\",[343]],[[343,343],\"valid\"],[[344,344],\"mapped\",[345]],[[345,345],\"valid\"],[[346,346],\"mapped\",[347]],[[347,347],\"valid\"],[[348,348],\"mapped\",[349]],[[349,349],\"valid\"],[[350,350],\"mapped\",[351]],[[351,351],\"valid\"],[[352,352],\"mapped\",[353]],[[353,353],\"valid\"],[[354,354],\"mapped\",[355]],[[355,355],\"valid\"],[[356,356],\"mapped\",[357]],[[357,357],\"valid\"],[[358,358],\"mapped\",[359]],[[359,359],\"valid\"],[[360,360],\"mapped\",[361]],[[361,361],\"valid\"],[[362,362],\"mapped\",[363]],[[363,363],\"valid\"],[[364,364],\"mapped\",[365]],[[365,365],\"valid\"],[[366,366],\"mapped\",[367]],[[367,367],\"valid\"],[[368,368],\"mapped\",[369]],[[369,369],\"valid\"],[[370,370],\"mapped\",[371]],[[371,371],\"valid\"],[[372,372],\"mapped\",[373]],[[373,373],\"valid\"],[[374,374],\"mapped\",[375]],[[375,375],\"valid\"],[[376,376],\"mapped\",[255]],[[377,377],\"mapped\",[378]],[[378,378],\"valid\"],[[379,379],\"mapped\",[380]],[[380,380],\"valid\"],[[381,381],\"mapped\",[382]],[[382,382],\"valid\"],[[383,383],\"mapped\",[115]],[[384,384],\"valid\"],[[385,385],\"mapped\",[595]],[[386,386],\"mapped\",[387]],[[387,387],\"valid\"],[[388,388],\"mapped\",[389]],[[389,389],\"valid\"],[[390,390],\"mapped\",[596]],[[391,391],\"mapped\",[392]],[[392,392],\"valid\"],[[393,393],\"mapped\",[598]],[[394,394],\"mapped\",[599]],[[395,395],\"mapped\",[396]],[[396,397],\"valid\"],[[398,398],\"mapped\",[477]],[[399,399],\"mapped\",[601]],[[400,400],\"mapped\",[603]],[[401,401],\"mapped\",[402]],[[402,402],\"valid\"],[[403,403],\"mapped\",[608]],[[404,404],\"mapped\",[611]],[[405,405],\"valid\"],[[406,406],\"mapped\",[617]],[[407,407],\"mapped\",[616]],[[408,408],\"mapped\",[409]],[[409,411],\"valid\"],[[412,412],\"mapped\",[623]],[[413,413],\"mapped\",[626]],[[414,414],\"valid\"],[[415,415],\"mapped\",[629]],[[416,416],\"mapped\",[417]],[[417,417],\"valid\"],[[418,418],\"mapped\",[419]],[[419,419],\"valid\"],[[420,420],\"mapped\",[421]],[[421,421],\"valid\"],[[422,422],\"mapped\",[640]],[[423,423],\"mapped\",[424]],[[424,424],\"valid\"],[[425,425],\"mapped\",[643]],[[426,427],\"valid\"],[[428,428],\"mapped\",[429]],[[429,429],\"valid\"],[[430,430],\"mapped\",[648]],[[431,431],\"mapped\",[432]],[[432,432],\"valid\"],[[433,433],\"mapped\",[650]],[[434,434],\"mapped\",[651]],[[435,435],\"mapped\",[436]],[[436,436],\"valid\"],[[437,437],\"mapped\",[438]],[[438,438],\"valid\"],[[439,439],\"mapped\",[658]],[[440,440],\"mapped\",[441]],[[441,443],\"valid\"],[[444,444],\"mapped\",[445]],[[445,451],\"valid\"],[[452,454],\"mapped\",[100,382]],[[455,457],\"mapped\",[108,106]],[[458,460],\"mapped\",[110,106]],[[461,461],\"mapped\",[462]],[[462,462],\"valid\"],[[463,463],\"mapped\",[464]],[[464,464],\"valid\"],[[465,465],\"mapped\",[466]],[[466,466],\"valid\"],[[467,467],\"mapped\",[468]],[[468,468],\"valid\"],[[469,469],\"mapped\",[470]],[[470,470],\"valid\"],[[471,471],\"mapped\",[472]],[[472,472],\"valid\"],[[473,473],\"mapped\",[474]],[[474,474],\"valid\"],[[475,475],\"mapped\",[476]],[[476,477],\"valid\"],[[478,478],\"mapped\",[479]],[[479,479],\"valid\"],[[480,480],\"mapped\",[481]],[[481,481],\"valid\"],[[482,482],\"mapped\",[483]],[[483,483],\"valid\"],[[484,484],\"mapped\",[485]],[[485,485],\"valid\"],[[486,486],\"mapped\",[487]],[[487,487],\"valid\"],[[488,488],\"mapped\",[489]],[[489,489],\"valid\"],[[490,490],\"mapped\",[491]],[[491,491],\"valid\"],[[492,492],\"mapped\",[493]],[[493,493],\"valid\"],[[494,494],\"mapped\",[495]],[[495,496],\"valid\"],[[497,499],\"mapped\",[100,122]],[[500,500],\"mapped\",[501]],[[501,501],\"valid\"],[[502,502],\"mapped\",[405]],[[503,503],\"mapped\",[447]],[[504,504],\"mapped\",[505]],[[505,505],\"valid\"],[[506,506],\"mapped\",[507]],[[507,507],\"valid\"],[[508,508],\"mapped\",[509]],[[509,509],\"valid\"],[[510,510],\"mapped\",[511]],[[511,511],\"valid\"],[[512,512],\"mapped\",[513]],[[513,513],\"valid\"],[[514,514],\"mapped\",[515]],[[515,515],\"valid\"],[[516,516],\"mapped\",[517]],[[517,517],\"valid\"],[[518,518],\"mapped\",[519]],[[519,519],\"valid\"],[[520,520],\"mapped\",[521]],[[521,521],\"valid\"],[[522,522],\"mapped\",[523]],[[523,523],\"valid\"],[[524,524],\"mapped\",[525]],[[525,525],\"valid\"],[[526,526],\"mapped\",[527]],[[527,527],\"valid\"],[[528,528],\"mapped\",[529]],[[529,529],\"valid\"],[[530,530],\"mapped\",[531]],[[531,531],\"valid\"],[[532,532],\"mapped\",[533]],[[533,533],\"valid\"],[[534,534],\"mapped\",[535]],[[535,535],\"valid\"],[[536,536],\"mapped\",[537]],[[537,537],\"valid\"],[[538,538],\"mapped\",[539]],[[539,539],\"valid\"],[[540,540],\"mapped\",[541]],[[541,541],\"valid\"],[[542,542],\"mapped\",[543]],[[543,543],\"valid\"],[[544,544],\"mapped\",[414]],[[545,545],\"valid\"],[[546,546],\"mapped\",[547]],[[547,547],\"valid\"],[[548,548],\"mapped\",[549]],[[549,549],\"valid\"],[[550,550],\"mapped\",[551]],[[551,551],\"valid\"],[[552,552],\"mapped\",[553]],[[553,553],\"valid\"],[[554,554],\"mapped\",[555]],[[555,555],\"valid\"],[[556,556],\"mapped\",[557]],[[557,557],\"valid\"],[[558,558],\"mapped\",[559]],[[559,559],\"valid\"],[[560,560],\"mapped\",[561]],[[561,561],\"valid\"],[[562,562],\"mapped\",[563]],[[563,563],\"valid\"],[[564,566],\"valid\"],[[567,569],\"valid\"],[[570,570],\"mapped\",[11365]],[[571,571],\"mapped\",[572]],[[572,572],\"valid\"],[[573,573],\"mapped\",[410]],[[574,574],\"mapped\",[11366]],[[575,576],\"valid\"],[[577,577],\"mapped\",[578]],[[578,578],\"valid\"],[[579,579],\"mapped\",[384]],[[580,580],\"mapped\",[649]],[[581,581],\"mapped\",[652]],[[582,582],\"mapped\",[583]],[[583,583],\"valid\"],[[584,584],\"mapped\",[585]],[[585,585],\"valid\"],[[586,586],\"mapped\",[587]],[[587,587],\"valid\"],[[588,588],\"mapped\",[589]],[[589,589],\"valid\"],[[590,590],\"mapped\",[591]],[[591,591],\"valid\"],[[592,680],\"valid\"],[[681,685],\"valid\"],[[686,687],\"valid\"],[[688,688],\"mapped\",[104]],[[689,689],\"mapped\",[614]],[[690,690],\"mapped\",[106]],[[691,691],\"mapped\",[114]],[[692,692],\"mapped\",[633]],[[693,693],\"mapped\",[635]],[[694,694],\"mapped\",[641]],[[695,695],\"mapped\",[119]],[[696,696],\"mapped\",[121]],[[697,705],\"valid\"],[[706,709],\"valid\",[],\"NV8\"],[[710,721],\"valid\"],[[722,727],\"valid\",[],\"NV8\"],[[728,728],\"disallowed_STD3_mapped\",[32,774]],[[729,729],\"disallowed_STD3_mapped\",[32,775]],[[730,730],\"disallowed_STD3_mapped\",[32,778]],[[731,731],\"disallowed_STD3_mapped\",[32,808]],[[732,732],\"disallowed_STD3_mapped\",[32,771]],[[733,733],\"disallowed_STD3_mapped\",[32,779]],[[734,734],\"valid\",[],\"NV8\"],[[735,735],\"valid\",[],\"NV8\"],[[736,736],\"mapped\",[611]],[[737,737],\"mapped\",[108]],[[738,738],\"mapped\",[115]],[[739,739],\"mapped\",[120]],[[740,740],\"mapped\",[661]],[[741,745],\"valid\",[],\"NV8\"],[[746,747],\"valid\",[],\"NV8\"],[[748,748],\"valid\"],[[749,749],\"valid\",[],\"NV8\"],[[750,750],\"valid\"],[[751,767],\"valid\",[],\"NV8\"],[[768,831],\"valid\"],[[832,832],\"mapped\",[768]],[[833,833],\"mapped\",[769]],[[834,834],\"valid\"],[[835,835],\"mapped\",[787]],[[836,836],\"mapped\",[776,769]],[[837,837],\"mapped\",[953]],[[838,846],\"valid\"],[[847,847],\"ignored\"],[[848,855],\"valid\"],[[856,860],\"valid\"],[[861,863],\"valid\"],[[864,865],\"valid\"],[[866,866],\"valid\"],[[867,879],\"valid\"],[[880,880],\"mapped\",[881]],[[881,881],\"valid\"],[[882,882],\"mapped\",[883]],[[883,883],\"valid\"],[[884,884],\"mapped\",[697]],[[885,885],\"valid\"],[[886,886],\"mapped\",[887]],[[887,887],\"valid\"],[[888,889],\"disallowed\"],[[890,890],\"disallowed_STD3_mapped\",[32,953]],[[891,893],\"valid\"],[[894,894],\"disallowed_STD3_mapped\",[59]],[[895,895],\"mapped\",[1011]],[[896,899],\"disallowed\"],[[900,900],\"disallowed_STD3_mapped\",[32,769]],[[901,901],\"disallowed_STD3_mapped\",[32,776,769]],[[902,902],\"mapped\",[940]],[[903,903],\"mapped\",[183]],[[904,904],\"mapped\",[941]],[[905,905],\"mapped\",[942]],[[906,906],\"mapped\",[943]],[[907,907],\"disallowed\"],[[908,908],\"mapped\",[972]],[[909,909],\"disallowed\"],[[910,910],\"mapped\",[973]],[[911,911],\"mapped\",[974]],[[912,912],\"valid\"],[[913,913],\"mapped\",[945]],[[914,914],\"mapped\",[946]],[[915,915],\"mapped\",[947]],[[916,916],\"mapped\",[948]],[[917,917],\"mapped\",[949]],[[918,918],\"mapped\",[950]],[[919,919],\"mapped\",[951]],[[920,920],\"mapped\",[952]],[[921,921],\"mapped\",[953]],[[922,922],\"mapped\",[954]],[[923,923],\"mapped\",[955]],[[924,924],\"mapped\",[956]],[[925,925],\"mapped\",[957]],[[926,926],\"mapped\",[958]],[[927,927],\"mapped\",[959]],[[928,928],\"mapped\",[960]],[[929,929],\"mapped\",[961]],[[930,930],\"disallowed\"],[[931,931],\"mapped\",[963]],[[932,932],\"mapped\",[964]],[[933,933],\"mapped\",[965]],[[934,934],\"mapped\",[966]],[[935,935],\"mapped\",[967]],[[936,936],\"mapped\",[968]],[[937,937],\"mapped\",[969]],[[938,938],\"mapped\",[970]],[[939,939],\"mapped\",[971]],[[940,961],\"valid\"],[[962,962],\"deviation\",[963]],[[963,974],\"valid\"],[[975,975],\"mapped\",[983]],[[976,976],\"mapped\",[946]],[[977,977],\"mapped\",[952]],[[978,978],\"mapped\",[965]],[[979,979],\"mapped\",[973]],[[980,980],\"mapped\",[971]],[[981,981],\"mapped\",[966]],[[982,982],\"mapped\",[960]],[[983,983],\"valid\"],[[984,984],\"mapped\",[985]],[[985,985],\"valid\"],[[986,986],\"mapped\",[987]],[[987,987],\"valid\"],[[988,988],\"mapped\",[989]],[[989,989],\"valid\"],[[990,990],\"mapped\",[991]],[[991,991],\"valid\"],[[992,992],\"mapped\",[993]],[[993,993],\"valid\"],[[994,994],\"mapped\",[995]],[[995,995],\"valid\"],[[996,996],\"mapped\",[997]],[[997,997],\"valid\"],[[998,998],\"mapped\",[999]],[[999,999],\"valid\"],[[1000,1000],\"mapped\",[1001]],[[1001,1001],\"valid\"],[[1002,1002],\"mapped\",[1003]],[[1003,1003],\"valid\"],[[1004,1004],\"mapped\",[1005]],[[1005,1005],\"valid\"],[[1006,1006],\"mapped\",[1007]],[[1007,1007],\"valid\"],[[1008,1008],\"mapped\",[954]],[[1009,1009],\"mapped\",[961]],[[1010,1010],\"mapped\",[963]],[[1011,1011],\"valid\"],[[1012,1012],\"mapped\",[952]],[[1013,1013],\"mapped\",[949]],[[1014,1014],\"valid\",[],\"NV8\"],[[1015,1015],\"mapped\",[1016]],[[1016,1016],\"valid\"],[[1017,1017],\"mapped\",[963]],[[1018,1018],\"mapped\",[1019]],[[1019,1019],\"valid\"],[[1020,1020],\"valid\"],[[1021,1021],\"mapped\",[891]],[[1022,1022],\"mapped\",[892]],[[1023,1023],\"mapped\",[893]],[[1024,1024],\"mapped\",[1104]],[[1025,1025],\"mapped\",[1105]],[[1026,1026],\"mapped\",[1106]],[[1027,1027],\"mapped\",[1107]],[[1028,1028],\"mapped\",[1108]],[[1029,1029],\"mapped\",[1109]],[[1030,1030],\"mapped\",[1110]],[[1031,1031],\"mapped\",[1111]],[[1032,1032],\"mapped\",[1112]],[[1033,1033],\"mapped\",[1113]],[[1034,1034],\"mapped\",[1114]],[[1035,1035],\"mapped\",[1115]],[[1036,1036],\"mapped\",[1116]],[[1037,1037],\"mapped\",[1117]],[[1038,1038],\"mapped\",[1118]],[[1039,1039],\"mapped\",[1119]],[[1040,1040],\"mapped\",[1072]],[[1041,1041],\"mapped\",[1073]],[[1042,1042],\"mapped\",[1074]],[[1043,1043],\"mapped\",[1075]],[[1044,1044],\"mapped\",[1076]],[[1045,1045],\"mapped\",[1077]],[[1046,1046],\"mapped\",[1078]],[[1047,1047],\"mapped\",[1079]],[[1048,1048],\"mapped\",[1080]],[[1049,1049],\"mapped\",[1081]],[[1050,1050],\"mapped\",[1082]],[[1051,1051],\"mapped\",[1083]],[[1052,1052],\"mapped\",[1084]],[[1053,1053],\"mapped\",[1085]],[[1054,1054],\"mapped\",[1086]],[[1055,1055],\"mapped\",[1087]],[[1056,1056],\"mapped\",[1088]],[[1057,1057],\"mapped\",[1089]],[[1058,1058],\"mapped\",[1090]],[[1059,1059],\"mapped\",[1091]],[[1060,1060],\"mapped\",[1092]],[[1061,1061],\"mapped\",[1093]],[[1062,1062],\"mapped\",[1094]],[[1063,1063],\"mapped\",[1095]],[[1064,1064],\"mapped\",[1096]],[[1065,1065],\"mapped\",[1097]],[[1066,1066],\"mapped\",[1098]],[[1067,1067],\"mapped\",[1099]],[[1068,1068],\"mapped\",[1100]],[[1069,1069],\"mapped\",[1101]],[[1070,1070],\"mapped\",[1102]],[[1071,1071],\"mapped\",[1103]],[[1072,1103],\"valid\"],[[1104,1104],\"valid\"],[[1105,1116],\"valid\"],[[1117,1117],\"valid\"],[[1118,1119],\"valid\"],[[1120,1120],\"mapped\",[1121]],[[1121,1121],\"valid\"],[[1122,1122],\"mapped\",[1123]],[[1123,1123],\"valid\"],[[1124,1124],\"mapped\",[1125]],[[1125,1125],\"valid\"],[[1126,1126],\"mapped\",[1127]],[[1127,1127],\"valid\"],[[1128,1128],\"mapped\",[1129]],[[1129,1129],\"valid\"],[[1130,1130],\"mapped\",[1131]],[[1131,1131],\"valid\"],[[1132,1132],\"mapped\",[1133]],[[1133,1133],\"valid\"],[[1134,1134],\"mapped\",[1135]],[[1135,1135],\"valid\"],[[1136,1136],\"mapped\",[1137]],[[1137,1137],\"valid\"],[[1138,1138],\"mapped\",[1139]],[[1139,1139],\"valid\"],[[1140,1140],\"mapped\",[1141]],[[1141,1141],\"valid\"],[[1142,1142],\"mapped\",[1143]],[[1143,1143],\"valid\"],[[1144,1144],\"mapped\",[1145]],[[1145,1145],\"valid\"],[[1146,1146],\"mapped\",[1147]],[[1147,1147],\"valid\"],[[1148,1148],\"mapped\",[1149]],[[1149,1149],\"valid\"],[[1150,1150],\"mapped\",[1151]],[[1151,1151],\"valid\"],[[1152,1152],\"mapped\",[1153]],[[1153,1153],\"valid\"],[[1154,1154],\"valid\",[],\"NV8\"],[[1155,1158],\"valid\"],[[1159,1159],\"valid\"],[[1160,1161],\"valid\",[],\"NV8\"],[[1162,1162],\"mapped\",[1163]],[[1163,1163],\"valid\"],[[1164,1164],\"mapped\",[1165]],[[1165,1165],\"valid\"],[[1166,1166],\"mapped\",[1167]],[[1167,1167],\"valid\"],[[1168,1168],\"mapped\",[1169]],[[1169,1169],\"valid\"],[[1170,1170],\"mapped\",[1171]],[[1171,1171],\"valid\"],[[1172,1172],\"mapped\",[1173]],[[1173,1173],\"valid\"],[[1174,1174],\"mapped\",[1175]],[[1175,1175],\"valid\"],[[1176,1176],\"mapped\",[1177]],[[1177,1177],\"valid\"],[[1178,1178],\"mapped\",[1179]],[[1179,1179],\"valid\"],[[1180,1180],\"mapped\",[1181]],[[1181,1181],\"valid\"],[[1182,1182],\"mapped\",[1183]],[[1183,1183],\"valid\"],[[1184,1184],\"mapped\",[1185]],[[1185,1185],\"valid\"],[[1186,1186],\"mapped\",[1187]],[[1187,1187],\"valid\"],[[1188,1188],\"mapped\",[1189]],[[1189,1189],\"valid\"],[[1190,1190],\"mapped\",[1191]],[[1191,1191],\"valid\"],[[1192,1192],\"mapped\",[1193]],[[1193,1193],\"valid\"],[[1194,1194],\"mapped\",[1195]],[[1195,1195],\"valid\"],[[1196,1196],\"mapped\",[1197]],[[1197,1197],\"valid\"],[[1198,1198],\"mapped\",[1199]],[[1199,1199],\"valid\"],[[1200,1200],\"mapped\",[1201]],[[1201,1201],\"valid\"],[[1202,1202],\"mapped\",[1203]],[[1203,1203],\"valid\"],[[1204,1204],\"mapped\",[1205]],[[1205,1205],\"valid\"],[[1206,1206],\"mapped\",[1207]],[[1207,1207],\"valid\"],[[1208,1208],\"mapped\",[1209]],[[1209,1209],\"valid\"],[[1210,1210],\"mapped\",[1211]],[[1211,1211],\"valid\"],[[1212,1212],\"mapped\",[1213]],[[1213,1213],\"valid\"],[[1214,1214],\"mapped\",[1215]],[[1215,1215],\"valid\"],[[1216,1216],\"disallowed\"],[[1217,1217],\"mapped\",[1218]],[[1218,1218],\"valid\"],[[1219,1219],\"mapped\",[1220]],[[1220,1220],\"valid\"],[[1221,1221],\"mapped\",[1222]],[[1222,1222],\"valid\"],[[1223,1223],\"mapped\",[1224]],[[1224,1224],\"valid\"],[[1225,1225],\"mapped\",[1226]],[[1226,1226],\"valid\"],[[1227,1227],\"mapped\",[1228]],[[1228,1228],\"valid\"],[[1229,1229],\"mapped\",[1230]],[[1230,1230],\"valid\"],[[1231,1231],\"valid\"],[[1232,1232],\"mapped\",[1233]],[[1233,1233],\"valid\"],[[1234,1234],\"mapped\",[1235]],[[1235,1235],\"valid\"],[[1236,1236],\"mapped\",[1237]],[[1237,1237],\"valid\"],[[1238,1238],\"mapped\",[1239]],[[1239,1239],\"valid\"],[[1240,1240],\"mapped\",[1241]],[[1241,1241],\"valid\"],[[1242,1242],\"mapped\",[1243]],[[1243,1243],\"valid\"],[[1244,1244],\"mapped\",[1245]],[[1245,1245],\"valid\"],[[1246,1246],\"mapped\",[1247]],[[1247,1247],\"valid\"],[[1248,1248],\"mapped\",[1249]],[[1249,1249],\"valid\"],[[1250,1250],\"mapped\",[1251]],[[1251,1251],\"valid\"],[[1252,1252],\"mapped\",[1253]],[[1253,1253],\"valid\"],[[1254,1254],\"mapped\",[1255]],[[1255,1255],\"valid\"],[[1256,1256],\"mapped\",[1257]],[[1257,1257],\"valid\"],[[1258,1258],\"mapped\",[1259]],[[1259,1259],\"valid\"],[[1260,1260],\"mapped\",[1261]],[[1261,1261],\"valid\"],[[1262,1262],\"mapped\",[1263]],[[1263,1263],\"valid\"],[[1264,1264],\"mapped\",[1265]],[[1265,1265],\"valid\"],[[1266,1266],\"mapped\",[1267]],[[1267,1267],\"valid\"],[[1268,1268],\"mapped\",[1269]],[[1269,1269],\"valid\"],[[1270,1270],\"mapped\",[1271]],[[1271,1271],\"valid\"],[[1272,1272],\"mapped\",[1273]],[[1273,1273],\"valid\"],[[1274,1274],\"mapped\",[1275]],[[1275,1275],\"valid\"],[[1276,1276],\"mapped\",[1277]],[[1277,1277],\"valid\"],[[1278,1278],\"mapped\",[1279]],[[1279,1279],\"valid\"],[[1280,1280],\"mapped\",[1281]],[[1281,1281],\"valid\"],[[1282,1282],\"mapped\",[1283]],[[1283,1283],\"valid\"],[[1284,1284],\"mapped\",[1285]],[[1285,1285],\"valid\"],[[1286,1286],\"mapped\",[1287]],[[1287,1287],\"valid\"],[[1288,1288],\"mapped\",[1289]],[[1289,1289],\"valid\"],[[1290,1290],\"mapped\",[1291]],[[1291,1291],\"valid\"],[[1292,1292],\"mapped\",[1293]],[[1293,1293],\"valid\"],[[1294,1294],\"mapped\",[1295]],[[1295,1295],\"valid\"],[[1296,1296],\"mapped\",[1297]],[[1297,1297],\"valid\"],[[1298,1298],\"mapped\",[1299]],[[1299,1299],\"valid\"],[[1300,1300],\"mapped\",[1301]],[[1301,1301],\"valid\"],[[1302,1302],\"mapped\",[1303]],[[1303,1303],\"valid\"],[[1304,1304],\"mapped\",[1305]],[[1305,1305],\"valid\"],[[1306,1306],\"mapped\",[1307]],[[1307,1307],\"valid\"],[[1308,1308],\"mapped\",[1309]],[[1309,1309],\"valid\"],[[1310,1310],\"mapped\",[1311]],[[1311,1311],\"valid\"],[[1312,1312],\"mapped\",[1313]],[[1313,1313],\"valid\"],[[1314,1314],\"mapped\",[1315]],[[1315,1315],\"valid\"],[[1316,1316],\"mapped\",[1317]],[[1317,1317],\"valid\"],[[1318,1318],\"mapped\",[1319]],[[1319,1319],\"valid\"],[[1320,1320],\"mapped\",[1321]],[[1321,1321],\"valid\"],[[1322,1322],\"mapped\",[1323]],[[1323,1323],\"valid\"],[[1324,1324],\"mapped\",[1325]],[[1325,1325],\"valid\"],[[1326,1326],\"mapped\",[1327]],[[1327,1327],\"valid\"],[[1328,1328],\"disallowed\"],[[1329,1329],\"mapped\",[1377]],[[1330,1330],\"mapped\",[1378]],[[1331,1331],\"mapped\",[1379]],[[1332,1332],\"mapped\",[1380]],[[1333,1333],\"mapped\",[1381]],[[1334,1334],\"mapped\",[1382]],[[1335,1335],\"mapped\",[1383]],[[1336,1336],\"mapped\",[1384]],[[1337,1337],\"mapped\",[1385]],[[1338,1338],\"mapped\",[1386]],[[1339,1339],\"mapped\",[1387]],[[1340,1340],\"mapped\",[1388]],[[1341,1341],\"mapped\",[1389]],[[1342,1342],\"mapped\",[1390]],[[1343,1343],\"mapped\",[1391]],[[1344,1344],\"mapped\",[1392]],[[1345,1345],\"mapped\",[1393]],[[1346,1346],\"mapped\",[1394]],[[1347,1347],\"mapped\",[1395]],[[1348,1348],\"mapped\",[1396]],[[1349,1349],\"mapped\",[1397]],[[1350,1350],\"mapped\",[1398]],[[1351,1351],\"mapped\",[1399]],[[1352,1352],\"mapped\",[1400]],[[1353,1353],\"mapped\",[1401]],[[1354,1354],\"mapped\",[1402]],[[1355,1355],\"mapped\",[1403]],[[1356,1356],\"mapped\",[1404]],[[1357,1357],\"mapped\",[1405]],[[1358,1358],\"mapped\",[1406]],[[1359,1359],\"mapped\",[1407]],[[1360,1360],\"mapped\",[1408]],[[1361,1361],\"mapped\",[1409]],[[1362,1362],\"mapped\",[1410]],[[1363,1363],\"mapped\",[1411]],[[1364,1364],\"mapped\",[1412]],[[1365,1365],\"mapped\",[1413]],[[1366,1366],\"mapped\",[1414]],[[1367,1368],\"disallowed\"],[[1369,1369],\"valid\"],[[1370,1375],\"valid\",[],\"NV8\"],[[1376,1376],\"disallowed\"],[[1377,1414],\"valid\"],[[1415,1415],\"mapped\",[1381,1410]],[[1416,1416],\"disallowed\"],[[1417,1417],\"valid\",[],\"NV8\"],[[1418,1418],\"valid\",[],\"NV8\"],[[1419,1420],\"disallowed\"],[[1421,1422],\"valid\",[],\"NV8\"],[[1423,1423],\"valid\",[],\"NV8\"],[[1424,1424],\"disallowed\"],[[1425,1441],\"valid\"],[[1442,1442],\"valid\"],[[1443,1455],\"valid\"],[[1456,1465],\"valid\"],[[1466,1466],\"valid\"],[[1467,1469],\"valid\"],[[1470,1470],\"valid\",[],\"NV8\"],[[1471,1471],\"valid\"],[[1472,1472],\"valid\",[],\"NV8\"],[[1473,1474],\"valid\"],[[1475,1475],\"valid\",[],\"NV8\"],[[1476,1476],\"valid\"],[[1477,1477],\"valid\"],[[1478,1478],\"valid\",[],\"NV8\"],[[1479,1479],\"valid\"],[[1480,1487],\"disallowed\"],[[1488,1514],\"valid\"],[[1515,1519],\"disallowed\"],[[1520,1524],\"valid\"],[[1525,1535],\"disallowed\"],[[1536,1539],\"disallowed\"],[[1540,1540],\"disallowed\"],[[1541,1541],\"disallowed\"],[[1542,1546],\"valid\",[],\"NV8\"],[[1547,1547],\"valid\",[],\"NV8\"],[[1548,1548],\"valid\",[],\"NV8\"],[[1549,1551],\"valid\",[],\"NV8\"],[[1552,1557],\"valid\"],[[1558,1562],\"valid\"],[[1563,1563],\"valid\",[],\"NV8\"],[[1564,1564],\"disallowed\"],[[1565,1565],\"disallowed\"],[[1566,1566],\"valid\",[],\"NV8\"],[[1567,1567],\"valid\",[],\"NV8\"],[[1568,1568],\"valid\"],[[1569,1594],\"valid\"],[[1595,1599],\"valid\"],[[1600,1600],\"valid\",[],\"NV8\"],[[1601,1618],\"valid\"],[[1619,1621],\"valid\"],[[1622,1624],\"valid\"],[[1625,1630],\"valid\"],[[1631,1631],\"valid\"],[[1632,1641],\"valid\"],[[1642,1645],\"valid\",[],\"NV8\"],[[1646,1647],\"valid\"],[[1648,1652],\"valid\"],[[1653,1653],\"mapped\",[1575,1652]],[[1654,1654],\"mapped\",[1608,1652]],[[1655,1655],\"mapped\",[1735,1652]],[[1656,1656],\"mapped\",[1610,1652]],[[1657,1719],\"valid\"],[[1720,1721],\"valid\"],[[1722,1726],\"valid\"],[[1727,1727],\"valid\"],[[1728,1742],\"valid\"],[[1743,1743],\"valid\"],[[1744,1747],\"valid\"],[[1748,1748],\"valid\",[],\"NV8\"],[[1749,1756],\"valid\"],[[1757,1757],\"disallowed\"],[[1758,1758],\"valid\",[],\"NV8\"],[[1759,1768],\"valid\"],[[1769,1769],\"valid\",[],\"NV8\"],[[1770,1773],\"valid\"],[[1774,1775],\"valid\"],[[1776,1785],\"valid\"],[[1786,1790],\"valid\"],[[1791,1791],\"valid\"],[[1792,1805],\"valid\",[],\"NV8\"],[[1806,1806],\"disallowed\"],[[1807,1807],\"disallowed\"],[[1808,1836],\"valid\"],[[1837,1839],\"valid\"],[[1840,1866],\"valid\"],[[1867,1868],\"disallowed\"],[[1869,1871],\"valid\"],[[1872,1901],\"valid\"],[[1902,1919],\"valid\"],[[1920,1968],\"valid\"],[[1969,1969],\"valid\"],[[1970,1983],\"disallowed\"],[[1984,2037],\"valid\"],[[2038,2042],\"valid\",[],\"NV8\"],[[2043,2047],\"disallowed\"],[[2048,2093],\"valid\"],[[2094,2095],\"disallowed\"],[[2096,2110],\"valid\",[],\"NV8\"],[[2111,2111],\"disallowed\"],[[2112,2139],\"valid\"],[[2140,2141],\"disallowed\"],[[2142,2142],\"valid\",[],\"NV8\"],[[2143,2207],\"disallowed\"],[[2208,2208],\"valid\"],[[2209,2209],\"valid\"],[[2210,2220],\"valid\"],[[2221,2226],\"valid\"],[[2227,2228],\"valid\"],[[2229,2274],\"disallowed\"],[[2275,2275],\"valid\"],[[2276,2302],\"valid\"],[[2303,2303],\"valid\"],[[2304,2304],\"valid\"],[[2305,2307],\"valid\"],[[2308,2308],\"valid\"],[[2309,2361],\"valid\"],[[2362,2363],\"valid\"],[[2364,2381],\"valid\"],[[2382,2382],\"valid\"],[[2383,2383],\"valid\"],[[2384,2388],\"valid\"],[[2389,2389],\"valid\"],[[2390,2391],\"valid\"],[[2392,2392],\"mapped\",[2325,2364]],[[2393,2393],\"mapped\",[2326,2364]],[[2394,2394],\"mapped\",[2327,2364]],[[2395,2395],\"mapped\",[2332,2364]],[[2396,2396],\"mapped\",[2337,2364]],[[2397,2397],\"mapped\",[2338,2364]],[[2398,2398],\"mapped\",[2347,2364]],[[2399,2399],\"mapped\",[2351,2364]],[[2400,2403],\"valid\"],[[2404,2405],\"valid\",[],\"NV8\"],[[2406,2415],\"valid\"],[[2416,2416],\"valid\",[],\"NV8\"],[[2417,2418],\"valid\"],[[2419,2423],\"valid\"],[[2424,2424],\"valid\"],[[2425,2426],\"valid\"],[[2427,2428],\"valid\"],[[2429,2429],\"valid\"],[[2430,2431],\"valid\"],[[2432,2432],\"valid\"],[[2433,2435],\"valid\"],[[2436,2436],\"disallowed\"],[[2437,2444],\"valid\"],[[2445,2446],\"disallowed\"],[[2447,2448],\"valid\"],[[2449,2450],\"disallowed\"],[[2451,2472],\"valid\"],[[2473,2473],\"disallowed\"],[[2474,2480],\"valid\"],[[2481,2481],\"disallowed\"],[[2482,2482],\"valid\"],[[2483,2485],\"disallowed\"],[[2486,2489],\"valid\"],[[2490,2491],\"disallowed\"],[[2492,2492],\"valid\"],[[2493,2493],\"valid\"],[[2494,2500],\"valid\"],[[2501,2502],\"disallowed\"],[[2503,2504],\"valid\"],[[2505,2506],\"disallowed\"],[[2507,2509],\"valid\"],[[2510,2510],\"valid\"],[[2511,2518],\"disallowed\"],[[2519,2519],\"valid\"],[[2520,2523],\"disallowed\"],[[2524,2524],\"mapped\",[2465,2492]],[[2525,2525],\"mapped\",[2466,2492]],[[2526,2526],\"disallowed\"],[[2527,2527],\"mapped\",[2479,2492]],[[2528,2531],\"valid\"],[[2532,2533],\"disallowed\"],[[2534,2545],\"valid\"],[[2546,2554],\"valid\",[],\"NV8\"],[[2555,2555],\"valid\",[],\"NV8\"],[[2556,2560],\"disallowed\"],[[2561,2561],\"valid\"],[[2562,2562],\"valid\"],[[2563,2563],\"valid\"],[[2564,2564],\"disallowed\"],[[2565,2570],\"valid\"],[[2571,2574],\"disallowed\"],[[2575,2576],\"valid\"],[[2577,2578],\"disallowed\"],[[2579,2600],\"valid\"],[[2601,2601],\"disallowed\"],[[2602,2608],\"valid\"],[[2609,2609],\"disallowed\"],[[2610,2610],\"valid\"],[[2611,2611],\"mapped\",[2610,2620]],[[2612,2612],\"disallowed\"],[[2613,2613],\"valid\"],[[2614,2614],\"mapped\",[2616,2620]],[[2615,2615],\"disallowed\"],[[2616,2617],\"valid\"],[[2618,2619],\"disallowed\"],[[2620,2620],\"valid\"],[[2621,2621],\"disallowed\"],[[2622,2626],\"valid\"],[[2627,2630],\"disallowed\"],[[2631,2632],\"valid\"],[[2633,2634],\"disallowed\"],[[2635,2637],\"valid\"],[[2638,2640],\"disallowed\"],[[2641,2641],\"valid\"],[[2642,2648],\"disallowed\"],[[2649,2649],\"mapped\",[2582,2620]],[[2650,2650],\"mapped\",[2583,2620]],[[2651,2651],\"mapped\",[2588,2620]],[[2652,2652],\"valid\"],[[2653,2653],\"disallowed\"],[[2654,2654],\"mapped\",[2603,2620]],[[2655,2661],\"disallowed\"],[[2662,2676],\"valid\"],[[2677,2677],\"valid\"],[[2678,2688],\"disallowed\"],[[2689,2691],\"valid\"],[[2692,2692],\"disallowed\"],[[2693,2699],\"valid\"],[[2700,2700],\"valid\"],[[2701,2701],\"valid\"],[[2702,2702],\"disallowed\"],[[2703,2705],\"valid\"],[[2706,2706],\"disallowed\"],[[2707,2728],\"valid\"],[[2729,2729],\"disallowed\"],[[2730,2736],\"valid\"],[[2737,2737],\"disallowed\"],[[2738,2739],\"valid\"],[[2740,2740],\"disallowed\"],[[2741,2745],\"valid\"],[[2746,2747],\"disallowed\"],[[2748,2757],\"valid\"],[[2758,2758],\"disallowed\"],[[2759,2761],\"valid\"],[[2762,2762],\"disallowed\"],[[2763,2765],\"valid\"],[[2766,2767],\"disallowed\"],[[2768,2768],\"valid\"],[[2769,2783],\"disallowed\"],[[2784,2784],\"valid\"],[[2785,2787],\"valid\"],[[2788,2789],\"disallowed\"],[[2790,2799],\"valid\"],[[2800,2800],\"valid\",[],\"NV8\"],[[2801,2801],\"valid\",[],\"NV8\"],[[2802,2808],\"disallowed\"],[[2809,2809],\"valid\"],[[2810,2816],\"disallowed\"],[[2817,2819],\"valid\"],[[2820,2820],\"disallowed\"],[[2821,2828],\"valid\"],[[2829,2830],\"disallowed\"],[[2831,2832],\"valid\"],[[2833,2834],\"disallowed\"],[[2835,2856],\"valid\"],[[2857,2857],\"disallowed\"],[[2858,2864],\"valid\"],[[2865,2865],\"disallowed\"],[[2866,2867],\"valid\"],[[2868,2868],\"disallowed\"],[[2869,2869],\"valid\"],[[2870,2873],\"valid\"],[[2874,2875],\"disallowed\"],[[2876,2883],\"valid\"],[[2884,2884],\"valid\"],[[2885,2886],\"disallowed\"],[[2887,2888],\"valid\"],[[2889,2890],\"disallowed\"],[[2891,2893],\"valid\"],[[2894,2901],\"disallowed\"],[[2902,2903],\"valid\"],[[2904,2907],\"disallowed\"],[[2908,2908],\"mapped\",[2849,2876]],[[2909,2909],\"mapped\",[2850,2876]],[[2910,2910],\"disallowed\"],[[2911,2913],\"valid\"],[[2914,2915],\"valid\"],[[2916,2917],\"disallowed\"],[[2918,2927],\"valid\"],[[2928,2928],\"valid\",[],\"NV8\"],[[2929,2929],\"valid\"],[[2930,2935],\"valid\",[],\"NV8\"],[[2936,2945],\"disallowed\"],[[2946,2947],\"valid\"],[[2948,2948],\"disallowed\"],[[2949,2954],\"valid\"],[[2955,2957],\"disallowed\"],[[2958,2960],\"valid\"],[[2961,2961],\"disallowed\"],[[2962,2965],\"valid\"],[[2966,2968],\"disallowed\"],[[2969,2970],\"valid\"],[[2971,2971],\"disallowed\"],[[2972,2972],\"valid\"],[[2973,2973],\"disallowed\"],[[2974,2975],\"valid\"],[[2976,2978],\"disallowed\"],[[2979,2980],\"valid\"],[[2981,2983],\"disallowed\"],[[2984,2986],\"valid\"],[[2987,2989],\"disallowed\"],[[2990,2997],\"valid\"],[[2998,2998],\"valid\"],[[2999,3001],\"valid\"],[[3002,3005],\"disallowed\"],[[3006,3010],\"valid\"],[[3011,3013],\"disallowed\"],[[3014,3016],\"valid\"],[[3017,3017],\"disallowed\"],[[3018,3021],\"valid\"],[[3022,3023],\"disallowed\"],[[3024,3024],\"valid\"],[[3025,3030],\"disallowed\"],[[3031,3031],\"valid\"],[[3032,3045],\"disallowed\"],[[3046,3046],\"valid\"],[[3047,3055],\"valid\"],[[3056,3058],\"valid\",[],\"NV8\"],[[3059,3066],\"valid\",[],\"NV8\"],[[3067,3071],\"disallowed\"],[[3072,3072],\"valid\"],[[3073,3075],\"valid\"],[[3076,3076],\"disallowed\"],[[3077,3084],\"valid\"],[[3085,3085],\"disallowed\"],[[3086,3088],\"valid\"],[[3089,3089],\"disallowed\"],[[3090,3112],\"valid\"],[[3113,3113],\"disallowed\"],[[3114,3123],\"valid\"],[[3124,3124],\"valid\"],[[3125,3129],\"valid\"],[[3130,3132],\"disallowed\"],[[3133,3133],\"valid\"],[[3134,3140],\"valid\"],[[3141,3141],\"disallowed\"],[[3142,3144],\"valid\"],[[3145,3145],\"disallowed\"],[[3146,3149],\"valid\"],[[3150,3156],\"disallowed\"],[[3157,3158],\"valid\"],[[3159,3159],\"disallowed\"],[[3160,3161],\"valid\"],[[3162,3162],\"valid\"],[[3163,3167],\"disallowed\"],[[3168,3169],\"valid\"],[[3170,3171],\"valid\"],[[3172,3173],\"disallowed\"],[[3174,3183],\"valid\"],[[3184,3191],\"disallowed\"],[[3192,3199],\"valid\",[],\"NV8\"],[[3200,3200],\"disallowed\"],[[3201,3201],\"valid\"],[[3202,3203],\"valid\"],[[3204,3204],\"disallowed\"],[[3205,3212],\"valid\"],[[3213,3213],\"disallowed\"],[[3214,3216],\"valid\"],[[3217,3217],\"disallowed\"],[[3218,3240],\"valid\"],[[3241,3241],\"disallowed\"],[[3242,3251],\"valid\"],[[3252,3252],\"disallowed\"],[[3253,3257],\"valid\"],[[3258,3259],\"disallowed\"],[[3260,3261],\"valid\"],[[3262,3268],\"valid\"],[[3269,3269],\"disallowed\"],[[3270,3272],\"valid\"],[[3273,3273],\"disallowed\"],[[3274,3277],\"valid\"],[[3278,3284],\"disallowed\"],[[3285,3286],\"valid\"],[[3287,3293],\"disallowed\"],[[3294,3294],\"valid\"],[[3295,3295],\"disallowed\"],[[3296,3297],\"valid\"],[[3298,3299],\"valid\"],[[3300,3301],\"disallowed\"],[[3302,3311],\"valid\"],[[3312,3312],\"disallowed\"],[[3313,3314],\"valid\"],[[3315,3328],\"disallowed\"],[[3329,3329],\"valid\"],[[3330,3331],\"valid\"],[[3332,3332],\"disallowed\"],[[3333,3340],\"valid\"],[[3341,3341],\"disallowed\"],[[3342,3344],\"valid\"],[[3345,3345],\"disallowed\"],[[3346,3368],\"valid\"],[[3369,3369],\"valid\"],[[3370,3385],\"valid\"],[[3386,3386],\"valid\"],[[3387,3388],\"disallowed\"],[[3389,3389],\"valid\"],[[3390,3395],\"valid\"],[[3396,3396],\"valid\"],[[3397,3397],\"disallowed\"],[[3398,3400],\"valid\"],[[3401,3401],\"disallowed\"],[[3402,3405],\"valid\"],[[3406,3406],\"valid\"],[[3407,3414],\"disallowed\"],[[3415,3415],\"valid\"],[[3416,3422],\"disallowed\"],[[3423,3423],\"valid\"],[[3424,3425],\"valid\"],[[3426,3427],\"valid\"],[[3428,3429],\"disallowed\"],[[3430,3439],\"valid\"],[[3440,3445],\"valid\",[],\"NV8\"],[[3446,3448],\"disallowed\"],[[3449,3449],\"valid\",[],\"NV8\"],[[3450,3455],\"valid\"],[[3456,3457],\"disallowed\"],[[3458,3459],\"valid\"],[[3460,3460],\"disallowed\"],[[3461,3478],\"valid\"],[[3479,3481],\"disallowed\"],[[3482,3505],\"valid\"],[[3506,3506],\"disallowed\"],[[3507,3515],\"valid\"],[[3516,3516],\"disallowed\"],[[3517,3517],\"valid\"],[[3518,3519],\"disallowed\"],[[3520,3526],\"valid\"],[[3527,3529],\"disallowed\"],[[3530,3530],\"valid\"],[[3531,3534],\"disallowed\"],[[3535,3540],\"valid\"],[[3541,3541],\"disallowed\"],[[3542,3542],\"valid\"],[[3543,3543],\"disallowed\"],[[3544,3551],\"valid\"],[[3552,3557],\"disallowed\"],[[3558,3567],\"valid\"],[[3568,3569],\"disallowed\"],[[3570,3571],\"valid\"],[[3572,3572],\"valid\",[],\"NV8\"],[[3573,3584],\"disallowed\"],[[3585,3634],\"valid\"],[[3635,3635],\"mapped\",[3661,3634]],[[3636,3642],\"valid\"],[[3643,3646],\"disallowed\"],[[3647,3647],\"valid\",[],\"NV8\"],[[3648,3662],\"valid\"],[[3663,3663],\"valid\",[],\"NV8\"],[[3664,3673],\"valid\"],[[3674,3675],\"valid\",[],\"NV8\"],[[3676,3712],\"disallowed\"],[[3713,3714],\"valid\"],[[3715,3715],\"disallowed\"],[[3716,3716],\"valid\"],[[3717,3718],\"disallowed\"],[[3719,3720],\"valid\"],[[3721,3721],\"disallowed\"],[[3722,3722],\"valid\"],[[3723,3724],\"disallowed\"],[[3725,3725],\"valid\"],[[3726,3731],\"disallowed\"],[[3732,3735],\"valid\"],[[3736,3736],\"disallowed\"],[[3737,3743],\"valid\"],[[3744,3744],\"disallowed\"],[[3745,3747],\"valid\"],[[3748,3748],\"disallowed\"],[[3749,3749],\"valid\"],[[3750,3750],\"disallowed\"],[[3751,3751],\"valid\"],[[3752,3753],\"disallowed\"],[[3754,3755],\"valid\"],[[3756,3756],\"disallowed\"],[[3757,3762],\"valid\"],[[3763,3763],\"mapped\",[3789,3762]],[[3764,3769],\"valid\"],[[3770,3770],\"disallowed\"],[[3771,3773],\"valid\"],[[3774,3775],\"disallowed\"],[[3776,3780],\"valid\"],[[3781,3781],\"disallowed\"],[[3782,3782],\"valid\"],[[3783,3783],\"disallowed\"],[[3784,3789],\"valid\"],[[3790,3791],\"disallowed\"],[[3792,3801],\"valid\"],[[3802,3803],\"disallowed\"],[[3804,3804],\"mapped\",[3755,3737]],[[3805,3805],\"mapped\",[3755,3745]],[[3806,3807],\"valid\"],[[3808,3839],\"disallowed\"],[[3840,3840],\"valid\"],[[3841,3850],\"valid\",[],\"NV8\"],[[3851,3851],\"valid\"],[[3852,3852],\"mapped\",[3851]],[[3853,3863],\"valid\",[],\"NV8\"],[[3864,3865],\"valid\"],[[3866,3871],\"valid\",[],\"NV8\"],[[3872,3881],\"valid\"],[[3882,3892],\"valid\",[],\"NV8\"],[[3893,3893],\"valid\"],[[3894,3894],\"valid\",[],\"NV8\"],[[3895,3895],\"valid\"],[[3896,3896],\"valid\",[],\"NV8\"],[[3897,3897],\"valid\"],[[3898,3901],\"valid\",[],\"NV8\"],[[3902,3906],\"valid\"],[[3907,3907],\"mapped\",[3906,4023]],[[3908,3911],\"valid\"],[[3912,3912],\"disallowed\"],[[3913,3916],\"valid\"],[[3917,3917],\"mapped\",[3916,4023]],[[3918,3921],\"valid\"],[[3922,3922],\"mapped\",[3921,4023]],[[3923,3926],\"valid\"],[[3927,3927],\"mapped\",[3926,4023]],[[3928,3931],\"valid\"],[[3932,3932],\"mapped\",[3931,4023]],[[3933,3944],\"valid\"],[[3945,3945],\"mapped\",[3904,4021]],[[3946,3946],\"valid\"],[[3947,3948],\"valid\"],[[3949,3952],\"disallowed\"],[[3953,3954],\"valid\"],[[3955,3955],\"mapped\",[3953,3954]],[[3956,3956],\"valid\"],[[3957,3957],\"mapped\",[3953,3956]],[[3958,3958],\"mapped\",[4018,3968]],[[3959,3959],\"mapped\",[4018,3953,3968]],[[3960,3960],\"mapped\",[4019,3968]],[[3961,3961],\"mapped\",[4019,3953,3968]],[[3962,3968],\"valid\"],[[3969,3969],\"mapped\",[3953,3968]],[[3970,3972],\"valid\"],[[3973,3973],\"valid\",[],\"NV8\"],[[3974,3979],\"valid\"],[[3980,3983],\"valid\"],[[3984,3986],\"valid\"],[[3987,3987],\"mapped\",[3986,4023]],[[3988,3989],\"valid\"],[[3990,3990],\"valid\"],[[3991,3991],\"valid\"],[[3992,3992],\"disallowed\"],[[3993,3996],\"valid\"],[[3997,3997],\"mapped\",[3996,4023]],[[3998,4001],\"valid\"],[[4002,4002],\"mapped\",[4001,4023]],[[4003,4006],\"valid\"],[[4007,4007],\"mapped\",[4006,4023]],[[4008,4011],\"valid\"],[[4012,4012],\"mapped\",[4011,4023]],[[4013,4013],\"valid\"],[[4014,4016],\"valid\"],[[4017,4023],\"valid\"],[[4024,4024],\"valid\"],[[4025,4025],\"mapped\",[3984,4021]],[[4026,4028],\"valid\"],[[4029,4029],\"disallowed\"],[[4030,4037],\"valid\",[],\"NV8\"],[[4038,4038],\"valid\"],[[4039,4044],\"valid\",[],\"NV8\"],[[4045,4045],\"disallowed\"],[[4046,4046],\"valid\",[],\"NV8\"],[[4047,4047],\"valid\",[],\"NV8\"],[[4048,4049],\"valid\",[],\"NV8\"],[[4050,4052],\"valid\",[],\"NV8\"],[[4053,4056],\"valid\",[],\"NV8\"],[[4057,4058],\"valid\",[],\"NV8\"],[[4059,4095],\"disallowed\"],[[4096,4129],\"valid\"],[[4130,4130],\"valid\"],[[4131,4135],\"valid\"],[[4136,4136],\"valid\"],[[4137,4138],\"valid\"],[[4139,4139],\"valid\"],[[4140,4146],\"valid\"],[[4147,4149],\"valid\"],[[4150,4153],\"valid\"],[[4154,4159],\"valid\"],[[4160,4169],\"valid\"],[[4170,4175],\"valid\",[],\"NV8\"],[[4176,4185],\"valid\"],[[4186,4249],\"valid\"],[[4250,4253],\"valid\"],[[4254,4255],\"valid\",[],\"NV8\"],[[4256,4293],\"disallowed\"],[[4294,4294],\"disallowed\"],[[4295,4295],\"mapped\",[11559]],[[4296,4300],\"disallowed\"],[[4301,4301],\"mapped\",[11565]],[[4302,4303],\"disallowed\"],[[4304,4342],\"valid\"],[[4343,4344],\"valid\"],[[4345,4346],\"valid\"],[[4347,4347],\"valid\",[],\"NV8\"],[[4348,4348],\"mapped\",[4316]],[[4349,4351],\"valid\"],[[4352,4441],\"valid\",[],\"NV8\"],[[4442,4446],\"valid\",[],\"NV8\"],[[4447,4448],\"disallowed\"],[[4449,4514],\"valid\",[],\"NV8\"],[[4515,4519],\"valid\",[],\"NV8\"],[[4520,4601],\"valid\",[],\"NV8\"],[[4602,4607],\"valid\",[],\"NV8\"],[[4608,4614],\"valid\"],[[4615,4615],\"valid\"],[[4616,4678],\"valid\"],[[4679,4679],\"valid\"],[[4680,4680],\"valid\"],[[4681,4681],\"disallowed\"],[[4682,4685],\"valid\"],[[4686,4687],\"disallowed\"],[[4688,4694],\"valid\"],[[4695,4695],\"disallowed\"],[[4696,4696],\"valid\"],[[4697,4697],\"disallowed\"],[[4698,4701],\"valid\"],[[4702,4703],\"disallowed\"],[[4704,4742],\"valid\"],[[4743,4743],\"valid\"],[[4744,4744],\"valid\"],[[4745,4745],\"disallowed\"],[[4746,4749],\"valid\"],[[4750,4751],\"disallowed\"],[[4752,4782],\"valid\"],[[4783,4783],\"valid\"],[[4784,4784],\"valid\"],[[4785,4785],\"disallowed\"],[[4786,4789],\"valid\"],[[4790,4791],\"disallowed\"],[[4792,4798],\"valid\"],[[4799,4799],\"disallowed\"],[[4800,4800],\"valid\"],[[4801,4801],\"disallowed\"],[[4802,4805],\"valid\"],[[4806,4807],\"disallowed\"],[[4808,4814],\"valid\"],[[4815,4815],\"valid\"],[[4816,4822],\"valid\"],[[4823,4823],\"disallowed\"],[[4824,4846],\"valid\"],[[4847,4847],\"valid\"],[[4848,4878],\"valid\"],[[4879,4879],\"valid\"],[[4880,4880],\"valid\"],[[4881,4881],\"disallowed\"],[[4882,4885],\"valid\"],[[4886,4887],\"disallowed\"],[[4888,4894],\"valid\"],[[4895,4895],\"valid\"],[[4896,4934],\"valid\"],[[4935,4935],\"valid\"],[[4936,4954],\"valid\"],[[4955,4956],\"disallowed\"],[[4957,4958],\"valid\"],[[4959,4959],\"valid\"],[[4960,4960],\"valid\",[],\"NV8\"],[[4961,4988],\"valid\",[],\"NV8\"],[[4989,4991],\"disallowed\"],[[4992,5007],\"valid\"],[[5008,5017],\"valid\",[],\"NV8\"],[[5018,5023],\"disallowed\"],[[5024,5108],\"valid\"],[[5109,5109],\"valid\"],[[5110,5111],\"disallowed\"],[[5112,5112],\"mapped\",[5104]],[[5113,5113],\"mapped\",[5105]],[[5114,5114],\"mapped\",[5106]],[[5115,5115],\"mapped\",[5107]],[[5116,5116],\"mapped\",[5108]],[[5117,5117],\"mapped\",[5109]],[[5118,5119],\"disallowed\"],[[5120,5120],\"valid\",[],\"NV8\"],[[5121,5740],\"valid\"],[[5741,5742],\"valid\",[],\"NV8\"],[[5743,5750],\"valid\"],[[5751,5759],\"valid\"],[[5760,5760],\"disallowed\"],[[5761,5786],\"valid\"],[[5787,5788],\"valid\",[],\"NV8\"],[[5789,5791],\"disallowed\"],[[5792,5866],\"valid\"],[[5867,5872],\"valid\",[],\"NV8\"],[[5873,5880],\"valid\"],[[5881,5887],\"disallowed\"],[[5888,5900],\"valid\"],[[5901,5901],\"disallowed\"],[[5902,5908],\"valid\"],[[5909,5919],\"disallowed\"],[[5920,5940],\"valid\"],[[5941,5942],\"valid\",[],\"NV8\"],[[5943,5951],\"disallowed\"],[[5952,5971],\"valid\"],[[5972,5983],\"disallowed\"],[[5984,5996],\"valid\"],[[5997,5997],\"disallowed\"],[[5998,6000],\"valid\"],[[6001,6001],\"disallowed\"],[[6002,6003],\"valid\"],[[6004,6015],\"disallowed\"],[[6016,6067],\"valid\"],[[6068,6069],\"disallowed\"],[[6070,6099],\"valid\"],[[6100,6102],\"valid\",[],\"NV8\"],[[6103,6103],\"valid\"],[[6104,6107],\"valid\",[],\"NV8\"],[[6108,6108],\"valid\"],[[6109,6109],\"valid\"],[[6110,6111],\"disallowed\"],[[6112,6121],\"valid\"],[[6122,6127],\"disallowed\"],[[6128,6137],\"valid\",[],\"NV8\"],[[6138,6143],\"disallowed\"],[[6144,6149],\"valid\",[],\"NV8\"],[[6150,6150],\"disallowed\"],[[6151,6154],\"valid\",[],\"NV8\"],[[6155,6157],\"ignored\"],[[6158,6158],\"disallowed\"],[[6159,6159],\"disallowed\"],[[6160,6169],\"valid\"],[[6170,6175],\"disallowed\"],[[6176,6263],\"valid\"],[[6264,6271],\"disallowed\"],[[6272,6313],\"valid\"],[[6314,6314],\"valid\"],[[6315,6319],\"disallowed\"],[[6320,6389],\"valid\"],[[6390,6399],\"disallowed\"],[[6400,6428],\"valid\"],[[6429,6430],\"valid\"],[[6431,6431],\"disallowed\"],[[6432,6443],\"valid\"],[[6444,6447],\"disallowed\"],[[6448,6459],\"valid\"],[[6460,6463],\"disallowed\"],[[6464,6464],\"valid\",[],\"NV8\"],[[6465,6467],\"disallowed\"],[[6468,6469],\"valid\",[],\"NV8\"],[[6470,6509],\"valid\"],[[6510,6511],\"disallowed\"],[[6512,6516],\"valid\"],[[6517,6527],\"disallowed\"],[[6528,6569],\"valid\"],[[6570,6571],\"valid\"],[[6572,6575],\"disallowed\"],[[6576,6601],\"valid\"],[[6602,6607],\"disallowed\"],[[6608,6617],\"valid\"],[[6618,6618],\"valid\",[],\"XV8\"],[[6619,6621],\"disallowed\"],[[6622,6623],\"valid\",[],\"NV8\"],[[6624,6655],\"valid\",[],\"NV8\"],[[6656,6683],\"valid\"],[[6684,6685],\"disallowed\"],[[6686,6687],\"valid\",[],\"NV8\"],[[6688,6750],\"valid\"],[[6751,6751],\"disallowed\"],[[6752,6780],\"valid\"],[[6781,6782],\"disallowed\"],[[6783,6793],\"valid\"],[[6794,6799],\"disallowed\"],[[6800,6809],\"valid\"],[[6810,6815],\"disallowed\"],[[6816,6822],\"valid\",[],\"NV8\"],[[6823,6823],\"valid\"],[[6824,6829],\"valid\",[],\"NV8\"],[[6830,6831],\"disallowed\"],[[6832,6845],\"valid\"],[[6846,6846],\"valid\",[],\"NV8\"],[[6847,6911],\"disallowed\"],[[6912,6987],\"valid\"],[[6988,6991],\"disallowed\"],[[6992,7001],\"valid\"],[[7002,7018],\"valid\",[],\"NV8\"],[[7019,7027],\"valid\"],[[7028,7036],\"valid\",[],\"NV8\"],[[7037,7039],\"disallowed\"],[[7040,7082],\"valid\"],[[7083,7085],\"valid\"],[[7086,7097],\"valid\"],[[7098,7103],\"valid\"],[[7104,7155],\"valid\"],[[7156,7163],\"disallowed\"],[[7164,7167],\"valid\",[],\"NV8\"],[[7168,7223],\"valid\"],[[7224,7226],\"disallowed\"],[[7227,7231],\"valid\",[],\"NV8\"],[[7232,7241],\"valid\"],[[7242,7244],\"disallowed\"],[[7245,7293],\"valid\"],[[7294,7295],\"valid\",[],\"NV8\"],[[7296,7359],\"disallowed\"],[[7360,7367],\"valid\",[],\"NV8\"],[[7368,7375],\"disallowed\"],[[7376,7378],\"valid\"],[[7379,7379],\"valid\",[],\"NV8\"],[[7380,7410],\"valid\"],[[7411,7414],\"valid\"],[[7415,7415],\"disallowed\"],[[7416,7417],\"valid\"],[[7418,7423],\"disallowed\"],[[7424,7467],\"valid\"],[[7468,7468],\"mapped\",[97]],[[7469,7469],\"mapped\",[230]],[[7470,7470],\"mapped\",[98]],[[7471,7471],\"valid\"],[[7472,7472],\"mapped\",[100]],[[7473,7473],\"mapped\",[101]],[[7474,7474],\"mapped\",[477]],[[7475,7475],\"mapped\",[103]],[[7476,7476],\"mapped\",[104]],[[7477,7477],\"mapped\",[105]],[[7478,7478],\"mapped\",[106]],[[7479,7479],\"mapped\",[107]],[[7480,7480],\"mapped\",[108]],[[7481,7481],\"mapped\",[109]],[[7482,7482],\"mapped\",[110]],[[7483,7483],\"valid\"],[[7484,7484],\"mapped\",[111]],[[7485,7485],\"mapped\",[547]],[[7486,7486],\"mapped\",[112]],[[7487,7487],\"mapped\",[114]],[[7488,7488],\"mapped\",[116]],[[7489,7489],\"mapped\",[117]],[[7490,7490],\"mapped\",[119]],[[7491,7491],\"mapped\",[97]],[[7492,7492],\"mapped\",[592]],[[7493,7493],\"mapped\",[593]],[[7494,7494],\"mapped\",[7426]],[[7495,7495],\"mapped\",[98]],[[7496,7496],\"mapped\",[100]],[[7497,7497],\"mapped\",[101]],[[7498,7498],\"mapped\",[601]],[[7499,7499],\"mapped\",[603]],[[7500,7500],\"mapped\",[604]],[[7501,7501],\"mapped\",[103]],[[7502,7502],\"valid\"],[[7503,7503],\"mapped\",[107]],[[7504,7504],\"mapped\",[109]],[[7505,7505],\"mapped\",[331]],[[7506,7506],\"mapped\",[111]],[[7507,7507],\"mapped\",[596]],[[7508,7508],\"mapped\",[7446]],[[7509,7509],\"mapped\",[7447]],[[7510,7510],\"mapped\",[112]],[[7511,7511],\"mapped\",[116]],[[7512,7512],\"mapped\",[117]],[[7513,7513],\"mapped\",[7453]],[[7514,7514],\"mapped\",[623]],[[7515,7515],\"mapped\",[118]],[[7516,7516],\"mapped\",[7461]],[[7517,7517],\"mapped\",[946]],[[7518,7518],\"mapped\",[947]],[[7519,7519],\"mapped\",[948]],[[7520,7520],\"mapped\",[966]],[[7521,7521],\"mapped\",[967]],[[7522,7522],\"mapped\",[105]],[[7523,7523],\"mapped\",[114]],[[7524,7524],\"mapped\",[117]],[[7525,7525],\"mapped\",[118]],[[7526,7526],\"mapped\",[946]],[[7527,7527],\"mapped\",[947]],[[7528,7528],\"mapped\",[961]],[[7529,7529],\"mapped\",[966]],[[7530,7530],\"mapped\",[967]],[[7531,7531],\"valid\"],[[7532,7543],\"valid\"],[[7544,7544],\"mapped\",[1085]],[[7545,7578],\"valid\"],[[7579,7579],\"mapped\",[594]],[[7580,7580],\"mapped\",[99]],[[7581,7581],\"mapped\",[597]],[[7582,7582],\"mapped\",[240]],[[7583,7583],\"mapped\",[604]],[[7584,7584],\"mapped\",[102]],[[7585,7585],\"mapped\",[607]],[[7586,7586],\"mapped\",[609]],[[7587,7587],\"mapped\",[613]],[[7588,7588],\"mapped\",[616]],[[7589,7589],\"mapped\",[617]],[[7590,7590],\"mapped\",[618]],[[7591,7591],\"mapped\",[7547]],[[7592,7592],\"mapped\",[669]],[[7593,7593],\"mapped\",[621]],[[7594,7594],\"mapped\",[7557]],[[7595,7595],\"mapped\",[671]],[[7596,7596],\"mapped\",[625]],[[7597,7597],\"mapped\",[624]],[[7598,7598],\"mapped\",[626]],[[7599,7599],\"mapped\",[627]],[[7600,7600],\"mapped\",[628]],[[7601,7601],\"mapped\",[629]],[[7602,7602],\"mapped\",[632]],[[7603,7603],\"mapped\",[642]],[[7604,7604],\"mapped\",[643]],[[7605,7605],\"mapped\",[427]],[[7606,7606],\"mapped\",[649]],[[7607,7607],\"mapped\",[650]],[[7608,7608],\"mapped\",[7452]],[[7609,7609],\"mapped\",[651]],[[7610,7610],\"mapped\",[652]],[[7611,7611],\"mapped\",[122]],[[7612,7612],\"mapped\",[656]],[[7613,7613],\"mapped\",[657]],[[7614,7614],\"mapped\",[658]],[[7615,7615],\"mapped\",[952]],[[7616,7619],\"valid\"],[[7620,7626],\"valid\"],[[7627,7654],\"valid\"],[[7655,7669],\"valid\"],[[7670,7675],\"disallowed\"],[[7676,7676],\"valid\"],[[7677,7677],\"valid\"],[[7678,7679],\"valid\"],[[7680,7680],\"mapped\",[7681]],[[7681,7681],\"valid\"],[[7682,7682],\"mapped\",[7683]],[[7683,7683],\"valid\"],[[7684,7684],\"mapped\",[7685]],[[7685,7685],\"valid\"],[[7686,7686],\"mapped\",[7687]],[[7687,7687],\"valid\"],[[7688,7688],\"mapped\",[7689]],[[7689,7689],\"valid\"],[[7690,7690],\"mapped\",[7691]],[[7691,7691],\"valid\"],[[7692,7692],\"mapped\",[7693]],[[7693,7693],\"valid\"],[[7694,7694],\"mapped\",[7695]],[[7695,7695],\"valid\"],[[7696,7696],\"mapped\",[7697]],[[7697,7697],\"valid\"],[[7698,7698],\"mapped\",[7699]],[[7699,7699],\"valid\"],[[7700,7700],\"mapped\",[7701]],[[7701,7701],\"valid\"],[[7702,7702],\"mapped\",[7703]],[[7703,7703],\"valid\"],[[7704,7704],\"mapped\",[7705]],[[7705,7705],\"valid\"],[[7706,7706],\"mapped\",[7707]],[[7707,7707],\"valid\"],[[7708,7708],\"mapped\",[7709]],[[7709,7709],\"valid\"],[[7710,7710],\"mapped\",[7711]],[[7711,7711],\"valid\"],[[7712,7712],\"mapped\",[7713]],[[7713,7713],\"valid\"],[[7714,7714],\"mapped\",[7715]],[[7715,7715],\"valid\"],[[7716,7716],\"mapped\",[7717]],[[7717,7717],\"valid\"],[[7718,7718],\"mapped\",[7719]],[[7719,7719],\"valid\"],[[7720,7720],\"mapped\",[7721]],[[7721,7721],\"valid\"],[[7722,7722],\"mapped\",[7723]],[[7723,7723],\"valid\"],[[7724,7724],\"mapped\",[7725]],[[7725,7725],\"valid\"],[[7726,7726],\"mapped\",[7727]],[[7727,7727],\"valid\"],[[7728,7728],\"mapped\",[7729]],[[7729,7729],\"valid\"],[[7730,7730],\"mapped\",[7731]],[[7731,7731],\"valid\"],[[7732,7732],\"mapped\",[7733]],[[7733,7733],\"valid\"],[[7734,7734],\"mapped\",[7735]],[[7735,7735],\"valid\"],[[7736,7736],\"mapped\",[7737]],[[7737,7737],\"valid\"],[[7738,7738],\"mapped\",[7739]],[[7739,7739],\"valid\"],[[7740,7740],\"mapped\",[7741]],[[7741,7741],\"valid\"],[[7742,7742],\"mapped\",[7743]],[[7743,7743],\"valid\"],[[7744,7744],\"mapped\",[7745]],[[7745,7745],\"valid\"],[[7746,7746],\"mapped\",[7747]],[[7747,7747],\"valid\"],[[7748,7748],\"mapped\",[7749]],[[7749,7749],\"valid\"],[[7750,7750],\"mapped\",[7751]],[[7751,7751],\"valid\"],[[7752,7752],\"mapped\",[7753]],[[7753,7753],\"valid\"],[[7754,7754],\"mapped\",[7755]],[[7755,7755],\"valid\"],[[7756,7756],\"mapped\",[7757]],[[7757,7757],\"valid\"],[[7758,7758],\"mapped\",[7759]],[[7759,7759],\"valid\"],[[7760,7760],\"mapped\",[7761]],[[7761,7761],\"valid\"],[[7762,7762],\"mapped\",[7763]],[[7763,7763],\"valid\"],[[7764,7764],\"mapped\",[7765]],[[7765,7765],\"valid\"],[[7766,7766],\"mapped\",[7767]],[[7767,7767],\"valid\"],[[7768,7768],\"mapped\",[7769]],[[7769,7769],\"valid\"],[[7770,7770],\"mapped\",[7771]],[[7771,7771],\"valid\"],[[7772,7772],\"mapped\",[7773]],[[7773,7773],\"valid\"],[[7774,7774],\"mapped\",[7775]],[[7775,7775],\"valid\"],[[7776,7776],\"mapped\",[7777]],[[7777,7777],\"valid\"],[[7778,7778],\"mapped\",[7779]],[[7779,7779],\"valid\"],[[7780,7780],\"mapped\",[7781]],[[7781,7781],\"valid\"],[[7782,7782],\"mapped\",[7783]],[[7783,7783],\"valid\"],[[7784,7784],\"mapped\",[7785]],[[7785,7785],\"valid\"],[[7786,7786],\"mapped\",[7787]],[[7787,7787],\"valid\"],[[7788,7788],\"mapped\",[7789]],[[7789,7789],\"valid\"],[[7790,7790],\"mapped\",[7791]],[[7791,7791],\"valid\"],[[7792,7792],\"mapped\",[7793]],[[7793,7793],\"valid\"],[[7794,7794],\"mapped\",[7795]],[[7795,7795],\"valid\"],[[7796,7796],\"mapped\",[7797]],[[7797,7797],\"valid\"],[[7798,7798],\"mapped\",[7799]],[[7799,7799],\"valid\"],[[7800,7800],\"mapped\",[7801]],[[7801,7801],\"valid\"],[[7802,7802],\"mapped\",[7803]],[[7803,7803],\"valid\"],[[7804,7804],\"mapped\",[7805]],[[7805,7805],\"valid\"],[[7806,7806],\"mapped\",[7807]],[[7807,7807],\"valid\"],[[7808,7808],\"mapped\",[7809]],[[7809,7809],\"valid\"],[[7810,7810],\"mapped\",[7811]],[[7811,7811],\"valid\"],[[7812,7812],\"mapped\",[7813]],[[7813,7813],\"valid\"],[[7814,7814],\"mapped\",[7815]],[[7815,7815],\"valid\"],[[7816,7816],\"mapped\",[7817]],[[7817,7817],\"valid\"],[[7818,7818],\"mapped\",[7819]],[[7819,7819],\"valid\"],[[7820,7820],\"mapped\",[7821]],[[7821,7821],\"valid\"],[[7822,7822],\"mapped\",[7823]],[[7823,7823],\"valid\"],[[7824,7824],\"mapped\",[7825]],[[7825,7825],\"valid\"],[[7826,7826],\"mapped\",[7827]],[[7827,7827],\"valid\"],[[7828,7828],\"mapped\",[7829]],[[7829,7833],\"valid\"],[[7834,7834],\"mapped\",[97,702]],[[7835,7835],\"mapped\",[7777]],[[7836,7837],\"valid\"],[[7838,7838],\"mapped\",[115,115]],[[7839,7839],\"valid\"],[[7840,7840],\"mapped\",[7841]],[[7841,7841],\"valid\"],[[7842,7842],\"mapped\",[7843]],[[7843,7843],\"valid\"],[[7844,7844],\"mapped\",[7845]],[[7845,7845],\"valid\"],[[7846,7846],\"mapped\",[7847]],[[7847,7847],\"valid\"],[[7848,7848],\"mapped\",[7849]],[[7849,7849],\"valid\"],[[7850,7850],\"mapped\",[7851]],[[7851,7851],\"valid\"],[[7852,7852],\"mapped\",[7853]],[[7853,7853],\"valid\"],[[7854,7854],\"mapped\",[7855]],[[7855,7855],\"valid\"],[[7856,7856],\"mapped\",[7857]],[[7857,7857],\"valid\"],[[7858,7858],\"mapped\",[7859]],[[7859,7859],\"valid\"],[[7860,7860],\"mapped\",[7861]],[[7861,7861],\"valid\"],[[7862,7862],\"mapped\",[7863]],[[7863,7863],\"valid\"],[[7864,7864],\"mapped\",[7865]],[[7865,7865],\"valid\"],[[7866,7866],\"mapped\",[7867]],[[7867,7867],\"valid\"],[[7868,7868],\"mapped\",[7869]],[[7869,7869],\"valid\"],[[7870,7870],\"mapped\",[7871]],[[7871,7871],\"valid\"],[[7872,7872],\"mapped\",[7873]],[[7873,7873],\"valid\"],[[7874,7874],\"mapped\",[7875]],[[7875,7875],\"valid\"],[[7876,7876],\"mapped\",[7877]],[[7877,7877],\"valid\"],[[7878,7878],\"mapped\",[7879]],[[7879,7879],\"valid\"],[[7880,7880],\"mapped\",[7881]],[[7881,7881],\"valid\"],[[7882,7882],\"mapped\",[7883]],[[7883,7883],\"valid\"],[[7884,7884],\"mapped\",[7885]],[[7885,7885],\"valid\"],[[7886,7886],\"mapped\",[7887]],[[7887,7887],\"valid\"],[[7888,7888],\"mapped\",[7889]],[[7889,7889],\"valid\"],[[7890,7890],\"mapped\",[7891]],[[7891,7891],\"valid\"],[[7892,7892],\"mapped\",[7893]],[[7893,7893],\"valid\"],[[7894,7894],\"mapped\",[7895]],[[7895,7895],\"valid\"],[[7896,7896],\"mapped\",[7897]],[[7897,7897],\"valid\"],[[7898,7898],\"mapped\",[7899]],[[7899,7899],\"valid\"],[[7900,7900],\"mapped\",[7901]],[[7901,7901],\"valid\"],[[7902,7902],\"mapped\",[7903]],[[7903,7903],\"valid\"],[[7904,7904],\"mapped\",[7905]],[[7905,7905],\"valid\"],[[7906,7906],\"mapped\",[7907]],[[7907,7907],\"valid\"],[[7908,7908],\"mapped\",[7909]],[[7909,7909],\"valid\"],[[7910,7910],\"mapped\",[7911]],[[7911,7911],\"valid\"],[[7912,7912],\"mapped\",[7913]],[[7913,7913],\"valid\"],[[7914,7914],\"mapped\",[7915]],[[7915,7915],\"valid\"],[[7916,7916],\"mapped\",[7917]],[[7917,7917],\"valid\"],[[7918,7918],\"mapped\",[7919]],[[7919,7919],\"valid\"],[[7920,7920],\"mapped\",[7921]],[[7921,7921],\"valid\"],[[7922,7922],\"mapped\",[7923]],[[7923,7923],\"valid\"],[[7924,7924],\"mapped\",[7925]],[[7925,7925],\"valid\"],[[7926,7926],\"mapped\",[7927]],[[7927,7927],\"valid\"],[[7928,7928],\"mapped\",[7929]],[[7929,7929],\"valid\"],[[7930,7930],\"mapped\",[7931]],[[7931,7931],\"valid\"],[[7932,7932],\"mapped\",[7933]],[[7933,7933],\"valid\"],[[7934,7934],\"mapped\",[7935]],[[7935,7935],\"valid\"],[[7936,7943],\"valid\"],[[7944,7944],\"mapped\",[7936]],[[7945,7945],\"mapped\",[7937]],[[7946,7946],\"mapped\",[7938]],[[7947,7947],\"mapped\",[7939]],[[7948,7948],\"mapped\",[7940]],[[7949,7949],\"mapped\",[7941]],[[7950,7950],\"mapped\",[7942]],[[7951,7951],\"mapped\",[7943]],[[7952,7957],\"valid\"],[[7958,7959],\"disallowed\"],[[7960,7960],\"mapped\",[7952]],[[7961,7961],\"mapped\",[7953]],[[7962,7962],\"mapped\",[7954]],[[7963,7963],\"mapped\",[7955]],[[7964,7964],\"mapped\",[7956]],[[7965,7965],\"mapped\",[7957]],[[7966,7967],\"disallowed\"],[[7968,7975],\"valid\"],[[7976,7976],\"mapped\",[7968]],[[7977,7977],\"mapped\",[7969]],[[7978,7978],\"mapped\",[7970]],[[7979,7979],\"mapped\",[7971]],[[7980,7980],\"mapped\",[7972]],[[7981,7981],\"mapped\",[7973]],[[7982,7982],\"mapped\",[7974]],[[7983,7983],\"mapped\",[7975]],[[7984,7991],\"valid\"],[[7992,7992],\"mapped\",[7984]],[[7993,7993],\"mapped\",[7985]],[[7994,7994],\"mapped\",[7986]],[[7995,7995],\"mapped\",[7987]],[[7996,7996],\"mapped\",[7988]],[[7997,7997],\"mapped\",[7989]],[[7998,7998],\"mapped\",[7990]],[[7999,7999],\"mapped\",[7991]],[[8000,8005],\"valid\"],[[8006,8007],\"disallowed\"],[[8008,8008],\"mapped\",[8000]],[[8009,8009],\"mapped\",[8001]],[[8010,8010],\"mapped\",[8002]],[[8011,8011],\"mapped\",[8003]],[[8012,8012],\"mapped\",[8004]],[[8013,8013],\"mapped\",[8005]],[[8014,8015],\"disallowed\"],[[8016,8023],\"valid\"],[[8024,8024],\"disallowed\"],[[8025,8025],\"mapped\",[8017]],[[8026,8026],\"disallowed\"],[[8027,8027],\"mapped\",[8019]],[[8028,8028],\"disallowed\"],[[8029,8029],\"mapped\",[8021]],[[8030,8030],\"disallowed\"],[[8031,8031],\"mapped\",[8023]],[[8032,8039],\"valid\"],[[8040,8040],\"mapped\",[8032]],[[8041,8041],\"mapped\",[8033]],[[8042,8042],\"mapped\",[8034]],[[8043,8043],\"mapped\",[8035]],[[8044,8044],\"mapped\",[8036]],[[8045,8045],\"mapped\",[8037]],[[8046,8046],\"mapped\",[8038]],[[8047,8047],\"mapped\",[8039]],[[8048,8048],\"valid\"],[[8049,8049],\"mapped\",[940]],[[8050,8050],\"valid\"],[[8051,8051],\"mapped\",[941]],[[8052,8052],\"valid\"],[[8053,8053],\"mapped\",[942]],[[8054,8054],\"valid\"],[[8055,8055],\"mapped\",[943]],[[8056,8056],\"valid\"],[[8057,8057],\"mapped\",[972]],[[8058,8058],\"valid\"],[[8059,8059],\"mapped\",[973]],[[8060,8060],\"valid\"],[[8061,8061],\"mapped\",[974]],[[8062,8063],\"disallowed\"],[[8064,8064],\"mapped\",[7936,953]],[[8065,8065],\"mapped\",[7937,953]],[[8066,8066],\"mapped\",[7938,953]],[[8067,8067],\"mapped\",[7939,953]],[[8068,8068],\"mapped\",[7940,953]],[[8069,8069],\"mapped\",[7941,953]],[[8070,8070],\"mapped\",[7942,953]],[[8071,8071],\"mapped\",[7943,953]],[[8072,8072],\"mapped\",[7936,953]],[[8073,8073],\"mapped\",[7937,953]],[[8074,8074],\"mapped\",[7938,953]],[[8075,8075],\"mapped\",[7939,953]],[[8076,8076],\"mapped\",[7940,953]],[[8077,8077],\"mapped\",[7941,953]],[[8078,8078],\"mapped\",[7942,953]],[[8079,8079],\"mapped\",[7943,953]],[[8080,8080],\"mapped\",[7968,953]],[[8081,8081],\"mapped\",[7969,953]],[[8082,8082],\"mapped\",[7970,953]],[[8083,8083],\"mapped\",[7971,953]],[[8084,8084],\"mapped\",[7972,953]],[[8085,8085],\"mapped\",[7973,953]],[[8086,8086],\"mapped\",[7974,953]],[[8087,8087],\"mapped\",[7975,953]],[[8088,8088],\"mapped\",[7968,953]],[[8089,8089],\"mapped\",[7969,953]],[[8090,8090],\"mapped\",[7970,953]],[[8091,8091],\"mapped\",[7971,953]],[[8092,8092],\"mapped\",[7972,953]],[[8093,8093],\"mapped\",[7973,953]],[[8094,8094],\"mapped\",[7974,953]],[[8095,8095],\"mapped\",[7975,953]],[[8096,8096],\"mapped\",[8032,953]],[[8097,8097],\"mapped\",[8033,953]],[[8098,8098],\"mapped\",[8034,953]],[[8099,8099],\"mapped\",[8035,953]],[[8100,8100],\"mapped\",[8036,953]],[[8101,8101],\"mapped\",[8037,953]],[[8102,8102],\"mapped\",[8038,953]],[[8103,8103],\"mapped\",[8039,953]],[[8104,8104],\"mapped\",[8032,953]],[[8105,8105],\"mapped\",[8033,953]],[[8106,8106],\"mapped\",[8034,953]],[[8107,8107],\"mapped\",[8035,953]],[[8108,8108],\"mapped\",[8036,953]],[[8109,8109],\"mapped\",[8037,953]],[[8110,8110],\"mapped\",[8038,953]],[[8111,8111],\"mapped\",[8039,953]],[[8112,8113],\"valid\"],[[8114,8114],\"mapped\",[8048,953]],[[8115,8115],\"mapped\",[945,953]],[[8116,8116],\"mapped\",[940,953]],[[8117,8117],\"disallowed\"],[[8118,8118],\"valid\"],[[8119,8119],\"mapped\",[8118,953]],[[8120,8120],\"mapped\",[8112]],[[8121,8121],\"mapped\",[8113]],[[8122,8122],\"mapped\",[8048]],[[8123,8123],\"mapped\",[940]],[[8124,8124],\"mapped\",[945,953]],[[8125,8125],\"disallowed_STD3_mapped\",[32,787]],[[8126,8126],\"mapped\",[953]],[[8127,8127],\"disallowed_STD3_mapped\",[32,787]],[[8128,8128],\"disallowed_STD3_mapped\",[32,834]],[[8129,8129],\"disallowed_STD3_mapped\",[32,776,834]],[[8130,8130],\"mapped\",[8052,953]],[[8131,8131],\"mapped\",[951,953]],[[8132,8132],\"mapped\",[942,953]],[[8133,8133],\"disallowed\"],[[8134,8134],\"valid\"],[[8135,8135],\"mapped\",[8134,953]],[[8136,8136],\"mapped\",[8050]],[[8137,8137],\"mapped\",[941]],[[8138,8138],\"mapped\",[8052]],[[8139,8139],\"mapped\",[942]],[[8140,8140],\"mapped\",[951,953]],[[8141,8141],\"disallowed_STD3_mapped\",[32,787,768]],[[8142,8142],\"disallowed_STD3_mapped\",[32,787,769]],[[8143,8143],\"disallowed_STD3_mapped\",[32,787,834]],[[8144,8146],\"valid\"],[[8147,8147],\"mapped\",[912]],[[8148,8149],\"disallowed\"],[[8150,8151],\"valid\"],[[8152,8152],\"mapped\",[8144]],[[8153,8153],\"mapped\",[8145]],[[8154,8154],\"mapped\",[8054]],[[8155,8155],\"mapped\",[943]],[[8156,8156],\"disallowed\"],[[8157,8157],\"disallowed_STD3_mapped\",[32,788,768]],[[8158,8158],\"disallowed_STD3_mapped\",[32,788,769]],[[8159,8159],\"disallowed_STD3_mapped\",[32,788,834]],[[8160,8162],\"valid\"],[[8163,8163],\"mapped\",[944]],[[8164,8167],\"valid\"],[[8168,8168],\"mapped\",[8160]],[[8169,8169],\"mapped\",[8161]],[[8170,8170],\"mapped\",[8058]],[[8171,8171],\"mapped\",[973]],[[8172,8172],\"mapped\",[8165]],[[8173,8173],\"disallowed_STD3_mapped\",[32,776,768]],[[8174,8174],\"disallowed_STD3_mapped\",[32,776,769]],[[8175,8175],\"disallowed_STD3_mapped\",[96]],[[8176,8177],\"disallowed\"],[[8178,8178],\"mapped\",[8060,953]],[[8179,8179],\"mapped\",[969,953]],[[8180,8180],\"mapped\",[974,953]],[[8181,8181],\"disallowed\"],[[8182,8182],\"valid\"],[[8183,8183],\"mapped\",[8182,953]],[[8184,8184],\"mapped\",[8056]],[[8185,8185],\"mapped\",[972]],[[8186,8186],\"mapped\",[8060]],[[8187,8187],\"mapped\",[974]],[[8188,8188],\"mapped\",[969,953]],[[8189,8189],\"disallowed_STD3_mapped\",[32,769]],[[8190,8190],\"disallowed_STD3_mapped\",[32,788]],[[8191,8191],\"disallowed\"],[[8192,8202],\"disallowed_STD3_mapped\",[32]],[[8203,8203],\"ignored\"],[[8204,8205],\"deviation\",[]],[[8206,8207],\"disallowed\"],[[8208,8208],\"valid\",[],\"NV8\"],[[8209,8209],\"mapped\",[8208]],[[8210,8214],\"valid\",[],\"NV8\"],[[8215,8215],\"disallowed_STD3_mapped\",[32,819]],[[8216,8227],\"valid\",[],\"NV8\"],[[8228,8230],\"disallowed\"],[[8231,8231],\"valid\",[],\"NV8\"],[[8232,8238],\"disallowed\"],[[8239,8239],\"disallowed_STD3_mapped\",[32]],[[8240,8242],\"valid\",[],\"NV8\"],[[8243,8243],\"mapped\",[8242,8242]],[[8244,8244],\"mapped\",[8242,8242,8242]],[[8245,8245],\"valid\",[],\"NV8\"],[[8246,8246],\"mapped\",[8245,8245]],[[8247,8247],\"mapped\",[8245,8245,8245]],[[8248,8251],\"valid\",[],\"NV8\"],[[8252,8252],\"disallowed_STD3_mapped\",[33,33]],[[8253,8253],\"valid\",[],\"NV8\"],[[8254,8254],\"disallowed_STD3_mapped\",[32,773]],[[8255,8262],\"valid\",[],\"NV8\"],[[8263,8263],\"disallowed_STD3_mapped\",[63,63]],[[8264,8264],\"disallowed_STD3_mapped\",[63,33]],[[8265,8265],\"disallowed_STD3_mapped\",[33,63]],[[8266,8269],\"valid\",[],\"NV8\"],[[8270,8274],\"valid\",[],\"NV8\"],[[8275,8276],\"valid\",[],\"NV8\"],[[8277,8278],\"valid\",[],\"NV8\"],[[8279,8279],\"mapped\",[8242,8242,8242,8242]],[[8280,8286],\"valid\",[],\"NV8\"],[[8287,8287],\"disallowed_STD3_mapped\",[32]],[[8288,8288],\"ignored\"],[[8289,8291],\"disallowed\"],[[8292,8292],\"ignored\"],[[8293,8293],\"disallowed\"],[[8294,8297],\"disallowed\"],[[8298,8303],\"disallowed\"],[[8304,8304],\"mapped\",[48]],[[8305,8305],\"mapped\",[105]],[[8306,8307],\"disallowed\"],[[8308,8308],\"mapped\",[52]],[[8309,8309],\"mapped\",[53]],[[8310,8310],\"mapped\",[54]],[[8311,8311],\"mapped\",[55]],[[8312,8312],\"mapped\",[56]],[[8313,8313],\"mapped\",[57]],[[8314,8314],\"disallowed_STD3_mapped\",[43]],[[8315,8315],\"mapped\",[8722]],[[8316,8316],\"disallowed_STD3_mapped\",[61]],[[8317,8317],\"disallowed_STD3_mapped\",[40]],[[8318,8318],\"disallowed_STD3_mapped\",[41]],[[8319,8319],\"mapped\",[110]],[[8320,8320],\"mapped\",[48]],[[8321,8321],\"mapped\",[49]],[[8322,8322],\"mapped\",[50]],[[8323,8323],\"mapped\",[51]],[[8324,8324],\"mapped\",[52]],[[8325,8325],\"mapped\",[53]],[[8326,8326],\"mapped\",[54]],[[8327,8327],\"mapped\",[55]],[[8328,8328],\"mapped\",[56]],[[8329,8329],\"mapped\",[57]],[[8330,8330],\"disallowed_STD3_mapped\",[43]],[[8331,8331],\"mapped\",[8722]],[[8332,8332],\"disallowed_STD3_mapped\",[61]],[[8333,8333],\"disallowed_STD3_mapped\",[40]],[[8334,8334],\"disallowed_STD3_mapped\",[41]],[[8335,8335],\"disallowed\"],[[8336,8336],\"mapped\",[97]],[[8337,8337],\"mapped\",[101]],[[8338,8338],\"mapped\",[111]],[[8339,8339],\"mapped\",[120]],[[8340,8340],\"mapped\",[601]],[[8341,8341],\"mapped\",[104]],[[8342,8342],\"mapped\",[107]],[[8343,8343],\"mapped\",[108]],[[8344,8344],\"mapped\",[109]],[[8345,8345],\"mapped\",[110]],[[8346,8346],\"mapped\",[112]],[[8347,8347],\"mapped\",[115]],[[8348,8348],\"mapped\",[116]],[[8349,8351],\"disallowed\"],[[8352,8359],\"valid\",[],\"NV8\"],[[8360,8360],\"mapped\",[114,115]],[[8361,8362],\"valid\",[],\"NV8\"],[[8363,8363],\"valid\",[],\"NV8\"],[[8364,8364],\"valid\",[],\"NV8\"],[[8365,8367],\"valid\",[],\"NV8\"],[[8368,8369],\"valid\",[],\"NV8\"],[[8370,8373],\"valid\",[],\"NV8\"],[[8374,8376],\"valid\",[],\"NV8\"],[[8377,8377],\"valid\",[],\"NV8\"],[[8378,8378],\"valid\",[],\"NV8\"],[[8379,8381],\"valid\",[],\"NV8\"],[[8382,8382],\"valid\",[],\"NV8\"],[[8383,8399],\"disallowed\"],[[8400,8417],\"valid\",[],\"NV8\"],[[8418,8419],\"valid\",[],\"NV8\"],[[8420,8426],\"valid\",[],\"NV8\"],[[8427,8427],\"valid\",[],\"NV8\"],[[8428,8431],\"valid\",[],\"NV8\"],[[8432,8432],\"valid\",[],\"NV8\"],[[8433,8447],\"disallowed\"],[[8448,8448],\"disallowed_STD3_mapped\",[97,47,99]],[[8449,8449],\"disallowed_STD3_mapped\",[97,47,115]],[[8450,8450],\"mapped\",[99]],[[8451,8451],\"mapped\",[176,99]],[[8452,8452],\"valid\",[],\"NV8\"],[[8453,8453],\"disallowed_STD3_mapped\",[99,47,111]],[[8454,8454],\"disallowed_STD3_mapped\",[99,47,117]],[[8455,8455],\"mapped\",[603]],[[8456,8456],\"valid\",[],\"NV8\"],[[8457,8457],\"mapped\",[176,102]],[[8458,8458],\"mapped\",[103]],[[8459,8462],\"mapped\",[104]],[[8463,8463],\"mapped\",[295]],[[8464,8465],\"mapped\",[105]],[[8466,8467],\"mapped\",[108]],[[8468,8468],\"valid\",[],\"NV8\"],[[8469,8469],\"mapped\",[110]],[[8470,8470],\"mapped\",[110,111]],[[8471,8472],\"valid\",[],\"NV8\"],[[8473,8473],\"mapped\",[112]],[[8474,8474],\"mapped\",[113]],[[8475,8477],\"mapped\",[114]],[[8478,8479],\"valid\",[],\"NV8\"],[[8480,8480],\"mapped\",[115,109]],[[8481,8481],\"mapped\",[116,101,108]],[[8482,8482],\"mapped\",[116,109]],[[8483,8483],\"valid\",[],\"NV8\"],[[8484,8484],\"mapped\",[122]],[[8485,8485],\"valid\",[],\"NV8\"],[[8486,8486],\"mapped\",[969]],[[8487,8487],\"valid\",[],\"NV8\"],[[8488,8488],\"mapped\",[122]],[[8489,8489],\"valid\",[],\"NV8\"],[[8490,8490],\"mapped\",[107]],[[8491,8491],\"mapped\",[229]],[[8492,8492],\"mapped\",[98]],[[8493,8493],\"mapped\",[99]],[[8494,8494],\"valid\",[],\"NV8\"],[[8495,8496],\"mapped\",[101]],[[8497,8497],\"mapped\",[102]],[[8498,8498],\"disallowed\"],[[8499,8499],\"mapped\",[109]],[[8500,8500],\"mapped\",[111]],[[8501,8501],\"mapped\",[1488]],[[8502,8502],\"mapped\",[1489]],[[8503,8503],\"mapped\",[1490]],[[8504,8504],\"mapped\",[1491]],[[8505,8505],\"mapped\",[105]],[[8506,8506],\"valid\",[],\"NV8\"],[[8507,8507],\"mapped\",[102,97,120]],[[8508,8508],\"mapped\",[960]],[[8509,8510],\"mapped\",[947]],[[8511,8511],\"mapped\",[960]],[[8512,8512],\"mapped\",[8721]],[[8513,8516],\"valid\",[],\"NV8\"],[[8517,8518],\"mapped\",[100]],[[8519,8519],\"mapped\",[101]],[[8520,8520],\"mapped\",[105]],[[8521,8521],\"mapped\",[106]],[[8522,8523],\"valid\",[],\"NV8\"],[[8524,8524],\"valid\",[],\"NV8\"],[[8525,8525],\"valid\",[],\"NV8\"],[[8526,8526],\"valid\"],[[8527,8527],\"valid\",[],\"NV8\"],[[8528,8528],\"mapped\",[49,8260,55]],[[8529,8529],\"mapped\",[49,8260,57]],[[8530,8530],\"mapped\",[49,8260,49,48]],[[8531,8531],\"mapped\",[49,8260,51]],[[8532,8532],\"mapped\",[50,8260,51]],[[8533,8533],\"mapped\",[49,8260,53]],[[8534,8534],\"mapped\",[50,8260,53]],[[8535,8535],\"mapped\",[51,8260,53]],[[8536,8536],\"mapped\",[52,8260,53]],[[8537,8537],\"mapped\",[49,8260,54]],[[8538,8538],\"mapped\",[53,8260,54]],[[8539,8539],\"mapped\",[49,8260,56]],[[8540,8540],\"mapped\",[51,8260,56]],[[8541,8541],\"mapped\",[53,8260,56]],[[8542,8542],\"mapped\",[55,8260,56]],[[8543,8543],\"mapped\",[49,8260]],[[8544,8544],\"mapped\",[105]],[[8545,8545],\"mapped\",[105,105]],[[8546,8546],\"mapped\",[105,105,105]],[[8547,8547],\"mapped\",[105,118]],[[8548,8548],\"mapped\",[118]],[[8549,8549],\"mapped\",[118,105]],[[8550,8550],\"mapped\",[118,105,105]],[[8551,8551],\"mapped\",[118,105,105,105]],[[8552,8552],\"mapped\",[105,120]],[[8553,8553],\"mapped\",[120]],[[8554,8554],\"mapped\",[120,105]],[[8555,8555],\"mapped\",[120,105,105]],[[8556,8556],\"mapped\",[108]],[[8557,8557],\"mapped\",[99]],[[8558,8558],\"mapped\",[100]],[[8559,8559],\"mapped\",[109]],[[8560,8560],\"mapped\",[105]],[[8561,8561],\"mapped\",[105,105]],[[8562,8562],\"mapped\",[105,105,105]],[[8563,8563],\"mapped\",[105,118]],[[8564,8564],\"mapped\",[118]],[[8565,8565],\"mapped\",[118,105]],[[8566,8566],\"mapped\",[118,105,105]],[[8567,8567],\"mapped\",[118,105,105,105]],[[8568,8568],\"mapped\",[105,120]],[[8569,8569],\"mapped\",[120]],[[8570,8570],\"mapped\",[120,105]],[[8571,8571],\"mapped\",[120,105,105]],[[8572,8572],\"mapped\",[108]],[[8573,8573],\"mapped\",[99]],[[8574,8574],\"mapped\",[100]],[[8575,8575],\"mapped\",[109]],[[8576,8578],\"valid\",[],\"NV8\"],[[8579,8579],\"disallowed\"],[[8580,8580],\"valid\"],[[8581,8584],\"valid\",[],\"NV8\"],[[8585,8585],\"mapped\",[48,8260,51]],[[8586,8587],\"valid\",[],\"NV8\"],[[8588,8591],\"disallowed\"],[[8592,8682],\"valid\",[],\"NV8\"],[[8683,8691],\"valid\",[],\"NV8\"],[[8692,8703],\"valid\",[],\"NV8\"],[[8704,8747],\"valid\",[],\"NV8\"],[[8748,8748],\"mapped\",[8747,8747]],[[8749,8749],\"mapped\",[8747,8747,8747]],[[8750,8750],\"valid\",[],\"NV8\"],[[8751,8751],\"mapped\",[8750,8750]],[[8752,8752],\"mapped\",[8750,8750,8750]],[[8753,8799],\"valid\",[],\"NV8\"],[[8800,8800],\"disallowed_STD3_valid\"],[[8801,8813],\"valid\",[],\"NV8\"],[[8814,8815],\"disallowed_STD3_valid\"],[[8816,8945],\"valid\",[],\"NV8\"],[[8946,8959],\"valid\",[],\"NV8\"],[[8960,8960],\"valid\",[],\"NV8\"],[[8961,8961],\"valid\",[],\"NV8\"],[[8962,9000],\"valid\",[],\"NV8\"],[[9001,9001],\"mapped\",[12296]],[[9002,9002],\"mapped\",[12297]],[[9003,9082],\"valid\",[],\"NV8\"],[[9083,9083],\"valid\",[],\"NV8\"],[[9084,9084],\"valid\",[],\"NV8\"],[[9085,9114],\"valid\",[],\"NV8\"],[[9115,9166],\"valid\",[],\"NV8\"],[[9167,9168],\"valid\",[],\"NV8\"],[[9169,9179],\"valid\",[],\"NV8\"],[[9180,9191],\"valid\",[],\"NV8\"],[[9192,9192],\"valid\",[],\"NV8\"],[[9193,9203],\"valid\",[],\"NV8\"],[[9204,9210],\"valid\",[],\"NV8\"],[[9211,9215],\"disallowed\"],[[9216,9252],\"valid\",[],\"NV8\"],[[9253,9254],\"valid\",[],\"NV8\"],[[9255,9279],\"disallowed\"],[[9280,9290],\"valid\",[],\"NV8\"],[[9291,9311],\"disallowed\"],[[9312,9312],\"mapped\",[49]],[[9313,9313],\"mapped\",[50]],[[9314,9314],\"mapped\",[51]],[[9315,9315],\"mapped\",[52]],[[9316,9316],\"mapped\",[53]],[[9317,9317],\"mapped\",[54]],[[9318,9318],\"mapped\",[55]],[[9319,9319],\"mapped\",[56]],[[9320,9320],\"mapped\",[57]],[[9321,9321],\"mapped\",[49,48]],[[9322,9322],\"mapped\",[49,49]],[[9323,9323],\"mapped\",[49,50]],[[9324,9324],\"mapped\",[49,51]],[[9325,9325],\"mapped\",[49,52]],[[9326,9326],\"mapped\",[49,53]],[[9327,9327],\"mapped\",[49,54]],[[9328,9328],\"mapped\",[49,55]],[[9329,9329],\"mapped\",[49,56]],[[9330,9330],\"mapped\",[49,57]],[[9331,9331],\"mapped\",[50,48]],[[9332,9332],\"disallowed_STD3_mapped\",[40,49,41]],[[9333,9333],\"disallowed_STD3_mapped\",[40,50,41]],[[9334,9334],\"disallowed_STD3_mapped\",[40,51,41]],[[9335,9335],\"disallowed_STD3_mapped\",[40,52,41]],[[9336,9336],\"disallowed_STD3_mapped\",[40,53,41]],[[9337,9337],\"disallowed_STD3_mapped\",[40,54,41]],[[9338,9338],\"disallowed_STD3_mapped\",[40,55,41]],[[9339,9339],\"disallowed_STD3_mapped\",[40,56,41]],[[9340,9340],\"disallowed_STD3_mapped\",[40,57,41]],[[9341,9341],\"disallowed_STD3_mapped\",[40,49,48,41]],[[9342,9342],\"disallowed_STD3_mapped\",[40,49,49,41]],[[9343,9343],\"disallowed_STD3_mapped\",[40,49,50,41]],[[9344,9344],\"disallowed_STD3_mapped\",[40,49,51,41]],[[9345,9345],\"disallowed_STD3_mapped\",[40,49,52,41]],[[9346,9346],\"disallowed_STD3_mapped\",[40,49,53,41]],[[9347,9347],\"disallowed_STD3_mapped\",[40,49,54,41]],[[9348,9348],\"disallowed_STD3_mapped\",[40,49,55,41]],[[9349,9349],\"disallowed_STD3_mapped\",[40,49,56,41]],[[9350,9350],\"disallowed_STD3_mapped\",[40,49,57,41]],[[9351,9351],\"disallowed_STD3_mapped\",[40,50,48,41]],[[9352,9371],\"disallowed\"],[[9372,9372],\"disallowed_STD3_mapped\",[40,97,41]],[[9373,9373],\"disallowed_STD3_mapped\",[40,98,41]],[[9374,9374],\"disallowed_STD3_mapped\",[40,99,41]],[[9375,9375],\"disallowed_STD3_mapped\",[40,100,41]],[[9376,9376],\"disallowed_STD3_mapped\",[40,101,41]],[[9377,9377],\"disallowed_STD3_mapped\",[40,102,41]],[[9378,9378],\"disallowed_STD3_mapped\",[40,103,41]],[[9379,9379],\"disallowed_STD3_mapped\",[40,104,41]],[[9380,9380],\"disallowed_STD3_mapped\",[40,105,41]],[[9381,9381],\"disallowed_STD3_mapped\",[40,106,41]],[[9382,9382],\"disallowed_STD3_mapped\",[40,107,41]],[[9383,9383],\"disallowed_STD3_mapped\",[40,108,41]],[[9384,9384],\"disallowed_STD3_mapped\",[40,109,41]],[[9385,9385],\"disallowed_STD3_mapped\",[40,110,41]],[[9386,9386],\"disallowed_STD3_mapped\",[40,111,41]],[[9387,9387],\"disallowed_STD3_mapped\",[40,112,41]],[[9388,9388],\"disallowed_STD3_mapped\",[40,113,41]],[[9389,9389],\"disallowed_STD3_mapped\",[40,114,41]],[[9390,9390],\"disallowed_STD3_mapped\",[40,115,41]],[[9391,9391],\"disallowed_STD3_mapped\",[40,116,41]],[[9392,9392],\"disallowed_STD3_mapped\",[40,117,41]],[[9393,9393],\"disallowed_STD3_mapped\",[40,118,41]],[[9394,9394],\"disallowed_STD3_mapped\",[40,119,41]],[[9395,9395],\"disallowed_STD3_mapped\",[40,120,41]],[[9396,9396],\"disallowed_STD3_mapped\",[40,121,41]],[[9397,9397],\"disallowed_STD3_mapped\",[40,122,41]],[[9398,9398],\"mapped\",[97]],[[9399,9399],\"mapped\",[98]],[[9400,9400],\"mapped\",[99]],[[9401,9401],\"mapped\",[100]],[[9402,9402],\"mapped\",[101]],[[9403,9403],\"mapped\",[102]],[[9404,9404],\"mapped\",[103]],[[9405,9405],\"mapped\",[104]],[[9406,9406],\"mapped\",[105]],[[9407,9407],\"mapped\",[106]],[[9408,9408],\"mapped\",[107]],[[9409,9409],\"mapped\",[108]],[[9410,9410],\"mapped\",[109]],[[9411,9411],\"mapped\",[110]],[[9412,9412],\"mapped\",[111]],[[9413,9413],\"mapped\",[112]],[[9414,9414],\"mapped\",[113]],[[9415,9415],\"mapped\",[114]],[[9416,9416],\"mapped\",[115]],[[9417,9417],\"mapped\",[116]],[[9418,9418],\"mapped\",[117]],[[9419,9419],\"mapped\",[118]],[[9420,9420],\"mapped\",[119]],[[9421,9421],\"mapped\",[120]],[[9422,9422],\"mapped\",[121]],[[9423,9423],\"mapped\",[122]],[[9424,9424],\"mapped\",[97]],[[9425,9425],\"mapped\",[98]],[[9426,9426],\"mapped\",[99]],[[9427,9427],\"mapped\",[100]],[[9428,9428],\"mapped\",[101]],[[9429,9429],\"mapped\",[102]],[[9430,9430],\"mapped\",[103]],[[9431,9431],\"mapped\",[104]],[[9432,9432],\"mapped\",[105]],[[9433,9433],\"mapped\",[106]],[[9434,9434],\"mapped\",[107]],[[9435,9435],\"mapped\",[108]],[[9436,9436],\"mapped\",[109]],[[9437,9437],\"mapped\",[110]],[[9438,9438],\"mapped\",[111]],[[9439,9439],\"mapped\",[112]],[[9440,9440],\"mapped\",[113]],[[9441,9441],\"mapped\",[114]],[[9442,9442],\"mapped\",[115]],[[9443,9443],\"mapped\",[116]],[[9444,9444],\"mapped\",[117]],[[9445,9445],\"mapped\",[118]],[[9446,9446],\"mapped\",[119]],[[9447,9447],\"mapped\",[120]],[[9448,9448],\"mapped\",[121]],[[9449,9449],\"mapped\",[122]],[[9450,9450],\"mapped\",[48]],[[9451,9470],\"valid\",[],\"NV8\"],[[9471,9471],\"valid\",[],\"NV8\"],[[9472,9621],\"valid\",[],\"NV8\"],[[9622,9631],\"valid\",[],\"NV8\"],[[9632,9711],\"valid\",[],\"NV8\"],[[9712,9719],\"valid\",[],\"NV8\"],[[9720,9727],\"valid\",[],\"NV8\"],[[9728,9747],\"valid\",[],\"NV8\"],[[9748,9749],\"valid\",[],\"NV8\"],[[9750,9751],\"valid\",[],\"NV8\"],[[9752,9752],\"valid\",[],\"NV8\"],[[9753,9753],\"valid\",[],\"NV8\"],[[9754,9839],\"valid\",[],\"NV8\"],[[9840,9841],\"valid\",[],\"NV8\"],[[9842,9853],\"valid\",[],\"NV8\"],[[9854,9855],\"valid\",[],\"NV8\"],[[9856,9865],\"valid\",[],\"NV8\"],[[9866,9873],\"valid\",[],\"NV8\"],[[9874,9884],\"valid\",[],\"NV8\"],[[9885,9885],\"valid\",[],\"NV8\"],[[9886,9887],\"valid\",[],\"NV8\"],[[9888,9889],\"valid\",[],\"NV8\"],[[9890,9905],\"valid\",[],\"NV8\"],[[9906,9906],\"valid\",[],\"NV8\"],[[9907,9916],\"valid\",[],\"NV8\"],[[9917,9919],\"valid\",[],\"NV8\"],[[9920,9923],\"valid\",[],\"NV8\"],[[9924,9933],\"valid\",[],\"NV8\"],[[9934,9934],\"valid\",[],\"NV8\"],[[9935,9953],\"valid\",[],\"NV8\"],[[9954,9954],\"valid\",[],\"NV8\"],[[9955,9955],\"valid\",[],\"NV8\"],[[9956,9959],\"valid\",[],\"NV8\"],[[9960,9983],\"valid\",[],\"NV8\"],[[9984,9984],\"valid\",[],\"NV8\"],[[9985,9988],\"valid\",[],\"NV8\"],[[9989,9989],\"valid\",[],\"NV8\"],[[9990,9993],\"valid\",[],\"NV8\"],[[9994,9995],\"valid\",[],\"NV8\"],[[9996,10023],\"valid\",[],\"NV8\"],[[10024,10024],\"valid\",[],\"NV8\"],[[10025,10059],\"valid\",[],\"NV8\"],[[10060,10060],\"valid\",[],\"NV8\"],[[10061,10061],\"valid\",[],\"NV8\"],[[10062,10062],\"valid\",[],\"NV8\"],[[10063,10066],\"valid\",[],\"NV8\"],[[10067,10069],\"valid\",[],\"NV8\"],[[10070,10070],\"valid\",[],\"NV8\"],[[10071,10071],\"valid\",[],\"NV8\"],[[10072,10078],\"valid\",[],\"NV8\"],[[10079,10080],\"valid\",[],\"NV8\"],[[10081,10087],\"valid\",[],\"NV8\"],[[10088,10101],\"valid\",[],\"NV8\"],[[10102,10132],\"valid\",[],\"NV8\"],[[10133,10135],\"valid\",[],\"NV8\"],[[10136,10159],\"valid\",[],\"NV8\"],[[10160,10160],\"valid\",[],\"NV8\"],[[10161,10174],\"valid\",[],\"NV8\"],[[10175,10175],\"valid\",[],\"NV8\"],[[10176,10182],\"valid\",[],\"NV8\"],[[10183,10186],\"valid\",[],\"NV8\"],[[10187,10187],\"valid\",[],\"NV8\"],[[10188,10188],\"valid\",[],\"NV8\"],[[10189,10189],\"valid\",[],\"NV8\"],[[10190,10191],\"valid\",[],\"NV8\"],[[10192,10219],\"valid\",[],\"NV8\"],[[10220,10223],\"valid\",[],\"NV8\"],[[10224,10239],\"valid\",[],\"NV8\"],[[10240,10495],\"valid\",[],\"NV8\"],[[10496,10763],\"valid\",[],\"NV8\"],[[10764,10764],\"mapped\",[8747,8747,8747,8747]],[[10765,10867],\"valid\",[],\"NV8\"],[[10868,10868],\"disallowed_STD3_mapped\",[58,58,61]],[[10869,10869],\"disallowed_STD3_mapped\",[61,61]],[[10870,10870],\"disallowed_STD3_mapped\",[61,61,61]],[[10871,10971],\"valid\",[],\"NV8\"],[[10972,10972],\"mapped\",[10973,824]],[[10973,11007],\"valid\",[],\"NV8\"],[[11008,11021],\"valid\",[],\"NV8\"],[[11022,11027],\"valid\",[],\"NV8\"],[[11028,11034],\"valid\",[],\"NV8\"],[[11035,11039],\"valid\",[],\"NV8\"],[[11040,11043],\"valid\",[],\"NV8\"],[[11044,11084],\"valid\",[],\"NV8\"],[[11085,11087],\"valid\",[],\"NV8\"],[[11088,11092],\"valid\",[],\"NV8\"],[[11093,11097],\"valid\",[],\"NV8\"],[[11098,11123],\"valid\",[],\"NV8\"],[[11124,11125],\"disallowed\"],[[11126,11157],\"valid\",[],\"NV8\"],[[11158,11159],\"disallowed\"],[[11160,11193],\"valid\",[],\"NV8\"],[[11194,11196],\"disallowed\"],[[11197,11208],\"valid\",[],\"NV8\"],[[11209,11209],\"disallowed\"],[[11210,11217],\"valid\",[],\"NV8\"],[[11218,11243],\"disallowed\"],[[11244,11247],\"valid\",[],\"NV8\"],[[11248,11263],\"disallowed\"],[[11264,11264],\"mapped\",[11312]],[[11265,11265],\"mapped\",[11313]],[[11266,11266],\"mapped\",[11314]],[[11267,11267],\"mapped\",[11315]],[[11268,11268],\"mapped\",[11316]],[[11269,11269],\"mapped\",[11317]],[[11270,11270],\"mapped\",[11318]],[[11271,11271],\"mapped\",[11319]],[[11272,11272],\"mapped\",[11320]],[[11273,11273],\"mapped\",[11321]],[[11274,11274],\"mapped\",[11322]],[[11275,11275],\"mapped\",[11323]],[[11276,11276],\"mapped\",[11324]],[[11277,11277],\"mapped\",[11325]],[[11278,11278],\"mapped\",[11326]],[[11279,11279],\"mapped\",[11327]],[[11280,11280],\"mapped\",[11328]],[[11281,11281],\"mapped\",[11329]],[[11282,11282],\"mapped\",[11330]],[[11283,11283],\"mapped\",[11331]],[[11284,11284],\"mapped\",[11332]],[[11285,11285],\"mapped\",[11333]],[[11286,11286],\"mapped\",[11334]],[[11287,11287],\"mapped\",[11335]],[[11288,11288],\"mapped\",[11336]],[[11289,11289],\"mapped\",[11337]],[[11290,11290],\"mapped\",[11338]],[[11291,11291],\"mapped\",[11339]],[[11292,11292],\"mapped\",[11340]],[[11293,11293],\"mapped\",[11341]],[[11294,11294],\"mapped\",[11342]],[[11295,11295],\"mapped\",[11343]],[[11296,11296],\"mapped\",[11344]],[[11297,11297],\"mapped\",[11345]],[[11298,11298],\"mapped\",[11346]],[[11299,11299],\"mapped\",[11347]],[[11300,11300],\"mapped\",[11348]],[[11301,11301],\"mapped\",[11349]],[[11302,11302],\"mapped\",[11350]],[[11303,11303],\"mapped\",[11351]],[[11304,11304],\"mapped\",[11352]],[[11305,11305],\"mapped\",[11353]],[[11306,11306],\"mapped\",[11354]],[[11307,11307],\"mapped\",[11355]],[[11308,11308],\"mapped\",[11356]],[[11309,11309],\"mapped\",[11357]],[[11310,11310],\"mapped\",[11358]],[[11311,11311],\"disallowed\"],[[11312,11358],\"valid\"],[[11359,11359],\"disallowed\"],[[11360,11360],\"mapped\",[11361]],[[11361,11361],\"valid\"],[[11362,11362],\"mapped\",[619]],[[11363,11363],\"mapped\",[7549]],[[11364,11364],\"mapped\",[637]],[[11365,11366],\"valid\"],[[11367,11367],\"mapped\",[11368]],[[11368,11368],\"valid\"],[[11369,11369],\"mapped\",[11370]],[[11370,11370],\"valid\"],[[11371,11371],\"mapped\",[11372]],[[11372,11372],\"valid\"],[[11373,11373],\"mapped\",[593]],[[11374,11374],\"mapped\",[625]],[[11375,11375],\"mapped\",[592]],[[11376,11376],\"mapped\",[594]],[[11377,11377],\"valid\"],[[11378,11378],\"mapped\",[11379]],[[11379,11379],\"valid\"],[[11380,11380],\"valid\"],[[11381,11381],\"mapped\",[11382]],[[11382,11383],\"valid\"],[[11384,11387],\"valid\"],[[11388,11388],\"mapped\",[106]],[[11389,11389],\"mapped\",[118]],[[11390,11390],\"mapped\",[575]],[[11391,11391],\"mapped\",[576]],[[11392,11392],\"mapped\",[11393]],[[11393,11393],\"valid\"],[[11394,11394],\"mapped\",[11395]],[[11395,11395],\"valid\"],[[11396,11396],\"mapped\",[11397]],[[11397,11397],\"valid\"],[[11398,11398],\"mapped\",[11399]],[[11399,11399],\"valid\"],[[11400,11400],\"mapped\",[11401]],[[11401,11401],\"valid\"],[[11402,11402],\"mapped\",[11403]],[[11403,11403],\"valid\"],[[11404,11404],\"mapped\",[11405]],[[11405,11405],\"valid\"],[[11406,11406],\"mapped\",[11407]],[[11407,11407],\"valid\"],[[11408,11408],\"mapped\",[11409]],[[11409,11409],\"valid\"],[[11410,11410],\"mapped\",[11411]],[[11411,11411],\"valid\"],[[11412,11412],\"mapped\",[11413]],[[11413,11413],\"valid\"],[[11414,11414],\"mapped\",[11415]],[[11415,11415],\"valid\"],[[11416,11416],\"mapped\",[11417]],[[11417,11417],\"valid\"],[[11418,11418],\"mapped\",[11419]],[[11419,11419],\"valid\"],[[11420,11420],\"mapped\",[11421]],[[11421,11421],\"valid\"],[[11422,11422],\"mapped\",[11423]],[[11423,11423],\"valid\"],[[11424,11424],\"mapped\",[11425]],[[11425,11425],\"valid\"],[[11426,11426],\"mapped\",[11427]],[[11427,11427],\"valid\"],[[11428,11428],\"mapped\",[11429]],[[11429,11429],\"valid\"],[[11430,11430],\"mapped\",[11431]],[[11431,11431],\"valid\"],[[11432,11432],\"mapped\",[11433]],[[11433,11433],\"valid\"],[[11434,11434],\"mapped\",[11435]],[[11435,11435],\"valid\"],[[11436,11436],\"mapped\",[11437]],[[11437,11437],\"valid\"],[[11438,11438],\"mapped\",[11439]],[[11439,11439],\"valid\"],[[11440,11440],\"mapped\",[11441]],[[11441,11441],\"valid\"],[[11442,11442],\"mapped\",[11443]],[[11443,11443],\"valid\"],[[11444,11444],\"mapped\",[11445]],[[11445,11445],\"valid\"],[[11446,11446],\"mapped\",[11447]],[[11447,11447],\"valid\"],[[11448,11448],\"mapped\",[11449]],[[11449,11449],\"valid\"],[[11450,11450],\"mapped\",[11451]],[[11451,11451],\"valid\"],[[11452,11452],\"mapped\",[11453]],[[11453,11453],\"valid\"],[[11454,11454],\"mapped\",[11455]],[[11455,11455],\"valid\"],[[11456,11456],\"mapped\",[11457]],[[11457,11457],\"valid\"],[[11458,11458],\"mapped\",[11459]],[[11459,11459],\"valid\"],[[11460,11460],\"mapped\",[11461]],[[11461,11461],\"valid\"],[[11462,11462],\"mapped\",[11463]],[[11463,11463],\"valid\"],[[11464,11464],\"mapped\",[11465]],[[11465,11465],\"valid\"],[[11466,11466],\"mapped\",[11467]],[[11467,11467],\"valid\"],[[11468,11468],\"mapped\",[11469]],[[11469,11469],\"valid\"],[[11470,11470],\"mapped\",[11471]],[[11471,11471],\"valid\"],[[11472,11472],\"mapped\",[11473]],[[11473,11473],\"valid\"],[[11474,11474],\"mapped\",[11475]],[[11475,11475],\"valid\"],[[11476,11476],\"mapped\",[11477]],[[11477,11477],\"valid\"],[[11478,11478],\"mapped\",[11479]],[[11479,11479],\"valid\"],[[11480,11480],\"mapped\",[11481]],[[11481,11481],\"valid\"],[[11482,11482],\"mapped\",[11483]],[[11483,11483],\"valid\"],[[11484,11484],\"mapped\",[11485]],[[11485,11485],\"valid\"],[[11486,11486],\"mapped\",[11487]],[[11487,11487],\"valid\"],[[11488,11488],\"mapped\",[11489]],[[11489,11489],\"valid\"],[[11490,11490],\"mapped\",[11491]],[[11491,11492],\"valid\"],[[11493,11498],\"valid\",[],\"NV8\"],[[11499,11499],\"mapped\",[11500]],[[11500,11500],\"valid\"],[[11501,11501],\"mapped\",[11502]],[[11502,11505],\"valid\"],[[11506,11506],\"mapped\",[11507]],[[11507,11507],\"valid\"],[[11508,11512],\"disallowed\"],[[11513,11519],\"valid\",[],\"NV8\"],[[11520,11557],\"valid\"],[[11558,11558],\"disallowed\"],[[11559,11559],\"valid\"],[[11560,11564],\"disallowed\"],[[11565,11565],\"valid\"],[[11566,11567],\"disallowed\"],[[11568,11621],\"valid\"],[[11622,11623],\"valid\"],[[11624,11630],\"disallowed\"],[[11631,11631],\"mapped\",[11617]],[[11632,11632],\"valid\",[],\"NV8\"],[[11633,11646],\"disallowed\"],[[11647,11647],\"valid\"],[[11648,11670],\"valid\"],[[11671,11679],\"disallowed\"],[[11680,11686],\"valid\"],[[11687,11687],\"disallowed\"],[[11688,11694],\"valid\"],[[11695,11695],\"disallowed\"],[[11696,11702],\"valid\"],[[11703,11703],\"disallowed\"],[[11704,11710],\"valid\"],[[11711,11711],\"disallowed\"],[[11712,11718],\"valid\"],[[11719,11719],\"disallowed\"],[[11720,11726],\"valid\"],[[11727,11727],\"disallowed\"],[[11728,11734],\"valid\"],[[11735,11735],\"disallowed\"],[[11736,11742],\"valid\"],[[11743,11743],\"disallowed\"],[[11744,11775],\"valid\"],[[11776,11799],\"valid\",[],\"NV8\"],[[11800,11803],\"valid\",[],\"NV8\"],[[11804,11805],\"valid\",[],\"NV8\"],[[11806,11822],\"valid\",[],\"NV8\"],[[11823,11823],\"valid\"],[[11824,11824],\"valid\",[],\"NV8\"],[[11825,11825],\"valid\",[],\"NV8\"],[[11826,11835],\"valid\",[],\"NV8\"],[[11836,11842],\"valid\",[],\"NV8\"],[[11843,11903],\"disallowed\"],[[11904,11929],\"valid\",[],\"NV8\"],[[11930,11930],\"disallowed\"],[[11931,11934],\"valid\",[],\"NV8\"],[[11935,11935],\"mapped\",[27597]],[[11936,12018],\"valid\",[],\"NV8\"],[[12019,12019],\"mapped\",[40863]],[[12020,12031],\"disallowed\"],[[12032,12032],\"mapped\",[19968]],[[12033,12033],\"mapped\",[20008]],[[12034,12034],\"mapped\",[20022]],[[12035,12035],\"mapped\",[20031]],[[12036,12036],\"mapped\",[20057]],[[12037,12037],\"mapped\",[20101]],[[12038,12038],\"mapped\",[20108]],[[12039,12039],\"mapped\",[20128]],[[12040,12040],\"mapped\",[20154]],[[12041,12041],\"mapped\",[20799]],[[12042,12042],\"mapped\",[20837]],[[12043,12043],\"mapped\",[20843]],[[12044,12044],\"mapped\",[20866]],[[12045,12045],\"mapped\",[20886]],[[12046,12046],\"mapped\",[20907]],[[12047,12047],\"mapped\",[20960]],[[12048,12048],\"mapped\",[20981]],[[12049,12049],\"mapped\",[20992]],[[12050,12050],\"mapped\",[21147]],[[12051,12051],\"mapped\",[21241]],[[12052,12052],\"mapped\",[21269]],[[12053,12053],\"mapped\",[21274]],[[12054,12054],\"mapped\",[21304]],[[12055,12055],\"mapped\",[21313]],[[12056,12056],\"mapped\",[21340]],[[12057,12057],\"mapped\",[21353]],[[12058,12058],\"mapped\",[21378]],[[12059,12059],\"mapped\",[21430]],[[12060,12060],\"mapped\",[21448]],[[12061,12061],\"mapped\",[21475]],[[12062,12062],\"mapped\",[22231]],[[12063,12063],\"mapped\",[22303]],[[12064,12064],\"mapped\",[22763]],[[12065,12065],\"mapped\",[22786]],[[12066,12066],\"mapped\",[22794]],[[12067,12067],\"mapped\",[22805]],[[12068,12068],\"mapped\",[22823]],[[12069,12069],\"mapped\",[22899]],[[12070,12070],\"mapped\",[23376]],[[12071,12071],\"mapped\",[23424]],[[12072,12072],\"mapped\",[23544]],[[12073,12073],\"mapped\",[23567]],[[12074,12074],\"mapped\",[23586]],[[12075,12075],\"mapped\",[23608]],[[12076,12076],\"mapped\",[23662]],[[12077,12077],\"mapped\",[23665]],[[12078,12078],\"mapped\",[24027]],[[12079,12079],\"mapped\",[24037]],[[12080,12080],\"mapped\",[24049]],[[12081,12081],\"mapped\",[24062]],[[12082,12082],\"mapped\",[24178]],[[12083,12083],\"mapped\",[24186]],[[12084,12084],\"mapped\",[24191]],[[12085,12085],\"mapped\",[24308]],[[12086,12086],\"mapped\",[24318]],[[12087,12087],\"mapped\",[24331]],[[12088,12088],\"mapped\",[24339]],[[12089,12089],\"mapped\",[24400]],[[12090,12090],\"mapped\",[24417]],[[12091,12091],\"mapped\",[24435]],[[12092,12092],\"mapped\",[24515]],[[12093,12093],\"mapped\",[25096]],[[12094,12094],\"mapped\",[25142]],[[12095,12095],\"mapped\",[25163]],[[12096,12096],\"mapped\",[25903]],[[12097,12097],\"mapped\",[25908]],[[12098,12098],\"mapped\",[25991]],[[12099,12099],\"mapped\",[26007]],[[12100,12100],\"mapped\",[26020]],[[12101,12101],\"mapped\",[26041]],[[12102,12102],\"mapped\",[26080]],[[12103,12103],\"mapped\",[26085]],[[12104,12104],\"mapped\",[26352]],[[12105,12105],\"mapped\",[26376]],[[12106,12106],\"mapped\",[26408]],[[12107,12107],\"mapped\",[27424]],[[12108,12108],\"mapped\",[27490]],[[12109,12109],\"mapped\",[27513]],[[12110,12110],\"mapped\",[27571]],[[12111,12111],\"mapped\",[27595]],[[12112,12112],\"mapped\",[27604]],[[12113,12113],\"mapped\",[27611]],[[12114,12114],\"mapped\",[27663]],[[12115,12115],\"mapped\",[27668]],[[12116,12116],\"mapped\",[27700]],[[12117,12117],\"mapped\",[28779]],[[12118,12118],\"mapped\",[29226]],[[12119,12119],\"mapped\",[29238]],[[12120,12120],\"mapped\",[29243]],[[12121,12121],\"mapped\",[29247]],[[12122,12122],\"mapped\",[29255]],[[12123,12123],\"mapped\",[29273]],[[12124,12124],\"mapped\",[29275]],[[12125,12125],\"mapped\",[29356]],[[12126,12126],\"mapped\",[29572]],[[12127,12127],\"mapped\",[29577]],[[12128,12128],\"mapped\",[29916]],[[12129,12129],\"mapped\",[29926]],[[12130,12130],\"mapped\",[29976]],[[12131,12131],\"mapped\",[29983]],[[12132,12132],\"mapped\",[29992]],[[12133,12133],\"mapped\",[30000]],[[12134,12134],\"mapped\",[30091]],[[12135,12135],\"mapped\",[30098]],[[12136,12136],\"mapped\",[30326]],[[12137,12137],\"mapped\",[30333]],[[12138,12138],\"mapped\",[30382]],[[12139,12139],\"mapped\",[30399]],[[12140,12140],\"mapped\",[30446]],[[12141,12141],\"mapped\",[30683]],[[12142,12142],\"mapped\",[30690]],[[12143,12143],\"mapped\",[30707]],[[12144,12144],\"mapped\",[31034]],[[12145,12145],\"mapped\",[31160]],[[12146,12146],\"mapped\",[31166]],[[12147,12147],\"mapped\",[31348]],[[12148,12148],\"mapped\",[31435]],[[12149,12149],\"mapped\",[31481]],[[12150,12150],\"mapped\",[31859]],[[12151,12151],\"mapped\",[31992]],[[12152,12152],\"mapped\",[32566]],[[12153,12153],\"mapped\",[32593]],[[12154,12154],\"mapped\",[32650]],[[12155,12155],\"mapped\",[32701]],[[12156,12156],\"mapped\",[32769]],[[12157,12157],\"mapped\",[32780]],[[12158,12158],\"mapped\",[32786]],[[12159,12159],\"mapped\",[32819]],[[12160,12160],\"mapped\",[32895]],[[12161,12161],\"mapped\",[32905]],[[12162,12162],\"mapped\",[33251]],[[12163,12163],\"mapped\",[33258]],[[12164,12164],\"mapped\",[33267]],[[12165,12165],\"mapped\",[33276]],[[12166,12166],\"mapped\",[33292]],[[12167,12167],\"mapped\",[33307]],[[12168,12168],\"mapped\",[33311]],[[12169,12169],\"mapped\",[33390]],[[12170,12170],\"mapped\",[33394]],[[12171,12171],\"mapped\",[33400]],[[12172,12172],\"mapped\",[34381]],[[12173,12173],\"mapped\",[34411]],[[12174,12174],\"mapped\",[34880]],[[12175,12175],\"mapped\",[34892]],[[12176,12176],\"mapped\",[34915]],[[12177,12177],\"mapped\",[35198]],[[12178,12178],\"mapped\",[35211]],[[12179,12179],\"mapped\",[35282]],[[12180,12180],\"mapped\",[35328]],[[12181,12181],\"mapped\",[35895]],[[12182,12182],\"mapped\",[35910]],[[12183,12183],\"mapped\",[35925]],[[12184,12184],\"mapped\",[35960]],[[12185,12185],\"mapped\",[35997]],[[12186,12186],\"mapped\",[36196]],[[12187,12187],\"mapped\",[36208]],[[12188,12188],\"mapped\",[36275]],[[12189,12189],\"mapped\",[36523]],[[12190,12190],\"mapped\",[36554]],[[12191,12191],\"mapped\",[36763]],[[12192,12192],\"mapped\",[36784]],[[12193,12193],\"mapped\",[36789]],[[12194,12194],\"mapped\",[37009]],[[12195,12195],\"mapped\",[37193]],[[12196,12196],\"mapped\",[37318]],[[12197,12197],\"mapped\",[37324]],[[12198,12198],\"mapped\",[37329]],[[12199,12199],\"mapped\",[38263]],[[12200,12200],\"mapped\",[38272]],[[12201,12201],\"mapped\",[38428]],[[12202,12202],\"mapped\",[38582]],[[12203,12203],\"mapped\",[38585]],[[12204,12204],\"mapped\",[38632]],[[12205,12205],\"mapped\",[38737]],[[12206,12206],\"mapped\",[38750]],[[12207,12207],\"mapped\",[38754]],[[12208,12208],\"mapped\",[38761]],[[12209,12209],\"mapped\",[38859]],[[12210,12210],\"mapped\",[38893]],[[12211,12211],\"mapped\",[38899]],[[12212,12212],\"mapped\",[38913]],[[12213,12213],\"mapped\",[39080]],[[12214,12214],\"mapped\",[39131]],[[12215,12215],\"mapped\",[39135]],[[12216,12216],\"mapped\",[39318]],[[12217,12217],\"mapped\",[39321]],[[12218,12218],\"mapped\",[39340]],[[12219,12219],\"mapped\",[39592]],[[12220,12220],\"mapped\",[39640]],[[12221,12221],\"mapped\",[39647]],[[12222,12222],\"mapped\",[39717]],[[12223,12223],\"mapped\",[39727]],[[12224,12224],\"mapped\",[39730]],[[12225,12225],\"mapped\",[39740]],[[12226,12226],\"mapped\",[39770]],[[12227,12227],\"mapped\",[40165]],[[12228,12228],\"mapped\",[40565]],[[12229,12229],\"mapped\",[40575]],[[12230,12230],\"mapped\",[40613]],[[12231,12231],\"mapped\",[40635]],[[12232,12232],\"mapped\",[40643]],[[12233,12233],\"mapped\",[40653]],[[12234,12234],\"mapped\",[40657]],[[12235,12235],\"mapped\",[40697]],[[12236,12236],\"mapped\",[40701]],[[12237,12237],\"mapped\",[40718]],[[12238,12238],\"mapped\",[40723]],[[12239,12239],\"mapped\",[40736]],[[12240,12240],\"mapped\",[40763]],[[12241,12241],\"mapped\",[40778]],[[12242,12242],\"mapped\",[40786]],[[12243,12243],\"mapped\",[40845]],[[12244,12244],\"mapped\",[40860]],[[12245,12245],\"mapped\",[40864]],[[12246,12271],\"disallowed\"],[[12272,12283],\"disallowed\"],[[12284,12287],\"disallowed\"],[[12288,12288],\"disallowed_STD3_mapped\",[32]],[[12289,12289],\"valid\",[],\"NV8\"],[[12290,12290],\"mapped\",[46]],[[12291,12292],\"valid\",[],\"NV8\"],[[12293,12295],\"valid\"],[[12296,12329],\"valid\",[],\"NV8\"],[[12330,12333],\"valid\"],[[12334,12341],\"valid\",[],\"NV8\"],[[12342,12342],\"mapped\",[12306]],[[12343,12343],\"valid\",[],\"NV8\"],[[12344,12344],\"mapped\",[21313]],[[12345,12345],\"mapped\",[21316]],[[12346,12346],\"mapped\",[21317]],[[12347,12347],\"valid\",[],\"NV8\"],[[12348,12348],\"valid\"],[[12349,12349],\"valid\",[],\"NV8\"],[[12350,12350],\"valid\",[],\"NV8\"],[[12351,12351],\"valid\",[],\"NV8\"],[[12352,12352],\"disallowed\"],[[12353,12436],\"valid\"],[[12437,12438],\"valid\"],[[12439,12440],\"disallowed\"],[[12441,12442],\"valid\"],[[12443,12443],\"disallowed_STD3_mapped\",[32,12441]],[[12444,12444],\"disallowed_STD3_mapped\",[32,12442]],[[12445,12446],\"valid\"],[[12447,12447],\"mapped\",[12424,12426]],[[12448,12448],\"valid\",[],\"NV8\"],[[12449,12542],\"valid\"],[[12543,12543],\"mapped\",[12467,12488]],[[12544,12548],\"disallowed\"],[[12549,12588],\"valid\"],[[12589,12589],\"valid\"],[[12590,12592],\"disallowed\"],[[12593,12593],\"mapped\",[4352]],[[12594,12594],\"mapped\",[4353]],[[12595,12595],\"mapped\",[4522]],[[12596,12596],\"mapped\",[4354]],[[12597,12597],\"mapped\",[4524]],[[12598,12598],\"mapped\",[4525]],[[12599,12599],\"mapped\",[4355]],[[12600,12600],\"mapped\",[4356]],[[12601,12601],\"mapped\",[4357]],[[12602,12602],\"mapped\",[4528]],[[12603,12603],\"mapped\",[4529]],[[12604,12604],\"mapped\",[4530]],[[12605,12605],\"mapped\",[4531]],[[12606,12606],\"mapped\",[4532]],[[12607,12607],\"mapped\",[4533]],[[12608,12608],\"mapped\",[4378]],[[12609,12609],\"mapped\",[4358]],[[12610,12610],\"mapped\",[4359]],[[12611,12611],\"mapped\",[4360]],[[12612,12612],\"mapped\",[4385]],[[12613,12613],\"mapped\",[4361]],[[12614,12614],\"mapped\",[4362]],[[12615,12615],\"mapped\",[4363]],[[12616,12616],\"mapped\",[4364]],[[12617,12617],\"mapped\",[4365]],[[12618,12618],\"mapped\",[4366]],[[12619,12619],\"mapped\",[4367]],[[12620,12620],\"mapped\",[4368]],[[12621,12621],\"mapped\",[4369]],[[12622,12622],\"mapped\",[4370]],[[12623,12623],\"mapped\",[4449]],[[12624,12624],\"mapped\",[4450]],[[12625,12625],\"mapped\",[4451]],[[12626,12626],\"mapped\",[4452]],[[12627,12627],\"mapped\",[4453]],[[12628,12628],\"mapped\",[4454]],[[12629,12629],\"mapped\",[4455]],[[12630,12630],\"mapped\",[4456]],[[12631,12631],\"mapped\",[4457]],[[12632,12632],\"mapped\",[4458]],[[12633,12633],\"mapped\",[4459]],[[12634,12634],\"mapped\",[4460]],[[12635,12635],\"mapped\",[4461]],[[12636,12636],\"mapped\",[4462]],[[12637,12637],\"mapped\",[4463]],[[12638,12638],\"mapped\",[4464]],[[12639,12639],\"mapped\",[4465]],[[12640,12640],\"mapped\",[4466]],[[12641,12641],\"mapped\",[4467]],[[12642,12642],\"mapped\",[4468]],[[12643,12643],\"mapped\",[4469]],[[12644,12644],\"disallowed\"],[[12645,12645],\"mapped\",[4372]],[[12646,12646],\"mapped\",[4373]],[[12647,12647],\"mapped\",[4551]],[[12648,12648],\"mapped\",[4552]],[[12649,12649],\"mapped\",[4556]],[[12650,12650],\"mapped\",[4558]],[[12651,12651],\"mapped\",[4563]],[[12652,12652],\"mapped\",[4567]],[[12653,12653],\"mapped\",[4569]],[[12654,12654],\"mapped\",[4380]],[[12655,12655],\"mapped\",[4573]],[[12656,12656],\"mapped\",[4575]],[[12657,12657],\"mapped\",[4381]],[[12658,12658],\"mapped\",[4382]],[[12659,12659],\"mapped\",[4384]],[[12660,12660],\"mapped\",[4386]],[[12661,12661],\"mapped\",[4387]],[[12662,12662],\"mapped\",[4391]],[[12663,12663],\"mapped\",[4393]],[[12664,12664],\"mapped\",[4395]],[[12665,12665],\"mapped\",[4396]],[[12666,12666],\"mapped\",[4397]],[[12667,12667],\"mapped\",[4398]],[[12668,12668],\"mapped\",[4399]],[[12669,12669],\"mapped\",[4402]],[[12670,12670],\"mapped\",[4406]],[[12671,12671],\"mapped\",[4416]],[[12672,12672],\"mapped\",[4423]],[[12673,12673],\"mapped\",[4428]],[[12674,12674],\"mapped\",[4593]],[[12675,12675],\"mapped\",[4594]],[[12676,12676],\"mapped\",[4439]],[[12677,12677],\"mapped\",[4440]],[[12678,12678],\"mapped\",[4441]],[[12679,12679],\"mapped\",[4484]],[[12680,12680],\"mapped\",[4485]],[[12681,12681],\"mapped\",[4488]],[[12682,12682],\"mapped\",[4497]],[[12683,12683],\"mapped\",[4498]],[[12684,12684],\"mapped\",[4500]],[[12685,12685],\"mapped\",[4510]],[[12686,12686],\"mapped\",[4513]],[[12687,12687],\"disallowed\"],[[12688,12689],\"valid\",[],\"NV8\"],[[12690,12690],\"mapped\",[19968]],[[12691,12691],\"mapped\",[20108]],[[12692,12692],\"mapped\",[19977]],[[12693,12693],\"mapped\",[22235]],[[12694,12694],\"mapped\",[19978]],[[12695,12695],\"mapped\",[20013]],[[12696,12696],\"mapped\",[19979]],[[12697,12697],\"mapped\",[30002]],[[12698,12698],\"mapped\",[20057]],[[12699,12699],\"mapped\",[19993]],[[12700,12700],\"mapped\",[19969]],[[12701,12701],\"mapped\",[22825]],[[12702,12702],\"mapped\",[22320]],[[12703,12703],\"mapped\",[20154]],[[12704,12727],\"valid\"],[[12728,12730],\"valid\"],[[12731,12735],\"disallowed\"],[[12736,12751],\"valid\",[],\"NV8\"],[[12752,12771],\"valid\",[],\"NV8\"],[[12772,12783],\"disallowed\"],[[12784,12799],\"valid\"],[[12800,12800],\"disallowed_STD3_mapped\",[40,4352,41]],[[12801,12801],\"disallowed_STD3_mapped\",[40,4354,41]],[[12802,12802],\"disallowed_STD3_mapped\",[40,4355,41]],[[12803,12803],\"disallowed_STD3_mapped\",[40,4357,41]],[[12804,12804],\"disallowed_STD3_mapped\",[40,4358,41]],[[12805,12805],\"disallowed_STD3_mapped\",[40,4359,41]],[[12806,12806],\"disallowed_STD3_mapped\",[40,4361,41]],[[12807,12807],\"disallowed_STD3_mapped\",[40,4363,41]],[[12808,12808],\"disallowed_STD3_mapped\",[40,4364,41]],[[12809,12809],\"disallowed_STD3_mapped\",[40,4366,41]],[[12810,12810],\"disallowed_STD3_mapped\",[40,4367,41]],[[12811,12811],\"disallowed_STD3_mapped\",[40,4368,41]],[[12812,12812],\"disallowed_STD3_mapped\",[40,4369,41]],[[12813,12813],\"disallowed_STD3_mapped\",[40,4370,41]],[[12814,12814],\"disallowed_STD3_mapped\",[40,44032,41]],[[12815,12815],\"disallowed_STD3_mapped\",[40,45208,41]],[[12816,12816],\"disallowed_STD3_mapped\",[40,45796,41]],[[12817,12817],\"disallowed_STD3_mapped\",[40,46972,41]],[[12818,12818],\"disallowed_STD3_mapped\",[40,47560,41]],[[12819,12819],\"disallowed_STD3_mapped\",[40,48148,41]],[[12820,12820],\"disallowed_STD3_mapped\",[40,49324,41]],[[12821,12821],\"disallowed_STD3_mapped\",[40,50500,41]],[[12822,12822],\"disallowed_STD3_mapped\",[40,51088,41]],[[12823,12823],\"disallowed_STD3_mapped\",[40,52264,41]],[[12824,12824],\"disallowed_STD3_mapped\",[40,52852,41]],[[12825,12825],\"disallowed_STD3_mapped\",[40,53440,41]],[[12826,12826],\"disallowed_STD3_mapped\",[40,54028,41]],[[12827,12827],\"disallowed_STD3_mapped\",[40,54616,41]],[[12828,12828],\"disallowed_STD3_mapped\",[40,51452,41]],[[12829,12829],\"disallowed_STD3_mapped\",[40,50724,51204,41]],[[12830,12830],\"disallowed_STD3_mapped\",[40,50724,54980,41]],[[12831,12831],\"disallowed\"],[[12832,12832],\"disallowed_STD3_mapped\",[40,19968,41]],[[12833,12833],\"disallowed_STD3_mapped\",[40,20108,41]],[[12834,12834],\"disallowed_STD3_mapped\",[40,19977,41]],[[12835,12835],\"disallowed_STD3_mapped\",[40,22235,41]],[[12836,12836],\"disallowed_STD3_mapped\",[40,20116,41]],[[12837,12837],\"disallowed_STD3_mapped\",[40,20845,41]],[[12838,12838],\"disallowed_STD3_mapped\",[40,19971,41]],[[12839,12839],\"disallowed_STD3_mapped\",[40,20843,41]],[[12840,12840],\"disallowed_STD3_mapped\",[40,20061,41]],[[12841,12841],\"disallowed_STD3_mapped\",[40,21313,41]],[[12842,12842],\"disallowed_STD3_mapped\",[40,26376,41]],[[12843,12843],\"disallowed_STD3_mapped\",[40,28779,41]],[[12844,12844],\"disallowed_STD3_mapped\",[40,27700,41]],[[12845,12845],\"disallowed_STD3_mapped\",[40,26408,41]],[[12846,12846],\"disallowed_STD3_mapped\",[40,37329,41]],[[12847,12847],\"disallowed_STD3_mapped\",[40,22303,41]],[[12848,12848],\"disallowed_STD3_mapped\",[40,26085,41]],[[12849,12849],\"disallowed_STD3_mapped\",[40,26666,41]],[[12850,12850],\"disallowed_STD3_mapped\",[40,26377,41]],[[12851,12851],\"disallowed_STD3_mapped\",[40,31038,41]],[[12852,12852],\"disallowed_STD3_mapped\",[40,21517,41]],[[12853,12853],\"disallowed_STD3_mapped\",[40,29305,41]],[[12854,12854],\"disallowed_STD3_mapped\",[40,36001,41]],[[12855,12855],\"disallowed_STD3_mapped\",[40,31069,41]],[[12856,12856],\"disallowed_STD3_mapped\",[40,21172,41]],[[12857,12857],\"disallowed_STD3_mapped\",[40,20195,41]],[[12858,12858],\"disallowed_STD3_mapped\",[40,21628,41]],[[12859,12859],\"disallowed_STD3_mapped\",[40,23398,41]],[[12860,12860],\"disallowed_STD3_mapped\",[40,30435,41]],[[12861,12861],\"disallowed_STD3_mapped\",[40,20225,41]],[[12862,12862],\"disallowed_STD3_mapped\",[40,36039,41]],[[12863,12863],\"disallowed_STD3_mapped\",[40,21332,41]],[[12864,12864],\"disallowed_STD3_mapped\",[40,31085,41]],[[12865,12865],\"disallowed_STD3_mapped\",[40,20241,41]],[[12866,12866],\"disallowed_STD3_mapped\",[40,33258,41]],[[12867,12867],\"disallowed_STD3_mapped\",[40,33267,41]],[[12868,12868],\"mapped\",[21839]],[[12869,12869],\"mapped\",[24188]],[[12870,12870],\"mapped\",[25991]],[[12871,12871],\"mapped\",[31631]],[[12872,12879],\"valid\",[],\"NV8\"],[[12880,12880],\"mapped\",[112,116,101]],[[12881,12881],\"mapped\",[50,49]],[[12882,12882],\"mapped\",[50,50]],[[12883,12883],\"mapped\",[50,51]],[[12884,12884],\"mapped\",[50,52]],[[12885,12885],\"mapped\",[50,53]],[[12886,12886],\"mapped\",[50,54]],[[12887,12887],\"mapped\",[50,55]],[[12888,12888],\"mapped\",[50,56]],[[12889,12889],\"mapped\",[50,57]],[[12890,12890],\"mapped\",[51,48]],[[12891,12891],\"mapped\",[51,49]],[[12892,12892],\"mapped\",[51,50]],[[12893,12893],\"mapped\",[51,51]],[[12894,12894],\"mapped\",[51,52]],[[12895,12895],\"mapped\",[51,53]],[[12896,12896],\"mapped\",[4352]],[[12897,12897],\"mapped\",[4354]],[[12898,12898],\"mapped\",[4355]],[[12899,12899],\"mapped\",[4357]],[[12900,12900],\"mapped\",[4358]],[[12901,12901],\"mapped\",[4359]],[[12902,12902],\"mapped\",[4361]],[[12903,12903],\"mapped\",[4363]],[[12904,12904],\"mapped\",[4364]],[[12905,12905],\"mapped\",[4366]],[[12906,12906],\"mapped\",[4367]],[[12907,12907],\"mapped\",[4368]],[[12908,12908],\"mapped\",[4369]],[[12909,12909],\"mapped\",[4370]],[[12910,12910],\"mapped\",[44032]],[[12911,12911],\"mapped\",[45208]],[[12912,12912],\"mapped\",[45796]],[[12913,12913],\"mapped\",[46972]],[[12914,12914],\"mapped\",[47560]],[[12915,12915],\"mapped\",[48148]],[[12916,12916],\"mapped\",[49324]],[[12917,12917],\"mapped\",[50500]],[[12918,12918],\"mapped\",[51088]],[[12919,12919],\"mapped\",[52264]],[[12920,12920],\"mapped\",[52852]],[[12921,12921],\"mapped\",[53440]],[[12922,12922],\"mapped\",[54028]],[[12923,12923],\"mapped\",[54616]],[[12924,12924],\"mapped\",[52280,44256]],[[12925,12925],\"mapped\",[51452,51032]],[[12926,12926],\"mapped\",[50864]],[[12927,12927],\"valid\",[],\"NV8\"],[[12928,12928],\"mapped\",[19968]],[[12929,12929],\"mapped\",[20108]],[[12930,12930],\"mapped\",[19977]],[[12931,12931],\"mapped\",[22235]],[[12932,12932],\"mapped\",[20116]],[[12933,12933],\"mapped\",[20845]],[[12934,12934],\"mapped\",[19971]],[[12935,12935],\"mapped\",[20843]],[[12936,12936],\"mapped\",[20061]],[[12937,12937],\"mapped\",[21313]],[[12938,12938],\"mapped\",[26376]],[[12939,12939],\"mapped\",[28779]],[[12940,12940],\"mapped\",[27700]],[[12941,12941],\"mapped\",[26408]],[[12942,12942],\"mapped\",[37329]],[[12943,12943],\"mapped\",[22303]],[[12944,12944],\"mapped\",[26085]],[[12945,12945],\"mapped\",[26666]],[[12946,12946],\"mapped\",[26377]],[[12947,12947],\"mapped\",[31038]],[[12948,12948],\"mapped\",[21517]],[[12949,12949],\"mapped\",[29305]],[[12950,12950],\"mapped\",[36001]],[[12951,12951],\"mapped\",[31069]],[[12952,12952],\"mapped\",[21172]],[[12953,12953],\"mapped\",[31192]],[[12954,12954],\"mapped\",[30007]],[[12955,12955],\"mapped\",[22899]],[[12956,12956],\"mapped\",[36969]],[[12957,12957],\"mapped\",[20778]],[[12958,12958],\"mapped\",[21360]],[[12959,12959],\"mapped\",[27880]],[[12960,12960],\"mapped\",[38917]],[[12961,12961],\"mapped\",[20241]],[[12962,12962],\"mapped\",[20889]],[[12963,12963],\"mapped\",[27491]],[[12964,12964],\"mapped\",[19978]],[[12965,12965],\"mapped\",[20013]],[[12966,12966],\"mapped\",[19979]],[[12967,12967],\"mapped\",[24038]],[[12968,12968],\"mapped\",[21491]],[[12969,12969],\"mapped\",[21307]],[[12970,12970],\"mapped\",[23447]],[[12971,12971],\"mapped\",[23398]],[[12972,12972],\"mapped\",[30435]],[[12973,12973],\"mapped\",[20225]],[[12974,12974],\"mapped\",[36039]],[[12975,12975],\"mapped\",[21332]],[[12976,12976],\"mapped\",[22812]],[[12977,12977],\"mapped\",[51,54]],[[12978,12978],\"mapped\",[51,55]],[[12979,12979],\"mapped\",[51,56]],[[12980,12980],\"mapped\",[51,57]],[[12981,12981],\"mapped\",[52,48]],[[12982,12982],\"mapped\",[52,49]],[[12983,12983],\"mapped\",[52,50]],[[12984,12984],\"mapped\",[52,51]],[[12985,12985],\"mapped\",[52,52]],[[12986,12986],\"mapped\",[52,53]],[[12987,12987],\"mapped\",[52,54]],[[12988,12988],\"mapped\",[52,55]],[[12989,12989],\"mapped\",[52,56]],[[12990,12990],\"mapped\",[52,57]],[[12991,12991],\"mapped\",[53,48]],[[12992,12992],\"mapped\",[49,26376]],[[12993,12993],\"mapped\",[50,26376]],[[12994,12994],\"mapped\",[51,26376]],[[12995,12995],\"mapped\",[52,26376]],[[12996,12996],\"mapped\",[53,26376]],[[12997,12997],\"mapped\",[54,26376]],[[12998,12998],\"mapped\",[55,26376]],[[12999,12999],\"mapped\",[56,26376]],[[13000,13000],\"mapped\",[57,26376]],[[13001,13001],\"mapped\",[49,48,26376]],[[13002,13002],\"mapped\",[49,49,26376]],[[13003,13003],\"mapped\",[49,50,26376]],[[13004,13004],\"mapped\",[104,103]],[[13005,13005],\"mapped\",[101,114,103]],[[13006,13006],\"mapped\",[101,118]],[[13007,13007],\"mapped\",[108,116,100]],[[13008,13008],\"mapped\",[12450]],[[13009,13009],\"mapped\",[12452]],[[13010,13010],\"mapped\",[12454]],[[13011,13011],\"mapped\",[12456]],[[13012,13012],\"mapped\",[12458]],[[13013,13013],\"mapped\",[12459]],[[13014,13014],\"mapped\",[12461]],[[13015,13015],\"mapped\",[12463]],[[13016,13016],\"mapped\",[12465]],[[13017,13017],\"mapped\",[12467]],[[13018,13018],\"mapped\",[12469]],[[13019,13019],\"mapped\",[12471]],[[13020,13020],\"mapped\",[12473]],[[13021,13021],\"mapped\",[12475]],[[13022,13022],\"mapped\",[12477]],[[13023,13023],\"mapped\",[12479]],[[13024,13024],\"mapped\",[12481]],[[13025,13025],\"mapped\",[12484]],[[13026,13026],\"mapped\",[12486]],[[13027,13027],\"mapped\",[12488]],[[13028,13028],\"mapped\",[12490]],[[13029,13029],\"mapped\",[12491]],[[13030,13030],\"mapped\",[12492]],[[13031,13031],\"mapped\",[12493]],[[13032,13032],\"mapped\",[12494]],[[13033,13033],\"mapped\",[12495]],[[13034,13034],\"mapped\",[12498]],[[13035,13035],\"mapped\",[12501]],[[13036,13036],\"mapped\",[12504]],[[13037,13037],\"mapped\",[12507]],[[13038,13038],\"mapped\",[12510]],[[13039,13039],\"mapped\",[12511]],[[13040,13040],\"mapped\",[12512]],[[13041,13041],\"mapped\",[12513]],[[13042,13042],\"mapped\",[12514]],[[13043,13043],\"mapped\",[12516]],[[13044,13044],\"mapped\",[12518]],[[13045,13045],\"mapped\",[12520]],[[13046,13046],\"mapped\",[12521]],[[13047,13047],\"mapped\",[12522]],[[13048,13048],\"mapped\",[12523]],[[13049,13049],\"mapped\",[12524]],[[13050,13050],\"mapped\",[12525]],[[13051,13051],\"mapped\",[12527]],[[13052,13052],\"mapped\",[12528]],[[13053,13053],\"mapped\",[12529]],[[13054,13054],\"mapped\",[12530]],[[13055,13055],\"disallowed\"],[[13056,13056],\"mapped\",[12450,12497,12540,12488]],[[13057,13057],\"mapped\",[12450,12523,12501,12449]],[[13058,13058],\"mapped\",[12450,12531,12506,12450]],[[13059,13059],\"mapped\",[12450,12540,12523]],[[13060,13060],\"mapped\",[12452,12491,12531,12464]],[[13061,13061],\"mapped\",[12452,12531,12481]],[[13062,13062],\"mapped\",[12454,12457,12531]],[[13063,13063],\"mapped\",[12456,12473,12463,12540,12489]],[[13064,13064],\"mapped\",[12456,12540,12459,12540]],[[13065,13065],\"mapped\",[12458,12531,12473]],[[13066,13066],\"mapped\",[12458,12540,12512]],[[13067,13067],\"mapped\",[12459,12452,12522]],[[13068,13068],\"mapped\",[12459,12521,12483,12488]],[[13069,13069],\"mapped\",[12459,12525,12522,12540]],[[13070,13070],\"mapped\",[12460,12525,12531]],[[13071,13071],\"mapped\",[12460,12531,12510]],[[13072,13072],\"mapped\",[12462,12460]],[[13073,13073],\"mapped\",[12462,12491,12540]],[[13074,13074],\"mapped\",[12461,12517,12522,12540]],[[13075,13075],\"mapped\",[12462,12523,12480,12540]],[[13076,13076],\"mapped\",[12461,12525]],[[13077,13077],\"mapped\",[12461,12525,12464,12521,12512]],[[13078,13078],\"mapped\",[12461,12525,12513,12540,12488,12523]],[[13079,13079],\"mapped\",[12461,12525,12527,12483,12488]],[[13080,13080],\"mapped\",[12464,12521,12512]],[[13081,13081],\"mapped\",[12464,12521,12512,12488,12531]],[[13082,13082],\"mapped\",[12463,12523,12476,12452,12525]],[[13083,13083],\"mapped\",[12463,12525,12540,12493]],[[13084,13084],\"mapped\",[12465,12540,12473]],[[13085,13085],\"mapped\",[12467,12523,12490]],[[13086,13086],\"mapped\",[12467,12540,12509]],[[13087,13087],\"mapped\",[12469,12452,12463,12523]],[[13088,13088],\"mapped\",[12469,12531,12481,12540,12512]],[[13089,13089],\"mapped\",[12471,12522,12531,12464]],[[13090,13090],\"mapped\",[12475,12531,12481]],[[13091,13091],\"mapped\",[12475,12531,12488]],[[13092,13092],\"mapped\",[12480,12540,12473]],[[13093,13093],\"mapped\",[12487,12471]],[[13094,13094],\"mapped\",[12489,12523]],[[13095,13095],\"mapped\",[12488,12531]],[[13096,13096],\"mapped\",[12490,12494]],[[13097,13097],\"mapped\",[12494,12483,12488]],[[13098,13098],\"mapped\",[12495,12452,12484]],[[13099,13099],\"mapped\",[12497,12540,12475,12531,12488]],[[13100,13100],\"mapped\",[12497,12540,12484]],[[13101,13101],\"mapped\",[12496,12540,12524,12523]],[[13102,13102],\"mapped\",[12500,12450,12473,12488,12523]],[[13103,13103],\"mapped\",[12500,12463,12523]],[[13104,13104],\"mapped\",[12500,12467]],[[13105,13105],\"mapped\",[12499,12523]],[[13106,13106],\"mapped\",[12501,12449,12521,12483,12489]],[[13107,13107],\"mapped\",[12501,12451,12540,12488]],[[13108,13108],\"mapped\",[12502,12483,12471,12455,12523]],[[13109,13109],\"mapped\",[12501,12521,12531]],[[13110,13110],\"mapped\",[12504,12463,12479,12540,12523]],[[13111,13111],\"mapped\",[12506,12477]],[[13112,13112],\"mapped\",[12506,12491,12498]],[[13113,13113],\"mapped\",[12504,12523,12484]],[[13114,13114],\"mapped\",[12506,12531,12473]],[[13115,13115],\"mapped\",[12506,12540,12472]],[[13116,13116],\"mapped\",[12505,12540,12479]],[[13117,13117],\"mapped\",[12509,12452,12531,12488]],[[13118,13118],\"mapped\",[12508,12523,12488]],[[13119,13119],\"mapped\",[12507,12531]],[[13120,13120],\"mapped\",[12509,12531,12489]],[[13121,13121],\"mapped\",[12507,12540,12523]],[[13122,13122],\"mapped\",[12507,12540,12531]],[[13123,13123],\"mapped\",[12510,12452,12463,12525]],[[13124,13124],\"mapped\",[12510,12452,12523]],[[13125,13125],\"mapped\",[12510,12483,12495]],[[13126,13126],\"mapped\",[12510,12523,12463]],[[13127,13127],\"mapped\",[12510,12531,12471,12519,12531]],[[13128,13128],\"mapped\",[12511,12463,12525,12531]],[[13129,13129],\"mapped\",[12511,12522]],[[13130,13130],\"mapped\",[12511,12522,12496,12540,12523]],[[13131,13131],\"mapped\",[12513,12460]],[[13132,13132],\"mapped\",[12513,12460,12488,12531]],[[13133,13133],\"mapped\",[12513,12540,12488,12523]],[[13134,13134],\"mapped\",[12516,12540,12489]],[[13135,13135],\"mapped\",[12516,12540,12523]],[[13136,13136],\"mapped\",[12518,12450,12531]],[[13137,13137],\"mapped\",[12522,12483,12488,12523]],[[13138,13138],\"mapped\",[12522,12521]],[[13139,13139],\"mapped\",[12523,12500,12540]],[[13140,13140],\"mapped\",[12523,12540,12502,12523]],[[13141,13141],\"mapped\",[12524,12512]],[[13142,13142],\"mapped\",[12524,12531,12488,12466,12531]],[[13143,13143],\"mapped\",[12527,12483,12488]],[[13144,13144],\"mapped\",[48,28857]],[[13145,13145],\"mapped\",[49,28857]],[[13146,13146],\"mapped\",[50,28857]],[[13147,13147],\"mapped\",[51,28857]],[[13148,13148],\"mapped\",[52,28857]],[[13149,13149],\"mapped\",[53,28857]],[[13150,13150],\"mapped\",[54,28857]],[[13151,13151],\"mapped\",[55,28857]],[[13152,13152],\"mapped\",[56,28857]],[[13153,13153],\"mapped\",[57,28857]],[[13154,13154],\"mapped\",[49,48,28857]],[[13155,13155],\"mapped\",[49,49,28857]],[[13156,13156],\"mapped\",[49,50,28857]],[[13157,13157],\"mapped\",[49,51,28857]],[[13158,13158],\"mapped\",[49,52,28857]],[[13159,13159],\"mapped\",[49,53,28857]],[[13160,13160],\"mapped\",[49,54,28857]],[[13161,13161],\"mapped\",[49,55,28857]],[[13162,13162],\"mapped\",[49,56,28857]],[[13163,13163],\"mapped\",[49,57,28857]],[[13164,13164],\"mapped\",[50,48,28857]],[[13165,13165],\"mapped\",[50,49,28857]],[[13166,13166],\"mapped\",[50,50,28857]],[[13167,13167],\"mapped\",[50,51,28857]],[[13168,13168],\"mapped\",[50,52,28857]],[[13169,13169],\"mapped\",[104,112,97]],[[13170,13170],\"mapped\",[100,97]],[[13171,13171],\"mapped\",[97,117]],[[13172,13172],\"mapped\",[98,97,114]],[[13173,13173],\"mapped\",[111,118]],[[13174,13174],\"mapped\",[112,99]],[[13175,13175],\"mapped\",[100,109]],[[13176,13176],\"mapped\",[100,109,50]],[[13177,13177],\"mapped\",[100,109,51]],[[13178,13178],\"mapped\",[105,117]],[[13179,13179],\"mapped\",[24179,25104]],[[13180,13180],\"mapped\",[26157,21644]],[[13181,13181],\"mapped\",[22823,27491]],[[13182,13182],\"mapped\",[26126,27835]],[[13183,13183],\"mapped\",[26666,24335,20250,31038]],[[13184,13184],\"mapped\",[112,97]],[[13185,13185],\"mapped\",[110,97]],[[13186,13186],\"mapped\",[956,97]],[[13187,13187],\"mapped\",[109,97]],[[13188,13188],\"mapped\",[107,97]],[[13189,13189],\"mapped\",[107,98]],[[13190,13190],\"mapped\",[109,98]],[[13191,13191],\"mapped\",[103,98]],[[13192,13192],\"mapped\",[99,97,108]],[[13193,13193],\"mapped\",[107,99,97,108]],[[13194,13194],\"mapped\",[112,102]],[[13195,13195],\"mapped\",[110,102]],[[13196,13196],\"mapped\",[956,102]],[[13197,13197],\"mapped\",[956,103]],[[13198,13198],\"mapped\",[109,103]],[[13199,13199],\"mapped\",[107,103]],[[13200,13200],\"mapped\",[104,122]],[[13201,13201],\"mapped\",[107,104,122]],[[13202,13202],\"mapped\",[109,104,122]],[[13203,13203],\"mapped\",[103,104,122]],[[13204,13204],\"mapped\",[116,104,122]],[[13205,13205],\"mapped\",[956,108]],[[13206,13206],\"mapped\",[109,108]],[[13207,13207],\"mapped\",[100,108]],[[13208,13208],\"mapped\",[107,108]],[[13209,13209],\"mapped\",[102,109]],[[13210,13210],\"mapped\",[110,109]],[[13211,13211],\"mapped\",[956,109]],[[13212,13212],\"mapped\",[109,109]],[[13213,13213],\"mapped\",[99,109]],[[13214,13214],\"mapped\",[107,109]],[[13215,13215],\"mapped\",[109,109,50]],[[13216,13216],\"mapped\",[99,109,50]],[[13217,13217],\"mapped\",[109,50]],[[13218,13218],\"mapped\",[107,109,50]],[[13219,13219],\"mapped\",[109,109,51]],[[13220,13220],\"mapped\",[99,109,51]],[[13221,13221],\"mapped\",[109,51]],[[13222,13222],\"mapped\",[107,109,51]],[[13223,13223],\"mapped\",[109,8725,115]],[[13224,13224],\"mapped\",[109,8725,115,50]],[[13225,13225],\"mapped\",[112,97]],[[13226,13226],\"mapped\",[107,112,97]],[[13227,13227],\"mapped\",[109,112,97]],[[13228,13228],\"mapped\",[103,112,97]],[[13229,13229],\"mapped\",[114,97,100]],[[13230,13230],\"mapped\",[114,97,100,8725,115]],[[13231,13231],\"mapped\",[114,97,100,8725,115,50]],[[13232,13232],\"mapped\",[112,115]],[[13233,13233],\"mapped\",[110,115]],[[13234,13234],\"mapped\",[956,115]],[[13235,13235],\"mapped\",[109,115]],[[13236,13236],\"mapped\",[112,118]],[[13237,13237],\"mapped\",[110,118]],[[13238,13238],\"mapped\",[956,118]],[[13239,13239],\"mapped\",[109,118]],[[13240,13240],\"mapped\",[107,118]],[[13241,13241],\"mapped\",[109,118]],[[13242,13242],\"mapped\",[112,119]],[[13243,13243],\"mapped\",[110,119]],[[13244,13244],\"mapped\",[956,119]],[[13245,13245],\"mapped\",[109,119]],[[13246,13246],\"mapped\",[107,119]],[[13247,13247],\"mapped\",[109,119]],[[13248,13248],\"mapped\",[107,969]],[[13249,13249],\"mapped\",[109,969]],[[13250,13250],\"disallowed\"],[[13251,13251],\"mapped\",[98,113]],[[13252,13252],\"mapped\",[99,99]],[[13253,13253],\"mapped\",[99,100]],[[13254,13254],\"mapped\",[99,8725,107,103]],[[13255,13255],\"disallowed\"],[[13256,13256],\"mapped\",[100,98]],[[13257,13257],\"mapped\",[103,121]],[[13258,13258],\"mapped\",[104,97]],[[13259,13259],\"mapped\",[104,112]],[[13260,13260],\"mapped\",[105,110]],[[13261,13261],\"mapped\",[107,107]],[[13262,13262],\"mapped\",[107,109]],[[13263,13263],\"mapped\",[107,116]],[[13264,13264],\"mapped\",[108,109]],[[13265,13265],\"mapped\",[108,110]],[[13266,13266],\"mapped\",[108,111,103]],[[13267,13267],\"mapped\",[108,120]],[[13268,13268],\"mapped\",[109,98]],[[13269,13269],\"mapped\",[109,105,108]],[[13270,13270],\"mapped\",[109,111,108]],[[13271,13271],\"mapped\",[112,104]],[[13272,13272],\"disallowed\"],[[13273,13273],\"mapped\",[112,112,109]],[[13274,13274],\"mapped\",[112,114]],[[13275,13275],\"mapped\",[115,114]],[[13276,13276],\"mapped\",[115,118]],[[13277,13277],\"mapped\",[119,98]],[[13278,13278],\"mapped\",[118,8725,109]],[[13279,13279],\"mapped\",[97,8725,109]],[[13280,13280],\"mapped\",[49,26085]],[[13281,13281],\"mapped\",[50,26085]],[[13282,13282],\"mapped\",[51,26085]],[[13283,13283],\"mapped\",[52,26085]],[[13284,13284],\"mapped\",[53,26085]],[[13285,13285],\"mapped\",[54,26085]],[[13286,13286],\"mapped\",[55,26085]],[[13287,13287],\"mapped\",[56,26085]],[[13288,13288],\"mapped\",[57,26085]],[[13289,13289],\"mapped\",[49,48,26085]],[[13290,13290],\"mapped\",[49,49,26085]],[[13291,13291],\"mapped\",[49,50,26085]],[[13292,13292],\"mapped\",[49,51,26085]],[[13293,13293],\"mapped\",[49,52,26085]],[[13294,13294],\"mapped\",[49,53,26085]],[[13295,13295],\"mapped\",[49,54,26085]],[[13296,13296],\"mapped\",[49,55,26085]],[[13297,13297],\"mapped\",[49,56,26085]],[[13298,13298],\"mapped\",[49,57,26085]],[[13299,13299],\"mapped\",[50,48,26085]],[[13300,13300],\"mapped\",[50,49,26085]],[[13301,13301],\"mapped\",[50,50,26085]],[[13302,13302],\"mapped\",[50,51,26085]],[[13303,13303],\"mapped\",[50,52,26085]],[[13304,13304],\"mapped\",[50,53,26085]],[[13305,13305],\"mapped\",[50,54,26085]],[[13306,13306],\"mapped\",[50,55,26085]],[[13307,13307],\"mapped\",[50,56,26085]],[[13308,13308],\"mapped\",[50,57,26085]],[[13309,13309],\"mapped\",[51,48,26085]],[[13310,13310],\"mapped\",[51,49,26085]],[[13311,13311],\"mapped\",[103,97,108]],[[13312,19893],\"valid\"],[[19894,19903],\"disallowed\"],[[19904,19967],\"valid\",[],\"NV8\"],[[19968,40869],\"valid\"],[[40870,40891],\"valid\"],[[40892,40899],\"valid\"],[[40900,40907],\"valid\"],[[40908,40908],\"valid\"],[[40909,40917],\"valid\"],[[40918,40959],\"disallowed\"],[[40960,42124],\"valid\"],[[42125,42127],\"disallowed\"],[[42128,42145],\"valid\",[],\"NV8\"],[[42146,42147],\"valid\",[],\"NV8\"],[[42148,42163],\"valid\",[],\"NV8\"],[[42164,42164],\"valid\",[],\"NV8\"],[[42165,42176],\"valid\",[],\"NV8\"],[[42177,42177],\"valid\",[],\"NV8\"],[[42178,42180],\"valid\",[],\"NV8\"],[[42181,42181],\"valid\",[],\"NV8\"],[[42182,42182],\"valid\",[],\"NV8\"],[[42183,42191],\"disallowed\"],[[42192,42237],\"valid\"],[[42238,42239],\"valid\",[],\"NV8\"],[[42240,42508],\"valid\"],[[42509,42511],\"valid\",[],\"NV8\"],[[42512,42539],\"valid\"],[[42540,42559],\"disallowed\"],[[42560,42560],\"mapped\",[42561]],[[42561,42561],\"valid\"],[[42562,42562],\"mapped\",[42563]],[[42563,42563],\"valid\"],[[42564,42564],\"mapped\",[42565]],[[42565,42565],\"valid\"],[[42566,42566],\"mapped\",[42567]],[[42567,42567],\"valid\"],[[42568,42568],\"mapped\",[42569]],[[42569,42569],\"valid\"],[[42570,42570],\"mapped\",[42571]],[[42571,42571],\"valid\"],[[42572,42572],\"mapped\",[42573]],[[42573,42573],\"valid\"],[[42574,42574],\"mapped\",[42575]],[[42575,42575],\"valid\"],[[42576,42576],\"mapped\",[42577]],[[42577,42577],\"valid\"],[[42578,42578],\"mapped\",[42579]],[[42579,42579],\"valid\"],[[42580,42580],\"mapped\",[42581]],[[42581,42581],\"valid\"],[[42582,42582],\"mapped\",[42583]],[[42583,42583],\"valid\"],[[42584,42584],\"mapped\",[42585]],[[42585,42585],\"valid\"],[[42586,42586],\"mapped\",[42587]],[[42587,42587],\"valid\"],[[42588,42588],\"mapped\",[42589]],[[42589,42589],\"valid\"],[[42590,42590],\"mapped\",[42591]],[[42591,42591],\"valid\"],[[42592,42592],\"mapped\",[42593]],[[42593,42593],\"valid\"],[[42594,42594],\"mapped\",[42595]],[[42595,42595],\"valid\"],[[42596,42596],\"mapped\",[42597]],[[42597,42597],\"valid\"],[[42598,42598],\"mapped\",[42599]],[[42599,42599],\"valid\"],[[42600,42600],\"mapped\",[42601]],[[42601,42601],\"valid\"],[[42602,42602],\"mapped\",[42603]],[[42603,42603],\"valid\"],[[42604,42604],\"mapped\",[42605]],[[42605,42607],\"valid\"],[[42608,42611],\"valid\",[],\"NV8\"],[[42612,42619],\"valid\"],[[42620,42621],\"valid\"],[[42622,42622],\"valid\",[],\"NV8\"],[[42623,42623],\"valid\"],[[42624,42624],\"mapped\",[42625]],[[42625,42625],\"valid\"],[[42626,42626],\"mapped\",[42627]],[[42627,42627],\"valid\"],[[42628,42628],\"mapped\",[42629]],[[42629,42629],\"valid\"],[[42630,42630],\"mapped\",[42631]],[[42631,42631],\"valid\"],[[42632,42632],\"mapped\",[42633]],[[42633,42633],\"valid\"],[[42634,42634],\"mapped\",[42635]],[[42635,42635],\"valid\"],[[42636,42636],\"mapped\",[42637]],[[42637,42637],\"valid\"],[[42638,42638],\"mapped\",[42639]],[[42639,42639],\"valid\"],[[42640,42640],\"mapped\",[42641]],[[42641,42641],\"valid\"],[[42642,42642],\"mapped\",[42643]],[[42643,42643],\"valid\"],[[42644,42644],\"mapped\",[42645]],[[42645,42645],\"valid\"],[[42646,42646],\"mapped\",[42647]],[[42647,42647],\"valid\"],[[42648,42648],\"mapped\",[42649]],[[42649,42649],\"valid\"],[[42650,42650],\"mapped\",[42651]],[[42651,42651],\"valid\"],[[42652,42652],\"mapped\",[1098]],[[42653,42653],\"mapped\",[1100]],[[42654,42654],\"valid\"],[[42655,42655],\"valid\"],[[42656,42725],\"valid\"],[[42726,42735],\"valid\",[],\"NV8\"],[[42736,42737],\"valid\"],[[42738,42743],\"valid\",[],\"NV8\"],[[42744,42751],\"disallowed\"],[[42752,42774],\"valid\",[],\"NV8\"],[[42775,42778],\"valid\"],[[42779,42783],\"valid\"],[[42784,42785],\"valid\",[],\"NV8\"],[[42786,42786],\"mapped\",[42787]],[[42787,42787],\"valid\"],[[42788,42788],\"mapped\",[42789]],[[42789,42789],\"valid\"],[[42790,42790],\"mapped\",[42791]],[[42791,42791],\"valid\"],[[42792,42792],\"mapped\",[42793]],[[42793,42793],\"valid\"],[[42794,42794],\"mapped\",[42795]],[[42795,42795],\"valid\"],[[42796,42796],\"mapped\",[42797]],[[42797,42797],\"valid\"],[[42798,42798],\"mapped\",[42799]],[[42799,42801],\"valid\"],[[42802,42802],\"mapped\",[42803]],[[42803,42803],\"valid\"],[[42804,42804],\"mapped\",[42805]],[[42805,42805],\"valid\"],[[42806,42806],\"mapped\",[42807]],[[42807,42807],\"valid\"],[[42808,42808],\"mapped\",[42809]],[[42809,42809],\"valid\"],[[42810,42810],\"mapped\",[42811]],[[42811,42811],\"valid\"],[[42812,42812],\"mapped\",[42813]],[[42813,42813],\"valid\"],[[42814,42814],\"mapped\",[42815]],[[42815,42815],\"valid\"],[[42816,42816],\"mapped\",[42817]],[[42817,42817],\"valid\"],[[42818,42818],\"mapped\",[42819]],[[42819,42819],\"valid\"],[[42820,42820],\"mapped\",[42821]],[[42821,42821],\"valid\"],[[42822,42822],\"mapped\",[42823]],[[42823,42823],\"valid\"],[[42824,42824],\"mapped\",[42825]],[[42825,42825],\"valid\"],[[42826,42826],\"mapped\",[42827]],[[42827,42827],\"valid\"],[[42828,42828],\"mapped\",[42829]],[[42829,42829],\"valid\"],[[42830,42830],\"mapped\",[42831]],[[42831,42831],\"valid\"],[[42832,42832],\"mapped\",[42833]],[[42833,42833],\"valid\"],[[42834,42834],\"mapped\",[42835]],[[42835,42835],\"valid\"],[[42836,42836],\"mapped\",[42837]],[[42837,42837],\"valid\"],[[42838,42838],\"mapped\",[42839]],[[42839,42839],\"valid\"],[[42840,42840],\"mapped\",[42841]],[[42841,42841],\"valid\"],[[42842,42842],\"mapped\",[42843]],[[42843,42843],\"valid\"],[[42844,42844],\"mapped\",[42845]],[[42845,42845],\"valid\"],[[42846,42846],\"mapped\",[42847]],[[42847,42847],\"valid\"],[[42848,42848],\"mapped\",[42849]],[[42849,42849],\"valid\"],[[42850,42850],\"mapped\",[42851]],[[42851,42851],\"valid\"],[[42852,42852],\"mapped\",[42853]],[[42853,42853],\"valid\"],[[42854,42854],\"mapped\",[42855]],[[42855,42855],\"valid\"],[[42856,42856],\"mapped\",[42857]],[[42857,42857],\"valid\"],[[42858,42858],\"mapped\",[42859]],[[42859,42859],\"valid\"],[[42860,42860],\"mapped\",[42861]],[[42861,42861],\"valid\"],[[42862,42862],\"mapped\",[42863]],[[42863,42863],\"valid\"],[[42864,42864],\"mapped\",[42863]],[[42865,42872],\"valid\"],[[42873,42873],\"mapped\",[42874]],[[42874,42874],\"valid\"],[[42875,42875],\"mapped\",[42876]],[[42876,42876],\"valid\"],[[42877,42877],\"mapped\",[7545]],[[42878,42878],\"mapped\",[42879]],[[42879,42879],\"valid\"],[[42880,42880],\"mapped\",[42881]],[[42881,42881],\"valid\"],[[42882,42882],\"mapped\",[42883]],[[42883,42883],\"valid\"],[[42884,42884],\"mapped\",[42885]],[[42885,42885],\"valid\"],[[42886,42886],\"mapped\",[42887]],[[42887,42888],\"valid\"],[[42889,42890],\"valid\",[],\"NV8\"],[[42891,42891],\"mapped\",[42892]],[[42892,42892],\"valid\"],[[42893,42893],\"mapped\",[613]],[[42894,42894],\"valid\"],[[42895,42895],\"valid\"],[[42896,42896],\"mapped\",[42897]],[[42897,42897],\"valid\"],[[42898,42898],\"mapped\",[42899]],[[42899,42899],\"valid\"],[[42900,42901],\"valid\"],[[42902,42902],\"mapped\",[42903]],[[42903,42903],\"valid\"],[[42904,42904],\"mapped\",[42905]],[[42905,42905],\"valid\"],[[42906,42906],\"mapped\",[42907]],[[42907,42907],\"valid\"],[[42908,42908],\"mapped\",[42909]],[[42909,42909],\"valid\"],[[42910,42910],\"mapped\",[42911]],[[42911,42911],\"valid\"],[[42912,42912],\"mapped\",[42913]],[[42913,42913],\"valid\"],[[42914,42914],\"mapped\",[42915]],[[42915,42915],\"valid\"],[[42916,42916],\"mapped\",[42917]],[[42917,42917],\"valid\"],[[42918,42918],\"mapped\",[42919]],[[42919,42919],\"valid\"],[[42920,42920],\"mapped\",[42921]],[[42921,42921],\"valid\"],[[42922,42922],\"mapped\",[614]],[[42923,42923],\"mapped\",[604]],[[42924,42924],\"mapped\",[609]],[[42925,42925],\"mapped\",[620]],[[42926,42927],\"disallowed\"],[[42928,42928],\"mapped\",[670]],[[42929,42929],\"mapped\",[647]],[[42930,42930],\"mapped\",[669]],[[42931,42931],\"mapped\",[43859]],[[42932,42932],\"mapped\",[42933]],[[42933,42933],\"valid\"],[[42934,42934],\"mapped\",[42935]],[[42935,42935],\"valid\"],[[42936,42998],\"disallowed\"],[[42999,42999],\"valid\"],[[43000,43000],\"mapped\",[295]],[[43001,43001],\"mapped\",[339]],[[43002,43002],\"valid\"],[[43003,43007],\"valid\"],[[43008,43047],\"valid\"],[[43048,43051],\"valid\",[],\"NV8\"],[[43052,43055],\"disallowed\"],[[43056,43065],\"valid\",[],\"NV8\"],[[43066,43071],\"disallowed\"],[[43072,43123],\"valid\"],[[43124,43127],\"valid\",[],\"NV8\"],[[43128,43135],\"disallowed\"],[[43136,43204],\"valid\"],[[43205,43213],\"disallowed\"],[[43214,43215],\"valid\",[],\"NV8\"],[[43216,43225],\"valid\"],[[43226,43231],\"disallowed\"],[[43232,43255],\"valid\"],[[43256,43258],\"valid\",[],\"NV8\"],[[43259,43259],\"valid\"],[[43260,43260],\"valid\",[],\"NV8\"],[[43261,43261],\"valid\"],[[43262,43263],\"disallowed\"],[[43264,43309],\"valid\"],[[43310,43311],\"valid\",[],\"NV8\"],[[43312,43347],\"valid\"],[[43348,43358],\"disallowed\"],[[43359,43359],\"valid\",[],\"NV8\"],[[43360,43388],\"valid\",[],\"NV8\"],[[43389,43391],\"disallowed\"],[[43392,43456],\"valid\"],[[43457,43469],\"valid\",[],\"NV8\"],[[43470,43470],\"disallowed\"],[[43471,43481],\"valid\"],[[43482,43485],\"disallowed\"],[[43486,43487],\"valid\",[],\"NV8\"],[[43488,43518],\"valid\"],[[43519,43519],\"disallowed\"],[[43520,43574],\"valid\"],[[43575,43583],\"disallowed\"],[[43584,43597],\"valid\"],[[43598,43599],\"disallowed\"],[[43600,43609],\"valid\"],[[43610,43611],\"disallowed\"],[[43612,43615],\"valid\",[],\"NV8\"],[[43616,43638],\"valid\"],[[43639,43641],\"valid\",[],\"NV8\"],[[43642,43643],\"valid\"],[[43644,43647],\"valid\"],[[43648,43714],\"valid\"],[[43715,43738],\"disallowed\"],[[43739,43741],\"valid\"],[[43742,43743],\"valid\",[],\"NV8\"],[[43744,43759],\"valid\"],[[43760,43761],\"valid\",[],\"NV8\"],[[43762,43766],\"valid\"],[[43767,43776],\"disallowed\"],[[43777,43782],\"valid\"],[[43783,43784],\"disallowed\"],[[43785,43790],\"valid\"],[[43791,43792],\"disallowed\"],[[43793,43798],\"valid\"],[[43799,43807],\"disallowed\"],[[43808,43814],\"valid\"],[[43815,43815],\"disallowed\"],[[43816,43822],\"valid\"],[[43823,43823],\"disallowed\"],[[43824,43866],\"valid\"],[[43867,43867],\"valid\",[],\"NV8\"],[[43868,43868],\"mapped\",[42791]],[[43869,43869],\"mapped\",[43831]],[[43870,43870],\"mapped\",[619]],[[43871,43871],\"mapped\",[43858]],[[43872,43875],\"valid\"],[[43876,43877],\"valid\"],[[43878,43887],\"disallowed\"],[[43888,43888],\"mapped\",[5024]],[[43889,43889],\"mapped\",[5025]],[[43890,43890],\"mapped\",[5026]],[[43891,43891],\"mapped\",[5027]],[[43892,43892],\"mapped\",[5028]],[[43893,43893],\"mapped\",[5029]],[[43894,43894],\"mapped\",[5030]],[[43895,43895],\"mapped\",[5031]],[[43896,43896],\"mapped\",[5032]],[[43897,43897],\"mapped\",[5033]],[[43898,43898],\"mapped\",[5034]],[[43899,43899],\"mapped\",[5035]],[[43900,43900],\"mapped\",[5036]],[[43901,43901],\"mapped\",[5037]],[[43902,43902],\"mapped\",[5038]],[[43903,43903],\"mapped\",[5039]],[[43904,43904],\"mapped\",[5040]],[[43905,43905],\"mapped\",[5041]],[[43906,43906],\"mapped\",[5042]],[[43907,43907],\"mapped\",[5043]],[[43908,43908],\"mapped\",[5044]],[[43909,43909],\"mapped\",[5045]],[[43910,43910],\"mapped\",[5046]],[[43911,43911],\"mapped\",[5047]],[[43912,43912],\"mapped\",[5048]],[[43913,43913],\"mapped\",[5049]],[[43914,43914],\"mapped\",[5050]],[[43915,43915],\"mapped\",[5051]],[[43916,43916],\"mapped\",[5052]],[[43917,43917],\"mapped\",[5053]],[[43918,43918],\"mapped\",[5054]],[[43919,43919],\"mapped\",[5055]],[[43920,43920],\"mapped\",[5056]],[[43921,43921],\"mapped\",[5057]],[[43922,43922],\"mapped\",[5058]],[[43923,43923],\"mapped\",[5059]],[[43924,43924],\"mapped\",[5060]],[[43925,43925],\"mapped\",[5061]],[[43926,43926],\"mapped\",[5062]],[[43927,43927],\"mapped\",[5063]],[[43928,43928],\"mapped\",[5064]],[[43929,43929],\"mapped\",[5065]],[[43930,43930],\"mapped\",[5066]],[[43931,43931],\"mapped\",[5067]],[[43932,43932],\"mapped\",[5068]],[[43933,43933],\"mapped\",[5069]],[[43934,43934],\"mapped\",[5070]],[[43935,43935],\"mapped\",[5071]],[[43936,43936],\"mapped\",[5072]],[[43937,43937],\"mapped\",[5073]],[[43938,43938],\"mapped\",[5074]],[[43939,43939],\"mapped\",[5075]],[[43940,43940],\"mapped\",[5076]],[[43941,43941],\"mapped\",[5077]],[[43942,43942],\"mapped\",[5078]],[[43943,43943],\"mapped\",[5079]],[[43944,43944],\"mapped\",[5080]],[[43945,43945],\"mapped\",[5081]],[[43946,43946],\"mapped\",[5082]],[[43947,43947],\"mapped\",[5083]],[[43948,43948],\"mapped\",[5084]],[[43949,43949],\"mapped\",[5085]],[[43950,43950],\"mapped\",[5086]],[[43951,43951],\"mapped\",[5087]],[[43952,43952],\"mapped\",[5088]],[[43953,43953],\"mapped\",[5089]],[[43954,43954],\"mapped\",[5090]],[[43955,43955],\"mapped\",[5091]],[[43956,43956],\"mapped\",[5092]],[[43957,43957],\"mapped\",[5093]],[[43958,43958],\"mapped\",[5094]],[[43959,43959],\"mapped\",[5095]],[[43960,43960],\"mapped\",[5096]],[[43961,43961],\"mapped\",[5097]],[[43962,43962],\"mapped\",[5098]],[[43963,43963],\"mapped\",[5099]],[[43964,43964],\"mapped\",[5100]],[[43965,43965],\"mapped\",[5101]],[[43966,43966],\"mapped\",[5102]],[[43967,43967],\"mapped\",[5103]],[[43968,44010],\"valid\"],[[44011,44011],\"valid\",[],\"NV8\"],[[44012,44013],\"valid\"],[[44014,44015],\"disallowed\"],[[44016,44025],\"valid\"],[[44026,44031],\"disallowed\"],[[44032,55203],\"valid\"],[[55204,55215],\"disallowed\"],[[55216,55238],\"valid\",[],\"NV8\"],[[55239,55242],\"disallowed\"],[[55243,55291],\"valid\",[],\"NV8\"],[[55292,55295],\"disallowed\"],[[55296,57343],\"disallowed\"],[[57344,63743],\"disallowed\"],[[63744,63744],\"mapped\",[35912]],[[63745,63745],\"mapped\",[26356]],[[63746,63746],\"mapped\",[36554]],[[63747,63747],\"mapped\",[36040]],[[63748,63748],\"mapped\",[28369]],[[63749,63749],\"mapped\",[20018]],[[63750,63750],\"mapped\",[21477]],[[63751,63752],\"mapped\",[40860]],[[63753,63753],\"mapped\",[22865]],[[63754,63754],\"mapped\",[37329]],[[63755,63755],\"mapped\",[21895]],[[63756,63756],\"mapped\",[22856]],[[63757,63757],\"mapped\",[25078]],[[63758,63758],\"mapped\",[30313]],[[63759,63759],\"mapped\",[32645]],[[63760,63760],\"mapped\",[34367]],[[63761,63761],\"mapped\",[34746]],[[63762,63762],\"mapped\",[35064]],[[63763,63763],\"mapped\",[37007]],[[63764,63764],\"mapped\",[27138]],[[63765,63765],\"mapped\",[27931]],[[63766,63766],\"mapped\",[28889]],[[63767,63767],\"mapped\",[29662]],[[63768,63768],\"mapped\",[33853]],[[63769,63769],\"mapped\",[37226]],[[63770,63770],\"mapped\",[39409]],[[63771,63771],\"mapped\",[20098]],[[63772,63772],\"mapped\",[21365]],[[63773,63773],\"mapped\",[27396]],[[63774,63774],\"mapped\",[29211]],[[63775,63775],\"mapped\",[34349]],[[63776,63776],\"mapped\",[40478]],[[63777,63777],\"mapped\",[23888]],[[63778,63778],\"mapped\",[28651]],[[63779,63779],\"mapped\",[34253]],[[63780,63780],\"mapped\",[35172]],[[63781,63781],\"mapped\",[25289]],[[63782,63782],\"mapped\",[33240]],[[63783,63783],\"mapped\",[34847]],[[63784,63784],\"mapped\",[24266]],[[63785,63785],\"mapped\",[26391]],[[63786,63786],\"mapped\",[28010]],[[63787,63787],\"mapped\",[29436]],[[63788,63788],\"mapped\",[37070]],[[63789,63789],\"mapped\",[20358]],[[63790,63790],\"mapped\",[20919]],[[63791,63791],\"mapped\",[21214]],[[63792,63792],\"mapped\",[25796]],[[63793,63793],\"mapped\",[27347]],[[63794,63794],\"mapped\",[29200]],[[63795,63795],\"mapped\",[30439]],[[63796,63796],\"mapped\",[32769]],[[63797,63797],\"mapped\",[34310]],[[63798,63798],\"mapped\",[34396]],[[63799,63799],\"mapped\",[36335]],[[63800,63800],\"mapped\",[38706]],[[63801,63801],\"mapped\",[39791]],[[63802,63802],\"mapped\",[40442]],[[63803,63803],\"mapped\",[30860]],[[63804,63804],\"mapped\",[31103]],[[63805,63805],\"mapped\",[32160]],[[63806,63806],\"mapped\",[33737]],[[63807,63807],\"mapped\",[37636]],[[63808,63808],\"mapped\",[40575]],[[63809,63809],\"mapped\",[35542]],[[63810,63810],\"mapped\",[22751]],[[63811,63811],\"mapped\",[24324]],[[63812,63812],\"mapped\",[31840]],[[63813,63813],\"mapped\",[32894]],[[63814,63814],\"mapped\",[29282]],[[63815,63815],\"mapped\",[30922]],[[63816,63816],\"mapped\",[36034]],[[63817,63817],\"mapped\",[38647]],[[63818,63818],\"mapped\",[22744]],[[63819,63819],\"mapped\",[23650]],[[63820,63820],\"mapped\",[27155]],[[63821,63821],\"mapped\",[28122]],[[63822,63822],\"mapped\",[28431]],[[63823,63823],\"mapped\",[32047]],[[63824,63824],\"mapped\",[32311]],[[63825,63825],\"mapped\",[38475]],[[63826,63826],\"mapped\",[21202]],[[63827,63827],\"mapped\",[32907]],[[63828,63828],\"mapped\",[20956]],[[63829,63829],\"mapped\",[20940]],[[63830,63830],\"mapped\",[31260]],[[63831,63831],\"mapped\",[32190]],[[63832,63832],\"mapped\",[33777]],[[63833,63833],\"mapped\",[38517]],[[63834,63834],\"mapped\",[35712]],[[63835,63835],\"mapped\",[25295]],[[63836,63836],\"mapped\",[27138]],[[63837,63837],\"mapped\",[35582]],[[63838,63838],\"mapped\",[20025]],[[63839,63839],\"mapped\",[23527]],[[63840,63840],\"mapped\",[24594]],[[63841,63841],\"mapped\",[29575]],[[63842,63842],\"mapped\",[30064]],[[63843,63843],\"mapped\",[21271]],[[63844,63844],\"mapped\",[30971]],[[63845,63845],\"mapped\",[20415]],[[63846,63846],\"mapped\",[24489]],[[63847,63847],\"mapped\",[19981]],[[63848,63848],\"mapped\",[27852]],[[63849,63849],\"mapped\",[25976]],[[63850,63850],\"mapped\",[32034]],[[63851,63851],\"mapped\",[21443]],[[63852,63852],\"mapped\",[22622]],[[63853,63853],\"mapped\",[30465]],[[63854,63854],\"mapped\",[33865]],[[63855,63855],\"mapped\",[35498]],[[63856,63856],\"mapped\",[27578]],[[63857,63857],\"mapped\",[36784]],[[63858,63858],\"mapped\",[27784]],[[63859,63859],\"mapped\",[25342]],[[63860,63860],\"mapped\",[33509]],[[63861,63861],\"mapped\",[25504]],[[63862,63862],\"mapped\",[30053]],[[63863,63863],\"mapped\",[20142]],[[63864,63864],\"mapped\",[20841]],[[63865,63865],\"mapped\",[20937]],[[63866,63866],\"mapped\",[26753]],[[63867,63867],\"mapped\",[31975]],[[63868,63868],\"mapped\",[33391]],[[63869,63869],\"mapped\",[35538]],[[63870,63870],\"mapped\",[37327]],[[63871,63871],\"mapped\",[21237]],[[63872,63872],\"mapped\",[21570]],[[63873,63873],\"mapped\",[22899]],[[63874,63874],\"mapped\",[24300]],[[63875,63875],\"mapped\",[26053]],[[63876,63876],\"mapped\",[28670]],[[63877,63877],\"mapped\",[31018]],[[63878,63878],\"mapped\",[38317]],[[63879,63879],\"mapped\",[39530]],[[63880,63880],\"mapped\",[40599]],[[63881,63881],\"mapped\",[40654]],[[63882,63882],\"mapped\",[21147]],[[63883,63883],\"mapped\",[26310]],[[63884,63884],\"mapped\",[27511]],[[63885,63885],\"mapped\",[36706]],[[63886,63886],\"mapped\",[24180]],[[63887,63887],\"mapped\",[24976]],[[63888,63888],\"mapped\",[25088]],[[63889,63889],\"mapped\",[25754]],[[63890,63890],\"mapped\",[28451]],[[63891,63891],\"mapped\",[29001]],[[63892,63892],\"mapped\",[29833]],[[63893,63893],\"mapped\",[31178]],[[63894,63894],\"mapped\",[32244]],[[63895,63895],\"mapped\",[32879]],[[63896,63896],\"mapped\",[36646]],[[63897,63897],\"mapped\",[34030]],[[63898,63898],\"mapped\",[36899]],[[63899,63899],\"mapped\",[37706]],[[63900,63900],\"mapped\",[21015]],[[63901,63901],\"mapped\",[21155]],[[63902,63902],\"mapped\",[21693]],[[63903,63903],\"mapped\",[28872]],[[63904,63904],\"mapped\",[35010]],[[63905,63905],\"mapped\",[35498]],[[63906,63906],\"mapped\",[24265]],[[63907,63907],\"mapped\",[24565]],[[63908,63908],\"mapped\",[25467]],[[63909,63909],\"mapped\",[27566]],[[63910,63910],\"mapped\",[31806]],[[63911,63911],\"mapped\",[29557]],[[63912,63912],\"mapped\",[20196]],[[63913,63913],\"mapped\",[22265]],[[63914,63914],\"mapped\",[23527]],[[63915,63915],\"mapped\",[23994]],[[63916,63916],\"mapped\",[24604]],[[63917,63917],\"mapped\",[29618]],[[63918,63918],\"mapped\",[29801]],[[63919,63919],\"mapped\",[32666]],[[63920,63920],\"mapped\",[32838]],[[63921,63921],\"mapped\",[37428]],[[63922,63922],\"mapped\",[38646]],[[63923,63923],\"mapped\",[38728]],[[63924,63924],\"mapped\",[38936]],[[63925,63925],\"mapped\",[20363]],[[63926,63926],\"mapped\",[31150]],[[63927,63927],\"mapped\",[37300]],[[63928,63928],\"mapped\",[38584]],[[63929,63929],\"mapped\",[24801]],[[63930,63930],\"mapped\",[20102]],[[63931,63931],\"mapped\",[20698]],[[63932,63932],\"mapped\",[23534]],[[63933,63933],\"mapped\",[23615]],[[63934,63934],\"mapped\",[26009]],[[63935,63935],\"mapped\",[27138]],[[63936,63936],\"mapped\",[29134]],[[63937,63937],\"mapped\",[30274]],[[63938,63938],\"mapped\",[34044]],[[63939,63939],\"mapped\",[36988]],[[63940,63940],\"mapped\",[40845]],[[63941,63941],\"mapped\",[26248]],[[63942,63942],\"mapped\",[38446]],[[63943,63943],\"mapped\",[21129]],[[63944,63944],\"mapped\",[26491]],[[63945,63945],\"mapped\",[26611]],[[63946,63946],\"mapped\",[27969]],[[63947,63947],\"mapped\",[28316]],[[63948,63948],\"mapped\",[29705]],[[63949,63949],\"mapped\",[30041]],[[63950,63950],\"mapped\",[30827]],[[63951,63951],\"mapped\",[32016]],[[63952,63952],\"mapped\",[39006]],[[63953,63953],\"mapped\",[20845]],[[63954,63954],\"mapped\",[25134]],[[63955,63955],\"mapped\",[38520]],[[63956,63956],\"mapped\",[20523]],[[63957,63957],\"mapped\",[23833]],[[63958,63958],\"mapped\",[28138]],[[63959,63959],\"mapped\",[36650]],[[63960,63960],\"mapped\",[24459]],[[63961,63961],\"mapped\",[24900]],[[63962,63962],\"mapped\",[26647]],[[63963,63963],\"mapped\",[29575]],[[63964,63964],\"mapped\",[38534]],[[63965,63965],\"mapped\",[21033]],[[63966,63966],\"mapped\",[21519]],[[63967,63967],\"mapped\",[23653]],[[63968,63968],\"mapped\",[26131]],[[63969,63969],\"mapped\",[26446]],[[63970,63970],\"mapped\",[26792]],[[63971,63971],\"mapped\",[27877]],[[63972,63972],\"mapped\",[29702]],[[63973,63973],\"mapped\",[30178]],[[63974,63974],\"mapped\",[32633]],[[63975,63975],\"mapped\",[35023]],[[63976,63976],\"mapped\",[35041]],[[63977,63977],\"mapped\",[37324]],[[63978,63978],\"mapped\",[38626]],[[63979,63979],\"mapped\",[21311]],[[63980,63980],\"mapped\",[28346]],[[63981,63981],\"mapped\",[21533]],[[63982,63982],\"mapped\",[29136]],[[63983,63983],\"mapped\",[29848]],[[63984,63984],\"mapped\",[34298]],[[63985,63985],\"mapped\",[38563]],[[63986,63986],\"mapped\",[40023]],[[63987,63987],\"mapped\",[40607]],[[63988,63988],\"mapped\",[26519]],[[63989,63989],\"mapped\",[28107]],[[63990,63990],\"mapped\",[33256]],[[63991,63991],\"mapped\",[31435]],[[63992,63992],\"mapped\",[31520]],[[63993,63993],\"mapped\",[31890]],[[63994,63994],\"mapped\",[29376]],[[63995,63995],\"mapped\",[28825]],[[63996,63996],\"mapped\",[35672]],[[63997,63997],\"mapped\",[20160]],[[63998,63998],\"mapped\",[33590]],[[63999,63999],\"mapped\",[21050]],[[64000,64000],\"mapped\",[20999]],[[64001,64001],\"mapped\",[24230]],[[64002,64002],\"mapped\",[25299]],[[64003,64003],\"mapped\",[31958]],[[64004,64004],\"mapped\",[23429]],[[64005,64005],\"mapped\",[27934]],[[64006,64006],\"mapped\",[26292]],[[64007,64007],\"mapped\",[36667]],[[64008,64008],\"mapped\",[34892]],[[64009,64009],\"mapped\",[38477]],[[64010,64010],\"mapped\",[35211]],[[64011,64011],\"mapped\",[24275]],[[64012,64012],\"mapped\",[20800]],[[64013,64013],\"mapped\",[21952]],[[64014,64015],\"valid\"],[[64016,64016],\"mapped\",[22618]],[[64017,64017],\"valid\"],[[64018,64018],\"mapped\",[26228]],[[64019,64020],\"valid\"],[[64021,64021],\"mapped\",[20958]],[[64022,64022],\"mapped\",[29482]],[[64023,64023],\"mapped\",[30410]],[[64024,64024],\"mapped\",[31036]],[[64025,64025],\"mapped\",[31070]],[[64026,64026],\"mapped\",[31077]],[[64027,64027],\"mapped\",[31119]],[[64028,64028],\"mapped\",[38742]],[[64029,64029],\"mapped\",[31934]],[[64030,64030],\"mapped\",[32701]],[[64031,64031],\"valid\"],[[64032,64032],\"mapped\",[34322]],[[64033,64033],\"valid\"],[[64034,64034],\"mapped\",[35576]],[[64035,64036],\"valid\"],[[64037,64037],\"mapped\",[36920]],[[64038,64038],\"mapped\",[37117]],[[64039,64041],\"valid\"],[[64042,64042],\"mapped\",[39151]],[[64043,64043],\"mapped\",[39164]],[[64044,64044],\"mapped\",[39208]],[[64045,64045],\"mapped\",[40372]],[[64046,64046],\"mapped\",[37086]],[[64047,64047],\"mapped\",[38583]],[[64048,64048],\"mapped\",[20398]],[[64049,64049],\"mapped\",[20711]],[[64050,64050],\"mapped\",[20813]],[[64051,64051],\"mapped\",[21193]],[[64052,64052],\"mapped\",[21220]],[[64053,64053],\"mapped\",[21329]],[[64054,64054],\"mapped\",[21917]],[[64055,64055],\"mapped\",[22022]],[[64056,64056],\"mapped\",[22120]],[[64057,64057],\"mapped\",[22592]],[[64058,64058],\"mapped\",[22696]],[[64059,64059],\"mapped\",[23652]],[[64060,64060],\"mapped\",[23662]],[[64061,64061],\"mapped\",[24724]],[[64062,64062],\"mapped\",[24936]],[[64063,64063],\"mapped\",[24974]],[[64064,64064],\"mapped\",[25074]],[[64065,64065],\"mapped\",[25935]],[[64066,64066],\"mapped\",[26082]],[[64067,64067],\"mapped\",[26257]],[[64068,64068],\"mapped\",[26757]],[[64069,64069],\"mapped\",[28023]],[[64070,64070],\"mapped\",[28186]],[[64071,64071],\"mapped\",[28450]],[[64072,64072],\"mapped\",[29038]],[[64073,64073],\"mapped\",[29227]],[[64074,64074],\"mapped\",[29730]],[[64075,64075],\"mapped\",[30865]],[[64076,64076],\"mapped\",[31038]],[[64077,64077],\"mapped\",[31049]],[[64078,64078],\"mapped\",[31048]],[[64079,64079],\"mapped\",[31056]],[[64080,64080],\"mapped\",[31062]],[[64081,64081],\"mapped\",[31069]],[[64082,64082],\"mapped\",[31117]],[[64083,64083],\"mapped\",[31118]],[[64084,64084],\"mapped\",[31296]],[[64085,64085],\"mapped\",[31361]],[[64086,64086],\"mapped\",[31680]],[[64087,64087],\"mapped\",[32244]],[[64088,64088],\"mapped\",[32265]],[[64089,64089],\"mapped\",[32321]],[[64090,64090],\"mapped\",[32626]],[[64091,64091],\"mapped\",[32773]],[[64092,64092],\"mapped\",[33261]],[[64093,64094],\"mapped\",[33401]],[[64095,64095],\"mapped\",[33879]],[[64096,64096],\"mapped\",[35088]],[[64097,64097],\"mapped\",[35222]],[[64098,64098],\"mapped\",[35585]],[[64099,64099],\"mapped\",[35641]],[[64100,64100],\"mapped\",[36051]],[[64101,64101],\"mapped\",[36104]],[[64102,64102],\"mapped\",[36790]],[[64103,64103],\"mapped\",[36920]],[[64104,64104],\"mapped\",[38627]],[[64105,64105],\"mapped\",[38911]],[[64106,64106],\"mapped\",[38971]],[[64107,64107],\"mapped\",[24693]],[[64108,64108],\"mapped\",[148206]],[[64109,64109],\"mapped\",[33304]],[[64110,64111],\"disallowed\"],[[64112,64112],\"mapped\",[20006]],[[64113,64113],\"mapped\",[20917]],[[64114,64114],\"mapped\",[20840]],[[64115,64115],\"mapped\",[20352]],[[64116,64116],\"mapped\",[20805]],[[64117,64117],\"mapped\",[20864]],[[64118,64118],\"mapped\",[21191]],[[64119,64119],\"mapped\",[21242]],[[64120,64120],\"mapped\",[21917]],[[64121,64121],\"mapped\",[21845]],[[64122,64122],\"mapped\",[21913]],[[64123,64123],\"mapped\",[21986]],[[64124,64124],\"mapped\",[22618]],[[64125,64125],\"mapped\",[22707]],[[64126,64126],\"mapped\",[22852]],[[64127,64127],\"mapped\",[22868]],[[64128,64128],\"mapped\",[23138]],[[64129,64129],\"mapped\",[23336]],[[64130,64130],\"mapped\",[24274]],[[64131,64131],\"mapped\",[24281]],[[64132,64132],\"mapped\",[24425]],[[64133,64133],\"mapped\",[24493]],[[64134,64134],\"mapped\",[24792]],[[64135,64135],\"mapped\",[24910]],[[64136,64136],\"mapped\",[24840]],[[64137,64137],\"mapped\",[24974]],[[64138,64138],\"mapped\",[24928]],[[64139,64139],\"mapped\",[25074]],[[64140,64140],\"mapped\",[25140]],[[64141,64141],\"mapped\",[25540]],[[64142,64142],\"mapped\",[25628]],[[64143,64143],\"mapped\",[25682]],[[64144,64144],\"mapped\",[25942]],[[64145,64145],\"mapped\",[26228]],[[64146,64146],\"mapped\",[26391]],[[64147,64147],\"mapped\",[26395]],[[64148,64148],\"mapped\",[26454]],[[64149,64149],\"mapped\",[27513]],[[64150,64150],\"mapped\",[27578]],[[64151,64151],\"mapped\",[27969]],[[64152,64152],\"mapped\",[28379]],[[64153,64153],\"mapped\",[28363]],[[64154,64154],\"mapped\",[28450]],[[64155,64155],\"mapped\",[28702]],[[64156,64156],\"mapped\",[29038]],[[64157,64157],\"mapped\",[30631]],[[64158,64158],\"mapped\",[29237]],[[64159,64159],\"mapped\",[29359]],[[64160,64160],\"mapped\",[29482]],[[64161,64161],\"mapped\",[29809]],[[64162,64162],\"mapped\",[29958]],[[64163,64163],\"mapped\",[30011]],[[64164,64164],\"mapped\",[30237]],[[64165,64165],\"mapped\",[30239]],[[64166,64166],\"mapped\",[30410]],[[64167,64167],\"mapped\",[30427]],[[64168,64168],\"mapped\",[30452]],[[64169,64169],\"mapped\",[30538]],[[64170,64170],\"mapped\",[30528]],[[64171,64171],\"mapped\",[30924]],[[64172,64172],\"mapped\",[31409]],[[64173,64173],\"mapped\",[31680]],[[64174,64174],\"mapped\",[31867]],[[64175,64175],\"mapped\",[32091]],[[64176,64176],\"mapped\",[32244]],[[64177,64177],\"mapped\",[32574]],[[64178,64178],\"mapped\",[32773]],[[64179,64179],\"mapped\",[33618]],[[64180,64180],\"mapped\",[33775]],[[64181,64181],\"mapped\",[34681]],[[64182,64182],\"mapped\",[35137]],[[64183,64183],\"mapped\",[35206]],[[64184,64184],\"mapped\",[35222]],[[64185,64185],\"mapped\",[35519]],[[64186,64186],\"mapped\",[35576]],[[64187,64187],\"mapped\",[35531]],[[64188,64188],\"mapped\",[35585]],[[64189,64189],\"mapped\",[35582]],[[64190,64190],\"mapped\",[35565]],[[64191,64191],\"mapped\",[35641]],[[64192,64192],\"mapped\",[35722]],[[64193,64193],\"mapped\",[36104]],[[64194,64194],\"mapped\",[36664]],[[64195,64195],\"mapped\",[36978]],[[64196,64196],\"mapped\",[37273]],[[64197,64197],\"mapped\",[37494]],[[64198,64198],\"mapped\",[38524]],[[64199,64199],\"mapped\",[38627]],[[64200,64200],\"mapped\",[38742]],[[64201,64201],\"mapped\",[38875]],[[64202,64202],\"mapped\",[38911]],[[64203,64203],\"mapped\",[38923]],[[64204,64204],\"mapped\",[38971]],[[64205,64205],\"mapped\",[39698]],[[64206,64206],\"mapped\",[40860]],[[64207,64207],\"mapped\",[141386]],[[64208,64208],\"mapped\",[141380]],[[64209,64209],\"mapped\",[144341]],[[64210,64210],\"mapped\",[15261]],[[64211,64211],\"mapped\",[16408]],[[64212,64212],\"mapped\",[16441]],[[64213,64213],\"mapped\",[152137]],[[64214,64214],\"mapped\",[154832]],[[64215,64215],\"mapped\",[163539]],[[64216,64216],\"mapped\",[40771]],[[64217,64217],\"mapped\",[40846]],[[64218,64255],\"disallowed\"],[[64256,64256],\"mapped\",[102,102]],[[64257,64257],\"mapped\",[102,105]],[[64258,64258],\"mapped\",[102,108]],[[64259,64259],\"mapped\",[102,102,105]],[[64260,64260],\"mapped\",[102,102,108]],[[64261,64262],\"mapped\",[115,116]],[[64263,64274],\"disallowed\"],[[64275,64275],\"mapped\",[1396,1398]],[[64276,64276],\"mapped\",[1396,1381]],[[64277,64277],\"mapped\",[1396,1387]],[[64278,64278],\"mapped\",[1406,1398]],[[64279,64279],\"mapped\",[1396,1389]],[[64280,64284],\"disallowed\"],[[64285,64285],\"mapped\",[1497,1460]],[[64286,64286],\"valid\"],[[64287,64287],\"mapped\",[1522,1463]],[[64288,64288],\"mapped\",[1506]],[[64289,64289],\"mapped\",[1488]],[[64290,64290],\"mapped\",[1491]],[[64291,64291],\"mapped\",[1492]],[[64292,64292],\"mapped\",[1499]],[[64293,64293],\"mapped\",[1500]],[[64294,64294],\"mapped\",[1501]],[[64295,64295],\"mapped\",[1512]],[[64296,64296],\"mapped\",[1514]],[[64297,64297],\"disallowed_STD3_mapped\",[43]],[[64298,64298],\"mapped\",[1513,1473]],[[64299,64299],\"mapped\",[1513,1474]],[[64300,64300],\"mapped\",[1513,1468,1473]],[[64301,64301],\"mapped\",[1513,1468,1474]],[[64302,64302],\"mapped\",[1488,1463]],[[64303,64303],\"mapped\",[1488,1464]],[[64304,64304],\"mapped\",[1488,1468]],[[64305,64305],\"mapped\",[1489,1468]],[[64306,64306],\"mapped\",[1490,1468]],[[64307,64307],\"mapped\",[1491,1468]],[[64308,64308],\"mapped\",[1492,1468]],[[64309,64309],\"mapped\",[1493,1468]],[[64310,64310],\"mapped\",[1494,1468]],[[64311,64311],\"disallowed\"],[[64312,64312],\"mapped\",[1496,1468]],[[64313,64313],\"mapped\",[1497,1468]],[[64314,64314],\"mapped\",[1498,1468]],[[64315,64315],\"mapped\",[1499,1468]],[[64316,64316],\"mapped\",[1500,1468]],[[64317,64317],\"disallowed\"],[[64318,64318],\"mapped\",[1502,1468]],[[64319,64319],\"disallowed\"],[[64320,64320],\"mapped\",[1504,1468]],[[64321,64321],\"mapped\",[1505,1468]],[[64322,64322],\"disallowed\"],[[64323,64323],\"mapped\",[1507,1468]],[[64324,64324],\"mapped\",[1508,1468]],[[64325,64325],\"disallowed\"],[[64326,64326],\"mapped\",[1510,1468]],[[64327,64327],\"mapped\",[1511,1468]],[[64328,64328],\"mapped\",[1512,1468]],[[64329,64329],\"mapped\",[1513,1468]],[[64330,64330],\"mapped\",[1514,1468]],[[64331,64331],\"mapped\",[1493,1465]],[[64332,64332],\"mapped\",[1489,1471]],[[64333,64333],\"mapped\",[1499,1471]],[[64334,64334],\"mapped\",[1508,1471]],[[64335,64335],\"mapped\",[1488,1500]],[[64336,64337],\"mapped\",[1649]],[[64338,64341],\"mapped\",[1659]],[[64342,64345],\"mapped\",[1662]],[[64346,64349],\"mapped\",[1664]],[[64350,64353],\"mapped\",[1658]],[[64354,64357],\"mapped\",[1663]],[[64358,64361],\"mapped\",[1657]],[[64362,64365],\"mapped\",[1700]],[[64366,64369],\"mapped\",[1702]],[[64370,64373],\"mapped\",[1668]],[[64374,64377],\"mapped\",[1667]],[[64378,64381],\"mapped\",[1670]],[[64382,64385],\"mapped\",[1671]],[[64386,64387],\"mapped\",[1677]],[[64388,64389],\"mapped\",[1676]],[[64390,64391],\"mapped\",[1678]],[[64392,64393],\"mapped\",[1672]],[[64394,64395],\"mapped\",[1688]],[[64396,64397],\"mapped\",[1681]],[[64398,64401],\"mapped\",[1705]],[[64402,64405],\"mapped\",[1711]],[[64406,64409],\"mapped\",[1715]],[[64410,64413],\"mapped\",[1713]],[[64414,64415],\"mapped\",[1722]],[[64416,64419],\"mapped\",[1723]],[[64420,64421],\"mapped\",[1728]],[[64422,64425],\"mapped\",[1729]],[[64426,64429],\"mapped\",[1726]],[[64430,64431],\"mapped\",[1746]],[[64432,64433],\"mapped\",[1747]],[[64434,64449],\"valid\",[],\"NV8\"],[[64450,64466],\"disallowed\"],[[64467,64470],\"mapped\",[1709]],[[64471,64472],\"mapped\",[1735]],[[64473,64474],\"mapped\",[1734]],[[64475,64476],\"mapped\",[1736]],[[64477,64477],\"mapped\",[1735,1652]],[[64478,64479],\"mapped\",[1739]],[[64480,64481],\"mapped\",[1733]],[[64482,64483],\"mapped\",[1737]],[[64484,64487],\"mapped\",[1744]],[[64488,64489],\"mapped\",[1609]],[[64490,64491],\"mapped\",[1574,1575]],[[64492,64493],\"mapped\",[1574,1749]],[[64494,64495],\"mapped\",[1574,1608]],[[64496,64497],\"mapped\",[1574,1735]],[[64498,64499],\"mapped\",[1574,1734]],[[64500,64501],\"mapped\",[1574,1736]],[[64502,64504],\"mapped\",[1574,1744]],[[64505,64507],\"mapped\",[1574,1609]],[[64508,64511],\"mapped\",[1740]],[[64512,64512],\"mapped\",[1574,1580]],[[64513,64513],\"mapped\",[1574,1581]],[[64514,64514],\"mapped\",[1574,1605]],[[64515,64515],\"mapped\",[1574,1609]],[[64516,64516],\"mapped\",[1574,1610]],[[64517,64517],\"mapped\",[1576,1580]],[[64518,64518],\"mapped\",[1576,1581]],[[64519,64519],\"mapped\",[1576,1582]],[[64520,64520],\"mapped\",[1576,1605]],[[64521,64521],\"mapped\",[1576,1609]],[[64522,64522],\"mapped\",[1576,1610]],[[64523,64523],\"mapped\",[1578,1580]],[[64524,64524],\"mapped\",[1578,1581]],[[64525,64525],\"mapped\",[1578,1582]],[[64526,64526],\"mapped\",[1578,1605]],[[64527,64527],\"mapped\",[1578,1609]],[[64528,64528],\"mapped\",[1578,1610]],[[64529,64529],\"mapped\",[1579,1580]],[[64530,64530],\"mapped\",[1579,1605]],[[64531,64531],\"mapped\",[1579,1609]],[[64532,64532],\"mapped\",[1579,1610]],[[64533,64533],\"mapped\",[1580,1581]],[[64534,64534],\"mapped\",[1580,1605]],[[64535,64535],\"mapped\",[1581,1580]],[[64536,64536],\"mapped\",[1581,1605]],[[64537,64537],\"mapped\",[1582,1580]],[[64538,64538],\"mapped\",[1582,1581]],[[64539,64539],\"mapped\",[1582,1605]],[[64540,64540],\"mapped\",[1587,1580]],[[64541,64541],\"mapped\",[1587,1581]],[[64542,64542],\"mapped\",[1587,1582]],[[64543,64543],\"mapped\",[1587,1605]],[[64544,64544],\"mapped\",[1589,1581]],[[64545,64545],\"mapped\",[1589,1605]],[[64546,64546],\"mapped\",[1590,1580]],[[64547,64547],\"mapped\",[1590,1581]],[[64548,64548],\"mapped\",[1590,1582]],[[64549,64549],\"mapped\",[1590,1605]],[[64550,64550],\"mapped\",[1591,1581]],[[64551,64551],\"mapped\",[1591,1605]],[[64552,64552],\"mapped\",[1592,1605]],[[64553,64553],\"mapped\",[1593,1580]],[[64554,64554],\"mapped\",[1593,1605]],[[64555,64555],\"mapped\",[1594,1580]],[[64556,64556],\"mapped\",[1594,1605]],[[64557,64557],\"mapped\",[1601,1580]],[[64558,64558],\"mapped\",[1601,1581]],[[64559,64559],\"mapped\",[1601,1582]],[[64560,64560],\"mapped\",[1601,1605]],[[64561,64561],\"mapped\",[1601,1609]],[[64562,64562],\"mapped\",[1601,1610]],[[64563,64563],\"mapped\",[1602,1581]],[[64564,64564],\"mapped\",[1602,1605]],[[64565,64565],\"mapped\",[1602,1609]],[[64566,64566],\"mapped\",[1602,1610]],[[64567,64567],\"mapped\",[1603,1575]],[[64568,64568],\"mapped\",[1603,1580]],[[64569,64569],\"mapped\",[1603,1581]],[[64570,64570],\"mapped\",[1603,1582]],[[64571,64571],\"mapped\",[1603,1604]],[[64572,64572],\"mapped\",[1603,1605]],[[64573,64573],\"mapped\",[1603,1609]],[[64574,64574],\"mapped\",[1603,1610]],[[64575,64575],\"mapped\",[1604,1580]],[[64576,64576],\"mapped\",[1604,1581]],[[64577,64577],\"mapped\",[1604,1582]],[[64578,64578],\"mapped\",[1604,1605]],[[64579,64579],\"mapped\",[1604,1609]],[[64580,64580],\"mapped\",[1604,1610]],[[64581,64581],\"mapped\",[1605,1580]],[[64582,64582],\"mapped\",[1605,1581]],[[64583,64583],\"mapped\",[1605,1582]],[[64584,64584],\"mapped\",[1605,1605]],[[64585,64585],\"mapped\",[1605,1609]],[[64586,64586],\"mapped\",[1605,1610]],[[64587,64587],\"mapped\",[1606,1580]],[[64588,64588],\"mapped\",[1606,1581]],[[64589,64589],\"mapped\",[1606,1582]],[[64590,64590],\"mapped\",[1606,1605]],[[64591,64591],\"mapped\",[1606,1609]],[[64592,64592],\"mapped\",[1606,1610]],[[64593,64593],\"mapped\",[1607,1580]],[[64594,64594],\"mapped\",[1607,1605]],[[64595,64595],\"mapped\",[1607,1609]],[[64596,64596],\"mapped\",[1607,1610]],[[64597,64597],\"mapped\",[1610,1580]],[[64598,64598],\"mapped\",[1610,1581]],[[64599,64599],\"mapped\",[1610,1582]],[[64600,64600],\"mapped\",[1610,1605]],[[64601,64601],\"mapped\",[1610,1609]],[[64602,64602],\"mapped\",[1610,1610]],[[64603,64603],\"mapped\",[1584,1648]],[[64604,64604],\"mapped\",[1585,1648]],[[64605,64605],\"mapped\",[1609,1648]],[[64606,64606],\"disallowed_STD3_mapped\",[32,1612,1617]],[[64607,64607],\"disallowed_STD3_mapped\",[32,1613,1617]],[[64608,64608],\"disallowed_STD3_mapped\",[32,1614,1617]],[[64609,64609],\"disallowed_STD3_mapped\",[32,1615,1617]],[[64610,64610],\"disallowed_STD3_mapped\",[32,1616,1617]],[[64611,64611],\"disallowed_STD3_mapped\",[32,1617,1648]],[[64612,64612],\"mapped\",[1574,1585]],[[64613,64613],\"mapped\",[1574,1586]],[[64614,64614],\"mapped\",[1574,1605]],[[64615,64615],\"mapped\",[1574,1606]],[[64616,64616],\"mapped\",[1574,1609]],[[64617,64617],\"mapped\",[1574,1610]],[[64618,64618],\"mapped\",[1576,1585]],[[64619,64619],\"mapped\",[1576,1586]],[[64620,64620],\"mapped\",[1576,1605]],[[64621,64621],\"mapped\",[1576,1606]],[[64622,64622],\"mapped\",[1576,1609]],[[64623,64623],\"mapped\",[1576,1610]],[[64624,64624],\"mapped\",[1578,1585]],[[64625,64625],\"mapped\",[1578,1586]],[[64626,64626],\"mapped\",[1578,1605]],[[64627,64627],\"mapped\",[1578,1606]],[[64628,64628],\"mapped\",[1578,1609]],[[64629,64629],\"mapped\",[1578,1610]],[[64630,64630],\"mapped\",[1579,1585]],[[64631,64631],\"mapped\",[1579,1586]],[[64632,64632],\"mapped\",[1579,1605]],[[64633,64633],\"mapped\",[1579,1606]],[[64634,64634],\"mapped\",[1579,1609]],[[64635,64635],\"mapped\",[1579,1610]],[[64636,64636],\"mapped\",[1601,1609]],[[64637,64637],\"mapped\",[1601,1610]],[[64638,64638],\"mapped\",[1602,1609]],[[64639,64639],\"mapped\",[1602,1610]],[[64640,64640],\"mapped\",[1603,1575]],[[64641,64641],\"mapped\",[1603,1604]],[[64642,64642],\"mapped\",[1603,1605]],[[64643,64643],\"mapped\",[1603,1609]],[[64644,64644],\"mapped\",[1603,1610]],[[64645,64645],\"mapped\",[1604,1605]],[[64646,64646],\"mapped\",[1604,1609]],[[64647,64647],\"mapped\",[1604,1610]],[[64648,64648],\"mapped\",[1605,1575]],[[64649,64649],\"mapped\",[1605,1605]],[[64650,64650],\"mapped\",[1606,1585]],[[64651,64651],\"mapped\",[1606,1586]],[[64652,64652],\"mapped\",[1606,1605]],[[64653,64653],\"mapped\",[1606,1606]],[[64654,64654],\"mapped\",[1606,1609]],[[64655,64655],\"mapped\",[1606,1610]],[[64656,64656],\"mapped\",[1609,1648]],[[64657,64657],\"mapped\",[1610,1585]],[[64658,64658],\"mapped\",[1610,1586]],[[64659,64659],\"mapped\",[1610,1605]],[[64660,64660],\"mapped\",[1610,1606]],[[64661,64661],\"mapped\",[1610,1609]],[[64662,64662],\"mapped\",[1610,1610]],[[64663,64663],\"mapped\",[1574,1580]],[[64664,64664],\"mapped\",[1574,1581]],[[64665,64665],\"mapped\",[1574,1582]],[[64666,64666],\"mapped\",[1574,1605]],[[64667,64667],\"mapped\",[1574,1607]],[[64668,64668],\"mapped\",[1576,1580]],[[64669,64669],\"mapped\",[1576,1581]],[[64670,64670],\"mapped\",[1576,1582]],[[64671,64671],\"mapped\",[1576,1605]],[[64672,64672],\"mapped\",[1576,1607]],[[64673,64673],\"mapped\",[1578,1580]],[[64674,64674],\"mapped\",[1578,1581]],[[64675,64675],\"mapped\",[1578,1582]],[[64676,64676],\"mapped\",[1578,1605]],[[64677,64677],\"mapped\",[1578,1607]],[[64678,64678],\"mapped\",[1579,1605]],[[64679,64679],\"mapped\",[1580,1581]],[[64680,64680],\"mapped\",[1580,1605]],[[64681,64681],\"mapped\",[1581,1580]],[[64682,64682],\"mapped\",[1581,1605]],[[64683,64683],\"mapped\",[1582,1580]],[[64684,64684],\"mapped\",[1582,1605]],[[64685,64685],\"mapped\",[1587,1580]],[[64686,64686],\"mapped\",[1587,1581]],[[64687,64687],\"mapped\",[1587,1582]],[[64688,64688],\"mapped\",[1587,1605]],[[64689,64689],\"mapped\",[1589,1581]],[[64690,64690],\"mapped\",[1589,1582]],[[64691,64691],\"mapped\",[1589,1605]],[[64692,64692],\"mapped\",[1590,1580]],[[64693,64693],\"mapped\",[1590,1581]],[[64694,64694],\"mapped\",[1590,1582]],[[64695,64695],\"mapped\",[1590,1605]],[[64696,64696],\"mapped\",[1591,1581]],[[64697,64697],\"mapped\",[1592,1605]],[[64698,64698],\"mapped\",[1593,1580]],[[64699,64699],\"mapped\",[1593,1605]],[[64700,64700],\"mapped\",[1594,1580]],[[64701,64701],\"mapped\",[1594,1605]],[[64702,64702],\"mapped\",[1601,1580]],[[64703,64703],\"mapped\",[1601,1581]],[[64704,64704],\"mapped\",[1601,1582]],[[64705,64705],\"mapped\",[1601,1605]],[[64706,64706],\"mapped\",[1602,1581]],[[64707,64707],\"mapped\",[1602,1605]],[[64708,64708],\"mapped\",[1603,1580]],[[64709,64709],\"mapped\",[1603,1581]],[[64710,64710],\"mapped\",[1603,1582]],[[64711,64711],\"mapped\",[1603,1604]],[[64712,64712],\"mapped\",[1603,1605]],[[64713,64713],\"mapped\",[1604,1580]],[[64714,64714],\"mapped\",[1604,1581]],[[64715,64715],\"mapped\",[1604,1582]],[[64716,64716],\"mapped\",[1604,1605]],[[64717,64717],\"mapped\",[1604,1607]],[[64718,64718],\"mapped\",[1605,1580]],[[64719,64719],\"mapped\",[1605,1581]],[[64720,64720],\"mapped\",[1605,1582]],[[64721,64721],\"mapped\",[1605,1605]],[[64722,64722],\"mapped\",[1606,1580]],[[64723,64723],\"mapped\",[1606,1581]],[[64724,64724],\"mapped\",[1606,1582]],[[64725,64725],\"mapped\",[1606,1605]],[[64726,64726],\"mapped\",[1606,1607]],[[64727,64727],\"mapped\",[1607,1580]],[[64728,64728],\"mapped\",[1607,1605]],[[64729,64729],\"mapped\",[1607,1648]],[[64730,64730],\"mapped\",[1610,1580]],[[64731,64731],\"mapped\",[1610,1581]],[[64732,64732],\"mapped\",[1610,1582]],[[64733,64733],\"mapped\",[1610,1605]],[[64734,64734],\"mapped\",[1610,1607]],[[64735,64735],\"mapped\",[1574,1605]],[[64736,64736],\"mapped\",[1574,1607]],[[64737,64737],\"mapped\",[1576,1605]],[[64738,64738],\"mapped\",[1576,1607]],[[64739,64739],\"mapped\",[1578,1605]],[[64740,64740],\"mapped\",[1578,1607]],[[64741,64741],\"mapped\",[1579,1605]],[[64742,64742],\"mapped\",[1579,1607]],[[64743,64743],\"mapped\",[1587,1605]],[[64744,64744],\"mapped\",[1587,1607]],[[64745,64745],\"mapped\",[1588,1605]],[[64746,64746],\"mapped\",[1588,1607]],[[64747,64747],\"mapped\",[1603,1604]],[[64748,64748],\"mapped\",[1603,1605]],[[64749,64749],\"mapped\",[1604,1605]],[[64750,64750],\"mapped\",[1606,1605]],[[64751,64751],\"mapped\",[1606,1607]],[[64752,64752],\"mapped\",[1610,1605]],[[64753,64753],\"mapped\",[1610,1607]],[[64754,64754],\"mapped\",[1600,1614,1617]],[[64755,64755],\"mapped\",[1600,1615,1617]],[[64756,64756],\"mapped\",[1600,1616,1617]],[[64757,64757],\"mapped\",[1591,1609]],[[64758,64758],\"mapped\",[1591,1610]],[[64759,64759],\"mapped\",[1593,1609]],[[64760,64760],\"mapped\",[1593,1610]],[[64761,64761],\"mapped\",[1594,1609]],[[64762,64762],\"mapped\",[1594,1610]],[[64763,64763],\"mapped\",[1587,1609]],[[64764,64764],\"mapped\",[1587,1610]],[[64765,64765],\"mapped\",[1588,1609]],[[64766,64766],\"mapped\",[1588,1610]],[[64767,64767],\"mapped\",[1581,1609]],[[64768,64768],\"mapped\",[1581,1610]],[[64769,64769],\"mapped\",[1580,1609]],[[64770,64770],\"mapped\",[1580,1610]],[[64771,64771],\"mapped\",[1582,1609]],[[64772,64772],\"mapped\",[1582,1610]],[[64773,64773],\"mapped\",[1589,1609]],[[64774,64774],\"mapped\",[1589,1610]],[[64775,64775],\"mapped\",[1590,1609]],[[64776,64776],\"mapped\",[1590,1610]],[[64777,64777],\"mapped\",[1588,1580]],[[64778,64778],\"mapped\",[1588,1581]],[[64779,64779],\"mapped\",[1588,1582]],[[64780,64780],\"mapped\",[1588,1605]],[[64781,64781],\"mapped\",[1588,1585]],[[64782,64782],\"mapped\",[1587,1585]],[[64783,64783],\"mapped\",[1589,1585]],[[64784,64784],\"mapped\",[1590,1585]],[[64785,64785],\"mapped\",[1591,1609]],[[64786,64786],\"mapped\",[1591,1610]],[[64787,64787],\"mapped\",[1593,1609]],[[64788,64788],\"mapped\",[1593,1610]],[[64789,64789],\"mapped\",[1594,1609]],[[64790,64790],\"mapped\",[1594,1610]],[[64791,64791],\"mapped\",[1587,1609]],[[64792,64792],\"mapped\",[1587,1610]],[[64793,64793],\"mapped\",[1588,1609]],[[64794,64794],\"mapped\",[1588,1610]],[[64795,64795],\"mapped\",[1581,1609]],[[64796,64796],\"mapped\",[1581,1610]],[[64797,64797],\"mapped\",[1580,1609]],[[64798,64798],\"mapped\",[1580,1610]],[[64799,64799],\"mapped\",[1582,1609]],[[64800,64800],\"mapped\",[1582,1610]],[[64801,64801],\"mapped\",[1589,1609]],[[64802,64802],\"mapped\",[1589,1610]],[[64803,64803],\"mapped\",[1590,1609]],[[64804,64804],\"mapped\",[1590,1610]],[[64805,64805],\"mapped\",[1588,1580]],[[64806,64806],\"mapped\",[1588,1581]],[[64807,64807],\"mapped\",[1588,1582]],[[64808,64808],\"mapped\",[1588,1605]],[[64809,64809],\"mapped\",[1588,1585]],[[64810,64810],\"mapped\",[1587,1585]],[[64811,64811],\"mapped\",[1589,1585]],[[64812,64812],\"mapped\",[1590,1585]],[[64813,64813],\"mapped\",[1588,1580]],[[64814,64814],\"mapped\",[1588,1581]],[[64815,64815],\"mapped\",[1588,1582]],[[64816,64816],\"mapped\",[1588,1605]],[[64817,64817],\"mapped\",[1587,1607]],[[64818,64818],\"mapped\",[1588,1607]],[[64819,64819],\"mapped\",[1591,1605]],[[64820,64820],\"mapped\",[1587,1580]],[[64821,64821],\"mapped\",[1587,1581]],[[64822,64822],\"mapped\",[1587,1582]],[[64823,64823],\"mapped\",[1588,1580]],[[64824,64824],\"mapped\",[1588,1581]],[[64825,64825],\"mapped\",[1588,1582]],[[64826,64826],\"mapped\",[1591,1605]],[[64827,64827],\"mapped\",[1592,1605]],[[64828,64829],\"mapped\",[1575,1611]],[[64830,64831],\"valid\",[],\"NV8\"],[[64832,64847],\"disallowed\"],[[64848,64848],\"mapped\",[1578,1580,1605]],[[64849,64850],\"mapped\",[1578,1581,1580]],[[64851,64851],\"mapped\",[1578,1581,1605]],[[64852,64852],\"mapped\",[1578,1582,1605]],[[64853,64853],\"mapped\",[1578,1605,1580]],[[64854,64854],\"mapped\",[1578,1605,1581]],[[64855,64855],\"mapped\",[1578,1605,1582]],[[64856,64857],\"mapped\",[1580,1605,1581]],[[64858,64858],\"mapped\",[1581,1605,1610]],[[64859,64859],\"mapped\",[1581,1605,1609]],[[64860,64860],\"mapped\",[1587,1581,1580]],[[64861,64861],\"mapped\",[1587,1580,1581]],[[64862,64862],\"mapped\",[1587,1580,1609]],[[64863,64864],\"mapped\",[1587,1605,1581]],[[64865,64865],\"mapped\",[1587,1605,1580]],[[64866,64867],\"mapped\",[1587,1605,1605]],[[64868,64869],\"mapped\",[1589,1581,1581]],[[64870,64870],\"mapped\",[1589,1605,1605]],[[64871,64872],\"mapped\",[1588,1581,1605]],[[64873,64873],\"mapped\",[1588,1580,1610]],[[64874,64875],\"mapped\",[1588,1605,1582]],[[64876,64877],\"mapped\",[1588,1605,1605]],[[64878,64878],\"mapped\",[1590,1581,1609]],[[64879,64880],\"mapped\",[1590,1582,1605]],[[64881,64882],\"mapped\",[1591,1605,1581]],[[64883,64883],\"mapped\",[1591,1605,1605]],[[64884,64884],\"mapped\",[1591,1605,1610]],[[64885,64885],\"mapped\",[1593,1580,1605]],[[64886,64887],\"mapped\",[1593,1605,1605]],[[64888,64888],\"mapped\",[1593,1605,1609]],[[64889,64889],\"mapped\",[1594,1605,1605]],[[64890,64890],\"mapped\",[1594,1605,1610]],[[64891,64891],\"mapped\",[1594,1605,1609]],[[64892,64893],\"mapped\",[1601,1582,1605]],[[64894,64894],\"mapped\",[1602,1605,1581]],[[64895,64895],\"mapped\",[1602,1605,1605]],[[64896,64896],\"mapped\",[1604,1581,1605]],[[64897,64897],\"mapped\",[1604,1581,1610]],[[64898,64898],\"mapped\",[1604,1581,1609]],[[64899,64900],\"mapped\",[1604,1580,1580]],[[64901,64902],\"mapped\",[1604,1582,1605]],[[64903,64904],\"mapped\",[1604,1605,1581]],[[64905,64905],\"mapped\",[1605,1581,1580]],[[64906,64906],\"mapped\",[1605,1581,1605]],[[64907,64907],\"mapped\",[1605,1581,1610]],[[64908,64908],\"mapped\",[1605,1580,1581]],[[64909,64909],\"mapped\",[1605,1580,1605]],[[64910,64910],\"mapped\",[1605,1582,1580]],[[64911,64911],\"mapped\",[1605,1582,1605]],[[64912,64913],\"disallowed\"],[[64914,64914],\"mapped\",[1605,1580,1582]],[[64915,64915],\"mapped\",[1607,1605,1580]],[[64916,64916],\"mapped\",[1607,1605,1605]],[[64917,64917],\"mapped\",[1606,1581,1605]],[[64918,64918],\"mapped\",[1606,1581,1609]],[[64919,64920],\"mapped\",[1606,1580,1605]],[[64921,64921],\"mapped\",[1606,1580,1609]],[[64922,64922],\"mapped\",[1606,1605,1610]],[[64923,64923],\"mapped\",[1606,1605,1609]],[[64924,64925],\"mapped\",[1610,1605,1605]],[[64926,64926],\"mapped\",[1576,1582,1610]],[[64927,64927],\"mapped\",[1578,1580,1610]],[[64928,64928],\"mapped\",[1578,1580,1609]],[[64929,64929],\"mapped\",[1578,1582,1610]],[[64930,64930],\"mapped\",[1578,1582,1609]],[[64931,64931],\"mapped\",[1578,1605,1610]],[[64932,64932],\"mapped\",[1578,1605,1609]],[[64933,64933],\"mapped\",[1580,1605,1610]],[[64934,64934],\"mapped\",[1580,1581,1609]],[[64935,64935],\"mapped\",[1580,1605,1609]],[[64936,64936],\"mapped\",[1587,1582,1609]],[[64937,64937],\"mapped\",[1589,1581,1610]],[[64938,64938],\"mapped\",[1588,1581,1610]],[[64939,64939],\"mapped\",[1590,1581,1610]],[[64940,64940],\"mapped\",[1604,1580,1610]],[[64941,64941],\"mapped\",[1604,1605,1610]],[[64942,64942],\"mapped\",[1610,1581,1610]],[[64943,64943],\"mapped\",[1610,1580,1610]],[[64944,64944],\"mapped\",[1610,1605,1610]],[[64945,64945],\"mapped\",[1605,1605,1610]],[[64946,64946],\"mapped\",[1602,1605,1610]],[[64947,64947],\"mapped\",[1606,1581,1610]],[[64948,64948],\"mapped\",[1602,1605,1581]],[[64949,64949],\"mapped\",[1604,1581,1605]],[[64950,64950],\"mapped\",[1593,1605,1610]],[[64951,64951],\"mapped\",[1603,1605,1610]],[[64952,64952],\"mapped\",[1606,1580,1581]],[[64953,64953],\"mapped\",[1605,1582,1610]],[[64954,64954],\"mapped\",[1604,1580,1605]],[[64955,64955],\"mapped\",[1603,1605,1605]],[[64956,64956],\"mapped\",[1604,1580,1605]],[[64957,64957],\"mapped\",[1606,1580,1581]],[[64958,64958],\"mapped\",[1580,1581,1610]],[[64959,64959],\"mapped\",[1581,1580,1610]],[[64960,64960],\"mapped\",[1605,1580,1610]],[[64961,64961],\"mapped\",[1601,1605,1610]],[[64962,64962],\"mapped\",[1576,1581,1610]],[[64963,64963],\"mapped\",[1603,1605,1605]],[[64964,64964],\"mapped\",[1593,1580,1605]],[[64965,64965],\"mapped\",[1589,1605,1605]],[[64966,64966],\"mapped\",[1587,1582,1610]],[[64967,64967],\"mapped\",[1606,1580,1610]],[[64968,64975],\"disallowed\"],[[64976,65007],\"disallowed\"],[[65008,65008],\"mapped\",[1589,1604,1746]],[[65009,65009],\"mapped\",[1602,1604,1746]],[[65010,65010],\"mapped\",[1575,1604,1604,1607]],[[65011,65011],\"mapped\",[1575,1603,1576,1585]],[[65012,65012],\"mapped\",[1605,1581,1605,1583]],[[65013,65013],\"mapped\",[1589,1604,1593,1605]],[[65014,65014],\"mapped\",[1585,1587,1608,1604]],[[65015,65015],\"mapped\",[1593,1604,1610,1607]],[[65016,65016],\"mapped\",[1608,1587,1604,1605]],[[65017,65017],\"mapped\",[1589,1604,1609]],[[65018,65018],\"disallowed_STD3_mapped\",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],\"disallowed_STD3_mapped\",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],\"mapped\",[1585,1740,1575,1604]],[[65021,65021],\"valid\",[],\"NV8\"],[[65022,65023],\"disallowed\"],[[65024,65039],\"ignored\"],[[65040,65040],\"disallowed_STD3_mapped\",[44]],[[65041,65041],\"mapped\",[12289]],[[65042,65042],\"disallowed\"],[[65043,65043],\"disallowed_STD3_mapped\",[58]],[[65044,65044],\"disallowed_STD3_mapped\",[59]],[[65045,65045],\"disallowed_STD3_mapped\",[33]],[[65046,65046],\"disallowed_STD3_mapped\",[63]],[[65047,65047],\"mapped\",[12310]],[[65048,65048],\"mapped\",[12311]],[[65049,65049],\"disallowed\"],[[65050,65055],\"disallowed\"],[[65056,65059],\"valid\"],[[65060,65062],\"valid\"],[[65063,65069],\"valid\"],[[65070,65071],\"valid\"],[[65072,65072],\"disallowed\"],[[65073,65073],\"mapped\",[8212]],[[65074,65074],\"mapped\",[8211]],[[65075,65076],\"disallowed_STD3_mapped\",[95]],[[65077,65077],\"disallowed_STD3_mapped\",[40]],[[65078,65078],\"disallowed_STD3_mapped\",[41]],[[65079,65079],\"disallowed_STD3_mapped\",[123]],[[65080,65080],\"disallowed_STD3_mapped\",[125]],[[65081,65081],\"mapped\",[12308]],[[65082,65082],\"mapped\",[12309]],[[65083,65083],\"mapped\",[12304]],[[65084,65084],\"mapped\",[12305]],[[65085,65085],\"mapped\",[12298]],[[65086,65086],\"mapped\",[12299]],[[65087,65087],\"mapped\",[12296]],[[65088,65088],\"mapped\",[12297]],[[65089,65089],\"mapped\",[12300]],[[65090,65090],\"mapped\",[12301]],[[65091,65091],\"mapped\",[12302]],[[65092,65092],\"mapped\",[12303]],[[65093,65094],\"valid\",[],\"NV8\"],[[65095,65095],\"disallowed_STD3_mapped\",[91]],[[65096,65096],\"disallowed_STD3_mapped\",[93]],[[65097,65100],\"disallowed_STD3_mapped\",[32,773]],[[65101,65103],\"disallowed_STD3_mapped\",[95]],[[65104,65104],\"disallowed_STD3_mapped\",[44]],[[65105,65105],\"mapped\",[12289]],[[65106,65106],\"disallowed\"],[[65107,65107],\"disallowed\"],[[65108,65108],\"disallowed_STD3_mapped\",[59]],[[65109,65109],\"disallowed_STD3_mapped\",[58]],[[65110,65110],\"disallowed_STD3_mapped\",[63]],[[65111,65111],\"disallowed_STD3_mapped\",[33]],[[65112,65112],\"mapped\",[8212]],[[65113,65113],\"disallowed_STD3_mapped\",[40]],[[65114,65114],\"disallowed_STD3_mapped\",[41]],[[65115,65115],\"disallowed_STD3_mapped\",[123]],[[65116,65116],\"disallowed_STD3_mapped\",[125]],[[65117,65117],\"mapped\",[12308]],[[65118,65118],\"mapped\",[12309]],[[65119,65119],\"disallowed_STD3_mapped\",[35]],[[65120,65120],\"disallowed_STD3_mapped\",[38]],[[65121,65121],\"disallowed_STD3_mapped\",[42]],[[65122,65122],\"disallowed_STD3_mapped\",[43]],[[65123,65123],\"mapped\",[45]],[[65124,65124],\"disallowed_STD3_mapped\",[60]],[[65125,65125],\"disallowed_STD3_mapped\",[62]],[[65126,65126],\"disallowed_STD3_mapped\",[61]],[[65127,65127],\"disallowed\"],[[65128,65128],\"disallowed_STD3_mapped\",[92]],[[65129,65129],\"disallowed_STD3_mapped\",[36]],[[65130,65130],\"disallowed_STD3_mapped\",[37]],[[65131,65131],\"disallowed_STD3_mapped\",[64]],[[65132,65135],\"disallowed\"],[[65136,65136],\"disallowed_STD3_mapped\",[32,1611]],[[65137,65137],\"mapped\",[1600,1611]],[[65138,65138],\"disallowed_STD3_mapped\",[32,1612]],[[65139,65139],\"valid\"],[[65140,65140],\"disallowed_STD3_mapped\",[32,1613]],[[65141,65141],\"disallowed\"],[[65142,65142],\"disallowed_STD3_mapped\",[32,1614]],[[65143,65143],\"mapped\",[1600,1614]],[[65144,65144],\"disallowed_STD3_mapped\",[32,1615]],[[65145,65145],\"mapped\",[1600,1615]],[[65146,65146],\"disallowed_STD3_mapped\",[32,1616]],[[65147,65147],\"mapped\",[1600,1616]],[[65148,65148],\"disallowed_STD3_mapped\",[32,1617]],[[65149,65149],\"mapped\",[1600,1617]],[[65150,65150],\"disallowed_STD3_mapped\",[32,1618]],[[65151,65151],\"mapped\",[1600,1618]],[[65152,65152],\"mapped\",[1569]],[[65153,65154],\"mapped\",[1570]],[[65155,65156],\"mapped\",[1571]],[[65157,65158],\"mapped\",[1572]],[[65159,65160],\"mapped\",[1573]],[[65161,65164],\"mapped\",[1574]],[[65165,65166],\"mapped\",[1575]],[[65167,65170],\"mapped\",[1576]],[[65171,65172],\"mapped\",[1577]],[[65173,65176],\"mapped\",[1578]],[[65177,65180],\"mapped\",[1579]],[[65181,65184],\"mapped\",[1580]],[[65185,65188],\"mapped\",[1581]],[[65189,65192],\"mapped\",[1582]],[[65193,65194],\"mapped\",[1583]],[[65195,65196],\"mapped\",[1584]],[[65197,65198],\"mapped\",[1585]],[[65199,65200],\"mapped\",[1586]],[[65201,65204],\"mapped\",[1587]],[[65205,65208],\"mapped\",[1588]],[[65209,65212],\"mapped\",[1589]],[[65213,65216],\"mapped\",[1590]],[[65217,65220],\"mapped\",[1591]],[[65221,65224],\"mapped\",[1592]],[[65225,65228],\"mapped\",[1593]],[[65229,65232],\"mapped\",[1594]],[[65233,65236],\"mapped\",[1601]],[[65237,65240],\"mapped\",[1602]],[[65241,65244],\"mapped\",[1603]],[[65245,65248],\"mapped\",[1604]],[[65249,65252],\"mapped\",[1605]],[[65253,65256],\"mapped\",[1606]],[[65257,65260],\"mapped\",[1607]],[[65261,65262],\"mapped\",[1608]],[[65263,65264],\"mapped\",[1609]],[[65265,65268],\"mapped\",[1610]],[[65269,65270],\"mapped\",[1604,1570]],[[65271,65272],\"mapped\",[1604,1571]],[[65273,65274],\"mapped\",[1604,1573]],[[65275,65276],\"mapped\",[1604,1575]],[[65277,65278],\"disallowed\"],[[65279,65279],\"ignored\"],[[65280,65280],\"disallowed\"],[[65281,65281],\"disallowed_STD3_mapped\",[33]],[[65282,65282],\"disallowed_STD3_mapped\",[34]],[[65283,65283],\"disallowed_STD3_mapped\",[35]],[[65284,65284],\"disallowed_STD3_mapped\",[36]],[[65285,65285],\"disallowed_STD3_mapped\",[37]],[[65286,65286],\"disallowed_STD3_mapped\",[38]],[[65287,65287],\"disallowed_STD3_mapped\",[39]],[[65288,65288],\"disallowed_STD3_mapped\",[40]],[[65289,65289],\"disallowed_STD3_mapped\",[41]],[[65290,65290],\"disallowed_STD3_mapped\",[42]],[[65291,65291],\"disallowed_STD3_mapped\",[43]],[[65292,65292],\"disallowed_STD3_mapped\",[44]],[[65293,65293],\"mapped\",[45]],[[65294,65294],\"mapped\",[46]],[[65295,65295],\"disallowed_STD3_mapped\",[47]],[[65296,65296],\"mapped\",[48]],[[65297,65297],\"mapped\",[49]],[[65298,65298],\"mapped\",[50]],[[65299,65299],\"mapped\",[51]],[[65300,65300],\"mapped\",[52]],[[65301,65301],\"mapped\",[53]],[[65302,65302],\"mapped\",[54]],[[65303,65303],\"mapped\",[55]],[[65304,65304],\"mapped\",[56]],[[65305,65305],\"mapped\",[57]],[[65306,65306],\"disallowed_STD3_mapped\",[58]],[[65307,65307],\"disallowed_STD3_mapped\",[59]],[[65308,65308],\"disallowed_STD3_mapped\",[60]],[[65309,65309],\"disallowed_STD3_mapped\",[61]],[[65310,65310],\"disallowed_STD3_mapped\",[62]],[[65311,65311],\"disallowed_STD3_mapped\",[63]],[[65312,65312],\"disallowed_STD3_mapped\",[64]],[[65313,65313],\"mapped\",[97]],[[65314,65314],\"mapped\",[98]],[[65315,65315],\"mapped\",[99]],[[65316,65316],\"mapped\",[100]],[[65317,65317],\"mapped\",[101]],[[65318,65318],\"mapped\",[102]],[[65319,65319],\"mapped\",[103]],[[65320,65320],\"mapped\",[104]],[[65321,65321],\"mapped\",[105]],[[65322,65322],\"mapped\",[106]],[[65323,65323],\"mapped\",[107]],[[65324,65324],\"mapped\",[108]],[[65325,65325],\"mapped\",[109]],[[65326,65326],\"mapped\",[110]],[[65327,65327],\"mapped\",[111]],[[65328,65328],\"mapped\",[112]],[[65329,65329],\"mapped\",[113]],[[65330,65330],\"mapped\",[114]],[[65331,65331],\"mapped\",[115]],[[65332,65332],\"mapped\",[116]],[[65333,65333],\"mapped\",[117]],[[65334,65334],\"mapped\",[118]],[[65335,65335],\"mapped\",[119]],[[65336,65336],\"mapped\",[120]],[[65337,65337],\"mapped\",[121]],[[65338,65338],\"mapped\",[122]],[[65339,65339],\"disallowed_STD3_mapped\",[91]],[[65340,65340],\"disallowed_STD3_mapped\",[92]],[[65341,65341],\"disallowed_STD3_mapped\",[93]],[[65342,65342],\"disallowed_STD3_mapped\",[94]],[[65343,65343],\"disallowed_STD3_mapped\",[95]],[[65344,65344],\"disallowed_STD3_mapped\",[96]],[[65345,65345],\"mapped\",[97]],[[65346,65346],\"mapped\",[98]],[[65347,65347],\"mapped\",[99]],[[65348,65348],\"mapped\",[100]],[[65349,65349],\"mapped\",[101]],[[65350,65350],\"mapped\",[102]],[[65351,65351],\"mapped\",[103]],[[65352,65352],\"mapped\",[104]],[[65353,65353],\"mapped\",[105]],[[65354,65354],\"mapped\",[106]],[[65355,65355],\"mapped\",[107]],[[65356,65356],\"mapped\",[108]],[[65357,65357],\"mapped\",[109]],[[65358,65358],\"mapped\",[110]],[[65359,65359],\"mapped\",[111]],[[65360,65360],\"mapped\",[112]],[[65361,65361],\"mapped\",[113]],[[65362,65362],\"mapped\",[114]],[[65363,65363],\"mapped\",[115]],[[65364,65364],\"mapped\",[116]],[[65365,65365],\"mapped\",[117]],[[65366,65366],\"mapped\",[118]],[[65367,65367],\"mapped\",[119]],[[65368,65368],\"mapped\",[120]],[[65369,65369],\"mapped\",[121]],[[65370,65370],\"mapped\",[122]],[[65371,65371],\"disallowed_STD3_mapped\",[123]],[[65372,65372],\"disallowed_STD3_mapped\",[124]],[[65373,65373],\"disallowed_STD3_mapped\",[125]],[[65374,65374],\"disallowed_STD3_mapped\",[126]],[[65375,65375],\"mapped\",[10629]],[[65376,65376],\"mapped\",[10630]],[[65377,65377],\"mapped\",[46]],[[65378,65378],\"mapped\",[12300]],[[65379,65379],\"mapped\",[12301]],[[65380,65380],\"mapped\",[12289]],[[65381,65381],\"mapped\",[12539]],[[65382,65382],\"mapped\",[12530]],[[65383,65383],\"mapped\",[12449]],[[65384,65384],\"mapped\",[12451]],[[65385,65385],\"mapped\",[12453]],[[65386,65386],\"mapped\",[12455]],[[65387,65387],\"mapped\",[12457]],[[65388,65388],\"mapped\",[12515]],[[65389,65389],\"mapped\",[12517]],[[65390,65390],\"mapped\",[12519]],[[65391,65391],\"mapped\",[12483]],[[65392,65392],\"mapped\",[12540]],[[65393,65393],\"mapped\",[12450]],[[65394,65394],\"mapped\",[12452]],[[65395,65395],\"mapped\",[12454]],[[65396,65396],\"mapped\",[12456]],[[65397,65397],\"mapped\",[12458]],[[65398,65398],\"mapped\",[12459]],[[65399,65399],\"mapped\",[12461]],[[65400,65400],\"mapped\",[12463]],[[65401,65401],\"mapped\",[12465]],[[65402,65402],\"mapped\",[12467]],[[65403,65403],\"mapped\",[12469]],[[65404,65404],\"mapped\",[12471]],[[65405,65405],\"mapped\",[12473]],[[65406,65406],\"mapped\",[12475]],[[65407,65407],\"mapped\",[12477]],[[65408,65408],\"mapped\",[12479]],[[65409,65409],\"mapped\",[12481]],[[65410,65410],\"mapped\",[12484]],[[65411,65411],\"mapped\",[12486]],[[65412,65412],\"mapped\",[12488]],[[65413,65413],\"mapped\",[12490]],[[65414,65414],\"mapped\",[12491]],[[65415,65415],\"mapped\",[12492]],[[65416,65416],\"mapped\",[12493]],[[65417,65417],\"mapped\",[12494]],[[65418,65418],\"mapped\",[12495]],[[65419,65419],\"mapped\",[12498]],[[65420,65420],\"mapped\",[12501]],[[65421,65421],\"mapped\",[12504]],[[65422,65422],\"mapped\",[12507]],[[65423,65423],\"mapped\",[12510]],[[65424,65424],\"mapped\",[12511]],[[65425,65425],\"mapped\",[12512]],[[65426,65426],\"mapped\",[12513]],[[65427,65427],\"mapped\",[12514]],[[65428,65428],\"mapped\",[12516]],[[65429,65429],\"mapped\",[12518]],[[65430,65430],\"mapped\",[12520]],[[65431,65431],\"mapped\",[12521]],[[65432,65432],\"mapped\",[12522]],[[65433,65433],\"mapped\",[12523]],[[65434,65434],\"mapped\",[12524]],[[65435,65435],\"mapped\",[12525]],[[65436,65436],\"mapped\",[12527]],[[65437,65437],\"mapped\",[12531]],[[65438,65438],\"mapped\",[12441]],[[65439,65439],\"mapped\",[12442]],[[65440,65440],\"disallowed\"],[[65441,65441],\"mapped\",[4352]],[[65442,65442],\"mapped\",[4353]],[[65443,65443],\"mapped\",[4522]],[[65444,65444],\"mapped\",[4354]],[[65445,65445],\"mapped\",[4524]],[[65446,65446],\"mapped\",[4525]],[[65447,65447],\"mapped\",[4355]],[[65448,65448],\"mapped\",[4356]],[[65449,65449],\"mapped\",[4357]],[[65450,65450],\"mapped\",[4528]],[[65451,65451],\"mapped\",[4529]],[[65452,65452],\"mapped\",[4530]],[[65453,65453],\"mapped\",[4531]],[[65454,65454],\"mapped\",[4532]],[[65455,65455],\"mapped\",[4533]],[[65456,65456],\"mapped\",[4378]],[[65457,65457],\"mapped\",[4358]],[[65458,65458],\"mapped\",[4359]],[[65459,65459],\"mapped\",[4360]],[[65460,65460],\"mapped\",[4385]],[[65461,65461],\"mapped\",[4361]],[[65462,65462],\"mapped\",[4362]],[[65463,65463],\"mapped\",[4363]],[[65464,65464],\"mapped\",[4364]],[[65465,65465],\"mapped\",[4365]],[[65466,65466],\"mapped\",[4366]],[[65467,65467],\"mapped\",[4367]],[[65468,65468],\"mapped\",[4368]],[[65469,65469],\"mapped\",[4369]],[[65470,65470],\"mapped\",[4370]],[[65471,65473],\"disallowed\"],[[65474,65474],\"mapped\",[4449]],[[65475,65475],\"mapped\",[4450]],[[65476,65476],\"mapped\",[4451]],[[65477,65477],\"mapped\",[4452]],[[65478,65478],\"mapped\",[4453]],[[65479,65479],\"mapped\",[4454]],[[65480,65481],\"disallowed\"],[[65482,65482],\"mapped\",[4455]],[[65483,65483],\"mapped\",[4456]],[[65484,65484],\"mapped\",[4457]],[[65485,65485],\"mapped\",[4458]],[[65486,65486],\"mapped\",[4459]],[[65487,65487],\"mapped\",[4460]],[[65488,65489],\"disallowed\"],[[65490,65490],\"mapped\",[4461]],[[65491,65491],\"mapped\",[4462]],[[65492,65492],\"mapped\",[4463]],[[65493,65493],\"mapped\",[4464]],[[65494,65494],\"mapped\",[4465]],[[65495,65495],\"mapped\",[4466]],[[65496,65497],\"disallowed\"],[[65498,65498],\"mapped\",[4467]],[[65499,65499],\"mapped\",[4468]],[[65500,65500],\"mapped\",[4469]],[[65501,65503],\"disallowed\"],[[65504,65504],\"mapped\",[162]],[[65505,65505],\"mapped\",[163]],[[65506,65506],\"mapped\",[172]],[[65507,65507],\"disallowed_STD3_mapped\",[32,772]],[[65508,65508],\"mapped\",[166]],[[65509,65509],\"mapped\",[165]],[[65510,65510],\"mapped\",[8361]],[[65511,65511],\"disallowed\"],[[65512,65512],\"mapped\",[9474]],[[65513,65513],\"mapped\",[8592]],[[65514,65514],\"mapped\",[8593]],[[65515,65515],\"mapped\",[8594]],[[65516,65516],\"mapped\",[8595]],[[65517,65517],\"mapped\",[9632]],[[65518,65518],\"mapped\",[9675]],[[65519,65528],\"disallowed\"],[[65529,65531],\"disallowed\"],[[65532,65532],\"disallowed\"],[[65533,65533],\"disallowed\"],[[65534,65535],\"disallowed\"],[[65536,65547],\"valid\"],[[65548,65548],\"disallowed\"],[[65549,65574],\"valid\"],[[65575,65575],\"disallowed\"],[[65576,65594],\"valid\"],[[65595,65595],\"disallowed\"],[[65596,65597],\"valid\"],[[65598,65598],\"disallowed\"],[[65599,65613],\"valid\"],[[65614,65615],\"disallowed\"],[[65616,65629],\"valid\"],[[65630,65663],\"disallowed\"],[[65664,65786],\"valid\"],[[65787,65791],\"disallowed\"],[[65792,65794],\"valid\",[],\"NV8\"],[[65795,65798],\"disallowed\"],[[65799,65843],\"valid\",[],\"NV8\"],[[65844,65846],\"disallowed\"],[[65847,65855],\"valid\",[],\"NV8\"],[[65856,65930],\"valid\",[],\"NV8\"],[[65931,65932],\"valid\",[],\"NV8\"],[[65933,65935],\"disallowed\"],[[65936,65947],\"valid\",[],\"NV8\"],[[65948,65951],\"disallowed\"],[[65952,65952],\"valid\",[],\"NV8\"],[[65953,65999],\"disallowed\"],[[66000,66044],\"valid\",[],\"NV8\"],[[66045,66045],\"valid\"],[[66046,66175],\"disallowed\"],[[66176,66204],\"valid\"],[[66205,66207],\"disallowed\"],[[66208,66256],\"valid\"],[[66257,66271],\"disallowed\"],[[66272,66272],\"valid\"],[[66273,66299],\"valid\",[],\"NV8\"],[[66300,66303],\"disallowed\"],[[66304,66334],\"valid\"],[[66335,66335],\"valid\"],[[66336,66339],\"valid\",[],\"NV8\"],[[66340,66351],\"disallowed\"],[[66352,66368],\"valid\"],[[66369,66369],\"valid\",[],\"NV8\"],[[66370,66377],\"valid\"],[[66378,66378],\"valid\",[],\"NV8\"],[[66379,66383],\"disallowed\"],[[66384,66426],\"valid\"],[[66427,66431],\"disallowed\"],[[66432,66461],\"valid\"],[[66462,66462],\"disallowed\"],[[66463,66463],\"valid\",[],\"NV8\"],[[66464,66499],\"valid\"],[[66500,66503],\"disallowed\"],[[66504,66511],\"valid\"],[[66512,66517],\"valid\",[],\"NV8\"],[[66518,66559],\"disallowed\"],[[66560,66560],\"mapped\",[66600]],[[66561,66561],\"mapped\",[66601]],[[66562,66562],\"mapped\",[66602]],[[66563,66563],\"mapped\",[66603]],[[66564,66564],\"mapped\",[66604]],[[66565,66565],\"mapped\",[66605]],[[66566,66566],\"mapped\",[66606]],[[66567,66567],\"mapped\",[66607]],[[66568,66568],\"mapped\",[66608]],[[66569,66569],\"mapped\",[66609]],[[66570,66570],\"mapped\",[66610]],[[66571,66571],\"mapped\",[66611]],[[66572,66572],\"mapped\",[66612]],[[66573,66573],\"mapped\",[66613]],[[66574,66574],\"mapped\",[66614]],[[66575,66575],\"mapped\",[66615]],[[66576,66576],\"mapped\",[66616]],[[66577,66577],\"mapped\",[66617]],[[66578,66578],\"mapped\",[66618]],[[66579,66579],\"mapped\",[66619]],[[66580,66580],\"mapped\",[66620]],[[66581,66581],\"mapped\",[66621]],[[66582,66582],\"mapped\",[66622]],[[66583,66583],\"mapped\",[66623]],[[66584,66584],\"mapped\",[66624]],[[66585,66585],\"mapped\",[66625]],[[66586,66586],\"mapped\",[66626]],[[66587,66587],\"mapped\",[66627]],[[66588,66588],\"mapped\",[66628]],[[66589,66589],\"mapped\",[66629]],[[66590,66590],\"mapped\",[66630]],[[66591,66591],\"mapped\",[66631]],[[66592,66592],\"mapped\",[66632]],[[66593,66593],\"mapped\",[66633]],[[66594,66594],\"mapped\",[66634]],[[66595,66595],\"mapped\",[66635]],[[66596,66596],\"mapped\",[66636]],[[66597,66597],\"mapped\",[66637]],[[66598,66598],\"mapped\",[66638]],[[66599,66599],\"mapped\",[66639]],[[66600,66637],\"valid\"],[[66638,66717],\"valid\"],[[66718,66719],\"disallowed\"],[[66720,66729],\"valid\"],[[66730,66815],\"disallowed\"],[[66816,66855],\"valid\"],[[66856,66863],\"disallowed\"],[[66864,66915],\"valid\"],[[66916,66926],\"disallowed\"],[[66927,66927],\"valid\",[],\"NV8\"],[[66928,67071],\"disallowed\"],[[67072,67382],\"valid\"],[[67383,67391],\"disallowed\"],[[67392,67413],\"valid\"],[[67414,67423],\"disallowed\"],[[67424,67431],\"valid\"],[[67432,67583],\"disallowed\"],[[67584,67589],\"valid\"],[[67590,67591],\"disallowed\"],[[67592,67592],\"valid\"],[[67593,67593],\"disallowed\"],[[67594,67637],\"valid\"],[[67638,67638],\"disallowed\"],[[67639,67640],\"valid\"],[[67641,67643],\"disallowed\"],[[67644,67644],\"valid\"],[[67645,67646],\"disallowed\"],[[67647,67647],\"valid\"],[[67648,67669],\"valid\"],[[67670,67670],\"disallowed\"],[[67671,67679],\"valid\",[],\"NV8\"],[[67680,67702],\"valid\"],[[67703,67711],\"valid\",[],\"NV8\"],[[67712,67742],\"valid\"],[[67743,67750],\"disallowed\"],[[67751,67759],\"valid\",[],\"NV8\"],[[67760,67807],\"disallowed\"],[[67808,67826],\"valid\"],[[67827,67827],\"disallowed\"],[[67828,67829],\"valid\"],[[67830,67834],\"disallowed\"],[[67835,67839],\"valid\",[],\"NV8\"],[[67840,67861],\"valid\"],[[67862,67865],\"valid\",[],\"NV8\"],[[67866,67867],\"valid\",[],\"NV8\"],[[67868,67870],\"disallowed\"],[[67871,67871],\"valid\",[],\"NV8\"],[[67872,67897],\"valid\"],[[67898,67902],\"disallowed\"],[[67903,67903],\"valid\",[],\"NV8\"],[[67904,67967],\"disallowed\"],[[67968,68023],\"valid\"],[[68024,68027],\"disallowed\"],[[68028,68029],\"valid\",[],\"NV8\"],[[68030,68031],\"valid\"],[[68032,68047],\"valid\",[],\"NV8\"],[[68048,68049],\"disallowed\"],[[68050,68095],\"valid\",[],\"NV8\"],[[68096,68099],\"valid\"],[[68100,68100],\"disallowed\"],[[68101,68102],\"valid\"],[[68103,68107],\"disallowed\"],[[68108,68115],\"valid\"],[[68116,68116],\"disallowed\"],[[68117,68119],\"valid\"],[[68120,68120],\"disallowed\"],[[68121,68147],\"valid\"],[[68148,68151],\"disallowed\"],[[68152,68154],\"valid\"],[[68155,68158],\"disallowed\"],[[68159,68159],\"valid\"],[[68160,68167],\"valid\",[],\"NV8\"],[[68168,68175],\"disallowed\"],[[68176,68184],\"valid\",[],\"NV8\"],[[68185,68191],\"disallowed\"],[[68192,68220],\"valid\"],[[68221,68223],\"valid\",[],\"NV8\"],[[68224,68252],\"valid\"],[[68253,68255],\"valid\",[],\"NV8\"],[[68256,68287],\"disallowed\"],[[68288,68295],\"valid\"],[[68296,68296],\"valid\",[],\"NV8\"],[[68297,68326],\"valid\"],[[68327,68330],\"disallowed\"],[[68331,68342],\"valid\",[],\"NV8\"],[[68343,68351],\"disallowed\"],[[68352,68405],\"valid\"],[[68406,68408],\"disallowed\"],[[68409,68415],\"valid\",[],\"NV8\"],[[68416,68437],\"valid\"],[[68438,68439],\"disallowed\"],[[68440,68447],\"valid\",[],\"NV8\"],[[68448,68466],\"valid\"],[[68467,68471],\"disallowed\"],[[68472,68479],\"valid\",[],\"NV8\"],[[68480,68497],\"valid\"],[[68498,68504],\"disallowed\"],[[68505,68508],\"valid\",[],\"NV8\"],[[68509,68520],\"disallowed\"],[[68521,68527],\"valid\",[],\"NV8\"],[[68528,68607],\"disallowed\"],[[68608,68680],\"valid\"],[[68681,68735],\"disallowed\"],[[68736,68736],\"mapped\",[68800]],[[68737,68737],\"mapped\",[68801]],[[68738,68738],\"mapped\",[68802]],[[68739,68739],\"mapped\",[68803]],[[68740,68740],\"mapped\",[68804]],[[68741,68741],\"mapped\",[68805]],[[68742,68742],\"mapped\",[68806]],[[68743,68743],\"mapped\",[68807]],[[68744,68744],\"mapped\",[68808]],[[68745,68745],\"mapped\",[68809]],[[68746,68746],\"mapped\",[68810]],[[68747,68747],\"mapped\",[68811]],[[68748,68748],\"mapped\",[68812]],[[68749,68749],\"mapped\",[68813]],[[68750,68750],\"mapped\",[68814]],[[68751,68751],\"mapped\",[68815]],[[68752,68752],\"mapped\",[68816]],[[68753,68753],\"mapped\",[68817]],[[68754,68754],\"mapped\",[68818]],[[68755,68755],\"mapped\",[68819]],[[68756,68756],\"mapped\",[68820]],[[68757,68757],\"mapped\",[68821]],[[68758,68758],\"mapped\",[68822]],[[68759,68759],\"mapped\",[68823]],[[68760,68760],\"mapped\",[68824]],[[68761,68761],\"mapped\",[68825]],[[68762,68762],\"mapped\",[68826]],[[68763,68763],\"mapped\",[68827]],[[68764,68764],\"mapped\",[68828]],[[68765,68765],\"mapped\",[68829]],[[68766,68766],\"mapped\",[68830]],[[68767,68767],\"mapped\",[68831]],[[68768,68768],\"mapped\",[68832]],[[68769,68769],\"mapped\",[68833]],[[68770,68770],\"mapped\",[68834]],[[68771,68771],\"mapped\",[68835]],[[68772,68772],\"mapped\",[68836]],[[68773,68773],\"mapped\",[68837]],[[68774,68774],\"mapped\",[68838]],[[68775,68775],\"mapped\",[68839]],[[68776,68776],\"mapped\",[68840]],[[68777,68777],\"mapped\",[68841]],[[68778,68778],\"mapped\",[68842]],[[68779,68779],\"mapped\",[68843]],[[68780,68780],\"mapped\",[68844]],[[68781,68781],\"mapped\",[68845]],[[68782,68782],\"mapped\",[68846]],[[68783,68783],\"mapped\",[68847]],[[68784,68784],\"mapped\",[68848]],[[68785,68785],\"mapped\",[68849]],[[68786,68786],\"mapped\",[68850]],[[68787,68799],\"disallowed\"],[[68800,68850],\"valid\"],[[68851,68857],\"disallowed\"],[[68858,68863],\"valid\",[],\"NV8\"],[[68864,69215],\"disallowed\"],[[69216,69246],\"valid\",[],\"NV8\"],[[69247,69631],\"disallowed\"],[[69632,69702],\"valid\"],[[69703,69709],\"valid\",[],\"NV8\"],[[69710,69713],\"disallowed\"],[[69714,69733],\"valid\",[],\"NV8\"],[[69734,69743],\"valid\"],[[69744,69758],\"disallowed\"],[[69759,69759],\"valid\"],[[69760,69818],\"valid\"],[[69819,69820],\"valid\",[],\"NV8\"],[[69821,69821],\"disallowed\"],[[69822,69825],\"valid\",[],\"NV8\"],[[69826,69839],\"disallowed\"],[[69840,69864],\"valid\"],[[69865,69871],\"disallowed\"],[[69872,69881],\"valid\"],[[69882,69887],\"disallowed\"],[[69888,69940],\"valid\"],[[69941,69941],\"disallowed\"],[[69942,69951],\"valid\"],[[69952,69955],\"valid\",[],\"NV8\"],[[69956,69967],\"disallowed\"],[[69968,70003],\"valid\"],[[70004,70005],\"valid\",[],\"NV8\"],[[70006,70006],\"valid\"],[[70007,70015],\"disallowed\"],[[70016,70084],\"valid\"],[[70085,70088],\"valid\",[],\"NV8\"],[[70089,70089],\"valid\",[],\"NV8\"],[[70090,70092],\"valid\"],[[70093,70093],\"valid\",[],\"NV8\"],[[70094,70095],\"disallowed\"],[[70096,70105],\"valid\"],[[70106,70106],\"valid\"],[[70107,70107],\"valid\",[],\"NV8\"],[[70108,70108],\"valid\"],[[70109,70111],\"valid\",[],\"NV8\"],[[70112,70112],\"disallowed\"],[[70113,70132],\"valid\",[],\"NV8\"],[[70133,70143],\"disallowed\"],[[70144,70161],\"valid\"],[[70162,70162],\"disallowed\"],[[70163,70199],\"valid\"],[[70200,70205],\"valid\",[],\"NV8\"],[[70206,70271],\"disallowed\"],[[70272,70278],\"valid\"],[[70279,70279],\"disallowed\"],[[70280,70280],\"valid\"],[[70281,70281],\"disallowed\"],[[70282,70285],\"valid\"],[[70286,70286],\"disallowed\"],[[70287,70301],\"valid\"],[[70302,70302],\"disallowed\"],[[70303,70312],\"valid\"],[[70313,70313],\"valid\",[],\"NV8\"],[[70314,70319],\"disallowed\"],[[70320,70378],\"valid\"],[[70379,70383],\"disallowed\"],[[70384,70393],\"valid\"],[[70394,70399],\"disallowed\"],[[70400,70400],\"valid\"],[[70401,70403],\"valid\"],[[70404,70404],\"disallowed\"],[[70405,70412],\"valid\"],[[70413,70414],\"disallowed\"],[[70415,70416],\"valid\"],[[70417,70418],\"disallowed\"],[[70419,70440],\"valid\"],[[70441,70441],\"disallowed\"],[[70442,70448],\"valid\"],[[70449,70449],\"disallowed\"],[[70450,70451],\"valid\"],[[70452,70452],\"disallowed\"],[[70453,70457],\"valid\"],[[70458,70459],\"disallowed\"],[[70460,70468],\"valid\"],[[70469,70470],\"disallowed\"],[[70471,70472],\"valid\"],[[70473,70474],\"disallowed\"],[[70475,70477],\"valid\"],[[70478,70479],\"disallowed\"],[[70480,70480],\"valid\"],[[70481,70486],\"disallowed\"],[[70487,70487],\"valid\"],[[70488,70492],\"disallowed\"],[[70493,70499],\"valid\"],[[70500,70501],\"disallowed\"],[[70502,70508],\"valid\"],[[70509,70511],\"disallowed\"],[[70512,70516],\"valid\"],[[70517,70783],\"disallowed\"],[[70784,70853],\"valid\"],[[70854,70854],\"valid\",[],\"NV8\"],[[70855,70855],\"valid\"],[[70856,70863],\"disallowed\"],[[70864,70873],\"valid\"],[[70874,71039],\"disallowed\"],[[71040,71093],\"valid\"],[[71094,71095],\"disallowed\"],[[71096,71104],\"valid\"],[[71105,71113],\"valid\",[],\"NV8\"],[[71114,71127],\"valid\",[],\"NV8\"],[[71128,71133],\"valid\"],[[71134,71167],\"disallowed\"],[[71168,71232],\"valid\"],[[71233,71235],\"valid\",[],\"NV8\"],[[71236,71236],\"valid\"],[[71237,71247],\"disallowed\"],[[71248,71257],\"valid\"],[[71258,71295],\"disallowed\"],[[71296,71351],\"valid\"],[[71352,71359],\"disallowed\"],[[71360,71369],\"valid\"],[[71370,71423],\"disallowed\"],[[71424,71449],\"valid\"],[[71450,71452],\"disallowed\"],[[71453,71467],\"valid\"],[[71468,71471],\"disallowed\"],[[71472,71481],\"valid\"],[[71482,71487],\"valid\",[],\"NV8\"],[[71488,71839],\"disallowed\"],[[71840,71840],\"mapped\",[71872]],[[71841,71841],\"mapped\",[71873]],[[71842,71842],\"mapped\",[71874]],[[71843,71843],\"mapped\",[71875]],[[71844,71844],\"mapped\",[71876]],[[71845,71845],\"mapped\",[71877]],[[71846,71846],\"mapped\",[71878]],[[71847,71847],\"mapped\",[71879]],[[71848,71848],\"mapped\",[71880]],[[71849,71849],\"mapped\",[71881]],[[71850,71850],\"mapped\",[71882]],[[71851,71851],\"mapped\",[71883]],[[71852,71852],\"mapped\",[71884]],[[71853,71853],\"mapped\",[71885]],[[71854,71854],\"mapped\",[71886]],[[71855,71855],\"mapped\",[71887]],[[71856,71856],\"mapped\",[71888]],[[71857,71857],\"mapped\",[71889]],[[71858,71858],\"mapped\",[71890]],[[71859,71859],\"mapped\",[71891]],[[71860,71860],\"mapped\",[71892]],[[71861,71861],\"mapped\",[71893]],[[71862,71862],\"mapped\",[71894]],[[71863,71863],\"mapped\",[71895]],[[71864,71864],\"mapped\",[71896]],[[71865,71865],\"mapped\",[71897]],[[71866,71866],\"mapped\",[71898]],[[71867,71867],\"mapped\",[71899]],[[71868,71868],\"mapped\",[71900]],[[71869,71869],\"mapped\",[71901]],[[71870,71870],\"mapped\",[71902]],[[71871,71871],\"mapped\",[71903]],[[71872,71913],\"valid\"],[[71914,71922],\"valid\",[],\"NV8\"],[[71923,71934],\"disallowed\"],[[71935,71935],\"valid\"],[[71936,72383],\"disallowed\"],[[72384,72440],\"valid\"],[[72441,73727],\"disallowed\"],[[73728,74606],\"valid\"],[[74607,74648],\"valid\"],[[74649,74649],\"valid\"],[[74650,74751],\"disallowed\"],[[74752,74850],\"valid\",[],\"NV8\"],[[74851,74862],\"valid\",[],\"NV8\"],[[74863,74863],\"disallowed\"],[[74864,74867],\"valid\",[],\"NV8\"],[[74868,74868],\"valid\",[],\"NV8\"],[[74869,74879],\"disallowed\"],[[74880,75075],\"valid\"],[[75076,77823],\"disallowed\"],[[77824,78894],\"valid\"],[[78895,82943],\"disallowed\"],[[82944,83526],\"valid\"],[[83527,92159],\"disallowed\"],[[92160,92728],\"valid\"],[[92729,92735],\"disallowed\"],[[92736,92766],\"valid\"],[[92767,92767],\"disallowed\"],[[92768,92777],\"valid\"],[[92778,92781],\"disallowed\"],[[92782,92783],\"valid\",[],\"NV8\"],[[92784,92879],\"disallowed\"],[[92880,92909],\"valid\"],[[92910,92911],\"disallowed\"],[[92912,92916],\"valid\"],[[92917,92917],\"valid\",[],\"NV8\"],[[92918,92927],\"disallowed\"],[[92928,92982],\"valid\"],[[92983,92991],\"valid\",[],\"NV8\"],[[92992,92995],\"valid\"],[[92996,92997],\"valid\",[],\"NV8\"],[[92998,93007],\"disallowed\"],[[93008,93017],\"valid\"],[[93018,93018],\"disallowed\"],[[93019,93025],\"valid\",[],\"NV8\"],[[93026,93026],\"disallowed\"],[[93027,93047],\"valid\"],[[93048,93052],\"disallowed\"],[[93053,93071],\"valid\"],[[93072,93951],\"disallowed\"],[[93952,94020],\"valid\"],[[94021,94031],\"disallowed\"],[[94032,94078],\"valid\"],[[94079,94094],\"disallowed\"],[[94095,94111],\"valid\"],[[94112,110591],\"disallowed\"],[[110592,110593],\"valid\"],[[110594,113663],\"disallowed\"],[[113664,113770],\"valid\"],[[113771,113775],\"disallowed\"],[[113776,113788],\"valid\"],[[113789,113791],\"disallowed\"],[[113792,113800],\"valid\"],[[113801,113807],\"disallowed\"],[[113808,113817],\"valid\"],[[113818,113819],\"disallowed\"],[[113820,113820],\"valid\",[],\"NV8\"],[[113821,113822],\"valid\"],[[113823,113823],\"valid\",[],\"NV8\"],[[113824,113827],\"ignored\"],[[113828,118783],\"disallowed\"],[[118784,119029],\"valid\",[],\"NV8\"],[[119030,119039],\"disallowed\"],[[119040,119078],\"valid\",[],\"NV8\"],[[119079,119080],\"disallowed\"],[[119081,119081],\"valid\",[],\"NV8\"],[[119082,119133],\"valid\",[],\"NV8\"],[[119134,119134],\"mapped\",[119127,119141]],[[119135,119135],\"mapped\",[119128,119141]],[[119136,119136],\"mapped\",[119128,119141,119150]],[[119137,119137],\"mapped\",[119128,119141,119151]],[[119138,119138],\"mapped\",[119128,119141,119152]],[[119139,119139],\"mapped\",[119128,119141,119153]],[[119140,119140],\"mapped\",[119128,119141,119154]],[[119141,119154],\"valid\",[],\"NV8\"],[[119155,119162],\"disallowed\"],[[119163,119226],\"valid\",[],\"NV8\"],[[119227,119227],\"mapped\",[119225,119141]],[[119228,119228],\"mapped\",[119226,119141]],[[119229,119229],\"mapped\",[119225,119141,119150]],[[119230,119230],\"mapped\",[119226,119141,119150]],[[119231,119231],\"mapped\",[119225,119141,119151]],[[119232,119232],\"mapped\",[119226,119141,119151]],[[119233,119261],\"valid\",[],\"NV8\"],[[119262,119272],\"valid\",[],\"NV8\"],[[119273,119295],\"disallowed\"],[[119296,119365],\"valid\",[],\"NV8\"],[[119366,119551],\"disallowed\"],[[119552,119638],\"valid\",[],\"NV8\"],[[119639,119647],\"disallowed\"],[[119648,119665],\"valid\",[],\"NV8\"],[[119666,119807],\"disallowed\"],[[119808,119808],\"mapped\",[97]],[[119809,119809],\"mapped\",[98]],[[119810,119810],\"mapped\",[99]],[[119811,119811],\"mapped\",[100]],[[119812,119812],\"mapped\",[101]],[[119813,119813],\"mapped\",[102]],[[119814,119814],\"mapped\",[103]],[[119815,119815],\"mapped\",[104]],[[119816,119816],\"mapped\",[105]],[[119817,119817],\"mapped\",[106]],[[119818,119818],\"mapped\",[107]],[[119819,119819],\"mapped\",[108]],[[119820,119820],\"mapped\",[109]],[[119821,119821],\"mapped\",[110]],[[119822,119822],\"mapped\",[111]],[[119823,119823],\"mapped\",[112]],[[119824,119824],\"mapped\",[113]],[[119825,119825],\"mapped\",[114]],[[119826,119826],\"mapped\",[115]],[[119827,119827],\"mapped\",[116]],[[119828,119828],\"mapped\",[117]],[[119829,119829],\"mapped\",[118]],[[119830,119830],\"mapped\",[119]],[[119831,119831],\"mapped\",[120]],[[119832,119832],\"mapped\",[121]],[[119833,119833],\"mapped\",[122]],[[119834,119834],\"mapped\",[97]],[[119835,119835],\"mapped\",[98]],[[119836,119836],\"mapped\",[99]],[[119837,119837],\"mapped\",[100]],[[119838,119838],\"mapped\",[101]],[[119839,119839],\"mapped\",[102]],[[119840,119840],\"mapped\",[103]],[[119841,119841],\"mapped\",[104]],[[119842,119842],\"mapped\",[105]],[[119843,119843],\"mapped\",[106]],[[119844,119844],\"mapped\",[107]],[[119845,119845],\"mapped\",[108]],[[119846,119846],\"mapped\",[109]],[[119847,119847],\"mapped\",[110]],[[119848,119848],\"mapped\",[111]],[[119849,119849],\"mapped\",[112]],[[119850,119850],\"mapped\",[113]],[[119851,119851],\"mapped\",[114]],[[119852,119852],\"mapped\",[115]],[[119853,119853],\"mapped\",[116]],[[119854,119854],\"mapped\",[117]],[[119855,119855],\"mapped\",[118]],[[119856,119856],\"mapped\",[119]],[[119857,119857],\"mapped\",[120]],[[119858,119858],\"mapped\",[121]],[[119859,119859],\"mapped\",[122]],[[119860,119860],\"mapped\",[97]],[[119861,119861],\"mapped\",[98]],[[119862,119862],\"mapped\",[99]],[[119863,119863],\"mapped\",[100]],[[119864,119864],\"mapped\",[101]],[[119865,119865],\"mapped\",[102]],[[119866,119866],\"mapped\",[103]],[[119867,119867],\"mapped\",[104]],[[119868,119868],\"mapped\",[105]],[[119869,119869],\"mapped\",[106]],[[119870,119870],\"mapped\",[107]],[[119871,119871],\"mapped\",[108]],[[119872,119872],\"mapped\",[109]],[[119873,119873],\"mapped\",[110]],[[119874,119874],\"mapped\",[111]],[[119875,119875],\"mapped\",[112]],[[119876,119876],\"mapped\",[113]],[[119877,119877],\"mapped\",[114]],[[119878,119878],\"mapped\",[115]],[[119879,119879],\"mapped\",[116]],[[119880,119880],\"mapped\",[117]],[[119881,119881],\"mapped\",[118]],[[119882,119882],\"mapped\",[119]],[[119883,119883],\"mapped\",[120]],[[119884,119884],\"mapped\",[121]],[[119885,119885],\"mapped\",[122]],[[119886,119886],\"mapped\",[97]],[[119887,119887],\"mapped\",[98]],[[119888,119888],\"mapped\",[99]],[[119889,119889],\"mapped\",[100]],[[119890,119890],\"mapped\",[101]],[[119891,119891],\"mapped\",[102]],[[119892,119892],\"mapped\",[103]],[[119893,119893],\"disallowed\"],[[119894,119894],\"mapped\",[105]],[[119895,119895],\"mapped\",[106]],[[119896,119896],\"mapped\",[107]],[[119897,119897],\"mapped\",[108]],[[119898,119898],\"mapped\",[109]],[[119899,119899],\"mapped\",[110]],[[119900,119900],\"mapped\",[111]],[[119901,119901],\"mapped\",[112]],[[119902,119902],\"mapped\",[113]],[[119903,119903],\"mapped\",[114]],[[119904,119904],\"mapped\",[115]],[[119905,119905],\"mapped\",[116]],[[119906,119906],\"mapped\",[117]],[[119907,119907],\"mapped\",[118]],[[119908,119908],\"mapped\",[119]],[[119909,119909],\"mapped\",[120]],[[119910,119910],\"mapped\",[121]],[[119911,119911],\"mapped\",[122]],[[119912,119912],\"mapped\",[97]],[[119913,119913],\"mapped\",[98]],[[119914,119914],\"mapped\",[99]],[[119915,119915],\"mapped\",[100]],[[119916,119916],\"mapped\",[101]],[[119917,119917],\"mapped\",[102]],[[119918,119918],\"mapped\",[103]],[[119919,119919],\"mapped\",[104]],[[119920,119920],\"mapped\",[105]],[[119921,119921],\"mapped\",[106]],[[119922,119922],\"mapped\",[107]],[[119923,119923],\"mapped\",[108]],[[119924,119924],\"mapped\",[109]],[[119925,119925],\"mapped\",[110]],[[119926,119926],\"mapped\",[111]],[[119927,119927],\"mapped\",[112]],[[119928,119928],\"mapped\",[113]],[[119929,119929],\"mapped\",[114]],[[119930,119930],\"mapped\",[115]],[[119931,119931],\"mapped\",[116]],[[119932,119932],\"mapped\",[117]],[[119933,119933],\"mapped\",[118]],[[119934,119934],\"mapped\",[119]],[[119935,119935],\"mapped\",[120]],[[119936,119936],\"mapped\",[121]],[[119937,119937],\"mapped\",[122]],[[119938,119938],\"mapped\",[97]],[[119939,119939],\"mapped\",[98]],[[119940,119940],\"mapped\",[99]],[[119941,119941],\"mapped\",[100]],[[119942,119942],\"mapped\",[101]],[[119943,119943],\"mapped\",[102]],[[119944,119944],\"mapped\",[103]],[[119945,119945],\"mapped\",[104]],[[119946,119946],\"mapped\",[105]],[[119947,119947],\"mapped\",[106]],[[119948,119948],\"mapped\",[107]],[[119949,119949],\"mapped\",[108]],[[119950,119950],\"mapped\",[109]],[[119951,119951],\"mapped\",[110]],[[119952,119952],\"mapped\",[111]],[[119953,119953],\"mapped\",[112]],[[119954,119954],\"mapped\",[113]],[[119955,119955],\"mapped\",[114]],[[119956,119956],\"mapped\",[115]],[[119957,119957],\"mapped\",[116]],[[119958,119958],\"mapped\",[117]],[[119959,119959],\"mapped\",[118]],[[119960,119960],\"mapped\",[119]],[[119961,119961],\"mapped\",[120]],[[119962,119962],\"mapped\",[121]],[[119963,119963],\"mapped\",[122]],[[119964,119964],\"mapped\",[97]],[[119965,119965],\"disallowed\"],[[119966,119966],\"mapped\",[99]],[[119967,119967],\"mapped\",[100]],[[119968,119969],\"disallowed\"],[[119970,119970],\"mapped\",[103]],[[119971,119972],\"disallowed\"],[[119973,119973],\"mapped\",[106]],[[119974,119974],\"mapped\",[107]],[[119975,119976],\"disallowed\"],[[119977,119977],\"mapped\",[110]],[[119978,119978],\"mapped\",[111]],[[119979,119979],\"mapped\",[112]],[[119980,119980],\"mapped\",[113]],[[119981,119981],\"disallowed\"],[[119982,119982],\"mapped\",[115]],[[119983,119983],\"mapped\",[116]],[[119984,119984],\"mapped\",[117]],[[119985,119985],\"mapped\",[118]],[[119986,119986],\"mapped\",[119]],[[119987,119987],\"mapped\",[120]],[[119988,119988],\"mapped\",[121]],[[119989,119989],\"mapped\",[122]],[[119990,119990],\"mapped\",[97]],[[119991,119991],\"mapped\",[98]],[[119992,119992],\"mapped\",[99]],[[119993,119993],\"mapped\",[100]],[[119994,119994],\"disallowed\"],[[119995,119995],\"mapped\",[102]],[[119996,119996],\"disallowed\"],[[119997,119997],\"mapped\",[104]],[[119998,119998],\"mapped\",[105]],[[119999,119999],\"mapped\",[106]],[[120000,120000],\"mapped\",[107]],[[120001,120001],\"mapped\",[108]],[[120002,120002],\"mapped\",[109]],[[120003,120003],\"mapped\",[110]],[[120004,120004],\"disallowed\"],[[120005,120005],\"mapped\",[112]],[[120006,120006],\"mapped\",[113]],[[120007,120007],\"mapped\",[114]],[[120008,120008],\"mapped\",[115]],[[120009,120009],\"mapped\",[116]],[[120010,120010],\"mapped\",[117]],[[120011,120011],\"mapped\",[118]],[[120012,120012],\"mapped\",[119]],[[120013,120013],\"mapped\",[120]],[[120014,120014],\"mapped\",[121]],[[120015,120015],\"mapped\",[122]],[[120016,120016],\"mapped\",[97]],[[120017,120017],\"mapped\",[98]],[[120018,120018],\"mapped\",[99]],[[120019,120019],\"mapped\",[100]],[[120020,120020],\"mapped\",[101]],[[120021,120021],\"mapped\",[102]],[[120022,120022],\"mapped\",[103]],[[120023,120023],\"mapped\",[104]],[[120024,120024],\"mapped\",[105]],[[120025,120025],\"mapped\",[106]],[[120026,120026],\"mapped\",[107]],[[120027,120027],\"mapped\",[108]],[[120028,120028],\"mapped\",[109]],[[120029,120029],\"mapped\",[110]],[[120030,120030],\"mapped\",[111]],[[120031,120031],\"mapped\",[112]],[[120032,120032],\"mapped\",[113]],[[120033,120033],\"mapped\",[114]],[[120034,120034],\"mapped\",[115]],[[120035,120035],\"mapped\",[116]],[[120036,120036],\"mapped\",[117]],[[120037,120037],\"mapped\",[118]],[[120038,120038],\"mapped\",[119]],[[120039,120039],\"mapped\",[120]],[[120040,120040],\"mapped\",[121]],[[120041,120041],\"mapped\",[122]],[[120042,120042],\"mapped\",[97]],[[120043,120043],\"mapped\",[98]],[[120044,120044],\"mapped\",[99]],[[120045,120045],\"mapped\",[100]],[[120046,120046],\"mapped\",[101]],[[120047,120047],\"mapped\",[102]],[[120048,120048],\"mapped\",[103]],[[120049,120049],\"mapped\",[104]],[[120050,120050],\"mapped\",[105]],[[120051,120051],\"mapped\",[106]],[[120052,120052],\"mapped\",[107]],[[120053,120053],\"mapped\",[108]],[[120054,120054],\"mapped\",[109]],[[120055,120055],\"mapped\",[110]],[[120056,120056],\"mapped\",[111]],[[120057,120057],\"mapped\",[112]],[[120058,120058],\"mapped\",[113]],[[120059,120059],\"mapped\",[114]],[[120060,120060],\"mapped\",[115]],[[120061,120061],\"mapped\",[116]],[[120062,120062],\"mapped\",[117]],[[120063,120063],\"mapped\",[118]],[[120064,120064],\"mapped\",[119]],[[120065,120065],\"mapped\",[120]],[[120066,120066],\"mapped\",[121]],[[120067,120067],\"mapped\",[122]],[[120068,120068],\"mapped\",[97]],[[120069,120069],\"mapped\",[98]],[[120070,120070],\"disallowed\"],[[120071,120071],\"mapped\",[100]],[[120072,120072],\"mapped\",[101]],[[120073,120073],\"mapped\",[102]],[[120074,120074],\"mapped\",[103]],[[120075,120076],\"disallowed\"],[[120077,120077],\"mapped\",[106]],[[120078,120078],\"mapped\",[107]],[[120079,120079],\"mapped\",[108]],[[120080,120080],\"mapped\",[109]],[[120081,120081],\"mapped\",[110]],[[120082,120082],\"mapped\",[111]],[[120083,120083],\"mapped\",[112]],[[120084,120084],\"mapped\",[113]],[[120085,120085],\"disallowed\"],[[120086,120086],\"mapped\",[115]],[[120087,120087],\"mapped\",[116]],[[120088,120088],\"mapped\",[117]],[[120089,120089],\"mapped\",[118]],[[120090,120090],\"mapped\",[119]],[[120091,120091],\"mapped\",[120]],[[120092,120092],\"mapped\",[121]],[[120093,120093],\"disallowed\"],[[120094,120094],\"mapped\",[97]],[[120095,120095],\"mapped\",[98]],[[120096,120096],\"mapped\",[99]],[[120097,120097],\"mapped\",[100]],[[120098,120098],\"mapped\",[101]],[[120099,120099],\"mapped\",[102]],[[120100,120100],\"mapped\",[103]],[[120101,120101],\"mapped\",[104]],[[120102,120102],\"mapped\",[105]],[[120103,120103],\"mapped\",[106]],[[120104,120104],\"mapped\",[107]],[[120105,120105],\"mapped\",[108]],[[120106,120106],\"mapped\",[109]],[[120107,120107],\"mapped\",[110]],[[120108,120108],\"mapped\",[111]],[[120109,120109],\"mapped\",[112]],[[120110,120110],\"mapped\",[113]],[[120111,120111],\"mapped\",[114]],[[120112,120112],\"mapped\",[115]],[[120113,120113],\"mapped\",[116]],[[120114,120114],\"mapped\",[117]],[[120115,120115],\"mapped\",[118]],[[120116,120116],\"mapped\",[119]],[[120117,120117],\"mapped\",[120]],[[120118,120118],\"mapped\",[121]],[[120119,120119],\"mapped\",[122]],[[120120,120120],\"mapped\",[97]],[[120121,120121],\"mapped\",[98]],[[120122,120122],\"disallowed\"],[[120123,120123],\"mapped\",[100]],[[120124,120124],\"mapped\",[101]],[[120125,120125],\"mapped\",[102]],[[120126,120126],\"mapped\",[103]],[[120127,120127],\"disallowed\"],[[120128,120128],\"mapped\",[105]],[[120129,120129],\"mapped\",[106]],[[120130,120130],\"mapped\",[107]],[[120131,120131],\"mapped\",[108]],[[120132,120132],\"mapped\",[109]],[[120133,120133],\"disallowed\"],[[120134,120134],\"mapped\",[111]],[[120135,120137],\"disallowed\"],[[120138,120138],\"mapped\",[115]],[[120139,120139],\"mapped\",[116]],[[120140,120140],\"mapped\",[117]],[[120141,120141],\"mapped\",[118]],[[120142,120142],\"mapped\",[119]],[[120143,120143],\"mapped\",[120]],[[120144,120144],\"mapped\",[121]],[[120145,120145],\"disallowed\"],[[120146,120146],\"mapped\",[97]],[[120147,120147],\"mapped\",[98]],[[120148,120148],\"mapped\",[99]],[[120149,120149],\"mapped\",[100]],[[120150,120150],\"mapped\",[101]],[[120151,120151],\"mapped\",[102]],[[120152,120152],\"mapped\",[103]],[[120153,120153],\"mapped\",[104]],[[120154,120154],\"mapped\",[105]],[[120155,120155],\"mapped\",[106]],[[120156,120156],\"mapped\",[107]],[[120157,120157],\"mapped\",[108]],[[120158,120158],\"mapped\",[109]],[[120159,120159],\"mapped\",[110]],[[120160,120160],\"mapped\",[111]],[[120161,120161],\"mapped\",[112]],[[120162,120162],\"mapped\",[113]],[[120163,120163],\"mapped\",[114]],[[120164,120164],\"mapped\",[115]],[[120165,120165],\"mapped\",[116]],[[120166,120166],\"mapped\",[117]],[[120167,120167],\"mapped\",[118]],[[120168,120168],\"mapped\",[119]],[[120169,120169],\"mapped\",[120]],[[120170,120170],\"mapped\",[121]],[[120171,120171],\"mapped\",[122]],[[120172,120172],\"mapped\",[97]],[[120173,120173],\"mapped\",[98]],[[120174,120174],\"mapped\",[99]],[[120175,120175],\"mapped\",[100]],[[120176,120176],\"mapped\",[101]],[[120177,120177],\"mapped\",[102]],[[120178,120178],\"mapped\",[103]],[[120179,120179],\"mapped\",[104]],[[120180,120180],\"mapped\",[105]],[[120181,120181],\"mapped\",[106]],[[120182,120182],\"mapped\",[107]],[[120183,120183],\"mapped\",[108]],[[120184,120184],\"mapped\",[109]],[[120185,120185],\"mapped\",[110]],[[120186,120186],\"mapped\",[111]],[[120187,120187],\"mapped\",[112]],[[120188,120188],\"mapped\",[113]],[[120189,120189],\"mapped\",[114]],[[120190,120190],\"mapped\",[115]],[[120191,120191],\"mapped\",[116]],[[120192,120192],\"mapped\",[117]],[[120193,120193],\"mapped\",[118]],[[120194,120194],\"mapped\",[119]],[[120195,120195],\"mapped\",[120]],[[120196,120196],\"mapped\",[121]],[[120197,120197],\"mapped\",[122]],[[120198,120198],\"mapped\",[97]],[[120199,120199],\"mapped\",[98]],[[120200,120200],\"mapped\",[99]],[[120201,120201],\"mapped\",[100]],[[120202,120202],\"mapped\",[101]],[[120203,120203],\"mapped\",[102]],[[120204,120204],\"mapped\",[103]],[[120205,120205],\"mapped\",[104]],[[120206,120206],\"mapped\",[105]],[[120207,120207],\"mapped\",[106]],[[120208,120208],\"mapped\",[107]],[[120209,120209],\"mapped\",[108]],[[120210,120210],\"mapped\",[109]],[[120211,120211],\"mapped\",[110]],[[120212,120212],\"mapped\",[111]],[[120213,120213],\"mapped\",[112]],[[120214,120214],\"mapped\",[113]],[[120215,120215],\"mapped\",[114]],[[120216,120216],\"mapped\",[115]],[[120217,120217],\"mapped\",[116]],[[120218,120218],\"mapped\",[117]],[[120219,120219],\"mapped\",[118]],[[120220,120220],\"mapped\",[119]],[[120221,120221],\"mapped\",[120]],[[120222,120222],\"mapped\",[121]],[[120223,120223],\"mapped\",[122]],[[120224,120224],\"mapped\",[97]],[[120225,120225],\"mapped\",[98]],[[120226,120226],\"mapped\",[99]],[[120227,120227],\"mapped\",[100]],[[120228,120228],\"mapped\",[101]],[[120229,120229],\"mapped\",[102]],[[120230,120230],\"mapped\",[103]],[[120231,120231],\"mapped\",[104]],[[120232,120232],\"mapped\",[105]],[[120233,120233],\"mapped\",[106]],[[120234,120234],\"mapped\",[107]],[[120235,120235],\"mapped\",[108]],[[120236,120236],\"mapped\",[109]],[[120237,120237],\"mapped\",[110]],[[120238,120238],\"mapped\",[111]],[[120239,120239],\"mapped\",[112]],[[120240,120240],\"mapped\",[113]],[[120241,120241],\"mapped\",[114]],[[120242,120242],\"mapped\",[115]],[[120243,120243],\"mapped\",[116]],[[120244,120244],\"mapped\",[117]],[[120245,120245],\"mapped\",[118]],[[120246,120246],\"mapped\",[119]],[[120247,120247],\"mapped\",[120]],[[120248,120248],\"mapped\",[121]],[[120249,120249],\"mapped\",[122]],[[120250,120250],\"mapped\",[97]],[[120251,120251],\"mapped\",[98]],[[120252,120252],\"mapped\",[99]],[[120253,120253],\"mapped\",[100]],[[120254,120254],\"mapped\",[101]],[[120255,120255],\"mapped\",[102]],[[120256,120256],\"mapped\",[103]],[[120257,120257],\"mapped\",[104]],[[120258,120258],\"mapped\",[105]],[[120259,120259],\"mapped\",[106]],[[120260,120260],\"mapped\",[107]],[[120261,120261],\"mapped\",[108]],[[120262,120262],\"mapped\",[109]],[[120263,120263],\"mapped\",[110]],[[120264,120264],\"mapped\",[111]],[[120265,120265],\"mapped\",[112]],[[120266,120266],\"mapped\",[113]],[[120267,120267],\"mapped\",[114]],[[120268,120268],\"mapped\",[115]],[[120269,120269],\"mapped\",[116]],[[120270,120270],\"mapped\",[117]],[[120271,120271],\"mapped\",[118]],[[120272,120272],\"mapped\",[119]],[[120273,120273],\"mapped\",[120]],[[120274,120274],\"mapped\",[121]],[[120275,120275],\"mapped\",[122]],[[120276,120276],\"mapped\",[97]],[[120277,120277],\"mapped\",[98]],[[120278,120278],\"mapped\",[99]],[[120279,120279],\"mapped\",[100]],[[120280,120280],\"mapped\",[101]],[[120281,120281],\"mapped\",[102]],[[120282,120282],\"mapped\",[103]],[[120283,120283],\"mapped\",[104]],[[120284,120284],\"mapped\",[105]],[[120285,120285],\"mapped\",[106]],[[120286,120286],\"mapped\",[107]],[[120287,120287],\"mapped\",[108]],[[120288,120288],\"mapped\",[109]],[[120289,120289],\"mapped\",[110]],[[120290,120290],\"mapped\",[111]],[[120291,120291],\"mapped\",[112]],[[120292,120292],\"mapped\",[113]],[[120293,120293],\"mapped\",[114]],[[120294,120294],\"mapped\",[115]],[[120295,120295],\"mapped\",[116]],[[120296,120296],\"mapped\",[117]],[[120297,120297],\"mapped\",[118]],[[120298,120298],\"mapped\",[119]],[[120299,120299],\"mapped\",[120]],[[120300,120300],\"mapped\",[121]],[[120301,120301],\"mapped\",[122]],[[120302,120302],\"mapped\",[97]],[[120303,120303],\"mapped\",[98]],[[120304,120304],\"mapped\",[99]],[[120305,120305],\"mapped\",[100]],[[120306,120306],\"mapped\",[101]],[[120307,120307],\"mapped\",[102]],[[120308,120308],\"mapped\",[103]],[[120309,120309],\"mapped\",[104]],[[120310,120310],\"mapped\",[105]],[[120311,120311],\"mapped\",[106]],[[120312,120312],\"mapped\",[107]],[[120313,120313],\"mapped\",[108]],[[120314,120314],\"mapped\",[109]],[[120315,120315],\"mapped\",[110]],[[120316,120316],\"mapped\",[111]],[[120317,120317],\"mapped\",[112]],[[120318,120318],\"mapped\",[113]],[[120319,120319],\"mapped\",[114]],[[120320,120320],\"mapped\",[115]],[[120321,120321],\"mapped\",[116]],[[120322,120322],\"mapped\",[117]],[[120323,120323],\"mapped\",[118]],[[120324,120324],\"mapped\",[119]],[[120325,120325],\"mapped\",[120]],[[120326,120326],\"mapped\",[121]],[[120327,120327],\"mapped\",[122]],[[120328,120328],\"mapped\",[97]],[[120329,120329],\"mapped\",[98]],[[120330,120330],\"mapped\",[99]],[[120331,120331],\"mapped\",[100]],[[120332,120332],\"mapped\",[101]],[[120333,120333],\"mapped\",[102]],[[120334,120334],\"mapped\",[103]],[[120335,120335],\"mapped\",[104]],[[120336,120336],\"mapped\",[105]],[[120337,120337],\"mapped\",[106]],[[120338,120338],\"mapped\",[107]],[[120339,120339],\"mapped\",[108]],[[120340,120340],\"mapped\",[109]],[[120341,120341],\"mapped\",[110]],[[120342,120342],\"mapped\",[111]],[[120343,120343],\"mapped\",[112]],[[120344,120344],\"mapped\",[113]],[[120345,120345],\"mapped\",[114]],[[120346,120346],\"mapped\",[115]],[[120347,120347],\"mapped\",[116]],[[120348,120348],\"mapped\",[117]],[[120349,120349],\"mapped\",[118]],[[120350,120350],\"mapped\",[119]],[[120351,120351],\"mapped\",[120]],[[120352,120352],\"mapped\",[121]],[[120353,120353],\"mapped\",[122]],[[120354,120354],\"mapped\",[97]],[[120355,120355],\"mapped\",[98]],[[120356,120356],\"mapped\",[99]],[[120357,120357],\"mapped\",[100]],[[120358,120358],\"mapped\",[101]],[[120359,120359],\"mapped\",[102]],[[120360,120360],\"mapped\",[103]],[[120361,120361],\"mapped\",[104]],[[120362,120362],\"mapped\",[105]],[[120363,120363],\"mapped\",[106]],[[120364,120364],\"mapped\",[107]],[[120365,120365],\"mapped\",[108]],[[120366,120366],\"mapped\",[109]],[[120367,120367],\"mapped\",[110]],[[120368,120368],\"mapped\",[111]],[[120369,120369],\"mapped\",[112]],[[120370,120370],\"mapped\",[113]],[[120371,120371],\"mapped\",[114]],[[120372,120372],\"mapped\",[115]],[[120373,120373],\"mapped\",[116]],[[120374,120374],\"mapped\",[117]],[[120375,120375],\"mapped\",[118]],[[120376,120376],\"mapped\",[119]],[[120377,120377],\"mapped\",[120]],[[120378,120378],\"mapped\",[121]],[[120379,120379],\"mapped\",[122]],[[120380,120380],\"mapped\",[97]],[[120381,120381],\"mapped\",[98]],[[120382,120382],\"mapped\",[99]],[[120383,120383],\"mapped\",[100]],[[120384,120384],\"mapped\",[101]],[[120385,120385],\"mapped\",[102]],[[120386,120386],\"mapped\",[103]],[[120387,120387],\"mapped\",[104]],[[120388,120388],\"mapped\",[105]],[[120389,120389],\"mapped\",[106]],[[120390,120390],\"mapped\",[107]],[[120391,120391],\"mapped\",[108]],[[120392,120392],\"mapped\",[109]],[[120393,120393],\"mapped\",[110]],[[120394,120394],\"mapped\",[111]],[[120395,120395],\"mapped\",[112]],[[120396,120396],\"mapped\",[113]],[[120397,120397],\"mapped\",[114]],[[120398,120398],\"mapped\",[115]],[[120399,120399],\"mapped\",[116]],[[120400,120400],\"mapped\",[117]],[[120401,120401],\"mapped\",[118]],[[120402,120402],\"mapped\",[119]],[[120403,120403],\"mapped\",[120]],[[120404,120404],\"mapped\",[121]],[[120405,120405],\"mapped\",[122]],[[120406,120406],\"mapped\",[97]],[[120407,120407],\"mapped\",[98]],[[120408,120408],\"mapped\",[99]],[[120409,120409],\"mapped\",[100]],[[120410,120410],\"mapped\",[101]],[[120411,120411],\"mapped\",[102]],[[120412,120412],\"mapped\",[103]],[[120413,120413],\"mapped\",[104]],[[120414,120414],\"mapped\",[105]],[[120415,120415],\"mapped\",[106]],[[120416,120416],\"mapped\",[107]],[[120417,120417],\"mapped\",[108]],[[120418,120418],\"mapped\",[109]],[[120419,120419],\"mapped\",[110]],[[120420,120420],\"mapped\",[111]],[[120421,120421],\"mapped\",[112]],[[120422,120422],\"mapped\",[113]],[[120423,120423],\"mapped\",[114]],[[120424,120424],\"mapped\",[115]],[[120425,120425],\"mapped\",[116]],[[120426,120426],\"mapped\",[117]],[[120427,120427],\"mapped\",[118]],[[120428,120428],\"mapped\",[119]],[[120429,120429],\"mapped\",[120]],[[120430,120430],\"mapped\",[121]],[[120431,120431],\"mapped\",[122]],[[120432,120432],\"mapped\",[97]],[[120433,120433],\"mapped\",[98]],[[120434,120434],\"mapped\",[99]],[[120435,120435],\"mapped\",[100]],[[120436,120436],\"mapped\",[101]],[[120437,120437],\"mapped\",[102]],[[120438,120438],\"mapped\",[103]],[[120439,120439],\"mapped\",[104]],[[120440,120440],\"mapped\",[105]],[[120441,120441],\"mapped\",[106]],[[120442,120442],\"mapped\",[107]],[[120443,120443],\"mapped\",[108]],[[120444,120444],\"mapped\",[109]],[[120445,120445],\"mapped\",[110]],[[120446,120446],\"mapped\",[111]],[[120447,120447],\"mapped\",[112]],[[120448,120448],\"mapped\",[113]],[[120449,120449],\"mapped\",[114]],[[120450,120450],\"mapped\",[115]],[[120451,120451],\"mapped\",[116]],[[120452,120452],\"mapped\",[117]],[[120453,120453],\"mapped\",[118]],[[120454,120454],\"mapped\",[119]],[[120455,120455],\"mapped\",[120]],[[120456,120456],\"mapped\",[121]],[[120457,120457],\"mapped\",[122]],[[120458,120458],\"mapped\",[97]],[[120459,120459],\"mapped\",[98]],[[120460,120460],\"mapped\",[99]],[[120461,120461],\"mapped\",[100]],[[120462,120462],\"mapped\",[101]],[[120463,120463],\"mapped\",[102]],[[120464,120464],\"mapped\",[103]],[[120465,120465],\"mapped\",[104]],[[120466,120466],\"mapped\",[105]],[[120467,120467],\"mapped\",[106]],[[120468,120468],\"mapped\",[107]],[[120469,120469],\"mapped\",[108]],[[120470,120470],\"mapped\",[109]],[[120471,120471],\"mapped\",[110]],[[120472,120472],\"mapped\",[111]],[[120473,120473],\"mapped\",[112]],[[120474,120474],\"mapped\",[113]],[[120475,120475],\"mapped\",[114]],[[120476,120476],\"mapped\",[115]],[[120477,120477],\"mapped\",[116]],[[120478,120478],\"mapped\",[117]],[[120479,120479],\"mapped\",[118]],[[120480,120480],\"mapped\",[119]],[[120481,120481],\"mapped\",[120]],[[120482,120482],\"mapped\",[121]],[[120483,120483],\"mapped\",[122]],[[120484,120484],\"mapped\",[305]],[[120485,120485],\"mapped\",[567]],[[120486,120487],\"disallowed\"],[[120488,120488],\"mapped\",[945]],[[120489,120489],\"mapped\",[946]],[[120490,120490],\"mapped\",[947]],[[120491,120491],\"mapped\",[948]],[[120492,120492],\"mapped\",[949]],[[120493,120493],\"mapped\",[950]],[[120494,120494],\"mapped\",[951]],[[120495,120495],\"mapped\",[952]],[[120496,120496],\"mapped\",[953]],[[120497,120497],\"mapped\",[954]],[[120498,120498],\"mapped\",[955]],[[120499,120499],\"mapped\",[956]],[[120500,120500],\"mapped\",[957]],[[120501,120501],\"mapped\",[958]],[[120502,120502],\"mapped\",[959]],[[120503,120503],\"mapped\",[960]],[[120504,120504],\"mapped\",[961]],[[120505,120505],\"mapped\",[952]],[[120506,120506],\"mapped\",[963]],[[120507,120507],\"mapped\",[964]],[[120508,120508],\"mapped\",[965]],[[120509,120509],\"mapped\",[966]],[[120510,120510],\"mapped\",[967]],[[120511,120511],\"mapped\",[968]],[[120512,120512],\"mapped\",[969]],[[120513,120513],\"mapped\",[8711]],[[120514,120514],\"mapped\",[945]],[[120515,120515],\"mapped\",[946]],[[120516,120516],\"mapped\",[947]],[[120517,120517],\"mapped\",[948]],[[120518,120518],\"mapped\",[949]],[[120519,120519],\"mapped\",[950]],[[120520,120520],\"mapped\",[951]],[[120521,120521],\"mapped\",[952]],[[120522,120522],\"mapped\",[953]],[[120523,120523],\"mapped\",[954]],[[120524,120524],\"mapped\",[955]],[[120525,120525],\"mapped\",[956]],[[120526,120526],\"mapped\",[957]],[[120527,120527],\"mapped\",[958]],[[120528,120528],\"mapped\",[959]],[[120529,120529],\"mapped\",[960]],[[120530,120530],\"mapped\",[961]],[[120531,120532],\"mapped\",[963]],[[120533,120533],\"mapped\",[964]],[[120534,120534],\"mapped\",[965]],[[120535,120535],\"mapped\",[966]],[[120536,120536],\"mapped\",[967]],[[120537,120537],\"mapped\",[968]],[[120538,120538],\"mapped\",[969]],[[120539,120539],\"mapped\",[8706]],[[120540,120540],\"mapped\",[949]],[[120541,120541],\"mapped\",[952]],[[120542,120542],\"mapped\",[954]],[[120543,120543],\"mapped\",[966]],[[120544,120544],\"mapped\",[961]],[[120545,120545],\"mapped\",[960]],[[120546,120546],\"mapped\",[945]],[[120547,120547],\"mapped\",[946]],[[120548,120548],\"mapped\",[947]],[[120549,120549],\"mapped\",[948]],[[120550,120550],\"mapped\",[949]],[[120551,120551],\"mapped\",[950]],[[120552,120552],\"mapped\",[951]],[[120553,120553],\"mapped\",[952]],[[120554,120554],\"mapped\",[953]],[[120555,120555],\"mapped\",[954]],[[120556,120556],\"mapped\",[955]],[[120557,120557],\"mapped\",[956]],[[120558,120558],\"mapped\",[957]],[[120559,120559],\"mapped\",[958]],[[120560,120560],\"mapped\",[959]],[[120561,120561],\"mapped\",[960]],[[120562,120562],\"mapped\",[961]],[[120563,120563],\"mapped\",[952]],[[120564,120564],\"mapped\",[963]],[[120565,120565],\"mapped\",[964]],[[120566,120566],\"mapped\",[965]],[[120567,120567],\"mapped\",[966]],[[120568,120568],\"mapped\",[967]],[[120569,120569],\"mapped\",[968]],[[120570,120570],\"mapped\",[969]],[[120571,120571],\"mapped\",[8711]],[[120572,120572],\"mapped\",[945]],[[120573,120573],\"mapped\",[946]],[[120574,120574],\"mapped\",[947]],[[120575,120575],\"mapped\",[948]],[[120576,120576],\"mapped\",[949]],[[120577,120577],\"mapped\",[950]],[[120578,120578],\"mapped\",[951]],[[120579,120579],\"mapped\",[952]],[[120580,120580],\"mapped\",[953]],[[120581,120581],\"mapped\",[954]],[[120582,120582],\"mapped\",[955]],[[120583,120583],\"mapped\",[956]],[[120584,120584],\"mapped\",[957]],[[120585,120585],\"mapped\",[958]],[[120586,120586],\"mapped\",[959]],[[120587,120587],\"mapped\",[960]],[[120588,120588],\"mapped\",[961]],[[120589,120590],\"mapped\",[963]],[[120591,120591],\"mapped\",[964]],[[120592,120592],\"mapped\",[965]],[[120593,120593],\"mapped\",[966]],[[120594,120594],\"mapped\",[967]],[[120595,120595],\"mapped\",[968]],[[120596,120596],\"mapped\",[969]],[[120597,120597],\"mapped\",[8706]],[[120598,120598],\"mapped\",[949]],[[120599,120599],\"mapped\",[952]],[[120600,120600],\"mapped\",[954]],[[120601,120601],\"mapped\",[966]],[[120602,120602],\"mapped\",[961]],[[120603,120603],\"mapped\",[960]],[[120604,120604],\"mapped\",[945]],[[120605,120605],\"mapped\",[946]],[[120606,120606],\"mapped\",[947]],[[120607,120607],\"mapped\",[948]],[[120608,120608],\"mapped\",[949]],[[120609,120609],\"mapped\",[950]],[[120610,120610],\"mapped\",[951]],[[120611,120611],\"mapped\",[952]],[[120612,120612],\"mapped\",[953]],[[120613,120613],\"mapped\",[954]],[[120614,120614],\"mapped\",[955]],[[120615,120615],\"mapped\",[956]],[[120616,120616],\"mapped\",[957]],[[120617,120617],\"mapped\",[958]],[[120618,120618],\"mapped\",[959]],[[120619,120619],\"mapped\",[960]],[[120620,120620],\"mapped\",[961]],[[120621,120621],\"mapped\",[952]],[[120622,120622],\"mapped\",[963]],[[120623,120623],\"mapped\",[964]],[[120624,120624],\"mapped\",[965]],[[120625,120625],\"mapped\",[966]],[[120626,120626],\"mapped\",[967]],[[120627,120627],\"mapped\",[968]],[[120628,120628],\"mapped\",[969]],[[120629,120629],\"mapped\",[8711]],[[120630,120630],\"mapped\",[945]],[[120631,120631],\"mapped\",[946]],[[120632,120632],\"mapped\",[947]],[[120633,120633],\"mapped\",[948]],[[120634,120634],\"mapped\",[949]],[[120635,120635],\"mapped\",[950]],[[120636,120636],\"mapped\",[951]],[[120637,120637],\"mapped\",[952]],[[120638,120638],\"mapped\",[953]],[[120639,120639],\"mapped\",[954]],[[120640,120640],\"mapped\",[955]],[[120641,120641],\"mapped\",[956]],[[120642,120642],\"mapped\",[957]],[[120643,120643],\"mapped\",[958]],[[120644,120644],\"mapped\",[959]],[[120645,120645],\"mapped\",[960]],[[120646,120646],\"mapped\",[961]],[[120647,120648],\"mapped\",[963]],[[120649,120649],\"mapped\",[964]],[[120650,120650],\"mapped\",[965]],[[120651,120651],\"mapped\",[966]],[[120652,120652],\"mapped\",[967]],[[120653,120653],\"mapped\",[968]],[[120654,120654],\"mapped\",[969]],[[120655,120655],\"mapped\",[8706]],[[120656,120656],\"mapped\",[949]],[[120657,120657],\"mapped\",[952]],[[120658,120658],\"mapped\",[954]],[[120659,120659],\"mapped\",[966]],[[120660,120660],\"mapped\",[961]],[[120661,120661],\"mapped\",[960]],[[120662,120662],\"mapped\",[945]],[[120663,120663],\"mapped\",[946]],[[120664,120664],\"mapped\",[947]],[[120665,120665],\"mapped\",[948]],[[120666,120666],\"mapped\",[949]],[[120667,120667],\"mapped\",[950]],[[120668,120668],\"mapped\",[951]],[[120669,120669],\"mapped\",[952]],[[120670,120670],\"mapped\",[953]],[[120671,120671],\"mapped\",[954]],[[120672,120672],\"mapped\",[955]],[[120673,120673],\"mapped\",[956]],[[120674,120674],\"mapped\",[957]],[[120675,120675],\"mapped\",[958]],[[120676,120676],\"mapped\",[959]],[[120677,120677],\"mapped\",[960]],[[120678,120678],\"mapped\",[961]],[[120679,120679],\"mapped\",[952]],[[120680,120680],\"mapped\",[963]],[[120681,120681],\"mapped\",[964]],[[120682,120682],\"mapped\",[965]],[[120683,120683],\"mapped\",[966]],[[120684,120684],\"mapped\",[967]],[[120685,120685],\"mapped\",[968]],[[120686,120686],\"mapped\",[969]],[[120687,120687],\"mapped\",[8711]],[[120688,120688],\"mapped\",[945]],[[120689,120689],\"mapped\",[946]],[[120690,120690],\"mapped\",[947]],[[120691,120691],\"mapped\",[948]],[[120692,120692],\"mapped\",[949]],[[120693,120693],\"mapped\",[950]],[[120694,120694],\"mapped\",[951]],[[120695,120695],\"mapped\",[952]],[[120696,120696],\"mapped\",[953]],[[120697,120697],\"mapped\",[954]],[[120698,120698],\"mapped\",[955]],[[120699,120699],\"mapped\",[956]],[[120700,120700],\"mapped\",[957]],[[120701,120701],\"mapped\",[958]],[[120702,120702],\"mapped\",[959]],[[120703,120703],\"mapped\",[960]],[[120704,120704],\"mapped\",[961]],[[120705,120706],\"mapped\",[963]],[[120707,120707],\"mapped\",[964]],[[120708,120708],\"mapped\",[965]],[[120709,120709],\"mapped\",[966]],[[120710,120710],\"mapped\",[967]],[[120711,120711],\"mapped\",[968]],[[120712,120712],\"mapped\",[969]],[[120713,120713],\"mapped\",[8706]],[[120714,120714],\"mapped\",[949]],[[120715,120715],\"mapped\",[952]],[[120716,120716],\"mapped\",[954]],[[120717,120717],\"mapped\",[966]],[[120718,120718],\"mapped\",[961]],[[120719,120719],\"mapped\",[960]],[[120720,120720],\"mapped\",[945]],[[120721,120721],\"mapped\",[946]],[[120722,120722],\"mapped\",[947]],[[120723,120723],\"mapped\",[948]],[[120724,120724],\"mapped\",[949]],[[120725,120725],\"mapped\",[950]],[[120726,120726],\"mapped\",[951]],[[120727,120727],\"mapped\",[952]],[[120728,120728],\"mapped\",[953]],[[120729,120729],\"mapped\",[954]],[[120730,120730],\"mapped\",[955]],[[120731,120731],\"mapped\",[956]],[[120732,120732],\"mapped\",[957]],[[120733,120733],\"mapped\",[958]],[[120734,120734],\"mapped\",[959]],[[120735,120735],\"mapped\",[960]],[[120736,120736],\"mapped\",[961]],[[120737,120737],\"mapped\",[952]],[[120738,120738],\"mapped\",[963]],[[120739,120739],\"mapped\",[964]],[[120740,120740],\"mapped\",[965]],[[120741,120741],\"mapped\",[966]],[[120742,120742],\"mapped\",[967]],[[120743,120743],\"mapped\",[968]],[[120744,120744],\"mapped\",[969]],[[120745,120745],\"mapped\",[8711]],[[120746,120746],\"mapped\",[945]],[[120747,120747],\"mapped\",[946]],[[120748,120748],\"mapped\",[947]],[[120749,120749],\"mapped\",[948]],[[120750,120750],\"mapped\",[949]],[[120751,120751],\"mapped\",[950]],[[120752,120752],\"mapped\",[951]],[[120753,120753],\"mapped\",[952]],[[120754,120754],\"mapped\",[953]],[[120755,120755],\"mapped\",[954]],[[120756,120756],\"mapped\",[955]],[[120757,120757],\"mapped\",[956]],[[120758,120758],\"mapped\",[957]],[[120759,120759],\"mapped\",[958]],[[120760,120760],\"mapped\",[959]],[[120761,120761],\"mapped\",[960]],[[120762,120762],\"mapped\",[961]],[[120763,120764],\"mapped\",[963]],[[120765,120765],\"mapped\",[964]],[[120766,120766],\"mapped\",[965]],[[120767,120767],\"mapped\",[966]],[[120768,120768],\"mapped\",[967]],[[120769,120769],\"mapped\",[968]],[[120770,120770],\"mapped\",[969]],[[120771,120771],\"mapped\",[8706]],[[120772,120772],\"mapped\",[949]],[[120773,120773],\"mapped\",[952]],[[120774,120774],\"mapped\",[954]],[[120775,120775],\"mapped\",[966]],[[120776,120776],\"mapped\",[961]],[[120777,120777],\"mapped\",[960]],[[120778,120779],\"mapped\",[989]],[[120780,120781],\"disallowed\"],[[120782,120782],\"mapped\",[48]],[[120783,120783],\"mapped\",[49]],[[120784,120784],\"mapped\",[50]],[[120785,120785],\"mapped\",[51]],[[120786,120786],\"mapped\",[52]],[[120787,120787],\"mapped\",[53]],[[120788,120788],\"mapped\",[54]],[[120789,120789],\"mapped\",[55]],[[120790,120790],\"mapped\",[56]],[[120791,120791],\"mapped\",[57]],[[120792,120792],\"mapped\",[48]],[[120793,120793],\"mapped\",[49]],[[120794,120794],\"mapped\",[50]],[[120795,120795],\"mapped\",[51]],[[120796,120796],\"mapped\",[52]],[[120797,120797],\"mapped\",[53]],[[120798,120798],\"mapped\",[54]],[[120799,120799],\"mapped\",[55]],[[120800,120800],\"mapped\",[56]],[[120801,120801],\"mapped\",[57]],[[120802,120802],\"mapped\",[48]],[[120803,120803],\"mapped\",[49]],[[120804,120804],\"mapped\",[50]],[[120805,120805],\"mapped\",[51]],[[120806,120806],\"mapped\",[52]],[[120807,120807],\"mapped\",[53]],[[120808,120808],\"mapped\",[54]],[[120809,120809],\"mapped\",[55]],[[120810,120810],\"mapped\",[56]],[[120811,120811],\"mapped\",[57]],[[120812,120812],\"mapped\",[48]],[[120813,120813],\"mapped\",[49]],[[120814,120814],\"mapped\",[50]],[[120815,120815],\"mapped\",[51]],[[120816,120816],\"mapped\",[52]],[[120817,120817],\"mapped\",[53]],[[120818,120818],\"mapped\",[54]],[[120819,120819],\"mapped\",[55]],[[120820,120820],\"mapped\",[56]],[[120821,120821],\"mapped\",[57]],[[120822,120822],\"mapped\",[48]],[[120823,120823],\"mapped\",[49]],[[120824,120824],\"mapped\",[50]],[[120825,120825],\"mapped\",[51]],[[120826,120826],\"mapped\",[52]],[[120827,120827],\"mapped\",[53]],[[120828,120828],\"mapped\",[54]],[[120829,120829],\"mapped\",[55]],[[120830,120830],\"mapped\",[56]],[[120831,120831],\"mapped\",[57]],[[120832,121343],\"valid\",[],\"NV8\"],[[121344,121398],\"valid\"],[[121399,121402],\"valid\",[],\"NV8\"],[[121403,121452],\"valid\"],[[121453,121460],\"valid\",[],\"NV8\"],[[121461,121461],\"valid\"],[[121462,121475],\"valid\",[],\"NV8\"],[[121476,121476],\"valid\"],[[121477,121483],\"valid\",[],\"NV8\"],[[121484,121498],\"disallowed\"],[[121499,121503],\"valid\"],[[121504,121504],\"disallowed\"],[[121505,121519],\"valid\"],[[121520,124927],\"disallowed\"],[[124928,125124],\"valid\"],[[125125,125126],\"disallowed\"],[[125127,125135],\"valid\",[],\"NV8\"],[[125136,125142],\"valid\"],[[125143,126463],\"disallowed\"],[[126464,126464],\"mapped\",[1575]],[[126465,126465],\"mapped\",[1576]],[[126466,126466],\"mapped\",[1580]],[[126467,126467],\"mapped\",[1583]],[[126468,126468],\"disallowed\"],[[126469,126469],\"mapped\",[1608]],[[126470,126470],\"mapped\",[1586]],[[126471,126471],\"mapped\",[1581]],[[126472,126472],\"mapped\",[1591]],[[126473,126473],\"mapped\",[1610]],[[126474,126474],\"mapped\",[1603]],[[126475,126475],\"mapped\",[1604]],[[126476,126476],\"mapped\",[1605]],[[126477,126477],\"mapped\",[1606]],[[126478,126478],\"mapped\",[1587]],[[126479,126479],\"mapped\",[1593]],[[126480,126480],\"mapped\",[1601]],[[126481,126481],\"mapped\",[1589]],[[126482,126482],\"mapped\",[1602]],[[126483,126483],\"mapped\",[1585]],[[126484,126484],\"mapped\",[1588]],[[126485,126485],\"mapped\",[1578]],[[126486,126486],\"mapped\",[1579]],[[126487,126487],\"mapped\",[1582]],[[126488,126488],\"mapped\",[1584]],[[126489,126489],\"mapped\",[1590]],[[126490,126490],\"mapped\",[1592]],[[126491,126491],\"mapped\",[1594]],[[126492,126492],\"mapped\",[1646]],[[126493,126493],\"mapped\",[1722]],[[126494,126494],\"mapped\",[1697]],[[126495,126495],\"mapped\",[1647]],[[126496,126496],\"disallowed\"],[[126497,126497],\"mapped\",[1576]],[[126498,126498],\"mapped\",[1580]],[[126499,126499],\"disallowed\"],[[126500,126500],\"mapped\",[1607]],[[126501,126502],\"disallowed\"],[[126503,126503],\"mapped\",[1581]],[[126504,126504],\"disallowed\"],[[126505,126505],\"mapped\",[1610]],[[126506,126506],\"mapped\",[1603]],[[126507,126507],\"mapped\",[1604]],[[126508,126508],\"mapped\",[1605]],[[126509,126509],\"mapped\",[1606]],[[126510,126510],\"mapped\",[1587]],[[126511,126511],\"mapped\",[1593]],[[126512,126512],\"mapped\",[1601]],[[126513,126513],\"mapped\",[1589]],[[126514,126514],\"mapped\",[1602]],[[126515,126515],\"disallowed\"],[[126516,126516],\"mapped\",[1588]],[[126517,126517],\"mapped\",[1578]],[[126518,126518],\"mapped\",[1579]],[[126519,126519],\"mapped\",[1582]],[[126520,126520],\"disallowed\"],[[126521,126521],\"mapped\",[1590]],[[126522,126522],\"disallowed\"],[[126523,126523],\"mapped\",[1594]],[[126524,126529],\"disallowed\"],[[126530,126530],\"mapped\",[1580]],[[126531,126534],\"disallowed\"],[[126535,126535],\"mapped\",[1581]],[[126536,126536],\"disallowed\"],[[126537,126537],\"mapped\",[1610]],[[126538,126538],\"disallowed\"],[[126539,126539],\"mapped\",[1604]],[[126540,126540],\"disallowed\"],[[126541,126541],\"mapped\",[1606]],[[126542,126542],\"mapped\",[1587]],[[126543,126543],\"mapped\",[1593]],[[126544,126544],\"disallowed\"],[[126545,126545],\"mapped\",[1589]],[[126546,126546],\"mapped\",[1602]],[[126547,126547],\"disallowed\"],[[126548,126548],\"mapped\",[1588]],[[126549,126550],\"disallowed\"],[[126551,126551],\"mapped\",[1582]],[[126552,126552],\"disallowed\"],[[126553,126553],\"mapped\",[1590]],[[126554,126554],\"disallowed\"],[[126555,126555],\"mapped\",[1594]],[[126556,126556],\"disallowed\"],[[126557,126557],\"mapped\",[1722]],[[126558,126558],\"disallowed\"],[[126559,126559],\"mapped\",[1647]],[[126560,126560],\"disallowed\"],[[126561,126561],\"mapped\",[1576]],[[126562,126562],\"mapped\",[1580]],[[126563,126563],\"disallowed\"],[[126564,126564],\"mapped\",[1607]],[[126565,126566],\"disallowed\"],[[126567,126567],\"mapped\",[1581]],[[126568,126568],\"mapped\",[1591]],[[126569,126569],\"mapped\",[1610]],[[126570,126570],\"mapped\",[1603]],[[126571,126571],\"disallowed\"],[[126572,126572],\"mapped\",[1605]],[[126573,126573],\"mapped\",[1606]],[[126574,126574],\"mapped\",[1587]],[[126575,126575],\"mapped\",[1593]],[[126576,126576],\"mapped\",[1601]],[[126577,126577],\"mapped\",[1589]],[[126578,126578],\"mapped\",[1602]],[[126579,126579],\"disallowed\"],[[126580,126580],\"mapped\",[1588]],[[126581,126581],\"mapped\",[1578]],[[126582,126582],\"mapped\",[1579]],[[126583,126583],\"mapped\",[1582]],[[126584,126584],\"disallowed\"],[[126585,126585],\"mapped\",[1590]],[[126586,126586],\"mapped\",[1592]],[[126587,126587],\"mapped\",[1594]],[[126588,126588],\"mapped\",[1646]],[[126589,126589],\"disallowed\"],[[126590,126590],\"mapped\",[1697]],[[126591,126591],\"disallowed\"],[[126592,126592],\"mapped\",[1575]],[[126593,126593],\"mapped\",[1576]],[[126594,126594],\"mapped\",[1580]],[[126595,126595],\"mapped\",[1583]],[[126596,126596],\"mapped\",[1607]],[[126597,126597],\"mapped\",[1608]],[[126598,126598],\"mapped\",[1586]],[[126599,126599],\"mapped\",[1581]],[[126600,126600],\"mapped\",[1591]],[[126601,126601],\"mapped\",[1610]],[[126602,126602],\"disallowed\"],[[126603,126603],\"mapped\",[1604]],[[126604,126604],\"mapped\",[1605]],[[126605,126605],\"mapped\",[1606]],[[126606,126606],\"mapped\",[1587]],[[126607,126607],\"mapped\",[1593]],[[126608,126608],\"mapped\",[1601]],[[126609,126609],\"mapped\",[1589]],[[126610,126610],\"mapped\",[1602]],[[126611,126611],\"mapped\",[1585]],[[126612,126612],\"mapped\",[1588]],[[126613,126613],\"mapped\",[1578]],[[126614,126614],\"mapped\",[1579]],[[126615,126615],\"mapped\",[1582]],[[126616,126616],\"mapped\",[1584]],[[126617,126617],\"mapped\",[1590]],[[126618,126618],\"mapped\",[1592]],[[126619,126619],\"mapped\",[1594]],[[126620,126624],\"disallowed\"],[[126625,126625],\"mapped\",[1576]],[[126626,126626],\"mapped\",[1580]],[[126627,126627],\"mapped\",[1583]],[[126628,126628],\"disallowed\"],[[126629,126629],\"mapped\",[1608]],[[126630,126630],\"mapped\",[1586]],[[126631,126631],\"mapped\",[1581]],[[126632,126632],\"mapped\",[1591]],[[126633,126633],\"mapped\",[1610]],[[126634,126634],\"disallowed\"],[[126635,126635],\"mapped\",[1604]],[[126636,126636],\"mapped\",[1605]],[[126637,126637],\"mapped\",[1606]],[[126638,126638],\"mapped\",[1587]],[[126639,126639],\"mapped\",[1593]],[[126640,126640],\"mapped\",[1601]],[[126641,126641],\"mapped\",[1589]],[[126642,126642],\"mapped\",[1602]],[[126643,126643],\"mapped\",[1585]],[[126644,126644],\"mapped\",[1588]],[[126645,126645],\"mapped\",[1578]],[[126646,126646],\"mapped\",[1579]],[[126647,126647],\"mapped\",[1582]],[[126648,126648],\"mapped\",[1584]],[[126649,126649],\"mapped\",[1590]],[[126650,126650],\"mapped\",[1592]],[[126651,126651],\"mapped\",[1594]],[[126652,126703],\"disallowed\"],[[126704,126705],\"valid\",[],\"NV8\"],[[126706,126975],\"disallowed\"],[[126976,127019],\"valid\",[],\"NV8\"],[[127020,127023],\"disallowed\"],[[127024,127123],\"valid\",[],\"NV8\"],[[127124,127135],\"disallowed\"],[[127136,127150],\"valid\",[],\"NV8\"],[[127151,127152],\"disallowed\"],[[127153,127166],\"valid\",[],\"NV8\"],[[127167,127167],\"valid\",[],\"NV8\"],[[127168,127168],\"disallowed\"],[[127169,127183],\"valid\",[],\"NV8\"],[[127184,127184],\"disallowed\"],[[127185,127199],\"valid\",[],\"NV8\"],[[127200,127221],\"valid\",[],\"NV8\"],[[127222,127231],\"disallowed\"],[[127232,127232],\"disallowed\"],[[127233,127233],\"disallowed_STD3_mapped\",[48,44]],[[127234,127234],\"disallowed_STD3_mapped\",[49,44]],[[127235,127235],\"disallowed_STD3_mapped\",[50,44]],[[127236,127236],\"disallowed_STD3_mapped\",[51,44]],[[127237,127237],\"disallowed_STD3_mapped\",[52,44]],[[127238,127238],\"disallowed_STD3_mapped\",[53,44]],[[127239,127239],\"disallowed_STD3_mapped\",[54,44]],[[127240,127240],\"disallowed_STD3_mapped\",[55,44]],[[127241,127241],\"disallowed_STD3_mapped\",[56,44]],[[127242,127242],\"disallowed_STD3_mapped\",[57,44]],[[127243,127244],\"valid\",[],\"NV8\"],[[127245,127247],\"disallowed\"],[[127248,127248],\"disallowed_STD3_mapped\",[40,97,41]],[[127249,127249],\"disallowed_STD3_mapped\",[40,98,41]],[[127250,127250],\"disallowed_STD3_mapped\",[40,99,41]],[[127251,127251],\"disallowed_STD3_mapped\",[40,100,41]],[[127252,127252],\"disallowed_STD3_mapped\",[40,101,41]],[[127253,127253],\"disallowed_STD3_mapped\",[40,102,41]],[[127254,127254],\"disallowed_STD3_mapped\",[40,103,41]],[[127255,127255],\"disallowed_STD3_mapped\",[40,104,41]],[[127256,127256],\"disallowed_STD3_mapped\",[40,105,41]],[[127257,127257],\"disallowed_STD3_mapped\",[40,106,41]],[[127258,127258],\"disallowed_STD3_mapped\",[40,107,41]],[[127259,127259],\"disallowed_STD3_mapped\",[40,108,41]],[[127260,127260],\"disallowed_STD3_mapped\",[40,109,41]],[[127261,127261],\"disallowed_STD3_mapped\",[40,110,41]],[[127262,127262],\"disallowed_STD3_mapped\",[40,111,41]],[[127263,127263],\"disallowed_STD3_mapped\",[40,112,41]],[[127264,127264],\"disallowed_STD3_mapped\",[40,113,41]],[[127265,127265],\"disallowed_STD3_mapped\",[40,114,41]],[[127266,127266],\"disallowed_STD3_mapped\",[40,115,41]],[[127267,127267],\"disallowed_STD3_mapped\",[40,116,41]],[[127268,127268],\"disallowed_STD3_mapped\",[40,117,41]],[[127269,127269],\"disallowed_STD3_mapped\",[40,118,41]],[[127270,127270],\"disallowed_STD3_mapped\",[40,119,41]],[[127271,127271],\"disallowed_STD3_mapped\",[40,120,41]],[[127272,127272],\"disallowed_STD3_mapped\",[40,121,41]],[[127273,127273],\"disallowed_STD3_mapped\",[40,122,41]],[[127274,127274],\"mapped\",[12308,115,12309]],[[127275,127275],\"mapped\",[99]],[[127276,127276],\"mapped\",[114]],[[127277,127277],\"mapped\",[99,100]],[[127278,127278],\"mapped\",[119,122]],[[127279,127279],\"disallowed\"],[[127280,127280],\"mapped\",[97]],[[127281,127281],\"mapped\",[98]],[[127282,127282],\"mapped\",[99]],[[127283,127283],\"mapped\",[100]],[[127284,127284],\"mapped\",[101]],[[127285,127285],\"mapped\",[102]],[[127286,127286],\"mapped\",[103]],[[127287,127287],\"mapped\",[104]],[[127288,127288],\"mapped\",[105]],[[127289,127289],\"mapped\",[106]],[[127290,127290],\"mapped\",[107]],[[127291,127291],\"mapped\",[108]],[[127292,127292],\"mapped\",[109]],[[127293,127293],\"mapped\",[110]],[[127294,127294],\"mapped\",[111]],[[127295,127295],\"mapped\",[112]],[[127296,127296],\"mapped\",[113]],[[127297,127297],\"mapped\",[114]],[[127298,127298],\"mapped\",[115]],[[127299,127299],\"mapped\",[116]],[[127300,127300],\"mapped\",[117]],[[127301,127301],\"mapped\",[118]],[[127302,127302],\"mapped\",[119]],[[127303,127303],\"mapped\",[120]],[[127304,127304],\"mapped\",[121]],[[127305,127305],\"mapped\",[122]],[[127306,127306],\"mapped\",[104,118]],[[127307,127307],\"mapped\",[109,118]],[[127308,127308],\"mapped\",[115,100]],[[127309,127309],\"mapped\",[115,115]],[[127310,127310],\"mapped\",[112,112,118]],[[127311,127311],\"mapped\",[119,99]],[[127312,127318],\"valid\",[],\"NV8\"],[[127319,127319],\"valid\",[],\"NV8\"],[[127320,127326],\"valid\",[],\"NV8\"],[[127327,127327],\"valid\",[],\"NV8\"],[[127328,127337],\"valid\",[],\"NV8\"],[[127338,127338],\"mapped\",[109,99]],[[127339,127339],\"mapped\",[109,100]],[[127340,127343],\"disallowed\"],[[127344,127352],\"valid\",[],\"NV8\"],[[127353,127353],\"valid\",[],\"NV8\"],[[127354,127354],\"valid\",[],\"NV8\"],[[127355,127356],\"valid\",[],\"NV8\"],[[127357,127358],\"valid\",[],\"NV8\"],[[127359,127359],\"valid\",[],\"NV8\"],[[127360,127369],\"valid\",[],\"NV8\"],[[127370,127373],\"valid\",[],\"NV8\"],[[127374,127375],\"valid\",[],\"NV8\"],[[127376,127376],\"mapped\",[100,106]],[[127377,127386],\"valid\",[],\"NV8\"],[[127387,127461],\"disallowed\"],[[127462,127487],\"valid\",[],\"NV8\"],[[127488,127488],\"mapped\",[12411,12363]],[[127489,127489],\"mapped\",[12467,12467]],[[127490,127490],\"mapped\",[12469]],[[127491,127503],\"disallowed\"],[[127504,127504],\"mapped\",[25163]],[[127505,127505],\"mapped\",[23383]],[[127506,127506],\"mapped\",[21452]],[[127507,127507],\"mapped\",[12487]],[[127508,127508],\"mapped\",[20108]],[[127509,127509],\"mapped\",[22810]],[[127510,127510],\"mapped\",[35299]],[[127511,127511],\"mapped\",[22825]],[[127512,127512],\"mapped\",[20132]],[[127513,127513],\"mapped\",[26144]],[[127514,127514],\"mapped\",[28961]],[[127515,127515],\"mapped\",[26009]],[[127516,127516],\"mapped\",[21069]],[[127517,127517],\"mapped\",[24460]],[[127518,127518],\"mapped\",[20877]],[[127519,127519],\"mapped\",[26032]],[[127520,127520],\"mapped\",[21021]],[[127521,127521],\"mapped\",[32066]],[[127522,127522],\"mapped\",[29983]],[[127523,127523],\"mapped\",[36009]],[[127524,127524],\"mapped\",[22768]],[[127525,127525],\"mapped\",[21561]],[[127526,127526],\"mapped\",[28436]],[[127527,127527],\"mapped\",[25237]],[[127528,127528],\"mapped\",[25429]],[[127529,127529],\"mapped\",[19968]],[[127530,127530],\"mapped\",[19977]],[[127531,127531],\"mapped\",[36938]],[[127532,127532],\"mapped\",[24038]],[[127533,127533],\"mapped\",[20013]],[[127534,127534],\"mapped\",[21491]],[[127535,127535],\"mapped\",[25351]],[[127536,127536],\"mapped\",[36208]],[[127537,127537],\"mapped\",[25171]],[[127538,127538],\"mapped\",[31105]],[[127539,127539],\"mapped\",[31354]],[[127540,127540],\"mapped\",[21512]],[[127541,127541],\"mapped\",[28288]],[[127542,127542],\"mapped\",[26377]],[[127543,127543],\"mapped\",[26376]],[[127544,127544],\"mapped\",[30003]],[[127545,127545],\"mapped\",[21106]],[[127546,127546],\"mapped\",[21942]],[[127547,127551],\"disallowed\"],[[127552,127552],\"mapped\",[12308,26412,12309]],[[127553,127553],\"mapped\",[12308,19977,12309]],[[127554,127554],\"mapped\",[12308,20108,12309]],[[127555,127555],\"mapped\",[12308,23433,12309]],[[127556,127556],\"mapped\",[12308,28857,12309]],[[127557,127557],\"mapped\",[12308,25171,12309]],[[127558,127558],\"mapped\",[12308,30423,12309]],[[127559,127559],\"mapped\",[12308,21213,12309]],[[127560,127560],\"mapped\",[12308,25943,12309]],[[127561,127567],\"disallowed\"],[[127568,127568],\"mapped\",[24471]],[[127569,127569],\"mapped\",[21487]],[[127570,127743],\"disallowed\"],[[127744,127776],\"valid\",[],\"NV8\"],[[127777,127788],\"valid\",[],\"NV8\"],[[127789,127791],\"valid\",[],\"NV8\"],[[127792,127797],\"valid\",[],\"NV8\"],[[127798,127798],\"valid\",[],\"NV8\"],[[127799,127868],\"valid\",[],\"NV8\"],[[127869,127869],\"valid\",[],\"NV8\"],[[127870,127871],\"valid\",[],\"NV8\"],[[127872,127891],\"valid\",[],\"NV8\"],[[127892,127903],\"valid\",[],\"NV8\"],[[127904,127940],\"valid\",[],\"NV8\"],[[127941,127941],\"valid\",[],\"NV8\"],[[127942,127946],\"valid\",[],\"NV8\"],[[127947,127950],\"valid\",[],\"NV8\"],[[127951,127955],\"valid\",[],\"NV8\"],[[127956,127967],\"valid\",[],\"NV8\"],[[127968,127984],\"valid\",[],\"NV8\"],[[127985,127991],\"valid\",[],\"NV8\"],[[127992,127999],\"valid\",[],\"NV8\"],[[128000,128062],\"valid\",[],\"NV8\"],[[128063,128063],\"valid\",[],\"NV8\"],[[128064,128064],\"valid\",[],\"NV8\"],[[128065,128065],\"valid\",[],\"NV8\"],[[128066,128247],\"valid\",[],\"NV8\"],[[128248,128248],\"valid\",[],\"NV8\"],[[128249,128252],\"valid\",[],\"NV8\"],[[128253,128254],\"valid\",[],\"NV8\"],[[128255,128255],\"valid\",[],\"NV8\"],[[128256,128317],\"valid\",[],\"NV8\"],[[128318,128319],\"valid\",[],\"NV8\"],[[128320,128323],\"valid\",[],\"NV8\"],[[128324,128330],\"valid\",[],\"NV8\"],[[128331,128335],\"valid\",[],\"NV8\"],[[128336,128359],\"valid\",[],\"NV8\"],[[128360,128377],\"valid\",[],\"NV8\"],[[128378,128378],\"disallowed\"],[[128379,128419],\"valid\",[],\"NV8\"],[[128420,128420],\"disallowed\"],[[128421,128506],\"valid\",[],\"NV8\"],[[128507,128511],\"valid\",[],\"NV8\"],[[128512,128512],\"valid\",[],\"NV8\"],[[128513,128528],\"valid\",[],\"NV8\"],[[128529,128529],\"valid\",[],\"NV8\"],[[128530,128532],\"valid\",[],\"NV8\"],[[128533,128533],\"valid\",[],\"NV8\"],[[128534,128534],\"valid\",[],\"NV8\"],[[128535,128535],\"valid\",[],\"NV8\"],[[128536,128536],\"valid\",[],\"NV8\"],[[128537,128537],\"valid\",[],\"NV8\"],[[128538,128538],\"valid\",[],\"NV8\"],[[128539,128539],\"valid\",[],\"NV8\"],[[128540,128542],\"valid\",[],\"NV8\"],[[128543,128543],\"valid\",[],\"NV8\"],[[128544,128549],\"valid\",[],\"NV8\"],[[128550,128551],\"valid\",[],\"NV8\"],[[128552,128555],\"valid\",[],\"NV8\"],[[128556,128556],\"valid\",[],\"NV8\"],[[128557,128557],\"valid\",[],\"NV8\"],[[128558,128559],\"valid\",[],\"NV8\"],[[128560,128563],\"valid\",[],\"NV8\"],[[128564,128564],\"valid\",[],\"NV8\"],[[128565,128576],\"valid\",[],\"NV8\"],[[128577,128578],\"valid\",[],\"NV8\"],[[128579,128580],\"valid\",[],\"NV8\"],[[128581,128591],\"valid\",[],\"NV8\"],[[128592,128639],\"valid\",[],\"NV8\"],[[128640,128709],\"valid\",[],\"NV8\"],[[128710,128719],\"valid\",[],\"NV8\"],[[128720,128720],\"valid\",[],\"NV8\"],[[128721,128735],\"disallowed\"],[[128736,128748],\"valid\",[],\"NV8\"],[[128749,128751],\"disallowed\"],[[128752,128755],\"valid\",[],\"NV8\"],[[128756,128767],\"disallowed\"],[[128768,128883],\"valid\",[],\"NV8\"],[[128884,128895],\"disallowed\"],[[128896,128980],\"valid\",[],\"NV8\"],[[128981,129023],\"disallowed\"],[[129024,129035],\"valid\",[],\"NV8\"],[[129036,129039],\"disallowed\"],[[129040,129095],\"valid\",[],\"NV8\"],[[129096,129103],\"disallowed\"],[[129104,129113],\"valid\",[],\"NV8\"],[[129114,129119],\"disallowed\"],[[129120,129159],\"valid\",[],\"NV8\"],[[129160,129167],\"disallowed\"],[[129168,129197],\"valid\",[],\"NV8\"],[[129198,129295],\"disallowed\"],[[129296,129304],\"valid\",[],\"NV8\"],[[129305,129407],\"disallowed\"],[[129408,129412],\"valid\",[],\"NV8\"],[[129413,129471],\"disallowed\"],[[129472,129472],\"valid\",[],\"NV8\"],[[129473,131069],\"disallowed\"],[[131070,131071],\"disallowed\"],[[131072,173782],\"valid\"],[[173783,173823],\"disallowed\"],[[173824,177972],\"valid\"],[[177973,177983],\"disallowed\"],[[177984,178205],\"valid\"],[[178206,178207],\"disallowed\"],[[178208,183969],\"valid\"],[[183970,194559],\"disallowed\"],[[194560,194560],\"mapped\",[20029]],[[194561,194561],\"mapped\",[20024]],[[194562,194562],\"mapped\",[20033]],[[194563,194563],\"mapped\",[131362]],[[194564,194564],\"mapped\",[20320]],[[194565,194565],\"mapped\",[20398]],[[194566,194566],\"mapped\",[20411]],[[194567,194567],\"mapped\",[20482]],[[194568,194568],\"mapped\",[20602]],[[194569,194569],\"mapped\",[20633]],[[194570,194570],\"mapped\",[20711]],[[194571,194571],\"mapped\",[20687]],[[194572,194572],\"mapped\",[13470]],[[194573,194573],\"mapped\",[132666]],[[194574,194574],\"mapped\",[20813]],[[194575,194575],\"mapped\",[20820]],[[194576,194576],\"mapped\",[20836]],[[194577,194577],\"mapped\",[20855]],[[194578,194578],\"mapped\",[132380]],[[194579,194579],\"mapped\",[13497]],[[194580,194580],\"mapped\",[20839]],[[194581,194581],\"mapped\",[20877]],[[194582,194582],\"mapped\",[132427]],[[194583,194583],\"mapped\",[20887]],[[194584,194584],\"mapped\",[20900]],[[194585,194585],\"mapped\",[20172]],[[194586,194586],\"mapped\",[20908]],[[194587,194587],\"mapped\",[20917]],[[194588,194588],\"mapped\",[168415]],[[194589,194589],\"mapped\",[20981]],[[194590,194590],\"mapped\",[20995]],[[194591,194591],\"mapped\",[13535]],[[194592,194592],\"mapped\",[21051]],[[194593,194593],\"mapped\",[21062]],[[194594,194594],\"mapped\",[21106]],[[194595,194595],\"mapped\",[21111]],[[194596,194596],\"mapped\",[13589]],[[194597,194597],\"mapped\",[21191]],[[194598,194598],\"mapped\",[21193]],[[194599,194599],\"mapped\",[21220]],[[194600,194600],\"mapped\",[21242]],[[194601,194601],\"mapped\",[21253]],[[194602,194602],\"mapped\",[21254]],[[194603,194603],\"mapped\",[21271]],[[194604,194604],\"mapped\",[21321]],[[194605,194605],\"mapped\",[21329]],[[194606,194606],\"mapped\",[21338]],[[194607,194607],\"mapped\",[21363]],[[194608,194608],\"mapped\",[21373]],[[194609,194611],\"mapped\",[21375]],[[194612,194612],\"mapped\",[133676]],[[194613,194613],\"mapped\",[28784]],[[194614,194614],\"mapped\",[21450]],[[194615,194615],\"mapped\",[21471]],[[194616,194616],\"mapped\",[133987]],[[194617,194617],\"mapped\",[21483]],[[194618,194618],\"mapped\",[21489]],[[194619,194619],\"mapped\",[21510]],[[194620,194620],\"mapped\",[21662]],[[194621,194621],\"mapped\",[21560]],[[194622,194622],\"mapped\",[21576]],[[194623,194623],\"mapped\",[21608]],[[194624,194624],\"mapped\",[21666]],[[194625,194625],\"mapped\",[21750]],[[194626,194626],\"mapped\",[21776]],[[194627,194627],\"mapped\",[21843]],[[194628,194628],\"mapped\",[21859]],[[194629,194630],\"mapped\",[21892]],[[194631,194631],\"mapped\",[21913]],[[194632,194632],\"mapped\",[21931]],[[194633,194633],\"mapped\",[21939]],[[194634,194634],\"mapped\",[21954]],[[194635,194635],\"mapped\",[22294]],[[194636,194636],\"mapped\",[22022]],[[194637,194637],\"mapped\",[22295]],[[194638,194638],\"mapped\",[22097]],[[194639,194639],\"mapped\",[22132]],[[194640,194640],\"mapped\",[20999]],[[194641,194641],\"mapped\",[22766]],[[194642,194642],\"mapped\",[22478]],[[194643,194643],\"mapped\",[22516]],[[194644,194644],\"mapped\",[22541]],[[194645,194645],\"mapped\",[22411]],[[194646,194646],\"mapped\",[22578]],[[194647,194647],\"mapped\",[22577]],[[194648,194648],\"mapped\",[22700]],[[194649,194649],\"mapped\",[136420]],[[194650,194650],\"mapped\",[22770]],[[194651,194651],\"mapped\",[22775]],[[194652,194652],\"mapped\",[22790]],[[194653,194653],\"mapped\",[22810]],[[194654,194654],\"mapped\",[22818]],[[194655,194655],\"mapped\",[22882]],[[194656,194656],\"mapped\",[136872]],[[194657,194657],\"mapped\",[136938]],[[194658,194658],\"mapped\",[23020]],[[194659,194659],\"mapped\",[23067]],[[194660,194660],\"mapped\",[23079]],[[194661,194661],\"mapped\",[23000]],[[194662,194662],\"mapped\",[23142]],[[194663,194663],\"mapped\",[14062]],[[194664,194664],\"disallowed\"],[[194665,194665],\"mapped\",[23304]],[[194666,194667],\"mapped\",[23358]],[[194668,194668],\"mapped\",[137672]],[[194669,194669],\"mapped\",[23491]],[[194670,194670],\"mapped\",[23512]],[[194671,194671],\"mapped\",[23527]],[[194672,194672],\"mapped\",[23539]],[[194673,194673],\"mapped\",[138008]],[[194674,194674],\"mapped\",[23551]],[[194675,194675],\"mapped\",[23558]],[[194676,194676],\"disallowed\"],[[194677,194677],\"mapped\",[23586]],[[194678,194678],\"mapped\",[14209]],[[194679,194679],\"mapped\",[23648]],[[194680,194680],\"mapped\",[23662]],[[194681,194681],\"mapped\",[23744]],[[194682,194682],\"mapped\",[23693]],[[194683,194683],\"mapped\",[138724]],[[194684,194684],\"mapped\",[23875]],[[194685,194685],\"mapped\",[138726]],[[194686,194686],\"mapped\",[23918]],[[194687,194687],\"mapped\",[23915]],[[194688,194688],\"mapped\",[23932]],[[194689,194689],\"mapped\",[24033]],[[194690,194690],\"mapped\",[24034]],[[194691,194691],\"mapped\",[14383]],[[194692,194692],\"mapped\",[24061]],[[194693,194693],\"mapped\",[24104]],[[194694,194694],\"mapped\",[24125]],[[194695,194695],\"mapped\",[24169]],[[194696,194696],\"mapped\",[14434]],[[194697,194697],\"mapped\",[139651]],[[194698,194698],\"mapped\",[14460]],[[194699,194699],\"mapped\",[24240]],[[194700,194700],\"mapped\",[24243]],[[194701,194701],\"mapped\",[24246]],[[194702,194702],\"mapped\",[24266]],[[194703,194703],\"mapped\",[172946]],[[194704,194704],\"mapped\",[24318]],[[194705,194706],\"mapped\",[140081]],[[194707,194707],\"mapped\",[33281]],[[194708,194709],\"mapped\",[24354]],[[194710,194710],\"mapped\",[14535]],[[194711,194711],\"mapped\",[144056]],[[194712,194712],\"mapped\",[156122]],[[194713,194713],\"mapped\",[24418]],[[194714,194714],\"mapped\",[24427]],[[194715,194715],\"mapped\",[14563]],[[194716,194716],\"mapped\",[24474]],[[194717,194717],\"mapped\",[24525]],[[194718,194718],\"mapped\",[24535]],[[194719,194719],\"mapped\",[24569]],[[194720,194720],\"mapped\",[24705]],[[194721,194721],\"mapped\",[14650]],[[194722,194722],\"mapped\",[14620]],[[194723,194723],\"mapped\",[24724]],[[194724,194724],\"mapped\",[141012]],[[194725,194725],\"mapped\",[24775]],[[194726,194726],\"mapped\",[24904]],[[194727,194727],\"mapped\",[24908]],[[194728,194728],\"mapped\",[24910]],[[194729,194729],\"mapped\",[24908]],[[194730,194730],\"mapped\",[24954]],[[194731,194731],\"mapped\",[24974]],[[194732,194732],\"mapped\",[25010]],[[194733,194733],\"mapped\",[24996]],[[194734,194734],\"mapped\",[25007]],[[194735,194735],\"mapped\",[25054]],[[194736,194736],\"mapped\",[25074]],[[194737,194737],\"mapped\",[25078]],[[194738,194738],\"mapped\",[25104]],[[194739,194739],\"mapped\",[25115]],[[194740,194740],\"mapped\",[25181]],[[194741,194741],\"mapped\",[25265]],[[194742,194742],\"mapped\",[25300]],[[194743,194743],\"mapped\",[25424]],[[194744,194744],\"mapped\",[142092]],[[194745,194745],\"mapped\",[25405]],[[194746,194746],\"mapped\",[25340]],[[194747,194747],\"mapped\",[25448]],[[194748,194748],\"mapped\",[25475]],[[194749,194749],\"mapped\",[25572]],[[194750,194750],\"mapped\",[142321]],[[194751,194751],\"mapped\",[25634]],[[194752,194752],\"mapped\",[25541]],[[194753,194753],\"mapped\",[25513]],[[194754,194754],\"mapped\",[14894]],[[194755,194755],\"mapped\",[25705]],[[194756,194756],\"mapped\",[25726]],[[194757,194757],\"mapped\",[25757]],[[194758,194758],\"mapped\",[25719]],[[194759,194759],\"mapped\",[14956]],[[194760,194760],\"mapped\",[25935]],[[194761,194761],\"mapped\",[25964]],[[194762,194762],\"mapped\",[143370]],[[194763,194763],\"mapped\",[26083]],[[194764,194764],\"mapped\",[26360]],[[194765,194765],\"mapped\",[26185]],[[194766,194766],\"mapped\",[15129]],[[194767,194767],\"mapped\",[26257]],[[194768,194768],\"mapped\",[15112]],[[194769,194769],\"mapped\",[15076]],[[194770,194770],\"mapped\",[20882]],[[194771,194771],\"mapped\",[20885]],[[194772,194772],\"mapped\",[26368]],[[194773,194773],\"mapped\",[26268]],[[194774,194774],\"mapped\",[32941]],[[194775,194775],\"mapped\",[17369]],[[194776,194776],\"mapped\",[26391]],[[194777,194777],\"mapped\",[26395]],[[194778,194778],\"mapped\",[26401]],[[194779,194779],\"mapped\",[26462]],[[194780,194780],\"mapped\",[26451]],[[194781,194781],\"mapped\",[144323]],[[194782,194782],\"mapped\",[15177]],[[194783,194783],\"mapped\",[26618]],[[194784,194784],\"mapped\",[26501]],[[194785,194785],\"mapped\",[26706]],[[194786,194786],\"mapped\",[26757]],[[194787,194787],\"mapped\",[144493]],[[194788,194788],\"mapped\",[26766]],[[194789,194789],\"mapped\",[26655]],[[194790,194790],\"mapped\",[26900]],[[194791,194791],\"mapped\",[15261]],[[194792,194792],\"mapped\",[26946]],[[194793,194793],\"mapped\",[27043]],[[194794,194794],\"mapped\",[27114]],[[194795,194795],\"mapped\",[27304]],[[194796,194796],\"mapped\",[145059]],[[194797,194797],\"mapped\",[27355]],[[194798,194798],\"mapped\",[15384]],[[194799,194799],\"mapped\",[27425]],[[194800,194800],\"mapped\",[145575]],[[194801,194801],\"mapped\",[27476]],[[194802,194802],\"mapped\",[15438]],[[194803,194803],\"mapped\",[27506]],[[194804,194804],\"mapped\",[27551]],[[194805,194805],\"mapped\",[27578]],[[194806,194806],\"mapped\",[27579]],[[194807,194807],\"mapped\",[146061]],[[194808,194808],\"mapped\",[138507]],[[194809,194809],\"mapped\",[146170]],[[194810,194810],\"mapped\",[27726]],[[194811,194811],\"mapped\",[146620]],[[194812,194812],\"mapped\",[27839]],[[194813,194813],\"mapped\",[27853]],[[194814,194814],\"mapped\",[27751]],[[194815,194815],\"mapped\",[27926]],[[194816,194816],\"mapped\",[27966]],[[194817,194817],\"mapped\",[28023]],[[194818,194818],\"mapped\",[27969]],[[194819,194819],\"mapped\",[28009]],[[194820,194820],\"mapped\",[28024]],[[194821,194821],\"mapped\",[28037]],[[194822,194822],\"mapped\",[146718]],[[194823,194823],\"mapped\",[27956]],[[194824,194824],\"mapped\",[28207]],[[194825,194825],\"mapped\",[28270]],[[194826,194826],\"mapped\",[15667]],[[194827,194827],\"mapped\",[28363]],[[194828,194828],\"mapped\",[28359]],[[194829,194829],\"mapped\",[147153]],[[194830,194830],\"mapped\",[28153]],[[194831,194831],\"mapped\",[28526]],[[194832,194832],\"mapped\",[147294]],[[194833,194833],\"mapped\",[147342]],[[194834,194834],\"mapped\",[28614]],[[194835,194835],\"mapped\",[28729]],[[194836,194836],\"mapped\",[28702]],[[194837,194837],\"mapped\",[28699]],[[194838,194838],\"mapped\",[15766]],[[194839,194839],\"mapped\",[28746]],[[194840,194840],\"mapped\",[28797]],[[194841,194841],\"mapped\",[28791]],[[194842,194842],\"mapped\",[28845]],[[194843,194843],\"mapped\",[132389]],[[194844,194844],\"mapped\",[28997]],[[194845,194845],\"mapped\",[148067]],[[194846,194846],\"mapped\",[29084]],[[194847,194847],\"disallowed\"],[[194848,194848],\"mapped\",[29224]],[[194849,194849],\"mapped\",[29237]],[[194850,194850],\"mapped\",[29264]],[[194851,194851],\"mapped\",[149000]],[[194852,194852],\"mapped\",[29312]],[[194853,194853],\"mapped\",[29333]],[[194854,194854],\"mapped\",[149301]],[[194855,194855],\"mapped\",[149524]],[[194856,194856],\"mapped\",[29562]],[[194857,194857],\"mapped\",[29579]],[[194858,194858],\"mapped\",[16044]],[[194859,194859],\"mapped\",[29605]],[[194860,194861],\"mapped\",[16056]],[[194862,194862],\"mapped\",[29767]],[[194863,194863],\"mapped\",[29788]],[[194864,194864],\"mapped\",[29809]],[[194865,194865],\"mapped\",[29829]],[[194866,194866],\"mapped\",[29898]],[[194867,194867],\"mapped\",[16155]],[[194868,194868],\"mapped\",[29988]],[[194869,194869],\"mapped\",[150582]],[[194870,194870],\"mapped\",[30014]],[[194871,194871],\"mapped\",[150674]],[[194872,194872],\"mapped\",[30064]],[[194873,194873],\"mapped\",[139679]],[[194874,194874],\"mapped\",[30224]],[[194875,194875],\"mapped\",[151457]],[[194876,194876],\"mapped\",[151480]],[[194877,194877],\"mapped\",[151620]],[[194878,194878],\"mapped\",[16380]],[[194879,194879],\"mapped\",[16392]],[[194880,194880],\"mapped\",[30452]],[[194881,194881],\"mapped\",[151795]],[[194882,194882],\"mapped\",[151794]],[[194883,194883],\"mapped\",[151833]],[[194884,194884],\"mapped\",[151859]],[[194885,194885],\"mapped\",[30494]],[[194886,194887],\"mapped\",[30495]],[[194888,194888],\"mapped\",[30538]],[[194889,194889],\"mapped\",[16441]],[[194890,194890],\"mapped\",[30603]],[[194891,194891],\"mapped\",[16454]],[[194892,194892],\"mapped\",[16534]],[[194893,194893],\"mapped\",[152605]],[[194894,194894],\"mapped\",[30798]],[[194895,194895],\"mapped\",[30860]],[[194896,194896],\"mapped\",[30924]],[[194897,194897],\"mapped\",[16611]],[[194898,194898],\"mapped\",[153126]],[[194899,194899],\"mapped\",[31062]],[[194900,194900],\"mapped\",[153242]],[[194901,194901],\"mapped\",[153285]],[[194902,194902],\"mapped\",[31119]],[[194903,194903],\"mapped\",[31211]],[[194904,194904],\"mapped\",[16687]],[[194905,194905],\"mapped\",[31296]],[[194906,194906],\"mapped\",[31306]],[[194907,194907],\"mapped\",[31311]],[[194908,194908],\"mapped\",[153980]],[[194909,194910],\"mapped\",[154279]],[[194911,194911],\"disallowed\"],[[194912,194912],\"mapped\",[16898]],[[194913,194913],\"mapped\",[154539]],[[194914,194914],\"mapped\",[31686]],[[194915,194915],\"mapped\",[31689]],[[194916,194916],\"mapped\",[16935]],[[194917,194917],\"mapped\",[154752]],[[194918,194918],\"mapped\",[31954]],[[194919,194919],\"mapped\",[17056]],[[194920,194920],\"mapped\",[31976]],[[194921,194921],\"mapped\",[31971]],[[194922,194922],\"mapped\",[32000]],[[194923,194923],\"mapped\",[155526]],[[194924,194924],\"mapped\",[32099]],[[194925,194925],\"mapped\",[17153]],[[194926,194926],\"mapped\",[32199]],[[194927,194927],\"mapped\",[32258]],[[194928,194928],\"mapped\",[32325]],[[194929,194929],\"mapped\",[17204]],[[194930,194930],\"mapped\",[156200]],[[194931,194931],\"mapped\",[156231]],[[194932,194932],\"mapped\",[17241]],[[194933,194933],\"mapped\",[156377]],[[194934,194934],\"mapped\",[32634]],[[194935,194935],\"mapped\",[156478]],[[194936,194936],\"mapped\",[32661]],[[194937,194937],\"mapped\",[32762]],[[194938,194938],\"mapped\",[32773]],[[194939,194939],\"mapped\",[156890]],[[194940,194940],\"mapped\",[156963]],[[194941,194941],\"mapped\",[32864]],[[194942,194942],\"mapped\",[157096]],[[194943,194943],\"mapped\",[32880]],[[194944,194944],\"mapped\",[144223]],[[194945,194945],\"mapped\",[17365]],[[194946,194946],\"mapped\",[32946]],[[194947,194947],\"mapped\",[33027]],[[194948,194948],\"mapped\",[17419]],[[194949,194949],\"mapped\",[33086]],[[194950,194950],\"mapped\",[23221]],[[194951,194951],\"mapped\",[157607]],[[194952,194952],\"mapped\",[157621]],[[194953,194953],\"mapped\",[144275]],[[194954,194954],\"mapped\",[144284]],[[194955,194955],\"mapped\",[33281]],[[194956,194956],\"mapped\",[33284]],[[194957,194957],\"mapped\",[36766]],[[194958,194958],\"mapped\",[17515]],[[194959,194959],\"mapped\",[33425]],[[194960,194960],\"mapped\",[33419]],[[194961,194961],\"mapped\",[33437]],[[194962,194962],\"mapped\",[21171]],[[194963,194963],\"mapped\",[33457]],[[194964,194964],\"mapped\",[33459]],[[194965,194965],\"mapped\",[33469]],[[194966,194966],\"mapped\",[33510]],[[194967,194967],\"mapped\",[158524]],[[194968,194968],\"mapped\",[33509]],[[194969,194969],\"mapped\",[33565]],[[194970,194970],\"mapped\",[33635]],[[194971,194971],\"mapped\",[33709]],[[194972,194972],\"mapped\",[33571]],[[194973,194973],\"mapped\",[33725]],[[194974,194974],\"mapped\",[33767]],[[194975,194975],\"mapped\",[33879]],[[194976,194976],\"mapped\",[33619]],[[194977,194977],\"mapped\",[33738]],[[194978,194978],\"mapped\",[33740]],[[194979,194979],\"mapped\",[33756]],[[194980,194980],\"mapped\",[158774]],[[194981,194981],\"mapped\",[159083]],[[194982,194982],\"mapped\",[158933]],[[194983,194983],\"mapped\",[17707]],[[194984,194984],\"mapped\",[34033]],[[194985,194985],\"mapped\",[34035]],[[194986,194986],\"mapped\",[34070]],[[194987,194987],\"mapped\",[160714]],[[194988,194988],\"mapped\",[34148]],[[194989,194989],\"mapped\",[159532]],[[194990,194990],\"mapped\",[17757]],[[194991,194991],\"mapped\",[17761]],[[194992,194992],\"mapped\",[159665]],[[194993,194993],\"mapped\",[159954]],[[194994,194994],\"mapped\",[17771]],[[194995,194995],\"mapped\",[34384]],[[194996,194996],\"mapped\",[34396]],[[194997,194997],\"mapped\",[34407]],[[194998,194998],\"mapped\",[34409]],[[194999,194999],\"mapped\",[34473]],[[195000,195000],\"mapped\",[34440]],[[195001,195001],\"mapped\",[34574]],[[195002,195002],\"mapped\",[34530]],[[195003,195003],\"mapped\",[34681]],[[195004,195004],\"mapped\",[34600]],[[195005,195005],\"mapped\",[34667]],[[195006,195006],\"mapped\",[34694]],[[195007,195007],\"disallowed\"],[[195008,195008],\"mapped\",[34785]],[[195009,195009],\"mapped\",[34817]],[[195010,195010],\"mapped\",[17913]],[[195011,195011],\"mapped\",[34912]],[[195012,195012],\"mapped\",[34915]],[[195013,195013],\"mapped\",[161383]],[[195014,195014],\"mapped\",[35031]],[[195015,195015],\"mapped\",[35038]],[[195016,195016],\"mapped\",[17973]],[[195017,195017],\"mapped\",[35066]],[[195018,195018],\"mapped\",[13499]],[[195019,195019],\"mapped\",[161966]],[[195020,195020],\"mapped\",[162150]],[[195021,195021],\"mapped\",[18110]],[[195022,195022],\"mapped\",[18119]],[[195023,195023],\"mapped\",[35488]],[[195024,195024],\"mapped\",[35565]],[[195025,195025],\"mapped\",[35722]],[[195026,195026],\"mapped\",[35925]],[[195027,195027],\"mapped\",[162984]],[[195028,195028],\"mapped\",[36011]],[[195029,195029],\"mapped\",[36033]],[[195030,195030],\"mapped\",[36123]],[[195031,195031],\"mapped\",[36215]],[[195032,195032],\"mapped\",[163631]],[[195033,195033],\"mapped\",[133124]],[[195034,195034],\"mapped\",[36299]],[[195035,195035],\"mapped\",[36284]],[[195036,195036],\"mapped\",[36336]],[[195037,195037],\"mapped\",[133342]],[[195038,195038],\"mapped\",[36564]],[[195039,195039],\"mapped\",[36664]],[[195040,195040],\"mapped\",[165330]],[[195041,195041],\"mapped\",[165357]],[[195042,195042],\"mapped\",[37012]],[[195043,195043],\"mapped\",[37105]],[[195044,195044],\"mapped\",[37137]],[[195045,195045],\"mapped\",[165678]],[[195046,195046],\"mapped\",[37147]],[[195047,195047],\"mapped\",[37432]],[[195048,195048],\"mapped\",[37591]],[[195049,195049],\"mapped\",[37592]],[[195050,195050],\"mapped\",[37500]],[[195051,195051],\"mapped\",[37881]],[[195052,195052],\"mapped\",[37909]],[[195053,195053],\"mapped\",[166906]],[[195054,195054],\"mapped\",[38283]],[[195055,195055],\"mapped\",[18837]],[[195056,195056],\"mapped\",[38327]],[[195057,195057],\"mapped\",[167287]],[[195058,195058],\"mapped\",[18918]],[[195059,195059],\"mapped\",[38595]],[[195060,195060],\"mapped\",[23986]],[[195061,195061],\"mapped\",[38691]],[[195062,195062],\"mapped\",[168261]],[[195063,195063],\"mapped\",[168474]],[[195064,195064],\"mapped\",[19054]],[[195065,195065],\"mapped\",[19062]],[[195066,195066],\"mapped\",[38880]],[[195067,195067],\"mapped\",[168970]],[[195068,195068],\"mapped\",[19122]],[[195069,195069],\"mapped\",[169110]],[[195070,195071],\"mapped\",[38923]],[[195072,195072],\"mapped\",[38953]],[[195073,195073],\"mapped\",[169398]],[[195074,195074],\"mapped\",[39138]],[[195075,195075],\"mapped\",[19251]],[[195076,195076],\"mapped\",[39209]],[[195077,195077],\"mapped\",[39335]],[[195078,195078],\"mapped\",[39362]],[[195079,195079],\"mapped\",[39422]],[[195080,195080],\"mapped\",[19406]],[[195081,195081],\"mapped\",[170800]],[[195082,195082],\"mapped\",[39698]],[[195083,195083],\"mapped\",[40000]],[[195084,195084],\"mapped\",[40189]],[[195085,195085],\"mapped\",[19662]],[[195086,195086],\"mapped\",[19693]],[[195087,195087],\"mapped\",[40295]],[[195088,195088],\"mapped\",[172238]],[[195089,195089],\"mapped\",[19704]],[[195090,195090],\"mapped\",[172293]],[[195091,195091],\"mapped\",[172558]],[[195092,195092],\"mapped\",[172689]],[[195093,195093],\"mapped\",[40635]],[[195094,195094],\"mapped\",[19798]],[[195095,195095],\"mapped\",[40697]],[[195096,195096],\"mapped\",[40702]],[[195097,195097],\"mapped\",[40709]],[[195098,195098],\"mapped\",[40719]],[[195099,195099],\"mapped\",[40726]],[[195100,195100],\"mapped\",[40763]],[[195101,195101],\"mapped\",[173568]],[[195102,196605],\"disallowed\"],[[196606,196607],\"disallowed\"],[[196608,262141],\"disallowed\"],[[262142,262143],\"disallowed\"],[[262144,327677],\"disallowed\"],[[327678,327679],\"disallowed\"],[[327680,393213],\"disallowed\"],[[393214,393215],\"disallowed\"],[[393216,458749],\"disallowed\"],[[458750,458751],\"disallowed\"],[[458752,524285],\"disallowed\"],[[524286,524287],\"disallowed\"],[[524288,589821],\"disallowed\"],[[589822,589823],\"disallowed\"],[[589824,655357],\"disallowed\"],[[655358,655359],\"disallowed\"],[[655360,720893],\"disallowed\"],[[720894,720895],\"disallowed\"],[[720896,786429],\"disallowed\"],[[786430,786431],\"disallowed\"],[[786432,851965],\"disallowed\"],[[851966,851967],\"disallowed\"],[[851968,917501],\"disallowed\"],[[917502,917503],\"disallowed\"],[[917504,917504],\"disallowed\"],[[917505,917505],\"disallowed\"],[[917506,917535],\"disallowed\"],[[917536,917631],\"disallowed\"],[[917632,917759],\"disallowed\"],[[917760,917999],\"ignored\"],[[918000,983037],\"disallowed\"],[[983038,983039],\"disallowed\"],[[983040,1048573],\"disallowed\"],[[1048574,1048575],\"disallowed\"],[[1048576,1114109],\"disallowed\"],[[1114110,1114111],\"disallowed\"]]", "\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n", "\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n", "\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n", "\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n", "\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = /<meta.+?charset=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// html4\n\tif (!res && str) {\n\t\tres = /<meta[\\s]+?http-equiv=(['\"])content-type\\1[\\s]+?content=(['\"])(.+?)\\2/i.exec(str);\n\t\tif (!res) {\n\t\t\tres = /<meta[\\s]+?content=(['\"])(.+?)\\1[\\s]+?http-equiv=(['\"])content-type\\3/i.exec(str);\n\t\t\tif (res) {\n\t\t\t\tres.pop(); // drop last quote\n\t\t\t}\n\t\t}\n\n\t\tif (res) {\n\t\t\tres = /charset=(.*)/i.exec(res.pop());\n\t\t}\n\t}\n\n\t// xml\n\tif (!res && str) {\n\t\tres = /<\\?xml.+?encoding=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// found charset\n\tif (res) {\n\t\tcharset = res.pop();\n\n\t\t// prevent decode issues when sites use incorrect encoding\n\t\t// ref: https://hsivonen.fi/encoding-menu/\n\t\tif (charset === 'gb2312' || charset === 'gbk') {\n\t\t\tcharset = 'gb18030';\n\t\t}\n\t}\n\n\t// turn raw buffers into a single utf-8 buffer\n\treturn convert(buffer, 'UTF-8', charset).toString();\n}\n\n/**\n * Detect a URLSearchParams object\n * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143\n *\n * @param Object obj Object to detect by type or brand\n * @return String\n */\nfunction isURLSearchParams(obj) {\n\t// Duck-typing as a necessary condition.\n\tif (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {\n\t\treturn false;\n\t}\n\n\t// Brand-checking and more duck-typing as optional condition.\n\treturn obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';\n}\n\n/**\n * Check if `obj` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} obj\n * @return {boolean}\n */\nfunction isBlob(obj) {\n\treturn typeof obj === 'object' && typeof obj.arrayBuffer === 'function' && typeof obj.type === 'string' && typeof obj.stream === 'function' && typeof obj.constructor === 'function' && typeof obj.constructor.name === 'string' && /^(Blob|File)$/.test(obj.constructor.name) && /^(Blob|File)$/.test(obj[Symbol.toStringTag]);\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @return Mixed\n */\nfunction clone(instance) {\n\tlet p1, p2;\n\tlet body = instance.body;\n\n\t// don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif (body instanceof Stream && typeof body.getBoundary !== 'function') {\n\t\t// tee instance body\n\t\tp1 = new PassThrough();\n\t\tp2 = new PassThrough();\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].body = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n}\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param Mixed instance Any options.body input\n */\nfunction extractContentType(body) {\n\tif (body === null) {\n\t\t// body is null\n\t\treturn null;\n\t} else if (typeof body === 'string') {\n\t\t// body is string\n\t\treturn 'text/plain;charset=UTF-8';\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t} else if (isBlob(body)) {\n\t\t// body is blob\n\t\treturn body.type || null;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn null;\n\t} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\treturn null;\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\treturn null;\n\t} else if (typeof body.getBoundary === 'function') {\n\t\t// detect form data input from form-data module\n\t\treturn `multipart/form-data;boundary=${body.getBoundary()}`;\n\t} else if (body instanceof Stream) {\n\t\t// body is stream\n\t\t// can't really do much about this\n\t\treturn null;\n\t} else {\n\t\t// Body constructor defaults other things to string\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n}\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param Body instance Instance of Body\n * @return Number? Number of bytes, or null if not possible\n */\nfunction getTotalBytes(instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\treturn 0;\n\t} else if (isBlob(body)) {\n\t\treturn body.size;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn body.length;\n\t} else if (body && typeof body.getLengthSync === 'function') {\n\t\t// detect form data input from form-data module\n\t\tif (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x\n\t\tbody.hasKnownLength && body.hasKnownLength()) {\n\t\t\t// 2.x\n\t\t\treturn body.getLengthSync();\n\t\t}\n\t\treturn null;\n\t} else {\n\t\t// body is stream\n\t\treturn null;\n\t}\n}\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param Body instance Instance of Body\n * @return Void\n */\nfunction writeToStream(dest, instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\tdest.end();\n\t} else if (isBlob(body)) {\n\t\tbody.stream().pipe(dest);\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\tdest.write(body);\n\t\tdest.end();\n\t} else {\n\t\t// body is stream\n\t\tbody.pipe(dest);\n\t}\n}\n\n// expose Promise\nBody.Promise = global.Promise;\n\n/**\n * headers.js\n *\n * Headers class offers convenient helpers\n */\n\nconst invalidTokenRegex = /[^\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]/;\nconst invalidHeaderCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/;\n\nfunction validateName(name) {\n\tname = `${name}`;\n\tif (invalidTokenRegex.test(name) || name === '') {\n\t\tthrow new TypeError(`${name} is not a legal HTTP header name`);\n\t}\n}\n\nfunction validateValue(value) {\n\tvalue = `${value}`;\n\tif (invalidHeaderCharRegex.test(value)) {\n\t\tthrow new TypeError(`${value} is not a legal HTTP header value`);\n\t}\n}\n\n/**\n * Find the key in the map object given a header name.\n *\n * Returns undefined if not found.\n *\n * @param String name Header name\n * @return String|Undefined\n */\nfunction find(map, name) {\n\tname = name.toLowerCase();\n\tfor (const key in map) {\n\t\tif (key.toLowerCase() === name) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst MAP = Symbol('map');\nclass Headers {\n\t/**\n * Headers class\n *\n * @param Object headers Response headers\n * @return Void\n */\n\tconstructor() {\n\t\tlet init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence<sequence<ByteString>>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record<ByteString, ByteString>\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nconst isSameProtocol = function isSameProtocol(destination, original) {\n\tconst orig = new URL$1(original).protocol;\n\tconst dest = new URL$1(destination).protocol;\n\n\treturn orig === dest;\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\tdestroyStream(request.body, error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(req, function (err) {\n\t\t\tif (signal && signal.aborted) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (parseInt(process.version.substring(1)) < 14) {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\treq.on('socket', function (s) {\n\t\t\t\ts.addListener('close', function (hadError) {\n\t\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\t\tconst hasDataListener = s.listenerCount('data') > 0;\n\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && hasDataListener && !hadError && !(signal && signal.aborted)) {\n\t\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', err);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.on('end', function () {\n\t\t\t\t\t// some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted.\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tlet socket;\n\n\trequest.on('socket', function (s) {\n\t\tsocket = s;\n\t});\n\n\trequest.on('response', function (response) {\n\t\tconst headers = response.headers;\n\n\t\tif (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) {\n\t\t\tresponse.once('close', function (hadError) {\n\t\t\t\t// tests for socket presence, as in some situations the\n\t\t\t\t// the 'socket' event is not triggered for the request\n\t\t\t\t// (happens in deno), avoids `TypeError`\n\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\tconst hasDataListener = socket && socket.listenerCount('data') > 0;\n\n\t\t\t\tif (hasDataListener && !hadError) {\n\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\terrorCallback(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction destroyStream(stream, err) {\n\tif (stream.destroy) {\n\t\tstream.destroy(err);\n\t} else {\n\t\t// node < 8\n\t\tstream.emit('error', err);\n\t\tstream.end();\n\t}\n}\n\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n", "const nodeFetch = require('node-fetch')\nconst realFetch = nodeFetch.default || nodeFetch\n\nconst fetch = function (url, options) {\n // Support schemaless URIs on the server for parity with the browser.\n // Ex: //github.com/ -> https://github.com/\n if (/^\\/\\//.test(url)) {\n url = 'https:' + url\n }\n return realFetch.call(this, url, options)\n}\n\nfetch.ponyfill = true\n\nmodule.exports = exports = fetch\nexports.fetch = fetch\nexports.Headers = nodeFetch.Headers\nexports.Request = nodeFetch.Request\nexports.Response = nodeFetch.Response\n\n// Needed for TypeScript consumers without esModuleInterop.\nexports.default = fetch\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFetch = void 0;\nconst react_1 = require(\"react\");\nconst media_typer_1 = __importDefault(require(\"media-typer\"));\nconst content_type_1 = __importDefault(require(\"content-type\"));\nconst useCachedPromise_1 = require(\"./useCachedPromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst cross_fetch_1 = require(\"cross-fetch\");\nfunction isJSON(contentTypeHeader) {\n if (contentTypeHeader) {\n const ct = content_type_1.default.parse(contentTypeHeader);\n const mediaType = media_typer_1.default.parse(ct.type);\n if (mediaType.subtype === \"json\") {\n return true;\n }\n if (mediaType.suffix === \"json\") {\n return true;\n }\n if (mediaType.suffix && /\\bjson\\b/i.test(mediaType.suffix)) {\n return true;\n }\n if (mediaType.subtype && /\\bjson\\b/i.test(mediaType.subtype)) {\n return true;\n }\n }\n return false;\n}\nasync function defaultParsing(response) {\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const contentTypeHeader = response.headers.get(\"content-type\");\n if (contentTypeHeader && isJSON(contentTypeHeader)) {\n return await response.json();\n }\n return await response.text();\n}\n/**\n * Fetch the URL and returns the {@link AsyncState} corresponding to the execution of the fetch. The last value will be kept between command runs.\n *\n * @example\n * ```\n * import { useFetch } from '@raycast/utils';\n *\n * export default function Command() {\n * const { isLoading, data, revalidate } = useFetch('https://api.example');\n *\n * return (\n * <Detail\n * isLoading={isLoading}\n * markdown={data}\n * actions={\n * <ActionPanel>\n * <Action title=\"Reload\" onAction={() => revalidate()} />\n * </ActionPanel>\n * }\n * />\n * );\n * };\n * ```\n */\nfunction useFetch(url, options) {\n const { parseResponse, initialData, execute, keepPreviousData, onError, onData, onWillExecute, ...fetchOptions } = options || {};\n const useCachedPromiseOptions = {\n initialData,\n execute,\n keepPreviousData,\n onError,\n onData,\n onWillExecute,\n };\n const parseResponseRef = (0, useLatest_1.useLatest)(parseResponse || defaultParsing);\n const abortable = (0, react_1.useRef)();\n const fn = (0, react_1.useCallback)(async (url, options) => {\n const res = await (0, cross_fetch_1.fetch)(url, { signal: abortable.current?.signal, ...options });\n return (await parseResponseRef.current(res));\n }, [parseResponseRef]);\n // @ts-expect-error T can't be a Promise so it's actually the same\n return (0, useCachedPromise_1.useCachedPromise)(fn, [url, fetchOptions], { ...useCachedPromiseOptions, abortable });\n}\nexports.useFetch = useFetch;\n", "/**\n * This is not the set of all possible signals.\n *\n * It IS, however, the set of all signals that trigger\n * an exit on either Linux or BSD systems. Linux is a\n * superset of the signal names supported on BSD, and\n * the unknown signals just fail to register, so we can\n * catch that easily enough.\n *\n * Windows signals are a different set, since there are\n * signals that terminate Windows processes, but don't\n * terminate (or don't even exist) on Posix systems.\n *\n * Don't bother with SIGKILL. It's uncatchable, which\n * means that we can't fire any callbacks anyway.\n *\n * If a user does happen to register a handler on a non-\n * fatal signal like SIGWINCH or something, and then\n * exit, it'll end up firing `process.emit('exit')`, so\n * the handler will be fired anyway.\n *\n * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n * artificially, inherently leave the process in a\n * state from which it is not safe to try and enter JS\n * listeners.\n */\nexport const signals: NodeJS.Signals[] = []\nsignals.push('SIGHUP', 'SIGINT', 'SIGTERM')\n\nif (process.platform !== 'win32') {\n signals.push(\n 'SIGALRM',\n 'SIGABRT',\n 'SIGVTALRM',\n 'SIGXCPU',\n 'SIGXFSZ',\n 'SIGUSR2',\n 'SIGTRAP',\n 'SIGSYS',\n 'SIGQUIT',\n 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n )\n}\n\nif (process.platform === 'linux') {\n signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT')\n}\n", "// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nimport { signals } from './signals.js'\nexport { signals }\n\n// just a loosened process type so we can do some evil things\ntype ProcessRE = NodeJS.Process & {\n reallyExit: (code?: number | undefined | null) => any\n emit: (ev: string, ...a: any[]) => any\n}\n\nconst processOk = (process: any): process is ProcessRE =>\n !!process &&\n typeof process === 'object' &&\n typeof process.removeListener === 'function' &&\n typeof process.emit === 'function' &&\n typeof process.reallyExit === 'function' &&\n typeof process.listeners === 'function' &&\n typeof process.kill === 'function' &&\n typeof process.pid === 'number' &&\n typeof process.on === 'function'\n\nconst kExitEmitter = Symbol.for('signal-exit emitter')\nconst global: typeof globalThis & { [kExitEmitter]?: Emitter } = globalThis\nconst ObjectDefineProperty = Object.defineProperty.bind(Object)\n\n/**\n * A function that takes an exit code and signal as arguments\n *\n * In the case of signal exits *only*, a return value of true\n * will indicate that the signal is being handled, and we should\n * not synthetically exit with the signal we received. Regardless\n * of the handler return value, the handler is unloaded when an\n * otherwise fatal signal is received, so you get exactly 1 shot\n * at it, unless you add another onExit handler at that point.\n *\n * In the case of numeric code exits, we may already have committed\n * to exiting the process, for example via a fatal exception or\n * unhandled promise rejection, so it is impossible to stop safely.\n */\nexport type Handler = (\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n) => true | void\ntype ExitEvent = 'afterExit' | 'exit'\ntype Emitted = { [k in ExitEvent]: boolean }\ntype Listeners = { [k in ExitEvent]: Handler[] }\n\n// teeny special purpose ee\nclass Emitter {\n emitted: Emitted = {\n afterExit: false,\n exit: false,\n }\n\n listeners: Listeners = {\n afterExit: [],\n exit: [],\n }\n\n count: number = 0\n id: number = Math.random()\n\n constructor() {\n if (global[kExitEmitter]) {\n return global[kExitEmitter]\n }\n ObjectDefineProperty(global, kExitEmitter, {\n value: this,\n writable: false,\n enumerable: false,\n configurable: false,\n })\n }\n\n on(ev: ExitEvent, fn: Handler) {\n this.listeners[ev].push(fn)\n }\n\n removeListener(ev: ExitEvent, fn: Handler) {\n const list = this.listeners[ev]\n const i = list.indexOf(fn)\n /* c8 ignore start */\n if (i === -1) {\n return\n }\n /* c8 ignore stop */\n if (i === 0 && list.length === 1) {\n list.length = 0\n } else {\n list.splice(i, 1)\n }\n }\n\n emit(\n ev: ExitEvent,\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n ): boolean {\n if (this.emitted[ev]) {\n return false\n }\n this.emitted[ev] = true\n let ret: boolean = false\n for (const fn of this.listeners[ev]) {\n ret = fn(code, signal) === true || ret\n }\n if (ev === 'exit') {\n ret = this.emit('afterExit', code, signal) || ret\n }\n return ret\n }\n}\n\nabstract class SignalExitBase {\n abstract onExit(cb: Handler, opts?: { alwaysLast?: boolean }): () => void\n abstract load(): void\n abstract unload(): void\n}\n\nconst signalExitWrap = <T extends SignalExitBase>(handler: T) => {\n return {\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n return handler.onExit(cb, opts)\n },\n load() {\n return handler.load()\n },\n unload() {\n return handler.unload()\n },\n }\n}\n\nclass SignalExitFallback extends SignalExitBase {\n onExit() {\n return () => {}\n }\n load() {}\n unload() {}\n}\n\nclass SignalExit extends SignalExitBase {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n /* c8 ignore start */\n #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP'\n /* c8 ignore stop */\n #emitter = new Emitter()\n #process: ProcessRE\n #originalProcessEmit: ProcessRE['emit']\n #originalProcessReallyExit: ProcessRE['reallyExit']\n\n #sigListeners: { [k in NodeJS.Signals]?: () => void } = {}\n #loaded: boolean = false\n\n constructor(process: ProcessRE) {\n super()\n this.#process = process\n // { <signal>: <listener fn>, ... }\n this.#sigListeners = {}\n for (const sig of signals) {\n this.#sigListeners[sig] = () => {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n const listeners = this.#process.listeners(sig)\n let { count } = this.#emitter\n // This is a workaround for the fact that signal-exit v3 and signal\n // exit v4 are not aware of each other, and each will attempt to let\n // the other handle it, so neither of them do. To correct this, we\n // detect if we're the only handler *except* for previous versions\n // of signal-exit, and increment by the count of listeners it has\n // created.\n /* c8 ignore start */\n const p = process as unknown as {\n __signal_exit_emitter__?: { count: number }\n }\n if (\n typeof p.__signal_exit_emitter__ === 'object' &&\n typeof p.__signal_exit_emitter__.count === 'number'\n ) {\n count += p.__signal_exit_emitter__.count\n }\n /* c8 ignore stop */\n if (listeners.length === count) {\n this.unload()\n const ret = this.#emitter.emit('exit', null, sig)\n /* c8 ignore start */\n const s = sig === 'SIGHUP' ? this.#hupSig : sig\n if (!ret) process.kill(process.pid, s)\n /* c8 ignore stop */\n }\n }\n }\n\n this.#originalProcessReallyExit = process.reallyExit\n this.#originalProcessEmit = process.emit\n }\n\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return () => {}\n }\n /* c8 ignore stop */\n\n if (this.#loaded === false) {\n this.load()\n }\n\n const ev = opts?.alwaysLast ? 'afterExit' : 'exit'\n this.#emitter.on(ev, cb)\n return () => {\n this.#emitter.removeListener(ev, cb)\n if (\n this.#emitter.listeners['exit'].length === 0 &&\n this.#emitter.listeners['afterExit'].length === 0\n ) {\n this.unload()\n }\n }\n }\n\n load() {\n if (this.#loaded) {\n return\n }\n this.#loaded = true\n\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n this.#emitter.count += 1\n\n for (const sig of signals) {\n try {\n const fn = this.#sigListeners[sig]\n if (fn) this.#process.on(sig, fn)\n } catch (_) {}\n }\n\n this.#process.emit = (ev: string, ...a: any[]) => {\n return this.#processEmit(ev, ...a)\n }\n this.#process.reallyExit = (code?: number | null | undefined) => {\n return this.#processReallyExit(code)\n }\n }\n\n unload() {\n if (!this.#loaded) {\n return\n }\n this.#loaded = false\n\n signals.forEach(sig => {\n const listener = this.#sigListeners[sig]\n /* c8 ignore start */\n if (!listener) {\n throw new Error('Listener not defined for signal: ' + sig)\n }\n /* c8 ignore stop */\n try {\n this.#process.removeListener(sig, listener)\n /* c8 ignore start */\n } catch (_) {}\n /* c8 ignore stop */\n })\n this.#process.emit = this.#originalProcessEmit\n this.#process.reallyExit = this.#originalProcessReallyExit\n this.#emitter.count -= 1\n }\n\n #processReallyExit(code?: number | null | undefined) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return 0\n }\n this.#process.exitCode = code || 0\n /* c8 ignore stop */\n\n this.#emitter.emit('exit', this.#process.exitCode, null)\n return this.#originalProcessReallyExit.call(\n this.#process,\n this.#process.exitCode\n )\n }\n\n #processEmit(ev: string, ...args: any[]): any {\n const og = this.#originalProcessEmit\n if (ev === 'exit' && processOk(this.#process)) {\n if (typeof args[0] === 'number') {\n this.#process.exitCode = args[0]\n /* c8 ignore start */\n }\n /* c8 ignore start */\n const ret = og.call(this.#process, ev, ...args)\n /* c8 ignore start */\n this.#emitter.emit('exit', this.#process.exitCode, null)\n /* c8 ignore stop */\n return ret\n } else {\n return og.call(this.#process, ev, ...args)\n }\n }\n}\n\nconst process = globalThis.process\n// wrap so that we call the method on the actual handler, without\n// exporting it directly.\nexport const {\n /**\n * Called when the process is exiting, whether via signal, explicit\n * exit, or running out of stuff to do.\n *\n * If the global process object is not suitable for instrumentation,\n * then this will be a no-op.\n *\n * Returns a function that may be used to unload signal-exit.\n */\n onExit,\n\n /**\n * Load the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n load,\n\n /**\n * Unload the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n unload,\n} = signalExitWrap(\n processOk(process) ? new SignalExit(process) : new SignalExitFallback()\n)\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultParsing = exports.handleOutput = exports.getSpawnedResult = exports.getSpawnedPromise = void 0;\nconst node_buffer_1 = require(\"node:buffer\");\nconst node_stream_1 = __importDefault(require(\"node:stream\"));\nconst node_util_1 = require(\"node:util\");\nconst signal_exit_1 = require(\"signal-exit\");\nfunction getSpawnedPromise(spawned, { timeout } = {}) {\n const spawnedPromise = new Promise((resolve, reject) => {\n spawned.on(\"exit\", (exitCode, signal) => {\n resolve({ exitCode, signal, timedOut: false });\n });\n spawned.on(\"error\", (error) => {\n reject(error);\n });\n if (spawned.stdin) {\n spawned.stdin.on(\"error\", (error) => {\n reject(error);\n });\n }\n });\n if (timeout === 0 || timeout === undefined) {\n return spawnedPromise;\n }\n let timeoutId;\n const timeoutPromise = new Promise((_resolve, reject) => {\n timeoutId = setTimeout(() => {\n spawned.kill(\"SIGTERM\");\n reject(Object.assign(new Error(\"Timed out\"), { timedOut: true, signal: \"SIGTERM\" }));\n }, timeout);\n });\n const safeSpawnedPromise = spawnedPromise.finally(() => {\n clearTimeout(timeoutId);\n });\n const removeExitHandler = (0, signal_exit_1.onExit)(() => {\n spawned.kill();\n });\n return Promise.race([timeoutPromise, safeSpawnedPromise]).finally(() => removeExitHandler());\n}\nexports.getSpawnedPromise = getSpawnedPromise;\nclass MaxBufferError extends Error {\n constructor() {\n super(\"The output is too big\");\n this.name = \"MaxBufferError\";\n }\n}\nconst streamPipelinePromisified = (0, node_util_1.promisify)(node_stream_1.default.pipeline);\nfunction bufferStream(options) {\n const { encoding } = options;\n const isBuffer = encoding === \"buffer\";\n // @ts-expect-error missing the methods we are adding below\n const stream = new node_stream_1.default.PassThrough({ objectMode: false });\n if (encoding && encoding !== \"buffer\") {\n stream.setEncoding(encoding);\n }\n let length = 0;\n const chunks = [];\n stream.on(\"data\", (chunk) => {\n chunks.push(chunk);\n length += chunk.length;\n });\n stream.getBufferedValue = () => {\n return (isBuffer ? Buffer.concat(chunks, length) : chunks.join(\"\"));\n };\n stream.getBufferedLength = () => length;\n return stream;\n}\nasync function getStream(inputStream, options) {\n const stream = bufferStream(options);\n await new Promise((resolve, reject) => {\n const rejectPromise = (error) => {\n // Don't retrieve an oversized buffer.\n if (error && stream.getBufferedLength() <= node_buffer_1.constants.MAX_LENGTH) {\n error.bufferedData = stream.getBufferedValue();\n }\n reject(error);\n };\n (async () => {\n try {\n await streamPipelinePromisified(inputStream, stream);\n resolve();\n }\n catch (error) {\n rejectPromise(error);\n }\n })();\n stream.on(\"data\", () => {\n // 80mb\n if (stream.getBufferedLength() > 1000 * 1000 * 80) {\n rejectPromise(new MaxBufferError());\n }\n });\n });\n return stream.getBufferedValue();\n}\n// On failure, `result.stdout|stderr` should contain the currently buffered stream\nasync function getBufferedData(stream, streamPromise) {\n stream.destroy();\n try {\n return await streamPromise;\n }\n catch (error) {\n return error.bufferedData;\n }\n}\nasync function getSpawnedResult({ stdout, stderr }, { encoding }, processDone) {\n const stdoutPromise = getStream(stdout, { encoding });\n const stderrPromise = getStream(stderr, { encoding });\n try {\n return await Promise.all([processDone, stdoutPromise, stderrPromise]);\n }\n catch (error) {\n return Promise.all([\n {\n error: error,\n exitCode: null,\n signal: error.signal,\n timedOut: error.timedOut || false,\n },\n getBufferedData(stdout, stdoutPromise),\n getBufferedData(stderr, stderrPromise),\n ]);\n }\n}\nexports.getSpawnedResult = getSpawnedResult;\nfunction stripFinalNewline(input) {\n const LF = typeof input === \"string\" ? \"\\n\" : \"\\n\".charCodeAt(0);\n const CR = typeof input === \"string\" ? \"\\r\" : \"\\r\".charCodeAt(0);\n if (input[input.length - 1] === LF) {\n // @ts-expect-error we are doing some nasty stuff here\n input = input.slice(0, -1);\n }\n if (input[input.length - 1] === CR) {\n // @ts-expect-error we are doing some nasty stuff here\n input = input.slice(0, -1);\n }\n return input;\n}\nfunction handleOutput(options, value) {\n if (options.stripFinalNewline) {\n return stripFinalNewline(value);\n }\n return value;\n}\nexports.handleOutput = handleOutput;\nconst getErrorPrefix = ({ timedOut, timeout, signal, exitCode, }) => {\n if (timedOut) {\n return `timed out after ${timeout} milliseconds`;\n }\n if (signal !== undefined && signal !== null) {\n return `was killed with ${signal}`;\n }\n if (exitCode !== undefined && exitCode !== null) {\n return `failed with exit code ${exitCode}`;\n }\n return \"failed\";\n};\nconst makeError = ({ stdout, stderr, error, signal, exitCode, command, timedOut, options, parentError, }) => {\n const prefix = getErrorPrefix({ timedOut, timeout: options?.timeout, signal, exitCode });\n const execaMessage = `Command ${prefix}: ${command}`;\n const shortMessage = error ? `${execaMessage}\\n${error.message}` : execaMessage;\n const message = [shortMessage, stderr, stdout].filter(Boolean).join(\"\\n\");\n if (error) {\n // @ts-expect-error not on Error\n error.originalMessage = error.message;\n }\n else {\n error = parentError;\n }\n error.message = message;\n // @ts-expect-error not on Error\n error.shortMessage = shortMessage;\n // @ts-expect-error not on Error\n error.command = command;\n // @ts-expect-error not on Error\n error.exitCode = exitCode;\n // @ts-expect-error not on Error\n error.signal = signal;\n // @ts-expect-error not on Error\n error.stdout = stdout;\n // @ts-expect-error not on Error\n error.stderr = stderr;\n if (\"bufferedData\" in error) {\n delete error[\"bufferedData\"];\n }\n return error;\n};\nfunction defaultParsing({ stdout, stderr, error, exitCode, signal, timedOut, command, options, parentError, }) {\n if (error || exitCode !== 0 || signal !== null) {\n const returnedError = makeError({\n error,\n exitCode,\n signal,\n stdout,\n stderr,\n command,\n timedOut,\n options,\n parentError,\n });\n throw returnedError;\n }\n return stdout;\n}\nexports.defaultParsing = defaultParsing;\n", "\"use strict\";\n/*\n * Inspired by Execa\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useExec = void 0;\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst react_1 = require(\"react\");\nconst useCachedPromise_1 = require(\"./useCachedPromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst exec_utils_1 = require(\"./exec-utils\");\nconst SPACES_REGEXP = / +/g;\nfunction parseCommand(command, args) {\n if (args) {\n return [command, ...args];\n }\n const tokens = [];\n for (const token of command.trim().split(SPACES_REGEXP)) {\n // Allow spaces to be escaped by a backslash if not meant as a delimiter\n const previousToken = tokens[tokens.length - 1];\n if (previousToken && previousToken.endsWith(\"\\\\\")) {\n // Merge previous token with current one\n tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`;\n }\n else {\n tokens.push(token);\n }\n }\n return tokens;\n}\nfunction useExec(command, optionsOrArgs, options) {\n const { parseOutput, input, onData, onWillExecute, initialData, execute, keepPreviousData, onError, ...execOptions } = Array.isArray(optionsOrArgs) ? options || {} : optionsOrArgs || {};\n const useCachedPromiseOptions = {\n initialData,\n execute,\n keepPreviousData,\n onError,\n onData,\n onWillExecute,\n };\n const abortable = (0, react_1.useRef)();\n const parseOutputRef = (0, useLatest_1.useLatest)(parseOutput || exec_utils_1.defaultParsing);\n const fn = (0, react_1.useCallback)(async (_command, _args, _options, input) => {\n const [file, ...args] = parseCommand(_command, _args);\n const command = [file, ...args].join(\" \");\n const options = {\n stripFinalNewline: true,\n ..._options,\n timeout: _options?.timeout || 10000,\n signal: abortable.current?.signal,\n encoding: _options?.encoding === null ? \"buffer\" : _options?.encoding || \"utf8\",\n env: { PATH: \"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\", ...process.env, ..._options?.env },\n };\n const spawned = node_child_process_1.default.spawn(file, args, options);\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned, options);\n if (input) {\n spawned.stdin.end(input);\n }\n const [{ error, exitCode, signal, timedOut }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, options, spawnedPromise);\n const stdout = (0, exec_utils_1.handleOutput)(options, stdoutResult);\n const stderr = (0, exec_utils_1.handleOutput)(options, stderrResult);\n return parseOutputRef.current({\n // @ts-expect-error too many generics, I give up\n stdout,\n // @ts-expect-error too many generics, I give up\n stderr,\n error,\n exitCode,\n signal,\n timedOut,\n command,\n options,\n parentError: new Error(),\n });\n }, [parseOutputRef]);\n // @ts-expect-error T can't be a Promise so it's actually the same\n return (0, useCachedPromise_1.useCachedPromise)(fn, [command, Array.isArray(optionsOrArgs) ? optionsOrArgs : [], execOptions, input], {\n ...useCachedPromiseOptions,\n abortable,\n });\n}\nexports.useExec = useExec;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useSQL = void 0;\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\nconst api_1 = require(\"@raycast/api\");\nconst node_fs_1 = require(\"node:fs\");\nconst promises_1 = require(\"node:fs/promises\");\nconst node_os_1 = __importDefault(require(\"node:os\"));\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst node_path_1 = __importDefault(require(\"node:path\"));\nconst object_hash_1 = __importDefault(require(\"object-hash\"));\nconst react_1 = require(\"react\");\nconst usePromise_1 = require(\"./usePromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst exec_utils_1 = require(\"./exec-utils\");\nconst handle_error_toast_action_1 = require(\"./handle-error-toast-action\");\n/**\n * Executes a query on a local SQL database and returns the {@link AsyncState} corresponding to the query of the command. The last value will be kept between command runs.\n *\n * @example\n * ```\n * import { useSQL } from \"@raycast/utils\";\n * import { resolve } from \"path\";\n * import { homedir } from \"os\";\n *\n * const NOTES_DB = resolve(homedir(), \"Library/Group Containers/group.com.apple.notes/NoteStore.sqlite\");\n * const notesQuery = `SELECT id, title FROM ...`;\n * type NoteItem = {\n * id: string;\n * title: string;\n * };\n *\n * export default function Command() {\n * const { isLoading, data, permissionView } = useSQL<NoteItem>(NOTES_DB, notesQuery);\n *\n * if (permissionView) {\n * return permissionView;\n * }\n *\n * return (\n * <List isLoading={isLoading}>\n * {(data || []).map((item) => (\n * <List.Item key={item.id} title={item.title} />\n * ))}\n * </List>\n * );\n * };\n * ```\n */\nfunction useSQL(databasePath, query, options) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { permissionPriming, ...usePromiseOptions } = options || {};\n const [permissionView, setPermissionView] = (0, react_1.useState)();\n const latestOptions = (0, useLatest_1.useLatest)(options || {});\n const abortable = (0, react_1.useRef)();\n const handleError = (0, react_1.useCallback)((_error) => {\n console.error(_error);\n const error = _error instanceof Error && _error.message.includes(\"authorization denied\")\n ? new PermissionError(\"You do not have permission to access the database.\")\n : _error;\n if (isPermissionError(error)) {\n setPermissionView((0, jsx_runtime_1.jsx)(PermissionErrorScreen, { priming: latestOptions.current.permissionPriming }));\n }\n else {\n if (latestOptions.current.onError) {\n latestOptions.current.onError(error);\n }\n else {\n console.error(error);\n if (api_1.environment.launchType !== api_1.LaunchType.Background) {\n (0, api_1.showToast)({\n style: api_1.Toast.Style.Failure,\n title: \"Cannot query the data\",\n message: error.message,\n primaryAction: (0, handle_error_toast_action_1.handleErrorToastAction)(error),\n });\n }\n }\n }\n }, [latestOptions]);\n const fn = (0, react_1.useMemo)(() => {\n if (!(0, node_fs_1.existsSync)(databasePath)) {\n throw new Error(\"The database does not exist\");\n }\n let workaroundCopiedDb = undefined;\n return async (databasePath, query) => {\n const abortSignal = abortable.current?.signal;\n const spawned = node_child_process_1.default.spawn(\"sqlite3\", [\"--json\", \"--readonly\", databasePath, query], {\n signal: abortSignal,\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned);\n let [{ error, exitCode, signal }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf-8\" }, spawnedPromise);\n checkAborted(abortSignal);\n if (stderrResult.match(\"(5)\") || stderrResult.match(\"(14)\")) {\n // That means that the DB is busy because of another app is locking it\n // This happens when Chrome or Arc is opened: they lock the History db.\n // As an ugly workaround, we duplicate the file and read that instead\n // (with vfs unix - none to just not care about locks)\n if (!workaroundCopiedDb) {\n const tempFolder = node_path_1.default.join(node_os_1.default.tmpdir(), \"useSQL\", (0, object_hash_1.default)(databasePath));\n await (0, promises_1.mkdir)(tempFolder, { recursive: true });\n checkAborted(abortSignal);\n workaroundCopiedDb = node_path_1.default.join(tempFolder, \"db.db\");\n await (0, promises_1.copyFile)(databasePath, workaroundCopiedDb);\n // needed for certain db\n await (0, promises_1.writeFile)(workaroundCopiedDb + \"-shm\", \"\");\n await (0, promises_1.writeFile)(workaroundCopiedDb + \"-wal\", \"\");\n checkAborted(abortSignal);\n }\n const spawned = node_child_process_1.default.spawn(\"sqlite3\", [\"--json\", \"--readonly\", \"--vfs\", \"unix-none\", workaroundCopiedDb, query], {\n signal: abortSignal,\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned);\n [{ error, exitCode, signal }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf-8\" }, spawnedPromise);\n checkAborted(abortSignal);\n }\n if (error || exitCode !== 0 || signal !== null) {\n throw new Error(stderrResult);\n }\n return JSON.parse(stdoutResult.trim() || \"[]\");\n };\n }, [databasePath]);\n return {\n ...(0, usePromise_1.usePromise)(fn, [databasePath, query], { ...usePromiseOptions, onError: handleError }),\n permissionView,\n };\n}\nexports.useSQL = useSQL;\nclass PermissionError extends Error {\n constructor(message) {\n super(message);\n this.name = \"PermissionError\";\n }\n}\nfunction isPermissionError(error) {\n return error instanceof Error && error.name === \"PermissionError\";\n}\nconst macosVenturaAndLater = parseInt(node_os_1.default.release().split(\".\")[0]) >= 22;\nconst preferencesString = macosVenturaAndLater ? \"Settings\" : \"Preferences\";\nfunction PermissionErrorScreen(props) {\n const action = macosVenturaAndLater\n ? {\n title: \"Open System Settings -> Privacy\",\n target: \"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles\",\n }\n : {\n title: \"Open System Preferences -> Security\",\n target: \"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles\",\n };\n if (api_1.environment.commandMode === \"menu-bar\") {\n return ((0, jsx_runtime_1.jsxs)(api_1.MenuBarExtra, { icon: api_1.Icon.Warning, title: api_1.environment.commandName, children: [(0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: \"Raycast needs full disk access\", tooltip: `You can revert this access in ${preferencesString} whenever you want` }), props.priming ? ((0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: props.priming, tooltip: `You can revert this access in ${preferencesString} whenever you want` })) : null, (0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Separator, {}), (0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: action.title, onAction: () => (0, api_1.open)(action.target) })] }));\n }\n return ((0, jsx_runtime_1.jsx)(api_1.List, { children: (0, jsx_runtime_1.jsx)(api_1.List.EmptyView, { icon: {\n source: {\n light: \"https://raycast.com/uploads/extensions-utils-security-permissions-light.png\",\n dark: \"https://raycast.com/uploads/extensions-utils-security-permissions-dark.png\",\n },\n }, title: \"Raycast needs full disk access.\", description: `${props.priming ? props.priming + \"\\n\" : \"\"}You can revert this access in ${preferencesString} whenever you want.`, actions: (0, jsx_runtime_1.jsx)(api_1.ActionPanel, { children: (0, jsx_runtime_1.jsx)(api_1.Action.Open, { ...action }) }) }) }));\n}\nfunction checkAborted(signal) {\n if (signal?.aborted) {\n const error = new Error(\"aborted\");\n error.name = \"AbortError\";\n throw error;\n }\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useForm = exports.FormValidation = void 0;\nconst react_1 = require(\"react\");\nconst useLatest_1 = require(\"./useLatest\");\n/**\n * Shorthands for common validation cases\n */\nvar FormValidation;\n(function (FormValidation) {\n /** Show an error when the value of the item is empty */\n FormValidation[\"Required\"] = \"required\";\n})(FormValidation = exports.FormValidation || (exports.FormValidation = {}));\nfunction validationError(validation, value) {\n if (validation) {\n if (typeof validation === \"function\") {\n return validation(value);\n }\n else if (validation === FormValidation.Required) {\n let valueIsValid = typeof value !== \"undefined\" && value !== null;\n if (valueIsValid) {\n switch (typeof value) {\n case \"string\":\n valueIsValid = value.length > 0;\n break;\n case \"object\":\n if (Array.isArray(value)) {\n valueIsValid = value.length > 0;\n }\n else if (value instanceof Date) {\n valueIsValid = value.getTime() > 0;\n }\n break;\n default:\n break;\n }\n }\n if (!valueIsValid) {\n return \"The item is required\";\n }\n }\n }\n}\n/**\n * Hook that provides a high-level interface to work with Forms, and more particularly, with Form validations. It incorporates all the good practices to provide a great User Experience for your Forms.\n *\n * @returns an object which contains the necessary methods and props to provide a good User Experience in your Form.\n *\n * @example\n * ```\n * import { Action, ActionPanel, Form, showToast, Toast } from \"@raycast/api\";\n * import { useForm, FormValidation } from \"@raycast/utils\";\n *\n * interface SignUpFormValues {\n * nickname: string;\n * password: string;\n * }\n *\n * export default function Command() {\n * const { handleSubmit, itemProps } = useForm<SignUpFormValues>({\n * onSubmit(values) {\n * showToast(Toast.Style.Success, \"Yay!\", `${values.nickname} account created`);\n * },\n * validation: {\n * nickname: FormValidation.Required,\n * password: (value) => {\n * if (value && value.length < 8) {\n * return \"Password must be at least 8 symbols\";\n * } else if (!value) {\n * return \"The item is required\";\n * }\n * },\n * },\n * });\n *\n * return (\n * <Form\n * actions={\n * <ActionPanel>\n * <Action.SubmitForm title=\"Submit\" onSubmit={handleSubmit} />\n * </ActionPanel>\n * }\n * >\n * <Form.TextField title=\"Nickname\" placeholder=\"Enter your nickname\" {...itemProps.nickname} />\n * <Form.PasswordField\n * title=\"Password\"\n * placeholder=\"Enter password at least 8 characters long\"\n * {...itemProps.password}\n * />\n * </Form>\n * );\n * }\n * ```\n */\nfunction useForm(props) {\n const { onSubmit: _onSubmit, validation, initialValues = {} } = props;\n // @ts-expect-error it's fine if we don't specify all the values\n const [values, setValues] = (0, react_1.useState)(initialValues);\n const [errors, setErrors] = (0, react_1.useState)({});\n const refs = (0, react_1.useRef)({});\n const latestValidation = (0, useLatest_1.useLatest)(validation || {});\n const latestOnSubmit = (0, useLatest_1.useLatest)(_onSubmit);\n const focus = (0, react_1.useCallback)((id) => {\n refs.current[id]?.focus();\n }, [refs]);\n const handleSubmit = (0, react_1.useCallback)(async (values) => {\n let validationErrors = false;\n for (const [id, validation] of Object.entries(latestValidation.current)) {\n const error = validationError(validation, values[id]);\n if (error) {\n if (!validationErrors) {\n validationErrors = {};\n // we focus the first item that has an error\n focus(id);\n }\n validationErrors[id] = error;\n }\n }\n if (validationErrors) {\n setErrors(validationErrors);\n return false;\n }\n const result = await latestOnSubmit.current(values);\n return typeof result === \"boolean\" ? result : true;\n }, [latestValidation, latestOnSubmit, focus]);\n const setValidationError = (0, react_1.useCallback)((id, error) => {\n setErrors((errors) => ({ ...errors, [id]: error }));\n }, [setErrors]);\n const setValue = (0, react_1.useCallback)(function (id, value) {\n // @ts-expect-error TS is always confused about SetStateAction, but it's fine here\n setValues((values) => ({ ...values, [id]: typeof value === \"function\" ? value(values[id]) : value }));\n }, [setValues]);\n const itemProps = (0, react_1.useMemo)(() => {\n // we have to use a proxy because we don't actually have any object to iterate through\n // so instead we dynamically create the props when required\n return new Proxy(\n // @ts-expect-error the whole point of a proxy...\n {}, {\n get(target, id) {\n const validation = latestValidation.current[id];\n const value = values[id];\n return {\n onChange(value) {\n if (errors[id]) {\n const error = validationError(validation, value);\n if (!error) {\n setValidationError(id, undefined);\n }\n }\n setValue(id, value);\n },\n onBlur(event) {\n const error = validationError(validation, event.target.value);\n if (error) {\n setValidationError(id, error);\n }\n },\n error: errors[id],\n id,\n // we shouldn't return `undefined` otherwise it will be an uncontrolled component\n value: typeof value === \"undefined\" ? null : value,\n ref: (instance) => {\n refs.current[id] = instance;\n },\n };\n },\n });\n }, [errors, latestValidation, setValidationError, values, refs, setValue]);\n const reset = (0, react_1.useCallback)((initialValues = {}) => {\n // @ts-expect-error it's fine if we don't specify all the values\n setValues(initialValues);\n setErrors({});\n }, [setValues, setErrors]);\n return { handleSubmit, setValidationError, setValue, values, itemProps, focus, reset };\n}\nexports.useForm = useForm;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useAI = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst usePromise_1 = require(\"./usePromise\");\n/**\n * Stream a prompt completion.\n *\n * @example\n * ```typescript\n * import { Detail, LaunchProps } from \"@raycast/api\";\n * import { use AI } from \"@raycast/utils\";\n *\n * export default function Command(props: LaunchProps<{ arguments: { prompt: string } }>) {\n * const { isLoading, data } = useAI(props.arguments.prompt);\n *\n * return <Detail isLoading={isLoading} markdown={data} />;\n * }\n * ```\n */\nfunction useAI(prompt, options = {}) {\n const { creativity, stream, model, ...usePromiseOptions } = options;\n const [data, setData] = (0, react_1.useState)(\"\");\n const abortable = (0, react_1.useRef)();\n const { isLoading, error, revalidate } = (0, usePromise_1.usePromise)(async (prompt, creativity, shouldStream) => {\n setData(\"\");\n const stream = api_1.AI.ask(prompt, { creativity, model, signal: abortable.current?.signal });\n if (shouldStream === false) {\n setData(await stream);\n }\n else {\n stream.on(\"data\", (data) => {\n setData((x) => x + data);\n });\n await stream;\n }\n }, [prompt, creativity, stream], { ...usePromiseOptions, abortable });\n return { isLoading, data, error, revalidate };\n}\nexports.useAI = useAI;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFrecencySorting = void 0;\nconst react_1 = require(\"react\");\nconst useLatest_1 = require(\"./useLatest\");\nconst useCachedState_1 = require(\"./useCachedState\");\nconst HALF_LIFE_DAYS = 10;\nconst MS_PER_DAY = 24 * 60 * 60 * 1000;\nconst DECAY_RATE_CONSTANT = Math.log(2) / (HALF_LIFE_DAYS * MS_PER_DAY);\nconst VISIT_TYPE_POINTS = {\n Default: 100,\n Embed: 0,\n Bookmark: 140,\n};\nfunction getNewFrecency(item) {\n const now = Date.now();\n const lastVisited = item ? item.lastVisited : 0;\n const frecency = item ? item.frecency : 0;\n const visitAgeInDays = (now - lastVisited) / MS_PER_DAY;\n const currentVisitValue = VISIT_TYPE_POINTS.Default * Math.exp(-DECAY_RATE_CONSTANT * visitAgeInDays);\n const totalVisitValue = frecency + currentVisitValue;\n return {\n lastVisited: now,\n frecency: totalVisitValue,\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst defaultKey = (item) => {\n if (process.env.NODE_ENV !== \"production\" &&\n (typeof item !== \"object\" || !item || !(\"id\" in item) || typeof item.id != \"string\")) {\n throw new Error(\"Specify a key function or make sure your items have an 'id' property\");\n }\n return item.id;\n};\nfunction useFrecencySorting(data, options) {\n const keyRef = (0, useLatest_1.useLatest)(options?.key || defaultKey);\n const sortUnvisitedRef = (0, useLatest_1.useLatest)(options?.sortUnvisited);\n const [storedFrecencies, setStoredFrecencies] = (0, useCachedState_1.useCachedState)(`raycast_frecency_${options?.namespace}`, {});\n const visitItem = (0, react_1.useCallback)(async function updateFrecency(item) {\n const itemKey = keyRef.current(item);\n setStoredFrecencies((storedFrecencies) => {\n const frecency = storedFrecencies[itemKey];\n const newFrecency = getNewFrecency(frecency);\n return {\n ...storedFrecencies,\n [itemKey]: newFrecency,\n };\n });\n }, [keyRef, setStoredFrecencies]);\n const resetRanking = (0, react_1.useCallback)(async function removeFrecency(item) {\n const itemKey = keyRef.current(item);\n setStoredFrecencies((storedFrecencies) => {\n const newFrencencies = { ...storedFrecencies };\n delete newFrencencies[itemKey];\n return newFrencencies;\n });\n }, [keyRef, setStoredFrecencies]);\n const sortedData = (0, react_1.useMemo)(() => {\n if (!data) {\n return [];\n }\n return data.sort((a, b) => {\n const frecencyA = storedFrecencies[keyRef.current(a)];\n const frecencyB = storedFrecencies[keyRef.current(b)];\n // If a has a frecency, but b doesn't, a should come first\n if (frecencyA && !frecencyB) {\n return -1;\n }\n // If b has a frecency, but a doesn't, b should come first\n if (!frecencyA && frecencyB) {\n return 1;\n }\n // If both frecencies are defined,put the one with the higher frecency first\n if (frecencyA && frecencyB) {\n return frecencyB.frecency - frecencyA.frecency;\n }\n // If both frecencies are undefined, keep the original order\n return sortUnvisitedRef.current ? sortUnvisitedRef.current(a, b) : 0;\n });\n }, [storedFrecencies, data, keyRef, sortUnvisitedRef]);\n return { data: sortedData, visitItem, resetRanking };\n}\nexports.useFrecencySorting = useFrecencySorting;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.slightlyLighterColor = exports.slightlyDarkerColor = void 0;\nfunction hexToRGB(hex) {\n let r = 0;\n let g = 0;\n let b = 0;\n // 3 digits\n if (hex.length === 4) {\n r = parseInt(`${hex[1]}${hex[1]}`, 16);\n g = parseInt(`${hex[2]}${hex[2]}`, 16);\n b = parseInt(`${hex[3]}${hex[3]}`, 16);\n // 6 digits\n }\n else if (hex.length === 7) {\n r = parseInt(`${hex[1]}${hex[2]}`, 16);\n g = parseInt(`${hex[3]}${hex[4]}`, 16);\n b = parseInt(`${hex[5]}${hex[6]}`, 16);\n }\n else {\n throw new Error(`Malformed hex color: ${hex}`);\n }\n return { r, g, b };\n}\nfunction rgbToHex({ r, g, b }) {\n let rString = r.toString(16);\n let gString = g.toString(16);\n let bString = b.toString(16);\n if (rString.length === 1) {\n rString = `0${rString}`;\n }\n if (gString.length === 1) {\n gString = `0${gString}`;\n }\n if (bString.length === 1) {\n bString = `0${bString}`;\n }\n return `#${rString}${gString}${bString}`;\n}\nfunction rgbToHSL({ r, g, b }) {\n // Make r, g, and b fractions of 1\n r /= 255;\n g /= 255;\n b /= 255;\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b);\n const cmax = Math.max(r, g, b);\n const delta = cmax - cmin;\n let h = 0;\n let s = 0;\n let l = 0;\n // Calculate hue\n // No difference\n if (delta === 0) {\n h = 0;\n }\n // Red is max\n else if (cmax === r) {\n h = ((g - b) / delta) % 6;\n }\n // Green is max\n else if (cmax === g) {\n h = (b - r) / delta + 2;\n }\n // Blue is max\n else {\n h = (r - g) / delta + 4;\n }\n h = Math.round(h * 60);\n // Make negative hues positive behind 360\u00B0\n if (h < 0) {\n h += 360;\n }\n // Calculate lightness\n l = (cmax + cmin) / 2;\n // Calculate saturation\n s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1);\n l = +(l * 100).toFixed(1);\n return { h, s, l };\n}\nfunction hslToRGB({ h, s, l }) {\n // Must be fractions of 1\n s /= 100;\n l /= 100;\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = l - c / 2;\n let r = 0;\n let g = 0;\n let b = 0;\n if (h >= 0 && h < 60) {\n r = c;\n g = x;\n b = 0;\n }\n else if (h >= 60 && h < 120) {\n r = x;\n g = c;\n b = 0;\n }\n else if (h >= 120 && h < 180) {\n r = 0;\n g = c;\n b = x;\n }\n else if (h >= 180 && h < 240) {\n r = 0;\n g = x;\n b = c;\n }\n else if (h >= 240 && h < 300) {\n r = x;\n g = 0;\n b = c;\n }\n else if (h >= 300 && h < 360) {\n r = c;\n g = 0;\n b = x;\n }\n r = Math.round((r + m) * 255);\n g = Math.round((g + m) * 255);\n b = Math.round((b + m) * 255);\n return { r, g, b };\n}\nfunction hexToHSL(hex) {\n return rgbToHSL(hexToRGB(hex));\n}\nfunction hslToHex(hsl) {\n return rgbToHex(hslToRGB(hsl));\n}\nfunction clamp(value, min, max) {\n return min < max ? (value < min ? min : value > max ? max : value) : value < max ? max : value > min ? min : value;\n}\nconst offset = 12;\nfunction slightlyDarkerColor(hex) {\n const hsl = hexToHSL(hex);\n return hslToHex({\n h: hsl.h,\n s: hsl.s,\n l: clamp(hsl.l - offset, 0, 100),\n });\n}\nexports.slightlyDarkerColor = slightlyDarkerColor;\nfunction slightlyLighterColor(hex) {\n const hsl = hexToHSL(hex);\n return hslToHex({\n h: hsl.h,\n s: hsl.s,\n l: clamp(hsl.l + offset, 0, 100),\n });\n}\nexports.slightlyLighterColor = slightlyLighterColor;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAvatarIcon = void 0;\nconst color_1 = require(\"./color\");\nfunction getWholeCharAndI(str, i) {\n const code = str.charCodeAt(i);\n if (Number.isNaN(code)) {\n return [\"\", i];\n }\n if (code < 0xd800 || code > 0xdfff) {\n return [str.charAt(i), i]; // Normal character, keeping 'i' the same\n }\n // High surrogate (could change last hex to 0xDB7F to treat high private\n // surrogates as single characters)\n if (0xd800 <= code && code <= 0xdbff) {\n if (str.length <= i + 1) {\n throw new Error(\"High surrogate without following low surrogate\");\n }\n const next = str.charCodeAt(i + 1);\n if (0xdc00 > next || next > 0xdfff) {\n throw new Error(\"High surrogate without following low surrogate\");\n }\n return [str.charAt(i) + str.charAt(i + 1), i + 1];\n }\n // Low surrogate (0xDC00 <= code && code <= 0xDFFF)\n if (i === 0) {\n throw new Error(\"Low surrogate without preceding high surrogate\");\n }\n const prev = str.charCodeAt(i - 1);\n // (could change last hex to 0xDB7F to treat high private surrogates\n // as single characters)\n if (0xd800 > prev || prev > 0xdbff) {\n throw new Error(\"Low surrogate without preceding high surrogate\");\n }\n // Return the next character instead (and increment)\n return [str.charAt(i + 1), i + 1];\n}\nconst avatarColorSet = [\n \"#DC829A\",\n \"#D64854\",\n \"#D47600\",\n \"#D36CDD\",\n \"#52A9E4\",\n \"#7871E8\",\n \"#70920F\",\n \"#43B93A\",\n \"#EB6B3E\",\n \"#26B795\",\n \"#D85A9B\",\n \"#A067DC\",\n \"#BD9500\",\n \"#5385D9\", // Blue\n];\n/**\n * Icon to represent an avatar when you don't have one. The generated avatar\n * will be generated from the initials of the name and have a colorful but consistent background.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getAvatarIcon('Mathieu Dutour')} title=\"Project\" />\n * ```\n */\nfunction getAvatarIcon(name, options) {\n const words = name.trim().split(\" \");\n let initials;\n if (words.length == 1 && getWholeCharAndI(words[0], 0)[0]) {\n initials = getWholeCharAndI(words[0], 0)[0];\n }\n else if (words.length > 1) {\n const firstWordFirstLetter = getWholeCharAndI(words[0], 0)[0] || \"\";\n const lastWordFirstLetter = getWholeCharAndI(words[words.length - 1], 0)[0] ?? \"\";\n initials = firstWordFirstLetter + lastWordFirstLetter;\n }\n else {\n initials = \"\";\n }\n let backgroundColor;\n if (options?.background) {\n backgroundColor = options?.background;\n }\n else {\n let initialsCharIndex = 0;\n let [char, i] = getWholeCharAndI(initials, 0);\n while (char) {\n initialsCharIndex += char.charCodeAt(0);\n [char, i] = getWholeCharAndI(initials, i + 1);\n }\n const colorIndex = initialsCharIndex % avatarColorSet.length;\n backgroundColor = avatarColorSet[colorIndex];\n }\n const padding = 0;\n const radius = 50 - padding;\n const svg = `<svg width=\"100px\" height=\"100px\">\n ${options?.gradient !== false\n ? `<defs>\n <linearGradient id=\"Gradient\" x1=\"0.25\" x2=\"0.75\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" stop-color=\"${(0, color_1.slightlyLighterColor)(backgroundColor)}\"/>\n <stop offset=\"50%\" stop-color=\"${backgroundColor}\"/>\n <stop offset=\"100%\" stop-color=\"${(0, color_1.slightlyDarkerColor)(backgroundColor)}\"/>\n </linearGradient>\n </defs>`\n : \"\"}\n <circle cx=\"50\" cy=\"50\" r=\"${radius}\" fill=\"${options?.gradient !== false ? \"url(#Gradient)\" : backgroundColor}\" />\n ${initials\n ? `<text x=\"50\" y=\"80\" font-size=\"${radius - 1}\" font-family=\"Inter, sans-serif\" text-anchor=\"middle\" fill=\"white\">${initials.toUpperCase()}</text>`\n : \"\"}\n </svg>\n `.replaceAll(\"\\n\", \"\");\n return `data:image/svg+xml,${svg}`;\n}\nexports.getAvatarIcon = getAvatarIcon;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFavicon = void 0;\nconst api_1 = require(\"@raycast/api\");\nconst url_1 = require(\"url\");\n/**\n * Icon showing the favicon of a website.\n *\n * A favicon (favorite icon) is a tiny icon included along with a website, which is displayed in places like the browser's address bar, page tabs, and bookmarks menu.\n *\n * @param url The URL of the website to represent.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getFavicon(\"https://raycast.com\")} title=\"Raycast Website\" />\n * ```\n */\nfunction getFavicon(url, options) {\n try {\n const urlObj = typeof url === \"string\" ? new url_1.URL(url) : url;\n const hostname = urlObj.hostname;\n return {\n source: `https://www.google.com/s2/favicons?sz=${options?.size ?? 64}&domain=${hostname}`,\n fallback: options?.fallback ?? api_1.Icon.Link,\n mask: options?.mask,\n };\n }\n catch (e) {\n console.error(e);\n return api_1.Icon.Link;\n }\n}\nexports.getFavicon = getFavicon;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getProgressIcon = void 0;\nconst api_1 = require(\"@raycast/api\");\nfunction polarToCartesian(centerX, centerY, radius, angleInDegrees) {\n const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180.0;\n return {\n x: centerX + radius * Math.cos(angleInRadians),\n y: centerY + radius * Math.sin(angleInRadians),\n };\n}\nfunction describeArc(x, y, radius, startAngle, endAngle) {\n const start = polarToCartesian(x, y, radius, endAngle);\n const end = polarToCartesian(x, y, radius, startAngle);\n const largeArcFlag = endAngle - startAngle <= 180 ? \"0\" : \"1\";\n const d = [\"M\", start.x, start.y, \"A\", radius, radius, 0, largeArcFlag, 0, end.x, end.y].join(\" \");\n return d;\n}\n/**\n * Icon to represent the progress of _something_.\n *\n * @param progress Number between 0 and 1.\n * @param color Hex color (default `\"#FF6363\"`) or Color.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getProgressIcon(0.1)} title=\"Project\" />\n * ```\n */\nfunction getProgressIcon(progress, color = api_1.Color.Red, options) {\n const background = options?.background || (api_1.environment.appearance === \"light\" ? \"black\" : \"white\");\n const backgroundOpacity = options?.backgroundOpacity || 0.1;\n const stroke = 10;\n const padding = 5;\n const radius = 50 - padding - stroke / 2;\n const svg = `<svg width=\"100px\" height=\"100px\">\n <circle cx=\"50\" cy=\"50\" r=\"${radius}\" stroke-width=\"${stroke}\" stroke=\"${progress < 1 ? background : color}\" opacity=\"${progress < 1 ? backgroundOpacity : \"1\"}\" fill=\"none\" />\n ${progress > 0 && progress < 1\n ? `<path d=\"${describeArc(50, 50, radius, 0, progress * 360)}\" stroke=\"${color}\" stroke-width=\"${stroke}\" fill=\"none\" />`\n : \"\"}\n </svg>\n `.replaceAll(\"\\n\", \"\");\n return `data:image/svg+xml,${svg}`;\n}\nexports.getProgressIcon = getProgressIcon;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./avatar\"), exports);\n__exportStar(require(\"./favicon\"), exports);\n__exportStar(require(\"./progress\"), exports);\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.runAppleScript = void 0;\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst exec_utils_1 = require(\"./exec-utils\");\nasync function runAppleScript(script, optionsOrArgs, options) {\n const { humanReadableOutput, language, timeout, ...execOptions } = Array.isArray(optionsOrArgs)\n ? options || {}\n : optionsOrArgs || {};\n const outputArguments = humanReadableOutput !== false ? [] : [\"-ss\"];\n if (language === \"JavaScript\") {\n outputArguments.push(\"-l\", \"JavaScript\");\n }\n if (Array.isArray(optionsOrArgs)) {\n outputArguments.push(\"-\", ...optionsOrArgs);\n }\n const spawned = node_child_process_1.default.spawn(\"osascript\", outputArguments, {\n ...execOptions,\n env: { PATH: \"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\" },\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned, { timeout: timeout || 10000 });\n spawned.stdin.end(script);\n const [{ error, exitCode, signal, timedOut }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf8\" }, spawnedPromise);\n const stdout = (0, exec_utils_1.handleOutput)({ stripFinalNewline: true }, stdoutResult);\n const stderr = (0, exec_utils_1.handleOutput)({ stripFinalNewline: true }, stderrResult);\n return (0, exec_utils_1.defaultParsing)({\n stdout,\n stderr,\n error,\n exitCode,\n signal,\n timedOut,\n command: \"osascript\",\n options,\n parentError: new Error(),\n });\n}\nexports.runAppleScript = runAppleScript;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./usePromise\"), exports);\n__exportStar(require(\"./useCachedState\"), exports);\n__exportStar(require(\"./useCachedPromise\"), exports);\n__exportStar(require(\"./useFetch\"), exports);\n__exportStar(require(\"./useExec\"), exports);\n__exportStar(require(\"./useSQL\"), exports);\n__exportStar(require(\"./useForm\"), exports);\n__exportStar(require(\"./useAI\"), exports);\n__exportStar(require(\"./useFrecencySorting\"), exports);\n__exportStar(require(\"./icon\"), exports);\n__exportStar(require(\"./run-applescript\"), exports);\n", "module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size')\n}\n", "'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseExceededMaxSizeError)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\n\nconst [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v))\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n return url\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.')\n }\n\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n if (!(url instanceof URL)) {\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substr(1, idx - 1)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substr(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (!isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\nfunction parseHeaders (headers, obj = {}) {\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1]\n } else {\n obj[key] = headers[i + 1].toString('utf8')\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString('utf8'))\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if ('content-length' in obj && 'content-disposition' in obj) {\n obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1')\n }\n\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n const ret = []\n let hasContentLength = false\n let contentDispositionIdx = -1\n\n for (let n = 0; n < headers.length; n += 2) {\n const key = headers[n + 0].toString()\n const val = headers[n + 1].toString('utf8')\n\n if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n ret.push(key, val)\n hasContentLength = true\n } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n contentDispositionIdx = ret.push(key, val) - 1\n } else {\n ret.push(key, val)\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if (hasContentLength && contentDispositionIdx !== -1) {\n ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1')\n }\n\n return ret\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n // https://github.com/whatwg/streams/pull/1083\n return ReadableStream.from(iterable)\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.append === 'function' &&\n typeof object.delete === 'function' &&\n typeof object.get === 'function' &&\n typeof object.getAll === 'function' &&\n typeof object.has === 'function' &&\n typeof object.set === 'function' &&\n object[Symbol.toStringTag] === 'FormData'\n )\n}\n\nfunction throwIfAborted (signal) {\n if (!signal) { return }\n if (typeof signal.throwIfAborted === 'function') {\n signal.throwIfAborted()\n } else {\n if (signal.aborted) {\n // DOMException not available < v17.0.0\n const err = new Error('The operation was aborted')\n err.name = 'AbortError'\n throw err\n }\n }\n}\n\nlet events\nfunction addAbortListener (signal, listener) {\n if (typeof Symbol.dispose === 'symbol') {\n if (!events) {\n events = require('events')\n }\n if (typeof events.addAbortListener === 'function' && 'aborted' in signal) {\n return events.addAbortListener(signal, listener)\n }\n }\n if ('addEventListener' in signal) {\n signal.addEventListener('abort', listener, { once: true })\n return () => signal.removeEventListener('abort', listener)\n }\n signal.addListener('abort', listener)\n return () => signal.removeListener('abort', listener)\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed\n\n/**\n * @param {string} val\n */\nfunction toUSVString (val) {\n if (hasToWellFormed) {\n return `${val}`.toWellFormed()\n } else if (nodeUtil.toUSVString) {\n return nodeUtil.toUSVString(val)\n }\n\n return `${val}`\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString,\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL,\n throwIfAborted,\n addAbortListener,\n nodeMajor,\n nodeMinor,\n nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13)\n}\n", "'use strict'\n\nlet fastNow = Date.now()\nlet fastNowTimeout\n\nconst fastTimers = []\n\nfunction onTimeout () {\n fastNow = Date.now()\n\n let len = fastTimers.length\n let idx = 0\n while (idx < len) {\n const timer = fastTimers[idx]\n\n if (timer.state === 0) {\n timer.state = fastNow + timer.delay\n } else if (timer.state > 0 && fastNow >= timer.state) {\n timer.state = -1\n timer.callback(timer.opaque)\n }\n\n if (timer.state === -1) {\n timer.state = -2\n if (idx !== len - 1) {\n fastTimers[idx] = fastTimers.pop()\n } else {\n fastTimers.pop()\n }\n len -= 1\n } else {\n idx += 1\n }\n }\n\n if (fastTimers.length > 0) {\n refreshTimeout()\n }\n}\n\nfunction refreshTimeout () {\n if (fastNowTimeout && fastNowTimeout.refresh) {\n fastNowTimeout.refresh()\n } else {\n clearTimeout(fastNowTimeout)\n fastNowTimeout = setTimeout(onTimeout, 1e3)\n if (fastNowTimeout.unref) {\n fastNowTimeout.unref()\n }\n }\n}\n\nclass Timeout {\n constructor (callback, delay, opaque) {\n this.callback = callback\n this.delay = delay\n this.opaque = opaque\n\n // -2 not in timer list\n // -1 in timer list but inactive\n // 0 in timer list waiting for time\n // > 0 in timer list waiting for time to expire\n this.state = -2\n\n this.refresh()\n }\n\n refresh () {\n if (this.state === -2) {\n fastTimers.push(this)\n if (!fastNowTimeout || fastTimers.length === 1) {\n refreshTimeout()\n }\n }\n\n this.state = 0\n }\n\n clear () {\n this.state = -1\n }\n}\n\nmodule.exports = {\n setTimeout (callback, delay, opaque) {\n return delay < 1e3\n ? setTimeout(callback, delay, opaque)\n : new Timeout(callback, delay, opaque)\n },\n clearTimeout (timeout) {\n if (timeout instanceof Timeout) {\n timeout.clear()\n } else {\n clearTimeout(timeout)\n }\n }\n}\n", "'use strict';\n\nfunction parseContentType(str) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n // Parse type\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 47/* '/' */ || i === 0)\n return;\n break;\n }\n }\n // Check for type without subtype\n if (i === str.length)\n return;\n\n const type = str.slice(0, i).toLowerCase();\n\n // Parse subtype\n const subtypeStart = ++i;\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n if (parseContentTypeParams(str, i, params) === undefined)\n return;\n break;\n }\n }\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n const subtype = str.slice(subtypeStart, i).toLowerCase();\n\n return { type, subtype, params };\n}\n\nfunction parseContentTypeParams(str, i, params) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 61/* '=' */)\n return;\n break;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n name = str.slice(nameStart, i);\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction parseDisposition(str, defDecoder) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (parseDispositionParams(str, i, params, defDecoder) === undefined)\n return;\n break;\n }\n }\n\n const type = str.slice(0, i).toLowerCase();\n\n return { type, params };\n}\n\nfunction parseDispositionParams(str, i, params, defDecoder) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code === 61/* '=' */)\n break;\n return;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n let charset;\n //~ let lang;\n name = str.slice(nameStart, i);\n if (name.charCodeAt(name.length - 1) === 42/* '*' */) {\n // Extended value\n\n const charsetStart = ++i;\n // Parse charset name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (CHARSET[code] !== 1) {\n if (code !== 39/* '\\'' */)\n return;\n break;\n }\n }\n\n // Incomplete charset (malformed)\n if (i === str.length)\n return;\n\n charset = str.slice(charsetStart, i);\n ++i; // Skip over the '\\''\n\n //~ const langStart = ++i;\n // Parse language name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 39/* '\\'' */)\n break;\n }\n\n // Incomplete language (malformed)\n if (i === str.length)\n return;\n\n //~ lang = str.slice(langStart, i);\n ++i; // Skip over the '\\''\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n valueStart = i;\n\n let encode = 0;\n // Parse value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (EXTENDED_VALUE[code] !== 1) {\n if (code === 37/* '%' */) {\n let hexUpper;\n let hexLower;\n if (i + 2 < str.length\n && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1\n && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) {\n const byteVal = (hexUpper << 4) + hexLower;\n value += str.slice(valueStart, i);\n value += String.fromCharCode(byteVal);\n i += 2;\n valueStart = i + 1;\n if (byteVal >= 128)\n encode = 2;\n else if (encode === 0)\n encode = 1;\n continue;\n }\n // '%' disallowed in non-percent encoded contexts (malformed)\n return;\n }\n break;\n }\n }\n\n value += str.slice(valueStart, i);\n value = convertToUTF8(value, charset, encode);\n if (value === undefined)\n return;\n } else {\n // Non-extended value\n\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n value = defDecoder(value, 2);\n if (value === undefined)\n return;\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction getDecoder(charset) {\n let lc;\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8;\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1;\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le;\n case 'base64':\n return decoders.base64;\n default:\n if (lc === undefined) {\n lc = true;\n charset = charset.toLowerCase();\n continue;\n }\n return decoders.other.bind(charset);\n }\n }\n}\n\nconst decoders = {\n utf8: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string') {\n // If `data` never had any percent-encoded bytes or never had any that\n // were outside of the ASCII range, then we can safely just return the\n // input since UTF-8 is ASCII compatible\n if (hint < 2)\n return data;\n\n data = Buffer.from(data, 'latin1');\n }\n return data.utf8Slice(0, data.length);\n },\n\n latin1: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n return data;\n return data.latin1Slice(0, data.length);\n },\n\n utf16le: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.ucs2Slice(0, data.length);\n },\n\n base64: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.base64Slice(0, data.length);\n },\n\n other: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n try {\n const decoder = new TextDecoder(this);\n return decoder.decode(data);\n } catch {}\n },\n};\n\nfunction convertToUTF8(data, charset, hint) {\n const decode = getDecoder(charset);\n if (decode)\n return decode(data, hint);\n}\n\nfunction basename(path) {\n if (typeof path !== 'string')\n return '';\n for (let i = path.length - 1; i >= 0; --i) {\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1);\n return (path === '..' || path === '.' ? '' : path);\n }\n }\n return (path === '..' || path === '.' ? '' : path);\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst QDTEXT = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nconst CHARSET = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst EXTENDED_VALUE = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n};\n", "'use strict';\n/*\n Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n*/\nfunction memcmp(buf1, pos1, buf2, pos2, num) {\n for (let i = 0; i < num; ++i) {\n if (buf1[pos1 + i] !== buf2[pos2 + i])\n return false;\n }\n return true;\n}\n\nclass SBMH {\n constructor(needle, cb) {\n if (typeof cb !== 'function')\n throw new Error('Missing match callback');\n\n if (typeof needle === 'string')\n needle = Buffer.from(needle);\n else if (!Buffer.isBuffer(needle))\n throw new Error(`Expected Buffer for needle, got ${typeof needle}`);\n\n const needleLen = needle.length;\n\n this.maxMatches = Infinity;\n this.matches = 0;\n\n this._cb = cb;\n this._lookbehindSize = 0;\n this._needle = needle;\n this._bufPos = 0;\n\n this._lookbehind = Buffer.allocUnsafe(needleLen);\n\n // Initialize occurrence table.\n this._occ = [\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen\n ];\n\n // Populate occurrence table with analysis of the needle, ignoring the last\n // letter.\n if (needleLen > 1) {\n for (let i = 0; i < needleLen - 1; ++i)\n this._occ[needle[i]] = needleLen - 1 - i;\n }\n }\n\n reset() {\n this.matches = 0;\n this._lookbehindSize = 0;\n this._bufPos = 0;\n }\n\n push(chunk, pos) {\n let result;\n if (!Buffer.isBuffer(chunk))\n chunk = Buffer.from(chunk, 'latin1');\n const chunkLen = chunk.length;\n this._bufPos = pos || 0;\n while (result !== chunkLen && this.matches < this.maxMatches)\n result = feed(this, chunk);\n return result;\n }\n\n destroy() {\n const lbSize = this._lookbehindSize;\n if (lbSize)\n this._cb(false, this._lookbehind, 0, lbSize, false);\n this.reset();\n }\n}\n\nfunction feed(self, data) {\n const len = data.length;\n const needle = self._needle;\n const needleLen = needle.length;\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehindSize - 2]\n let pos = -self._lookbehindSize;\n const lastNeedleCharPos = needleLen - 1;\n const lastNeedleChar = needle[lastNeedleCharPos];\n const end = len - needleLen;\n const occ = self._occ;\n const lookbehind = self._lookbehind;\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= end) {\n const nextPos = pos + lastNeedleCharPos;\n const ch = (nextPos < 0\n ? lookbehind[self._lookbehindSize + nextPos]\n : data[nextPos]);\n\n if (ch === lastNeedleChar\n && matchNeedle(self, data, pos, lastNeedleCharPos)) {\n self._lookbehindSize = 0;\n ++self.matches;\n if (pos > -self._lookbehindSize)\n self._cb(true, lookbehind, 0, self._lookbehindSize + pos, false);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // No match.\n\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !matchNeedle(self, data, pos, len - pos))\n ++pos;\n\n if (pos < 0) {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = self._lookbehindSize + pos;\n\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n self._cb(false, lookbehind, 0, bytesToCutOff, false);\n }\n\n self._lookbehindSize -= bytesToCutOff;\n lookbehind.copy(lookbehind, 0, bytesToCutOff, self._lookbehindSize);\n lookbehind.set(data, self._lookbehindSize);\n self._lookbehindSize += len;\n\n self._bufPos = len;\n return len;\n }\n\n // Discard lookbehind buffer.\n self._cb(false, lookbehind, 0, self._lookbehindSize, false);\n self._lookbehindSize = 0;\n }\n\n pos += self._bufPos;\n\n const firstNeedleChar = needle[0];\n\n // Lookbehind buffer is now empty. Perform Boyer-Moore-Horspool\n // search with optimized character lookup code that only considers\n // the current round's haystack data.\n while (pos <= end) {\n const ch = data[pos + lastNeedleCharPos];\n\n if (ch === lastNeedleChar\n && data[pos] === firstNeedleChar\n && memcmp(needle, 0, data, pos, lastNeedleCharPos)) {\n ++self.matches;\n if (pos > 0)\n self._cb(true, data, self._bufPos, pos, true);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (pos < len) {\n if (data[pos] !== firstNeedleChar\n || !memcmp(data, pos, needle, 0, len - pos)) {\n ++pos;\n continue;\n }\n data.copy(lookbehind, 0, pos, len);\n self._lookbehindSize = len - pos;\n break;\n }\n\n // Everything until `pos` is guaranteed not to contain needle data.\n if (pos > 0)\n self._cb(false, data, self._bufPos, pos < len ? pos : len, true);\n\n self._bufPos = len;\n return len;\n}\n\nfunction matchNeedle(self, data, pos, len) {\n const lb = self._lookbehind;\n const lbSize = self._lookbehindSize;\n const needle = self._needle;\n\n for (let i = 0; i < len; ++i, ++pos) {\n const ch = (pos < 0 ? lb[lbSize + pos] : data[pos]);\n if (ch !== needle[i])\n return false;\n }\n return true;\n}\n\nmodule.exports = SBMH;\n", "'use strict';\n\nconst { Readable, Writable } = require('stream');\n\nconst StreamSearch = require('streamsearch');\n\nconst {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n} = require('../utils.js');\n\nconst BUF_CRLF = Buffer.from('\\r\\n');\nconst BUF_CR = Buffer.from('\\r');\nconst BUF_DASH = Buffer.from('-');\n\nfunction noop() {}\n\nconst MAX_HEADER_PAIRS = 2000; // From node\nconst MAX_HEADER_SIZE = 16 * 1024; // From node (its default value)\n\nconst HPARSER_NAME = 0;\nconst HPARSER_PRE_OWS = 1;\nconst HPARSER_VALUE = 2;\nclass HeaderParser {\n constructor(cb) {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n this.cb = cb;\n }\n\n reset() {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n }\n\n push(chunk, pos, end) {\n let start = pos;\n while (pos < end) {\n switch (this.state) {\n case HPARSER_NAME: {\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (TOKEN[code] !== 1) {\n if (code !== 58/* ':' */)\n return -1;\n this.name += chunk.latin1Slice(start, pos);\n if (this.name.length === 0)\n return -1;\n ++pos;\n done = true;\n this.state = HPARSER_PRE_OWS;\n break;\n }\n }\n if (!done) {\n this.name += chunk.latin1Slice(start, pos);\n break;\n }\n // FALLTHROUGH\n }\n case HPARSER_PRE_OWS: {\n // Skip optional whitespace\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */) {\n start = pos;\n done = true;\n this.state = HPARSER_VALUE;\n break;\n }\n }\n if (!done)\n break;\n // FALLTHROUGH\n }\n case HPARSER_VALUE:\n switch (this.crlf) {\n case 0: // Nothing yet\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (FIELD_VCHAR[code] !== 1) {\n if (code !== 13/* '\\r' */)\n return -1;\n ++this.crlf;\n break;\n }\n }\n this.value += chunk.latin1Slice(start, pos++);\n break;\n case 1: // Received CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n ++this.crlf;\n break;\n case 2: { // Received CR LF\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code === 32/* ' ' */ || code === 9/* '\\t' */) {\n // Folded value\n start = pos;\n this.crlf = 0;\n } else {\n if (++this.pairCount < MAX_HEADER_PAIRS) {\n this.name = this.name.toLowerCase();\n if (this.header[this.name] === undefined)\n this.header[this.name] = [this.value];\n else\n this.header[this.name].push(this.value);\n }\n if (code === 13/* '\\r' */) {\n ++this.crlf;\n ++pos;\n } else {\n // Assume start of next header field name\n start = pos;\n this.crlf = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n }\n }\n break;\n }\n case 3: { // Received CR LF CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n // End of header\n const header = this.header;\n this.reset();\n this.cb(header);\n return pos;\n }\n }\n break;\n }\n }\n\n return pos;\n }\n}\n\nclass FileStream extends Readable {\n constructor(opts, owner) {\n super(opts);\n this.truncated = false;\n this._readcb = null;\n this.once('end', () => {\n // We need to make sure that we call any outstanding _writecb() that is\n // associated with this file so that processing of the rest of the form\n // can continue. This may not happen if the file stream ends right after\n // backpressure kicks in, so we force it here.\n this._read();\n if (--owner._fileEndsLeft === 0 && owner._finalcb) {\n const cb = owner._finalcb;\n owner._finalcb = null;\n // Make sure other 'end' event handlers get a chance to be executed\n // before busboy's 'finish' event is emitted\n process.nextTick(cb);\n }\n });\n }\n _read(n) {\n const cb = this._readcb;\n if (cb) {\n this._readcb = null;\n cb();\n }\n }\n}\n\nconst ignoreData = {\n push: (chunk, pos) => {},\n destroy: () => {},\n};\n\nfunction callAndUnsetCb(self, err) {\n const cb = self._writecb;\n self._writecb = null;\n if (err)\n self.destroy(err);\n else if (cb)\n cb();\n}\n\nfunction nullDecoder(val, hint) {\n return val;\n}\n\nclass Multipart extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n if (!cfg.conType.params || typeof cfg.conType.params.boundary !== 'string')\n throw new Error('Multipart: Boundary not found');\n\n const boundary = cfg.conType.params.boundary;\n const paramDecoder = (typeof cfg.defParamCharset === 'string'\n && cfg.defParamCharset\n ? getDecoder(cfg.defParamCharset)\n : nullDecoder);\n const defCharset = (cfg.defCharset || 'utf8');\n const preservePath = cfg.preservePath;\n const fileOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.fileHwm === 'number'\n ? cfg.fileHwm\n : undefined),\n };\n\n const limits = cfg.limits;\n const fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n const fileSizeLimit = (limits && typeof limits.fileSize === 'number'\n ? limits.fileSize\n : Infinity);\n const filesLimit = (limits && typeof limits.files === 'number'\n ? limits.files\n : Infinity);\n const fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n const partsLimit = (limits && typeof limits.parts === 'number'\n ? limits.parts\n : Infinity);\n\n let parts = -1; // Account for initial boundary\n let fields = 0;\n let files = 0;\n let skipPart = false;\n\n this._fileEndsLeft = 0;\n this._fileStream = undefined;\n this._complete = false;\n let fileSize = 0;\n\n let field;\n let fieldSize = 0;\n let partCharset;\n let partEncoding;\n let partType;\n let partName;\n let partTruncated = false;\n\n let hitFilesLimit = false;\n let hitFieldsLimit = false;\n\n this._hparser = null;\n const hparser = new HeaderParser((header) => {\n this._hparser = null;\n skipPart = false;\n\n partType = 'text/plain';\n partCharset = defCharset;\n partEncoding = '7bit';\n partName = undefined;\n partTruncated = false;\n\n let filename;\n if (!header['content-disposition']) {\n skipPart = true;\n return;\n }\n\n const disp = parseDisposition(header['content-disposition'][0],\n paramDecoder);\n if (!disp || disp.type !== 'form-data') {\n skipPart = true;\n return;\n }\n\n if (disp.params) {\n if (disp.params.name)\n partName = disp.params.name;\n\n if (disp.params['filename*'])\n filename = disp.params['filename*'];\n else if (disp.params.filename)\n filename = disp.params.filename;\n\n if (filename !== undefined && !preservePath)\n filename = basename(filename);\n }\n\n if (header['content-type']) {\n const conType = parseContentType(header['content-type'][0]);\n if (conType) {\n partType = `${conType.type}/${conType.subtype}`;\n if (conType.params && typeof conType.params.charset === 'string')\n partCharset = conType.params.charset.toLowerCase();\n }\n }\n\n if (header['content-transfer-encoding'])\n partEncoding = header['content-transfer-encoding'][0].toLowerCase();\n\n if (partType === 'application/octet-stream' || filename !== undefined) {\n // File\n\n if (files === filesLimit) {\n if (!hitFilesLimit) {\n hitFilesLimit = true;\n this.emit('filesLimit');\n }\n skipPart = true;\n return;\n }\n ++files;\n\n if (this.listenerCount('file') === 0) {\n skipPart = true;\n return;\n }\n\n fileSize = 0;\n this._fileStream = new FileStream(fileOpts, this);\n ++this._fileEndsLeft;\n this.emit(\n 'file',\n partName,\n this._fileStream,\n { filename,\n encoding: partEncoding,\n mimeType: partType }\n );\n } else {\n // Non-file\n\n if (fields === fieldsLimit) {\n if (!hitFieldsLimit) {\n hitFieldsLimit = true;\n this.emit('fieldsLimit');\n }\n skipPart = true;\n return;\n }\n ++fields;\n\n if (this.listenerCount('field') === 0) {\n skipPart = true;\n return;\n }\n\n field = [];\n fieldSize = 0;\n }\n });\n\n let matchPostBoundary = 0;\n const ssCb = (isMatch, data, start, end, isDataSafe) => {\nretrydata:\n while (data) {\n if (this._hparser !== null) {\n const ret = this._hparser.push(data, start, end);\n if (ret === -1) {\n this._hparser = null;\n hparser.reset();\n this.emit('error', new Error('Malformed part header'));\n break;\n }\n start = ret;\n }\n\n if (start === end)\n break;\n\n if (matchPostBoundary !== 0) {\n if (matchPostBoundary === 1) {\n switch (data[start]) {\n case 45: // '-'\n // Try matching '--' after boundary\n matchPostBoundary = 2;\n ++start;\n break;\n case 13: // '\\r'\n // Try matching CR LF before header\n matchPostBoundary = 3;\n ++start;\n break;\n default:\n matchPostBoundary = 0;\n }\n if (start === end)\n return;\n }\n\n if (matchPostBoundary === 2) {\n matchPostBoundary = 0;\n if (data[start] === 45/* '-' */) {\n // End of multipart data\n this._complete = true;\n this._bparser = ignoreData;\n return;\n }\n // We saw something other than '-', so put the dash we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_DASH, 0, 1, false);\n this._writecb = writecb;\n } else if (matchPostBoundary === 3) {\n matchPostBoundary = 0;\n if (data[start] === 10/* '\\n' */) {\n ++start;\n if (parts >= partsLimit)\n break;\n // Prepare the header parser\n this._hparser = hparser;\n if (start === end)\n break;\n // Process the remaining data as a header\n continue retrydata;\n } else {\n // We saw something other than LF, so put the CR we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_CR, 0, 1, false);\n this._writecb = writecb;\n }\n }\n }\n\n if (!skipPart) {\n if (this._fileStream) {\n let chunk;\n const actualLen = Math.min(end - start, fileSizeLimit - fileSize);\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fileSize += chunk.length;\n if (fileSize === fileSizeLimit) {\n if (chunk.length > 0)\n this._fileStream.push(chunk);\n this._fileStream.emit('limit');\n this._fileStream.truncated = true;\n skipPart = true;\n } else if (!this._fileStream.push(chunk)) {\n if (this._writecb)\n this._fileStream._readcb = this._writecb;\n this._writecb = null;\n }\n } else if (field !== undefined) {\n let chunk;\n const actualLen = Math.min(\n end - start,\n fieldSizeLimit - fieldSize\n );\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fieldSize += actualLen;\n field.push(chunk);\n if (fieldSize === fieldSizeLimit) {\n skipPart = true;\n partTruncated = true;\n }\n }\n }\n\n break;\n }\n\n if (isMatch) {\n matchPostBoundary = 1;\n\n if (this._fileStream) {\n // End the active file stream if the previous part was a file\n this._fileStream.push(null);\n this._fileStream = null;\n } else if (field !== undefined) {\n let data;\n switch (field.length) {\n case 0:\n data = '';\n break;\n case 1:\n data = convertToUTF8(field[0], partCharset, 0);\n break;\n default:\n data = convertToUTF8(\n Buffer.concat(field, fieldSize),\n partCharset,\n 0\n );\n }\n field = undefined;\n fieldSize = 0;\n this.emit(\n 'field',\n partName,\n data,\n { nameTruncated: false,\n valueTruncated: partTruncated,\n encoding: partEncoding,\n mimeType: partType }\n );\n }\n\n if (++parts === partsLimit)\n this.emit('partsLimit');\n }\n };\n this._bparser = new StreamSearch(`\\r\\n--${boundary}`, ssCb);\n\n this._writecb = null;\n this._finalcb = null;\n\n // Just in case there is no preamble\n this.write(BUF_CRLF);\n }\n\n static detect(conType) {\n return (conType.type === 'multipart' && conType.subtype === 'form-data');\n }\n\n _write(chunk, enc, cb) {\n this._writecb = cb;\n this._bparser.push(chunk, 0);\n if (this._writecb)\n callAndUnsetCb(this);\n }\n\n _destroy(err, cb) {\n this._hparser = null;\n this._bparser = ignoreData;\n if (!err)\n err = checkEndState(this);\n const fileStream = this._fileStream;\n if (fileStream) {\n this._fileStream = null;\n fileStream.destroy(err);\n }\n cb(err);\n }\n\n _final(cb) {\n this._bparser.destroy();\n if (!this._complete)\n return cb(new Error('Unexpected end of form'));\n if (this._fileEndsLeft)\n this._finalcb = finalcb.bind(null, this, cb);\n else\n finalcb(this, cb);\n }\n}\n\nfunction finalcb(self, cb, err) {\n if (err)\n return cb(err);\n err = checkEndState(self);\n cb(err);\n}\n\nfunction checkEndState(self) {\n if (self._hparser)\n return new Error('Malformed part header');\n const fileStream = self._fileStream;\n if (fileStream) {\n self._fileStream = null;\n fileStream.destroy(new Error('Unexpected end of file'));\n }\n if (!self._complete)\n return new Error('Unexpected end of form');\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst FIELD_VCHAR = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nmodule.exports = Multipart;\n", "'use strict';\n\nconst { Writable } = require('stream');\n\nconst { getDecoder } = require('../utils.js');\n\nclass URLEncoded extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n let charset = (cfg.defCharset || 'utf8');\n if (cfg.conType.params && typeof cfg.conType.params.charset === 'string')\n charset = cfg.conType.params.charset;\n\n this.charset = charset;\n\n const limits = cfg.limits;\n this.fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n this.fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n this.fieldNameSizeLimit = (\n limits && typeof limits.fieldNameSize === 'number'\n ? limits.fieldNameSize\n : 100\n );\n\n this._inKey = true;\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n this._fields = 0;\n this._key = '';\n this._val = '';\n this._byte = -2;\n this._lastPos = 0;\n this._encode = 0;\n this._decoder = getDecoder(charset);\n }\n\n static detect(conType) {\n return (conType.type === 'application'\n && conType.subtype === 'x-www-form-urlencoded');\n }\n\n _write(chunk, enc, cb) {\n if (this._fields >= this.fieldsLimit)\n return cb();\n\n let i = 0;\n const len = chunk.length;\n this._lastPos = 0;\n\n // Check if we last ended mid-percent-encoded byte\n if (this._byte !== -2) {\n i = readPctEnc(this, chunk, i, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n if (this._inKey)\n ++this._bytesKey;\n else\n ++this._bytesVal;\n }\n\nmain:\n while (i < len) {\n if (this._inKey) {\n // Parsing key\n\n i = skipKeyBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 61: // '='\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n this._inKey = false;\n continue main;\n case 38: // '&'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0) {\n this.emit(\n 'field',\n this._key,\n '',\n { nameTruncated: this._keyTrunc,\n valueTruncated: false,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue;\n case 43: // '+'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._key += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n } else {\n // Parsing value\n\n i = skipValBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 38: // '&'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._inKey = true;\n this._val = this._decoder(this._val, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0 || this._bytesVal > 0) {\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue main;\n case 43: // '+'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._val += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n }\n }\n\n cb();\n }\n\n _final(cb) {\n if (this._byte !== -2)\n return cb(new Error('Malformed urlencoded form'));\n if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) {\n if (this._inKey)\n this._key = this._decoder(this._key, this._encode);\n else\n this._val = this._decoder(this._val, this._encode);\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n cb();\n }\n}\n\nfunction readPctEnc(self, chunk, pos, len) {\n if (pos >= len)\n return len;\n\n if (self._byte === -1) {\n // We saw a '%' but no hex characters yet\n const hexUpper = HEX_VALUES[chunk[pos++]];\n if (hexUpper === -1)\n return -1;\n\n if (hexUpper >= 8)\n self._encode = 2; // Indicate high bits detected\n\n if (pos < len) {\n // Both hex characters are in this chunk\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((hexUpper << 4) + hexLower);\n else\n self._val += String.fromCharCode((hexUpper << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n } else {\n // Only one hex character was available in this chunk\n self._byte = hexUpper;\n }\n } else {\n // We saw only one hex character so far\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((self._byte << 4) + hexLower);\n else\n self._val += String.fromCharCode((self._byte << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipKeyBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesKey > self.fieldNameSizeLimit) {\n if (!self._keyTrunc) {\n if (self._lastPos < pos)\n self._key += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._keyTrunc = true;\n for (; pos < len; ++pos) {\n const code = chunk[pos];\n if (code === 61/* '=' */ || code === 38/* '&' */)\n break;\n ++self._bytesKey;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipValBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesVal > self.fieldSizeLimit) {\n if (!self._valTrunc) {\n if (self._lastPos < pos)\n self._val += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._valTrunc = true;\n for (; pos < len; ++pos) {\n if (chunk[pos] === 38/* '&' */)\n break;\n ++self._bytesVal;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = URLEncoded;\n", "'use strict';\n\nconst { parseContentType } = require('./utils.js');\n\nfunction getInstance(cfg) {\n const headers = cfg.headers;\n const conType = parseContentType(headers['content-type']);\n if (!conType)\n throw new Error('Malformed content type');\n\n for (const type of TYPES) {\n const matched = type.detect(conType);\n if (!matched)\n continue;\n\n const instanceCfg = {\n limits: cfg.limits,\n headers,\n conType,\n highWaterMark: undefined,\n fileHwm: undefined,\n defCharset: undefined,\n defParamCharset: undefined,\n preservePath: false,\n };\n if (cfg.highWaterMark)\n instanceCfg.highWaterMark = cfg.highWaterMark;\n if (cfg.fileHwm)\n instanceCfg.fileHwm = cfg.fileHwm;\n instanceCfg.defCharset = cfg.defCharset;\n instanceCfg.defParamCharset = cfg.defParamCharset;\n instanceCfg.preservePath = cfg.preservePath;\n return new type(instanceCfg);\n }\n\n throw new Error(`Unsupported content type: ${headers['content-type']}`);\n}\n\n// Note: types are explicitly listed here for easier bundling\n// See: https://github.com/mscdex/busboy/issues/121\nconst TYPES = [\n require('./types/multipart'),\n require('./types/urlencoded'),\n].filter(function(typemod) { return typeof typemod.detect === 'function'; });\n\nmodule.exports = (cfg) => {\n if (typeof cfg !== 'object' || cfg === null)\n cfg = {};\n\n if (typeof cfg.headers !== 'object'\n || cfg.headers === null\n || typeof cfg.headers['content-type'] !== 'string') {\n throw new Error('Missing Content-Type');\n }\n\n return getInstance(cfg);\n};\n", "'use strict'\n\nconst { MessageChannel, receiveMessageOnPort } = require('worker_threads')\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\n// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\n// https://fetch.spec.whatwg.org/#request-body-header-name\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type',\n // See https://github.com/nodejs/undici/issues/2021\n // 'Content-Length' is a forbidden header name, which is typically\n // removed in the Headers implementation. However, undici doesn't\n // filter out headers, so we add it here.\n 'content-length'\n]\n\n// https://fetch.spec.whatwg.org/#enumdef-requestduplex\nconst requestDuplex = [\n 'half'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nlet channel\n\n/** @type {globalThis['structuredClone']} */\nconst structuredClone =\n globalThis.structuredClone ??\n // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n // structuredClone was added in v17.0.0, but fetch supports v16.8\n function structuredClone (value, options = undefined) {\n if (arguments.length === 0) {\n throw new TypeError('missing argument')\n }\n\n if (!channel) {\n channel = new MessageChannel()\n }\n channel.port1.unref()\n channel.port2.unref()\n channel.port1.postMessage(value, options?.transfer)\n return receiveMessageOnPort(channel.port2).message\n }\n\nmodule.exports = {\n DOMException,\n structuredClone,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods,\n badPorts,\n requestDuplex\n}\n", "'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (\n newOrigin !== undefined &&\n typeof newOrigin !== 'string' &&\n !(newOrigin instanceof URL)\n ) {\n throw new Error('Invalid base url')\n }\n\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n", "'use strict'\n\nconst { redirectStatus, badPorts, referrerPolicy: referrerPolicyTokens } = require('./constants')\nconst { getGlobalOrigin } = require('./global')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response\u2019s URL list and null if response\u2019s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response\u2019s status is not a redirect status, then return null.\n if (!redirectStatus.includes(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response\u2019s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a header value, then set location to the result of\n // parsing location with response\u2019s URL.\n if (location !== null && isValidHeaderValue(location)) {\n location = new URL(location, responseURL(response))\n }\n\n // 4. If location is a URL whose fragment is null, then set location\u2019s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request\u2019s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url\u2019s scheme is an HTTP(S) scheme and url\u2019s port is a bad port,\n // then return blocked.\n if (urlIsHttpHttpsScheme(url) && badPorts.includes(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\nfunction isTokenChar (c) {\n return !(\n c >= 0x7f ||\n c <= 0x20 ||\n c === '(' ||\n c === ')' ||\n c === '<' ||\n c === '>' ||\n c === '@' ||\n c === ',' ||\n c === ';' ||\n c === ':' ||\n c === '\\\\' ||\n c === '\"' ||\n c === '/' ||\n c === '[' ||\n c === ']' ||\n c === '?' ||\n c === '=' ||\n c === '{' ||\n c === '}'\n )\n}\n\n// See RFC 7230, Section 3.2.6.\n// https://github.com/chromium/chromium/blob/d7da0240cae77824d1eda25745c4022757499131/third_party/blink/renderer/platform/network/http_parsers.cc#L321\nfunction isValidHTTPToken (characters) {\n if (!characters || typeof characters !== 'string') {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n const c = characters.charCodeAt(i)\n if (c > 0x7f || !isTokenChar(c)) {\n return false\n }\n }\n return true\n}\n\n// https://fetch.spec.whatwg.org/#header-name\n// https://github.com/chromium/chromium/blob/b3d37e6f94f87d59e44662d6078f6a12de845d17/net/http/http_util.cc#L342\nfunction isValidHeaderName (potentialValue) {\n if (potentialValue.length === 0) {\n return false\n }\n\n return isValidHTTPToken(potentialValue)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request\u2019s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing \u00A7 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n\n // 8.1 Parse a referrer policy from a Referrer-Policy header\n // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response\u2019s header list.\n const { headersList } = actualResponse\n // 2. Let policy be the empty string.\n // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.\n // 4. Return policy.\n const policyHeader = (headersList.get('referrer-policy') ?? '').split(',')\n\n // Note: As the referrer-policy can contain multiple policies\n // separated by comma, we need to loop through all of them\n // and pick the first valid one.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n let policy = ''\n if (policyHeader.length > 0) {\n // The right-most policy takes precedence.\n // The left-most policy is the fallback.\n for (let i = policyHeader.length; i !== 0; i--) {\n const token = policyHeader[i - 1].trim()\n if (referrerPolicyTokens.includes(token)) {\n policy = token\n break\n }\n }\n }\n\n // 2. If policy is not the empty string, then set request\u2019s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r\u2019s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header\u2019s value to r\u2019s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r\u2019s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request\u2019s response tainting is \"cors\" or request\u2019s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request\u2019s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request\u2019s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request\u2019s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request\u2019s origin is a tuple origin, its scheme is \"https\", and request\u2019s current URL\u2019s scheme is not \"https\", then set serializedOrigin to `null`.\n if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request\u2019s origin is not same origin with request\u2019s current URL\u2019s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request\u2019s header list.\n request.headersList.append('origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // Note: the fetch spec doesn't make use of embedder policy or CSP list\n return {\n referrerPolicy: 'strict-origin-when-cross-origin'\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer (policyContainer) {\n return {\n referrerPolicy: policyContainer.referrerPolicy\n }\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Note: policy cannot (shouldn't) be null or an empty string.\n assert(policy)\n\n // 2. Let environment be request\u2019s client.\n\n let referrerSource = null\n\n // 3. Switch on request\u2019s referrer:\n if (request.referrer === 'client') {\n // Note: node isn't a browser and doesn't implement document/iframes,\n // so we bypass this step and replace it with our own.\n\n const globalOrigin = getGlobalOrigin()\n\n if (!globalOrigin || globalOrigin.origin === 'null') {\n return 'no-referrer'\n }\n\n // note: we need to clone it as it's mutated\n referrerSource = new URL(globalOrigin)\n } else if (request.referrer instanceof URL) {\n // Let referrerSource be request\u2019s referrer.\n referrerSource = request.referrer\n }\n\n // 4. Let request\u2019s referrerURL be the result of stripping referrerSource for\n // use as a referrer.\n let referrerURL = stripURLForReferrer(referrerSource)\n\n // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n // a referrer, with the origin-only flag set to true.\n const referrerOrigin = stripURLForReferrer(referrerSource, true)\n\n // 6. If the result of serializing referrerURL is a string whose length is\n // greater than 4096, set referrerURL to referrerOrigin.\n if (referrerURL.toString().length > 4096) {\n referrerURL = referrerOrigin\n }\n\n const areSameOrigin = sameOrigin(request, referrerURL)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerURL\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerURL : referrerOrigin\n case 'strict-origin-when-cross-origin': {\n const currentURL = requestCurrentURL(request)\n\n // 1. If the origin of referrerURL and the origin of request\u2019s current\n // URL are the same, then return referrerURL.\n if (sameOrigin(referrerURL, currentURL)) {\n return referrerURL\n }\n\n // 2. If referrerURL is a potentially trustworthy URL and request\u2019s\n // current URL is not a potentially trustworthy URL, then return no\n // referrer.\n if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n return 'no-referrer'\n }\n\n // 3. Return referrerOrigin.\n return referrerOrigin\n }\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n * @param {URL} url\n * @param {boolean|undefined} originOnly\n */\nfunction stripURLForReferrer (url, originOnly) {\n // 1. Assert: url is a URL.\n assert(url instanceof URL)\n\n // 2. If url\u2019s scheme is a local scheme, then return no referrer.\n if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n return 'no-referrer'\n }\n\n // 3. Set url\u2019s username to the empty string.\n url.username = ''\n\n // 4. Set url\u2019s password to the empty string.\n url.password = ''\n\n // 5. Set url\u2019s fragment to null.\n url.hash = ''\n\n // 6. If the origin-only flag is true, then:\n if (originOnly) {\n // 1. Set url\u2019s path to \u00AB the empty string \u00BB.\n url.pathname = ''\n\n // 2. Set url\u2019s query to null.\n url.search = ''\n }\n\n // 7. Return url.\n return url\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 4. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n const list = parsedMetadata.sort((c, d) => d.algo.localeCompare(c.algo))\n // get the strongest algorithm\n const strongest = list[0].algo\n // get all entries that use the strongest algorithm; ignore weaker\n const metadata = list.filter((item) => item.algo === strongest)\n\n // 5. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n const actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (actualValue === expectedValue) {\n return true\n }\n }\n\n // 6. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// https://www.w3.org/TR/CSP2/#source-list-syntax\n// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\\x21-\\x7e]?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n const supportedHashes = crypto.getHashes()\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (parsedToken === null || parsedToken.groups === undefined) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm.toLowerCase())) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n if (A.origin === B.origin && A.origin === 'null') {\n return true\n }\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\n// https://fetch.spec.whatwg.org/#concept-method-normalize\nfunction normalizeMethod (method) {\n return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method)\n ? method.toUpperCase()\n : method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, \u00AB value \u00BB).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n/**\n * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n * @param {() => unknown[]} iterator\n * @param {string} name name of the instance\n * @param {'key'|'value'|'key+value'} kind\n */\nfunction makeIterator (iterator, name, kind) {\n const object = {\n index: 0,\n kind,\n target: iterator\n }\n\n const i = {\n next () {\n // 1. Let interface be the interface for which the iterator prototype object exists.\n\n // 2. Let thisValue be the this value.\n\n // 3. Let object be ? ToObject(thisValue).\n\n // 4. If object is a platform object, then perform a security\n // check, passing:\n\n // 5. If object is not a default iterator object for interface,\n // then throw a TypeError.\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n // 6. Let index be object\u2019s index.\n // 7. Let kind be object\u2019s kind.\n // 8. Let values be object\u2019s target's value pairs to iterate over.\n const { index, kind, target } = object\n const values = target()\n\n // 9. Let len be the length of values.\n const len = values.length\n\n // 10. If index is greater than or equal to len, then return\n // CreateIterResultObject(undefined, true).\n if (index >= len) {\n return { value: undefined, done: true }\n }\n\n // 11. Let pair be the entry in values at index index.\n const pair = values[index]\n\n // 12. Set object\u2019s index to index + 1.\n object.index = index + 1\n\n // 13. Return the iterator result for pair and kind.\n return iteratorResult(pair, kind)\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n// https://webidl.spec.whatwg.org/#iterator-result\nfunction iteratorResult (pair, kind) {\n let result\n\n // 1. Let result be a value determined by the value of kind:\n switch (kind) {\n case 'key': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 3. result is key.\n result = pair[0]\n break\n }\n case 'value': {\n // 1. Let idlValue be pair\u2019s value.\n // 2. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 3. result is value.\n result = pair[1]\n break\n }\n case 'key+value': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let idlValue be pair\u2019s value.\n // 3. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 4. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 5. Let array be ! ArrayCreate(2).\n // 6. Call ! CreateDataProperty(array, \"0\", key).\n // 7. Call ! CreateDataProperty(array, \"1\", value).\n // 8. result is array.\n result = pair\n break\n }\n }\n\n // 2. Return CreateIterResultObject(result, false).\n return { value: result, done: false }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nfunction fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let successSteps given a byte sequence bytes be to queue a\n // fetch task to run processBody given bytes, with taskDestination.\n const successSteps = (bytes) => queueMicrotask(() => processBody(bytes))\n\n // 3. Let errorSteps be to queue a fetch task to run processBodyError,\n // with taskDestination.\n const errorSteps = (error) => queueMicrotask(() => processBodyError(error))\n\n // 4. Let reader be the result of getting a reader for body\u2019s stream.\n // If that threw an exception, then run errorSteps with that\n // exception and return.\n let reader\n\n try {\n reader = body.stream.getReader()\n } catch (e) {\n errorSteps(e)\n return\n }\n\n // 5. Read all bytes from reader, given successSteps and errorSteps.\n readAllBytes(reader, successSteps, errorSteps)\n}\n\n/** @type {ReadableStream} */\nlet ReadableStream = globalThis.ReadableStream\n\nfunction isReadableStreamLike (stream) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n return stream instanceof ReadableStream || (\n stream[Symbol.toStringTag] === 'ReadableStream' &&\n typeof stream.tee === 'function'\n )\n}\n\nconst MAXIMUM_ARGUMENT_LENGTH = 65535\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-decode\n * @param {number[]|Uint8Array} input\n */\nfunction isomorphicDecode (input) {\n // 1. To isomorphic decode a byte sequence input, return a string whose code point\n // length is equal to input\u2019s length and whose code points have the same values\n // as the values of input\u2019s bytes, in the same order.\n\n if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n return String.fromCharCode(...input)\n }\n\n return input.reduce((previous, current) => previous + String.fromCharCode(current), '')\n}\n\n/**\n * @param {ReadableStreamController<Uint8Array>} controller\n */\nfunction readableStreamClose (controller) {\n try {\n controller.close()\n } catch (err) {\n // TODO: add comment explaining why this error occurs.\n if (!err.message.includes('Controller is already closed')) {\n throw err\n }\n }\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-encode\n * @param {string} input\n */\nfunction isomorphicEncode (input) {\n // 1. Assert: input contains no code points greater than U+00FF.\n for (let i = 0; i < input.length; i++) {\n assert(input.charCodeAt(i) <= 0xFF)\n }\n\n // 2. Return a byte sequence whose length is equal to input\u2019s code\n // point length and whose bytes have the same values as the\n // values of input\u2019s code points, in the same order\n return input\n}\n\n/**\n * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n * @see https://streams.spec.whatwg.org/#read-loop\n * @param {ReadableStreamDefaultReader} reader\n * @param {(bytes: Uint8Array) => void} successSteps\n * @param {(error: Error) => void} failureSteps\n */\nasync function readAllBytes (reader, successSteps, failureSteps) {\n const bytes = []\n let byteLength = 0\n\n while (true) {\n let done\n let chunk\n\n try {\n ({ done, value: chunk } = await reader.read())\n } catch (e) {\n // 1. Call failureSteps with e.\n failureSteps(e)\n return\n }\n\n if (done) {\n // 1. Call successSteps with bytes.\n successSteps(Buffer.concat(bytes, byteLength))\n return\n }\n\n // 1. If chunk is not a Uint8Array object, call failureSteps\n // with a TypeError and abort these steps.\n if (!isUint8Array(chunk)) {\n failureSteps(new TypeError('Received non-Uint8Array chunk'))\n return\n }\n\n // 2. Append the bytes represented by chunk to bytes.\n bytes.push(chunk)\n byteLength += chunk.length\n\n // 3. Read-loop given reader, bytes, successSteps, and failureSteps.\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#is-local\n * @param {URL} url\n */\nfunction urlIsLocal (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n}\n\n/**\n * @param {string|URL} url\n */\nfunction urlHasHttpsScheme (url) {\n if (typeof url === 'string') {\n return url.startsWith('https:')\n }\n\n return url.protocol === 'https:'\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-scheme\n * @param {URL} url\n */\nfunction urlIsHttpHttpsScheme (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'http:' || protocol === 'https:'\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch,\n isReadableStreamLike,\n readableStreamClose,\n isomorphicEncode,\n isomorphicDecode,\n urlIsLocal,\n urlHasHttpsScheme,\n urlIsHttpHttpsScheme,\n readAllBytes\n}\n", "'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n", "'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\n/** @type {import('../../types/webidl').Webidl} */\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\nwebidl.errors.exception = function (message) {\n return new TypeError(`${message.header}: ${message.message}`)\n}\n\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://webidl.spec.whatwg.org/#implements\nwebidl.brandCheck = function (V, I, opts = undefined) {\n if (opts?.strict !== false && !(V instanceof I)) {\n throw new TypeError('Illegal invocation')\n } else {\n return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n }\n}\n\nwebidl.argumentLengthCheck = function ({ length }, min, ctx) {\n if (length < min) {\n throw webidl.errors.exception({\n message: `${min} argument${min !== 1 ? 's' : ''} required, ` +\n `but${length ? ' only' : ''} ${length} found.`,\n ...ctx\n })\n }\n}\n\nwebidl.illegalConstructor = function () {\n throw webidl.errors.exception({\n header: 'TypeError',\n message: 'Illegal constructor'\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 \u2212 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be \u22122^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength \u2212 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength \u2212 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength \u2212 1 \u2212 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is \u22120, then set x to +0.\n if (x === 0) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +\u221E, or \u2212\u221E, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than \u22120.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +\u221E, or \u2212\u221E, then return +0.\n if (\n Number.isNaN(x) ||\n (x === 0 && Object.is(0, x)) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x \u2265 2^bitLength \u2212 1,\n // then return x \u2212 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 \u00D7 r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-to-record\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (O) => {\n // 1. If Type(O) is not Object, throw a TypeError.\n if (webidl.util.Type(O) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Record',\n message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n })\n }\n\n // 2. Let result be a new empty instance of record<K, V>.\n const result = {}\n\n if (!types.isProxy(O)) {\n // Object.keys only returns enumerable properties\n const keys = Object.keys(O)\n\n for (const key of keys) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n\n // 5. Return result.\n return result\n }\n\n // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n const keys = Reflect.ownKeys(O)\n\n // 4. For each key of keys.\n for (const key of keys) {\n // 1. Let desc be ? O.[[GetOwnProperty]](key).\n const desc = Reflect.getOwnPropertyDescriptor(O, key)\n\n // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n if (desc?.enumerable) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n }\n\n // 5. Return result.\n return result\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n throw webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type === 'Null' || type === 'Undefined') {\n return dict\n } else if (type !== 'Object') {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n const charCode = x.charCodeAt(index)\n\n if (charCode > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at ' +\n `index ${index} has a value of ${charCode} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed')\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long-long\nwebidl.converters['unsigned long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 64, 'unsigned')\n\n // 2. Return the IDL unsigned long long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long\nwebidl.converters['unsigned long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 32, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 32, 'unsigned')\n\n // 2. Return the IDL unsigned long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts)\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T\u2019s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n throw webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence<ByteString>'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence<sequence<ByteString>>'] = webidl.sequenceConverter(\n webidl.converters['sequence<ByteString>']\n)\n\nwebidl.converters['record<ByteString, ByteString>'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n", "const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isomorphicDecode } = require('./util')\n\nconst encoder = new TextEncoder()\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-token-code-point\n */\nconst HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/\nconst HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/ // eslint-disable-line\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n */\nconst HTTP_QUOTED_STRING_TOKENS = /[\\u0009|\\u0020-\\u007E|\\u0080-\\u00FF]/ // eslint-disable-line\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL\u2019s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePointsFast(\n ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = removeASCIIWhitespace(mimeType, true, true)\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = isomorphicDecode(body)\n\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n const href = url.href\n\n if (!excludeFragment) {\n return href\n }\n\n const hash = href.lastIndexOf('#')\n if (hash === -1) {\n return href\n }\n return href.slice(0, hash)\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn\u2019t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n/**\n * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n * @param {string} char\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePointsFast (char, input, position) {\n const idx = input.indexOf(char, position.position)\n const start = position.position\n\n if (idx === -1) {\n position.position = input.length\n return input.slice(start)\n }\n\n position.position = idx\n return input.slice(start, position.position)\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = removeHTTPWhitespace(input, true, true)\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePointsFast(\n '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = removeHTTPWhitespace(subtype, false, true)\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n return 'failure'\n }\n\n const typeLowercase = type.toLowerCase()\n const subtypeLowercase = subtype.toLowerCase()\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: typeLowercase,\n subtype: subtypeLowercase,\n /** @type {Map<string, string>} */\n parameters: new Map(),\n // https://mimesniff.spec.whatwg.org/#mime-type-essence\n essence: `${typeLowercase}/${subtypeLowercase}`\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n char => HTTP_WHITESPACE_REGEX.test(char),\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n parameterValue = removeHTTPWhitespace(parameterValue, false, true)\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType\u2019s parameters[parameterName] does not exist\n // then set mimeType\u2019s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) &&\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data\u2019s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data\u2019s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { parameters, essence } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType\u2019s\n // type, U+002F (/), and mimeType\u2019s subtype.\n let serialization = essence\n\n // 2. For each name \u2192 value of mimeType\u2019s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!HTTP_TOKEN_CODEPOINTS.test(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} char\n */\nfunction isHTTPWhiteSpace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === ' '\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} str\n */\nfunction removeHTTPWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n * @param {string} char\n */\nfunction isASCIIWhitespace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === '\\f' || char === ' '\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace\n */\nfunction removeASCIIWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n collectASequenceOfCodePointsFast,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n", "'use strict'\n\nconst { Blob, File: NativeFile } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' })\n\n fileBits = webidl.converters['sequence<BlobPart>'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n let t = options.type\n let d\n\n // eslint-disable-next-line no-labels\n substep: {\n if (t) {\n t = parseMIMEType(t)\n\n if (t === 'failure') {\n t = ''\n // eslint-disable-next-line no-labels\n break substep\n }\n\n t = serializeAMimeType(t).toLowerCase()\n }\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n d = options.lastModified\n }\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: t })\n this[kState] = {\n name: n,\n lastModified: d,\n type: t\n }\n }\n\n get name () {\n webidl.brandCheck(this, File)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, File)\n\n return this[kState].lastModified\n }\n\n get type () {\n webidl.brandCheck(this, File)\n\n return this[kState].type\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.size\n }\n\n get type () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.type\n }\n\n get name () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nObject.defineProperties(File.prototype, {\n [Symbol.toStringTag]: {\n value: 'File',\n configurable: true\n },\n name: kEnumerableProperty,\n lastModified: kEnumerableProperty\n})\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n ArrayBuffer.isView(V) ||\n types.isAnyArrayBuffer(V)\n ) {\n return webidl.converters.BufferSource(V, opts)\n }\n }\n\n return webidl.converters.USVString(V, opts)\n}\n\nwebidl.converters['sequence<BlobPart>'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(new TextEncoder().encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform\u2019s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return (\n (NativeFile && object instanceof NativeFile) ||\n object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n", "'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File: UndiciFile, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob, File: NativeFile } = require('buffer')\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n constructor (form) {\n if (form !== undefined) {\n throw webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['undefined']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' })\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this\u2019s entry list.\n this[kState] = this[kState].filter(entry => entry.name !== name)\n }\n\n get (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this\u2019s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this\u2019s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' })\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this\u2019s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this\u2019s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n }\n\n entries () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key+value'\n )\n }\n\n keys () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\nObject.defineProperties(FormData.prototype, {\n [Symbol.toStringTag]: {\n value: 'FormData',\n configurable: true\n }\n})\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n /** @type {FilePropertyBag} */\n const options = {\n type: value.type,\n lastModified: value.lastModified\n }\n\n value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n ? new File([value], filename, options)\n : new FileLike(value, filename, options)\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nmodule.exports = { FormData }\n", "'use strict'\n\nconst Busboy = require('busboy')\nconst util = require('../core/util')\nconst {\n ReadableStreamFrom,\n isBlobLike,\n isReadableStreamLike,\n readableStreamClose,\n createDeferredPromise,\n fullyReadBody\n} = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException, structuredClone } = require('./constants')\nconst { Blob, File: NativeFile } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File: UndiciFile } = require('./file')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\n\nlet ReadableStream = globalThis.ReadableStream\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be null.\n let stream = null\n\n // 2. If object is a ReadableStream object, then set stream to object.\n if (object instanceof ReadableStream) {\n stream = object\n } else if (isBlobLike(object)) {\n // 3. Otherwise, if object is a Blob object, set stream to the\n // result of running object\u2019s get stream.\n stream = object.stream()\n } else {\n // 4. Otherwise, set stream to a new ReadableStream object, and set\n // up stream.\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? new TextEncoder().encode(source) : source\n )\n queueMicrotask(() => readableStreamClose(controller))\n },\n start () {},\n type: undefined\n })\n }\n\n // 5. Assert: stream is a ReadableStream object.\n assert(isReadableStreamLike(stream))\n\n // 6. Let action be null.\n let action = null\n\n // 7. Let source be null.\n let source = null\n\n // 8. Let length be null.\n let length = null\n\n // 9. Let type be null.\n let type = null\n\n // 10. Switch on object:\n if (typeof object === 'string') {\n // Set source to the UTF-8 encoding of object.\n // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n source = object\n\n // Set type to `text/plain;charset=UTF-8`.\n type = 'text/plain;charset=UTF-8'\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object\u2019s list.\n source = object.toString()\n\n // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n type = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}`\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy W\u00E4rting <https://jimmy.warting.se/opensource> */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object\u2019s entry list and UTF-8.\n // - This ensures that the body is immutable and can't be changed afterwords\n // - That the content-length is calculated in advance.\n // - And that all parts are pre-encoded and ready to be sent.\n\n const enc = new TextEncoder()\n const blobParts = []\n const rn = new Uint8Array([13, 10]) // '\\r\\n'\n length = 0\n let hasUnknownSizeValue = false\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n const chunk = enc.encode(prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`)\n blobParts.push(chunk)\n length += chunk.byteLength\n } else {\n const chunk = enc.encode(`${prefix}; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') + '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`)\n blobParts.push(chunk, value, rn)\n if (typeof value.size === 'number') {\n length += chunk.byteLength + value.size + rn.byteLength\n } else {\n hasUnknownSizeValue = true\n }\n }\n }\n\n const chunk = enc.encode(`--${boundary}--`)\n blobParts.push(chunk)\n length += chunk.byteLength\n if (hasUnknownSizeValue) {\n length = null\n }\n\n // Set source to object.\n source = object\n\n action = async function * () {\n for (const part of blobParts) {\n if (part.stream) {\n yield * part.stream()\n } else {\n yield part\n }\n }\n }\n\n // Set type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n type = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set source to object.\n source = object\n\n // Set length to object\u2019s size.\n length = object.size\n\n // If object\u2019s type attribute is not the empty byte sequence, set\n // type to its value.\n if (object.type) {\n type = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n }\n\n // 11. If source is a byte sequence, then set action to a\n // step that returns source and length to source\u2019s length.\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 12. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n },\n type: undefined\n })\n }\n\n // 13. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 14. Return (body, type).\n return [body, type]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let \u00AB out1, out2 \u00BB be the result of teeing body\u2019s stream.\n const [out1, out2] = body.stream.tee()\n const out2Clone = structuredClone(out2, { transfer: [out2] })\n // This, for whatever reasons, unrefs out2Clone which allows\n // the process to exit by itself.\n const [, finalClone] = out2Clone.tee()\n\n // 2. Set body\u2019s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: finalClone,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n blob () {\n // The blob() method steps are to return the result of\n // running consume body with this and the following step\n // given a byte sequence bytes: return a Blob whose\n // contents are bytes and whose type attribute is this\u2019s\n // MIME type.\n return specConsumeBody(this, (bytes) => {\n let mimeType = bodyMimeType(this)\n\n if (mimeType === 'failure') {\n mimeType = ''\n } else if (mimeType) {\n mimeType = serializeAMimeType(mimeType)\n }\n\n // Return a Blob whose contents are bytes and type attribute\n // is mimeType.\n return new Blob([bytes], { type: mimeType })\n }, instance)\n },\n\n arrayBuffer () {\n // The arrayBuffer() method steps are to return the result\n // of running consume body with this and the following step\n // given a byte sequence bytes: return a new ArrayBuffer\n // whose contents are bytes.\n return specConsumeBody(this, (bytes) => {\n return new Uint8Array(bytes).buffer\n }, instance)\n },\n\n text () {\n // The text() method steps are to return the result of running\n // consume body with this and UTF-8 decode.\n return specConsumeBody(this, utf8DecodeBytes, instance)\n },\n\n json () {\n // The json() method steps are to return the result of running\n // consume body with this and parse JSON from bytes.\n return specConsumeBody(this, parseJSONFromBytes, instance)\n },\n\n async formData () {\n webidl.brandCheck(this, instance)\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType\u2019s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = Busboy({\n headers,\n defParamCharset: 'utf8'\n })\n } catch (err) {\n throw new DOMException(`${err}`, 'AbortError')\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, info) => {\n const { filename, encoding, mimeType } = info\n const chunks = []\n\n if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(new TypeError(err)))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType\u2019s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n const textDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += textDecoder.decode(chunk, { stream: true })\n }\n text += textDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n throw webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n * @param {Response|Request} object\n * @param {(value: unknown) => unknown} convertBytesToJSValue\n * @param {Response|Request} instance\n */\nasync function specConsumeBody (object, convertBytesToJSValue, instance) {\n webidl.brandCheck(object, instance)\n\n throwIfAborted(object[kState])\n\n // 1. If object is unusable, then return a promise rejected\n // with a TypeError.\n if (bodyUnusable(object[kState].body)) {\n throw new TypeError('Body is unusable')\n }\n\n // 2. Let promise be a new promise.\n const promise = createDeferredPromise()\n\n // 3. Let errorSteps given error be to reject promise with error.\n const errorSteps = (error) => promise.reject(error)\n\n // 4. Let successSteps given a byte sequence data be to resolve\n // promise with the result of running convertBytesToJSValue\n // with data. If that threw an exception, then run errorSteps\n // with that exception.\n const successSteps = (data) => {\n try {\n promise.resolve(convertBytesToJSValue(data))\n } catch (e) {\n errorSteps(e)\n }\n }\n\n // 5. If object\u2019s body is null, then run successSteps with an\n // empty byte sequence.\n if (object[kState].body == null) {\n successSteps(new Uint8Array())\n return promise.promise\n }\n\n // 6. Otherwise, fully read object\u2019s body given successSteps,\n // errorSteps, and object\u2019s relevant global object.\n fullyReadBody(object[kState].body, successSteps, errorSteps)\n\n // 7. Return promise.\n return promise.promise\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction bodyUnusable (body) {\n // An object including the Body interface mixin is\n // said to be unusable if its body is non-null and\n // its body\u2019s stream is disturbed or locked.\n return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#utf-8-decode\n * @param {Buffer} buffer\n */\nfunction utf8DecodeBytes (buffer) {\n if (buffer.length === 0) {\n return ''\n }\n\n // 1. Let buffer be the result of peeking three bytes from\n // ioQueue, converted to a byte sequence.\n\n // 2. If buffer is 0xEF 0xBB 0xBF, then read three\n // bytes from ioQueue. (Do nothing with those bytes.)\n if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n buffer = buffer.subarray(3)\n }\n\n // 3. Process a queue with an instance of UTF-8\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n const output = new TextDecoder().decode(buffer)\n\n // 4. Return output.\n return output\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n * @param {Uint8Array} bytes\n */\nfunction parseJSONFromBytes (bytes) {\n return JSON.parse(utf8DecodeBytes(bytes))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n * @param {import('./response').Response|import('./request').Request} object\n */\nfunction bodyMimeType (object) {\n const { headersList } = object[kState]\n const contentType = headersList.get('content-type')\n\n if (contentType === null) {\n return 'failure'\n }\n\n return parseMIMEType(contentType)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n", "'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n this.contentLength = bodyStream.length\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.onError(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onConnect(abort)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onData(chunk)\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n return this[kHandler].onComplete(trailers)\n }\n\n onError (error) {\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n return this[kHandler].onError(error)\n }\n\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n}\n\nfunction processHeaderValue (key, val) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n val = val != null ? `${val}` : ''\n\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n return `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request, key, val) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type'\n ) {\n request.contentType = val\n request.headers += processHeaderValue(key, val)\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n } else if (value === 'close') {\n request.reset = true\n }\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n request.headers += processHeaderValue(key, val[i])\n }\n } else {\n request.headers += processHeaderValue(key, val)\n }\n }\n}\n\nmodule.exports = Request\n", "'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n", "'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = null\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed] = this[kOnDestroyed] || []\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed] || this[kOnDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n", "'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\n\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache\nif (global.FinalizationRegistry) {\n SessionCache = class WeakSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n this._sessionRegistry = new global.FinalizationRegistry((key) => {\n if (this._sessionCache.size < this._maxCachedSessions) {\n return\n }\n\n const ref = this._sessionCache.get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this._sessionCache.delete(key)\n }\n })\n }\n\n get (sessionKey) {\n const ref = this._sessionCache.get(sessionKey)\n return ref ? ref.deref() : null\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n this._sessionCache.set(sessionKey, new WeakRef(session))\n this._sessionRegistry.register(session, sessionKey)\n }\n }\n} else {\n SessionCache = class SimpleSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n }\n\n get (sessionKey) {\n return this._sessionCache.get(sessionKey)\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n if (this._sessionCache.size >= this._maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = this._sessionCache.keys().next()\n this._sessionCache.delete(oldestKey)\n }\n\n this._sessionCache.set(sessionKey, session)\n }\n }\n}\n\nfunction buildConnector ({ maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions)\n timeout = timeout == null ? 10e3 : timeout\n\n return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n localAddress,\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // TODO (fix): Can a session become invalid once established? Don't think so?\n sessionCache.set(sessionKey, session)\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n localAddress,\n port: port || 80,\n host: hostname\n })\n }\n\n // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n if (options.keepAlive == null || options.keepAlive) {\n const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay\n socket.setKeepAlive(true, keepAliveInitialDelay)\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n", null, null, "'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n this.opts.query = null\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n return (\n (header.length === 4 && header.toString().toLowerCase() === 'host') ||\n (removeContent && header.toString().toLowerCase().indexOf('content-') === 0) ||\n (unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') ||\n (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie')\n )\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n", "'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AcsBygG4AckBuQHIAboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBANwBC0EAIRAMxgELQQ4hEAzFAQtBDSEQDMQBC0EPIRAMwwELQRAhEAzCAQtBEyEQDMEBC0EUIRAMwAELQRUhEAy/AQtBFiEQDL4BC0EXIRAMvQELQRghEAy8AQtBGSEQDLsBC0EaIRAMugELQRshEAy5AQtBHCEQDLgBC0EIIRAMtwELQR0hEAy2AQtBICEQDLUBC0EfIRAMtAELQQchEAyzAQtBISEQDLIBC0EiIRAMsQELQR4hEAywAQtBIyEQDK8BC0ESIRAMrgELQREhEAytAQtBJCEQDKwBC0ElIRAMqwELQSYhEAyqAQtBJyEQDKkBC0HDASEQDKgBC0EpIRAMpwELQSshEAymAQtBLCEQDKUBC0EtIRAMpAELQS4hEAyjAQtBLyEQDKIBC0HEASEQDKEBC0EwIRAMoAELQTQhEAyfAQtBDCEQDJ4BC0ExIRAMnQELQTIhEAycAQtBMyEQDJsBC0E5IRAMmgELQTUhEAyZAQtBxQEhEAyYAQtBCyEQDJcBC0E6IRAMlgELQTYhEAyVAQtBCiEQDJQBC0E3IRAMkwELQTghEAySAQtBPCEQDJEBC0E7IRAMkAELQT0hEAyPAQtBCSEQDI4BC0EoIRAMjQELQT4hEAyMAQtBPyEQDIsBC0HAACEQDIoBC0HBACEQDIkBC0HCACEQDIgBC0HDACEQDIcBC0HEACEQDIYBC0HFACEQDIUBC0HGACEQDIQBC0EqIRAMgwELQccAIRAMggELQcgAIRAMgQELQckAIRAMgAELQcoAIRAMfwtBywAhEAx+C0HNACEQDH0LQcwAIRAMfAtBzgAhEAx7C0HPACEQDHoLQdAAIRAMeQtB0QAhEAx4C0HSACEQDHcLQdMAIRAMdgtB1AAhEAx1C0HWACEQDHQLQdUAIRAMcwtBBiEQDHILQdcAIRAMcQtBBSEQDHALQdgAIRAMbwtBBCEQDG4LQdkAIRAMbQtB2gAhEAxsC0HbACEQDGsLQdwAIRAMagtBAyEQDGkLQd0AIRAMaAtB3gAhEAxnC0HfACEQDGYLQeEAIRAMZQtB4AAhEAxkC0HiACEQDGMLQeMAIRAMYgtBAiEQDGELQeQAIRAMYAtB5QAhEAxfC0HmACEQDF4LQecAIRAMXQtB6AAhEAxcC0HpACEQDFsLQeoAIRAMWgtB6wAhEAxZC0HsACEQDFgLQe0AIRAMVwtB7gAhEAxWC0HvACEQDFULQfAAIRAMVAtB8QAhEAxTC0HyACEQDFILQfMAIRAMUQtB9AAhEAxQC0H1ACEQDE8LQfYAIRAMTgtB9wAhEAxNC0H4ACEQDEwLQfkAIRAMSwtB+gAhEAxKC0H7ACEQDEkLQfwAIRAMSAtB/QAhEAxHC0H+ACEQDEYLQf8AIRAMRQtBgAEhEAxEC0GBASEQDEMLQYIBIRAMQgtBgwEhEAxBC0GEASEQDEALQYUBIRAMPwtBhgEhEAw+C0GHASEQDD0LQYgBIRAMPAtBiQEhEAw7C0GKASEQDDoLQYsBIRAMOQtBjAEhEAw4C0GNASEQDDcLQY4BIRAMNgtBjwEhEAw1C0GQASEQDDQLQZEBIRAMMwtBkgEhEAwyC0GTASEQDDELQZQBIRAMMAtBlQEhEAwvC0GWASEQDC4LQZcBIRAMLQtBmAEhEAwsC0GZASEQDCsLQZoBIRAMKgtBmwEhEAwpC0GcASEQDCgLQZ0BIRAMJwtBngEhEAwmC0GfASEQDCULQaABIRAMJAtBoQEhEAwjC0GiASEQDCILQaMBIRAMIQtBpAEhEAwgC0GlASEQDB8LQaYBIRAMHgtBpwEhEAwdC0GoASEQDBwLQakBIRAMGwtBqgEhEAwaC0GrASEQDBkLQawBIRAMGAtBrQEhEAwXC0GuASEQDBYLQQEhEAwVC0GvASEQDBQLQbABIRAMEwtBsQEhEAwSC0GzASEQDBELQbIBIRAMEAtBtAEhEAwPC0G1ASEQDA4LQbYBIRAMDQtBtwEhEAwMC0G4ASEQDAsLQbkBIRAMCgtBugEhEAwJC0G7ASEQDAgLQcYBIRAMBwtBvAEhEAwGC0G9ASEQDAULQb4BIRAMBAtBvwEhEAwDC0HAASEQDAILQcIBIRAMAQtBwQEhEAsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='\n", "// @ts-check\n\n'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst util = require('./core/util')\nconst timers = require('./timers')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError,\n ResponseExceededMaxSizeError,\n ClientDestroyedError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors,\n kLocalAddress,\n kMaxResponseSize\n} = require('./core/symbols')\nconst FastBuffer = Buffer[Symbol.species]\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\n/**\n * @type {import('../types/client').default}\n */\nclass Client extends DispatcherBase {\n /**\n *\n * @param {string|URL} url\n * @param {import('../types/client').Client.Options} options\n */\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient,\n localAddress,\n maxResponseSize,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n throw new InvalidArgumentError('localAddress must be valid string IP address')\n }\n\n if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n throw new InvalidArgumentError('maxResponseSize must be a positive number')\n }\n\n if (\n autoSelectFamilyAttemptTimeout != null &&\n (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n ) {\n throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || 16384\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kLocalAddress] = localAddress != null ? localAddress : null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = new Request(origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n return new Promise((resolve) => {\n if (!this[kSize]) {\n resolve(null)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n // TODO (fix): Should we error here with ClientDestroyedError?\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp-wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd-wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp-wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\nllhttpPromise.catch()\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n this.connection = ''\n this.maxResponseSize = client[kMaxResponseSize]\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n timers.clearTimeout(this.timeout)\n if (value) {\n this.timeout = timers.setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message =\n 'Response does not match the HTTP/1.1 protocol (' +\n Buffer.from(llhttp.memory.buffer, ptr, len).toString() +\n ')'\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n timers.clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n this.connection += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = (\n shouldKeepAlive ||\n // Override llhttp value which does not allow keepAlive for HEAD.\n (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n )\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (this.shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n let pause\n try {\n pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n\n if (request.method === 'HEAD') {\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode, maxResponseSize } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n util.destroy(socket, new ResponseExceededMaxSizeError())\n return -1\n }\n\n this.bytesRead += buf.length\n\n try {\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n this.connection = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n try {\n request.onComplete(headers)\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n parser.readMore()\n}\n\nfunction onSocketError (err) {\n const { [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.onMessageComplete()\n return\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser } = this\n\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n return\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client } = this\n\n if (!this[kError] && this[kParser].statusCode && !this[kParser].shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n this[kParser].onMessageComplete()\n }\n\n this[kParser].destroy()\n this[kParser] = null\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substr(1, idx - 1)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (client.destroyed) {\n util.destroy(socket.on('error', () => {}), new ClientDestroyedError())\n return\n }\n\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kError] = null\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n socket[kClient] = client\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n client[kSocket] = socket\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n if (client.destroyed) {\n return\n }\n\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client[kClosedResolve] && !client[kSize]) {\n client[kClosedResolve]()\n client[kClosedResolve] = null\n return\n }\n\n const socket = client[kSocket]\n\n if (socket && !socket.destroyed) {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket) {\n connect(client)\n return\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (util.isStream(request.body) && util.bodyLength(request.body) === 0) {\n request.body\n .on('data', /* istanbul ignore next */ function () {\n /* istanbul ignore next */\n assert(false)\n })\n .on('error', function (err) {\n errorRequest(client, request, err)\n })\n .on('end', function () {\n util.destroy(this)\n })\n\n request.body = null\n }\n\n if (client[kRunning] > 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\nfunction write (client, request) {\n const { body, method, path, host, upgrade, headers, blocking, reset } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n if (request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (reset != null) {\n socket[kReset] = reset\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining] && !socket[kReset]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeStream ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n if (finished) {\n return\n }\n\n try {\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n if (finished) {\n return\n }\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n onFinished(new RequestAbortedError())\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(buffer)\n socket.uncork()\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(socket, err)\n }\n}\n\nasync function writeIterable ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n socket.cork()\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'latin1')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n socket.uncork()\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'latin1')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n", "/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n", "const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n", "'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n", "'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout == null ? 10e3 : connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n", "'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n", "'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n}\n\nmodule.exports = function () {\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n", "'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n", "// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nmodule.exports = class BodyReadable extends Readable {\n constructor ({\n resume,\n abort,\n contentType = '',\n highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n }) {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n async dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n const signal = opts && opts.signal\n const abortFn = () => {\n this.destroy()\n }\n let signalListenerCleanup\n if (signal) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new InvalidArgumentError('signal must be an AbortSignal')\n }\n util.throwIfAborted(signal)\n signalListenerCleanup = util.addAbortListener(signal, abortFn)\n }\n try {\n for await (const chunk of this) {\n util.throwIfAborted(signal)\n limit -= Buffer.byteLength(chunk)\n if (limit < 0) {\n return\n }\n }\n } catch {\n util.throwIfAborted(signal)\n } finally {\n if (typeof signalListenerCleanup === 'function') {\n signalListenerCleanup()\n } else if (signalListenerCleanup) {\n signalListenerCleanup[Symbol.dispose]()\n }\n }\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n", "const assert = require('assert')\nconst {\n ResponseStatusCodeError\n} = require('../core/errors')\nconst { toUSVString } = require('../core/util')\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n assert(body)\n\n let chunks = []\n let limit = 0\n\n for await (const chunk of body) {\n chunks.push(chunk)\n limit += chunk.length\n if (limit > 128 * 1024) {\n chunks = null\n break\n }\n }\n\n if (statusCode === 204 || !contentType || !chunks) {\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = toUSVString(Buffer.concat(chunks))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nmodule.exports = { getResolveErrorBodyCallback }\n", "const { addAbortListener } = require('../core/util')\nconst { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n addAbortListener(self[kSignal], self[kListener])\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n", "'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n throw new InvalidArgumentError('invalid highWaterMark')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n this.highWaterMark = highWaterMark\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n const body = new Readable({ resume, abort, contentType, highWaterMark })\n\n this.callback = null\n this.res = body\n\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n } else {\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\n", "'use strict'\n\nconst { finished, PassThrough } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError || false\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { factory, opaque, context, callback, responseHeaders } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n\n let res\n\n if (this.throwOnError && statusCode >= 400) {\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n res = new PassThrough()\n\n this.callback = null\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body: res, contentType, statusCode, statusMessage, headers }\n )\n } else {\n res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n }\n\n res.on('drain', resume)\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res.write(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n", "'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n", "'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n", "'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n", "'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n", "'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\nconst {\n types: {\n isPromise\n }\n} = require('util')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record<string, string>} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [\n ...keyValuePairs,\n Buffer.from(`${key}`),\n Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n ], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches, _data = data) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const body = typeof _data === 'function'\n ? _data({ ...opts, headers: optsHeaders })\n : _data\n\n // util.types.isPromise is likely needed for jest.\n if (isPromise(body)) {\n // If handleReply is asynchronous, throwing an error\n // in the callback will reject the promise, rather than\n // synchronously throw the error, which breaks some tests.\n // Rather, we wait for the callback to resolve if it is a\n // promise, and then re-run handleReply with the new body.\n body.then((newData) => handleReply(mockDispatches, newData))\n return\n }\n\n const responseData = getResponseData(body)\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n", "'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n", "'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n", "'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(\u2026)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '\u2705' : '\u274C',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n", "'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n", "'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Pool = require('./pool')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n const { clientFactory = defaultFactory } = opts\n\n if (typeof clientFactory !== 'function') {\n throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = opts.headers || {}\n\n if (opts.auth && opts.token) {\n throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token')\n } else if (opts.auth) {\n /* @deprecated in favour of opts.token */\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n } else if (opts.token) {\n this[kProxyHeaders]['proxy-authorization'] = opts.token\n }\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host } = resolvedUrl\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = clientFactory(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError('Proxy response !== 200 when HTTP Tunneling'))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record<string, string>} headers\n * @returns {Record<string, string>}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record<string, string>} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record<string, string>} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n", "'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n", "'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst { webidl } = require('./webidl')\nconst assert = require('assert')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n\n // Trimming the end with `.replace()` and a RegExp is typically subject to\n // ReDoS. This is safer and faster.\n let i = potentialValue.length\n while (/[\\r\\n\\t ]/.test(potentialValue.charAt(--i)));\n return potentialValue.slice(0, i + 1).replace(/^[\\r\\n\\t ]+/, '')\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (const header of object) {\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n throw webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header\u2019s first item, header\u2019s second item) to headers.\n headers.append(header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key \u2192 value in object,\n // append (key, value) to headers\n for (const [key, value] of Object.entries(object)) {\n headers.append(key, value)\n }\n } else {\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n }\n}\n\nclass HeadersList {\n /** @type {[string, string][]|null} */\n cookies = null\n\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n this.cookies = init.cookies\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n this.cookies = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header\u2019s name.\n const lowercaseName = name.toLowerCase()\n const exists = this[kHeadersMap].get(lowercaseName)\n\n // 2. Append (name, value) to list.\n if (exists) {\n const delimiter = lowercaseName === 'cookie' ? '; ' : ', '\n this[kHeadersMap].set(lowercaseName, {\n name: exists.name,\n value: `${exists.value}${delimiter}${value}`\n })\n } else {\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n if (lowercaseName === 'set-cookie') {\n this.cookies ??= []\n this.cookies.push(value)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n const lowercaseName = name.toLowerCase()\n\n if (lowercaseName === 'set-cookie') {\n this.cookies = [value]\n }\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n return this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n\n if (name === 'set-cookie') {\n this.cookies = null\n }\n\n return this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n // 1. If list does not contain name, then return null.\n if (!this.contains(name)) {\n return null\n }\n\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return this[kHeadersMap].get(name.toLowerCase())?.value ?? null\n }\n\n * [Symbol.iterator] () {\n // use the lowercased name\n for (const [name, { value }] of this[kHeadersMap]) {\n yield [name, value]\n }\n }\n\n get entries () {\n const headers = {}\n\n if (this[kHeadersMap].size) {\n for (const { name, value } of this[kHeadersMap].values()) {\n headers[name] = value\n }\n }\n\n return headers\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this\u2019s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers\u2019s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers\u2019s header list.\n // 8. If headers\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n return this[kHeadersList].append(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this\u2019s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this\u2019s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this\u2019s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n return this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this\u2019s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this\u2019s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this\u2019s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n return this[kHeadersList].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n getSetCookie () {\n webidl.brandCheck(this, Headers)\n\n // 1. If this\u2019s header list does not contain `Set-Cookie`, then return \u00AB \u00BB.\n // 2. Return the values of all headers in this\u2019s header list whose name is\n // a byte-case-insensitive match for `Set-Cookie`, in order.\n\n const list = this[kHeadersList].cookies\n\n if (list) {\n return [...list]\n }\n\n return []\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n get [kHeadersSortedMap] () {\n if (this[kHeadersList][kHeadersSortedMap]) {\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n // 1. Let headers be an empty list of headers with the key being the name\n // and value the value.\n const headers = []\n\n // 2. Let names be the result of convert header names to a sorted-lowercase\n // set with all the names of the headers in list.\n const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)\n const cookies = this[kHeadersList].cookies\n\n // 3. For each name of names:\n for (const [name, value] of names) {\n // 1. If name is `set-cookie`, then:\n if (name === 'set-cookie') {\n // 1. Let values be a list of all values of headers in list whose name\n // is a byte-case-insensitive match for name, in order.\n\n // 2. For each value of values:\n // 1. Append (name, value) to headers.\n for (const value of cookies) {\n headers.push([name, value])\n }\n } else {\n // 2. Otherwise:\n\n // 1. Let value be the result of getting name from list.\n\n // 2. Assert: value is non-null.\n assert(value !== null)\n\n // 3. Append (name, value) to headers.\n headers.push([name, value])\n }\n }\n\n this[kHeadersList][kHeadersSortedMap] = headers\n\n // 4. Return headers.\n return headers\n }\n\n keys () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'value'\n )\n }\n\n entries () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key+value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n webidl.brandCheck(this, Headers)\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n getSetCookie: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty,\n [Symbol.iterator]: { enumerable: false },\n [Symbol.toStringTag]: {\n value: 'Headers',\n configurable: true\n }\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence<sequence<ByteString>>'](V)\n }\n\n return webidl.converters['record<ByteString, ByteString>'](V)\n }\n\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n", "'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike,\n isomorphicEncode\n} = require('./util')\nconst {\n redirectStatus,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this\u2019s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data = undefined, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' })\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = new TextEncoder('utf-8').encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this\u2019s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' })\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object\u2019s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatus.includes(status)) {\n throw new RangeError('Invalid status code ' + status)\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this\u2019s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject\u2019s response\u2019s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n const value = isomorphicEncode(URLSerializer(parsedURL))\n\n // 7. Append `Location`/value to responseObject\u2019s response\u2019s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this\u2019s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is this\u2019s response\u2019s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers()\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n // Returns response\u2019s type, e.g., \"cors\".\n get type () {\n webidl.brandCheck(this, Response)\n\n // The type getter steps are to return this\u2019s response\u2019s type.\n return this[kState].type\n }\n\n // Returns response\u2019s URL, if it has one; otherwise the empty string.\n get url () {\n webidl.brandCheck(this, Response)\n\n const urlList = this[kState].urlList\n\n // The url getter steps are to return the empty string if this\u2019s\n // response\u2019s URL is null; otherwise this\u2019s response\u2019s URL,\n // serialized with exclude fragment set to true.\n const url = urlList[urlList.length - 1] ?? null\n\n if (url === null) {\n return ''\n }\n\n return URLSerializer(url, true)\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n webidl.brandCheck(this, Response)\n\n // The redirected getter steps are to return true if this\u2019s response\u2019s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response\u2019s status.\n get status () {\n webidl.brandCheck(this, Response)\n\n // The status getter steps are to return this\u2019s response\u2019s status.\n return this[kState].status\n }\n\n // Returns whether response\u2019s status is an ok status.\n get ok () {\n webidl.brandCheck(this, Response)\n\n // The ok getter steps are to return true if this\u2019s response\u2019s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response\u2019s status message.\n get statusText () {\n webidl.brandCheck(this, Response)\n\n // The statusText getter steps are to return this\u2019s response\u2019s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response\u2019s headers as Headers.\n get headers () {\n webidl.brandCheck(this, Response)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n get body () {\n webidl.brandCheck(this, Response)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Response)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n // Returns a clone of response.\n clone () {\n webidl.brandCheck(this, Response)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n throw webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this\u2019s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Response',\n configurable: true\n }\n})\n\nObject.defineProperties(Response, {\n json: kEnumerableProperty,\n redirect: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response\u2019s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response\u2019s body is non-null, then set newResponse\u2019s body to the\n // result of cloning response\u2019s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response\u2019s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response\u2019s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response\u2019s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(new DOMException('The operation was aborted.', 'AbortError'))\n : makeNetworkError('Request was cancelled.')\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response\u2019s response\u2019s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response\u2019s response\u2019s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response\u2019s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kHeaders], init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n throw webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code ' + response.status\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n types.isAnyArrayBuffer(V) ||\n types.isTypedArray(V) ||\n types.isDataView(V)\n ) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response,\n cloneResponse\n}\n", "/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod,\n makePolicyContainer\n} = require('./util')\nconst {\n forbiddenMethods,\n corsSafeListedMethods,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n requestDuplex\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require('events')\n\nlet TransformStream = globalThis.TransformStream\n\nconst kInit = Symbol('init')\nconst kAbortController = Symbol('abortController')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kInit) {\n return\n }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' })\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin(),\n get origin () {\n return this.baseUrl?.origin\n },\n policyContainer: makePolicyContainer()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this\u2019s relevant settings object\u2019s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input\u2019s request.\n request = input[kState]\n\n // 9. Set signal to input\u2019s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this\u2019s relevant settings object\u2019s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request\u2019s window is an environment settings object and its origin\n // is same origin with origin, then set window to request\u2019s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if ('window' in init) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request\u2019s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request\u2019s method.\n method: request.method,\n // header list A copy of request\u2019s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This\u2019s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request\u2019s priority.\n priority: request.priority,\n // origin request\u2019s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request\u2019s referrer.\n referrer: request.referrer,\n // referrer policy request\u2019s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request\u2019s mode.\n mode: request.mode,\n // credentials mode request\u2019s credentials mode.\n credentials: request.credentials,\n // cache mode request\u2019s cache mode.\n cache: request.cache,\n // redirect mode request\u2019s redirect mode.\n redirect: request.redirect,\n // integrity metadata request\u2019s integrity metadata.\n integrity: request.integrity,\n // keepalive request\u2019s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request\u2019s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request\u2019s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request\u2019s URL list.\n urlList: [...request.urlList]\n })\n\n // 13. If init is not empty, then:\n if (Object.keys(init).length > 0) {\n // 1. If request\u2019s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request\u2019s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request\u2019s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request\u2019s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request\u2019s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request\u2019s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request\u2019s URL to request\u2019s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request\u2019s URL list to \u00AB request\u2019s URL \u00BB.\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request\u2019s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // - parsedReferrer\u2019s scheme is \"about\" and path is the string \"client\"\n // - parsedReferrer\u2019s origin is not same origin with origin\n // then set request\u2019s referrer to \"client\".\n if (\n (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') ||\n (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl))\n ) {\n request.referrer = 'client'\n } else {\n // 4. Otherwise, set request\u2019s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request\u2019s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n throw webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request\u2019s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request\u2019s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n }\n\n // 18. If init[\"cache\"] exists, then set request\u2019s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n }\n\n // 21. If request\u2019s cache mode is \"only-if-cached\" and request\u2019s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request\u2019s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n }\n\n // 23. If init[\"integrity\"] exists, then set request\u2019s integrity metadata to it.\n if (init.integrity !== undefined && init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request\u2019s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(init.method)) {\n throw TypeError(`'${init.method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethods.indexOf(method.toUpperCase()) !== -1) {\n throw TypeError(`'${init.method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethod(init.method)\n\n // 4. Set request\u2019s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this\u2019s request to request.\n this[kState] = request\n\n // 28. Set this\u2019s signal to a new AbortSignal object with this\u2019s relevant\n // Realm.\n // TODO: could this be simplified with AbortSignal.any\n // (https://dom.spec.whatwg.org/#dom-abortsignal-any)\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this\u2019s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n // Keep a strong ref to ac while request object\n // is alive. This is needed to prevent AbortController\n // from being prematurely garbage collected.\n // See, https://github.com/nodejs/undici/issues/1926.\n this[kAbortController] = ac\n\n const acRef = new WeakRef(ac)\n const abort = function () {\n const ac = acRef.deref()\n if (ac !== undefined) {\n ac.abort(this.reason)\n }\n }\n\n // Third-party AbortControllers may not work with these.\n // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n try {\n // If the max amount of listeners is equal to the default, increase it\n // This is only available in node >= v19.9.0\n if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n setMaxListeners(100, signal)\n } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) {\n setMaxListeners(100, signal)\n }\n } catch {}\n\n util.addAbortListener(signal, abort)\n requestFinalizer.register(ac, { signal, abort })\n }\n }\n\n // 30. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is request\u2019s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers()\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this\u2019s request\u2019s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this\u2019s request\u2019s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethods.includes(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this\u2019s headers\u2019s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (Object.keys(init).length !== 0) {\n // 1. Let headers be a copy of this\u2019s headers and its associated header\n // list.\n let headers = new Headers(this[kHeaders])\n\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n if (init.headers !== undefined) {\n headers = init.headers\n }\n\n // 3. Empty this\u2019s headers\u2019s header list.\n this[kHeaders][kHeadersList].clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header\u2019s name/header\u2019s value to this\u2019s headers.\n if (headers.constructor.name === 'Headers') {\n for (const [key, val] of headers) {\n this[kHeaders].append(key, val)\n }\n } else {\n // 5. Otherwise, fill this\u2019s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input\u2019s request\u2019s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request\u2019s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n (init.body != null || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request\u2019s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this\u2019s headers\u2019s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this\u2019s headers.\n if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody\u2019s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If initBody is non-null and init[\"duplex\"] does not exist,\n // then throw a TypeError.\n if (initBody != null && init.duplex == null) {\n throw new TypeError('RequestInit: duplex option is required when sending a body.')\n }\n\n // 2. If this\u2019s request\u2019s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 3. Set this\u2019s request\u2019s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this\u2019s request\u2019s body to finalBody.\n this[kState].body = finalBody\n }\n\n // Returns request\u2019s HTTP method, which is \"GET\" by default.\n get method () {\n webidl.brandCheck(this, Request)\n\n // The method getter steps are to return this\u2019s request\u2019s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n webidl.brandCheck(this, Request)\n\n // The url getter steps are to return this\u2019s request\u2019s URL, serialized.\n return URLSerializer(this[kState].url)\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n webidl.brandCheck(this, Request)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n webidl.brandCheck(this, Request)\n\n // The destination getter are to return this\u2019s request\u2019s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global\u2019s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n webidl.brandCheck(this, Request)\n\n // 1. If this\u2019s request\u2019s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this\u2019s request\u2019s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this\u2019s request\u2019s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request\u2019s\n // referrer.\n get referrerPolicy () {\n webidl.brandCheck(this, Request)\n\n // The referrerPolicy getter steps are to return this\u2019s request\u2019s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n webidl.brandCheck(this, Request)\n\n // The mode getter steps are to return this\u2019s request\u2019s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this\u2019s request\u2019s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser\u2019s cache when fetching.\n get cache () {\n webidl.brandCheck(this, Request)\n\n // The cache getter steps are to return this\u2019s request\u2019s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n webidl.brandCheck(this, Request)\n\n // The redirect getter steps are to return this\u2019s request\u2019s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request\u2019s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n webidl.brandCheck(this, Request)\n\n // The integrity getter steps are to return this\u2019s request\u2019s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n webidl.brandCheck(this, Request)\n\n // The keepalive getter steps are to return this\u2019s request\u2019s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isReloadNavigation getter steps are to return true if this\u2019s\n // request\u2019s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isHistoryNavigation getter steps are to return true if this\u2019s request\u2019s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n webidl.brandCheck(this, Request)\n\n // The signal getter steps are to return this\u2019s signal.\n return this[kSignal]\n }\n\n get body () {\n webidl.brandCheck(this, Request)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Request)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n get duplex () {\n webidl.brandCheck(this, Request)\n\n return 'half'\n }\n\n // Returns a clone of request.\n clone () {\n webidl.brandCheck(this, Request)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this\u2019s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedRequestObject = new Request(kInit)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers()\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject\u2019s signal follow this\u2019s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n util.addAbortListener(\n this.signal,\n () => {\n ac.abort(this.signal.reason)\n }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request\u2019s body is non-null, set newRequest\u2019s body to the\n // result of cloning request\u2019s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty,\n duplex: kEnumerableProperty,\n destination: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n isHistoryNavigation: kEnumerableProperty,\n isReloadNavigation: kEnumerableProperty,\n keepalive: kEnumerableProperty,\n integrity: kEnumerableProperty,\n cache: kEnumerableProperty,\n credentials: kEnumerableProperty,\n attribute: kEnumerableProperty,\n referrerPolicy: kEnumerableProperty,\n referrer: kEnumerableProperty,\n mode: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Request',\n configurable: true\n }\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: referrerPolicy\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: requestMode\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: requestCredentials\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: requestCache\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: requestRedirect\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n },\n {\n key: 'duplex',\n converter: webidl.converters.DOMString,\n allowedValues: requestDuplex\n }\n])\n\nmodule.exports = { Request, makeRequest }\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody,\n readableStreamClose,\n isomorphicEncode,\n urlIsLocal,\n urlIsHttpHttpsScheme,\n urlHasHttpsScheme\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody } = require('./body')\nconst {\n redirectStatus,\n nullBodyStatus,\n safeMethods,\n requestBodyHeader,\n subresource,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\nconst { getGlobalDispatcher } = require('../global')\nconst { webidl } = require('./webidl')\nconst { STATUS_CODES } = require('http')\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream = globalThis.ReadableStream\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n // 2 terminated listeners get added per request,\n // but only 1 gets removed. If there are 20 redirects,\n // 21 listeners will be added.\n // See https://github.com/nodejs/undici/issues/1711\n // TODO (fix): Find and fix root cause for leaked listener.\n this.setMaxListeners(21)\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n // https://fetch.spec.whatwg.org/#fetch-controller-abort\n abort (error) {\n if (this.state !== 'ongoing') {\n return\n }\n\n // 1. Set controller\u2019s state to \"aborted\".\n this.state = 'aborted'\n\n // 2. Let fallbackError be an \"AbortError\" DOMException.\n // 3. Set error to fallbackError if it is not given.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 4. Let serializedError be StructuredSerialize(error).\n // If that threw an exception, catch it, and let\n // serializedError be StructuredSerialize(fallbackError).\n\n // 5. Set controller\u2019s serialized abort reason to serializedError.\n this.serializedAbortReason = error\n\n this.connection?.destroy(error)\n this.emit('terminated', error)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nasync function fetch (input, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' })\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject\u2019s request.\n const request = requestObject[kState]\n\n // 4. If requestObject\u2019s signal\u2019s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort the fetch() call with p, request, null, and\n // requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, null, requestObject.signal.reason)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request\u2019s client\u2019s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request\u2019s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this\u2019s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject\u2019s signal:\n addAbortListener(\n requestObject.signal,\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Assert: controller is non-null.\n assert(controller != null)\n\n // 3. Abort controller with requestObject\u2019s signal\u2019s abort reason.\n controller.abort(requestObject.signal.reason)\n\n // 4. Abort the fetch() call with p, request, responseObject,\n // and requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, responseObject, requestObject.signal.reason)\n }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return\n }\n\n // 2. If response\u2019s aborted flag is set, then:\n if (response.aborted) {\n // 1. Let deserializedError be the result of deserialize a serialized\n // abort reason given controller\u2019s serialized abort reason and\n // relevantRealm.\n\n // 2. Abort the fetch() call with p, request, responseObject, and\n // deserializedError.\n\n abortFetch(p, request, responseObject, controller.serializedAbortReason)\n return\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response\u2019s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response\u2019s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response\u2019s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response\u2019s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL\u2019s scheme is not an HTTP(S) scheme, then return.\n if (!urlIsHttpHttpsScheme(originalURL)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response\u2019s timing allow passed flag is not set, then:\n if (!timingInfo.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo\u2019s end time to the coarsened shared current time\n // given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability.\n // TODO: given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability?\n timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) {\n performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject, error) {\n // Note: AbortSignal.reason was added in node v17.2.0\n // which would give us an undefined error to reject with.\n // Remove this once node v16 is no longer supported.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 1. Reject promise with error.\n p.reject(error)\n\n // 2. If request\u2019s body is not null and is readable, then cancel request\u2019s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 3. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 4. Let response be responseObject\u2019s response.\n const response = responseObject[kState]\n\n // 5. If response\u2019s body is not null and is readable, then error response\u2019s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request\u2019s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request\u2019s client\u2019s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request\u2019s client\u2019s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request\u2019s body is a byte sequence, then set request\u2019s body to\n // request\u2019s body as a body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request\u2019s window is \"client\", then set request\u2019s window to request\u2019s\n // client, if request\u2019s client\u2019s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request\u2019s origin is \"client\", then set request\u2019s origin to request\u2019s\n // client\u2019s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request\u2019s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request\u2019s client is non-null, then set request\u2019s policy\n // container to a clone of request\u2019s client\u2019s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request\u2019s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request\u2019s header list does not contain `Accept`, then:\n if (!request.headersList.contains('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request\u2019s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request\u2019s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request\u2019s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request\u2019s header list.\n if (!request.headersList.contains('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request\u2019s priority is null, then use request\u2019s initiator and\n // destination appropriately in setting request\u2019s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresource.includes(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request\u2019s local-URLs-only flag is set and request\u2019s current URL is\n // not local, then set response to a network error.\n if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request\u2019s referrer policy is the empty string, then set request\u2019s\n // referrer policy to request\u2019s policy container\u2019s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request\u2019s referrer is not \"no-referrer\", then set request\u2019s\n // referrer to the result of invoking determine request\u2019s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request\u2019s current URL\u2019s scheme to \"https\" if all of the following\n // conditions are true:\n // - request\u2019s current URL\u2019s scheme is \"http\"\n // - request\u2019s current URL\u2019s host is a domain\n // - Matching request\u2019s current URL\u2019s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request\u2019s current URL\u2019s origin is same origin with request\u2019s origin,\n // and request\u2019s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request\u2019s current URL\u2019s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request\u2019s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request\u2019s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request\u2019s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request\u2019s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request\u2019s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s current URL\u2019s scheme is not an HTTP(S) scheme\n if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request\u2019s use-CORS-preflight flag is set\n // - request\u2019s unsafe-request flag is set and either request\u2019s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request\u2019s header list is not empty\n // 1. Set request\u2019s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request\u2019s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request\u2019s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response\u2019s header list.\n // TODO\n // 2. If request\u2019s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response\u2019s CORS-exposed header-name list to\n // all unique header names in response\u2019s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response\u2019s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response\u2019s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse\u2019s URL list is empty, then set it to a clone of\n // request\u2019s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request\u2019s timing allow failed flag is unset, then set\n // internalResponse\u2019s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response\u2019s type is \"opaque\", internalResponse\u2019s status is 206,\n // internalResponse\u2019s range-requested flag is set, and request\u2019s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.contains('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request\u2019s method is\n // `HEAD` or `CONNECT`, or internalResponse\u2019s status is a null body status,\n // set internalResponse\u2019s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request\u2019s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request\u2019s response tainting is \"opaque\", or response\u2019s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request\u2019s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response\u2019s body to bytes as a body.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response\u2019s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nasync function schemeFetch (fetchParams) {\n // Note: since the connection is destroyed on redirect, which sets fetchParams to a\n // cancelled state, we do not want this condition to trigger *unless* there have been\n // no redirects. See https://github.com/nodejs/undici/issues/1776\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Let request be fetchParams\u2019s request.\n const { request } = fetchParams\n\n const { protocol: scheme } = requestCurrentURL(request)\n\n // 3. Switch on request\u2019s current URL\u2019s scheme and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request\u2019s current URL\u2019s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is \u00AB (`Content-Type`, `text/html;charset=utf-8`) \u00BB,\n // and body is the empty byte sequence as a body.\n\n // Otherwise, return a network error.\n return makeNetworkError('about scheme is not supported')\n }\n case 'blob:': {\n if (!resolveObjectURL) {\n resolveObjectURL = require('buffer').resolveObjectURL\n }\n\n // 1. Let blobURLEntry be request\u2019s current URL\u2019s blob URL entry.\n const blobURLEntry = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (blobURLEntry.search.length !== 0) {\n return makeNetworkError('NetworkError when attempting to fetch resource.')\n }\n\n const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString())\n\n // 2. If request\u2019s method is not `GET`, blobURLEntry is null, or blobURLEntry\u2019s\n // object is not a Blob object, then return a network error.\n if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n return makeNetworkError('invalid method')\n }\n\n // 3. Let bodyWithType be the result of safely extracting blobURLEntry\u2019s object.\n const bodyWithType = safelyExtractBody(blobURLEntryObject)\n\n // 4. Let body be bodyWithType\u2019s body.\n const body = bodyWithType[0]\n\n // 5. Let length be body\u2019s length, serialized and isomorphic encoded.\n const length = isomorphicEncode(`${body.length}`)\n\n // 6. Let type be bodyWithType\u2019s type if it is non-null; otherwise the empty byte sequence.\n const type = bodyWithType[1] ?? ''\n\n // 7. Return a new response whose status message is `OK`, header list is\n // \u00AB (`Content-Length`, length), (`Content-Type`, type) \u00BB, and body is body.\n const response = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-length', { name: 'Content-Length', value: length }],\n ['content-type', { name: 'Content-Type', value: type }]\n ]\n })\n\n response.body = body\n\n return response\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request\u2019s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return makeNetworkError('failed to fetch the data URL')\n }\n\n // 3. Let mimeType be dataURLStruct\u2019s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is \u00AB (`Content-Type`, mimeType) \u00BB,\n // and body is dataURLStruct\u2019s body as a body.\n return makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', { name: 'Content-Type', value: mimeType }]\n ],\n body: safelyExtractBody(dataURLStruct.body)[0]\n })\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return makeNetworkError('not implemented... yet...')\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return await httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return makeNetworkError('unknown scheme')\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams\u2019s process response done is not null, then queue a fetch\n // task to run fetchParams\u2019s process response done given response, with\n // fetchParams\u2019s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nasync function fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response\u2019s URL list to \u00AB fetchParams\u2019s request\u2019s URL list[0] \u00BB.\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response\u2019s timing info to the result of creating an opaque timing\n // info for fetchParams\u2019s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // If fetchParams\u2019s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams\u2019s process response\n // end-of-body given response with fetchParams\u2019s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams\u2019s process response is non-null, then queue a fetch task\n // to run fetchParams\u2019s process response given response, with fetchParams\u2019s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response\u2019s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n }, {\n size () {\n return 1\n }\n }, {\n size () {\n return 1\n }\n })\n\n // 4. Set response\u2019s body to the result of piping response\u2019s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams\u2019s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams\u2019s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams\u2019s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response\u2019s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams\u2019s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response\u2019s body given processBody, processBodyError,\n // and fetchParams\u2019s task destination.\n await fullyReadBody(response.body, processBody, processBodyError)\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request\u2019s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request\u2019s redirect mode is \"follow\", then set request\u2019s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request\u2019s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request\u2019s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request\u2019s response tainting or response\u2019s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request\u2019s origin, request\u2019s client, request\u2019s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse\u2019s status is a redirect status, then:\n if (redirectStatus.includes(actualResponse.status)) {\n // 1. If actualResponse\u2019s status is not 303, request\u2019s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request\u2019s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nasync function httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response\u2019s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse\u2019s location URL given request\u2019s current\n // URL\u2019s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return makeNetworkError(err)\n }\n\n // 6. If locationURL\u2019s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!urlIsHttpHttpsScheme(locationURL)) {\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // 7. If request\u2019s redirect count is 20, then return a network error.\n if (request.redirectCount === 20) {\n return makeNetworkError('redirect count exceeded')\n }\n\n // 8. Increase request\u2019s redirect count by 1.\n request.redirectCount += 1\n\n // 9. If request\u2019s mode is \"cors\", locationURL includes credentials, and\n // request\u2019s origin is not same origin with locationURL\u2019s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return makeNetworkError('cross origin not allowed for request mode \"cors\"')\n }\n\n // 10. If request\u2019s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n )\n }\n\n // 11. If actualResponse\u2019s status is not 303, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return makeNetworkError()\n }\n\n // 12. If one of the following is true\n // - actualResponse\u2019s status is 301 or 302 and request\u2019s method is `POST`\n // - actualResponse\u2019s status is 303 and request\u2019s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !['GET', 'HEAD'].includes(request.method))\n ) {\n // then:\n // 1. Set request\u2019s method to `GET` and request\u2019s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request\u2019s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request\u2019s current URL\u2019s origin is not same origin with locationURL\u2019s\n // origin, then for each headerName of CORS non-wildcard request-header name,\n // delete headerName from request\u2019s header list.\n if (!sameOrigin(requestCurrentURL(request), locationURL)) {\n // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n request.headersList.delete('authorization')\n }\n\n // 14. If request\u2019s body is non-null, then set request\u2019s body to the first return\n // value of safely extracting request\u2019s body\u2019s source.\n if (request.body != null) {\n assert(request.body.source != null)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 15. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 16. Set timingInfo\u2019s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 17. If timingInfo\u2019s redirect start time is 0, then set timingInfo\u2019s\n // redirect start time to timingInfo\u2019s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 18. Append locationURL to request\u2019s URL list.\n request.urlList.push(locationURL)\n\n // 19. Invoke set request\u2019s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 20. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request\u2019s window is \"no-window\" and request\u2019s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams\u2019s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest\u2019s body\u2019s length, if httpRequest\u2019s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest\u2019s body is null and httpRequest\u2019s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest\u2019s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest\u2019s header list.\n\n // 10. If contentLength is non-null and httpRequest\u2019s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest\u2019s referrer is a URL, then append\n // `Referer`/httpRequest\u2019s referrer, serialized and isomorphic encoded,\n // to httpRequest\u2019s header list.\n if (httpRequest.referrer instanceof URL) {\n httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href))\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest\u2019s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('user-agent')) {\n httpRequest.headersList.append('user-agent', 'undici')\n }\n\n // 15. If httpRequest\u2019s cache mode is \"default\" and httpRequest\u2019s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest\u2019s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.contains('if-modified-since') ||\n httpRequest.headersList.contains('if-none-match') ||\n httpRequest.headersList.contains('if-unmodified-since') ||\n httpRequest.headersList.contains('if-match') ||\n httpRequest.headersList.contains('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest\u2019s cache mode is \"no-cache\", httpRequest\u2019s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest\u2019s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest\u2019s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.contains('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest\u2019s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest\u2019s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest\u2019s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest\u2019s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest\u2019s header list.\n if (httpRequest.headersList.contains('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest\u2019s header list per HTTP. Do not append a given\n // header if httpRequest\u2019s header list contains that header\u2019s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.contains('accept-encoding')) {\n if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest\u2019s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there\u2019s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest\u2019s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest\u2019s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest\u2019s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest\u2019s method is unsafe and forwardResponse\u2019s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethods.includes(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse\u2019s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response\u2019s URL list to a clone of httpRequest\u2019s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest\u2019s header list contains `Range`, then set response\u2019s\n // range-requested flag.\n if (httpRequest.headersList.contains('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response\u2019s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response\u2019s status is 401, httpRequest\u2019s response tainting is not\n // \"cors\", includeCredentials is true, and request\u2019s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response\u2019s status is 407, then:\n if (response.status === 407) {\n // 1. If request\u2019s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request\u2019s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response\u2019s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request\u2019s body is null, or request\u2019s body is non-null and request\u2019s body\u2019s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request\u2019s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request\u2019s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request\u2019s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request\u2019s current URL\u2019s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo\u2019s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection\u2019s\n // timing info, timingInfo\u2019s post-redirect start time, and fetchParams\u2019s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request\u2019s header list.\n\n // 4. Set timingInfo\u2019s final network-request start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request\u2019s body is non-null, and request\u2019s body\u2019s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request\u2019s body in that buffer. If the user agent reads from\n // request\u2019s body beyond that buffer\u2019s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo\u2019s final network-response start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated capability,\n // immediately after the user agent\u2019s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo\u2019s final network-response start time above.\n\n // - If request\u2019s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request\u2019s window is an environment settings object, make the\n // dialog available in request\u2019s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request\u2019s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams\u2019s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams\u2019s process request\n // end-of-body and fetchParams\u2019s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams\u2019s process request body is non-null, then run\n // fetchParams\u2019s process request body given bytes\u2019s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams\u2019s process request end-of-body is non-null,\n // then run fetchParams\u2019s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams\u2019s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request\u2019s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams\u2019s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n // socket is only provided for websockets\n const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody })\n\n if (socket) {\n response = makeResponse({ status, statusText, headersList, socket })\n } else {\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n }\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams\u2019s\n // controller with reason, given reason.\n const cancelAlgorithm = (reason) => {\n fetchParams.controller.abort(reason)\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n {\n highWaterMark: 0,\n size () {\n return 1\n }\n }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response\u2019s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request\u2019s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response\u2019s header list, if any, and request\u2019s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n let isFailure\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n\n // err may be propagated from the result of calling readablestream.cancel,\n // which might not be an error. https://github.com/nodejs/undici/issues/2009\n isFailure = true\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response\u2019s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n readableStreamClose(fetchParams.controller.controller)\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo\u2019s decoded body size by bytes\u2019s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams\u2019s controller.\n if (isFailure) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn\u2019t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response\u2019s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, then error stream with the result of\n // deserialize a serialized abort reason given fetchParams\u2019s\n // controller\u2019s serialized abort reason and an\n // implementation-defined realm.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n fetchParams.controller.serializedAbortReason\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n /** @type {import('../..').Agent} */\n const agent = fetchParams.controller.dispatcher\n\n return new Promise((resolve, reject) => agent.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && request.body.source : body,\n headers: request.headersList.entries,\n maxRedirections: 0,\n upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse()\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers.append(key, val)\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatus.includes(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n if (coding === 'x-gzip' || coding === 'gzip') {\n decoders.push(zlib.createGunzip({\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n }))\n } else if (coding === 'deflate') {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response\u2019s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response\u2019s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo\u2019s encoded body size by bytes\u2019s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n },\n\n onUpgrade (status, headersList, socket) {\n if (status !== 101) {\n return\n }\n\n const headers = new Headers()\n\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n headers.append(key, val)\n }\n\n resolve({\n status,\n statusText: STATUS_CODES[status],\n headersList: headers[kHeadersList],\n socket\n })\n\n return true\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n", "'use strict'\n\nmodule.exports = {\n kState: Symbol('FileReader state'),\n kResult: Symbol('FileReader result'),\n kError: Symbol('FileReader error'),\n kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'),\n kEvents: Symbol('FileReader events'),\n kAborted: Symbol('FileReader aborted')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\n\nconst kState = Symbol('ProgressEvent state')\n\n/**\n * @see https://xhr.spec.whatwg.org/#progressevent\n */\nclass ProgressEvent extends Event {\n constructor (type, eventInitDict = {}) {\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {})\n\n super(type, eventInitDict)\n\n this[kState] = {\n lengthComputable: eventInitDict.lengthComputable,\n loaded: eventInitDict.loaded,\n total: eventInitDict.total\n }\n }\n\n get lengthComputable () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].lengthComputable\n }\n\n get loaded () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].loaded\n }\n\n get total () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].total\n }\n}\n\nwebidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n {\n key: 'lengthComputable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'loaded',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'total',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n])\n\nmodule.exports = {\n ProgressEvent\n}\n", "'use strict'\n\n/**\n * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n * @param {string|undefined} label\n */\nfunction getEncoding (label) {\n if (!label) {\n return 'failure'\n }\n\n // 1. Remove any leading and trailing ASCII whitespace from label.\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, then return the\n // corresponding encoding; otherwise return failure.\n switch (label.trim().toLowerCase()) {\n case 'unicode-1-1-utf-8':\n case 'unicode11utf8':\n case 'unicode20utf8':\n case 'utf-8':\n case 'utf8':\n case 'x-unicode20utf8':\n return 'UTF-8'\n case '866':\n case 'cp866':\n case 'csibm866':\n case 'ibm866':\n return 'IBM866'\n case 'csisolatin2':\n case 'iso-8859-2':\n case 'iso-ir-101':\n case 'iso8859-2':\n case 'iso88592':\n case 'iso_8859-2':\n case 'iso_8859-2:1987':\n case 'l2':\n case 'latin2':\n return 'ISO-8859-2'\n case 'csisolatin3':\n case 'iso-8859-3':\n case 'iso-ir-109':\n case 'iso8859-3':\n case 'iso88593':\n case 'iso_8859-3':\n case 'iso_8859-3:1988':\n case 'l3':\n case 'latin3':\n return 'ISO-8859-3'\n case 'csisolatin4':\n case 'iso-8859-4':\n case 'iso-ir-110':\n case 'iso8859-4':\n case 'iso88594':\n case 'iso_8859-4':\n case 'iso_8859-4:1988':\n case 'l4':\n case 'latin4':\n return 'ISO-8859-4'\n case 'csisolatincyrillic':\n case 'cyrillic':\n case 'iso-8859-5':\n case 'iso-ir-144':\n case 'iso8859-5':\n case 'iso88595':\n case 'iso_8859-5':\n case 'iso_8859-5:1988':\n return 'ISO-8859-5'\n case 'arabic':\n case 'asmo-708':\n case 'csiso88596e':\n case 'csiso88596i':\n case 'csisolatinarabic':\n case 'ecma-114':\n case 'iso-8859-6':\n case 'iso-8859-6-e':\n case 'iso-8859-6-i':\n case 'iso-ir-127':\n case 'iso8859-6':\n case 'iso88596':\n case 'iso_8859-6':\n case 'iso_8859-6:1987':\n return 'ISO-8859-6'\n case 'csisolatingreek':\n case 'ecma-118':\n case 'elot_928':\n case 'greek':\n case 'greek8':\n case 'iso-8859-7':\n case 'iso-ir-126':\n case 'iso8859-7':\n case 'iso88597':\n case 'iso_8859-7':\n case 'iso_8859-7:1987':\n case 'sun_eu_greek':\n return 'ISO-8859-7'\n case 'csiso88598e':\n case 'csisolatinhebrew':\n case 'hebrew':\n case 'iso-8859-8':\n case 'iso-8859-8-e':\n case 'iso-ir-138':\n case 'iso8859-8':\n case 'iso88598':\n case 'iso_8859-8':\n case 'iso_8859-8:1988':\n case 'visual':\n return 'ISO-8859-8'\n case 'csiso88598i':\n case 'iso-8859-8-i':\n case 'logical':\n return 'ISO-8859-8-I'\n case 'csisolatin6':\n case 'iso-8859-10':\n case 'iso-ir-157':\n case 'iso8859-10':\n case 'iso885910':\n case 'l6':\n case 'latin6':\n return 'ISO-8859-10'\n case 'iso-8859-13':\n case 'iso8859-13':\n case 'iso885913':\n return 'ISO-8859-13'\n case 'iso-8859-14':\n case 'iso8859-14':\n case 'iso885914':\n return 'ISO-8859-14'\n case 'csisolatin9':\n case 'iso-8859-15':\n case 'iso8859-15':\n case 'iso885915':\n case 'iso_8859-15':\n case 'l9':\n return 'ISO-8859-15'\n case 'iso-8859-16':\n return 'ISO-8859-16'\n case 'cskoi8r':\n case 'koi':\n case 'koi8':\n case 'koi8-r':\n case 'koi8_r':\n return 'KOI8-R'\n case 'koi8-ru':\n case 'koi8-u':\n return 'KOI8-U'\n case 'csmacintosh':\n case 'mac':\n case 'macintosh':\n case 'x-mac-roman':\n return 'macintosh'\n case 'iso-8859-11':\n case 'iso8859-11':\n case 'iso885911':\n case 'tis-620':\n case 'windows-874':\n return 'windows-874'\n case 'cp1250':\n case 'windows-1250':\n case 'x-cp1250':\n return 'windows-1250'\n case 'cp1251':\n case 'windows-1251':\n case 'x-cp1251':\n return 'windows-1251'\n case 'ansi_x3.4-1968':\n case 'ascii':\n case 'cp1252':\n case 'cp819':\n case 'csisolatin1':\n case 'ibm819':\n case 'iso-8859-1':\n case 'iso-ir-100':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'iso_8859-1:1987':\n case 'l1':\n case 'latin1':\n case 'us-ascii':\n case 'windows-1252':\n case 'x-cp1252':\n return 'windows-1252'\n case 'cp1253':\n case 'windows-1253':\n case 'x-cp1253':\n return 'windows-1253'\n case 'cp1254':\n case 'csisolatin5':\n case 'iso-8859-9':\n case 'iso-ir-148':\n case 'iso8859-9':\n case 'iso88599':\n case 'iso_8859-9':\n case 'iso_8859-9:1989':\n case 'l5':\n case 'latin5':\n case 'windows-1254':\n case 'x-cp1254':\n return 'windows-1254'\n case 'cp1255':\n case 'windows-1255':\n case 'x-cp1255':\n return 'windows-1255'\n case 'cp1256':\n case 'windows-1256':\n case 'x-cp1256':\n return 'windows-1256'\n case 'cp1257':\n case 'windows-1257':\n case 'x-cp1257':\n return 'windows-1257'\n case 'cp1258':\n case 'windows-1258':\n case 'x-cp1258':\n return 'windows-1258'\n case 'x-mac-cyrillic':\n case 'x-mac-ukrainian':\n return 'x-mac-cyrillic'\n case 'chinese':\n case 'csgb2312':\n case 'csiso58gb231280':\n case 'gb2312':\n case 'gb_2312':\n case 'gb_2312-80':\n case 'gbk':\n case 'iso-ir-58':\n case 'x-gbk':\n return 'GBK'\n case 'gb18030':\n return 'gb18030'\n case 'big5':\n case 'big5-hkscs':\n case 'cn-big5':\n case 'csbig5':\n case 'x-x-big5':\n return 'Big5'\n case 'cseucpkdfmtjapanese':\n case 'euc-jp':\n case 'x-euc-jp':\n return 'EUC-JP'\n case 'csiso2022jp':\n case 'iso-2022-jp':\n return 'ISO-2022-JP'\n case 'csshiftjis':\n case 'ms932':\n case 'ms_kanji':\n case 'shift-jis':\n case 'shift_jis':\n case 'sjis':\n case 'windows-31j':\n case 'x-sjis':\n return 'Shift_JIS'\n case 'cseuckr':\n case 'csksc56011987':\n case 'euc-kr':\n case 'iso-ir-149':\n case 'korean':\n case 'ks_c_5601-1987':\n case 'ks_c_5601-1989':\n case 'ksc5601':\n case 'ksc_5601':\n case 'windows-949':\n return 'EUC-KR'\n case 'csiso2022kr':\n case 'hz-gb-2312':\n case 'iso-2022-cn':\n case 'iso-2022-cn-ext':\n case 'iso-2022-kr':\n case 'replacement':\n return 'replacement'\n case 'unicodefffe':\n case 'utf-16be':\n return 'UTF-16BE'\n case 'csunicode':\n case 'iso-10646-ucs-2':\n case 'ucs-2':\n case 'unicode':\n case 'unicodefeff':\n case 'utf-16':\n case 'utf-16le':\n return 'UTF-16LE'\n case 'x-user-defined':\n return 'x-user-defined'\n default: return 'failure'\n }\n}\n\nmodule.exports = {\n getEncoding\n}\n", "'use strict'\n\nconst {\n kState,\n kError,\n kResult,\n kAborted,\n kLastProgressEventFired\n} = require('./symbols')\nconst { ProgressEvent } = require('./progressevent')\nconst { getEncoding } = require('./encoding')\nconst { DOMException } = require('../fetch/constants')\nconst { serializeAMimeType, parseMIMEType } = require('../fetch/dataURL')\nconst { types } = require('util')\nconst { StringDecoder } = require('string_decoder')\nconst { btoa } = require('buffer')\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#readOperation\n * @param {import('./filereader').FileReader} fr\n * @param {import('buffer').Blob} blob\n * @param {string} type\n * @param {string?} encodingName\n */\nfunction readOperation (fr, blob, type, encodingName) {\n // 1. If fr\u2019s state is \"loading\", throw an InvalidStateError\n // DOMException.\n if (fr[kState] === 'loading') {\n throw new DOMException('Invalid state', 'InvalidStateError')\n }\n\n // 2. Set fr\u2019s state to \"loading\".\n fr[kState] = 'loading'\n\n // 3. Set fr\u2019s result to null.\n fr[kResult] = null\n\n // 4. Set fr\u2019s error to null.\n fr[kError] = null\n\n // 5. Let stream be the result of calling get stream on blob.\n /** @type {import('stream/web').ReadableStream} */\n const stream = blob.stream()\n\n // 6. Let reader be the result of getting a reader from stream.\n const reader = stream.getReader()\n\n // 7. Let bytes be an empty byte sequence.\n /** @type {Uint8Array[]} */\n const bytes = []\n\n // 8. Let chunkPromise be the result of reading a chunk from\n // stream with reader.\n let chunkPromise = reader.read()\n\n // 9. Let isFirstChunk be true.\n let isFirstChunk = true\n\n // 10. In parallel, while true:\n // Note: \"In parallel\" just means non-blocking\n // Note 2: readOperation itself cannot be async as double\n // reading the body would then reject the promise, instead\n // of throwing an error.\n ;(async () => {\n while (!fr[kAborted]) {\n // 1. Wait for chunkPromise to be fulfilled or rejected.\n try {\n const { done, value } = await chunkPromise\n\n // 2. If chunkPromise is fulfilled, and isFirstChunk is\n // true, queue a task to fire a progress event called\n // loadstart at fr.\n if (isFirstChunk && !fr[kAborted]) {\n queueMicrotask(() => {\n fireAProgressEvent('loadstart', fr)\n })\n }\n\n // 3. Set isFirstChunk to false.\n isFirstChunk = false\n\n // 4. If chunkPromise is fulfilled with an object whose\n // done property is false and whose value property is\n // a Uint8Array object, run these steps:\n if (!done && types.isUint8Array(value)) {\n // 1. Let bs be the byte sequence represented by the\n // Uint8Array object.\n\n // 2. Append bs to bytes.\n bytes.push(value)\n\n // 3. If roughly 50ms have passed since these steps\n // were last invoked, queue a task to fire a\n // progress event called progress at fr.\n if (\n (\n fr[kLastProgressEventFired] === undefined ||\n Date.now() - fr[kLastProgressEventFired] >= 50\n ) &&\n !fr[kAborted]\n ) {\n fr[kLastProgressEventFired] = Date.now()\n queueMicrotask(() => {\n fireAProgressEvent('progress', fr)\n })\n }\n\n // 4. Set chunkPromise to the result of reading a\n // chunk from stream with reader.\n chunkPromise = reader.read()\n } else if (done) {\n // 5. Otherwise, if chunkPromise is fulfilled with an\n // object whose done property is true, queue a task\n // to run the following steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Let result be the result of package data given\n // bytes, type, blob\u2019s type, and encodingName.\n try {\n const result = packageData(bytes, type, blob.type, encodingName)\n\n // 4. Else:\n\n if (fr[kAborted]) {\n return\n }\n\n // 1. Set fr\u2019s result to result.\n fr[kResult] = result\n\n // 2. Fire a progress event called load at the fr.\n fireAProgressEvent('load', fr)\n } catch (error) {\n // 3. If package data threw an exception error:\n\n // 1. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 2. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n }\n\n // 5. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at the fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n } catch (error) {\n if (fr[kAborted]) {\n return\n }\n\n // 6. Otherwise, if chunkPromise is rejected with an\n // error error, queue a task to run the following\n // steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 3. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n\n // 4. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n }\n })()\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e The name of the event\n * @param {import('./filereader').FileReader} reader\n */\nfunction fireAProgressEvent (e, reader) {\n // The progress event e does not bubble. e.bubbles must be false\n // The progress event e is NOT cancelable. e.cancelable must be false\n const event = new ProgressEvent(e, {\n bubbles: false,\n cancelable: false\n })\n\n reader.dispatchEvent(event)\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#blob-package-data\n * @param {Uint8Array[]} bytes\n * @param {string} type\n * @param {string?} mimeType\n * @param {string?} encodingName\n */\nfunction packageData (bytes, type, mimeType, encodingName) {\n // 1. A Blob has an associated package data algorithm, given\n // bytes, a type, a optional mimeType, and a optional\n // encodingName, which switches on type and runs the\n // associated steps:\n\n switch (type) {\n case 'DataURL': {\n // 1. Return bytes as a DataURL [RFC2397] subject to\n // the considerations below:\n // * Use mimeType as part of the Data URL if it is\n // available in keeping with the Data URL\n // specification [RFC2397].\n // * If mimeType is not available return a Data URL\n // without a media-type. [RFC2397].\n\n // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n // dataurl := \"data:\" [ mediatype ] [ \";base64\" ] \",\" data\n // mediatype := [ type \"/\" subtype ] *( \";\" parameter )\n // data := *urlchar\n // parameter := attribute \"=\" value\n let dataURL = 'data:'\n\n const parsed = parseMIMEType(mimeType || 'application/octet-stream')\n\n if (parsed !== 'failure') {\n dataURL += serializeAMimeType(parsed)\n }\n\n dataURL += ';base64,'\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n dataURL += btoa(decoder.write(chunk))\n }\n\n dataURL += btoa(decoder.end())\n\n return dataURL\n }\n case 'Text': {\n // 1. Let encoding be failure\n let encoding = 'failure'\n\n // 2. If the encodingName is present, set encoding to the\n // result of getting an encoding from encodingName.\n if (encodingName) {\n encoding = getEncoding(encodingName)\n }\n\n // 3. If encoding is failure, and mimeType is present:\n if (encoding === 'failure' && mimeType) {\n // 1. Let type be the result of parse a MIME type\n // given mimeType.\n const type = parseMIMEType(mimeType)\n\n // 2. If type is not failure, set encoding to the result\n // of getting an encoding from type\u2019s parameters[\"charset\"].\n if (type !== 'failure') {\n encoding = getEncoding(type.parameters.get('charset'))\n }\n }\n\n // 4. If encoding is failure, then set encoding to UTF-8.\n if (encoding === 'failure') {\n encoding = 'UTF-8'\n }\n\n // 5. Decode bytes using fallback encoding encoding, and\n // return the result.\n return decode(bytes, encoding)\n }\n case 'ArrayBuffer': {\n // Return a new ArrayBuffer whose contents are bytes.\n const sequence = combineByteSequences(bytes)\n\n return sequence.buffer\n }\n case 'BinaryString': {\n // Return bytes as a binary string, in which every byte\n // is represented by a code unit of equal value [0..255].\n let binaryString = ''\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n binaryString += decoder.write(chunk)\n }\n\n binaryString += decoder.end()\n\n return binaryString\n }\n }\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#decode\n * @param {Uint8Array[]} ioQueue\n * @param {string} encoding\n */\nfunction decode (ioQueue, encoding) {\n const bytes = combineByteSequences(ioQueue)\n\n // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n const BOMEncoding = BOMSniffing(bytes)\n\n let slice = 0\n\n // 2. If BOMEncoding is non-null:\n if (BOMEncoding !== null) {\n // 1. Set encoding to BOMEncoding.\n encoding = BOMEncoding\n\n // 2. Read three bytes from ioQueue, if BOMEncoding is\n // UTF-8; otherwise read two bytes.\n // (Do nothing with those bytes.)\n slice = BOMEncoding === 'UTF-8' ? 3 : 2\n }\n\n // 3. Process a queue with an instance of encoding\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n\n // 4. Return output.\n\n const sliced = bytes.slice(slice)\n return new TextDecoder(encoding).decode(sliced)\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#bom-sniff\n * @param {Uint8Array} ioQueue\n */\nfunction BOMSniffing (ioQueue) {\n // 1. Let BOM be the result of peeking 3 bytes from ioQueue,\n // converted to a byte sequence.\n const [a, b, c] = ioQueue\n\n // 2. For each of the rows in the table below, starting with\n // the first one and going down, if BOM starts with the\n // bytes given in the first column, then return the\n // encoding given in the cell in the second column of that\n // row. Otherwise, return null.\n if (a === 0xEF && b === 0xBB && c === 0xBF) {\n return 'UTF-8'\n } else if (a === 0xFE && b === 0xFF) {\n return 'UTF-16BE'\n } else if (a === 0xFF && b === 0xFE) {\n return 'UTF-16LE'\n }\n\n return null\n}\n\n/**\n * @param {Uint8Array[]} sequences\n */\nfunction combineByteSequences (sequences) {\n const size = sequences.reduce((a, b) => {\n return a + b.byteLength\n }, 0)\n\n let offset = 0\n\n return sequences.reduce((a, b) => {\n a.set(b, offset)\n offset += b.byteLength\n return a\n }, new Uint8Array(size))\n}\n\nmodule.exports = {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n}\n", "'use strict'\n\nconst {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n} = require('./util')\nconst {\n kState,\n kError,\n kResult,\n kEvents,\n kAborted\n} = require('./symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass FileReader extends EventTarget {\n constructor () {\n super()\n\n this[kState] = 'empty'\n this[kResult] = null\n this[kError] = null\n this[kEvents] = {\n loadend: null,\n error: null,\n abort: null,\n load: null,\n progress: null,\n loadstart: null\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n * @param {import('buffer').Blob} blob\n */\n readAsArrayBuffer (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsArrayBuffer(blob) method, when invoked,\n // must initiate a read operation for blob with ArrayBuffer.\n readOperation(this, blob, 'ArrayBuffer')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n * @param {import('buffer').Blob} blob\n */\n readAsBinaryString (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsBinaryString(blob) method, when invoked,\n // must initiate a read operation for blob with BinaryString.\n readOperation(this, blob, 'BinaryString')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsDataText\n * @param {import('buffer').Blob} blob\n * @param {string?} encoding\n */\n readAsText (blob, encoding = undefined) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n if (encoding !== undefined) {\n encoding = webidl.converters.DOMString(encoding)\n }\n\n // The readAsText(blob, encoding) method, when invoked,\n // must initiate a read operation for blob with Text and encoding.\n readOperation(this, blob, 'Text', encoding)\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n * @param {import('buffer').Blob} blob\n */\n readAsDataURL (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsDataURL(blob) method, when invoked, must\n // initiate a read operation for blob with DataURL.\n readOperation(this, blob, 'DataURL')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-abort\n */\n abort () {\n // 1. If this's state is \"empty\" or if this's state is\n // \"done\" set this's result to null and terminate\n // this algorithm.\n if (this[kState] === 'empty' || this[kState] === 'done') {\n this[kResult] = null\n return\n }\n\n // 2. If this's state is \"loading\" set this's state to\n // \"done\" and set this's result to null.\n if (this[kState] === 'loading') {\n this[kState] = 'done'\n this[kResult] = null\n }\n\n // 3. If there are any tasks from this on the file reading\n // task source in an affiliated task queue, then remove\n // those tasks from that task queue.\n this[kAborted] = true\n\n // 4. Terminate the algorithm for the read method being processed.\n // TODO\n\n // 5. Fire a progress event called abort at this.\n fireAProgressEvent('abort', this)\n\n // 6. If this's state is not \"loading\", fire a progress\n // event called loadend at this.\n if (this[kState] !== 'loading') {\n fireAProgressEvent('loadend', this)\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n */\n get readyState () {\n webidl.brandCheck(this, FileReader)\n\n switch (this[kState]) {\n case 'empty': return this.EMPTY\n case 'loading': return this.LOADING\n case 'done': return this.DONE\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n */\n get result () {\n webidl.brandCheck(this, FileReader)\n\n // The result attribute\u2019s getter, when invoked, must return\n // this's result.\n return this[kResult]\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n */\n get error () {\n webidl.brandCheck(this, FileReader)\n\n // The error attribute\u2019s getter, when invoked, must return\n // this's error.\n return this[kError]\n }\n\n get onloadend () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadend\n }\n\n set onloadend (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadend) {\n this.removeEventListener('loadend', this[kEvents].loadend)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadend = fn\n this.addEventListener('loadend', fn)\n } else {\n this[kEvents].loadend = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].error) {\n this.removeEventListener('error', this[kEvents].error)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].error = fn\n this.addEventListener('error', fn)\n } else {\n this[kEvents].error = null\n }\n }\n\n get onloadstart () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadstart\n }\n\n set onloadstart (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadstart) {\n this.removeEventListener('loadstart', this[kEvents].loadstart)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadstart = fn\n this.addEventListener('loadstart', fn)\n } else {\n this[kEvents].loadstart = null\n }\n }\n\n get onprogress () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].progress\n }\n\n set onprogress (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].progress) {\n this.removeEventListener('progress', this[kEvents].progress)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].progress = fn\n this.addEventListener('progress', fn)\n } else {\n this[kEvents].progress = null\n }\n }\n\n get onload () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].load\n }\n\n set onload (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].load) {\n this.removeEventListener('load', this[kEvents].load)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].load = fn\n this.addEventListener('load', fn)\n } else {\n this[kEvents].load = null\n }\n }\n\n get onabort () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].abort\n }\n\n set onabort (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].abort) {\n this.removeEventListener('abort', this[kEvents].abort)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].abort = fn\n this.addEventListener('abort', fn)\n } else {\n this[kEvents].abort = null\n }\n }\n}\n\n// https://w3c.github.io/FileAPI/#dom-filereader-empty\nFileReader.EMPTY = FileReader.prototype.EMPTY = 0\n// https://w3c.github.io/FileAPI/#dom-filereader-loading\nFileReader.LOADING = FileReader.prototype.LOADING = 1\n// https://w3c.github.io/FileAPI/#dom-filereader-done\nFileReader.DONE = FileReader.prototype.DONE = 2\n\nObject.defineProperties(FileReader.prototype, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors,\n readAsArrayBuffer: kEnumerableProperty,\n readAsBinaryString: kEnumerableProperty,\n readAsText: kEnumerableProperty,\n readAsDataURL: kEnumerableProperty,\n abort: kEnumerableProperty,\n readyState: kEnumerableProperty,\n result: kEnumerableProperty,\n error: kEnumerableProperty,\n onloadstart: kEnumerableProperty,\n onprogress: kEnumerableProperty,\n onload: kEnumerableProperty,\n onabort: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onloadend: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'FileReader',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(FileReader, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors\n})\n\nmodule.exports = {\n FileReader\n}\n", "'use strict'\n\nmodule.exports = {\n kConstruct: Symbol('constructable')\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { isValidHeaderName } = require('../fetch/util')\n\n/**\n * @see https://url.spec.whatwg.org/#concept-url-equals\n * @param {URL} A\n * @param {URL} B\n * @param {boolean | undefined} excludeFragment\n * @returns {boolean}\n */\nfunction urlEquals (A, B, excludeFragment = false) {\n const serializedA = URLSerializer(A, excludeFragment)\n\n const serializedB = URLSerializer(B, excludeFragment)\n\n return serializedA === serializedB\n}\n\n/**\n * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262\n * @param {string} header\n */\nfunction fieldValues (header) {\n assert(header !== null)\n\n const values = []\n\n for (let value of header.split(',')) {\n value = value.trim()\n\n if (!value.length) {\n continue\n } else if (!isValidHeaderName(value)) {\n continue\n }\n\n values.push(value)\n }\n\n return values\n}\n\nmodule.exports = {\n urlEquals,\n fieldValues\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { urlEquals, fieldValues: getFieldValues } = require('./util')\nconst { kEnumerableProperty, isDisturbed } = require('../core/util')\nconst { kHeadersList } = require('../core/symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { Response, cloneResponse } = require('../fetch/response')\nconst { Request } = require('../fetch/request')\nconst { kState, kHeaders, kGuard, kRealm } = require('../fetch/symbols')\nconst { fetching } = require('../fetch/index')\nconst { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')\nconst assert = require('assert')\nconst { getGlobalDispatcher } = require('../global')\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation\n * @typedef {Object} CacheBatchOperation\n * @property {'delete' | 'put'} type\n * @property {any} request\n * @property {any} response\n * @property {import('../../types/cache').CacheQueryOptions} options\n */\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list\n * @typedef {[any, any][]} requestResponseList\n */\n\nclass Cache {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list\n * @type {requestResponseList}\n */\n #relevantRequestResponseList\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n\n this.#relevantRequestResponseList = arguments[1]\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n const p = await this.matchAll(request, options)\n\n if (p.length === 0) {\n return\n }\n\n return p[0]\n }\n\n async matchAll (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') {\n // 2.2.1\n r = new Request(request)[kState]\n }\n }\n\n // 5.\n // 5.1\n const responses = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n responses.push(requestResponse[1])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n responses.push(requestResponse[1])\n }\n }\n\n // 5.4\n // We don't implement CORs so we don't need to loop over the responses, yay!\n\n // 5.5.1\n const responseList = []\n\n // 5.5.2\n for (const response of responses) {\n // 5.5.2.1\n const responseObject = new Response(response.body?.source ?? null)\n const body = responseObject[kState].body\n responseObject[kState] = response\n responseObject[kState].body = body\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n\n responseList.push(responseObject)\n }\n\n // 6.\n return Object.freeze(responseList)\n }\n\n async add (request) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })\n\n request = webidl.converters.RequestInfo(request)\n\n // 1.\n const requests = [request]\n\n // 2.\n const responseArrayPromise = this.addAll(requests)\n\n // 3.\n return await responseArrayPromise\n }\n\n async addAll (requests) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })\n\n requests = webidl.converters['sequence<RequestInfo>'](requests)\n\n // 1.\n const responsePromises = []\n\n // 2.\n const requestList = []\n\n // 3.\n for (const request of requests) {\n if (typeof request === 'string') {\n continue\n }\n\n // 3.1\n const r = request[kState]\n\n // 3.2\n if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme when method is not GET.'\n })\n }\n }\n\n // 4.\n /** @type {ReturnType<typeof fetching>[]} */\n const fetchControllers = []\n\n // 5.\n for (const request of requests) {\n // 5.1\n const r = new Request(request)[kState]\n\n // 5.2\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme.'\n })\n }\n\n // 5.4\n r.initiator = 'fetch'\n r.destination = 'subresource'\n\n // 5.5\n requestList.push(r)\n\n // 5.6\n const responsePromise = createDeferredPromise()\n\n // 5.7\n fetchControllers.push(fetching({\n request: r,\n dispatcher: getGlobalDispatcher(),\n processResponse (response) {\n // 1.\n if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Received an invalid status code or the request failed.'\n }))\n } else if (response.headersList.contains('vary')) { // 2.\n // 2.1\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n // 2.2\n for (const fieldValue of fieldValues) {\n // 2.2.1\n if (fieldValue === '*') {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'invalid vary field value'\n }))\n\n for (const controller of fetchControllers) {\n controller.abort()\n }\n\n return\n }\n }\n }\n },\n processResponseEndOfBody (response) {\n // 1.\n if (response.aborted) {\n responsePromise.reject(new DOMException('aborted', 'AbortError'))\n return\n }\n\n // 2.\n responsePromise.resolve(response)\n }\n }))\n\n // 5.8\n responsePromises.push(responsePromise.promise)\n }\n\n // 6.\n const p = Promise.all(responsePromises)\n\n // 7.\n const responses = await p\n\n // 7.1\n const operations = []\n\n // 7.2\n let index = 0\n\n // 7.3\n for (const response of responses) {\n // 7.3.1\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 7.3.2\n request: requestList[index], // 7.3.3\n response // 7.3.4\n }\n\n operations.push(operation) // 7.3.5\n\n index++ // 7.3.6\n }\n\n // 7.5\n const cacheJobPromise = createDeferredPromise()\n\n // 7.6.1\n let errorData = null\n\n // 7.6.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 7.6.3\n queueMicrotask(() => {\n // 7.6.3.1\n if (errorData === null) {\n cacheJobPromise.resolve(undefined)\n } else {\n // 7.6.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n // 7.7\n return cacheJobPromise.promise\n }\n\n async put (request, response) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })\n\n request = webidl.converters.RequestInfo(request)\n response = webidl.converters.Response(response)\n\n // 1.\n let innerRequest = null\n\n // 2.\n if (request instanceof Request) {\n innerRequest = request[kState]\n } else { // 3.\n innerRequest = new Request(request)[kState]\n }\n\n // 4.\n if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Expected an http/s scheme when method is not GET'\n })\n }\n\n // 5.\n const innerResponse = response[kState]\n\n // 6.\n if (innerResponse.status === 206) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got 206 status'\n })\n }\n\n // 7.\n if (innerResponse.headersList.contains('vary')) {\n // 7.1.\n const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))\n\n // 7.2.\n for (const fieldValue of fieldValues) {\n // 7.2.1\n if (fieldValue === '*') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got * vary field value'\n })\n }\n }\n }\n\n // 8.\n if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Response body is locked or disturbed'\n })\n }\n\n // 9.\n const clonedResponse = cloneResponse(innerResponse)\n\n // 10.\n const bodyReadPromise = createDeferredPromise()\n\n // 11.\n if (innerResponse.body != null) {\n // 11.1\n const stream = innerResponse.body.stream\n\n // 11.2\n const reader = stream.getReader()\n\n // 11.3\n readAllBytes(\n reader,\n (bytes) => bodyReadPromise.resolve(bytes),\n (error) => bodyReadPromise.reject(error)\n )\n } else {\n bodyReadPromise.resolve(undefined)\n }\n\n // 12.\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n // 13.\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 14.\n request: innerRequest, // 15.\n response: clonedResponse // 16.\n }\n\n // 17.\n operations.push(operation)\n\n // 19.\n const bytes = await bodyReadPromise.promise\n\n if (clonedResponse.body != null) {\n clonedResponse.body.source = bytes\n }\n\n // 19.1\n const cacheJobPromise = createDeferredPromise()\n\n // 19.2.1\n let errorData = null\n\n // 19.2.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 19.2.3\n queueMicrotask(() => {\n // 19.2.3.1\n if (errorData === null) {\n cacheJobPromise.resolve()\n } else { // 19.2.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n async delete (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n /**\n * @type {Request}\n */\n let r = null\n\n if (request instanceof Request) {\n r = request[kState]\n\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return false\n }\n } else {\n assert(typeof request === 'string')\n\n r = new Request(request)[kState]\n }\n\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'delete',\n request: r,\n options\n }\n\n operations.push(operation)\n\n const cacheJobPromise = createDeferredPromise()\n\n let errorData = null\n let requestResponses\n\n try {\n requestResponses = this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n queueMicrotask(() => {\n if (errorData === null) {\n cacheJobPromise.resolve(!!requestResponses?.length)\n } else {\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys\n * @param {any} request\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @returns {readonly Request[]}\n */\n async keys (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n // 2.1\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') { // 2.2\n r = new Request(request)[kState]\n }\n }\n\n // 4.\n const promise = createDeferredPromise()\n\n // 5.\n // 5.1\n const requests = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n // 5.2.1.1\n requests.push(requestResponse[0])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n // 5.3.2.1\n requests.push(requestResponse[0])\n }\n }\n\n // 5.4\n queueMicrotask(() => {\n // 5.4.1\n const requestList = []\n\n // 5.4.2\n for (const request of requests) {\n const requestObject = new Request('https://a')\n requestObject[kState] = request\n requestObject[kHeaders][kHeadersList] = request.headersList\n requestObject[kHeaders][kGuard] = 'immutable'\n requestObject[kRealm] = request.client\n\n // 5.4.2.1\n requestList.push(requestObject)\n }\n\n // 5.4.3\n promise.resolve(Object.freeze(requestList))\n })\n\n return promise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm\n * @param {CacheBatchOperation[]} operations\n * @returns {requestResponseList}\n */\n #batchCacheOperations (operations) {\n // 1.\n const cache = this.#relevantRequestResponseList\n\n // 2.\n const backupCache = [...cache]\n\n // 3.\n const addedItems = []\n\n // 4.1\n const resultList = []\n\n try {\n // 4.2\n for (const operation of operations) {\n // 4.2.1\n if (operation.type !== 'delete' && operation.type !== 'put') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'operation type does not match \"delete\" or \"put\"'\n })\n }\n\n // 4.2.2\n if (operation.type === 'delete' && operation.response != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'delete operation should not have an associated response'\n })\n }\n\n // 4.2.3\n if (this.#queryCache(operation.request, operation.options, addedItems).length) {\n throw new DOMException('???', 'InvalidStateError')\n }\n\n // 4.2.4\n let requestResponses\n\n // 4.2.5\n if (operation.type === 'delete') {\n // 4.2.5.1\n requestResponses = this.#queryCache(operation.request, operation.options)\n\n // TODO: the spec is wrong, this is needed to pass WPTs\n if (requestResponses.length === 0) {\n return []\n }\n\n // 4.2.5.2\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.5.2.1\n cache.splice(idx, 1)\n }\n } else if (operation.type === 'put') { // 4.2.6\n // 4.2.6.1\n if (operation.response == null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'put operation should have an associated response'\n })\n }\n\n // 4.2.6.2\n const r = operation.request\n\n // 4.2.6.3\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'expected http or https scheme'\n })\n }\n\n // 4.2.6.4\n if (r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'not get method'\n })\n }\n\n // 4.2.6.5\n if (operation.options != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'options must not be defined'\n })\n }\n\n // 4.2.6.6\n requestResponses = this.#queryCache(operation.request)\n\n // 4.2.6.7\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.6.7.1\n cache.splice(idx, 1)\n }\n\n // 4.2.6.8\n cache.push([operation.request, operation.response])\n\n // 4.2.6.10\n addedItems.push([operation.request, operation.response])\n }\n\n // 4.2.7\n resultList.push([operation.request, operation.response])\n }\n\n // 4.3\n return resultList\n } catch (e) { // 5.\n // 5.1\n this.#relevantRequestResponseList.length = 0\n\n // 5.2\n this.#relevantRequestResponseList = backupCache\n\n // 5.3\n throw e\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#query-cache\n * @param {any} requestQuery\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @param {requestResponseList} targetStorage\n * @returns {requestResponseList}\n */\n #queryCache (requestQuery, options, targetStorage) {\n /** @type {requestResponseList} */\n const resultList = []\n\n const storage = targetStorage ?? this.#relevantRequestResponseList\n\n for (const requestResponse of storage) {\n const [cachedRequest, cachedResponse] = requestResponse\n if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {\n resultList.push(requestResponse)\n }\n }\n\n return resultList\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm\n * @param {any} requestQuery\n * @param {any} request\n * @param {any | null} response\n * @param {import('../../types/cache').CacheQueryOptions | undefined} options\n * @returns {boolean}\n */\n #requestMatchesCachedItem (requestQuery, request, response = null, options) {\n // if (options?.ignoreMethod === false && request.method === 'GET') {\n // return false\n // }\n\n const queryURL = new URL(requestQuery.url)\n\n const cachedURL = new URL(request.url)\n\n if (options?.ignoreSearch) {\n cachedURL.search = ''\n\n queryURL.search = ''\n }\n\n if (!urlEquals(queryURL, cachedURL, true)) {\n return false\n }\n\n if (\n response == null ||\n options?.ignoreVary ||\n !response.headersList.contains('vary')\n ) {\n return true\n }\n\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n for (const fieldValue of fieldValues) {\n if (fieldValue === '*') {\n return false\n }\n\n const requestValue = request.headersList.get(fieldValue)\n const queryValue = requestQuery.headersList.get(fieldValue)\n\n // If one has the header and the other doesn't, or one has\n // a different value than the other, return false\n if (requestValue !== queryValue) {\n return false\n }\n }\n\n return true\n }\n}\n\nObject.defineProperties(Cache.prototype, {\n [Symbol.toStringTag]: {\n value: 'Cache',\n configurable: true\n },\n match: kEnumerableProperty,\n matchAll: kEnumerableProperty,\n add: kEnumerableProperty,\n addAll: kEnumerableProperty,\n put: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nconst cacheQueryOptionConverters = [\n {\n key: 'ignoreSearch',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreMethod',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreVary',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)\n\nwebidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([\n ...cacheQueryOptionConverters,\n {\n key: 'cacheName',\n converter: webidl.converters.DOMString\n }\n])\n\nwebidl.converters.Response = webidl.interfaceConverter(Response)\n\nwebidl.converters['sequence<RequestInfo>'] = webidl.sequenceConverter(\n webidl.converters.RequestInfo\n)\n\nmodule.exports = {\n Cache\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { Cache } = require('./cache')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass CacheStorage {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map\n * @type {Map<string, import('./cache').requestResponseList}\n */\n #caches = new Map()\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.MultiCacheQueryOptions(options)\n\n // 1.\n if (options.cacheName != null) {\n // 1.1.1.1\n if (this.#caches.has(options.cacheName)) {\n // 1.1.1.1.1\n const cacheList = this.#caches.get(options.cacheName)\n const cache = new Cache(kConstruct, cacheList)\n\n return await cache.match(request, options)\n }\n } else { // 2.\n // 2.2\n for (const cacheList of this.#caches.values()) {\n const cache = new Cache(kConstruct, cacheList)\n\n // 2.2.1.2\n const response = await cache.match(request, options)\n\n if (response !== undefined) {\n return response\n }\n }\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-has\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async has (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1.1\n // 2.2\n return this.#caches.has(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open\n * @param {string} cacheName\n * @returns {Promise<Cache>}\n */\n async open (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1\n if (this.#caches.has(cacheName)) {\n // await caches.open('v1') !== await caches.open('v1')\n\n // 2.1.1\n const cache = this.#caches.get(cacheName)\n\n // 2.1.1.1\n return new Cache(kConstruct, cache)\n }\n\n // 2.2\n const cache = []\n\n // 2.3\n this.#caches.set(cacheName, cache)\n\n // 2.4\n return new Cache(kConstruct, cache)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async delete (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n return this.#caches.delete(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys\n * @returns {string[]}\n */\n async keys () {\n webidl.brandCheck(this, CacheStorage)\n\n // 2.1\n const keys = this.#caches.keys()\n\n // 2.2\n return [...keys]\n }\n}\n\nObject.defineProperties(CacheStorage.prototype, {\n [Symbol.toStringTag]: {\n value: 'CacheStorage',\n configurable: true\n },\n match: kEnumerableProperty,\n has: kEnumerableProperty,\n open: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nmodule.exports = {\n CacheStorage\n}\n", "'use strict'\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\nconst maxAttributeValueSize = 1024\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\nconst maxNameValuePairSize = 4096\n\nmodule.exports = {\n maxAttributeValueSize,\n maxNameValuePairSize\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kHeadersList } = require('../core/symbols')\n\nfunction isCTLExcludingHtab (value) {\n if (value.length === 0) {\n return false\n }\n\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n (code >= 0x00 || code <= 0x08) ||\n (code >= 0x0A || code <= 0x1F) ||\n code === 0x7F\n ) {\n return false\n }\n }\n}\n\n/**\n CHAR = <any US-ASCII character (octets 0 - 127)>\n token = 1*<any CHAR except CTLs or separators>\n separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n | \",\" | \";\" | \":\" | \"\\\" | <\">\n | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n | \"{\" | \"}\" | SP | HT\n * @param {string} name\n */\nfunction validateCookieName (name) {\n for (const char of name) {\n const code = char.charCodeAt(0)\n\n if (\n (code <= 0x20 || code > 0x7F) ||\n char === '(' ||\n char === ')' ||\n char === '>' ||\n char === '<' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}'\n ) {\n throw new Error('Invalid cookie name')\n }\n }\n}\n\n/**\n cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n ; US-ASCII characters excluding CTLs,\n ; whitespace DQUOTE, comma, semicolon,\n ; and backslash\n * @param {string} value\n */\nfunction validateCookieValue (value) {\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 || // exclude CTLs (0-31)\n code === 0x22 ||\n code === 0x2C ||\n code === 0x3B ||\n code === 0x5C ||\n code > 0x7E // non-ascii\n ) {\n throw new Error('Invalid header value')\n }\n }\n}\n\n/**\n * path-value = <any CHAR except CTLs or \";\">\n * @param {string} path\n */\nfunction validateCookiePath (path) {\n for (const char of path) {\n const code = char.charCodeAt(0)\n\n if (code < 0x21 || char === ';') {\n throw new Error('Invalid cookie path')\n }\n }\n}\n\n/**\n * I have no idea why these values aren't allowed to be honest,\n * but Deno tests these. - Khafra\n * @param {string} domain\n */\nfunction validateCookieDomain (domain) {\n if (\n domain.startsWith('-') ||\n domain.endsWith('.') ||\n domain.endsWith('-')\n ) {\n throw new Error('Invalid cookie domain')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n * @param {number|Date} date\n IMF-fixdate = day-name \",\" SP date1 SP time-of-day SP GMT\n ; fixed length/zone/capitalization subset of the format\n ; see Section 3.3 of [RFC5322]\n\n day-name = %x4D.6F.6E ; \"Mon\", case-sensitive\n / %x54.75.65 ; \"Tue\", case-sensitive\n / %x57.65.64 ; \"Wed\", case-sensitive\n / %x54.68.75 ; \"Thu\", case-sensitive\n / %x46.72.69 ; \"Fri\", case-sensitive\n / %x53.61.74 ; \"Sat\", case-sensitive\n / %x53.75.6E ; \"Sun\", case-sensitive\n date1 = day SP month SP year\n ; e.g., 02 Jun 1982\n\n day = 2DIGIT\n month = %x4A.61.6E ; \"Jan\", case-sensitive\n / %x46.65.62 ; \"Feb\", case-sensitive\n / %x4D.61.72 ; \"Mar\", case-sensitive\n / %x41.70.72 ; \"Apr\", case-sensitive\n / %x4D.61.79 ; \"May\", case-sensitive\n / %x4A.75.6E ; \"Jun\", case-sensitive\n / %x4A.75.6C ; \"Jul\", case-sensitive\n / %x41.75.67 ; \"Aug\", case-sensitive\n / %x53.65.70 ; \"Sep\", case-sensitive\n / %x4F.63.74 ; \"Oct\", case-sensitive\n / %x4E.6F.76 ; \"Nov\", case-sensitive\n / %x44.65.63 ; \"Dec\", case-sensitive\n year = 4DIGIT\n\n GMT = %x47.4D.54 ; \"GMT\", case-sensitive\n\n time-of-day = hour \":\" minute \":\" second\n ; 00:00:00 - 23:59:60 (leap second)\n\n hour = 2DIGIT\n minute = 2DIGIT\n second = 2DIGIT\n */\nfunction toIMFDate (date) {\n if (typeof date === 'number') {\n date = new Date(date)\n }\n\n const days = [\n 'Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'\n ]\n\n const months = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ]\n\n const dayName = days[date.getUTCDay()]\n const day = date.getUTCDate().toString().padStart(2, '0')\n const month = months[date.getUTCMonth()]\n const year = date.getUTCFullYear()\n const hour = date.getUTCHours().toString().padStart(2, '0')\n const minute = date.getUTCMinutes().toString().padStart(2, '0')\n const second = date.getUTCSeconds().toString().padStart(2, '0')\n\n return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n}\n\n/**\n max-age-av = \"Max-Age=\" non-zero-digit *DIGIT\n ; In practice, both expires-av and max-age-av\n ; are limited to dates representable by the\n ; user agent.\n * @param {number} maxAge\n */\nfunction validateCookieMaxAge (maxAge) {\n if (maxAge < 0) {\n throw new Error('Invalid cookie max-age')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n * @param {import('./index').Cookie} cookie\n */\nfunction stringify (cookie) {\n if (cookie.name.length === 0) {\n return null\n }\n\n validateCookieName(cookie.name)\n validateCookieValue(cookie.value)\n\n const out = [`${cookie.name}=${cookie.value}`]\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n if (cookie.name.startsWith('__Secure-')) {\n cookie.secure = true\n }\n\n if (cookie.name.startsWith('__Host-')) {\n cookie.secure = true\n cookie.domain = null\n cookie.path = '/'\n }\n\n if (cookie.secure) {\n out.push('Secure')\n }\n\n if (cookie.httpOnly) {\n out.push('HttpOnly')\n }\n\n if (typeof cookie.maxAge === 'number') {\n validateCookieMaxAge(cookie.maxAge)\n out.push(`Max-Age=${cookie.maxAge}`)\n }\n\n if (cookie.domain) {\n validateCookieDomain(cookie.domain)\n out.push(`Domain=${cookie.domain}`)\n }\n\n if (cookie.path) {\n validateCookiePath(cookie.path)\n out.push(`Path=${cookie.path}`)\n }\n\n if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n out.push(`Expires=${toIMFDate(cookie.expires)}`)\n }\n\n if (cookie.sameSite) {\n out.push(`SameSite=${cookie.sameSite}`)\n }\n\n for (const part of cookie.unparsed) {\n if (!part.includes('=')) {\n throw new Error('Invalid unparsed')\n }\n\n const [key, ...value] = part.split('=')\n\n out.push(`${key.trim()}=${value.join('=')}`)\n }\n\n return out.join('; ')\n}\n\nlet kHeadersListNode\n\nfunction getHeadersList (headers) {\n if (headers[kHeadersList]) {\n return headers[kHeadersList]\n }\n\n if (!kHeadersListNode) {\n kHeadersListNode = Object.getOwnPropertySymbols(headers).find(\n (symbol) => symbol.description === 'headers list'\n )\n\n assert(kHeadersListNode, 'Headers cannot be parsed')\n }\n\n const headersList = headers[kHeadersListNode]\n assert(headersList)\n\n return headersList\n}\n\nmodule.exports = {\n isCTLExcludingHtab,\n stringify,\n getHeadersList\n}\n", "'use strict'\n\nconst { maxNameValuePairSize, maxAttributeValueSize } = require('./constants')\nconst { isCTLExcludingHtab } = require('./util')\nconst { collectASequenceOfCodePointsFast } = require('../fetch/dataURL')\nconst assert = require('assert')\n\n/**\n * @description Parses the field-value attributes of a set-cookie header string.\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} header\n * @returns if the header is invalid, null will be returned\n */\nfunction parseSetCookie (header) {\n // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n // character (CTL characters excluding HTAB): Abort these steps and\n // ignore the set-cookie-string entirely.\n if (isCTLExcludingHtab(header)) {\n return null\n }\n\n let nameValuePair = ''\n let unparsedAttributes = ''\n let name = ''\n let value = ''\n\n // 2. If the set-cookie-string contains a %x3B (\";\") character:\n if (header.includes(';')) {\n // 1. The name-value-pair string consists of the characters up to,\n // but not including, the first %x3B (\";\"), and the unparsed-\n // attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\n const position = { position: 0 }\n\n nameValuePair = collectASequenceOfCodePointsFast(';', header, position)\n unparsedAttributes = header.slice(position.position)\n } else {\n // Otherwise:\n\n // 1. The name-value-pair string consists of all the characters\n // contained in the set-cookie-string, and the unparsed-\n // attributes is the empty string.\n nameValuePair = header\n }\n\n // 3. If the name-value-pair string lacks a %x3D (\"=\") character, then\n // the name string is empty, and the value string is the value of\n // name-value-pair.\n if (!nameValuePair.includes('=')) {\n value = nameValuePair\n } else {\n // Otherwise, the name string consists of the characters up to, but\n // not including, the first %x3D (\"=\") character, and the (possibly\n // empty) value string consists of the characters after the first\n // %x3D (\"=\") character.\n const position = { position: 0 }\n name = collectASequenceOfCodePointsFast(\n '=',\n nameValuePair,\n position\n )\n value = nameValuePair.slice(position.position + 1)\n }\n\n // 4. Remove any leading or trailing WSP characters from the name\n // string and the value string.\n name = name.trim()\n value = value.trim()\n\n // 5. If the sum of the lengths of the name string and the value string\n // is more than 4096 octets, abort these steps and ignore the set-\n // cookie-string entirely.\n if (name.length + value.length > maxNameValuePairSize) {\n return null\n }\n\n // 6. The cookie-name is the name string, and the cookie-value is the\n // value string.\n return {\n name, value, ...parseUnparsedAttributes(unparsedAttributes)\n }\n}\n\n/**\n * Parses the remaining attributes of a set-cookie header\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} unparsedAttributes\n * @param {[Object.<string, unknown>]={}} cookieAttributeList\n */\nfunction parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {\n // 1. If the unparsed-attributes string is empty, skip the rest of\n // these steps.\n if (unparsedAttributes.length === 0) {\n return cookieAttributeList\n }\n\n // 2. Discard the first character of the unparsed-attributes (which\n // will be a %x3B (\";\") character).\n assert(unparsedAttributes[0] === ';')\n unparsedAttributes = unparsedAttributes.slice(1)\n\n let cookieAv = ''\n\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n if (unparsedAttributes.includes(';')) {\n // 1. Consume the characters of the unparsed-attributes up to, but\n // not including, the first %x3B (\";\") character.\n cookieAv = collectASequenceOfCodePointsFast(\n ';',\n unparsedAttributes,\n { position: 0 }\n )\n unparsedAttributes = unparsedAttributes.slice(cookieAv.length)\n } else {\n // Otherwise:\n\n // 1. Consume the remainder of the unparsed-attributes.\n cookieAv = unparsedAttributes\n unparsedAttributes = ''\n }\n\n // Let the cookie-av string be the characters consumed in this step.\n\n let attributeName = ''\n let attributeValue = ''\n\n // 4. If the cookie-av string contains a %x3D (\"=\") character:\n if (cookieAv.includes('=')) {\n // 1. The (possibly empty) attribute-name string consists of the\n // characters up to, but not including, the first %x3D (\"=\")\n // character, and the (possibly empty) attribute-value string\n // consists of the characters after the first %x3D (\"=\")\n // character.\n const position = { position: 0 }\n\n attributeName = collectASequenceOfCodePointsFast(\n '=',\n cookieAv,\n position\n )\n attributeValue = cookieAv.slice(position.position + 1)\n } else {\n // Otherwise:\n\n // 1. The attribute-name string consists of the entire cookie-av\n // string, and the attribute-value string is empty.\n attributeName = cookieAv\n }\n\n // 5. Remove any leading or trailing WSP characters from the attribute-\n // name string and the attribute-value string.\n attributeName = attributeName.trim()\n attributeValue = attributeValue.trim()\n\n // 6. If the attribute-value is longer than 1024 octets, ignore the\n // cookie-av string and return to Step 1 of this algorithm.\n if (attributeValue.length > maxAttributeValueSize) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 7. Process the attribute-name and attribute-value according to the\n // requirements in the following subsections. (Notice that\n // attributes with unrecognized attribute-names are ignored.)\n const attributeNameLowercase = attributeName.toLowerCase()\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n // If the attribute-name case-insensitively matches the string\n // \"Expires\", the user agent MUST process the cookie-av as follows.\n if (attributeNameLowercase === 'expires') {\n // 1. Let the expiry-time be the result of parsing the attribute-value\n // as cookie-date (see Section 5.1.1).\n const expiryTime = new Date(attributeValue)\n\n // 2. If the attribute-value failed to parse as a cookie date, ignore\n // the cookie-av.\n\n cookieAttributeList.expires = expiryTime\n } else if (attributeNameLowercase === 'max-age') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n // If the attribute-name case-insensitively matches the string \"Max-\n // Age\", the user agent MUST process the cookie-av as follows.\n\n // 1. If the first character of the attribute-value is not a DIGIT or a\n // \"-\" character, ignore the cookie-av.\n const charCode = attributeValue.charCodeAt(0)\n\n if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 2. If the remainder of attribute-value contains a non-DIGIT\n // character, ignore the cookie-av.\n if (!/^\\d+$/.test(attributeValue)) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 3. Let delta-seconds be the attribute-value converted to an integer.\n const deltaSeconds = Number(attributeValue)\n\n // 4. Let cookie-age-limit be the maximum age of the cookie (which\n // SHOULD be 400 days or less, see Section 4.1.2.2).\n\n // 5. Set delta-seconds to the smaller of its present value and cookie-\n // age-limit.\n // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)\n\n // 6. If delta-seconds is less than or equal to zero (0), let expiry-\n // time be the earliest representable date and time. Otherwise, let\n // the expiry-time be the current date and time plus delta-seconds\n // seconds.\n // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n // 7. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Max-Age and an attribute-value of expiry-time.\n cookieAttributeList.maxAge = deltaSeconds\n } else if (attributeNameLowercase === 'domain') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n // If the attribute-name case-insensitively matches the string \"Domain\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. Let cookie-domain be the attribute-value.\n let cookieDomain = attributeValue\n\n // 2. If cookie-domain starts with %x2E (\".\"), let cookie-domain be\n // cookie-domain without its leading %x2E (\".\").\n if (cookieDomain[0] === '.') {\n cookieDomain = cookieDomain.slice(1)\n }\n\n // 3. Convert the cookie-domain to lower case.\n cookieDomain = cookieDomain.toLowerCase()\n\n // 4. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Domain and an attribute-value of cookie-domain.\n cookieAttributeList.domain = cookieDomain\n } else if (attributeNameLowercase === 'path') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n // If the attribute-name case-insensitively matches the string \"Path\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. If the attribute-value is empty or if the first character of the\n // attribute-value is not %x2F (\"/\"):\n let cookiePath = ''\n if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n // 1. Let cookie-path be the default-path.\n cookiePath = '/'\n } else {\n // Otherwise:\n\n // 1. Let cookie-path be the attribute-value.\n cookiePath = attributeValue\n }\n\n // 2. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Path and an attribute-value of cookie-path.\n cookieAttributeList.path = cookiePath\n } else if (attributeNameLowercase === 'secure') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n // If the attribute-name case-insensitively matches the string \"Secure\",\n // the user agent MUST append an attribute to the cookie-attribute-list\n // with an attribute-name of Secure and an empty attribute-value.\n\n cookieAttributeList.secure = true\n } else if (attributeNameLowercase === 'httponly') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n // If the attribute-name case-insensitively matches the string\n // \"HttpOnly\", the user agent MUST append an attribute to the cookie-\n // attribute-list with an attribute-name of HttpOnly and an empty\n // attribute-value.\n\n cookieAttributeList.httpOnly = true\n } else if (attributeNameLowercase === 'samesite') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n // If the attribute-name case-insensitively matches the string\n // \"SameSite\", the user agent MUST process the cookie-av as follows:\n\n // 1. Let enforcement be \"Default\".\n let enforcement = 'Default'\n\n const attributeValueLowercase = attributeValue.toLowerCase()\n // 2. If cookie-av's attribute-value is a case-insensitive match for\n // \"None\", set enforcement to \"None\".\n if (attributeValueLowercase.includes('none')) {\n enforcement = 'None'\n }\n\n // 3. If cookie-av's attribute-value is a case-insensitive match for\n // \"Strict\", set enforcement to \"Strict\".\n if (attributeValueLowercase.includes('strict')) {\n enforcement = 'Strict'\n }\n\n // 4. If cookie-av's attribute-value is a case-insensitive match for\n // \"Lax\", set enforcement to \"Lax\".\n if (attributeValueLowercase.includes('lax')) {\n enforcement = 'Lax'\n }\n\n // 5. Append an attribute to the cookie-attribute-list with an\n // attribute-name of \"SameSite\" and an attribute-value of\n // enforcement.\n cookieAttributeList.sameSite = enforcement\n } else {\n cookieAttributeList.unparsed ??= []\n\n cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)\n }\n\n // 8. Return to Step 1 of this algorithm.\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n}\n\nmodule.exports = {\n parseSetCookie,\n parseUnparsedAttributes\n}\n", "'use strict'\n\nconst { parseSetCookie } = require('./parse')\nconst { stringify, getHeadersList } = require('./util')\nconst { webidl } = require('../fetch/webidl')\nconst { Headers } = require('../fetch/headers')\n\n/**\n * @typedef {Object} Cookie\n * @property {string} name\n * @property {string} value\n * @property {Date|number|undefined} expires\n * @property {number|undefined} maxAge\n * @property {string|undefined} domain\n * @property {string|undefined} path\n * @property {boolean|undefined} secure\n * @property {boolean|undefined} httpOnly\n * @property {'Strict'|'Lax'|'None'} sameSite\n * @property {string[]} unparsed\n */\n\n/**\n * @param {Headers} headers\n * @returns {Record<string, string>}\n */\nfunction getCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookie = headers.get('cookie')\n const out = {}\n\n if (!cookie) {\n return out\n }\n\n for (const piece of cookie.split(';')) {\n const [name, ...value] = piece.split('=')\n\n out[name.trim()] = value.join('=')\n }\n\n return out\n}\n\n/**\n * @param {Headers} headers\n * @param {string} name\n * @param {{ path?: string, domain?: string }|undefined} attributes\n * @returns {void}\n */\nfunction deleteCookie (headers, name, attributes) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n name = webidl.converters.DOMString(name)\n attributes = webidl.converters.DeleteCookieAttributes(attributes)\n\n // Matches behavior of\n // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n setCookie(headers, {\n name,\n value: '',\n expires: new Date(0),\n ...attributes\n })\n}\n\n/**\n * @param {Headers} headers\n * @returns {Cookie[]}\n */\nfunction getSetCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookies = getHeadersList(headers).cookies\n\n if (!cookies) {\n return []\n }\n\n // In older versions of undici, cookies is a list of name:value.\n return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair))\n}\n\n/**\n * @param {Headers} headers\n * @param {Cookie} cookie\n * @returns {void}\n */\nfunction setCookie (headers, cookie) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n cookie = webidl.converters.Cookie(cookie)\n\n const str = stringify(cookie)\n\n if (str) {\n headers.append('Set-Cookie', stringify(cookie))\n }\n}\n\nwebidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n }\n])\n\nwebidl.converters.Cookie = webidl.dictionaryConverter([\n {\n converter: webidl.converters.DOMString,\n key: 'name'\n },\n {\n converter: webidl.converters.DOMString,\n key: 'value'\n },\n {\n converter: webidl.nullableConverter((value) => {\n if (typeof value === 'number') {\n return webidl.converters['unsigned long long'](value)\n }\n\n return new Date(value)\n }),\n key: 'expires',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters['long long']),\n key: 'maxAge',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'secure',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'httpOnly',\n defaultValue: null\n },\n {\n converter: webidl.converters.USVString,\n key: 'sameSite',\n allowedValues: ['Strict', 'Lax', 'None']\n },\n {\n converter: webidl.sequenceConverter(webidl.converters.DOMString),\n key: 'unparsed',\n defaultValue: []\n }\n])\n\nmodule.exports = {\n getCookies,\n deleteCookie,\n getSetCookies,\n setCookie\n}\n", "'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nmodule.exports = {\n uid,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer\n}\n", "'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\nconst { MessagePort } = require('worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' })\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' })\n\n super(type, eventInitDict)\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence<MessagePort>'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence<MessagePort>'],\n get defaultValue () {\n return []\n }\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent\n}\n", "'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { MessageEvent, ErrorEvent } = require('./events')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventConstructor = Event, eventInitDict) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event\u2019s type attribute to e.\n const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = new Uint8Array(data).buffer\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object\u2019s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, MessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (const char of protocol) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 ||\n code > 0x7E ||\n char === '(' ||\n char === ')' ||\n char === '<' ||\n char === '>' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}' ||\n code === 32 || // SP\n code === 9 // HT\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n fireEvent('error', ws, ErrorEvent, {\n error: new Error(reason)\n })\n }\n}\n\nmodule.exports = {\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived\n}\n", "'use strict'\n\nconst { randomBytes, createHash } = require('crypto')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { uid, states } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection } = require('./util')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers } = require('../fetch/headers')\nconst { getGlobalDispatcher } = require('../global')\nconst { kHeadersList } = require('../core/symbols')\n\nconst channels = {}\nchannels.open = diagnosticsChannel.channel('undici:websocket:open')\nchannels.close = diagnosticsChannel.channel('undici:websocket:close')\nchannels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error')\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any) => void} onEstablish\n * @param {Partial<import('../../types/websocket').WebSocketInit>} options\n */\nfunction establishWebSocketConnection (url, protocols, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url\u2019s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = new Headers(options.headers)[kHeadersList]\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request\u2019s header list.\n // 4. Append (`Connection`, `Upgrade`) to request\u2019s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request\u2019s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n // TODO: enable once permessage-deflate is supported\n const permessageDeflate = '' // 'permessage-deflate; 15'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request\u2019s header list.\n // request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher ?? getGlobalDispatcher(),\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response\u2019s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n\n if (secExtension !== null && secExtension !== permessageDeflate) {\n failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.')\n return\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response)\n }\n })\n\n return controller\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kSentClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n fireEvent('close', ws, CloseEvent, {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection\n}\n", "'use strict'\n\nconst { randomBytes } = require('crypto')\nconst { maxUnsigned16Bit } = require('./constants')\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n this.maskKey = randomBytes(4)\n }\n\n createFrame (opcode) {\n const bodyLength = this.frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */\n buffer[offset - 4] = this.maskKey[0]\n buffer[offset - 3] = this.maskKey[1]\n buffer[offset - 2] = this.maskKey[2]\n buffer[offset - 1] = this.maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; i++) {\n buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n", "'use strict'\n\nconst { Writable } = require('stream')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { parserStates, opcodes, states, emptyBuffer } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>\n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nconst channels = {}\nchannels.ping = diagnosticsChannel.channel('undici:websocket:ping')\nchannels.pong = diagnosticsChannel.channel('undici:websocket:pong')\n\nclass ByteParser extends Writable {\n #buffers = []\n #byteOffset = 0\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n constructor (ws) {\n super()\n\n this.ws = ws\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n\n this.run(callback)\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (true) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.fin = (buffer[0] & 0x80) !== 0\n this.#info.opcode = buffer[0] & 0x0F\n\n // If we receive a fragmented message, we use the type of the first\n // frame to parse the full message as binary/text, when it's terminated\n this.#info.originalOpcode ??= this.#info.opcode\n\n this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION\n\n if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n const payloadLength = buffer[1] & 0x7F\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (this.#info.fragmented && payloadLength > 125) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n } else if (\n (this.#info.opcode === opcodes.PING ||\n this.#info.opcode === opcodes.PONG ||\n this.#info.opcode === opcodes.CLOSE) &&\n payloadLength > 125\n ) {\n // Control frames can have a payload length of 125 bytes MAX\n failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.')\n return\n } else if (this.#info.opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return\n }\n\n const body = this.consume(payloadLength)\n\n this.#info.closeInfo = this.parseCloseBody(false, body)\n\n if (!this.ws[kSentClose]) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n const body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = true\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n this.end()\n\n return\n } else if (this.#info.opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n const body = this.consume(payloadLength)\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n\n this.#state = parserStates.INFO\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n } else if (this.#info.opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n const body = this.consume(payloadLength)\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n\n // 2^31 is the maxinimum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n const lower = buffer.readUInt32BE(4)\n\n this.#info.payloadLength = (upper << 8) + lower\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n // If there is still more data in this chunk that needs to be read\n return callback()\n } else if (this.#byteOffset >= this.#info.payloadLength) {\n // If the server sent multiple frames in a single chunk\n\n const body = this.consume(this.#info.payloadLength)\n\n this.#fragments.push(body)\n\n // If the frame is unfragmented, or a fragmented frame was terminated,\n // a message was received\n if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n const fullMessage = Buffer.concat(this.#fragments)\n\n websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage)\n\n this.#info = {}\n this.#fragments.length = 0\n }\n\n this.#state = parserStates.INFO\n }\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n break\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer|null}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n return null\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n parseCloseBody (onlyCode, data) {\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (onlyCode) {\n if (!isValidStatusCode(code)) {\n return null\n }\n\n return { code }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return null\n }\n\n try {\n // TODO: optimize this\n reason = new TextDecoder('utf-8', { fatal: true }).decode(reason)\n } catch {\n return null\n }\n\n return { code, reason }\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { DOMException } = require('../fetch/constants')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require('./constants')\nconst {\n kWebSocketURL,\n kReadyState,\n kController,\n kBinaryType,\n kResponse,\n kSentClose,\n kByteParser\n} = require('./symbols')\nconst { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require('./util')\nconst { establishWebSocketConnection } = require('./connection')\nconst { WebsocketFrameSend } = require('./frame')\nconst { ByteParser } = require('./receiver')\nconst { kEnumerableProperty, isBlobLike } = require('../core/util')\nconst { getGlobalDispatcher } = require('../global')\nconst { types } = require('util')\n\nlet experimentalWarned = false\n\n// https://websockets.spec.whatwg.org/#interface-definition\nclass WebSocket extends EventTarget {\n #events = {\n open: null,\n error: null,\n close: null,\n message: null\n }\n\n #bufferedAmount = 0\n #protocol = ''\n #extensions = ''\n\n /**\n * @param {string} url\n * @param {string|string[]} protocols\n */\n constructor (url, protocols = []) {\n super()\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' })\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('WebSockets are experimental, expect them to change at any time.', {\n code: 'UNDICI-WS'\n })\n }\n\n const options = webidl.converters['DOMString or sequence<DOMString> or WebSocketInit'](protocols)\n\n url = webidl.converters.USVString(url)\n protocols = options.protocols\n\n // 1. Let urlRecord be the result of applying the URL parser to url.\n let urlRecord\n\n try {\n urlRecord = new URL(url)\n } catch (e) {\n // 2. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 3. If urlRecord\u2019s scheme is not \"ws\" or \"wss\", then throw a\n // \"SyntaxError\" DOMException.\n if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n throw new DOMException(\n `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,\n 'SyntaxError'\n )\n }\n\n // 4. If urlRecord\u2019s fragment is non-null, then throw a \"SyntaxError\"\n // DOMException.\n if (urlRecord.hash) {\n throw new DOMException('Got fragment', 'SyntaxError')\n }\n\n // 5. If protocols is a string, set protocols to a sequence consisting\n // of just that string.\n if (typeof protocols === 'string') {\n protocols = [protocols]\n }\n\n // 6. If any of the values in protocols occur more than once or otherwise\n // fail to match the requirements for elements that comprise the value\n // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n // protocol, then throw a \"SyntaxError\" DOMException.\n if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n // 7. Set this's url to urlRecord.\n this[kWebSocketURL] = urlRecord\n\n // 8. Let client be this's relevant settings object.\n\n // 9. Run this step in parallel:\n\n // 1. Establish a WebSocket connection given urlRecord, protocols,\n // and client.\n this[kController] = establishWebSocketConnection(\n urlRecord,\n protocols,\n this,\n (response) => this.#onConnectionEstablished(response),\n options\n )\n\n // Each WebSocket object has an associated ready state, which is a\n // number representing the state of the connection. Initially it must\n // be CONNECTING (0).\n this[kReadyState] = WebSocket.CONNECTING\n\n // The extensions attribute must initially return the empty string.\n\n // The protocol attribute must initially return the empty string.\n\n // Each WebSocket object has an associated binary type, which is a\n // BinaryType. Initially it must be \"blob\".\n this[kBinaryType] = 'blob'\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n * @param {number|undefined} code\n * @param {string|undefined} reason\n */\n close (code = undefined, reason = undefined) {\n webidl.brandCheck(this, WebSocket)\n\n if (code !== undefined) {\n code = webidl.converters['unsigned short'](code, { clamp: true })\n }\n\n if (reason !== undefined) {\n reason = webidl.converters.USVString(reason)\n }\n\n // 1. If code is present, but is neither an integer equal to 1000 nor an\n // integer in the range 3000 to 4999, inclusive, throw an\n // \"InvalidAccessError\" DOMException.\n if (code !== undefined) {\n if (code !== 1000 && (code < 3000 || code > 4999)) {\n throw new DOMException('invalid code', 'InvalidAccessError')\n }\n }\n\n let reasonByteLength = 0\n\n // 2. If reason is present, then run these substeps:\n if (reason !== undefined) {\n // 1. Let reasonBytes be the result of encoding reason.\n // 2. If reasonBytes is longer than 123 bytes, then throw a\n // \"SyntaxError\" DOMException.\n reasonByteLength = Buffer.byteLength(reason)\n\n if (reasonByteLength > 123) {\n throw new DOMException(\n `Reason must be less than 123 bytes; received ${reasonByteLength}`,\n 'SyntaxError'\n )\n }\n }\n\n // 3. Run the first matching steps from the following list:\n if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(this)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(this, 'Connection was closed before it was established.')\n this[kReadyState] = WebSocket.CLOSING\n } else if (!isClosing(this)) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE), (err) => {\n if (!err) {\n this[kSentClose] = true\n }\n })\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n this[kReadyState] = WebSocket.CLOSING\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n */\n send (data) {\n webidl.brandCheck(this, WebSocket)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' })\n\n data = webidl.converters.WebSocketSendData(data)\n\n // 1. If this's ready state is CONNECTING, then throw an\n // \"InvalidStateError\" DOMException.\n if (this[kReadyState] === WebSocket.CONNECTING) {\n throw new DOMException('Sent before connected.', 'InvalidStateError')\n }\n\n // 2. Run the appropriate set of steps from the following list:\n // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n if (!isEstablished(this) || isClosing(this)) {\n return\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n // If data is a string\n if (typeof data === 'string') {\n // If the WebSocket connection is established and the WebSocket\n // closing handshake has not yet started, then the user agent\n // must send a WebSocket Message comprised of the data argument\n // using a text frame opcode; if the data cannot be sent, e.g.\n // because it would need to be buffered but the buffer is full,\n // the user agent must flag the WebSocket as full and then close\n // the WebSocket connection. Any invocation of this method with a\n // string argument that does not throw an exception must increase\n // the bufferedAmount attribute by the number of bytes needed to\n // express the argument as UTF-8.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.TEXT)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (types.isArrayBuffer(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need\n // to be buffered but the buffer is full, the user agent must flag\n // the WebSocket as full and then close the WebSocket connection.\n // The data to be sent is the data stored in the buffer described\n // by the ArrayBuffer object. Any invocation of this method with an\n // ArrayBuffer argument that does not throw an exception must\n // increase the bufferedAmount attribute by the length of the\n // ArrayBuffer in bytes.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (ArrayBuffer.isView(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The\n // data to be sent is the data stored in the section of the buffer\n // described by the ArrayBuffer object that data references. Any\n // invocation of this method with this kind of argument that does\n // not throw an exception must increase the bufferedAmount attribute\n // by the length of data\u2019s buffer in bytes.\n\n const ab = Buffer.from(data, data.byteOffset, data.byteLength)\n\n const frame = new WebsocketFrameSend(ab)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += ab.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= ab.byteLength\n })\n } else if (isBlobLike(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The data\n // to be sent is the raw data represented by the Blob object. Any\n // invocation of this method with a Blob argument that does not throw\n // an exception must increase the bufferedAmount attribute by the size\n // of the Blob object\u2019s raw data, in bytes.\n\n const frame = new WebsocketFrameSend()\n\n data.arrayBuffer().then((ab) => {\n const value = Buffer.from(ab)\n frame.frameData = value\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n })\n }\n }\n\n get readyState () {\n webidl.brandCheck(this, WebSocket)\n\n // The readyState getter steps are to return this's ready state.\n return this[kReadyState]\n }\n\n get bufferedAmount () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#bufferedAmount\n }\n\n get url () {\n webidl.brandCheck(this, WebSocket)\n\n // The url getter steps are to return this's url, serialized.\n return URLSerializer(this[kWebSocketURL])\n }\n\n get extensions () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#extensions\n }\n\n get protocol () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#protocol\n }\n\n get onopen () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.open\n }\n\n set onopen (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n\n get onclose () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.close\n }\n\n set onclose (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.close) {\n this.removeEventListener('close', this.#events.close)\n }\n\n if (typeof fn === 'function') {\n this.#events.close = fn\n this.addEventListener('close', fn)\n } else {\n this.#events.close = null\n }\n }\n\n get onmessage () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.message\n }\n\n set onmessage (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get binaryType () {\n webidl.brandCheck(this, WebSocket)\n\n return this[kBinaryType]\n }\n\n set binaryType (type) {\n webidl.brandCheck(this, WebSocket)\n\n if (type !== 'blob' && type !== 'arraybuffer') {\n this[kBinaryType] = 'blob'\n } else {\n this[kBinaryType] = type\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n */\n #onConnectionEstablished (response) {\n // processResponse is called when the \"response\u2019s header list has been received and initialized.\"\n // once this happens, the connection is open\n this[kResponse] = response\n\n const parser = new ByteParser(this)\n parser.on('drain', function onParserDrain () {\n this.ws[kResponse].socket.resume()\n })\n\n response.socket.ws = this\n this[kByteParser] = parser\n\n // 1. Change the ready state to OPEN (1).\n this[kReadyState] = states.OPEN\n\n // 2. Change the extensions attribute\u2019s value to the extensions in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n const extensions = response.headersList.get('sec-websocket-extensions')\n\n if (extensions !== null) {\n this.#extensions = extensions\n }\n\n // 3. Change the protocol attribute\u2019s value to the subprotocol in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n const protocol = response.headersList.get('sec-websocket-protocol')\n\n if (protocol !== null) {\n this.#protocol = protocol\n }\n\n // 4. Fire an event named open at the WebSocket object.\n fireEvent('open', this)\n }\n}\n\n// https://websockets.spec.whatwg.org/#dom-websocket-connecting\nWebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING\n// https://websockets.spec.whatwg.org/#dom-websocket-open\nWebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN\n// https://websockets.spec.whatwg.org/#dom-websocket-closing\nWebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING\n// https://websockets.spec.whatwg.org/#dom-websocket-closed\nWebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED\n\nObject.defineProperties(WebSocket.prototype, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors,\n url: kEnumerableProperty,\n readyState: kEnumerableProperty,\n bufferedAmount: kEnumerableProperty,\n onopen: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onclose: kEnumerableProperty,\n close: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n binaryType: kEnumerableProperty,\n send: kEnumerableProperty,\n extensions: kEnumerableProperty,\n protocol: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'WebSocket',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(WebSocket, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors\n})\n\nwebidl.converters['sequence<DOMString>'] = webidl.sequenceConverter(\n webidl.converters.DOMString\n)\n\nwebidl.converters['DOMString or sequence<DOMString>'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n return webidl.converters['sequence<DOMString>'](V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// This implements the propsal made in https://github.com/whatwg/websockets/issues/42\nwebidl.converters.WebSocketInit = webidl.dictionaryConverter([\n {\n key: 'protocols',\n converter: webidl.converters['DOMString or sequence<DOMString>'],\n get defaultValue () {\n return []\n }\n },\n {\n key: 'dispatcher',\n converter: (V) => V,\n get defaultValue () {\n return getGlobalDispatcher()\n }\n },\n {\n key: 'headers',\n converter: webidl.nullableConverter(webidl.converters.HeadersInit)\n }\n])\n\nwebidl.converters['DOMString or sequence<DOMString> or WebSocketInit'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) {\n return webidl.converters.WebSocketInit(V)\n }\n\n return { protocols: webidl.converters['DOMString or sequence<DOMString>'](V) }\n}\n\nwebidl.converters.WebSocketSendData = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n return webidl.converters.BufferSource(V)\n }\n }\n\n return webidl.converters.USVString(V)\n}\n\nmodule.exports = {\n WebSocket\n}\n", "'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nlet hasCrypto\ntry {\n require('crypto')\n hasCrypto = true\n} catch {\n hasCrypto = false\n}\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n\n try {\n return await fetchImpl(...arguments)\n } catch (err) {\n Error.captureStackTrace(err, this)\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n module.exports.FileReader = require('./lib/fileapi/filereader').FileReader\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n\n const { CacheStorage } = require('./lib/cache/cachestorage')\n const { kConstruct } = require('./lib/cache/symbols')\n\n // Cache & CacheStorage are tightly coupled with fetch. Even if it may run\n // in an older version of Node, it doesn't have any use without fetch.\n module.exports.caches = new CacheStorage(kConstruct)\n}\n\nif (util.nodeMajor >= 16) {\n const { deleteCookie, getCookies, getSetCookies, setCookie } = require('./lib/cookies')\n\n module.exports.deleteCookie = deleteCookie\n module.exports.getCookies = getCookies\n module.exports.getSetCookies = getSetCookies\n module.exports.setCookie = setCookie\n\n const { parseMIMEType, serializeAMimeType } = require('./lib/fetch/dataURL')\n\n module.exports.parseMIMEType = parseMIMEType\n module.exports.serializeAMimeType = serializeAMimeType\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n const { WebSocket } = require('./lib/websocket/websocket')\n\n module.exports.WebSocket = WebSocket\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n", null, null, null, "'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n", "'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n", "'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n", "'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n", "'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n", "'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n", "'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n", "'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n", "var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n", "var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL());\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230\u00A75.3.1: When making a request directly to an origin server, [\u2026]\n // a client MUST send only the absolute path [\u2026] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, [\u2026]\n // a client MUST send the target URI in absolute-form [\u2026].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231\u00A76.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231\u00A76.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231\u00A76.4: Automatic redirection needs to done with\n // care for methods not known to be safe, [\u2026]\n // RFC7231\u00A76.4.2\u20133: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231\u00A76.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource [\u2026]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) [\u2026]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n /* istanbul ignore else */\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n /* istanbul ignore next */\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n", "{\n \"name\": \"axios\",\n \"version\": \"0.21.4\",\n \"description\": \"Promise based HTTP client for the browser and node.js\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"test\": \"grunt test\",\n \"start\": \"node ./sandbox/server.js\",\n \"build\": \"NODE_ENV=production grunt build\",\n \"preversion\": \"npm test\",\n \"version\": \"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json\",\n \"postversion\": \"git push && git push --tags\",\n \"examples\": \"node ./examples/server.js\",\n \"coveralls\": \"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\",\n \"fix\": \"eslint --fix lib/**/*.js\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/axios/axios.git\"\n },\n \"keywords\": [\n \"xhr\",\n \"http\",\n \"ajax\",\n \"promise\",\n \"node\"\n ],\n \"author\": \"Matt Zabriskie\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/axios/axios/issues\"\n },\n \"homepage\": \"https://axios-http.com\",\n \"devDependencies\": {\n \"coveralls\": \"^3.0.0\",\n \"es6-promise\": \"^4.2.4\",\n \"grunt\": \"^1.3.0\",\n \"grunt-banner\": \"^0.6.0\",\n \"grunt-cli\": \"^1.2.0\",\n \"grunt-contrib-clean\": \"^1.1.0\",\n \"grunt-contrib-watch\": \"^1.0.0\",\n \"grunt-eslint\": \"^23.0.0\",\n \"grunt-karma\": \"^4.0.0\",\n \"grunt-mocha-test\": \"^0.13.3\",\n \"grunt-ts\": \"^6.0.0-beta.19\",\n \"grunt-webpack\": \"^4.0.2\",\n \"istanbul-instrumenter-loader\": \"^1.0.0\",\n \"jasmine-core\": \"^2.4.1\",\n \"karma\": \"^6.3.2\",\n \"karma-chrome-launcher\": \"^3.1.0\",\n \"karma-firefox-launcher\": \"^2.1.0\",\n \"karma-jasmine\": \"^1.1.1\",\n \"karma-jasmine-ajax\": \"^0.1.13\",\n \"karma-safari-launcher\": \"^1.0.0\",\n \"karma-sauce-launcher\": \"^4.3.6\",\n \"karma-sinon\": \"^1.0.5\",\n \"karma-sourcemap-loader\": \"^0.3.8\",\n \"karma-webpack\": \"^4.0.2\",\n \"load-grunt-tasks\": \"^3.5.2\",\n \"minimist\": \"^1.2.0\",\n \"mocha\": \"^8.2.1\",\n \"sinon\": \"^4.5.0\",\n \"terser-webpack-plugin\": \"^4.2.3\",\n \"typescript\": \"^4.0.5\",\n \"url-search-params\": \"^0.10.0\",\n \"webpack\": \"^4.44.2\",\n \"webpack-dev-server\": \"^3.11.0\"\n },\n \"browser\": {\n \"./lib/adapters/http.js\": \"./lib/adapters/xhr.js\"\n },\n \"jsdelivr\": \"dist/axios.min.js\",\n \"unpkg\": \"dist/axios.min.js\",\n \"typings\": \"./index.d.ts\",\n \"dependencies\": {\n \"follow-redirects\": \"^1.14.0\"\n },\n \"bundlesize\": [\n {\n \"path\": \"./dist/axios.min.js\",\n \"threshold\": \"5kB\"\n }\n ]\n}\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildFullPath = require('../core/buildFullPath');\nvar buildURL = require('./../helpers/buildURL');\nvar http = require('http');\nvar https = require('https');\nvar httpFollow = require('follow-redirects').http;\nvar httpsFollow = require('follow-redirects').https;\nvar url = require('url');\nvar zlib = require('zlib');\nvar pkg = require('./../../package.json');\nvar createError = require('../core/createError');\nvar enhanceError = require('../core/enhanceError');\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nmodule.exports = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var resolve = function resolve(value) {\n resolvePromise(value);\n };\n var reject = function reject(value) {\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('User-Agent' in headers || 'user-agent' in headers) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers['User-Agent'] && !headers['user-agent']) {\n delete headers['User-Agent'];\n delete headers['user-agent'];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + pkg.version;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers['Content-Length'] = data.length;\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url.parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth) {\n delete headers.Authorization;\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url.parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n var responseData = Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n\n response.data = responseData;\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n reject(createError(\n 'timeout of ' + timeout + 'ms exceeded',\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(cancel);\n });\n }\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n", "'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n", "'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n", "'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n", "'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n", "'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n", "'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n", "module.exports = require('./lib/axios');", null, null, "import { List } from \"@raycast/api\";\nimport { ReactElement, useState } from \"react\";\nimport { LanguageDropdown } from \"./QuickTranslate/LanguageDropdown\";\nimport { QuickTranslateListItem } from \"./QuickTranslate/QuickTranslateListItem\";\nimport { useDebouncedValue, usePreferences, useSourceLanguage, useTargetLanguages, useTextState } from \"./hooks\";\nimport { LanguageCode } from \"./languages\";\n\nexport default function QuickTranslate(): ReactElement {\n const [sourceLanguage] = useSourceLanguage();\n const [targetLanguages] = useTargetLanguages();\n const { proxy } = usePreferences();\n const [isShowingDetail, setIsShowingDetail] = useState(true);\n const [text, setText] = useTextState();\n const debouncedText = useDebouncedValue(text, 500).trim();\n\n const [loadingStates, setLoadingStates] = useState(new Map(targetLanguages.map((lang) => [lang, false])));\n\n const isAnyLoading = Array.from(loadingStates.values()).some((isLoading) => isLoading);\n\n function setIsLoading(lang: LanguageCode, isLoading: boolean) {\n setLoadingStates((prev) => new Map(prev).set(lang, isLoading));\n }\n\n return (\n <List\n searchBarPlaceholder=\"Enter text to translate\"\n searchText={text}\n onSearchTextChange={setText}\n isLoading={isAnyLoading}\n isShowingDetail={isShowingDetail}\n searchBarAccessory={<LanguageDropdown />}\n >\n {debouncedText\n ? targetLanguages.map((targetLanguage) => (\n <QuickTranslateListItem\n key={targetLanguage}\n debouncedText={debouncedText}\n languageSet={{ langFrom: sourceLanguage, langTo: [targetLanguage], proxy }}\n isShowingDetail={isShowingDetail}\n setIsShowingDetail={setIsShowingDetail}\n setIsLoading={(isLoading) => setIsLoading(targetLanguage, isLoading)}\n />\n ))\n : null}\n </List>\n );\n}\n", "import { Icon, List, useNavigation } from \"@raycast/api\";\nimport { useSourceLanguage, useTargetLanguages } from \"../hooks\";\nimport { LanguageCode, getLanguageFlag, getLanguageFlagByCode, languages } from \"../languages\";\nimport { TargetLanguageList } from \"./TargetLanguageList\";\n\nexport function LanguageDropdown() {\n const navigation = useNavigation();\n const [sourceLanguage, setSourceLanguage] = useSourceLanguage();\n const [targetLanguages] = useTargetLanguages();\n return (\n <List.Dropdown\n value={sourceLanguage}\n tooltip=\"Language\"\n onChange={(value) => {\n if (value === \"manageTargetLanguages\") {\n navigation.push(<TargetLanguageList />);\n } else {\n setSourceLanguage(value as LanguageCode);\n }\n }}\n >\n <List.Dropdown.Item\n key=\"manageTargetLanguages\"\n icon={Icon.Pencil}\n title={`Translate to -> ${targetLanguages.map(getLanguageFlagByCode).join(\" \")}`}\n value=\"manageTargetLanguages\"\n />\n {languages.map((lang) => (\n <List.Dropdown.Item key={lang.code} title={`${getLanguageFlag(lang)} ${lang.name}`} value={lang.code} />\n ))}\n </List.Dropdown>\n );\n}\n", "import { getPreferenceValues, getSelectedText } from \"@raycast/api\";\nimport { useCachedState } from \"@raycast/utils\";\nimport React from \"react\";\nimport { LanguageCode } from \"./languages\";\nimport { LanguageCodeSet, TranslatePreferences } from \"./types\";\nimport { AUTO_DETECT } from \"./simple-translate\";\n\ntype _LegacySingleLanguageCodeSet = {\n langFrom: LanguageCode;\n langTo: LanguageCode;\n};\n\ntype _StoredLanguageCodeSet = _LegacySingleLanguageCodeSet | LanguageCodeSet;\n\nconst unifyLegacyLanguageSet = (legacy: _StoredLanguageCodeSet): LanguageCodeSet => {\n return {\n langFrom: legacy.langFrom,\n langTo: Array.isArray(legacy.langTo) ? legacy.langTo : [legacy.langTo],\n };\n};\n\nexport const usePreferences = () => {\n return React.useMemo(() => getPreferenceValues<TranslatePreferences>(), []);\n};\n\nexport const useTextState = () => {\n const preferences = usePreferences();\n const [text, setText] = React.useState(\"\");\n const textRef = React.useRef(text);\n textRef.current = text;\n\n React.useEffect(() => {\n if (preferences.autoInput) {\n getSelectedText()\n .then((cbText) => {\n if (!textRef.current) {\n setText(cbText ?? \"\");\n }\n })\n .catch((err) => {\n console.log(\"Error:\", err);\n });\n }\n }, []);\n\n return [text, setText] as const;\n};\n\nexport const useSelectedLanguagesSet = () => {\n const preferences = usePreferences();\n const [selectedLanguageSet, setSelectedLanguageSet] = useCachedState<_StoredLanguageCodeSet>(\n \"selectedLanguageSet\",\n unifyLegacyLanguageSet({\n langFrom: preferences.lang1,\n langTo: preferences.lang2,\n }),\n );\n\n return [unifyLegacyLanguageSet(selectedLanguageSet), setSelectedLanguageSet] as const;\n};\n\nexport const usePreferencesLanguageSet = () => {\n const preferences = usePreferences();\n const preferencesLanguageSet: LanguageCodeSet = { langFrom: preferences.lang1, langTo: [preferences.lang2] };\n return preferencesLanguageSet;\n};\n\nexport const useDebouncedValue = <T>(value: T, delay: number) => {\n const [debouncedValue, setDebouncedValue] = React.useState<T>(value);\n\n React.useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n\nexport const useAllLanguageSets = () => {\n const [languages, setLanguages] = useCachedState<_StoredLanguageCodeSet[]>(\"languages\", []);\n\n return [languages.map(unifyLegacyLanguageSet), setLanguages] as const;\n};\n\nexport const useSourceLanguage = () => {\n const [sourceLanguage, setSourceLanguage] = useCachedState<LanguageCode>(\"sourceLanguage\", AUTO_DETECT);\n\n return [sourceLanguage, setSourceLanguage] as const;\n};\n\nexport const useTargetLanguages = () => {\n const preferences = usePreferences();\n const [targetLanguages, setTargetLanguages] = useCachedState<LanguageCode[]>(\n \"targetLanguages\",\n [preferences.lang1, preferences.lang2].filter((lang) => lang !== AUTO_DETECT),\n );\n\n return [targetLanguages, setTargetLanguages] as const;\n};\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\nimport querystring from \"querystring\";\nimport { request, ProxyAgent } from \"undici\";\nimport { TranslateOption, TranslateResponse } from \"./types\";\nimport { isSupported, getISOCode } from \"./languages\";\nimport { tokenGenerator } from \"./tokenGenerator\";\n\n/**\n * @function translate\n * @param {String} text The text to be translated.\n * @param {TranslateOption} options The options object for the translator.\n * @returns {TranslateResponse} The result containing the translation.\n */\nexport async function translate(text: string, options?: TranslateOption): Promise<TranslateResponse> {\n if (typeof options !== \"object\") options = {};\n text = String(text);\n\n // Check if a lanugage is in supported; if not, throw an error object.\n let error: Error | null = null;\n [ options.from, options.to ].forEach((lang) => {\n if (lang && !isSupported(lang)) {\n error = new Error();\n error.message = `The language '${lang}' is not supported.`;\n }\n });\n if (error) throw error;\n\n // If options object doesn\"t have \"from\" language, set it to \"auto\".\n if (!Object.prototype.hasOwnProperty.call(options, \"from\")) options.from = \"auto\";\n // If options object doesn\"t have \"to\" language, set it to \"en\".\n if (!Object.prototype.hasOwnProperty.call(options, \"to\")) options.to = \"en\";\n // If options object has a \"raw\" property evaluating to true, set it to true.\n options.raw = Boolean(options.raw);\n\n // Get ISO 639-1 codes for the languages.\n options.from = getISOCode(options.from);\n options.to = getISOCode(options.to);\n\n // Generate Google Translate token for the text to be translated.\n let token: any = await tokenGenerator(text);\n\n // URL & query string required by Google Translate.\n let baseUrl = \"https://translate.google.com/translate_a/single\";\n let data: any = {\n client: \"gtx\",\n sl: options.from,\n tl: options.to,\n hl: options.to,\n dt: [ \"at\", \"bd\", \"ex\", \"ld\", \"md\", \"qca\", \"rw\", \"rm\", \"ss\", \"t\" ],\n ie: \"UTF-8\",\n oe: \"UTF-8\",\n otf: 1,\n ssel: 0,\n tsel: 0,\n kc: 7,\n q: text,\n [token.name]: token.value\n };\n\n // Append query string to the request URL.\n let url = `${baseUrl}?${querystring.stringify(data)}`;\n\n let requestOptions: any;\n let requestUrl = url;\n // If request URL is greater than 2048 characters, use POST method.\n if (url.length > 2048) {\n delete data.q;\n requestUrl = `${baseUrl}?${querystring.stringify(data)}`;\n requestOptions = {\n method: \"POST\",\n body: new URLSearchParams({ q: text }).toString(),\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\",\n },\n };\n if (options.proxy) {\n requestOptions.dispatcher = new ProxyAgent(options.proxy);\n }\n }\n else {\n if (options.proxy) {\n requestOptions = { dispatcher: new ProxyAgent(options.proxy) };\n }\n }\n\n // Request translation from Google Translate.\n let response = await request(requestUrl, requestOptions);\n let body: any = await response.body.json();\n\n let result: TranslateResponse = {\n text: \"\",\n from: {\n language: {\n didYouMean: false,\n iso: \"\"\n },\n text: {\n autoCorrected: false,\n value: \"\",\n didYouMean: false\n }\n },\n raw: \"\"\n };\n\n // If user requested a raw output, add the raw response to the result\n if (options.raw) {\n result.raw = body;\n }\n\n // Parse body and add it to the result object.\n body[0].forEach((obj: any) => {\n if (obj[0]) {\n result.text += obj[0];\n }\n });\n\n if (body[2] === body[8][0][0]) {\n result.from.language.iso = body[2];\n }\n else {\n result.from.language.didYouMean = true;\n result.from.language.iso = body[8][0][0];\n }\n\n if (body[7] && body[7][0]) {\n let str = body[7][0];\n\n str = str.replace(/<b><i>/g, \"[\");\n str = str.replace(/<\\/i><\\/b>/g, \"]\");\n\n result.from.text.value = str;\n\n if (body[7][5] === true) {\n result.from.text.autoCorrected = true;\n }\n else {\n result.from.text.didYouMean = true;\n }\n }\n\n return result;\n}\n", "/**\n * Generated from https://translate.google.com\n *\n * The languages that Google Translate supports (as of 7/5/2020) alongside\n * their ISO 639-1 codes\n * @see https://cloud.google.com/translate/docs/languages\n * @see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n */\n\nexport const languages: any = {\n \"auto\": \"Automatic\",\n \"af\": \"Afrikaans\",\n \"sq\": \"Albanian\",\n \"am\": \"Amharic\",\n \"ar\": \"Arabic\",\n \"hy\": \"Armenian\",\n \"az\": \"Azerbaijani\",\n \"eu\": \"Basque\",\n \"be\": \"Belarusian\",\n \"bn\": \"Bengali\",\n \"bs\": \"Bosnian\",\n \"bg\": \"Bulgarian\",\n \"ca\": \"Catalan\",\n \"ceb\": \"Cebuano\",\n \"ny\": \"Chichewa\",\n \"zh-cn\": \"Chinese Simplified\",\n \"zh-tw\": \"Chinese Traditional\",\n \"co\": \"Corsican\",\n \"hr\": \"Croatian\",\n \"cs\": \"Czech\",\n \"da\": \"Danish\",\n \"nl\": \"Dutch\",\n \"en\": \"English\",\n \"eo\": \"Esperanto\",\n \"et\": \"Estonian\",\n \"tl\": \"Filipino\",\n \"fi\": \"Finnish\",\n \"fr\": \"French\",\n \"fy\": \"Frisian\",\n \"gl\": \"Galician\",\n \"ka\": \"Georgian\",\n \"de\": \"German\",\n \"el\": \"Greek\",\n \"gu\": \"Gujarati\",\n \"ht\": \"Haitian Creole\",\n \"ha\": \"Hausa\",\n \"haw\": \"Hawaiian\",\n \"iw\": \"Hebrew\",\n \"hi\": \"Hindi\",\n \"hmn\": \"Hmong\",\n \"hu\": \"Hungarian\",\n \"is\": \"Icelandic\",\n \"ig\": \"Igbo\",\n \"id\": \"Indonesian\",\n \"ga\": \"Irish\",\n \"it\": \"Italian\",\n \"ja\": \"Japanese\",\n \"jw\": \"Javanese\",\n \"kn\": \"Kannada\",\n \"kk\": \"Kazakh\",\n \"km\": \"Khmer\",\n \"ko\": \"Korean\",\n \"ku\": \"Kurdish (Kurmanji)\",\n \"ky\": \"Kyrgyz\",\n \"lo\": \"Lao\",\n \"la\": \"Latin\",\n \"lv\": \"Latvian\",\n \"lt\": \"Lithuanian\",\n \"lb\": \"Luxembourgish\",\n \"mk\": \"Macedonian\",\n \"mg\": \"Malagasy\",\n \"ms\": \"Malay\",\n \"ml\": \"Malayalam\",\n \"mt\": \"Maltese\",\n \"mi\": \"Maori\",\n \"mr\": \"Marathi\",\n \"mn\": \"Mongolian\",\n \"my\": \"Myanmar (Burmese)\",\n \"ne\": \"Nepali\",\n \"no\": \"Norwegian\",\n \"ps\": \"Pashto\",\n \"fa\": \"Persian\",\n \"pl\": \"Polish\",\n \"pt\": \"Portuguese\",\n \"pa\": \"Punjabi\",\n \"ro\": \"Romanian\",\n \"ru\": \"Russian\",\n \"sm\": \"Samoan\",\n \"gd\": \"Scots Gaelic\",\n \"sr\": \"Serbian\",\n \"st\": \"Sesotho\",\n \"sn\": \"Shona\",\n \"sd\": \"Sindhi\",\n \"si\": \"Sinhala\",\n \"sk\": \"Slovak\",\n \"sl\": \"Slovenian\",\n \"so\": \"Somali\",\n \"es\": \"Spanish\",\n \"su\": \"Sundanese\",\n \"sw\": \"Swahili\",\n \"sv\": \"Swedish\",\n \"tg\": \"Tajik\",\n \"ta\": \"Tamil\",\n \"te\": \"Telugu\",\n \"th\": \"Thai\",\n \"tr\": \"Turkish\",\n \"uk\": \"Ukrainian\",\n \"ur\": \"Urdu\",\n \"uz\": \"Uzbek\",\n \"vi\": \"Vietnamese\",\n \"cy\": \"Welsh\",\n \"xh\": \"Xhosa\",\n \"yi\": \"Yiddish\",\n \"yo\": \"Yoruba\",\n \"zu\": \"Zulu\"\n};\n\n/**\n * Returns the ISO 639-1 code of the desiredLang \u2013 if it is supported by\n * Google Translate\n * @param {string} language The name or the code of the desired language\n * @returns {string|undefined} The ISO 639-1 code of the language or null if the\n * language is not supported\n */\nexport function getISOCode(language: string | undefined) {\n if (!language) return undefined;\n language = language.toLowerCase();\n if (language in languages) return language;\n\n let keys = Object.keys(languages).filter((key) => {\n if (typeof languages[key] !== \"string\") return false;\n\n return languages[key].toLowerCase() === language;\n });\n\n return keys[0] || undefined;\n}\n\n/**\n * Returns true if the desiredLang is supported by Google Translate and false otherwise\n * @param {string} language The ISO 639-1 code or the name of the desired language.\n * @returns {boolean} If the language is supported or not.\n */\nexport function isSupported(language: string | undefined) {\n return Boolean(getISOCode(language));\n}\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\n\nimport { request } from \"undici\";\n\nfunction zr(a: string) {\n let b: any;\n if (null !== yr) b = yr;\n else {\n b = wr(String.fromCharCode(84));\n let c = wr(String.fromCharCode(75));\n b = [ b(), b() ];\n b[1] = c();\n b = (yr = window[b.join(c())] || \"\") || \"\";\n }\n let d: any = wr(String.fromCharCode(116));\n let c: any = wr(String.fromCharCode(107));\n d = [ d(), d() ];\n d[1] = c();\n c = \"&\" + d.join(\"\") + \"=\";\n d = b.split(\".\");\n b = Number(d[0]) || 0;\n\n for (var e: any[] = [], f = 0, g = 0; g < a.length; g++) {\n let l = a.charCodeAt(g);\n 128 > l ? e[f++] = l : (2048 > l ? e[f++] = l >> 6 | 192 : ((l & 64512) == 55296 && g + 1 < a.length && (a.charCodeAt(g + 1) & 64512) == 56320 ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023), e[f++] = l >> 18 | 240, e[f++] = l >> 12 & 63 | 128) : e[f++] = l >> 12 | 224, e[f++] = l >> 6 & 63 | 128), e[f++] = l & 63 | 128);\n }\n let h: number = Number(b);\n for (let f = 0; f < e.length; f++) a += e[f], h = xr(h, \"+-a^+6\");\n h = xr(h, \"+-3^+b+-f\");\n h ^= Number(d[1]) || 0;\n 0 > h && (h = (h & 2147483647) + 2147483648);\n h %= 1E6;\n return c + (a.toString() + \".\" + (h ^ b));\n}\n\nlet yr: string | null = null;\nlet wr = function(a: string) {\n return function() {\n return a;\n };\n};\nlet xr = function(a: number, b: string) {\n for (let c = 0; c < b.length - 2; c += 3) {\n let d = b.charAt(c + 2);\n let e = d >= \"a\" ? d.charCodeAt(0) - 87 : Number(d);\n e = b.charAt(c + 1) == \"+\" ? a >>> e : a << e;\n a = b.charAt(c) == \"+\" ? a + e & 4294967295 : a ^ e;\n }\n return a;\n};\n\nconst config = new Map();\n\nconst window: any = {\n TKK: config.get(\"TKK\") || \"0\"\n};\n\nasync function updateTKK() {\n let now = Math.floor(Date.now() / 3600000);\n\n if (Number(window.TKK.split(\".\")[0]) !== now) {\n const response = await request(\"https://translate.google.com\");\n const body = await response.body.text();\n\n // code will extract something like tkk:'1232135.131231321312', we need only value\n const code = body.match(/tkk:'\\d+.\\d+'/g);\n\n if (code && code.length > 0) {\n // extracting value tkk:'1232135.131231321312', this will extract only token: 1232135.131231321312\n const xt = code[0].split(\":\")[1].replace(/'/g, \"\");\n\n window.TKK = xt;\n config.set(\"TKK\", xt);\n }\n }\n}\n\nexport async function tokenGenerator(text: string) {\n try {\n await updateTKK();\n\n let tk = zr(text);\n tk = tk.replace(\"&tk=\", \"\");\n return { name: \"tk\", value: tk };\n }\n catch (error) {\n return error;\n }\n}\n", "import { translate } from \"../vendor/@iamtraction-translate/src\";\nimport * as googleTTS from \"google-tts-api\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport * as https from \"https\";\nimport * as child_process from \"child_process\";\nimport { existsSync, writeFileSync, unlinkSync } from \"fs\";\nimport { LanguageCode } from \"./languages\";\nimport { LanguageCodeSet } from \"./types\";\n\nexport const AUTO_DETECT = \"auto\";\n\nexport type SimpleTranslateResult = {\n originalText: string;\n translatedText: string;\n pronunciationText?: string;\n langFrom: LanguageCode;\n langTo: LanguageCode;\n};\n\nexport class TranslateError extends Error {}\n\nconst extractPronounceTextFromRaw = (raw: string) => {\n return raw?.[0]?.[1]?.[2];\n};\n\nexport async function simpleTranslate(text: string, options: LanguageCodeSet): Promise<SimpleTranslateResult> {\n try {\n if (!text) {\n return {\n originalText: text,\n translatedText: \"\",\n pronunciationText: \"\",\n langFrom: options.langFrom,\n langTo: options.langTo[0],\n };\n }\n\n const translated = await translate(text, {\n from: options.langFrom,\n to: options.langTo[0],\n raw: true,\n proxy: options.proxy,\n });\n\n return {\n originalText: text,\n translatedText: translated.text,\n pronunciationText: extractPronounceTextFromRaw(translated?.raw),\n langFrom: translated?.from?.language?.iso as LanguageCode,\n langTo: options.langTo[0],\n };\n } catch (err) {\n if (err instanceof Error) {\n if (err.name === \"TooManyRequestsError\") {\n const error = new TranslateError();\n error.name = \"Too many requests\";\n error.message = \"please try again later\";\n throw error;\n }\n\n const error = new TranslateError();\n error.name = err.name;\n error.message = err.message;\n throw error;\n }\n\n throw err;\n }\n}\n\nexport async function doubleWayTranslate(text: string, options: LanguageCodeSet) {\n if (!text) {\n return [];\n }\n\n if (options.langFrom === AUTO_DETECT) {\n const translated1 = await simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n });\n\n if (translated1?.langFrom) {\n const translated2 = await simpleTranslate(translated1.translatedText, {\n langFrom: options.langTo[0],\n langTo: [translated1.langFrom],\n });\n\n return [translated1, translated2];\n }\n\n return [];\n } else {\n return await Promise.all([\n simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n }),\n simpleTranslate(text, {\n langFrom: options.langTo[0],\n langTo: [options.langFrom],\n }),\n ]);\n }\n}\n\nexport async function playTTS(text: string, langTo: string) {\n const audioUrl = googleTTS.getAudioUrl(text, {\n lang: langTo,\n slow: false,\n host: \"https://translate.google.com\",\n });\n https.get(audioUrl, (response) => {\n const chunks: Uint8Array[] = [];\n\n response.on(\"data\", (chunk) => {\n chunks.push(chunk);\n });\n\n response.on(\"end\", () => {\n const audioData = Buffer.concat(chunks);\n\n const tempFilePath = path.join(os.tmpdir(), \"translation.mp3\");\n writeFileSync(tempFilePath, audioData);\n\n // Play the audio file using afplay\n const afplayProcess = child_process.spawn(\"afplay\", [tempFilePath]);\n\n afplayProcess.on(\"exit\", (code) => {\n if (code !== 0) {\n console.error(\"Error playing audio\");\n }\n if (existsSync(tempFilePath)) {\n unlinkSync(tempFilePath);\n }\n });\n });\n });\n}\n", "{\n \"Auto-detect\": {\n \"code\": \"auto\",\n \"name\": \"Auto-detect\",\n \"flag\": \"\uD83C\uDF10\"\n },\n \"Afrikaans\": {\n \"code\": \"af\",\n \"name\": \"Afrikaans\",\n \"flag\": \"\uD83C\uDDFF\uD83C\uDDE6\"\n },\n \"Albanian\": {\n \"code\": \"sq\",\n \"name\": \"Albanian\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDF1\"\n },\n \"Amharic\": {\n \"code\": \"am\",\n \"name\": \"Amharic\"\n },\n \"Arabic\": {\n \"code\": \"ar\",\n \"name\": \"Arabic\"\n },\n \"Armenian\": {\n \"code\": \"hy\",\n \"name\": \"Armenian\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDF2\"\n },\n \"Azerbaijani\": {\n \"code\": \"az\",\n \"name\": \"Azerbaijani\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDFF\"\n },\n \"Basque\": {\n \"code\": \"eu\",\n \"name\": \"Basque\"\n },\n \"Belarusian\": {\n \"code\": \"be\",\n \"name\": \"Belarusian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDFE\"\n },\n \"Bengali\": {\n \"code\": \"bn\",\n \"name\": \"Bengali\"\n },\n \"Bosnian\": {\n \"code\": \"bs\",\n \"name\": \"Bosnian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDE6\"\n },\n \"Bulgarian\": {\n \"code\": \"bg\",\n \"name\": \"Bulgarian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDEC\"\n },\n \"Catalan\": {\n \"code\": \"ca\",\n \"name\": \"Catalan\"\n },\n \"Cebuano\": {\n \"code\": \"ceb\",\n \"name\": \"Cebuano\"\n },\n \"Chinese Simplified\": {\n \"code\": \"zh-CN\",\n \"name\": \"Chinese Simplified\",\n \"flag\": \"\uD83C\uDDE8\uD83C\uDDF3\"\n },\n \"Mandarin\": {\n \"code\": \"zh-TW\",\n \"name\": \"Chinese Traditional\"\n },\n \"Corsican\": {\n \"code\": \"co\",\n \"name\": \"Corsican\"\n },\n \"Croatian\": {\n \"code\": \"hr\",\n \"name\": \"Croatian\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDF7\"\n },\n \"Czech\": {\n \"code\": \"cs\",\n \"name\": \"Czech\",\n \"flag\": \"\uD83C\uDDE8\uD83C\uDDFF\"\n },\n \"Danish\": {\n \"code\": \"da\",\n \"name\": \"Danish\",\n \"flag\": \"\uD83C\uDDE9\uD83C\uDDF0\"\n },\n \"Dutch\": {\n \"code\": \"nl\",\n \"name\": \"Dutch\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF1\"\n },\n \"English\": {\n \"code\": \"en\",\n \"name\": \"English\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDE7\"\n },\n \"Esperanto\": {\n \"code\": \"eo\",\n \"name\": \"Esperanto\"\n },\n \"Estonian\": {\n \"code\": \"et\",\n \"name\": \"Estonian\",\n \"flag\": \"\uD83C\uDDEA\uD83C\uDDEA\"\n },\n \"Finnish\": {\n \"code\": \"fi\",\n \"name\": \"Finnish\",\n \"flag\": \"\uD83C\uDDEB\uD83C\uDDEE\"\n },\n \"French\": {\n \"code\": \"fr\",\n \"name\": \"French\",\n \"flag\": \"\uD83C\uDDEB\uD83C\uDDF7\"\n },\n \"Frisian\": {\n \"code\": \"fy\",\n \"name\": \"Frisian\"\n },\n \"Galician\": {\n \"code\": \"gl\",\n \"name\": \"Galician\"\n },\n \"Georgian\": {\n \"code\": \"ka\",\n \"name\": \"Georgian\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDEA\"\n },\n \"German\": {\n \"code\": \"de\",\n \"name\": \"German\",\n \"flag\": \"\uD83C\uDDE9\uD83C\uDDEA\"\n },\n \"Greek\": {\n \"code\": \"el\",\n \"name\": \"Greek\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDF7\"\n },\n \"Gujarati\": {\n \"code\": \"gu\",\n \"name\": \"Gujarati\"\n },\n \"Haitian Creole\": {\n \"code\": \"ht\",\n \"name\": \"Haitian Creole\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDF9\"\n },\n \"Hausa\": {\n \"code\": \"ha\",\n \"name\": \"Hausa\"\n },\n \"Hawaiian\": {\n \"code\": \"haw\",\n \"name\": \"Hawaiian\",\n \"flag\": \"\uD83C\uDF3A\"\n },\n \"Hebrew\": {\n \"code\": \"iw\",\n \"name\": \"Hebrew\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF1\"\n },\n \"Hindi\": {\n \"code\": \"hi\",\n \"name\": \"Hindi\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF3\"\n },\n \"Hmong\": {\n \"code\": \"hmn\",\n \"name\": \"Hmong\"\n },\n \"Hungarian\": {\n \"code\": \"hu\",\n \"name\": \"Hungarian\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDFA\"\n },\n \"Icelandic\": {\n \"code\": \"is\",\n \"name\": \"Icelandic\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF8\"\n },\n \"Igbo\": {\n \"code\": \"ig\",\n \"name\": \"Igbo\"\n },\n \"Indonesian\": {\n \"code\": \"id\",\n \"name\": \"Indonesian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDE9\"\n },\n \"Irish\": {\n \"code\": \"ga\",\n \"name\": \"Irish\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDEA\"\n },\n \"Italian\": {\n \"code\": \"it\",\n \"name\": \"Italian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF9\"\n },\n \"Japanese\": {\n \"code\": \"ja\",\n \"name\": \"Japanese\",\n \"flag\": \"\uD83C\uDDEF\uD83C\uDDF5\"\n },\n \"Javanese\": {\n \"code\": \"jv\",\n \"name\": \"Javanese\"\n },\n \"Kannada\": {\n \"code\": \"kn\",\n \"name\": \"Kannada\"\n },\n \"Kazakh\": {\n \"code\": \"kk\",\n \"name\": \"Kazakh\",\n \"flag\": \"\uD83C\uDDF0\uD83C\uDDFF\"\n },\n \"Khmer\": {\n \"code\": \"km\",\n \"name\": \"Khmer\"\n },\n \"Kinyarwanda\": {\n \"code\": \"rw\",\n \"name\": \"Kinyarwanda\"\n },\n \"Korean\": {\n \"code\": \"ko\",\n \"name\": \"Korean\",\n \"flag\": \"\uD83C\uDDF0\uD83C\uDDF7\"\n },\n \"Kurdish\": {\n \"code\": \"ku\",\n \"name\": \"Kurdish\"\n },\n \"Kyrgyz\": {\n \"code\": \"ky\",\n \"name\": \"Kyrgyz\"\n },\n \"Lao\": {\n \"code\": \"lo\",\n \"name\": \"Lao\"\n },\n \"Latvian\": {\n \"code\": \"lv\",\n \"name\": \"Latvian\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDFB\"\n },\n \"Lithuanian\": {\n \"code\": \"lt\",\n \"name\": \"Lithuanian\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDF9\"\n },\n \"Luxembourgish\": {\n \"code\": \"lb\",\n \"name\": \"Luxembourgish\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDFA\"\n },\n \"Latin\": {\n \"code\": \"la\",\n \"name\": \"Latin\",\n \"flag\": \"\uD83C\uDFDB\"\n },\n \"Macedonian\": {\n \"code\": \"mk\",\n \"name\": \"Macedonian\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF0\"\n },\n \"Malagasy\": {\n \"code\": \"mg\",\n \"name\": \"Malagasy\"\n },\n \"Malay\": {\n \"code\": \"ms\",\n \"name\": \"Malay\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDFE\"\n },\n \"Malayalam\": {\n \"code\": \"ml\",\n \"name\": \"Malayalam\"\n },\n \"Maltese\": {\n \"code\": \"mt\",\n \"name\": \"Maltese\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF9\"\n },\n \"Maori\": {\n \"code\": \"mi\",\n \"name\": \"Maori\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDFF\"\n },\n \"Marathi\": {\n \"code\": \"mr\",\n \"name\": \"Marathi\"\n },\n \"Mongolian\": {\n \"code\": \"mn\",\n \"name\": \"Mongolian\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF3\"\n },\n \"Myanmar (Burmese)\": {\n \"code\": \"my\",\n \"name\": \"Myanmar (Burmese)\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF2\"\n },\n \"Nepali\": {\n \"code\": \"ne\",\n \"name\": \"Nepali\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF5\"\n },\n \"Norwegian\": {\n \"code\": \"no\",\n \"name\": \"Norwegian\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF4\"\n },\n \"Nyanja (Chichewa)\": {\n \"code\": \"ny\",\n \"name\": \"Nyanja (Chichewa)\"\n },\n \"Odia (Oriya)\": {\n \"code\": \"or\",\n \"name\": \"Odia (Oriya)\"\n },\n \"Pashto\": {\n \"code\": \"ps\",\n \"name\": \"Pashto\"\n },\n \"Persian\": {\n \"code\": \"fa\",\n \"name\": \"Persian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF7\"\n },\n \"Polish\": {\n \"code\": \"pl\",\n \"name\": \"Polish\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDF1\"\n },\n \"Portuguese\": {\n \"code\": \"pt\",\n \"name\": \"Portuguese\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDF9\"\n },\n \"Punjabi\": {\n \"code\": \"pa\",\n \"name\": \"Punjabi\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF3\"\n },\n \"Romanian\": {\n \"code\": \"ro\",\n \"name\": \"Romanian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDF4\"\n },\n \"Russian\": {\n \"code\": \"ru\",\n \"name\": \"Russian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDFA\"\n },\n \"Samoan\": {\n \"code\": \"sm\",\n \"name\": \"Samoan\"\n },\n \"Scots Gaelic\": {\n \"code\": \"gd\",\n \"name\": \"Scots Gaelic\",\n \"flag\": \"\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74\uDB40\uDC7F\"\n },\n \"Serbian\": {\n \"code\": \"sr\",\n \"name\": \"Serbian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDF8\"\n },\n \"Sesotho\": {\n \"code\": \"st\",\n \"name\": \"Sesotho\"\n },\n \"Shona\": {\n \"code\": \"sn\",\n \"name\": \"Shona\"\n },\n \"Sindhi\": {\n \"code\": \"sd\",\n \"name\": \"Sindhi\"\n },\n \"Sinhala (Sinhalese)\": {\n \"code\": \"si\",\n \"name\": \"Sinhala (Sinhalese)\"\n },\n \"Slovak\": {\n \"code\": \"sk\",\n \"name\": \"Slovak\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDF0\"\n },\n \"Slovenian\": {\n \"code\": \"sl\",\n \"name\": \"Slovenian\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDEE\"\n },\n \"Somali\": {\n \"code\": \"so\",\n \"name\": \"Somali\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDF4\"\n },\n \"Spanish\": {\n \"code\": \"es\",\n \"name\": \"Spanish\",\n \"flag\": \"\uD83C\uDDEA\uD83C\uDDF8\"\n },\n \"Sundanese\": {\n \"code\": \"su\",\n \"name\": \"Sundanese\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDE9\"\n },\n \"Swahili\": {\n \"code\": \"sw\",\n \"name\": \"Swahili\"\n },\n \"Swedish\": {\n \"code\": \"sv\",\n \"name\": \"Swedish\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDEA\"\n },\n \"Tagalog (Filipino)\": {\n \"code\": \"tl\",\n \"name\": \"Tagalog (Filipino)\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDED\"\n },\n \"Tajik\": {\n \"code\": \"tg\",\n \"name\": \"Tajik\"\n },\n \"Tamil\": {\n \"code\": \"ta\",\n \"name\": \"Tamil\"\n },\n \"Tatar\": {\n \"code\": \"tt\",\n \"name\": \"Tatar\"\n },\n \"Telugu\": {\n \"code\": \"te\",\n \"name\": \"Telugu\"\n },\n \"Thai\": {\n \"code\": \"th\",\n \"name\": \"Thai\"\n },\n \"Turkish\": {\n \"code\": \"tr\",\n \"name\": \"Turkish\",\n \"flag\": \"\uD83C\uDDF9\uD83C\uDDF7\"\n },\n \"Turkmen\": {\n \"code\": \"tk\",\n \"name\": \"Turkmen\",\n \"flag\": \"\uD83C\uDDF9\uD83C\uDDF2\"\n },\n \"Ukrainian\": {\n \"code\": \"uk\",\n \"name\": \"Ukrainian\",\n \"flag\": \"\uD83C\uDDFA\uD83C\uDDE6\"\n },\n \"Urdu\": {\n \"code\": \"ur\",\n \"name\": \"Urdu\"\n },\n \"Uyghur\": {\n \"code\": \"ug\",\n \"name\": \"Uyghur\"\n },\n \"Uzbek\": {\n \"code\": \"uz\",\n \"name\": \"Uzbek\"\n },\n \"Vietnamese\": {\n \"code\": \"vi\",\n \"name\": \"Vietnamese\",\n \"flag\": \"\uD83C\uDDFB\uD83C\uDDF3\"\n },\n \"Welsh\": {\n \"code\": \"cy\",\n \"name\": \"Welsh\",\n \"flag\": \"\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73\uDB40\uDC7F\"\n },\n \"Xhosa\": {\n \"code\": \"xh\",\n \"name\": \"Xhosa\"\n },\n \"Yiddish\": {\n \"code\": \"yi\",\n \"name\": \"Yiddish\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF1\"\n },\n \"Yoruba\": {\n \"code\": \"yo\",\n \"name\": \"Yoruba\"\n },\n \"Zulu\": {\n \"code\": \"zu\",\n \"name\": \"Zulu\"\n }\n}\n", "{\n \"auto\": {\n \"code\": \"auto\",\n \"name\": \"Auto-detect\",\n \"flag\": \"\uD83C\uDF10\"\n },\n \"af\": {\n \"code\": \"af\",\n \"name\": \"Afrikaans\",\n \"flag\": \"\uD83C\uDDFF\uD83C\uDDE6\"\n },\n \"sq\": {\n \"code\": \"sq\",\n \"name\": \"Albanian\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDF1\"\n },\n \"am\": {\n \"code\": \"am\",\n \"name\": \"Amharic\"\n },\n \"ar\": {\n \"code\": \"ar\",\n \"name\": \"Arabic\"\n },\n \"hy\": {\n \"code\": \"hy\",\n \"name\": \"Armenian\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDF2\"\n },\n \"az\": {\n \"code\": \"az\",\n \"name\": \"Azerbaijani\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDFF\"\n },\n \"eu\": {\n \"code\": \"eu\",\n \"name\": \"Basque\"\n },\n \"be\": {\n \"code\": \"be\",\n \"name\": \"Belarusian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDFE\"\n },\n \"bn\": {\n \"code\": \"bn\",\n \"name\": \"Bengali\"\n },\n \"bs\": {\n \"code\": \"bs\",\n \"name\": \"Bosnian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDE6\"\n },\n \"bg\": {\n \"code\": \"bg\",\n \"name\": \"Bulgarian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDEC\"\n },\n \"ca\": {\n \"code\": \"ca\",\n \"name\": \"Catalan\"\n },\n \"ceb\": {\n \"code\": \"ceb\",\n \"name\": \"Cebuano\"\n },\n \"zh-CN\": {\n \"code\": \"zh-CN\",\n \"name\": \"Chinese Simplified\",\n \"flag\": \"\uD83C\uDDE8\uD83C\uDDF3\"\n },\n \"zh-TW\": {\n \"code\": \"zh-TW\",\n \"name\": \"Chinese Traditional\"\n },\n \"co\": {\n \"code\": \"co\",\n \"name\": \"Corsican\"\n },\n \"hr\": {\n \"code\": \"hr\",\n \"name\": \"Croatian\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDF7\"\n },\n \"cs\": {\n \"code\": \"cs\",\n \"name\": \"Czech\",\n \"flag\": \"\uD83C\uDDE8\uD83C\uDDFF\"\n },\n \"da\": {\n \"code\": \"da\",\n \"name\": \"Danish\",\n \"flag\": \"\uD83C\uDDE9\uD83C\uDDF0\"\n },\n \"nl\": {\n \"code\": \"nl\",\n \"name\": \"Dutch\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF1\"\n },\n \"en\": {\n \"code\": \"en\",\n \"name\": \"English\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDE7\"\n },\n \"eo\": {\n \"code\": \"eo\",\n \"name\": \"Esperanto\"\n },\n \"et\": {\n \"code\": \"et\",\n \"name\": \"Estonian\",\n \"flag\": \"\uD83C\uDDEA\uD83C\uDDEA\"\n },\n \"fi\": {\n \"code\": \"fi\",\n \"name\": \"Finnish\",\n \"flag\": \"\uD83C\uDDEB\uD83C\uDDEE\"\n },\n \"fr\": {\n \"code\": \"fr\",\n \"name\": \"French\",\n \"flag\": \"\uD83C\uDDEB\uD83C\uDDF7\"\n },\n \"fy\": {\n \"code\": \"fy\",\n \"name\": \"Frisian\"\n },\n \"gl\": {\n \"code\": \"gl\",\n \"name\": \"Galician\"\n },\n \"ka\": {\n \"code\": \"ka\",\n \"name\": \"Georgian\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDEA\"\n },\n \"de\": {\n \"code\": \"de\",\n \"name\": \"German\",\n \"flag\": \"\uD83C\uDDE9\uD83C\uDDEA\"\n },\n \"el\": {\n \"code\": \"el\",\n \"name\": \"Greek\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDF7\"\n },\n \"gu\": {\n \"code\": \"gu\",\n \"name\": \"Gujarati\"\n },\n \"ht\": {\n \"code\": \"ht\",\n \"name\": \"Haitian Creole\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDF9\"\n },\n \"ha\": {\n \"code\": \"ha\",\n \"name\": \"Hausa\"\n },\n \"haw\": {\n \"code\": \"haw\",\n \"name\": \"Hawaiian\",\n \"flag\": \"\uD83C\uDF3A\"\n },\n \"iw\": {\n \"code\": \"iw\",\n \"name\": \"Hebrew\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF1\"\n },\n \"hi\": {\n \"code\": \"hi\",\n \"name\": \"Hindi\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF3\"\n },\n \"hmn\": {\n \"code\": \"hmn\",\n \"name\": \"Hmong\"\n },\n \"hu\": {\n \"code\": \"hu\",\n \"name\": \"Hungarian\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDFA\"\n },\n \"is\": {\n \"code\": \"is\",\n \"name\": \"Icelandic\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF8\"\n },\n \"ig\": {\n \"code\": \"ig\",\n \"name\": \"Igbo\"\n },\n \"id\": {\n \"code\": \"id\",\n \"name\": \"Indonesian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDE9\"\n },\n \"ga\": {\n \"code\": \"ga\",\n \"name\": \"Irish\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDEA\"\n },\n \"it\": {\n \"code\": \"it\",\n \"name\": \"Italian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF9\"\n },\n \"ja\": {\n \"code\": \"ja\",\n \"name\": \"Japanese\",\n \"flag\": \"\uD83C\uDDEF\uD83C\uDDF5\"\n },\n \"jv\": {\n \"code\": \"jv\",\n \"name\": \"Javanese\"\n },\n \"kn\": {\n \"code\": \"kn\",\n \"name\": \"Kannada\"\n },\n \"kk\": {\n \"code\": \"kk\",\n \"name\": \"Kazakh\",\n \"flag\": \"\uD83C\uDDF0\uD83C\uDDFF\"\n },\n \"km\": {\n \"code\": \"km\",\n \"name\": \"Khmer\"\n },\n \"rw\": {\n \"code\": \"rw\",\n \"name\": \"Kinyarwanda\"\n },\n \"ko\": {\n \"code\": \"ko\",\n \"name\": \"Korean\",\n \"flag\": \"\uD83C\uDDF0\uD83C\uDDF7\"\n },\n \"ku\": {\n \"code\": \"ku\",\n \"name\": \"Kurdish\"\n },\n \"ky\": {\n \"code\": \"ky\",\n \"name\": \"Kyrgyz\"\n },\n \"lo\": {\n \"code\": \"lo\",\n \"name\": \"Lao\"\n },\n \"lv\": {\n \"code\": \"lv\",\n \"name\": \"Latvian\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDFB\"\n },\n \"lt\": {\n \"code\": \"lt\",\n \"name\": \"Lithuanian\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDF9\"\n },\n \"lb\": {\n \"code\": \"lb\",\n \"name\": \"Luxembourgish\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDFA\"\n },\n \"la\": {\n \"code\": \"la\",\n \"name\": \"Latin\",\n \"flag\": \"\uD83C\uDFDB\"\n },\n \"mk\": {\n \"code\": \"mk\",\n \"name\": \"Macedonian\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF0\"\n },\n \"mg\": {\n \"code\": \"mg\",\n \"name\": \"Malagasy\"\n },\n \"ms\": {\n \"code\": \"ms\",\n \"name\": \"Malay\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDFE\"\n },\n \"ml\": {\n \"code\": \"ml\",\n \"name\": \"Malayalam\"\n },\n \"mt\": {\n \"code\": \"mt\",\n \"name\": \"Maltese\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF9\"\n },\n \"mi\": {\n \"code\": \"mi\",\n \"name\": \"Maori\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDFF\"\n },\n \"mr\": {\n \"code\": \"mr\",\n \"name\": \"Marathi\"\n },\n \"mn\": {\n \"code\": \"mn\",\n \"name\": \"Mongolian\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF3\"\n },\n \"my\": {\n \"code\": \"my\",\n \"name\": \"Myanmar (Burmese)\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF2\"\n },\n \"ne\": {\n \"code\": \"ne\",\n \"name\": \"Nepali\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF5\"\n },\n \"no\": {\n \"code\": \"no\",\n \"name\": \"Norwegian\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF4\"\n },\n \"ny\": {\n \"code\": \"ny\",\n \"name\": \"Nyanja (Chichewa)\"\n },\n \"or\": {\n \"code\": \"or\",\n \"name\": \"Odia (Oriya)\"\n },\n \"ps\": {\n \"code\": \"ps\",\n \"name\": \"Pashto\"\n },\n \"fa\": {\n \"code\": \"fa\",\n \"name\": \"Persian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF7\"\n },\n \"pl\": {\n \"code\": \"pl\",\n \"name\": \"Polish\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDF1\"\n },\n \"pt\": {\n \"code\": \"pt\",\n \"name\": \"Portuguese\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDF9\"\n },\n \"pa\": {\n \"code\": \"pa\",\n \"name\": \"Punjabi\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF3\"\n },\n \"ro\": {\n \"code\": \"ro\",\n \"name\": \"Romanian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDF4\"\n },\n \"ru\": {\n \"code\": \"ru\",\n \"name\": \"Russian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDFA\"\n },\n \"sm\": {\n \"code\": \"sm\",\n \"name\": \"Samoan\"\n },\n \"gd\": {\n \"code\": \"gd\",\n \"name\": \"Scots Gaelic\",\n \"flag\": \"\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74\uDB40\uDC7F\"\n },\n \"sr\": {\n \"code\": \"sr\",\n \"name\": \"Serbian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDF8\"\n },\n \"st\": {\n \"code\": \"st\",\n \"name\": \"Sesotho\"\n },\n \"sn\": {\n \"code\": \"sn\",\n \"name\": \"Shona\"\n },\n \"sd\": {\n \"code\": \"sd\",\n \"name\": \"Sindhi\"\n },\n \"si\": {\n \"code\": \"si\",\n \"name\": \"Sinhala (Sinhalese)\"\n },\n \"sk\": {\n \"code\": \"sk\",\n \"name\": \"Slovak\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDF0\"\n },\n \"sl\": {\n \"code\": \"sl\",\n \"name\": \"Slovenian\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDEE\"\n },\n \"so\": {\n \"code\": \"so\",\n \"name\": \"Somali\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDF4\"\n },\n \"es\": {\n \"code\": \"es\",\n \"name\": \"Spanish\",\n \"flag\": \"\uD83C\uDDEA\uD83C\uDDF8\"\n },\n \"su\": {\n \"code\": \"su\",\n \"name\": \"Sundanese\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDE9\"\n },\n \"sw\": {\n \"code\": \"sw\",\n \"name\": \"Swahili\"\n },\n \"sv\": {\n \"code\": \"sv\",\n \"name\": \"Swedish\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDEA\"\n },\n \"tl\": {\n \"code\": \"tl\",\n \"name\": \"Tagalog (Filipino)\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDED\"\n },\n \"tg\": {\n \"code\": \"tg\",\n \"name\": \"Tajik\"\n },\n \"ta\": {\n \"code\": \"ta\",\n \"name\": \"Tamil\"\n },\n \"tt\": {\n \"code\": \"tt\",\n \"name\": \"Tatar\"\n },\n \"te\": {\n \"code\": \"te\",\n \"name\": \"Telugu\"\n },\n \"th\": {\n \"code\": \"th\",\n \"name\": \"Thai\"\n },\n \"tr\": {\n \"code\": \"tr\",\n \"name\": \"Turkish\",\n \"flag\": \"\uD83C\uDDF9\uD83C\uDDF7\"\n },\n \"tk\": {\n \"code\": \"tk\",\n \"name\": \"Turkmen\",\n \"flag\": \"\uD83C\uDDF9\uD83C\uDDF2\"\n },\n \"uk\": {\n \"code\": \"uk\",\n \"name\": \"Ukrainian\",\n \"flag\": \"\uD83C\uDDFA\uD83C\uDDE6\"\n },\n \"ur\": {\n \"code\": \"ur\",\n \"name\": \"Urdu\"\n },\n \"ug\": {\n \"code\": \"ug\",\n \"name\": \"Uyghur\"\n },\n \"uz\": {\n \"code\": \"uz\",\n \"name\": \"Uzbek\"\n },\n \"vi\": {\n \"code\": \"vi\",\n \"name\": \"Vietnamese\",\n \"flag\": \"\uD83C\uDDFB\uD83C\uDDF3\"\n },\n \"cy\": {\n \"code\": \"cy\",\n \"name\": \"Welsh\",\n \"flag\": \"\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73\uDB40\uDC7F\"\n },\n \"xh\": {\n \"code\": \"xh\",\n \"name\": \"Xhosa\"\n },\n \"yi\": {\n \"code\": \"yi\",\n \"name\": \"Yiddish\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF1\"\n },\n \"yo\": {\n \"code\": \"yo\",\n \"name\": \"Yoruba\"\n },\n \"zu\": {\n \"code\": \"zu\",\n \"name\": \"Zulu\"\n }\n}\n", "import _supportedLanguagesByCountry from \"./supportedLanguages.json\";\nimport _supportedLanguagesByCode from \"./supportedLanguagesByCode.json\";\n\nexport type LanguagesMapByCountry = typeof _supportedLanguagesByCountry;\nexport type LanguageCountries = keyof LanguagesMapByCountry;\n\nexport type LanguagesMapByCode = typeof _supportedLanguagesByCode;\nexport type LanguageCode = keyof LanguagesMapByCode;\n\nexport type LanguagesItem = {\n code: LanguageCode;\n name: string;\n flag?: string;\n};\n\nexport const getLanguageFlag = (language?: LanguagesItem, fallback = \"\uD83C\uDFF3\uFE0F\") => {\n return language?.flag ?? fallback;\n};\n\nexport const getLanguageFlagByCode = (lang: LanguageCode) => {\n return getLanguageFlag(supportedLanguagesByCode[lang]);\n};\n\nexport const supportedLanguagesByCode = _supportedLanguagesByCode as Record<LanguageCode, LanguagesItem>;\nexport const supportedLanguagesByCountry = _supportedLanguagesByCountry as Record<LanguageCountries, LanguagesItem>;\n\nexport const languages: LanguagesItem[] = Object.values(supportedLanguagesByCountry);\n", "import { Action, ActionPanel, Icon, List, clearSearchBar } from \"@raycast/api\";\nimport React from \"react\";\nimport { useTargetLanguages } from \"../hooks\";\nimport { getLanguageFlag, getLanguageFlagByCode, languages, supportedLanguagesByCode } from \"../languages\";\nimport { AUTO_DETECT } from \"../simple-translate\";\n\nexport const TargetLanguageList: React.VFC = () => {\n const [targetLanguages, setTargetLanguages] = useTargetLanguages();\n\n return (\n <List searchBarPlaceholder=\"Search languages\">\n <List.Section title=\"Selected Languages\" subtitle={`${targetLanguages.length}`}>\n {targetLanguages.map((lang) => (\n <List.Item\n key={lang}\n title={`${getLanguageFlagByCode(lang)} ${supportedLanguagesByCode[lang].name}`}\n subtitle={lang}\n actions={\n targetLanguages.length === 1 && targetLanguages[0] === \"en\" ? undefined : (\n <ActionPanel>\n <Action\n title=\"Remove\"\n icon={Icon.Minus}\n style={Action.Style.Destructive}\n shortcut={{ modifiers: [\"ctrl\"], key: \"x\" }}\n onAction={() => {\n const updated = targetLanguages.filter((l) => l != lang);\n setTargetLanguages(updated.length === 0 ? [\"en\"] : updated);\n clearSearchBar();\n }}\n />\n <Action\n title=\"Move up\"\n icon={Icon.ArrowUp}\n shortcut={{ modifiers: [\"shift\"], key: \"arrowUp\" }}\n onAction={() => {\n const index = targetLanguages.indexOf(lang);\n if (index > 0) {\n const updated = [...targetLanguages];\n updated.splice(index - 1, 0, updated.splice(index, 1)[0]);\n setTargetLanguages(updated);\n }\n }}\n />\n <Action\n title=\"Move down\"\n icon={Icon.ArrowDown}\n shortcut={{ modifiers: [\"shift\"], key: \"arrowDown\" }}\n onAction={() => {\n const index = targetLanguages.indexOf(lang);\n if (index < targetLanguages.length - 1) {\n const updated = [...targetLanguages];\n updated.splice(index + 1, 0, updated.splice(index, 1)[0]);\n setTargetLanguages(updated);\n }\n }}\n />\n </ActionPanel>\n )\n }\n />\n ))}\n </List.Section>\n <List.Section title=\"Available Languages\">\n {languages\n .filter((lang) => lang.code != AUTO_DETECT && !targetLanguages.includes(lang.code))\n .map((lang) => (\n <List.Item\n key={lang.code}\n title={`${getLanguageFlag(lang)} ${lang.name}`}\n subtitle={lang.code}\n actions={\n <ActionPanel>\n <Action\n title=\"Add\"\n icon={Icon.Plus}\n onAction={() => {\n setTargetLanguages((prev) => [...prev, lang.code]);\n clearSearchBar();\n }}\n />\n </ActionPanel>\n }\n />\n ))}\n </List.Section>\n </List>\n );\n};\n", "import { ActionPanel, List, Toast, showToast } from \"@raycast/api\";\nimport { usePromise } from \"@raycast/utils\";\nimport { getLanguageFlag, supportedLanguagesByCode } from \"../languages\";\nimport { simpleTranslate } from \"../simple-translate\";\nimport { LanguageCodeSet } from \"../types\";\nimport { ConfigurableCopyPasteActions, OpenOnGoogleTranslateWebsiteAction, ToggleFullTextAction } from \"../actions\";\n\nexport function QuickTranslateListItem(props: {\n debouncedText: string;\n languageSet: LanguageCodeSet;\n isShowingDetail: boolean;\n setIsShowingDetail: (isShowingDetail: boolean) => void;\n setIsLoading: (isLoading: boolean) => void;\n}) {\n let langFrom = supportedLanguagesByCode[props.languageSet.langFrom];\n const langTo = supportedLanguagesByCode[props.languageSet.langTo[0]];\n\n const { data: result, isLoading: isLoading } = usePromise(simpleTranslate, [props.debouncedText, props.languageSet], {\n onWillExecute() {\n props.setIsLoading(true);\n },\n onData() {\n props.setIsLoading(false);\n },\n onError(error) {\n props.setIsLoading(false);\n showToast({\n style: Toast.Style.Failure,\n title: `Could not translate to ${langTo.name}`,\n message: error.toString(),\n });\n },\n });\n\n if (isLoading) {\n return (\n <List.Item\n title={`Translating to ${langTo.name}...`}\n accessories={[\n {\n text: `${getLanguageFlag(langTo, langTo?.code)}`,\n tooltip: `${langFrom.name} -> ${langTo.name}`,\n },\n ]}\n />\n );\n }\n\n if (!result) {\n return null;\n }\n\n // Reassigning langFrom to the detected language in case it was auto-detected\n langFrom = supportedLanguagesByCode[result.langFrom];\n\n return (\n <List.Item\n key={langTo.code}\n title={result.translatedText}\n accessories={[\n {\n text: `${getLanguageFlag(langTo, langTo?.code)}`,\n tooltip: `${langFrom.name} -> ${langTo.name}`,\n },\n ]}\n detail={<List.Item.Detail markdown={result.translatedText} />}\n actions={\n <ActionPanel>\n <ActionPanel.Section>\n <ConfigurableCopyPasteActions defaultActionsPrefix=\"Translation\" value={result.translatedText} />\n <ToggleFullTextAction onAction={() => props.setIsShowingDetail(!props.isShowingDetail)} />\n <OpenOnGoogleTranslateWebsiteAction translationText={props.debouncedText} translation={result} />\n </ActionPanel.Section>\n </ActionPanel>\n }\n />\n );\n}\n", "import React from \"react\";\nimport { Action, Icon, getPreferenceValues } from \"@raycast/api\";\nimport { SimpleTranslateResult } from \"./simple-translate\";\n\ninterface ActionsOpts {\n value: string;\n defaultActionsPrefix?: string;\n}\n\nexport const ConfigurableCopyPasteActions = ({ defaultActionsPrefix, value }: ActionsOpts) => {\n const defaultPreference = getPreferenceValues<ExtensionPreferences>().defaultAction;\n\n const pasteAction = (\n <Action.Paste title={defaultActionsPrefix ? `Paste ${defaultActionsPrefix}` : `Paste`} content={value} />\n );\n const copyAction = (\n <Action.CopyToClipboard title={defaultActionsPrefix ? `Copy ${defaultActionsPrefix}` : `Copy`} content={value} />\n );\n\n if (defaultPreference === \"paste\") {\n return (\n <>\n {pasteAction}\n {copyAction}\n </>\n );\n }\n\n return (\n <>\n {copyAction}\n {pasteAction}\n </>\n );\n};\n\nexport const ToggleFullTextAction: React.VFC<{\n onAction: () => void;\n}> = ({ onAction }) => {\n return (\n <Action title=\"Toggle Full Text\" icon={Icon.Text} onAction={onAction} shortcut={{ modifiers: [\"cmd\"], key: \"f\" }} />\n );\n};\n\nexport const OpenOnGoogleTranslateWebsiteAction: React.VFC<{\n translation: Pick<SimpleTranslateResult, \"langFrom\" | \"langTo\">;\n translationText: string;\n}> = ({ translationText, translation }) => {\n return (\n <Action.OpenInBrowser\n title=\"Open in Google Translate\"\n shortcut={{ modifiers: [\"opt\"], key: \"enter\" }}\n url={\n \"https://translate.google.com/?sl=\" +\n translation.langFrom +\n \"&tl=\" +\n translation.langTo +\n \"&text=\" +\n encodeURIComponent(translationText) +\n \"&op=translate\"\n }\n />\n );\n};\n"], + "mappings": "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AAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,uBAAuB,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAK,GAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,GAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,KAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAO,IAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI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AC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAO,KAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OA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,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMU,GAAS,CACb,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMM,GAAU,CACd,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEME,GAAiB,CACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,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,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMC,GAAc,CAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAA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L,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,qBACL,IAAK,WACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,SACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,WACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,kBACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,eACH,MAAO,aACT,IAAK,cACL,IAAK,mBACL,IAAK,SACL,IAAK,aACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,eACL,IAAK,UACH,MAAO,eACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,KACL,IAAK,SACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,KACH,MAAO,cACT,IAAK,cACH,MAAO,cACT,IAAK,UACL,IAAK,MACL,IAAK,OACL,IAAK,SACL,IAAK,SACH,MAAO,SACT,IAAK,UACL,IAAK,SACH,MAAO,SACT,IAAK,cACL,IAAK,MACL,IAAK,YACL,IAAK,cACH,MAAO,YACT,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,UACL,IAAK,cACH,MAAO,cACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,iBACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,cACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACL,IAAK,WACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,iBACL,IAAK,kBACH,MAAO,iBACT,IAAK,UACL,IAAK,WACL,IAAK,kBACL,IAAK,SACL,IAAK,UACL,IAAK,aACL,IAAK,MACL,IAAK,YACL,IAAK,QACH,MAAO,MACT,IAAK,UACH,MAAO,UACT,IAAK,OACL,IAAK,aACL,IAAK,UACL,IAAK,SACL,IAAK,WACH,MAAO,OACT,IAAK,sBACL,IAAK,SACL,IAAK,WACH,MAAO,SACT,IAAK,cACL,IAAK,cACH,MAAO,cACT,IAAK,aACL,IAAK,QACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,OACL,IAAK,cACL,IAAK,SACH,MAAO,YACT,IAAK,UACL,IAAK,gBACL,IAAK,SACL,IAAK,aACL,IAAK,SACL,IAAK,iBACL,IAAK,iBACL,IAAK,UACL,IAAK,WACL,IAAK,cACH,MAAO,SACT,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,cACH,MAAO,cACT,IAAK,cACL,IAAK,WACH,MAAO,WACT,IAAK,YACL,IAAK,kBACL,IAAK,QACL,IAAK,UACL,IAAK,cACL,IAAK,SACL,IAAK,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", + "names": ["require_lite", "__commonJSMin", "exports", "has", "dequal", "foo", "bar", "ctor", "len", "require_useDeepMemo", "__commonJSMin", "exports", "react_1", "lite_1", "useDeepMemo", "value", "ref", "signalRef", "require_useLatest", "__commonJSMin", "exports", "react_1", "useLatest", "value", "ref", "require_handle_error_toast_action", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "fs", "path", "api_1", "handleErrorToastAction", "error", "privateExtension", "title", "extensionURL", "packageJSON", "fallback", "toast", "require_usePromise", "__commonJSMin", "exports", "react_1", "api_1", "useDeepMemo_1", "useLatest_1", "handle_error_toast_action_1", "usePromise", "fn", "args", "options", "lastCallId", "state", "set", "fnRef", "latestAbortable", "latestArgs", "latestOnError", "latestOnData", "latestOnWillExecute", "latestValue", "latestCallback", "callback", "callId", "prevState", "bindPromiseIfNeeded", "data", "error", "toast", "revalidate", "mutate", "asyncUpdate", "dataBeforeOptimisticUpdate", "update", "err", "isLoading", "require_useCachedState", "__commonJSMin", "exports", "react_1", "api_1", "useLatest_1", "replacer", "key", "_value", "value", "reviver", "_key", "rootCache", "cacheMap", "useCachedState", "initialState", "config", "cacheKey", "cache", "keyRef", "initialValueRef", "cachedState", "error", "state", "err", "stateRef", "setStateAndCache", "updater", "newValue", "stringifiedValue", "require_object_hash", "__commonJSMin", "exports", "module", "crypto", "objectHash", "object", "options", "applyDefaults", "hash", "hashes", "encodings", "sourceOptions", "i", "isNativeFunction", "f", "exp", "hashingStream", "PassThrough", "hasher", "typeHasher", "buf", "stream", "writeTo", "context", "write", "str", "value", "type", "pattern", "objString", "objType", "objectNumber", "keys", "key", "self", "arr", "unordered", "entry", "contextAdditions", "entries", "strm", "localContext", "date", "sym", "err", "bool", "string", "fn", "number", "xml", "regex", "url", "map", "set", "file", "b", "require_useCachedPromise", "__commonJSMin", "exports", "__importDefault", "mod", "react_1", "object_hash_1", "useCachedState_1", "usePromise_1", "useLatest_1", "emptyCache", "useCachedPromise", "fn", "args", "options", "initialData", "keepPreviousData", "usePromiseOptions", "lastUpdateFrom", "cachedData", "mutateCache", "laggyDataRef", "_mutate", "revalidate", "state", "data", "returnedData", "latestData", "mutate", "asyncUpdate", "dataBeforeOptimisticUpdate", "err", "require_media_typer", "__commonJSMin", "exports", "SUBTYPE_NAME_REGEXP", "TYPE_NAME_REGEXP", "TYPE_REGEXP", "format", "parse", "test", "obj", "subtype", "suffix", "type", "string", "match", "index", "MediaType", "require_content_type", "__commonJSMin", "exports", "PARAM_REGEXP", "TEXT_REGEXP", "TOKEN_REGEXP", "QESC_REGEXP", "QUOTE_REGEXP", "TYPE_REGEXP", "format", "parse", "obj", "parameters", "type", "string", "param", "params", "i", "qstring", "header", "getcontenttype", "index", "ContentType", "key", "match", "value", "val", "str", "require_lib", "__commonJSMin", "exports", "module", "conversions", "sign", "x", "evenRound", "createNumberConversion", "bitLength", "typeOpts", "lowerBound", "upperBound", "moduloVal", "moduloBound", "V", "opts", "val", "c", "i", "S", "n", "U", "d", "a", "b", "require_utils", "__commonJSMin", "exports", "module", "target", "source", "keys", "i", "impl", "wrapper", "require_mappingTable", "__commonJSMin", "exports", "module", "require_tr46", "__commonJSMin", "exports", "module", "punycode", "mappingTable", "PROCESSING_OPTIONS", "normalize", "str", "s", "findStatus", "val", "start", "end", "mid", "target", "regexAstralSymbols", "countSymbols", "string", "mapChars", "domain_name", "useSTD3", "processing_option", "hasError", "processed", "len", "i", "codePoint", "status", "combiningMarksRegex", "validateLabel", "label", "error", "processing", "result", "labels", "validation", "verifyDnsLength", "l", "total", "require_url_state_machine", "__commonJSMin", "exports", "module", "punycode", "tr46", "specialSchemes", "failure", "countSymbols", "str", "at", "input", "idx", "c", "isASCIIDigit", "isASCIIAlpha", "isASCIIAlphanumeric", "isASCIIHex", "isSingleDot", "buffer", "isDoubleDot", "isWindowsDriveLetterCodePoints", "cp1", "cp2", "isWindowsDriveLetterString", "string", "isNormalizedWindowsDriveLetterString", "containsForbiddenHostCodePoint", "containsForbiddenHostCodePointExcludingPercent", "isSpecialScheme", "scheme", "isSpecial", "url", "defaultPort", "percentEncode", "hex", "utf8PercentEncode", "buf", "i", "utf8PercentDecode", "output", "isC0ControlPercentEncode", "extraPathPercentEncodeSet", "isPathPercentEncode", "extraUserinfoPercentEncodeSet", "isUserinfoPercentEncode", "percentEncodeChar", "encodeSetPredicate", "cStr", "parseIPv4Number", "R", "parseIPv4", "parts", "numbers", "part", "n", "ipv4", "counter", "serializeIPv4", "address", "parseIPv6", "pieceIndex", "compress", "pointer", "value", "length", "numbersSeen", "ipv4Piece", "number", "swaps", "temp", "serializeIPv6", "findLongestZeroSequence", "ignore0", "parseHost", "isSpecialArg", "parseOpaqueHost", "domain", "asciiDomain", "ipv4Host", "decoded", "arr", "maxIdx", "maxLen", "currStart", "currLen", "serializeHost", "host", "trimControlChars", "trimTabAndNewline", "shortenPath", "path", "isNormalizedWindowsDriveLetter", "includesCredentials", "cannotHaveAUsernamePasswordPort", "URLStateMachine", "base", "encodingOverride", "stateOverride", "res", "ret", "len", "codePoint", "encodedCodePoints", "port", "fileOtherwiseCodePoints", "serializeURL", "excludeFragment", "serializeOrigin", "tuple", "result", "options", "usm", "username", "password", "integer", "require_URL_impl", "__commonJSMin", "exports", "usm", "constructorArgs", "url", "base", "parsedBase", "parsedURL", "v", "input", "require_URL", "__commonJSMin", "exports", "module", "conversions", "utils", "Impl", "impl", "URL", "url", "args", "i", "V", "obj", "constructorArgs", "privateData", "require_public_api", "__commonJSMin", "exports", "require_lib", "__commonJSMin", "exports", "module", "_interopDefault", "ex", "Stream", "http", "Url", "whatwgUrl", "https", "zlib", "Readable", "BUFFER", "TYPE", "Blob", "_Blob", "blobParts", "options", "buffers", "size", "a", "length", "i", "element", "buffer", "type", "buf", "ab", "readable", "start", "end", "relativeStart", "relativeEnd", "span", "slicedBuffer", "blob", "FetchError", "message", "systemError", "convert", "INTERNALS", "PassThrough", "Body", "body", "_this", "_ref", "_ref$size", "_ref$timeout", "timeout", "isURLSearchParams", "isBlob", "err", "error", "consumeBody", "ct", "_this2", "_this3", "convertBody", "proto", "name", "desc", "_this4", "accum", "accumBytes", "abort", "resolve", "reject", "resTimeout", "chunk", "headers", "charset", "res", "str", "obj", "clone", "instance", "p1", "p2", "extractContentType", "getTotalBytes", "writeToStream", "dest", "invalidTokenRegex", "invalidHeaderCharRegex", "validateName", "validateValue", "value", "find", "map", "key", "MAP", "Headers", "_Headers", "init", "rawHeaders", "headerNames", "headerName", "method", "pairs", "pair", "callback", "thisArg", "getHeaders", "_pairs$i", "createHeadersIterator", "kind", "k", "INTERNAL", "target", "iterator", "HeadersIteratorPrototype", "_INTERNAL", "index", "values", "len", "exportNodeCompatibleHeaders", "hostHeaderKey", "createHeadersLenient", "val", "INTERNALS$1", "STATUS_CODES", "Response", "_Response", "opts", "status", "contentType", "INTERNALS$2", "URL", "parse_url", "format_url", "parseURL", "urlStr", "streamDestructionSupported", "isRequest", "input", "isAbortSignal", "signal", "Request", "_Request", "parsedURL", "inputBody", "getNodeRequestOptions", "request", "contentLengthValue", "totalBytes", "agent", "AbortError", "URL$1", "PassThrough$1", "isDomainOrSubdomain", "destination", "original", "orig", "isSameProtocol", "fetch", "url", "send", "response", "destroyStream", "abortAndFinalize", "finalize", "req", "reqTimeout", "socket", "fixResponseChunkedTransferBadEnding", "s", "hadError", "hasDataListener", "location", "locationURL", "requestOpts", "response_options", "codings", "zlibOptions", "raw", "errorCallback", "stream", "code", "require_node_ponyfill", "__commonJSMin", "exports", "module", "nodeFetch", "realFetch", "fetch", "url", "options", "require_useFetch", "__commonJSMin", "exports", "__importDefault", "mod", "react_1", "media_typer_1", "content_type_1", "useCachedPromise_1", "useLatest_1", "cross_fetch_1", "isJSON", "contentTypeHeader", "ct", "mediaType", "defaultParsing", "response", "useFetch", "url", "options", "parseResponse", "initialData", "execute", "keepPreviousData", "onError", "onData", "onWillExecute", "fetchOptions", "useCachedPromiseOptions", "parseResponseRef", "abortable", "fn", "res", "exports", "signals_js_1", "exports", "processOk", "process", "kExitEmitter", "global", "ObjectDefineProperty", "Emitter", "ev", "fn", "list", "i", "code", "signal", "ret", "SignalExitBase", "signalExitWrap", "handler", "cb", "opts", "SignalExitFallback", "SignalExit", "#hupSig", "#emitter", "#process", "#originalProcessEmit", "#originalProcessReallyExit", "#sigListeners", "#loaded", "sig", "listeners", "count", "p", "s", "a", "#processEmit", "#processReallyExit", "listener", "args", "og", "_a", "require_exec_utils", "__commonJSMin", "exports", "__importDefault", "mod", "node_buffer_1", "node_stream_1", "node_util_1", "signal_exit_1", "getSpawnedPromise", "spawned", "timeout", "spawnedPromise", "resolve", "reject", "exitCode", "signal", "error", "timeoutId", "timeoutPromise", "_resolve", "safeSpawnedPromise", "removeExitHandler", "MaxBufferError", "streamPipelinePromisified", "bufferStream", "options", "encoding", "isBuffer", "stream", "length", "chunks", "chunk", "getStream", "inputStream", "rejectPromise", "getBufferedData", "streamPromise", "getSpawnedResult", "stdout", "stderr", "processDone", "stdoutPromise", "stderrPromise", "stripFinalNewline", "input", "LF", "CR", "handleOutput", "value", "getErrorPrefix", "timedOut", "makeError", "command", "parentError", "execaMessage", "shortMessage", "message", "defaultParsing", "require_useExec", "__commonJSMin", "exports", "__importDefault", "mod", "node_child_process_1", "react_1", "useCachedPromise_1", "useLatest_1", "exec_utils_1", "SPACES_REGEXP", "parseCommand", "command", "args", "tokens", "token", "previousToken", "useExec", "optionsOrArgs", "options", "parseOutput", "input", "onData", "onWillExecute", "initialData", "execute", "keepPreviousData", "onError", "execOptions", "useCachedPromiseOptions", "abortable", "parseOutputRef", "fn", "_command", "_args", "_options", "file", "spawned", "spawnedPromise", "error", "exitCode", "signal", "timedOut", "stdoutResult", "stderrResult", "stdout", "stderr", "require_useSQL", "__commonJSMin", "exports", "__importDefault", "mod", "jsx_runtime_1", "api_1", "node_fs_1", "promises_1", "node_os_1", "node_child_process_1", "node_path_1", "object_hash_1", "react_1", "usePromise_1", "useLatest_1", "exec_utils_1", "handle_error_toast_action_1", "useSQL", "databasePath", "query", "options", "permissionPriming", "usePromiseOptions", "permissionView", "setPermissionView", "latestOptions", "abortable", "handleError", "_error", "error", "PermissionError", "isPermissionError", "PermissionErrorScreen", "fn", "workaroundCopiedDb", "abortSignal", "spawned", "spawnedPromise", "exitCode", "signal", "stdoutResult", "stderrResult", "checkAborted", "tempFolder", "message", "macosVenturaAndLater", "preferencesString", "props", "action", "require_useForm", "__commonJSMin", "exports", "react_1", "useLatest_1", "FormValidation", "validationError", "validation", "value", "valueIsValid", "useForm", "props", "_onSubmit", "initialValues", "values", "setValues", "errors", "setErrors", "refs", "latestValidation", "latestOnSubmit", "focus", "id", "handleSubmit", "validationErrors", "error", "result", "setValidationError", "setValue", "itemProps", "target", "event", "instance", "reset", "require_useAI", "__commonJSMin", "exports", "react_1", "api_1", "usePromise_1", "useAI", "prompt", "options", "creativity", "stream", "model", "usePromiseOptions", "data", "setData", "abortable", "isLoading", "error", "revalidate", "shouldStream", "x", "require_useFrecencySorting", "__commonJSMin", "exports", "react_1", "useLatest_1", "useCachedState_1", "HALF_LIFE_DAYS", "MS_PER_DAY", "DECAY_RATE_CONSTANT", "VISIT_TYPE_POINTS", "getNewFrecency", "item", "now", "lastVisited", "frecency", "visitAgeInDays", "currentVisitValue", "totalVisitValue", "defaultKey", "useFrecencySorting", "data", "options", "keyRef", "sortUnvisitedRef", "storedFrecencies", "setStoredFrecencies", "visitItem", "itemKey", "newFrecency", "resetRanking", "newFrencencies", "a", "b", "frecencyA", "frecencyB", "require_color", "__commonJSMin", "exports", "hexToRGB", "hex", "r", "g", "b", "rgbToHex", "rString", "gString", "bString", "rgbToHSL", "cmin", "cmax", "delta", "h", "s", "l", "hslToRGB", "c", "x", "m", "hexToHSL", "hslToHex", "hsl", "clamp", "value", "min", "max", "offset", "slightlyDarkerColor", "slightlyLighterColor", "require_avatar", "__commonJSMin", "exports", "color_1", "getWholeCharAndI", "str", "i", "code", "next", "prev", "avatarColorSet", "getAvatarIcon", "name", "options", "words", "initials", "firstWordFirstLetter", "lastWordFirstLetter", "backgroundColor", "initialsCharIndex", "char", "colorIndex", "radius", "require_favicon", "__commonJSMin", "exports", "api_1", "url_1", "getFavicon", "url", "options", "hostname", "e", "require_progress", "__commonJSMin", "exports", "api_1", "polarToCartesian", "centerX", "centerY", "radius", "angleInDegrees", "angleInRadians", "describeArc", "x", "y", "startAngle", "endAngle", "start", "end", "largeArcFlag", "getProgressIcon", "progress", "color", "options", "background", "backgroundOpacity", "stroke", "require_icon", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "require_run_applescript", "__commonJSMin", "exports", "__importDefault", "mod", "node_child_process_1", "exec_utils_1", "runAppleScript", "script", "optionsOrArgs", "options", "humanReadableOutput", "language", "timeout", "execOptions", "outputArguments", "spawned", "spawnedPromise", "error", "exitCode", "signal", "timedOut", "stdoutResult", "stderrResult", "stdout", "stderr", "require_dist", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "require_symbols", "__commonJSMin", "exports", "module", "require_errors", "__commonJSMin", "exports", "module", "UndiciError", "message", "ConnectTimeoutError", "_ConnectTimeoutError", "HeadersTimeoutError", "_HeadersTimeoutError", "HeadersOverflowError", "_HeadersOverflowError", "BodyTimeoutError", "_BodyTimeoutError", "ResponseStatusCodeError", "_ResponseStatusCodeError", "statusCode", "headers", "body", "InvalidArgumentError", "_InvalidArgumentError", "InvalidReturnValueError", "_InvalidReturnValueError", "RequestAbortedError", "_RequestAbortedError", "InformationalError", "_InformationalError", "RequestContentLengthMismatchError", "_RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "_ResponseContentLengthMismatchError", "ClientDestroyedError", "_ClientDestroyedError", "ClientClosedError", "_ClientClosedError", "SocketError", "_SocketError", "socket", "NotSupportedError", "_NotSupportedError", "BalancedPoolMissingUpstreamError", "HTTPParserError", "_HTTPParserError", "code", "data", "ResponseExceededMaxSizeError", "_ResponseExceededMaxSizeError", "require_util", "__commonJSMin", "exports", "module", "assert", "kDestroyed", "kBodyUsed", "IncomingMessage", "stream", "net", "InvalidArgumentError", "Blob", "nodeUtil", "stringify", "nodeMajor", "nodeMinor", "v", "nop", "isStream", "obj", "isBlobLike", "object", "buildURL", "url", "queryParams", "stringified", "parseURL", "port", "origin", "path", "parseOrigin", "getHostname", "host", "idx", "getServerName", "servername", "deepClone", "isAsyncIterable", "isIterable", "bodyLength", "body", "state", "isBuffer", "isDestroyed", "isReadableAborted", "destroy", "err", "KEEPALIVE_TIMEOUT_EXPR", "parseKeepAliveTimeout", "val", "m", "parseHeaders", "headers", "i", "key", "parseRawHeaders", "ret", "hasContentLength", "contentDispositionIdx", "n", "buffer", "validateHandler", "handler", "method", "upgrade", "isDisturbed", "isErrored", "isReadable", "getSocketInfo", "socket", "ReadableStream", "ReadableStreamFrom", "iterable", "iterator", "controller", "done", "value", "buf", "reason", "isFormDataLike", "throwIfAborted", "signal", "events", "addAbortListener", "listener", "hasToWellFormed", "toUSVString", "kEnumerableProperty", "require_timers", "__commonJSMin", "exports", "module", "fastNow", "fastNowTimeout", "fastTimers", "onTimeout", "len", "idx", "timer", "refreshTimeout", "Timeout", "callback", "delay", "opaque", "timeout", "require_utils", "__commonJSMin", "exports", "module", "parseContentType", "str", "params", "i", "code", "TOKEN", "type", "subtypeStart", "parseContentTypeParams", "subtype", "name", "nameStart", "value", "valueStart", "escaping", "QDTEXT", "parseDisposition", "defDecoder", "parseDispositionParams", "charset", "charsetStart", "CHARSET", "encode", "EXTENDED_VALUE", "hexUpper", "hexLower", "HEX_VALUES", "byteVal", "convertToUTF8", "getDecoder", "lc", "decoders", "data", "hint", "decode", "basename", "path", "require_sbmh", "__commonJSMin", "exports", "module", "memcmp", "buf1", "pos1", "buf2", "pos2", "num", "SBMH", "needle", "cb", "needleLen", "i", "chunk", "pos", "result", "chunkLen", "feed", "lbSize", "self", "data", "len", "lastNeedleCharPos", "lastNeedleChar", "end", "occ", "lookbehind", "nextPos", "ch", "matchNeedle", "bytesToCutOff", "firstNeedleChar", "lb", "require_multipart", "__commonJSMin", "exports", "module", "Readable", "Writable", "StreamSearch", "basename", "convertToUTF8", "getDecoder", "parseContentType", "parseDisposition", "BUF_CRLF", "BUF_CR", "BUF_DASH", "noop", "MAX_HEADER_PAIRS", "MAX_HEADER_SIZE", "HPARSER_NAME", "HPARSER_PRE_OWS", "HPARSER_VALUE", "HeaderParser", "cb", "chunk", "pos", "end", "start", "done", "code", "TOKEN", "FIELD_VCHAR", "header", "FileStream", "opts", "owner", "n", "ignoreData", "callAndUnsetCb", "self", "err", "nullDecoder", "val", "hint", "Multipart", "cfg", "streamOpts", "boundary", "paramDecoder", "defCharset", "preservePath", "fileOpts", "limits", "fieldSizeLimit", "fileSizeLimit", "filesLimit", "fieldsLimit", "partsLimit", "parts", "fields", "files", "skipPart", "fileSize", "field", "fieldSize", "partCharset", "partEncoding", "partType", "partName", "partTruncated", "hitFilesLimit", "hitFieldsLimit", "hparser", "filename", "disp", "conType", "matchPostBoundary", "ssCb", "isMatch", "data", "isDataSafe", "retrydata", "ret", "writecb", "actualLen", "enc", "checkEndState", "fileStream", "finalcb", "require_urlencoded", "__commonJSMin", "exports", "module", "Writable", "getDecoder", "URLEncoded", "cfg", "streamOpts", "charset", "limits", "conType", "chunk", "enc", "cb", "i", "len", "readPctEnc", "main", "skipKeyBytes", "skipValBytes", "self", "pos", "hexUpper", "HEX_VALUES", "hexLower", "code", "require_lib", "__commonJSMin", "exports", "module", "parseContentType", "getInstance", "cfg", "headers", "conType", "type", "TYPES", "instanceCfg", "typemod", "require_constants", "__commonJSMin", "exports", "module", "MessageChannel", "receiveMessageOnPort", "corsSafeListedMethods", "nullBodyStatus", "redirectStatus", "badPorts", "referrerPolicy", "requestRedirect", "safeMethods", "requestMode", "requestCredentials", "requestCache", "requestBodyHeader", "requestDuplex", "forbiddenMethods", "subresource", "DOMException", "err", "channel", "structuredClone", "value", "options", "require_global", "__commonJSMin", "exports", "module", "globalOrigin", "getGlobalOrigin", "setGlobalOrigin", "newOrigin", "parsedURL", "require_util", "__commonJSMin", "exports", "module", "redirectStatus", "badPorts", "referrerPolicyTokens", "getGlobalOrigin", "performance", "isBlobLike", "toUSVString", "ReadableStreamFrom", "assert", "isUint8Array", "crypto", "responseURL", "response", "urlList", "length", "responseLocationURL", "requestFragment", "location", "isValidHeaderValue", "requestCurrentURL", "request", "requestBadPort", "url", "urlIsHttpHttpsScheme", "isErrorLike", "object", "isValidReasonPhrase", "statusText", "i", "c", "isTokenChar", "isValidHTTPToken", "characters", "isValidHeaderName", "potentialValue", "setRequestReferrerPolicyOnRedirect", "actualResponse", "headersList", "policyHeader", "policy", "token", "crossOriginResourcePolicyCheck", "corsCheck", "TAOCheck", "appendFetchMetadata", "httpRequest", "header", "appendRequestOriginHeader", "serializedOrigin", "urlHasHttpsScheme", "sameOrigin", "coarsenedSharedCurrentTime", "crossOriginIsolatedCapability", "createOpaqueTimingInfo", "timingInfo", "makePolicyContainer", "clonePolicyContainer", "policyContainer", "determineRequestsReferrer", "referrerSource", "globalOrigin", "referrerURL", "stripURLForReferrer", "referrerOrigin", "areSameOrigin", "isNonPotentiallyTrustWorthy", "isURLPotentiallyTrustworthy", "currentURL", "originOnly", "isOriginPotentiallyTrustworthy", "origin", "originAsURL", "bytesMatch", "bytes", "metadataList", "parsedMetadata", "parseMetadata", "list", "d", "strongest", "metadata", "item", "algorithm", "expectedValue", "parseHashWithOptions", "result", "empty", "supportedHashes", "parsedToken", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "A", "B", "createDeferredPromise", "res", "rej", "resolve", "reject", "isAborted", "fetchParams", "isCancelled", "normalizeMethod", "method", "serializeJavascriptValueToJSONString", "value", "esIteratorPrototype", "makeIterator", "iterator", "name", "kind", "index", "target", "values", "len", "pair", "iteratorResult", "fullyReadBody", "body", "processBody", "processBodyError", "successSteps", "errorSteps", "error", "reader", "e", "readAllBytes", "ReadableStream", "isReadableStreamLike", "stream", "MAXIMUM_ARGUMENT_LENGTH", "isomorphicDecode", "input", "previous", "current", "readableStreamClose", "controller", "err", "isomorphicEncode", "failureSteps", "byteLength", "done", "chunk", "urlIsLocal", "protocol", "hasOwn", "dict", "key", "require_symbols", "__commonJSMin", "exports", "module", "require_webidl", "__commonJSMin", "exports", "module", "types", "hasOwn", "toUSVString", "webidl", "message", "context", "plural", "V", "I", "opts", "length", "min", "ctx", "bitLength", "signedness", "upperBound", "lowerBound", "x", "n", "r", "converter", "method", "seq", "done", "value", "keyConverter", "valueConverter", "O", "result", "keys", "key", "typedKey", "typedValue", "i", "converters", "dictionary", "type", "dict", "options", "defaultValue", "required", "hasDefault", "index", "charCode", "T", "require_dataURL", "__commonJSMin", "exports", "module", "assert", "atob", "isomorphicDecode", "encoder", "HTTP_TOKEN_CODEPOINTS", "HTTP_WHITESPACE_REGEX", "HTTP_QUOTED_STRING_TOKENS", "dataURLProcessor", "dataURL", "input", "URLSerializer", "position", "mimeType", "collectASequenceOfCodePointsFast", "mimeTypeLength", "removeASCIIWhitespace", "encodedBody", "body", "stringPercentDecode", "stringBody", "forgivingBase64", "mimeTypeRecord", "parseMIMEType", "url", "excludeFragment", "href", "hash", "collectASequenceOfCodePoints", "condition", "result", "char", "idx", "start", "bytes", "percentDecode", "output", "i", "byte", "nextTwoBytes", "bytePoint", "removeHTTPWhitespace", "type", "subtype", "typeLowercase", "subtypeLowercase", "parameterName", "parameterValue", "collectAnHTTPQuotedString", "data", "binary", "extractValue", "positionStart", "value", "quoteOrBackslash", "serializeAMimeType", "parameters", "essence", "serialization", "name", "isHTTPWhiteSpace", "str", "leading", "trailing", "lead", "trail", "isASCIIWhitespace", "require_file", "__commonJSMin", "exports", "module", "Blob", "NativeFile", "types", "kState", "isBlobLike", "webidl", "parseMIMEType", "serializeAMimeType", "kEnumerableProperty", "File", "_File", "fileBits", "fileName", "options", "n", "t", "d", "substep", "processBlobParts", "FileLike", "_FileLike", "blobLike", "args", "V", "opts", "value", "parts", "bytes", "element", "s", "convertLineEndingsNative", "nativeLineEnding", "isFileLike", "object", "require_formdata", "__commonJSMin", "exports", "module", "isBlobLike", "toUSVString", "makeIterator", "kState", "UndiciFile", "FileLike", "isFileLike", "webidl", "Blob", "NativeFile", "File", "FormData", "_FormData", "form", "name", "value", "filename", "entry", "makeEntry", "idx", "pair", "callbackFn", "thisArg", "key", "options", "require_body", "__commonJSMin", "exports", "module", "Busboy", "util", "ReadableStreamFrom", "isBlobLike", "isReadableStreamLike", "readableStreamClose", "createDeferredPromise", "fullyReadBody", "FormData", "kState", "webidl", "DOMException", "structuredClone", "Blob", "NativeFile", "kBodyUsed", "assert", "isErrored", "isUint8Array", "isArrayBuffer", "UndiciFile", "parseMIMEType", "serializeAMimeType", "ReadableStream", "File", "extractBody", "object", "keepalive", "stream", "controller", "source", "action", "length", "type", "boundary", "prefix", "escape", "str", "normalizeLinefeeds", "value", "enc", "blobParts", "rn", "hasUnknownSizeValue", "name", "chunk", "part", "iterator", "done", "reason", "safelyExtractBody", "cloneBody", "body", "out1", "out2", "out2Clone", "finalClone", "consumeBody", "throwIfAborted", "state", "bodyMixinMethods", "instance", "specConsumeBody", "bytes", "mimeType", "bodyMimeType", "utf8DecodeBytes", "parseJSONFromBytes", "contentType", "headers", "key", "responseFormData", "busboy", "err", "info", "filename", "encoding", "chunks", "base64chunk", "end", "busboyResolve", "resolve", "reject", "entries", "text", "textDecoder", "formData", "mixinBody", "prototype", "convertBytesToJSValue", "bodyUnusable", "promise", "errorSteps", "error", "successSteps", "data", "e", "buffer", "headersList", "require_request", "__commonJSMin", "exports", "module", "InvalidArgumentError", "NotSupportedError", "assert", "util", "tokenRegExp", "headerCharRegex", "invalidPathRegex", "kHandler", "channels", "extractBody", "diagnosticsChannel", "Request", "origin", "path", "method", "body", "headers", "query", "idempotent", "blocking", "upgrade", "headersTimeout", "bodyTimeout", "reset", "throwOnError", "handler", "i", "processHeader", "keys", "key", "bodyStream", "contentType", "chunk", "err", "abort", "statusCode", "resume", "statusText", "socket", "trailers", "error", "value", "processHeaderValue", "val", "request", "require_dispatcher", "__commonJSMin", "exports", "module", "EventEmitter", "Dispatcher", "require_dispatcher_base", "__commonJSMin", "exports", "module", "Dispatcher", "ClientDestroyedError", "ClientClosedError", "InvalidArgumentError", "kDestroy", "kClose", "kDispatch", "kInterceptors", "kDestroyed", "kClosed", "kOnDestroyed", "kOnClosed", "kInterceptedDispatch", "DispatcherBase", "newInterceptors", "i", "callback", "resolve", "reject", "err", "data", "onClosed", "callbacks", "onDestroyed", "opts", "handler", "dispatch", "require_connect", "__commonJSMin", "exports", "module", "net", "assert", "util", "InvalidArgumentError", "ConnectTimeoutError", "tls", "SessionCache", "maxCachedSessions", "key", "ref", "sessionKey", "session", "oldestKey", "buildConnector", "socketPath", "timeout", "opts", "options", "sessionCache", "hostname", "host", "protocol", "port", "servername", "localAddress", "httpSocket", "callback", "socket", "keepAliveInitialDelay", "cancelTimeout", "setupTimeout", "onConnectTimeout", "cb", "err", "s1", "s2", "timeoutId", "enumToMap", "obj", "res", "key", "value", "exports", "utils_1", "ERROR", "exports", "TYPE", "FLAGS", "LENIENT_FLAGS", "METHODS", "key", "FINISH", "i", "c", "HEADER_STATE", "require_RedirectHandler", "__commonJSMin", "exports", "module", "util", "kBodyUsed", "assert", "InvalidArgumentError", "EE", "redirectableStatusCodes", "kBody", "BodyAsyncIterable", "body", "RedirectHandler", "dispatch", "maxRedirections", "opts", "handler", "abort", "statusCode", "headers", "socket", "error", "resume", "statusText", "parseLocation", "origin", "pathname", "search", "path", "cleanRequestHeaders", "chunk", "trailers", "i", "shouldRemoveHeader", "header", "removeContent", "unknownOrigin", "ret", "key", "require_redirectInterceptor", "__commonJSMin", "exports", "module", "RedirectHandler", "createRedirectInterceptor", "defaultMaxRedirections", "dispatch", "opts", "handler", "maxRedirections", "redirectHandler", "require_llhttp_wasm", "__commonJSMin", "exports", "module", "require_llhttp_simd_wasm", "__commonJSMin", "exports", "module", "require_client", "__commonJSMin", "exports", "module", "assert", "net", "util", "timers", "Request", "DispatcherBase", "RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "InvalidArgumentError", "RequestAbortedError", "HeadersTimeoutError", "HeadersOverflowError", "SocketError", "InformationalError", "BodyTimeoutError", "HTTPParserError", "ResponseExceededMaxSizeError", "ClientDestroyedError", "buildConnector", "kUrl", "kReset", "kServerName", "kClient", "kBusy", "kParser", "kConnect", "kBlocking", "kResuming", "kRunning", "kPending", "kSize", "kWriting", "kQueue", "kConnected", "kConnecting", "kNeedDrain", "kNoRef", "kKeepAliveDefaultTimeout", "kHostHeader", "kPendingIdx", "kRunningIdx", "kError", "kPipelining", "kSocket", "kKeepAliveTimeoutValue", "kMaxHeadersSize", "kKeepAliveMaxTimeout", "kKeepAliveTimeoutThreshold", "kHeadersTimeout", "kBodyTimeout", "kStrictContentLength", "kConnector", "kMaxRedirections", "kMaxRequests", "kCounter", "kClose", "kDestroy", "kDispatch", "kInterceptors", "kLocalAddress", "kMaxResponseSize", "FastBuffer", "kClosedResolve", "channels", "diagnosticsChannel", "Client", "url", "interceptors", "maxHeaderSize", "headersTimeout", "socketTimeout", "requestTimeout", "connectTimeout", "bodyTimeout", "idleTimeout", "keepAlive", "keepAliveTimeout", "maxKeepAliveTimeout", "keepAliveMaxTimeout", "keepAliveTimeoutThreshold", "socketPath", "pipelining", "tls", "strictContentLength", "maxCachedSessions", "maxRedirections", "connect", "maxRequestsPerClient", "localAddress", "maxResponseSize", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "createRedirectInterceptor", "value", "resume", "socket", "cb", "opts", "handler", "origin", "request", "resolve", "err", "requests", "errorRequest", "callback", "constants", "EMPTY_BUF", "lazyllhttp", "llhttpWasmData", "mod", "p", "at", "len", "currentParser", "start", "currentBufferPtr", "currentBufferRef", "statusCode", "upgrade", "shouldKeepAlive", "llhttpInstance", "llhttpPromise", "currentBufferSize", "TIMEOUT_HEADERS", "TIMEOUT_BODY", "TIMEOUT_IDLE", "Parser", "client", "type", "onParserTimeout", "chunk", "data", "llhttp", "ret", "offset", "ptr", "message", "buf", "key", "head", "headers", "onSocketError", "onSocketReadable", "onSocketEnd", "onSocketClose", "statusText", "timeout", "pause", "contentLength", "bytesRead", "parser", "timeoutType", "onError", "i", "host", "hostname", "protocol", "port", "idx", "ip", "reject", "emitDrain", "sync", "_resume", "write", "body", "method", "path", "blocking", "reset", "expectsPayload", "header", "writeIterable", "writeBlob", "writeStream", "finished", "writer", "AsyncWriter", "onData", "onDrain", "onAbort", "onFinished", "er", "buffer", "waitForDrain", "bytesWritten", "require_fixed_queue", "__commonJSMin", "exports", "module", "FixedCircularBuffer", "data", "nextItem", "tail", "next", "require_pool_stats", "__commonJSMin", "exports", "module", "kFree", "kConnected", "kPending", "kQueued", "kRunning", "kSize", "kPool", "PoolStats", "pool", "require_pool_base", "__commonJSMin", "exports", "module", "DispatcherBase", "FixedQueue", "kConnected", "kSize", "kRunning", "kPending", "kQueued", "kBusy", "kFree", "kUrl", "kClose", "kDestroy", "kDispatch", "PoolStats", "kClients", "kNeedDrain", "kQueue", "kClosedResolve", "kOnDrain", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kGetDispatcher", "kAddClient", "kRemoveClient", "kStats", "PoolBase", "pool", "origin", "targets", "queue", "needDrain", "item", "c", "err", "client", "ret", "pending", "running", "size", "resolve", "opts", "handler", "dispatcher", "idx", "require_pool", "__commonJSMin", "exports", "module", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kGetDispatcher", "Client", "InvalidArgumentError", "util", "kUrl", "kInterceptors", "buildConnector", "kOptions", "kConnections", "kFactory", "defaultFactory", "origin", "opts", "Pool", "connections", "factory", "connect", "connectTimeout", "tls", "maxCachedSessions", "socketPath", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "options", "dispatcher", "require_balanced_pool", "__commonJSMin", "exports", "module", "BalancedPoolMissingUpstreamError", "InvalidArgumentError", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kRemoveClient", "kGetDispatcher", "Pool", "kUrl", "kInterceptors", "parseOrigin", "kFactory", "kOptions", "kGreatestCommonDivisor", "kCurrentWeight", "kIndex", "kWeight", "kMaxWeightPerServer", "kErrorPenalty", "getGreatestCommonDivisor", "a", "b", "defaultFactory", "origin", "opts", "BalancedPool", "upstreams", "factory", "upstream", "upstreamOrigin", "pool", "args", "err", "client", "p", "dispatcher", "counter", "maxWeightIndex", "require_dispatcher_weakref", "__commonJSMin", "exports", "module", "kConnected", "kSize", "CompatWeakRef", "value", "CompatFinalizer", "finalizer", "dispatcher", "key", "require_agent", "__commonJSMin", "exports", "module", "InvalidArgumentError", "kClients", "kRunning", "kClose", "kDestroy", "kDispatch", "kInterceptors", "DispatcherBase", "Pool", "Client", "util", "createRedirectInterceptor", "WeakRef", "FinalizationRegistry", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kMaxRedirections", "kOnDrain", "kFactory", "kFinalizer", "kOptions", "defaultFactory", "origin", "opts", "Agent", "factory", "maxRedirections", "connect", "options", "key", "ref", "agent", "targets", "err", "ret", "client", "handler", "dispatcher", "closePromises", "destroyPromises", "require_readable", "__commonJSMin", "exports", "module", "assert", "Readable", "RequestAbortedError", "NotSupportedError", "InvalidArgumentError", "util", "ReadableStreamFrom", "toUSVString", "Blob", "kConsume", "kReading", "kBody", "kAbort", "kContentType", "resume", "abort", "contentType", "highWaterMark", "err", "ev", "args", "ret", "chunk", "consumePush", "consume", "opts", "limit", "signal", "abortFn", "signalListenerCleanup", "isLocked", "self", "isUnusable", "stream", "type", "resolve", "reject", "consumeFinish", "consumeStart", "state", "consumeEnd", "body", "length", "dst", "pos", "buf", "require_util", "__commonJSMin", "exports", "module", "assert", "ResponseStatusCodeError", "toUSVString", "getResolveErrorBodyCallback", "callback", "body", "contentType", "statusCode", "statusMessage", "headers", "chunks", "limit", "chunk", "payload", "require_abort_signal", "__commonJSMin", "exports", "module", "addAbortListener", "RequestAbortedError", "kListener", "kSignal", "abort", "self", "addSignal", "signal", "removeSignal", "require_api_request", "__commonJSMin", "exports", "module", "Readable", "InvalidArgumentError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "RequestHandler", "opts", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "highWaterMark", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "contentType", "chunk", "res", "trailers", "request", "resolve", "reject", "data", "require_api_stream", "__commonJSMin", "exports", "module", "finished", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "StreamHandler", "opts", "factory", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "res", "contentType", "trailers", "chunk", "stream", "resolve", "reject", "data", "require_api_pipeline", "__commonJSMin", "exports", "module", "Readable", "Duplex", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "AsyncResource", "addSignal", "removeSignal", "assert", "kResume", "PipelineRequest", "resume", "err", "callback", "PipelineResponse", "PipelineHandler", "opts", "handler", "signal", "method", "opaque", "onInfo", "responseHeaders", "body", "chunk", "encoding", "req", "res", "ret", "abort", "context", "statusCode", "rawHeaders", "headers", "trailers", "pipeline", "pipelineHandler", "require_api_upgrade", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "assert", "UpgradeHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "upgrade", "resolve", "reject", "data", "upgradeHandler", "require_api_connect", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "ConnectHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "connect", "resolve", "reject", "data", "connectHandler", "require_api", "__commonJSMin", "exports", "module", "require_mock_errors", "__commonJSMin", "exports", "module", "UndiciError", "MockNotMatchedError", "_MockNotMatchedError", "message", "require_mock_symbols", "__commonJSMin", "exports", "module", "require_mock_utils", "__commonJSMin", "exports", "module", "MockNotMatchedError", "kDispatches", "kMockAgent", "kOriginalDispatch", "kOrigin", "kGetNetConnect", "buildURL", "nop", "STATUS_CODES", "isPromise", "matchValue", "match", "value", "lowerCaseEntries", "headers", "headerName", "headerValue", "getHeaderByName", "key", "i", "buildHeadersFromArray", "clone", "entries", "index", "matchHeaders", "mockDispatch", "matchHeaderName", "matchHeaderValue", "safeUrl", "path", "pathSegments", "qp", "matchKey", "method", "body", "pathMatch", "methodMatch", "bodyMatch", "headersMatch", "getResponseData", "data", "getMockDispatch", "mockDispatches", "basePath", "resolvedPath", "matchedMockDispatches", "consumed", "addMockDispatch", "baseData", "replyData", "newMockDispatch", "deleteMockDispatch", "dispatch", "buildKey", "opts", "query", "generateKeyValues", "keyValuePairs", "x", "getStatusText", "statusCode", "getResponse", "buffers", "handler", "trailers", "error", "delay", "persist", "timesInvoked", "times", "handleReply", "_data", "optsHeaders", "newData", "responseData", "responseHeaders", "responseTrailers", "resume", "buildMockDispatch", "agent", "origin", "originalDispatch", "netConnect", "checkNetConnect", "url", "matcher", "buildMockOptions", "mockOptions", "require_mock_interceptor", "__commonJSMin", "exports", "module", "getResponseData", "buildKey", "addMockDispatch", "kDispatches", "kDispatchKey", "kDefaultHeaders", "kDefaultTrailers", "kContentLength", "kMockDispatch", "InvalidArgumentError", "buildURL", "MockScope", "mockDispatch", "waitInMs", "repeatTimes", "MockInterceptor", "opts", "mockDispatches", "parsedURL", "statusCode", "data", "responseOptions", "responseData", "contentLength", "headers", "trailers", "replyData", "wrappedDefaultsCallback", "resolvedData", "newMockDispatch", "dispatchData", "error", "require_mock_client", "__commonJSMin", "exports", "module", "promisify", "Client", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockClient", "origin", "opts", "require_mock_pool", "__commonJSMin", "exports", "module", "promisify", "Pool", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockPool", "origin", "opts", "require_pluralizer", "__commonJSMin", "exports", "module", "singulars", "plurals", "singular", "plural", "count", "one", "keys", "noun", "require_pending_interceptors_formatter", "__commonJSMin", "exports", "module", "Transform", "Console", "disableColors", "chunk", "_enc", "cb", "pendingInterceptors", "withPrettyHeaders", "method", "path", "statusCode", "persist", "times", "timesInvoked", "origin", "require_mock_agent", "__commonJSMin", "exports", "module", "kClients", "Agent", "kAgent", "kMockAgentSet", "kMockAgentGet", "kDispatches", "kIsMockActive", "kNetConnect", "kGetNetConnect", "kOptions", "kFactory", "MockClient", "MockPool", "matchValue", "buildMockOptions", "InvalidArgumentError", "UndiciError", "Dispatcher", "Pluralizer", "PendingInterceptorsFormatter", "FakeWeakRef", "value", "MockAgent", "opts", "agent", "origin", "dispatcher", "handler", "matcher", "mockOptions", "ref", "keyMatcher", "nonExplicitRef", "nonExplicitDispatcher", "mockAgentClients", "scope", "dispatch", "pending", "pendingInterceptorsFormatter", "pluralizer", "require_proxy_agent", "__commonJSMin", "exports", "module", "kProxy", "kClose", "kDestroy", "kInterceptors", "URL", "Agent", "Pool", "DispatcherBase", "InvalidArgumentError", "RequestAbortedError", "buildConnector", "kAgent", "kClient", "kProxyHeaders", "kRequestTls", "kProxyTls", "kConnectEndpoint", "defaultProtocolPort", "protocol", "buildProxyOptions", "opts", "defaultFactory", "origin", "ProxyAgent", "clientFactory", "resolvedUrl", "port", "host", "connect", "callback", "requestedHost", "socket", "statusCode", "servername", "err", "handler", "headers", "buildHeaders", "throwIfProxyAuthIsSent", "headersPair", "i", "key", "require_global", "__commonJSMin", "exports", "module", "globalDispatcher", "InvalidArgumentError", "Agent", "getGlobalDispatcher", "setGlobalDispatcher", "agent", "require_DecoratorHandler", "__commonJSMin", "exports", "module", "handler", "args", "require_headers", "__commonJSMin", "exports", "module", "kHeadersList", "kGuard", "kEnumerableProperty", "makeIterator", "isValidHeaderName", "isValidHeaderValue", "webidl", "assert", "kHeadersMap", "kHeadersSortedMap", "headerValueNormalize", "potentialValue", "i", "fill", "headers", "object", "header", "key", "value", "HeadersList", "_HeadersList", "init", "name", "lowercaseName", "exists", "delimiter", "Headers", "_Headers", "list", "names", "a", "b", "cookies", "callbackFn", "thisArg", "V", "require_response", "__commonJSMin", "exports", "module", "Headers", "HeadersList", "fill", "extractBody", "cloneBody", "mixinBody", "util", "kEnumerableProperty", "isValidReasonPhrase", "isCancelled", "isAborted", "isBlobLike", "serializeJavascriptValueToJSONString", "isErrorLike", "isomorphicEncode", "redirectStatus", "nullBodyStatus", "DOMException", "kState", "kHeaders", "kGuard", "kRealm", "webidl", "FormData", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "types", "ReadableStream", "Response", "_Response", "relevantRealm", "responseObject", "makeNetworkError", "data", "init", "bytes", "body", "initializeResponse", "url", "status", "parsedURL", "err", "value", "makeResponse", "bodyWithType", "extractedBody", "type", "urlList", "clonedResponse", "cloneResponse", "clonedResponseObject", "response", "filterResponse", "newResponse", "reason", "isError", "makeFilteredResponse", "state", "target", "p", "makeAppropriateNetworkError", "fetchParams", "V", "require_request", "__commonJSMin", "exports", "module", "extractBody", "mixinBody", "cloneBody", "Headers", "fillHeaders", "HeadersList", "FinalizationRegistry", "util", "isValidHTTPToken", "sameOrigin", "normalizeMethod", "makePolicyContainer", "forbiddenMethods", "corsSafeListedMethods", "referrerPolicy", "requestRedirect", "requestMode", "requestCredentials", "requestCache", "requestDuplex", "kEnumerableProperty", "kHeaders", "kSignal", "kState", "kGuard", "kRealm", "webidl", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "getMaxListeners", "setMaxListeners", "getEventListeners", "defaultMaxListeners", "TransformStream", "kInit", "kAbortController", "requestFinalizer", "signal", "abort", "Request", "_Request", "input", "init", "request", "fallbackMode", "baseUrl", "parsedURL", "err", "makeRequest", "origin", "window", "referrer", "parsedReferrer", "mode", "method", "ac", "acRef", "headers", "key", "val", "inputBody", "initBody", "extractedBody", "contentType", "inputOrInitBody", "finalBody", "identityTransform", "clonedRequest", "cloneRequest", "clonedRequestObject", "newRequest", "V", "require_fetch", "__commonJSMin", "exports", "module", "Response", "makeNetworkError", "makeAppropriateNetworkError", "filterResponse", "makeResponse", "Headers", "Request", "makeRequest", "zlib", "bytesMatch", "makePolicyContainer", "clonePolicyContainer", "requestBadPort", "TAOCheck", "appendRequestOriginHeader", "responseLocationURL", "requestCurrentURL", "setRequestReferrerPolicyOnRedirect", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "createOpaqueTimingInfo", "appendFetchMetadata", "corsCheck", "crossOriginResourcePolicyCheck", "determineRequestsReferrer", "coarsenedSharedCurrentTime", "createDeferredPromise", "isBlobLike", "sameOrigin", "isCancelled", "isAborted", "isErrorLike", "fullyReadBody", "readableStreamClose", "isomorphicEncode", "urlIsLocal", "urlIsHttpHttpsScheme", "urlHasHttpsScheme", "kState", "kHeaders", "kGuard", "kRealm", "assert", "safelyExtractBody", "redirectStatus", "nullBodyStatus", "safeMethods", "requestBodyHeader", "subresource", "DOMException", "kHeadersList", "EE", "Readable", "pipeline", "addAbortListener", "isErrored", "isReadable", "nodeMajor", "nodeMinor", "dataURLProcessor", "serializeAMimeType", "TransformStream", "getGlobalDispatcher", "webidl", "STATUS_CODES", "resolveObjectURL", "ReadableStream", "Fetch", "dispatcher", "reason", "error", "fetch", "input", "init", "p", "requestObject", "e", "request", "abortFetch", "responseObject", "relevantRealm", "locallyAborted", "controller", "fetching", "response", "finalizeAndReportTiming", "initiatorType", "originalURL", "timingInfo", "cacheState", "markResourceTiming", "globalThis", "err", "processRequestBodyChunkLength", "processRequestEndOfBody", "processResponse", "processResponseEndOfBody", "processResponseConsumeBody", "useParallelQueue", "taskDestination", "crossOriginIsolatedCapability", "currenTime", "fetchParams", "mainFetch", "recursive", "currentURL", "schemeFetch", "httpFetch", "internalResponse", "processBodyError", "fetchFinale", "processBody", "bytes", "scheme", "blobURLEntry", "blobURLEntryObject", "bodyWithType", "body", "length", "type", "dataURLStruct", "mimeType", "finalizeResponse", "identityTransformAlgorithm", "chunk", "transformStream", "nullOrBytes", "failure", "actualResponse", "httpNetworkOrCacheFetch", "httpRedirectFetch", "locationURL", "headerName", "isAuthenticationFetch", "isNewConnectionFetch", "httpFetchParams", "httpRequest", "httpCache", "revalidatingFlag", "includeCredentials", "contentLength", "contentLengthHeaderValue", "forwardResponse", "httpNetworkFetch", "forceNewConnection", "newConnection", "requestBody", "processBodyChunk", "processEndOfBody", "status", "statusText", "headersList", "socket", "dispatch", "iterator", "pullAlgorithm", "cancelAlgorithm", "stream", "onAborted", "isFailure", "done", "value", "url", "agent", "resolve", "reject", "abort", "connection", "resume", "codings", "location", "headers", "n", "key", "val", "x", "decoders", "willFollow", "coding", "require_symbols", "__commonJSMin", "exports", "module", "require_progressevent", "__commonJSMin", "exports", "module", "webidl", "kState", "ProgressEvent", "_ProgressEvent", "type", "eventInitDict", "require_encoding", "__commonJSMin", "exports", "module", "getEncoding", "label", "require_util", "__commonJSMin", "exports", "module", "kState", "kError", "kResult", "kAborted", "kLastProgressEventFired", "ProgressEvent", "getEncoding", "DOMException", "serializeAMimeType", "parseMIMEType", "types", "StringDecoder", "btoa", "staticPropertyDescriptors", "readOperation", "fr", "blob", "type", "encodingName", "reader", "bytes", "chunkPromise", "isFirstChunk", "done", "value", "fireAProgressEvent", "result", "packageData", "error", "event", "mimeType", "dataURL", "parsed", "decoder", "chunk", "encoding", "decode", "combineByteSequences", "binaryString", "ioQueue", "BOMEncoding", "BOMSniffing", "slice", "sliced", "a", "b", "c", "sequences", "size", "offset", "require_filereader", "__commonJSMin", "exports", "module", "staticPropertyDescriptors", "readOperation", "fireAProgressEvent", "kState", "kError", "kResult", "kEvents", "kAborted", "webidl", "kEnumerableProperty", "FileReader", "_FileReader", "blob", "encoding", "fn", "require_symbols", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "URLSerializer", "isValidHeaderName", "urlEquals", "A", "B", "excludeFragment", "serializedA", "serializedB", "fieldValues", "header", "values", "value", "require_cache", "__commonJSMin", "exports", "module", "kConstruct", "urlEquals", "getFieldValues", "kEnumerableProperty", "isDisturbed", "kHeadersList", "webidl", "Response", "cloneResponse", "Request", "kState", "kHeaders", "kGuard", "kRealm", "fetching", "urlIsHttpHttpsScheme", "createDeferredPromise", "readAllBytes", "assert", "getGlobalDispatcher", "Cache", "_Cache", "#relevantRequestResponseList", "request", "options", "p", "r", "responses", "requestResponse", "requestResponses", "#queryCache", "responseList", "response", "responseObject", "body", "requests", "responsePromises", "requestList", "fetchControllers", "responsePromise", "fieldValues", "fieldValue", "controller", "operations", "index", "operation", "cacheJobPromise", "errorData", "#batchCacheOperations", "e", "innerRequest", "innerResponse", "clonedResponse", "bodyReadPromise", "reader", "bytes", "error", "promise", "requestObject", "cache", "backupCache", "addedItems", "resultList", "idx", "requestQuery", "targetStorage", "storage", "cachedRequest", "cachedResponse", "#requestMatchesCachedItem", "queryURL", "cachedURL", "requestValue", "queryValue", "cacheQueryOptionConverters", "require_cachestorage", "__commonJSMin", "exports", "module", "kConstruct", "Cache", "webidl", "kEnumerableProperty", "CacheStorage", "_CacheStorage", "#caches", "request", "options", "cacheList", "response", "cacheName", "cache", "require_constants", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "kHeadersList", "isCTLExcludingHtab", "value", "char", "code", "validateCookieName", "name", "validateCookieValue", "validateCookiePath", "path", "validateCookieDomain", "domain", "toIMFDate", "date", "days", "months", "dayName", "day", "month", "year", "hour", "minute", "second", "validateCookieMaxAge", "maxAge", "stringify", "cookie", "out", "part", "key", "kHeadersListNode", "getHeadersList", "headers", "symbol", "headersList", "require_parse", "__commonJSMin", "exports", "module", "maxNameValuePairSize", "maxAttributeValueSize", "isCTLExcludingHtab", "collectASequenceOfCodePointsFast", "assert", "parseSetCookie", "header", "nameValuePair", "unparsedAttributes", "name", "value", "position", "parseUnparsedAttributes", "cookieAttributeList", "cookieAv", "attributeName", "attributeValue", "attributeNameLowercase", "expiryTime", "charCode", "deltaSeconds", "cookieDomain", "cookiePath", "enforcement", "attributeValueLowercase", "require_cookies", "__commonJSMin", "exports", "module", "parseSetCookie", "stringify", "getHeadersList", "webidl", "Headers", "getCookies", "headers", "cookie", "out", "piece", "name", "value", "deleteCookie", "attributes", "setCookie", "getSetCookies", "cookies", "pair", "require_constants", "__commonJSMin", "exports", "module", "uid", "staticPropertyDescriptors", "states", "opcodes", "maxUnsigned16Bit", "parserStates", "emptyBuffer", "require_symbols", "__commonJSMin", "exports", "module", "require_events", "__commonJSMin", "exports", "module", "webidl", "kEnumerableProperty", "MessagePort", "MessageEvent", "_MessageEvent", "#eventInit", "type", "eventInitDict", "bubbles", "cancelable", "data", "origin", "lastEventId", "source", "ports", "CloseEvent", "_CloseEvent", "ErrorEvent", "_ErrorEvent", "eventInit", "require_util", "__commonJSMin", "exports", "module", "kReadyState", "kController", "kResponse", "kBinaryType", "kWebSocketURL", "states", "opcodes", "MessageEvent", "ErrorEvent", "isEstablished", "ws", "isClosing", "isClosed", "fireEvent", "target", "eventConstructor", "eventInitDict", "event", "websocketMessageReceived", "type", "data", "dataForEvent", "failWebsocketConnection", "isValidSubprotocol", "protocol", "char", "code", "isValidStatusCode", "reason", "controller", "response", "require_connection", "__commonJSMin", "exports", "module", "randomBytes", "createHash", "diagnosticsChannel", "uid", "states", "kReadyState", "kSentClose", "kByteParser", "kReceivedClose", "fireEvent", "failWebsocketConnection", "CloseEvent", "makeRequest", "fetching", "Headers", "getGlobalDispatcher", "kHeadersList", "channels", "establishWebSocketConnection", "url", "protocols", "ws", "onEstablish", "options", "requestURL", "request", "headersList", "keyValue", "protocol", "permessageDeflate", "response", "secWSAccept", "digest", "secExtension", "secProtocol", "onSocketData", "onSocketClose", "onSocketError", "chunk", "wasClean", "code", "reason", "result", "error", "require_frame", "__commonJSMin", "exports", "module", "randomBytes", "maxUnsigned16Bit", "WebsocketFrameSend", "data", "opcode", "bodyLength", "payloadLength", "offset", "buffer", "i", "require_receiver", "__commonJSMin", "exports", "module", "Writable", "diagnosticsChannel", "parserStates", "opcodes", "states", "emptyBuffer", "kReadyState", "kSentClose", "kResponse", "kReceivedClose", "isValidStatusCode", "failWebsocketConnection", "websocketMessageReceived", "WebsocketFrameSend", "channels", "ByteParser", "#buffers", "#byteOffset", "#state", "#info", "#fragments", "ws", "chunk", "_", "callback", "buffer", "payloadLength", "body", "closeFrame", "err", "frame", "upper", "lower", "fullMessage", "n", "offset", "next", "length", "onlyCode", "data", "code", "reason", "require_websocket", "__commonJSMin", "exports", "module", "webidl", "DOMException", "URLSerializer", "staticPropertyDescriptors", "states", "opcodes", "emptyBuffer", "kWebSocketURL", "kReadyState", "kController", "kBinaryType", "kResponse", "kSentClose", "kByteParser", "isEstablished", "isClosing", "isValidSubprotocol", "failWebsocketConnection", "fireEvent", "establishWebSocketConnection", "WebsocketFrameSend", "ByteParser", "kEnumerableProperty", "isBlobLike", "getGlobalDispatcher", "types", "experimentalWarned", "WebSocket", "_WebSocket", "#events", "#bufferedAmount", "#protocol", "#extensions", "url", "protocols", "options", "urlRecord", "e", "p", "response", "#onConnectionEstablished", "code", "reason", "reasonByteLength", "frame", "err", "data", "socket", "value", "buffer", "ab", "fn", "type", "parser", "extensions", "protocol", "V", "require_undici", "__commonJSMin", "exports", "module", "Client", "Dispatcher", "errors", "Pool", "BalancedPool", "Agent", "util", "InvalidArgumentError", "api", "buildConnector", "MockClient", "MockAgent", "MockPool", "mockErrors", "ProxyAgent", "getGlobalDispatcher", "setGlobalDispatcher", "DecoratorHandler", "RedirectHandler", "createRedirectInterceptor", "hasCrypto", "makeDispatcher", "fn", "url", "opts", "handler", "path", "agent", "dispatcher", "fetchImpl", "resource", "err", "setGlobalOrigin", "getGlobalOrigin", "CacheStorage", "kConstruct", "deleteCookie", "getCookies", "getSetCookies", "setCookie", "parseMIMEType", "serializeAMimeType", "WebSocket", "assertInputTypes", "text", "lang", "slow", "host", "exports", "SPACE_REGEX", "DEFAULT_PUNCTUATION_REGEX", "splitLongText", "text", "_a", "_b", "_c", "maxLength", "_d", "splitPunct", "isSpaceOrPunct", "s", "i", "regex", "lastIndexOfSpaceOrPunct", "left", "right", "result", "addResult", "start", "end", "str", "exports", "assertInputTypes_1", "__importDefault", "splitLongText_1", "url_1", "getAudioUrl", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "exports", "getAllAudioUrls", "_f", "splitPunct", "shortText", "require_bind", "__commonJSMin", "exports", "module", "fn", "thisArg", "args", "require_utils", "__commonJSMin", "exports", "module", "bind", "toString", "isArray", "val", "isUndefined", "isBuffer", "isArrayBuffer", "isFormData", "isArrayBufferView", "result", "isString", "isNumber", "isObject", "isPlainObject", "prototype", "isDate", "isFile", "isBlob", "isFunction", "isStream", "isURLSearchParams", "trim", "str", "isStandardBrowserEnv", "forEach", "obj", "fn", "i", "l", "key", "merge", "assignValue", "extend", "a", "b", "thisArg", "stripBOM", "content", "require_buildURL", "__commonJSMin", "exports", "module", "utils", "encode", "val", "url", "params", "paramsSerializer", "serializedParams", "parts", "key", "v", "hashmarkIndex", "require_InterceptorManager", "__commonJSMin", "exports", "module", "utils", "InterceptorManager", "fulfilled", "rejected", "options", "id", "fn", "h", "require_normalizeHeaderName", "__commonJSMin", "exports", "module", "utils", "headers", "normalizedName", "value", "name", "require_enhanceError", "__commonJSMin", "exports", "module", "error", "config", "code", "request", "response", "require_createError", "__commonJSMin", "exports", "module", "enhanceError", "message", "config", "code", "request", "response", "error", "require_settle", "__commonJSMin", "exports", "module", "createError", "resolve", "reject", "response", "validateStatus", "require_cookies", "__commonJSMin", "exports", "module", "utils", "name", "value", "expires", "path", "domain", "secure", "cookie", "match", "require_isAbsoluteURL", "__commonJSMin", "exports", "module", "url", "require_combineURLs", "__commonJSMin", "exports", "module", "baseURL", "relativeURL", "require_buildFullPath", "__commonJSMin", "exports", "module", "isAbsoluteURL", "combineURLs", "baseURL", "requestedURL", "require_parseHeaders", "__commonJSMin", "exports", "module", "utils", "ignoreDuplicateOf", "headers", "parsed", "key", "val", "line", "require_isURLSameOrigin", "__commonJSMin", "exports", "module", "utils", "msie", "urlParsingNode", "originURL", "resolveURL", "url", "href", "requestURL", "parsed", "require_xhr", "__commonJSMin", "exports", "module", "utils", "settle", "cookies", "buildURL", "buildFullPath", "parseHeaders", "isURLSameOrigin", "createError", "config", "resolve", "reject", "requestData", "requestHeaders", "responseType", "request", "username", "password", "fullPath", "onloadend", "responseHeaders", "responseData", "response", "timeoutErrorMessage", "xsrfValue", "val", "key", "cancel", "require_ms", "__commonJSMin", "exports", "module", "s", "m", "h", "d", "w", "y", "val", "options", "type", "parse", "fmtLong", "fmtShort", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "require_common", "__commonJSMin", "exports", "module", "setup", "env", "createDebug", "coerce", "disable", "enable", "enabled", "destroy", "key", "selectColor", "namespace", "hash", "i", "prevTime", "enableOverride", "namespacesCache", "enabledCache", "debug", "args", "self", "curr", "ms", "index", "match", "format", "formatter", "val", "extend", "v", "delimiter", "newDebug", "namespaces", "split", "len", "toNamespace", "name", "regexp", "require_browser", "__commonJSMin", "exports", "module", "formatArgs", "save", "load", "useColors", "localstorage", "warned", "args", "c", "index", "lastC", "match", "namespaces", "r", "formatters", "v", "error", "require_has_flag", "__commonJSMin", "exports", "module", "flag", "argv", "prefix", "position", "terminatorPosition", "require_supports_color", "__commonJSMin", "exports", "module", "os", "tty", "hasFlag", "env", "forceColor", "translateLevel", "level", "supportsColor", "haveStream", "streamIsTTY", "min", "osRelease", "sign", "version", "getSupportLevel", "stream", "require_node", "__commonJSMin", "exports", "module", "tty", "util", "init", "log", "formatArgs", "save", "load", "useColors", "supportsColor", "key", "obj", "prop", "_", "k", "val", "args", "name", "c", "colorCode", "prefix", "getDate", "namespaces", "debug", "keys", "i", "formatters", "v", "str", "require_src", "__commonJSMin", "exports", "module", "require_debug", "__commonJSMin", "exports", "module", "debug", "require_follow_redirects", "__commonJSMin", "exports", "module", "url", "URL", "http", "https", "Writable", "assert", "debug", "useNativeURL", "error", "preservedUrlFields", "events", "eventHandlers", "event", "arg1", "arg2", "arg3", "InvalidUrlError", "createErrorType", "RedirectionError", "TooManyRedirectsError", "MaxBodyLengthExceededError", "WriteAfterEndError", "destroy", "noop", "RedirectableRequest", "options", "responseCallback", "self", "response", "cause", "destroyRequest", "data", "encoding", "callback", "isString", "isBuffer", "isFunction", "currentRequest", "name", "value", "msecs", "destroyOnTimeout", "socket", "startTimer", "clearTimer", "method", "a", "b", "property", "searchPos", "protocol", "nativeProtocol", "scheme", "request", "buffers", "writeNext", "buffer", "statusCode", "location", "requestHeaders", "beforeRedirect", "removeMatchingHeaders", "currentHostHeader", "currentUrlParts", "parseUrl", "currentHost", "currentUrl", "redirectUrl", "resolveUrl", "spreadUrlObject", "isSubdomain", "responseDetails", "requestDetails", "wrap", "protocols", "nativeProtocols", "wrappedProtocol", "input", "isURL", "validateUrl", "get", "wrappedRequest", "parsed", "relative", "base", "urlObject", "target", "spread", "key", "regex", "headers", "lastValue", "header", "code", "message", "baseClass", "CustomError", "properties", "subdomain", "domain", "dot", "require_package", "__commonJSMin", "exports", "module", "require_http", "__commonJSMin", "exports", "module", "utils", "settle", "buildFullPath", "buildURL", "http", "https", "httpFollow", "httpsFollow", "url", "zlib", "pkg", "createError", "enhanceError", "isHttps", "setProxy", "options", "proxy", "location", "base64", "redirection", "config", "resolvePromise", "rejectPromise", "resolve", "value", "reject", "data", "headers", "auth", "username", "password", "fullPath", "parsed", "protocol", "urlAuth", "urlUsername", "urlPassword", "isHttpsRequest", "agent", "proxyEnv", "proxyUrl", "parsedProxyUrl", "noProxyEnv", "shouldProxy", "noProxy", "s", "proxyElement", "proxyUrlAuth", "transport", "isHttpsProxy", "req", "res", "stream", "lastRequest", "response", "responseBuffer", "totalResponseBytes", "chunk", "err", "responseData", "timeout", "cancel", "require_defaults", "__commonJSMin", "exports", "module", "utils", "normalizeHeaderName", "enhanceError", "DEFAULT_CONTENT_TYPE", "setContentTypeIfUnset", "headers", "value", "getDefaultAdapter", "adapter", "stringifySafely", "rawValue", "parser", "encoder", "e", "defaults", "data", "transitional", "silentJSONParsing", "forcedJSONParsing", "strictJSONParsing", "status", "method", "require_transformData", "__commonJSMin", "exports", "module", "utils", "defaults", "data", "headers", "fns", "context", "fn", "require_isCancel", "__commonJSMin", "exports", "module", "value", "require_dispatchRequest", "__commonJSMin", "exports", "module", "utils", "transformData", "isCancel", "defaults", "throwIfCancellationRequested", "config", "method", "adapter", "response", "reason", "require_mergeConfig", "__commonJSMin", "exports", "module", "utils", "config1", "config2", "config", "valueFromConfig2Keys", "mergeDeepPropertiesKeys", "defaultToConfig2Keys", "directMergeKeys", "getMergedValue", "target", "source", "mergeDeepProperties", "prop", "axiosKeys", "otherKeys", "key", "require_validator", "__commonJSMin", "exports", "module", "pkg", "validators", "type", "i", "thing", "deprecatedWarnings", "currentVerArr", "isOlderVersion", "version", "thanVersion", "pkgVersionArr", "destVer", "validator", "message", "isDeprecated", "formatMessage", "opt", "desc", "value", "opts", "assertOptions", "options", "schema", "allowUnknown", "keys", "result", "require_Axios", "__commonJSMin", "exports", "module", "utils", "buildURL", "InterceptorManager", "dispatchRequest", "mergeConfig", "validator", "validators", "Axios", "instanceConfig", "config", "transitional", "requestInterceptorChain", "synchronousRequestInterceptors", "interceptor", "responseInterceptorChain", "promise", "chain", "newConfig", "onFulfilled", "onRejected", "error", "method", "url", "data", "require_Cancel", "__commonJSMin", "exports", "module", "Cancel", "message", "require_CancelToken", "__commonJSMin", "exports", "module", "Cancel", "CancelToken", "executor", "resolvePromise", "resolve", "token", "message", "cancel", "c", "require_spread", "__commonJSMin", "exports", "module", "callback", "arr", "require_isAxiosError", "__commonJSMin", "exports", "module", "payload", "require_axios", "__commonJSMin", "exports", "module", "utils", "bind", "Axios", "mergeConfig", "defaults", "createInstance", "defaultConfig", "context", "instance", "axios", "instanceConfig", "promises", "require_axios", "__commonJSMin", "exports", "module", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "_f", "splitPunct", "_g", "timeout", "shortTextList", "shortText", "base64List", "_h", "result", "i", "base64", "getAudioUrl_1", "exports", "getAudioBase64_1", "quick_translate_exports", "__export", "QuickTranslate", "__toCommonJS", "import_api", "import_react", "import_api", "import_api", "import_utils", "import_react", "import_querystring", "import_undici", "languages", "getISOCode", "language", "key", "isSupported", "import_undici", "zr", "a", "b", "yr", "wr", "c", "window", "d", "e", "f", "g", "l", "h", "xr", "config", "updateTKK", "now", "code", "xt", "tokenGenerator", "text", "tk", "error", "translate", "text", "options", "error", "lang", "isSupported", "getISOCode", "token", "tokenGenerator", "baseUrl", "data", "url", "querystring", "requestOptions", "requestUrl", "body", "result", "obj", "str", "googleTTS", "AUTO_DETECT", "TranslateError", "extractPronounceTextFromRaw", "raw", "simpleTranslate", "text", "options", "translated", "translate", "err", "error", "usePreferences", "React", "useTextState", "preferences", "text", "setText", "textRef", "cbText", "err", "useDebouncedValue", "value", "delay", "debouncedValue", "setDebouncedValue", "React", "handler", "useSourceLanguage", "sourceLanguage", "setSourceLanguage", "AUTO_DETECT", "useTargetLanguages", "preferences", "usePreferences", "targetLanguages", "setTargetLanguages", "lang", "supportedLanguages_default", "supportedLanguagesByCode_default", "getLanguageFlag", "language", "fallback", "getLanguageFlagByCode", "lang", "supportedLanguagesByCode", "supportedLanguagesByCode_default", "supportedLanguagesByCountry", "supportedLanguages_default", "languages", "import_api", "import_jsx_runtime", "TargetLanguageList", "targetLanguages", "setTargetLanguages", "useTargetLanguages", "lang", "getLanguageFlagByCode", "supportedLanguagesByCode", "updated", "l", "index", "languages", "AUTO_DETECT", "getLanguageFlag", "prev", "import_jsx_runtime", "LanguageDropdown", "navigation", "sourceLanguage", "setSourceLanguage", "useSourceLanguage", "targetLanguages", "useTargetLanguages", "value", "TargetLanguageList", "getLanguageFlagByCode", "languages", "lang", "getLanguageFlag", "import_api", "import_utils", "import_api", "import_jsx_runtime", "ConfigurableCopyPasteActions", "defaultActionsPrefix", "value", "defaultPreference", "pasteAction", "copyAction", "ToggleFullTextAction", "onAction", "OpenOnGoogleTranslateWebsiteAction", "translationText", "translation", "import_jsx_runtime", "QuickTranslateListItem", "props", "langFrom", "supportedLanguagesByCode", "langTo", "result", "isLoading", "simpleTranslate", "error", "getLanguageFlag", "ConfigurableCopyPasteActions", "ToggleFullTextAction", "OpenOnGoogleTranslateWebsiteAction", "import_jsx_runtime", "QuickTranslate", "sourceLanguage", "useSourceLanguage", "targetLanguages", "useTargetLanguages", "proxy", "usePreferences", "isShowingDetail", "setIsShowingDetail", "text", "setText", "useTextState", "debouncedText", "useDebouncedValue", "loadingStates", "setLoadingStates", "lang", "isAnyLoading", "isLoading", "setIsLoading", "prev", "LanguageDropdown", "targetLanguage", "QuickTranslateListItem"] } diff --git a/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/translate-form.js b/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/translate-form.js @@ -1,96 +1,89 @@ -"use strict";var QQ=Object.create;var Pr=Object.defineProperty;var CQ=Object.getOwnPropertyDescriptor;var mQ=Object.getOwnPropertyNames;var BQ=Object.getPrototypeOf,hQ=Object.prototype.hasOwnProperty;var E=(e,A)=>()=>(A||e((A={exports:{}}).exports,A),A.exports),IQ=(e,A)=>{for(var t in A)Pr(e,t,{get:A[t],enumerable:!0})},a2=(e,A,t,a)=>{if(A&&typeof A=="object"||typeof A=="function")for(let r of mQ(A))!hQ.call(e,r)&&r!==t&&Pr(e,r,{get:()=>A[r],enumerable:!(a=CQ(A,r))||a.enumerable});return e};var qA=(e,A,t)=>(t=e!=null?QQ(BQ(e)):{},a2(A||!e||!e.__esModule?Pr(t,"default",{value:e,enumerable:!0}):t,e)),fQ=e=>a2(Pr({},"__esModule",{value:!0}),e);var s2=E(i2=>{var r2=Object.prototype.hasOwnProperty;function yn(e,A){var t,a;if(e===A)return!0;if(e&&A&&(t=e.constructor)===A.constructor){if(t===Date)return e.getTime()===A.getTime();if(t===RegExp)return e.toString()===A.toString();if(t===Array){if((a=e.length)===A.length)for(;a--&&yn(e[a],A[a]););return a===-1}if(!t||typeof e=="object"){a=0;for(t in e)if(r2.call(e,t)&&++a&&!r2.call(A,t)||!(t in A)||!yn(e[t],A[t]))return!1;return Object.keys(A).length===a}}return e!==e&&A!==A}i2.dequal=yn});var n2=E(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.useDeepMemo=void 0;var Dn=require("react"),wQ=s2();function yQ(e){let A=(0,Dn.useRef)(e),t=(0,Dn.useRef)(0);return(0,wQ.dequal)(e,A.current)||(A.current=e,t.current+=1),(0,Dn.useMemo)(()=>A.current,[t.current])}Wr.useDeepMemo=yQ});var dt=E(jr=>{"use strict";Object.defineProperty(jr,"__esModule",{value:!0});jr.useLatest=void 0;var DQ=require("react");function vQ(e){let A=(0,DQ.useRef)(e);return A.current=e,A}jr.useLatest=vQ});var vn=E(HA=>{"use strict";var RQ=HA&&HA.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),NQ=HA&&HA.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),o2=HA&&HA.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&RQ(A,e,t);return NQ(A,e),A};Object.defineProperty(HA,"__esModule",{value:!0});HA.handleErrorToastAction=void 0;var bQ=o2(require("fs")),SQ=o2(require("path")),Zr=require("@raycast/api"),FQ=e=>{let A=!0,t="[Extension Name]...",a="";try{let i=JSON.parse(bQ.readFileSync(SQ.join(Zr.environment.assetsPath,"..","package.json"),"utf8"));t=`[${i.title}]...`,a=`https://raycast.com/${i.owner||i.author}/${i.name}`,(!i.owner||i.access==="public")&&(A=!1)}catch{}let r=Zr.environment.isDevelopment||A;return{title:r?"Copy Logs":"Report Error",onAction(i){i.hide(),r?Zr.Clipboard.copy(e?.stack||e?.message||""):(0,Zr.open)(`https://github.com/raycast/extensions/issues/new?&labels=extension%2Cbug&template=extension_bug_report.yml&title=${encodeURIComponent(t)}&extension-url=${encodeURI(a)}&description=${encodeURIComponent(`#### Error: +"use strict";var Z3=Object.create;var Jr=Object.defineProperty;var j3=Object.getOwnPropertyDescriptor;var X3=Object.getOwnPropertyNames;var z3=Object.getPrototypeOf,K3=Object.prototype.hasOwnProperty;var E=(e,A)=>()=>(A||e((A={exports:{}}).exports,A),A.exports),$3=(e,A)=>{for(var t in A)Jr(e,t,{get:A[t],enumerable:!0})},O0=(e,A,t,a)=>{if(A&&typeof A=="object"||typeof A=="function")for(let r of X3(A))!K3.call(e,r)&&r!==t&&Jr(e,r,{get:()=>A[r],enumerable:!(a=j3(A,r))||a.enumerable});return e};var rt=(e,A,t)=>(t=e!=null?Z3(z3(e)):{},O0(A||!e||!e.__esModule?Jr(t,"default",{value:e,enumerable:!0}):t,e)),eQ=e=>O0(Jr({},"__esModule",{value:!0}),e);var Z0=E(W0=>{var P0=Object.prototype.hasOwnProperty;function un(e,A){var t,a;if(e===A)return!0;if(e&&A&&(t=e.constructor)===A.constructor){if(t===Date)return e.getTime()===A.getTime();if(t===RegExp)return e.toString()===A.toString();if(t===Array){if((a=e.length)===A.length)for(;a--&&un(e[a],A[a]););return a===-1}if(!t||typeof e=="object"){a=0;for(t in e)if(P0.call(e,t)&&++a&&!P0.call(A,t)||!(t in A)||!un(e[t],A[t]))return!1;return Object.keys(A).length===a}}return e!==e&&A!==A}W0.dequal=un});var j0=E(Gr=>{"use strict";Object.defineProperty(Gr,"__esModule",{value:!0});Gr.useDeepMemo=void 0;var En=require("react"),AQ=Z0();function tQ(e){let A=(0,En.useRef)(e),t=(0,En.useRef)(0);return(0,AQ.dequal)(e,A.current)||(A.current=e,t.current+=1),(0,En.useMemo)(()=>A.current,[t.current])}Gr.useDeepMemo=tQ});var it=E(xr=>{"use strict";Object.defineProperty(xr,"__esModule",{value:!0});xr.useLatest=void 0;var aQ=require("react");function rQ(e){let A=(0,aQ.useRef)(e);return A.current=e,A}xr.useLatest=rQ});var Qn=E(xA=>{"use strict";var iQ=xA&&xA.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),sQ=xA&&xA.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),X0=xA&&xA.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&iQ(A,e,t);return sQ(A,e),A};Object.defineProperty(xA,"__esModule",{value:!0});xA.handleErrorToastAction=void 0;var nQ=X0(require("fs")),oQ=X0(require("path")),_r=require("@raycast/api"),dQ=e=>{let A=!0,t="[Extension Name]...",a="";try{let i=JSON.parse(nQ.readFileSync(oQ.join(_r.environment.assetsPath,"..","package.json"),"utf8"));t=`[${i.title}]...`,a=`https://raycast.com/${i.owner||i.author}/${i.name}`,(!i.owner||i.access==="public")&&(A=!1)}catch{}let r=_r.environment.isDevelopment||A;return{title:r?"Copy Logs":"Report Error",onAction(i){i.hide(),r?_r.Clipboard.copy(e?.stack||e?.message||""):(0,_r.open)(`https://github.com/raycast/extensions/issues/new?&labels=extension%2Cbug&template=extension_bug_report.yml&title=${encodeURIComponent(t)}&extension-url=${encodeURI(a)}&description=${encodeURIComponent(`#### Error: \`\`\` ${e?.stack||e?.message||""} \`\`\` -`)}`)}}};HA.handleErrorToastAction=FQ});var Ua=E(Xr=>{"use strict";Object.defineProperty(Xr,"__esModule",{value:!0});Xr.usePromise=void 0;var Nt=require("react"),Zt=require("@raycast/api"),kQ=n2(),Xt=dt(),LQ=vn();function UQ(e,A,t){let a=(0,Nt.useRef)(0),[r,i]=(0,Nt.useState)({isLoading:!0}),s=(0,Xt.useLatest)(e),n=(0,Xt.useLatest)(t?.abortable),o=(0,Xt.useLatest)(A||[]),d=(0,Xt.useLatest)(t?.onError),l=(0,Xt.useLatest)(t?.onData),p=(0,Xt.useLatest)(t?.onWillExecute),g=(0,Xt.useLatest)(r.data),c=(0,Nt.useRef)(),u=(0,Nt.useCallback)((...B)=>{let I=++a.current;return n.current&&(n.current.current?.abort(),n.current.current=new AbortController),p.current?.(B),i(w=>({...w,isLoading:!0})),TQ(s.current)(...B).then(w=>(I===a.current&&(l.current&&l.current(w),i({data:w,isLoading:!1})),w),w=>(w.name=="AbortError"||I===a.current&&(d.current?d.current(w):(console.error(w),Zt.environment.launchType!==Zt.LaunchType.Background&&(0,Zt.showToast)({style:Zt.Toast.Style.Failure,title:"Failed to fetch latest data",message:w.message,primaryAction:{title:"Retry",onAction(v){v.hide(),c.current?.(...o.current||[])}},secondaryAction:(0,LQ.handleErrorToastAction)(w)})),i({error:w,isLoading:!1})),w))},[n,l,d,o,s,i,c,p]);c.current=u;let Q=(0,Nt.useCallback)(()=>u(...o.current||[]),[u,o]),m=(0,Nt.useCallback)(async(B,I)=>{let w;try{if(I?.optimisticUpdate){typeof I?.rollbackOnError!="function"&&I?.rollbackOnError!==!1&&(w=structuredClone(g.current?.value));let v=I.optimisticUpdate;i(S=>({...S,data:v(S.data)}))}return await B}catch(v){if(typeof I?.rollbackOnError=="function"){let S=I.rollbackOnError;i(x=>({...x,data:S(x.data)}))}else I?.optimisticUpdate&&I?.rollbackOnError!==!1&&i(S=>({...S,data:w}));throw v}finally{I?.shouldRevalidateAfter!==!1&&(Zt.environment.launchType===Zt.LaunchType.Background||Zt.environment.commandMode==="menu-bar"?await Q():Q())}},[Q,g,i]);(0,Nt.useEffect)(()=>{t?.execute!==!1?u(...A||[]):n.current&&n.current.current?.abort()},[(0,kQ.useDeepMemo)([A,t?.execute,u]),n]),(0,Nt.useEffect)(()=>()=>{n.current&&n.current.current?.abort()},[n]);let C=t?.execute!==!1?r.isLoading:!1;return{...{...r,isLoading:C},revalidate:Q,mutate:m}}Xr.usePromise=UQ;function TQ(e){return e===Promise.all||e===Promise.race||e===Promise.resolve||e===Promise.reject?e.bind(Promise):e}});var Kr=E(zr=>{"use strict";Object.defineProperty(zr,"__esModule",{value:!0});zr.useCachedState=void 0;var Rn=require("react"),MQ=require("@raycast/api"),Nn=dt();function VQ(e,A){let t=this[e];return t instanceof Date?`__raycast_cached_date__${t.toString()}`:Buffer.isBuffer(t)?`__raycast_cached_buffer__${t.toString("base64")}`:A}function YQ(e,A){return typeof A=="string"&&A.startsWith("__raycast_cached_date__")?new Date(A.replace("__raycast_cached_date__","")):typeof A=="string"&&A.startsWith("__raycast_cached_buffer__")?Buffer.from(A.replace("__raycast_cached_buffer__",""),"base64"):A}var JQ=Symbol("cache without namespace"),d2=new Map;function GQ(e,A,t){let a=t?.cacheNamespace||JQ,r=d2.get(a)||d2.set(a,new MQ.Cache({namespace:t?.cacheNamespace})).get(a);if(!r)throw new Error("Missing cache");let i=(0,Nn.useLatest)(e),s=(0,Nn.useLatest)(A),n=(0,Rn.useSyncExternalStore)(r.subscribe,()=>{try{return r.get(i.current)}catch(p){console.error("Could not get Cache data:",p);return}}),o=(0,Rn.useMemo)(()=>{if(typeof n<"u"){if(n==="undefined")return;try{return JSON.parse(n,YQ)}catch(p){return console.warn("The cached data is corrupted",p),s.current}}else return s.current},[n,s]),d=(0,Nn.useLatest)(o),l=(0,Rn.useCallback)(p=>{let g=typeof p=="function"?p(d.current):p;if(typeof g>"u")r.set(i.current,"undefined");else{let c=JSON.stringify(g,VQ);r.set(i.current,c)}return g},[r,i,d]);return[o,l]}zr.useCachedState=GQ});var Fn=E((zt,u2)=>{"use strict";var bn=require("crypto");zt=u2.exports=Ta;function Ta(e,A){return A=g2(e,A),xQ(e,A)}zt.sha1=function(e){return Ta(e)};zt.keys=function(e){return Ta(e,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})};zt.MD5=function(e){return Ta(e,{algorithm:"md5",encoding:"hex"})};zt.keysMD5=function(e){return Ta(e,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var N1=bn.getHashes?bn.getHashes().slice():["sha1","md5"];N1.push("passthrough");var p2=["buffer","hex","binary","base64"];function g2(e,A){A=A||{};var t={};if(t.algorithm=A.algorithm||"sha1",t.encoding=A.encoding||"hex",t.excludeValues=!!A.excludeValues,t.algorithm=t.algorithm.toLowerCase(),t.encoding=t.encoding.toLowerCase(),t.ignoreUnknown=A.ignoreUnknown===!0,t.respectType=A.respectType!==!1,t.respectFunctionNames=A.respectFunctionNames!==!1,t.respectFunctionProperties=A.respectFunctionProperties!==!1,t.unorderedArrays=A.unorderedArrays===!0,t.unorderedSets=A.unorderedSets!==!1,t.unorderedObjects=A.unorderedObjects!==!1,t.replacer=A.replacer||void 0,t.excludeKeys=A.excludeKeys||void 0,typeof e>"u")throw new Error("Object argument required.");for(var a=0;a<N1.length;++a)N1[a].toLowerCase()===t.algorithm.toLowerCase()&&(t.algorithm=N1[a]);if(N1.indexOf(t.algorithm)===-1)throw new Error('Algorithm "'+t.algorithm+'" not supported. supported values: '+N1.join(", "));if(p2.indexOf(t.encoding)===-1&&t.algorithm!=="passthrough")throw new Error('Encoding "'+t.encoding+'" not supported. supported values: '+p2.join(", "));return t}function l2(e){if(typeof e!="function")return!1;var A=/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i;return A.exec(Function.prototype.toString.call(e))!=null}function xQ(e,A){var t;A.algorithm!=="passthrough"?t=bn.createHash(A.algorithm):t=new c2,typeof t.write>"u"&&(t.write=t.update,t.end=t.update);var a=Sn(A,t);if(a.dispatch(e),t.update||t.end(""),t.digest)return t.digest(A.encoding==="buffer"?void 0:A.encoding);var r=t.read();return A.encoding==="buffer"?r:r.toString(A.encoding)}zt.writeToStream=function(e,A,t){return typeof t>"u"&&(t=A,A={}),A=g2(e,A),Sn(A,t).dispatch(e)};function Sn(e,A,t){t=t||[];var a=function(r){return A.update?A.update(r,"utf8"):A.write(r,"utf8")};return{dispatch:function(r){e.replacer&&(r=e.replacer(r));var i=typeof r;return r===null&&(i="null"),this["_"+i](r)},_object:function(r){var i=/\[object (.*)\]/i,s=Object.prototype.toString.call(r),n=i.exec(s);n?n=n[1]:n="unknown:["+s+"]",n=n.toLowerCase();var o=null;if((o=t.indexOf(r))>=0)return this.dispatch("[CIRCULAR:"+o+"]");if(t.push(r),typeof Buffer<"u"&&Buffer.isBuffer&&Buffer.isBuffer(r))return a("buffer:"),a(r);if(n!=="object"&&n!=="function"&&n!=="asyncfunction")if(this["_"+n])this["_"+n](r);else{if(e.ignoreUnknown)return a("["+n+"]");throw new Error('Unknown object type "'+n+'"')}else{var d=Object.keys(r);e.unorderedObjects&&(d=d.sort()),e.respectType!==!1&&!l2(r)&&d.splice(0,0,"prototype","__proto__","constructor"),e.excludeKeys&&(d=d.filter(function(p){return!e.excludeKeys(p)})),a("object:"+d.length+":");var l=this;return d.forEach(function(p){l.dispatch(p),a(":"),e.excludeValues||l.dispatch(r[p]),a(",")})}},_array:function(r,i){i=typeof i<"u"?i:e.unorderedArrays!==!1;var s=this;if(a("array:"+r.length+":"),!i||r.length<=1)return r.forEach(function(d){return s.dispatch(d)});var n=[],o=r.map(function(d){var l=new c2,p=t.slice(),g=Sn(e,l,p);return g.dispatch(d),n=n.concat(p.slice(t.length)),l.read().toString()});return t=t.concat(n),o.sort(),this._array(o,!1)},_date:function(r){return a("date:"+r.toJSON())},_symbol:function(r){return a("symbol:"+r.toString())},_error:function(r){return a("error:"+r.toString())},_boolean:function(r){return a("bool:"+r.toString())},_string:function(r){a("string:"+r.length+":"),a(r.toString())},_function:function(r){a("fn:"),l2(r)?this.dispatch("[native]"):this.dispatch(r.toString()),e.respectFunctionNames!==!1&&this.dispatch("function-name:"+String(r.name)),e.respectFunctionProperties&&this._object(r)},_number:function(r){return a("number:"+r.toString())},_xml:function(r){return a("xml:"+r.toString())},_null:function(){return a("Null")},_undefined:function(){return a("Undefined")},_regexp:function(r){return a("regex:"+r.toString())},_uint8array:function(r){return a("uint8array:"),this.dispatch(Array.prototype.slice.call(r))},_uint8clampedarray:function(r){return a("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(r))},_int8array:function(r){return a("int8array:"),this.dispatch(Array.prototype.slice.call(r))},_uint16array:function(r){return a("uint16array:"),this.dispatch(Array.prototype.slice.call(r))},_int16array:function(r){return a("int16array:"),this.dispatch(Array.prototype.slice.call(r))},_uint32array:function(r){return a("uint32array:"),this.dispatch(Array.prototype.slice.call(r))},_int32array:function(r){return a("int32array:"),this.dispatch(Array.prototype.slice.call(r))},_float32array:function(r){return a("float32array:"),this.dispatch(Array.prototype.slice.call(r))},_float64array:function(r){return a("float64array:"),this.dispatch(Array.prototype.slice.call(r))},_arraybuffer:function(r){return a("arraybuffer:"),this.dispatch(new Uint8Array(r))},_url:function(r){return a("url:"+r.toString(),"utf8")},_map:function(r){a("map:");var i=Array.from(r);return this._array(i,e.unorderedSets!==!1)},_set:function(r){a("set:");var i=Array.from(r);return this._array(i,e.unorderedSets!==!1)},_file:function(r){return a("file:"),this.dispatch([r.name,r.size,r.type,r.lastModfied])},_blob:function(){if(e.ignoreUnknown)return a("[blob]");throw Error(`Hashing Blob objects is currently not supported +`)}`)}}};xA.handleErrorToastAction=dQ});var ba=E(qr=>{"use strict";Object.defineProperty(qr,"__esModule",{value:!0});qr.usePromise=void 0;var yt=require("react"),Ht=require("@raycast/api"),pQ=j0(),Ot=it(),lQ=Qn();function gQ(e,A,t){let a=(0,yt.useRef)(0),[r,i]=(0,yt.useState)({isLoading:!0}),s=(0,Ot.useLatest)(e),n=(0,Ot.useLatest)(t?.abortable),o=(0,Ot.useLatest)(A||[]),d=(0,Ot.useLatest)(t?.onError),l=(0,Ot.useLatest)(t?.onData),p=(0,Ot.useLatest)(t?.onWillExecute),g=(0,Ot.useLatest)(r.data),c=(0,yt.useRef)(),u=(0,yt.useCallback)((...w)=>{let I=++a.current;return n.current&&(n.current.current?.abort(),n.current.current=new AbortController),p.current?.(w),i(y=>({...y,isLoading:!0})),cQ(s.current)(...w).then(y=>(I===a.current&&(l.current&&l.current(y),i({data:y,isLoading:!1})),y),y=>(y.name=="AbortError"||I===a.current&&(d.current?d.current(y):(console.error(y),Ht.environment.launchType!==Ht.LaunchType.Background&&(0,Ht.showToast)({style:Ht.Toast.Style.Failure,title:"Failed to fetch latest data",message:y.message,primaryAction:{title:"Retry",onAction(b){b.hide(),c.current?.(...o.current||[])}},secondaryAction:(0,lQ.handleErrorToastAction)(y)})),i({error:y,isLoading:!1})),y))},[n,l,d,o,s,i,c,p]);c.current=u;let m=(0,yt.useCallback)(()=>u(...o.current||[]),[u,o]),Q=(0,yt.useCallback)(async(w,I)=>{let y;try{if(I?.optimisticUpdate){typeof I?.rollbackOnError!="function"&&I?.rollbackOnError!==!1&&(y=structuredClone(g.current?.value));let b=I.optimisticUpdate;i(k=>({...k,data:b(k.data)}))}return await w}catch(b){if(typeof I?.rollbackOnError=="function"){let k=I.rollbackOnError;i(x=>({...x,data:k(x.data)}))}else I?.optimisticUpdate&&I?.rollbackOnError!==!1&&i(k=>({...k,data:y}));throw b}finally{I?.shouldRevalidateAfter!==!1&&(Ht.environment.launchType===Ht.LaunchType.Background||Ht.environment.commandMode==="menu-bar"?await m():m())}},[m,g,i]);(0,yt.useEffect)(()=>{t?.execute!==!1?u(...A||[]):n.current&&n.current.current?.abort()},[(0,pQ.useDeepMemo)([A,t?.execute,u]),n]),(0,yt.useEffect)(()=>()=>{n.current&&n.current.current?.abort()},[n]);let C=t?.execute!==!1?r.isLoading:!1;return{...{...r,isLoading:C},revalidate:m,mutate:Q}}qr.usePromise=gQ;function cQ(e){return e===Promise.all||e===Promise.race||e===Promise.resolve||e===Promise.reject?e.bind(Promise):e}});var Or=E(Hr=>{"use strict";Object.defineProperty(Hr,"__esModule",{value:!0});Hr.useCachedState=void 0;var mn=require("react"),uQ=require("@raycast/api"),Cn=it();function EQ(e,A){let t=this[e];return t instanceof Date?`__raycast_cached_date__${t.toString()}`:Buffer.isBuffer(t)?`__raycast_cached_buffer__${t.toString("base64")}`:A}function QQ(e,A){return typeof A=="string"&&A.startsWith("__raycast_cached_date__")?new Date(A.replace("__raycast_cached_date__","")):typeof A=="string"&&A.startsWith("__raycast_cached_buffer__")?Buffer.from(A.replace("__raycast_cached_buffer__",""),"base64"):A}var mQ=Symbol("cache without namespace"),z0=new Map;function CQ(e,A,t){let a=t?.cacheNamespace||mQ,r=z0.get(a)||z0.set(a,new uQ.Cache({namespace:t?.cacheNamespace})).get(a);if(!r)throw new Error("Missing cache");let i=(0,Cn.useLatest)(e),s=(0,Cn.useLatest)(A),n=(0,mn.useSyncExternalStore)(r.subscribe,()=>{try{return r.get(i.current)}catch(p){console.error("Could not get Cache data:",p);return}}),o=(0,mn.useMemo)(()=>{if(typeof n<"u"){if(n==="undefined")return;try{return JSON.parse(n,QQ)}catch(p){return console.warn("The cached data is corrupted",p),s.current}}else return s.current},[n,s]),d=(0,Cn.useLatest)(o),l=(0,mn.useCallback)(p=>{let g=typeof p=="function"?p(d.current):p;if(typeof g>"u")r.set(i.current,"undefined");else{let c=JSON.stringify(g,EQ);r.set(i.current,c)}return g},[r,i,d]);return[o,l]}Hr.useCachedState=CQ});var In=E((Pt,t2)=>{"use strict";var Bn=require("crypto");Pt=t2.exports=Sa;function Sa(e,A){return A=e2(e,A),BQ(e,A)}Pt.sha1=function(e){return Sa(e)};Pt.keys=function(e){return Sa(e,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})};Pt.MD5=function(e){return Sa(e,{algorithm:"md5",encoding:"hex"})};Pt.keysMD5=function(e){return Sa(e,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var y1=Bn.getHashes?Bn.getHashes().slice():["sha1","md5"];y1.push("passthrough");var K0=["buffer","hex","binary","base64"];function e2(e,A){A=A||{};var t={};if(t.algorithm=A.algorithm||"sha1",t.encoding=A.encoding||"hex",t.excludeValues=!!A.excludeValues,t.algorithm=t.algorithm.toLowerCase(),t.encoding=t.encoding.toLowerCase(),t.ignoreUnknown=A.ignoreUnknown===!0,t.respectType=A.respectType!==!1,t.respectFunctionNames=A.respectFunctionNames!==!1,t.respectFunctionProperties=A.respectFunctionProperties!==!1,t.unorderedArrays=A.unorderedArrays===!0,t.unorderedSets=A.unorderedSets!==!1,t.unorderedObjects=A.unorderedObjects!==!1,t.replacer=A.replacer||void 0,t.excludeKeys=A.excludeKeys||void 0,typeof e>"u")throw new Error("Object argument required.");for(var a=0;a<y1.length;++a)y1[a].toLowerCase()===t.algorithm.toLowerCase()&&(t.algorithm=y1[a]);if(y1.indexOf(t.algorithm)===-1)throw new Error('Algorithm "'+t.algorithm+'" not supported. supported values: '+y1.join(", "));if(K0.indexOf(t.encoding)===-1&&t.algorithm!=="passthrough")throw new Error('Encoding "'+t.encoding+'" not supported. supported values: '+K0.join(", "));return t}function $0(e){if(typeof e!="function")return!1;var A=/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i;return A.exec(Function.prototype.toString.call(e))!=null}function BQ(e,A){var t;A.algorithm!=="passthrough"?t=Bn.createHash(A.algorithm):t=new A2,typeof t.write>"u"&&(t.write=t.update,t.end=t.update);var a=hn(A,t);if(a.dispatch(e),t.update||t.end(""),t.digest)return t.digest(A.encoding==="buffer"?void 0:A.encoding);var r=t.read();return A.encoding==="buffer"?r:r.toString(A.encoding)}Pt.writeToStream=function(e,A,t){return typeof t>"u"&&(t=A,A={}),A=e2(e,A),hn(A,t).dispatch(e)};function hn(e,A,t){t=t||[];var a=function(r){return A.update?A.update(r,"utf8"):A.write(r,"utf8")};return{dispatch:function(r){e.replacer&&(r=e.replacer(r));var i=typeof r;return r===null&&(i="null"),this["_"+i](r)},_object:function(r){var i=/\[object (.*)\]/i,s=Object.prototype.toString.call(r),n=i.exec(s);n?n=n[1]:n="unknown:["+s+"]",n=n.toLowerCase();var o=null;if((o=t.indexOf(r))>=0)return this.dispatch("[CIRCULAR:"+o+"]");if(t.push(r),typeof Buffer<"u"&&Buffer.isBuffer&&Buffer.isBuffer(r))return a("buffer:"),a(r);if(n!=="object"&&n!=="function"&&n!=="asyncfunction")if(this["_"+n])this["_"+n](r);else{if(e.ignoreUnknown)return a("["+n+"]");throw new Error('Unknown object type "'+n+'"')}else{var d=Object.keys(r);e.unorderedObjects&&(d=d.sort()),e.respectType!==!1&&!$0(r)&&d.splice(0,0,"prototype","__proto__","constructor"),e.excludeKeys&&(d=d.filter(function(p){return!e.excludeKeys(p)})),a("object:"+d.length+":");var l=this;return d.forEach(function(p){l.dispatch(p),a(":"),e.excludeValues||l.dispatch(r[p]),a(",")})}},_array:function(r,i){i=typeof i<"u"?i:e.unorderedArrays!==!1;var s=this;if(a("array:"+r.length+":"),!i||r.length<=1)return r.forEach(function(d){return s.dispatch(d)});var n=[],o=r.map(function(d){var l=new A2,p=t.slice(),g=hn(e,l,p);return g.dispatch(d),n=n.concat(p.slice(t.length)),l.read().toString()});return t=t.concat(n),o.sort(),this._array(o,!1)},_date:function(r){return a("date:"+r.toJSON())},_symbol:function(r){return a("symbol:"+r.toString())},_error:function(r){return a("error:"+r.toString())},_boolean:function(r){return a("bool:"+r.toString())},_string:function(r){a("string:"+r.length+":"),a(r.toString())},_function:function(r){a("fn:"),$0(r)?this.dispatch("[native]"):this.dispatch(r.toString()),e.respectFunctionNames!==!1&&this.dispatch("function-name:"+String(r.name)),e.respectFunctionProperties&&this._object(r)},_number:function(r){return a("number:"+r.toString())},_xml:function(r){return a("xml:"+r.toString())},_null:function(){return a("Null")},_undefined:function(){return a("Undefined")},_regexp:function(r){return a("regex:"+r.toString())},_uint8array:function(r){return a("uint8array:"),this.dispatch(Array.prototype.slice.call(r))},_uint8clampedarray:function(r){return a("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(r))},_int8array:function(r){return a("int8array:"),this.dispatch(Array.prototype.slice.call(r))},_uint16array:function(r){return a("uint16array:"),this.dispatch(Array.prototype.slice.call(r))},_int16array:function(r){return a("int16array:"),this.dispatch(Array.prototype.slice.call(r))},_uint32array:function(r){return a("uint32array:"),this.dispatch(Array.prototype.slice.call(r))},_int32array:function(r){return a("int32array:"),this.dispatch(Array.prototype.slice.call(r))},_float32array:function(r){return a("float32array:"),this.dispatch(Array.prototype.slice.call(r))},_float64array:function(r){return a("float64array:"),this.dispatch(Array.prototype.slice.call(r))},_arraybuffer:function(r){return a("arraybuffer:"),this.dispatch(new Uint8Array(r))},_url:function(r){return a("url:"+r.toString(),"utf8")},_map:function(r){a("map:");var i=Array.from(r);return this._array(i,e.unorderedSets!==!1)},_set:function(r){a("set:");var i=Array.from(r);return this._array(i,e.unorderedSets!==!1)},_file:function(r){return a("file:"),this.dispatch([r.name,r.size,r.type,r.lastModfied])},_blob:function(){if(e.ignoreUnknown)return a("[blob]");throw Error(`Hashing Blob objects is currently not supported (see https://github.com/puleos/object-hash/issues/26) Use "options.replacer" or "options.ignoreUnknown" -`)},_domwindow:function(){return a("domwindow")},_bigint:function(r){return a("bigint:"+r.toString())},_process:function(){return a("process")},_timer:function(){return a("timer")},_pipe:function(){return a("pipe")},_tcp:function(){return a("tcp")},_udp:function(){return a("udp")},_tty:function(){return a("tty")},_statwatcher:function(){return a("statwatcher")},_securecontext:function(){return a("securecontext")},_connection:function(){return a("connection")},_zlib:function(){return a("zlib")},_context:function(){return a("context")},_nodescript:function(){return a("nodescript")},_httpparser:function(){return a("httpparser")},_dataview:function(){return a("dataview")},_signal:function(){return a("signal")},_fsevent:function(){return a("fsevent")},_tlswrap:function(){return a("tlswrap")}}}function c2(){return{buf:"",write:function(e){this.buf+=e},end:function(e){this.buf+=e},read:function(){return this.buf}}}});var ei=E(b1=>{"use strict";var _Q=b1&&b1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(b1,"__esModule",{value:!0});b1.useCachedPromise=void 0;var $r=require("react"),E2=_Q(Fn()),qQ=Kr(),HQ=Ua(),OQ=dt(),Ma=Symbol();function PQ(e,A,t){let{initialData:a,keepPreviousData:r,...i}=t||{},s=(0,$r.useRef)(),[n,o]=(0,qQ.useCachedState)((0,E2.default)(A||[]),Ma,{cacheNamespace:(0,E2.default)(e)}),d=(0,$r.useRef)(n!==Ma?n:a),{mutate:l,revalidate:p,...g}=(0,HQ.usePromise)(e,A||[],{...i,onData(C){i.onData&&i.onData(C),s.current="promise",d.current=C,o(C)}}),c=n!==Ma?n:a,u=s.current==="promise"?d.current:r?n!==Ma?n:d.current:c,Q=(0,OQ.useLatest)(u),m=(0,$r.useCallback)(async(C,h)=>{let B;try{if(h?.optimisticUpdate){typeof h?.rollbackOnError!="function"&&h?.rollbackOnError!==!1&&(B=structuredClone(Q.current));let I=h.optimisticUpdate(Q.current);s.current="cache",d.current=I,o(I)}return await l(C,{shouldRevalidateAfter:h?.shouldRevalidateAfter})}catch(I){if(typeof h?.rollbackOnError=="function"){let w=h.rollbackOnError(Q.current);s.current="cache",d.current=w,o(w)}else h?.optimisticUpdate&&h?.rollbackOnError!==!1&&(s.current="cache",d.current=B,o(B));throw I}},[o,l,Q,d,s]);return(0,$r.useEffect)(()=>{n!==Ma&&(s.current="cache",d.current=n)},[n]),{data:u,isLoading:g.isLoading,error:g.error,mutate:m,revalidate:p}}b1.useCachedPromise=PQ});var m2=E(Ai=>{"use strict";var WQ=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,Q2=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,C2=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;Ai.format=jQ;Ai.parse=XQ;Ai.test=ZQ;function jQ(e){if(!e||typeof e!="object")throw new TypeError("argument obj is required");var A=e.subtype,t=e.suffix,a=e.type;if(!a||!Q2.test(a))throw new TypeError("invalid type");if(!A||!WQ.test(A))throw new TypeError("invalid subtype");var r=a+"/"+A;if(t){if(!Q2.test(t))throw new TypeError("invalid suffix");r+="+"+t}return r}function ZQ(e){if(!e)throw new TypeError("argument string is required");if(typeof e!="string")throw new TypeError("argument string is required to be a string");return C2.test(e.toLowerCase())}function XQ(e){if(!e)throw new TypeError("argument string is required");if(typeof e!="string")throw new TypeError("argument string is required to be a string");var A=C2.exec(e.toLowerCase());if(!A)throw new TypeError("invalid media type");var t=A[1],a=A[2],r,i=a.lastIndexOf("+");return i!==-1&&(r=a.substr(i+1),a=a.substr(0,i)),new zQ(t,a,r)}function zQ(e,A,t){this.type=e,this.subtype=A,this.suffix=t}});var f2=E(kn=>{"use strict";var B2=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,KQ=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,h2=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,$Q=/\\([\u000b\u0020-\u00ff])/g,e8=/([\\"])/g,I2=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;kn.format=A8;kn.parse=t8;function A8(e){if(!e||typeof e!="object")throw new TypeError("argument obj is required");var A=e.parameters,t=e.type;if(!t||!I2.test(t))throw new TypeError("invalid type");var a=t;if(A&&typeof A=="object")for(var r,i=Object.keys(A).sort(),s=0;s<i.length;s++){if(r=i[s],!h2.test(r))throw new TypeError("invalid parameter name");a+="; "+r+"="+r8(A[r])}return a}function t8(e){if(!e)throw new TypeError("argument string is required");var A=typeof e=="object"?a8(e):e;if(typeof A!="string")throw new TypeError("argument string is required to be a string");var t=A.indexOf(";"),a=t!==-1?A.slice(0,t).trim():A.trim();if(!I2.test(a))throw new TypeError("invalid media type");var r=new i8(a.toLowerCase());if(t!==-1){var i,s,n;for(B2.lastIndex=t;s=B2.exec(A);){if(s.index!==t)throw new TypeError("invalid parameter format");t+=s[0].length,i=s[1].toLowerCase(),n=s[2],n.charCodeAt(0)===34&&(n=n.slice(1,-1),n.indexOf("\\")!==-1&&(n=n.replace($Q,"$1"))),r.parameters[i]=n}if(t!==A.length)throw new TypeError("invalid parameter format")}return r}function a8(e){var A;if(typeof e.getHeader=="function"?A=e.getHeader("content-type"):typeof e.headers=="object"&&(A=e.headers&&e.headers["content-type"]),typeof A!="string")throw new TypeError("content-type header is missing from object");return A}function r8(e){var A=String(e);if(h2.test(A))return A;if(A.length>0&&!KQ.test(A))throw new TypeError("invalid parameter value");return'"'+A.replace(e8,"\\$1")+'"'}function i8(e){this.parameters=Object.create(null),this.type=e}});var D2=E((KN,y2)=>{"use strict";var ne={};y2.exports=ne;function w2(e){return e<0?-1:1}function s8(e){return e%1===.5&&(e&1)===0?Math.floor(e):Math.round(e)}function bt(e,A){A.unsigned||--e;let t=A.unsigned?0:-Math.pow(2,e),a=Math.pow(2,e)-1,r=A.moduloBitLength?Math.pow(2,A.moduloBitLength):Math.pow(2,e),i=A.moduloBitLength?Math.pow(2,A.moduloBitLength-1):Math.pow(2,e-1);return function(s,n){n||(n={});let o=+s;if(n.enforceRange){if(!Number.isFinite(o))throw new TypeError("Argument is not a finite number");if(o=w2(o)*Math.floor(Math.abs(o)),o<t||o>a)throw new TypeError("Argument is not in byte range");return o}if(!isNaN(o)&&n.clamp)return o=s8(o),o<t&&(o=t),o>a&&(o=a),o;if(!Number.isFinite(o)||o===0)return 0;if(o=w2(o)*Math.floor(Math.abs(o)),o=o%r,!A.unsigned&&o>=i)return o-r;if(A.unsigned){if(o<0)o+=r;else if(o===-0)return 0}return o}}ne.void=function(){};ne.boolean=function(e){return!!e};ne.byte=bt(8,{unsigned:!1});ne.octet=bt(8,{unsigned:!0});ne.short=bt(16,{unsigned:!1});ne["unsigned short"]=bt(16,{unsigned:!0});ne.long=bt(32,{unsigned:!1});ne["unsigned long"]=bt(32,{unsigned:!0});ne["long long"]=bt(32,{unsigned:!1,moduloBitLength:64});ne["unsigned long long"]=bt(32,{unsigned:!0,moduloBitLength:64});ne.double=function(e){let A=+e;if(!Number.isFinite(A))throw new TypeError("Argument is not a finite floating-point value");return A};ne["unrestricted double"]=function(e){let A=+e;if(isNaN(A))throw new TypeError("Argument is NaN");return A};ne.float=ne.double;ne["unrestricted float"]=ne["unrestricted double"];ne.DOMString=function(e,A){return A||(A={}),A.treatNullAsEmptyString&&e===null?"":String(e)};ne.ByteString=function(e,A){let t=String(e),a;for(let r=0;(a=t.codePointAt(r))!==void 0;++r)if(a>255)throw new TypeError("Argument is not a valid bytestring");return t};ne.USVString=function(e){let A=String(e),t=A.length,a=[];for(let r=0;r<t;++r){let i=A.charCodeAt(r);if(i<55296||i>57343)a.push(String.fromCodePoint(i));else if(56320<=i&&i<=57343)a.push(String.fromCodePoint(65533));else if(r===t-1)a.push(String.fromCodePoint(65533));else{let s=A.charCodeAt(r+1);if(56320<=s&&s<=57343){let n=i&1023,o=s&1023;a.push(String.fromCodePoint(65536+1024*n+o)),++r}else a.push(String.fromCodePoint(65533))}}return a.join("")};ne.Date=function(e,A){if(!(e instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(e))return e};ne.RegExp=function(e,A){return e instanceof RegExp||(e=new RegExp(e)),e}});var v2=E(($N,St)=>{"use strict";St.exports.mixin=function(A,t){let a=Object.getOwnPropertyNames(t);for(let r=0;r<a.length;++r)Object.defineProperty(A,a[r],Object.getOwnPropertyDescriptor(t,a[r]))};St.exports.wrapperSymbol=Symbol("wrapper");St.exports.implSymbol=Symbol("impl");St.exports.wrapperForImpl=function(e){return e[St.exports.wrapperSymbol]};St.exports.implForWrapper=function(e){return e[St.exports.implSymbol]}});var R2=E((eb,n8)=>{n8.exports=[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1e3,1e3],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6e3],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8e3,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8e3]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9e3],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[3e4]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13e3,13e3],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43e3,43e3],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64e3,64e3],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66e3,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[12e4,12e4],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128e3,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23e3]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149e3]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32e3]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195e3,195e3],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[4e4]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918e3,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]});var L2=E((Ab,ai)=>{"use strict";var b2=require("punycode"),N2=R2(),S1={TRANSITIONAL:0,NONTRANSITIONAL:1};function S2(e){return e.split("\0").map(function(A){return A.normalize("NFC")}).join("\0")}function F2(e){for(var A=0,t=N2.length-1;A<=t;){var a=Math.floor((A+t)/2),r=N2[a];if(r[0][0]<=e&&r[0][1]>=e)return r;r[0][0]>e?t=a-1:A=a+1}return null}var o8=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function k2(e){return e.replace(o8,"_").length}function d8(e,A,t){for(var a=!1,r="",i=k2(e),s=0;s<i;++s){var n=e.codePointAt(s),o=F2(n);switch(o[1]){case"disallowed":a=!0,r+=String.fromCodePoint(n);break;case"ignored":break;case"mapped":r+=String.fromCodePoint.apply(String,o[2]);break;case"deviation":t===S1.TRANSITIONAL?r+=String.fromCodePoint.apply(String,o[2]):r+=String.fromCodePoint(n);break;case"valid":r+=String.fromCodePoint(n);break;case"disallowed_STD3_mapped":A?(a=!0,r+=String.fromCodePoint(n)):r+=String.fromCodePoint.apply(String,o[2]);break;case"disallowed_STD3_valid":A&&(a=!0),r+=String.fromCodePoint(n);break}}return{string:r,error:a}}var p8=/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;function l8(e,A){e.substr(0,4)==="xn--"&&(e=b2.toUnicode(e),A=S1.NONTRANSITIONAL);var t=!1;(S2(e)!==e||e[3]==="-"&&e[4]==="-"||e[0]==="-"||e[e.length-1]==="-"||e.indexOf(".")!==-1||e.search(p8)===0)&&(t=!0);for(var a=k2(e),r=0;r<a;++r){var i=F2(e.codePointAt(r));if(ti===S1.TRANSITIONAL&&i[1]!=="valid"||ti===S1.NONTRANSITIONAL&&i[1]!=="valid"&&i[1]!=="deviation"){t=!0;break}}return{label:e,error:t}}function ti(e,A,t){var a=d8(e,A,t);a.string=S2(a.string);for(var r=a.string.split("."),i=0;i<r.length;++i)try{var s=l8(r[i]);r[i]=s.label,a.error=a.error||s.error}catch{a.error=!0}return{string:r.join("."),error:a.error}}ai.exports.toASCII=function(e,A,t,a){var r=ti(e,A,t),i=r.string.split(".");if(i=i.map(function(o){try{return b2.toASCII(o)}catch{return r.error=!0,o}}),a){var s=i.slice(0,i.length-1).join(".").length;(s.length>253||s.length===0)&&(r.error=!0);for(var n=0;n<i.length;++n)if(i.length>63||i.length===0){r.error=!0;break}}return r.error?null:i.join(".")};ai.exports.toUnicode=function(e,A){var t=ti(e,A,S1.NONTRANSITIONAL);return{domain:t.string,error:t.error}};ai.exports.PROCESSING_OPTIONS=S1});var OA=E((tb,aA)=>{"use strict";var F1=require("punycode"),U2=L2(),Y2={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443},J=Symbol("failure");function T2(e){return F1.ucs2.decode(e).length}function M2(e,A){let t=e[A];return isNaN(t)?void 0:String.fromCodePoint(t)}function Va(e){return e>=48&&e<=57}function Ya(e){return e>=65&&e<=90||e>=97&&e<=122}function g8(e){return Ya(e)||Va(e)}function LA(e){return Va(e)||e>=65&&e<=70||e>=97&&e<=102}function V2(e){return e==="."||e.toLowerCase()==="%2e"}function c8(e){return e=e.toLowerCase(),e===".."||e==="%2e."||e===".%2e"||e==="%2e%2e"}function u8(e,A){return Ya(e)&&(A===58||A===124)}function J2(e){return e.length===2&&Ya(e.codePointAt(0))&&(e[1]===":"||e[1]==="|")}function E8(e){return e.length===2&&Ya(e.codePointAt(0))&&e[1]===":"}function Q8(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/)!==-1}function C8(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)!==-1}function Ln(e){return Y2[e]!==void 0}function Be(e){return Ln(e.scheme)}function m8(e){return Y2[e]}function G2(e){let A=e.toString(16).toUpperCase();return A.length===1&&(A="0"+A),"%"+A}function B8(e){let A=new Buffer(e),t="";for(let a=0;a<A.length;++a)t+=G2(A[a]);return t}function h8(e){let A=new Buffer(e),t=[];for(let a=0;a<A.length;++a)A[a]!==37?t.push(A[a]):A[a]===37&&LA(A[a+1])&&LA(A[a+2])?(t.push(parseInt(A.slice(a+1,a+3).toString(),16)),a+=2):t.push(A[a]);return new Buffer(t).toString()}function ri(e){return e<=31||e>126}var I8=new Set([32,34,35,60,62,63,96,123,125]);function x2(e){return ri(e)||I8.has(e)}var f8=new Set([47,58,59,61,64,91,92,93,94,124]);function Tn(e){return x2(e)||f8.has(e)}function Kt(e,A){let t=String.fromCodePoint(e);return A(e)?B8(t):t}function w8(e){let A=10;return e.length>=2&&e.charAt(0)==="0"&&e.charAt(1).toLowerCase()==="x"?(e=e.substring(2),A=16):e.length>=2&&e.charAt(0)==="0"&&(e=e.substring(1),A=8),e===""?0:(A===10?/[^0-9]/:A===16?/[^0-9A-Fa-f]/:/[^0-7]/).test(e)?J:parseInt(e,A)}function y8(e){let A=e.split(".");if(A[A.length-1]===""&&A.length>1&&A.pop(),A.length>4)return e;let t=[];for(let i of A){if(i==="")return e;let s=w8(i);if(s===J)return e;t.push(s)}for(let i=0;i<t.length-1;++i)if(t[i]>255)return J;if(t[t.length-1]>=Math.pow(256,5-t.length))return J;let a=t.pop(),r=0;for(let i of t)a+=i*Math.pow(256,3-r),++r;return a}function D8(e){let A="",t=e;for(let a=1;a<=4;++a)A=String(t%256)+A,a!==4&&(A="."+A),t=Math.floor(t/256);return A}function v8(e){let A=[0,0,0,0,0,0,0,0],t=0,a=null,r=0;if(e=F1.ucs2.decode(e),e[r]===58){if(e[r+1]!==58)return J;r+=2,++t,a=t}for(;r<e.length;){if(t===8)return J;if(e[r]===58){if(a!==null)return J;++r,++t,a=t;continue}let i=0,s=0;for(;s<4&&LA(e[r]);)i=i*16+parseInt(M2(e,r),16),++r,++s;if(e[r]===46){if(s===0||(r-=s,t>6))return J;let n=0;for(;e[r]!==void 0;){let o=null;if(n>0)if(e[r]===46&&n<4)++r;else return J;if(!Va(e[r]))return J;for(;Va(e[r]);){let d=parseInt(M2(e,r));if(o===null)o=d;else{if(o===0)return J;o=o*10+d}if(o>255)return J;++r}A[t]=A[t]*256+o,++n,(n===2||n===4)&&++t}if(n!==4)return J;break}else if(e[r]===58){if(++r,e[r]===void 0)return J}else if(e[r]!==void 0)return J;A[t]=i,++t}if(a!==null){let i=t-a;for(t=7;t!==0&&i>0;){let s=A[a+i-1];A[a+i-1]=A[t],A[t]=s,--t,--i}}else if(a===null&&t!==8)return J;return A}function R8(e){let A="",a=b8(e).idx,r=!1;for(let i=0;i<=7;++i)if(!(r&&e[i]===0)){if(r&&(r=!1),a===i){A+=i===0?"::":":",r=!0;continue}A+=e[i].toString(16),i!==7&&(A+=":")}return A}function Un(e,A){if(e[0]==="[")return e[e.length-1]!=="]"?J:v8(e.substring(1,e.length-1));if(!A)return N8(e);let t=h8(e),a=U2.toASCII(t,!1,U2.PROCESSING_OPTIONS.NONTRANSITIONAL,!1);if(a===null||Q8(a))return J;let r=y8(a);return typeof r=="number"||r===J?r:a}function N8(e){if(C8(e))return J;let A="",t=F1.ucs2.decode(e);for(let a=0;a<t.length;++a)A+=Kt(t[a],ri);return A}function b8(e){let A=null,t=1,a=null,r=0;for(let i=0;i<e.length;++i)e[i]!==0?(r>t&&(A=a,t=r),a=null,r=0):(a===null&&(a=i),++r);return r>t&&(A=a,t=r),{idx:A,len:t}}function Mn(e){return typeof e=="number"?D8(e):e instanceof Array?"["+R8(e)+"]":e}function S8(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}function F8(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}function _2(e){let A=e.path;A.length!==0&&(e.scheme==="file"&&A.length===1&&L8(A[0])||A.pop())}function q2(e){return e.username!==""||e.password!==""}function k8(e){return e.host===null||e.host===""||e.cannotBeABaseURL||e.scheme==="file"}function L8(e){return/^[A-Za-z]:$/.test(e)}function oe(e,A,t,a,r){if(this.pointer=0,this.input=e,this.base=A||null,this.encodingOverride=t||"utf-8",this.stateOverride=r,this.url=a,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};let s=S8(this.input);s!==this.input&&(this.parseError=!0),this.input=s}let i=F8(this.input);for(i!==this.input&&(this.parseError=!0),this.input=i,this.state=r||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=F1.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){let s=this.input[this.pointer],n=isNaN(s)?void 0:String.fromCodePoint(s),o=this["parse "+this.state](s,n);if(o){if(o===J){this.failure=!0;break}}else break}}oe.prototype["parse scheme start"]=function(A,t){if(Ya(A))this.buffer+=t.toLowerCase(),this.state="scheme";else if(!this.stateOverride)this.state="no scheme",--this.pointer;else return this.parseError=!0,J;return!0};oe.prototype["parse scheme"]=function(A,t){if(g8(A)||A===43||A===45||A===46)this.buffer+=t.toLowerCase();else if(A===58){if(this.stateOverride&&(Be(this.url)&&!Ln(this.buffer)||!Be(this.url)&&Ln(this.buffer)||(q2(this.url)||this.url.port!==null)&&this.buffer==="file"||this.url.scheme==="file"&&(this.url.host===""||this.url.host===null))||(this.url.scheme=this.buffer,this.buffer="",this.stateOverride))return!1;this.url.scheme==="file"?((this.input[this.pointer+1]!==47||this.input[this.pointer+2]!==47)&&(this.parseError=!0),this.state="file"):Be(this.url)&&this.base!==null&&this.base.scheme===this.url.scheme?this.state="special relative or authority":Be(this.url)?this.state="special authority slashes":this.input[this.pointer+1]===47?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else if(!this.stateOverride)this.buffer="",this.state="no scheme",this.pointer=-1;else return this.parseError=!0,J;return!0};oe.prototype["parse no scheme"]=function(A){return this.base===null||this.base.cannotBeABaseURL&&A!==35?J:(this.base.cannotBeABaseURL&&A===35?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):this.base.scheme==="file"?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)};oe.prototype["parse special relative or authority"]=function(A){return A===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0};oe.prototype["parse path or authority"]=function(A){return A===47?this.state="authority":(this.state="path",--this.pointer),!0};oe.prototype["parse relative"]=function(A){return this.url.scheme=this.base.scheme,isNaN(A)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):A===47?this.state="relative slash":A===63?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):A===35?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):Be(this.url)&&A===92?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0};oe.prototype["parse relative slash"]=function(A){return Be(this.url)&&(A===47||A===92)?(A===92&&(this.parseError=!0),this.state="special authority ignore slashes"):A===47?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer),!0};oe.prototype["parse special authority slashes"]=function(A){return A===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0};oe.prototype["parse special authority ignore slashes"]=function(A){return A!==47&&A!==92?(this.state="authority",--this.pointer):this.parseError=!0,!0};oe.prototype["parse authority"]=function(A,t){if(A===64){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;let a=T2(this.buffer);for(let r=0;r<a;++r){let i=this.buffer.codePointAt(r);if(i===58&&!this.passwordTokenSeenFlag){this.passwordTokenSeenFlag=!0;continue}let s=Kt(i,Tn);this.passwordTokenSeenFlag?this.url.password+=s:this.url.username+=s}this.buffer=""}else if(isNaN(A)||A===47||A===63||A===35||Be(this.url)&&A===92){if(this.atFlag&&this.buffer==="")return this.parseError=!0,J;this.pointer-=T2(this.buffer)+1,this.buffer="",this.state="host"}else this.buffer+=t;return!0};oe.prototype["parse hostname"]=oe.prototype["parse host"]=function(A,t){if(this.stateOverride&&this.url.scheme==="file")--this.pointer,this.state="file host";else if(A===58&&!this.arrFlag){if(this.buffer==="")return this.parseError=!0,J;let a=Un(this.buffer,Be(this.url));if(a===J)return J;if(this.url.host=a,this.buffer="",this.state="port",this.stateOverride==="hostname")return!1}else if(isNaN(A)||A===47||A===63||A===35||Be(this.url)&&A===92){if(--this.pointer,Be(this.url)&&this.buffer==="")return this.parseError=!0,J;if(this.stateOverride&&this.buffer===""&&(q2(this.url)||this.url.port!==null))return this.parseError=!0,!1;let a=Un(this.buffer,Be(this.url));if(a===J)return J;if(this.url.host=a,this.buffer="",this.state="path start",this.stateOverride)return!1}else A===91?this.arrFlag=!0:A===93&&(this.arrFlag=!1),this.buffer+=t;return!0};oe.prototype["parse port"]=function(A,t){if(Va(A))this.buffer+=t;else if(isNaN(A)||A===47||A===63||A===35||Be(this.url)&&A===92||this.stateOverride){if(this.buffer!==""){let a=parseInt(this.buffer);if(a>Math.pow(2,16)-1)return this.parseError=!0,J;this.url.port=a===m8(this.url.scheme)?null:a,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}else return this.parseError=!0,J;return!0};var U8=new Set([47,92,63,35]);oe.prototype["parse file"]=function(A){return this.url.scheme="file",A===47||A===92?(A===92&&(this.parseError=!0),this.state="file slash"):this.base!==null&&this.base.scheme==="file"?isNaN(A)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):A===63?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):A===35?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(this.input.length-this.pointer-1===0||!u8(A,this.input[this.pointer+1])||this.input.length-this.pointer-1>=2&&!U8.has(this.input[this.pointer+2])?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),_2(this.url)):this.parseError=!0,this.state="path",--this.pointer):(this.state="path",--this.pointer),!0};oe.prototype["parse file slash"]=function(A){return A===47||A===92?(A===92&&(this.parseError=!0),this.state="file host"):(this.base!==null&&this.base.scheme==="file"&&(E8(this.base.path[0])?this.url.path.push(this.base.path[0]):this.url.host=this.base.host),this.state="path",--this.pointer),!0};oe.prototype["parse file host"]=function(A,t){if(isNaN(A)||A===47||A===92||A===63||A===35)if(--this.pointer,!this.stateOverride&&J2(this.buffer))this.parseError=!0,this.state="path";else if(this.buffer===""){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let a=Un(this.buffer,Be(this.url));if(a===J)return J;if(a==="localhost"&&(a=""),this.url.host=a,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=t;return!0};oe.prototype["parse path start"]=function(A){return Be(this.url)?(A===92&&(this.parseError=!0),this.state="path",A!==47&&A!==92&&--this.pointer):!this.stateOverride&&A===63?(this.url.query="",this.state="query"):!this.stateOverride&&A===35?(this.url.fragment="",this.state="fragment"):A!==void 0&&(this.state="path",A!==47&&--this.pointer),!0};oe.prototype["parse path"]=function(A){if(isNaN(A)||A===47||Be(this.url)&&A===92||!this.stateOverride&&(A===63||A===35)){if(Be(this.url)&&A===92&&(this.parseError=!0),c8(this.buffer)?(_2(this.url),A!==47&&!(Be(this.url)&&A===92)&&this.url.path.push("")):V2(this.buffer)&&A!==47&&!(Be(this.url)&&A===92)?this.url.path.push(""):V2(this.buffer)||(this.url.scheme==="file"&&this.url.path.length===0&&J2(this.buffer)&&(this.url.host!==""&&this.url.host!==null&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)),this.buffer="",this.url.scheme==="file"&&(A===void 0||A===63||A===35))for(;this.url.path.length>1&&this.url.path[0]==="";)this.parseError=!0,this.url.path.shift();A===63&&(this.url.query="",this.state="query"),A===35&&(this.url.fragment="",this.state="fragment")}else A===37&&(!LA(this.input[this.pointer+1])||!LA(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=Kt(A,x2);return!0};oe.prototype["parse cannot-be-a-base-URL path"]=function(A){return A===63?(this.url.query="",this.state="query"):A===35?(this.url.fragment="",this.state="fragment"):(!isNaN(A)&&A!==37&&(this.parseError=!0),A===37&&(!LA(this.input[this.pointer+1])||!LA(this.input[this.pointer+2]))&&(this.parseError=!0),isNaN(A)||(this.url.path[0]=this.url.path[0]+Kt(A,ri))),!0};oe.prototype["parse query"]=function(A,t){if(isNaN(A)||!this.stateOverride&&A===35){(!Be(this.url)||this.url.scheme==="ws"||this.url.scheme==="wss")&&(this.encodingOverride="utf-8");let a=new Buffer(this.buffer);for(let r=0;r<a.length;++r)a[r]<33||a[r]>126||a[r]===34||a[r]===35||a[r]===60||a[r]===62?this.url.query+=G2(a[r]):this.url.query+=String.fromCodePoint(a[r]);this.buffer="",A===35&&(this.url.fragment="",this.state="fragment")}else A===37&&(!LA(this.input[this.pointer+1])||!LA(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=t;return!0};oe.prototype["parse fragment"]=function(A){return isNaN(A)||(A===0?this.parseError=!0:(A===37&&(!LA(this.input[this.pointer+1])||!LA(this.input[this.pointer+2]))&&(this.parseError=!0),this.url.fragment+=Kt(A,ri))),!0};function T8(e,A){let t=e.scheme+":";if(e.host!==null?(t+="//",(e.username!==""||e.password!=="")&&(t+=e.username,e.password!==""&&(t+=":"+e.password),t+="@"),t+=Mn(e.host),e.port!==null&&(t+=":"+e.port)):e.host===null&&e.scheme==="file"&&(t+="//"),e.cannotBeABaseURL)t+=e.path[0];else for(let a of e.path)t+="/"+a;return e.query!==null&&(t+="?"+e.query),!A&&e.fragment!==null&&(t+="#"+e.fragment),t}function M8(e){let A=e.scheme+"://";return A+=Mn(e.host),e.port!==null&&(A+=":"+e.port),A}aA.exports.serializeURL=T8;aA.exports.serializeURLOrigin=function(e){switch(e.scheme){case"blob":try{return aA.exports.serializeURLOrigin(aA.exports.parseURL(e.path[0]))}catch{return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return M8({scheme:e.scheme,host:e.host,port:e.port});case"file":return"file://";default:return"null"}};aA.exports.basicURLParse=function(e,A){A===void 0&&(A={});let t=new oe(e,A.baseURL,A.encodingOverride,A.url,A.stateOverride);return t.failure?"failure":t.url};aA.exports.setTheUsername=function(e,A){e.username="";let t=F1.ucs2.decode(A);for(let a=0;a<t.length;++a)e.username+=Kt(t[a],Tn)};aA.exports.setThePassword=function(e,A){e.password="";let t=F1.ucs2.decode(A);for(let a=0;a<t.length;++a)e.password+=Kt(t[a],Tn)};aA.exports.serializeHost=Mn;aA.exports.cannotHaveAUsernamePasswordPort=k8;aA.exports.serializeInteger=function(e){return String(e)};aA.exports.parseURL=function(e,A){return A===void 0&&(A={}),aA.exports.basicURLParse(e,{baseURL:A.baseURL,encodingOverride:A.encodingOverride})}});var O2=E(H2=>{"use strict";var de=OA();H2.implementation=class{constructor(A){let t=A[0],a=A[1],r=null;if(a!==void 0&&(r=de.basicURLParse(a),r==="failure"))throw new TypeError("Invalid base URL");let i=de.basicURLParse(t,{baseURL:r});if(i==="failure")throw new TypeError("Invalid URL");this._url=i}get href(){return de.serializeURL(this._url)}set href(A){let t=de.basicURLParse(A);if(t==="failure")throw new TypeError("Invalid URL");this._url=t}get origin(){return de.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(A){de.basicURLParse(A+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(A){de.cannotHaveAUsernamePasswordPort(this._url)||de.setTheUsername(this._url,A)}get password(){return this._url.password}set password(A){de.cannotHaveAUsernamePasswordPort(this._url)||de.setThePassword(this._url,A)}get host(){let A=this._url;return A.host===null?"":A.port===null?de.serializeHost(A.host):de.serializeHost(A.host)+":"+de.serializeInteger(A.port)}set host(A){this._url.cannotBeABaseURL||de.basicURLParse(A,{url:this._url,stateOverride:"host"})}get hostname(){return this._url.host===null?"":de.serializeHost(this._url.host)}set hostname(A){this._url.cannotBeABaseURL||de.basicURLParse(A,{url:this._url,stateOverride:"hostname"})}get port(){return this._url.port===null?"":de.serializeInteger(this._url.port)}set port(A){de.cannotHaveAUsernamePasswordPort(this._url)||(A===""?this._url.port=null:de.basicURLParse(A,{url:this._url,stateOverride:"port"}))}get pathname(){return this._url.cannotBeABaseURL?this._url.path[0]:this._url.path.length===0?"":"/"+this._url.path.join("/")}set pathname(A){this._url.cannotBeABaseURL||(this._url.path=[],de.basicURLParse(A,{url:this._url,stateOverride:"path start"}))}get search(){return this._url.query===null||this._url.query===""?"":"?"+this._url.query}set search(A){let t=this._url;if(A===""){t.query=null;return}let a=A[0]==="?"?A.substring(1):A;t.query="",de.basicURLParse(a,{url:t,stateOverride:"query"})}get hash(){return this._url.fragment===null||this._url.fragment===""?"":"#"+this._url.fragment}set hash(A){if(A===""){this._url.fragment=null;return}let t=A[0]==="#"?A.substring(1):A;this._url.fragment="",de.basicURLParse(t,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}});var j2=E((ib,Ja)=>{"use strict";var mA=D2(),W2=v2(),P2=O2(),z=W2.implSymbol;function ye(e){if(!this||this[z]||!(this instanceof ye))throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");if(arguments.length<1)throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.");let A=[];for(let t=0;t<arguments.length&&t<2;++t)A[t]=arguments[t];A[0]=mA.USVString(A[0]),A[1]!==void 0&&(A[1]=mA.USVString(A[1])),Ja.exports.setup(this,A)}ye.prototype.toJSON=function(){if(!this||!Ja.exports.is(this))throw new TypeError("Illegal invocation");let A=[];for(let t=0;t<arguments.length&&t<0;++t)A[t]=arguments[t];return this[z].toJSON.apply(this[z],A)};Object.defineProperty(ye.prototype,"href",{get(){return this[z].href},set(e){e=mA.USVString(e),this[z].href=e},enumerable:!0,configurable:!0});ye.prototype.toString=function(){if(!this||!Ja.exports.is(this))throw new TypeError("Illegal invocation");return this.href};Object.defineProperty(ye.prototype,"origin",{get(){return this[z].origin},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"protocol",{get(){return this[z].protocol},set(e){e=mA.USVString(e),this[z].protocol=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"username",{get(){return this[z].username},set(e){e=mA.USVString(e),this[z].username=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"password",{get(){return this[z].password},set(e){e=mA.USVString(e),this[z].password=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"host",{get(){return this[z].host},set(e){e=mA.USVString(e),this[z].host=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"hostname",{get(){return this[z].hostname},set(e){e=mA.USVString(e),this[z].hostname=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"port",{get(){return this[z].port},set(e){e=mA.USVString(e),this[z].port=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"pathname",{get(){return this[z].pathname},set(e){e=mA.USVString(e),this[z].pathname=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"search",{get(){return this[z].search},set(e){e=mA.USVString(e),this[z].search=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"hash",{get(){return this[z].hash},set(e){e=mA.USVString(e),this[z].hash=e},enumerable:!0,configurable:!0});Ja.exports={is(e){return!!e&&e[z]instanceof P2.implementation},create(e,A){let t=Object.create(ye.prototype);return this.setup(t,e,A),t},setup(e,A,t){t||(t={}),t.wrapper=e,e[z]=new P2.implementation(A,t),e[z][W2.wrapperSymbol]=e},interface:ye,expose:{Window:{URL:ye},Worker:{URL:ye}}}});var Z2=E(PA=>{"use strict";PA.URL=j2().interface;PA.serializeURL=OA().serializeURL;PA.serializeURLOrigin=OA().serializeURLOrigin;PA.basicURLParse=OA().basicURLParse;PA.setTheUsername=OA().setTheUsername;PA.setThePassword=OA().setThePassword;PA.serializeHost=OA().serializeHost;PA.serializeInteger=OA().serializeInteger;PA.parseURL=OA().parseURL});var nl=E((WA,sl)=>{"use strict";Object.defineProperty(WA,"__esModule",{value:!0});function U1(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var UA=U1(require("stream")),$2=U1(require("http")),si=U1(require("url")),el=U1(Z2()),V8=U1(require("https")),$t=U1(require("zlib")),Y8=UA.Readable,pt=Symbol("buffer"),Vn=Symbol("type"),xa=class e{constructor(){this[Vn]="";let A=arguments[0],t=arguments[1],a=[],r=0;if(A){let s=A,n=Number(s.length);for(let o=0;o<n;o++){let d=s[o],l;d instanceof Buffer?l=d:ArrayBuffer.isView(d)?l=Buffer.from(d.buffer,d.byteOffset,d.byteLength):d instanceof ArrayBuffer?l=Buffer.from(d):d instanceof e?l=d[pt]:l=Buffer.from(typeof d=="string"?d:String(d)),r+=l.length,a.push(l)}}this[pt]=Buffer.concat(a);let i=t&&t.type!==void 0&&String(t.type).toLowerCase();i&&!/[^\u0020-\u007E]/.test(i)&&(this[Vn]=i)}get size(){return this[pt].length}get type(){return this[Vn]}text(){return Promise.resolve(this[pt].toString())}arrayBuffer(){let A=this[pt],t=A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength);return Promise.resolve(t)}stream(){let A=new Y8;return A._read=function(){},A.push(this[pt]),A.push(null),A}toString(){return"[object Blob]"}slice(){let A=this.size,t=arguments[0],a=arguments[1],r,i;t===void 0?r=0:t<0?r=Math.max(A+t,0):r=Math.min(t,A),a===void 0?i=A:a<0?i=Math.max(A+a,0):i=Math.min(a,A);let s=Math.max(i-r,0),o=this[pt].slice(r,r+s),d=new e([],{type:arguments[2]});return d[pt]=o,d}};Object.defineProperties(xa.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});Object.defineProperty(xa.prototype,Symbol.toStringTag,{value:"Blob",writable:!1,enumerable:!1,configurable:!0});function Fe(e,A,t){Error.call(this,e),this.message=e,this.type=A,t&&(this.code=this.errno=t.code),Error.captureStackTrace(this,this.constructor)}Fe.prototype=Object.create(Error.prototype);Fe.prototype.constructor=Fe;Fe.prototype.name="FetchError";var xn;try{xn=require("encoding").convert}catch{}var gt=Symbol("Body internals"),X2=UA.PassThrough;function De(e){var A=this,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=t.size;let r=a===void 0?0:a;var i=t.timeout;let s=i===void 0?0:i;e==null?e=null:Al(e)?e=Buffer.from(e.toString()):Oa(e)||Buffer.isBuffer(e)||(Object.prototype.toString.call(e)==="[object ArrayBuffer]"?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof UA||(e=Buffer.from(String(e)))),this[gt]={body:e,disturbed:!1,error:null},this.size=r,this.timeout=s,e instanceof UA&&e.on("error",function(n){let o=n.name==="AbortError"?n:new Fe(`Invalid response body while trying to fetch ${A.url}: ${n.message}`,"system",n);A[gt].error=o})}De.prototype={get body(){return this[gt].body},get bodyUsed(){return this[gt].disturbed},arrayBuffer(){return k1.call(this).then(function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)})},blob(){let e=this.headers&&this.headers.get("content-type")||"";return k1.call(this).then(function(A){return Object.assign(new xa([],{type:e.toLowerCase()}),{[pt]:A})})},json(){var e=this;return k1.call(this).then(function(A){try{return JSON.parse(A.toString())}catch(t){return De.Promise.reject(new Fe(`invalid json response body at ${e.url} reason: ${t.message}`,"invalid-json"))}})},text(){return k1.call(this).then(function(e){return e.toString()})},buffer(){return k1.call(this)},textConverted(){var e=this;return k1.call(this).then(function(A){return J8(A,e.headers)})}};Object.defineProperties(De.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});De.mixIn=function(e){for(let A of Object.getOwnPropertyNames(De.prototype))if(!(A in e)){let t=Object.getOwnPropertyDescriptor(De.prototype,A);Object.defineProperty(e,A,t)}};function k1(){var e=this;if(this[gt].disturbed)return De.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[gt].disturbed=!0,this[gt].error)return De.Promise.reject(this[gt].error);let A=this.body;if(A===null)return De.Promise.resolve(Buffer.alloc(0));if(Oa(A)&&(A=A.stream()),Buffer.isBuffer(A))return De.Promise.resolve(A);if(!(A instanceof UA))return De.Promise.resolve(Buffer.alloc(0));let t=[],a=0,r=!1;return new De.Promise(function(i,s){let n;e.timeout&&(n=setTimeout(function(){r=!0,s(new Fe(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))},e.timeout)),A.on("error",function(o){o.name==="AbortError"?(r=!0,s(o)):s(new Fe(`Invalid response body while trying to fetch ${e.url}: ${o.message}`,"system",o))}),A.on("data",function(o){if(!(r||o===null)){if(e.size&&a+o.length>e.size){r=!0,s(new Fe(`content size at ${e.url} over limit: ${e.size}`,"max-size"));return}a+=o.length,t.push(o)}}),A.on("end",function(){if(!r){clearTimeout(n);try{i(Buffer.concat(t,a))}catch(o){s(new Fe(`Could not create Buffer from response body for ${e.url}: ${o.message}`,"system",o))}}})})}function J8(e,A){if(typeof xn!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let t=A.get("content-type"),a="utf-8",r,i;return t&&(r=/charset=([^;]*)/i.exec(t)),i=e.slice(0,1024).toString(),!r&&i&&(r=/<meta.+?charset=(['"])(.+?)\1/i.exec(i)),!r&&i&&(r=/<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(i),r||(r=/<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i.exec(i),r&&r.pop()),r&&(r=/charset=(.*)/i.exec(r.pop()))),!r&&i&&(r=/<\?xml.+?encoding=(['"])(.+?)\1/i.exec(i)),r&&(a=r.pop(),(a==="gb2312"||a==="gbk")&&(a="gb18030")),xn(e,"UTF-8",a).toString()}function Al(e){return typeof e!="object"||typeof e.append!="function"||typeof e.delete!="function"||typeof e.get!="function"||typeof e.getAll!="function"||typeof e.has!="function"||typeof e.set!="function"?!1:e.constructor.name==="URLSearchParams"||Object.prototype.toString.call(e)==="[object URLSearchParams]"||typeof e.sort=="function"}function Oa(e){return typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&typeof e.constructor=="function"&&typeof e.constructor.name=="string"&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function tl(e){let A,t,a=e.body;if(e.bodyUsed)throw new Error("cannot clone body after it is used");return a instanceof UA&&typeof a.getBoundary!="function"&&(A=new X2,t=new X2,a.pipe(A),a.pipe(t),e[gt].body=A,a=t),a}function al(e){return e===null?null:typeof e=="string"?"text/plain;charset=UTF-8":Al(e)?"application/x-www-form-urlencoded;charset=UTF-8":Oa(e)?e.type||null:Buffer.isBuffer(e)||Object.prototype.toString.call(e)==="[object ArrayBuffer]"||ArrayBuffer.isView(e)?null:typeof e.getBoundary=="function"?`multipart/form-data;boundary=${e.getBoundary()}`:e instanceof UA?null:"text/plain;charset=UTF-8"}function rl(e){let A=e.body;return A===null?0:Oa(A)?A.size:Buffer.isBuffer(A)?A.length:A&&typeof A.getLengthSync=="function"&&(A._lengthRetrievers&&A._lengthRetrievers.length==0||A.hasKnownLength&&A.hasKnownLength())?A.getLengthSync():null}function G8(e,A){let t=A.body;t===null?e.end():Oa(t)?t.stream().pipe(e):Buffer.isBuffer(t)?(e.write(t),e.end()):t.pipe(e)}De.Promise=global.Promise;var il=/[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/,_n=/[^\t\x20-\x7e\x80-\xff]/;function Ga(e){if(e=`${e}`,il.test(e)||e==="")throw new TypeError(`${e} is not a legal HTTP header name`)}function z2(e){if(e=`${e}`,_n.test(e))throw new TypeError(`${e} is not a legal HTTP header value`)}function L1(e,A){A=A.toLowerCase();for(let t in e)if(t.toLowerCase()===A)return t}var ge=Symbol("map"),hA=class e{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0;if(this[ge]=Object.create(null),A instanceof e){let t=A.raw(),a=Object.keys(t);for(let r of a)for(let i of t[r])this.append(r,i);return}if(A!=null)if(typeof A=="object"){let t=A[Symbol.iterator];if(t!=null){if(typeof t!="function")throw new TypeError("Header pairs must be iterable");let a=[];for(let r of A){if(typeof r!="object"||typeof r[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");a.push(Array.from(r))}for(let r of a){if(r.length!==2)throw new TypeError("Each header pair must be a name/value tuple");this.append(r[0],r[1])}}else for(let a of Object.keys(A)){let r=A[a];this.append(a,r)}}else throw new TypeError("Provided initializer must be an object")}get(A){A=`${A}`,Ga(A);let t=L1(this[ge],A);return t===void 0?null:this[ge][t].join(", ")}forEach(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,a=qn(this),r=0;for(;r<a.length;){var i=a[r];let s=i[0],n=i[1];A.call(t,n,s,this),a=qn(this),r++}}set(A,t){A=`${A}`,t=`${t}`,Ga(A),z2(t);let a=L1(this[ge],A);this[ge][a!==void 0?a:A]=[t]}append(A,t){A=`${A}`,t=`${t}`,Ga(A),z2(t);let a=L1(this[ge],A);a!==void 0?this[ge][a].push(t):this[ge][A]=[t]}has(A){return A=`${A}`,Ga(A),L1(this[ge],A)!==void 0}delete(A){A=`${A}`,Ga(A);let t=L1(this[ge],A);t!==void 0&&delete this[ge][t]}raw(){return this[ge]}keys(){return Yn(this,"key")}values(){return Yn(this,"value")}[Symbol.iterator](){return Yn(this,"key+value")}};hA.prototype.entries=hA.prototype[Symbol.iterator];Object.defineProperty(hA.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(hA.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});function qn(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"key+value";return Object.keys(e[ge]).sort().map(A==="key"?function(a){return a.toLowerCase()}:A==="value"?function(a){return e[ge][a].join(", ")}:function(a){return[a.toLowerCase(),e[ge][a].join(", ")]})}var Hn=Symbol("internal");function Yn(e,A){let t=Object.create(On);return t[Hn]={target:e,kind:A,index:0},t}var On=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==On)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[Hn];let A=e.target,t=e.kind,a=e.index,r=qn(A,t),i=r.length;return a>=i?{value:void 0,done:!0}:(this[Hn].index=a+1,{value:r[a],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(On,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});function x8(e){let A=Object.assign({__proto__:null},e[ge]),t=L1(e[ge],"Host");return t!==void 0&&(A[t]=A[t][0]),A}function _8(e){let A=new hA;for(let t of Object.keys(e))if(!il.test(t))if(Array.isArray(e[t]))for(let a of e[t])_n.test(a)||(A[ge][t]===void 0?A[ge][t]=[a]:A[ge][t].push(a));else _n.test(e[t])||(A[ge][t]=[e[t]]);return A}var Ft=Symbol("Response internals"),q8=$2.STATUS_CODES,BA=class e{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};De.call(this,A,t);let a=t.status||200,r=new hA(t.headers);if(A!=null&&!r.has("Content-Type")){let i=al(A);i&&r.append("Content-Type",i)}this[Ft]={url:t.url,status:a,statusText:t.statusText||q8[a],headers:r,counter:t.counter}}get url(){return this[Ft].url||""}get status(){return this[Ft].status}get ok(){return this[Ft].status>=200&&this[Ft].status<300}get redirected(){return this[Ft].counter>0}get statusText(){return this[Ft].statusText}get headers(){return this[Ft].headers}clone(){return new e(tl(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}};De.mixIn(BA.prototype);Object.defineProperties(BA.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});Object.defineProperty(BA.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});var lt=Symbol("Request internals"),H8=si.URL||el.URL,O8=si.parse,P8=si.format;function Jn(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)&&(e=new H8(e).toString()),O8(e)}var W8="destroy"in UA.Readable.prototype;function ii(e){return typeof e=="object"&&typeof e[lt]=="object"}function j8(e){let A=e&&typeof e=="object"&&Object.getPrototypeOf(e);return!!(A&&A.constructor.name==="AbortSignal")}var Lt=class e{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a;ii(A)?a=Jn(A.url):(A&&A.href?a=Jn(A.href):a=Jn(`${A}`),A={});let r=t.method||A.method||"GET";if(r=r.toUpperCase(),(t.body!=null||ii(A)&&A.body!==null)&&(r==="GET"||r==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let i=t.body!=null?t.body:ii(A)&&A.body!==null?tl(A):null;De.call(this,i,{timeout:t.timeout||A.timeout||0,size:t.size||A.size||0});let s=new hA(t.headers||A.headers||{});if(i!=null&&!s.has("Content-Type")){let o=al(i);o&&s.append("Content-Type",o)}let n=ii(A)?A.signal:null;if("signal"in t&&(n=t.signal),n!=null&&!j8(n))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[lt]={method:r,redirect:t.redirect||A.redirect||"follow",headers:s,parsedURL:a,signal:n},this.follow=t.follow!==void 0?t.follow:A.follow!==void 0?A.follow:20,this.compress=t.compress!==void 0?t.compress:A.compress!==void 0?A.compress:!0,this.counter=t.counter||A.counter||0,this.agent=t.agent||A.agent}get method(){return this[lt].method}get url(){return P8(this[lt].parsedURL)}get headers(){return this[lt].headers}get redirect(){return this[lt].redirect}get signal(){return this[lt].signal}clone(){return new e(this)}};De.mixIn(Lt.prototype);Object.defineProperty(Lt.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(Lt.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}});function Z8(e){let A=e[lt].parsedURL,t=new hA(e[lt].headers);if(t.has("Accept")||t.set("Accept","*/*"),!A.protocol||!A.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(A.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof UA.Readable&&!W8)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let a=null;if(e.body==null&&/^(POST|PUT)$/i.test(e.method)&&(a="0"),e.body!=null){let i=rl(e);typeof i=="number"&&(a=String(i))}a&&t.set("Content-Length",a),t.has("User-Agent")||t.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!t.has("Accept-Encoding")&&t.set("Accept-Encoding","gzip,deflate");let r=e.agent;return typeof r=="function"&&(r=r(A)),!t.has("Connection")&&!r&&t.set("Connection","close"),Object.assign({},A,{method:e.method,headers:x8(t),agent:r})}function qa(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}qa.prototype=Object.create(Error.prototype);qa.prototype.constructor=qa;qa.prototype.name="AbortError";var Ha=si.URL||el.URL,K2=UA.PassThrough,X8=function(A,t){let a=new Ha(t).hostname,r=new Ha(A).hostname;return a===r||a[a.length-r.length-1]==="."&&a.endsWith(r)},z8=function(A,t){let a=new Ha(t).protocol,r=new Ha(A).protocol;return a===r};function kt(e,A){if(!kt.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return De.Promise=kt.Promise,new kt.Promise(function(t,a){let r=new Lt(e,A),i=Z8(r),s=(i.protocol==="https:"?V8:$2).request,n=r.signal,o=null,d=function(){let Q=new qa("The user aborted a request.");a(Q),r.body&&r.body instanceof UA.Readable&&Gn(r.body,Q),!(!o||!o.body)&&o.body.emit("error",Q)};if(n&&n.aborted){d();return}let l=function(){d(),c()},p=s(i),g;n&&n.addEventListener("abort",l);function c(){p.abort(),n&&n.removeEventListener("abort",l),clearTimeout(g)}r.timeout&&p.once("socket",function(u){g=setTimeout(function(){a(new Fe(`network timeout at: ${r.url}`,"request-timeout")),c()},r.timeout)}),p.on("error",function(u){a(new Fe(`request to ${r.url} failed, reason: ${u.message}`,"system",u)),o&&o.body&&Gn(o.body,u),c()}),K8(p,function(u){n&&n.aborted||o&&o.body&&Gn(o.body,u)}),parseInt(process.version.substring(1))<14&&p.on("socket",function(u){u.addListener("close",function(Q){let m=u.listenerCount("data")>0;if(o&&m&&!Q&&!(n&&n.aborted)){let C=new Error("Premature close");C.code="ERR_STREAM_PREMATURE_CLOSE",o.body.emit("error",C)}})}),p.on("response",function(u){clearTimeout(g);let Q=_8(u.headers);if(kt.isRedirect(u.statusCode)){let I=Q.get("Location"),w=null;try{w=I===null?null:new Ha(I,r.url).toString()}catch{if(r.redirect!=="manual"){a(new Fe(`uri requested responds with an invalid redirect URL: ${I}`,"invalid-redirect")),c();return}}switch(r.redirect){case"error":a(new Fe(`uri requested responds with a redirect, redirect mode is set to error: ${r.url}`,"no-redirect")),c();return;case"manual":if(w!==null)try{Q.set("Location",w)}catch(S){a(S)}break;case"follow":if(w===null)break;if(r.counter>=r.follow){a(new Fe(`maximum redirect reached at: ${r.url}`,"max-redirect")),c();return}let v={headers:new hA(r.headers),follow:r.follow,counter:r.counter+1,agent:r.agent,compress:r.compress,method:r.method,body:r.body,signal:r.signal,timeout:r.timeout,size:r.size};if(!X8(r.url,w)||!z8(r.url,w))for(let S of["authorization","www-authenticate","cookie","cookie2"])v.headers.delete(S);if(u.statusCode!==303&&r.body&&rl(r)===null){a(new Fe("Cannot follow redirect with body being a readable stream","unsupported-redirect")),c();return}(u.statusCode===303||(u.statusCode===301||u.statusCode===302)&&r.method==="POST")&&(v.method="GET",v.body=void 0,v.headers.delete("content-length")),t(kt(new Lt(w,v))),c();return}}u.once("end",function(){n&&n.removeEventListener("abort",l)});let m=u.pipe(new K2),C={url:r.url,status:u.statusCode,statusText:u.statusMessage,headers:Q,size:r.size,timeout:r.timeout,counter:r.counter},h=Q.get("Content-Encoding");if(!r.compress||r.method==="HEAD"||h===null||u.statusCode===204||u.statusCode===304){o=new BA(m,C),t(o);return}let B={flush:$t.Z_SYNC_FLUSH,finishFlush:$t.Z_SYNC_FLUSH};if(h=="gzip"||h=="x-gzip"){m=m.pipe($t.createGunzip(B)),o=new BA(m,C),t(o);return}if(h=="deflate"||h=="x-deflate"){let I=u.pipe(new K2);I.once("data",function(w){(w[0]&15)===8?m=m.pipe($t.createInflate()):m=m.pipe($t.createInflateRaw()),o=new BA(m,C),t(o)}),I.on("end",function(){o||(o=new BA(m,C),t(o))});return}if(h=="br"&&typeof $t.createBrotliDecompress=="function"){m=m.pipe($t.createBrotliDecompress()),o=new BA(m,C),t(o);return}o=new BA(m,C),t(o)}),G8(p,r)})}function K8(e,A){let t;e.on("socket",function(a){t=a}),e.on("response",function(a){let r=a.headers;r["transfer-encoding"]==="chunked"&&!r["content-length"]&&a.once("close",function(i){if(t&&t.listenerCount("data")>0&&!i){let n=new Error("Premature close");n.code="ERR_STREAM_PREMATURE_CLOSE",A(n)}})})}function Gn(e,A){e.destroy?e.destroy(A):(e.emit("error",A),e.end())}kt.isRedirect=function(e){return e===301||e===302||e===303||e===307||e===308};kt.Promise=global.Promise;sl.exports=WA=kt;Object.defineProperty(WA,"__esModule",{value:!0});WA.default=WA;WA.Headers=hA;WA.Request=Lt;WA.Response=BA;WA.FetchError=Fe});var dl=E((e1,ol)=>{var Pa=nl(),$8=Pa.default||Pa,ni=function(e,A){return/^\/\//.test(e)&&(e="https:"+e),$8.call(this,e,A)};ni.ponyfill=!0;ol.exports=e1=ni;e1.fetch=ni;e1.Headers=Pa.Headers;e1.Request=Pa.Request;e1.Response=Pa.Response;e1.default=ni});var gl=E(T1=>{"use strict";var ll=T1&&T1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(T1,"__esModule",{value:!0});T1.useFetch=void 0;var pl=require("react"),e5=ll(m2()),A5=ll(f2()),t5=ei(),a5=dt(),r5=dl();function i5(e){if(e){let A=A5.default.parse(e),t=e5.default.parse(A.type);if(t.subtype==="json"||t.suffix==="json"||t.suffix&&/\bjson\b/i.test(t.suffix)||t.subtype&&/\bjson\b/i.test(t.subtype))return!0}return!1}async function s5(e){if(!e.ok)throw new Error(e.statusText);let A=e.headers.get("content-type");return A&&i5(A)?await e.json():await e.text()}function n5(e,A){let{parseResponse:t,initialData:a,execute:r,keepPreviousData:i,onError:s,onData:n,onWillExecute:o,...d}=A||{},l={initialData:a,execute:r,keepPreviousData:i,onError:s,onData:n,onWillExecute:o},p=(0,a5.useLatest)(t||s5),g=(0,pl.useRef)(),c=(0,pl.useCallback)(async(u,Q)=>{let m=await(0,r5.fetch)(u,{signal:g.current?.signal,...Q});return await p.current(m)},[p]);return(0,t5.useCachedPromise)(c,[e,d],{...l,abortable:g})}T1.useFetch=n5});var cl=E(A1=>{"use strict";Object.defineProperty(A1,"__esModule",{value:!0});A1.signals=void 0;A1.signals=[];A1.signals.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&A1.signals.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&A1.signals.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT")});var ul=E(jA=>{"use strict";var oi;Object.defineProperty(jA,"__esModule",{value:!0});jA.unload=jA.load=jA.onExit=jA.signals=void 0;var di=cl();Object.defineProperty(jA,"signals",{enumerable:!0,get:function(){return di.signals}});var pi=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",Pn=Symbol.for("signal-exit emitter"),Wn=globalThis,o5=Object.defineProperty.bind(Object),jn=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Wn[Pn])return Wn[Pn];o5(Wn,Pn,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(A,t){this.listeners[A].push(t)}removeListener(A,t){let a=this.listeners[A],r=a.indexOf(t);r!==-1&&(r===0&&a.length===1?a.length=0:a.splice(r,1))}emit(A,t,a){if(this.emitted[A])return!1;this.emitted[A]=!0;let r=!1;for(let i of this.listeners[A])r=i(t,a)===!0||r;return A==="exit"&&(r=this.emit("afterExit",t,a)||r),r}},li=class{},d5=e=>({onExit(A,t){return e.onExit(A,t)},load(){return e.load()},unload(){return e.unload()}}),Zn=class extends li{onExit(){return()=>{}}load(){}unload(){}},Xn=class extends li{#e=zn.platform==="win32"?"SIGINT":"SIGHUP";#a=new jn;#A;#t;#r;#s={};#i=!1;constructor(A){super(),this.#A=A,this.#s={};for(let t of di.signals)this.#s[t]=()=>{let a=this.#A.listeners(t),{count:r}=this.#a,i=A;if(typeof i.__signal_exit_emitter__=="object"&&typeof i.__signal_exit_emitter__.count=="number"&&(r+=i.__signal_exit_emitter__.count),a.length===r){this.unload();let s=this.#a.emit("exit",null,t),n=t==="SIGHUP"?this.#e:t;s||A.kill(A.pid,n)}};this.#r=A.reallyExit,this.#t=A.emit}onExit(A,t){if(!pi(this.#A))return()=>{};this.#i===!1&&this.load();let a=t?.alwaysLast?"afterExit":"exit";return this.#a.on(a,A),()=>{this.#a.removeListener(a,A),this.#a.listeners.exit.length===0&&this.#a.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#i){this.#i=!0,this.#a.count+=1;for(let A of di.signals)try{let t=this.#s[A];t&&this.#A.on(A,t)}catch{}this.#A.emit=(A,...t)=>this.#o(A,...t),this.#A.reallyExit=A=>this.#n(A)}}unload(){this.#i&&(this.#i=!1,di.signals.forEach(A=>{let t=this.#s[A];if(!t)throw new Error("Listener not defined for signal: "+A);try{this.#A.removeListener(A,t)}catch{}}),this.#A.emit=this.#t,this.#A.reallyExit=this.#r,this.#a.count-=1)}#n(A){return pi(this.#A)?(this.#A.exitCode=A||0,this.#a.emit("exit",this.#A.exitCode,null),this.#r.call(this.#A,this.#A.exitCode)):0}#o(A,...t){let a=this.#t;if(A==="exit"&&pi(this.#A)){typeof t[0]=="number"&&(this.#A.exitCode=t[0]);let r=a.call(this.#A,A,...t);return this.#a.emit("exit",this.#A.exitCode,null),r}else return a.call(this.#A,A,...t)}},zn=globalThis.process;oi=d5(pi(zn)?new Xn(zn):new Zn),jA.onExit=oi.onExit,jA.load=oi.load,jA.unload=oi.unload});var gi=E(IA=>{"use strict";var p5=IA&&IA.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(IA,"__esModule",{value:!0});IA.defaultParsing=IA.handleOutput=IA.getSpawnedResult=IA.getSpawnedPromise=void 0;var l5=require("node:buffer"),Cl=p5(require("node:stream")),g5=require("node:util"),c5=ul();function u5(e,{timeout:A}={}){let t=new Promise((n,o)=>{e.on("exit",(d,l)=>{n({exitCode:d,signal:l,timedOut:!1})}),e.on("error",d=>{o(d)}),e.stdin&&e.stdin.on("error",d=>{o(d)})});if(A===0||A===void 0)return t;let a,r=new Promise((n,o)=>{a=setTimeout(()=>{e.kill("SIGTERM"),o(Object.assign(new Error("Timed out"),{timedOut:!0,signal:"SIGTERM"}))},A)}),i=t.finally(()=>{clearTimeout(a)}),s=(0,c5.onExit)(()=>{e.kill()});return Promise.race([r,i]).finally(()=>s())}IA.getSpawnedPromise=u5;var Kn=class extends Error{constructor(){super("The output is too big"),this.name="MaxBufferError"}},E5=(0,g5.promisify)(Cl.default.pipeline);function Q5(e){let{encoding:A}=e,t=A==="buffer",a=new Cl.default.PassThrough({objectMode:!1});A&&A!=="buffer"&&a.setEncoding(A);let r=0,i=[];return a.on("data",s=>{i.push(s),r+=s.length}),a.getBufferedValue=()=>t?Buffer.concat(i,r):i.join(""),a.getBufferedLength=()=>r,a}async function El(e,A){let t=Q5(A);return await new Promise((a,r)=>{let i=s=>{s&&t.getBufferedLength()<=l5.constants.MAX_LENGTH&&(s.bufferedData=t.getBufferedValue()),r(s)};(async()=>{try{await E5(e,t),a()}catch(s){i(s)}})(),t.on("data",()=>{t.getBufferedLength()>1e3*1e3*80&&i(new Kn)})}),t.getBufferedValue()}async function Ql(e,A){e.destroy();try{return await A}catch(t){return t.bufferedData}}async function C5({stdout:e,stderr:A},{encoding:t},a){let r=El(e,{encoding:t}),i=El(A,{encoding:t});try{return await Promise.all([a,r,i])}catch(s){return Promise.all([{error:s,exitCode:null,signal:s.signal,timedOut:s.timedOut||!1},Ql(e,r),Ql(A,i)])}}IA.getSpawnedResult=C5;function m5(e){let A=typeof e=="string"?` -`:10,t=typeof e=="string"?"\r":13;return e[e.length-1]===A&&(e=e.slice(0,-1)),e[e.length-1]===t&&(e=e.slice(0,-1)),e}function B5(e,A){return e.stripFinalNewline?m5(A):A}IA.handleOutput=B5;var h5=({timedOut:e,timeout:A,signal:t,exitCode:a})=>e?`timed out after ${A} milliseconds`:t!=null?`was killed with ${t}`:a!=null?`failed with exit code ${a}`:"failed",I5=({stdout:e,stderr:A,error:t,signal:a,exitCode:r,command:i,timedOut:s,options:n,parentError:o})=>{let l=`Command ${h5({timedOut:s,timeout:n?.timeout,signal:a,exitCode:r})}: ${i}`,p=t?`${l} +`)},_domwindow:function(){return a("domwindow")},_bigint:function(r){return a("bigint:"+r.toString())},_process:function(){return a("process")},_timer:function(){return a("timer")},_pipe:function(){return a("pipe")},_tcp:function(){return a("tcp")},_udp:function(){return a("udp")},_tty:function(){return a("tty")},_statwatcher:function(){return a("statwatcher")},_securecontext:function(){return a("securecontext")},_connection:function(){return a("connection")},_zlib:function(){return a("zlib")},_context:function(){return a("context")},_nodescript:function(){return a("nodescript")},_httpparser:function(){return a("httpparser")},_dataview:function(){return a("dataview")},_signal:function(){return a("signal")},_fsevent:function(){return a("fsevent")},_tlswrap:function(){return a("tlswrap")}}}function A2(){return{buf:"",write:function(e){this.buf+=e},end:function(e){this.buf+=e},read:function(){return this.buf}}}});var Wr=E(D1=>{"use strict";var hQ=D1&&D1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(D1,"__esModule",{value:!0});D1.useCachedPromise=void 0;var Pr=require("react"),a2=hQ(In()),IQ=Or(),fQ=ba(),wQ=it(),Fa=Symbol();function yQ(e,A,t){let{initialData:a,keepPreviousData:r,...i}=t||{},s=(0,Pr.useRef)(),[n,o]=(0,IQ.useCachedState)((0,a2.default)(A||[]),Fa,{cacheNamespace:(0,a2.default)(e)}),d=(0,Pr.useRef)(n!==Fa?n:a),{mutate:l,revalidate:p,...g}=(0,fQ.usePromise)(e,A||[],{...i,onData(C){i.onData&&i.onData(C),s.current="promise",d.current=C,o(C)}}),c=n!==Fa?n:a,u=s.current==="promise"?d.current:r?n!==Fa?n:d.current:c,m=(0,wQ.useLatest)(u),Q=(0,Pr.useCallback)(async(C,B)=>{let w;try{if(B?.optimisticUpdate){typeof B?.rollbackOnError!="function"&&B?.rollbackOnError!==!1&&(w=structuredClone(m.current));let I=B.optimisticUpdate(m.current);s.current="cache",d.current=I,o(I)}return await l(C,{shouldRevalidateAfter:B?.shouldRevalidateAfter})}catch(I){if(typeof B?.rollbackOnError=="function"){let y=B.rollbackOnError(m.current);s.current="cache",d.current=y,o(y)}else B?.optimisticUpdate&&B?.rollbackOnError!==!1&&(s.current="cache",d.current=w,o(w));throw I}},[o,l,m,d,s]);return(0,Pr.useEffect)(()=>{n!==Fa&&(s.current="cache",d.current=n)},[n]),{data:u,isLoading:g.isLoading,error:g.error,mutate:Q,revalidate:p}}D1.useCachedPromise=yQ});var s2=E(Zr=>{"use strict";var DQ=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,r2=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,i2=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;Zr.format=RQ;Zr.parse=NQ;Zr.test=vQ;function RQ(e){if(!e||typeof e!="object")throw new TypeError("argument obj is required");var A=e.subtype,t=e.suffix,a=e.type;if(!a||!r2.test(a))throw new TypeError("invalid type");if(!A||!DQ.test(A))throw new TypeError("invalid subtype");var r=a+"/"+A;if(t){if(!r2.test(t))throw new TypeError("invalid suffix");r+="+"+t}return r}function vQ(e){if(!e)throw new TypeError("argument string is required");if(typeof e!="string")throw new TypeError("argument string is required to be a string");return i2.test(e.toLowerCase())}function NQ(e){if(!e)throw new TypeError("argument string is required");if(typeof e!="string")throw new TypeError("argument string is required to be a string");var A=i2.exec(e.toLowerCase());if(!A)throw new TypeError("invalid media type");var t=A[1],a=A[2],r,i=a.lastIndexOf("+");return i!==-1&&(r=a.substr(i+1),a=a.substr(0,i)),new bQ(t,a,r)}function bQ(e,A,t){this.type=e,this.subtype=A,this.suffix=t}});var p2=E(fn=>{"use strict";var n2=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,SQ=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,o2=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,FQ=/\\([\u000b\u0020-\u00ff])/g,kQ=/([\\"])/g,d2=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;fn.format=LQ;fn.parse=UQ;function LQ(e){if(!e||typeof e!="object")throw new TypeError("argument obj is required");var A=e.parameters,t=e.type;if(!t||!d2.test(t))throw new TypeError("invalid type");var a=t;if(A&&typeof A=="object")for(var r,i=Object.keys(A).sort(),s=0;s<i.length;s++){if(r=i[s],!o2.test(r))throw new TypeError("invalid parameter name");a+="; "+r+"="+MQ(A[r])}return a}function UQ(e){if(!e)throw new TypeError("argument string is required");var A=typeof e=="object"?TQ(e):e;if(typeof A!="string")throw new TypeError("argument string is required to be a string");var t=A.indexOf(";"),a=t!==-1?A.slice(0,t).trim():A.trim();if(!d2.test(a))throw new TypeError("invalid media type");var r=new VQ(a.toLowerCase());if(t!==-1){var i,s,n;for(n2.lastIndex=t;s=n2.exec(A);){if(s.index!==t)throw new TypeError("invalid parameter format");t+=s[0].length,i=s[1].toLowerCase(),n=s[2],n.charCodeAt(0)===34&&(n=n.slice(1,-1),n.indexOf("\\")!==-1&&(n=n.replace(FQ,"$1"))),r.parameters[i]=n}if(t!==A.length)throw new TypeError("invalid parameter format")}return r}function TQ(e){var A;if(typeof e.getHeader=="function"?A=e.getHeader("content-type"):typeof e.headers=="object"&&(A=e.headers&&e.headers["content-type"]),typeof A!="string")throw new TypeError("content-type header is missing from object");return A}function MQ(e){var A=String(e);if(o2.test(A))return A;if(A.length>0&&!SQ.test(A))throw new TypeError("invalid parameter value");return'"'+A.replace(kQ,"\\$1")+'"'}function VQ(e){this.parameters=Object.create(null),this.type=e}});var c2=E((lN,g2)=>{"use strict";var ne={};g2.exports=ne;function l2(e){return e<0?-1:1}function YQ(e){return e%1===.5&&(e&1)===0?Math.floor(e):Math.round(e)}function Dt(e,A){A.unsigned||--e;let t=A.unsigned?0:-Math.pow(2,e),a=Math.pow(2,e)-1,r=A.moduloBitLength?Math.pow(2,A.moduloBitLength):Math.pow(2,e),i=A.moduloBitLength?Math.pow(2,A.moduloBitLength-1):Math.pow(2,e-1);return function(s,n){n||(n={});let o=+s;if(n.enforceRange){if(!Number.isFinite(o))throw new TypeError("Argument is not a finite number");if(o=l2(o)*Math.floor(Math.abs(o)),o<t||o>a)throw new TypeError("Argument is not in byte range");return o}if(!isNaN(o)&&n.clamp)return o=YQ(o),o<t&&(o=t),o>a&&(o=a),o;if(!Number.isFinite(o)||o===0)return 0;if(o=l2(o)*Math.floor(Math.abs(o)),o=o%r,!A.unsigned&&o>=i)return o-r;if(A.unsigned){if(o<0)o+=r;else if(o===-0)return 0}return o}}ne.void=function(){};ne.boolean=function(e){return!!e};ne.byte=Dt(8,{unsigned:!1});ne.octet=Dt(8,{unsigned:!0});ne.short=Dt(16,{unsigned:!1});ne["unsigned short"]=Dt(16,{unsigned:!0});ne.long=Dt(32,{unsigned:!1});ne["unsigned long"]=Dt(32,{unsigned:!0});ne["long long"]=Dt(32,{unsigned:!1,moduloBitLength:64});ne["unsigned long long"]=Dt(32,{unsigned:!0,moduloBitLength:64});ne.double=function(e){let A=+e;if(!Number.isFinite(A))throw new TypeError("Argument is not a finite floating-point value");return A};ne["unrestricted double"]=function(e){let A=+e;if(isNaN(A))throw new TypeError("Argument is NaN");return A};ne.float=ne.double;ne["unrestricted float"]=ne["unrestricted double"];ne.DOMString=function(e,A){return A||(A={}),A.treatNullAsEmptyString&&e===null?"":String(e)};ne.ByteString=function(e,A){let t=String(e),a;for(let r=0;(a=t.codePointAt(r))!==void 0;++r)if(a>255)throw new TypeError("Argument is not a valid bytestring");return t};ne.USVString=function(e){let A=String(e),t=A.length,a=[];for(let r=0;r<t;++r){let i=A.charCodeAt(r);if(i<55296||i>57343)a.push(String.fromCodePoint(i));else if(56320<=i&&i<=57343)a.push(String.fromCodePoint(65533));else if(r===t-1)a.push(String.fromCodePoint(65533));else{let s=A.charCodeAt(r+1);if(56320<=s&&s<=57343){let n=i&1023,o=s&1023;a.push(String.fromCodePoint(65536+1024*n+o)),++r}else a.push(String.fromCodePoint(65533))}}return a.join("")};ne.Date=function(e,A){if(!(e instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(e))return e};ne.RegExp=function(e,A){return e instanceof RegExp||(e=new RegExp(e)),e}});var u2=E((gN,Rt)=>{"use strict";Rt.exports.mixin=function(A,t){let a=Object.getOwnPropertyNames(t);for(let r=0;r<a.length;++r)Object.defineProperty(A,a[r],Object.getOwnPropertyDescriptor(t,a[r]))};Rt.exports.wrapperSymbol=Symbol("wrapper");Rt.exports.implSymbol=Symbol("impl");Rt.exports.wrapperForImpl=function(e){return e[Rt.exports.wrapperSymbol]};Rt.exports.implForWrapper=function(e){return e[Rt.exports.implSymbol]}});var E2=E((cN,JQ)=>{JQ.exports=[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1e3,1e3],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6e3],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8e3,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8e3]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9e3],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[3e4]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13e3,13e3],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43e3,43e3],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64e3,64e3],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66e3,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[12e4,12e4],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128e3,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23e3]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149e3]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32e3]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195e3,195e3],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[4e4]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918e3,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]});var I2=E((uN,Xr)=>{"use strict";var m2=require("punycode"),Q2=E2(),R1={TRANSITIONAL:0,NONTRANSITIONAL:1};function C2(e){return e.split("\0").map(function(A){return A.normalize("NFC")}).join("\0")}function B2(e){for(var A=0,t=Q2.length-1;A<=t;){var a=Math.floor((A+t)/2),r=Q2[a];if(r[0][0]<=e&&r[0][1]>=e)return r;r[0][0]>e?t=a-1:A=a+1}return null}var GQ=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function h2(e){return e.replace(GQ,"_").length}function xQ(e,A,t){for(var a=!1,r="",i=h2(e),s=0;s<i;++s){var n=e.codePointAt(s),o=B2(n);switch(o[1]){case"disallowed":a=!0,r+=String.fromCodePoint(n);break;case"ignored":break;case"mapped":r+=String.fromCodePoint.apply(String,o[2]);break;case"deviation":t===R1.TRANSITIONAL?r+=String.fromCodePoint.apply(String,o[2]):r+=String.fromCodePoint(n);break;case"valid":r+=String.fromCodePoint(n);break;case"disallowed_STD3_mapped":A?(a=!0,r+=String.fromCodePoint(n)):r+=String.fromCodePoint.apply(String,o[2]);break;case"disallowed_STD3_valid":A&&(a=!0),r+=String.fromCodePoint(n);break}}return{string:r,error:a}}var _Q=/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;function qQ(e,A){e.substr(0,4)==="xn--"&&(e=m2.toUnicode(e),A=R1.NONTRANSITIONAL);var t=!1;(C2(e)!==e||e[3]==="-"&&e[4]==="-"||e[0]==="-"||e[e.length-1]==="-"||e.indexOf(".")!==-1||e.search(_Q)===0)&&(t=!0);for(var a=h2(e),r=0;r<a;++r){var i=B2(e.codePointAt(r));if(jr===R1.TRANSITIONAL&&i[1]!=="valid"||jr===R1.NONTRANSITIONAL&&i[1]!=="valid"&&i[1]!=="deviation"){t=!0;break}}return{label:e,error:t}}function jr(e,A,t){var a=xQ(e,A,t);a.string=C2(a.string);for(var r=a.string.split("."),i=0;i<r.length;++i)try{var s=qQ(r[i]);r[i]=s.label,a.error=a.error||s.error}catch{a.error=!0}return{string:r.join("."),error:a.error}}Xr.exports.toASCII=function(e,A,t,a){var r=jr(e,A,t),i=r.string.split(".");if(i=i.map(function(o){try{return m2.toASCII(o)}catch{return r.error=!0,o}}),a){var s=i.slice(0,i.length-1).join(".").length;(s.length>253||s.length===0)&&(r.error=!0);for(var n=0;n<i.length;++n)if(i.length>63||i.length===0){r.error=!0;break}}return r.error?null:i.join(".")};Xr.exports.toUnicode=function(e,A){var t=jr(e,A,R1.NONTRANSITIONAL);return{domain:t.string,error:t.error}};Xr.exports.PROCESSING_OPTIONS=R1});var _A=E((EN,aA)=>{"use strict";var v1=require("punycode"),f2=I2(),R2={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443},J=Symbol("failure");function w2(e){return v1.ucs2.decode(e).length}function y2(e,A){let t=e[A];return isNaN(t)?void 0:String.fromCodePoint(t)}function ka(e){return e>=48&&e<=57}function La(e){return e>=65&&e<=90||e>=97&&e<=122}function HQ(e){return La(e)||ka(e)}function FA(e){return ka(e)||e>=65&&e<=70||e>=97&&e<=102}function D2(e){return e==="."||e.toLowerCase()==="%2e"}function OQ(e){return e=e.toLowerCase(),e===".."||e==="%2e."||e===".%2e"||e==="%2e%2e"}function PQ(e,A){return La(e)&&(A===58||A===124)}function v2(e){return e.length===2&&La(e.codePointAt(0))&&(e[1]===":"||e[1]==="|")}function WQ(e){return e.length===2&&La(e.codePointAt(0))&&e[1]===":"}function ZQ(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/)!==-1}function jQ(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)!==-1}function wn(e){return R2[e]!==void 0}function he(e){return wn(e.scheme)}function XQ(e){return R2[e]}function N2(e){let A=e.toString(16).toUpperCase();return A.length===1&&(A="0"+A),"%"+A}function zQ(e){let A=new Buffer(e),t="";for(let a=0;a<A.length;++a)t+=N2(A[a]);return t}function KQ(e){let A=new Buffer(e),t=[];for(let a=0;a<A.length;++a)A[a]!==37?t.push(A[a]):A[a]===37&&FA(A[a+1])&&FA(A[a+2])?(t.push(parseInt(A.slice(a+1,a+3).toString(),16)),a+=2):t.push(A[a]);return new Buffer(t).toString()}function zr(e){return e<=31||e>126}var $Q=new Set([32,34,35,60,62,63,96,123,125]);function b2(e){return zr(e)||$Q.has(e)}var e8=new Set([47,58,59,61,64,91,92,93,94,124]);function Dn(e){return b2(e)||e8.has(e)}function Wt(e,A){let t=String.fromCodePoint(e);return A(e)?zQ(t):t}function A8(e){let A=10;return e.length>=2&&e.charAt(0)==="0"&&e.charAt(1).toLowerCase()==="x"?(e=e.substring(2),A=16):e.length>=2&&e.charAt(0)==="0"&&(e=e.substring(1),A=8),e===""?0:(A===10?/[^0-9]/:A===16?/[^0-9A-Fa-f]/:/[^0-7]/).test(e)?J:parseInt(e,A)}function t8(e){let A=e.split(".");if(A[A.length-1]===""&&A.length>1&&A.pop(),A.length>4)return e;let t=[];for(let i of A){if(i==="")return e;let s=A8(i);if(s===J)return e;t.push(s)}for(let i=0;i<t.length-1;++i)if(t[i]>255)return J;if(t[t.length-1]>=Math.pow(256,5-t.length))return J;let a=t.pop(),r=0;for(let i of t)a+=i*Math.pow(256,3-r),++r;return a}function a8(e){let A="",t=e;for(let a=1;a<=4;++a)A=String(t%256)+A,a!==4&&(A="."+A),t=Math.floor(t/256);return A}function r8(e){let A=[0,0,0,0,0,0,0,0],t=0,a=null,r=0;if(e=v1.ucs2.decode(e),e[r]===58){if(e[r+1]!==58)return J;r+=2,++t,a=t}for(;r<e.length;){if(t===8)return J;if(e[r]===58){if(a!==null)return J;++r,++t,a=t;continue}let i=0,s=0;for(;s<4&&FA(e[r]);)i=i*16+parseInt(y2(e,r),16),++r,++s;if(e[r]===46){if(s===0||(r-=s,t>6))return J;let n=0;for(;e[r]!==void 0;){let o=null;if(n>0)if(e[r]===46&&n<4)++r;else return J;if(!ka(e[r]))return J;for(;ka(e[r]);){let d=parseInt(y2(e,r));if(o===null)o=d;else{if(o===0)return J;o=o*10+d}if(o>255)return J;++r}A[t]=A[t]*256+o,++n,(n===2||n===4)&&++t}if(n!==4)return J;break}else if(e[r]===58){if(++r,e[r]===void 0)return J}else if(e[r]!==void 0)return J;A[t]=i,++t}if(a!==null){let i=t-a;for(t=7;t!==0&&i>0;){let s=A[a+i-1];A[a+i-1]=A[t],A[t]=s,--t,--i}}else if(a===null&&t!==8)return J;return A}function i8(e){let A="",a=n8(e).idx,r=!1;for(let i=0;i<=7;++i)if(!(r&&e[i]===0)){if(r&&(r=!1),a===i){A+=i===0?"::":":",r=!0;continue}A+=e[i].toString(16),i!==7&&(A+=":")}return A}function yn(e,A){if(e[0]==="[")return e[e.length-1]!=="]"?J:r8(e.substring(1,e.length-1));if(!A)return s8(e);let t=KQ(e),a=f2.toASCII(t,!1,f2.PROCESSING_OPTIONS.NONTRANSITIONAL,!1);if(a===null||ZQ(a))return J;let r=t8(a);return typeof r=="number"||r===J?r:a}function s8(e){if(jQ(e))return J;let A="",t=v1.ucs2.decode(e);for(let a=0;a<t.length;++a)A+=Wt(t[a],zr);return A}function n8(e){let A=null,t=1,a=null,r=0;for(let i=0;i<e.length;++i)e[i]!==0?(r>t&&(A=a,t=r),a=null,r=0):(a===null&&(a=i),++r);return r>t&&(A=a,t=r),{idx:A,len:t}}function Rn(e){return typeof e=="number"?a8(e):e instanceof Array?"["+i8(e)+"]":e}function o8(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}function d8(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}function S2(e){let A=e.path;A.length!==0&&(e.scheme==="file"&&A.length===1&&l8(A[0])||A.pop())}function F2(e){return e.username!==""||e.password!==""}function p8(e){return e.host===null||e.host===""||e.cannotBeABaseURL||e.scheme==="file"}function l8(e){return/^[A-Za-z]:$/.test(e)}function oe(e,A,t,a,r){if(this.pointer=0,this.input=e,this.base=A||null,this.encodingOverride=t||"utf-8",this.stateOverride=r,this.url=a,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};let s=o8(this.input);s!==this.input&&(this.parseError=!0),this.input=s}let i=d8(this.input);for(i!==this.input&&(this.parseError=!0),this.input=i,this.state=r||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=v1.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){let s=this.input[this.pointer],n=isNaN(s)?void 0:String.fromCodePoint(s),o=this["parse "+this.state](s,n);if(o){if(o===J){this.failure=!0;break}}else break}}oe.prototype["parse scheme start"]=function(A,t){if(La(A))this.buffer+=t.toLowerCase(),this.state="scheme";else if(!this.stateOverride)this.state="no scheme",--this.pointer;else return this.parseError=!0,J;return!0};oe.prototype["parse scheme"]=function(A,t){if(HQ(A)||A===43||A===45||A===46)this.buffer+=t.toLowerCase();else if(A===58){if(this.stateOverride&&(he(this.url)&&!wn(this.buffer)||!he(this.url)&&wn(this.buffer)||(F2(this.url)||this.url.port!==null)&&this.buffer==="file"||this.url.scheme==="file"&&(this.url.host===""||this.url.host===null))||(this.url.scheme=this.buffer,this.buffer="",this.stateOverride))return!1;this.url.scheme==="file"?((this.input[this.pointer+1]!==47||this.input[this.pointer+2]!==47)&&(this.parseError=!0),this.state="file"):he(this.url)&&this.base!==null&&this.base.scheme===this.url.scheme?this.state="special relative or authority":he(this.url)?this.state="special authority slashes":this.input[this.pointer+1]===47?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else if(!this.stateOverride)this.buffer="",this.state="no scheme",this.pointer=-1;else return this.parseError=!0,J;return!0};oe.prototype["parse no scheme"]=function(A){return this.base===null||this.base.cannotBeABaseURL&&A!==35?J:(this.base.cannotBeABaseURL&&A===35?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):this.base.scheme==="file"?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)};oe.prototype["parse special relative or authority"]=function(A){return A===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0};oe.prototype["parse path or authority"]=function(A){return A===47?this.state="authority":(this.state="path",--this.pointer),!0};oe.prototype["parse relative"]=function(A){return this.url.scheme=this.base.scheme,isNaN(A)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):A===47?this.state="relative slash":A===63?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):A===35?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):he(this.url)&&A===92?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0};oe.prototype["parse relative slash"]=function(A){return he(this.url)&&(A===47||A===92)?(A===92&&(this.parseError=!0),this.state="special authority ignore slashes"):A===47?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer),!0};oe.prototype["parse special authority slashes"]=function(A){return A===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0};oe.prototype["parse special authority ignore slashes"]=function(A){return A!==47&&A!==92?(this.state="authority",--this.pointer):this.parseError=!0,!0};oe.prototype["parse authority"]=function(A,t){if(A===64){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;let a=w2(this.buffer);for(let r=0;r<a;++r){let i=this.buffer.codePointAt(r);if(i===58&&!this.passwordTokenSeenFlag){this.passwordTokenSeenFlag=!0;continue}let s=Wt(i,Dn);this.passwordTokenSeenFlag?this.url.password+=s:this.url.username+=s}this.buffer=""}else if(isNaN(A)||A===47||A===63||A===35||he(this.url)&&A===92){if(this.atFlag&&this.buffer==="")return this.parseError=!0,J;this.pointer-=w2(this.buffer)+1,this.buffer="",this.state="host"}else this.buffer+=t;return!0};oe.prototype["parse hostname"]=oe.prototype["parse host"]=function(A,t){if(this.stateOverride&&this.url.scheme==="file")--this.pointer,this.state="file host";else if(A===58&&!this.arrFlag){if(this.buffer==="")return this.parseError=!0,J;let a=yn(this.buffer,he(this.url));if(a===J)return J;if(this.url.host=a,this.buffer="",this.state="port",this.stateOverride==="hostname")return!1}else if(isNaN(A)||A===47||A===63||A===35||he(this.url)&&A===92){if(--this.pointer,he(this.url)&&this.buffer==="")return this.parseError=!0,J;if(this.stateOverride&&this.buffer===""&&(F2(this.url)||this.url.port!==null))return this.parseError=!0,!1;let a=yn(this.buffer,he(this.url));if(a===J)return J;if(this.url.host=a,this.buffer="",this.state="path start",this.stateOverride)return!1}else A===91?this.arrFlag=!0:A===93&&(this.arrFlag=!1),this.buffer+=t;return!0};oe.prototype["parse port"]=function(A,t){if(ka(A))this.buffer+=t;else if(isNaN(A)||A===47||A===63||A===35||he(this.url)&&A===92||this.stateOverride){if(this.buffer!==""){let a=parseInt(this.buffer);if(a>Math.pow(2,16)-1)return this.parseError=!0,J;this.url.port=a===XQ(this.url.scheme)?null:a,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}else return this.parseError=!0,J;return!0};var g8=new Set([47,92,63,35]);oe.prototype["parse file"]=function(A){return this.url.scheme="file",A===47||A===92?(A===92&&(this.parseError=!0),this.state="file slash"):this.base!==null&&this.base.scheme==="file"?isNaN(A)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):A===63?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):A===35?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(this.input.length-this.pointer-1===0||!PQ(A,this.input[this.pointer+1])||this.input.length-this.pointer-1>=2&&!g8.has(this.input[this.pointer+2])?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),S2(this.url)):this.parseError=!0,this.state="path",--this.pointer):(this.state="path",--this.pointer),!0};oe.prototype["parse file slash"]=function(A){return A===47||A===92?(A===92&&(this.parseError=!0),this.state="file host"):(this.base!==null&&this.base.scheme==="file"&&(WQ(this.base.path[0])?this.url.path.push(this.base.path[0]):this.url.host=this.base.host),this.state="path",--this.pointer),!0};oe.prototype["parse file host"]=function(A,t){if(isNaN(A)||A===47||A===92||A===63||A===35)if(--this.pointer,!this.stateOverride&&v2(this.buffer))this.parseError=!0,this.state="path";else if(this.buffer===""){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let a=yn(this.buffer,he(this.url));if(a===J)return J;if(a==="localhost"&&(a=""),this.url.host=a,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=t;return!0};oe.prototype["parse path start"]=function(A){return he(this.url)?(A===92&&(this.parseError=!0),this.state="path",A!==47&&A!==92&&--this.pointer):!this.stateOverride&&A===63?(this.url.query="",this.state="query"):!this.stateOverride&&A===35?(this.url.fragment="",this.state="fragment"):A!==void 0&&(this.state="path",A!==47&&--this.pointer),!0};oe.prototype["parse path"]=function(A){if(isNaN(A)||A===47||he(this.url)&&A===92||!this.stateOverride&&(A===63||A===35)){if(he(this.url)&&A===92&&(this.parseError=!0),OQ(this.buffer)?(S2(this.url),A!==47&&!(he(this.url)&&A===92)&&this.url.path.push("")):D2(this.buffer)&&A!==47&&!(he(this.url)&&A===92)?this.url.path.push(""):D2(this.buffer)||(this.url.scheme==="file"&&this.url.path.length===0&&v2(this.buffer)&&(this.url.host!==""&&this.url.host!==null&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)),this.buffer="",this.url.scheme==="file"&&(A===void 0||A===63||A===35))for(;this.url.path.length>1&&this.url.path[0]==="";)this.parseError=!0,this.url.path.shift();A===63&&(this.url.query="",this.state="query"),A===35&&(this.url.fragment="",this.state="fragment")}else A===37&&(!FA(this.input[this.pointer+1])||!FA(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=Wt(A,b2);return!0};oe.prototype["parse cannot-be-a-base-URL path"]=function(A){return A===63?(this.url.query="",this.state="query"):A===35?(this.url.fragment="",this.state="fragment"):(!isNaN(A)&&A!==37&&(this.parseError=!0),A===37&&(!FA(this.input[this.pointer+1])||!FA(this.input[this.pointer+2]))&&(this.parseError=!0),isNaN(A)||(this.url.path[0]=this.url.path[0]+Wt(A,zr))),!0};oe.prototype["parse query"]=function(A,t){if(isNaN(A)||!this.stateOverride&&A===35){(!he(this.url)||this.url.scheme==="ws"||this.url.scheme==="wss")&&(this.encodingOverride="utf-8");let a=new Buffer(this.buffer);for(let r=0;r<a.length;++r)a[r]<33||a[r]>126||a[r]===34||a[r]===35||a[r]===60||a[r]===62?this.url.query+=N2(a[r]):this.url.query+=String.fromCodePoint(a[r]);this.buffer="",A===35&&(this.url.fragment="",this.state="fragment")}else A===37&&(!FA(this.input[this.pointer+1])||!FA(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=t;return!0};oe.prototype["parse fragment"]=function(A){return isNaN(A)||(A===0?this.parseError=!0:(A===37&&(!FA(this.input[this.pointer+1])||!FA(this.input[this.pointer+2]))&&(this.parseError=!0),this.url.fragment+=Wt(A,zr))),!0};function c8(e,A){let t=e.scheme+":";if(e.host!==null?(t+="//",(e.username!==""||e.password!=="")&&(t+=e.username,e.password!==""&&(t+=":"+e.password),t+="@"),t+=Rn(e.host),e.port!==null&&(t+=":"+e.port)):e.host===null&&e.scheme==="file"&&(t+="//"),e.cannotBeABaseURL)t+=e.path[0];else for(let a of e.path)t+="/"+a;return e.query!==null&&(t+="?"+e.query),!A&&e.fragment!==null&&(t+="#"+e.fragment),t}function u8(e){let A=e.scheme+"://";return A+=Rn(e.host),e.port!==null&&(A+=":"+e.port),A}aA.exports.serializeURL=c8;aA.exports.serializeURLOrigin=function(e){switch(e.scheme){case"blob":try{return aA.exports.serializeURLOrigin(aA.exports.parseURL(e.path[0]))}catch{return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return u8({scheme:e.scheme,host:e.host,port:e.port});case"file":return"file://";default:return"null"}};aA.exports.basicURLParse=function(e,A){A===void 0&&(A={});let t=new oe(e,A.baseURL,A.encodingOverride,A.url,A.stateOverride);return t.failure?"failure":t.url};aA.exports.setTheUsername=function(e,A){e.username="";let t=v1.ucs2.decode(A);for(let a=0;a<t.length;++a)e.username+=Wt(t[a],Dn)};aA.exports.setThePassword=function(e,A){e.password="";let t=v1.ucs2.decode(A);for(let a=0;a<t.length;++a)e.password+=Wt(t[a],Dn)};aA.exports.serializeHost=Rn;aA.exports.cannotHaveAUsernamePasswordPort=p8;aA.exports.serializeInteger=function(e){return String(e)};aA.exports.parseURL=function(e,A){return A===void 0&&(A={}),aA.exports.basicURLParse(e,{baseURL:A.baseURL,encodingOverride:A.encodingOverride})}});var L2=E(k2=>{"use strict";var de=_A();k2.implementation=class{constructor(A){let t=A[0],a=A[1],r=null;if(a!==void 0&&(r=de.basicURLParse(a),r==="failure"))throw new TypeError("Invalid base URL");let i=de.basicURLParse(t,{baseURL:r});if(i==="failure")throw new TypeError("Invalid URL");this._url=i}get href(){return de.serializeURL(this._url)}set href(A){let t=de.basicURLParse(A);if(t==="failure")throw new TypeError("Invalid URL");this._url=t}get origin(){return de.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(A){de.basicURLParse(A+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(A){de.cannotHaveAUsernamePasswordPort(this._url)||de.setTheUsername(this._url,A)}get password(){return this._url.password}set password(A){de.cannotHaveAUsernamePasswordPort(this._url)||de.setThePassword(this._url,A)}get host(){let A=this._url;return A.host===null?"":A.port===null?de.serializeHost(A.host):de.serializeHost(A.host)+":"+de.serializeInteger(A.port)}set host(A){this._url.cannotBeABaseURL||de.basicURLParse(A,{url:this._url,stateOverride:"host"})}get hostname(){return this._url.host===null?"":de.serializeHost(this._url.host)}set hostname(A){this._url.cannotBeABaseURL||de.basicURLParse(A,{url:this._url,stateOverride:"hostname"})}get port(){return this._url.port===null?"":de.serializeInteger(this._url.port)}set port(A){de.cannotHaveAUsernamePasswordPort(this._url)||(A===""?this._url.port=null:de.basicURLParse(A,{url:this._url,stateOverride:"port"}))}get pathname(){return this._url.cannotBeABaseURL?this._url.path[0]:this._url.path.length===0?"":"/"+this._url.path.join("/")}set pathname(A){this._url.cannotBeABaseURL||(this._url.path=[],de.basicURLParse(A,{url:this._url,stateOverride:"path start"}))}get search(){return this._url.query===null||this._url.query===""?"":"?"+this._url.query}set search(A){let t=this._url;if(A===""){t.query=null;return}let a=A[0]==="?"?A.substring(1):A;t.query="",de.basicURLParse(a,{url:t,stateOverride:"query"})}get hash(){return this._url.fragment===null||this._url.fragment===""?"":"#"+this._url.fragment}set hash(A){if(A===""){this._url.fragment=null;return}let t=A[0]==="#"?A.substring(1):A;this._url.fragment="",de.basicURLParse(t,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}});var M2=E((CN,Ua)=>{"use strict";var mA=c2(),T2=u2(),U2=L2(),z=T2.implSymbol;function De(e){if(!this||this[z]||!(this instanceof De))throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");if(arguments.length<1)throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.");let A=[];for(let t=0;t<arguments.length&&t<2;++t)A[t]=arguments[t];A[0]=mA.USVString(A[0]),A[1]!==void 0&&(A[1]=mA.USVString(A[1])),Ua.exports.setup(this,A)}De.prototype.toJSON=function(){if(!this||!Ua.exports.is(this))throw new TypeError("Illegal invocation");let A=[];for(let t=0;t<arguments.length&&t<0;++t)A[t]=arguments[t];return this[z].toJSON.apply(this[z],A)};Object.defineProperty(De.prototype,"href",{get(){return this[z].href},set(e){e=mA.USVString(e),this[z].href=e},enumerable:!0,configurable:!0});De.prototype.toString=function(){if(!this||!Ua.exports.is(this))throw new TypeError("Illegal invocation");return this.href};Object.defineProperty(De.prototype,"origin",{get(){return this[z].origin},enumerable:!0,configurable:!0});Object.defineProperty(De.prototype,"protocol",{get(){return this[z].protocol},set(e){e=mA.USVString(e),this[z].protocol=e},enumerable:!0,configurable:!0});Object.defineProperty(De.prototype,"username",{get(){return this[z].username},set(e){e=mA.USVString(e),this[z].username=e},enumerable:!0,configurable:!0});Object.defineProperty(De.prototype,"password",{get(){return this[z].password},set(e){e=mA.USVString(e),this[z].password=e},enumerable:!0,configurable:!0});Object.defineProperty(De.prototype,"host",{get(){return this[z].host},set(e){e=mA.USVString(e),this[z].host=e},enumerable:!0,configurable:!0});Object.defineProperty(De.prototype,"hostname",{get(){return this[z].hostname},set(e){e=mA.USVString(e),this[z].hostname=e},enumerable:!0,configurable:!0});Object.defineProperty(De.prototype,"port",{get(){return this[z].port},set(e){e=mA.USVString(e),this[z].port=e},enumerable:!0,configurable:!0});Object.defineProperty(De.prototype,"pathname",{get(){return this[z].pathname},set(e){e=mA.USVString(e),this[z].pathname=e},enumerable:!0,configurable:!0});Object.defineProperty(De.prototype,"search",{get(){return this[z].search},set(e){e=mA.USVString(e),this[z].search=e},enumerable:!0,configurable:!0});Object.defineProperty(De.prototype,"hash",{get(){return this[z].hash},set(e){e=mA.USVString(e),this[z].hash=e},enumerable:!0,configurable:!0});Ua.exports={is(e){return!!e&&e[z]instanceof U2.implementation},create(e,A){let t=Object.create(De.prototype);return this.setup(t,e,A),t},setup(e,A,t){t||(t={}),t.wrapper=e,e[z]=new U2.implementation(A,t),e[z][T2.wrapperSymbol]=e},interface:De,expose:{Window:{URL:De},Worker:{URL:De}}}});var V2=E(qA=>{"use strict";qA.URL=M2().interface;qA.serializeURL=_A().serializeURL;qA.serializeURLOrigin=_A().serializeURLOrigin;qA.basicURLParse=_A().basicURLParse;qA.setTheUsername=_A().setTheUsername;qA.setThePassword=_A().setThePassword;qA.serializeHost=_A().serializeHost;qA.serializeInteger=_A().serializeInteger;qA.parseURL=_A().parseURL});var j2=E((HA,Z2)=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});function S1(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var kA=S1(require("stream")),x2=S1(require("http")),$r=S1(require("url")),_2=S1(V2()),E8=S1(require("https")),Zt=S1(require("zlib")),Q8=kA.Readable,st=Symbol("buffer"),vn=Symbol("type"),Ma=class e{constructor(){this[vn]="";let A=arguments[0],t=arguments[1],a=[],r=0;if(A){let s=A,n=Number(s.length);for(let o=0;o<n;o++){let d=s[o],l;d instanceof Buffer?l=d:ArrayBuffer.isView(d)?l=Buffer.from(d.buffer,d.byteOffset,d.byteLength):d instanceof ArrayBuffer?l=Buffer.from(d):d instanceof e?l=d[st]:l=Buffer.from(typeof d=="string"?d:String(d)),r+=l.length,a.push(l)}}this[st]=Buffer.concat(a);let i=t&&t.type!==void 0&&String(t.type).toLowerCase();i&&!/[^\u0020-\u007E]/.test(i)&&(this[vn]=i)}get size(){return this[st].length}get type(){return this[vn]}text(){return Promise.resolve(this[st].toString())}arrayBuffer(){let A=this[st],t=A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength);return Promise.resolve(t)}stream(){let A=new Q8;return A._read=function(){},A.push(this[st]),A.push(null),A}toString(){return"[object Blob]"}slice(){let A=this.size,t=arguments[0],a=arguments[1],r,i;t===void 0?r=0:t<0?r=Math.max(A+t,0):r=Math.min(t,A),a===void 0?i=A:a<0?i=Math.max(A+a,0):i=Math.min(a,A);let s=Math.max(i-r,0),o=this[st].slice(r,r+s),d=new e([],{type:arguments[2]});return d[st]=o,d}};Object.defineProperties(Ma.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});Object.defineProperty(Ma.prototype,Symbol.toStringTag,{value:"Blob",writable:!1,enumerable:!1,configurable:!0});function ke(e,A,t){Error.call(this,e),this.message=e,this.type=A,t&&(this.code=this.errno=t.code),Error.captureStackTrace(this,this.constructor)}ke.prototype=Object.create(Error.prototype);ke.prototype.constructor=ke;ke.prototype.name="FetchError";var Fn;try{Fn=require("encoding").convert}catch{}var ot=Symbol("Body internals"),Y2=kA.PassThrough;function Re(e){var A=this,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=t.size;let r=a===void 0?0:a;var i=t.timeout;let s=i===void 0?0:i;e==null?e=null:q2(e)?e=Buffer.from(e.toString()):Ja(e)||Buffer.isBuffer(e)||(Object.prototype.toString.call(e)==="[object ArrayBuffer]"?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof kA||(e=Buffer.from(String(e)))),this[ot]={body:e,disturbed:!1,error:null},this.size=r,this.timeout=s,e instanceof kA&&e.on("error",function(n){let o=n.name==="AbortError"?n:new ke(`Invalid response body while trying to fetch ${A.url}: ${n.message}`,"system",n);A[ot].error=o})}Re.prototype={get body(){return this[ot].body},get bodyUsed(){return this[ot].disturbed},arrayBuffer(){return N1.call(this).then(function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)})},blob(){let e=this.headers&&this.headers.get("content-type")||"";return N1.call(this).then(function(A){return Object.assign(new Ma([],{type:e.toLowerCase()}),{[st]:A})})},json(){var e=this;return N1.call(this).then(function(A){try{return JSON.parse(A.toString())}catch(t){return Re.Promise.reject(new ke(`invalid json response body at ${e.url} reason: ${t.message}`,"invalid-json"))}})},text(){return N1.call(this).then(function(e){return e.toString()})},buffer(){return N1.call(this)},textConverted(){var e=this;return N1.call(this).then(function(A){return m8(A,e.headers)})}};Object.defineProperties(Re.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});Re.mixIn=function(e){for(let A of Object.getOwnPropertyNames(Re.prototype))if(!(A in e)){let t=Object.getOwnPropertyDescriptor(Re.prototype,A);Object.defineProperty(e,A,t)}};function N1(){var e=this;if(this[ot].disturbed)return Re.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[ot].disturbed=!0,this[ot].error)return Re.Promise.reject(this[ot].error);let A=this.body;if(A===null)return Re.Promise.resolve(Buffer.alloc(0));if(Ja(A)&&(A=A.stream()),Buffer.isBuffer(A))return Re.Promise.resolve(A);if(!(A instanceof kA))return Re.Promise.resolve(Buffer.alloc(0));let t=[],a=0,r=!1;return new Re.Promise(function(i,s){let n;e.timeout&&(n=setTimeout(function(){r=!0,s(new ke(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))},e.timeout)),A.on("error",function(o){o.name==="AbortError"?(r=!0,s(o)):s(new ke(`Invalid response body while trying to fetch ${e.url}: ${o.message}`,"system",o))}),A.on("data",function(o){if(!(r||o===null)){if(e.size&&a+o.length>e.size){r=!0,s(new ke(`content size at ${e.url} over limit: ${e.size}`,"max-size"));return}a+=o.length,t.push(o)}}),A.on("end",function(){if(!r){clearTimeout(n);try{i(Buffer.concat(t,a))}catch(o){s(new ke(`Could not create Buffer from response body for ${e.url}: ${o.message}`,"system",o))}}})})}function m8(e,A){if(typeof Fn!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let t=A.get("content-type"),a="utf-8",r,i;return t&&(r=/charset=([^;]*)/i.exec(t)),i=e.slice(0,1024).toString(),!r&&i&&(r=/<meta.+?charset=(['"])(.+?)\1/i.exec(i)),!r&&i&&(r=/<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(i),r||(r=/<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i.exec(i),r&&r.pop()),r&&(r=/charset=(.*)/i.exec(r.pop()))),!r&&i&&(r=/<\?xml.+?encoding=(['"])(.+?)\1/i.exec(i)),r&&(a=r.pop(),(a==="gb2312"||a==="gbk")&&(a="gb18030")),Fn(e,"UTF-8",a).toString()}function q2(e){return typeof e!="object"||typeof e.append!="function"||typeof e.delete!="function"||typeof e.get!="function"||typeof e.getAll!="function"||typeof e.has!="function"||typeof e.set!="function"?!1:e.constructor.name==="URLSearchParams"||Object.prototype.toString.call(e)==="[object URLSearchParams]"||typeof e.sort=="function"}function Ja(e){return typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&typeof e.constructor=="function"&&typeof e.constructor.name=="string"&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function H2(e){let A,t,a=e.body;if(e.bodyUsed)throw new Error("cannot clone body after it is used");return a instanceof kA&&typeof a.getBoundary!="function"&&(A=new Y2,t=new Y2,a.pipe(A),a.pipe(t),e[ot].body=A,a=t),a}function O2(e){return e===null?null:typeof e=="string"?"text/plain;charset=UTF-8":q2(e)?"application/x-www-form-urlencoded;charset=UTF-8":Ja(e)?e.type||null:Buffer.isBuffer(e)||Object.prototype.toString.call(e)==="[object ArrayBuffer]"||ArrayBuffer.isView(e)?null:typeof e.getBoundary=="function"?`multipart/form-data;boundary=${e.getBoundary()}`:e instanceof kA?null:"text/plain;charset=UTF-8"}function P2(e){let A=e.body;return A===null?0:Ja(A)?A.size:Buffer.isBuffer(A)?A.length:A&&typeof A.getLengthSync=="function"&&(A._lengthRetrievers&&A._lengthRetrievers.length==0||A.hasKnownLength&&A.hasKnownLength())?A.getLengthSync():null}function C8(e,A){let t=A.body;t===null?e.end():Ja(t)?t.stream().pipe(e):Buffer.isBuffer(t)?(e.write(t),e.end()):t.pipe(e)}Re.Promise=global.Promise;var W2=/[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/,kn=/[^\t\x20-\x7e\x80-\xff]/;function Ta(e){if(e=`${e}`,W2.test(e)||e==="")throw new TypeError(`${e} is not a legal HTTP header name`)}function J2(e){if(e=`${e}`,kn.test(e))throw new TypeError(`${e} is not a legal HTTP header value`)}function b1(e,A){A=A.toLowerCase();for(let t in e)if(t.toLowerCase()===A)return t}var ge=Symbol("map"),BA=class e{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0;if(this[ge]=Object.create(null),A instanceof e){let t=A.raw(),a=Object.keys(t);for(let r of a)for(let i of t[r])this.append(r,i);return}if(A!=null)if(typeof A=="object"){let t=A[Symbol.iterator];if(t!=null){if(typeof t!="function")throw new TypeError("Header pairs must be iterable");let a=[];for(let r of A){if(typeof r!="object"||typeof r[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");a.push(Array.from(r))}for(let r of a){if(r.length!==2)throw new TypeError("Each header pair must be a name/value tuple");this.append(r[0],r[1])}}else for(let a of Object.keys(A)){let r=A[a];this.append(a,r)}}else throw new TypeError("Provided initializer must be an object")}get(A){A=`${A}`,Ta(A);let t=b1(this[ge],A);return t===void 0?null:this[ge][t].join(", ")}forEach(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,a=Ln(this),r=0;for(;r<a.length;){var i=a[r];let s=i[0],n=i[1];A.call(t,n,s,this),a=Ln(this),r++}}set(A,t){A=`${A}`,t=`${t}`,Ta(A),J2(t);let a=b1(this[ge],A);this[ge][a!==void 0?a:A]=[t]}append(A,t){A=`${A}`,t=`${t}`,Ta(A),J2(t);let a=b1(this[ge],A);a!==void 0?this[ge][a].push(t):this[ge][A]=[t]}has(A){return A=`${A}`,Ta(A),b1(this[ge],A)!==void 0}delete(A){A=`${A}`,Ta(A);let t=b1(this[ge],A);t!==void 0&&delete this[ge][t]}raw(){return this[ge]}keys(){return Nn(this,"key")}values(){return Nn(this,"value")}[Symbol.iterator](){return Nn(this,"key+value")}};BA.prototype.entries=BA.prototype[Symbol.iterator];Object.defineProperty(BA.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(BA.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});function Ln(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"key+value";return Object.keys(e[ge]).sort().map(A==="key"?function(a){return a.toLowerCase()}:A==="value"?function(a){return e[ge][a].join(", ")}:function(a){return[a.toLowerCase(),e[ge][a].join(", ")]})}var Un=Symbol("internal");function Nn(e,A){let t=Object.create(Tn);return t[Un]={target:e,kind:A,index:0},t}var Tn=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==Tn)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[Un];let A=e.target,t=e.kind,a=e.index,r=Ln(A,t),i=r.length;return a>=i?{value:void 0,done:!0}:(this[Un].index=a+1,{value:r[a],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(Tn,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});function B8(e){let A=Object.assign({__proto__:null},e[ge]),t=b1(e[ge],"Host");return t!==void 0&&(A[t]=A[t][0]),A}function h8(e){let A=new BA;for(let t of Object.keys(e))if(!W2.test(t))if(Array.isArray(e[t]))for(let a of e[t])kn.test(a)||(A[ge][t]===void 0?A[ge][t]=[a]:A[ge][t].push(a));else kn.test(e[t])||(A[ge][t]=[e[t]]);return A}var vt=Symbol("Response internals"),I8=x2.STATUS_CODES,CA=class e{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Re.call(this,A,t);let a=t.status||200,r=new BA(t.headers);if(A!=null&&!r.has("Content-Type")){let i=O2(A);i&&r.append("Content-Type",i)}this[vt]={url:t.url,status:a,statusText:t.statusText||I8[a],headers:r,counter:t.counter}}get url(){return this[vt].url||""}get status(){return this[vt].status}get ok(){return this[vt].status>=200&&this[vt].status<300}get redirected(){return this[vt].counter>0}get statusText(){return this[vt].statusText}get headers(){return this[vt].headers}clone(){return new e(H2(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}};Re.mixIn(CA.prototype);Object.defineProperties(CA.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});Object.defineProperty(CA.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});var nt=Symbol("Request internals"),f8=$r.URL||_2.URL,w8=$r.parse,y8=$r.format;function bn(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)&&(e=new f8(e).toString()),w8(e)}var D8="destroy"in kA.Readable.prototype;function Kr(e){return typeof e=="object"&&typeof e[nt]=="object"}function R8(e){let A=e&&typeof e=="object"&&Object.getPrototypeOf(e);return!!(A&&A.constructor.name==="AbortSignal")}var bt=class e{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a;Kr(A)?a=bn(A.url):(A&&A.href?a=bn(A.href):a=bn(`${A}`),A={});let r=t.method||A.method||"GET";if(r=r.toUpperCase(),(t.body!=null||Kr(A)&&A.body!==null)&&(r==="GET"||r==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let i=t.body!=null?t.body:Kr(A)&&A.body!==null?H2(A):null;Re.call(this,i,{timeout:t.timeout||A.timeout||0,size:t.size||A.size||0});let s=new BA(t.headers||A.headers||{});if(i!=null&&!s.has("Content-Type")){let o=O2(i);o&&s.append("Content-Type",o)}let n=Kr(A)?A.signal:null;if("signal"in t&&(n=t.signal),n!=null&&!R8(n))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[nt]={method:r,redirect:t.redirect||A.redirect||"follow",headers:s,parsedURL:a,signal:n},this.follow=t.follow!==void 0?t.follow:A.follow!==void 0?A.follow:20,this.compress=t.compress!==void 0?t.compress:A.compress!==void 0?A.compress:!0,this.counter=t.counter||A.counter||0,this.agent=t.agent||A.agent}get method(){return this[nt].method}get url(){return y8(this[nt].parsedURL)}get headers(){return this[nt].headers}get redirect(){return this[nt].redirect}get signal(){return this[nt].signal}clone(){return new e(this)}};Re.mixIn(bt.prototype);Object.defineProperty(bt.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(bt.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}});function v8(e){let A=e[nt].parsedURL,t=new BA(e[nt].headers);if(t.has("Accept")||t.set("Accept","*/*"),!A.protocol||!A.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(A.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof kA.Readable&&!D8)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let a=null;if(e.body==null&&/^(POST|PUT)$/i.test(e.method)&&(a="0"),e.body!=null){let i=P2(e);typeof i=="number"&&(a=String(i))}a&&t.set("Content-Length",a),t.has("User-Agent")||t.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!t.has("Accept-Encoding")&&t.set("Accept-Encoding","gzip,deflate");let r=e.agent;return typeof r=="function"&&(r=r(A)),!t.has("Connection")&&!r&&t.set("Connection","close"),Object.assign({},A,{method:e.method,headers:B8(t),agent:r})}function Va(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}Va.prototype=Object.create(Error.prototype);Va.prototype.constructor=Va;Va.prototype.name="AbortError";var Ya=$r.URL||_2.URL,G2=kA.PassThrough,N8=function(A,t){let a=new Ya(t).hostname,r=new Ya(A).hostname;return a===r||a[a.length-r.length-1]==="."&&a.endsWith(r)},b8=function(A,t){let a=new Ya(t).protocol,r=new Ya(A).protocol;return a===r};function Nt(e,A){if(!Nt.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return Re.Promise=Nt.Promise,new Nt.Promise(function(t,a){let r=new bt(e,A),i=v8(r),s=(i.protocol==="https:"?E8:x2).request,n=r.signal,o=null,d=function(){let m=new Va("The user aborted a request.");a(m),r.body&&r.body instanceof kA.Readable&&Sn(r.body,m),!(!o||!o.body)&&o.body.emit("error",m)};if(n&&n.aborted){d();return}let l=function(){d(),c()},p=s(i),g;n&&n.addEventListener("abort",l);function c(){p.abort(),n&&n.removeEventListener("abort",l),clearTimeout(g)}r.timeout&&p.once("socket",function(u){g=setTimeout(function(){a(new ke(`network timeout at: ${r.url}`,"request-timeout")),c()},r.timeout)}),p.on("error",function(u){a(new ke(`request to ${r.url} failed, reason: ${u.message}`,"system",u)),o&&o.body&&Sn(o.body,u),c()}),S8(p,function(u){n&&n.aborted||o&&o.body&&Sn(o.body,u)}),parseInt(process.version.substring(1))<14&&p.on("socket",function(u){u.addListener("close",function(m){let Q=u.listenerCount("data")>0;if(o&&Q&&!m&&!(n&&n.aborted)){let C=new Error("Premature close");C.code="ERR_STREAM_PREMATURE_CLOSE",o.body.emit("error",C)}})}),p.on("response",function(u){clearTimeout(g);let m=h8(u.headers);if(Nt.isRedirect(u.statusCode)){let I=m.get("Location"),y=null;try{y=I===null?null:new Ya(I,r.url).toString()}catch{if(r.redirect!=="manual"){a(new ke(`uri requested responds with an invalid redirect URL: ${I}`,"invalid-redirect")),c();return}}switch(r.redirect){case"error":a(new ke(`uri requested responds with a redirect, redirect mode is set to error: ${r.url}`,"no-redirect")),c();return;case"manual":if(y!==null)try{m.set("Location",y)}catch(k){a(k)}break;case"follow":if(y===null)break;if(r.counter>=r.follow){a(new ke(`maximum redirect reached at: ${r.url}`,"max-redirect")),c();return}let b={headers:new BA(r.headers),follow:r.follow,counter:r.counter+1,agent:r.agent,compress:r.compress,method:r.method,body:r.body,signal:r.signal,timeout:r.timeout,size:r.size};if(!N8(r.url,y)||!b8(r.url,y))for(let k of["authorization","www-authenticate","cookie","cookie2"])b.headers.delete(k);if(u.statusCode!==303&&r.body&&P2(r)===null){a(new ke("Cannot follow redirect with body being a readable stream","unsupported-redirect")),c();return}(u.statusCode===303||(u.statusCode===301||u.statusCode===302)&&r.method==="POST")&&(b.method="GET",b.body=void 0,b.headers.delete("content-length")),t(Nt(new bt(y,b))),c();return}}u.once("end",function(){n&&n.removeEventListener("abort",l)});let Q=u.pipe(new G2),C={url:r.url,status:u.statusCode,statusText:u.statusMessage,headers:m,size:r.size,timeout:r.timeout,counter:r.counter},B=m.get("Content-Encoding");if(!r.compress||r.method==="HEAD"||B===null||u.statusCode===204||u.statusCode===304){o=new CA(Q,C),t(o);return}let w={flush:Zt.Z_SYNC_FLUSH,finishFlush:Zt.Z_SYNC_FLUSH};if(B=="gzip"||B=="x-gzip"){Q=Q.pipe(Zt.createGunzip(w)),o=new CA(Q,C),t(o);return}if(B=="deflate"||B=="x-deflate"){let I=u.pipe(new G2);I.once("data",function(y){(y[0]&15)===8?Q=Q.pipe(Zt.createInflate()):Q=Q.pipe(Zt.createInflateRaw()),o=new CA(Q,C),t(o)}),I.on("end",function(){o||(o=new CA(Q,C),t(o))});return}if(B=="br"&&typeof Zt.createBrotliDecompress=="function"){Q=Q.pipe(Zt.createBrotliDecompress()),o=new CA(Q,C),t(o);return}o=new CA(Q,C),t(o)}),C8(p,r)})}function S8(e,A){let t;e.on("socket",function(a){t=a}),e.on("response",function(a){let r=a.headers;r["transfer-encoding"]==="chunked"&&!r["content-length"]&&a.once("close",function(i){if(t&&t.listenerCount("data")>0&&!i){let n=new Error("Premature close");n.code="ERR_STREAM_PREMATURE_CLOSE",A(n)}})})}function Sn(e,A){e.destroy?e.destroy(A):(e.emit("error",A),e.end())}Nt.isRedirect=function(e){return e===301||e===302||e===303||e===307||e===308};Nt.Promise=global.Promise;Z2.exports=HA=Nt;Object.defineProperty(HA,"__esModule",{value:!0});HA.default=HA;HA.Headers=BA;HA.Request=bt;HA.Response=CA;HA.FetchError=ke});var z2=E((jt,X2)=>{var Ga=j2(),F8=Ga.default||Ga,ei=function(e,A){return/^\/\//.test(e)&&(e="https:"+e),F8.call(this,e,A)};ei.ponyfill=!0;X2.exports=jt=ei;jt.fetch=ei;jt.Headers=Ga.Headers;jt.Request=Ga.Request;jt.Response=Ga.Response;jt.default=ei});var el=E(F1=>{"use strict";var $2=F1&&F1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(F1,"__esModule",{value:!0});F1.useFetch=void 0;var K2=require("react"),k8=$2(s2()),L8=$2(p2()),U8=Wr(),T8=it(),M8=z2();function V8(e){if(e){let A=L8.default.parse(e),t=k8.default.parse(A.type);if(t.subtype==="json"||t.suffix==="json"||t.suffix&&/\bjson\b/i.test(t.suffix)||t.subtype&&/\bjson\b/i.test(t.subtype))return!0}return!1}async function Y8(e){if(!e.ok)throw new Error(e.statusText);let A=e.headers.get("content-type");return A&&V8(A)?await e.json():await e.text()}function J8(e,A){let{parseResponse:t,initialData:a,execute:r,keepPreviousData:i,onError:s,onData:n,onWillExecute:o,...d}=A||{},l={initialData:a,execute:r,keepPreviousData:i,onError:s,onData:n,onWillExecute:o},p=(0,T8.useLatest)(t||Y8),g=(0,K2.useRef)(),c=(0,K2.useCallback)(async(u,m)=>{let Q=await(0,M8.fetch)(u,{signal:g.current?.signal,...m});return await p.current(Q)},[p]);return(0,U8.useCachedPromise)(c,[e,d],{...l,abortable:g})}F1.useFetch=J8});var Al=E(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.signals=void 0;Xt.signals=[];Xt.signals.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Xt.signals.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Xt.signals.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT")});var tl=E(OA=>{"use strict";var Ai;Object.defineProperty(OA,"__esModule",{value:!0});OA.unload=OA.load=OA.onExit=OA.signals=void 0;var ti=Al();Object.defineProperty(OA,"signals",{enumerable:!0,get:function(){return ti.signals}});var ai=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",Mn=Symbol.for("signal-exit emitter"),Vn=globalThis,G8=Object.defineProperty.bind(Object),Yn=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Vn[Mn])return Vn[Mn];G8(Vn,Mn,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(A,t){this.listeners[A].push(t)}removeListener(A,t){let a=this.listeners[A],r=a.indexOf(t);r!==-1&&(r===0&&a.length===1?a.length=0:a.splice(r,1))}emit(A,t,a){if(this.emitted[A])return!1;this.emitted[A]=!0;let r=!1;for(let i of this.listeners[A])r=i(t,a)===!0||r;return A==="exit"&&(r=this.emit("afterExit",t,a)||r),r}},ri=class{},x8=e=>({onExit(A,t){return e.onExit(A,t)},load(){return e.load()},unload(){return e.unload()}}),Jn=class extends ri{onExit(){return()=>{}}load(){}unload(){}},Gn=class extends ri{#e=xn.platform==="win32"?"SIGINT":"SIGHUP";#a=new Yn;#A;#t;#r;#s={};#i=!1;constructor(A){super(),this.#A=A,this.#s={};for(let t of ti.signals)this.#s[t]=()=>{let a=this.#A.listeners(t),{count:r}=this.#a,i=A;if(typeof i.__signal_exit_emitter__=="object"&&typeof i.__signal_exit_emitter__.count=="number"&&(r+=i.__signal_exit_emitter__.count),a.length===r){this.unload();let s=this.#a.emit("exit",null,t),n=t==="SIGHUP"?this.#e:t;s||A.kill(A.pid,n)}};this.#r=A.reallyExit,this.#t=A.emit}onExit(A,t){if(!ai(this.#A))return()=>{};this.#i===!1&&this.load();let a=t?.alwaysLast?"afterExit":"exit";return this.#a.on(a,A),()=>{this.#a.removeListener(a,A),this.#a.listeners.exit.length===0&&this.#a.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#i){this.#i=!0,this.#a.count+=1;for(let A of ti.signals)try{let t=this.#s[A];t&&this.#A.on(A,t)}catch{}this.#A.emit=(A,...t)=>this.#o(A,...t),this.#A.reallyExit=A=>this.#n(A)}}unload(){this.#i&&(this.#i=!1,ti.signals.forEach(A=>{let t=this.#s[A];if(!t)throw new Error("Listener not defined for signal: "+A);try{this.#A.removeListener(A,t)}catch{}}),this.#A.emit=this.#t,this.#A.reallyExit=this.#r,this.#a.count-=1)}#n(A){return ai(this.#A)?(this.#A.exitCode=A||0,this.#a.emit("exit",this.#A.exitCode,null),this.#r.call(this.#A,this.#A.exitCode)):0}#o(A,...t){let a=this.#t;if(A==="exit"&&ai(this.#A)){typeof t[0]=="number"&&(this.#A.exitCode=t[0]);let r=a.call(this.#A,A,...t);return this.#a.emit("exit",this.#A.exitCode,null),r}else return a.call(this.#A,A,...t)}},xn=globalThis.process;Ai=x8(ai(xn)?new Gn(xn):new Jn),OA.onExit=Ai.onExit,OA.load=Ai.load,OA.unload=Ai.unload});var ii=E(hA=>{"use strict";var _8=hA&&hA.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(hA,"__esModule",{value:!0});hA.defaultParsing=hA.handleOutput=hA.getSpawnedResult=hA.getSpawnedPromise=void 0;var q8=require("node:buffer"),il=_8(require("node:stream")),H8=require("node:util"),O8=tl();function P8(e,{timeout:A}={}){let t=new Promise((n,o)=>{e.on("exit",(d,l)=>{n({exitCode:d,signal:l,timedOut:!1})}),e.on("error",d=>{o(d)}),e.stdin&&e.stdin.on("error",d=>{o(d)})});if(A===0||A===void 0)return t;let a,r=new Promise((n,o)=>{a=setTimeout(()=>{e.kill("SIGTERM"),o(Object.assign(new Error("Timed out"),{timedOut:!0,signal:"SIGTERM"}))},A)}),i=t.finally(()=>{clearTimeout(a)}),s=(0,O8.onExit)(()=>{e.kill()});return Promise.race([r,i]).finally(()=>s())}hA.getSpawnedPromise=P8;var _n=class extends Error{constructor(){super("The output is too big"),this.name="MaxBufferError"}},W8=(0,H8.promisify)(il.default.pipeline);function Z8(e){let{encoding:A}=e,t=A==="buffer",a=new il.default.PassThrough({objectMode:!1});A&&A!=="buffer"&&a.setEncoding(A);let r=0,i=[];return a.on("data",s=>{i.push(s),r+=s.length}),a.getBufferedValue=()=>t?Buffer.concat(i,r):i.join(""),a.getBufferedLength=()=>r,a}async function al(e,A){let t=Z8(A);return await new Promise((a,r)=>{let i=s=>{s&&t.getBufferedLength()<=q8.constants.MAX_LENGTH&&(s.bufferedData=t.getBufferedValue()),r(s)};(async()=>{try{await W8(e,t),a()}catch(s){i(s)}})(),t.on("data",()=>{t.getBufferedLength()>1e3*1e3*80&&i(new _n)})}),t.getBufferedValue()}async function rl(e,A){e.destroy();try{return await A}catch(t){return t.bufferedData}}async function j8({stdout:e,stderr:A},{encoding:t},a){let r=al(e,{encoding:t}),i=al(A,{encoding:t});try{return await Promise.all([a,r,i])}catch(s){return Promise.all([{error:s,exitCode:null,signal:s.signal,timedOut:s.timedOut||!1},rl(e,r),rl(A,i)])}}hA.getSpawnedResult=j8;function X8(e){let A=typeof e=="string"?` +`:10,t=typeof e=="string"?"\r":13;return e[e.length-1]===A&&(e=e.slice(0,-1)),e[e.length-1]===t&&(e=e.slice(0,-1)),e}function z8(e,A){return e.stripFinalNewline?X8(A):A}hA.handleOutput=z8;var K8=({timedOut:e,timeout:A,signal:t,exitCode:a})=>e?`timed out after ${A} milliseconds`:t!=null?`was killed with ${t}`:a!=null?`failed with exit code ${a}`:"failed",$8=({stdout:e,stderr:A,error:t,signal:a,exitCode:r,command:i,timedOut:s,options:n,parentError:o})=>{let l=`Command ${K8({timedOut:s,timeout:n?.timeout,signal:a,exitCode:r})}: ${i}`,p=t?`${l} ${t.message}`:l,g=[p,A,e].filter(Boolean).join(` -`);return t?t.originalMessage=t.message:t=o,t.message=g,t.shortMessage=p,t.command=i,t.exitCode=r,t.signal=a,t.stdout=e,t.stderr=A,"bufferedData"in t&&delete t.bufferedData,t};function f5({stdout:e,stderr:A,error:t,exitCode:a,signal:r,timedOut:i,command:s,options:n,parentError:o}){if(t||a!==0||r!==null)throw I5({error:t,exitCode:a,signal:r,stdout:e,stderr:A,command:s,timedOut:i,options:n,parentError:o});return e}IA.defaultParsing=f5});var Bl=E(M1=>{"use strict";var w5=M1&&M1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(M1,"__esModule",{value:!0});M1.useExec=void 0;var y5=w5(require("node:child_process")),ml=require("react"),D5=ei(),v5=dt(),Wa=gi(),R5=/ +/g;function N5(e,A){if(A)return[e,...A];let t=[];for(let a of e.trim().split(R5)){let r=t[t.length-1];r&&r.endsWith("\\")?t[t.length-1]=`${r.slice(0,-1)} ${a}`:t.push(a)}return t}function b5(e,A,t){let{parseOutput:a,input:r,onData:i,onWillExecute:s,initialData:n,execute:o,keepPreviousData:d,onError:l,...p}=Array.isArray(A)?t||{}:A||{},g={initialData:n,execute:o,keepPreviousData:d,onError:l,onData:i,onWillExecute:s},c=(0,ml.useRef)(),u=(0,v5.useLatest)(a||Wa.defaultParsing),Q=(0,ml.useCallback)(async(m,C,h,B)=>{let[I,...w]=N5(m,C),v=[I,...w].join(" "),S={stripFinalNewline:!0,...h,timeout:h?.timeout||1e4,signal:c.current?.signal,encoding:h?.encoding===null?"buffer":h?.encoding||"utf8",env:{PATH:"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",...process.env,...h?.env}},x=y5.default.spawn(I,w,S),we=(0,Wa.getSpawnedPromise)(x,S);B&&x.stdin.end(B);let[{error:me,exitCode:Rt,signal:Se,timedOut:le},CA,Z]=await(0,Wa.getSpawnedResult)(x,S,we),ae=(0,Wa.handleOutput)(S,CA),U=(0,Wa.handleOutput)(S,Z);return u.current({stdout:ae,stderr:U,error:me,exitCode:Rt,signal:Se,timedOut:le,command:v,options:S,parentError:new Error})},[u]);return(0,D5.useCachedPromise)(Q,[e,Array.isArray(A)?A:[],p,r],{...g,abortable:c})}M1.useExec=b5});var yl=E(V1=>{"use strict";var Ci=V1&&V1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(V1,"__esModule",{value:!0});V1.useSQL=void 0;var ZA=require("react/jsx-runtime"),ke=require("@raycast/api"),S5=require("node:fs"),ci=require("node:fs/promises"),fl=Ci(require("node:os")),hl=Ci(require("node:child_process")),Il=Ci(require("node:path")),F5=Ci(Fn()),ui=require("react"),k5=Ua(),L5=dt(),Ei=gi(),U5=vn();function T5(e,A,t){let{permissionPriming:a,...r}=t||{},[i,s]=(0,ui.useState)(),n=(0,L5.useLatest)(t||{}),o=(0,ui.useRef)(),d=(0,ui.useCallback)(p=>{console.error(p);let g=p instanceof Error&&p.message.includes("authorization denied")?new eo("You do not have permission to access the database."):p;M5(g)?s((0,ZA.jsx)(V5,{priming:n.current.permissionPriming})):n.current.onError?n.current.onError(g):(console.error(g),ke.environment.launchType!==ke.LaunchType.Background&&(0,ke.showToast)({style:ke.Toast.Style.Failure,title:"Cannot query the data",message:g.message,primaryAction:(0,U5.handleErrorToastAction)(g)}))},[n]),l=(0,ui.useMemo)(()=>{if(!(0,S5.existsSync)(e))throw new Error("The database does not exist");let p;return async(g,c)=>{let u=o.current?.signal,Q=hl.default.spawn("sqlite3",["--json","--readonly",g,c],{signal:u}),m=(0,Ei.getSpawnedPromise)(Q),[{error:C,exitCode:h,signal:B},I,w]=await(0,Ei.getSpawnedResult)(Q,{encoding:"utf-8"},m);if(Qi(u),w.match("(5)")||w.match("(14)")){if(!p){let x=Il.default.join(fl.default.tmpdir(),"useSQL",(0,F5.default)(g));await(0,ci.mkdir)(x,{recursive:!0}),Qi(u),p=Il.default.join(x,"db.db"),await(0,ci.copyFile)(g,p),await(0,ci.writeFile)(p+"-shm",""),await(0,ci.writeFile)(p+"-wal",""),Qi(u)}let v=hl.default.spawn("sqlite3",["--json","--readonly","--vfs","unix-none",p,c],{signal:u}),S=(0,Ei.getSpawnedPromise)(v);[{error:C,exitCode:h,signal:B},I,w]=await(0,Ei.getSpawnedResult)(v,{encoding:"utf-8"},S),Qi(u)}if(C||h!==0||B!==null)throw new Error(w);return JSON.parse(I.trim()||"[]")}},[e]);return{...(0,k5.usePromise)(l,[e,A],{...r,onError:d}),permissionView:i}}V1.useSQL=T5;var eo=class extends Error{constructor(A){super(A),this.name="PermissionError"}};function M5(e){return e instanceof Error&&e.name==="PermissionError"}var wl=parseInt(fl.default.release().split(".")[0])>=22,$n=wl?"Settings":"Preferences";function V5(e){let A=wl?{title:"Open System Settings -> Privacy",target:"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"}:{title:"Open System Preferences -> Security",target:"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"};return ke.environment.commandMode==="menu-bar"?(0,ZA.jsxs)(ke.MenuBarExtra,{icon:ke.Icon.Warning,title:ke.environment.commandName,children:[(0,ZA.jsx)(ke.MenuBarExtra.Item,{title:"Raycast needs full disk access",tooltip:`You can revert this access in ${$n} whenever you want`}),e.priming?(0,ZA.jsx)(ke.MenuBarExtra.Item,{title:e.priming,tooltip:`You can revert this access in ${$n} whenever you want`}):null,(0,ZA.jsx)(ke.MenuBarExtra.Separator,{}),(0,ZA.jsx)(ke.MenuBarExtra.Item,{title:A.title,onAction:()=>(0,ke.open)(A.target)})]}):(0,ZA.jsx)(ke.List,{children:(0,ZA.jsx)(ke.List.EmptyView,{icon:{source:{light:"https://raycast.com/uploads/extensions-utils-security-permissions-light.png",dark:"https://raycast.com/uploads/extensions-utils-security-permissions-dark.png"}},title:"Raycast needs full disk access.",description:`${e.priming?e.priming+` -`:""}You can revert this access in ${$n} whenever you want.`,actions:(0,ZA.jsx)(ke.ActionPanel,{children:(0,ZA.jsx)(ke.Action.Open,{...A})})})})}function Qi(e){if(e?.aborted){let A=new Error("aborted");throw A.name="AbortError",A}}});var Rl=E(t1=>{"use strict";Object.defineProperty(t1,"__esModule",{value:!0});t1.useForm=t1.FormValidation=void 0;var ct=require("react"),Dl=dt(),vl;(function(e){e.Required="required"})(vl=t1.FormValidation||(t1.FormValidation={}));function Ao(e,A){if(e){if(typeof e=="function")return e(A);if(e===vl.Required){let t=typeof A<"u"&&A!==null;if(t)switch(typeof A){case"string":t=A.length>0;break;case"object":Array.isArray(A)?t=A.length>0:A instanceof Date&&(t=A.getTime()>0);break;default:break}if(!t)return"The item is required"}}}function Y5(e){let{onSubmit:A,validation:t,initialValues:a={}}=e,[r,i]=(0,ct.useState)(a),[s,n]=(0,ct.useState)({}),o=(0,ct.useRef)({}),d=(0,Dl.useLatest)(t||{}),l=(0,Dl.useLatest)(A),p=(0,ct.useCallback)(C=>{o.current[C]?.focus()},[o]),g=(0,ct.useCallback)(async C=>{let h=!1;for(let[I,w]of Object.entries(d.current)){let v=Ao(w,C[I]);v&&(h||(h={},p(I)),h[I]=v)}if(h)return n(h),!1;let B=await l.current(C);return typeof B=="boolean"?B:!0},[d,l,p]),c=(0,ct.useCallback)((C,h)=>{n(B=>({...B,[C]:h}))},[n]),u=(0,ct.useCallback)(function(C,h){i(B=>({...B,[C]:typeof h=="function"?h(B[C]):h}))},[i]),Q=(0,ct.useMemo)(()=>new Proxy({},{get(C,h){let B=d.current[h],I=r[h];return{onChange(w){s[h]&&(Ao(B,w)||c(h,void 0)),u(h,w)},onBlur(w){let v=Ao(B,w.target.value);v&&c(h,v)},error:s[h],id:h,value:typeof I>"u"?null:I,ref:w=>{o.current[h]=w}}}}),[s,d,c,r,o,u]),m=(0,ct.useCallback)((C={})=>{i(C),n({})},[i,n]);return{handleSubmit:g,setValidationError:c,setValue:u,values:r,itemProps:Q,focus:p,reset:m}}t1.useForm=Y5});var bl=E(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.useAI=void 0;var Nl=require("react"),J5=require("@raycast/api"),G5=Ua();function x5(e,A={}){let{creativity:t,stream:a,model:r,...i}=A,[s,n]=(0,Nl.useState)(""),o=(0,Nl.useRef)(),{isLoading:d,error:l,revalidate:p}=(0,G5.usePromise)(async(g,c,u)=>{n("");let Q=J5.AI.ask(g,{creativity:c,model:r,signal:o.current?.signal});u===!1?n(await Q):(Q.on("data",m=>{n(C=>C+m)}),await Q)},[e,t,a],{...i,abortable:o});return{isLoading:d,data:s,error:l,revalidate:p}}mi.useAI=x5});var kl=E(Bi=>{"use strict";Object.defineProperty(Bi,"__esModule",{value:!0});Bi.useFrecencySorting=void 0;var to=require("react"),Sl=dt(),_5=Kr(),q5=10,Fl=24*60*60*1e3,H5=Math.log(2)/(q5*Fl),O5={Default:100,Embed:0,Bookmark:140};function P5(e){let A=Date.now(),t=e?e.lastVisited:0,a=e?e.frecency:0,r=(A-t)/Fl,i=O5.Default*Math.exp(-H5*r),s=a+i;return{lastVisited:A,frecency:s}}var W5=e=>{if(process.env.NODE_ENV!=="production"&&(typeof e!="object"||!e||!("id"in e)||typeof e.id!="string"))throw new Error("Specify a key function or make sure your items have an 'id' property");return e.id};function j5(e,A){let t=(0,Sl.useLatest)(A?.key||W5),a=(0,Sl.useLatest)(A?.sortUnvisited),[r,i]=(0,_5.useCachedState)(`raycast_frecency_${A?.namespace}`,{}),s=(0,to.useCallback)(async function(l){let p=t.current(l);i(g=>{let c=g[p],u=P5(c);return{...g,[p]:u}})},[t,i]),n=(0,to.useCallback)(async function(l){let p=t.current(l);i(g=>{let c={...g};return delete c[p],c})},[t,i]);return{data:(0,to.useMemo)(()=>e?e.sort((d,l)=>{let p=r[t.current(d)],g=r[t.current(l)];return p&&!g?-1:!p&&g?1:p&&g?g.frecency-p.frecency:a.current?a.current(d,l):0}):[],[r,e,t,a]),visitItem:s,resetRanking:n}}Bi.useFrecencySorting=j5});var Vl=E(Y1=>{"use strict";Object.defineProperty(Y1,"__esModule",{value:!0});Y1.slightlyLighterColor=Y1.slightlyDarkerColor=void 0;function Z5(e){let A=0,t=0,a=0;if(e.length===4)A=parseInt(`${e[1]}${e[1]}`,16),t=parseInt(`${e[2]}${e[2]}`,16),a=parseInt(`${e[3]}${e[3]}`,16);else if(e.length===7)A=parseInt(`${e[1]}${e[2]}`,16),t=parseInt(`${e[3]}${e[4]}`,16),a=parseInt(`${e[5]}${e[6]}`,16);else throw new Error(`Malformed hex color: ${e}`);return{r:A,g:t,b:a}}function X5({r:e,g:A,b:t}){let a=e.toString(16),r=A.toString(16),i=t.toString(16);return a.length===1&&(a=`0${a}`),r.length===1&&(r=`0${r}`),i.length===1&&(i=`0${i}`),`#${a}${r}${i}`}function z5({r:e,g:A,b:t}){e/=255,A/=255,t/=255;let a=Math.min(e,A,t),r=Math.max(e,A,t),i=r-a,s=0,n=0,o=0;return i===0?s=0:r===e?s=(A-t)/i%6:r===A?s=(t-e)/i+2:s=(e-A)/i+4,s=Math.round(s*60),s<0&&(s+=360),o=(r+a)/2,n=i===0?0:i/(1-Math.abs(2*o-1)),n=+(n*100).toFixed(1),o=+(o*100).toFixed(1),{h:s,s:n,l:o}}function K5({h:e,s:A,l:t}){A/=100,t/=100;let a=(1-Math.abs(2*t-1))*A,r=a*(1-Math.abs(e/60%2-1)),i=t-a/2,s=0,n=0,o=0;return e>=0&&e<60?(s=a,n=r,o=0):e>=60&&e<120?(s=r,n=a,o=0):e>=120&&e<180?(s=0,n=a,o=r):e>=180&&e<240?(s=0,n=r,o=a):e>=240&&e<300?(s=r,n=0,o=a):e>=300&&e<360&&(s=a,n=0,o=r),s=Math.round((s+i)*255),n=Math.round((n+i)*255),o=Math.round((o+i)*255),{r:s,g:n,b:o}}function Ll(e){return z5(Z5(e))}function Ul(e){return X5(K5(e))}function Tl(e,A,t){return A<t?e<A?A:e>t?t:e:e<t?t:e>A?A:e}var Ml=12;function $5(e){let A=Ll(e);return Ul({h:A.h,s:A.s,l:Tl(A.l-Ml,0,100)})}Y1.slightlyDarkerColor=$5;function eC(e){let A=Ll(e);return Ul({h:A.h,s:A.s,l:Tl(A.l+Ml,0,100)})}Y1.slightlyLighterColor=eC});var Gl=E(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.getAvatarIcon=void 0;var Yl=Vl();function J1(e,A){let t=e.charCodeAt(A);if(Number.isNaN(t))return["",A];if(t<55296||t>57343)return[e.charAt(A),A];if(55296<=t&&t<=56319){if(e.length<=A+1)throw new Error("High surrogate without following low surrogate");let r=e.charCodeAt(A+1);if(56320>r||r>57343)throw new Error("High surrogate without following low surrogate");return[e.charAt(A)+e.charAt(A+1),A+1]}if(A===0)throw new Error("Low surrogate without preceding high surrogate");let a=e.charCodeAt(A-1);if(55296>a||a>56319)throw new Error("Low surrogate without preceding high surrogate");return[e.charAt(A+1),A+1]}var Jl=["#DC829A","#D64854","#D47600","#D36CDD","#52A9E4","#7871E8","#70920F","#43B93A","#EB6B3E","#26B795","#D85A9B","#A067DC","#BD9500","#5385D9"];function AC(e,A){let t=e.trim().split(" "),a;if(t.length==1&&J1(t[0],0)[0])a=J1(t[0],0)[0];else if(t.length>1){let o=J1(t[0],0)[0]||"",d=J1(t[t.length-1],0)[0]??"";a=o+d}else a="";let r;if(A?.background)r=A?.background;else{let o=0,[d,l]=J1(a,0);for(;d;)o+=d.charCodeAt(0),[d,l]=J1(a,l+1);let p=o%Jl.length;r=Jl[p]}let s=50-0;return`data:image/svg+xml,${`<svg width="100px" height="100px"> +`);return t?t.originalMessage=t.message:t=o,t.message=g,t.shortMessage=p,t.command=i,t.exitCode=r,t.signal=a,t.stdout=e,t.stderr=A,"bufferedData"in t&&delete t.bufferedData,t};function e5({stdout:e,stderr:A,error:t,exitCode:a,signal:r,timedOut:i,command:s,options:n,parentError:o}){if(t||a!==0||r!==null)throw $8({error:t,exitCode:a,signal:r,stdout:e,stderr:A,command:s,timedOut:i,options:n,parentError:o});return e}hA.defaultParsing=e5});var nl=E(k1=>{"use strict";var A5=k1&&k1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(k1,"__esModule",{value:!0});k1.useExec=void 0;var t5=A5(require("node:child_process")),sl=require("react"),a5=Wr(),r5=it(),xa=ii(),i5=/ +/g;function s5(e,A){if(A)return[e,...A];let t=[];for(let a of e.trim().split(i5)){let r=t[t.length-1];r&&r.endsWith("\\")?t[t.length-1]=`${r.slice(0,-1)} ${a}`:t.push(a)}return t}function n5(e,A,t){let{parseOutput:a,input:r,onData:i,onWillExecute:s,initialData:n,execute:o,keepPreviousData:d,onError:l,...p}=Array.isArray(A)?t||{}:A||{},g={initialData:n,execute:o,keepPreviousData:d,onError:l,onData:i,onWillExecute:s},c=(0,sl.useRef)(),u=(0,r5.useLatest)(a||xa.defaultParsing),m=(0,sl.useCallback)(async(Q,C,B,w)=>{let[I,...y]=s5(Q,C),b=[I,...y].join(" "),k={stripFinalNewline:!0,...B,timeout:B?.timeout||1e4,signal:c.current?.signal,encoding:B?.encoding===null?"buffer":B?.encoding||"utf8",env:{PATH:"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",...process.env,...B?.env}},x=t5.default.spawn(I,y,k),ye=(0,xa.getSpawnedPromise)(x,k);w&&x.stdin.end(w);let[{error:Be,exitCode:wt,signal:Fe,timedOut:le},QA,j]=await(0,xa.getSpawnedResult)(x,k,ye),re=(0,xa.handleOutput)(k,QA),U=(0,xa.handleOutput)(k,j);return u.current({stdout:re,stderr:U,error:Be,exitCode:wt,signal:Fe,timedOut:le,command:b,options:k,parentError:new Error})},[u]);return(0,a5.useCachedPromise)(m,[e,Array.isArray(A)?A:[],p,r],{...g,abortable:c})}k1.useExec=n5});var gl=E(L1=>{"use strict";var pi=L1&&L1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(L1,"__esModule",{value:!0});L1.useSQL=void 0;var PA=require("react/jsx-runtime"),Le=require("@raycast/api"),o5=require("node:fs"),si=require("node:fs/promises"),pl=pi(require("node:os")),ol=pi(require("node:child_process")),dl=pi(require("node:path")),d5=pi(In()),ni=require("react"),p5=ba(),l5=it(),oi=ii(),g5=Qn();function c5(e,A,t){let{permissionPriming:a,...r}=t||{},[i,s]=(0,ni.useState)(),n=(0,l5.useLatest)(t||{}),o=(0,ni.useRef)(),d=(0,ni.useCallback)(p=>{console.error(p);let g=p instanceof Error&&p.message.includes("authorization denied")?new Hn("You do not have permission to access the database."):p;u5(g)?s((0,PA.jsx)(E5,{priming:n.current.permissionPriming})):n.current.onError?n.current.onError(g):(console.error(g),Le.environment.launchType!==Le.LaunchType.Background&&(0,Le.showToast)({style:Le.Toast.Style.Failure,title:"Cannot query the data",message:g.message,primaryAction:(0,g5.handleErrorToastAction)(g)}))},[n]),l=(0,ni.useMemo)(()=>{if(!(0,o5.existsSync)(e))throw new Error("The database does not exist");let p;return async(g,c)=>{let u=o.current?.signal,m=ol.default.spawn("sqlite3",["--json","--readonly",g,c],{signal:u}),Q=(0,oi.getSpawnedPromise)(m),[{error:C,exitCode:B,signal:w},I,y]=await(0,oi.getSpawnedResult)(m,{encoding:"utf-8"},Q);if(di(u),y.match("(5)")||y.match("(14)")){if(!p){let x=dl.default.join(pl.default.tmpdir(),"useSQL",(0,d5.default)(g));await(0,si.mkdir)(x,{recursive:!0}),di(u),p=dl.default.join(x,"db.db"),await(0,si.copyFile)(g,p),await(0,si.writeFile)(p+"-shm",""),await(0,si.writeFile)(p+"-wal",""),di(u)}let b=ol.default.spawn("sqlite3",["--json","--readonly","--vfs","unix-none",p,c],{signal:u}),k=(0,oi.getSpawnedPromise)(b);[{error:C,exitCode:B,signal:w},I,y]=await(0,oi.getSpawnedResult)(b,{encoding:"utf-8"},k),di(u)}if(C||B!==0||w!==null)throw new Error(y);return JSON.parse(I.trim()||"[]")}},[e]);return{...(0,p5.usePromise)(l,[e,A],{...r,onError:d}),permissionView:i}}L1.useSQL=c5;var Hn=class extends Error{constructor(A){super(A),this.name="PermissionError"}};function u5(e){return e instanceof Error&&e.name==="PermissionError"}var ll=parseInt(pl.default.release().split(".")[0])>=22,qn=ll?"Settings":"Preferences";function E5(e){let A=ll?{title:"Open System Settings -> Privacy",target:"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"}:{title:"Open System Preferences -> Security",target:"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"};return Le.environment.commandMode==="menu-bar"?(0,PA.jsxs)(Le.MenuBarExtra,{icon:Le.Icon.Warning,title:Le.environment.commandName,children:[(0,PA.jsx)(Le.MenuBarExtra.Item,{title:"Raycast needs full disk access",tooltip:`You can revert this access in ${qn} whenever you want`}),e.priming?(0,PA.jsx)(Le.MenuBarExtra.Item,{title:e.priming,tooltip:`You can revert this access in ${qn} whenever you want`}):null,(0,PA.jsx)(Le.MenuBarExtra.Separator,{}),(0,PA.jsx)(Le.MenuBarExtra.Item,{title:A.title,onAction:()=>(0,Le.open)(A.target)})]}):(0,PA.jsx)(Le.List,{children:(0,PA.jsx)(Le.List.EmptyView,{icon:{source:{light:"https://raycast.com/uploads/extensions-utils-security-permissions-light.png",dark:"https://raycast.com/uploads/extensions-utils-security-permissions-dark.png"}},title:"Raycast needs full disk access.",description:`${e.priming?e.priming+` +`:""}You can revert this access in ${qn} whenever you want.`,actions:(0,PA.jsx)(Le.ActionPanel,{children:(0,PA.jsx)(Le.Action.Open,{...A})})})})}function di(e){if(e?.aborted){let A=new Error("aborted");throw A.name="AbortError",A}}});var El=E(zt=>{"use strict";Object.defineProperty(zt,"__esModule",{value:!0});zt.useForm=zt.FormValidation=void 0;var dt=require("react"),cl=it(),ul;(function(e){e.Required="required"})(ul=zt.FormValidation||(zt.FormValidation={}));function On(e,A){if(e){if(typeof e=="function")return e(A);if(e===ul.Required){let t=typeof A<"u"&&A!==null;if(t)switch(typeof A){case"string":t=A.length>0;break;case"object":Array.isArray(A)?t=A.length>0:A instanceof Date&&(t=A.getTime()>0);break;default:break}if(!t)return"The item is required"}}}function Q5(e){let{onSubmit:A,validation:t,initialValues:a={}}=e,[r,i]=(0,dt.useState)(a),[s,n]=(0,dt.useState)({}),o=(0,dt.useRef)({}),d=(0,cl.useLatest)(t||{}),l=(0,cl.useLatest)(A),p=(0,dt.useCallback)(C=>{o.current[C]?.focus()},[o]),g=(0,dt.useCallback)(async C=>{let B=!1;for(let[I,y]of Object.entries(d.current)){let b=On(y,C[I]);b&&(B||(B={},p(I)),B[I]=b)}if(B)return n(B),!1;let w=await l.current(C);return typeof w=="boolean"?w:!0},[d,l,p]),c=(0,dt.useCallback)((C,B)=>{n(w=>({...w,[C]:B}))},[n]),u=(0,dt.useCallback)(function(C,B){i(w=>({...w,[C]:typeof B=="function"?B(w[C]):B}))},[i]),m=(0,dt.useMemo)(()=>new Proxy({},{get(C,B){let w=d.current[B],I=r[B];return{onChange(y){s[B]&&(On(w,y)||c(B,void 0)),u(B,y)},onBlur(y){let b=On(w,y.target.value);b&&c(B,b)},error:s[B],id:B,value:typeof I>"u"?null:I,ref:y=>{o.current[B]=y}}}}),[s,d,c,r,o,u]),Q=(0,dt.useCallback)((C={})=>{i(C),n({})},[i,n]);return{handleSubmit:g,setValidationError:c,setValue:u,values:r,itemProps:m,focus:p,reset:Q}}zt.useForm=Q5});var ml=E(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.useAI=void 0;var Ql=require("react"),m5=require("@raycast/api"),C5=ba();function B5(e,A={}){let{creativity:t,stream:a,model:r,...i}=A,[s,n]=(0,Ql.useState)(""),o=(0,Ql.useRef)(),{isLoading:d,error:l,revalidate:p}=(0,C5.usePromise)(async(g,c,u)=>{n("");let m=m5.AI.ask(g,{creativity:c,model:r,signal:o.current?.signal});u===!1?n(await m):(m.on("data",Q=>{n(C=>C+Q)}),await m)},[e,t,a],{...i,abortable:o});return{isLoading:d,data:s,error:l,revalidate:p}}li.useAI=B5});var hl=E(gi=>{"use strict";Object.defineProperty(gi,"__esModule",{value:!0});gi.useFrecencySorting=void 0;var Pn=require("react"),Cl=it(),h5=Or(),I5=10,Bl=24*60*60*1e3,f5=Math.log(2)/(I5*Bl),w5={Default:100,Embed:0,Bookmark:140};function y5(e){let A=Date.now(),t=e?e.lastVisited:0,a=e?e.frecency:0,r=(A-t)/Bl,i=w5.Default*Math.exp(-f5*r),s=a+i;return{lastVisited:A,frecency:s}}var D5=e=>{if(process.env.NODE_ENV!=="production"&&(typeof e!="object"||!e||!("id"in e)||typeof e.id!="string"))throw new Error("Specify a key function or make sure your items have an 'id' property");return e.id};function R5(e,A){let t=(0,Cl.useLatest)(A?.key||D5),a=(0,Cl.useLatest)(A?.sortUnvisited),[r,i]=(0,h5.useCachedState)(`raycast_frecency_${A?.namespace}`,{}),s=(0,Pn.useCallback)(async function(l){let p=t.current(l);i(g=>{let c=g[p],u=y5(c);return{...g,[p]:u}})},[t,i]),n=(0,Pn.useCallback)(async function(l){let p=t.current(l);i(g=>{let c={...g};return delete c[p],c})},[t,i]);return{data:(0,Pn.useMemo)(()=>e?e.sort((d,l)=>{let p=r[t.current(d)],g=r[t.current(l)];return p&&!g?-1:!p&&g?1:p&&g?g.frecency-p.frecency:a.current?a.current(d,l):0}):[],[r,e,t,a]),visitItem:s,resetRanking:n}}gi.useFrecencySorting=R5});var Dl=E(U1=>{"use strict";Object.defineProperty(U1,"__esModule",{value:!0});U1.slightlyLighterColor=U1.slightlyDarkerColor=void 0;function v5(e){let A=0,t=0,a=0;if(e.length===4)A=parseInt(`${e[1]}${e[1]}`,16),t=parseInt(`${e[2]}${e[2]}`,16),a=parseInt(`${e[3]}${e[3]}`,16);else if(e.length===7)A=parseInt(`${e[1]}${e[2]}`,16),t=parseInt(`${e[3]}${e[4]}`,16),a=parseInt(`${e[5]}${e[6]}`,16);else throw new Error(`Malformed hex color: ${e}`);return{r:A,g:t,b:a}}function N5({r:e,g:A,b:t}){let a=e.toString(16),r=A.toString(16),i=t.toString(16);return a.length===1&&(a=`0${a}`),r.length===1&&(r=`0${r}`),i.length===1&&(i=`0${i}`),`#${a}${r}${i}`}function b5({r:e,g:A,b:t}){e/=255,A/=255,t/=255;let a=Math.min(e,A,t),r=Math.max(e,A,t),i=r-a,s=0,n=0,o=0;return i===0?s=0:r===e?s=(A-t)/i%6:r===A?s=(t-e)/i+2:s=(e-A)/i+4,s=Math.round(s*60),s<0&&(s+=360),o=(r+a)/2,n=i===0?0:i/(1-Math.abs(2*o-1)),n=+(n*100).toFixed(1),o=+(o*100).toFixed(1),{h:s,s:n,l:o}}function S5({h:e,s:A,l:t}){A/=100,t/=100;let a=(1-Math.abs(2*t-1))*A,r=a*(1-Math.abs(e/60%2-1)),i=t-a/2,s=0,n=0,o=0;return e>=0&&e<60?(s=a,n=r,o=0):e>=60&&e<120?(s=r,n=a,o=0):e>=120&&e<180?(s=0,n=a,o=r):e>=180&&e<240?(s=0,n=r,o=a):e>=240&&e<300?(s=r,n=0,o=a):e>=300&&e<360&&(s=a,n=0,o=r),s=Math.round((s+i)*255),n=Math.round((n+i)*255),o=Math.round((o+i)*255),{r:s,g:n,b:o}}function Il(e){return b5(v5(e))}function fl(e){return N5(S5(e))}function wl(e,A,t){return A<t?e<A?A:e>t?t:e:e<t?t:e>A?A:e}var yl=12;function F5(e){let A=Il(e);return fl({h:A.h,s:A.s,l:wl(A.l-yl,0,100)})}U1.slightlyDarkerColor=F5;function k5(e){let A=Il(e);return fl({h:A.h,s:A.s,l:wl(A.l+yl,0,100)})}U1.slightlyLighterColor=k5});var Nl=E(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.getAvatarIcon=void 0;var Rl=Dl();function T1(e,A){let t=e.charCodeAt(A);if(Number.isNaN(t))return["",A];if(t<55296||t>57343)return[e.charAt(A),A];if(55296<=t&&t<=56319){if(e.length<=A+1)throw new Error("High surrogate without following low surrogate");let r=e.charCodeAt(A+1);if(56320>r||r>57343)throw new Error("High surrogate without following low surrogate");return[e.charAt(A)+e.charAt(A+1),A+1]}if(A===0)throw new Error("Low surrogate without preceding high surrogate");let a=e.charCodeAt(A-1);if(55296>a||a>56319)throw new Error("Low surrogate without preceding high surrogate");return[e.charAt(A+1),A+1]}var vl=["#DC829A","#D64854","#D47600","#D36CDD","#52A9E4","#7871E8","#70920F","#43B93A","#EB6B3E","#26B795","#D85A9B","#A067DC","#BD9500","#5385D9"];function L5(e,A){let t=e.trim().split(" "),a;if(t.length==1&&T1(t[0],0)[0])a=T1(t[0],0)[0];else if(t.length>1){let o=T1(t[0],0)[0]||"",d=T1(t[t.length-1],0)[0]??"";a=o+d}else a="";let r;if(A?.background)r=A?.background;else{let o=0,[d,l]=T1(a,0);for(;d;)o+=d.charCodeAt(0),[d,l]=T1(a,l+1);let p=o%vl.length;r=vl[p]}let s=50-0;return`data:image/svg+xml,${`<svg width="100px" height="100px"> ${A?.gradient!==!1?`<defs> <linearGradient id="Gradient" x1="0.25" x2="0.75" y1="0" y2="1"> - <stop offset="0%" stop-color="${(0,Yl.slightlyLighterColor)(r)}"/> + <stop offset="0%" stop-color="${(0,Rl.slightlyLighterColor)(r)}"/> <stop offset="50%" stop-color="${r}"/> - <stop offset="100%" stop-color="${(0,Yl.slightlyDarkerColor)(r)}"/> + <stop offset="100%" stop-color="${(0,Rl.slightlyDarkerColor)(r)}"/> </linearGradient> </defs>`:""} <circle cx="50" cy="50" r="${s}" fill="${A?.gradient!==!1?"url(#Gradient)":r}" /> ${a?`<text x="50" y="80" font-size="${s-1}" font-family="Inter, sans-serif" text-anchor="middle" fill="white">${a.toUpperCase()}</text>`:""} </svg> `.replaceAll(` -`,"")}`}hi.getAvatarIcon=AC});var _l=E(Ii=>{"use strict";Object.defineProperty(Ii,"__esModule",{value:!0});Ii.getFavicon=void 0;var xl=require("@raycast/api"),tC=require("url");function aC(e,A){try{let a=(typeof e=="string"?new tC.URL(e):e).hostname;return{source:`https://www.google.com/s2/favicons?sz=${A?.size??64}&domain=${a}`,fallback:A?.fallback??xl.Icon.Link,mask:A?.mask}}catch(t){return console.error(t),xl.Icon.Link}}Ii.getFavicon=aC});var Ol=E(fi=>{"use strict";Object.defineProperty(fi,"__esModule",{value:!0});fi.getProgressIcon=void 0;var ql=require("@raycast/api");function Hl(e,A,t,a){let r=(a-90)*Math.PI/180;return{x:e+t*Math.cos(r),y:A+t*Math.sin(r)}}function rC(e,A,t,a,r){let i=Hl(e,A,t,r),s=Hl(e,A,t,a),n=r-a<=180?"0":"1";return["M",i.x,i.y,"A",t,t,0,n,0,s.x,s.y].join(" ")}function iC(e,A=ql.Color.Red,t){let a=t?.background||(ql.environment.appearance==="light"?"black":"white"),r=t?.backgroundOpacity||.1,i=10,n=50-5-i/2;return`data:image/svg+xml,${`<svg width="100px" height="100px"> +`,"")}`}ci.getAvatarIcon=L5});var Sl=E(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.getFavicon=void 0;var bl=require("@raycast/api"),U5=require("url");function T5(e,A){try{let a=(typeof e=="string"?new U5.URL(e):e).hostname;return{source:`https://www.google.com/s2/favicons?sz=${A?.size??64}&domain=${a}`,fallback:A?.fallback??bl.Icon.Link,mask:A?.mask}}catch(t){return console.error(t),bl.Icon.Link}}ui.getFavicon=T5});var Ll=E(Ei=>{"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});Ei.getProgressIcon=void 0;var Fl=require("@raycast/api");function kl(e,A,t,a){let r=(a-90)*Math.PI/180;return{x:e+t*Math.cos(r),y:A+t*Math.sin(r)}}function M5(e,A,t,a,r){let i=kl(e,A,t,r),s=kl(e,A,t,a),n=r-a<=180?"0":"1";return["M",i.x,i.y,"A",t,t,0,n,0,s.x,s.y].join(" ")}function V5(e,A=Fl.Color.Red,t){let a=t?.background||(Fl.environment.appearance==="light"?"black":"white"),r=t?.backgroundOpacity||.1,i=10,n=50-5-i/2;return`data:image/svg+xml,${`<svg width="100px" height="100px"> <circle cx="50" cy="50" r="${n}" stroke-width="${i}" stroke="${e<1?a:A}" opacity="${e<1?r:"1"}" fill="none" /> - ${e>0&&e<1?`<path d="${rC(50,50,n,0,e*360)}" stroke="${A}" stroke-width="${i}" fill="none" />`:""} + ${e>0&&e<1?`<path d="${M5(50,50,n,0,e*360)}" stroke="${A}" stroke-width="${i}" fill="none" />`:""} </svg> `.replaceAll(` -`,"")}`}fi.getProgressIcon=iC});var Pl=E(ut=>{"use strict";var sC=ut&&ut.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),ao=ut&&ut.__exportStar||function(e,A){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(A,t)&&sC(A,e,t)};Object.defineProperty(ut,"__esModule",{value:!0});ao(Gl(),ut);ao(_l(),ut);ao(Ol(),ut)});var Wl=E(G1=>{"use strict";var nC=G1&&G1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(G1,"__esModule",{value:!0});G1.runAppleScript=void 0;var oC=nC(require("node:child_process")),ja=gi();async function dC(e,A,t){let{humanReadableOutput:a,language:r,timeout:i,...s}=Array.isArray(A)?t||{}:A||{},n=a!==!1?[]:["-ss"];r==="JavaScript"&&n.push("-l","JavaScript"),Array.isArray(A)&&n.push("-",...A);let o=oC.default.spawn("osascript",n,{...s,env:{PATH:"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"}}),d=(0,ja.getSpawnedPromise)(o,{timeout:i||1e4});o.stdin.end(e);let[{error:l,exitCode:p,signal:g,timedOut:c},u,Q]=await(0,ja.getSpawnedResult)(o,{encoding:"utf8"},d),m=(0,ja.handleOutput)({stripFinalNewline:!0},u),C=(0,ja.handleOutput)({stripFinalNewline:!0},Q);return(0,ja.defaultParsing)({stdout:m,stderr:C,error:l,exitCode:p,signal:g,timedOut:c,command:"osascript",options:t,parentError:new Error})}G1.runAppleScript=dC});var ro=E(Le=>{"use strict";var pC=Le&&Le.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),TA=Le&&Le.__exportStar||function(e,A){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(A,t)&&pC(A,e,t)};Object.defineProperty(Le,"__esModule",{value:!0});TA(Ua(),Le);TA(Kr(),Le);TA(ei(),Le);TA(gl(),Le);TA(Bl(),Le);TA(yl(),Le);TA(Rl(),Le);TA(bl(),Le);TA(kl(),Le);TA(Pl(),Le);TA(Wl(),Le)});var re=E((wb,jl)=>{jl.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size")}});var $=E((yb,Zl)=>{"use strict";var Ee=class extends Error{constructor(A){super(A),this.name="UndiciError",this.code="UND_ERR"}},io=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ConnectTimeoutError",this.message=A||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},so=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="HeadersTimeoutError",this.message=A||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},no=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="HeadersOverflowError",this.message=A||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},oo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="BodyTimeoutError",this.message=A||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},po=class e extends Ee{constructor(A,t,a,r){super(A),Error.captureStackTrace(this,e),this.name="ResponseStatusCodeError",this.message=A||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=r,this.status=t,this.statusCode=t,this.headers=a}},lo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InvalidArgumentError",this.message=A||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},go=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InvalidReturnValueError",this.message=A||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},co=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="AbortError",this.message=A||"Request aborted",this.code="UND_ERR_ABORTED"}},uo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InformationalError",this.message=A||"Request information",this.code="UND_ERR_INFO"}},Eo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="RequestContentLengthMismatchError",this.message=A||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},Qo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ResponseContentLengthMismatchError",this.message=A||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},Co=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ClientDestroyedError",this.message=A||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},mo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ClientClosedError",this.message=A||"The client is closed",this.code="UND_ERR_CLOSED"}},Bo=class e extends Ee{constructor(A,t){super(A),Error.captureStackTrace(this,e),this.name="SocketError",this.message=A||"Socket error",this.code="UND_ERR_SOCKET",this.socket=t}},wi=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="NotSupportedError",this.message=A||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},ho=class extends Ee{constructor(A){super(A),Error.captureStackTrace(this,wi),this.name="MissingUpstreamError",this.message=A||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},Io=class e extends Error{constructor(A,t,a){super(A),Error.captureStackTrace(this,e),this.name="HTTPParserError",this.code=t?`HPE_${t}`:void 0,this.data=a?a.toString():void 0}},fo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ResponseExceededMaxSizeError",this.message=A||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}};Zl.exports={HTTPParserError:Io,UndiciError:Ee,HeadersTimeoutError:so,HeadersOverflowError:no,BodyTimeoutError:oo,RequestContentLengthMismatchError:Eo,ConnectTimeoutError:io,ResponseStatusCodeError:po,InvalidArgumentError:lo,InvalidReturnValueError:go,RequestAbortedError:co,ClientDestroyedError:Co,ClientClosedError:mo,InformationalError:uo,SocketError:Bo,NotSupportedError:wi,ResponseContentLengthMismatchError:Qo,BalancedPoolMissingUpstreamError:ho,ResponseExceededMaxSizeError:fo}});var q=E((Db,s4)=>{"use strict";var $l=require("assert"),{kDestroyed:e4,kBodyUsed:Xl}=re(),{IncomingMessage:lC}=require("http"),x1=require("stream"),gC=require("net"),{InvalidArgumentError:Ue}=$(),{Blob:zl}=require("buffer"),Di=require("util"),{stringify:cC}=require("querystring"),[wo,Kl]=process.versions.node.split(".").map(e=>Number(e));function uC(){}function yo(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function A4(e){return zl&&e instanceof zl||e&&typeof e=="object"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function EC(e,A){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let t=cC(A);return t&&(e+="?"+t),e}function t4(e){if(typeof e=="string"){if(e=new URL(e),!/^https?:/.test(e.origin||e.protocol))throw new Ue("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new Ue("Invalid URL: The URL argument must be a non-null object.");if(e.port!=null&&e.port!==""&&!Number.isFinite(parseInt(e.port)))throw new Ue("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new Ue("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new Ue("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new Ue("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new Ue("Invalid URL origin: the origin must be a string or null/undefined.");if(!/^https?:/.test(e.origin||e.protocol))throw new Ue("Invalid URL protocol: the URL must start with `http:` or `https:`.");if(!(e instanceof URL)){let A=e.port!=null?e.port:e.protocol==="https:"?443:80,t=e.origin!=null?e.origin:`${e.protocol}//${e.hostname}:${A}`,a=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;t.endsWith("/")&&(t=t.substring(0,t.length-1)),a&&!a.startsWith("/")&&(a=`/${a}`),e=new URL(t+a)}return e}function QC(e){if(e=t4(e),e.pathname!=="/"||e.search||e.hash)throw new Ue("invalid url");return e}function CC(e){if(e[0]==="["){let t=e.indexOf("]");return $l(t!==-1),e.substr(1,t-1)}let A=e.indexOf(":");return A===-1?e:e.substr(0,A)}function mC(e){if(!e)return null;$l.strictEqual(typeof e,"string");let A=CC(e);return gC.isIP(A)?"":A}function BC(e){return JSON.parse(JSON.stringify(e))}function hC(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function IC(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function fC(e){if(e==null)return 0;if(yo(e)){let A=e._readableState;return A&&A.ended===!0&&Number.isFinite(A.length)?A.length:null}else{if(A4(e))return e.size!=null?e.size:null;if(r4(e))return e.byteLength}return null}function Do(e){return!e||!!(e.destroyed||e[e4])}function a4(e){let A=e&&e._readableState;return Do(e)&&A&&!A.endEmitted}function wC(e,A){!yo(e)||Do(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===lC&&(e.socket=null),e.destroy(A)):A&&process.nextTick((t,a)=>{t.emit("error",a)},e,A),e.destroyed!==!0&&(e[e4]=!0))}var yC=/timeout=(\d+)/;function DC(e){let A=e.toString().match(yC);return A?parseInt(A[1],10)*1e3:null}function vC(e,A={}){for(let t=0;t<e.length;t+=2){let a=e[t].toString().toLowerCase(),r=A[a];r?(Array.isArray(r)||(r=[r],A[a]=r),r.push(e[t+1].toString("utf8"))):Array.isArray(e[t+1])?A[a]=e[t+1]:A[a]=e[t+1].toString("utf8")}return"content-length"in A&&"content-disposition"in A&&(A["content-disposition"]=Buffer.from(A["content-disposition"]).toString("latin1")),A}function RC(e){let A=[],t=!1,a=-1;for(let r=0;r<e.length;r+=2){let i=e[r+0].toString(),s=e[r+1].toString("utf8");i.length===14&&(i==="content-length"||i.toLowerCase()==="content-length")?(A.push(i,s),t=!0):i.length===19&&(i==="content-disposition"||i.toLowerCase()==="content-disposition")?a=A.push(i,s)-1:A.push(i,s)}return t&&a!==-1&&(A[a]=Buffer.from(A[a]).toString("latin1")),A}function r4(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function NC(e,A,t){if(!e||typeof e!="object")throw new Ue("handler must be an object");if(typeof e.onConnect!="function")throw new Ue("invalid onConnect method");if(typeof e.onError!="function")throw new Ue("invalid onError method");if(typeof e.onBodySent!="function"&&e.onBodySent!==void 0)throw new Ue("invalid onBodySent method");if(t||A==="CONNECT"){if(typeof e.onUpgrade!="function")throw new Ue("invalid onUpgrade method")}else{if(typeof e.onHeaders!="function")throw new Ue("invalid onHeaders method");if(typeof e.onData!="function")throw new Ue("invalid onData method");if(typeof e.onComplete!="function")throw new Ue("invalid onComplete method")}}function bC(e){return!!(e&&(x1.isDisturbed?x1.isDisturbed(e)||e[Xl]:e[Xl]||e.readableDidRead||e._readableState&&e._readableState.dataEmitted||a4(e)))}function SC(e){return!!(e&&(x1.isErrored?x1.isErrored(e):/state: 'errored'/.test(Di.inspect(e))))}function FC(e){return!!(e&&(x1.isReadable?x1.isReadable(e):/state: 'readable'/.test(Di.inspect(e))))}function kC(e){return{localAddress:e.localAddress,localPort:e.localPort,remoteAddress:e.remoteAddress,remotePort:e.remotePort,remoteFamily:e.remoteFamily,timeout:e.timeout,bytesWritten:e.bytesWritten,bytesRead:e.bytesRead}}var Za;function LC(e){if(Za||(Za=require("stream/web").ReadableStream),Za.from)return Za.from(e);let A;return new Za({async start(){A=e[Symbol.asyncIterator]()},async pull(t){let{done:a,value:r}=await A.next();if(a)queueMicrotask(()=>{t.close()});else{let i=Buffer.isBuffer(r)?r:Buffer.from(r);t.enqueue(new Uint8Array(i))}return t.desiredSize>0},async cancel(t){await A.return()}},0)}function UC(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function TC(e){if(e){if(typeof e.throwIfAborted=="function")e.throwIfAborted();else if(e.aborted){let A=new Error("The operation was aborted");throw A.name="AbortError",A}}}var yi;function MC(e,A){return typeof Symbol.dispose=="symbol"&&(yi||(yi=require("events")),typeof yi.addAbortListener=="function"&&"aborted"in e)?yi.addAbortListener(e,A):"addEventListener"in e?(e.addEventListener("abort",A,{once:!0}),()=>e.removeEventListener("abort",A)):(e.addListener("abort",A),()=>e.removeListener("abort",A))}var VC=!!String.prototype.toWellFormed;function YC(e){return VC?`${e}`.toWellFormed():Di.toUSVString?Di.toUSVString(e):`${e}`}var i4=Object.create(null);i4.enumerable=!0;s4.exports={kEnumerableProperty:i4,nop:uC,isDisturbed:bC,isErrored:SC,isReadable:FC,toUSVString:YC,isReadableAborted:a4,isBlobLike:A4,parseOrigin:QC,parseURL:t4,getServerName:mC,isStream:yo,isIterable:IC,isAsyncIterable:hC,isDestroyed:Do,parseRawHeaders:RC,parseHeaders:vC,parseKeepAliveTimeout:DC,destroy:wC,bodyLength:fC,deepClone:BC,ReadableStreamFrom:LC,isBuffer:r4,validateHandler:NC,getSocketInfo:kC,isFormDataLike:UC,buildURL:EC,throwIfAborted:TC,addAbortListener:MC,nodeMajor:wo,nodeMinor:Kl,nodeHasAutoSelectFamily:wo>18||wo===18&&Kl>=13}});var d4=E((vb,o4)=>{"use strict";var vo=Date.now(),Ut,Tt=[];function JC(){vo=Date.now();let e=Tt.length,A=0;for(;A<e;){let t=Tt[A];t.state===0?t.state=vo+t.delay:t.state>0&&vo>=t.state&&(t.state=-1,t.callback(t.opaque)),t.state===-1?(t.state=-2,A!==e-1?Tt[A]=Tt.pop():Tt.pop(),e-=1):A+=1}Tt.length>0&&n4()}function n4(){Ut&&Ut.refresh?Ut.refresh():(clearTimeout(Ut),Ut=setTimeout(JC,1e3),Ut.unref&&Ut.unref())}var vi=class{constructor(A,t,a){this.callback=A,this.delay=t,this.opaque=a,this.state=-2,this.refresh()}refresh(){this.state===-2&&(Tt.push(this),(!Ut||Tt.length===1)&&n4()),this.state=0}clear(){this.state=-1}};o4.exports={setTimeout(e,A,t){return A<1e3?setTimeout(e,A,t):new vi(e,A,t)},clearTimeout(e){e instanceof vi?e.clear():clearTimeout(e)}}});var Ri=E((u4,E4)=>{"use strict";function GC(e){if(e.length===0)return;let A=Object.create(null),t=0;for(;t<e.length;++t){let s=e.charCodeAt(t);if(a1[s]!==1){if(s!==47||t===0)return;break}}if(t===e.length)return;let a=e.slice(0,t).toLowerCase(),r=++t;for(;t<e.length;++t){let s=e.charCodeAt(t);if(a1[s]!==1){if(t===r||xC(e,t,A)===void 0)return;break}}if(t===r)return;let i=e.slice(r,t).toLowerCase();return{type:a,subtype:i,params:A}}function xC(e,A,t){for(;A<e.length;){for(;A<e.length;++A){let n=e.charCodeAt(A);if(n!==32&&n!==9)break}if(A===e.length)break;if(e.charCodeAt(A++)!==59)return;for(;A<e.length;++A){let n=e.charCodeAt(A);if(n!==32&&n!==9)break}if(A===e.length)return;let a,r=A;for(;A<e.length;++A){let n=e.charCodeAt(A);if(a1[n]!==1){if(n!==61)return;break}}if(A===e.length||(a=e.slice(r,A),++A,A===e.length))return;let i="",s;if(e.charCodeAt(A)===34){s=++A;let n=!1;for(;A<e.length;++A){let o=e.charCodeAt(A);if(o===92){n?(s=A,n=!1):(i+=e.slice(s,A),n=!0);continue}if(o===34){if(n){s=A,n=!1;continue}i+=e.slice(s,A);break}if(n&&(s=A-1,n=!1),c4[o]!==1)return}if(A===e.length)return;++A}else{for(s=A;A<e.length;++A){let n=e.charCodeAt(A);if(a1[n]!==1){if(A===s)return;break}}i=e.slice(s,A)}a=a.toLowerCase(),t[a]===void 0&&(t[a]=i)}return t}function _C(e,A){if(e.length===0)return;let t=Object.create(null),a=0;for(;a<e.length;++a){let i=e.charCodeAt(a);if(a1[i]!==1){if(qC(e,a,t,A)===void 0)return;break}}return{type:e.slice(0,a).toLowerCase(),params:t}}function qC(e,A,t,a){for(;A<e.length;){for(;A<e.length;++A){let d=e.charCodeAt(A);if(d!==32&&d!==9)break}if(A===e.length)break;if(e.charCodeAt(A++)!==59)return;for(;A<e.length;++A){let d=e.charCodeAt(A);if(d!==32&&d!==9)break}if(A===e.length)return;let r,i=A;for(;A<e.length;++A){let d=e.charCodeAt(A);if(a1[d]!==1){if(d===61)break;return}}if(A===e.length)return;let s="",n,o;if(r=e.slice(i,A),r.charCodeAt(r.length-1)===42){let d=++A;for(;A<e.length;++A){let p=e.charCodeAt(A);if(OC[p]!==1){if(p!==39)return;break}}if(A===e.length)return;for(o=e.slice(d,A),++A;A<e.length&&e.charCodeAt(A)!==39;++A);if(A===e.length||(++A,A===e.length))return;n=A;let l=0;for(;A<e.length;++A){let p=e.charCodeAt(A);if(PC[p]!==1){if(p===37){let g,c;if(A+2<e.length&&(g=p4[e.charCodeAt(A+1)])!==-1&&(c=p4[e.charCodeAt(A+2)])!==-1){let u=(g<<4)+c;s+=e.slice(n,A),s+=String.fromCharCode(u),A+=2,n=A+1,u>=128?l=2:l===0&&(l=1);continue}return}break}}if(s+=e.slice(n,A),s=g4(s,o,l),s===void 0)return}else{if(++A,A===e.length)return;if(e.charCodeAt(A)===34){n=++A;let d=!1;for(;A<e.length;++A){let l=e.charCodeAt(A);if(l===92){d?(n=A,d=!1):(s+=e.slice(n,A),d=!0);continue}if(l===34){if(d){n=A,d=!1;continue}s+=e.slice(n,A);break}if(d&&(n=A-1,d=!1),c4[l]!==1)return}if(A===e.length)return;++A}else{for(n=A;A<e.length;++A){let d=e.charCodeAt(A);if(a1[d]!==1){if(A===n)return;break}}s=e.slice(n,A)}if(s=a(s,2),s===void 0)return}r=r.toLowerCase(),t[r]===void 0&&(t[r]=s)}return t}function l4(e){let A;for(;;)switch(e){case"utf-8":case"utf8":return Xa.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return Xa.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return Xa.utf16le;case"base64":return Xa.base64;default:if(A===void 0){A=!0,e=e.toLowerCase();continue}return Xa.other.bind(e)}}var Xa={utf8:(e,A)=>{if(e.length===0)return"";if(typeof e=="string"){if(A<2)return e;e=Buffer.from(e,"latin1")}return e.utf8Slice(0,e.length)},latin1:(e,A)=>e.length===0?"":typeof e=="string"?e:e.latin1Slice(0,e.length),utf16le:(e,A)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,"latin1")),e.ucs2Slice(0,e.length)),base64:(e,A)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,"latin1")),e.base64Slice(0,e.length)),other:(e,A)=>{if(e.length===0)return"";typeof e=="string"&&(e=Buffer.from(e,"latin1"));try{return new TextDecoder(u4).decode(e)}catch{}}};function g4(e,A,t){let a=l4(A);if(a)return a(e,t)}function HC(e){if(typeof e!="string")return"";for(let A=e.length-1;A>=0;--A)switch(e.charCodeAt(A)){case 47:case 92:return e=e.slice(A+1),e===".."||e==="."?"":e}return e===".."||e==="."?"":e}var a1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],c4=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],OC=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],PC=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],p4=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];E4.exports={basename:HC,convertToUTF8:g4,getDecoder:l4,parseContentType:GC,parseDisposition:_C}});var B4=E((Rb,m4)=>{"use strict";function Q4(e,A,t,a,r){for(let i=0;i<r;++i)if(e[A+i]!==t[a+i])return!1;return!0}var Ro=class{constructor(A,t){if(typeof t!="function")throw new Error("Missing match callback");if(typeof A=="string")A=Buffer.from(A);else if(!Buffer.isBuffer(A))throw new Error(`Expected Buffer for needle, got ${typeof A}`);let a=A.length;if(this.maxMatches=1/0,this.matches=0,this._cb=t,this._lookbehindSize=0,this._needle=A,this._bufPos=0,this._lookbehind=Buffer.allocUnsafe(a),this._occ=[a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a],a>1)for(let r=0;r<a-1;++r)this._occ[A[r]]=a-1-r}reset(){this.matches=0,this._lookbehindSize=0,this._bufPos=0}push(A,t){let a;Buffer.isBuffer(A)||(A=Buffer.from(A,"latin1"));let r=A.length;for(this._bufPos=t||0;a!==r&&this.matches<this.maxMatches;)a=WC(this,A);return a}destroy(){let A=this._lookbehindSize;A&&this._cb(!1,this._lookbehind,0,A,!1),this.reset()}};function WC(e,A){let t=A.length,a=e._needle,r=a.length,i=-e._lookbehindSize,s=r-1,n=a[s],o=t-r,d=e._occ,l=e._lookbehind;if(i<0){for(;i<0&&i<=o;){let g=i+s,c=g<0?l[e._lookbehindSize+g]:A[g];if(c===n&&C4(e,A,i,s))return e._lookbehindSize=0,++e.matches,i>-e._lookbehindSize?e._cb(!0,l,0,e._lookbehindSize+i,!1):e._cb(!0,void 0,0,0,!0),e._bufPos=i+r;i+=d[c]}for(;i<0&&!C4(e,A,i,t-i);)++i;if(i<0){let g=e._lookbehindSize+i;return g>0&&e._cb(!1,l,0,g,!1),e._lookbehindSize-=g,l.copy(l,0,g,e._lookbehindSize),l.set(A,e._lookbehindSize),e._lookbehindSize+=t,e._bufPos=t,t}e._cb(!1,l,0,e._lookbehindSize,!1),e._lookbehindSize=0}i+=e._bufPos;let p=a[0];for(;i<=o;){let g=A[i+s];if(g===n&&A[i]===p&&Q4(a,0,A,i,s))return++e.matches,i>0?e._cb(!0,A,e._bufPos,i,!0):e._cb(!0,void 0,0,0,!0),e._bufPos=i+r;i+=d[g]}for(;i<t;){if(A[i]!==p||!Q4(A,i,a,0,t-i)){++i;continue}A.copy(l,0,i,t),e._lookbehindSize=t-i;break}return i>0&&e._cb(!1,A,e._bufPos,i<t?i:t,!0),e._bufPos=t,t}function C4(e,A,t,a){let r=e._lookbehind,i=e._lookbehindSize,s=e._needle;for(let n=0;n<a;++n,++t)if((t<0?r[i+t]:A[t])!==s[n])return!1;return!0}m4.exports=Ro});var N4=E((Nb,R4)=>{"use strict";var{Readable:jC,Writable:ZC}=require("stream"),XC=B4(),{basename:zC,convertToUTF8:h4,getDecoder:KC,parseContentType:$C,parseDisposition:em}=Ri(),Am=Buffer.from(`\r -`),tm=Buffer.from("\r"),am=Buffer.from("-");function I4(){}var rm=2e3,_1=16*1024,Ni=0,f4=1,w4=2,No=class{constructor(A){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=Ni,this.name="",this.value="",this.crlf=0,this.cb=A}reset(){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=Ni,this.name="",this.value="",this.crlf=0}push(A,t,a){let r=t;for(;t<a;)switch(this.state){case Ni:{let i=!1;for(;t<a;++t){if(this.byteCount===_1)return-1;++this.byteCount;let s=A[t];if(nm[s]!==1){if(s!==58||(this.name+=A.latin1Slice(r,t),this.name.length===0))return-1;++t,i=!0,this.state=f4;break}}if(!i){this.name+=A.latin1Slice(r,t);break}}case f4:{let i=!1;for(;t<a;++t){if(this.byteCount===_1)return-1;++this.byteCount;let s=A[t];if(s!==32&&s!==9){r=t,i=!0,this.state=w4;break}}if(!i)break}case w4:switch(this.crlf){case 0:for(;t<a;++t){if(this.byteCount===_1)return-1;++this.byteCount;let i=A[t];if(om[i]!==1){if(i!==13)return-1;++this.crlf;break}}this.value+=A.latin1Slice(r,t++);break;case 1:if(this.byteCount===_1||(++this.byteCount,A[t++]!==10))return-1;++this.crlf;break;case 2:{if(this.byteCount===_1)return-1;++this.byteCount;let i=A[t];i===32||i===9?(r=t,this.crlf=0):(++this.pairCount<rm&&(this.name=this.name.toLowerCase(),this.header[this.name]===void 0?this.header[this.name]=[this.value]:this.header[this.name].push(this.value)),i===13?(++this.crlf,++t):(r=t,this.crlf=0,this.state=Ni,this.name="",this.value=""));break}case 3:{if(this.byteCount===_1||(++this.byteCount,A[t++]!==10))return-1;let i=this.header;return this.reset(),this.cb(i),t}}break}return t}},bo=class extends jC{constructor(A,t){super(A),this.truncated=!1,this._readcb=null,this.once("end",()=>{if(this._read(),--t._fileEndsLeft===0&&t._finalcb){let a=t._finalcb;t._finalcb=null,process.nextTick(a)}})}_read(A){let t=this._readcb;t&&(this._readcb=null,t())}},y4={push:(e,A)=>{},destroy:()=>{}};function im(e,A){let t=e._writecb;e._writecb=null,A?e.destroy(A):t&&t()}function sm(e,A){return e}var So=class extends ZC{constructor(A){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.highWaterMark=="number"?A.highWaterMark:void 0};if(super(t),!A.conType.params||typeof A.conType.params.boundary!="string")throw new Error("Multipart: Boundary not found");let a=A.conType.params.boundary,r=typeof A.defParamCharset=="string"&&A.defParamCharset?KC(A.defParamCharset):sm,i=A.defCharset||"utf8",s=A.preservePath,n={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.fileHwm=="number"?A.fileHwm:void 0},o=A.limits,d=o&&typeof o.fieldSize=="number"?o.fieldSize:1*1024*1024,l=o&&typeof o.fileSize=="number"?o.fileSize:1/0,p=o&&typeof o.files=="number"?o.files:1/0,g=o&&typeof o.fields=="number"?o.fields:1/0,c=o&&typeof o.parts=="number"?o.parts:1/0,u=-1,Q=0,m=0,C=!1;this._fileEndsLeft=0,this._fileStream=void 0,this._complete=!1;let h=0,B,I=0,w,v,S,x,we=!1,me=!1,Rt=!1;this._hparser=null;let Se=new No(Z=>{this._hparser=null,C=!1,S="text/plain",w=i,v="7bit",x=void 0,we=!1;let ae;if(!Z["content-disposition"]){C=!0;return}let U=em(Z["content-disposition"][0],r);if(!U||U.type!=="form-data"){C=!0;return}if(U.params&&(U.params.name&&(x=U.params.name),U.params["filename*"]?ae=U.params["filename*"]:U.params.filename&&(ae=U.params.filename),ae!==void 0&&!s&&(ae=zC(ae))),Z["content-type"]){let T=$C(Z["content-type"][0]);T&&(S=`${T.type}/${T.subtype}`,T.params&&typeof T.params.charset=="string"&&(w=T.params.charset.toLowerCase()))}if(Z["content-transfer-encoding"]&&(v=Z["content-transfer-encoding"][0].toLowerCase()),S==="application/octet-stream"||ae!==void 0){if(m===p){me||(me=!0,this.emit("filesLimit")),C=!0;return}if(++m,this.listenerCount("file")===0){C=!0;return}h=0,this._fileStream=new bo(n,this),++this._fileEndsLeft,this.emit("file",x,this._fileStream,{filename:ae,encoding:v,mimeType:S})}else{if(Q===g){Rt||(Rt=!0,this.emit("fieldsLimit")),C=!0;return}if(++Q,this.listenerCount("field")===0){C=!0;return}B=[],I=0}}),le=0,CA=(Z,ae,U,T,xA)=>{e:for(;ae;){if(this._hparser!==null){let P=this._hparser.push(ae,U,T);if(P===-1){this._hparser=null,Se.reset(),this.emit("error",new Error("Malformed part header"));break}U=P}if(U===T)break;if(le!==0){if(le===1){switch(ae[U]){case 45:le=2,++U;break;case 13:le=3,++U;break;default:le=0}if(U===T)return}if(le===2){if(le=0,ae[U]===45){this._complete=!0,this._bparser=y4;return}let P=this._writecb;this._writecb=I4,CA(!1,am,0,1,!1),this._writecb=P}else if(le===3)if(le=0,ae[U]===10){if(++U,u>=c||(this._hparser=Se,U===T))break;continue e}else{let P=this._writecb;this._writecb=I4,CA(!1,tm,0,1,!1),this._writecb=P}}if(!C){if(this._fileStream){let P,tA=Math.min(T-U,l-h);xA?P=ae.slice(U,U+tA):(P=Buffer.allocUnsafe(tA),ae.copy(P,0,U,U+tA)),h+=P.length,h===l?(P.length>0&&this._fileStream.push(P),this._fileStream.emit("limit"),this._fileStream.truncated=!0,C=!0):this._fileStream.push(P)||(this._writecb&&(this._fileStream._readcb=this._writecb),this._writecb=null)}else if(B!==void 0){let P,tA=Math.min(T-U,d-I);xA?P=ae.slice(U,U+tA):(P=Buffer.allocUnsafe(tA),ae.copy(P,0,U,U+tA)),I+=tA,B.push(P),I===d&&(C=!0,we=!0)}}break}if(Z){if(le=1,this._fileStream)this._fileStream.push(null),this._fileStream=null;else if(B!==void 0){let P;switch(B.length){case 0:P="";break;case 1:P=h4(B[0],w,0);break;default:P=h4(Buffer.concat(B,I),w,0)}B=void 0,I=0,this.emit("field",x,P,{nameTruncated:!1,valueTruncated:we,encoding:v,mimeType:S})}++u===c&&this.emit("partsLimit")}};this._bparser=new XC(`\r ---${a}`,CA),this._writecb=null,this._finalcb=null,this.write(Am)}static detect(A){return A.type==="multipart"&&A.subtype==="form-data"}_write(A,t,a){this._writecb=a,this._bparser.push(A,0),this._writecb&&im(this)}_destroy(A,t){this._hparser=null,this._bparser=y4,A||(A=v4(this));let a=this._fileStream;a&&(this._fileStream=null,a.destroy(A)),t(A)}_final(A){if(this._bparser.destroy(),!this._complete)return A(new Error("Unexpected end of form"));this._fileEndsLeft?this._finalcb=D4.bind(null,this,A):D4(this,A)}};function D4(e,A,t){if(t)return A(t);t=v4(e),A(t)}function v4(e){if(e._hparser)return new Error("Malformed part header");let A=e._fileStream;if(A&&(e._fileStream=null,A.destroy(new Error("Unexpected end of file"))),!e._complete)return new Error("Unexpected end of form")}var nm=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],om=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];R4.exports=So});var S4=E((bb,b4)=>{"use strict";var{Writable:dm}=require("stream"),{getDecoder:pm}=Ri(),To=class extends dm{constructor(A){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.highWaterMark=="number"?A.highWaterMark:void 0};super(t);let a=A.defCharset||"utf8";A.conType.params&&typeof A.conType.params.charset=="string"&&(a=A.conType.params.charset),this.charset=a;let r=A.limits;this.fieldSizeLimit=r&&typeof r.fieldSize=="number"?r.fieldSize:1*1024*1024,this.fieldsLimit=r&&typeof r.fields=="number"?r.fields:1/0,this.fieldNameSizeLimit=r&&typeof r.fieldNameSize=="number"?r.fieldNameSize:100,this._inKey=!0,this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,this._fields=0,this._key="",this._val="",this._byte=-2,this._lastPos=0,this._encode=0,this._decoder=pm(a)}static detect(A){return A.type==="application"&&A.subtype==="x-www-form-urlencoded"}_write(A,t,a){if(this._fields>=this.fieldsLimit)return a();let r=0,i=A.length;if(this._lastPos=0,this._byte!==-2){if(r=Fo(this,A,r,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();this._inKey?++this._bytesKey:++this._bytesVal}e:for(;r<i;)if(this._inKey){for(r=ko(this,A,r,i);r<i;){switch(A[r]){case 61:this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._key=this._decoder(this._key,this._encode),this._encode=0,this._inKey=!1;continue e;case 38:if(this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._key=this._decoder(this._key,this._encode),this._encode=0,this._bytesKey>0&&this.emit("field",this._key,"",{nameTruncated:this._keyTrunc,valueTruncated:!1,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),a();continue;case 43:this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._key+=" ",this._lastPos=r+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=r+1,this._byte=-1,r=Fo(this,A,r+1,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();++this._bytesKey,r=ko(this,A,r,i);continue}++r,++this._bytesKey,r=ko(this,A,r,i)}this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r))}else{for(r=Lo(this,A,r,i);r<i;){switch(A[r]){case 38:if(this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._inKey=!0,this._val=this._decoder(this._val,this._encode),this._encode=0,(this._bytesKey>0||this._bytesVal>0)&&this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),a();continue e;case 43:this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._val+=" ",this._lastPos=r+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._lastPos=r+1,this._byte=-1,r=Fo(this,A,r+1,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();++this._bytesVal,r=Lo(this,A,r,i);continue}++r,++this._bytesVal,r=Lo(this,A,r,i)}this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r))}a()}_final(A){if(this._byte!==-2)return A(new Error("Malformed urlencoded form"));(!this._inKey||this._bytesKey>0||this._bytesVal>0)&&(this._inKey?this._key=this._decoder(this._key,this._encode):this._val=this._decoder(this._val,this._encode),this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"})),A()}};function Fo(e,A,t,a){if(t>=a)return a;if(e._byte===-1){let r=Uo[A[t++]];if(r===-1)return-1;if(r>=8&&(e._encode=2),t<a){let i=Uo[A[t++]];if(i===-1)return-1;e._inKey?e._key+=String.fromCharCode((r<<4)+i):e._val+=String.fromCharCode((r<<4)+i),e._byte=-2,e._lastPos=t}else e._byte=r}else{let r=Uo[A[t++]];if(r===-1)return-1;e._inKey?e._key+=String.fromCharCode((e._byte<<4)+r):e._val+=String.fromCharCode((e._byte<<4)+r),e._byte=-2,e._lastPos=t}return t}function ko(e,A,t,a){if(e._bytesKey>e.fieldNameSizeLimit){for(e._keyTrunc||e._lastPos<t&&(e._key+=A.latin1Slice(e._lastPos,t-1)),e._keyTrunc=!0;t<a;++t){let r=A[t];if(r===61||r===38)break;++e._bytesKey}e._lastPos=t}return t}function Lo(e,A,t,a){if(e._bytesVal>e.fieldSizeLimit){for(e._valTrunc||e._lastPos<t&&(e._val+=A.latin1Slice(e._lastPos,t-1)),e._valTrunc=!0;t<a&&A[t]!==38;++t)++e._bytesVal;e._lastPos=t}return t}var Uo=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];b4.exports=To});var k4=E((Sb,F4)=>{"use strict";var{parseContentType:lm}=Ri();function gm(e){let A=e.headers,t=lm(A["content-type"]);if(!t)throw new Error("Malformed content type");for(let a of cm){if(!a.detect(t))continue;let i={limits:e.limits,headers:A,conType:t,highWaterMark:void 0,fileHwm:void 0,defCharset:void 0,defParamCharset:void 0,preservePath:!1};return e.highWaterMark&&(i.highWaterMark=e.highWaterMark),e.fileHwm&&(i.fileHwm=e.fileHwm),i.defCharset=e.defCharset,i.defParamCharset=e.defParamCharset,i.preservePath=e.preservePath,new a(i)}throw new Error(`Unsupported content type: ${A["content-type"]}`)}var cm=[N4(),S4()].filter(function(e){return typeof e.detect=="function"});F4.exports=e=>{if((typeof e!="object"||e===null)&&(e={}),typeof e.headers!="object"||e.headers===null||typeof e.headers["content-type"]!="string")throw new Error("Missing Content-Type");return gm(e)}});var Mt=E((Fb,L4)=>{"use strict";var{MessageChannel:um,receiveMessageOnPort:Em}=require("worker_threads"),Qm=["GET","HEAD","POST"],Cm=[101,204,205,304],mm=[301,302,303,307,308],Bm=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"],hm=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],Im=["follow","manual","error"],fm=["GET","HEAD","OPTIONS","TRACE"],wm=["navigate","same-origin","no-cors","cors"],ym=["omit","same-origin","include"],Dm=["default","no-store","reload","no-cache","force-cache","only-if-cached"],vm=["content-encoding","content-language","content-location","content-type","content-length"],Rm=["half"],Nm=["CONNECT","TRACE","TRACK"],bm=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],Sm=globalThis.DOMException??(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})(),q1,Fm=globalThis.structuredClone??function(A,t=void 0){if(arguments.length===0)throw new TypeError("missing argument");return q1||(q1=new um),q1.port1.unref(),q1.port2.unref(),q1.port1.postMessage(A,t?.transfer),Em(q1.port2).message};L4.exports={DOMException:Sm,structuredClone:Fm,subresource:bm,forbiddenMethods:Nm,requestBodyHeader:vm,referrerPolicy:hm,requestRedirect:Im,requestMode:wm,requestCredentials:ym,requestCache:Dm,redirectStatus:mm,corsSafeListedMethods:Qm,nullBodyStatus:Cm,safeMethods:fm,badPorts:Bm,requestDuplex:Rm}});var za=E((kb,U4)=>{"use strict";var Mo=Symbol.for("undici.globalOrigin.1");function km(){return globalThis[Mo]}function Lm(e){if(e!==void 0&&typeof e!="string"&&!(e instanceof URL))throw new Error("Invalid base url");if(e===void 0){Object.defineProperty(globalThis,Mo,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let A=new URL(e);if(A.protocol!=="http:"&&A.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${A.protocol}`);Object.defineProperty(globalThis,Mo,{value:A,writable:!0,enumerable:!1,configurable:!1})}U4.exports={getGlobalOrigin:km,setGlobalOrigin:Lm}});var fA=E((Lb,G4)=>{"use strict";var{redirectStatus:Um,badPorts:Tm,referrerPolicy:Mm}=Mt(),{getGlobalOrigin:Vm}=za(),{performance:Ym}=require("perf_hooks"),{isBlobLike:Jm,toUSVString:Gm,ReadableStreamFrom:xm}=q(),H1=require("assert"),{isUint8Array:_m}=require("util/types"),bi;try{bi=require("crypto")}catch{}function T4(e){let A=e.urlList,t=A.length;return t===0?null:A[t-1].toString()}function qm(e,A){if(!Um.includes(e.status))return null;let t=e.headersList.get("location");return t!==null&&V4(t)&&(t=new URL(t,T4(e))),t&&!t.hash&&(t.hash=A),t}function $a(e){return e.urlList[e.urlList.length-1]}function Hm(e){let A=$a(e);return J4(A)&&Tm.includes(A.port)?"blocked":"allowed"}function Om(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function Pm(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(!(t===9||t>=32&&t<=126||t>=128&&t<=255))return!1}return!0}function Wm(e){return!(e>=127||e<=32||e==="("||e===")"||e==="<"||e===">"||e==="@"||e===","||e===";"||e===":"||e==="\\"||e==='"'||e==="/"||e==="["||e==="]"||e==="?"||e==="="||e==="{"||e==="}")}function M4(e){if(!e||typeof e!="string")return!1;for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t>127||!Wm(t))return!1}return!0}function jm(e){return e.length===0?!1:M4(e)}function V4(e){return!(e.startsWith(" ")||e.startsWith(" ")||e.endsWith(" ")||e.endsWith(" ")||e.includes("\0")||e.includes("\r")||e.includes(` -`))}function Zm(e,A){let{headersList:t}=A,a=(t.get("referrer-policy")??"").split(","),r="";if(a.length>0)for(let i=a.length;i!==0;i--){let s=a[i-1].trim();if(Mm.includes(s)){r=s;break}}r!==""&&(e.referrerPolicy=r)}function Xm(){return"allowed"}function zm(){return"success"}function Km(){return"success"}function $m(e){let A=null;A=e.mode,e.headersList.set("sec-fetch-mode",A)}function eB(e){let A=e.origin;if(e.responseTainting==="cors"||e.mode==="websocket")A&&e.headersList.append("origin",A);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":A=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&Jo(e.origin)&&!Jo($a(e))&&(A=null);break;case"same-origin":Si(e,$a(e))||(A=null);break;default:}A&&e.headersList.append("origin",A)}}function AB(e){return Ym.now()}function tB(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function aB(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function rB(e){return{referrerPolicy:e.referrerPolicy}}function iB(e){let A=e.referrerPolicy;H1(A);let t=null;if(e.referrer==="client"){let n=Vm();if(!n||n.origin==="null")return"no-referrer";t=new URL(n)}else e.referrer instanceof URL&&(t=e.referrer);let a=Vo(t),r=Vo(t,!0);a.toString().length>4096&&(a=r);let i=Si(e,a),s=Ka(a)&&!Ka(e.url);switch(A){case"origin":return r??Vo(t,!0);case"unsafe-url":return a;case"same-origin":return i?r:"no-referrer";case"origin-when-cross-origin":return i?a:r;case"strict-origin-when-cross-origin":{let n=$a(e);return Si(a,n)?a:Ka(a)&&!Ka(n)?"no-referrer":r}case"strict-origin":case"no-referrer-when-downgrade":default:return s?"no-referrer":r}}function Vo(e,A){return H1(e instanceof URL),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",A&&(e.pathname="",e.search=""),e)}function Ka(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return A(e.origin);function A(t){if(t==null||t==="null")return!1;let a=new URL(t);return!!(a.protocol==="https:"||a.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(a.hostname)||a.hostname==="localhost"||a.hostname.includes("localhost.")||a.hostname.endsWith(".localhost"))}}function sB(e,A){if(bi===void 0)return!0;let t=oB(A);if(t==="no metadata"||t.length===0)return!0;let a=t.sort((s,n)=>n.algo.localeCompare(s.algo)),r=a[0].algo,i=a.filter(s=>s.algo===r);for(let s of i){let n=s.algo,o=s.hash;if(bi.createHash(n).update(e).digest("base64")===o)return!0}return!1}var nB=/((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\x21-\x7e]?)?/i;function oB(e){let A=[],t=!0,a=bi.getHashes();for(let r of e.split(" ")){t=!1;let i=nB.exec(r);if(i===null||i.groups===void 0)continue;let s=i.groups.algo;a.includes(s.toLowerCase())&&A.push(i.groups)}return t===!0?"no metadata":A}function dB(e){}function Si(e,A){return e.origin===A.origin&&e.origin==="null"||e.protocol===A.protocol&&e.hostname===A.hostname&&e.port===A.port}function pB(){let e,A;return{promise:new Promise((a,r)=>{e=a,A=r}),resolve:e,reject:A}}function lB(e){return e.controller.state==="aborted"}function gB(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}function cB(e){return/^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(e)?e.toUpperCase():e}function uB(e){let A=JSON.stringify(e);if(A===void 0)throw new TypeError("Value is not JSON serializable");return H1(typeof A=="string"),A}var EB=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function QB(e,A,t){let a={index:0,kind:t,target:e},r={next(){if(Object.getPrototypeOf(this)!==r)throw new TypeError(`'next' called on an object that does not implement interface ${A} Iterator.`);let{index:i,kind:s,target:n}=a,o=n(),d=o.length;if(i>=d)return{value:void 0,done:!0};let l=o[i];return a.index=i+1,CB(l,s)},[Symbol.toStringTag]:`${A} Iterator`};return Object.setPrototypeOf(r,EB),Object.setPrototypeOf({},r)}function CB(e,A){let t;switch(A){case"key":{t=e[0];break}case"value":{t=e[1];break}case"key+value":{t=e;break}}return{value:t,done:!1}}function mB(e,A,t){let a=s=>queueMicrotask(()=>A(s)),r=s=>queueMicrotask(()=>t(s)),i;try{i=e.stream.getReader()}catch(s){r(s);return}Y4(i,a,r)}var Yo=globalThis.ReadableStream;function BB(e){return Yo||(Yo=require("stream/web").ReadableStream),e instanceof Yo||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}var hB=65535;function IB(e){return e.length<hB?String.fromCharCode(...e):e.reduce((A,t)=>A+String.fromCharCode(t),"")}function fB(e){try{e.close()}catch(A){if(!A.message.includes("Controller is already closed"))throw A}}function wB(e){for(let A=0;A<e.length;A++)H1(e.charCodeAt(A)<=255);return e}async function Y4(e,A,t){let a=[],r=0;for(;;){let i,s;try{({done:i,value:s}=await e.read())}catch(n){t(n);return}if(i){A(Buffer.concat(a,r));return}if(!_m(s)){t(new TypeError("Received non-Uint8Array chunk"));return}a.push(s),r+=s.length}}function yB(e){H1("protocol"in e);let A=e.protocol;return A==="about:"||A==="blob:"||A==="data:"}function Jo(e){return typeof e=="string"?e.startsWith("https:"):e.protocol==="https:"}function J4(e){H1("protocol"in e);let A=e.protocol;return A==="http:"||A==="https:"}var DB=Object.hasOwn||((e,A)=>Object.prototype.hasOwnProperty.call(e,A));G4.exports={isAborted:lB,isCancelled:gB,createDeferredPromise:pB,ReadableStreamFrom:xm,toUSVString:Gm,tryUpgradeRequestToAPotentiallyTrustworthyURL:dB,coarsenedSharedCurrentTime:AB,determineRequestsReferrer:iB,makePolicyContainer:aB,clonePolicyContainer:rB,appendFetchMetadata:$m,appendRequestOriginHeader:eB,TAOCheck:Km,corsCheck:zm,crossOriginResourcePolicyCheck:Xm,createOpaqueTimingInfo:tB,setRequestReferrerPolicyOnRedirect:Zm,isValidHTTPToken:M4,requestBadPort:Hm,requestCurrentURL:$a,responseURL:T4,responseLocationURL:qm,isBlobLike:Jm,isURLPotentiallyTrustworthy:Ka,isValidReasonPhrase:Pm,sameOrigin:Si,normalizeMethod:cB,serializeJavascriptValueToJSONString:uB,makeIterator:QB,isValidHeaderName:jm,isValidHeaderValue:V4,hasOwn:DB,isErrorLike:Om,fullyReadBody:mB,bytesMatch:sB,isReadableStreamLike:BB,readableStreamClose:fB,isomorphicEncode:wB,isomorphicDecode:IB,urlIsLocal:yB,urlHasHttpsScheme:Jo,urlIsHttpHttpsScheme:J4,readAllBytes:Y4}});var Et=E((Ub,x4)=>{"use strict";x4.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}});var Ge=E((Tb,q4)=>{"use strict";var{types:XA}=require("util"),{hasOwn:_4,toUSVString:vB}=fA(),y={};y.converters={};y.util={};y.errors={};y.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};y.errors.conversionFailed=function(e){let A=e.types.length===1?"":" one of",t=`${e.argument} could not be converted to${A}: ${e.types.join(", ")}.`;return y.errors.exception({header:e.prefix,message:t})};y.errors.invalidArgument=function(e){return y.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};y.brandCheck=function(e,A,t=void 0){if(t?.strict!==!1&&!(e instanceof A))throw new TypeError("Illegal invocation");return e?.[Symbol.toStringTag]===A.prototype[Symbol.toStringTag]};y.argumentLengthCheck=function({length:e},A,t){if(e<A)throw y.errors.exception({message:`${A} argument${A!==1?"s":""} required, but${e?" only":""} ${e} found.`,...t})};y.illegalConstructor=function(){throw y.errors.exception({header:"TypeError",message:"Illegal constructor"})};y.util.Type=function(e){switch(typeof e){case"undefined":return"Undefined";case"boolean":return"Boolean";case"string":return"String";case"symbol":return"Symbol";case"number":return"Number";case"bigint":return"BigInt";case"function":case"object":return e===null?"Null":"Object"}};y.util.ConvertToInt=function(e,A,t,a={}){let r,i;A===64?(r=Math.pow(2,53)-1,t==="unsigned"?i=0:i=Math.pow(-2,53)+1):t==="unsigned"?(i=0,r=Math.pow(2,A)-1):(i=Math.pow(-2,A)-1,r=Math.pow(2,A-1)-1);let s=Number(e);if(s===0&&(s=0),a.enforceRange===!0){if(Number.isNaN(s)||s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY)throw y.errors.exception({header:"Integer conversion",message:`Could not convert ${e} to an integer.`});if(s=y.util.IntegerPart(s),s<i||s>r)throw y.errors.exception({header:"Integer conversion",message:`Value must be between ${i}-${r}, got ${s}.`});return s}return!Number.isNaN(s)&&a.clamp===!0?(s=Math.min(Math.max(s,i),r),Math.floor(s)%2===0?s=Math.floor(s):s=Math.ceil(s),s):Number.isNaN(s)||s===0&&Object.is(0,s)||s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY?0:(s=y.util.IntegerPart(s),s=s%Math.pow(2,A),t==="signed"&&s>=Math.pow(2,A)-1?s-Math.pow(2,A):s)};y.util.IntegerPart=function(e){let A=Math.floor(Math.abs(e));return e<0?-1*A:A};y.sequenceConverter=function(e){return A=>{if(y.util.Type(A)!=="Object")throw y.errors.exception({header:"Sequence",message:`Value of type ${y.util.Type(A)} is not an Object.`});let t=A?.[Symbol.iterator]?.(),a=[];if(t===void 0||typeof t.next!="function")throw y.errors.exception({header:"Sequence",message:"Object is not an iterator."});for(;;){let{done:r,value:i}=t.next();if(r)break;a.push(e(i))}return a}};y.recordConverter=function(e,A){return t=>{if(y.util.Type(t)!=="Object")throw y.errors.exception({header:"Record",message:`Value of type ${y.util.Type(t)} is not an Object.`});let a={};if(!XA.isProxy(t)){let i=Object.keys(t);for(let s of i){let n=e(s),o=A(t[s]);a[n]=o}return a}let r=Reflect.ownKeys(t);for(let i of r)if(Reflect.getOwnPropertyDescriptor(t,i)?.enumerable){let n=e(i),o=A(t[i]);a[n]=o}return a}};y.interfaceConverter=function(e){return(A,t={})=>{if(t.strict!==!1&&!(A instanceof e))throw y.errors.exception({header:e.name,message:`Expected ${A} to be an instance of ${e.name}.`});return A}};y.dictionaryConverter=function(e){return A=>{let t=y.util.Type(A),a={};if(t==="Null"||t==="Undefined")return a;if(t!=="Object")throw y.errors.exception({header:"Dictionary",message:`Expected ${A} to be one of: Null, Undefined, Object.`});for(let r of e){let{key:i,defaultValue:s,required:n,converter:o}=r;if(n===!0&&!_4(A,i))throw y.errors.exception({header:"Dictionary",message:`Missing required key "${i}".`});let d=A[i],l=_4(r,"defaultValue");if(l&&d!==null&&(d=d??s),n||l||d!==void 0){if(d=o(d),r.allowedValues&&!r.allowedValues.includes(d))throw y.errors.exception({header:"Dictionary",message:`${d} is not an accepted type. Expected one of ${r.allowedValues.join(", ")}.`});a[i]=d}}return a}};y.nullableConverter=function(e){return A=>A===null?A:e(A)};y.converters.DOMString=function(e,A={}){if(e===null&&A.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw new TypeError("Could not convert argument of type symbol to string.");return String(e)};y.converters.ByteString=function(e){let A=y.converters.DOMString(e);for(let t=0;t<A.length;t++){let a=A.charCodeAt(t);if(a>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${t} has a value of ${a} which is greater than 255.`)}return A};y.converters.USVString=vB;y.converters.boolean=function(e){return!!e};y.converters.any=function(e){return e};y.converters["long long"]=function(e){return y.util.ConvertToInt(e,64,"signed")};y.converters["unsigned long long"]=function(e){return y.util.ConvertToInt(e,64,"unsigned")};y.converters["unsigned long"]=function(e){return y.util.ConvertToInt(e,32,"unsigned")};y.converters["unsigned short"]=function(e,A){return y.util.ConvertToInt(e,16,"unsigned",A)};y.converters.ArrayBuffer=function(e,A={}){if(y.util.Type(e)!=="Object"||!XA.isAnyArrayBuffer(e))throw y.errors.conversionFailed({prefix:`${e}`,argument:`${e}`,types:["ArrayBuffer"]});if(A.allowShared===!1&&XA.isSharedArrayBuffer(e))throw y.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};y.converters.TypedArray=function(e,A,t={}){if(y.util.Type(e)!=="Object"||!XA.isTypedArray(e)||e.constructor.name!==A.name)throw y.errors.conversionFailed({prefix:`${A.name}`,argument:`${e}`,types:[A.name]});if(t.allowShared===!1&&XA.isSharedArrayBuffer(e.buffer))throw y.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};y.converters.DataView=function(e,A={}){if(y.util.Type(e)!=="Object"||!XA.isDataView(e))throw y.errors.exception({header:"DataView",message:"Object is not a DataView."});if(A.allowShared===!1&&XA.isSharedArrayBuffer(e.buffer))throw y.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};y.converters.BufferSource=function(e,A={}){if(XA.isAnyArrayBuffer(e))return y.converters.ArrayBuffer(e,A);if(XA.isTypedArray(e))return y.converters.TypedArray(e,e.constructor);if(XA.isDataView(e))return y.converters.DataView(e,A);throw new TypeError(`Could not convert ${e} to a BufferSource.`)};y.converters["sequence<ByteString>"]=y.sequenceConverter(y.converters.ByteString);y.converters["sequence<sequence<ByteString>>"]=y.sequenceConverter(y.converters["sequence<ByteString>"]);y.converters["record<ByteString, ByteString>"]=y.recordConverter(y.converters.ByteString,y.converters.ByteString);q4.exports={webidl:y}});var MA=E((Mb,Z4)=>{var ki=require("assert"),{atob:RB}=require("buffer"),{isomorphicDecode:NB}=fA(),bB=new TextEncoder,Fi=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/,SB=/(\u000A|\u000D|\u0009|\u0020)/,FB=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function kB(e){ki(e.protocol==="data:");let A=P4(e,!0);A=A.slice(5);let t={position:0},a=O1(",",A,t),r=a.length;if(a=MB(a,!0,!0),t.position>=A.length)return"failure";t.position++;let i=A.slice(r+1),s=W4(i);if(/;(\u0020){0,}base64$/i.test(a)){let o=NB(s);if(s=UB(o),s==="failure")return"failure";a=a.slice(0,-6),a=a.replace(/(\u0020)+$/,""),a=a.slice(0,-1)}a.startsWith(";")&&(a="text/plain"+a);let n=xo(a);return n==="failure"&&(n=xo("text/plain;charset=US-ASCII")),{mimeType:n,body:s}}function P4(e,A=!1){let t=e.href;if(!A)return t;let a=t.lastIndexOf("#");return a===-1?t:t.slice(0,a)}function Li(e,A,t){let a="";for(;t.position<A.length&&e(A[t.position]);)a+=A[t.position],t.position++;return a}function O1(e,A,t){let a=A.indexOf(e,t.position),r=t.position;return a===-1?(t.position=A.length,A.slice(r)):(t.position=a,A.slice(r,t.position))}function W4(e){let A=bB.encode(e);return LB(A)}function LB(e){let A=[];for(let t=0;t<e.length;t++){let a=e[t];if(a!==37)A.push(a);else if(a===37&&!/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(e[t+1],e[t+2])))A.push(37);else{let r=String.fromCharCode(e[t+1],e[t+2]),i=Number.parseInt(r,16);A.push(i),t+=2}}return Uint8Array.from(A)}function xo(e){e=Go(e,!0,!0);let A={position:0},t=O1("/",e,A);if(t.length===0||!Fi.test(t)||A.position>e.length)return"failure";A.position++;let a=O1(";",e,A);if(a=Go(a,!1,!0),a.length===0||!Fi.test(a))return"failure";let r=t.toLowerCase(),i=a.toLowerCase(),s={type:r,subtype:i,parameters:new Map,essence:`${r}/${i}`};for(;A.position<e.length;){A.position++,Li(d=>SB.test(d),e,A);let n=Li(d=>d!==";"&&d!=="=",e,A);if(n=n.toLowerCase(),A.position<e.length){if(e[A.position]===";")continue;A.position++}if(A.position>e.length)break;let o=null;if(e[A.position]==='"')o=j4(e,A,!0),O1(";",e,A);else if(o=O1(";",e,A),o=Go(o,!1,!0),o.length===0)continue;n.length!==0&&Fi.test(n)&&(o.length===0||FB.test(o))&&!s.parameters.has(n)&&s.parameters.set(n,o)}return s}function UB(e){if(e=e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,""),e.length%4===0&&(e=e.replace(/=?=$/,"")),e.length%4===1||/[^+/0-9A-Za-z]/.test(e))return"failure";let A=RB(e),t=new Uint8Array(A.length);for(let a=0;a<A.length;a++)t[a]=A.charCodeAt(a);return t}function j4(e,A,t){let a=A.position,r="";for(ki(e[A.position]==='"'),A.position++;r+=Li(s=>s!=='"'&&s!=="\\",e,A),!(A.position>=e.length);){let i=e[A.position];if(A.position++,i==="\\"){if(A.position>=e.length){r+="\\";break}r+=e[A.position],A.position++}else{ki(i==='"');break}}return t?r:e.slice(a,A.position)}function TB(e){ki(e!=="failure");let{parameters:A,essence:t}=e,a=t;for(let[r,i]of A.entries())a+=";",a+=r,a+="=",Fi.test(i)||(i=i.replace(/(\\|")/g,"\\$1"),i='"'+i,i+='"'),a+=i;return a}function H4(e){return e==="\r"||e===` -`||e===" "||e===" "}function Go(e,A=!0,t=!0){let a=0,r=e.length-1;if(A)for(;a<e.length&&H4(e[a]);a++);if(t)for(;r>0&&H4(e[r]);r--);return e.slice(a,r+1)}function O4(e){return e==="\r"||e===` -`||e===" "||e==="\f"||e===" "}function MB(e,A=!0,t=!0){let a=0,r=e.length-1;if(A)for(;a<e.length&&O4(e[a]);a++);if(t)for(;r>0&&O4(e[r]);r--);return e.slice(a,r+1)}Z4.exports={dataURLProcessor:kB,URLSerializer:P4,collectASequenceOfCodePoints:Li,collectASequenceOfCodePointsFast:O1,stringPercentDecode:W4,parseMIMEType:xo,collectAnHTTPQuotedString:j4,serializeAMimeType:TB}});var Ui=E((Vb,eg)=>{"use strict";var{Blob:K4,File:X4}=require("buffer"),{types:_o}=require("util"),{kState:rA}=Et(),{isBlobLike:$4}=fA(),{webidl:O}=Ge(),{parseMIMEType:VB,serializeAMimeType:YB}=MA(),{kEnumerableProperty:z4}=q(),er=class e extends K4{constructor(A,t,a={}){O.argumentLengthCheck(arguments,2,{header:"File constructor"}),A=O.converters["sequence<BlobPart>"](A),t=O.converters.USVString(t),a=O.converters.FilePropertyBag(a);let r=t,i=a.type,s;e:{if(i){if(i=VB(i),i==="failure"){i="";break e}i=YB(i).toLowerCase()}s=a.lastModified}super(JB(A,a),{type:i}),this[rA]={name:r,lastModified:s,type:i}}get name(){return O.brandCheck(this,e),this[rA].name}get lastModified(){return O.brandCheck(this,e),this[rA].lastModified}get type(){return O.brandCheck(this,e),this[rA].type}},qo=class e{constructor(A,t,a={}){let r=t,i=a.type,s=a.lastModified??Date.now();this[rA]={blobLike:A,name:r,type:i,lastModified:s}}stream(...A){return O.brandCheck(this,e),this[rA].blobLike.stream(...A)}arrayBuffer(...A){return O.brandCheck(this,e),this[rA].blobLike.arrayBuffer(...A)}slice(...A){return O.brandCheck(this,e),this[rA].blobLike.slice(...A)}text(...A){return O.brandCheck(this,e),this[rA].blobLike.text(...A)}get size(){return O.brandCheck(this,e),this[rA].blobLike.size}get type(){return O.brandCheck(this,e),this[rA].blobLike.type}get name(){return O.brandCheck(this,e),this[rA].name}get lastModified(){return O.brandCheck(this,e),this[rA].lastModified}get[Symbol.toStringTag](){return"File"}};Object.defineProperties(er.prototype,{[Symbol.toStringTag]:{value:"File",configurable:!0},name:z4,lastModified:z4});O.converters.Blob=O.interfaceConverter(K4);O.converters.BlobPart=function(e,A){if(O.util.Type(e)==="Object"){if($4(e))return O.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||_o.isAnyArrayBuffer(e))return O.converters.BufferSource(e,A)}return O.converters.USVString(e,A)};O.converters["sequence<BlobPart>"]=O.sequenceConverter(O.converters.BlobPart);O.converters.FilePropertyBag=O.dictionaryConverter([{key:"lastModified",converter:O.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:O.converters.DOMString,defaultValue:""},{key:"endings",converter:e=>(e=O.converters.DOMString(e),e=e.toLowerCase(),e!=="native"&&(e="transparent"),e),defaultValue:"transparent"}]);function JB(e,A){let t=[];for(let a of e)if(typeof a=="string"){let r=a;A.endings==="native"&&(r=GB(r)),t.push(new TextEncoder().encode(r))}else _o.isAnyArrayBuffer(a)||_o.isTypedArray(a)?a.buffer?t.push(new Uint8Array(a.buffer,a.byteOffset,a.byteLength)):t.push(new Uint8Array(a)):$4(a)&&t.push(a);return t}function GB(e){let A=` +`,"")}`}Ei.getProgressIcon=V5});var Ul=E(pt=>{"use strict";var Y5=pt&&pt.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),Wn=pt&&pt.__exportStar||function(e,A){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(A,t)&&Y5(A,e,t)};Object.defineProperty(pt,"__esModule",{value:!0});Wn(Nl(),pt);Wn(Sl(),pt);Wn(Ll(),pt)});var Tl=E(M1=>{"use strict";var J5=M1&&M1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(M1,"__esModule",{value:!0});M1.runAppleScript=void 0;var G5=J5(require("node:child_process")),qa=ii();async function x5(e,A,t){let{humanReadableOutput:a,language:r,timeout:i,...s}=Array.isArray(A)?t||{}:A||{},n=a!==!1?[]:["-ss"];r==="JavaScript"&&n.push("-l","JavaScript"),Array.isArray(A)&&n.push("-",...A);let o=G5.default.spawn("osascript",n,{...s,env:{PATH:"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"}}),d=(0,qa.getSpawnedPromise)(o,{timeout:i||1e4});o.stdin.end(e);let[{error:l,exitCode:p,signal:g,timedOut:c},u,m]=await(0,qa.getSpawnedResult)(o,{encoding:"utf8"},d),Q=(0,qa.handleOutput)({stripFinalNewline:!0},u),C=(0,qa.handleOutput)({stripFinalNewline:!0},m);return(0,qa.defaultParsing)({stdout:Q,stderr:C,error:l,exitCode:p,signal:g,timedOut:c,command:"osascript",options:t,parentError:new Error})}M1.runAppleScript=x5});var Zn=E(Ue=>{"use strict";var _5=Ue&&Ue.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),LA=Ue&&Ue.__exportStar||function(e,A){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(A,t)&&_5(A,e,t)};Object.defineProperty(Ue,"__esModule",{value:!0});LA(ba(),Ue);LA(Or(),Ue);LA(Wr(),Ue);LA(el(),Ue);LA(nl(),Ue);LA(gl(),Ue);LA(El(),Ue);LA(ml(),Ue);LA(hl(),Ue);LA(Ul(),Ue);LA(Tl(),Ue)});var ie=E((MN,Ml)=>{Ml.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size")}});var $=E((VN,Vl)=>{"use strict";var Qe=class extends Error{constructor(A){super(A),this.name="UndiciError",this.code="UND_ERR"}},jn=class e extends Qe{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ConnectTimeoutError",this.message=A||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},Xn=class e extends Qe{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="HeadersTimeoutError",this.message=A||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},zn=class e extends Qe{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="HeadersOverflowError",this.message=A||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},Kn=class e extends Qe{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="BodyTimeoutError",this.message=A||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},$n=class e extends Qe{constructor(A,t,a,r){super(A),Error.captureStackTrace(this,e),this.name="ResponseStatusCodeError",this.message=A||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=r,this.status=t,this.statusCode=t,this.headers=a}},eo=class e extends Qe{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InvalidArgumentError",this.message=A||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},Ao=class e extends Qe{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InvalidReturnValueError",this.message=A||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},to=class e extends Qe{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="AbortError",this.message=A||"Request aborted",this.code="UND_ERR_ABORTED"}},ao=class e extends Qe{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InformationalError",this.message=A||"Request information",this.code="UND_ERR_INFO"}},ro=class e extends Qe{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="RequestContentLengthMismatchError",this.message=A||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},io=class e extends Qe{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ResponseContentLengthMismatchError",this.message=A||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},so=class e extends Qe{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ClientDestroyedError",this.message=A||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},no=class e extends Qe{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ClientClosedError",this.message=A||"The client is closed",this.code="UND_ERR_CLOSED"}},oo=class e extends Qe{constructor(A,t){super(A),Error.captureStackTrace(this,e),this.name="SocketError",this.message=A||"Socket error",this.code="UND_ERR_SOCKET",this.socket=t}},Qi=class e extends Qe{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="NotSupportedError",this.message=A||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},po=class extends Qe{constructor(A){super(A),Error.captureStackTrace(this,Qi),this.name="MissingUpstreamError",this.message=A||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},lo=class e extends Error{constructor(A,t,a){super(A),Error.captureStackTrace(this,e),this.name="HTTPParserError",this.code=t?`HPE_${t}`:void 0,this.data=a?a.toString():void 0}},go=class e extends Qe{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ResponseExceededMaxSizeError",this.message=A||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}};Vl.exports={HTTPParserError:lo,UndiciError:Qe,HeadersTimeoutError:Xn,HeadersOverflowError:zn,BodyTimeoutError:Kn,RequestContentLengthMismatchError:ro,ConnectTimeoutError:jn,ResponseStatusCodeError:$n,InvalidArgumentError:eo,InvalidReturnValueError:Ao,RequestAbortedError:to,ClientDestroyedError:so,ClientClosedError:no,InformationalError:ao,SocketError:oo,NotSupportedError:Qi,ResponseContentLengthMismatchError:io,BalancedPoolMissingUpstreamError:po,ResponseExceededMaxSizeError:go}});var q=E((YN,Zl)=>{"use strict";var xl=require("assert"),{kDestroyed:_l,kBodyUsed:Yl}=ie(),{IncomingMessage:q5}=require("http"),V1=require("stream"),H5=require("net"),{InvalidArgumentError:Te}=$(),{Blob:Jl}=require("buffer"),Ci=require("util"),{stringify:O5}=require("querystring"),[co,Gl]=process.versions.node.split(".").map(e=>Number(e));function P5(){}function uo(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function ql(e){return Jl&&e instanceof Jl||e&&typeof e=="object"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function W5(e,A){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let t=O5(A);return t&&(e+="?"+t),e}function Hl(e){if(typeof e=="string"){if(e=new URL(e),!/^https?:/.test(e.origin||e.protocol))throw new Te("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new Te("Invalid URL: The URL argument must be a non-null object.");if(e.port!=null&&e.port!==""&&!Number.isFinite(parseInt(e.port)))throw new Te("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new Te("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new Te("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new Te("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new Te("Invalid URL origin: the origin must be a string or null/undefined.");if(!/^https?:/.test(e.origin||e.protocol))throw new Te("Invalid URL protocol: the URL must start with `http:` or `https:`.");if(!(e instanceof URL)){let A=e.port!=null?e.port:e.protocol==="https:"?443:80,t=e.origin!=null?e.origin:`${e.protocol}//${e.hostname}:${A}`,a=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;t.endsWith("/")&&(t=t.substring(0,t.length-1)),a&&!a.startsWith("/")&&(a=`/${a}`),e=new URL(t+a)}return e}function Z5(e){if(e=Hl(e),e.pathname!=="/"||e.search||e.hash)throw new Te("invalid url");return e}function j5(e){if(e[0]==="["){let t=e.indexOf("]");return xl(t!==-1),e.substr(1,t-1)}let A=e.indexOf(":");return A===-1?e:e.substr(0,A)}function X5(e){if(!e)return null;xl.strictEqual(typeof e,"string");let A=j5(e);return H5.isIP(A)?"":A}function z5(e){return JSON.parse(JSON.stringify(e))}function K5(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function $5(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function em(e){if(e==null)return 0;if(uo(e)){let A=e._readableState;return A&&A.ended===!0&&Number.isFinite(A.length)?A.length:null}else{if(ql(e))return e.size!=null?e.size:null;if(Pl(e))return e.byteLength}return null}function Eo(e){return!e||!!(e.destroyed||e[_l])}function Ol(e){let A=e&&e._readableState;return Eo(e)&&A&&!A.endEmitted}function Am(e,A){!uo(e)||Eo(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===q5&&(e.socket=null),e.destroy(A)):A&&process.nextTick((t,a)=>{t.emit("error",a)},e,A),e.destroyed!==!0&&(e[_l]=!0))}var tm=/timeout=(\d+)/;function am(e){let A=e.toString().match(tm);return A?parseInt(A[1],10)*1e3:null}function rm(e,A={}){for(let t=0;t<e.length;t+=2){let a=e[t].toString().toLowerCase(),r=A[a];r?(Array.isArray(r)||(r=[r],A[a]=r),r.push(e[t+1].toString("utf8"))):Array.isArray(e[t+1])?A[a]=e[t+1]:A[a]=e[t+1].toString("utf8")}return"content-length"in A&&"content-disposition"in A&&(A["content-disposition"]=Buffer.from(A["content-disposition"]).toString("latin1")),A}function im(e){let A=[],t=!1,a=-1;for(let r=0;r<e.length;r+=2){let i=e[r+0].toString(),s=e[r+1].toString("utf8");i.length===14&&(i==="content-length"||i.toLowerCase()==="content-length")?(A.push(i,s),t=!0):i.length===19&&(i==="content-disposition"||i.toLowerCase()==="content-disposition")?a=A.push(i,s)-1:A.push(i,s)}return t&&a!==-1&&(A[a]=Buffer.from(A[a]).toString("latin1")),A}function Pl(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function sm(e,A,t){if(!e||typeof e!="object")throw new Te("handler must be an object");if(typeof e.onConnect!="function")throw new Te("invalid onConnect method");if(typeof e.onError!="function")throw new Te("invalid onError method");if(typeof e.onBodySent!="function"&&e.onBodySent!==void 0)throw new Te("invalid onBodySent method");if(t||A==="CONNECT"){if(typeof e.onUpgrade!="function")throw new Te("invalid onUpgrade method")}else{if(typeof e.onHeaders!="function")throw new Te("invalid onHeaders method");if(typeof e.onData!="function")throw new Te("invalid onData method");if(typeof e.onComplete!="function")throw new Te("invalid onComplete method")}}function nm(e){return!!(e&&(V1.isDisturbed?V1.isDisturbed(e)||e[Yl]:e[Yl]||e.readableDidRead||e._readableState&&e._readableState.dataEmitted||Ol(e)))}function om(e){return!!(e&&(V1.isErrored?V1.isErrored(e):/state: 'errored'/.test(Ci.inspect(e))))}function dm(e){return!!(e&&(V1.isReadable?V1.isReadable(e):/state: 'readable'/.test(Ci.inspect(e))))}function pm(e){return{localAddress:e.localAddress,localPort:e.localPort,remoteAddress:e.remoteAddress,remotePort:e.remotePort,remoteFamily:e.remoteFamily,timeout:e.timeout,bytesWritten:e.bytesWritten,bytesRead:e.bytesRead}}var Ha;function lm(e){if(Ha||(Ha=require("stream/web").ReadableStream),Ha.from)return Ha.from(e);let A;return new Ha({async start(){A=e[Symbol.asyncIterator]()},async pull(t){let{done:a,value:r}=await A.next();if(a)queueMicrotask(()=>{t.close()});else{let i=Buffer.isBuffer(r)?r:Buffer.from(r);t.enqueue(new Uint8Array(i))}return t.desiredSize>0},async cancel(t){await A.return()}},0)}function gm(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function cm(e){if(e){if(typeof e.throwIfAborted=="function")e.throwIfAborted();else if(e.aborted){let A=new Error("The operation was aborted");throw A.name="AbortError",A}}}var mi;function um(e,A){return typeof Symbol.dispose=="symbol"&&(mi||(mi=require("events")),typeof mi.addAbortListener=="function"&&"aborted"in e)?mi.addAbortListener(e,A):"addEventListener"in e?(e.addEventListener("abort",A,{once:!0}),()=>e.removeEventListener("abort",A)):(e.addListener("abort",A),()=>e.removeListener("abort",A))}var Em=!!String.prototype.toWellFormed;function Qm(e){return Em?`${e}`.toWellFormed():Ci.toUSVString?Ci.toUSVString(e):`${e}`}var Wl=Object.create(null);Wl.enumerable=!0;Zl.exports={kEnumerableProperty:Wl,nop:P5,isDisturbed:nm,isErrored:om,isReadable:dm,toUSVString:Qm,isReadableAborted:Ol,isBlobLike:ql,parseOrigin:Z5,parseURL:Hl,getServerName:X5,isStream:uo,isIterable:$5,isAsyncIterable:K5,isDestroyed:Eo,parseRawHeaders:im,parseHeaders:rm,parseKeepAliveTimeout:am,destroy:Am,bodyLength:em,deepClone:z5,ReadableStreamFrom:lm,isBuffer:Pl,validateHandler:sm,getSocketInfo:pm,isFormDataLike:gm,buildURL:W5,throwIfAborted:cm,addAbortListener:um,nodeMajor:co,nodeMinor:Gl,nodeHasAutoSelectFamily:co>18||co===18&&Gl>=13}});var zl=E((JN,Xl)=>{"use strict";var Qo=Date.now(),St,Ft=[];function mm(){Qo=Date.now();let e=Ft.length,A=0;for(;A<e;){let t=Ft[A];t.state===0?t.state=Qo+t.delay:t.state>0&&Qo>=t.state&&(t.state=-1,t.callback(t.opaque)),t.state===-1?(t.state=-2,A!==e-1?Ft[A]=Ft.pop():Ft.pop(),e-=1):A+=1}Ft.length>0&&jl()}function jl(){St&&St.refresh?St.refresh():(clearTimeout(St),St=setTimeout(mm,1e3),St.unref&&St.unref())}var Bi=class{constructor(A,t,a){this.callback=A,this.delay=t,this.opaque=a,this.state=-2,this.refresh()}refresh(){this.state===-2&&(Ft.push(this),(!St||Ft.length===1)&&jl()),this.state=0}clear(){this.state=-1}};Xl.exports={setTimeout(e,A,t){return A<1e3?setTimeout(e,A,t):new Bi(e,A,t)},clearTimeout(e){e instanceof Bi?e.clear():clearTimeout(e)}}});var hi=E((t4,a4)=>{"use strict";function Cm(e){if(e.length===0)return;let A=Object.create(null),t=0;for(;t<e.length;++t){let s=e.charCodeAt(t);if(Kt[s]!==1){if(s!==47||t===0)return;break}}if(t===e.length)return;let a=e.slice(0,t).toLowerCase(),r=++t;for(;t<e.length;++t){let s=e.charCodeAt(t);if(Kt[s]!==1){if(t===r||Bm(e,t,A)===void 0)return;break}}if(t===r)return;let i=e.slice(r,t).toLowerCase();return{type:a,subtype:i,params:A}}function Bm(e,A,t){for(;A<e.length;){for(;A<e.length;++A){let n=e.charCodeAt(A);if(n!==32&&n!==9)break}if(A===e.length)break;if(e.charCodeAt(A++)!==59)return;for(;A<e.length;++A){let n=e.charCodeAt(A);if(n!==32&&n!==9)break}if(A===e.length)return;let a,r=A;for(;A<e.length;++A){let n=e.charCodeAt(A);if(Kt[n]!==1){if(n!==61)return;break}}if(A===e.length||(a=e.slice(r,A),++A,A===e.length))return;let i="",s;if(e.charCodeAt(A)===34){s=++A;let n=!1;for(;A<e.length;++A){let o=e.charCodeAt(A);if(o===92){n?(s=A,n=!1):(i+=e.slice(s,A),n=!0);continue}if(o===34){if(n){s=A,n=!1;continue}i+=e.slice(s,A);break}if(n&&(s=A-1,n=!1),A4[o]!==1)return}if(A===e.length)return;++A}else{for(s=A;A<e.length;++A){let n=e.charCodeAt(A);if(Kt[n]!==1){if(A===s)return;break}}i=e.slice(s,A)}a=a.toLowerCase(),t[a]===void 0&&(t[a]=i)}return t}function hm(e,A){if(e.length===0)return;let t=Object.create(null),a=0;for(;a<e.length;++a){let i=e.charCodeAt(a);if(Kt[i]!==1){if(Im(e,a,t,A)===void 0)return;break}}return{type:e.slice(0,a).toLowerCase(),params:t}}function Im(e,A,t,a){for(;A<e.length;){for(;A<e.length;++A){let d=e.charCodeAt(A);if(d!==32&&d!==9)break}if(A===e.length)break;if(e.charCodeAt(A++)!==59)return;for(;A<e.length;++A){let d=e.charCodeAt(A);if(d!==32&&d!==9)break}if(A===e.length)return;let r,i=A;for(;A<e.length;++A){let d=e.charCodeAt(A);if(Kt[d]!==1){if(d===61)break;return}}if(A===e.length)return;let s="",n,o;if(r=e.slice(i,A),r.charCodeAt(r.length-1)===42){let d=++A;for(;A<e.length;++A){let p=e.charCodeAt(A);if(wm[p]!==1){if(p!==39)return;break}}if(A===e.length)return;for(o=e.slice(d,A),++A;A<e.length&&e.charCodeAt(A)!==39;++A);if(A===e.length||(++A,A===e.length))return;n=A;let l=0;for(;A<e.length;++A){let p=e.charCodeAt(A);if(ym[p]!==1){if(p===37){let g,c;if(A+2<e.length&&(g=Kl[e.charCodeAt(A+1)])!==-1&&(c=Kl[e.charCodeAt(A+2)])!==-1){let u=(g<<4)+c;s+=e.slice(n,A),s+=String.fromCharCode(u),A+=2,n=A+1,u>=128?l=2:l===0&&(l=1);continue}return}break}}if(s+=e.slice(n,A),s=e4(s,o,l),s===void 0)return}else{if(++A,A===e.length)return;if(e.charCodeAt(A)===34){n=++A;let d=!1;for(;A<e.length;++A){let l=e.charCodeAt(A);if(l===92){d?(n=A,d=!1):(s+=e.slice(n,A),d=!0);continue}if(l===34){if(d){n=A,d=!1;continue}s+=e.slice(n,A);break}if(d&&(n=A-1,d=!1),A4[l]!==1)return}if(A===e.length)return;++A}else{for(n=A;A<e.length;++A){let d=e.charCodeAt(A);if(Kt[d]!==1){if(A===n)return;break}}s=e.slice(n,A)}if(s=a(s,2),s===void 0)return}r=r.toLowerCase(),t[r]===void 0&&(t[r]=s)}return t}function $l(e){let A;for(;;)switch(e){case"utf-8":case"utf8":return Oa.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return Oa.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return Oa.utf16le;case"base64":return Oa.base64;default:if(A===void 0){A=!0,e=e.toLowerCase();continue}return Oa.other.bind(e)}}var Oa={utf8:(e,A)=>{if(e.length===0)return"";if(typeof e=="string"){if(A<2)return e;e=Buffer.from(e,"latin1")}return e.utf8Slice(0,e.length)},latin1:(e,A)=>e.length===0?"":typeof e=="string"?e:e.latin1Slice(0,e.length),utf16le:(e,A)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,"latin1")),e.ucs2Slice(0,e.length)),base64:(e,A)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,"latin1")),e.base64Slice(0,e.length)),other:(e,A)=>{if(e.length===0)return"";typeof e=="string"&&(e=Buffer.from(e,"latin1"));try{return new TextDecoder(t4).decode(e)}catch{}}};function e4(e,A,t){let a=$l(A);if(a)return a(e,t)}function fm(e){if(typeof e!="string")return"";for(let A=e.length-1;A>=0;--A)switch(e.charCodeAt(A)){case 47:case 92:return e=e.slice(A+1),e===".."||e==="."?"":e}return e===".."||e==="."?"":e}var Kt=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],A4=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],wm=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],ym=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],Kl=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];a4.exports={basename:fm,convertToUTF8:e4,getDecoder:$l,parseContentType:Cm,parseDisposition:hm}});var n4=E((GN,s4)=>{"use strict";function r4(e,A,t,a,r){for(let i=0;i<r;++i)if(e[A+i]!==t[a+i])return!1;return!0}var mo=class{constructor(A,t){if(typeof t!="function")throw new Error("Missing match callback");if(typeof A=="string")A=Buffer.from(A);else if(!Buffer.isBuffer(A))throw new Error(`Expected Buffer for needle, got ${typeof A}`);let a=A.length;if(this.maxMatches=1/0,this.matches=0,this._cb=t,this._lookbehindSize=0,this._needle=A,this._bufPos=0,this._lookbehind=Buffer.allocUnsafe(a),this._occ=[a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a],a>1)for(let r=0;r<a-1;++r)this._occ[A[r]]=a-1-r}reset(){this.matches=0,this._lookbehindSize=0,this._bufPos=0}push(A,t){let a;Buffer.isBuffer(A)||(A=Buffer.from(A,"latin1"));let r=A.length;for(this._bufPos=t||0;a!==r&&this.matches<this.maxMatches;)a=Dm(this,A);return a}destroy(){let A=this._lookbehindSize;A&&this._cb(!1,this._lookbehind,0,A,!1),this.reset()}};function Dm(e,A){let t=A.length,a=e._needle,r=a.length,i=-e._lookbehindSize,s=r-1,n=a[s],o=t-r,d=e._occ,l=e._lookbehind;if(i<0){for(;i<0&&i<=o;){let g=i+s,c=g<0?l[e._lookbehindSize+g]:A[g];if(c===n&&i4(e,A,i,s))return e._lookbehindSize=0,++e.matches,i>-e._lookbehindSize?e._cb(!0,l,0,e._lookbehindSize+i,!1):e._cb(!0,void 0,0,0,!0),e._bufPos=i+r;i+=d[c]}for(;i<0&&!i4(e,A,i,t-i);)++i;if(i<0){let g=e._lookbehindSize+i;return g>0&&e._cb(!1,l,0,g,!1),e._lookbehindSize-=g,l.copy(l,0,g,e._lookbehindSize),l.set(A,e._lookbehindSize),e._lookbehindSize+=t,e._bufPos=t,t}e._cb(!1,l,0,e._lookbehindSize,!1),e._lookbehindSize=0}i+=e._bufPos;let p=a[0];for(;i<=o;){let g=A[i+s];if(g===n&&A[i]===p&&r4(a,0,A,i,s))return++e.matches,i>0?e._cb(!0,A,e._bufPos,i,!0):e._cb(!0,void 0,0,0,!0),e._bufPos=i+r;i+=d[g]}for(;i<t;){if(A[i]!==p||!r4(A,i,a,0,t-i)){++i;continue}A.copy(l,0,i,t),e._lookbehindSize=t-i;break}return i>0&&e._cb(!1,A,e._bufPos,i<t?i:t,!0),e._bufPos=t,t}function i4(e,A,t,a){let r=e._lookbehind,i=e._lookbehindSize,s=e._needle;for(let n=0;n<a;++n,++t)if((t<0?r[i+t]:A[t])!==s[n])return!1;return!0}s4.exports=mo});var Q4=E((xN,E4)=>{"use strict";var{Readable:Rm,Writable:vm}=require("stream"),Nm=n4(),{basename:bm,convertToUTF8:o4,getDecoder:Sm,parseContentType:Fm,parseDisposition:km}=hi(),Lm=Buffer.from(`\r +`),Um=Buffer.from("\r"),Tm=Buffer.from("-");function d4(){}var Mm=2e3,Y1=16*1024,Ii=0,p4=1,l4=2,Co=class{constructor(A){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=Ii,this.name="",this.value="",this.crlf=0,this.cb=A}reset(){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=Ii,this.name="",this.value="",this.crlf=0}push(A,t,a){let r=t;for(;t<a;)switch(this.state){case Ii:{let i=!1;for(;t<a;++t){if(this.byteCount===Y1)return-1;++this.byteCount;let s=A[t];if(Jm[s]!==1){if(s!==58||(this.name+=A.latin1Slice(r,t),this.name.length===0))return-1;++t,i=!0,this.state=p4;break}}if(!i){this.name+=A.latin1Slice(r,t);break}}case p4:{let i=!1;for(;t<a;++t){if(this.byteCount===Y1)return-1;++this.byteCount;let s=A[t];if(s!==32&&s!==9){r=t,i=!0,this.state=l4;break}}if(!i)break}case l4:switch(this.crlf){case 0:for(;t<a;++t){if(this.byteCount===Y1)return-1;++this.byteCount;let i=A[t];if(Gm[i]!==1){if(i!==13)return-1;++this.crlf;break}}this.value+=A.latin1Slice(r,t++);break;case 1:if(this.byteCount===Y1||(++this.byteCount,A[t++]!==10))return-1;++this.crlf;break;case 2:{if(this.byteCount===Y1)return-1;++this.byteCount;let i=A[t];i===32||i===9?(r=t,this.crlf=0):(++this.pairCount<Mm&&(this.name=this.name.toLowerCase(),this.header[this.name]===void 0?this.header[this.name]=[this.value]:this.header[this.name].push(this.value)),i===13?(++this.crlf,++t):(r=t,this.crlf=0,this.state=Ii,this.name="",this.value=""));break}case 3:{if(this.byteCount===Y1||(++this.byteCount,A[t++]!==10))return-1;let i=this.header;return this.reset(),this.cb(i),t}}break}return t}},Bo=class extends Rm{constructor(A,t){super(A),this.truncated=!1,this._readcb=null,this.once("end",()=>{if(this._read(),--t._fileEndsLeft===0&&t._finalcb){let a=t._finalcb;t._finalcb=null,process.nextTick(a)}})}_read(A){let t=this._readcb;t&&(this._readcb=null,t())}},g4={push:(e,A)=>{},destroy:()=>{}};function Vm(e,A){let t=e._writecb;e._writecb=null,A?e.destroy(A):t&&t()}function Ym(e,A){return e}var ho=class extends vm{constructor(A){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.highWaterMark=="number"?A.highWaterMark:void 0};if(super(t),!A.conType.params||typeof A.conType.params.boundary!="string")throw new Error("Multipart: Boundary not found");let a=A.conType.params.boundary,r=typeof A.defParamCharset=="string"&&A.defParamCharset?Sm(A.defParamCharset):Ym,i=A.defCharset||"utf8",s=A.preservePath,n={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.fileHwm=="number"?A.fileHwm:void 0},o=A.limits,d=o&&typeof o.fieldSize=="number"?o.fieldSize:1*1024*1024,l=o&&typeof o.fileSize=="number"?o.fileSize:1/0,p=o&&typeof o.files=="number"?o.files:1/0,g=o&&typeof o.fields=="number"?o.fields:1/0,c=o&&typeof o.parts=="number"?o.parts:1/0,u=-1,m=0,Q=0,C=!1;this._fileEndsLeft=0,this._fileStream=void 0,this._complete=!1;let B=0,w,I=0,y,b,k,x,ye=!1,Be=!1,wt=!1;this._hparser=null;let Fe=new Co(j=>{this._hparser=null,C=!1,k="text/plain",y=i,b="7bit",x=void 0,ye=!1;let re;if(!j["content-disposition"]){C=!0;return}let U=km(j["content-disposition"][0],r);if(!U||U.type!=="form-data"){C=!0;return}if(U.params&&(U.params.name&&(x=U.params.name),U.params["filename*"]?re=U.params["filename*"]:U.params.filename&&(re=U.params.filename),re!==void 0&&!s&&(re=bm(re))),j["content-type"]){let T=Fm(j["content-type"][0]);T&&(k=`${T.type}/${T.subtype}`,T.params&&typeof T.params.charset=="string"&&(y=T.params.charset.toLowerCase()))}if(j["content-transfer-encoding"]&&(b=j["content-transfer-encoding"][0].toLowerCase()),k==="application/octet-stream"||re!==void 0){if(Q===p){Be||(Be=!0,this.emit("filesLimit")),C=!0;return}if(++Q,this.listenerCount("file")===0){C=!0;return}B=0,this._fileStream=new Bo(n,this),++this._fileEndsLeft,this.emit("file",x,this._fileStream,{filename:re,encoding:b,mimeType:k})}else{if(m===g){wt||(wt=!0,this.emit("fieldsLimit")),C=!0;return}if(++m,this.listenerCount("field")===0){C=!0;return}w=[],I=0}}),le=0,QA=(j,re,U,T,JA)=>{e:for(;re;){if(this._hparser!==null){let W=this._hparser.push(re,U,T);if(W===-1){this._hparser=null,Fe.reset(),this.emit("error",new Error("Malformed part header"));break}U=W}if(U===T)break;if(le!==0){if(le===1){switch(re[U]){case 45:le=2,++U;break;case 13:le=3,++U;break;default:le=0}if(U===T)return}if(le===2){if(le=0,re[U]===45){this._complete=!0,this._bparser=g4;return}let W=this._writecb;this._writecb=d4,QA(!1,Tm,0,1,!1),this._writecb=W}else if(le===3)if(le=0,re[U]===10){if(++U,u>=c||(this._hparser=Fe,U===T))break;continue e}else{let W=this._writecb;this._writecb=d4,QA(!1,Um,0,1,!1),this._writecb=W}}if(!C){if(this._fileStream){let W,tA=Math.min(T-U,l-B);JA?W=re.slice(U,U+tA):(W=Buffer.allocUnsafe(tA),re.copy(W,0,U,U+tA)),B+=W.length,B===l?(W.length>0&&this._fileStream.push(W),this._fileStream.emit("limit"),this._fileStream.truncated=!0,C=!0):this._fileStream.push(W)||(this._writecb&&(this._fileStream._readcb=this._writecb),this._writecb=null)}else if(w!==void 0){let W,tA=Math.min(T-U,d-I);JA?W=re.slice(U,U+tA):(W=Buffer.allocUnsafe(tA),re.copy(W,0,U,U+tA)),I+=tA,w.push(W),I===d&&(C=!0,ye=!0)}}break}if(j){if(le=1,this._fileStream)this._fileStream.push(null),this._fileStream=null;else if(w!==void 0){let W;switch(w.length){case 0:W="";break;case 1:W=o4(w[0],y,0);break;default:W=o4(Buffer.concat(w,I),y,0)}w=void 0,I=0,this.emit("field",x,W,{nameTruncated:!1,valueTruncated:ye,encoding:b,mimeType:k})}++u===c&&this.emit("partsLimit")}};this._bparser=new Nm(`\r +--${a}`,QA),this._writecb=null,this._finalcb=null,this.write(Lm)}static detect(A){return A.type==="multipart"&&A.subtype==="form-data"}_write(A,t,a){this._writecb=a,this._bparser.push(A,0),this._writecb&&Vm(this)}_destroy(A,t){this._hparser=null,this._bparser=g4,A||(A=u4(this));let a=this._fileStream;a&&(this._fileStream=null,a.destroy(A)),t(A)}_final(A){if(this._bparser.destroy(),!this._complete)return A(new Error("Unexpected end of form"));this._fileEndsLeft?this._finalcb=c4.bind(null,this,A):c4(this,A)}};function c4(e,A,t){if(t)return A(t);t=u4(e),A(t)}function u4(e){if(e._hparser)return new Error("Malformed part header");let A=e._fileStream;if(A&&(e._fileStream=null,A.destroy(new Error("Unexpected end of file"))),!e._complete)return new Error("Unexpected end of form")}var Jm=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],Gm=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];E4.exports=ho});var C4=E((_N,m4)=>{"use strict";var{Writable:xm}=require("stream"),{getDecoder:_m}=hi(),Do=class extends xm{constructor(A){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.highWaterMark=="number"?A.highWaterMark:void 0};super(t);let a=A.defCharset||"utf8";A.conType.params&&typeof A.conType.params.charset=="string"&&(a=A.conType.params.charset),this.charset=a;let r=A.limits;this.fieldSizeLimit=r&&typeof r.fieldSize=="number"?r.fieldSize:1*1024*1024,this.fieldsLimit=r&&typeof r.fields=="number"?r.fields:1/0,this.fieldNameSizeLimit=r&&typeof r.fieldNameSize=="number"?r.fieldNameSize:100,this._inKey=!0,this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,this._fields=0,this._key="",this._val="",this._byte=-2,this._lastPos=0,this._encode=0,this._decoder=_m(a)}static detect(A){return A.type==="application"&&A.subtype==="x-www-form-urlencoded"}_write(A,t,a){if(this._fields>=this.fieldsLimit)return a();let r=0,i=A.length;if(this._lastPos=0,this._byte!==-2){if(r=Io(this,A,r,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();this._inKey?++this._bytesKey:++this._bytesVal}e:for(;r<i;)if(this._inKey){for(r=fo(this,A,r,i);r<i;){switch(A[r]){case 61:this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._key=this._decoder(this._key,this._encode),this._encode=0,this._inKey=!1;continue e;case 38:if(this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._key=this._decoder(this._key,this._encode),this._encode=0,this._bytesKey>0&&this.emit("field",this._key,"",{nameTruncated:this._keyTrunc,valueTruncated:!1,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),a();continue;case 43:this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._key+=" ",this._lastPos=r+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=r+1,this._byte=-1,r=Io(this,A,r+1,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();++this._bytesKey,r=fo(this,A,r,i);continue}++r,++this._bytesKey,r=fo(this,A,r,i)}this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r))}else{for(r=wo(this,A,r,i);r<i;){switch(A[r]){case 38:if(this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._inKey=!0,this._val=this._decoder(this._val,this._encode),this._encode=0,(this._bytesKey>0||this._bytesVal>0)&&this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),a();continue e;case 43:this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._val+=" ",this._lastPos=r+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._lastPos=r+1,this._byte=-1,r=Io(this,A,r+1,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();++this._bytesVal,r=wo(this,A,r,i);continue}++r,++this._bytesVal,r=wo(this,A,r,i)}this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r))}a()}_final(A){if(this._byte!==-2)return A(new Error("Malformed urlencoded form"));(!this._inKey||this._bytesKey>0||this._bytesVal>0)&&(this._inKey?this._key=this._decoder(this._key,this._encode):this._val=this._decoder(this._val,this._encode),this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"})),A()}};function Io(e,A,t,a){if(t>=a)return a;if(e._byte===-1){let r=yo[A[t++]];if(r===-1)return-1;if(r>=8&&(e._encode=2),t<a){let i=yo[A[t++]];if(i===-1)return-1;e._inKey?e._key+=String.fromCharCode((r<<4)+i):e._val+=String.fromCharCode((r<<4)+i),e._byte=-2,e._lastPos=t}else e._byte=r}else{let r=yo[A[t++]];if(r===-1)return-1;e._inKey?e._key+=String.fromCharCode((e._byte<<4)+r):e._val+=String.fromCharCode((e._byte<<4)+r),e._byte=-2,e._lastPos=t}return t}function fo(e,A,t,a){if(e._bytesKey>e.fieldNameSizeLimit){for(e._keyTrunc||e._lastPos<t&&(e._key+=A.latin1Slice(e._lastPos,t-1)),e._keyTrunc=!0;t<a;++t){let r=A[t];if(r===61||r===38)break;++e._bytesKey}e._lastPos=t}return t}function wo(e,A,t,a){if(e._bytesVal>e.fieldSizeLimit){for(e._valTrunc||e._lastPos<t&&(e._val+=A.latin1Slice(e._lastPos,t-1)),e._valTrunc=!0;t<a&&A[t]!==38;++t)++e._bytesVal;e._lastPos=t}return t}var yo=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];m4.exports=Do});var h4=E((qN,B4)=>{"use strict";var{parseContentType:qm}=hi();function Hm(e){let A=e.headers,t=qm(A["content-type"]);if(!t)throw new Error("Malformed content type");for(let a of Om){if(!a.detect(t))continue;let i={limits:e.limits,headers:A,conType:t,highWaterMark:void 0,fileHwm:void 0,defCharset:void 0,defParamCharset:void 0,preservePath:!1};return e.highWaterMark&&(i.highWaterMark=e.highWaterMark),e.fileHwm&&(i.fileHwm=e.fileHwm),i.defCharset=e.defCharset,i.defParamCharset=e.defParamCharset,i.preservePath=e.preservePath,new a(i)}throw new Error(`Unsupported content type: ${A["content-type"]}`)}var Om=[Q4(),C4()].filter(function(e){return typeof e.detect=="function"});B4.exports=e=>{if((typeof e!="object"||e===null)&&(e={}),typeof e.headers!="object"||e.headers===null||typeof e.headers["content-type"]!="string")throw new Error("Missing Content-Type");return Hm(e)}});var kt=E((HN,I4)=>{"use strict";var{MessageChannel:Pm,receiveMessageOnPort:Wm}=require("worker_threads"),Zm=["GET","HEAD","POST"],jm=[101,204,205,304],Xm=[301,302,303,307,308],zm=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"],Km=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],$m=["follow","manual","error"],eC=["GET","HEAD","OPTIONS","TRACE"],AC=["navigate","same-origin","no-cors","cors"],tC=["omit","same-origin","include"],aC=["default","no-store","reload","no-cache","force-cache","only-if-cached"],rC=["content-encoding","content-language","content-location","content-type","content-length"],iC=["half"],sC=["CONNECT","TRACE","TRACK"],nC=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],oC=globalThis.DOMException??(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})(),J1,dC=globalThis.structuredClone??function(A,t=void 0){if(arguments.length===0)throw new TypeError("missing argument");return J1||(J1=new Pm),J1.port1.unref(),J1.port2.unref(),J1.port1.postMessage(A,t?.transfer),Wm(J1.port2).message};I4.exports={DOMException:oC,structuredClone:dC,subresource:nC,forbiddenMethods:sC,requestBodyHeader:rC,referrerPolicy:Km,requestRedirect:$m,requestMode:AC,requestCredentials:tC,requestCache:aC,redirectStatus:Xm,corsSafeListedMethods:Zm,nullBodyStatus:jm,safeMethods:eC,badPorts:zm,requestDuplex:iC}});var Pa=E((ON,f4)=>{"use strict";var Ro=Symbol.for("undici.globalOrigin.1");function pC(){return globalThis[Ro]}function lC(e){if(e!==void 0&&typeof e!="string"&&!(e instanceof URL))throw new Error("Invalid base url");if(e===void 0){Object.defineProperty(globalThis,Ro,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let A=new URL(e);if(A.protocol!=="http:"&&A.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${A.protocol}`);Object.defineProperty(globalThis,Ro,{value:A,writable:!0,enumerable:!1,configurable:!1})}f4.exports={getGlobalOrigin:pC,setGlobalOrigin:lC}});var IA=E((PN,N4)=>{"use strict";var{redirectStatus:gC,badPorts:cC,referrerPolicy:uC}=kt(),{getGlobalOrigin:EC}=Pa(),{performance:QC}=require("perf_hooks"),{isBlobLike:mC,toUSVString:CC,ReadableStreamFrom:BC}=q(),G1=require("assert"),{isUint8Array:hC}=require("util/types"),fi;try{fi=require("crypto")}catch{}function w4(e){let A=e.urlList,t=A.length;return t===0?null:A[t-1].toString()}function IC(e,A){if(!gC.includes(e.status))return null;let t=e.headersList.get("location");return t!==null&&D4(t)&&(t=new URL(t,w4(e))),t&&!t.hash&&(t.hash=A),t}function Za(e){return e.urlList[e.urlList.length-1]}function fC(e){let A=Za(e);return v4(A)&&cC.includes(A.port)?"blocked":"allowed"}function wC(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function yC(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(!(t===9||t>=32&&t<=126||t>=128&&t<=255))return!1}return!0}function DC(e){return!(e>=127||e<=32||e==="("||e===")"||e==="<"||e===">"||e==="@"||e===","||e===";"||e===":"||e==="\\"||e==='"'||e==="/"||e==="["||e==="]"||e==="?"||e==="="||e==="{"||e==="}")}function y4(e){if(!e||typeof e!="string")return!1;for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t>127||!DC(t))return!1}return!0}function RC(e){return e.length===0?!1:y4(e)}function D4(e){return!(e.startsWith(" ")||e.startsWith(" ")||e.endsWith(" ")||e.endsWith(" ")||e.includes("\0")||e.includes("\r")||e.includes(` +`))}function vC(e,A){let{headersList:t}=A,a=(t.get("referrer-policy")??"").split(","),r="";if(a.length>0)for(let i=a.length;i!==0;i--){let s=a[i-1].trim();if(uC.includes(s)){r=s;break}}r!==""&&(e.referrerPolicy=r)}function NC(){return"allowed"}function bC(){return"success"}function SC(){return"success"}function FC(e){let A=null;A=e.mode,e.headersList.set("sec-fetch-mode",A)}function kC(e){let A=e.origin;if(e.responseTainting==="cors"||e.mode==="websocket")A&&e.headersList.append("origin",A);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":A=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&bo(e.origin)&&!bo(Za(e))&&(A=null);break;case"same-origin":wi(e,Za(e))||(A=null);break;default:}A&&e.headersList.append("origin",A)}}function LC(e){return QC.now()}function UC(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function TC(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function MC(e){return{referrerPolicy:e.referrerPolicy}}function VC(e){let A=e.referrerPolicy;G1(A);let t=null;if(e.referrer==="client"){let n=EC();if(!n||n.origin==="null")return"no-referrer";t=new URL(n)}else e.referrer instanceof URL&&(t=e.referrer);let a=vo(t),r=vo(t,!0);a.toString().length>4096&&(a=r);let i=wi(e,a),s=Wa(a)&&!Wa(e.url);switch(A){case"origin":return r??vo(t,!0);case"unsafe-url":return a;case"same-origin":return i?r:"no-referrer";case"origin-when-cross-origin":return i?a:r;case"strict-origin-when-cross-origin":{let n=Za(e);return wi(a,n)?a:Wa(a)&&!Wa(n)?"no-referrer":r}case"strict-origin":case"no-referrer-when-downgrade":default:return s?"no-referrer":r}}function vo(e,A){return G1(e instanceof URL),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",A&&(e.pathname="",e.search=""),e)}function Wa(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return A(e.origin);function A(t){if(t==null||t==="null")return!1;let a=new URL(t);return!!(a.protocol==="https:"||a.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(a.hostname)||a.hostname==="localhost"||a.hostname.includes("localhost.")||a.hostname.endsWith(".localhost"))}}function YC(e,A){if(fi===void 0)return!0;let t=GC(A);if(t==="no metadata"||t.length===0)return!0;let a=t.sort((s,n)=>n.algo.localeCompare(s.algo)),r=a[0].algo,i=a.filter(s=>s.algo===r);for(let s of i){let n=s.algo,o=s.hash;if(fi.createHash(n).update(e).digest("base64")===o)return!0}return!1}var JC=/((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\x21-\x7e]?)?/i;function GC(e){let A=[],t=!0,a=fi.getHashes();for(let r of e.split(" ")){t=!1;let i=JC.exec(r);if(i===null||i.groups===void 0)continue;let s=i.groups.algo;a.includes(s.toLowerCase())&&A.push(i.groups)}return t===!0?"no metadata":A}function xC(e){}function wi(e,A){return e.origin===A.origin&&e.origin==="null"||e.protocol===A.protocol&&e.hostname===A.hostname&&e.port===A.port}function _C(){let e,A;return{promise:new Promise((a,r)=>{e=a,A=r}),resolve:e,reject:A}}function qC(e){return e.controller.state==="aborted"}function HC(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}function OC(e){return/^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(e)?e.toUpperCase():e}function PC(e){let A=JSON.stringify(e);if(A===void 0)throw new TypeError("Value is not JSON serializable");return G1(typeof A=="string"),A}var WC=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function ZC(e,A,t){let a={index:0,kind:t,target:e},r={next(){if(Object.getPrototypeOf(this)!==r)throw new TypeError(`'next' called on an object that does not implement interface ${A} Iterator.`);let{index:i,kind:s,target:n}=a,o=n(),d=o.length;if(i>=d)return{value:void 0,done:!0};let l=o[i];return a.index=i+1,jC(l,s)},[Symbol.toStringTag]:`${A} Iterator`};return Object.setPrototypeOf(r,WC),Object.setPrototypeOf({},r)}function jC(e,A){let t;switch(A){case"key":{t=e[0];break}case"value":{t=e[1];break}case"key+value":{t=e;break}}return{value:t,done:!1}}function XC(e,A,t){let a=s=>queueMicrotask(()=>A(s)),r=s=>queueMicrotask(()=>t(s)),i;try{i=e.stream.getReader()}catch(s){r(s);return}R4(i,a,r)}var No=globalThis.ReadableStream;function zC(e){return No||(No=require("stream/web").ReadableStream),e instanceof No||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}var KC=65535;function $C(e){return e.length<KC?String.fromCharCode(...e):e.reduce((A,t)=>A+String.fromCharCode(t),"")}function eB(e){try{e.close()}catch(A){if(!A.message.includes("Controller is already closed"))throw A}}function AB(e){for(let A=0;A<e.length;A++)G1(e.charCodeAt(A)<=255);return e}async function R4(e,A,t){let a=[],r=0;for(;;){let i,s;try{({done:i,value:s}=await e.read())}catch(n){t(n);return}if(i){A(Buffer.concat(a,r));return}if(!hC(s)){t(new TypeError("Received non-Uint8Array chunk"));return}a.push(s),r+=s.length}}function tB(e){G1("protocol"in e);let A=e.protocol;return A==="about:"||A==="blob:"||A==="data:"}function bo(e){return typeof e=="string"?e.startsWith("https:"):e.protocol==="https:"}function v4(e){G1("protocol"in e);let A=e.protocol;return A==="http:"||A==="https:"}var aB=Object.hasOwn||((e,A)=>Object.prototype.hasOwnProperty.call(e,A));N4.exports={isAborted:qC,isCancelled:HC,createDeferredPromise:_C,ReadableStreamFrom:BC,toUSVString:CC,tryUpgradeRequestToAPotentiallyTrustworthyURL:xC,coarsenedSharedCurrentTime:LC,determineRequestsReferrer:VC,makePolicyContainer:TC,clonePolicyContainer:MC,appendFetchMetadata:FC,appendRequestOriginHeader:kC,TAOCheck:SC,corsCheck:bC,crossOriginResourcePolicyCheck:NC,createOpaqueTimingInfo:UC,setRequestReferrerPolicyOnRedirect:vC,isValidHTTPToken:y4,requestBadPort:fC,requestCurrentURL:Za,responseURL:w4,responseLocationURL:IC,isBlobLike:mC,isURLPotentiallyTrustworthy:Wa,isValidReasonPhrase:yC,sameOrigin:wi,normalizeMethod:OC,serializeJavascriptValueToJSONString:PC,makeIterator:ZC,isValidHeaderName:RC,isValidHeaderValue:D4,hasOwn:aB,isErrorLike:wC,fullyReadBody:XC,bytesMatch:YC,isReadableStreamLike:zC,readableStreamClose:eB,isomorphicEncode:AB,isomorphicDecode:$C,urlIsLocal:tB,urlHasHttpsScheme:bo,urlIsHttpHttpsScheme:v4,readAllBytes:R4}});var lt=E((WN,b4)=>{"use strict";b4.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}});var xe=E((ZN,F4)=>{"use strict";var{types:WA}=require("util"),{hasOwn:S4,toUSVString:rB}=IA(),f={};f.converters={};f.util={};f.errors={};f.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};f.errors.conversionFailed=function(e){let A=e.types.length===1?"":" one of",t=`${e.argument} could not be converted to${A}: ${e.types.join(", ")}.`;return f.errors.exception({header:e.prefix,message:t})};f.errors.invalidArgument=function(e){return f.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};f.brandCheck=function(e,A,t=void 0){if(t?.strict!==!1&&!(e instanceof A))throw new TypeError("Illegal invocation");return e?.[Symbol.toStringTag]===A.prototype[Symbol.toStringTag]};f.argumentLengthCheck=function({length:e},A,t){if(e<A)throw f.errors.exception({message:`${A} argument${A!==1?"s":""} required, but${e?" only":""} ${e} found.`,...t})};f.illegalConstructor=function(){throw f.errors.exception({header:"TypeError",message:"Illegal constructor"})};f.util.Type=function(e){switch(typeof e){case"undefined":return"Undefined";case"boolean":return"Boolean";case"string":return"String";case"symbol":return"Symbol";case"number":return"Number";case"bigint":return"BigInt";case"function":case"object":return e===null?"Null":"Object"}};f.util.ConvertToInt=function(e,A,t,a={}){let r,i;A===64?(r=Math.pow(2,53)-1,t==="unsigned"?i=0:i=Math.pow(-2,53)+1):t==="unsigned"?(i=0,r=Math.pow(2,A)-1):(i=Math.pow(-2,A)-1,r=Math.pow(2,A-1)-1);let s=Number(e);if(s===0&&(s=0),a.enforceRange===!0){if(Number.isNaN(s)||s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY)throw f.errors.exception({header:"Integer conversion",message:`Could not convert ${e} to an integer.`});if(s=f.util.IntegerPart(s),s<i||s>r)throw f.errors.exception({header:"Integer conversion",message:`Value must be between ${i}-${r}, got ${s}.`});return s}return!Number.isNaN(s)&&a.clamp===!0?(s=Math.min(Math.max(s,i),r),Math.floor(s)%2===0?s=Math.floor(s):s=Math.ceil(s),s):Number.isNaN(s)||s===0&&Object.is(0,s)||s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY?0:(s=f.util.IntegerPart(s),s=s%Math.pow(2,A),t==="signed"&&s>=Math.pow(2,A)-1?s-Math.pow(2,A):s)};f.util.IntegerPart=function(e){let A=Math.floor(Math.abs(e));return e<0?-1*A:A};f.sequenceConverter=function(e){return A=>{if(f.util.Type(A)!=="Object")throw f.errors.exception({header:"Sequence",message:`Value of type ${f.util.Type(A)} is not an Object.`});let t=A?.[Symbol.iterator]?.(),a=[];if(t===void 0||typeof t.next!="function")throw f.errors.exception({header:"Sequence",message:"Object is not an iterator."});for(;;){let{done:r,value:i}=t.next();if(r)break;a.push(e(i))}return a}};f.recordConverter=function(e,A){return t=>{if(f.util.Type(t)!=="Object")throw f.errors.exception({header:"Record",message:`Value of type ${f.util.Type(t)} is not an Object.`});let a={};if(!WA.isProxy(t)){let i=Object.keys(t);for(let s of i){let n=e(s),o=A(t[s]);a[n]=o}return a}let r=Reflect.ownKeys(t);for(let i of r)if(Reflect.getOwnPropertyDescriptor(t,i)?.enumerable){let n=e(i),o=A(t[i]);a[n]=o}return a}};f.interfaceConverter=function(e){return(A,t={})=>{if(t.strict!==!1&&!(A instanceof e))throw f.errors.exception({header:e.name,message:`Expected ${A} to be an instance of ${e.name}.`});return A}};f.dictionaryConverter=function(e){return A=>{let t=f.util.Type(A),a={};if(t==="Null"||t==="Undefined")return a;if(t!=="Object")throw f.errors.exception({header:"Dictionary",message:`Expected ${A} to be one of: Null, Undefined, Object.`});for(let r of e){let{key:i,defaultValue:s,required:n,converter:o}=r;if(n===!0&&!S4(A,i))throw f.errors.exception({header:"Dictionary",message:`Missing required key "${i}".`});let d=A[i],l=S4(r,"defaultValue");if(l&&d!==null&&(d=d??s),n||l||d!==void 0){if(d=o(d),r.allowedValues&&!r.allowedValues.includes(d))throw f.errors.exception({header:"Dictionary",message:`${d} is not an accepted type. Expected one of ${r.allowedValues.join(", ")}.`});a[i]=d}}return a}};f.nullableConverter=function(e){return A=>A===null?A:e(A)};f.converters.DOMString=function(e,A={}){if(e===null&&A.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw new TypeError("Could not convert argument of type symbol to string.");return String(e)};f.converters.ByteString=function(e){let A=f.converters.DOMString(e);for(let t=0;t<A.length;t++){let a=A.charCodeAt(t);if(a>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${t} has a value of ${a} which is greater than 255.`)}return A};f.converters.USVString=rB;f.converters.boolean=function(e){return!!e};f.converters.any=function(e){return e};f.converters["long long"]=function(e){return f.util.ConvertToInt(e,64,"signed")};f.converters["unsigned long long"]=function(e){return f.util.ConvertToInt(e,64,"unsigned")};f.converters["unsigned long"]=function(e){return f.util.ConvertToInt(e,32,"unsigned")};f.converters["unsigned short"]=function(e,A){return f.util.ConvertToInt(e,16,"unsigned",A)};f.converters.ArrayBuffer=function(e,A={}){if(f.util.Type(e)!=="Object"||!WA.isAnyArrayBuffer(e))throw f.errors.conversionFailed({prefix:`${e}`,argument:`${e}`,types:["ArrayBuffer"]});if(A.allowShared===!1&&WA.isSharedArrayBuffer(e))throw f.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};f.converters.TypedArray=function(e,A,t={}){if(f.util.Type(e)!=="Object"||!WA.isTypedArray(e)||e.constructor.name!==A.name)throw f.errors.conversionFailed({prefix:`${A.name}`,argument:`${e}`,types:[A.name]});if(t.allowShared===!1&&WA.isSharedArrayBuffer(e.buffer))throw f.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};f.converters.DataView=function(e,A={}){if(f.util.Type(e)!=="Object"||!WA.isDataView(e))throw f.errors.exception({header:"DataView",message:"Object is not a DataView."});if(A.allowShared===!1&&WA.isSharedArrayBuffer(e.buffer))throw f.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};f.converters.BufferSource=function(e,A={}){if(WA.isAnyArrayBuffer(e))return f.converters.ArrayBuffer(e,A);if(WA.isTypedArray(e))return f.converters.TypedArray(e,e.constructor);if(WA.isDataView(e))return f.converters.DataView(e,A);throw new TypeError(`Could not convert ${e} to a BufferSource.`)};f.converters["sequence<ByteString>"]=f.sequenceConverter(f.converters.ByteString);f.converters["sequence<sequence<ByteString>>"]=f.sequenceConverter(f.converters["sequence<ByteString>"]);f.converters["record<ByteString, ByteString>"]=f.recordConverter(f.converters.ByteString,f.converters.ByteString);F4.exports={webidl:f}});var UA=E((jN,V4)=>{var Di=require("assert"),{atob:iB}=require("buffer"),{isomorphicDecode:sB}=IA(),nB=new TextEncoder,yi=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/,oB=/(\u000A|\u000D|\u0009|\u0020)/,dB=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function pB(e){Di(e.protocol==="data:");let A=U4(e,!0);A=A.slice(5);let t={position:0},a=x1(",",A,t),r=a.length;if(a=uB(a,!0,!0),t.position>=A.length)return"failure";t.position++;let i=A.slice(r+1),s=T4(i);if(/;(\u0020){0,}base64$/i.test(a)){let o=sB(s);if(s=gB(o),s==="failure")return"failure";a=a.slice(0,-6),a=a.replace(/(\u0020)+$/,""),a=a.slice(0,-1)}a.startsWith(";")&&(a="text/plain"+a);let n=Fo(a);return n==="failure"&&(n=Fo("text/plain;charset=US-ASCII")),{mimeType:n,body:s}}function U4(e,A=!1){let t=e.href;if(!A)return t;let a=t.lastIndexOf("#");return a===-1?t:t.slice(0,a)}function Ri(e,A,t){let a="";for(;t.position<A.length&&e(A[t.position]);)a+=A[t.position],t.position++;return a}function x1(e,A,t){let a=A.indexOf(e,t.position),r=t.position;return a===-1?(t.position=A.length,A.slice(r)):(t.position=a,A.slice(r,t.position))}function T4(e){let A=nB.encode(e);return lB(A)}function lB(e){let A=[];for(let t=0;t<e.length;t++){let a=e[t];if(a!==37)A.push(a);else if(a===37&&!/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(e[t+1],e[t+2])))A.push(37);else{let r=String.fromCharCode(e[t+1],e[t+2]),i=Number.parseInt(r,16);A.push(i),t+=2}}return Uint8Array.from(A)}function Fo(e){e=So(e,!0,!0);let A={position:0},t=x1("/",e,A);if(t.length===0||!yi.test(t)||A.position>e.length)return"failure";A.position++;let a=x1(";",e,A);if(a=So(a,!1,!0),a.length===0||!yi.test(a))return"failure";let r=t.toLowerCase(),i=a.toLowerCase(),s={type:r,subtype:i,parameters:new Map,essence:`${r}/${i}`};for(;A.position<e.length;){A.position++,Ri(d=>oB.test(d),e,A);let n=Ri(d=>d!==";"&&d!=="=",e,A);if(n=n.toLowerCase(),A.position<e.length){if(e[A.position]===";")continue;A.position++}if(A.position>e.length)break;let o=null;if(e[A.position]==='"')o=M4(e,A,!0),x1(";",e,A);else if(o=x1(";",e,A),o=So(o,!1,!0),o.length===0)continue;n.length!==0&&yi.test(n)&&(o.length===0||dB.test(o))&&!s.parameters.has(n)&&s.parameters.set(n,o)}return s}function gB(e){if(e=e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,""),e.length%4===0&&(e=e.replace(/=?=$/,"")),e.length%4===1||/[^+/0-9A-Za-z]/.test(e))return"failure";let A=iB(e),t=new Uint8Array(A.length);for(let a=0;a<A.length;a++)t[a]=A.charCodeAt(a);return t}function M4(e,A,t){let a=A.position,r="";for(Di(e[A.position]==='"'),A.position++;r+=Ri(s=>s!=='"'&&s!=="\\",e,A),!(A.position>=e.length);){let i=e[A.position];if(A.position++,i==="\\"){if(A.position>=e.length){r+="\\";break}r+=e[A.position],A.position++}else{Di(i==='"');break}}return t?r:e.slice(a,A.position)}function cB(e){Di(e!=="failure");let{parameters:A,essence:t}=e,a=t;for(let[r,i]of A.entries())a+=";",a+=r,a+="=",yi.test(i)||(i=i.replace(/(\\|")/g,"\\$1"),i='"'+i,i+='"'),a+=i;return a}function k4(e){return e==="\r"||e===` +`||e===" "||e===" "}function So(e,A=!0,t=!0){let a=0,r=e.length-1;if(A)for(;a<e.length&&k4(e[a]);a++);if(t)for(;r>0&&k4(e[r]);r--);return e.slice(a,r+1)}function L4(e){return e==="\r"||e===` +`||e===" "||e==="\f"||e===" "}function uB(e,A=!0,t=!0){let a=0,r=e.length-1;if(A)for(;a<e.length&&L4(e[a]);a++);if(t)for(;r>0&&L4(e[r]);r--);return e.slice(a,r+1)}V4.exports={dataURLProcessor:pB,URLSerializer:U4,collectASequenceOfCodePoints:Ri,collectASequenceOfCodePointsFast:x1,stringPercentDecode:T4,parseMIMEType:Fo,collectAnHTTPQuotedString:M4,serializeAMimeType:cB}});var vi=E((XN,_4)=>{"use strict";var{Blob:G4,File:Y4}=require("buffer"),{types:ko}=require("util"),{kState:rA}=lt(),{isBlobLike:x4}=IA(),{webidl:P}=xe(),{parseMIMEType:EB,serializeAMimeType:QB}=UA(),{kEnumerableProperty:J4}=q(),ja=class e extends G4{constructor(A,t,a={}){P.argumentLengthCheck(arguments,2,{header:"File constructor"}),A=P.converters["sequence<BlobPart>"](A),t=P.converters.USVString(t),a=P.converters.FilePropertyBag(a);let r=t,i=a.type,s;e:{if(i){if(i=EB(i),i==="failure"){i="";break e}i=QB(i).toLowerCase()}s=a.lastModified}super(mB(A,a),{type:i}),this[rA]={name:r,lastModified:s,type:i}}get name(){return P.brandCheck(this,e),this[rA].name}get lastModified(){return P.brandCheck(this,e),this[rA].lastModified}get type(){return P.brandCheck(this,e),this[rA].type}},Lo=class e{constructor(A,t,a={}){let r=t,i=a.type,s=a.lastModified??Date.now();this[rA]={blobLike:A,name:r,type:i,lastModified:s}}stream(...A){return P.brandCheck(this,e),this[rA].blobLike.stream(...A)}arrayBuffer(...A){return P.brandCheck(this,e),this[rA].blobLike.arrayBuffer(...A)}slice(...A){return P.brandCheck(this,e),this[rA].blobLike.slice(...A)}text(...A){return P.brandCheck(this,e),this[rA].blobLike.text(...A)}get size(){return P.brandCheck(this,e),this[rA].blobLike.size}get type(){return P.brandCheck(this,e),this[rA].blobLike.type}get name(){return P.brandCheck(this,e),this[rA].name}get lastModified(){return P.brandCheck(this,e),this[rA].lastModified}get[Symbol.toStringTag](){return"File"}};Object.defineProperties(ja.prototype,{[Symbol.toStringTag]:{value:"File",configurable:!0},name:J4,lastModified:J4});P.converters.Blob=P.interfaceConverter(G4);P.converters.BlobPart=function(e,A){if(P.util.Type(e)==="Object"){if(x4(e))return P.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||ko.isAnyArrayBuffer(e))return P.converters.BufferSource(e,A)}return P.converters.USVString(e,A)};P.converters["sequence<BlobPart>"]=P.sequenceConverter(P.converters.BlobPart);P.converters.FilePropertyBag=P.dictionaryConverter([{key:"lastModified",converter:P.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:P.converters.DOMString,defaultValue:""},{key:"endings",converter:e=>(e=P.converters.DOMString(e),e=e.toLowerCase(),e!=="native"&&(e="transparent"),e),defaultValue:"transparent"}]);function mB(e,A){let t=[];for(let a of e)if(typeof a=="string"){let r=a;A.endings==="native"&&(r=CB(r)),t.push(new TextEncoder().encode(r))}else ko.isAnyArrayBuffer(a)||ko.isTypedArray(a)?a.buffer?t.push(new Uint8Array(a.buffer,a.byteOffset,a.byteLength)):t.push(new Uint8Array(a)):x4(a)&&t.push(a);return t}function CB(e){let A=` `;return process.platform==="win32"&&(A=`\r -`),e.replace(/\r?\n/g,A)}function xB(e){return X4&&e instanceof X4||e instanceof er||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}eg.exports={File:er,FileLike:qo,isFileLike:xB}});var Mi=E((Yb,ig)=>{"use strict";var{isBlobLike:Ti,toUSVString:_B,makeIterator:Ho}=fA(),{kState:Ve}=Et(),{File:rg,FileLike:Ag,isFileLike:qB}=Ui(),{webidl:W}=Ge(),{Blob:HB,File:Oo}=require("buffer"),tg=Oo??rg,P1=class e{constructor(A){if(A!==void 0)throw W.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[Ve]=[]}append(A,t,a=void 0){if(W.brandCheck(this,e),W.argumentLengthCheck(arguments,2,{header:"FormData.append"}),arguments.length===3&&!Ti(t))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");A=W.converters.USVString(A),t=Ti(t)?W.converters.Blob(t,{strict:!1}):W.converters.USVString(t),a=arguments.length===3?W.converters.USVString(a):void 0;let r=ag(A,t,a);this[Ve].push(r)}delete(A){W.brandCheck(this,e),W.argumentLengthCheck(arguments,1,{header:"FormData.delete"}),A=W.converters.USVString(A),this[Ve]=this[Ve].filter(t=>t.name!==A)}get(A){W.brandCheck(this,e),W.argumentLengthCheck(arguments,1,{header:"FormData.get"}),A=W.converters.USVString(A);let t=this[Ve].findIndex(a=>a.name===A);return t===-1?null:this[Ve][t].value}getAll(A){return W.brandCheck(this,e),W.argumentLengthCheck(arguments,1,{header:"FormData.getAll"}),A=W.converters.USVString(A),this[Ve].filter(t=>t.name===A).map(t=>t.value)}has(A){return W.brandCheck(this,e),W.argumentLengthCheck(arguments,1,{header:"FormData.has"}),A=W.converters.USVString(A),this[Ve].findIndex(t=>t.name===A)!==-1}set(A,t,a=void 0){if(W.brandCheck(this,e),W.argumentLengthCheck(arguments,2,{header:"FormData.set"}),arguments.length===3&&!Ti(t))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");A=W.converters.USVString(A),t=Ti(t)?W.converters.Blob(t,{strict:!1}):W.converters.USVString(t),a=arguments.length===3?_B(a):void 0;let r=ag(A,t,a),i=this[Ve].findIndex(s=>s.name===A);i!==-1?this[Ve]=[...this[Ve].slice(0,i),r,...this[Ve].slice(i+1).filter(s=>s.name!==A)]:this[Ve].push(r)}entries(){return W.brandCheck(this,e),Ho(()=>this[Ve].map(A=>[A.name,A.value]),"FormData","key+value")}keys(){return W.brandCheck(this,e),Ho(()=>this[Ve].map(A=>[A.name,A.value]),"FormData","key")}values(){return W.brandCheck(this,e),Ho(()=>this[Ve].map(A=>[A.name,A.value]),"FormData","value")}forEach(A,t=globalThis){if(W.brandCheck(this,e),W.argumentLengthCheck(arguments,1,{header:"FormData.forEach"}),typeof A!="function")throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.");for(let[a,r]of this)A.apply(t,[r,a,this])}};P1.prototype[Symbol.iterator]=P1.prototype.entries;Object.defineProperties(P1.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function ag(e,A,t){if(e=Buffer.from(e).toString("utf8"),typeof A=="string")A=Buffer.from(A).toString("utf8");else if(qB(A)||(A=A instanceof HB?new tg([A],"blob",{type:A.type}):new Ag(A,"blob",{type:A.type})),t!==void 0){let a={type:A.type,lastModified:A.lastModified};A=Oo&&A instanceof Oo||A instanceof rg?new tg([A],t,a):new Ag(A,t,a)}return{name:e,value:A}}ig.exports={FormData:P1}});var Ar=E((Jb,ug)=>{"use strict";var OB=k4(),W1=q(),{ReadableStreamFrom:PB,isBlobLike:sg,isReadableStreamLike:WB,readableStreamClose:jB,createDeferredPromise:ZB,fullyReadBody:XB}=fA(),{FormData:ng}=Mi(),{kState:Ct}=Et(),{webidl:Po}=Ge(),{DOMException:pg,structuredClone:zB}=Mt(),{Blob:KB,File:$B}=require("buffer"),{kBodyUsed:eh}=re(),Wo=require("assert"),{isErrored:Ah}=q(),{isUint8Array:lg,isArrayBuffer:th}=require("util/types"),{File:ah}=Ui(),{parseMIMEType:rh,serializeAMimeType:ih}=MA(),Qt=globalThis.ReadableStream,og=$B??ah;function gg(e,A=!1){Qt||(Qt=require("stream/web").ReadableStream);let t=null;e instanceof Qt?t=e:sg(e)?t=e.stream():t=new Qt({async pull(o){o.enqueue(typeof r=="string"?new TextEncoder().encode(r):r),queueMicrotask(()=>jB(o))},start(){},type:void 0}),Wo(WB(t));let a=null,r=null,i=null,s=null;if(typeof e=="string")r=e,s="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)r=e.toString(),s="application/x-www-form-urlencoded;charset=UTF-8";else if(th(e))r=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))r=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(W1.isFormDataLike(e)){let o=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,d=`--${o}\r +`),e.replace(/\r?\n/g,A)}function BB(e){return Y4&&e instanceof Y4||e instanceof ja||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}_4.exports={File:ja,FileLike:Lo,isFileLike:BB}});var bi=E((zN,W4)=>{"use strict";var{isBlobLike:Ni,toUSVString:hB,makeIterator:Uo}=IA(),{kState:Ye}=lt(),{File:P4,FileLike:q4,isFileLike:IB}=vi(),{webidl:Z}=xe(),{Blob:fB,File:To}=require("buffer"),H4=To??P4,_1=class e{constructor(A){if(A!==void 0)throw Z.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[Ye]=[]}append(A,t,a=void 0){if(Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,2,{header:"FormData.append"}),arguments.length===3&&!Ni(t))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");A=Z.converters.USVString(A),t=Ni(t)?Z.converters.Blob(t,{strict:!1}):Z.converters.USVString(t),a=arguments.length===3?Z.converters.USVString(a):void 0;let r=O4(A,t,a);this[Ye].push(r)}delete(A){Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FormData.delete"}),A=Z.converters.USVString(A),this[Ye]=this[Ye].filter(t=>t.name!==A)}get(A){Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FormData.get"}),A=Z.converters.USVString(A);let t=this[Ye].findIndex(a=>a.name===A);return t===-1?null:this[Ye][t].value}getAll(A){return Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FormData.getAll"}),A=Z.converters.USVString(A),this[Ye].filter(t=>t.name===A).map(t=>t.value)}has(A){return Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FormData.has"}),A=Z.converters.USVString(A),this[Ye].findIndex(t=>t.name===A)!==-1}set(A,t,a=void 0){if(Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,2,{header:"FormData.set"}),arguments.length===3&&!Ni(t))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");A=Z.converters.USVString(A),t=Ni(t)?Z.converters.Blob(t,{strict:!1}):Z.converters.USVString(t),a=arguments.length===3?hB(a):void 0;let r=O4(A,t,a),i=this[Ye].findIndex(s=>s.name===A);i!==-1?this[Ye]=[...this[Ye].slice(0,i),r,...this[Ye].slice(i+1).filter(s=>s.name!==A)]:this[Ye].push(r)}entries(){return Z.brandCheck(this,e),Uo(()=>this[Ye].map(A=>[A.name,A.value]),"FormData","key+value")}keys(){return Z.brandCheck(this,e),Uo(()=>this[Ye].map(A=>[A.name,A.value]),"FormData","key")}values(){return Z.brandCheck(this,e),Uo(()=>this[Ye].map(A=>[A.name,A.value]),"FormData","value")}forEach(A,t=globalThis){if(Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FormData.forEach"}),typeof A!="function")throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.");for(let[a,r]of this)A.apply(t,[r,a,this])}};_1.prototype[Symbol.iterator]=_1.prototype.entries;Object.defineProperties(_1.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function O4(e,A,t){if(e=Buffer.from(e).toString("utf8"),typeof A=="string")A=Buffer.from(A).toString("utf8");else if(IB(A)||(A=A instanceof fB?new H4([A],"blob",{type:A.type}):new q4(A,"blob",{type:A.type})),t!==void 0){let a={type:A.type,lastModified:A.lastModified};A=To&&A instanceof To||A instanceof P4?new H4([A],t,a):new q4(A,t,a)}return{name:e,value:A}}W4.exports={FormData:_1}});var Xa=E((KN,tg)=>{"use strict";var wB=h4(),q1=q(),{ReadableStreamFrom:yB,isBlobLike:Z4,isReadableStreamLike:DB,readableStreamClose:RB,createDeferredPromise:vB,fullyReadBody:NB}=IA(),{FormData:j4}=bi(),{kState:ct}=lt(),{webidl:Mo}=xe(),{DOMException:K4,structuredClone:bB}=kt(),{Blob:SB,File:FB}=require("buffer"),{kBodyUsed:kB}=ie(),Vo=require("assert"),{isErrored:LB}=q(),{isUint8Array:$4,isArrayBuffer:UB}=require("util/types"),{File:TB}=vi(),{parseMIMEType:MB,serializeAMimeType:VB}=UA(),gt=globalThis.ReadableStream,X4=FB??TB;function eg(e,A=!1){gt||(gt=require("stream/web").ReadableStream);let t=null;e instanceof gt?t=e:Z4(e)?t=e.stream():t=new gt({async pull(o){o.enqueue(typeof r=="string"?new TextEncoder().encode(r):r),queueMicrotask(()=>RB(o))},start(){},type:void 0}),Vo(DB(t));let a=null,r=null,i=null,s=null;if(typeof e=="string")r=e,s="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)r=e.toString(),s="application/x-www-form-urlencoded;charset=UTF-8";else if(UB(e))r=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))r=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(q1.isFormDataLike(e)){let o=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,d=`--${o}\r Content-Disposition: form-data`;let l=C=>C.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),p=C=>C.replace(/\r?\n|\r/g,`\r -`),g=new TextEncoder,c=[],u=new Uint8Array([13,10]);i=0;let Q=!1;for(let[C,h]of e)if(typeof h=="string"){let B=g.encode(d+`; name="${l(p(C))}"\r +`),g=new TextEncoder,c=[],u=new Uint8Array([13,10]);i=0;let m=!1;for(let[C,B]of e)if(typeof B=="string"){let w=g.encode(d+`; name="${l(p(C))}"\r \r -${p(h)}\r -`);c.push(B),i+=B.byteLength}else{let B=g.encode(`${d}; name="${l(p(C))}"`+(h.name?`; filename="${l(h.name)}"`:"")+`\r -Content-Type: ${h.type||"application/octet-stream"}\r +${p(B)}\r +`);c.push(w),i+=w.byteLength}else{let w=g.encode(`${d}; name="${l(p(C))}"`+(B.name?`; filename="${l(B.name)}"`:"")+`\r +Content-Type: ${B.type||"application/octet-stream"}\r \r -`);c.push(B,h,u),typeof h.size=="number"?i+=B.byteLength+h.size+u.byteLength:Q=!0}let m=g.encode(`--${o}--`);c.push(m),i+=m.byteLength,Q&&(i=null),r=e,a=async function*(){for(let C of c)C.stream?yield*C.stream():yield C},s="multipart/form-data; boundary="+o}else if(sg(e))r=e,i=e.size,e.type&&(s=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(A)throw new TypeError("keepalive");if(W1.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");t=e instanceof Qt?e:PB(e)}if((typeof r=="string"||W1.isBuffer(r))&&(i=Buffer.byteLength(r)),a!=null){let o;t=new Qt({async start(){o=a(e)[Symbol.asyncIterator]()},async pull(d){let{value:l,done:p}=await o.next();return p?queueMicrotask(()=>{d.close()}):Ah(t)||d.enqueue(new Uint8Array(l)),d.desiredSize>0},async cancel(d){await o.return()},type:void 0})}return[{stream:t,source:r,length:i},s]}function sh(e,A=!1){return Qt||(Qt=require("stream/web").ReadableStream),e instanceof Qt&&(Wo(!W1.isDisturbed(e),"The body has already been consumed."),Wo(!e.locked,"The stream is locked.")),gg(e,A)}function nh(e){let[A,t]=e.stream.tee(),a=zB(t,{transfer:[t]}),[,r]=a.tee();return e.stream=A,{stream:r,length:e.length,source:e.source}}async function*dg(e){if(e)if(lg(e))yield e;else{let A=e.stream;if(W1.isDisturbed(A))throw new TypeError("The body has already been consumed.");if(A.locked)throw new TypeError("The stream is locked.");A[eh]=!0,yield*A}}function jo(e){if(e.aborted)throw new pg("The operation was aborted.","AbortError")}function oh(e){return{blob(){return Vi(this,t=>{let a=gh(this);return a==="failure"?a="":a&&(a=ih(a)),new KB([t],{type:a})},e)},arrayBuffer(){return Vi(this,t=>new Uint8Array(t).buffer,e)},text(){return Vi(this,cg,e)},json(){return Vi(this,lh,e)},async formData(){Po.brandCheck(this,e),jo(this[Ct]);let t=this.headers.get("Content-Type");if(/multipart\/form-data/.test(t)){let a={};for(let[n,o]of this.headers)a[n.toLowerCase()]=o;let r=new ng,i;try{i=OB({headers:a,defParamCharset:"utf8"})}catch(n){throw new pg(`${n}`,"AbortError")}i.on("field",(n,o)=>{r.append(n,o)}),i.on("file",(n,o,d)=>{let{filename:l,encoding:p,mimeType:g}=d,c=[];if(p==="base64"||p.toLowerCase()==="base64"){let u="";o.on("data",Q=>{u+=Q.toString().replace(/[\r\n]/gm,"");let m=u.length-u.length%4;c.push(Buffer.from(u.slice(0,m),"base64")),u=u.slice(m)}),o.on("end",()=>{c.push(Buffer.from(u,"base64")),r.append(n,new og(c,l,{type:g}))})}else o.on("data",u=>{c.push(u)}),o.on("end",()=>{r.append(n,new og(c,l,{type:g}))})});let s=new Promise((n,o)=>{i.on("finish",n),i.on("error",d=>o(new TypeError(d)))});if(this.body!==null)for await(let n of dg(this[Ct].body))i.write(n);return i.end(),await s,r}else if(/application\/x-www-form-urlencoded/.test(t)){let a;try{let i="",s=new TextDecoder("utf-8",{ignoreBOM:!0});for await(let n of dg(this[Ct].body)){if(!lg(n))throw new TypeError("Expected Uint8Array chunk");i+=s.decode(n,{stream:!0})}i+=s.decode(),a=new URLSearchParams(i)}catch(i){throw Object.assign(new TypeError,{cause:i})}let r=new ng;for(let[i,s]of a)r.append(i,s);return r}else throw await Promise.resolve(),jo(this[Ct]),Po.errors.exception({header:`${e.name}.formData`,message:"Could not parse content as FormData."})}}}function dh(e){Object.assign(e.prototype,oh(e))}async function Vi(e,A,t){if(Po.brandCheck(e,t),jo(e[Ct]),ph(e[Ct].body))throw new TypeError("Body is unusable");let a=ZB(),r=s=>a.reject(s),i=s=>{try{a.resolve(A(s))}catch(n){r(n)}};return e[Ct].body==null?(i(new Uint8Array),a.promise):(XB(e[Ct].body,i,r),a.promise)}function ph(e){return e!=null&&(e.stream.locked||W1.isDisturbed(e.stream))}function cg(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),new TextDecoder().decode(e))}function lh(e){return JSON.parse(cg(e))}function gh(e){let{headersList:A}=e[Ct],t=A.get("content-type");return t===null?"failure":rh(t)}ug.exports={extractBody:gg,safelyExtractBody:sh,cloneBody:nh,mixinBody:dh}});var mg=E((Gb,Cg)=>{"use strict";var{InvalidArgumentError:ie,NotSupportedError:ch}=$(),mt=require("assert"),iA=q(),Eg=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,Qg=/[^\t\x20-\x7e\x80-\xff]/,uh=/[^\u0021-\u00ff]/,Bt=Symbol("handler"),Qe={},Zo;try{let e=require("diagnostics_channel");Qe.create=e.channel("undici:request:create"),Qe.bodySent=e.channel("undici:request:bodySent"),Qe.headers=e.channel("undici:request:headers"),Qe.trailers=e.channel("undici:request:trailers"),Qe.error=e.channel("undici:request:error")}catch{Qe.create={hasSubscribers:!1},Qe.bodySent={hasSubscribers:!1},Qe.headers={hasSubscribers:!1},Qe.trailers={hasSubscribers:!1},Qe.error={hasSubscribers:!1}}var Ko=class{constructor(A,{path:t,method:a,body:r,headers:i,query:s,idempotent:n,blocking:o,upgrade:d,headersTimeout:l,bodyTimeout:p,reset:g,throwOnError:c},u){if(typeof t!="string")throw new ie("path must be a string");if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&a!=="CONNECT")throw new ie("path must be an absolute URL or start with a slash");if(uh.exec(t)!==null)throw new ie("invalid request path");if(typeof a!="string")throw new ie("method must be a string");if(Eg.exec(a)===null)throw new ie("invalid request method");if(d&&typeof d!="string")throw new ie("upgrade must be a string");if(l!=null&&(!Number.isFinite(l)||l<0))throw new ie("invalid headersTimeout");if(p!=null&&(!Number.isFinite(p)||p<0))throw new ie("invalid bodyTimeout");if(g!=null&&typeof g!="boolean")throw new ie("invalid reset");if(this.headersTimeout=l,this.bodyTimeout=p,this.throwOnError=c===!0,this.method=a,r==null)this.body=null;else if(iA.isStream(r))this.body=r;else if(iA.isBuffer(r))this.body=r.byteLength?r:null;else if(ArrayBuffer.isView(r))this.body=r.buffer.byteLength?Buffer.from(r.buffer,r.byteOffset,r.byteLength):null;else if(r instanceof ArrayBuffer)this.body=r.byteLength?Buffer.from(r):null;else if(typeof r=="string")this.body=r.length?Buffer.from(r):null;else if(iA.isFormDataLike(r)||iA.isIterable(r)||iA.isBlobLike(r))this.body=r;else throw new ie("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=d||null,this.path=s?iA.buildURL(t,s):t,this.origin=A,this.idempotent=n??(a==="HEAD"||a==="GET"),this.blocking=o??!1,this.reset=g??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers="",Array.isArray(i)){if(i.length%2!==0)throw new ie("headers array must be even");for(let Q=0;Q<i.length;Q+=2)zo(this,i[Q],i[Q+1])}else if(i&&typeof i=="object"){let Q=Object.keys(i);for(let m=0;m<Q.length;m++){let C=Q[m];zo(this,C,i[C])}}else if(i!=null)throw new ie("headers must be an object or an array");if(iA.isFormDataLike(this.body)){if(iA.nodeMajor<16||iA.nodeMajor===16&&iA.nodeMinor<8)throw new ie("Form-Data bodies are only supported in node v16.8 and newer.");Zo||(Zo=Ar().extractBody);let[Q,m]=Zo(r);this.contentType==null&&(this.contentType=m,this.headers+=`content-type: ${m}\r -`),this.body=Q.stream,this.contentLength=Q.length}else iA.isBlobLike(r)&&this.contentType==null&&r.type&&(this.contentType=r.type,this.headers+=`content-type: ${r.type}\r -`);iA.validateHandler(u,a,d),this.servername=iA.getServerName(this.host),this[Bt]=u,Qe.create.hasSubscribers&&Qe.create.publish({request:this})}onBodySent(A){if(this[Bt].onBodySent)try{this[Bt].onBodySent(A)}catch(t){this.onError(t)}}onRequestSent(){Qe.bodySent.hasSubscribers&&Qe.bodySent.publish({request:this})}onConnect(A){return mt(!this.aborted),mt(!this.completed),this[Bt].onConnect(A)}onHeaders(A,t,a,r){return mt(!this.aborted),mt(!this.completed),Qe.headers.hasSubscribers&&Qe.headers.publish({request:this,response:{statusCode:A,headers:t,statusText:r}}),this[Bt].onHeaders(A,t,a,r)}onData(A){return mt(!this.aborted),mt(!this.completed),this[Bt].onData(A)}onUpgrade(A,t,a){return mt(!this.aborted),mt(!this.completed),this[Bt].onUpgrade(A,t,a)}onComplete(A){return mt(!this.aborted),this.completed=!0,Qe.trailers.hasSubscribers&&Qe.trailers.publish({request:this,trailers:A}),this[Bt].onComplete(A)}onError(A){if(Qe.error.hasSubscribers&&Qe.error.publish({request:this,error:A}),!this.aborted)return this.aborted=!0,this[Bt].onError(A)}addHeader(A,t){return zo(this,A,t),this}};function Xo(e,A){if(A&&typeof A=="object")throw new ie(`invalid ${e} header`);if(A=A!=null?`${A}`:"",Qg.exec(A)!==null)throw new ie(`invalid ${e} header`);return`${e}: ${A}\r -`}function zo(e,A,t){if(t&&typeof t=="object"&&!Array.isArray(t))throw new ie(`invalid ${A} header`);if(t===void 0)return;if(e.host===null&&A.length===4&&A.toLowerCase()==="host"){if(Qg.exec(t)!==null)throw new ie(`invalid ${A} header`);e.host=t}else if(e.contentLength===null&&A.length===14&&A.toLowerCase()==="content-length"){if(e.contentLength=parseInt(t,10),!Number.isFinite(e.contentLength))throw new ie("invalid content-length header")}else if(e.contentType===null&&A.length===12&&A.toLowerCase()==="content-type")e.contentType=t,e.headers+=Xo(A,t);else{if(A.length===17&&A.toLowerCase()==="transfer-encoding")throw new ie("invalid transfer-encoding header");if(A.length===10&&A.toLowerCase()==="connection"){let a=typeof t=="string"?t.toLowerCase():null;if(a!=="close"&&a!=="keep-alive")throw new ie("invalid connection header");a==="close"&&(e.reset=!0)}else{if(A.length===10&&A.toLowerCase()==="keep-alive")throw new ie("invalid keep-alive header");if(A.length===7&&A.toLowerCase()==="upgrade")throw new ie("invalid upgrade header");if(A.length===6&&A.toLowerCase()==="expect")throw new ch("expect header not supported");if(Eg.exec(A)===null)throw new ie("invalid header key");if(Array.isArray(t))for(let a=0;a<t.length;a++)e.headers+=Xo(A,t[a]);else e.headers+=Xo(A,t)}}}Cg.exports=Ko});var Yi=E((xb,Bg)=>{"use strict";var Eh=require("events"),$o=class extends Eh{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}};Bg.exports=$o});var ar=E((qb,hg)=>{"use strict";var Qh=Yi(),{ClientDestroyedError:ed,ClientClosedError:Ch,InvalidArgumentError:j1}=$(),{kDestroy:mh,kClose:Bh,kDispatch:Ad,kInterceptors:r1}=re(),Z1=Symbol("destroyed"),tr=Symbol("closed"),ht=Symbol("onDestroyed"),X1=Symbol("onClosed"),Ji=Symbol("Intercepted Dispatch"),td=class extends Qh{constructor(){super(),this[Z1]=!1,this[ht]=null,this[tr]=!1,this[X1]=[]}get destroyed(){return this[Z1]}get closed(){return this[tr]}get interceptors(){return this[r1]}set interceptors(A){if(A){for(let t=A.length-1;t>=0;t--)if(typeof this[r1][t]!="function")throw new j1("interceptor must be an function")}this[r1]=A}close(A){if(A===void 0)return new Promise((a,r)=>{this.close((i,s)=>i?r(i):a(s))});if(typeof A!="function")throw new j1("invalid callback");if(this[Z1]){queueMicrotask(()=>A(new ed,null));return}if(this[tr]){this[X1]?this[X1].push(A):queueMicrotask(()=>A(null,null));return}this[tr]=!0,this[X1].push(A);let t=()=>{let a=this[X1];this[X1]=null;for(let r=0;r<a.length;r++)a[r](null,null)};this[Bh]().then(()=>this.destroy()).then(()=>{queueMicrotask(t)})}destroy(A,t){if(typeof A=="function"&&(t=A,A=null),t===void 0)return new Promise((r,i)=>{this.destroy(A,(s,n)=>s?i(s):r(n))});if(typeof t!="function")throw new j1("invalid callback");if(this[Z1]){this[ht]?this[ht].push(t):queueMicrotask(()=>t(null,null));return}A||(A=new ed),this[Z1]=!0,this[ht]=this[ht]||[],this[ht].push(t);let a=()=>{let r=this[ht];this[ht]=null;for(let i=0;i<r.length;i++)r[i](null,null)};this[mh](A).then(()=>{queueMicrotask(a)})}[Ji](A,t){if(!this[r1]||this[r1].length===0)return this[Ji]=this[Ad],this[Ad](A,t);let a=this[Ad].bind(this);for(let r=this[r1].length-1;r>=0;r--)a=this[r1][r](a);return this[Ji]=a,a(A,t)}dispatch(A,t){if(!t||typeof t!="object")throw new j1("handler must be an object");try{if(!A||typeof A!="object")throw new j1("opts must be an object.");if(this[Z1]||this[ht])throw new ed;if(this[tr])throw new Ch;return this[Ji](A,t)}catch(a){if(typeof t.onError!="function")throw new j1("invalid onError method");return t.onError(a),!1}}};hg.exports=td});var rr=E((Pb,wg)=>{"use strict";var hh=require("net"),Ig=require("assert"),fg=q(),{InvalidArgumentError:Ih,ConnectTimeoutError:fh}=$(),ad,rd;global.FinalizationRegistry?rd=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(t=>{if(this._sessionCache.size<this._maxCachedSessions)return;let a=this._sessionCache.get(t);a!==void 0&&a.deref()===void 0&&this._sessionCache.delete(t)})}get(A){let t=this._sessionCache.get(A);return t?t.deref():null}set(A,t){this._maxCachedSessions!==0&&(this._sessionCache.set(A,new WeakRef(t)),this._sessionRegistry.register(t,A))}}:rd=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map}get(A){return this._sessionCache.get(A)}set(A,t){if(this._maxCachedSessions!==0){if(this._sessionCache.size>=this._maxCachedSessions){let{value:a}=this._sessionCache.keys().next();this._sessionCache.delete(a)}this._sessionCache.set(A,t)}}};function wh({maxCachedSessions:e,socketPath:A,timeout:t,...a}){if(e!=null&&(!Number.isInteger(e)||e<0))throw new Ih("maxCachedSessions must be a positive integer or zero");let r={path:A,...a},i=new rd(e??100);return t=t??1e4,function({hostname:n,host:o,protocol:d,port:l,servername:p,localAddress:g,httpSocket:c},u){let Q;if(d==="https:"){ad||(ad=require("tls")),p=p||r.servername||fg.getServerName(o)||null;let C=p||n,h=i.get(C)||null;Ig(C),Q=ad.connect({highWaterMark:16384,...r,servername:p,session:h,localAddress:g,socket:c,port:l||443,host:n}),Q.on("session",function(B){i.set(C,B)})}else Ig(!c,"httpSocket can only be sent on TLS update"),Q=hh.connect({highWaterMark:64*1024,...r,localAddress:g,port:l||80,host:n});if(r.keepAlive==null||r.keepAlive){let C=r.keepAliveInitialDelay===void 0?6e4:r.keepAliveInitialDelay;Q.setKeepAlive(!0,C)}let m=yh(()=>Dh(Q),t);return Q.setNoDelay(!0).once(d==="https:"?"secureConnect":"connect",function(){if(m(),u){let C=u;u=null,C(null,this)}}).on("error",function(C){if(m(),u){let h=u;u=null,h(C)}}),Q}}function yh(e,A){if(!A)return()=>{};let t=null,a=null,r=setTimeout(()=>{t=setImmediate(()=>{process.platform==="win32"?a=setImmediate(()=>e()):e()})},A);return()=>{clearTimeout(r),clearImmediate(t),clearImmediate(a)}}function Dh(e){fg.destroy(e,new fh)}wg.exports=wh});var yg=E(Gi=>{"use strict";Object.defineProperty(Gi,"__esModule",{value:!0});Gi.enumToMap=void 0;function vh(e){let A={};return Object.keys(e).forEach(t=>{let a=e[t];typeof a=="number"&&(A[t]=a)}),A}Gi.enumToMap=vh});var Dg=E(f=>{"use strict";Object.defineProperty(f,"__esModule",{value:!0});f.SPECIAL_HEADERS=f.HEADER_STATE=f.MINOR=f.MAJOR=f.CONNECTION_TOKEN_CHARS=f.HEADER_CHARS=f.TOKEN=f.STRICT_TOKEN=f.HEX=f.URL_CHAR=f.STRICT_URL_CHAR=f.USERINFO_CHARS=f.MARK=f.ALPHANUM=f.NUM=f.HEX_MAP=f.NUM_MAP=f.ALPHA=f.FINISH=f.H_METHOD_MAP=f.METHOD_MAP=f.METHODS_RTSP=f.METHODS_ICE=f.METHODS_HTTP=f.METHODS=f.LENIENT_FLAGS=f.FLAGS=f.TYPE=f.ERROR=void 0;var Rh=yg(),Nh;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(Nh=f.ERROR||(f.ERROR={}));var bh;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(bh=f.TYPE||(f.TYPE={}));var Sh;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(Sh=f.FLAGS||(f.FLAGS={}));var Fh;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(Fh=f.LENIENT_FLAGS||(f.LENIENT_FLAGS={}));var R;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(R=f.METHODS||(f.METHODS={}));f.METHODS_HTTP=[R.DELETE,R.GET,R.HEAD,R.POST,R.PUT,R.CONNECT,R.OPTIONS,R.TRACE,R.COPY,R.LOCK,R.MKCOL,R.MOVE,R.PROPFIND,R.PROPPATCH,R.SEARCH,R.UNLOCK,R.BIND,R.REBIND,R.UNBIND,R.ACL,R.REPORT,R.MKACTIVITY,R.CHECKOUT,R.MERGE,R["M-SEARCH"],R.NOTIFY,R.SUBSCRIBE,R.UNSUBSCRIBE,R.PATCH,R.PURGE,R.MKCALENDAR,R.LINK,R.UNLINK,R.PRI,R.SOURCE];f.METHODS_ICE=[R.SOURCE];f.METHODS_RTSP=[R.OPTIONS,R.DESCRIBE,R.ANNOUNCE,R.SETUP,R.PLAY,R.PAUSE,R.TEARDOWN,R.GET_PARAMETER,R.SET_PARAMETER,R.REDIRECT,R.RECORD,R.FLUSH,R.GET,R.POST];f.METHOD_MAP=Rh.enumToMap(R);f.H_METHOD_MAP={};Object.keys(f.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(f.H_METHOD_MAP[e]=f.METHOD_MAP[e])});var kh;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(kh=f.FINISH||(f.FINISH={}));f.ALPHA=[];for(let e=65;e<=90;e++)f.ALPHA.push(String.fromCharCode(e)),f.ALPHA.push(String.fromCharCode(e+32));f.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};f.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};f.NUM=["0","1","2","3","4","5","6","7","8","9"];f.ALPHANUM=f.ALPHA.concat(f.NUM);f.MARK=["-","_",".","!","~","*","'","(",")"];f.USERINFO_CHARS=f.ALPHANUM.concat(f.MARK).concat(["%",";",":","&","=","+","$",","]);f.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(f.ALPHANUM);f.URL_CHAR=f.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)f.URL_CHAR.push(e);f.HEX=f.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);f.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(f.ALPHANUM);f.TOKEN=f.STRICT_TOKEN.concat([" "]);f.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&f.HEADER_CHARS.push(e);f.CONNECTION_TOKEN_CHARS=f.HEADER_CHARS.filter(e=>e!==44);f.MAJOR=f.NUM_MAP;f.MINOR=f.MAJOR;var z1;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(z1=f.HEADER_STATE||(f.HEADER_STATE={}));f.SPECIAL_HEADERS={connection:z1.CONNECTION,"content-length":z1.CONTENT_LENGTH,"proxy-connection":z1.CONNECTION,"transfer-encoding":z1.TRANSFER_ENCODING,upgrade:z1.UPGRADE}});var nd=E((Zb,Ng)=>{"use strict";var K1=q(),{kBodyUsed:ir}=re(),sd=require("assert"),{InvalidArgumentError:Lh}=$(),Uh=require("events"),Th=[300,301,302,303,307,308],vg=Symbol("body"),xi=class{constructor(A){this[vg]=A,this[ir]=!1}async*[Symbol.asyncIterator](){sd(!this[ir],"disturbed"),this[ir]=!0,yield*this[vg]}},id=class{constructor(A,t,a,r){if(t!=null&&(!Number.isInteger(t)||t<0))throw new Lh("maxRedirections must be a positive number");K1.validateHandler(r,a.method,a.upgrade),this.dispatch=A,this.location=null,this.abort=null,this.opts={...a,maxRedirections:0},this.maxRedirections=t,this.handler=r,this.history=[],K1.isStream(this.opts.body)?(K1.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){sd(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[ir]=!1,Uh.prototype.on.call(this.opts.body,"data",function(){this[ir]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new xi(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&K1.isIterable(this.opts.body)&&(this.opts.body=new xi(this.opts.body))}onConnect(A){this.abort=A,this.handler.onConnect(A,{history:this.history})}onUpgrade(A,t,a){this.handler.onUpgrade(A,t,a)}onError(A){this.handler.onError(A)}onHeaders(A,t,a,r){if(this.location=this.history.length>=this.maxRedirections||K1.isDisturbed(this.opts.body)?null:Mh(A,t),this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(A,t,a,r);let{origin:i,pathname:s,search:n}=K1.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),o=n?`${s}${n}`:s;this.opts.headers=Vh(this.opts.headers,A===303,this.opts.origin!==i),this.opts.path=o,this.opts.origin=i,this.opts.maxRedirections=0,this.opts.query=null,A===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(A){if(!this.location)return this.handler.onData(A)}onComplete(A){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(A)}onBodySent(A){this.handler.onBodySent&&this.handler.onBodySent(A)}};function Mh(e,A){if(Th.indexOf(e)===-1)return null;for(let t=0;t<A.length;t+=2)if(A[t].toString().toLowerCase()==="location")return A[t+1]}function Rg(e,A,t){return e.length===4&&e.toString().toLowerCase()==="host"||A&&e.toString().toLowerCase().indexOf("content-")===0||t&&e.length===13&&e.toString().toLowerCase()==="authorization"||t&&e.length===6&&e.toString().toLowerCase()==="cookie"}function Vh(e,A,t){let a=[];if(Array.isArray(e))for(let r=0;r<e.length;r+=2)Rg(e[r],A,t)||a.push(e[r],e[r+1]);else if(e&&typeof e=="object")for(let r of Object.keys(e))Rg(r,A,t)||a.push(r,e[r]);else sd(e==null,"headers must be an object or an array");return a}Ng.exports=id});var _i=E((Xb,bg)=>{"use strict";var Yh=nd();function Jh({maxRedirections:e}){return A=>function(a,r){let{maxRedirections:i=e}=a;if(!i)return A(a,r);let s=new Yh(A,i,a,r);return a={...a,maxRedirections:0},A(a,s)}}bg.exports=Jh});var od=E((zb,Sg)=>{Sg.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="});var kg=E((Kb,Fg)=>{Fg.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="});var lr=E(($b,zg)=>{"use strict";var D=require("assert"),Tg=require("net"),L=q(),dd=d4(),Gh=mg(),xh=ar(),{RequestContentLengthMismatchError:i1,ResponseContentLengthMismatchError:_h,InvalidArgumentError:he,RequestAbortedError:Mg,HeadersTimeoutError:qh,HeadersOverflowError:Hh,SocketError:Wi,InformationalError:s1,BodyTimeoutError:Oh,HTTPParserError:Ph,ResponseExceededMaxSizeError:Wh,ClientDestroyedError:jh}=$(),Zh=rr(),{kUrl:wA,kReset:xe,kServerName:Vt,kClient:Xi,kBusy:ld,kParser:Ae,kConnect:Xh,kBlocking:ea,kResuming:n1,kRunning:ue,kPending:Aa,kSize:o1,kWriting:It,kQueue:pe,kConnected:zh,kConnecting:$1,kNeedDrain:Jt,kNoRef:sr,kKeepAliveDefaultTimeout:gd,kHostHeader:Vg,kPendingIdx:yA,kRunningIdx:ce,kError:nA,kPipelining:Gt,kSocket:sA,kKeepAliveTimeoutValue:dr,kMaxHeadersSize:Oi,kKeepAliveMaxTimeout:Yg,kKeepAliveTimeoutThreshold:Jg,kHeadersTimeout:Gg,kBodyTimeout:xg,kStrictContentLength:ji,kConnector:nr,kMaxRedirections:Kh,kMaxRequests:pr,kCounter:qg,kClose:$h,kDestroy:eI,kDispatch:AI,kInterceptors:tI,kLocalAddress:or,kMaxResponseSize:Hg}=re(),qi=Buffer[Symbol.species],Yt=Symbol("kClosedResolve"),Ye={};try{let e=require("diagnostics_channel");Ye.sendHeaders=e.channel("undici:client:sendHeaders"),Ye.beforeConnect=e.channel("undici:client:beforeConnect"),Ye.connectError=e.channel("undici:client:connectError"),Ye.connected=e.channel("undici:client:connected")}catch{Ye.sendHeaders={hasSubscribers:!1},Ye.beforeConnect={hasSubscribers:!1},Ye.connectError={hasSubscribers:!1},Ye.connected={hasSubscribers:!1}}var cd=class extends xh{constructor(A,{interceptors:t,maxHeaderSize:a,headersTimeout:r,socketTimeout:i,requestTimeout:s,connectTimeout:n,bodyTimeout:o,idleTimeout:d,keepAlive:l,keepAliveTimeout:p,maxKeepAliveTimeout:g,keepAliveMaxTimeout:c,keepAliveTimeoutThreshold:u,socketPath:Q,pipelining:m,tls:C,strictContentLength:h,maxCachedSessions:B,maxRedirections:I,connect:w,maxRequestsPerClient:v,localAddress:S,maxResponseSize:x,autoSelectFamily:we,autoSelectFamilyAttemptTimeout:me}={}){if(super(),l!==void 0)throw new he("unsupported keepAlive, use pipelining=0 instead");if(i!==void 0)throw new he("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(s!==void 0)throw new he("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(d!==void 0)throw new he("unsupported idleTimeout, use keepAliveTimeout instead");if(g!==void 0)throw new he("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(a!=null&&!Number.isFinite(a))throw new he("invalid maxHeaderSize");if(Q!=null&&typeof Q!="string")throw new he("invalid socketPath");if(n!=null&&(!Number.isFinite(n)||n<0))throw new he("invalid connectTimeout");if(p!=null&&(!Number.isFinite(p)||p<=0))throw new he("invalid keepAliveTimeout");if(c!=null&&(!Number.isFinite(c)||c<=0))throw new he("invalid keepAliveMaxTimeout");if(u!=null&&!Number.isFinite(u))throw new he("invalid keepAliveTimeoutThreshold");if(r!=null&&(!Number.isInteger(r)||r<0))throw new he("headersTimeout must be a positive integer or zero");if(o!=null&&(!Number.isInteger(o)||o<0))throw new he("bodyTimeout must be a positive integer or zero");if(w!=null&&typeof w!="function"&&typeof w!="object")throw new he("connect must be a function or an object");if(I!=null&&(!Number.isInteger(I)||I<0))throw new he("maxRedirections must be a positive number");if(v!=null&&(!Number.isInteger(v)||v<0))throw new he("maxRequestsPerClient must be a positive number");if(S!=null&&(typeof S!="string"||Tg.isIP(S)===0))throw new he("localAddress must be valid string IP address");if(x!=null&&(!Number.isInteger(x)||x<-1))throw new he("maxResponseSize must be a positive number");if(me!=null&&(!Number.isInteger(me)||me<-1))throw new he("autoSelectFamilyAttemptTimeout must be a positive number");typeof w!="function"&&(w=Zh({...C,maxCachedSessions:B,socketPath:Q,timeout:n,...L.nodeHasAutoSelectFamily&&we?{autoSelectFamily:we,autoSelectFamilyAttemptTimeout:me}:void 0,...w})),this[tI]=t&&t.Client&&Array.isArray(t.Client)?t.Client:[aI({maxRedirections:I})],this[wA]=L.parseOrigin(A),this[nr]=w,this[sA]=null,this[Gt]=m??1,this[Oi]=a||16384,this[gd]=p??4e3,this[Yg]=c??6e5,this[Jg]=u??1e3,this[dr]=this[gd],this[Vt]=null,this[or]=S??null,this[n1]=0,this[Jt]=0,this[Vg]=`host: ${this[wA].hostname}${this[wA].port?`:${this[wA].port}`:""}\r -`,this[xg]=o??3e5,this[Gg]=r??3e5,this[ji]=h??!0,this[Kh]=I,this[pr]=v,this[Yt]=null,this[Hg]=x>-1?x:-1,this[pe]=[],this[ce]=0,this[yA]=0}get pipelining(){return this[Gt]}set pipelining(A){this[Gt]=A,DA(this,!0)}get[Aa](){return this[pe].length-this[yA]}get[ue](){return this[yA]-this[ce]}get[o1](){return this[pe].length-this[ce]}get[zh](){return!!this[sA]&&!this[$1]&&!this[sA].destroyed}get[ld](){let A=this[sA];return A&&(A[xe]||A[It]||A[ea])||this[o1]>=(this[Gt]||1)||this[Aa]>0}[Xh](A){Xg(this),this.once("connect",A)}[AI](A,t){let a=A.origin||this[wA].origin,r=new Gh(a,A,t);return this[pe].push(r),this[n1]||(L.bodyLength(r.body)==null&&L.isIterable(r.body)?(this[n1]=1,process.nextTick(DA,this)):DA(this,!0)),this[n1]&&this[Jt]!==2&&this[ld]&&(this[Jt]=2),this[Jt]<2}async[$h](){return new Promise(A=>{this[o1]?this[Yt]=A:A(null)})}async[eI](A){return new Promise(t=>{let a=this[pe].splice(this[yA]);for(let i=0;i<a.length;i++){let s=a[i];et(this,s,A)}let r=()=>{this[Yt]&&(this[Yt](),this[Yt]=null),t()};this[sA]?L.destroy(this[sA].on("close",r),A):queueMicrotask(r),DA(this)})}},zA=Dg(),aI=_i(),rI=Buffer.alloc(0);async function iI(){let e=process.env.JEST_WORKER_ID?od():void 0,A;try{A=await WebAssembly.compile(Buffer.from(kg(),"base64"))}catch{A=await WebAssembly.compile(Buffer.from(e||od(),"base64"))}return await WebAssembly.instantiate(A,{env:{wasm_on_url:(t,a,r)=>0,wasm_on_status:(t,a,r)=>{D.strictEqual(Ie.ptr,t);let i=a-$A+KA.byteOffset;return Ie.onStatus(new qi(KA.buffer,i,r))||0},wasm_on_message_begin:t=>(D.strictEqual(Ie.ptr,t),Ie.onMessageBegin()||0),wasm_on_header_field:(t,a,r)=>{D.strictEqual(Ie.ptr,t);let i=a-$A+KA.byteOffset;return Ie.onHeaderField(new qi(KA.buffer,i,r))||0},wasm_on_header_value:(t,a,r)=>{D.strictEqual(Ie.ptr,t);let i=a-$A+KA.byteOffset;return Ie.onHeaderValue(new qi(KA.buffer,i,r))||0},wasm_on_headers_complete:(t,a,r,i)=>(D.strictEqual(Ie.ptr,t),Ie.onHeadersComplete(a,!!r,!!i)||0),wasm_on_body:(t,a,r)=>{D.strictEqual(Ie.ptr,t);let i=a-$A+KA.byteOffset;return Ie.onBody(new qi(KA.buffer,i,r))||0},wasm_on_message_complete:t=>(D.strictEqual(Ie.ptr,t),Ie.onMessageComplete()||0)}})}var pd=null,ud=iI();ud.catch();var Ie=null,KA=null,Hi=0,$A=null,ta=1,Pi=2,Ed=3,Qd=class{constructor(A,t,{exports:a}){D(Number.isFinite(A[Oi])&&A[Oi]>0),this.llhttp=a,this.ptr=this.llhttp.llhttp_alloc(zA.TYPE.RESPONSE),this.client=A,this.socket=t,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=A[Oi],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=A[Hg]}setTimeout(A,t){this.timeoutType=t,A!==this.timeoutValue?(dd.clearTimeout(this.timeout),A?(this.timeout=dd.setTimeout(sI,A,this),this.timeout.unref&&this.timeout.unref()):this.timeout=null,this.timeoutValue=A):this.timeout&&this.timeout.refresh&&this.timeout.refresh()}resume(){this.socket.destroyed||!this.paused||(D(this.ptr!=null),D(Ie==null),this.llhttp.llhttp_resume(this.ptr),D(this.timeoutType===Pi),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||rI),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let A=this.socket.read();if(A===null)break;this.execute(A)}}execute(A){D(this.ptr!=null),D(Ie==null),D(!this.paused);let{socket:t,llhttp:a}=this;A.length>Hi&&($A&&a.free($A),Hi=Math.ceil(A.length/4096)*4096,$A=a.malloc(Hi)),new Uint8Array(a.memory.buffer,$A,Hi).set(A);try{let r;try{KA=A,Ie=this,r=a.llhttp_execute(this.ptr,$A,A.length)}catch(s){throw s}finally{Ie=null,KA=null}let i=a.llhttp_get_error_pos(this.ptr)-$A;if(r===zA.ERROR.PAUSED_UPGRADE)this.onUpgrade(A.slice(i));else if(r===zA.ERROR.PAUSED)this.paused=!0,t.unshift(A.slice(i));else if(r!==zA.ERROR.OK){let s=a.llhttp_get_error_reason(this.ptr),n="";if(s){let o=new Uint8Array(a.memory.buffer,s).indexOf(0);n="Response does not match the HTTP/1.1 protocol ("+Buffer.from(a.memory.buffer,s,o).toString()+")"}throw new Ph(n,zA.ERROR[r],A.slice(i))}}catch(r){L.destroy(t,r)}}destroy(){D(this.ptr!=null),D(Ie==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,dd.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(A){this.statusText=A.toString()}onMessageBegin(){let{socket:A,client:t}=this;if(A.destroyed||!t[pe][t[ce]])return-1}onHeaderField(A){let t=this.headers.length;(t&1)===0?this.headers.push(A):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]),this.trackHeader(A.length)}onHeaderValue(A){let t=this.headers.length;(t&1)===1?(this.headers.push(A),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]);let a=this.headers[t-2];a.length===10&&a.toString().toLowerCase()==="keep-alive"?this.keepAlive+=A.toString():a.length===10&&a.toString().toLowerCase()==="connection"?this.connection+=A.toString():a.length===14&&a.toString().toLowerCase()==="content-length"&&(this.contentLength+=A.toString()),this.trackHeader(A.length)}trackHeader(A){this.headersSize+=A,this.headersSize>=this.headersMaxSize&&L.destroy(this.socket,new Hh)}onUpgrade(A){let{upgrade:t,client:a,socket:r,headers:i,statusCode:s}=this;D(t);let n=a[pe][a[ce]];D(n),D(!r.destroyed),D(r===a[sA]),D(!this.paused),D(n.upgrade||n.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,D(this.headers.length%2===0),this.headers=[],this.headersSize=0,r.unshift(A),r[Ae].destroy(),r[Ae]=null,r[Xi]=null,r[nA]=null,r.removeListener("error",Pg).removeListener("readable",Og).removeListener("end",jg).removeListener("close",Zg),a[sA]=null,a[pe][a[ce]++]=null,a.emit("disconnect",a[wA],[a],new s1("upgrade"));try{n.onUpgrade(s,i,r)}catch(o){L.destroy(r,o)}DA(a)}onHeadersComplete(A,t,a){let{client:r,socket:i,headers:s,statusText:n}=this;if(i.destroyed)return-1;let o=r[pe][r[ce]];if(!o)return-1;if(D(!this.upgrade),D(this.statusCode<200),A===100)return L.destroy(i,new Wi("bad response",L.getSocketInfo(i))),-1;if(t&&!o.upgrade)return L.destroy(i,new Wi("bad upgrade",L.getSocketInfo(i))),-1;if(D.strictEqual(this.timeoutType,ta),this.statusCode=A,this.shouldKeepAlive=a||o.method==="HEAD"&&!i[xe]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let l=o.bodyTimeout!=null?o.bodyTimeout:r[xg];this.setTimeout(l,Pi)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(o.method==="CONNECT")return D(r[ue]===1),this.upgrade=!0,2;if(t)return D(r[ue]===1),this.upgrade=!0,2;if(D(this.headers.length%2===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&r[Gt]){let l=this.keepAlive?L.parseKeepAliveTimeout(this.keepAlive):null;if(l!=null){let p=Math.min(l-r[Jg],r[Yg]);p<=0?i[xe]=!0:r[dr]=p}else r[dr]=r[gd]}else i[xe]=!0;let d;try{d=o.onHeaders(A,s,this.resume,n)===!1}catch(l){return L.destroy(i,l),-1}return o.method==="HEAD"||A<200?1:(i[ea]&&(i[ea]=!1,DA(r)),d?zA.ERROR.PAUSED:0)}onBody(A){let{client:t,socket:a,statusCode:r,maxResponseSize:i}=this;if(a.destroyed)return-1;let s=t[pe][t[ce]];if(D(s),D.strictEqual(this.timeoutType,Pi),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),D(r>=200),i>-1&&this.bytesRead+A.length>i)return L.destroy(a,new Wh),-1;this.bytesRead+=A.length;try{if(s.onData(A)===!1)return zA.ERROR.PAUSED}catch(n){return L.destroy(a,n),-1}}onMessageComplete(){let{client:A,socket:t,statusCode:a,upgrade:r,headers:i,contentLength:s,bytesRead:n,shouldKeepAlive:o}=this;if(t.destroyed&&(!a||o))return-1;if(r)return;let d=A[pe][A[ce]];if(D(d),D(a>=100),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",D(this.headers.length%2===0),this.headers=[],this.headersSize=0,!(a<200)){if(d.method!=="HEAD"&&s&&n!==parseInt(s,10))return L.destroy(t,new _h),-1;try{d.onComplete(i)}catch(l){et(A,d,l)}if(A[pe][A[ce]++]=null,t[It])return D.strictEqual(A[ue],0),L.destroy(t,new s1("reset")),zA.ERROR.PAUSED;if(o){if(t[xe]&&A[ue]===0)return L.destroy(t,new s1("reset")),zA.ERROR.PAUSED;A[Gt]===1?setImmediate(DA,A):DA(A)}else return L.destroy(t,new s1("reset")),zA.ERROR.PAUSED}}};function sI(e){let{socket:A,timeoutType:t,client:a}=e;t===ta?(!A[It]||A.writableNeedDrain||a[ue]>1)&&(D(!e.paused,"cannot be paused while waiting for headers"),L.destroy(A,new qh)):t===Pi?e.paused||L.destroy(A,new Oh):t===Ed&&(D(a[ue]===0&&a[dr]),L.destroy(A,new s1("socket idle timeout")))}function Og(){let{[Ae]:e}=this;e.readMore()}function Pg(e){let{[Ae]:A}=this;if(D(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),e.code==="ECONNRESET"&&A.statusCode&&!A.shouldKeepAlive){A.onMessageComplete();return}this[nA]=e,Wg(this[Xi],e)}function Wg(e,A){if(e[ue]===0&&A.code!=="UND_ERR_INFO"&&A.code!=="UND_ERR_SOCKET"){D(e[yA]===e[ce]);let t=e[pe].splice(e[ce]);for(let a=0;a<t.length;a++){let r=t[a];et(e,r,A)}D(e[o1]===0)}}function jg(){let{[Ae]:e}=this;if(e.statusCode&&!e.shouldKeepAlive){e.onMessageComplete();return}L.destroy(this,new Wi("other side closed",L.getSocketInfo(this)))}function Zg(){let{[Xi]:e}=this;!this[nA]&&this[Ae].statusCode&&!this[Ae].shouldKeepAlive&&this[Ae].onMessageComplete(),this[Ae].destroy(),this[Ae]=null;let A=this[nA]||new Wi("closed",L.getSocketInfo(this));if(e[sA]=null,e.destroyed){D(e[Aa]===0);let t=e[pe].splice(e[ce]);for(let a=0;a<t.length;a++){let r=t[a];et(e,r,A)}}else if(e[ue]>0&&A.code!=="UND_ERR_INFO"){let t=e[pe][e[ce]];e[pe][e[ce]++]=null,et(e,t,A)}e[yA]=e[ce],D(e[ue]===0),e.emit("disconnect",e[wA],[e],A),DA(e)}async function Xg(e){D(!e[$1]),D(!e[sA]);let{host:A,hostname:t,protocol:a,port:r}=e[wA];if(t[0]==="["){let i=t.indexOf("]");D(i!==-1);let s=t.substr(1,i-1);D(Tg.isIP(s)),t=s}e[$1]=!0,Ye.beforeConnect.hasSubscribers&&Ye.beforeConnect.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[Vt],localAddress:e[or]},connector:e[nr]});try{let i=await new Promise((s,n)=>{e[nr]({host:A,hostname:t,protocol:a,port:r,servername:e[Vt],localAddress:e[or]},(o,d)=>{o?n(o):s(d)})});if(e.destroyed){L.destroy(i.on("error",()=>{}),new jh);return}pd||(pd=await ud,ud=null),e[$1]=!1,D(i),i[sr]=!1,i[It]=!1,i[xe]=!1,i[ea]=!1,i[nA]=null,i[Ae]=new Qd(e,i,pd),i[Xi]=e,i[qg]=0,i[pr]=e[pr],i.on("error",Pg).on("readable",Og).on("end",jg).on("close",Zg),e[sA]=i,Ye.connected.hasSubscribers&&Ye.connected.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[Vt],localAddress:e[or]},connector:e[nr],socket:i}),e.emit("connect",e[wA],[e])}catch(i){if(e.destroyed)return;if(e[$1]=!1,Ye.connectError.hasSubscribers&&Ye.connectError.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[Vt],localAddress:e[or]},connector:e[nr],error:i}),i.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(D(e[ue]===0);e[Aa]>0&&e[pe][e[yA]].servername===e[Vt];){let s=e[pe][e[yA]++];et(e,s,i)}else Wg(e,i);e.emit("connectionError",e[wA],[e],i)}DA(e)}function Lg(e){e[Jt]=0,e.emit("drain",e[wA],[e])}function DA(e,A){e[n1]!==2&&(e[n1]=2,nI(e,A),e[n1]=0,e[ce]>256&&(e[pe].splice(0,e[ce]),e[yA]-=e[ce],e[ce]=0))}function nI(e,A){for(;;){if(e.destroyed){D(e[Aa]===0);return}if(e[Yt]&&!e[o1]){e[Yt](),e[Yt]=null;return}let t=e[sA];if(t&&!t.destroyed){if(e[o1]===0?!t[sr]&&t.unref&&(t.unref(),t[sr]=!0):t[sr]&&t.ref&&(t.ref(),t[sr]=!1),e[o1]===0)t[Ae].timeoutType!==Ed&&t[Ae].setTimeout(e[dr],Ed);else if(e[ue]>0&&t[Ae].statusCode<200&&t[Ae].timeoutType!==ta){let r=e[pe][e[ce]],i=r.headersTimeout!=null?r.headersTimeout:e[Gg];t[Ae].setTimeout(i,ta)}}if(e[ld])e[Jt]=2;else if(e[Jt]===2){A?(e[Jt]=1,process.nextTick(Lg,e)):Lg(e);continue}if(e[Aa]===0||e[ue]>=(e[Gt]||1))return;let a=e[pe][e[yA]];if(e[wA].protocol==="https:"&&e[Vt]!==a.servername){if(e[ue]>0)return;if(e[Vt]=a.servername,t&&t.servername!==a.servername){L.destroy(t,new s1("servername changed"));return}}if(e[$1])return;if(!t){Xg(e);return}if(t.destroyed||t[It]||t[xe]||t[ea]||e[ue]>0&&!a.idempotent||e[ue]>0&&(a.upgrade||a.method==="CONNECT")||(L.isStream(a.body)&&L.bodyLength(a.body)===0&&(a.body.on("data",function(){D(!1)}).on("error",function(r){et(e,a,r)}).on("end",function(){L.destroy(this)}),a.body=null),e[ue]>0&&(L.isStream(a.body)||L.isAsyncIterable(a.body))))return;!a.aborted&&oI(e,a)?e[yA]++:e[pe].splice(e[yA],1)}}function oI(e,A){let{body:t,method:a,path:r,host:i,upgrade:s,headers:n,blocking:o,reset:d}=A,l=a==="PUT"||a==="POST"||a==="PATCH";t&&typeof t.read=="function"&&t.read(0);let p=L.bodyLength(t);if(p===null&&(p=A.contentLength),p===0&&!l&&(p=null),A.contentLength!==null&&A.contentLength!==p){if(e[ji])return et(e,A,new i1),!1;process.emitWarning(new i1)}let g=e[sA];try{A.onConnect(u=>{A.aborted||A.completed||(et(e,A,u||new Mg),L.destroy(g,new s1("aborted")))})}catch(u){et(e,A,u)}if(A.aborted)return!1;a==="HEAD"&&(g[xe]=!0),(s||a==="CONNECT")&&(g[xe]=!0),d!=null&&(g[xe]=d),e[pr]&&g[qg]++>=e[pr]&&(g[xe]=!0),o&&(g[ea]=!0);let c=`${a} ${r} HTTP/1.1\r +`);c.push(w,B,u),typeof B.size=="number"?i+=w.byteLength+B.size+u.byteLength:m=!0}let Q=g.encode(`--${o}--`);c.push(Q),i+=Q.byteLength,m&&(i=null),r=e,a=async function*(){for(let C of c)C.stream?yield*C.stream():yield C},s="multipart/form-data; boundary="+o}else if(Z4(e))r=e,i=e.size,e.type&&(s=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(A)throw new TypeError("keepalive");if(q1.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");t=e instanceof gt?e:yB(e)}if((typeof r=="string"||q1.isBuffer(r))&&(i=Buffer.byteLength(r)),a!=null){let o;t=new gt({async start(){o=a(e)[Symbol.asyncIterator]()},async pull(d){let{value:l,done:p}=await o.next();return p?queueMicrotask(()=>{d.close()}):LB(t)||d.enqueue(new Uint8Array(l)),d.desiredSize>0},async cancel(d){await o.return()},type:void 0})}return[{stream:t,source:r,length:i},s]}function YB(e,A=!1){return gt||(gt=require("stream/web").ReadableStream),e instanceof gt&&(Vo(!q1.isDisturbed(e),"The body has already been consumed."),Vo(!e.locked,"The stream is locked.")),eg(e,A)}function JB(e){let[A,t]=e.stream.tee(),a=bB(t,{transfer:[t]}),[,r]=a.tee();return e.stream=A,{stream:r,length:e.length,source:e.source}}async function*z4(e){if(e)if($4(e))yield e;else{let A=e.stream;if(q1.isDisturbed(A))throw new TypeError("The body has already been consumed.");if(A.locked)throw new TypeError("The stream is locked.");A[kB]=!0,yield*A}}function Yo(e){if(e.aborted)throw new K4("The operation was aborted.","AbortError")}function GB(e){return{blob(){return Si(this,t=>{let a=HB(this);return a==="failure"?a="":a&&(a=VB(a)),new SB([t],{type:a})},e)},arrayBuffer(){return Si(this,t=>new Uint8Array(t).buffer,e)},text(){return Si(this,Ag,e)},json(){return Si(this,qB,e)},async formData(){Mo.brandCheck(this,e),Yo(this[ct]);let t=this.headers.get("Content-Type");if(/multipart\/form-data/.test(t)){let a={};for(let[n,o]of this.headers)a[n.toLowerCase()]=o;let r=new j4,i;try{i=wB({headers:a,defParamCharset:"utf8"})}catch(n){throw new K4(`${n}`,"AbortError")}i.on("field",(n,o)=>{r.append(n,o)}),i.on("file",(n,o,d)=>{let{filename:l,encoding:p,mimeType:g}=d,c=[];if(p==="base64"||p.toLowerCase()==="base64"){let u="";o.on("data",m=>{u+=m.toString().replace(/[\r\n]/gm,"");let Q=u.length-u.length%4;c.push(Buffer.from(u.slice(0,Q),"base64")),u=u.slice(Q)}),o.on("end",()=>{c.push(Buffer.from(u,"base64")),r.append(n,new X4(c,l,{type:g}))})}else o.on("data",u=>{c.push(u)}),o.on("end",()=>{r.append(n,new X4(c,l,{type:g}))})});let s=new Promise((n,o)=>{i.on("finish",n),i.on("error",d=>o(new TypeError(d)))});if(this.body!==null)for await(let n of z4(this[ct].body))i.write(n);return i.end(),await s,r}else if(/application\/x-www-form-urlencoded/.test(t)){let a;try{let i="",s=new TextDecoder("utf-8",{ignoreBOM:!0});for await(let n of z4(this[ct].body)){if(!$4(n))throw new TypeError("Expected Uint8Array chunk");i+=s.decode(n,{stream:!0})}i+=s.decode(),a=new URLSearchParams(i)}catch(i){throw Object.assign(new TypeError,{cause:i})}let r=new j4;for(let[i,s]of a)r.append(i,s);return r}else throw await Promise.resolve(),Yo(this[ct]),Mo.errors.exception({header:`${e.name}.formData`,message:"Could not parse content as FormData."})}}}function xB(e){Object.assign(e.prototype,GB(e))}async function Si(e,A,t){if(Mo.brandCheck(e,t),Yo(e[ct]),_B(e[ct].body))throw new TypeError("Body is unusable");let a=vB(),r=s=>a.reject(s),i=s=>{try{a.resolve(A(s))}catch(n){r(n)}};return e[ct].body==null?(i(new Uint8Array),a.promise):(NB(e[ct].body,i,r),a.promise)}function _B(e){return e!=null&&(e.stream.locked||q1.isDisturbed(e.stream))}function Ag(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),new TextDecoder().decode(e))}function qB(e){return JSON.parse(Ag(e))}function HB(e){let{headersList:A}=e[ct],t=A.get("content-type");return t===null?"failure":MB(t)}tg.exports={extractBody:eg,safelyExtractBody:YB,cloneBody:JB,mixinBody:xB}});var sg=E(($N,ig)=>{"use strict";var{InvalidArgumentError:se,NotSupportedError:OB}=$(),ut=require("assert"),iA=q(),ag=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,rg=/[^\t\x20-\x7e\x80-\xff]/,PB=/[^\u0021-\u00ff]/,Et=Symbol("handler"),me={},Jo;try{let e=require("diagnostics_channel");me.create=e.channel("undici:request:create"),me.bodySent=e.channel("undici:request:bodySent"),me.headers=e.channel("undici:request:headers"),me.trailers=e.channel("undici:request:trailers"),me.error=e.channel("undici:request:error")}catch{me.create={hasSubscribers:!1},me.bodySent={hasSubscribers:!1},me.headers={hasSubscribers:!1},me.trailers={hasSubscribers:!1},me.error={hasSubscribers:!1}}var _o=class{constructor(A,{path:t,method:a,body:r,headers:i,query:s,idempotent:n,blocking:o,upgrade:d,headersTimeout:l,bodyTimeout:p,reset:g,throwOnError:c},u){if(typeof t!="string")throw new se("path must be a string");if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&a!=="CONNECT")throw new se("path must be an absolute URL or start with a slash");if(PB.exec(t)!==null)throw new se("invalid request path");if(typeof a!="string")throw new se("method must be a string");if(ag.exec(a)===null)throw new se("invalid request method");if(d&&typeof d!="string")throw new se("upgrade must be a string");if(l!=null&&(!Number.isFinite(l)||l<0))throw new se("invalid headersTimeout");if(p!=null&&(!Number.isFinite(p)||p<0))throw new se("invalid bodyTimeout");if(g!=null&&typeof g!="boolean")throw new se("invalid reset");if(this.headersTimeout=l,this.bodyTimeout=p,this.throwOnError=c===!0,this.method=a,r==null)this.body=null;else if(iA.isStream(r))this.body=r;else if(iA.isBuffer(r))this.body=r.byteLength?r:null;else if(ArrayBuffer.isView(r))this.body=r.buffer.byteLength?Buffer.from(r.buffer,r.byteOffset,r.byteLength):null;else if(r instanceof ArrayBuffer)this.body=r.byteLength?Buffer.from(r):null;else if(typeof r=="string")this.body=r.length?Buffer.from(r):null;else if(iA.isFormDataLike(r)||iA.isIterable(r)||iA.isBlobLike(r))this.body=r;else throw new se("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=d||null,this.path=s?iA.buildURL(t,s):t,this.origin=A,this.idempotent=n??(a==="HEAD"||a==="GET"),this.blocking=o??!1,this.reset=g??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers="",Array.isArray(i)){if(i.length%2!==0)throw new se("headers array must be even");for(let m=0;m<i.length;m+=2)xo(this,i[m],i[m+1])}else if(i&&typeof i=="object"){let m=Object.keys(i);for(let Q=0;Q<m.length;Q++){let C=m[Q];xo(this,C,i[C])}}else if(i!=null)throw new se("headers must be an object or an array");if(iA.isFormDataLike(this.body)){if(iA.nodeMajor<16||iA.nodeMajor===16&&iA.nodeMinor<8)throw new se("Form-Data bodies are only supported in node v16.8 and newer.");Jo||(Jo=Xa().extractBody);let[m,Q]=Jo(r);this.contentType==null&&(this.contentType=Q,this.headers+=`content-type: ${Q}\r +`),this.body=m.stream,this.contentLength=m.length}else iA.isBlobLike(r)&&this.contentType==null&&r.type&&(this.contentType=r.type,this.headers+=`content-type: ${r.type}\r +`);iA.validateHandler(u,a,d),this.servername=iA.getServerName(this.host),this[Et]=u,me.create.hasSubscribers&&me.create.publish({request:this})}onBodySent(A){if(this[Et].onBodySent)try{this[Et].onBodySent(A)}catch(t){this.onError(t)}}onRequestSent(){me.bodySent.hasSubscribers&&me.bodySent.publish({request:this})}onConnect(A){return ut(!this.aborted),ut(!this.completed),this[Et].onConnect(A)}onHeaders(A,t,a,r){return ut(!this.aborted),ut(!this.completed),me.headers.hasSubscribers&&me.headers.publish({request:this,response:{statusCode:A,headers:t,statusText:r}}),this[Et].onHeaders(A,t,a,r)}onData(A){return ut(!this.aborted),ut(!this.completed),this[Et].onData(A)}onUpgrade(A,t,a){return ut(!this.aborted),ut(!this.completed),this[Et].onUpgrade(A,t,a)}onComplete(A){return ut(!this.aborted),this.completed=!0,me.trailers.hasSubscribers&&me.trailers.publish({request:this,trailers:A}),this[Et].onComplete(A)}onError(A){if(me.error.hasSubscribers&&me.error.publish({request:this,error:A}),!this.aborted)return this.aborted=!0,this[Et].onError(A)}addHeader(A,t){return xo(this,A,t),this}};function Go(e,A){if(A&&typeof A=="object")throw new se(`invalid ${e} header`);if(A=A!=null?`${A}`:"",rg.exec(A)!==null)throw new se(`invalid ${e} header`);return`${e}: ${A}\r +`}function xo(e,A,t){if(t&&typeof t=="object"&&!Array.isArray(t))throw new se(`invalid ${A} header`);if(t===void 0)return;if(e.host===null&&A.length===4&&A.toLowerCase()==="host"){if(rg.exec(t)!==null)throw new se(`invalid ${A} header`);e.host=t}else if(e.contentLength===null&&A.length===14&&A.toLowerCase()==="content-length"){if(e.contentLength=parseInt(t,10),!Number.isFinite(e.contentLength))throw new se("invalid content-length header")}else if(e.contentType===null&&A.length===12&&A.toLowerCase()==="content-type")e.contentType=t,e.headers+=Go(A,t);else{if(A.length===17&&A.toLowerCase()==="transfer-encoding")throw new se("invalid transfer-encoding header");if(A.length===10&&A.toLowerCase()==="connection"){let a=typeof t=="string"?t.toLowerCase():null;if(a!=="close"&&a!=="keep-alive")throw new se("invalid connection header");a==="close"&&(e.reset=!0)}else{if(A.length===10&&A.toLowerCase()==="keep-alive")throw new se("invalid keep-alive header");if(A.length===7&&A.toLowerCase()==="upgrade")throw new se("invalid upgrade header");if(A.length===6&&A.toLowerCase()==="expect")throw new OB("expect header not supported");if(ag.exec(A)===null)throw new se("invalid header key");if(Array.isArray(t))for(let a=0;a<t.length;a++)e.headers+=Go(A,t[a]);else e.headers+=Go(A,t)}}}ig.exports=_o});var Fi=E((eb,ng)=>{"use strict";var WB=require("events"),qo=class extends WB{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}};ng.exports=qo});var Ka=E((Ab,og)=>{"use strict";var ZB=Fi(),{ClientDestroyedError:Ho,ClientClosedError:jB,InvalidArgumentError:H1}=$(),{kDestroy:XB,kClose:zB,kDispatch:Oo,kInterceptors:$t}=ie(),O1=Symbol("destroyed"),za=Symbol("closed"),Qt=Symbol("onDestroyed"),P1=Symbol("onClosed"),ki=Symbol("Intercepted Dispatch"),Po=class extends ZB{constructor(){super(),this[O1]=!1,this[Qt]=null,this[za]=!1,this[P1]=[]}get destroyed(){return this[O1]}get closed(){return this[za]}get interceptors(){return this[$t]}set interceptors(A){if(A){for(let t=A.length-1;t>=0;t--)if(typeof this[$t][t]!="function")throw new H1("interceptor must be an function")}this[$t]=A}close(A){if(A===void 0)return new Promise((a,r)=>{this.close((i,s)=>i?r(i):a(s))});if(typeof A!="function")throw new H1("invalid callback");if(this[O1]){queueMicrotask(()=>A(new Ho,null));return}if(this[za]){this[P1]?this[P1].push(A):queueMicrotask(()=>A(null,null));return}this[za]=!0,this[P1].push(A);let t=()=>{let a=this[P1];this[P1]=null;for(let r=0;r<a.length;r++)a[r](null,null)};this[zB]().then(()=>this.destroy()).then(()=>{queueMicrotask(t)})}destroy(A,t){if(typeof A=="function"&&(t=A,A=null),t===void 0)return new Promise((r,i)=>{this.destroy(A,(s,n)=>s?i(s):r(n))});if(typeof t!="function")throw new H1("invalid callback");if(this[O1]){this[Qt]?this[Qt].push(t):queueMicrotask(()=>t(null,null));return}A||(A=new Ho),this[O1]=!0,this[Qt]=this[Qt]||[],this[Qt].push(t);let a=()=>{let r=this[Qt];this[Qt]=null;for(let i=0;i<r.length;i++)r[i](null,null)};this[XB](A).then(()=>{queueMicrotask(a)})}[ki](A,t){if(!this[$t]||this[$t].length===0)return this[ki]=this[Oo],this[Oo](A,t);let a=this[Oo].bind(this);for(let r=this[$t].length-1;r>=0;r--)a=this[$t][r](a);return this[ki]=a,a(A,t)}dispatch(A,t){if(!t||typeof t!="object")throw new H1("handler must be an object");try{if(!A||typeof A!="object")throw new H1("opts must be an object.");if(this[O1]||this[Qt])throw new Ho;if(this[za])throw new jB;return this[ki](A,t)}catch(a){if(typeof t.onError!="function")throw new H1("invalid onError method");return t.onError(a),!1}}};og.exports=Po});var $a=E((rb,lg)=>{"use strict";var KB=require("net"),dg=require("assert"),pg=q(),{InvalidArgumentError:$B,ConnectTimeoutError:eh}=$(),Wo,Zo;global.FinalizationRegistry?Zo=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(t=>{if(this._sessionCache.size<this._maxCachedSessions)return;let a=this._sessionCache.get(t);a!==void 0&&a.deref()===void 0&&this._sessionCache.delete(t)})}get(A){let t=this._sessionCache.get(A);return t?t.deref():null}set(A,t){this._maxCachedSessions!==0&&(this._sessionCache.set(A,new WeakRef(t)),this._sessionRegistry.register(t,A))}}:Zo=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map}get(A){return this._sessionCache.get(A)}set(A,t){if(this._maxCachedSessions!==0){if(this._sessionCache.size>=this._maxCachedSessions){let{value:a}=this._sessionCache.keys().next();this._sessionCache.delete(a)}this._sessionCache.set(A,t)}}};function Ah({maxCachedSessions:e,socketPath:A,timeout:t,...a}){if(e!=null&&(!Number.isInteger(e)||e<0))throw new $B("maxCachedSessions must be a positive integer or zero");let r={path:A,...a},i=new Zo(e??100);return t=t??1e4,function({hostname:n,host:o,protocol:d,port:l,servername:p,localAddress:g,httpSocket:c},u){let m;if(d==="https:"){Wo||(Wo=require("tls")),p=p||r.servername||pg.getServerName(o)||null;let C=p||n,B=i.get(C)||null;dg(C),m=Wo.connect({highWaterMark:16384,...r,servername:p,session:B,localAddress:g,socket:c,port:l||443,host:n}),m.on("session",function(w){i.set(C,w)})}else dg(!c,"httpSocket can only be sent on TLS update"),m=KB.connect({highWaterMark:64*1024,...r,localAddress:g,port:l||80,host:n});if(r.keepAlive==null||r.keepAlive){let C=r.keepAliveInitialDelay===void 0?6e4:r.keepAliveInitialDelay;m.setKeepAlive(!0,C)}let Q=th(()=>ah(m),t);return m.setNoDelay(!0).once(d==="https:"?"secureConnect":"connect",function(){if(Q(),u){let C=u;u=null,C(null,this)}}).on("error",function(C){if(Q(),u){let B=u;u=null,B(C)}}),m}}function th(e,A){if(!A)return()=>{};let t=null,a=null,r=setTimeout(()=>{t=setImmediate(()=>{process.platform==="win32"?a=setImmediate(()=>e()):e()})},A);return()=>{clearTimeout(r),clearImmediate(t),clearImmediate(a)}}function ah(e){pg.destroy(e,new eh)}lg.exports=Ah});var gg=E(Li=>{"use strict";Object.defineProperty(Li,"__esModule",{value:!0});Li.enumToMap=void 0;function rh(e){let A={};return Object.keys(e).forEach(t=>{let a=e[t];typeof a=="number"&&(A[t]=a)}),A}Li.enumToMap=rh});var cg=E(h=>{"use strict";Object.defineProperty(h,"__esModule",{value:!0});h.SPECIAL_HEADERS=h.HEADER_STATE=h.MINOR=h.MAJOR=h.CONNECTION_TOKEN_CHARS=h.HEADER_CHARS=h.TOKEN=h.STRICT_TOKEN=h.HEX=h.URL_CHAR=h.STRICT_URL_CHAR=h.USERINFO_CHARS=h.MARK=h.ALPHANUM=h.NUM=h.HEX_MAP=h.NUM_MAP=h.ALPHA=h.FINISH=h.H_METHOD_MAP=h.METHOD_MAP=h.METHODS_RTSP=h.METHODS_ICE=h.METHODS_HTTP=h.METHODS=h.LENIENT_FLAGS=h.FLAGS=h.TYPE=h.ERROR=void 0;var ih=gg(),sh;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(sh=h.ERROR||(h.ERROR={}));var nh;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(nh=h.TYPE||(h.TYPE={}));var oh;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(oh=h.FLAGS||(h.FLAGS={}));var dh;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(dh=h.LENIENT_FLAGS||(h.LENIENT_FLAGS={}));var R;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(R=h.METHODS||(h.METHODS={}));h.METHODS_HTTP=[R.DELETE,R.GET,R.HEAD,R.POST,R.PUT,R.CONNECT,R.OPTIONS,R.TRACE,R.COPY,R.LOCK,R.MKCOL,R.MOVE,R.PROPFIND,R.PROPPATCH,R.SEARCH,R.UNLOCK,R.BIND,R.REBIND,R.UNBIND,R.ACL,R.REPORT,R.MKACTIVITY,R.CHECKOUT,R.MERGE,R["M-SEARCH"],R.NOTIFY,R.SUBSCRIBE,R.UNSUBSCRIBE,R.PATCH,R.PURGE,R.MKCALENDAR,R.LINK,R.UNLINK,R.PRI,R.SOURCE];h.METHODS_ICE=[R.SOURCE];h.METHODS_RTSP=[R.OPTIONS,R.DESCRIBE,R.ANNOUNCE,R.SETUP,R.PLAY,R.PAUSE,R.TEARDOWN,R.GET_PARAMETER,R.SET_PARAMETER,R.REDIRECT,R.RECORD,R.FLUSH,R.GET,R.POST];h.METHOD_MAP=ih.enumToMap(R);h.H_METHOD_MAP={};Object.keys(h.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(h.H_METHOD_MAP[e]=h.METHOD_MAP[e])});var ph;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(ph=h.FINISH||(h.FINISH={}));h.ALPHA=[];for(let e=65;e<=90;e++)h.ALPHA.push(String.fromCharCode(e)),h.ALPHA.push(String.fromCharCode(e+32));h.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};h.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};h.NUM=["0","1","2","3","4","5","6","7","8","9"];h.ALPHANUM=h.ALPHA.concat(h.NUM);h.MARK=["-","_",".","!","~","*","'","(",")"];h.USERINFO_CHARS=h.ALPHANUM.concat(h.MARK).concat(["%",";",":","&","=","+","$",","]);h.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(h.ALPHANUM);h.URL_CHAR=h.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)h.URL_CHAR.push(e);h.HEX=h.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);h.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(h.ALPHANUM);h.TOKEN=h.STRICT_TOKEN.concat([" "]);h.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&h.HEADER_CHARS.push(e);h.CONNECTION_TOKEN_CHARS=h.HEADER_CHARS.filter(e=>e!==44);h.MAJOR=h.NUM_MAP;h.MINOR=h.MAJOR;var W1;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(W1=h.HEADER_STATE||(h.HEADER_STATE={}));h.SPECIAL_HEADERS={connection:W1.CONNECTION,"content-length":W1.CONTENT_LENGTH,"proxy-connection":W1.CONNECTION,"transfer-encoding":W1.TRANSFER_ENCODING,upgrade:W1.UPGRADE}});var zo=E((nb,Qg)=>{"use strict";var Z1=q(),{kBodyUsed:er}=ie(),Xo=require("assert"),{InvalidArgumentError:lh}=$(),gh=require("events"),ch=[300,301,302,303,307,308],ug=Symbol("body"),Ui=class{constructor(A){this[ug]=A,this[er]=!1}async*[Symbol.asyncIterator](){Xo(!this[er],"disturbed"),this[er]=!0,yield*this[ug]}},jo=class{constructor(A,t,a,r){if(t!=null&&(!Number.isInteger(t)||t<0))throw new lh("maxRedirections must be a positive number");Z1.validateHandler(r,a.method,a.upgrade),this.dispatch=A,this.location=null,this.abort=null,this.opts={...a,maxRedirections:0},this.maxRedirections=t,this.handler=r,this.history=[],Z1.isStream(this.opts.body)?(Z1.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){Xo(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[er]=!1,gh.prototype.on.call(this.opts.body,"data",function(){this[er]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new Ui(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&Z1.isIterable(this.opts.body)&&(this.opts.body=new Ui(this.opts.body))}onConnect(A){this.abort=A,this.handler.onConnect(A,{history:this.history})}onUpgrade(A,t,a){this.handler.onUpgrade(A,t,a)}onError(A){this.handler.onError(A)}onHeaders(A,t,a,r){if(this.location=this.history.length>=this.maxRedirections||Z1.isDisturbed(this.opts.body)?null:uh(A,t),this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(A,t,a,r);let{origin:i,pathname:s,search:n}=Z1.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),o=n?`${s}${n}`:s;this.opts.headers=Eh(this.opts.headers,A===303,this.opts.origin!==i),this.opts.path=o,this.opts.origin=i,this.opts.maxRedirections=0,this.opts.query=null,A===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(A){if(!this.location)return this.handler.onData(A)}onComplete(A){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(A)}onBodySent(A){this.handler.onBodySent&&this.handler.onBodySent(A)}};function uh(e,A){if(ch.indexOf(e)===-1)return null;for(let t=0;t<A.length;t+=2)if(A[t].toString().toLowerCase()==="location")return A[t+1]}function Eg(e,A,t){return e.length===4&&e.toString().toLowerCase()==="host"||A&&e.toString().toLowerCase().indexOf("content-")===0||t&&e.length===13&&e.toString().toLowerCase()==="authorization"||t&&e.length===6&&e.toString().toLowerCase()==="cookie"}function Eh(e,A,t){let a=[];if(Array.isArray(e))for(let r=0;r<e.length;r+=2)Eg(e[r],A,t)||a.push(e[r],e[r+1]);else if(e&&typeof e=="object")for(let r of Object.keys(e))Eg(r,A,t)||a.push(r,e[r]);else Xo(e==null,"headers must be an object or an array");return a}Qg.exports=jo});var Ti=E((ob,mg)=>{"use strict";var Qh=zo();function mh({maxRedirections:e}){return A=>function(a,r){let{maxRedirections:i=e}=a;if(!i)return A(a,r);let s=new Qh(A,i,a,r);return a={...a,maxRedirections:0},A(a,s)}}mg.exports=mh});var Ko=E((db,Cg)=>{Cg.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="});var hg=E((pb,Bg)=>{Bg.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="});var sr=E((lb,Yg)=>{"use strict";var D=require("assert"),wg=require("net"),L=q(),$o=zl(),Ch=sg(),Bh=Ka(),{RequestContentLengthMismatchError:e1,ResponseContentLengthMismatchError:hh,InvalidArgumentError:Ie,RequestAbortedError:yg,HeadersTimeoutError:Ih,HeadersOverflowError:fh,SocketError:Gi,InformationalError:A1,BodyTimeoutError:wh,HTTPParserError:yh,ResponseExceededMaxSizeError:Dh,ClientDestroyedError:Rh}=$(),vh=$a(),{kUrl:fA,kReset:qe,kServerName:Lt,kClient:qi,kBusy:Ad,kParser:te,kConnect:Nh,kBlocking:X1,kResuming:t1,kRunning:ue,kPending:z1,kSize:a1,kWriting:mt,kQueue:pe,kConnected:bh,kConnecting:j1,kNeedDrain:Tt,kNoRef:Ar,kKeepAliveDefaultTimeout:td,kHostHeader:Dg,kPendingIdx:wA,kRunningIdx:ce,kError:nA,kPipelining:Mt,kSocket:sA,kKeepAliveTimeoutValue:rr,kMaxHeadersSize:Yi,kKeepAliveMaxTimeout:Rg,kKeepAliveTimeoutThreshold:vg,kHeadersTimeout:Ng,kBodyTimeout:bg,kStrictContentLength:xi,kConnector:tr,kMaxRedirections:Sh,kMaxRequests:ir,kCounter:Sg,kClose:Fh,kDestroy:kh,kDispatch:Lh,kInterceptors:Uh,kLocalAddress:ar,kMaxResponseSize:Fg}=ie(),Mi=Buffer[Symbol.species],Ut=Symbol("kClosedResolve"),Je={};try{let e=require("diagnostics_channel");Je.sendHeaders=e.channel("undici:client:sendHeaders"),Je.beforeConnect=e.channel("undici:client:beforeConnect"),Je.connectError=e.channel("undici:client:connectError"),Je.connected=e.channel("undici:client:connected")}catch{Je.sendHeaders={hasSubscribers:!1},Je.beforeConnect={hasSubscribers:!1},Je.connectError={hasSubscribers:!1},Je.connected={hasSubscribers:!1}}var ad=class extends Bh{constructor(A,{interceptors:t,maxHeaderSize:a,headersTimeout:r,socketTimeout:i,requestTimeout:s,connectTimeout:n,bodyTimeout:o,idleTimeout:d,keepAlive:l,keepAliveTimeout:p,maxKeepAliveTimeout:g,keepAliveMaxTimeout:c,keepAliveTimeoutThreshold:u,socketPath:m,pipelining:Q,tls:C,strictContentLength:B,maxCachedSessions:w,maxRedirections:I,connect:y,maxRequestsPerClient:b,localAddress:k,maxResponseSize:x,autoSelectFamily:ye,autoSelectFamilyAttemptTimeout:Be}={}){if(super(),l!==void 0)throw new Ie("unsupported keepAlive, use pipelining=0 instead");if(i!==void 0)throw new Ie("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(s!==void 0)throw new Ie("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(d!==void 0)throw new Ie("unsupported idleTimeout, use keepAliveTimeout instead");if(g!==void 0)throw new Ie("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(a!=null&&!Number.isFinite(a))throw new Ie("invalid maxHeaderSize");if(m!=null&&typeof m!="string")throw new Ie("invalid socketPath");if(n!=null&&(!Number.isFinite(n)||n<0))throw new Ie("invalid connectTimeout");if(p!=null&&(!Number.isFinite(p)||p<=0))throw new Ie("invalid keepAliveTimeout");if(c!=null&&(!Number.isFinite(c)||c<=0))throw new Ie("invalid keepAliveMaxTimeout");if(u!=null&&!Number.isFinite(u))throw new Ie("invalid keepAliveTimeoutThreshold");if(r!=null&&(!Number.isInteger(r)||r<0))throw new Ie("headersTimeout must be a positive integer or zero");if(o!=null&&(!Number.isInteger(o)||o<0))throw new Ie("bodyTimeout must be a positive integer or zero");if(y!=null&&typeof y!="function"&&typeof y!="object")throw new Ie("connect must be a function or an object");if(I!=null&&(!Number.isInteger(I)||I<0))throw new Ie("maxRedirections must be a positive number");if(b!=null&&(!Number.isInteger(b)||b<0))throw new Ie("maxRequestsPerClient must be a positive number");if(k!=null&&(typeof k!="string"||wg.isIP(k)===0))throw new Ie("localAddress must be valid string IP address");if(x!=null&&(!Number.isInteger(x)||x<-1))throw new Ie("maxResponseSize must be a positive number");if(Be!=null&&(!Number.isInteger(Be)||Be<-1))throw new Ie("autoSelectFamilyAttemptTimeout must be a positive number");typeof y!="function"&&(y=vh({...C,maxCachedSessions:w,socketPath:m,timeout:n,...L.nodeHasAutoSelectFamily&&ye?{autoSelectFamily:ye,autoSelectFamilyAttemptTimeout:Be}:void 0,...y})),this[Uh]=t&&t.Client&&Array.isArray(t.Client)?t.Client:[Th({maxRedirections:I})],this[fA]=L.parseOrigin(A),this[tr]=y,this[sA]=null,this[Mt]=Q??1,this[Yi]=a||16384,this[td]=p??4e3,this[Rg]=c??6e5,this[vg]=u??1e3,this[rr]=this[td],this[Lt]=null,this[ar]=k??null,this[t1]=0,this[Tt]=0,this[Dg]=`host: ${this[fA].hostname}${this[fA].port?`:${this[fA].port}`:""}\r +`,this[bg]=o??3e5,this[Ng]=r??3e5,this[xi]=B??!0,this[Sh]=I,this[ir]=b,this[Ut]=null,this[Fg]=x>-1?x:-1,this[pe]=[],this[ce]=0,this[wA]=0}get pipelining(){return this[Mt]}set pipelining(A){this[Mt]=A,yA(this,!0)}get[z1](){return this[pe].length-this[wA]}get[ue](){return this[wA]-this[ce]}get[a1](){return this[pe].length-this[ce]}get[bh](){return!!this[sA]&&!this[j1]&&!this[sA].destroyed}get[Ad](){let A=this[sA];return A&&(A[qe]||A[mt]||A[X1])||this[a1]>=(this[Mt]||1)||this[z1]>0}[Nh](A){Vg(this),this.once("connect",A)}[Lh](A,t){let a=A.origin||this[fA].origin,r=new Ch(a,A,t);return this[pe].push(r),this[t1]||(L.bodyLength(r.body)==null&&L.isIterable(r.body)?(this[t1]=1,process.nextTick(yA,this)):yA(this,!0)),this[t1]&&this[Tt]!==2&&this[Ad]&&(this[Tt]=2),this[Tt]<2}async[Fh](){return new Promise(A=>{this[a1]?this[Ut]=A:A(null)})}async[kh](A){return new Promise(t=>{let a=this[pe].splice(this[wA]);for(let i=0;i<a.length;i++){let s=a[i];zA(this,s,A)}let r=()=>{this[Ut]&&(this[Ut](),this[Ut]=null),t()};this[sA]?L.destroy(this[sA].on("close",r),A):queueMicrotask(r),yA(this)})}},ZA=cg(),Th=Ti(),Mh=Buffer.alloc(0);async function Vh(){let e=process.env.JEST_WORKER_ID?Ko():void 0,A;try{A=await WebAssembly.compile(Buffer.from(hg(),"base64"))}catch{A=await WebAssembly.compile(Buffer.from(e||Ko(),"base64"))}return await WebAssembly.instantiate(A,{env:{wasm_on_url:(t,a,r)=>0,wasm_on_status:(t,a,r)=>{D.strictEqual(fe.ptr,t);let i=a-XA+jA.byteOffset;return fe.onStatus(new Mi(jA.buffer,i,r))||0},wasm_on_message_begin:t=>(D.strictEqual(fe.ptr,t),fe.onMessageBegin()||0),wasm_on_header_field:(t,a,r)=>{D.strictEqual(fe.ptr,t);let i=a-XA+jA.byteOffset;return fe.onHeaderField(new Mi(jA.buffer,i,r))||0},wasm_on_header_value:(t,a,r)=>{D.strictEqual(fe.ptr,t);let i=a-XA+jA.byteOffset;return fe.onHeaderValue(new Mi(jA.buffer,i,r))||0},wasm_on_headers_complete:(t,a,r,i)=>(D.strictEqual(fe.ptr,t),fe.onHeadersComplete(a,!!r,!!i)||0),wasm_on_body:(t,a,r)=>{D.strictEqual(fe.ptr,t);let i=a-XA+jA.byteOffset;return fe.onBody(new Mi(jA.buffer,i,r))||0},wasm_on_message_complete:t=>(D.strictEqual(fe.ptr,t),fe.onMessageComplete()||0)}})}var ed=null,rd=Vh();rd.catch();var fe=null,jA=null,Vi=0,XA=null,K1=1,Ji=2,id=3,sd=class{constructor(A,t,{exports:a}){D(Number.isFinite(A[Yi])&&A[Yi]>0),this.llhttp=a,this.ptr=this.llhttp.llhttp_alloc(ZA.TYPE.RESPONSE),this.client=A,this.socket=t,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=A[Yi],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=A[Fg]}setTimeout(A,t){this.timeoutType=t,A!==this.timeoutValue?($o.clearTimeout(this.timeout),A?(this.timeout=$o.setTimeout(Yh,A,this),this.timeout.unref&&this.timeout.unref()):this.timeout=null,this.timeoutValue=A):this.timeout&&this.timeout.refresh&&this.timeout.refresh()}resume(){this.socket.destroyed||!this.paused||(D(this.ptr!=null),D(fe==null),this.llhttp.llhttp_resume(this.ptr),D(this.timeoutType===Ji),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||Mh),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let A=this.socket.read();if(A===null)break;this.execute(A)}}execute(A){D(this.ptr!=null),D(fe==null),D(!this.paused);let{socket:t,llhttp:a}=this;A.length>Vi&&(XA&&a.free(XA),Vi=Math.ceil(A.length/4096)*4096,XA=a.malloc(Vi)),new Uint8Array(a.memory.buffer,XA,Vi).set(A);try{let r;try{jA=A,fe=this,r=a.llhttp_execute(this.ptr,XA,A.length)}catch(s){throw s}finally{fe=null,jA=null}let i=a.llhttp_get_error_pos(this.ptr)-XA;if(r===ZA.ERROR.PAUSED_UPGRADE)this.onUpgrade(A.slice(i));else if(r===ZA.ERROR.PAUSED)this.paused=!0,t.unshift(A.slice(i));else if(r!==ZA.ERROR.OK){let s=a.llhttp_get_error_reason(this.ptr),n="";if(s){let o=new Uint8Array(a.memory.buffer,s).indexOf(0);n="Response does not match the HTTP/1.1 protocol ("+Buffer.from(a.memory.buffer,s,o).toString()+")"}throw new yh(n,ZA.ERROR[r],A.slice(i))}}catch(r){L.destroy(t,r)}}destroy(){D(this.ptr!=null),D(fe==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,$o.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(A){this.statusText=A.toString()}onMessageBegin(){let{socket:A,client:t}=this;if(A.destroyed||!t[pe][t[ce]])return-1}onHeaderField(A){let t=this.headers.length;(t&1)===0?this.headers.push(A):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]),this.trackHeader(A.length)}onHeaderValue(A){let t=this.headers.length;(t&1)===1?(this.headers.push(A),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]);let a=this.headers[t-2];a.length===10&&a.toString().toLowerCase()==="keep-alive"?this.keepAlive+=A.toString():a.length===10&&a.toString().toLowerCase()==="connection"?this.connection+=A.toString():a.length===14&&a.toString().toLowerCase()==="content-length"&&(this.contentLength+=A.toString()),this.trackHeader(A.length)}trackHeader(A){this.headersSize+=A,this.headersSize>=this.headersMaxSize&&L.destroy(this.socket,new fh)}onUpgrade(A){let{upgrade:t,client:a,socket:r,headers:i,statusCode:s}=this;D(t);let n=a[pe][a[ce]];D(n),D(!r.destroyed),D(r===a[sA]),D(!this.paused),D(n.upgrade||n.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,D(this.headers.length%2===0),this.headers=[],this.headersSize=0,r.unshift(A),r[te].destroy(),r[te]=null,r[qi]=null,r[nA]=null,r.removeListener("error",Lg).removeListener("readable",kg).removeListener("end",Tg).removeListener("close",Mg),a[sA]=null,a[pe][a[ce]++]=null,a.emit("disconnect",a[fA],[a],new A1("upgrade"));try{n.onUpgrade(s,i,r)}catch(o){L.destroy(r,o)}yA(a)}onHeadersComplete(A,t,a){let{client:r,socket:i,headers:s,statusText:n}=this;if(i.destroyed)return-1;let o=r[pe][r[ce]];if(!o)return-1;if(D(!this.upgrade),D(this.statusCode<200),A===100)return L.destroy(i,new Gi("bad response",L.getSocketInfo(i))),-1;if(t&&!o.upgrade)return L.destroy(i,new Gi("bad upgrade",L.getSocketInfo(i))),-1;if(D.strictEqual(this.timeoutType,K1),this.statusCode=A,this.shouldKeepAlive=a||o.method==="HEAD"&&!i[qe]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let l=o.bodyTimeout!=null?o.bodyTimeout:r[bg];this.setTimeout(l,Ji)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(o.method==="CONNECT")return D(r[ue]===1),this.upgrade=!0,2;if(t)return D(r[ue]===1),this.upgrade=!0,2;if(D(this.headers.length%2===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&r[Mt]){let l=this.keepAlive?L.parseKeepAliveTimeout(this.keepAlive):null;if(l!=null){let p=Math.min(l-r[vg],r[Rg]);p<=0?i[qe]=!0:r[rr]=p}else r[rr]=r[td]}else i[qe]=!0;let d;try{d=o.onHeaders(A,s,this.resume,n)===!1}catch(l){return L.destroy(i,l),-1}return o.method==="HEAD"||A<200?1:(i[X1]&&(i[X1]=!1,yA(r)),d?ZA.ERROR.PAUSED:0)}onBody(A){let{client:t,socket:a,statusCode:r,maxResponseSize:i}=this;if(a.destroyed)return-1;let s=t[pe][t[ce]];if(D(s),D.strictEqual(this.timeoutType,Ji),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),D(r>=200),i>-1&&this.bytesRead+A.length>i)return L.destroy(a,new Dh),-1;this.bytesRead+=A.length;try{if(s.onData(A)===!1)return ZA.ERROR.PAUSED}catch(n){return L.destroy(a,n),-1}}onMessageComplete(){let{client:A,socket:t,statusCode:a,upgrade:r,headers:i,contentLength:s,bytesRead:n,shouldKeepAlive:o}=this;if(t.destroyed&&(!a||o))return-1;if(r)return;let d=A[pe][A[ce]];if(D(d),D(a>=100),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",D(this.headers.length%2===0),this.headers=[],this.headersSize=0,!(a<200)){if(d.method!=="HEAD"&&s&&n!==parseInt(s,10))return L.destroy(t,new hh),-1;try{d.onComplete(i)}catch(l){zA(A,d,l)}if(A[pe][A[ce]++]=null,t[mt])return D.strictEqual(A[ue],0),L.destroy(t,new A1("reset")),ZA.ERROR.PAUSED;if(o){if(t[qe]&&A[ue]===0)return L.destroy(t,new A1("reset")),ZA.ERROR.PAUSED;A[Mt]===1?setImmediate(yA,A):yA(A)}else return L.destroy(t,new A1("reset")),ZA.ERROR.PAUSED}}};function Yh(e){let{socket:A,timeoutType:t,client:a}=e;t===K1?(!A[mt]||A.writableNeedDrain||a[ue]>1)&&(D(!e.paused,"cannot be paused while waiting for headers"),L.destroy(A,new Ih)):t===Ji?e.paused||L.destroy(A,new wh):t===id&&(D(a[ue]===0&&a[rr]),L.destroy(A,new A1("socket idle timeout")))}function kg(){let{[te]:e}=this;e.readMore()}function Lg(e){let{[te]:A}=this;if(D(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),e.code==="ECONNRESET"&&A.statusCode&&!A.shouldKeepAlive){A.onMessageComplete();return}this[nA]=e,Ug(this[qi],e)}function Ug(e,A){if(e[ue]===0&&A.code!=="UND_ERR_INFO"&&A.code!=="UND_ERR_SOCKET"){D(e[wA]===e[ce]);let t=e[pe].splice(e[ce]);for(let a=0;a<t.length;a++){let r=t[a];zA(e,r,A)}D(e[a1]===0)}}function Tg(){let{[te]:e}=this;if(e.statusCode&&!e.shouldKeepAlive){e.onMessageComplete();return}L.destroy(this,new Gi("other side closed",L.getSocketInfo(this)))}function Mg(){let{[qi]:e}=this;!this[nA]&&this[te].statusCode&&!this[te].shouldKeepAlive&&this[te].onMessageComplete(),this[te].destroy(),this[te]=null;let A=this[nA]||new Gi("closed",L.getSocketInfo(this));if(e[sA]=null,e.destroyed){D(e[z1]===0);let t=e[pe].splice(e[ce]);for(let a=0;a<t.length;a++){let r=t[a];zA(e,r,A)}}else if(e[ue]>0&&A.code!=="UND_ERR_INFO"){let t=e[pe][e[ce]];e[pe][e[ce]++]=null,zA(e,t,A)}e[wA]=e[ce],D(e[ue]===0),e.emit("disconnect",e[fA],[e],A),yA(e)}async function Vg(e){D(!e[j1]),D(!e[sA]);let{host:A,hostname:t,protocol:a,port:r}=e[fA];if(t[0]==="["){let i=t.indexOf("]");D(i!==-1);let s=t.substr(1,i-1);D(wg.isIP(s)),t=s}e[j1]=!0,Je.beforeConnect.hasSubscribers&&Je.beforeConnect.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[Lt],localAddress:e[ar]},connector:e[tr]});try{let i=await new Promise((s,n)=>{e[tr]({host:A,hostname:t,protocol:a,port:r,servername:e[Lt],localAddress:e[ar]},(o,d)=>{o?n(o):s(d)})});if(e.destroyed){L.destroy(i.on("error",()=>{}),new Rh);return}ed||(ed=await rd,rd=null),e[j1]=!1,D(i),i[Ar]=!1,i[mt]=!1,i[qe]=!1,i[X1]=!1,i[nA]=null,i[te]=new sd(e,i,ed),i[qi]=e,i[Sg]=0,i[ir]=e[ir],i.on("error",Lg).on("readable",kg).on("end",Tg).on("close",Mg),e[sA]=i,Je.connected.hasSubscribers&&Je.connected.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[Lt],localAddress:e[ar]},connector:e[tr],socket:i}),e.emit("connect",e[fA],[e])}catch(i){if(e.destroyed)return;if(e[j1]=!1,Je.connectError.hasSubscribers&&Je.connectError.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[Lt],localAddress:e[ar]},connector:e[tr],error:i}),i.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(D(e[ue]===0);e[z1]>0&&e[pe][e[wA]].servername===e[Lt];){let s=e[pe][e[wA]++];zA(e,s,i)}else Ug(e,i);e.emit("connectionError",e[fA],[e],i)}yA(e)}function Ig(e){e[Tt]=0,e.emit("drain",e[fA],[e])}function yA(e,A){e[t1]!==2&&(e[t1]=2,Jh(e,A),e[t1]=0,e[ce]>256&&(e[pe].splice(0,e[ce]),e[wA]-=e[ce],e[ce]=0))}function Jh(e,A){for(;;){if(e.destroyed){D(e[z1]===0);return}if(e[Ut]&&!e[a1]){e[Ut](),e[Ut]=null;return}let t=e[sA];if(t&&!t.destroyed){if(e[a1]===0?!t[Ar]&&t.unref&&(t.unref(),t[Ar]=!0):t[Ar]&&t.ref&&(t.ref(),t[Ar]=!1),e[a1]===0)t[te].timeoutType!==id&&t[te].setTimeout(e[rr],id);else if(e[ue]>0&&t[te].statusCode<200&&t[te].timeoutType!==K1){let r=e[pe][e[ce]],i=r.headersTimeout!=null?r.headersTimeout:e[Ng];t[te].setTimeout(i,K1)}}if(e[Ad])e[Tt]=2;else if(e[Tt]===2){A?(e[Tt]=1,process.nextTick(Ig,e)):Ig(e);continue}if(e[z1]===0||e[ue]>=(e[Mt]||1))return;let a=e[pe][e[wA]];if(e[fA].protocol==="https:"&&e[Lt]!==a.servername){if(e[ue]>0)return;if(e[Lt]=a.servername,t&&t.servername!==a.servername){L.destroy(t,new A1("servername changed"));return}}if(e[j1])return;if(!t){Vg(e);return}if(t.destroyed||t[mt]||t[qe]||t[X1]||e[ue]>0&&!a.idempotent||e[ue]>0&&(a.upgrade||a.method==="CONNECT")||(L.isStream(a.body)&&L.bodyLength(a.body)===0&&(a.body.on("data",function(){D(!1)}).on("error",function(r){zA(e,a,r)}).on("end",function(){L.destroy(this)}),a.body=null),e[ue]>0&&(L.isStream(a.body)||L.isAsyncIterable(a.body))))return;!a.aborted&&Gh(e,a)?e[wA]++:e[pe].splice(e[wA],1)}}function Gh(e,A){let{body:t,method:a,path:r,host:i,upgrade:s,headers:n,blocking:o,reset:d}=A,l=a==="PUT"||a==="POST"||a==="PATCH";t&&typeof t.read=="function"&&t.read(0);let p=L.bodyLength(t);if(p===null&&(p=A.contentLength),p===0&&!l&&(p=null),A.contentLength!==null&&A.contentLength!==p){if(e[xi])return zA(e,A,new e1),!1;process.emitWarning(new e1)}let g=e[sA];try{A.onConnect(u=>{A.aborted||A.completed||(zA(e,A,u||new yg),L.destroy(g,new A1("aborted")))})}catch(u){zA(e,A,u)}if(A.aborted)return!1;a==="HEAD"&&(g[qe]=!0),(s||a==="CONNECT")&&(g[qe]=!0),d!=null&&(g[qe]=d),e[ir]&&g[Sg]++>=e[ir]&&(g[qe]=!0),o&&(g[X1]=!0);let c=`${a} ${r} HTTP/1.1\r `;return typeof i=="string"?c+=`host: ${i}\r -`:c+=e[Vg],s?c+=`connection: upgrade\r +`:c+=e[Dg],s?c+=`connection: upgrade\r upgrade: ${s}\r -`:e[Gt]&&!g[xe]?c+=`connection: keep-alive\r +`:e[Mt]&&!g[qe]?c+=`connection: keep-alive\r `:c+=`connection: close\r -`,n&&(c+=n),Ye.sendHeaders.hasSubscribers&&Ye.sendHeaders.publish({request:A,headers:c,socket:g}),t?L.isBuffer(t)?(D(p===t.byteLength,"buffer body must have content length"),g.cork(),g.write(`${c}content-length: ${p}\r +`,n&&(c+=n),Je.sendHeaders.hasSubscribers&&Je.sendHeaders.publish({request:A,headers:c,socket:g}),t?L.isBuffer(t)?(D(p===t.byteLength,"buffer body must have content length"),g.cork(),g.write(`${c}content-length: ${p}\r \r -`,"latin1"),g.write(t),g.uncork(),A.onBodySent(t),A.onRequestSent(),l||(g[xe]=!0)):L.isBlobLike(t)?typeof t.stream=="function"?Ug({body:t.stream(),client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):pI({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):L.isStream(t)?dI({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):L.isIterable(t)?Ug({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):D(!1):(p===0?g.write(`${c}content-length: 0\r +`,"latin1"),g.write(t),g.uncork(),A.onBodySent(t),A.onRequestSent(),l||(g[qe]=!0)):L.isBlobLike(t)?typeof t.stream=="function"?fg({body:t.stream(),client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):_h({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):L.isStream(t)?xh({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):L.isIterable(t)?fg({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):D(!1):(p===0?g.write(`${c}content-length: 0\r \r `,"latin1"):(D(p===null,"no body must not have content length"),g.write(`${c}\r -`,"latin1")),A.onRequestSent()),!0}function dI({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r!==0||A[ue]===0,"stream body cannot be pipelined");let n=!1,o=new Zi({socket:a,request:t,contentLength:r,client:A,expectsPayload:s,header:i}),d=function(c){if(!n)try{!o.write(c)&&this.pause&&this.pause()}catch(u){L.destroy(this,u)}},l=function(){n||e.resume&&e.resume()},p=function(){g(new Mg)},g=function(c){if(!n){if(n=!0,D(a.destroyed||a[It]&&A[ue]<=1),a.off("drain",l).off("error",g),e.removeListener("data",d).removeListener("end",g).removeListener("error",g).removeListener("close",p),!c)try{o.end()}catch(u){c=u}o.destroy(c),c&&(c.code!=="UND_ERR_INFO"||c.message!=="reset")?L.destroy(e,c):L.destroy(e)}};e.on("data",d).on("end",g).on("error",g).on("close",p),e.resume&&e.resume(),a.on("drain",l).on("error",g)}async function pI({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r===e.size,"blob body must have content length");try{if(r!=null&&r!==e.size)throw new i1;let n=Buffer.from(await e.arrayBuffer());a.cork(),a.write(`${i}content-length: ${r}\r +`,"latin1")),A.onRequestSent()),!0}function xh({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r!==0||A[ue]===0,"stream body cannot be pipelined");let n=!1,o=new _i({socket:a,request:t,contentLength:r,client:A,expectsPayload:s,header:i}),d=function(c){if(!n)try{!o.write(c)&&this.pause&&this.pause()}catch(u){L.destroy(this,u)}},l=function(){n||e.resume&&e.resume()},p=function(){g(new yg)},g=function(c){if(!n){if(n=!0,D(a.destroyed||a[mt]&&A[ue]<=1),a.off("drain",l).off("error",g),e.removeListener("data",d).removeListener("end",g).removeListener("error",g).removeListener("close",p),!c)try{o.end()}catch(u){c=u}o.destroy(c),c&&(c.code!=="UND_ERR_INFO"||c.message!=="reset")?L.destroy(e,c):L.destroy(e)}};e.on("data",d).on("end",g).on("error",g).on("close",p),e.resume&&e.resume(),a.on("drain",l).on("error",g)}async function _h({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r===e.size,"blob body must have content length");try{if(r!=null&&r!==e.size)throw new e1;let n=Buffer.from(await e.arrayBuffer());a.cork(),a.write(`${i}content-length: ${r}\r \r -`,"latin1"),a.write(n),a.uncork(),t.onBodySent(n),t.onRequestSent(),s||(a[xe]=!0),DA(A)}catch(n){L.destroy(a,n)}}async function Ug({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r!==0||A[ue]===0,"iterator body cannot be pipelined");let n=null;function o(){if(n){let p=n;n=null,p()}}let d=()=>new Promise((p,g)=>{D(n===null),a[nA]?g(a[nA]):n=p});a.on("close",o).on("drain",o);let l=new Zi({socket:a,request:t,contentLength:r,client:A,expectsPayload:s,header:i});try{for await(let p of e){if(a[nA])throw a[nA];l.write(p)||await d()}l.end()}catch(p){l.destroy(p)}finally{a.off("close",o).off("drain",o)}}var Zi=class{constructor({socket:A,request:t,contentLength:a,client:r,expectsPayload:i,header:s}){this.socket=A,this.request=t,this.contentLength=a,this.client=r,this.bytesWritten=0,this.expectsPayload=i,this.header=s,A[It]=!0}write(A){let{socket:t,request:a,contentLength:r,client:i,bytesWritten:s,expectsPayload:n,header:o}=this;if(t[nA])throw t[nA];if(t.destroyed)return!1;let d=Buffer.byteLength(A);if(!d)return!0;if(r!==null&&s+d>r){if(i[ji])throw new i1;process.emitWarning(new i1)}t.cork(),s===0&&(n||(t[xe]=!0),r===null?t.write(`${o}transfer-encoding: chunked\r +`,"latin1"),a.write(n),a.uncork(),t.onBodySent(n),t.onRequestSent(),s||(a[qe]=!0),yA(A)}catch(n){L.destroy(a,n)}}async function fg({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r!==0||A[ue]===0,"iterator body cannot be pipelined");let n=null;function o(){if(n){let p=n;n=null,p()}}let d=()=>new Promise((p,g)=>{D(n===null),a[nA]?g(a[nA]):n=p});a.on("close",o).on("drain",o);let l=new _i({socket:a,request:t,contentLength:r,client:A,expectsPayload:s,header:i});try{for await(let p of e){if(a[nA])throw a[nA];l.write(p)||await d()}l.end()}catch(p){l.destroy(p)}finally{a.off("close",o).off("drain",o)}}var _i=class{constructor({socket:A,request:t,contentLength:a,client:r,expectsPayload:i,header:s}){this.socket=A,this.request=t,this.contentLength=a,this.client=r,this.bytesWritten=0,this.expectsPayload=i,this.header=s,A[mt]=!0}write(A){let{socket:t,request:a,contentLength:r,client:i,bytesWritten:s,expectsPayload:n,header:o}=this;if(t[nA])throw t[nA];if(t.destroyed)return!1;let d=Buffer.byteLength(A);if(!d)return!0;if(r!==null&&s+d>r){if(i[xi])throw new e1;process.emitWarning(new e1)}t.cork(),s===0&&(n||(t[qe]=!0),r===null?t.write(`${o}transfer-encoding: chunked\r `,"latin1"):t.write(`${o}content-length: ${r}\r \r `,"latin1")),r===null&&t.write(`\r ${d.toString(16)}\r -`,"latin1"),this.bytesWritten+=d;let l=t.write(A);return t.uncork(),a.onBodySent(A),l||t[Ae].timeout&&t[Ae].timeoutType===ta&&t[Ae].timeout.refresh&&t[Ae].timeout.refresh(),l}end(){let{socket:A,contentLength:t,client:a,bytesWritten:r,expectsPayload:i,header:s,request:n}=this;if(n.onRequestSent(),A[It]=!1,A[nA])throw A[nA];if(!A.destroyed){if(r===0?i?A.write(`${s}content-length: 0\r +`,"latin1"),this.bytesWritten+=d;let l=t.write(A);return t.uncork(),a.onBodySent(A),l||t[te].timeout&&t[te].timeoutType===K1&&t[te].timeout.refresh&&t[te].timeout.refresh(),l}end(){let{socket:A,contentLength:t,client:a,bytesWritten:r,expectsPayload:i,header:s,request:n}=this;if(n.onRequestSent(),A[mt]=!1,A[nA])throw A[nA];if(!A.destroyed){if(r===0?i?A.write(`${s}content-length: 0\r \r `,"latin1"):A.write(`${s}\r `,"latin1"):t===null&&A.write(`\r 0\r \r -`,"latin1"),t!==null&&r!==t){if(a[ji])throw new i1;process.emitWarning(new i1)}A[Ae].timeout&&A[Ae].timeoutType===ta&&A[Ae].timeout.refresh&&A[Ae].timeout.refresh(),DA(a)}}destroy(A){let{socket:t,client:a}=this;t[It]=!1,A&&(D(a[ue]<=1,"pipeline should only contain this request"),L.destroy(t,A))}};function et(e,A,t){try{A.onError(t),D(A.aborted)}catch(a){e.emit("error",a)}}zg.exports=cd});var $g=E((AS,Kg)=>{"use strict";var zi=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(A){this.list[this.top]=A,this.top=this.top+1&2047}shift(){let A=this.list[this.bottom];return A===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,A)}};Kg.exports=class{constructor(){this.head=this.tail=new zi}isEmpty(){return this.head.isEmpty()}push(A){this.head.isFull()&&(this.head=this.head.next=new zi),this.head.push(A)}shift(){let A=this.tail,t=A.shift();return A.isEmpty()&&A.next!==null&&(this.tail=A.next),t}}});var A6=E((tS,e6)=>{var{kFree:lI,kConnected:gI,kPending:cI,kQueued:uI,kRunning:EI,kSize:QI}=re(),d1=Symbol("pool"),Cd=class{constructor(A){this[d1]=A}get connected(){return this[d1][gI]}get free(){return this[d1][lI]}get pending(){return this[d1][cI]}get queued(){return this[d1][uI]}get running(){return this[d1][EI]}get size(){return this[d1][QI]}};e6.exports=Cd});var wd=E((aS,l6)=>{"use strict";var CI=ar(),mI=$g(),{kConnected:md,kSize:t6,kRunning:a6,kPending:r6,kQueued:gr,kBusy:BI,kFree:hI,kUrl:II,kClose:fI,kDestroy:wI,kDispatch:yI}=re(),DI=A6(),je=Symbol("clients"),qe=Symbol("needDrain"),cr=Symbol("queue"),Bd=Symbol("closed resolve"),hd=Symbol("onDrain"),i6=Symbol("onConnect"),s6=Symbol("onDisconnect"),n6=Symbol("onConnectionError"),Id=Symbol("get dispatcher"),d6=Symbol("add client"),p6=Symbol("remove client"),o6=Symbol("stats"),fd=class extends CI{constructor(){super(),this[cr]=new mI,this[je]=[],this[gr]=0;let A=this;this[hd]=function(a,r){let i=A[cr],s=!1;for(;!s;){let n=i.shift();if(!n)break;A[gr]--,s=!this.dispatch(n.opts,n.handler)}this[qe]=s,!this[qe]&&A[qe]&&(A[qe]=!1,A.emit("drain",a,[A,...r])),A[Bd]&&i.isEmpty()&&Promise.all(A[je].map(n=>n.close())).then(A[Bd])},this[i6]=(t,a)=>{A.emit("connect",t,[A,...a])},this[s6]=(t,a,r)=>{A.emit("disconnect",t,[A,...a],r)},this[n6]=(t,a,r)=>{A.emit("connectionError",t,[A,...a],r)},this[o6]=new DI(this)}get[BI](){return this[qe]}get[md](){return this[je].filter(A=>A[md]).length}get[hI](){return this[je].filter(A=>A[md]&&!A[qe]).length}get[r6](){let A=this[gr];for(let{[r6]:t}of this[je])A+=t;return A}get[a6](){let A=0;for(let{[a6]:t}of this[je])A+=t;return A}get[t6](){let A=this[gr];for(let{[t6]:t}of this[je])A+=t;return A}get stats(){return this[o6]}async[fI](){return this[cr].isEmpty()?Promise.all(this[je].map(A=>A.close())):new Promise(A=>{this[Bd]=A})}async[wI](A){for(;;){let t=this[cr].shift();if(!t)break;t.handler.onError(A)}return Promise.all(this[je].map(t=>t.destroy(A)))}[yI](A,t){let a=this[Id]();return a?a.dispatch(A,t)||(a[qe]=!0,this[qe]=!this[Id]()):(this[qe]=!0,this[cr].push({opts:A,handler:t}),this[gr]++),!this[qe]}[d6](A){return A.on("drain",this[hd]).on("connect",this[i6]).on("disconnect",this[s6]).on("connectionError",this[n6]),this[je].push(A),this[qe]&&process.nextTick(()=>{this[qe]&&this[hd](A[II],[this,A])}),this}[p6](A){A.close(()=>{let t=this[je].indexOf(A);t!==-1&&this[je].splice(t,1)}),this[qe]=this[je].some(t=>!t[qe]&&t.closed!==!0&&t.destroyed!==!0)}};l6.exports={PoolBase:fd,kClients:je,kNeedDrain:qe,kAddClient:d6,kRemoveClient:p6,kGetDispatcher:Id}});var aa=E((rS,E6)=>{"use strict";var{PoolBase:vI,kClients:g6,kNeedDrain:RI,kAddClient:NI,kGetDispatcher:bI}=wd(),SI=lr(),{InvalidArgumentError:yd}=$(),Dd=q(),{kUrl:c6,kInterceptors:FI}=re(),kI=rr(),vd=Symbol("options"),Rd=Symbol("connections"),u6=Symbol("factory");function LI(e,A){return new SI(e,A)}var Nd=class extends vI{constructor(A,{connections:t,factory:a=LI,connect:r,connectTimeout:i,tls:s,maxCachedSessions:n,socketPath:o,autoSelectFamily:d,autoSelectFamilyAttemptTimeout:l,...p}={}){if(super(),t!=null&&(!Number.isFinite(t)||t<0))throw new yd("invalid connections");if(typeof a!="function")throw new yd("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new yd("connect must be a function or an object");typeof r!="function"&&(r=kI({...s,maxCachedSessions:n,socketPath:o,timeout:i??1e4,...Dd.nodeHasAutoSelectFamily&&d?{autoSelectFamily:d,autoSelectFamilyAttemptTimeout:l}:void 0,...r})),this[FI]=p.interceptors&&p.interceptors.Pool&&Array.isArray(p.interceptors.Pool)?p.interceptors.Pool:[],this[Rd]=t||null,this[c6]=Dd.parseOrigin(A),this[vd]={...Dd.deepClone(p),connect:r},this[vd].interceptors=p.interceptors?{...p.interceptors}:void 0,this[u6]=a}[bI](){let A=this[g6].find(t=>!t[RI]);return A||((!this[Rd]||this[g6].length<this[Rd])&&(A=this[u6](this[c6],this[vd]),this[NI](A)),A)}};E6.exports=Nd});var I6=E((iS,h6)=>{"use strict";var{BalancedPoolMissingUpstreamError:UI,InvalidArgumentError:TI}=$(),{PoolBase:MI,kClients:He,kNeedDrain:ur,kAddClient:VI,kRemoveClient:YI,kGetDispatcher:JI}=wd(),GI=aa(),{kUrl:bd,kInterceptors:xI}=re(),{parseOrigin:Q6}=q(),C6=Symbol("factory"),Ki=Symbol("options"),m6=Symbol("kGreatestCommonDivisor"),p1=Symbol("kCurrentWeight"),l1=Symbol("kIndex"),vA=Symbol("kWeight"),$i=Symbol("kMaxWeightPerServer"),es=Symbol("kErrorPenalty");function B6(e,A){return A===0?e:B6(A,e%A)}function _I(e,A){return new GI(e,A)}var Sd=class extends MI{constructor(A=[],{factory:t=_I,...a}={}){if(super(),this[Ki]=a,this[l1]=-1,this[p1]=0,this[$i]=this[Ki].maxWeightPerServer||100,this[es]=this[Ki].errorPenalty||15,Array.isArray(A)||(A=[A]),typeof t!="function")throw new TI("factory must be a function.");this[xI]=a.interceptors&&a.interceptors.BalancedPool&&Array.isArray(a.interceptors.BalancedPool)?a.interceptors.BalancedPool:[],this[C6]=t;for(let r of A)this.addUpstream(r);this._updateBalancedPoolStats()}addUpstream(A){let t=Q6(A).origin;if(this[He].find(r=>r[bd].origin===t&&r.closed!==!0&&r.destroyed!==!0))return this;let a=this[C6](t,Object.assign({},this[Ki]));this[VI](a),a.on("connect",()=>{a[vA]=Math.min(this[$i],a[vA]+this[es])}),a.on("connectionError",()=>{a[vA]=Math.max(1,a[vA]-this[es]),this._updateBalancedPoolStats()}),a.on("disconnect",(...r)=>{let i=r[2];i&&i.code==="UND_ERR_SOCKET"&&(a[vA]=Math.max(1,a[vA]-this[es]),this._updateBalancedPoolStats())});for(let r of this[He])r[vA]=this[$i];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){this[m6]=this[He].map(A=>A[vA]).reduce(B6,0)}removeUpstream(A){let t=Q6(A).origin,a=this[He].find(r=>r[bd].origin===t&&r.closed!==!0&&r.destroyed!==!0);return a&&this[YI](a),this}get upstreams(){return this[He].filter(A=>A.closed!==!0&&A.destroyed!==!0).map(A=>A[bd].origin)}[JI](){if(this[He].length===0)throw new UI;if(!this[He].find(i=>!i[ur]&&i.closed!==!0&&i.destroyed!==!0)||this[He].map(i=>i[ur]).reduce((i,s)=>i&&s,!0))return;let a=0,r=this[He].findIndex(i=>!i[ur]);for(;a++<this[He].length;){this[l1]=(this[l1]+1)%this[He].length;let i=this[He][this[l1]];if(i[vA]>this[He][r][vA]&&!i[ur]&&(r=this[l1]),this[l1]===0&&(this[p1]=this[p1]-this[m6],this[p1]<=0&&(this[p1]=this[$i])),i[vA]>=this[p1]&&!i[ur])return i}return this[p1]=this[He][r][vA],this[l1]=r,this[He][r]}};h6.exports=Sd});var Ld=E((sS,y6)=>{"use strict";var{kConnected:f6,kSize:w6}=re(),Fd=class{constructor(A){this.value=A}deref(){return this.value[f6]===0&&this.value[w6]===0?void 0:this.value}},kd=class{constructor(A){this.finalizer=A}register(A,t){A.on("disconnect",()=>{A[f6]===0&&A[w6]===0&&this.finalizer(t)})}};y6.exports=function(){return{WeakRef:global.WeakRef||Fd,FinalizationRegistry:global.FinalizationRegistry||kd}}});var Er=E((nS,k6)=>{"use strict";var{InvalidArgumentError:As}=$(),{kClients:xt,kRunning:D6,kClose:qI,kDestroy:HI,kDispatch:OI,kInterceptors:PI}=re(),WI=ar(),jI=aa(),ZI=lr(),XI=q(),zI=_i(),{WeakRef:KI,FinalizationRegistry:$I}=Ld()(),v6=Symbol("onConnect"),R6=Symbol("onDisconnect"),N6=Symbol("onConnectionError"),e7=Symbol("maxRedirections"),b6=Symbol("onDrain"),S6=Symbol("factory"),F6=Symbol("finalizer"),Ud=Symbol("options");function A7(e,A){return A&&A.connections===1?new ZI(e,A):new jI(e,A)}var Td=class extends WI{constructor({factory:A=A7,maxRedirections:t=0,connect:a,...r}={}){if(super(),typeof A!="function")throw new As("factory must be a function.");if(a!=null&&typeof a!="function"&&typeof a!="object")throw new As("connect must be a function or an object");if(!Number.isInteger(t)||t<0)throw new As("maxRedirections must be a positive number");a&&typeof a!="function"&&(a={...a}),this[PI]=r.interceptors&&r.interceptors.Agent&&Array.isArray(r.interceptors.Agent)?r.interceptors.Agent:[zI({maxRedirections:t})],this[Ud]={...XI.deepClone(r),connect:a},this[Ud].interceptors=r.interceptors?{...r.interceptors}:void 0,this[e7]=t,this[S6]=A,this[xt]=new Map,this[F6]=new $I(s=>{let n=this[xt].get(s);n!==void 0&&n.deref()===void 0&&this[xt].delete(s)});let i=this;this[b6]=(s,n)=>{i.emit("drain",s,[i,...n])},this[v6]=(s,n)=>{i.emit("connect",s,[i,...n])},this[R6]=(s,n,o)=>{i.emit("disconnect",s,[i,...n],o)},this[N6]=(s,n,o)=>{i.emit("connectionError",s,[i,...n],o)}}get[D6](){let A=0;for(let t of this[xt].values()){let a=t.deref();a&&(A+=a[D6])}return A}[OI](A,t){let a;if(A.origin&&(typeof A.origin=="string"||A.origin instanceof URL))a=String(A.origin);else throw new As("opts.origin must be a non-empty string or URL.");let r=this[xt].get(a),i=r?r.deref():null;return i||(i=this[S6](A.origin,this[Ud]).on("drain",this[b6]).on("connect",this[v6]).on("disconnect",this[R6]).on("connectionError",this[N6]),this[xt].set(a,new KI(i)),this[F6].register(i,a)),i.dispatch(A,t)}async[qI](){let A=[];for(let t of this[xt].values()){let a=t.deref();a&&A.push(a.close())}await Promise.all(A)}async[HI](A){let t=[];for(let a of this[xt].values()){let r=a.deref();r&&t.push(r.destroy(A))}await Promise.all(t)}};k6.exports=Td});var G6=E((dS,J6)=>{"use strict";var T6=require("assert"),{Readable:t7}=require("stream"),{RequestAbortedError:M6,NotSupportedError:a7,InvalidArgumentError:r7}=$(),ra=q(),{ReadableStreamFrom:i7,toUSVString:s7}=q(),Md,oA=Symbol("kConsume"),ts=Symbol("kReading"),_t=Symbol("kBody"),L6=Symbol("abort"),V6=Symbol("kContentType");J6.exports=class extends t7{constructor({resume:A,abort:t,contentType:a="",highWaterMark:r=64*1024}){super({autoDestroy:!0,read:A,highWaterMark:r}),this._readableState.dataEmitted=!1,this[L6]=t,this[oA]=null,this[_t]=null,this[V6]=a,this[ts]=!1}destroy(A){return this.destroyed?this:(!A&&!this._readableState.endEmitted&&(A=new M6),A&&this[L6](),super.destroy(A))}emit(A,...t){return A==="data"?this._readableState.dataEmitted=!0:A==="error"&&(this._readableState.errorEmitted=!0),super.emit(A,...t)}on(A,...t){return(A==="data"||A==="readable")&&(this[ts]=!0),super.on(A,...t)}addListener(A,...t){return this.on(A,...t)}off(A,...t){let a=super.off(A,...t);return(A==="data"||A==="readable")&&(this[ts]=this.listenerCount("data")>0||this.listenerCount("readable")>0),a}removeListener(A,...t){return this.off(A,...t)}push(A){return this[oA]&&A!==null&&this.readableLength===0?(Y6(this[oA],A),this[ts]?super.push(A):!0):super.push(A)}async text(){return as(this,"text")}async json(){return as(this,"json")}async blob(){return as(this,"blob")}async arrayBuffer(){return as(this,"arrayBuffer")}async formData(){throw new a7}get bodyUsed(){return ra.isDisturbed(this)}get body(){return this[_t]||(this[_t]=i7(this),this[oA]&&(this[_t].getReader(),T6(this[_t].locked))),this[_t]}async dump(A){let t=A&&Number.isFinite(A.limit)?A.limit:262144,a=A&&A.signal,r=()=>{this.destroy()},i;if(a){if(typeof a!="object"||!("aborted"in a))throw new r7("signal must be an AbortSignal");ra.throwIfAborted(a),i=ra.addAbortListener(a,r)}try{for await(let s of this)if(ra.throwIfAborted(a),t-=Buffer.byteLength(s),t<0)return}catch{ra.throwIfAborted(a)}finally{typeof i=="function"?i():i&&i[Symbol.dispose]()}}};function n7(e){return e[_t]&&e[_t].locked===!0||e[oA]}function o7(e){return ra.isDisturbed(e)||n7(e)}async function as(e,A){if(o7(e))throw new TypeError("unusable");return T6(!e[oA]),new Promise((t,a)=>{e[oA]={type:A,stream:e,resolve:t,reject:a,length:0,body:[]},e.on("error",function(r){Vd(this[oA],r)}).on("close",function(){this[oA].body!==null&&Vd(this[oA],new M6)}),process.nextTick(d7,e[oA])})}function d7(e){if(e.body===null)return;let{_readableState:A}=e.stream;for(let t of A.buffer)Y6(e,t);for(A.endEmitted?U6(this[oA]):e.stream.on("end",function(){U6(this[oA])}),e.stream.resume();e.stream.read()!=null;);}function U6(e){let{type:A,body:t,resolve:a,stream:r,length:i}=e;try{if(A==="text")a(s7(Buffer.concat(t)));else if(A==="json")a(JSON.parse(Buffer.concat(t)));else if(A==="arrayBuffer"){let s=new Uint8Array(i),n=0;for(let o of t)s.set(o,n),n+=o.byteLength;a(s)}else A==="blob"&&(Md||(Md=require("buffer").Blob),a(new Md(t,{type:r[V6]})));Vd(e)}catch(s){r.destroy(s)}}function Y6(e,A){e.length+=A.length,e.body.push(A)}function Vd(e,A){e.body!==null&&(A?e.reject(A):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}});var Yd=E((pS,_6)=>{var p7=require("assert"),{ResponseStatusCodeError:rs}=$(),{toUSVString:x6}=q();async function l7({callback:e,body:A,contentType:t,statusCode:a,statusMessage:r,headers:i}){p7(A);let s=[],n=0;for await(let o of A)if(s.push(o),n+=o.length,n>128*1024){s=null;break}if(a===204||!t||!s){process.nextTick(e,new rs(`Response status code ${a}${r?`: ${r}`:""}`,a,i));return}try{if(t.startsWith("application/json")){let o=JSON.parse(x6(Buffer.concat(s)));process.nextTick(e,new rs(`Response status code ${a}${r?`: ${r}`:""}`,a,i,o));return}if(t.startsWith("text/")){let o=x6(Buffer.concat(s));process.nextTick(e,new rs(`Response status code ${a}${r?`: ${r}`:""}`,a,i,o));return}}catch{}process.nextTick(e,new rs(`Response status code ${a}${r?`: ${r}`:""}`,a,i))}_6.exports={getResolveErrorBodyCallback:l7}});var sa=E((lS,H6)=>{var{addAbortListener:g7}=q(),{RequestAbortedError:c7}=$(),ia=Symbol("kListener"),qt=Symbol("kSignal");function q6(e){e.abort?e.abort():e.onError(new c7)}function u7(e,A){if(e[qt]=null,e[ia]=null,!!A){if(A.aborted){q6(e);return}e[qt]=A,e[ia]=()=>{q6(e)},g7(e[qt],e[ia])}}function E7(e){e[qt]&&("removeEventListener"in e[qt]?e[qt].removeEventListener("abort",e[ia]):e[qt].removeListener("abort",e[ia]),e[qt]=null,e[ia]=null)}H6.exports={addSignal:u7,removeSignal:E7}});var j6=E((gS,W6)=>{"use strict";var Q7=G6(),{InvalidArgumentError:na,RequestAbortedError:C7}=$(),At=q(),{getResolveErrorBodyCallback:m7}=Yd(),{AsyncResource:B7}=require("async_hooks"),{addSignal:h7,removeSignal:O6}=sa(),Jd=class extends B7{constructor(A,t){if(!A||typeof A!="object")throw new na("invalid opts");let{signal:a,method:r,opaque:i,body:s,onInfo:n,responseHeaders:o,throwOnError:d,highWaterMark:l}=A;try{if(typeof t!="function")throw new na("invalid callback");if(l&&(typeof l!="number"||l<0))throw new na("invalid highWaterMark");if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new na("signal must be an EventEmitter or EventTarget");if(r==="CONNECT")throw new na("invalid method");if(n&&typeof n!="function")throw new na("invalid onInfo callback");super("UNDICI_REQUEST")}catch(p){throw At.isStream(s)&&At.destroy(s.on("error",At.nop),p),p}this.responseHeaders=o||null,this.opaque=i||null,this.callback=t,this.res=null,this.abort=null,this.body=s,this.trailers={},this.context=null,this.onInfo=n||null,this.throwOnError=d,this.highWaterMark=l,At.isStream(s)&&s.on("error",p=>{this.onError(p)}),h7(this,a)}onConnect(A,t){if(!this.callback)throw new C7;this.abort=A,this.context=t}onHeaders(A,t,a,r){let{callback:i,opaque:s,abort:n,context:o,responseHeaders:d,highWaterMark:l}=this,p=d==="raw"?At.parseRawHeaders(t):At.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:p});return}let c=(d==="raw"?At.parseHeaders(t):p)["content-type"],u=new Q7({resume:a,abort:n,contentType:c,highWaterMark:l});this.callback=null,this.res=u,i!==null&&(this.throwOnError&&A>=400?this.runInAsyncScope(m7,null,{callback:i,body:u,contentType:c,statusCode:A,statusMessage:r,headers:p}):this.runInAsyncScope(i,null,null,{statusCode:A,headers:p,trailers:this.trailers,opaque:s,body:u,context:o}))}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;O6(this),At.parseHeaders(A,this.trailers),t.push(null)}onError(A){let{res:t,callback:a,body:r,opaque:i}=this;O6(this),a&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(a,null,A,{opaque:i})})),t&&(this.res=null,queueMicrotask(()=>{At.destroy(t,A)})),r&&(this.body=null,At.destroy(r,A))}};function P6(e,A){if(A===void 0)return new Promise((t,a)=>{P6.call(this,e,(r,i)=>r?a(r):t(i))});try{this.dispatch(e,new Jd(e,A))}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}W6.exports=P6});var K6=E((cS,z6)=>{"use strict";var{finished:I7,PassThrough:f7}=require("stream"),{InvalidArgumentError:oa,InvalidReturnValueError:w7,RequestAbortedError:y7}=$(),VA=q(),{getResolveErrorBodyCallback:D7}=Yd(),{AsyncResource:v7}=require("async_hooks"),{addSignal:R7,removeSignal:Z6}=sa(),Gd=class extends v7{constructor(A,t,a){if(!A||typeof A!="object")throw new oa("invalid opts");let{signal:r,method:i,opaque:s,body:n,onInfo:o,responseHeaders:d,throwOnError:l}=A;try{if(typeof a!="function")throw new oa("invalid callback");if(typeof t!="function")throw new oa("invalid factory");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new oa("signal must be an EventEmitter or EventTarget");if(i==="CONNECT")throw new oa("invalid method");if(o&&typeof o!="function")throw new oa("invalid onInfo callback");super("UNDICI_STREAM")}catch(p){throw VA.isStream(n)&&VA.destroy(n.on("error",VA.nop),p),p}this.responseHeaders=d||null,this.opaque=s||null,this.factory=t,this.callback=a,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=n,this.onInfo=o||null,this.throwOnError=l||!1,VA.isStream(n)&&n.on("error",p=>{this.onError(p)}),R7(this,r)}onConnect(A,t){if(!this.callback)throw new y7;this.abort=A,this.context=t}onHeaders(A,t,a,r){let{factory:i,opaque:s,context:n,callback:o,responseHeaders:d}=this,l=d==="raw"?VA.parseRawHeaders(t):VA.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:l});return}this.factory=null;let p;if(this.throwOnError&&A>=400){let u=(d==="raw"?VA.parseHeaders(t):l)["content-type"];p=new f7,this.callback=null,this.runInAsyncScope(D7,null,{callback:o,body:p,contentType:u,statusCode:A,statusMessage:r,headers:l})}else{if(p=this.runInAsyncScope(i,null,{statusCode:A,headers:l,opaque:s,context:n}),!p||typeof p.write!="function"||typeof p.end!="function"||typeof p.on!="function")throw new w7("expected Writable");I7(p,{readable:!1},c=>{let{callback:u,res:Q,opaque:m,trailers:C,abort:h}=this;this.res=null,(c||!Q.readable)&&VA.destroy(Q,c),this.callback=null,this.runInAsyncScope(u,null,c||null,{opaque:m,trailers:C}),c&&h()})}return p.on("drain",a),this.res=p,(p.writableNeedDrain!==void 0?p.writableNeedDrain:p._writableState&&p._writableState.needDrain)!==!0}onData(A){let{res:t}=this;return t.write(A)}onComplete(A){let{res:t}=this;Z6(this),this.trailers=VA.parseHeaders(A),t.end()}onError(A){let{res:t,callback:a,opaque:r,body:i}=this;Z6(this),this.factory=null,t?(this.res=null,VA.destroy(t,A)):a&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(a,null,A,{opaque:r})})),i&&(this.body=null,VA.destroy(i,A))}};function X6(e,A,t){if(t===void 0)return new Promise((a,r)=>{X6.call(this,e,A,(i,s)=>i?r(i):a(s))});try{this.dispatch(e,new Gd(e,A,t))}catch(a){if(typeof t!="function")throw a;let r=e&&e.opaque;queueMicrotask(()=>t(a,{opaque:r}))}}z6.exports=X6});var Ac=E((uS,ec)=>{"use strict";var{Readable:$6,Duplex:N7,PassThrough:b7}=require("stream"),{InvalidArgumentError:Qr,InvalidReturnValueError:S7,RequestAbortedError:is}=$(),RA=q(),{AsyncResource:F7}=require("async_hooks"),{addSignal:k7,removeSignal:L7}=sa(),U7=require("assert"),da=Symbol("resume"),xd=class extends $6{constructor(){super({autoDestroy:!0}),this[da]=null}_read(){let{[da]:A}=this;A&&(this[da]=null,A())}_destroy(A,t){this._read(),t(A)}},qd=class extends $6{constructor(A){super({autoDestroy:!0}),this[da]=A}_read(){this[da]()}_destroy(A,t){!A&&!this._readableState.endEmitted&&(A=new is),t(A)}},Hd=class extends F7{constructor(A,t){if(!A||typeof A!="object")throw new Qr("invalid opts");if(typeof t!="function")throw new Qr("invalid handler");let{signal:a,method:r,opaque:i,onInfo:s,responseHeaders:n}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Qr("signal must be an EventEmitter or EventTarget");if(r==="CONNECT")throw new Qr("invalid method");if(s&&typeof s!="function")throw new Qr("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=i||null,this.responseHeaders=n||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=s||null,this.req=new xd().on("error",RA.nop),this.ret=new N7({readableObjectMode:A.objectMode,autoDestroy:!0,read:()=>{let{body:o}=this;o&&o.resume&&o.resume()},write:(o,d,l)=>{let{req:p}=this;p.push(o,d)||p._readableState.destroyed?l():p[da]=l},destroy:(o,d)=>{let{body:l,req:p,res:g,ret:c,abort:u}=this;!o&&!c._readableState.endEmitted&&(o=new is),u&&o&&u(),RA.destroy(l,o),RA.destroy(p,o),RA.destroy(g,o),L7(this),d(o)}}).on("prefinish",()=>{let{req:o}=this;o.push(null)}),this.res=null,k7(this,a)}onConnect(A,t){let{ret:a,res:r}=this;if(U7(!r,"pipeline cannot be retried"),a.destroyed)throw new is;this.abort=A,this.context=t}onHeaders(A,t,a){let{opaque:r,handler:i,context:s}=this;if(A<200){if(this.onInfo){let o=this.responseHeaders==="raw"?RA.parseRawHeaders(t):RA.parseHeaders(t);this.onInfo({statusCode:A,headers:o})}return}this.res=new qd(a);let n;try{this.handler=null;let o=this.responseHeaders==="raw"?RA.parseRawHeaders(t):RA.parseHeaders(t);n=this.runInAsyncScope(i,null,{statusCode:A,headers:o,opaque:r,body:this.res,context:s})}catch(o){throw this.res.on("error",RA.nop),o}if(!n||typeof n.on!="function")throw new S7("expected Readable");n.on("data",o=>{let{ret:d,body:l}=this;!d.push(o)&&l.pause&&l.pause()}).on("error",o=>{let{ret:d}=this;RA.destroy(d,o)}).on("end",()=>{let{ret:o}=this;o.push(null)}).on("close",()=>{let{ret:o}=this;o._readableState.ended||RA.destroy(o,new is)}),this.body=n}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;t.push(null)}onError(A){let{ret:t}=this;this.handler=null,RA.destroy(t,A)}};function T7(e,A){try{let t=new Hd(e,A);return this.dispatch({...e,body:t.req},t),t.ret}catch(t){return new b7().destroy(t)}}ec.exports=T7});var sc=E((ES,ic)=>{"use strict";var{InvalidArgumentError:Od,RequestAbortedError:M7,SocketError:V7}=$(),{AsyncResource:Y7}=require("async_hooks"),tc=q(),{addSignal:J7,removeSignal:ac}=sa(),G7=require("assert"),Pd=class extends Y7{constructor(A,t){if(!A||typeof A!="object")throw new Od("invalid opts");if(typeof t!="function")throw new Od("invalid callback");let{signal:a,opaque:r,responseHeaders:i}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Od("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=i||null,this.opaque=r||null,this.callback=t,this.abort=null,this.context=null,J7(this,a)}onConnect(A,t){if(!this.callback)throw new M7;this.abort=A,this.context=null}onHeaders(){throw new V7("bad upgrade",null)}onUpgrade(A,t,a){let{callback:r,opaque:i,context:s}=this;G7.strictEqual(A,101),ac(this),this.callback=null;let n=this.responseHeaders==="raw"?tc.parseRawHeaders(t):tc.parseHeaders(t);this.runInAsyncScope(r,null,null,{headers:n,socket:a,opaque:i,context:s})}onError(A){let{callback:t,opaque:a}=this;ac(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:a})}))}};function rc(e,A){if(A===void 0)return new Promise((t,a)=>{rc.call(this,e,(r,i)=>r?a(r):t(i))});try{let t=new Pd(e,A);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},t)}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}ic.exports=rc});var lc=E((QS,pc)=>{"use strict";var{InvalidArgumentError:Wd,RequestAbortedError:x7,SocketError:_7}=$(),{AsyncResource:q7}=require("async_hooks"),nc=q(),{addSignal:H7,removeSignal:oc}=sa(),jd=class extends q7{constructor(A,t){if(!A||typeof A!="object")throw new Wd("invalid opts");if(typeof t!="function")throw new Wd("invalid callback");let{signal:a,opaque:r,responseHeaders:i}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Wd("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=r||null,this.responseHeaders=i||null,this.callback=t,this.abort=null,H7(this,a)}onConnect(A,t){if(!this.callback)throw new x7;this.abort=A,this.context=t}onHeaders(){throw new _7("bad connect",null)}onUpgrade(A,t,a){let{callback:r,opaque:i,context:s}=this;oc(this),this.callback=null;let n=this.responseHeaders==="raw"?nc.parseRawHeaders(t):nc.parseHeaders(t);this.runInAsyncScope(r,null,null,{statusCode:A,headers:n,socket:a,opaque:i,context:s})}onError(A){let{callback:t,opaque:a}=this;oc(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:a})}))}};function dc(e,A){if(A===void 0)return new Promise((t,a)=>{dc.call(this,e,(r,i)=>r?a(r):t(i))});try{let t=new jd(e,A);this.dispatch({...e,method:"CONNECT"},t)}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}pc.exports=dc});var gc=E((CS,pa)=>{"use strict";pa.exports.request=j6();pa.exports.stream=K6();pa.exports.pipeline=Ac();pa.exports.upgrade=sc();pa.exports.connect=lc()});var Xd=E((mS,cc)=>{"use strict";var{UndiciError:O7}=$(),Zd=class e extends O7{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=A||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};cc.exports={MockNotMatchedError:Zd}});var la=E((BS,uc)=>{"use strict";uc.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var Cr=E((hS,vc)=>{"use strict";var{MockNotMatchedError:g1}=Xd(),{kDispatches:ss,kMockAgent:P7,kOriginalDispatch:W7,kOrigin:j7,kGetNetConnect:Z7}=la(),{buildURL:X7,nop:z7}=q(),{STATUS_CODES:K7}=require("http"),{types:{isPromise:$7}}=require("util");function ft(e,A){return typeof e=="string"?e===A:e instanceof RegExp?e.test(A):typeof e=="function"?e(A)===!0:!1}function Qc(e){return Object.fromEntries(Object.entries(e).map(([A,t])=>[A.toLocaleLowerCase(),t]))}function Cc(e,A){if(Array.isArray(e)){for(let t=0;t<e.length;t+=2)if(e[t].toLocaleLowerCase()===A.toLocaleLowerCase())return e[t+1];return}else return typeof e.get=="function"?e.get(A):Qc(e)[A.toLocaleLowerCase()]}function mc(e){let A=e.slice(),t=[];for(let a=0;a<A.length;a+=2)t.push([A[a],A[a+1]]);return Object.fromEntries(t)}function Bc(e,A){if(typeof e.headers=="function")return Array.isArray(A)&&(A=mc(A)),e.headers(A?Qc(A):{});if(typeof e.headers>"u")return!0;if(typeof A!="object"||typeof e.headers!="object")return!1;for(let[t,a]of Object.entries(e.headers)){let r=Cc(A,t);if(!ft(a,r))return!1}return!0}function Ec(e){if(typeof e!="string")return e;let A=e.split("?");if(A.length!==2)return e;let t=new URLSearchParams(A.pop());return t.sort(),[...A,t.toString()].join("?")}function ef(e,{path:A,method:t,body:a,headers:r}){let i=ft(e.path,A),s=ft(e.method,t),n=typeof e.body<"u"?ft(e.body,a):!0,o=Bc(e,r);return i&&s&&n&&o}function hc(e){return Buffer.isBuffer(e)?e:typeof e=="object"?JSON.stringify(e):e.toString()}function Ic(e,A){let t=A.query?X7(A.path,A.query):A.path,a=typeof t=="string"?Ec(t):t,r=e.filter(({consumed:i})=>!i).filter(({path:i})=>ft(Ec(i),a));if(r.length===0)throw new g1(`Mock dispatch not matched for path '${a}'`);if(r=r.filter(({method:i})=>ft(i,A.method)),r.length===0)throw new g1(`Mock dispatch not matched for method '${A.method}'`);if(r=r.filter(({body:i})=>typeof i<"u"?ft(i,A.body):!0),r.length===0)throw new g1(`Mock dispatch not matched for body '${A.body}'`);if(r=r.filter(i=>Bc(i,A.headers)),r.length===0)throw new g1(`Mock dispatch not matched for headers '${typeof A.headers=="object"?JSON.stringify(A.headers):A.headers}'`);return r[0]}function Af(e,A,t){let a={timesInvoked:0,times:1,persist:!1,consumed:!1},r=typeof t=="function"?{callback:t}:{...t},i={...a,...A,pending:!0,data:{error:null,...r}};return e.push(i),i}function zd(e,A){let t=e.findIndex(a=>a.consumed?ef(a,A):!1);t!==-1&&e.splice(t,1)}function fc(e){let{path:A,method:t,body:a,headers:r,query:i}=e;return{path:A,method:t,body:a,headers:r,query:i}}function Kd(e){return Object.entries(e).reduce((A,[t,a])=>[...A,Buffer.from(`${t}`),Array.isArray(a)?a.map(r=>Buffer.from(`${r}`)):Buffer.from(`${a}`)],[])}function wc(e){return K7[e]||"unknown"}async function tf(e){let A=[];for await(let t of e)A.push(t);return Buffer.concat(A).toString("utf8")}function yc(e,A){let t=fc(e),a=Ic(this[ss],t);a.timesInvoked++,a.data.callback&&(a.data={...a.data,...a.data.callback(e)});let{data:{statusCode:r,data:i,headers:s,trailers:n,error:o},delay:d,persist:l}=a,{timesInvoked:p,times:g}=a;if(a.consumed=!l&&p>=g,a.pending=p<g,o!==null)return zd(this[ss],t),A.onError(o),!0;typeof d=="number"&&d>0?setTimeout(()=>{c(this[ss])},d):c(this[ss]);function c(Q,m=i){let C=Array.isArray(e.headers)?mc(e.headers):e.headers,h=typeof m=="function"?m({...e,headers:C}):m;if($7(h)){h.then(v=>c(Q,v));return}let B=hc(h),I=Kd(s),w=Kd(n);A.abort=z7,A.onHeaders(r,I,u,wc(r)),A.onData(Buffer.from(B)),A.onComplete(w),zd(Q,t)}function u(){}return!0}function af(){let e=this[P7],A=this[j7],t=this[W7];return function(r,i){if(e.isMockActive)try{yc.call(this,r,i)}catch(s){if(s instanceof g1){let n=e[Z7]();if(n===!1)throw new g1(`${s.message}: subsequent request to origin ${A} was not allowed (net.connect disabled)`);if(Dc(n,A))t.call(this,r,i);else throw new g1(`${s.message}: subsequent request to origin ${A} was not allowed (net.connect is not enabled for this origin)`)}else throw s}else t.call(this,r,i)}}function Dc(e,A){let t=new URL(A);return e===!0?!0:!!(Array.isArray(e)&&e.some(a=>ft(a,t.host)))}function rf(e){if(e){let{agent:A,...t}=e;return t}}vc.exports={getResponseData:hc,getMockDispatch:Ic,addMockDispatch:Af,deleteMockDispatch:zd,buildKey:fc,generateKeyValues:Kd,matchValue:ft,getResponse:tf,getStatusText:wc,mockDispatch:yc,buildMockDispatch:af,checkNetConnect:Dc,buildMockOptions:rf,getHeaderByName:Cc}});var ip=E((IS,rp)=>{"use strict";var{getResponseData:sf,buildKey:nf,addMockDispatch:$d}=Cr(),{kDispatches:ns,kDispatchKey:os,kDefaultHeaders:ep,kDefaultTrailers:Ap,kContentLength:tp,kMockDispatch:ds}=la(),{InvalidArgumentError:YA}=$(),{buildURL:of}=q(),ga=class{constructor(A){this[ds]=A}delay(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new YA("waitInMs must be a valid integer > 0");return this[ds].delay=A,this}persist(){return this[ds].persist=!0,this}times(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new YA("repeatTimes must be a valid integer > 0");return this[ds].times=A,this}},ap=class{constructor(A,t){if(typeof A!="object")throw new YA("opts must be an object");if(typeof A.path>"u")throw new YA("opts.path must be defined");if(typeof A.method>"u"&&(A.method="GET"),typeof A.path=="string")if(A.query)A.path=of(A.path,A.query);else{let a=new URL(A.path,"data://");A.path=a.pathname+a.search}typeof A.method=="string"&&(A.method=A.method.toUpperCase()),this[os]=nf(A),this[ns]=t,this[ep]={},this[Ap]={},this[tp]=!1}createMockScopeDispatchData(A,t,a={}){let r=sf(t),i=this[tp]?{"content-length":r.length}:{},s={...this[ep],...i,...a.headers},n={...this[Ap],...a.trailers};return{statusCode:A,data:t,headers:s,trailers:n}}validateReplyParameters(A,t,a){if(typeof A>"u")throw new YA("statusCode must be defined");if(typeof t>"u")throw new YA("data must be defined");if(typeof a!="object")throw new YA("responseOptions must be an object")}reply(A){if(typeof A=="function"){let n=d=>{let l=A(d);if(typeof l!="object")throw new YA("reply options callback must return an object");let{statusCode:p,data:g="",responseOptions:c={}}=l;return this.validateReplyParameters(p,g,c),{...this.createMockScopeDispatchData(p,g,c)}},o=$d(this[ns],this[os],n);return new ga(o)}let[t,a="",r={}]=[...arguments];this.validateReplyParameters(t,a,r);let i=this.createMockScopeDispatchData(t,a,r),s=$d(this[ns],this[os],i);return new ga(s)}replyWithError(A){if(typeof A>"u")throw new YA("error must be defined");let t=$d(this[ns],this[os],{error:A});return new ga(t)}defaultReplyHeaders(A){if(typeof A>"u")throw new YA("headers must be defined");return this[ep]=A,this}defaultReplyTrailers(A){if(typeof A>"u")throw new YA("trailers must be defined");return this[Ap]=A,this}replyContentLength(){return this[tp]=!0,this}};rp.exports.MockInterceptor=ap;rp.exports.MockScope=ga});var op=E((fS,Lc)=>{"use strict";var{promisify:df}=require("util"),pf=lr(),{buildMockDispatch:lf}=Cr(),{kDispatches:Rc,kMockAgent:Nc,kClose:bc,kOriginalClose:Sc,kOrigin:Fc,kOriginalDispatch:gf,kConnected:sp}=la(),{MockInterceptor:cf}=ip(),kc=re(),{InvalidArgumentError:uf}=$(),np=class extends pf{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new uf("Argument opts.agent must implement Agent");this[Nc]=t.agent,this[Fc]=A,this[Rc]=[],this[sp]=1,this[gf]=this.dispatch,this[Sc]=this.close.bind(this),this.dispatch=lf.call(this),this.close=this[bc]}get[kc.kConnected](){return this[sp]}intercept(A){return new cf(A,this[Rc])}async[bc](){await df(this[Sc])(),this[sp]=0,this[Nc][kc.kClients].delete(this[Fc])}};Lc.exports=np});var lp=E((wS,Gc)=>{"use strict";var{promisify:Ef}=require("util"),Qf=aa(),{buildMockDispatch:Cf}=Cr(),{kDispatches:Uc,kMockAgent:Tc,kClose:Mc,kOriginalClose:Vc,kOrigin:Yc,kOriginalDispatch:mf,kConnected:dp}=la(),{MockInterceptor:Bf}=ip(),Jc=re(),{InvalidArgumentError:hf}=$(),pp=class extends Qf{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new hf("Argument opts.agent must implement Agent");this[Tc]=t.agent,this[Yc]=A,this[Uc]=[],this[dp]=1,this[mf]=this.dispatch,this[Vc]=this.close.bind(this),this.dispatch=Cf.call(this),this.close=this[Mc]}get[Jc.kConnected](){return this[dp]}intercept(A){return new Bf(A,this[Uc])}async[Mc](){await Ef(this[Vc])(),this[dp]=0,this[Tc][Jc.kClients].delete(this[Yc])}};Gc.exports=pp});var qc=E((DS,xc)=>{"use strict";var If={pronoun:"it",is:"is",was:"was",this:"this"},ff={pronoun:"they",is:"are",was:"were",this:"these"};xc.exports=class{constructor(A,t){this.singular=A,this.plural=t}pluralize(A){let t=A===1,a=t?If:ff,r=t?this.singular:this.plural;return{...a,count:A,noun:r}}}});var Oc=E((RS,Hc)=>{"use strict";var{Transform:wf}=require("stream"),{Console:yf}=require("console");Hc.exports=class{constructor({disableColors:A}={}){this.transform=new wf({transform(t,a,r){r(null,t)}}),this.logger=new yf({stdout:this.transform,inspectOptions:{colors:!A&&!process.env.CI}})}format(A){let t=A.map(({method:a,path:r,data:{statusCode:i},persist:s,times:n,timesInvoked:o,origin:d})=>({Method:a,Origin:d,Path:r,"Status code":i,Persistent:s?"\u2705":"\u274C",Invocations:o,Remaining:s?1/0:n-o}));return this.logger.table(t),this.transform.read().toString()}}});var Zc=E((NS,jc)=>{"use strict";var{kClients:c1}=re(),Df=Er(),{kAgent:gp,kMockAgentSet:ps,kMockAgentGet:Pc,kDispatches:cp,kIsMockActive:ls,kNetConnect:u1,kGetNetConnect:vf,kOptions:gs,kFactory:cs}=la(),Rf=op(),Nf=lp(),{matchValue:bf,buildMockOptions:Sf}=Cr(),{InvalidArgumentError:Wc,UndiciError:Ff}=$(),kf=Yi(),Lf=qc(),Uf=Oc(),up=class{constructor(A){this.value=A}deref(){return this.value}},Ep=class extends kf{constructor(A){if(super(A),this[u1]=!0,this[ls]=!0,A&&A.agent&&typeof A.agent.dispatch!="function")throw new Wc("Argument opts.agent must implement Agent");let t=A&&A.agent?A.agent:new Df(A);this[gp]=t,this[c1]=t[c1],this[gs]=Sf(A)}get(A){let t=this[Pc](A);return t||(t=this[cs](A),this[ps](A,t)),t}dispatch(A,t){return this.get(A.origin),this[gp].dispatch(A,t)}async close(){await this[gp].close(),this[c1].clear()}deactivate(){this[ls]=!1}activate(){this[ls]=!0}enableNetConnect(A){if(typeof A=="string"||typeof A=="function"||A instanceof RegExp)Array.isArray(this[u1])?this[u1].push(A):this[u1]=[A];else if(typeof A>"u")this[u1]=!0;else throw new Wc("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[u1]=!1}get isMockActive(){return this[ls]}[ps](A,t){this[c1].set(A,new up(t))}[cs](A){let t=Object.assign({agent:this},this[gs]);return this[gs]&&this[gs].connections===1?new Rf(A,t):new Nf(A,t)}[Pc](A){let t=this[c1].get(A);if(t)return t.deref();if(typeof A!="string"){let a=this[cs]("http://localhost:9999");return this[ps](A,a),a}for(let[a,r]of Array.from(this[c1])){let i=r.deref();if(i&&typeof a!="string"&&bf(a,A)){let s=this[cs](A);return this[ps](A,s),s[cp]=i[cp],s}}}[vf](){return this[u1]}pendingInterceptors(){let A=this[c1];return Array.from(A.entries()).flatMap(([t,a])=>a.deref()[cp].map(r=>({...r,origin:t}))).filter(({pending:t})=>t)}assertNoPendingInterceptors({pendingInterceptorsFormatter:A=new Uf}={}){let t=this.pendingInterceptors();if(t.length===0)return;let a=new Lf("interceptor","interceptors").pluralize(t.length);throw new Ff(` +`,"latin1"),t!==null&&r!==t){if(a[xi])throw new e1;process.emitWarning(new e1)}A[te].timeout&&A[te].timeoutType===K1&&A[te].timeout.refresh&&A[te].timeout.refresh(),yA(a)}}destroy(A){let{socket:t,client:a}=this;t[mt]=!1,A&&(D(a[ue]<=1,"pipeline should only contain this request"),L.destroy(t,A))}};function zA(e,A,t){try{A.onError(t),D(A.aborted)}catch(a){e.emit("error",a)}}Yg.exports=ad});var Gg=E((cb,Jg)=>{"use strict";var Hi=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(A){this.list[this.top]=A,this.top=this.top+1&2047}shift(){let A=this.list[this.bottom];return A===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,A)}};Jg.exports=class{constructor(){this.head=this.tail=new Hi}isEmpty(){return this.head.isEmpty()}push(A){this.head.isFull()&&(this.head=this.head.next=new Hi),this.head.push(A)}shift(){let A=this.tail,t=A.shift();return A.isEmpty()&&A.next!==null&&(this.tail=A.next),t}}});var qg=E((ub,xg)=>{var{kFree:qh,kConnected:Hh,kPending:Oh,kQueued:Ph,kRunning:Wh,kSize:Zh}=ie(),r1=Symbol("pool"),nd=class{constructor(A){this[r1]=A}get connected(){return this[r1][Hh]}get free(){return this[r1][qh]}get pending(){return this[r1][Oh]}get queued(){return this[r1][Ph]}get running(){return this[r1][Wh]}get size(){return this[r1][Zh]}};xg.exports=nd});var cd=E((Eb,$g)=>{"use strict";var jh=Ka(),Xh=Gg(),{kConnected:od,kSize:Hg,kRunning:Og,kPending:Pg,kQueued:nr,kBusy:zh,kFree:Kh,kUrl:$h,kClose:eI,kDestroy:AI,kDispatch:tI}=ie(),aI=qg(),je=Symbol("clients"),He=Symbol("needDrain"),or=Symbol("queue"),dd=Symbol("closed resolve"),pd=Symbol("onDrain"),Wg=Symbol("onConnect"),Zg=Symbol("onDisconnect"),jg=Symbol("onConnectionError"),ld=Symbol("get dispatcher"),zg=Symbol("add client"),Kg=Symbol("remove client"),Xg=Symbol("stats"),gd=class extends jh{constructor(){super(),this[or]=new Xh,this[je]=[],this[nr]=0;let A=this;this[pd]=function(a,r){let i=A[or],s=!1;for(;!s;){let n=i.shift();if(!n)break;A[nr]--,s=!this.dispatch(n.opts,n.handler)}this[He]=s,!this[He]&&A[He]&&(A[He]=!1,A.emit("drain",a,[A,...r])),A[dd]&&i.isEmpty()&&Promise.all(A[je].map(n=>n.close())).then(A[dd])},this[Wg]=(t,a)=>{A.emit("connect",t,[A,...a])},this[Zg]=(t,a,r)=>{A.emit("disconnect",t,[A,...a],r)},this[jg]=(t,a,r)=>{A.emit("connectionError",t,[A,...a],r)},this[Xg]=new aI(this)}get[zh](){return this[He]}get[od](){return this[je].filter(A=>A[od]).length}get[Kh](){return this[je].filter(A=>A[od]&&!A[He]).length}get[Pg](){let A=this[nr];for(let{[Pg]:t}of this[je])A+=t;return A}get[Og](){let A=0;for(let{[Og]:t}of this[je])A+=t;return A}get[Hg](){let A=this[nr];for(let{[Hg]:t}of this[je])A+=t;return A}get stats(){return this[Xg]}async[eI](){return this[or].isEmpty()?Promise.all(this[je].map(A=>A.close())):new Promise(A=>{this[dd]=A})}async[AI](A){for(;;){let t=this[or].shift();if(!t)break;t.handler.onError(A)}return Promise.all(this[je].map(t=>t.destroy(A)))}[tI](A,t){let a=this[ld]();return a?a.dispatch(A,t)||(a[He]=!0,this[He]=!this[ld]()):(this[He]=!0,this[or].push({opts:A,handler:t}),this[nr]++),!this[He]}[zg](A){return A.on("drain",this[pd]).on("connect",this[Wg]).on("disconnect",this[Zg]).on("connectionError",this[jg]),this[je].push(A),this[He]&&process.nextTick(()=>{this[He]&&this[pd](A[$h],[this,A])}),this}[Kg](A){A.close(()=>{let t=this[je].indexOf(A);t!==-1&&this[je].splice(t,1)}),this[He]=this[je].some(t=>!t[He]&&t.closed!==!0&&t.destroyed!==!0)}};$g.exports={PoolBase:gd,kClients:je,kNeedDrain:He,kAddClient:zg,kRemoveClient:Kg,kGetDispatcher:ld}});var $1=E((Qb,a6)=>{"use strict";var{PoolBase:rI,kClients:e6,kNeedDrain:iI,kAddClient:sI,kGetDispatcher:nI}=cd(),oI=sr(),{InvalidArgumentError:ud}=$(),Ed=q(),{kUrl:A6,kInterceptors:dI}=ie(),pI=$a(),Qd=Symbol("options"),md=Symbol("connections"),t6=Symbol("factory");function lI(e,A){return new oI(e,A)}var Cd=class extends rI{constructor(A,{connections:t,factory:a=lI,connect:r,connectTimeout:i,tls:s,maxCachedSessions:n,socketPath:o,autoSelectFamily:d,autoSelectFamilyAttemptTimeout:l,...p}={}){if(super(),t!=null&&(!Number.isFinite(t)||t<0))throw new ud("invalid connections");if(typeof a!="function")throw new ud("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new ud("connect must be a function or an object");typeof r!="function"&&(r=pI({...s,maxCachedSessions:n,socketPath:o,timeout:i??1e4,...Ed.nodeHasAutoSelectFamily&&d?{autoSelectFamily:d,autoSelectFamilyAttemptTimeout:l}:void 0,...r})),this[dI]=p.interceptors&&p.interceptors.Pool&&Array.isArray(p.interceptors.Pool)?p.interceptors.Pool:[],this[md]=t||null,this[A6]=Ed.parseOrigin(A),this[Qd]={...Ed.deepClone(p),connect:r},this[Qd].interceptors=p.interceptors?{...p.interceptors}:void 0,this[t6]=a}[nI](){let A=this[e6].find(t=>!t[iI]);return A||((!this[md]||this[e6].length<this[md])&&(A=this[t6](this[A6],this[Qd]),this[sI](A)),A)}};a6.exports=Cd});var d6=E((mb,o6)=>{"use strict";var{BalancedPoolMissingUpstreamError:gI,InvalidArgumentError:cI}=$(),{PoolBase:uI,kClients:Oe,kNeedDrain:dr,kAddClient:EI,kRemoveClient:QI,kGetDispatcher:mI}=cd(),CI=$1(),{kUrl:Bd,kInterceptors:BI}=ie(),{parseOrigin:r6}=q(),i6=Symbol("factory"),Oi=Symbol("options"),s6=Symbol("kGreatestCommonDivisor"),i1=Symbol("kCurrentWeight"),s1=Symbol("kIndex"),DA=Symbol("kWeight"),Pi=Symbol("kMaxWeightPerServer"),Wi=Symbol("kErrorPenalty");function n6(e,A){return A===0?e:n6(A,e%A)}function hI(e,A){return new CI(e,A)}var hd=class extends uI{constructor(A=[],{factory:t=hI,...a}={}){if(super(),this[Oi]=a,this[s1]=-1,this[i1]=0,this[Pi]=this[Oi].maxWeightPerServer||100,this[Wi]=this[Oi].errorPenalty||15,Array.isArray(A)||(A=[A]),typeof t!="function")throw new cI("factory must be a function.");this[BI]=a.interceptors&&a.interceptors.BalancedPool&&Array.isArray(a.interceptors.BalancedPool)?a.interceptors.BalancedPool:[],this[i6]=t;for(let r of A)this.addUpstream(r);this._updateBalancedPoolStats()}addUpstream(A){let t=r6(A).origin;if(this[Oe].find(r=>r[Bd].origin===t&&r.closed!==!0&&r.destroyed!==!0))return this;let a=this[i6](t,Object.assign({},this[Oi]));this[EI](a),a.on("connect",()=>{a[DA]=Math.min(this[Pi],a[DA]+this[Wi])}),a.on("connectionError",()=>{a[DA]=Math.max(1,a[DA]-this[Wi]),this._updateBalancedPoolStats()}),a.on("disconnect",(...r)=>{let i=r[2];i&&i.code==="UND_ERR_SOCKET"&&(a[DA]=Math.max(1,a[DA]-this[Wi]),this._updateBalancedPoolStats())});for(let r of this[Oe])r[DA]=this[Pi];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){this[s6]=this[Oe].map(A=>A[DA]).reduce(n6,0)}removeUpstream(A){let t=r6(A).origin,a=this[Oe].find(r=>r[Bd].origin===t&&r.closed!==!0&&r.destroyed!==!0);return a&&this[QI](a),this}get upstreams(){return this[Oe].filter(A=>A.closed!==!0&&A.destroyed!==!0).map(A=>A[Bd].origin)}[mI](){if(this[Oe].length===0)throw new gI;if(!this[Oe].find(i=>!i[dr]&&i.closed!==!0&&i.destroyed!==!0)||this[Oe].map(i=>i[dr]).reduce((i,s)=>i&&s,!0))return;let a=0,r=this[Oe].findIndex(i=>!i[dr]);for(;a++<this[Oe].length;){this[s1]=(this[s1]+1)%this[Oe].length;let i=this[Oe][this[s1]];if(i[DA]>this[Oe][r][DA]&&!i[dr]&&(r=this[s1]),this[s1]===0&&(this[i1]=this[i1]-this[s6],this[i1]<=0&&(this[i1]=this[Pi])),i[DA]>=this[i1]&&!i[dr])return i}return this[i1]=this[Oe][r][DA],this[s1]=r,this[Oe][r]}};o6.exports=hd});var wd=E((Cb,g6)=>{"use strict";var{kConnected:p6,kSize:l6}=ie(),Id=class{constructor(A){this.value=A}deref(){return this.value[p6]===0&&this.value[l6]===0?void 0:this.value}},fd=class{constructor(A){this.finalizer=A}register(A,t){A.on("disconnect",()=>{A[p6]===0&&A[l6]===0&&this.finalizer(t)})}};g6.exports=function(){return{WeakRef:global.WeakRef||Id,FinalizationRegistry:global.FinalizationRegistry||fd}}});var pr=E((Bb,h6)=>{"use strict";var{InvalidArgumentError:Zi}=$(),{kClients:Vt,kRunning:c6,kClose:II,kDestroy:fI,kDispatch:wI,kInterceptors:yI}=ie(),DI=Ka(),RI=$1(),vI=sr(),NI=q(),bI=Ti(),{WeakRef:SI,FinalizationRegistry:FI}=wd()(),u6=Symbol("onConnect"),E6=Symbol("onDisconnect"),Q6=Symbol("onConnectionError"),kI=Symbol("maxRedirections"),m6=Symbol("onDrain"),C6=Symbol("factory"),B6=Symbol("finalizer"),yd=Symbol("options");function LI(e,A){return A&&A.connections===1?new vI(e,A):new RI(e,A)}var Dd=class extends DI{constructor({factory:A=LI,maxRedirections:t=0,connect:a,...r}={}){if(super(),typeof A!="function")throw new Zi("factory must be a function.");if(a!=null&&typeof a!="function"&&typeof a!="object")throw new Zi("connect must be a function or an object");if(!Number.isInteger(t)||t<0)throw new Zi("maxRedirections must be a positive number");a&&typeof a!="function"&&(a={...a}),this[yI]=r.interceptors&&r.interceptors.Agent&&Array.isArray(r.interceptors.Agent)?r.interceptors.Agent:[bI({maxRedirections:t})],this[yd]={...NI.deepClone(r),connect:a},this[yd].interceptors=r.interceptors?{...r.interceptors}:void 0,this[kI]=t,this[C6]=A,this[Vt]=new Map,this[B6]=new FI(s=>{let n=this[Vt].get(s);n!==void 0&&n.deref()===void 0&&this[Vt].delete(s)});let i=this;this[m6]=(s,n)=>{i.emit("drain",s,[i,...n])},this[u6]=(s,n)=>{i.emit("connect",s,[i,...n])},this[E6]=(s,n,o)=>{i.emit("disconnect",s,[i,...n],o)},this[Q6]=(s,n,o)=>{i.emit("connectionError",s,[i,...n],o)}}get[c6](){let A=0;for(let t of this[Vt].values()){let a=t.deref();a&&(A+=a[c6])}return A}[wI](A,t){let a;if(A.origin&&(typeof A.origin=="string"||A.origin instanceof URL))a=String(A.origin);else throw new Zi("opts.origin must be a non-empty string or URL.");let r=this[Vt].get(a),i=r?r.deref():null;return i||(i=this[C6](A.origin,this[yd]).on("drain",this[m6]).on("connect",this[u6]).on("disconnect",this[E6]).on("connectionError",this[Q6]),this[Vt].set(a,new SI(i)),this[B6].register(i,a)),i.dispatch(A,t)}async[II](){let A=[];for(let t of this[Vt].values()){let a=t.deref();a&&A.push(a.close())}await Promise.all(A)}async[fI](A){let t=[];for(let a of this[Vt].values()){let r=a.deref();r&&t.push(r.destroy(A))}await Promise.all(t)}};h6.exports=Dd});var N6=E((Ib,v6)=>{"use strict";var w6=require("assert"),{Readable:UI}=require("stream"),{RequestAbortedError:y6,NotSupportedError:TI,InvalidArgumentError:MI}=$(),ea=q(),{ReadableStreamFrom:VI,toUSVString:YI}=q(),Rd,oA=Symbol("kConsume"),ji=Symbol("kReading"),Yt=Symbol("kBody"),I6=Symbol("abort"),D6=Symbol("kContentType");v6.exports=class extends UI{constructor({resume:A,abort:t,contentType:a="",highWaterMark:r=64*1024}){super({autoDestroy:!0,read:A,highWaterMark:r}),this._readableState.dataEmitted=!1,this[I6]=t,this[oA]=null,this[Yt]=null,this[D6]=a,this[ji]=!1}destroy(A){return this.destroyed?this:(!A&&!this._readableState.endEmitted&&(A=new y6),A&&this[I6](),super.destroy(A))}emit(A,...t){return A==="data"?this._readableState.dataEmitted=!0:A==="error"&&(this._readableState.errorEmitted=!0),super.emit(A,...t)}on(A,...t){return(A==="data"||A==="readable")&&(this[ji]=!0),super.on(A,...t)}addListener(A,...t){return this.on(A,...t)}off(A,...t){let a=super.off(A,...t);return(A==="data"||A==="readable")&&(this[ji]=this.listenerCount("data")>0||this.listenerCount("readable")>0),a}removeListener(A,...t){return this.off(A,...t)}push(A){return this[oA]&&A!==null&&this.readableLength===0?(R6(this[oA],A),this[ji]?super.push(A):!0):super.push(A)}async text(){return Xi(this,"text")}async json(){return Xi(this,"json")}async blob(){return Xi(this,"blob")}async arrayBuffer(){return Xi(this,"arrayBuffer")}async formData(){throw new TI}get bodyUsed(){return ea.isDisturbed(this)}get body(){return this[Yt]||(this[Yt]=VI(this),this[oA]&&(this[Yt].getReader(),w6(this[Yt].locked))),this[Yt]}async dump(A){let t=A&&Number.isFinite(A.limit)?A.limit:262144,a=A&&A.signal,r=()=>{this.destroy()},i;if(a){if(typeof a!="object"||!("aborted"in a))throw new MI("signal must be an AbortSignal");ea.throwIfAborted(a),i=ea.addAbortListener(a,r)}try{for await(let s of this)if(ea.throwIfAborted(a),t-=Buffer.byteLength(s),t<0)return}catch{ea.throwIfAborted(a)}finally{typeof i=="function"?i():i&&i[Symbol.dispose]()}}};function JI(e){return e[Yt]&&e[Yt].locked===!0||e[oA]}function GI(e){return ea.isDisturbed(e)||JI(e)}async function Xi(e,A){if(GI(e))throw new TypeError("unusable");return w6(!e[oA]),new Promise((t,a)=>{e[oA]={type:A,stream:e,resolve:t,reject:a,length:0,body:[]},e.on("error",function(r){vd(this[oA],r)}).on("close",function(){this[oA].body!==null&&vd(this[oA],new y6)}),process.nextTick(xI,e[oA])})}function xI(e){if(e.body===null)return;let{_readableState:A}=e.stream;for(let t of A.buffer)R6(e,t);for(A.endEmitted?f6(this[oA]):e.stream.on("end",function(){f6(this[oA])}),e.stream.resume();e.stream.read()!=null;);}function f6(e){let{type:A,body:t,resolve:a,stream:r,length:i}=e;try{if(A==="text")a(YI(Buffer.concat(t)));else if(A==="json")a(JSON.parse(Buffer.concat(t)));else if(A==="arrayBuffer"){let s=new Uint8Array(i),n=0;for(let o of t)s.set(o,n),n+=o.byteLength;a(s)}else A==="blob"&&(Rd||(Rd=require("buffer").Blob),a(new Rd(t,{type:r[D6]})));vd(e)}catch(s){r.destroy(s)}}function R6(e,A){e.length+=A.length,e.body.push(A)}function vd(e,A){e.body!==null&&(A?e.reject(A):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}});var Nd=E((fb,S6)=>{var _I=require("assert"),{ResponseStatusCodeError:zi}=$(),{toUSVString:b6}=q();async function qI({callback:e,body:A,contentType:t,statusCode:a,statusMessage:r,headers:i}){_I(A);let s=[],n=0;for await(let o of A)if(s.push(o),n+=o.length,n>128*1024){s=null;break}if(a===204||!t||!s){process.nextTick(e,new zi(`Response status code ${a}${r?`: ${r}`:""}`,a,i));return}try{if(t.startsWith("application/json")){let o=JSON.parse(b6(Buffer.concat(s)));process.nextTick(e,new zi(`Response status code ${a}${r?`: ${r}`:""}`,a,i,o));return}if(t.startsWith("text/")){let o=b6(Buffer.concat(s));process.nextTick(e,new zi(`Response status code ${a}${r?`: ${r}`:""}`,a,i,o));return}}catch{}process.nextTick(e,new zi(`Response status code ${a}${r?`: ${r}`:""}`,a,i))}S6.exports={getResolveErrorBodyCallback:qI}});var ta=E((wb,k6)=>{var{addAbortListener:HI}=q(),{RequestAbortedError:OI}=$(),Aa=Symbol("kListener"),Jt=Symbol("kSignal");function F6(e){e.abort?e.abort():e.onError(new OI)}function PI(e,A){if(e[Jt]=null,e[Aa]=null,!!A){if(A.aborted){F6(e);return}e[Jt]=A,e[Aa]=()=>{F6(e)},HI(e[Jt],e[Aa])}}function WI(e){e[Jt]&&("removeEventListener"in e[Jt]?e[Jt].removeEventListener("abort",e[Aa]):e[Jt].removeListener("abort",e[Aa]),e[Jt]=null,e[Aa]=null)}k6.exports={addSignal:PI,removeSignal:WI}});var M6=E((yb,T6)=>{"use strict";var ZI=N6(),{InvalidArgumentError:aa,RequestAbortedError:jI}=$(),KA=q(),{getResolveErrorBodyCallback:XI}=Nd(),{AsyncResource:zI}=require("async_hooks"),{addSignal:KI,removeSignal:L6}=ta(),bd=class extends zI{constructor(A,t){if(!A||typeof A!="object")throw new aa("invalid opts");let{signal:a,method:r,opaque:i,body:s,onInfo:n,responseHeaders:o,throwOnError:d,highWaterMark:l}=A;try{if(typeof t!="function")throw new aa("invalid callback");if(l&&(typeof l!="number"||l<0))throw new aa("invalid highWaterMark");if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new aa("signal must be an EventEmitter or EventTarget");if(r==="CONNECT")throw new aa("invalid method");if(n&&typeof n!="function")throw new aa("invalid onInfo callback");super("UNDICI_REQUEST")}catch(p){throw KA.isStream(s)&&KA.destroy(s.on("error",KA.nop),p),p}this.responseHeaders=o||null,this.opaque=i||null,this.callback=t,this.res=null,this.abort=null,this.body=s,this.trailers={},this.context=null,this.onInfo=n||null,this.throwOnError=d,this.highWaterMark=l,KA.isStream(s)&&s.on("error",p=>{this.onError(p)}),KI(this,a)}onConnect(A,t){if(!this.callback)throw new jI;this.abort=A,this.context=t}onHeaders(A,t,a,r){let{callback:i,opaque:s,abort:n,context:o,responseHeaders:d,highWaterMark:l}=this,p=d==="raw"?KA.parseRawHeaders(t):KA.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:p});return}let c=(d==="raw"?KA.parseHeaders(t):p)["content-type"],u=new ZI({resume:a,abort:n,contentType:c,highWaterMark:l});this.callback=null,this.res=u,i!==null&&(this.throwOnError&&A>=400?this.runInAsyncScope(XI,null,{callback:i,body:u,contentType:c,statusCode:A,statusMessage:r,headers:p}):this.runInAsyncScope(i,null,null,{statusCode:A,headers:p,trailers:this.trailers,opaque:s,body:u,context:o}))}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;L6(this),KA.parseHeaders(A,this.trailers),t.push(null)}onError(A){let{res:t,callback:a,body:r,opaque:i}=this;L6(this),a&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(a,null,A,{opaque:i})})),t&&(this.res=null,queueMicrotask(()=>{KA.destroy(t,A)})),r&&(this.body=null,KA.destroy(r,A))}};function U6(e,A){if(A===void 0)return new Promise((t,a)=>{U6.call(this,e,(r,i)=>r?a(r):t(i))});try{this.dispatch(e,new bd(e,A))}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}T6.exports=U6});var G6=E((Db,J6)=>{"use strict";var{finished:$I,PassThrough:e7}=require("stream"),{InvalidArgumentError:ra,InvalidReturnValueError:A7,RequestAbortedError:t7}=$(),TA=q(),{getResolveErrorBodyCallback:a7}=Nd(),{AsyncResource:r7}=require("async_hooks"),{addSignal:i7,removeSignal:V6}=ta(),Sd=class extends r7{constructor(A,t,a){if(!A||typeof A!="object")throw new ra("invalid opts");let{signal:r,method:i,opaque:s,body:n,onInfo:o,responseHeaders:d,throwOnError:l}=A;try{if(typeof a!="function")throw new ra("invalid callback");if(typeof t!="function")throw new ra("invalid factory");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new ra("signal must be an EventEmitter or EventTarget");if(i==="CONNECT")throw new ra("invalid method");if(o&&typeof o!="function")throw new ra("invalid onInfo callback");super("UNDICI_STREAM")}catch(p){throw TA.isStream(n)&&TA.destroy(n.on("error",TA.nop),p),p}this.responseHeaders=d||null,this.opaque=s||null,this.factory=t,this.callback=a,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=n,this.onInfo=o||null,this.throwOnError=l||!1,TA.isStream(n)&&n.on("error",p=>{this.onError(p)}),i7(this,r)}onConnect(A,t){if(!this.callback)throw new t7;this.abort=A,this.context=t}onHeaders(A,t,a,r){let{factory:i,opaque:s,context:n,callback:o,responseHeaders:d}=this,l=d==="raw"?TA.parseRawHeaders(t):TA.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:l});return}this.factory=null;let p;if(this.throwOnError&&A>=400){let u=(d==="raw"?TA.parseHeaders(t):l)["content-type"];p=new e7,this.callback=null,this.runInAsyncScope(a7,null,{callback:o,body:p,contentType:u,statusCode:A,statusMessage:r,headers:l})}else{if(p=this.runInAsyncScope(i,null,{statusCode:A,headers:l,opaque:s,context:n}),!p||typeof p.write!="function"||typeof p.end!="function"||typeof p.on!="function")throw new A7("expected Writable");$I(p,{readable:!1},c=>{let{callback:u,res:m,opaque:Q,trailers:C,abort:B}=this;this.res=null,(c||!m.readable)&&TA.destroy(m,c),this.callback=null,this.runInAsyncScope(u,null,c||null,{opaque:Q,trailers:C}),c&&B()})}return p.on("drain",a),this.res=p,(p.writableNeedDrain!==void 0?p.writableNeedDrain:p._writableState&&p._writableState.needDrain)!==!0}onData(A){let{res:t}=this;return t.write(A)}onComplete(A){let{res:t}=this;V6(this),this.trailers=TA.parseHeaders(A),t.end()}onError(A){let{res:t,callback:a,opaque:r,body:i}=this;V6(this),this.factory=null,t?(this.res=null,TA.destroy(t,A)):a&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(a,null,A,{opaque:r})})),i&&(this.body=null,TA.destroy(i,A))}};function Y6(e,A,t){if(t===void 0)return new Promise((a,r)=>{Y6.call(this,e,A,(i,s)=>i?r(i):a(s))});try{this.dispatch(e,new Sd(e,A,t))}catch(a){if(typeof t!="function")throw a;let r=e&&e.opaque;queueMicrotask(()=>t(a,{opaque:r}))}}J6.exports=Y6});var q6=E((Rb,_6)=>{"use strict";var{Readable:x6,Duplex:s7,PassThrough:n7}=require("stream"),{InvalidArgumentError:lr,InvalidReturnValueError:o7,RequestAbortedError:Ki}=$(),RA=q(),{AsyncResource:d7}=require("async_hooks"),{addSignal:p7,removeSignal:l7}=ta(),g7=require("assert"),ia=Symbol("resume"),Fd=class extends x6{constructor(){super({autoDestroy:!0}),this[ia]=null}_read(){let{[ia]:A}=this;A&&(this[ia]=null,A())}_destroy(A,t){this._read(),t(A)}},kd=class extends x6{constructor(A){super({autoDestroy:!0}),this[ia]=A}_read(){this[ia]()}_destroy(A,t){!A&&!this._readableState.endEmitted&&(A=new Ki),t(A)}},Ld=class extends d7{constructor(A,t){if(!A||typeof A!="object")throw new lr("invalid opts");if(typeof t!="function")throw new lr("invalid handler");let{signal:a,method:r,opaque:i,onInfo:s,responseHeaders:n}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new lr("signal must be an EventEmitter or EventTarget");if(r==="CONNECT")throw new lr("invalid method");if(s&&typeof s!="function")throw new lr("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=i||null,this.responseHeaders=n||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=s||null,this.req=new Fd().on("error",RA.nop),this.ret=new s7({readableObjectMode:A.objectMode,autoDestroy:!0,read:()=>{let{body:o}=this;o&&o.resume&&o.resume()},write:(o,d,l)=>{let{req:p}=this;p.push(o,d)||p._readableState.destroyed?l():p[ia]=l},destroy:(o,d)=>{let{body:l,req:p,res:g,ret:c,abort:u}=this;!o&&!c._readableState.endEmitted&&(o=new Ki),u&&o&&u(),RA.destroy(l,o),RA.destroy(p,o),RA.destroy(g,o),l7(this),d(o)}}).on("prefinish",()=>{let{req:o}=this;o.push(null)}),this.res=null,p7(this,a)}onConnect(A,t){let{ret:a,res:r}=this;if(g7(!r,"pipeline cannot be retried"),a.destroyed)throw new Ki;this.abort=A,this.context=t}onHeaders(A,t,a){let{opaque:r,handler:i,context:s}=this;if(A<200){if(this.onInfo){let o=this.responseHeaders==="raw"?RA.parseRawHeaders(t):RA.parseHeaders(t);this.onInfo({statusCode:A,headers:o})}return}this.res=new kd(a);let n;try{this.handler=null;let o=this.responseHeaders==="raw"?RA.parseRawHeaders(t):RA.parseHeaders(t);n=this.runInAsyncScope(i,null,{statusCode:A,headers:o,opaque:r,body:this.res,context:s})}catch(o){throw this.res.on("error",RA.nop),o}if(!n||typeof n.on!="function")throw new o7("expected Readable");n.on("data",o=>{let{ret:d,body:l}=this;!d.push(o)&&l.pause&&l.pause()}).on("error",o=>{let{ret:d}=this;RA.destroy(d,o)}).on("end",()=>{let{ret:o}=this;o.push(null)}).on("close",()=>{let{ret:o}=this;o._readableState.ended||RA.destroy(o,new Ki)}),this.body=n}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;t.push(null)}onError(A){let{ret:t}=this;this.handler=null,RA.destroy(t,A)}};function c7(e,A){try{let t=new Ld(e,A);return this.dispatch({...e,body:t.req},t),t.ret}catch(t){return new n7().destroy(t)}}_6.exports=c7});var Z6=E((vb,W6)=>{"use strict";var{InvalidArgumentError:Ud,RequestAbortedError:u7,SocketError:E7}=$(),{AsyncResource:Q7}=require("async_hooks"),H6=q(),{addSignal:m7,removeSignal:O6}=ta(),C7=require("assert"),Td=class extends Q7{constructor(A,t){if(!A||typeof A!="object")throw new Ud("invalid opts");if(typeof t!="function")throw new Ud("invalid callback");let{signal:a,opaque:r,responseHeaders:i}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Ud("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=i||null,this.opaque=r||null,this.callback=t,this.abort=null,this.context=null,m7(this,a)}onConnect(A,t){if(!this.callback)throw new u7;this.abort=A,this.context=null}onHeaders(){throw new E7("bad upgrade",null)}onUpgrade(A,t,a){let{callback:r,opaque:i,context:s}=this;C7.strictEqual(A,101),O6(this),this.callback=null;let n=this.responseHeaders==="raw"?H6.parseRawHeaders(t):H6.parseHeaders(t);this.runInAsyncScope(r,null,null,{headers:n,socket:a,opaque:i,context:s})}onError(A){let{callback:t,opaque:a}=this;O6(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:a})}))}};function P6(e,A){if(A===void 0)return new Promise((t,a)=>{P6.call(this,e,(r,i)=>r?a(r):t(i))});try{let t=new Td(e,A);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},t)}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}W6.exports=P6});var $6=E((Nb,K6)=>{"use strict";var{InvalidArgumentError:Md,RequestAbortedError:B7,SocketError:h7}=$(),{AsyncResource:I7}=require("async_hooks"),j6=q(),{addSignal:f7,removeSignal:X6}=ta(),Vd=class extends I7{constructor(A,t){if(!A||typeof A!="object")throw new Md("invalid opts");if(typeof t!="function")throw new Md("invalid callback");let{signal:a,opaque:r,responseHeaders:i}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Md("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=r||null,this.responseHeaders=i||null,this.callback=t,this.abort=null,f7(this,a)}onConnect(A,t){if(!this.callback)throw new B7;this.abort=A,this.context=t}onHeaders(){throw new h7("bad connect",null)}onUpgrade(A,t,a){let{callback:r,opaque:i,context:s}=this;X6(this),this.callback=null;let n=this.responseHeaders==="raw"?j6.parseRawHeaders(t):j6.parseHeaders(t);this.runInAsyncScope(r,null,null,{statusCode:A,headers:n,socket:a,opaque:i,context:s})}onError(A){let{callback:t,opaque:a}=this;X6(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:a})}))}};function z6(e,A){if(A===void 0)return new Promise((t,a)=>{z6.call(this,e,(r,i)=>r?a(r):t(i))});try{let t=new Vd(e,A);this.dispatch({...e,method:"CONNECT"},t)}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}K6.exports=z6});var ec=E((bb,sa)=>{"use strict";sa.exports.request=M6();sa.exports.stream=G6();sa.exports.pipeline=q6();sa.exports.upgrade=Z6();sa.exports.connect=$6()});var Jd=E((Sb,Ac)=>{"use strict";var{UndiciError:w7}=$(),Yd=class e extends w7{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=A||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};Ac.exports={MockNotMatchedError:Yd}});var na=E((Fb,tc)=>{"use strict";tc.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var gr=E((kb,uc)=>{"use strict";var{MockNotMatchedError:n1}=Jd(),{kDispatches:$i,kMockAgent:y7,kOriginalDispatch:D7,kOrigin:R7,kGetNetConnect:v7}=na(),{buildURL:N7,nop:b7}=q(),{STATUS_CODES:S7}=require("http"),{types:{isPromise:F7}}=require("util");function Ct(e,A){return typeof e=="string"?e===A:e instanceof RegExp?e.test(A):typeof e=="function"?e(A)===!0:!1}function rc(e){return Object.fromEntries(Object.entries(e).map(([A,t])=>[A.toLocaleLowerCase(),t]))}function ic(e,A){if(Array.isArray(e)){for(let t=0;t<e.length;t+=2)if(e[t].toLocaleLowerCase()===A.toLocaleLowerCase())return e[t+1];return}else return typeof e.get=="function"?e.get(A):rc(e)[A.toLocaleLowerCase()]}function sc(e){let A=e.slice(),t=[];for(let a=0;a<A.length;a+=2)t.push([A[a],A[a+1]]);return Object.fromEntries(t)}function nc(e,A){if(typeof e.headers=="function")return Array.isArray(A)&&(A=sc(A)),e.headers(A?rc(A):{});if(typeof e.headers>"u")return!0;if(typeof A!="object"||typeof e.headers!="object")return!1;for(let[t,a]of Object.entries(e.headers)){let r=ic(A,t);if(!Ct(a,r))return!1}return!0}function ac(e){if(typeof e!="string")return e;let A=e.split("?");if(A.length!==2)return e;let t=new URLSearchParams(A.pop());return t.sort(),[...A,t.toString()].join("?")}function k7(e,{path:A,method:t,body:a,headers:r}){let i=Ct(e.path,A),s=Ct(e.method,t),n=typeof e.body<"u"?Ct(e.body,a):!0,o=nc(e,r);return i&&s&&n&&o}function oc(e){return Buffer.isBuffer(e)?e:typeof e=="object"?JSON.stringify(e):e.toString()}function dc(e,A){let t=A.query?N7(A.path,A.query):A.path,a=typeof t=="string"?ac(t):t,r=e.filter(({consumed:i})=>!i).filter(({path:i})=>Ct(ac(i),a));if(r.length===0)throw new n1(`Mock dispatch not matched for path '${a}'`);if(r=r.filter(({method:i})=>Ct(i,A.method)),r.length===0)throw new n1(`Mock dispatch not matched for method '${A.method}'`);if(r=r.filter(({body:i})=>typeof i<"u"?Ct(i,A.body):!0),r.length===0)throw new n1(`Mock dispatch not matched for body '${A.body}'`);if(r=r.filter(i=>nc(i,A.headers)),r.length===0)throw new n1(`Mock dispatch not matched for headers '${typeof A.headers=="object"?JSON.stringify(A.headers):A.headers}'`);return r[0]}function L7(e,A,t){let a={timesInvoked:0,times:1,persist:!1,consumed:!1},r=typeof t=="function"?{callback:t}:{...t},i={...a,...A,pending:!0,data:{error:null,...r}};return e.push(i),i}function Gd(e,A){let t=e.findIndex(a=>a.consumed?k7(a,A):!1);t!==-1&&e.splice(t,1)}function pc(e){let{path:A,method:t,body:a,headers:r,query:i}=e;return{path:A,method:t,body:a,headers:r,query:i}}function xd(e){return Object.entries(e).reduce((A,[t,a])=>[...A,Buffer.from(`${t}`),Array.isArray(a)?a.map(r=>Buffer.from(`${r}`)):Buffer.from(`${a}`)],[])}function lc(e){return S7[e]||"unknown"}async function U7(e){let A=[];for await(let t of e)A.push(t);return Buffer.concat(A).toString("utf8")}function gc(e,A){let t=pc(e),a=dc(this[$i],t);a.timesInvoked++,a.data.callback&&(a.data={...a.data,...a.data.callback(e)});let{data:{statusCode:r,data:i,headers:s,trailers:n,error:o},delay:d,persist:l}=a,{timesInvoked:p,times:g}=a;if(a.consumed=!l&&p>=g,a.pending=p<g,o!==null)return Gd(this[$i],t),A.onError(o),!0;typeof d=="number"&&d>0?setTimeout(()=>{c(this[$i])},d):c(this[$i]);function c(m,Q=i){let C=Array.isArray(e.headers)?sc(e.headers):e.headers,B=typeof Q=="function"?Q({...e,headers:C}):Q;if(F7(B)){B.then(b=>c(m,b));return}let w=oc(B),I=xd(s),y=xd(n);A.abort=b7,A.onHeaders(r,I,u,lc(r)),A.onData(Buffer.from(w)),A.onComplete(y),Gd(m,t)}function u(){}return!0}function T7(){let e=this[y7],A=this[R7],t=this[D7];return function(r,i){if(e.isMockActive)try{gc.call(this,r,i)}catch(s){if(s instanceof n1){let n=e[v7]();if(n===!1)throw new n1(`${s.message}: subsequent request to origin ${A} was not allowed (net.connect disabled)`);if(cc(n,A))t.call(this,r,i);else throw new n1(`${s.message}: subsequent request to origin ${A} was not allowed (net.connect is not enabled for this origin)`)}else throw s}else t.call(this,r,i)}}function cc(e,A){let t=new URL(A);return e===!0?!0:!!(Array.isArray(e)&&e.some(a=>Ct(a,t.host)))}function M7(e){if(e){let{agent:A,...t}=e;return t}}uc.exports={getResponseData:oc,getMockDispatch:dc,addMockDispatch:L7,deleteMockDispatch:Gd,buildKey:pc,generateKeyValues:xd,matchValue:Ct,getResponse:U7,getStatusText:lc,mockDispatch:gc,buildMockDispatch:T7,checkNetConnect:cc,buildMockOptions:M7,getHeaderByName:ic}});var jd=E((Lb,Zd)=>{"use strict";var{getResponseData:V7,buildKey:Y7,addMockDispatch:qd}=gr(),{kDispatches:es,kDispatchKey:As,kDefaultHeaders:Hd,kDefaultTrailers:Od,kContentLength:Pd,kMockDispatch:ts}=na(),{InvalidArgumentError:MA}=$(),{buildURL:J7}=q(),oa=class{constructor(A){this[ts]=A}delay(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new MA("waitInMs must be a valid integer > 0");return this[ts].delay=A,this}persist(){return this[ts].persist=!0,this}times(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new MA("repeatTimes must be a valid integer > 0");return this[ts].times=A,this}},Wd=class{constructor(A,t){if(typeof A!="object")throw new MA("opts must be an object");if(typeof A.path>"u")throw new MA("opts.path must be defined");if(typeof A.method>"u"&&(A.method="GET"),typeof A.path=="string")if(A.query)A.path=J7(A.path,A.query);else{let a=new URL(A.path,"data://");A.path=a.pathname+a.search}typeof A.method=="string"&&(A.method=A.method.toUpperCase()),this[As]=Y7(A),this[es]=t,this[Hd]={},this[Od]={},this[Pd]=!1}createMockScopeDispatchData(A,t,a={}){let r=V7(t),i=this[Pd]?{"content-length":r.length}:{},s={...this[Hd],...i,...a.headers},n={...this[Od],...a.trailers};return{statusCode:A,data:t,headers:s,trailers:n}}validateReplyParameters(A,t,a){if(typeof A>"u")throw new MA("statusCode must be defined");if(typeof t>"u")throw new MA("data must be defined");if(typeof a!="object")throw new MA("responseOptions must be an object")}reply(A){if(typeof A=="function"){let n=d=>{let l=A(d);if(typeof l!="object")throw new MA("reply options callback must return an object");let{statusCode:p,data:g="",responseOptions:c={}}=l;return this.validateReplyParameters(p,g,c),{...this.createMockScopeDispatchData(p,g,c)}},o=qd(this[es],this[As],n);return new oa(o)}let[t,a="",r={}]=[...arguments];this.validateReplyParameters(t,a,r);let i=this.createMockScopeDispatchData(t,a,r),s=qd(this[es],this[As],i);return new oa(s)}replyWithError(A){if(typeof A>"u")throw new MA("error must be defined");let t=qd(this[es],this[As],{error:A});return new oa(t)}defaultReplyHeaders(A){if(typeof A>"u")throw new MA("headers must be defined");return this[Hd]=A,this}defaultReplyTrailers(A){if(typeof A>"u")throw new MA("trailers must be defined");return this[Od]=A,this}replyContentLength(){return this[Pd]=!0,this}};Zd.exports.MockInterceptor=Wd;Zd.exports.MockScope=oa});var Kd=E((Ub,Ic)=>{"use strict";var{promisify:G7}=require("util"),x7=sr(),{buildMockDispatch:_7}=gr(),{kDispatches:Ec,kMockAgent:Qc,kClose:mc,kOriginalClose:Cc,kOrigin:Bc,kOriginalDispatch:q7,kConnected:Xd}=na(),{MockInterceptor:H7}=jd(),hc=ie(),{InvalidArgumentError:O7}=$(),zd=class extends x7{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new O7("Argument opts.agent must implement Agent");this[Qc]=t.agent,this[Bc]=A,this[Ec]=[],this[Xd]=1,this[q7]=this.dispatch,this[Cc]=this.close.bind(this),this.dispatch=_7.call(this),this.close=this[mc]}get[hc.kConnected](){return this[Xd]}intercept(A){return new H7(A,this[Ec])}async[mc](){await G7(this[Cc])(),this[Xd]=0,this[Qc][hc.kClients].delete(this[Bc])}};Ic.exports=zd});var Ap=E((Tb,Nc)=>{"use strict";var{promisify:P7}=require("util"),W7=$1(),{buildMockDispatch:Z7}=gr(),{kDispatches:fc,kMockAgent:wc,kClose:yc,kOriginalClose:Dc,kOrigin:Rc,kOriginalDispatch:j7,kConnected:$d}=na(),{MockInterceptor:X7}=jd(),vc=ie(),{InvalidArgumentError:z7}=$(),ep=class extends W7{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new z7("Argument opts.agent must implement Agent");this[wc]=t.agent,this[Rc]=A,this[fc]=[],this[$d]=1,this[j7]=this.dispatch,this[Dc]=this.close.bind(this),this.dispatch=Z7.call(this),this.close=this[yc]}get[vc.kConnected](){return this[$d]}intercept(A){return new X7(A,this[fc])}async[yc](){await P7(this[Dc])(),this[$d]=0,this[wc][vc.kClients].delete(this[Rc])}};Nc.exports=ep});var Sc=E((Vb,bc)=>{"use strict";var K7={pronoun:"it",is:"is",was:"was",this:"this"},$7={pronoun:"they",is:"are",was:"were",this:"these"};bc.exports=class{constructor(A,t){this.singular=A,this.plural=t}pluralize(A){let t=A===1,a=t?K7:$7,r=t?this.singular:this.plural;return{...a,count:A,noun:r}}}});var kc=E((Jb,Fc)=>{"use strict";var{Transform:ef}=require("stream"),{Console:Af}=require("console");Fc.exports=class{constructor({disableColors:A}={}){this.transform=new ef({transform(t,a,r){r(null,t)}}),this.logger=new Af({stdout:this.transform,inspectOptions:{colors:!A&&!process.env.CI}})}format(A){let t=A.map(({method:a,path:r,data:{statusCode:i},persist:s,times:n,timesInvoked:o,origin:d})=>({Method:a,Origin:d,Path:r,"Status code":i,Persistent:s?"\u2705":"\u274C",Invocations:o,Remaining:s?1/0:n-o}));return this.logger.table(t),this.transform.read().toString()}}});var Mc=E((Gb,Tc)=>{"use strict";var{kClients:o1}=ie(),tf=pr(),{kAgent:tp,kMockAgentSet:as,kMockAgentGet:Lc,kDispatches:ap,kIsMockActive:rs,kNetConnect:d1,kGetNetConnect:af,kOptions:is,kFactory:ss}=na(),rf=Kd(),sf=Ap(),{matchValue:nf,buildMockOptions:of}=gr(),{InvalidArgumentError:Uc,UndiciError:df}=$(),pf=Fi(),lf=Sc(),gf=kc(),rp=class{constructor(A){this.value=A}deref(){return this.value}},ip=class extends pf{constructor(A){if(super(A),this[d1]=!0,this[rs]=!0,A&&A.agent&&typeof A.agent.dispatch!="function")throw new Uc("Argument opts.agent must implement Agent");let t=A&&A.agent?A.agent:new tf(A);this[tp]=t,this[o1]=t[o1],this[is]=of(A)}get(A){let t=this[Lc](A);return t||(t=this[ss](A),this[as](A,t)),t}dispatch(A,t){return this.get(A.origin),this[tp].dispatch(A,t)}async close(){await this[tp].close(),this[o1].clear()}deactivate(){this[rs]=!1}activate(){this[rs]=!0}enableNetConnect(A){if(typeof A=="string"||typeof A=="function"||A instanceof RegExp)Array.isArray(this[d1])?this[d1].push(A):this[d1]=[A];else if(typeof A>"u")this[d1]=!0;else throw new Uc("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[d1]=!1}get isMockActive(){return this[rs]}[as](A,t){this[o1].set(A,new rp(t))}[ss](A){let t=Object.assign({agent:this},this[is]);return this[is]&&this[is].connections===1?new rf(A,t):new sf(A,t)}[Lc](A){let t=this[o1].get(A);if(t)return t.deref();if(typeof A!="string"){let a=this[ss]("http://localhost:9999");return this[as](A,a),a}for(let[a,r]of Array.from(this[o1])){let i=r.deref();if(i&&typeof a!="string"&&nf(a,A)){let s=this[ss](A);return this[as](A,s),s[ap]=i[ap],s}}}[af](){return this[d1]}pendingInterceptors(){let A=this[o1];return Array.from(A.entries()).flatMap(([t,a])=>a.deref()[ap].map(r=>({...r,origin:t}))).filter(({pending:t})=>t)}assertNoPendingInterceptors({pendingInterceptorsFormatter:A=new gf}={}){let t=this.pendingInterceptors();if(t.length===0)return;let a=new lf("interceptor","interceptors").pluralize(t.length);throw new df(` ${a.count} ${a.noun} ${a.is} pending: ${A.format(t)} -`.trim())}};jc.exports=Ep});var Au=E((bS,eu)=>{"use strict";var{kProxy:Tf,kClose:Mf,kDestroy:Vf,kInterceptors:Yf}=re(),{URL:Xc}=require("url"),zc=Er(),Jf=aa(),Gf=ar(),{InvalidArgumentError:Br,RequestAbortedError:xf}=$(),Kc=rr(),mr=Symbol("proxy agent"),us=Symbol("proxy client"),Es=Symbol("proxy headers"),Qp=Symbol("request tls settings"),qf=Symbol("proxy tls settings"),$c=Symbol("connect endpoint function");function Hf(e){return e==="https:"?443:80}function Of(e){if(typeof e=="string"&&(e={uri:e}),!e||!e.uri)throw new Br("Proxy opts.uri is mandatory");return{uri:e.uri,protocol:e.protocol||"https"}}function Pf(e,A){return new Jf(e,A)}var Cp=class extends Gf{constructor(A){if(super(A),this[Tf]=Of(A),this[mr]=new zc(A),this[Yf]=A.interceptors&&A.interceptors.ProxyAgent&&Array.isArray(A.interceptors.ProxyAgent)?A.interceptors.ProxyAgent:[],typeof A=="string"&&(A={uri:A}),!A||!A.uri)throw new Br("Proxy opts.uri is mandatory");let{clientFactory:t=Pf}=A;if(typeof t!="function")throw new Br("Proxy opts.clientFactory must be a function.");if(this[Qp]=A.requestTls,this[qf]=A.proxyTls,this[Es]=A.headers||{},A.auth&&A.token)throw new Br("opts.auth cannot be used in combination with opts.token");A.auth?this[Es]["proxy-authorization"]=`Basic ${A.auth}`:A.token&&(this[Es]["proxy-authorization"]=A.token);let a=new Xc(A.uri),{origin:r,port:i,host:s}=a,n=Kc({...A.proxyTls});this[$c]=Kc({...A.requestTls}),this[us]=t(a,{connect:n}),this[mr]=new zc({...A,connect:async(o,d)=>{let l=o.host;o.port||(l+=`:${Hf(o.protocol)}`);try{let{socket:p,statusCode:g}=await this[us].connect({origin:r,port:i,path:l,signal:o.signal,headers:{...this[Es],host:s}});if(g!==200&&(p.on("error",()=>{}).destroy(),d(new xf("Proxy response !== 200 when HTTP Tunneling"))),o.protocol!=="https:"){d(null,p);return}let c;this[Qp]?c=this[Qp].servername:c=o.servername,this[$c]({...o,servername:c,httpSocket:p},d)}catch(p){d(p)}}})}dispatch(A,t){let{host:a}=new Xc(A.origin),r=Wf(A.headers);return jf(r),this[mr].dispatch({...A,headers:{...r,host:a}},t)}async[Mf](){await this[mr].close(),await this[us].close()}async[Vf](){await this[mr].destroy(),await this[us].destroy()}};function Wf(e){if(Array.isArray(e)){let A={};for(let t=0;t<e.length;t+=2)A[e[t]]=e[t+1];return A}return e}function jf(e){if(e&&Object.keys(e).find(t=>t.toLowerCase()==="proxy-authorization"))throw new Br("Proxy-Authorization should be sent in ProxyAgent constructor")}eu.exports=Cp});var ca=E((SS,iu)=>{"use strict";var tu=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:Zf}=$(),Xf=Er();ru()===void 0&&au(new Xf);function au(e){if(!e||typeof e.dispatch!="function")throw new Zf("Argument agent must implement Agent");Object.defineProperty(globalThis,tu,{value:e,writable:!0,enumerable:!1,configurable:!1})}function ru(){return globalThis[tu]}iu.exports={setGlobalDispatcher:au,getGlobalDispatcher:ru}});var nu=E((kS,su)=>{"use strict";su.exports=class{constructor(A){this.handler=A}onConnect(...A){return this.handler.onConnect(...A)}onError(...A){return this.handler.onError(...A)}onUpgrade(...A){return this.handler.onUpgrade(...A)}onHeaders(...A){return this.handler.onHeaders(...A)}onData(...A){return this.handler.onData(...A)}onComplete(...A){return this.handler.onComplete(...A)}onBodySent(...A){return this.handler.onBodySent(...A)}}});var Q1=E((LS,lu)=>{"use strict";var{kHeadersList:Ze}=re(),{kGuard:E1}=Et(),{kEnumerableProperty:tt}=q(),{makeIterator:mp,isValidHeaderName:hr,isValidHeaderValue:ou}=fA(),{webidl:Y}=Ge(),zf=require("assert"),Xe=Symbol("headers map"),ze=Symbol("headers map sorted");function du(e){let A=e.length;for(;/[\r\n\t ]/.test(e.charAt(--A)););return e.slice(0,A+1).replace(/^[\r\n\t ]+/,"")}function pu(e,A){if(Array.isArray(A))for(let t of A){if(t.length!==2)throw Y.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${t.length}.`});e.append(t[0],t[1])}else if(typeof A=="object"&&A!==null)for(let[t,a]of Object.entries(A))e.append(t,a);else throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}var Qs=class e{cookies=null;constructor(A){A instanceof e?(this[Xe]=new Map(A[Xe]),this[ze]=A[ze],this.cookies=A.cookies):(this[Xe]=new Map(A),this[ze]=null)}contains(A){return A=A.toLowerCase(),this[Xe].has(A)}clear(){this[Xe].clear(),this[ze]=null,this.cookies=null}append(A,t){this[ze]=null;let a=A.toLowerCase(),r=this[Xe].get(a);if(r){let i=a==="cookie"?"; ":", ";this[Xe].set(a,{name:r.name,value:`${r.value}${i}${t}`})}else this[Xe].set(a,{name:A,value:t});a==="set-cookie"&&(this.cookies??=[],this.cookies.push(t))}set(A,t){this[ze]=null;let a=A.toLowerCase();return a==="set-cookie"&&(this.cookies=[t]),this[Xe].set(a,{name:A,value:t})}delete(A){return this[ze]=null,A=A.toLowerCase(),A==="set-cookie"&&(this.cookies=null),this[Xe].delete(A)}get(A){return this.contains(A)?this[Xe].get(A.toLowerCase())?.value??null:null}*[Symbol.iterator](){for(let[A,{value:t}]of this[Xe])yield[A,t]}get entries(){let A={};if(this[Xe].size)for(let{name:t,value:a}of this[Xe].values())A[t]=a;return A}},ua=class e{constructor(A=void 0){this[Ze]=new Qs,this[E1]="none",A!==void 0&&(A=Y.converters.HeadersInit(A),pu(this,A))}append(A,t){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,2,{header:"Headers.append"}),A=Y.converters.ByteString(A),t=Y.converters.ByteString(t),t=du(t),hr(A)){if(!ou(t))throw Y.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.append",value:A,type:"header name"});if(this[E1]==="immutable")throw new TypeError("immutable");return this[E1],this[Ze].append(A,t)}delete(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.delete"}),A=Y.converters.ByteString(A),!hr(A))throw Y.errors.invalidArgument({prefix:"Headers.delete",value:A,type:"header name"});if(this[E1]==="immutable")throw new TypeError("immutable");if(this[E1],!!this[Ze].contains(A))return this[Ze].delete(A)}get(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.get"}),A=Y.converters.ByteString(A),!hr(A))throw Y.errors.invalidArgument({prefix:"Headers.get",value:A,type:"header name"});return this[Ze].get(A)}has(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.has"}),A=Y.converters.ByteString(A),!hr(A))throw Y.errors.invalidArgument({prefix:"Headers.has",value:A,type:"header name"});return this[Ze].contains(A)}set(A,t){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,2,{header:"Headers.set"}),A=Y.converters.ByteString(A),t=Y.converters.ByteString(t),t=du(t),hr(A)){if(!ou(t))throw Y.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.set",value:A,type:"header name"});if(this[E1]==="immutable")throw new TypeError("immutable");return this[E1],this[Ze].set(A,t)}getSetCookie(){Y.brandCheck(this,e);let A=this[Ze].cookies;return A?[...A]:[]}get[ze](){if(this[Ze][ze])return this[Ze][ze];let A=[],t=[...this[Ze]].sort((r,i)=>r[0]<i[0]?-1:1),a=this[Ze].cookies;for(let[r,i]of t)if(r==="set-cookie")for(let s of a)A.push([r,s]);else zf(i!==null),A.push([r,i]);return this[Ze][ze]=A,A}keys(){return Y.brandCheck(this,e),mp(()=>[...this[ze].values()],"Headers","key")}values(){return Y.brandCheck(this,e),mp(()=>[...this[ze].values()],"Headers","value")}entries(){return Y.brandCheck(this,e),mp(()=>[...this[ze].values()],"Headers","key+value")}forEach(A,t=globalThis){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.forEach"}),typeof A!="function")throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.");for(let[a,r]of this)A.apply(t,[r,a,this])}[Symbol.for("nodejs.util.inspect.custom")](){return Y.brandCheck(this,e),this[Ze]}};ua.prototype[Symbol.iterator]=ua.prototype.entries;Object.defineProperties(ua.prototype,{append:tt,delete:tt,get:tt,has:tt,set:tt,getSetCookie:tt,keys:tt,values:tt,entries:tt,forEach:tt,[Symbol.iterator]:{enumerable:!1},[Symbol.toStringTag]:{value:"Headers",configurable:!0}});Y.converters.HeadersInit=function(e){if(Y.util.Type(e)==="Object")return e[Symbol.iterator]?Y.converters["sequence<sequence<ByteString>>"](e):Y.converters["record<ByteString, ByteString>"](e);throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};lu.exports={fill:pu,Headers:ua,HeadersList:Qs}});var hs=E((US,mu)=>{"use strict";var{Headers:Kf,HeadersList:gu,fill:$f}=Q1(),{extractBody:cu,cloneBody:ew,mixinBody:Aw}=Ar(),Ip=q(),{kEnumerableProperty:pA}=Ip,{isValidReasonPhrase:tw,isCancelled:aw,isAborted:rw,isBlobLike:iw,serializeJavascriptValueToJSONString:sw,isErrorLike:nw,isomorphicEncode:ow}=fA(),{redirectStatus:dw,nullBodyStatus:pw,DOMException:lw}=Mt(),{kState:te,kHeaders:ve,kGuard:Ea,kRealm:dA}=Et(),{webidl:M}=Ge(),{FormData:gw}=Mi(),{getGlobalOrigin:cw}=za(),{URLSerializer:uu}=MA(),{kHeadersList:Bp}=re(),fp=require("assert"),{types:hp}=require("util"),Qu=globalThis.ReadableStream||require("stream/web").ReadableStream,Qa=class e{static error(){let A={settingsObject:{}},t=new e;return t[te]=ms(),t[dA]=A,t[ve][Bp]=t[te].headersList,t[ve][Ea]="immutable",t[ve][dA]=A,t}static json(A=void 0,t={}){M.argumentLengthCheck(arguments,1,{header:"Response.json"}),t!==null&&(t=M.converters.ResponseInit(t));let a=new TextEncoder("utf-8").encode(sw(A)),r=cu(a),i={settingsObject:{}},s=new e;return s[dA]=i,s[ve][Ea]="response",s[ve][dA]=i,Eu(s,t,{body:r[0],type:"application/json"}),s}static redirect(A,t=302){let a={settingsObject:{}};M.argumentLengthCheck(arguments,1,{header:"Response.redirect"}),A=M.converters.USVString(A),t=M.converters["unsigned short"](t);let r;try{r=new URL(A,cw())}catch(n){throw Object.assign(new TypeError("Failed to parse URL from "+A),{cause:n})}if(!dw.includes(t))throw new RangeError("Invalid status code "+t);let i=new e;i[dA]=a,i[ve][Ea]="immutable",i[ve][dA]=a,i[te].status=t;let s=ow(uu(r));return i[te].headersList.append("location",s),i}constructor(A=null,t={}){A!==null&&(A=M.converters.BodyInit(A)),t=M.converters.ResponseInit(t),this[dA]={settingsObject:{}},this[te]=Bs({}),this[ve]=new Kf,this[ve][Ea]="response",this[ve][Bp]=this[te].headersList,this[ve][dA]=this[dA];let a=null;if(A!=null){let[r,i]=cu(A);a={body:r,type:i}}Eu(this,t,a)}get type(){return M.brandCheck(this,e),this[te].type}get url(){M.brandCheck(this,e);let A=this[te].urlList,t=A[A.length-1]??null;return t===null?"":uu(t,!0)}get redirected(){return M.brandCheck(this,e),this[te].urlList.length>1}get status(){return M.brandCheck(this,e),this[te].status}get ok(){return M.brandCheck(this,e),this[te].status>=200&&this[te].status<=299}get statusText(){return M.brandCheck(this,e),this[te].statusText}get headers(){return M.brandCheck(this,e),this[ve]}get body(){return M.brandCheck(this,e),this[te].body?this[te].body.stream:null}get bodyUsed(){return M.brandCheck(this,e),!!this[te].body&&Ip.isDisturbed(this[te].body.stream)}clone(){if(M.brandCheck(this,e),this.bodyUsed||this.body&&this.body.locked)throw M.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let A=wp(this[te]),t=new e;return t[te]=A,t[dA]=this[dA],t[ve][Bp]=A.headersList,t[ve][Ea]=this[ve][Ea],t[ve][dA]=this[ve][dA],t}};Aw(Qa);Object.defineProperties(Qa.prototype,{type:pA,url:pA,status:pA,ok:pA,redirected:pA,statusText:pA,headers:pA,clone:pA,body:pA,bodyUsed:pA,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(Qa,{json:pA,redirect:pA,error:pA});function wp(e){if(e.internalResponse)return Cu(wp(e.internalResponse),e.type);let A=Bs({...e,body:null});return e.body!=null&&(A.body=ew(e.body)),A}function Bs(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e.headersList?new gu(e.headersList):new gu,urlList:e.urlList?[...e.urlList]:[]}}function ms(e){let A=nw(e);return Bs({type:"error",status:0,error:A?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function Cs(e,A){return A={internalResponse:e,...A},new Proxy(e,{get(t,a){return a in A?A[a]:t[a]},set(t,a,r){return fp(!(a in A)),t[a]=r,!0}})}function Cu(e,A){if(A==="basic")return Cs(e,{type:"basic",headersList:e.headersList});if(A==="cors")return Cs(e,{type:"cors",headersList:e.headersList});if(A==="opaque")return Cs(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(A==="opaqueredirect")return Cs(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});fp(!1)}function uw(e){return fp(aw(e)),rw(e)?ms(new lw("The operation was aborted.","AbortError")):ms("Request was cancelled.")}function Eu(e,A,t){if(A.status!==null&&(A.status<200||A.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in A&&A.statusText!=null&&!tw(String(A.statusText)))throw new TypeError("Invalid statusText");if("status"in A&&A.status!=null&&(e[te].status=A.status),"statusText"in A&&A.statusText!=null&&(e[te].statusText=A.statusText),"headers"in A&&A.headers!=null&&$f(e[ve],A.headers),t){if(pw.includes(e.status))throw M.errors.exception({header:"Response constructor",message:"Invalid response status code "+e.status});e[te].body=t.body,t.type!=null&&!e[te].headersList.contains("Content-Type")&&e[te].headersList.append("content-type",t.type)}}M.converters.ReadableStream=M.interfaceConverter(Qu);M.converters.FormData=M.interfaceConverter(gw);M.converters.URLSearchParams=M.interfaceConverter(URLSearchParams);M.converters.XMLHttpRequestBodyInit=function(e){return typeof e=="string"?M.converters.USVString(e):iw(e)?M.converters.Blob(e,{strict:!1}):hp.isAnyArrayBuffer(e)||hp.isTypedArray(e)||hp.isDataView(e)?M.converters.BufferSource(e):Ip.isFormDataLike(e)?M.converters.FormData(e,{strict:!1}):e instanceof URLSearchParams?M.converters.URLSearchParams(e):M.converters.DOMString(e)};M.converters.BodyInit=function(e){return e instanceof Qu?M.converters.ReadableStream(e):e?.[Symbol.asyncIterator]?e:M.converters.XMLHttpRequestBodyInit(e)};M.converters.ResponseInit=M.dictionaryConverter([{key:"status",converter:M.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:M.converters.ByteString,defaultValue:""},{key:"headers",converter:M.converters.HeadersInit}]);mu.exports={makeNetworkError:ms,makeResponse:Bs,makeAppropriateNetworkError:uw,filterResponse:Cu,Response:Qa,cloneResponse:wp}});var wr=E((TS,Du)=>{"use strict";var{extractBody:Ew,mixinBody:Qw,cloneBody:Cw}=Ar(),{Headers:yp,fill:mw,HeadersList:Bu}=Q1(),{FinalizationRegistry:Bw}=Ld()(),fr=q(),{isValidHTTPToken:hw,sameOrigin:hu,normalizeMethod:Iw,makePolicyContainer:fw}=fA(),{forbiddenMethods:ww,corsSafeListedMethods:yw,referrerPolicy:Dw,requestRedirect:vw,requestMode:Rw,requestCredentials:Nw,requestCache:bw,requestDuplex:Sw}=Mt(),{kEnumerableProperty:Ce}=fr,{kHeaders:Re,kSignal:Ir,kState:ee,kGuard:Is,kRealm:lA}=Et(),{webidl:F}=Ge(),{getGlobalOrigin:Fw}=za(),{URLSerializer:kw}=MA(),{kHeadersList:fs}=re(),Lw=require("assert"),{getMaxListeners:Iu,setMaxListeners:fu,getEventListeners:Uw,defaultMaxListeners:wu}=require("events"),Dp=globalThis.TransformStream,yu=Symbol("init"),Tw=Symbol("abortController"),Mw=new Bw(({signal:e,abort:A})=>{e.removeEventListener("abort",A)}),C1=class e{constructor(A,t={}){if(A===yu)return;F.argumentLengthCheck(arguments,1,{header:"Request constructor"}),A=F.converters.RequestInfo(A),t=F.converters.RequestInit(t),this[lA]={settingsObject:{baseUrl:Fw(),get origin(){return this.baseUrl?.origin},policyContainer:fw()}};let a=null,r=null,i=this[lA].settingsObject.baseUrl,s=null;if(typeof A=="string"){let Q;try{Q=new URL(A,i)}catch(m){throw new TypeError("Failed to parse URL from "+A,{cause:m})}if(Q.username||Q.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+A);a=ws({urlList:[Q]}),r="cors"}else Lw(A instanceof e),a=A[ee],s=A[Ir];let n=this[lA].settingsObject.origin,o="client";if(a.window?.constructor?.name==="EnvironmentSettingsObject"&&hu(a.window,n)&&(o=a.window),t.window!=null)throw new TypeError(`'window' option '${o}' must be null`);if("window"in t&&(o="no-window"),a=ws({method:a.method,headersList:a.headersList,unsafeRequest:a.unsafeRequest,client:this[lA].settingsObject,window:o,priority:a.priority,origin:a.origin,referrer:a.referrer,referrerPolicy:a.referrerPolicy,mode:a.mode,credentials:a.credentials,cache:a.cache,redirect:a.redirect,integrity:a.integrity,keepalive:a.keepalive,reloadNavigation:a.reloadNavigation,historyNavigation:a.historyNavigation,urlList:[...a.urlList]}),Object.keys(t).length>0&&(a.mode==="navigate"&&(a.mode="same-origin"),a.reloadNavigation=!1,a.historyNavigation=!1,a.origin="client",a.referrer="client",a.referrerPolicy="",a.url=a.urlList[a.urlList.length-1],a.urlList=[a.url]),t.referrer!==void 0){let Q=t.referrer;if(Q==="")a.referrer="no-referrer";else{let m;try{m=new URL(Q,i)}catch(C){throw new TypeError(`Referrer "${Q}" is not a valid URL.`,{cause:C})}m.protocol==="about:"&&m.hostname==="client"||n&&!hu(m,this[lA].settingsObject.baseUrl)?a.referrer="client":a.referrer=m}}t.referrerPolicy!==void 0&&(a.referrerPolicy=t.referrerPolicy);let d;if(t.mode!==void 0?d=t.mode:d=r,d==="navigate")throw F.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(d!=null&&(a.mode=d),t.credentials!==void 0&&(a.credentials=t.credentials),t.cache!==void 0&&(a.cache=t.cache),a.cache==="only-if-cached"&&a.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(t.redirect!==void 0&&(a.redirect=t.redirect),t.integrity!==void 0&&t.integrity!=null&&(a.integrity=String(t.integrity)),t.keepalive!==void 0&&(a.keepalive=!!t.keepalive),t.method!==void 0){let Q=t.method;if(!hw(t.method))throw TypeError(`'${t.method}' is not a valid HTTP method.`);if(ww.indexOf(Q.toUpperCase())!==-1)throw TypeError(`'${t.method}' HTTP method is unsupported.`);Q=Iw(t.method),a.method=Q}t.signal!==void 0&&(s=t.signal),this[ee]=a;let l=new AbortController;if(this[Ir]=l.signal,this[Ir][lA]=this[lA],s!=null){if(!s||typeof s.aborted!="boolean"||typeof s.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(s.aborted)l.abort(s.reason);else{this[Tw]=l;let Q=new WeakRef(l),m=function(){let C=Q.deref();C!==void 0&&C.abort(this.reason)};try{(typeof Iu=="function"&&Iu(s)===wu||Uw(s,"abort").length>=wu)&&fu(100,s)}catch{}fr.addAbortListener(s,m),Mw.register(l,{signal:s,abort:m})}}if(this[Re]=new yp,this[Re][fs]=a.headersList,this[Re][Is]="request",this[Re][lA]=this[lA],d==="no-cors"){if(!yw.includes(a.method))throw new TypeError(`'${a.method} is unsupported in no-cors mode.`);this[Re][Is]="request-no-cors"}if(Object.keys(t).length!==0){let Q=new yp(this[Re]);if(t.headers!==void 0&&(Q=t.headers),this[Re][fs].clear(),Q.constructor.name==="Headers")for(let[m,C]of Q)this[Re].append(m,C);else mw(this[Re],Q)}let p=A instanceof e?A[ee].body:null;if((t.body!=null||p!=null)&&(a.method==="GET"||a.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let g=null;if(t.body!=null){let[Q,m]=Ew(t.body,a.keepalive);g=Q,m&&!this[Re][fs].contains("content-type")&&this[Re].append("content-type",m)}let c=g??p;if(c!=null&&c.source==null){if(g!=null&&t.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(a.mode!=="same-origin"&&a.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');a.useCORSPreflightFlag=!0}let u=c;if(g==null&&p!=null){if(fr.isDisturbed(p.stream)||p.stream.locked)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");Dp||(Dp=require("stream/web").TransformStream);let Q=new Dp;p.stream.pipeThrough(Q),u={source:p.source,length:p.length,stream:Q.readable}}this[ee].body=u}get method(){return F.brandCheck(this,e),this[ee].method}get url(){return F.brandCheck(this,e),kw(this[ee].url)}get headers(){return F.brandCheck(this,e),this[Re]}get destination(){return F.brandCheck(this,e),this[ee].destination}get referrer(){return F.brandCheck(this,e),this[ee].referrer==="no-referrer"?"":this[ee].referrer==="client"?"about:client":this[ee].referrer.toString()}get referrerPolicy(){return F.brandCheck(this,e),this[ee].referrerPolicy}get mode(){return F.brandCheck(this,e),this[ee].mode}get credentials(){return this[ee].credentials}get cache(){return F.brandCheck(this,e),this[ee].cache}get redirect(){return F.brandCheck(this,e),this[ee].redirect}get integrity(){return F.brandCheck(this,e),this[ee].integrity}get keepalive(){return F.brandCheck(this,e),this[ee].keepalive}get isReloadNavigation(){return F.brandCheck(this,e),this[ee].reloadNavigation}get isHistoryNavigation(){return F.brandCheck(this,e),this[ee].historyNavigation}get signal(){return F.brandCheck(this,e),this[Ir]}get body(){return F.brandCheck(this,e),this[ee].body?this[ee].body.stream:null}get bodyUsed(){return F.brandCheck(this,e),!!this[ee].body&&fr.isDisturbed(this[ee].body.stream)}get duplex(){return F.brandCheck(this,e),"half"}clone(){if(F.brandCheck(this,e),this.bodyUsed||this.body?.locked)throw new TypeError("unusable");let A=Vw(this[ee]),t=new e(yu);t[ee]=A,t[lA]=this[lA],t[Re]=new yp,t[Re][fs]=A.headersList,t[Re][Is]=this[Re][Is],t[Re][lA]=this[Re][lA];let a=new AbortController;return this.signal.aborted?a.abort(this.signal.reason):fr.addAbortListener(this.signal,()=>{a.abort(this.signal.reason)}),t[Ir]=a.signal,t}};Qw(C1);function ws(e){let A={method:"GET",localURLsOnly:!1,unsafeRequest:!1,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:!1,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:!1,credentials:"same-origin",useCredentials:!1,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:!1,historyNavigation:!1,userActivation:!1,taintedOrigin:!1,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:!1,done:!1,timingAllowFailed:!1,...e,headersList:e.headersList?new Bu(e.headersList):new Bu};return A.url=A.urlList[0],A}function Vw(e){let A=ws({...e,body:null});return e.body!=null&&(A.body=Cw(e.body)),A}Object.defineProperties(C1.prototype,{method:Ce,url:Ce,headers:Ce,redirect:Ce,clone:Ce,signal:Ce,duplex:Ce,destination:Ce,body:Ce,bodyUsed:Ce,isHistoryNavigation:Ce,isReloadNavigation:Ce,keepalive:Ce,integrity:Ce,cache:Ce,credentials:Ce,attribute:Ce,referrerPolicy:Ce,referrer:Ce,mode:Ce,[Symbol.toStringTag]:{value:"Request",configurable:!0}});F.converters.Request=F.interfaceConverter(C1);F.converters.RequestInfo=function(e){return typeof e=="string"?F.converters.USVString(e):e instanceof C1?F.converters.Request(e):F.converters.USVString(e)};F.converters.AbortSignal=F.interfaceConverter(AbortSignal);F.converters.RequestInit=F.dictionaryConverter([{key:"method",converter:F.converters.ByteString},{key:"headers",converter:F.converters.HeadersInit},{key:"body",converter:F.nullableConverter(F.converters.BodyInit)},{key:"referrer",converter:F.converters.USVString},{key:"referrerPolicy",converter:F.converters.DOMString,allowedValues:Dw},{key:"mode",converter:F.converters.DOMString,allowedValues:Rw},{key:"credentials",converter:F.converters.DOMString,allowedValues:Nw},{key:"cache",converter:F.converters.DOMString,allowedValues:bw},{key:"redirect",converter:F.converters.DOMString,allowedValues:vw},{key:"integrity",converter:F.converters.DOMString},{key:"keepalive",converter:F.converters.boolean},{key:"signal",converter:F.nullableConverter(e=>F.converters.AbortSignal(e,{strict:!1}))},{key:"window",converter:F.converters.any},{key:"duplex",converter:F.converters.DOMString,allowedValues:Sw}]);Du.exports={Request:C1,makeRequest:ws}});var Ss=E((MS,Ju)=>{"use strict";var{Response:Yw,makeNetworkError:K,makeAppropriateNetworkError:ys,filterResponse:vp,makeResponse:Ds}=hs(),{Headers:vu}=Q1(),{Request:Jw,makeRequest:Gw}=wr(),yr=require("zlib"),{bytesMatch:xw,makePolicyContainer:_w,clonePolicyContainer:qw,requestBadPort:Hw,TAOCheck:Ow,appendRequestOriginHeader:Pw,responseLocationURL:Ww,requestCurrentURL:at,setRequestReferrerPolicyOnRedirect:jw,tryUpgradeRequestToAPotentiallyTrustworthyURL:Zw,createOpaqueTimingInfo:Mp,appendFetchMetadata:Xw,corsCheck:zw,crossOriginResourcePolicyCheck:Kw,determineRequestsReferrer:$w,coarsenedSharedCurrentTime:Vp,createDeferredPromise:ey,isBlobLike:Ay,sameOrigin:kp,isCancelled:Ca,isAborted:Ru,isErrorLike:ty,fullyReadBody:Fu,readableStreamClose:ay,isomorphicEncode:Lp,urlIsLocal:ry,urlIsHttpHttpsScheme:Yp,urlHasHttpsScheme:iy}=fA(),{kState:Up,kHeaders:Rp,kGuard:sy,kRealm:Nu}=Et(),ma=require("assert"),{safelyExtractBody:vs}=Ar(),{redirectStatus:ku,nullBodyStatus:Lu,safeMethods:ny,requestBodyHeader:oy,subresource:dy,DOMException:Rs}=Mt(),{kHeadersList:Tp}=re(),py=require("events"),{Readable:ly,pipeline:gy}=require("stream"),{addAbortListener:cy,isErrored:uy,isReadable:Ns,nodeMajor:bu,nodeMinor:Ey}=q(),{dataURLProcessor:Qy,serializeAMimeType:Cy}=MA(),{TransformStream:my}=require("stream/web"),{getGlobalDispatcher:By}=ca(),{webidl:hy}=Ge(),{STATUS_CODES:Iy}=require("http"),Np,bp=globalThis.ReadableStream,bs=class extends py{constructor(A){super(),this.dispatcher=A,this.connection=null,this.dump=!1,this.state="ongoing",this.setMaxListeners(21)}terminate(A){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(A),this.emit("terminated",A))}abort(A){this.state==="ongoing"&&(this.state="aborted",A||(A=new Rs("The operation was aborted.","AbortError")),this.serializedAbortReason=A,this.connection?.destroy(A),this.emit("terminated",A))}};async function fy(e,A={}){hy.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});let t=ey(),a;try{a=new Jw(e,A)}catch(g){return t.reject(g),t.promise}let r=a[Up];if(a.signal.aborted)return Sp(t,r,null,a.signal.reason),t.promise;r.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(r.serviceWorkers="none");let s=null,n=null,o=!1,d=null;return cy(a.signal,()=>{o=!0,ma(d!=null),d.abort(a.signal.reason),Sp(t,r,s,a.signal.reason)}),d=Tu({request:r,processResponseEndOfBody:g=>Uu(g,"fetch"),processResponse:g=>{if(!o){if(g.aborted){Sp(t,r,s,d.serializedAbortReason);return}if(g.type==="error"){t.reject(Object.assign(new TypeError("fetch failed"),{cause:g.error}));return}s=new Yw,s[Up]=g,s[Nu]=n,s[Rp][Tp]=g.headersList,s[Rp][sy]="immutable",s[Rp][Nu]=n,t.resolve(s)}},dispatcher:A.dispatcher??By()}),t.promise}function Uu(e,A="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let t=e.urlList[0],a=e.timingInfo,r=e.cacheState;Yp(t)&&a!==null&&(a.timingAllowPassed||(a=Mp({startTime:a.startTime}),r=""),a.endTime=Vp(),e.timingInfo=a,wy(a,t,A,globalThis,r))}function wy(e,A,t,a,r){(bu>18||bu===18&&Ey>=2)&&performance.markResourceTiming(e,A.href,t,a,r)}function Sp(e,A,t,a){if(a||(a=new Rs("The operation was aborted.","AbortError")),e.reject(a),A.body!=null&&Ns(A.body?.stream)&&A.body.stream.cancel(a).catch(i=>{if(i.code!=="ERR_INVALID_STATE")throw i}),t==null)return;let r=t[Up];r.body!=null&&Ns(r.body?.stream)&&r.body.stream.cancel(a).catch(i=>{if(i.code!=="ERR_INVALID_STATE")throw i})}function Tu({request:e,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:a,processResponseEndOfBody:r,processResponseConsumeBody:i,useParallelQueue:s=!1,dispatcher:n}){let o=null,d=!1;e.client!=null&&(o=e.client.globalObject,d=e.client.crossOriginIsolatedCapability);let l=Vp(d),p=Mp({startTime:l}),g={controller:new bs(n),request:e,timingInfo:p,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:a,processResponseConsumeBody:i,processResponseEndOfBody:r,taskDestination:o,crossOriginIsolatedCapability:d};return ma(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client?.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=qw(e.client.policyContainer):e.policyContainer=_w()),e.headersList.contains("accept")||e.headersList.append("accept","*/*"),e.headersList.contains("accept-language")||e.headersList.append("accept-language","*"),e.priority,dy.includes(e.destination),Mu(g).catch(c=>{g.controller.terminate(c)}),g.controller}async function Mu(e,A=!1){let t=e.request,a=null;if(t.localURLsOnly&&!ry(at(t))&&(a=K("local URLs only")),Zw(t),Hw(t)==="blocked"&&(a=K("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=$w(t)),a===null&&(a=await(async()=>{let i=at(t);return kp(i,t.url)&&t.responseTainting==="basic"||i.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await Su(e)):t.mode==="same-origin"?K('request mode cannot be "same-origin"'):t.mode==="no-cors"?t.redirect!=="follow"?K('redirect mode cannot be "follow" for "no-cors" request'):(t.responseTainting="opaque",await Su(e)):Yp(at(t))?(t.responseTainting="cors",await Vu(e)):K("URL scheme must be a HTTP(S) scheme")})()),A)return a;a.status!==0&&!a.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?a=vp(a,"basic"):t.responseTainting==="cors"?a=vp(a,"cors"):t.responseTainting==="opaque"?a=vp(a,"opaque"):ma(!1));let r=a.status===0?a:a.internalResponse;if(r.urlList.length===0&&r.urlList.push(...t.urlList),t.timingAllowFailed||(a.timingAllowPassed=!0),a.type==="opaque"&&r.status===206&&r.rangeRequested&&!t.headers.contains("range")&&(a=r=K()),a.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||Lu.includes(r.status))&&(r.body=null,e.controller.dump=!0),t.integrity){let i=n=>Fp(e,K(n));if(t.responseTainting==="opaque"||a.body==null){i(a.error);return}let s=n=>{if(!xw(n,t.integrity)){i("integrity mismatch");return}a.body=vs(n)[0],Fp(e,a)};await Fu(a.body,s,i)}else Fp(e,a)}async function Su(e){if(Ca(e)&&e.request.redirectCount===0)return ys(e);let{request:A}=e,{protocol:t}=at(A);switch(t){case"about:":return K("about scheme is not supported");case"blob:":{Np||(Np=require("buffer").resolveObjectURL);let a=at(A);if(a.search.length!==0)return K("NetworkError when attempting to fetch resource.");let r=Np(a.toString());if(A.method!=="GET"||!Ay(r))return K("invalid method");let i=vs(r),s=i[0],n=Lp(`${s.length}`),o=i[1]??"",d=Ds({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:n}],["content-type",{name:"Content-Type",value:o}]]});return d.body=s,d}case"data:":{let a=at(A),r=Qy(a);if(r==="failure")return K("failed to fetch the data URL");let i=Cy(r.mimeType);return Ds({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:i}]],body:vs(r.body)[0]})}case"file:":return K("not implemented... yet...");case"http:":case"https:":return await Vu(e).catch(a=>K(a));default:return K("unknown scheme")}}function yy(e,A){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(A))}async function Fp(e,A){A.type==="error"&&(A.urlList=[e.request.urlList[0]],A.timingInfo=Mp({startTime:e.timingInfo.startTime}));let t=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(A))};if(e.processResponse!=null&&queueMicrotask(()=>e.processResponse(A)),A.body==null)t();else{let a=(i,s)=>{s.enqueue(i)},r=new my({start(){},transform:a,flush:t},{size(){return 1}},{size(){return 1}});A.body={stream:A.body.stream.pipeThrough(r)}}if(e.processResponseConsumeBody!=null){let a=i=>e.processResponseConsumeBody(A,i),r=i=>e.processResponseConsumeBody(A,i);A.body==null?queueMicrotask(()=>a(null)):await Fu(A.body,a,r)}}async function Vu(e){let A=e.request,t=null,a=null,r=e.timingInfo;if(A.serviceWorkers,t===null){if(A.redirect==="follow"&&(A.serviceWorkers="none"),a=t=await Yu(e),A.responseTainting==="cors"&&zw(A,t)==="failure")return K("cors failure");Ow(A,t)==="failure"&&(A.timingAllowFailed=!0)}return(A.responseTainting==="opaque"||t.type==="opaque")&&Kw(A.origin,A.client,A.destination,a)==="blocked"?K("blocked"):(ku.includes(a.status)&&(A.redirect!=="manual"&&e.controller.connection.destroy(),A.redirect==="error"?t=K("unexpected redirect"):A.redirect==="manual"?t=a:A.redirect==="follow"?t=await Dy(e,t):ma(!1)),t.timingInfo=r,t)}async function Dy(e,A){let t=e.request,a=A.internalResponse?A.internalResponse:A,r;try{if(r=Ww(a,at(t).hash),r==null)return A}catch(s){return K(s)}if(!Yp(r))return K("URL scheme must be a HTTP(S) scheme");if(t.redirectCount===20)return K("redirect count exceeded");if(t.redirectCount+=1,t.mode==="cors"&&(r.username||r.password)&&!kp(t,r))return K('cross origin not allowed for request mode "cors"');if(t.responseTainting==="cors"&&(r.username||r.password))return K('URL cannot contain credentials for request mode "cors"');if(a.status!==303&&t.body!=null&&t.body.source==null)return K();if([301,302].includes(a.status)&&t.method==="POST"||a.status===303&&!["GET","HEAD"].includes(t.method)){t.method="GET",t.body=null;for(let s of oy)t.headersList.delete(s)}kp(at(t),r)||t.headersList.delete("authorization"),t.body!=null&&(ma(t.body.source!=null),t.body=vs(t.body.source)[0]);let i=e.timingInfo;return i.redirectEndTime=i.postRedirectStartTime=Vp(e.crossOriginIsolatedCapability),i.redirectStartTime===0&&(i.redirectStartTime=i.startTime),t.urlList.push(r),jw(t,a),Mu(e,!0)}async function Yu(e,A=!1,t=!1){let a=e.request,r=null,i=null,s=null,n=null,o=!1;a.window==="no-window"&&a.redirect==="error"?(r=e,i=a):(i=Gw(a),r={...e},r.request=i);let d=a.credentials==="include"||a.credentials==="same-origin"&&a.responseTainting==="basic",l=i.body?i.body.length:null,p=null;if(i.body==null&&["POST","PUT"].includes(i.method)&&(p="0"),l!=null&&(p=Lp(`${l}`)),p!=null&&i.headersList.append("content-length",p),l!=null&&i.keepalive,i.referrer instanceof URL&&i.headersList.append("referer",Lp(i.referrer.href)),Pw(i),Xw(i),i.headersList.contains("user-agent")||i.headersList.append("user-agent","undici"),i.cache==="default"&&(i.headersList.contains("if-modified-since")||i.headersList.contains("if-none-match")||i.headersList.contains("if-unmodified-since")||i.headersList.contains("if-match")||i.headersList.contains("if-range"))&&(i.cache="no-store"),i.cache==="no-cache"&&!i.preventNoCacheCacheControlHeaderModification&&!i.headersList.contains("cache-control")&&i.headersList.append("cache-control","max-age=0"),(i.cache==="no-store"||i.cache==="reload")&&(i.headersList.contains("pragma")||i.headersList.append("pragma","no-cache"),i.headersList.contains("cache-control")||i.headersList.append("cache-control","no-cache")),i.headersList.contains("range")&&i.headersList.append("accept-encoding","identity"),i.headersList.contains("accept-encoding")||(iy(at(i))?i.headersList.append("accept-encoding","br, gzip, deflate"):i.headersList.append("accept-encoding","gzip, deflate")),n==null&&(i.cache="no-store"),i.mode!=="no-store"&&i.mode,s==null){if(i.mode==="only-if-cached")return K("only if cached");let g=await vy(r,d,t);!ny.includes(i.method)&&g.status>=200&&g.status<=399,o&&g.status,s==null&&(s=g)}if(s.urlList=[...i.urlList],i.headersList.contains("range")&&(s.rangeRequested=!0),s.requestIncludesCredentials=d,s.status===407)return a.window==="no-window"?K():Ca(e)?ys(e):K("proxy authentication required");if(s.status===421&&!t&&(a.body==null||a.body.source!=null)){if(Ca(e))return ys(e);e.controller.connection.destroy(),s=await Yu(e,A,!0)}return s}async function vy(e,A=!1,t=!1){ma(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(u){this.destroyed||(this.destroyed=!0,this.abort?.(u??new Rs("The operation was aborted.","AbortError")))}};let a=e.request,r=null,i=e.timingInfo;null==null&&(a.cache="no-store");let n=t?"yes":"no";a.mode;let o=null;if(a.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(a.body!=null){let u=async function*(C){Ca(e)||(yield C,e.processRequestBodyChunkLength?.(C.byteLength))},Q=()=>{Ca(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},m=C=>{Ca(e)||(C.name==="AbortError"?e.controller.abort():e.controller.terminate(C))};o=async function*(){try{for await(let C of a.body.stream)yield*u(C);Q()}catch(C){m(C)}}()}try{let{body:u,status:Q,statusText:m,headersList:C,socket:h}=await c({body:o});if(h)r=Ds({status:Q,statusText:m,headersList:C,socket:h});else{let B=u[Symbol.asyncIterator]();e.controller.next=()=>B.next(),r=Ds({status:Q,statusText:m,headersList:C})}}catch(u){return u.name==="AbortError"?(e.controller.connection.destroy(),ys(e)):K(u)}let d=()=>{e.controller.resume()},l=u=>{e.controller.abort(u)};bp||(bp=require("stream/web").ReadableStream);let p=new bp({async start(u){e.controller.controller=u},async pull(u){await d(u)},async cancel(u){await l(u)}},{highWaterMark:0,size(){return 1}});r.body={stream:p},e.controller.on("terminated",g),e.controller.resume=async()=>{for(;;){let u,Q;try{let{done:m,value:C}=await e.controller.next();if(Ru(e))break;u=m?void 0:C}catch(m){e.controller.ended&&!i.encodedBodySize?u=void 0:(u=m,Q=!0)}if(u===void 0){ay(e.controller.controller),yy(e,r);return}if(i.decodedBodySize+=u?.byteLength??0,Q){e.controller.terminate(u);return}if(e.controller.controller.enqueue(new Uint8Array(u)),uy(p)){e.controller.terminate();return}if(!e.controller.controller.desiredSize)return}};function g(u){Ru(e)?(r.aborted=!0,Ns(p)&&e.controller.controller.error(e.controller.serializedAbortReason)):Ns(p)&&e.controller.controller.error(new TypeError("terminated",{cause:ty(u)?u:void 0})),e.controller.connection.destroy()}return r;async function c({body:u}){let Q=at(a),m=e.controller.dispatcher;return new Promise((C,h)=>m.dispatch({path:Q.pathname+Q.search,origin:Q.origin,method:a.method,body:e.controller.dispatcher.isMockActive?a.body&&a.body.source:u,headers:a.headersList.entries,maxRedirections:0,upgrade:a.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(B){let{connection:I}=e.controller;I.destroyed?B(new Rs("The operation was aborted.","AbortError")):(e.controller.on("terminated",B),this.abort=I.abort=B)},onHeaders(B,I,w,v){if(B<200)return;let S=[],x="",we=new vu;for(let Se=0;Se<I.length;Se+=2){let le=I[Se+0].toString("latin1"),CA=I[Se+1].toString("latin1");le.toLowerCase()==="content-encoding"?S=CA.toLowerCase().split(",").map(Z=>Z.trim()).reverse():le.toLowerCase()==="location"&&(x=CA),we.append(le,CA)}this.body=new ly({read:w});let me=[],Rt=a.redirect==="follow"&&x&&ku.includes(B);if(a.method!=="HEAD"&&a.method!=="CONNECT"&&!Lu.includes(B)&&!Rt)for(let Se of S)if(Se==="x-gzip"||Se==="gzip")me.push(yr.createGunzip({flush:yr.constants.Z_SYNC_FLUSH,finishFlush:yr.constants.Z_SYNC_FLUSH}));else if(Se==="deflate")me.push(yr.createInflate());else if(Se==="br")me.push(yr.createBrotliDecompress());else{me.length=0;break}return C({status:B,statusText:v,headersList:we[Tp],body:me.length?gy(this.body,...me,()=>{}):this.body.on("error",()=>{})}),!0},onData(B){if(e.controller.dump)return;let I=B;return i.encodedBodySize+=I.byteLength,this.body.push(I)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.ended=!0,this.body.push(null)},onError(B){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(B),e.controller.terminate(B),h(B)},onUpgrade(B,I,w){if(B!==101)return;let v=new vu;for(let S=0;S<I.length;S+=2){let x=I[S+0].toString("latin1"),we=I[S+1].toString("latin1");v.append(x,we)}return C({status:B,statusText:Iy[B],headersList:v[Tp],socket:w}),!0}}))}}Ju.exports={fetch:fy,Fetch:bs,fetching:Tu,finalizeAndReportTiming:Uu}});var Jp=E((VS,Gu)=>{"use strict";Gu.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var _u=E((YS,xu)=>{"use strict";var{webidl:gA}=Ge(),Fs=Symbol("ProgressEvent state"),Gp=class e extends Event{constructor(A,t={}){A=gA.converters.DOMString(A),t=gA.converters.ProgressEventInit(t??{}),super(A,t),this[Fs]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return gA.brandCheck(this,e),this[Fs].lengthComputable}get loaded(){return gA.brandCheck(this,e),this[Fs].loaded}get total(){return gA.brandCheck(this,e),this[Fs].total}};gA.converters.ProgressEventInit=gA.dictionaryConverter([{key:"lengthComputable",converter:gA.converters.boolean,defaultValue:!1},{key:"loaded",converter:gA.converters["unsigned long long"],defaultValue:0},{key:"total",converter:gA.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:gA.converters.boolean,defaultValue:!1},{key:"cancelable",converter:gA.converters.boolean,defaultValue:!1},{key:"composed",converter:gA.converters.boolean,defaultValue:!1}]);xu.exports={ProgressEvent:Gp}});var Hu=E((JS,qu)=>{"use strict";function Ry(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}qu.exports={getEncoding:Ry}});var Ku=E((GS,zu)=>{"use strict";var{kState:Ba,kError:xp,kResult:Ou,kAborted:Dr,kLastProgressEventFired:_p}=Jp(),{ProgressEvent:Ny}=_u(),{getEncoding:Pu}=Hu(),{DOMException:by}=Mt(),{serializeAMimeType:Sy,parseMIMEType:Wu}=MA(),{types:Fy}=require("util"),{StringDecoder:ju}=require("string_decoder"),{btoa:Zu}=require("buffer"),ky={enumerable:!0,writable:!1,configurable:!1};function Ly(e,A,t,a){if(e[Ba]==="loading")throw new by("Invalid state","InvalidStateError");e[Ba]="loading",e[Ou]=null,e[xp]=null;let i=A.stream().getReader(),s=[],n=i.read(),o=!0;(async()=>{for(;!e[Dr];)try{let{done:d,value:l}=await n;if(o&&!e[Dr]&&queueMicrotask(()=>{Ht("loadstart",e)}),o=!1,!d&&Fy.isUint8Array(l))s.push(l),(e[_p]===void 0||Date.now()-e[_p]>=50)&&!e[Dr]&&(e[_p]=Date.now(),queueMicrotask(()=>{Ht("progress",e)})),n=i.read();else if(d){queueMicrotask(()=>{e[Ba]="done";try{let p=Uy(s,t,A.type,a);if(e[Dr])return;e[Ou]=p,Ht("load",e)}catch(p){e[xp]=p,Ht("error",e)}e[Ba]!=="loading"&&Ht("loadend",e)});break}}catch(d){if(e[Dr])return;queueMicrotask(()=>{e[Ba]="done",e[xp]=d,Ht("error",e),e[Ba]!=="loading"&&Ht("loadend",e)});break}})()}function Ht(e,A){let t=new Ny(e,{bubbles:!1,cancelable:!1});A.dispatchEvent(t)}function Uy(e,A,t,a){switch(A){case"DataURL":{let r="data:",i=Wu(t||"application/octet-stream");i!=="failure"&&(r+=Sy(i)),r+=";base64,";let s=new ju("latin1");for(let n of e)r+=Zu(s.write(n));return r+=Zu(s.end()),r}case"Text":{let r="failure";if(a&&(r=Pu(a)),r==="failure"&&t){let i=Wu(t);i!=="failure"&&(r=Pu(i.parameters.get("charset")))}return r==="failure"&&(r="UTF-8"),Ty(e,r)}case"ArrayBuffer":return Xu(e).buffer;case"BinaryString":{let r="",i=new ju("latin1");for(let s of e)r+=i.write(s);return r+=i.end(),r}}}function Ty(e,A){let t=Xu(e),a=My(t),r=0;a!==null&&(A=a,r=a==="UTF-8"?3:2);let i=t.slice(r);return new TextDecoder(A).decode(i)}function My(e){let[A,t,a]=e;return A===239&&t===187&&a===191?"UTF-8":A===254&&t===255?"UTF-16BE":A===255&&t===254?"UTF-16LE":null}function Xu(e){let A=e.reduce((a,r)=>a+r.byteLength,0),t=0;return e.reduce((a,r)=>(a.set(r,t),t+=r.byteLength,a),new Uint8Array(A))}zu.exports={staticPropertyDescriptors:ky,readOperation:Ly,fireAProgressEvent:Ht}});var t9=E((xS,A9)=>{"use strict";var{staticPropertyDescriptors:ha,readOperation:ks,fireAProgressEvent:$u}=Ku(),{kState:m1,kError:e9,kResult:Ls,kEvents:H,kAborted:Vy}=Jp(),{webidl:X}=Ge(),{kEnumerableProperty:Ke}=q(),JA=class e extends EventTarget{constructor(){super(),this[m1]="empty",this[Ls]=null,this[e9]=null,this[H]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(A){X.brandCheck(this,e),X.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"}),A=X.converters.Blob(A,{strict:!1}),ks(this,A,"ArrayBuffer")}readAsBinaryString(A){X.brandCheck(this,e),X.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"}),A=X.converters.Blob(A,{strict:!1}),ks(this,A,"BinaryString")}readAsText(A,t=void 0){X.brandCheck(this,e),X.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"}),A=X.converters.Blob(A,{strict:!1}),t!==void 0&&(t=X.converters.DOMString(t)),ks(this,A,"Text",t)}readAsDataURL(A){X.brandCheck(this,e),X.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"}),A=X.converters.Blob(A,{strict:!1}),ks(this,A,"DataURL")}abort(){if(this[m1]==="empty"||this[m1]==="done"){this[Ls]=null;return}this[m1]==="loading"&&(this[m1]="done",this[Ls]=null),this[Vy]=!0,$u("abort",this),this[m1]!=="loading"&&$u("loadend",this)}get readyState(){switch(X.brandCheck(this,e),this[m1]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return X.brandCheck(this,e),this[Ls]}get error(){return X.brandCheck(this,e),this[e9]}get onloadend(){return X.brandCheck(this,e),this[H].loadend}set onloadend(A){X.brandCheck(this,e),this[H].loadend&&this.removeEventListener("loadend",this[H].loadend),typeof A=="function"?(this[H].loadend=A,this.addEventListener("loadend",A)):this[H].loadend=null}get onerror(){return X.brandCheck(this,e),this[H].error}set onerror(A){X.brandCheck(this,e),this[H].error&&this.removeEventListener("error",this[H].error),typeof A=="function"?(this[H].error=A,this.addEventListener("error",A)):this[H].error=null}get onloadstart(){return X.brandCheck(this,e),this[H].loadstart}set onloadstart(A){X.brandCheck(this,e),this[H].loadstart&&this.removeEventListener("loadstart",this[H].loadstart),typeof A=="function"?(this[H].loadstart=A,this.addEventListener("loadstart",A)):this[H].loadstart=null}get onprogress(){return X.brandCheck(this,e),this[H].progress}set onprogress(A){X.brandCheck(this,e),this[H].progress&&this.removeEventListener("progress",this[H].progress),typeof A=="function"?(this[H].progress=A,this.addEventListener("progress",A)):this[H].progress=null}get onload(){return X.brandCheck(this,e),this[H].load}set onload(A){X.brandCheck(this,e),this[H].load&&this.removeEventListener("load",this[H].load),typeof A=="function"?(this[H].load=A,this.addEventListener("load",A)):this[H].load=null}get onabort(){return X.brandCheck(this,e),this[H].abort}set onabort(A){X.brandCheck(this,e),this[H].abort&&this.removeEventListener("abort",this[H].abort),typeof A=="function"?(this[H].abort=A,this.addEventListener("abort",A)):this[H].abort=null}};JA.EMPTY=JA.prototype.EMPTY=0;JA.LOADING=JA.prototype.LOADING=1;JA.DONE=JA.prototype.DONE=2;Object.defineProperties(JA.prototype,{EMPTY:ha,LOADING:ha,DONE:ha,readAsArrayBuffer:Ke,readAsBinaryString:Ke,readAsText:Ke,readAsDataURL:Ke,abort:Ke,readyState:Ke,result:Ke,error:Ke,onloadstart:Ke,onprogress:Ke,onload:Ke,onabort:Ke,onerror:Ke,onloadend:Ke,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(JA,{EMPTY:ha,LOADING:ha,DONE:ha});A9.exports={FileReader:JA}});var Us=E((_S,a9)=>{"use strict";a9.exports={kConstruct:Symbol("constructable")}});var s9=E((qS,i9)=>{"use strict";var Yy=require("assert"),{URLSerializer:r9}=MA(),{isValidHeaderName:Jy}=fA();function Gy(e,A,t=!1){let a=r9(e,t),r=r9(A,t);return a===r}function xy(e){Yy(e!==null);let A=[];for(let t of e.split(",")){if(t=t.trim(),t.length){if(!Jy(t))continue}else continue;A.push(t)}return A}i9.exports={urlEquals:Gy,fieldValues:xy}});var g9=E((HS,l9)=>{"use strict";var{kConstruct:_y}=Us(),{urlEquals:qy,fieldValues:qp}=s9(),{kEnumerableProperty:B1,isDisturbed:Hy}=q(),{kHeadersList:n9}=re(),{webidl:N}=Ge(),{Response:d9,cloneResponse:Oy}=hs(),{Request:rt}=wr(),{kState:Oe,kHeaders:Ts,kGuard:o9,kRealm:Py}=Et(),{fetching:Wy}=Ss(),{urlIsHttpHttpsScheme:Ms,createDeferredPromise:Ia,readAllBytes:jy}=fA(),Hp=require("assert"),{getGlobalDispatcher:Zy}=ca(),Vs=class e{#e;constructor(){arguments[0]!==_y&&N.illegalConstructor(),this.#e=arguments[1]}async match(A,t={}){N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,{header:"Cache.match"}),A=N.converters.RequestInfo(A),t=N.converters.CacheQueryOptions(t);let a=await this.matchAll(A,t);if(a.length!==0)return a[0]}async matchAll(A=void 0,t={}){N.brandCheck(this,e),A!==void 0&&(A=N.converters.RequestInfo(A)),t=N.converters.CacheQueryOptions(t);let a=null;if(A!==void 0)if(A instanceof rt){if(a=A[Oe],a.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(a=new rt(A)[Oe]);let r=[];if(A===void 0)for(let s of this.#e)r.push(s[1]);else{let s=this.#A(a,t);for(let n of s)r.push(n[1])}let i=[];for(let s of r){let n=new d9(s.body?.source??null),o=n[Oe].body;n[Oe]=s,n[Oe].body=o,n[Ts][n9]=s.headersList,n[Ts][o9]="immutable",i.push(n)}return Object.freeze(i)}async add(A){N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,{header:"Cache.add"}),A=N.converters.RequestInfo(A);let t=[A];return await this.addAll(t)}async addAll(A){N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,{header:"Cache.addAll"}),A=N.converters["sequence<RequestInfo>"](A);let t=[],a=[];for(let p of A){if(typeof p=="string")continue;let g=p[Oe];if(!Ms(g.url)||g.method!=="GET")throw N.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}let r=[];for(let p of A){let g=new rt(p)[Oe];if(!Ms(g.url))throw N.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."});g.initiator="fetch",g.destination="subresource",a.push(g);let c=Ia();r.push(Wy({request:g,dispatcher:Zy(),processResponse(u){if(u.type==="error"||u.status===206||u.status<200||u.status>299)c.reject(N.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(u.headersList.contains("vary")){let Q=qp(u.headersList.get("vary"));for(let m of Q)if(m==="*"){c.reject(N.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let C of r)C.abort();return}}},processResponseEndOfBody(u){if(u.aborted){c.reject(new DOMException("aborted","AbortError"));return}c.resolve(u)}})),t.push(c.promise)}let s=await Promise.all(t),n=[],o=0;for(let p of s){let g={type:"put",request:a[o],response:p};n.push(g),o++}let d=Ia(),l=null;try{this.#a(n)}catch(p){l=p}return queueMicrotask(()=>{l===null?d.resolve(void 0):d.reject(l)}),d.promise}async put(A,t){N.brandCheck(this,e),N.argumentLengthCheck(arguments,2,{header:"Cache.put"}),A=N.converters.RequestInfo(A),t=N.converters.Response(t);let a=null;if(A instanceof rt?a=A[Oe]:a=new rt(A)[Oe],!Ms(a.url)||a.method!=="GET")throw N.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"});let r=t[Oe];if(r.status===206)throw N.errors.exception({header:"Cache.put",message:"Got 206 status"});if(r.headersList.contains("vary")){let g=qp(r.headersList.get("vary"));for(let c of g)if(c==="*")throw N.errors.exception({header:"Cache.put",message:"Got * vary field value"})}if(r.body&&(Hy(r.body.stream)||r.body.stream.locked))throw N.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"});let i=Oy(r),s=Ia();if(r.body!=null){let c=r.body.stream.getReader();jy(c,u=>s.resolve(u),u=>s.reject(u))}else s.resolve(void 0);let n=[],o={type:"put",request:a,response:i};n.push(o);let d=await s.promise;i.body!=null&&(i.body.source=d);let l=Ia(),p=null;try{this.#a(n)}catch(g){p=g}return queueMicrotask(()=>{p===null?l.resolve():l.reject(p)}),l.promise}async delete(A,t={}){N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,{header:"Cache.delete"}),A=N.converters.RequestInfo(A),t=N.converters.CacheQueryOptions(t);let a=null;if(A instanceof rt){if(a=A[Oe],a.method!=="GET"&&!t.ignoreMethod)return!1}else Hp(typeof A=="string"),a=new rt(A)[Oe];let r=[],i={type:"delete",request:a,options:t};r.push(i);let s=Ia(),n=null,o;try{o=this.#a(r)}catch(d){n=d}return queueMicrotask(()=>{n===null?s.resolve(!!o?.length):s.reject(n)}),s.promise}async keys(A=void 0,t={}){N.brandCheck(this,e),A!==void 0&&(A=N.converters.RequestInfo(A)),t=N.converters.CacheQueryOptions(t);let a=null;if(A!==void 0)if(A instanceof rt){if(a=A[Oe],a.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(a=new rt(A)[Oe]);let r=Ia(),i=[];if(A===void 0)for(let s of this.#e)i.push(s[0]);else{let s=this.#A(a,t);for(let n of s)i.push(n[0])}return queueMicrotask(()=>{let s=[];for(let n of i){let o=new rt("https://a");o[Oe]=n,o[Ts][n9]=n.headersList,o[Ts][o9]="immutable",o[Py]=n.client,s.push(o)}r.resolve(Object.freeze(s))}),r.promise}#a(A){let t=this.#e,a=[...t],r=[],i=[];try{for(let s of A){if(s.type!=="delete"&&s.type!=="put")throw N.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(s.type==="delete"&&s.response!=null)throw N.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#A(s.request,s.options,r).length)throw new DOMException("???","InvalidStateError");let n;if(s.type==="delete"){if(n=this.#A(s.request,s.options),n.length===0)return[];for(let o of n){let d=t.indexOf(o);Hp(d!==-1),t.splice(d,1)}}else if(s.type==="put"){if(s.response==null)throw N.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let o=s.request;if(!Ms(o.url))throw N.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(o.method!=="GET")throw N.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(s.options!=null)throw N.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});n=this.#A(s.request);for(let d of n){let l=t.indexOf(d);Hp(l!==-1),t.splice(l,1)}t.push([s.request,s.response]),r.push([s.request,s.response])}i.push([s.request,s.response])}return i}catch(s){throw this.#e.length=0,this.#e=a,s}}#A(A,t,a){let r=[],i=a??this.#e;for(let s of i){let[n,o]=s;this.#t(A,n,o,t)&&r.push(s)}return r}#t(A,t,a=null,r){let i=new URL(A.url),s=new URL(t.url);if(r?.ignoreSearch&&(s.search="",i.search=""),!qy(i,s,!0))return!1;if(a==null||r?.ignoreVary||!a.headersList.contains("vary"))return!0;let n=qp(a.headersList.get("vary"));for(let o of n){if(o==="*")return!1;let d=t.headersList.get(o),l=A.headersList.get(o);if(d!==l)return!1}return!0}};Object.defineProperties(Vs.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:B1,matchAll:B1,add:B1,addAll:B1,put:B1,delete:B1,keys:B1});var p9=[{key:"ignoreSearch",converter:N.converters.boolean,defaultValue:!1},{key:"ignoreMethod",converter:N.converters.boolean,defaultValue:!1},{key:"ignoreVary",converter:N.converters.boolean,defaultValue:!1}];N.converters.CacheQueryOptions=N.dictionaryConverter(p9);N.converters.MultiCacheQueryOptions=N.dictionaryConverter([...p9,{key:"cacheName",converter:N.converters.DOMString}]);N.converters.Response=N.interfaceConverter(d9);N.converters["sequence<RequestInfo>"]=N.sequenceConverter(N.converters.RequestInfo);l9.exports={Cache:Vs}});var u9=E((OS,c9)=>{"use strict";var{kConstruct:vr}=Us(),{Cache:Ys}=g9(),{webidl:Pe}=Ge(),{kEnumerableProperty:Rr}=q(),Js=class e{#e=new Map;constructor(){arguments[0]!==vr&&Pe.illegalConstructor()}async match(A,t={}){if(Pe.brandCheck(this,e),Pe.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"}),A=Pe.converters.RequestInfo(A),t=Pe.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#e.has(t.cacheName)){let a=this.#e.get(t.cacheName);return await new Ys(vr,a).match(A,t)}}else for(let a of this.#e.values()){let i=await new Ys(vr,a).match(A,t);if(i!==void 0)return i}}async has(A){return Pe.brandCheck(this,e),Pe.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"}),A=Pe.converters.DOMString(A),this.#e.has(A)}async open(A){if(Pe.brandCheck(this,e),Pe.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"}),A=Pe.converters.DOMString(A),this.#e.has(A)){let a=this.#e.get(A);return new Ys(vr,a)}let t=[];return this.#e.set(A,t),new Ys(vr,t)}async delete(A){return Pe.brandCheck(this,e),Pe.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"}),A=Pe.converters.DOMString(A),this.#e.delete(A)}async keys(){return Pe.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(Js.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:Rr,has:Rr,open:Rr,delete:Rr,keys:Rr});c9.exports={CacheStorage:Js}});var Q9=E((PS,E9)=>{"use strict";E9.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var Op=E((WS,B9)=>{"use strict";var C9=require("assert"),{kHeadersList:m9}=re();function Xy(e){if(e.length===0)return!1;for(let A of e){let t=A.charCodeAt(0);if(t>=0||t<=8||t>=10||t<=31||t===127)return!1}}function zy(e){for(let A of e){let t=A.charCodeAt(0);if(t<=32||t>127||A==="("||A===")"||A===">"||A==="<"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}")throw new Error("Invalid cookie name")}}function Ky(e){for(let A of e){let t=A.charCodeAt(0);if(t<33||t===34||t===44||t===59||t===92||t>126)throw new Error("Invalid header value")}}function $y(e){for(let A of e)if(A.charCodeAt(0)<33||A===";")throw new Error("Invalid cookie path")}function eD(e){if(e.startsWith("-")||e.endsWith(".")||e.endsWith("-"))throw new Error("Invalid cookie domain")}function AD(e){typeof e=="number"&&(e=new Date(e));let A=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],a=A[e.getUTCDay()],r=e.getUTCDate().toString().padStart(2,"0"),i=t[e.getUTCMonth()],s=e.getUTCFullYear(),n=e.getUTCHours().toString().padStart(2,"0"),o=e.getUTCMinutes().toString().padStart(2,"0"),d=e.getUTCSeconds().toString().padStart(2,"0");return`${a}, ${r} ${i} ${s} ${n}:${o}:${d} GMT`}function tD(e){if(e<0)throw new Error("Invalid cookie max-age")}function aD(e){if(e.name.length===0)return null;zy(e.name),Ky(e.value);let A=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&A.push("Secure"),e.httpOnly&&A.push("HttpOnly"),typeof e.maxAge=="number"&&(tD(e.maxAge),A.push(`Max-Age=${e.maxAge}`)),e.domain&&(eD(e.domain),A.push(`Domain=${e.domain}`)),e.path&&($y(e.path),A.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&A.push(`Expires=${AD(e.expires)}`),e.sameSite&&A.push(`SameSite=${e.sameSite}`);for(let t of e.unparsed){if(!t.includes("="))throw new Error("Invalid unparsed");let[a,...r]=t.split("=");A.push(`${a.trim()}=${r.join("=")}`)}return A.join("; ")}var Gs;function rD(e){if(e[m9])return e[m9];Gs||(Gs=Object.getOwnPropertySymbols(e).find(t=>t.description==="headers list"),C9(Gs,"Headers cannot be parsed"));let A=e[Gs];return C9(A),A}B9.exports={isCTLExcludingHtab:Xy,stringify:aD,getHeadersList:rD}});var I9=E((jS,h9)=>{"use strict";var{maxNameValuePairSize:iD,maxAttributeValueSize:sD}=Q9(),{isCTLExcludingHtab:nD}=Op(),{collectASequenceOfCodePointsFast:xs}=MA(),oD=require("assert");function dD(e){if(nD(e))return null;let A="",t="",a="",r="";if(e.includes(";")){let i={position:0};A=xs(";",e,i),t=e.slice(i.position)}else A=e;if(!A.includes("="))r=A;else{let i={position:0};a=xs("=",A,i),r=A.slice(i.position+1)}return a=a.trim(),r=r.trim(),a.length+r.length>iD?null:{name:a,value:r,...fa(t)}}function fa(e,A={}){if(e.length===0)return A;oD(e[0]===";"),e=e.slice(1);let t="";e.includes(";")?(t=xs(";",e,{position:0}),e=e.slice(t.length)):(t=e,e="");let a="",r="";if(t.includes("=")){let s={position:0};a=xs("=",t,s),r=t.slice(s.position+1)}else a=t;if(a=a.trim(),r=r.trim(),r.length>sD)return fa(e,A);let i=a.toLowerCase();if(i==="expires"){let s=new Date(r);A.expires=s}else if(i==="max-age"){let s=r.charCodeAt(0);if((s<48||s>57)&&r[0]!=="-"||!/^\d+$/.test(r))return fa(e,A);let n=Number(r);A.maxAge=n}else if(i==="domain"){let s=r;s[0]==="."&&(s=s.slice(1)),s=s.toLowerCase(),A.domain=s}else if(i==="path"){let s="";r.length===0||r[0]!=="/"?s="/":s=r,A.path=s}else if(i==="secure")A.secure=!0;else if(i==="httponly")A.httpOnly=!0;else if(i==="samesite"){let s="Default",n=r.toLowerCase();n.includes("none")&&(s="None"),n.includes("strict")&&(s="Strict"),n.includes("lax")&&(s="Lax"),A.sameSite=s}else A.unparsed??=[],A.unparsed.push(`${a}=${r}`);return fa(e,A)}h9.exports={parseSetCookie:dD,parseUnparsedAttributes:fa}});var D9=E((ZS,y9)=>{"use strict";var{parseSetCookie:pD}=I9(),{stringify:f9,getHeadersList:lD}=Op(),{webidl:G}=Ge(),{Headers:_s}=Q1();function gD(e){G.argumentLengthCheck(arguments,1,{header:"getCookies"}),G.brandCheck(e,_s,{strict:!1});let A=e.get("cookie"),t={};if(!A)return t;for(let a of A.split(";")){let[r,...i]=a.split("=");t[r.trim()]=i.join("=")}return t}function cD(e,A,t){G.argumentLengthCheck(arguments,2,{header:"deleteCookie"}),G.brandCheck(e,_s,{strict:!1}),A=G.converters.DOMString(A),t=G.converters.DeleteCookieAttributes(t),w9(e,{name:A,value:"",expires:new Date(0),...t})}function uD(e){G.argumentLengthCheck(arguments,1,{header:"getSetCookies"}),G.brandCheck(e,_s,{strict:!1});let A=lD(e).cookies;return A?A.map(t=>pD(Array.isArray(t)?t[1]:t)):[]}function w9(e,A){G.argumentLengthCheck(arguments,2,{header:"setCookie"}),G.brandCheck(e,_s,{strict:!1}),A=G.converters.Cookie(A),f9(A)&&e.append("Set-Cookie",f9(A))}G.converters.DeleteCookieAttributes=G.dictionaryConverter([{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:null}]);G.converters.Cookie=G.dictionaryConverter([{converter:G.converters.DOMString,key:"name"},{converter:G.converters.DOMString,key:"value"},{converter:G.nullableConverter(e=>typeof e=="number"?G.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:null},{converter:G.nullableConverter(G.converters["long long"]),key:"maxAge",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:null},{converter:G.nullableConverter(G.converters.boolean),key:"secure",defaultValue:null},{converter:G.nullableConverter(G.converters.boolean),key:"httpOnly",defaultValue:null},{converter:G.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:G.sequenceConverter(G.converters.DOMString),key:"unparsed",defaultValue:[]}]);y9.exports={getCookies:gD,deleteCookie:cD,getSetCookies:uD,setCookie:w9}});var wa=E((XS,v9)=>{"use strict";var ED="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",QD={enumerable:!0,writable:!1,configurable:!1},CD={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},mD={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},BD=2**16-1,hD={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},ID=Buffer.allocUnsafe(0);v9.exports={uid:ED,staticPropertyDescriptors:QD,states:CD,opcodes:mD,maxUnsigned16Bit:BD,parserStates:hD,emptyBuffer:ID}});var Nr=E((zS,R9)=>{"use strict";R9.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var Wp=E((KS,N9)=>{"use strict";var{webidl:b}=Ge(),{kEnumerableProperty:$e}=q(),{MessagePort:fD}=require("worker_threads"),qs=class e extends Event{#e;constructor(A,t={}){b.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"}),A=b.converters.DOMString(A),t=b.converters.MessageEventInit(t),super(A,t),this.#e=t}get data(){return b.brandCheck(this,e),this.#e.data}get origin(){return b.brandCheck(this,e),this.#e.origin}get lastEventId(){return b.brandCheck(this,e),this.#e.lastEventId}get source(){return b.brandCheck(this,e),this.#e.source}get ports(){return b.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(A,t=!1,a=!1,r=null,i="",s="",n=null,o=[]){return b.brandCheck(this,e),b.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"}),new e(A,{bubbles:t,cancelable:a,data:r,origin:i,lastEventId:s,source:n,ports:o})}},Hs=class e extends Event{#e;constructor(A,t={}){b.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"}),A=b.converters.DOMString(A),t=b.converters.CloseEventInit(t),super(A,t),this.#e=t}get wasClean(){return b.brandCheck(this,e),this.#e.wasClean}get code(){return b.brandCheck(this,e),this.#e.code}get reason(){return b.brandCheck(this,e),this.#e.reason}},Os=class e extends Event{#e;constructor(A,t){b.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"}),super(A,t),A=b.converters.DOMString(A),t=b.converters.ErrorEventInit(t??{}),this.#e=t}get message(){return b.brandCheck(this,e),this.#e.message}get filename(){return b.brandCheck(this,e),this.#e.filename}get lineno(){return b.brandCheck(this,e),this.#e.lineno}get colno(){return b.brandCheck(this,e),this.#e.colno}get error(){return b.brandCheck(this,e),this.#e.error}};Object.defineProperties(qs.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:$e,origin:$e,lastEventId:$e,source:$e,ports:$e,initMessageEvent:$e});Object.defineProperties(Hs.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:$e,code:$e,wasClean:$e});Object.defineProperties(Os.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:$e,filename:$e,lineno:$e,colno:$e,error:$e});b.converters.MessagePort=b.interfaceConverter(fD);b.converters["sequence<MessagePort>"]=b.sequenceConverter(b.converters.MessagePort);var Pp=[{key:"bubbles",converter:b.converters.boolean,defaultValue:!1},{key:"cancelable",converter:b.converters.boolean,defaultValue:!1},{key:"composed",converter:b.converters.boolean,defaultValue:!1}];b.converters.MessageEventInit=b.dictionaryConverter([...Pp,{key:"data",converter:b.converters.any,defaultValue:null},{key:"origin",converter:b.converters.USVString,defaultValue:""},{key:"lastEventId",converter:b.converters.DOMString,defaultValue:""},{key:"source",converter:b.nullableConverter(b.converters.MessagePort),defaultValue:null},{key:"ports",converter:b.converters["sequence<MessagePort>"],get defaultValue(){return[]}}]);b.converters.CloseEventInit=b.dictionaryConverter([...Pp,{key:"wasClean",converter:b.converters.boolean,defaultValue:!1},{key:"code",converter:b.converters["unsigned short"],defaultValue:0},{key:"reason",converter:b.converters.USVString,defaultValue:""}]);b.converters.ErrorEventInit=b.dictionaryConverter([...Pp,{key:"message",converter:b.converters.DOMString,defaultValue:""},{key:"filename",converter:b.converters.USVString,defaultValue:""},{key:"lineno",converter:b.converters["unsigned long"],defaultValue:0},{key:"colno",converter:b.converters["unsigned long"],defaultValue:0},{key:"error",converter:b.converters.any}]);N9.exports={MessageEvent:qs,CloseEvent:Hs,ErrorEvent:Os}});var js=E(($S,F9)=>{"use strict";var{kReadyState:Ps,kController:wD,kResponse:yD,kBinaryType:DD,kWebSocketURL:vD}=Nr(),{states:Ws,opcodes:b9}=wa(),{MessageEvent:RD,ErrorEvent:ND}=Wp();function bD(e){return e[Ps]===Ws.OPEN}function SD(e){return e[Ps]===Ws.CLOSING}function FD(e){return e[Ps]===Ws.CLOSED}function jp(e,A,t=Event,a){let r=new t(e,a);A.dispatchEvent(r)}function kD(e,A,t){if(e[Ps]!==Ws.OPEN)return;let a;if(A===b9.TEXT)try{a=new TextDecoder("utf-8",{fatal:!0}).decode(t)}catch{S9(e,"Received invalid UTF-8 in text frame.");return}else A===b9.BINARY&&(e[DD]==="blob"?a=new Blob([t]):a=new Uint8Array(t).buffer);jp("message",e,RD,{origin:e[vD].origin,data:a})}function LD(e){if(e.length===0)return!1;for(let A of e){let t=A.charCodeAt(0);if(t<33||t>126||A==="("||A===")"||A==="<"||A===">"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}"||t===32||t===9)return!1}return!0}function UD(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function S9(e,A){let{[wD]:t,[yD]:a}=e;t.abort(),a?.socket&&!a.socket.destroyed&&a.socket.destroy(),A&&jp("error",e,ND,{error:new Error(A)})}F9.exports={isEstablished:bD,isClosing:SD,isClosed:FD,fireEvent:jp,isValidSubprotocol:LD,isValidStatusCode:UD,failWebsocketConnection:S9,websocketMessageReceived:kD}});var V9=E((eF,M9)=>{"use strict";var{randomBytes:TD,createHash:MD}=require("crypto"),Zp=require("diagnostics_channel"),{uid:VD,states:L9}=wa(),{kReadyState:U9,kSentClose:k9,kByteParser:T9,kReceivedClose:YD}=Nr(),{fireEvent:JD,failWebsocketConnection:h1}=js(),{CloseEvent:GD}=Wp(),{makeRequest:xD}=wr(),{fetching:_D}=Ss(),{Headers:qD}=Q1(),{getGlobalDispatcher:HD}=ca(),{kHeadersList:OD}=re(),wt={};wt.open=Zp.channel("undici:websocket:open");wt.close=Zp.channel("undici:websocket:close");wt.socketError=Zp.channel("undici:websocket:socket_error");function PD(e,A,t,a,r){let i=e;i.protocol=e.protocol==="ws:"?"http:":"https:";let s=xD({urlList:[i],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(r.headers){let l=new qD(r.headers)[OD];s.headersList=l}let n=TD(16).toString("base64");s.headersList.append("sec-websocket-key",n),s.headersList.append("sec-websocket-version","13");for(let l of A)s.headersList.append("sec-websocket-protocol",l);let o="";return _D({request:s,useParallelQueue:!0,dispatcher:r.dispatcher??HD(),processResponse(l){if(l.type==="error"||l.status!==101){h1(t,"Received network error or non-101 status code.");return}if(A.length!==0&&!l.headersList.get("Sec-WebSocket-Protocol")){h1(t,"Server did not respond with sent protocols.");return}if(l.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){h1(t,'Server did not set Upgrade header to "websocket".');return}if(l.headersList.get("Connection")?.toLowerCase()!=="upgrade"){h1(t,'Server did not set Connection header to "upgrade".');return}let p=l.headersList.get("Sec-WebSocket-Accept"),g=MD("sha1").update(n+VD).digest("base64");if(p!==g){h1(t,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let c=l.headersList.get("Sec-WebSocket-Extensions");if(c!==null&&c!==o){h1(t,"Received different permessage-deflate than the one set.");return}let u=l.headersList.get("Sec-WebSocket-Protocol");if(u!==null&&u!==s.headersList.get("Sec-WebSocket-Protocol")){h1(t,"Protocol was not set in the opening handshake.");return}l.socket.on("data",WD),l.socket.on("close",jD),l.socket.on("error",ZD),wt.open.hasSubscribers&&wt.open.publish({address:l.socket.address(),protocol:u,extensions:c}),a(l)}})}function WD(e){this.ws[T9].write(e)||this.pause()}function jD(){let{ws:e}=this,A=e[k9]&&e[YD],t=1005,a="",r=e[T9].closingInfo;r?(t=r.code??1005,a=r.reason):e[k9]||(t=1006),e[U9]=L9.CLOSED,JD("close",e,GD,{wasClean:A,code:t,reason:a}),wt.close.hasSubscribers&&wt.close.publish({websocket:e,code:t,reason:a})}function ZD(e){let{ws:A}=this;A[U9]=L9.CLOSING,wt.socketError.hasSubscribers&&wt.socketError.publish(e),this.destroy()}M9.exports={establishWebSocketConnection:PD}});var zp=E((AF,Y9)=>{"use strict";var{randomBytes:XD}=require("crypto"),{maxUnsigned16Bit:zD}=wa(),Xp=class{constructor(A){this.frameData=A,this.maskKey=XD(4)}createFrame(A){let t=this.frameData?.byteLength??0,a=t,r=6;t>zD?(r+=8,a=127):t>125&&(r+=2,a=126);let i=Buffer.allocUnsafe(t+r);i[0]=i[1]=0,i[0]|=128,i[0]=(i[0]&240)+A;i[r-4]=this.maskKey[0],i[r-3]=this.maskKey[1],i[r-2]=this.maskKey[2],i[r-1]=this.maskKey[3],i[1]=a,a===126?i.writeUInt16BE(t,2):a===127&&(i[2]=i[3]=0,i.writeUIntBE(t,4,6)),i[1]|=128;for(let s=0;s<t;s++)i[r+s]=this.frameData[s]^this.maskKey[s%4];return i}};Y9.exports={WebsocketFrameSend:Xp}});var P9=E((tF,O9)=>{"use strict";var{Writable:KD}=require("stream"),H9=require("diagnostics_channel"),{parserStates:NA,opcodes:bA,states:$D,emptyBuffer:ev}=wa(),{kReadyState:Av,kSentClose:J9,kResponse:G9,kReceivedClose:x9}=Nr(),{isValidStatusCode:_9,failWebsocketConnection:br,websocketMessageReceived:tv}=js(),{WebsocketFrameSend:q9}=zp(),ya={};ya.ping=H9.channel("undici:websocket:ping");ya.pong=H9.channel("undici:websocket:pong");var Kp=class extends KD{#e=[];#a=0;#A=NA.INFO;#t={};#r=[];constructor(A){super(),this.ws=A}_write(A,t,a){this.#e.push(A),this.#a+=A.length,this.run(a)}run(A){for(;;){if(this.#A===NA.INFO){if(this.#a<2)return A();let t=this.consume(2);if(this.#t.fin=(t[0]&128)!==0,this.#t.opcode=t[0]&15,this.#t.originalOpcode??=this.#t.opcode,this.#t.fragmented=!this.#t.fin&&this.#t.opcode!==bA.CONTINUATION,this.#t.fragmented&&this.#t.opcode!==bA.BINARY&&this.#t.opcode!==bA.TEXT){br(this.ws,"Invalid frame type was fragmented.");return}let a=t[1]&127;if(a<=125?(this.#t.payloadLength=a,this.#A=NA.READ_DATA):a===126?this.#A=NA.PAYLOADLENGTH_16:a===127&&(this.#A=NA.PAYLOADLENGTH_64),this.#t.fragmented&&a>125){br(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#t.opcode===bA.PING||this.#t.opcode===bA.PONG||this.#t.opcode===bA.CLOSE)&&a>125){br(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#t.opcode===bA.CLOSE){if(a===1){br(this.ws,"Received close frame with a 1-byte body.");return}let r=this.consume(a);if(this.#t.closeInfo=this.parseCloseBody(!1,r),!this.ws[J9]){let i=Buffer.allocUnsafe(2);i.writeUInt16BE(this.#t.closeInfo.code,0);let s=new q9(i);this.ws[G9].socket.write(s.createFrame(bA.CLOSE),n=>{n||(this.ws[J9]=!0)})}this.ws[Av]=$D.CLOSING,this.ws[x9]=!0,this.end();return}else if(this.#t.opcode===bA.PING){let r=this.consume(a);if(!this.ws[x9]){let i=new q9(r);this.ws[G9].socket.write(i.createFrame(bA.PONG)),ya.ping.hasSubscribers&&ya.ping.publish({payload:r})}if(this.#A=NA.INFO,this.#a>0)continue;A();return}else if(this.#t.opcode===bA.PONG){let r=this.consume(a);if(ya.pong.hasSubscribers&&ya.pong.publish({payload:r}),this.#a>0)continue;A();return}}else if(this.#A===NA.PAYLOADLENGTH_16){if(this.#a<2)return A();let t=this.consume(2);this.#t.payloadLength=t.readUInt16BE(0),this.#A=NA.READ_DATA}else if(this.#A===NA.PAYLOADLENGTH_64){if(this.#a<8)return A();let t=this.consume(8),a=t.readUInt32BE(0);if(a>2**31-1){br(this.ws,"Received payload length > 2^31 bytes.");return}let r=t.readUInt32BE(4);this.#t.payloadLength=(a<<8)+r,this.#A=NA.READ_DATA}else if(this.#A===NA.READ_DATA){if(this.#a<this.#t.payloadLength)return A();if(this.#a>=this.#t.payloadLength){let t=this.consume(this.#t.payloadLength);if(this.#r.push(t),!this.#t.fragmented||this.#t.fin&&this.#t.opcode===bA.CONTINUATION){let a=Buffer.concat(this.#r);tv(this.ws,this.#t.originalOpcode,a),this.#t={},this.#r.length=0}this.#A=NA.INFO}}if(!(this.#a>0)){A();break}}}consume(A){if(A>this.#a)return null;if(A===0)return ev;if(this.#e[0].length===A)return this.#a-=this.#e[0].length,this.#e.shift();let t=Buffer.allocUnsafe(A),a=0;for(;a!==A;){let r=this.#e[0],{length:i}=r;if(i+a===A){t.set(this.#e.shift(),a);break}else if(i+a>A){t.set(r.subarray(0,A-a),a),this.#e[0]=r.subarray(A-a);break}else t.set(this.#e.shift(),a),a+=r.length}return this.#a-=A,t}parseCloseBody(A,t){let a;if(t.length>=2&&(a=t.readUInt16BE(0)),A)return _9(a)?{code:a}:null;let r=t.subarray(2);if(r[0]===239&&r[1]===187&&r[2]===191&&(r=r.subarray(3)),a!==void 0&&!_9(a))return null;try{r=new TextDecoder("utf-8",{fatal:!0}).decode(r)}catch{return null}return{code:a,reason:r}}get closingInfo(){return this.#t.closeInfo}};O9.exports={ByteParser:Kp}});var eE=E((aF,$9)=>{"use strict";var{webidl:k}=Ge(),{DOMException:Ot}=Mt(),{URLSerializer:av}=MA(),{staticPropertyDescriptors:Pt,states:Da,opcodes:Sr,emptyBuffer:rv}=wa(),{kWebSocketURL:W9,kReadyState:yt,kController:iv,kBinaryType:Zs,kResponse:Xs,kSentClose:sv,kByteParser:nv}=Nr(),{isEstablished:j9,isClosing:Z9,isValidSubprotocol:ov,failWebsocketConnection:dv,fireEvent:pv}=js(),{establishWebSocketConnection:lv}=V9(),{WebsocketFrameSend:Fr}=zp(),{ByteParser:gv}=P9(),{kEnumerableProperty:SA,isBlobLike:z9}=q(),{getGlobalDispatcher:cv}=ca(),{types:K9}=require("util"),X9=!1,cA=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#a=0;#A="";#t="";constructor(A,t=[]){super(),k.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"}),X9||(X9=!0,process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"}));let a=k.converters["DOMString or sequence<DOMString> or WebSocketInit"](t);A=k.converters.USVString(A),t=a.protocols;let r;try{r=new URL(A)}catch(i){throw new Ot(i,"SyntaxError")}if(r.protocol!=="ws:"&&r.protocol!=="wss:")throw new Ot(`Expected a ws: or wss: protocol, got ${r.protocol}`,"SyntaxError");if(r.hash)throw new Ot("Got fragment","SyntaxError");if(typeof t=="string"&&(t=[t]),t.length!==new Set(t.map(i=>i.toLowerCase())).size)throw new Ot("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(t.length>0&&!t.every(i=>ov(i)))throw new Ot("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[W9]=r,this[iv]=lv(r,t,this,i=>this.#r(i),a),this[yt]=e.CONNECTING,this[Zs]="blob"}close(A=void 0,t=void 0){if(k.brandCheck(this,e),A!==void 0&&(A=k.converters["unsigned short"](A,{clamp:!0})),t!==void 0&&(t=k.converters.USVString(t)),A!==void 0&&A!==1e3&&(A<3e3||A>4999))throw new Ot("invalid code","InvalidAccessError");let a=0;if(t!==void 0&&(a=Buffer.byteLength(t),a>123))throw new Ot(`Reason must be less than 123 bytes; received ${a}`,"SyntaxError");if(!(this[yt]===e.CLOSING||this[yt]===e.CLOSED))if(!j9(this))dv(this,"Connection was closed before it was established."),this[yt]=e.CLOSING;else if(Z9(this))this[yt]=e.CLOSING;else{let r=new Fr;A!==void 0&&t===void 0?(r.frameData=Buffer.allocUnsafe(2),r.frameData.writeUInt16BE(A,0)):A!==void 0&&t!==void 0?(r.frameData=Buffer.allocUnsafe(2+a),r.frameData.writeUInt16BE(A,0),r.frameData.write(t,2,"utf-8")):r.frameData=rv,this[Xs].socket.write(r.createFrame(Sr.CLOSE),s=>{s||(this[sv]=!0)}),this[yt]=Da.CLOSING}}send(A){if(k.brandCheck(this,e),k.argumentLengthCheck(arguments,1,{header:"WebSocket.send"}),A=k.converters.WebSocketSendData(A),this[yt]===e.CONNECTING)throw new Ot("Sent before connected.","InvalidStateError");if(!j9(this)||Z9(this))return;let t=this[Xs].socket;if(typeof A=="string"){let a=Buffer.from(A),i=new Fr(a).createFrame(Sr.TEXT);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(K9.isArrayBuffer(A)){let a=Buffer.from(A),i=new Fr(a).createFrame(Sr.BINARY);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(ArrayBuffer.isView(A)){let a=Buffer.from(A,A.byteOffset,A.byteLength),i=new Fr(a).createFrame(Sr.BINARY);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(z9(A)){let a=new Fr;A.arrayBuffer().then(r=>{let i=Buffer.from(r);a.frameData=i;let s=a.createFrame(Sr.BINARY);this.#a+=i.byteLength,t.write(s,()=>{this.#a-=i.byteLength})})}}get readyState(){return k.brandCheck(this,e),this[yt]}get bufferedAmount(){return k.brandCheck(this,e),this.#a}get url(){return k.brandCheck(this,e),av(this[W9])}get extensions(){return k.brandCheck(this,e),this.#t}get protocol(){return k.brandCheck(this,e),this.#A}get onopen(){return k.brandCheck(this,e),this.#e.open}set onopen(A){k.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof A=="function"?(this.#e.open=A,this.addEventListener("open",A)):this.#e.open=null}get onerror(){return k.brandCheck(this,e),this.#e.error}set onerror(A){k.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof A=="function"?(this.#e.error=A,this.addEventListener("error",A)):this.#e.error=null}get onclose(){return k.brandCheck(this,e),this.#e.close}set onclose(A){k.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof A=="function"?(this.#e.close=A,this.addEventListener("close",A)):this.#e.close=null}get onmessage(){return k.brandCheck(this,e),this.#e.message}set onmessage(A){k.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof A=="function"?(this.#e.message=A,this.addEventListener("message",A)):this.#e.message=null}get binaryType(){return k.brandCheck(this,e),this[Zs]}set binaryType(A){k.brandCheck(this,e),A!=="blob"&&A!=="arraybuffer"?this[Zs]="blob":this[Zs]=A}#r(A){this[Xs]=A;let t=new gv(this);t.on("drain",function(){this.ws[Xs].socket.resume()}),A.socket.ws=this,this[nv]=t,this[yt]=Da.OPEN;let a=A.headersList.get("sec-websocket-extensions");a!==null&&(this.#t=a);let r=A.headersList.get("sec-websocket-protocol");r!==null&&(this.#A=r),pv("open",this)}};cA.CONNECTING=cA.prototype.CONNECTING=Da.CONNECTING;cA.OPEN=cA.prototype.OPEN=Da.OPEN;cA.CLOSING=cA.prototype.CLOSING=Da.CLOSING;cA.CLOSED=cA.prototype.CLOSED=Da.CLOSED;Object.defineProperties(cA.prototype,{CONNECTING:Pt,OPEN:Pt,CLOSING:Pt,CLOSED:Pt,url:SA,readyState:SA,bufferedAmount:SA,onopen:SA,onerror:SA,onclose:SA,close:SA,onmessage:SA,binaryType:SA,send:SA,extensions:SA,protocol:SA,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(cA,{CONNECTING:Pt,OPEN:Pt,CLOSING:Pt,CLOSED:Pt});k.converters["sequence<DOMString>"]=k.sequenceConverter(k.converters.DOMString);k.converters["DOMString or sequence<DOMString>"]=function(e){return k.util.Type(e)==="Object"&&Symbol.iterator in e?k.converters["sequence<DOMString>"](e):k.converters.DOMString(e)};k.converters.WebSocketInit=k.dictionaryConverter([{key:"protocols",converter:k.converters["DOMString or sequence<DOMString>"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return cv()}},{key:"headers",converter:k.nullableConverter(k.converters.HeadersInit)}]);k.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(e){return k.util.Type(e)==="Object"&&!(Symbol.iterator in e)?k.converters.WebSocketInit(e):{protocols:k.converters["DOMString or sequence<DOMString>"](e)}};k.converters.WebSocketSendData=function(e){if(k.util.Type(e)==="Object"){if(z9(e))return k.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||K9.isAnyArrayBuffer(e))return k.converters.BufferSource(e)}return k.converters.USVString(e)};$9.exports={WebSocket:cA}});var e0=E((rF,V)=>{"use strict";var uv=lr(),AE=Yi(),tE=$(),Ev=aa(),Qv=I6(),Cv=Er(),I1=q(),{InvalidArgumentError:zs}=tE,va=gc(),mv=rr(),Bv=op(),hv=Zc(),Iv=lp(),fv=Xd(),wv=Au(),{getGlobalDispatcher:aE,setGlobalDispatcher:yv}=ca(),Dv=nu(),vv=nd(),Rv=_i(),$p;try{require("crypto"),$p=!0}catch{$p=!1}Object.assign(AE.prototype,va);V.exports.Dispatcher=AE;V.exports.Client=uv;V.exports.Pool=Ev;V.exports.BalancedPool=Qv;V.exports.Agent=Cv;V.exports.ProxyAgent=wv;V.exports.DecoratorHandler=Dv;V.exports.RedirectHandler=vv;V.exports.createRedirectInterceptor=Rv;V.exports.buildConnector=mv;V.exports.errors=tE;function kr(e){return(A,t,a)=>{if(typeof t=="function"&&(a=t,t=null),!A||typeof A!="string"&&typeof A!="object"&&!(A instanceof URL))throw new zs("invalid url");if(t!=null&&typeof t!="object")throw new zs("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new zs("invalid opts.path");let s=t.path;t.path.startsWith("/")||(s=`/${s}`),A=new URL(I1.parseOrigin(A).origin+s)}else t||(t=typeof A=="object"?A:{}),A=I1.parseURL(A);let{agent:r,dispatcher:i=aE()}=t;if(r)throw new zs("unsupported opts.agent. Did you mean opts.client?");return e.call(i,{...t,origin:A.origin,path:A.search?`${A.pathname}${A.search}`:A.pathname,method:t.method||(t.body?"PUT":"GET")},a)}}V.exports.setGlobalDispatcher=yv;V.exports.getGlobalDispatcher=aE;if(I1.nodeMajor>16||I1.nodeMajor===16&&I1.nodeMinor>=8){let e=null;V.exports.fetch=async function(s){e||(e=Ss().fetch);try{return await e(...arguments)}catch(n){throw Error.captureStackTrace(n,this),n}},V.exports.Headers=Q1().Headers,V.exports.Response=hs().Response,V.exports.Request=wr().Request,V.exports.FormData=Mi().FormData,V.exports.File=Ui().File,V.exports.FileReader=t9().FileReader;let{setGlobalOrigin:A,getGlobalOrigin:t}=za();V.exports.setGlobalOrigin=A,V.exports.getGlobalOrigin=t;let{CacheStorage:a}=u9(),{kConstruct:r}=Us();V.exports.caches=new a(r)}if(I1.nodeMajor>=16){let{deleteCookie:e,getCookies:A,getSetCookies:t,setCookie:a}=D9();V.exports.deleteCookie=e,V.exports.getCookies=A,V.exports.getSetCookies=t,V.exports.setCookie=a;let{parseMIMEType:r,serializeAMimeType:i}=MA();V.exports.parseMIMEType=r,V.exports.serializeAMimeType=i}if(I1.nodeMajor>=18&&$p){let{WebSocket:e}=eE();V.exports.WebSocket=e}V.exports.request=kr(va.request);V.exports.stream=kr(va.stream);V.exports.pipeline=kr(va.pipeline);V.exports.connect=kr(va.connect);V.exports.upgrade=kr(va.upgrade);V.exports.MockClient=Bv;V.exports.MockPool=Iv;V.exports.MockAgent=hv;V.exports.mockErrors=fv});var i0=E(r0=>{"use strict";Object.defineProperty(r0,"__esModule",{value:!0});var Sv=function(e,A,t,a){if(typeof e!="string"||e.length===0)throw new TypeError("text should be a string");if(typeof A!="string"||A.length===0)throw new TypeError("lang should be a string");if(typeof t!="boolean")throw new TypeError("slow should be a boolean");if(typeof a!="string"||a.length===0)throw new TypeError("host should be a string")};r0.default=Sv});var n0=E(s0=>{"use strict";Object.defineProperty(s0,"__esModule",{value:!0});var Fv="\\s\\uFEFF\\xA0",kv="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",Lv=function(e,A){for(var t=A===void 0?{}:A,a=t.maxLength,r=a===void 0?200:a,i=t.splitPunct,s=i===void 0?"":i,n=function(u,Q){var m=new RegExp("["+Fv+kv+s+"]");return m.test(u.charAt(Q))},o=function(u,Q,m){for(var C=m;C>=Q;C--)if(n(u,C))return C;return-1},d=[],l=function(u,Q,m){d.push(u.slice(Q,m+1))},p=0;;){if(e.length-p<=r){l(e,p,e.length-1);break}var g=p+r-1;if(n(e,g)||n(e,g+1)){l(e,p,g),p=g+1;continue}if(g=o(e,p,g),g===-1){var c=e.slice(p,p+r);throw new Error("The word is too long to split into a short text:"+(` +`.trim())}};Tc.exports=ip});var qc=E((xb,xc)=>{"use strict";var{kProxy:cf,kClose:uf,kDestroy:Ef,kInterceptors:Qf}=ie(),{URL:Vc}=require("url"),Yc=pr(),mf=$1(),Cf=Ka(),{InvalidArgumentError:ur,RequestAbortedError:Bf}=$(),Jc=$a(),cr=Symbol("proxy agent"),ns=Symbol("proxy client"),os=Symbol("proxy headers"),sp=Symbol("request tls settings"),hf=Symbol("proxy tls settings"),Gc=Symbol("connect endpoint function");function If(e){return e==="https:"?443:80}function ff(e){if(typeof e=="string"&&(e={uri:e}),!e||!e.uri)throw new ur("Proxy opts.uri is mandatory");return{uri:e.uri,protocol:e.protocol||"https"}}function wf(e,A){return new mf(e,A)}var np=class extends Cf{constructor(A){if(super(A),this[cf]=ff(A),this[cr]=new Yc(A),this[Qf]=A.interceptors&&A.interceptors.ProxyAgent&&Array.isArray(A.interceptors.ProxyAgent)?A.interceptors.ProxyAgent:[],typeof A=="string"&&(A={uri:A}),!A||!A.uri)throw new ur("Proxy opts.uri is mandatory");let{clientFactory:t=wf}=A;if(typeof t!="function")throw new ur("Proxy opts.clientFactory must be a function.");if(this[sp]=A.requestTls,this[hf]=A.proxyTls,this[os]=A.headers||{},A.auth&&A.token)throw new ur("opts.auth cannot be used in combination with opts.token");A.auth?this[os]["proxy-authorization"]=`Basic ${A.auth}`:A.token&&(this[os]["proxy-authorization"]=A.token);let a=new Vc(A.uri),{origin:r,port:i,host:s}=a,n=Jc({...A.proxyTls});this[Gc]=Jc({...A.requestTls}),this[ns]=t(a,{connect:n}),this[cr]=new Yc({...A,connect:async(o,d)=>{let l=o.host;o.port||(l+=`:${If(o.protocol)}`);try{let{socket:p,statusCode:g}=await this[ns].connect({origin:r,port:i,path:l,signal:o.signal,headers:{...this[os],host:s}});if(g!==200&&(p.on("error",()=>{}).destroy(),d(new Bf("Proxy response !== 200 when HTTP Tunneling"))),o.protocol!=="https:"){d(null,p);return}let c;this[sp]?c=this[sp].servername:c=o.servername,this[Gc]({...o,servername:c,httpSocket:p},d)}catch(p){d(p)}}})}dispatch(A,t){let{host:a}=new Vc(A.origin),r=yf(A.headers);return Df(r),this[cr].dispatch({...A,headers:{...r,host:a}},t)}async[uf](){await this[cr].close(),await this[ns].close()}async[Ef](){await this[cr].destroy(),await this[ns].destroy()}};function yf(e){if(Array.isArray(e)){let A={};for(let t=0;t<e.length;t+=2)A[e[t]]=e[t+1];return A}return e}function Df(e){if(e&&Object.keys(e).find(t=>t.toLowerCase()==="proxy-authorization"))throw new ur("Proxy-Authorization should be sent in ProxyAgent constructor")}xc.exports=np});var da=E((qb,Wc)=>{"use strict";var Hc=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:Rf}=$(),vf=pr();Pc()===void 0&&Oc(new vf);function Oc(e){if(!e||typeof e.dispatch!="function")throw new Rf("Argument agent must implement Agent");Object.defineProperty(globalThis,Hc,{value:e,writable:!0,enumerable:!1,configurable:!1})}function Pc(){return globalThis[Hc]}Wc.exports={setGlobalDispatcher:Oc,getGlobalDispatcher:Pc}});var jc=E((Ob,Zc)=>{"use strict";Zc.exports=class{constructor(A){this.handler=A}onConnect(...A){return this.handler.onConnect(...A)}onError(...A){return this.handler.onError(...A)}onUpgrade(...A){return this.handler.onUpgrade(...A)}onHeaders(...A){return this.handler.onHeaders(...A)}onData(...A){return this.handler.onData(...A)}onComplete(...A){return this.handler.onComplete(...A)}onBodySent(...A){return this.handler.onBodySent(...A)}}});var l1=E((Pb,$c)=>{"use strict";var{kHeadersList:Xe}=ie(),{kGuard:p1}=lt(),{kEnumerableProperty:$A}=q(),{makeIterator:op,isValidHeaderName:Er,isValidHeaderValue:Xc}=IA(),{webidl:Y}=xe(),Nf=require("assert"),ze=Symbol("headers map"),Ke=Symbol("headers map sorted");function zc(e){let A=e.length;for(;/[\r\n\t ]/.test(e.charAt(--A)););return e.slice(0,A+1).replace(/^[\r\n\t ]+/,"")}function Kc(e,A){if(Array.isArray(A))for(let t of A){if(t.length!==2)throw Y.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${t.length}.`});e.append(t[0],t[1])}else if(typeof A=="object"&&A!==null)for(let[t,a]of Object.entries(A))e.append(t,a);else throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}var ds=class e{cookies=null;constructor(A){A instanceof e?(this[ze]=new Map(A[ze]),this[Ke]=A[Ke],this.cookies=A.cookies):(this[ze]=new Map(A),this[Ke]=null)}contains(A){return A=A.toLowerCase(),this[ze].has(A)}clear(){this[ze].clear(),this[Ke]=null,this.cookies=null}append(A,t){this[Ke]=null;let a=A.toLowerCase(),r=this[ze].get(a);if(r){let i=a==="cookie"?"; ":", ";this[ze].set(a,{name:r.name,value:`${r.value}${i}${t}`})}else this[ze].set(a,{name:A,value:t});a==="set-cookie"&&(this.cookies??=[],this.cookies.push(t))}set(A,t){this[Ke]=null;let a=A.toLowerCase();return a==="set-cookie"&&(this.cookies=[t]),this[ze].set(a,{name:A,value:t})}delete(A){return this[Ke]=null,A=A.toLowerCase(),A==="set-cookie"&&(this.cookies=null),this[ze].delete(A)}get(A){return this.contains(A)?this[ze].get(A.toLowerCase())?.value??null:null}*[Symbol.iterator](){for(let[A,{value:t}]of this[ze])yield[A,t]}get entries(){let A={};if(this[ze].size)for(let{name:t,value:a}of this[ze].values())A[t]=a;return A}},pa=class e{constructor(A=void 0){this[Xe]=new ds,this[p1]="none",A!==void 0&&(A=Y.converters.HeadersInit(A),Kc(this,A))}append(A,t){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,2,{header:"Headers.append"}),A=Y.converters.ByteString(A),t=Y.converters.ByteString(t),t=zc(t),Er(A)){if(!Xc(t))throw Y.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.append",value:A,type:"header name"});if(this[p1]==="immutable")throw new TypeError("immutable");return this[p1],this[Xe].append(A,t)}delete(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.delete"}),A=Y.converters.ByteString(A),!Er(A))throw Y.errors.invalidArgument({prefix:"Headers.delete",value:A,type:"header name"});if(this[p1]==="immutable")throw new TypeError("immutable");if(this[p1],!!this[Xe].contains(A))return this[Xe].delete(A)}get(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.get"}),A=Y.converters.ByteString(A),!Er(A))throw Y.errors.invalidArgument({prefix:"Headers.get",value:A,type:"header name"});return this[Xe].get(A)}has(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.has"}),A=Y.converters.ByteString(A),!Er(A))throw Y.errors.invalidArgument({prefix:"Headers.has",value:A,type:"header name"});return this[Xe].contains(A)}set(A,t){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,2,{header:"Headers.set"}),A=Y.converters.ByteString(A),t=Y.converters.ByteString(t),t=zc(t),Er(A)){if(!Xc(t))throw Y.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.set",value:A,type:"header name"});if(this[p1]==="immutable")throw new TypeError("immutable");return this[p1],this[Xe].set(A,t)}getSetCookie(){Y.brandCheck(this,e);let A=this[Xe].cookies;return A?[...A]:[]}get[Ke](){if(this[Xe][Ke])return this[Xe][Ke];let A=[],t=[...this[Xe]].sort((r,i)=>r[0]<i[0]?-1:1),a=this[Xe].cookies;for(let[r,i]of t)if(r==="set-cookie")for(let s of a)A.push([r,s]);else Nf(i!==null),A.push([r,i]);return this[Xe][Ke]=A,A}keys(){return Y.brandCheck(this,e),op(()=>[...this[Ke].values()],"Headers","key")}values(){return Y.brandCheck(this,e),op(()=>[...this[Ke].values()],"Headers","value")}entries(){return Y.brandCheck(this,e),op(()=>[...this[Ke].values()],"Headers","key+value")}forEach(A,t=globalThis){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.forEach"}),typeof A!="function")throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.");for(let[a,r]of this)A.apply(t,[r,a,this])}[Symbol.for("nodejs.util.inspect.custom")](){return Y.brandCheck(this,e),this[Xe]}};pa.prototype[Symbol.iterator]=pa.prototype.entries;Object.defineProperties(pa.prototype,{append:$A,delete:$A,get:$A,has:$A,set:$A,getSetCookie:$A,keys:$A,values:$A,entries:$A,forEach:$A,[Symbol.iterator]:{enumerable:!1},[Symbol.toStringTag]:{value:"Headers",configurable:!0}});Y.converters.HeadersInit=function(e){if(Y.util.Type(e)==="Object")return e[Symbol.iterator]?Y.converters["sequence<sequence<ByteString>>"](e):Y.converters["record<ByteString, ByteString>"](e);throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};$c.exports={fill:Kc,Headers:pa,HeadersList:ds}});var cs=E((Wb,su)=>{"use strict";var{Headers:bf,HeadersList:eu,fill:Sf}=l1(),{extractBody:Au,cloneBody:Ff,mixinBody:kf}=Xa(),lp=q(),{kEnumerableProperty:pA}=lp,{isValidReasonPhrase:Lf,isCancelled:Uf,isAborted:Tf,isBlobLike:Mf,serializeJavascriptValueToJSONString:Vf,isErrorLike:Yf,isomorphicEncode:Jf}=IA(),{redirectStatus:Gf,nullBodyStatus:xf,DOMException:qf}=kt(),{kState:ae,kHeaders:ve,kGuard:la,kRealm:dA}=lt(),{webidl:M}=xe(),{FormData:Hf}=bi(),{getGlobalOrigin:Of}=Pa(),{URLSerializer:tu}=UA(),{kHeadersList:dp}=ie(),gp=require("assert"),{types:pp}=require("util"),ru=globalThis.ReadableStream||require("stream/web").ReadableStream,ga=class e{static error(){let A={settingsObject:{}},t=new e;return t[ae]=ls(),t[dA]=A,t[ve][dp]=t[ae].headersList,t[ve][la]="immutable",t[ve][dA]=A,t}static json(A=void 0,t={}){M.argumentLengthCheck(arguments,1,{header:"Response.json"}),t!==null&&(t=M.converters.ResponseInit(t));let a=new TextEncoder("utf-8").encode(Vf(A)),r=Au(a),i={settingsObject:{}},s=new e;return s[dA]=i,s[ve][la]="response",s[ve][dA]=i,au(s,t,{body:r[0],type:"application/json"}),s}static redirect(A,t=302){let a={settingsObject:{}};M.argumentLengthCheck(arguments,1,{header:"Response.redirect"}),A=M.converters.USVString(A),t=M.converters["unsigned short"](t);let r;try{r=new URL(A,Of())}catch(n){throw Object.assign(new TypeError("Failed to parse URL from "+A),{cause:n})}if(!Gf.includes(t))throw new RangeError("Invalid status code "+t);let i=new e;i[dA]=a,i[ve][la]="immutable",i[ve][dA]=a,i[ae].status=t;let s=Jf(tu(r));return i[ae].headersList.append("location",s),i}constructor(A=null,t={}){A!==null&&(A=M.converters.BodyInit(A)),t=M.converters.ResponseInit(t),this[dA]={settingsObject:{}},this[ae]=gs({}),this[ve]=new bf,this[ve][la]="response",this[ve][dp]=this[ae].headersList,this[ve][dA]=this[dA];let a=null;if(A!=null){let[r,i]=Au(A);a={body:r,type:i}}au(this,t,a)}get type(){return M.brandCheck(this,e),this[ae].type}get url(){M.brandCheck(this,e);let A=this[ae].urlList,t=A[A.length-1]??null;return t===null?"":tu(t,!0)}get redirected(){return M.brandCheck(this,e),this[ae].urlList.length>1}get status(){return M.brandCheck(this,e),this[ae].status}get ok(){return M.brandCheck(this,e),this[ae].status>=200&&this[ae].status<=299}get statusText(){return M.brandCheck(this,e),this[ae].statusText}get headers(){return M.brandCheck(this,e),this[ve]}get body(){return M.brandCheck(this,e),this[ae].body?this[ae].body.stream:null}get bodyUsed(){return M.brandCheck(this,e),!!this[ae].body&&lp.isDisturbed(this[ae].body.stream)}clone(){if(M.brandCheck(this,e),this.bodyUsed||this.body&&this.body.locked)throw M.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let A=cp(this[ae]),t=new e;return t[ae]=A,t[dA]=this[dA],t[ve][dp]=A.headersList,t[ve][la]=this[ve][la],t[ve][dA]=this[ve][dA],t}};kf(ga);Object.defineProperties(ga.prototype,{type:pA,url:pA,status:pA,ok:pA,redirected:pA,statusText:pA,headers:pA,clone:pA,body:pA,bodyUsed:pA,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(ga,{json:pA,redirect:pA,error:pA});function cp(e){if(e.internalResponse)return iu(cp(e.internalResponse),e.type);let A=gs({...e,body:null});return e.body!=null&&(A.body=Ff(e.body)),A}function gs(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e.headersList?new eu(e.headersList):new eu,urlList:e.urlList?[...e.urlList]:[]}}function ls(e){let A=Yf(e);return gs({type:"error",status:0,error:A?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function ps(e,A){return A={internalResponse:e,...A},new Proxy(e,{get(t,a){return a in A?A[a]:t[a]},set(t,a,r){return gp(!(a in A)),t[a]=r,!0}})}function iu(e,A){if(A==="basic")return ps(e,{type:"basic",headersList:e.headersList});if(A==="cors")return ps(e,{type:"cors",headersList:e.headersList});if(A==="opaque")return ps(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(A==="opaqueredirect")return ps(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});gp(!1)}function Pf(e){return gp(Uf(e)),Tf(e)?ls(new qf("The operation was aborted.","AbortError")):ls("Request was cancelled.")}function au(e,A,t){if(A.status!==null&&(A.status<200||A.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in A&&A.statusText!=null&&!Lf(String(A.statusText)))throw new TypeError("Invalid statusText");if("status"in A&&A.status!=null&&(e[ae].status=A.status),"statusText"in A&&A.statusText!=null&&(e[ae].statusText=A.statusText),"headers"in A&&A.headers!=null&&Sf(e[ve],A.headers),t){if(xf.includes(e.status))throw M.errors.exception({header:"Response constructor",message:"Invalid response status code "+e.status});e[ae].body=t.body,t.type!=null&&!e[ae].headersList.contains("Content-Type")&&e[ae].headersList.append("content-type",t.type)}}M.converters.ReadableStream=M.interfaceConverter(ru);M.converters.FormData=M.interfaceConverter(Hf);M.converters.URLSearchParams=M.interfaceConverter(URLSearchParams);M.converters.XMLHttpRequestBodyInit=function(e){return typeof e=="string"?M.converters.USVString(e):Mf(e)?M.converters.Blob(e,{strict:!1}):pp.isAnyArrayBuffer(e)||pp.isTypedArray(e)||pp.isDataView(e)?M.converters.BufferSource(e):lp.isFormDataLike(e)?M.converters.FormData(e,{strict:!1}):e instanceof URLSearchParams?M.converters.URLSearchParams(e):M.converters.DOMString(e)};M.converters.BodyInit=function(e){return e instanceof ru?M.converters.ReadableStream(e):e?.[Symbol.asyncIterator]?e:M.converters.XMLHttpRequestBodyInit(e)};M.converters.ResponseInit=M.dictionaryConverter([{key:"status",converter:M.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:M.converters.ByteString,defaultValue:""},{key:"headers",converter:M.converters.HeadersInit}]);su.exports={makeNetworkError:ls,makeResponse:gs,makeAppropriateNetworkError:Pf,filterResponse:iu,Response:ga,cloneResponse:cp}});var Cr=E((Zb,cu)=>{"use strict";var{extractBody:Wf,mixinBody:Zf,cloneBody:jf}=Xa(),{Headers:up,fill:Xf,HeadersList:nu}=l1(),{FinalizationRegistry:zf}=wd()(),mr=q(),{isValidHTTPToken:Kf,sameOrigin:ou,normalizeMethod:$f,makePolicyContainer:ew}=IA(),{forbiddenMethods:Aw,corsSafeListedMethods:tw,referrerPolicy:aw,requestRedirect:rw,requestMode:iw,requestCredentials:sw,requestCache:nw,requestDuplex:ow}=kt(),{kEnumerableProperty:Ce}=mr,{kHeaders:Ne,kSignal:Qr,kState:Ae,kGuard:us,kRealm:lA}=lt(),{webidl:S}=xe(),{getGlobalOrigin:dw}=Pa(),{URLSerializer:pw}=UA(),{kHeadersList:Es}=ie(),lw=require("assert"),{getMaxListeners:du,setMaxListeners:pu,getEventListeners:gw,defaultMaxListeners:lu}=require("events"),Ep=globalThis.TransformStream,gu=Symbol("init"),cw=Symbol("abortController"),uw=new zf(({signal:e,abort:A})=>{e.removeEventListener("abort",A)}),g1=class e{constructor(A,t={}){if(A===gu)return;S.argumentLengthCheck(arguments,1,{header:"Request constructor"}),A=S.converters.RequestInfo(A),t=S.converters.RequestInit(t),this[lA]={settingsObject:{baseUrl:dw(),get origin(){return this.baseUrl?.origin},policyContainer:ew()}};let a=null,r=null,i=this[lA].settingsObject.baseUrl,s=null;if(typeof A=="string"){let m;try{m=new URL(A,i)}catch(Q){throw new TypeError("Failed to parse URL from "+A,{cause:Q})}if(m.username||m.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+A);a=Qs({urlList:[m]}),r="cors"}else lw(A instanceof e),a=A[Ae],s=A[Qr];let n=this[lA].settingsObject.origin,o="client";if(a.window?.constructor?.name==="EnvironmentSettingsObject"&&ou(a.window,n)&&(o=a.window),t.window!=null)throw new TypeError(`'window' option '${o}' must be null`);if("window"in t&&(o="no-window"),a=Qs({method:a.method,headersList:a.headersList,unsafeRequest:a.unsafeRequest,client:this[lA].settingsObject,window:o,priority:a.priority,origin:a.origin,referrer:a.referrer,referrerPolicy:a.referrerPolicy,mode:a.mode,credentials:a.credentials,cache:a.cache,redirect:a.redirect,integrity:a.integrity,keepalive:a.keepalive,reloadNavigation:a.reloadNavigation,historyNavigation:a.historyNavigation,urlList:[...a.urlList]}),Object.keys(t).length>0&&(a.mode==="navigate"&&(a.mode="same-origin"),a.reloadNavigation=!1,a.historyNavigation=!1,a.origin="client",a.referrer="client",a.referrerPolicy="",a.url=a.urlList[a.urlList.length-1],a.urlList=[a.url]),t.referrer!==void 0){let m=t.referrer;if(m==="")a.referrer="no-referrer";else{let Q;try{Q=new URL(m,i)}catch(C){throw new TypeError(`Referrer "${m}" is not a valid URL.`,{cause:C})}Q.protocol==="about:"&&Q.hostname==="client"||n&&!ou(Q,this[lA].settingsObject.baseUrl)?a.referrer="client":a.referrer=Q}}t.referrerPolicy!==void 0&&(a.referrerPolicy=t.referrerPolicy);let d;if(t.mode!==void 0?d=t.mode:d=r,d==="navigate")throw S.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(d!=null&&(a.mode=d),t.credentials!==void 0&&(a.credentials=t.credentials),t.cache!==void 0&&(a.cache=t.cache),a.cache==="only-if-cached"&&a.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(t.redirect!==void 0&&(a.redirect=t.redirect),t.integrity!==void 0&&t.integrity!=null&&(a.integrity=String(t.integrity)),t.keepalive!==void 0&&(a.keepalive=!!t.keepalive),t.method!==void 0){let m=t.method;if(!Kf(t.method))throw TypeError(`'${t.method}' is not a valid HTTP method.`);if(Aw.indexOf(m.toUpperCase())!==-1)throw TypeError(`'${t.method}' HTTP method is unsupported.`);m=$f(t.method),a.method=m}t.signal!==void 0&&(s=t.signal),this[Ae]=a;let l=new AbortController;if(this[Qr]=l.signal,this[Qr][lA]=this[lA],s!=null){if(!s||typeof s.aborted!="boolean"||typeof s.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(s.aborted)l.abort(s.reason);else{this[cw]=l;let m=new WeakRef(l),Q=function(){let C=m.deref();C!==void 0&&C.abort(this.reason)};try{(typeof du=="function"&&du(s)===lu||gw(s,"abort").length>=lu)&&pu(100,s)}catch{}mr.addAbortListener(s,Q),uw.register(l,{signal:s,abort:Q})}}if(this[Ne]=new up,this[Ne][Es]=a.headersList,this[Ne][us]="request",this[Ne][lA]=this[lA],d==="no-cors"){if(!tw.includes(a.method))throw new TypeError(`'${a.method} is unsupported in no-cors mode.`);this[Ne][us]="request-no-cors"}if(Object.keys(t).length!==0){let m=new up(this[Ne]);if(t.headers!==void 0&&(m=t.headers),this[Ne][Es].clear(),m.constructor.name==="Headers")for(let[Q,C]of m)this[Ne].append(Q,C);else Xf(this[Ne],m)}let p=A instanceof e?A[Ae].body:null;if((t.body!=null||p!=null)&&(a.method==="GET"||a.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let g=null;if(t.body!=null){let[m,Q]=Wf(t.body,a.keepalive);g=m,Q&&!this[Ne][Es].contains("content-type")&&this[Ne].append("content-type",Q)}let c=g??p;if(c!=null&&c.source==null){if(g!=null&&t.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(a.mode!=="same-origin"&&a.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');a.useCORSPreflightFlag=!0}let u=c;if(g==null&&p!=null){if(mr.isDisturbed(p.stream)||p.stream.locked)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");Ep||(Ep=require("stream/web").TransformStream);let m=new Ep;p.stream.pipeThrough(m),u={source:p.source,length:p.length,stream:m.readable}}this[Ae].body=u}get method(){return S.brandCheck(this,e),this[Ae].method}get url(){return S.brandCheck(this,e),pw(this[Ae].url)}get headers(){return S.brandCheck(this,e),this[Ne]}get destination(){return S.brandCheck(this,e),this[Ae].destination}get referrer(){return S.brandCheck(this,e),this[Ae].referrer==="no-referrer"?"":this[Ae].referrer==="client"?"about:client":this[Ae].referrer.toString()}get referrerPolicy(){return S.brandCheck(this,e),this[Ae].referrerPolicy}get mode(){return S.brandCheck(this,e),this[Ae].mode}get credentials(){return this[Ae].credentials}get cache(){return S.brandCheck(this,e),this[Ae].cache}get redirect(){return S.brandCheck(this,e),this[Ae].redirect}get integrity(){return S.brandCheck(this,e),this[Ae].integrity}get keepalive(){return S.brandCheck(this,e),this[Ae].keepalive}get isReloadNavigation(){return S.brandCheck(this,e),this[Ae].reloadNavigation}get isHistoryNavigation(){return S.brandCheck(this,e),this[Ae].historyNavigation}get signal(){return S.brandCheck(this,e),this[Qr]}get body(){return S.brandCheck(this,e),this[Ae].body?this[Ae].body.stream:null}get bodyUsed(){return S.brandCheck(this,e),!!this[Ae].body&&mr.isDisturbed(this[Ae].body.stream)}get duplex(){return S.brandCheck(this,e),"half"}clone(){if(S.brandCheck(this,e),this.bodyUsed||this.body?.locked)throw new TypeError("unusable");let A=Ew(this[Ae]),t=new e(gu);t[Ae]=A,t[lA]=this[lA],t[Ne]=new up,t[Ne][Es]=A.headersList,t[Ne][us]=this[Ne][us],t[Ne][lA]=this[Ne][lA];let a=new AbortController;return this.signal.aborted?a.abort(this.signal.reason):mr.addAbortListener(this.signal,()=>{a.abort(this.signal.reason)}),t[Qr]=a.signal,t}};Zf(g1);function Qs(e){let A={method:"GET",localURLsOnly:!1,unsafeRequest:!1,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:!1,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:!1,credentials:"same-origin",useCredentials:!1,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:!1,historyNavigation:!1,userActivation:!1,taintedOrigin:!1,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:!1,done:!1,timingAllowFailed:!1,...e,headersList:e.headersList?new nu(e.headersList):new nu};return A.url=A.urlList[0],A}function Ew(e){let A=Qs({...e,body:null});return e.body!=null&&(A.body=jf(e.body)),A}Object.defineProperties(g1.prototype,{method:Ce,url:Ce,headers:Ce,redirect:Ce,clone:Ce,signal:Ce,duplex:Ce,destination:Ce,body:Ce,bodyUsed:Ce,isHistoryNavigation:Ce,isReloadNavigation:Ce,keepalive:Ce,integrity:Ce,cache:Ce,credentials:Ce,attribute:Ce,referrerPolicy:Ce,referrer:Ce,mode:Ce,[Symbol.toStringTag]:{value:"Request",configurable:!0}});S.converters.Request=S.interfaceConverter(g1);S.converters.RequestInfo=function(e){return typeof e=="string"?S.converters.USVString(e):e instanceof g1?S.converters.Request(e):S.converters.USVString(e)};S.converters.AbortSignal=S.interfaceConverter(AbortSignal);S.converters.RequestInit=S.dictionaryConverter([{key:"method",converter:S.converters.ByteString},{key:"headers",converter:S.converters.HeadersInit},{key:"body",converter:S.nullableConverter(S.converters.BodyInit)},{key:"referrer",converter:S.converters.USVString},{key:"referrerPolicy",converter:S.converters.DOMString,allowedValues:aw},{key:"mode",converter:S.converters.DOMString,allowedValues:iw},{key:"credentials",converter:S.converters.DOMString,allowedValues:sw},{key:"cache",converter:S.converters.DOMString,allowedValues:nw},{key:"redirect",converter:S.converters.DOMString,allowedValues:rw},{key:"integrity",converter:S.converters.DOMString},{key:"keepalive",converter:S.converters.boolean},{key:"signal",converter:S.nullableConverter(e=>S.converters.AbortSignal(e,{strict:!1}))},{key:"window",converter:S.converters.any},{key:"duplex",converter:S.converters.DOMString,allowedValues:ow}]);cu.exports={Request:g1,makeRequest:Qs}});var ws=E((jb,vu)=>{"use strict";var{Response:Qw,makeNetworkError:K,makeAppropriateNetworkError:ms,filterResponse:Qp,makeResponse:Cs}=cs(),{Headers:uu}=l1(),{Request:mw,makeRequest:Cw}=Cr(),Br=require("zlib"),{bytesMatch:Bw,makePolicyContainer:hw,clonePolicyContainer:Iw,requestBadPort:fw,TAOCheck:ww,appendRequestOriginHeader:yw,responseLocationURL:Dw,requestCurrentURL:et,setRequestReferrerPolicyOnRedirect:Rw,tryUpgradeRequestToAPotentiallyTrustworthyURL:vw,createOpaqueTimingInfo:Rp,appendFetchMetadata:Nw,corsCheck:bw,crossOriginResourcePolicyCheck:Sw,determineRequestsReferrer:Fw,coarsenedSharedCurrentTime:vp,createDeferredPromise:kw,isBlobLike:Lw,sameOrigin:fp,isCancelled:ca,isAborted:Eu,isErrorLike:Uw,fullyReadBody:Bu,readableStreamClose:Tw,isomorphicEncode:wp,urlIsLocal:Mw,urlIsHttpHttpsScheme:Np,urlHasHttpsScheme:Vw}=IA(),{kState:yp,kHeaders:mp,kGuard:Yw,kRealm:Qu}=lt(),ua=require("assert"),{safelyExtractBody:Bs}=Xa(),{redirectStatus:hu,nullBodyStatus:Iu,safeMethods:Jw,requestBodyHeader:Gw,subresource:xw,DOMException:hs}=kt(),{kHeadersList:Dp}=ie(),_w=require("events"),{Readable:qw,pipeline:Hw}=require("stream"),{addAbortListener:Ow,isErrored:Pw,isReadable:Is,nodeMajor:mu,nodeMinor:Ww}=q(),{dataURLProcessor:Zw,serializeAMimeType:jw}=UA(),{TransformStream:Xw}=require("stream/web"),{getGlobalDispatcher:zw}=da(),{webidl:Kw}=xe(),{STATUS_CODES:$w}=require("http"),Cp,Bp=globalThis.ReadableStream,fs=class extends _w{constructor(A){super(),this.dispatcher=A,this.connection=null,this.dump=!1,this.state="ongoing",this.setMaxListeners(21)}terminate(A){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(A),this.emit("terminated",A))}abort(A){this.state==="ongoing"&&(this.state="aborted",A||(A=new hs("The operation was aborted.","AbortError")),this.serializedAbortReason=A,this.connection?.destroy(A),this.emit("terminated",A))}};async function ey(e,A={}){Kw.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});let t=kw(),a;try{a=new mw(e,A)}catch(g){return t.reject(g),t.promise}let r=a[yp];if(a.signal.aborted)return hp(t,r,null,a.signal.reason),t.promise;r.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(r.serviceWorkers="none");let s=null,n=null,o=!1,d=null;return Ow(a.signal,()=>{o=!0,ua(d!=null),d.abort(a.signal.reason),hp(t,r,s,a.signal.reason)}),d=wu({request:r,processResponseEndOfBody:g=>fu(g,"fetch"),processResponse:g=>{if(!o){if(g.aborted){hp(t,r,s,d.serializedAbortReason);return}if(g.type==="error"){t.reject(Object.assign(new TypeError("fetch failed"),{cause:g.error}));return}s=new Qw,s[yp]=g,s[Qu]=n,s[mp][Dp]=g.headersList,s[mp][Yw]="immutable",s[mp][Qu]=n,t.resolve(s)}},dispatcher:A.dispatcher??zw()}),t.promise}function fu(e,A="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let t=e.urlList[0],a=e.timingInfo,r=e.cacheState;Np(t)&&a!==null&&(a.timingAllowPassed||(a=Rp({startTime:a.startTime}),r=""),a.endTime=vp(),e.timingInfo=a,Ay(a,t,A,globalThis,r))}function Ay(e,A,t,a,r){(mu>18||mu===18&&Ww>=2)&&performance.markResourceTiming(e,A.href,t,a,r)}function hp(e,A,t,a){if(a||(a=new hs("The operation was aborted.","AbortError")),e.reject(a),A.body!=null&&Is(A.body?.stream)&&A.body.stream.cancel(a).catch(i=>{if(i.code!=="ERR_INVALID_STATE")throw i}),t==null)return;let r=t[yp];r.body!=null&&Is(r.body?.stream)&&r.body.stream.cancel(a).catch(i=>{if(i.code!=="ERR_INVALID_STATE")throw i})}function wu({request:e,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:a,processResponseEndOfBody:r,processResponseConsumeBody:i,useParallelQueue:s=!1,dispatcher:n}){let o=null,d=!1;e.client!=null&&(o=e.client.globalObject,d=e.client.crossOriginIsolatedCapability);let l=vp(d),p=Rp({startTime:l}),g={controller:new fs(n),request:e,timingInfo:p,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:a,processResponseConsumeBody:i,processResponseEndOfBody:r,taskDestination:o,crossOriginIsolatedCapability:d};return ua(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client?.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=Iw(e.client.policyContainer):e.policyContainer=hw()),e.headersList.contains("accept")||e.headersList.append("accept","*/*"),e.headersList.contains("accept-language")||e.headersList.append("accept-language","*"),e.priority,xw.includes(e.destination),yu(g).catch(c=>{g.controller.terminate(c)}),g.controller}async function yu(e,A=!1){let t=e.request,a=null;if(t.localURLsOnly&&!Mw(et(t))&&(a=K("local URLs only")),vw(t),fw(t)==="blocked"&&(a=K("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=Fw(t)),a===null&&(a=await(async()=>{let i=et(t);return fp(i,t.url)&&t.responseTainting==="basic"||i.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await Cu(e)):t.mode==="same-origin"?K('request mode cannot be "same-origin"'):t.mode==="no-cors"?t.redirect!=="follow"?K('redirect mode cannot be "follow" for "no-cors" request'):(t.responseTainting="opaque",await Cu(e)):Np(et(t))?(t.responseTainting="cors",await Du(e)):K("URL scheme must be a HTTP(S) scheme")})()),A)return a;a.status!==0&&!a.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?a=Qp(a,"basic"):t.responseTainting==="cors"?a=Qp(a,"cors"):t.responseTainting==="opaque"?a=Qp(a,"opaque"):ua(!1));let r=a.status===0?a:a.internalResponse;if(r.urlList.length===0&&r.urlList.push(...t.urlList),t.timingAllowFailed||(a.timingAllowPassed=!0),a.type==="opaque"&&r.status===206&&r.rangeRequested&&!t.headers.contains("range")&&(a=r=K()),a.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||Iu.includes(r.status))&&(r.body=null,e.controller.dump=!0),t.integrity){let i=n=>Ip(e,K(n));if(t.responseTainting==="opaque"||a.body==null){i(a.error);return}let s=n=>{if(!Bw(n,t.integrity)){i("integrity mismatch");return}a.body=Bs(n)[0],Ip(e,a)};await Bu(a.body,s,i)}else Ip(e,a)}async function Cu(e){if(ca(e)&&e.request.redirectCount===0)return ms(e);let{request:A}=e,{protocol:t}=et(A);switch(t){case"about:":return K("about scheme is not supported");case"blob:":{Cp||(Cp=require("buffer").resolveObjectURL);let a=et(A);if(a.search.length!==0)return K("NetworkError when attempting to fetch resource.");let r=Cp(a.toString());if(A.method!=="GET"||!Lw(r))return K("invalid method");let i=Bs(r),s=i[0],n=wp(`${s.length}`),o=i[1]??"",d=Cs({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:n}],["content-type",{name:"Content-Type",value:o}]]});return d.body=s,d}case"data:":{let a=et(A),r=Zw(a);if(r==="failure")return K("failed to fetch the data URL");let i=jw(r.mimeType);return Cs({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:i}]],body:Bs(r.body)[0]})}case"file:":return K("not implemented... yet...");case"http:":case"https:":return await Du(e).catch(a=>K(a));default:return K("unknown scheme")}}function ty(e,A){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(A))}async function Ip(e,A){A.type==="error"&&(A.urlList=[e.request.urlList[0]],A.timingInfo=Rp({startTime:e.timingInfo.startTime}));let t=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(A))};if(e.processResponse!=null&&queueMicrotask(()=>e.processResponse(A)),A.body==null)t();else{let a=(i,s)=>{s.enqueue(i)},r=new Xw({start(){},transform:a,flush:t},{size(){return 1}},{size(){return 1}});A.body={stream:A.body.stream.pipeThrough(r)}}if(e.processResponseConsumeBody!=null){let a=i=>e.processResponseConsumeBody(A,i),r=i=>e.processResponseConsumeBody(A,i);A.body==null?queueMicrotask(()=>a(null)):await Bu(A.body,a,r)}}async function Du(e){let A=e.request,t=null,a=null,r=e.timingInfo;if(A.serviceWorkers,t===null){if(A.redirect==="follow"&&(A.serviceWorkers="none"),a=t=await Ru(e),A.responseTainting==="cors"&&bw(A,t)==="failure")return K("cors failure");ww(A,t)==="failure"&&(A.timingAllowFailed=!0)}return(A.responseTainting==="opaque"||t.type==="opaque")&&Sw(A.origin,A.client,A.destination,a)==="blocked"?K("blocked"):(hu.includes(a.status)&&(A.redirect!=="manual"&&e.controller.connection.destroy(),A.redirect==="error"?t=K("unexpected redirect"):A.redirect==="manual"?t=a:A.redirect==="follow"?t=await ay(e,t):ua(!1)),t.timingInfo=r,t)}async function ay(e,A){let t=e.request,a=A.internalResponse?A.internalResponse:A,r;try{if(r=Dw(a,et(t).hash),r==null)return A}catch(s){return K(s)}if(!Np(r))return K("URL scheme must be a HTTP(S) scheme");if(t.redirectCount===20)return K("redirect count exceeded");if(t.redirectCount+=1,t.mode==="cors"&&(r.username||r.password)&&!fp(t,r))return K('cross origin not allowed for request mode "cors"');if(t.responseTainting==="cors"&&(r.username||r.password))return K('URL cannot contain credentials for request mode "cors"');if(a.status!==303&&t.body!=null&&t.body.source==null)return K();if([301,302].includes(a.status)&&t.method==="POST"||a.status===303&&!["GET","HEAD"].includes(t.method)){t.method="GET",t.body=null;for(let s of Gw)t.headersList.delete(s)}fp(et(t),r)||t.headersList.delete("authorization"),t.body!=null&&(ua(t.body.source!=null),t.body=Bs(t.body.source)[0]);let i=e.timingInfo;return i.redirectEndTime=i.postRedirectStartTime=vp(e.crossOriginIsolatedCapability),i.redirectStartTime===0&&(i.redirectStartTime=i.startTime),t.urlList.push(r),Rw(t,a),yu(e,!0)}async function Ru(e,A=!1,t=!1){let a=e.request,r=null,i=null,s=null,n=null,o=!1;a.window==="no-window"&&a.redirect==="error"?(r=e,i=a):(i=Cw(a),r={...e},r.request=i);let d=a.credentials==="include"||a.credentials==="same-origin"&&a.responseTainting==="basic",l=i.body?i.body.length:null,p=null;if(i.body==null&&["POST","PUT"].includes(i.method)&&(p="0"),l!=null&&(p=wp(`${l}`)),p!=null&&i.headersList.append("content-length",p),l!=null&&i.keepalive,i.referrer instanceof URL&&i.headersList.append("referer",wp(i.referrer.href)),yw(i),Nw(i),i.headersList.contains("user-agent")||i.headersList.append("user-agent","undici"),i.cache==="default"&&(i.headersList.contains("if-modified-since")||i.headersList.contains("if-none-match")||i.headersList.contains("if-unmodified-since")||i.headersList.contains("if-match")||i.headersList.contains("if-range"))&&(i.cache="no-store"),i.cache==="no-cache"&&!i.preventNoCacheCacheControlHeaderModification&&!i.headersList.contains("cache-control")&&i.headersList.append("cache-control","max-age=0"),(i.cache==="no-store"||i.cache==="reload")&&(i.headersList.contains("pragma")||i.headersList.append("pragma","no-cache"),i.headersList.contains("cache-control")||i.headersList.append("cache-control","no-cache")),i.headersList.contains("range")&&i.headersList.append("accept-encoding","identity"),i.headersList.contains("accept-encoding")||(Vw(et(i))?i.headersList.append("accept-encoding","br, gzip, deflate"):i.headersList.append("accept-encoding","gzip, deflate")),n==null&&(i.cache="no-store"),i.mode!=="no-store"&&i.mode,s==null){if(i.mode==="only-if-cached")return K("only if cached");let g=await ry(r,d,t);!Jw.includes(i.method)&&g.status>=200&&g.status<=399,o&&g.status,s==null&&(s=g)}if(s.urlList=[...i.urlList],i.headersList.contains("range")&&(s.rangeRequested=!0),s.requestIncludesCredentials=d,s.status===407)return a.window==="no-window"?K():ca(e)?ms(e):K("proxy authentication required");if(s.status===421&&!t&&(a.body==null||a.body.source!=null)){if(ca(e))return ms(e);e.controller.connection.destroy(),s=await Ru(e,A,!0)}return s}async function ry(e,A=!1,t=!1){ua(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(u){this.destroyed||(this.destroyed=!0,this.abort?.(u??new hs("The operation was aborted.","AbortError")))}};let a=e.request,r=null,i=e.timingInfo;null==null&&(a.cache="no-store");let n=t?"yes":"no";a.mode;let o=null;if(a.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(a.body!=null){let u=async function*(C){ca(e)||(yield C,e.processRequestBodyChunkLength?.(C.byteLength))},m=()=>{ca(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},Q=C=>{ca(e)||(C.name==="AbortError"?e.controller.abort():e.controller.terminate(C))};o=async function*(){try{for await(let C of a.body.stream)yield*u(C);m()}catch(C){Q(C)}}()}try{let{body:u,status:m,statusText:Q,headersList:C,socket:B}=await c({body:o});if(B)r=Cs({status:m,statusText:Q,headersList:C,socket:B});else{let w=u[Symbol.asyncIterator]();e.controller.next=()=>w.next(),r=Cs({status:m,statusText:Q,headersList:C})}}catch(u){return u.name==="AbortError"?(e.controller.connection.destroy(),ms(e)):K(u)}let d=()=>{e.controller.resume()},l=u=>{e.controller.abort(u)};Bp||(Bp=require("stream/web").ReadableStream);let p=new Bp({async start(u){e.controller.controller=u},async pull(u){await d(u)},async cancel(u){await l(u)}},{highWaterMark:0,size(){return 1}});r.body={stream:p},e.controller.on("terminated",g),e.controller.resume=async()=>{for(;;){let u,m;try{let{done:Q,value:C}=await e.controller.next();if(Eu(e))break;u=Q?void 0:C}catch(Q){e.controller.ended&&!i.encodedBodySize?u=void 0:(u=Q,m=!0)}if(u===void 0){Tw(e.controller.controller),ty(e,r);return}if(i.decodedBodySize+=u?.byteLength??0,m){e.controller.terminate(u);return}if(e.controller.controller.enqueue(new Uint8Array(u)),Pw(p)){e.controller.terminate();return}if(!e.controller.controller.desiredSize)return}};function g(u){Eu(e)?(r.aborted=!0,Is(p)&&e.controller.controller.error(e.controller.serializedAbortReason)):Is(p)&&e.controller.controller.error(new TypeError("terminated",{cause:Uw(u)?u:void 0})),e.controller.connection.destroy()}return r;async function c({body:u}){let m=et(a),Q=e.controller.dispatcher;return new Promise((C,B)=>Q.dispatch({path:m.pathname+m.search,origin:m.origin,method:a.method,body:e.controller.dispatcher.isMockActive?a.body&&a.body.source:u,headers:a.headersList.entries,maxRedirections:0,upgrade:a.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(w){let{connection:I}=e.controller;I.destroyed?w(new hs("The operation was aborted.","AbortError")):(e.controller.on("terminated",w),this.abort=I.abort=w)},onHeaders(w,I,y,b){if(w<200)return;let k=[],x="",ye=new uu;for(let Fe=0;Fe<I.length;Fe+=2){let le=I[Fe+0].toString("latin1"),QA=I[Fe+1].toString("latin1");le.toLowerCase()==="content-encoding"?k=QA.toLowerCase().split(",").map(j=>j.trim()).reverse():le.toLowerCase()==="location"&&(x=QA),ye.append(le,QA)}this.body=new qw({read:y});let Be=[],wt=a.redirect==="follow"&&x&&hu.includes(w);if(a.method!=="HEAD"&&a.method!=="CONNECT"&&!Iu.includes(w)&&!wt)for(let Fe of k)if(Fe==="x-gzip"||Fe==="gzip")Be.push(Br.createGunzip({flush:Br.constants.Z_SYNC_FLUSH,finishFlush:Br.constants.Z_SYNC_FLUSH}));else if(Fe==="deflate")Be.push(Br.createInflate());else if(Fe==="br")Be.push(Br.createBrotliDecompress());else{Be.length=0;break}return C({status:w,statusText:b,headersList:ye[Dp],body:Be.length?Hw(this.body,...Be,()=>{}):this.body.on("error",()=>{})}),!0},onData(w){if(e.controller.dump)return;let I=w;return i.encodedBodySize+=I.byteLength,this.body.push(I)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.ended=!0,this.body.push(null)},onError(w){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(w),e.controller.terminate(w),B(w)},onUpgrade(w,I,y){if(w!==101)return;let b=new uu;for(let k=0;k<I.length;k+=2){let x=I[k+0].toString("latin1"),ye=I[k+1].toString("latin1");b.append(x,ye)}return C({status:w,statusText:$w[w],headersList:b[Dp],socket:y}),!0}}))}}vu.exports={fetch:ey,Fetch:fs,fetching:wu,finalizeAndReportTiming:fu}});var bp=E((Xb,Nu)=>{"use strict";Nu.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var Su=E((zb,bu)=>{"use strict";var{webidl:gA}=xe(),ys=Symbol("ProgressEvent state"),Sp=class e extends Event{constructor(A,t={}){A=gA.converters.DOMString(A),t=gA.converters.ProgressEventInit(t??{}),super(A,t),this[ys]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return gA.brandCheck(this,e),this[ys].lengthComputable}get loaded(){return gA.brandCheck(this,e),this[ys].loaded}get total(){return gA.brandCheck(this,e),this[ys].total}};gA.converters.ProgressEventInit=gA.dictionaryConverter([{key:"lengthComputable",converter:gA.converters.boolean,defaultValue:!1},{key:"loaded",converter:gA.converters["unsigned long long"],defaultValue:0},{key:"total",converter:gA.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:gA.converters.boolean,defaultValue:!1},{key:"cancelable",converter:gA.converters.boolean,defaultValue:!1},{key:"composed",converter:gA.converters.boolean,defaultValue:!1}]);bu.exports={ProgressEvent:Sp}});var ku=E((Kb,Fu)=>{"use strict";function iy(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}Fu.exports={getEncoding:iy}});var Gu=E(($b,Ju)=>{"use strict";var{kState:Ea,kError:Fp,kResult:Lu,kAborted:hr,kLastProgressEventFired:kp}=bp(),{ProgressEvent:sy}=Su(),{getEncoding:Uu}=ku(),{DOMException:ny}=kt(),{serializeAMimeType:oy,parseMIMEType:Tu}=UA(),{types:dy}=require("util"),{StringDecoder:Mu}=require("string_decoder"),{btoa:Vu}=require("buffer"),py={enumerable:!0,writable:!1,configurable:!1};function ly(e,A,t,a){if(e[Ea]==="loading")throw new ny("Invalid state","InvalidStateError");e[Ea]="loading",e[Lu]=null,e[Fp]=null;let i=A.stream().getReader(),s=[],n=i.read(),o=!0;(async()=>{for(;!e[hr];)try{let{done:d,value:l}=await n;if(o&&!e[hr]&&queueMicrotask(()=>{Gt("loadstart",e)}),o=!1,!d&&dy.isUint8Array(l))s.push(l),(e[kp]===void 0||Date.now()-e[kp]>=50)&&!e[hr]&&(e[kp]=Date.now(),queueMicrotask(()=>{Gt("progress",e)})),n=i.read();else if(d){queueMicrotask(()=>{e[Ea]="done";try{let p=gy(s,t,A.type,a);if(e[hr])return;e[Lu]=p,Gt("load",e)}catch(p){e[Fp]=p,Gt("error",e)}e[Ea]!=="loading"&&Gt("loadend",e)});break}}catch(d){if(e[hr])return;queueMicrotask(()=>{e[Ea]="done",e[Fp]=d,Gt("error",e),e[Ea]!=="loading"&&Gt("loadend",e)});break}})()}function Gt(e,A){let t=new sy(e,{bubbles:!1,cancelable:!1});A.dispatchEvent(t)}function gy(e,A,t,a){switch(A){case"DataURL":{let r="data:",i=Tu(t||"application/octet-stream");i!=="failure"&&(r+=oy(i)),r+=";base64,";let s=new Mu("latin1");for(let n of e)r+=Vu(s.write(n));return r+=Vu(s.end()),r}case"Text":{let r="failure";if(a&&(r=Uu(a)),r==="failure"&&t){let i=Tu(t);i!=="failure"&&(r=Uu(i.parameters.get("charset")))}return r==="failure"&&(r="UTF-8"),cy(e,r)}case"ArrayBuffer":return Yu(e).buffer;case"BinaryString":{let r="",i=new Mu("latin1");for(let s of e)r+=i.write(s);return r+=i.end(),r}}}function cy(e,A){let t=Yu(e),a=uy(t),r=0;a!==null&&(A=a,r=a==="UTF-8"?3:2);let i=t.slice(r);return new TextDecoder(A).decode(i)}function uy(e){let[A,t,a]=e;return A===239&&t===187&&a===191?"UTF-8":A===254&&t===255?"UTF-16BE":A===255&&t===254?"UTF-16LE":null}function Yu(e){let A=e.reduce((a,r)=>a+r.byteLength,0),t=0;return e.reduce((a,r)=>(a.set(r,t),t+=r.byteLength,a),new Uint8Array(A))}Ju.exports={staticPropertyDescriptors:py,readOperation:ly,fireAProgressEvent:Gt}});var Hu=E((eS,qu)=>{"use strict";var{staticPropertyDescriptors:Qa,readOperation:Ds,fireAProgressEvent:xu}=Gu(),{kState:c1,kError:_u,kResult:Rs,kEvents:O,kAborted:Ey}=bp(),{webidl:X}=xe(),{kEnumerableProperty:$e}=q(),VA=class e extends EventTarget{constructor(){super(),this[c1]="empty",this[Rs]=null,this[_u]=null,this[O]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(A){X.brandCheck(this,e),X.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"}),A=X.converters.Blob(A,{strict:!1}),Ds(this,A,"ArrayBuffer")}readAsBinaryString(A){X.brandCheck(this,e),X.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"}),A=X.converters.Blob(A,{strict:!1}),Ds(this,A,"BinaryString")}readAsText(A,t=void 0){X.brandCheck(this,e),X.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"}),A=X.converters.Blob(A,{strict:!1}),t!==void 0&&(t=X.converters.DOMString(t)),Ds(this,A,"Text",t)}readAsDataURL(A){X.brandCheck(this,e),X.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"}),A=X.converters.Blob(A,{strict:!1}),Ds(this,A,"DataURL")}abort(){if(this[c1]==="empty"||this[c1]==="done"){this[Rs]=null;return}this[c1]==="loading"&&(this[c1]="done",this[Rs]=null),this[Ey]=!0,xu("abort",this),this[c1]!=="loading"&&xu("loadend",this)}get readyState(){switch(X.brandCheck(this,e),this[c1]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return X.brandCheck(this,e),this[Rs]}get error(){return X.brandCheck(this,e),this[_u]}get onloadend(){return X.brandCheck(this,e),this[O].loadend}set onloadend(A){X.brandCheck(this,e),this[O].loadend&&this.removeEventListener("loadend",this[O].loadend),typeof A=="function"?(this[O].loadend=A,this.addEventListener("loadend",A)):this[O].loadend=null}get onerror(){return X.brandCheck(this,e),this[O].error}set onerror(A){X.brandCheck(this,e),this[O].error&&this.removeEventListener("error",this[O].error),typeof A=="function"?(this[O].error=A,this.addEventListener("error",A)):this[O].error=null}get onloadstart(){return X.brandCheck(this,e),this[O].loadstart}set onloadstart(A){X.brandCheck(this,e),this[O].loadstart&&this.removeEventListener("loadstart",this[O].loadstart),typeof A=="function"?(this[O].loadstart=A,this.addEventListener("loadstart",A)):this[O].loadstart=null}get onprogress(){return X.brandCheck(this,e),this[O].progress}set onprogress(A){X.brandCheck(this,e),this[O].progress&&this.removeEventListener("progress",this[O].progress),typeof A=="function"?(this[O].progress=A,this.addEventListener("progress",A)):this[O].progress=null}get onload(){return X.brandCheck(this,e),this[O].load}set onload(A){X.brandCheck(this,e),this[O].load&&this.removeEventListener("load",this[O].load),typeof A=="function"?(this[O].load=A,this.addEventListener("load",A)):this[O].load=null}get onabort(){return X.brandCheck(this,e),this[O].abort}set onabort(A){X.brandCheck(this,e),this[O].abort&&this.removeEventListener("abort",this[O].abort),typeof A=="function"?(this[O].abort=A,this.addEventListener("abort",A)):this[O].abort=null}};VA.EMPTY=VA.prototype.EMPTY=0;VA.LOADING=VA.prototype.LOADING=1;VA.DONE=VA.prototype.DONE=2;Object.defineProperties(VA.prototype,{EMPTY:Qa,LOADING:Qa,DONE:Qa,readAsArrayBuffer:$e,readAsBinaryString:$e,readAsText:$e,readAsDataURL:$e,abort:$e,readyState:$e,result:$e,error:$e,onloadstart:$e,onprogress:$e,onload:$e,onabort:$e,onerror:$e,onloadend:$e,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(VA,{EMPTY:Qa,LOADING:Qa,DONE:Qa});qu.exports={FileReader:VA}});var vs=E((AS,Ou)=>{"use strict";Ou.exports={kConstruct:Symbol("constructable")}});var Zu=E((tS,Wu)=>{"use strict";var Qy=require("assert"),{URLSerializer:Pu}=UA(),{isValidHeaderName:my}=IA();function Cy(e,A,t=!1){let a=Pu(e,t),r=Pu(A,t);return a===r}function By(e){Qy(e!==null);let A=[];for(let t of e.split(",")){if(t=t.trim(),t.length){if(!my(t))continue}else continue;A.push(t)}return A}Wu.exports={urlEquals:Cy,fieldValues:By}});var e9=E((aS,$u)=>{"use strict";var{kConstruct:hy}=vs(),{urlEquals:Iy,fieldValues:Lp}=Zu(),{kEnumerableProperty:u1,isDisturbed:fy}=q(),{kHeadersList:ju}=ie(),{webidl:v}=xe(),{Response:zu,cloneResponse:wy}=cs(),{Request:At}=Cr(),{kState:Pe,kHeaders:Ns,kGuard:Xu,kRealm:yy}=lt(),{fetching:Dy}=ws(),{urlIsHttpHttpsScheme:bs,createDeferredPromise:ma,readAllBytes:Ry}=IA(),Up=require("assert"),{getGlobalDispatcher:vy}=da(),Ss=class e{#e;constructor(){arguments[0]!==hy&&v.illegalConstructor(),this.#e=arguments[1]}async match(A,t={}){v.brandCheck(this,e),v.argumentLengthCheck(arguments,1,{header:"Cache.match"}),A=v.converters.RequestInfo(A),t=v.converters.CacheQueryOptions(t);let a=await this.matchAll(A,t);if(a.length!==0)return a[0]}async matchAll(A=void 0,t={}){v.brandCheck(this,e),A!==void 0&&(A=v.converters.RequestInfo(A)),t=v.converters.CacheQueryOptions(t);let a=null;if(A!==void 0)if(A instanceof At){if(a=A[Pe],a.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(a=new At(A)[Pe]);let r=[];if(A===void 0)for(let s of this.#e)r.push(s[1]);else{let s=this.#A(a,t);for(let n of s)r.push(n[1])}let i=[];for(let s of r){let n=new zu(s.body?.source??null),o=n[Pe].body;n[Pe]=s,n[Pe].body=o,n[Ns][ju]=s.headersList,n[Ns][Xu]="immutable",i.push(n)}return Object.freeze(i)}async add(A){v.brandCheck(this,e),v.argumentLengthCheck(arguments,1,{header:"Cache.add"}),A=v.converters.RequestInfo(A);let t=[A];return await this.addAll(t)}async addAll(A){v.brandCheck(this,e),v.argumentLengthCheck(arguments,1,{header:"Cache.addAll"}),A=v.converters["sequence<RequestInfo>"](A);let t=[],a=[];for(let p of A){if(typeof p=="string")continue;let g=p[Pe];if(!bs(g.url)||g.method!=="GET")throw v.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}let r=[];for(let p of A){let g=new At(p)[Pe];if(!bs(g.url))throw v.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."});g.initiator="fetch",g.destination="subresource",a.push(g);let c=ma();r.push(Dy({request:g,dispatcher:vy(),processResponse(u){if(u.type==="error"||u.status===206||u.status<200||u.status>299)c.reject(v.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(u.headersList.contains("vary")){let m=Lp(u.headersList.get("vary"));for(let Q of m)if(Q==="*"){c.reject(v.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let C of r)C.abort();return}}},processResponseEndOfBody(u){if(u.aborted){c.reject(new DOMException("aborted","AbortError"));return}c.resolve(u)}})),t.push(c.promise)}let s=await Promise.all(t),n=[],o=0;for(let p of s){let g={type:"put",request:a[o],response:p};n.push(g),o++}let d=ma(),l=null;try{this.#a(n)}catch(p){l=p}return queueMicrotask(()=>{l===null?d.resolve(void 0):d.reject(l)}),d.promise}async put(A,t){v.brandCheck(this,e),v.argumentLengthCheck(arguments,2,{header:"Cache.put"}),A=v.converters.RequestInfo(A),t=v.converters.Response(t);let a=null;if(A instanceof At?a=A[Pe]:a=new At(A)[Pe],!bs(a.url)||a.method!=="GET")throw v.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"});let r=t[Pe];if(r.status===206)throw v.errors.exception({header:"Cache.put",message:"Got 206 status"});if(r.headersList.contains("vary")){let g=Lp(r.headersList.get("vary"));for(let c of g)if(c==="*")throw v.errors.exception({header:"Cache.put",message:"Got * vary field value"})}if(r.body&&(fy(r.body.stream)||r.body.stream.locked))throw v.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"});let i=wy(r),s=ma();if(r.body!=null){let c=r.body.stream.getReader();Ry(c,u=>s.resolve(u),u=>s.reject(u))}else s.resolve(void 0);let n=[],o={type:"put",request:a,response:i};n.push(o);let d=await s.promise;i.body!=null&&(i.body.source=d);let l=ma(),p=null;try{this.#a(n)}catch(g){p=g}return queueMicrotask(()=>{p===null?l.resolve():l.reject(p)}),l.promise}async delete(A,t={}){v.brandCheck(this,e),v.argumentLengthCheck(arguments,1,{header:"Cache.delete"}),A=v.converters.RequestInfo(A),t=v.converters.CacheQueryOptions(t);let a=null;if(A instanceof At){if(a=A[Pe],a.method!=="GET"&&!t.ignoreMethod)return!1}else Up(typeof A=="string"),a=new At(A)[Pe];let r=[],i={type:"delete",request:a,options:t};r.push(i);let s=ma(),n=null,o;try{o=this.#a(r)}catch(d){n=d}return queueMicrotask(()=>{n===null?s.resolve(!!o?.length):s.reject(n)}),s.promise}async keys(A=void 0,t={}){v.brandCheck(this,e),A!==void 0&&(A=v.converters.RequestInfo(A)),t=v.converters.CacheQueryOptions(t);let a=null;if(A!==void 0)if(A instanceof At){if(a=A[Pe],a.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(a=new At(A)[Pe]);let r=ma(),i=[];if(A===void 0)for(let s of this.#e)i.push(s[0]);else{let s=this.#A(a,t);for(let n of s)i.push(n[0])}return queueMicrotask(()=>{let s=[];for(let n of i){let o=new At("https://a");o[Pe]=n,o[Ns][ju]=n.headersList,o[Ns][Xu]="immutable",o[yy]=n.client,s.push(o)}r.resolve(Object.freeze(s))}),r.promise}#a(A){let t=this.#e,a=[...t],r=[],i=[];try{for(let s of A){if(s.type!=="delete"&&s.type!=="put")throw v.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(s.type==="delete"&&s.response!=null)throw v.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#A(s.request,s.options,r).length)throw new DOMException("???","InvalidStateError");let n;if(s.type==="delete"){if(n=this.#A(s.request,s.options),n.length===0)return[];for(let o of n){let d=t.indexOf(o);Up(d!==-1),t.splice(d,1)}}else if(s.type==="put"){if(s.response==null)throw v.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let o=s.request;if(!bs(o.url))throw v.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(o.method!=="GET")throw v.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(s.options!=null)throw v.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});n=this.#A(s.request);for(let d of n){let l=t.indexOf(d);Up(l!==-1),t.splice(l,1)}t.push([s.request,s.response]),r.push([s.request,s.response])}i.push([s.request,s.response])}return i}catch(s){throw this.#e.length=0,this.#e=a,s}}#A(A,t,a){let r=[],i=a??this.#e;for(let s of i){let[n,o]=s;this.#t(A,n,o,t)&&r.push(s)}return r}#t(A,t,a=null,r){let i=new URL(A.url),s=new URL(t.url);if(r?.ignoreSearch&&(s.search="",i.search=""),!Iy(i,s,!0))return!1;if(a==null||r?.ignoreVary||!a.headersList.contains("vary"))return!0;let n=Lp(a.headersList.get("vary"));for(let o of n){if(o==="*")return!1;let d=t.headersList.get(o),l=A.headersList.get(o);if(d!==l)return!1}return!0}};Object.defineProperties(Ss.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:u1,matchAll:u1,add:u1,addAll:u1,put:u1,delete:u1,keys:u1});var Ku=[{key:"ignoreSearch",converter:v.converters.boolean,defaultValue:!1},{key:"ignoreMethod",converter:v.converters.boolean,defaultValue:!1},{key:"ignoreVary",converter:v.converters.boolean,defaultValue:!1}];v.converters.CacheQueryOptions=v.dictionaryConverter(Ku);v.converters.MultiCacheQueryOptions=v.dictionaryConverter([...Ku,{key:"cacheName",converter:v.converters.DOMString}]);v.converters.Response=v.interfaceConverter(zu);v.converters["sequence<RequestInfo>"]=v.sequenceConverter(v.converters.RequestInfo);$u.exports={Cache:Ss}});var t9=E((rS,A9)=>{"use strict";var{kConstruct:Ir}=vs(),{Cache:Fs}=e9(),{webidl:We}=xe(),{kEnumerableProperty:fr}=q(),ks=class e{#e=new Map;constructor(){arguments[0]!==Ir&&We.illegalConstructor()}async match(A,t={}){if(We.brandCheck(this,e),We.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"}),A=We.converters.RequestInfo(A),t=We.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#e.has(t.cacheName)){let a=this.#e.get(t.cacheName);return await new Fs(Ir,a).match(A,t)}}else for(let a of this.#e.values()){let i=await new Fs(Ir,a).match(A,t);if(i!==void 0)return i}}async has(A){return We.brandCheck(this,e),We.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"}),A=We.converters.DOMString(A),this.#e.has(A)}async open(A){if(We.brandCheck(this,e),We.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"}),A=We.converters.DOMString(A),this.#e.has(A)){let a=this.#e.get(A);return new Fs(Ir,a)}let t=[];return this.#e.set(A,t),new Fs(Ir,t)}async delete(A){return We.brandCheck(this,e),We.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"}),A=We.converters.DOMString(A),this.#e.delete(A)}async keys(){return We.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(ks.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:fr,has:fr,open:fr,delete:fr,keys:fr});A9.exports={CacheStorage:ks}});var r9=E((iS,a9)=>{"use strict";a9.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var Tp=E((sS,n9)=>{"use strict";var i9=require("assert"),{kHeadersList:s9}=ie();function Ny(e){if(e.length===0)return!1;for(let A of e){let t=A.charCodeAt(0);if(t>=0||t<=8||t>=10||t<=31||t===127)return!1}}function by(e){for(let A of e){let t=A.charCodeAt(0);if(t<=32||t>127||A==="("||A===")"||A===">"||A==="<"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}")throw new Error("Invalid cookie name")}}function Sy(e){for(let A of e){let t=A.charCodeAt(0);if(t<33||t===34||t===44||t===59||t===92||t>126)throw new Error("Invalid header value")}}function Fy(e){for(let A of e)if(A.charCodeAt(0)<33||A===";")throw new Error("Invalid cookie path")}function ky(e){if(e.startsWith("-")||e.endsWith(".")||e.endsWith("-"))throw new Error("Invalid cookie domain")}function Ly(e){typeof e=="number"&&(e=new Date(e));let A=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],a=A[e.getUTCDay()],r=e.getUTCDate().toString().padStart(2,"0"),i=t[e.getUTCMonth()],s=e.getUTCFullYear(),n=e.getUTCHours().toString().padStart(2,"0"),o=e.getUTCMinutes().toString().padStart(2,"0"),d=e.getUTCSeconds().toString().padStart(2,"0");return`${a}, ${r} ${i} ${s} ${n}:${o}:${d} GMT`}function Uy(e){if(e<0)throw new Error("Invalid cookie max-age")}function Ty(e){if(e.name.length===0)return null;by(e.name),Sy(e.value);let A=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&A.push("Secure"),e.httpOnly&&A.push("HttpOnly"),typeof e.maxAge=="number"&&(Uy(e.maxAge),A.push(`Max-Age=${e.maxAge}`)),e.domain&&(ky(e.domain),A.push(`Domain=${e.domain}`)),e.path&&(Fy(e.path),A.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&A.push(`Expires=${Ly(e.expires)}`),e.sameSite&&A.push(`SameSite=${e.sameSite}`);for(let t of e.unparsed){if(!t.includes("="))throw new Error("Invalid unparsed");let[a,...r]=t.split("=");A.push(`${a.trim()}=${r.join("=")}`)}return A.join("; ")}var Ls;function My(e){if(e[s9])return e[s9];Ls||(Ls=Object.getOwnPropertySymbols(e).find(t=>t.description==="headers list"),i9(Ls,"Headers cannot be parsed"));let A=e[Ls];return i9(A),A}n9.exports={isCTLExcludingHtab:Ny,stringify:Ty,getHeadersList:My}});var d9=E((nS,o9)=>{"use strict";var{maxNameValuePairSize:Vy,maxAttributeValueSize:Yy}=r9(),{isCTLExcludingHtab:Jy}=Tp(),{collectASequenceOfCodePointsFast:Us}=UA(),Gy=require("assert");function xy(e){if(Jy(e))return null;let A="",t="",a="",r="";if(e.includes(";")){let i={position:0};A=Us(";",e,i),t=e.slice(i.position)}else A=e;if(!A.includes("="))r=A;else{let i={position:0};a=Us("=",A,i),r=A.slice(i.position+1)}return a=a.trim(),r=r.trim(),a.length+r.length>Vy?null:{name:a,value:r,...Ca(t)}}function Ca(e,A={}){if(e.length===0)return A;Gy(e[0]===";"),e=e.slice(1);let t="";e.includes(";")?(t=Us(";",e,{position:0}),e=e.slice(t.length)):(t=e,e="");let a="",r="";if(t.includes("=")){let s={position:0};a=Us("=",t,s),r=t.slice(s.position+1)}else a=t;if(a=a.trim(),r=r.trim(),r.length>Yy)return Ca(e,A);let i=a.toLowerCase();if(i==="expires"){let s=new Date(r);A.expires=s}else if(i==="max-age"){let s=r.charCodeAt(0);if((s<48||s>57)&&r[0]!=="-"||!/^\d+$/.test(r))return Ca(e,A);let n=Number(r);A.maxAge=n}else if(i==="domain"){let s=r;s[0]==="."&&(s=s.slice(1)),s=s.toLowerCase(),A.domain=s}else if(i==="path"){let s="";r.length===0||r[0]!=="/"?s="/":s=r,A.path=s}else if(i==="secure")A.secure=!0;else if(i==="httponly")A.httpOnly=!0;else if(i==="samesite"){let s="Default",n=r.toLowerCase();n.includes("none")&&(s="None"),n.includes("strict")&&(s="Strict"),n.includes("lax")&&(s="Lax"),A.sameSite=s}else A.unparsed??=[],A.unparsed.push(`${a}=${r}`);return Ca(e,A)}o9.exports={parseSetCookie:xy,parseUnparsedAttributes:Ca}});var c9=E((oS,g9)=>{"use strict";var{parseSetCookie:_y}=d9(),{stringify:p9,getHeadersList:qy}=Tp(),{webidl:G}=xe(),{Headers:Ts}=l1();function Hy(e){G.argumentLengthCheck(arguments,1,{header:"getCookies"}),G.brandCheck(e,Ts,{strict:!1});let A=e.get("cookie"),t={};if(!A)return t;for(let a of A.split(";")){let[r,...i]=a.split("=");t[r.trim()]=i.join("=")}return t}function Oy(e,A,t){G.argumentLengthCheck(arguments,2,{header:"deleteCookie"}),G.brandCheck(e,Ts,{strict:!1}),A=G.converters.DOMString(A),t=G.converters.DeleteCookieAttributes(t),l9(e,{name:A,value:"",expires:new Date(0),...t})}function Py(e){G.argumentLengthCheck(arguments,1,{header:"getSetCookies"}),G.brandCheck(e,Ts,{strict:!1});let A=qy(e).cookies;return A?A.map(t=>_y(Array.isArray(t)?t[1]:t)):[]}function l9(e,A){G.argumentLengthCheck(arguments,2,{header:"setCookie"}),G.brandCheck(e,Ts,{strict:!1}),A=G.converters.Cookie(A),p9(A)&&e.append("Set-Cookie",p9(A))}G.converters.DeleteCookieAttributes=G.dictionaryConverter([{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:null}]);G.converters.Cookie=G.dictionaryConverter([{converter:G.converters.DOMString,key:"name"},{converter:G.converters.DOMString,key:"value"},{converter:G.nullableConverter(e=>typeof e=="number"?G.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:null},{converter:G.nullableConverter(G.converters["long long"]),key:"maxAge",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:null},{converter:G.nullableConverter(G.converters.boolean),key:"secure",defaultValue:null},{converter:G.nullableConverter(G.converters.boolean),key:"httpOnly",defaultValue:null},{converter:G.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:G.sequenceConverter(G.converters.DOMString),key:"unparsed",defaultValue:[]}]);g9.exports={getCookies:Hy,deleteCookie:Oy,getSetCookies:Py,setCookie:l9}});var Ba=E((dS,u9)=>{"use strict";var Wy="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",Zy={enumerable:!0,writable:!1,configurable:!1},jy={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},Xy={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},zy=2**16-1,Ky={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},$y=Buffer.allocUnsafe(0);u9.exports={uid:Wy,staticPropertyDescriptors:Zy,states:jy,opcodes:Xy,maxUnsigned16Bit:zy,parserStates:Ky,emptyBuffer:$y}});var wr=E((pS,E9)=>{"use strict";E9.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var Vp=E((lS,Q9)=>{"use strict";var{webidl:N}=xe(),{kEnumerableProperty:eA}=q(),{MessagePort:eD}=require("worker_threads"),Ms=class e extends Event{#e;constructor(A,t={}){N.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"}),A=N.converters.DOMString(A),t=N.converters.MessageEventInit(t),super(A,t),this.#e=t}get data(){return N.brandCheck(this,e),this.#e.data}get origin(){return N.brandCheck(this,e),this.#e.origin}get lastEventId(){return N.brandCheck(this,e),this.#e.lastEventId}get source(){return N.brandCheck(this,e),this.#e.source}get ports(){return N.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(A,t=!1,a=!1,r=null,i="",s="",n=null,o=[]){return N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"}),new e(A,{bubbles:t,cancelable:a,data:r,origin:i,lastEventId:s,source:n,ports:o})}},Vs=class e extends Event{#e;constructor(A,t={}){N.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"}),A=N.converters.DOMString(A),t=N.converters.CloseEventInit(t),super(A,t),this.#e=t}get wasClean(){return N.brandCheck(this,e),this.#e.wasClean}get code(){return N.brandCheck(this,e),this.#e.code}get reason(){return N.brandCheck(this,e),this.#e.reason}},Ys=class e extends Event{#e;constructor(A,t){N.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"}),super(A,t),A=N.converters.DOMString(A),t=N.converters.ErrorEventInit(t??{}),this.#e=t}get message(){return N.brandCheck(this,e),this.#e.message}get filename(){return N.brandCheck(this,e),this.#e.filename}get lineno(){return N.brandCheck(this,e),this.#e.lineno}get colno(){return N.brandCheck(this,e),this.#e.colno}get error(){return N.brandCheck(this,e),this.#e.error}};Object.defineProperties(Ms.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:eA,origin:eA,lastEventId:eA,source:eA,ports:eA,initMessageEvent:eA});Object.defineProperties(Vs.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:eA,code:eA,wasClean:eA});Object.defineProperties(Ys.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:eA,filename:eA,lineno:eA,colno:eA,error:eA});N.converters.MessagePort=N.interfaceConverter(eD);N.converters["sequence<MessagePort>"]=N.sequenceConverter(N.converters.MessagePort);var Mp=[{key:"bubbles",converter:N.converters.boolean,defaultValue:!1},{key:"cancelable",converter:N.converters.boolean,defaultValue:!1},{key:"composed",converter:N.converters.boolean,defaultValue:!1}];N.converters.MessageEventInit=N.dictionaryConverter([...Mp,{key:"data",converter:N.converters.any,defaultValue:null},{key:"origin",converter:N.converters.USVString,defaultValue:""},{key:"lastEventId",converter:N.converters.DOMString,defaultValue:""},{key:"source",converter:N.nullableConverter(N.converters.MessagePort),defaultValue:null},{key:"ports",converter:N.converters["sequence<MessagePort>"],get defaultValue(){return[]}}]);N.converters.CloseEventInit=N.dictionaryConverter([...Mp,{key:"wasClean",converter:N.converters.boolean,defaultValue:!1},{key:"code",converter:N.converters["unsigned short"],defaultValue:0},{key:"reason",converter:N.converters.USVString,defaultValue:""}]);N.converters.ErrorEventInit=N.dictionaryConverter([...Mp,{key:"message",converter:N.converters.DOMString,defaultValue:""},{key:"filename",converter:N.converters.USVString,defaultValue:""},{key:"lineno",converter:N.converters["unsigned long"],defaultValue:0},{key:"colno",converter:N.converters["unsigned long"],defaultValue:0},{key:"error",converter:N.converters.any}]);Q9.exports={MessageEvent:Ms,CloseEvent:Vs,ErrorEvent:Ys}});var xs=E((gS,B9)=>{"use strict";var{kReadyState:Js,kController:AD,kResponse:tD,kBinaryType:aD,kWebSocketURL:rD}=wr(),{states:Gs,opcodes:m9}=Ba(),{MessageEvent:iD,ErrorEvent:sD}=Vp();function nD(e){return e[Js]===Gs.OPEN}function oD(e){return e[Js]===Gs.CLOSING}function dD(e){return e[Js]===Gs.CLOSED}function Yp(e,A,t=Event,a){let r=new t(e,a);A.dispatchEvent(r)}function pD(e,A,t){if(e[Js]!==Gs.OPEN)return;let a;if(A===m9.TEXT)try{a=new TextDecoder("utf-8",{fatal:!0}).decode(t)}catch{C9(e,"Received invalid UTF-8 in text frame.");return}else A===m9.BINARY&&(e[aD]==="blob"?a=new Blob([t]):a=new Uint8Array(t).buffer);Yp("message",e,iD,{origin:e[rD].origin,data:a})}function lD(e){if(e.length===0)return!1;for(let A of e){let t=A.charCodeAt(0);if(t<33||t>126||A==="("||A===")"||A==="<"||A===">"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}"||t===32||t===9)return!1}return!0}function gD(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function C9(e,A){let{[AD]:t,[tD]:a}=e;t.abort(),a?.socket&&!a.socket.destroyed&&a.socket.destroy(),A&&Yp("error",e,sD,{error:new Error(A)})}B9.exports={isEstablished:nD,isClosing:oD,isClosed:dD,fireEvent:Yp,isValidSubprotocol:lD,isValidStatusCode:gD,failWebsocketConnection:C9,websocketMessageReceived:pD}});var D9=E((cS,y9)=>{"use strict";var{randomBytes:cD,createHash:uD}=require("crypto"),Jp=require("diagnostics_channel"),{uid:ED,states:I9}=Ba(),{kReadyState:f9,kSentClose:h9,kByteParser:w9,kReceivedClose:QD}=wr(),{fireEvent:mD,failWebsocketConnection:E1}=xs(),{CloseEvent:CD}=Vp(),{makeRequest:BD}=Cr(),{fetching:hD}=ws(),{Headers:ID}=l1(),{getGlobalDispatcher:fD}=da(),{kHeadersList:wD}=ie(),Bt={};Bt.open=Jp.channel("undici:websocket:open");Bt.close=Jp.channel("undici:websocket:close");Bt.socketError=Jp.channel("undici:websocket:socket_error");function yD(e,A,t,a,r){let i=e;i.protocol=e.protocol==="ws:"?"http:":"https:";let s=BD({urlList:[i],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(r.headers){let l=new ID(r.headers)[wD];s.headersList=l}let n=cD(16).toString("base64");s.headersList.append("sec-websocket-key",n),s.headersList.append("sec-websocket-version","13");for(let l of A)s.headersList.append("sec-websocket-protocol",l);let o="";return hD({request:s,useParallelQueue:!0,dispatcher:r.dispatcher??fD(),processResponse(l){if(l.type==="error"||l.status!==101){E1(t,"Received network error or non-101 status code.");return}if(A.length!==0&&!l.headersList.get("Sec-WebSocket-Protocol")){E1(t,"Server did not respond with sent protocols.");return}if(l.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){E1(t,'Server did not set Upgrade header to "websocket".');return}if(l.headersList.get("Connection")?.toLowerCase()!=="upgrade"){E1(t,'Server did not set Connection header to "upgrade".');return}let p=l.headersList.get("Sec-WebSocket-Accept"),g=uD("sha1").update(n+ED).digest("base64");if(p!==g){E1(t,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let c=l.headersList.get("Sec-WebSocket-Extensions");if(c!==null&&c!==o){E1(t,"Received different permessage-deflate than the one set.");return}let u=l.headersList.get("Sec-WebSocket-Protocol");if(u!==null&&u!==s.headersList.get("Sec-WebSocket-Protocol")){E1(t,"Protocol was not set in the opening handshake.");return}l.socket.on("data",DD),l.socket.on("close",RD),l.socket.on("error",vD),Bt.open.hasSubscribers&&Bt.open.publish({address:l.socket.address(),protocol:u,extensions:c}),a(l)}})}function DD(e){this.ws[w9].write(e)||this.pause()}function RD(){let{ws:e}=this,A=e[h9]&&e[QD],t=1005,a="",r=e[w9].closingInfo;r?(t=r.code??1005,a=r.reason):e[h9]||(t=1006),e[f9]=I9.CLOSED,mD("close",e,CD,{wasClean:A,code:t,reason:a}),Bt.close.hasSubscribers&&Bt.close.publish({websocket:e,code:t,reason:a})}function vD(e){let{ws:A}=this;A[f9]=I9.CLOSING,Bt.socketError.hasSubscribers&&Bt.socketError.publish(e),this.destroy()}y9.exports={establishWebSocketConnection:yD}});var xp=E((uS,R9)=>{"use strict";var{randomBytes:ND}=require("crypto"),{maxUnsigned16Bit:bD}=Ba(),Gp=class{constructor(A){this.frameData=A,this.maskKey=ND(4)}createFrame(A){let t=this.frameData?.byteLength??0,a=t,r=6;t>bD?(r+=8,a=127):t>125&&(r+=2,a=126);let i=Buffer.allocUnsafe(t+r);i[0]=i[1]=0,i[0]|=128,i[0]=(i[0]&240)+A;i[r-4]=this.maskKey[0],i[r-3]=this.maskKey[1],i[r-2]=this.maskKey[2],i[r-1]=this.maskKey[3],i[1]=a,a===126?i.writeUInt16BE(t,2):a===127&&(i[2]=i[3]=0,i.writeUIntBE(t,4,6)),i[1]|=128;for(let s=0;s<t;s++)i[r+s]=this.frameData[s]^this.maskKey[s%4];return i}};R9.exports={WebsocketFrameSend:Gp}});var U9=E((ES,L9)=>{"use strict";var{Writable:SD}=require("stream"),k9=require("diagnostics_channel"),{parserStates:vA,opcodes:NA,states:FD,emptyBuffer:kD}=Ba(),{kReadyState:LD,kSentClose:v9,kResponse:N9,kReceivedClose:b9}=wr(),{isValidStatusCode:S9,failWebsocketConnection:yr,websocketMessageReceived:UD}=xs(),{WebsocketFrameSend:F9}=xp(),ha={};ha.ping=k9.channel("undici:websocket:ping");ha.pong=k9.channel("undici:websocket:pong");var _p=class extends SD{#e=[];#a=0;#A=vA.INFO;#t={};#r=[];constructor(A){super(),this.ws=A}_write(A,t,a){this.#e.push(A),this.#a+=A.length,this.run(a)}run(A){for(;;){if(this.#A===vA.INFO){if(this.#a<2)return A();let t=this.consume(2);if(this.#t.fin=(t[0]&128)!==0,this.#t.opcode=t[0]&15,this.#t.originalOpcode??=this.#t.opcode,this.#t.fragmented=!this.#t.fin&&this.#t.opcode!==NA.CONTINUATION,this.#t.fragmented&&this.#t.opcode!==NA.BINARY&&this.#t.opcode!==NA.TEXT){yr(this.ws,"Invalid frame type was fragmented.");return}let a=t[1]&127;if(a<=125?(this.#t.payloadLength=a,this.#A=vA.READ_DATA):a===126?this.#A=vA.PAYLOADLENGTH_16:a===127&&(this.#A=vA.PAYLOADLENGTH_64),this.#t.fragmented&&a>125){yr(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#t.opcode===NA.PING||this.#t.opcode===NA.PONG||this.#t.opcode===NA.CLOSE)&&a>125){yr(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#t.opcode===NA.CLOSE){if(a===1){yr(this.ws,"Received close frame with a 1-byte body.");return}let r=this.consume(a);if(this.#t.closeInfo=this.parseCloseBody(!1,r),!this.ws[v9]){let i=Buffer.allocUnsafe(2);i.writeUInt16BE(this.#t.closeInfo.code,0);let s=new F9(i);this.ws[N9].socket.write(s.createFrame(NA.CLOSE),n=>{n||(this.ws[v9]=!0)})}this.ws[LD]=FD.CLOSING,this.ws[b9]=!0,this.end();return}else if(this.#t.opcode===NA.PING){let r=this.consume(a);if(!this.ws[b9]){let i=new F9(r);this.ws[N9].socket.write(i.createFrame(NA.PONG)),ha.ping.hasSubscribers&&ha.ping.publish({payload:r})}if(this.#A=vA.INFO,this.#a>0)continue;A();return}else if(this.#t.opcode===NA.PONG){let r=this.consume(a);if(ha.pong.hasSubscribers&&ha.pong.publish({payload:r}),this.#a>0)continue;A();return}}else if(this.#A===vA.PAYLOADLENGTH_16){if(this.#a<2)return A();let t=this.consume(2);this.#t.payloadLength=t.readUInt16BE(0),this.#A=vA.READ_DATA}else if(this.#A===vA.PAYLOADLENGTH_64){if(this.#a<8)return A();let t=this.consume(8),a=t.readUInt32BE(0);if(a>2**31-1){yr(this.ws,"Received payload length > 2^31 bytes.");return}let r=t.readUInt32BE(4);this.#t.payloadLength=(a<<8)+r,this.#A=vA.READ_DATA}else if(this.#A===vA.READ_DATA){if(this.#a<this.#t.payloadLength)return A();if(this.#a>=this.#t.payloadLength){let t=this.consume(this.#t.payloadLength);if(this.#r.push(t),!this.#t.fragmented||this.#t.fin&&this.#t.opcode===NA.CONTINUATION){let a=Buffer.concat(this.#r);UD(this.ws,this.#t.originalOpcode,a),this.#t={},this.#r.length=0}this.#A=vA.INFO}}if(!(this.#a>0)){A();break}}}consume(A){if(A>this.#a)return null;if(A===0)return kD;if(this.#e[0].length===A)return this.#a-=this.#e[0].length,this.#e.shift();let t=Buffer.allocUnsafe(A),a=0;for(;a!==A;){let r=this.#e[0],{length:i}=r;if(i+a===A){t.set(this.#e.shift(),a);break}else if(i+a>A){t.set(r.subarray(0,A-a),a),this.#e[0]=r.subarray(A-a);break}else t.set(this.#e.shift(),a),a+=r.length}return this.#a-=A,t}parseCloseBody(A,t){let a;if(t.length>=2&&(a=t.readUInt16BE(0)),A)return S9(a)?{code:a}:null;let r=t.subarray(2);if(r[0]===239&&r[1]===187&&r[2]===191&&(r=r.subarray(3)),a!==void 0&&!S9(a))return null;try{r=new TextDecoder("utf-8",{fatal:!0}).decode(r)}catch{return null}return{code:a,reason:r}}get closingInfo(){return this.#t.closeInfo}};L9.exports={ByteParser:_p}});var _9=E((QS,x9)=>{"use strict";var{webidl:F}=xe(),{DOMException:xt}=kt(),{URLSerializer:TD}=UA(),{staticPropertyDescriptors:_t,states:Ia,opcodes:Dr,emptyBuffer:MD}=Ba(),{kWebSocketURL:T9,kReadyState:ht,kController:VD,kBinaryType:_s,kResponse:qs,kSentClose:YD,kByteParser:JD}=wr(),{isEstablished:M9,isClosing:V9,isValidSubprotocol:GD,failWebsocketConnection:xD,fireEvent:_D}=xs(),{establishWebSocketConnection:qD}=D9(),{WebsocketFrameSend:Rr}=xp(),{ByteParser:HD}=U9(),{kEnumerableProperty:bA,isBlobLike:J9}=q(),{getGlobalDispatcher:OD}=da(),{types:G9}=require("util"),Y9=!1,cA=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#a=0;#A="";#t="";constructor(A,t=[]){super(),F.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"}),Y9||(Y9=!0,process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"}));let a=F.converters["DOMString or sequence<DOMString> or WebSocketInit"](t);A=F.converters.USVString(A),t=a.protocols;let r;try{r=new URL(A)}catch(i){throw new xt(i,"SyntaxError")}if(r.protocol!=="ws:"&&r.protocol!=="wss:")throw new xt(`Expected a ws: or wss: protocol, got ${r.protocol}`,"SyntaxError");if(r.hash)throw new xt("Got fragment","SyntaxError");if(typeof t=="string"&&(t=[t]),t.length!==new Set(t.map(i=>i.toLowerCase())).size)throw new xt("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(t.length>0&&!t.every(i=>GD(i)))throw new xt("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[T9]=r,this[VD]=qD(r,t,this,i=>this.#r(i),a),this[ht]=e.CONNECTING,this[_s]="blob"}close(A=void 0,t=void 0){if(F.brandCheck(this,e),A!==void 0&&(A=F.converters["unsigned short"](A,{clamp:!0})),t!==void 0&&(t=F.converters.USVString(t)),A!==void 0&&A!==1e3&&(A<3e3||A>4999))throw new xt("invalid code","InvalidAccessError");let a=0;if(t!==void 0&&(a=Buffer.byteLength(t),a>123))throw new xt(`Reason must be less than 123 bytes; received ${a}`,"SyntaxError");if(!(this[ht]===e.CLOSING||this[ht]===e.CLOSED))if(!M9(this))xD(this,"Connection was closed before it was established."),this[ht]=e.CLOSING;else if(V9(this))this[ht]=e.CLOSING;else{let r=new Rr;A!==void 0&&t===void 0?(r.frameData=Buffer.allocUnsafe(2),r.frameData.writeUInt16BE(A,0)):A!==void 0&&t!==void 0?(r.frameData=Buffer.allocUnsafe(2+a),r.frameData.writeUInt16BE(A,0),r.frameData.write(t,2,"utf-8")):r.frameData=MD,this[qs].socket.write(r.createFrame(Dr.CLOSE),s=>{s||(this[YD]=!0)}),this[ht]=Ia.CLOSING}}send(A){if(F.brandCheck(this,e),F.argumentLengthCheck(arguments,1,{header:"WebSocket.send"}),A=F.converters.WebSocketSendData(A),this[ht]===e.CONNECTING)throw new xt("Sent before connected.","InvalidStateError");if(!M9(this)||V9(this))return;let t=this[qs].socket;if(typeof A=="string"){let a=Buffer.from(A),i=new Rr(a).createFrame(Dr.TEXT);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(G9.isArrayBuffer(A)){let a=Buffer.from(A),i=new Rr(a).createFrame(Dr.BINARY);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(ArrayBuffer.isView(A)){let a=Buffer.from(A,A.byteOffset,A.byteLength),i=new Rr(a).createFrame(Dr.BINARY);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(J9(A)){let a=new Rr;A.arrayBuffer().then(r=>{let i=Buffer.from(r);a.frameData=i;let s=a.createFrame(Dr.BINARY);this.#a+=i.byteLength,t.write(s,()=>{this.#a-=i.byteLength})})}}get readyState(){return F.brandCheck(this,e),this[ht]}get bufferedAmount(){return F.brandCheck(this,e),this.#a}get url(){return F.brandCheck(this,e),TD(this[T9])}get extensions(){return F.brandCheck(this,e),this.#t}get protocol(){return F.brandCheck(this,e),this.#A}get onopen(){return F.brandCheck(this,e),this.#e.open}set onopen(A){F.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof A=="function"?(this.#e.open=A,this.addEventListener("open",A)):this.#e.open=null}get onerror(){return F.brandCheck(this,e),this.#e.error}set onerror(A){F.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof A=="function"?(this.#e.error=A,this.addEventListener("error",A)):this.#e.error=null}get onclose(){return F.brandCheck(this,e),this.#e.close}set onclose(A){F.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof A=="function"?(this.#e.close=A,this.addEventListener("close",A)):this.#e.close=null}get onmessage(){return F.brandCheck(this,e),this.#e.message}set onmessage(A){F.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof A=="function"?(this.#e.message=A,this.addEventListener("message",A)):this.#e.message=null}get binaryType(){return F.brandCheck(this,e),this[_s]}set binaryType(A){F.brandCheck(this,e),A!=="blob"&&A!=="arraybuffer"?this[_s]="blob":this[_s]=A}#r(A){this[qs]=A;let t=new HD(this);t.on("drain",function(){this.ws[qs].socket.resume()}),A.socket.ws=this,this[JD]=t,this[ht]=Ia.OPEN;let a=A.headersList.get("sec-websocket-extensions");a!==null&&(this.#t=a);let r=A.headersList.get("sec-websocket-protocol");r!==null&&(this.#A=r),_D("open",this)}};cA.CONNECTING=cA.prototype.CONNECTING=Ia.CONNECTING;cA.OPEN=cA.prototype.OPEN=Ia.OPEN;cA.CLOSING=cA.prototype.CLOSING=Ia.CLOSING;cA.CLOSED=cA.prototype.CLOSED=Ia.CLOSED;Object.defineProperties(cA.prototype,{CONNECTING:_t,OPEN:_t,CLOSING:_t,CLOSED:_t,url:bA,readyState:bA,bufferedAmount:bA,onopen:bA,onerror:bA,onclose:bA,close:bA,onmessage:bA,binaryType:bA,send:bA,extensions:bA,protocol:bA,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(cA,{CONNECTING:_t,OPEN:_t,CLOSING:_t,CLOSED:_t});F.converters["sequence<DOMString>"]=F.sequenceConverter(F.converters.DOMString);F.converters["DOMString or sequence<DOMString>"]=function(e){return F.util.Type(e)==="Object"&&Symbol.iterator in e?F.converters["sequence<DOMString>"](e):F.converters.DOMString(e)};F.converters.WebSocketInit=F.dictionaryConverter([{key:"protocols",converter:F.converters["DOMString or sequence<DOMString>"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return OD()}},{key:"headers",converter:F.nullableConverter(F.converters.HeadersInit)}]);F.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(e){return F.util.Type(e)==="Object"&&!(Symbol.iterator in e)?F.converters.WebSocketInit(e):{protocols:F.converters["DOMString or sequence<DOMString>"](e)}};F.converters.WebSocketSendData=function(e){if(F.util.Type(e)==="Object"){if(J9(e))return F.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||G9.isAnyArrayBuffer(e))return F.converters.BufferSource(e)}return F.converters.USVString(e)};x9.exports={WebSocket:cA}});var Hp=E((mS,V)=>{"use strict";var PD=sr(),q9=Fi(),H9=$(),WD=$1(),ZD=d6(),jD=pr(),Q1=q(),{InvalidArgumentError:Hs}=H9,fa=ec(),XD=$a(),zD=Kd(),KD=Mc(),$D=Ap(),eR=Jd(),AR=qc(),{getGlobalDispatcher:O9,setGlobalDispatcher:tR}=da(),aR=jc(),rR=zo(),iR=Ti(),qp;try{require("crypto"),qp=!0}catch{qp=!1}Object.assign(q9.prototype,fa);V.exports.Dispatcher=q9;V.exports.Client=PD;V.exports.Pool=WD;V.exports.BalancedPool=ZD;V.exports.Agent=jD;V.exports.ProxyAgent=AR;V.exports.DecoratorHandler=aR;V.exports.RedirectHandler=rR;V.exports.createRedirectInterceptor=iR;V.exports.buildConnector=XD;V.exports.errors=H9;function vr(e){return(A,t,a)=>{if(typeof t=="function"&&(a=t,t=null),!A||typeof A!="string"&&typeof A!="object"&&!(A instanceof URL))throw new Hs("invalid url");if(t!=null&&typeof t!="object")throw new Hs("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new Hs("invalid opts.path");let s=t.path;t.path.startsWith("/")||(s=`/${s}`),A=new URL(Q1.parseOrigin(A).origin+s)}else t||(t=typeof A=="object"?A:{}),A=Q1.parseURL(A);let{agent:r,dispatcher:i=O9()}=t;if(r)throw new Hs("unsupported opts.agent. Did you mean opts.client?");return e.call(i,{...t,origin:A.origin,path:A.search?`${A.pathname}${A.search}`:A.pathname,method:t.method||(t.body?"PUT":"GET")},a)}}V.exports.setGlobalDispatcher=tR;V.exports.getGlobalDispatcher=O9;if(Q1.nodeMajor>16||Q1.nodeMajor===16&&Q1.nodeMinor>=8){let e=null;V.exports.fetch=async function(s){e||(e=ws().fetch);try{return await e(...arguments)}catch(n){throw Error.captureStackTrace(n,this),n}},V.exports.Headers=l1().Headers,V.exports.Response=cs().Response,V.exports.Request=Cr().Request,V.exports.FormData=bi().FormData,V.exports.File=vi().File,V.exports.FileReader=Hu().FileReader;let{setGlobalOrigin:A,getGlobalOrigin:t}=Pa();V.exports.setGlobalOrigin=A,V.exports.getGlobalOrigin=t;let{CacheStorage:a}=t9(),{kConstruct:r}=vs();V.exports.caches=new a(r)}if(Q1.nodeMajor>=16){let{deleteCookie:e,getCookies:A,getSetCookies:t,setCookie:a}=c9();V.exports.deleteCookie=e,V.exports.getCookies=A,V.exports.getSetCookies=t,V.exports.setCookie=a;let{parseMIMEType:r,serializeAMimeType:i}=UA();V.exports.parseMIMEType=r,V.exports.serializeAMimeType=i}if(Q1.nodeMajor>=18&&qp){let{WebSocket:e}=_9();V.exports.WebSocket=e}V.exports.request=vr(fa.request);V.exports.stream=vr(fa.stream);V.exports.pipeline=vr(fa.pipeline);V.exports.connect=vr(fa.connect);V.exports.upgrade=vr(fa.upgrade);V.exports.MockClient=zD;V.exports.MockPool=$D;V.exports.MockAgent=KD;V.exports.mockErrors=eR});var jp=E(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var oR=function(e,A,t,a){if(typeof e!="string"||e.length===0)throw new TypeError("text should be a string");if(typeof A!="string"||A.length===0)throw new TypeError("lang should be a string");if(typeof t!="boolean")throw new TypeError("slow should be a boolean");if(typeof a!="string"||a.length===0)throw new TypeError("host should be a string")};Zp.default=oR});var zp=E(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});var dR="\\s\\uFEFF\\xA0",pR="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",lR=function(e,A){for(var t=A===void 0?{}:A,a=t.maxLength,r=a===void 0?200:a,i=t.splitPunct,s=i===void 0?"":i,n=function(u,m){var Q=new RegExp("["+dR+pR+s+"]");return Q.test(u.charAt(m))},o=function(u,m,Q){for(var C=Q;C>=m;C--)if(n(u,C))return C;return-1},d=[],l=function(u,m,Q){d.push(u.slice(m,Q+1))},p=0;;){if(e.length-p<=r){l(e,p,e.length-1);break}var g=p+r-1;if(n(e,g)||n(e,g+1)){l(e,p,g),p=g+1;continue}if(g=o(e,p,g),g===-1){var c=e.slice(p,p+r);throw new Error("The word is too long to split into a short text:"+(` `+c+" ...")+` -Try the option "splitPunct" to split the text by punctuation.`)}l(e,p,g),p=g+1}return d};s0.default=Lv});var lE=E(Dt=>{"use strict";var o0=Dt&&Dt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Dt,"__esModule",{value:!0});Dt.getAllAudioUrls=Dt.getAudioUrl=void 0;var pE=o0(i0()),Uv=o0(n0()),Tv=o0(require("url")),Mv=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n;if(pE.default(e,r,s,o),e.length>200)throw new RangeError("text length ("+e.length+') should be less than 200 characters. Try "getAllAudioUrls(text, [option])" for long text.');return o+"/translate_tts"+Tv.default.format({query:{ie:"UTF-8",q:e,tl:r,total:1,idx:0,textlen:e.length,client:"tw-ob",prev:"input",ttsspeed:s?.24:1}})};Dt.getAudioUrl=Mv;var Vv=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n,d=t.splitPunct,l=d===void 0?"":d;if(pE.default(e,r,s,o),typeof l!="string")throw new TypeError("splitPunct should be a string");return Uv.default(e,{splitPunct:l}).map(function(p){return{shortText:p,url:Dt.getAudioUrl(p,{lang:r,slow:s,host:o})}})};Dt.getAllAudioUrls=Vv});var d0=E((cF,gE)=>{"use strict";gE.exports=function(A,t){return function(){for(var r=new Array(arguments.length),i=0;i<r.length;i++)r[i]=arguments[i];return A.apply(t,r)}}});var We=E((uF,EE)=>{"use strict";var Yv=d0(),f1=Object.prototype.toString;function g0(e){return f1.call(e)==="[object Array]"}function p0(e){return typeof e>"u"}function Jv(e){return e!==null&&!p0(e)&&e.constructor!==null&&!p0(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function Gv(e){return f1.call(e)==="[object ArrayBuffer]"}function xv(e){return typeof FormData<"u"&&e instanceof FormData}function _v(e){var A;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?A=ArrayBuffer.isView(e):A=e&&e.buffer&&e.buffer instanceof ArrayBuffer,A}function qv(e){return typeof e=="string"}function Hv(e){return typeof e=="number"}function cE(e){return e!==null&&typeof e=="object"}function en(e){if(f1.call(e)!=="[object Object]")return!1;var A=Object.getPrototypeOf(e);return A===null||A===Object.prototype}function Ov(e){return f1.call(e)==="[object Date]"}function Pv(e){return f1.call(e)==="[object File]"}function Wv(e){return f1.call(e)==="[object Blob]"}function uE(e){return f1.call(e)==="[object Function]"}function jv(e){return cE(e)&&uE(e.pipe)}function Zv(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function Xv(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function zv(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function c0(e,A){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),g0(e))for(var t=0,a=e.length;t<a;t++)A.call(null,e[t],t,e);else for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&A.call(null,e[r],r,e)}function l0(){var e={};function A(r,i){en(e[i])&&en(r)?e[i]=l0(e[i],r):en(r)?e[i]=l0({},r):g0(r)?e[i]=r.slice():e[i]=r}for(var t=0,a=arguments.length;t<a;t++)c0(arguments[t],A);return e}function Kv(e,A,t){return c0(A,function(r,i){t&&typeof r=="function"?e[i]=Yv(r,t):e[i]=r}),e}function $v(e){return e.charCodeAt(0)===65279&&(e=e.slice(1)),e}EE.exports={isArray:g0,isArrayBuffer:Gv,isBuffer:Jv,isFormData:xv,isArrayBufferView:_v,isString:qv,isNumber:Hv,isObject:cE,isPlainObject:en,isUndefined:p0,isDate:Ov,isFile:Pv,isBlob:Wv,isFunction:uE,isStream:jv,isURLSearchParams:Zv,isStandardBrowserEnv:zv,forEach:c0,merge:l0,extend:Kv,trim:Xv,stripBOM:$v}});var An=E((EF,CE)=>{"use strict";var Ra=We();function QE(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}CE.exports=function(A,t,a){if(!t)return A;var r;if(a)r=a(t);else if(Ra.isURLSearchParams(t))r=t.toString();else{var i=[];Ra.forEach(t,function(o,d){o===null||typeof o>"u"||(Ra.isArray(o)?d=d+"[]":o=[o],Ra.forEach(o,function(p){Ra.isDate(p)?p=p.toISOString():Ra.isObject(p)&&(p=JSON.stringify(p)),i.push(QE(d)+"="+QE(p))}))}),r=i.join("&")}if(r){var s=A.indexOf("#");s!==-1&&(A=A.slice(0,s)),A+=(A.indexOf("?")===-1?"?":"&")+r}return A}});var BE=E((QF,mE)=>{"use strict";var eR=We();function tn(){this.handlers=[]}tn.prototype.use=function(A,t,a){return this.handlers.push({fulfilled:A,rejected:t,synchronous:a?a.synchronous:!1,runWhen:a?a.runWhen:null}),this.handlers.length-1};tn.prototype.eject=function(A){this.handlers[A]&&(this.handlers[A]=null)};tn.prototype.forEach=function(A){eR.forEach(this.handlers,function(a){a!==null&&A(a)})};mE.exports=tn});var IE=E((CF,hE)=>{"use strict";var AR=We();hE.exports=function(A,t){AR.forEach(A,function(r,i){i!==t&&i.toUpperCase()===t.toUpperCase()&&(A[t]=r,delete A[i])})}});var an=E((mF,fE)=>{"use strict";fE.exports=function(A,t,a,r,i){return A.config=t,a&&(A.code=a),A.request=r,A.response=i,A.isAxiosError=!0,A.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},A}});var rn=E((BF,wE)=>{"use strict";var tR=an();wE.exports=function(A,t,a,r,i){var s=new Error(A);return tR(s,t,a,r,i)}});var u0=E((hF,yE)=>{"use strict";var aR=rn();yE.exports=function(A,t,a){var r=a.config.validateStatus;!a.status||!r||r(a.status)?A(a):t(aR("Request failed with status code "+a.status,a.config,null,a.request,a))}});var vE=E((IF,DE)=>{"use strict";var sn=We();DE.exports=sn.isStandardBrowserEnv()?function(){return{write:function(t,a,r,i,s,n){var o=[];o.push(t+"="+encodeURIComponent(a)),sn.isNumber(r)&&o.push("expires="+new Date(r).toGMTString()),sn.isString(i)&&o.push("path="+i),sn.isString(s)&&o.push("domain="+s),n===!0&&o.push("secure"),document.cookie=o.join("; ")},read:function(t){var a=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return a?decodeURIComponent(a[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var NE=E((fF,RE)=>{"use strict";RE.exports=function(A){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(A)}});var SE=E((wF,bE)=>{"use strict";bE.exports=function(A,t){return t?A.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):A}});var E0=E((yF,FE)=>{"use strict";var rR=NE(),iR=SE();FE.exports=function(A,t){return A&&!rR(t)?iR(A,t):t}});var LE=E((DF,kE)=>{"use strict";var Q0=We(),sR=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];kE.exports=function(A){var t={},a,r,i;return A&&Q0.forEach(A.split(` -`),function(n){if(i=n.indexOf(":"),a=Q0.trim(n.substr(0,i)).toLowerCase(),r=Q0.trim(n.substr(i+1)),a){if(t[a]&&sR.indexOf(a)>=0)return;a==="set-cookie"?t[a]=(t[a]?t[a]:[]).concat([r]):t[a]=t[a]?t[a]+", "+r:r}}),t}});var ME=E((vF,TE)=>{"use strict";var UE=We();TE.exports=UE.isStandardBrowserEnv()?function(){var A=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a"),a;function r(i){var s=i;return A&&(t.setAttribute("href",s),s=t.href),t.setAttribute("href",s),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}return a=r(window.location.href),function(s){var n=UE.isString(s)?r(s):s;return n.protocol===a.protocol&&n.host===a.host}}():function(){return function(){return!0}}()});var YE=E((RF,VE)=>{"use strict";var nn=We(),nR=u0(),oR=vE(),dR=An(),pR=E0(),lR=LE(),gR=ME(),C0=rn();VE.exports=function(A){return new Promise(function(a,r){var i=A.data,s=A.headers,n=A.responseType;nn.isFormData(i)&&delete s["Content-Type"];var o=new XMLHttpRequest;if(A.auth){var d=A.auth.username||"",l=A.auth.password?unescape(encodeURIComponent(A.auth.password)):"";s.Authorization="Basic "+btoa(d+":"+l)}var p=pR(A.baseURL,A.url);o.open(A.method.toUpperCase(),dR(p,A.params,A.paramsSerializer),!0),o.timeout=A.timeout;function g(){if(o){var u="getAllResponseHeaders"in o?lR(o.getAllResponseHeaders()):null,Q=!n||n==="text"||n==="json"?o.responseText:o.response,m={data:Q,status:o.status,statusText:o.statusText,headers:u,config:A,request:o};nR(a,r,m),o=null}}if("onloadend"in o?o.onloadend=g:o.onreadystatechange=function(){!o||o.readyState!==4||o.status===0&&!(o.responseURL&&o.responseURL.indexOf("file:")===0)||setTimeout(g)},o.onabort=function(){o&&(r(C0("Request aborted",A,"ECONNABORTED",o)),o=null)},o.onerror=function(){r(C0("Network Error",A,null,o)),o=null},o.ontimeout=function(){var Q="timeout of "+A.timeout+"ms exceeded";A.timeoutErrorMessage&&(Q=A.timeoutErrorMessage),r(C0(Q,A,A.transitional&&A.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",o)),o=null},nn.isStandardBrowserEnv()){var c=(A.withCredentials||gR(p))&&A.xsrfCookieName?oR.read(A.xsrfCookieName):void 0;c&&(s[A.xsrfHeaderName]=c)}"setRequestHeader"in o&&nn.forEach(s,function(Q,m){typeof i>"u"&&m.toLowerCase()==="content-type"?delete s[m]:o.setRequestHeader(m,Q)}),nn.isUndefined(A.withCredentials)||(o.withCredentials=!!A.withCredentials),n&&n!=="json"&&(o.responseType=A.responseType),typeof A.onDownloadProgress=="function"&&o.addEventListener("progress",A.onDownloadProgress),typeof A.onUploadProgress=="function"&&o.upload&&o.upload.addEventListener("progress",A.onUploadProgress),A.cancelToken&&A.cancelToken.promise.then(function(Q){o&&(o.abort(),r(Q),o=null)}),i||(i=null),o.send(i)})}});var GE=E((NF,JE)=>{var Na=1e3,ba=Na*60,Sa=ba*60,w1=Sa*24,cR=w1*7,uR=w1*365.25;JE.exports=function(e,A){A=A||{};var t=typeof e;if(t==="string"&&e.length>0)return ER(e);if(t==="number"&&isFinite(e))return A.long?CR(e):QR(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function ER(e){if(e=String(e),!(e.length>100)){var A=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(A){var t=parseFloat(A[1]),a=(A[2]||"ms").toLowerCase();switch(a){case"years":case"year":case"yrs":case"yr":case"y":return t*uR;case"weeks":case"week":case"w":return t*cR;case"days":case"day":case"d":return t*w1;case"hours":case"hour":case"hrs":case"hr":case"h":return t*Sa;case"minutes":case"minute":case"mins":case"min":case"m":return t*ba;case"seconds":case"second":case"secs":case"sec":case"s":return t*Na;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function QR(e){var A=Math.abs(e);return A>=w1?Math.round(e/w1)+"d":A>=Sa?Math.round(e/Sa)+"h":A>=ba?Math.round(e/ba)+"m":A>=Na?Math.round(e/Na)+"s":e+"ms"}function CR(e){var A=Math.abs(e);return A>=w1?on(e,A,w1,"day"):A>=Sa?on(e,A,Sa,"hour"):A>=ba?on(e,A,ba,"minute"):A>=Na?on(e,A,Na,"second"):e+" ms"}function on(e,A,t,a){var r=A>=t*1.5;return Math.round(e/t)+" "+a+(r?"s":"")}});var m0=E((bF,xE)=>{function mR(e){t.debug=t,t.default=t,t.coerce=o,t.disable=i,t.enable=r,t.enabled=s,t.humanize=GE(),t.destroy=d,Object.keys(e).forEach(l=>{t[l]=e[l]}),t.names=[],t.skips=[],t.formatters={};function A(l){let p=0;for(let g=0;g<l.length;g++)p=(p<<5)-p+l.charCodeAt(g),p|=0;return t.colors[Math.abs(p)%t.colors.length]}t.selectColor=A;function t(l){let p,g=null,c,u;function Q(...m){if(!Q.enabled)return;let C=Q,h=Number(new Date),B=h-(p||h);C.diff=B,C.prev=p,C.curr=h,p=h,m[0]=t.coerce(m[0]),typeof m[0]!="string"&&m.unshift("%O");let I=0;m[0]=m[0].replace(/%([a-zA-Z%])/g,(v,S)=>{if(v==="%%")return"%";I++;let x=t.formatters[S];if(typeof x=="function"){let we=m[I];v=x.call(C,we),m.splice(I,1),I--}return v}),t.formatArgs.call(C,m),(C.log||t.log).apply(C,m)}return Q.namespace=l,Q.useColors=t.useColors(),Q.color=t.selectColor(l),Q.extend=a,Q.destroy=t.destroy,Object.defineProperty(Q,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(c!==t.namespaces&&(c=t.namespaces,u=t.enabled(l)),u),set:m=>{g=m}}),typeof t.init=="function"&&t.init(Q),Q}function a(l,p){let g=t(this.namespace+(typeof p>"u"?":":p)+l);return g.log=this.log,g}function r(l){t.save(l),t.namespaces=l,t.names=[],t.skips=[];let p,g=(typeof l=="string"?l:"").split(/[\s,]+/),c=g.length;for(p=0;p<c;p++)g[p]&&(l=g[p].replace(/\*/g,".*?"),l[0]==="-"?t.skips.push(new RegExp("^"+l.slice(1)+"$")):t.names.push(new RegExp("^"+l+"$")))}function i(){let l=[...t.names.map(n),...t.skips.map(n).map(p=>"-"+p)].join(",");return t.enable(""),l}function s(l){if(l[l.length-1]==="*")return!0;let p,g;for(p=0,g=t.skips.length;p<g;p++)if(t.skips[p].test(l))return!1;for(p=0,g=t.names.length;p<g;p++)if(t.names[p].test(l))return!0;return!1}function n(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function o(l){return l instanceof Error?l.stack||l.message:l}function d(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}xE.exports=mR});var _E=E((uA,dn)=>{uA.formatArgs=hR;uA.save=IR;uA.load=fR;uA.useColors=BR;uA.storage=wR();uA.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();uA.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function BR(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function hR(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+dn.exports.humanize(this.diff),!this.useColors)return;let A="color: "+this.color;e.splice(1,0,A,"color: inherit");let t=0,a=0;e[0].replace(/%[a-zA-Z%]/g,r=>{r!=="%%"&&(t++,r==="%c"&&(a=t))}),e.splice(a,0,A)}uA.log=console.debug||console.log||(()=>{});function IR(e){try{e?uA.storage.setItem("debug",e):uA.storage.removeItem("debug")}catch{}}function fR(){let e;try{e=uA.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function wR(){try{return localStorage}catch{}}dn.exports=m0()(uA);var{formatters:yR}=dn.exports;yR.j=function(e){try{return JSON.stringify(e)}catch(A){return"[UnexpectedJSONParseError]: "+A.message}}});var HE=E((SF,qE)=>{"use strict";qE.exports=(e,A=process.argv)=>{let t=e.startsWith("-")?"":e.length===1?"-":"--",a=A.indexOf(t+e),r=A.indexOf("--");return a!==-1&&(r===-1||a<r)}});var WE=E((FF,PE)=>{"use strict";var DR=require("os"),OE=require("tty"),FA=HE(),{env:Ne}=process,Wt;FA("no-color")||FA("no-colors")||FA("color=false")||FA("color=never")?Wt=0:(FA("color")||FA("colors")||FA("color=true")||FA("color=always"))&&(Wt=1);"FORCE_COLOR"in Ne&&(Ne.FORCE_COLOR==="true"?Wt=1:Ne.FORCE_COLOR==="false"?Wt=0:Wt=Ne.FORCE_COLOR.length===0?1:Math.min(parseInt(Ne.FORCE_COLOR,10),3));function B0(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function h0(e,A){if(Wt===0)return 0;if(FA("color=16m")||FA("color=full")||FA("color=truecolor"))return 3;if(FA("color=256"))return 2;if(e&&!A&&Wt===void 0)return 0;let t=Wt||0;if(Ne.TERM==="dumb")return t;if(process.platform==="win32"){let a=DR.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in Ne)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(a=>a in Ne)||Ne.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in Ne)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Ne.TEAMCITY_VERSION)?1:0;if(Ne.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Ne){let a=parseInt((Ne.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Ne.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Ne.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Ne.TERM)||"COLORTERM"in Ne?1:t}function vR(e){let A=h0(e,e&&e.isTTY);return B0(A)}PE.exports={supportsColor:vR,stdout:B0(h0(!0,OE.isatty(1))),stderr:B0(h0(!0,OE.isatty(2)))}});var ZE=E((Te,ln)=>{var RR=require("tty"),pn=require("util");Te.init=UR;Te.log=FR;Te.formatArgs=bR;Te.save=kR;Te.load=LR;Te.useColors=NR;Te.destroy=pn.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Te.colors=[6,2,3,4,5,1];try{let e=WE();e&&(e.stderr||e).level>=2&&(Te.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Te.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,A)=>{let t=A.substring(6).toLowerCase().replace(/_([a-z])/g,(r,i)=>i.toUpperCase()),a=process.env[A];return/^(yes|on|true|enabled)$/i.test(a)?a=!0:/^(no|off|false|disabled)$/i.test(a)?a=!1:a==="null"?a=null:a=Number(a),e[t]=a,e},{});function NR(){return"colors"in Te.inspectOpts?!!Te.inspectOpts.colors:RR.isatty(process.stderr.fd)}function bR(e){let{namespace:A,useColors:t}=this;if(t){let a=this.color,r="\x1B[3"+(a<8?a:"8;5;"+a),i=` ${r};1m${A} \x1B[0m`;e[0]=i+e[0].split(` +Try the option "splitPunct" to split the text by punctuation.`)}l(e,p,g),p=g+1}return d};Xp.default=lR});var $9=E(It=>{"use strict";var Kp=It&&It.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(It,"__esModule",{value:!0});It.getAllAudioUrls=It.getAudioUrl=void 0;var K9=Kp(jp()),gR=Kp(zp()),cR=Kp(require("url")),uR=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n;if(K9.default(e,r,s,o),e.length>200)throw new RangeError("text length ("+e.length+') should be less than 200 characters. Try "getAllAudioUrls(text, [option])" for long text.');return o+"/translate_tts"+cR.default.format({query:{ie:"UTF-8",q:e,tl:r,total:1,idx:0,textlen:e.length,client:"tw-ob",prev:"input",ttsspeed:s?.24:1}})};It.getAudioUrl=uR;var ER=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n,d=t.splitPunct,l=d===void 0?"":d;if(K9.default(e,r,s,o),typeof l!="string")throw new TypeError("splitPunct should be a string");return gR.default(e,{splitPunct:l}).map(function(p){return{shortText:p,url:It.getAudioUrl(p,{lang:r,slow:s,host:o})}})};It.getAllAudioUrls=ER});var $p=E((RS,eE)=>{"use strict";eE.exports=function(A,t){return function(){for(var r=new Array(arguments.length),i=0;i<r.length;i++)r[i]=arguments[i];return A.apply(t,r)}}});var Ze=E((vS,aE)=>{"use strict";var QR=$p(),m1=Object.prototype.toString;function t0(e){return m1.call(e)==="[object Array]"}function e0(e){return typeof e>"u"}function mR(e){return e!==null&&!e0(e)&&e.constructor!==null&&!e0(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function CR(e){return m1.call(e)==="[object ArrayBuffer]"}function BR(e){return typeof FormData<"u"&&e instanceof FormData}function hR(e){var A;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?A=ArrayBuffer.isView(e):A=e&&e.buffer&&e.buffer instanceof ArrayBuffer,A}function IR(e){return typeof e=="string"}function fR(e){return typeof e=="number"}function AE(e){return e!==null&&typeof e=="object"}function Zs(e){if(m1.call(e)!=="[object Object]")return!1;var A=Object.getPrototypeOf(e);return A===null||A===Object.prototype}function wR(e){return m1.call(e)==="[object Date]"}function yR(e){return m1.call(e)==="[object File]"}function DR(e){return m1.call(e)==="[object Blob]"}function tE(e){return m1.call(e)==="[object Function]"}function RR(e){return AE(e)&&tE(e.pipe)}function vR(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function NR(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function bR(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function a0(e,A){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),t0(e))for(var t=0,a=e.length;t<a;t++)A.call(null,e[t],t,e);else for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&A.call(null,e[r],r,e)}function A0(){var e={};function A(r,i){Zs(e[i])&&Zs(r)?e[i]=A0(e[i],r):Zs(r)?e[i]=A0({},r):t0(r)?e[i]=r.slice():e[i]=r}for(var t=0,a=arguments.length;t<a;t++)a0(arguments[t],A);return e}function SR(e,A,t){return a0(A,function(r,i){t&&typeof r=="function"?e[i]=QR(r,t):e[i]=r}),e}function FR(e){return e.charCodeAt(0)===65279&&(e=e.slice(1)),e}aE.exports={isArray:t0,isArrayBuffer:CR,isBuffer:mR,isFormData:BR,isArrayBufferView:hR,isString:IR,isNumber:fR,isObject:AE,isPlainObject:Zs,isUndefined:e0,isDate:wR,isFile:yR,isBlob:DR,isFunction:tE,isStream:RR,isURLSearchParams:vR,isStandardBrowserEnv:bR,forEach:a0,merge:A0,extend:SR,trim:NR,stripBOM:FR}});var js=E((NS,iE)=>{"use strict";var wa=Ze();function rE(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}iE.exports=function(A,t,a){if(!t)return A;var r;if(a)r=a(t);else if(wa.isURLSearchParams(t))r=t.toString();else{var i=[];wa.forEach(t,function(o,d){o===null||typeof o>"u"||(wa.isArray(o)?d=d+"[]":o=[o],wa.forEach(o,function(p){wa.isDate(p)?p=p.toISOString():wa.isObject(p)&&(p=JSON.stringify(p)),i.push(rE(d)+"="+rE(p))}))}),r=i.join("&")}if(r){var s=A.indexOf("#");s!==-1&&(A=A.slice(0,s)),A+=(A.indexOf("?")===-1?"?":"&")+r}return A}});var nE=E((bS,sE)=>{"use strict";var kR=Ze();function Xs(){this.handlers=[]}Xs.prototype.use=function(A,t,a){return this.handlers.push({fulfilled:A,rejected:t,synchronous:a?a.synchronous:!1,runWhen:a?a.runWhen:null}),this.handlers.length-1};Xs.prototype.eject=function(A){this.handlers[A]&&(this.handlers[A]=null)};Xs.prototype.forEach=function(A){kR.forEach(this.handlers,function(a){a!==null&&A(a)})};sE.exports=Xs});var dE=E((SS,oE)=>{"use strict";var LR=Ze();oE.exports=function(A,t){LR.forEach(A,function(r,i){i!==t&&i.toUpperCase()===t.toUpperCase()&&(A[t]=r,delete A[i])})}});var zs=E((FS,pE)=>{"use strict";pE.exports=function(A,t,a,r,i){return A.config=t,a&&(A.code=a),A.request=r,A.response=i,A.isAxiosError=!0,A.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},A}});var Ks=E((kS,lE)=>{"use strict";var UR=zs();lE.exports=function(A,t,a,r,i){var s=new Error(A);return UR(s,t,a,r,i)}});var r0=E((LS,gE)=>{"use strict";var TR=Ks();gE.exports=function(A,t,a){var r=a.config.validateStatus;!a.status||!r||r(a.status)?A(a):t(TR("Request failed with status code "+a.status,a.config,null,a.request,a))}});var uE=E((US,cE)=>{"use strict";var $s=Ze();cE.exports=$s.isStandardBrowserEnv()?function(){return{write:function(t,a,r,i,s,n){var o=[];o.push(t+"="+encodeURIComponent(a)),$s.isNumber(r)&&o.push("expires="+new Date(r).toGMTString()),$s.isString(i)&&o.push("path="+i),$s.isString(s)&&o.push("domain="+s),n===!0&&o.push("secure"),document.cookie=o.join("; ")},read:function(t){var a=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return a?decodeURIComponent(a[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var QE=E((TS,EE)=>{"use strict";EE.exports=function(A){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(A)}});var CE=E((MS,mE)=>{"use strict";mE.exports=function(A,t){return t?A.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):A}});var i0=E((VS,BE)=>{"use strict";var MR=QE(),VR=CE();BE.exports=function(A,t){return A&&!MR(t)?VR(A,t):t}});var IE=E((YS,hE)=>{"use strict";var s0=Ze(),YR=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];hE.exports=function(A){var t={},a,r,i;return A&&s0.forEach(A.split(` +`),function(n){if(i=n.indexOf(":"),a=s0.trim(n.substr(0,i)).toLowerCase(),r=s0.trim(n.substr(i+1)),a){if(t[a]&&YR.indexOf(a)>=0)return;a==="set-cookie"?t[a]=(t[a]?t[a]:[]).concat([r]):t[a]=t[a]?t[a]+", "+r:r}}),t}});var yE=E((JS,wE)=>{"use strict";var fE=Ze();wE.exports=fE.isStandardBrowserEnv()?function(){var A=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a"),a;function r(i){var s=i;return A&&(t.setAttribute("href",s),s=t.href),t.setAttribute("href",s),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}return a=r(window.location.href),function(s){var n=fE.isString(s)?r(s):s;return n.protocol===a.protocol&&n.host===a.host}}():function(){return function(){return!0}}()});var RE=E((GS,DE)=>{"use strict";var en=Ze(),JR=r0(),GR=uE(),xR=js(),_R=i0(),qR=IE(),HR=yE(),n0=Ks();DE.exports=function(A){return new Promise(function(a,r){var i=A.data,s=A.headers,n=A.responseType;en.isFormData(i)&&delete s["Content-Type"];var o=new XMLHttpRequest;if(A.auth){var d=A.auth.username||"",l=A.auth.password?unescape(encodeURIComponent(A.auth.password)):"";s.Authorization="Basic "+btoa(d+":"+l)}var p=_R(A.baseURL,A.url);o.open(A.method.toUpperCase(),xR(p,A.params,A.paramsSerializer),!0),o.timeout=A.timeout;function g(){if(o){var u="getAllResponseHeaders"in o?qR(o.getAllResponseHeaders()):null,m=!n||n==="text"||n==="json"?o.responseText:o.response,Q={data:m,status:o.status,statusText:o.statusText,headers:u,config:A,request:o};JR(a,r,Q),o=null}}if("onloadend"in o?o.onloadend=g:o.onreadystatechange=function(){!o||o.readyState!==4||o.status===0&&!(o.responseURL&&o.responseURL.indexOf("file:")===0)||setTimeout(g)},o.onabort=function(){o&&(r(n0("Request aborted",A,"ECONNABORTED",o)),o=null)},o.onerror=function(){r(n0("Network Error",A,null,o)),o=null},o.ontimeout=function(){var m="timeout of "+A.timeout+"ms exceeded";A.timeoutErrorMessage&&(m=A.timeoutErrorMessage),r(n0(m,A,A.transitional&&A.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",o)),o=null},en.isStandardBrowserEnv()){var c=(A.withCredentials||HR(p))&&A.xsrfCookieName?GR.read(A.xsrfCookieName):void 0;c&&(s[A.xsrfHeaderName]=c)}"setRequestHeader"in o&&en.forEach(s,function(m,Q){typeof i>"u"&&Q.toLowerCase()==="content-type"?delete s[Q]:o.setRequestHeader(Q,m)}),en.isUndefined(A.withCredentials)||(o.withCredentials=!!A.withCredentials),n&&n!=="json"&&(o.responseType=A.responseType),typeof A.onDownloadProgress=="function"&&o.addEventListener("progress",A.onDownloadProgress),typeof A.onUploadProgress=="function"&&o.upload&&o.upload.addEventListener("progress",A.onUploadProgress),A.cancelToken&&A.cancelToken.promise.then(function(m){o&&(o.abort(),r(m),o=null)}),i||(i=null),o.send(i)})}});var NE=E((xS,vE)=>{var ya=1e3,Da=ya*60,Ra=Da*60,C1=Ra*24,OR=C1*7,PR=C1*365.25;vE.exports=function(e,A){A=A||{};var t=typeof e;if(t==="string"&&e.length>0)return WR(e);if(t==="number"&&isFinite(e))return A.long?jR(e):ZR(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function WR(e){if(e=String(e),!(e.length>100)){var A=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(A){var t=parseFloat(A[1]),a=(A[2]||"ms").toLowerCase();switch(a){case"years":case"year":case"yrs":case"yr":case"y":return t*PR;case"weeks":case"week":case"w":return t*OR;case"days":case"day":case"d":return t*C1;case"hours":case"hour":case"hrs":case"hr":case"h":return t*Ra;case"minutes":case"minute":case"mins":case"min":case"m":return t*Da;case"seconds":case"second":case"secs":case"sec":case"s":return t*ya;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function ZR(e){var A=Math.abs(e);return A>=C1?Math.round(e/C1)+"d":A>=Ra?Math.round(e/Ra)+"h":A>=Da?Math.round(e/Da)+"m":A>=ya?Math.round(e/ya)+"s":e+"ms"}function jR(e){var A=Math.abs(e);return A>=C1?An(e,A,C1,"day"):A>=Ra?An(e,A,Ra,"hour"):A>=Da?An(e,A,Da,"minute"):A>=ya?An(e,A,ya,"second"):e+" ms"}function An(e,A,t,a){var r=A>=t*1.5;return Math.round(e/t)+" "+a+(r?"s":"")}});var o0=E((_S,bE)=>{function XR(e){t.debug=t,t.default=t,t.coerce=o,t.disable=i,t.enable=r,t.enabled=s,t.humanize=NE(),t.destroy=d,Object.keys(e).forEach(l=>{t[l]=e[l]}),t.names=[],t.skips=[],t.formatters={};function A(l){let p=0;for(let g=0;g<l.length;g++)p=(p<<5)-p+l.charCodeAt(g),p|=0;return t.colors[Math.abs(p)%t.colors.length]}t.selectColor=A;function t(l){let p,g=null,c,u;function m(...Q){if(!m.enabled)return;let C=m,B=Number(new Date),w=B-(p||B);C.diff=w,C.prev=p,C.curr=B,p=B,Q[0]=t.coerce(Q[0]),typeof Q[0]!="string"&&Q.unshift("%O");let I=0;Q[0]=Q[0].replace(/%([a-zA-Z%])/g,(b,k)=>{if(b==="%%")return"%";I++;let x=t.formatters[k];if(typeof x=="function"){let ye=Q[I];b=x.call(C,ye),Q.splice(I,1),I--}return b}),t.formatArgs.call(C,Q),(C.log||t.log).apply(C,Q)}return m.namespace=l,m.useColors=t.useColors(),m.color=t.selectColor(l),m.extend=a,m.destroy=t.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(c!==t.namespaces&&(c=t.namespaces,u=t.enabled(l)),u),set:Q=>{g=Q}}),typeof t.init=="function"&&t.init(m),m}function a(l,p){let g=t(this.namespace+(typeof p>"u"?":":p)+l);return g.log=this.log,g}function r(l){t.save(l),t.namespaces=l,t.names=[],t.skips=[];let p,g=(typeof l=="string"?l:"").split(/[\s,]+/),c=g.length;for(p=0;p<c;p++)g[p]&&(l=g[p].replace(/\*/g,".*?"),l[0]==="-"?t.skips.push(new RegExp("^"+l.slice(1)+"$")):t.names.push(new RegExp("^"+l+"$")))}function i(){let l=[...t.names.map(n),...t.skips.map(n).map(p=>"-"+p)].join(",");return t.enable(""),l}function s(l){if(l[l.length-1]==="*")return!0;let p,g;for(p=0,g=t.skips.length;p<g;p++)if(t.skips[p].test(l))return!1;for(p=0,g=t.names.length;p<g;p++)if(t.names[p].test(l))return!0;return!1}function n(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function o(l){return l instanceof Error?l.stack||l.message:l}function d(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}bE.exports=XR});var SE=E((uA,tn)=>{uA.formatArgs=KR;uA.save=$R;uA.load=ev;uA.useColors=zR;uA.storage=Av();uA.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();uA.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function zR(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function KR(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+tn.exports.humanize(this.diff),!this.useColors)return;let A="color: "+this.color;e.splice(1,0,A,"color: inherit");let t=0,a=0;e[0].replace(/%[a-zA-Z%]/g,r=>{r!=="%%"&&(t++,r==="%c"&&(a=t))}),e.splice(a,0,A)}uA.log=console.debug||console.log||(()=>{});function $R(e){try{e?uA.storage.setItem("debug",e):uA.storage.removeItem("debug")}catch{}}function ev(){let e;try{e=uA.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function Av(){try{return localStorage}catch{}}tn.exports=o0()(uA);var{formatters:tv}=tn.exports;tv.j=function(e){try{return JSON.stringify(e)}catch(A){return"[UnexpectedJSONParseError]: "+A.message}}});var kE=E((qS,FE)=>{"use strict";FE.exports=(e,A=process.argv)=>{let t=e.startsWith("-")?"":e.length===1?"-":"--",a=A.indexOf(t+e),r=A.indexOf("--");return a!==-1&&(r===-1||a<r)}});var TE=E((HS,UE)=>{"use strict";var av=require("os"),LE=require("tty"),SA=kE(),{env:be}=process,qt;SA("no-color")||SA("no-colors")||SA("color=false")||SA("color=never")?qt=0:(SA("color")||SA("colors")||SA("color=true")||SA("color=always"))&&(qt=1);"FORCE_COLOR"in be&&(be.FORCE_COLOR==="true"?qt=1:be.FORCE_COLOR==="false"?qt=0:qt=be.FORCE_COLOR.length===0?1:Math.min(parseInt(be.FORCE_COLOR,10),3));function d0(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function p0(e,A){if(qt===0)return 0;if(SA("color=16m")||SA("color=full")||SA("color=truecolor"))return 3;if(SA("color=256"))return 2;if(e&&!A&&qt===void 0)return 0;let t=qt||0;if(be.TERM==="dumb")return t;if(process.platform==="win32"){let a=av.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in be)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(a=>a in be)||be.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in be)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(be.TEAMCITY_VERSION)?1:0;if(be.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in be){let a=parseInt((be.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(be.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(be.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(be.TERM)||"COLORTERM"in be?1:t}function rv(e){let A=p0(e,e&&e.isTTY);return d0(A)}UE.exports={supportsColor:rv,stdout:d0(p0(!0,LE.isatty(1))),stderr:d0(p0(!0,LE.isatty(2)))}});var VE=E((Me,rn)=>{var iv=require("tty"),an=require("util");Me.init=gv;Me.log=dv;Me.formatArgs=nv;Me.save=pv;Me.load=lv;Me.useColors=sv;Me.destroy=an.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Me.colors=[6,2,3,4,5,1];try{let e=TE();e&&(e.stderr||e).level>=2&&(Me.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Me.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,A)=>{let t=A.substring(6).toLowerCase().replace(/_([a-z])/g,(r,i)=>i.toUpperCase()),a=process.env[A];return/^(yes|on|true|enabled)$/i.test(a)?a=!0:/^(no|off|false|disabled)$/i.test(a)?a=!1:a==="null"?a=null:a=Number(a),e[t]=a,e},{});function sv(){return"colors"in Me.inspectOpts?!!Me.inspectOpts.colors:iv.isatty(process.stderr.fd)}function nv(e){let{namespace:A,useColors:t}=this;if(t){let a=this.color,r="\x1B[3"+(a<8?a:"8;5;"+a),i=` ${r};1m${A} \x1B[0m`;e[0]=i+e[0].split(` `).join(` -`+i),e.push(r+"m+"+ln.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=SR()+A+" "+e[0]}function SR(){return Te.inspectOpts.hideDate?"":new Date().toISOString()+" "}function FR(...e){return process.stderr.write(pn.format(...e)+` -`)}function kR(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function LR(){return process.env.DEBUG}function UR(e){e.inspectOpts={};let A=Object.keys(Te.inspectOpts);for(let t=0;t<A.length;t++)e.inspectOpts[A[t]]=Te.inspectOpts[A[t]]}ln.exports=m0()(Te);var{formatters:jE}=ln.exports;jE.o=function(e){return this.inspectOpts.colors=this.useColors,pn.inspect(e,this.inspectOpts).split(` -`).map(A=>A.trim()).join(" ")};jE.O=function(e){return this.inspectOpts.colors=this.useColors,pn.inspect(e,this.inspectOpts)}});var gn=E((kF,I0)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?I0.exports=_E():I0.exports=ZE()});var zE=E((LF,XE)=>{var Ur;XE.exports=function(){if(!Ur){try{Ur=gn()("follow-redirects")}catch{}typeof Ur!="function"&&(Ur=function(){})}Ur.apply(null,arguments)}});var U0=E((UF,L0)=>{var Vr=require("url"),Tr=Vr.URL,TR=require("http"),MR=require("https"),v0=require("stream").Writable,R0=require("assert"),KE=zE(),N0=!1;try{R0(new Tr)}catch(e){N0=e.code==="ERR_INVALID_URL"}var VR=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],b0=["abort","aborted","connect","error","socket","timeout"],S0=Object.create(null);b0.forEach(function(e){S0[e]=function(A,t,a){this._redirectable.emit(e,A,t,a)}});var w0=Yr("ERR_INVALID_URL","Invalid URL",TypeError),y0=Yr("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),YR=Yr("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",y0),JR=Yr("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),GR=Yr("ERR_STREAM_WRITE_AFTER_END","write after end"),xR=v0.prototype.destroy||e3;function eA(e,A){v0.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],A&&this.on("response",A);var t=this;this._onNativeResponse=function(a){try{t._processResponse(a)}catch(r){t.emit("error",r instanceof y0?r:new y0({cause:r}))}},this._performRequest()}eA.prototype=Object.create(v0.prototype);eA.prototype.abort=function(){k0(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};eA.prototype.destroy=function(e){return k0(this._currentRequest,e),xR.call(this,e),this};eA.prototype.write=function(e,A,t){if(this._ending)throw new GR;if(!y1(e)&&!HR(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(Mr(A)&&(t=A,A=null),e.length===0){t&&t();return}this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:A}),this._currentRequest.write(e,A,t)):(this.emit("error",new JR),this.abort())};eA.prototype.end=function(e,A,t){if(Mr(e)?(t=e,e=A=null):Mr(A)&&(t=A,A=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,t);else{var a=this,r=this._currentRequest;this.write(e,A,function(){a._ended=!0,r.end(null,null,t)}),this._ending=!0}};eA.prototype.setHeader=function(e,A){this._options.headers[e]=A,this._currentRequest.setHeader(e,A)};eA.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};eA.prototype.setTimeout=function(e,A){var t=this;function a(s){s.setTimeout(e),s.removeListener("timeout",s.destroy),s.addListener("timeout",s.destroy)}function r(s){t._timeout&&clearTimeout(t._timeout),t._timeout=setTimeout(function(){t.emit("timeout"),i()},e),a(s)}function i(){t._timeout&&(clearTimeout(t._timeout),t._timeout=null),t.removeListener("abort",i),t.removeListener("error",i),t.removeListener("response",i),t.removeListener("close",i),A&&t.removeListener("timeout",A),t.socket||t._currentRequest.removeListener("socket",r)}return A&&this.on("timeout",A),this.socket?r(this.socket):this._currentRequest.once("socket",r),this.on("socket",a),this.on("abort",i),this.on("error",i),this.on("response",i),this.on("close",i),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){eA.prototype[e]=function(A,t){return this._currentRequest[e](A,t)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(eA.prototype,e,{get:function(){return this._currentRequest[e]}})});eA.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var A=e.path.indexOf("?");A<0?e.pathname=e.path:(e.pathname=e.path.substring(0,A),e.search=e.path.substring(A))}};eA.prototype._performRequest=function(){var e=this._options.protocol,A=this._options.nativeProtocols[e];if(!A)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var t=e.slice(0,-1);this._options.agent=this._options.agents[t]}var a=this._currentRequest=A.request(this._options,this._onNativeResponse);a._redirectable=this;for(var r of b0)a.on(r,S0[r]);if(this._currentUrl=/^\//.test(this._options.path)?Vr.format(this._options):this._options.path,this._isRedirect){var i=0,s=this,n=this._requestBodyBuffers;(function o(d){if(a===s._currentRequest)if(d)s.emit("error",d);else if(i<n.length){var l=n[i++];a.finished||a.write(l.data,l.encoding,o)}else s._ended&&a.end()})()}};eA.prototype._processResponse=function(e){var A=e.statusCode;this._options.trackRedirects&&this._redirects.push({url:this._currentUrl,headers:e.headers,statusCode:A});var t=e.headers.location;if(!t||this._options.followRedirects===!1||A<300||A>=400){e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[];return}if(k0(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new YR;var a,r=this._options.beforeRedirect;r&&(a=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var i=this._options.method;((A===301||A===302)&&this._options.method==="POST"||A===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],f0(/^content-/i,this._options.headers));var s=f0(/^host$/i,this._options.headers),n=F0(this._currentUrl),o=s||n.host,d=/^\w+:/.test(t)?this._currentUrl:Vr.format(Object.assign(n,{host:o})),l=_R(t,d);if(KE("redirecting to",l.href),this._isRedirect=!0,D0(l,this._options),(l.protocol!==n.protocol&&l.protocol!=="https:"||l.host!==o&&!qR(l.host,o))&&f0(/^(?:authorization|cookie)$/i,this._options.headers),Mr(r)){var p={headers:e.headers,statusCode:A},g={url:d,method:i,headers:a};r(this._options,p,g),this._sanitizeOptions(this._options)}this._performRequest()};function $E(e){var A={maxRedirects:21,maxBodyLength:10485760},t={};return Object.keys(e).forEach(function(a){var r=a+":",i=t[r]=e[a],s=A[a]=Object.create(i);function n(d,l,p){return OR(d)?d=D0(d):y1(d)?d=D0(F0(d)):(p=l,l=A3(d),d={protocol:r}),Mr(l)&&(p=l,l=null),l=Object.assign({maxRedirects:A.maxRedirects,maxBodyLength:A.maxBodyLength},d,l),l.nativeProtocols=t,!y1(l.host)&&!y1(l.hostname)&&(l.hostname="::1"),R0.equal(l.protocol,r,"protocol mismatch"),KE("options",l),new eA(l,p)}function o(d,l,p){var g=s.request(d,l,p);return g.end(),g}Object.defineProperties(s,{request:{value:n,configurable:!0,enumerable:!0,writable:!0},get:{value:o,configurable:!0,enumerable:!0,writable:!0}})}),A}function e3(){}function F0(e){var A;if(N0)A=new Tr(e);else if(A=A3(Vr.parse(e)),!y1(A.protocol))throw new w0({input:e});return A}function _R(e,A){return N0?new Tr(e,A):F0(Vr.resolve(A,e))}function A3(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new w0({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new w0({input:e.href||e});return e}function D0(e,A){var t=A||{};for(var a of VR)t[a]=e[a];return t.hostname.startsWith("[")&&(t.hostname=t.hostname.slice(1,-1)),t.port!==""&&(t.port=Number(t.port)),t.path=t.search?t.pathname+t.search:t.pathname,t}function f0(e,A){var t;for(var a in A)e.test(a)&&(t=A[a],delete A[a]);return t===null||typeof t>"u"?void 0:String(t).trim()}function Yr(e,A,t){function a(r){Error.captureStackTrace(this,this.constructor),Object.assign(this,r||{}),this.code=e,this.message=this.cause?A+": "+this.cause.message:A}return a.prototype=new(t||Error),Object.defineProperties(a.prototype,{constructor:{value:a,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),a}function k0(e,A){for(var t of b0)e.removeListener(t,S0[t]);e.on("error",e3),e.destroy(A)}function qR(e,A){R0(y1(e)&&y1(A));var t=e.length-A.length-1;return t>0&&e[t]==="."&&e.endsWith(A)}function y1(e){return typeof e=="string"||e instanceof String}function Mr(e){return typeof e=="function"}function HR(e){return typeof e=="object"&&"length"in e}function OR(e){return Tr&&e instanceof Tr}L0.exports=$E({http:TR,https:MR});L0.exports.wrap=$E});var T0=E((TF,PR)=>{PR.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var n3=E((MF,s3)=>{"use strict";var Jr=We(),t3=u0(),WR=E0(),jR=An(),ZR=require("http"),XR=require("https"),zR=U0().http,KR=U0().https,a3=require("url"),$R=require("zlib"),eN=T0(),cn=rn(),M0=an(),r3=/https:?/;function i3(e,A,t){if(e.hostname=A.host,e.host=A.host,e.port=A.port,e.path=t,A.auth){var a=Buffer.from(A.auth.username+":"+A.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.beforeRedirect=function(i){i.headers.host=i.host,i3(i,A,i.href)}}s3.exports=function(A){return new Promise(function(a,r){var i=function(T){a(T)},s=function(T){r(T)},n=A.data,o=A.headers;if("User-Agent"in o||"user-agent"in o?!o["User-Agent"]&&!o["user-agent"]&&(delete o["User-Agent"],delete o["user-agent"]):o["User-Agent"]="axios/"+eN.version,n&&!Jr.isStream(n)){if(!Buffer.isBuffer(n))if(Jr.isArrayBuffer(n))n=Buffer.from(new Uint8Array(n));else if(Jr.isString(n))n=Buffer.from(n,"utf-8");else return s(cn("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",A));o["Content-Length"]=n.length}var d=void 0;if(A.auth){var l=A.auth.username||"",p=A.auth.password||"";d=l+":"+p}var g=WR(A.baseURL,A.url),c=a3.parse(g),u=c.protocol||"http:";if(!d&&c.auth){var Q=c.auth.split(":"),m=Q[0]||"",C=Q[1]||"";d=m+":"+C}d&&delete o.Authorization;var h=r3.test(u),B=h?A.httpsAgent:A.httpAgent,I={path:jR(c.path,A.params,A.paramsSerializer).replace(/^\?/,""),method:A.method.toUpperCase(),headers:o,agent:B,agents:{http:A.httpAgent,https:A.httpsAgent},auth:d};A.socketPath?I.socketPath=A.socketPath:(I.hostname=c.hostname,I.port=c.port);var w=A.proxy;if(!w&&w!==!1){var v=u.slice(0,-1)+"_proxy",S=process.env[v]||process.env[v.toUpperCase()];if(S){var x=a3.parse(S),we=process.env.no_proxy||process.env.NO_PROXY,me=!0;if(we){var Rt=we.split(",").map(function(T){return T.trim()});me=!Rt.some(function(T){return T?T==="*"||T[0]==="."&&c.hostname.substr(c.hostname.length-T.length)===T?!0:c.hostname===T:!1})}if(me&&(w={host:x.hostname,port:x.port,protocol:x.protocol},x.auth)){var Se=x.auth.split(":");w.auth={username:Se[0],password:Se[1]}}}}w&&(I.headers.host=c.hostname+(c.port?":"+c.port:""),i3(I,w,u+"//"+c.hostname+(c.port?":"+c.port:"")+I.path));var le,CA=h&&(w?r3.test(w.protocol):!0);A.transport?le=A.transport:A.maxRedirects===0?le=CA?XR:ZR:(A.maxRedirects&&(I.maxRedirects=A.maxRedirects),le=CA?KR:zR),A.maxBodyLength>-1&&(I.maxBodyLength=A.maxBodyLength);var Z=le.request(I,function(T){if(!Z.aborted){var xA=T,P=T.req||Z;if(T.statusCode!==204&&P.method!=="HEAD"&&A.decompress!==!1)switch(T.headers["content-encoding"]){case"gzip":case"compress":case"deflate":xA=xA.pipe($R.createUnzip()),delete T.headers["content-encoding"];break}var tA={status:T.statusCode,statusText:T.statusMessage,headers:T.headers,config:A,request:P};if(A.responseType==="stream")tA.data=xA,t3(i,s,tA);else{var e2=[],A2=0;xA.on("data",function(_A){e2.push(_A),A2+=_A.length,A.maxContentLength>-1&&A2>A.maxContentLength&&(xA.destroy(),s(cn("maxContentLength size of "+A.maxContentLength+" exceeded",A,null,P)))}),xA.on("error",function(_A){Z.aborted||s(M0(_A,A,null,P))}),xA.on("end",function(){var _A=Buffer.concat(e2);A.responseType!=="arraybuffer"&&(_A=_A.toString(A.responseEncoding),(!A.responseEncoding||A.responseEncoding==="utf8")&&(_A=Jr.stripBOM(_A))),tA.data=_A,t3(i,s,tA)})}}});if(Z.on("error",function(T){Z.aborted&&T.code!=="ERR_FR_TOO_MANY_REDIRECTS"||s(M0(T,A,null,Z))}),A.timeout){var ae=parseInt(A.timeout,10);if(isNaN(ae)){s(cn("error trying to parse `config.timeout` to int",A,"ERR_PARSE_TIMEOUT",Z));return}Z.setTimeout(ae,function(){Z.abort(),s(cn("timeout of "+ae+"ms exceeded",A,A.transitional&&A.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",Z))})}A.cancelToken&&A.cancelToken.promise.then(function(T){Z.aborted||(Z.abort(),s(T))}),Jr.isStream(n)?n.on("error",function(T){s(M0(T,A,null,Z))}).pipe(Z):Z.end(n)})}});var En=E((VF,p3)=>{"use strict";var Me=We(),o3=IE(),AN=an(),tN={"Content-Type":"application/x-www-form-urlencoded"};function d3(e,A){!Me.isUndefined(e)&&Me.isUndefined(e["Content-Type"])&&(e["Content-Type"]=A)}function aN(){var e;return typeof XMLHttpRequest<"u"?e=YE():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=n3()),e}function rN(e,A,t){if(Me.isString(e))try{return(A||JSON.parse)(e),Me.trim(e)}catch(a){if(a.name!=="SyntaxError")throw a}return(t||JSON.stringify)(e)}var un={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:aN(),transformRequest:[function(A,t){return o3(t,"Accept"),o3(t,"Content-Type"),Me.isFormData(A)||Me.isArrayBuffer(A)||Me.isBuffer(A)||Me.isStream(A)||Me.isFile(A)||Me.isBlob(A)?A:Me.isArrayBufferView(A)?A.buffer:Me.isURLSearchParams(A)?(d3(t,"application/x-www-form-urlencoded;charset=utf-8"),A.toString()):Me.isObject(A)||t&&t["Content-Type"]==="application/json"?(d3(t,"application/json"),rN(A)):A}],transformResponse:[function(A){var t=this.transitional,a=t&&t.silentJSONParsing,r=t&&t.forcedJSONParsing,i=!a&&this.responseType==="json";if(i||r&&Me.isString(A)&&A.length)try{return JSON.parse(A)}catch(s){if(i)throw s.name==="SyntaxError"?AN(s,this,"E_JSON_PARSE"):s}return A}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(A){return A>=200&&A<300}};un.headers={common:{Accept:"application/json, text/plain, */*"}};Me.forEach(["delete","get","head"],function(A){un.headers[A]={}});Me.forEach(["post","put","patch"],function(A){un.headers[A]=Me.merge(tN)});p3.exports=un});var g3=E((YF,l3)=>{"use strict";var iN=We(),sN=En();l3.exports=function(A,t,a){var r=this||sN;return iN.forEach(a,function(s){A=s.call(r,A,t)}),A}});var V0=E((JF,c3)=>{"use strict";c3.exports=function(A){return!!(A&&A.__CANCEL__)}});var Q3=E((GF,E3)=>{"use strict";var u3=We(),Y0=g3(),nN=V0(),oN=En();function J0(e){e.cancelToken&&e.cancelToken.throwIfRequested()}E3.exports=function(A){J0(A),A.headers=A.headers||{},A.data=Y0.call(A,A.data,A.headers,A.transformRequest),A.headers=u3.merge(A.headers.common||{},A.headers[A.method]||{},A.headers),u3.forEach(["delete","get","head","post","put","patch","common"],function(r){delete A.headers[r]});var t=A.adapter||oN.adapter;return t(A).then(function(r){return J0(A),r.data=Y0.call(A,r.data,r.headers,A.transformResponse),r},function(r){return nN(r)||(J0(A),r&&r.response&&(r.response.data=Y0.call(A,r.response.data,r.response.headers,A.transformResponse))),Promise.reject(r)})}});var G0=E((xF,C3)=>{"use strict";var Je=We();C3.exports=function(A,t){t=t||{};var a={},r=["url","method","data"],i=["headers","auth","proxy","params"],s=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],n=["validateStatus"];function o(g,c){return Je.isPlainObject(g)&&Je.isPlainObject(c)?Je.merge(g,c):Je.isPlainObject(c)?Je.merge({},c):Je.isArray(c)?c.slice():c}function d(g){Je.isUndefined(t[g])?Je.isUndefined(A[g])||(a[g]=o(void 0,A[g])):a[g]=o(A[g],t[g])}Je.forEach(r,function(c){Je.isUndefined(t[c])||(a[c]=o(void 0,t[c]))}),Je.forEach(i,d),Je.forEach(s,function(c){Je.isUndefined(t[c])?Je.isUndefined(A[c])||(a[c]=o(void 0,A[c])):a[c]=o(void 0,t[c])}),Je.forEach(n,function(c){c in t?a[c]=o(A[c],t[c]):c in A&&(a[c]=o(void 0,A[c]))});var l=r.concat(i).concat(s).concat(n),p=Object.keys(A).concat(Object.keys(t)).filter(function(c){return l.indexOf(c)===-1});return Je.forEach(p,d),a}});var f3=E((_F,I3)=>{"use strict";var B3=T0(),x0={};["object","boolean","number","function","string","symbol"].forEach(function(e,A){x0[e]=function(a){return typeof a===e||"a"+(A<1?"n ":" ")+e}});var m3={},dN=B3.version.split(".");function h3(e,A){for(var t=A?A.split("."):dN,a=e.split("."),r=0;r<3;r++){if(t[r]>a[r])return!0;if(t[r]<a[r])return!1}return!1}x0.transitional=function(A,t,a){var r=t&&h3(t);function i(s,n){return"[Axios v"+B3.version+"] Transitional option '"+s+"'"+n+(a?". "+a:"")}return function(s,n,o){if(A===!1)throw new Error(i(n," has been removed in "+t));return r&&!m3[n]&&(m3[n]=!0,console.warn(i(n," has been deprecated since v"+t+" and will be removed in the near future"))),A?A(s,n,o):!0}};function pN(e,A,t){if(typeof e!="object")throw new TypeError("options must be an object");for(var a=Object.keys(e),r=a.length;r-- >0;){var i=a[r],s=A[i];if(s){var n=e[i],o=n===void 0||s(n,i,e);if(o!==!0)throw new TypeError("option "+i+" must be "+o);continue}if(t!==!0)throw Error("Unknown option "+i)}}I3.exports={isOlderVersion:h3,assertOptions:pN,validators:x0}});var N3=E((qF,R3)=>{"use strict";var D3=We(),lN=An(),w3=BE(),y3=Q3(),Qn=G0(),v3=f3(),Fa=v3.validators;function Gr(e){this.defaults=e,this.interceptors={request:new w3,response:new w3}}Gr.prototype.request=function(A){typeof A=="string"?(A=arguments[1]||{},A.url=arguments[0]):A=A||{},A=Qn(this.defaults,A),A.method?A.method=A.method.toLowerCase():this.defaults.method?A.method=this.defaults.method.toLowerCase():A.method="get";var t=A.transitional;t!==void 0&&v3.assertOptions(t,{silentJSONParsing:Fa.transitional(Fa.boolean,"1.0.0"),forcedJSONParsing:Fa.transitional(Fa.boolean,"1.0.0"),clarifyTimeoutError:Fa.transitional(Fa.boolean,"1.0.0")},!1);var a=[],r=!0;this.interceptors.request.forEach(function(g){typeof g.runWhen=="function"&&g.runWhen(A)===!1||(r=r&&g.synchronous,a.unshift(g.fulfilled,g.rejected))});var i=[];this.interceptors.response.forEach(function(g){i.push(g.fulfilled,g.rejected)});var s;if(!r){var n=[y3,void 0];for(Array.prototype.unshift.apply(n,a),n=n.concat(i),s=Promise.resolve(A);n.length;)s=s.then(n.shift(),n.shift());return s}for(var o=A;a.length;){var d=a.shift(),l=a.shift();try{o=d(o)}catch(p){l(p);break}}try{s=y3(o)}catch(p){return Promise.reject(p)}for(;i.length;)s=s.then(i.shift(),i.shift());return s};Gr.prototype.getUri=function(A){return A=Qn(this.defaults,A),lN(A.url,A.params,A.paramsSerializer).replace(/^\?/,"")};D3.forEach(["delete","get","head","options"],function(A){Gr.prototype[A]=function(t,a){return this.request(Qn(a||{},{method:A,url:t,data:(a||{}).data}))}});D3.forEach(["post","put","patch"],function(A){Gr.prototype[A]=function(t,a,r){return this.request(Qn(r||{},{method:A,url:t,data:a}))}});R3.exports=Gr});var q0=E((HF,b3)=>{"use strict";function _0(e){this.message=e}_0.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};_0.prototype.__CANCEL__=!0;b3.exports=_0});var F3=E((OF,S3)=>{"use strict";var gN=q0();function Cn(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var A;this.promise=new Promise(function(r){A=r});var t=this;e(function(r){t.reason||(t.reason=new gN(r),A(t.reason))})}Cn.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};Cn.source=function(){var A,t=new Cn(function(r){A=r});return{token:t,cancel:A}};S3.exports=Cn});var L3=E((PF,k3)=>{"use strict";k3.exports=function(A){return function(a){return A.apply(null,a)}}});var T3=E((WF,U3)=>{"use strict";U3.exports=function(A){return typeof A=="object"&&A.isAxiosError===!0}});var Y3=E((jF,H0)=>{"use strict";var M3=We(),cN=d0(),mn=N3(),uN=G0(),EN=En();function V3(e){var A=new mn(e),t=cN(mn.prototype.request,A);return M3.extend(t,mn.prototype,A),M3.extend(t,A),t}var GA=V3(EN);GA.Axios=mn;GA.create=function(A){return V3(uN(GA.defaults,A))};GA.Cancel=q0();GA.CancelToken=F3();GA.isCancel=V0();GA.all=function(A){return Promise.all(A)};GA.spread=L3();GA.isAxiosError=T3();H0.exports=GA;H0.exports.default=GA});var G3=E((ZF,J3)=>{J3.exports=Y3()});var x3=E((exports,module)=>{"use strict";var __awaiter=exports&&exports.__awaiter||function(e,A,t,a){function r(i){return i instanceof t?i:new t(function(s){s(i)})}return new(t||(t=Promise))(function(i,s){function n(l){try{d(a.next(l))}catch(p){s(p)}}function o(l){try{d(a.throw(l))}catch(p){s(p)}}function d(l){l.done?i(l.value):r(l.value).then(n,o)}d((a=a.apply(e,A||[])).next())})},__generator=exports&&exports.__generator||function(e,A){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},a,r,i,s;return s={next:n(0),throw:n(1),return:n(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function n(d){return function(l){return o([d,l])}}function o(d){if(a)throw new TypeError("Generator is already executing.");for(;t;)try{if(a=1,r&&(i=d[0]&2?r.return:d[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,d[1])).done)return i;switch(r=0,i&&(d=[d[0]&2,i.value]),d[0]){case 0:case 1:i=d;break;case 4:return t.label++,{value:d[1],done:!1};case 5:t.label++,r=d[1],d=[0];continue;case 7:d=t.ops.pop(),t.trys.pop();continue;default:if(i=t.trys,!(i=i.length>0&&i[i.length-1])&&(d[0]===6||d[0]===2)){t=0;continue}if(d[0]===3&&(!i||d[1]>i[0]&&d[1]<i[3])){t.label=d[1];break}if(d[0]===6&&t.label<i[1]){t.label=i[1],i=d;break}if(i&&t.label<i[2]){t.label=i[2],t.ops.push(d);break}i[2]&&t.ops.pop(),t.trys.pop();continue}d=A.call(e,t)}catch(l){d=[6,l],r=0}finally{a=i=0}if(d[0]&5)throw d[1];return{value:d[0]?d[1]:void 0,done:!0}}},__importDefault=exports&&exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});exports.getAllAudioBase64=exports.getAudioBase64=void 0;var assertInputTypes_1=__importDefault(i0()),axios_1=__importDefault(G3()),splitLongText_1=__importDefault(n0()),getAudioBase64=function(text,_a){var _b=_a===void 0?{}:_a,_c=_b.lang,lang=_c===void 0?"en":_c,_d=_b.slow,slow=_d===void 0?!1:_d,_e=_b.host,host=_e===void 0?"https://translate.google.com":_e,_f=_b.timeout,timeout=_f===void 0?1e4:_f;return __awaiter(void 0,void 0,void 0,function(){var res,result;return __generator(this,function(_g){switch(_g.label){case 0:if(assertInputTypes_1.default(text,lang,slow,host),typeof timeout!="number"||timeout<=0)throw new TypeError("timeout should be a positive number");if(text.length>200)throw new RangeError("text length ("+text.length+') should be less than 200 characters. Try "getAllAudioBase64(text, [option])" for long text.');return[4,axios_1.default({method:"post",baseURL:host,url:"/_/TranslateWebserverUi/data/batchexecute",timeout,data:"f.req="+encodeURIComponent(JSON.stringify([[["jQ1olc",JSON.stringify([text,lang,slow?!0:null,"null"]),null,"generic"]]]))})];case 1:res=_g.sent();try{result=eval(res.data.slice(5))[0][2]}catch(e){throw new Error(`parse response failed: +`+i),e.push(r+"m+"+rn.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=ov()+A+" "+e[0]}function ov(){return Me.inspectOpts.hideDate?"":new Date().toISOString()+" "}function dv(...e){return process.stderr.write(an.format(...e)+` +`)}function pv(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function lv(){return process.env.DEBUG}function gv(e){e.inspectOpts={};let A=Object.keys(Me.inspectOpts);for(let t=0;t<A.length;t++)e.inspectOpts[A[t]]=Me.inspectOpts[A[t]]}rn.exports=o0()(Me);var{formatters:ME}=rn.exports;ME.o=function(e){return this.inspectOpts.colors=this.useColors,an.inspect(e,this.inspectOpts).split(` +`).map(A=>A.trim()).join(" ")};ME.O=function(e){return this.inspectOpts.colors=this.useColors,an.inspect(e,this.inspectOpts)}});var YE=E((OS,l0)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?l0.exports=SE():l0.exports=VE()});var GE=E((PS,JE)=>{var br;JE.exports=function(){if(!br){try{br=YE()("follow-redirects")}catch{}typeof br!="function"&&(br=function(){})}br.apply(null,arguments)}});var y0=E((WS,w0)=>{var kr=require("url"),Sr=kr.URL,cv=require("http"),uv=require("https"),Q0=require("stream").Writable,m0=require("assert"),xE=GE(),C0=!1;try{m0(new Sr)}catch(e){C0=e.code==="ERR_INVALID_URL"}var Ev=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],B0=["abort","aborted","connect","error","socket","timeout"],h0=Object.create(null);B0.forEach(function(e){h0[e]=function(A,t,a){this._redirectable.emit(e,A,t,a)}});var c0=Lr("ERR_INVALID_URL","Invalid URL",TypeError),u0=Lr("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),Qv=Lr("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",u0),mv=Lr("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),Cv=Lr("ERR_STREAM_WRITE_AFTER_END","write after end"),Bv=Q0.prototype.destroy||qE;function AA(e,A){Q0.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],A&&this.on("response",A);var t=this;this._onNativeResponse=function(a){try{t._processResponse(a)}catch(r){t.emit("error",r instanceof u0?r:new u0({cause:r}))}},this._performRequest()}AA.prototype=Object.create(Q0.prototype);AA.prototype.abort=function(){f0(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};AA.prototype.destroy=function(e){return f0(this._currentRequest,e),Bv.call(this,e),this};AA.prototype.write=function(e,A,t){if(this._ending)throw new Cv;if(!B1(e)&&!fv(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(Fr(A)&&(t=A,A=null),e.length===0){t&&t();return}this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:A}),this._currentRequest.write(e,A,t)):(this.emit("error",new mv),this.abort())};AA.prototype.end=function(e,A,t){if(Fr(e)?(t=e,e=A=null):Fr(A)&&(t=A,A=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,t);else{var a=this,r=this._currentRequest;this.write(e,A,function(){a._ended=!0,r.end(null,null,t)}),this._ending=!0}};AA.prototype.setHeader=function(e,A){this._options.headers[e]=A,this._currentRequest.setHeader(e,A)};AA.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};AA.prototype.setTimeout=function(e,A){var t=this;function a(s){s.setTimeout(e),s.removeListener("timeout",s.destroy),s.addListener("timeout",s.destroy)}function r(s){t._timeout&&clearTimeout(t._timeout),t._timeout=setTimeout(function(){t.emit("timeout"),i()},e),a(s)}function i(){t._timeout&&(clearTimeout(t._timeout),t._timeout=null),t.removeListener("abort",i),t.removeListener("error",i),t.removeListener("response",i),t.removeListener("close",i),A&&t.removeListener("timeout",A),t.socket||t._currentRequest.removeListener("socket",r)}return A&&this.on("timeout",A),this.socket?r(this.socket):this._currentRequest.once("socket",r),this.on("socket",a),this.on("abort",i),this.on("error",i),this.on("response",i),this.on("close",i),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){AA.prototype[e]=function(A,t){return this._currentRequest[e](A,t)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(AA.prototype,e,{get:function(){return this._currentRequest[e]}})});AA.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var A=e.path.indexOf("?");A<0?e.pathname=e.path:(e.pathname=e.path.substring(0,A),e.search=e.path.substring(A))}};AA.prototype._performRequest=function(){var e=this._options.protocol,A=this._options.nativeProtocols[e];if(!A)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var t=e.slice(0,-1);this._options.agent=this._options.agents[t]}var a=this._currentRequest=A.request(this._options,this._onNativeResponse);a._redirectable=this;for(var r of B0)a.on(r,h0[r]);if(this._currentUrl=/^\//.test(this._options.path)?kr.format(this._options):this._options.path,this._isRedirect){var i=0,s=this,n=this._requestBodyBuffers;(function o(d){if(a===s._currentRequest)if(d)s.emit("error",d);else if(i<n.length){var l=n[i++];a.finished||a.write(l.data,l.encoding,o)}else s._ended&&a.end()})()}};AA.prototype._processResponse=function(e){var A=e.statusCode;this._options.trackRedirects&&this._redirects.push({url:this._currentUrl,headers:e.headers,statusCode:A});var t=e.headers.location;if(!t||this._options.followRedirects===!1||A<300||A>=400){e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[];return}if(f0(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new Qv;var a,r=this._options.beforeRedirect;r&&(a=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var i=this._options.method;((A===301||A===302)&&this._options.method==="POST"||A===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],g0(/^content-/i,this._options.headers));var s=g0(/^host$/i,this._options.headers),n=I0(this._currentUrl),o=s||n.host,d=/^\w+:/.test(t)?this._currentUrl:kr.format(Object.assign(n,{host:o})),l=hv(t,d);if(xE("redirecting to",l.href),this._isRedirect=!0,E0(l,this._options),(l.protocol!==n.protocol&&l.protocol!=="https:"||l.host!==o&&!Iv(l.host,o))&&g0(/^(?:authorization|cookie)$/i,this._options.headers),Fr(r)){var p={headers:e.headers,statusCode:A},g={url:d,method:i,headers:a};r(this._options,p,g),this._sanitizeOptions(this._options)}this._performRequest()};function _E(e){var A={maxRedirects:21,maxBodyLength:10485760},t={};return Object.keys(e).forEach(function(a){var r=a+":",i=t[r]=e[a],s=A[a]=Object.create(i);function n(d,l,p){return wv(d)?d=E0(d):B1(d)?d=E0(I0(d)):(p=l,l=HE(d),d={protocol:r}),Fr(l)&&(p=l,l=null),l=Object.assign({maxRedirects:A.maxRedirects,maxBodyLength:A.maxBodyLength},d,l),l.nativeProtocols=t,!B1(l.host)&&!B1(l.hostname)&&(l.hostname="::1"),m0.equal(l.protocol,r,"protocol mismatch"),xE("options",l),new AA(l,p)}function o(d,l,p){var g=s.request(d,l,p);return g.end(),g}Object.defineProperties(s,{request:{value:n,configurable:!0,enumerable:!0,writable:!0},get:{value:o,configurable:!0,enumerable:!0,writable:!0}})}),A}function qE(){}function I0(e){var A;if(C0)A=new Sr(e);else if(A=HE(kr.parse(e)),!B1(A.protocol))throw new c0({input:e});return A}function hv(e,A){return C0?new Sr(e,A):I0(kr.resolve(A,e))}function HE(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new c0({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new c0({input:e.href||e});return e}function E0(e,A){var t=A||{};for(var a of Ev)t[a]=e[a];return t.hostname.startsWith("[")&&(t.hostname=t.hostname.slice(1,-1)),t.port!==""&&(t.port=Number(t.port)),t.path=t.search?t.pathname+t.search:t.pathname,t}function g0(e,A){var t;for(var a in A)e.test(a)&&(t=A[a],delete A[a]);return t===null||typeof t>"u"?void 0:String(t).trim()}function Lr(e,A,t){function a(r){Error.captureStackTrace(this,this.constructor),Object.assign(this,r||{}),this.code=e,this.message=this.cause?A+": "+this.cause.message:A}return a.prototype=new(t||Error),Object.defineProperties(a.prototype,{constructor:{value:a,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),a}function f0(e,A){for(var t of B0)e.removeListener(t,h0[t]);e.on("error",qE),e.destroy(A)}function Iv(e,A){m0(B1(e)&&B1(A));var t=e.length-A.length-1;return t>0&&e[t]==="."&&e.endsWith(A)}function B1(e){return typeof e=="string"||e instanceof String}function Fr(e){return typeof e=="function"}function fv(e){return typeof e=="object"&&"length"in e}function wv(e){return Sr&&e instanceof Sr}w0.exports=_E({http:cv,https:uv});w0.exports.wrap=_E});var D0=E((ZS,yv)=>{yv.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var XE=E((jS,jE)=>{"use strict";var Ur=Ze(),OE=r0(),Dv=i0(),Rv=js(),vv=require("http"),Nv=require("https"),bv=y0().http,Sv=y0().https,PE=require("url"),Fv=require("zlib"),kv=D0(),sn=Ks(),R0=zs(),WE=/https:?/;function ZE(e,A,t){if(e.hostname=A.host,e.host=A.host,e.port=A.port,e.path=t,A.auth){var a=Buffer.from(A.auth.username+":"+A.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.beforeRedirect=function(i){i.headers.host=i.host,ZE(i,A,i.href)}}jE.exports=function(A){return new Promise(function(a,r){var i=function(T){a(T)},s=function(T){r(T)},n=A.data,o=A.headers;if("User-Agent"in o||"user-agent"in o?!o["User-Agent"]&&!o["user-agent"]&&(delete o["User-Agent"],delete o["user-agent"]):o["User-Agent"]="axios/"+kv.version,n&&!Ur.isStream(n)){if(!Buffer.isBuffer(n))if(Ur.isArrayBuffer(n))n=Buffer.from(new Uint8Array(n));else if(Ur.isString(n))n=Buffer.from(n,"utf-8");else return s(sn("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",A));o["Content-Length"]=n.length}var d=void 0;if(A.auth){var l=A.auth.username||"",p=A.auth.password||"";d=l+":"+p}var g=Dv(A.baseURL,A.url),c=PE.parse(g),u=c.protocol||"http:";if(!d&&c.auth){var m=c.auth.split(":"),Q=m[0]||"",C=m[1]||"";d=Q+":"+C}d&&delete o.Authorization;var B=WE.test(u),w=B?A.httpsAgent:A.httpAgent,I={path:Rv(c.path,A.params,A.paramsSerializer).replace(/^\?/,""),method:A.method.toUpperCase(),headers:o,agent:w,agents:{http:A.httpAgent,https:A.httpsAgent},auth:d};A.socketPath?I.socketPath=A.socketPath:(I.hostname=c.hostname,I.port=c.port);var y=A.proxy;if(!y&&y!==!1){var b=u.slice(0,-1)+"_proxy",k=process.env[b]||process.env[b.toUpperCase()];if(k){var x=PE.parse(k),ye=process.env.no_proxy||process.env.NO_PROXY,Be=!0;if(ye){var wt=ye.split(",").map(function(T){return T.trim()});Be=!wt.some(function(T){return T?T==="*"||T[0]==="."&&c.hostname.substr(c.hostname.length-T.length)===T?!0:c.hostname===T:!1})}if(Be&&(y={host:x.hostname,port:x.port,protocol:x.protocol},x.auth)){var Fe=x.auth.split(":");y.auth={username:Fe[0],password:Fe[1]}}}}y&&(I.headers.host=c.hostname+(c.port?":"+c.port:""),ZE(I,y,u+"//"+c.hostname+(c.port?":"+c.port:"")+I.path));var le,QA=B&&(y?WE.test(y.protocol):!0);A.transport?le=A.transport:A.maxRedirects===0?le=QA?Nv:vv:(A.maxRedirects&&(I.maxRedirects=A.maxRedirects),le=QA?Sv:bv),A.maxBodyLength>-1&&(I.maxBodyLength=A.maxBodyLength);var j=le.request(I,function(T){if(!j.aborted){var JA=T,W=T.req||j;if(T.statusCode!==204&&W.method!=="HEAD"&&A.decompress!==!1)switch(T.headers["content-encoding"]){case"gzip":case"compress":case"deflate":JA=JA.pipe(Fv.createUnzip()),delete T.headers["content-encoding"];break}var tA={status:T.statusCode,statusText:T.statusMessage,headers:T.headers,config:A,request:W};if(A.responseType==="stream")tA.data=JA,OE(i,s,tA);else{var _0=[],q0=0;JA.on("data",function(GA){_0.push(GA),q0+=GA.length,A.maxContentLength>-1&&q0>A.maxContentLength&&(JA.destroy(),s(sn("maxContentLength size of "+A.maxContentLength+" exceeded",A,null,W)))}),JA.on("error",function(GA){j.aborted||s(R0(GA,A,null,W))}),JA.on("end",function(){var GA=Buffer.concat(_0);A.responseType!=="arraybuffer"&&(GA=GA.toString(A.responseEncoding),(!A.responseEncoding||A.responseEncoding==="utf8")&&(GA=Ur.stripBOM(GA))),tA.data=GA,OE(i,s,tA)})}}});if(j.on("error",function(T){j.aborted&&T.code!=="ERR_FR_TOO_MANY_REDIRECTS"||s(R0(T,A,null,j))}),A.timeout){var re=parseInt(A.timeout,10);if(isNaN(re)){s(sn("error trying to parse `config.timeout` to int",A,"ERR_PARSE_TIMEOUT",j));return}j.setTimeout(re,function(){j.abort(),s(sn("timeout of "+re+"ms exceeded",A,A.transitional&&A.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",j))})}A.cancelToken&&A.cancelToken.promise.then(function(T){j.aborted||(j.abort(),s(T))}),Ur.isStream(n)?n.on("error",function(T){s(R0(T,A,null,j))}).pipe(j):j.end(n)})}});var on=E((XS,$E)=>{"use strict";var Ve=Ze(),zE=dE(),Lv=zs(),Uv={"Content-Type":"application/x-www-form-urlencoded"};function KE(e,A){!Ve.isUndefined(e)&&Ve.isUndefined(e["Content-Type"])&&(e["Content-Type"]=A)}function Tv(){var e;return typeof XMLHttpRequest<"u"?e=RE():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=XE()),e}function Mv(e,A,t){if(Ve.isString(e))try{return(A||JSON.parse)(e),Ve.trim(e)}catch(a){if(a.name!=="SyntaxError")throw a}return(t||JSON.stringify)(e)}var nn={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:Tv(),transformRequest:[function(A,t){return zE(t,"Accept"),zE(t,"Content-Type"),Ve.isFormData(A)||Ve.isArrayBuffer(A)||Ve.isBuffer(A)||Ve.isStream(A)||Ve.isFile(A)||Ve.isBlob(A)?A:Ve.isArrayBufferView(A)?A.buffer:Ve.isURLSearchParams(A)?(KE(t,"application/x-www-form-urlencoded;charset=utf-8"),A.toString()):Ve.isObject(A)||t&&t["Content-Type"]==="application/json"?(KE(t,"application/json"),Mv(A)):A}],transformResponse:[function(A){var t=this.transitional,a=t&&t.silentJSONParsing,r=t&&t.forcedJSONParsing,i=!a&&this.responseType==="json";if(i||r&&Ve.isString(A)&&A.length)try{return JSON.parse(A)}catch(s){if(i)throw s.name==="SyntaxError"?Lv(s,this,"E_JSON_PARSE"):s}return A}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(A){return A>=200&&A<300}};nn.headers={common:{Accept:"application/json, text/plain, */*"}};Ve.forEach(["delete","get","head"],function(A){nn.headers[A]={}});Ve.forEach(["post","put","patch"],function(A){nn.headers[A]=Ve.merge(Uv)});$E.exports=nn});var A3=E((zS,e3)=>{"use strict";var Vv=Ze(),Yv=on();e3.exports=function(A,t,a){var r=this||Yv;return Vv.forEach(a,function(s){A=s.call(r,A,t)}),A}});var v0=E((KS,t3)=>{"use strict";t3.exports=function(A){return!!(A&&A.__CANCEL__)}});var i3=E(($S,r3)=>{"use strict";var a3=Ze(),N0=A3(),Jv=v0(),Gv=on();function b0(e){e.cancelToken&&e.cancelToken.throwIfRequested()}r3.exports=function(A){b0(A),A.headers=A.headers||{},A.data=N0.call(A,A.data,A.headers,A.transformRequest),A.headers=a3.merge(A.headers.common||{},A.headers[A.method]||{},A.headers),a3.forEach(["delete","get","head","post","put","patch","common"],function(r){delete A.headers[r]});var t=A.adapter||Gv.adapter;return t(A).then(function(r){return b0(A),r.data=N0.call(A,r.data,r.headers,A.transformResponse),r},function(r){return Jv(r)||(b0(A),r&&r.response&&(r.response.data=N0.call(A,r.response.data,r.response.headers,A.transformResponse))),Promise.reject(r)})}});var S0=E((eF,s3)=>{"use strict";var Ge=Ze();s3.exports=function(A,t){t=t||{};var a={},r=["url","method","data"],i=["headers","auth","proxy","params"],s=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],n=["validateStatus"];function o(g,c){return Ge.isPlainObject(g)&&Ge.isPlainObject(c)?Ge.merge(g,c):Ge.isPlainObject(c)?Ge.merge({},c):Ge.isArray(c)?c.slice():c}function d(g){Ge.isUndefined(t[g])?Ge.isUndefined(A[g])||(a[g]=o(void 0,A[g])):a[g]=o(A[g],t[g])}Ge.forEach(r,function(c){Ge.isUndefined(t[c])||(a[c]=o(void 0,t[c]))}),Ge.forEach(i,d),Ge.forEach(s,function(c){Ge.isUndefined(t[c])?Ge.isUndefined(A[c])||(a[c]=o(void 0,A[c])):a[c]=o(void 0,t[c])}),Ge.forEach(n,function(c){c in t?a[c]=o(A[c],t[c]):c in A&&(a[c]=o(void 0,A[c]))});var l=r.concat(i).concat(s).concat(n),p=Object.keys(A).concat(Object.keys(t)).filter(function(c){return l.indexOf(c)===-1});return Ge.forEach(p,d),a}});var l3=E((AF,p3)=>{"use strict";var o3=D0(),F0={};["object","boolean","number","function","string","symbol"].forEach(function(e,A){F0[e]=function(a){return typeof a===e||"a"+(A<1?"n ":" ")+e}});var n3={},xv=o3.version.split(".");function d3(e,A){for(var t=A?A.split("."):xv,a=e.split("."),r=0;r<3;r++){if(t[r]>a[r])return!0;if(t[r]<a[r])return!1}return!1}F0.transitional=function(A,t,a){var r=t&&d3(t);function i(s,n){return"[Axios v"+o3.version+"] Transitional option '"+s+"'"+n+(a?". "+a:"")}return function(s,n,o){if(A===!1)throw new Error(i(n," has been removed in "+t));return r&&!n3[n]&&(n3[n]=!0,console.warn(i(n," has been deprecated since v"+t+" and will be removed in the near future"))),A?A(s,n,o):!0}};function _v(e,A,t){if(typeof e!="object")throw new TypeError("options must be an object");for(var a=Object.keys(e),r=a.length;r-- >0;){var i=a[r],s=A[i];if(s){var n=e[i],o=n===void 0||s(n,i,e);if(o!==!0)throw new TypeError("option "+i+" must be "+o);continue}if(t!==!0)throw Error("Unknown option "+i)}}p3.exports={isOlderVersion:d3,assertOptions:_v,validators:F0}});var m3=E((tF,Q3)=>{"use strict";var u3=Ze(),qv=js(),g3=nE(),c3=i3(),dn=S0(),E3=l3(),va=E3.validators;function Tr(e){this.defaults=e,this.interceptors={request:new g3,response:new g3}}Tr.prototype.request=function(A){typeof A=="string"?(A=arguments[1]||{},A.url=arguments[0]):A=A||{},A=dn(this.defaults,A),A.method?A.method=A.method.toLowerCase():this.defaults.method?A.method=this.defaults.method.toLowerCase():A.method="get";var t=A.transitional;t!==void 0&&E3.assertOptions(t,{silentJSONParsing:va.transitional(va.boolean,"1.0.0"),forcedJSONParsing:va.transitional(va.boolean,"1.0.0"),clarifyTimeoutError:va.transitional(va.boolean,"1.0.0")},!1);var a=[],r=!0;this.interceptors.request.forEach(function(g){typeof g.runWhen=="function"&&g.runWhen(A)===!1||(r=r&&g.synchronous,a.unshift(g.fulfilled,g.rejected))});var i=[];this.interceptors.response.forEach(function(g){i.push(g.fulfilled,g.rejected)});var s;if(!r){var n=[c3,void 0];for(Array.prototype.unshift.apply(n,a),n=n.concat(i),s=Promise.resolve(A);n.length;)s=s.then(n.shift(),n.shift());return s}for(var o=A;a.length;){var d=a.shift(),l=a.shift();try{o=d(o)}catch(p){l(p);break}}try{s=c3(o)}catch(p){return Promise.reject(p)}for(;i.length;)s=s.then(i.shift(),i.shift());return s};Tr.prototype.getUri=function(A){return A=dn(this.defaults,A),qv(A.url,A.params,A.paramsSerializer).replace(/^\?/,"")};u3.forEach(["delete","get","head","options"],function(A){Tr.prototype[A]=function(t,a){return this.request(dn(a||{},{method:A,url:t,data:(a||{}).data}))}});u3.forEach(["post","put","patch"],function(A){Tr.prototype[A]=function(t,a,r){return this.request(dn(r||{},{method:A,url:t,data:a}))}});Q3.exports=Tr});var L0=E((aF,C3)=>{"use strict";function k0(e){this.message=e}k0.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};k0.prototype.__CANCEL__=!0;C3.exports=k0});var h3=E((rF,B3)=>{"use strict";var Hv=L0();function pn(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var A;this.promise=new Promise(function(r){A=r});var t=this;e(function(r){t.reason||(t.reason=new Hv(r),A(t.reason))})}pn.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};pn.source=function(){var A,t=new pn(function(r){A=r});return{token:t,cancel:A}};B3.exports=pn});var f3=E((iF,I3)=>{"use strict";I3.exports=function(A){return function(a){return A.apply(null,a)}}});var y3=E((sF,w3)=>{"use strict";w3.exports=function(A){return typeof A=="object"&&A.isAxiosError===!0}});var v3=E((nF,U0)=>{"use strict";var D3=Ze(),Ov=$p(),ln=m3(),Pv=S0(),Wv=on();function R3(e){var A=new ln(e),t=Ov(ln.prototype.request,A);return D3.extend(t,ln.prototype,A),D3.extend(t,A),t}var YA=R3(Wv);YA.Axios=ln;YA.create=function(A){return R3(Pv(YA.defaults,A))};YA.Cancel=L0();YA.CancelToken=h3();YA.isCancel=v0();YA.all=function(A){return Promise.all(A)};YA.spread=f3();YA.isAxiosError=y3();U0.exports=YA;U0.exports.default=YA});var b3=E((oF,N3)=>{N3.exports=v3()});var S3=E((exports,module)=>{"use strict";var __awaiter=exports&&exports.__awaiter||function(e,A,t,a){function r(i){return i instanceof t?i:new t(function(s){s(i)})}return new(t||(t=Promise))(function(i,s){function n(l){try{d(a.next(l))}catch(p){s(p)}}function o(l){try{d(a.throw(l))}catch(p){s(p)}}function d(l){l.done?i(l.value):r(l.value).then(n,o)}d((a=a.apply(e,A||[])).next())})},__generator=exports&&exports.__generator||function(e,A){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},a,r,i,s;return s={next:n(0),throw:n(1),return:n(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function n(d){return function(l){return o([d,l])}}function o(d){if(a)throw new TypeError("Generator is already executing.");for(;t;)try{if(a=1,r&&(i=d[0]&2?r.return:d[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,d[1])).done)return i;switch(r=0,i&&(d=[d[0]&2,i.value]),d[0]){case 0:case 1:i=d;break;case 4:return t.label++,{value:d[1],done:!1};case 5:t.label++,r=d[1],d=[0];continue;case 7:d=t.ops.pop(),t.trys.pop();continue;default:if(i=t.trys,!(i=i.length>0&&i[i.length-1])&&(d[0]===6||d[0]===2)){t=0;continue}if(d[0]===3&&(!i||d[1]>i[0]&&d[1]<i[3])){t.label=d[1];break}if(d[0]===6&&t.label<i[1]){t.label=i[1],i=d;break}if(i&&t.label<i[2]){t.label=i[2],t.ops.push(d);break}i[2]&&t.ops.pop(),t.trys.pop();continue}d=A.call(e,t)}catch(l){d=[6,l],r=0}finally{a=i=0}if(d[0]&5)throw d[1];return{value:d[0]?d[1]:void 0,done:!0}}},__importDefault=exports&&exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});exports.getAllAudioBase64=exports.getAudioBase64=void 0;var assertInputTypes_1=__importDefault(jp()),axios_1=__importDefault(b3()),splitLongText_1=__importDefault(zp()),getAudioBase64=function(text,_a){var _b=_a===void 0?{}:_a,_c=_b.lang,lang=_c===void 0?"en":_c,_d=_b.slow,slow=_d===void 0?!1:_d,_e=_b.host,host=_e===void 0?"https://translate.google.com":_e,_f=_b.timeout,timeout=_f===void 0?1e4:_f;return __awaiter(void 0,void 0,void 0,function(){var res,result;return __generator(this,function(_g){switch(_g.label){case 0:if(assertInputTypes_1.default(text,lang,slow,host),typeof timeout!="number"||timeout<=0)throw new TypeError("timeout should be a positive number");if(text.length>200)throw new RangeError("text length ("+text.length+') should be less than 200 characters. Try "getAllAudioBase64(text, [option])" for long text.');return[4,axios_1.default({method:"post",baseURL:host,url:"/_/TranslateWebserverUi/data/batchexecute",timeout,data:"f.req="+encodeURIComponent(JSON.stringify([[["jQ1olc",JSON.stringify([text,lang,slow?!0:null,"null"]),null,"generic"]]]))})];case 1:res=_g.sent();try{result=eval(res.data.slice(5))[0][2]}catch(e){throw new Error(`parse response failed: `+res.data)}if(!result)throw new Error('lang "'+lang+'" might not exist');try{result=eval(result)[0]}catch(e){throw new Error(`parse response failed: -`+res.data)}return[2,result]}})})};exports.getAudioBase64=getAudioBase64;var getAllAudioBase64=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n,d=t.splitPunct,l=d===void 0?"":d,p=t.timeout,g=p===void 0?1e4:p;return __awaiter(void 0,void 0,void 0,function(){var c,u,Q,m,C,h;return __generator(this,function(B){switch(B.label){case 0:if(assertInputTypes_1.default(e,r,s,o),typeof l!="string")throw new TypeError("splitPunct should be a string");if(typeof g!="number"||g<=0)throw new TypeError("timeout should be a positive number");return c=splitLongText_1.default(e,{splitPunct:l}),[4,Promise.all(c.map(function(I){return exports.getAudioBase64(I,{lang:r,slow:s,host:o,timeout:g})}))];case 1:for(u=B.sent(),Q=[],m=0;m<c.length;m++)C=c[m],h=u[m],Q.push({shortText:C,base64:h});return[2,Q]}})})};exports.getAllAudioBase64=getAllAudioBase64});var H3=E(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.getAllAudioBase64=st.getAudioBase64=st.getAllAudioUrls=st.getAudioUrl=void 0;var _3=lE();Object.defineProperty(st,"getAudioUrl",{enumerable:!0,get:function(){return _3.getAudioUrl}});Object.defineProperty(st,"getAllAudioUrls",{enumerable:!0,get:function(){return _3.getAllAudioUrls}});var q3=x3();Object.defineProperty(st,"getAudioBase64",{enumerable:!0,get:function(){return q3.getAudioBase64}});Object.defineProperty(st,"getAllAudioBase64",{enumerable:!0,get:function(){return q3.getAllAudioBase64}})});var W3=E(AA=>{"use strict";var QN=AA&&AA.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),CN=AA&&AA.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),O3=AA&&AA.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&QN(A,e,t);return CN(A,e),A};Object.defineProperty(AA,"__esModule",{value:!0});AA.req=AA.json=AA.toBuffer=void 0;var mN=O3(require("http")),BN=O3(require("https"));async function P3(e){let A=0,t=[];for await(let a of e)A+=a.length,t.push(a);return Buffer.concat(t,A)}AA.toBuffer=P3;async function hN(e){let t=(await P3(e)).toString("utf8");try{return JSON.parse(t)}catch(a){let r=a;throw r.message+=` (input: ${t})`,r}}AA.json=hN;function IN(e,A={}){let a=((typeof e=="string"?e:e.href).startsWith("https:")?BN:mN).request(e,A),r=new Promise((i,s)=>{a.once("response",i).once("error",s).end()});return a.then=r.then.bind(r),a}AA.req=IN});var z3=E(EA=>{"use strict";var Z3=EA&&EA.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),fN=EA&&EA.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),X3=EA&&EA.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&Z3(A,e,t);return fN(A,e),A},wN=EA&&EA.__exportStar||function(e,A){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(A,t)&&Z3(A,e,t)};Object.defineProperty(EA,"__esModule",{value:!0});EA.Agent=void 0;var yN=X3(require("net")),j3=X3(require("http")),DN=require("https");wN(W3(),EA);var nt=Symbol("AgentBaseInternalState"),O0=class extends j3.Agent{constructor(A){super(A),this[nt]={}}isSecureEndpoint(A){if(A){if(typeof A.secureEndpoint=="boolean")return A.secureEndpoint;if(typeof A.protocol=="string")return A.protocol==="https:"}let{stack:t}=new Error;return typeof t!="string"?!1:t.split(` -`).some(a=>a.indexOf("(https.js:")!==-1||a.indexOf("node:https:")!==-1)}incrementSockets(A){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[A]||(this.sockets[A]=[]);let t=new yN.Socket({writable:!1});return this.sockets[A].push(t),this.totalSocketCount++,t}decrementSockets(A,t){if(!this.sockets[A]||t===null)return;let a=this.sockets[A],r=a.indexOf(t);r!==-1&&(a.splice(r,1),this.totalSocketCount--,a.length===0&&delete this.sockets[A])}getName(A){return(typeof A.secureEndpoint=="boolean"?A.secureEndpoint:this.isSecureEndpoint(A))?DN.Agent.prototype.getName.call(this,A):super.getName(A)}createSocket(A,t,a){let r={...t,secureEndpoint:this.isSecureEndpoint(t)},i=this.getName(r),s=this.incrementSockets(i);Promise.resolve().then(()=>this.connect(A,r)).then(n=>{if(this.decrementSockets(i,s),n instanceof j3.Agent)try{return n.addRequest(A,r)}catch(o){return a(o)}this[nt].currentSocket=n,super.createSocket(A,t,a)},n=>{this.decrementSockets(i,s),a(n)})}createConnection(){let A=this[nt].currentSocket;if(this[nt].currentSocket=void 0,!A)throw new Error("No socket was returned in the `connect()` function");return A}get defaultPort(){return this[nt].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(A){this[nt]&&(this[nt].defaultPort=A)}get protocol(){return this[nt].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(A){this[nt]&&(this[nt].protocol=A)}};EA.Agent=O0});var K3=E(ka=>{"use strict";var vN=ka&&ka.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ka,"__esModule",{value:!0});ka.parseProxyResponse=void 0;var RN=vN(gn()),Bn=(0,RN.default)("https-proxy-agent:parse-proxy-response");function NN(e){return new Promise((A,t)=>{let a=0,r=[];function i(){let l=e.read();l?d(l):e.once("readable",i)}function s(){e.removeListener("end",n),e.removeListener("error",o),e.removeListener("readable",i)}function n(){s(),Bn("onend"),t(new Error("Proxy connection ended before receiving CONNECT response"))}function o(l){s(),Bn("onerror %o",l),t(l)}function d(l){r.push(l),a+=l.length;let p=Buffer.concat(r,a),g=p.indexOf(`\r -\r -`);if(g===-1){Bn("have not received end of HTTP headers yet..."),i();return}let c=p.slice(0,g).toString("ascii").split(`\r -`),u=c.shift();if(!u)return e.destroy(),t(new Error("No header received from proxy CONNECT response"));let Q=u.split(" "),m=+Q[1],C=Q.slice(2).join(" "),h={};for(let B of c){if(!B)continue;let I=B.indexOf(":");if(I===-1)return e.destroy(),t(new Error(`Invalid header from proxy CONNECT response: "${B}"`));let w=B.slice(0,I).toLowerCase(),v=B.slice(I+1).trimStart(),S=h[w];typeof S=="string"?h[w]=[S,v]:Array.isArray(S)?S.push(v):h[w]=v}Bn("got proxy server response: %o %o",u,h),s(),A({connect:{statusCode:m,statusText:C,headers:h},buffered:p})}e.on("error",o),e.on("end",n),i()})}ka.parseProxyResponse=NN});var rQ=E(kA=>{"use strict";var bN=kA&&kA.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),SN=kA&&kA.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),tQ=kA&&kA.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&bN(A,e,t);return SN(A,e),A},aQ=kA&&kA.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kA,"__esModule",{value:!0});kA.HttpsProxyAgent=void 0;var hn=tQ(require("net")),$3=tQ(require("tls")),FN=aQ(require("assert")),kN=aQ(gn()),LN=z3(),UN=require("url"),TN=K3(),xr=(0,kN.default)("https-proxy-agent"),eQ=e=>e.servername===void 0&&e.host&&!hn.isIP(e.host)?{...e,servername:e.host}:e,In=class extends LN.Agent{constructor(A,t){super(t),this.options={path:void 0},this.proxy=typeof A=="string"?new UN.URL(A):A,this.proxyHeaders=t?.headers??{},xr("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let a=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),r=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...t?AQ(t,"headers"):null,host:a,port:r}}async connect(A,t){let{proxy:a}=this;if(!t.host)throw new TypeError('No "host" provided');let r;a.protocol==="https:"?(xr("Creating `tls.Socket`: %o",this.connectOpts),r=$3.connect(eQ(this.connectOpts))):(xr("Creating `net.Socket`: %o",this.connectOpts),r=hn.connect(this.connectOpts));let i=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},s=hn.isIPv6(t.host)?`[${t.host}]`:t.host,n=`CONNECT ${s}:${t.port} HTTP/1.1\r -`;if(a.username||a.password){let g=`${decodeURIComponent(a.username)}:${decodeURIComponent(a.password)}`;i["Proxy-Authorization"]=`Basic ${Buffer.from(g).toString("base64")}`}i.Host=`${s}:${t.port}`,i["Proxy-Connection"]||(i["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let g of Object.keys(i))n+=`${g}: ${i[g]}\r -`;let o=(0,TN.parseProxyResponse)(r);r.write(`${n}\r -`);let{connect:d,buffered:l}=await o;if(A.emit("proxyConnect",d),this.emit("proxyConnect",d,A),d.statusCode===200)return A.once("socket",MN),t.secureEndpoint?(xr("Upgrading socket connection to TLS"),$3.connect({...AQ(eQ(t),"host","path","port"),socket:r})):r;r.destroy();let p=new hn.Socket({writable:!1});return p.readable=!0,A.once("socket",g=>{xr("Replaying proxy buffer for failed request"),(0,FN.default)(g.listenerCount("data")>0),g.push(l),g.push(null)}),p}};In.protocols=["http","https"];kA.HttpsProxyAgent=In;function MN(e){e.resume()}function AQ(e,...A){let t={},a;for(a in e)A.includes(a)||(t[a]=e[a]);return t}});var xN={};IQ(xN,{default:()=>EQ});module.exports=fQ(xN);var Or=qA(require("react")),j=require("@raycast/api"),uQ=qA(ro());var wn=require("@raycast/api"),W0=qA(ro()),v1=qA(require("react"));var a0=qA(require("querystring")),Lr=qA(e0());var it={auto:"Auto-Detect",ab:"Abkhaz",ace:"Acehnese",ach:"Acholi",aa:"Afar",af:"Afrikaans",sq:"Albanian",alz:"Alur",am:"Amharic",ar:"Arabic",hy:"Armenian",as:"Assamese",av:"Avar",awa:"Awadhi",ay:"Aymara",az:"Azerbaijani",ban:"Balinese",bal:"Baluchi",bm:"Bambara",bci:"Baoul\xE9",ba:"Bashkir",eu:"Basque",btx:"Batak Karo",bts:"Batak Simalungun",bbc:"Batak Toba",be:"Belarusian",bem:"Bemba",bn:"Bengali",bew:"Betawi",bho:"Bhojpuri",bik:"Bikol",bs:"Bosnian",br:"Breton",bg:"Bulgarian",bua:"Buryat",yue:"Cantonese",ca:"Catalan",ceb:"Cebuano",ch:"Chamorro",ce:"Chechen",ny:"Chichewa","zh-CN":"Chinese (Simplified)","zh-TW":"Chinese (Traditional)",chk:"Chuukese",cv:"Chuvash",co:"Corsican",crh:"Crimean Tatar (Cyrillic)","crh-Latn":"Crimean Tatar (Latin)",hr:"Croatian",cs:"Czech",da:"Danish","fa-AF":"Dari",dv:"Dhivehi",din:"Dinka",doi:"Dogri",dov:"Dombe",nl:"Dutch",dyu:"Dyula",dz:"Dzongkha",en:"English",eo:"Esperanto",et:"Estonian",ee:"Ewe",fo:"Faroese",fj:"Fijian",tl:"Filipino",fi:"Finnish",fon:"Fon",fr:"French","fr-CA":"French (Canada)",fy:"Frisian",fur:"Friulian",ff:"Fulani",gaa:"Ga",gl:"Galician",ka:"Georgian",de:"German",el:"Greek",gn:"Guarani",gu:"Gujarati",ht:"Haitian Creole",cnh:"Hakha Chin",ha:"Hausa",haw:"Hawaiian",iw:"Hebrew",hil:"Hiligaynon",hi:"Hindi",hmn:"Hmong",hu:"Hungarian",hrx:"Hunsrik",iba:"Iban",is:"Icelandic",ig:"Igbo",ilo:"Ilocano",id:"Indonesian","iu-Latn":"Inuktut (Latin)",iu:"Inuktut (Syllabics)",ga:"Irish",it:"Italian",jam:"Jamaican Patois",ja:"Japanese",jv:"Javanese",kac:"Jingpo",kl:"Kalaallisut",kn:"Kannada",kr:"Kanuri",pam:"Kapampangan",kk:"Kazakh",kha:"Khasi",km:"Khmer",cgg:"Kiga",kg:"Kikongo",rw:"Kinyarwanda",ktu:"Kituba",trp:"Kokborok",kv:"Komi",gom:"Konkani",ko:"Korean",kri:"Krio",ku:"Kurdish (Kurmanji)",ckb:"Kurdish (Sorani)",ky:"Kyrgyz",lo:"Lao",ltg:"Latgalian",la:"Latin",lv:"Latvian",lij:"Ligurian",li:"Limburgish",ln:"Lingala",lt:"Lithuanian",lmo:"Lombard",lg:"Luganda",luo:"Luo",lb:"Luxembourgish",mk:"Macedonian",mad:"Madurese",mai:"Maithili",mak:"Makassar",mg:"Malagasy",ms:"Malay","ms-Arab":"Malay (Jawi)",ml:"Malayalam",mt:"Maltese",mam:"Mam",gv:"Manx",mi:"Maori",mr:"Marathi",mh:"Marshallese",mwr:"Marwadi",mfe:"Mauritian Creole",chm:"Meadow Mari","mni-Mtei":"Meiteilon (Manipuri)",min:"Minang",lus:"Mizo",mn:"Mongolian",my:"Myanmar (Burmese)","bm-Nkoo":"NKo",nhe:"Nahuatl (Eastern Huasteca)","ndc-ZW":"Ndau",nr:"Ndebele (South)",new:"Nepalbhasa (Newari)",ne:"Nepali",no:"Norwegian",nus:"Nuer",oc:"Occitan",or:"Odia (Oriya)",om:"Oromo",os:"Ossetian",pag:"Pangasinan",pap:"Papiamento",ps:"Pashto",fa:"Persian",pl:"Polish",pt:"Portuguese (Brazil)","pt-PT":"Portuguese (Portugal)",pa:"Punjabi (Gurmukhi)","pa-Arab":"Punjabi (Shahmukhi)",qu:"Quechua",kek:"Q\u02BCeqchi\u02BC",rom:"Romani",ro:"Romanian",rn:"Rundi",ru:"Russian",se:"Sami (North)",sm:"Samoan",sg:"Sango",sa:"Sanskrit","sat-Latn":"Santali (Latin)",sat:"Santali (Ol Chiki)",gd:"Scots Gaelic",nso:"Sepedi",sr:"Serbian",st:"Sesotho",crs:"Seychellois Creole",shn:"Shan",sn:"Shona",scn:"Sicilian",szl:"Silesian",sd:"Sindhi",si:"Sinhala",sk:"Slovak",sl:"Slovenian",so:"Somali",es:"Spanish",su:"Sundanese",sus:"Susu",sw:"Swahili",ss:"Swati",sv:"Swedish",ty:"Tahitian",tg:"Tajik","ber-Latn":"Tamazight",ber:"Tamazight (Tifinagh)",ta:"Tamil",tt:"Tatar",te:"Telugu",tet:"Tetum",th:"Thai",bo:"Tibetan",ti:"Tigrinya",tiv:"Tiv",tpi:"Tok Pisin",to:"Tongan",lua:"Tshiluba",ts:"Tsonga",tn:"Tswana",tcy:"Tulu",tum:"Tumbuka",tr:"Turkish",tk:"Turkmen",tyv:"Tuvan",ak:"Twi",udm:"Udmurt",uk:"Ukrainian",ur:"Urdu",ug:"Uyghur",uz:"Uzbek",ve:"Venda",vec:"Venetian",vi:"Vietnamese",war:"Waray",cy:"Welsh",wo:"Wolof",xh:"Xhosa",sah:"Yakut",yi:"Yiddish",yo:"Yoruba",yua:"Yucatec Maya",zap:"Zapotec",zu:"Zulu"};function Ks(e){return e?e in it||(e=e.toLowerCase(),e in it)?e:Object.keys(it).filter(t=>typeof it[t]!="string"?!1:it[t].toLowerCase()===e)[0]||void 0:void 0}function rE(e){return!!Ks(e)}var sE=qA(e0());function Nv(e){let A;if(A0!==null)A=A0;else{A=$s("T");let o=$s("K");A=[A(),A()],A[1]=o(),A=(A0=t0[A.join(o())]||"")||""}let t=$s("t"),a=$s("k");t=[t(),t()],t[1]=a(),a="&"+t.join("")+"=",t=A.split("."),A=Number(t[0])||0;for(var r=[],i=0,s=0;s<e.length;s++){let o=e.charCodeAt(s);128>o?r[i++]=o:(2048>o?r[i++]=o>>6|192:((o&64512)==55296&&s+1<e.length&&(e.charCodeAt(s+1)&64512)==56320?(o=65536+((o&1023)<<10)+(e.charCodeAt(++s)&1023),r[i++]=o>>18|240,r[i++]=o>>12&63|128):r[i++]=o>>12|224,r[i++]=o>>6&63|128),r[i++]=o&63|128)}let n=Number(A);for(let o=0;o<r.length;o++)e+=r[o],n=iE(n,"+-a^+6");return n=iE(n,"+-3^+b+-f"),n^=Number(t[1])||0,0>n&&(n=(n&2147483647)+2147483648),n%=1e6,a+(e.toString()+"."+(n^A))}var A0=null,$s=function(e){return function(){return e}},iE=function(e,A){for(let t=0;t<A.length-2;t+=3){let a=A.charAt(t+2),r=a>="a"?a.charCodeAt(0)-87:Number(a);r=A.charAt(t+1)=="+"?e>>>r:e<<r,e=A.charAt(t)=="+"?e+r&4294967295:e^r}return e},nE=new Map,t0={TKK:nE.get("TKK")||"0"};async function bv(){let e=Math.floor(Date.now()/36e5);if(Number(t0.TKK.split(".")[0])!==e){let a=(await(await(0,sE.request)("https://translate.google.com")).body.text()).match(/tkk:'\d+.\d+'/g);if(a&&a.length>0){let r=a[0].split(":")[1].replace(/'/g,"");t0.TKK=r,nE.set("TKK",r)}}}async function oE(e){try{await bv();let A=Nv(e);return A=A.replace("&tk=",""),{name:"tk",value:A}}catch(A){return A}}async function dE(e,A){typeof A!="object"&&(A={}),e=String(e);let t=null;if([A.from,A.to].forEach(g=>{g&&!rE(g)&&(t=new Error,t.message=`The language '${g}' is not supported.`)}),t)throw t;Object.prototype.hasOwnProperty.call(A,"from")||(A.from="auto"),Object.prototype.hasOwnProperty.call(A,"to")||(A.to="en"),A.raw=!!A.raw,A.from=Ks(A.from),A.to=Ks(A.to);let a=await oE(e),r="https://translate.google.com/translate_a/single",i={client:"gtx",sl:A.from,tl:A.to,hl:A.to,dt:["at","bd","ex","ld","md","qca","rw","rm","ss","t"],ie:"UTF-8",oe:"UTF-8",otf:1,ssel:0,tsel:0,kc:7,q:e,[a.name]:a.value},s=`${r}?${a0.default.stringify(i)}`,n,o=s;s.length>2048?(delete i.q,o=`${r}?${a0.default.stringify(i)}`,n={method:"POST",body:new URLSearchParams({q:e}).toString(),headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"}},A.proxy&&(n.dispatcher=new Lr.ProxyAgent(A.proxy))):A.proxy&&(n={dispatcher:new Lr.ProxyAgent(A.proxy)});let l=await(await(0,Lr.request)(o,n)).body.json(),p={text:"",from:{language:{didYouMean:!1,iso:""},text:{autoCorrected:!1,value:"",didYouMean:!1}},raw:""};if(A.raw&&(p.raw=l),l[0].forEach(g=>{g[0]&&(p.text+=g[0])}),l[2]===l[8][0][0]?p.from.language.iso=l[2]:(p.from.language.didYouMean=!0,p.from.language.iso=l[8][0][0]),l[7]&&l[7][0]){let g=l[7][0];g=g.replace(/<b><i>/g,"["),g=g.replace(/<\/i><\/b>/g,"]"),p.from.text.value=g,l[7][5]===!0?p.from.text.autoCorrected=!0:p.from.text.didYouMean=!0}return p}var VN=qA(H3());var YN=qA(rQ()),D1="auto",fn=class extends Error{},JN=e=>e?.[0]?.[1]?.[2];async function iQ(e,A){try{if(!e)return{originalText:e,translatedText:"",pronunciationText:"",langFrom:A.langFrom,langTo:A.langTo[0]};let t=await dE(e,{from:A.langFrom,to:A.langTo[0],raw:!0,proxy:A.proxy});return{originalText:e,translatedText:t.text,pronunciationText:JN(t?.raw),langFrom:t?.from?.language?.iso,langTo:A.langTo[0]}}catch(t){if(t instanceof Error){if(t.name==="TooManyRequestsError"){let r=new fn;throw r.name="Too many requests",r.message="please try again later",r}let a=new fn;throw a.name=t.name,a.message=t.message,a}throw t}}var P0=e=>({langFrom:e.langFrom,langTo:Array.isArray(e.langTo)?e.langTo:[e.langTo]}),_r=()=>v1.default.useMemo(()=>(0,wn.getPreferenceValues)(),[]),sQ=()=>{let e=_r(),[A,t]=v1.default.useState(""),a=v1.default.useRef(A);return a.current=A,v1.default.useEffect(()=>{e.autoInput&&(0,wn.getSelectedText)().then(r=>{a.current||t(r??"")}).catch(r=>{console.log("Error:",r)})},[]),[A,t]},qr=()=>{let e=_r(),[A,t]=(0,W0.useCachedState)("selectedLanguageSet",P0({langFrom:e.lang1,langTo:e.lang2}));return[P0(A),t]},j0=()=>{let e=_r();return{langFrom:e.lang1,langTo:[e.lang2]}},nQ=(e,A)=>{let[t,a]=v1.default.useState(e);return v1.default.useEffect(()=>{let r=setTimeout(()=>{a(e)},A);return()=>{clearTimeout(r)}},[e,A]),t},Z0=()=>{let[e,A]=(0,W0.useCachedState)("languages",[]);return[e.map(P0),A]};var X0={code:"en",name:it.en},sk={code:"auto",name:it.auto},vt=Object.keys(it).map(e=>({code:e,name:it[e]})),jt=vt.reduce((e,A)=>({...e,[A.code]:A}),{}),nk=vt.reduce((e,A)=>({...e,[A.name]:A}),{});var _=require("@raycast/api");var oQ=qA(require("react")),be=require("@raycast/api");var QA=require("react/jsx-runtime"),dQ=({onAddLanguage:e})=>{let[A,t]=oQ.default.useState(["en"]);return(0,QA.jsxs)(be.Form,{actions:(0,QA.jsx)(be.ActionPanel,{children:(0,QA.jsx)(be.Action.SubmitForm,{title:"Add language set",onSubmit:a=>{let r=A.filter(i=>!!i);if(!r.length){(0,be.showToast)({style:be.Toast.Style.Failure,title:"No target languages",message:"Please select at least one target language"});return}e({langFrom:a.langFrom,langTo:r})}})}),children:[(0,QA.jsx)(be.Form.Dropdown,{id:"langFrom",title:"Source Language",children:vt.map(a=>(0,QA.jsx)(be.Form.Dropdown.Item,{value:a.code,title:a.name},a.code))}),A.map((a,r)=>{let i=A[r];return(0,QA.jsxs)(be.Form.Dropdown,{id:`langTo.${r}`,title:`Target Language ${r+1}`,value:i,onChange:s=>{let n=[...A];n[r]=s,t(n)},children:[!i&&(0,QA.jsx)(be.Form.Dropdown.Item,{value:"",title:""}),vt.filter(s=>s.code!==D1).map(s=>(0,QA.jsx)(be.Form.Dropdown.Item,{value:s.code,title:s.name},s.code))]},r)}),(!!A[A.length-1]||A.length===0)&&(0,QA.jsxs)(be.Form.Dropdown,{id:`langTo.${A.length}`,title:`Target Language ${A.length}`,value:"",onChange:a=>{let r=[...A];r.push(a),t(r)},children:[(0,QA.jsx)(be.Form.Dropdown.Item,{value:"",title:""}),vt.filter(a=>a.code!==D1).map(a=>(0,QA.jsx)(be.Form.Dropdown.Item,{value:a.code,title:a.name},a.code))]},A.length)]})};var La=(e,A)=>e.langFrom===A.langFrom&&e.langTo.join()===A.langTo.join(),z0=e=>({langFrom:jt[e.langFrom],langTo:e.langTo.map(A=>jt[A])}),Hr=e=>{let{langFrom:A,langTo:t}=z0(e),r=(Array.isArray(t)?t:[t]).map(i=>i.name);return`${A.name} -> ${r.join(", ")}`};var fe=require("react/jsx-runtime");function pQ({languageSet:e,onSelect:A,onDelete:t,selected:a}){let{langFrom:r,langTo:i}=z0(e),s=Array.isArray(i)?i:[i],n=s.map(o=>o.name).join(", ");return(0,fe.jsx)(_.List.Item,{title:`${r.name} ->`,subtitle:` ${n}`,keywords:[r.name,r.code,...s.flatMap(o=>[o.name,o.code])],icon:a?{tintColor:_.Color.Green,source:_.Icon.Checkmark}:void 0,actions:(0,fe.jsxs)(_.ActionPanel,{children:[(0,fe.jsx)(_.Action,{title:"Select",onAction:A,icon:{tintColor:_.Color.Green,source:_.Icon.Checkmark}}),t&&(0,fe.jsx)(_.Action,{style:_.Action.Style.Destructive,title:"Delete",onAction:t,icon:_.Icon.Trash})]})})}var GN=({languageSet:e,onSelect:A})=>(0,fe.jsx)(_.List.Item,{icon:_.Icon.SaveDocument,title:"Save current set",subtitle:Hr(e),actions:(0,fe.jsx)(_.ActionPanel,{children:(0,fe.jsx)(_.Action,{title:"Save current set",onAction:A})})}),K0=()=>{let e=(0,_.useNavigation)(),A=j0(),[t,a]=qr(),[r,i]=Z0();return(0,fe.jsxs)(_.List,{actions:(0,fe.jsx)(_.ActionPanel,{children:(0,fe.jsx)(_.Action,{title:"Remove all",onAction:()=>i([])})}),children:[(0,fe.jsx)(_.List.Item,{icon:{source:_.Icon.Plus},title:"Add new language set...",actions:(0,fe.jsx)(_.ActionPanel,{children:(0,fe.jsx)(_.Action.Push,{title:"Add new language set...",target:(0,fe.jsx)(dQ,{onAddLanguage:s=>{i([...r,s]),e.pop(),(0,_.showToast)(_.Toast.Style.Success,"Language set was saved!",Hr(s))}})})})}),!r.some(s=>La(s,t))&&!La(A,t)&&(0,fe.jsx)(GN,{languageSet:t,onSelect:()=>i([...r,t])}),(0,fe.jsx)(pQ,{languageSet:A,onSelect:()=>{a(A),e.pop()},selected:La(t,A)}),r.map(s=>(0,fe.jsx)(pQ,{selected:La(t,s),languageSet:s,onSelect:()=>{a(s),e.pop()},onDelete:()=>{i(r.filter(n=>!La(n,s))),(0,_.showToast)(_.Toast.Style.Success,"Language set was deleted!",Hr(s))}},`${s.langFrom} ${s.langTo}`))]})};var $0=require("@raycast/api");var lQ=require("react/jsx-runtime");var R1=require("@raycast/api"),ot=require("react/jsx-runtime"),gQ=({defaultActionsPrefix:e,value:A})=>{let t=(0,R1.getPreferenceValues)().defaultAction,a=(0,ot.jsx)(R1.Action.Paste,{title:e?`Paste ${e}`:"Paste",content:A}),r=(0,ot.jsx)(R1.Action.CopyToClipboard,{title:e?`Copy ${e}`:"Copy",content:A});return t==="paste"?(0,ot.jsxs)(ot.Fragment,{children:[a,r]}):(0,ot.jsxs)(ot.Fragment,{children:[r,a]})};var cQ=({translationText:e,translation:A})=>(0,ot.jsx)(R1.Action.OpenInBrowser,{title:"Open in Google Translate",shortcut:{modifiers:["opt"],key:"enter"},url:"https://translate.google.com/?sl="+A.langFrom+"&tl="+A.langTo+"&text="+encodeURIComponent(e)+"&op=translate"});var se=require("react/jsx-runtime");function EQ(){let[e,A]=qr(),t=e.langFrom,a=Array.isArray(e.langTo)?e.langTo[0]:e.langTo,{proxy:r}=_r(),i=Or.default.useRef(null),s=Or.default.useRef(null),n=Or.default.useRef(null),o=B=>A({...e,langFrom:B}),d=B=>A({...e,langTo:[B]}),l=jt[t]??X0,p=jt[a]??X0,[g,c]=sQ(),u=nQ(g,500),{data:Q,isLoading:m}=(0,uQ.usePromise)(iQ,[u,{langFrom:l.code,langTo:[p.code],proxy:r}],{onError(B){(0,j.showToast)({style:j.Toast.Style.Failure,title:B.name,message:B.message})}}),C=B=>{B.length>5e3?(c(B.slice(0,5e3)),(0,j.showToast)({style:j.Toast.Style.Failure,title:"Limit",message:"Max length (5000 chars) for a single translation exceeded"})):c(B)},h=Or.default.useMemo(()=>t===D1&&Q?jt[Q.langFrom]:null,[Q,t]);return(0,se.jsxs)(j.Form,{isLoading:m,actions:(0,se.jsxs)(j.ActionPanel,{children:[(0,se.jsxs)(j.ActionPanel.Section,{title:"Generals",children:[(0,se.jsx)(gQ,{defaultActionsPrefix:"Translated",value:Q?.translatedText??""}),(0,se.jsx)(j.Action.CopyToClipboard,{title:"Copy Text",content:g??""}),(0,se.jsx)(j.Action.CopyToClipboard,{title:"Copy Pronunciation",shortcut:{modifiers:["cmd","shift"],key:"p"},content:Q?.pronunciationText??""}),(0,se.jsx)(cQ,{translationText:g,translation:{langFrom:t,langTo:a}}),(0,se.jsx)(j.Action.Push,{icon:j.Icon.Pencil,title:"Manage language sets...",shortcut:{modifiers:["cmd"],key:"l"},target:(0,se.jsx)(K0,{})})]}),(0,se.jsxs)(j.ActionPanel.Section,{title:"Settings",children:[(0,se.jsx)(j.Action,{shortcut:{modifiers:["cmd","shift"],key:"s"},onAction:()=>{h?.code?A({langFrom:a,langTo:[jt[h.code].code]}):A({langFrom:a,langTo:[t]})},title:`${h?.name??l.name} <-> ${p.name}`}),(0,se.jsx)(j.Action,{shortcut:{modifiers:["cmd","shift"],key:"f"},title:"Change From Language",onAction:()=>{n.current?.focus()}}),(0,se.jsx)(j.Action,{shortcut:{modifiers:["cmd","shift"],key:"t"},title:"Change To Language",onAction:()=>{s.current?.focus()}})]})]}),children:[(0,se.jsx)(j.Form.TextArea,{id:"text",title:"Text",value:g,onChange:C,ref:i}),(0,se.jsxs)(j.Form.Dropdown,{id:"language_from",title:"From",value:h?.code??t,onChange:B=>{o(B),i.current?.focus()},storeValue:!0,ref:n,children:[h&&(0,se.jsx)(j.Form.Dropdown.Item,{value:h.code,title:`${h.name} (Auto-detect)`}),vt.map(B=>(0,se.jsx)(j.Form.Dropdown.Item,{value:B.code,title:B.name},B.code))]}),(0,se.jsx)(j.Form.Dropdown,{id:"language_to",title:"To",value:a,onChange:B=>{d(B),i.current?.focus()},storeValue:!0,ref:s,children:vt.filter(B=>B.code!==D1).map(B=>(0,se.jsx)(j.Form.Dropdown.Item,{value:B.code,title:B.name},B.code))}),(0,se.jsx)(j.Form.TextArea,{id:"result",title:"Translation",value:Q?.translatedText??"",placeholder:"Translation"}),(0,se.jsx)(j.Form.Description,{title:"Pronunciation",text:Q?.pronunciationText??""})]})} +`+res.data)}return[2,result]}})})};exports.getAudioBase64=getAudioBase64;var getAllAudioBase64=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n,d=t.splitPunct,l=d===void 0?"":d,p=t.timeout,g=p===void 0?1e4:p;return __awaiter(void 0,void 0,void 0,function(){var c,u,m,Q,C,B;return __generator(this,function(w){switch(w.label){case 0:if(assertInputTypes_1.default(e,r,s,o),typeof l!="string")throw new TypeError("splitPunct should be a string");if(typeof g!="number"||g<=0)throw new TypeError("timeout should be a positive number");return c=splitLongText_1.default(e,{splitPunct:l}),[4,Promise.all(c.map(function(I){return exports.getAudioBase64(I,{lang:r,slow:s,host:o,timeout:g})}))];case 1:for(u=w.sent(),m=[],Q=0;Q<c.length;Q++)C=c[Q],B=u[Q],m.push({shortText:C,base64:B});return[2,m]}})})};exports.getAllAudioBase64=getAllAudioBase64});var L3=E(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.getAllAudioBase64=tt.getAudioBase64=tt.getAllAudioUrls=tt.getAudioUrl=void 0;var F3=$9();Object.defineProperty(tt,"getAudioUrl",{enumerable:!0,get:function(){return F3.getAudioUrl}});Object.defineProperty(tt,"getAllAudioUrls",{enumerable:!0,get:function(){return F3.getAllAudioUrls}});var k3=S3();Object.defineProperty(tt,"getAudioBase64",{enumerable:!0,get:function(){return k3.getAudioBase64}});Object.defineProperty(tt,"getAllAudioBase64",{enumerable:!0,get:function(){return k3.getAllAudioBase64}})});var eN={};$3(eN,{default:()=>W3});module.exports=eQ(eN);var O3=rt(require("react")),H=require("@raycast/api"),P3=rt(Zn());var cn=require("@raycast/api"),M0=rt(Zn()),I1=rt(require("react"));var Wp=rt(require("querystring")),Nr=rt(Hp());var Os={auto:"Automatic",af:"Afrikaans",sq:"Albanian",am:"Amharic",ar:"Arabic",hy:"Armenian",az:"Azerbaijani",eu:"Basque",be:"Belarusian",bn:"Bengali",bs:"Bosnian",bg:"Bulgarian",ca:"Catalan",ceb:"Cebuano",ny:"Chichewa","zh-cn":"Chinese Simplified","zh-tw":"Chinese Traditional",co:"Corsican",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch",en:"English",eo:"Esperanto",et:"Estonian",tl:"Filipino",fi:"Finnish",fr:"French",fy:"Frisian",gl:"Galician",ka:"Georgian",de:"German",el:"Greek",gu:"Gujarati",ht:"Haitian Creole",ha:"Hausa",haw:"Hawaiian",iw:"Hebrew",hi:"Hindi",hmn:"Hmong",hu:"Hungarian",is:"Icelandic",ig:"Igbo",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",jw:"Javanese",kn:"Kannada",kk:"Kazakh",km:"Khmer",ko:"Korean",ku:"Kurdish (Kurmanji)",ky:"Kyrgyz",lo:"Lao",la:"Latin",lv:"Latvian",lt:"Lithuanian",lb:"Luxembourgish",mk:"Macedonian",mg:"Malagasy",ms:"Malay",ml:"Malayalam",mt:"Maltese",mi:"Maori",mr:"Marathi",mn:"Mongolian",my:"Myanmar (Burmese)",ne:"Nepali",no:"Norwegian",ps:"Pashto",fa:"Persian",pl:"Polish",pt:"Portuguese",pa:"Punjabi",ro:"Romanian",ru:"Russian",sm:"Samoan",gd:"Scots Gaelic",sr:"Serbian",st:"Sesotho",sn:"Shona",sd:"Sindhi",si:"Sinhala",sk:"Slovak",sl:"Slovenian",so:"Somali",es:"Spanish",su:"Sundanese",sw:"Swahili",sv:"Swedish",tg:"Tajik",ta:"Tamil",te:"Telugu",th:"Thai",tr:"Turkish",uk:"Ukrainian",ur:"Urdu",uz:"Uzbek",vi:"Vietnamese",cy:"Welsh",xh:"Xhosa",yi:"Yiddish",yo:"Yoruba",zu:"Zulu"};function Ps(e){return e?(e=e.toLowerCase(),e in Os?e:Object.keys(Os).filter(t=>typeof Os[t]!="string"?!1:Os[t].toLowerCase()===e)[0]||void 0):void 0}function P9(e){return!!Ps(e)}var Z9=rt(Hp());function sR(e){let A;if(Op!==null)A=Op;else{A=Ws("T");let o=Ws("K");A=[A(),A()],A[1]=o(),A=(Op=Pp[A.join(o())]||"")||""}let t=Ws("t"),a=Ws("k");t=[t(),t()],t[1]=a(),a="&"+t.join("")+"=",t=A.split("."),A=Number(t[0])||0;for(var r=[],i=0,s=0;s<e.length;s++){let o=e.charCodeAt(s);128>o?r[i++]=o:(2048>o?r[i++]=o>>6|192:((o&64512)==55296&&s+1<e.length&&(e.charCodeAt(s+1)&64512)==56320?(o=65536+((o&1023)<<10)+(e.charCodeAt(++s)&1023),r[i++]=o>>18|240,r[i++]=o>>12&63|128):r[i++]=o>>12|224,r[i++]=o>>6&63|128),r[i++]=o&63|128)}let n=Number(A);for(let o=0;o<r.length;o++)e+=r[o],n=W9(n,"+-a^+6");return n=W9(n,"+-3^+b+-f"),n^=Number(t[1])||0,0>n&&(n=(n&2147483647)+2147483648),n%=1e6,a+(e.toString()+"."+(n^A))}var Op=null,Ws=function(e){return function(){return e}},W9=function(e,A){for(let t=0;t<A.length-2;t+=3){let a=A.charAt(t+2),r=a>="a"?a.charCodeAt(0)-87:Number(a);r=A.charAt(t+1)=="+"?e>>>r:e<<r,e=A.charAt(t)=="+"?e+r&4294967295:e^r}return e},j9=new Map,Pp={TKK:j9.get("TKK")||"0"};async function nR(){let e=Math.floor(Date.now()/36e5);if(Number(Pp.TKK.split(".")[0])!==e){let a=(await(await(0,Z9.request)("https://translate.google.com")).body.text()).match(/tkk:'\d+.\d+'/g);if(a&&a.length>0){let r=a[0].split(":")[1].replace(/'/g,"");Pp.TKK=r,j9.set("TKK",r)}}}async function X9(e){try{await nR();let A=sR(e);return A=A.replace("&tk=",""),{name:"tk",value:A}}catch(A){return A}}async function z9(e,A){typeof A!="object"&&(A={}),e=String(e);let t=null;if([A.from,A.to].forEach(g=>{g&&!P9(g)&&(t=new Error,t.message=`The language '${g}' is not supported.`)}),t)throw t;Object.prototype.hasOwnProperty.call(A,"from")||(A.from="auto"),Object.prototype.hasOwnProperty.call(A,"to")||(A.to="en"),A.raw=!!A.raw,A.from=Ps(A.from),A.to=Ps(A.to);let a=await X9(e),r="https://translate.google.com/translate_a/single",i={client:"gtx",sl:A.from,tl:A.to,hl:A.to,dt:["at","bd","ex","ld","md","qca","rw","rm","ss","t"],ie:"UTF-8",oe:"UTF-8",otf:1,ssel:0,tsel:0,kc:7,q:e,[a.name]:a.value},s=`${r}?${Wp.default.stringify(i)}`,n,o=s;s.length>2048?(delete i.q,o=`${r}?${Wp.default.stringify(i)}`,n={method:"POST",body:new URLSearchParams({q:e}).toString(),headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"}},A.proxy&&(n.dispatcher=new Nr.ProxyAgent(A.proxy))):A.proxy&&(n={dispatcher:new Nr.ProxyAgent(A.proxy)});let l=await(await(0,Nr.request)(o,n)).body.json(),p={text:"",from:{language:{didYouMean:!1,iso:""},text:{autoCorrected:!1,value:"",didYouMean:!1}},raw:""};if(A.raw&&(p.raw=l),l[0].forEach(g=>{g[0]&&(p.text+=g[0])}),l[2]===l[8][0][0]?p.from.language.iso=l[2]:(p.from.language.didYouMean=!0,p.from.language.iso=l[8][0][0]),l[7]&&l[7][0]){let g=l[7][0];g=g.replace(/<b><i>/g,"["),g=g.replace(/<\/i><\/b>/g,"]"),p.from.text.value=g,l[7][5]===!0?p.from.text.autoCorrected=!0:p.from.text.didYouMean=!0}return p}var Zv=rt(L3());var h1="auto",gn=class extends Error{},jv=e=>e?.[0]?.[1]?.[2];async function U3(e,A){try{if(!e)return{originalText:e,translatedText:"",pronunciationText:"",langFrom:A.langFrom,langTo:A.langTo[0]};let t=await z9(e,{from:A.langFrom,to:A.langTo[0],raw:!0,proxy:A.proxy});return{originalText:e,translatedText:t.text,pronunciationText:jv(t?.raw),langFrom:t?.from?.language?.iso,langTo:A.langTo[0]}}catch(t){if(t instanceof Error){if(t.name==="TooManyRequestsError"){let r=new gn;throw r.name="Too many requests",r.message="please try again later",r}let a=new gn;throw a.name=t.name,a.message=t.message,a}throw t}}var T0=e=>({langFrom:e.langFrom,langTo:Array.isArray(e.langTo)?e.langTo:[e.langTo]}),Mr=()=>I1.default.useMemo(()=>(0,cn.getPreferenceValues)(),[]),T3=()=>{let e=Mr(),[A,t]=I1.default.useState(""),a=I1.default.useRef(A);return a.current=A,I1.default.useEffect(()=>{e.autoInput&&(0,cn.getSelectedText)().then(r=>{a.current||t(r??"")}).catch(r=>{console.log("Error:",r)})},[]),[A,t]},Vr=()=>{let e=Mr(),[A,t]=(0,M0.useCachedState)("selectedLanguageSet",T0({langFrom:e.lang1,langTo:e.lang2}));return[T0(A),t]},V0=()=>{let e=Mr();return{langFrom:e.lang1,langTo:[e.lang2]}},M3=(e,A)=>{let[t,a]=I1.default.useState(e);return I1.default.useEffect(()=>{let r=setTimeout(()=>{a(e)},A);return()=>{clearTimeout(r)}},[e,A]),t},Y0=()=>{let[e,A]=(0,M0.useCachedState)("languages",[]);return[e.map(T0),A]};var V3={"Auto-detect":{code:"auto",name:"Auto-detect",flag:"\u{1F310}"},Afrikaans:{code:"af",name:"Afrikaans",flag:"\u{1F1FF}\u{1F1E6}"},Albanian:{code:"sq",name:"Albanian",flag:"\u{1F1E6}\u{1F1F1}"},Amharic:{code:"am",name:"Amharic"},Arabic:{code:"ar",name:"Arabic"},Armenian:{code:"hy",name:"Armenian",flag:"\u{1F1E6}\u{1F1F2}"},Azerbaijani:{code:"az",name:"Azerbaijani",flag:"\u{1F1E6}\u{1F1FF}"},Basque:{code:"eu",name:"Basque"},Belarusian:{code:"be",name:"Belarusian",flag:"\u{1F1E7}\u{1F1FE}"},Bengali:{code:"bn",name:"Bengali"},Bosnian:{code:"bs",name:"Bosnian",flag:"\u{1F1E7}\u{1F1E6}"},Bulgarian:{code:"bg",name:"Bulgarian",flag:"\u{1F1E7}\u{1F1EC}"},Catalan:{code:"ca",name:"Catalan"},Cebuano:{code:"ceb",name:"Cebuano"},"Chinese Simplified":{code:"zh-CN",name:"Chinese Simplified",flag:"\u{1F1E8}\u{1F1F3}"},Mandarin:{code:"zh-TW",name:"Chinese Traditional"},Corsican:{code:"co",name:"Corsican"},Croatian:{code:"hr",name:"Croatian",flag:"\u{1F1ED}\u{1F1F7}"},Czech:{code:"cs",name:"Czech",flag:"\u{1F1E8}\u{1F1FF}"},Danish:{code:"da",name:"Danish",flag:"\u{1F1E9}\u{1F1F0}"},Dutch:{code:"nl",name:"Dutch",flag:"\u{1F1F3}\u{1F1F1}"},English:{code:"en",name:"English",flag:"\u{1F1EC}\u{1F1E7}"},Esperanto:{code:"eo",name:"Esperanto"},Estonian:{code:"et",name:"Estonian",flag:"\u{1F1EA}\u{1F1EA}"},Finnish:{code:"fi",name:"Finnish",flag:"\u{1F1EB}\u{1F1EE}"},French:{code:"fr",name:"French",flag:"\u{1F1EB}\u{1F1F7}"},Frisian:{code:"fy",name:"Frisian"},Galician:{code:"gl",name:"Galician"},Georgian:{code:"ka",name:"Georgian",flag:"\u{1F1EC}\u{1F1EA}"},German:{code:"de",name:"German",flag:"\u{1F1E9}\u{1F1EA}"},Greek:{code:"el",name:"Greek",flag:"\u{1F1EC}\u{1F1F7}"},Gujarati:{code:"gu",name:"Gujarati"},"Haitian Creole":{code:"ht",name:"Haitian Creole",flag:"\u{1F1ED}\u{1F1F9}"},Hausa:{code:"ha",name:"Hausa"},Hawaiian:{code:"haw",name:"Hawaiian",flag:"\u{1F33A}"},Hebrew:{code:"iw",name:"Hebrew",flag:"\u{1F1EE}\u{1F1F1}"},Hindi:{code:"hi",name:"Hindi",flag:"\u{1F1EE}\u{1F1F3}"},Hmong:{code:"hmn",name:"Hmong"},Hungarian:{code:"hu",name:"Hungarian",flag:"\u{1F1ED}\u{1F1FA}"},Icelandic:{code:"is",name:"Icelandic",flag:"\u{1F1EE}\u{1F1F8}"},Igbo:{code:"ig",name:"Igbo"},Indonesian:{code:"id",name:"Indonesian",flag:"\u{1F1EE}\u{1F1E9}"},Irish:{code:"ga",name:"Irish",flag:"\u{1F1EE}\u{1F1EA}"},Italian:{code:"it",name:"Italian",flag:"\u{1F1EE}\u{1F1F9}"},Japanese:{code:"ja",name:"Japanese",flag:"\u{1F1EF}\u{1F1F5}"},Javanese:{code:"jv",name:"Javanese"},Kannada:{code:"kn",name:"Kannada"},Kazakh:{code:"kk",name:"Kazakh",flag:"\u{1F1F0}\u{1F1FF}"},Khmer:{code:"km",name:"Khmer"},Kinyarwanda:{code:"rw",name:"Kinyarwanda"},Korean:{code:"ko",name:"Korean",flag:"\u{1F1F0}\u{1F1F7}"},Kurdish:{code:"ku",name:"Kurdish"},Kyrgyz:{code:"ky",name:"Kyrgyz"},Lao:{code:"lo",name:"Lao"},Latvian:{code:"lv",name:"Latvian",flag:"\u{1F1F1}\u{1F1FB}"},Lithuanian:{code:"lt",name:"Lithuanian",flag:"\u{1F1F1}\u{1F1F9}"},Luxembourgish:{code:"lb",name:"Luxembourgish",flag:"\u{1F1F1}\u{1F1FA}"},Latin:{code:"la",name:"Latin",flag:"\u{1F3DB}"},Macedonian:{code:"mk",name:"Macedonian",flag:"\u{1F1F2}\u{1F1F0}"},Malagasy:{code:"mg",name:"Malagasy"},Malay:{code:"ms",name:"Malay",flag:"\u{1F1F2}\u{1F1FE}"},Malayalam:{code:"ml",name:"Malayalam"},Maltese:{code:"mt",name:"Maltese",flag:"\u{1F1F2}\u{1F1F9}"},Maori:{code:"mi",name:"Maori",flag:"\u{1F1F3}\u{1F1FF}"},Marathi:{code:"mr",name:"Marathi"},Mongolian:{code:"mn",name:"Mongolian",flag:"\u{1F1F2}\u{1F1F3}"},"Myanmar (Burmese)":{code:"my",name:"Myanmar (Burmese)",flag:"\u{1F1F2}\u{1F1F2}"},Nepali:{code:"ne",name:"Nepali",flag:"\u{1F1F3}\u{1F1F5}"},Norwegian:{code:"no",name:"Norwegian",flag:"\u{1F1F3}\u{1F1F4}"},"Nyanja (Chichewa)":{code:"ny",name:"Nyanja (Chichewa)"},"Odia (Oriya)":{code:"or",name:"Odia (Oriya)"},Pashto:{code:"ps",name:"Pashto"},Persian:{code:"fa",name:"Persian",flag:"\u{1F1EE}\u{1F1F7}"},Polish:{code:"pl",name:"Polish",flag:"\u{1F1F5}\u{1F1F1}"},Portuguese:{code:"pt",name:"Portuguese",flag:"\u{1F1F5}\u{1F1F9}"},Punjabi:{code:"pa",name:"Punjabi",flag:"\u{1F1EE}\u{1F1F3}"},Romanian:{code:"ro",name:"Romanian",flag:"\u{1F1F7}\u{1F1F4}"},Russian:{code:"ru",name:"Russian",flag:"\u{1F1F7}\u{1F1FA}"},Samoan:{code:"sm",name:"Samoan"},"Scots Gaelic":{code:"gd",name:"Scots Gaelic",flag:"\u{1F3F4}\u{E0067}\u{E0062}\u{E0073}\u{E0063}\u{E0074}\u{E007F}"},Serbian:{code:"sr",name:"Serbian",flag:"\u{1F1F7}\u{1F1F8}"},Sesotho:{code:"st",name:"Sesotho"},Shona:{code:"sn",name:"Shona"},Sindhi:{code:"sd",name:"Sindhi"},"Sinhala (Sinhalese)":{code:"si",name:"Sinhala (Sinhalese)"},Slovak:{code:"sk",name:"Slovak",flag:"\u{1F1F8}\u{1F1F0}"},Slovenian:{code:"sl",name:"Slovenian",flag:"\u{1F1F8}\u{1F1EE}"},Somali:{code:"so",name:"Somali",flag:"\u{1F1F8}\u{1F1F4}"},Spanish:{code:"es",name:"Spanish",flag:"\u{1F1EA}\u{1F1F8}"},Sundanese:{code:"su",name:"Sundanese",flag:"\u{1F1F8}\u{1F1E9}"},Swahili:{code:"sw",name:"Swahili"},Swedish:{code:"sv",name:"Swedish",flag:"\u{1F1F8}\u{1F1EA}"},"Tagalog (Filipino)":{code:"tl",name:"Tagalog (Filipino)",flag:"\u{1F1F5}\u{1F1ED}"},Tajik:{code:"tg",name:"Tajik"},Tamil:{code:"ta",name:"Tamil"},Tatar:{code:"tt",name:"Tatar"},Telugu:{code:"te",name:"Telugu"},Thai:{code:"th",name:"Thai"},Turkish:{code:"tr",name:"Turkish",flag:"\u{1F1F9}\u{1F1F7}"},Turkmen:{code:"tk",name:"Turkmen",flag:"\u{1F1F9}\u{1F1F2}"},Ukrainian:{code:"uk",name:"Ukrainian",flag:"\u{1F1FA}\u{1F1E6}"},Urdu:{code:"ur",name:"Urdu"},Uyghur:{code:"ug",name:"Uyghur"},Uzbek:{code:"uz",name:"Uzbek"},Vietnamese:{code:"vi",name:"Vietnamese",flag:"\u{1F1FB}\u{1F1F3}"},Welsh:{code:"cy",name:"Welsh",flag:"\u{1F3F4}\u{E0067}\u{E0062}\u{E0077}\u{E006C}\u{E0073}\u{E007F}"},Xhosa:{code:"xh",name:"Xhosa"},Yiddish:{code:"yi",name:"Yiddish",flag:"\u{1F1EE}\u{1F1F1}"},Yoruba:{code:"yo",name:"Yoruba"},Zulu:{code:"zu",name:"Zulu"}};var Y3={auto:{code:"auto",name:"Auto-detect",flag:"\u{1F310}"},af:{code:"af",name:"Afrikaans",flag:"\u{1F1FF}\u{1F1E6}"},sq:{code:"sq",name:"Albanian",flag:"\u{1F1E6}\u{1F1F1}"},am:{code:"am",name:"Amharic"},ar:{code:"ar",name:"Arabic"},hy:{code:"hy",name:"Armenian",flag:"\u{1F1E6}\u{1F1F2}"},az:{code:"az",name:"Azerbaijani",flag:"\u{1F1E6}\u{1F1FF}"},eu:{code:"eu",name:"Basque"},be:{code:"be",name:"Belarusian",flag:"\u{1F1E7}\u{1F1FE}"},bn:{code:"bn",name:"Bengali"},bs:{code:"bs",name:"Bosnian",flag:"\u{1F1E7}\u{1F1E6}"},bg:{code:"bg",name:"Bulgarian",flag:"\u{1F1E7}\u{1F1EC}"},ca:{code:"ca",name:"Catalan"},ceb:{code:"ceb",name:"Cebuano"},"zh-CN":{code:"zh-CN",name:"Chinese Simplified",flag:"\u{1F1E8}\u{1F1F3}"},"zh-TW":{code:"zh-TW",name:"Chinese Traditional"},co:{code:"co",name:"Corsican"},hr:{code:"hr",name:"Croatian",flag:"\u{1F1ED}\u{1F1F7}"},cs:{code:"cs",name:"Czech",flag:"\u{1F1E8}\u{1F1FF}"},da:{code:"da",name:"Danish",flag:"\u{1F1E9}\u{1F1F0}"},nl:{code:"nl",name:"Dutch",flag:"\u{1F1F3}\u{1F1F1}"},en:{code:"en",name:"English",flag:"\u{1F1EC}\u{1F1E7}"},eo:{code:"eo",name:"Esperanto"},et:{code:"et",name:"Estonian",flag:"\u{1F1EA}\u{1F1EA}"},fi:{code:"fi",name:"Finnish",flag:"\u{1F1EB}\u{1F1EE}"},fr:{code:"fr",name:"French",flag:"\u{1F1EB}\u{1F1F7}"},fy:{code:"fy",name:"Frisian"},gl:{code:"gl",name:"Galician"},ka:{code:"ka",name:"Georgian",flag:"\u{1F1EC}\u{1F1EA}"},de:{code:"de",name:"German",flag:"\u{1F1E9}\u{1F1EA}"},el:{code:"el",name:"Greek",flag:"\u{1F1EC}\u{1F1F7}"},gu:{code:"gu",name:"Gujarati"},ht:{code:"ht",name:"Haitian Creole",flag:"\u{1F1ED}\u{1F1F9}"},ha:{code:"ha",name:"Hausa"},haw:{code:"haw",name:"Hawaiian",flag:"\u{1F33A}"},iw:{code:"iw",name:"Hebrew",flag:"\u{1F1EE}\u{1F1F1}"},hi:{code:"hi",name:"Hindi",flag:"\u{1F1EE}\u{1F1F3}"},hmn:{code:"hmn",name:"Hmong"},hu:{code:"hu",name:"Hungarian",flag:"\u{1F1ED}\u{1F1FA}"},is:{code:"is",name:"Icelandic",flag:"\u{1F1EE}\u{1F1F8}"},ig:{code:"ig",name:"Igbo"},id:{code:"id",name:"Indonesian",flag:"\u{1F1EE}\u{1F1E9}"},ga:{code:"ga",name:"Irish",flag:"\u{1F1EE}\u{1F1EA}"},it:{code:"it",name:"Italian",flag:"\u{1F1EE}\u{1F1F9}"},ja:{code:"ja",name:"Japanese",flag:"\u{1F1EF}\u{1F1F5}"},jv:{code:"jv",name:"Javanese"},kn:{code:"kn",name:"Kannada"},kk:{code:"kk",name:"Kazakh",flag:"\u{1F1F0}\u{1F1FF}"},km:{code:"km",name:"Khmer"},rw:{code:"rw",name:"Kinyarwanda"},ko:{code:"ko",name:"Korean",flag:"\u{1F1F0}\u{1F1F7}"},ku:{code:"ku",name:"Kurdish"},ky:{code:"ky",name:"Kyrgyz"},lo:{code:"lo",name:"Lao"},lv:{code:"lv",name:"Latvian",flag:"\u{1F1F1}\u{1F1FB}"},lt:{code:"lt",name:"Lithuanian",flag:"\u{1F1F1}\u{1F1F9}"},lb:{code:"lb",name:"Luxembourgish",flag:"\u{1F1F1}\u{1F1FA}"},la:{code:"la",name:"Latin",flag:"\u{1F3DB}"},mk:{code:"mk",name:"Macedonian",flag:"\u{1F1F2}\u{1F1F0}"},mg:{code:"mg",name:"Malagasy"},ms:{code:"ms",name:"Malay",flag:"\u{1F1F2}\u{1F1FE}"},ml:{code:"ml",name:"Malayalam"},mt:{code:"mt",name:"Maltese",flag:"\u{1F1F2}\u{1F1F9}"},mi:{code:"mi",name:"Maori",flag:"\u{1F1F3}\u{1F1FF}"},mr:{code:"mr",name:"Marathi"},mn:{code:"mn",name:"Mongolian",flag:"\u{1F1F2}\u{1F1F3}"},my:{code:"my",name:"Myanmar (Burmese)",flag:"\u{1F1F2}\u{1F1F2}"},ne:{code:"ne",name:"Nepali",flag:"\u{1F1F3}\u{1F1F5}"},no:{code:"no",name:"Norwegian",flag:"\u{1F1F3}\u{1F1F4}"},ny:{code:"ny",name:"Nyanja (Chichewa)"},or:{code:"or",name:"Odia (Oriya)"},ps:{code:"ps",name:"Pashto"},fa:{code:"fa",name:"Persian",flag:"\u{1F1EE}\u{1F1F7}"},pl:{code:"pl",name:"Polish",flag:"\u{1F1F5}\u{1F1F1}"},pt:{code:"pt",name:"Portuguese",flag:"\u{1F1F5}\u{1F1F9}"},pa:{code:"pa",name:"Punjabi",flag:"\u{1F1EE}\u{1F1F3}"},ro:{code:"ro",name:"Romanian",flag:"\u{1F1F7}\u{1F1F4}"},ru:{code:"ru",name:"Russian",flag:"\u{1F1F7}\u{1F1FA}"},sm:{code:"sm",name:"Samoan"},gd:{code:"gd",name:"Scots Gaelic",flag:"\u{1F3F4}\u{E0067}\u{E0062}\u{E0073}\u{E0063}\u{E0074}\u{E007F}"},sr:{code:"sr",name:"Serbian",flag:"\u{1F1F7}\u{1F1F8}"},st:{code:"st",name:"Sesotho"},sn:{code:"sn",name:"Shona"},sd:{code:"sd",name:"Sindhi"},si:{code:"si",name:"Sinhala (Sinhalese)"},sk:{code:"sk",name:"Slovak",flag:"\u{1F1F8}\u{1F1F0}"},sl:{code:"sl",name:"Slovenian",flag:"\u{1F1F8}\u{1F1EE}"},so:{code:"so",name:"Somali",flag:"\u{1F1F8}\u{1F1F4}"},es:{code:"es",name:"Spanish",flag:"\u{1F1EA}\u{1F1F8}"},su:{code:"su",name:"Sundanese",flag:"\u{1F1F8}\u{1F1E9}"},sw:{code:"sw",name:"Swahili"},sv:{code:"sv",name:"Swedish",flag:"\u{1F1F8}\u{1F1EA}"},tl:{code:"tl",name:"Tagalog (Filipino)",flag:"\u{1F1F5}\u{1F1ED}"},tg:{code:"tg",name:"Tajik"},ta:{code:"ta",name:"Tamil"},tt:{code:"tt",name:"Tatar"},te:{code:"te",name:"Telugu"},th:{code:"th",name:"Thai"},tr:{code:"tr",name:"Turkish",flag:"\u{1F1F9}\u{1F1F7}"},tk:{code:"tk",name:"Turkmen",flag:"\u{1F1F9}\u{1F1F2}"},uk:{code:"uk",name:"Ukrainian",flag:"\u{1F1FA}\u{1F1E6}"},ur:{code:"ur",name:"Urdu"},ug:{code:"ug",name:"Uyghur"},uz:{code:"uz",name:"Uzbek"},vi:{code:"vi",name:"Vietnamese",flag:"\u{1F1FB}\u{1F1F3}"},cy:{code:"cy",name:"Welsh",flag:"\u{1F3F4}\u{E0067}\u{E0062}\u{E0077}\u{E006C}\u{E0073}\u{E007F}"},xh:{code:"xh",name:"Xhosa"},yi:{code:"yi",name:"Yiddish",flag:"\u{1F1EE}\u{1F1F1}"},yo:{code:"yo",name:"Yoruba"},zu:{code:"zu",name:"Zulu"}};var Ee=(e,A="\u{1F3F3}\uFE0F")=>e?.flag??A;var f1=Y3,Kv=V3,ft=Object.values(Kv);var _=require("@raycast/api");var J3=rt(require("react")),Se=require("@raycast/api");var EA=require("react/jsx-runtime"),G3=({onAddLanguage:e})=>{let[A,t]=J3.default.useState(["en"]);return(0,EA.jsxs)(Se.Form,{actions:(0,EA.jsx)(Se.ActionPanel,{children:(0,EA.jsx)(Se.Action.SubmitForm,{title:"Add language set",onSubmit:a=>{let r=A.filter(i=>!!i);if(!r.length){(0,Se.showToast)({style:Se.Toast.Style.Failure,title:"No target languages",message:"Please select at least one target language"});return}e({langFrom:a.langFrom,langTo:r})}})}),children:[(0,EA.jsx)(Se.Form.Dropdown,{id:"langFrom",title:"Source Language",children:ft.map(a=>(0,EA.jsx)(Se.Form.Dropdown.Item,{value:a.code,title:a.name,icon:Ee(a)},a.code))}),A.map((a,r)=>{let i=A[r];return(0,EA.jsxs)(Se.Form.Dropdown,{id:`langTo.${r}`,title:`Target Language ${r+1}`,value:i,onChange:s=>{let n=[...A];n[r]=s,t(n)},children:[!i&&(0,EA.jsx)(Se.Form.Dropdown.Item,{value:"",title:""}),ft.filter(s=>s.code!==h1).map(s=>(0,EA.jsx)(Se.Form.Dropdown.Item,{value:s.code,title:s.name,icon:Ee(s)},s.code))]},r)}),(!!A[A.length-1]||A.length===0)&&(0,EA.jsxs)(Se.Form.Dropdown,{id:`langTo.${A.length}`,title:`Target Language ${A.length}`,value:"",onChange:a=>{let r=[...A];r.push(a),t(r)},children:[(0,EA.jsx)(Se.Form.Dropdown.Item,{value:"",title:""}),ft.filter(a=>a.code!==h1).map(a=>(0,EA.jsx)(Se.Form.Dropdown.Item,{value:a.code,title:a.name,icon:Ee(a)},a.code))]},A.length)]})};var Na=(e,A)=>e.langFrom===A.langFrom&&e.langTo.join()===A.langTo.join(),J0=e=>({langFrom:f1[e.langFrom],langTo:e.langTo.map(A=>f1[A])}),Yr=e=>{let{langFrom:A,langTo:t}=J0(e),r=(Array.isArray(t)?t:[t]).map(i=>`${Ee(i)} ${i.name}`);return`${A.name} ${Ee(A)} -> ${r.join(", ")}`};var we=require("react/jsx-runtime");function x3({languageSet:e,onSelect:A,onDelete:t,selected:a}){let{langFrom:r,langTo:i}=J0(e),s=Array.isArray(i)?i:[i],n=s.map(d=>Ee(d)).join(" "),o=s.map(d=>d.name).join(", ");return(0,we.jsx)(_.List.Item,{subtitle:`${Ee(r)} -> ${n}`,title:`${r.name} -> ${o}`,keywords:[r.name,r.code,...s.flatMap(d=>[d.name,d.code])],icon:a?{tintColor:_.Color.Green,source:_.Icon.Checkmark}:void 0,actions:(0,we.jsxs)(_.ActionPanel,{children:[(0,we.jsx)(_.Action,{title:"Select",onAction:A,icon:{tintColor:_.Color.Green,source:_.Icon.Checkmark}}),t&&(0,we.jsx)(_.Action,{style:_.Action.Style.Destructive,title:"Delete",onAction:t,icon:_.Icon.Trash})]})})}var $v=({languageSet:e,onSelect:A})=>(0,we.jsx)(_.List.Item,{icon:_.Icon.SaveDocument,title:"Save current set",subtitle:Yr(e),actions:(0,we.jsx)(_.ActionPanel,{children:(0,we.jsx)(_.Action,{title:"Save current set",onAction:A})})}),G0=()=>{let e=(0,_.useNavigation)(),A=V0(),[t,a]=Vr(),[r,i]=Y0();return(0,we.jsxs)(_.List,{actions:(0,we.jsx)(_.ActionPanel,{children:(0,we.jsx)(_.Action,{title:"Remove all",onAction:()=>i([])})}),children:[(0,we.jsx)(_.List.Item,{icon:{source:_.Icon.Plus},title:"Add new language set...",actions:(0,we.jsx)(_.ActionPanel,{children:(0,we.jsx)(_.Action.Push,{title:"Add new language set...",target:(0,we.jsx)(G3,{onAddLanguage:s=>{i([...r,s]),e.pop(),(0,_.showToast)(_.Toast.Style.Success,"Language set was saved!",Yr(s))}})})})}),!r.some(s=>Na(s,t))&&!Na(A,t)&&(0,we.jsx)($v,{languageSet:t,onSelect:()=>i([...r,t])}),(0,we.jsx)(x3,{languageSet:A,onSelect:()=>{a(A),e.pop()},selected:Na(t,A)}),r.map(s=>(0,we.jsx)(x3,{selected:Na(t,s),languageSet:s,onSelect:()=>{a(s),e.pop()},onDelete:()=>{i(r.filter(n=>!Na(n,s))),(0,_.showToast)(_.Toast.Style.Success,"Language set was deleted!",Yr(s))}},`${s.langFrom} ${s.langTo}`))]})};var x0=require("@raycast/api");var _3=require("react/jsx-runtime");var w1=require("@raycast/api"),at=require("react/jsx-runtime"),q3=({defaultActionsPrefix:e,value:A})=>{let t=(0,w1.getPreferenceValues)().defaultAction,a=(0,at.jsx)(w1.Action.Paste,{title:e?`Paste ${e}`:"Paste",content:A}),r=(0,at.jsx)(w1.Action.CopyToClipboard,{title:e?`Copy ${e}`:"Copy",content:A});return t==="paste"?(0,at.jsxs)(at.Fragment,{children:[a,r]}):(0,at.jsxs)(at.Fragment,{children:[r,a]})};var H3=({translationText:e,translation:A})=>(0,at.jsx)(w1.Action.OpenInBrowser,{title:"Open in Google Translate",shortcut:{modifiers:["opt"],key:"enter"},url:"https://translate.google.com/?sl="+A.langFrom+"&tl="+A.langTo+"&text="+encodeURIComponent(e)+"&op=translate"});var ee=require("react/jsx-runtime");function W3(){let[e,A]=Vr(),t=e.langFrom,a=Array.isArray(e.langTo)?e.langTo[0]:e.langTo,{proxy:r}=Mr(),i=Q=>A({...e,langFrom:Q}),s=Q=>A({...e,langTo:[Q]}),n=f1[t],o=f1[a],[d,l]=T3(),p=M3(d,500),{data:g,isLoading:c}=(0,P3.usePromise)(U3,[p,{langFrom:n.code,langTo:[o.code],proxy:r}],{onError(Q){(0,H.showToast)({style:H.Toast.Style.Failure,title:Q.name,message:Q.message})}}),u=Q=>{Q.length>5e3?(l(Q.slice(0,5e3)),(0,H.showToast)({style:H.Toast.Style.Failure,title:"Limit",message:"Max length (5000 chars) for a single translation exceeded"})):l(Q)},m=O3.default.useMemo(()=>t===h1&&g?f1[g.langFrom]:null,[g,t]);return(0,ee.jsxs)(H.Form,{isLoading:c,actions:(0,ee.jsxs)(H.ActionPanel,{children:[(0,ee.jsxs)(H.ActionPanel.Section,{title:"Generals",children:[(0,ee.jsx)(q3,{defaultActionsPrefix:"Translated",value:g?.translatedText??""}),(0,ee.jsx)(H.Action.CopyToClipboard,{title:"Copy Text",content:d??""}),(0,ee.jsx)(H.Action.CopyToClipboard,{title:"Copy Pronunciation",shortcut:{modifiers:["cmd","shift"],key:"p"},content:g?.pronunciationText??""}),(0,ee.jsx)(H3,{translationText:d,translation:{langFrom:t,langTo:a}}),(0,ee.jsx)(H.Action.Push,{icon:H.Icon.Pencil,title:"Manage language sets...",shortcut:{modifiers:["cmd"],key:"l"},target:(0,ee.jsx)(G0,{})})]}),(0,ee.jsxs)(H.ActionPanel.Section,{title:"Settings",children:[(0,ee.jsx)(H.Action,{shortcut:{modifiers:["cmd","shift"],key:"s"},onAction:()=>{A({langFrom:a,langTo:[t]})},title:`${Ee(o,o?.code)} <-> ${Ee(n,n?.code)} Switch Languages`}),(0,ee.jsxs)(H.ActionPanel.Submenu,{shortcut:{modifiers:["cmd"],key:"s"},title:"Change Languages",icon:Ee(n),children:[(0,ee.jsx)(H.ActionPanel.Submenu,{shortcut:{modifiers:["cmd","shift"],key:"f"},title:"Change From Language",icon:Ee(n),children:ft.map(Q=>(0,ee.jsx)(H.Action,{onAction:()=>i(Q.code),title:Q.name,icon:Ee(Q)},Q.code))}),(0,ee.jsx)(H.ActionPanel.Submenu,{shortcut:{modifiers:["cmd","shift"],key:"t"},title:"Change To Language",icon:Ee(o),children:ft.map(Q=>(0,ee.jsx)(H.Action,{onAction:()=>s(Q.code),title:Q.name,icon:Ee(Q)},Q.code))})]})]})]}),children:[(0,ee.jsx)(H.Form.TextArea,{id:"text",title:"Text",value:d,onChange:u}),(0,ee.jsxs)(H.Form.Dropdown,{id:"language_from",title:"From",value:m?.code??t,onChange:Q=>i(Q),storeValue:!0,children:[m&&(0,ee.jsx)(H.Form.Dropdown.Item,{value:m.code,title:`${m.name} (Auto-detect)`,icon:Ee(m)}),ft.map(Q=>(0,ee.jsx)(H.Form.Dropdown.Item,{value:Q.code,title:Q.name,icon:Ee(Q)},Q.code))]}),(0,ee.jsx)(H.Form.Dropdown,{id:"language_to",title:"To",value:a,onChange:Q=>s(Q),storeValue:!0,children:ft.filter(Q=>Q.code!==h1).map(Q=>(0,ee.jsx)(H.Form.Dropdown.Item,{value:Q.code,title:Q.name,icon:Ee(Q)},Q.code))}),(0,ee.jsx)(H.Form.TextArea,{id:"result",title:"Translation",value:g?.translatedText??"",placeholder:"Translation"}),(0,ee.jsx)(H.Form.Description,{title:"Pronunciation",text:g?.pronunciationText??""})]})} /*! Bundled license information: media-typer/index.js: diff --git a/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/translate-form.js.map b/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/translate-form.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../node_modules/dequal/lite/index.js", "../node_modules/@raycast/utils/dist/useDeepMemo.js", "../node_modules/@raycast/utils/dist/useLatest.js", "../node_modules/@raycast/utils/dist/handle-error-toast-action.js", "../node_modules/@raycast/utils/dist/usePromise.js", "../node_modules/@raycast/utils/dist/useCachedState.js", "../node_modules/object-hash/index.js", "../node_modules/@raycast/utils/dist/useCachedPromise.js", "../node_modules/media-typer/index.js", "../node_modules/content-type/index.js", "../node_modules/webidl-conversions/lib/index.js", "../node_modules/whatwg-url/lib/utils.js", "../node_modules/tr46/lib/mappingTable.json", "../node_modules/tr46/index.js", "../node_modules/whatwg-url/lib/url-state-machine.js", "../node_modules/whatwg-url/lib/URL-impl.js", "../node_modules/whatwg-url/lib/URL.js", "../node_modules/whatwg-url/lib/public-api.js", "../node_modules/node-fetch/lib/index.js", "../node_modules/cross-fetch/dist/node-ponyfill.js", "../node_modules/@raycast/utils/dist/useFetch.js", "../node_modules/signal-exit/src/signals.ts", "../node_modules/signal-exit/src/index.ts", "../node_modules/@raycast/utils/dist/exec-utils.js", "../node_modules/@raycast/utils/dist/useExec.js", "../node_modules/@raycast/utils/dist/useSQL.js", "../node_modules/@raycast/utils/dist/useForm.js", "../node_modules/@raycast/utils/dist/useAI.js", "../node_modules/@raycast/utils/dist/useFrecencySorting.js", "../node_modules/@raycast/utils/dist/icon/color.js", "../node_modules/@raycast/utils/dist/icon/avatar.js", "../node_modules/@raycast/utils/dist/icon/favicon.js", "../node_modules/@raycast/utils/dist/icon/progress.js", "../node_modules/@raycast/utils/dist/icon/index.js", "../node_modules/@raycast/utils/dist/run-applescript.js", "../node_modules/@raycast/utils/dist/index.js", "../node_modules/undici/lib/core/symbols.js", "../node_modules/undici/lib/core/errors.js", "../node_modules/undici/lib/core/util.js", "../node_modules/undici/lib/timers.js", "../node_modules/busboy/lib/utils.js", "../node_modules/streamsearch/lib/sbmh.js", "../node_modules/busboy/lib/types/multipart.js", "../node_modules/busboy/lib/types/urlencoded.js", "../node_modules/busboy/lib/index.js", "../node_modules/undici/lib/fetch/constants.js", "../node_modules/undici/lib/fetch/global.js", "../node_modules/undici/lib/fetch/util.js", "../node_modules/undici/lib/fetch/symbols.js", "../node_modules/undici/lib/fetch/webidl.js", "../node_modules/undici/lib/fetch/dataURL.js", "../node_modules/undici/lib/fetch/file.js", "../node_modules/undici/lib/fetch/formdata.js", "../node_modules/undici/lib/fetch/body.js", "../node_modules/undici/lib/core/request.js", "../node_modules/undici/lib/dispatcher.js", "../node_modules/undici/lib/dispatcher-base.js", "../node_modules/undici/lib/core/connect.js", "../node_modules/undici/src/llhttp/utils.ts", "../node_modules/undici/src/llhttp/constants.ts", "../node_modules/undici/lib/handler/RedirectHandler.js", "../node_modules/undici/lib/interceptor/redirectInterceptor.js", "../node_modules/undici/lib/llhttp/llhttp-wasm.js", "../node_modules/undici/lib/llhttp/llhttp_simd-wasm.js", "../node_modules/undici/lib/client.js", "../node_modules/undici/lib/node/fixed-queue.js", "../node_modules/undici/lib/pool-stats.js", "../node_modules/undici/lib/pool-base.js", "../node_modules/undici/lib/pool.js", "../node_modules/undici/lib/balanced-pool.js", "../node_modules/undici/lib/compat/dispatcher-weakref.js", "../node_modules/undici/lib/agent.js", "../node_modules/undici/lib/api/readable.js", "../node_modules/undici/lib/api/util.js", "../node_modules/undici/lib/api/abort-signal.js", "../node_modules/undici/lib/api/api-request.js", "../node_modules/undici/lib/api/api-stream.js", "../node_modules/undici/lib/api/api-pipeline.js", "../node_modules/undici/lib/api/api-upgrade.js", "../node_modules/undici/lib/api/api-connect.js", "../node_modules/undici/lib/api/index.js", "../node_modules/undici/lib/mock/mock-errors.js", "../node_modules/undici/lib/mock/mock-symbols.js", "../node_modules/undici/lib/mock/mock-utils.js", "../node_modules/undici/lib/mock/mock-interceptor.js", "../node_modules/undici/lib/mock/mock-client.js", "../node_modules/undici/lib/mock/mock-pool.js", "../node_modules/undici/lib/mock/pluralizer.js", "../node_modules/undici/lib/mock/pending-interceptors-formatter.js", "../node_modules/undici/lib/mock/mock-agent.js", "../node_modules/undici/lib/proxy-agent.js", "../node_modules/undici/lib/global.js", "../node_modules/undici/lib/handler/DecoratorHandler.js", "../node_modules/undici/lib/fetch/headers.js", "../node_modules/undici/lib/fetch/response.js", "../node_modules/undici/lib/fetch/request.js", "../node_modules/undici/lib/fetch/index.js", "../node_modules/undici/lib/fileapi/symbols.js", "../node_modules/undici/lib/fileapi/progressevent.js", "../node_modules/undici/lib/fileapi/encoding.js", "../node_modules/undici/lib/fileapi/util.js", "../node_modules/undici/lib/fileapi/filereader.js", "../node_modules/undici/lib/cache/symbols.js", "../node_modules/undici/lib/cache/util.js", "../node_modules/undici/lib/cache/cache.js", "../node_modules/undici/lib/cache/cachestorage.js", "../node_modules/undici/lib/cookies/constants.js", "../node_modules/undici/lib/cookies/util.js", "../node_modules/undici/lib/cookies/parse.js", "../node_modules/undici/lib/cookies/index.js", "../node_modules/undici/lib/websocket/constants.js", "../node_modules/undici/lib/websocket/symbols.js", "../node_modules/undici/lib/websocket/events.js", "../node_modules/undici/lib/websocket/util.js", "../node_modules/undici/lib/websocket/connection.js", "../node_modules/undici/lib/websocket/frame.js", "../node_modules/undici/lib/websocket/receiver.js", "../node_modules/undici/lib/websocket/websocket.js", "../node_modules/undici/index.js", "../node_modules/google-tts-api/src/assertInputTypes.ts", "../node_modules/google-tts-api/src/splitLongText.ts", "../node_modules/google-tts-api/src/getAudioUrl.ts", "../node_modules/axios/lib/helpers/bind.js", "../node_modules/axios/lib/utils.js", "../node_modules/axios/lib/helpers/buildURL.js", "../node_modules/axios/lib/core/InterceptorManager.js", "../node_modules/axios/lib/helpers/normalizeHeaderName.js", "../node_modules/axios/lib/core/enhanceError.js", "../node_modules/axios/lib/core/createError.js", "../node_modules/axios/lib/core/settle.js", "../node_modules/axios/lib/helpers/cookies.js", "../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../node_modules/axios/lib/helpers/combineURLs.js", "../node_modules/axios/lib/core/buildFullPath.js", "../node_modules/axios/lib/helpers/parseHeaders.js", "../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../node_modules/axios/lib/adapters/xhr.js", "../node_modules/ms/index.js", "../node_modules/debug/src/common.js", "../node_modules/debug/src/browser.js", "../node_modules/has-flag/index.js", "../node_modules/supports-color/index.js", "../node_modules/debug/src/node.js", "../node_modules/debug/src/index.js", "../node_modules/follow-redirects/debug.js", "../node_modules/follow-redirects/index.js", "../node_modules/axios/package.json", "../node_modules/axios/lib/adapters/http.js", "../node_modules/axios/lib/defaults.js", "../node_modules/axios/lib/core/transformData.js", "../node_modules/axios/lib/cancel/isCancel.js", "../node_modules/axios/lib/core/dispatchRequest.js", "../node_modules/axios/lib/core/mergeConfig.js", "../node_modules/axios/lib/helpers/validator.js", "../node_modules/axios/lib/core/Axios.js", "../node_modules/axios/lib/cancel/Cancel.js", "../node_modules/axios/lib/cancel/CancelToken.js", "../node_modules/axios/lib/helpers/spread.js", "../node_modules/axios/lib/helpers/isAxiosError.js", "../node_modules/axios/lib/axios.js", "../node_modules/axios/index.js", "../node_modules/google-tts-api/src/getAudioBase64.ts", "../node_modules/google-tts-api/src/index.ts", "../node_modules/agent-base/src/helpers.ts", "../node_modules/agent-base/src/index.ts", "../node_modules/https-proxy-agent/src/parse-proxy-response.ts", "../node_modules/https-proxy-agent/src/index.ts", "../src/translate-form.tsx", "../src/hooks.ts", "../vendor/@iamtraction-translate/src/index.ts", "../vendor/@iamtraction-translate/src/languages.ts", "../vendor/@iamtraction-translate/src/tokenGenerator.ts", "../src/simple-translate.ts", "../src/languages.ts", "../src/LanguagesManager/LanguagesManagerList.tsx", "../src/LanguagesManager/AddLanguageForm.tsx", "../src/utils.ts", "../src/LanguagesManager/LanguagesManagerListDropdown.tsx", "../src/actions.tsx"], - "sourcesContent": ["var has = Object.prototype.hasOwnProperty;\n\nfunction dequal(foo, bar) {\n\tvar ctor, len;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n\nexports.dequal = dequal;", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useDeepMemo = void 0;\nconst react_1 = require(\"react\");\nconst lite_1 = require(\"dequal/lite\");\n/**\n * @param value the value to be memoized (usually a dependency list)\n * @returns a memoized version of the value as long as it remains deeply equal\n */\nfunction useDeepMemo(value) {\n const ref = (0, react_1.useRef)(value);\n const signalRef = (0, react_1.useRef)(0);\n if (!(0, lite_1.dequal)(value, ref.current)) {\n ref.current = value;\n signalRef.current += 1;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return (0, react_1.useMemo)(() => ref.current, [signalRef.current]);\n}\nexports.useDeepMemo = useDeepMemo;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useLatest = void 0;\nconst react_1 = require(\"react\");\n/**\n * Returns the latest state.\n *\n * This is mostly useful to get access to the latest value of some props or state inside an asynchronous callback, instead of that value at the time the callback was created from.\n */\nfunction useLatest(value) {\n const ref = (0, react_1.useRef)(value);\n ref.current = value;\n return ref;\n}\nexports.useLatest = useLatest;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.handleErrorToastAction = void 0;\nconst fs = __importStar(require(\"fs\"));\nconst path = __importStar(require(\"path\"));\nconst api_1 = require(\"@raycast/api\");\nconst handleErrorToastAction = (error) => {\n let privateExtension = true;\n let title = \"[Extension Name]...\";\n let extensionURL = \"\";\n try {\n const packageJSON = JSON.parse(fs.readFileSync(path.join(api_1.environment.assetsPath, \"..\", \"package.json\"), \"utf8\"));\n title = `[${packageJSON.title}]...`;\n extensionURL = `https://raycast.com/${packageJSON.owner || packageJSON.author}/${packageJSON.name}`;\n if (!packageJSON.owner || packageJSON.access === \"public\") {\n privateExtension = false;\n }\n }\n catch (err) {\n // no-op\n }\n // if it's a private extension, we can't construct the URL to report the error\n // so we fallback to copying the error to the clipboard\n const fallback = api_1.environment.isDevelopment || privateExtension;\n return {\n title: fallback ? \"Copy Logs\" : \"Report Error\",\n onAction(toast) {\n toast.hide();\n if (fallback) {\n api_1.Clipboard.copy(error?.stack || error?.message || \"\");\n }\n else {\n (0, api_1.open)(`https://github.com/raycast/extensions/issues/new?&labels=extension%2Cbug&template=extension_bug_report.yml&title=${encodeURIComponent(title)}&extension-url=${encodeURI(extensionURL)}&description=${encodeURIComponent(`#### Error:\n\\`\\`\\`\n${error?.stack || error?.message || \"\"}\n\\`\\`\\`\n`)}`);\n }\n },\n };\n};\nexports.handleErrorToastAction = handleErrorToastAction;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.usePromise = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst useDeepMemo_1 = require(\"./useDeepMemo\");\nconst useLatest_1 = require(\"./useLatest\");\nconst handle_error_toast_action_1 = require(\"./handle-error-toast-action\");\nfunction usePromise(fn, args, options) {\n const lastCallId = (0, react_1.useRef)(0);\n const [state, set] = (0, react_1.useState)({ isLoading: true });\n const fnRef = (0, useLatest_1.useLatest)(fn);\n const latestAbortable = (0, useLatest_1.useLatest)(options?.abortable);\n const latestArgs = (0, useLatest_1.useLatest)(args || []);\n const latestOnError = (0, useLatest_1.useLatest)(options?.onError);\n const latestOnData = (0, useLatest_1.useLatest)(options?.onData);\n const latestOnWillExecute = (0, useLatest_1.useLatest)(options?.onWillExecute);\n const latestValue = (0, useLatest_1.useLatest)(state.data);\n const latestCallback = (0, react_1.useRef)();\n const callback = (0, react_1.useCallback)((...args) => {\n const callId = ++lastCallId.current;\n if (latestAbortable.current) {\n latestAbortable.current.current?.abort();\n latestAbortable.current.current = new AbortController();\n }\n latestOnWillExecute.current?.(args);\n set((prevState) => ({ ...prevState, isLoading: true }));\n return bindPromiseIfNeeded(fnRef.current)(...args).then((data) => {\n if (callId === lastCallId.current) {\n if (latestOnData.current) {\n latestOnData.current(data);\n }\n set({ data, isLoading: false });\n }\n return data;\n }, (error) => {\n if (error.name == \"AbortError\") {\n return error;\n }\n if (callId === lastCallId.current) {\n // handle errors\n if (latestOnError.current) {\n latestOnError.current(error);\n }\n else {\n console.error(error);\n if (api_1.environment.launchType !== api_1.LaunchType.Background) {\n (0, api_1.showToast)({\n style: api_1.Toast.Style.Failure,\n title: \"Failed to fetch latest data\",\n message: error.message,\n primaryAction: {\n title: \"Retry\",\n onAction(toast) {\n toast.hide();\n latestCallback.current?.(...(latestArgs.current || []));\n },\n },\n secondaryAction: (0, handle_error_toast_action_1.handleErrorToastAction)(error),\n });\n }\n }\n set({ error, isLoading: false });\n }\n return error;\n });\n }, [latestAbortable, latestOnData, latestOnError, latestArgs, fnRef, set, latestCallback, latestOnWillExecute]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n );\n latestCallback.current = callback;\n const revalidate = (0, react_1.useCallback)(() => {\n return callback(...(latestArgs.current || []));\n }, [callback, latestArgs]);\n const mutate = (0, react_1.useCallback)(async (asyncUpdate, options) => {\n let dataBeforeOptimisticUpdate;\n try {\n if (options?.optimisticUpdate) {\n if (typeof options?.rollbackOnError !== \"function\" && options?.rollbackOnError !== false) {\n // keep track of the data before the optimistic update,\n // but only if we need it (eg. only when we want to automatically rollback after)\n dataBeforeOptimisticUpdate = structuredClone(latestValue.current?.value);\n }\n const update = options.optimisticUpdate;\n set((prevState) => ({ ...prevState, data: update(prevState.data) }));\n }\n return await asyncUpdate;\n }\n catch (err) {\n if (typeof options?.rollbackOnError === \"function\") {\n const update = options.rollbackOnError;\n set((prevState) => ({ ...prevState, data: update(prevState.data) }));\n }\n else if (options?.optimisticUpdate && options?.rollbackOnError !== false) {\n set((prevState) => ({ ...prevState, data: dataBeforeOptimisticUpdate }));\n }\n throw err;\n }\n finally {\n if (options?.shouldRevalidateAfter !== false) {\n if (api_1.environment.launchType === api_1.LaunchType.Background || api_1.environment.commandMode === \"menu-bar\") {\n // when in the background or in a menu bar, we are going to await the revalidation\n // to make sure we get the right data at the end of the mutation\n await revalidate();\n }\n else {\n revalidate();\n }\n }\n }\n }, [revalidate, latestValue, set]);\n // revalidate when the args change\n (0, react_1.useEffect)(() => {\n if (options?.execute !== false) {\n callback(...(args || []));\n }\n else {\n // cancel the previous request if we don't want to execute anymore\n if (latestAbortable.current) {\n latestAbortable.current.current?.abort();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(0, useDeepMemo_1.useDeepMemo)([args, options?.execute, callback]), latestAbortable]);\n // abort request when unmounting\n (0, react_1.useEffect)(() => {\n return () => {\n if (latestAbortable.current) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n latestAbortable.current.current?.abort();\n }\n };\n }, [latestAbortable]);\n // we only want to show the loading indicator if the promise is executing\n const isLoading = options?.execute !== false ? state.isLoading : false;\n // @ts-expect-error loading is has some fixed value in the enum which\n const stateWithLoadingFixed = { ...state, isLoading };\n return { ...stateWithLoadingFixed, revalidate, mutate };\n}\nexports.usePromise = usePromise;\n/** Bind the fn if it's a Promise method */\nfunction bindPromiseIfNeeded(fn) {\n if (fn === Promise.all) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.race) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.resolve) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.reject) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n return fn;\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useCachedState = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst useLatest_1 = require(\"./useLatest\");\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction replacer(key, _value) {\n const value = this[key];\n if (value instanceof Date) {\n return `__raycast_cached_date__${value.toString()}`;\n }\n if (Buffer.isBuffer(value)) {\n return `__raycast_cached_buffer__${value.toString(\"base64\")}`;\n }\n return _value;\n}\nfunction reviver(_key, value) {\n if (typeof value === \"string\" && value.startsWith(\"__raycast_cached_date__\")) {\n return new Date(value.replace(\"__raycast_cached_date__\", \"\"));\n }\n if (typeof value === \"string\" && value.startsWith(\"__raycast_cached_buffer__\")) {\n return Buffer.from(value.replace(\"__raycast_cached_buffer__\", \"\"), \"base64\");\n }\n return value;\n}\nconst rootCache = Symbol(\"cache without namespace\");\nconst cacheMap = new Map();\nfunction useCachedState(key, initialState, config) {\n const cacheKey = config?.cacheNamespace || rootCache;\n const cache = cacheMap.get(cacheKey) || cacheMap.set(cacheKey, new api_1.Cache({ namespace: config?.cacheNamespace })).get(cacheKey);\n if (!cache) {\n throw new Error(\"Missing cache\");\n }\n const keyRef = (0, useLatest_1.useLatest)(key);\n const initialValueRef = (0, useLatest_1.useLatest)(initialState);\n const cachedState = (0, react_1.useSyncExternalStore)(cache.subscribe, () => {\n try {\n return cache.get(keyRef.current);\n }\n catch (error) {\n console.error(\"Could not get Cache data:\", error);\n return undefined;\n }\n });\n const state = (0, react_1.useMemo)(() => {\n if (typeof cachedState !== \"undefined\") {\n if (cachedState === \"undefined\") {\n return undefined;\n }\n try {\n return JSON.parse(cachedState, reviver);\n }\n catch (err) {\n // the data got corrupted somehow\n console.warn(\"The cached data is corrupted\", err);\n return initialValueRef.current;\n }\n }\n else {\n return initialValueRef.current;\n }\n }, [cachedState, initialValueRef]);\n const stateRef = (0, useLatest_1.useLatest)(state);\n const setStateAndCache = (0, react_1.useCallback)((updater) => {\n // @ts-expect-error TS struggles to infer the types as T could potentially be a function\n const newValue = typeof updater === \"function\" ? updater(stateRef.current) : updater;\n if (typeof newValue === \"undefined\") {\n cache.set(keyRef.current, \"undefined\");\n }\n else {\n const stringifiedValue = JSON.stringify(newValue, replacer);\n cache.set(keyRef.current, stringifiedValue);\n }\n return newValue;\n }, [cache, keyRef, stateRef]);\n return [state, setStateAndCache];\n}\nexports.useCachedState = useCachedState;\n", "'use strict';\n\nvar crypto = require('crypto');\n\n/**\n * Exported function\n *\n * Options:\n *\n * - `algorithm` hash algo to be used by this instance: *'sha1', 'md5'\n * - `excludeValues` {true|*false} hash object keys, values ignored\n * - `encoding` hash encoding, supports 'buffer', '*hex', 'binary', 'base64'\n * - `ignoreUnknown` {true|*false} ignore unknown object types\n * - `replacer` optional function that replaces values before hashing\n * - `respectFunctionProperties` {*true|false} consider function properties when hashing\n * - `respectFunctionNames` {*true|false} consider 'name' property of functions for hashing\n * - `respectType` {*true|false} Respect special properties (prototype, constructor)\n * when hashing to distinguish between types\n * - `unorderedArrays` {true|*false} Sort all arrays before hashing\n * - `unorderedSets` {*true|false} Sort `Set` and `Map` instances before hashing\n * * = default\n *\n * @param {object} object value to hash\n * @param {object} options hashing options\n * @return {string} hash value\n * @api public\n */\nexports = module.exports = objectHash;\n\nfunction objectHash(object, options){\n options = applyDefaults(object, options);\n\n return hash(object, options);\n}\n\n/**\n * Exported sugar methods\n *\n * @param {object} object value to hash\n * @return {string} hash value\n * @api public\n */\nexports.sha1 = function(object){\n return objectHash(object);\n};\nexports.keys = function(object){\n return objectHash(object, {excludeValues: true, algorithm: 'sha1', encoding: 'hex'});\n};\nexports.MD5 = function(object){\n return objectHash(object, {algorithm: 'md5', encoding: 'hex'});\n};\nexports.keysMD5 = function(object){\n return objectHash(object, {algorithm: 'md5', encoding: 'hex', excludeValues: true});\n};\n\n// Internals\nvar hashes = crypto.getHashes ? crypto.getHashes().slice() : ['sha1', 'md5'];\nhashes.push('passthrough');\nvar encodings = ['buffer', 'hex', 'binary', 'base64'];\n\nfunction applyDefaults(object, sourceOptions){\n sourceOptions = sourceOptions || {};\n\n // create a copy rather than mutating\n var options = {};\n options.algorithm = sourceOptions.algorithm || 'sha1';\n options.encoding = sourceOptions.encoding || 'hex';\n options.excludeValues = sourceOptions.excludeValues ? true : false;\n options.algorithm = options.algorithm.toLowerCase();\n options.encoding = options.encoding.toLowerCase();\n options.ignoreUnknown = sourceOptions.ignoreUnknown !== true ? false : true; // default to false\n options.respectType = sourceOptions.respectType === false ? false : true; // default to true\n options.respectFunctionNames = sourceOptions.respectFunctionNames === false ? false : true;\n options.respectFunctionProperties = sourceOptions.respectFunctionProperties === false ? false : true;\n options.unorderedArrays = sourceOptions.unorderedArrays !== true ? false : true; // default to false\n options.unorderedSets = sourceOptions.unorderedSets === false ? false : true; // default to false\n options.unorderedObjects = sourceOptions.unorderedObjects === false ? false : true; // default to true\n options.replacer = sourceOptions.replacer || undefined;\n options.excludeKeys = sourceOptions.excludeKeys || undefined;\n\n if(typeof object === 'undefined') {\n throw new Error('Object argument required.');\n }\n\n // if there is a case-insensitive match in the hashes list, accept it\n // (i.e. SHA256 for sha256)\n for (var i = 0; i < hashes.length; ++i) {\n if (hashes[i].toLowerCase() === options.algorithm.toLowerCase()) {\n options.algorithm = hashes[i];\n }\n }\n\n if(hashes.indexOf(options.algorithm) === -1){\n throw new Error('Algorithm \"' + options.algorithm + '\" not supported. ' +\n 'supported values: ' + hashes.join(', '));\n }\n\n if(encodings.indexOf(options.encoding) === -1 &&\n options.algorithm !== 'passthrough'){\n throw new Error('Encoding \"' + options.encoding + '\" not supported. ' +\n 'supported values: ' + encodings.join(', '));\n }\n\n return options;\n}\n\n/** Check if the given function is a native function */\nfunction isNativeFunction(f) {\n if ((typeof f) !== 'function') {\n return false;\n }\n var exp = /^function\\s+\\w*\\s*\\(\\s*\\)\\s*{\\s+\\[native code\\]\\s+}$/i;\n return exp.exec(Function.prototype.toString.call(f)) != null;\n}\n\nfunction hash(object, options) {\n var hashingStream;\n\n if (options.algorithm !== 'passthrough') {\n hashingStream = crypto.createHash(options.algorithm);\n } else {\n hashingStream = new PassThrough();\n }\n\n if (typeof hashingStream.write === 'undefined') {\n hashingStream.write = hashingStream.update;\n hashingStream.end = hashingStream.update;\n }\n\n var hasher = typeHasher(options, hashingStream);\n hasher.dispatch(object);\n if (!hashingStream.update) {\n hashingStream.end('');\n }\n\n if (hashingStream.digest) {\n return hashingStream.digest(options.encoding === 'buffer' ? undefined : options.encoding);\n }\n\n var buf = hashingStream.read();\n if (options.encoding === 'buffer') {\n return buf;\n }\n\n return buf.toString(options.encoding);\n}\n\n/**\n * Expose streaming API\n *\n * @param {object} object Value to serialize\n * @param {object} options Options, as for hash()\n * @param {object} stream A stream to write the serializiation to\n * @api public\n */\nexports.writeToStream = function(object, options, stream) {\n if (typeof stream === 'undefined') {\n stream = options;\n options = {};\n }\n\n options = applyDefaults(object, options);\n\n return typeHasher(options, stream).dispatch(object);\n};\n\nfunction typeHasher(options, writeTo, context){\n context = context || [];\n var write = function(str) {\n if (writeTo.update) {\n return writeTo.update(str, 'utf8');\n } else {\n return writeTo.write(str, 'utf8');\n }\n };\n\n return {\n dispatch: function(value){\n if (options.replacer) {\n value = options.replacer(value);\n }\n\n var type = typeof value;\n if (value === null) {\n type = 'null';\n }\n\n //console.log(\"[DEBUG] Dispatch: \", value, \"->\", type, \" -> \", \"_\" + type);\n\n return this['_' + type](value);\n },\n _object: function(object) {\n var pattern = (/\\[object (.*)\\]/i);\n var objString = Object.prototype.toString.call(object);\n var objType = pattern.exec(objString);\n if (!objType) { // object type did not match [object ...]\n objType = 'unknown:[' + objString + ']';\n } else {\n objType = objType[1]; // take only the class name\n }\n\n objType = objType.toLowerCase();\n\n var objectNumber = null;\n\n if ((objectNumber = context.indexOf(object)) >= 0) {\n return this.dispatch('[CIRCULAR:' + objectNumber + ']');\n } else {\n context.push(object);\n }\n\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer && Buffer.isBuffer(object)) {\n write('buffer:');\n return write(object);\n }\n\n if(objType !== 'object' && objType !== 'function' && objType !== 'asyncfunction') {\n if(this['_' + objType]) {\n this['_' + objType](object);\n } else if (options.ignoreUnknown) {\n return write('[' + objType + ']');\n } else {\n throw new Error('Unknown object type \"' + objType + '\"');\n }\n }else{\n var keys = Object.keys(object);\n if (options.unorderedObjects) {\n keys = keys.sort();\n }\n // Make sure to incorporate special properties, so\n // Types with different prototypes will produce\n // a different hash and objects derived from\n // different functions (`new Foo`, `new Bar`) will\n // produce different hashes.\n // We never do this for native functions since some\n // seem to break because of that.\n if (options.respectType !== false && !isNativeFunction(object)) {\n keys.splice(0, 0, 'prototype', '__proto__', 'constructor');\n }\n\n if (options.excludeKeys) {\n keys = keys.filter(function(key) { return !options.excludeKeys(key); });\n }\n\n write('object:' + keys.length + ':');\n var self = this;\n return keys.forEach(function(key){\n self.dispatch(key);\n write(':');\n if(!options.excludeValues) {\n self.dispatch(object[key]);\n }\n write(',');\n });\n }\n },\n _array: function(arr, unordered){\n unordered = typeof unordered !== 'undefined' ? unordered :\n options.unorderedArrays !== false; // default to options.unorderedArrays\n\n var self = this;\n write('array:' + arr.length + ':');\n if (!unordered || arr.length <= 1) {\n return arr.forEach(function(entry) {\n return self.dispatch(entry);\n });\n }\n\n // the unordered case is a little more complicated:\n // since there is no canonical ordering on objects,\n // i.e. {a:1} < {a:2} and {a:1} > {a:2} are both false,\n // we first serialize each entry using a PassThrough stream\n // before sorting.\n // also: we can\u2019t use the same context array for all entries\n // since the order of hashing should *not* matter. instead,\n // we keep track of the additions to a copy of the context array\n // and add all of them to the global context array when we\u2019re done\n var contextAdditions = [];\n var entries = arr.map(function(entry) {\n var strm = new PassThrough();\n var localContext = context.slice(); // make copy\n var hasher = typeHasher(options, strm, localContext);\n hasher.dispatch(entry);\n // take only what was added to localContext and append it to contextAdditions\n contextAdditions = contextAdditions.concat(localContext.slice(context.length));\n return strm.read().toString();\n });\n context = context.concat(contextAdditions);\n entries.sort();\n return this._array(entries, false);\n },\n _date: function(date){\n return write('date:' + date.toJSON());\n },\n _symbol: function(sym){\n return write('symbol:' + sym.toString());\n },\n _error: function(err){\n return write('error:' + err.toString());\n },\n _boolean: function(bool){\n return write('bool:' + bool.toString());\n },\n _string: function(string){\n write('string:' + string.length + ':');\n write(string.toString());\n },\n _function: function(fn){\n write('fn:');\n if (isNativeFunction(fn)) {\n this.dispatch('[native]');\n } else {\n this.dispatch(fn.toString());\n }\n\n if (options.respectFunctionNames !== false) {\n // Make sure we can still distinguish native functions\n // by their name, otherwise String and Function will\n // have the same hash\n this.dispatch(\"function-name:\" + String(fn.name));\n }\n\n if (options.respectFunctionProperties) {\n this._object(fn);\n }\n },\n _number: function(number){\n return write('number:' + number.toString());\n },\n _xml: function(xml){\n return write('xml:' + xml.toString());\n },\n _null: function() {\n return write('Null');\n },\n _undefined: function() {\n return write('Undefined');\n },\n _regexp: function(regex){\n return write('regex:' + regex.toString());\n },\n _uint8array: function(arr){\n write('uint8array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint8clampedarray: function(arr){\n write('uint8clampedarray:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int8array: function(arr){\n write('int8array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint16array: function(arr){\n write('uint16array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int16array: function(arr){\n write('int16array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint32array: function(arr){\n write('uint32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int32array: function(arr){\n write('int32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _float32array: function(arr){\n write('float32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _float64array: function(arr){\n write('float64array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _arraybuffer: function(arr){\n write('arraybuffer:');\n return this.dispatch(new Uint8Array(arr));\n },\n _url: function(url) {\n return write('url:' + url.toString(), 'utf8');\n },\n _map: function(map) {\n write('map:');\n var arr = Array.from(map);\n return this._array(arr, options.unorderedSets !== false);\n },\n _set: function(set) {\n write('set:');\n var arr = Array.from(set);\n return this._array(arr, options.unorderedSets !== false);\n },\n _file: function(file) {\n write('file:');\n return this.dispatch([file.name, file.size, file.type, file.lastModfied]);\n },\n _blob: function() {\n if (options.ignoreUnknown) {\n return write('[blob]');\n }\n\n throw Error('Hashing Blob objects is currently not supported\\n' +\n '(see https://github.com/puleos/object-hash/issues/26)\\n' +\n 'Use \"options.replacer\" or \"options.ignoreUnknown\"\\n');\n },\n _domwindow: function() { return write('domwindow'); },\n _bigint: function(number){\n return write('bigint:' + number.toString());\n },\n /* Node.js standard native objects */\n _process: function() { return write('process'); },\n _timer: function() { return write('timer'); },\n _pipe: function() { return write('pipe'); },\n _tcp: function() { return write('tcp'); },\n _udp: function() { return write('udp'); },\n _tty: function() { return write('tty'); },\n _statwatcher: function() { return write('statwatcher'); },\n _securecontext: function() { return write('securecontext'); },\n _connection: function() { return write('connection'); },\n _zlib: function() { return write('zlib'); },\n _context: function() { return write('context'); },\n _nodescript: function() { return write('nodescript'); },\n _httpparser: function() { return write('httpparser'); },\n _dataview: function() { return write('dataview'); },\n _signal: function() { return write('signal'); },\n _fsevent: function() { return write('fsevent'); },\n _tlswrap: function() { return write('tlswrap'); },\n };\n}\n\n// Mini-implementation of stream.PassThrough\n// We are far from having need for the full implementation, and we can\n// make assumptions like \"many writes, then only one final read\"\n// and we can ignore encoding specifics\nfunction PassThrough() {\n return {\n buf: '',\n\n write: function(b) {\n this.buf += b;\n },\n\n end: function(b) {\n this.buf += b;\n },\n\n read: function() {\n return this.buf;\n }\n };\n}\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useCachedPromise = void 0;\nconst react_1 = require(\"react\");\nconst object_hash_1 = __importDefault(require(\"object-hash\"));\nconst useCachedState_1 = require(\"./useCachedState\");\nconst usePromise_1 = require(\"./usePromise\");\nconst useLatest_1 = require(\"./useLatest\");\n// Symbol to differentiate an empty cache from `undefined`\nconst emptyCache = Symbol();\nfunction useCachedPromise(fn, args, options) {\n const { initialData, keepPreviousData, ...usePromiseOptions } = options || {};\n const lastUpdateFrom = (0, react_1.useRef)();\n const [cachedData, mutateCache] = (0, useCachedState_1.useCachedState)((0, object_hash_1.default)(args || []), emptyCache, {\n cacheNamespace: (0, object_hash_1.default)(fn),\n });\n // Use a ref to store previous returned data. Use the inital data as its inital value from the cache.\n const laggyDataRef = (0, react_1.useRef)(cachedData !== emptyCache ? cachedData : initialData);\n const { mutate: _mutate, revalidate, ...state\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = (0, usePromise_1.usePromise)(fn, args || [], {\n ...usePromiseOptions,\n onData(data) {\n if (usePromiseOptions.onData) {\n usePromiseOptions.onData(data);\n }\n // update the cache when we fetch new values\n lastUpdateFrom.current = \"promise\";\n laggyDataRef.current = data;\n mutateCache(data);\n },\n });\n // data returned if there are no special cases\n const data = cachedData !== emptyCache ? cachedData : initialData;\n const returnedData = \n // if the latest update if from the Promise, we keep it\n lastUpdateFrom.current === \"promise\"\n ? laggyDataRef.current\n : // if we want to keep the latest data, we pick the cache but only if it's not empty\n keepPreviousData\n ? cachedData !== emptyCache\n ? cachedData\n : // if the cache is empty, we will return the previous data\n laggyDataRef.current\n : data;\n const latestData = (0, useLatest_1.useLatest)(returnedData);\n // we rewrite the mutate function to update the cache instead\n const mutate = (0, react_1.useCallback)(async (asyncUpdate, options) => {\n let dataBeforeOptimisticUpdate;\n try {\n if (options?.optimisticUpdate) {\n if (typeof options?.rollbackOnError !== \"function\" && options?.rollbackOnError !== false) {\n // keep track of the data before the optimistic update,\n // but only if we need it (eg. only when we want to automatically rollback after)\n dataBeforeOptimisticUpdate = structuredClone(latestData.current);\n }\n const data = options.optimisticUpdate(latestData.current);\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = data;\n mutateCache(data);\n }\n return await _mutate(asyncUpdate, { shouldRevalidateAfter: options?.shouldRevalidateAfter });\n }\n catch (err) {\n if (typeof options?.rollbackOnError === \"function\") {\n const data = options.rollbackOnError(latestData.current);\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = data;\n mutateCache(data);\n }\n else if (options?.optimisticUpdate && options?.rollbackOnError !== false) {\n lastUpdateFrom.current = \"cache\";\n // @ts-expect-error when undefined, it's expected\n laggyDataRef.current = dataBeforeOptimisticUpdate;\n // @ts-expect-error when undefined, it's expected\n mutateCache(dataBeforeOptimisticUpdate);\n }\n throw err;\n }\n }, [mutateCache, _mutate, latestData, laggyDataRef, lastUpdateFrom]);\n (0, react_1.useEffect)(() => {\n if (cachedData !== emptyCache) {\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = cachedData;\n }\n }, [cachedData]);\n return {\n data: returnedData,\n isLoading: state.isLoading,\n error: state.error,\n mutate,\n revalidate,\n };\n}\nexports.useCachedPromise = useCachedPromise;\n", "/*!\n * media-typer\n * Copyright(c) 2014-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match type in RFC 6838\n *\n * type-name = restricted-name\n * subtype-name = restricted-name\n * restricted-name = restricted-name-first *126restricted-name-chars\n * restricted-name-first = ALPHA / DIGIT\n * restricted-name-chars = ALPHA / DIGIT / \"!\" / \"#\" /\n * \"$\" / \"&\" / \"-\" / \"^\" / \"_\"\n * restricted-name-chars =/ \".\" ; Characters before first dot always\n * ; specify a facet name\n * restricted-name-chars =/ \"+\" ; Characters after last plus always\n * ; specify a structured syntax suffix\n * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n * DIGIT = %x30-39 ; 0-9\n */\nvar SUBTYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/\nvar TYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/\nvar TYPE_REGEXP = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/\n\n/**\n * Module exports.\n */\n\nexports.format = format\nexports.parse = parse\nexports.test = test\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var subtype = obj.subtype\n var suffix = obj.suffix\n var type = obj.type\n\n if (!type || !TYPE_NAME_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n if (!subtype || !SUBTYPE_NAME_REGEXP.test(subtype)) {\n throw new TypeError('invalid subtype')\n }\n\n // format as type/subtype\n var string = type + '/' + subtype\n\n // append +suffix\n if (suffix) {\n if (!TYPE_NAME_REGEXP.test(suffix)) {\n throw new TypeError('invalid suffix')\n }\n\n string += '+' + suffix\n }\n\n return string\n}\n\n/**\n * Test media type.\n *\n * @param {string} string\n * @return {object}\n * @public\n */\n\nfunction test (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n if (typeof string !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n return TYPE_REGEXP.test(string.toLowerCase())\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string} string\n * @return {object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n if (typeof string !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var match = TYPE_REGEXP.exec(string.toLowerCase())\n\n if (!match) {\n throw new TypeError('invalid media type')\n }\n\n var type = match[1]\n var subtype = match[2]\n var suffix\n\n // suffix after last +\n var index = subtype.lastIndexOf('+')\n if (index !== -1) {\n suffix = subtype.substr(index + 1)\n subtype = subtype.substr(0, index)\n }\n\n return new MediaType(type, subtype, suffix)\n}\n\n/**\n * Class for MediaType object.\n * @public\n */\n\nfunction MediaType (type, subtype, suffix) {\n this.type = type\n this.subtype = subtype\n this.suffix = suffix\n}\n", "/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match *( \";\" parameter ) in RFC 7231 sec 3.1.1.1\n *\n * parameter = token \"=\" ( token / quoted-string )\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n * / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n * / DIGIT / ALPHA\n * ; any VCHAR, except delimiters\n * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE\n * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text\n * obs-text = %x80-FF\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n */\nvar PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *(\"(?:[\\u000b\\u0020\\u0021\\u0023-\\u005b\\u005d-\\u007e\\u0080-\\u00ff]|\\\\[\\u000b\\u0020-\\u00ff])*\"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g // eslint-disable-line no-control-regex\nvar TEXT_REGEXP = /^[\\u000b\\u0020-\\u007e\\u0080-\\u00ff]+$/ // eslint-disable-line no-control-regex\nvar TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * RegExp to match quoted-pair in RFC 7230 sec 3.2.6\n *\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n * obs-text = %x80-FF\n */\nvar QESC_REGEXP = /\\\\([\\u000b\\u0020-\\u00ff])/g // eslint-disable-line no-control-regex\n\n/**\n * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6\n */\nvar QUOTE_REGEXP = /([\\\\\"])/g\n\n/**\n * RegExp to match type in RFC 7231 sec 3.1.1.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nvar TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * Module exports.\n * @public\n */\n\nexports.format = format\nexports.parse = parse\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var parameters = obj.parameters\n var type = obj.type\n\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n var string = type\n\n // append parameters\n if (parameters && typeof parameters === 'object') {\n var param\n var params = Object.keys(parameters).sort()\n\n for (var i = 0; i < params.length; i++) {\n param = params[i]\n\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError('invalid parameter name')\n }\n\n string += '; ' + param + '=' + qstring(parameters[param])\n }\n }\n\n return string\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string|object} string\n * @return {Object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n // support req/res-like objects as argument\n var header = typeof string === 'object'\n ? getcontenttype(string)\n : string\n\n if (typeof header !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var index = header.indexOf(';')\n var type = index !== -1\n ? header.slice(0, index).trim()\n : header.trim()\n\n if (!TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid media type')\n }\n\n var obj = new ContentType(type.toLowerCase())\n\n // parse parameters\n if (index !== -1) {\n var key\n var match\n var value\n\n PARAM_REGEXP.lastIndex = index\n\n while ((match = PARAM_REGEXP.exec(header))) {\n if (match.index !== index) {\n throw new TypeError('invalid parameter format')\n }\n\n index += match[0].length\n key = match[1].toLowerCase()\n value = match[2]\n\n if (value.charCodeAt(0) === 0x22 /* \" */) {\n // remove quotes\n value = value.slice(1, -1)\n\n // remove escapes\n if (value.indexOf('\\\\') !== -1) {\n value = value.replace(QESC_REGEXP, '$1')\n }\n }\n\n obj.parameters[key] = value\n }\n\n if (index !== header.length) {\n throw new TypeError('invalid parameter format')\n }\n }\n\n return obj\n}\n\n/**\n * Get content-type from req/res objects.\n *\n * @param {object}\n * @return {Object}\n * @private\n */\n\nfunction getcontenttype (obj) {\n var header\n\n if (typeof obj.getHeader === 'function') {\n // res-like\n header = obj.getHeader('content-type')\n } else if (typeof obj.headers === 'object') {\n // req-like\n header = obj.headers && obj.headers['content-type']\n }\n\n if (typeof header !== 'string') {\n throw new TypeError('content-type header is missing from object')\n }\n\n return header\n}\n\n/**\n * Quote a string if necessary.\n *\n * @param {string} val\n * @return {string}\n * @private\n */\n\nfunction qstring (val) {\n var str = String(val)\n\n // no need to quote tokens\n if (TOKEN_REGEXP.test(str)) {\n return str\n }\n\n if (str.length > 0 && !TEXT_REGEXP.test(str)) {\n throw new TypeError('invalid parameter value')\n }\n\n return '\"' + str.replace(QUOTE_REGEXP, '\\\\$1') + '\"'\n}\n\n/**\n * Class to represent a content type.\n * @private\n */\nfunction ContentType (type) {\n this.parameters = Object.create(null)\n this.type = type\n}\n", "\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n", "\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n", "[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"valid\"],[[47,47],\"disallowed_STD3_valid\"],[[48,57],\"valid\"],[[58,64],\"disallowed_STD3_valid\"],[[65,65],\"mapped\",[97]],[[66,66],\"mapped\",[98]],[[67,67],\"mapped\",[99]],[[68,68],\"mapped\",[100]],[[69,69],\"mapped\",[101]],[[70,70],\"mapped\",[102]],[[71,71],\"mapped\",[103]],[[72,72],\"mapped\",[104]],[[73,73],\"mapped\",[105]],[[74,74],\"mapped\",[106]],[[75,75],\"mapped\",[107]],[[76,76],\"mapped\",[108]],[[77,77],\"mapped\",[109]],[[78,78],\"mapped\",[110]],[[79,79],\"mapped\",[111]],[[80,80],\"mapped\",[112]],[[81,81],\"mapped\",[113]],[[82,82],\"mapped\",[114]],[[83,83],\"mapped\",[115]],[[84,84],\"mapped\",[116]],[[85,85],\"mapped\",[117]],[[86,86],\"mapped\",[118]],[[87,87],\"mapped\",[119]],[[88,88],\"mapped\",[120]],[[89,89],\"mapped\",[121]],[[90,90],\"mapped\",[122]],[[91,96],\"disallowed_STD3_valid\"],[[97,122],\"valid\"],[[123,127],\"disallowed_STD3_valid\"],[[128,159],\"disallowed\"],[[160,160],\"disallowed_STD3_mapped\",[32]],[[161,167],\"valid\",[],\"NV8\"],[[168,168],\"disallowed_STD3_mapped\",[32,776]],[[169,169],\"valid\",[],\"NV8\"],[[170,170],\"mapped\",[97]],[[171,172],\"valid\",[],\"NV8\"],[[173,173],\"ignored\"],[[174,174],\"valid\",[],\"NV8\"],[[175,175],\"disallowed_STD3_mapped\",[32,772]],[[176,177],\"valid\",[],\"NV8\"],[[178,178],\"mapped\",[50]],[[179,179],\"mapped\",[51]],[[180,180],\"disallowed_STD3_mapped\",[32,769]],[[181,181],\"mapped\",[956]],[[182,182],\"valid\",[],\"NV8\"],[[183,183],\"valid\"],[[184,184],\"disallowed_STD3_mapped\",[32,807]],[[185,185],\"mapped\",[49]],[[186,186],\"mapped\",[111]],[[187,187],\"valid\",[],\"NV8\"],[[188,188],\"mapped\",[49,8260,52]],[[189,189],\"mapped\",[49,8260,50]],[[190,190],\"mapped\",[51,8260,52]],[[191,191],\"valid\",[],\"NV8\"],[[192,192],\"mapped\",[224]],[[193,193],\"mapped\",[225]],[[194,194],\"mapped\",[226]],[[195,195],\"mapped\",[227]],[[196,196],\"mapped\",[228]],[[197,197],\"mapped\",[229]],[[198,198],\"mapped\",[230]],[[199,199],\"mapped\",[231]],[[200,200],\"mapped\",[232]],[[201,201],\"mapped\",[233]],[[202,202],\"mapped\",[234]],[[203,203],\"mapped\",[235]],[[204,204],\"mapped\",[236]],[[205,205],\"mapped\",[237]],[[206,206],\"mapped\",[238]],[[207,207],\"mapped\",[239]],[[208,208],\"mapped\",[240]],[[209,209],\"mapped\",[241]],[[210,210],\"mapped\",[242]],[[211,211],\"mapped\",[243]],[[212,212],\"mapped\",[244]],[[213,213],\"mapped\",[245]],[[214,214],\"mapped\",[246]],[[215,215],\"valid\",[],\"NV8\"],[[216,216],\"mapped\",[248]],[[217,217],\"mapped\",[249]],[[218,218],\"mapped\",[250]],[[219,219],\"mapped\",[251]],[[220,220],\"mapped\",[252]],[[221,221],\"mapped\",[253]],[[222,222],\"mapped\",[254]],[[223,223],\"deviation\",[115,115]],[[224,246],\"valid\"],[[247,247],\"valid\",[],\"NV8\"],[[248,255],\"valid\"],[[256,256],\"mapped\",[257]],[[257,257],\"valid\"],[[258,258],\"mapped\",[259]],[[259,259],\"valid\"],[[260,260],\"mapped\",[261]],[[261,261],\"valid\"],[[262,262],\"mapped\",[263]],[[263,263],\"valid\"],[[264,264],\"mapped\",[265]],[[265,265],\"valid\"],[[266,266],\"mapped\",[267]],[[267,267],\"valid\"],[[268,268],\"mapped\",[269]],[[269,269],\"valid\"],[[270,270],\"mapped\",[271]],[[271,271],\"valid\"],[[272,272],\"mapped\",[273]],[[273,273],\"valid\"],[[274,274],\"mapped\",[275]],[[275,275],\"valid\"],[[276,276],\"mapped\",[277]],[[277,277],\"valid\"],[[278,278],\"mapped\",[279]],[[279,279],\"valid\"],[[280,280],\"mapped\",[281]],[[281,281],\"valid\"],[[282,282],\"mapped\",[283]],[[283,283],\"valid\"],[[284,284],\"mapped\",[285]],[[285,285],\"valid\"],[[286,286],\"mapped\",[287]],[[287,287],\"valid\"],[[288,288],\"mapped\",[289]],[[289,289],\"valid\"],[[290,290],\"mapped\",[291]],[[291,291],\"valid\"],[[292,292],\"mapped\",[293]],[[293,293],\"valid\"],[[294,294],\"mapped\",[295]],[[295,295],\"valid\"],[[296,296],\"mapped\",[297]],[[297,297],\"valid\"],[[298,298],\"mapped\",[299]],[[299,299],\"valid\"],[[300,300],\"mapped\",[301]],[[301,301],\"valid\"],[[302,302],\"mapped\",[303]],[[303,303],\"valid\"],[[304,304],\"mapped\",[105,775]],[[305,305],\"valid\"],[[306,307],\"mapped\",[105,106]],[[308,308],\"mapped\",[309]],[[309,309],\"valid\"],[[310,310],\"mapped\",[311]],[[311,312],\"valid\"],[[313,313],\"mapped\",[314]],[[314,314],\"valid\"],[[315,315],\"mapped\",[316]],[[316,316],\"valid\"],[[317,317],\"mapped\",[318]],[[318,318],\"valid\"],[[319,320],\"mapped\",[108,183]],[[321,321],\"mapped\",[322]],[[322,322],\"valid\"],[[323,323],\"mapped\",[324]],[[324,324],\"valid\"],[[325,325],\"mapped\",[326]],[[326,326],\"valid\"],[[327,327],\"mapped\",[328]],[[328,328],\"valid\"],[[329,329],\"mapped\",[700,110]],[[330,330],\"mapped\",[331]],[[331,331],\"valid\"],[[332,332],\"mapped\",[333]],[[333,333],\"valid\"],[[334,334],\"mapped\",[335]],[[335,335],\"valid\"],[[336,336],\"mapped\",[337]],[[337,337],\"valid\"],[[338,338],\"mapped\",[339]],[[339,339],\"valid\"],[[340,340],\"mapped\",[341]],[[341,341],\"valid\"],[[342,342],\"mapped\",[343]],[[343,343],\"valid\"],[[344,344],\"mapped\",[345]],[[345,345],\"valid\"],[[346,346],\"mapped\",[347]],[[347,347],\"valid\"],[[348,348],\"mapped\",[349]],[[349,349],\"valid\"],[[350,350],\"mapped\",[351]],[[351,351],\"valid\"],[[352,352],\"mapped\",[353]],[[353,353],\"valid\"],[[354,354],\"mapped\",[355]],[[355,355],\"valid\"],[[356,356],\"mapped\",[357]],[[357,357],\"valid\"],[[358,358],\"mapped\",[359]],[[359,359],\"valid\"],[[360,360],\"mapped\",[361]],[[361,361],\"valid\"],[[362,362],\"mapped\",[363]],[[363,363],\"valid\"],[[364,364],\"mapped\",[365]],[[365,365],\"valid\"],[[366,366],\"mapped\",[367]],[[367,367],\"valid\"],[[368,368],\"mapped\",[369]],[[369,369],\"valid\"],[[370,370],\"mapped\",[371]],[[371,371],\"valid\"],[[372,372],\"mapped\",[373]],[[373,373],\"valid\"],[[374,374],\"mapped\",[375]],[[375,375],\"valid\"],[[376,376],\"mapped\",[255]],[[377,377],\"mapped\",[378]],[[378,378],\"valid\"],[[379,379],\"mapped\",[380]],[[380,380],\"valid\"],[[381,381],\"mapped\",[382]],[[382,382],\"valid\"],[[383,383],\"mapped\",[115]],[[384,384],\"valid\"],[[385,385],\"mapped\",[595]],[[386,386],\"mapped\",[387]],[[387,387],\"valid\"],[[388,388],\"mapped\",[389]],[[389,389],\"valid\"],[[390,390],\"mapped\",[596]],[[391,391],\"mapped\",[392]],[[392,392],\"valid\"],[[393,393],\"mapped\",[598]],[[394,394],\"mapped\",[599]],[[395,395],\"mapped\",[396]],[[396,397],\"valid\"],[[398,398],\"mapped\",[477]],[[399,399],\"mapped\",[601]],[[400,400],\"mapped\",[603]],[[401,401],\"mapped\",[402]],[[402,402],\"valid\"],[[403,403],\"mapped\",[608]],[[404,404],\"mapped\",[611]],[[405,405],\"valid\"],[[406,406],\"mapped\",[617]],[[407,407],\"mapped\",[616]],[[408,408],\"mapped\",[409]],[[409,411],\"valid\"],[[412,412],\"mapped\",[623]],[[413,413],\"mapped\",[626]],[[414,414],\"valid\"],[[415,415],\"mapped\",[629]],[[416,416],\"mapped\",[417]],[[417,417],\"valid\"],[[418,418],\"mapped\",[419]],[[419,419],\"valid\"],[[420,420],\"mapped\",[421]],[[421,421],\"valid\"],[[422,422],\"mapped\",[640]],[[423,423],\"mapped\",[424]],[[424,424],\"valid\"],[[425,425],\"mapped\",[643]],[[426,427],\"valid\"],[[428,428],\"mapped\",[429]],[[429,429],\"valid\"],[[430,430],\"mapped\",[648]],[[431,431],\"mapped\",[432]],[[432,432],\"valid\"],[[433,433],\"mapped\",[650]],[[434,434],\"mapped\",[651]],[[435,435],\"mapped\",[436]],[[436,436],\"valid\"],[[437,437],\"mapped\",[438]],[[438,438],\"valid\"],[[439,439],\"mapped\",[658]],[[440,440],\"mapped\",[441]],[[441,443],\"valid\"],[[444,444],\"mapped\",[445]],[[445,451],\"valid\"],[[452,454],\"mapped\",[100,382]],[[455,457],\"mapped\",[108,106]],[[458,460],\"mapped\",[110,106]],[[461,461],\"mapped\",[462]],[[462,462],\"valid\"],[[463,463],\"mapped\",[464]],[[464,464],\"valid\"],[[465,465],\"mapped\",[466]],[[466,466],\"valid\"],[[467,467],\"mapped\",[468]],[[468,468],\"valid\"],[[469,469],\"mapped\",[470]],[[470,470],\"valid\"],[[471,471],\"mapped\",[472]],[[472,472],\"valid\"],[[473,473],\"mapped\",[474]],[[474,474],\"valid\"],[[475,475],\"mapped\",[476]],[[476,477],\"valid\"],[[478,478],\"mapped\",[479]],[[479,479],\"valid\"],[[480,480],\"mapped\",[481]],[[481,481],\"valid\"],[[482,482],\"mapped\",[483]],[[483,483],\"valid\"],[[484,484],\"mapped\",[485]],[[485,485],\"valid\"],[[486,486],\"mapped\",[487]],[[487,487],\"valid\"],[[488,488],\"mapped\",[489]],[[489,489],\"valid\"],[[490,490],\"mapped\",[491]],[[491,491],\"valid\"],[[492,492],\"mapped\",[493]],[[493,493],\"valid\"],[[494,494],\"mapped\",[495]],[[495,496],\"valid\"],[[497,499],\"mapped\",[100,122]],[[500,500],\"mapped\",[501]],[[501,501],\"valid\"],[[502,502],\"mapped\",[405]],[[503,503],\"mapped\",[447]],[[504,504],\"mapped\",[505]],[[505,505],\"valid\"],[[506,506],\"mapped\",[507]],[[507,507],\"valid\"],[[508,508],\"mapped\",[509]],[[509,509],\"valid\"],[[510,510],\"mapped\",[511]],[[511,511],\"valid\"],[[512,512],\"mapped\",[513]],[[513,513],\"valid\"],[[514,514],\"mapped\",[515]],[[515,515],\"valid\"],[[516,516],\"mapped\",[517]],[[517,517],\"valid\"],[[518,518],\"mapped\",[519]],[[519,519],\"valid\"],[[520,520],\"mapped\",[521]],[[521,521],\"valid\"],[[522,522],\"mapped\",[523]],[[523,523],\"valid\"],[[524,524],\"mapped\",[525]],[[525,525],\"valid\"],[[526,526],\"mapped\",[527]],[[527,527],\"valid\"],[[528,528],\"mapped\",[529]],[[529,529],\"valid\"],[[530,530],\"mapped\",[531]],[[531,531],\"valid\"],[[532,532],\"mapped\",[533]],[[533,533],\"valid\"],[[534,534],\"mapped\",[535]],[[535,535],\"valid\"],[[536,536],\"mapped\",[537]],[[537,537],\"valid\"],[[538,538],\"mapped\",[539]],[[539,539],\"valid\"],[[540,540],\"mapped\",[541]],[[541,541],\"valid\"],[[542,542],\"mapped\",[543]],[[543,543],\"valid\"],[[544,544],\"mapped\",[414]],[[545,545],\"valid\"],[[546,546],\"mapped\",[547]],[[547,547],\"valid\"],[[548,548],\"mapped\",[549]],[[549,549],\"valid\"],[[550,550],\"mapped\",[551]],[[551,551],\"valid\"],[[552,552],\"mapped\",[553]],[[553,553],\"valid\"],[[554,554],\"mapped\",[555]],[[555,555],\"valid\"],[[556,556],\"mapped\",[557]],[[557,557],\"valid\"],[[558,558],\"mapped\",[559]],[[559,559],\"valid\"],[[560,560],\"mapped\",[561]],[[561,561],\"valid\"],[[562,562],\"mapped\",[563]],[[563,563],\"valid\"],[[564,566],\"valid\"],[[567,569],\"valid\"],[[570,570],\"mapped\",[11365]],[[571,571],\"mapped\",[572]],[[572,572],\"valid\"],[[573,573],\"mapped\",[410]],[[574,574],\"mapped\",[11366]],[[575,576],\"valid\"],[[577,577],\"mapped\",[578]],[[578,578],\"valid\"],[[579,579],\"mapped\",[384]],[[580,580],\"mapped\",[649]],[[581,581],\"mapped\",[652]],[[582,582],\"mapped\",[583]],[[583,583],\"valid\"],[[584,584],\"mapped\",[585]],[[585,585],\"valid\"],[[586,586],\"mapped\",[587]],[[587,587],\"valid\"],[[588,588],\"mapped\",[589]],[[589,589],\"valid\"],[[590,590],\"mapped\",[591]],[[591,591],\"valid\"],[[592,680],\"valid\"],[[681,685],\"valid\"],[[686,687],\"valid\"],[[688,688],\"mapped\",[104]],[[689,689],\"mapped\",[614]],[[690,690],\"mapped\",[106]],[[691,691],\"mapped\",[114]],[[692,692],\"mapped\",[633]],[[693,693],\"mapped\",[635]],[[694,694],\"mapped\",[641]],[[695,695],\"mapped\",[119]],[[696,696],\"mapped\",[121]],[[697,705],\"valid\"],[[706,709],\"valid\",[],\"NV8\"],[[710,721],\"valid\"],[[722,727],\"valid\",[],\"NV8\"],[[728,728],\"disallowed_STD3_mapped\",[32,774]],[[729,729],\"disallowed_STD3_mapped\",[32,775]],[[730,730],\"disallowed_STD3_mapped\",[32,778]],[[731,731],\"disallowed_STD3_mapped\",[32,808]],[[732,732],\"disallowed_STD3_mapped\",[32,771]],[[733,733],\"disallowed_STD3_mapped\",[32,779]],[[734,734],\"valid\",[],\"NV8\"],[[735,735],\"valid\",[],\"NV8\"],[[736,736],\"mapped\",[611]],[[737,737],\"mapped\",[108]],[[738,738],\"mapped\",[115]],[[739,739],\"mapped\",[120]],[[740,740],\"mapped\",[661]],[[741,745],\"valid\",[],\"NV8\"],[[746,747],\"valid\",[],\"NV8\"],[[748,748],\"valid\"],[[749,749],\"valid\",[],\"NV8\"],[[750,750],\"valid\"],[[751,767],\"valid\",[],\"NV8\"],[[768,831],\"valid\"],[[832,832],\"mapped\",[768]],[[833,833],\"mapped\",[769]],[[834,834],\"valid\"],[[835,835],\"mapped\",[787]],[[836,836],\"mapped\",[776,769]],[[837,837],\"mapped\",[953]],[[838,846],\"valid\"],[[847,847],\"ignored\"],[[848,855],\"valid\"],[[856,860],\"valid\"],[[861,863],\"valid\"],[[864,865],\"valid\"],[[866,866],\"valid\"],[[867,879],\"valid\"],[[880,880],\"mapped\",[881]],[[881,881],\"valid\"],[[882,882],\"mapped\",[883]],[[883,883],\"valid\"],[[884,884],\"mapped\",[697]],[[885,885],\"valid\"],[[886,886],\"mapped\",[887]],[[887,887],\"valid\"],[[888,889],\"disallowed\"],[[890,890],\"disallowed_STD3_mapped\",[32,953]],[[891,893],\"valid\"],[[894,894],\"disallowed_STD3_mapped\",[59]],[[895,895],\"mapped\",[1011]],[[896,899],\"disallowed\"],[[900,900],\"disallowed_STD3_mapped\",[32,769]],[[901,901],\"disallowed_STD3_mapped\",[32,776,769]],[[902,902],\"mapped\",[940]],[[903,903],\"mapped\",[183]],[[904,904],\"mapped\",[941]],[[905,905],\"mapped\",[942]],[[906,906],\"mapped\",[943]],[[907,907],\"disallowed\"],[[908,908],\"mapped\",[972]],[[909,909],\"disallowed\"],[[910,910],\"mapped\",[973]],[[911,911],\"mapped\",[974]],[[912,912],\"valid\"],[[913,913],\"mapped\",[945]],[[914,914],\"mapped\",[946]],[[915,915],\"mapped\",[947]],[[916,916],\"mapped\",[948]],[[917,917],\"mapped\",[949]],[[918,918],\"mapped\",[950]],[[919,919],\"mapped\",[951]],[[920,920],\"mapped\",[952]],[[921,921],\"mapped\",[953]],[[922,922],\"mapped\",[954]],[[923,923],\"mapped\",[955]],[[924,924],\"mapped\",[956]],[[925,925],\"mapped\",[957]],[[926,926],\"mapped\",[958]],[[927,927],\"mapped\",[959]],[[928,928],\"mapped\",[960]],[[929,929],\"mapped\",[961]],[[930,930],\"disallowed\"],[[931,931],\"mapped\",[963]],[[932,932],\"mapped\",[964]],[[933,933],\"mapped\",[965]],[[934,934],\"mapped\",[966]],[[935,935],\"mapped\",[967]],[[936,936],\"mapped\",[968]],[[937,937],\"mapped\",[969]],[[938,938],\"mapped\",[970]],[[939,939],\"mapped\",[971]],[[940,961],\"valid\"],[[962,962],\"deviation\",[963]],[[963,974],\"valid\"],[[975,975],\"mapped\",[983]],[[976,976],\"mapped\",[946]],[[977,977],\"mapped\",[952]],[[978,978],\"mapped\",[965]],[[979,979],\"mapped\",[973]],[[980,980],\"mapped\",[971]],[[981,981],\"mapped\",[966]],[[982,982],\"mapped\",[960]],[[983,983],\"valid\"],[[984,984],\"mapped\",[985]],[[985,985],\"valid\"],[[986,986],\"mapped\",[987]],[[987,987],\"valid\"],[[988,988],\"mapped\",[989]],[[989,989],\"valid\"],[[990,990],\"mapped\",[991]],[[991,991],\"valid\"],[[992,992],\"mapped\",[993]],[[993,993],\"valid\"],[[994,994],\"mapped\",[995]],[[995,995],\"valid\"],[[996,996],\"mapped\",[997]],[[997,997],\"valid\"],[[998,998],\"mapped\",[999]],[[999,999],\"valid\"],[[1000,1000],\"mapped\",[1001]],[[1001,1001],\"valid\"],[[1002,1002],\"mapped\",[1003]],[[1003,1003],\"valid\"],[[1004,1004],\"mapped\",[1005]],[[1005,1005],\"valid\"],[[1006,1006],\"mapped\",[1007]],[[1007,1007],\"valid\"],[[1008,1008],\"mapped\",[954]],[[1009,1009],\"mapped\",[961]],[[1010,1010],\"mapped\",[963]],[[1011,1011],\"valid\"],[[1012,1012],\"mapped\",[952]],[[1013,1013],\"mapped\",[949]],[[1014,1014],\"valid\",[],\"NV8\"],[[1015,1015],\"mapped\",[1016]],[[1016,1016],\"valid\"],[[1017,1017],\"mapped\",[963]],[[1018,1018],\"mapped\",[1019]],[[1019,1019],\"valid\"],[[1020,1020],\"valid\"],[[1021,1021],\"mapped\",[891]],[[1022,1022],\"mapped\",[892]],[[1023,1023],\"mapped\",[893]],[[1024,1024],\"mapped\",[1104]],[[1025,1025],\"mapped\",[1105]],[[1026,1026],\"mapped\",[1106]],[[1027,1027],\"mapped\",[1107]],[[1028,1028],\"mapped\",[1108]],[[1029,1029],\"mapped\",[1109]],[[1030,1030],\"mapped\",[1110]],[[1031,1031],\"mapped\",[1111]],[[1032,1032],\"mapped\",[1112]],[[1033,1033],\"mapped\",[1113]],[[1034,1034],\"mapped\",[1114]],[[1035,1035],\"mapped\",[1115]],[[1036,1036],\"mapped\",[1116]],[[1037,1037],\"mapped\",[1117]],[[1038,1038],\"mapped\",[1118]],[[1039,1039],\"mapped\",[1119]],[[1040,1040],\"mapped\",[1072]],[[1041,1041],\"mapped\",[1073]],[[1042,1042],\"mapped\",[1074]],[[1043,1043],\"mapped\",[1075]],[[1044,1044],\"mapped\",[1076]],[[1045,1045],\"mapped\",[1077]],[[1046,1046],\"mapped\",[1078]],[[1047,1047],\"mapped\",[1079]],[[1048,1048],\"mapped\",[1080]],[[1049,1049],\"mapped\",[1081]],[[1050,1050],\"mapped\",[1082]],[[1051,1051],\"mapped\",[1083]],[[1052,1052],\"mapped\",[1084]],[[1053,1053],\"mapped\",[1085]],[[1054,1054],\"mapped\",[1086]],[[1055,1055],\"mapped\",[1087]],[[1056,1056],\"mapped\",[1088]],[[1057,1057],\"mapped\",[1089]],[[1058,1058],\"mapped\",[1090]],[[1059,1059],\"mapped\",[1091]],[[1060,1060],\"mapped\",[1092]],[[1061,1061],\"mapped\",[1093]],[[1062,1062],\"mapped\",[1094]],[[1063,1063],\"mapped\",[1095]],[[1064,1064],\"mapped\",[1096]],[[1065,1065],\"mapped\",[1097]],[[1066,1066],\"mapped\",[1098]],[[1067,1067],\"mapped\",[1099]],[[1068,1068],\"mapped\",[1100]],[[1069,1069],\"mapped\",[1101]],[[1070,1070],\"mapped\",[1102]],[[1071,1071],\"mapped\",[1103]],[[1072,1103],\"valid\"],[[1104,1104],\"valid\"],[[1105,1116],\"valid\"],[[1117,1117],\"valid\"],[[1118,1119],\"valid\"],[[1120,1120],\"mapped\",[1121]],[[1121,1121],\"valid\"],[[1122,1122],\"mapped\",[1123]],[[1123,1123],\"valid\"],[[1124,1124],\"mapped\",[1125]],[[1125,1125],\"valid\"],[[1126,1126],\"mapped\",[1127]],[[1127,1127],\"valid\"],[[1128,1128],\"mapped\",[1129]],[[1129,1129],\"valid\"],[[1130,1130],\"mapped\",[1131]],[[1131,1131],\"valid\"],[[1132,1132],\"mapped\",[1133]],[[1133,1133],\"valid\"],[[1134,1134],\"mapped\",[1135]],[[1135,1135],\"valid\"],[[1136,1136],\"mapped\",[1137]],[[1137,1137],\"valid\"],[[1138,1138],\"mapped\",[1139]],[[1139,1139],\"valid\"],[[1140,1140],\"mapped\",[1141]],[[1141,1141],\"valid\"],[[1142,1142],\"mapped\",[1143]],[[1143,1143],\"valid\"],[[1144,1144],\"mapped\",[1145]],[[1145,1145],\"valid\"],[[1146,1146],\"mapped\",[1147]],[[1147,1147],\"valid\"],[[1148,1148],\"mapped\",[1149]],[[1149,1149],\"valid\"],[[1150,1150],\"mapped\",[1151]],[[1151,1151],\"valid\"],[[1152,1152],\"mapped\",[1153]],[[1153,1153],\"valid\"],[[1154,1154],\"valid\",[],\"NV8\"],[[1155,1158],\"valid\"],[[1159,1159],\"valid\"],[[1160,1161],\"valid\",[],\"NV8\"],[[1162,1162],\"mapped\",[1163]],[[1163,1163],\"valid\"],[[1164,1164],\"mapped\",[1165]],[[1165,1165],\"valid\"],[[1166,1166],\"mapped\",[1167]],[[1167,1167],\"valid\"],[[1168,1168],\"mapped\",[1169]],[[1169,1169],\"valid\"],[[1170,1170],\"mapped\",[1171]],[[1171,1171],\"valid\"],[[1172,1172],\"mapped\",[1173]],[[1173,1173],\"valid\"],[[1174,1174],\"mapped\",[1175]],[[1175,1175],\"valid\"],[[1176,1176],\"mapped\",[1177]],[[1177,1177],\"valid\"],[[1178,1178],\"mapped\",[1179]],[[1179,1179],\"valid\"],[[1180,1180],\"mapped\",[1181]],[[1181,1181],\"valid\"],[[1182,1182],\"mapped\",[1183]],[[1183,1183],\"valid\"],[[1184,1184],\"mapped\",[1185]],[[1185,1185],\"valid\"],[[1186,1186],\"mapped\",[1187]],[[1187,1187],\"valid\"],[[1188,1188],\"mapped\",[1189]],[[1189,1189],\"valid\"],[[1190,1190],\"mapped\",[1191]],[[1191,1191],\"valid\"],[[1192,1192],\"mapped\",[1193]],[[1193,1193],\"valid\"],[[1194,1194],\"mapped\",[1195]],[[1195,1195],\"valid\"],[[1196,1196],\"mapped\",[1197]],[[1197,1197],\"valid\"],[[1198,1198],\"mapped\",[1199]],[[1199,1199],\"valid\"],[[1200,1200],\"mapped\",[1201]],[[1201,1201],\"valid\"],[[1202,1202],\"mapped\",[1203]],[[1203,1203],\"valid\"],[[1204,1204],\"mapped\",[1205]],[[1205,1205],\"valid\"],[[1206,1206],\"mapped\",[1207]],[[1207,1207],\"valid\"],[[1208,1208],\"mapped\",[1209]],[[1209,1209],\"valid\"],[[1210,1210],\"mapped\",[1211]],[[1211,1211],\"valid\"],[[1212,1212],\"mapped\",[1213]],[[1213,1213],\"valid\"],[[1214,1214],\"mapped\",[1215]],[[1215,1215],\"valid\"],[[1216,1216],\"disallowed\"],[[1217,1217],\"mapped\",[1218]],[[1218,1218],\"valid\"],[[1219,1219],\"mapped\",[1220]],[[1220,1220],\"valid\"],[[1221,1221],\"mapped\",[1222]],[[1222,1222],\"valid\"],[[1223,1223],\"mapped\",[1224]],[[1224,1224],\"valid\"],[[1225,1225],\"mapped\",[1226]],[[1226,1226],\"valid\"],[[1227,1227],\"mapped\",[1228]],[[1228,1228],\"valid\"],[[1229,1229],\"mapped\",[1230]],[[1230,1230],\"valid\"],[[1231,1231],\"valid\"],[[1232,1232],\"mapped\",[1233]],[[1233,1233],\"valid\"],[[1234,1234],\"mapped\",[1235]],[[1235,1235],\"valid\"],[[1236,1236],\"mapped\",[1237]],[[1237,1237],\"valid\"],[[1238,1238],\"mapped\",[1239]],[[1239,1239],\"valid\"],[[1240,1240],\"mapped\",[1241]],[[1241,1241],\"valid\"],[[1242,1242],\"mapped\",[1243]],[[1243,1243],\"valid\"],[[1244,1244],\"mapped\",[1245]],[[1245,1245],\"valid\"],[[1246,1246],\"mapped\",[1247]],[[1247,1247],\"valid\"],[[1248,1248],\"mapped\",[1249]],[[1249,1249],\"valid\"],[[1250,1250],\"mapped\",[1251]],[[1251,1251],\"valid\"],[[1252,1252],\"mapped\",[1253]],[[1253,1253],\"valid\"],[[1254,1254],\"mapped\",[1255]],[[1255,1255],\"valid\"],[[1256,1256],\"mapped\",[1257]],[[1257,1257],\"valid\"],[[1258,1258],\"mapped\",[1259]],[[1259,1259],\"valid\"],[[1260,1260],\"mapped\",[1261]],[[1261,1261],\"valid\"],[[1262,1262],\"mapped\",[1263]],[[1263,1263],\"valid\"],[[1264,1264],\"mapped\",[1265]],[[1265,1265],\"valid\"],[[1266,1266],\"mapped\",[1267]],[[1267,1267],\"valid\"],[[1268,1268],\"mapped\",[1269]],[[1269,1269],\"valid\"],[[1270,1270],\"mapped\",[1271]],[[1271,1271],\"valid\"],[[1272,1272],\"mapped\",[1273]],[[1273,1273],\"valid\"],[[1274,1274],\"mapped\",[1275]],[[1275,1275],\"valid\"],[[1276,1276],\"mapped\",[1277]],[[1277,1277],\"valid\"],[[1278,1278],\"mapped\",[1279]],[[1279,1279],\"valid\"],[[1280,1280],\"mapped\",[1281]],[[1281,1281],\"valid\"],[[1282,1282],\"mapped\",[1283]],[[1283,1283],\"valid\"],[[1284,1284],\"mapped\",[1285]],[[1285,1285],\"valid\"],[[1286,1286],\"mapped\",[1287]],[[1287,1287],\"valid\"],[[1288,1288],\"mapped\",[1289]],[[1289,1289],\"valid\"],[[1290,1290],\"mapped\",[1291]],[[1291,1291],\"valid\"],[[1292,1292],\"mapped\",[1293]],[[1293,1293],\"valid\"],[[1294,1294],\"mapped\",[1295]],[[1295,1295],\"valid\"],[[1296,1296],\"mapped\",[1297]],[[1297,1297],\"valid\"],[[1298,1298],\"mapped\",[1299]],[[1299,1299],\"valid\"],[[1300,1300],\"mapped\",[1301]],[[1301,1301],\"valid\"],[[1302,1302],\"mapped\",[1303]],[[1303,1303],\"valid\"],[[1304,1304],\"mapped\",[1305]],[[1305,1305],\"valid\"],[[1306,1306],\"mapped\",[1307]],[[1307,1307],\"valid\"],[[1308,1308],\"mapped\",[1309]],[[1309,1309],\"valid\"],[[1310,1310],\"mapped\",[1311]],[[1311,1311],\"valid\"],[[1312,1312],\"mapped\",[1313]],[[1313,1313],\"valid\"],[[1314,1314],\"mapped\",[1315]],[[1315,1315],\"valid\"],[[1316,1316],\"mapped\",[1317]],[[1317,1317],\"valid\"],[[1318,1318],\"mapped\",[1319]],[[1319,1319],\"valid\"],[[1320,1320],\"mapped\",[1321]],[[1321,1321],\"valid\"],[[1322,1322],\"mapped\",[1323]],[[1323,1323],\"valid\"],[[1324,1324],\"mapped\",[1325]],[[1325,1325],\"valid\"],[[1326,1326],\"mapped\",[1327]],[[1327,1327],\"valid\"],[[1328,1328],\"disallowed\"],[[1329,1329],\"mapped\",[1377]],[[1330,1330],\"mapped\",[1378]],[[1331,1331],\"mapped\",[1379]],[[1332,1332],\"mapped\",[1380]],[[1333,1333],\"mapped\",[1381]],[[1334,1334],\"mapped\",[1382]],[[1335,1335],\"mapped\",[1383]],[[1336,1336],\"mapped\",[1384]],[[1337,1337],\"mapped\",[1385]],[[1338,1338],\"mapped\",[1386]],[[1339,1339],\"mapped\",[1387]],[[1340,1340],\"mapped\",[1388]],[[1341,1341],\"mapped\",[1389]],[[1342,1342],\"mapped\",[1390]],[[1343,1343],\"mapped\",[1391]],[[1344,1344],\"mapped\",[1392]],[[1345,1345],\"mapped\",[1393]],[[1346,1346],\"mapped\",[1394]],[[1347,1347],\"mapped\",[1395]],[[1348,1348],\"mapped\",[1396]],[[1349,1349],\"mapped\",[1397]],[[1350,1350],\"mapped\",[1398]],[[1351,1351],\"mapped\",[1399]],[[1352,1352],\"mapped\",[1400]],[[1353,1353],\"mapped\",[1401]],[[1354,1354],\"mapped\",[1402]],[[1355,1355],\"mapped\",[1403]],[[1356,1356],\"mapped\",[1404]],[[1357,1357],\"mapped\",[1405]],[[1358,1358],\"mapped\",[1406]],[[1359,1359],\"mapped\",[1407]],[[1360,1360],\"mapped\",[1408]],[[1361,1361],\"mapped\",[1409]],[[1362,1362],\"mapped\",[1410]],[[1363,1363],\"mapped\",[1411]],[[1364,1364],\"mapped\",[1412]],[[1365,1365],\"mapped\",[1413]],[[1366,1366],\"mapped\",[1414]],[[1367,1368],\"disallowed\"],[[1369,1369],\"valid\"],[[1370,1375],\"valid\",[],\"NV8\"],[[1376,1376],\"disallowed\"],[[1377,1414],\"valid\"],[[1415,1415],\"mapped\",[1381,1410]],[[1416,1416],\"disallowed\"],[[1417,1417],\"valid\",[],\"NV8\"],[[1418,1418],\"valid\",[],\"NV8\"],[[1419,1420],\"disallowed\"],[[1421,1422],\"valid\",[],\"NV8\"],[[1423,1423],\"valid\",[],\"NV8\"],[[1424,1424],\"disallowed\"],[[1425,1441],\"valid\"],[[1442,1442],\"valid\"],[[1443,1455],\"valid\"],[[1456,1465],\"valid\"],[[1466,1466],\"valid\"],[[1467,1469],\"valid\"],[[1470,1470],\"valid\",[],\"NV8\"],[[1471,1471],\"valid\"],[[1472,1472],\"valid\",[],\"NV8\"],[[1473,1474],\"valid\"],[[1475,1475],\"valid\",[],\"NV8\"],[[1476,1476],\"valid\"],[[1477,1477],\"valid\"],[[1478,1478],\"valid\",[],\"NV8\"],[[1479,1479],\"valid\"],[[1480,1487],\"disallowed\"],[[1488,1514],\"valid\"],[[1515,1519],\"disallowed\"],[[1520,1524],\"valid\"],[[1525,1535],\"disallowed\"],[[1536,1539],\"disallowed\"],[[1540,1540],\"disallowed\"],[[1541,1541],\"disallowed\"],[[1542,1546],\"valid\",[],\"NV8\"],[[1547,1547],\"valid\",[],\"NV8\"],[[1548,1548],\"valid\",[],\"NV8\"],[[1549,1551],\"valid\",[],\"NV8\"],[[1552,1557],\"valid\"],[[1558,1562],\"valid\"],[[1563,1563],\"valid\",[],\"NV8\"],[[1564,1564],\"disallowed\"],[[1565,1565],\"disallowed\"],[[1566,1566],\"valid\",[],\"NV8\"],[[1567,1567],\"valid\",[],\"NV8\"],[[1568,1568],\"valid\"],[[1569,1594],\"valid\"],[[1595,1599],\"valid\"],[[1600,1600],\"valid\",[],\"NV8\"],[[1601,1618],\"valid\"],[[1619,1621],\"valid\"],[[1622,1624],\"valid\"],[[1625,1630],\"valid\"],[[1631,1631],\"valid\"],[[1632,1641],\"valid\"],[[1642,1645],\"valid\",[],\"NV8\"],[[1646,1647],\"valid\"],[[1648,1652],\"valid\"],[[1653,1653],\"mapped\",[1575,1652]],[[1654,1654],\"mapped\",[1608,1652]],[[1655,1655],\"mapped\",[1735,1652]],[[1656,1656],\"mapped\",[1610,1652]],[[1657,1719],\"valid\"],[[1720,1721],\"valid\"],[[1722,1726],\"valid\"],[[1727,1727],\"valid\"],[[1728,1742],\"valid\"],[[1743,1743],\"valid\"],[[1744,1747],\"valid\"],[[1748,1748],\"valid\",[],\"NV8\"],[[1749,1756],\"valid\"],[[1757,1757],\"disallowed\"],[[1758,1758],\"valid\",[],\"NV8\"],[[1759,1768],\"valid\"],[[1769,1769],\"valid\",[],\"NV8\"],[[1770,1773],\"valid\"],[[1774,1775],\"valid\"],[[1776,1785],\"valid\"],[[1786,1790],\"valid\"],[[1791,1791],\"valid\"],[[1792,1805],\"valid\",[],\"NV8\"],[[1806,1806],\"disallowed\"],[[1807,1807],\"disallowed\"],[[1808,1836],\"valid\"],[[1837,1839],\"valid\"],[[1840,1866],\"valid\"],[[1867,1868],\"disallowed\"],[[1869,1871],\"valid\"],[[1872,1901],\"valid\"],[[1902,1919],\"valid\"],[[1920,1968],\"valid\"],[[1969,1969],\"valid\"],[[1970,1983],\"disallowed\"],[[1984,2037],\"valid\"],[[2038,2042],\"valid\",[],\"NV8\"],[[2043,2047],\"disallowed\"],[[2048,2093],\"valid\"],[[2094,2095],\"disallowed\"],[[2096,2110],\"valid\",[],\"NV8\"],[[2111,2111],\"disallowed\"],[[2112,2139],\"valid\"],[[2140,2141],\"disallowed\"],[[2142,2142],\"valid\",[],\"NV8\"],[[2143,2207],\"disallowed\"],[[2208,2208],\"valid\"],[[2209,2209],\"valid\"],[[2210,2220],\"valid\"],[[2221,2226],\"valid\"],[[2227,2228],\"valid\"],[[2229,2274],\"disallowed\"],[[2275,2275],\"valid\"],[[2276,2302],\"valid\"],[[2303,2303],\"valid\"],[[2304,2304],\"valid\"],[[2305,2307],\"valid\"],[[2308,2308],\"valid\"],[[2309,2361],\"valid\"],[[2362,2363],\"valid\"],[[2364,2381],\"valid\"],[[2382,2382],\"valid\"],[[2383,2383],\"valid\"],[[2384,2388],\"valid\"],[[2389,2389],\"valid\"],[[2390,2391],\"valid\"],[[2392,2392],\"mapped\",[2325,2364]],[[2393,2393],\"mapped\",[2326,2364]],[[2394,2394],\"mapped\",[2327,2364]],[[2395,2395],\"mapped\",[2332,2364]],[[2396,2396],\"mapped\",[2337,2364]],[[2397,2397],\"mapped\",[2338,2364]],[[2398,2398],\"mapped\",[2347,2364]],[[2399,2399],\"mapped\",[2351,2364]],[[2400,2403],\"valid\"],[[2404,2405],\"valid\",[],\"NV8\"],[[2406,2415],\"valid\"],[[2416,2416],\"valid\",[],\"NV8\"],[[2417,2418],\"valid\"],[[2419,2423],\"valid\"],[[2424,2424],\"valid\"],[[2425,2426],\"valid\"],[[2427,2428],\"valid\"],[[2429,2429],\"valid\"],[[2430,2431],\"valid\"],[[2432,2432],\"valid\"],[[2433,2435],\"valid\"],[[2436,2436],\"disallowed\"],[[2437,2444],\"valid\"],[[2445,2446],\"disallowed\"],[[2447,2448],\"valid\"],[[2449,2450],\"disallowed\"],[[2451,2472],\"valid\"],[[2473,2473],\"disallowed\"],[[2474,2480],\"valid\"],[[2481,2481],\"disallowed\"],[[2482,2482],\"valid\"],[[2483,2485],\"disallowed\"],[[2486,2489],\"valid\"],[[2490,2491],\"disallowed\"],[[2492,2492],\"valid\"],[[2493,2493],\"valid\"],[[2494,2500],\"valid\"],[[2501,2502],\"disallowed\"],[[2503,2504],\"valid\"],[[2505,2506],\"disallowed\"],[[2507,2509],\"valid\"],[[2510,2510],\"valid\"],[[2511,2518],\"disallowed\"],[[2519,2519],\"valid\"],[[2520,2523],\"disallowed\"],[[2524,2524],\"mapped\",[2465,2492]],[[2525,2525],\"mapped\",[2466,2492]],[[2526,2526],\"disallowed\"],[[2527,2527],\"mapped\",[2479,2492]],[[2528,2531],\"valid\"],[[2532,2533],\"disallowed\"],[[2534,2545],\"valid\"],[[2546,2554],\"valid\",[],\"NV8\"],[[2555,2555],\"valid\",[],\"NV8\"],[[2556,2560],\"disallowed\"],[[2561,2561],\"valid\"],[[2562,2562],\"valid\"],[[2563,2563],\"valid\"],[[2564,2564],\"disallowed\"],[[2565,2570],\"valid\"],[[2571,2574],\"disallowed\"],[[2575,2576],\"valid\"],[[2577,2578],\"disallowed\"],[[2579,2600],\"valid\"],[[2601,2601],\"disallowed\"],[[2602,2608],\"valid\"],[[2609,2609],\"disallowed\"],[[2610,2610],\"valid\"],[[2611,2611],\"mapped\",[2610,2620]],[[2612,2612],\"disallowed\"],[[2613,2613],\"valid\"],[[2614,2614],\"mapped\",[2616,2620]],[[2615,2615],\"disallowed\"],[[2616,2617],\"valid\"],[[2618,2619],\"disallowed\"],[[2620,2620],\"valid\"],[[2621,2621],\"disallowed\"],[[2622,2626],\"valid\"],[[2627,2630],\"disallowed\"],[[2631,2632],\"valid\"],[[2633,2634],\"disallowed\"],[[2635,2637],\"valid\"],[[2638,2640],\"disallowed\"],[[2641,2641],\"valid\"],[[2642,2648],\"disallowed\"],[[2649,2649],\"mapped\",[2582,2620]],[[2650,2650],\"mapped\",[2583,2620]],[[2651,2651],\"mapped\",[2588,2620]],[[2652,2652],\"valid\"],[[2653,2653],\"disallowed\"],[[2654,2654],\"mapped\",[2603,2620]],[[2655,2661],\"disallowed\"],[[2662,2676],\"valid\"],[[2677,2677],\"valid\"],[[2678,2688],\"disallowed\"],[[2689,2691],\"valid\"],[[2692,2692],\"disallowed\"],[[2693,2699],\"valid\"],[[2700,2700],\"valid\"],[[2701,2701],\"valid\"],[[2702,2702],\"disallowed\"],[[2703,2705],\"valid\"],[[2706,2706],\"disallowed\"],[[2707,2728],\"valid\"],[[2729,2729],\"disallowed\"],[[2730,2736],\"valid\"],[[2737,2737],\"disallowed\"],[[2738,2739],\"valid\"],[[2740,2740],\"disallowed\"],[[2741,2745],\"valid\"],[[2746,2747],\"disallowed\"],[[2748,2757],\"valid\"],[[2758,2758],\"disallowed\"],[[2759,2761],\"valid\"],[[2762,2762],\"disallowed\"],[[2763,2765],\"valid\"],[[2766,2767],\"disallowed\"],[[2768,2768],\"valid\"],[[2769,2783],\"disallowed\"],[[2784,2784],\"valid\"],[[2785,2787],\"valid\"],[[2788,2789],\"disallowed\"],[[2790,2799],\"valid\"],[[2800,2800],\"valid\",[],\"NV8\"],[[2801,2801],\"valid\",[],\"NV8\"],[[2802,2808],\"disallowed\"],[[2809,2809],\"valid\"],[[2810,2816],\"disallowed\"],[[2817,2819],\"valid\"],[[2820,2820],\"disallowed\"],[[2821,2828],\"valid\"],[[2829,2830],\"disallowed\"],[[2831,2832],\"valid\"],[[2833,2834],\"disallowed\"],[[2835,2856],\"valid\"],[[2857,2857],\"disallowed\"],[[2858,2864],\"valid\"],[[2865,2865],\"disallowed\"],[[2866,2867],\"valid\"],[[2868,2868],\"disallowed\"],[[2869,2869],\"valid\"],[[2870,2873],\"valid\"],[[2874,2875],\"disallowed\"],[[2876,2883],\"valid\"],[[2884,2884],\"valid\"],[[2885,2886],\"disallowed\"],[[2887,2888],\"valid\"],[[2889,2890],\"disallowed\"],[[2891,2893],\"valid\"],[[2894,2901],\"disallowed\"],[[2902,2903],\"valid\"],[[2904,2907],\"disallowed\"],[[2908,2908],\"mapped\",[2849,2876]],[[2909,2909],\"mapped\",[2850,2876]],[[2910,2910],\"disallowed\"],[[2911,2913],\"valid\"],[[2914,2915],\"valid\"],[[2916,2917],\"disallowed\"],[[2918,2927],\"valid\"],[[2928,2928],\"valid\",[],\"NV8\"],[[2929,2929],\"valid\"],[[2930,2935],\"valid\",[],\"NV8\"],[[2936,2945],\"disallowed\"],[[2946,2947],\"valid\"],[[2948,2948],\"disallowed\"],[[2949,2954],\"valid\"],[[2955,2957],\"disallowed\"],[[2958,2960],\"valid\"],[[2961,2961],\"disallowed\"],[[2962,2965],\"valid\"],[[2966,2968],\"disallowed\"],[[2969,2970],\"valid\"],[[2971,2971],\"disallowed\"],[[2972,2972],\"valid\"],[[2973,2973],\"disallowed\"],[[2974,2975],\"valid\"],[[2976,2978],\"disallowed\"],[[2979,2980],\"valid\"],[[2981,2983],\"disallowed\"],[[2984,2986],\"valid\"],[[2987,2989],\"disallowed\"],[[2990,2997],\"valid\"],[[2998,2998],\"valid\"],[[2999,3001],\"valid\"],[[3002,3005],\"disallowed\"],[[3006,3010],\"valid\"],[[3011,3013],\"disallowed\"],[[3014,3016],\"valid\"],[[3017,3017],\"disallowed\"],[[3018,3021],\"valid\"],[[3022,3023],\"disallowed\"],[[3024,3024],\"valid\"],[[3025,3030],\"disallowed\"],[[3031,3031],\"valid\"],[[3032,3045],\"disallowed\"],[[3046,3046],\"valid\"],[[3047,3055],\"valid\"],[[3056,3058],\"valid\",[],\"NV8\"],[[3059,3066],\"valid\",[],\"NV8\"],[[3067,3071],\"disallowed\"],[[3072,3072],\"valid\"],[[3073,3075],\"valid\"],[[3076,3076],\"disallowed\"],[[3077,3084],\"valid\"],[[3085,3085],\"disallowed\"],[[3086,3088],\"valid\"],[[3089,3089],\"disallowed\"],[[3090,3112],\"valid\"],[[3113,3113],\"disallowed\"],[[3114,3123],\"valid\"],[[3124,3124],\"valid\"],[[3125,3129],\"valid\"],[[3130,3132],\"disallowed\"],[[3133,3133],\"valid\"],[[3134,3140],\"valid\"],[[3141,3141],\"disallowed\"],[[3142,3144],\"valid\"],[[3145,3145],\"disallowed\"],[[3146,3149],\"valid\"],[[3150,3156],\"disallowed\"],[[3157,3158],\"valid\"],[[3159,3159],\"disallowed\"],[[3160,3161],\"valid\"],[[3162,3162],\"valid\"],[[3163,3167],\"disallowed\"],[[3168,3169],\"valid\"],[[3170,3171],\"valid\"],[[3172,3173],\"disallowed\"],[[3174,3183],\"valid\"],[[3184,3191],\"disallowed\"],[[3192,3199],\"valid\",[],\"NV8\"],[[3200,3200],\"disallowed\"],[[3201,3201],\"valid\"],[[3202,3203],\"valid\"],[[3204,3204],\"disallowed\"],[[3205,3212],\"valid\"],[[3213,3213],\"disallowed\"],[[3214,3216],\"valid\"],[[3217,3217],\"disallowed\"],[[3218,3240],\"valid\"],[[3241,3241],\"disallowed\"],[[3242,3251],\"valid\"],[[3252,3252],\"disallowed\"],[[3253,3257],\"valid\"],[[3258,3259],\"disallowed\"],[[3260,3261],\"valid\"],[[3262,3268],\"valid\"],[[3269,3269],\"disallowed\"],[[3270,3272],\"valid\"],[[3273,3273],\"disallowed\"],[[3274,3277],\"valid\"],[[3278,3284],\"disallowed\"],[[3285,3286],\"valid\"],[[3287,3293],\"disallowed\"],[[3294,3294],\"valid\"],[[3295,3295],\"disallowed\"],[[3296,3297],\"valid\"],[[3298,3299],\"valid\"],[[3300,3301],\"disallowed\"],[[3302,3311],\"valid\"],[[3312,3312],\"disallowed\"],[[3313,3314],\"valid\"],[[3315,3328],\"disallowed\"],[[3329,3329],\"valid\"],[[3330,3331],\"valid\"],[[3332,3332],\"disallowed\"],[[3333,3340],\"valid\"],[[3341,3341],\"disallowed\"],[[3342,3344],\"valid\"],[[3345,3345],\"disallowed\"],[[3346,3368],\"valid\"],[[3369,3369],\"valid\"],[[3370,3385],\"valid\"],[[3386,3386],\"valid\"],[[3387,3388],\"disallowed\"],[[3389,3389],\"valid\"],[[3390,3395],\"valid\"],[[3396,3396],\"valid\"],[[3397,3397],\"disallowed\"],[[3398,3400],\"valid\"],[[3401,3401],\"disallowed\"],[[3402,3405],\"valid\"],[[3406,3406],\"valid\"],[[3407,3414],\"disallowed\"],[[3415,3415],\"valid\"],[[3416,3422],\"disallowed\"],[[3423,3423],\"valid\"],[[3424,3425],\"valid\"],[[3426,3427],\"valid\"],[[3428,3429],\"disallowed\"],[[3430,3439],\"valid\"],[[3440,3445],\"valid\",[],\"NV8\"],[[3446,3448],\"disallowed\"],[[3449,3449],\"valid\",[],\"NV8\"],[[3450,3455],\"valid\"],[[3456,3457],\"disallowed\"],[[3458,3459],\"valid\"],[[3460,3460],\"disallowed\"],[[3461,3478],\"valid\"],[[3479,3481],\"disallowed\"],[[3482,3505],\"valid\"],[[3506,3506],\"disallowed\"],[[3507,3515],\"valid\"],[[3516,3516],\"disallowed\"],[[3517,3517],\"valid\"],[[3518,3519],\"disallowed\"],[[3520,3526],\"valid\"],[[3527,3529],\"disallowed\"],[[3530,3530],\"valid\"],[[3531,3534],\"disallowed\"],[[3535,3540],\"valid\"],[[3541,3541],\"disallowed\"],[[3542,3542],\"valid\"],[[3543,3543],\"disallowed\"],[[3544,3551],\"valid\"],[[3552,3557],\"disallowed\"],[[3558,3567],\"valid\"],[[3568,3569],\"disallowed\"],[[3570,3571],\"valid\"],[[3572,3572],\"valid\",[],\"NV8\"],[[3573,3584],\"disallowed\"],[[3585,3634],\"valid\"],[[3635,3635],\"mapped\",[3661,3634]],[[3636,3642],\"valid\"],[[3643,3646],\"disallowed\"],[[3647,3647],\"valid\",[],\"NV8\"],[[3648,3662],\"valid\"],[[3663,3663],\"valid\",[],\"NV8\"],[[3664,3673],\"valid\"],[[3674,3675],\"valid\",[],\"NV8\"],[[3676,3712],\"disallowed\"],[[3713,3714],\"valid\"],[[3715,3715],\"disallowed\"],[[3716,3716],\"valid\"],[[3717,3718],\"disallowed\"],[[3719,3720],\"valid\"],[[3721,3721],\"disallowed\"],[[3722,3722],\"valid\"],[[3723,3724],\"disallowed\"],[[3725,3725],\"valid\"],[[3726,3731],\"disallowed\"],[[3732,3735],\"valid\"],[[3736,3736],\"disallowed\"],[[3737,3743],\"valid\"],[[3744,3744],\"disallowed\"],[[3745,3747],\"valid\"],[[3748,3748],\"disallowed\"],[[3749,3749],\"valid\"],[[3750,3750],\"disallowed\"],[[3751,3751],\"valid\"],[[3752,3753],\"disallowed\"],[[3754,3755],\"valid\"],[[3756,3756],\"disallowed\"],[[3757,3762],\"valid\"],[[3763,3763],\"mapped\",[3789,3762]],[[3764,3769],\"valid\"],[[3770,3770],\"disallowed\"],[[3771,3773],\"valid\"],[[3774,3775],\"disallowed\"],[[3776,3780],\"valid\"],[[3781,3781],\"disallowed\"],[[3782,3782],\"valid\"],[[3783,3783],\"disallowed\"],[[3784,3789],\"valid\"],[[3790,3791],\"disallowed\"],[[3792,3801],\"valid\"],[[3802,3803],\"disallowed\"],[[3804,3804],\"mapped\",[3755,3737]],[[3805,3805],\"mapped\",[3755,3745]],[[3806,3807],\"valid\"],[[3808,3839],\"disallowed\"],[[3840,3840],\"valid\"],[[3841,3850],\"valid\",[],\"NV8\"],[[3851,3851],\"valid\"],[[3852,3852],\"mapped\",[3851]],[[3853,3863],\"valid\",[],\"NV8\"],[[3864,3865],\"valid\"],[[3866,3871],\"valid\",[],\"NV8\"],[[3872,3881],\"valid\"],[[3882,3892],\"valid\",[],\"NV8\"],[[3893,3893],\"valid\"],[[3894,3894],\"valid\",[],\"NV8\"],[[3895,3895],\"valid\"],[[3896,3896],\"valid\",[],\"NV8\"],[[3897,3897],\"valid\"],[[3898,3901],\"valid\",[],\"NV8\"],[[3902,3906],\"valid\"],[[3907,3907],\"mapped\",[3906,4023]],[[3908,3911],\"valid\"],[[3912,3912],\"disallowed\"],[[3913,3916],\"valid\"],[[3917,3917],\"mapped\",[3916,4023]],[[3918,3921],\"valid\"],[[3922,3922],\"mapped\",[3921,4023]],[[3923,3926],\"valid\"],[[3927,3927],\"mapped\",[3926,4023]],[[3928,3931],\"valid\"],[[3932,3932],\"mapped\",[3931,4023]],[[3933,3944],\"valid\"],[[3945,3945],\"mapped\",[3904,4021]],[[3946,3946],\"valid\"],[[3947,3948],\"valid\"],[[3949,3952],\"disallowed\"],[[3953,3954],\"valid\"],[[3955,3955],\"mapped\",[3953,3954]],[[3956,3956],\"valid\"],[[3957,3957],\"mapped\",[3953,3956]],[[3958,3958],\"mapped\",[4018,3968]],[[3959,3959],\"mapped\",[4018,3953,3968]],[[3960,3960],\"mapped\",[4019,3968]],[[3961,3961],\"mapped\",[4019,3953,3968]],[[3962,3968],\"valid\"],[[3969,3969],\"mapped\",[3953,3968]],[[3970,3972],\"valid\"],[[3973,3973],\"valid\",[],\"NV8\"],[[3974,3979],\"valid\"],[[3980,3983],\"valid\"],[[3984,3986],\"valid\"],[[3987,3987],\"mapped\",[3986,4023]],[[3988,3989],\"valid\"],[[3990,3990],\"valid\"],[[3991,3991],\"valid\"],[[3992,3992],\"disallowed\"],[[3993,3996],\"valid\"],[[3997,3997],\"mapped\",[3996,4023]],[[3998,4001],\"valid\"],[[4002,4002],\"mapped\",[4001,4023]],[[4003,4006],\"valid\"],[[4007,4007],\"mapped\",[4006,4023]],[[4008,4011],\"valid\"],[[4012,4012],\"mapped\",[4011,4023]],[[4013,4013],\"valid\"],[[4014,4016],\"valid\"],[[4017,4023],\"valid\"],[[4024,4024],\"valid\"],[[4025,4025],\"mapped\",[3984,4021]],[[4026,4028],\"valid\"],[[4029,4029],\"disallowed\"],[[4030,4037],\"valid\",[],\"NV8\"],[[4038,4038],\"valid\"],[[4039,4044],\"valid\",[],\"NV8\"],[[4045,4045],\"disallowed\"],[[4046,4046],\"valid\",[],\"NV8\"],[[4047,4047],\"valid\",[],\"NV8\"],[[4048,4049],\"valid\",[],\"NV8\"],[[4050,4052],\"valid\",[],\"NV8\"],[[4053,4056],\"valid\",[],\"NV8\"],[[4057,4058],\"valid\",[],\"NV8\"],[[4059,4095],\"disallowed\"],[[4096,4129],\"valid\"],[[4130,4130],\"valid\"],[[4131,4135],\"valid\"],[[4136,4136],\"valid\"],[[4137,4138],\"valid\"],[[4139,4139],\"valid\"],[[4140,4146],\"valid\"],[[4147,4149],\"valid\"],[[4150,4153],\"valid\"],[[4154,4159],\"valid\"],[[4160,4169],\"valid\"],[[4170,4175],\"valid\",[],\"NV8\"],[[4176,4185],\"valid\"],[[4186,4249],\"valid\"],[[4250,4253],\"valid\"],[[4254,4255],\"valid\",[],\"NV8\"],[[4256,4293],\"disallowed\"],[[4294,4294],\"disallowed\"],[[4295,4295],\"mapped\",[11559]],[[4296,4300],\"disallowed\"],[[4301,4301],\"mapped\",[11565]],[[4302,4303],\"disallowed\"],[[4304,4342],\"valid\"],[[4343,4344],\"valid\"],[[4345,4346],\"valid\"],[[4347,4347],\"valid\",[],\"NV8\"],[[4348,4348],\"mapped\",[4316]],[[4349,4351],\"valid\"],[[4352,4441],\"valid\",[],\"NV8\"],[[4442,4446],\"valid\",[],\"NV8\"],[[4447,4448],\"disallowed\"],[[4449,4514],\"valid\",[],\"NV8\"],[[4515,4519],\"valid\",[],\"NV8\"],[[4520,4601],\"valid\",[],\"NV8\"],[[4602,4607],\"valid\",[],\"NV8\"],[[4608,4614],\"valid\"],[[4615,4615],\"valid\"],[[4616,4678],\"valid\"],[[4679,4679],\"valid\"],[[4680,4680],\"valid\"],[[4681,4681],\"disallowed\"],[[4682,4685],\"valid\"],[[4686,4687],\"disallowed\"],[[4688,4694],\"valid\"],[[4695,4695],\"disallowed\"],[[4696,4696],\"valid\"],[[4697,4697],\"disallowed\"],[[4698,4701],\"valid\"],[[4702,4703],\"disallowed\"],[[4704,4742],\"valid\"],[[4743,4743],\"valid\"],[[4744,4744],\"valid\"],[[4745,4745],\"disallowed\"],[[4746,4749],\"valid\"],[[4750,4751],\"disallowed\"],[[4752,4782],\"valid\"],[[4783,4783],\"valid\"],[[4784,4784],\"valid\"],[[4785,4785],\"disallowed\"],[[4786,4789],\"valid\"],[[4790,4791],\"disallowed\"],[[4792,4798],\"valid\"],[[4799,4799],\"disallowed\"],[[4800,4800],\"valid\"],[[4801,4801],\"disallowed\"],[[4802,4805],\"valid\"],[[4806,4807],\"disallowed\"],[[4808,4814],\"valid\"],[[4815,4815],\"valid\"],[[4816,4822],\"valid\"],[[4823,4823],\"disallowed\"],[[4824,4846],\"valid\"],[[4847,4847],\"valid\"],[[4848,4878],\"valid\"],[[4879,4879],\"valid\"],[[4880,4880],\"valid\"],[[4881,4881],\"disallowed\"],[[4882,4885],\"valid\"],[[4886,4887],\"disallowed\"],[[4888,4894],\"valid\"],[[4895,4895],\"valid\"],[[4896,4934],\"valid\"],[[4935,4935],\"valid\"],[[4936,4954],\"valid\"],[[4955,4956],\"disallowed\"],[[4957,4958],\"valid\"],[[4959,4959],\"valid\"],[[4960,4960],\"valid\",[],\"NV8\"],[[4961,4988],\"valid\",[],\"NV8\"],[[4989,4991],\"disallowed\"],[[4992,5007],\"valid\"],[[5008,5017],\"valid\",[],\"NV8\"],[[5018,5023],\"disallowed\"],[[5024,5108],\"valid\"],[[5109,5109],\"valid\"],[[5110,5111],\"disallowed\"],[[5112,5112],\"mapped\",[5104]],[[5113,5113],\"mapped\",[5105]],[[5114,5114],\"mapped\",[5106]],[[5115,5115],\"mapped\",[5107]],[[5116,5116],\"mapped\",[5108]],[[5117,5117],\"mapped\",[5109]],[[5118,5119],\"disallowed\"],[[5120,5120],\"valid\",[],\"NV8\"],[[5121,5740],\"valid\"],[[5741,5742],\"valid\",[],\"NV8\"],[[5743,5750],\"valid\"],[[5751,5759],\"valid\"],[[5760,5760],\"disallowed\"],[[5761,5786],\"valid\"],[[5787,5788],\"valid\",[],\"NV8\"],[[5789,5791],\"disallowed\"],[[5792,5866],\"valid\"],[[5867,5872],\"valid\",[],\"NV8\"],[[5873,5880],\"valid\"],[[5881,5887],\"disallowed\"],[[5888,5900],\"valid\"],[[5901,5901],\"disallowed\"],[[5902,5908],\"valid\"],[[5909,5919],\"disallowed\"],[[5920,5940],\"valid\"],[[5941,5942],\"valid\",[],\"NV8\"],[[5943,5951],\"disallowed\"],[[5952,5971],\"valid\"],[[5972,5983],\"disallowed\"],[[5984,5996],\"valid\"],[[5997,5997],\"disallowed\"],[[5998,6000],\"valid\"],[[6001,6001],\"disallowed\"],[[6002,6003],\"valid\"],[[6004,6015],\"disallowed\"],[[6016,6067],\"valid\"],[[6068,6069],\"disallowed\"],[[6070,6099],\"valid\"],[[6100,6102],\"valid\",[],\"NV8\"],[[6103,6103],\"valid\"],[[6104,6107],\"valid\",[],\"NV8\"],[[6108,6108],\"valid\"],[[6109,6109],\"valid\"],[[6110,6111],\"disallowed\"],[[6112,6121],\"valid\"],[[6122,6127],\"disallowed\"],[[6128,6137],\"valid\",[],\"NV8\"],[[6138,6143],\"disallowed\"],[[6144,6149],\"valid\",[],\"NV8\"],[[6150,6150],\"disallowed\"],[[6151,6154],\"valid\",[],\"NV8\"],[[6155,6157],\"ignored\"],[[6158,6158],\"disallowed\"],[[6159,6159],\"disallowed\"],[[6160,6169],\"valid\"],[[6170,6175],\"disallowed\"],[[6176,6263],\"valid\"],[[6264,6271],\"disallowed\"],[[6272,6313],\"valid\"],[[6314,6314],\"valid\"],[[6315,6319],\"disallowed\"],[[6320,6389],\"valid\"],[[6390,6399],\"disallowed\"],[[6400,6428],\"valid\"],[[6429,6430],\"valid\"],[[6431,6431],\"disallowed\"],[[6432,6443],\"valid\"],[[6444,6447],\"disallowed\"],[[6448,6459],\"valid\"],[[6460,6463],\"disallowed\"],[[6464,6464],\"valid\",[],\"NV8\"],[[6465,6467],\"disallowed\"],[[6468,6469],\"valid\",[],\"NV8\"],[[6470,6509],\"valid\"],[[6510,6511],\"disallowed\"],[[6512,6516],\"valid\"],[[6517,6527],\"disallowed\"],[[6528,6569],\"valid\"],[[6570,6571],\"valid\"],[[6572,6575],\"disallowed\"],[[6576,6601],\"valid\"],[[6602,6607],\"disallowed\"],[[6608,6617],\"valid\"],[[6618,6618],\"valid\",[],\"XV8\"],[[6619,6621],\"disallowed\"],[[6622,6623],\"valid\",[],\"NV8\"],[[6624,6655],\"valid\",[],\"NV8\"],[[6656,6683],\"valid\"],[[6684,6685],\"disallowed\"],[[6686,6687],\"valid\",[],\"NV8\"],[[6688,6750],\"valid\"],[[6751,6751],\"disallowed\"],[[6752,6780],\"valid\"],[[6781,6782],\"disallowed\"],[[6783,6793],\"valid\"],[[6794,6799],\"disallowed\"],[[6800,6809],\"valid\"],[[6810,6815],\"disallowed\"],[[6816,6822],\"valid\",[],\"NV8\"],[[6823,6823],\"valid\"],[[6824,6829],\"valid\",[],\"NV8\"],[[6830,6831],\"disallowed\"],[[6832,6845],\"valid\"],[[6846,6846],\"valid\",[],\"NV8\"],[[6847,6911],\"disallowed\"],[[6912,6987],\"valid\"],[[6988,6991],\"disallowed\"],[[6992,7001],\"valid\"],[[7002,7018],\"valid\",[],\"NV8\"],[[7019,7027],\"valid\"],[[7028,7036],\"valid\",[],\"NV8\"],[[7037,7039],\"disallowed\"],[[7040,7082],\"valid\"],[[7083,7085],\"valid\"],[[7086,7097],\"valid\"],[[7098,7103],\"valid\"],[[7104,7155],\"valid\"],[[7156,7163],\"disallowed\"],[[7164,7167],\"valid\",[],\"NV8\"],[[7168,7223],\"valid\"],[[7224,7226],\"disallowed\"],[[7227,7231],\"valid\",[],\"NV8\"],[[7232,7241],\"valid\"],[[7242,7244],\"disallowed\"],[[7245,7293],\"valid\"],[[7294,7295],\"valid\",[],\"NV8\"],[[7296,7359],\"disallowed\"],[[7360,7367],\"valid\",[],\"NV8\"],[[7368,7375],\"disallowed\"],[[7376,7378],\"valid\"],[[7379,7379],\"valid\",[],\"NV8\"],[[7380,7410],\"valid\"],[[7411,7414],\"valid\"],[[7415,7415],\"disallowed\"],[[7416,7417],\"valid\"],[[7418,7423],\"disallowed\"],[[7424,7467],\"valid\"],[[7468,7468],\"mapped\",[97]],[[7469,7469],\"mapped\",[230]],[[7470,7470],\"mapped\",[98]],[[7471,7471],\"valid\"],[[7472,7472],\"mapped\",[100]],[[7473,7473],\"mapped\",[101]],[[7474,7474],\"mapped\",[477]],[[7475,7475],\"mapped\",[103]],[[7476,7476],\"mapped\",[104]],[[7477,7477],\"mapped\",[105]],[[7478,7478],\"mapped\",[106]],[[7479,7479],\"mapped\",[107]],[[7480,7480],\"mapped\",[108]],[[7481,7481],\"mapped\",[109]],[[7482,7482],\"mapped\",[110]],[[7483,7483],\"valid\"],[[7484,7484],\"mapped\",[111]],[[7485,7485],\"mapped\",[547]],[[7486,7486],\"mapped\",[112]],[[7487,7487],\"mapped\",[114]],[[7488,7488],\"mapped\",[116]],[[7489,7489],\"mapped\",[117]],[[7490,7490],\"mapped\",[119]],[[7491,7491],\"mapped\",[97]],[[7492,7492],\"mapped\",[592]],[[7493,7493],\"mapped\",[593]],[[7494,7494],\"mapped\",[7426]],[[7495,7495],\"mapped\",[98]],[[7496,7496],\"mapped\",[100]],[[7497,7497],\"mapped\",[101]],[[7498,7498],\"mapped\",[601]],[[7499,7499],\"mapped\",[603]],[[7500,7500],\"mapped\",[604]],[[7501,7501],\"mapped\",[103]],[[7502,7502],\"valid\"],[[7503,7503],\"mapped\",[107]],[[7504,7504],\"mapped\",[109]],[[7505,7505],\"mapped\",[331]],[[7506,7506],\"mapped\",[111]],[[7507,7507],\"mapped\",[596]],[[7508,7508],\"mapped\",[7446]],[[7509,7509],\"mapped\",[7447]],[[7510,7510],\"mapped\",[112]],[[7511,7511],\"mapped\",[116]],[[7512,7512],\"mapped\",[117]],[[7513,7513],\"mapped\",[7453]],[[7514,7514],\"mapped\",[623]],[[7515,7515],\"mapped\",[118]],[[7516,7516],\"mapped\",[7461]],[[7517,7517],\"mapped\",[946]],[[7518,7518],\"mapped\",[947]],[[7519,7519],\"mapped\",[948]],[[7520,7520],\"mapped\",[966]],[[7521,7521],\"mapped\",[967]],[[7522,7522],\"mapped\",[105]],[[7523,7523],\"mapped\",[114]],[[7524,7524],\"mapped\",[117]],[[7525,7525],\"mapped\",[118]],[[7526,7526],\"mapped\",[946]],[[7527,7527],\"mapped\",[947]],[[7528,7528],\"mapped\",[961]],[[7529,7529],\"mapped\",[966]],[[7530,7530],\"mapped\",[967]],[[7531,7531],\"valid\"],[[7532,7543],\"valid\"],[[7544,7544],\"mapped\",[1085]],[[7545,7578],\"valid\"],[[7579,7579],\"mapped\",[594]],[[7580,7580],\"mapped\",[99]],[[7581,7581],\"mapped\",[597]],[[7582,7582],\"mapped\",[240]],[[7583,7583],\"mapped\",[604]],[[7584,7584],\"mapped\",[102]],[[7585,7585],\"mapped\",[607]],[[7586,7586],\"mapped\",[609]],[[7587,7587],\"mapped\",[613]],[[7588,7588],\"mapped\",[616]],[[7589,7589],\"mapped\",[617]],[[7590,7590],\"mapped\",[618]],[[7591,7591],\"mapped\",[7547]],[[7592,7592],\"mapped\",[669]],[[7593,7593],\"mapped\",[621]],[[7594,7594],\"mapped\",[7557]],[[7595,7595],\"mapped\",[671]],[[7596,7596],\"mapped\",[625]],[[7597,7597],\"mapped\",[624]],[[7598,7598],\"mapped\",[626]],[[7599,7599],\"mapped\",[627]],[[7600,7600],\"mapped\",[628]],[[7601,7601],\"mapped\",[629]],[[7602,7602],\"mapped\",[632]],[[7603,7603],\"mapped\",[642]],[[7604,7604],\"mapped\",[643]],[[7605,7605],\"mapped\",[427]],[[7606,7606],\"mapped\",[649]],[[7607,7607],\"mapped\",[650]],[[7608,7608],\"mapped\",[7452]],[[7609,7609],\"mapped\",[651]],[[7610,7610],\"mapped\",[652]],[[7611,7611],\"mapped\",[122]],[[7612,7612],\"mapped\",[656]],[[7613,7613],\"mapped\",[657]],[[7614,7614],\"mapped\",[658]],[[7615,7615],\"mapped\",[952]],[[7616,7619],\"valid\"],[[7620,7626],\"valid\"],[[7627,7654],\"valid\"],[[7655,7669],\"valid\"],[[7670,7675],\"disallowed\"],[[7676,7676],\"valid\"],[[7677,7677],\"valid\"],[[7678,7679],\"valid\"],[[7680,7680],\"mapped\",[7681]],[[7681,7681],\"valid\"],[[7682,7682],\"mapped\",[7683]],[[7683,7683],\"valid\"],[[7684,7684],\"mapped\",[7685]],[[7685,7685],\"valid\"],[[7686,7686],\"mapped\",[7687]],[[7687,7687],\"valid\"],[[7688,7688],\"mapped\",[7689]],[[7689,7689],\"valid\"],[[7690,7690],\"mapped\",[7691]],[[7691,7691],\"valid\"],[[7692,7692],\"mapped\",[7693]],[[7693,7693],\"valid\"],[[7694,7694],\"mapped\",[7695]],[[7695,7695],\"valid\"],[[7696,7696],\"mapped\",[7697]],[[7697,7697],\"valid\"],[[7698,7698],\"mapped\",[7699]],[[7699,7699],\"valid\"],[[7700,7700],\"mapped\",[7701]],[[7701,7701],\"valid\"],[[7702,7702],\"mapped\",[7703]],[[7703,7703],\"valid\"],[[7704,7704],\"mapped\",[7705]],[[7705,7705],\"valid\"],[[7706,7706],\"mapped\",[7707]],[[7707,7707],\"valid\"],[[7708,7708],\"mapped\",[7709]],[[7709,7709],\"valid\"],[[7710,7710],\"mapped\",[7711]],[[7711,7711],\"valid\"],[[7712,7712],\"mapped\",[7713]],[[7713,7713],\"valid\"],[[7714,7714],\"mapped\",[7715]],[[7715,7715],\"valid\"],[[7716,7716],\"mapped\",[7717]],[[7717,7717],\"valid\"],[[7718,7718],\"mapped\",[7719]],[[7719,7719],\"valid\"],[[7720,7720],\"mapped\",[7721]],[[7721,7721],\"valid\"],[[7722,7722],\"mapped\",[7723]],[[7723,7723],\"valid\"],[[7724,7724],\"mapped\",[7725]],[[7725,7725],\"valid\"],[[7726,7726],\"mapped\",[7727]],[[7727,7727],\"valid\"],[[7728,7728],\"mapped\",[7729]],[[7729,7729],\"valid\"],[[7730,7730],\"mapped\",[7731]],[[7731,7731],\"valid\"],[[7732,7732],\"mapped\",[7733]],[[7733,7733],\"valid\"],[[7734,7734],\"mapped\",[7735]],[[7735,7735],\"valid\"],[[7736,7736],\"mapped\",[7737]],[[7737,7737],\"valid\"],[[7738,7738],\"mapped\",[7739]],[[7739,7739],\"valid\"],[[7740,7740],\"mapped\",[7741]],[[7741,7741],\"valid\"],[[7742,7742],\"mapped\",[7743]],[[7743,7743],\"valid\"],[[7744,7744],\"mapped\",[7745]],[[7745,7745],\"valid\"],[[7746,7746],\"mapped\",[7747]],[[7747,7747],\"valid\"],[[7748,7748],\"mapped\",[7749]],[[7749,7749],\"valid\"],[[7750,7750],\"mapped\",[7751]],[[7751,7751],\"valid\"],[[7752,7752],\"mapped\",[7753]],[[7753,7753],\"valid\"],[[7754,7754],\"mapped\",[7755]],[[7755,7755],\"valid\"],[[7756,7756],\"mapped\",[7757]],[[7757,7757],\"valid\"],[[7758,7758],\"mapped\",[7759]],[[7759,7759],\"valid\"],[[7760,7760],\"mapped\",[7761]],[[7761,7761],\"valid\"],[[7762,7762],\"mapped\",[7763]],[[7763,7763],\"valid\"],[[7764,7764],\"mapped\",[7765]],[[7765,7765],\"valid\"],[[7766,7766],\"mapped\",[7767]],[[7767,7767],\"valid\"],[[7768,7768],\"mapped\",[7769]],[[7769,7769],\"valid\"],[[7770,7770],\"mapped\",[7771]],[[7771,7771],\"valid\"],[[7772,7772],\"mapped\",[7773]],[[7773,7773],\"valid\"],[[7774,7774],\"mapped\",[7775]],[[7775,7775],\"valid\"],[[7776,7776],\"mapped\",[7777]],[[7777,7777],\"valid\"],[[7778,7778],\"mapped\",[7779]],[[7779,7779],\"valid\"],[[7780,7780],\"mapped\",[7781]],[[7781,7781],\"valid\"],[[7782,7782],\"mapped\",[7783]],[[7783,7783],\"valid\"],[[7784,7784],\"mapped\",[7785]],[[7785,7785],\"valid\"],[[7786,7786],\"mapped\",[7787]],[[7787,7787],\"valid\"],[[7788,7788],\"mapped\",[7789]],[[7789,7789],\"valid\"],[[7790,7790],\"mapped\",[7791]],[[7791,7791],\"valid\"],[[7792,7792],\"mapped\",[7793]],[[7793,7793],\"valid\"],[[7794,7794],\"mapped\",[7795]],[[7795,7795],\"valid\"],[[7796,7796],\"mapped\",[7797]],[[7797,7797],\"valid\"],[[7798,7798],\"mapped\",[7799]],[[7799,7799],\"valid\"],[[7800,7800],\"mapped\",[7801]],[[7801,7801],\"valid\"],[[7802,7802],\"mapped\",[7803]],[[7803,7803],\"valid\"],[[7804,7804],\"mapped\",[7805]],[[7805,7805],\"valid\"],[[7806,7806],\"mapped\",[7807]],[[7807,7807],\"valid\"],[[7808,7808],\"mapped\",[7809]],[[7809,7809],\"valid\"],[[7810,7810],\"mapped\",[7811]],[[7811,7811],\"valid\"],[[7812,7812],\"mapped\",[7813]],[[7813,7813],\"valid\"],[[7814,7814],\"mapped\",[7815]],[[7815,7815],\"valid\"],[[7816,7816],\"mapped\",[7817]],[[7817,7817],\"valid\"],[[7818,7818],\"mapped\",[7819]],[[7819,7819],\"valid\"],[[7820,7820],\"mapped\",[7821]],[[7821,7821],\"valid\"],[[7822,7822],\"mapped\",[7823]],[[7823,7823],\"valid\"],[[7824,7824],\"mapped\",[7825]],[[7825,7825],\"valid\"],[[7826,7826],\"mapped\",[7827]],[[7827,7827],\"valid\"],[[7828,7828],\"mapped\",[7829]],[[7829,7833],\"valid\"],[[7834,7834],\"mapped\",[97,702]],[[7835,7835],\"mapped\",[7777]],[[7836,7837],\"valid\"],[[7838,7838],\"mapped\",[115,115]],[[7839,7839],\"valid\"],[[7840,7840],\"mapped\",[7841]],[[7841,7841],\"valid\"],[[7842,7842],\"mapped\",[7843]],[[7843,7843],\"valid\"],[[7844,7844],\"mapped\",[7845]],[[7845,7845],\"valid\"],[[7846,7846],\"mapped\",[7847]],[[7847,7847],\"valid\"],[[7848,7848],\"mapped\",[7849]],[[7849,7849],\"valid\"],[[7850,7850],\"mapped\",[7851]],[[7851,7851],\"valid\"],[[7852,7852],\"mapped\",[7853]],[[7853,7853],\"valid\"],[[7854,7854],\"mapped\",[7855]],[[7855,7855],\"valid\"],[[7856,7856],\"mapped\",[7857]],[[7857,7857],\"valid\"],[[7858,7858],\"mapped\",[7859]],[[7859,7859],\"valid\"],[[7860,7860],\"mapped\",[7861]],[[7861,7861],\"valid\"],[[7862,7862],\"mapped\",[7863]],[[7863,7863],\"valid\"],[[7864,7864],\"mapped\",[7865]],[[7865,7865],\"valid\"],[[7866,7866],\"mapped\",[7867]],[[7867,7867],\"valid\"],[[7868,7868],\"mapped\",[7869]],[[7869,7869],\"valid\"],[[7870,7870],\"mapped\",[7871]],[[7871,7871],\"valid\"],[[7872,7872],\"mapped\",[7873]],[[7873,7873],\"valid\"],[[7874,7874],\"mapped\",[7875]],[[7875,7875],\"valid\"],[[7876,7876],\"mapped\",[7877]],[[7877,7877],\"valid\"],[[7878,7878],\"mapped\",[7879]],[[7879,7879],\"valid\"],[[7880,7880],\"mapped\",[7881]],[[7881,7881],\"valid\"],[[7882,7882],\"mapped\",[7883]],[[7883,7883],\"valid\"],[[7884,7884],\"mapped\",[7885]],[[7885,7885],\"valid\"],[[7886,7886],\"mapped\",[7887]],[[7887,7887],\"valid\"],[[7888,7888],\"mapped\",[7889]],[[7889,7889],\"valid\"],[[7890,7890],\"mapped\",[7891]],[[7891,7891],\"valid\"],[[7892,7892],\"mapped\",[7893]],[[7893,7893],\"valid\"],[[7894,7894],\"mapped\",[7895]],[[7895,7895],\"valid\"],[[7896,7896],\"mapped\",[7897]],[[7897,7897],\"valid\"],[[7898,7898],\"mapped\",[7899]],[[7899,7899],\"valid\"],[[7900,7900],\"mapped\",[7901]],[[7901,7901],\"valid\"],[[7902,7902],\"mapped\",[7903]],[[7903,7903],\"valid\"],[[7904,7904],\"mapped\",[7905]],[[7905,7905],\"valid\"],[[7906,7906],\"mapped\",[7907]],[[7907,7907],\"valid\"],[[7908,7908],\"mapped\",[7909]],[[7909,7909],\"valid\"],[[7910,7910],\"mapped\",[7911]],[[7911,7911],\"valid\"],[[7912,7912],\"mapped\",[7913]],[[7913,7913],\"valid\"],[[7914,7914],\"mapped\",[7915]],[[7915,7915],\"valid\"],[[7916,7916],\"mapped\",[7917]],[[7917,7917],\"valid\"],[[7918,7918],\"mapped\",[7919]],[[7919,7919],\"valid\"],[[7920,7920],\"mapped\",[7921]],[[7921,7921],\"valid\"],[[7922,7922],\"mapped\",[7923]],[[7923,7923],\"valid\"],[[7924,7924],\"mapped\",[7925]],[[7925,7925],\"valid\"],[[7926,7926],\"mapped\",[7927]],[[7927,7927],\"valid\"],[[7928,7928],\"mapped\",[7929]],[[7929,7929],\"valid\"],[[7930,7930],\"mapped\",[7931]],[[7931,7931],\"valid\"],[[7932,7932],\"mapped\",[7933]],[[7933,7933],\"valid\"],[[7934,7934],\"mapped\",[7935]],[[7935,7935],\"valid\"],[[7936,7943],\"valid\"],[[7944,7944],\"mapped\",[7936]],[[7945,7945],\"mapped\",[7937]],[[7946,7946],\"mapped\",[7938]],[[7947,7947],\"mapped\",[7939]],[[7948,7948],\"mapped\",[7940]],[[7949,7949],\"mapped\",[7941]],[[7950,7950],\"mapped\",[7942]],[[7951,7951],\"mapped\",[7943]],[[7952,7957],\"valid\"],[[7958,7959],\"disallowed\"],[[7960,7960],\"mapped\",[7952]],[[7961,7961],\"mapped\",[7953]],[[7962,7962],\"mapped\",[7954]],[[7963,7963],\"mapped\",[7955]],[[7964,7964],\"mapped\",[7956]],[[7965,7965],\"mapped\",[7957]],[[7966,7967],\"disallowed\"],[[7968,7975],\"valid\"],[[7976,7976],\"mapped\",[7968]],[[7977,7977],\"mapped\",[7969]],[[7978,7978],\"mapped\",[7970]],[[7979,7979],\"mapped\",[7971]],[[7980,7980],\"mapped\",[7972]],[[7981,7981],\"mapped\",[7973]],[[7982,7982],\"mapped\",[7974]],[[7983,7983],\"mapped\",[7975]],[[7984,7991],\"valid\"],[[7992,7992],\"mapped\",[7984]],[[7993,7993],\"mapped\",[7985]],[[7994,7994],\"mapped\",[7986]],[[7995,7995],\"mapped\",[7987]],[[7996,7996],\"mapped\",[7988]],[[7997,7997],\"mapped\",[7989]],[[7998,7998],\"mapped\",[7990]],[[7999,7999],\"mapped\",[7991]],[[8000,8005],\"valid\"],[[8006,8007],\"disallowed\"],[[8008,8008],\"mapped\",[8000]],[[8009,8009],\"mapped\",[8001]],[[8010,8010],\"mapped\",[8002]],[[8011,8011],\"mapped\",[8003]],[[8012,8012],\"mapped\",[8004]],[[8013,8013],\"mapped\",[8005]],[[8014,8015],\"disallowed\"],[[8016,8023],\"valid\"],[[8024,8024],\"disallowed\"],[[8025,8025],\"mapped\",[8017]],[[8026,8026],\"disallowed\"],[[8027,8027],\"mapped\",[8019]],[[8028,8028],\"disallowed\"],[[8029,8029],\"mapped\",[8021]],[[8030,8030],\"disallowed\"],[[8031,8031],\"mapped\",[8023]],[[8032,8039],\"valid\"],[[8040,8040],\"mapped\",[8032]],[[8041,8041],\"mapped\",[8033]],[[8042,8042],\"mapped\",[8034]],[[8043,8043],\"mapped\",[8035]],[[8044,8044],\"mapped\",[8036]],[[8045,8045],\"mapped\",[8037]],[[8046,8046],\"mapped\",[8038]],[[8047,8047],\"mapped\",[8039]],[[8048,8048],\"valid\"],[[8049,8049],\"mapped\",[940]],[[8050,8050],\"valid\"],[[8051,8051],\"mapped\",[941]],[[8052,8052],\"valid\"],[[8053,8053],\"mapped\",[942]],[[8054,8054],\"valid\"],[[8055,8055],\"mapped\",[943]],[[8056,8056],\"valid\"],[[8057,8057],\"mapped\",[972]],[[8058,8058],\"valid\"],[[8059,8059],\"mapped\",[973]],[[8060,8060],\"valid\"],[[8061,8061],\"mapped\",[974]],[[8062,8063],\"disallowed\"],[[8064,8064],\"mapped\",[7936,953]],[[8065,8065],\"mapped\",[7937,953]],[[8066,8066],\"mapped\",[7938,953]],[[8067,8067],\"mapped\",[7939,953]],[[8068,8068],\"mapped\",[7940,953]],[[8069,8069],\"mapped\",[7941,953]],[[8070,8070],\"mapped\",[7942,953]],[[8071,8071],\"mapped\",[7943,953]],[[8072,8072],\"mapped\",[7936,953]],[[8073,8073],\"mapped\",[7937,953]],[[8074,8074],\"mapped\",[7938,953]],[[8075,8075],\"mapped\",[7939,953]],[[8076,8076],\"mapped\",[7940,953]],[[8077,8077],\"mapped\",[7941,953]],[[8078,8078],\"mapped\",[7942,953]],[[8079,8079],\"mapped\",[7943,953]],[[8080,8080],\"mapped\",[7968,953]],[[8081,8081],\"mapped\",[7969,953]],[[8082,8082],\"mapped\",[7970,953]],[[8083,8083],\"mapped\",[7971,953]],[[8084,8084],\"mapped\",[7972,953]],[[8085,8085],\"mapped\",[7973,953]],[[8086,8086],\"mapped\",[7974,953]],[[8087,8087],\"mapped\",[7975,953]],[[8088,8088],\"mapped\",[7968,953]],[[8089,8089],\"mapped\",[7969,953]],[[8090,8090],\"mapped\",[7970,953]],[[8091,8091],\"mapped\",[7971,953]],[[8092,8092],\"mapped\",[7972,953]],[[8093,8093],\"mapped\",[7973,953]],[[8094,8094],\"mapped\",[7974,953]],[[8095,8095],\"mapped\",[7975,953]],[[8096,8096],\"mapped\",[8032,953]],[[8097,8097],\"mapped\",[8033,953]],[[8098,8098],\"mapped\",[8034,953]],[[8099,8099],\"mapped\",[8035,953]],[[8100,8100],\"mapped\",[8036,953]],[[8101,8101],\"mapped\",[8037,953]],[[8102,8102],\"mapped\",[8038,953]],[[8103,8103],\"mapped\",[8039,953]],[[8104,8104],\"mapped\",[8032,953]],[[8105,8105],\"mapped\",[8033,953]],[[8106,8106],\"mapped\",[8034,953]],[[8107,8107],\"mapped\",[8035,953]],[[8108,8108],\"mapped\",[8036,953]],[[8109,8109],\"mapped\",[8037,953]],[[8110,8110],\"mapped\",[8038,953]],[[8111,8111],\"mapped\",[8039,953]],[[8112,8113],\"valid\"],[[8114,8114],\"mapped\",[8048,953]],[[8115,8115],\"mapped\",[945,953]],[[8116,8116],\"mapped\",[940,953]],[[8117,8117],\"disallowed\"],[[8118,8118],\"valid\"],[[8119,8119],\"mapped\",[8118,953]],[[8120,8120],\"mapped\",[8112]],[[8121,8121],\"mapped\",[8113]],[[8122,8122],\"mapped\",[8048]],[[8123,8123],\"mapped\",[940]],[[8124,8124],\"mapped\",[945,953]],[[8125,8125],\"disallowed_STD3_mapped\",[32,787]],[[8126,8126],\"mapped\",[953]],[[8127,8127],\"disallowed_STD3_mapped\",[32,787]],[[8128,8128],\"disallowed_STD3_mapped\",[32,834]],[[8129,8129],\"disallowed_STD3_mapped\",[32,776,834]],[[8130,8130],\"mapped\",[8052,953]],[[8131,8131],\"mapped\",[951,953]],[[8132,8132],\"mapped\",[942,953]],[[8133,8133],\"disallowed\"],[[8134,8134],\"valid\"],[[8135,8135],\"mapped\",[8134,953]],[[8136,8136],\"mapped\",[8050]],[[8137,8137],\"mapped\",[941]],[[8138,8138],\"mapped\",[8052]],[[8139,8139],\"mapped\",[942]],[[8140,8140],\"mapped\",[951,953]],[[8141,8141],\"disallowed_STD3_mapped\",[32,787,768]],[[8142,8142],\"disallowed_STD3_mapped\",[32,787,769]],[[8143,8143],\"disallowed_STD3_mapped\",[32,787,834]],[[8144,8146],\"valid\"],[[8147,8147],\"mapped\",[912]],[[8148,8149],\"disallowed\"],[[8150,8151],\"valid\"],[[8152,8152],\"mapped\",[8144]],[[8153,8153],\"mapped\",[8145]],[[8154,8154],\"mapped\",[8054]],[[8155,8155],\"mapped\",[943]],[[8156,8156],\"disallowed\"],[[8157,8157],\"disallowed_STD3_mapped\",[32,788,768]],[[8158,8158],\"disallowed_STD3_mapped\",[32,788,769]],[[8159,8159],\"disallowed_STD3_mapped\",[32,788,834]],[[8160,8162],\"valid\"],[[8163,8163],\"mapped\",[944]],[[8164,8167],\"valid\"],[[8168,8168],\"mapped\",[8160]],[[8169,8169],\"mapped\",[8161]],[[8170,8170],\"mapped\",[8058]],[[8171,8171],\"mapped\",[973]],[[8172,8172],\"mapped\",[8165]],[[8173,8173],\"disallowed_STD3_mapped\",[32,776,768]],[[8174,8174],\"disallowed_STD3_mapped\",[32,776,769]],[[8175,8175],\"disallowed_STD3_mapped\",[96]],[[8176,8177],\"disallowed\"],[[8178,8178],\"mapped\",[8060,953]],[[8179,8179],\"mapped\",[969,953]],[[8180,8180],\"mapped\",[974,953]],[[8181,8181],\"disallowed\"],[[8182,8182],\"valid\"],[[8183,8183],\"mapped\",[8182,953]],[[8184,8184],\"mapped\",[8056]],[[8185,8185],\"mapped\",[972]],[[8186,8186],\"mapped\",[8060]],[[8187,8187],\"mapped\",[974]],[[8188,8188],\"mapped\",[969,953]],[[8189,8189],\"disallowed_STD3_mapped\",[32,769]],[[8190,8190],\"disallowed_STD3_mapped\",[32,788]],[[8191,8191],\"disallowed\"],[[8192,8202],\"disallowed_STD3_mapped\",[32]],[[8203,8203],\"ignored\"],[[8204,8205],\"deviation\",[]],[[8206,8207],\"disallowed\"],[[8208,8208],\"valid\",[],\"NV8\"],[[8209,8209],\"mapped\",[8208]],[[8210,8214],\"valid\",[],\"NV8\"],[[8215,8215],\"disallowed_STD3_mapped\",[32,819]],[[8216,8227],\"valid\",[],\"NV8\"],[[8228,8230],\"disallowed\"],[[8231,8231],\"valid\",[],\"NV8\"],[[8232,8238],\"disallowed\"],[[8239,8239],\"disallowed_STD3_mapped\",[32]],[[8240,8242],\"valid\",[],\"NV8\"],[[8243,8243],\"mapped\",[8242,8242]],[[8244,8244],\"mapped\",[8242,8242,8242]],[[8245,8245],\"valid\",[],\"NV8\"],[[8246,8246],\"mapped\",[8245,8245]],[[8247,8247],\"mapped\",[8245,8245,8245]],[[8248,8251],\"valid\",[],\"NV8\"],[[8252,8252],\"disallowed_STD3_mapped\",[33,33]],[[8253,8253],\"valid\",[],\"NV8\"],[[8254,8254],\"disallowed_STD3_mapped\",[32,773]],[[8255,8262],\"valid\",[],\"NV8\"],[[8263,8263],\"disallowed_STD3_mapped\",[63,63]],[[8264,8264],\"disallowed_STD3_mapped\",[63,33]],[[8265,8265],\"disallowed_STD3_mapped\",[33,63]],[[8266,8269],\"valid\",[],\"NV8\"],[[8270,8274],\"valid\",[],\"NV8\"],[[8275,8276],\"valid\",[],\"NV8\"],[[8277,8278],\"valid\",[],\"NV8\"],[[8279,8279],\"mapped\",[8242,8242,8242,8242]],[[8280,8286],\"valid\",[],\"NV8\"],[[8287,8287],\"disallowed_STD3_mapped\",[32]],[[8288,8288],\"ignored\"],[[8289,8291],\"disallowed\"],[[8292,8292],\"ignored\"],[[8293,8293],\"disallowed\"],[[8294,8297],\"disallowed\"],[[8298,8303],\"disallowed\"],[[8304,8304],\"mapped\",[48]],[[8305,8305],\"mapped\",[105]],[[8306,8307],\"disallowed\"],[[8308,8308],\"mapped\",[52]],[[8309,8309],\"mapped\",[53]],[[8310,8310],\"mapped\",[54]],[[8311,8311],\"mapped\",[55]],[[8312,8312],\"mapped\",[56]],[[8313,8313],\"mapped\",[57]],[[8314,8314],\"disallowed_STD3_mapped\",[43]],[[8315,8315],\"mapped\",[8722]],[[8316,8316],\"disallowed_STD3_mapped\",[61]],[[8317,8317],\"disallowed_STD3_mapped\",[40]],[[8318,8318],\"disallowed_STD3_mapped\",[41]],[[8319,8319],\"mapped\",[110]],[[8320,8320],\"mapped\",[48]],[[8321,8321],\"mapped\",[49]],[[8322,8322],\"mapped\",[50]],[[8323,8323],\"mapped\",[51]],[[8324,8324],\"mapped\",[52]],[[8325,8325],\"mapped\",[53]],[[8326,8326],\"mapped\",[54]],[[8327,8327],\"mapped\",[55]],[[8328,8328],\"mapped\",[56]],[[8329,8329],\"mapped\",[57]],[[8330,8330],\"disallowed_STD3_mapped\",[43]],[[8331,8331],\"mapped\",[8722]],[[8332,8332],\"disallowed_STD3_mapped\",[61]],[[8333,8333],\"disallowed_STD3_mapped\",[40]],[[8334,8334],\"disallowed_STD3_mapped\",[41]],[[8335,8335],\"disallowed\"],[[8336,8336],\"mapped\",[97]],[[8337,8337],\"mapped\",[101]],[[8338,8338],\"mapped\",[111]],[[8339,8339],\"mapped\",[120]],[[8340,8340],\"mapped\",[601]],[[8341,8341],\"mapped\",[104]],[[8342,8342],\"mapped\",[107]],[[8343,8343],\"mapped\",[108]],[[8344,8344],\"mapped\",[109]],[[8345,8345],\"mapped\",[110]],[[8346,8346],\"mapped\",[112]],[[8347,8347],\"mapped\",[115]],[[8348,8348],\"mapped\",[116]],[[8349,8351],\"disallowed\"],[[8352,8359],\"valid\",[],\"NV8\"],[[8360,8360],\"mapped\",[114,115]],[[8361,8362],\"valid\",[],\"NV8\"],[[8363,8363],\"valid\",[],\"NV8\"],[[8364,8364],\"valid\",[],\"NV8\"],[[8365,8367],\"valid\",[],\"NV8\"],[[8368,8369],\"valid\",[],\"NV8\"],[[8370,8373],\"valid\",[],\"NV8\"],[[8374,8376],\"valid\",[],\"NV8\"],[[8377,8377],\"valid\",[],\"NV8\"],[[8378,8378],\"valid\",[],\"NV8\"],[[8379,8381],\"valid\",[],\"NV8\"],[[8382,8382],\"valid\",[],\"NV8\"],[[8383,8399],\"disallowed\"],[[8400,8417],\"valid\",[],\"NV8\"],[[8418,8419],\"valid\",[],\"NV8\"],[[8420,8426],\"valid\",[],\"NV8\"],[[8427,8427],\"valid\",[],\"NV8\"],[[8428,8431],\"valid\",[],\"NV8\"],[[8432,8432],\"valid\",[],\"NV8\"],[[8433,8447],\"disallowed\"],[[8448,8448],\"disallowed_STD3_mapped\",[97,47,99]],[[8449,8449],\"disallowed_STD3_mapped\",[97,47,115]],[[8450,8450],\"mapped\",[99]],[[8451,8451],\"mapped\",[176,99]],[[8452,8452],\"valid\",[],\"NV8\"],[[8453,8453],\"disallowed_STD3_mapped\",[99,47,111]],[[8454,8454],\"disallowed_STD3_mapped\",[99,47,117]],[[8455,8455],\"mapped\",[603]],[[8456,8456],\"valid\",[],\"NV8\"],[[8457,8457],\"mapped\",[176,102]],[[8458,8458],\"mapped\",[103]],[[8459,8462],\"mapped\",[104]],[[8463,8463],\"mapped\",[295]],[[8464,8465],\"mapped\",[105]],[[8466,8467],\"mapped\",[108]],[[8468,8468],\"valid\",[],\"NV8\"],[[8469,8469],\"mapped\",[110]],[[8470,8470],\"mapped\",[110,111]],[[8471,8472],\"valid\",[],\"NV8\"],[[8473,8473],\"mapped\",[112]],[[8474,8474],\"mapped\",[113]],[[8475,8477],\"mapped\",[114]],[[8478,8479],\"valid\",[],\"NV8\"],[[8480,8480],\"mapped\",[115,109]],[[8481,8481],\"mapped\",[116,101,108]],[[8482,8482],\"mapped\",[116,109]],[[8483,8483],\"valid\",[],\"NV8\"],[[8484,8484],\"mapped\",[122]],[[8485,8485],\"valid\",[],\"NV8\"],[[8486,8486],\"mapped\",[969]],[[8487,8487],\"valid\",[],\"NV8\"],[[8488,8488],\"mapped\",[122]],[[8489,8489],\"valid\",[],\"NV8\"],[[8490,8490],\"mapped\",[107]],[[8491,8491],\"mapped\",[229]],[[8492,8492],\"mapped\",[98]],[[8493,8493],\"mapped\",[99]],[[8494,8494],\"valid\",[],\"NV8\"],[[8495,8496],\"mapped\",[101]],[[8497,8497],\"mapped\",[102]],[[8498,8498],\"disallowed\"],[[8499,8499],\"mapped\",[109]],[[8500,8500],\"mapped\",[111]],[[8501,8501],\"mapped\",[1488]],[[8502,8502],\"mapped\",[1489]],[[8503,8503],\"mapped\",[1490]],[[8504,8504],\"mapped\",[1491]],[[8505,8505],\"mapped\",[105]],[[8506,8506],\"valid\",[],\"NV8\"],[[8507,8507],\"mapped\",[102,97,120]],[[8508,8508],\"mapped\",[960]],[[8509,8510],\"mapped\",[947]],[[8511,8511],\"mapped\",[960]],[[8512,8512],\"mapped\",[8721]],[[8513,8516],\"valid\",[],\"NV8\"],[[8517,8518],\"mapped\",[100]],[[8519,8519],\"mapped\",[101]],[[8520,8520],\"mapped\",[105]],[[8521,8521],\"mapped\",[106]],[[8522,8523],\"valid\",[],\"NV8\"],[[8524,8524],\"valid\",[],\"NV8\"],[[8525,8525],\"valid\",[],\"NV8\"],[[8526,8526],\"valid\"],[[8527,8527],\"valid\",[],\"NV8\"],[[8528,8528],\"mapped\",[49,8260,55]],[[8529,8529],\"mapped\",[49,8260,57]],[[8530,8530],\"mapped\",[49,8260,49,48]],[[8531,8531],\"mapped\",[49,8260,51]],[[8532,8532],\"mapped\",[50,8260,51]],[[8533,8533],\"mapped\",[49,8260,53]],[[8534,8534],\"mapped\",[50,8260,53]],[[8535,8535],\"mapped\",[51,8260,53]],[[8536,8536],\"mapped\",[52,8260,53]],[[8537,8537],\"mapped\",[49,8260,54]],[[8538,8538],\"mapped\",[53,8260,54]],[[8539,8539],\"mapped\",[49,8260,56]],[[8540,8540],\"mapped\",[51,8260,56]],[[8541,8541],\"mapped\",[53,8260,56]],[[8542,8542],\"mapped\",[55,8260,56]],[[8543,8543],\"mapped\",[49,8260]],[[8544,8544],\"mapped\",[105]],[[8545,8545],\"mapped\",[105,105]],[[8546,8546],\"mapped\",[105,105,105]],[[8547,8547],\"mapped\",[105,118]],[[8548,8548],\"mapped\",[118]],[[8549,8549],\"mapped\",[118,105]],[[8550,8550],\"mapped\",[118,105,105]],[[8551,8551],\"mapped\",[118,105,105,105]],[[8552,8552],\"mapped\",[105,120]],[[8553,8553],\"mapped\",[120]],[[8554,8554],\"mapped\",[120,105]],[[8555,8555],\"mapped\",[120,105,105]],[[8556,8556],\"mapped\",[108]],[[8557,8557],\"mapped\",[99]],[[8558,8558],\"mapped\",[100]],[[8559,8559],\"mapped\",[109]],[[8560,8560],\"mapped\",[105]],[[8561,8561],\"mapped\",[105,105]],[[8562,8562],\"mapped\",[105,105,105]],[[8563,8563],\"mapped\",[105,118]],[[8564,8564],\"mapped\",[118]],[[8565,8565],\"mapped\",[118,105]],[[8566,8566],\"mapped\",[118,105,105]],[[8567,8567],\"mapped\",[118,105,105,105]],[[8568,8568],\"mapped\",[105,120]],[[8569,8569],\"mapped\",[120]],[[8570,8570],\"mapped\",[120,105]],[[8571,8571],\"mapped\",[120,105,105]],[[8572,8572],\"mapped\",[108]],[[8573,8573],\"mapped\",[99]],[[8574,8574],\"mapped\",[100]],[[8575,8575],\"mapped\",[109]],[[8576,8578],\"valid\",[],\"NV8\"],[[8579,8579],\"disallowed\"],[[8580,8580],\"valid\"],[[8581,8584],\"valid\",[],\"NV8\"],[[8585,8585],\"mapped\",[48,8260,51]],[[8586,8587],\"valid\",[],\"NV8\"],[[8588,8591],\"disallowed\"],[[8592,8682],\"valid\",[],\"NV8\"],[[8683,8691],\"valid\",[],\"NV8\"],[[8692,8703],\"valid\",[],\"NV8\"],[[8704,8747],\"valid\",[],\"NV8\"],[[8748,8748],\"mapped\",[8747,8747]],[[8749,8749],\"mapped\",[8747,8747,8747]],[[8750,8750],\"valid\",[],\"NV8\"],[[8751,8751],\"mapped\",[8750,8750]],[[8752,8752],\"mapped\",[8750,8750,8750]],[[8753,8799],\"valid\",[],\"NV8\"],[[8800,8800],\"disallowed_STD3_valid\"],[[8801,8813],\"valid\",[],\"NV8\"],[[8814,8815],\"disallowed_STD3_valid\"],[[8816,8945],\"valid\",[],\"NV8\"],[[8946,8959],\"valid\",[],\"NV8\"],[[8960,8960],\"valid\",[],\"NV8\"],[[8961,8961],\"valid\",[],\"NV8\"],[[8962,9000],\"valid\",[],\"NV8\"],[[9001,9001],\"mapped\",[12296]],[[9002,9002],\"mapped\",[12297]],[[9003,9082],\"valid\",[],\"NV8\"],[[9083,9083],\"valid\",[],\"NV8\"],[[9084,9084],\"valid\",[],\"NV8\"],[[9085,9114],\"valid\",[],\"NV8\"],[[9115,9166],\"valid\",[],\"NV8\"],[[9167,9168],\"valid\",[],\"NV8\"],[[9169,9179],\"valid\",[],\"NV8\"],[[9180,9191],\"valid\",[],\"NV8\"],[[9192,9192],\"valid\",[],\"NV8\"],[[9193,9203],\"valid\",[],\"NV8\"],[[9204,9210],\"valid\",[],\"NV8\"],[[9211,9215],\"disallowed\"],[[9216,9252],\"valid\",[],\"NV8\"],[[9253,9254],\"valid\",[],\"NV8\"],[[9255,9279],\"disallowed\"],[[9280,9290],\"valid\",[],\"NV8\"],[[9291,9311],\"disallowed\"],[[9312,9312],\"mapped\",[49]],[[9313,9313],\"mapped\",[50]],[[9314,9314],\"mapped\",[51]],[[9315,9315],\"mapped\",[52]],[[9316,9316],\"mapped\",[53]],[[9317,9317],\"mapped\",[54]],[[9318,9318],\"mapped\",[55]],[[9319,9319],\"mapped\",[56]],[[9320,9320],\"mapped\",[57]],[[9321,9321],\"mapped\",[49,48]],[[9322,9322],\"mapped\",[49,49]],[[9323,9323],\"mapped\",[49,50]],[[9324,9324],\"mapped\",[49,51]],[[9325,9325],\"mapped\",[49,52]],[[9326,9326],\"mapped\",[49,53]],[[9327,9327],\"mapped\",[49,54]],[[9328,9328],\"mapped\",[49,55]],[[9329,9329],\"mapped\",[49,56]],[[9330,9330],\"mapped\",[49,57]],[[9331,9331],\"mapped\",[50,48]],[[9332,9332],\"disallowed_STD3_mapped\",[40,49,41]],[[9333,9333],\"disallowed_STD3_mapped\",[40,50,41]],[[9334,9334],\"disallowed_STD3_mapped\",[40,51,41]],[[9335,9335],\"disallowed_STD3_mapped\",[40,52,41]],[[9336,9336],\"disallowed_STD3_mapped\",[40,53,41]],[[9337,9337],\"disallowed_STD3_mapped\",[40,54,41]],[[9338,9338],\"disallowed_STD3_mapped\",[40,55,41]],[[9339,9339],\"disallowed_STD3_mapped\",[40,56,41]],[[9340,9340],\"disallowed_STD3_mapped\",[40,57,41]],[[9341,9341],\"disallowed_STD3_mapped\",[40,49,48,41]],[[9342,9342],\"disallowed_STD3_mapped\",[40,49,49,41]],[[9343,9343],\"disallowed_STD3_mapped\",[40,49,50,41]],[[9344,9344],\"disallowed_STD3_mapped\",[40,49,51,41]],[[9345,9345],\"disallowed_STD3_mapped\",[40,49,52,41]],[[9346,9346],\"disallowed_STD3_mapped\",[40,49,53,41]],[[9347,9347],\"disallowed_STD3_mapped\",[40,49,54,41]],[[9348,9348],\"disallowed_STD3_mapped\",[40,49,55,41]],[[9349,9349],\"disallowed_STD3_mapped\",[40,49,56,41]],[[9350,9350],\"disallowed_STD3_mapped\",[40,49,57,41]],[[9351,9351],\"disallowed_STD3_mapped\",[40,50,48,41]],[[9352,9371],\"disallowed\"],[[9372,9372],\"disallowed_STD3_mapped\",[40,97,41]],[[9373,9373],\"disallowed_STD3_mapped\",[40,98,41]],[[9374,9374],\"disallowed_STD3_mapped\",[40,99,41]],[[9375,9375],\"disallowed_STD3_mapped\",[40,100,41]],[[9376,9376],\"disallowed_STD3_mapped\",[40,101,41]],[[9377,9377],\"disallowed_STD3_mapped\",[40,102,41]],[[9378,9378],\"disallowed_STD3_mapped\",[40,103,41]],[[9379,9379],\"disallowed_STD3_mapped\",[40,104,41]],[[9380,9380],\"disallowed_STD3_mapped\",[40,105,41]],[[9381,9381],\"disallowed_STD3_mapped\",[40,106,41]],[[9382,9382],\"disallowed_STD3_mapped\",[40,107,41]],[[9383,9383],\"disallowed_STD3_mapped\",[40,108,41]],[[9384,9384],\"disallowed_STD3_mapped\",[40,109,41]],[[9385,9385],\"disallowed_STD3_mapped\",[40,110,41]],[[9386,9386],\"disallowed_STD3_mapped\",[40,111,41]],[[9387,9387],\"disallowed_STD3_mapped\",[40,112,41]],[[9388,9388],\"disallowed_STD3_mapped\",[40,113,41]],[[9389,9389],\"disallowed_STD3_mapped\",[40,114,41]],[[9390,9390],\"disallowed_STD3_mapped\",[40,115,41]],[[9391,9391],\"disallowed_STD3_mapped\",[40,116,41]],[[9392,9392],\"disallowed_STD3_mapped\",[40,117,41]],[[9393,9393],\"disallowed_STD3_mapped\",[40,118,41]],[[9394,9394],\"disallowed_STD3_mapped\",[40,119,41]],[[9395,9395],\"disallowed_STD3_mapped\",[40,120,41]],[[9396,9396],\"disallowed_STD3_mapped\",[40,121,41]],[[9397,9397],\"disallowed_STD3_mapped\",[40,122,41]],[[9398,9398],\"mapped\",[97]],[[9399,9399],\"mapped\",[98]],[[9400,9400],\"mapped\",[99]],[[9401,9401],\"mapped\",[100]],[[9402,9402],\"mapped\",[101]],[[9403,9403],\"mapped\",[102]],[[9404,9404],\"mapped\",[103]],[[9405,9405],\"mapped\",[104]],[[9406,9406],\"mapped\",[105]],[[9407,9407],\"mapped\",[106]],[[9408,9408],\"mapped\",[107]],[[9409,9409],\"mapped\",[108]],[[9410,9410],\"mapped\",[109]],[[9411,9411],\"mapped\",[110]],[[9412,9412],\"mapped\",[111]],[[9413,9413],\"mapped\",[112]],[[9414,9414],\"mapped\",[113]],[[9415,9415],\"mapped\",[114]],[[9416,9416],\"mapped\",[115]],[[9417,9417],\"mapped\",[116]],[[9418,9418],\"mapped\",[117]],[[9419,9419],\"mapped\",[118]],[[9420,9420],\"mapped\",[119]],[[9421,9421],\"mapped\",[120]],[[9422,9422],\"mapped\",[121]],[[9423,9423],\"mapped\",[122]],[[9424,9424],\"mapped\",[97]],[[9425,9425],\"mapped\",[98]],[[9426,9426],\"mapped\",[99]],[[9427,9427],\"mapped\",[100]],[[9428,9428],\"mapped\",[101]],[[9429,9429],\"mapped\",[102]],[[9430,9430],\"mapped\",[103]],[[9431,9431],\"mapped\",[104]],[[9432,9432],\"mapped\",[105]],[[9433,9433],\"mapped\",[106]],[[9434,9434],\"mapped\",[107]],[[9435,9435],\"mapped\",[108]],[[9436,9436],\"mapped\",[109]],[[9437,9437],\"mapped\",[110]],[[9438,9438],\"mapped\",[111]],[[9439,9439],\"mapped\",[112]],[[9440,9440],\"mapped\",[113]],[[9441,9441],\"mapped\",[114]],[[9442,9442],\"mapped\",[115]],[[9443,9443],\"mapped\",[116]],[[9444,9444],\"mapped\",[117]],[[9445,9445],\"mapped\",[118]],[[9446,9446],\"mapped\",[119]],[[9447,9447],\"mapped\",[120]],[[9448,9448],\"mapped\",[121]],[[9449,9449],\"mapped\",[122]],[[9450,9450],\"mapped\",[48]],[[9451,9470],\"valid\",[],\"NV8\"],[[9471,9471],\"valid\",[],\"NV8\"],[[9472,9621],\"valid\",[],\"NV8\"],[[9622,9631],\"valid\",[],\"NV8\"],[[9632,9711],\"valid\",[],\"NV8\"],[[9712,9719],\"valid\",[],\"NV8\"],[[9720,9727],\"valid\",[],\"NV8\"],[[9728,9747],\"valid\",[],\"NV8\"],[[9748,9749],\"valid\",[],\"NV8\"],[[9750,9751],\"valid\",[],\"NV8\"],[[9752,9752],\"valid\",[],\"NV8\"],[[9753,9753],\"valid\",[],\"NV8\"],[[9754,9839],\"valid\",[],\"NV8\"],[[9840,9841],\"valid\",[],\"NV8\"],[[9842,9853],\"valid\",[],\"NV8\"],[[9854,9855],\"valid\",[],\"NV8\"],[[9856,9865],\"valid\",[],\"NV8\"],[[9866,9873],\"valid\",[],\"NV8\"],[[9874,9884],\"valid\",[],\"NV8\"],[[9885,9885],\"valid\",[],\"NV8\"],[[9886,9887],\"valid\",[],\"NV8\"],[[9888,9889],\"valid\",[],\"NV8\"],[[9890,9905],\"valid\",[],\"NV8\"],[[9906,9906],\"valid\",[],\"NV8\"],[[9907,9916],\"valid\",[],\"NV8\"],[[9917,9919],\"valid\",[],\"NV8\"],[[9920,9923],\"valid\",[],\"NV8\"],[[9924,9933],\"valid\",[],\"NV8\"],[[9934,9934],\"valid\",[],\"NV8\"],[[9935,9953],\"valid\",[],\"NV8\"],[[9954,9954],\"valid\",[],\"NV8\"],[[9955,9955],\"valid\",[],\"NV8\"],[[9956,9959],\"valid\",[],\"NV8\"],[[9960,9983],\"valid\",[],\"NV8\"],[[9984,9984],\"valid\",[],\"NV8\"],[[9985,9988],\"valid\",[],\"NV8\"],[[9989,9989],\"valid\",[],\"NV8\"],[[9990,9993],\"valid\",[],\"NV8\"],[[9994,9995],\"valid\",[],\"NV8\"],[[9996,10023],\"valid\",[],\"NV8\"],[[10024,10024],\"valid\",[],\"NV8\"],[[10025,10059],\"valid\",[],\"NV8\"],[[10060,10060],\"valid\",[],\"NV8\"],[[10061,10061],\"valid\",[],\"NV8\"],[[10062,10062],\"valid\",[],\"NV8\"],[[10063,10066],\"valid\",[],\"NV8\"],[[10067,10069],\"valid\",[],\"NV8\"],[[10070,10070],\"valid\",[],\"NV8\"],[[10071,10071],\"valid\",[],\"NV8\"],[[10072,10078],\"valid\",[],\"NV8\"],[[10079,10080],\"valid\",[],\"NV8\"],[[10081,10087],\"valid\",[],\"NV8\"],[[10088,10101],\"valid\",[],\"NV8\"],[[10102,10132],\"valid\",[],\"NV8\"],[[10133,10135],\"valid\",[],\"NV8\"],[[10136,10159],\"valid\",[],\"NV8\"],[[10160,10160],\"valid\",[],\"NV8\"],[[10161,10174],\"valid\",[],\"NV8\"],[[10175,10175],\"valid\",[],\"NV8\"],[[10176,10182],\"valid\",[],\"NV8\"],[[10183,10186],\"valid\",[],\"NV8\"],[[10187,10187],\"valid\",[],\"NV8\"],[[10188,10188],\"valid\",[],\"NV8\"],[[10189,10189],\"valid\",[],\"NV8\"],[[10190,10191],\"valid\",[],\"NV8\"],[[10192,10219],\"valid\",[],\"NV8\"],[[10220,10223],\"valid\",[],\"NV8\"],[[10224,10239],\"valid\",[],\"NV8\"],[[10240,10495],\"valid\",[],\"NV8\"],[[10496,10763],\"valid\",[],\"NV8\"],[[10764,10764],\"mapped\",[8747,8747,8747,8747]],[[10765,10867],\"valid\",[],\"NV8\"],[[10868,10868],\"disallowed_STD3_mapped\",[58,58,61]],[[10869,10869],\"disallowed_STD3_mapped\",[61,61]],[[10870,10870],\"disallowed_STD3_mapped\",[61,61,61]],[[10871,10971],\"valid\",[],\"NV8\"],[[10972,10972],\"mapped\",[10973,824]],[[10973,11007],\"valid\",[],\"NV8\"],[[11008,11021],\"valid\",[],\"NV8\"],[[11022,11027],\"valid\",[],\"NV8\"],[[11028,11034],\"valid\",[],\"NV8\"],[[11035,11039],\"valid\",[],\"NV8\"],[[11040,11043],\"valid\",[],\"NV8\"],[[11044,11084],\"valid\",[],\"NV8\"],[[11085,11087],\"valid\",[],\"NV8\"],[[11088,11092],\"valid\",[],\"NV8\"],[[11093,11097],\"valid\",[],\"NV8\"],[[11098,11123],\"valid\",[],\"NV8\"],[[11124,11125],\"disallowed\"],[[11126,11157],\"valid\",[],\"NV8\"],[[11158,11159],\"disallowed\"],[[11160,11193],\"valid\",[],\"NV8\"],[[11194,11196],\"disallowed\"],[[11197,11208],\"valid\",[],\"NV8\"],[[11209,11209],\"disallowed\"],[[11210,11217],\"valid\",[],\"NV8\"],[[11218,11243],\"disallowed\"],[[11244,11247],\"valid\",[],\"NV8\"],[[11248,11263],\"disallowed\"],[[11264,11264],\"mapped\",[11312]],[[11265,11265],\"mapped\",[11313]],[[11266,11266],\"mapped\",[11314]],[[11267,11267],\"mapped\",[11315]],[[11268,11268],\"mapped\",[11316]],[[11269,11269],\"mapped\",[11317]],[[11270,11270],\"mapped\",[11318]],[[11271,11271],\"mapped\",[11319]],[[11272,11272],\"mapped\",[11320]],[[11273,11273],\"mapped\",[11321]],[[11274,11274],\"mapped\",[11322]],[[11275,11275],\"mapped\",[11323]],[[11276,11276],\"mapped\",[11324]],[[11277,11277],\"mapped\",[11325]],[[11278,11278],\"mapped\",[11326]],[[11279,11279],\"mapped\",[11327]],[[11280,11280],\"mapped\",[11328]],[[11281,11281],\"mapped\",[11329]],[[11282,11282],\"mapped\",[11330]],[[11283,11283],\"mapped\",[11331]],[[11284,11284],\"mapped\",[11332]],[[11285,11285],\"mapped\",[11333]],[[11286,11286],\"mapped\",[11334]],[[11287,11287],\"mapped\",[11335]],[[11288,11288],\"mapped\",[11336]],[[11289,11289],\"mapped\",[11337]],[[11290,11290],\"mapped\",[11338]],[[11291,11291],\"mapped\",[11339]],[[11292,11292],\"mapped\",[11340]],[[11293,11293],\"mapped\",[11341]],[[11294,11294],\"mapped\",[11342]],[[11295,11295],\"mapped\",[11343]],[[11296,11296],\"mapped\",[11344]],[[11297,11297],\"mapped\",[11345]],[[11298,11298],\"mapped\",[11346]],[[11299,11299],\"mapped\",[11347]],[[11300,11300],\"mapped\",[11348]],[[11301,11301],\"mapped\",[11349]],[[11302,11302],\"mapped\",[11350]],[[11303,11303],\"mapped\",[11351]],[[11304,11304],\"mapped\",[11352]],[[11305,11305],\"mapped\",[11353]],[[11306,11306],\"mapped\",[11354]],[[11307,11307],\"mapped\",[11355]],[[11308,11308],\"mapped\",[11356]],[[11309,11309],\"mapped\",[11357]],[[11310,11310],\"mapped\",[11358]],[[11311,11311],\"disallowed\"],[[11312,11358],\"valid\"],[[11359,11359],\"disallowed\"],[[11360,11360],\"mapped\",[11361]],[[11361,11361],\"valid\"],[[11362,11362],\"mapped\",[619]],[[11363,11363],\"mapped\",[7549]],[[11364,11364],\"mapped\",[637]],[[11365,11366],\"valid\"],[[11367,11367],\"mapped\",[11368]],[[11368,11368],\"valid\"],[[11369,11369],\"mapped\",[11370]],[[11370,11370],\"valid\"],[[11371,11371],\"mapped\",[11372]],[[11372,11372],\"valid\"],[[11373,11373],\"mapped\",[593]],[[11374,11374],\"mapped\",[625]],[[11375,11375],\"mapped\",[592]],[[11376,11376],\"mapped\",[594]],[[11377,11377],\"valid\"],[[11378,11378],\"mapped\",[11379]],[[11379,11379],\"valid\"],[[11380,11380],\"valid\"],[[11381,11381],\"mapped\",[11382]],[[11382,11383],\"valid\"],[[11384,11387],\"valid\"],[[11388,11388],\"mapped\",[106]],[[11389,11389],\"mapped\",[118]],[[11390,11390],\"mapped\",[575]],[[11391,11391],\"mapped\",[576]],[[11392,11392],\"mapped\",[11393]],[[11393,11393],\"valid\"],[[11394,11394],\"mapped\",[11395]],[[11395,11395],\"valid\"],[[11396,11396],\"mapped\",[11397]],[[11397,11397],\"valid\"],[[11398,11398],\"mapped\",[11399]],[[11399,11399],\"valid\"],[[11400,11400],\"mapped\",[11401]],[[11401,11401],\"valid\"],[[11402,11402],\"mapped\",[11403]],[[11403,11403],\"valid\"],[[11404,11404],\"mapped\",[11405]],[[11405,11405],\"valid\"],[[11406,11406],\"mapped\",[11407]],[[11407,11407],\"valid\"],[[11408,11408],\"mapped\",[11409]],[[11409,11409],\"valid\"],[[11410,11410],\"mapped\",[11411]],[[11411,11411],\"valid\"],[[11412,11412],\"mapped\",[11413]],[[11413,11413],\"valid\"],[[11414,11414],\"mapped\",[11415]],[[11415,11415],\"valid\"],[[11416,11416],\"mapped\",[11417]],[[11417,11417],\"valid\"],[[11418,11418],\"mapped\",[11419]],[[11419,11419],\"valid\"],[[11420,11420],\"mapped\",[11421]],[[11421,11421],\"valid\"],[[11422,11422],\"mapped\",[11423]],[[11423,11423],\"valid\"],[[11424,11424],\"mapped\",[11425]],[[11425,11425],\"valid\"],[[11426,11426],\"mapped\",[11427]],[[11427,11427],\"valid\"],[[11428,11428],\"mapped\",[11429]],[[11429,11429],\"valid\"],[[11430,11430],\"mapped\",[11431]],[[11431,11431],\"valid\"],[[11432,11432],\"mapped\",[11433]],[[11433,11433],\"valid\"],[[11434,11434],\"mapped\",[11435]],[[11435,11435],\"valid\"],[[11436,11436],\"mapped\",[11437]],[[11437,11437],\"valid\"],[[11438,11438],\"mapped\",[11439]],[[11439,11439],\"valid\"],[[11440,11440],\"mapped\",[11441]],[[11441,11441],\"valid\"],[[11442,11442],\"mapped\",[11443]],[[11443,11443],\"valid\"],[[11444,11444],\"mapped\",[11445]],[[11445,11445],\"valid\"],[[11446,11446],\"mapped\",[11447]],[[11447,11447],\"valid\"],[[11448,11448],\"mapped\",[11449]],[[11449,11449],\"valid\"],[[11450,11450],\"mapped\",[11451]],[[11451,11451],\"valid\"],[[11452,11452],\"mapped\",[11453]],[[11453,11453],\"valid\"],[[11454,11454],\"mapped\",[11455]],[[11455,11455],\"valid\"],[[11456,11456],\"mapped\",[11457]],[[11457,11457],\"valid\"],[[11458,11458],\"mapped\",[11459]],[[11459,11459],\"valid\"],[[11460,11460],\"mapped\",[11461]],[[11461,11461],\"valid\"],[[11462,11462],\"mapped\",[11463]],[[11463,11463],\"valid\"],[[11464,11464],\"mapped\",[11465]],[[11465,11465],\"valid\"],[[11466,11466],\"mapped\",[11467]],[[11467,11467],\"valid\"],[[11468,11468],\"mapped\",[11469]],[[11469,11469],\"valid\"],[[11470,11470],\"mapped\",[11471]],[[11471,11471],\"valid\"],[[11472,11472],\"mapped\",[11473]],[[11473,11473],\"valid\"],[[11474,11474],\"mapped\",[11475]],[[11475,11475],\"valid\"],[[11476,11476],\"mapped\",[11477]],[[11477,11477],\"valid\"],[[11478,11478],\"mapped\",[11479]],[[11479,11479],\"valid\"],[[11480,11480],\"mapped\",[11481]],[[11481,11481],\"valid\"],[[11482,11482],\"mapped\",[11483]],[[11483,11483],\"valid\"],[[11484,11484],\"mapped\",[11485]],[[11485,11485],\"valid\"],[[11486,11486],\"mapped\",[11487]],[[11487,11487],\"valid\"],[[11488,11488],\"mapped\",[11489]],[[11489,11489],\"valid\"],[[11490,11490],\"mapped\",[11491]],[[11491,11492],\"valid\"],[[11493,11498],\"valid\",[],\"NV8\"],[[11499,11499],\"mapped\",[11500]],[[11500,11500],\"valid\"],[[11501,11501],\"mapped\",[11502]],[[11502,11505],\"valid\"],[[11506,11506],\"mapped\",[11507]],[[11507,11507],\"valid\"],[[11508,11512],\"disallowed\"],[[11513,11519],\"valid\",[],\"NV8\"],[[11520,11557],\"valid\"],[[11558,11558],\"disallowed\"],[[11559,11559],\"valid\"],[[11560,11564],\"disallowed\"],[[11565,11565],\"valid\"],[[11566,11567],\"disallowed\"],[[11568,11621],\"valid\"],[[11622,11623],\"valid\"],[[11624,11630],\"disallowed\"],[[11631,11631],\"mapped\",[11617]],[[11632,11632],\"valid\",[],\"NV8\"],[[11633,11646],\"disallowed\"],[[11647,11647],\"valid\"],[[11648,11670],\"valid\"],[[11671,11679],\"disallowed\"],[[11680,11686],\"valid\"],[[11687,11687],\"disallowed\"],[[11688,11694],\"valid\"],[[11695,11695],\"disallowed\"],[[11696,11702],\"valid\"],[[11703,11703],\"disallowed\"],[[11704,11710],\"valid\"],[[11711,11711],\"disallowed\"],[[11712,11718],\"valid\"],[[11719,11719],\"disallowed\"],[[11720,11726],\"valid\"],[[11727,11727],\"disallowed\"],[[11728,11734],\"valid\"],[[11735,11735],\"disallowed\"],[[11736,11742],\"valid\"],[[11743,11743],\"disallowed\"],[[11744,11775],\"valid\"],[[11776,11799],\"valid\",[],\"NV8\"],[[11800,11803],\"valid\",[],\"NV8\"],[[11804,11805],\"valid\",[],\"NV8\"],[[11806,11822],\"valid\",[],\"NV8\"],[[11823,11823],\"valid\"],[[11824,11824],\"valid\",[],\"NV8\"],[[11825,11825],\"valid\",[],\"NV8\"],[[11826,11835],\"valid\",[],\"NV8\"],[[11836,11842],\"valid\",[],\"NV8\"],[[11843,11903],\"disallowed\"],[[11904,11929],\"valid\",[],\"NV8\"],[[11930,11930],\"disallowed\"],[[11931,11934],\"valid\",[],\"NV8\"],[[11935,11935],\"mapped\",[27597]],[[11936,12018],\"valid\",[],\"NV8\"],[[12019,12019],\"mapped\",[40863]],[[12020,12031],\"disallowed\"],[[12032,12032],\"mapped\",[19968]],[[12033,12033],\"mapped\",[20008]],[[12034,12034],\"mapped\",[20022]],[[12035,12035],\"mapped\",[20031]],[[12036,12036],\"mapped\",[20057]],[[12037,12037],\"mapped\",[20101]],[[12038,12038],\"mapped\",[20108]],[[12039,12039],\"mapped\",[20128]],[[12040,12040],\"mapped\",[20154]],[[12041,12041],\"mapped\",[20799]],[[12042,12042],\"mapped\",[20837]],[[12043,12043],\"mapped\",[20843]],[[12044,12044],\"mapped\",[20866]],[[12045,12045],\"mapped\",[20886]],[[12046,12046],\"mapped\",[20907]],[[12047,12047],\"mapped\",[20960]],[[12048,12048],\"mapped\",[20981]],[[12049,12049],\"mapped\",[20992]],[[12050,12050],\"mapped\",[21147]],[[12051,12051],\"mapped\",[21241]],[[12052,12052],\"mapped\",[21269]],[[12053,12053],\"mapped\",[21274]],[[12054,12054],\"mapped\",[21304]],[[12055,12055],\"mapped\",[21313]],[[12056,12056],\"mapped\",[21340]],[[12057,12057],\"mapped\",[21353]],[[12058,12058],\"mapped\",[21378]],[[12059,12059],\"mapped\",[21430]],[[12060,12060],\"mapped\",[21448]],[[12061,12061],\"mapped\",[21475]],[[12062,12062],\"mapped\",[22231]],[[12063,12063],\"mapped\",[22303]],[[12064,12064],\"mapped\",[22763]],[[12065,12065],\"mapped\",[22786]],[[12066,12066],\"mapped\",[22794]],[[12067,12067],\"mapped\",[22805]],[[12068,12068],\"mapped\",[22823]],[[12069,12069],\"mapped\",[22899]],[[12070,12070],\"mapped\",[23376]],[[12071,12071],\"mapped\",[23424]],[[12072,12072],\"mapped\",[23544]],[[12073,12073],\"mapped\",[23567]],[[12074,12074],\"mapped\",[23586]],[[12075,12075],\"mapped\",[23608]],[[12076,12076],\"mapped\",[23662]],[[12077,12077],\"mapped\",[23665]],[[12078,12078],\"mapped\",[24027]],[[12079,12079],\"mapped\",[24037]],[[12080,12080],\"mapped\",[24049]],[[12081,12081],\"mapped\",[24062]],[[12082,12082],\"mapped\",[24178]],[[12083,12083],\"mapped\",[24186]],[[12084,12084],\"mapped\",[24191]],[[12085,12085],\"mapped\",[24308]],[[12086,12086],\"mapped\",[24318]],[[12087,12087],\"mapped\",[24331]],[[12088,12088],\"mapped\",[24339]],[[12089,12089],\"mapped\",[24400]],[[12090,12090],\"mapped\",[24417]],[[12091,12091],\"mapped\",[24435]],[[12092,12092],\"mapped\",[24515]],[[12093,12093],\"mapped\",[25096]],[[12094,12094],\"mapped\",[25142]],[[12095,12095],\"mapped\",[25163]],[[12096,12096],\"mapped\",[25903]],[[12097,12097],\"mapped\",[25908]],[[12098,12098],\"mapped\",[25991]],[[12099,12099],\"mapped\",[26007]],[[12100,12100],\"mapped\",[26020]],[[12101,12101],\"mapped\",[26041]],[[12102,12102],\"mapped\",[26080]],[[12103,12103],\"mapped\",[26085]],[[12104,12104],\"mapped\",[26352]],[[12105,12105],\"mapped\",[26376]],[[12106,12106],\"mapped\",[26408]],[[12107,12107],\"mapped\",[27424]],[[12108,12108],\"mapped\",[27490]],[[12109,12109],\"mapped\",[27513]],[[12110,12110],\"mapped\",[27571]],[[12111,12111],\"mapped\",[27595]],[[12112,12112],\"mapped\",[27604]],[[12113,12113],\"mapped\",[27611]],[[12114,12114],\"mapped\",[27663]],[[12115,12115],\"mapped\",[27668]],[[12116,12116],\"mapped\",[27700]],[[12117,12117],\"mapped\",[28779]],[[12118,12118],\"mapped\",[29226]],[[12119,12119],\"mapped\",[29238]],[[12120,12120],\"mapped\",[29243]],[[12121,12121],\"mapped\",[29247]],[[12122,12122],\"mapped\",[29255]],[[12123,12123],\"mapped\",[29273]],[[12124,12124],\"mapped\",[29275]],[[12125,12125],\"mapped\",[29356]],[[12126,12126],\"mapped\",[29572]],[[12127,12127],\"mapped\",[29577]],[[12128,12128],\"mapped\",[29916]],[[12129,12129],\"mapped\",[29926]],[[12130,12130],\"mapped\",[29976]],[[12131,12131],\"mapped\",[29983]],[[12132,12132],\"mapped\",[29992]],[[12133,12133],\"mapped\",[30000]],[[12134,12134],\"mapped\",[30091]],[[12135,12135],\"mapped\",[30098]],[[12136,12136],\"mapped\",[30326]],[[12137,12137],\"mapped\",[30333]],[[12138,12138],\"mapped\",[30382]],[[12139,12139],\"mapped\",[30399]],[[12140,12140],\"mapped\",[30446]],[[12141,12141],\"mapped\",[30683]],[[12142,12142],\"mapped\",[30690]],[[12143,12143],\"mapped\",[30707]],[[12144,12144],\"mapped\",[31034]],[[12145,12145],\"mapped\",[31160]],[[12146,12146],\"mapped\",[31166]],[[12147,12147],\"mapped\",[31348]],[[12148,12148],\"mapped\",[31435]],[[12149,12149],\"mapped\",[31481]],[[12150,12150],\"mapped\",[31859]],[[12151,12151],\"mapped\",[31992]],[[12152,12152],\"mapped\",[32566]],[[12153,12153],\"mapped\",[32593]],[[12154,12154],\"mapped\",[32650]],[[12155,12155],\"mapped\",[32701]],[[12156,12156],\"mapped\",[32769]],[[12157,12157],\"mapped\",[32780]],[[12158,12158],\"mapped\",[32786]],[[12159,12159],\"mapped\",[32819]],[[12160,12160],\"mapped\",[32895]],[[12161,12161],\"mapped\",[32905]],[[12162,12162],\"mapped\",[33251]],[[12163,12163],\"mapped\",[33258]],[[12164,12164],\"mapped\",[33267]],[[12165,12165],\"mapped\",[33276]],[[12166,12166],\"mapped\",[33292]],[[12167,12167],\"mapped\",[33307]],[[12168,12168],\"mapped\",[33311]],[[12169,12169],\"mapped\",[33390]],[[12170,12170],\"mapped\",[33394]],[[12171,12171],\"mapped\",[33400]],[[12172,12172],\"mapped\",[34381]],[[12173,12173],\"mapped\",[34411]],[[12174,12174],\"mapped\",[34880]],[[12175,12175],\"mapped\",[34892]],[[12176,12176],\"mapped\",[34915]],[[12177,12177],\"mapped\",[35198]],[[12178,12178],\"mapped\",[35211]],[[12179,12179],\"mapped\",[35282]],[[12180,12180],\"mapped\",[35328]],[[12181,12181],\"mapped\",[35895]],[[12182,12182],\"mapped\",[35910]],[[12183,12183],\"mapped\",[35925]],[[12184,12184],\"mapped\",[35960]],[[12185,12185],\"mapped\",[35997]],[[12186,12186],\"mapped\",[36196]],[[12187,12187],\"mapped\",[36208]],[[12188,12188],\"mapped\",[36275]],[[12189,12189],\"mapped\",[36523]],[[12190,12190],\"mapped\",[36554]],[[12191,12191],\"mapped\",[36763]],[[12192,12192],\"mapped\",[36784]],[[12193,12193],\"mapped\",[36789]],[[12194,12194],\"mapped\",[37009]],[[12195,12195],\"mapped\",[37193]],[[12196,12196],\"mapped\",[37318]],[[12197,12197],\"mapped\",[37324]],[[12198,12198],\"mapped\",[37329]],[[12199,12199],\"mapped\",[38263]],[[12200,12200],\"mapped\",[38272]],[[12201,12201],\"mapped\",[38428]],[[12202,12202],\"mapped\",[38582]],[[12203,12203],\"mapped\",[38585]],[[12204,12204],\"mapped\",[38632]],[[12205,12205],\"mapped\",[38737]],[[12206,12206],\"mapped\",[38750]],[[12207,12207],\"mapped\",[38754]],[[12208,12208],\"mapped\",[38761]],[[12209,12209],\"mapped\",[38859]],[[12210,12210],\"mapped\",[38893]],[[12211,12211],\"mapped\",[38899]],[[12212,12212],\"mapped\",[38913]],[[12213,12213],\"mapped\",[39080]],[[12214,12214],\"mapped\",[39131]],[[12215,12215],\"mapped\",[39135]],[[12216,12216],\"mapped\",[39318]],[[12217,12217],\"mapped\",[39321]],[[12218,12218],\"mapped\",[39340]],[[12219,12219],\"mapped\",[39592]],[[12220,12220],\"mapped\",[39640]],[[12221,12221],\"mapped\",[39647]],[[12222,12222],\"mapped\",[39717]],[[12223,12223],\"mapped\",[39727]],[[12224,12224],\"mapped\",[39730]],[[12225,12225],\"mapped\",[39740]],[[12226,12226],\"mapped\",[39770]],[[12227,12227],\"mapped\",[40165]],[[12228,12228],\"mapped\",[40565]],[[12229,12229],\"mapped\",[40575]],[[12230,12230],\"mapped\",[40613]],[[12231,12231],\"mapped\",[40635]],[[12232,12232],\"mapped\",[40643]],[[12233,12233],\"mapped\",[40653]],[[12234,12234],\"mapped\",[40657]],[[12235,12235],\"mapped\",[40697]],[[12236,12236],\"mapped\",[40701]],[[12237,12237],\"mapped\",[40718]],[[12238,12238],\"mapped\",[40723]],[[12239,12239],\"mapped\",[40736]],[[12240,12240],\"mapped\",[40763]],[[12241,12241],\"mapped\",[40778]],[[12242,12242],\"mapped\",[40786]],[[12243,12243],\"mapped\",[40845]],[[12244,12244],\"mapped\",[40860]],[[12245,12245],\"mapped\",[40864]],[[12246,12271],\"disallowed\"],[[12272,12283],\"disallowed\"],[[12284,12287],\"disallowed\"],[[12288,12288],\"disallowed_STD3_mapped\",[32]],[[12289,12289],\"valid\",[],\"NV8\"],[[12290,12290],\"mapped\",[46]],[[12291,12292],\"valid\",[],\"NV8\"],[[12293,12295],\"valid\"],[[12296,12329],\"valid\",[],\"NV8\"],[[12330,12333],\"valid\"],[[12334,12341],\"valid\",[],\"NV8\"],[[12342,12342],\"mapped\",[12306]],[[12343,12343],\"valid\",[],\"NV8\"],[[12344,12344],\"mapped\",[21313]],[[12345,12345],\"mapped\",[21316]],[[12346,12346],\"mapped\",[21317]],[[12347,12347],\"valid\",[],\"NV8\"],[[12348,12348],\"valid\"],[[12349,12349],\"valid\",[],\"NV8\"],[[12350,12350],\"valid\",[],\"NV8\"],[[12351,12351],\"valid\",[],\"NV8\"],[[12352,12352],\"disallowed\"],[[12353,12436],\"valid\"],[[12437,12438],\"valid\"],[[12439,12440],\"disallowed\"],[[12441,12442],\"valid\"],[[12443,12443],\"disallowed_STD3_mapped\",[32,12441]],[[12444,12444],\"disallowed_STD3_mapped\",[32,12442]],[[12445,12446],\"valid\"],[[12447,12447],\"mapped\",[12424,12426]],[[12448,12448],\"valid\",[],\"NV8\"],[[12449,12542],\"valid\"],[[12543,12543],\"mapped\",[12467,12488]],[[12544,12548],\"disallowed\"],[[12549,12588],\"valid\"],[[12589,12589],\"valid\"],[[12590,12592],\"disallowed\"],[[12593,12593],\"mapped\",[4352]],[[12594,12594],\"mapped\",[4353]],[[12595,12595],\"mapped\",[4522]],[[12596,12596],\"mapped\",[4354]],[[12597,12597],\"mapped\",[4524]],[[12598,12598],\"mapped\",[4525]],[[12599,12599],\"mapped\",[4355]],[[12600,12600],\"mapped\",[4356]],[[12601,12601],\"mapped\",[4357]],[[12602,12602],\"mapped\",[4528]],[[12603,12603],\"mapped\",[4529]],[[12604,12604],\"mapped\",[4530]],[[12605,12605],\"mapped\",[4531]],[[12606,12606],\"mapped\",[4532]],[[12607,12607],\"mapped\",[4533]],[[12608,12608],\"mapped\",[4378]],[[12609,12609],\"mapped\",[4358]],[[12610,12610],\"mapped\",[4359]],[[12611,12611],\"mapped\",[4360]],[[12612,12612],\"mapped\",[4385]],[[12613,12613],\"mapped\",[4361]],[[12614,12614],\"mapped\",[4362]],[[12615,12615],\"mapped\",[4363]],[[12616,12616],\"mapped\",[4364]],[[12617,12617],\"mapped\",[4365]],[[12618,12618],\"mapped\",[4366]],[[12619,12619],\"mapped\",[4367]],[[12620,12620],\"mapped\",[4368]],[[12621,12621],\"mapped\",[4369]],[[12622,12622],\"mapped\",[4370]],[[12623,12623],\"mapped\",[4449]],[[12624,12624],\"mapped\",[4450]],[[12625,12625],\"mapped\",[4451]],[[12626,12626],\"mapped\",[4452]],[[12627,12627],\"mapped\",[4453]],[[12628,12628],\"mapped\",[4454]],[[12629,12629],\"mapped\",[4455]],[[12630,12630],\"mapped\",[4456]],[[12631,12631],\"mapped\",[4457]],[[12632,12632],\"mapped\",[4458]],[[12633,12633],\"mapped\",[4459]],[[12634,12634],\"mapped\",[4460]],[[12635,12635],\"mapped\",[4461]],[[12636,12636],\"mapped\",[4462]],[[12637,12637],\"mapped\",[4463]],[[12638,12638],\"mapped\",[4464]],[[12639,12639],\"mapped\",[4465]],[[12640,12640],\"mapped\",[4466]],[[12641,12641],\"mapped\",[4467]],[[12642,12642],\"mapped\",[4468]],[[12643,12643],\"mapped\",[4469]],[[12644,12644],\"disallowed\"],[[12645,12645],\"mapped\",[4372]],[[12646,12646],\"mapped\",[4373]],[[12647,12647],\"mapped\",[4551]],[[12648,12648],\"mapped\",[4552]],[[12649,12649],\"mapped\",[4556]],[[12650,12650],\"mapped\",[4558]],[[12651,12651],\"mapped\",[4563]],[[12652,12652],\"mapped\",[4567]],[[12653,12653],\"mapped\",[4569]],[[12654,12654],\"mapped\",[4380]],[[12655,12655],\"mapped\",[4573]],[[12656,12656],\"mapped\",[4575]],[[12657,12657],\"mapped\",[4381]],[[12658,12658],\"mapped\",[4382]],[[12659,12659],\"mapped\",[4384]],[[12660,12660],\"mapped\",[4386]],[[12661,12661],\"mapped\",[4387]],[[12662,12662],\"mapped\",[4391]],[[12663,12663],\"mapped\",[4393]],[[12664,12664],\"mapped\",[4395]],[[12665,12665],\"mapped\",[4396]],[[12666,12666],\"mapped\",[4397]],[[12667,12667],\"mapped\",[4398]],[[12668,12668],\"mapped\",[4399]],[[12669,12669],\"mapped\",[4402]],[[12670,12670],\"mapped\",[4406]],[[12671,12671],\"mapped\",[4416]],[[12672,12672],\"mapped\",[4423]],[[12673,12673],\"mapped\",[4428]],[[12674,12674],\"mapped\",[4593]],[[12675,12675],\"mapped\",[4594]],[[12676,12676],\"mapped\",[4439]],[[12677,12677],\"mapped\",[4440]],[[12678,12678],\"mapped\",[4441]],[[12679,12679],\"mapped\",[4484]],[[12680,12680],\"mapped\",[4485]],[[12681,12681],\"mapped\",[4488]],[[12682,12682],\"mapped\",[4497]],[[12683,12683],\"mapped\",[4498]],[[12684,12684],\"mapped\",[4500]],[[12685,12685],\"mapped\",[4510]],[[12686,12686],\"mapped\",[4513]],[[12687,12687],\"disallowed\"],[[12688,12689],\"valid\",[],\"NV8\"],[[12690,12690],\"mapped\",[19968]],[[12691,12691],\"mapped\",[20108]],[[12692,12692],\"mapped\",[19977]],[[12693,12693],\"mapped\",[22235]],[[12694,12694],\"mapped\",[19978]],[[12695,12695],\"mapped\",[20013]],[[12696,12696],\"mapped\",[19979]],[[12697,12697],\"mapped\",[30002]],[[12698,12698],\"mapped\",[20057]],[[12699,12699],\"mapped\",[19993]],[[12700,12700],\"mapped\",[19969]],[[12701,12701],\"mapped\",[22825]],[[12702,12702],\"mapped\",[22320]],[[12703,12703],\"mapped\",[20154]],[[12704,12727],\"valid\"],[[12728,12730],\"valid\"],[[12731,12735],\"disallowed\"],[[12736,12751],\"valid\",[],\"NV8\"],[[12752,12771],\"valid\",[],\"NV8\"],[[12772,12783],\"disallowed\"],[[12784,12799],\"valid\"],[[12800,12800],\"disallowed_STD3_mapped\",[40,4352,41]],[[12801,12801],\"disallowed_STD3_mapped\",[40,4354,41]],[[12802,12802],\"disallowed_STD3_mapped\",[40,4355,41]],[[12803,12803],\"disallowed_STD3_mapped\",[40,4357,41]],[[12804,12804],\"disallowed_STD3_mapped\",[40,4358,41]],[[12805,12805],\"disallowed_STD3_mapped\",[40,4359,41]],[[12806,12806],\"disallowed_STD3_mapped\",[40,4361,41]],[[12807,12807],\"disallowed_STD3_mapped\",[40,4363,41]],[[12808,12808],\"disallowed_STD3_mapped\",[40,4364,41]],[[12809,12809],\"disallowed_STD3_mapped\",[40,4366,41]],[[12810,12810],\"disallowed_STD3_mapped\",[40,4367,41]],[[12811,12811],\"disallowed_STD3_mapped\",[40,4368,41]],[[12812,12812],\"disallowed_STD3_mapped\",[40,4369,41]],[[12813,12813],\"disallowed_STD3_mapped\",[40,4370,41]],[[12814,12814],\"disallowed_STD3_mapped\",[40,44032,41]],[[12815,12815],\"disallowed_STD3_mapped\",[40,45208,41]],[[12816,12816],\"disallowed_STD3_mapped\",[40,45796,41]],[[12817,12817],\"disallowed_STD3_mapped\",[40,46972,41]],[[12818,12818],\"disallowed_STD3_mapped\",[40,47560,41]],[[12819,12819],\"disallowed_STD3_mapped\",[40,48148,41]],[[12820,12820],\"disallowed_STD3_mapped\",[40,49324,41]],[[12821,12821],\"disallowed_STD3_mapped\",[40,50500,41]],[[12822,12822],\"disallowed_STD3_mapped\",[40,51088,41]],[[12823,12823],\"disallowed_STD3_mapped\",[40,52264,41]],[[12824,12824],\"disallowed_STD3_mapped\",[40,52852,41]],[[12825,12825],\"disallowed_STD3_mapped\",[40,53440,41]],[[12826,12826],\"disallowed_STD3_mapped\",[40,54028,41]],[[12827,12827],\"disallowed_STD3_mapped\",[40,54616,41]],[[12828,12828],\"disallowed_STD3_mapped\",[40,51452,41]],[[12829,12829],\"disallowed_STD3_mapped\",[40,50724,51204,41]],[[12830,12830],\"disallowed_STD3_mapped\",[40,50724,54980,41]],[[12831,12831],\"disallowed\"],[[12832,12832],\"disallowed_STD3_mapped\",[40,19968,41]],[[12833,12833],\"disallowed_STD3_mapped\",[40,20108,41]],[[12834,12834],\"disallowed_STD3_mapped\",[40,19977,41]],[[12835,12835],\"disallowed_STD3_mapped\",[40,22235,41]],[[12836,12836],\"disallowed_STD3_mapped\",[40,20116,41]],[[12837,12837],\"disallowed_STD3_mapped\",[40,20845,41]],[[12838,12838],\"disallowed_STD3_mapped\",[40,19971,41]],[[12839,12839],\"disallowed_STD3_mapped\",[40,20843,41]],[[12840,12840],\"disallowed_STD3_mapped\",[40,20061,41]],[[12841,12841],\"disallowed_STD3_mapped\",[40,21313,41]],[[12842,12842],\"disallowed_STD3_mapped\",[40,26376,41]],[[12843,12843],\"disallowed_STD3_mapped\",[40,28779,41]],[[12844,12844],\"disallowed_STD3_mapped\",[40,27700,41]],[[12845,12845],\"disallowed_STD3_mapped\",[40,26408,41]],[[12846,12846],\"disallowed_STD3_mapped\",[40,37329,41]],[[12847,12847],\"disallowed_STD3_mapped\",[40,22303,41]],[[12848,12848],\"disallowed_STD3_mapped\",[40,26085,41]],[[12849,12849],\"disallowed_STD3_mapped\",[40,26666,41]],[[12850,12850],\"disallowed_STD3_mapped\",[40,26377,41]],[[12851,12851],\"disallowed_STD3_mapped\",[40,31038,41]],[[12852,12852],\"disallowed_STD3_mapped\",[40,21517,41]],[[12853,12853],\"disallowed_STD3_mapped\",[40,29305,41]],[[12854,12854],\"disallowed_STD3_mapped\",[40,36001,41]],[[12855,12855],\"disallowed_STD3_mapped\",[40,31069,41]],[[12856,12856],\"disallowed_STD3_mapped\",[40,21172,41]],[[12857,12857],\"disallowed_STD3_mapped\",[40,20195,41]],[[12858,12858],\"disallowed_STD3_mapped\",[40,21628,41]],[[12859,12859],\"disallowed_STD3_mapped\",[40,23398,41]],[[12860,12860],\"disallowed_STD3_mapped\",[40,30435,41]],[[12861,12861],\"disallowed_STD3_mapped\",[40,20225,41]],[[12862,12862],\"disallowed_STD3_mapped\",[40,36039,41]],[[12863,12863],\"disallowed_STD3_mapped\",[40,21332,41]],[[12864,12864],\"disallowed_STD3_mapped\",[40,31085,41]],[[12865,12865],\"disallowed_STD3_mapped\",[40,20241,41]],[[12866,12866],\"disallowed_STD3_mapped\",[40,33258,41]],[[12867,12867],\"disallowed_STD3_mapped\",[40,33267,41]],[[12868,12868],\"mapped\",[21839]],[[12869,12869],\"mapped\",[24188]],[[12870,12870],\"mapped\",[25991]],[[12871,12871],\"mapped\",[31631]],[[12872,12879],\"valid\",[],\"NV8\"],[[12880,12880],\"mapped\",[112,116,101]],[[12881,12881],\"mapped\",[50,49]],[[12882,12882],\"mapped\",[50,50]],[[12883,12883],\"mapped\",[50,51]],[[12884,12884],\"mapped\",[50,52]],[[12885,12885],\"mapped\",[50,53]],[[12886,12886],\"mapped\",[50,54]],[[12887,12887],\"mapped\",[50,55]],[[12888,12888],\"mapped\",[50,56]],[[12889,12889],\"mapped\",[50,57]],[[12890,12890],\"mapped\",[51,48]],[[12891,12891],\"mapped\",[51,49]],[[12892,12892],\"mapped\",[51,50]],[[12893,12893],\"mapped\",[51,51]],[[12894,12894],\"mapped\",[51,52]],[[12895,12895],\"mapped\",[51,53]],[[12896,12896],\"mapped\",[4352]],[[12897,12897],\"mapped\",[4354]],[[12898,12898],\"mapped\",[4355]],[[12899,12899],\"mapped\",[4357]],[[12900,12900],\"mapped\",[4358]],[[12901,12901],\"mapped\",[4359]],[[12902,12902],\"mapped\",[4361]],[[12903,12903],\"mapped\",[4363]],[[12904,12904],\"mapped\",[4364]],[[12905,12905],\"mapped\",[4366]],[[12906,12906],\"mapped\",[4367]],[[12907,12907],\"mapped\",[4368]],[[12908,12908],\"mapped\",[4369]],[[12909,12909],\"mapped\",[4370]],[[12910,12910],\"mapped\",[44032]],[[12911,12911],\"mapped\",[45208]],[[12912,12912],\"mapped\",[45796]],[[12913,12913],\"mapped\",[46972]],[[12914,12914],\"mapped\",[47560]],[[12915,12915],\"mapped\",[48148]],[[12916,12916],\"mapped\",[49324]],[[12917,12917],\"mapped\",[50500]],[[12918,12918],\"mapped\",[51088]],[[12919,12919],\"mapped\",[52264]],[[12920,12920],\"mapped\",[52852]],[[12921,12921],\"mapped\",[53440]],[[12922,12922],\"mapped\",[54028]],[[12923,12923],\"mapped\",[54616]],[[12924,12924],\"mapped\",[52280,44256]],[[12925,12925],\"mapped\",[51452,51032]],[[12926,12926],\"mapped\",[50864]],[[12927,12927],\"valid\",[],\"NV8\"],[[12928,12928],\"mapped\",[19968]],[[12929,12929],\"mapped\",[20108]],[[12930,12930],\"mapped\",[19977]],[[12931,12931],\"mapped\",[22235]],[[12932,12932],\"mapped\",[20116]],[[12933,12933],\"mapped\",[20845]],[[12934,12934],\"mapped\",[19971]],[[12935,12935],\"mapped\",[20843]],[[12936,12936],\"mapped\",[20061]],[[12937,12937],\"mapped\",[21313]],[[12938,12938],\"mapped\",[26376]],[[12939,12939],\"mapped\",[28779]],[[12940,12940],\"mapped\",[27700]],[[12941,12941],\"mapped\",[26408]],[[12942,12942],\"mapped\",[37329]],[[12943,12943],\"mapped\",[22303]],[[12944,12944],\"mapped\",[26085]],[[12945,12945],\"mapped\",[26666]],[[12946,12946],\"mapped\",[26377]],[[12947,12947],\"mapped\",[31038]],[[12948,12948],\"mapped\",[21517]],[[12949,12949],\"mapped\",[29305]],[[12950,12950],\"mapped\",[36001]],[[12951,12951],\"mapped\",[31069]],[[12952,12952],\"mapped\",[21172]],[[12953,12953],\"mapped\",[31192]],[[12954,12954],\"mapped\",[30007]],[[12955,12955],\"mapped\",[22899]],[[12956,12956],\"mapped\",[36969]],[[12957,12957],\"mapped\",[20778]],[[12958,12958],\"mapped\",[21360]],[[12959,12959],\"mapped\",[27880]],[[12960,12960],\"mapped\",[38917]],[[12961,12961],\"mapped\",[20241]],[[12962,12962],\"mapped\",[20889]],[[12963,12963],\"mapped\",[27491]],[[12964,12964],\"mapped\",[19978]],[[12965,12965],\"mapped\",[20013]],[[12966,12966],\"mapped\",[19979]],[[12967,12967],\"mapped\",[24038]],[[12968,12968],\"mapped\",[21491]],[[12969,12969],\"mapped\",[21307]],[[12970,12970],\"mapped\",[23447]],[[12971,12971],\"mapped\",[23398]],[[12972,12972],\"mapped\",[30435]],[[12973,12973],\"mapped\",[20225]],[[12974,12974],\"mapped\",[36039]],[[12975,12975],\"mapped\",[21332]],[[12976,12976],\"mapped\",[22812]],[[12977,12977],\"mapped\",[51,54]],[[12978,12978],\"mapped\",[51,55]],[[12979,12979],\"mapped\",[51,56]],[[12980,12980],\"mapped\",[51,57]],[[12981,12981],\"mapped\",[52,48]],[[12982,12982],\"mapped\",[52,49]],[[12983,12983],\"mapped\",[52,50]],[[12984,12984],\"mapped\",[52,51]],[[12985,12985],\"mapped\",[52,52]],[[12986,12986],\"mapped\",[52,53]],[[12987,12987],\"mapped\",[52,54]],[[12988,12988],\"mapped\",[52,55]],[[12989,12989],\"mapped\",[52,56]],[[12990,12990],\"mapped\",[52,57]],[[12991,12991],\"mapped\",[53,48]],[[12992,12992],\"mapped\",[49,26376]],[[12993,12993],\"mapped\",[50,26376]],[[12994,12994],\"mapped\",[51,26376]],[[12995,12995],\"mapped\",[52,26376]],[[12996,12996],\"mapped\",[53,26376]],[[12997,12997],\"mapped\",[54,26376]],[[12998,12998],\"mapped\",[55,26376]],[[12999,12999],\"mapped\",[56,26376]],[[13000,13000],\"mapped\",[57,26376]],[[13001,13001],\"mapped\",[49,48,26376]],[[13002,13002],\"mapped\",[49,49,26376]],[[13003,13003],\"mapped\",[49,50,26376]],[[13004,13004],\"mapped\",[104,103]],[[13005,13005],\"mapped\",[101,114,103]],[[13006,13006],\"mapped\",[101,118]],[[13007,13007],\"mapped\",[108,116,100]],[[13008,13008],\"mapped\",[12450]],[[13009,13009],\"mapped\",[12452]],[[13010,13010],\"mapped\",[12454]],[[13011,13011],\"mapped\",[12456]],[[13012,13012],\"mapped\",[12458]],[[13013,13013],\"mapped\",[12459]],[[13014,13014],\"mapped\",[12461]],[[13015,13015],\"mapped\",[12463]],[[13016,13016],\"mapped\",[12465]],[[13017,13017],\"mapped\",[12467]],[[13018,13018],\"mapped\",[12469]],[[13019,13019],\"mapped\",[12471]],[[13020,13020],\"mapped\",[12473]],[[13021,13021],\"mapped\",[12475]],[[13022,13022],\"mapped\",[12477]],[[13023,13023],\"mapped\",[12479]],[[13024,13024],\"mapped\",[12481]],[[13025,13025],\"mapped\",[12484]],[[13026,13026],\"mapped\",[12486]],[[13027,13027],\"mapped\",[12488]],[[13028,13028],\"mapped\",[12490]],[[13029,13029],\"mapped\",[12491]],[[13030,13030],\"mapped\",[12492]],[[13031,13031],\"mapped\",[12493]],[[13032,13032],\"mapped\",[12494]],[[13033,13033],\"mapped\",[12495]],[[13034,13034],\"mapped\",[12498]],[[13035,13035],\"mapped\",[12501]],[[13036,13036],\"mapped\",[12504]],[[13037,13037],\"mapped\",[12507]],[[13038,13038],\"mapped\",[12510]],[[13039,13039],\"mapped\",[12511]],[[13040,13040],\"mapped\",[12512]],[[13041,13041],\"mapped\",[12513]],[[13042,13042],\"mapped\",[12514]],[[13043,13043],\"mapped\",[12516]],[[13044,13044],\"mapped\",[12518]],[[13045,13045],\"mapped\",[12520]],[[13046,13046],\"mapped\",[12521]],[[13047,13047],\"mapped\",[12522]],[[13048,13048],\"mapped\",[12523]],[[13049,13049],\"mapped\",[12524]],[[13050,13050],\"mapped\",[12525]],[[13051,13051],\"mapped\",[12527]],[[13052,13052],\"mapped\",[12528]],[[13053,13053],\"mapped\",[12529]],[[13054,13054],\"mapped\",[12530]],[[13055,13055],\"disallowed\"],[[13056,13056],\"mapped\",[12450,12497,12540,12488]],[[13057,13057],\"mapped\",[12450,12523,12501,12449]],[[13058,13058],\"mapped\",[12450,12531,12506,12450]],[[13059,13059],\"mapped\",[12450,12540,12523]],[[13060,13060],\"mapped\",[12452,12491,12531,12464]],[[13061,13061],\"mapped\",[12452,12531,12481]],[[13062,13062],\"mapped\",[12454,12457,12531]],[[13063,13063],\"mapped\",[12456,12473,12463,12540,12489]],[[13064,13064],\"mapped\",[12456,12540,12459,12540]],[[13065,13065],\"mapped\",[12458,12531,12473]],[[13066,13066],\"mapped\",[12458,12540,12512]],[[13067,13067],\"mapped\",[12459,12452,12522]],[[13068,13068],\"mapped\",[12459,12521,12483,12488]],[[13069,13069],\"mapped\",[12459,12525,12522,12540]],[[13070,13070],\"mapped\",[12460,12525,12531]],[[13071,13071],\"mapped\",[12460,12531,12510]],[[13072,13072],\"mapped\",[12462,12460]],[[13073,13073],\"mapped\",[12462,12491,12540]],[[13074,13074],\"mapped\",[12461,12517,12522,12540]],[[13075,13075],\"mapped\",[12462,12523,12480,12540]],[[13076,13076],\"mapped\",[12461,12525]],[[13077,13077],\"mapped\",[12461,12525,12464,12521,12512]],[[13078,13078],\"mapped\",[12461,12525,12513,12540,12488,12523]],[[13079,13079],\"mapped\",[12461,12525,12527,12483,12488]],[[13080,13080],\"mapped\",[12464,12521,12512]],[[13081,13081],\"mapped\",[12464,12521,12512,12488,12531]],[[13082,13082],\"mapped\",[12463,12523,12476,12452,12525]],[[13083,13083],\"mapped\",[12463,12525,12540,12493]],[[13084,13084],\"mapped\",[12465,12540,12473]],[[13085,13085],\"mapped\",[12467,12523,12490]],[[13086,13086],\"mapped\",[12467,12540,12509]],[[13087,13087],\"mapped\",[12469,12452,12463,12523]],[[13088,13088],\"mapped\",[12469,12531,12481,12540,12512]],[[13089,13089],\"mapped\",[12471,12522,12531,12464]],[[13090,13090],\"mapped\",[12475,12531,12481]],[[13091,13091],\"mapped\",[12475,12531,12488]],[[13092,13092],\"mapped\",[12480,12540,12473]],[[13093,13093],\"mapped\",[12487,12471]],[[13094,13094],\"mapped\",[12489,12523]],[[13095,13095],\"mapped\",[12488,12531]],[[13096,13096],\"mapped\",[12490,12494]],[[13097,13097],\"mapped\",[12494,12483,12488]],[[13098,13098],\"mapped\",[12495,12452,12484]],[[13099,13099],\"mapped\",[12497,12540,12475,12531,12488]],[[13100,13100],\"mapped\",[12497,12540,12484]],[[13101,13101],\"mapped\",[12496,12540,12524,12523]],[[13102,13102],\"mapped\",[12500,12450,12473,12488,12523]],[[13103,13103],\"mapped\",[12500,12463,12523]],[[13104,13104],\"mapped\",[12500,12467]],[[13105,13105],\"mapped\",[12499,12523]],[[13106,13106],\"mapped\",[12501,12449,12521,12483,12489]],[[13107,13107],\"mapped\",[12501,12451,12540,12488]],[[13108,13108],\"mapped\",[12502,12483,12471,12455,12523]],[[13109,13109],\"mapped\",[12501,12521,12531]],[[13110,13110],\"mapped\",[12504,12463,12479,12540,12523]],[[13111,13111],\"mapped\",[12506,12477]],[[13112,13112],\"mapped\",[12506,12491,12498]],[[13113,13113],\"mapped\",[12504,12523,12484]],[[13114,13114],\"mapped\",[12506,12531,12473]],[[13115,13115],\"mapped\",[12506,12540,12472]],[[13116,13116],\"mapped\",[12505,12540,12479]],[[13117,13117],\"mapped\",[12509,12452,12531,12488]],[[13118,13118],\"mapped\",[12508,12523,12488]],[[13119,13119],\"mapped\",[12507,12531]],[[13120,13120],\"mapped\",[12509,12531,12489]],[[13121,13121],\"mapped\",[12507,12540,12523]],[[13122,13122],\"mapped\",[12507,12540,12531]],[[13123,13123],\"mapped\",[12510,12452,12463,12525]],[[13124,13124],\"mapped\",[12510,12452,12523]],[[13125,13125],\"mapped\",[12510,12483,12495]],[[13126,13126],\"mapped\",[12510,12523,12463]],[[13127,13127],\"mapped\",[12510,12531,12471,12519,12531]],[[13128,13128],\"mapped\",[12511,12463,12525,12531]],[[13129,13129],\"mapped\",[12511,12522]],[[13130,13130],\"mapped\",[12511,12522,12496,12540,12523]],[[13131,13131],\"mapped\",[12513,12460]],[[13132,13132],\"mapped\",[12513,12460,12488,12531]],[[13133,13133],\"mapped\",[12513,12540,12488,12523]],[[13134,13134],\"mapped\",[12516,12540,12489]],[[13135,13135],\"mapped\",[12516,12540,12523]],[[13136,13136],\"mapped\",[12518,12450,12531]],[[13137,13137],\"mapped\",[12522,12483,12488,12523]],[[13138,13138],\"mapped\",[12522,12521]],[[13139,13139],\"mapped\",[12523,12500,12540]],[[13140,13140],\"mapped\",[12523,12540,12502,12523]],[[13141,13141],\"mapped\",[12524,12512]],[[13142,13142],\"mapped\",[12524,12531,12488,12466,12531]],[[13143,13143],\"mapped\",[12527,12483,12488]],[[13144,13144],\"mapped\",[48,28857]],[[13145,13145],\"mapped\",[49,28857]],[[13146,13146],\"mapped\",[50,28857]],[[13147,13147],\"mapped\",[51,28857]],[[13148,13148],\"mapped\",[52,28857]],[[13149,13149],\"mapped\",[53,28857]],[[13150,13150],\"mapped\",[54,28857]],[[13151,13151],\"mapped\",[55,28857]],[[13152,13152],\"mapped\",[56,28857]],[[13153,13153],\"mapped\",[57,28857]],[[13154,13154],\"mapped\",[49,48,28857]],[[13155,13155],\"mapped\",[49,49,28857]],[[13156,13156],\"mapped\",[49,50,28857]],[[13157,13157],\"mapped\",[49,51,28857]],[[13158,13158],\"mapped\",[49,52,28857]],[[13159,13159],\"mapped\",[49,53,28857]],[[13160,13160],\"mapped\",[49,54,28857]],[[13161,13161],\"mapped\",[49,55,28857]],[[13162,13162],\"mapped\",[49,56,28857]],[[13163,13163],\"mapped\",[49,57,28857]],[[13164,13164],\"mapped\",[50,48,28857]],[[13165,13165],\"mapped\",[50,49,28857]],[[13166,13166],\"mapped\",[50,50,28857]],[[13167,13167],\"mapped\",[50,51,28857]],[[13168,13168],\"mapped\",[50,52,28857]],[[13169,13169],\"mapped\",[104,112,97]],[[13170,13170],\"mapped\",[100,97]],[[13171,13171],\"mapped\",[97,117]],[[13172,13172],\"mapped\",[98,97,114]],[[13173,13173],\"mapped\",[111,118]],[[13174,13174],\"mapped\",[112,99]],[[13175,13175],\"mapped\",[100,109]],[[13176,13176],\"mapped\",[100,109,50]],[[13177,13177],\"mapped\",[100,109,51]],[[13178,13178],\"mapped\",[105,117]],[[13179,13179],\"mapped\",[24179,25104]],[[13180,13180],\"mapped\",[26157,21644]],[[13181,13181],\"mapped\",[22823,27491]],[[13182,13182],\"mapped\",[26126,27835]],[[13183,13183],\"mapped\",[26666,24335,20250,31038]],[[13184,13184],\"mapped\",[112,97]],[[13185,13185],\"mapped\",[110,97]],[[13186,13186],\"mapped\",[956,97]],[[13187,13187],\"mapped\",[109,97]],[[13188,13188],\"mapped\",[107,97]],[[13189,13189],\"mapped\",[107,98]],[[13190,13190],\"mapped\",[109,98]],[[13191,13191],\"mapped\",[103,98]],[[13192,13192],\"mapped\",[99,97,108]],[[13193,13193],\"mapped\",[107,99,97,108]],[[13194,13194],\"mapped\",[112,102]],[[13195,13195],\"mapped\",[110,102]],[[13196,13196],\"mapped\",[956,102]],[[13197,13197],\"mapped\",[956,103]],[[13198,13198],\"mapped\",[109,103]],[[13199,13199],\"mapped\",[107,103]],[[13200,13200],\"mapped\",[104,122]],[[13201,13201],\"mapped\",[107,104,122]],[[13202,13202],\"mapped\",[109,104,122]],[[13203,13203],\"mapped\",[103,104,122]],[[13204,13204],\"mapped\",[116,104,122]],[[13205,13205],\"mapped\",[956,108]],[[13206,13206],\"mapped\",[109,108]],[[13207,13207],\"mapped\",[100,108]],[[13208,13208],\"mapped\",[107,108]],[[13209,13209],\"mapped\",[102,109]],[[13210,13210],\"mapped\",[110,109]],[[13211,13211],\"mapped\",[956,109]],[[13212,13212],\"mapped\",[109,109]],[[13213,13213],\"mapped\",[99,109]],[[13214,13214],\"mapped\",[107,109]],[[13215,13215],\"mapped\",[109,109,50]],[[13216,13216],\"mapped\",[99,109,50]],[[13217,13217],\"mapped\",[109,50]],[[13218,13218],\"mapped\",[107,109,50]],[[13219,13219],\"mapped\",[109,109,51]],[[13220,13220],\"mapped\",[99,109,51]],[[13221,13221],\"mapped\",[109,51]],[[13222,13222],\"mapped\",[107,109,51]],[[13223,13223],\"mapped\",[109,8725,115]],[[13224,13224],\"mapped\",[109,8725,115,50]],[[13225,13225],\"mapped\",[112,97]],[[13226,13226],\"mapped\",[107,112,97]],[[13227,13227],\"mapped\",[109,112,97]],[[13228,13228],\"mapped\",[103,112,97]],[[13229,13229],\"mapped\",[114,97,100]],[[13230,13230],\"mapped\",[114,97,100,8725,115]],[[13231,13231],\"mapped\",[114,97,100,8725,115,50]],[[13232,13232],\"mapped\",[112,115]],[[13233,13233],\"mapped\",[110,115]],[[13234,13234],\"mapped\",[956,115]],[[13235,13235],\"mapped\",[109,115]],[[13236,13236],\"mapped\",[112,118]],[[13237,13237],\"mapped\",[110,118]],[[13238,13238],\"mapped\",[956,118]],[[13239,13239],\"mapped\",[109,118]],[[13240,13240],\"mapped\",[107,118]],[[13241,13241],\"mapped\",[109,118]],[[13242,13242],\"mapped\",[112,119]],[[13243,13243],\"mapped\",[110,119]],[[13244,13244],\"mapped\",[956,119]],[[13245,13245],\"mapped\",[109,119]],[[13246,13246],\"mapped\",[107,119]],[[13247,13247],\"mapped\",[109,119]],[[13248,13248],\"mapped\",[107,969]],[[13249,13249],\"mapped\",[109,969]],[[13250,13250],\"disallowed\"],[[13251,13251],\"mapped\",[98,113]],[[13252,13252],\"mapped\",[99,99]],[[13253,13253],\"mapped\",[99,100]],[[13254,13254],\"mapped\",[99,8725,107,103]],[[13255,13255],\"disallowed\"],[[13256,13256],\"mapped\",[100,98]],[[13257,13257],\"mapped\",[103,121]],[[13258,13258],\"mapped\",[104,97]],[[13259,13259],\"mapped\",[104,112]],[[13260,13260],\"mapped\",[105,110]],[[13261,13261],\"mapped\",[107,107]],[[13262,13262],\"mapped\",[107,109]],[[13263,13263],\"mapped\",[107,116]],[[13264,13264],\"mapped\",[108,109]],[[13265,13265],\"mapped\",[108,110]],[[13266,13266],\"mapped\",[108,111,103]],[[13267,13267],\"mapped\",[108,120]],[[13268,13268],\"mapped\",[109,98]],[[13269,13269],\"mapped\",[109,105,108]],[[13270,13270],\"mapped\",[109,111,108]],[[13271,13271],\"mapped\",[112,104]],[[13272,13272],\"disallowed\"],[[13273,13273],\"mapped\",[112,112,109]],[[13274,13274],\"mapped\",[112,114]],[[13275,13275],\"mapped\",[115,114]],[[13276,13276],\"mapped\",[115,118]],[[13277,13277],\"mapped\",[119,98]],[[13278,13278],\"mapped\",[118,8725,109]],[[13279,13279],\"mapped\",[97,8725,109]],[[13280,13280],\"mapped\",[49,26085]],[[13281,13281],\"mapped\",[50,26085]],[[13282,13282],\"mapped\",[51,26085]],[[13283,13283],\"mapped\",[52,26085]],[[13284,13284],\"mapped\",[53,26085]],[[13285,13285],\"mapped\",[54,26085]],[[13286,13286],\"mapped\",[55,26085]],[[13287,13287],\"mapped\",[56,26085]],[[13288,13288],\"mapped\",[57,26085]],[[13289,13289],\"mapped\",[49,48,26085]],[[13290,13290],\"mapped\",[49,49,26085]],[[13291,13291],\"mapped\",[49,50,26085]],[[13292,13292],\"mapped\",[49,51,26085]],[[13293,13293],\"mapped\",[49,52,26085]],[[13294,13294],\"mapped\",[49,53,26085]],[[13295,13295],\"mapped\",[49,54,26085]],[[13296,13296],\"mapped\",[49,55,26085]],[[13297,13297],\"mapped\",[49,56,26085]],[[13298,13298],\"mapped\",[49,57,26085]],[[13299,13299],\"mapped\",[50,48,26085]],[[13300,13300],\"mapped\",[50,49,26085]],[[13301,13301],\"mapped\",[50,50,26085]],[[13302,13302],\"mapped\",[50,51,26085]],[[13303,13303],\"mapped\",[50,52,26085]],[[13304,13304],\"mapped\",[50,53,26085]],[[13305,13305],\"mapped\",[50,54,26085]],[[13306,13306],\"mapped\",[50,55,26085]],[[13307,13307],\"mapped\",[50,56,26085]],[[13308,13308],\"mapped\",[50,57,26085]],[[13309,13309],\"mapped\",[51,48,26085]],[[13310,13310],\"mapped\",[51,49,26085]],[[13311,13311],\"mapped\",[103,97,108]],[[13312,19893],\"valid\"],[[19894,19903],\"disallowed\"],[[19904,19967],\"valid\",[],\"NV8\"],[[19968,40869],\"valid\"],[[40870,40891],\"valid\"],[[40892,40899],\"valid\"],[[40900,40907],\"valid\"],[[40908,40908],\"valid\"],[[40909,40917],\"valid\"],[[40918,40959],\"disallowed\"],[[40960,42124],\"valid\"],[[42125,42127],\"disallowed\"],[[42128,42145],\"valid\",[],\"NV8\"],[[42146,42147],\"valid\",[],\"NV8\"],[[42148,42163],\"valid\",[],\"NV8\"],[[42164,42164],\"valid\",[],\"NV8\"],[[42165,42176],\"valid\",[],\"NV8\"],[[42177,42177],\"valid\",[],\"NV8\"],[[42178,42180],\"valid\",[],\"NV8\"],[[42181,42181],\"valid\",[],\"NV8\"],[[42182,42182],\"valid\",[],\"NV8\"],[[42183,42191],\"disallowed\"],[[42192,42237],\"valid\"],[[42238,42239],\"valid\",[],\"NV8\"],[[42240,42508],\"valid\"],[[42509,42511],\"valid\",[],\"NV8\"],[[42512,42539],\"valid\"],[[42540,42559],\"disallowed\"],[[42560,42560],\"mapped\",[42561]],[[42561,42561],\"valid\"],[[42562,42562],\"mapped\",[42563]],[[42563,42563],\"valid\"],[[42564,42564],\"mapped\",[42565]],[[42565,42565],\"valid\"],[[42566,42566],\"mapped\",[42567]],[[42567,42567],\"valid\"],[[42568,42568],\"mapped\",[42569]],[[42569,42569],\"valid\"],[[42570,42570],\"mapped\",[42571]],[[42571,42571],\"valid\"],[[42572,42572],\"mapped\",[42573]],[[42573,42573],\"valid\"],[[42574,42574],\"mapped\",[42575]],[[42575,42575],\"valid\"],[[42576,42576],\"mapped\",[42577]],[[42577,42577],\"valid\"],[[42578,42578],\"mapped\",[42579]],[[42579,42579],\"valid\"],[[42580,42580],\"mapped\",[42581]],[[42581,42581],\"valid\"],[[42582,42582],\"mapped\",[42583]],[[42583,42583],\"valid\"],[[42584,42584],\"mapped\",[42585]],[[42585,42585],\"valid\"],[[42586,42586],\"mapped\",[42587]],[[42587,42587],\"valid\"],[[42588,42588],\"mapped\",[42589]],[[42589,42589],\"valid\"],[[42590,42590],\"mapped\",[42591]],[[42591,42591],\"valid\"],[[42592,42592],\"mapped\",[42593]],[[42593,42593],\"valid\"],[[42594,42594],\"mapped\",[42595]],[[42595,42595],\"valid\"],[[42596,42596],\"mapped\",[42597]],[[42597,42597],\"valid\"],[[42598,42598],\"mapped\",[42599]],[[42599,42599],\"valid\"],[[42600,42600],\"mapped\",[42601]],[[42601,42601],\"valid\"],[[42602,42602],\"mapped\",[42603]],[[42603,42603],\"valid\"],[[42604,42604],\"mapped\",[42605]],[[42605,42607],\"valid\"],[[42608,42611],\"valid\",[],\"NV8\"],[[42612,42619],\"valid\"],[[42620,42621],\"valid\"],[[42622,42622],\"valid\",[],\"NV8\"],[[42623,42623],\"valid\"],[[42624,42624],\"mapped\",[42625]],[[42625,42625],\"valid\"],[[42626,42626],\"mapped\",[42627]],[[42627,42627],\"valid\"],[[42628,42628],\"mapped\",[42629]],[[42629,42629],\"valid\"],[[42630,42630],\"mapped\",[42631]],[[42631,42631],\"valid\"],[[42632,42632],\"mapped\",[42633]],[[42633,42633],\"valid\"],[[42634,42634],\"mapped\",[42635]],[[42635,42635],\"valid\"],[[42636,42636],\"mapped\",[42637]],[[42637,42637],\"valid\"],[[42638,42638],\"mapped\",[42639]],[[42639,42639],\"valid\"],[[42640,42640],\"mapped\",[42641]],[[42641,42641],\"valid\"],[[42642,42642],\"mapped\",[42643]],[[42643,42643],\"valid\"],[[42644,42644],\"mapped\",[42645]],[[42645,42645],\"valid\"],[[42646,42646],\"mapped\",[42647]],[[42647,42647],\"valid\"],[[42648,42648],\"mapped\",[42649]],[[42649,42649],\"valid\"],[[42650,42650],\"mapped\",[42651]],[[42651,42651],\"valid\"],[[42652,42652],\"mapped\",[1098]],[[42653,42653],\"mapped\",[1100]],[[42654,42654],\"valid\"],[[42655,42655],\"valid\"],[[42656,42725],\"valid\"],[[42726,42735],\"valid\",[],\"NV8\"],[[42736,42737],\"valid\"],[[42738,42743],\"valid\",[],\"NV8\"],[[42744,42751],\"disallowed\"],[[42752,42774],\"valid\",[],\"NV8\"],[[42775,42778],\"valid\"],[[42779,42783],\"valid\"],[[42784,42785],\"valid\",[],\"NV8\"],[[42786,42786],\"mapped\",[42787]],[[42787,42787],\"valid\"],[[42788,42788],\"mapped\",[42789]],[[42789,42789],\"valid\"],[[42790,42790],\"mapped\",[42791]],[[42791,42791],\"valid\"],[[42792,42792],\"mapped\",[42793]],[[42793,42793],\"valid\"],[[42794,42794],\"mapped\",[42795]],[[42795,42795],\"valid\"],[[42796,42796],\"mapped\",[42797]],[[42797,42797],\"valid\"],[[42798,42798],\"mapped\",[42799]],[[42799,42801],\"valid\"],[[42802,42802],\"mapped\",[42803]],[[42803,42803],\"valid\"],[[42804,42804],\"mapped\",[42805]],[[42805,42805],\"valid\"],[[42806,42806],\"mapped\",[42807]],[[42807,42807],\"valid\"],[[42808,42808],\"mapped\",[42809]],[[42809,42809],\"valid\"],[[42810,42810],\"mapped\",[42811]],[[42811,42811],\"valid\"],[[42812,42812],\"mapped\",[42813]],[[42813,42813],\"valid\"],[[42814,42814],\"mapped\",[42815]],[[42815,42815],\"valid\"],[[42816,42816],\"mapped\",[42817]],[[42817,42817],\"valid\"],[[42818,42818],\"mapped\",[42819]],[[42819,42819],\"valid\"],[[42820,42820],\"mapped\",[42821]],[[42821,42821],\"valid\"],[[42822,42822],\"mapped\",[42823]],[[42823,42823],\"valid\"],[[42824,42824],\"mapped\",[42825]],[[42825,42825],\"valid\"],[[42826,42826],\"mapped\",[42827]],[[42827,42827],\"valid\"],[[42828,42828],\"mapped\",[42829]],[[42829,42829],\"valid\"],[[42830,42830],\"mapped\",[42831]],[[42831,42831],\"valid\"],[[42832,42832],\"mapped\",[42833]],[[42833,42833],\"valid\"],[[42834,42834],\"mapped\",[42835]],[[42835,42835],\"valid\"],[[42836,42836],\"mapped\",[42837]],[[42837,42837],\"valid\"],[[42838,42838],\"mapped\",[42839]],[[42839,42839],\"valid\"],[[42840,42840],\"mapped\",[42841]],[[42841,42841],\"valid\"],[[42842,42842],\"mapped\",[42843]],[[42843,42843],\"valid\"],[[42844,42844],\"mapped\",[42845]],[[42845,42845],\"valid\"],[[42846,42846],\"mapped\",[42847]],[[42847,42847],\"valid\"],[[42848,42848],\"mapped\",[42849]],[[42849,42849],\"valid\"],[[42850,42850],\"mapped\",[42851]],[[42851,42851],\"valid\"],[[42852,42852],\"mapped\",[42853]],[[42853,42853],\"valid\"],[[42854,42854],\"mapped\",[42855]],[[42855,42855],\"valid\"],[[42856,42856],\"mapped\",[42857]],[[42857,42857],\"valid\"],[[42858,42858],\"mapped\",[42859]],[[42859,42859],\"valid\"],[[42860,42860],\"mapped\",[42861]],[[42861,42861],\"valid\"],[[42862,42862],\"mapped\",[42863]],[[42863,42863],\"valid\"],[[42864,42864],\"mapped\",[42863]],[[42865,42872],\"valid\"],[[42873,42873],\"mapped\",[42874]],[[42874,42874],\"valid\"],[[42875,42875],\"mapped\",[42876]],[[42876,42876],\"valid\"],[[42877,42877],\"mapped\",[7545]],[[42878,42878],\"mapped\",[42879]],[[42879,42879],\"valid\"],[[42880,42880],\"mapped\",[42881]],[[42881,42881],\"valid\"],[[42882,42882],\"mapped\",[42883]],[[42883,42883],\"valid\"],[[42884,42884],\"mapped\",[42885]],[[42885,42885],\"valid\"],[[42886,42886],\"mapped\",[42887]],[[42887,42888],\"valid\"],[[42889,42890],\"valid\",[],\"NV8\"],[[42891,42891],\"mapped\",[42892]],[[42892,42892],\"valid\"],[[42893,42893],\"mapped\",[613]],[[42894,42894],\"valid\"],[[42895,42895],\"valid\"],[[42896,42896],\"mapped\",[42897]],[[42897,42897],\"valid\"],[[42898,42898],\"mapped\",[42899]],[[42899,42899],\"valid\"],[[42900,42901],\"valid\"],[[42902,42902],\"mapped\",[42903]],[[42903,42903],\"valid\"],[[42904,42904],\"mapped\",[42905]],[[42905,42905],\"valid\"],[[42906,42906],\"mapped\",[42907]],[[42907,42907],\"valid\"],[[42908,42908],\"mapped\",[42909]],[[42909,42909],\"valid\"],[[42910,42910],\"mapped\",[42911]],[[42911,42911],\"valid\"],[[42912,42912],\"mapped\",[42913]],[[42913,42913],\"valid\"],[[42914,42914],\"mapped\",[42915]],[[42915,42915],\"valid\"],[[42916,42916],\"mapped\",[42917]],[[42917,42917],\"valid\"],[[42918,42918],\"mapped\",[42919]],[[42919,42919],\"valid\"],[[42920,42920],\"mapped\",[42921]],[[42921,42921],\"valid\"],[[42922,42922],\"mapped\",[614]],[[42923,42923],\"mapped\",[604]],[[42924,42924],\"mapped\",[609]],[[42925,42925],\"mapped\",[620]],[[42926,42927],\"disallowed\"],[[42928,42928],\"mapped\",[670]],[[42929,42929],\"mapped\",[647]],[[42930,42930],\"mapped\",[669]],[[42931,42931],\"mapped\",[43859]],[[42932,42932],\"mapped\",[42933]],[[42933,42933],\"valid\"],[[42934,42934],\"mapped\",[42935]],[[42935,42935],\"valid\"],[[42936,42998],\"disallowed\"],[[42999,42999],\"valid\"],[[43000,43000],\"mapped\",[295]],[[43001,43001],\"mapped\",[339]],[[43002,43002],\"valid\"],[[43003,43007],\"valid\"],[[43008,43047],\"valid\"],[[43048,43051],\"valid\",[],\"NV8\"],[[43052,43055],\"disallowed\"],[[43056,43065],\"valid\",[],\"NV8\"],[[43066,43071],\"disallowed\"],[[43072,43123],\"valid\"],[[43124,43127],\"valid\",[],\"NV8\"],[[43128,43135],\"disallowed\"],[[43136,43204],\"valid\"],[[43205,43213],\"disallowed\"],[[43214,43215],\"valid\",[],\"NV8\"],[[43216,43225],\"valid\"],[[43226,43231],\"disallowed\"],[[43232,43255],\"valid\"],[[43256,43258],\"valid\",[],\"NV8\"],[[43259,43259],\"valid\"],[[43260,43260],\"valid\",[],\"NV8\"],[[43261,43261],\"valid\"],[[43262,43263],\"disallowed\"],[[43264,43309],\"valid\"],[[43310,43311],\"valid\",[],\"NV8\"],[[43312,43347],\"valid\"],[[43348,43358],\"disallowed\"],[[43359,43359],\"valid\",[],\"NV8\"],[[43360,43388],\"valid\",[],\"NV8\"],[[43389,43391],\"disallowed\"],[[43392,43456],\"valid\"],[[43457,43469],\"valid\",[],\"NV8\"],[[43470,43470],\"disallowed\"],[[43471,43481],\"valid\"],[[43482,43485],\"disallowed\"],[[43486,43487],\"valid\",[],\"NV8\"],[[43488,43518],\"valid\"],[[43519,43519],\"disallowed\"],[[43520,43574],\"valid\"],[[43575,43583],\"disallowed\"],[[43584,43597],\"valid\"],[[43598,43599],\"disallowed\"],[[43600,43609],\"valid\"],[[43610,43611],\"disallowed\"],[[43612,43615],\"valid\",[],\"NV8\"],[[43616,43638],\"valid\"],[[43639,43641],\"valid\",[],\"NV8\"],[[43642,43643],\"valid\"],[[43644,43647],\"valid\"],[[43648,43714],\"valid\"],[[43715,43738],\"disallowed\"],[[43739,43741],\"valid\"],[[43742,43743],\"valid\",[],\"NV8\"],[[43744,43759],\"valid\"],[[43760,43761],\"valid\",[],\"NV8\"],[[43762,43766],\"valid\"],[[43767,43776],\"disallowed\"],[[43777,43782],\"valid\"],[[43783,43784],\"disallowed\"],[[43785,43790],\"valid\"],[[43791,43792],\"disallowed\"],[[43793,43798],\"valid\"],[[43799,43807],\"disallowed\"],[[43808,43814],\"valid\"],[[43815,43815],\"disallowed\"],[[43816,43822],\"valid\"],[[43823,43823],\"disallowed\"],[[43824,43866],\"valid\"],[[43867,43867],\"valid\",[],\"NV8\"],[[43868,43868],\"mapped\",[42791]],[[43869,43869],\"mapped\",[43831]],[[43870,43870],\"mapped\",[619]],[[43871,43871],\"mapped\",[43858]],[[43872,43875],\"valid\"],[[43876,43877],\"valid\"],[[43878,43887],\"disallowed\"],[[43888,43888],\"mapped\",[5024]],[[43889,43889],\"mapped\",[5025]],[[43890,43890],\"mapped\",[5026]],[[43891,43891],\"mapped\",[5027]],[[43892,43892],\"mapped\",[5028]],[[43893,43893],\"mapped\",[5029]],[[43894,43894],\"mapped\",[5030]],[[43895,43895],\"mapped\",[5031]],[[43896,43896],\"mapped\",[5032]],[[43897,43897],\"mapped\",[5033]],[[43898,43898],\"mapped\",[5034]],[[43899,43899],\"mapped\",[5035]],[[43900,43900],\"mapped\",[5036]],[[43901,43901],\"mapped\",[5037]],[[43902,43902],\"mapped\",[5038]],[[43903,43903],\"mapped\",[5039]],[[43904,43904],\"mapped\",[5040]],[[43905,43905],\"mapped\",[5041]],[[43906,43906],\"mapped\",[5042]],[[43907,43907],\"mapped\",[5043]],[[43908,43908],\"mapped\",[5044]],[[43909,43909],\"mapped\",[5045]],[[43910,43910],\"mapped\",[5046]],[[43911,43911],\"mapped\",[5047]],[[43912,43912],\"mapped\",[5048]],[[43913,43913],\"mapped\",[5049]],[[43914,43914],\"mapped\",[5050]],[[43915,43915],\"mapped\",[5051]],[[43916,43916],\"mapped\",[5052]],[[43917,43917],\"mapped\",[5053]],[[43918,43918],\"mapped\",[5054]],[[43919,43919],\"mapped\",[5055]],[[43920,43920],\"mapped\",[5056]],[[43921,43921],\"mapped\",[5057]],[[43922,43922],\"mapped\",[5058]],[[43923,43923],\"mapped\",[5059]],[[43924,43924],\"mapped\",[5060]],[[43925,43925],\"mapped\",[5061]],[[43926,43926],\"mapped\",[5062]],[[43927,43927],\"mapped\",[5063]],[[43928,43928],\"mapped\",[5064]],[[43929,43929],\"mapped\",[5065]],[[43930,43930],\"mapped\",[5066]],[[43931,43931],\"mapped\",[5067]],[[43932,43932],\"mapped\",[5068]],[[43933,43933],\"mapped\",[5069]],[[43934,43934],\"mapped\",[5070]],[[43935,43935],\"mapped\",[5071]],[[43936,43936],\"mapped\",[5072]],[[43937,43937],\"mapped\",[5073]],[[43938,43938],\"mapped\",[5074]],[[43939,43939],\"mapped\",[5075]],[[43940,43940],\"mapped\",[5076]],[[43941,43941],\"mapped\",[5077]],[[43942,43942],\"mapped\",[5078]],[[43943,43943],\"mapped\",[5079]],[[43944,43944],\"mapped\",[5080]],[[43945,43945],\"mapped\",[5081]],[[43946,43946],\"mapped\",[5082]],[[43947,43947],\"mapped\",[5083]],[[43948,43948],\"mapped\",[5084]],[[43949,43949],\"mapped\",[5085]],[[43950,43950],\"mapped\",[5086]],[[43951,43951],\"mapped\",[5087]],[[43952,43952],\"mapped\",[5088]],[[43953,43953],\"mapped\",[5089]],[[43954,43954],\"mapped\",[5090]],[[43955,43955],\"mapped\",[5091]],[[43956,43956],\"mapped\",[5092]],[[43957,43957],\"mapped\",[5093]],[[43958,43958],\"mapped\",[5094]],[[43959,43959],\"mapped\",[5095]],[[43960,43960],\"mapped\",[5096]],[[43961,43961],\"mapped\",[5097]],[[43962,43962],\"mapped\",[5098]],[[43963,43963],\"mapped\",[5099]],[[43964,43964],\"mapped\",[5100]],[[43965,43965],\"mapped\",[5101]],[[43966,43966],\"mapped\",[5102]],[[43967,43967],\"mapped\",[5103]],[[43968,44010],\"valid\"],[[44011,44011],\"valid\",[],\"NV8\"],[[44012,44013],\"valid\"],[[44014,44015],\"disallowed\"],[[44016,44025],\"valid\"],[[44026,44031],\"disallowed\"],[[44032,55203],\"valid\"],[[55204,55215],\"disallowed\"],[[55216,55238],\"valid\",[],\"NV8\"],[[55239,55242],\"disallowed\"],[[55243,55291],\"valid\",[],\"NV8\"],[[55292,55295],\"disallowed\"],[[55296,57343],\"disallowed\"],[[57344,63743],\"disallowed\"],[[63744,63744],\"mapped\",[35912]],[[63745,63745],\"mapped\",[26356]],[[63746,63746],\"mapped\",[36554]],[[63747,63747],\"mapped\",[36040]],[[63748,63748],\"mapped\",[28369]],[[63749,63749],\"mapped\",[20018]],[[63750,63750],\"mapped\",[21477]],[[63751,63752],\"mapped\",[40860]],[[63753,63753],\"mapped\",[22865]],[[63754,63754],\"mapped\",[37329]],[[63755,63755],\"mapped\",[21895]],[[63756,63756],\"mapped\",[22856]],[[63757,63757],\"mapped\",[25078]],[[63758,63758],\"mapped\",[30313]],[[63759,63759],\"mapped\",[32645]],[[63760,63760],\"mapped\",[34367]],[[63761,63761],\"mapped\",[34746]],[[63762,63762],\"mapped\",[35064]],[[63763,63763],\"mapped\",[37007]],[[63764,63764],\"mapped\",[27138]],[[63765,63765],\"mapped\",[27931]],[[63766,63766],\"mapped\",[28889]],[[63767,63767],\"mapped\",[29662]],[[63768,63768],\"mapped\",[33853]],[[63769,63769],\"mapped\",[37226]],[[63770,63770],\"mapped\",[39409]],[[63771,63771],\"mapped\",[20098]],[[63772,63772],\"mapped\",[21365]],[[63773,63773],\"mapped\",[27396]],[[63774,63774],\"mapped\",[29211]],[[63775,63775],\"mapped\",[34349]],[[63776,63776],\"mapped\",[40478]],[[63777,63777],\"mapped\",[23888]],[[63778,63778],\"mapped\",[28651]],[[63779,63779],\"mapped\",[34253]],[[63780,63780],\"mapped\",[35172]],[[63781,63781],\"mapped\",[25289]],[[63782,63782],\"mapped\",[33240]],[[63783,63783],\"mapped\",[34847]],[[63784,63784],\"mapped\",[24266]],[[63785,63785],\"mapped\",[26391]],[[63786,63786],\"mapped\",[28010]],[[63787,63787],\"mapped\",[29436]],[[63788,63788],\"mapped\",[37070]],[[63789,63789],\"mapped\",[20358]],[[63790,63790],\"mapped\",[20919]],[[63791,63791],\"mapped\",[21214]],[[63792,63792],\"mapped\",[25796]],[[63793,63793],\"mapped\",[27347]],[[63794,63794],\"mapped\",[29200]],[[63795,63795],\"mapped\",[30439]],[[63796,63796],\"mapped\",[32769]],[[63797,63797],\"mapped\",[34310]],[[63798,63798],\"mapped\",[34396]],[[63799,63799],\"mapped\",[36335]],[[63800,63800],\"mapped\",[38706]],[[63801,63801],\"mapped\",[39791]],[[63802,63802],\"mapped\",[40442]],[[63803,63803],\"mapped\",[30860]],[[63804,63804],\"mapped\",[31103]],[[63805,63805],\"mapped\",[32160]],[[63806,63806],\"mapped\",[33737]],[[63807,63807],\"mapped\",[37636]],[[63808,63808],\"mapped\",[40575]],[[63809,63809],\"mapped\",[35542]],[[63810,63810],\"mapped\",[22751]],[[63811,63811],\"mapped\",[24324]],[[63812,63812],\"mapped\",[31840]],[[63813,63813],\"mapped\",[32894]],[[63814,63814],\"mapped\",[29282]],[[63815,63815],\"mapped\",[30922]],[[63816,63816],\"mapped\",[36034]],[[63817,63817],\"mapped\",[38647]],[[63818,63818],\"mapped\",[22744]],[[63819,63819],\"mapped\",[23650]],[[63820,63820],\"mapped\",[27155]],[[63821,63821],\"mapped\",[28122]],[[63822,63822],\"mapped\",[28431]],[[63823,63823],\"mapped\",[32047]],[[63824,63824],\"mapped\",[32311]],[[63825,63825],\"mapped\",[38475]],[[63826,63826],\"mapped\",[21202]],[[63827,63827],\"mapped\",[32907]],[[63828,63828],\"mapped\",[20956]],[[63829,63829],\"mapped\",[20940]],[[63830,63830],\"mapped\",[31260]],[[63831,63831],\"mapped\",[32190]],[[63832,63832],\"mapped\",[33777]],[[63833,63833],\"mapped\",[38517]],[[63834,63834],\"mapped\",[35712]],[[63835,63835],\"mapped\",[25295]],[[63836,63836],\"mapped\",[27138]],[[63837,63837],\"mapped\",[35582]],[[63838,63838],\"mapped\",[20025]],[[63839,63839],\"mapped\",[23527]],[[63840,63840],\"mapped\",[24594]],[[63841,63841],\"mapped\",[29575]],[[63842,63842],\"mapped\",[30064]],[[63843,63843],\"mapped\",[21271]],[[63844,63844],\"mapped\",[30971]],[[63845,63845],\"mapped\",[20415]],[[63846,63846],\"mapped\",[24489]],[[63847,63847],\"mapped\",[19981]],[[63848,63848],\"mapped\",[27852]],[[63849,63849],\"mapped\",[25976]],[[63850,63850],\"mapped\",[32034]],[[63851,63851],\"mapped\",[21443]],[[63852,63852],\"mapped\",[22622]],[[63853,63853],\"mapped\",[30465]],[[63854,63854],\"mapped\",[33865]],[[63855,63855],\"mapped\",[35498]],[[63856,63856],\"mapped\",[27578]],[[63857,63857],\"mapped\",[36784]],[[63858,63858],\"mapped\",[27784]],[[63859,63859],\"mapped\",[25342]],[[63860,63860],\"mapped\",[33509]],[[63861,63861],\"mapped\",[25504]],[[63862,63862],\"mapped\",[30053]],[[63863,63863],\"mapped\",[20142]],[[63864,63864],\"mapped\",[20841]],[[63865,63865],\"mapped\",[20937]],[[63866,63866],\"mapped\",[26753]],[[63867,63867],\"mapped\",[31975]],[[63868,63868],\"mapped\",[33391]],[[63869,63869],\"mapped\",[35538]],[[63870,63870],\"mapped\",[37327]],[[63871,63871],\"mapped\",[21237]],[[63872,63872],\"mapped\",[21570]],[[63873,63873],\"mapped\",[22899]],[[63874,63874],\"mapped\",[24300]],[[63875,63875],\"mapped\",[26053]],[[63876,63876],\"mapped\",[28670]],[[63877,63877],\"mapped\",[31018]],[[63878,63878],\"mapped\",[38317]],[[63879,63879],\"mapped\",[39530]],[[63880,63880],\"mapped\",[40599]],[[63881,63881],\"mapped\",[40654]],[[63882,63882],\"mapped\",[21147]],[[63883,63883],\"mapped\",[26310]],[[63884,63884],\"mapped\",[27511]],[[63885,63885],\"mapped\",[36706]],[[63886,63886],\"mapped\",[24180]],[[63887,63887],\"mapped\",[24976]],[[63888,63888],\"mapped\",[25088]],[[63889,63889],\"mapped\",[25754]],[[63890,63890],\"mapped\",[28451]],[[63891,63891],\"mapped\",[29001]],[[63892,63892],\"mapped\",[29833]],[[63893,63893],\"mapped\",[31178]],[[63894,63894],\"mapped\",[32244]],[[63895,63895],\"mapped\",[32879]],[[63896,63896],\"mapped\",[36646]],[[63897,63897],\"mapped\",[34030]],[[63898,63898],\"mapped\",[36899]],[[63899,63899],\"mapped\",[37706]],[[63900,63900],\"mapped\",[21015]],[[63901,63901],\"mapped\",[21155]],[[63902,63902],\"mapped\",[21693]],[[63903,63903],\"mapped\",[28872]],[[63904,63904],\"mapped\",[35010]],[[63905,63905],\"mapped\",[35498]],[[63906,63906],\"mapped\",[24265]],[[63907,63907],\"mapped\",[24565]],[[63908,63908],\"mapped\",[25467]],[[63909,63909],\"mapped\",[27566]],[[63910,63910],\"mapped\",[31806]],[[63911,63911],\"mapped\",[29557]],[[63912,63912],\"mapped\",[20196]],[[63913,63913],\"mapped\",[22265]],[[63914,63914],\"mapped\",[23527]],[[63915,63915],\"mapped\",[23994]],[[63916,63916],\"mapped\",[24604]],[[63917,63917],\"mapped\",[29618]],[[63918,63918],\"mapped\",[29801]],[[63919,63919],\"mapped\",[32666]],[[63920,63920],\"mapped\",[32838]],[[63921,63921],\"mapped\",[37428]],[[63922,63922],\"mapped\",[38646]],[[63923,63923],\"mapped\",[38728]],[[63924,63924],\"mapped\",[38936]],[[63925,63925],\"mapped\",[20363]],[[63926,63926],\"mapped\",[31150]],[[63927,63927],\"mapped\",[37300]],[[63928,63928],\"mapped\",[38584]],[[63929,63929],\"mapped\",[24801]],[[63930,63930],\"mapped\",[20102]],[[63931,63931],\"mapped\",[20698]],[[63932,63932],\"mapped\",[23534]],[[63933,63933],\"mapped\",[23615]],[[63934,63934],\"mapped\",[26009]],[[63935,63935],\"mapped\",[27138]],[[63936,63936],\"mapped\",[29134]],[[63937,63937],\"mapped\",[30274]],[[63938,63938],\"mapped\",[34044]],[[63939,63939],\"mapped\",[36988]],[[63940,63940],\"mapped\",[40845]],[[63941,63941],\"mapped\",[26248]],[[63942,63942],\"mapped\",[38446]],[[63943,63943],\"mapped\",[21129]],[[63944,63944],\"mapped\",[26491]],[[63945,63945],\"mapped\",[26611]],[[63946,63946],\"mapped\",[27969]],[[63947,63947],\"mapped\",[28316]],[[63948,63948],\"mapped\",[29705]],[[63949,63949],\"mapped\",[30041]],[[63950,63950],\"mapped\",[30827]],[[63951,63951],\"mapped\",[32016]],[[63952,63952],\"mapped\",[39006]],[[63953,63953],\"mapped\",[20845]],[[63954,63954],\"mapped\",[25134]],[[63955,63955],\"mapped\",[38520]],[[63956,63956],\"mapped\",[20523]],[[63957,63957],\"mapped\",[23833]],[[63958,63958],\"mapped\",[28138]],[[63959,63959],\"mapped\",[36650]],[[63960,63960],\"mapped\",[24459]],[[63961,63961],\"mapped\",[24900]],[[63962,63962],\"mapped\",[26647]],[[63963,63963],\"mapped\",[29575]],[[63964,63964],\"mapped\",[38534]],[[63965,63965],\"mapped\",[21033]],[[63966,63966],\"mapped\",[21519]],[[63967,63967],\"mapped\",[23653]],[[63968,63968],\"mapped\",[26131]],[[63969,63969],\"mapped\",[26446]],[[63970,63970],\"mapped\",[26792]],[[63971,63971],\"mapped\",[27877]],[[63972,63972],\"mapped\",[29702]],[[63973,63973],\"mapped\",[30178]],[[63974,63974],\"mapped\",[32633]],[[63975,63975],\"mapped\",[35023]],[[63976,63976],\"mapped\",[35041]],[[63977,63977],\"mapped\",[37324]],[[63978,63978],\"mapped\",[38626]],[[63979,63979],\"mapped\",[21311]],[[63980,63980],\"mapped\",[28346]],[[63981,63981],\"mapped\",[21533]],[[63982,63982],\"mapped\",[29136]],[[63983,63983],\"mapped\",[29848]],[[63984,63984],\"mapped\",[34298]],[[63985,63985],\"mapped\",[38563]],[[63986,63986],\"mapped\",[40023]],[[63987,63987],\"mapped\",[40607]],[[63988,63988],\"mapped\",[26519]],[[63989,63989],\"mapped\",[28107]],[[63990,63990],\"mapped\",[33256]],[[63991,63991],\"mapped\",[31435]],[[63992,63992],\"mapped\",[31520]],[[63993,63993],\"mapped\",[31890]],[[63994,63994],\"mapped\",[29376]],[[63995,63995],\"mapped\",[28825]],[[63996,63996],\"mapped\",[35672]],[[63997,63997],\"mapped\",[20160]],[[63998,63998],\"mapped\",[33590]],[[63999,63999],\"mapped\",[21050]],[[64000,64000],\"mapped\",[20999]],[[64001,64001],\"mapped\",[24230]],[[64002,64002],\"mapped\",[25299]],[[64003,64003],\"mapped\",[31958]],[[64004,64004],\"mapped\",[23429]],[[64005,64005],\"mapped\",[27934]],[[64006,64006],\"mapped\",[26292]],[[64007,64007],\"mapped\",[36667]],[[64008,64008],\"mapped\",[34892]],[[64009,64009],\"mapped\",[38477]],[[64010,64010],\"mapped\",[35211]],[[64011,64011],\"mapped\",[24275]],[[64012,64012],\"mapped\",[20800]],[[64013,64013],\"mapped\",[21952]],[[64014,64015],\"valid\"],[[64016,64016],\"mapped\",[22618]],[[64017,64017],\"valid\"],[[64018,64018],\"mapped\",[26228]],[[64019,64020],\"valid\"],[[64021,64021],\"mapped\",[20958]],[[64022,64022],\"mapped\",[29482]],[[64023,64023],\"mapped\",[30410]],[[64024,64024],\"mapped\",[31036]],[[64025,64025],\"mapped\",[31070]],[[64026,64026],\"mapped\",[31077]],[[64027,64027],\"mapped\",[31119]],[[64028,64028],\"mapped\",[38742]],[[64029,64029],\"mapped\",[31934]],[[64030,64030],\"mapped\",[32701]],[[64031,64031],\"valid\"],[[64032,64032],\"mapped\",[34322]],[[64033,64033],\"valid\"],[[64034,64034],\"mapped\",[35576]],[[64035,64036],\"valid\"],[[64037,64037],\"mapped\",[36920]],[[64038,64038],\"mapped\",[37117]],[[64039,64041],\"valid\"],[[64042,64042],\"mapped\",[39151]],[[64043,64043],\"mapped\",[39164]],[[64044,64044],\"mapped\",[39208]],[[64045,64045],\"mapped\",[40372]],[[64046,64046],\"mapped\",[37086]],[[64047,64047],\"mapped\",[38583]],[[64048,64048],\"mapped\",[20398]],[[64049,64049],\"mapped\",[20711]],[[64050,64050],\"mapped\",[20813]],[[64051,64051],\"mapped\",[21193]],[[64052,64052],\"mapped\",[21220]],[[64053,64053],\"mapped\",[21329]],[[64054,64054],\"mapped\",[21917]],[[64055,64055],\"mapped\",[22022]],[[64056,64056],\"mapped\",[22120]],[[64057,64057],\"mapped\",[22592]],[[64058,64058],\"mapped\",[22696]],[[64059,64059],\"mapped\",[23652]],[[64060,64060],\"mapped\",[23662]],[[64061,64061],\"mapped\",[24724]],[[64062,64062],\"mapped\",[24936]],[[64063,64063],\"mapped\",[24974]],[[64064,64064],\"mapped\",[25074]],[[64065,64065],\"mapped\",[25935]],[[64066,64066],\"mapped\",[26082]],[[64067,64067],\"mapped\",[26257]],[[64068,64068],\"mapped\",[26757]],[[64069,64069],\"mapped\",[28023]],[[64070,64070],\"mapped\",[28186]],[[64071,64071],\"mapped\",[28450]],[[64072,64072],\"mapped\",[29038]],[[64073,64073],\"mapped\",[29227]],[[64074,64074],\"mapped\",[29730]],[[64075,64075],\"mapped\",[30865]],[[64076,64076],\"mapped\",[31038]],[[64077,64077],\"mapped\",[31049]],[[64078,64078],\"mapped\",[31048]],[[64079,64079],\"mapped\",[31056]],[[64080,64080],\"mapped\",[31062]],[[64081,64081],\"mapped\",[31069]],[[64082,64082],\"mapped\",[31117]],[[64083,64083],\"mapped\",[31118]],[[64084,64084],\"mapped\",[31296]],[[64085,64085],\"mapped\",[31361]],[[64086,64086],\"mapped\",[31680]],[[64087,64087],\"mapped\",[32244]],[[64088,64088],\"mapped\",[32265]],[[64089,64089],\"mapped\",[32321]],[[64090,64090],\"mapped\",[32626]],[[64091,64091],\"mapped\",[32773]],[[64092,64092],\"mapped\",[33261]],[[64093,64094],\"mapped\",[33401]],[[64095,64095],\"mapped\",[33879]],[[64096,64096],\"mapped\",[35088]],[[64097,64097],\"mapped\",[35222]],[[64098,64098],\"mapped\",[35585]],[[64099,64099],\"mapped\",[35641]],[[64100,64100],\"mapped\",[36051]],[[64101,64101],\"mapped\",[36104]],[[64102,64102],\"mapped\",[36790]],[[64103,64103],\"mapped\",[36920]],[[64104,64104],\"mapped\",[38627]],[[64105,64105],\"mapped\",[38911]],[[64106,64106],\"mapped\",[38971]],[[64107,64107],\"mapped\",[24693]],[[64108,64108],\"mapped\",[148206]],[[64109,64109],\"mapped\",[33304]],[[64110,64111],\"disallowed\"],[[64112,64112],\"mapped\",[20006]],[[64113,64113],\"mapped\",[20917]],[[64114,64114],\"mapped\",[20840]],[[64115,64115],\"mapped\",[20352]],[[64116,64116],\"mapped\",[20805]],[[64117,64117],\"mapped\",[20864]],[[64118,64118],\"mapped\",[21191]],[[64119,64119],\"mapped\",[21242]],[[64120,64120],\"mapped\",[21917]],[[64121,64121],\"mapped\",[21845]],[[64122,64122],\"mapped\",[21913]],[[64123,64123],\"mapped\",[21986]],[[64124,64124],\"mapped\",[22618]],[[64125,64125],\"mapped\",[22707]],[[64126,64126],\"mapped\",[22852]],[[64127,64127],\"mapped\",[22868]],[[64128,64128],\"mapped\",[23138]],[[64129,64129],\"mapped\",[23336]],[[64130,64130],\"mapped\",[24274]],[[64131,64131],\"mapped\",[24281]],[[64132,64132],\"mapped\",[24425]],[[64133,64133],\"mapped\",[24493]],[[64134,64134],\"mapped\",[24792]],[[64135,64135],\"mapped\",[24910]],[[64136,64136],\"mapped\",[24840]],[[64137,64137],\"mapped\",[24974]],[[64138,64138],\"mapped\",[24928]],[[64139,64139],\"mapped\",[25074]],[[64140,64140],\"mapped\",[25140]],[[64141,64141],\"mapped\",[25540]],[[64142,64142],\"mapped\",[25628]],[[64143,64143],\"mapped\",[25682]],[[64144,64144],\"mapped\",[25942]],[[64145,64145],\"mapped\",[26228]],[[64146,64146],\"mapped\",[26391]],[[64147,64147],\"mapped\",[26395]],[[64148,64148],\"mapped\",[26454]],[[64149,64149],\"mapped\",[27513]],[[64150,64150],\"mapped\",[27578]],[[64151,64151],\"mapped\",[27969]],[[64152,64152],\"mapped\",[28379]],[[64153,64153],\"mapped\",[28363]],[[64154,64154],\"mapped\",[28450]],[[64155,64155],\"mapped\",[28702]],[[64156,64156],\"mapped\",[29038]],[[64157,64157],\"mapped\",[30631]],[[64158,64158],\"mapped\",[29237]],[[64159,64159],\"mapped\",[29359]],[[64160,64160],\"mapped\",[29482]],[[64161,64161],\"mapped\",[29809]],[[64162,64162],\"mapped\",[29958]],[[64163,64163],\"mapped\",[30011]],[[64164,64164],\"mapped\",[30237]],[[64165,64165],\"mapped\",[30239]],[[64166,64166],\"mapped\",[30410]],[[64167,64167],\"mapped\",[30427]],[[64168,64168],\"mapped\",[30452]],[[64169,64169],\"mapped\",[30538]],[[64170,64170],\"mapped\",[30528]],[[64171,64171],\"mapped\",[30924]],[[64172,64172],\"mapped\",[31409]],[[64173,64173],\"mapped\",[31680]],[[64174,64174],\"mapped\",[31867]],[[64175,64175],\"mapped\",[32091]],[[64176,64176],\"mapped\",[32244]],[[64177,64177],\"mapped\",[32574]],[[64178,64178],\"mapped\",[32773]],[[64179,64179],\"mapped\",[33618]],[[64180,64180],\"mapped\",[33775]],[[64181,64181],\"mapped\",[34681]],[[64182,64182],\"mapped\",[35137]],[[64183,64183],\"mapped\",[35206]],[[64184,64184],\"mapped\",[35222]],[[64185,64185],\"mapped\",[35519]],[[64186,64186],\"mapped\",[35576]],[[64187,64187],\"mapped\",[35531]],[[64188,64188],\"mapped\",[35585]],[[64189,64189],\"mapped\",[35582]],[[64190,64190],\"mapped\",[35565]],[[64191,64191],\"mapped\",[35641]],[[64192,64192],\"mapped\",[35722]],[[64193,64193],\"mapped\",[36104]],[[64194,64194],\"mapped\",[36664]],[[64195,64195],\"mapped\",[36978]],[[64196,64196],\"mapped\",[37273]],[[64197,64197],\"mapped\",[37494]],[[64198,64198],\"mapped\",[38524]],[[64199,64199],\"mapped\",[38627]],[[64200,64200],\"mapped\",[38742]],[[64201,64201],\"mapped\",[38875]],[[64202,64202],\"mapped\",[38911]],[[64203,64203],\"mapped\",[38923]],[[64204,64204],\"mapped\",[38971]],[[64205,64205],\"mapped\",[39698]],[[64206,64206],\"mapped\",[40860]],[[64207,64207],\"mapped\",[141386]],[[64208,64208],\"mapped\",[141380]],[[64209,64209],\"mapped\",[144341]],[[64210,64210],\"mapped\",[15261]],[[64211,64211],\"mapped\",[16408]],[[64212,64212],\"mapped\",[16441]],[[64213,64213],\"mapped\",[152137]],[[64214,64214],\"mapped\",[154832]],[[64215,64215],\"mapped\",[163539]],[[64216,64216],\"mapped\",[40771]],[[64217,64217],\"mapped\",[40846]],[[64218,64255],\"disallowed\"],[[64256,64256],\"mapped\",[102,102]],[[64257,64257],\"mapped\",[102,105]],[[64258,64258],\"mapped\",[102,108]],[[64259,64259],\"mapped\",[102,102,105]],[[64260,64260],\"mapped\",[102,102,108]],[[64261,64262],\"mapped\",[115,116]],[[64263,64274],\"disallowed\"],[[64275,64275],\"mapped\",[1396,1398]],[[64276,64276],\"mapped\",[1396,1381]],[[64277,64277],\"mapped\",[1396,1387]],[[64278,64278],\"mapped\",[1406,1398]],[[64279,64279],\"mapped\",[1396,1389]],[[64280,64284],\"disallowed\"],[[64285,64285],\"mapped\",[1497,1460]],[[64286,64286],\"valid\"],[[64287,64287],\"mapped\",[1522,1463]],[[64288,64288],\"mapped\",[1506]],[[64289,64289],\"mapped\",[1488]],[[64290,64290],\"mapped\",[1491]],[[64291,64291],\"mapped\",[1492]],[[64292,64292],\"mapped\",[1499]],[[64293,64293],\"mapped\",[1500]],[[64294,64294],\"mapped\",[1501]],[[64295,64295],\"mapped\",[1512]],[[64296,64296],\"mapped\",[1514]],[[64297,64297],\"disallowed_STD3_mapped\",[43]],[[64298,64298],\"mapped\",[1513,1473]],[[64299,64299],\"mapped\",[1513,1474]],[[64300,64300],\"mapped\",[1513,1468,1473]],[[64301,64301],\"mapped\",[1513,1468,1474]],[[64302,64302],\"mapped\",[1488,1463]],[[64303,64303],\"mapped\",[1488,1464]],[[64304,64304],\"mapped\",[1488,1468]],[[64305,64305],\"mapped\",[1489,1468]],[[64306,64306],\"mapped\",[1490,1468]],[[64307,64307],\"mapped\",[1491,1468]],[[64308,64308],\"mapped\",[1492,1468]],[[64309,64309],\"mapped\",[1493,1468]],[[64310,64310],\"mapped\",[1494,1468]],[[64311,64311],\"disallowed\"],[[64312,64312],\"mapped\",[1496,1468]],[[64313,64313],\"mapped\",[1497,1468]],[[64314,64314],\"mapped\",[1498,1468]],[[64315,64315],\"mapped\",[1499,1468]],[[64316,64316],\"mapped\",[1500,1468]],[[64317,64317],\"disallowed\"],[[64318,64318],\"mapped\",[1502,1468]],[[64319,64319],\"disallowed\"],[[64320,64320],\"mapped\",[1504,1468]],[[64321,64321],\"mapped\",[1505,1468]],[[64322,64322],\"disallowed\"],[[64323,64323],\"mapped\",[1507,1468]],[[64324,64324],\"mapped\",[1508,1468]],[[64325,64325],\"disallowed\"],[[64326,64326],\"mapped\",[1510,1468]],[[64327,64327],\"mapped\",[1511,1468]],[[64328,64328],\"mapped\",[1512,1468]],[[64329,64329],\"mapped\",[1513,1468]],[[64330,64330],\"mapped\",[1514,1468]],[[64331,64331],\"mapped\",[1493,1465]],[[64332,64332],\"mapped\",[1489,1471]],[[64333,64333],\"mapped\",[1499,1471]],[[64334,64334],\"mapped\",[1508,1471]],[[64335,64335],\"mapped\",[1488,1500]],[[64336,64337],\"mapped\",[1649]],[[64338,64341],\"mapped\",[1659]],[[64342,64345],\"mapped\",[1662]],[[64346,64349],\"mapped\",[1664]],[[64350,64353],\"mapped\",[1658]],[[64354,64357],\"mapped\",[1663]],[[64358,64361],\"mapped\",[1657]],[[64362,64365],\"mapped\",[1700]],[[64366,64369],\"mapped\",[1702]],[[64370,64373],\"mapped\",[1668]],[[64374,64377],\"mapped\",[1667]],[[64378,64381],\"mapped\",[1670]],[[64382,64385],\"mapped\",[1671]],[[64386,64387],\"mapped\",[1677]],[[64388,64389],\"mapped\",[1676]],[[64390,64391],\"mapped\",[1678]],[[64392,64393],\"mapped\",[1672]],[[64394,64395],\"mapped\",[1688]],[[64396,64397],\"mapped\",[1681]],[[64398,64401],\"mapped\",[1705]],[[64402,64405],\"mapped\",[1711]],[[64406,64409],\"mapped\",[1715]],[[64410,64413],\"mapped\",[1713]],[[64414,64415],\"mapped\",[1722]],[[64416,64419],\"mapped\",[1723]],[[64420,64421],\"mapped\",[1728]],[[64422,64425],\"mapped\",[1729]],[[64426,64429],\"mapped\",[1726]],[[64430,64431],\"mapped\",[1746]],[[64432,64433],\"mapped\",[1747]],[[64434,64449],\"valid\",[],\"NV8\"],[[64450,64466],\"disallowed\"],[[64467,64470],\"mapped\",[1709]],[[64471,64472],\"mapped\",[1735]],[[64473,64474],\"mapped\",[1734]],[[64475,64476],\"mapped\",[1736]],[[64477,64477],\"mapped\",[1735,1652]],[[64478,64479],\"mapped\",[1739]],[[64480,64481],\"mapped\",[1733]],[[64482,64483],\"mapped\",[1737]],[[64484,64487],\"mapped\",[1744]],[[64488,64489],\"mapped\",[1609]],[[64490,64491],\"mapped\",[1574,1575]],[[64492,64493],\"mapped\",[1574,1749]],[[64494,64495],\"mapped\",[1574,1608]],[[64496,64497],\"mapped\",[1574,1735]],[[64498,64499],\"mapped\",[1574,1734]],[[64500,64501],\"mapped\",[1574,1736]],[[64502,64504],\"mapped\",[1574,1744]],[[64505,64507],\"mapped\",[1574,1609]],[[64508,64511],\"mapped\",[1740]],[[64512,64512],\"mapped\",[1574,1580]],[[64513,64513],\"mapped\",[1574,1581]],[[64514,64514],\"mapped\",[1574,1605]],[[64515,64515],\"mapped\",[1574,1609]],[[64516,64516],\"mapped\",[1574,1610]],[[64517,64517],\"mapped\",[1576,1580]],[[64518,64518],\"mapped\",[1576,1581]],[[64519,64519],\"mapped\",[1576,1582]],[[64520,64520],\"mapped\",[1576,1605]],[[64521,64521],\"mapped\",[1576,1609]],[[64522,64522],\"mapped\",[1576,1610]],[[64523,64523],\"mapped\",[1578,1580]],[[64524,64524],\"mapped\",[1578,1581]],[[64525,64525],\"mapped\",[1578,1582]],[[64526,64526],\"mapped\",[1578,1605]],[[64527,64527],\"mapped\",[1578,1609]],[[64528,64528],\"mapped\",[1578,1610]],[[64529,64529],\"mapped\",[1579,1580]],[[64530,64530],\"mapped\",[1579,1605]],[[64531,64531],\"mapped\",[1579,1609]],[[64532,64532],\"mapped\",[1579,1610]],[[64533,64533],\"mapped\",[1580,1581]],[[64534,64534],\"mapped\",[1580,1605]],[[64535,64535],\"mapped\",[1581,1580]],[[64536,64536],\"mapped\",[1581,1605]],[[64537,64537],\"mapped\",[1582,1580]],[[64538,64538],\"mapped\",[1582,1581]],[[64539,64539],\"mapped\",[1582,1605]],[[64540,64540],\"mapped\",[1587,1580]],[[64541,64541],\"mapped\",[1587,1581]],[[64542,64542],\"mapped\",[1587,1582]],[[64543,64543],\"mapped\",[1587,1605]],[[64544,64544],\"mapped\",[1589,1581]],[[64545,64545],\"mapped\",[1589,1605]],[[64546,64546],\"mapped\",[1590,1580]],[[64547,64547],\"mapped\",[1590,1581]],[[64548,64548],\"mapped\",[1590,1582]],[[64549,64549],\"mapped\",[1590,1605]],[[64550,64550],\"mapped\",[1591,1581]],[[64551,64551],\"mapped\",[1591,1605]],[[64552,64552],\"mapped\",[1592,1605]],[[64553,64553],\"mapped\",[1593,1580]],[[64554,64554],\"mapped\",[1593,1605]],[[64555,64555],\"mapped\",[1594,1580]],[[64556,64556],\"mapped\",[1594,1605]],[[64557,64557],\"mapped\",[1601,1580]],[[64558,64558],\"mapped\",[1601,1581]],[[64559,64559],\"mapped\",[1601,1582]],[[64560,64560],\"mapped\",[1601,1605]],[[64561,64561],\"mapped\",[1601,1609]],[[64562,64562],\"mapped\",[1601,1610]],[[64563,64563],\"mapped\",[1602,1581]],[[64564,64564],\"mapped\",[1602,1605]],[[64565,64565],\"mapped\",[1602,1609]],[[64566,64566],\"mapped\",[1602,1610]],[[64567,64567],\"mapped\",[1603,1575]],[[64568,64568],\"mapped\",[1603,1580]],[[64569,64569],\"mapped\",[1603,1581]],[[64570,64570],\"mapped\",[1603,1582]],[[64571,64571],\"mapped\",[1603,1604]],[[64572,64572],\"mapped\",[1603,1605]],[[64573,64573],\"mapped\",[1603,1609]],[[64574,64574],\"mapped\",[1603,1610]],[[64575,64575],\"mapped\",[1604,1580]],[[64576,64576],\"mapped\",[1604,1581]],[[64577,64577],\"mapped\",[1604,1582]],[[64578,64578],\"mapped\",[1604,1605]],[[64579,64579],\"mapped\",[1604,1609]],[[64580,64580],\"mapped\",[1604,1610]],[[64581,64581],\"mapped\",[1605,1580]],[[64582,64582],\"mapped\",[1605,1581]],[[64583,64583],\"mapped\",[1605,1582]],[[64584,64584],\"mapped\",[1605,1605]],[[64585,64585],\"mapped\",[1605,1609]],[[64586,64586],\"mapped\",[1605,1610]],[[64587,64587],\"mapped\",[1606,1580]],[[64588,64588],\"mapped\",[1606,1581]],[[64589,64589],\"mapped\",[1606,1582]],[[64590,64590],\"mapped\",[1606,1605]],[[64591,64591],\"mapped\",[1606,1609]],[[64592,64592],\"mapped\",[1606,1610]],[[64593,64593],\"mapped\",[1607,1580]],[[64594,64594],\"mapped\",[1607,1605]],[[64595,64595],\"mapped\",[1607,1609]],[[64596,64596],\"mapped\",[1607,1610]],[[64597,64597],\"mapped\",[1610,1580]],[[64598,64598],\"mapped\",[1610,1581]],[[64599,64599],\"mapped\",[1610,1582]],[[64600,64600],\"mapped\",[1610,1605]],[[64601,64601],\"mapped\",[1610,1609]],[[64602,64602],\"mapped\",[1610,1610]],[[64603,64603],\"mapped\",[1584,1648]],[[64604,64604],\"mapped\",[1585,1648]],[[64605,64605],\"mapped\",[1609,1648]],[[64606,64606],\"disallowed_STD3_mapped\",[32,1612,1617]],[[64607,64607],\"disallowed_STD3_mapped\",[32,1613,1617]],[[64608,64608],\"disallowed_STD3_mapped\",[32,1614,1617]],[[64609,64609],\"disallowed_STD3_mapped\",[32,1615,1617]],[[64610,64610],\"disallowed_STD3_mapped\",[32,1616,1617]],[[64611,64611],\"disallowed_STD3_mapped\",[32,1617,1648]],[[64612,64612],\"mapped\",[1574,1585]],[[64613,64613],\"mapped\",[1574,1586]],[[64614,64614],\"mapped\",[1574,1605]],[[64615,64615],\"mapped\",[1574,1606]],[[64616,64616],\"mapped\",[1574,1609]],[[64617,64617],\"mapped\",[1574,1610]],[[64618,64618],\"mapped\",[1576,1585]],[[64619,64619],\"mapped\",[1576,1586]],[[64620,64620],\"mapped\",[1576,1605]],[[64621,64621],\"mapped\",[1576,1606]],[[64622,64622],\"mapped\",[1576,1609]],[[64623,64623],\"mapped\",[1576,1610]],[[64624,64624],\"mapped\",[1578,1585]],[[64625,64625],\"mapped\",[1578,1586]],[[64626,64626],\"mapped\",[1578,1605]],[[64627,64627],\"mapped\",[1578,1606]],[[64628,64628],\"mapped\",[1578,1609]],[[64629,64629],\"mapped\",[1578,1610]],[[64630,64630],\"mapped\",[1579,1585]],[[64631,64631],\"mapped\",[1579,1586]],[[64632,64632],\"mapped\",[1579,1605]],[[64633,64633],\"mapped\",[1579,1606]],[[64634,64634],\"mapped\",[1579,1609]],[[64635,64635],\"mapped\",[1579,1610]],[[64636,64636],\"mapped\",[1601,1609]],[[64637,64637],\"mapped\",[1601,1610]],[[64638,64638],\"mapped\",[1602,1609]],[[64639,64639],\"mapped\",[1602,1610]],[[64640,64640],\"mapped\",[1603,1575]],[[64641,64641],\"mapped\",[1603,1604]],[[64642,64642],\"mapped\",[1603,1605]],[[64643,64643],\"mapped\",[1603,1609]],[[64644,64644],\"mapped\",[1603,1610]],[[64645,64645],\"mapped\",[1604,1605]],[[64646,64646],\"mapped\",[1604,1609]],[[64647,64647],\"mapped\",[1604,1610]],[[64648,64648],\"mapped\",[1605,1575]],[[64649,64649],\"mapped\",[1605,1605]],[[64650,64650],\"mapped\",[1606,1585]],[[64651,64651],\"mapped\",[1606,1586]],[[64652,64652],\"mapped\",[1606,1605]],[[64653,64653],\"mapped\",[1606,1606]],[[64654,64654],\"mapped\",[1606,1609]],[[64655,64655],\"mapped\",[1606,1610]],[[64656,64656],\"mapped\",[1609,1648]],[[64657,64657],\"mapped\",[1610,1585]],[[64658,64658],\"mapped\",[1610,1586]],[[64659,64659],\"mapped\",[1610,1605]],[[64660,64660],\"mapped\",[1610,1606]],[[64661,64661],\"mapped\",[1610,1609]],[[64662,64662],\"mapped\",[1610,1610]],[[64663,64663],\"mapped\",[1574,1580]],[[64664,64664],\"mapped\",[1574,1581]],[[64665,64665],\"mapped\",[1574,1582]],[[64666,64666],\"mapped\",[1574,1605]],[[64667,64667],\"mapped\",[1574,1607]],[[64668,64668],\"mapped\",[1576,1580]],[[64669,64669],\"mapped\",[1576,1581]],[[64670,64670],\"mapped\",[1576,1582]],[[64671,64671],\"mapped\",[1576,1605]],[[64672,64672],\"mapped\",[1576,1607]],[[64673,64673],\"mapped\",[1578,1580]],[[64674,64674],\"mapped\",[1578,1581]],[[64675,64675],\"mapped\",[1578,1582]],[[64676,64676],\"mapped\",[1578,1605]],[[64677,64677],\"mapped\",[1578,1607]],[[64678,64678],\"mapped\",[1579,1605]],[[64679,64679],\"mapped\",[1580,1581]],[[64680,64680],\"mapped\",[1580,1605]],[[64681,64681],\"mapped\",[1581,1580]],[[64682,64682],\"mapped\",[1581,1605]],[[64683,64683],\"mapped\",[1582,1580]],[[64684,64684],\"mapped\",[1582,1605]],[[64685,64685],\"mapped\",[1587,1580]],[[64686,64686],\"mapped\",[1587,1581]],[[64687,64687],\"mapped\",[1587,1582]],[[64688,64688],\"mapped\",[1587,1605]],[[64689,64689],\"mapped\",[1589,1581]],[[64690,64690],\"mapped\",[1589,1582]],[[64691,64691],\"mapped\",[1589,1605]],[[64692,64692],\"mapped\",[1590,1580]],[[64693,64693],\"mapped\",[1590,1581]],[[64694,64694],\"mapped\",[1590,1582]],[[64695,64695],\"mapped\",[1590,1605]],[[64696,64696],\"mapped\",[1591,1581]],[[64697,64697],\"mapped\",[1592,1605]],[[64698,64698],\"mapped\",[1593,1580]],[[64699,64699],\"mapped\",[1593,1605]],[[64700,64700],\"mapped\",[1594,1580]],[[64701,64701],\"mapped\",[1594,1605]],[[64702,64702],\"mapped\",[1601,1580]],[[64703,64703],\"mapped\",[1601,1581]],[[64704,64704],\"mapped\",[1601,1582]],[[64705,64705],\"mapped\",[1601,1605]],[[64706,64706],\"mapped\",[1602,1581]],[[64707,64707],\"mapped\",[1602,1605]],[[64708,64708],\"mapped\",[1603,1580]],[[64709,64709],\"mapped\",[1603,1581]],[[64710,64710],\"mapped\",[1603,1582]],[[64711,64711],\"mapped\",[1603,1604]],[[64712,64712],\"mapped\",[1603,1605]],[[64713,64713],\"mapped\",[1604,1580]],[[64714,64714],\"mapped\",[1604,1581]],[[64715,64715],\"mapped\",[1604,1582]],[[64716,64716],\"mapped\",[1604,1605]],[[64717,64717],\"mapped\",[1604,1607]],[[64718,64718],\"mapped\",[1605,1580]],[[64719,64719],\"mapped\",[1605,1581]],[[64720,64720],\"mapped\",[1605,1582]],[[64721,64721],\"mapped\",[1605,1605]],[[64722,64722],\"mapped\",[1606,1580]],[[64723,64723],\"mapped\",[1606,1581]],[[64724,64724],\"mapped\",[1606,1582]],[[64725,64725],\"mapped\",[1606,1605]],[[64726,64726],\"mapped\",[1606,1607]],[[64727,64727],\"mapped\",[1607,1580]],[[64728,64728],\"mapped\",[1607,1605]],[[64729,64729],\"mapped\",[1607,1648]],[[64730,64730],\"mapped\",[1610,1580]],[[64731,64731],\"mapped\",[1610,1581]],[[64732,64732],\"mapped\",[1610,1582]],[[64733,64733],\"mapped\",[1610,1605]],[[64734,64734],\"mapped\",[1610,1607]],[[64735,64735],\"mapped\",[1574,1605]],[[64736,64736],\"mapped\",[1574,1607]],[[64737,64737],\"mapped\",[1576,1605]],[[64738,64738],\"mapped\",[1576,1607]],[[64739,64739],\"mapped\",[1578,1605]],[[64740,64740],\"mapped\",[1578,1607]],[[64741,64741],\"mapped\",[1579,1605]],[[64742,64742],\"mapped\",[1579,1607]],[[64743,64743],\"mapped\",[1587,1605]],[[64744,64744],\"mapped\",[1587,1607]],[[64745,64745],\"mapped\",[1588,1605]],[[64746,64746],\"mapped\",[1588,1607]],[[64747,64747],\"mapped\",[1603,1604]],[[64748,64748],\"mapped\",[1603,1605]],[[64749,64749],\"mapped\",[1604,1605]],[[64750,64750],\"mapped\",[1606,1605]],[[64751,64751],\"mapped\",[1606,1607]],[[64752,64752],\"mapped\",[1610,1605]],[[64753,64753],\"mapped\",[1610,1607]],[[64754,64754],\"mapped\",[1600,1614,1617]],[[64755,64755],\"mapped\",[1600,1615,1617]],[[64756,64756],\"mapped\",[1600,1616,1617]],[[64757,64757],\"mapped\",[1591,1609]],[[64758,64758],\"mapped\",[1591,1610]],[[64759,64759],\"mapped\",[1593,1609]],[[64760,64760],\"mapped\",[1593,1610]],[[64761,64761],\"mapped\",[1594,1609]],[[64762,64762],\"mapped\",[1594,1610]],[[64763,64763],\"mapped\",[1587,1609]],[[64764,64764],\"mapped\",[1587,1610]],[[64765,64765],\"mapped\",[1588,1609]],[[64766,64766],\"mapped\",[1588,1610]],[[64767,64767],\"mapped\",[1581,1609]],[[64768,64768],\"mapped\",[1581,1610]],[[64769,64769],\"mapped\",[1580,1609]],[[64770,64770],\"mapped\",[1580,1610]],[[64771,64771],\"mapped\",[1582,1609]],[[64772,64772],\"mapped\",[1582,1610]],[[64773,64773],\"mapped\",[1589,1609]],[[64774,64774],\"mapped\",[1589,1610]],[[64775,64775],\"mapped\",[1590,1609]],[[64776,64776],\"mapped\",[1590,1610]],[[64777,64777],\"mapped\",[1588,1580]],[[64778,64778],\"mapped\",[1588,1581]],[[64779,64779],\"mapped\",[1588,1582]],[[64780,64780],\"mapped\",[1588,1605]],[[64781,64781],\"mapped\",[1588,1585]],[[64782,64782],\"mapped\",[1587,1585]],[[64783,64783],\"mapped\",[1589,1585]],[[64784,64784],\"mapped\",[1590,1585]],[[64785,64785],\"mapped\",[1591,1609]],[[64786,64786],\"mapped\",[1591,1610]],[[64787,64787],\"mapped\",[1593,1609]],[[64788,64788],\"mapped\",[1593,1610]],[[64789,64789],\"mapped\",[1594,1609]],[[64790,64790],\"mapped\",[1594,1610]],[[64791,64791],\"mapped\",[1587,1609]],[[64792,64792],\"mapped\",[1587,1610]],[[64793,64793],\"mapped\",[1588,1609]],[[64794,64794],\"mapped\",[1588,1610]],[[64795,64795],\"mapped\",[1581,1609]],[[64796,64796],\"mapped\",[1581,1610]],[[64797,64797],\"mapped\",[1580,1609]],[[64798,64798],\"mapped\",[1580,1610]],[[64799,64799],\"mapped\",[1582,1609]],[[64800,64800],\"mapped\",[1582,1610]],[[64801,64801],\"mapped\",[1589,1609]],[[64802,64802],\"mapped\",[1589,1610]],[[64803,64803],\"mapped\",[1590,1609]],[[64804,64804],\"mapped\",[1590,1610]],[[64805,64805],\"mapped\",[1588,1580]],[[64806,64806],\"mapped\",[1588,1581]],[[64807,64807],\"mapped\",[1588,1582]],[[64808,64808],\"mapped\",[1588,1605]],[[64809,64809],\"mapped\",[1588,1585]],[[64810,64810],\"mapped\",[1587,1585]],[[64811,64811],\"mapped\",[1589,1585]],[[64812,64812],\"mapped\",[1590,1585]],[[64813,64813],\"mapped\",[1588,1580]],[[64814,64814],\"mapped\",[1588,1581]],[[64815,64815],\"mapped\",[1588,1582]],[[64816,64816],\"mapped\",[1588,1605]],[[64817,64817],\"mapped\",[1587,1607]],[[64818,64818],\"mapped\",[1588,1607]],[[64819,64819],\"mapped\",[1591,1605]],[[64820,64820],\"mapped\",[1587,1580]],[[64821,64821],\"mapped\",[1587,1581]],[[64822,64822],\"mapped\",[1587,1582]],[[64823,64823],\"mapped\",[1588,1580]],[[64824,64824],\"mapped\",[1588,1581]],[[64825,64825],\"mapped\",[1588,1582]],[[64826,64826],\"mapped\",[1591,1605]],[[64827,64827],\"mapped\",[1592,1605]],[[64828,64829],\"mapped\",[1575,1611]],[[64830,64831],\"valid\",[],\"NV8\"],[[64832,64847],\"disallowed\"],[[64848,64848],\"mapped\",[1578,1580,1605]],[[64849,64850],\"mapped\",[1578,1581,1580]],[[64851,64851],\"mapped\",[1578,1581,1605]],[[64852,64852],\"mapped\",[1578,1582,1605]],[[64853,64853],\"mapped\",[1578,1605,1580]],[[64854,64854],\"mapped\",[1578,1605,1581]],[[64855,64855],\"mapped\",[1578,1605,1582]],[[64856,64857],\"mapped\",[1580,1605,1581]],[[64858,64858],\"mapped\",[1581,1605,1610]],[[64859,64859],\"mapped\",[1581,1605,1609]],[[64860,64860],\"mapped\",[1587,1581,1580]],[[64861,64861],\"mapped\",[1587,1580,1581]],[[64862,64862],\"mapped\",[1587,1580,1609]],[[64863,64864],\"mapped\",[1587,1605,1581]],[[64865,64865],\"mapped\",[1587,1605,1580]],[[64866,64867],\"mapped\",[1587,1605,1605]],[[64868,64869],\"mapped\",[1589,1581,1581]],[[64870,64870],\"mapped\",[1589,1605,1605]],[[64871,64872],\"mapped\",[1588,1581,1605]],[[64873,64873],\"mapped\",[1588,1580,1610]],[[64874,64875],\"mapped\",[1588,1605,1582]],[[64876,64877],\"mapped\",[1588,1605,1605]],[[64878,64878],\"mapped\",[1590,1581,1609]],[[64879,64880],\"mapped\",[1590,1582,1605]],[[64881,64882],\"mapped\",[1591,1605,1581]],[[64883,64883],\"mapped\",[1591,1605,1605]],[[64884,64884],\"mapped\",[1591,1605,1610]],[[64885,64885],\"mapped\",[1593,1580,1605]],[[64886,64887],\"mapped\",[1593,1605,1605]],[[64888,64888],\"mapped\",[1593,1605,1609]],[[64889,64889],\"mapped\",[1594,1605,1605]],[[64890,64890],\"mapped\",[1594,1605,1610]],[[64891,64891],\"mapped\",[1594,1605,1609]],[[64892,64893],\"mapped\",[1601,1582,1605]],[[64894,64894],\"mapped\",[1602,1605,1581]],[[64895,64895],\"mapped\",[1602,1605,1605]],[[64896,64896],\"mapped\",[1604,1581,1605]],[[64897,64897],\"mapped\",[1604,1581,1610]],[[64898,64898],\"mapped\",[1604,1581,1609]],[[64899,64900],\"mapped\",[1604,1580,1580]],[[64901,64902],\"mapped\",[1604,1582,1605]],[[64903,64904],\"mapped\",[1604,1605,1581]],[[64905,64905],\"mapped\",[1605,1581,1580]],[[64906,64906],\"mapped\",[1605,1581,1605]],[[64907,64907],\"mapped\",[1605,1581,1610]],[[64908,64908],\"mapped\",[1605,1580,1581]],[[64909,64909],\"mapped\",[1605,1580,1605]],[[64910,64910],\"mapped\",[1605,1582,1580]],[[64911,64911],\"mapped\",[1605,1582,1605]],[[64912,64913],\"disallowed\"],[[64914,64914],\"mapped\",[1605,1580,1582]],[[64915,64915],\"mapped\",[1607,1605,1580]],[[64916,64916],\"mapped\",[1607,1605,1605]],[[64917,64917],\"mapped\",[1606,1581,1605]],[[64918,64918],\"mapped\",[1606,1581,1609]],[[64919,64920],\"mapped\",[1606,1580,1605]],[[64921,64921],\"mapped\",[1606,1580,1609]],[[64922,64922],\"mapped\",[1606,1605,1610]],[[64923,64923],\"mapped\",[1606,1605,1609]],[[64924,64925],\"mapped\",[1610,1605,1605]],[[64926,64926],\"mapped\",[1576,1582,1610]],[[64927,64927],\"mapped\",[1578,1580,1610]],[[64928,64928],\"mapped\",[1578,1580,1609]],[[64929,64929],\"mapped\",[1578,1582,1610]],[[64930,64930],\"mapped\",[1578,1582,1609]],[[64931,64931],\"mapped\",[1578,1605,1610]],[[64932,64932],\"mapped\",[1578,1605,1609]],[[64933,64933],\"mapped\",[1580,1605,1610]],[[64934,64934],\"mapped\",[1580,1581,1609]],[[64935,64935],\"mapped\",[1580,1605,1609]],[[64936,64936],\"mapped\",[1587,1582,1609]],[[64937,64937],\"mapped\",[1589,1581,1610]],[[64938,64938],\"mapped\",[1588,1581,1610]],[[64939,64939],\"mapped\",[1590,1581,1610]],[[64940,64940],\"mapped\",[1604,1580,1610]],[[64941,64941],\"mapped\",[1604,1605,1610]],[[64942,64942],\"mapped\",[1610,1581,1610]],[[64943,64943],\"mapped\",[1610,1580,1610]],[[64944,64944],\"mapped\",[1610,1605,1610]],[[64945,64945],\"mapped\",[1605,1605,1610]],[[64946,64946],\"mapped\",[1602,1605,1610]],[[64947,64947],\"mapped\",[1606,1581,1610]],[[64948,64948],\"mapped\",[1602,1605,1581]],[[64949,64949],\"mapped\",[1604,1581,1605]],[[64950,64950],\"mapped\",[1593,1605,1610]],[[64951,64951],\"mapped\",[1603,1605,1610]],[[64952,64952],\"mapped\",[1606,1580,1581]],[[64953,64953],\"mapped\",[1605,1582,1610]],[[64954,64954],\"mapped\",[1604,1580,1605]],[[64955,64955],\"mapped\",[1603,1605,1605]],[[64956,64956],\"mapped\",[1604,1580,1605]],[[64957,64957],\"mapped\",[1606,1580,1581]],[[64958,64958],\"mapped\",[1580,1581,1610]],[[64959,64959],\"mapped\",[1581,1580,1610]],[[64960,64960],\"mapped\",[1605,1580,1610]],[[64961,64961],\"mapped\",[1601,1605,1610]],[[64962,64962],\"mapped\",[1576,1581,1610]],[[64963,64963],\"mapped\",[1603,1605,1605]],[[64964,64964],\"mapped\",[1593,1580,1605]],[[64965,64965],\"mapped\",[1589,1605,1605]],[[64966,64966],\"mapped\",[1587,1582,1610]],[[64967,64967],\"mapped\",[1606,1580,1610]],[[64968,64975],\"disallowed\"],[[64976,65007],\"disallowed\"],[[65008,65008],\"mapped\",[1589,1604,1746]],[[65009,65009],\"mapped\",[1602,1604,1746]],[[65010,65010],\"mapped\",[1575,1604,1604,1607]],[[65011,65011],\"mapped\",[1575,1603,1576,1585]],[[65012,65012],\"mapped\",[1605,1581,1605,1583]],[[65013,65013],\"mapped\",[1589,1604,1593,1605]],[[65014,65014],\"mapped\",[1585,1587,1608,1604]],[[65015,65015],\"mapped\",[1593,1604,1610,1607]],[[65016,65016],\"mapped\",[1608,1587,1604,1605]],[[65017,65017],\"mapped\",[1589,1604,1609]],[[65018,65018],\"disallowed_STD3_mapped\",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],\"disallowed_STD3_mapped\",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],\"mapped\",[1585,1740,1575,1604]],[[65021,65021],\"valid\",[],\"NV8\"],[[65022,65023],\"disallowed\"],[[65024,65039],\"ignored\"],[[65040,65040],\"disallowed_STD3_mapped\",[44]],[[65041,65041],\"mapped\",[12289]],[[65042,65042],\"disallowed\"],[[65043,65043],\"disallowed_STD3_mapped\",[58]],[[65044,65044],\"disallowed_STD3_mapped\",[59]],[[65045,65045],\"disallowed_STD3_mapped\",[33]],[[65046,65046],\"disallowed_STD3_mapped\",[63]],[[65047,65047],\"mapped\",[12310]],[[65048,65048],\"mapped\",[12311]],[[65049,65049],\"disallowed\"],[[65050,65055],\"disallowed\"],[[65056,65059],\"valid\"],[[65060,65062],\"valid\"],[[65063,65069],\"valid\"],[[65070,65071],\"valid\"],[[65072,65072],\"disallowed\"],[[65073,65073],\"mapped\",[8212]],[[65074,65074],\"mapped\",[8211]],[[65075,65076],\"disallowed_STD3_mapped\",[95]],[[65077,65077],\"disallowed_STD3_mapped\",[40]],[[65078,65078],\"disallowed_STD3_mapped\",[41]],[[65079,65079],\"disallowed_STD3_mapped\",[123]],[[65080,65080],\"disallowed_STD3_mapped\",[125]],[[65081,65081],\"mapped\",[12308]],[[65082,65082],\"mapped\",[12309]],[[65083,65083],\"mapped\",[12304]],[[65084,65084],\"mapped\",[12305]],[[65085,65085],\"mapped\",[12298]],[[65086,65086],\"mapped\",[12299]],[[65087,65087],\"mapped\",[12296]],[[65088,65088],\"mapped\",[12297]],[[65089,65089],\"mapped\",[12300]],[[65090,65090],\"mapped\",[12301]],[[65091,65091],\"mapped\",[12302]],[[65092,65092],\"mapped\",[12303]],[[65093,65094],\"valid\",[],\"NV8\"],[[65095,65095],\"disallowed_STD3_mapped\",[91]],[[65096,65096],\"disallowed_STD3_mapped\",[93]],[[65097,65100],\"disallowed_STD3_mapped\",[32,773]],[[65101,65103],\"disallowed_STD3_mapped\",[95]],[[65104,65104],\"disallowed_STD3_mapped\",[44]],[[65105,65105],\"mapped\",[12289]],[[65106,65106],\"disallowed\"],[[65107,65107],\"disallowed\"],[[65108,65108],\"disallowed_STD3_mapped\",[59]],[[65109,65109],\"disallowed_STD3_mapped\",[58]],[[65110,65110],\"disallowed_STD3_mapped\",[63]],[[65111,65111],\"disallowed_STD3_mapped\",[33]],[[65112,65112],\"mapped\",[8212]],[[65113,65113],\"disallowed_STD3_mapped\",[40]],[[65114,65114],\"disallowed_STD3_mapped\",[41]],[[65115,65115],\"disallowed_STD3_mapped\",[123]],[[65116,65116],\"disallowed_STD3_mapped\",[125]],[[65117,65117],\"mapped\",[12308]],[[65118,65118],\"mapped\",[12309]],[[65119,65119],\"disallowed_STD3_mapped\",[35]],[[65120,65120],\"disallowed_STD3_mapped\",[38]],[[65121,65121],\"disallowed_STD3_mapped\",[42]],[[65122,65122],\"disallowed_STD3_mapped\",[43]],[[65123,65123],\"mapped\",[45]],[[65124,65124],\"disallowed_STD3_mapped\",[60]],[[65125,65125],\"disallowed_STD3_mapped\",[62]],[[65126,65126],\"disallowed_STD3_mapped\",[61]],[[65127,65127],\"disallowed\"],[[65128,65128],\"disallowed_STD3_mapped\",[92]],[[65129,65129],\"disallowed_STD3_mapped\",[36]],[[65130,65130],\"disallowed_STD3_mapped\",[37]],[[65131,65131],\"disallowed_STD3_mapped\",[64]],[[65132,65135],\"disallowed\"],[[65136,65136],\"disallowed_STD3_mapped\",[32,1611]],[[65137,65137],\"mapped\",[1600,1611]],[[65138,65138],\"disallowed_STD3_mapped\",[32,1612]],[[65139,65139],\"valid\"],[[65140,65140],\"disallowed_STD3_mapped\",[32,1613]],[[65141,65141],\"disallowed\"],[[65142,65142],\"disallowed_STD3_mapped\",[32,1614]],[[65143,65143],\"mapped\",[1600,1614]],[[65144,65144],\"disallowed_STD3_mapped\",[32,1615]],[[65145,65145],\"mapped\",[1600,1615]],[[65146,65146],\"disallowed_STD3_mapped\",[32,1616]],[[65147,65147],\"mapped\",[1600,1616]],[[65148,65148],\"disallowed_STD3_mapped\",[32,1617]],[[65149,65149],\"mapped\",[1600,1617]],[[65150,65150],\"disallowed_STD3_mapped\",[32,1618]],[[65151,65151],\"mapped\",[1600,1618]],[[65152,65152],\"mapped\",[1569]],[[65153,65154],\"mapped\",[1570]],[[65155,65156],\"mapped\",[1571]],[[65157,65158],\"mapped\",[1572]],[[65159,65160],\"mapped\",[1573]],[[65161,65164],\"mapped\",[1574]],[[65165,65166],\"mapped\",[1575]],[[65167,65170],\"mapped\",[1576]],[[65171,65172],\"mapped\",[1577]],[[65173,65176],\"mapped\",[1578]],[[65177,65180],\"mapped\",[1579]],[[65181,65184],\"mapped\",[1580]],[[65185,65188],\"mapped\",[1581]],[[65189,65192],\"mapped\",[1582]],[[65193,65194],\"mapped\",[1583]],[[65195,65196],\"mapped\",[1584]],[[65197,65198],\"mapped\",[1585]],[[65199,65200],\"mapped\",[1586]],[[65201,65204],\"mapped\",[1587]],[[65205,65208],\"mapped\",[1588]],[[65209,65212],\"mapped\",[1589]],[[65213,65216],\"mapped\",[1590]],[[65217,65220],\"mapped\",[1591]],[[65221,65224],\"mapped\",[1592]],[[65225,65228],\"mapped\",[1593]],[[65229,65232],\"mapped\",[1594]],[[65233,65236],\"mapped\",[1601]],[[65237,65240],\"mapped\",[1602]],[[65241,65244],\"mapped\",[1603]],[[65245,65248],\"mapped\",[1604]],[[65249,65252],\"mapped\",[1605]],[[65253,65256],\"mapped\",[1606]],[[65257,65260],\"mapped\",[1607]],[[65261,65262],\"mapped\",[1608]],[[65263,65264],\"mapped\",[1609]],[[65265,65268],\"mapped\",[1610]],[[65269,65270],\"mapped\",[1604,1570]],[[65271,65272],\"mapped\",[1604,1571]],[[65273,65274],\"mapped\",[1604,1573]],[[65275,65276],\"mapped\",[1604,1575]],[[65277,65278],\"disallowed\"],[[65279,65279],\"ignored\"],[[65280,65280],\"disallowed\"],[[65281,65281],\"disallowed_STD3_mapped\",[33]],[[65282,65282],\"disallowed_STD3_mapped\",[34]],[[65283,65283],\"disallowed_STD3_mapped\",[35]],[[65284,65284],\"disallowed_STD3_mapped\",[36]],[[65285,65285],\"disallowed_STD3_mapped\",[37]],[[65286,65286],\"disallowed_STD3_mapped\",[38]],[[65287,65287],\"disallowed_STD3_mapped\",[39]],[[65288,65288],\"disallowed_STD3_mapped\",[40]],[[65289,65289],\"disallowed_STD3_mapped\",[41]],[[65290,65290],\"disallowed_STD3_mapped\",[42]],[[65291,65291],\"disallowed_STD3_mapped\",[43]],[[65292,65292],\"disallowed_STD3_mapped\",[44]],[[65293,65293],\"mapped\",[45]],[[65294,65294],\"mapped\",[46]],[[65295,65295],\"disallowed_STD3_mapped\",[47]],[[65296,65296],\"mapped\",[48]],[[65297,65297],\"mapped\",[49]],[[65298,65298],\"mapped\",[50]],[[65299,65299],\"mapped\",[51]],[[65300,65300],\"mapped\",[52]],[[65301,65301],\"mapped\",[53]],[[65302,65302],\"mapped\",[54]],[[65303,65303],\"mapped\",[55]],[[65304,65304],\"mapped\",[56]],[[65305,65305],\"mapped\",[57]],[[65306,65306],\"disallowed_STD3_mapped\",[58]],[[65307,65307],\"disallowed_STD3_mapped\",[59]],[[65308,65308],\"disallowed_STD3_mapped\",[60]],[[65309,65309],\"disallowed_STD3_mapped\",[61]],[[65310,65310],\"disallowed_STD3_mapped\",[62]],[[65311,65311],\"disallowed_STD3_mapped\",[63]],[[65312,65312],\"disallowed_STD3_mapped\",[64]],[[65313,65313],\"mapped\",[97]],[[65314,65314],\"mapped\",[98]],[[65315,65315],\"mapped\",[99]],[[65316,65316],\"mapped\",[100]],[[65317,65317],\"mapped\",[101]],[[65318,65318],\"mapped\",[102]],[[65319,65319],\"mapped\",[103]],[[65320,65320],\"mapped\",[104]],[[65321,65321],\"mapped\",[105]],[[65322,65322],\"mapped\",[106]],[[65323,65323],\"mapped\",[107]],[[65324,65324],\"mapped\",[108]],[[65325,65325],\"mapped\",[109]],[[65326,65326],\"mapped\",[110]],[[65327,65327],\"mapped\",[111]],[[65328,65328],\"mapped\",[112]],[[65329,65329],\"mapped\",[113]],[[65330,65330],\"mapped\",[114]],[[65331,65331],\"mapped\",[115]],[[65332,65332],\"mapped\",[116]],[[65333,65333],\"mapped\",[117]],[[65334,65334],\"mapped\",[118]],[[65335,65335],\"mapped\",[119]],[[65336,65336],\"mapped\",[120]],[[65337,65337],\"mapped\",[121]],[[65338,65338],\"mapped\",[122]],[[65339,65339],\"disallowed_STD3_mapped\",[91]],[[65340,65340],\"disallowed_STD3_mapped\",[92]],[[65341,65341],\"disallowed_STD3_mapped\",[93]],[[65342,65342],\"disallowed_STD3_mapped\",[94]],[[65343,65343],\"disallowed_STD3_mapped\",[95]],[[65344,65344],\"disallowed_STD3_mapped\",[96]],[[65345,65345],\"mapped\",[97]],[[65346,65346],\"mapped\",[98]],[[65347,65347],\"mapped\",[99]],[[65348,65348],\"mapped\",[100]],[[65349,65349],\"mapped\",[101]],[[65350,65350],\"mapped\",[102]],[[65351,65351],\"mapped\",[103]],[[65352,65352],\"mapped\",[104]],[[65353,65353],\"mapped\",[105]],[[65354,65354],\"mapped\",[106]],[[65355,65355],\"mapped\",[107]],[[65356,65356],\"mapped\",[108]],[[65357,65357],\"mapped\",[109]],[[65358,65358],\"mapped\",[110]],[[65359,65359],\"mapped\",[111]],[[65360,65360],\"mapped\",[112]],[[65361,65361],\"mapped\",[113]],[[65362,65362],\"mapped\",[114]],[[65363,65363],\"mapped\",[115]],[[65364,65364],\"mapped\",[116]],[[65365,65365],\"mapped\",[117]],[[65366,65366],\"mapped\",[118]],[[65367,65367],\"mapped\",[119]],[[65368,65368],\"mapped\",[120]],[[65369,65369],\"mapped\",[121]],[[65370,65370],\"mapped\",[122]],[[65371,65371],\"disallowed_STD3_mapped\",[123]],[[65372,65372],\"disallowed_STD3_mapped\",[124]],[[65373,65373],\"disallowed_STD3_mapped\",[125]],[[65374,65374],\"disallowed_STD3_mapped\",[126]],[[65375,65375],\"mapped\",[10629]],[[65376,65376],\"mapped\",[10630]],[[65377,65377],\"mapped\",[46]],[[65378,65378],\"mapped\",[12300]],[[65379,65379],\"mapped\",[12301]],[[65380,65380],\"mapped\",[12289]],[[65381,65381],\"mapped\",[12539]],[[65382,65382],\"mapped\",[12530]],[[65383,65383],\"mapped\",[12449]],[[65384,65384],\"mapped\",[12451]],[[65385,65385],\"mapped\",[12453]],[[65386,65386],\"mapped\",[12455]],[[65387,65387],\"mapped\",[12457]],[[65388,65388],\"mapped\",[12515]],[[65389,65389],\"mapped\",[12517]],[[65390,65390],\"mapped\",[12519]],[[65391,65391],\"mapped\",[12483]],[[65392,65392],\"mapped\",[12540]],[[65393,65393],\"mapped\",[12450]],[[65394,65394],\"mapped\",[12452]],[[65395,65395],\"mapped\",[12454]],[[65396,65396],\"mapped\",[12456]],[[65397,65397],\"mapped\",[12458]],[[65398,65398],\"mapped\",[12459]],[[65399,65399],\"mapped\",[12461]],[[65400,65400],\"mapped\",[12463]],[[65401,65401],\"mapped\",[12465]],[[65402,65402],\"mapped\",[12467]],[[65403,65403],\"mapped\",[12469]],[[65404,65404],\"mapped\",[12471]],[[65405,65405],\"mapped\",[12473]],[[65406,65406],\"mapped\",[12475]],[[65407,65407],\"mapped\",[12477]],[[65408,65408],\"mapped\",[12479]],[[65409,65409],\"mapped\",[12481]],[[65410,65410],\"mapped\",[12484]],[[65411,65411],\"mapped\",[12486]],[[65412,65412],\"mapped\",[12488]],[[65413,65413],\"mapped\",[12490]],[[65414,65414],\"mapped\",[12491]],[[65415,65415],\"mapped\",[12492]],[[65416,65416],\"mapped\",[12493]],[[65417,65417],\"mapped\",[12494]],[[65418,65418],\"mapped\",[12495]],[[65419,65419],\"mapped\",[12498]],[[65420,65420],\"mapped\",[12501]],[[65421,65421],\"mapped\",[12504]],[[65422,65422],\"mapped\",[12507]],[[65423,65423],\"mapped\",[12510]],[[65424,65424],\"mapped\",[12511]],[[65425,65425],\"mapped\",[12512]],[[65426,65426],\"mapped\",[12513]],[[65427,65427],\"mapped\",[12514]],[[65428,65428],\"mapped\",[12516]],[[65429,65429],\"mapped\",[12518]],[[65430,65430],\"mapped\",[12520]],[[65431,65431],\"mapped\",[12521]],[[65432,65432],\"mapped\",[12522]],[[65433,65433],\"mapped\",[12523]],[[65434,65434],\"mapped\",[12524]],[[65435,65435],\"mapped\",[12525]],[[65436,65436],\"mapped\",[12527]],[[65437,65437],\"mapped\",[12531]],[[65438,65438],\"mapped\",[12441]],[[65439,65439],\"mapped\",[12442]],[[65440,65440],\"disallowed\"],[[65441,65441],\"mapped\",[4352]],[[65442,65442],\"mapped\",[4353]],[[65443,65443],\"mapped\",[4522]],[[65444,65444],\"mapped\",[4354]],[[65445,65445],\"mapped\",[4524]],[[65446,65446],\"mapped\",[4525]],[[65447,65447],\"mapped\",[4355]],[[65448,65448],\"mapped\",[4356]],[[65449,65449],\"mapped\",[4357]],[[65450,65450],\"mapped\",[4528]],[[65451,65451],\"mapped\",[4529]],[[65452,65452],\"mapped\",[4530]],[[65453,65453],\"mapped\",[4531]],[[65454,65454],\"mapped\",[4532]],[[65455,65455],\"mapped\",[4533]],[[65456,65456],\"mapped\",[4378]],[[65457,65457],\"mapped\",[4358]],[[65458,65458],\"mapped\",[4359]],[[65459,65459],\"mapped\",[4360]],[[65460,65460],\"mapped\",[4385]],[[65461,65461],\"mapped\",[4361]],[[65462,65462],\"mapped\",[4362]],[[65463,65463],\"mapped\",[4363]],[[65464,65464],\"mapped\",[4364]],[[65465,65465],\"mapped\",[4365]],[[65466,65466],\"mapped\",[4366]],[[65467,65467],\"mapped\",[4367]],[[65468,65468],\"mapped\",[4368]],[[65469,65469],\"mapped\",[4369]],[[65470,65470],\"mapped\",[4370]],[[65471,65473],\"disallowed\"],[[65474,65474],\"mapped\",[4449]],[[65475,65475],\"mapped\",[4450]],[[65476,65476],\"mapped\",[4451]],[[65477,65477],\"mapped\",[4452]],[[65478,65478],\"mapped\",[4453]],[[65479,65479],\"mapped\",[4454]],[[65480,65481],\"disallowed\"],[[65482,65482],\"mapped\",[4455]],[[65483,65483],\"mapped\",[4456]],[[65484,65484],\"mapped\",[4457]],[[65485,65485],\"mapped\",[4458]],[[65486,65486],\"mapped\",[4459]],[[65487,65487],\"mapped\",[4460]],[[65488,65489],\"disallowed\"],[[65490,65490],\"mapped\",[4461]],[[65491,65491],\"mapped\",[4462]],[[65492,65492],\"mapped\",[4463]],[[65493,65493],\"mapped\",[4464]],[[65494,65494],\"mapped\",[4465]],[[65495,65495],\"mapped\",[4466]],[[65496,65497],\"disallowed\"],[[65498,65498],\"mapped\",[4467]],[[65499,65499],\"mapped\",[4468]],[[65500,65500],\"mapped\",[4469]],[[65501,65503],\"disallowed\"],[[65504,65504],\"mapped\",[162]],[[65505,65505],\"mapped\",[163]],[[65506,65506],\"mapped\",[172]],[[65507,65507],\"disallowed_STD3_mapped\",[32,772]],[[65508,65508],\"mapped\",[166]],[[65509,65509],\"mapped\",[165]],[[65510,65510],\"mapped\",[8361]],[[65511,65511],\"disallowed\"],[[65512,65512],\"mapped\",[9474]],[[65513,65513],\"mapped\",[8592]],[[65514,65514],\"mapped\",[8593]],[[65515,65515],\"mapped\",[8594]],[[65516,65516],\"mapped\",[8595]],[[65517,65517],\"mapped\",[9632]],[[65518,65518],\"mapped\",[9675]],[[65519,65528],\"disallowed\"],[[65529,65531],\"disallowed\"],[[65532,65532],\"disallowed\"],[[65533,65533],\"disallowed\"],[[65534,65535],\"disallowed\"],[[65536,65547],\"valid\"],[[65548,65548],\"disallowed\"],[[65549,65574],\"valid\"],[[65575,65575],\"disallowed\"],[[65576,65594],\"valid\"],[[65595,65595],\"disallowed\"],[[65596,65597],\"valid\"],[[65598,65598],\"disallowed\"],[[65599,65613],\"valid\"],[[65614,65615],\"disallowed\"],[[65616,65629],\"valid\"],[[65630,65663],\"disallowed\"],[[65664,65786],\"valid\"],[[65787,65791],\"disallowed\"],[[65792,65794],\"valid\",[],\"NV8\"],[[65795,65798],\"disallowed\"],[[65799,65843],\"valid\",[],\"NV8\"],[[65844,65846],\"disallowed\"],[[65847,65855],\"valid\",[],\"NV8\"],[[65856,65930],\"valid\",[],\"NV8\"],[[65931,65932],\"valid\",[],\"NV8\"],[[65933,65935],\"disallowed\"],[[65936,65947],\"valid\",[],\"NV8\"],[[65948,65951],\"disallowed\"],[[65952,65952],\"valid\",[],\"NV8\"],[[65953,65999],\"disallowed\"],[[66000,66044],\"valid\",[],\"NV8\"],[[66045,66045],\"valid\"],[[66046,66175],\"disallowed\"],[[66176,66204],\"valid\"],[[66205,66207],\"disallowed\"],[[66208,66256],\"valid\"],[[66257,66271],\"disallowed\"],[[66272,66272],\"valid\"],[[66273,66299],\"valid\",[],\"NV8\"],[[66300,66303],\"disallowed\"],[[66304,66334],\"valid\"],[[66335,66335],\"valid\"],[[66336,66339],\"valid\",[],\"NV8\"],[[66340,66351],\"disallowed\"],[[66352,66368],\"valid\"],[[66369,66369],\"valid\",[],\"NV8\"],[[66370,66377],\"valid\"],[[66378,66378],\"valid\",[],\"NV8\"],[[66379,66383],\"disallowed\"],[[66384,66426],\"valid\"],[[66427,66431],\"disallowed\"],[[66432,66461],\"valid\"],[[66462,66462],\"disallowed\"],[[66463,66463],\"valid\",[],\"NV8\"],[[66464,66499],\"valid\"],[[66500,66503],\"disallowed\"],[[66504,66511],\"valid\"],[[66512,66517],\"valid\",[],\"NV8\"],[[66518,66559],\"disallowed\"],[[66560,66560],\"mapped\",[66600]],[[66561,66561],\"mapped\",[66601]],[[66562,66562],\"mapped\",[66602]],[[66563,66563],\"mapped\",[66603]],[[66564,66564],\"mapped\",[66604]],[[66565,66565],\"mapped\",[66605]],[[66566,66566],\"mapped\",[66606]],[[66567,66567],\"mapped\",[66607]],[[66568,66568],\"mapped\",[66608]],[[66569,66569],\"mapped\",[66609]],[[66570,66570],\"mapped\",[66610]],[[66571,66571],\"mapped\",[66611]],[[66572,66572],\"mapped\",[66612]],[[66573,66573],\"mapped\",[66613]],[[66574,66574],\"mapped\",[66614]],[[66575,66575],\"mapped\",[66615]],[[66576,66576],\"mapped\",[66616]],[[66577,66577],\"mapped\",[66617]],[[66578,66578],\"mapped\",[66618]],[[66579,66579],\"mapped\",[66619]],[[66580,66580],\"mapped\",[66620]],[[66581,66581],\"mapped\",[66621]],[[66582,66582],\"mapped\",[66622]],[[66583,66583],\"mapped\",[66623]],[[66584,66584],\"mapped\",[66624]],[[66585,66585],\"mapped\",[66625]],[[66586,66586],\"mapped\",[66626]],[[66587,66587],\"mapped\",[66627]],[[66588,66588],\"mapped\",[66628]],[[66589,66589],\"mapped\",[66629]],[[66590,66590],\"mapped\",[66630]],[[66591,66591],\"mapped\",[66631]],[[66592,66592],\"mapped\",[66632]],[[66593,66593],\"mapped\",[66633]],[[66594,66594],\"mapped\",[66634]],[[66595,66595],\"mapped\",[66635]],[[66596,66596],\"mapped\",[66636]],[[66597,66597],\"mapped\",[66637]],[[66598,66598],\"mapped\",[66638]],[[66599,66599],\"mapped\",[66639]],[[66600,66637],\"valid\"],[[66638,66717],\"valid\"],[[66718,66719],\"disallowed\"],[[66720,66729],\"valid\"],[[66730,66815],\"disallowed\"],[[66816,66855],\"valid\"],[[66856,66863],\"disallowed\"],[[66864,66915],\"valid\"],[[66916,66926],\"disallowed\"],[[66927,66927],\"valid\",[],\"NV8\"],[[66928,67071],\"disallowed\"],[[67072,67382],\"valid\"],[[67383,67391],\"disallowed\"],[[67392,67413],\"valid\"],[[67414,67423],\"disallowed\"],[[67424,67431],\"valid\"],[[67432,67583],\"disallowed\"],[[67584,67589],\"valid\"],[[67590,67591],\"disallowed\"],[[67592,67592],\"valid\"],[[67593,67593],\"disallowed\"],[[67594,67637],\"valid\"],[[67638,67638],\"disallowed\"],[[67639,67640],\"valid\"],[[67641,67643],\"disallowed\"],[[67644,67644],\"valid\"],[[67645,67646],\"disallowed\"],[[67647,67647],\"valid\"],[[67648,67669],\"valid\"],[[67670,67670],\"disallowed\"],[[67671,67679],\"valid\",[],\"NV8\"],[[67680,67702],\"valid\"],[[67703,67711],\"valid\",[],\"NV8\"],[[67712,67742],\"valid\"],[[67743,67750],\"disallowed\"],[[67751,67759],\"valid\",[],\"NV8\"],[[67760,67807],\"disallowed\"],[[67808,67826],\"valid\"],[[67827,67827],\"disallowed\"],[[67828,67829],\"valid\"],[[67830,67834],\"disallowed\"],[[67835,67839],\"valid\",[],\"NV8\"],[[67840,67861],\"valid\"],[[67862,67865],\"valid\",[],\"NV8\"],[[67866,67867],\"valid\",[],\"NV8\"],[[67868,67870],\"disallowed\"],[[67871,67871],\"valid\",[],\"NV8\"],[[67872,67897],\"valid\"],[[67898,67902],\"disallowed\"],[[67903,67903],\"valid\",[],\"NV8\"],[[67904,67967],\"disallowed\"],[[67968,68023],\"valid\"],[[68024,68027],\"disallowed\"],[[68028,68029],\"valid\",[],\"NV8\"],[[68030,68031],\"valid\"],[[68032,68047],\"valid\",[],\"NV8\"],[[68048,68049],\"disallowed\"],[[68050,68095],\"valid\",[],\"NV8\"],[[68096,68099],\"valid\"],[[68100,68100],\"disallowed\"],[[68101,68102],\"valid\"],[[68103,68107],\"disallowed\"],[[68108,68115],\"valid\"],[[68116,68116],\"disallowed\"],[[68117,68119],\"valid\"],[[68120,68120],\"disallowed\"],[[68121,68147],\"valid\"],[[68148,68151],\"disallowed\"],[[68152,68154],\"valid\"],[[68155,68158],\"disallowed\"],[[68159,68159],\"valid\"],[[68160,68167],\"valid\",[],\"NV8\"],[[68168,68175],\"disallowed\"],[[68176,68184],\"valid\",[],\"NV8\"],[[68185,68191],\"disallowed\"],[[68192,68220],\"valid\"],[[68221,68223],\"valid\",[],\"NV8\"],[[68224,68252],\"valid\"],[[68253,68255],\"valid\",[],\"NV8\"],[[68256,68287],\"disallowed\"],[[68288,68295],\"valid\"],[[68296,68296],\"valid\",[],\"NV8\"],[[68297,68326],\"valid\"],[[68327,68330],\"disallowed\"],[[68331,68342],\"valid\",[],\"NV8\"],[[68343,68351],\"disallowed\"],[[68352,68405],\"valid\"],[[68406,68408],\"disallowed\"],[[68409,68415],\"valid\",[],\"NV8\"],[[68416,68437],\"valid\"],[[68438,68439],\"disallowed\"],[[68440,68447],\"valid\",[],\"NV8\"],[[68448,68466],\"valid\"],[[68467,68471],\"disallowed\"],[[68472,68479],\"valid\",[],\"NV8\"],[[68480,68497],\"valid\"],[[68498,68504],\"disallowed\"],[[68505,68508],\"valid\",[],\"NV8\"],[[68509,68520],\"disallowed\"],[[68521,68527],\"valid\",[],\"NV8\"],[[68528,68607],\"disallowed\"],[[68608,68680],\"valid\"],[[68681,68735],\"disallowed\"],[[68736,68736],\"mapped\",[68800]],[[68737,68737],\"mapped\",[68801]],[[68738,68738],\"mapped\",[68802]],[[68739,68739],\"mapped\",[68803]],[[68740,68740],\"mapped\",[68804]],[[68741,68741],\"mapped\",[68805]],[[68742,68742],\"mapped\",[68806]],[[68743,68743],\"mapped\",[68807]],[[68744,68744],\"mapped\",[68808]],[[68745,68745],\"mapped\",[68809]],[[68746,68746],\"mapped\",[68810]],[[68747,68747],\"mapped\",[68811]],[[68748,68748],\"mapped\",[68812]],[[68749,68749],\"mapped\",[68813]],[[68750,68750],\"mapped\",[68814]],[[68751,68751],\"mapped\",[68815]],[[68752,68752],\"mapped\",[68816]],[[68753,68753],\"mapped\",[68817]],[[68754,68754],\"mapped\",[68818]],[[68755,68755],\"mapped\",[68819]],[[68756,68756],\"mapped\",[68820]],[[68757,68757],\"mapped\",[68821]],[[68758,68758],\"mapped\",[68822]],[[68759,68759],\"mapped\",[68823]],[[68760,68760],\"mapped\",[68824]],[[68761,68761],\"mapped\",[68825]],[[68762,68762],\"mapped\",[68826]],[[68763,68763],\"mapped\",[68827]],[[68764,68764],\"mapped\",[68828]],[[68765,68765],\"mapped\",[68829]],[[68766,68766],\"mapped\",[68830]],[[68767,68767],\"mapped\",[68831]],[[68768,68768],\"mapped\",[68832]],[[68769,68769],\"mapped\",[68833]],[[68770,68770],\"mapped\",[68834]],[[68771,68771],\"mapped\",[68835]],[[68772,68772],\"mapped\",[68836]],[[68773,68773],\"mapped\",[68837]],[[68774,68774],\"mapped\",[68838]],[[68775,68775],\"mapped\",[68839]],[[68776,68776],\"mapped\",[68840]],[[68777,68777],\"mapped\",[68841]],[[68778,68778],\"mapped\",[68842]],[[68779,68779],\"mapped\",[68843]],[[68780,68780],\"mapped\",[68844]],[[68781,68781],\"mapped\",[68845]],[[68782,68782],\"mapped\",[68846]],[[68783,68783],\"mapped\",[68847]],[[68784,68784],\"mapped\",[68848]],[[68785,68785],\"mapped\",[68849]],[[68786,68786],\"mapped\",[68850]],[[68787,68799],\"disallowed\"],[[68800,68850],\"valid\"],[[68851,68857],\"disallowed\"],[[68858,68863],\"valid\",[],\"NV8\"],[[68864,69215],\"disallowed\"],[[69216,69246],\"valid\",[],\"NV8\"],[[69247,69631],\"disallowed\"],[[69632,69702],\"valid\"],[[69703,69709],\"valid\",[],\"NV8\"],[[69710,69713],\"disallowed\"],[[69714,69733],\"valid\",[],\"NV8\"],[[69734,69743],\"valid\"],[[69744,69758],\"disallowed\"],[[69759,69759],\"valid\"],[[69760,69818],\"valid\"],[[69819,69820],\"valid\",[],\"NV8\"],[[69821,69821],\"disallowed\"],[[69822,69825],\"valid\",[],\"NV8\"],[[69826,69839],\"disallowed\"],[[69840,69864],\"valid\"],[[69865,69871],\"disallowed\"],[[69872,69881],\"valid\"],[[69882,69887],\"disallowed\"],[[69888,69940],\"valid\"],[[69941,69941],\"disallowed\"],[[69942,69951],\"valid\"],[[69952,69955],\"valid\",[],\"NV8\"],[[69956,69967],\"disallowed\"],[[69968,70003],\"valid\"],[[70004,70005],\"valid\",[],\"NV8\"],[[70006,70006],\"valid\"],[[70007,70015],\"disallowed\"],[[70016,70084],\"valid\"],[[70085,70088],\"valid\",[],\"NV8\"],[[70089,70089],\"valid\",[],\"NV8\"],[[70090,70092],\"valid\"],[[70093,70093],\"valid\",[],\"NV8\"],[[70094,70095],\"disallowed\"],[[70096,70105],\"valid\"],[[70106,70106],\"valid\"],[[70107,70107],\"valid\",[],\"NV8\"],[[70108,70108],\"valid\"],[[70109,70111],\"valid\",[],\"NV8\"],[[70112,70112],\"disallowed\"],[[70113,70132],\"valid\",[],\"NV8\"],[[70133,70143],\"disallowed\"],[[70144,70161],\"valid\"],[[70162,70162],\"disallowed\"],[[70163,70199],\"valid\"],[[70200,70205],\"valid\",[],\"NV8\"],[[70206,70271],\"disallowed\"],[[70272,70278],\"valid\"],[[70279,70279],\"disallowed\"],[[70280,70280],\"valid\"],[[70281,70281],\"disallowed\"],[[70282,70285],\"valid\"],[[70286,70286],\"disallowed\"],[[70287,70301],\"valid\"],[[70302,70302],\"disallowed\"],[[70303,70312],\"valid\"],[[70313,70313],\"valid\",[],\"NV8\"],[[70314,70319],\"disallowed\"],[[70320,70378],\"valid\"],[[70379,70383],\"disallowed\"],[[70384,70393],\"valid\"],[[70394,70399],\"disallowed\"],[[70400,70400],\"valid\"],[[70401,70403],\"valid\"],[[70404,70404],\"disallowed\"],[[70405,70412],\"valid\"],[[70413,70414],\"disallowed\"],[[70415,70416],\"valid\"],[[70417,70418],\"disallowed\"],[[70419,70440],\"valid\"],[[70441,70441],\"disallowed\"],[[70442,70448],\"valid\"],[[70449,70449],\"disallowed\"],[[70450,70451],\"valid\"],[[70452,70452],\"disallowed\"],[[70453,70457],\"valid\"],[[70458,70459],\"disallowed\"],[[70460,70468],\"valid\"],[[70469,70470],\"disallowed\"],[[70471,70472],\"valid\"],[[70473,70474],\"disallowed\"],[[70475,70477],\"valid\"],[[70478,70479],\"disallowed\"],[[70480,70480],\"valid\"],[[70481,70486],\"disallowed\"],[[70487,70487],\"valid\"],[[70488,70492],\"disallowed\"],[[70493,70499],\"valid\"],[[70500,70501],\"disallowed\"],[[70502,70508],\"valid\"],[[70509,70511],\"disallowed\"],[[70512,70516],\"valid\"],[[70517,70783],\"disallowed\"],[[70784,70853],\"valid\"],[[70854,70854],\"valid\",[],\"NV8\"],[[70855,70855],\"valid\"],[[70856,70863],\"disallowed\"],[[70864,70873],\"valid\"],[[70874,71039],\"disallowed\"],[[71040,71093],\"valid\"],[[71094,71095],\"disallowed\"],[[71096,71104],\"valid\"],[[71105,71113],\"valid\",[],\"NV8\"],[[71114,71127],\"valid\",[],\"NV8\"],[[71128,71133],\"valid\"],[[71134,71167],\"disallowed\"],[[71168,71232],\"valid\"],[[71233,71235],\"valid\",[],\"NV8\"],[[71236,71236],\"valid\"],[[71237,71247],\"disallowed\"],[[71248,71257],\"valid\"],[[71258,71295],\"disallowed\"],[[71296,71351],\"valid\"],[[71352,71359],\"disallowed\"],[[71360,71369],\"valid\"],[[71370,71423],\"disallowed\"],[[71424,71449],\"valid\"],[[71450,71452],\"disallowed\"],[[71453,71467],\"valid\"],[[71468,71471],\"disallowed\"],[[71472,71481],\"valid\"],[[71482,71487],\"valid\",[],\"NV8\"],[[71488,71839],\"disallowed\"],[[71840,71840],\"mapped\",[71872]],[[71841,71841],\"mapped\",[71873]],[[71842,71842],\"mapped\",[71874]],[[71843,71843],\"mapped\",[71875]],[[71844,71844],\"mapped\",[71876]],[[71845,71845],\"mapped\",[71877]],[[71846,71846],\"mapped\",[71878]],[[71847,71847],\"mapped\",[71879]],[[71848,71848],\"mapped\",[71880]],[[71849,71849],\"mapped\",[71881]],[[71850,71850],\"mapped\",[71882]],[[71851,71851],\"mapped\",[71883]],[[71852,71852],\"mapped\",[71884]],[[71853,71853],\"mapped\",[71885]],[[71854,71854],\"mapped\",[71886]],[[71855,71855],\"mapped\",[71887]],[[71856,71856],\"mapped\",[71888]],[[71857,71857],\"mapped\",[71889]],[[71858,71858],\"mapped\",[71890]],[[71859,71859],\"mapped\",[71891]],[[71860,71860],\"mapped\",[71892]],[[71861,71861],\"mapped\",[71893]],[[71862,71862],\"mapped\",[71894]],[[71863,71863],\"mapped\",[71895]],[[71864,71864],\"mapped\",[71896]],[[71865,71865],\"mapped\",[71897]],[[71866,71866],\"mapped\",[71898]],[[71867,71867],\"mapped\",[71899]],[[71868,71868],\"mapped\",[71900]],[[71869,71869],\"mapped\",[71901]],[[71870,71870],\"mapped\",[71902]],[[71871,71871],\"mapped\",[71903]],[[71872,71913],\"valid\"],[[71914,71922],\"valid\",[],\"NV8\"],[[71923,71934],\"disallowed\"],[[71935,71935],\"valid\"],[[71936,72383],\"disallowed\"],[[72384,72440],\"valid\"],[[72441,73727],\"disallowed\"],[[73728,74606],\"valid\"],[[74607,74648],\"valid\"],[[74649,74649],\"valid\"],[[74650,74751],\"disallowed\"],[[74752,74850],\"valid\",[],\"NV8\"],[[74851,74862],\"valid\",[],\"NV8\"],[[74863,74863],\"disallowed\"],[[74864,74867],\"valid\",[],\"NV8\"],[[74868,74868],\"valid\",[],\"NV8\"],[[74869,74879],\"disallowed\"],[[74880,75075],\"valid\"],[[75076,77823],\"disallowed\"],[[77824,78894],\"valid\"],[[78895,82943],\"disallowed\"],[[82944,83526],\"valid\"],[[83527,92159],\"disallowed\"],[[92160,92728],\"valid\"],[[92729,92735],\"disallowed\"],[[92736,92766],\"valid\"],[[92767,92767],\"disallowed\"],[[92768,92777],\"valid\"],[[92778,92781],\"disallowed\"],[[92782,92783],\"valid\",[],\"NV8\"],[[92784,92879],\"disallowed\"],[[92880,92909],\"valid\"],[[92910,92911],\"disallowed\"],[[92912,92916],\"valid\"],[[92917,92917],\"valid\",[],\"NV8\"],[[92918,92927],\"disallowed\"],[[92928,92982],\"valid\"],[[92983,92991],\"valid\",[],\"NV8\"],[[92992,92995],\"valid\"],[[92996,92997],\"valid\",[],\"NV8\"],[[92998,93007],\"disallowed\"],[[93008,93017],\"valid\"],[[93018,93018],\"disallowed\"],[[93019,93025],\"valid\",[],\"NV8\"],[[93026,93026],\"disallowed\"],[[93027,93047],\"valid\"],[[93048,93052],\"disallowed\"],[[93053,93071],\"valid\"],[[93072,93951],\"disallowed\"],[[93952,94020],\"valid\"],[[94021,94031],\"disallowed\"],[[94032,94078],\"valid\"],[[94079,94094],\"disallowed\"],[[94095,94111],\"valid\"],[[94112,110591],\"disallowed\"],[[110592,110593],\"valid\"],[[110594,113663],\"disallowed\"],[[113664,113770],\"valid\"],[[113771,113775],\"disallowed\"],[[113776,113788],\"valid\"],[[113789,113791],\"disallowed\"],[[113792,113800],\"valid\"],[[113801,113807],\"disallowed\"],[[113808,113817],\"valid\"],[[113818,113819],\"disallowed\"],[[113820,113820],\"valid\",[],\"NV8\"],[[113821,113822],\"valid\"],[[113823,113823],\"valid\",[],\"NV8\"],[[113824,113827],\"ignored\"],[[113828,118783],\"disallowed\"],[[118784,119029],\"valid\",[],\"NV8\"],[[119030,119039],\"disallowed\"],[[119040,119078],\"valid\",[],\"NV8\"],[[119079,119080],\"disallowed\"],[[119081,119081],\"valid\",[],\"NV8\"],[[119082,119133],\"valid\",[],\"NV8\"],[[119134,119134],\"mapped\",[119127,119141]],[[119135,119135],\"mapped\",[119128,119141]],[[119136,119136],\"mapped\",[119128,119141,119150]],[[119137,119137],\"mapped\",[119128,119141,119151]],[[119138,119138],\"mapped\",[119128,119141,119152]],[[119139,119139],\"mapped\",[119128,119141,119153]],[[119140,119140],\"mapped\",[119128,119141,119154]],[[119141,119154],\"valid\",[],\"NV8\"],[[119155,119162],\"disallowed\"],[[119163,119226],\"valid\",[],\"NV8\"],[[119227,119227],\"mapped\",[119225,119141]],[[119228,119228],\"mapped\",[119226,119141]],[[119229,119229],\"mapped\",[119225,119141,119150]],[[119230,119230],\"mapped\",[119226,119141,119150]],[[119231,119231],\"mapped\",[119225,119141,119151]],[[119232,119232],\"mapped\",[119226,119141,119151]],[[119233,119261],\"valid\",[],\"NV8\"],[[119262,119272],\"valid\",[],\"NV8\"],[[119273,119295],\"disallowed\"],[[119296,119365],\"valid\",[],\"NV8\"],[[119366,119551],\"disallowed\"],[[119552,119638],\"valid\",[],\"NV8\"],[[119639,119647],\"disallowed\"],[[119648,119665],\"valid\",[],\"NV8\"],[[119666,119807],\"disallowed\"],[[119808,119808],\"mapped\",[97]],[[119809,119809],\"mapped\",[98]],[[119810,119810],\"mapped\",[99]],[[119811,119811],\"mapped\",[100]],[[119812,119812],\"mapped\",[101]],[[119813,119813],\"mapped\",[102]],[[119814,119814],\"mapped\",[103]],[[119815,119815],\"mapped\",[104]],[[119816,119816],\"mapped\",[105]],[[119817,119817],\"mapped\",[106]],[[119818,119818],\"mapped\",[107]],[[119819,119819],\"mapped\",[108]],[[119820,119820],\"mapped\",[109]],[[119821,119821],\"mapped\",[110]],[[119822,119822],\"mapped\",[111]],[[119823,119823],\"mapped\",[112]],[[119824,119824],\"mapped\",[113]],[[119825,119825],\"mapped\",[114]],[[119826,119826],\"mapped\",[115]],[[119827,119827],\"mapped\",[116]],[[119828,119828],\"mapped\",[117]],[[119829,119829],\"mapped\",[118]],[[119830,119830],\"mapped\",[119]],[[119831,119831],\"mapped\",[120]],[[119832,119832],\"mapped\",[121]],[[119833,119833],\"mapped\",[122]],[[119834,119834],\"mapped\",[97]],[[119835,119835],\"mapped\",[98]],[[119836,119836],\"mapped\",[99]],[[119837,119837],\"mapped\",[100]],[[119838,119838],\"mapped\",[101]],[[119839,119839],\"mapped\",[102]],[[119840,119840],\"mapped\",[103]],[[119841,119841],\"mapped\",[104]],[[119842,119842],\"mapped\",[105]],[[119843,119843],\"mapped\",[106]],[[119844,119844],\"mapped\",[107]],[[119845,119845],\"mapped\",[108]],[[119846,119846],\"mapped\",[109]],[[119847,119847],\"mapped\",[110]],[[119848,119848],\"mapped\",[111]],[[119849,119849],\"mapped\",[112]],[[119850,119850],\"mapped\",[113]],[[119851,119851],\"mapped\",[114]],[[119852,119852],\"mapped\",[115]],[[119853,119853],\"mapped\",[116]],[[119854,119854],\"mapped\",[117]],[[119855,119855],\"mapped\",[118]],[[119856,119856],\"mapped\",[119]],[[119857,119857],\"mapped\",[120]],[[119858,119858],\"mapped\",[121]],[[119859,119859],\"mapped\",[122]],[[119860,119860],\"mapped\",[97]],[[119861,119861],\"mapped\",[98]],[[119862,119862],\"mapped\",[99]],[[119863,119863],\"mapped\",[100]],[[119864,119864],\"mapped\",[101]],[[119865,119865],\"mapped\",[102]],[[119866,119866],\"mapped\",[103]],[[119867,119867],\"mapped\",[104]],[[119868,119868],\"mapped\",[105]],[[119869,119869],\"mapped\",[106]],[[119870,119870],\"mapped\",[107]],[[119871,119871],\"mapped\",[108]],[[119872,119872],\"mapped\",[109]],[[119873,119873],\"mapped\",[110]],[[119874,119874],\"mapped\",[111]],[[119875,119875],\"mapped\",[112]],[[119876,119876],\"mapped\",[113]],[[119877,119877],\"mapped\",[114]],[[119878,119878],\"mapped\",[115]],[[119879,119879],\"mapped\",[116]],[[119880,119880],\"mapped\",[117]],[[119881,119881],\"mapped\",[118]],[[119882,119882],\"mapped\",[119]],[[119883,119883],\"mapped\",[120]],[[119884,119884],\"mapped\",[121]],[[119885,119885],\"mapped\",[122]],[[119886,119886],\"mapped\",[97]],[[119887,119887],\"mapped\",[98]],[[119888,119888],\"mapped\",[99]],[[119889,119889],\"mapped\",[100]],[[119890,119890],\"mapped\",[101]],[[119891,119891],\"mapped\",[102]],[[119892,119892],\"mapped\",[103]],[[119893,119893],\"disallowed\"],[[119894,119894],\"mapped\",[105]],[[119895,119895],\"mapped\",[106]],[[119896,119896],\"mapped\",[107]],[[119897,119897],\"mapped\",[108]],[[119898,119898],\"mapped\",[109]],[[119899,119899],\"mapped\",[110]],[[119900,119900],\"mapped\",[111]],[[119901,119901],\"mapped\",[112]],[[119902,119902],\"mapped\",[113]],[[119903,119903],\"mapped\",[114]],[[119904,119904],\"mapped\",[115]],[[119905,119905],\"mapped\",[116]],[[119906,119906],\"mapped\",[117]],[[119907,119907],\"mapped\",[118]],[[119908,119908],\"mapped\",[119]],[[119909,119909],\"mapped\",[120]],[[119910,119910],\"mapped\",[121]],[[119911,119911],\"mapped\",[122]],[[119912,119912],\"mapped\",[97]],[[119913,119913],\"mapped\",[98]],[[119914,119914],\"mapped\",[99]],[[119915,119915],\"mapped\",[100]],[[119916,119916],\"mapped\",[101]],[[119917,119917],\"mapped\",[102]],[[119918,119918],\"mapped\",[103]],[[119919,119919],\"mapped\",[104]],[[119920,119920],\"mapped\",[105]],[[119921,119921],\"mapped\",[106]],[[119922,119922],\"mapped\",[107]],[[119923,119923],\"mapped\",[108]],[[119924,119924],\"mapped\",[109]],[[119925,119925],\"mapped\",[110]],[[119926,119926],\"mapped\",[111]],[[119927,119927],\"mapped\",[112]],[[119928,119928],\"mapped\",[113]],[[119929,119929],\"mapped\",[114]],[[119930,119930],\"mapped\",[115]],[[119931,119931],\"mapped\",[116]],[[119932,119932],\"mapped\",[117]],[[119933,119933],\"mapped\",[118]],[[119934,119934],\"mapped\",[119]],[[119935,119935],\"mapped\",[120]],[[119936,119936],\"mapped\",[121]],[[119937,119937],\"mapped\",[122]],[[119938,119938],\"mapped\",[97]],[[119939,119939],\"mapped\",[98]],[[119940,119940],\"mapped\",[99]],[[119941,119941],\"mapped\",[100]],[[119942,119942],\"mapped\",[101]],[[119943,119943],\"mapped\",[102]],[[119944,119944],\"mapped\",[103]],[[119945,119945],\"mapped\",[104]],[[119946,119946],\"mapped\",[105]],[[119947,119947],\"mapped\",[106]],[[119948,119948],\"mapped\",[107]],[[119949,119949],\"mapped\",[108]],[[119950,119950],\"mapped\",[109]],[[119951,119951],\"mapped\",[110]],[[119952,119952],\"mapped\",[111]],[[119953,119953],\"mapped\",[112]],[[119954,119954],\"mapped\",[113]],[[119955,119955],\"mapped\",[114]],[[119956,119956],\"mapped\",[115]],[[119957,119957],\"mapped\",[116]],[[119958,119958],\"mapped\",[117]],[[119959,119959],\"mapped\",[118]],[[119960,119960],\"mapped\",[119]],[[119961,119961],\"mapped\",[120]],[[119962,119962],\"mapped\",[121]],[[119963,119963],\"mapped\",[122]],[[119964,119964],\"mapped\",[97]],[[119965,119965],\"disallowed\"],[[119966,119966],\"mapped\",[99]],[[119967,119967],\"mapped\",[100]],[[119968,119969],\"disallowed\"],[[119970,119970],\"mapped\",[103]],[[119971,119972],\"disallowed\"],[[119973,119973],\"mapped\",[106]],[[119974,119974],\"mapped\",[107]],[[119975,119976],\"disallowed\"],[[119977,119977],\"mapped\",[110]],[[119978,119978],\"mapped\",[111]],[[119979,119979],\"mapped\",[112]],[[119980,119980],\"mapped\",[113]],[[119981,119981],\"disallowed\"],[[119982,119982],\"mapped\",[115]],[[119983,119983],\"mapped\",[116]],[[119984,119984],\"mapped\",[117]],[[119985,119985],\"mapped\",[118]],[[119986,119986],\"mapped\",[119]],[[119987,119987],\"mapped\",[120]],[[119988,119988],\"mapped\",[121]],[[119989,119989],\"mapped\",[122]],[[119990,119990],\"mapped\",[97]],[[119991,119991],\"mapped\",[98]],[[119992,119992],\"mapped\",[99]],[[119993,119993],\"mapped\",[100]],[[119994,119994],\"disallowed\"],[[119995,119995],\"mapped\",[102]],[[119996,119996],\"disallowed\"],[[119997,119997],\"mapped\",[104]],[[119998,119998],\"mapped\",[105]],[[119999,119999],\"mapped\",[106]],[[120000,120000],\"mapped\",[107]],[[120001,120001],\"mapped\",[108]],[[120002,120002],\"mapped\",[109]],[[120003,120003],\"mapped\",[110]],[[120004,120004],\"disallowed\"],[[120005,120005],\"mapped\",[112]],[[120006,120006],\"mapped\",[113]],[[120007,120007],\"mapped\",[114]],[[120008,120008],\"mapped\",[115]],[[120009,120009],\"mapped\",[116]],[[120010,120010],\"mapped\",[117]],[[120011,120011],\"mapped\",[118]],[[120012,120012],\"mapped\",[119]],[[120013,120013],\"mapped\",[120]],[[120014,120014],\"mapped\",[121]],[[120015,120015],\"mapped\",[122]],[[120016,120016],\"mapped\",[97]],[[120017,120017],\"mapped\",[98]],[[120018,120018],\"mapped\",[99]],[[120019,120019],\"mapped\",[100]],[[120020,120020],\"mapped\",[101]],[[120021,120021],\"mapped\",[102]],[[120022,120022],\"mapped\",[103]],[[120023,120023],\"mapped\",[104]],[[120024,120024],\"mapped\",[105]],[[120025,120025],\"mapped\",[106]],[[120026,120026],\"mapped\",[107]],[[120027,120027],\"mapped\",[108]],[[120028,120028],\"mapped\",[109]],[[120029,120029],\"mapped\",[110]],[[120030,120030],\"mapped\",[111]],[[120031,120031],\"mapped\",[112]],[[120032,120032],\"mapped\",[113]],[[120033,120033],\"mapped\",[114]],[[120034,120034],\"mapped\",[115]],[[120035,120035],\"mapped\",[116]],[[120036,120036],\"mapped\",[117]],[[120037,120037],\"mapped\",[118]],[[120038,120038],\"mapped\",[119]],[[120039,120039],\"mapped\",[120]],[[120040,120040],\"mapped\",[121]],[[120041,120041],\"mapped\",[122]],[[120042,120042],\"mapped\",[97]],[[120043,120043],\"mapped\",[98]],[[120044,120044],\"mapped\",[99]],[[120045,120045],\"mapped\",[100]],[[120046,120046],\"mapped\",[101]],[[120047,120047],\"mapped\",[102]],[[120048,120048],\"mapped\",[103]],[[120049,120049],\"mapped\",[104]],[[120050,120050],\"mapped\",[105]],[[120051,120051],\"mapped\",[106]],[[120052,120052],\"mapped\",[107]],[[120053,120053],\"mapped\",[108]],[[120054,120054],\"mapped\",[109]],[[120055,120055],\"mapped\",[110]],[[120056,120056],\"mapped\",[111]],[[120057,120057],\"mapped\",[112]],[[120058,120058],\"mapped\",[113]],[[120059,120059],\"mapped\",[114]],[[120060,120060],\"mapped\",[115]],[[120061,120061],\"mapped\",[116]],[[120062,120062],\"mapped\",[117]],[[120063,120063],\"mapped\",[118]],[[120064,120064],\"mapped\",[119]],[[120065,120065],\"mapped\",[120]],[[120066,120066],\"mapped\",[121]],[[120067,120067],\"mapped\",[122]],[[120068,120068],\"mapped\",[97]],[[120069,120069],\"mapped\",[98]],[[120070,120070],\"disallowed\"],[[120071,120071],\"mapped\",[100]],[[120072,120072],\"mapped\",[101]],[[120073,120073],\"mapped\",[102]],[[120074,120074],\"mapped\",[103]],[[120075,120076],\"disallowed\"],[[120077,120077],\"mapped\",[106]],[[120078,120078],\"mapped\",[107]],[[120079,120079],\"mapped\",[108]],[[120080,120080],\"mapped\",[109]],[[120081,120081],\"mapped\",[110]],[[120082,120082],\"mapped\",[111]],[[120083,120083],\"mapped\",[112]],[[120084,120084],\"mapped\",[113]],[[120085,120085],\"disallowed\"],[[120086,120086],\"mapped\",[115]],[[120087,120087],\"mapped\",[116]],[[120088,120088],\"mapped\",[117]],[[120089,120089],\"mapped\",[118]],[[120090,120090],\"mapped\",[119]],[[120091,120091],\"mapped\",[120]],[[120092,120092],\"mapped\",[121]],[[120093,120093],\"disallowed\"],[[120094,120094],\"mapped\",[97]],[[120095,120095],\"mapped\",[98]],[[120096,120096],\"mapped\",[99]],[[120097,120097],\"mapped\",[100]],[[120098,120098],\"mapped\",[101]],[[120099,120099],\"mapped\",[102]],[[120100,120100],\"mapped\",[103]],[[120101,120101],\"mapped\",[104]],[[120102,120102],\"mapped\",[105]],[[120103,120103],\"mapped\",[106]],[[120104,120104],\"mapped\",[107]],[[120105,120105],\"mapped\",[108]],[[120106,120106],\"mapped\",[109]],[[120107,120107],\"mapped\",[110]],[[120108,120108],\"mapped\",[111]],[[120109,120109],\"mapped\",[112]],[[120110,120110],\"mapped\",[113]],[[120111,120111],\"mapped\",[114]],[[120112,120112],\"mapped\",[115]],[[120113,120113],\"mapped\",[116]],[[120114,120114],\"mapped\",[117]],[[120115,120115],\"mapped\",[118]],[[120116,120116],\"mapped\",[119]],[[120117,120117],\"mapped\",[120]],[[120118,120118],\"mapped\",[121]],[[120119,120119],\"mapped\",[122]],[[120120,120120],\"mapped\",[97]],[[120121,120121],\"mapped\",[98]],[[120122,120122],\"disallowed\"],[[120123,120123],\"mapped\",[100]],[[120124,120124],\"mapped\",[101]],[[120125,120125],\"mapped\",[102]],[[120126,120126],\"mapped\",[103]],[[120127,120127],\"disallowed\"],[[120128,120128],\"mapped\",[105]],[[120129,120129],\"mapped\",[106]],[[120130,120130],\"mapped\",[107]],[[120131,120131],\"mapped\",[108]],[[120132,120132],\"mapped\",[109]],[[120133,120133],\"disallowed\"],[[120134,120134],\"mapped\",[111]],[[120135,120137],\"disallowed\"],[[120138,120138],\"mapped\",[115]],[[120139,120139],\"mapped\",[116]],[[120140,120140],\"mapped\",[117]],[[120141,120141],\"mapped\",[118]],[[120142,120142],\"mapped\",[119]],[[120143,120143],\"mapped\",[120]],[[120144,120144],\"mapped\",[121]],[[120145,120145],\"disallowed\"],[[120146,120146],\"mapped\",[97]],[[120147,120147],\"mapped\",[98]],[[120148,120148],\"mapped\",[99]],[[120149,120149],\"mapped\",[100]],[[120150,120150],\"mapped\",[101]],[[120151,120151],\"mapped\",[102]],[[120152,120152],\"mapped\",[103]],[[120153,120153],\"mapped\",[104]],[[120154,120154],\"mapped\",[105]],[[120155,120155],\"mapped\",[106]],[[120156,120156],\"mapped\",[107]],[[120157,120157],\"mapped\",[108]],[[120158,120158],\"mapped\",[109]],[[120159,120159],\"mapped\",[110]],[[120160,120160],\"mapped\",[111]],[[120161,120161],\"mapped\",[112]],[[120162,120162],\"mapped\",[113]],[[120163,120163],\"mapped\",[114]],[[120164,120164],\"mapped\",[115]],[[120165,120165],\"mapped\",[116]],[[120166,120166],\"mapped\",[117]],[[120167,120167],\"mapped\",[118]],[[120168,120168],\"mapped\",[119]],[[120169,120169],\"mapped\",[120]],[[120170,120170],\"mapped\",[121]],[[120171,120171],\"mapped\",[122]],[[120172,120172],\"mapped\",[97]],[[120173,120173],\"mapped\",[98]],[[120174,120174],\"mapped\",[99]],[[120175,120175],\"mapped\",[100]],[[120176,120176],\"mapped\",[101]],[[120177,120177],\"mapped\",[102]],[[120178,120178],\"mapped\",[103]],[[120179,120179],\"mapped\",[104]],[[120180,120180],\"mapped\",[105]],[[120181,120181],\"mapped\",[106]],[[120182,120182],\"mapped\",[107]],[[120183,120183],\"mapped\",[108]],[[120184,120184],\"mapped\",[109]],[[120185,120185],\"mapped\",[110]],[[120186,120186],\"mapped\",[111]],[[120187,120187],\"mapped\",[112]],[[120188,120188],\"mapped\",[113]],[[120189,120189],\"mapped\",[114]],[[120190,120190],\"mapped\",[115]],[[120191,120191],\"mapped\",[116]],[[120192,120192],\"mapped\",[117]],[[120193,120193],\"mapped\",[118]],[[120194,120194],\"mapped\",[119]],[[120195,120195],\"mapped\",[120]],[[120196,120196],\"mapped\",[121]],[[120197,120197],\"mapped\",[122]],[[120198,120198],\"mapped\",[97]],[[120199,120199],\"mapped\",[98]],[[120200,120200],\"mapped\",[99]],[[120201,120201],\"mapped\",[100]],[[120202,120202],\"mapped\",[101]],[[120203,120203],\"mapped\",[102]],[[120204,120204],\"mapped\",[103]],[[120205,120205],\"mapped\",[104]],[[120206,120206],\"mapped\",[105]],[[120207,120207],\"mapped\",[106]],[[120208,120208],\"mapped\",[107]],[[120209,120209],\"mapped\",[108]],[[120210,120210],\"mapped\",[109]],[[120211,120211],\"mapped\",[110]],[[120212,120212],\"mapped\",[111]],[[120213,120213],\"mapped\",[112]],[[120214,120214],\"mapped\",[113]],[[120215,120215],\"mapped\",[114]],[[120216,120216],\"mapped\",[115]],[[120217,120217],\"mapped\",[116]],[[120218,120218],\"mapped\",[117]],[[120219,120219],\"mapped\",[118]],[[120220,120220],\"mapped\",[119]],[[120221,120221],\"mapped\",[120]],[[120222,120222],\"mapped\",[121]],[[120223,120223],\"mapped\",[122]],[[120224,120224],\"mapped\",[97]],[[120225,120225],\"mapped\",[98]],[[120226,120226],\"mapped\",[99]],[[120227,120227],\"mapped\",[100]],[[120228,120228],\"mapped\",[101]],[[120229,120229],\"mapped\",[102]],[[120230,120230],\"mapped\",[103]],[[120231,120231],\"mapped\",[104]],[[120232,120232],\"mapped\",[105]],[[120233,120233],\"mapped\",[106]],[[120234,120234],\"mapped\",[107]],[[120235,120235],\"mapped\",[108]],[[120236,120236],\"mapped\",[109]],[[120237,120237],\"mapped\",[110]],[[120238,120238],\"mapped\",[111]],[[120239,120239],\"mapped\",[112]],[[120240,120240],\"mapped\",[113]],[[120241,120241],\"mapped\",[114]],[[120242,120242],\"mapped\",[115]],[[120243,120243],\"mapped\",[116]],[[120244,120244],\"mapped\",[117]],[[120245,120245],\"mapped\",[118]],[[120246,120246],\"mapped\",[119]],[[120247,120247],\"mapped\",[120]],[[120248,120248],\"mapped\",[121]],[[120249,120249],\"mapped\",[122]],[[120250,120250],\"mapped\",[97]],[[120251,120251],\"mapped\",[98]],[[120252,120252],\"mapped\",[99]],[[120253,120253],\"mapped\",[100]],[[120254,120254],\"mapped\",[101]],[[120255,120255],\"mapped\",[102]],[[120256,120256],\"mapped\",[103]],[[120257,120257],\"mapped\",[104]],[[120258,120258],\"mapped\",[105]],[[120259,120259],\"mapped\",[106]],[[120260,120260],\"mapped\",[107]],[[120261,120261],\"mapped\",[108]],[[120262,120262],\"mapped\",[109]],[[120263,120263],\"mapped\",[110]],[[120264,120264],\"mapped\",[111]],[[120265,120265],\"mapped\",[112]],[[120266,120266],\"mapped\",[113]],[[120267,120267],\"mapped\",[114]],[[120268,120268],\"mapped\",[115]],[[120269,120269],\"mapped\",[116]],[[120270,120270],\"mapped\",[117]],[[120271,120271],\"mapped\",[118]],[[120272,120272],\"mapped\",[119]],[[120273,120273],\"mapped\",[120]],[[120274,120274],\"mapped\",[121]],[[120275,120275],\"mapped\",[122]],[[120276,120276],\"mapped\",[97]],[[120277,120277],\"mapped\",[98]],[[120278,120278],\"mapped\",[99]],[[120279,120279],\"mapped\",[100]],[[120280,120280],\"mapped\",[101]],[[120281,120281],\"mapped\",[102]],[[120282,120282],\"mapped\",[103]],[[120283,120283],\"mapped\",[104]],[[120284,120284],\"mapped\",[105]],[[120285,120285],\"mapped\",[106]],[[120286,120286],\"mapped\",[107]],[[120287,120287],\"mapped\",[108]],[[120288,120288],\"mapped\",[109]],[[120289,120289],\"mapped\",[110]],[[120290,120290],\"mapped\",[111]],[[120291,120291],\"mapped\",[112]],[[120292,120292],\"mapped\",[113]],[[120293,120293],\"mapped\",[114]],[[120294,120294],\"mapped\",[115]],[[120295,120295],\"mapped\",[116]],[[120296,120296],\"mapped\",[117]],[[120297,120297],\"mapped\",[118]],[[120298,120298],\"mapped\",[119]],[[120299,120299],\"mapped\",[120]],[[120300,120300],\"mapped\",[121]],[[120301,120301],\"mapped\",[122]],[[120302,120302],\"mapped\",[97]],[[120303,120303],\"mapped\",[98]],[[120304,120304],\"mapped\",[99]],[[120305,120305],\"mapped\",[100]],[[120306,120306],\"mapped\",[101]],[[120307,120307],\"mapped\",[102]],[[120308,120308],\"mapped\",[103]],[[120309,120309],\"mapped\",[104]],[[120310,120310],\"mapped\",[105]],[[120311,120311],\"mapped\",[106]],[[120312,120312],\"mapped\",[107]],[[120313,120313],\"mapped\",[108]],[[120314,120314],\"mapped\",[109]],[[120315,120315],\"mapped\",[110]],[[120316,120316],\"mapped\",[111]],[[120317,120317],\"mapped\",[112]],[[120318,120318],\"mapped\",[113]],[[120319,120319],\"mapped\",[114]],[[120320,120320],\"mapped\",[115]],[[120321,120321],\"mapped\",[116]],[[120322,120322],\"mapped\",[117]],[[120323,120323],\"mapped\",[118]],[[120324,120324],\"mapped\",[119]],[[120325,120325],\"mapped\",[120]],[[120326,120326],\"mapped\",[121]],[[120327,120327],\"mapped\",[122]],[[120328,120328],\"mapped\",[97]],[[120329,120329],\"mapped\",[98]],[[120330,120330],\"mapped\",[99]],[[120331,120331],\"mapped\",[100]],[[120332,120332],\"mapped\",[101]],[[120333,120333],\"mapped\",[102]],[[120334,120334],\"mapped\",[103]],[[120335,120335],\"mapped\",[104]],[[120336,120336],\"mapped\",[105]],[[120337,120337],\"mapped\",[106]],[[120338,120338],\"mapped\",[107]],[[120339,120339],\"mapped\",[108]],[[120340,120340],\"mapped\",[109]],[[120341,120341],\"mapped\",[110]],[[120342,120342],\"mapped\",[111]],[[120343,120343],\"mapped\",[112]],[[120344,120344],\"mapped\",[113]],[[120345,120345],\"mapped\",[114]],[[120346,120346],\"mapped\",[115]],[[120347,120347],\"mapped\",[116]],[[120348,120348],\"mapped\",[117]],[[120349,120349],\"mapped\",[118]],[[120350,120350],\"mapped\",[119]],[[120351,120351],\"mapped\",[120]],[[120352,120352],\"mapped\",[121]],[[120353,120353],\"mapped\",[122]],[[120354,120354],\"mapped\",[97]],[[120355,120355],\"mapped\",[98]],[[120356,120356],\"mapped\",[99]],[[120357,120357],\"mapped\",[100]],[[120358,120358],\"mapped\",[101]],[[120359,120359],\"mapped\",[102]],[[120360,120360],\"mapped\",[103]],[[120361,120361],\"mapped\",[104]],[[120362,120362],\"mapped\",[105]],[[120363,120363],\"mapped\",[106]],[[120364,120364],\"mapped\",[107]],[[120365,120365],\"mapped\",[108]],[[120366,120366],\"mapped\",[109]],[[120367,120367],\"mapped\",[110]],[[120368,120368],\"mapped\",[111]],[[120369,120369],\"mapped\",[112]],[[120370,120370],\"mapped\",[113]],[[120371,120371],\"mapped\",[114]],[[120372,120372],\"mapped\",[115]],[[120373,120373],\"mapped\",[116]],[[120374,120374],\"mapped\",[117]],[[120375,120375],\"mapped\",[118]],[[120376,120376],\"mapped\",[119]],[[120377,120377],\"mapped\",[120]],[[120378,120378],\"mapped\",[121]],[[120379,120379],\"mapped\",[122]],[[120380,120380],\"mapped\",[97]],[[120381,120381],\"mapped\",[98]],[[120382,120382],\"mapped\",[99]],[[120383,120383],\"mapped\",[100]],[[120384,120384],\"mapped\",[101]],[[120385,120385],\"mapped\",[102]],[[120386,120386],\"mapped\",[103]],[[120387,120387],\"mapped\",[104]],[[120388,120388],\"mapped\",[105]],[[120389,120389],\"mapped\",[106]],[[120390,120390],\"mapped\",[107]],[[120391,120391],\"mapped\",[108]],[[120392,120392],\"mapped\",[109]],[[120393,120393],\"mapped\",[110]],[[120394,120394],\"mapped\",[111]],[[120395,120395],\"mapped\",[112]],[[120396,120396],\"mapped\",[113]],[[120397,120397],\"mapped\",[114]],[[120398,120398],\"mapped\",[115]],[[120399,120399],\"mapped\",[116]],[[120400,120400],\"mapped\",[117]],[[120401,120401],\"mapped\",[118]],[[120402,120402],\"mapped\",[119]],[[120403,120403],\"mapped\",[120]],[[120404,120404],\"mapped\",[121]],[[120405,120405],\"mapped\",[122]],[[120406,120406],\"mapped\",[97]],[[120407,120407],\"mapped\",[98]],[[120408,120408],\"mapped\",[99]],[[120409,120409],\"mapped\",[100]],[[120410,120410],\"mapped\",[101]],[[120411,120411],\"mapped\",[102]],[[120412,120412],\"mapped\",[103]],[[120413,120413],\"mapped\",[104]],[[120414,120414],\"mapped\",[105]],[[120415,120415],\"mapped\",[106]],[[120416,120416],\"mapped\",[107]],[[120417,120417],\"mapped\",[108]],[[120418,120418],\"mapped\",[109]],[[120419,120419],\"mapped\",[110]],[[120420,120420],\"mapped\",[111]],[[120421,120421],\"mapped\",[112]],[[120422,120422],\"mapped\",[113]],[[120423,120423],\"mapped\",[114]],[[120424,120424],\"mapped\",[115]],[[120425,120425],\"mapped\",[116]],[[120426,120426],\"mapped\",[117]],[[120427,120427],\"mapped\",[118]],[[120428,120428],\"mapped\",[119]],[[120429,120429],\"mapped\",[120]],[[120430,120430],\"mapped\",[121]],[[120431,120431],\"mapped\",[122]],[[120432,120432],\"mapped\",[97]],[[120433,120433],\"mapped\",[98]],[[120434,120434],\"mapped\",[99]],[[120435,120435],\"mapped\",[100]],[[120436,120436],\"mapped\",[101]],[[120437,120437],\"mapped\",[102]],[[120438,120438],\"mapped\",[103]],[[120439,120439],\"mapped\",[104]],[[120440,120440],\"mapped\",[105]],[[120441,120441],\"mapped\",[106]],[[120442,120442],\"mapped\",[107]],[[120443,120443],\"mapped\",[108]],[[120444,120444],\"mapped\",[109]],[[120445,120445],\"mapped\",[110]],[[120446,120446],\"mapped\",[111]],[[120447,120447],\"mapped\",[112]],[[120448,120448],\"mapped\",[113]],[[120449,120449],\"mapped\",[114]],[[120450,120450],\"mapped\",[115]],[[120451,120451],\"mapped\",[116]],[[120452,120452],\"mapped\",[117]],[[120453,120453],\"mapped\",[118]],[[120454,120454],\"mapped\",[119]],[[120455,120455],\"mapped\",[120]],[[120456,120456],\"mapped\",[121]],[[120457,120457],\"mapped\",[122]],[[120458,120458],\"mapped\",[97]],[[120459,120459],\"mapped\",[98]],[[120460,120460],\"mapped\",[99]],[[120461,120461],\"mapped\",[100]],[[120462,120462],\"mapped\",[101]],[[120463,120463],\"mapped\",[102]],[[120464,120464],\"mapped\",[103]],[[120465,120465],\"mapped\",[104]],[[120466,120466],\"mapped\",[105]],[[120467,120467],\"mapped\",[106]],[[120468,120468],\"mapped\",[107]],[[120469,120469],\"mapped\",[108]],[[120470,120470],\"mapped\",[109]],[[120471,120471],\"mapped\",[110]],[[120472,120472],\"mapped\",[111]],[[120473,120473],\"mapped\",[112]],[[120474,120474],\"mapped\",[113]],[[120475,120475],\"mapped\",[114]],[[120476,120476],\"mapped\",[115]],[[120477,120477],\"mapped\",[116]],[[120478,120478],\"mapped\",[117]],[[120479,120479],\"mapped\",[118]],[[120480,120480],\"mapped\",[119]],[[120481,120481],\"mapped\",[120]],[[120482,120482],\"mapped\",[121]],[[120483,120483],\"mapped\",[122]],[[120484,120484],\"mapped\",[305]],[[120485,120485],\"mapped\",[567]],[[120486,120487],\"disallowed\"],[[120488,120488],\"mapped\",[945]],[[120489,120489],\"mapped\",[946]],[[120490,120490],\"mapped\",[947]],[[120491,120491],\"mapped\",[948]],[[120492,120492],\"mapped\",[949]],[[120493,120493],\"mapped\",[950]],[[120494,120494],\"mapped\",[951]],[[120495,120495],\"mapped\",[952]],[[120496,120496],\"mapped\",[953]],[[120497,120497],\"mapped\",[954]],[[120498,120498],\"mapped\",[955]],[[120499,120499],\"mapped\",[956]],[[120500,120500],\"mapped\",[957]],[[120501,120501],\"mapped\",[958]],[[120502,120502],\"mapped\",[959]],[[120503,120503],\"mapped\",[960]],[[120504,120504],\"mapped\",[961]],[[120505,120505],\"mapped\",[952]],[[120506,120506],\"mapped\",[963]],[[120507,120507],\"mapped\",[964]],[[120508,120508],\"mapped\",[965]],[[120509,120509],\"mapped\",[966]],[[120510,120510],\"mapped\",[967]],[[120511,120511],\"mapped\",[968]],[[120512,120512],\"mapped\",[969]],[[120513,120513],\"mapped\",[8711]],[[120514,120514],\"mapped\",[945]],[[120515,120515],\"mapped\",[946]],[[120516,120516],\"mapped\",[947]],[[120517,120517],\"mapped\",[948]],[[120518,120518],\"mapped\",[949]],[[120519,120519],\"mapped\",[950]],[[120520,120520],\"mapped\",[951]],[[120521,120521],\"mapped\",[952]],[[120522,120522],\"mapped\",[953]],[[120523,120523],\"mapped\",[954]],[[120524,120524],\"mapped\",[955]],[[120525,120525],\"mapped\",[956]],[[120526,120526],\"mapped\",[957]],[[120527,120527],\"mapped\",[958]],[[120528,120528],\"mapped\",[959]],[[120529,120529],\"mapped\",[960]],[[120530,120530],\"mapped\",[961]],[[120531,120532],\"mapped\",[963]],[[120533,120533],\"mapped\",[964]],[[120534,120534],\"mapped\",[965]],[[120535,120535],\"mapped\",[966]],[[120536,120536],\"mapped\",[967]],[[120537,120537],\"mapped\",[968]],[[120538,120538],\"mapped\",[969]],[[120539,120539],\"mapped\",[8706]],[[120540,120540],\"mapped\",[949]],[[120541,120541],\"mapped\",[952]],[[120542,120542],\"mapped\",[954]],[[120543,120543],\"mapped\",[966]],[[120544,120544],\"mapped\",[961]],[[120545,120545],\"mapped\",[960]],[[120546,120546],\"mapped\",[945]],[[120547,120547],\"mapped\",[946]],[[120548,120548],\"mapped\",[947]],[[120549,120549],\"mapped\",[948]],[[120550,120550],\"mapped\",[949]],[[120551,120551],\"mapped\",[950]],[[120552,120552],\"mapped\",[951]],[[120553,120553],\"mapped\",[952]],[[120554,120554],\"mapped\",[953]],[[120555,120555],\"mapped\",[954]],[[120556,120556],\"mapped\",[955]],[[120557,120557],\"mapped\",[956]],[[120558,120558],\"mapped\",[957]],[[120559,120559],\"mapped\",[958]],[[120560,120560],\"mapped\",[959]],[[120561,120561],\"mapped\",[960]],[[120562,120562],\"mapped\",[961]],[[120563,120563],\"mapped\",[952]],[[120564,120564],\"mapped\",[963]],[[120565,120565],\"mapped\",[964]],[[120566,120566],\"mapped\",[965]],[[120567,120567],\"mapped\",[966]],[[120568,120568],\"mapped\",[967]],[[120569,120569],\"mapped\",[968]],[[120570,120570],\"mapped\",[969]],[[120571,120571],\"mapped\",[8711]],[[120572,120572],\"mapped\",[945]],[[120573,120573],\"mapped\",[946]],[[120574,120574],\"mapped\",[947]],[[120575,120575],\"mapped\",[948]],[[120576,120576],\"mapped\",[949]],[[120577,120577],\"mapped\",[950]],[[120578,120578],\"mapped\",[951]],[[120579,120579],\"mapped\",[952]],[[120580,120580],\"mapped\",[953]],[[120581,120581],\"mapped\",[954]],[[120582,120582],\"mapped\",[955]],[[120583,120583],\"mapped\",[956]],[[120584,120584],\"mapped\",[957]],[[120585,120585],\"mapped\",[958]],[[120586,120586],\"mapped\",[959]],[[120587,120587],\"mapped\",[960]],[[120588,120588],\"mapped\",[961]],[[120589,120590],\"mapped\",[963]],[[120591,120591],\"mapped\",[964]],[[120592,120592],\"mapped\",[965]],[[120593,120593],\"mapped\",[966]],[[120594,120594],\"mapped\",[967]],[[120595,120595],\"mapped\",[968]],[[120596,120596],\"mapped\",[969]],[[120597,120597],\"mapped\",[8706]],[[120598,120598],\"mapped\",[949]],[[120599,120599],\"mapped\",[952]],[[120600,120600],\"mapped\",[954]],[[120601,120601],\"mapped\",[966]],[[120602,120602],\"mapped\",[961]],[[120603,120603],\"mapped\",[960]],[[120604,120604],\"mapped\",[945]],[[120605,120605],\"mapped\",[946]],[[120606,120606],\"mapped\",[947]],[[120607,120607],\"mapped\",[948]],[[120608,120608],\"mapped\",[949]],[[120609,120609],\"mapped\",[950]],[[120610,120610],\"mapped\",[951]],[[120611,120611],\"mapped\",[952]],[[120612,120612],\"mapped\",[953]],[[120613,120613],\"mapped\",[954]],[[120614,120614],\"mapped\",[955]],[[120615,120615],\"mapped\",[956]],[[120616,120616],\"mapped\",[957]],[[120617,120617],\"mapped\",[958]],[[120618,120618],\"mapped\",[959]],[[120619,120619],\"mapped\",[960]],[[120620,120620],\"mapped\",[961]],[[120621,120621],\"mapped\",[952]],[[120622,120622],\"mapped\",[963]],[[120623,120623],\"mapped\",[964]],[[120624,120624],\"mapped\",[965]],[[120625,120625],\"mapped\",[966]],[[120626,120626],\"mapped\",[967]],[[120627,120627],\"mapped\",[968]],[[120628,120628],\"mapped\",[969]],[[120629,120629],\"mapped\",[8711]],[[120630,120630],\"mapped\",[945]],[[120631,120631],\"mapped\",[946]],[[120632,120632],\"mapped\",[947]],[[120633,120633],\"mapped\",[948]],[[120634,120634],\"mapped\",[949]],[[120635,120635],\"mapped\",[950]],[[120636,120636],\"mapped\",[951]],[[120637,120637],\"mapped\",[952]],[[120638,120638],\"mapped\",[953]],[[120639,120639],\"mapped\",[954]],[[120640,120640],\"mapped\",[955]],[[120641,120641],\"mapped\",[956]],[[120642,120642],\"mapped\",[957]],[[120643,120643],\"mapped\",[958]],[[120644,120644],\"mapped\",[959]],[[120645,120645],\"mapped\",[960]],[[120646,120646],\"mapped\",[961]],[[120647,120648],\"mapped\",[963]],[[120649,120649],\"mapped\",[964]],[[120650,120650],\"mapped\",[965]],[[120651,120651],\"mapped\",[966]],[[120652,120652],\"mapped\",[967]],[[120653,120653],\"mapped\",[968]],[[120654,120654],\"mapped\",[969]],[[120655,120655],\"mapped\",[8706]],[[120656,120656],\"mapped\",[949]],[[120657,120657],\"mapped\",[952]],[[120658,120658],\"mapped\",[954]],[[120659,120659],\"mapped\",[966]],[[120660,120660],\"mapped\",[961]],[[120661,120661],\"mapped\",[960]],[[120662,120662],\"mapped\",[945]],[[120663,120663],\"mapped\",[946]],[[120664,120664],\"mapped\",[947]],[[120665,120665],\"mapped\",[948]],[[120666,120666],\"mapped\",[949]],[[120667,120667],\"mapped\",[950]],[[120668,120668],\"mapped\",[951]],[[120669,120669],\"mapped\",[952]],[[120670,120670],\"mapped\",[953]],[[120671,120671],\"mapped\",[954]],[[120672,120672],\"mapped\",[955]],[[120673,120673],\"mapped\",[956]],[[120674,120674],\"mapped\",[957]],[[120675,120675],\"mapped\",[958]],[[120676,120676],\"mapped\",[959]],[[120677,120677],\"mapped\",[960]],[[120678,120678],\"mapped\",[961]],[[120679,120679],\"mapped\",[952]],[[120680,120680],\"mapped\",[963]],[[120681,120681],\"mapped\",[964]],[[120682,120682],\"mapped\",[965]],[[120683,120683],\"mapped\",[966]],[[120684,120684],\"mapped\",[967]],[[120685,120685],\"mapped\",[968]],[[120686,120686],\"mapped\",[969]],[[120687,120687],\"mapped\",[8711]],[[120688,120688],\"mapped\",[945]],[[120689,120689],\"mapped\",[946]],[[120690,120690],\"mapped\",[947]],[[120691,120691],\"mapped\",[948]],[[120692,120692],\"mapped\",[949]],[[120693,120693],\"mapped\",[950]],[[120694,120694],\"mapped\",[951]],[[120695,120695],\"mapped\",[952]],[[120696,120696],\"mapped\",[953]],[[120697,120697],\"mapped\",[954]],[[120698,120698],\"mapped\",[955]],[[120699,120699],\"mapped\",[956]],[[120700,120700],\"mapped\",[957]],[[120701,120701],\"mapped\",[958]],[[120702,120702],\"mapped\",[959]],[[120703,120703],\"mapped\",[960]],[[120704,120704],\"mapped\",[961]],[[120705,120706],\"mapped\",[963]],[[120707,120707],\"mapped\",[964]],[[120708,120708],\"mapped\",[965]],[[120709,120709],\"mapped\",[966]],[[120710,120710],\"mapped\",[967]],[[120711,120711],\"mapped\",[968]],[[120712,120712],\"mapped\",[969]],[[120713,120713],\"mapped\",[8706]],[[120714,120714],\"mapped\",[949]],[[120715,120715],\"mapped\",[952]],[[120716,120716],\"mapped\",[954]],[[120717,120717],\"mapped\",[966]],[[120718,120718],\"mapped\",[961]],[[120719,120719],\"mapped\",[960]],[[120720,120720],\"mapped\",[945]],[[120721,120721],\"mapped\",[946]],[[120722,120722],\"mapped\",[947]],[[120723,120723],\"mapped\",[948]],[[120724,120724],\"mapped\",[949]],[[120725,120725],\"mapped\",[950]],[[120726,120726],\"mapped\",[951]],[[120727,120727],\"mapped\",[952]],[[120728,120728],\"mapped\",[953]],[[120729,120729],\"mapped\",[954]],[[120730,120730],\"mapped\",[955]],[[120731,120731],\"mapped\",[956]],[[120732,120732],\"mapped\",[957]],[[120733,120733],\"mapped\",[958]],[[120734,120734],\"mapped\",[959]],[[120735,120735],\"mapped\",[960]],[[120736,120736],\"mapped\",[961]],[[120737,120737],\"mapped\",[952]],[[120738,120738],\"mapped\",[963]],[[120739,120739],\"mapped\",[964]],[[120740,120740],\"mapped\",[965]],[[120741,120741],\"mapped\",[966]],[[120742,120742],\"mapped\",[967]],[[120743,120743],\"mapped\",[968]],[[120744,120744],\"mapped\",[969]],[[120745,120745],\"mapped\",[8711]],[[120746,120746],\"mapped\",[945]],[[120747,120747],\"mapped\",[946]],[[120748,120748],\"mapped\",[947]],[[120749,120749],\"mapped\",[948]],[[120750,120750],\"mapped\",[949]],[[120751,120751],\"mapped\",[950]],[[120752,120752],\"mapped\",[951]],[[120753,120753],\"mapped\",[952]],[[120754,120754],\"mapped\",[953]],[[120755,120755],\"mapped\",[954]],[[120756,120756],\"mapped\",[955]],[[120757,120757],\"mapped\",[956]],[[120758,120758],\"mapped\",[957]],[[120759,120759],\"mapped\",[958]],[[120760,120760],\"mapped\",[959]],[[120761,120761],\"mapped\",[960]],[[120762,120762],\"mapped\",[961]],[[120763,120764],\"mapped\",[963]],[[120765,120765],\"mapped\",[964]],[[120766,120766],\"mapped\",[965]],[[120767,120767],\"mapped\",[966]],[[120768,120768],\"mapped\",[967]],[[120769,120769],\"mapped\",[968]],[[120770,120770],\"mapped\",[969]],[[120771,120771],\"mapped\",[8706]],[[120772,120772],\"mapped\",[949]],[[120773,120773],\"mapped\",[952]],[[120774,120774],\"mapped\",[954]],[[120775,120775],\"mapped\",[966]],[[120776,120776],\"mapped\",[961]],[[120777,120777],\"mapped\",[960]],[[120778,120779],\"mapped\",[989]],[[120780,120781],\"disallowed\"],[[120782,120782],\"mapped\",[48]],[[120783,120783],\"mapped\",[49]],[[120784,120784],\"mapped\",[50]],[[120785,120785],\"mapped\",[51]],[[120786,120786],\"mapped\",[52]],[[120787,120787],\"mapped\",[53]],[[120788,120788],\"mapped\",[54]],[[120789,120789],\"mapped\",[55]],[[120790,120790],\"mapped\",[56]],[[120791,120791],\"mapped\",[57]],[[120792,120792],\"mapped\",[48]],[[120793,120793],\"mapped\",[49]],[[120794,120794],\"mapped\",[50]],[[120795,120795],\"mapped\",[51]],[[120796,120796],\"mapped\",[52]],[[120797,120797],\"mapped\",[53]],[[120798,120798],\"mapped\",[54]],[[120799,120799],\"mapped\",[55]],[[120800,120800],\"mapped\",[56]],[[120801,120801],\"mapped\",[57]],[[120802,120802],\"mapped\",[48]],[[120803,120803],\"mapped\",[49]],[[120804,120804],\"mapped\",[50]],[[120805,120805],\"mapped\",[51]],[[120806,120806],\"mapped\",[52]],[[120807,120807],\"mapped\",[53]],[[120808,120808],\"mapped\",[54]],[[120809,120809],\"mapped\",[55]],[[120810,120810],\"mapped\",[56]],[[120811,120811],\"mapped\",[57]],[[120812,120812],\"mapped\",[48]],[[120813,120813],\"mapped\",[49]],[[120814,120814],\"mapped\",[50]],[[120815,120815],\"mapped\",[51]],[[120816,120816],\"mapped\",[52]],[[120817,120817],\"mapped\",[53]],[[120818,120818],\"mapped\",[54]],[[120819,120819],\"mapped\",[55]],[[120820,120820],\"mapped\",[56]],[[120821,120821],\"mapped\",[57]],[[120822,120822],\"mapped\",[48]],[[120823,120823],\"mapped\",[49]],[[120824,120824],\"mapped\",[50]],[[120825,120825],\"mapped\",[51]],[[120826,120826],\"mapped\",[52]],[[120827,120827],\"mapped\",[53]],[[120828,120828],\"mapped\",[54]],[[120829,120829],\"mapped\",[55]],[[120830,120830],\"mapped\",[56]],[[120831,120831],\"mapped\",[57]],[[120832,121343],\"valid\",[],\"NV8\"],[[121344,121398],\"valid\"],[[121399,121402],\"valid\",[],\"NV8\"],[[121403,121452],\"valid\"],[[121453,121460],\"valid\",[],\"NV8\"],[[121461,121461],\"valid\"],[[121462,121475],\"valid\",[],\"NV8\"],[[121476,121476],\"valid\"],[[121477,121483],\"valid\",[],\"NV8\"],[[121484,121498],\"disallowed\"],[[121499,121503],\"valid\"],[[121504,121504],\"disallowed\"],[[121505,121519],\"valid\"],[[121520,124927],\"disallowed\"],[[124928,125124],\"valid\"],[[125125,125126],\"disallowed\"],[[125127,125135],\"valid\",[],\"NV8\"],[[125136,125142],\"valid\"],[[125143,126463],\"disallowed\"],[[126464,126464],\"mapped\",[1575]],[[126465,126465],\"mapped\",[1576]],[[126466,126466],\"mapped\",[1580]],[[126467,126467],\"mapped\",[1583]],[[126468,126468],\"disallowed\"],[[126469,126469],\"mapped\",[1608]],[[126470,126470],\"mapped\",[1586]],[[126471,126471],\"mapped\",[1581]],[[126472,126472],\"mapped\",[1591]],[[126473,126473],\"mapped\",[1610]],[[126474,126474],\"mapped\",[1603]],[[126475,126475],\"mapped\",[1604]],[[126476,126476],\"mapped\",[1605]],[[126477,126477],\"mapped\",[1606]],[[126478,126478],\"mapped\",[1587]],[[126479,126479],\"mapped\",[1593]],[[126480,126480],\"mapped\",[1601]],[[126481,126481],\"mapped\",[1589]],[[126482,126482],\"mapped\",[1602]],[[126483,126483],\"mapped\",[1585]],[[126484,126484],\"mapped\",[1588]],[[126485,126485],\"mapped\",[1578]],[[126486,126486],\"mapped\",[1579]],[[126487,126487],\"mapped\",[1582]],[[126488,126488],\"mapped\",[1584]],[[126489,126489],\"mapped\",[1590]],[[126490,126490],\"mapped\",[1592]],[[126491,126491],\"mapped\",[1594]],[[126492,126492],\"mapped\",[1646]],[[126493,126493],\"mapped\",[1722]],[[126494,126494],\"mapped\",[1697]],[[126495,126495],\"mapped\",[1647]],[[126496,126496],\"disallowed\"],[[126497,126497],\"mapped\",[1576]],[[126498,126498],\"mapped\",[1580]],[[126499,126499],\"disallowed\"],[[126500,126500],\"mapped\",[1607]],[[126501,126502],\"disallowed\"],[[126503,126503],\"mapped\",[1581]],[[126504,126504],\"disallowed\"],[[126505,126505],\"mapped\",[1610]],[[126506,126506],\"mapped\",[1603]],[[126507,126507],\"mapped\",[1604]],[[126508,126508],\"mapped\",[1605]],[[126509,126509],\"mapped\",[1606]],[[126510,126510],\"mapped\",[1587]],[[126511,126511],\"mapped\",[1593]],[[126512,126512],\"mapped\",[1601]],[[126513,126513],\"mapped\",[1589]],[[126514,126514],\"mapped\",[1602]],[[126515,126515],\"disallowed\"],[[126516,126516],\"mapped\",[1588]],[[126517,126517],\"mapped\",[1578]],[[126518,126518],\"mapped\",[1579]],[[126519,126519],\"mapped\",[1582]],[[126520,126520],\"disallowed\"],[[126521,126521],\"mapped\",[1590]],[[126522,126522],\"disallowed\"],[[126523,126523],\"mapped\",[1594]],[[126524,126529],\"disallowed\"],[[126530,126530],\"mapped\",[1580]],[[126531,126534],\"disallowed\"],[[126535,126535],\"mapped\",[1581]],[[126536,126536],\"disallowed\"],[[126537,126537],\"mapped\",[1610]],[[126538,126538],\"disallowed\"],[[126539,126539],\"mapped\",[1604]],[[126540,126540],\"disallowed\"],[[126541,126541],\"mapped\",[1606]],[[126542,126542],\"mapped\",[1587]],[[126543,126543],\"mapped\",[1593]],[[126544,126544],\"disallowed\"],[[126545,126545],\"mapped\",[1589]],[[126546,126546],\"mapped\",[1602]],[[126547,126547],\"disallowed\"],[[126548,126548],\"mapped\",[1588]],[[126549,126550],\"disallowed\"],[[126551,126551],\"mapped\",[1582]],[[126552,126552],\"disallowed\"],[[126553,126553],\"mapped\",[1590]],[[126554,126554],\"disallowed\"],[[126555,126555],\"mapped\",[1594]],[[126556,126556],\"disallowed\"],[[126557,126557],\"mapped\",[1722]],[[126558,126558],\"disallowed\"],[[126559,126559],\"mapped\",[1647]],[[126560,126560],\"disallowed\"],[[126561,126561],\"mapped\",[1576]],[[126562,126562],\"mapped\",[1580]],[[126563,126563],\"disallowed\"],[[126564,126564],\"mapped\",[1607]],[[126565,126566],\"disallowed\"],[[126567,126567],\"mapped\",[1581]],[[126568,126568],\"mapped\",[1591]],[[126569,126569],\"mapped\",[1610]],[[126570,126570],\"mapped\",[1603]],[[126571,126571],\"disallowed\"],[[126572,126572],\"mapped\",[1605]],[[126573,126573],\"mapped\",[1606]],[[126574,126574],\"mapped\",[1587]],[[126575,126575],\"mapped\",[1593]],[[126576,126576],\"mapped\",[1601]],[[126577,126577],\"mapped\",[1589]],[[126578,126578],\"mapped\",[1602]],[[126579,126579],\"disallowed\"],[[126580,126580],\"mapped\",[1588]],[[126581,126581],\"mapped\",[1578]],[[126582,126582],\"mapped\",[1579]],[[126583,126583],\"mapped\",[1582]],[[126584,126584],\"disallowed\"],[[126585,126585],\"mapped\",[1590]],[[126586,126586],\"mapped\",[1592]],[[126587,126587],\"mapped\",[1594]],[[126588,126588],\"mapped\",[1646]],[[126589,126589],\"disallowed\"],[[126590,126590],\"mapped\",[1697]],[[126591,126591],\"disallowed\"],[[126592,126592],\"mapped\",[1575]],[[126593,126593],\"mapped\",[1576]],[[126594,126594],\"mapped\",[1580]],[[126595,126595],\"mapped\",[1583]],[[126596,126596],\"mapped\",[1607]],[[126597,126597],\"mapped\",[1608]],[[126598,126598],\"mapped\",[1586]],[[126599,126599],\"mapped\",[1581]],[[126600,126600],\"mapped\",[1591]],[[126601,126601],\"mapped\",[1610]],[[126602,126602],\"disallowed\"],[[126603,126603],\"mapped\",[1604]],[[126604,126604],\"mapped\",[1605]],[[126605,126605],\"mapped\",[1606]],[[126606,126606],\"mapped\",[1587]],[[126607,126607],\"mapped\",[1593]],[[126608,126608],\"mapped\",[1601]],[[126609,126609],\"mapped\",[1589]],[[126610,126610],\"mapped\",[1602]],[[126611,126611],\"mapped\",[1585]],[[126612,126612],\"mapped\",[1588]],[[126613,126613],\"mapped\",[1578]],[[126614,126614],\"mapped\",[1579]],[[126615,126615],\"mapped\",[1582]],[[126616,126616],\"mapped\",[1584]],[[126617,126617],\"mapped\",[1590]],[[126618,126618],\"mapped\",[1592]],[[126619,126619],\"mapped\",[1594]],[[126620,126624],\"disallowed\"],[[126625,126625],\"mapped\",[1576]],[[126626,126626],\"mapped\",[1580]],[[126627,126627],\"mapped\",[1583]],[[126628,126628],\"disallowed\"],[[126629,126629],\"mapped\",[1608]],[[126630,126630],\"mapped\",[1586]],[[126631,126631],\"mapped\",[1581]],[[126632,126632],\"mapped\",[1591]],[[126633,126633],\"mapped\",[1610]],[[126634,126634],\"disallowed\"],[[126635,126635],\"mapped\",[1604]],[[126636,126636],\"mapped\",[1605]],[[126637,126637],\"mapped\",[1606]],[[126638,126638],\"mapped\",[1587]],[[126639,126639],\"mapped\",[1593]],[[126640,126640],\"mapped\",[1601]],[[126641,126641],\"mapped\",[1589]],[[126642,126642],\"mapped\",[1602]],[[126643,126643],\"mapped\",[1585]],[[126644,126644],\"mapped\",[1588]],[[126645,126645],\"mapped\",[1578]],[[126646,126646],\"mapped\",[1579]],[[126647,126647],\"mapped\",[1582]],[[126648,126648],\"mapped\",[1584]],[[126649,126649],\"mapped\",[1590]],[[126650,126650],\"mapped\",[1592]],[[126651,126651],\"mapped\",[1594]],[[126652,126703],\"disallowed\"],[[126704,126705],\"valid\",[],\"NV8\"],[[126706,126975],\"disallowed\"],[[126976,127019],\"valid\",[],\"NV8\"],[[127020,127023],\"disallowed\"],[[127024,127123],\"valid\",[],\"NV8\"],[[127124,127135],\"disallowed\"],[[127136,127150],\"valid\",[],\"NV8\"],[[127151,127152],\"disallowed\"],[[127153,127166],\"valid\",[],\"NV8\"],[[127167,127167],\"valid\",[],\"NV8\"],[[127168,127168],\"disallowed\"],[[127169,127183],\"valid\",[],\"NV8\"],[[127184,127184],\"disallowed\"],[[127185,127199],\"valid\",[],\"NV8\"],[[127200,127221],\"valid\",[],\"NV8\"],[[127222,127231],\"disallowed\"],[[127232,127232],\"disallowed\"],[[127233,127233],\"disallowed_STD3_mapped\",[48,44]],[[127234,127234],\"disallowed_STD3_mapped\",[49,44]],[[127235,127235],\"disallowed_STD3_mapped\",[50,44]],[[127236,127236],\"disallowed_STD3_mapped\",[51,44]],[[127237,127237],\"disallowed_STD3_mapped\",[52,44]],[[127238,127238],\"disallowed_STD3_mapped\",[53,44]],[[127239,127239],\"disallowed_STD3_mapped\",[54,44]],[[127240,127240],\"disallowed_STD3_mapped\",[55,44]],[[127241,127241],\"disallowed_STD3_mapped\",[56,44]],[[127242,127242],\"disallowed_STD3_mapped\",[57,44]],[[127243,127244],\"valid\",[],\"NV8\"],[[127245,127247],\"disallowed\"],[[127248,127248],\"disallowed_STD3_mapped\",[40,97,41]],[[127249,127249],\"disallowed_STD3_mapped\",[40,98,41]],[[127250,127250],\"disallowed_STD3_mapped\",[40,99,41]],[[127251,127251],\"disallowed_STD3_mapped\",[40,100,41]],[[127252,127252],\"disallowed_STD3_mapped\",[40,101,41]],[[127253,127253],\"disallowed_STD3_mapped\",[40,102,41]],[[127254,127254],\"disallowed_STD3_mapped\",[40,103,41]],[[127255,127255],\"disallowed_STD3_mapped\",[40,104,41]],[[127256,127256],\"disallowed_STD3_mapped\",[40,105,41]],[[127257,127257],\"disallowed_STD3_mapped\",[40,106,41]],[[127258,127258],\"disallowed_STD3_mapped\",[40,107,41]],[[127259,127259],\"disallowed_STD3_mapped\",[40,108,41]],[[127260,127260],\"disallowed_STD3_mapped\",[40,109,41]],[[127261,127261],\"disallowed_STD3_mapped\",[40,110,41]],[[127262,127262],\"disallowed_STD3_mapped\",[40,111,41]],[[127263,127263],\"disallowed_STD3_mapped\",[40,112,41]],[[127264,127264],\"disallowed_STD3_mapped\",[40,113,41]],[[127265,127265],\"disallowed_STD3_mapped\",[40,114,41]],[[127266,127266],\"disallowed_STD3_mapped\",[40,115,41]],[[127267,127267],\"disallowed_STD3_mapped\",[40,116,41]],[[127268,127268],\"disallowed_STD3_mapped\",[40,117,41]],[[127269,127269],\"disallowed_STD3_mapped\",[40,118,41]],[[127270,127270],\"disallowed_STD3_mapped\",[40,119,41]],[[127271,127271],\"disallowed_STD3_mapped\",[40,120,41]],[[127272,127272],\"disallowed_STD3_mapped\",[40,121,41]],[[127273,127273],\"disallowed_STD3_mapped\",[40,122,41]],[[127274,127274],\"mapped\",[12308,115,12309]],[[127275,127275],\"mapped\",[99]],[[127276,127276],\"mapped\",[114]],[[127277,127277],\"mapped\",[99,100]],[[127278,127278],\"mapped\",[119,122]],[[127279,127279],\"disallowed\"],[[127280,127280],\"mapped\",[97]],[[127281,127281],\"mapped\",[98]],[[127282,127282],\"mapped\",[99]],[[127283,127283],\"mapped\",[100]],[[127284,127284],\"mapped\",[101]],[[127285,127285],\"mapped\",[102]],[[127286,127286],\"mapped\",[103]],[[127287,127287],\"mapped\",[104]],[[127288,127288],\"mapped\",[105]],[[127289,127289],\"mapped\",[106]],[[127290,127290],\"mapped\",[107]],[[127291,127291],\"mapped\",[108]],[[127292,127292],\"mapped\",[109]],[[127293,127293],\"mapped\",[110]],[[127294,127294],\"mapped\",[111]],[[127295,127295],\"mapped\",[112]],[[127296,127296],\"mapped\",[113]],[[127297,127297],\"mapped\",[114]],[[127298,127298],\"mapped\",[115]],[[127299,127299],\"mapped\",[116]],[[127300,127300],\"mapped\",[117]],[[127301,127301],\"mapped\",[118]],[[127302,127302],\"mapped\",[119]],[[127303,127303],\"mapped\",[120]],[[127304,127304],\"mapped\",[121]],[[127305,127305],\"mapped\",[122]],[[127306,127306],\"mapped\",[104,118]],[[127307,127307],\"mapped\",[109,118]],[[127308,127308],\"mapped\",[115,100]],[[127309,127309],\"mapped\",[115,115]],[[127310,127310],\"mapped\",[112,112,118]],[[127311,127311],\"mapped\",[119,99]],[[127312,127318],\"valid\",[],\"NV8\"],[[127319,127319],\"valid\",[],\"NV8\"],[[127320,127326],\"valid\",[],\"NV8\"],[[127327,127327],\"valid\",[],\"NV8\"],[[127328,127337],\"valid\",[],\"NV8\"],[[127338,127338],\"mapped\",[109,99]],[[127339,127339],\"mapped\",[109,100]],[[127340,127343],\"disallowed\"],[[127344,127352],\"valid\",[],\"NV8\"],[[127353,127353],\"valid\",[],\"NV8\"],[[127354,127354],\"valid\",[],\"NV8\"],[[127355,127356],\"valid\",[],\"NV8\"],[[127357,127358],\"valid\",[],\"NV8\"],[[127359,127359],\"valid\",[],\"NV8\"],[[127360,127369],\"valid\",[],\"NV8\"],[[127370,127373],\"valid\",[],\"NV8\"],[[127374,127375],\"valid\",[],\"NV8\"],[[127376,127376],\"mapped\",[100,106]],[[127377,127386],\"valid\",[],\"NV8\"],[[127387,127461],\"disallowed\"],[[127462,127487],\"valid\",[],\"NV8\"],[[127488,127488],\"mapped\",[12411,12363]],[[127489,127489],\"mapped\",[12467,12467]],[[127490,127490],\"mapped\",[12469]],[[127491,127503],\"disallowed\"],[[127504,127504],\"mapped\",[25163]],[[127505,127505],\"mapped\",[23383]],[[127506,127506],\"mapped\",[21452]],[[127507,127507],\"mapped\",[12487]],[[127508,127508],\"mapped\",[20108]],[[127509,127509],\"mapped\",[22810]],[[127510,127510],\"mapped\",[35299]],[[127511,127511],\"mapped\",[22825]],[[127512,127512],\"mapped\",[20132]],[[127513,127513],\"mapped\",[26144]],[[127514,127514],\"mapped\",[28961]],[[127515,127515],\"mapped\",[26009]],[[127516,127516],\"mapped\",[21069]],[[127517,127517],\"mapped\",[24460]],[[127518,127518],\"mapped\",[20877]],[[127519,127519],\"mapped\",[26032]],[[127520,127520],\"mapped\",[21021]],[[127521,127521],\"mapped\",[32066]],[[127522,127522],\"mapped\",[29983]],[[127523,127523],\"mapped\",[36009]],[[127524,127524],\"mapped\",[22768]],[[127525,127525],\"mapped\",[21561]],[[127526,127526],\"mapped\",[28436]],[[127527,127527],\"mapped\",[25237]],[[127528,127528],\"mapped\",[25429]],[[127529,127529],\"mapped\",[19968]],[[127530,127530],\"mapped\",[19977]],[[127531,127531],\"mapped\",[36938]],[[127532,127532],\"mapped\",[24038]],[[127533,127533],\"mapped\",[20013]],[[127534,127534],\"mapped\",[21491]],[[127535,127535],\"mapped\",[25351]],[[127536,127536],\"mapped\",[36208]],[[127537,127537],\"mapped\",[25171]],[[127538,127538],\"mapped\",[31105]],[[127539,127539],\"mapped\",[31354]],[[127540,127540],\"mapped\",[21512]],[[127541,127541],\"mapped\",[28288]],[[127542,127542],\"mapped\",[26377]],[[127543,127543],\"mapped\",[26376]],[[127544,127544],\"mapped\",[30003]],[[127545,127545],\"mapped\",[21106]],[[127546,127546],\"mapped\",[21942]],[[127547,127551],\"disallowed\"],[[127552,127552],\"mapped\",[12308,26412,12309]],[[127553,127553],\"mapped\",[12308,19977,12309]],[[127554,127554],\"mapped\",[12308,20108,12309]],[[127555,127555],\"mapped\",[12308,23433,12309]],[[127556,127556],\"mapped\",[12308,28857,12309]],[[127557,127557],\"mapped\",[12308,25171,12309]],[[127558,127558],\"mapped\",[12308,30423,12309]],[[127559,127559],\"mapped\",[12308,21213,12309]],[[127560,127560],\"mapped\",[12308,25943,12309]],[[127561,127567],\"disallowed\"],[[127568,127568],\"mapped\",[24471]],[[127569,127569],\"mapped\",[21487]],[[127570,127743],\"disallowed\"],[[127744,127776],\"valid\",[],\"NV8\"],[[127777,127788],\"valid\",[],\"NV8\"],[[127789,127791],\"valid\",[],\"NV8\"],[[127792,127797],\"valid\",[],\"NV8\"],[[127798,127798],\"valid\",[],\"NV8\"],[[127799,127868],\"valid\",[],\"NV8\"],[[127869,127869],\"valid\",[],\"NV8\"],[[127870,127871],\"valid\",[],\"NV8\"],[[127872,127891],\"valid\",[],\"NV8\"],[[127892,127903],\"valid\",[],\"NV8\"],[[127904,127940],\"valid\",[],\"NV8\"],[[127941,127941],\"valid\",[],\"NV8\"],[[127942,127946],\"valid\",[],\"NV8\"],[[127947,127950],\"valid\",[],\"NV8\"],[[127951,127955],\"valid\",[],\"NV8\"],[[127956,127967],\"valid\",[],\"NV8\"],[[127968,127984],\"valid\",[],\"NV8\"],[[127985,127991],\"valid\",[],\"NV8\"],[[127992,127999],\"valid\",[],\"NV8\"],[[128000,128062],\"valid\",[],\"NV8\"],[[128063,128063],\"valid\",[],\"NV8\"],[[128064,128064],\"valid\",[],\"NV8\"],[[128065,128065],\"valid\",[],\"NV8\"],[[128066,128247],\"valid\",[],\"NV8\"],[[128248,128248],\"valid\",[],\"NV8\"],[[128249,128252],\"valid\",[],\"NV8\"],[[128253,128254],\"valid\",[],\"NV8\"],[[128255,128255],\"valid\",[],\"NV8\"],[[128256,128317],\"valid\",[],\"NV8\"],[[128318,128319],\"valid\",[],\"NV8\"],[[128320,128323],\"valid\",[],\"NV8\"],[[128324,128330],\"valid\",[],\"NV8\"],[[128331,128335],\"valid\",[],\"NV8\"],[[128336,128359],\"valid\",[],\"NV8\"],[[128360,128377],\"valid\",[],\"NV8\"],[[128378,128378],\"disallowed\"],[[128379,128419],\"valid\",[],\"NV8\"],[[128420,128420],\"disallowed\"],[[128421,128506],\"valid\",[],\"NV8\"],[[128507,128511],\"valid\",[],\"NV8\"],[[128512,128512],\"valid\",[],\"NV8\"],[[128513,128528],\"valid\",[],\"NV8\"],[[128529,128529],\"valid\",[],\"NV8\"],[[128530,128532],\"valid\",[],\"NV8\"],[[128533,128533],\"valid\",[],\"NV8\"],[[128534,128534],\"valid\",[],\"NV8\"],[[128535,128535],\"valid\",[],\"NV8\"],[[128536,128536],\"valid\",[],\"NV8\"],[[128537,128537],\"valid\",[],\"NV8\"],[[128538,128538],\"valid\",[],\"NV8\"],[[128539,128539],\"valid\",[],\"NV8\"],[[128540,128542],\"valid\",[],\"NV8\"],[[128543,128543],\"valid\",[],\"NV8\"],[[128544,128549],\"valid\",[],\"NV8\"],[[128550,128551],\"valid\",[],\"NV8\"],[[128552,128555],\"valid\",[],\"NV8\"],[[128556,128556],\"valid\",[],\"NV8\"],[[128557,128557],\"valid\",[],\"NV8\"],[[128558,128559],\"valid\",[],\"NV8\"],[[128560,128563],\"valid\",[],\"NV8\"],[[128564,128564],\"valid\",[],\"NV8\"],[[128565,128576],\"valid\",[],\"NV8\"],[[128577,128578],\"valid\",[],\"NV8\"],[[128579,128580],\"valid\",[],\"NV8\"],[[128581,128591],\"valid\",[],\"NV8\"],[[128592,128639],\"valid\",[],\"NV8\"],[[128640,128709],\"valid\",[],\"NV8\"],[[128710,128719],\"valid\",[],\"NV8\"],[[128720,128720],\"valid\",[],\"NV8\"],[[128721,128735],\"disallowed\"],[[128736,128748],\"valid\",[],\"NV8\"],[[128749,128751],\"disallowed\"],[[128752,128755],\"valid\",[],\"NV8\"],[[128756,128767],\"disallowed\"],[[128768,128883],\"valid\",[],\"NV8\"],[[128884,128895],\"disallowed\"],[[128896,128980],\"valid\",[],\"NV8\"],[[128981,129023],\"disallowed\"],[[129024,129035],\"valid\",[],\"NV8\"],[[129036,129039],\"disallowed\"],[[129040,129095],\"valid\",[],\"NV8\"],[[129096,129103],\"disallowed\"],[[129104,129113],\"valid\",[],\"NV8\"],[[129114,129119],\"disallowed\"],[[129120,129159],\"valid\",[],\"NV8\"],[[129160,129167],\"disallowed\"],[[129168,129197],\"valid\",[],\"NV8\"],[[129198,129295],\"disallowed\"],[[129296,129304],\"valid\",[],\"NV8\"],[[129305,129407],\"disallowed\"],[[129408,129412],\"valid\",[],\"NV8\"],[[129413,129471],\"disallowed\"],[[129472,129472],\"valid\",[],\"NV8\"],[[129473,131069],\"disallowed\"],[[131070,131071],\"disallowed\"],[[131072,173782],\"valid\"],[[173783,173823],\"disallowed\"],[[173824,177972],\"valid\"],[[177973,177983],\"disallowed\"],[[177984,178205],\"valid\"],[[178206,178207],\"disallowed\"],[[178208,183969],\"valid\"],[[183970,194559],\"disallowed\"],[[194560,194560],\"mapped\",[20029]],[[194561,194561],\"mapped\",[20024]],[[194562,194562],\"mapped\",[20033]],[[194563,194563],\"mapped\",[131362]],[[194564,194564],\"mapped\",[20320]],[[194565,194565],\"mapped\",[20398]],[[194566,194566],\"mapped\",[20411]],[[194567,194567],\"mapped\",[20482]],[[194568,194568],\"mapped\",[20602]],[[194569,194569],\"mapped\",[20633]],[[194570,194570],\"mapped\",[20711]],[[194571,194571],\"mapped\",[20687]],[[194572,194572],\"mapped\",[13470]],[[194573,194573],\"mapped\",[132666]],[[194574,194574],\"mapped\",[20813]],[[194575,194575],\"mapped\",[20820]],[[194576,194576],\"mapped\",[20836]],[[194577,194577],\"mapped\",[20855]],[[194578,194578],\"mapped\",[132380]],[[194579,194579],\"mapped\",[13497]],[[194580,194580],\"mapped\",[20839]],[[194581,194581],\"mapped\",[20877]],[[194582,194582],\"mapped\",[132427]],[[194583,194583],\"mapped\",[20887]],[[194584,194584],\"mapped\",[20900]],[[194585,194585],\"mapped\",[20172]],[[194586,194586],\"mapped\",[20908]],[[194587,194587],\"mapped\",[20917]],[[194588,194588],\"mapped\",[168415]],[[194589,194589],\"mapped\",[20981]],[[194590,194590],\"mapped\",[20995]],[[194591,194591],\"mapped\",[13535]],[[194592,194592],\"mapped\",[21051]],[[194593,194593],\"mapped\",[21062]],[[194594,194594],\"mapped\",[21106]],[[194595,194595],\"mapped\",[21111]],[[194596,194596],\"mapped\",[13589]],[[194597,194597],\"mapped\",[21191]],[[194598,194598],\"mapped\",[21193]],[[194599,194599],\"mapped\",[21220]],[[194600,194600],\"mapped\",[21242]],[[194601,194601],\"mapped\",[21253]],[[194602,194602],\"mapped\",[21254]],[[194603,194603],\"mapped\",[21271]],[[194604,194604],\"mapped\",[21321]],[[194605,194605],\"mapped\",[21329]],[[194606,194606],\"mapped\",[21338]],[[194607,194607],\"mapped\",[21363]],[[194608,194608],\"mapped\",[21373]],[[194609,194611],\"mapped\",[21375]],[[194612,194612],\"mapped\",[133676]],[[194613,194613],\"mapped\",[28784]],[[194614,194614],\"mapped\",[21450]],[[194615,194615],\"mapped\",[21471]],[[194616,194616],\"mapped\",[133987]],[[194617,194617],\"mapped\",[21483]],[[194618,194618],\"mapped\",[21489]],[[194619,194619],\"mapped\",[21510]],[[194620,194620],\"mapped\",[21662]],[[194621,194621],\"mapped\",[21560]],[[194622,194622],\"mapped\",[21576]],[[194623,194623],\"mapped\",[21608]],[[194624,194624],\"mapped\",[21666]],[[194625,194625],\"mapped\",[21750]],[[194626,194626],\"mapped\",[21776]],[[194627,194627],\"mapped\",[21843]],[[194628,194628],\"mapped\",[21859]],[[194629,194630],\"mapped\",[21892]],[[194631,194631],\"mapped\",[21913]],[[194632,194632],\"mapped\",[21931]],[[194633,194633],\"mapped\",[21939]],[[194634,194634],\"mapped\",[21954]],[[194635,194635],\"mapped\",[22294]],[[194636,194636],\"mapped\",[22022]],[[194637,194637],\"mapped\",[22295]],[[194638,194638],\"mapped\",[22097]],[[194639,194639],\"mapped\",[22132]],[[194640,194640],\"mapped\",[20999]],[[194641,194641],\"mapped\",[22766]],[[194642,194642],\"mapped\",[22478]],[[194643,194643],\"mapped\",[22516]],[[194644,194644],\"mapped\",[22541]],[[194645,194645],\"mapped\",[22411]],[[194646,194646],\"mapped\",[22578]],[[194647,194647],\"mapped\",[22577]],[[194648,194648],\"mapped\",[22700]],[[194649,194649],\"mapped\",[136420]],[[194650,194650],\"mapped\",[22770]],[[194651,194651],\"mapped\",[22775]],[[194652,194652],\"mapped\",[22790]],[[194653,194653],\"mapped\",[22810]],[[194654,194654],\"mapped\",[22818]],[[194655,194655],\"mapped\",[22882]],[[194656,194656],\"mapped\",[136872]],[[194657,194657],\"mapped\",[136938]],[[194658,194658],\"mapped\",[23020]],[[194659,194659],\"mapped\",[23067]],[[194660,194660],\"mapped\",[23079]],[[194661,194661],\"mapped\",[23000]],[[194662,194662],\"mapped\",[23142]],[[194663,194663],\"mapped\",[14062]],[[194664,194664],\"disallowed\"],[[194665,194665],\"mapped\",[23304]],[[194666,194667],\"mapped\",[23358]],[[194668,194668],\"mapped\",[137672]],[[194669,194669],\"mapped\",[23491]],[[194670,194670],\"mapped\",[23512]],[[194671,194671],\"mapped\",[23527]],[[194672,194672],\"mapped\",[23539]],[[194673,194673],\"mapped\",[138008]],[[194674,194674],\"mapped\",[23551]],[[194675,194675],\"mapped\",[23558]],[[194676,194676],\"disallowed\"],[[194677,194677],\"mapped\",[23586]],[[194678,194678],\"mapped\",[14209]],[[194679,194679],\"mapped\",[23648]],[[194680,194680],\"mapped\",[23662]],[[194681,194681],\"mapped\",[23744]],[[194682,194682],\"mapped\",[23693]],[[194683,194683],\"mapped\",[138724]],[[194684,194684],\"mapped\",[23875]],[[194685,194685],\"mapped\",[138726]],[[194686,194686],\"mapped\",[23918]],[[194687,194687],\"mapped\",[23915]],[[194688,194688],\"mapped\",[23932]],[[194689,194689],\"mapped\",[24033]],[[194690,194690],\"mapped\",[24034]],[[194691,194691],\"mapped\",[14383]],[[194692,194692],\"mapped\",[24061]],[[194693,194693],\"mapped\",[24104]],[[194694,194694],\"mapped\",[24125]],[[194695,194695],\"mapped\",[24169]],[[194696,194696],\"mapped\",[14434]],[[194697,194697],\"mapped\",[139651]],[[194698,194698],\"mapped\",[14460]],[[194699,194699],\"mapped\",[24240]],[[194700,194700],\"mapped\",[24243]],[[194701,194701],\"mapped\",[24246]],[[194702,194702],\"mapped\",[24266]],[[194703,194703],\"mapped\",[172946]],[[194704,194704],\"mapped\",[24318]],[[194705,194706],\"mapped\",[140081]],[[194707,194707],\"mapped\",[33281]],[[194708,194709],\"mapped\",[24354]],[[194710,194710],\"mapped\",[14535]],[[194711,194711],\"mapped\",[144056]],[[194712,194712],\"mapped\",[156122]],[[194713,194713],\"mapped\",[24418]],[[194714,194714],\"mapped\",[24427]],[[194715,194715],\"mapped\",[14563]],[[194716,194716],\"mapped\",[24474]],[[194717,194717],\"mapped\",[24525]],[[194718,194718],\"mapped\",[24535]],[[194719,194719],\"mapped\",[24569]],[[194720,194720],\"mapped\",[24705]],[[194721,194721],\"mapped\",[14650]],[[194722,194722],\"mapped\",[14620]],[[194723,194723],\"mapped\",[24724]],[[194724,194724],\"mapped\",[141012]],[[194725,194725],\"mapped\",[24775]],[[194726,194726],\"mapped\",[24904]],[[194727,194727],\"mapped\",[24908]],[[194728,194728],\"mapped\",[24910]],[[194729,194729],\"mapped\",[24908]],[[194730,194730],\"mapped\",[24954]],[[194731,194731],\"mapped\",[24974]],[[194732,194732],\"mapped\",[25010]],[[194733,194733],\"mapped\",[24996]],[[194734,194734],\"mapped\",[25007]],[[194735,194735],\"mapped\",[25054]],[[194736,194736],\"mapped\",[25074]],[[194737,194737],\"mapped\",[25078]],[[194738,194738],\"mapped\",[25104]],[[194739,194739],\"mapped\",[25115]],[[194740,194740],\"mapped\",[25181]],[[194741,194741],\"mapped\",[25265]],[[194742,194742],\"mapped\",[25300]],[[194743,194743],\"mapped\",[25424]],[[194744,194744],\"mapped\",[142092]],[[194745,194745],\"mapped\",[25405]],[[194746,194746],\"mapped\",[25340]],[[194747,194747],\"mapped\",[25448]],[[194748,194748],\"mapped\",[25475]],[[194749,194749],\"mapped\",[25572]],[[194750,194750],\"mapped\",[142321]],[[194751,194751],\"mapped\",[25634]],[[194752,194752],\"mapped\",[25541]],[[194753,194753],\"mapped\",[25513]],[[194754,194754],\"mapped\",[14894]],[[194755,194755],\"mapped\",[25705]],[[194756,194756],\"mapped\",[25726]],[[194757,194757],\"mapped\",[25757]],[[194758,194758],\"mapped\",[25719]],[[194759,194759],\"mapped\",[14956]],[[194760,194760],\"mapped\",[25935]],[[194761,194761],\"mapped\",[25964]],[[194762,194762],\"mapped\",[143370]],[[194763,194763],\"mapped\",[26083]],[[194764,194764],\"mapped\",[26360]],[[194765,194765],\"mapped\",[26185]],[[194766,194766],\"mapped\",[15129]],[[194767,194767],\"mapped\",[26257]],[[194768,194768],\"mapped\",[15112]],[[194769,194769],\"mapped\",[15076]],[[194770,194770],\"mapped\",[20882]],[[194771,194771],\"mapped\",[20885]],[[194772,194772],\"mapped\",[26368]],[[194773,194773],\"mapped\",[26268]],[[194774,194774],\"mapped\",[32941]],[[194775,194775],\"mapped\",[17369]],[[194776,194776],\"mapped\",[26391]],[[194777,194777],\"mapped\",[26395]],[[194778,194778],\"mapped\",[26401]],[[194779,194779],\"mapped\",[26462]],[[194780,194780],\"mapped\",[26451]],[[194781,194781],\"mapped\",[144323]],[[194782,194782],\"mapped\",[15177]],[[194783,194783],\"mapped\",[26618]],[[194784,194784],\"mapped\",[26501]],[[194785,194785],\"mapped\",[26706]],[[194786,194786],\"mapped\",[26757]],[[194787,194787],\"mapped\",[144493]],[[194788,194788],\"mapped\",[26766]],[[194789,194789],\"mapped\",[26655]],[[194790,194790],\"mapped\",[26900]],[[194791,194791],\"mapped\",[15261]],[[194792,194792],\"mapped\",[26946]],[[194793,194793],\"mapped\",[27043]],[[194794,194794],\"mapped\",[27114]],[[194795,194795],\"mapped\",[27304]],[[194796,194796],\"mapped\",[145059]],[[194797,194797],\"mapped\",[27355]],[[194798,194798],\"mapped\",[15384]],[[194799,194799],\"mapped\",[27425]],[[194800,194800],\"mapped\",[145575]],[[194801,194801],\"mapped\",[27476]],[[194802,194802],\"mapped\",[15438]],[[194803,194803],\"mapped\",[27506]],[[194804,194804],\"mapped\",[27551]],[[194805,194805],\"mapped\",[27578]],[[194806,194806],\"mapped\",[27579]],[[194807,194807],\"mapped\",[146061]],[[194808,194808],\"mapped\",[138507]],[[194809,194809],\"mapped\",[146170]],[[194810,194810],\"mapped\",[27726]],[[194811,194811],\"mapped\",[146620]],[[194812,194812],\"mapped\",[27839]],[[194813,194813],\"mapped\",[27853]],[[194814,194814],\"mapped\",[27751]],[[194815,194815],\"mapped\",[27926]],[[194816,194816],\"mapped\",[27966]],[[194817,194817],\"mapped\",[28023]],[[194818,194818],\"mapped\",[27969]],[[194819,194819],\"mapped\",[28009]],[[194820,194820],\"mapped\",[28024]],[[194821,194821],\"mapped\",[28037]],[[194822,194822],\"mapped\",[146718]],[[194823,194823],\"mapped\",[27956]],[[194824,194824],\"mapped\",[28207]],[[194825,194825],\"mapped\",[28270]],[[194826,194826],\"mapped\",[15667]],[[194827,194827],\"mapped\",[28363]],[[194828,194828],\"mapped\",[28359]],[[194829,194829],\"mapped\",[147153]],[[194830,194830],\"mapped\",[28153]],[[194831,194831],\"mapped\",[28526]],[[194832,194832],\"mapped\",[147294]],[[194833,194833],\"mapped\",[147342]],[[194834,194834],\"mapped\",[28614]],[[194835,194835],\"mapped\",[28729]],[[194836,194836],\"mapped\",[28702]],[[194837,194837],\"mapped\",[28699]],[[194838,194838],\"mapped\",[15766]],[[194839,194839],\"mapped\",[28746]],[[194840,194840],\"mapped\",[28797]],[[194841,194841],\"mapped\",[28791]],[[194842,194842],\"mapped\",[28845]],[[194843,194843],\"mapped\",[132389]],[[194844,194844],\"mapped\",[28997]],[[194845,194845],\"mapped\",[148067]],[[194846,194846],\"mapped\",[29084]],[[194847,194847],\"disallowed\"],[[194848,194848],\"mapped\",[29224]],[[194849,194849],\"mapped\",[29237]],[[194850,194850],\"mapped\",[29264]],[[194851,194851],\"mapped\",[149000]],[[194852,194852],\"mapped\",[29312]],[[194853,194853],\"mapped\",[29333]],[[194854,194854],\"mapped\",[149301]],[[194855,194855],\"mapped\",[149524]],[[194856,194856],\"mapped\",[29562]],[[194857,194857],\"mapped\",[29579]],[[194858,194858],\"mapped\",[16044]],[[194859,194859],\"mapped\",[29605]],[[194860,194861],\"mapped\",[16056]],[[194862,194862],\"mapped\",[29767]],[[194863,194863],\"mapped\",[29788]],[[194864,194864],\"mapped\",[29809]],[[194865,194865],\"mapped\",[29829]],[[194866,194866],\"mapped\",[29898]],[[194867,194867],\"mapped\",[16155]],[[194868,194868],\"mapped\",[29988]],[[194869,194869],\"mapped\",[150582]],[[194870,194870],\"mapped\",[30014]],[[194871,194871],\"mapped\",[150674]],[[194872,194872],\"mapped\",[30064]],[[194873,194873],\"mapped\",[139679]],[[194874,194874],\"mapped\",[30224]],[[194875,194875],\"mapped\",[151457]],[[194876,194876],\"mapped\",[151480]],[[194877,194877],\"mapped\",[151620]],[[194878,194878],\"mapped\",[16380]],[[194879,194879],\"mapped\",[16392]],[[194880,194880],\"mapped\",[30452]],[[194881,194881],\"mapped\",[151795]],[[194882,194882],\"mapped\",[151794]],[[194883,194883],\"mapped\",[151833]],[[194884,194884],\"mapped\",[151859]],[[194885,194885],\"mapped\",[30494]],[[194886,194887],\"mapped\",[30495]],[[194888,194888],\"mapped\",[30538]],[[194889,194889],\"mapped\",[16441]],[[194890,194890],\"mapped\",[30603]],[[194891,194891],\"mapped\",[16454]],[[194892,194892],\"mapped\",[16534]],[[194893,194893],\"mapped\",[152605]],[[194894,194894],\"mapped\",[30798]],[[194895,194895],\"mapped\",[30860]],[[194896,194896],\"mapped\",[30924]],[[194897,194897],\"mapped\",[16611]],[[194898,194898],\"mapped\",[153126]],[[194899,194899],\"mapped\",[31062]],[[194900,194900],\"mapped\",[153242]],[[194901,194901],\"mapped\",[153285]],[[194902,194902],\"mapped\",[31119]],[[194903,194903],\"mapped\",[31211]],[[194904,194904],\"mapped\",[16687]],[[194905,194905],\"mapped\",[31296]],[[194906,194906],\"mapped\",[31306]],[[194907,194907],\"mapped\",[31311]],[[194908,194908],\"mapped\",[153980]],[[194909,194910],\"mapped\",[154279]],[[194911,194911],\"disallowed\"],[[194912,194912],\"mapped\",[16898]],[[194913,194913],\"mapped\",[154539]],[[194914,194914],\"mapped\",[31686]],[[194915,194915],\"mapped\",[31689]],[[194916,194916],\"mapped\",[16935]],[[194917,194917],\"mapped\",[154752]],[[194918,194918],\"mapped\",[31954]],[[194919,194919],\"mapped\",[17056]],[[194920,194920],\"mapped\",[31976]],[[194921,194921],\"mapped\",[31971]],[[194922,194922],\"mapped\",[32000]],[[194923,194923],\"mapped\",[155526]],[[194924,194924],\"mapped\",[32099]],[[194925,194925],\"mapped\",[17153]],[[194926,194926],\"mapped\",[32199]],[[194927,194927],\"mapped\",[32258]],[[194928,194928],\"mapped\",[32325]],[[194929,194929],\"mapped\",[17204]],[[194930,194930],\"mapped\",[156200]],[[194931,194931],\"mapped\",[156231]],[[194932,194932],\"mapped\",[17241]],[[194933,194933],\"mapped\",[156377]],[[194934,194934],\"mapped\",[32634]],[[194935,194935],\"mapped\",[156478]],[[194936,194936],\"mapped\",[32661]],[[194937,194937],\"mapped\",[32762]],[[194938,194938],\"mapped\",[32773]],[[194939,194939],\"mapped\",[156890]],[[194940,194940],\"mapped\",[156963]],[[194941,194941],\"mapped\",[32864]],[[194942,194942],\"mapped\",[157096]],[[194943,194943],\"mapped\",[32880]],[[194944,194944],\"mapped\",[144223]],[[194945,194945],\"mapped\",[17365]],[[194946,194946],\"mapped\",[32946]],[[194947,194947],\"mapped\",[33027]],[[194948,194948],\"mapped\",[17419]],[[194949,194949],\"mapped\",[33086]],[[194950,194950],\"mapped\",[23221]],[[194951,194951],\"mapped\",[157607]],[[194952,194952],\"mapped\",[157621]],[[194953,194953],\"mapped\",[144275]],[[194954,194954],\"mapped\",[144284]],[[194955,194955],\"mapped\",[33281]],[[194956,194956],\"mapped\",[33284]],[[194957,194957],\"mapped\",[36766]],[[194958,194958],\"mapped\",[17515]],[[194959,194959],\"mapped\",[33425]],[[194960,194960],\"mapped\",[33419]],[[194961,194961],\"mapped\",[33437]],[[194962,194962],\"mapped\",[21171]],[[194963,194963],\"mapped\",[33457]],[[194964,194964],\"mapped\",[33459]],[[194965,194965],\"mapped\",[33469]],[[194966,194966],\"mapped\",[33510]],[[194967,194967],\"mapped\",[158524]],[[194968,194968],\"mapped\",[33509]],[[194969,194969],\"mapped\",[33565]],[[194970,194970],\"mapped\",[33635]],[[194971,194971],\"mapped\",[33709]],[[194972,194972],\"mapped\",[33571]],[[194973,194973],\"mapped\",[33725]],[[194974,194974],\"mapped\",[33767]],[[194975,194975],\"mapped\",[33879]],[[194976,194976],\"mapped\",[33619]],[[194977,194977],\"mapped\",[33738]],[[194978,194978],\"mapped\",[33740]],[[194979,194979],\"mapped\",[33756]],[[194980,194980],\"mapped\",[158774]],[[194981,194981],\"mapped\",[159083]],[[194982,194982],\"mapped\",[158933]],[[194983,194983],\"mapped\",[17707]],[[194984,194984],\"mapped\",[34033]],[[194985,194985],\"mapped\",[34035]],[[194986,194986],\"mapped\",[34070]],[[194987,194987],\"mapped\",[160714]],[[194988,194988],\"mapped\",[34148]],[[194989,194989],\"mapped\",[159532]],[[194990,194990],\"mapped\",[17757]],[[194991,194991],\"mapped\",[17761]],[[194992,194992],\"mapped\",[159665]],[[194993,194993],\"mapped\",[159954]],[[194994,194994],\"mapped\",[17771]],[[194995,194995],\"mapped\",[34384]],[[194996,194996],\"mapped\",[34396]],[[194997,194997],\"mapped\",[34407]],[[194998,194998],\"mapped\",[34409]],[[194999,194999],\"mapped\",[34473]],[[195000,195000],\"mapped\",[34440]],[[195001,195001],\"mapped\",[34574]],[[195002,195002],\"mapped\",[34530]],[[195003,195003],\"mapped\",[34681]],[[195004,195004],\"mapped\",[34600]],[[195005,195005],\"mapped\",[34667]],[[195006,195006],\"mapped\",[34694]],[[195007,195007],\"disallowed\"],[[195008,195008],\"mapped\",[34785]],[[195009,195009],\"mapped\",[34817]],[[195010,195010],\"mapped\",[17913]],[[195011,195011],\"mapped\",[34912]],[[195012,195012],\"mapped\",[34915]],[[195013,195013],\"mapped\",[161383]],[[195014,195014],\"mapped\",[35031]],[[195015,195015],\"mapped\",[35038]],[[195016,195016],\"mapped\",[17973]],[[195017,195017],\"mapped\",[35066]],[[195018,195018],\"mapped\",[13499]],[[195019,195019],\"mapped\",[161966]],[[195020,195020],\"mapped\",[162150]],[[195021,195021],\"mapped\",[18110]],[[195022,195022],\"mapped\",[18119]],[[195023,195023],\"mapped\",[35488]],[[195024,195024],\"mapped\",[35565]],[[195025,195025],\"mapped\",[35722]],[[195026,195026],\"mapped\",[35925]],[[195027,195027],\"mapped\",[162984]],[[195028,195028],\"mapped\",[36011]],[[195029,195029],\"mapped\",[36033]],[[195030,195030],\"mapped\",[36123]],[[195031,195031],\"mapped\",[36215]],[[195032,195032],\"mapped\",[163631]],[[195033,195033],\"mapped\",[133124]],[[195034,195034],\"mapped\",[36299]],[[195035,195035],\"mapped\",[36284]],[[195036,195036],\"mapped\",[36336]],[[195037,195037],\"mapped\",[133342]],[[195038,195038],\"mapped\",[36564]],[[195039,195039],\"mapped\",[36664]],[[195040,195040],\"mapped\",[165330]],[[195041,195041],\"mapped\",[165357]],[[195042,195042],\"mapped\",[37012]],[[195043,195043],\"mapped\",[37105]],[[195044,195044],\"mapped\",[37137]],[[195045,195045],\"mapped\",[165678]],[[195046,195046],\"mapped\",[37147]],[[195047,195047],\"mapped\",[37432]],[[195048,195048],\"mapped\",[37591]],[[195049,195049],\"mapped\",[37592]],[[195050,195050],\"mapped\",[37500]],[[195051,195051],\"mapped\",[37881]],[[195052,195052],\"mapped\",[37909]],[[195053,195053],\"mapped\",[166906]],[[195054,195054],\"mapped\",[38283]],[[195055,195055],\"mapped\",[18837]],[[195056,195056],\"mapped\",[38327]],[[195057,195057],\"mapped\",[167287]],[[195058,195058],\"mapped\",[18918]],[[195059,195059],\"mapped\",[38595]],[[195060,195060],\"mapped\",[23986]],[[195061,195061],\"mapped\",[38691]],[[195062,195062],\"mapped\",[168261]],[[195063,195063],\"mapped\",[168474]],[[195064,195064],\"mapped\",[19054]],[[195065,195065],\"mapped\",[19062]],[[195066,195066],\"mapped\",[38880]],[[195067,195067],\"mapped\",[168970]],[[195068,195068],\"mapped\",[19122]],[[195069,195069],\"mapped\",[169110]],[[195070,195071],\"mapped\",[38923]],[[195072,195072],\"mapped\",[38953]],[[195073,195073],\"mapped\",[169398]],[[195074,195074],\"mapped\",[39138]],[[195075,195075],\"mapped\",[19251]],[[195076,195076],\"mapped\",[39209]],[[195077,195077],\"mapped\",[39335]],[[195078,195078],\"mapped\",[39362]],[[195079,195079],\"mapped\",[39422]],[[195080,195080],\"mapped\",[19406]],[[195081,195081],\"mapped\",[170800]],[[195082,195082],\"mapped\",[39698]],[[195083,195083],\"mapped\",[40000]],[[195084,195084],\"mapped\",[40189]],[[195085,195085],\"mapped\",[19662]],[[195086,195086],\"mapped\",[19693]],[[195087,195087],\"mapped\",[40295]],[[195088,195088],\"mapped\",[172238]],[[195089,195089],\"mapped\",[19704]],[[195090,195090],\"mapped\",[172293]],[[195091,195091],\"mapped\",[172558]],[[195092,195092],\"mapped\",[172689]],[[195093,195093],\"mapped\",[40635]],[[195094,195094],\"mapped\",[19798]],[[195095,195095],\"mapped\",[40697]],[[195096,195096],\"mapped\",[40702]],[[195097,195097],\"mapped\",[40709]],[[195098,195098],\"mapped\",[40719]],[[195099,195099],\"mapped\",[40726]],[[195100,195100],\"mapped\",[40763]],[[195101,195101],\"mapped\",[173568]],[[195102,196605],\"disallowed\"],[[196606,196607],\"disallowed\"],[[196608,262141],\"disallowed\"],[[262142,262143],\"disallowed\"],[[262144,327677],\"disallowed\"],[[327678,327679],\"disallowed\"],[[327680,393213],\"disallowed\"],[[393214,393215],\"disallowed\"],[[393216,458749],\"disallowed\"],[[458750,458751],\"disallowed\"],[[458752,524285],\"disallowed\"],[[524286,524287],\"disallowed\"],[[524288,589821],\"disallowed\"],[[589822,589823],\"disallowed\"],[[589824,655357],\"disallowed\"],[[655358,655359],\"disallowed\"],[[655360,720893],\"disallowed\"],[[720894,720895],\"disallowed\"],[[720896,786429],\"disallowed\"],[[786430,786431],\"disallowed\"],[[786432,851965],\"disallowed\"],[[851966,851967],\"disallowed\"],[[851968,917501],\"disallowed\"],[[917502,917503],\"disallowed\"],[[917504,917504],\"disallowed\"],[[917505,917505],\"disallowed\"],[[917506,917535],\"disallowed\"],[[917536,917631],\"disallowed\"],[[917632,917759],\"disallowed\"],[[917760,917999],\"ignored\"],[[918000,983037],\"disallowed\"],[[983038,983039],\"disallowed\"],[[983040,1048573],\"disallowed\"],[[1048574,1048575],\"disallowed\"],[[1048576,1114109],\"disallowed\"],[[1114110,1114111],\"disallowed\"]]", "\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n", "\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n", "\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n", "\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n", "\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = /<meta.+?charset=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// html4\n\tif (!res && str) {\n\t\tres = /<meta[\\s]+?http-equiv=(['\"])content-type\\1[\\s]+?content=(['\"])(.+?)\\2/i.exec(str);\n\t\tif (!res) {\n\t\t\tres = /<meta[\\s]+?content=(['\"])(.+?)\\1[\\s]+?http-equiv=(['\"])content-type\\3/i.exec(str);\n\t\t\tif (res) {\n\t\t\t\tres.pop(); // drop last quote\n\t\t\t}\n\t\t}\n\n\t\tif (res) {\n\t\t\tres = /charset=(.*)/i.exec(res.pop());\n\t\t}\n\t}\n\n\t// xml\n\tif (!res && str) {\n\t\tres = /<\\?xml.+?encoding=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// found charset\n\tif (res) {\n\t\tcharset = res.pop();\n\n\t\t// prevent decode issues when sites use incorrect encoding\n\t\t// ref: https://hsivonen.fi/encoding-menu/\n\t\tif (charset === 'gb2312' || charset === 'gbk') {\n\t\t\tcharset = 'gb18030';\n\t\t}\n\t}\n\n\t// turn raw buffers into a single utf-8 buffer\n\treturn convert(buffer, 'UTF-8', charset).toString();\n}\n\n/**\n * Detect a URLSearchParams object\n * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143\n *\n * @param Object obj Object to detect by type or brand\n * @return String\n */\nfunction isURLSearchParams(obj) {\n\t// Duck-typing as a necessary condition.\n\tif (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {\n\t\treturn false;\n\t}\n\n\t// Brand-checking and more duck-typing as optional condition.\n\treturn obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';\n}\n\n/**\n * Check if `obj` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} obj\n * @return {boolean}\n */\nfunction isBlob(obj) {\n\treturn typeof obj === 'object' && typeof obj.arrayBuffer === 'function' && typeof obj.type === 'string' && typeof obj.stream === 'function' && typeof obj.constructor === 'function' && typeof obj.constructor.name === 'string' && /^(Blob|File)$/.test(obj.constructor.name) && /^(Blob|File)$/.test(obj[Symbol.toStringTag]);\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @return Mixed\n */\nfunction clone(instance) {\n\tlet p1, p2;\n\tlet body = instance.body;\n\n\t// don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif (body instanceof Stream && typeof body.getBoundary !== 'function') {\n\t\t// tee instance body\n\t\tp1 = new PassThrough();\n\t\tp2 = new PassThrough();\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].body = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n}\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param Mixed instance Any options.body input\n */\nfunction extractContentType(body) {\n\tif (body === null) {\n\t\t// body is null\n\t\treturn null;\n\t} else if (typeof body === 'string') {\n\t\t// body is string\n\t\treturn 'text/plain;charset=UTF-8';\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t} else if (isBlob(body)) {\n\t\t// body is blob\n\t\treturn body.type || null;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn null;\n\t} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\treturn null;\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\treturn null;\n\t} else if (typeof body.getBoundary === 'function') {\n\t\t// detect form data input from form-data module\n\t\treturn `multipart/form-data;boundary=${body.getBoundary()}`;\n\t} else if (body instanceof Stream) {\n\t\t// body is stream\n\t\t// can't really do much about this\n\t\treturn null;\n\t} else {\n\t\t// Body constructor defaults other things to string\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n}\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param Body instance Instance of Body\n * @return Number? Number of bytes, or null if not possible\n */\nfunction getTotalBytes(instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\treturn 0;\n\t} else if (isBlob(body)) {\n\t\treturn body.size;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn body.length;\n\t} else if (body && typeof body.getLengthSync === 'function') {\n\t\t// detect form data input from form-data module\n\t\tif (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x\n\t\tbody.hasKnownLength && body.hasKnownLength()) {\n\t\t\t// 2.x\n\t\t\treturn body.getLengthSync();\n\t\t}\n\t\treturn null;\n\t} else {\n\t\t// body is stream\n\t\treturn null;\n\t}\n}\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param Body instance Instance of Body\n * @return Void\n */\nfunction writeToStream(dest, instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\tdest.end();\n\t} else if (isBlob(body)) {\n\t\tbody.stream().pipe(dest);\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\tdest.write(body);\n\t\tdest.end();\n\t} else {\n\t\t// body is stream\n\t\tbody.pipe(dest);\n\t}\n}\n\n// expose Promise\nBody.Promise = global.Promise;\n\n/**\n * headers.js\n *\n * Headers class offers convenient helpers\n */\n\nconst invalidTokenRegex = /[^\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]/;\nconst invalidHeaderCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/;\n\nfunction validateName(name) {\n\tname = `${name}`;\n\tif (invalidTokenRegex.test(name) || name === '') {\n\t\tthrow new TypeError(`${name} is not a legal HTTP header name`);\n\t}\n}\n\nfunction validateValue(value) {\n\tvalue = `${value}`;\n\tif (invalidHeaderCharRegex.test(value)) {\n\t\tthrow new TypeError(`${value} is not a legal HTTP header value`);\n\t}\n}\n\n/**\n * Find the key in the map object given a header name.\n *\n * Returns undefined if not found.\n *\n * @param String name Header name\n * @return String|Undefined\n */\nfunction find(map, name) {\n\tname = name.toLowerCase();\n\tfor (const key in map) {\n\t\tif (key.toLowerCase() === name) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst MAP = Symbol('map');\nclass Headers {\n\t/**\n * Headers class\n *\n * @param Object headers Response headers\n * @return Void\n */\n\tconstructor() {\n\t\tlet init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence<sequence<ByteString>>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record<ByteString, ByteString>\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nconst isSameProtocol = function isSameProtocol(destination, original) {\n\tconst orig = new URL$1(original).protocol;\n\tconst dest = new URL$1(destination).protocol;\n\n\treturn orig === dest;\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\tdestroyStream(request.body, error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(req, function (err) {\n\t\t\tif (signal && signal.aborted) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (parseInt(process.version.substring(1)) < 14) {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\treq.on('socket', function (s) {\n\t\t\t\ts.addListener('close', function (hadError) {\n\t\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\t\tconst hasDataListener = s.listenerCount('data') > 0;\n\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && hasDataListener && !hadError && !(signal && signal.aborted)) {\n\t\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', err);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.on('end', function () {\n\t\t\t\t\t// some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted.\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tlet socket;\n\n\trequest.on('socket', function (s) {\n\t\tsocket = s;\n\t});\n\n\trequest.on('response', function (response) {\n\t\tconst headers = response.headers;\n\n\t\tif (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) {\n\t\t\tresponse.once('close', function (hadError) {\n\t\t\t\t// tests for socket presence, as in some situations the\n\t\t\t\t// the 'socket' event is not triggered for the request\n\t\t\t\t// (happens in deno), avoids `TypeError`\n\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\tconst hasDataListener = socket && socket.listenerCount('data') > 0;\n\n\t\t\t\tif (hasDataListener && !hadError) {\n\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\terrorCallback(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction destroyStream(stream, err) {\n\tif (stream.destroy) {\n\t\tstream.destroy(err);\n\t} else {\n\t\t// node < 8\n\t\tstream.emit('error', err);\n\t\tstream.end();\n\t}\n}\n\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n", "const nodeFetch = require('node-fetch')\nconst realFetch = nodeFetch.default || nodeFetch\n\nconst fetch = function (url, options) {\n // Support schemaless URIs on the server for parity with the browser.\n // Ex: //github.com/ -> https://github.com/\n if (/^\\/\\//.test(url)) {\n url = 'https:' + url\n }\n return realFetch.call(this, url, options)\n}\n\nfetch.ponyfill = true\n\nmodule.exports = exports = fetch\nexports.fetch = fetch\nexports.Headers = nodeFetch.Headers\nexports.Request = nodeFetch.Request\nexports.Response = nodeFetch.Response\n\n// Needed for TypeScript consumers without esModuleInterop.\nexports.default = fetch\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFetch = void 0;\nconst react_1 = require(\"react\");\nconst media_typer_1 = __importDefault(require(\"media-typer\"));\nconst content_type_1 = __importDefault(require(\"content-type\"));\nconst useCachedPromise_1 = require(\"./useCachedPromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst cross_fetch_1 = require(\"cross-fetch\");\nfunction isJSON(contentTypeHeader) {\n if (contentTypeHeader) {\n const ct = content_type_1.default.parse(contentTypeHeader);\n const mediaType = media_typer_1.default.parse(ct.type);\n if (mediaType.subtype === \"json\") {\n return true;\n }\n if (mediaType.suffix === \"json\") {\n return true;\n }\n if (mediaType.suffix && /\\bjson\\b/i.test(mediaType.suffix)) {\n return true;\n }\n if (mediaType.subtype && /\\bjson\\b/i.test(mediaType.subtype)) {\n return true;\n }\n }\n return false;\n}\nasync function defaultParsing(response) {\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const contentTypeHeader = response.headers.get(\"content-type\");\n if (contentTypeHeader && isJSON(contentTypeHeader)) {\n return await response.json();\n }\n return await response.text();\n}\n/**\n * Fetch the URL and returns the {@link AsyncState} corresponding to the execution of the fetch. The last value will be kept between command runs.\n *\n * @example\n * ```\n * import { useFetch } from '@raycast/utils';\n *\n * export default function Command() {\n * const { isLoading, data, revalidate } = useFetch('https://api.example');\n *\n * return (\n * <Detail\n * isLoading={isLoading}\n * markdown={data}\n * actions={\n * <ActionPanel>\n * <Action title=\"Reload\" onAction={() => revalidate()} />\n * </ActionPanel>\n * }\n * />\n * );\n * };\n * ```\n */\nfunction useFetch(url, options) {\n const { parseResponse, initialData, execute, keepPreviousData, onError, onData, onWillExecute, ...fetchOptions } = options || {};\n const useCachedPromiseOptions = {\n initialData,\n execute,\n keepPreviousData,\n onError,\n onData,\n onWillExecute,\n };\n const parseResponseRef = (0, useLatest_1.useLatest)(parseResponse || defaultParsing);\n const abortable = (0, react_1.useRef)();\n const fn = (0, react_1.useCallback)(async (url, options) => {\n const res = await (0, cross_fetch_1.fetch)(url, { signal: abortable.current?.signal, ...options });\n return (await parseResponseRef.current(res));\n }, [parseResponseRef]);\n // @ts-expect-error T can't be a Promise so it's actually the same\n return (0, useCachedPromise_1.useCachedPromise)(fn, [url, fetchOptions], { ...useCachedPromiseOptions, abortable });\n}\nexports.useFetch = useFetch;\n", "/**\n * This is not the set of all possible signals.\n *\n * It IS, however, the set of all signals that trigger\n * an exit on either Linux or BSD systems. Linux is a\n * superset of the signal names supported on BSD, and\n * the unknown signals just fail to register, so we can\n * catch that easily enough.\n *\n * Windows signals are a different set, since there are\n * signals that terminate Windows processes, but don't\n * terminate (or don't even exist) on Posix systems.\n *\n * Don't bother with SIGKILL. It's uncatchable, which\n * means that we can't fire any callbacks anyway.\n *\n * If a user does happen to register a handler on a non-\n * fatal signal like SIGWINCH or something, and then\n * exit, it'll end up firing `process.emit('exit')`, so\n * the handler will be fired anyway.\n *\n * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n * artificially, inherently leave the process in a\n * state from which it is not safe to try and enter JS\n * listeners.\n */\nexport const signals: NodeJS.Signals[] = []\nsignals.push('SIGHUP', 'SIGINT', 'SIGTERM')\n\nif (process.platform !== 'win32') {\n signals.push(\n 'SIGALRM',\n 'SIGABRT',\n 'SIGVTALRM',\n 'SIGXCPU',\n 'SIGXFSZ',\n 'SIGUSR2',\n 'SIGTRAP',\n 'SIGSYS',\n 'SIGQUIT',\n 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n )\n}\n\nif (process.platform === 'linux') {\n signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT')\n}\n", "// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nimport { signals } from './signals.js'\nexport { signals }\n\n// just a loosened process type so we can do some evil things\ntype ProcessRE = NodeJS.Process & {\n reallyExit: (code?: number | undefined | null) => any\n emit: (ev: string, ...a: any[]) => any\n}\n\nconst processOk = (process: any): process is ProcessRE =>\n !!process &&\n typeof process === 'object' &&\n typeof process.removeListener === 'function' &&\n typeof process.emit === 'function' &&\n typeof process.reallyExit === 'function' &&\n typeof process.listeners === 'function' &&\n typeof process.kill === 'function' &&\n typeof process.pid === 'number' &&\n typeof process.on === 'function'\n\nconst kExitEmitter = Symbol.for('signal-exit emitter')\nconst global: typeof globalThis & { [kExitEmitter]?: Emitter } = globalThis\nconst ObjectDefineProperty = Object.defineProperty.bind(Object)\n\n/**\n * A function that takes an exit code and signal as arguments\n *\n * In the case of signal exits *only*, a return value of true\n * will indicate that the signal is being handled, and we should\n * not synthetically exit with the signal we received. Regardless\n * of the handler return value, the handler is unloaded when an\n * otherwise fatal signal is received, so you get exactly 1 shot\n * at it, unless you add another onExit handler at that point.\n *\n * In the case of numeric code exits, we may already have committed\n * to exiting the process, for example via a fatal exception or\n * unhandled promise rejection, so it is impossible to stop safely.\n */\nexport type Handler = (\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n) => true | void\ntype ExitEvent = 'afterExit' | 'exit'\ntype Emitted = { [k in ExitEvent]: boolean }\ntype Listeners = { [k in ExitEvent]: Handler[] }\n\n// teeny special purpose ee\nclass Emitter {\n emitted: Emitted = {\n afterExit: false,\n exit: false,\n }\n\n listeners: Listeners = {\n afterExit: [],\n exit: [],\n }\n\n count: number = 0\n id: number = Math.random()\n\n constructor() {\n if (global[kExitEmitter]) {\n return global[kExitEmitter]\n }\n ObjectDefineProperty(global, kExitEmitter, {\n value: this,\n writable: false,\n enumerable: false,\n configurable: false,\n })\n }\n\n on(ev: ExitEvent, fn: Handler) {\n this.listeners[ev].push(fn)\n }\n\n removeListener(ev: ExitEvent, fn: Handler) {\n const list = this.listeners[ev]\n const i = list.indexOf(fn)\n /* c8 ignore start */\n if (i === -1) {\n return\n }\n /* c8 ignore stop */\n if (i === 0 && list.length === 1) {\n list.length = 0\n } else {\n list.splice(i, 1)\n }\n }\n\n emit(\n ev: ExitEvent,\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n ): boolean {\n if (this.emitted[ev]) {\n return false\n }\n this.emitted[ev] = true\n let ret: boolean = false\n for (const fn of this.listeners[ev]) {\n ret = fn(code, signal) === true || ret\n }\n if (ev === 'exit') {\n ret = this.emit('afterExit', code, signal) || ret\n }\n return ret\n }\n}\n\nabstract class SignalExitBase {\n abstract onExit(cb: Handler, opts?: { alwaysLast?: boolean }): () => void\n abstract load(): void\n abstract unload(): void\n}\n\nconst signalExitWrap = <T extends SignalExitBase>(handler: T) => {\n return {\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n return handler.onExit(cb, opts)\n },\n load() {\n return handler.load()\n },\n unload() {\n return handler.unload()\n },\n }\n}\n\nclass SignalExitFallback extends SignalExitBase {\n onExit() {\n return () => {}\n }\n load() {}\n unload() {}\n}\n\nclass SignalExit extends SignalExitBase {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n /* c8 ignore start */\n #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP'\n /* c8 ignore stop */\n #emitter = new Emitter()\n #process: ProcessRE\n #originalProcessEmit: ProcessRE['emit']\n #originalProcessReallyExit: ProcessRE['reallyExit']\n\n #sigListeners: { [k in NodeJS.Signals]?: () => void } = {}\n #loaded: boolean = false\n\n constructor(process: ProcessRE) {\n super()\n this.#process = process\n // { <signal>: <listener fn>, ... }\n this.#sigListeners = {}\n for (const sig of signals) {\n this.#sigListeners[sig] = () => {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n const listeners = this.#process.listeners(sig)\n let { count } = this.#emitter\n // This is a workaround for the fact that signal-exit v3 and signal\n // exit v4 are not aware of each other, and each will attempt to let\n // the other handle it, so neither of them do. To correct this, we\n // detect if we're the only handler *except* for previous versions\n // of signal-exit, and increment by the count of listeners it has\n // created.\n /* c8 ignore start */\n const p = process as unknown as {\n __signal_exit_emitter__?: { count: number }\n }\n if (\n typeof p.__signal_exit_emitter__ === 'object' &&\n typeof p.__signal_exit_emitter__.count === 'number'\n ) {\n count += p.__signal_exit_emitter__.count\n }\n /* c8 ignore stop */\n if (listeners.length === count) {\n this.unload()\n const ret = this.#emitter.emit('exit', null, sig)\n /* c8 ignore start */\n const s = sig === 'SIGHUP' ? this.#hupSig : sig\n if (!ret) process.kill(process.pid, s)\n /* c8 ignore stop */\n }\n }\n }\n\n this.#originalProcessReallyExit = process.reallyExit\n this.#originalProcessEmit = process.emit\n }\n\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return () => {}\n }\n /* c8 ignore stop */\n\n if (this.#loaded === false) {\n this.load()\n }\n\n const ev = opts?.alwaysLast ? 'afterExit' : 'exit'\n this.#emitter.on(ev, cb)\n return () => {\n this.#emitter.removeListener(ev, cb)\n if (\n this.#emitter.listeners['exit'].length === 0 &&\n this.#emitter.listeners['afterExit'].length === 0\n ) {\n this.unload()\n }\n }\n }\n\n load() {\n if (this.#loaded) {\n return\n }\n this.#loaded = true\n\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n this.#emitter.count += 1\n\n for (const sig of signals) {\n try {\n const fn = this.#sigListeners[sig]\n if (fn) this.#process.on(sig, fn)\n } catch (_) {}\n }\n\n this.#process.emit = (ev: string, ...a: any[]) => {\n return this.#processEmit(ev, ...a)\n }\n this.#process.reallyExit = (code?: number | null | undefined) => {\n return this.#processReallyExit(code)\n }\n }\n\n unload() {\n if (!this.#loaded) {\n return\n }\n this.#loaded = false\n\n signals.forEach(sig => {\n const listener = this.#sigListeners[sig]\n /* c8 ignore start */\n if (!listener) {\n throw new Error('Listener not defined for signal: ' + sig)\n }\n /* c8 ignore stop */\n try {\n this.#process.removeListener(sig, listener)\n /* c8 ignore start */\n } catch (_) {}\n /* c8 ignore stop */\n })\n this.#process.emit = this.#originalProcessEmit\n this.#process.reallyExit = this.#originalProcessReallyExit\n this.#emitter.count -= 1\n }\n\n #processReallyExit(code?: number | null | undefined) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return 0\n }\n this.#process.exitCode = code || 0\n /* c8 ignore stop */\n\n this.#emitter.emit('exit', this.#process.exitCode, null)\n return this.#originalProcessReallyExit.call(\n this.#process,\n this.#process.exitCode\n )\n }\n\n #processEmit(ev: string, ...args: any[]): any {\n const og = this.#originalProcessEmit\n if (ev === 'exit' && processOk(this.#process)) {\n if (typeof args[0] === 'number') {\n this.#process.exitCode = args[0]\n /* c8 ignore start */\n }\n /* c8 ignore start */\n const ret = og.call(this.#process, ev, ...args)\n /* c8 ignore start */\n this.#emitter.emit('exit', this.#process.exitCode, null)\n /* c8 ignore stop */\n return ret\n } else {\n return og.call(this.#process, ev, ...args)\n }\n }\n}\n\nconst process = globalThis.process\n// wrap so that we call the method on the actual handler, without\n// exporting it directly.\nexport const {\n /**\n * Called when the process is exiting, whether via signal, explicit\n * exit, or running out of stuff to do.\n *\n * If the global process object is not suitable for instrumentation,\n * then this will be a no-op.\n *\n * Returns a function that may be used to unload signal-exit.\n */\n onExit,\n\n /**\n * Load the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n load,\n\n /**\n * Unload the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n unload,\n} = signalExitWrap(\n processOk(process) ? new SignalExit(process) : new SignalExitFallback()\n)\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultParsing = exports.handleOutput = exports.getSpawnedResult = exports.getSpawnedPromise = void 0;\nconst node_buffer_1 = require(\"node:buffer\");\nconst node_stream_1 = __importDefault(require(\"node:stream\"));\nconst node_util_1 = require(\"node:util\");\nconst signal_exit_1 = require(\"signal-exit\");\nfunction getSpawnedPromise(spawned, { timeout } = {}) {\n const spawnedPromise = new Promise((resolve, reject) => {\n spawned.on(\"exit\", (exitCode, signal) => {\n resolve({ exitCode, signal, timedOut: false });\n });\n spawned.on(\"error\", (error) => {\n reject(error);\n });\n if (spawned.stdin) {\n spawned.stdin.on(\"error\", (error) => {\n reject(error);\n });\n }\n });\n if (timeout === 0 || timeout === undefined) {\n return spawnedPromise;\n }\n let timeoutId;\n const timeoutPromise = new Promise((_resolve, reject) => {\n timeoutId = setTimeout(() => {\n spawned.kill(\"SIGTERM\");\n reject(Object.assign(new Error(\"Timed out\"), { timedOut: true, signal: \"SIGTERM\" }));\n }, timeout);\n });\n const safeSpawnedPromise = spawnedPromise.finally(() => {\n clearTimeout(timeoutId);\n });\n const removeExitHandler = (0, signal_exit_1.onExit)(() => {\n spawned.kill();\n });\n return Promise.race([timeoutPromise, safeSpawnedPromise]).finally(() => removeExitHandler());\n}\nexports.getSpawnedPromise = getSpawnedPromise;\nclass MaxBufferError extends Error {\n constructor() {\n super(\"The output is too big\");\n this.name = \"MaxBufferError\";\n }\n}\nconst streamPipelinePromisified = (0, node_util_1.promisify)(node_stream_1.default.pipeline);\nfunction bufferStream(options) {\n const { encoding } = options;\n const isBuffer = encoding === \"buffer\";\n // @ts-expect-error missing the methods we are adding below\n const stream = new node_stream_1.default.PassThrough({ objectMode: false });\n if (encoding && encoding !== \"buffer\") {\n stream.setEncoding(encoding);\n }\n let length = 0;\n const chunks = [];\n stream.on(\"data\", (chunk) => {\n chunks.push(chunk);\n length += chunk.length;\n });\n stream.getBufferedValue = () => {\n return (isBuffer ? Buffer.concat(chunks, length) : chunks.join(\"\"));\n };\n stream.getBufferedLength = () => length;\n return stream;\n}\nasync function getStream(inputStream, options) {\n const stream = bufferStream(options);\n await new Promise((resolve, reject) => {\n const rejectPromise = (error) => {\n // Don't retrieve an oversized buffer.\n if (error && stream.getBufferedLength() <= node_buffer_1.constants.MAX_LENGTH) {\n error.bufferedData = stream.getBufferedValue();\n }\n reject(error);\n };\n (async () => {\n try {\n await streamPipelinePromisified(inputStream, stream);\n resolve();\n }\n catch (error) {\n rejectPromise(error);\n }\n })();\n stream.on(\"data\", () => {\n // 80mb\n if (stream.getBufferedLength() > 1000 * 1000 * 80) {\n rejectPromise(new MaxBufferError());\n }\n });\n });\n return stream.getBufferedValue();\n}\n// On failure, `result.stdout|stderr` should contain the currently buffered stream\nasync function getBufferedData(stream, streamPromise) {\n stream.destroy();\n try {\n return await streamPromise;\n }\n catch (error) {\n return error.bufferedData;\n }\n}\nasync function getSpawnedResult({ stdout, stderr }, { encoding }, processDone) {\n const stdoutPromise = getStream(stdout, { encoding });\n const stderrPromise = getStream(stderr, { encoding });\n try {\n return await Promise.all([processDone, stdoutPromise, stderrPromise]);\n }\n catch (error) {\n return Promise.all([\n {\n error: error,\n exitCode: null,\n signal: error.signal,\n timedOut: error.timedOut || false,\n },\n getBufferedData(stdout, stdoutPromise),\n getBufferedData(stderr, stderrPromise),\n ]);\n }\n}\nexports.getSpawnedResult = getSpawnedResult;\nfunction stripFinalNewline(input) {\n const LF = typeof input === \"string\" ? \"\\n\" : \"\\n\".charCodeAt(0);\n const CR = typeof input === \"string\" ? \"\\r\" : \"\\r\".charCodeAt(0);\n if (input[input.length - 1] === LF) {\n // @ts-expect-error we are doing some nasty stuff here\n input = input.slice(0, -1);\n }\n if (input[input.length - 1] === CR) {\n // @ts-expect-error we are doing some nasty stuff here\n input = input.slice(0, -1);\n }\n return input;\n}\nfunction handleOutput(options, value) {\n if (options.stripFinalNewline) {\n return stripFinalNewline(value);\n }\n return value;\n}\nexports.handleOutput = handleOutput;\nconst getErrorPrefix = ({ timedOut, timeout, signal, exitCode, }) => {\n if (timedOut) {\n return `timed out after ${timeout} milliseconds`;\n }\n if (signal !== undefined && signal !== null) {\n return `was killed with ${signal}`;\n }\n if (exitCode !== undefined && exitCode !== null) {\n return `failed with exit code ${exitCode}`;\n }\n return \"failed\";\n};\nconst makeError = ({ stdout, stderr, error, signal, exitCode, command, timedOut, options, parentError, }) => {\n const prefix = getErrorPrefix({ timedOut, timeout: options?.timeout, signal, exitCode });\n const execaMessage = `Command ${prefix}: ${command}`;\n const shortMessage = error ? `${execaMessage}\\n${error.message}` : execaMessage;\n const message = [shortMessage, stderr, stdout].filter(Boolean).join(\"\\n\");\n if (error) {\n // @ts-expect-error not on Error\n error.originalMessage = error.message;\n }\n else {\n error = parentError;\n }\n error.message = message;\n // @ts-expect-error not on Error\n error.shortMessage = shortMessage;\n // @ts-expect-error not on Error\n error.command = command;\n // @ts-expect-error not on Error\n error.exitCode = exitCode;\n // @ts-expect-error not on Error\n error.signal = signal;\n // @ts-expect-error not on Error\n error.stdout = stdout;\n // @ts-expect-error not on Error\n error.stderr = stderr;\n if (\"bufferedData\" in error) {\n delete error[\"bufferedData\"];\n }\n return error;\n};\nfunction defaultParsing({ stdout, stderr, error, exitCode, signal, timedOut, command, options, parentError, }) {\n if (error || exitCode !== 0 || signal !== null) {\n const returnedError = makeError({\n error,\n exitCode,\n signal,\n stdout,\n stderr,\n command,\n timedOut,\n options,\n parentError,\n });\n throw returnedError;\n }\n return stdout;\n}\nexports.defaultParsing = defaultParsing;\n", "\"use strict\";\n/*\n * Inspired by Execa\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useExec = void 0;\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst react_1 = require(\"react\");\nconst useCachedPromise_1 = require(\"./useCachedPromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst exec_utils_1 = require(\"./exec-utils\");\nconst SPACES_REGEXP = / +/g;\nfunction parseCommand(command, args) {\n if (args) {\n return [command, ...args];\n }\n const tokens = [];\n for (const token of command.trim().split(SPACES_REGEXP)) {\n // Allow spaces to be escaped by a backslash if not meant as a delimiter\n const previousToken = tokens[tokens.length - 1];\n if (previousToken && previousToken.endsWith(\"\\\\\")) {\n // Merge previous token with current one\n tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`;\n }\n else {\n tokens.push(token);\n }\n }\n return tokens;\n}\nfunction useExec(command, optionsOrArgs, options) {\n const { parseOutput, input, onData, onWillExecute, initialData, execute, keepPreviousData, onError, ...execOptions } = Array.isArray(optionsOrArgs) ? options || {} : optionsOrArgs || {};\n const useCachedPromiseOptions = {\n initialData,\n execute,\n keepPreviousData,\n onError,\n onData,\n onWillExecute,\n };\n const abortable = (0, react_1.useRef)();\n const parseOutputRef = (0, useLatest_1.useLatest)(parseOutput || exec_utils_1.defaultParsing);\n const fn = (0, react_1.useCallback)(async (_command, _args, _options, input) => {\n const [file, ...args] = parseCommand(_command, _args);\n const command = [file, ...args].join(\" \");\n const options = {\n stripFinalNewline: true,\n ..._options,\n timeout: _options?.timeout || 10000,\n signal: abortable.current?.signal,\n encoding: _options?.encoding === null ? \"buffer\" : _options?.encoding || \"utf8\",\n env: { PATH: \"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\", ...process.env, ..._options?.env },\n };\n const spawned = node_child_process_1.default.spawn(file, args, options);\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned, options);\n if (input) {\n spawned.stdin.end(input);\n }\n const [{ error, exitCode, signal, timedOut }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, options, spawnedPromise);\n const stdout = (0, exec_utils_1.handleOutput)(options, stdoutResult);\n const stderr = (0, exec_utils_1.handleOutput)(options, stderrResult);\n return parseOutputRef.current({\n // @ts-expect-error too many generics, I give up\n stdout,\n // @ts-expect-error too many generics, I give up\n stderr,\n error,\n exitCode,\n signal,\n timedOut,\n command,\n options,\n parentError: new Error(),\n });\n }, [parseOutputRef]);\n // @ts-expect-error T can't be a Promise so it's actually the same\n return (0, useCachedPromise_1.useCachedPromise)(fn, [command, Array.isArray(optionsOrArgs) ? optionsOrArgs : [], execOptions, input], {\n ...useCachedPromiseOptions,\n abortable,\n });\n}\nexports.useExec = useExec;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useSQL = void 0;\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\nconst api_1 = require(\"@raycast/api\");\nconst node_fs_1 = require(\"node:fs\");\nconst promises_1 = require(\"node:fs/promises\");\nconst node_os_1 = __importDefault(require(\"node:os\"));\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst node_path_1 = __importDefault(require(\"node:path\"));\nconst object_hash_1 = __importDefault(require(\"object-hash\"));\nconst react_1 = require(\"react\");\nconst usePromise_1 = require(\"./usePromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst exec_utils_1 = require(\"./exec-utils\");\nconst handle_error_toast_action_1 = require(\"./handle-error-toast-action\");\n/**\n * Executes a query on a local SQL database and returns the {@link AsyncState} corresponding to the query of the command. The last value will be kept between command runs.\n *\n * @example\n * ```\n * import { useSQL } from \"@raycast/utils\";\n * import { resolve } from \"path\";\n * import { homedir } from \"os\";\n *\n * const NOTES_DB = resolve(homedir(), \"Library/Group Containers/group.com.apple.notes/NoteStore.sqlite\");\n * const notesQuery = `SELECT id, title FROM ...`;\n * type NoteItem = {\n * id: string;\n * title: string;\n * };\n *\n * export default function Command() {\n * const { isLoading, data, permissionView } = useSQL<NoteItem>(NOTES_DB, notesQuery);\n *\n * if (permissionView) {\n * return permissionView;\n * }\n *\n * return (\n * <List isLoading={isLoading}>\n * {(data || []).map((item) => (\n * <List.Item key={item.id} title={item.title} />\n * ))}\n * </List>\n * );\n * };\n * ```\n */\nfunction useSQL(databasePath, query, options) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { permissionPriming, ...usePromiseOptions } = options || {};\n const [permissionView, setPermissionView] = (0, react_1.useState)();\n const latestOptions = (0, useLatest_1.useLatest)(options || {});\n const abortable = (0, react_1.useRef)();\n const handleError = (0, react_1.useCallback)((_error) => {\n console.error(_error);\n const error = _error instanceof Error && _error.message.includes(\"authorization denied\")\n ? new PermissionError(\"You do not have permission to access the database.\")\n : _error;\n if (isPermissionError(error)) {\n setPermissionView((0, jsx_runtime_1.jsx)(PermissionErrorScreen, { priming: latestOptions.current.permissionPriming }));\n }\n else {\n if (latestOptions.current.onError) {\n latestOptions.current.onError(error);\n }\n else {\n console.error(error);\n if (api_1.environment.launchType !== api_1.LaunchType.Background) {\n (0, api_1.showToast)({\n style: api_1.Toast.Style.Failure,\n title: \"Cannot query the data\",\n message: error.message,\n primaryAction: (0, handle_error_toast_action_1.handleErrorToastAction)(error),\n });\n }\n }\n }\n }, [latestOptions]);\n const fn = (0, react_1.useMemo)(() => {\n if (!(0, node_fs_1.existsSync)(databasePath)) {\n throw new Error(\"The database does not exist\");\n }\n let workaroundCopiedDb = undefined;\n return async (databasePath, query) => {\n const abortSignal = abortable.current?.signal;\n const spawned = node_child_process_1.default.spawn(\"sqlite3\", [\"--json\", \"--readonly\", databasePath, query], {\n signal: abortSignal,\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned);\n let [{ error, exitCode, signal }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf-8\" }, spawnedPromise);\n checkAborted(abortSignal);\n if (stderrResult.match(\"(5)\") || stderrResult.match(\"(14)\")) {\n // That means that the DB is busy because of another app is locking it\n // This happens when Chrome or Arc is opened: they lock the History db.\n // As an ugly workaround, we duplicate the file and read that instead\n // (with vfs unix - none to just not care about locks)\n if (!workaroundCopiedDb) {\n const tempFolder = node_path_1.default.join(node_os_1.default.tmpdir(), \"useSQL\", (0, object_hash_1.default)(databasePath));\n await (0, promises_1.mkdir)(tempFolder, { recursive: true });\n checkAborted(abortSignal);\n workaroundCopiedDb = node_path_1.default.join(tempFolder, \"db.db\");\n await (0, promises_1.copyFile)(databasePath, workaroundCopiedDb);\n // needed for certain db\n await (0, promises_1.writeFile)(workaroundCopiedDb + \"-shm\", \"\");\n await (0, promises_1.writeFile)(workaroundCopiedDb + \"-wal\", \"\");\n checkAborted(abortSignal);\n }\n const spawned = node_child_process_1.default.spawn(\"sqlite3\", [\"--json\", \"--readonly\", \"--vfs\", \"unix-none\", workaroundCopiedDb, query], {\n signal: abortSignal,\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned);\n [{ error, exitCode, signal }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf-8\" }, spawnedPromise);\n checkAborted(abortSignal);\n }\n if (error || exitCode !== 0 || signal !== null) {\n throw new Error(stderrResult);\n }\n return JSON.parse(stdoutResult.trim() || \"[]\");\n };\n }, [databasePath]);\n return {\n ...(0, usePromise_1.usePromise)(fn, [databasePath, query], { ...usePromiseOptions, onError: handleError }),\n permissionView,\n };\n}\nexports.useSQL = useSQL;\nclass PermissionError extends Error {\n constructor(message) {\n super(message);\n this.name = \"PermissionError\";\n }\n}\nfunction isPermissionError(error) {\n return error instanceof Error && error.name === \"PermissionError\";\n}\nconst macosVenturaAndLater = parseInt(node_os_1.default.release().split(\".\")[0]) >= 22;\nconst preferencesString = macosVenturaAndLater ? \"Settings\" : \"Preferences\";\nfunction PermissionErrorScreen(props) {\n const action = macosVenturaAndLater\n ? {\n title: \"Open System Settings -> Privacy\",\n target: \"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles\",\n }\n : {\n title: \"Open System Preferences -> Security\",\n target: \"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles\",\n };\n if (api_1.environment.commandMode === \"menu-bar\") {\n return ((0, jsx_runtime_1.jsxs)(api_1.MenuBarExtra, { icon: api_1.Icon.Warning, title: api_1.environment.commandName, children: [(0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: \"Raycast needs full disk access\", tooltip: `You can revert this access in ${preferencesString} whenever you want` }), props.priming ? ((0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: props.priming, tooltip: `You can revert this access in ${preferencesString} whenever you want` })) : null, (0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Separator, {}), (0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: action.title, onAction: () => (0, api_1.open)(action.target) })] }));\n }\n return ((0, jsx_runtime_1.jsx)(api_1.List, { children: (0, jsx_runtime_1.jsx)(api_1.List.EmptyView, { icon: {\n source: {\n light: \"https://raycast.com/uploads/extensions-utils-security-permissions-light.png\",\n dark: \"https://raycast.com/uploads/extensions-utils-security-permissions-dark.png\",\n },\n }, title: \"Raycast needs full disk access.\", description: `${props.priming ? props.priming + \"\\n\" : \"\"}You can revert this access in ${preferencesString} whenever you want.`, actions: (0, jsx_runtime_1.jsx)(api_1.ActionPanel, { children: (0, jsx_runtime_1.jsx)(api_1.Action.Open, { ...action }) }) }) }));\n}\nfunction checkAborted(signal) {\n if (signal?.aborted) {\n const error = new Error(\"aborted\");\n error.name = \"AbortError\";\n throw error;\n }\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useForm = exports.FormValidation = void 0;\nconst react_1 = require(\"react\");\nconst useLatest_1 = require(\"./useLatest\");\n/**\n * Shorthands for common validation cases\n */\nvar FormValidation;\n(function (FormValidation) {\n /** Show an error when the value of the item is empty */\n FormValidation[\"Required\"] = \"required\";\n})(FormValidation = exports.FormValidation || (exports.FormValidation = {}));\nfunction validationError(validation, value) {\n if (validation) {\n if (typeof validation === \"function\") {\n return validation(value);\n }\n else if (validation === FormValidation.Required) {\n let valueIsValid = typeof value !== \"undefined\" && value !== null;\n if (valueIsValid) {\n switch (typeof value) {\n case \"string\":\n valueIsValid = value.length > 0;\n break;\n case \"object\":\n if (Array.isArray(value)) {\n valueIsValid = value.length > 0;\n }\n else if (value instanceof Date) {\n valueIsValid = value.getTime() > 0;\n }\n break;\n default:\n break;\n }\n }\n if (!valueIsValid) {\n return \"The item is required\";\n }\n }\n }\n}\n/**\n * Hook that provides a high-level interface to work with Forms, and more particularly, with Form validations. It incorporates all the good practices to provide a great User Experience for your Forms.\n *\n * @returns an object which contains the necessary methods and props to provide a good User Experience in your Form.\n *\n * @example\n * ```\n * import { Action, ActionPanel, Form, showToast, Toast } from \"@raycast/api\";\n * import { useForm, FormValidation } from \"@raycast/utils\";\n *\n * interface SignUpFormValues {\n * nickname: string;\n * password: string;\n * }\n *\n * export default function Command() {\n * const { handleSubmit, itemProps } = useForm<SignUpFormValues>({\n * onSubmit(values) {\n * showToast(Toast.Style.Success, \"Yay!\", `${values.nickname} account created`);\n * },\n * validation: {\n * nickname: FormValidation.Required,\n * password: (value) => {\n * if (value && value.length < 8) {\n * return \"Password must be at least 8 symbols\";\n * } else if (!value) {\n * return \"The item is required\";\n * }\n * },\n * },\n * });\n *\n * return (\n * <Form\n * actions={\n * <ActionPanel>\n * <Action.SubmitForm title=\"Submit\" onSubmit={handleSubmit} />\n * </ActionPanel>\n * }\n * >\n * <Form.TextField title=\"Nickname\" placeholder=\"Enter your nickname\" {...itemProps.nickname} />\n * <Form.PasswordField\n * title=\"Password\"\n * placeholder=\"Enter password at least 8 characters long\"\n * {...itemProps.password}\n * />\n * </Form>\n * );\n * }\n * ```\n */\nfunction useForm(props) {\n const { onSubmit: _onSubmit, validation, initialValues = {} } = props;\n // @ts-expect-error it's fine if we don't specify all the values\n const [values, setValues] = (0, react_1.useState)(initialValues);\n const [errors, setErrors] = (0, react_1.useState)({});\n const refs = (0, react_1.useRef)({});\n const latestValidation = (0, useLatest_1.useLatest)(validation || {});\n const latestOnSubmit = (0, useLatest_1.useLatest)(_onSubmit);\n const focus = (0, react_1.useCallback)((id) => {\n refs.current[id]?.focus();\n }, [refs]);\n const handleSubmit = (0, react_1.useCallback)(async (values) => {\n let validationErrors = false;\n for (const [id, validation] of Object.entries(latestValidation.current)) {\n const error = validationError(validation, values[id]);\n if (error) {\n if (!validationErrors) {\n validationErrors = {};\n // we focus the first item that has an error\n focus(id);\n }\n validationErrors[id] = error;\n }\n }\n if (validationErrors) {\n setErrors(validationErrors);\n return false;\n }\n const result = await latestOnSubmit.current(values);\n return typeof result === \"boolean\" ? result : true;\n }, [latestValidation, latestOnSubmit, focus]);\n const setValidationError = (0, react_1.useCallback)((id, error) => {\n setErrors((errors) => ({ ...errors, [id]: error }));\n }, [setErrors]);\n const setValue = (0, react_1.useCallback)(function (id, value) {\n // @ts-expect-error TS is always confused about SetStateAction, but it's fine here\n setValues((values) => ({ ...values, [id]: typeof value === \"function\" ? value(values[id]) : value }));\n }, [setValues]);\n const itemProps = (0, react_1.useMemo)(() => {\n // we have to use a proxy because we don't actually have any object to iterate through\n // so instead we dynamically create the props when required\n return new Proxy(\n // @ts-expect-error the whole point of a proxy...\n {}, {\n get(target, id) {\n const validation = latestValidation.current[id];\n const value = values[id];\n return {\n onChange(value) {\n if (errors[id]) {\n const error = validationError(validation, value);\n if (!error) {\n setValidationError(id, undefined);\n }\n }\n setValue(id, value);\n },\n onBlur(event) {\n const error = validationError(validation, event.target.value);\n if (error) {\n setValidationError(id, error);\n }\n },\n error: errors[id],\n id,\n // we shouldn't return `undefined` otherwise it will be an uncontrolled component\n value: typeof value === \"undefined\" ? null : value,\n ref: (instance) => {\n refs.current[id] = instance;\n },\n };\n },\n });\n }, [errors, latestValidation, setValidationError, values, refs, setValue]);\n const reset = (0, react_1.useCallback)((initialValues = {}) => {\n // @ts-expect-error it's fine if we don't specify all the values\n setValues(initialValues);\n setErrors({});\n }, [setValues, setErrors]);\n return { handleSubmit, setValidationError, setValue, values, itemProps, focus, reset };\n}\nexports.useForm = useForm;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useAI = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst usePromise_1 = require(\"./usePromise\");\n/**\n * Stream a prompt completion.\n *\n * @example\n * ```typescript\n * import { Detail, LaunchProps } from \"@raycast/api\";\n * import { use AI } from \"@raycast/utils\";\n *\n * export default function Command(props: LaunchProps<{ arguments: { prompt: string } }>) {\n * const { isLoading, data } = useAI(props.arguments.prompt);\n *\n * return <Detail isLoading={isLoading} markdown={data} />;\n * }\n * ```\n */\nfunction useAI(prompt, options = {}) {\n const { creativity, stream, model, ...usePromiseOptions } = options;\n const [data, setData] = (0, react_1.useState)(\"\");\n const abortable = (0, react_1.useRef)();\n const { isLoading, error, revalidate } = (0, usePromise_1.usePromise)(async (prompt, creativity, shouldStream) => {\n setData(\"\");\n const stream = api_1.AI.ask(prompt, { creativity, model, signal: abortable.current?.signal });\n if (shouldStream === false) {\n setData(await stream);\n }\n else {\n stream.on(\"data\", (data) => {\n setData((x) => x + data);\n });\n await stream;\n }\n }, [prompt, creativity, stream], { ...usePromiseOptions, abortable });\n return { isLoading, data, error, revalidate };\n}\nexports.useAI = useAI;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFrecencySorting = void 0;\nconst react_1 = require(\"react\");\nconst useLatest_1 = require(\"./useLatest\");\nconst useCachedState_1 = require(\"./useCachedState\");\nconst HALF_LIFE_DAYS = 10;\nconst MS_PER_DAY = 24 * 60 * 60 * 1000;\nconst DECAY_RATE_CONSTANT = Math.log(2) / (HALF_LIFE_DAYS * MS_PER_DAY);\nconst VISIT_TYPE_POINTS = {\n Default: 100,\n Embed: 0,\n Bookmark: 140,\n};\nfunction getNewFrecency(item) {\n const now = Date.now();\n const lastVisited = item ? item.lastVisited : 0;\n const frecency = item ? item.frecency : 0;\n const visitAgeInDays = (now - lastVisited) / MS_PER_DAY;\n const currentVisitValue = VISIT_TYPE_POINTS.Default * Math.exp(-DECAY_RATE_CONSTANT * visitAgeInDays);\n const totalVisitValue = frecency + currentVisitValue;\n return {\n lastVisited: now,\n frecency: totalVisitValue,\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst defaultKey = (item) => {\n if (process.env.NODE_ENV !== \"production\" &&\n (typeof item !== \"object\" || !item || !(\"id\" in item) || typeof item.id != \"string\")) {\n throw new Error(\"Specify a key function or make sure your items have an 'id' property\");\n }\n return item.id;\n};\nfunction useFrecencySorting(data, options) {\n const keyRef = (0, useLatest_1.useLatest)(options?.key || defaultKey);\n const sortUnvisitedRef = (0, useLatest_1.useLatest)(options?.sortUnvisited);\n const [storedFrecencies, setStoredFrecencies] = (0, useCachedState_1.useCachedState)(`raycast_frecency_${options?.namespace}`, {});\n const visitItem = (0, react_1.useCallback)(async function updateFrecency(item) {\n const itemKey = keyRef.current(item);\n setStoredFrecencies((storedFrecencies) => {\n const frecency = storedFrecencies[itemKey];\n const newFrecency = getNewFrecency(frecency);\n return {\n ...storedFrecencies,\n [itemKey]: newFrecency,\n };\n });\n }, [keyRef, setStoredFrecencies]);\n const resetRanking = (0, react_1.useCallback)(async function removeFrecency(item) {\n const itemKey = keyRef.current(item);\n setStoredFrecencies((storedFrecencies) => {\n const newFrencencies = { ...storedFrecencies };\n delete newFrencencies[itemKey];\n return newFrencencies;\n });\n }, [keyRef, setStoredFrecencies]);\n const sortedData = (0, react_1.useMemo)(() => {\n if (!data) {\n return [];\n }\n return data.sort((a, b) => {\n const frecencyA = storedFrecencies[keyRef.current(a)];\n const frecencyB = storedFrecencies[keyRef.current(b)];\n // If a has a frecency, but b doesn't, a should come first\n if (frecencyA && !frecencyB) {\n return -1;\n }\n // If b has a frecency, but a doesn't, b should come first\n if (!frecencyA && frecencyB) {\n return 1;\n }\n // If both frecencies are defined,put the one with the higher frecency first\n if (frecencyA && frecencyB) {\n return frecencyB.frecency - frecencyA.frecency;\n }\n // If both frecencies are undefined, keep the original order\n return sortUnvisitedRef.current ? sortUnvisitedRef.current(a, b) : 0;\n });\n }, [storedFrecencies, data, keyRef, sortUnvisitedRef]);\n return { data: sortedData, visitItem, resetRanking };\n}\nexports.useFrecencySorting = useFrecencySorting;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.slightlyLighterColor = exports.slightlyDarkerColor = void 0;\nfunction hexToRGB(hex) {\n let r = 0;\n let g = 0;\n let b = 0;\n // 3 digits\n if (hex.length === 4) {\n r = parseInt(`${hex[1]}${hex[1]}`, 16);\n g = parseInt(`${hex[2]}${hex[2]}`, 16);\n b = parseInt(`${hex[3]}${hex[3]}`, 16);\n // 6 digits\n }\n else if (hex.length === 7) {\n r = parseInt(`${hex[1]}${hex[2]}`, 16);\n g = parseInt(`${hex[3]}${hex[4]}`, 16);\n b = parseInt(`${hex[5]}${hex[6]}`, 16);\n }\n else {\n throw new Error(`Malformed hex color: ${hex}`);\n }\n return { r, g, b };\n}\nfunction rgbToHex({ r, g, b }) {\n let rString = r.toString(16);\n let gString = g.toString(16);\n let bString = b.toString(16);\n if (rString.length === 1) {\n rString = `0${rString}`;\n }\n if (gString.length === 1) {\n gString = `0${gString}`;\n }\n if (bString.length === 1) {\n bString = `0${bString}`;\n }\n return `#${rString}${gString}${bString}`;\n}\nfunction rgbToHSL({ r, g, b }) {\n // Make r, g, and b fractions of 1\n r /= 255;\n g /= 255;\n b /= 255;\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b);\n const cmax = Math.max(r, g, b);\n const delta = cmax - cmin;\n let h = 0;\n let s = 0;\n let l = 0;\n // Calculate hue\n // No difference\n if (delta === 0) {\n h = 0;\n }\n // Red is max\n else if (cmax === r) {\n h = ((g - b) / delta) % 6;\n }\n // Green is max\n else if (cmax === g) {\n h = (b - r) / delta + 2;\n }\n // Blue is max\n else {\n h = (r - g) / delta + 4;\n }\n h = Math.round(h * 60);\n // Make negative hues positive behind 360\u00B0\n if (h < 0) {\n h += 360;\n }\n // Calculate lightness\n l = (cmax + cmin) / 2;\n // Calculate saturation\n s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1);\n l = +(l * 100).toFixed(1);\n return { h, s, l };\n}\nfunction hslToRGB({ h, s, l }) {\n // Must be fractions of 1\n s /= 100;\n l /= 100;\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = l - c / 2;\n let r = 0;\n let g = 0;\n let b = 0;\n if (h >= 0 && h < 60) {\n r = c;\n g = x;\n b = 0;\n }\n else if (h >= 60 && h < 120) {\n r = x;\n g = c;\n b = 0;\n }\n else if (h >= 120 && h < 180) {\n r = 0;\n g = c;\n b = x;\n }\n else if (h >= 180 && h < 240) {\n r = 0;\n g = x;\n b = c;\n }\n else if (h >= 240 && h < 300) {\n r = x;\n g = 0;\n b = c;\n }\n else if (h >= 300 && h < 360) {\n r = c;\n g = 0;\n b = x;\n }\n r = Math.round((r + m) * 255);\n g = Math.round((g + m) * 255);\n b = Math.round((b + m) * 255);\n return { r, g, b };\n}\nfunction hexToHSL(hex) {\n return rgbToHSL(hexToRGB(hex));\n}\nfunction hslToHex(hsl) {\n return rgbToHex(hslToRGB(hsl));\n}\nfunction clamp(value, min, max) {\n return min < max ? (value < min ? min : value > max ? max : value) : value < max ? max : value > min ? min : value;\n}\nconst offset = 12;\nfunction slightlyDarkerColor(hex) {\n const hsl = hexToHSL(hex);\n return hslToHex({\n h: hsl.h,\n s: hsl.s,\n l: clamp(hsl.l - offset, 0, 100),\n });\n}\nexports.slightlyDarkerColor = slightlyDarkerColor;\nfunction slightlyLighterColor(hex) {\n const hsl = hexToHSL(hex);\n return hslToHex({\n h: hsl.h,\n s: hsl.s,\n l: clamp(hsl.l + offset, 0, 100),\n });\n}\nexports.slightlyLighterColor = slightlyLighterColor;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAvatarIcon = void 0;\nconst color_1 = require(\"./color\");\nfunction getWholeCharAndI(str, i) {\n const code = str.charCodeAt(i);\n if (Number.isNaN(code)) {\n return [\"\", i];\n }\n if (code < 0xd800 || code > 0xdfff) {\n return [str.charAt(i), i]; // Normal character, keeping 'i' the same\n }\n // High surrogate (could change last hex to 0xDB7F to treat high private\n // surrogates as single characters)\n if (0xd800 <= code && code <= 0xdbff) {\n if (str.length <= i + 1) {\n throw new Error(\"High surrogate without following low surrogate\");\n }\n const next = str.charCodeAt(i + 1);\n if (0xdc00 > next || next > 0xdfff) {\n throw new Error(\"High surrogate without following low surrogate\");\n }\n return [str.charAt(i) + str.charAt(i + 1), i + 1];\n }\n // Low surrogate (0xDC00 <= code && code <= 0xDFFF)\n if (i === 0) {\n throw new Error(\"Low surrogate without preceding high surrogate\");\n }\n const prev = str.charCodeAt(i - 1);\n // (could change last hex to 0xDB7F to treat high private surrogates\n // as single characters)\n if (0xd800 > prev || prev > 0xdbff) {\n throw new Error(\"Low surrogate without preceding high surrogate\");\n }\n // Return the next character instead (and increment)\n return [str.charAt(i + 1), i + 1];\n}\nconst avatarColorSet = [\n \"#DC829A\",\n \"#D64854\",\n \"#D47600\",\n \"#D36CDD\",\n \"#52A9E4\",\n \"#7871E8\",\n \"#70920F\",\n \"#43B93A\",\n \"#EB6B3E\",\n \"#26B795\",\n \"#D85A9B\",\n \"#A067DC\",\n \"#BD9500\",\n \"#5385D9\", // Blue\n];\n/**\n * Icon to represent an avatar when you don't have one. The generated avatar\n * will be generated from the initials of the name and have a colorful but consistent background.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getAvatarIcon('Mathieu Dutour')} title=\"Project\" />\n * ```\n */\nfunction getAvatarIcon(name, options) {\n const words = name.trim().split(\" \");\n let initials;\n if (words.length == 1 && getWholeCharAndI(words[0], 0)[0]) {\n initials = getWholeCharAndI(words[0], 0)[0];\n }\n else if (words.length > 1) {\n const firstWordFirstLetter = getWholeCharAndI(words[0], 0)[0] || \"\";\n const lastWordFirstLetter = getWholeCharAndI(words[words.length - 1], 0)[0] ?? \"\";\n initials = firstWordFirstLetter + lastWordFirstLetter;\n }\n else {\n initials = \"\";\n }\n let backgroundColor;\n if (options?.background) {\n backgroundColor = options?.background;\n }\n else {\n let initialsCharIndex = 0;\n let [char, i] = getWholeCharAndI(initials, 0);\n while (char) {\n initialsCharIndex += char.charCodeAt(0);\n [char, i] = getWholeCharAndI(initials, i + 1);\n }\n const colorIndex = initialsCharIndex % avatarColorSet.length;\n backgroundColor = avatarColorSet[colorIndex];\n }\n const padding = 0;\n const radius = 50 - padding;\n const svg = `<svg width=\"100px\" height=\"100px\">\n ${options?.gradient !== false\n ? `<defs>\n <linearGradient id=\"Gradient\" x1=\"0.25\" x2=\"0.75\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" stop-color=\"${(0, color_1.slightlyLighterColor)(backgroundColor)}\"/>\n <stop offset=\"50%\" stop-color=\"${backgroundColor}\"/>\n <stop offset=\"100%\" stop-color=\"${(0, color_1.slightlyDarkerColor)(backgroundColor)}\"/>\n </linearGradient>\n </defs>`\n : \"\"}\n <circle cx=\"50\" cy=\"50\" r=\"${radius}\" fill=\"${options?.gradient !== false ? \"url(#Gradient)\" : backgroundColor}\" />\n ${initials\n ? `<text x=\"50\" y=\"80\" font-size=\"${radius - 1}\" font-family=\"Inter, sans-serif\" text-anchor=\"middle\" fill=\"white\">${initials.toUpperCase()}</text>`\n : \"\"}\n </svg>\n `.replaceAll(\"\\n\", \"\");\n return `data:image/svg+xml,${svg}`;\n}\nexports.getAvatarIcon = getAvatarIcon;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFavicon = void 0;\nconst api_1 = require(\"@raycast/api\");\nconst url_1 = require(\"url\");\n/**\n * Icon showing the favicon of a website.\n *\n * A favicon (favorite icon) is a tiny icon included along with a website, which is displayed in places like the browser's address bar, page tabs, and bookmarks menu.\n *\n * @param url The URL of the website to represent.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getFavicon(\"https://raycast.com\")} title=\"Raycast Website\" />\n * ```\n */\nfunction getFavicon(url, options) {\n try {\n const urlObj = typeof url === \"string\" ? new url_1.URL(url) : url;\n const hostname = urlObj.hostname;\n return {\n source: `https://www.google.com/s2/favicons?sz=${options?.size ?? 64}&domain=${hostname}`,\n fallback: options?.fallback ?? api_1.Icon.Link,\n mask: options?.mask,\n };\n }\n catch (e) {\n console.error(e);\n return api_1.Icon.Link;\n }\n}\nexports.getFavicon = getFavicon;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getProgressIcon = void 0;\nconst api_1 = require(\"@raycast/api\");\nfunction polarToCartesian(centerX, centerY, radius, angleInDegrees) {\n const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180.0;\n return {\n x: centerX + radius * Math.cos(angleInRadians),\n y: centerY + radius * Math.sin(angleInRadians),\n };\n}\nfunction describeArc(x, y, radius, startAngle, endAngle) {\n const start = polarToCartesian(x, y, radius, endAngle);\n const end = polarToCartesian(x, y, radius, startAngle);\n const largeArcFlag = endAngle - startAngle <= 180 ? \"0\" : \"1\";\n const d = [\"M\", start.x, start.y, \"A\", radius, radius, 0, largeArcFlag, 0, end.x, end.y].join(\" \");\n return d;\n}\n/**\n * Icon to represent the progress of _something_.\n *\n * @param progress Number between 0 and 1.\n * @param color Hex color (default `\"#FF6363\"`) or Color.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getProgressIcon(0.1)} title=\"Project\" />\n * ```\n */\nfunction getProgressIcon(progress, color = api_1.Color.Red, options) {\n const background = options?.background || (api_1.environment.appearance === \"light\" ? \"black\" : \"white\");\n const backgroundOpacity = options?.backgroundOpacity || 0.1;\n const stroke = 10;\n const padding = 5;\n const radius = 50 - padding - stroke / 2;\n const svg = `<svg width=\"100px\" height=\"100px\">\n <circle cx=\"50\" cy=\"50\" r=\"${radius}\" stroke-width=\"${stroke}\" stroke=\"${progress < 1 ? background : color}\" opacity=\"${progress < 1 ? backgroundOpacity : \"1\"}\" fill=\"none\" />\n ${progress > 0 && progress < 1\n ? `<path d=\"${describeArc(50, 50, radius, 0, progress * 360)}\" stroke=\"${color}\" stroke-width=\"${stroke}\" fill=\"none\" />`\n : \"\"}\n </svg>\n `.replaceAll(\"\\n\", \"\");\n return `data:image/svg+xml,${svg}`;\n}\nexports.getProgressIcon = getProgressIcon;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./avatar\"), exports);\n__exportStar(require(\"./favicon\"), exports);\n__exportStar(require(\"./progress\"), exports);\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.runAppleScript = void 0;\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst exec_utils_1 = require(\"./exec-utils\");\nasync function runAppleScript(script, optionsOrArgs, options) {\n const { humanReadableOutput, language, timeout, ...execOptions } = Array.isArray(optionsOrArgs)\n ? options || {}\n : optionsOrArgs || {};\n const outputArguments = humanReadableOutput !== false ? [] : [\"-ss\"];\n if (language === \"JavaScript\") {\n outputArguments.push(\"-l\", \"JavaScript\");\n }\n if (Array.isArray(optionsOrArgs)) {\n outputArguments.push(\"-\", ...optionsOrArgs);\n }\n const spawned = node_child_process_1.default.spawn(\"osascript\", outputArguments, {\n ...execOptions,\n env: { PATH: \"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\" },\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned, { timeout: timeout || 10000 });\n spawned.stdin.end(script);\n const [{ error, exitCode, signal, timedOut }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf8\" }, spawnedPromise);\n const stdout = (0, exec_utils_1.handleOutput)({ stripFinalNewline: true }, stdoutResult);\n const stderr = (0, exec_utils_1.handleOutput)({ stripFinalNewline: true }, stderrResult);\n return (0, exec_utils_1.defaultParsing)({\n stdout,\n stderr,\n error,\n exitCode,\n signal,\n timedOut,\n command: \"osascript\",\n options,\n parentError: new Error(),\n });\n}\nexports.runAppleScript = runAppleScript;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./usePromise\"), exports);\n__exportStar(require(\"./useCachedState\"), exports);\n__exportStar(require(\"./useCachedPromise\"), exports);\n__exportStar(require(\"./useFetch\"), exports);\n__exportStar(require(\"./useExec\"), exports);\n__exportStar(require(\"./useSQL\"), exports);\n__exportStar(require(\"./useForm\"), exports);\n__exportStar(require(\"./useAI\"), exports);\n__exportStar(require(\"./useFrecencySorting\"), exports);\n__exportStar(require(\"./icon\"), exports);\n__exportStar(require(\"./run-applescript\"), exports);\n", "module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size')\n}\n", "'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseExceededMaxSizeError)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\n\nconst [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v))\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n return url\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.')\n }\n\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n if (!(url instanceof URL)) {\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substr(1, idx - 1)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substr(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (!isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\nfunction parseHeaders (headers, obj = {}) {\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1]\n } else {\n obj[key] = headers[i + 1].toString('utf8')\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString('utf8'))\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if ('content-length' in obj && 'content-disposition' in obj) {\n obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1')\n }\n\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n const ret = []\n let hasContentLength = false\n let contentDispositionIdx = -1\n\n for (let n = 0; n < headers.length; n += 2) {\n const key = headers[n + 0].toString()\n const val = headers[n + 1].toString('utf8')\n\n if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n ret.push(key, val)\n hasContentLength = true\n } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n contentDispositionIdx = ret.push(key, val) - 1\n } else {\n ret.push(key, val)\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if (hasContentLength && contentDispositionIdx !== -1) {\n ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1')\n }\n\n return ret\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n // https://github.com/whatwg/streams/pull/1083\n return ReadableStream.from(iterable)\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.append === 'function' &&\n typeof object.delete === 'function' &&\n typeof object.get === 'function' &&\n typeof object.getAll === 'function' &&\n typeof object.has === 'function' &&\n typeof object.set === 'function' &&\n object[Symbol.toStringTag] === 'FormData'\n )\n}\n\nfunction throwIfAborted (signal) {\n if (!signal) { return }\n if (typeof signal.throwIfAborted === 'function') {\n signal.throwIfAborted()\n } else {\n if (signal.aborted) {\n // DOMException not available < v17.0.0\n const err = new Error('The operation was aborted')\n err.name = 'AbortError'\n throw err\n }\n }\n}\n\nlet events\nfunction addAbortListener (signal, listener) {\n if (typeof Symbol.dispose === 'symbol') {\n if (!events) {\n events = require('events')\n }\n if (typeof events.addAbortListener === 'function' && 'aborted' in signal) {\n return events.addAbortListener(signal, listener)\n }\n }\n if ('addEventListener' in signal) {\n signal.addEventListener('abort', listener, { once: true })\n return () => signal.removeEventListener('abort', listener)\n }\n signal.addListener('abort', listener)\n return () => signal.removeListener('abort', listener)\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed\n\n/**\n * @param {string} val\n */\nfunction toUSVString (val) {\n if (hasToWellFormed) {\n return `${val}`.toWellFormed()\n } else if (nodeUtil.toUSVString) {\n return nodeUtil.toUSVString(val)\n }\n\n return `${val}`\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString,\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL,\n throwIfAborted,\n addAbortListener,\n nodeMajor,\n nodeMinor,\n nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13)\n}\n", "'use strict'\n\nlet fastNow = Date.now()\nlet fastNowTimeout\n\nconst fastTimers = []\n\nfunction onTimeout () {\n fastNow = Date.now()\n\n let len = fastTimers.length\n let idx = 0\n while (idx < len) {\n const timer = fastTimers[idx]\n\n if (timer.state === 0) {\n timer.state = fastNow + timer.delay\n } else if (timer.state > 0 && fastNow >= timer.state) {\n timer.state = -1\n timer.callback(timer.opaque)\n }\n\n if (timer.state === -1) {\n timer.state = -2\n if (idx !== len - 1) {\n fastTimers[idx] = fastTimers.pop()\n } else {\n fastTimers.pop()\n }\n len -= 1\n } else {\n idx += 1\n }\n }\n\n if (fastTimers.length > 0) {\n refreshTimeout()\n }\n}\n\nfunction refreshTimeout () {\n if (fastNowTimeout && fastNowTimeout.refresh) {\n fastNowTimeout.refresh()\n } else {\n clearTimeout(fastNowTimeout)\n fastNowTimeout = setTimeout(onTimeout, 1e3)\n if (fastNowTimeout.unref) {\n fastNowTimeout.unref()\n }\n }\n}\n\nclass Timeout {\n constructor (callback, delay, opaque) {\n this.callback = callback\n this.delay = delay\n this.opaque = opaque\n\n // -2 not in timer list\n // -1 in timer list but inactive\n // 0 in timer list waiting for time\n // > 0 in timer list waiting for time to expire\n this.state = -2\n\n this.refresh()\n }\n\n refresh () {\n if (this.state === -2) {\n fastTimers.push(this)\n if (!fastNowTimeout || fastTimers.length === 1) {\n refreshTimeout()\n }\n }\n\n this.state = 0\n }\n\n clear () {\n this.state = -1\n }\n}\n\nmodule.exports = {\n setTimeout (callback, delay, opaque) {\n return delay < 1e3\n ? setTimeout(callback, delay, opaque)\n : new Timeout(callback, delay, opaque)\n },\n clearTimeout (timeout) {\n if (timeout instanceof Timeout) {\n timeout.clear()\n } else {\n clearTimeout(timeout)\n }\n }\n}\n", "'use strict';\n\nfunction parseContentType(str) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n // Parse type\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 47/* '/' */ || i === 0)\n return;\n break;\n }\n }\n // Check for type without subtype\n if (i === str.length)\n return;\n\n const type = str.slice(0, i).toLowerCase();\n\n // Parse subtype\n const subtypeStart = ++i;\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n if (parseContentTypeParams(str, i, params) === undefined)\n return;\n break;\n }\n }\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n const subtype = str.slice(subtypeStart, i).toLowerCase();\n\n return { type, subtype, params };\n}\n\nfunction parseContentTypeParams(str, i, params) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 61/* '=' */)\n return;\n break;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n name = str.slice(nameStart, i);\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction parseDisposition(str, defDecoder) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (parseDispositionParams(str, i, params, defDecoder) === undefined)\n return;\n break;\n }\n }\n\n const type = str.slice(0, i).toLowerCase();\n\n return { type, params };\n}\n\nfunction parseDispositionParams(str, i, params, defDecoder) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code === 61/* '=' */)\n break;\n return;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n let charset;\n //~ let lang;\n name = str.slice(nameStart, i);\n if (name.charCodeAt(name.length - 1) === 42/* '*' */) {\n // Extended value\n\n const charsetStart = ++i;\n // Parse charset name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (CHARSET[code] !== 1) {\n if (code !== 39/* '\\'' */)\n return;\n break;\n }\n }\n\n // Incomplete charset (malformed)\n if (i === str.length)\n return;\n\n charset = str.slice(charsetStart, i);\n ++i; // Skip over the '\\''\n\n //~ const langStart = ++i;\n // Parse language name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 39/* '\\'' */)\n break;\n }\n\n // Incomplete language (malformed)\n if (i === str.length)\n return;\n\n //~ lang = str.slice(langStart, i);\n ++i; // Skip over the '\\''\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n valueStart = i;\n\n let encode = 0;\n // Parse value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (EXTENDED_VALUE[code] !== 1) {\n if (code === 37/* '%' */) {\n let hexUpper;\n let hexLower;\n if (i + 2 < str.length\n && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1\n && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) {\n const byteVal = (hexUpper << 4) + hexLower;\n value += str.slice(valueStart, i);\n value += String.fromCharCode(byteVal);\n i += 2;\n valueStart = i + 1;\n if (byteVal >= 128)\n encode = 2;\n else if (encode === 0)\n encode = 1;\n continue;\n }\n // '%' disallowed in non-percent encoded contexts (malformed)\n return;\n }\n break;\n }\n }\n\n value += str.slice(valueStart, i);\n value = convertToUTF8(value, charset, encode);\n if (value === undefined)\n return;\n } else {\n // Non-extended value\n\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n value = defDecoder(value, 2);\n if (value === undefined)\n return;\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction getDecoder(charset) {\n let lc;\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8;\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1;\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le;\n case 'base64':\n return decoders.base64;\n default:\n if (lc === undefined) {\n lc = true;\n charset = charset.toLowerCase();\n continue;\n }\n return decoders.other.bind(charset);\n }\n }\n}\n\nconst decoders = {\n utf8: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string') {\n // If `data` never had any percent-encoded bytes or never had any that\n // were outside of the ASCII range, then we can safely just return the\n // input since UTF-8 is ASCII compatible\n if (hint < 2)\n return data;\n\n data = Buffer.from(data, 'latin1');\n }\n return data.utf8Slice(0, data.length);\n },\n\n latin1: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n return data;\n return data.latin1Slice(0, data.length);\n },\n\n utf16le: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.ucs2Slice(0, data.length);\n },\n\n base64: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.base64Slice(0, data.length);\n },\n\n other: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n try {\n const decoder = new TextDecoder(this);\n return decoder.decode(data);\n } catch {}\n },\n};\n\nfunction convertToUTF8(data, charset, hint) {\n const decode = getDecoder(charset);\n if (decode)\n return decode(data, hint);\n}\n\nfunction basename(path) {\n if (typeof path !== 'string')\n return '';\n for (let i = path.length - 1; i >= 0; --i) {\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1);\n return (path === '..' || path === '.' ? '' : path);\n }\n }\n return (path === '..' || path === '.' ? '' : path);\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst QDTEXT = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nconst CHARSET = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst EXTENDED_VALUE = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n};\n", "'use strict';\n/*\n Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n*/\nfunction memcmp(buf1, pos1, buf2, pos2, num) {\n for (let i = 0; i < num; ++i) {\n if (buf1[pos1 + i] !== buf2[pos2 + i])\n return false;\n }\n return true;\n}\n\nclass SBMH {\n constructor(needle, cb) {\n if (typeof cb !== 'function')\n throw new Error('Missing match callback');\n\n if (typeof needle === 'string')\n needle = Buffer.from(needle);\n else if (!Buffer.isBuffer(needle))\n throw new Error(`Expected Buffer for needle, got ${typeof needle}`);\n\n const needleLen = needle.length;\n\n this.maxMatches = Infinity;\n this.matches = 0;\n\n this._cb = cb;\n this._lookbehindSize = 0;\n this._needle = needle;\n this._bufPos = 0;\n\n this._lookbehind = Buffer.allocUnsafe(needleLen);\n\n // Initialize occurrence table.\n this._occ = [\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen\n ];\n\n // Populate occurrence table with analysis of the needle, ignoring the last\n // letter.\n if (needleLen > 1) {\n for (let i = 0; i < needleLen - 1; ++i)\n this._occ[needle[i]] = needleLen - 1 - i;\n }\n }\n\n reset() {\n this.matches = 0;\n this._lookbehindSize = 0;\n this._bufPos = 0;\n }\n\n push(chunk, pos) {\n let result;\n if (!Buffer.isBuffer(chunk))\n chunk = Buffer.from(chunk, 'latin1');\n const chunkLen = chunk.length;\n this._bufPos = pos || 0;\n while (result !== chunkLen && this.matches < this.maxMatches)\n result = feed(this, chunk);\n return result;\n }\n\n destroy() {\n const lbSize = this._lookbehindSize;\n if (lbSize)\n this._cb(false, this._lookbehind, 0, lbSize, false);\n this.reset();\n }\n}\n\nfunction feed(self, data) {\n const len = data.length;\n const needle = self._needle;\n const needleLen = needle.length;\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehindSize - 2]\n let pos = -self._lookbehindSize;\n const lastNeedleCharPos = needleLen - 1;\n const lastNeedleChar = needle[lastNeedleCharPos];\n const end = len - needleLen;\n const occ = self._occ;\n const lookbehind = self._lookbehind;\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= end) {\n const nextPos = pos + lastNeedleCharPos;\n const ch = (nextPos < 0\n ? lookbehind[self._lookbehindSize + nextPos]\n : data[nextPos]);\n\n if (ch === lastNeedleChar\n && matchNeedle(self, data, pos, lastNeedleCharPos)) {\n self._lookbehindSize = 0;\n ++self.matches;\n if (pos > -self._lookbehindSize)\n self._cb(true, lookbehind, 0, self._lookbehindSize + pos, false);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // No match.\n\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !matchNeedle(self, data, pos, len - pos))\n ++pos;\n\n if (pos < 0) {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = self._lookbehindSize + pos;\n\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n self._cb(false, lookbehind, 0, bytesToCutOff, false);\n }\n\n self._lookbehindSize -= bytesToCutOff;\n lookbehind.copy(lookbehind, 0, bytesToCutOff, self._lookbehindSize);\n lookbehind.set(data, self._lookbehindSize);\n self._lookbehindSize += len;\n\n self._bufPos = len;\n return len;\n }\n\n // Discard lookbehind buffer.\n self._cb(false, lookbehind, 0, self._lookbehindSize, false);\n self._lookbehindSize = 0;\n }\n\n pos += self._bufPos;\n\n const firstNeedleChar = needle[0];\n\n // Lookbehind buffer is now empty. Perform Boyer-Moore-Horspool\n // search with optimized character lookup code that only considers\n // the current round's haystack data.\n while (pos <= end) {\n const ch = data[pos + lastNeedleCharPos];\n\n if (ch === lastNeedleChar\n && data[pos] === firstNeedleChar\n && memcmp(needle, 0, data, pos, lastNeedleCharPos)) {\n ++self.matches;\n if (pos > 0)\n self._cb(true, data, self._bufPos, pos, true);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (pos < len) {\n if (data[pos] !== firstNeedleChar\n || !memcmp(data, pos, needle, 0, len - pos)) {\n ++pos;\n continue;\n }\n data.copy(lookbehind, 0, pos, len);\n self._lookbehindSize = len - pos;\n break;\n }\n\n // Everything until `pos` is guaranteed not to contain needle data.\n if (pos > 0)\n self._cb(false, data, self._bufPos, pos < len ? pos : len, true);\n\n self._bufPos = len;\n return len;\n}\n\nfunction matchNeedle(self, data, pos, len) {\n const lb = self._lookbehind;\n const lbSize = self._lookbehindSize;\n const needle = self._needle;\n\n for (let i = 0; i < len; ++i, ++pos) {\n const ch = (pos < 0 ? lb[lbSize + pos] : data[pos]);\n if (ch !== needle[i])\n return false;\n }\n return true;\n}\n\nmodule.exports = SBMH;\n", "'use strict';\n\nconst { Readable, Writable } = require('stream');\n\nconst StreamSearch = require('streamsearch');\n\nconst {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n} = require('../utils.js');\n\nconst BUF_CRLF = Buffer.from('\\r\\n');\nconst BUF_CR = Buffer.from('\\r');\nconst BUF_DASH = Buffer.from('-');\n\nfunction noop() {}\n\nconst MAX_HEADER_PAIRS = 2000; // From node\nconst MAX_HEADER_SIZE = 16 * 1024; // From node (its default value)\n\nconst HPARSER_NAME = 0;\nconst HPARSER_PRE_OWS = 1;\nconst HPARSER_VALUE = 2;\nclass HeaderParser {\n constructor(cb) {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n this.cb = cb;\n }\n\n reset() {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n }\n\n push(chunk, pos, end) {\n let start = pos;\n while (pos < end) {\n switch (this.state) {\n case HPARSER_NAME: {\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (TOKEN[code] !== 1) {\n if (code !== 58/* ':' */)\n return -1;\n this.name += chunk.latin1Slice(start, pos);\n if (this.name.length === 0)\n return -1;\n ++pos;\n done = true;\n this.state = HPARSER_PRE_OWS;\n break;\n }\n }\n if (!done) {\n this.name += chunk.latin1Slice(start, pos);\n break;\n }\n // FALLTHROUGH\n }\n case HPARSER_PRE_OWS: {\n // Skip optional whitespace\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */) {\n start = pos;\n done = true;\n this.state = HPARSER_VALUE;\n break;\n }\n }\n if (!done)\n break;\n // FALLTHROUGH\n }\n case HPARSER_VALUE:\n switch (this.crlf) {\n case 0: // Nothing yet\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (FIELD_VCHAR[code] !== 1) {\n if (code !== 13/* '\\r' */)\n return -1;\n ++this.crlf;\n break;\n }\n }\n this.value += chunk.latin1Slice(start, pos++);\n break;\n case 1: // Received CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n ++this.crlf;\n break;\n case 2: { // Received CR LF\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code === 32/* ' ' */ || code === 9/* '\\t' */) {\n // Folded value\n start = pos;\n this.crlf = 0;\n } else {\n if (++this.pairCount < MAX_HEADER_PAIRS) {\n this.name = this.name.toLowerCase();\n if (this.header[this.name] === undefined)\n this.header[this.name] = [this.value];\n else\n this.header[this.name].push(this.value);\n }\n if (code === 13/* '\\r' */) {\n ++this.crlf;\n ++pos;\n } else {\n // Assume start of next header field name\n start = pos;\n this.crlf = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n }\n }\n break;\n }\n case 3: { // Received CR LF CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n // End of header\n const header = this.header;\n this.reset();\n this.cb(header);\n return pos;\n }\n }\n break;\n }\n }\n\n return pos;\n }\n}\n\nclass FileStream extends Readable {\n constructor(opts, owner) {\n super(opts);\n this.truncated = false;\n this._readcb = null;\n this.once('end', () => {\n // We need to make sure that we call any outstanding _writecb() that is\n // associated with this file so that processing of the rest of the form\n // can continue. This may not happen if the file stream ends right after\n // backpressure kicks in, so we force it here.\n this._read();\n if (--owner._fileEndsLeft === 0 && owner._finalcb) {\n const cb = owner._finalcb;\n owner._finalcb = null;\n // Make sure other 'end' event handlers get a chance to be executed\n // before busboy's 'finish' event is emitted\n process.nextTick(cb);\n }\n });\n }\n _read(n) {\n const cb = this._readcb;\n if (cb) {\n this._readcb = null;\n cb();\n }\n }\n}\n\nconst ignoreData = {\n push: (chunk, pos) => {},\n destroy: () => {},\n};\n\nfunction callAndUnsetCb(self, err) {\n const cb = self._writecb;\n self._writecb = null;\n if (err)\n self.destroy(err);\n else if (cb)\n cb();\n}\n\nfunction nullDecoder(val, hint) {\n return val;\n}\n\nclass Multipart extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n if (!cfg.conType.params || typeof cfg.conType.params.boundary !== 'string')\n throw new Error('Multipart: Boundary not found');\n\n const boundary = cfg.conType.params.boundary;\n const paramDecoder = (typeof cfg.defParamCharset === 'string'\n && cfg.defParamCharset\n ? getDecoder(cfg.defParamCharset)\n : nullDecoder);\n const defCharset = (cfg.defCharset || 'utf8');\n const preservePath = cfg.preservePath;\n const fileOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.fileHwm === 'number'\n ? cfg.fileHwm\n : undefined),\n };\n\n const limits = cfg.limits;\n const fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n const fileSizeLimit = (limits && typeof limits.fileSize === 'number'\n ? limits.fileSize\n : Infinity);\n const filesLimit = (limits && typeof limits.files === 'number'\n ? limits.files\n : Infinity);\n const fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n const partsLimit = (limits && typeof limits.parts === 'number'\n ? limits.parts\n : Infinity);\n\n let parts = -1; // Account for initial boundary\n let fields = 0;\n let files = 0;\n let skipPart = false;\n\n this._fileEndsLeft = 0;\n this._fileStream = undefined;\n this._complete = false;\n let fileSize = 0;\n\n let field;\n let fieldSize = 0;\n let partCharset;\n let partEncoding;\n let partType;\n let partName;\n let partTruncated = false;\n\n let hitFilesLimit = false;\n let hitFieldsLimit = false;\n\n this._hparser = null;\n const hparser = new HeaderParser((header) => {\n this._hparser = null;\n skipPart = false;\n\n partType = 'text/plain';\n partCharset = defCharset;\n partEncoding = '7bit';\n partName = undefined;\n partTruncated = false;\n\n let filename;\n if (!header['content-disposition']) {\n skipPart = true;\n return;\n }\n\n const disp = parseDisposition(header['content-disposition'][0],\n paramDecoder);\n if (!disp || disp.type !== 'form-data') {\n skipPart = true;\n return;\n }\n\n if (disp.params) {\n if (disp.params.name)\n partName = disp.params.name;\n\n if (disp.params['filename*'])\n filename = disp.params['filename*'];\n else if (disp.params.filename)\n filename = disp.params.filename;\n\n if (filename !== undefined && !preservePath)\n filename = basename(filename);\n }\n\n if (header['content-type']) {\n const conType = parseContentType(header['content-type'][0]);\n if (conType) {\n partType = `${conType.type}/${conType.subtype}`;\n if (conType.params && typeof conType.params.charset === 'string')\n partCharset = conType.params.charset.toLowerCase();\n }\n }\n\n if (header['content-transfer-encoding'])\n partEncoding = header['content-transfer-encoding'][0].toLowerCase();\n\n if (partType === 'application/octet-stream' || filename !== undefined) {\n // File\n\n if (files === filesLimit) {\n if (!hitFilesLimit) {\n hitFilesLimit = true;\n this.emit('filesLimit');\n }\n skipPart = true;\n return;\n }\n ++files;\n\n if (this.listenerCount('file') === 0) {\n skipPart = true;\n return;\n }\n\n fileSize = 0;\n this._fileStream = new FileStream(fileOpts, this);\n ++this._fileEndsLeft;\n this.emit(\n 'file',\n partName,\n this._fileStream,\n { filename,\n encoding: partEncoding,\n mimeType: partType }\n );\n } else {\n // Non-file\n\n if (fields === fieldsLimit) {\n if (!hitFieldsLimit) {\n hitFieldsLimit = true;\n this.emit('fieldsLimit');\n }\n skipPart = true;\n return;\n }\n ++fields;\n\n if (this.listenerCount('field') === 0) {\n skipPart = true;\n return;\n }\n\n field = [];\n fieldSize = 0;\n }\n });\n\n let matchPostBoundary = 0;\n const ssCb = (isMatch, data, start, end, isDataSafe) => {\nretrydata:\n while (data) {\n if (this._hparser !== null) {\n const ret = this._hparser.push(data, start, end);\n if (ret === -1) {\n this._hparser = null;\n hparser.reset();\n this.emit('error', new Error('Malformed part header'));\n break;\n }\n start = ret;\n }\n\n if (start === end)\n break;\n\n if (matchPostBoundary !== 0) {\n if (matchPostBoundary === 1) {\n switch (data[start]) {\n case 45: // '-'\n // Try matching '--' after boundary\n matchPostBoundary = 2;\n ++start;\n break;\n case 13: // '\\r'\n // Try matching CR LF before header\n matchPostBoundary = 3;\n ++start;\n break;\n default:\n matchPostBoundary = 0;\n }\n if (start === end)\n return;\n }\n\n if (matchPostBoundary === 2) {\n matchPostBoundary = 0;\n if (data[start] === 45/* '-' */) {\n // End of multipart data\n this._complete = true;\n this._bparser = ignoreData;\n return;\n }\n // We saw something other than '-', so put the dash we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_DASH, 0, 1, false);\n this._writecb = writecb;\n } else if (matchPostBoundary === 3) {\n matchPostBoundary = 0;\n if (data[start] === 10/* '\\n' */) {\n ++start;\n if (parts >= partsLimit)\n break;\n // Prepare the header parser\n this._hparser = hparser;\n if (start === end)\n break;\n // Process the remaining data as a header\n continue retrydata;\n } else {\n // We saw something other than LF, so put the CR we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_CR, 0, 1, false);\n this._writecb = writecb;\n }\n }\n }\n\n if (!skipPart) {\n if (this._fileStream) {\n let chunk;\n const actualLen = Math.min(end - start, fileSizeLimit - fileSize);\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fileSize += chunk.length;\n if (fileSize === fileSizeLimit) {\n if (chunk.length > 0)\n this._fileStream.push(chunk);\n this._fileStream.emit('limit');\n this._fileStream.truncated = true;\n skipPart = true;\n } else if (!this._fileStream.push(chunk)) {\n if (this._writecb)\n this._fileStream._readcb = this._writecb;\n this._writecb = null;\n }\n } else if (field !== undefined) {\n let chunk;\n const actualLen = Math.min(\n end - start,\n fieldSizeLimit - fieldSize\n );\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fieldSize += actualLen;\n field.push(chunk);\n if (fieldSize === fieldSizeLimit) {\n skipPart = true;\n partTruncated = true;\n }\n }\n }\n\n break;\n }\n\n if (isMatch) {\n matchPostBoundary = 1;\n\n if (this._fileStream) {\n // End the active file stream if the previous part was a file\n this._fileStream.push(null);\n this._fileStream = null;\n } else if (field !== undefined) {\n let data;\n switch (field.length) {\n case 0:\n data = '';\n break;\n case 1:\n data = convertToUTF8(field[0], partCharset, 0);\n break;\n default:\n data = convertToUTF8(\n Buffer.concat(field, fieldSize),\n partCharset,\n 0\n );\n }\n field = undefined;\n fieldSize = 0;\n this.emit(\n 'field',\n partName,\n data,\n { nameTruncated: false,\n valueTruncated: partTruncated,\n encoding: partEncoding,\n mimeType: partType }\n );\n }\n\n if (++parts === partsLimit)\n this.emit('partsLimit');\n }\n };\n this._bparser = new StreamSearch(`\\r\\n--${boundary}`, ssCb);\n\n this._writecb = null;\n this._finalcb = null;\n\n // Just in case there is no preamble\n this.write(BUF_CRLF);\n }\n\n static detect(conType) {\n return (conType.type === 'multipart' && conType.subtype === 'form-data');\n }\n\n _write(chunk, enc, cb) {\n this._writecb = cb;\n this._bparser.push(chunk, 0);\n if (this._writecb)\n callAndUnsetCb(this);\n }\n\n _destroy(err, cb) {\n this._hparser = null;\n this._bparser = ignoreData;\n if (!err)\n err = checkEndState(this);\n const fileStream = this._fileStream;\n if (fileStream) {\n this._fileStream = null;\n fileStream.destroy(err);\n }\n cb(err);\n }\n\n _final(cb) {\n this._bparser.destroy();\n if (!this._complete)\n return cb(new Error('Unexpected end of form'));\n if (this._fileEndsLeft)\n this._finalcb = finalcb.bind(null, this, cb);\n else\n finalcb(this, cb);\n }\n}\n\nfunction finalcb(self, cb, err) {\n if (err)\n return cb(err);\n err = checkEndState(self);\n cb(err);\n}\n\nfunction checkEndState(self) {\n if (self._hparser)\n return new Error('Malformed part header');\n const fileStream = self._fileStream;\n if (fileStream) {\n self._fileStream = null;\n fileStream.destroy(new Error('Unexpected end of file'));\n }\n if (!self._complete)\n return new Error('Unexpected end of form');\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst FIELD_VCHAR = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nmodule.exports = Multipart;\n", "'use strict';\n\nconst { Writable } = require('stream');\n\nconst { getDecoder } = require('../utils.js');\n\nclass URLEncoded extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n let charset = (cfg.defCharset || 'utf8');\n if (cfg.conType.params && typeof cfg.conType.params.charset === 'string')\n charset = cfg.conType.params.charset;\n\n this.charset = charset;\n\n const limits = cfg.limits;\n this.fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n this.fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n this.fieldNameSizeLimit = (\n limits && typeof limits.fieldNameSize === 'number'\n ? limits.fieldNameSize\n : 100\n );\n\n this._inKey = true;\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n this._fields = 0;\n this._key = '';\n this._val = '';\n this._byte = -2;\n this._lastPos = 0;\n this._encode = 0;\n this._decoder = getDecoder(charset);\n }\n\n static detect(conType) {\n return (conType.type === 'application'\n && conType.subtype === 'x-www-form-urlencoded');\n }\n\n _write(chunk, enc, cb) {\n if (this._fields >= this.fieldsLimit)\n return cb();\n\n let i = 0;\n const len = chunk.length;\n this._lastPos = 0;\n\n // Check if we last ended mid-percent-encoded byte\n if (this._byte !== -2) {\n i = readPctEnc(this, chunk, i, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n if (this._inKey)\n ++this._bytesKey;\n else\n ++this._bytesVal;\n }\n\nmain:\n while (i < len) {\n if (this._inKey) {\n // Parsing key\n\n i = skipKeyBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 61: // '='\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n this._inKey = false;\n continue main;\n case 38: // '&'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0) {\n this.emit(\n 'field',\n this._key,\n '',\n { nameTruncated: this._keyTrunc,\n valueTruncated: false,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue;\n case 43: // '+'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._key += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n } else {\n // Parsing value\n\n i = skipValBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 38: // '&'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._inKey = true;\n this._val = this._decoder(this._val, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0 || this._bytesVal > 0) {\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue main;\n case 43: // '+'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._val += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n }\n }\n\n cb();\n }\n\n _final(cb) {\n if (this._byte !== -2)\n return cb(new Error('Malformed urlencoded form'));\n if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) {\n if (this._inKey)\n this._key = this._decoder(this._key, this._encode);\n else\n this._val = this._decoder(this._val, this._encode);\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n cb();\n }\n}\n\nfunction readPctEnc(self, chunk, pos, len) {\n if (pos >= len)\n return len;\n\n if (self._byte === -1) {\n // We saw a '%' but no hex characters yet\n const hexUpper = HEX_VALUES[chunk[pos++]];\n if (hexUpper === -1)\n return -1;\n\n if (hexUpper >= 8)\n self._encode = 2; // Indicate high bits detected\n\n if (pos < len) {\n // Both hex characters are in this chunk\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((hexUpper << 4) + hexLower);\n else\n self._val += String.fromCharCode((hexUpper << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n } else {\n // Only one hex character was available in this chunk\n self._byte = hexUpper;\n }\n } else {\n // We saw only one hex character so far\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((self._byte << 4) + hexLower);\n else\n self._val += String.fromCharCode((self._byte << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipKeyBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesKey > self.fieldNameSizeLimit) {\n if (!self._keyTrunc) {\n if (self._lastPos < pos)\n self._key += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._keyTrunc = true;\n for (; pos < len; ++pos) {\n const code = chunk[pos];\n if (code === 61/* '=' */ || code === 38/* '&' */)\n break;\n ++self._bytesKey;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipValBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesVal > self.fieldSizeLimit) {\n if (!self._valTrunc) {\n if (self._lastPos < pos)\n self._val += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._valTrunc = true;\n for (; pos < len; ++pos) {\n if (chunk[pos] === 38/* '&' */)\n break;\n ++self._bytesVal;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = URLEncoded;\n", "'use strict';\n\nconst { parseContentType } = require('./utils.js');\n\nfunction getInstance(cfg) {\n const headers = cfg.headers;\n const conType = parseContentType(headers['content-type']);\n if (!conType)\n throw new Error('Malformed content type');\n\n for (const type of TYPES) {\n const matched = type.detect(conType);\n if (!matched)\n continue;\n\n const instanceCfg = {\n limits: cfg.limits,\n headers,\n conType,\n highWaterMark: undefined,\n fileHwm: undefined,\n defCharset: undefined,\n defParamCharset: undefined,\n preservePath: false,\n };\n if (cfg.highWaterMark)\n instanceCfg.highWaterMark = cfg.highWaterMark;\n if (cfg.fileHwm)\n instanceCfg.fileHwm = cfg.fileHwm;\n instanceCfg.defCharset = cfg.defCharset;\n instanceCfg.defParamCharset = cfg.defParamCharset;\n instanceCfg.preservePath = cfg.preservePath;\n return new type(instanceCfg);\n }\n\n throw new Error(`Unsupported content type: ${headers['content-type']}`);\n}\n\n// Note: types are explicitly listed here for easier bundling\n// See: https://github.com/mscdex/busboy/issues/121\nconst TYPES = [\n require('./types/multipart'),\n require('./types/urlencoded'),\n].filter(function(typemod) { return typeof typemod.detect === 'function'; });\n\nmodule.exports = (cfg) => {\n if (typeof cfg !== 'object' || cfg === null)\n cfg = {};\n\n if (typeof cfg.headers !== 'object'\n || cfg.headers === null\n || typeof cfg.headers['content-type'] !== 'string') {\n throw new Error('Missing Content-Type');\n }\n\n return getInstance(cfg);\n};\n", "'use strict'\n\nconst { MessageChannel, receiveMessageOnPort } = require('worker_threads')\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\n// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\n// https://fetch.spec.whatwg.org/#request-body-header-name\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type',\n // See https://github.com/nodejs/undici/issues/2021\n // 'Content-Length' is a forbidden header name, which is typically\n // removed in the Headers implementation. However, undici doesn't\n // filter out headers, so we add it here.\n 'content-length'\n]\n\n// https://fetch.spec.whatwg.org/#enumdef-requestduplex\nconst requestDuplex = [\n 'half'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nlet channel\n\n/** @type {globalThis['structuredClone']} */\nconst structuredClone =\n globalThis.structuredClone ??\n // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n // structuredClone was added in v17.0.0, but fetch supports v16.8\n function structuredClone (value, options = undefined) {\n if (arguments.length === 0) {\n throw new TypeError('missing argument')\n }\n\n if (!channel) {\n channel = new MessageChannel()\n }\n channel.port1.unref()\n channel.port2.unref()\n channel.port1.postMessage(value, options?.transfer)\n return receiveMessageOnPort(channel.port2).message\n }\n\nmodule.exports = {\n DOMException,\n structuredClone,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods,\n badPorts,\n requestDuplex\n}\n", "'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (\n newOrigin !== undefined &&\n typeof newOrigin !== 'string' &&\n !(newOrigin instanceof URL)\n ) {\n throw new Error('Invalid base url')\n }\n\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n", "'use strict'\n\nconst { redirectStatus, badPorts, referrerPolicy: referrerPolicyTokens } = require('./constants')\nconst { getGlobalOrigin } = require('./global')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response\u2019s URL list and null if response\u2019s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response\u2019s status is not a redirect status, then return null.\n if (!redirectStatus.includes(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response\u2019s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a header value, then set location to the result of\n // parsing location with response\u2019s URL.\n if (location !== null && isValidHeaderValue(location)) {\n location = new URL(location, responseURL(response))\n }\n\n // 4. If location is a URL whose fragment is null, then set location\u2019s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request\u2019s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url\u2019s scheme is an HTTP(S) scheme and url\u2019s port is a bad port,\n // then return blocked.\n if (urlIsHttpHttpsScheme(url) && badPorts.includes(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\nfunction isTokenChar (c) {\n return !(\n c >= 0x7f ||\n c <= 0x20 ||\n c === '(' ||\n c === ')' ||\n c === '<' ||\n c === '>' ||\n c === '@' ||\n c === ',' ||\n c === ';' ||\n c === ':' ||\n c === '\\\\' ||\n c === '\"' ||\n c === '/' ||\n c === '[' ||\n c === ']' ||\n c === '?' ||\n c === '=' ||\n c === '{' ||\n c === '}'\n )\n}\n\n// See RFC 7230, Section 3.2.6.\n// https://github.com/chromium/chromium/blob/d7da0240cae77824d1eda25745c4022757499131/third_party/blink/renderer/platform/network/http_parsers.cc#L321\nfunction isValidHTTPToken (characters) {\n if (!characters || typeof characters !== 'string') {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n const c = characters.charCodeAt(i)\n if (c > 0x7f || !isTokenChar(c)) {\n return false\n }\n }\n return true\n}\n\n// https://fetch.spec.whatwg.org/#header-name\n// https://github.com/chromium/chromium/blob/b3d37e6f94f87d59e44662d6078f6a12de845d17/net/http/http_util.cc#L342\nfunction isValidHeaderName (potentialValue) {\n if (potentialValue.length === 0) {\n return false\n }\n\n return isValidHTTPToken(potentialValue)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request\u2019s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing \u00A7 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n\n // 8.1 Parse a referrer policy from a Referrer-Policy header\n // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response\u2019s header list.\n const { headersList } = actualResponse\n // 2. Let policy be the empty string.\n // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.\n // 4. Return policy.\n const policyHeader = (headersList.get('referrer-policy') ?? '').split(',')\n\n // Note: As the referrer-policy can contain multiple policies\n // separated by comma, we need to loop through all of them\n // and pick the first valid one.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n let policy = ''\n if (policyHeader.length > 0) {\n // The right-most policy takes precedence.\n // The left-most policy is the fallback.\n for (let i = policyHeader.length; i !== 0; i--) {\n const token = policyHeader[i - 1].trim()\n if (referrerPolicyTokens.includes(token)) {\n policy = token\n break\n }\n }\n }\n\n // 2. If policy is not the empty string, then set request\u2019s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r\u2019s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header\u2019s value to r\u2019s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r\u2019s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request\u2019s response tainting is \"cors\" or request\u2019s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request\u2019s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request\u2019s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request\u2019s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request\u2019s origin is a tuple origin, its scheme is \"https\", and request\u2019s current URL\u2019s scheme is not \"https\", then set serializedOrigin to `null`.\n if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request\u2019s origin is not same origin with request\u2019s current URL\u2019s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request\u2019s header list.\n request.headersList.append('origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // Note: the fetch spec doesn't make use of embedder policy or CSP list\n return {\n referrerPolicy: 'strict-origin-when-cross-origin'\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer (policyContainer) {\n return {\n referrerPolicy: policyContainer.referrerPolicy\n }\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Note: policy cannot (shouldn't) be null or an empty string.\n assert(policy)\n\n // 2. Let environment be request\u2019s client.\n\n let referrerSource = null\n\n // 3. Switch on request\u2019s referrer:\n if (request.referrer === 'client') {\n // Note: node isn't a browser and doesn't implement document/iframes,\n // so we bypass this step and replace it with our own.\n\n const globalOrigin = getGlobalOrigin()\n\n if (!globalOrigin || globalOrigin.origin === 'null') {\n return 'no-referrer'\n }\n\n // note: we need to clone it as it's mutated\n referrerSource = new URL(globalOrigin)\n } else if (request.referrer instanceof URL) {\n // Let referrerSource be request\u2019s referrer.\n referrerSource = request.referrer\n }\n\n // 4. Let request\u2019s referrerURL be the result of stripping referrerSource for\n // use as a referrer.\n let referrerURL = stripURLForReferrer(referrerSource)\n\n // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n // a referrer, with the origin-only flag set to true.\n const referrerOrigin = stripURLForReferrer(referrerSource, true)\n\n // 6. If the result of serializing referrerURL is a string whose length is\n // greater than 4096, set referrerURL to referrerOrigin.\n if (referrerURL.toString().length > 4096) {\n referrerURL = referrerOrigin\n }\n\n const areSameOrigin = sameOrigin(request, referrerURL)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerURL\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerURL : referrerOrigin\n case 'strict-origin-when-cross-origin': {\n const currentURL = requestCurrentURL(request)\n\n // 1. If the origin of referrerURL and the origin of request\u2019s current\n // URL are the same, then return referrerURL.\n if (sameOrigin(referrerURL, currentURL)) {\n return referrerURL\n }\n\n // 2. If referrerURL is a potentially trustworthy URL and request\u2019s\n // current URL is not a potentially trustworthy URL, then return no\n // referrer.\n if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n return 'no-referrer'\n }\n\n // 3. Return referrerOrigin.\n return referrerOrigin\n }\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n * @param {URL} url\n * @param {boolean|undefined} originOnly\n */\nfunction stripURLForReferrer (url, originOnly) {\n // 1. Assert: url is a URL.\n assert(url instanceof URL)\n\n // 2. If url\u2019s scheme is a local scheme, then return no referrer.\n if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n return 'no-referrer'\n }\n\n // 3. Set url\u2019s username to the empty string.\n url.username = ''\n\n // 4. Set url\u2019s password to the empty string.\n url.password = ''\n\n // 5. Set url\u2019s fragment to null.\n url.hash = ''\n\n // 6. If the origin-only flag is true, then:\n if (originOnly) {\n // 1. Set url\u2019s path to \u00AB the empty string \u00BB.\n url.pathname = ''\n\n // 2. Set url\u2019s query to null.\n url.search = ''\n }\n\n // 7. Return url.\n return url\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 4. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n const list = parsedMetadata.sort((c, d) => d.algo.localeCompare(c.algo))\n // get the strongest algorithm\n const strongest = list[0].algo\n // get all entries that use the strongest algorithm; ignore weaker\n const metadata = list.filter((item) => item.algo === strongest)\n\n // 5. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n const actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (actualValue === expectedValue) {\n return true\n }\n }\n\n // 6. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// https://www.w3.org/TR/CSP2/#source-list-syntax\n// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\\x21-\\x7e]?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n const supportedHashes = crypto.getHashes()\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (parsedToken === null || parsedToken.groups === undefined) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm.toLowerCase())) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n if (A.origin === B.origin && A.origin === 'null') {\n return true\n }\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\n// https://fetch.spec.whatwg.org/#concept-method-normalize\nfunction normalizeMethod (method) {\n return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method)\n ? method.toUpperCase()\n : method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, \u00AB value \u00BB).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n/**\n * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n * @param {() => unknown[]} iterator\n * @param {string} name name of the instance\n * @param {'key'|'value'|'key+value'} kind\n */\nfunction makeIterator (iterator, name, kind) {\n const object = {\n index: 0,\n kind,\n target: iterator\n }\n\n const i = {\n next () {\n // 1. Let interface be the interface for which the iterator prototype object exists.\n\n // 2. Let thisValue be the this value.\n\n // 3. Let object be ? ToObject(thisValue).\n\n // 4. If object is a platform object, then perform a security\n // check, passing:\n\n // 5. If object is not a default iterator object for interface,\n // then throw a TypeError.\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n // 6. Let index be object\u2019s index.\n // 7. Let kind be object\u2019s kind.\n // 8. Let values be object\u2019s target's value pairs to iterate over.\n const { index, kind, target } = object\n const values = target()\n\n // 9. Let len be the length of values.\n const len = values.length\n\n // 10. If index is greater than or equal to len, then return\n // CreateIterResultObject(undefined, true).\n if (index >= len) {\n return { value: undefined, done: true }\n }\n\n // 11. Let pair be the entry in values at index index.\n const pair = values[index]\n\n // 12. Set object\u2019s index to index + 1.\n object.index = index + 1\n\n // 13. Return the iterator result for pair and kind.\n return iteratorResult(pair, kind)\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n// https://webidl.spec.whatwg.org/#iterator-result\nfunction iteratorResult (pair, kind) {\n let result\n\n // 1. Let result be a value determined by the value of kind:\n switch (kind) {\n case 'key': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 3. result is key.\n result = pair[0]\n break\n }\n case 'value': {\n // 1. Let idlValue be pair\u2019s value.\n // 2. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 3. result is value.\n result = pair[1]\n break\n }\n case 'key+value': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let idlValue be pair\u2019s value.\n // 3. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 4. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 5. Let array be ! ArrayCreate(2).\n // 6. Call ! CreateDataProperty(array, \"0\", key).\n // 7. Call ! CreateDataProperty(array, \"1\", value).\n // 8. result is array.\n result = pair\n break\n }\n }\n\n // 2. Return CreateIterResultObject(result, false).\n return { value: result, done: false }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nfunction fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let successSteps given a byte sequence bytes be to queue a\n // fetch task to run processBody given bytes, with taskDestination.\n const successSteps = (bytes) => queueMicrotask(() => processBody(bytes))\n\n // 3. Let errorSteps be to queue a fetch task to run processBodyError,\n // with taskDestination.\n const errorSteps = (error) => queueMicrotask(() => processBodyError(error))\n\n // 4. Let reader be the result of getting a reader for body\u2019s stream.\n // If that threw an exception, then run errorSteps with that\n // exception and return.\n let reader\n\n try {\n reader = body.stream.getReader()\n } catch (e) {\n errorSteps(e)\n return\n }\n\n // 5. Read all bytes from reader, given successSteps and errorSteps.\n readAllBytes(reader, successSteps, errorSteps)\n}\n\n/** @type {ReadableStream} */\nlet ReadableStream = globalThis.ReadableStream\n\nfunction isReadableStreamLike (stream) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n return stream instanceof ReadableStream || (\n stream[Symbol.toStringTag] === 'ReadableStream' &&\n typeof stream.tee === 'function'\n )\n}\n\nconst MAXIMUM_ARGUMENT_LENGTH = 65535\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-decode\n * @param {number[]|Uint8Array} input\n */\nfunction isomorphicDecode (input) {\n // 1. To isomorphic decode a byte sequence input, return a string whose code point\n // length is equal to input\u2019s length and whose code points have the same values\n // as the values of input\u2019s bytes, in the same order.\n\n if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n return String.fromCharCode(...input)\n }\n\n return input.reduce((previous, current) => previous + String.fromCharCode(current), '')\n}\n\n/**\n * @param {ReadableStreamController<Uint8Array>} controller\n */\nfunction readableStreamClose (controller) {\n try {\n controller.close()\n } catch (err) {\n // TODO: add comment explaining why this error occurs.\n if (!err.message.includes('Controller is already closed')) {\n throw err\n }\n }\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-encode\n * @param {string} input\n */\nfunction isomorphicEncode (input) {\n // 1. Assert: input contains no code points greater than U+00FF.\n for (let i = 0; i < input.length; i++) {\n assert(input.charCodeAt(i) <= 0xFF)\n }\n\n // 2. Return a byte sequence whose length is equal to input\u2019s code\n // point length and whose bytes have the same values as the\n // values of input\u2019s code points, in the same order\n return input\n}\n\n/**\n * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n * @see https://streams.spec.whatwg.org/#read-loop\n * @param {ReadableStreamDefaultReader} reader\n * @param {(bytes: Uint8Array) => void} successSteps\n * @param {(error: Error) => void} failureSteps\n */\nasync function readAllBytes (reader, successSteps, failureSteps) {\n const bytes = []\n let byteLength = 0\n\n while (true) {\n let done\n let chunk\n\n try {\n ({ done, value: chunk } = await reader.read())\n } catch (e) {\n // 1. Call failureSteps with e.\n failureSteps(e)\n return\n }\n\n if (done) {\n // 1. Call successSteps with bytes.\n successSteps(Buffer.concat(bytes, byteLength))\n return\n }\n\n // 1. If chunk is not a Uint8Array object, call failureSteps\n // with a TypeError and abort these steps.\n if (!isUint8Array(chunk)) {\n failureSteps(new TypeError('Received non-Uint8Array chunk'))\n return\n }\n\n // 2. Append the bytes represented by chunk to bytes.\n bytes.push(chunk)\n byteLength += chunk.length\n\n // 3. Read-loop given reader, bytes, successSteps, and failureSteps.\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#is-local\n * @param {URL} url\n */\nfunction urlIsLocal (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n}\n\n/**\n * @param {string|URL} url\n */\nfunction urlHasHttpsScheme (url) {\n if (typeof url === 'string') {\n return url.startsWith('https:')\n }\n\n return url.protocol === 'https:'\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-scheme\n * @param {URL} url\n */\nfunction urlIsHttpHttpsScheme (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'http:' || protocol === 'https:'\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch,\n isReadableStreamLike,\n readableStreamClose,\n isomorphicEncode,\n isomorphicDecode,\n urlIsLocal,\n urlHasHttpsScheme,\n urlIsHttpHttpsScheme,\n readAllBytes\n}\n", "'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n", "'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\n/** @type {import('../../types/webidl').Webidl} */\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\nwebidl.errors.exception = function (message) {\n return new TypeError(`${message.header}: ${message.message}`)\n}\n\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://webidl.spec.whatwg.org/#implements\nwebidl.brandCheck = function (V, I, opts = undefined) {\n if (opts?.strict !== false && !(V instanceof I)) {\n throw new TypeError('Illegal invocation')\n } else {\n return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n }\n}\n\nwebidl.argumentLengthCheck = function ({ length }, min, ctx) {\n if (length < min) {\n throw webidl.errors.exception({\n message: `${min} argument${min !== 1 ? 's' : ''} required, ` +\n `but${length ? ' only' : ''} ${length} found.`,\n ...ctx\n })\n }\n}\n\nwebidl.illegalConstructor = function () {\n throw webidl.errors.exception({\n header: 'TypeError',\n message: 'Illegal constructor'\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 \u2212 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be \u22122^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength \u2212 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength \u2212 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength \u2212 1 \u2212 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is \u22120, then set x to +0.\n if (x === 0) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +\u221E, or \u2212\u221E, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than \u22120.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +\u221E, or \u2212\u221E, then return +0.\n if (\n Number.isNaN(x) ||\n (x === 0 && Object.is(0, x)) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x \u2265 2^bitLength \u2212 1,\n // then return x \u2212 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 \u00D7 r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-to-record\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (O) => {\n // 1. If Type(O) is not Object, throw a TypeError.\n if (webidl.util.Type(O) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Record',\n message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n })\n }\n\n // 2. Let result be a new empty instance of record<K, V>.\n const result = {}\n\n if (!types.isProxy(O)) {\n // Object.keys only returns enumerable properties\n const keys = Object.keys(O)\n\n for (const key of keys) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n\n // 5. Return result.\n return result\n }\n\n // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n const keys = Reflect.ownKeys(O)\n\n // 4. For each key of keys.\n for (const key of keys) {\n // 1. Let desc be ? O.[[GetOwnProperty]](key).\n const desc = Reflect.getOwnPropertyDescriptor(O, key)\n\n // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n if (desc?.enumerable) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n }\n\n // 5. Return result.\n return result\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n throw webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type === 'Null' || type === 'Undefined') {\n return dict\n } else if (type !== 'Object') {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n const charCode = x.charCodeAt(index)\n\n if (charCode > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at ' +\n `index ${index} has a value of ${charCode} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed')\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long-long\nwebidl.converters['unsigned long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 64, 'unsigned')\n\n // 2. Return the IDL unsigned long long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long\nwebidl.converters['unsigned long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 32, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 32, 'unsigned')\n\n // 2. Return the IDL unsigned long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts)\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T\u2019s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n throw webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence<ByteString>'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence<sequence<ByteString>>'] = webidl.sequenceConverter(\n webidl.converters['sequence<ByteString>']\n)\n\nwebidl.converters['record<ByteString, ByteString>'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n", "const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isomorphicDecode } = require('./util')\n\nconst encoder = new TextEncoder()\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-token-code-point\n */\nconst HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/\nconst HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/ // eslint-disable-line\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n */\nconst HTTP_QUOTED_STRING_TOKENS = /[\\u0009|\\u0020-\\u007E|\\u0080-\\u00FF]/ // eslint-disable-line\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL\u2019s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePointsFast(\n ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = removeASCIIWhitespace(mimeType, true, true)\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = isomorphicDecode(body)\n\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n const href = url.href\n\n if (!excludeFragment) {\n return href\n }\n\n const hash = href.lastIndexOf('#')\n if (hash === -1) {\n return href\n }\n return href.slice(0, hash)\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn\u2019t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n/**\n * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n * @param {string} char\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePointsFast (char, input, position) {\n const idx = input.indexOf(char, position.position)\n const start = position.position\n\n if (idx === -1) {\n position.position = input.length\n return input.slice(start)\n }\n\n position.position = idx\n return input.slice(start, position.position)\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = removeHTTPWhitespace(input, true, true)\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePointsFast(\n '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = removeHTTPWhitespace(subtype, false, true)\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n return 'failure'\n }\n\n const typeLowercase = type.toLowerCase()\n const subtypeLowercase = subtype.toLowerCase()\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: typeLowercase,\n subtype: subtypeLowercase,\n /** @type {Map<string, string>} */\n parameters: new Map(),\n // https://mimesniff.spec.whatwg.org/#mime-type-essence\n essence: `${typeLowercase}/${subtypeLowercase}`\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n char => HTTP_WHITESPACE_REGEX.test(char),\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n parameterValue = removeHTTPWhitespace(parameterValue, false, true)\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType\u2019s parameters[parameterName] does not exist\n // then set mimeType\u2019s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) &&\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data\u2019s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data\u2019s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { parameters, essence } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType\u2019s\n // type, U+002F (/), and mimeType\u2019s subtype.\n let serialization = essence\n\n // 2. For each name \u2192 value of mimeType\u2019s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!HTTP_TOKEN_CODEPOINTS.test(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} char\n */\nfunction isHTTPWhiteSpace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === ' '\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} str\n */\nfunction removeHTTPWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n * @param {string} char\n */\nfunction isASCIIWhitespace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === '\\f' || char === ' '\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace\n */\nfunction removeASCIIWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n collectASequenceOfCodePointsFast,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n", "'use strict'\n\nconst { Blob, File: NativeFile } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' })\n\n fileBits = webidl.converters['sequence<BlobPart>'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n let t = options.type\n let d\n\n // eslint-disable-next-line no-labels\n substep: {\n if (t) {\n t = parseMIMEType(t)\n\n if (t === 'failure') {\n t = ''\n // eslint-disable-next-line no-labels\n break substep\n }\n\n t = serializeAMimeType(t).toLowerCase()\n }\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n d = options.lastModified\n }\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: t })\n this[kState] = {\n name: n,\n lastModified: d,\n type: t\n }\n }\n\n get name () {\n webidl.brandCheck(this, File)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, File)\n\n return this[kState].lastModified\n }\n\n get type () {\n webidl.brandCheck(this, File)\n\n return this[kState].type\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.size\n }\n\n get type () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.type\n }\n\n get name () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nObject.defineProperties(File.prototype, {\n [Symbol.toStringTag]: {\n value: 'File',\n configurable: true\n },\n name: kEnumerableProperty,\n lastModified: kEnumerableProperty\n})\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n ArrayBuffer.isView(V) ||\n types.isAnyArrayBuffer(V)\n ) {\n return webidl.converters.BufferSource(V, opts)\n }\n }\n\n return webidl.converters.USVString(V, opts)\n}\n\nwebidl.converters['sequence<BlobPart>'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(new TextEncoder().encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform\u2019s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return (\n (NativeFile && object instanceof NativeFile) ||\n object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n", "'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File: UndiciFile, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob, File: NativeFile } = require('buffer')\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n constructor (form) {\n if (form !== undefined) {\n throw webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['undefined']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' })\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this\u2019s entry list.\n this[kState] = this[kState].filter(entry => entry.name !== name)\n }\n\n get (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this\u2019s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this\u2019s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' })\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this\u2019s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this\u2019s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n }\n\n entries () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key+value'\n )\n }\n\n keys () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\nObject.defineProperties(FormData.prototype, {\n [Symbol.toStringTag]: {\n value: 'FormData',\n configurable: true\n }\n})\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n /** @type {FilePropertyBag} */\n const options = {\n type: value.type,\n lastModified: value.lastModified\n }\n\n value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n ? new File([value], filename, options)\n : new FileLike(value, filename, options)\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nmodule.exports = { FormData }\n", "'use strict'\n\nconst Busboy = require('busboy')\nconst util = require('../core/util')\nconst {\n ReadableStreamFrom,\n isBlobLike,\n isReadableStreamLike,\n readableStreamClose,\n createDeferredPromise,\n fullyReadBody\n} = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException, structuredClone } = require('./constants')\nconst { Blob, File: NativeFile } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File: UndiciFile } = require('./file')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\n\nlet ReadableStream = globalThis.ReadableStream\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be null.\n let stream = null\n\n // 2. If object is a ReadableStream object, then set stream to object.\n if (object instanceof ReadableStream) {\n stream = object\n } else if (isBlobLike(object)) {\n // 3. Otherwise, if object is a Blob object, set stream to the\n // result of running object\u2019s get stream.\n stream = object.stream()\n } else {\n // 4. Otherwise, set stream to a new ReadableStream object, and set\n // up stream.\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? new TextEncoder().encode(source) : source\n )\n queueMicrotask(() => readableStreamClose(controller))\n },\n start () {},\n type: undefined\n })\n }\n\n // 5. Assert: stream is a ReadableStream object.\n assert(isReadableStreamLike(stream))\n\n // 6. Let action be null.\n let action = null\n\n // 7. Let source be null.\n let source = null\n\n // 8. Let length be null.\n let length = null\n\n // 9. Let type be null.\n let type = null\n\n // 10. Switch on object:\n if (typeof object === 'string') {\n // Set source to the UTF-8 encoding of object.\n // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n source = object\n\n // Set type to `text/plain;charset=UTF-8`.\n type = 'text/plain;charset=UTF-8'\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object\u2019s list.\n source = object.toString()\n\n // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n type = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}`\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy W\u00E4rting <https://jimmy.warting.se/opensource> */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object\u2019s entry list and UTF-8.\n // - This ensures that the body is immutable and can't be changed afterwords\n // - That the content-length is calculated in advance.\n // - And that all parts are pre-encoded and ready to be sent.\n\n const enc = new TextEncoder()\n const blobParts = []\n const rn = new Uint8Array([13, 10]) // '\\r\\n'\n length = 0\n let hasUnknownSizeValue = false\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n const chunk = enc.encode(prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`)\n blobParts.push(chunk)\n length += chunk.byteLength\n } else {\n const chunk = enc.encode(`${prefix}; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') + '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`)\n blobParts.push(chunk, value, rn)\n if (typeof value.size === 'number') {\n length += chunk.byteLength + value.size + rn.byteLength\n } else {\n hasUnknownSizeValue = true\n }\n }\n }\n\n const chunk = enc.encode(`--${boundary}--`)\n blobParts.push(chunk)\n length += chunk.byteLength\n if (hasUnknownSizeValue) {\n length = null\n }\n\n // Set source to object.\n source = object\n\n action = async function * () {\n for (const part of blobParts) {\n if (part.stream) {\n yield * part.stream()\n } else {\n yield part\n }\n }\n }\n\n // Set type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n type = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set source to object.\n source = object\n\n // Set length to object\u2019s size.\n length = object.size\n\n // If object\u2019s type attribute is not the empty byte sequence, set\n // type to its value.\n if (object.type) {\n type = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n }\n\n // 11. If source is a byte sequence, then set action to a\n // step that returns source and length to source\u2019s length.\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 12. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n },\n type: undefined\n })\n }\n\n // 13. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 14. Return (body, type).\n return [body, type]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let \u00AB out1, out2 \u00BB be the result of teeing body\u2019s stream.\n const [out1, out2] = body.stream.tee()\n const out2Clone = structuredClone(out2, { transfer: [out2] })\n // This, for whatever reasons, unrefs out2Clone which allows\n // the process to exit by itself.\n const [, finalClone] = out2Clone.tee()\n\n // 2. Set body\u2019s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: finalClone,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n blob () {\n // The blob() method steps are to return the result of\n // running consume body with this and the following step\n // given a byte sequence bytes: return a Blob whose\n // contents are bytes and whose type attribute is this\u2019s\n // MIME type.\n return specConsumeBody(this, (bytes) => {\n let mimeType = bodyMimeType(this)\n\n if (mimeType === 'failure') {\n mimeType = ''\n } else if (mimeType) {\n mimeType = serializeAMimeType(mimeType)\n }\n\n // Return a Blob whose contents are bytes and type attribute\n // is mimeType.\n return new Blob([bytes], { type: mimeType })\n }, instance)\n },\n\n arrayBuffer () {\n // The arrayBuffer() method steps are to return the result\n // of running consume body with this and the following step\n // given a byte sequence bytes: return a new ArrayBuffer\n // whose contents are bytes.\n return specConsumeBody(this, (bytes) => {\n return new Uint8Array(bytes).buffer\n }, instance)\n },\n\n text () {\n // The text() method steps are to return the result of running\n // consume body with this and UTF-8 decode.\n return specConsumeBody(this, utf8DecodeBytes, instance)\n },\n\n json () {\n // The json() method steps are to return the result of running\n // consume body with this and parse JSON from bytes.\n return specConsumeBody(this, parseJSONFromBytes, instance)\n },\n\n async formData () {\n webidl.brandCheck(this, instance)\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType\u2019s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = Busboy({\n headers,\n defParamCharset: 'utf8'\n })\n } catch (err) {\n throw new DOMException(`${err}`, 'AbortError')\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, info) => {\n const { filename, encoding, mimeType } = info\n const chunks = []\n\n if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(new TypeError(err)))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType\u2019s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n const textDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += textDecoder.decode(chunk, { stream: true })\n }\n text += textDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n throw webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n * @param {Response|Request} object\n * @param {(value: unknown) => unknown} convertBytesToJSValue\n * @param {Response|Request} instance\n */\nasync function specConsumeBody (object, convertBytesToJSValue, instance) {\n webidl.brandCheck(object, instance)\n\n throwIfAborted(object[kState])\n\n // 1. If object is unusable, then return a promise rejected\n // with a TypeError.\n if (bodyUnusable(object[kState].body)) {\n throw new TypeError('Body is unusable')\n }\n\n // 2. Let promise be a new promise.\n const promise = createDeferredPromise()\n\n // 3. Let errorSteps given error be to reject promise with error.\n const errorSteps = (error) => promise.reject(error)\n\n // 4. Let successSteps given a byte sequence data be to resolve\n // promise with the result of running convertBytesToJSValue\n // with data. If that threw an exception, then run errorSteps\n // with that exception.\n const successSteps = (data) => {\n try {\n promise.resolve(convertBytesToJSValue(data))\n } catch (e) {\n errorSteps(e)\n }\n }\n\n // 5. If object\u2019s body is null, then run successSteps with an\n // empty byte sequence.\n if (object[kState].body == null) {\n successSteps(new Uint8Array())\n return promise.promise\n }\n\n // 6. Otherwise, fully read object\u2019s body given successSteps,\n // errorSteps, and object\u2019s relevant global object.\n fullyReadBody(object[kState].body, successSteps, errorSteps)\n\n // 7. Return promise.\n return promise.promise\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction bodyUnusable (body) {\n // An object including the Body interface mixin is\n // said to be unusable if its body is non-null and\n // its body\u2019s stream is disturbed or locked.\n return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#utf-8-decode\n * @param {Buffer} buffer\n */\nfunction utf8DecodeBytes (buffer) {\n if (buffer.length === 0) {\n return ''\n }\n\n // 1. Let buffer be the result of peeking three bytes from\n // ioQueue, converted to a byte sequence.\n\n // 2. If buffer is 0xEF 0xBB 0xBF, then read three\n // bytes from ioQueue. (Do nothing with those bytes.)\n if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n buffer = buffer.subarray(3)\n }\n\n // 3. Process a queue with an instance of UTF-8\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n const output = new TextDecoder().decode(buffer)\n\n // 4. Return output.\n return output\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n * @param {Uint8Array} bytes\n */\nfunction parseJSONFromBytes (bytes) {\n return JSON.parse(utf8DecodeBytes(bytes))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n * @param {import('./response').Response|import('./request').Request} object\n */\nfunction bodyMimeType (object) {\n const { headersList } = object[kState]\n const contentType = headersList.get('content-type')\n\n if (contentType === null) {\n return 'failure'\n }\n\n return parseMIMEType(contentType)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n", "'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n this.contentLength = bodyStream.length\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.onError(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onConnect(abort)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onData(chunk)\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n return this[kHandler].onComplete(trailers)\n }\n\n onError (error) {\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n return this[kHandler].onError(error)\n }\n\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n}\n\nfunction processHeaderValue (key, val) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n val = val != null ? `${val}` : ''\n\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n return `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request, key, val) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type'\n ) {\n request.contentType = val\n request.headers += processHeaderValue(key, val)\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n } else if (value === 'close') {\n request.reset = true\n }\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n request.headers += processHeaderValue(key, val[i])\n }\n } else {\n request.headers += processHeaderValue(key, val)\n }\n }\n}\n\nmodule.exports = Request\n", "'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n", "'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = null\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed] = this[kOnDestroyed] || []\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed] || this[kOnDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n", "'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\n\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache\nif (global.FinalizationRegistry) {\n SessionCache = class WeakSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n this._sessionRegistry = new global.FinalizationRegistry((key) => {\n if (this._sessionCache.size < this._maxCachedSessions) {\n return\n }\n\n const ref = this._sessionCache.get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this._sessionCache.delete(key)\n }\n })\n }\n\n get (sessionKey) {\n const ref = this._sessionCache.get(sessionKey)\n return ref ? ref.deref() : null\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n this._sessionCache.set(sessionKey, new WeakRef(session))\n this._sessionRegistry.register(session, sessionKey)\n }\n }\n} else {\n SessionCache = class SimpleSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n }\n\n get (sessionKey) {\n return this._sessionCache.get(sessionKey)\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n if (this._sessionCache.size >= this._maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = this._sessionCache.keys().next()\n this._sessionCache.delete(oldestKey)\n }\n\n this._sessionCache.set(sessionKey, session)\n }\n }\n}\n\nfunction buildConnector ({ maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions)\n timeout = timeout == null ? 10e3 : timeout\n\n return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n localAddress,\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // TODO (fix): Can a session become invalid once established? Don't think so?\n sessionCache.set(sessionKey, session)\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n localAddress,\n port: port || 80,\n host: hostname\n })\n }\n\n // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n if (options.keepAlive == null || options.keepAlive) {\n const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay\n socket.setKeepAlive(true, keepAliveInitialDelay)\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n", null, null, "'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n this.opts.query = null\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n return (\n (header.length === 4 && header.toString().toLowerCase() === 'host') ||\n (removeContent && header.toString().toLowerCase().indexOf('content-') === 0) ||\n (unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') ||\n (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie')\n )\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n", "'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCrLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC0kBAXsgAEEQav0MAAAAAAAAAAAAAAAAAAAAACIB/QsDACAAIAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AcsBygG4AckBuQHIAboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBANwBC0EAIRAMxgELQQ4hEAzFAQtBDSEQDMQBC0EPIRAMwwELQRAhEAzCAQtBEyEQDMEBC0EUIRAMwAELQRUhEAy/AQtBFiEQDL4BC0EXIRAMvQELQRghEAy8AQtBGSEQDLsBC0EaIRAMugELQRshEAy5AQtBHCEQDLgBC0EIIRAMtwELQR0hEAy2AQtBICEQDLUBC0EfIRAMtAELQQchEAyzAQtBISEQDLIBC0EiIRAMsQELQR4hEAywAQtBIyEQDK8BC0ESIRAMrgELQREhEAytAQtBJCEQDKwBC0ElIRAMqwELQSYhEAyqAQtBJyEQDKkBC0HDASEQDKgBC0EpIRAMpwELQSshEAymAQtBLCEQDKUBC0EtIRAMpAELQS4hEAyjAQtBLyEQDKIBC0HEASEQDKEBC0EwIRAMoAELQTQhEAyfAQtBDCEQDJ4BC0ExIRAMnQELQTIhEAycAQtBMyEQDJsBC0E5IRAMmgELQTUhEAyZAQtBxQEhEAyYAQtBCyEQDJcBC0E6IRAMlgELQTYhEAyVAQtBCiEQDJQBC0E3IRAMkwELQTghEAySAQtBPCEQDJEBC0E7IRAMkAELQT0hEAyPAQtBCSEQDI4BC0EoIRAMjQELQT4hEAyMAQtBPyEQDIsBC0HAACEQDIoBC0HBACEQDIkBC0HCACEQDIgBC0HDACEQDIcBC0HEACEQDIYBC0HFACEQDIUBC0HGACEQDIQBC0EqIRAMgwELQccAIRAMggELQcgAIRAMgQELQckAIRAMgAELQcoAIRAMfwtBywAhEAx+C0HNACEQDH0LQcwAIRAMfAtBzgAhEAx7C0HPACEQDHoLQdAAIRAMeQtB0QAhEAx4C0HSACEQDHcLQdMAIRAMdgtB1AAhEAx1C0HWACEQDHQLQdUAIRAMcwtBBiEQDHILQdcAIRAMcQtBBSEQDHALQdgAIRAMbwtBBCEQDG4LQdkAIRAMbQtB2gAhEAxsC0HbACEQDGsLQdwAIRAMagtBAyEQDGkLQd0AIRAMaAtB3gAhEAxnC0HfACEQDGYLQeEAIRAMZQtB4AAhEAxkC0HiACEQDGMLQeMAIRAMYgtBAiEQDGELQeQAIRAMYAtB5QAhEAxfC0HmACEQDF4LQecAIRAMXQtB6AAhEAxcC0HpACEQDFsLQeoAIRAMWgtB6wAhEAxZC0HsACEQDFgLQe0AIRAMVwtB7gAhEAxWC0HvACEQDFULQfAAIRAMVAtB8QAhEAxTC0HyACEQDFILQfMAIRAMUQtB9AAhEAxQC0H1ACEQDE8LQfYAIRAMTgtB9wAhEAxNC0H4ACEQDEwLQfkAIRAMSwtB+gAhEAxKC0H7ACEQDEkLQfwAIRAMSAtB/QAhEAxHC0H+ACEQDEYLQf8AIRAMRQtBgAEhEAxEC0GBASEQDEMLQYIBIRAMQgtBgwEhEAxBC0GEASEQDEALQYUBIRAMPwtBhgEhEAw+C0GHASEQDD0LQYgBIRAMPAtBiQEhEAw7C0GKASEQDDoLQYsBIRAMOQtBjAEhEAw4C0GNASEQDDcLQY4BIRAMNgtBjwEhEAw1C0GQASEQDDQLQZEBIRAMMwtBkgEhEAwyC0GTASEQDDELQZQBIRAMMAtBlQEhEAwvC0GWASEQDC4LQZcBIRAMLQtBmAEhEAwsC0GZASEQDCsLQZoBIRAMKgtBmwEhEAwpC0GcASEQDCgLQZ0BIRAMJwtBngEhEAwmC0GfASEQDCULQaABIRAMJAtBoQEhEAwjC0GiASEQDCILQaMBIRAMIQtBpAEhEAwgC0GlASEQDB8LQaYBIRAMHgtBpwEhEAwdC0GoASEQDBwLQakBIRAMGwtBqgEhEAwaC0GrASEQDBkLQawBIRAMGAtBrQEhEAwXC0GuASEQDBYLQQEhEAwVC0GvASEQDBQLQbABIRAMEwtBsQEhEAwSC0GzASEQDBELQbIBIRAMEAtBtAEhEAwPC0G1ASEQDA4LQbYBIRAMDQtBtwEhEAwMC0G4ASEQDAsLQbkBIRAMCgtBugEhEAwJC0G7ASEQDAgLQcYBIRAMBwtBvAEhEAwGC0G9ASEQDAULQb4BIRAMBAtBvwEhEAwDC0HAASEQDAILQcIBIRAMAQtBwQEhEAsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='\n", "// @ts-check\n\n'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst util = require('./core/util')\nconst timers = require('./timers')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError,\n ResponseExceededMaxSizeError,\n ClientDestroyedError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors,\n kLocalAddress,\n kMaxResponseSize\n} = require('./core/symbols')\nconst FastBuffer = Buffer[Symbol.species]\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\n/**\n * @type {import('../types/client').default}\n */\nclass Client extends DispatcherBase {\n /**\n *\n * @param {string|URL} url\n * @param {import('../types/client').Client.Options} options\n */\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient,\n localAddress,\n maxResponseSize,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n throw new InvalidArgumentError('localAddress must be valid string IP address')\n }\n\n if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n throw new InvalidArgumentError('maxResponseSize must be a positive number')\n }\n\n if (\n autoSelectFamilyAttemptTimeout != null &&\n (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n ) {\n throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || 16384\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kLocalAddress] = localAddress != null ? localAddress : null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = new Request(origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n return new Promise((resolve) => {\n if (!this[kSize]) {\n resolve(null)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n // TODO (fix): Should we error here with ClientDestroyedError?\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp-wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd-wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp-wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\nllhttpPromise.catch()\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n this.connection = ''\n this.maxResponseSize = client[kMaxResponseSize]\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n timers.clearTimeout(this.timeout)\n if (value) {\n this.timeout = timers.setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message =\n 'Response does not match the HTTP/1.1 protocol (' +\n Buffer.from(llhttp.memory.buffer, ptr, len).toString() +\n ')'\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n timers.clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n this.connection += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = (\n shouldKeepAlive ||\n // Override llhttp value which does not allow keepAlive for HEAD.\n (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n )\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (this.shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n let pause\n try {\n pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n\n if (request.method === 'HEAD') {\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode, maxResponseSize } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n util.destroy(socket, new ResponseExceededMaxSizeError())\n return -1\n }\n\n this.bytesRead += buf.length\n\n try {\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n this.connection = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n try {\n request.onComplete(headers)\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n parser.readMore()\n}\n\nfunction onSocketError (err) {\n const { [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.onMessageComplete()\n return\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser } = this\n\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n return\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client } = this\n\n if (!this[kError] && this[kParser].statusCode && !this[kParser].shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n this[kParser].onMessageComplete()\n }\n\n this[kParser].destroy()\n this[kParser] = null\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substr(1, idx - 1)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (client.destroyed) {\n util.destroy(socket.on('error', () => {}), new ClientDestroyedError())\n return\n }\n\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kError] = null\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n socket[kClient] = client\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n client[kSocket] = socket\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n if (client.destroyed) {\n return\n }\n\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client[kClosedResolve] && !client[kSize]) {\n client[kClosedResolve]()\n client[kClosedResolve] = null\n return\n }\n\n const socket = client[kSocket]\n\n if (socket && !socket.destroyed) {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket) {\n connect(client)\n return\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (util.isStream(request.body) && util.bodyLength(request.body) === 0) {\n request.body\n .on('data', /* istanbul ignore next */ function () {\n /* istanbul ignore next */\n assert(false)\n })\n .on('error', function (err) {\n errorRequest(client, request, err)\n })\n .on('end', function () {\n util.destroy(this)\n })\n\n request.body = null\n }\n\n if (client[kRunning] > 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\nfunction write (client, request) {\n const { body, method, path, host, upgrade, headers, blocking, reset } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n if (request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (reset != null) {\n socket[kReset] = reset\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining] && !socket[kReset]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeStream ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n if (finished) {\n return\n }\n\n try {\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n if (finished) {\n return\n }\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n onFinished(new RequestAbortedError())\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(buffer)\n socket.uncork()\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(socket, err)\n }\n}\n\nasync function writeIterable ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n socket.cork()\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'latin1')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n socket.uncork()\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'latin1')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n", "/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n", "const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n", "'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n", "'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout == null ? 10e3 : connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n", "'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n", "'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n}\n\nmodule.exports = function () {\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n", "'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n", "// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nmodule.exports = class BodyReadable extends Readable {\n constructor ({\n resume,\n abort,\n contentType = '',\n highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n }) {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n async dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n const signal = opts && opts.signal\n const abortFn = () => {\n this.destroy()\n }\n let signalListenerCleanup\n if (signal) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new InvalidArgumentError('signal must be an AbortSignal')\n }\n util.throwIfAborted(signal)\n signalListenerCleanup = util.addAbortListener(signal, abortFn)\n }\n try {\n for await (const chunk of this) {\n util.throwIfAborted(signal)\n limit -= Buffer.byteLength(chunk)\n if (limit < 0) {\n return\n }\n }\n } catch {\n util.throwIfAborted(signal)\n } finally {\n if (typeof signalListenerCleanup === 'function') {\n signalListenerCleanup()\n } else if (signalListenerCleanup) {\n signalListenerCleanup[Symbol.dispose]()\n }\n }\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n", "const assert = require('assert')\nconst {\n ResponseStatusCodeError\n} = require('../core/errors')\nconst { toUSVString } = require('../core/util')\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n assert(body)\n\n let chunks = []\n let limit = 0\n\n for await (const chunk of body) {\n chunks.push(chunk)\n limit += chunk.length\n if (limit > 128 * 1024) {\n chunks = null\n break\n }\n }\n\n if (statusCode === 204 || !contentType || !chunks) {\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = toUSVString(Buffer.concat(chunks))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nmodule.exports = { getResolveErrorBodyCallback }\n", "const { addAbortListener } = require('../core/util')\nconst { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n addAbortListener(self[kSignal], self[kListener])\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n", "'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n throw new InvalidArgumentError('invalid highWaterMark')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n this.highWaterMark = highWaterMark\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n const body = new Readable({ resume, abort, contentType, highWaterMark })\n\n this.callback = null\n this.res = body\n\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n } else {\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\n", "'use strict'\n\nconst { finished, PassThrough } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError || false\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { factory, opaque, context, callback, responseHeaders } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n\n let res\n\n if (this.throwOnError && statusCode >= 400) {\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n res = new PassThrough()\n\n this.callback = null\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body: res, contentType, statusCode, statusMessage, headers }\n )\n } else {\n res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n }\n\n res.on('drain', resume)\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res.write(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n", "'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n", "'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n", "'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n", "'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n", "'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\nconst {\n types: {\n isPromise\n }\n} = require('util')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record<string, string>} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [\n ...keyValuePairs,\n Buffer.from(`${key}`),\n Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n ], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches, _data = data) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const body = typeof _data === 'function'\n ? _data({ ...opts, headers: optsHeaders })\n : _data\n\n // util.types.isPromise is likely needed for jest.\n if (isPromise(body)) {\n // If handleReply is asynchronous, throwing an error\n // in the callback will reject the promise, rather than\n // synchronously throw the error, which breaks some tests.\n // Rather, we wait for the callback to resolve if it is a\n // promise, and then re-run handleReply with the new body.\n body.then((newData) => handleReply(mockDispatches, newData))\n return\n }\n\n const responseData = getResponseData(body)\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n", "'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n", "'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n", "'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(\u2026)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '\u2705' : '\u274C',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n", "'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n", "'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Pool = require('./pool')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n const { clientFactory = defaultFactory } = opts\n\n if (typeof clientFactory !== 'function') {\n throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = opts.headers || {}\n\n if (opts.auth && opts.token) {\n throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token')\n } else if (opts.auth) {\n /* @deprecated in favour of opts.token */\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n } else if (opts.token) {\n this[kProxyHeaders]['proxy-authorization'] = opts.token\n }\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host } = resolvedUrl\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = clientFactory(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError('Proxy response !== 200 when HTTP Tunneling'))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record<string, string>} headers\n * @returns {Record<string, string>}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record<string, string>} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record<string, string>} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n", "'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n", "'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst { webidl } = require('./webidl')\nconst assert = require('assert')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n\n // Trimming the end with `.replace()` and a RegExp is typically subject to\n // ReDoS. This is safer and faster.\n let i = potentialValue.length\n while (/[\\r\\n\\t ]/.test(potentialValue.charAt(--i)));\n return potentialValue.slice(0, i + 1).replace(/^[\\r\\n\\t ]+/, '')\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (const header of object) {\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n throw webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header\u2019s first item, header\u2019s second item) to headers.\n headers.append(header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key \u2192 value in object,\n // append (key, value) to headers\n for (const [key, value] of Object.entries(object)) {\n headers.append(key, value)\n }\n } else {\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n }\n}\n\nclass HeadersList {\n /** @type {[string, string][]|null} */\n cookies = null\n\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n this.cookies = init.cookies\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n this.cookies = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header\u2019s name.\n const lowercaseName = name.toLowerCase()\n const exists = this[kHeadersMap].get(lowercaseName)\n\n // 2. Append (name, value) to list.\n if (exists) {\n const delimiter = lowercaseName === 'cookie' ? '; ' : ', '\n this[kHeadersMap].set(lowercaseName, {\n name: exists.name,\n value: `${exists.value}${delimiter}${value}`\n })\n } else {\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n if (lowercaseName === 'set-cookie') {\n this.cookies ??= []\n this.cookies.push(value)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n const lowercaseName = name.toLowerCase()\n\n if (lowercaseName === 'set-cookie') {\n this.cookies = [value]\n }\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n return this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n\n if (name === 'set-cookie') {\n this.cookies = null\n }\n\n return this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n // 1. If list does not contain name, then return null.\n if (!this.contains(name)) {\n return null\n }\n\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return this[kHeadersMap].get(name.toLowerCase())?.value ?? null\n }\n\n * [Symbol.iterator] () {\n // use the lowercased name\n for (const [name, { value }] of this[kHeadersMap]) {\n yield [name, value]\n }\n }\n\n get entries () {\n const headers = {}\n\n if (this[kHeadersMap].size) {\n for (const { name, value } of this[kHeadersMap].values()) {\n headers[name] = value\n }\n }\n\n return headers\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this\u2019s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers\u2019s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers\u2019s header list.\n // 8. If headers\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n return this[kHeadersList].append(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this\u2019s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this\u2019s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this\u2019s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n return this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this\u2019s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this\u2019s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this\u2019s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n return this[kHeadersList].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n getSetCookie () {\n webidl.brandCheck(this, Headers)\n\n // 1. If this\u2019s header list does not contain `Set-Cookie`, then return \u00AB \u00BB.\n // 2. Return the values of all headers in this\u2019s header list whose name is\n // a byte-case-insensitive match for `Set-Cookie`, in order.\n\n const list = this[kHeadersList].cookies\n\n if (list) {\n return [...list]\n }\n\n return []\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n get [kHeadersSortedMap] () {\n if (this[kHeadersList][kHeadersSortedMap]) {\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n // 1. Let headers be an empty list of headers with the key being the name\n // and value the value.\n const headers = []\n\n // 2. Let names be the result of convert header names to a sorted-lowercase\n // set with all the names of the headers in list.\n const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)\n const cookies = this[kHeadersList].cookies\n\n // 3. For each name of names:\n for (const [name, value] of names) {\n // 1. If name is `set-cookie`, then:\n if (name === 'set-cookie') {\n // 1. Let values be a list of all values of headers in list whose name\n // is a byte-case-insensitive match for name, in order.\n\n // 2. For each value of values:\n // 1. Append (name, value) to headers.\n for (const value of cookies) {\n headers.push([name, value])\n }\n } else {\n // 2. Otherwise:\n\n // 1. Let value be the result of getting name from list.\n\n // 2. Assert: value is non-null.\n assert(value !== null)\n\n // 3. Append (name, value) to headers.\n headers.push([name, value])\n }\n }\n\n this[kHeadersList][kHeadersSortedMap] = headers\n\n // 4. Return headers.\n return headers\n }\n\n keys () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'value'\n )\n }\n\n entries () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key+value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n webidl.brandCheck(this, Headers)\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n getSetCookie: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty,\n [Symbol.iterator]: { enumerable: false },\n [Symbol.toStringTag]: {\n value: 'Headers',\n configurable: true\n }\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence<sequence<ByteString>>'](V)\n }\n\n return webidl.converters['record<ByteString, ByteString>'](V)\n }\n\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n", "'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike,\n isomorphicEncode\n} = require('./util')\nconst {\n redirectStatus,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this\u2019s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data = undefined, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' })\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = new TextEncoder('utf-8').encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this\u2019s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' })\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object\u2019s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatus.includes(status)) {\n throw new RangeError('Invalid status code ' + status)\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this\u2019s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject\u2019s response\u2019s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n const value = isomorphicEncode(URLSerializer(parsedURL))\n\n // 7. Append `Location`/value to responseObject\u2019s response\u2019s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this\u2019s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is this\u2019s response\u2019s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers()\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n // Returns response\u2019s type, e.g., \"cors\".\n get type () {\n webidl.brandCheck(this, Response)\n\n // The type getter steps are to return this\u2019s response\u2019s type.\n return this[kState].type\n }\n\n // Returns response\u2019s URL, if it has one; otherwise the empty string.\n get url () {\n webidl.brandCheck(this, Response)\n\n const urlList = this[kState].urlList\n\n // The url getter steps are to return the empty string if this\u2019s\n // response\u2019s URL is null; otherwise this\u2019s response\u2019s URL,\n // serialized with exclude fragment set to true.\n const url = urlList[urlList.length - 1] ?? null\n\n if (url === null) {\n return ''\n }\n\n return URLSerializer(url, true)\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n webidl.brandCheck(this, Response)\n\n // The redirected getter steps are to return true if this\u2019s response\u2019s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response\u2019s status.\n get status () {\n webidl.brandCheck(this, Response)\n\n // The status getter steps are to return this\u2019s response\u2019s status.\n return this[kState].status\n }\n\n // Returns whether response\u2019s status is an ok status.\n get ok () {\n webidl.brandCheck(this, Response)\n\n // The ok getter steps are to return true if this\u2019s response\u2019s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response\u2019s status message.\n get statusText () {\n webidl.brandCheck(this, Response)\n\n // The statusText getter steps are to return this\u2019s response\u2019s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response\u2019s headers as Headers.\n get headers () {\n webidl.brandCheck(this, Response)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n get body () {\n webidl.brandCheck(this, Response)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Response)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n // Returns a clone of response.\n clone () {\n webidl.brandCheck(this, Response)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n throw webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this\u2019s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Response',\n configurable: true\n }\n})\n\nObject.defineProperties(Response, {\n json: kEnumerableProperty,\n redirect: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response\u2019s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response\u2019s body is non-null, then set newResponse\u2019s body to the\n // result of cloning response\u2019s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response\u2019s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response\u2019s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response\u2019s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(new DOMException('The operation was aborted.', 'AbortError'))\n : makeNetworkError('Request was cancelled.')\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response\u2019s response\u2019s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response\u2019s response\u2019s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response\u2019s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kHeaders], init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n throw webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code ' + response.status\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n types.isAnyArrayBuffer(V) ||\n types.isTypedArray(V) ||\n types.isDataView(V)\n ) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response,\n cloneResponse\n}\n", "/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod,\n makePolicyContainer\n} = require('./util')\nconst {\n forbiddenMethods,\n corsSafeListedMethods,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n requestDuplex\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require('events')\n\nlet TransformStream = globalThis.TransformStream\n\nconst kInit = Symbol('init')\nconst kAbortController = Symbol('abortController')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kInit) {\n return\n }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' })\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin(),\n get origin () {\n return this.baseUrl?.origin\n },\n policyContainer: makePolicyContainer()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this\u2019s relevant settings object\u2019s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input\u2019s request.\n request = input[kState]\n\n // 9. Set signal to input\u2019s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this\u2019s relevant settings object\u2019s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request\u2019s window is an environment settings object and its origin\n // is same origin with origin, then set window to request\u2019s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if ('window' in init) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request\u2019s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request\u2019s method.\n method: request.method,\n // header list A copy of request\u2019s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This\u2019s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request\u2019s priority.\n priority: request.priority,\n // origin request\u2019s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request\u2019s referrer.\n referrer: request.referrer,\n // referrer policy request\u2019s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request\u2019s mode.\n mode: request.mode,\n // credentials mode request\u2019s credentials mode.\n credentials: request.credentials,\n // cache mode request\u2019s cache mode.\n cache: request.cache,\n // redirect mode request\u2019s redirect mode.\n redirect: request.redirect,\n // integrity metadata request\u2019s integrity metadata.\n integrity: request.integrity,\n // keepalive request\u2019s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request\u2019s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request\u2019s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request\u2019s URL list.\n urlList: [...request.urlList]\n })\n\n // 13. If init is not empty, then:\n if (Object.keys(init).length > 0) {\n // 1. If request\u2019s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request\u2019s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request\u2019s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request\u2019s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request\u2019s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request\u2019s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request\u2019s URL to request\u2019s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request\u2019s URL list to \u00AB request\u2019s URL \u00BB.\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request\u2019s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // - parsedReferrer\u2019s scheme is \"about\" and path is the string \"client\"\n // - parsedReferrer\u2019s origin is not same origin with origin\n // then set request\u2019s referrer to \"client\".\n if (\n (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') ||\n (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl))\n ) {\n request.referrer = 'client'\n } else {\n // 4. Otherwise, set request\u2019s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request\u2019s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n throw webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request\u2019s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request\u2019s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n }\n\n // 18. If init[\"cache\"] exists, then set request\u2019s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n }\n\n // 21. If request\u2019s cache mode is \"only-if-cached\" and request\u2019s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request\u2019s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n }\n\n // 23. If init[\"integrity\"] exists, then set request\u2019s integrity metadata to it.\n if (init.integrity !== undefined && init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request\u2019s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(init.method)) {\n throw TypeError(`'${init.method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethods.indexOf(method.toUpperCase()) !== -1) {\n throw TypeError(`'${init.method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethod(init.method)\n\n // 4. Set request\u2019s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this\u2019s request to request.\n this[kState] = request\n\n // 28. Set this\u2019s signal to a new AbortSignal object with this\u2019s relevant\n // Realm.\n // TODO: could this be simplified with AbortSignal.any\n // (https://dom.spec.whatwg.org/#dom-abortsignal-any)\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this\u2019s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n // Keep a strong ref to ac while request object\n // is alive. This is needed to prevent AbortController\n // from being prematurely garbage collected.\n // See, https://github.com/nodejs/undici/issues/1926.\n this[kAbortController] = ac\n\n const acRef = new WeakRef(ac)\n const abort = function () {\n const ac = acRef.deref()\n if (ac !== undefined) {\n ac.abort(this.reason)\n }\n }\n\n // Third-party AbortControllers may not work with these.\n // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n try {\n // If the max amount of listeners is equal to the default, increase it\n // This is only available in node >= v19.9.0\n if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n setMaxListeners(100, signal)\n } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) {\n setMaxListeners(100, signal)\n }\n } catch {}\n\n util.addAbortListener(signal, abort)\n requestFinalizer.register(ac, { signal, abort })\n }\n }\n\n // 30. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is request\u2019s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers()\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this\u2019s request\u2019s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this\u2019s request\u2019s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethods.includes(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this\u2019s headers\u2019s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (Object.keys(init).length !== 0) {\n // 1. Let headers be a copy of this\u2019s headers and its associated header\n // list.\n let headers = new Headers(this[kHeaders])\n\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n if (init.headers !== undefined) {\n headers = init.headers\n }\n\n // 3. Empty this\u2019s headers\u2019s header list.\n this[kHeaders][kHeadersList].clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header\u2019s name/header\u2019s value to this\u2019s headers.\n if (headers.constructor.name === 'Headers') {\n for (const [key, val] of headers) {\n this[kHeaders].append(key, val)\n }\n } else {\n // 5. Otherwise, fill this\u2019s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input\u2019s request\u2019s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request\u2019s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n (init.body != null || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request\u2019s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this\u2019s headers\u2019s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this\u2019s headers.\n if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody\u2019s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If initBody is non-null and init[\"duplex\"] does not exist,\n // then throw a TypeError.\n if (initBody != null && init.duplex == null) {\n throw new TypeError('RequestInit: duplex option is required when sending a body.')\n }\n\n // 2. If this\u2019s request\u2019s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 3. Set this\u2019s request\u2019s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this\u2019s request\u2019s body to finalBody.\n this[kState].body = finalBody\n }\n\n // Returns request\u2019s HTTP method, which is \"GET\" by default.\n get method () {\n webidl.brandCheck(this, Request)\n\n // The method getter steps are to return this\u2019s request\u2019s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n webidl.brandCheck(this, Request)\n\n // The url getter steps are to return this\u2019s request\u2019s URL, serialized.\n return URLSerializer(this[kState].url)\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n webidl.brandCheck(this, Request)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n webidl.brandCheck(this, Request)\n\n // The destination getter are to return this\u2019s request\u2019s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global\u2019s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n webidl.brandCheck(this, Request)\n\n // 1. If this\u2019s request\u2019s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this\u2019s request\u2019s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this\u2019s request\u2019s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request\u2019s\n // referrer.\n get referrerPolicy () {\n webidl.brandCheck(this, Request)\n\n // The referrerPolicy getter steps are to return this\u2019s request\u2019s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n webidl.brandCheck(this, Request)\n\n // The mode getter steps are to return this\u2019s request\u2019s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this\u2019s request\u2019s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser\u2019s cache when fetching.\n get cache () {\n webidl.brandCheck(this, Request)\n\n // The cache getter steps are to return this\u2019s request\u2019s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n webidl.brandCheck(this, Request)\n\n // The redirect getter steps are to return this\u2019s request\u2019s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request\u2019s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n webidl.brandCheck(this, Request)\n\n // The integrity getter steps are to return this\u2019s request\u2019s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n webidl.brandCheck(this, Request)\n\n // The keepalive getter steps are to return this\u2019s request\u2019s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isReloadNavigation getter steps are to return true if this\u2019s\n // request\u2019s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isHistoryNavigation getter steps are to return true if this\u2019s request\u2019s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n webidl.brandCheck(this, Request)\n\n // The signal getter steps are to return this\u2019s signal.\n return this[kSignal]\n }\n\n get body () {\n webidl.brandCheck(this, Request)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Request)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n get duplex () {\n webidl.brandCheck(this, Request)\n\n return 'half'\n }\n\n // Returns a clone of request.\n clone () {\n webidl.brandCheck(this, Request)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this\u2019s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedRequestObject = new Request(kInit)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers()\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject\u2019s signal follow this\u2019s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n util.addAbortListener(\n this.signal,\n () => {\n ac.abort(this.signal.reason)\n }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request\u2019s body is non-null, set newRequest\u2019s body to the\n // result of cloning request\u2019s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty,\n duplex: kEnumerableProperty,\n destination: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n isHistoryNavigation: kEnumerableProperty,\n isReloadNavigation: kEnumerableProperty,\n keepalive: kEnumerableProperty,\n integrity: kEnumerableProperty,\n cache: kEnumerableProperty,\n credentials: kEnumerableProperty,\n attribute: kEnumerableProperty,\n referrerPolicy: kEnumerableProperty,\n referrer: kEnumerableProperty,\n mode: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Request',\n configurable: true\n }\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: referrerPolicy\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: requestMode\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: requestCredentials\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: requestCache\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: requestRedirect\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n },\n {\n key: 'duplex',\n converter: webidl.converters.DOMString,\n allowedValues: requestDuplex\n }\n])\n\nmodule.exports = { Request, makeRequest }\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody,\n readableStreamClose,\n isomorphicEncode,\n urlIsLocal,\n urlIsHttpHttpsScheme,\n urlHasHttpsScheme\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody } = require('./body')\nconst {\n redirectStatus,\n nullBodyStatus,\n safeMethods,\n requestBodyHeader,\n subresource,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\nconst { getGlobalDispatcher } = require('../global')\nconst { webidl } = require('./webidl')\nconst { STATUS_CODES } = require('http')\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream = globalThis.ReadableStream\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n // 2 terminated listeners get added per request,\n // but only 1 gets removed. If there are 20 redirects,\n // 21 listeners will be added.\n // See https://github.com/nodejs/undici/issues/1711\n // TODO (fix): Find and fix root cause for leaked listener.\n this.setMaxListeners(21)\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n // https://fetch.spec.whatwg.org/#fetch-controller-abort\n abort (error) {\n if (this.state !== 'ongoing') {\n return\n }\n\n // 1. Set controller\u2019s state to \"aborted\".\n this.state = 'aborted'\n\n // 2. Let fallbackError be an \"AbortError\" DOMException.\n // 3. Set error to fallbackError if it is not given.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 4. Let serializedError be StructuredSerialize(error).\n // If that threw an exception, catch it, and let\n // serializedError be StructuredSerialize(fallbackError).\n\n // 5. Set controller\u2019s serialized abort reason to serializedError.\n this.serializedAbortReason = error\n\n this.connection?.destroy(error)\n this.emit('terminated', error)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nasync function fetch (input, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' })\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject\u2019s request.\n const request = requestObject[kState]\n\n // 4. If requestObject\u2019s signal\u2019s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort the fetch() call with p, request, null, and\n // requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, null, requestObject.signal.reason)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request\u2019s client\u2019s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request\u2019s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this\u2019s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject\u2019s signal:\n addAbortListener(\n requestObject.signal,\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Assert: controller is non-null.\n assert(controller != null)\n\n // 3. Abort controller with requestObject\u2019s signal\u2019s abort reason.\n controller.abort(requestObject.signal.reason)\n\n // 4. Abort the fetch() call with p, request, responseObject,\n // and requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, responseObject, requestObject.signal.reason)\n }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return\n }\n\n // 2. If response\u2019s aborted flag is set, then:\n if (response.aborted) {\n // 1. Let deserializedError be the result of deserialize a serialized\n // abort reason given controller\u2019s serialized abort reason and\n // relevantRealm.\n\n // 2. Abort the fetch() call with p, request, responseObject, and\n // deserializedError.\n\n abortFetch(p, request, responseObject, controller.serializedAbortReason)\n return\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response\u2019s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response\u2019s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response\u2019s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response\u2019s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL\u2019s scheme is not an HTTP(S) scheme, then return.\n if (!urlIsHttpHttpsScheme(originalURL)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response\u2019s timing allow passed flag is not set, then:\n if (!timingInfo.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo\u2019s end time to the coarsened shared current time\n // given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability.\n // TODO: given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability?\n timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) {\n performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject, error) {\n // Note: AbortSignal.reason was added in node v17.2.0\n // which would give us an undefined error to reject with.\n // Remove this once node v16 is no longer supported.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 1. Reject promise with error.\n p.reject(error)\n\n // 2. If request\u2019s body is not null and is readable, then cancel request\u2019s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 3. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 4. Let response be responseObject\u2019s response.\n const response = responseObject[kState]\n\n // 5. If response\u2019s body is not null and is readable, then error response\u2019s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request\u2019s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request\u2019s client\u2019s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request\u2019s client\u2019s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request\u2019s body is a byte sequence, then set request\u2019s body to\n // request\u2019s body as a body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request\u2019s window is \"client\", then set request\u2019s window to request\u2019s\n // client, if request\u2019s client\u2019s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request\u2019s origin is \"client\", then set request\u2019s origin to request\u2019s\n // client\u2019s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request\u2019s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request\u2019s client is non-null, then set request\u2019s policy\n // container to a clone of request\u2019s client\u2019s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request\u2019s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request\u2019s header list does not contain `Accept`, then:\n if (!request.headersList.contains('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request\u2019s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request\u2019s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request\u2019s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request\u2019s header list.\n if (!request.headersList.contains('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request\u2019s priority is null, then use request\u2019s initiator and\n // destination appropriately in setting request\u2019s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresource.includes(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request\u2019s local-URLs-only flag is set and request\u2019s current URL is\n // not local, then set response to a network error.\n if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request\u2019s referrer policy is the empty string, then set request\u2019s\n // referrer policy to request\u2019s policy container\u2019s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request\u2019s referrer is not \"no-referrer\", then set request\u2019s\n // referrer to the result of invoking determine request\u2019s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request\u2019s current URL\u2019s scheme to \"https\" if all of the following\n // conditions are true:\n // - request\u2019s current URL\u2019s scheme is \"http\"\n // - request\u2019s current URL\u2019s host is a domain\n // - Matching request\u2019s current URL\u2019s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request\u2019s current URL\u2019s origin is same origin with request\u2019s origin,\n // and request\u2019s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request\u2019s current URL\u2019s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request\u2019s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request\u2019s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request\u2019s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request\u2019s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request\u2019s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s current URL\u2019s scheme is not an HTTP(S) scheme\n if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request\u2019s use-CORS-preflight flag is set\n // - request\u2019s unsafe-request flag is set and either request\u2019s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request\u2019s header list is not empty\n // 1. Set request\u2019s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request\u2019s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request\u2019s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response\u2019s header list.\n // TODO\n // 2. If request\u2019s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response\u2019s CORS-exposed header-name list to\n // all unique header names in response\u2019s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response\u2019s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response\u2019s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse\u2019s URL list is empty, then set it to a clone of\n // request\u2019s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request\u2019s timing allow failed flag is unset, then set\n // internalResponse\u2019s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response\u2019s type is \"opaque\", internalResponse\u2019s status is 206,\n // internalResponse\u2019s range-requested flag is set, and request\u2019s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.contains('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request\u2019s method is\n // `HEAD` or `CONNECT`, or internalResponse\u2019s status is a null body status,\n // set internalResponse\u2019s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request\u2019s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request\u2019s response tainting is \"opaque\", or response\u2019s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request\u2019s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response\u2019s body to bytes as a body.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response\u2019s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nasync function schemeFetch (fetchParams) {\n // Note: since the connection is destroyed on redirect, which sets fetchParams to a\n // cancelled state, we do not want this condition to trigger *unless* there have been\n // no redirects. See https://github.com/nodejs/undici/issues/1776\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Let request be fetchParams\u2019s request.\n const { request } = fetchParams\n\n const { protocol: scheme } = requestCurrentURL(request)\n\n // 3. Switch on request\u2019s current URL\u2019s scheme and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request\u2019s current URL\u2019s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is \u00AB (`Content-Type`, `text/html;charset=utf-8`) \u00BB,\n // and body is the empty byte sequence as a body.\n\n // Otherwise, return a network error.\n return makeNetworkError('about scheme is not supported')\n }\n case 'blob:': {\n if (!resolveObjectURL) {\n resolveObjectURL = require('buffer').resolveObjectURL\n }\n\n // 1. Let blobURLEntry be request\u2019s current URL\u2019s blob URL entry.\n const blobURLEntry = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (blobURLEntry.search.length !== 0) {\n return makeNetworkError('NetworkError when attempting to fetch resource.')\n }\n\n const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString())\n\n // 2. If request\u2019s method is not `GET`, blobURLEntry is null, or blobURLEntry\u2019s\n // object is not a Blob object, then return a network error.\n if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n return makeNetworkError('invalid method')\n }\n\n // 3. Let bodyWithType be the result of safely extracting blobURLEntry\u2019s object.\n const bodyWithType = safelyExtractBody(blobURLEntryObject)\n\n // 4. Let body be bodyWithType\u2019s body.\n const body = bodyWithType[0]\n\n // 5. Let length be body\u2019s length, serialized and isomorphic encoded.\n const length = isomorphicEncode(`${body.length}`)\n\n // 6. Let type be bodyWithType\u2019s type if it is non-null; otherwise the empty byte sequence.\n const type = bodyWithType[1] ?? ''\n\n // 7. Return a new response whose status message is `OK`, header list is\n // \u00AB (`Content-Length`, length), (`Content-Type`, type) \u00BB, and body is body.\n const response = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-length', { name: 'Content-Length', value: length }],\n ['content-type', { name: 'Content-Type', value: type }]\n ]\n })\n\n response.body = body\n\n return response\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request\u2019s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return makeNetworkError('failed to fetch the data URL')\n }\n\n // 3. Let mimeType be dataURLStruct\u2019s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is \u00AB (`Content-Type`, mimeType) \u00BB,\n // and body is dataURLStruct\u2019s body as a body.\n return makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', { name: 'Content-Type', value: mimeType }]\n ],\n body: safelyExtractBody(dataURLStruct.body)[0]\n })\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return makeNetworkError('not implemented... yet...')\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return await httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return makeNetworkError('unknown scheme')\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams\u2019s process response done is not null, then queue a fetch\n // task to run fetchParams\u2019s process response done given response, with\n // fetchParams\u2019s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nasync function fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response\u2019s URL list to \u00AB fetchParams\u2019s request\u2019s URL list[0] \u00BB.\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response\u2019s timing info to the result of creating an opaque timing\n // info for fetchParams\u2019s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // If fetchParams\u2019s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams\u2019s process response\n // end-of-body given response with fetchParams\u2019s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams\u2019s process response is non-null, then queue a fetch task\n // to run fetchParams\u2019s process response given response, with fetchParams\u2019s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response\u2019s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n }, {\n size () {\n return 1\n }\n }, {\n size () {\n return 1\n }\n })\n\n // 4. Set response\u2019s body to the result of piping response\u2019s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams\u2019s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams\u2019s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams\u2019s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response\u2019s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams\u2019s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response\u2019s body given processBody, processBodyError,\n // and fetchParams\u2019s task destination.\n await fullyReadBody(response.body, processBody, processBodyError)\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request\u2019s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request\u2019s redirect mode is \"follow\", then set request\u2019s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request\u2019s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request\u2019s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request\u2019s response tainting or response\u2019s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request\u2019s origin, request\u2019s client, request\u2019s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse\u2019s status is a redirect status, then:\n if (redirectStatus.includes(actualResponse.status)) {\n // 1. If actualResponse\u2019s status is not 303, request\u2019s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request\u2019s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nasync function httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response\u2019s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse\u2019s location URL given request\u2019s current\n // URL\u2019s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return makeNetworkError(err)\n }\n\n // 6. If locationURL\u2019s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!urlIsHttpHttpsScheme(locationURL)) {\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // 7. If request\u2019s redirect count is 20, then return a network error.\n if (request.redirectCount === 20) {\n return makeNetworkError('redirect count exceeded')\n }\n\n // 8. Increase request\u2019s redirect count by 1.\n request.redirectCount += 1\n\n // 9. If request\u2019s mode is \"cors\", locationURL includes credentials, and\n // request\u2019s origin is not same origin with locationURL\u2019s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return makeNetworkError('cross origin not allowed for request mode \"cors\"')\n }\n\n // 10. If request\u2019s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n )\n }\n\n // 11. If actualResponse\u2019s status is not 303, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return makeNetworkError()\n }\n\n // 12. If one of the following is true\n // - actualResponse\u2019s status is 301 or 302 and request\u2019s method is `POST`\n // - actualResponse\u2019s status is 303 and request\u2019s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !['GET', 'HEAD'].includes(request.method))\n ) {\n // then:\n // 1. Set request\u2019s method to `GET` and request\u2019s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request\u2019s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request\u2019s current URL\u2019s origin is not same origin with locationURL\u2019s\n // origin, then for each headerName of CORS non-wildcard request-header name,\n // delete headerName from request\u2019s header list.\n if (!sameOrigin(requestCurrentURL(request), locationURL)) {\n // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n request.headersList.delete('authorization')\n }\n\n // 14. If request\u2019s body is non-null, then set request\u2019s body to the first return\n // value of safely extracting request\u2019s body\u2019s source.\n if (request.body != null) {\n assert(request.body.source != null)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 15. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 16. Set timingInfo\u2019s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 17. If timingInfo\u2019s redirect start time is 0, then set timingInfo\u2019s\n // redirect start time to timingInfo\u2019s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 18. Append locationURL to request\u2019s URL list.\n request.urlList.push(locationURL)\n\n // 19. Invoke set request\u2019s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 20. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request\u2019s window is \"no-window\" and request\u2019s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams\u2019s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest\u2019s body\u2019s length, if httpRequest\u2019s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest\u2019s body is null and httpRequest\u2019s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest\u2019s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest\u2019s header list.\n\n // 10. If contentLength is non-null and httpRequest\u2019s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest\u2019s referrer is a URL, then append\n // `Referer`/httpRequest\u2019s referrer, serialized and isomorphic encoded,\n // to httpRequest\u2019s header list.\n if (httpRequest.referrer instanceof URL) {\n httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href))\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest\u2019s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('user-agent')) {\n httpRequest.headersList.append('user-agent', 'undici')\n }\n\n // 15. If httpRequest\u2019s cache mode is \"default\" and httpRequest\u2019s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest\u2019s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.contains('if-modified-since') ||\n httpRequest.headersList.contains('if-none-match') ||\n httpRequest.headersList.contains('if-unmodified-since') ||\n httpRequest.headersList.contains('if-match') ||\n httpRequest.headersList.contains('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest\u2019s cache mode is \"no-cache\", httpRequest\u2019s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest\u2019s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest\u2019s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.contains('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest\u2019s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest\u2019s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest\u2019s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest\u2019s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest\u2019s header list.\n if (httpRequest.headersList.contains('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest\u2019s header list per HTTP. Do not append a given\n // header if httpRequest\u2019s header list contains that header\u2019s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.contains('accept-encoding')) {\n if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest\u2019s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there\u2019s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest\u2019s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest\u2019s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest\u2019s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest\u2019s method is unsafe and forwardResponse\u2019s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethods.includes(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse\u2019s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response\u2019s URL list to a clone of httpRequest\u2019s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest\u2019s header list contains `Range`, then set response\u2019s\n // range-requested flag.\n if (httpRequest.headersList.contains('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response\u2019s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response\u2019s status is 401, httpRequest\u2019s response tainting is not\n // \"cors\", includeCredentials is true, and request\u2019s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response\u2019s status is 407, then:\n if (response.status === 407) {\n // 1. If request\u2019s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request\u2019s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response\u2019s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request\u2019s body is null, or request\u2019s body is non-null and request\u2019s body\u2019s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request\u2019s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request\u2019s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request\u2019s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request\u2019s current URL\u2019s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo\u2019s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection\u2019s\n // timing info, timingInfo\u2019s post-redirect start time, and fetchParams\u2019s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request\u2019s header list.\n\n // 4. Set timingInfo\u2019s final network-request start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request\u2019s body is non-null, and request\u2019s body\u2019s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request\u2019s body in that buffer. If the user agent reads from\n // request\u2019s body beyond that buffer\u2019s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo\u2019s final network-response start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated capability,\n // immediately after the user agent\u2019s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo\u2019s final network-response start time above.\n\n // - If request\u2019s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request\u2019s window is an environment settings object, make the\n // dialog available in request\u2019s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request\u2019s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams\u2019s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams\u2019s process request\n // end-of-body and fetchParams\u2019s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams\u2019s process request body is non-null, then run\n // fetchParams\u2019s process request body given bytes\u2019s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams\u2019s process request end-of-body is non-null,\n // then run fetchParams\u2019s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams\u2019s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request\u2019s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams\u2019s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n // socket is only provided for websockets\n const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody })\n\n if (socket) {\n response = makeResponse({ status, statusText, headersList, socket })\n } else {\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n }\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams\u2019s\n // controller with reason, given reason.\n const cancelAlgorithm = (reason) => {\n fetchParams.controller.abort(reason)\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n {\n highWaterMark: 0,\n size () {\n return 1\n }\n }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response\u2019s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request\u2019s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response\u2019s header list, if any, and request\u2019s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n let isFailure\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n\n // err may be propagated from the result of calling readablestream.cancel,\n // which might not be an error. https://github.com/nodejs/undici/issues/2009\n isFailure = true\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response\u2019s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n readableStreamClose(fetchParams.controller.controller)\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo\u2019s decoded body size by bytes\u2019s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams\u2019s controller.\n if (isFailure) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn\u2019t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response\u2019s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, then error stream with the result of\n // deserialize a serialized abort reason given fetchParams\u2019s\n // controller\u2019s serialized abort reason and an\n // implementation-defined realm.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n fetchParams.controller.serializedAbortReason\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n /** @type {import('../..').Agent} */\n const agent = fetchParams.controller.dispatcher\n\n return new Promise((resolve, reject) => agent.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && request.body.source : body,\n headers: request.headersList.entries,\n maxRedirections: 0,\n upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse()\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers.append(key, val)\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatus.includes(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n if (coding === 'x-gzip' || coding === 'gzip') {\n decoders.push(zlib.createGunzip({\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n }))\n } else if (coding === 'deflate') {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response\u2019s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response\u2019s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo\u2019s encoded body size by bytes\u2019s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n },\n\n onUpgrade (status, headersList, socket) {\n if (status !== 101) {\n return\n }\n\n const headers = new Headers()\n\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n headers.append(key, val)\n }\n\n resolve({\n status,\n statusText: STATUS_CODES[status],\n headersList: headers[kHeadersList],\n socket\n })\n\n return true\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n", "'use strict'\n\nmodule.exports = {\n kState: Symbol('FileReader state'),\n kResult: Symbol('FileReader result'),\n kError: Symbol('FileReader error'),\n kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'),\n kEvents: Symbol('FileReader events'),\n kAborted: Symbol('FileReader aborted')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\n\nconst kState = Symbol('ProgressEvent state')\n\n/**\n * @see https://xhr.spec.whatwg.org/#progressevent\n */\nclass ProgressEvent extends Event {\n constructor (type, eventInitDict = {}) {\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {})\n\n super(type, eventInitDict)\n\n this[kState] = {\n lengthComputable: eventInitDict.lengthComputable,\n loaded: eventInitDict.loaded,\n total: eventInitDict.total\n }\n }\n\n get lengthComputable () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].lengthComputable\n }\n\n get loaded () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].loaded\n }\n\n get total () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].total\n }\n}\n\nwebidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n {\n key: 'lengthComputable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'loaded',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'total',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n])\n\nmodule.exports = {\n ProgressEvent\n}\n", "'use strict'\n\n/**\n * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n * @param {string|undefined} label\n */\nfunction getEncoding (label) {\n if (!label) {\n return 'failure'\n }\n\n // 1. Remove any leading and trailing ASCII whitespace from label.\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, then return the\n // corresponding encoding; otherwise return failure.\n switch (label.trim().toLowerCase()) {\n case 'unicode-1-1-utf-8':\n case 'unicode11utf8':\n case 'unicode20utf8':\n case 'utf-8':\n case 'utf8':\n case 'x-unicode20utf8':\n return 'UTF-8'\n case '866':\n case 'cp866':\n case 'csibm866':\n case 'ibm866':\n return 'IBM866'\n case 'csisolatin2':\n case 'iso-8859-2':\n case 'iso-ir-101':\n case 'iso8859-2':\n case 'iso88592':\n case 'iso_8859-2':\n case 'iso_8859-2:1987':\n case 'l2':\n case 'latin2':\n return 'ISO-8859-2'\n case 'csisolatin3':\n case 'iso-8859-3':\n case 'iso-ir-109':\n case 'iso8859-3':\n case 'iso88593':\n case 'iso_8859-3':\n case 'iso_8859-3:1988':\n case 'l3':\n case 'latin3':\n return 'ISO-8859-3'\n case 'csisolatin4':\n case 'iso-8859-4':\n case 'iso-ir-110':\n case 'iso8859-4':\n case 'iso88594':\n case 'iso_8859-4':\n case 'iso_8859-4:1988':\n case 'l4':\n case 'latin4':\n return 'ISO-8859-4'\n case 'csisolatincyrillic':\n case 'cyrillic':\n case 'iso-8859-5':\n case 'iso-ir-144':\n case 'iso8859-5':\n case 'iso88595':\n case 'iso_8859-5':\n case 'iso_8859-5:1988':\n return 'ISO-8859-5'\n case 'arabic':\n case 'asmo-708':\n case 'csiso88596e':\n case 'csiso88596i':\n case 'csisolatinarabic':\n case 'ecma-114':\n case 'iso-8859-6':\n case 'iso-8859-6-e':\n case 'iso-8859-6-i':\n case 'iso-ir-127':\n case 'iso8859-6':\n case 'iso88596':\n case 'iso_8859-6':\n case 'iso_8859-6:1987':\n return 'ISO-8859-6'\n case 'csisolatingreek':\n case 'ecma-118':\n case 'elot_928':\n case 'greek':\n case 'greek8':\n case 'iso-8859-7':\n case 'iso-ir-126':\n case 'iso8859-7':\n case 'iso88597':\n case 'iso_8859-7':\n case 'iso_8859-7:1987':\n case 'sun_eu_greek':\n return 'ISO-8859-7'\n case 'csiso88598e':\n case 'csisolatinhebrew':\n case 'hebrew':\n case 'iso-8859-8':\n case 'iso-8859-8-e':\n case 'iso-ir-138':\n case 'iso8859-8':\n case 'iso88598':\n case 'iso_8859-8':\n case 'iso_8859-8:1988':\n case 'visual':\n return 'ISO-8859-8'\n case 'csiso88598i':\n case 'iso-8859-8-i':\n case 'logical':\n return 'ISO-8859-8-I'\n case 'csisolatin6':\n case 'iso-8859-10':\n case 'iso-ir-157':\n case 'iso8859-10':\n case 'iso885910':\n case 'l6':\n case 'latin6':\n return 'ISO-8859-10'\n case 'iso-8859-13':\n case 'iso8859-13':\n case 'iso885913':\n return 'ISO-8859-13'\n case 'iso-8859-14':\n case 'iso8859-14':\n case 'iso885914':\n return 'ISO-8859-14'\n case 'csisolatin9':\n case 'iso-8859-15':\n case 'iso8859-15':\n case 'iso885915':\n case 'iso_8859-15':\n case 'l9':\n return 'ISO-8859-15'\n case 'iso-8859-16':\n return 'ISO-8859-16'\n case 'cskoi8r':\n case 'koi':\n case 'koi8':\n case 'koi8-r':\n case 'koi8_r':\n return 'KOI8-R'\n case 'koi8-ru':\n case 'koi8-u':\n return 'KOI8-U'\n case 'csmacintosh':\n case 'mac':\n case 'macintosh':\n case 'x-mac-roman':\n return 'macintosh'\n case 'iso-8859-11':\n case 'iso8859-11':\n case 'iso885911':\n case 'tis-620':\n case 'windows-874':\n return 'windows-874'\n case 'cp1250':\n case 'windows-1250':\n case 'x-cp1250':\n return 'windows-1250'\n case 'cp1251':\n case 'windows-1251':\n case 'x-cp1251':\n return 'windows-1251'\n case 'ansi_x3.4-1968':\n case 'ascii':\n case 'cp1252':\n case 'cp819':\n case 'csisolatin1':\n case 'ibm819':\n case 'iso-8859-1':\n case 'iso-ir-100':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'iso_8859-1:1987':\n case 'l1':\n case 'latin1':\n case 'us-ascii':\n case 'windows-1252':\n case 'x-cp1252':\n return 'windows-1252'\n case 'cp1253':\n case 'windows-1253':\n case 'x-cp1253':\n return 'windows-1253'\n case 'cp1254':\n case 'csisolatin5':\n case 'iso-8859-9':\n case 'iso-ir-148':\n case 'iso8859-9':\n case 'iso88599':\n case 'iso_8859-9':\n case 'iso_8859-9:1989':\n case 'l5':\n case 'latin5':\n case 'windows-1254':\n case 'x-cp1254':\n return 'windows-1254'\n case 'cp1255':\n case 'windows-1255':\n case 'x-cp1255':\n return 'windows-1255'\n case 'cp1256':\n case 'windows-1256':\n case 'x-cp1256':\n return 'windows-1256'\n case 'cp1257':\n case 'windows-1257':\n case 'x-cp1257':\n return 'windows-1257'\n case 'cp1258':\n case 'windows-1258':\n case 'x-cp1258':\n return 'windows-1258'\n case 'x-mac-cyrillic':\n case 'x-mac-ukrainian':\n return 'x-mac-cyrillic'\n case 'chinese':\n case 'csgb2312':\n case 'csiso58gb231280':\n case 'gb2312':\n case 'gb_2312':\n case 'gb_2312-80':\n case 'gbk':\n case 'iso-ir-58':\n case 'x-gbk':\n return 'GBK'\n case 'gb18030':\n return 'gb18030'\n case 'big5':\n case 'big5-hkscs':\n case 'cn-big5':\n case 'csbig5':\n case 'x-x-big5':\n return 'Big5'\n case 'cseucpkdfmtjapanese':\n case 'euc-jp':\n case 'x-euc-jp':\n return 'EUC-JP'\n case 'csiso2022jp':\n case 'iso-2022-jp':\n return 'ISO-2022-JP'\n case 'csshiftjis':\n case 'ms932':\n case 'ms_kanji':\n case 'shift-jis':\n case 'shift_jis':\n case 'sjis':\n case 'windows-31j':\n case 'x-sjis':\n return 'Shift_JIS'\n case 'cseuckr':\n case 'csksc56011987':\n case 'euc-kr':\n case 'iso-ir-149':\n case 'korean':\n case 'ks_c_5601-1987':\n case 'ks_c_5601-1989':\n case 'ksc5601':\n case 'ksc_5601':\n case 'windows-949':\n return 'EUC-KR'\n case 'csiso2022kr':\n case 'hz-gb-2312':\n case 'iso-2022-cn':\n case 'iso-2022-cn-ext':\n case 'iso-2022-kr':\n case 'replacement':\n return 'replacement'\n case 'unicodefffe':\n case 'utf-16be':\n return 'UTF-16BE'\n case 'csunicode':\n case 'iso-10646-ucs-2':\n case 'ucs-2':\n case 'unicode':\n case 'unicodefeff':\n case 'utf-16':\n case 'utf-16le':\n return 'UTF-16LE'\n case 'x-user-defined':\n return 'x-user-defined'\n default: return 'failure'\n }\n}\n\nmodule.exports = {\n getEncoding\n}\n", "'use strict'\n\nconst {\n kState,\n kError,\n kResult,\n kAborted,\n kLastProgressEventFired\n} = require('./symbols')\nconst { ProgressEvent } = require('./progressevent')\nconst { getEncoding } = require('./encoding')\nconst { DOMException } = require('../fetch/constants')\nconst { serializeAMimeType, parseMIMEType } = require('../fetch/dataURL')\nconst { types } = require('util')\nconst { StringDecoder } = require('string_decoder')\nconst { btoa } = require('buffer')\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#readOperation\n * @param {import('./filereader').FileReader} fr\n * @param {import('buffer').Blob} blob\n * @param {string} type\n * @param {string?} encodingName\n */\nfunction readOperation (fr, blob, type, encodingName) {\n // 1. If fr\u2019s state is \"loading\", throw an InvalidStateError\n // DOMException.\n if (fr[kState] === 'loading') {\n throw new DOMException('Invalid state', 'InvalidStateError')\n }\n\n // 2. Set fr\u2019s state to \"loading\".\n fr[kState] = 'loading'\n\n // 3. Set fr\u2019s result to null.\n fr[kResult] = null\n\n // 4. Set fr\u2019s error to null.\n fr[kError] = null\n\n // 5. Let stream be the result of calling get stream on blob.\n /** @type {import('stream/web').ReadableStream} */\n const stream = blob.stream()\n\n // 6. Let reader be the result of getting a reader from stream.\n const reader = stream.getReader()\n\n // 7. Let bytes be an empty byte sequence.\n /** @type {Uint8Array[]} */\n const bytes = []\n\n // 8. Let chunkPromise be the result of reading a chunk from\n // stream with reader.\n let chunkPromise = reader.read()\n\n // 9. Let isFirstChunk be true.\n let isFirstChunk = true\n\n // 10. In parallel, while true:\n // Note: \"In parallel\" just means non-blocking\n // Note 2: readOperation itself cannot be async as double\n // reading the body would then reject the promise, instead\n // of throwing an error.\n ;(async () => {\n while (!fr[kAborted]) {\n // 1. Wait for chunkPromise to be fulfilled or rejected.\n try {\n const { done, value } = await chunkPromise\n\n // 2. If chunkPromise is fulfilled, and isFirstChunk is\n // true, queue a task to fire a progress event called\n // loadstart at fr.\n if (isFirstChunk && !fr[kAborted]) {\n queueMicrotask(() => {\n fireAProgressEvent('loadstart', fr)\n })\n }\n\n // 3. Set isFirstChunk to false.\n isFirstChunk = false\n\n // 4. If chunkPromise is fulfilled with an object whose\n // done property is false and whose value property is\n // a Uint8Array object, run these steps:\n if (!done && types.isUint8Array(value)) {\n // 1. Let bs be the byte sequence represented by the\n // Uint8Array object.\n\n // 2. Append bs to bytes.\n bytes.push(value)\n\n // 3. If roughly 50ms have passed since these steps\n // were last invoked, queue a task to fire a\n // progress event called progress at fr.\n if (\n (\n fr[kLastProgressEventFired] === undefined ||\n Date.now() - fr[kLastProgressEventFired] >= 50\n ) &&\n !fr[kAborted]\n ) {\n fr[kLastProgressEventFired] = Date.now()\n queueMicrotask(() => {\n fireAProgressEvent('progress', fr)\n })\n }\n\n // 4. Set chunkPromise to the result of reading a\n // chunk from stream with reader.\n chunkPromise = reader.read()\n } else if (done) {\n // 5. Otherwise, if chunkPromise is fulfilled with an\n // object whose done property is true, queue a task\n // to run the following steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Let result be the result of package data given\n // bytes, type, blob\u2019s type, and encodingName.\n try {\n const result = packageData(bytes, type, blob.type, encodingName)\n\n // 4. Else:\n\n if (fr[kAborted]) {\n return\n }\n\n // 1. Set fr\u2019s result to result.\n fr[kResult] = result\n\n // 2. Fire a progress event called load at the fr.\n fireAProgressEvent('load', fr)\n } catch (error) {\n // 3. If package data threw an exception error:\n\n // 1. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 2. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n }\n\n // 5. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at the fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n } catch (error) {\n if (fr[kAborted]) {\n return\n }\n\n // 6. Otherwise, if chunkPromise is rejected with an\n // error error, queue a task to run the following\n // steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 3. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n\n // 4. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n }\n })()\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e The name of the event\n * @param {import('./filereader').FileReader} reader\n */\nfunction fireAProgressEvent (e, reader) {\n // The progress event e does not bubble. e.bubbles must be false\n // The progress event e is NOT cancelable. e.cancelable must be false\n const event = new ProgressEvent(e, {\n bubbles: false,\n cancelable: false\n })\n\n reader.dispatchEvent(event)\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#blob-package-data\n * @param {Uint8Array[]} bytes\n * @param {string} type\n * @param {string?} mimeType\n * @param {string?} encodingName\n */\nfunction packageData (bytes, type, mimeType, encodingName) {\n // 1. A Blob has an associated package data algorithm, given\n // bytes, a type, a optional mimeType, and a optional\n // encodingName, which switches on type and runs the\n // associated steps:\n\n switch (type) {\n case 'DataURL': {\n // 1. Return bytes as a DataURL [RFC2397] subject to\n // the considerations below:\n // * Use mimeType as part of the Data URL if it is\n // available in keeping with the Data URL\n // specification [RFC2397].\n // * If mimeType is not available return a Data URL\n // without a media-type. [RFC2397].\n\n // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n // dataurl := \"data:\" [ mediatype ] [ \";base64\" ] \",\" data\n // mediatype := [ type \"/\" subtype ] *( \";\" parameter )\n // data := *urlchar\n // parameter := attribute \"=\" value\n let dataURL = 'data:'\n\n const parsed = parseMIMEType(mimeType || 'application/octet-stream')\n\n if (parsed !== 'failure') {\n dataURL += serializeAMimeType(parsed)\n }\n\n dataURL += ';base64,'\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n dataURL += btoa(decoder.write(chunk))\n }\n\n dataURL += btoa(decoder.end())\n\n return dataURL\n }\n case 'Text': {\n // 1. Let encoding be failure\n let encoding = 'failure'\n\n // 2. If the encodingName is present, set encoding to the\n // result of getting an encoding from encodingName.\n if (encodingName) {\n encoding = getEncoding(encodingName)\n }\n\n // 3. If encoding is failure, and mimeType is present:\n if (encoding === 'failure' && mimeType) {\n // 1. Let type be the result of parse a MIME type\n // given mimeType.\n const type = parseMIMEType(mimeType)\n\n // 2. If type is not failure, set encoding to the result\n // of getting an encoding from type\u2019s parameters[\"charset\"].\n if (type !== 'failure') {\n encoding = getEncoding(type.parameters.get('charset'))\n }\n }\n\n // 4. If encoding is failure, then set encoding to UTF-8.\n if (encoding === 'failure') {\n encoding = 'UTF-8'\n }\n\n // 5. Decode bytes using fallback encoding encoding, and\n // return the result.\n return decode(bytes, encoding)\n }\n case 'ArrayBuffer': {\n // Return a new ArrayBuffer whose contents are bytes.\n const sequence = combineByteSequences(bytes)\n\n return sequence.buffer\n }\n case 'BinaryString': {\n // Return bytes as a binary string, in which every byte\n // is represented by a code unit of equal value [0..255].\n let binaryString = ''\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n binaryString += decoder.write(chunk)\n }\n\n binaryString += decoder.end()\n\n return binaryString\n }\n }\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#decode\n * @param {Uint8Array[]} ioQueue\n * @param {string} encoding\n */\nfunction decode (ioQueue, encoding) {\n const bytes = combineByteSequences(ioQueue)\n\n // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n const BOMEncoding = BOMSniffing(bytes)\n\n let slice = 0\n\n // 2. If BOMEncoding is non-null:\n if (BOMEncoding !== null) {\n // 1. Set encoding to BOMEncoding.\n encoding = BOMEncoding\n\n // 2. Read three bytes from ioQueue, if BOMEncoding is\n // UTF-8; otherwise read two bytes.\n // (Do nothing with those bytes.)\n slice = BOMEncoding === 'UTF-8' ? 3 : 2\n }\n\n // 3. Process a queue with an instance of encoding\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n\n // 4. Return output.\n\n const sliced = bytes.slice(slice)\n return new TextDecoder(encoding).decode(sliced)\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#bom-sniff\n * @param {Uint8Array} ioQueue\n */\nfunction BOMSniffing (ioQueue) {\n // 1. Let BOM be the result of peeking 3 bytes from ioQueue,\n // converted to a byte sequence.\n const [a, b, c] = ioQueue\n\n // 2. For each of the rows in the table below, starting with\n // the first one and going down, if BOM starts with the\n // bytes given in the first column, then return the\n // encoding given in the cell in the second column of that\n // row. Otherwise, return null.\n if (a === 0xEF && b === 0xBB && c === 0xBF) {\n return 'UTF-8'\n } else if (a === 0xFE && b === 0xFF) {\n return 'UTF-16BE'\n } else if (a === 0xFF && b === 0xFE) {\n return 'UTF-16LE'\n }\n\n return null\n}\n\n/**\n * @param {Uint8Array[]} sequences\n */\nfunction combineByteSequences (sequences) {\n const size = sequences.reduce((a, b) => {\n return a + b.byteLength\n }, 0)\n\n let offset = 0\n\n return sequences.reduce((a, b) => {\n a.set(b, offset)\n offset += b.byteLength\n return a\n }, new Uint8Array(size))\n}\n\nmodule.exports = {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n}\n", "'use strict'\n\nconst {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n} = require('./util')\nconst {\n kState,\n kError,\n kResult,\n kEvents,\n kAborted\n} = require('./symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass FileReader extends EventTarget {\n constructor () {\n super()\n\n this[kState] = 'empty'\n this[kResult] = null\n this[kError] = null\n this[kEvents] = {\n loadend: null,\n error: null,\n abort: null,\n load: null,\n progress: null,\n loadstart: null\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n * @param {import('buffer').Blob} blob\n */\n readAsArrayBuffer (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsArrayBuffer(blob) method, when invoked,\n // must initiate a read operation for blob with ArrayBuffer.\n readOperation(this, blob, 'ArrayBuffer')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n * @param {import('buffer').Blob} blob\n */\n readAsBinaryString (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsBinaryString(blob) method, when invoked,\n // must initiate a read operation for blob with BinaryString.\n readOperation(this, blob, 'BinaryString')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsDataText\n * @param {import('buffer').Blob} blob\n * @param {string?} encoding\n */\n readAsText (blob, encoding = undefined) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n if (encoding !== undefined) {\n encoding = webidl.converters.DOMString(encoding)\n }\n\n // The readAsText(blob, encoding) method, when invoked,\n // must initiate a read operation for blob with Text and encoding.\n readOperation(this, blob, 'Text', encoding)\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n * @param {import('buffer').Blob} blob\n */\n readAsDataURL (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsDataURL(blob) method, when invoked, must\n // initiate a read operation for blob with DataURL.\n readOperation(this, blob, 'DataURL')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-abort\n */\n abort () {\n // 1. If this's state is \"empty\" or if this's state is\n // \"done\" set this's result to null and terminate\n // this algorithm.\n if (this[kState] === 'empty' || this[kState] === 'done') {\n this[kResult] = null\n return\n }\n\n // 2. If this's state is \"loading\" set this's state to\n // \"done\" and set this's result to null.\n if (this[kState] === 'loading') {\n this[kState] = 'done'\n this[kResult] = null\n }\n\n // 3. If there are any tasks from this on the file reading\n // task source in an affiliated task queue, then remove\n // those tasks from that task queue.\n this[kAborted] = true\n\n // 4. Terminate the algorithm for the read method being processed.\n // TODO\n\n // 5. Fire a progress event called abort at this.\n fireAProgressEvent('abort', this)\n\n // 6. If this's state is not \"loading\", fire a progress\n // event called loadend at this.\n if (this[kState] !== 'loading') {\n fireAProgressEvent('loadend', this)\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n */\n get readyState () {\n webidl.brandCheck(this, FileReader)\n\n switch (this[kState]) {\n case 'empty': return this.EMPTY\n case 'loading': return this.LOADING\n case 'done': return this.DONE\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n */\n get result () {\n webidl.brandCheck(this, FileReader)\n\n // The result attribute\u2019s getter, when invoked, must return\n // this's result.\n return this[kResult]\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n */\n get error () {\n webidl.brandCheck(this, FileReader)\n\n // The error attribute\u2019s getter, when invoked, must return\n // this's error.\n return this[kError]\n }\n\n get onloadend () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadend\n }\n\n set onloadend (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadend) {\n this.removeEventListener('loadend', this[kEvents].loadend)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadend = fn\n this.addEventListener('loadend', fn)\n } else {\n this[kEvents].loadend = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].error) {\n this.removeEventListener('error', this[kEvents].error)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].error = fn\n this.addEventListener('error', fn)\n } else {\n this[kEvents].error = null\n }\n }\n\n get onloadstart () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadstart\n }\n\n set onloadstart (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadstart) {\n this.removeEventListener('loadstart', this[kEvents].loadstart)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadstart = fn\n this.addEventListener('loadstart', fn)\n } else {\n this[kEvents].loadstart = null\n }\n }\n\n get onprogress () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].progress\n }\n\n set onprogress (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].progress) {\n this.removeEventListener('progress', this[kEvents].progress)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].progress = fn\n this.addEventListener('progress', fn)\n } else {\n this[kEvents].progress = null\n }\n }\n\n get onload () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].load\n }\n\n set onload (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].load) {\n this.removeEventListener('load', this[kEvents].load)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].load = fn\n this.addEventListener('load', fn)\n } else {\n this[kEvents].load = null\n }\n }\n\n get onabort () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].abort\n }\n\n set onabort (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].abort) {\n this.removeEventListener('abort', this[kEvents].abort)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].abort = fn\n this.addEventListener('abort', fn)\n } else {\n this[kEvents].abort = null\n }\n }\n}\n\n// https://w3c.github.io/FileAPI/#dom-filereader-empty\nFileReader.EMPTY = FileReader.prototype.EMPTY = 0\n// https://w3c.github.io/FileAPI/#dom-filereader-loading\nFileReader.LOADING = FileReader.prototype.LOADING = 1\n// https://w3c.github.io/FileAPI/#dom-filereader-done\nFileReader.DONE = FileReader.prototype.DONE = 2\n\nObject.defineProperties(FileReader.prototype, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors,\n readAsArrayBuffer: kEnumerableProperty,\n readAsBinaryString: kEnumerableProperty,\n readAsText: kEnumerableProperty,\n readAsDataURL: kEnumerableProperty,\n abort: kEnumerableProperty,\n readyState: kEnumerableProperty,\n result: kEnumerableProperty,\n error: kEnumerableProperty,\n onloadstart: kEnumerableProperty,\n onprogress: kEnumerableProperty,\n onload: kEnumerableProperty,\n onabort: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onloadend: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'FileReader',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(FileReader, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors\n})\n\nmodule.exports = {\n FileReader\n}\n", "'use strict'\n\nmodule.exports = {\n kConstruct: Symbol('constructable')\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { isValidHeaderName } = require('../fetch/util')\n\n/**\n * @see https://url.spec.whatwg.org/#concept-url-equals\n * @param {URL} A\n * @param {URL} B\n * @param {boolean | undefined} excludeFragment\n * @returns {boolean}\n */\nfunction urlEquals (A, B, excludeFragment = false) {\n const serializedA = URLSerializer(A, excludeFragment)\n\n const serializedB = URLSerializer(B, excludeFragment)\n\n return serializedA === serializedB\n}\n\n/**\n * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262\n * @param {string} header\n */\nfunction fieldValues (header) {\n assert(header !== null)\n\n const values = []\n\n for (let value of header.split(',')) {\n value = value.trim()\n\n if (!value.length) {\n continue\n } else if (!isValidHeaderName(value)) {\n continue\n }\n\n values.push(value)\n }\n\n return values\n}\n\nmodule.exports = {\n urlEquals,\n fieldValues\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { urlEquals, fieldValues: getFieldValues } = require('./util')\nconst { kEnumerableProperty, isDisturbed } = require('../core/util')\nconst { kHeadersList } = require('../core/symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { Response, cloneResponse } = require('../fetch/response')\nconst { Request } = require('../fetch/request')\nconst { kState, kHeaders, kGuard, kRealm } = require('../fetch/symbols')\nconst { fetching } = require('../fetch/index')\nconst { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')\nconst assert = require('assert')\nconst { getGlobalDispatcher } = require('../global')\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation\n * @typedef {Object} CacheBatchOperation\n * @property {'delete' | 'put'} type\n * @property {any} request\n * @property {any} response\n * @property {import('../../types/cache').CacheQueryOptions} options\n */\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list\n * @typedef {[any, any][]} requestResponseList\n */\n\nclass Cache {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list\n * @type {requestResponseList}\n */\n #relevantRequestResponseList\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n\n this.#relevantRequestResponseList = arguments[1]\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n const p = await this.matchAll(request, options)\n\n if (p.length === 0) {\n return\n }\n\n return p[0]\n }\n\n async matchAll (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') {\n // 2.2.1\n r = new Request(request)[kState]\n }\n }\n\n // 5.\n // 5.1\n const responses = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n responses.push(requestResponse[1])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n responses.push(requestResponse[1])\n }\n }\n\n // 5.4\n // We don't implement CORs so we don't need to loop over the responses, yay!\n\n // 5.5.1\n const responseList = []\n\n // 5.5.2\n for (const response of responses) {\n // 5.5.2.1\n const responseObject = new Response(response.body?.source ?? null)\n const body = responseObject[kState].body\n responseObject[kState] = response\n responseObject[kState].body = body\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n\n responseList.push(responseObject)\n }\n\n // 6.\n return Object.freeze(responseList)\n }\n\n async add (request) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })\n\n request = webidl.converters.RequestInfo(request)\n\n // 1.\n const requests = [request]\n\n // 2.\n const responseArrayPromise = this.addAll(requests)\n\n // 3.\n return await responseArrayPromise\n }\n\n async addAll (requests) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })\n\n requests = webidl.converters['sequence<RequestInfo>'](requests)\n\n // 1.\n const responsePromises = []\n\n // 2.\n const requestList = []\n\n // 3.\n for (const request of requests) {\n if (typeof request === 'string') {\n continue\n }\n\n // 3.1\n const r = request[kState]\n\n // 3.2\n if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme when method is not GET.'\n })\n }\n }\n\n // 4.\n /** @type {ReturnType<typeof fetching>[]} */\n const fetchControllers = []\n\n // 5.\n for (const request of requests) {\n // 5.1\n const r = new Request(request)[kState]\n\n // 5.2\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme.'\n })\n }\n\n // 5.4\n r.initiator = 'fetch'\n r.destination = 'subresource'\n\n // 5.5\n requestList.push(r)\n\n // 5.6\n const responsePromise = createDeferredPromise()\n\n // 5.7\n fetchControllers.push(fetching({\n request: r,\n dispatcher: getGlobalDispatcher(),\n processResponse (response) {\n // 1.\n if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Received an invalid status code or the request failed.'\n }))\n } else if (response.headersList.contains('vary')) { // 2.\n // 2.1\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n // 2.2\n for (const fieldValue of fieldValues) {\n // 2.2.1\n if (fieldValue === '*') {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'invalid vary field value'\n }))\n\n for (const controller of fetchControllers) {\n controller.abort()\n }\n\n return\n }\n }\n }\n },\n processResponseEndOfBody (response) {\n // 1.\n if (response.aborted) {\n responsePromise.reject(new DOMException('aborted', 'AbortError'))\n return\n }\n\n // 2.\n responsePromise.resolve(response)\n }\n }))\n\n // 5.8\n responsePromises.push(responsePromise.promise)\n }\n\n // 6.\n const p = Promise.all(responsePromises)\n\n // 7.\n const responses = await p\n\n // 7.1\n const operations = []\n\n // 7.2\n let index = 0\n\n // 7.3\n for (const response of responses) {\n // 7.3.1\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 7.3.2\n request: requestList[index], // 7.3.3\n response // 7.3.4\n }\n\n operations.push(operation) // 7.3.5\n\n index++ // 7.3.6\n }\n\n // 7.5\n const cacheJobPromise = createDeferredPromise()\n\n // 7.6.1\n let errorData = null\n\n // 7.6.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 7.6.3\n queueMicrotask(() => {\n // 7.6.3.1\n if (errorData === null) {\n cacheJobPromise.resolve(undefined)\n } else {\n // 7.6.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n // 7.7\n return cacheJobPromise.promise\n }\n\n async put (request, response) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })\n\n request = webidl.converters.RequestInfo(request)\n response = webidl.converters.Response(response)\n\n // 1.\n let innerRequest = null\n\n // 2.\n if (request instanceof Request) {\n innerRequest = request[kState]\n } else { // 3.\n innerRequest = new Request(request)[kState]\n }\n\n // 4.\n if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Expected an http/s scheme when method is not GET'\n })\n }\n\n // 5.\n const innerResponse = response[kState]\n\n // 6.\n if (innerResponse.status === 206) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got 206 status'\n })\n }\n\n // 7.\n if (innerResponse.headersList.contains('vary')) {\n // 7.1.\n const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))\n\n // 7.2.\n for (const fieldValue of fieldValues) {\n // 7.2.1\n if (fieldValue === '*') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got * vary field value'\n })\n }\n }\n }\n\n // 8.\n if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Response body is locked or disturbed'\n })\n }\n\n // 9.\n const clonedResponse = cloneResponse(innerResponse)\n\n // 10.\n const bodyReadPromise = createDeferredPromise()\n\n // 11.\n if (innerResponse.body != null) {\n // 11.1\n const stream = innerResponse.body.stream\n\n // 11.2\n const reader = stream.getReader()\n\n // 11.3\n readAllBytes(\n reader,\n (bytes) => bodyReadPromise.resolve(bytes),\n (error) => bodyReadPromise.reject(error)\n )\n } else {\n bodyReadPromise.resolve(undefined)\n }\n\n // 12.\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n // 13.\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 14.\n request: innerRequest, // 15.\n response: clonedResponse // 16.\n }\n\n // 17.\n operations.push(operation)\n\n // 19.\n const bytes = await bodyReadPromise.promise\n\n if (clonedResponse.body != null) {\n clonedResponse.body.source = bytes\n }\n\n // 19.1\n const cacheJobPromise = createDeferredPromise()\n\n // 19.2.1\n let errorData = null\n\n // 19.2.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 19.2.3\n queueMicrotask(() => {\n // 19.2.3.1\n if (errorData === null) {\n cacheJobPromise.resolve()\n } else { // 19.2.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n async delete (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n /**\n * @type {Request}\n */\n let r = null\n\n if (request instanceof Request) {\n r = request[kState]\n\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return false\n }\n } else {\n assert(typeof request === 'string')\n\n r = new Request(request)[kState]\n }\n\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'delete',\n request: r,\n options\n }\n\n operations.push(operation)\n\n const cacheJobPromise = createDeferredPromise()\n\n let errorData = null\n let requestResponses\n\n try {\n requestResponses = this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n queueMicrotask(() => {\n if (errorData === null) {\n cacheJobPromise.resolve(!!requestResponses?.length)\n } else {\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys\n * @param {any} request\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @returns {readonly Request[]}\n */\n async keys (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n // 2.1\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') { // 2.2\n r = new Request(request)[kState]\n }\n }\n\n // 4.\n const promise = createDeferredPromise()\n\n // 5.\n // 5.1\n const requests = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n // 5.2.1.1\n requests.push(requestResponse[0])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n // 5.3.2.1\n requests.push(requestResponse[0])\n }\n }\n\n // 5.4\n queueMicrotask(() => {\n // 5.4.1\n const requestList = []\n\n // 5.4.2\n for (const request of requests) {\n const requestObject = new Request('https://a')\n requestObject[kState] = request\n requestObject[kHeaders][kHeadersList] = request.headersList\n requestObject[kHeaders][kGuard] = 'immutable'\n requestObject[kRealm] = request.client\n\n // 5.4.2.1\n requestList.push(requestObject)\n }\n\n // 5.4.3\n promise.resolve(Object.freeze(requestList))\n })\n\n return promise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm\n * @param {CacheBatchOperation[]} operations\n * @returns {requestResponseList}\n */\n #batchCacheOperations (operations) {\n // 1.\n const cache = this.#relevantRequestResponseList\n\n // 2.\n const backupCache = [...cache]\n\n // 3.\n const addedItems = []\n\n // 4.1\n const resultList = []\n\n try {\n // 4.2\n for (const operation of operations) {\n // 4.2.1\n if (operation.type !== 'delete' && operation.type !== 'put') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'operation type does not match \"delete\" or \"put\"'\n })\n }\n\n // 4.2.2\n if (operation.type === 'delete' && operation.response != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'delete operation should not have an associated response'\n })\n }\n\n // 4.2.3\n if (this.#queryCache(operation.request, operation.options, addedItems).length) {\n throw new DOMException('???', 'InvalidStateError')\n }\n\n // 4.2.4\n let requestResponses\n\n // 4.2.5\n if (operation.type === 'delete') {\n // 4.2.5.1\n requestResponses = this.#queryCache(operation.request, operation.options)\n\n // TODO: the spec is wrong, this is needed to pass WPTs\n if (requestResponses.length === 0) {\n return []\n }\n\n // 4.2.5.2\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.5.2.1\n cache.splice(idx, 1)\n }\n } else if (operation.type === 'put') { // 4.2.6\n // 4.2.6.1\n if (operation.response == null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'put operation should have an associated response'\n })\n }\n\n // 4.2.6.2\n const r = operation.request\n\n // 4.2.6.3\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'expected http or https scheme'\n })\n }\n\n // 4.2.6.4\n if (r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'not get method'\n })\n }\n\n // 4.2.6.5\n if (operation.options != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'options must not be defined'\n })\n }\n\n // 4.2.6.6\n requestResponses = this.#queryCache(operation.request)\n\n // 4.2.6.7\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.6.7.1\n cache.splice(idx, 1)\n }\n\n // 4.2.6.8\n cache.push([operation.request, operation.response])\n\n // 4.2.6.10\n addedItems.push([operation.request, operation.response])\n }\n\n // 4.2.7\n resultList.push([operation.request, operation.response])\n }\n\n // 4.3\n return resultList\n } catch (e) { // 5.\n // 5.1\n this.#relevantRequestResponseList.length = 0\n\n // 5.2\n this.#relevantRequestResponseList = backupCache\n\n // 5.3\n throw e\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#query-cache\n * @param {any} requestQuery\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @param {requestResponseList} targetStorage\n * @returns {requestResponseList}\n */\n #queryCache (requestQuery, options, targetStorage) {\n /** @type {requestResponseList} */\n const resultList = []\n\n const storage = targetStorage ?? this.#relevantRequestResponseList\n\n for (const requestResponse of storage) {\n const [cachedRequest, cachedResponse] = requestResponse\n if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {\n resultList.push(requestResponse)\n }\n }\n\n return resultList\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm\n * @param {any} requestQuery\n * @param {any} request\n * @param {any | null} response\n * @param {import('../../types/cache').CacheQueryOptions | undefined} options\n * @returns {boolean}\n */\n #requestMatchesCachedItem (requestQuery, request, response = null, options) {\n // if (options?.ignoreMethod === false && request.method === 'GET') {\n // return false\n // }\n\n const queryURL = new URL(requestQuery.url)\n\n const cachedURL = new URL(request.url)\n\n if (options?.ignoreSearch) {\n cachedURL.search = ''\n\n queryURL.search = ''\n }\n\n if (!urlEquals(queryURL, cachedURL, true)) {\n return false\n }\n\n if (\n response == null ||\n options?.ignoreVary ||\n !response.headersList.contains('vary')\n ) {\n return true\n }\n\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n for (const fieldValue of fieldValues) {\n if (fieldValue === '*') {\n return false\n }\n\n const requestValue = request.headersList.get(fieldValue)\n const queryValue = requestQuery.headersList.get(fieldValue)\n\n // If one has the header and the other doesn't, or one has\n // a different value than the other, return false\n if (requestValue !== queryValue) {\n return false\n }\n }\n\n return true\n }\n}\n\nObject.defineProperties(Cache.prototype, {\n [Symbol.toStringTag]: {\n value: 'Cache',\n configurable: true\n },\n match: kEnumerableProperty,\n matchAll: kEnumerableProperty,\n add: kEnumerableProperty,\n addAll: kEnumerableProperty,\n put: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nconst cacheQueryOptionConverters = [\n {\n key: 'ignoreSearch',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreMethod',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreVary',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)\n\nwebidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([\n ...cacheQueryOptionConverters,\n {\n key: 'cacheName',\n converter: webidl.converters.DOMString\n }\n])\n\nwebidl.converters.Response = webidl.interfaceConverter(Response)\n\nwebidl.converters['sequence<RequestInfo>'] = webidl.sequenceConverter(\n webidl.converters.RequestInfo\n)\n\nmodule.exports = {\n Cache\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { Cache } = require('./cache')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass CacheStorage {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map\n * @type {Map<string, import('./cache').requestResponseList}\n */\n #caches = new Map()\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.MultiCacheQueryOptions(options)\n\n // 1.\n if (options.cacheName != null) {\n // 1.1.1.1\n if (this.#caches.has(options.cacheName)) {\n // 1.1.1.1.1\n const cacheList = this.#caches.get(options.cacheName)\n const cache = new Cache(kConstruct, cacheList)\n\n return await cache.match(request, options)\n }\n } else { // 2.\n // 2.2\n for (const cacheList of this.#caches.values()) {\n const cache = new Cache(kConstruct, cacheList)\n\n // 2.2.1.2\n const response = await cache.match(request, options)\n\n if (response !== undefined) {\n return response\n }\n }\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-has\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async has (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1.1\n // 2.2\n return this.#caches.has(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open\n * @param {string} cacheName\n * @returns {Promise<Cache>}\n */\n async open (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1\n if (this.#caches.has(cacheName)) {\n // await caches.open('v1') !== await caches.open('v1')\n\n // 2.1.1\n const cache = this.#caches.get(cacheName)\n\n // 2.1.1.1\n return new Cache(kConstruct, cache)\n }\n\n // 2.2\n const cache = []\n\n // 2.3\n this.#caches.set(cacheName, cache)\n\n // 2.4\n return new Cache(kConstruct, cache)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async delete (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n return this.#caches.delete(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys\n * @returns {string[]}\n */\n async keys () {\n webidl.brandCheck(this, CacheStorage)\n\n // 2.1\n const keys = this.#caches.keys()\n\n // 2.2\n return [...keys]\n }\n}\n\nObject.defineProperties(CacheStorage.prototype, {\n [Symbol.toStringTag]: {\n value: 'CacheStorage',\n configurable: true\n },\n match: kEnumerableProperty,\n has: kEnumerableProperty,\n open: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nmodule.exports = {\n CacheStorage\n}\n", "'use strict'\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\nconst maxAttributeValueSize = 1024\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\nconst maxNameValuePairSize = 4096\n\nmodule.exports = {\n maxAttributeValueSize,\n maxNameValuePairSize\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kHeadersList } = require('../core/symbols')\n\nfunction isCTLExcludingHtab (value) {\n if (value.length === 0) {\n return false\n }\n\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n (code >= 0x00 || code <= 0x08) ||\n (code >= 0x0A || code <= 0x1F) ||\n code === 0x7F\n ) {\n return false\n }\n }\n}\n\n/**\n CHAR = <any US-ASCII character (octets 0 - 127)>\n token = 1*<any CHAR except CTLs or separators>\n separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n | \",\" | \";\" | \":\" | \"\\\" | <\">\n | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n | \"{\" | \"}\" | SP | HT\n * @param {string} name\n */\nfunction validateCookieName (name) {\n for (const char of name) {\n const code = char.charCodeAt(0)\n\n if (\n (code <= 0x20 || code > 0x7F) ||\n char === '(' ||\n char === ')' ||\n char === '>' ||\n char === '<' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}'\n ) {\n throw new Error('Invalid cookie name')\n }\n }\n}\n\n/**\n cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n ; US-ASCII characters excluding CTLs,\n ; whitespace DQUOTE, comma, semicolon,\n ; and backslash\n * @param {string} value\n */\nfunction validateCookieValue (value) {\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 || // exclude CTLs (0-31)\n code === 0x22 ||\n code === 0x2C ||\n code === 0x3B ||\n code === 0x5C ||\n code > 0x7E // non-ascii\n ) {\n throw new Error('Invalid header value')\n }\n }\n}\n\n/**\n * path-value = <any CHAR except CTLs or \";\">\n * @param {string} path\n */\nfunction validateCookiePath (path) {\n for (const char of path) {\n const code = char.charCodeAt(0)\n\n if (code < 0x21 || char === ';') {\n throw new Error('Invalid cookie path')\n }\n }\n}\n\n/**\n * I have no idea why these values aren't allowed to be honest,\n * but Deno tests these. - Khafra\n * @param {string} domain\n */\nfunction validateCookieDomain (domain) {\n if (\n domain.startsWith('-') ||\n domain.endsWith('.') ||\n domain.endsWith('-')\n ) {\n throw new Error('Invalid cookie domain')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n * @param {number|Date} date\n IMF-fixdate = day-name \",\" SP date1 SP time-of-day SP GMT\n ; fixed length/zone/capitalization subset of the format\n ; see Section 3.3 of [RFC5322]\n\n day-name = %x4D.6F.6E ; \"Mon\", case-sensitive\n / %x54.75.65 ; \"Tue\", case-sensitive\n / %x57.65.64 ; \"Wed\", case-sensitive\n / %x54.68.75 ; \"Thu\", case-sensitive\n / %x46.72.69 ; \"Fri\", case-sensitive\n / %x53.61.74 ; \"Sat\", case-sensitive\n / %x53.75.6E ; \"Sun\", case-sensitive\n date1 = day SP month SP year\n ; e.g., 02 Jun 1982\n\n day = 2DIGIT\n month = %x4A.61.6E ; \"Jan\", case-sensitive\n / %x46.65.62 ; \"Feb\", case-sensitive\n / %x4D.61.72 ; \"Mar\", case-sensitive\n / %x41.70.72 ; \"Apr\", case-sensitive\n / %x4D.61.79 ; \"May\", case-sensitive\n / %x4A.75.6E ; \"Jun\", case-sensitive\n / %x4A.75.6C ; \"Jul\", case-sensitive\n / %x41.75.67 ; \"Aug\", case-sensitive\n / %x53.65.70 ; \"Sep\", case-sensitive\n / %x4F.63.74 ; \"Oct\", case-sensitive\n / %x4E.6F.76 ; \"Nov\", case-sensitive\n / %x44.65.63 ; \"Dec\", case-sensitive\n year = 4DIGIT\n\n GMT = %x47.4D.54 ; \"GMT\", case-sensitive\n\n time-of-day = hour \":\" minute \":\" second\n ; 00:00:00 - 23:59:60 (leap second)\n\n hour = 2DIGIT\n minute = 2DIGIT\n second = 2DIGIT\n */\nfunction toIMFDate (date) {\n if (typeof date === 'number') {\n date = new Date(date)\n }\n\n const days = [\n 'Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'\n ]\n\n const months = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ]\n\n const dayName = days[date.getUTCDay()]\n const day = date.getUTCDate().toString().padStart(2, '0')\n const month = months[date.getUTCMonth()]\n const year = date.getUTCFullYear()\n const hour = date.getUTCHours().toString().padStart(2, '0')\n const minute = date.getUTCMinutes().toString().padStart(2, '0')\n const second = date.getUTCSeconds().toString().padStart(2, '0')\n\n return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n}\n\n/**\n max-age-av = \"Max-Age=\" non-zero-digit *DIGIT\n ; In practice, both expires-av and max-age-av\n ; are limited to dates representable by the\n ; user agent.\n * @param {number} maxAge\n */\nfunction validateCookieMaxAge (maxAge) {\n if (maxAge < 0) {\n throw new Error('Invalid cookie max-age')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n * @param {import('./index').Cookie} cookie\n */\nfunction stringify (cookie) {\n if (cookie.name.length === 0) {\n return null\n }\n\n validateCookieName(cookie.name)\n validateCookieValue(cookie.value)\n\n const out = [`${cookie.name}=${cookie.value}`]\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n if (cookie.name.startsWith('__Secure-')) {\n cookie.secure = true\n }\n\n if (cookie.name.startsWith('__Host-')) {\n cookie.secure = true\n cookie.domain = null\n cookie.path = '/'\n }\n\n if (cookie.secure) {\n out.push('Secure')\n }\n\n if (cookie.httpOnly) {\n out.push('HttpOnly')\n }\n\n if (typeof cookie.maxAge === 'number') {\n validateCookieMaxAge(cookie.maxAge)\n out.push(`Max-Age=${cookie.maxAge}`)\n }\n\n if (cookie.domain) {\n validateCookieDomain(cookie.domain)\n out.push(`Domain=${cookie.domain}`)\n }\n\n if (cookie.path) {\n validateCookiePath(cookie.path)\n out.push(`Path=${cookie.path}`)\n }\n\n if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n out.push(`Expires=${toIMFDate(cookie.expires)}`)\n }\n\n if (cookie.sameSite) {\n out.push(`SameSite=${cookie.sameSite}`)\n }\n\n for (const part of cookie.unparsed) {\n if (!part.includes('=')) {\n throw new Error('Invalid unparsed')\n }\n\n const [key, ...value] = part.split('=')\n\n out.push(`${key.trim()}=${value.join('=')}`)\n }\n\n return out.join('; ')\n}\n\nlet kHeadersListNode\n\nfunction getHeadersList (headers) {\n if (headers[kHeadersList]) {\n return headers[kHeadersList]\n }\n\n if (!kHeadersListNode) {\n kHeadersListNode = Object.getOwnPropertySymbols(headers).find(\n (symbol) => symbol.description === 'headers list'\n )\n\n assert(kHeadersListNode, 'Headers cannot be parsed')\n }\n\n const headersList = headers[kHeadersListNode]\n assert(headersList)\n\n return headersList\n}\n\nmodule.exports = {\n isCTLExcludingHtab,\n stringify,\n getHeadersList\n}\n", "'use strict'\n\nconst { maxNameValuePairSize, maxAttributeValueSize } = require('./constants')\nconst { isCTLExcludingHtab } = require('./util')\nconst { collectASequenceOfCodePointsFast } = require('../fetch/dataURL')\nconst assert = require('assert')\n\n/**\n * @description Parses the field-value attributes of a set-cookie header string.\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} header\n * @returns if the header is invalid, null will be returned\n */\nfunction parseSetCookie (header) {\n // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n // character (CTL characters excluding HTAB): Abort these steps and\n // ignore the set-cookie-string entirely.\n if (isCTLExcludingHtab(header)) {\n return null\n }\n\n let nameValuePair = ''\n let unparsedAttributes = ''\n let name = ''\n let value = ''\n\n // 2. If the set-cookie-string contains a %x3B (\";\") character:\n if (header.includes(';')) {\n // 1. The name-value-pair string consists of the characters up to,\n // but not including, the first %x3B (\";\"), and the unparsed-\n // attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\n const position = { position: 0 }\n\n nameValuePair = collectASequenceOfCodePointsFast(';', header, position)\n unparsedAttributes = header.slice(position.position)\n } else {\n // Otherwise:\n\n // 1. The name-value-pair string consists of all the characters\n // contained in the set-cookie-string, and the unparsed-\n // attributes is the empty string.\n nameValuePair = header\n }\n\n // 3. If the name-value-pair string lacks a %x3D (\"=\") character, then\n // the name string is empty, and the value string is the value of\n // name-value-pair.\n if (!nameValuePair.includes('=')) {\n value = nameValuePair\n } else {\n // Otherwise, the name string consists of the characters up to, but\n // not including, the first %x3D (\"=\") character, and the (possibly\n // empty) value string consists of the characters after the first\n // %x3D (\"=\") character.\n const position = { position: 0 }\n name = collectASequenceOfCodePointsFast(\n '=',\n nameValuePair,\n position\n )\n value = nameValuePair.slice(position.position + 1)\n }\n\n // 4. Remove any leading or trailing WSP characters from the name\n // string and the value string.\n name = name.trim()\n value = value.trim()\n\n // 5. If the sum of the lengths of the name string and the value string\n // is more than 4096 octets, abort these steps and ignore the set-\n // cookie-string entirely.\n if (name.length + value.length > maxNameValuePairSize) {\n return null\n }\n\n // 6. The cookie-name is the name string, and the cookie-value is the\n // value string.\n return {\n name, value, ...parseUnparsedAttributes(unparsedAttributes)\n }\n}\n\n/**\n * Parses the remaining attributes of a set-cookie header\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} unparsedAttributes\n * @param {[Object.<string, unknown>]={}} cookieAttributeList\n */\nfunction parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {\n // 1. If the unparsed-attributes string is empty, skip the rest of\n // these steps.\n if (unparsedAttributes.length === 0) {\n return cookieAttributeList\n }\n\n // 2. Discard the first character of the unparsed-attributes (which\n // will be a %x3B (\";\") character).\n assert(unparsedAttributes[0] === ';')\n unparsedAttributes = unparsedAttributes.slice(1)\n\n let cookieAv = ''\n\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n if (unparsedAttributes.includes(';')) {\n // 1. Consume the characters of the unparsed-attributes up to, but\n // not including, the first %x3B (\";\") character.\n cookieAv = collectASequenceOfCodePointsFast(\n ';',\n unparsedAttributes,\n { position: 0 }\n )\n unparsedAttributes = unparsedAttributes.slice(cookieAv.length)\n } else {\n // Otherwise:\n\n // 1. Consume the remainder of the unparsed-attributes.\n cookieAv = unparsedAttributes\n unparsedAttributes = ''\n }\n\n // Let the cookie-av string be the characters consumed in this step.\n\n let attributeName = ''\n let attributeValue = ''\n\n // 4. If the cookie-av string contains a %x3D (\"=\") character:\n if (cookieAv.includes('=')) {\n // 1. The (possibly empty) attribute-name string consists of the\n // characters up to, but not including, the first %x3D (\"=\")\n // character, and the (possibly empty) attribute-value string\n // consists of the characters after the first %x3D (\"=\")\n // character.\n const position = { position: 0 }\n\n attributeName = collectASequenceOfCodePointsFast(\n '=',\n cookieAv,\n position\n )\n attributeValue = cookieAv.slice(position.position + 1)\n } else {\n // Otherwise:\n\n // 1. The attribute-name string consists of the entire cookie-av\n // string, and the attribute-value string is empty.\n attributeName = cookieAv\n }\n\n // 5. Remove any leading or trailing WSP characters from the attribute-\n // name string and the attribute-value string.\n attributeName = attributeName.trim()\n attributeValue = attributeValue.trim()\n\n // 6. If the attribute-value is longer than 1024 octets, ignore the\n // cookie-av string and return to Step 1 of this algorithm.\n if (attributeValue.length > maxAttributeValueSize) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 7. Process the attribute-name and attribute-value according to the\n // requirements in the following subsections. (Notice that\n // attributes with unrecognized attribute-names are ignored.)\n const attributeNameLowercase = attributeName.toLowerCase()\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n // If the attribute-name case-insensitively matches the string\n // \"Expires\", the user agent MUST process the cookie-av as follows.\n if (attributeNameLowercase === 'expires') {\n // 1. Let the expiry-time be the result of parsing the attribute-value\n // as cookie-date (see Section 5.1.1).\n const expiryTime = new Date(attributeValue)\n\n // 2. If the attribute-value failed to parse as a cookie date, ignore\n // the cookie-av.\n\n cookieAttributeList.expires = expiryTime\n } else if (attributeNameLowercase === 'max-age') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n // If the attribute-name case-insensitively matches the string \"Max-\n // Age\", the user agent MUST process the cookie-av as follows.\n\n // 1. If the first character of the attribute-value is not a DIGIT or a\n // \"-\" character, ignore the cookie-av.\n const charCode = attributeValue.charCodeAt(0)\n\n if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 2. If the remainder of attribute-value contains a non-DIGIT\n // character, ignore the cookie-av.\n if (!/^\\d+$/.test(attributeValue)) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 3. Let delta-seconds be the attribute-value converted to an integer.\n const deltaSeconds = Number(attributeValue)\n\n // 4. Let cookie-age-limit be the maximum age of the cookie (which\n // SHOULD be 400 days or less, see Section 4.1.2.2).\n\n // 5. Set delta-seconds to the smaller of its present value and cookie-\n // age-limit.\n // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)\n\n // 6. If delta-seconds is less than or equal to zero (0), let expiry-\n // time be the earliest representable date and time. Otherwise, let\n // the expiry-time be the current date and time plus delta-seconds\n // seconds.\n // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n // 7. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Max-Age and an attribute-value of expiry-time.\n cookieAttributeList.maxAge = deltaSeconds\n } else if (attributeNameLowercase === 'domain') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n // If the attribute-name case-insensitively matches the string \"Domain\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. Let cookie-domain be the attribute-value.\n let cookieDomain = attributeValue\n\n // 2. If cookie-domain starts with %x2E (\".\"), let cookie-domain be\n // cookie-domain without its leading %x2E (\".\").\n if (cookieDomain[0] === '.') {\n cookieDomain = cookieDomain.slice(1)\n }\n\n // 3. Convert the cookie-domain to lower case.\n cookieDomain = cookieDomain.toLowerCase()\n\n // 4. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Domain and an attribute-value of cookie-domain.\n cookieAttributeList.domain = cookieDomain\n } else if (attributeNameLowercase === 'path') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n // If the attribute-name case-insensitively matches the string \"Path\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. If the attribute-value is empty or if the first character of the\n // attribute-value is not %x2F (\"/\"):\n let cookiePath = ''\n if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n // 1. Let cookie-path be the default-path.\n cookiePath = '/'\n } else {\n // Otherwise:\n\n // 1. Let cookie-path be the attribute-value.\n cookiePath = attributeValue\n }\n\n // 2. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Path and an attribute-value of cookie-path.\n cookieAttributeList.path = cookiePath\n } else if (attributeNameLowercase === 'secure') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n // If the attribute-name case-insensitively matches the string \"Secure\",\n // the user agent MUST append an attribute to the cookie-attribute-list\n // with an attribute-name of Secure and an empty attribute-value.\n\n cookieAttributeList.secure = true\n } else if (attributeNameLowercase === 'httponly') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n // If the attribute-name case-insensitively matches the string\n // \"HttpOnly\", the user agent MUST append an attribute to the cookie-\n // attribute-list with an attribute-name of HttpOnly and an empty\n // attribute-value.\n\n cookieAttributeList.httpOnly = true\n } else if (attributeNameLowercase === 'samesite') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n // If the attribute-name case-insensitively matches the string\n // \"SameSite\", the user agent MUST process the cookie-av as follows:\n\n // 1. Let enforcement be \"Default\".\n let enforcement = 'Default'\n\n const attributeValueLowercase = attributeValue.toLowerCase()\n // 2. If cookie-av's attribute-value is a case-insensitive match for\n // \"None\", set enforcement to \"None\".\n if (attributeValueLowercase.includes('none')) {\n enforcement = 'None'\n }\n\n // 3. If cookie-av's attribute-value is a case-insensitive match for\n // \"Strict\", set enforcement to \"Strict\".\n if (attributeValueLowercase.includes('strict')) {\n enforcement = 'Strict'\n }\n\n // 4. If cookie-av's attribute-value is a case-insensitive match for\n // \"Lax\", set enforcement to \"Lax\".\n if (attributeValueLowercase.includes('lax')) {\n enforcement = 'Lax'\n }\n\n // 5. Append an attribute to the cookie-attribute-list with an\n // attribute-name of \"SameSite\" and an attribute-value of\n // enforcement.\n cookieAttributeList.sameSite = enforcement\n } else {\n cookieAttributeList.unparsed ??= []\n\n cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)\n }\n\n // 8. Return to Step 1 of this algorithm.\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n}\n\nmodule.exports = {\n parseSetCookie,\n parseUnparsedAttributes\n}\n", "'use strict'\n\nconst { parseSetCookie } = require('./parse')\nconst { stringify, getHeadersList } = require('./util')\nconst { webidl } = require('../fetch/webidl')\nconst { Headers } = require('../fetch/headers')\n\n/**\n * @typedef {Object} Cookie\n * @property {string} name\n * @property {string} value\n * @property {Date|number|undefined} expires\n * @property {number|undefined} maxAge\n * @property {string|undefined} domain\n * @property {string|undefined} path\n * @property {boolean|undefined} secure\n * @property {boolean|undefined} httpOnly\n * @property {'Strict'|'Lax'|'None'} sameSite\n * @property {string[]} unparsed\n */\n\n/**\n * @param {Headers} headers\n * @returns {Record<string, string>}\n */\nfunction getCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookie = headers.get('cookie')\n const out = {}\n\n if (!cookie) {\n return out\n }\n\n for (const piece of cookie.split(';')) {\n const [name, ...value] = piece.split('=')\n\n out[name.trim()] = value.join('=')\n }\n\n return out\n}\n\n/**\n * @param {Headers} headers\n * @param {string} name\n * @param {{ path?: string, domain?: string }|undefined} attributes\n * @returns {void}\n */\nfunction deleteCookie (headers, name, attributes) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n name = webidl.converters.DOMString(name)\n attributes = webidl.converters.DeleteCookieAttributes(attributes)\n\n // Matches behavior of\n // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n setCookie(headers, {\n name,\n value: '',\n expires: new Date(0),\n ...attributes\n })\n}\n\n/**\n * @param {Headers} headers\n * @returns {Cookie[]}\n */\nfunction getSetCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookies = getHeadersList(headers).cookies\n\n if (!cookies) {\n return []\n }\n\n // In older versions of undici, cookies is a list of name:value.\n return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair))\n}\n\n/**\n * @param {Headers} headers\n * @param {Cookie} cookie\n * @returns {void}\n */\nfunction setCookie (headers, cookie) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n cookie = webidl.converters.Cookie(cookie)\n\n const str = stringify(cookie)\n\n if (str) {\n headers.append('Set-Cookie', stringify(cookie))\n }\n}\n\nwebidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n }\n])\n\nwebidl.converters.Cookie = webidl.dictionaryConverter([\n {\n converter: webidl.converters.DOMString,\n key: 'name'\n },\n {\n converter: webidl.converters.DOMString,\n key: 'value'\n },\n {\n converter: webidl.nullableConverter((value) => {\n if (typeof value === 'number') {\n return webidl.converters['unsigned long long'](value)\n }\n\n return new Date(value)\n }),\n key: 'expires',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters['long long']),\n key: 'maxAge',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'secure',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'httpOnly',\n defaultValue: null\n },\n {\n converter: webidl.converters.USVString,\n key: 'sameSite',\n allowedValues: ['Strict', 'Lax', 'None']\n },\n {\n converter: webidl.sequenceConverter(webidl.converters.DOMString),\n key: 'unparsed',\n defaultValue: []\n }\n])\n\nmodule.exports = {\n getCookies,\n deleteCookie,\n getSetCookies,\n setCookie\n}\n", "'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nmodule.exports = {\n uid,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer\n}\n", "'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\nconst { MessagePort } = require('worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' })\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' })\n\n super(type, eventInitDict)\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence<MessagePort>'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence<MessagePort>'],\n get defaultValue () {\n return []\n }\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent\n}\n", "'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { MessageEvent, ErrorEvent } = require('./events')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventConstructor = Event, eventInitDict) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event\u2019s type attribute to e.\n const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = new Uint8Array(data).buffer\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object\u2019s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, MessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (const char of protocol) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 ||\n code > 0x7E ||\n char === '(' ||\n char === ')' ||\n char === '<' ||\n char === '>' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}' ||\n code === 32 || // SP\n code === 9 // HT\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n fireEvent('error', ws, ErrorEvent, {\n error: new Error(reason)\n })\n }\n}\n\nmodule.exports = {\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived\n}\n", "'use strict'\n\nconst { randomBytes, createHash } = require('crypto')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { uid, states } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection } = require('./util')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers } = require('../fetch/headers')\nconst { getGlobalDispatcher } = require('../global')\nconst { kHeadersList } = require('../core/symbols')\n\nconst channels = {}\nchannels.open = diagnosticsChannel.channel('undici:websocket:open')\nchannels.close = diagnosticsChannel.channel('undici:websocket:close')\nchannels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error')\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any) => void} onEstablish\n * @param {Partial<import('../../types/websocket').WebSocketInit>} options\n */\nfunction establishWebSocketConnection (url, protocols, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url\u2019s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = new Headers(options.headers)[kHeadersList]\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request\u2019s header list.\n // 4. Append (`Connection`, `Upgrade`) to request\u2019s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request\u2019s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n // TODO: enable once permessage-deflate is supported\n const permessageDeflate = '' // 'permessage-deflate; 15'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request\u2019s header list.\n // request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher ?? getGlobalDispatcher(),\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response\u2019s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n\n if (secExtension !== null && secExtension !== permessageDeflate) {\n failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.')\n return\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response)\n }\n })\n\n return controller\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kSentClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n fireEvent('close', ws, CloseEvent, {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection\n}\n", "'use strict'\n\nconst { randomBytes } = require('crypto')\nconst { maxUnsigned16Bit } = require('./constants')\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n this.maskKey = randomBytes(4)\n }\n\n createFrame (opcode) {\n const bodyLength = this.frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */\n buffer[offset - 4] = this.maskKey[0]\n buffer[offset - 3] = this.maskKey[1]\n buffer[offset - 2] = this.maskKey[2]\n buffer[offset - 1] = this.maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; i++) {\n buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n", "'use strict'\n\nconst { Writable } = require('stream')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { parserStates, opcodes, states, emptyBuffer } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>\n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nconst channels = {}\nchannels.ping = diagnosticsChannel.channel('undici:websocket:ping')\nchannels.pong = diagnosticsChannel.channel('undici:websocket:pong')\n\nclass ByteParser extends Writable {\n #buffers = []\n #byteOffset = 0\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n constructor (ws) {\n super()\n\n this.ws = ws\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n\n this.run(callback)\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (true) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.fin = (buffer[0] & 0x80) !== 0\n this.#info.opcode = buffer[0] & 0x0F\n\n // If we receive a fragmented message, we use the type of the first\n // frame to parse the full message as binary/text, when it's terminated\n this.#info.originalOpcode ??= this.#info.opcode\n\n this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION\n\n if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n const payloadLength = buffer[1] & 0x7F\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (this.#info.fragmented && payloadLength > 125) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n } else if (\n (this.#info.opcode === opcodes.PING ||\n this.#info.opcode === opcodes.PONG ||\n this.#info.opcode === opcodes.CLOSE) &&\n payloadLength > 125\n ) {\n // Control frames can have a payload length of 125 bytes MAX\n failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.')\n return\n } else if (this.#info.opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return\n }\n\n const body = this.consume(payloadLength)\n\n this.#info.closeInfo = this.parseCloseBody(false, body)\n\n if (!this.ws[kSentClose]) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n const body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = true\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n this.end()\n\n return\n } else if (this.#info.opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n const body = this.consume(payloadLength)\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n\n this.#state = parserStates.INFO\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n } else if (this.#info.opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n const body = this.consume(payloadLength)\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n\n // 2^31 is the maxinimum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n const lower = buffer.readUInt32BE(4)\n\n this.#info.payloadLength = (upper << 8) + lower\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n // If there is still more data in this chunk that needs to be read\n return callback()\n } else if (this.#byteOffset >= this.#info.payloadLength) {\n // If the server sent multiple frames in a single chunk\n\n const body = this.consume(this.#info.payloadLength)\n\n this.#fragments.push(body)\n\n // If the frame is unfragmented, or a fragmented frame was terminated,\n // a message was received\n if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n const fullMessage = Buffer.concat(this.#fragments)\n\n websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage)\n\n this.#info = {}\n this.#fragments.length = 0\n }\n\n this.#state = parserStates.INFO\n }\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n break\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer|null}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n return null\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n parseCloseBody (onlyCode, data) {\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (onlyCode) {\n if (!isValidStatusCode(code)) {\n return null\n }\n\n return { code }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return null\n }\n\n try {\n // TODO: optimize this\n reason = new TextDecoder('utf-8', { fatal: true }).decode(reason)\n } catch {\n return null\n }\n\n return { code, reason }\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { DOMException } = require('../fetch/constants')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require('./constants')\nconst {\n kWebSocketURL,\n kReadyState,\n kController,\n kBinaryType,\n kResponse,\n kSentClose,\n kByteParser\n} = require('./symbols')\nconst { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require('./util')\nconst { establishWebSocketConnection } = require('./connection')\nconst { WebsocketFrameSend } = require('./frame')\nconst { ByteParser } = require('./receiver')\nconst { kEnumerableProperty, isBlobLike } = require('../core/util')\nconst { getGlobalDispatcher } = require('../global')\nconst { types } = require('util')\n\nlet experimentalWarned = false\n\n// https://websockets.spec.whatwg.org/#interface-definition\nclass WebSocket extends EventTarget {\n #events = {\n open: null,\n error: null,\n close: null,\n message: null\n }\n\n #bufferedAmount = 0\n #protocol = ''\n #extensions = ''\n\n /**\n * @param {string} url\n * @param {string|string[]} protocols\n */\n constructor (url, protocols = []) {\n super()\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' })\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('WebSockets are experimental, expect them to change at any time.', {\n code: 'UNDICI-WS'\n })\n }\n\n const options = webidl.converters['DOMString or sequence<DOMString> or WebSocketInit'](protocols)\n\n url = webidl.converters.USVString(url)\n protocols = options.protocols\n\n // 1. Let urlRecord be the result of applying the URL parser to url.\n let urlRecord\n\n try {\n urlRecord = new URL(url)\n } catch (e) {\n // 2. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 3. If urlRecord\u2019s scheme is not \"ws\" or \"wss\", then throw a\n // \"SyntaxError\" DOMException.\n if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n throw new DOMException(\n `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,\n 'SyntaxError'\n )\n }\n\n // 4. If urlRecord\u2019s fragment is non-null, then throw a \"SyntaxError\"\n // DOMException.\n if (urlRecord.hash) {\n throw new DOMException('Got fragment', 'SyntaxError')\n }\n\n // 5. If protocols is a string, set protocols to a sequence consisting\n // of just that string.\n if (typeof protocols === 'string') {\n protocols = [protocols]\n }\n\n // 6. If any of the values in protocols occur more than once or otherwise\n // fail to match the requirements for elements that comprise the value\n // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n // protocol, then throw a \"SyntaxError\" DOMException.\n if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n // 7. Set this's url to urlRecord.\n this[kWebSocketURL] = urlRecord\n\n // 8. Let client be this's relevant settings object.\n\n // 9. Run this step in parallel:\n\n // 1. Establish a WebSocket connection given urlRecord, protocols,\n // and client.\n this[kController] = establishWebSocketConnection(\n urlRecord,\n protocols,\n this,\n (response) => this.#onConnectionEstablished(response),\n options\n )\n\n // Each WebSocket object has an associated ready state, which is a\n // number representing the state of the connection. Initially it must\n // be CONNECTING (0).\n this[kReadyState] = WebSocket.CONNECTING\n\n // The extensions attribute must initially return the empty string.\n\n // The protocol attribute must initially return the empty string.\n\n // Each WebSocket object has an associated binary type, which is a\n // BinaryType. Initially it must be \"blob\".\n this[kBinaryType] = 'blob'\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n * @param {number|undefined} code\n * @param {string|undefined} reason\n */\n close (code = undefined, reason = undefined) {\n webidl.brandCheck(this, WebSocket)\n\n if (code !== undefined) {\n code = webidl.converters['unsigned short'](code, { clamp: true })\n }\n\n if (reason !== undefined) {\n reason = webidl.converters.USVString(reason)\n }\n\n // 1. If code is present, but is neither an integer equal to 1000 nor an\n // integer in the range 3000 to 4999, inclusive, throw an\n // \"InvalidAccessError\" DOMException.\n if (code !== undefined) {\n if (code !== 1000 && (code < 3000 || code > 4999)) {\n throw new DOMException('invalid code', 'InvalidAccessError')\n }\n }\n\n let reasonByteLength = 0\n\n // 2. If reason is present, then run these substeps:\n if (reason !== undefined) {\n // 1. Let reasonBytes be the result of encoding reason.\n // 2. If reasonBytes is longer than 123 bytes, then throw a\n // \"SyntaxError\" DOMException.\n reasonByteLength = Buffer.byteLength(reason)\n\n if (reasonByteLength > 123) {\n throw new DOMException(\n `Reason must be less than 123 bytes; received ${reasonByteLength}`,\n 'SyntaxError'\n )\n }\n }\n\n // 3. Run the first matching steps from the following list:\n if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(this)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(this, 'Connection was closed before it was established.')\n this[kReadyState] = WebSocket.CLOSING\n } else if (!isClosing(this)) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE), (err) => {\n if (!err) {\n this[kSentClose] = true\n }\n })\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n this[kReadyState] = WebSocket.CLOSING\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n */\n send (data) {\n webidl.brandCheck(this, WebSocket)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' })\n\n data = webidl.converters.WebSocketSendData(data)\n\n // 1. If this's ready state is CONNECTING, then throw an\n // \"InvalidStateError\" DOMException.\n if (this[kReadyState] === WebSocket.CONNECTING) {\n throw new DOMException('Sent before connected.', 'InvalidStateError')\n }\n\n // 2. Run the appropriate set of steps from the following list:\n // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n if (!isEstablished(this) || isClosing(this)) {\n return\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n // If data is a string\n if (typeof data === 'string') {\n // If the WebSocket connection is established and the WebSocket\n // closing handshake has not yet started, then the user agent\n // must send a WebSocket Message comprised of the data argument\n // using a text frame opcode; if the data cannot be sent, e.g.\n // because it would need to be buffered but the buffer is full,\n // the user agent must flag the WebSocket as full and then close\n // the WebSocket connection. Any invocation of this method with a\n // string argument that does not throw an exception must increase\n // the bufferedAmount attribute by the number of bytes needed to\n // express the argument as UTF-8.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.TEXT)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (types.isArrayBuffer(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need\n // to be buffered but the buffer is full, the user agent must flag\n // the WebSocket as full and then close the WebSocket connection.\n // The data to be sent is the data stored in the buffer described\n // by the ArrayBuffer object. Any invocation of this method with an\n // ArrayBuffer argument that does not throw an exception must\n // increase the bufferedAmount attribute by the length of the\n // ArrayBuffer in bytes.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (ArrayBuffer.isView(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The\n // data to be sent is the data stored in the section of the buffer\n // described by the ArrayBuffer object that data references. Any\n // invocation of this method with this kind of argument that does\n // not throw an exception must increase the bufferedAmount attribute\n // by the length of data\u2019s buffer in bytes.\n\n const ab = Buffer.from(data, data.byteOffset, data.byteLength)\n\n const frame = new WebsocketFrameSend(ab)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += ab.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= ab.byteLength\n })\n } else if (isBlobLike(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The data\n // to be sent is the raw data represented by the Blob object. Any\n // invocation of this method with a Blob argument that does not throw\n // an exception must increase the bufferedAmount attribute by the size\n // of the Blob object\u2019s raw data, in bytes.\n\n const frame = new WebsocketFrameSend()\n\n data.arrayBuffer().then((ab) => {\n const value = Buffer.from(ab)\n frame.frameData = value\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n })\n }\n }\n\n get readyState () {\n webidl.brandCheck(this, WebSocket)\n\n // The readyState getter steps are to return this's ready state.\n return this[kReadyState]\n }\n\n get bufferedAmount () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#bufferedAmount\n }\n\n get url () {\n webidl.brandCheck(this, WebSocket)\n\n // The url getter steps are to return this's url, serialized.\n return URLSerializer(this[kWebSocketURL])\n }\n\n get extensions () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#extensions\n }\n\n get protocol () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#protocol\n }\n\n get onopen () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.open\n }\n\n set onopen (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n\n get onclose () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.close\n }\n\n set onclose (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.close) {\n this.removeEventListener('close', this.#events.close)\n }\n\n if (typeof fn === 'function') {\n this.#events.close = fn\n this.addEventListener('close', fn)\n } else {\n this.#events.close = null\n }\n }\n\n get onmessage () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.message\n }\n\n set onmessage (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get binaryType () {\n webidl.brandCheck(this, WebSocket)\n\n return this[kBinaryType]\n }\n\n set binaryType (type) {\n webidl.brandCheck(this, WebSocket)\n\n if (type !== 'blob' && type !== 'arraybuffer') {\n this[kBinaryType] = 'blob'\n } else {\n this[kBinaryType] = type\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n */\n #onConnectionEstablished (response) {\n // processResponse is called when the \"response\u2019s header list has been received and initialized.\"\n // once this happens, the connection is open\n this[kResponse] = response\n\n const parser = new ByteParser(this)\n parser.on('drain', function onParserDrain () {\n this.ws[kResponse].socket.resume()\n })\n\n response.socket.ws = this\n this[kByteParser] = parser\n\n // 1. Change the ready state to OPEN (1).\n this[kReadyState] = states.OPEN\n\n // 2. Change the extensions attribute\u2019s value to the extensions in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n const extensions = response.headersList.get('sec-websocket-extensions')\n\n if (extensions !== null) {\n this.#extensions = extensions\n }\n\n // 3. Change the protocol attribute\u2019s value to the subprotocol in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n const protocol = response.headersList.get('sec-websocket-protocol')\n\n if (protocol !== null) {\n this.#protocol = protocol\n }\n\n // 4. Fire an event named open at the WebSocket object.\n fireEvent('open', this)\n }\n}\n\n// https://websockets.spec.whatwg.org/#dom-websocket-connecting\nWebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING\n// https://websockets.spec.whatwg.org/#dom-websocket-open\nWebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN\n// https://websockets.spec.whatwg.org/#dom-websocket-closing\nWebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING\n// https://websockets.spec.whatwg.org/#dom-websocket-closed\nWebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED\n\nObject.defineProperties(WebSocket.prototype, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors,\n url: kEnumerableProperty,\n readyState: kEnumerableProperty,\n bufferedAmount: kEnumerableProperty,\n onopen: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onclose: kEnumerableProperty,\n close: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n binaryType: kEnumerableProperty,\n send: kEnumerableProperty,\n extensions: kEnumerableProperty,\n protocol: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'WebSocket',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(WebSocket, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors\n})\n\nwebidl.converters['sequence<DOMString>'] = webidl.sequenceConverter(\n webidl.converters.DOMString\n)\n\nwebidl.converters['DOMString or sequence<DOMString>'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n return webidl.converters['sequence<DOMString>'](V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// This implements the propsal made in https://github.com/whatwg/websockets/issues/42\nwebidl.converters.WebSocketInit = webidl.dictionaryConverter([\n {\n key: 'protocols',\n converter: webidl.converters['DOMString or sequence<DOMString>'],\n get defaultValue () {\n return []\n }\n },\n {\n key: 'dispatcher',\n converter: (V) => V,\n get defaultValue () {\n return getGlobalDispatcher()\n }\n },\n {\n key: 'headers',\n converter: webidl.nullableConverter(webidl.converters.HeadersInit)\n }\n])\n\nwebidl.converters['DOMString or sequence<DOMString> or WebSocketInit'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) {\n return webidl.converters.WebSocketInit(V)\n }\n\n return { protocols: webidl.converters['DOMString or sequence<DOMString>'](V) }\n}\n\nwebidl.converters.WebSocketSendData = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n return webidl.converters.BufferSource(V)\n }\n }\n\n return webidl.converters.USVString(V)\n}\n\nmodule.exports = {\n WebSocket\n}\n", "'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nlet hasCrypto\ntry {\n require('crypto')\n hasCrypto = true\n} catch {\n hasCrypto = false\n}\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n\n try {\n return await fetchImpl(...arguments)\n } catch (err) {\n Error.captureStackTrace(err, this)\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n module.exports.FileReader = require('./lib/fileapi/filereader').FileReader\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n\n const { CacheStorage } = require('./lib/cache/cachestorage')\n const { kConstruct } = require('./lib/cache/symbols')\n\n // Cache & CacheStorage are tightly coupled with fetch. Even if it may run\n // in an older version of Node, it doesn't have any use without fetch.\n module.exports.caches = new CacheStorage(kConstruct)\n}\n\nif (util.nodeMajor >= 16) {\n const { deleteCookie, getCookies, getSetCookies, setCookie } = require('./lib/cookies')\n\n module.exports.deleteCookie = deleteCookie\n module.exports.getCookies = getCookies\n module.exports.getSetCookies = getSetCookies\n module.exports.setCookie = setCookie\n\n const { parseMIMEType, serializeAMimeType } = require('./lib/fetch/dataURL')\n\n module.exports.parseMIMEType = parseMIMEType\n module.exports.serializeAMimeType = serializeAMimeType\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n const { WebSocket } = require('./lib/websocket/websocket')\n\n module.exports.WebSocket = WebSocket\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n", null, null, null, "'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n", "'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n", "'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n", "'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n", "'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n", "'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n", "'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n", "'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n", "var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n", "var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL());\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230\u00A75.3.1: When making a request directly to an origin server, [\u2026]\n // a client MUST send only the absolute path [\u2026] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, [\u2026]\n // a client MUST send the target URI in absolute-form [\u2026].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231\u00A76.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231\u00A76.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231\u00A76.4: Automatic redirection needs to done with\n // care for methods not known to be safe, [\u2026]\n // RFC7231\u00A76.4.2\u20133: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231\u00A76.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource [\u2026]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) [\u2026]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n /* istanbul ignore else */\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n /* istanbul ignore next */\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n", "{\n \"name\": \"axios\",\n \"version\": \"0.21.4\",\n \"description\": \"Promise based HTTP client for the browser and node.js\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"test\": \"grunt test\",\n \"start\": \"node ./sandbox/server.js\",\n \"build\": \"NODE_ENV=production grunt build\",\n \"preversion\": \"npm test\",\n \"version\": \"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json\",\n \"postversion\": \"git push && git push --tags\",\n \"examples\": \"node ./examples/server.js\",\n \"coveralls\": \"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\",\n \"fix\": \"eslint --fix lib/**/*.js\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/axios/axios.git\"\n },\n \"keywords\": [\n \"xhr\",\n \"http\",\n \"ajax\",\n \"promise\",\n \"node\"\n ],\n \"author\": \"Matt Zabriskie\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/axios/axios/issues\"\n },\n \"homepage\": \"https://axios-http.com\",\n \"devDependencies\": {\n \"coveralls\": \"^3.0.0\",\n \"es6-promise\": \"^4.2.4\",\n \"grunt\": \"^1.3.0\",\n \"grunt-banner\": \"^0.6.0\",\n \"grunt-cli\": \"^1.2.0\",\n \"grunt-contrib-clean\": \"^1.1.0\",\n \"grunt-contrib-watch\": \"^1.0.0\",\n \"grunt-eslint\": \"^23.0.0\",\n \"grunt-karma\": \"^4.0.0\",\n \"grunt-mocha-test\": \"^0.13.3\",\n \"grunt-ts\": \"^6.0.0-beta.19\",\n \"grunt-webpack\": \"^4.0.2\",\n \"istanbul-instrumenter-loader\": \"^1.0.0\",\n \"jasmine-core\": \"^2.4.1\",\n \"karma\": \"^6.3.2\",\n \"karma-chrome-launcher\": \"^3.1.0\",\n \"karma-firefox-launcher\": \"^2.1.0\",\n \"karma-jasmine\": \"^1.1.1\",\n \"karma-jasmine-ajax\": \"^0.1.13\",\n \"karma-safari-launcher\": \"^1.0.0\",\n \"karma-sauce-launcher\": \"^4.3.6\",\n \"karma-sinon\": \"^1.0.5\",\n \"karma-sourcemap-loader\": \"^0.3.8\",\n \"karma-webpack\": \"^4.0.2\",\n \"load-grunt-tasks\": \"^3.5.2\",\n \"minimist\": \"^1.2.0\",\n \"mocha\": \"^8.2.1\",\n \"sinon\": \"^4.5.0\",\n \"terser-webpack-plugin\": \"^4.2.3\",\n \"typescript\": \"^4.0.5\",\n \"url-search-params\": \"^0.10.0\",\n \"webpack\": \"^4.44.2\",\n \"webpack-dev-server\": \"^3.11.0\"\n },\n \"browser\": {\n \"./lib/adapters/http.js\": \"./lib/adapters/xhr.js\"\n },\n \"jsdelivr\": \"dist/axios.min.js\",\n \"unpkg\": \"dist/axios.min.js\",\n \"typings\": \"./index.d.ts\",\n \"dependencies\": {\n \"follow-redirects\": \"^1.14.0\"\n },\n \"bundlesize\": [\n {\n \"path\": \"./dist/axios.min.js\",\n \"threshold\": \"5kB\"\n }\n ]\n}\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildFullPath = require('../core/buildFullPath');\nvar buildURL = require('./../helpers/buildURL');\nvar http = require('http');\nvar https = require('https');\nvar httpFollow = require('follow-redirects').http;\nvar httpsFollow = require('follow-redirects').https;\nvar url = require('url');\nvar zlib = require('zlib');\nvar pkg = require('./../../package.json');\nvar createError = require('../core/createError');\nvar enhanceError = require('../core/enhanceError');\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nmodule.exports = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var resolve = function resolve(value) {\n resolvePromise(value);\n };\n var reject = function reject(value) {\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('User-Agent' in headers || 'user-agent' in headers) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers['User-Agent'] && !headers['user-agent']) {\n delete headers['User-Agent'];\n delete headers['user-agent'];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + pkg.version;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers['Content-Length'] = data.length;\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url.parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth) {\n delete headers.Authorization;\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url.parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n var responseData = Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n\n response.data = responseData;\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n reject(createError(\n 'timeout of ' + timeout + 'ms exceeded',\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(cancel);\n });\n }\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n", "'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n", "'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n", "'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n", "'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n", "'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n", "'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n", "module.exports = require('./lib/axios');", null, null, null, null, null, null, "import React from \"react\";\nimport { Action, ActionPanel, Form, Icon, showToast, Toast } from \"@raycast/api\";\nimport { usePromise } from \"@raycast/utils\";\nimport { useDebouncedValue, useSelectedLanguagesSet, useTextState, usePreferences } from \"./hooks\";\nimport { LanguageCode, supportedLanguagesByCode, languages, english } from \"./languages\";\nimport { AUTO_DETECT, simpleTranslate } from \"./simple-translate\";\nimport { LanguagesManagerList } from \"./LanguagesManager\";\nimport { ConfigurableCopyPasteActions, OpenOnGoogleTranslateWebsiteAction } from \"./actions\";\n\nexport default function TranslateForm() {\n const [selectedLanguageSet, setSelectedLanguageSet] = useSelectedLanguagesSet();\n const langFrom = selectedLanguageSet.langFrom;\n const langTo = Array.isArray(selectedLanguageSet.langTo) ? selectedLanguageSet.langTo[0] : selectedLanguageSet.langTo;\n const { proxy } = usePreferences();\n const textInputRef = React.useRef<Form.TextArea>(null);\n const toLangInputRef = React.useRef<Form.Dropdown>(null);\n const fromLangInputRef = React.useRef<Form.Dropdown>(null);\n const setLangFrom = (l: LanguageCode) => setSelectedLanguageSet({ ...selectedLanguageSet, langFrom: l });\n const setLangTo = (l: LanguageCode) => setSelectedLanguageSet({ ...selectedLanguageSet, langTo: [l] });\n const fromLangObj = supportedLanguagesByCode[langFrom] ?? english;\n const toLangObj = supportedLanguagesByCode[langTo] ?? english;\n\n const [text, setText] = useTextState();\n const debouncedValue = useDebouncedValue(text, 500);\n const { data: translated, isLoading } = usePromise(\n simpleTranslate,\n [debouncedValue, { langFrom: fromLangObj.code, langTo: [toLangObj.code], proxy }],\n {\n onError(error) {\n showToast({\n style: Toast.Style.Failure,\n title: error.name,\n message: error.message,\n });\n },\n },\n );\n\n const handleChange = (value: string) => {\n if (value.length > 5000) {\n setText(value.slice(0, 5000));\n showToast({\n style: Toast.Style.Failure,\n title: \"Limit\",\n message: \"Max length (5000 chars) for a single translation exceeded\",\n });\n } else {\n setText(value);\n }\n };\n\n const autoDetectedLanguage = React.useMemo(() => {\n if (langFrom === AUTO_DETECT && translated) {\n return supportedLanguagesByCode[translated.langFrom];\n }\n\n return null;\n }, [translated, langFrom]);\n\n return (\n <Form\n isLoading={isLoading}\n actions={\n <ActionPanel>\n <ActionPanel.Section title=\"Generals\">\n <ConfigurableCopyPasteActions defaultActionsPrefix=\"Translated\" value={translated?.translatedText ?? \"\"} />\n <Action.CopyToClipboard title=\"Copy Text\" content={text ?? \"\"} />\n <Action.CopyToClipboard\n title=\"Copy Pronunciation\"\n shortcut={{ modifiers: [\"cmd\", \"shift\"], key: \"p\" }}\n content={translated?.pronunciationText ?? \"\"}\n />\n <OpenOnGoogleTranslateWebsiteAction translationText={text} translation={{ langFrom, langTo }} />\n <Action.Push\n icon={Icon.Pencil}\n title=\"Manage language sets...\"\n shortcut={{ modifiers: [\"cmd\"], key: \"l\" }}\n target={<LanguagesManagerList />}\n />\n </ActionPanel.Section>\n <ActionPanel.Section title=\"Settings\">\n <Action\n shortcut={{ modifiers: [\"cmd\", \"shift\"], key: \"s\" }}\n onAction={() => {\n if (autoDetectedLanguage?.code) {\n setSelectedLanguageSet({\n langFrom: langTo,\n langTo: [supportedLanguagesByCode[autoDetectedLanguage.code].code],\n });\n } else {\n setSelectedLanguageSet({ langFrom: langTo, langTo: [langFrom] });\n }\n }}\n title={`${autoDetectedLanguage?.name ?? fromLangObj.name} <-> ${toLangObj.name}`}\n />\n <Action\n shortcut={{ modifiers: [\"cmd\", \"shift\"], key: \"f\" }}\n title=\"Change From Language\"\n onAction={() => {\n fromLangInputRef.current?.focus();\n }}\n />\n <Action\n shortcut={{ modifiers: [\"cmd\", \"shift\"], key: \"t\" }}\n title=\"Change To Language\"\n onAction={() => {\n toLangInputRef.current?.focus();\n }}\n />\n </ActionPanel.Section>\n </ActionPanel>\n }\n >\n <Form.TextArea id=\"text\" title=\"Text\" value={text} onChange={handleChange} ref={textInputRef} />\n <Form.Dropdown\n id=\"language_from\"\n title=\"From\"\n value={autoDetectedLanguage?.code ?? langFrom}\n onChange={(v) => {\n setLangFrom(v as LanguageCode);\n textInputRef.current?.focus();\n }}\n storeValue\n ref={fromLangInputRef}\n >\n {autoDetectedLanguage && (\n <Form.Dropdown.Item value={autoDetectedLanguage.code} title={`${autoDetectedLanguage.name} (Auto-detect)`} />\n )}\n {languages.map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} />\n ))}\n </Form.Dropdown>\n <Form.Dropdown\n id=\"language_to\"\n title=\"To\"\n value={langTo}\n onChange={(v) => {\n setLangTo(v as LanguageCode);\n textInputRef.current?.focus();\n }}\n storeValue\n ref={toLangInputRef}\n >\n {languages\n .filter((lang) => lang.code !== AUTO_DETECT)\n .map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} />\n ))}\n </Form.Dropdown>\n <Form.TextArea\n id=\"result\"\n title=\"Translation\"\n value={translated?.translatedText ?? \"\"}\n placeholder=\"Translation\"\n />\n <Form.Description title=\"Pronunciation\" text={translated?.pronunciationText ?? \"\"} />\n </Form>\n );\n}\n", "import { getPreferenceValues, getSelectedText } from \"@raycast/api\";\nimport { useCachedState } from \"@raycast/utils\";\nimport React from \"react\";\nimport { LanguageCode } from \"./languages\";\nimport { LanguageCodeSet, TranslatePreferences } from \"./types\";\nimport { AUTO_DETECT } from \"./simple-translate\";\n\ntype _LegacySingleLanguageCodeSet = {\n langFrom: LanguageCode;\n langTo: LanguageCode;\n};\n\ntype _StoredLanguageCodeSet = _LegacySingleLanguageCodeSet | LanguageCodeSet;\n\nconst unifyLegacyLanguageSet = (legacy: _StoredLanguageCodeSet): LanguageCodeSet => {\n return {\n langFrom: legacy.langFrom,\n langTo: Array.isArray(legacy.langTo) ? legacy.langTo : [legacy.langTo],\n };\n};\n\nexport const usePreferences = () => {\n return React.useMemo(() => getPreferenceValues<TranslatePreferences>(), []);\n};\n\nexport const useTextState = () => {\n const preferences = usePreferences();\n const [text, setText] = React.useState(\"\");\n const textRef = React.useRef(text);\n textRef.current = text;\n\n React.useEffect(() => {\n if (preferences.autoInput) {\n getSelectedText()\n .then((cbText) => {\n if (!textRef.current) {\n setText(cbText ?? \"\");\n }\n })\n .catch((err) => {\n console.log(\"Error:\", err);\n });\n }\n }, []);\n\n return [text, setText] as const;\n};\n\nexport const useSelectedLanguagesSet = () => {\n const preferences = usePreferences();\n const [selectedLanguageSet, setSelectedLanguageSet] = useCachedState<_StoredLanguageCodeSet>(\n \"selectedLanguageSet\",\n unifyLegacyLanguageSet({\n langFrom: preferences.lang1,\n langTo: preferences.lang2,\n }),\n );\n\n return [unifyLegacyLanguageSet(selectedLanguageSet), setSelectedLanguageSet] as const;\n};\n\nexport const usePreferencesLanguageSet = () => {\n const preferences = usePreferences();\n const preferencesLanguageSet: LanguageCodeSet = { langFrom: preferences.lang1, langTo: [preferences.lang2] };\n return preferencesLanguageSet;\n};\n\nexport const useDebouncedValue = <T>(value: T, delay: number) => {\n const [debouncedValue, setDebouncedValue] = React.useState<T>(value);\n\n React.useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n\nexport const useAllLanguageSets = () => {\n const [languages, setLanguages] = useCachedState<_StoredLanguageCodeSet[]>(\"languages\", []);\n\n return [languages.map(unifyLegacyLanguageSet), setLanguages] as const;\n};\n\nexport const useSourceLanguage = () => {\n const [sourceLanguage, setSourceLanguage] = useCachedState<LanguageCode>(\"sourceLanguage\", AUTO_DETECT);\n\n return [sourceLanguage, setSourceLanguage] as const;\n};\n\nexport const useTargetLanguages = () => {\n const preferences = usePreferences();\n const [targetLanguages, setTargetLanguages] = useCachedState<LanguageCode[]>(\n \"targetLanguages\",\n [preferences.lang1, preferences.lang2].filter((lang) => lang !== AUTO_DETECT),\n );\n\n return [targetLanguages, setTargetLanguages] as const;\n};\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\nimport querystring from \"querystring\";\nimport { request, ProxyAgent } from \"undici\";\nimport { TranslateOption, TranslateResponse } from \"./types\";\nimport { isSupported, getISOCode } from \"./languages\";\nimport { tokenGenerator } from \"./tokenGenerator\";\n\n/**\n * @function translate\n * @param {String} text The text to be translated.\n * @param {TranslateOption} options The options object for the translator.\n * @returns {TranslateResponse} The result containing the translation.\n */\nexport async function translate(text: string, options?: TranslateOption): Promise<TranslateResponse> {\n if (typeof options !== \"object\") options = {};\n text = String(text);\n\n // Check if a lanugage is in supported; if not, throw an error object.\n let error: Error | null = null;\n [ options.from, options.to ].forEach((lang) => {\n if (lang && !isSupported(lang)) {\n error = new Error();\n error.message = `The language '${lang}' is not supported.`;\n }\n });\n if (error) throw error;\n\n // If options object doesn\"t have \"from\" language, set it to \"auto\".\n if (!Object.prototype.hasOwnProperty.call(options, \"from\")) options.from = \"auto\";\n // If options object doesn\"t have \"to\" language, set it to \"en\".\n if (!Object.prototype.hasOwnProperty.call(options, \"to\")) options.to = \"en\";\n // If options object has a \"raw\" property evaluating to true, set it to true.\n options.raw = Boolean(options.raw);\n\n // Get ISO 639-1 codes for the languages.\n options.from = getISOCode(options.from);\n options.to = getISOCode(options.to);\n\n // Generate Google Translate token for the text to be translated.\n let token: any = await tokenGenerator(text);\n\n // URL & query string required by Google Translate.\n let baseUrl = \"https://translate.google.com/translate_a/single\";\n let data: any = {\n client: \"gtx\",\n sl: options.from,\n tl: options.to,\n hl: options.to,\n dt: [ \"at\", \"bd\", \"ex\", \"ld\", \"md\", \"qca\", \"rw\", \"rm\", \"ss\", \"t\" ],\n ie: \"UTF-8\",\n oe: \"UTF-8\",\n otf: 1,\n ssel: 0,\n tsel: 0,\n kc: 7,\n q: text,\n [token.name]: token.value\n };\n\n // Append query string to the request URL.\n let url = `${baseUrl}?${querystring.stringify(data)}`;\n\n let requestOptions: any;\n let requestUrl = url;\n // If request URL is greater than 2048 characters, use POST method.\n if (url.length > 2048) {\n delete data.q;\n requestUrl = `${baseUrl}?${querystring.stringify(data)}`;\n requestOptions = {\n method: \"POST\",\n body: new URLSearchParams({ q: text }).toString(),\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\",\n },\n };\n if (options.proxy) {\n requestOptions.dispatcher = new ProxyAgent(options.proxy);\n }\n }\n else {\n if (options.proxy) {\n requestOptions = { dispatcher: new ProxyAgent(options.proxy) };\n }\n }\n\n // Request translation from Google Translate.\n let response = await request(requestUrl, requestOptions);\n let body: any = await response.body.json();\n\n let result: TranslateResponse = {\n text: \"\",\n from: {\n language: {\n didYouMean: false,\n iso: \"\"\n },\n text: {\n autoCorrected: false,\n value: \"\",\n didYouMean: false\n }\n },\n raw: \"\"\n };\n\n // If user requested a raw output, add the raw response to the result\n if (options.raw) {\n result.raw = body;\n }\n\n // Parse body and add it to the result object.\n body[0].forEach((obj: any) => {\n if (obj[0]) {\n result.text += obj[0];\n }\n });\n\n if (body[2] === body[8][0][0]) {\n result.from.language.iso = body[2];\n }\n else {\n result.from.language.didYouMean = true;\n result.from.language.iso = body[8][0][0];\n }\n\n if (body[7] && body[7][0]) {\n let str = body[7][0];\n\n str = str.replace(/<b><i>/g, \"[\");\n str = str.replace(/<\\/i><\\/b>/g, \"]\");\n\n result.from.text.value = str;\n\n if (body[7][5] === true) {\n result.from.text.autoCorrected = true;\n }\n else {\n result.from.text.didYouMean = true;\n }\n }\n\n return result;\n}\n", "/**\n * Generated from https://translate.google.com\n *\n * The languages that Google Translate supports (as of 7/5/2020) alongside\n * their ISO 639-1 codes\n * @see https://cloud.google.com/translate/docs/languages\n * @see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n */\n\nexport const languages = {\n \"auto\": \"Auto-Detect\",\n \"ab\": \"Abkhaz\",\n \"ace\": \"Acehnese\",\n \"ach\": \"Acholi\",\n \"aa\": \"Afar\",\n \"af\": \"Afrikaans\",\n \"sq\": \"Albanian\",\n \"alz\": \"Alur\",\n \"am\": \"Amharic\",\n \"ar\": \"Arabic\",\n \"hy\": \"Armenian\",\n \"as\": \"Assamese\",\n \"av\": \"Avar\",\n \"awa\": \"Awadhi\",\n \"ay\": \"Aymara\",\n \"az\": \"Azerbaijani\",\n \"ban\": \"Balinese\",\n \"bal\": \"Baluchi\",\n \"bm\": \"Bambara\",\n \"bci\": \"Baoul\\u00e9\",\n \"ba\": \"Bashkir\",\n \"eu\": \"Basque\",\n \"btx\": \"Batak Karo\",\n \"bts\": \"Batak Simalungun\",\n \"bbc\": \"Batak Toba\",\n \"be\": \"Belarusian\",\n \"bem\": \"Bemba\",\n \"bn\": \"Bengali\",\n \"bew\": \"Betawi\",\n \"bho\": \"Bhojpuri\",\n \"bik\": \"Bikol\",\n \"bs\": \"Bosnian\",\n \"br\": \"Breton\",\n \"bg\": \"Bulgarian\",\n \"bua\": \"Buryat\",\n \"yue\": \"Cantonese\",\n \"ca\": \"Catalan\",\n \"ceb\": \"Cebuano\",\n \"ch\": \"Chamorro\",\n \"ce\": \"Chechen\",\n \"ny\": \"Chichewa\",\n \"zh-CN\": \"Chinese (Simplified)\",\n \"zh-TW\": \"Chinese (Traditional)\",\n \"chk\": \"Chuukese\",\n \"cv\": \"Chuvash\",\n \"co\": \"Corsican\",\n \"crh\": \"Crimean Tatar (Cyrillic)\",\n \"crh-Latn\": \"Crimean Tatar (Latin)\",\n \"hr\": \"Croatian\",\n \"cs\": \"Czech\",\n \"da\": \"Danish\",\n \"fa-AF\": \"Dari\",\n \"dv\": \"Dhivehi\",\n \"din\": \"Dinka\",\n \"doi\": \"Dogri\",\n \"dov\": \"Dombe\",\n \"nl\": \"Dutch\",\n \"dyu\": \"Dyula\",\n \"dz\": \"Dzongkha\",\n \"en\": \"English\",\n \"eo\": \"Esperanto\",\n \"et\": \"Estonian\",\n \"ee\": \"Ewe\",\n \"fo\": \"Faroese\",\n \"fj\": \"Fijian\",\n \"tl\": \"Filipino\",\n \"fi\": \"Finnish\",\n \"fon\": \"Fon\",\n \"fr\": \"French\",\n \"fr-CA\": \"French (Canada)\",\n \"fy\": \"Frisian\",\n \"fur\": \"Friulian\",\n \"ff\": \"Fulani\",\n \"gaa\": \"Ga\",\n \"gl\": \"Galician\",\n \"ka\": \"Georgian\",\n \"de\": \"German\",\n \"el\": \"Greek\",\n \"gn\": \"Guarani\",\n \"gu\": \"Gujarati\",\n \"ht\": \"Haitian Creole\",\n \"cnh\": \"Hakha Chin\",\n \"ha\": \"Hausa\",\n \"haw\": \"Hawaiian\",\n \"iw\": \"Hebrew\",\n \"hil\": \"Hiligaynon\",\n \"hi\": \"Hindi\",\n \"hmn\": \"Hmong\",\n \"hu\": \"Hungarian\",\n \"hrx\": \"Hunsrik\",\n \"iba\": \"Iban\",\n \"is\": \"Icelandic\",\n \"ig\": \"Igbo\",\n \"ilo\": \"Ilocano\",\n \"id\": \"Indonesian\",\n \"iu-Latn\": \"Inuktut (Latin)\",\n \"iu\": \"Inuktut (Syllabics)\",\n \"ga\": \"Irish\",\n \"it\": \"Italian\",\n \"jam\": \"Jamaican Patois\",\n \"ja\": \"Japanese\",\n \"jv\": \"Javanese\",\n \"kac\": \"Jingpo\",\n \"kl\": \"Kalaallisut\",\n \"kn\": \"Kannada\",\n \"kr\": \"Kanuri\",\n \"pam\": \"Kapampangan\",\n \"kk\": \"Kazakh\",\n \"kha\": \"Khasi\",\n \"km\": \"Khmer\",\n \"cgg\": \"Kiga\",\n \"kg\": \"Kikongo\",\n \"rw\": \"Kinyarwanda\",\n \"ktu\": \"Kituba\",\n \"trp\": \"Kokborok\",\n \"kv\": \"Komi\",\n \"gom\": \"Konkani\",\n \"ko\": \"Korean\",\n \"kri\": \"Krio\",\n \"ku\": \"Kurdish (Kurmanji)\",\n \"ckb\": \"Kurdish (Sorani)\",\n \"ky\": \"Kyrgyz\",\n \"lo\": \"Lao\",\n \"ltg\": \"Latgalian\",\n \"la\": \"Latin\",\n \"lv\": \"Latvian\",\n \"lij\": \"Ligurian\",\n \"li\": \"Limburgish\",\n \"ln\": \"Lingala\",\n \"lt\": \"Lithuanian\",\n \"lmo\": \"Lombard\",\n \"lg\": \"Luganda\",\n \"luo\": \"Luo\",\n \"lb\": \"Luxembourgish\",\n \"mk\": \"Macedonian\",\n \"mad\": \"Madurese\",\n \"mai\": \"Maithili\",\n \"mak\": \"Makassar\",\n \"mg\": \"Malagasy\",\n \"ms\": \"Malay\",\n \"ms-Arab\": \"Malay (Jawi)\",\n \"ml\": \"Malayalam\",\n \"mt\": \"Maltese\",\n \"mam\": \"Mam\",\n \"gv\": \"Manx\",\n \"mi\": \"Maori\",\n \"mr\": \"Marathi\",\n \"mh\": \"Marshallese\",\n \"mwr\": \"Marwadi\",\n \"mfe\": \"Mauritian Creole\",\n \"chm\": \"Meadow Mari\",\n \"mni-Mtei\": \"Meiteilon (Manipuri)\",\n \"min\": \"Minang\",\n \"lus\": \"Mizo\",\n \"mn\": \"Mongolian\",\n \"my\": \"Myanmar (Burmese)\",\n \"bm-Nkoo\": \"NKo\",\n \"nhe\": \"Nahuatl (Eastern Huasteca)\",\n \"ndc-ZW\": \"Ndau\",\n \"nr\": \"Ndebele (South)\",\n \"new\": \"Nepalbhasa (Newari)\",\n \"ne\": \"Nepali\",\n \"no\": \"Norwegian\",\n \"nus\": \"Nuer\",\n \"oc\": \"Occitan\",\n \"or\": \"Odia (Oriya)\",\n \"om\": \"Oromo\",\n \"os\": \"Ossetian\",\n \"pag\": \"Pangasinan\",\n \"pap\": \"Papiamento\",\n \"ps\": \"Pashto\",\n \"fa\": \"Persian\",\n \"pl\": \"Polish\",\n \"pt\": \"Portuguese (Brazil)\",\n \"pt-PT\": \"Portuguese (Portugal)\",\n \"pa\": \"Punjabi (Gurmukhi)\",\n \"pa-Arab\": \"Punjabi (Shahmukhi)\",\n \"qu\": \"Quechua\",\n \"kek\": \"Q\\u02bceqchi\\u02bc\",\n \"rom\": \"Romani\",\n \"ro\": \"Romanian\",\n \"rn\": \"Rundi\",\n \"ru\": \"Russian\",\n \"se\": \"Sami (North)\",\n \"sm\": \"Samoan\",\n \"sg\": \"Sango\",\n \"sa\": \"Sanskrit\",\n \"sat-Latn\": \"Santali (Latin)\",\n \"sat\": \"Santali (Ol Chiki)\",\n \"gd\": \"Scots Gaelic\",\n \"nso\": \"Sepedi\",\n \"sr\": \"Serbian\",\n \"st\": \"Sesotho\",\n \"crs\": \"Seychellois Creole\",\n \"shn\": \"Shan\",\n \"sn\": \"Shona\",\n \"scn\": \"Sicilian\",\n \"szl\": \"Silesian\",\n \"sd\": \"Sindhi\",\n \"si\": \"Sinhala\",\n \"sk\": \"Slovak\",\n \"sl\": \"Slovenian\",\n \"so\": \"Somali\",\n \"es\": \"Spanish\",\n \"su\": \"Sundanese\",\n \"sus\": \"Susu\",\n \"sw\": \"Swahili\",\n \"ss\": \"Swati\",\n \"sv\": \"Swedish\",\n \"ty\": \"Tahitian\",\n \"tg\": \"Tajik\",\n \"ber-Latn\": \"Tamazight\",\n \"ber\": \"Tamazight (Tifinagh)\",\n \"ta\": \"Tamil\",\n \"tt\": \"Tatar\",\n \"te\": \"Telugu\",\n \"tet\": \"Tetum\",\n \"th\": \"Thai\",\n \"bo\": \"Tibetan\",\n \"ti\": \"Tigrinya\",\n \"tiv\": \"Tiv\",\n \"tpi\": \"Tok Pisin\",\n \"to\": \"Tongan\",\n \"lua\": \"Tshiluba\",\n \"ts\": \"Tsonga\",\n \"tn\": \"Tswana\",\n \"tcy\": \"Tulu\",\n \"tum\": \"Tumbuka\",\n \"tr\": \"Turkish\",\n \"tk\": \"Turkmen\",\n \"tyv\": \"Tuvan\",\n \"ak\": \"Twi\",\n \"udm\": \"Udmurt\",\n \"uk\": \"Ukrainian\",\n \"ur\": \"Urdu\",\n \"ug\": \"Uyghur\",\n \"uz\": \"Uzbek\",\n \"ve\": \"Venda\",\n \"vec\": \"Venetian\",\n \"vi\": \"Vietnamese\",\n \"war\": \"Waray\",\n \"cy\": \"Welsh\",\n \"wo\": \"Wolof\",\n \"xh\": \"Xhosa\",\n \"sah\": \"Yakut\",\n \"yi\": \"Yiddish\",\n \"yo\": \"Yoruba\",\n \"yua\": \"Yucatec Maya\",\n \"zap\": \"Zapotec\",\n \"zu\": \"Zulu\",\n} as const;\n\n/**\n * Returns the ISO 639-1 code of the desiredLang \u2013 if it is supported by\n * Google Translate\n * @param {string} language The name or the code of the desired language\n * @returns {string|undefined} The ISO 639-1 code of the language or null if the\n * language is not supported\n */\nexport function getISOCode(language: string | undefined) {\n if (!language) return undefined;\n if (language in languages) return language;\n language = language.toLowerCase();\n if (language in languages) return language;\n\n const keys = (Object.keys(languages) as (keyof typeof languages)[]).filter((key) => {\n if (typeof languages[key] !== \"string\") return false;\n\n return languages[key].toLowerCase() === language;\n });\n\n return keys[0] || undefined;\n}\n\n/**\n * Returns true if the desiredLang is supported by Google Translate and false otherwise\n * @param {string} language The ISO 639-1 code or the name of the desired language.\n * @returns {boolean} If the language is supported or not.\n */\nexport function isSupported(language: string | undefined) {\n return Boolean(getISOCode(language));\n}\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\n\nimport { request } from \"undici\";\n\nfunction zr(a: string) {\n let b: any;\n if (null !== yr) b = yr;\n else {\n b = wr(String.fromCharCode(84));\n let c = wr(String.fromCharCode(75));\n b = [ b(), b() ];\n b[1] = c();\n b = (yr = window[b.join(c())] || \"\") || \"\";\n }\n let d: any = wr(String.fromCharCode(116));\n let c: any = wr(String.fromCharCode(107));\n d = [ d(), d() ];\n d[1] = c();\n c = \"&\" + d.join(\"\") + \"=\";\n d = b.split(\".\");\n b = Number(d[0]) || 0;\n\n for (var e: any[] = [], f = 0, g = 0; g < a.length; g++) {\n let l = a.charCodeAt(g);\n 128 > l ? e[f++] = l : (2048 > l ? e[f++] = l >> 6 | 192 : ((l & 64512) == 55296 && g + 1 < a.length && (a.charCodeAt(g + 1) & 64512) == 56320 ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023), e[f++] = l >> 18 | 240, e[f++] = l >> 12 & 63 | 128) : e[f++] = l >> 12 | 224, e[f++] = l >> 6 & 63 | 128), e[f++] = l & 63 | 128);\n }\n let h: number = Number(b);\n for (let f = 0; f < e.length; f++) a += e[f], h = xr(h, \"+-a^+6\");\n h = xr(h, \"+-3^+b+-f\");\n h ^= Number(d[1]) || 0;\n 0 > h && (h = (h & 2147483647) + 2147483648);\n h %= 1E6;\n return c + (a.toString() + \".\" + (h ^ b));\n}\n\nlet yr: string | null = null;\nlet wr = function(a: string) {\n return function() {\n return a;\n };\n};\nlet xr = function(a: number, b: string) {\n for (let c = 0; c < b.length - 2; c += 3) {\n let d = b.charAt(c + 2);\n let e = d >= \"a\" ? d.charCodeAt(0) - 87 : Number(d);\n e = b.charAt(c + 1) == \"+\" ? a >>> e : a << e;\n a = b.charAt(c) == \"+\" ? a + e & 4294967295 : a ^ e;\n }\n return a;\n};\n\nconst config = new Map();\n\nconst window: any = {\n TKK: config.get(\"TKK\") || \"0\"\n};\n\nasync function updateTKK() {\n let now = Math.floor(Date.now() / 3600000);\n\n if (Number(window.TKK.split(\".\")[0]) !== now) {\n const response = await request(\"https://translate.google.com\");\n const body = await response.body.text();\n\n // code will extract something like tkk:'1232135.131231321312', we need only value\n const code = body.match(/tkk:'\\d+.\\d+'/g);\n\n if (code && code.length > 0) {\n // extracting value tkk:'1232135.131231321312', this will extract only token: 1232135.131231321312\n const xt = code[0].split(\":\")[1].replace(/'/g, \"\");\n\n window.TKK = xt;\n config.set(\"TKK\", xt);\n }\n }\n}\n\nexport async function tokenGenerator(text: string) {\n try {\n await updateTKK();\n\n let tk = zr(text);\n tk = tk.replace(\"&tk=\", \"\");\n return { name: \"tk\", value: tk };\n }\n catch (error) {\n return error;\n }\n}\n", "import { translate } from \"../vendor/@iamtraction-translate/src\";\nimport * as googleTTS from \"google-tts-api\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport * as https from \"https\";\nimport * as child_process from \"child_process\";\nimport { existsSync, writeFileSync, unlinkSync } from \"fs\";\nimport { LanguageCode } from \"./languages\";\nimport { LanguageCodeSet } from \"./types\";\nimport { HttpsProxyAgent } from \"https-proxy-agent\";\n\nexport const AUTO_DETECT = \"auto\";\n\nexport type SimpleTranslateResult = {\n originalText: string;\n translatedText: string;\n pronunciationText?: string;\n langFrom: LanguageCode;\n langTo: LanguageCode;\n proxy?: string;\n};\n\nexport class TranslateError extends Error {}\n\nconst extractPronounceTextFromRaw = (raw: string) => {\n return raw?.[0]?.[1]?.[2];\n};\n\nexport async function simpleTranslate(text: string, options: LanguageCodeSet): Promise<SimpleTranslateResult> {\n try {\n if (!text) {\n return {\n originalText: text,\n translatedText: \"\",\n pronunciationText: \"\",\n langFrom: options.langFrom,\n langTo: options.langTo[0],\n };\n }\n\n const translated = await translate(text, {\n from: options.langFrom,\n to: options.langTo[0],\n raw: true,\n proxy: options.proxy,\n });\n\n return {\n originalText: text,\n translatedText: translated.text,\n pronunciationText: extractPronounceTextFromRaw(translated?.raw),\n langFrom: translated?.from?.language?.iso as LanguageCode,\n langTo: options.langTo[0],\n };\n } catch (err) {\n if (err instanceof Error) {\n if (err.name === \"TooManyRequestsError\") {\n const error = new TranslateError();\n error.name = \"Too many requests\";\n error.message = \"please try again later\";\n throw error;\n }\n\n const error = new TranslateError();\n error.name = err.name;\n error.message = err.message;\n throw error;\n }\n\n throw err;\n }\n}\n\nexport async function doubleWayTranslate(text: string, options: LanguageCodeSet) {\n if (!text) {\n return [];\n }\n\n if (options.langFrom === AUTO_DETECT) {\n const translated1 = await simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n proxy: options.proxy,\n });\n\n if (translated1?.langFrom) {\n const translated2 = await simpleTranslate(translated1.translatedText, {\n langFrom: options.langTo[0],\n langTo: [translated1.langFrom],\n proxy: options.proxy,\n });\n\n return [translated1, translated2];\n }\n\n return [];\n } else {\n return await Promise.all([\n simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n proxy: options.proxy,\n }),\n simpleTranslate(text, {\n langFrom: options.langTo[0],\n langTo: [options.langFrom],\n proxy: options.proxy,\n }),\n ]);\n }\n}\n\nexport async function playTTS(text: string, langTo: string, proxy?: string) {\n const audioUrl = googleTTS.getAudioUrl(text, {\n lang: langTo,\n slow: false,\n host: \"https://translate.google.com\",\n });\n\n let agent: HttpsProxyAgent<string> | undefined;\n\n if (proxy) {\n try {\n agent = new HttpsProxyAgent(proxy);\n } catch (e) {\n console.error(`Error creating proxy agent for ${proxy}:`, e);\n agent = undefined; // Fallback to no proxy if agent creation fails\n }\n }\n\n // The options object for https.get. If 'agent' is undefined, it won't be included,\n // and https.get will use the default agent.\n const requestOptions: https.RequestOptions = {\n agent: agent,\n };\n\n https.get(audioUrl, requestOptions, (response) => {\n const chunks: Uint8Array[] = [];\n\n response.on(\"data\", (chunk) => {\n chunks.push(chunk);\n });\n\n response\n .on(\"end\", () => {\n const audioData = Buffer.concat(chunks);\n\n const tempFilePath = path.join(os.tmpdir(), \"translation.mp3\");\n writeFileSync(tempFilePath, audioData);\n\n // Play the audio file using afplay\n const afplayProcess = child_process.spawn(\"afplay\", [tempFilePath]);\n\n afplayProcess.on(\"exit\", (code) => {\n if (code !== 0) {\n console.error(`Error playing audio: afplay exited with code ${code}`);\n }\n if (existsSync(tempFilePath)) {\n unlinkSync(tempFilePath);\n }\n });\n })\n .on(\"error\", (error) => {\n console.error(\"Error downloading audio:\", error);\n });\n });\n}\n", "import { languages as _languages } from \"../vendor/@iamtraction-translate/src/languages\";\n\nexport type LanguageCode = keyof typeof _languages;\nexport type LanguageName = (typeof _languages)[LanguageCode];\nexport type LanguagesItem = {\n code: LanguageCode;\n name: LanguageName;\n};\nexport const english: LanguagesItem = { code: \"en\", name: _languages.en };\nexport const autoDetect: LanguagesItem = { code: \"auto\", name: _languages.auto };\n\nexport const languages: LanguagesItem[] = (Object.keys(_languages) as (keyof typeof _languages)[]).map((code) => ({\n code,\n name: _languages[code],\n}));\n\nexport const supportedLanguagesByCode = languages.reduce(\n (acc, lang) => ({\n ...acc,\n [lang.code]: lang,\n }),\n {} as Record<LanguageCode, LanguagesItem>,\n);\nexport const supportedLanguagesByCountry = languages.reduce(\n (acc, lang) => ({\n ...acc,\n [lang.name]: lang,\n }),\n {} as Record<LanguageName, LanguagesItem>,\n);\n", "import React from \"react\";\nimport { Action, ActionPanel, Color, Icon, List, showToast, Toast, useNavigation } from \"@raycast/api\";\nimport { LanguageCodeSet } from \"../types\";\nimport { useAllLanguageSets, usePreferencesLanguageSet, useSelectedLanguagesSet } from \"../hooks\";\nimport { AddLanguageForm } from \"./AddLanguageForm\";\nimport { isSameLanguageSet, formatLanguageSet, getLanguageSetObjects } from \"../utils\";\n\nexport function LanguagesManagerItem({\n languageSet,\n onSelect,\n onDelete,\n selected,\n}: {\n languageSet: LanguageCodeSet;\n onSelect: () => void;\n onDelete?: () => void;\n selected?: boolean;\n}) {\n const { langFrom, langTo } = getLanguageSetObjects(languageSet);\n\n const langsTo = Array.isArray(langTo) ? langTo : [langTo];\n const langsToLabel = langsTo.map((l) => l.name).join(\", \");\n\n return (\n <List.Item\n title={`${langFrom.name} ->`}\n subtitle={` ${langsToLabel}`}\n keywords={[langFrom.name, langFrom.code, ...langsTo.flatMap((l) => [l.name, l.code])]}\n icon={selected ? { tintColor: Color.Green, source: Icon.Checkmark } : undefined}\n actions={\n <ActionPanel>\n <Action title=\"Select\" onAction={onSelect} icon={{ tintColor: Color.Green, source: Icon.Checkmark }} />\n {onDelete && <Action style={Action.Style.Destructive} title=\"Delete\" onAction={onDelete} icon={Icon.Trash} />}\n </ActionPanel>\n }\n />\n );\n}\n\nexport const SaveCurrentLanguageSet: React.FC<{ languageSet: LanguageCodeSet; onSelect: () => void }> = ({\n languageSet,\n onSelect,\n}) => {\n return (\n <List.Item\n icon={Icon.SaveDocument}\n title=\"Save current set\"\n subtitle={formatLanguageSet(languageSet)}\n actions={\n <ActionPanel>\n <Action title=\"Save current set\" onAction={onSelect} />\n </ActionPanel>\n }\n />\n );\n};\n\nexport const LanguagesManagerList: React.VFC = () => {\n const navigation = useNavigation();\n const preferencesLanguageSet = usePreferencesLanguageSet();\n const [selectedLanguageSet, setSelectedLanguageSet] = useSelectedLanguagesSet();\n const [languages, setLanguages] = useAllLanguageSets();\n\n return (\n <List\n actions={\n <ActionPanel>\n <Action title=\"Remove all\" onAction={() => setLanguages([])} />\n </ActionPanel>\n }\n >\n <List.Item\n icon={{ source: Icon.Plus }}\n title=\"Add new language set...\"\n actions={\n <ActionPanel>\n <Action.Push\n title=\"Add new language set...\"\n target={\n <AddLanguageForm\n onAddLanguage={(langSet) => {\n setLanguages([...languages, langSet]);\n navigation.pop();\n showToast(Toast.Style.Success, \"Language set was saved!\", formatLanguageSet(langSet));\n }}\n />\n }\n />\n </ActionPanel>\n }\n />\n {!languages.some((l) => isSameLanguageSet(l, selectedLanguageSet)) &&\n !isSameLanguageSet(preferencesLanguageSet, selectedLanguageSet) && (\n <SaveCurrentLanguageSet\n languageSet={selectedLanguageSet}\n onSelect={() => setLanguages([...languages, selectedLanguageSet])}\n />\n )}\n <LanguagesManagerItem\n languageSet={preferencesLanguageSet}\n onSelect={() => {\n setSelectedLanguageSet(preferencesLanguageSet);\n navigation.pop();\n }}\n selected={isSameLanguageSet(selectedLanguageSet, preferencesLanguageSet)}\n />\n {languages.map((langSet) => (\n <LanguagesManagerItem\n key={`${langSet.langFrom} ${langSet.langTo}`}\n selected={isSameLanguageSet(selectedLanguageSet, langSet)}\n languageSet={langSet}\n onSelect={() => {\n setSelectedLanguageSet(langSet);\n navigation.pop();\n }}\n onDelete={() => {\n setLanguages(languages.filter((l) => !isSameLanguageSet(l, langSet)));\n showToast(Toast.Style.Success, \"Language set was deleted!\", formatLanguageSet(langSet));\n }}\n />\n ))}\n </List>\n );\n};\n", "import React from \"react\";\nimport { Action, ActionPanel, Toast, Form, showToast } from \"@raycast/api\";\nimport { LanguageCode, languages } from \"../languages\";\nimport { AUTO_DETECT } from \"../simple-translate\";\nimport { LanguageCodeSet } from \"../types\";\n\nexport const AddLanguageForm: React.VFC<{\n onAddLanguage: (data: LanguageCodeSet) => void;\n}> = ({ onAddLanguage }) => {\n const [targetLanguages, setTargetLanguages] = React.useState<LanguageCode[]>([\"en\"]);\n\n return (\n <Form\n actions={\n <ActionPanel>\n <Action.SubmitForm\n title=\"Add language set\"\n onSubmit={(values: LanguageCodeSet) => {\n const filteredTargetLanguages = targetLanguages.filter((lang) => !!lang);\n if (!filteredTargetLanguages.length) {\n showToast({\n style: Toast.Style.Failure,\n title: \"No target languages\",\n message: \"Please select at least one target language\",\n });\n return;\n }\n onAddLanguage({\n langFrom: values.langFrom,\n langTo: filteredTargetLanguages,\n });\n }}\n />\n </ActionPanel>\n }\n >\n <Form.Dropdown id=\"langFrom\" title=\"Source Language\">\n {languages.map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} />\n ))}\n </Form.Dropdown>\n {targetLanguages.map((_, index) => {\n const value = targetLanguages[index];\n return (\n <Form.Dropdown\n id={`langTo.${index}`}\n title={`Target Language ${index + 1}`}\n key={index}\n value={value}\n onChange={(value) => {\n const newTargetLanguages = [...targetLanguages];\n newTargetLanguages[index] = value as LanguageCode;\n setTargetLanguages(newTargetLanguages);\n }}\n >\n {!value && <Form.Dropdown.Item value=\"\" title=\"\" />}\n {languages\n .filter((lang) => lang.code !== AUTO_DETECT)\n .map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} />\n ))}\n </Form.Dropdown>\n );\n })}\n {(!!targetLanguages[targetLanguages.length - 1] || targetLanguages.length === 0) && (\n <Form.Dropdown\n id={`langTo.${targetLanguages.length}`}\n title={`Target Language ${targetLanguages.length}`}\n key={targetLanguages.length}\n value={\"\"}\n onChange={(value) => {\n const newTargetLanguages = [...targetLanguages];\n newTargetLanguages.push(value as LanguageCode);\n setTargetLanguages(newTargetLanguages);\n }}\n >\n <Form.Dropdown.Item value=\"\" title=\"\" />\n {languages\n .filter((lang) => lang.code !== AUTO_DETECT)\n .map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} />\n ))}\n </Form.Dropdown>\n )}\n </Form>\n );\n};\n", "import { supportedLanguagesByCode } from \"./languages\";\nimport { LanguageCodeSet } from \"./types\";\n\nexport const isSameLanguageSet = (langSet1: LanguageCodeSet, langSet2: LanguageCodeSet) => {\n return langSet1.langFrom === langSet2.langFrom && langSet1.langTo.join() === langSet2.langTo.join();\n};\n\nexport const getLanguageSetObjects = (languageSet: LanguageCodeSet) => {\n return {\n langFrom: supportedLanguagesByCode[languageSet.langFrom],\n langTo: languageSet.langTo.map((l) => supportedLanguagesByCode[l]),\n };\n};\n\nexport const formatLanguageSet = (languageSet: LanguageCodeSet) => {\n const { langFrom, langTo } = getLanguageSetObjects(languageSet);\n const langToArr = Array.isArray(langTo) ? langTo : [langTo];\n const languageLabels = langToArr.map((l) => l.name);\n return `${langFrom.name} -> ${languageLabels.join(\", \")}`;\n};\n", "import React from \"react\";\nimport { Icon, List, useNavigation } from \"@raycast/api\";\nimport { LanguageCodeSet } from \"../types\";\nimport { useAllLanguageSets, usePreferencesLanguageSet, useSelectedLanguagesSet } from \"../hooks\";\nimport { LanguagesManagerList } from \"./LanguagesManagerList\";\nimport { formatLanguageSet } from \"../utils\";\n\nexport function LanguageManagerListDropdown() {\n const navigation = useNavigation();\n const preferencesLanguageSet = usePreferencesLanguageSet();\n const [selectedLanguageSet, setSelectedLanguageSet] = useSelectedLanguagesSet();\n const [languages] = useAllLanguageSets();\n\n return (\n <List.Dropdown\n value={JSON.stringify(selectedLanguageSet)}\n tooltip=\"Language Set\"\n onChange={(value) => {\n if (value === \"manage\") {\n navigation.push(<LanguagesManagerList />);\n } else {\n const langSet: LanguageCodeSet = JSON.parse(value);\n setSelectedLanguageSet(langSet);\n }\n }}\n >\n <List.Dropdown.Item icon={Icon.Pencil} title=\"Manage language sets...\" value=\"manage\" />\n <List.Dropdown.Item\n title={formatLanguageSet(preferencesLanguageSet)}\n value={JSON.stringify(preferencesLanguageSet)}\n />\n {languages.map((langSet) => (\n <List.Dropdown.Item\n key={`${langSet.langFrom} ${langSet.langTo.toString()}`}\n title={formatLanguageSet(langSet)}\n value={JSON.stringify(langSet)}\n />\n ))}\n </List.Dropdown>\n );\n}\n", "import React from \"react\";\nimport { Action, Icon, getPreferenceValues } from \"@raycast/api\";\nimport { SimpleTranslateResult } from \"./simple-translate\";\n\ninterface ActionsOpts {\n value: string;\n defaultActionsPrefix?: string;\n}\n\nexport const ConfigurableCopyPasteActions = ({ defaultActionsPrefix, value }: ActionsOpts) => {\n const defaultPreference = getPreferenceValues<ExtensionPreferences>().defaultAction;\n\n const pasteAction = (\n <Action.Paste title={defaultActionsPrefix ? `Paste ${defaultActionsPrefix}` : `Paste`} content={value} />\n );\n const copyAction = (\n <Action.CopyToClipboard title={defaultActionsPrefix ? `Copy ${defaultActionsPrefix}` : `Copy`} content={value} />\n );\n\n if (defaultPreference === \"paste\") {\n return (\n <>\n {pasteAction}\n {copyAction}\n </>\n );\n }\n\n return (\n <>\n {copyAction}\n {pasteAction}\n </>\n );\n};\n\nexport const ToggleFullTextAction: React.VFC<{\n onAction: () => void;\n}> = ({ onAction }) => {\n return (\n <Action title=\"Toggle Full Text\" icon={Icon.Text} onAction={onAction} shortcut={{ modifiers: [\"cmd\"], key: \"f\" }} />\n );\n};\n\nexport const OpenOnGoogleTranslateWebsiteAction: React.VFC<{\n translation: Pick<SimpleTranslateResult, \"langFrom\" | \"langTo\">;\n translationText: string;\n}> = ({ translationText, translation }) => {\n return (\n <Action.OpenInBrowser\n title=\"Open in Google Translate\"\n shortcut={{ modifiers: [\"opt\"], key: \"enter\" }}\n url={\n \"https://translate.google.com/?sl=\" +\n translation.langFrom +\n \"&tl=\" +\n translation.langTo +\n \"&text=\" +\n encodeURIComponent(translationText) +\n \"&op=translate\"\n }\n />\n );\n};\n"], - "mappings": "yoBAAA,IAAAA,GAAAC,EAAAC,IAAA,KAAIC,GAAM,OAAO,UAAU,eAE3B,SAASC,GAAOC,EAAKC,EAAK,CACzB,IAAIC,EAAMC,EACV,GAAIH,IAAQC,EAAK,MAAO,GAExB,GAAID,GAAOC,IAAQC,EAAKF,EAAI,eAAiBC,EAAI,YAAa,CAC7D,GAAIC,IAAS,KAAM,OAAOF,EAAI,QAAQ,IAAMC,EAAI,QAAQ,EACxD,GAAIC,IAAS,OAAQ,OAAOF,EAAI,SAAS,IAAMC,EAAI,SAAS,EAE5D,GAAIC,IAAS,MAAO,CACnB,IAAKC,EAAIH,EAAI,UAAYC,EAAI,OAC5B,KAAOE,KAASJ,GAAOC,EAAIG,CAAG,EAAGF,EAAIE,CAAG,CAAC,GAAE,CAE5C,OAAOA,IAAQ,EAChB,CAEA,GAAI,CAACD,GAAQ,OAAOF,GAAQ,SAAU,CACrCG,EAAM,EACN,IAAKD,KAAQF,EAEZ,GADIF,GAAI,KAAKE,EAAKE,CAAI,GAAK,EAAEC,GAAO,CAACL,GAAI,KAAKG,EAAKC,CAAI,GACnD,EAAEA,KAAQD,IAAQ,CAACF,GAAOC,EAAIE,CAAI,EAAGD,EAAIC,CAAI,CAAC,EAAG,MAAO,GAE7D,OAAO,OAAO,KAAKD,CAAG,EAAE,SAAWE,CACpC,CACD,CAEA,OAAOH,IAAQA,GAAOC,IAAQA,CAC/B,CAEAJ,GAAQ,OAASE,KC9BjB,IAAAK,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,YAAc,OACtB,IAAMC,GAAU,QAAQ,OAAO,EACzBC,GAAS,KAKf,SAASC,GAAYC,EAAO,CACxB,IAAMC,KAAUJ,GAAQ,QAAQG,CAAK,EAC/BE,KAAgBL,GAAQ,QAAQ,CAAC,EACvC,SAASC,GAAO,QAAQE,EAAOC,EAAI,OAAO,IACtCA,EAAI,QAAUD,EACdE,EAAU,SAAW,MAGdL,GAAQ,SAAS,IAAMI,EAAI,QAAS,CAACC,EAAU,OAAO,CAAC,CACtE,CACAN,GAAQ,YAAcG,KCnBtB,IAAAI,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,UAAY,OACpB,IAAMC,GAAU,QAAQ,OAAO,EAM/B,SAASC,GAAUC,EAAO,CACtB,IAAMC,KAAUH,GAAQ,QAAQE,CAAK,EACrC,OAAAC,EAAI,QAAUD,EACPC,CACX,CACAJ,GAAQ,UAAYE,KCdpB,IAAAG,GAAAC,EAAAC,IAAA,cACA,IAAIC,GAAmBD,IAAQA,GAAK,kBAAqB,OAAO,OAAU,SAASE,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,GAAsBP,IAAQA,GAAK,qBAAwB,OAAO,OAAU,SAASE,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,GAAgBT,IAAQA,GAAK,cAAiB,SAAUU,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIC,EAAS,CAAC,EACd,GAAID,GAAO,KAAM,QAASN,KAAKM,EAASN,IAAM,WAAa,OAAO,UAAU,eAAe,KAAKM,EAAKN,CAAC,GAAGH,GAAgBU,EAAQD,EAAKN,CAAC,EACvI,OAAAG,GAAmBI,EAAQD,CAAG,EACvBC,CACX,EACA,OAAO,eAAeX,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,uBAAyB,OACjC,IAAMY,GAAKH,GAAa,QAAQ,IAAI,CAAC,EAC/BI,GAAOJ,GAAa,QAAQ,MAAM,CAAC,EACnCK,GAAQ,QAAQ,cAAc,EAC9BC,GAA0BC,GAAU,CACtC,IAAIC,EAAmB,GACnBC,EAAQ,sBACRC,EAAe,GACnB,GAAI,CACA,IAAMC,EAAc,KAAK,MAAMR,GAAG,aAAaC,GAAK,KAAKC,GAAM,YAAY,WAAY,KAAM,cAAc,EAAG,MAAM,CAAC,EACrHI,EAAQ,IAAIE,EAAY,KAAK,OAC7BD,EAAe,uBAAuBC,EAAY,OAASA,EAAY,MAAM,IAAIA,EAAY,IAAI,IAC7F,CAACA,EAAY,OAASA,EAAY,SAAW,YAC7CH,EAAmB,GAE3B,MACY,CAEZ,CAGA,IAAMI,EAAWP,GAAM,YAAY,eAAiBG,EACpD,MAAO,CACH,MAAOI,EAAW,YAAc,eAChC,SAASC,EAAO,CACZA,EAAM,KAAK,EACPD,EACAP,GAAM,UAAU,KAAKE,GAAO,OAASA,GAAO,SAAW,EAAE,KAGrDF,GAAM,MAAM,oHAAoH,mBAAmBI,CAAK,CAAC,kBAAkB,UAAUC,CAAY,CAAC,gBAAgB,mBAAmB;AAAA;AAAA,EAEvPH,GAAO,OAASA,GAAO,SAAW,EAAE;AAAA;AAAA,CAErC,CAAC,EAAE,CAEI,CACJ,CACJ,EACAhB,GAAQ,uBAAyBe,KChEjC,IAAAQ,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,WAAa,OACrB,IAAMC,GAAU,QAAQ,OAAO,EACzBC,GAAQ,QAAQ,cAAc,EAC9BC,GAAgB,KAChBC,GAAc,KACdC,GAA8B,KACpC,SAASC,GAAWC,EAAIC,EAAMC,EAAS,CACnC,IAAMC,KAAiBT,GAAQ,QAAQ,CAAC,EAClC,CAACU,EAAOC,CAAG,KAAQX,GAAQ,UAAU,CAAE,UAAW,EAAK,CAAC,EACxDY,KAAYT,GAAY,WAAWG,CAAE,EACrCO,KAAsBV,GAAY,WAAWK,GAAS,SAAS,EAC/DM,KAAiBX,GAAY,WAAWI,GAAQ,CAAC,CAAC,EAClDQ,KAAoBZ,GAAY,WAAWK,GAAS,OAAO,EAC3DQ,KAAmBb,GAAY,WAAWK,GAAS,MAAM,EACzDS,KAA0Bd,GAAY,WAAWK,GAAS,aAAa,EACvEU,KAAkBf,GAAY,WAAWO,EAAM,IAAI,EACnDS,KAAqBnB,GAAQ,QAAQ,EACrCoB,KAAepB,GAAQ,aAAa,IAAIO,IAAS,CACnD,IAAMc,EAAS,EAAEZ,EAAW,QAC5B,OAAII,EAAgB,UAChBA,EAAgB,QAAQ,SAAS,MAAM,EACvCA,EAAgB,QAAQ,QAAU,IAAI,iBAE1CI,EAAoB,UAAUV,CAAI,EAClCI,EAAKW,IAAe,CAAE,GAAGA,EAAW,UAAW,EAAK,EAAE,EAC/CC,GAAoBX,EAAM,OAAO,EAAE,GAAGL,CAAI,EAAE,KAAMiB,IACjDH,IAAWZ,EAAW,UAClBO,EAAa,SACbA,EAAa,QAAQQ,CAAI,EAE7Bb,EAAI,CAAE,KAAAa,EAAM,UAAW,EAAM,CAAC,GAE3BA,GACPC,IACIA,EAAM,MAAQ,cAGdJ,IAAWZ,EAAW,UAElBM,EAAc,QACdA,EAAc,QAAQU,CAAK,GAG3B,QAAQ,MAAMA,CAAK,EACfxB,GAAM,YAAY,aAAeA,GAAM,WAAW,eAC9CA,GAAM,WAAW,CACjB,MAAOA,GAAM,MAAM,MAAM,QACzB,MAAO,8BACP,QAASwB,EAAM,QACf,cAAe,CACX,MAAO,QACP,SAASC,EAAO,CACZA,EAAM,KAAK,EACXP,EAAe,UAAU,GAAIL,EAAW,SAAW,CAAC,CAAE,CAC1D,CACJ,EACA,mBAAqBV,GAA4B,wBAAwBqB,CAAK,CAClF,CAAC,GAGTd,EAAI,CAAE,MAAAc,EAAO,UAAW,EAAM,CAAC,GAE5BA,EACV,CACL,EAAG,CAACZ,EAAiBG,EAAcD,EAAeD,EAAYF,EAAOD,EAAKQ,EAAgBF,CAAmB,CAE7G,EACAE,EAAe,QAAUC,EACzB,IAAMO,KAAiB3B,GAAQ,aAAa,IACjCoB,EAAS,GAAIN,EAAW,SAAW,CAAC,CAAE,EAC9C,CAACM,EAAUN,CAAU,CAAC,EACnBc,KAAa5B,GAAQ,aAAa,MAAO6B,EAAarB,IAAY,CACpE,IAAIsB,EACJ,GAAI,CACA,GAAItB,GAAS,iBAAkB,CACvB,OAAOA,GAAS,iBAAoB,YAAcA,GAAS,kBAAoB,KAG/EsB,EAA6B,gBAAgBZ,EAAY,SAAS,KAAK,GAE3E,IAAMa,EAASvB,EAAQ,iBACvBG,EAAKW,IAAe,CAAE,GAAGA,EAAW,KAAMS,EAAOT,EAAU,IAAI,CAAE,EAAE,CACvE,CACA,OAAO,MAAMO,CACjB,OACOG,EAAK,CACR,GAAI,OAAOxB,GAAS,iBAAoB,WAAY,CAChD,IAAMuB,EAASvB,EAAQ,gBACvBG,EAAKW,IAAe,CAAE,GAAGA,EAAW,KAAMS,EAAOT,EAAU,IAAI,CAAE,EAAE,CACvE,MACSd,GAAS,kBAAoBA,GAAS,kBAAoB,IAC/DG,EAAKW,IAAe,CAAE,GAAGA,EAAW,KAAMQ,CAA2B,EAAE,EAE3E,MAAME,CACV,QACA,CACQxB,GAAS,wBAA0B,KAC/BP,GAAM,YAAY,aAAeA,GAAM,WAAW,YAAcA,GAAM,YAAY,cAAgB,WAGlG,MAAM0B,EAAW,EAGjBA,EAAW,EAGvB,CACJ,EAAG,CAACA,EAAYT,EAAaP,CAAG,CAAC,KAE7BX,GAAQ,WAAW,IAAM,CACrBQ,GAAS,UAAY,GACrBY,EAAS,GAAIb,GAAQ,CAAC,CAAE,EAIpBM,EAAgB,SAChBA,EAAgB,QAAQ,SAAS,MAAM,CAInD,EAAG,IAAKX,GAAc,aAAa,CAACK,EAAMC,GAAS,QAASY,CAAQ,CAAC,EAAGP,CAAe,CAAC,KAEpFb,GAAQ,WAAW,IACZ,IAAM,CACLa,EAAgB,SAEhBA,EAAgB,QAAQ,SAAS,MAAM,CAE/C,EACD,CAACA,CAAe,CAAC,EAEpB,IAAMoB,EAAYzB,GAAS,UAAY,GAAQE,EAAM,UAAY,GAGjE,MAAO,CAAE,GADqB,CAAE,GAAGA,EAAO,UAAAuB,CAAU,EACjB,WAAAN,EAAY,OAAAC,CAAO,CAC1D,CACA7B,GAAQ,WAAaM,GAErB,SAASkB,GAAoBjB,EAAI,CAa7B,OAZIA,IAAO,QAAQ,KAIfA,IAAO,QAAQ,MAIfA,IAAO,QAAQ,SAIfA,IAAO,QAAQ,OAERA,EAAG,KAAK,OAAO,EAEnBA,CACX,IC9JA,IAAA4B,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,eAAiB,OACzB,IAAMC,GAAU,QAAQ,OAAO,EACzBC,GAAQ,QAAQ,cAAc,EAC9BC,GAAc,KAEpB,SAASC,GAASC,EAAKC,EAAQ,CAC3B,IAAMC,EAAQ,KAAKF,CAAG,EACtB,OAAIE,aAAiB,KACV,0BAA0BA,EAAM,SAAS,CAAC,GAEjD,OAAO,SAASA,CAAK,EACd,4BAA4BA,EAAM,SAAS,QAAQ,CAAC,GAExDD,CACX,CACA,SAASE,GAAQC,EAAMF,EAAO,CAC1B,OAAI,OAAOA,GAAU,UAAYA,EAAM,WAAW,yBAAyB,EAChE,IAAI,KAAKA,EAAM,QAAQ,0BAA2B,EAAE,CAAC,EAE5D,OAAOA,GAAU,UAAYA,EAAM,WAAW,2BAA2B,EAClE,OAAO,KAAKA,EAAM,QAAQ,4BAA6B,EAAE,EAAG,QAAQ,EAExEA,CACX,CACA,IAAMG,GAAY,OAAO,yBAAyB,EAC5CC,GAAW,IAAI,IACrB,SAASC,GAAeP,EAAKQ,EAAcC,EAAQ,CAC/C,IAAMC,EAAWD,GAAQ,gBAAkBJ,GACrCM,EAAQL,GAAS,IAAII,CAAQ,GAAKJ,GAAS,IAAII,EAAU,IAAIb,GAAM,MAAM,CAAE,UAAWY,GAAQ,cAAe,CAAC,CAAC,EAAE,IAAIC,CAAQ,EACnI,GAAI,CAACC,EACD,MAAM,IAAI,MAAM,eAAe,EAEnC,IAAMC,KAAad,GAAY,WAAWE,CAAG,EACvCa,KAAsBf,GAAY,WAAWU,CAAY,EACzDM,KAAkBlB,GAAQ,sBAAsBe,EAAM,UAAW,IAAM,CACzE,GAAI,CACA,OAAOA,EAAM,IAAIC,EAAO,OAAO,CACnC,OACOG,EAAO,CACV,QAAQ,MAAM,4BAA6BA,CAAK,EAChD,MACJ,CACJ,CAAC,EACKC,KAAYpB,GAAQ,SAAS,IAAM,CACrC,GAAI,OAAOkB,EAAgB,IAAa,CACpC,GAAIA,IAAgB,YAChB,OAEJ,GAAI,CACA,OAAO,KAAK,MAAMA,EAAaX,EAAO,CAC1C,OACOc,EAAK,CAER,eAAQ,KAAK,+BAAgCA,CAAG,EACzCJ,EAAgB,OAC3B,CACJ,KAEI,QAAOA,EAAgB,OAE/B,EAAG,CAACC,EAAaD,CAAe,CAAC,EAC3BK,KAAepB,GAAY,WAAWkB,CAAK,EAC3CG,KAAuBvB,GAAQ,aAAcwB,GAAY,CAE3D,IAAMC,EAAW,OAAOD,GAAY,WAAaA,EAAQF,EAAS,OAAO,EAAIE,EAC7E,GAAI,OAAOC,EAAa,IACpBV,EAAM,IAAIC,EAAO,QAAS,WAAW,MAEpC,CACD,IAAMU,EAAmB,KAAK,UAAUD,EAAUtB,EAAQ,EAC1DY,EAAM,IAAIC,EAAO,QAASU,CAAgB,CAC9C,CACA,OAAOD,CACX,EAAG,CAACV,EAAOC,EAAQM,CAAQ,CAAC,EAC5B,MAAO,CAACF,EAAOG,CAAgB,CACnC,CACAxB,GAAQ,eAAiBY,KC9EzB,IAAAgB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAS,QAAQ,QAAQ,EAyB7BF,GAAUC,GAAO,QAAUE,GAE3B,SAASA,GAAWC,EAAQC,EAAQ,CAClC,OAAAA,EAAUC,GAAcF,EAAQC,CAAO,EAEhCE,GAAKH,EAAQC,CAAO,CAC7B,CASAL,GAAQ,KAAO,SAASI,EAAO,CAC7B,OAAOD,GAAWC,CAAM,CAC1B,EACAJ,GAAQ,KAAO,SAASI,EAAO,CAC7B,OAAOD,GAAWC,EAAQ,CAAC,cAAe,GAAM,UAAW,OAAQ,SAAU,KAAK,CAAC,CACrF,EACAJ,GAAQ,IAAM,SAASI,EAAO,CAC5B,OAAOD,GAAWC,EAAQ,CAAC,UAAW,MAAO,SAAU,KAAK,CAAC,CAC/D,EACAJ,GAAQ,QAAU,SAASI,EAAO,CAChC,OAAOD,GAAWC,EAAQ,CAAC,UAAW,MAAO,SAAU,MAAO,cAAe,EAAI,CAAC,CACpF,EAGA,IAAII,GAASN,GAAO,UAAYA,GAAO,UAAU,EAAE,MAAM,EAAI,CAAC,OAAQ,KAAK,EAC3EM,GAAO,KAAK,aAAa,EACzB,IAAIC,GAAY,CAAC,SAAU,MAAO,SAAU,QAAQ,EAEpD,SAASH,GAAcF,EAAQM,EAAc,CAC3CA,EAAgBA,GAAiB,CAAC,EAGlC,IAAIL,EAAU,CAAC,EAgBf,GAfAA,EAAQ,UAAYK,EAAc,WAAa,OAC/CL,EAAQ,SAAWK,EAAc,UAAY,MAC7CL,EAAQ,cAAgB,EAAAK,EAAc,cACtCL,EAAQ,UAAYA,EAAQ,UAAU,YAAY,EAClDA,EAAQ,SAAWA,EAAQ,SAAS,YAAY,EAChDA,EAAQ,cAAgBK,EAAc,gBAAkB,GACxDL,EAAQ,YAAcK,EAAc,cAAgB,GACpDL,EAAQ,qBAAuBK,EAAc,uBAAyB,GACtEL,EAAQ,0BAA4BK,EAAc,4BAA8B,GAChFL,EAAQ,gBAAkBK,EAAc,kBAAoB,GAC5DL,EAAQ,cAAgBK,EAAc,gBAAkB,GACxDL,EAAQ,iBAAmBK,EAAc,mBAAqB,GAC9DL,EAAQ,SAAWK,EAAc,UAAY,OAC7CL,EAAQ,YAAcK,EAAc,aAAe,OAEhD,OAAON,EAAW,IACnB,MAAM,IAAI,MAAM,2BAA2B,EAK7C,QAASO,EAAI,EAAGA,EAAIH,GAAO,OAAQ,EAAEG,EAC/BH,GAAOG,CAAC,EAAE,YAAY,IAAMN,EAAQ,UAAU,YAAY,IAC5DA,EAAQ,UAAYG,GAAOG,CAAC,GAIhC,GAAGH,GAAO,QAAQH,EAAQ,SAAS,IAAM,GACvC,MAAM,IAAI,MAAM,cAAgBA,EAAQ,UAAY,uCAC3BG,GAAO,KAAK,IAAI,CAAC,EAG5C,GAAGC,GAAU,QAAQJ,EAAQ,QAAQ,IAAM,IACxCA,EAAQ,YAAc,cACvB,MAAM,IAAI,MAAM,aAAeA,EAAQ,SAAW,uCACzBI,GAAU,KAAK,IAAI,CAAC,EAG/C,OAAOJ,CACT,CAGA,SAASO,GAAiBC,EAAG,CAC3B,GAAK,OAAOA,GAAO,WACjB,MAAO,GAET,IAAIC,EAAM,wDACV,OAAOA,EAAI,KAAK,SAAS,UAAU,SAAS,KAAKD,CAAC,CAAC,GAAK,IAC1D,CAEA,SAASN,GAAKH,EAAQC,EAAS,CAC7B,IAAIU,EAEAV,EAAQ,YAAc,cACxBU,EAAgBb,GAAO,WAAWG,EAAQ,SAAS,EAEnDU,EAAgB,IAAIC,GAGlB,OAAOD,EAAc,MAAU,MACjCA,EAAc,MAAQA,EAAc,OACpCA,EAAc,IAAQA,EAAc,QAGtC,IAAIE,EAASC,GAAWb,EAASU,CAAa,EAM9C,GALAE,EAAO,SAASb,CAAM,EACjBW,EAAc,QACjBA,EAAc,IAAI,EAAE,EAGlBA,EAAc,OAChB,OAAOA,EAAc,OAAOV,EAAQ,WAAa,SAAW,OAAYA,EAAQ,QAAQ,EAG1F,IAAIc,EAAMJ,EAAc,KAAK,EAC7B,OAAIV,EAAQ,WAAa,SAChBc,EAGFA,EAAI,SAASd,EAAQ,QAAQ,CACtC,CAUAL,GAAQ,cAAgB,SAASI,EAAQC,EAASe,EAAQ,CACxD,OAAI,OAAOA,EAAW,MACpBA,EAASf,EACTA,EAAU,CAAC,GAGbA,EAAUC,GAAcF,EAAQC,CAAO,EAEhCa,GAAWb,EAASe,CAAM,EAAE,SAAShB,CAAM,CACpD,EAEA,SAASc,GAAWb,EAASgB,EAASC,EAAQ,CAC5CA,EAAUA,GAAW,CAAC,EACtB,IAAIC,EAAQ,SAASC,EAAK,CACxB,OAAIH,EAAQ,OACHA,EAAQ,OAAOG,EAAK,MAAM,EAE1BH,EAAQ,MAAMG,EAAK,MAAM,CAEpC,EAEA,MAAO,CACL,SAAU,SAASC,EAAM,CACnBpB,EAAQ,WACVoB,EAAQpB,EAAQ,SAASoB,CAAK,GAGhC,IAAIC,EAAO,OAAOD,EAClB,OAAIA,IAAU,OACZC,EAAO,QAKF,KAAK,IAAMA,CAAI,EAAED,CAAK,CAC/B,EACA,QAAS,SAASrB,EAAQ,CACxB,IAAIuB,EAAW,mBACXC,EAAY,OAAO,UAAU,SAAS,KAAKxB,CAAM,EACjDyB,EAAUF,EAAQ,KAAKC,CAAS,EAC/BC,EAGHA,EAAUA,EAAQ,CAAC,EAFnBA,EAAU,YAAcD,EAAY,IAKtCC,EAAUA,EAAQ,YAAY,EAE9B,IAAIC,EAAe,KAEnB,IAAKA,EAAeR,EAAQ,QAAQlB,CAAM,IAAM,EAC9C,OAAO,KAAK,SAAS,aAAe0B,EAAe,GAAG,EAKxD,GAHER,EAAQ,KAAKlB,CAAM,EAGjB,OAAO,OAAW,KAAe,OAAO,UAAY,OAAO,SAASA,CAAM,EAC5E,OAAAmB,EAAM,SAAS,EACRA,EAAMnB,CAAM,EAGrB,GAAGyB,IAAY,UAAYA,IAAY,YAAcA,IAAY,gBAC/D,GAAG,KAAK,IAAMA,CAAO,EACnB,KAAK,IAAMA,CAAO,EAAEzB,CAAM,MACrB,IAAIC,EAAQ,cACjB,OAAOkB,EAAM,IAAMM,EAAU,GAAG,EAEhC,MAAM,IAAI,MAAM,wBAA0BA,EAAU,GAAG,MAEtD,CACH,IAAIE,EAAO,OAAO,KAAK3B,CAAM,EACzBC,EAAQ,mBACV0B,EAAOA,EAAK,KAAK,GASf1B,EAAQ,cAAgB,IAAS,CAACO,GAAiBR,CAAM,GAC3D2B,EAAK,OAAO,EAAG,EAAG,YAAa,YAAa,aAAa,EAGvD1B,EAAQ,cACV0B,EAAOA,EAAK,OAAO,SAASC,EAAK,CAAE,MAAO,CAAC3B,EAAQ,YAAY2B,CAAG,CAAG,CAAC,GAGxET,EAAM,UAAYQ,EAAK,OAAS,GAAG,EACnC,IAAIE,EAAO,KACX,OAAOF,EAAK,QAAQ,SAASC,EAAI,CAC/BC,EAAK,SAASD,CAAG,EACjBT,EAAM,GAAG,EACLlB,EAAQ,eACV4B,EAAK,SAAS7B,EAAO4B,CAAG,CAAC,EAE3BT,EAAM,GAAG,CACX,CAAC,CACH,CACF,EACA,OAAQ,SAASW,EAAKC,EAAU,CAC9BA,EAAY,OAAOA,EAAc,IAAcA,EAC7C9B,EAAQ,kBAAoB,GAE9B,IAAI4B,EAAO,KAEX,GADAV,EAAM,SAAWW,EAAI,OAAS,GAAG,EAC7B,CAACC,GAAaD,EAAI,QAAU,EAC9B,OAAOA,EAAI,QAAQ,SAASE,EAAO,CACjC,OAAOH,EAAK,SAASG,CAAK,CAC5B,CAAC,EAYH,IAAIC,EAAmB,CAAC,EACpBC,EAAUJ,EAAI,IAAI,SAASE,EAAO,CACpC,IAAIG,EAAO,IAAIvB,GACXwB,EAAelB,EAAQ,MAAM,EAC7BL,EAASC,GAAWb,EAASkC,EAAMC,CAAY,EACnD,OAAAvB,EAAO,SAASmB,CAAK,EAErBC,EAAmBA,EAAiB,OAAOG,EAAa,MAAMlB,EAAQ,MAAM,CAAC,EACtEiB,EAAK,KAAK,EAAE,SAAS,CAC9B,CAAC,EACD,OAAAjB,EAAUA,EAAQ,OAAOe,CAAgB,EACzCC,EAAQ,KAAK,EACN,KAAK,OAAOA,EAAS,EAAK,CACnC,EACA,MAAO,SAASG,EAAK,CACnB,OAAOlB,EAAM,QAAUkB,EAAK,OAAO,CAAC,CACtC,EACA,QAAS,SAASC,EAAI,CACpB,OAAOnB,EAAM,UAAYmB,EAAI,SAAS,CAAC,CACzC,EACA,OAAQ,SAASC,EAAI,CACnB,OAAOpB,EAAM,SAAWoB,EAAI,SAAS,CAAC,CACxC,EACA,SAAU,SAASC,EAAK,CACtB,OAAOrB,EAAM,QAAUqB,EAAK,SAAS,CAAC,CACxC,EACA,QAAS,SAASC,EAAO,CACvBtB,EAAM,UAAYsB,EAAO,OAAS,GAAG,EACrCtB,EAAMsB,EAAO,SAAS,CAAC,CACzB,EACA,UAAW,SAASC,EAAG,CACrBvB,EAAM,KAAK,EACPX,GAAiBkC,CAAE,EACrB,KAAK,SAAS,UAAU,EAExB,KAAK,SAASA,EAAG,SAAS,CAAC,EAGzBzC,EAAQ,uBAAyB,IAInC,KAAK,SAAS,iBAAmB,OAAOyC,EAAG,IAAI,CAAC,EAG9CzC,EAAQ,2BACV,KAAK,QAAQyC,CAAE,CAEnB,EACA,QAAS,SAASC,EAAO,CACvB,OAAOxB,EAAM,UAAYwB,EAAO,SAAS,CAAC,CAC5C,EACA,KAAM,SAASC,EAAI,CACjB,OAAOzB,EAAM,OAASyB,EAAI,SAAS,CAAC,CACtC,EACA,MAAO,UAAW,CAChB,OAAOzB,EAAM,MAAM,CACrB,EACA,WAAY,UAAW,CACrB,OAAOA,EAAM,WAAW,CAC1B,EACA,QAAS,SAAS0B,EAAM,CACtB,OAAO1B,EAAM,SAAW0B,EAAM,SAAS,CAAC,CAC1C,EACA,YAAa,SAASf,EAAI,CACxB,OAAAX,EAAM,aAAa,EACZ,KAAK,SAAS,MAAM,UAAU,MAAM,KAAKW,CAAG,CAAC,CACtD,EACA,mBAAoB,SAASA,EAAI,CAC/B,OAAAX,EAAM,oBAAoB,EACnB,KAAK,SAAS,MAAM,UAAU,MAAM,KAAKW,CAAG,CAAC,CACtD,EACA,WAAY,SAASA,EAAI,CACvB,OAAAX,EAAM,YAAY,EACX,KAAK,SAAS,MAAM,UAAU,MAAM,KAAKW,CAAG,CAAC,CACtD,EACA,aAAc,SAASA,EAAI,CACzB,OAAAX,EAAM,cAAc,EACb,KAAK,SAAS,MAAM,UAAU,MAAM,KAAKW,CAAG,CAAC,CACtD,EACA,YAAa,SAASA,EAAI,CACxB,OAAAX,EAAM,aAAa,EACZ,KAAK,SAAS,MAAM,UAAU,MAAM,KAAKW,CAAG,CAAC,CACtD,EACA,aAAc,SAASA,EAAI,CACzB,OAAAX,EAAM,cAAc,EACb,KAAK,SAAS,MAAM,UAAU,MAAM,KAAKW,CAAG,CAAC,CACtD,EACA,YAAa,SAASA,EAAI,CACxB,OAAAX,EAAM,aAAa,EACZ,KAAK,SAAS,MAAM,UAAU,MAAM,KAAKW,CAAG,CAAC,CACtD,EACA,cAAe,SAASA,EAAI,CAC1B,OAAAX,EAAM,eAAe,EACd,KAAK,SAAS,MAAM,UAAU,MAAM,KAAKW,CAAG,CAAC,CACtD,EACA,cAAe,SAASA,EAAI,CAC1B,OAAAX,EAAM,eAAe,EACd,KAAK,SAAS,MAAM,UAAU,MAAM,KAAKW,CAAG,CAAC,CACtD,EACA,aAAc,SAASA,EAAI,CACzB,OAAAX,EAAM,cAAc,EACb,KAAK,SAAS,IAAI,WAAWW,CAAG,CAAC,CAC1C,EACA,KAAM,SAASgB,EAAK,CAClB,OAAO3B,EAAM,OAAS2B,EAAI,SAAS,EAAG,MAAM,CAC9C,EACA,KAAM,SAASC,EAAK,CAClB5B,EAAM,MAAM,EACZ,IAAIW,EAAM,MAAM,KAAKiB,CAAG,EACxB,OAAO,KAAK,OAAOjB,EAAK7B,EAAQ,gBAAkB,EAAK,CACzD,EACA,KAAM,SAAS+C,EAAK,CAClB7B,EAAM,MAAM,EACZ,IAAIW,EAAM,MAAM,KAAKkB,CAAG,EACxB,OAAO,KAAK,OAAOlB,EAAK7B,EAAQ,gBAAkB,EAAK,CACzD,EACA,MAAO,SAASgD,EAAM,CACpB,OAAA9B,EAAM,OAAO,EACN,KAAK,SAAS,CAAC8B,EAAK,KAAMA,EAAK,KAAMA,EAAK,KAAMA,EAAK,WAAW,CAAC,CAC1E,EACA,MAAO,UAAW,CAChB,GAAIhD,EAAQ,cACV,OAAOkB,EAAM,QAAQ,EAGvB,MAAM,MAAM;AAAA;AAAA;AAAA,CAE2C,CACzD,EACA,WAAY,UAAW,CAAE,OAAOA,EAAM,WAAW,CAAG,EACpD,QAAS,SAASwB,EAAO,CACvB,OAAOxB,EAAM,UAAYwB,EAAO,SAAS,CAAC,CAC5C,EAEA,SAAU,UAAW,CAAE,OAAOxB,EAAM,SAAS,CAAG,EAChD,OAAQ,UAAW,CAAE,OAAOA,EAAM,OAAO,CAAG,EAC5C,MAAO,UAAW,CAAE,OAAOA,EAAM,MAAM,CAAG,EAC1C,KAAM,UAAW,CAAE,OAAOA,EAAM,KAAK,CAAG,EACxC,KAAM,UAAW,CAAE,OAAOA,EAAM,KAAK,CAAG,EACxC,KAAM,UAAW,CAAE,OAAOA,EAAM,KAAK,CAAG,EACxC,aAAc,UAAW,CAAE,OAAOA,EAAM,aAAa,CAAG,EACxD,eAAgB,UAAW,CAAE,OAAOA,EAAM,eAAe,CAAG,EAC5D,YAAa,UAAW,CAAE,OAAOA,EAAM,YAAY,CAAG,EACtD,MAAO,UAAW,CAAE,OAAOA,EAAM,MAAM,CAAG,EAC1C,SAAU,UAAW,CAAE,OAAOA,EAAM,SAAS,CAAG,EAChD,YAAa,UAAW,CAAE,OAAOA,EAAM,YAAY,CAAG,EACtD,YAAa,UAAW,CAAE,OAAOA,EAAM,YAAY,CAAG,EACtD,UAAW,UAAW,CAAE,OAAOA,EAAM,UAAU,CAAG,EAClD,QAAS,UAAW,CAAE,OAAOA,EAAM,QAAQ,CAAG,EAC9C,SAAU,UAAW,CAAE,OAAOA,EAAM,SAAS,CAAG,EAChD,SAAU,UAAW,CAAE,OAAOA,EAAM,SAAS,CAAG,CAClD,CACF,CAMA,SAASP,IAAc,CACrB,MAAO,CACL,IAAK,GAEL,MAAO,SAASsC,EAAG,CACjB,KAAK,KAAOA,CACd,EAEA,IAAK,SAASA,EAAG,CACf,KAAK,KAAOA,CACd,EAEA,KAAM,UAAW,CACf,OAAO,KAAK,GACd,CACF,CACF,ICpcA,IAAAC,GAAAC,EAAAC,IAAA,cACA,IAAIC,GAAmBD,IAAQA,GAAK,iBAAoB,SAAUE,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeF,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,GAAQ,iBAAmB,OAC3B,IAAMG,GAAU,QAAQ,OAAO,EACzBC,GAAgBH,GAAgB,IAAsB,EACtDI,GAAmB,KACnBC,GAAe,KACfC,GAAc,KAEdC,GAAa,OAAO,EAC1B,SAASC,GAAiBC,EAAIC,EAAMC,EAAS,CACzC,GAAM,CAAE,YAAAC,EAAa,iBAAAC,EAAkB,GAAGC,CAAkB,EAAIH,GAAW,CAAC,EACtEI,KAAqBb,GAAQ,QAAQ,EACrC,CAACc,EAAYC,CAAW,KAAQb,GAAiB,mBAAoBD,GAAc,SAASO,GAAQ,CAAC,CAAC,EAAGH,GAAY,CACvH,kBAAoBJ,GAAc,SAASM,CAAE,CACjD,CAAC,EAEKS,KAAmBhB,GAAQ,QAAQc,IAAeT,GAAaS,EAAaJ,CAAW,EACvF,CAAE,OAAQO,EAAS,WAAAC,EAAY,GAAGC,CAEvC,KAAQhB,GAAa,YAAYI,EAAIC,GAAQ,CAAC,EAAG,CAC9C,GAAGI,EACH,OAAOQ,EAAM,CACLR,EAAkB,QAClBA,EAAkB,OAAOQ,CAAI,EAGjCP,EAAe,QAAU,UACzBG,EAAa,QAAUI,EACvBL,EAAYK,CAAI,CACpB,CACJ,CAAC,EAEKA,EAAON,IAAeT,GAAaS,EAAaJ,EAChDW,EAENR,EAAe,UAAY,UACrBG,EAAa,QAEXL,EACMG,IAAeT,GACXS,EAEEE,EAAa,QACnBI,EACRE,KAAiBlB,GAAY,WAAWiB,CAAY,EAEpDE,KAAavB,GAAQ,aAAa,MAAOwB,EAAaf,IAAY,CACpE,IAAIgB,EACJ,GAAI,CACA,GAAIhB,GAAS,iBAAkB,CACvB,OAAOA,GAAS,iBAAoB,YAAcA,GAAS,kBAAoB,KAG/EgB,EAA6B,gBAAgBH,EAAW,OAAO,GAEnE,IAAMF,EAAOX,EAAQ,iBAAiBa,EAAW,OAAO,EACxDT,EAAe,QAAU,QACzBG,EAAa,QAAUI,EACvBL,EAAYK,CAAI,CACpB,CACA,OAAO,MAAMH,EAAQO,EAAa,CAAE,sBAAuBf,GAAS,qBAAsB,CAAC,CAC/F,OACOiB,EAAK,CACR,GAAI,OAAOjB,GAAS,iBAAoB,WAAY,CAChD,IAAMW,EAAOX,EAAQ,gBAAgBa,EAAW,OAAO,EACvDT,EAAe,QAAU,QACzBG,EAAa,QAAUI,EACvBL,EAAYK,CAAI,CACpB,MACSX,GAAS,kBAAoBA,GAAS,kBAAoB,KAC/DI,EAAe,QAAU,QAEzBG,EAAa,QAAUS,EAEvBV,EAAYU,CAA0B,GAE1C,MAAMC,CACV,CACJ,EAAG,CAACX,EAAaE,EAASK,EAAYN,EAAcH,CAAc,CAAC,EACnE,SAAIb,GAAQ,WAAW,IAAM,CACrBc,IAAeT,KACfQ,EAAe,QAAU,QACzBG,EAAa,QAAUF,EAE/B,EAAG,CAACA,CAAU,CAAC,EACR,CACH,KAAMO,EACN,UAAWF,EAAM,UACjB,MAAOA,EAAM,MACb,OAAAI,EACA,WAAAL,CACJ,CACJ,CACArB,GAAQ,iBAAmBS,KCjG3B,IAAAqB,GAAAC,EAAAC,IAAA,cAwBA,IAAIC,GAAsB,0CACtBC,GAAmB,yCACnBC,GAAc,yFAMlBH,GAAQ,OAASI,GACjBJ,GAAQ,MAAQK,GAChBL,GAAQ,KAAOM,GAUf,SAASF,GAAQG,EAAK,CACpB,GAAI,CAACA,GAAO,OAAOA,GAAQ,SACzB,MAAM,IAAI,UAAU,0BAA0B,EAGhD,IAAIC,EAAUD,EAAI,QACdE,EAASF,EAAI,OACbG,EAAOH,EAAI,KAEf,GAAI,CAACG,GAAQ,CAACR,GAAiB,KAAKQ,CAAI,EACtC,MAAM,IAAI,UAAU,cAAc,EAGpC,GAAI,CAACF,GAAW,CAACP,GAAoB,KAAKO,CAAO,EAC/C,MAAM,IAAI,UAAU,iBAAiB,EAIvC,IAAIG,EAASD,EAAO,IAAMF,EAG1B,GAAIC,EAAQ,CACV,GAAI,CAACP,GAAiB,KAAKO,CAAM,EAC/B,MAAM,IAAI,UAAU,gBAAgB,EAGtCE,GAAU,IAAMF,CAClB,CAEA,OAAOE,CACT,CAUA,SAASL,GAAMK,EAAQ,CACrB,GAAI,CAACA,EACH,MAAM,IAAI,UAAU,6BAA6B,EAGnD,GAAI,OAAOA,GAAW,SACpB,MAAM,IAAI,UAAU,4CAA4C,EAGlE,OAAOR,GAAY,KAAKQ,EAAO,YAAY,CAAC,CAC9C,CAUA,SAASN,GAAOM,EAAQ,CACtB,GAAI,CAACA,EACH,MAAM,IAAI,UAAU,6BAA6B,EAGnD,GAAI,OAAOA,GAAW,SACpB,MAAM,IAAI,UAAU,4CAA4C,EAGlE,IAAIC,EAAQT,GAAY,KAAKQ,EAAO,YAAY,CAAC,EAEjD,GAAI,CAACC,EACH,MAAM,IAAI,UAAU,oBAAoB,EAG1C,IAAIF,EAAOE,EAAM,CAAC,EACdJ,EAAUI,EAAM,CAAC,EACjBH,EAGAI,EAAQL,EAAQ,YAAY,GAAG,EACnC,OAAIK,IAAU,KACZJ,EAASD,EAAQ,OAAOK,EAAQ,CAAC,EACjCL,EAAUA,EAAQ,OAAO,EAAGK,CAAK,GAG5B,IAAIC,GAAUJ,EAAMF,EAASC,CAAM,CAC5C,CAOA,SAASK,GAAWJ,EAAMF,EAASC,EAAQ,CACzC,KAAK,KAAOC,EACZ,KAAK,QAAUF,EACf,KAAK,OAASC,CAChB,IC9IA,IAAAM,GAAAC,EAAAC,IAAA,cAsBA,IAAIC,GAAe,mKACfC,GAAc,wCACdC,GAAe,gCAQfC,GAAc,6BAKdC,GAAe,WASfC,GAAc,6DAOlBN,GAAQ,OAASO,GACjBP,GAAQ,MAAQQ,GAUhB,SAASD,GAAQE,EAAK,CACpB,GAAI,CAACA,GAAO,OAAOA,GAAQ,SACzB,MAAM,IAAI,UAAU,0BAA0B,EAGhD,IAAIC,EAAaD,EAAI,WACjBE,EAAOF,EAAI,KAEf,GAAI,CAACE,GAAQ,CAACL,GAAY,KAAKK,CAAI,EACjC,MAAM,IAAI,UAAU,cAAc,EAGpC,IAAIC,EAASD,EAGb,GAAID,GAAc,OAAOA,GAAe,SAItC,QAHIG,EACAC,EAAS,OAAO,KAAKJ,CAAU,EAAE,KAAK,EAEjCK,EAAI,EAAGA,EAAID,EAAO,OAAQC,IAAK,CAGtC,GAFAF,EAAQC,EAAOC,CAAC,EAEZ,CAACZ,GAAa,KAAKU,CAAK,EAC1B,MAAM,IAAI,UAAU,wBAAwB,EAG9CD,GAAU,KAAOC,EAAQ,IAAMG,GAAQN,EAAWG,CAAK,CAAC,CAC1D,CAGF,OAAOD,CACT,CAUA,SAASJ,GAAOI,EAAQ,CACtB,GAAI,CAACA,EACH,MAAM,IAAI,UAAU,6BAA6B,EAInD,IAAIK,EAAS,OAAOL,GAAW,SAC3BM,GAAeN,CAAM,EACrBA,EAEJ,GAAI,OAAOK,GAAW,SACpB,MAAM,IAAI,UAAU,4CAA4C,EAGlE,IAAIE,EAAQF,EAAO,QAAQ,GAAG,EAC1BN,EAAOQ,IAAU,GACjBF,EAAO,MAAM,EAAGE,CAAK,EAAE,KAAK,EAC5BF,EAAO,KAAK,EAEhB,GAAI,CAACX,GAAY,KAAKK,CAAI,EACxB,MAAM,IAAI,UAAU,oBAAoB,EAG1C,IAAIF,EAAM,IAAIW,GAAYT,EAAK,YAAY,CAAC,EAG5C,GAAIQ,IAAU,GAAI,CAChB,IAAIE,EACAC,EACAC,EAIJ,IAFAtB,GAAa,UAAYkB,EAEjBG,EAAQrB,GAAa,KAAKgB,CAAM,GAAI,CAC1C,GAAIK,EAAM,QAAUH,EAClB,MAAM,IAAI,UAAU,0BAA0B,EAGhDA,GAASG,EAAM,CAAC,EAAE,OAClBD,EAAMC,EAAM,CAAC,EAAE,YAAY,EAC3BC,EAAQD,EAAM,CAAC,EAEXC,EAAM,WAAW,CAAC,IAAM,KAE1BA,EAAQA,EAAM,MAAM,EAAG,EAAE,EAGrBA,EAAM,QAAQ,IAAI,IAAM,KAC1BA,EAAQA,EAAM,QAAQnB,GAAa,IAAI,IAI3CK,EAAI,WAAWY,CAAG,EAAIE,CACxB,CAEA,GAAIJ,IAAUF,EAAO,OACnB,MAAM,IAAI,UAAU,0BAA0B,CAElD,CAEA,OAAOR,CACT,CAUA,SAASS,GAAgBT,EAAK,CAC5B,IAAIQ,EAUJ,GARI,OAAOR,EAAI,WAAc,WAE3BQ,EAASR,EAAI,UAAU,cAAc,EAC5B,OAAOA,EAAI,SAAY,WAEhCQ,EAASR,EAAI,SAAWA,EAAI,QAAQ,cAAc,GAGhD,OAAOQ,GAAW,SACpB,MAAM,IAAI,UAAU,4CAA4C,EAGlE,OAAOA,CACT,CAUA,SAASD,GAASQ,EAAK,CACrB,IAAIC,EAAM,OAAOD,CAAG,EAGpB,GAAIrB,GAAa,KAAKsB,CAAG,EACvB,OAAOA,EAGT,GAAIA,EAAI,OAAS,GAAK,CAACvB,GAAY,KAAKuB,CAAG,EACzC,MAAM,IAAI,UAAU,yBAAyB,EAG/C,MAAO,IAAMA,EAAI,QAAQpB,GAAc,MAAM,EAAI,GACnD,CAMA,SAASe,GAAaT,EAAM,CAC1B,KAAK,WAAa,OAAO,OAAO,IAAI,EACpC,KAAK,KAAOA,CACd,IChOA,IAAAe,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAc,CAAC,EACnBD,GAAO,QAAUC,GAEjB,SAASC,GAAKC,EAAG,CACb,OAAOA,EAAI,EAAI,GAAK,CACxB,CAEA,SAASC,GAAUD,EAAG,CAElB,OAAKA,EAAI,IAAO,KAAQA,EAAI,KAAO,EACxB,KAAK,MAAMA,CAAC,EAEZ,KAAK,MAAMA,CAAC,CAE3B,CAEA,SAASE,GAAuBC,EAAWC,EAAU,CAC5CA,EAAS,UACV,EAAED,EAEN,IAAME,EAAaD,EAAS,SAAW,EAAI,CAAC,KAAK,IAAI,EAAGD,CAAS,EAC3DG,EAAa,KAAK,IAAI,EAAGH,CAAS,EAAI,EAEtCI,EAAYH,EAAS,gBAAkB,KAAK,IAAI,EAAGA,EAAS,eAAe,EAAI,KAAK,IAAI,EAAGD,CAAS,EACpGK,EAAcJ,EAAS,gBAAkB,KAAK,IAAI,EAAGA,EAAS,gBAAkB,CAAC,EAAI,KAAK,IAAI,EAAGD,EAAY,CAAC,EAEpH,OAAO,SAASM,EAAGC,EAAM,CAChBA,IAAMA,EAAO,CAAC,GAEnB,IAAIV,EAAI,CAACS,EAET,GAAIC,EAAK,aAAc,CACnB,GAAI,CAAC,OAAO,SAASV,CAAC,EAClB,MAAM,IAAI,UAAU,iCAAiC,EAIzD,GADAA,EAAID,GAAKC,CAAC,EAAI,KAAK,MAAM,KAAK,IAAIA,CAAC,CAAC,EAChCA,EAAIK,GAAcL,EAAIM,EACtB,MAAM,IAAI,UAAU,+BAA+B,EAGvD,OAAON,CACX,CAEA,GAAI,CAAC,MAAMA,CAAC,GAAKU,EAAK,MAClB,OAAAV,EAAIC,GAAUD,CAAC,EAEXA,EAAIK,IAAYL,EAAIK,GACpBL,EAAIM,IAAYN,EAAIM,GACjBN,EAGX,GAAI,CAAC,OAAO,SAASA,CAAC,GAAKA,IAAM,EAC7B,MAAO,GAMX,GAHAA,EAAID,GAAKC,CAAC,EAAI,KAAK,MAAM,KAAK,IAAIA,CAAC,CAAC,EACpCA,EAAIA,EAAIO,EAEJ,CAACH,EAAS,UAAYJ,GAAKQ,EAC3B,OAAOR,EAAIO,EACR,GAAIH,EAAS,UAChB,GAAIJ,EAAI,EACNA,GAAKO,UACIP,IAAM,GACf,MAAO,GAIb,OAAOA,CACX,CACJ,CAEAF,GAAY,KAAU,UAAY,CAElC,EAEAA,GAAY,QAAa,SAAUa,EAAK,CACpC,MAAO,CAAC,CAACA,CACb,EAEAb,GAAY,KAAUI,GAAuB,EAAG,CAAE,SAAU,EAAM,CAAC,EACnEJ,GAAY,MAAWI,GAAuB,EAAG,CAAE,SAAU,EAAK,CAAC,EAEnEJ,GAAY,MAAWI,GAAuB,GAAI,CAAE,SAAU,EAAM,CAAC,EACrEJ,GAAY,gBAAgB,EAAII,GAAuB,GAAI,CAAE,SAAU,EAAK,CAAC,EAE7EJ,GAAY,KAAUI,GAAuB,GAAI,CAAE,SAAU,EAAM,CAAC,EACpEJ,GAAY,eAAe,EAAII,GAAuB,GAAI,CAAE,SAAU,EAAK,CAAC,EAE5EJ,GAAY,WAAW,EAAII,GAAuB,GAAI,CAAE,SAAU,GAAO,gBAAiB,EAAG,CAAC,EAC9FJ,GAAY,oBAAoB,EAAII,GAAuB,GAAI,CAAE,SAAU,GAAM,gBAAiB,EAAG,CAAC,EAEtGJ,GAAY,OAAY,SAAUW,EAAG,CACjC,IAAMT,EAAI,CAACS,EAEX,GAAI,CAAC,OAAO,SAAST,CAAC,EAClB,MAAM,IAAI,UAAU,+CAA+C,EAGvE,OAAOA,CACX,EAEAF,GAAY,qBAAqB,EAAI,SAAUW,EAAG,CAC9C,IAAMT,EAAI,CAACS,EAEX,GAAI,MAAMT,CAAC,EACP,MAAM,IAAI,UAAU,iBAAiB,EAGzC,OAAOA,CACX,EAGAF,GAAY,MAAWA,GAAY,OACnCA,GAAY,oBAAoB,EAAIA,GAAY,qBAAqB,EAErEA,GAAY,UAAe,SAAUW,EAAGC,EAAM,CAG1C,OAFKA,IAAMA,EAAO,CAAC,GAEfA,EAAK,wBAA0BD,IAAM,KAC9B,GAGJ,OAAOA,CAAC,CACnB,EAEAX,GAAY,WAAgB,SAAUW,EAAGC,EAAM,CAC3C,IAAMV,EAAI,OAAOS,CAAC,EACdG,EACJ,QAASC,EAAI,GAAID,EAAIZ,EAAE,YAAYa,CAAC,KAAO,OAAW,EAAEA,EACpD,GAAID,EAAI,IACJ,MAAM,IAAI,UAAU,oCAAoC,EAIhE,OAAOZ,CACX,EAEAF,GAAY,UAAe,SAAUW,EAAG,CACpC,IAAMK,EAAI,OAAOL,CAAC,EACZM,EAAID,EAAE,OACNE,EAAI,CAAC,EACX,QAASH,EAAI,EAAGA,EAAIE,EAAG,EAAEF,EAAG,CACxB,IAAMD,EAAIE,EAAE,WAAWD,CAAC,EACxB,GAAID,EAAI,OAAUA,EAAI,MAClBI,EAAE,KAAK,OAAO,cAAcJ,CAAC,CAAC,UACvB,OAAUA,GAAKA,GAAK,MAC3BI,EAAE,KAAK,OAAO,cAAc,KAAM,CAAC,UAE/BH,IAAME,EAAI,EACVC,EAAE,KAAK,OAAO,cAAc,KAAM,CAAC,MAChC,CACH,IAAMC,EAAIH,EAAE,WAAWD,EAAI,CAAC,EAC5B,GAAI,OAAUI,GAAKA,GAAK,MAAQ,CAC5B,IAAMC,EAAIN,EAAI,KACRO,EAAIF,EAAI,KACdD,EAAE,KAAK,OAAO,cAAe,MAAY,KAAUE,EAAIC,CAAC,CAAC,EACzD,EAAEN,CACN,MACIG,EAAE,KAAK,OAAO,cAAc,KAAM,CAAC,CAE3C,CAER,CAEA,OAAOA,EAAE,KAAK,EAAE,CACpB,EAEAlB,GAAY,KAAU,SAAUW,EAAGC,EAAM,CACrC,GAAI,EAAED,aAAa,MACf,MAAM,IAAI,UAAU,+BAA+B,EAEvD,GAAI,OAAMA,CAAC,EAIX,OAAOA,CACX,EAEAX,GAAY,OAAY,SAAUW,EAAGC,EAAM,CACvC,OAAMD,aAAa,SACfA,EAAI,IAAI,OAAOA,CAAC,GAGbA,CACX,IC5LA,IAAAW,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEAA,GAAO,QAAQ,MAAQ,SAAeC,EAAQC,EAAQ,CACpD,IAAMC,EAAO,OAAO,oBAAoBD,CAAM,EAC9C,QAASE,EAAI,EAAGA,EAAID,EAAK,OAAQ,EAAEC,EACjC,OAAO,eAAeH,EAAQE,EAAKC,CAAC,EAAG,OAAO,yBAAyBF,EAAQC,EAAKC,CAAC,CAAC,CAAC,CAE3F,EAEAJ,GAAO,QAAQ,cAAgB,OAAO,SAAS,EAC/CA,GAAO,QAAQ,WAAa,OAAO,MAAM,EAEzCA,GAAO,QAAQ,eAAiB,SAAUK,EAAM,CAC9C,OAAOA,EAAKL,GAAO,QAAQ,aAAa,CAC1C,EAEAA,GAAO,QAAQ,eAAiB,SAAUM,EAAS,CACjD,OAAOA,EAAQN,GAAO,QAAQ,UAAU,CAC1C,IClBA,IAAAO,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAA,SAAC,CAAC,CAAC,EAAE,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,uBAAuB,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAK,GAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,GAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,KAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAO,IAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAO,KAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OA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,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMU,GAAS,CACb,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMM,GAAU,CACd,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEME,GAAiB,CACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,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,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMC,GAAc,CAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAA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L,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,qBACL,IAAK,WACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,SACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,WACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,kBACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,eACH,MAAO,aACT,IAAK,cACL,IAAK,mBACL,IAAK,SACL,IAAK,aACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,eACL,IAAK,UACH,MAAO,eACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,KACL,IAAK,SACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,KACH,MAAO,cACT,IAAK,cACH,MAAO,cACT,IAAK,UACL,IAAK,MACL,IAAK,OACL,IAAK,SACL,IAAK,SACH,MAAO,SACT,IAAK,UACL,IAAK,SACH,MAAO,SACT,IAAK,cACL,IAAK,MACL,IAAK,YACL,IAAK,cACH,MAAO,YACT,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,UACL,IAAK,cACH,MAAO,cACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,iBACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,cACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACL,IAAK,WACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,iBACL,IAAK,kBACH,MAAO,iBACT,IAAK,UACL,IAAK,WACL,IAAK,kBACL,IAAK,SACL,IAAK,UACL,IAAK,aACL,IAAK,MACL,IAAK,YACL,IAAK,QACH,MAAO,MACT,IAAK,UACH,MAAO,UACT,IAAK,OACL,IAAK,aACL,IAAK,UACL,IAAK,SACL,IAAK,WACH,MAAO,OACT,IAAK,sBACL,IAAK,SACL,IAAK,WACH,MAAO,SACT,IAAK,cACL,IAAK,cACH,MAAO,cACT,IAAK,aACL,IAAK,QACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,OACL,IAAK,cACL,IAAK,SACH,MAAO,YACT,IAAK,UACL,IAAK,gBACL,IAAK,SACL,IAAK,aACL,IAAK,SACL,IAAK,iBACL,IAAK,iBACL,IAAK,UACL,IAAK,WACL,IAAK,cACH,MAAO,SACT,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,cACH,MAAO,cACT,IAAK,cACL,IAAK,WACH,MAAO,WACT,IAAK,YACL,IAAK,kBACL,IAAK,QACL,IAAK,UACL,IAAK,cACL,IAAK,SACL,IAAK,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P,GAAM,WACN,GAAM,WACN,IAAO,SACP,GAAM,cACN,GAAM,UACN,GAAM,SACN,IAAO,cACP,GAAM,SACN,IAAO,QACP,GAAM,QACN,IAAO,OACP,GAAM,UACN,GAAM,cACN,IAAO,SACP,IAAO,WACP,GAAM,OACN,IAAO,UACP,GAAM,SACN,IAAO,OACP,GAAM,qBACN,IAAO,mBACP,GAAM,SACN,GAAM,MACN,IAAO,YACP,GAAM,QACN,GAAM,UACN,IAAO,WACP,GAAM,aACN,GAAM,UACN,GAAM,aACN,IAAO,UACP,GAAM,UACN,IAAO,MACP,GAAM,gBACN,GAAM,aACN,IAAO,WACP,IAAO,WACP,IAAO,WACP,GAAM,WACN,GAAM,QACN,UAAW,eACX,GAAM,YACN,GAAM,UACN,IAAO,MACP,GAAM,OACN,GAAM,QACN,GAAM,UACN,GAAM,cACN,IAAO,UACP,IAAO,mBACP,IAAO,cACP,WAAY,uBACZ,IAAO,SACP,IAAO,OACP,GAAM,YACN,GAAM,oBACN,UAAW,MACX,IAAO,6BACP,SAAU,OACV,GAAM,kBACN,IAAO,sBACP,GAAM,SACN,GAAM,YACN,IAAO,OACP,GAAM,UACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,IAAO,aACP,IAAO,aACP,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,sBACN,QAAS,wBACT,GAAM,qBACN,UAAW,sBACX,GAAM,UACN,IAAO,qBACP,IAAO,SACP,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,QACN,GAAM,WACN,WAAY,kBACZ,IAAO,qBACP,GAAM,eACN,IAAO,SACP,GAAM,UACN,GAAM,UACN,IAAO,qBACP,IAAO,OACP,GAAM,QACN,IAAO,WACP,IAAO,WACP,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,SACN,GAAM,UACN,GAAM,YACN,IAAO,OACP,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,WAAY,YACZ,IAAO,uBACP,GAAM,QACN,GAAM,QACN,GAAM,SACN,IAAO,QACP,GAAM,OACN,GAAM,UACN,GAAM,WACN,IAAO,MACP,IAAO,YACP,GAAM,SACN,IAAO,WACP,GAAM,SACN,GAAM,SACN,IAAO,OACP,IAAO,UACP,GAAM,UACN,GAAM,UACN,IAAO,QACP,GAAM,MACN,IAAO,SACP,GAAM,YACN,GAAM,OACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,IAAO,WACP,GAAM,aACN,IAAO,QACP,GAAM,QACN,GAAM,QACN,GAAM,QACN,IAAO,QACP,GAAM,UACN,GAAM,SACN,IAAO,eACP,IAAO,UACP,GAAM,MACV,EASO,SAASC,GAAWC,EAA8B,CACrD,OAAKA,EACDA,KAAYF,KAChBE,EAAWA,EAAS,YAAY,EAC5BA,KAAYF,IAAkBE,EAEpB,OAAO,KAAKF,EAAS,EAAiC,OAAQG,GACpE,OAAOH,GAAUG,CAAG,GAAM,SAAiB,GAExCH,GAAUG,CAAG,EAAE,YAAY,IAAMD,CAC3C,EAEW,CAAC,GAAK,OAXH,MAYnB,CAOO,SAASE,GAAYF,EAA8B,CACtD,MAAO,EAAQD,GAAWC,CAAQ,CACtC,CC9RA,IAAAG,GAAwB,SAExB,SAASC,GAAGC,EAAW,CACnB,IAAIC,EACJ,GAAaC,KAAT,KAAaD,EAAIC,OAChB,CACDD,EAAIE,GAAG,GAAuB,EAC9B,IAAIC,EAAID,GAAG,GAAuB,EAClCF,EAAI,CAAEA,EAAE,EAAGA,EAAE,CAAE,EACfA,EAAE,CAAC,EAAIG,EAAE,EACTH,GAAKC,GAAKG,GAAOJ,EAAE,KAAKG,EAAE,CAAC,CAAC,GAAK,KAAO,EAC5C,CACA,IAAIE,EAASH,GAAG,GAAwB,EACpCC,EAASD,GAAG,GAAwB,EACxCG,EAAI,CAAEA,EAAE,EAAGA,EAAE,CAAE,EACfA,EAAE,CAAC,EAAIF,EAAE,EACTA,EAAI,IAAME,EAAE,KAAK,EAAE,EAAI,IACvBA,EAAIL,EAAE,MAAM,GAAG,EACfA,EAAI,OAAOK,EAAE,CAAC,CAAC,GAAK,EAEpB,QAASC,EAAW,CAAC,EAAGC,EAAI,EAAGC,EAAI,EAAGA,EAAIT,EAAE,OAAQS,IAAK,CACrD,IAAIC,EAAIV,EAAE,WAAWS,CAAC,EACtB,IAAMC,EAAIH,EAAEC,GAAG,EAAIE,GAAK,KAAOA,EAAIH,EAAEC,GAAG,EAAIE,GAAK,EAAI,MAAQA,EAAI,QAAU,OAASD,EAAI,EAAIT,EAAE,SAAWA,EAAE,WAAWS,EAAI,CAAC,EAAI,QAAU,OAASC,EAAI,QAAUA,EAAI,OAAS,KAAOV,EAAE,WAAW,EAAES,CAAC,EAAI,MAAOF,EAAEC,GAAG,EAAIE,GAAK,GAAK,IAAKH,EAAEC,GAAG,EAAIE,GAAK,GAAK,GAAK,KAAOH,EAAEC,GAAG,EAAIE,GAAK,GAAK,IAAKH,EAAEC,GAAG,EAAIE,GAAK,EAAI,GAAK,KAAMH,EAAEC,GAAG,EAAIE,EAAI,GAAK,IACjV,CACA,IAAIC,EAAY,OAAOV,CAAC,EACxB,QAASO,EAAI,EAAGA,EAAID,EAAE,OAAQC,IAAKR,GAAKO,EAAEC,CAAC,EAAGG,EAAIC,GAAGD,EAAG,QAAQ,EAChE,OAAAA,EAAIC,GAAGD,EAAG,WAAW,EACrBA,GAAK,OAAOL,EAAE,CAAC,CAAC,GAAK,EACrB,EAAIK,IAAMA,GAAKA,EAAI,YAAc,YACjCA,GAAK,IACEP,GAAKJ,EAAE,SAAS,EAAI,KAAOW,EAAIV,GAC1C,CAEA,IAAIC,GAAoB,KACpBC,GAAK,SAASH,EAAW,CACzB,OAAO,UAAW,CACd,OAAOA,CACX,CACJ,EACIY,GAAK,SAASZ,EAAWC,EAAW,CACpC,QAASG,EAAI,EAAGA,EAAIH,EAAE,OAAS,EAAGG,GAAK,EAAG,CACtC,IAAIE,EAAIL,EAAE,OAAOG,EAAI,CAAC,EAClBG,EAAID,GAAK,IAAMA,EAAE,WAAW,CAAC,EAAI,GAAK,OAAOA,CAAC,EAClDC,EAAIN,EAAE,OAAOG,EAAI,CAAC,GAAK,IAAMJ,IAAMO,EAAIP,GAAKO,EAC5CP,EAAIC,EAAE,OAAOG,CAAC,GAAK,IAAMJ,EAAIO,EAAI,WAAaP,EAAIO,CACtD,CACA,OAAOP,CACX,EAEMa,GAAS,IAAI,IAEbR,GAAc,CAChB,IAAKQ,GAAO,IAAI,KAAK,GAAK,GAC9B,EAEA,eAAeC,IAAY,CACvB,IAAIC,EAAM,KAAK,MAAM,KAAK,IAAI,EAAI,IAAO,EAEzC,GAAI,OAAOV,GAAO,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,IAAMU,EAAK,CAK1C,IAAMC,GAHO,MADI,QAAM,YAAQ,8BAA8B,GACjC,KAAK,KAAK,GAGpB,MAAM,gBAAgB,EAExC,GAAIA,GAAQA,EAAK,OAAS,EAAG,CAEzB,IAAMC,EAAKD,EAAK,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,QAAQ,KAAM,EAAE,EAEjDX,GAAO,IAAMY,EACbJ,GAAO,IAAI,MAAOI,CAAE,CACxB,CACJ,CACJ,CAEA,eAAsBC,GAAeC,EAAc,CAC/C,GAAI,CACA,MAAML,GAAU,EAEhB,IAAIM,EAAKrB,GAAGoB,CAAI,EAChB,OAAAC,EAAKA,EAAG,QAAQ,OAAQ,EAAE,EACnB,CAAE,KAAM,KAAM,MAAOA,CAAG,CACnC,OACOC,EAAO,CACV,OAAOA,CACX,CACJ,CF3EA,eAAsBC,GAAUC,EAAcC,EAAuD,CAC7F,OAAOA,GAAY,WAAUA,EAAU,CAAC,GAC5CD,EAAO,OAAOA,CAAI,EAGlB,IAAIE,EAAsB,KAO1B,GANA,CAAED,EAAQ,KAAMA,EAAQ,EAAG,EAAE,QAASE,GAAS,CACvCA,GAAQ,CAACC,GAAYD,CAAI,IACzBD,EAAQ,IAAI,MACZA,EAAM,QAAU,iBAAiBC,CAAI,sBAE7C,CAAC,EACGD,EAAO,MAAMA,EAGZ,OAAO,UAAU,eAAe,KAAKD,EAAS,MAAM,IAAGA,EAAQ,KAAO,QAEtE,OAAO,UAAU,eAAe,KAAKA,EAAS,IAAI,IAAGA,EAAQ,GAAK,MAEvEA,EAAQ,IAAM,EAAQA,EAAQ,IAG9BA,EAAQ,KAAOI,GAAWJ,EAAQ,IAAI,EACtCA,EAAQ,GAAKI,GAAWJ,EAAQ,EAAE,EAGlC,IAAIK,EAAa,MAAMC,GAAeP,CAAI,EAGtCQ,EAAU,kDACVC,EAAY,CACZ,OAAQ,MACR,GAAIR,EAAQ,KACZ,GAAIA,EAAQ,GACZ,GAAIA,EAAQ,GACZ,GAAI,CAAE,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,GAAI,EACjE,GAAI,QACJ,GAAI,QACJ,IAAK,EACL,KAAM,EACN,KAAM,EACN,GAAI,EACJ,EAAGD,EACH,CAACM,EAAM,IAAI,EAAGA,EAAM,KACxB,EAGII,EAAM,GAAGF,CAAO,IAAI,GAAAG,QAAY,UAAUF,CAAI,CAAC,GAE/CG,EACAC,EAAaH,EAEbA,EAAI,OAAS,MACb,OAAOD,EAAK,EACZI,EAAa,GAAGL,CAAO,IAAI,GAAAG,QAAY,UAAUF,CAAI,CAAC,GACtDG,EAAiB,CACb,OAAQ,OACR,KAAM,IAAI,gBAAgB,CAAE,EAAGZ,CAAK,CAAC,EAAE,SAAS,EAChD,QAAS,CACL,eAAgB,iDACpB,CACJ,EACIC,EAAQ,QACRW,EAAe,WAAa,IAAI,cAAWX,EAAQ,KAAK,IAIxDA,EAAQ,QACRW,EAAiB,CAAE,WAAY,IAAI,cAAWX,EAAQ,KAAK,CAAE,GAMrE,IAAIa,EAAY,MADD,QAAM,YAAQD,EAAYD,CAAc,GACxB,KAAK,KAAK,EAErCG,EAA4B,CAC5B,KAAM,GACN,KAAM,CACF,SAAU,CACN,WAAY,GACZ,IAAK,EACT,EACA,KAAM,CACF,cAAe,GACf,MAAO,GACP,WAAY,EAChB,CACJ,EACA,IAAK,EACT,EAsBA,GAnBId,EAAQ,MACRc,EAAO,IAAMD,GAIjBA,EAAK,CAAC,EAAE,QAASE,GAAa,CACtBA,EAAI,CAAC,IACLD,EAAO,MAAQC,EAAI,CAAC,EAE5B,CAAC,EAEGF,EAAK,CAAC,IAAMA,EAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EACxBC,EAAO,KAAK,SAAS,IAAMD,EAAK,CAAC,GAGjCC,EAAO,KAAK,SAAS,WAAa,GAClCA,EAAO,KAAK,SAAS,IAAMD,EAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAGvCA,EAAK,CAAC,GAAKA,EAAK,CAAC,EAAE,CAAC,EAAG,CACvB,IAAIG,EAAMH,EAAK,CAAC,EAAE,CAAC,EAEnBG,EAAMA,EAAI,QAAQ,UAAW,GAAG,EAChCA,EAAMA,EAAI,QAAQ,cAAe,GAAG,EAEpCF,EAAO,KAAK,KAAK,MAAQE,EAErBH,EAAK,CAAC,EAAE,CAAC,IAAM,GACfC,EAAO,KAAK,KAAK,cAAgB,GAGjCA,EAAO,KAAK,KAAK,WAAa,EAEtC,CAEA,OAAOA,CACX,CGhJA,IAAAG,GAA2B,SAQ3B,IAAAC,GAAgC,SAEnBC,GAAc,OAWdC,GAAN,cAA6B,KAAM,CAAC,EAErCC,GAA+BC,GAC5BA,IAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAG1B,eAAsBC,GAAgBC,EAAcC,EAA0D,CAC5G,GAAI,CACF,GAAI,CAACD,EACH,MAAO,CACL,aAAcA,EACd,eAAgB,GAChB,kBAAmB,GACnB,SAAUC,EAAQ,SAClB,OAAQA,EAAQ,OAAO,CAAC,CAC1B,EAGF,IAAMC,EAAa,MAAMC,GAAUH,EAAM,CACvC,KAAMC,EAAQ,SACd,GAAIA,EAAQ,OAAO,CAAC,EACpB,IAAK,GACL,MAAOA,EAAQ,KACjB,CAAC,EAED,MAAO,CACL,aAAcD,EACd,eAAgBE,EAAW,KAC3B,kBAAmBL,GAA4BK,GAAY,GAAG,EAC9D,SAAUA,GAAY,MAAM,UAAU,IACtC,OAAQD,EAAQ,OAAO,CAAC,CAC1B,CACF,OAASG,EAAK,CACZ,GAAIA,aAAe,MAAO,CACxB,GAAIA,EAAI,OAAS,uBAAwB,CACvC,IAAMC,EAAQ,IAAIT,GAClB,MAAAS,EAAM,KAAO,oBACbA,EAAM,QAAU,yBACVA,CACR,CAEA,IAAMA,EAAQ,IAAIT,GAClB,MAAAS,EAAM,KAAOD,EAAI,KACjBC,EAAM,QAAUD,EAAI,QACdC,CACR,CAEA,MAAMD,CACR,CACF,CJzDA,IAAME,GAA0BC,IACvB,CACL,SAAUA,EAAO,SACjB,OAAQ,MAAM,QAAQA,EAAO,MAAM,EAAIA,EAAO,OAAS,CAACA,EAAO,MAAM,CACvE,GAGWC,GAAiB,IACrB,GAAAC,QAAM,QAAQ,OAAM,wBAA0C,EAAG,CAAC,CAAC,EAG/DC,GAAe,IAAM,CAChC,IAAMC,EAAcH,GAAe,EAC7B,CAACI,EAAMC,CAAO,EAAI,GAAAJ,QAAM,SAAS,EAAE,EACnCK,EAAU,GAAAL,QAAM,OAAOG,CAAI,EACjC,OAAAE,EAAQ,QAAUF,EAElB,GAAAH,QAAM,UAAU,IAAM,CAChBE,EAAY,cACd,oBAAgB,EACb,KAAMI,GAAW,CACXD,EAAQ,SACXD,EAAQE,GAAU,EAAE,CAExB,CAAC,EACA,MAAOC,GAAQ,CACd,QAAQ,IAAI,SAAUA,CAAG,CAC3B,CAAC,CAEP,EAAG,CAAC,CAAC,EAEE,CAACJ,EAAMC,CAAO,CACvB,EAEaI,GAA0B,IAAM,CAC3C,IAAMN,EAAcH,GAAe,EAC7B,CAACU,EAAqBC,CAAsB,KAAI,mBACpD,sBACAb,GAAuB,CACrB,SAAUK,EAAY,MACtB,OAAQA,EAAY,KACtB,CAAC,CACH,EAEA,MAAO,CAACL,GAAuBY,CAAmB,EAAGC,CAAsB,CAC7E,EAEaC,GAA4B,IAAM,CAC7C,IAAMT,EAAcH,GAAe,EAEnC,MADgD,CAAE,SAAUG,EAAY,MAAO,OAAQ,CAACA,EAAY,KAAK,CAAE,CAE7G,EAEaU,GAAoB,CAAIC,EAAUC,IAAkB,CAC/D,GAAM,CAACC,EAAgBC,CAAiB,EAAI,GAAAhB,QAAM,SAAYa,CAAK,EAEnE,UAAAb,QAAM,UAAU,IAAM,CACpB,IAAMiB,EAAU,WAAW,IAAM,CAC/BD,EAAkBH,CAAK,CACzB,EAAGC,CAAK,EAER,MAAO,IAAM,CACX,aAAaG,CAAO,CACtB,CACF,EAAG,CAACJ,EAAOC,CAAK,CAAC,EAEVC,CACT,EAEaG,GAAqB,IAAM,CACtC,GAAM,CAACC,EAAWC,CAAY,KAAI,mBAAyC,YAAa,CAAC,CAAC,EAE1F,MAAO,CAACD,EAAU,IAAItB,EAAsB,EAAGuB,CAAY,CAC7D,EK/EO,IAAMC,GAAyB,CAAE,KAAM,KAAM,KAAMC,GAAW,EAAG,EAC3DC,GAA4B,CAAE,KAAM,OAAQ,KAAMD,GAAW,IAAK,EAElEA,GAA8B,OAAO,KAAKA,EAAU,EAAkC,IAAKE,IAAU,CAChH,KAAAA,EACA,KAAMF,GAAWE,CAAI,CACvB,EAAE,EAEWC,GAA2BH,GAAU,OAChD,CAACI,EAAKC,KAAU,CACd,GAAGD,EACH,CAACC,EAAK,IAAI,EAAGA,CACf,GACA,CAAC,CACH,EACaC,GAA8BN,GAAU,OACnD,CAACI,EAAKC,KAAU,CACd,GAAGD,EACH,CAACC,EAAK,IAAI,EAAGA,CACf,GACA,CAAC,CACH,EC5BA,IAAAE,EAAwF,wBCDxF,IAAAC,GAAkB,qBAClBC,GAA4D,wBAclD,IAAAC,GAAA,6BATGC,GAER,CAAC,CAAE,cAAAC,CAAc,IAAM,CAC1B,GAAM,CAACC,EAAiBC,CAAkB,EAAI,GAAAC,QAAM,SAAyB,CAAC,IAAI,CAAC,EAEnF,SACE,SAAC,SACC,WACE,QAAC,gBACC,oBAAC,UAAO,WAAP,CACC,MAAM,mBACN,SAAWC,GAA4B,CACrC,IAAMC,EAA0BJ,EAAgB,OAAQK,GAAS,CAAC,CAACA,CAAI,EACvE,GAAI,CAACD,EAAwB,OAAQ,IACnC,cAAU,CACR,MAAO,SAAM,MAAM,QACnB,MAAO,sBACP,QAAS,4CACX,CAAC,EACD,MACF,CACAL,EAAc,CACZ,SAAUI,EAAO,SACjB,OAAQC,CACV,CAAC,CACH,EACF,EACF,EAGF,qBAAC,QAAK,SAAL,CAAc,GAAG,WAAW,MAAM,kBAChC,SAAAE,GAAU,IAAKD,MACd,QAAC,QAAK,SAAS,KAAd,CAAmC,MAAOA,EAAK,KAAM,MAAOA,EAAK,MAAzCA,EAAK,IAA0C,CACzE,EACH,EACCL,EAAgB,IAAI,CAACO,EAAGC,IAAU,CACjC,IAAMC,EAAQT,EAAgBQ,CAAK,EACnC,SACE,SAAC,QAAK,SAAL,CACC,GAAI,UAAUA,CAAK,GACnB,MAAO,mBAAmBA,EAAQ,CAAC,GAEnC,MAAOC,EACP,SAAWA,GAAU,CACnB,IAAMC,EAAqB,CAAC,GAAGV,CAAe,EAC9CU,EAAmBF,CAAK,EAAIC,EAC5BR,EAAmBS,CAAkB,CACvC,EAEC,WAACD,MAAS,QAAC,QAAK,SAAS,KAAd,CAAmB,MAAM,GAAG,MAAM,GAAG,EAChDH,GACE,OAAQD,GAASA,EAAK,OAASM,EAAW,EAC1C,IAAKN,MACJ,QAAC,QAAK,SAAS,KAAd,CAAmC,MAAOA,EAAK,KAAM,MAAOA,EAAK,MAAzCA,EAAK,IAA0C,CACzE,IAbEG,CAcP,CAEJ,CAAC,GACC,CAAC,CAACR,EAAgBA,EAAgB,OAAS,CAAC,GAAKA,EAAgB,SAAW,OAC5E,SAAC,QAAK,SAAL,CACC,GAAI,UAAUA,EAAgB,MAAM,GACpC,MAAO,mBAAmBA,EAAgB,MAAM,GAEhD,MAAO,GACP,SAAWS,GAAU,CACnB,IAAMC,EAAqB,CAAC,GAAGV,CAAe,EAC9CU,EAAmB,KAAKD,CAAqB,EAC7CR,EAAmBS,CAAkB,CACvC,EAEA,qBAAC,QAAK,SAAS,KAAd,CAAmB,MAAM,GAAG,MAAM,GAAG,EACrCJ,GACE,OAAQD,GAASA,EAAK,OAASM,EAAW,EAC1C,IAAKN,MACJ,QAAC,QAAK,SAAS,KAAd,CAAmC,MAAOA,EAAK,KAAM,MAAOA,EAAK,MAAzCA,EAAK,IAA0C,CACzE,IAbEL,EAAgB,MAcvB,GAEJ,CAEJ,ECnFO,IAAMY,GAAoB,CAACC,EAA2BC,IACpDD,EAAS,WAAaC,EAAS,UAAYD,EAAS,OAAO,KAAK,IAAMC,EAAS,OAAO,KAAK,EAGvFC,GAAyBC,IAC7B,CACL,SAAUC,GAAyBD,EAAY,QAAQ,EACvD,OAAQA,EAAY,OAAO,IAAKE,GAAMD,GAAyBC,CAAC,CAAC,CACnE,GAGWC,GAAqBH,GAAiC,CACjE,GAAM,CAAE,SAAAI,EAAU,OAAAC,CAAO,EAAIN,GAAsBC,CAAW,EAExDM,GADY,MAAM,QAAQD,CAAM,EAAIA,EAAS,CAACA,CAAM,GACzB,IAAKH,GAAMA,EAAE,IAAI,EAClD,MAAO,GAAGE,EAAS,IAAI,OAAOE,EAAe,KAAK,IAAI,CAAC,EACzD,EFWQ,IAAAC,GAAA,6BAvBD,SAASC,GAAqB,CACnC,YAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,CACF,EAKG,CACD,GAAM,CAAE,SAAAC,EAAU,OAAAC,CAAO,EAAIC,GAAsBN,CAAW,EAExDO,EAAU,MAAM,QAAQF,CAAM,EAAIA,EAAS,CAACA,CAAM,EAClDG,EAAeD,EAAQ,IAAKE,GAAMA,EAAE,IAAI,EAAE,KAAK,IAAI,EAEzD,SACE,QAAC,OAAK,KAAL,CACC,MAAO,GAAGL,EAAS,IAAI,QACvB,SAAU,IAAII,CAAY,GAC1B,SAAU,CAACJ,EAAS,KAAMA,EAAS,KAAM,GAAGG,EAAQ,QAASE,GAAM,CAACA,EAAE,KAAMA,EAAE,IAAI,CAAC,CAAC,EACpF,KAAMN,EAAW,CAAE,UAAW,QAAM,MAAO,OAAQ,OAAK,SAAU,EAAI,OACtE,WACE,SAAC,eACC,qBAAC,UAAO,MAAM,SAAS,SAAUF,EAAU,KAAM,CAAE,UAAW,QAAM,MAAO,OAAQ,OAAK,SAAU,EAAG,EACpGC,MAAY,QAAC,UAAO,MAAO,SAAO,MAAM,YAAa,MAAM,SAAS,SAAUA,EAAU,KAAM,OAAK,MAAO,GAC7G,EAEJ,CAEJ,CAEO,IAAMQ,GAA2F,CAAC,CACvG,YAAAV,EACA,SAAAC,CACF,OAEI,QAAC,OAAK,KAAL,CACC,KAAM,OAAK,aACX,MAAM,mBACN,SAAUU,GAAkBX,CAAW,EACvC,WACE,QAAC,eACC,oBAAC,UAAO,MAAM,mBAAmB,SAAUC,EAAU,EACvD,EAEJ,EAISW,GAAkC,IAAM,CACnD,IAAMC,KAAa,iBAAc,EAC3BC,EAAyBC,GAA0B,EACnD,CAACC,EAAqBC,CAAsB,EAAIC,GAAwB,EACxE,CAACC,EAAWC,CAAY,EAAIC,GAAmB,EAErD,SACE,SAAC,QACC,WACE,QAAC,eACC,oBAAC,UAAO,MAAM,aAAa,SAAU,IAAMD,EAAa,CAAC,CAAC,EAAG,EAC/D,EAGF,qBAAC,OAAK,KAAL,CACC,KAAM,CAAE,OAAQ,OAAK,IAAK,EAC1B,MAAM,0BACN,WACE,QAAC,eACC,oBAAC,SAAO,KAAP,CACC,MAAM,0BACN,UACE,QAACE,GAAA,CACC,cAAgBC,GAAY,CAC1BH,EAAa,CAAC,GAAGD,EAAWI,CAAO,CAAC,EACpCV,EAAW,IAAI,KACf,aAAU,QAAM,MAAM,QAAS,0BAA2BF,GAAkBY,CAAO,CAAC,CACtF,EACF,EAEJ,EACF,EAEJ,EACC,CAACJ,EAAU,KAAMV,GAAMe,GAAkBf,EAAGO,CAAmB,CAAC,GAC/D,CAACQ,GAAkBV,EAAwBE,CAAmB,MAC5D,QAACN,GAAA,CACC,YAAaM,EACb,SAAU,IAAMI,EAAa,CAAC,GAAGD,EAAWH,CAAmB,CAAC,EAClE,KAEJ,QAACjB,GAAA,CACC,YAAae,EACb,SAAU,IAAM,CACdG,EAAuBH,CAAsB,EAC7CD,EAAW,IAAI,CACjB,EACA,SAAUW,GAAkBR,EAAqBF,CAAsB,EACzE,EACCK,EAAU,IAAKI,MACd,QAACxB,GAAA,CAEC,SAAUyB,GAAkBR,EAAqBO,CAAO,EACxD,YAAaA,EACb,SAAU,IAAM,CACdN,EAAuBM,CAAO,EAC9BV,EAAW,IAAI,CACjB,EACA,SAAU,IAAM,CACdO,EAAaD,EAAU,OAAQV,GAAM,CAACe,GAAkBf,EAAGc,CAAO,CAAC,CAAC,KACpE,aAAU,QAAM,MAAM,QAAS,4BAA6BZ,GAAkBY,CAAO,CAAC,CACxF,GAVK,GAAGA,EAAQ,QAAQ,IAAIA,EAAQ,MAAM,EAW5C,CACD,GACH,CAEJ,EG1HA,IAAAE,GAA0C,wBAatC,IAAAC,GAAA,6BCbJ,IAAAC,GAAkD,wBAY9CC,GAAA,6BAJSC,GAA+B,CAAC,CAAE,qBAAAC,EAAsB,MAAAC,CAAM,IAAmB,CAC5F,IAAMC,KAAoB,wBAA0C,EAAE,cAEhEC,KACJ,QAAC,UAAO,MAAP,CAAa,MAAOH,EAAuB,SAASA,CAAoB,GAAK,QAAS,QAASC,EAAO,EAEnGG,KACJ,QAAC,UAAO,gBAAP,CAAuB,MAAOJ,EAAuB,QAAQA,CAAoB,GAAK,OAAQ,QAASC,EAAO,EAGjH,OAAIC,IAAsB,WAEtB,sBACG,UAAAC,EACAC,GACH,KAKF,sBACG,UAAAA,EACAD,GACH,CAEJ,EAUO,IAAME,GAGR,CAAC,CAAE,gBAAAC,EAAiB,YAAAC,CAAY,OAEjC,QAAC,UAAO,cAAP,CACC,MAAM,2BACN,SAAU,CAAE,UAAW,CAAC,KAAK,EAAG,IAAK,OAAQ,EAC7C,IACE,oCACAA,EAAY,SACZ,OACAA,EAAY,OACZ,SACA,mBAAmBD,CAAe,EAClC,gBAEJ,EXGM,IAAAE,GAAA,6BAvDK,SAARC,IAAiC,CACtC,GAAM,CAACC,EAAqBC,CAAsB,EAAIC,GAAwB,EACxEC,EAAWH,EAAoB,SAC/BI,EAAS,MAAM,QAAQJ,EAAoB,MAAM,EAAIA,EAAoB,OAAO,CAAC,EAAIA,EAAoB,OACzG,CAAE,MAAAK,CAAM,EAAIC,GAAe,EAC3BC,EAAe,GAAAC,QAAM,OAAsB,IAAI,EAC/CC,EAAiB,GAAAD,QAAM,OAAsB,IAAI,EACjDE,EAAmB,GAAAF,QAAM,OAAsB,IAAI,EACnDG,EAAeC,GAAoBX,EAAuB,CAAE,GAAGD,EAAqB,SAAUY,CAAE,CAAC,EACjGC,EAAaD,GAAoBX,EAAuB,CAAE,GAAGD,EAAqB,OAAQ,CAACY,CAAC,CAAE,CAAC,EAC/FE,EAAcC,GAAyBZ,CAAQ,GAAKa,GACpDC,EAAYF,GAAyBX,CAAM,GAAKY,GAEhD,CAACE,EAAMC,CAAO,EAAIC,GAAa,EAC/BC,EAAiBC,GAAkBJ,EAAM,GAAG,EAC5C,CAAE,KAAMK,EAAY,UAAAC,CAAU,KAAI,eACtCC,GACA,CAACJ,EAAgB,CAAE,SAAUP,EAAY,KAAM,OAAQ,CAACG,EAAU,IAAI,EAAG,MAAAZ,CAAM,CAAC,EAChF,CACE,QAAQqB,EAAO,IACb,aAAU,CACR,MAAO,QAAM,MAAM,QACnB,MAAOA,EAAM,KACb,QAASA,EAAM,OACjB,CAAC,CACH,CACF,CACF,EAEMC,EAAgBC,GAAkB,CAClCA,EAAM,OAAS,KACjBT,EAAQS,EAAM,MAAM,EAAG,GAAI,CAAC,KAC5B,aAAU,CACR,MAAO,QAAM,MAAM,QACnB,MAAO,QACP,QAAS,2DACX,CAAC,GAEDT,EAAQS,CAAK,CAEjB,EAEMC,EAAuB,GAAArB,QAAM,QAAQ,IACrCL,IAAa2B,IAAeP,EACvBR,GAAyBQ,EAAW,QAAQ,EAG9C,KACN,CAACA,EAAYpB,CAAQ,CAAC,EAEzB,SACE,SAAC,QACC,UAAWqB,EACX,WACE,SAAC,eACC,sBAAC,cAAY,QAAZ,CAAoB,MAAM,WACzB,qBAACO,GAAA,CAA6B,qBAAqB,aAAa,MAAOR,GAAY,gBAAkB,GAAI,KACzG,QAAC,SAAO,gBAAP,CAAuB,MAAM,YAAY,QAASL,GAAQ,GAAI,KAC/D,QAAC,SAAO,gBAAP,CACC,MAAM,qBACN,SAAU,CAAE,UAAW,CAAC,MAAO,OAAO,EAAG,IAAK,GAAI,EAClD,QAASK,GAAY,mBAAqB,GAC5C,KACA,QAACS,GAAA,CAAmC,gBAAiBd,EAAM,YAAa,CAAE,SAAAf,EAAU,OAAAC,CAAO,EAAG,KAC9F,QAAC,SAAO,KAAP,CACC,KAAM,OAAK,OACX,MAAM,0BACN,SAAU,CAAE,UAAW,CAAC,KAAK,EAAG,IAAK,GAAI,EACzC,UAAQ,QAAC6B,GAAA,EAAqB,EAChC,GACF,KACA,SAAC,cAAY,QAAZ,CAAoB,MAAM,WACzB,qBAAC,UACC,SAAU,CAAE,UAAW,CAAC,MAAO,OAAO,EAAG,IAAK,GAAI,EAClD,SAAU,IAAM,CACVJ,GAAsB,KACxB5B,EAAuB,CACrB,SAAUG,EACV,OAAQ,CAACW,GAAyBc,EAAqB,IAAI,EAAE,IAAI,CACnE,CAAC,EAED5B,EAAuB,CAAE,SAAUG,EAAQ,OAAQ,CAACD,CAAQ,CAAE,CAAC,CAEnE,EACA,MAAO,GAAG0B,GAAsB,MAAQf,EAAY,IAAI,QAAQG,EAAU,IAAI,GAChF,KACA,QAAC,UACC,SAAU,CAAE,UAAW,CAAC,MAAO,OAAO,EAAG,IAAK,GAAI,EAClD,MAAM,uBACN,SAAU,IAAM,CACdP,EAAiB,SAAS,MAAM,CAClC,EACF,KACA,QAAC,UACC,SAAU,CAAE,UAAW,CAAC,MAAO,OAAO,EAAG,IAAK,GAAI,EAClD,MAAM,qBACN,SAAU,IAAM,CACdD,EAAe,SAAS,MAAM,CAChC,EACF,GACF,GACF,EAGF,qBAAC,OAAK,SAAL,CAAc,GAAG,OAAO,MAAM,OAAO,MAAOS,EAAM,SAAUS,EAAc,IAAKpB,EAAc,KAC9F,SAAC,OAAK,SAAL,CACC,GAAG,gBACH,MAAM,OACN,MAAOsB,GAAsB,MAAQ1B,EACrC,SAAW+B,GAAM,CACfvB,EAAYuB,CAAiB,EAC7B3B,EAAa,SAAS,MAAM,CAC9B,EACA,WAAU,GACV,IAAKG,EAEJ,UAAAmB,MACC,QAAC,OAAK,SAAS,KAAd,CAAmB,MAAOA,EAAqB,KAAM,MAAO,GAAGA,EAAqB,IAAI,iBAAkB,EAE5GM,GAAU,IAAKC,MACd,QAAC,OAAK,SAAS,KAAd,CAAmC,MAAOA,EAAK,KAAM,MAAOA,EAAK,MAAzCA,EAAK,IAA0C,CACzE,GACH,KACA,QAAC,OAAK,SAAL,CACC,GAAG,cACH,MAAM,KACN,MAAOhC,EACP,SAAW8B,GAAM,CACfrB,EAAUqB,CAAiB,EAC3B3B,EAAa,SAAS,MAAM,CAC9B,EACA,WAAU,GACV,IAAKE,EAEJ,SAAA0B,GACE,OAAQC,GAASA,EAAK,OAASN,EAAW,EAC1C,IAAKM,MACJ,QAAC,OAAK,SAAS,KAAd,CAAmC,MAAOA,EAAK,KAAM,MAAOA,EAAK,MAAzCA,EAAK,IAA0C,CACzE,EACL,KACA,QAAC,OAAK,SAAL,CACC,GAAG,SACH,MAAM,cACN,MAAOb,GAAY,gBAAkB,GACrC,YAAY,cACd,KACA,QAAC,OAAK,YAAL,CAAiB,MAAM,gBAAgB,KAAMA,GAAY,mBAAqB,GAAI,GACrF,CAEJ", - "names": ["require_lite", "__commonJSMin", "exports", "has", "dequal", "foo", "bar", "ctor", "len", "require_useDeepMemo", "__commonJSMin", "exports", "react_1", "lite_1", "useDeepMemo", "value", "ref", "signalRef", "require_useLatest", "__commonJSMin", "exports", "react_1", "useLatest", "value", "ref", "require_handle_error_toast_action", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "fs", "path", "api_1", "handleErrorToastAction", "error", "privateExtension", "title", "extensionURL", "packageJSON", "fallback", "toast", "require_usePromise", "__commonJSMin", "exports", "react_1", "api_1", "useDeepMemo_1", "useLatest_1", "handle_error_toast_action_1", "usePromise", "fn", "args", "options", "lastCallId", "state", "set", "fnRef", "latestAbortable", "latestArgs", "latestOnError", "latestOnData", "latestOnWillExecute", "latestValue", "latestCallback", "callback", "callId", "prevState", "bindPromiseIfNeeded", "data", "error", "toast", "revalidate", "mutate", "asyncUpdate", "dataBeforeOptimisticUpdate", "update", "err", "isLoading", "require_useCachedState", "__commonJSMin", "exports", "react_1", "api_1", "useLatest_1", "replacer", "key", "_value", "value", "reviver", "_key", "rootCache", "cacheMap", "useCachedState", "initialState", "config", "cacheKey", "cache", "keyRef", "initialValueRef", "cachedState", "error", "state", "err", "stateRef", "setStateAndCache", "updater", "newValue", "stringifiedValue", "require_object_hash", "__commonJSMin", "exports", "module", "crypto", "objectHash", "object", "options", "applyDefaults", "hash", "hashes", "encodings", "sourceOptions", "i", "isNativeFunction", "f", "exp", "hashingStream", "PassThrough", "hasher", "typeHasher", "buf", "stream", "writeTo", "context", "write", "str", "value", "type", "pattern", "objString", "objType", "objectNumber", "keys", "key", "self", "arr", "unordered", "entry", "contextAdditions", "entries", "strm", "localContext", "date", "sym", "err", "bool", "string", "fn", "number", "xml", "regex", "url", "map", "set", "file", "b", "require_useCachedPromise", "__commonJSMin", "exports", "__importDefault", "mod", "react_1", "object_hash_1", "useCachedState_1", "usePromise_1", "useLatest_1", "emptyCache", "useCachedPromise", "fn", "args", "options", "initialData", "keepPreviousData", "usePromiseOptions", "lastUpdateFrom", "cachedData", "mutateCache", "laggyDataRef", "_mutate", "revalidate", "state", "data", "returnedData", "latestData", "mutate", "asyncUpdate", "dataBeforeOptimisticUpdate", "err", "require_media_typer", "__commonJSMin", "exports", "SUBTYPE_NAME_REGEXP", "TYPE_NAME_REGEXP", "TYPE_REGEXP", "format", "parse", "test", "obj", "subtype", "suffix", "type", "string", "match", "index", "MediaType", "require_content_type", "__commonJSMin", "exports", "PARAM_REGEXP", "TEXT_REGEXP", "TOKEN_REGEXP", "QESC_REGEXP", "QUOTE_REGEXP", "TYPE_REGEXP", "format", "parse", "obj", "parameters", "type", "string", "param", "params", "i", "qstring", "header", "getcontenttype", "index", "ContentType", "key", "match", "value", "val", "str", "require_lib", "__commonJSMin", "exports", "module", "conversions", "sign", "x", "evenRound", "createNumberConversion", "bitLength", "typeOpts", "lowerBound", "upperBound", "moduloVal", "moduloBound", "V", "opts", "val", "c", "i", "S", "n", "U", "d", "a", "b", "require_utils", "__commonJSMin", "exports", "module", "target", "source", "keys", "i", "impl", "wrapper", "require_mappingTable", "__commonJSMin", "exports", "module", "require_tr46", "__commonJSMin", "exports", "module", "punycode", "mappingTable", "PROCESSING_OPTIONS", "normalize", "str", "s", "findStatus", "val", "start", "end", "mid", "target", "regexAstralSymbols", "countSymbols", "string", "mapChars", "domain_name", "useSTD3", "processing_option", "hasError", "processed", "len", "i", "codePoint", "status", "combiningMarksRegex", "validateLabel", "label", "error", "processing", "result", "labels", "validation", "verifyDnsLength", "l", "total", "require_url_state_machine", "__commonJSMin", "exports", "module", "punycode", "tr46", "specialSchemes", "failure", "countSymbols", "str", "at", "input", "idx", "c", "isASCIIDigit", "isASCIIAlpha", "isASCIIAlphanumeric", "isASCIIHex", "isSingleDot", "buffer", "isDoubleDot", "isWindowsDriveLetterCodePoints", "cp1", "cp2", "isWindowsDriveLetterString", "string", "isNormalizedWindowsDriveLetterString", "containsForbiddenHostCodePoint", "containsForbiddenHostCodePointExcludingPercent", "isSpecialScheme", "scheme", "isSpecial", "url", "defaultPort", "percentEncode", "hex", "utf8PercentEncode", "buf", "i", "utf8PercentDecode", "output", "isC0ControlPercentEncode", "extraPathPercentEncodeSet", "isPathPercentEncode", "extraUserinfoPercentEncodeSet", "isUserinfoPercentEncode", "percentEncodeChar", "encodeSetPredicate", "cStr", "parseIPv4Number", "R", "parseIPv4", "parts", "numbers", "part", "n", "ipv4", "counter", "serializeIPv4", "address", "parseIPv6", "pieceIndex", "compress", "pointer", "value", "length", "numbersSeen", "ipv4Piece", "number", "swaps", "temp", "serializeIPv6", "findLongestZeroSequence", "ignore0", "parseHost", "isSpecialArg", "parseOpaqueHost", "domain", "asciiDomain", "ipv4Host", "decoded", "arr", "maxIdx", "maxLen", "currStart", "currLen", "serializeHost", "host", "trimControlChars", "trimTabAndNewline", "shortenPath", "path", "isNormalizedWindowsDriveLetter", "includesCredentials", "cannotHaveAUsernamePasswordPort", "URLStateMachine", "base", "encodingOverride", "stateOverride", "res", "ret", "len", "codePoint", "encodedCodePoints", "port", "fileOtherwiseCodePoints", "serializeURL", "excludeFragment", "serializeOrigin", "tuple", "result", "options", "usm", "username", "password", "integer", "require_URL_impl", "__commonJSMin", "exports", "usm", "constructorArgs", "url", "base", "parsedBase", "parsedURL", "v", "input", "require_URL", "__commonJSMin", "exports", "module", "conversions", "utils", "Impl", "impl", "URL", "url", "args", "i", "V", "obj", "constructorArgs", "privateData", "require_public_api", "__commonJSMin", "exports", "require_lib", "__commonJSMin", "exports", "module", "_interopDefault", "ex", "Stream", "http", "Url", "whatwgUrl", "https", "zlib", "Readable", "BUFFER", "TYPE", "Blob", "_Blob", "blobParts", "options", "buffers", "size", "a", "length", "i", "element", "buffer", "type", "buf", "ab", "readable", "start", "end", "relativeStart", "relativeEnd", "span", "slicedBuffer", "blob", "FetchError", "message", "systemError", "convert", "INTERNALS", "PassThrough", "Body", "body", "_this", "_ref", "_ref$size", "_ref$timeout", "timeout", "isURLSearchParams", "isBlob", "err", "error", "consumeBody", "ct", "_this2", "_this3", "convertBody", "proto", "name", "desc", "_this4", "accum", "accumBytes", "abort", "resolve", "reject", "resTimeout", "chunk", "headers", "charset", "res", "str", "obj", "clone", "instance", "p1", "p2", "extractContentType", "getTotalBytes", "writeToStream", "dest", "invalidTokenRegex", "invalidHeaderCharRegex", "validateName", "validateValue", "value", "find", "map", "key", "MAP", "Headers", "_Headers", "init", "rawHeaders", "headerNames", "headerName", "method", "pairs", "pair", "callback", "thisArg", "getHeaders", "_pairs$i", "createHeadersIterator", "kind", "k", "INTERNAL", "target", "iterator", "HeadersIteratorPrototype", "_INTERNAL", "index", "values", "len", "exportNodeCompatibleHeaders", "hostHeaderKey", "createHeadersLenient", "val", "INTERNALS$1", "STATUS_CODES", "Response", "_Response", "opts", "status", "contentType", "INTERNALS$2", "URL", "parse_url", "format_url", "parseURL", "urlStr", "streamDestructionSupported", "isRequest", "input", "isAbortSignal", "signal", "Request", "_Request", "parsedURL", "inputBody", "getNodeRequestOptions", "request", "contentLengthValue", "totalBytes", "agent", "AbortError", "URL$1", "PassThrough$1", "isDomainOrSubdomain", "destination", "original", "orig", "isSameProtocol", "fetch", "url", "send", "response", "destroyStream", "abortAndFinalize", "finalize", "req", "reqTimeout", "socket", "fixResponseChunkedTransferBadEnding", "s", "hadError", "hasDataListener", "location", "locationURL", "requestOpts", "response_options", "codings", "zlibOptions", "raw", "errorCallback", "stream", "code", "require_node_ponyfill", "__commonJSMin", "exports", "module", "nodeFetch", "realFetch", "fetch", "url", "options", "require_useFetch", "__commonJSMin", "exports", "__importDefault", "mod", "react_1", "media_typer_1", "content_type_1", "useCachedPromise_1", "useLatest_1", "cross_fetch_1", "isJSON", "contentTypeHeader", "ct", "mediaType", "defaultParsing", "response", "useFetch", "url", "options", "parseResponse", "initialData", "execute", "keepPreviousData", "onError", "onData", "onWillExecute", "fetchOptions", "useCachedPromiseOptions", "parseResponseRef", "abortable", "fn", "res", "exports", "signals_js_1", "exports", "processOk", "process", "kExitEmitter", "global", "ObjectDefineProperty", "Emitter", "ev", "fn", "list", "i", "code", "signal", "ret", "SignalExitBase", "signalExitWrap", "handler", "cb", "opts", "SignalExitFallback", "SignalExit", "#hupSig", "#emitter", "#process", "#originalProcessEmit", "#originalProcessReallyExit", "#sigListeners", "#loaded", "sig", "listeners", "count", "p", "s", "a", "#processEmit", "#processReallyExit", "listener", "args", "og", "_a", "require_exec_utils", "__commonJSMin", "exports", "__importDefault", "mod", "node_buffer_1", "node_stream_1", "node_util_1", "signal_exit_1", "getSpawnedPromise", "spawned", "timeout", "spawnedPromise", "resolve", "reject", "exitCode", "signal", "error", "timeoutId", "timeoutPromise", "_resolve", "safeSpawnedPromise", "removeExitHandler", "MaxBufferError", "streamPipelinePromisified", "bufferStream", "options", "encoding", "isBuffer", "stream", "length", "chunks", "chunk", "getStream", "inputStream", "rejectPromise", "getBufferedData", "streamPromise", "getSpawnedResult", "stdout", "stderr", "processDone", "stdoutPromise", "stderrPromise", "stripFinalNewline", "input", "LF", "CR", "handleOutput", "value", "getErrorPrefix", "timedOut", "makeError", "command", "parentError", "execaMessage", "shortMessage", "message", "defaultParsing", "require_useExec", "__commonJSMin", "exports", "__importDefault", "mod", "node_child_process_1", "react_1", "useCachedPromise_1", "useLatest_1", "exec_utils_1", "SPACES_REGEXP", "parseCommand", "command", "args", "tokens", "token", "previousToken", "useExec", "optionsOrArgs", "options", "parseOutput", "input", "onData", "onWillExecute", "initialData", "execute", "keepPreviousData", "onError", "execOptions", "useCachedPromiseOptions", "abortable", "parseOutputRef", "fn", "_command", "_args", "_options", "file", "spawned", "spawnedPromise", "error", "exitCode", "signal", "timedOut", "stdoutResult", "stderrResult", "stdout", "stderr", "require_useSQL", "__commonJSMin", "exports", "__importDefault", "mod", "jsx_runtime_1", "api_1", "node_fs_1", "promises_1", "node_os_1", "node_child_process_1", "node_path_1", "object_hash_1", "react_1", "usePromise_1", "useLatest_1", "exec_utils_1", "handle_error_toast_action_1", "useSQL", "databasePath", "query", "options", "permissionPriming", "usePromiseOptions", "permissionView", "setPermissionView", "latestOptions", "abortable", "handleError", "_error", "error", "PermissionError", "isPermissionError", "PermissionErrorScreen", "fn", "workaroundCopiedDb", "abortSignal", "spawned", "spawnedPromise", "exitCode", "signal", "stdoutResult", "stderrResult", "checkAborted", "tempFolder", "message", "macosVenturaAndLater", "preferencesString", "props", "action", "require_useForm", "__commonJSMin", "exports", "react_1", "useLatest_1", "FormValidation", "validationError", "validation", "value", "valueIsValid", "useForm", "props", "_onSubmit", "initialValues", "values", "setValues", "errors", "setErrors", "refs", "latestValidation", "latestOnSubmit", "focus", "id", "handleSubmit", "validationErrors", "error", "result", "setValidationError", "setValue", "itemProps", "target", "event", "instance", "reset", "require_useAI", "__commonJSMin", "exports", "react_1", "api_1", "usePromise_1", "useAI", "prompt", "options", "creativity", "stream", "model", "usePromiseOptions", "data", "setData", "abortable", "isLoading", "error", "revalidate", "shouldStream", "x", "require_useFrecencySorting", "__commonJSMin", "exports", "react_1", "useLatest_1", "useCachedState_1", "HALF_LIFE_DAYS", "MS_PER_DAY", "DECAY_RATE_CONSTANT", "VISIT_TYPE_POINTS", "getNewFrecency", "item", "now", "lastVisited", "frecency", "visitAgeInDays", "currentVisitValue", "totalVisitValue", "defaultKey", "useFrecencySorting", "data", "options", "keyRef", "sortUnvisitedRef", "storedFrecencies", "setStoredFrecencies", "visitItem", "itemKey", "newFrecency", "resetRanking", "newFrencencies", "a", "b", "frecencyA", "frecencyB", "require_color", "__commonJSMin", "exports", "hexToRGB", "hex", "r", "g", "b", "rgbToHex", "rString", "gString", "bString", "rgbToHSL", "cmin", "cmax", "delta", "h", "s", "l", "hslToRGB", "c", "x", "m", "hexToHSL", "hslToHex", "hsl", "clamp", "value", "min", "max", "offset", "slightlyDarkerColor", "slightlyLighterColor", "require_avatar", "__commonJSMin", "exports", "color_1", "getWholeCharAndI", "str", "i", "code", "next", "prev", "avatarColorSet", "getAvatarIcon", "name", "options", "words", "initials", "firstWordFirstLetter", "lastWordFirstLetter", "backgroundColor", "initialsCharIndex", "char", "colorIndex", "radius", "require_favicon", "__commonJSMin", "exports", "api_1", "url_1", "getFavicon", "url", "options", "hostname", "e", "require_progress", "__commonJSMin", "exports", "api_1", "polarToCartesian", "centerX", "centerY", "radius", "angleInDegrees", "angleInRadians", "describeArc", "x", "y", "startAngle", "endAngle", "start", "end", "largeArcFlag", "getProgressIcon", "progress", "color", "options", "background", "backgroundOpacity", "stroke", "require_icon", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "require_run_applescript", "__commonJSMin", "exports", "__importDefault", "mod", "node_child_process_1", "exec_utils_1", "runAppleScript", "script", "optionsOrArgs", "options", "humanReadableOutput", "language", "timeout", "execOptions", "outputArguments", "spawned", "spawnedPromise", "error", "exitCode", "signal", "timedOut", "stdoutResult", "stderrResult", "stdout", "stderr", "require_dist", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "require_symbols", "__commonJSMin", "exports", "module", "require_errors", "__commonJSMin", "exports", "module", "UndiciError", "message", "ConnectTimeoutError", "_ConnectTimeoutError", "HeadersTimeoutError", "_HeadersTimeoutError", "HeadersOverflowError", "_HeadersOverflowError", "BodyTimeoutError", "_BodyTimeoutError", "ResponseStatusCodeError", "_ResponseStatusCodeError", "statusCode", "headers", "body", "InvalidArgumentError", "_InvalidArgumentError", "InvalidReturnValueError", "_InvalidReturnValueError", "RequestAbortedError", "_RequestAbortedError", "InformationalError", "_InformationalError", "RequestContentLengthMismatchError", "_RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "_ResponseContentLengthMismatchError", "ClientDestroyedError", "_ClientDestroyedError", "ClientClosedError", "_ClientClosedError", "SocketError", "_SocketError", "socket", "NotSupportedError", "_NotSupportedError", "BalancedPoolMissingUpstreamError", "HTTPParserError", "_HTTPParserError", "code", "data", "ResponseExceededMaxSizeError", "_ResponseExceededMaxSizeError", "require_util", "__commonJSMin", "exports", "module", "assert", "kDestroyed", "kBodyUsed", "IncomingMessage", "stream", "net", "InvalidArgumentError", "Blob", "nodeUtil", "stringify", "nodeMajor", "nodeMinor", "v", "nop", "isStream", "obj", "isBlobLike", "object", "buildURL", "url", "queryParams", "stringified", "parseURL", "port", "origin", "path", "parseOrigin", "getHostname", "host", "idx", "getServerName", "servername", "deepClone", "isAsyncIterable", "isIterable", "bodyLength", "body", "state", "isBuffer", "isDestroyed", "isReadableAborted", "destroy", "err", "KEEPALIVE_TIMEOUT_EXPR", "parseKeepAliveTimeout", "val", "m", "parseHeaders", "headers", "i", "key", "parseRawHeaders", "ret", "hasContentLength", "contentDispositionIdx", "n", "buffer", "validateHandler", "handler", "method", "upgrade", "isDisturbed", "isErrored", "isReadable", "getSocketInfo", "socket", "ReadableStream", "ReadableStreamFrom", "iterable", "iterator", "controller", "done", "value", "buf", "reason", "isFormDataLike", "throwIfAborted", "signal", "events", "addAbortListener", "listener", "hasToWellFormed", "toUSVString", "kEnumerableProperty", "require_timers", "__commonJSMin", "exports", "module", "fastNow", "fastNowTimeout", "fastTimers", "onTimeout", "len", "idx", "timer", "refreshTimeout", "Timeout", "callback", "delay", "opaque", "timeout", "require_utils", "__commonJSMin", "exports", "module", "parseContentType", "str", "params", "i", "code", "TOKEN", "type", "subtypeStart", "parseContentTypeParams", "subtype", "name", "nameStart", "value", "valueStart", "escaping", "QDTEXT", "parseDisposition", "defDecoder", "parseDispositionParams", "charset", "charsetStart", "CHARSET", "encode", "EXTENDED_VALUE", "hexUpper", "hexLower", "HEX_VALUES", "byteVal", "convertToUTF8", "getDecoder", "lc", "decoders", "data", "hint", "decode", "basename", "path", "require_sbmh", "__commonJSMin", "exports", "module", "memcmp", "buf1", "pos1", "buf2", "pos2", "num", "SBMH", "needle", "cb", "needleLen", "i", "chunk", "pos", "result", "chunkLen", "feed", "lbSize", "self", "data", "len", "lastNeedleCharPos", "lastNeedleChar", "end", "occ", "lookbehind", "nextPos", "ch", "matchNeedle", "bytesToCutOff", "firstNeedleChar", "lb", "require_multipart", "__commonJSMin", "exports", "module", "Readable", "Writable", "StreamSearch", "basename", "convertToUTF8", "getDecoder", "parseContentType", "parseDisposition", "BUF_CRLF", "BUF_CR", "BUF_DASH", "noop", "MAX_HEADER_PAIRS", "MAX_HEADER_SIZE", "HPARSER_NAME", "HPARSER_PRE_OWS", "HPARSER_VALUE", "HeaderParser", "cb", "chunk", "pos", "end", "start", "done", "code", "TOKEN", "FIELD_VCHAR", "header", "FileStream", "opts", "owner", "n", "ignoreData", "callAndUnsetCb", "self", "err", "nullDecoder", "val", "hint", "Multipart", "cfg", "streamOpts", "boundary", "paramDecoder", "defCharset", "preservePath", "fileOpts", "limits", "fieldSizeLimit", "fileSizeLimit", "filesLimit", "fieldsLimit", "partsLimit", "parts", "fields", "files", "skipPart", "fileSize", "field", "fieldSize", "partCharset", "partEncoding", "partType", "partName", "partTruncated", "hitFilesLimit", "hitFieldsLimit", "hparser", "filename", "disp", "conType", "matchPostBoundary", "ssCb", "isMatch", "data", "isDataSafe", "retrydata", "ret", "writecb", "actualLen", "enc", "checkEndState", "fileStream", "finalcb", "require_urlencoded", "__commonJSMin", "exports", "module", "Writable", "getDecoder", "URLEncoded", "cfg", "streamOpts", "charset", "limits", "conType", "chunk", "enc", "cb", "i", "len", "readPctEnc", "main", "skipKeyBytes", "skipValBytes", "self", "pos", "hexUpper", "HEX_VALUES", "hexLower", "code", "require_lib", "__commonJSMin", "exports", "module", "parseContentType", "getInstance", "cfg", "headers", "conType", "type", "TYPES", "instanceCfg", "typemod", "require_constants", "__commonJSMin", "exports", "module", "MessageChannel", "receiveMessageOnPort", "corsSafeListedMethods", "nullBodyStatus", "redirectStatus", "badPorts", "referrerPolicy", "requestRedirect", "safeMethods", "requestMode", "requestCredentials", "requestCache", "requestBodyHeader", "requestDuplex", "forbiddenMethods", "subresource", "DOMException", "err", "channel", "structuredClone", "value", "options", "require_global", "__commonJSMin", "exports", "module", "globalOrigin", "getGlobalOrigin", "setGlobalOrigin", "newOrigin", "parsedURL", "require_util", "__commonJSMin", "exports", "module", "redirectStatus", "badPorts", "referrerPolicyTokens", "getGlobalOrigin", "performance", "isBlobLike", "toUSVString", "ReadableStreamFrom", "assert", "isUint8Array", "crypto", "responseURL", "response", "urlList", "length", "responseLocationURL", "requestFragment", "location", "isValidHeaderValue", "requestCurrentURL", "request", "requestBadPort", "url", "urlIsHttpHttpsScheme", "isErrorLike", "object", "isValidReasonPhrase", "statusText", "i", "c", "isTokenChar", "isValidHTTPToken", "characters", "isValidHeaderName", "potentialValue", "setRequestReferrerPolicyOnRedirect", "actualResponse", "headersList", "policyHeader", "policy", "token", "crossOriginResourcePolicyCheck", "corsCheck", "TAOCheck", "appendFetchMetadata", "httpRequest", "header", "appendRequestOriginHeader", "serializedOrigin", "urlHasHttpsScheme", "sameOrigin", "coarsenedSharedCurrentTime", "crossOriginIsolatedCapability", "createOpaqueTimingInfo", "timingInfo", "makePolicyContainer", "clonePolicyContainer", "policyContainer", "determineRequestsReferrer", "referrerSource", "globalOrigin", "referrerURL", "stripURLForReferrer", "referrerOrigin", "areSameOrigin", "isNonPotentiallyTrustWorthy", "isURLPotentiallyTrustworthy", "currentURL", "originOnly", "isOriginPotentiallyTrustworthy", "origin", "originAsURL", "bytesMatch", "bytes", "metadataList", "parsedMetadata", "parseMetadata", "list", "d", "strongest", "metadata", "item", "algorithm", "expectedValue", "parseHashWithOptions", "result", "empty", "supportedHashes", "parsedToken", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "A", "B", "createDeferredPromise", "res", "rej", "resolve", "reject", "isAborted", "fetchParams", "isCancelled", "normalizeMethod", "method", "serializeJavascriptValueToJSONString", "value", "esIteratorPrototype", "makeIterator", "iterator", "name", "kind", "index", "target", "values", "len", "pair", "iteratorResult", "fullyReadBody", "body", "processBody", "processBodyError", "successSteps", "errorSteps", "error", "reader", "e", "readAllBytes", "ReadableStream", "isReadableStreamLike", "stream", "MAXIMUM_ARGUMENT_LENGTH", "isomorphicDecode", "input", "previous", "current", "readableStreamClose", "controller", "err", "isomorphicEncode", "failureSteps", "byteLength", "done", "chunk", "urlIsLocal", "protocol", "hasOwn", "dict", "key", "require_symbols", "__commonJSMin", "exports", "module", "require_webidl", "__commonJSMin", "exports", "module", "types", "hasOwn", "toUSVString", "webidl", "message", "context", "plural", "V", "I", "opts", "length", "min", "ctx", "bitLength", "signedness", "upperBound", "lowerBound", "x", "n", "r", "converter", "method", "seq", "done", "value", "keyConverter", "valueConverter", "O", "result", "keys", "key", "typedKey", "typedValue", "i", "converters", "dictionary", "type", "dict", "options", "defaultValue", "required", "hasDefault", "index", "charCode", "T", "require_dataURL", "__commonJSMin", "exports", "module", "assert", "atob", "isomorphicDecode", "encoder", "HTTP_TOKEN_CODEPOINTS", "HTTP_WHITESPACE_REGEX", "HTTP_QUOTED_STRING_TOKENS", "dataURLProcessor", "dataURL", "input", "URLSerializer", "position", "mimeType", "collectASequenceOfCodePointsFast", "mimeTypeLength", "removeASCIIWhitespace", "encodedBody", "body", "stringPercentDecode", "stringBody", "forgivingBase64", "mimeTypeRecord", "parseMIMEType", "url", "excludeFragment", "href", "hash", "collectASequenceOfCodePoints", "condition", "result", "char", "idx", "start", "bytes", "percentDecode", "output", "i", "byte", "nextTwoBytes", "bytePoint", "removeHTTPWhitespace", "type", "subtype", "typeLowercase", "subtypeLowercase", "parameterName", "parameterValue", "collectAnHTTPQuotedString", "data", "binary", "extractValue", "positionStart", "value", "quoteOrBackslash", "serializeAMimeType", "parameters", "essence", "serialization", "name", "isHTTPWhiteSpace", "str", "leading", "trailing", "lead", "trail", "isASCIIWhitespace", "require_file", "__commonJSMin", "exports", "module", "Blob", "NativeFile", "types", "kState", "isBlobLike", "webidl", "parseMIMEType", "serializeAMimeType", "kEnumerableProperty", "File", "_File", "fileBits", "fileName", "options", "n", "t", "d", "substep", "processBlobParts", "FileLike", "_FileLike", "blobLike", "args", "V", "opts", "value", "parts", "bytes", "element", "s", "convertLineEndingsNative", "nativeLineEnding", "isFileLike", "object", "require_formdata", "__commonJSMin", "exports", "module", "isBlobLike", "toUSVString", "makeIterator", "kState", "UndiciFile", "FileLike", "isFileLike", "webidl", "Blob", "NativeFile", "File", "FormData", "_FormData", "form", "name", "value", "filename", "entry", "makeEntry", "idx", "pair", "callbackFn", "thisArg", "key", "options", "require_body", "__commonJSMin", "exports", "module", "Busboy", "util", "ReadableStreamFrom", "isBlobLike", "isReadableStreamLike", "readableStreamClose", "createDeferredPromise", "fullyReadBody", "FormData", "kState", "webidl", "DOMException", "structuredClone", "Blob", "NativeFile", "kBodyUsed", "assert", "isErrored", "isUint8Array", "isArrayBuffer", "UndiciFile", "parseMIMEType", "serializeAMimeType", "ReadableStream", "File", "extractBody", "object", "keepalive", "stream", "controller", "source", "action", "length", "type", "boundary", "prefix", "escape", "str", "normalizeLinefeeds", "value", "enc", "blobParts", "rn", "hasUnknownSizeValue", "name", "chunk", "part", "iterator", "done", "reason", "safelyExtractBody", "cloneBody", "body", "out1", "out2", "out2Clone", "finalClone", "consumeBody", "throwIfAborted", "state", "bodyMixinMethods", "instance", "specConsumeBody", "bytes", "mimeType", "bodyMimeType", "utf8DecodeBytes", "parseJSONFromBytes", "contentType", "headers", "key", "responseFormData", "busboy", "err", "info", "filename", "encoding", "chunks", "base64chunk", "end", "busboyResolve", "resolve", "reject", "entries", "text", "textDecoder", "formData", "mixinBody", "prototype", "convertBytesToJSValue", "bodyUnusable", "promise", "errorSteps", "error", "successSteps", "data", "e", "buffer", "headersList", "require_request", "__commonJSMin", "exports", "module", "InvalidArgumentError", "NotSupportedError", "assert", "util", "tokenRegExp", "headerCharRegex", "invalidPathRegex", "kHandler", "channels", "extractBody", "diagnosticsChannel", "Request", "origin", "path", "method", "body", "headers", "query", "idempotent", "blocking", "upgrade", "headersTimeout", "bodyTimeout", "reset", "throwOnError", "handler", "i", "processHeader", "keys", "key", "bodyStream", "contentType", "chunk", "err", "abort", "statusCode", "resume", "statusText", "socket", "trailers", "error", "value", "processHeaderValue", "val", "request", "require_dispatcher", "__commonJSMin", "exports", "module", "EventEmitter", "Dispatcher", "require_dispatcher_base", "__commonJSMin", "exports", "module", "Dispatcher", "ClientDestroyedError", "ClientClosedError", "InvalidArgumentError", "kDestroy", "kClose", "kDispatch", "kInterceptors", "kDestroyed", "kClosed", "kOnDestroyed", "kOnClosed", "kInterceptedDispatch", "DispatcherBase", "newInterceptors", "i", "callback", "resolve", "reject", "err", "data", "onClosed", "callbacks", "onDestroyed", "opts", "handler", "dispatch", "require_connect", "__commonJSMin", "exports", "module", "net", "assert", "util", "InvalidArgumentError", "ConnectTimeoutError", "tls", "SessionCache", "maxCachedSessions", "key", "ref", "sessionKey", "session", "oldestKey", "buildConnector", "socketPath", "timeout", "opts", "options", "sessionCache", "hostname", "host", "protocol", "port", "servername", "localAddress", "httpSocket", "callback", "socket", "keepAliveInitialDelay", "cancelTimeout", "setupTimeout", "onConnectTimeout", "cb", "err", "s1", "s2", "timeoutId", "enumToMap", "obj", "res", "key", "value", "exports", "utils_1", "ERROR", "exports", "TYPE", "FLAGS", "LENIENT_FLAGS", "METHODS", "key", "FINISH", "i", "c", "HEADER_STATE", "require_RedirectHandler", "__commonJSMin", "exports", "module", "util", "kBodyUsed", "assert", "InvalidArgumentError", "EE", "redirectableStatusCodes", "kBody", "BodyAsyncIterable", "body", "RedirectHandler", "dispatch", "maxRedirections", "opts", "handler", "abort", "statusCode", "headers", "socket", "error", "resume", "statusText", "parseLocation", "origin", "pathname", "search", "path", "cleanRequestHeaders", "chunk", "trailers", "i", "shouldRemoveHeader", "header", "removeContent", "unknownOrigin", "ret", "key", "require_redirectInterceptor", "__commonJSMin", "exports", "module", "RedirectHandler", "createRedirectInterceptor", "defaultMaxRedirections", "dispatch", "opts", "handler", "maxRedirections", "redirectHandler", "require_llhttp_wasm", "__commonJSMin", "exports", "module", "require_llhttp_simd_wasm", "__commonJSMin", "exports", "module", "require_client", "__commonJSMin", "exports", "module", "assert", "net", "util", "timers", "Request", "DispatcherBase", "RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "InvalidArgumentError", "RequestAbortedError", "HeadersTimeoutError", "HeadersOverflowError", "SocketError", "InformationalError", "BodyTimeoutError", "HTTPParserError", "ResponseExceededMaxSizeError", "ClientDestroyedError", "buildConnector", "kUrl", "kReset", "kServerName", "kClient", "kBusy", "kParser", "kConnect", "kBlocking", "kResuming", "kRunning", "kPending", "kSize", "kWriting", "kQueue", "kConnected", "kConnecting", "kNeedDrain", "kNoRef", "kKeepAliveDefaultTimeout", "kHostHeader", "kPendingIdx", "kRunningIdx", "kError", "kPipelining", "kSocket", "kKeepAliveTimeoutValue", "kMaxHeadersSize", "kKeepAliveMaxTimeout", "kKeepAliveTimeoutThreshold", "kHeadersTimeout", "kBodyTimeout", "kStrictContentLength", "kConnector", "kMaxRedirections", "kMaxRequests", "kCounter", "kClose", "kDestroy", "kDispatch", "kInterceptors", "kLocalAddress", "kMaxResponseSize", "FastBuffer", "kClosedResolve", "channels", "diagnosticsChannel", "Client", "url", "interceptors", "maxHeaderSize", "headersTimeout", "socketTimeout", "requestTimeout", "connectTimeout", "bodyTimeout", "idleTimeout", "keepAlive", "keepAliveTimeout", "maxKeepAliveTimeout", "keepAliveMaxTimeout", "keepAliveTimeoutThreshold", "socketPath", "pipelining", "tls", "strictContentLength", "maxCachedSessions", "maxRedirections", "connect", "maxRequestsPerClient", "localAddress", "maxResponseSize", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "createRedirectInterceptor", "value", "resume", "socket", "cb", "opts", "handler", "origin", "request", "resolve", "err", "requests", "errorRequest", "callback", "constants", "EMPTY_BUF", "lazyllhttp", "llhttpWasmData", "mod", "p", "at", "len", "currentParser", "start", "currentBufferPtr", "currentBufferRef", "statusCode", "upgrade", "shouldKeepAlive", "llhttpInstance", "llhttpPromise", "currentBufferSize", "TIMEOUT_HEADERS", "TIMEOUT_BODY", "TIMEOUT_IDLE", "Parser", "client", "type", "onParserTimeout", "chunk", "data", "llhttp", "ret", "offset", "ptr", "message", "buf", "key", "head", "headers", "onSocketError", "onSocketReadable", "onSocketEnd", "onSocketClose", "statusText", "timeout", "pause", "contentLength", "bytesRead", "parser", "timeoutType", "onError", "i", "host", "hostname", "protocol", "port", "idx", "ip", "reject", "emitDrain", "sync", "_resume", "write", "body", "method", "path", "blocking", "reset", "expectsPayload", "header", "writeIterable", "writeBlob", "writeStream", "finished", "writer", "AsyncWriter", "onData", "onDrain", "onAbort", "onFinished", "er", "buffer", "waitForDrain", "bytesWritten", "require_fixed_queue", "__commonJSMin", "exports", "module", "FixedCircularBuffer", "data", "nextItem", "tail", "next", "require_pool_stats", "__commonJSMin", "exports", "module", "kFree", "kConnected", "kPending", "kQueued", "kRunning", "kSize", "kPool", "PoolStats", "pool", "require_pool_base", "__commonJSMin", "exports", "module", "DispatcherBase", "FixedQueue", "kConnected", "kSize", "kRunning", "kPending", "kQueued", "kBusy", "kFree", "kUrl", "kClose", "kDestroy", "kDispatch", "PoolStats", "kClients", "kNeedDrain", "kQueue", "kClosedResolve", "kOnDrain", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kGetDispatcher", "kAddClient", "kRemoveClient", "kStats", "PoolBase", "pool", "origin", "targets", "queue", "needDrain", "item", "c", "err", "client", "ret", "pending", "running", "size", "resolve", "opts", "handler", "dispatcher", "idx", "require_pool", "__commonJSMin", "exports", "module", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kGetDispatcher", "Client", "InvalidArgumentError", "util", "kUrl", "kInterceptors", "buildConnector", "kOptions", "kConnections", "kFactory", "defaultFactory", "origin", "opts", "Pool", "connections", "factory", "connect", "connectTimeout", "tls", "maxCachedSessions", "socketPath", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "options", "dispatcher", "require_balanced_pool", "__commonJSMin", "exports", "module", "BalancedPoolMissingUpstreamError", "InvalidArgumentError", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kRemoveClient", "kGetDispatcher", "Pool", "kUrl", "kInterceptors", "parseOrigin", "kFactory", "kOptions", "kGreatestCommonDivisor", "kCurrentWeight", "kIndex", "kWeight", "kMaxWeightPerServer", "kErrorPenalty", "getGreatestCommonDivisor", "a", "b", "defaultFactory", "origin", "opts", "BalancedPool", "upstreams", "factory", "upstream", "upstreamOrigin", "pool", "args", "err", "client", "p", "dispatcher", "counter", "maxWeightIndex", "require_dispatcher_weakref", "__commonJSMin", "exports", "module", "kConnected", "kSize", "CompatWeakRef", "value", "CompatFinalizer", "finalizer", "dispatcher", "key", "require_agent", "__commonJSMin", "exports", "module", "InvalidArgumentError", "kClients", "kRunning", "kClose", "kDestroy", "kDispatch", "kInterceptors", "DispatcherBase", "Pool", "Client", "util", "createRedirectInterceptor", "WeakRef", "FinalizationRegistry", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kMaxRedirections", "kOnDrain", "kFactory", "kFinalizer", "kOptions", "defaultFactory", "origin", "opts", "Agent", "factory", "maxRedirections", "connect", "options", "key", "ref", "agent", "targets", "err", "ret", "client", "handler", "dispatcher", "closePromises", "destroyPromises", "require_readable", "__commonJSMin", "exports", "module", "assert", "Readable", "RequestAbortedError", "NotSupportedError", "InvalidArgumentError", "util", "ReadableStreamFrom", "toUSVString", "Blob", "kConsume", "kReading", "kBody", "kAbort", "kContentType", "resume", "abort", "contentType", "highWaterMark", "err", "ev", "args", "ret", "chunk", "consumePush", "consume", "opts", "limit", "signal", "abortFn", "signalListenerCleanup", "isLocked", "self", "isUnusable", "stream", "type", "resolve", "reject", "consumeFinish", "consumeStart", "state", "consumeEnd", "body", "length", "dst", "pos", "buf", "require_util", "__commonJSMin", "exports", "module", "assert", "ResponseStatusCodeError", "toUSVString", "getResolveErrorBodyCallback", "callback", "body", "contentType", "statusCode", "statusMessage", "headers", "chunks", "limit", "chunk", "payload", "require_abort_signal", "__commonJSMin", "exports", "module", "addAbortListener", "RequestAbortedError", "kListener", "kSignal", "abort", "self", "addSignal", "signal", "removeSignal", "require_api_request", "__commonJSMin", "exports", "module", "Readable", "InvalidArgumentError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "RequestHandler", "opts", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "highWaterMark", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "contentType", "chunk", "res", "trailers", "request", "resolve", "reject", "data", "require_api_stream", "__commonJSMin", "exports", "module", "finished", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "StreamHandler", "opts", "factory", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "res", "contentType", "trailers", "chunk", "stream", "resolve", "reject", "data", "require_api_pipeline", "__commonJSMin", "exports", "module", "Readable", "Duplex", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "AsyncResource", "addSignal", "removeSignal", "assert", "kResume", "PipelineRequest", "resume", "err", "callback", "PipelineResponse", "PipelineHandler", "opts", "handler", "signal", "method", "opaque", "onInfo", "responseHeaders", "body", "chunk", "encoding", "req", "res", "ret", "abort", "context", "statusCode", "rawHeaders", "headers", "trailers", "pipeline", "pipelineHandler", "require_api_upgrade", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "assert", "UpgradeHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "upgrade", "resolve", "reject", "data", "upgradeHandler", "require_api_connect", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "ConnectHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "connect", "resolve", "reject", "data", "connectHandler", "require_api", "__commonJSMin", "exports", "module", "require_mock_errors", "__commonJSMin", "exports", "module", "UndiciError", "MockNotMatchedError", "_MockNotMatchedError", "message", "require_mock_symbols", "__commonJSMin", "exports", "module", "require_mock_utils", "__commonJSMin", "exports", "module", "MockNotMatchedError", "kDispatches", "kMockAgent", "kOriginalDispatch", "kOrigin", "kGetNetConnect", "buildURL", "nop", "STATUS_CODES", "isPromise", "matchValue", "match", "value", "lowerCaseEntries", "headers", "headerName", "headerValue", "getHeaderByName", "key", "i", "buildHeadersFromArray", "clone", "entries", "index", "matchHeaders", "mockDispatch", "matchHeaderName", "matchHeaderValue", "safeUrl", "path", "pathSegments", "qp", "matchKey", "method", "body", "pathMatch", "methodMatch", "bodyMatch", "headersMatch", "getResponseData", "data", "getMockDispatch", "mockDispatches", "basePath", "resolvedPath", "matchedMockDispatches", "consumed", "addMockDispatch", "baseData", "replyData", "newMockDispatch", "deleteMockDispatch", "dispatch", "buildKey", "opts", "query", "generateKeyValues", "keyValuePairs", "x", "getStatusText", "statusCode", "getResponse", "buffers", "handler", "trailers", "error", "delay", "persist", "timesInvoked", "times", "handleReply", "_data", "optsHeaders", "newData", "responseData", "responseHeaders", "responseTrailers", "resume", "buildMockDispatch", "agent", "origin", "originalDispatch", "netConnect", "checkNetConnect", "url", "matcher", "buildMockOptions", "mockOptions", "require_mock_interceptor", "__commonJSMin", "exports", "module", "getResponseData", "buildKey", "addMockDispatch", "kDispatches", "kDispatchKey", "kDefaultHeaders", "kDefaultTrailers", "kContentLength", "kMockDispatch", "InvalidArgumentError", "buildURL", "MockScope", "mockDispatch", "waitInMs", "repeatTimes", "MockInterceptor", "opts", "mockDispatches", "parsedURL", "statusCode", "data", "responseOptions", "responseData", "contentLength", "headers", "trailers", "replyData", "wrappedDefaultsCallback", "resolvedData", "newMockDispatch", "dispatchData", "error", "require_mock_client", "__commonJSMin", "exports", "module", "promisify", "Client", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockClient", "origin", "opts", "require_mock_pool", "__commonJSMin", "exports", "module", "promisify", "Pool", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockPool", "origin", "opts", "require_pluralizer", "__commonJSMin", "exports", "module", "singulars", "plurals", "singular", "plural", "count", "one", "keys", "noun", "require_pending_interceptors_formatter", "__commonJSMin", "exports", "module", "Transform", "Console", "disableColors", "chunk", "_enc", "cb", "pendingInterceptors", "withPrettyHeaders", "method", "path", "statusCode", "persist", "times", "timesInvoked", "origin", "require_mock_agent", "__commonJSMin", "exports", "module", "kClients", "Agent", "kAgent", "kMockAgentSet", "kMockAgentGet", "kDispatches", "kIsMockActive", "kNetConnect", "kGetNetConnect", "kOptions", "kFactory", "MockClient", "MockPool", "matchValue", "buildMockOptions", "InvalidArgumentError", "UndiciError", "Dispatcher", "Pluralizer", "PendingInterceptorsFormatter", "FakeWeakRef", "value", "MockAgent", "opts", "agent", "origin", "dispatcher", "handler", "matcher", "mockOptions", "ref", "keyMatcher", "nonExplicitRef", "nonExplicitDispatcher", "mockAgentClients", "scope", "dispatch", "pending", "pendingInterceptorsFormatter", "pluralizer", "require_proxy_agent", "__commonJSMin", "exports", "module", "kProxy", "kClose", "kDestroy", "kInterceptors", "URL", "Agent", "Pool", "DispatcherBase", "InvalidArgumentError", "RequestAbortedError", "buildConnector", "kAgent", "kClient", "kProxyHeaders", "kRequestTls", "kProxyTls", "kConnectEndpoint", "defaultProtocolPort", "protocol", "buildProxyOptions", "opts", "defaultFactory", "origin", "ProxyAgent", "clientFactory", "resolvedUrl", "port", "host", "connect", "callback", "requestedHost", "socket", "statusCode", "servername", "err", "handler", "headers", "buildHeaders", "throwIfProxyAuthIsSent", "headersPair", "i", "key", "require_global", "__commonJSMin", "exports", "module", "globalDispatcher", "InvalidArgumentError", "Agent", "getGlobalDispatcher", "setGlobalDispatcher", "agent", "require_DecoratorHandler", "__commonJSMin", "exports", "module", "handler", "args", "require_headers", "__commonJSMin", "exports", "module", "kHeadersList", "kGuard", "kEnumerableProperty", "makeIterator", "isValidHeaderName", "isValidHeaderValue", "webidl", "assert", "kHeadersMap", "kHeadersSortedMap", "headerValueNormalize", "potentialValue", "i", "fill", "headers", "object", "header", "key", "value", "HeadersList", "_HeadersList", "init", "name", "lowercaseName", "exists", "delimiter", "Headers", "_Headers", "list", "names", "a", "b", "cookies", "callbackFn", "thisArg", "V", "require_response", "__commonJSMin", "exports", "module", "Headers", "HeadersList", "fill", "extractBody", "cloneBody", "mixinBody", "util", "kEnumerableProperty", "isValidReasonPhrase", "isCancelled", "isAborted", "isBlobLike", "serializeJavascriptValueToJSONString", "isErrorLike", "isomorphicEncode", "redirectStatus", "nullBodyStatus", "DOMException", "kState", "kHeaders", "kGuard", "kRealm", "webidl", "FormData", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "types", "ReadableStream", "Response", "_Response", "relevantRealm", "responseObject", "makeNetworkError", "data", "init", "bytes", "body", "initializeResponse", "url", "status", "parsedURL", "err", "value", "makeResponse", "bodyWithType", "extractedBody", "type", "urlList", "clonedResponse", "cloneResponse", "clonedResponseObject", "response", "filterResponse", "newResponse", "reason", "isError", "makeFilteredResponse", "state", "target", "p", "makeAppropriateNetworkError", "fetchParams", "V", "require_request", "__commonJSMin", "exports", "module", "extractBody", "mixinBody", "cloneBody", "Headers", "fillHeaders", "HeadersList", "FinalizationRegistry", "util", "isValidHTTPToken", "sameOrigin", "normalizeMethod", "makePolicyContainer", "forbiddenMethods", "corsSafeListedMethods", "referrerPolicy", "requestRedirect", "requestMode", "requestCredentials", "requestCache", "requestDuplex", "kEnumerableProperty", "kHeaders", "kSignal", "kState", "kGuard", "kRealm", "webidl", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "getMaxListeners", "setMaxListeners", "getEventListeners", "defaultMaxListeners", "TransformStream", "kInit", "kAbortController", "requestFinalizer", "signal", "abort", "Request", "_Request", "input", "init", "request", "fallbackMode", "baseUrl", "parsedURL", "err", "makeRequest", "origin", "window", "referrer", "parsedReferrer", "mode", "method", "ac", "acRef", "headers", "key", "val", "inputBody", "initBody", "extractedBody", "contentType", "inputOrInitBody", "finalBody", "identityTransform", "clonedRequest", "cloneRequest", "clonedRequestObject", "newRequest", "V", "require_fetch", "__commonJSMin", "exports", "module", "Response", "makeNetworkError", "makeAppropriateNetworkError", "filterResponse", "makeResponse", "Headers", "Request", "makeRequest", "zlib", "bytesMatch", "makePolicyContainer", "clonePolicyContainer", "requestBadPort", "TAOCheck", "appendRequestOriginHeader", "responseLocationURL", "requestCurrentURL", "setRequestReferrerPolicyOnRedirect", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "createOpaqueTimingInfo", "appendFetchMetadata", "corsCheck", "crossOriginResourcePolicyCheck", "determineRequestsReferrer", "coarsenedSharedCurrentTime", "createDeferredPromise", "isBlobLike", "sameOrigin", "isCancelled", "isAborted", "isErrorLike", "fullyReadBody", "readableStreamClose", "isomorphicEncode", "urlIsLocal", "urlIsHttpHttpsScheme", "urlHasHttpsScheme", "kState", "kHeaders", "kGuard", "kRealm", "assert", "safelyExtractBody", "redirectStatus", "nullBodyStatus", "safeMethods", "requestBodyHeader", "subresource", "DOMException", "kHeadersList", "EE", "Readable", "pipeline", "addAbortListener", "isErrored", "isReadable", "nodeMajor", "nodeMinor", "dataURLProcessor", "serializeAMimeType", "TransformStream", "getGlobalDispatcher", "webidl", "STATUS_CODES", "resolveObjectURL", "ReadableStream", "Fetch", "dispatcher", "reason", "error", "fetch", "input", "init", "p", "requestObject", "e", "request", "abortFetch", "responseObject", "relevantRealm", "locallyAborted", "controller", "fetching", "response", "finalizeAndReportTiming", "initiatorType", "originalURL", "timingInfo", "cacheState", "markResourceTiming", "globalThis", "err", "processRequestBodyChunkLength", "processRequestEndOfBody", "processResponse", "processResponseEndOfBody", "processResponseConsumeBody", "useParallelQueue", "taskDestination", "crossOriginIsolatedCapability", "currenTime", "fetchParams", "mainFetch", "recursive", "currentURL", "schemeFetch", "httpFetch", "internalResponse", "processBodyError", "fetchFinale", "processBody", "bytes", "scheme", "blobURLEntry", "blobURLEntryObject", "bodyWithType", "body", "length", "type", "dataURLStruct", "mimeType", "finalizeResponse", "identityTransformAlgorithm", "chunk", "transformStream", "nullOrBytes", "failure", "actualResponse", "httpNetworkOrCacheFetch", "httpRedirectFetch", "locationURL", "headerName", "isAuthenticationFetch", "isNewConnectionFetch", "httpFetchParams", "httpRequest", "httpCache", "revalidatingFlag", "includeCredentials", "contentLength", "contentLengthHeaderValue", "forwardResponse", "httpNetworkFetch", "forceNewConnection", "newConnection", "requestBody", "processBodyChunk", "processEndOfBody", "status", "statusText", "headersList", "socket", "dispatch", "iterator", "pullAlgorithm", "cancelAlgorithm", "stream", "onAborted", "isFailure", "done", "value", "url", "agent", "resolve", "reject", "abort", "connection", "resume", "codings", "location", "headers", "n", "key", "val", "x", "decoders", "willFollow", "coding", "require_symbols", "__commonJSMin", "exports", "module", "require_progressevent", "__commonJSMin", "exports", "module", "webidl", "kState", "ProgressEvent", "_ProgressEvent", "type", "eventInitDict", "require_encoding", "__commonJSMin", "exports", "module", "getEncoding", "label", "require_util", "__commonJSMin", "exports", "module", "kState", "kError", "kResult", "kAborted", "kLastProgressEventFired", "ProgressEvent", "getEncoding", "DOMException", "serializeAMimeType", "parseMIMEType", "types", "StringDecoder", "btoa", "staticPropertyDescriptors", "readOperation", "fr", "blob", "type", "encodingName", "reader", "bytes", "chunkPromise", "isFirstChunk", "done", "value", "fireAProgressEvent", "result", "packageData", "error", "event", "mimeType", "dataURL", "parsed", "decoder", "chunk", "encoding", "decode", "combineByteSequences", "binaryString", "ioQueue", "BOMEncoding", "BOMSniffing", "slice", "sliced", "a", "b", "c", "sequences", "size", "offset", "require_filereader", "__commonJSMin", "exports", "module", "staticPropertyDescriptors", "readOperation", "fireAProgressEvent", "kState", "kError", "kResult", "kEvents", "kAborted", "webidl", "kEnumerableProperty", "FileReader", "_FileReader", "blob", "encoding", "fn", "require_symbols", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "URLSerializer", "isValidHeaderName", "urlEquals", "A", "B", "excludeFragment", "serializedA", "serializedB", "fieldValues", "header", "values", "value", "require_cache", "__commonJSMin", "exports", "module", "kConstruct", "urlEquals", "getFieldValues", "kEnumerableProperty", "isDisturbed", "kHeadersList", "webidl", "Response", "cloneResponse", "Request", "kState", "kHeaders", "kGuard", "kRealm", "fetching", "urlIsHttpHttpsScheme", "createDeferredPromise", "readAllBytes", "assert", "getGlobalDispatcher", "Cache", "_Cache", "#relevantRequestResponseList", "request", "options", "p", "r", "responses", "requestResponse", "requestResponses", "#queryCache", "responseList", "response", "responseObject", "body", "requests", "responsePromises", "requestList", "fetchControllers", "responsePromise", "fieldValues", "fieldValue", "controller", "operations", "index", "operation", "cacheJobPromise", "errorData", "#batchCacheOperations", "e", "innerRequest", "innerResponse", "clonedResponse", "bodyReadPromise", "reader", "bytes", "error", "promise", "requestObject", "cache", "backupCache", "addedItems", "resultList", "idx", "requestQuery", "targetStorage", "storage", "cachedRequest", "cachedResponse", "#requestMatchesCachedItem", "queryURL", "cachedURL", "requestValue", "queryValue", "cacheQueryOptionConverters", "require_cachestorage", "__commonJSMin", "exports", "module", "kConstruct", "Cache", "webidl", "kEnumerableProperty", "CacheStorage", "_CacheStorage", "#caches", "request", "options", "cacheList", "response", "cacheName", "cache", "require_constants", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "kHeadersList", "isCTLExcludingHtab", "value", "char", "code", "validateCookieName", "name", "validateCookieValue", "validateCookiePath", "path", "validateCookieDomain", "domain", "toIMFDate", "date", "days", "months", "dayName", "day", "month", "year", "hour", "minute", "second", "validateCookieMaxAge", "maxAge", "stringify", "cookie", "out", "part", "key", "kHeadersListNode", "getHeadersList", "headers", "symbol", "headersList", "require_parse", "__commonJSMin", "exports", "module", "maxNameValuePairSize", "maxAttributeValueSize", "isCTLExcludingHtab", "collectASequenceOfCodePointsFast", "assert", "parseSetCookie", "header", "nameValuePair", "unparsedAttributes", "name", "value", "position", "parseUnparsedAttributes", "cookieAttributeList", "cookieAv", "attributeName", "attributeValue", "attributeNameLowercase", "expiryTime", "charCode", "deltaSeconds", "cookieDomain", "cookiePath", "enforcement", "attributeValueLowercase", "require_cookies", "__commonJSMin", "exports", "module", "parseSetCookie", "stringify", "getHeadersList", "webidl", "Headers", "getCookies", "headers", "cookie", "out", "piece", "name", "value", "deleteCookie", "attributes", "setCookie", "getSetCookies", "cookies", "pair", "require_constants", "__commonJSMin", "exports", "module", "uid", "staticPropertyDescriptors", "states", "opcodes", "maxUnsigned16Bit", "parserStates", "emptyBuffer", "require_symbols", "__commonJSMin", "exports", "module", "require_events", "__commonJSMin", "exports", "module", "webidl", "kEnumerableProperty", "MessagePort", "MessageEvent", "_MessageEvent", "#eventInit", "type", "eventInitDict", "bubbles", "cancelable", "data", "origin", "lastEventId", "source", "ports", "CloseEvent", "_CloseEvent", "ErrorEvent", "_ErrorEvent", "eventInit", "require_util", "__commonJSMin", "exports", "module", "kReadyState", "kController", "kResponse", "kBinaryType", "kWebSocketURL", "states", "opcodes", "MessageEvent", "ErrorEvent", "isEstablished", "ws", "isClosing", "isClosed", "fireEvent", "target", "eventConstructor", "eventInitDict", "event", "websocketMessageReceived", "type", "data", "dataForEvent", "failWebsocketConnection", "isValidSubprotocol", "protocol", "char", "code", "isValidStatusCode", "reason", "controller", "response", "require_connection", "__commonJSMin", "exports", "module", "randomBytes", "createHash", "diagnosticsChannel", "uid", "states", "kReadyState", "kSentClose", "kByteParser", "kReceivedClose", "fireEvent", "failWebsocketConnection", "CloseEvent", "makeRequest", "fetching", "Headers", "getGlobalDispatcher", "kHeadersList", "channels", "establishWebSocketConnection", "url", "protocols", "ws", "onEstablish", "options", "requestURL", "request", "headersList", "keyValue", "protocol", "permessageDeflate", "response", "secWSAccept", "digest", "secExtension", "secProtocol", "onSocketData", "onSocketClose", "onSocketError", "chunk", "wasClean", "code", "reason", "result", "error", "require_frame", "__commonJSMin", "exports", "module", "randomBytes", "maxUnsigned16Bit", "WebsocketFrameSend", "data", "opcode", "bodyLength", "payloadLength", "offset", "buffer", "i", "require_receiver", "__commonJSMin", "exports", "module", "Writable", "diagnosticsChannel", "parserStates", "opcodes", "states", "emptyBuffer", "kReadyState", "kSentClose", "kResponse", "kReceivedClose", "isValidStatusCode", "failWebsocketConnection", "websocketMessageReceived", "WebsocketFrameSend", "channels", "ByteParser", "#buffers", "#byteOffset", "#state", "#info", "#fragments", "ws", "chunk", "_", "callback", "buffer", "payloadLength", "body", "closeFrame", "err", "frame", "upper", "lower", "fullMessage", "n", "offset", "next", "length", "onlyCode", "data", "code", "reason", "require_websocket", "__commonJSMin", "exports", "module", "webidl", "DOMException", "URLSerializer", "staticPropertyDescriptors", "states", "opcodes", "emptyBuffer", "kWebSocketURL", "kReadyState", "kController", "kBinaryType", "kResponse", "kSentClose", "kByteParser", "isEstablished", "isClosing", "isValidSubprotocol", "failWebsocketConnection", "fireEvent", "establishWebSocketConnection", "WebsocketFrameSend", "ByteParser", "kEnumerableProperty", "isBlobLike", "getGlobalDispatcher", "types", "experimentalWarned", "WebSocket", "_WebSocket", "#events", "#bufferedAmount", "#protocol", "#extensions", "url", "protocols", "options", "urlRecord", "e", "p", "response", "#onConnectionEstablished", "code", "reason", "reasonByteLength", "frame", "err", "data", "socket", "value", "buffer", "ab", "fn", "type", "parser", "extensions", "protocol", "V", "require_undici", "__commonJSMin", "exports", "module", "Client", "Dispatcher", "errors", "Pool", "BalancedPool", "Agent", "util", "InvalidArgumentError", "api", "buildConnector", "MockClient", "MockAgent", "MockPool", "mockErrors", "ProxyAgent", "getGlobalDispatcher", "setGlobalDispatcher", "DecoratorHandler", "RedirectHandler", "createRedirectInterceptor", "hasCrypto", "makeDispatcher", "fn", "url", "opts", "handler", "path", "agent", "dispatcher", "fetchImpl", "resource", "err", "setGlobalOrigin", "getGlobalOrigin", "CacheStorage", "kConstruct", "deleteCookie", "getCookies", "getSetCookies", "setCookie", "parseMIMEType", "serializeAMimeType", "WebSocket", "assertInputTypes", "text", "lang", "slow", "host", "exports", "SPACE_REGEX", "DEFAULT_PUNCTUATION_REGEX", "splitLongText", "text", "_a", "_b", "_c", "maxLength", "_d", "splitPunct", "isSpaceOrPunct", "s", "i", "regex", "lastIndexOfSpaceOrPunct", "left", "right", "result", "addResult", "start", "end", "str", "exports", "assertInputTypes_1", "__importDefault", "splitLongText_1", "url_1", "getAudioUrl", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "exports", "getAllAudioUrls", "_f", "splitPunct", "shortText", "require_bind", "__commonJSMin", "exports", "module", "fn", "thisArg", "args", "require_utils", "__commonJSMin", "exports", "module", "bind", "toString", "isArray", "val", "isUndefined", "isBuffer", "isArrayBuffer", "isFormData", "isArrayBufferView", "result", "isString", "isNumber", "isObject", "isPlainObject", "prototype", "isDate", "isFile", "isBlob", "isFunction", "isStream", "isURLSearchParams", "trim", "str", "isStandardBrowserEnv", "forEach", "obj", "fn", "i", "l", "key", "merge", "assignValue", "extend", "a", "b", "thisArg", "stripBOM", "content", "require_buildURL", "__commonJSMin", "exports", "module", "utils", "encode", "val", "url", "params", "paramsSerializer", "serializedParams", "parts", "key", "v", "hashmarkIndex", "require_InterceptorManager", "__commonJSMin", "exports", "module", "utils", "InterceptorManager", "fulfilled", "rejected", "options", "id", "fn", "h", "require_normalizeHeaderName", "__commonJSMin", "exports", "module", "utils", "headers", "normalizedName", "value", "name", "require_enhanceError", "__commonJSMin", "exports", "module", "error", "config", "code", "request", "response", "require_createError", "__commonJSMin", "exports", "module", "enhanceError", "message", "config", "code", "request", "response", "error", "require_settle", "__commonJSMin", "exports", "module", "createError", "resolve", "reject", "response", "validateStatus", "require_cookies", "__commonJSMin", "exports", "module", "utils", "name", "value", "expires", "path", "domain", "secure", "cookie", "match", "require_isAbsoluteURL", "__commonJSMin", "exports", "module", "url", "require_combineURLs", "__commonJSMin", "exports", "module", "baseURL", "relativeURL", "require_buildFullPath", "__commonJSMin", "exports", "module", "isAbsoluteURL", "combineURLs", "baseURL", "requestedURL", "require_parseHeaders", "__commonJSMin", "exports", "module", "utils", "ignoreDuplicateOf", "headers", "parsed", "key", "val", "line", "require_isURLSameOrigin", "__commonJSMin", "exports", "module", "utils", "msie", "urlParsingNode", "originURL", "resolveURL", "url", "href", "requestURL", "parsed", "require_xhr", "__commonJSMin", "exports", "module", "utils", "settle", "cookies", "buildURL", "buildFullPath", "parseHeaders", "isURLSameOrigin", "createError", "config", "resolve", "reject", "requestData", "requestHeaders", "responseType", "request", "username", "password", "fullPath", "onloadend", "responseHeaders", "responseData", "response", "timeoutErrorMessage", "xsrfValue", "val", "key", "cancel", "require_ms", "__commonJSMin", "exports", "module", "s", "m", "h", "d", "w", "y", "val", "options", "type", "parse", "fmtLong", "fmtShort", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "require_common", "__commonJSMin", "exports", "module", "setup", "env", "createDebug", "coerce", "disable", "enable", "enabled", "destroy", "key", "selectColor", "namespace", "hash", "i", "prevTime", "enableOverride", "namespacesCache", "enabledCache", "debug", "args", "self", "curr", "ms", "index", "match", "format", "formatter", "val", "extend", "v", "delimiter", "newDebug", "namespaces", "split", "len", "toNamespace", "name", "regexp", "require_browser", "__commonJSMin", "exports", "module", "formatArgs", "save", "load", "useColors", "localstorage", "warned", "args", "c", "index", "lastC", "match", "namespaces", "r", "formatters", "v", "error", "require_has_flag", "__commonJSMin", "exports", "module", "flag", "argv", "prefix", "position", "terminatorPosition", "require_supports_color", "__commonJSMin", "exports", "module", "os", "tty", "hasFlag", "env", "forceColor", "translateLevel", "level", "supportsColor", "haveStream", "streamIsTTY", "min", "osRelease", "sign", "version", "getSupportLevel", "stream", "require_node", "__commonJSMin", "exports", "module", "tty", "util", "init", "log", "formatArgs", "save", "load", "useColors", "supportsColor", "key", "obj", "prop", "_", "k", "val", "args", "name", "c", "colorCode", "prefix", "getDate", "namespaces", "debug", "keys", "i", "formatters", "v", "str", "require_src", "__commonJSMin", "exports", "module", "require_debug", "__commonJSMin", "exports", "module", "debug", "require_follow_redirects", "__commonJSMin", "exports", "module", "url", "URL", "http", "https", "Writable", "assert", "debug", "useNativeURL", "error", "preservedUrlFields", "events", "eventHandlers", "event", "arg1", "arg2", "arg3", "InvalidUrlError", "createErrorType", "RedirectionError", "TooManyRedirectsError", "MaxBodyLengthExceededError", "WriteAfterEndError", "destroy", "noop", "RedirectableRequest", "options", "responseCallback", "self", "response", "cause", "destroyRequest", "data", "encoding", "callback", "isString", "isBuffer", "isFunction", "currentRequest", "name", "value", "msecs", "destroyOnTimeout", "socket", "startTimer", "clearTimer", "method", "a", "b", "property", "searchPos", "protocol", "nativeProtocol", "scheme", "request", "buffers", "writeNext", "buffer", "statusCode", "location", "requestHeaders", "beforeRedirect", "removeMatchingHeaders", "currentHostHeader", "currentUrlParts", "parseUrl", "currentHost", "currentUrl", "redirectUrl", "resolveUrl", "spreadUrlObject", "isSubdomain", "responseDetails", "requestDetails", "wrap", "protocols", "nativeProtocols", "wrappedProtocol", "input", "isURL", "validateUrl", "get", "wrappedRequest", "parsed", "relative", "base", "urlObject", "target", "spread", "key", "regex", "headers", "lastValue", "header", "code", "message", "baseClass", "CustomError", "properties", "subdomain", "domain", "dot", "require_package", "__commonJSMin", "exports", "module", "require_http", "__commonJSMin", "exports", "module", "utils", "settle", "buildFullPath", "buildURL", "http", "https", "httpFollow", "httpsFollow", "url", "zlib", "pkg", "createError", "enhanceError", "isHttps", "setProxy", "options", "proxy", "location", "base64", "redirection", "config", "resolvePromise", "rejectPromise", "resolve", "value", "reject", "data", "headers", "auth", "username", "password", "fullPath", "parsed", "protocol", "urlAuth", "urlUsername", "urlPassword", "isHttpsRequest", "agent", "proxyEnv", "proxyUrl", "parsedProxyUrl", "noProxyEnv", "shouldProxy", "noProxy", "s", "proxyElement", "proxyUrlAuth", "transport", "isHttpsProxy", "req", "res", "stream", "lastRequest", "response", "responseBuffer", "totalResponseBytes", "chunk", "err", "responseData", "timeout", "cancel", "require_defaults", "__commonJSMin", "exports", "module", "utils", "normalizeHeaderName", "enhanceError", "DEFAULT_CONTENT_TYPE", "setContentTypeIfUnset", "headers", "value", "getDefaultAdapter", "adapter", "stringifySafely", "rawValue", "parser", "encoder", "e", "defaults", "data", "transitional", "silentJSONParsing", "forcedJSONParsing", "strictJSONParsing", "status", "method", "require_transformData", "__commonJSMin", "exports", "module", "utils", "defaults", "data", "headers", "fns", "context", "fn", "require_isCancel", "__commonJSMin", "exports", "module", "value", "require_dispatchRequest", "__commonJSMin", "exports", "module", "utils", "transformData", "isCancel", "defaults", "throwIfCancellationRequested", "config", "method", "adapter", "response", "reason", "require_mergeConfig", "__commonJSMin", "exports", "module", "utils", "config1", "config2", "config", "valueFromConfig2Keys", "mergeDeepPropertiesKeys", "defaultToConfig2Keys", "directMergeKeys", "getMergedValue", "target", "source", "mergeDeepProperties", "prop", "axiosKeys", "otherKeys", "key", "require_validator", "__commonJSMin", "exports", "module", "pkg", "validators", "type", "i", "thing", "deprecatedWarnings", "currentVerArr", "isOlderVersion", "version", "thanVersion", "pkgVersionArr", "destVer", "validator", "message", "isDeprecated", "formatMessage", "opt", "desc", "value", "opts", "assertOptions", "options", "schema", "allowUnknown", "keys", "result", "require_Axios", "__commonJSMin", "exports", "module", "utils", "buildURL", "InterceptorManager", "dispatchRequest", "mergeConfig", "validator", "validators", "Axios", "instanceConfig", "config", "transitional", "requestInterceptorChain", "synchronousRequestInterceptors", "interceptor", "responseInterceptorChain", "promise", "chain", "newConfig", "onFulfilled", "onRejected", "error", "method", "url", "data", "require_Cancel", "__commonJSMin", "exports", "module", "Cancel", "message", "require_CancelToken", "__commonJSMin", "exports", "module", "Cancel", "CancelToken", "executor", "resolvePromise", "resolve", "token", "message", "cancel", "c", "require_spread", "__commonJSMin", "exports", "module", "callback", "arr", "require_isAxiosError", "__commonJSMin", "exports", "module", "payload", "require_axios", "__commonJSMin", "exports", "module", "utils", "bind", "Axios", "mergeConfig", "defaults", "createInstance", "defaultConfig", "context", "instance", "axios", "instanceConfig", "promises", "require_axios", "__commonJSMin", "exports", "module", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "_f", "splitPunct", "_g", "timeout", "shortTextList", "shortText", "base64List", "_h", "result", "i", "base64", "getAudioUrl_1", "exports", "getAudioBase64_1", "http", "__importStar", "https", "toBuffer", "stream", "length", "chunks", "chunk", "exports", "json", "str", "_err", "err", "req", "url", "opts", "promise", "resolve", "reject", "net", "__importStar", "http", "https_1", "__exportStar", "exports", "INTERNAL", "Agent", "opts", "options", "stack", "l", "name", "fakeSocket", "socket", "sockets", "index", "req", "cb", "connectOpts", "err", "v", "debug_1", "__importDefault", "debug", "parseProxyResponse", "socket", "resolve", "reject", "buffersLength", "buffers", "read", "b", "ondata", "cleanup", "onend", "onerror", "err", "buffered", "endOfHeaders", "headerParts", "firstLine", "firstLineParts", "statusCode", "statusText", "headers", "header", "firstColon", "key", "value", "current", "exports", "net", "__importStar", "tls", "assert_1", "__importDefault", "debug_1", "agent_base_1", "url_1", "parse_proxy_response_1", "debug", "setServernameFromNonIpHost", "options", "HttpsProxyAgent", "proxy", "opts", "host", "port", "omit", "req", "socket", "headers", "payload", "auth", "name", "proxyResponsePromise", "connect", "buffered", "resume", "fakeSocket", "s", "exports", "obj", "keys", "ret", "key", "translate_form_exports", "__export", "TranslateForm", "__toCommonJS", "import_react", "import_api", "import_utils", "import_api", "import_utils", "import_react", "import_querystring", "import_undici", "languages", "getISOCode", "language", "key", "isSupported", "import_undici", "zr", "a", "b", "yr", "wr", "c", "window", "d", "e", "f", "g", "l", "h", "xr", "config", "updateTKK", "now", "code", "xt", "tokenGenerator", "text", "tk", "error", "translate", "text", "options", "error", "lang", "isSupported", "getISOCode", "token", "tokenGenerator", "baseUrl", "data", "url", "querystring", "requestOptions", "requestUrl", "body", "result", "obj", "str", "googleTTS", "import_https_proxy_agent", "AUTO_DETECT", "TranslateError", "extractPronounceTextFromRaw", "raw", "simpleTranslate", "text", "options", "translated", "translate", "err", "error", "unifyLegacyLanguageSet", "legacy", "usePreferences", "React", "useTextState", "preferences", "text", "setText", "textRef", "cbText", "err", "useSelectedLanguagesSet", "selectedLanguageSet", "setSelectedLanguageSet", "usePreferencesLanguageSet", "useDebouncedValue", "value", "delay", "debouncedValue", "setDebouncedValue", "handler", "useAllLanguageSets", "languages", "setLanguages", "english", "languages", "autoDetect", "code", "supportedLanguagesByCode", "acc", "lang", "supportedLanguagesByCountry", "import_api", "import_react", "import_api", "import_jsx_runtime", "AddLanguageForm", "onAddLanguage", "targetLanguages", "setTargetLanguages", "React", "values", "filteredTargetLanguages", "lang", "languages", "_", "index", "value", "newTargetLanguages", "AUTO_DETECT", "isSameLanguageSet", "langSet1", "langSet2", "getLanguageSetObjects", "languageSet", "supportedLanguagesByCode", "l", "formatLanguageSet", "langFrom", "langTo", "languageLabels", "import_jsx_runtime", "LanguagesManagerItem", "languageSet", "onSelect", "onDelete", "selected", "langFrom", "langTo", "getLanguageSetObjects", "langsTo", "langsToLabel", "l", "SaveCurrentLanguageSet", "formatLanguageSet", "LanguagesManagerList", "navigation", "preferencesLanguageSet", "usePreferencesLanguageSet", "selectedLanguageSet", "setSelectedLanguageSet", "useSelectedLanguagesSet", "languages", "setLanguages", "useAllLanguageSets", "AddLanguageForm", "langSet", "isSameLanguageSet", "import_api", "import_jsx_runtime", "import_api", "import_jsx_runtime", "ConfigurableCopyPasteActions", "defaultActionsPrefix", "value", "defaultPreference", "pasteAction", "copyAction", "OpenOnGoogleTranslateWebsiteAction", "translationText", "translation", "import_jsx_runtime", "TranslateForm", "selectedLanguageSet", "setSelectedLanguageSet", "useSelectedLanguagesSet", "langFrom", "langTo", "proxy", "usePreferences", "textInputRef", "React", "toLangInputRef", "fromLangInputRef", "setLangFrom", "l", "setLangTo", "fromLangObj", "supportedLanguagesByCode", "english", "toLangObj", "text", "setText", "useTextState", "debouncedValue", "useDebouncedValue", "translated", "isLoading", "simpleTranslate", "error", "handleChange", "value", "autoDetectedLanguage", "AUTO_DETECT", "ConfigurableCopyPasteActions", "OpenOnGoogleTranslateWebsiteAction", "LanguagesManagerList", "v", "languages", "lang"] + "sources": ["../node_modules/dequal/lite/index.js", "../node_modules/@raycast/utils/dist/useDeepMemo.js", "../node_modules/@raycast/utils/dist/useLatest.js", "../node_modules/@raycast/utils/dist/handle-error-toast-action.js", "../node_modules/@raycast/utils/dist/usePromise.js", "../node_modules/@raycast/utils/dist/useCachedState.js", "../node_modules/object-hash/index.js", "../node_modules/@raycast/utils/dist/useCachedPromise.js", "../node_modules/media-typer/index.js", "../node_modules/content-type/index.js", "../node_modules/webidl-conversions/lib/index.js", "../node_modules/whatwg-url/lib/utils.js", "../node_modules/tr46/lib/mappingTable.json", "../node_modules/tr46/index.js", "../node_modules/whatwg-url/lib/url-state-machine.js", "../node_modules/whatwg-url/lib/URL-impl.js", "../node_modules/whatwg-url/lib/URL.js", "../node_modules/whatwg-url/lib/public-api.js", "../node_modules/node-fetch/lib/index.js", "../node_modules/cross-fetch/dist/node-ponyfill.js", "../node_modules/@raycast/utils/dist/useFetch.js", "../node_modules/signal-exit/src/signals.ts", "../node_modules/signal-exit/src/index.ts", "../node_modules/@raycast/utils/dist/exec-utils.js", "../node_modules/@raycast/utils/dist/useExec.js", "../node_modules/@raycast/utils/dist/useSQL.js", "../node_modules/@raycast/utils/dist/useForm.js", "../node_modules/@raycast/utils/dist/useAI.js", "../node_modules/@raycast/utils/dist/useFrecencySorting.js", "../node_modules/@raycast/utils/dist/icon/color.js", "../node_modules/@raycast/utils/dist/icon/avatar.js", "../node_modules/@raycast/utils/dist/icon/favicon.js", "../node_modules/@raycast/utils/dist/icon/progress.js", "../node_modules/@raycast/utils/dist/icon/index.js", "../node_modules/@raycast/utils/dist/run-applescript.js", "../node_modules/@raycast/utils/dist/index.js", "../node_modules/undici/lib/core/symbols.js", "../node_modules/undici/lib/core/errors.js", "../node_modules/undici/lib/core/util.js", "../node_modules/undici/lib/timers.js", "../node_modules/busboy/lib/utils.js", "../node_modules/streamsearch/lib/sbmh.js", "../node_modules/busboy/lib/types/multipart.js", "../node_modules/busboy/lib/types/urlencoded.js", "../node_modules/busboy/lib/index.js", "../node_modules/undici/lib/fetch/constants.js", "../node_modules/undici/lib/fetch/global.js", "../node_modules/undici/lib/fetch/util.js", "../node_modules/undici/lib/fetch/symbols.js", "../node_modules/undici/lib/fetch/webidl.js", "../node_modules/undici/lib/fetch/dataURL.js", "../node_modules/undici/lib/fetch/file.js", "../node_modules/undici/lib/fetch/formdata.js", "../node_modules/undici/lib/fetch/body.js", "../node_modules/undici/lib/core/request.js", "../node_modules/undici/lib/dispatcher.js", "../node_modules/undici/lib/dispatcher-base.js", "../node_modules/undici/lib/core/connect.js", "../node_modules/undici/src/llhttp/utils.ts", "../node_modules/undici/src/llhttp/constants.ts", "../node_modules/undici/lib/handler/RedirectHandler.js", "../node_modules/undici/lib/interceptor/redirectInterceptor.js", "../node_modules/undici/lib/llhttp/llhttp-wasm.js", "../node_modules/undici/lib/llhttp/llhttp_simd-wasm.js", "../node_modules/undici/lib/client.js", "../node_modules/undici/lib/node/fixed-queue.js", "../node_modules/undici/lib/pool-stats.js", "../node_modules/undici/lib/pool-base.js", "../node_modules/undici/lib/pool.js", "../node_modules/undici/lib/balanced-pool.js", "../node_modules/undici/lib/compat/dispatcher-weakref.js", "../node_modules/undici/lib/agent.js", "../node_modules/undici/lib/api/readable.js", "../node_modules/undici/lib/api/util.js", "../node_modules/undici/lib/api/abort-signal.js", "../node_modules/undici/lib/api/api-request.js", "../node_modules/undici/lib/api/api-stream.js", "../node_modules/undici/lib/api/api-pipeline.js", "../node_modules/undici/lib/api/api-upgrade.js", "../node_modules/undici/lib/api/api-connect.js", "../node_modules/undici/lib/api/index.js", "../node_modules/undici/lib/mock/mock-errors.js", "../node_modules/undici/lib/mock/mock-symbols.js", "../node_modules/undici/lib/mock/mock-utils.js", "../node_modules/undici/lib/mock/mock-interceptor.js", "../node_modules/undici/lib/mock/mock-client.js", "../node_modules/undici/lib/mock/mock-pool.js", "../node_modules/undici/lib/mock/pluralizer.js", "../node_modules/undici/lib/mock/pending-interceptors-formatter.js", "../node_modules/undici/lib/mock/mock-agent.js", "../node_modules/undici/lib/proxy-agent.js", "../node_modules/undici/lib/global.js", "../node_modules/undici/lib/handler/DecoratorHandler.js", "../node_modules/undici/lib/fetch/headers.js", "../node_modules/undici/lib/fetch/response.js", "../node_modules/undici/lib/fetch/request.js", "../node_modules/undici/lib/fetch/index.js", "../node_modules/undici/lib/fileapi/symbols.js", "../node_modules/undici/lib/fileapi/progressevent.js", "../node_modules/undici/lib/fileapi/encoding.js", "../node_modules/undici/lib/fileapi/util.js", "../node_modules/undici/lib/fileapi/filereader.js", "../node_modules/undici/lib/cache/symbols.js", "../node_modules/undici/lib/cache/util.js", "../node_modules/undici/lib/cache/cache.js", "../node_modules/undici/lib/cache/cachestorage.js", "../node_modules/undici/lib/cookies/constants.js", "../node_modules/undici/lib/cookies/util.js", "../node_modules/undici/lib/cookies/parse.js", "../node_modules/undici/lib/cookies/index.js", "../node_modules/undici/lib/websocket/constants.js", "../node_modules/undici/lib/websocket/symbols.js", "../node_modules/undici/lib/websocket/events.js", "../node_modules/undici/lib/websocket/util.js", "../node_modules/undici/lib/websocket/connection.js", "../node_modules/undici/lib/websocket/frame.js", "../node_modules/undici/lib/websocket/receiver.js", "../node_modules/undici/lib/websocket/websocket.js", "../node_modules/undici/index.js", "../node_modules/google-tts-api/src/assertInputTypes.ts", "../node_modules/google-tts-api/src/splitLongText.ts", "../node_modules/google-tts-api/src/getAudioUrl.ts", "../node_modules/axios/lib/helpers/bind.js", "../node_modules/axios/lib/utils.js", "../node_modules/axios/lib/helpers/buildURL.js", "../node_modules/axios/lib/core/InterceptorManager.js", "../node_modules/axios/lib/helpers/normalizeHeaderName.js", "../node_modules/axios/lib/core/enhanceError.js", "../node_modules/axios/lib/core/createError.js", "../node_modules/axios/lib/core/settle.js", "../node_modules/axios/lib/helpers/cookies.js", "../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../node_modules/axios/lib/helpers/combineURLs.js", "../node_modules/axios/lib/core/buildFullPath.js", "../node_modules/axios/lib/helpers/parseHeaders.js", "../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../node_modules/axios/lib/adapters/xhr.js", "../node_modules/ms/index.js", "../node_modules/debug/src/common.js", "../node_modules/debug/src/browser.js", "../node_modules/has-flag/index.js", "../node_modules/supports-color/index.js", "../node_modules/debug/src/node.js", "../node_modules/debug/src/index.js", "../node_modules/follow-redirects/debug.js", "../node_modules/follow-redirects/index.js", "../node_modules/axios/package.json", "../node_modules/axios/lib/adapters/http.js", "../node_modules/axios/lib/defaults.js", "../node_modules/axios/lib/core/transformData.js", "../node_modules/axios/lib/cancel/isCancel.js", "../node_modules/axios/lib/core/dispatchRequest.js", "../node_modules/axios/lib/core/mergeConfig.js", "../node_modules/axios/lib/helpers/validator.js", "../node_modules/axios/lib/core/Axios.js", "../node_modules/axios/lib/cancel/Cancel.js", "../node_modules/axios/lib/cancel/CancelToken.js", "../node_modules/axios/lib/helpers/spread.js", "../node_modules/axios/lib/helpers/isAxiosError.js", "../node_modules/axios/lib/axios.js", "../node_modules/axios/index.js", "../node_modules/google-tts-api/src/getAudioBase64.ts", "../node_modules/google-tts-api/src/index.ts", "../src/translate-form.tsx", "../src/hooks.ts", "../vendor/@iamtraction-translate/src/index.ts", "../vendor/@iamtraction-translate/src/languages.ts", "../vendor/@iamtraction-translate/src/tokenGenerator.ts", "../src/simple-translate.ts", "../src/supportedLanguages.json", "../src/supportedLanguagesByCode.json", "../src/languages.ts", "../src/LanguagesManager/LanguagesManagerList.tsx", "../src/LanguagesManager/AddLanguageForm.tsx", "../src/utils.ts", "../src/LanguagesManager/LanguagesManagerListDropdown.tsx", "../src/actions.tsx"], + "sourcesContent": ["var has = Object.prototype.hasOwnProperty;\n\nfunction dequal(foo, bar) {\n\tvar ctor, len;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n\nexports.dequal = dequal;", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useDeepMemo = void 0;\nconst react_1 = require(\"react\");\nconst lite_1 = require(\"dequal/lite\");\n/**\n * @param value the value to be memoized (usually a dependency list)\n * @returns a memoized version of the value as long as it remains deeply equal\n */\nfunction useDeepMemo(value) {\n const ref = (0, react_1.useRef)(value);\n const signalRef = (0, react_1.useRef)(0);\n if (!(0, lite_1.dequal)(value, ref.current)) {\n ref.current = value;\n signalRef.current += 1;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return (0, react_1.useMemo)(() => ref.current, [signalRef.current]);\n}\nexports.useDeepMemo = useDeepMemo;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useLatest = void 0;\nconst react_1 = require(\"react\");\n/**\n * Returns the latest state.\n *\n * This is mostly useful to get access to the latest value of some props or state inside an asynchronous callback, instead of that value at the time the callback was created from.\n */\nfunction useLatest(value) {\n const ref = (0, react_1.useRef)(value);\n ref.current = value;\n return ref;\n}\nexports.useLatest = useLatest;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.handleErrorToastAction = void 0;\nconst fs = __importStar(require(\"fs\"));\nconst path = __importStar(require(\"path\"));\nconst api_1 = require(\"@raycast/api\");\nconst handleErrorToastAction = (error) => {\n let privateExtension = true;\n let title = \"[Extension Name]...\";\n let extensionURL = \"\";\n try {\n const packageJSON = JSON.parse(fs.readFileSync(path.join(api_1.environment.assetsPath, \"..\", \"package.json\"), \"utf8\"));\n title = `[${packageJSON.title}]...`;\n extensionURL = `https://raycast.com/${packageJSON.owner || packageJSON.author}/${packageJSON.name}`;\n if (!packageJSON.owner || packageJSON.access === \"public\") {\n privateExtension = false;\n }\n }\n catch (err) {\n // no-op\n }\n // if it's a private extension, we can't construct the URL to report the error\n // so we fallback to copying the error to the clipboard\n const fallback = api_1.environment.isDevelopment || privateExtension;\n return {\n title: fallback ? \"Copy Logs\" : \"Report Error\",\n onAction(toast) {\n toast.hide();\n if (fallback) {\n api_1.Clipboard.copy(error?.stack || error?.message || \"\");\n }\n else {\n (0, api_1.open)(`https://github.com/raycast/extensions/issues/new?&labels=extension%2Cbug&template=extension_bug_report.yml&title=${encodeURIComponent(title)}&extension-url=${encodeURI(extensionURL)}&description=${encodeURIComponent(`#### Error:\n\\`\\`\\`\n${error?.stack || error?.message || \"\"}\n\\`\\`\\`\n`)}`);\n }\n },\n };\n};\nexports.handleErrorToastAction = handleErrorToastAction;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.usePromise = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst useDeepMemo_1 = require(\"./useDeepMemo\");\nconst useLatest_1 = require(\"./useLatest\");\nconst handle_error_toast_action_1 = require(\"./handle-error-toast-action\");\nfunction usePromise(fn, args, options) {\n const lastCallId = (0, react_1.useRef)(0);\n const [state, set] = (0, react_1.useState)({ isLoading: true });\n const fnRef = (0, useLatest_1.useLatest)(fn);\n const latestAbortable = (0, useLatest_1.useLatest)(options?.abortable);\n const latestArgs = (0, useLatest_1.useLatest)(args || []);\n const latestOnError = (0, useLatest_1.useLatest)(options?.onError);\n const latestOnData = (0, useLatest_1.useLatest)(options?.onData);\n const latestOnWillExecute = (0, useLatest_1.useLatest)(options?.onWillExecute);\n const latestValue = (0, useLatest_1.useLatest)(state.data);\n const latestCallback = (0, react_1.useRef)();\n const callback = (0, react_1.useCallback)((...args) => {\n const callId = ++lastCallId.current;\n if (latestAbortable.current) {\n latestAbortable.current.current?.abort();\n latestAbortable.current.current = new AbortController();\n }\n latestOnWillExecute.current?.(args);\n set((prevState) => ({ ...prevState, isLoading: true }));\n return bindPromiseIfNeeded(fnRef.current)(...args).then((data) => {\n if (callId === lastCallId.current) {\n if (latestOnData.current) {\n latestOnData.current(data);\n }\n set({ data, isLoading: false });\n }\n return data;\n }, (error) => {\n if (error.name == \"AbortError\") {\n return error;\n }\n if (callId === lastCallId.current) {\n // handle errors\n if (latestOnError.current) {\n latestOnError.current(error);\n }\n else {\n console.error(error);\n if (api_1.environment.launchType !== api_1.LaunchType.Background) {\n (0, api_1.showToast)({\n style: api_1.Toast.Style.Failure,\n title: \"Failed to fetch latest data\",\n message: error.message,\n primaryAction: {\n title: \"Retry\",\n onAction(toast) {\n toast.hide();\n latestCallback.current?.(...(latestArgs.current || []));\n },\n },\n secondaryAction: (0, handle_error_toast_action_1.handleErrorToastAction)(error),\n });\n }\n }\n set({ error, isLoading: false });\n }\n return error;\n });\n }, [latestAbortable, latestOnData, latestOnError, latestArgs, fnRef, set, latestCallback, latestOnWillExecute]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n );\n latestCallback.current = callback;\n const revalidate = (0, react_1.useCallback)(() => {\n return callback(...(latestArgs.current || []));\n }, [callback, latestArgs]);\n const mutate = (0, react_1.useCallback)(async (asyncUpdate, options) => {\n let dataBeforeOptimisticUpdate;\n try {\n if (options?.optimisticUpdate) {\n if (typeof options?.rollbackOnError !== \"function\" && options?.rollbackOnError !== false) {\n // keep track of the data before the optimistic update,\n // but only if we need it (eg. only when we want to automatically rollback after)\n dataBeforeOptimisticUpdate = structuredClone(latestValue.current?.value);\n }\n const update = options.optimisticUpdate;\n set((prevState) => ({ ...prevState, data: update(prevState.data) }));\n }\n return await asyncUpdate;\n }\n catch (err) {\n if (typeof options?.rollbackOnError === \"function\") {\n const update = options.rollbackOnError;\n set((prevState) => ({ ...prevState, data: update(prevState.data) }));\n }\n else if (options?.optimisticUpdate && options?.rollbackOnError !== false) {\n set((prevState) => ({ ...prevState, data: dataBeforeOptimisticUpdate }));\n }\n throw err;\n }\n finally {\n if (options?.shouldRevalidateAfter !== false) {\n if (api_1.environment.launchType === api_1.LaunchType.Background || api_1.environment.commandMode === \"menu-bar\") {\n // when in the background or in a menu bar, we are going to await the revalidation\n // to make sure we get the right data at the end of the mutation\n await revalidate();\n }\n else {\n revalidate();\n }\n }\n }\n }, [revalidate, latestValue, set]);\n // revalidate when the args change\n (0, react_1.useEffect)(() => {\n if (options?.execute !== false) {\n callback(...(args || []));\n }\n else {\n // cancel the previous request if we don't want to execute anymore\n if (latestAbortable.current) {\n latestAbortable.current.current?.abort();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(0, useDeepMemo_1.useDeepMemo)([args, options?.execute, callback]), latestAbortable]);\n // abort request when unmounting\n (0, react_1.useEffect)(() => {\n return () => {\n if (latestAbortable.current) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n latestAbortable.current.current?.abort();\n }\n };\n }, [latestAbortable]);\n // we only want to show the loading indicator if the promise is executing\n const isLoading = options?.execute !== false ? state.isLoading : false;\n // @ts-expect-error loading is has some fixed value in the enum which\n const stateWithLoadingFixed = { ...state, isLoading };\n return { ...stateWithLoadingFixed, revalidate, mutate };\n}\nexports.usePromise = usePromise;\n/** Bind the fn if it's a Promise method */\nfunction bindPromiseIfNeeded(fn) {\n if (fn === Promise.all) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.race) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.resolve) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.reject) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n return fn;\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useCachedState = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst useLatest_1 = require(\"./useLatest\");\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction replacer(key, _value) {\n const value = this[key];\n if (value instanceof Date) {\n return `__raycast_cached_date__${value.toString()}`;\n }\n if (Buffer.isBuffer(value)) {\n return `__raycast_cached_buffer__${value.toString(\"base64\")}`;\n }\n return _value;\n}\nfunction reviver(_key, value) {\n if (typeof value === \"string\" && value.startsWith(\"__raycast_cached_date__\")) {\n return new Date(value.replace(\"__raycast_cached_date__\", \"\"));\n }\n if (typeof value === \"string\" && value.startsWith(\"__raycast_cached_buffer__\")) {\n return Buffer.from(value.replace(\"__raycast_cached_buffer__\", \"\"), \"base64\");\n }\n return value;\n}\nconst rootCache = Symbol(\"cache without namespace\");\nconst cacheMap = new Map();\nfunction useCachedState(key, initialState, config) {\n const cacheKey = config?.cacheNamespace || rootCache;\n const cache = cacheMap.get(cacheKey) || cacheMap.set(cacheKey, new api_1.Cache({ namespace: config?.cacheNamespace })).get(cacheKey);\n if (!cache) {\n throw new Error(\"Missing cache\");\n }\n const keyRef = (0, useLatest_1.useLatest)(key);\n const initialValueRef = (0, useLatest_1.useLatest)(initialState);\n const cachedState = (0, react_1.useSyncExternalStore)(cache.subscribe, () => {\n try {\n return cache.get(keyRef.current);\n }\n catch (error) {\n console.error(\"Could not get Cache data:\", error);\n return undefined;\n }\n });\n const state = (0, react_1.useMemo)(() => {\n if (typeof cachedState !== \"undefined\") {\n if (cachedState === \"undefined\") {\n return undefined;\n }\n try {\n return JSON.parse(cachedState, reviver);\n }\n catch (err) {\n // the data got corrupted somehow\n console.warn(\"The cached data is corrupted\", err);\n return initialValueRef.current;\n }\n }\n else {\n return initialValueRef.current;\n }\n }, [cachedState, initialValueRef]);\n const stateRef = (0, useLatest_1.useLatest)(state);\n const setStateAndCache = (0, react_1.useCallback)((updater) => {\n // @ts-expect-error TS struggles to infer the types as T could potentially be a function\n const newValue = typeof updater === \"function\" ? updater(stateRef.current) : updater;\n if (typeof newValue === \"undefined\") {\n cache.set(keyRef.current, \"undefined\");\n }\n else {\n const stringifiedValue = JSON.stringify(newValue, replacer);\n cache.set(keyRef.current, stringifiedValue);\n }\n return newValue;\n }, [cache, keyRef, stateRef]);\n return [state, setStateAndCache];\n}\nexports.useCachedState = useCachedState;\n", "'use strict';\n\nvar crypto = require('crypto');\n\n/**\n * Exported function\n *\n * Options:\n *\n * - `algorithm` hash algo to be used by this instance: *'sha1', 'md5'\n * - `excludeValues` {true|*false} hash object keys, values ignored\n * - `encoding` hash encoding, supports 'buffer', '*hex', 'binary', 'base64'\n * - `ignoreUnknown` {true|*false} ignore unknown object types\n * - `replacer` optional function that replaces values before hashing\n * - `respectFunctionProperties` {*true|false} consider function properties when hashing\n * - `respectFunctionNames` {*true|false} consider 'name' property of functions for hashing\n * - `respectType` {*true|false} Respect special properties (prototype, constructor)\n * when hashing to distinguish between types\n * - `unorderedArrays` {true|*false} Sort all arrays before hashing\n * - `unorderedSets` {*true|false} Sort `Set` and `Map` instances before hashing\n * * = default\n *\n * @param {object} object value to hash\n * @param {object} options hashing options\n * @return {string} hash value\n * @api public\n */\nexports = module.exports = objectHash;\n\nfunction objectHash(object, options){\n options = applyDefaults(object, options);\n\n return hash(object, options);\n}\n\n/**\n * Exported sugar methods\n *\n * @param {object} object value to hash\n * @return {string} hash value\n * @api public\n */\nexports.sha1 = function(object){\n return objectHash(object);\n};\nexports.keys = function(object){\n return objectHash(object, {excludeValues: true, algorithm: 'sha1', encoding: 'hex'});\n};\nexports.MD5 = function(object){\n return objectHash(object, {algorithm: 'md5', encoding: 'hex'});\n};\nexports.keysMD5 = function(object){\n return objectHash(object, {algorithm: 'md5', encoding: 'hex', excludeValues: true});\n};\n\n// Internals\nvar hashes = crypto.getHashes ? crypto.getHashes().slice() : ['sha1', 'md5'];\nhashes.push('passthrough');\nvar encodings = ['buffer', 'hex', 'binary', 'base64'];\n\nfunction applyDefaults(object, sourceOptions){\n sourceOptions = sourceOptions || {};\n\n // create a copy rather than mutating\n var options = {};\n options.algorithm = sourceOptions.algorithm || 'sha1';\n options.encoding = sourceOptions.encoding || 'hex';\n options.excludeValues = sourceOptions.excludeValues ? true : false;\n options.algorithm = options.algorithm.toLowerCase();\n options.encoding = options.encoding.toLowerCase();\n options.ignoreUnknown = sourceOptions.ignoreUnknown !== true ? false : true; // default to false\n options.respectType = sourceOptions.respectType === false ? false : true; // default to true\n options.respectFunctionNames = sourceOptions.respectFunctionNames === false ? false : true;\n options.respectFunctionProperties = sourceOptions.respectFunctionProperties === false ? false : true;\n options.unorderedArrays = sourceOptions.unorderedArrays !== true ? false : true; // default to false\n options.unorderedSets = sourceOptions.unorderedSets === false ? false : true; // default to false\n options.unorderedObjects = sourceOptions.unorderedObjects === false ? false : true; // default to true\n options.replacer = sourceOptions.replacer || undefined;\n options.excludeKeys = sourceOptions.excludeKeys || undefined;\n\n if(typeof object === 'undefined') {\n throw new Error('Object argument required.');\n }\n\n // if there is a case-insensitive match in the hashes list, accept it\n // (i.e. SHA256 for sha256)\n for (var i = 0; i < hashes.length; ++i) {\n if (hashes[i].toLowerCase() === options.algorithm.toLowerCase()) {\n options.algorithm = hashes[i];\n }\n }\n\n if(hashes.indexOf(options.algorithm) === -1){\n throw new Error('Algorithm \"' + options.algorithm + '\" not supported. ' +\n 'supported values: ' + hashes.join(', '));\n }\n\n if(encodings.indexOf(options.encoding) === -1 &&\n options.algorithm !== 'passthrough'){\n throw new Error('Encoding \"' + options.encoding + '\" not supported. ' +\n 'supported values: ' + encodings.join(', '));\n }\n\n return options;\n}\n\n/** Check if the given function is a native function */\nfunction isNativeFunction(f) {\n if ((typeof f) !== 'function') {\n return false;\n }\n var exp = /^function\\s+\\w*\\s*\\(\\s*\\)\\s*{\\s+\\[native code\\]\\s+}$/i;\n return exp.exec(Function.prototype.toString.call(f)) != null;\n}\n\nfunction hash(object, options) {\n var hashingStream;\n\n if (options.algorithm !== 'passthrough') {\n hashingStream = crypto.createHash(options.algorithm);\n } else {\n hashingStream = new PassThrough();\n }\n\n if (typeof hashingStream.write === 'undefined') {\n hashingStream.write = hashingStream.update;\n hashingStream.end = hashingStream.update;\n }\n\n var hasher = typeHasher(options, hashingStream);\n hasher.dispatch(object);\n if (!hashingStream.update) {\n hashingStream.end('');\n }\n\n if (hashingStream.digest) {\n return hashingStream.digest(options.encoding === 'buffer' ? undefined : options.encoding);\n }\n\n var buf = hashingStream.read();\n if (options.encoding === 'buffer') {\n return buf;\n }\n\n return buf.toString(options.encoding);\n}\n\n/**\n * Expose streaming API\n *\n * @param {object} object Value to serialize\n * @param {object} options Options, as for hash()\n * @param {object} stream A stream to write the serializiation to\n * @api public\n */\nexports.writeToStream = function(object, options, stream) {\n if (typeof stream === 'undefined') {\n stream = options;\n options = {};\n }\n\n options = applyDefaults(object, options);\n\n return typeHasher(options, stream).dispatch(object);\n};\n\nfunction typeHasher(options, writeTo, context){\n context = context || [];\n var write = function(str) {\n if (writeTo.update) {\n return writeTo.update(str, 'utf8');\n } else {\n return writeTo.write(str, 'utf8');\n }\n };\n\n return {\n dispatch: function(value){\n if (options.replacer) {\n value = options.replacer(value);\n }\n\n var type = typeof value;\n if (value === null) {\n type = 'null';\n }\n\n //console.log(\"[DEBUG] Dispatch: \", value, \"->\", type, \" -> \", \"_\" + type);\n\n return this['_' + type](value);\n },\n _object: function(object) {\n var pattern = (/\\[object (.*)\\]/i);\n var objString = Object.prototype.toString.call(object);\n var objType = pattern.exec(objString);\n if (!objType) { // object type did not match [object ...]\n objType = 'unknown:[' + objString + ']';\n } else {\n objType = objType[1]; // take only the class name\n }\n\n objType = objType.toLowerCase();\n\n var objectNumber = null;\n\n if ((objectNumber = context.indexOf(object)) >= 0) {\n return this.dispatch('[CIRCULAR:' + objectNumber + ']');\n } else {\n context.push(object);\n }\n\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer && Buffer.isBuffer(object)) {\n write('buffer:');\n return write(object);\n }\n\n if(objType !== 'object' && objType !== 'function' && objType !== 'asyncfunction') {\n if(this['_' + objType]) {\n this['_' + objType](object);\n } else if (options.ignoreUnknown) {\n return write('[' + objType + ']');\n } else {\n throw new Error('Unknown object type \"' + objType + '\"');\n }\n }else{\n var keys = Object.keys(object);\n if (options.unorderedObjects) {\n keys = keys.sort();\n }\n // Make sure to incorporate special properties, so\n // Types with different prototypes will produce\n // a different hash and objects derived from\n // different functions (`new Foo`, `new Bar`) will\n // produce different hashes.\n // We never do this for native functions since some\n // seem to break because of that.\n if (options.respectType !== false && !isNativeFunction(object)) {\n keys.splice(0, 0, 'prototype', '__proto__', 'constructor');\n }\n\n if (options.excludeKeys) {\n keys = keys.filter(function(key) { return !options.excludeKeys(key); });\n }\n\n write('object:' + keys.length + ':');\n var self = this;\n return keys.forEach(function(key){\n self.dispatch(key);\n write(':');\n if(!options.excludeValues) {\n self.dispatch(object[key]);\n }\n write(',');\n });\n }\n },\n _array: function(arr, unordered){\n unordered = typeof unordered !== 'undefined' ? unordered :\n options.unorderedArrays !== false; // default to options.unorderedArrays\n\n var self = this;\n write('array:' + arr.length + ':');\n if (!unordered || arr.length <= 1) {\n return arr.forEach(function(entry) {\n return self.dispatch(entry);\n });\n }\n\n // the unordered case is a little more complicated:\n // since there is no canonical ordering on objects,\n // i.e. {a:1} < {a:2} and {a:1} > {a:2} are both false,\n // we first serialize each entry using a PassThrough stream\n // before sorting.\n // also: we can\u2019t use the same context array for all entries\n // since the order of hashing should *not* matter. instead,\n // we keep track of the additions to a copy of the context array\n // and add all of them to the global context array when we\u2019re done\n var contextAdditions = [];\n var entries = arr.map(function(entry) {\n var strm = new PassThrough();\n var localContext = context.slice(); // make copy\n var hasher = typeHasher(options, strm, localContext);\n hasher.dispatch(entry);\n // take only what was added to localContext and append it to contextAdditions\n contextAdditions = contextAdditions.concat(localContext.slice(context.length));\n return strm.read().toString();\n });\n context = context.concat(contextAdditions);\n entries.sort();\n return this._array(entries, false);\n },\n _date: function(date){\n return write('date:' + date.toJSON());\n },\n _symbol: function(sym){\n return write('symbol:' + sym.toString());\n },\n _error: function(err){\n return write('error:' + err.toString());\n },\n _boolean: function(bool){\n return write('bool:' + bool.toString());\n },\n _string: function(string){\n write('string:' + string.length + ':');\n write(string.toString());\n },\n _function: function(fn){\n write('fn:');\n if (isNativeFunction(fn)) {\n this.dispatch('[native]');\n } else {\n this.dispatch(fn.toString());\n }\n\n if (options.respectFunctionNames !== false) {\n // Make sure we can still distinguish native functions\n // by their name, otherwise String and Function will\n // have the same hash\n this.dispatch(\"function-name:\" + String(fn.name));\n }\n\n if (options.respectFunctionProperties) {\n this._object(fn);\n }\n },\n _number: function(number){\n return write('number:' + number.toString());\n },\n _xml: function(xml){\n return write('xml:' + xml.toString());\n },\n _null: function() {\n return write('Null');\n },\n _undefined: function() {\n return write('Undefined');\n },\n _regexp: function(regex){\n return write('regex:' + regex.toString());\n },\n _uint8array: function(arr){\n write('uint8array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint8clampedarray: function(arr){\n write('uint8clampedarray:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int8array: function(arr){\n write('int8array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint16array: function(arr){\n write('uint16array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int16array: function(arr){\n write('int16array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint32array: function(arr){\n write('uint32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int32array: function(arr){\n write('int32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _float32array: function(arr){\n write('float32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _float64array: function(arr){\n write('float64array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _arraybuffer: function(arr){\n write('arraybuffer:');\n return this.dispatch(new Uint8Array(arr));\n },\n _url: function(url) {\n return write('url:' + url.toString(), 'utf8');\n },\n _map: function(map) {\n write('map:');\n var arr = Array.from(map);\n return this._array(arr, options.unorderedSets !== false);\n },\n _set: function(set) {\n write('set:');\n var arr = Array.from(set);\n return this._array(arr, options.unorderedSets !== false);\n },\n _file: function(file) {\n write('file:');\n return this.dispatch([file.name, file.size, file.type, file.lastModfied]);\n },\n _blob: function() {\n if (options.ignoreUnknown) {\n return write('[blob]');\n }\n\n throw Error('Hashing Blob objects is currently not supported\\n' +\n '(see https://github.com/puleos/object-hash/issues/26)\\n' +\n 'Use \"options.replacer\" or \"options.ignoreUnknown\"\\n');\n },\n _domwindow: function() { return write('domwindow'); },\n _bigint: function(number){\n return write('bigint:' + number.toString());\n },\n /* Node.js standard native objects */\n _process: function() { return write('process'); },\n _timer: function() { return write('timer'); },\n _pipe: function() { return write('pipe'); },\n _tcp: function() { return write('tcp'); },\n _udp: function() { return write('udp'); },\n _tty: function() { return write('tty'); },\n _statwatcher: function() { return write('statwatcher'); },\n _securecontext: function() { return write('securecontext'); },\n _connection: function() { return write('connection'); },\n _zlib: function() { return write('zlib'); },\n _context: function() { return write('context'); },\n _nodescript: function() { return write('nodescript'); },\n _httpparser: function() { return write('httpparser'); },\n _dataview: function() { return write('dataview'); },\n _signal: function() { return write('signal'); },\n _fsevent: function() { return write('fsevent'); },\n _tlswrap: function() { return write('tlswrap'); },\n };\n}\n\n// Mini-implementation of stream.PassThrough\n// We are far from having need for the full implementation, and we can\n// make assumptions like \"many writes, then only one final read\"\n// and we can ignore encoding specifics\nfunction PassThrough() {\n return {\n buf: '',\n\n write: function(b) {\n this.buf += b;\n },\n\n end: function(b) {\n this.buf += b;\n },\n\n read: function() {\n return this.buf;\n }\n };\n}\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useCachedPromise = void 0;\nconst react_1 = require(\"react\");\nconst object_hash_1 = __importDefault(require(\"object-hash\"));\nconst useCachedState_1 = require(\"./useCachedState\");\nconst usePromise_1 = require(\"./usePromise\");\nconst useLatest_1 = require(\"./useLatest\");\n// Symbol to differentiate an empty cache from `undefined`\nconst emptyCache = Symbol();\nfunction useCachedPromise(fn, args, options) {\n const { initialData, keepPreviousData, ...usePromiseOptions } = options || {};\n const lastUpdateFrom = (0, react_1.useRef)();\n const [cachedData, mutateCache] = (0, useCachedState_1.useCachedState)((0, object_hash_1.default)(args || []), emptyCache, {\n cacheNamespace: (0, object_hash_1.default)(fn),\n });\n // Use a ref to store previous returned data. Use the inital data as its inital value from the cache.\n const laggyDataRef = (0, react_1.useRef)(cachedData !== emptyCache ? cachedData : initialData);\n const { mutate: _mutate, revalidate, ...state\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = (0, usePromise_1.usePromise)(fn, args || [], {\n ...usePromiseOptions,\n onData(data) {\n if (usePromiseOptions.onData) {\n usePromiseOptions.onData(data);\n }\n // update the cache when we fetch new values\n lastUpdateFrom.current = \"promise\";\n laggyDataRef.current = data;\n mutateCache(data);\n },\n });\n // data returned if there are no special cases\n const data = cachedData !== emptyCache ? cachedData : initialData;\n const returnedData = \n // if the latest update if from the Promise, we keep it\n lastUpdateFrom.current === \"promise\"\n ? laggyDataRef.current\n : // if we want to keep the latest data, we pick the cache but only if it's not empty\n keepPreviousData\n ? cachedData !== emptyCache\n ? cachedData\n : // if the cache is empty, we will return the previous data\n laggyDataRef.current\n : data;\n const latestData = (0, useLatest_1.useLatest)(returnedData);\n // we rewrite the mutate function to update the cache instead\n const mutate = (0, react_1.useCallback)(async (asyncUpdate, options) => {\n let dataBeforeOptimisticUpdate;\n try {\n if (options?.optimisticUpdate) {\n if (typeof options?.rollbackOnError !== \"function\" && options?.rollbackOnError !== false) {\n // keep track of the data before the optimistic update,\n // but only if we need it (eg. only when we want to automatically rollback after)\n dataBeforeOptimisticUpdate = structuredClone(latestData.current);\n }\n const data = options.optimisticUpdate(latestData.current);\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = data;\n mutateCache(data);\n }\n return await _mutate(asyncUpdate, { shouldRevalidateAfter: options?.shouldRevalidateAfter });\n }\n catch (err) {\n if (typeof options?.rollbackOnError === \"function\") {\n const data = options.rollbackOnError(latestData.current);\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = data;\n mutateCache(data);\n }\n else if (options?.optimisticUpdate && options?.rollbackOnError !== false) {\n lastUpdateFrom.current = \"cache\";\n // @ts-expect-error when undefined, it's expected\n laggyDataRef.current = dataBeforeOptimisticUpdate;\n // @ts-expect-error when undefined, it's expected\n mutateCache(dataBeforeOptimisticUpdate);\n }\n throw err;\n }\n }, [mutateCache, _mutate, latestData, laggyDataRef, lastUpdateFrom]);\n (0, react_1.useEffect)(() => {\n if (cachedData !== emptyCache) {\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = cachedData;\n }\n }, [cachedData]);\n return {\n data: returnedData,\n isLoading: state.isLoading,\n error: state.error,\n mutate,\n revalidate,\n };\n}\nexports.useCachedPromise = useCachedPromise;\n", "/*!\n * media-typer\n * Copyright(c) 2014-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match type in RFC 6838\n *\n * type-name = restricted-name\n * subtype-name = restricted-name\n * restricted-name = restricted-name-first *126restricted-name-chars\n * restricted-name-first = ALPHA / DIGIT\n * restricted-name-chars = ALPHA / DIGIT / \"!\" / \"#\" /\n * \"$\" / \"&\" / \"-\" / \"^\" / \"_\"\n * restricted-name-chars =/ \".\" ; Characters before first dot always\n * ; specify a facet name\n * restricted-name-chars =/ \"+\" ; Characters after last plus always\n * ; specify a structured syntax suffix\n * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n * DIGIT = %x30-39 ; 0-9\n */\nvar SUBTYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/\nvar TYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/\nvar TYPE_REGEXP = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/\n\n/**\n * Module exports.\n */\n\nexports.format = format\nexports.parse = parse\nexports.test = test\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var subtype = obj.subtype\n var suffix = obj.suffix\n var type = obj.type\n\n if (!type || !TYPE_NAME_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n if (!subtype || !SUBTYPE_NAME_REGEXP.test(subtype)) {\n throw new TypeError('invalid subtype')\n }\n\n // format as type/subtype\n var string = type + '/' + subtype\n\n // append +suffix\n if (suffix) {\n if (!TYPE_NAME_REGEXP.test(suffix)) {\n throw new TypeError('invalid suffix')\n }\n\n string += '+' + suffix\n }\n\n return string\n}\n\n/**\n * Test media type.\n *\n * @param {string} string\n * @return {object}\n * @public\n */\n\nfunction test (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n if (typeof string !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n return TYPE_REGEXP.test(string.toLowerCase())\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string} string\n * @return {object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n if (typeof string !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var match = TYPE_REGEXP.exec(string.toLowerCase())\n\n if (!match) {\n throw new TypeError('invalid media type')\n }\n\n var type = match[1]\n var subtype = match[2]\n var suffix\n\n // suffix after last +\n var index = subtype.lastIndexOf('+')\n if (index !== -1) {\n suffix = subtype.substr(index + 1)\n subtype = subtype.substr(0, index)\n }\n\n return new MediaType(type, subtype, suffix)\n}\n\n/**\n * Class for MediaType object.\n * @public\n */\n\nfunction MediaType (type, subtype, suffix) {\n this.type = type\n this.subtype = subtype\n this.suffix = suffix\n}\n", "/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match *( \";\" parameter ) in RFC 7231 sec 3.1.1.1\n *\n * parameter = token \"=\" ( token / quoted-string )\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n * / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n * / DIGIT / ALPHA\n * ; any VCHAR, except delimiters\n * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE\n * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text\n * obs-text = %x80-FF\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n */\nvar PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *(\"(?:[\\u000b\\u0020\\u0021\\u0023-\\u005b\\u005d-\\u007e\\u0080-\\u00ff]|\\\\[\\u000b\\u0020-\\u00ff])*\"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g // eslint-disable-line no-control-regex\nvar TEXT_REGEXP = /^[\\u000b\\u0020-\\u007e\\u0080-\\u00ff]+$/ // eslint-disable-line no-control-regex\nvar TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * RegExp to match quoted-pair in RFC 7230 sec 3.2.6\n *\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n * obs-text = %x80-FF\n */\nvar QESC_REGEXP = /\\\\([\\u000b\\u0020-\\u00ff])/g // eslint-disable-line no-control-regex\n\n/**\n * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6\n */\nvar QUOTE_REGEXP = /([\\\\\"])/g\n\n/**\n * RegExp to match type in RFC 7231 sec 3.1.1.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nvar TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * Module exports.\n * @public\n */\n\nexports.format = format\nexports.parse = parse\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var parameters = obj.parameters\n var type = obj.type\n\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n var string = type\n\n // append parameters\n if (parameters && typeof parameters === 'object') {\n var param\n var params = Object.keys(parameters).sort()\n\n for (var i = 0; i < params.length; i++) {\n param = params[i]\n\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError('invalid parameter name')\n }\n\n string += '; ' + param + '=' + qstring(parameters[param])\n }\n }\n\n return string\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string|object} string\n * @return {Object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n // support req/res-like objects as argument\n var header = typeof string === 'object'\n ? getcontenttype(string)\n : string\n\n if (typeof header !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var index = header.indexOf(';')\n var type = index !== -1\n ? header.slice(0, index).trim()\n : header.trim()\n\n if (!TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid media type')\n }\n\n var obj = new ContentType(type.toLowerCase())\n\n // parse parameters\n if (index !== -1) {\n var key\n var match\n var value\n\n PARAM_REGEXP.lastIndex = index\n\n while ((match = PARAM_REGEXP.exec(header))) {\n if (match.index !== index) {\n throw new TypeError('invalid parameter format')\n }\n\n index += match[0].length\n key = match[1].toLowerCase()\n value = match[2]\n\n if (value.charCodeAt(0) === 0x22 /* \" */) {\n // remove quotes\n value = value.slice(1, -1)\n\n // remove escapes\n if (value.indexOf('\\\\') !== -1) {\n value = value.replace(QESC_REGEXP, '$1')\n }\n }\n\n obj.parameters[key] = value\n }\n\n if (index !== header.length) {\n throw new TypeError('invalid parameter format')\n }\n }\n\n return obj\n}\n\n/**\n * Get content-type from req/res objects.\n *\n * @param {object}\n * @return {Object}\n * @private\n */\n\nfunction getcontenttype (obj) {\n var header\n\n if (typeof obj.getHeader === 'function') {\n // res-like\n header = obj.getHeader('content-type')\n } else if (typeof obj.headers === 'object') {\n // req-like\n header = obj.headers && obj.headers['content-type']\n }\n\n if (typeof header !== 'string') {\n throw new TypeError('content-type header is missing from object')\n }\n\n return header\n}\n\n/**\n * Quote a string if necessary.\n *\n * @param {string} val\n * @return {string}\n * @private\n */\n\nfunction qstring (val) {\n var str = String(val)\n\n // no need to quote tokens\n if (TOKEN_REGEXP.test(str)) {\n return str\n }\n\n if (str.length > 0 && !TEXT_REGEXP.test(str)) {\n throw new TypeError('invalid parameter value')\n }\n\n return '\"' + str.replace(QUOTE_REGEXP, '\\\\$1') + '\"'\n}\n\n/**\n * Class to represent a content type.\n * @private\n */\nfunction ContentType (type) {\n this.parameters = Object.create(null)\n this.type = type\n}\n", "\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n", "\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n", "[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"valid\"],[[47,47],\"disallowed_STD3_valid\"],[[48,57],\"valid\"],[[58,64],\"disallowed_STD3_valid\"],[[65,65],\"mapped\",[97]],[[66,66],\"mapped\",[98]],[[67,67],\"mapped\",[99]],[[68,68],\"mapped\",[100]],[[69,69],\"mapped\",[101]],[[70,70],\"mapped\",[102]],[[71,71],\"mapped\",[103]],[[72,72],\"mapped\",[104]],[[73,73],\"mapped\",[105]],[[74,74],\"mapped\",[106]],[[75,75],\"mapped\",[107]],[[76,76],\"mapped\",[108]],[[77,77],\"mapped\",[109]],[[78,78],\"mapped\",[110]],[[79,79],\"mapped\",[111]],[[80,80],\"mapped\",[112]],[[81,81],\"mapped\",[113]],[[82,82],\"mapped\",[114]],[[83,83],\"mapped\",[115]],[[84,84],\"mapped\",[116]],[[85,85],\"mapped\",[117]],[[86,86],\"mapped\",[118]],[[87,87],\"mapped\",[119]],[[88,88],\"mapped\",[120]],[[89,89],\"mapped\",[121]],[[90,90],\"mapped\",[122]],[[91,96],\"disallowed_STD3_valid\"],[[97,122],\"valid\"],[[123,127],\"disallowed_STD3_valid\"],[[128,159],\"disallowed\"],[[160,160],\"disallowed_STD3_mapped\",[32]],[[161,167],\"valid\",[],\"NV8\"],[[168,168],\"disallowed_STD3_mapped\",[32,776]],[[169,169],\"valid\",[],\"NV8\"],[[170,170],\"mapped\",[97]],[[171,172],\"valid\",[],\"NV8\"],[[173,173],\"ignored\"],[[174,174],\"valid\",[],\"NV8\"],[[175,175],\"disallowed_STD3_mapped\",[32,772]],[[176,177],\"valid\",[],\"NV8\"],[[178,178],\"mapped\",[50]],[[179,179],\"mapped\",[51]],[[180,180],\"disallowed_STD3_mapped\",[32,769]],[[181,181],\"mapped\",[956]],[[182,182],\"valid\",[],\"NV8\"],[[183,183],\"valid\"],[[184,184],\"disallowed_STD3_mapped\",[32,807]],[[185,185],\"mapped\",[49]],[[186,186],\"mapped\",[111]],[[187,187],\"valid\",[],\"NV8\"],[[188,188],\"mapped\",[49,8260,52]],[[189,189],\"mapped\",[49,8260,50]],[[190,190],\"mapped\",[51,8260,52]],[[191,191],\"valid\",[],\"NV8\"],[[192,192],\"mapped\",[224]],[[193,193],\"mapped\",[225]],[[194,194],\"mapped\",[226]],[[195,195],\"mapped\",[227]],[[196,196],\"mapped\",[228]],[[197,197],\"mapped\",[229]],[[198,198],\"mapped\",[230]],[[199,199],\"mapped\",[231]],[[200,200],\"mapped\",[232]],[[201,201],\"mapped\",[233]],[[202,202],\"mapped\",[234]],[[203,203],\"mapped\",[235]],[[204,204],\"mapped\",[236]],[[205,205],\"mapped\",[237]],[[206,206],\"mapped\",[238]],[[207,207],\"mapped\",[239]],[[208,208],\"mapped\",[240]],[[209,209],\"mapped\",[241]],[[210,210],\"mapped\",[242]],[[211,211],\"mapped\",[243]],[[212,212],\"mapped\",[244]],[[213,213],\"mapped\",[245]],[[214,214],\"mapped\",[246]],[[215,215],\"valid\",[],\"NV8\"],[[216,216],\"mapped\",[248]],[[217,217],\"mapped\",[249]],[[218,218],\"mapped\",[250]],[[219,219],\"mapped\",[251]],[[220,220],\"mapped\",[252]],[[221,221],\"mapped\",[253]],[[222,222],\"mapped\",[254]],[[223,223],\"deviation\",[115,115]],[[224,246],\"valid\"],[[247,247],\"valid\",[],\"NV8\"],[[248,255],\"valid\"],[[256,256],\"mapped\",[257]],[[257,257],\"valid\"],[[258,258],\"mapped\",[259]],[[259,259],\"valid\"],[[260,260],\"mapped\",[261]],[[261,261],\"valid\"],[[262,262],\"mapped\",[263]],[[263,263],\"valid\"],[[264,264],\"mapped\",[265]],[[265,265],\"valid\"],[[266,266],\"mapped\",[267]],[[267,267],\"valid\"],[[268,268],\"mapped\",[269]],[[269,269],\"valid\"],[[270,270],\"mapped\",[271]],[[271,271],\"valid\"],[[272,272],\"mapped\",[273]],[[273,273],\"valid\"],[[274,274],\"mapped\",[275]],[[275,275],\"valid\"],[[276,276],\"mapped\",[277]],[[277,277],\"valid\"],[[278,278],\"mapped\",[279]],[[279,279],\"valid\"],[[280,280],\"mapped\",[281]],[[281,281],\"valid\"],[[282,282],\"mapped\",[283]],[[283,283],\"valid\"],[[284,284],\"mapped\",[285]],[[285,285],\"valid\"],[[286,286],\"mapped\",[287]],[[287,287],\"valid\"],[[288,288],\"mapped\",[289]],[[289,289],\"valid\"],[[290,290],\"mapped\",[291]],[[291,291],\"valid\"],[[292,292],\"mapped\",[293]],[[293,293],\"valid\"],[[294,294],\"mapped\",[295]],[[295,295],\"valid\"],[[296,296],\"mapped\",[297]],[[297,297],\"valid\"],[[298,298],\"mapped\",[299]],[[299,299],\"valid\"],[[300,300],\"mapped\",[301]],[[301,301],\"valid\"],[[302,302],\"mapped\",[303]],[[303,303],\"valid\"],[[304,304],\"mapped\",[105,775]],[[305,305],\"valid\"],[[306,307],\"mapped\",[105,106]],[[308,308],\"mapped\",[309]],[[309,309],\"valid\"],[[310,310],\"mapped\",[311]],[[311,312],\"valid\"],[[313,313],\"mapped\",[314]],[[314,314],\"valid\"],[[315,315],\"mapped\",[316]],[[316,316],\"valid\"],[[317,317],\"mapped\",[318]],[[318,318],\"valid\"],[[319,320],\"mapped\",[108,183]],[[321,321],\"mapped\",[322]],[[322,322],\"valid\"],[[323,323],\"mapped\",[324]],[[324,324],\"valid\"],[[325,325],\"mapped\",[326]],[[326,326],\"valid\"],[[327,327],\"mapped\",[328]],[[328,328],\"valid\"],[[329,329],\"mapped\",[700,110]],[[330,330],\"mapped\",[331]],[[331,331],\"valid\"],[[332,332],\"mapped\",[333]],[[333,333],\"valid\"],[[334,334],\"mapped\",[335]],[[335,335],\"valid\"],[[336,336],\"mapped\",[337]],[[337,337],\"valid\"],[[338,338],\"mapped\",[339]],[[339,339],\"valid\"],[[340,340],\"mapped\",[341]],[[341,341],\"valid\"],[[342,342],\"mapped\",[343]],[[343,343],\"valid\"],[[344,344],\"mapped\",[345]],[[345,345],\"valid\"],[[346,346],\"mapped\",[347]],[[347,347],\"valid\"],[[348,348],\"mapped\",[349]],[[349,349],\"valid\"],[[350,350],\"mapped\",[351]],[[351,351],\"valid\"],[[352,352],\"mapped\",[353]],[[353,353],\"valid\"],[[354,354],\"mapped\",[355]],[[355,355],\"valid\"],[[356,356],\"mapped\",[357]],[[357,357],\"valid\"],[[358,358],\"mapped\",[359]],[[359,359],\"valid\"],[[360,360],\"mapped\",[361]],[[361,361],\"valid\"],[[362,362],\"mapped\",[363]],[[363,363],\"valid\"],[[364,364],\"mapped\",[365]],[[365,365],\"valid\"],[[366,366],\"mapped\",[367]],[[367,367],\"valid\"],[[368,368],\"mapped\",[369]],[[369,369],\"valid\"],[[370,370],\"mapped\",[371]],[[371,371],\"valid\"],[[372,372],\"mapped\",[373]],[[373,373],\"valid\"],[[374,374],\"mapped\",[375]],[[375,375],\"valid\"],[[376,376],\"mapped\",[255]],[[377,377],\"mapped\",[378]],[[378,378],\"valid\"],[[379,379],\"mapped\",[380]],[[380,380],\"valid\"],[[381,381],\"mapped\",[382]],[[382,382],\"valid\"],[[383,383],\"mapped\",[115]],[[384,384],\"valid\"],[[385,385],\"mapped\",[595]],[[386,386],\"mapped\",[387]],[[387,387],\"valid\"],[[388,388],\"mapped\",[389]],[[389,389],\"valid\"],[[390,390],\"mapped\",[596]],[[391,391],\"mapped\",[392]],[[392,392],\"valid\"],[[393,393],\"mapped\",[598]],[[394,394],\"mapped\",[599]],[[395,395],\"mapped\",[396]],[[396,397],\"valid\"],[[398,398],\"mapped\",[477]],[[399,399],\"mapped\",[601]],[[400,400],\"mapped\",[603]],[[401,401],\"mapped\",[402]],[[402,402],\"valid\"],[[403,403],\"mapped\",[608]],[[404,404],\"mapped\",[611]],[[405,405],\"valid\"],[[406,406],\"mapped\",[617]],[[407,407],\"mapped\",[616]],[[408,408],\"mapped\",[409]],[[409,411],\"valid\"],[[412,412],\"mapped\",[623]],[[413,413],\"mapped\",[626]],[[414,414],\"valid\"],[[415,415],\"mapped\",[629]],[[416,416],\"mapped\",[417]],[[417,417],\"valid\"],[[418,418],\"mapped\",[419]],[[419,419],\"valid\"],[[420,420],\"mapped\",[421]],[[421,421],\"valid\"],[[422,422],\"mapped\",[640]],[[423,423],\"mapped\",[424]],[[424,424],\"valid\"],[[425,425],\"mapped\",[643]],[[426,427],\"valid\"],[[428,428],\"mapped\",[429]],[[429,429],\"valid\"],[[430,430],\"mapped\",[648]],[[431,431],\"mapped\",[432]],[[432,432],\"valid\"],[[433,433],\"mapped\",[650]],[[434,434],\"mapped\",[651]],[[435,435],\"mapped\",[436]],[[436,436],\"valid\"],[[437,437],\"mapped\",[438]],[[438,438],\"valid\"],[[439,439],\"mapped\",[658]],[[440,440],\"mapped\",[441]],[[441,443],\"valid\"],[[444,444],\"mapped\",[445]],[[445,451],\"valid\"],[[452,454],\"mapped\",[100,382]],[[455,457],\"mapped\",[108,106]],[[458,460],\"mapped\",[110,106]],[[461,461],\"mapped\",[462]],[[462,462],\"valid\"],[[463,463],\"mapped\",[464]],[[464,464],\"valid\"],[[465,465],\"mapped\",[466]],[[466,466],\"valid\"],[[467,467],\"mapped\",[468]],[[468,468],\"valid\"],[[469,469],\"mapped\",[470]],[[470,470],\"valid\"],[[471,471],\"mapped\",[472]],[[472,472],\"valid\"],[[473,473],\"mapped\",[474]],[[474,474],\"valid\"],[[475,475],\"mapped\",[476]],[[476,477],\"valid\"],[[478,478],\"mapped\",[479]],[[479,479],\"valid\"],[[480,480],\"mapped\",[481]],[[481,481],\"valid\"],[[482,482],\"mapped\",[483]],[[483,483],\"valid\"],[[484,484],\"mapped\",[485]],[[485,485],\"valid\"],[[486,486],\"mapped\",[487]],[[487,487],\"valid\"],[[488,488],\"mapped\",[489]],[[489,489],\"valid\"],[[490,490],\"mapped\",[491]],[[491,491],\"valid\"],[[492,492],\"mapped\",[493]],[[493,493],\"valid\"],[[494,494],\"mapped\",[495]],[[495,496],\"valid\"],[[497,499],\"mapped\",[100,122]],[[500,500],\"mapped\",[501]],[[501,501],\"valid\"],[[502,502],\"mapped\",[405]],[[503,503],\"mapped\",[447]],[[504,504],\"mapped\",[505]],[[505,505],\"valid\"],[[506,506],\"mapped\",[507]],[[507,507],\"valid\"],[[508,508],\"mapped\",[509]],[[509,509],\"valid\"],[[510,510],\"mapped\",[511]],[[511,511],\"valid\"],[[512,512],\"mapped\",[513]],[[513,513],\"valid\"],[[514,514],\"mapped\",[515]],[[515,515],\"valid\"],[[516,516],\"mapped\",[517]],[[517,517],\"valid\"],[[518,518],\"mapped\",[519]],[[519,519],\"valid\"],[[520,520],\"mapped\",[521]],[[521,521],\"valid\"],[[522,522],\"mapped\",[523]],[[523,523],\"valid\"],[[524,524],\"mapped\",[525]],[[525,525],\"valid\"],[[526,526],\"mapped\",[527]],[[527,527],\"valid\"],[[528,528],\"mapped\",[529]],[[529,529],\"valid\"],[[530,530],\"mapped\",[531]],[[531,531],\"valid\"],[[532,532],\"mapped\",[533]],[[533,533],\"valid\"],[[534,534],\"mapped\",[535]],[[535,535],\"valid\"],[[536,536],\"mapped\",[537]],[[537,537],\"valid\"],[[538,538],\"mapped\",[539]],[[539,539],\"valid\"],[[540,540],\"mapped\",[541]],[[541,541],\"valid\"],[[542,542],\"mapped\",[543]],[[543,543],\"valid\"],[[544,544],\"mapped\",[414]],[[545,545],\"valid\"],[[546,546],\"mapped\",[547]],[[547,547],\"valid\"],[[548,548],\"mapped\",[549]],[[549,549],\"valid\"],[[550,550],\"mapped\",[551]],[[551,551],\"valid\"],[[552,552],\"mapped\",[553]],[[553,553],\"valid\"],[[554,554],\"mapped\",[555]],[[555,555],\"valid\"],[[556,556],\"mapped\",[557]],[[557,557],\"valid\"],[[558,558],\"mapped\",[559]],[[559,559],\"valid\"],[[560,560],\"mapped\",[561]],[[561,561],\"valid\"],[[562,562],\"mapped\",[563]],[[563,563],\"valid\"],[[564,566],\"valid\"],[[567,569],\"valid\"],[[570,570],\"mapped\",[11365]],[[571,571],\"mapped\",[572]],[[572,572],\"valid\"],[[573,573],\"mapped\",[410]],[[574,574],\"mapped\",[11366]],[[575,576],\"valid\"],[[577,577],\"mapped\",[578]],[[578,578],\"valid\"],[[579,579],\"mapped\",[384]],[[580,580],\"mapped\",[649]],[[581,581],\"mapped\",[652]],[[582,582],\"mapped\",[583]],[[583,583],\"valid\"],[[584,584],\"mapped\",[585]],[[585,585],\"valid\"],[[586,586],\"mapped\",[587]],[[587,587],\"valid\"],[[588,588],\"mapped\",[589]],[[589,589],\"valid\"],[[590,590],\"mapped\",[591]],[[591,591],\"valid\"],[[592,680],\"valid\"],[[681,685],\"valid\"],[[686,687],\"valid\"],[[688,688],\"mapped\",[104]],[[689,689],\"mapped\",[614]],[[690,690],\"mapped\",[106]],[[691,691],\"mapped\",[114]],[[692,692],\"mapped\",[633]],[[693,693],\"mapped\",[635]],[[694,694],\"mapped\",[641]],[[695,695],\"mapped\",[119]],[[696,696],\"mapped\",[121]],[[697,705],\"valid\"],[[706,709],\"valid\",[],\"NV8\"],[[710,721],\"valid\"],[[722,727],\"valid\",[],\"NV8\"],[[728,728],\"disallowed_STD3_mapped\",[32,774]],[[729,729],\"disallowed_STD3_mapped\",[32,775]],[[730,730],\"disallowed_STD3_mapped\",[32,778]],[[731,731],\"disallowed_STD3_mapped\",[32,808]],[[732,732],\"disallowed_STD3_mapped\",[32,771]],[[733,733],\"disallowed_STD3_mapped\",[32,779]],[[734,734],\"valid\",[],\"NV8\"],[[735,735],\"valid\",[],\"NV8\"],[[736,736],\"mapped\",[611]],[[737,737],\"mapped\",[108]],[[738,738],\"mapped\",[115]],[[739,739],\"mapped\",[120]],[[740,740],\"mapped\",[661]],[[741,745],\"valid\",[],\"NV8\"],[[746,747],\"valid\",[],\"NV8\"],[[748,748],\"valid\"],[[749,749],\"valid\",[],\"NV8\"],[[750,750],\"valid\"],[[751,767],\"valid\",[],\"NV8\"],[[768,831],\"valid\"],[[832,832],\"mapped\",[768]],[[833,833],\"mapped\",[769]],[[834,834],\"valid\"],[[835,835],\"mapped\",[787]],[[836,836],\"mapped\",[776,769]],[[837,837],\"mapped\",[953]],[[838,846],\"valid\"],[[847,847],\"ignored\"],[[848,855],\"valid\"],[[856,860],\"valid\"],[[861,863],\"valid\"],[[864,865],\"valid\"],[[866,866],\"valid\"],[[867,879],\"valid\"],[[880,880],\"mapped\",[881]],[[881,881],\"valid\"],[[882,882],\"mapped\",[883]],[[883,883],\"valid\"],[[884,884],\"mapped\",[697]],[[885,885],\"valid\"],[[886,886],\"mapped\",[887]],[[887,887],\"valid\"],[[888,889],\"disallowed\"],[[890,890],\"disallowed_STD3_mapped\",[32,953]],[[891,893],\"valid\"],[[894,894],\"disallowed_STD3_mapped\",[59]],[[895,895],\"mapped\",[1011]],[[896,899],\"disallowed\"],[[900,900],\"disallowed_STD3_mapped\",[32,769]],[[901,901],\"disallowed_STD3_mapped\",[32,776,769]],[[902,902],\"mapped\",[940]],[[903,903],\"mapped\",[183]],[[904,904],\"mapped\",[941]],[[905,905],\"mapped\",[942]],[[906,906],\"mapped\",[943]],[[907,907],\"disallowed\"],[[908,908],\"mapped\",[972]],[[909,909],\"disallowed\"],[[910,910],\"mapped\",[973]],[[911,911],\"mapped\",[974]],[[912,912],\"valid\"],[[913,913],\"mapped\",[945]],[[914,914],\"mapped\",[946]],[[915,915],\"mapped\",[947]],[[916,916],\"mapped\",[948]],[[917,917],\"mapped\",[949]],[[918,918],\"mapped\",[950]],[[919,919],\"mapped\",[951]],[[920,920],\"mapped\",[952]],[[921,921],\"mapped\",[953]],[[922,922],\"mapped\",[954]],[[923,923],\"mapped\",[955]],[[924,924],\"mapped\",[956]],[[925,925],\"mapped\",[957]],[[926,926],\"mapped\",[958]],[[927,927],\"mapped\",[959]],[[928,928],\"mapped\",[960]],[[929,929],\"mapped\",[961]],[[930,930],\"disallowed\"],[[931,931],\"mapped\",[963]],[[932,932],\"mapped\",[964]],[[933,933],\"mapped\",[965]],[[934,934],\"mapped\",[966]],[[935,935],\"mapped\",[967]],[[936,936],\"mapped\",[968]],[[937,937],\"mapped\",[969]],[[938,938],\"mapped\",[970]],[[939,939],\"mapped\",[971]],[[940,961],\"valid\"],[[962,962],\"deviation\",[963]],[[963,974],\"valid\"],[[975,975],\"mapped\",[983]],[[976,976],\"mapped\",[946]],[[977,977],\"mapped\",[952]],[[978,978],\"mapped\",[965]],[[979,979],\"mapped\",[973]],[[980,980],\"mapped\",[971]],[[981,981],\"mapped\",[966]],[[982,982],\"mapped\",[960]],[[983,983],\"valid\"],[[984,984],\"mapped\",[985]],[[985,985],\"valid\"],[[986,986],\"mapped\",[987]],[[987,987],\"valid\"],[[988,988],\"mapped\",[989]],[[989,989],\"valid\"],[[990,990],\"mapped\",[991]],[[991,991],\"valid\"],[[992,992],\"mapped\",[993]],[[993,993],\"valid\"],[[994,994],\"mapped\",[995]],[[995,995],\"valid\"],[[996,996],\"mapped\",[997]],[[997,997],\"valid\"],[[998,998],\"mapped\",[999]],[[999,999],\"valid\"],[[1000,1000],\"mapped\",[1001]],[[1001,1001],\"valid\"],[[1002,1002],\"mapped\",[1003]],[[1003,1003],\"valid\"],[[1004,1004],\"mapped\",[1005]],[[1005,1005],\"valid\"],[[1006,1006],\"mapped\",[1007]],[[1007,1007],\"valid\"],[[1008,1008],\"mapped\",[954]],[[1009,1009],\"mapped\",[961]],[[1010,1010],\"mapped\",[963]],[[1011,1011],\"valid\"],[[1012,1012],\"mapped\",[952]],[[1013,1013],\"mapped\",[949]],[[1014,1014],\"valid\",[],\"NV8\"],[[1015,1015],\"mapped\",[1016]],[[1016,1016],\"valid\"],[[1017,1017],\"mapped\",[963]],[[1018,1018],\"mapped\",[1019]],[[1019,1019],\"valid\"],[[1020,1020],\"valid\"],[[1021,1021],\"mapped\",[891]],[[1022,1022],\"mapped\",[892]],[[1023,1023],\"mapped\",[893]],[[1024,1024],\"mapped\",[1104]],[[1025,1025],\"mapped\",[1105]],[[1026,1026],\"mapped\",[1106]],[[1027,1027],\"mapped\",[1107]],[[1028,1028],\"mapped\",[1108]],[[1029,1029],\"mapped\",[1109]],[[1030,1030],\"mapped\",[1110]],[[1031,1031],\"mapped\",[1111]],[[1032,1032],\"mapped\",[1112]],[[1033,1033],\"mapped\",[1113]],[[1034,1034],\"mapped\",[1114]],[[1035,1035],\"mapped\",[1115]],[[1036,1036],\"mapped\",[1116]],[[1037,1037],\"mapped\",[1117]],[[1038,1038],\"mapped\",[1118]],[[1039,1039],\"mapped\",[1119]],[[1040,1040],\"mapped\",[1072]],[[1041,1041],\"mapped\",[1073]],[[1042,1042],\"mapped\",[1074]],[[1043,1043],\"mapped\",[1075]],[[1044,1044],\"mapped\",[1076]],[[1045,1045],\"mapped\",[1077]],[[1046,1046],\"mapped\",[1078]],[[1047,1047],\"mapped\",[1079]],[[1048,1048],\"mapped\",[1080]],[[1049,1049],\"mapped\",[1081]],[[1050,1050],\"mapped\",[1082]],[[1051,1051],\"mapped\",[1083]],[[1052,1052],\"mapped\",[1084]],[[1053,1053],\"mapped\",[1085]],[[1054,1054],\"mapped\",[1086]],[[1055,1055],\"mapped\",[1087]],[[1056,1056],\"mapped\",[1088]],[[1057,1057],\"mapped\",[1089]],[[1058,1058],\"mapped\",[1090]],[[1059,1059],\"mapped\",[1091]],[[1060,1060],\"mapped\",[1092]],[[1061,1061],\"mapped\",[1093]],[[1062,1062],\"mapped\",[1094]],[[1063,1063],\"mapped\",[1095]],[[1064,1064],\"mapped\",[1096]],[[1065,1065],\"mapped\",[1097]],[[1066,1066],\"mapped\",[1098]],[[1067,1067],\"mapped\",[1099]],[[1068,1068],\"mapped\",[1100]],[[1069,1069],\"mapped\",[1101]],[[1070,1070],\"mapped\",[1102]],[[1071,1071],\"mapped\",[1103]],[[1072,1103],\"valid\"],[[1104,1104],\"valid\"],[[1105,1116],\"valid\"],[[1117,1117],\"valid\"],[[1118,1119],\"valid\"],[[1120,1120],\"mapped\",[1121]],[[1121,1121],\"valid\"],[[1122,1122],\"mapped\",[1123]],[[1123,1123],\"valid\"],[[1124,1124],\"mapped\",[1125]],[[1125,1125],\"valid\"],[[1126,1126],\"mapped\",[1127]],[[1127,1127],\"valid\"],[[1128,1128],\"mapped\",[1129]],[[1129,1129],\"valid\"],[[1130,1130],\"mapped\",[1131]],[[1131,1131],\"valid\"],[[1132,1132],\"mapped\",[1133]],[[1133,1133],\"valid\"],[[1134,1134],\"mapped\",[1135]],[[1135,1135],\"valid\"],[[1136,1136],\"mapped\",[1137]],[[1137,1137],\"valid\"],[[1138,1138],\"mapped\",[1139]],[[1139,1139],\"valid\"],[[1140,1140],\"mapped\",[1141]],[[1141,1141],\"valid\"],[[1142,1142],\"mapped\",[1143]],[[1143,1143],\"valid\"],[[1144,1144],\"mapped\",[1145]],[[1145,1145],\"valid\"],[[1146,1146],\"mapped\",[1147]],[[1147,1147],\"valid\"],[[1148,1148],\"mapped\",[1149]],[[1149,1149],\"valid\"],[[1150,1150],\"mapped\",[1151]],[[1151,1151],\"valid\"],[[1152,1152],\"mapped\",[1153]],[[1153,1153],\"valid\"],[[1154,1154],\"valid\",[],\"NV8\"],[[1155,1158],\"valid\"],[[1159,1159],\"valid\"],[[1160,1161],\"valid\",[],\"NV8\"],[[1162,1162],\"mapped\",[1163]],[[1163,1163],\"valid\"],[[1164,1164],\"mapped\",[1165]],[[1165,1165],\"valid\"],[[1166,1166],\"mapped\",[1167]],[[1167,1167],\"valid\"],[[1168,1168],\"mapped\",[1169]],[[1169,1169],\"valid\"],[[1170,1170],\"mapped\",[1171]],[[1171,1171],\"valid\"],[[1172,1172],\"mapped\",[1173]],[[1173,1173],\"valid\"],[[1174,1174],\"mapped\",[1175]],[[1175,1175],\"valid\"],[[1176,1176],\"mapped\",[1177]],[[1177,1177],\"valid\"],[[1178,1178],\"mapped\",[1179]],[[1179,1179],\"valid\"],[[1180,1180],\"mapped\",[1181]],[[1181,1181],\"valid\"],[[1182,1182],\"mapped\",[1183]],[[1183,1183],\"valid\"],[[1184,1184],\"mapped\",[1185]],[[1185,1185],\"valid\"],[[1186,1186],\"mapped\",[1187]],[[1187,1187],\"valid\"],[[1188,1188],\"mapped\",[1189]],[[1189,1189],\"valid\"],[[1190,1190],\"mapped\",[1191]],[[1191,1191],\"valid\"],[[1192,1192],\"mapped\",[1193]],[[1193,1193],\"valid\"],[[1194,1194],\"mapped\",[1195]],[[1195,1195],\"valid\"],[[1196,1196],\"mapped\",[1197]],[[1197,1197],\"valid\"],[[1198,1198],\"mapped\",[1199]],[[1199,1199],\"valid\"],[[1200,1200],\"mapped\",[1201]],[[1201,1201],\"valid\"],[[1202,1202],\"mapped\",[1203]],[[1203,1203],\"valid\"],[[1204,1204],\"mapped\",[1205]],[[1205,1205],\"valid\"],[[1206,1206],\"mapped\",[1207]],[[1207,1207],\"valid\"],[[1208,1208],\"mapped\",[1209]],[[1209,1209],\"valid\"],[[1210,1210],\"mapped\",[1211]],[[1211,1211],\"valid\"],[[1212,1212],\"mapped\",[1213]],[[1213,1213],\"valid\"],[[1214,1214],\"mapped\",[1215]],[[1215,1215],\"valid\"],[[1216,1216],\"disallowed\"],[[1217,1217],\"mapped\",[1218]],[[1218,1218],\"valid\"],[[1219,1219],\"mapped\",[1220]],[[1220,1220],\"valid\"],[[1221,1221],\"mapped\",[1222]],[[1222,1222],\"valid\"],[[1223,1223],\"mapped\",[1224]],[[1224,1224],\"valid\"],[[1225,1225],\"mapped\",[1226]],[[1226,1226],\"valid\"],[[1227,1227],\"mapped\",[1228]],[[1228,1228],\"valid\"],[[1229,1229],\"mapped\",[1230]],[[1230,1230],\"valid\"],[[1231,1231],\"valid\"],[[1232,1232],\"mapped\",[1233]],[[1233,1233],\"valid\"],[[1234,1234],\"mapped\",[1235]],[[1235,1235],\"valid\"],[[1236,1236],\"mapped\",[1237]],[[1237,1237],\"valid\"],[[1238,1238],\"mapped\",[1239]],[[1239,1239],\"valid\"],[[1240,1240],\"mapped\",[1241]],[[1241,1241],\"valid\"],[[1242,1242],\"mapped\",[1243]],[[1243,1243],\"valid\"],[[1244,1244],\"mapped\",[1245]],[[1245,1245],\"valid\"],[[1246,1246],\"mapped\",[1247]],[[1247,1247],\"valid\"],[[1248,1248],\"mapped\",[1249]],[[1249,1249],\"valid\"],[[1250,1250],\"mapped\",[1251]],[[1251,1251],\"valid\"],[[1252,1252],\"mapped\",[1253]],[[1253,1253],\"valid\"],[[1254,1254],\"mapped\",[1255]],[[1255,1255],\"valid\"],[[1256,1256],\"mapped\",[1257]],[[1257,1257],\"valid\"],[[1258,1258],\"mapped\",[1259]],[[1259,1259],\"valid\"],[[1260,1260],\"mapped\",[1261]],[[1261,1261],\"valid\"],[[1262,1262],\"mapped\",[1263]],[[1263,1263],\"valid\"],[[1264,1264],\"mapped\",[1265]],[[1265,1265],\"valid\"],[[1266,1266],\"mapped\",[1267]],[[1267,1267],\"valid\"],[[1268,1268],\"mapped\",[1269]],[[1269,1269],\"valid\"],[[1270,1270],\"mapped\",[1271]],[[1271,1271],\"valid\"],[[1272,1272],\"mapped\",[1273]],[[1273,1273],\"valid\"],[[1274,1274],\"mapped\",[1275]],[[1275,1275],\"valid\"],[[1276,1276],\"mapped\",[1277]],[[1277,1277],\"valid\"],[[1278,1278],\"mapped\",[1279]],[[1279,1279],\"valid\"],[[1280,1280],\"mapped\",[1281]],[[1281,1281],\"valid\"],[[1282,1282],\"mapped\",[1283]],[[1283,1283],\"valid\"],[[1284,1284],\"mapped\",[1285]],[[1285,1285],\"valid\"],[[1286,1286],\"mapped\",[1287]],[[1287,1287],\"valid\"],[[1288,1288],\"mapped\",[1289]],[[1289,1289],\"valid\"],[[1290,1290],\"mapped\",[1291]],[[1291,1291],\"valid\"],[[1292,1292],\"mapped\",[1293]],[[1293,1293],\"valid\"],[[1294,1294],\"mapped\",[1295]],[[1295,1295],\"valid\"],[[1296,1296],\"mapped\",[1297]],[[1297,1297],\"valid\"],[[1298,1298],\"mapped\",[1299]],[[1299,1299],\"valid\"],[[1300,1300],\"mapped\",[1301]],[[1301,1301],\"valid\"],[[1302,1302],\"mapped\",[1303]],[[1303,1303],\"valid\"],[[1304,1304],\"mapped\",[1305]],[[1305,1305],\"valid\"],[[1306,1306],\"mapped\",[1307]],[[1307,1307],\"valid\"],[[1308,1308],\"mapped\",[1309]],[[1309,1309],\"valid\"],[[1310,1310],\"mapped\",[1311]],[[1311,1311],\"valid\"],[[1312,1312],\"mapped\",[1313]],[[1313,1313],\"valid\"],[[1314,1314],\"mapped\",[1315]],[[1315,1315],\"valid\"],[[1316,1316],\"mapped\",[1317]],[[1317,1317],\"valid\"],[[1318,1318],\"mapped\",[1319]],[[1319,1319],\"valid\"],[[1320,1320],\"mapped\",[1321]],[[1321,1321],\"valid\"],[[1322,1322],\"mapped\",[1323]],[[1323,1323],\"valid\"],[[1324,1324],\"mapped\",[1325]],[[1325,1325],\"valid\"],[[1326,1326],\"mapped\",[1327]],[[1327,1327],\"valid\"],[[1328,1328],\"disallowed\"],[[1329,1329],\"mapped\",[1377]],[[1330,1330],\"mapped\",[1378]],[[1331,1331],\"mapped\",[1379]],[[1332,1332],\"mapped\",[1380]],[[1333,1333],\"mapped\",[1381]],[[1334,1334],\"mapped\",[1382]],[[1335,1335],\"mapped\",[1383]],[[1336,1336],\"mapped\",[1384]],[[1337,1337],\"mapped\",[1385]],[[1338,1338],\"mapped\",[1386]],[[1339,1339],\"mapped\",[1387]],[[1340,1340],\"mapped\",[1388]],[[1341,1341],\"mapped\",[1389]],[[1342,1342],\"mapped\",[1390]],[[1343,1343],\"mapped\",[1391]],[[1344,1344],\"mapped\",[1392]],[[1345,1345],\"mapped\",[1393]],[[1346,1346],\"mapped\",[1394]],[[1347,1347],\"mapped\",[1395]],[[1348,1348],\"mapped\",[1396]],[[1349,1349],\"mapped\",[1397]],[[1350,1350],\"mapped\",[1398]],[[1351,1351],\"mapped\",[1399]],[[1352,1352],\"mapped\",[1400]],[[1353,1353],\"mapped\",[1401]],[[1354,1354],\"mapped\",[1402]],[[1355,1355],\"mapped\",[1403]],[[1356,1356],\"mapped\",[1404]],[[1357,1357],\"mapped\",[1405]],[[1358,1358],\"mapped\",[1406]],[[1359,1359],\"mapped\",[1407]],[[1360,1360],\"mapped\",[1408]],[[1361,1361],\"mapped\",[1409]],[[1362,1362],\"mapped\",[1410]],[[1363,1363],\"mapped\",[1411]],[[1364,1364],\"mapped\",[1412]],[[1365,1365],\"mapped\",[1413]],[[1366,1366],\"mapped\",[1414]],[[1367,1368],\"disallowed\"],[[1369,1369],\"valid\"],[[1370,1375],\"valid\",[],\"NV8\"],[[1376,1376],\"disallowed\"],[[1377,1414],\"valid\"],[[1415,1415],\"mapped\",[1381,1410]],[[1416,1416],\"disallowed\"],[[1417,1417],\"valid\",[],\"NV8\"],[[1418,1418],\"valid\",[],\"NV8\"],[[1419,1420],\"disallowed\"],[[1421,1422],\"valid\",[],\"NV8\"],[[1423,1423],\"valid\",[],\"NV8\"],[[1424,1424],\"disallowed\"],[[1425,1441],\"valid\"],[[1442,1442],\"valid\"],[[1443,1455],\"valid\"],[[1456,1465],\"valid\"],[[1466,1466],\"valid\"],[[1467,1469],\"valid\"],[[1470,1470],\"valid\",[],\"NV8\"],[[1471,1471],\"valid\"],[[1472,1472],\"valid\",[],\"NV8\"],[[1473,1474],\"valid\"],[[1475,1475],\"valid\",[],\"NV8\"],[[1476,1476],\"valid\"],[[1477,1477],\"valid\"],[[1478,1478],\"valid\",[],\"NV8\"],[[1479,1479],\"valid\"],[[1480,1487],\"disallowed\"],[[1488,1514],\"valid\"],[[1515,1519],\"disallowed\"],[[1520,1524],\"valid\"],[[1525,1535],\"disallowed\"],[[1536,1539],\"disallowed\"],[[1540,1540],\"disallowed\"],[[1541,1541],\"disallowed\"],[[1542,1546],\"valid\",[],\"NV8\"],[[1547,1547],\"valid\",[],\"NV8\"],[[1548,1548],\"valid\",[],\"NV8\"],[[1549,1551],\"valid\",[],\"NV8\"],[[1552,1557],\"valid\"],[[1558,1562],\"valid\"],[[1563,1563],\"valid\",[],\"NV8\"],[[1564,1564],\"disallowed\"],[[1565,1565],\"disallowed\"],[[1566,1566],\"valid\",[],\"NV8\"],[[1567,1567],\"valid\",[],\"NV8\"],[[1568,1568],\"valid\"],[[1569,1594],\"valid\"],[[1595,1599],\"valid\"],[[1600,1600],\"valid\",[],\"NV8\"],[[1601,1618],\"valid\"],[[1619,1621],\"valid\"],[[1622,1624],\"valid\"],[[1625,1630],\"valid\"],[[1631,1631],\"valid\"],[[1632,1641],\"valid\"],[[1642,1645],\"valid\",[],\"NV8\"],[[1646,1647],\"valid\"],[[1648,1652],\"valid\"],[[1653,1653],\"mapped\",[1575,1652]],[[1654,1654],\"mapped\",[1608,1652]],[[1655,1655],\"mapped\",[1735,1652]],[[1656,1656],\"mapped\",[1610,1652]],[[1657,1719],\"valid\"],[[1720,1721],\"valid\"],[[1722,1726],\"valid\"],[[1727,1727],\"valid\"],[[1728,1742],\"valid\"],[[1743,1743],\"valid\"],[[1744,1747],\"valid\"],[[1748,1748],\"valid\",[],\"NV8\"],[[1749,1756],\"valid\"],[[1757,1757],\"disallowed\"],[[1758,1758],\"valid\",[],\"NV8\"],[[1759,1768],\"valid\"],[[1769,1769],\"valid\",[],\"NV8\"],[[1770,1773],\"valid\"],[[1774,1775],\"valid\"],[[1776,1785],\"valid\"],[[1786,1790],\"valid\"],[[1791,1791],\"valid\"],[[1792,1805],\"valid\",[],\"NV8\"],[[1806,1806],\"disallowed\"],[[1807,1807],\"disallowed\"],[[1808,1836],\"valid\"],[[1837,1839],\"valid\"],[[1840,1866],\"valid\"],[[1867,1868],\"disallowed\"],[[1869,1871],\"valid\"],[[1872,1901],\"valid\"],[[1902,1919],\"valid\"],[[1920,1968],\"valid\"],[[1969,1969],\"valid\"],[[1970,1983],\"disallowed\"],[[1984,2037],\"valid\"],[[2038,2042],\"valid\",[],\"NV8\"],[[2043,2047],\"disallowed\"],[[2048,2093],\"valid\"],[[2094,2095],\"disallowed\"],[[2096,2110],\"valid\",[],\"NV8\"],[[2111,2111],\"disallowed\"],[[2112,2139],\"valid\"],[[2140,2141],\"disallowed\"],[[2142,2142],\"valid\",[],\"NV8\"],[[2143,2207],\"disallowed\"],[[2208,2208],\"valid\"],[[2209,2209],\"valid\"],[[2210,2220],\"valid\"],[[2221,2226],\"valid\"],[[2227,2228],\"valid\"],[[2229,2274],\"disallowed\"],[[2275,2275],\"valid\"],[[2276,2302],\"valid\"],[[2303,2303],\"valid\"],[[2304,2304],\"valid\"],[[2305,2307],\"valid\"],[[2308,2308],\"valid\"],[[2309,2361],\"valid\"],[[2362,2363],\"valid\"],[[2364,2381],\"valid\"],[[2382,2382],\"valid\"],[[2383,2383],\"valid\"],[[2384,2388],\"valid\"],[[2389,2389],\"valid\"],[[2390,2391],\"valid\"],[[2392,2392],\"mapped\",[2325,2364]],[[2393,2393],\"mapped\",[2326,2364]],[[2394,2394],\"mapped\",[2327,2364]],[[2395,2395],\"mapped\",[2332,2364]],[[2396,2396],\"mapped\",[2337,2364]],[[2397,2397],\"mapped\",[2338,2364]],[[2398,2398],\"mapped\",[2347,2364]],[[2399,2399],\"mapped\",[2351,2364]],[[2400,2403],\"valid\"],[[2404,2405],\"valid\",[],\"NV8\"],[[2406,2415],\"valid\"],[[2416,2416],\"valid\",[],\"NV8\"],[[2417,2418],\"valid\"],[[2419,2423],\"valid\"],[[2424,2424],\"valid\"],[[2425,2426],\"valid\"],[[2427,2428],\"valid\"],[[2429,2429],\"valid\"],[[2430,2431],\"valid\"],[[2432,2432],\"valid\"],[[2433,2435],\"valid\"],[[2436,2436],\"disallowed\"],[[2437,2444],\"valid\"],[[2445,2446],\"disallowed\"],[[2447,2448],\"valid\"],[[2449,2450],\"disallowed\"],[[2451,2472],\"valid\"],[[2473,2473],\"disallowed\"],[[2474,2480],\"valid\"],[[2481,2481],\"disallowed\"],[[2482,2482],\"valid\"],[[2483,2485],\"disallowed\"],[[2486,2489],\"valid\"],[[2490,2491],\"disallowed\"],[[2492,2492],\"valid\"],[[2493,2493],\"valid\"],[[2494,2500],\"valid\"],[[2501,2502],\"disallowed\"],[[2503,2504],\"valid\"],[[2505,2506],\"disallowed\"],[[2507,2509],\"valid\"],[[2510,2510],\"valid\"],[[2511,2518],\"disallowed\"],[[2519,2519],\"valid\"],[[2520,2523],\"disallowed\"],[[2524,2524],\"mapped\",[2465,2492]],[[2525,2525],\"mapped\",[2466,2492]],[[2526,2526],\"disallowed\"],[[2527,2527],\"mapped\",[2479,2492]],[[2528,2531],\"valid\"],[[2532,2533],\"disallowed\"],[[2534,2545],\"valid\"],[[2546,2554],\"valid\",[],\"NV8\"],[[2555,2555],\"valid\",[],\"NV8\"],[[2556,2560],\"disallowed\"],[[2561,2561],\"valid\"],[[2562,2562],\"valid\"],[[2563,2563],\"valid\"],[[2564,2564],\"disallowed\"],[[2565,2570],\"valid\"],[[2571,2574],\"disallowed\"],[[2575,2576],\"valid\"],[[2577,2578],\"disallowed\"],[[2579,2600],\"valid\"],[[2601,2601],\"disallowed\"],[[2602,2608],\"valid\"],[[2609,2609],\"disallowed\"],[[2610,2610],\"valid\"],[[2611,2611],\"mapped\",[2610,2620]],[[2612,2612],\"disallowed\"],[[2613,2613],\"valid\"],[[2614,2614],\"mapped\",[2616,2620]],[[2615,2615],\"disallowed\"],[[2616,2617],\"valid\"],[[2618,2619],\"disallowed\"],[[2620,2620],\"valid\"],[[2621,2621],\"disallowed\"],[[2622,2626],\"valid\"],[[2627,2630],\"disallowed\"],[[2631,2632],\"valid\"],[[2633,2634],\"disallowed\"],[[2635,2637],\"valid\"],[[2638,2640],\"disallowed\"],[[2641,2641],\"valid\"],[[2642,2648],\"disallowed\"],[[2649,2649],\"mapped\",[2582,2620]],[[2650,2650],\"mapped\",[2583,2620]],[[2651,2651],\"mapped\",[2588,2620]],[[2652,2652],\"valid\"],[[2653,2653],\"disallowed\"],[[2654,2654],\"mapped\",[2603,2620]],[[2655,2661],\"disallowed\"],[[2662,2676],\"valid\"],[[2677,2677],\"valid\"],[[2678,2688],\"disallowed\"],[[2689,2691],\"valid\"],[[2692,2692],\"disallowed\"],[[2693,2699],\"valid\"],[[2700,2700],\"valid\"],[[2701,2701],\"valid\"],[[2702,2702],\"disallowed\"],[[2703,2705],\"valid\"],[[2706,2706],\"disallowed\"],[[2707,2728],\"valid\"],[[2729,2729],\"disallowed\"],[[2730,2736],\"valid\"],[[2737,2737],\"disallowed\"],[[2738,2739],\"valid\"],[[2740,2740],\"disallowed\"],[[2741,2745],\"valid\"],[[2746,2747],\"disallowed\"],[[2748,2757],\"valid\"],[[2758,2758],\"disallowed\"],[[2759,2761],\"valid\"],[[2762,2762],\"disallowed\"],[[2763,2765],\"valid\"],[[2766,2767],\"disallowed\"],[[2768,2768],\"valid\"],[[2769,2783],\"disallowed\"],[[2784,2784],\"valid\"],[[2785,2787],\"valid\"],[[2788,2789],\"disallowed\"],[[2790,2799],\"valid\"],[[2800,2800],\"valid\",[],\"NV8\"],[[2801,2801],\"valid\",[],\"NV8\"],[[2802,2808],\"disallowed\"],[[2809,2809],\"valid\"],[[2810,2816],\"disallowed\"],[[2817,2819],\"valid\"],[[2820,2820],\"disallowed\"],[[2821,2828],\"valid\"],[[2829,2830],\"disallowed\"],[[2831,2832],\"valid\"],[[2833,2834],\"disallowed\"],[[2835,2856],\"valid\"],[[2857,2857],\"disallowed\"],[[2858,2864],\"valid\"],[[2865,2865],\"disallowed\"],[[2866,2867],\"valid\"],[[2868,2868],\"disallowed\"],[[2869,2869],\"valid\"],[[2870,2873],\"valid\"],[[2874,2875],\"disallowed\"],[[2876,2883],\"valid\"],[[2884,2884],\"valid\"],[[2885,2886],\"disallowed\"],[[2887,2888],\"valid\"],[[2889,2890],\"disallowed\"],[[2891,2893],\"valid\"],[[2894,2901],\"disallowed\"],[[2902,2903],\"valid\"],[[2904,2907],\"disallowed\"],[[2908,2908],\"mapped\",[2849,2876]],[[2909,2909],\"mapped\",[2850,2876]],[[2910,2910],\"disallowed\"],[[2911,2913],\"valid\"],[[2914,2915],\"valid\"],[[2916,2917],\"disallowed\"],[[2918,2927],\"valid\"],[[2928,2928],\"valid\",[],\"NV8\"],[[2929,2929],\"valid\"],[[2930,2935],\"valid\",[],\"NV8\"],[[2936,2945],\"disallowed\"],[[2946,2947],\"valid\"],[[2948,2948],\"disallowed\"],[[2949,2954],\"valid\"],[[2955,2957],\"disallowed\"],[[2958,2960],\"valid\"],[[2961,2961],\"disallowed\"],[[2962,2965],\"valid\"],[[2966,2968],\"disallowed\"],[[2969,2970],\"valid\"],[[2971,2971],\"disallowed\"],[[2972,2972],\"valid\"],[[2973,2973],\"disallowed\"],[[2974,2975],\"valid\"],[[2976,2978],\"disallowed\"],[[2979,2980],\"valid\"],[[2981,2983],\"disallowed\"],[[2984,2986],\"valid\"],[[2987,2989],\"disallowed\"],[[2990,2997],\"valid\"],[[2998,2998],\"valid\"],[[2999,3001],\"valid\"],[[3002,3005],\"disallowed\"],[[3006,3010],\"valid\"],[[3011,3013],\"disallowed\"],[[3014,3016],\"valid\"],[[3017,3017],\"disallowed\"],[[3018,3021],\"valid\"],[[3022,3023],\"disallowed\"],[[3024,3024],\"valid\"],[[3025,3030],\"disallowed\"],[[3031,3031],\"valid\"],[[3032,3045],\"disallowed\"],[[3046,3046],\"valid\"],[[3047,3055],\"valid\"],[[3056,3058],\"valid\",[],\"NV8\"],[[3059,3066],\"valid\",[],\"NV8\"],[[3067,3071],\"disallowed\"],[[3072,3072],\"valid\"],[[3073,3075],\"valid\"],[[3076,3076],\"disallowed\"],[[3077,3084],\"valid\"],[[3085,3085],\"disallowed\"],[[3086,3088],\"valid\"],[[3089,3089],\"disallowed\"],[[3090,3112],\"valid\"],[[3113,3113],\"disallowed\"],[[3114,3123],\"valid\"],[[3124,3124],\"valid\"],[[3125,3129],\"valid\"],[[3130,3132],\"disallowed\"],[[3133,3133],\"valid\"],[[3134,3140],\"valid\"],[[3141,3141],\"disallowed\"],[[3142,3144],\"valid\"],[[3145,3145],\"disallowed\"],[[3146,3149],\"valid\"],[[3150,3156],\"disallowed\"],[[3157,3158],\"valid\"],[[3159,3159],\"disallowed\"],[[3160,3161],\"valid\"],[[3162,3162],\"valid\"],[[3163,3167],\"disallowed\"],[[3168,3169],\"valid\"],[[3170,3171],\"valid\"],[[3172,3173],\"disallowed\"],[[3174,3183],\"valid\"],[[3184,3191],\"disallowed\"],[[3192,3199],\"valid\",[],\"NV8\"],[[3200,3200],\"disallowed\"],[[3201,3201],\"valid\"],[[3202,3203],\"valid\"],[[3204,3204],\"disallowed\"],[[3205,3212],\"valid\"],[[3213,3213],\"disallowed\"],[[3214,3216],\"valid\"],[[3217,3217],\"disallowed\"],[[3218,3240],\"valid\"],[[3241,3241],\"disallowed\"],[[3242,3251],\"valid\"],[[3252,3252],\"disallowed\"],[[3253,3257],\"valid\"],[[3258,3259],\"disallowed\"],[[3260,3261],\"valid\"],[[3262,3268],\"valid\"],[[3269,3269],\"disallowed\"],[[3270,3272],\"valid\"],[[3273,3273],\"disallowed\"],[[3274,3277],\"valid\"],[[3278,3284],\"disallowed\"],[[3285,3286],\"valid\"],[[3287,3293],\"disallowed\"],[[3294,3294],\"valid\"],[[3295,3295],\"disallowed\"],[[3296,3297],\"valid\"],[[3298,3299],\"valid\"],[[3300,3301],\"disallowed\"],[[3302,3311],\"valid\"],[[3312,3312],\"disallowed\"],[[3313,3314],\"valid\"],[[3315,3328],\"disallowed\"],[[3329,3329],\"valid\"],[[3330,3331],\"valid\"],[[3332,3332],\"disallowed\"],[[3333,3340],\"valid\"],[[3341,3341],\"disallowed\"],[[3342,3344],\"valid\"],[[3345,3345],\"disallowed\"],[[3346,3368],\"valid\"],[[3369,3369],\"valid\"],[[3370,3385],\"valid\"],[[3386,3386],\"valid\"],[[3387,3388],\"disallowed\"],[[3389,3389],\"valid\"],[[3390,3395],\"valid\"],[[3396,3396],\"valid\"],[[3397,3397],\"disallowed\"],[[3398,3400],\"valid\"],[[3401,3401],\"disallowed\"],[[3402,3405],\"valid\"],[[3406,3406],\"valid\"],[[3407,3414],\"disallowed\"],[[3415,3415],\"valid\"],[[3416,3422],\"disallowed\"],[[3423,3423],\"valid\"],[[3424,3425],\"valid\"],[[3426,3427],\"valid\"],[[3428,3429],\"disallowed\"],[[3430,3439],\"valid\"],[[3440,3445],\"valid\",[],\"NV8\"],[[3446,3448],\"disallowed\"],[[3449,3449],\"valid\",[],\"NV8\"],[[3450,3455],\"valid\"],[[3456,3457],\"disallowed\"],[[3458,3459],\"valid\"],[[3460,3460],\"disallowed\"],[[3461,3478],\"valid\"],[[3479,3481],\"disallowed\"],[[3482,3505],\"valid\"],[[3506,3506],\"disallowed\"],[[3507,3515],\"valid\"],[[3516,3516],\"disallowed\"],[[3517,3517],\"valid\"],[[3518,3519],\"disallowed\"],[[3520,3526],\"valid\"],[[3527,3529],\"disallowed\"],[[3530,3530],\"valid\"],[[3531,3534],\"disallowed\"],[[3535,3540],\"valid\"],[[3541,3541],\"disallowed\"],[[3542,3542],\"valid\"],[[3543,3543],\"disallowed\"],[[3544,3551],\"valid\"],[[3552,3557],\"disallowed\"],[[3558,3567],\"valid\"],[[3568,3569],\"disallowed\"],[[3570,3571],\"valid\"],[[3572,3572],\"valid\",[],\"NV8\"],[[3573,3584],\"disallowed\"],[[3585,3634],\"valid\"],[[3635,3635],\"mapped\",[3661,3634]],[[3636,3642],\"valid\"],[[3643,3646],\"disallowed\"],[[3647,3647],\"valid\",[],\"NV8\"],[[3648,3662],\"valid\"],[[3663,3663],\"valid\",[],\"NV8\"],[[3664,3673],\"valid\"],[[3674,3675],\"valid\",[],\"NV8\"],[[3676,3712],\"disallowed\"],[[3713,3714],\"valid\"],[[3715,3715],\"disallowed\"],[[3716,3716],\"valid\"],[[3717,3718],\"disallowed\"],[[3719,3720],\"valid\"],[[3721,3721],\"disallowed\"],[[3722,3722],\"valid\"],[[3723,3724],\"disallowed\"],[[3725,3725],\"valid\"],[[3726,3731],\"disallowed\"],[[3732,3735],\"valid\"],[[3736,3736],\"disallowed\"],[[3737,3743],\"valid\"],[[3744,3744],\"disallowed\"],[[3745,3747],\"valid\"],[[3748,3748],\"disallowed\"],[[3749,3749],\"valid\"],[[3750,3750],\"disallowed\"],[[3751,3751],\"valid\"],[[3752,3753],\"disallowed\"],[[3754,3755],\"valid\"],[[3756,3756],\"disallowed\"],[[3757,3762],\"valid\"],[[3763,3763],\"mapped\",[3789,3762]],[[3764,3769],\"valid\"],[[3770,3770],\"disallowed\"],[[3771,3773],\"valid\"],[[3774,3775],\"disallowed\"],[[3776,3780],\"valid\"],[[3781,3781],\"disallowed\"],[[3782,3782],\"valid\"],[[3783,3783],\"disallowed\"],[[3784,3789],\"valid\"],[[3790,3791],\"disallowed\"],[[3792,3801],\"valid\"],[[3802,3803],\"disallowed\"],[[3804,3804],\"mapped\",[3755,3737]],[[3805,3805],\"mapped\",[3755,3745]],[[3806,3807],\"valid\"],[[3808,3839],\"disallowed\"],[[3840,3840],\"valid\"],[[3841,3850],\"valid\",[],\"NV8\"],[[3851,3851],\"valid\"],[[3852,3852],\"mapped\",[3851]],[[3853,3863],\"valid\",[],\"NV8\"],[[3864,3865],\"valid\"],[[3866,3871],\"valid\",[],\"NV8\"],[[3872,3881],\"valid\"],[[3882,3892],\"valid\",[],\"NV8\"],[[3893,3893],\"valid\"],[[3894,3894],\"valid\",[],\"NV8\"],[[3895,3895],\"valid\"],[[3896,3896],\"valid\",[],\"NV8\"],[[3897,3897],\"valid\"],[[3898,3901],\"valid\",[],\"NV8\"],[[3902,3906],\"valid\"],[[3907,3907],\"mapped\",[3906,4023]],[[3908,3911],\"valid\"],[[3912,3912],\"disallowed\"],[[3913,3916],\"valid\"],[[3917,3917],\"mapped\",[3916,4023]],[[3918,3921],\"valid\"],[[3922,3922],\"mapped\",[3921,4023]],[[3923,3926],\"valid\"],[[3927,3927],\"mapped\",[3926,4023]],[[3928,3931],\"valid\"],[[3932,3932],\"mapped\",[3931,4023]],[[3933,3944],\"valid\"],[[3945,3945],\"mapped\",[3904,4021]],[[3946,3946],\"valid\"],[[3947,3948],\"valid\"],[[3949,3952],\"disallowed\"],[[3953,3954],\"valid\"],[[3955,3955],\"mapped\",[3953,3954]],[[3956,3956],\"valid\"],[[3957,3957],\"mapped\",[3953,3956]],[[3958,3958],\"mapped\",[4018,3968]],[[3959,3959],\"mapped\",[4018,3953,3968]],[[3960,3960],\"mapped\",[4019,3968]],[[3961,3961],\"mapped\",[4019,3953,3968]],[[3962,3968],\"valid\"],[[3969,3969],\"mapped\",[3953,3968]],[[3970,3972],\"valid\"],[[3973,3973],\"valid\",[],\"NV8\"],[[3974,3979],\"valid\"],[[3980,3983],\"valid\"],[[3984,3986],\"valid\"],[[3987,3987],\"mapped\",[3986,4023]],[[3988,3989],\"valid\"],[[3990,3990],\"valid\"],[[3991,3991],\"valid\"],[[3992,3992],\"disallowed\"],[[3993,3996],\"valid\"],[[3997,3997],\"mapped\",[3996,4023]],[[3998,4001],\"valid\"],[[4002,4002],\"mapped\",[4001,4023]],[[4003,4006],\"valid\"],[[4007,4007],\"mapped\",[4006,4023]],[[4008,4011],\"valid\"],[[4012,4012],\"mapped\",[4011,4023]],[[4013,4013],\"valid\"],[[4014,4016],\"valid\"],[[4017,4023],\"valid\"],[[4024,4024],\"valid\"],[[4025,4025],\"mapped\",[3984,4021]],[[4026,4028],\"valid\"],[[4029,4029],\"disallowed\"],[[4030,4037],\"valid\",[],\"NV8\"],[[4038,4038],\"valid\"],[[4039,4044],\"valid\",[],\"NV8\"],[[4045,4045],\"disallowed\"],[[4046,4046],\"valid\",[],\"NV8\"],[[4047,4047],\"valid\",[],\"NV8\"],[[4048,4049],\"valid\",[],\"NV8\"],[[4050,4052],\"valid\",[],\"NV8\"],[[4053,4056],\"valid\",[],\"NV8\"],[[4057,4058],\"valid\",[],\"NV8\"],[[4059,4095],\"disallowed\"],[[4096,4129],\"valid\"],[[4130,4130],\"valid\"],[[4131,4135],\"valid\"],[[4136,4136],\"valid\"],[[4137,4138],\"valid\"],[[4139,4139],\"valid\"],[[4140,4146],\"valid\"],[[4147,4149],\"valid\"],[[4150,4153],\"valid\"],[[4154,4159],\"valid\"],[[4160,4169],\"valid\"],[[4170,4175],\"valid\",[],\"NV8\"],[[4176,4185],\"valid\"],[[4186,4249],\"valid\"],[[4250,4253],\"valid\"],[[4254,4255],\"valid\",[],\"NV8\"],[[4256,4293],\"disallowed\"],[[4294,4294],\"disallowed\"],[[4295,4295],\"mapped\",[11559]],[[4296,4300],\"disallowed\"],[[4301,4301],\"mapped\",[11565]],[[4302,4303],\"disallowed\"],[[4304,4342],\"valid\"],[[4343,4344],\"valid\"],[[4345,4346],\"valid\"],[[4347,4347],\"valid\",[],\"NV8\"],[[4348,4348],\"mapped\",[4316]],[[4349,4351],\"valid\"],[[4352,4441],\"valid\",[],\"NV8\"],[[4442,4446],\"valid\",[],\"NV8\"],[[4447,4448],\"disallowed\"],[[4449,4514],\"valid\",[],\"NV8\"],[[4515,4519],\"valid\",[],\"NV8\"],[[4520,4601],\"valid\",[],\"NV8\"],[[4602,4607],\"valid\",[],\"NV8\"],[[4608,4614],\"valid\"],[[4615,4615],\"valid\"],[[4616,4678],\"valid\"],[[4679,4679],\"valid\"],[[4680,4680],\"valid\"],[[4681,4681],\"disallowed\"],[[4682,4685],\"valid\"],[[4686,4687],\"disallowed\"],[[4688,4694],\"valid\"],[[4695,4695],\"disallowed\"],[[4696,4696],\"valid\"],[[4697,4697],\"disallowed\"],[[4698,4701],\"valid\"],[[4702,4703],\"disallowed\"],[[4704,4742],\"valid\"],[[4743,4743],\"valid\"],[[4744,4744],\"valid\"],[[4745,4745],\"disallowed\"],[[4746,4749],\"valid\"],[[4750,4751],\"disallowed\"],[[4752,4782],\"valid\"],[[4783,4783],\"valid\"],[[4784,4784],\"valid\"],[[4785,4785],\"disallowed\"],[[4786,4789],\"valid\"],[[4790,4791],\"disallowed\"],[[4792,4798],\"valid\"],[[4799,4799],\"disallowed\"],[[4800,4800],\"valid\"],[[4801,4801],\"disallowed\"],[[4802,4805],\"valid\"],[[4806,4807],\"disallowed\"],[[4808,4814],\"valid\"],[[4815,4815],\"valid\"],[[4816,4822],\"valid\"],[[4823,4823],\"disallowed\"],[[4824,4846],\"valid\"],[[4847,4847],\"valid\"],[[4848,4878],\"valid\"],[[4879,4879],\"valid\"],[[4880,4880],\"valid\"],[[4881,4881],\"disallowed\"],[[4882,4885],\"valid\"],[[4886,4887],\"disallowed\"],[[4888,4894],\"valid\"],[[4895,4895],\"valid\"],[[4896,4934],\"valid\"],[[4935,4935],\"valid\"],[[4936,4954],\"valid\"],[[4955,4956],\"disallowed\"],[[4957,4958],\"valid\"],[[4959,4959],\"valid\"],[[4960,4960],\"valid\",[],\"NV8\"],[[4961,4988],\"valid\",[],\"NV8\"],[[4989,4991],\"disallowed\"],[[4992,5007],\"valid\"],[[5008,5017],\"valid\",[],\"NV8\"],[[5018,5023],\"disallowed\"],[[5024,5108],\"valid\"],[[5109,5109],\"valid\"],[[5110,5111],\"disallowed\"],[[5112,5112],\"mapped\",[5104]],[[5113,5113],\"mapped\",[5105]],[[5114,5114],\"mapped\",[5106]],[[5115,5115],\"mapped\",[5107]],[[5116,5116],\"mapped\",[5108]],[[5117,5117],\"mapped\",[5109]],[[5118,5119],\"disallowed\"],[[5120,5120],\"valid\",[],\"NV8\"],[[5121,5740],\"valid\"],[[5741,5742],\"valid\",[],\"NV8\"],[[5743,5750],\"valid\"],[[5751,5759],\"valid\"],[[5760,5760],\"disallowed\"],[[5761,5786],\"valid\"],[[5787,5788],\"valid\",[],\"NV8\"],[[5789,5791],\"disallowed\"],[[5792,5866],\"valid\"],[[5867,5872],\"valid\",[],\"NV8\"],[[5873,5880],\"valid\"],[[5881,5887],\"disallowed\"],[[5888,5900],\"valid\"],[[5901,5901],\"disallowed\"],[[5902,5908],\"valid\"],[[5909,5919],\"disallowed\"],[[5920,5940],\"valid\"],[[5941,5942],\"valid\",[],\"NV8\"],[[5943,5951],\"disallowed\"],[[5952,5971],\"valid\"],[[5972,5983],\"disallowed\"],[[5984,5996],\"valid\"],[[5997,5997],\"disallowed\"],[[5998,6000],\"valid\"],[[6001,6001],\"disallowed\"],[[6002,6003],\"valid\"],[[6004,6015],\"disallowed\"],[[6016,6067],\"valid\"],[[6068,6069],\"disallowed\"],[[6070,6099],\"valid\"],[[6100,6102],\"valid\",[],\"NV8\"],[[6103,6103],\"valid\"],[[6104,6107],\"valid\",[],\"NV8\"],[[6108,6108],\"valid\"],[[6109,6109],\"valid\"],[[6110,6111],\"disallowed\"],[[6112,6121],\"valid\"],[[6122,6127],\"disallowed\"],[[6128,6137],\"valid\",[],\"NV8\"],[[6138,6143],\"disallowed\"],[[6144,6149],\"valid\",[],\"NV8\"],[[6150,6150],\"disallowed\"],[[6151,6154],\"valid\",[],\"NV8\"],[[6155,6157],\"ignored\"],[[6158,6158],\"disallowed\"],[[6159,6159],\"disallowed\"],[[6160,6169],\"valid\"],[[6170,6175],\"disallowed\"],[[6176,6263],\"valid\"],[[6264,6271],\"disallowed\"],[[6272,6313],\"valid\"],[[6314,6314],\"valid\"],[[6315,6319],\"disallowed\"],[[6320,6389],\"valid\"],[[6390,6399],\"disallowed\"],[[6400,6428],\"valid\"],[[6429,6430],\"valid\"],[[6431,6431],\"disallowed\"],[[6432,6443],\"valid\"],[[6444,6447],\"disallowed\"],[[6448,6459],\"valid\"],[[6460,6463],\"disallowed\"],[[6464,6464],\"valid\",[],\"NV8\"],[[6465,6467],\"disallowed\"],[[6468,6469],\"valid\",[],\"NV8\"],[[6470,6509],\"valid\"],[[6510,6511],\"disallowed\"],[[6512,6516],\"valid\"],[[6517,6527],\"disallowed\"],[[6528,6569],\"valid\"],[[6570,6571],\"valid\"],[[6572,6575],\"disallowed\"],[[6576,6601],\"valid\"],[[6602,6607],\"disallowed\"],[[6608,6617],\"valid\"],[[6618,6618],\"valid\",[],\"XV8\"],[[6619,6621],\"disallowed\"],[[6622,6623],\"valid\",[],\"NV8\"],[[6624,6655],\"valid\",[],\"NV8\"],[[6656,6683],\"valid\"],[[6684,6685],\"disallowed\"],[[6686,6687],\"valid\",[],\"NV8\"],[[6688,6750],\"valid\"],[[6751,6751],\"disallowed\"],[[6752,6780],\"valid\"],[[6781,6782],\"disallowed\"],[[6783,6793],\"valid\"],[[6794,6799],\"disallowed\"],[[6800,6809],\"valid\"],[[6810,6815],\"disallowed\"],[[6816,6822],\"valid\",[],\"NV8\"],[[6823,6823],\"valid\"],[[6824,6829],\"valid\",[],\"NV8\"],[[6830,6831],\"disallowed\"],[[6832,6845],\"valid\"],[[6846,6846],\"valid\",[],\"NV8\"],[[6847,6911],\"disallowed\"],[[6912,6987],\"valid\"],[[6988,6991],\"disallowed\"],[[6992,7001],\"valid\"],[[7002,7018],\"valid\",[],\"NV8\"],[[7019,7027],\"valid\"],[[7028,7036],\"valid\",[],\"NV8\"],[[7037,7039],\"disallowed\"],[[7040,7082],\"valid\"],[[7083,7085],\"valid\"],[[7086,7097],\"valid\"],[[7098,7103],\"valid\"],[[7104,7155],\"valid\"],[[7156,7163],\"disallowed\"],[[7164,7167],\"valid\",[],\"NV8\"],[[7168,7223],\"valid\"],[[7224,7226],\"disallowed\"],[[7227,7231],\"valid\",[],\"NV8\"],[[7232,7241],\"valid\"],[[7242,7244],\"disallowed\"],[[7245,7293],\"valid\"],[[7294,7295],\"valid\",[],\"NV8\"],[[7296,7359],\"disallowed\"],[[7360,7367],\"valid\",[],\"NV8\"],[[7368,7375],\"disallowed\"],[[7376,7378],\"valid\"],[[7379,7379],\"valid\",[],\"NV8\"],[[7380,7410],\"valid\"],[[7411,7414],\"valid\"],[[7415,7415],\"disallowed\"],[[7416,7417],\"valid\"],[[7418,7423],\"disallowed\"],[[7424,7467],\"valid\"],[[7468,7468],\"mapped\",[97]],[[7469,7469],\"mapped\",[230]],[[7470,7470],\"mapped\",[98]],[[7471,7471],\"valid\"],[[7472,7472],\"mapped\",[100]],[[7473,7473],\"mapped\",[101]],[[7474,7474],\"mapped\",[477]],[[7475,7475],\"mapped\",[103]],[[7476,7476],\"mapped\",[104]],[[7477,7477],\"mapped\",[105]],[[7478,7478],\"mapped\",[106]],[[7479,7479],\"mapped\",[107]],[[7480,7480],\"mapped\",[108]],[[7481,7481],\"mapped\",[109]],[[7482,7482],\"mapped\",[110]],[[7483,7483],\"valid\"],[[7484,7484],\"mapped\",[111]],[[7485,7485],\"mapped\",[547]],[[7486,7486],\"mapped\",[112]],[[7487,7487],\"mapped\",[114]],[[7488,7488],\"mapped\",[116]],[[7489,7489],\"mapped\",[117]],[[7490,7490],\"mapped\",[119]],[[7491,7491],\"mapped\",[97]],[[7492,7492],\"mapped\",[592]],[[7493,7493],\"mapped\",[593]],[[7494,7494],\"mapped\",[7426]],[[7495,7495],\"mapped\",[98]],[[7496,7496],\"mapped\",[100]],[[7497,7497],\"mapped\",[101]],[[7498,7498],\"mapped\",[601]],[[7499,7499],\"mapped\",[603]],[[7500,7500],\"mapped\",[604]],[[7501,7501],\"mapped\",[103]],[[7502,7502],\"valid\"],[[7503,7503],\"mapped\",[107]],[[7504,7504],\"mapped\",[109]],[[7505,7505],\"mapped\",[331]],[[7506,7506],\"mapped\",[111]],[[7507,7507],\"mapped\",[596]],[[7508,7508],\"mapped\",[7446]],[[7509,7509],\"mapped\",[7447]],[[7510,7510],\"mapped\",[112]],[[7511,7511],\"mapped\",[116]],[[7512,7512],\"mapped\",[117]],[[7513,7513],\"mapped\",[7453]],[[7514,7514],\"mapped\",[623]],[[7515,7515],\"mapped\",[118]],[[7516,7516],\"mapped\",[7461]],[[7517,7517],\"mapped\",[946]],[[7518,7518],\"mapped\",[947]],[[7519,7519],\"mapped\",[948]],[[7520,7520],\"mapped\",[966]],[[7521,7521],\"mapped\",[967]],[[7522,7522],\"mapped\",[105]],[[7523,7523],\"mapped\",[114]],[[7524,7524],\"mapped\",[117]],[[7525,7525],\"mapped\",[118]],[[7526,7526],\"mapped\",[946]],[[7527,7527],\"mapped\",[947]],[[7528,7528],\"mapped\",[961]],[[7529,7529],\"mapped\",[966]],[[7530,7530],\"mapped\",[967]],[[7531,7531],\"valid\"],[[7532,7543],\"valid\"],[[7544,7544],\"mapped\",[1085]],[[7545,7578],\"valid\"],[[7579,7579],\"mapped\",[594]],[[7580,7580],\"mapped\",[99]],[[7581,7581],\"mapped\",[597]],[[7582,7582],\"mapped\",[240]],[[7583,7583],\"mapped\",[604]],[[7584,7584],\"mapped\",[102]],[[7585,7585],\"mapped\",[607]],[[7586,7586],\"mapped\",[609]],[[7587,7587],\"mapped\",[613]],[[7588,7588],\"mapped\",[616]],[[7589,7589],\"mapped\",[617]],[[7590,7590],\"mapped\",[618]],[[7591,7591],\"mapped\",[7547]],[[7592,7592],\"mapped\",[669]],[[7593,7593],\"mapped\",[621]],[[7594,7594],\"mapped\",[7557]],[[7595,7595],\"mapped\",[671]],[[7596,7596],\"mapped\",[625]],[[7597,7597],\"mapped\",[624]],[[7598,7598],\"mapped\",[626]],[[7599,7599],\"mapped\",[627]],[[7600,7600],\"mapped\",[628]],[[7601,7601],\"mapped\",[629]],[[7602,7602],\"mapped\",[632]],[[7603,7603],\"mapped\",[642]],[[7604,7604],\"mapped\",[643]],[[7605,7605],\"mapped\",[427]],[[7606,7606],\"mapped\",[649]],[[7607,7607],\"mapped\",[650]],[[7608,7608],\"mapped\",[7452]],[[7609,7609],\"mapped\",[651]],[[7610,7610],\"mapped\",[652]],[[7611,7611],\"mapped\",[122]],[[7612,7612],\"mapped\",[656]],[[7613,7613],\"mapped\",[657]],[[7614,7614],\"mapped\",[658]],[[7615,7615],\"mapped\",[952]],[[7616,7619],\"valid\"],[[7620,7626],\"valid\"],[[7627,7654],\"valid\"],[[7655,7669],\"valid\"],[[7670,7675],\"disallowed\"],[[7676,7676],\"valid\"],[[7677,7677],\"valid\"],[[7678,7679],\"valid\"],[[7680,7680],\"mapped\",[7681]],[[7681,7681],\"valid\"],[[7682,7682],\"mapped\",[7683]],[[7683,7683],\"valid\"],[[7684,7684],\"mapped\",[7685]],[[7685,7685],\"valid\"],[[7686,7686],\"mapped\",[7687]],[[7687,7687],\"valid\"],[[7688,7688],\"mapped\",[7689]],[[7689,7689],\"valid\"],[[7690,7690],\"mapped\",[7691]],[[7691,7691],\"valid\"],[[7692,7692],\"mapped\",[7693]],[[7693,7693],\"valid\"],[[7694,7694],\"mapped\",[7695]],[[7695,7695],\"valid\"],[[7696,7696],\"mapped\",[7697]],[[7697,7697],\"valid\"],[[7698,7698],\"mapped\",[7699]],[[7699,7699],\"valid\"],[[7700,7700],\"mapped\",[7701]],[[7701,7701],\"valid\"],[[7702,7702],\"mapped\",[7703]],[[7703,7703],\"valid\"],[[7704,7704],\"mapped\",[7705]],[[7705,7705],\"valid\"],[[7706,7706],\"mapped\",[7707]],[[7707,7707],\"valid\"],[[7708,7708],\"mapped\",[7709]],[[7709,7709],\"valid\"],[[7710,7710],\"mapped\",[7711]],[[7711,7711],\"valid\"],[[7712,7712],\"mapped\",[7713]],[[7713,7713],\"valid\"],[[7714,7714],\"mapped\",[7715]],[[7715,7715],\"valid\"],[[7716,7716],\"mapped\",[7717]],[[7717,7717],\"valid\"],[[7718,7718],\"mapped\",[7719]],[[7719,7719],\"valid\"],[[7720,7720],\"mapped\",[7721]],[[7721,7721],\"valid\"],[[7722,7722],\"mapped\",[7723]],[[7723,7723],\"valid\"],[[7724,7724],\"mapped\",[7725]],[[7725,7725],\"valid\"],[[7726,7726],\"mapped\",[7727]],[[7727,7727],\"valid\"],[[7728,7728],\"mapped\",[7729]],[[7729,7729],\"valid\"],[[7730,7730],\"mapped\",[7731]],[[7731,7731],\"valid\"],[[7732,7732],\"mapped\",[7733]],[[7733,7733],\"valid\"],[[7734,7734],\"mapped\",[7735]],[[7735,7735],\"valid\"],[[7736,7736],\"mapped\",[7737]],[[7737,7737],\"valid\"],[[7738,7738],\"mapped\",[7739]],[[7739,7739],\"valid\"],[[7740,7740],\"mapped\",[7741]],[[7741,7741],\"valid\"],[[7742,7742],\"mapped\",[7743]],[[7743,7743],\"valid\"],[[7744,7744],\"mapped\",[7745]],[[7745,7745],\"valid\"],[[7746,7746],\"mapped\",[7747]],[[7747,7747],\"valid\"],[[7748,7748],\"mapped\",[7749]],[[7749,7749],\"valid\"],[[7750,7750],\"mapped\",[7751]],[[7751,7751],\"valid\"],[[7752,7752],\"mapped\",[7753]],[[7753,7753],\"valid\"],[[7754,7754],\"mapped\",[7755]],[[7755,7755],\"valid\"],[[7756,7756],\"mapped\",[7757]],[[7757,7757],\"valid\"],[[7758,7758],\"mapped\",[7759]],[[7759,7759],\"valid\"],[[7760,7760],\"mapped\",[7761]],[[7761,7761],\"valid\"],[[7762,7762],\"mapped\",[7763]],[[7763,7763],\"valid\"],[[7764,7764],\"mapped\",[7765]],[[7765,7765],\"valid\"],[[7766,7766],\"mapped\",[7767]],[[7767,7767],\"valid\"],[[7768,7768],\"mapped\",[7769]],[[7769,7769],\"valid\"],[[7770,7770],\"mapped\",[7771]],[[7771,7771],\"valid\"],[[7772,7772],\"mapped\",[7773]],[[7773,7773],\"valid\"],[[7774,7774],\"mapped\",[7775]],[[7775,7775],\"valid\"],[[7776,7776],\"mapped\",[7777]],[[7777,7777],\"valid\"],[[7778,7778],\"mapped\",[7779]],[[7779,7779],\"valid\"],[[7780,7780],\"mapped\",[7781]],[[7781,7781],\"valid\"],[[7782,7782],\"mapped\",[7783]],[[7783,7783],\"valid\"],[[7784,7784],\"mapped\",[7785]],[[7785,7785],\"valid\"],[[7786,7786],\"mapped\",[7787]],[[7787,7787],\"valid\"],[[7788,7788],\"mapped\",[7789]],[[7789,7789],\"valid\"],[[7790,7790],\"mapped\",[7791]],[[7791,7791],\"valid\"],[[7792,7792],\"mapped\",[7793]],[[7793,7793],\"valid\"],[[7794,7794],\"mapped\",[7795]],[[7795,7795],\"valid\"],[[7796,7796],\"mapped\",[7797]],[[7797,7797],\"valid\"],[[7798,7798],\"mapped\",[7799]],[[7799,7799],\"valid\"],[[7800,7800],\"mapped\",[7801]],[[7801,7801],\"valid\"],[[7802,7802],\"mapped\",[7803]],[[7803,7803],\"valid\"],[[7804,7804],\"mapped\",[7805]],[[7805,7805],\"valid\"],[[7806,7806],\"mapped\",[7807]],[[7807,7807],\"valid\"],[[7808,7808],\"mapped\",[7809]],[[7809,7809],\"valid\"],[[7810,7810],\"mapped\",[7811]],[[7811,7811],\"valid\"],[[7812,7812],\"mapped\",[7813]],[[7813,7813],\"valid\"],[[7814,7814],\"mapped\",[7815]],[[7815,7815],\"valid\"],[[7816,7816],\"mapped\",[7817]],[[7817,7817],\"valid\"],[[7818,7818],\"mapped\",[7819]],[[7819,7819],\"valid\"],[[7820,7820],\"mapped\",[7821]],[[7821,7821],\"valid\"],[[7822,7822],\"mapped\",[7823]],[[7823,7823],\"valid\"],[[7824,7824],\"mapped\",[7825]],[[7825,7825],\"valid\"],[[7826,7826],\"mapped\",[7827]],[[7827,7827],\"valid\"],[[7828,7828],\"mapped\",[7829]],[[7829,7833],\"valid\"],[[7834,7834],\"mapped\",[97,702]],[[7835,7835],\"mapped\",[7777]],[[7836,7837],\"valid\"],[[7838,7838],\"mapped\",[115,115]],[[7839,7839],\"valid\"],[[7840,7840],\"mapped\",[7841]],[[7841,7841],\"valid\"],[[7842,7842],\"mapped\",[7843]],[[7843,7843],\"valid\"],[[7844,7844],\"mapped\",[7845]],[[7845,7845],\"valid\"],[[7846,7846],\"mapped\",[7847]],[[7847,7847],\"valid\"],[[7848,7848],\"mapped\",[7849]],[[7849,7849],\"valid\"],[[7850,7850],\"mapped\",[7851]],[[7851,7851],\"valid\"],[[7852,7852],\"mapped\",[7853]],[[7853,7853],\"valid\"],[[7854,7854],\"mapped\",[7855]],[[7855,7855],\"valid\"],[[7856,7856],\"mapped\",[7857]],[[7857,7857],\"valid\"],[[7858,7858],\"mapped\",[7859]],[[7859,7859],\"valid\"],[[7860,7860],\"mapped\",[7861]],[[7861,7861],\"valid\"],[[7862,7862],\"mapped\",[7863]],[[7863,7863],\"valid\"],[[7864,7864],\"mapped\",[7865]],[[7865,7865],\"valid\"],[[7866,7866],\"mapped\",[7867]],[[7867,7867],\"valid\"],[[7868,7868],\"mapped\",[7869]],[[7869,7869],\"valid\"],[[7870,7870],\"mapped\",[7871]],[[7871,7871],\"valid\"],[[7872,7872],\"mapped\",[7873]],[[7873,7873],\"valid\"],[[7874,7874],\"mapped\",[7875]],[[7875,7875],\"valid\"],[[7876,7876],\"mapped\",[7877]],[[7877,7877],\"valid\"],[[7878,7878],\"mapped\",[7879]],[[7879,7879],\"valid\"],[[7880,7880],\"mapped\",[7881]],[[7881,7881],\"valid\"],[[7882,7882],\"mapped\",[7883]],[[7883,7883],\"valid\"],[[7884,7884],\"mapped\",[7885]],[[7885,7885],\"valid\"],[[7886,7886],\"mapped\",[7887]],[[7887,7887],\"valid\"],[[7888,7888],\"mapped\",[7889]],[[7889,7889],\"valid\"],[[7890,7890],\"mapped\",[7891]],[[7891,7891],\"valid\"],[[7892,7892],\"mapped\",[7893]],[[7893,7893],\"valid\"],[[7894,7894],\"mapped\",[7895]],[[7895,7895],\"valid\"],[[7896,7896],\"mapped\",[7897]],[[7897,7897],\"valid\"],[[7898,7898],\"mapped\",[7899]],[[7899,7899],\"valid\"],[[7900,7900],\"mapped\",[7901]],[[7901,7901],\"valid\"],[[7902,7902],\"mapped\",[7903]],[[7903,7903],\"valid\"],[[7904,7904],\"mapped\",[7905]],[[7905,7905],\"valid\"],[[7906,7906],\"mapped\",[7907]],[[7907,7907],\"valid\"],[[7908,7908],\"mapped\",[7909]],[[7909,7909],\"valid\"],[[7910,7910],\"mapped\",[7911]],[[7911,7911],\"valid\"],[[7912,7912],\"mapped\",[7913]],[[7913,7913],\"valid\"],[[7914,7914],\"mapped\",[7915]],[[7915,7915],\"valid\"],[[7916,7916],\"mapped\",[7917]],[[7917,7917],\"valid\"],[[7918,7918],\"mapped\",[7919]],[[7919,7919],\"valid\"],[[7920,7920],\"mapped\",[7921]],[[7921,7921],\"valid\"],[[7922,7922],\"mapped\",[7923]],[[7923,7923],\"valid\"],[[7924,7924],\"mapped\",[7925]],[[7925,7925],\"valid\"],[[7926,7926],\"mapped\",[7927]],[[7927,7927],\"valid\"],[[7928,7928],\"mapped\",[7929]],[[7929,7929],\"valid\"],[[7930,7930],\"mapped\",[7931]],[[7931,7931],\"valid\"],[[7932,7932],\"mapped\",[7933]],[[7933,7933],\"valid\"],[[7934,7934],\"mapped\",[7935]],[[7935,7935],\"valid\"],[[7936,7943],\"valid\"],[[7944,7944],\"mapped\",[7936]],[[7945,7945],\"mapped\",[7937]],[[7946,7946],\"mapped\",[7938]],[[7947,7947],\"mapped\",[7939]],[[7948,7948],\"mapped\",[7940]],[[7949,7949],\"mapped\",[7941]],[[7950,7950],\"mapped\",[7942]],[[7951,7951],\"mapped\",[7943]],[[7952,7957],\"valid\"],[[7958,7959],\"disallowed\"],[[7960,7960],\"mapped\",[7952]],[[7961,7961],\"mapped\",[7953]],[[7962,7962],\"mapped\",[7954]],[[7963,7963],\"mapped\",[7955]],[[7964,7964],\"mapped\",[7956]],[[7965,7965],\"mapped\",[7957]],[[7966,7967],\"disallowed\"],[[7968,7975],\"valid\"],[[7976,7976],\"mapped\",[7968]],[[7977,7977],\"mapped\",[7969]],[[7978,7978],\"mapped\",[7970]],[[7979,7979],\"mapped\",[7971]],[[7980,7980],\"mapped\",[7972]],[[7981,7981],\"mapped\",[7973]],[[7982,7982],\"mapped\",[7974]],[[7983,7983],\"mapped\",[7975]],[[7984,7991],\"valid\"],[[7992,7992],\"mapped\",[7984]],[[7993,7993],\"mapped\",[7985]],[[7994,7994],\"mapped\",[7986]],[[7995,7995],\"mapped\",[7987]],[[7996,7996],\"mapped\",[7988]],[[7997,7997],\"mapped\",[7989]],[[7998,7998],\"mapped\",[7990]],[[7999,7999],\"mapped\",[7991]],[[8000,8005],\"valid\"],[[8006,8007],\"disallowed\"],[[8008,8008],\"mapped\",[8000]],[[8009,8009],\"mapped\",[8001]],[[8010,8010],\"mapped\",[8002]],[[8011,8011],\"mapped\",[8003]],[[8012,8012],\"mapped\",[8004]],[[8013,8013],\"mapped\",[8005]],[[8014,8015],\"disallowed\"],[[8016,8023],\"valid\"],[[8024,8024],\"disallowed\"],[[8025,8025],\"mapped\",[8017]],[[8026,8026],\"disallowed\"],[[8027,8027],\"mapped\",[8019]],[[8028,8028],\"disallowed\"],[[8029,8029],\"mapped\",[8021]],[[8030,8030],\"disallowed\"],[[8031,8031],\"mapped\",[8023]],[[8032,8039],\"valid\"],[[8040,8040],\"mapped\",[8032]],[[8041,8041],\"mapped\",[8033]],[[8042,8042],\"mapped\",[8034]],[[8043,8043],\"mapped\",[8035]],[[8044,8044],\"mapped\",[8036]],[[8045,8045],\"mapped\",[8037]],[[8046,8046],\"mapped\",[8038]],[[8047,8047],\"mapped\",[8039]],[[8048,8048],\"valid\"],[[8049,8049],\"mapped\",[940]],[[8050,8050],\"valid\"],[[8051,8051],\"mapped\",[941]],[[8052,8052],\"valid\"],[[8053,8053],\"mapped\",[942]],[[8054,8054],\"valid\"],[[8055,8055],\"mapped\",[943]],[[8056,8056],\"valid\"],[[8057,8057],\"mapped\",[972]],[[8058,8058],\"valid\"],[[8059,8059],\"mapped\",[973]],[[8060,8060],\"valid\"],[[8061,8061],\"mapped\",[974]],[[8062,8063],\"disallowed\"],[[8064,8064],\"mapped\",[7936,953]],[[8065,8065],\"mapped\",[7937,953]],[[8066,8066],\"mapped\",[7938,953]],[[8067,8067],\"mapped\",[7939,953]],[[8068,8068],\"mapped\",[7940,953]],[[8069,8069],\"mapped\",[7941,953]],[[8070,8070],\"mapped\",[7942,953]],[[8071,8071],\"mapped\",[7943,953]],[[8072,8072],\"mapped\",[7936,953]],[[8073,8073],\"mapped\",[7937,953]],[[8074,8074],\"mapped\",[7938,953]],[[8075,8075],\"mapped\",[7939,953]],[[8076,8076],\"mapped\",[7940,953]],[[8077,8077],\"mapped\",[7941,953]],[[8078,8078],\"mapped\",[7942,953]],[[8079,8079],\"mapped\",[7943,953]],[[8080,8080],\"mapped\",[7968,953]],[[8081,8081],\"mapped\",[7969,953]],[[8082,8082],\"mapped\",[7970,953]],[[8083,8083],\"mapped\",[7971,953]],[[8084,8084],\"mapped\",[7972,953]],[[8085,8085],\"mapped\",[7973,953]],[[8086,8086],\"mapped\",[7974,953]],[[8087,8087],\"mapped\",[7975,953]],[[8088,8088],\"mapped\",[7968,953]],[[8089,8089],\"mapped\",[7969,953]],[[8090,8090],\"mapped\",[7970,953]],[[8091,8091],\"mapped\",[7971,953]],[[8092,8092],\"mapped\",[7972,953]],[[8093,8093],\"mapped\",[7973,953]],[[8094,8094],\"mapped\",[7974,953]],[[8095,8095],\"mapped\",[7975,953]],[[8096,8096],\"mapped\",[8032,953]],[[8097,8097],\"mapped\",[8033,953]],[[8098,8098],\"mapped\",[8034,953]],[[8099,8099],\"mapped\",[8035,953]],[[8100,8100],\"mapped\",[8036,953]],[[8101,8101],\"mapped\",[8037,953]],[[8102,8102],\"mapped\",[8038,953]],[[8103,8103],\"mapped\",[8039,953]],[[8104,8104],\"mapped\",[8032,953]],[[8105,8105],\"mapped\",[8033,953]],[[8106,8106],\"mapped\",[8034,953]],[[8107,8107],\"mapped\",[8035,953]],[[8108,8108],\"mapped\",[8036,953]],[[8109,8109],\"mapped\",[8037,953]],[[8110,8110],\"mapped\",[8038,953]],[[8111,8111],\"mapped\",[8039,953]],[[8112,8113],\"valid\"],[[8114,8114],\"mapped\",[8048,953]],[[8115,8115],\"mapped\",[945,953]],[[8116,8116],\"mapped\",[940,953]],[[8117,8117],\"disallowed\"],[[8118,8118],\"valid\"],[[8119,8119],\"mapped\",[8118,953]],[[8120,8120],\"mapped\",[8112]],[[8121,8121],\"mapped\",[8113]],[[8122,8122],\"mapped\",[8048]],[[8123,8123],\"mapped\",[940]],[[8124,8124],\"mapped\",[945,953]],[[8125,8125],\"disallowed_STD3_mapped\",[32,787]],[[8126,8126],\"mapped\",[953]],[[8127,8127],\"disallowed_STD3_mapped\",[32,787]],[[8128,8128],\"disallowed_STD3_mapped\",[32,834]],[[8129,8129],\"disallowed_STD3_mapped\",[32,776,834]],[[8130,8130],\"mapped\",[8052,953]],[[8131,8131],\"mapped\",[951,953]],[[8132,8132],\"mapped\",[942,953]],[[8133,8133],\"disallowed\"],[[8134,8134],\"valid\"],[[8135,8135],\"mapped\",[8134,953]],[[8136,8136],\"mapped\",[8050]],[[8137,8137],\"mapped\",[941]],[[8138,8138],\"mapped\",[8052]],[[8139,8139],\"mapped\",[942]],[[8140,8140],\"mapped\",[951,953]],[[8141,8141],\"disallowed_STD3_mapped\",[32,787,768]],[[8142,8142],\"disallowed_STD3_mapped\",[32,787,769]],[[8143,8143],\"disallowed_STD3_mapped\",[32,787,834]],[[8144,8146],\"valid\"],[[8147,8147],\"mapped\",[912]],[[8148,8149],\"disallowed\"],[[8150,8151],\"valid\"],[[8152,8152],\"mapped\",[8144]],[[8153,8153],\"mapped\",[8145]],[[8154,8154],\"mapped\",[8054]],[[8155,8155],\"mapped\",[943]],[[8156,8156],\"disallowed\"],[[8157,8157],\"disallowed_STD3_mapped\",[32,788,768]],[[8158,8158],\"disallowed_STD3_mapped\",[32,788,769]],[[8159,8159],\"disallowed_STD3_mapped\",[32,788,834]],[[8160,8162],\"valid\"],[[8163,8163],\"mapped\",[944]],[[8164,8167],\"valid\"],[[8168,8168],\"mapped\",[8160]],[[8169,8169],\"mapped\",[8161]],[[8170,8170],\"mapped\",[8058]],[[8171,8171],\"mapped\",[973]],[[8172,8172],\"mapped\",[8165]],[[8173,8173],\"disallowed_STD3_mapped\",[32,776,768]],[[8174,8174],\"disallowed_STD3_mapped\",[32,776,769]],[[8175,8175],\"disallowed_STD3_mapped\",[96]],[[8176,8177],\"disallowed\"],[[8178,8178],\"mapped\",[8060,953]],[[8179,8179],\"mapped\",[969,953]],[[8180,8180],\"mapped\",[974,953]],[[8181,8181],\"disallowed\"],[[8182,8182],\"valid\"],[[8183,8183],\"mapped\",[8182,953]],[[8184,8184],\"mapped\",[8056]],[[8185,8185],\"mapped\",[972]],[[8186,8186],\"mapped\",[8060]],[[8187,8187],\"mapped\",[974]],[[8188,8188],\"mapped\",[969,953]],[[8189,8189],\"disallowed_STD3_mapped\",[32,769]],[[8190,8190],\"disallowed_STD3_mapped\",[32,788]],[[8191,8191],\"disallowed\"],[[8192,8202],\"disallowed_STD3_mapped\",[32]],[[8203,8203],\"ignored\"],[[8204,8205],\"deviation\",[]],[[8206,8207],\"disallowed\"],[[8208,8208],\"valid\",[],\"NV8\"],[[8209,8209],\"mapped\",[8208]],[[8210,8214],\"valid\",[],\"NV8\"],[[8215,8215],\"disallowed_STD3_mapped\",[32,819]],[[8216,8227],\"valid\",[],\"NV8\"],[[8228,8230],\"disallowed\"],[[8231,8231],\"valid\",[],\"NV8\"],[[8232,8238],\"disallowed\"],[[8239,8239],\"disallowed_STD3_mapped\",[32]],[[8240,8242],\"valid\",[],\"NV8\"],[[8243,8243],\"mapped\",[8242,8242]],[[8244,8244],\"mapped\",[8242,8242,8242]],[[8245,8245],\"valid\",[],\"NV8\"],[[8246,8246],\"mapped\",[8245,8245]],[[8247,8247],\"mapped\",[8245,8245,8245]],[[8248,8251],\"valid\",[],\"NV8\"],[[8252,8252],\"disallowed_STD3_mapped\",[33,33]],[[8253,8253],\"valid\",[],\"NV8\"],[[8254,8254],\"disallowed_STD3_mapped\",[32,773]],[[8255,8262],\"valid\",[],\"NV8\"],[[8263,8263],\"disallowed_STD3_mapped\",[63,63]],[[8264,8264],\"disallowed_STD3_mapped\",[63,33]],[[8265,8265],\"disallowed_STD3_mapped\",[33,63]],[[8266,8269],\"valid\",[],\"NV8\"],[[8270,8274],\"valid\",[],\"NV8\"],[[8275,8276],\"valid\",[],\"NV8\"],[[8277,8278],\"valid\",[],\"NV8\"],[[8279,8279],\"mapped\",[8242,8242,8242,8242]],[[8280,8286],\"valid\",[],\"NV8\"],[[8287,8287],\"disallowed_STD3_mapped\",[32]],[[8288,8288],\"ignored\"],[[8289,8291],\"disallowed\"],[[8292,8292],\"ignored\"],[[8293,8293],\"disallowed\"],[[8294,8297],\"disallowed\"],[[8298,8303],\"disallowed\"],[[8304,8304],\"mapped\",[48]],[[8305,8305],\"mapped\",[105]],[[8306,8307],\"disallowed\"],[[8308,8308],\"mapped\",[52]],[[8309,8309],\"mapped\",[53]],[[8310,8310],\"mapped\",[54]],[[8311,8311],\"mapped\",[55]],[[8312,8312],\"mapped\",[56]],[[8313,8313],\"mapped\",[57]],[[8314,8314],\"disallowed_STD3_mapped\",[43]],[[8315,8315],\"mapped\",[8722]],[[8316,8316],\"disallowed_STD3_mapped\",[61]],[[8317,8317],\"disallowed_STD3_mapped\",[40]],[[8318,8318],\"disallowed_STD3_mapped\",[41]],[[8319,8319],\"mapped\",[110]],[[8320,8320],\"mapped\",[48]],[[8321,8321],\"mapped\",[49]],[[8322,8322],\"mapped\",[50]],[[8323,8323],\"mapped\",[51]],[[8324,8324],\"mapped\",[52]],[[8325,8325],\"mapped\",[53]],[[8326,8326],\"mapped\",[54]],[[8327,8327],\"mapped\",[55]],[[8328,8328],\"mapped\",[56]],[[8329,8329],\"mapped\",[57]],[[8330,8330],\"disallowed_STD3_mapped\",[43]],[[8331,8331],\"mapped\",[8722]],[[8332,8332],\"disallowed_STD3_mapped\",[61]],[[8333,8333],\"disallowed_STD3_mapped\",[40]],[[8334,8334],\"disallowed_STD3_mapped\",[41]],[[8335,8335],\"disallowed\"],[[8336,8336],\"mapped\",[97]],[[8337,8337],\"mapped\",[101]],[[8338,8338],\"mapped\",[111]],[[8339,8339],\"mapped\",[120]],[[8340,8340],\"mapped\",[601]],[[8341,8341],\"mapped\",[104]],[[8342,8342],\"mapped\",[107]],[[8343,8343],\"mapped\",[108]],[[8344,8344],\"mapped\",[109]],[[8345,8345],\"mapped\",[110]],[[8346,8346],\"mapped\",[112]],[[8347,8347],\"mapped\",[115]],[[8348,8348],\"mapped\",[116]],[[8349,8351],\"disallowed\"],[[8352,8359],\"valid\",[],\"NV8\"],[[8360,8360],\"mapped\",[114,115]],[[8361,8362],\"valid\",[],\"NV8\"],[[8363,8363],\"valid\",[],\"NV8\"],[[8364,8364],\"valid\",[],\"NV8\"],[[8365,8367],\"valid\",[],\"NV8\"],[[8368,8369],\"valid\",[],\"NV8\"],[[8370,8373],\"valid\",[],\"NV8\"],[[8374,8376],\"valid\",[],\"NV8\"],[[8377,8377],\"valid\",[],\"NV8\"],[[8378,8378],\"valid\",[],\"NV8\"],[[8379,8381],\"valid\",[],\"NV8\"],[[8382,8382],\"valid\",[],\"NV8\"],[[8383,8399],\"disallowed\"],[[8400,8417],\"valid\",[],\"NV8\"],[[8418,8419],\"valid\",[],\"NV8\"],[[8420,8426],\"valid\",[],\"NV8\"],[[8427,8427],\"valid\",[],\"NV8\"],[[8428,8431],\"valid\",[],\"NV8\"],[[8432,8432],\"valid\",[],\"NV8\"],[[8433,8447],\"disallowed\"],[[8448,8448],\"disallowed_STD3_mapped\",[97,47,99]],[[8449,8449],\"disallowed_STD3_mapped\",[97,47,115]],[[8450,8450],\"mapped\",[99]],[[8451,8451],\"mapped\",[176,99]],[[8452,8452],\"valid\",[],\"NV8\"],[[8453,8453],\"disallowed_STD3_mapped\",[99,47,111]],[[8454,8454],\"disallowed_STD3_mapped\",[99,47,117]],[[8455,8455],\"mapped\",[603]],[[8456,8456],\"valid\",[],\"NV8\"],[[8457,8457],\"mapped\",[176,102]],[[8458,8458],\"mapped\",[103]],[[8459,8462],\"mapped\",[104]],[[8463,8463],\"mapped\",[295]],[[8464,8465],\"mapped\",[105]],[[8466,8467],\"mapped\",[108]],[[8468,8468],\"valid\",[],\"NV8\"],[[8469,8469],\"mapped\",[110]],[[8470,8470],\"mapped\",[110,111]],[[8471,8472],\"valid\",[],\"NV8\"],[[8473,8473],\"mapped\",[112]],[[8474,8474],\"mapped\",[113]],[[8475,8477],\"mapped\",[114]],[[8478,8479],\"valid\",[],\"NV8\"],[[8480,8480],\"mapped\",[115,109]],[[8481,8481],\"mapped\",[116,101,108]],[[8482,8482],\"mapped\",[116,109]],[[8483,8483],\"valid\",[],\"NV8\"],[[8484,8484],\"mapped\",[122]],[[8485,8485],\"valid\",[],\"NV8\"],[[8486,8486],\"mapped\",[969]],[[8487,8487],\"valid\",[],\"NV8\"],[[8488,8488],\"mapped\",[122]],[[8489,8489],\"valid\",[],\"NV8\"],[[8490,8490],\"mapped\",[107]],[[8491,8491],\"mapped\",[229]],[[8492,8492],\"mapped\",[98]],[[8493,8493],\"mapped\",[99]],[[8494,8494],\"valid\",[],\"NV8\"],[[8495,8496],\"mapped\",[101]],[[8497,8497],\"mapped\",[102]],[[8498,8498],\"disallowed\"],[[8499,8499],\"mapped\",[109]],[[8500,8500],\"mapped\",[111]],[[8501,8501],\"mapped\",[1488]],[[8502,8502],\"mapped\",[1489]],[[8503,8503],\"mapped\",[1490]],[[8504,8504],\"mapped\",[1491]],[[8505,8505],\"mapped\",[105]],[[8506,8506],\"valid\",[],\"NV8\"],[[8507,8507],\"mapped\",[102,97,120]],[[8508,8508],\"mapped\",[960]],[[8509,8510],\"mapped\",[947]],[[8511,8511],\"mapped\",[960]],[[8512,8512],\"mapped\",[8721]],[[8513,8516],\"valid\",[],\"NV8\"],[[8517,8518],\"mapped\",[100]],[[8519,8519],\"mapped\",[101]],[[8520,8520],\"mapped\",[105]],[[8521,8521],\"mapped\",[106]],[[8522,8523],\"valid\",[],\"NV8\"],[[8524,8524],\"valid\",[],\"NV8\"],[[8525,8525],\"valid\",[],\"NV8\"],[[8526,8526],\"valid\"],[[8527,8527],\"valid\",[],\"NV8\"],[[8528,8528],\"mapped\",[49,8260,55]],[[8529,8529],\"mapped\",[49,8260,57]],[[8530,8530],\"mapped\",[49,8260,49,48]],[[8531,8531],\"mapped\",[49,8260,51]],[[8532,8532],\"mapped\",[50,8260,51]],[[8533,8533],\"mapped\",[49,8260,53]],[[8534,8534],\"mapped\",[50,8260,53]],[[8535,8535],\"mapped\",[51,8260,53]],[[8536,8536],\"mapped\",[52,8260,53]],[[8537,8537],\"mapped\",[49,8260,54]],[[8538,8538],\"mapped\",[53,8260,54]],[[8539,8539],\"mapped\",[49,8260,56]],[[8540,8540],\"mapped\",[51,8260,56]],[[8541,8541],\"mapped\",[53,8260,56]],[[8542,8542],\"mapped\",[55,8260,56]],[[8543,8543],\"mapped\",[49,8260]],[[8544,8544],\"mapped\",[105]],[[8545,8545],\"mapped\",[105,105]],[[8546,8546],\"mapped\",[105,105,105]],[[8547,8547],\"mapped\",[105,118]],[[8548,8548],\"mapped\",[118]],[[8549,8549],\"mapped\",[118,105]],[[8550,8550],\"mapped\",[118,105,105]],[[8551,8551],\"mapped\",[118,105,105,105]],[[8552,8552],\"mapped\",[105,120]],[[8553,8553],\"mapped\",[120]],[[8554,8554],\"mapped\",[120,105]],[[8555,8555],\"mapped\",[120,105,105]],[[8556,8556],\"mapped\",[108]],[[8557,8557],\"mapped\",[99]],[[8558,8558],\"mapped\",[100]],[[8559,8559],\"mapped\",[109]],[[8560,8560],\"mapped\",[105]],[[8561,8561],\"mapped\",[105,105]],[[8562,8562],\"mapped\",[105,105,105]],[[8563,8563],\"mapped\",[105,118]],[[8564,8564],\"mapped\",[118]],[[8565,8565],\"mapped\",[118,105]],[[8566,8566],\"mapped\",[118,105,105]],[[8567,8567],\"mapped\",[118,105,105,105]],[[8568,8568],\"mapped\",[105,120]],[[8569,8569],\"mapped\",[120]],[[8570,8570],\"mapped\",[120,105]],[[8571,8571],\"mapped\",[120,105,105]],[[8572,8572],\"mapped\",[108]],[[8573,8573],\"mapped\",[99]],[[8574,8574],\"mapped\",[100]],[[8575,8575],\"mapped\",[109]],[[8576,8578],\"valid\",[],\"NV8\"],[[8579,8579],\"disallowed\"],[[8580,8580],\"valid\"],[[8581,8584],\"valid\",[],\"NV8\"],[[8585,8585],\"mapped\",[48,8260,51]],[[8586,8587],\"valid\",[],\"NV8\"],[[8588,8591],\"disallowed\"],[[8592,8682],\"valid\",[],\"NV8\"],[[8683,8691],\"valid\",[],\"NV8\"],[[8692,8703],\"valid\",[],\"NV8\"],[[8704,8747],\"valid\",[],\"NV8\"],[[8748,8748],\"mapped\",[8747,8747]],[[8749,8749],\"mapped\",[8747,8747,8747]],[[8750,8750],\"valid\",[],\"NV8\"],[[8751,8751],\"mapped\",[8750,8750]],[[8752,8752],\"mapped\",[8750,8750,8750]],[[8753,8799],\"valid\",[],\"NV8\"],[[8800,8800],\"disallowed_STD3_valid\"],[[8801,8813],\"valid\",[],\"NV8\"],[[8814,8815],\"disallowed_STD3_valid\"],[[8816,8945],\"valid\",[],\"NV8\"],[[8946,8959],\"valid\",[],\"NV8\"],[[8960,8960],\"valid\",[],\"NV8\"],[[8961,8961],\"valid\",[],\"NV8\"],[[8962,9000],\"valid\",[],\"NV8\"],[[9001,9001],\"mapped\",[12296]],[[9002,9002],\"mapped\",[12297]],[[9003,9082],\"valid\",[],\"NV8\"],[[9083,9083],\"valid\",[],\"NV8\"],[[9084,9084],\"valid\",[],\"NV8\"],[[9085,9114],\"valid\",[],\"NV8\"],[[9115,9166],\"valid\",[],\"NV8\"],[[9167,9168],\"valid\",[],\"NV8\"],[[9169,9179],\"valid\",[],\"NV8\"],[[9180,9191],\"valid\",[],\"NV8\"],[[9192,9192],\"valid\",[],\"NV8\"],[[9193,9203],\"valid\",[],\"NV8\"],[[9204,9210],\"valid\",[],\"NV8\"],[[9211,9215],\"disallowed\"],[[9216,9252],\"valid\",[],\"NV8\"],[[9253,9254],\"valid\",[],\"NV8\"],[[9255,9279],\"disallowed\"],[[9280,9290],\"valid\",[],\"NV8\"],[[9291,9311],\"disallowed\"],[[9312,9312],\"mapped\",[49]],[[9313,9313],\"mapped\",[50]],[[9314,9314],\"mapped\",[51]],[[9315,9315],\"mapped\",[52]],[[9316,9316],\"mapped\",[53]],[[9317,9317],\"mapped\",[54]],[[9318,9318],\"mapped\",[55]],[[9319,9319],\"mapped\",[56]],[[9320,9320],\"mapped\",[57]],[[9321,9321],\"mapped\",[49,48]],[[9322,9322],\"mapped\",[49,49]],[[9323,9323],\"mapped\",[49,50]],[[9324,9324],\"mapped\",[49,51]],[[9325,9325],\"mapped\",[49,52]],[[9326,9326],\"mapped\",[49,53]],[[9327,9327],\"mapped\",[49,54]],[[9328,9328],\"mapped\",[49,55]],[[9329,9329],\"mapped\",[49,56]],[[9330,9330],\"mapped\",[49,57]],[[9331,9331],\"mapped\",[50,48]],[[9332,9332],\"disallowed_STD3_mapped\",[40,49,41]],[[9333,9333],\"disallowed_STD3_mapped\",[40,50,41]],[[9334,9334],\"disallowed_STD3_mapped\",[40,51,41]],[[9335,9335],\"disallowed_STD3_mapped\",[40,52,41]],[[9336,9336],\"disallowed_STD3_mapped\",[40,53,41]],[[9337,9337],\"disallowed_STD3_mapped\",[40,54,41]],[[9338,9338],\"disallowed_STD3_mapped\",[40,55,41]],[[9339,9339],\"disallowed_STD3_mapped\",[40,56,41]],[[9340,9340],\"disallowed_STD3_mapped\",[40,57,41]],[[9341,9341],\"disallowed_STD3_mapped\",[40,49,48,41]],[[9342,9342],\"disallowed_STD3_mapped\",[40,49,49,41]],[[9343,9343],\"disallowed_STD3_mapped\",[40,49,50,41]],[[9344,9344],\"disallowed_STD3_mapped\",[40,49,51,41]],[[9345,9345],\"disallowed_STD3_mapped\",[40,49,52,41]],[[9346,9346],\"disallowed_STD3_mapped\",[40,49,53,41]],[[9347,9347],\"disallowed_STD3_mapped\",[40,49,54,41]],[[9348,9348],\"disallowed_STD3_mapped\",[40,49,55,41]],[[9349,9349],\"disallowed_STD3_mapped\",[40,49,56,41]],[[9350,9350],\"disallowed_STD3_mapped\",[40,49,57,41]],[[9351,9351],\"disallowed_STD3_mapped\",[40,50,48,41]],[[9352,9371],\"disallowed\"],[[9372,9372],\"disallowed_STD3_mapped\",[40,97,41]],[[9373,9373],\"disallowed_STD3_mapped\",[40,98,41]],[[9374,9374],\"disallowed_STD3_mapped\",[40,99,41]],[[9375,9375],\"disallowed_STD3_mapped\",[40,100,41]],[[9376,9376],\"disallowed_STD3_mapped\",[40,101,41]],[[9377,9377],\"disallowed_STD3_mapped\",[40,102,41]],[[9378,9378],\"disallowed_STD3_mapped\",[40,103,41]],[[9379,9379],\"disallowed_STD3_mapped\",[40,104,41]],[[9380,9380],\"disallowed_STD3_mapped\",[40,105,41]],[[9381,9381],\"disallowed_STD3_mapped\",[40,106,41]],[[9382,9382],\"disallowed_STD3_mapped\",[40,107,41]],[[9383,9383],\"disallowed_STD3_mapped\",[40,108,41]],[[9384,9384],\"disallowed_STD3_mapped\",[40,109,41]],[[9385,9385],\"disallowed_STD3_mapped\",[40,110,41]],[[9386,9386],\"disallowed_STD3_mapped\",[40,111,41]],[[9387,9387],\"disallowed_STD3_mapped\",[40,112,41]],[[9388,9388],\"disallowed_STD3_mapped\",[40,113,41]],[[9389,9389],\"disallowed_STD3_mapped\",[40,114,41]],[[9390,9390],\"disallowed_STD3_mapped\",[40,115,41]],[[9391,9391],\"disallowed_STD3_mapped\",[40,116,41]],[[9392,9392],\"disallowed_STD3_mapped\",[40,117,41]],[[9393,9393],\"disallowed_STD3_mapped\",[40,118,41]],[[9394,9394],\"disallowed_STD3_mapped\",[40,119,41]],[[9395,9395],\"disallowed_STD3_mapped\",[40,120,41]],[[9396,9396],\"disallowed_STD3_mapped\",[40,121,41]],[[9397,9397],\"disallowed_STD3_mapped\",[40,122,41]],[[9398,9398],\"mapped\",[97]],[[9399,9399],\"mapped\",[98]],[[9400,9400],\"mapped\",[99]],[[9401,9401],\"mapped\",[100]],[[9402,9402],\"mapped\",[101]],[[9403,9403],\"mapped\",[102]],[[9404,9404],\"mapped\",[103]],[[9405,9405],\"mapped\",[104]],[[9406,9406],\"mapped\",[105]],[[9407,9407],\"mapped\",[106]],[[9408,9408],\"mapped\",[107]],[[9409,9409],\"mapped\",[108]],[[9410,9410],\"mapped\",[109]],[[9411,9411],\"mapped\",[110]],[[9412,9412],\"mapped\",[111]],[[9413,9413],\"mapped\",[112]],[[9414,9414],\"mapped\",[113]],[[9415,9415],\"mapped\",[114]],[[9416,9416],\"mapped\",[115]],[[9417,9417],\"mapped\",[116]],[[9418,9418],\"mapped\",[117]],[[9419,9419],\"mapped\",[118]],[[9420,9420],\"mapped\",[119]],[[9421,9421],\"mapped\",[120]],[[9422,9422],\"mapped\",[121]],[[9423,9423],\"mapped\",[122]],[[9424,9424],\"mapped\",[97]],[[9425,9425],\"mapped\",[98]],[[9426,9426],\"mapped\",[99]],[[9427,9427],\"mapped\",[100]],[[9428,9428],\"mapped\",[101]],[[9429,9429],\"mapped\",[102]],[[9430,9430],\"mapped\",[103]],[[9431,9431],\"mapped\",[104]],[[9432,9432],\"mapped\",[105]],[[9433,9433],\"mapped\",[106]],[[9434,9434],\"mapped\",[107]],[[9435,9435],\"mapped\",[108]],[[9436,9436],\"mapped\",[109]],[[9437,9437],\"mapped\",[110]],[[9438,9438],\"mapped\",[111]],[[9439,9439],\"mapped\",[112]],[[9440,9440],\"mapped\",[113]],[[9441,9441],\"mapped\",[114]],[[9442,9442],\"mapped\",[115]],[[9443,9443],\"mapped\",[116]],[[9444,9444],\"mapped\",[117]],[[9445,9445],\"mapped\",[118]],[[9446,9446],\"mapped\",[119]],[[9447,9447],\"mapped\",[120]],[[9448,9448],\"mapped\",[121]],[[9449,9449],\"mapped\",[122]],[[9450,9450],\"mapped\",[48]],[[9451,9470],\"valid\",[],\"NV8\"],[[9471,9471],\"valid\",[],\"NV8\"],[[9472,9621],\"valid\",[],\"NV8\"],[[9622,9631],\"valid\",[],\"NV8\"],[[9632,9711],\"valid\",[],\"NV8\"],[[9712,9719],\"valid\",[],\"NV8\"],[[9720,9727],\"valid\",[],\"NV8\"],[[9728,9747],\"valid\",[],\"NV8\"],[[9748,9749],\"valid\",[],\"NV8\"],[[9750,9751],\"valid\",[],\"NV8\"],[[9752,9752],\"valid\",[],\"NV8\"],[[9753,9753],\"valid\",[],\"NV8\"],[[9754,9839],\"valid\",[],\"NV8\"],[[9840,9841],\"valid\",[],\"NV8\"],[[9842,9853],\"valid\",[],\"NV8\"],[[9854,9855],\"valid\",[],\"NV8\"],[[9856,9865],\"valid\",[],\"NV8\"],[[9866,9873],\"valid\",[],\"NV8\"],[[9874,9884],\"valid\",[],\"NV8\"],[[9885,9885],\"valid\",[],\"NV8\"],[[9886,9887],\"valid\",[],\"NV8\"],[[9888,9889],\"valid\",[],\"NV8\"],[[9890,9905],\"valid\",[],\"NV8\"],[[9906,9906],\"valid\",[],\"NV8\"],[[9907,9916],\"valid\",[],\"NV8\"],[[9917,9919],\"valid\",[],\"NV8\"],[[9920,9923],\"valid\",[],\"NV8\"],[[9924,9933],\"valid\",[],\"NV8\"],[[9934,9934],\"valid\",[],\"NV8\"],[[9935,9953],\"valid\",[],\"NV8\"],[[9954,9954],\"valid\",[],\"NV8\"],[[9955,9955],\"valid\",[],\"NV8\"],[[9956,9959],\"valid\",[],\"NV8\"],[[9960,9983],\"valid\",[],\"NV8\"],[[9984,9984],\"valid\",[],\"NV8\"],[[9985,9988],\"valid\",[],\"NV8\"],[[9989,9989],\"valid\",[],\"NV8\"],[[9990,9993],\"valid\",[],\"NV8\"],[[9994,9995],\"valid\",[],\"NV8\"],[[9996,10023],\"valid\",[],\"NV8\"],[[10024,10024],\"valid\",[],\"NV8\"],[[10025,10059],\"valid\",[],\"NV8\"],[[10060,10060],\"valid\",[],\"NV8\"],[[10061,10061],\"valid\",[],\"NV8\"],[[10062,10062],\"valid\",[],\"NV8\"],[[10063,10066],\"valid\",[],\"NV8\"],[[10067,10069],\"valid\",[],\"NV8\"],[[10070,10070],\"valid\",[],\"NV8\"],[[10071,10071],\"valid\",[],\"NV8\"],[[10072,10078],\"valid\",[],\"NV8\"],[[10079,10080],\"valid\",[],\"NV8\"],[[10081,10087],\"valid\",[],\"NV8\"],[[10088,10101],\"valid\",[],\"NV8\"],[[10102,10132],\"valid\",[],\"NV8\"],[[10133,10135],\"valid\",[],\"NV8\"],[[10136,10159],\"valid\",[],\"NV8\"],[[10160,10160],\"valid\",[],\"NV8\"],[[10161,10174],\"valid\",[],\"NV8\"],[[10175,10175],\"valid\",[],\"NV8\"],[[10176,10182],\"valid\",[],\"NV8\"],[[10183,10186],\"valid\",[],\"NV8\"],[[10187,10187],\"valid\",[],\"NV8\"],[[10188,10188],\"valid\",[],\"NV8\"],[[10189,10189],\"valid\",[],\"NV8\"],[[10190,10191],\"valid\",[],\"NV8\"],[[10192,10219],\"valid\",[],\"NV8\"],[[10220,10223],\"valid\",[],\"NV8\"],[[10224,10239],\"valid\",[],\"NV8\"],[[10240,10495],\"valid\",[],\"NV8\"],[[10496,10763],\"valid\",[],\"NV8\"],[[10764,10764],\"mapped\",[8747,8747,8747,8747]],[[10765,10867],\"valid\",[],\"NV8\"],[[10868,10868],\"disallowed_STD3_mapped\",[58,58,61]],[[10869,10869],\"disallowed_STD3_mapped\",[61,61]],[[10870,10870],\"disallowed_STD3_mapped\",[61,61,61]],[[10871,10971],\"valid\",[],\"NV8\"],[[10972,10972],\"mapped\",[10973,824]],[[10973,11007],\"valid\",[],\"NV8\"],[[11008,11021],\"valid\",[],\"NV8\"],[[11022,11027],\"valid\",[],\"NV8\"],[[11028,11034],\"valid\",[],\"NV8\"],[[11035,11039],\"valid\",[],\"NV8\"],[[11040,11043],\"valid\",[],\"NV8\"],[[11044,11084],\"valid\",[],\"NV8\"],[[11085,11087],\"valid\",[],\"NV8\"],[[11088,11092],\"valid\",[],\"NV8\"],[[11093,11097],\"valid\",[],\"NV8\"],[[11098,11123],\"valid\",[],\"NV8\"],[[11124,11125],\"disallowed\"],[[11126,11157],\"valid\",[],\"NV8\"],[[11158,11159],\"disallowed\"],[[11160,11193],\"valid\",[],\"NV8\"],[[11194,11196],\"disallowed\"],[[11197,11208],\"valid\",[],\"NV8\"],[[11209,11209],\"disallowed\"],[[11210,11217],\"valid\",[],\"NV8\"],[[11218,11243],\"disallowed\"],[[11244,11247],\"valid\",[],\"NV8\"],[[11248,11263],\"disallowed\"],[[11264,11264],\"mapped\",[11312]],[[11265,11265],\"mapped\",[11313]],[[11266,11266],\"mapped\",[11314]],[[11267,11267],\"mapped\",[11315]],[[11268,11268],\"mapped\",[11316]],[[11269,11269],\"mapped\",[11317]],[[11270,11270],\"mapped\",[11318]],[[11271,11271],\"mapped\",[11319]],[[11272,11272],\"mapped\",[11320]],[[11273,11273],\"mapped\",[11321]],[[11274,11274],\"mapped\",[11322]],[[11275,11275],\"mapped\",[11323]],[[11276,11276],\"mapped\",[11324]],[[11277,11277],\"mapped\",[11325]],[[11278,11278],\"mapped\",[11326]],[[11279,11279],\"mapped\",[11327]],[[11280,11280],\"mapped\",[11328]],[[11281,11281],\"mapped\",[11329]],[[11282,11282],\"mapped\",[11330]],[[11283,11283],\"mapped\",[11331]],[[11284,11284],\"mapped\",[11332]],[[11285,11285],\"mapped\",[11333]],[[11286,11286],\"mapped\",[11334]],[[11287,11287],\"mapped\",[11335]],[[11288,11288],\"mapped\",[11336]],[[11289,11289],\"mapped\",[11337]],[[11290,11290],\"mapped\",[11338]],[[11291,11291],\"mapped\",[11339]],[[11292,11292],\"mapped\",[11340]],[[11293,11293],\"mapped\",[11341]],[[11294,11294],\"mapped\",[11342]],[[11295,11295],\"mapped\",[11343]],[[11296,11296],\"mapped\",[11344]],[[11297,11297],\"mapped\",[11345]],[[11298,11298],\"mapped\",[11346]],[[11299,11299],\"mapped\",[11347]],[[11300,11300],\"mapped\",[11348]],[[11301,11301],\"mapped\",[11349]],[[11302,11302],\"mapped\",[11350]],[[11303,11303],\"mapped\",[11351]],[[11304,11304],\"mapped\",[11352]],[[11305,11305],\"mapped\",[11353]],[[11306,11306],\"mapped\",[11354]],[[11307,11307],\"mapped\",[11355]],[[11308,11308],\"mapped\",[11356]],[[11309,11309],\"mapped\",[11357]],[[11310,11310],\"mapped\",[11358]],[[11311,11311],\"disallowed\"],[[11312,11358],\"valid\"],[[11359,11359],\"disallowed\"],[[11360,11360],\"mapped\",[11361]],[[11361,11361],\"valid\"],[[11362,11362],\"mapped\",[619]],[[11363,11363],\"mapped\",[7549]],[[11364,11364],\"mapped\",[637]],[[11365,11366],\"valid\"],[[11367,11367],\"mapped\",[11368]],[[11368,11368],\"valid\"],[[11369,11369],\"mapped\",[11370]],[[11370,11370],\"valid\"],[[11371,11371],\"mapped\",[11372]],[[11372,11372],\"valid\"],[[11373,11373],\"mapped\",[593]],[[11374,11374],\"mapped\",[625]],[[11375,11375],\"mapped\",[592]],[[11376,11376],\"mapped\",[594]],[[11377,11377],\"valid\"],[[11378,11378],\"mapped\",[11379]],[[11379,11379],\"valid\"],[[11380,11380],\"valid\"],[[11381,11381],\"mapped\",[11382]],[[11382,11383],\"valid\"],[[11384,11387],\"valid\"],[[11388,11388],\"mapped\",[106]],[[11389,11389],\"mapped\",[118]],[[11390,11390],\"mapped\",[575]],[[11391,11391],\"mapped\",[576]],[[11392,11392],\"mapped\",[11393]],[[11393,11393],\"valid\"],[[11394,11394],\"mapped\",[11395]],[[11395,11395],\"valid\"],[[11396,11396],\"mapped\",[11397]],[[11397,11397],\"valid\"],[[11398,11398],\"mapped\",[11399]],[[11399,11399],\"valid\"],[[11400,11400],\"mapped\",[11401]],[[11401,11401],\"valid\"],[[11402,11402],\"mapped\",[11403]],[[11403,11403],\"valid\"],[[11404,11404],\"mapped\",[11405]],[[11405,11405],\"valid\"],[[11406,11406],\"mapped\",[11407]],[[11407,11407],\"valid\"],[[11408,11408],\"mapped\",[11409]],[[11409,11409],\"valid\"],[[11410,11410],\"mapped\",[11411]],[[11411,11411],\"valid\"],[[11412,11412],\"mapped\",[11413]],[[11413,11413],\"valid\"],[[11414,11414],\"mapped\",[11415]],[[11415,11415],\"valid\"],[[11416,11416],\"mapped\",[11417]],[[11417,11417],\"valid\"],[[11418,11418],\"mapped\",[11419]],[[11419,11419],\"valid\"],[[11420,11420],\"mapped\",[11421]],[[11421,11421],\"valid\"],[[11422,11422],\"mapped\",[11423]],[[11423,11423],\"valid\"],[[11424,11424],\"mapped\",[11425]],[[11425,11425],\"valid\"],[[11426,11426],\"mapped\",[11427]],[[11427,11427],\"valid\"],[[11428,11428],\"mapped\",[11429]],[[11429,11429],\"valid\"],[[11430,11430],\"mapped\",[11431]],[[11431,11431],\"valid\"],[[11432,11432],\"mapped\",[11433]],[[11433,11433],\"valid\"],[[11434,11434],\"mapped\",[11435]],[[11435,11435],\"valid\"],[[11436,11436],\"mapped\",[11437]],[[11437,11437],\"valid\"],[[11438,11438],\"mapped\",[11439]],[[11439,11439],\"valid\"],[[11440,11440],\"mapped\",[11441]],[[11441,11441],\"valid\"],[[11442,11442],\"mapped\",[11443]],[[11443,11443],\"valid\"],[[11444,11444],\"mapped\",[11445]],[[11445,11445],\"valid\"],[[11446,11446],\"mapped\",[11447]],[[11447,11447],\"valid\"],[[11448,11448],\"mapped\",[11449]],[[11449,11449],\"valid\"],[[11450,11450],\"mapped\",[11451]],[[11451,11451],\"valid\"],[[11452,11452],\"mapped\",[11453]],[[11453,11453],\"valid\"],[[11454,11454],\"mapped\",[11455]],[[11455,11455],\"valid\"],[[11456,11456],\"mapped\",[11457]],[[11457,11457],\"valid\"],[[11458,11458],\"mapped\",[11459]],[[11459,11459],\"valid\"],[[11460,11460],\"mapped\",[11461]],[[11461,11461],\"valid\"],[[11462,11462],\"mapped\",[11463]],[[11463,11463],\"valid\"],[[11464,11464],\"mapped\",[11465]],[[11465,11465],\"valid\"],[[11466,11466],\"mapped\",[11467]],[[11467,11467],\"valid\"],[[11468,11468],\"mapped\",[11469]],[[11469,11469],\"valid\"],[[11470,11470],\"mapped\",[11471]],[[11471,11471],\"valid\"],[[11472,11472],\"mapped\",[11473]],[[11473,11473],\"valid\"],[[11474,11474],\"mapped\",[11475]],[[11475,11475],\"valid\"],[[11476,11476],\"mapped\",[11477]],[[11477,11477],\"valid\"],[[11478,11478],\"mapped\",[11479]],[[11479,11479],\"valid\"],[[11480,11480],\"mapped\",[11481]],[[11481,11481],\"valid\"],[[11482,11482],\"mapped\",[11483]],[[11483,11483],\"valid\"],[[11484,11484],\"mapped\",[11485]],[[11485,11485],\"valid\"],[[11486,11486],\"mapped\",[11487]],[[11487,11487],\"valid\"],[[11488,11488],\"mapped\",[11489]],[[11489,11489],\"valid\"],[[11490,11490],\"mapped\",[11491]],[[11491,11492],\"valid\"],[[11493,11498],\"valid\",[],\"NV8\"],[[11499,11499],\"mapped\",[11500]],[[11500,11500],\"valid\"],[[11501,11501],\"mapped\",[11502]],[[11502,11505],\"valid\"],[[11506,11506],\"mapped\",[11507]],[[11507,11507],\"valid\"],[[11508,11512],\"disallowed\"],[[11513,11519],\"valid\",[],\"NV8\"],[[11520,11557],\"valid\"],[[11558,11558],\"disallowed\"],[[11559,11559],\"valid\"],[[11560,11564],\"disallowed\"],[[11565,11565],\"valid\"],[[11566,11567],\"disallowed\"],[[11568,11621],\"valid\"],[[11622,11623],\"valid\"],[[11624,11630],\"disallowed\"],[[11631,11631],\"mapped\",[11617]],[[11632,11632],\"valid\",[],\"NV8\"],[[11633,11646],\"disallowed\"],[[11647,11647],\"valid\"],[[11648,11670],\"valid\"],[[11671,11679],\"disallowed\"],[[11680,11686],\"valid\"],[[11687,11687],\"disallowed\"],[[11688,11694],\"valid\"],[[11695,11695],\"disallowed\"],[[11696,11702],\"valid\"],[[11703,11703],\"disallowed\"],[[11704,11710],\"valid\"],[[11711,11711],\"disallowed\"],[[11712,11718],\"valid\"],[[11719,11719],\"disallowed\"],[[11720,11726],\"valid\"],[[11727,11727],\"disallowed\"],[[11728,11734],\"valid\"],[[11735,11735],\"disallowed\"],[[11736,11742],\"valid\"],[[11743,11743],\"disallowed\"],[[11744,11775],\"valid\"],[[11776,11799],\"valid\",[],\"NV8\"],[[11800,11803],\"valid\",[],\"NV8\"],[[11804,11805],\"valid\",[],\"NV8\"],[[11806,11822],\"valid\",[],\"NV8\"],[[11823,11823],\"valid\"],[[11824,11824],\"valid\",[],\"NV8\"],[[11825,11825],\"valid\",[],\"NV8\"],[[11826,11835],\"valid\",[],\"NV8\"],[[11836,11842],\"valid\",[],\"NV8\"],[[11843,11903],\"disallowed\"],[[11904,11929],\"valid\",[],\"NV8\"],[[11930,11930],\"disallowed\"],[[11931,11934],\"valid\",[],\"NV8\"],[[11935,11935],\"mapped\",[27597]],[[11936,12018],\"valid\",[],\"NV8\"],[[12019,12019],\"mapped\",[40863]],[[12020,12031],\"disallowed\"],[[12032,12032],\"mapped\",[19968]],[[12033,12033],\"mapped\",[20008]],[[12034,12034],\"mapped\",[20022]],[[12035,12035],\"mapped\",[20031]],[[12036,12036],\"mapped\",[20057]],[[12037,12037],\"mapped\",[20101]],[[12038,12038],\"mapped\",[20108]],[[12039,12039],\"mapped\",[20128]],[[12040,12040],\"mapped\",[20154]],[[12041,12041],\"mapped\",[20799]],[[12042,12042],\"mapped\",[20837]],[[12043,12043],\"mapped\",[20843]],[[12044,12044],\"mapped\",[20866]],[[12045,12045],\"mapped\",[20886]],[[12046,12046],\"mapped\",[20907]],[[12047,12047],\"mapped\",[20960]],[[12048,12048],\"mapped\",[20981]],[[12049,12049],\"mapped\",[20992]],[[12050,12050],\"mapped\",[21147]],[[12051,12051],\"mapped\",[21241]],[[12052,12052],\"mapped\",[21269]],[[12053,12053],\"mapped\",[21274]],[[12054,12054],\"mapped\",[21304]],[[12055,12055],\"mapped\",[21313]],[[12056,12056],\"mapped\",[21340]],[[12057,12057],\"mapped\",[21353]],[[12058,12058],\"mapped\",[21378]],[[12059,12059],\"mapped\",[21430]],[[12060,12060],\"mapped\",[21448]],[[12061,12061],\"mapped\",[21475]],[[12062,12062],\"mapped\",[22231]],[[12063,12063],\"mapped\",[22303]],[[12064,12064],\"mapped\",[22763]],[[12065,12065],\"mapped\",[22786]],[[12066,12066],\"mapped\",[22794]],[[12067,12067],\"mapped\",[22805]],[[12068,12068],\"mapped\",[22823]],[[12069,12069],\"mapped\",[22899]],[[12070,12070],\"mapped\",[23376]],[[12071,12071],\"mapped\",[23424]],[[12072,12072],\"mapped\",[23544]],[[12073,12073],\"mapped\",[23567]],[[12074,12074],\"mapped\",[23586]],[[12075,12075],\"mapped\",[23608]],[[12076,12076],\"mapped\",[23662]],[[12077,12077],\"mapped\",[23665]],[[12078,12078],\"mapped\",[24027]],[[12079,12079],\"mapped\",[24037]],[[12080,12080],\"mapped\",[24049]],[[12081,12081],\"mapped\",[24062]],[[12082,12082],\"mapped\",[24178]],[[12083,12083],\"mapped\",[24186]],[[12084,12084],\"mapped\",[24191]],[[12085,12085],\"mapped\",[24308]],[[12086,12086],\"mapped\",[24318]],[[12087,12087],\"mapped\",[24331]],[[12088,12088],\"mapped\",[24339]],[[12089,12089],\"mapped\",[24400]],[[12090,12090],\"mapped\",[24417]],[[12091,12091],\"mapped\",[24435]],[[12092,12092],\"mapped\",[24515]],[[12093,12093],\"mapped\",[25096]],[[12094,12094],\"mapped\",[25142]],[[12095,12095],\"mapped\",[25163]],[[12096,12096],\"mapped\",[25903]],[[12097,12097],\"mapped\",[25908]],[[12098,12098],\"mapped\",[25991]],[[12099,12099],\"mapped\",[26007]],[[12100,12100],\"mapped\",[26020]],[[12101,12101],\"mapped\",[26041]],[[12102,12102],\"mapped\",[26080]],[[12103,12103],\"mapped\",[26085]],[[12104,12104],\"mapped\",[26352]],[[12105,12105],\"mapped\",[26376]],[[12106,12106],\"mapped\",[26408]],[[12107,12107],\"mapped\",[27424]],[[12108,12108],\"mapped\",[27490]],[[12109,12109],\"mapped\",[27513]],[[12110,12110],\"mapped\",[27571]],[[12111,12111],\"mapped\",[27595]],[[12112,12112],\"mapped\",[27604]],[[12113,12113],\"mapped\",[27611]],[[12114,12114],\"mapped\",[27663]],[[12115,12115],\"mapped\",[27668]],[[12116,12116],\"mapped\",[27700]],[[12117,12117],\"mapped\",[28779]],[[12118,12118],\"mapped\",[29226]],[[12119,12119],\"mapped\",[29238]],[[12120,12120],\"mapped\",[29243]],[[12121,12121],\"mapped\",[29247]],[[12122,12122],\"mapped\",[29255]],[[12123,12123],\"mapped\",[29273]],[[12124,12124],\"mapped\",[29275]],[[12125,12125],\"mapped\",[29356]],[[12126,12126],\"mapped\",[29572]],[[12127,12127],\"mapped\",[29577]],[[12128,12128],\"mapped\",[29916]],[[12129,12129],\"mapped\",[29926]],[[12130,12130],\"mapped\",[29976]],[[12131,12131],\"mapped\",[29983]],[[12132,12132],\"mapped\",[29992]],[[12133,12133],\"mapped\",[30000]],[[12134,12134],\"mapped\",[30091]],[[12135,12135],\"mapped\",[30098]],[[12136,12136],\"mapped\",[30326]],[[12137,12137],\"mapped\",[30333]],[[12138,12138],\"mapped\",[30382]],[[12139,12139],\"mapped\",[30399]],[[12140,12140],\"mapped\",[30446]],[[12141,12141],\"mapped\",[30683]],[[12142,12142],\"mapped\",[30690]],[[12143,12143],\"mapped\",[30707]],[[12144,12144],\"mapped\",[31034]],[[12145,12145],\"mapped\",[31160]],[[12146,12146],\"mapped\",[31166]],[[12147,12147],\"mapped\",[31348]],[[12148,12148],\"mapped\",[31435]],[[12149,12149],\"mapped\",[31481]],[[12150,12150],\"mapped\",[31859]],[[12151,12151],\"mapped\",[31992]],[[12152,12152],\"mapped\",[32566]],[[12153,12153],\"mapped\",[32593]],[[12154,12154],\"mapped\",[32650]],[[12155,12155],\"mapped\",[32701]],[[12156,12156],\"mapped\",[32769]],[[12157,12157],\"mapped\",[32780]],[[12158,12158],\"mapped\",[32786]],[[12159,12159],\"mapped\",[32819]],[[12160,12160],\"mapped\",[32895]],[[12161,12161],\"mapped\",[32905]],[[12162,12162],\"mapped\",[33251]],[[12163,12163],\"mapped\",[33258]],[[12164,12164],\"mapped\",[33267]],[[12165,12165],\"mapped\",[33276]],[[12166,12166],\"mapped\",[33292]],[[12167,12167],\"mapped\",[33307]],[[12168,12168],\"mapped\",[33311]],[[12169,12169],\"mapped\",[33390]],[[12170,12170],\"mapped\",[33394]],[[12171,12171],\"mapped\",[33400]],[[12172,12172],\"mapped\",[34381]],[[12173,12173],\"mapped\",[34411]],[[12174,12174],\"mapped\",[34880]],[[12175,12175],\"mapped\",[34892]],[[12176,12176],\"mapped\",[34915]],[[12177,12177],\"mapped\",[35198]],[[12178,12178],\"mapped\",[35211]],[[12179,12179],\"mapped\",[35282]],[[12180,12180],\"mapped\",[35328]],[[12181,12181],\"mapped\",[35895]],[[12182,12182],\"mapped\",[35910]],[[12183,12183],\"mapped\",[35925]],[[12184,12184],\"mapped\",[35960]],[[12185,12185],\"mapped\",[35997]],[[12186,12186],\"mapped\",[36196]],[[12187,12187],\"mapped\",[36208]],[[12188,12188],\"mapped\",[36275]],[[12189,12189],\"mapped\",[36523]],[[12190,12190],\"mapped\",[36554]],[[12191,12191],\"mapped\",[36763]],[[12192,12192],\"mapped\",[36784]],[[12193,12193],\"mapped\",[36789]],[[12194,12194],\"mapped\",[37009]],[[12195,12195],\"mapped\",[37193]],[[12196,12196],\"mapped\",[37318]],[[12197,12197],\"mapped\",[37324]],[[12198,12198],\"mapped\",[37329]],[[12199,12199],\"mapped\",[38263]],[[12200,12200],\"mapped\",[38272]],[[12201,12201],\"mapped\",[38428]],[[12202,12202],\"mapped\",[38582]],[[12203,12203],\"mapped\",[38585]],[[12204,12204],\"mapped\",[38632]],[[12205,12205],\"mapped\",[38737]],[[12206,12206],\"mapped\",[38750]],[[12207,12207],\"mapped\",[38754]],[[12208,12208],\"mapped\",[38761]],[[12209,12209],\"mapped\",[38859]],[[12210,12210],\"mapped\",[38893]],[[12211,12211],\"mapped\",[38899]],[[12212,12212],\"mapped\",[38913]],[[12213,12213],\"mapped\",[39080]],[[12214,12214],\"mapped\",[39131]],[[12215,12215],\"mapped\",[39135]],[[12216,12216],\"mapped\",[39318]],[[12217,12217],\"mapped\",[39321]],[[12218,12218],\"mapped\",[39340]],[[12219,12219],\"mapped\",[39592]],[[12220,12220],\"mapped\",[39640]],[[12221,12221],\"mapped\",[39647]],[[12222,12222],\"mapped\",[39717]],[[12223,12223],\"mapped\",[39727]],[[12224,12224],\"mapped\",[39730]],[[12225,12225],\"mapped\",[39740]],[[12226,12226],\"mapped\",[39770]],[[12227,12227],\"mapped\",[40165]],[[12228,12228],\"mapped\",[40565]],[[12229,12229],\"mapped\",[40575]],[[12230,12230],\"mapped\",[40613]],[[12231,12231],\"mapped\",[40635]],[[12232,12232],\"mapped\",[40643]],[[12233,12233],\"mapped\",[40653]],[[12234,12234],\"mapped\",[40657]],[[12235,12235],\"mapped\",[40697]],[[12236,12236],\"mapped\",[40701]],[[12237,12237],\"mapped\",[40718]],[[12238,12238],\"mapped\",[40723]],[[12239,12239],\"mapped\",[40736]],[[12240,12240],\"mapped\",[40763]],[[12241,12241],\"mapped\",[40778]],[[12242,12242],\"mapped\",[40786]],[[12243,12243],\"mapped\",[40845]],[[12244,12244],\"mapped\",[40860]],[[12245,12245],\"mapped\",[40864]],[[12246,12271],\"disallowed\"],[[12272,12283],\"disallowed\"],[[12284,12287],\"disallowed\"],[[12288,12288],\"disallowed_STD3_mapped\",[32]],[[12289,12289],\"valid\",[],\"NV8\"],[[12290,12290],\"mapped\",[46]],[[12291,12292],\"valid\",[],\"NV8\"],[[12293,12295],\"valid\"],[[12296,12329],\"valid\",[],\"NV8\"],[[12330,12333],\"valid\"],[[12334,12341],\"valid\",[],\"NV8\"],[[12342,12342],\"mapped\",[12306]],[[12343,12343],\"valid\",[],\"NV8\"],[[12344,12344],\"mapped\",[21313]],[[12345,12345],\"mapped\",[21316]],[[12346,12346],\"mapped\",[21317]],[[12347,12347],\"valid\",[],\"NV8\"],[[12348,12348],\"valid\"],[[12349,12349],\"valid\",[],\"NV8\"],[[12350,12350],\"valid\",[],\"NV8\"],[[12351,12351],\"valid\",[],\"NV8\"],[[12352,12352],\"disallowed\"],[[12353,12436],\"valid\"],[[12437,12438],\"valid\"],[[12439,12440],\"disallowed\"],[[12441,12442],\"valid\"],[[12443,12443],\"disallowed_STD3_mapped\",[32,12441]],[[12444,12444],\"disallowed_STD3_mapped\",[32,12442]],[[12445,12446],\"valid\"],[[12447,12447],\"mapped\",[12424,12426]],[[12448,12448],\"valid\",[],\"NV8\"],[[12449,12542],\"valid\"],[[12543,12543],\"mapped\",[12467,12488]],[[12544,12548],\"disallowed\"],[[12549,12588],\"valid\"],[[12589,12589],\"valid\"],[[12590,12592],\"disallowed\"],[[12593,12593],\"mapped\",[4352]],[[12594,12594],\"mapped\",[4353]],[[12595,12595],\"mapped\",[4522]],[[12596,12596],\"mapped\",[4354]],[[12597,12597],\"mapped\",[4524]],[[12598,12598],\"mapped\",[4525]],[[12599,12599],\"mapped\",[4355]],[[12600,12600],\"mapped\",[4356]],[[12601,12601],\"mapped\",[4357]],[[12602,12602],\"mapped\",[4528]],[[12603,12603],\"mapped\",[4529]],[[12604,12604],\"mapped\",[4530]],[[12605,12605],\"mapped\",[4531]],[[12606,12606],\"mapped\",[4532]],[[12607,12607],\"mapped\",[4533]],[[12608,12608],\"mapped\",[4378]],[[12609,12609],\"mapped\",[4358]],[[12610,12610],\"mapped\",[4359]],[[12611,12611],\"mapped\",[4360]],[[12612,12612],\"mapped\",[4385]],[[12613,12613],\"mapped\",[4361]],[[12614,12614],\"mapped\",[4362]],[[12615,12615],\"mapped\",[4363]],[[12616,12616],\"mapped\",[4364]],[[12617,12617],\"mapped\",[4365]],[[12618,12618],\"mapped\",[4366]],[[12619,12619],\"mapped\",[4367]],[[12620,12620],\"mapped\",[4368]],[[12621,12621],\"mapped\",[4369]],[[12622,12622],\"mapped\",[4370]],[[12623,12623],\"mapped\",[4449]],[[12624,12624],\"mapped\",[4450]],[[12625,12625],\"mapped\",[4451]],[[12626,12626],\"mapped\",[4452]],[[12627,12627],\"mapped\",[4453]],[[12628,12628],\"mapped\",[4454]],[[12629,12629],\"mapped\",[4455]],[[12630,12630],\"mapped\",[4456]],[[12631,12631],\"mapped\",[4457]],[[12632,12632],\"mapped\",[4458]],[[12633,12633],\"mapped\",[4459]],[[12634,12634],\"mapped\",[4460]],[[12635,12635],\"mapped\",[4461]],[[12636,12636],\"mapped\",[4462]],[[12637,12637],\"mapped\",[4463]],[[12638,12638],\"mapped\",[4464]],[[12639,12639],\"mapped\",[4465]],[[12640,12640],\"mapped\",[4466]],[[12641,12641],\"mapped\",[4467]],[[12642,12642],\"mapped\",[4468]],[[12643,12643],\"mapped\",[4469]],[[12644,12644],\"disallowed\"],[[12645,12645],\"mapped\",[4372]],[[12646,12646],\"mapped\",[4373]],[[12647,12647],\"mapped\",[4551]],[[12648,12648],\"mapped\",[4552]],[[12649,12649],\"mapped\",[4556]],[[12650,12650],\"mapped\",[4558]],[[12651,12651],\"mapped\",[4563]],[[12652,12652],\"mapped\",[4567]],[[12653,12653],\"mapped\",[4569]],[[12654,12654],\"mapped\",[4380]],[[12655,12655],\"mapped\",[4573]],[[12656,12656],\"mapped\",[4575]],[[12657,12657],\"mapped\",[4381]],[[12658,12658],\"mapped\",[4382]],[[12659,12659],\"mapped\",[4384]],[[12660,12660],\"mapped\",[4386]],[[12661,12661],\"mapped\",[4387]],[[12662,12662],\"mapped\",[4391]],[[12663,12663],\"mapped\",[4393]],[[12664,12664],\"mapped\",[4395]],[[12665,12665],\"mapped\",[4396]],[[12666,12666],\"mapped\",[4397]],[[12667,12667],\"mapped\",[4398]],[[12668,12668],\"mapped\",[4399]],[[12669,12669],\"mapped\",[4402]],[[12670,12670],\"mapped\",[4406]],[[12671,12671],\"mapped\",[4416]],[[12672,12672],\"mapped\",[4423]],[[12673,12673],\"mapped\",[4428]],[[12674,12674],\"mapped\",[4593]],[[12675,12675],\"mapped\",[4594]],[[12676,12676],\"mapped\",[4439]],[[12677,12677],\"mapped\",[4440]],[[12678,12678],\"mapped\",[4441]],[[12679,12679],\"mapped\",[4484]],[[12680,12680],\"mapped\",[4485]],[[12681,12681],\"mapped\",[4488]],[[12682,12682],\"mapped\",[4497]],[[12683,12683],\"mapped\",[4498]],[[12684,12684],\"mapped\",[4500]],[[12685,12685],\"mapped\",[4510]],[[12686,12686],\"mapped\",[4513]],[[12687,12687],\"disallowed\"],[[12688,12689],\"valid\",[],\"NV8\"],[[12690,12690],\"mapped\",[19968]],[[12691,12691],\"mapped\",[20108]],[[12692,12692],\"mapped\",[19977]],[[12693,12693],\"mapped\",[22235]],[[12694,12694],\"mapped\",[19978]],[[12695,12695],\"mapped\",[20013]],[[12696,12696],\"mapped\",[19979]],[[12697,12697],\"mapped\",[30002]],[[12698,12698],\"mapped\",[20057]],[[12699,12699],\"mapped\",[19993]],[[12700,12700],\"mapped\",[19969]],[[12701,12701],\"mapped\",[22825]],[[12702,12702],\"mapped\",[22320]],[[12703,12703],\"mapped\",[20154]],[[12704,12727],\"valid\"],[[12728,12730],\"valid\"],[[12731,12735],\"disallowed\"],[[12736,12751],\"valid\",[],\"NV8\"],[[12752,12771],\"valid\",[],\"NV8\"],[[12772,12783],\"disallowed\"],[[12784,12799],\"valid\"],[[12800,12800],\"disallowed_STD3_mapped\",[40,4352,41]],[[12801,12801],\"disallowed_STD3_mapped\",[40,4354,41]],[[12802,12802],\"disallowed_STD3_mapped\",[40,4355,41]],[[12803,12803],\"disallowed_STD3_mapped\",[40,4357,41]],[[12804,12804],\"disallowed_STD3_mapped\",[40,4358,41]],[[12805,12805],\"disallowed_STD3_mapped\",[40,4359,41]],[[12806,12806],\"disallowed_STD3_mapped\",[40,4361,41]],[[12807,12807],\"disallowed_STD3_mapped\",[40,4363,41]],[[12808,12808],\"disallowed_STD3_mapped\",[40,4364,41]],[[12809,12809],\"disallowed_STD3_mapped\",[40,4366,41]],[[12810,12810],\"disallowed_STD3_mapped\",[40,4367,41]],[[12811,12811],\"disallowed_STD3_mapped\",[40,4368,41]],[[12812,12812],\"disallowed_STD3_mapped\",[40,4369,41]],[[12813,12813],\"disallowed_STD3_mapped\",[40,4370,41]],[[12814,12814],\"disallowed_STD3_mapped\",[40,44032,41]],[[12815,12815],\"disallowed_STD3_mapped\",[40,45208,41]],[[12816,12816],\"disallowed_STD3_mapped\",[40,45796,41]],[[12817,12817],\"disallowed_STD3_mapped\",[40,46972,41]],[[12818,12818],\"disallowed_STD3_mapped\",[40,47560,41]],[[12819,12819],\"disallowed_STD3_mapped\",[40,48148,41]],[[12820,12820],\"disallowed_STD3_mapped\",[40,49324,41]],[[12821,12821],\"disallowed_STD3_mapped\",[40,50500,41]],[[12822,12822],\"disallowed_STD3_mapped\",[40,51088,41]],[[12823,12823],\"disallowed_STD3_mapped\",[40,52264,41]],[[12824,12824],\"disallowed_STD3_mapped\",[40,52852,41]],[[12825,12825],\"disallowed_STD3_mapped\",[40,53440,41]],[[12826,12826],\"disallowed_STD3_mapped\",[40,54028,41]],[[12827,12827],\"disallowed_STD3_mapped\",[40,54616,41]],[[12828,12828],\"disallowed_STD3_mapped\",[40,51452,41]],[[12829,12829],\"disallowed_STD3_mapped\",[40,50724,51204,41]],[[12830,12830],\"disallowed_STD3_mapped\",[40,50724,54980,41]],[[12831,12831],\"disallowed\"],[[12832,12832],\"disallowed_STD3_mapped\",[40,19968,41]],[[12833,12833],\"disallowed_STD3_mapped\",[40,20108,41]],[[12834,12834],\"disallowed_STD3_mapped\",[40,19977,41]],[[12835,12835],\"disallowed_STD3_mapped\",[40,22235,41]],[[12836,12836],\"disallowed_STD3_mapped\",[40,20116,41]],[[12837,12837],\"disallowed_STD3_mapped\",[40,20845,41]],[[12838,12838],\"disallowed_STD3_mapped\",[40,19971,41]],[[12839,12839],\"disallowed_STD3_mapped\",[40,20843,41]],[[12840,12840],\"disallowed_STD3_mapped\",[40,20061,41]],[[12841,12841],\"disallowed_STD3_mapped\",[40,21313,41]],[[12842,12842],\"disallowed_STD3_mapped\",[40,26376,41]],[[12843,12843],\"disallowed_STD3_mapped\",[40,28779,41]],[[12844,12844],\"disallowed_STD3_mapped\",[40,27700,41]],[[12845,12845],\"disallowed_STD3_mapped\",[40,26408,41]],[[12846,12846],\"disallowed_STD3_mapped\",[40,37329,41]],[[12847,12847],\"disallowed_STD3_mapped\",[40,22303,41]],[[12848,12848],\"disallowed_STD3_mapped\",[40,26085,41]],[[12849,12849],\"disallowed_STD3_mapped\",[40,26666,41]],[[12850,12850],\"disallowed_STD3_mapped\",[40,26377,41]],[[12851,12851],\"disallowed_STD3_mapped\",[40,31038,41]],[[12852,12852],\"disallowed_STD3_mapped\",[40,21517,41]],[[12853,12853],\"disallowed_STD3_mapped\",[40,29305,41]],[[12854,12854],\"disallowed_STD3_mapped\",[40,36001,41]],[[12855,12855],\"disallowed_STD3_mapped\",[40,31069,41]],[[12856,12856],\"disallowed_STD3_mapped\",[40,21172,41]],[[12857,12857],\"disallowed_STD3_mapped\",[40,20195,41]],[[12858,12858],\"disallowed_STD3_mapped\",[40,21628,41]],[[12859,12859],\"disallowed_STD3_mapped\",[40,23398,41]],[[12860,12860],\"disallowed_STD3_mapped\",[40,30435,41]],[[12861,12861],\"disallowed_STD3_mapped\",[40,20225,41]],[[12862,12862],\"disallowed_STD3_mapped\",[40,36039,41]],[[12863,12863],\"disallowed_STD3_mapped\",[40,21332,41]],[[12864,12864],\"disallowed_STD3_mapped\",[40,31085,41]],[[12865,12865],\"disallowed_STD3_mapped\",[40,20241,41]],[[12866,12866],\"disallowed_STD3_mapped\",[40,33258,41]],[[12867,12867],\"disallowed_STD3_mapped\",[40,33267,41]],[[12868,12868],\"mapped\",[21839]],[[12869,12869],\"mapped\",[24188]],[[12870,12870],\"mapped\",[25991]],[[12871,12871],\"mapped\",[31631]],[[12872,12879],\"valid\",[],\"NV8\"],[[12880,12880],\"mapped\",[112,116,101]],[[12881,12881],\"mapped\",[50,49]],[[12882,12882],\"mapped\",[50,50]],[[12883,12883],\"mapped\",[50,51]],[[12884,12884],\"mapped\",[50,52]],[[12885,12885],\"mapped\",[50,53]],[[12886,12886],\"mapped\",[50,54]],[[12887,12887],\"mapped\",[50,55]],[[12888,12888],\"mapped\",[50,56]],[[12889,12889],\"mapped\",[50,57]],[[12890,12890],\"mapped\",[51,48]],[[12891,12891],\"mapped\",[51,49]],[[12892,12892],\"mapped\",[51,50]],[[12893,12893],\"mapped\",[51,51]],[[12894,12894],\"mapped\",[51,52]],[[12895,12895],\"mapped\",[51,53]],[[12896,12896],\"mapped\",[4352]],[[12897,12897],\"mapped\",[4354]],[[12898,12898],\"mapped\",[4355]],[[12899,12899],\"mapped\",[4357]],[[12900,12900],\"mapped\",[4358]],[[12901,12901],\"mapped\",[4359]],[[12902,12902],\"mapped\",[4361]],[[12903,12903],\"mapped\",[4363]],[[12904,12904],\"mapped\",[4364]],[[12905,12905],\"mapped\",[4366]],[[12906,12906],\"mapped\",[4367]],[[12907,12907],\"mapped\",[4368]],[[12908,12908],\"mapped\",[4369]],[[12909,12909],\"mapped\",[4370]],[[12910,12910],\"mapped\",[44032]],[[12911,12911],\"mapped\",[45208]],[[12912,12912],\"mapped\",[45796]],[[12913,12913],\"mapped\",[46972]],[[12914,12914],\"mapped\",[47560]],[[12915,12915],\"mapped\",[48148]],[[12916,12916],\"mapped\",[49324]],[[12917,12917],\"mapped\",[50500]],[[12918,12918],\"mapped\",[51088]],[[12919,12919],\"mapped\",[52264]],[[12920,12920],\"mapped\",[52852]],[[12921,12921],\"mapped\",[53440]],[[12922,12922],\"mapped\",[54028]],[[12923,12923],\"mapped\",[54616]],[[12924,12924],\"mapped\",[52280,44256]],[[12925,12925],\"mapped\",[51452,51032]],[[12926,12926],\"mapped\",[50864]],[[12927,12927],\"valid\",[],\"NV8\"],[[12928,12928],\"mapped\",[19968]],[[12929,12929],\"mapped\",[20108]],[[12930,12930],\"mapped\",[19977]],[[12931,12931],\"mapped\",[22235]],[[12932,12932],\"mapped\",[20116]],[[12933,12933],\"mapped\",[20845]],[[12934,12934],\"mapped\",[19971]],[[12935,12935],\"mapped\",[20843]],[[12936,12936],\"mapped\",[20061]],[[12937,12937],\"mapped\",[21313]],[[12938,12938],\"mapped\",[26376]],[[12939,12939],\"mapped\",[28779]],[[12940,12940],\"mapped\",[27700]],[[12941,12941],\"mapped\",[26408]],[[12942,12942],\"mapped\",[37329]],[[12943,12943],\"mapped\",[22303]],[[12944,12944],\"mapped\",[26085]],[[12945,12945],\"mapped\",[26666]],[[12946,12946],\"mapped\",[26377]],[[12947,12947],\"mapped\",[31038]],[[12948,12948],\"mapped\",[21517]],[[12949,12949],\"mapped\",[29305]],[[12950,12950],\"mapped\",[36001]],[[12951,12951],\"mapped\",[31069]],[[12952,12952],\"mapped\",[21172]],[[12953,12953],\"mapped\",[31192]],[[12954,12954],\"mapped\",[30007]],[[12955,12955],\"mapped\",[22899]],[[12956,12956],\"mapped\",[36969]],[[12957,12957],\"mapped\",[20778]],[[12958,12958],\"mapped\",[21360]],[[12959,12959],\"mapped\",[27880]],[[12960,12960],\"mapped\",[38917]],[[12961,12961],\"mapped\",[20241]],[[12962,12962],\"mapped\",[20889]],[[12963,12963],\"mapped\",[27491]],[[12964,12964],\"mapped\",[19978]],[[12965,12965],\"mapped\",[20013]],[[12966,12966],\"mapped\",[19979]],[[12967,12967],\"mapped\",[24038]],[[12968,12968],\"mapped\",[21491]],[[12969,12969],\"mapped\",[21307]],[[12970,12970],\"mapped\",[23447]],[[12971,12971],\"mapped\",[23398]],[[12972,12972],\"mapped\",[30435]],[[12973,12973],\"mapped\",[20225]],[[12974,12974],\"mapped\",[36039]],[[12975,12975],\"mapped\",[21332]],[[12976,12976],\"mapped\",[22812]],[[12977,12977],\"mapped\",[51,54]],[[12978,12978],\"mapped\",[51,55]],[[12979,12979],\"mapped\",[51,56]],[[12980,12980],\"mapped\",[51,57]],[[12981,12981],\"mapped\",[52,48]],[[12982,12982],\"mapped\",[52,49]],[[12983,12983],\"mapped\",[52,50]],[[12984,12984],\"mapped\",[52,51]],[[12985,12985],\"mapped\",[52,52]],[[12986,12986],\"mapped\",[52,53]],[[12987,12987],\"mapped\",[52,54]],[[12988,12988],\"mapped\",[52,55]],[[12989,12989],\"mapped\",[52,56]],[[12990,12990],\"mapped\",[52,57]],[[12991,12991],\"mapped\",[53,48]],[[12992,12992],\"mapped\",[49,26376]],[[12993,12993],\"mapped\",[50,26376]],[[12994,12994],\"mapped\",[51,26376]],[[12995,12995],\"mapped\",[52,26376]],[[12996,12996],\"mapped\",[53,26376]],[[12997,12997],\"mapped\",[54,26376]],[[12998,12998],\"mapped\",[55,26376]],[[12999,12999],\"mapped\",[56,26376]],[[13000,13000],\"mapped\",[57,26376]],[[13001,13001],\"mapped\",[49,48,26376]],[[13002,13002],\"mapped\",[49,49,26376]],[[13003,13003],\"mapped\",[49,50,26376]],[[13004,13004],\"mapped\",[104,103]],[[13005,13005],\"mapped\",[101,114,103]],[[13006,13006],\"mapped\",[101,118]],[[13007,13007],\"mapped\",[108,116,100]],[[13008,13008],\"mapped\",[12450]],[[13009,13009],\"mapped\",[12452]],[[13010,13010],\"mapped\",[12454]],[[13011,13011],\"mapped\",[12456]],[[13012,13012],\"mapped\",[12458]],[[13013,13013],\"mapped\",[12459]],[[13014,13014],\"mapped\",[12461]],[[13015,13015],\"mapped\",[12463]],[[13016,13016],\"mapped\",[12465]],[[13017,13017],\"mapped\",[12467]],[[13018,13018],\"mapped\",[12469]],[[13019,13019],\"mapped\",[12471]],[[13020,13020],\"mapped\",[12473]],[[13021,13021],\"mapped\",[12475]],[[13022,13022],\"mapped\",[12477]],[[13023,13023],\"mapped\",[12479]],[[13024,13024],\"mapped\",[12481]],[[13025,13025],\"mapped\",[12484]],[[13026,13026],\"mapped\",[12486]],[[13027,13027],\"mapped\",[12488]],[[13028,13028],\"mapped\",[12490]],[[13029,13029],\"mapped\",[12491]],[[13030,13030],\"mapped\",[12492]],[[13031,13031],\"mapped\",[12493]],[[13032,13032],\"mapped\",[12494]],[[13033,13033],\"mapped\",[12495]],[[13034,13034],\"mapped\",[12498]],[[13035,13035],\"mapped\",[12501]],[[13036,13036],\"mapped\",[12504]],[[13037,13037],\"mapped\",[12507]],[[13038,13038],\"mapped\",[12510]],[[13039,13039],\"mapped\",[12511]],[[13040,13040],\"mapped\",[12512]],[[13041,13041],\"mapped\",[12513]],[[13042,13042],\"mapped\",[12514]],[[13043,13043],\"mapped\",[12516]],[[13044,13044],\"mapped\",[12518]],[[13045,13045],\"mapped\",[12520]],[[13046,13046],\"mapped\",[12521]],[[13047,13047],\"mapped\",[12522]],[[13048,13048],\"mapped\",[12523]],[[13049,13049],\"mapped\",[12524]],[[13050,13050],\"mapped\",[12525]],[[13051,13051],\"mapped\",[12527]],[[13052,13052],\"mapped\",[12528]],[[13053,13053],\"mapped\",[12529]],[[13054,13054],\"mapped\",[12530]],[[13055,13055],\"disallowed\"],[[13056,13056],\"mapped\",[12450,12497,12540,12488]],[[13057,13057],\"mapped\",[12450,12523,12501,12449]],[[13058,13058],\"mapped\",[12450,12531,12506,12450]],[[13059,13059],\"mapped\",[12450,12540,12523]],[[13060,13060],\"mapped\",[12452,12491,12531,12464]],[[13061,13061],\"mapped\",[12452,12531,12481]],[[13062,13062],\"mapped\",[12454,12457,12531]],[[13063,13063],\"mapped\",[12456,12473,12463,12540,12489]],[[13064,13064],\"mapped\",[12456,12540,12459,12540]],[[13065,13065],\"mapped\",[12458,12531,12473]],[[13066,13066],\"mapped\",[12458,12540,12512]],[[13067,13067],\"mapped\",[12459,12452,12522]],[[13068,13068],\"mapped\",[12459,12521,12483,12488]],[[13069,13069],\"mapped\",[12459,12525,12522,12540]],[[13070,13070],\"mapped\",[12460,12525,12531]],[[13071,13071],\"mapped\",[12460,12531,12510]],[[13072,13072],\"mapped\",[12462,12460]],[[13073,13073],\"mapped\",[12462,12491,12540]],[[13074,13074],\"mapped\",[12461,12517,12522,12540]],[[13075,13075],\"mapped\",[12462,12523,12480,12540]],[[13076,13076],\"mapped\",[12461,12525]],[[13077,13077],\"mapped\",[12461,12525,12464,12521,12512]],[[13078,13078],\"mapped\",[12461,12525,12513,12540,12488,12523]],[[13079,13079],\"mapped\",[12461,12525,12527,12483,12488]],[[13080,13080],\"mapped\",[12464,12521,12512]],[[13081,13081],\"mapped\",[12464,12521,12512,12488,12531]],[[13082,13082],\"mapped\",[12463,12523,12476,12452,12525]],[[13083,13083],\"mapped\",[12463,12525,12540,12493]],[[13084,13084],\"mapped\",[12465,12540,12473]],[[13085,13085],\"mapped\",[12467,12523,12490]],[[13086,13086],\"mapped\",[12467,12540,12509]],[[13087,13087],\"mapped\",[12469,12452,12463,12523]],[[13088,13088],\"mapped\",[12469,12531,12481,12540,12512]],[[13089,13089],\"mapped\",[12471,12522,12531,12464]],[[13090,13090],\"mapped\",[12475,12531,12481]],[[13091,13091],\"mapped\",[12475,12531,12488]],[[13092,13092],\"mapped\",[12480,12540,12473]],[[13093,13093],\"mapped\",[12487,12471]],[[13094,13094],\"mapped\",[12489,12523]],[[13095,13095],\"mapped\",[12488,12531]],[[13096,13096],\"mapped\",[12490,12494]],[[13097,13097],\"mapped\",[12494,12483,12488]],[[13098,13098],\"mapped\",[12495,12452,12484]],[[13099,13099],\"mapped\",[12497,12540,12475,12531,12488]],[[13100,13100],\"mapped\",[12497,12540,12484]],[[13101,13101],\"mapped\",[12496,12540,12524,12523]],[[13102,13102],\"mapped\",[12500,12450,12473,12488,12523]],[[13103,13103],\"mapped\",[12500,12463,12523]],[[13104,13104],\"mapped\",[12500,12467]],[[13105,13105],\"mapped\",[12499,12523]],[[13106,13106],\"mapped\",[12501,12449,12521,12483,12489]],[[13107,13107],\"mapped\",[12501,12451,12540,12488]],[[13108,13108],\"mapped\",[12502,12483,12471,12455,12523]],[[13109,13109],\"mapped\",[12501,12521,12531]],[[13110,13110],\"mapped\",[12504,12463,12479,12540,12523]],[[13111,13111],\"mapped\",[12506,12477]],[[13112,13112],\"mapped\",[12506,12491,12498]],[[13113,13113],\"mapped\",[12504,12523,12484]],[[13114,13114],\"mapped\",[12506,12531,12473]],[[13115,13115],\"mapped\",[12506,12540,12472]],[[13116,13116],\"mapped\",[12505,12540,12479]],[[13117,13117],\"mapped\",[12509,12452,12531,12488]],[[13118,13118],\"mapped\",[12508,12523,12488]],[[13119,13119],\"mapped\",[12507,12531]],[[13120,13120],\"mapped\",[12509,12531,12489]],[[13121,13121],\"mapped\",[12507,12540,12523]],[[13122,13122],\"mapped\",[12507,12540,12531]],[[13123,13123],\"mapped\",[12510,12452,12463,12525]],[[13124,13124],\"mapped\",[12510,12452,12523]],[[13125,13125],\"mapped\",[12510,12483,12495]],[[13126,13126],\"mapped\",[12510,12523,12463]],[[13127,13127],\"mapped\",[12510,12531,12471,12519,12531]],[[13128,13128],\"mapped\",[12511,12463,12525,12531]],[[13129,13129],\"mapped\",[12511,12522]],[[13130,13130],\"mapped\",[12511,12522,12496,12540,12523]],[[13131,13131],\"mapped\",[12513,12460]],[[13132,13132],\"mapped\",[12513,12460,12488,12531]],[[13133,13133],\"mapped\",[12513,12540,12488,12523]],[[13134,13134],\"mapped\",[12516,12540,12489]],[[13135,13135],\"mapped\",[12516,12540,12523]],[[13136,13136],\"mapped\",[12518,12450,12531]],[[13137,13137],\"mapped\",[12522,12483,12488,12523]],[[13138,13138],\"mapped\",[12522,12521]],[[13139,13139],\"mapped\",[12523,12500,12540]],[[13140,13140],\"mapped\",[12523,12540,12502,12523]],[[13141,13141],\"mapped\",[12524,12512]],[[13142,13142],\"mapped\",[12524,12531,12488,12466,12531]],[[13143,13143],\"mapped\",[12527,12483,12488]],[[13144,13144],\"mapped\",[48,28857]],[[13145,13145],\"mapped\",[49,28857]],[[13146,13146],\"mapped\",[50,28857]],[[13147,13147],\"mapped\",[51,28857]],[[13148,13148],\"mapped\",[52,28857]],[[13149,13149],\"mapped\",[53,28857]],[[13150,13150],\"mapped\",[54,28857]],[[13151,13151],\"mapped\",[55,28857]],[[13152,13152],\"mapped\",[56,28857]],[[13153,13153],\"mapped\",[57,28857]],[[13154,13154],\"mapped\",[49,48,28857]],[[13155,13155],\"mapped\",[49,49,28857]],[[13156,13156],\"mapped\",[49,50,28857]],[[13157,13157],\"mapped\",[49,51,28857]],[[13158,13158],\"mapped\",[49,52,28857]],[[13159,13159],\"mapped\",[49,53,28857]],[[13160,13160],\"mapped\",[49,54,28857]],[[13161,13161],\"mapped\",[49,55,28857]],[[13162,13162],\"mapped\",[49,56,28857]],[[13163,13163],\"mapped\",[49,57,28857]],[[13164,13164],\"mapped\",[50,48,28857]],[[13165,13165],\"mapped\",[50,49,28857]],[[13166,13166],\"mapped\",[50,50,28857]],[[13167,13167],\"mapped\",[50,51,28857]],[[13168,13168],\"mapped\",[50,52,28857]],[[13169,13169],\"mapped\",[104,112,97]],[[13170,13170],\"mapped\",[100,97]],[[13171,13171],\"mapped\",[97,117]],[[13172,13172],\"mapped\",[98,97,114]],[[13173,13173],\"mapped\",[111,118]],[[13174,13174],\"mapped\",[112,99]],[[13175,13175],\"mapped\",[100,109]],[[13176,13176],\"mapped\",[100,109,50]],[[13177,13177],\"mapped\",[100,109,51]],[[13178,13178],\"mapped\",[105,117]],[[13179,13179],\"mapped\",[24179,25104]],[[13180,13180],\"mapped\",[26157,21644]],[[13181,13181],\"mapped\",[22823,27491]],[[13182,13182],\"mapped\",[26126,27835]],[[13183,13183],\"mapped\",[26666,24335,20250,31038]],[[13184,13184],\"mapped\",[112,97]],[[13185,13185],\"mapped\",[110,97]],[[13186,13186],\"mapped\",[956,97]],[[13187,13187],\"mapped\",[109,97]],[[13188,13188],\"mapped\",[107,97]],[[13189,13189],\"mapped\",[107,98]],[[13190,13190],\"mapped\",[109,98]],[[13191,13191],\"mapped\",[103,98]],[[13192,13192],\"mapped\",[99,97,108]],[[13193,13193],\"mapped\",[107,99,97,108]],[[13194,13194],\"mapped\",[112,102]],[[13195,13195],\"mapped\",[110,102]],[[13196,13196],\"mapped\",[956,102]],[[13197,13197],\"mapped\",[956,103]],[[13198,13198],\"mapped\",[109,103]],[[13199,13199],\"mapped\",[107,103]],[[13200,13200],\"mapped\",[104,122]],[[13201,13201],\"mapped\",[107,104,122]],[[13202,13202],\"mapped\",[109,104,122]],[[13203,13203],\"mapped\",[103,104,122]],[[13204,13204],\"mapped\",[116,104,122]],[[13205,13205],\"mapped\",[956,108]],[[13206,13206],\"mapped\",[109,108]],[[13207,13207],\"mapped\",[100,108]],[[13208,13208],\"mapped\",[107,108]],[[13209,13209],\"mapped\",[102,109]],[[13210,13210],\"mapped\",[110,109]],[[13211,13211],\"mapped\",[956,109]],[[13212,13212],\"mapped\",[109,109]],[[13213,13213],\"mapped\",[99,109]],[[13214,13214],\"mapped\",[107,109]],[[13215,13215],\"mapped\",[109,109,50]],[[13216,13216],\"mapped\",[99,109,50]],[[13217,13217],\"mapped\",[109,50]],[[13218,13218],\"mapped\",[107,109,50]],[[13219,13219],\"mapped\",[109,109,51]],[[13220,13220],\"mapped\",[99,109,51]],[[13221,13221],\"mapped\",[109,51]],[[13222,13222],\"mapped\",[107,109,51]],[[13223,13223],\"mapped\",[109,8725,115]],[[13224,13224],\"mapped\",[109,8725,115,50]],[[13225,13225],\"mapped\",[112,97]],[[13226,13226],\"mapped\",[107,112,97]],[[13227,13227],\"mapped\",[109,112,97]],[[13228,13228],\"mapped\",[103,112,97]],[[13229,13229],\"mapped\",[114,97,100]],[[13230,13230],\"mapped\",[114,97,100,8725,115]],[[13231,13231],\"mapped\",[114,97,100,8725,115,50]],[[13232,13232],\"mapped\",[112,115]],[[13233,13233],\"mapped\",[110,115]],[[13234,13234],\"mapped\",[956,115]],[[13235,13235],\"mapped\",[109,115]],[[13236,13236],\"mapped\",[112,118]],[[13237,13237],\"mapped\",[110,118]],[[13238,13238],\"mapped\",[956,118]],[[13239,13239],\"mapped\",[109,118]],[[13240,13240],\"mapped\",[107,118]],[[13241,13241],\"mapped\",[109,118]],[[13242,13242],\"mapped\",[112,119]],[[13243,13243],\"mapped\",[110,119]],[[13244,13244],\"mapped\",[956,119]],[[13245,13245],\"mapped\",[109,119]],[[13246,13246],\"mapped\",[107,119]],[[13247,13247],\"mapped\",[109,119]],[[13248,13248],\"mapped\",[107,969]],[[13249,13249],\"mapped\",[109,969]],[[13250,13250],\"disallowed\"],[[13251,13251],\"mapped\",[98,113]],[[13252,13252],\"mapped\",[99,99]],[[13253,13253],\"mapped\",[99,100]],[[13254,13254],\"mapped\",[99,8725,107,103]],[[13255,13255],\"disallowed\"],[[13256,13256],\"mapped\",[100,98]],[[13257,13257],\"mapped\",[103,121]],[[13258,13258],\"mapped\",[104,97]],[[13259,13259],\"mapped\",[104,112]],[[13260,13260],\"mapped\",[105,110]],[[13261,13261],\"mapped\",[107,107]],[[13262,13262],\"mapped\",[107,109]],[[13263,13263],\"mapped\",[107,116]],[[13264,13264],\"mapped\",[108,109]],[[13265,13265],\"mapped\",[108,110]],[[13266,13266],\"mapped\",[108,111,103]],[[13267,13267],\"mapped\",[108,120]],[[13268,13268],\"mapped\",[109,98]],[[13269,13269],\"mapped\",[109,105,108]],[[13270,13270],\"mapped\",[109,111,108]],[[13271,13271],\"mapped\",[112,104]],[[13272,13272],\"disallowed\"],[[13273,13273],\"mapped\",[112,112,109]],[[13274,13274],\"mapped\",[112,114]],[[13275,13275],\"mapped\",[115,114]],[[13276,13276],\"mapped\",[115,118]],[[13277,13277],\"mapped\",[119,98]],[[13278,13278],\"mapped\",[118,8725,109]],[[13279,13279],\"mapped\",[97,8725,109]],[[13280,13280],\"mapped\",[49,26085]],[[13281,13281],\"mapped\",[50,26085]],[[13282,13282],\"mapped\",[51,26085]],[[13283,13283],\"mapped\",[52,26085]],[[13284,13284],\"mapped\",[53,26085]],[[13285,13285],\"mapped\",[54,26085]],[[13286,13286],\"mapped\",[55,26085]],[[13287,13287],\"mapped\",[56,26085]],[[13288,13288],\"mapped\",[57,26085]],[[13289,13289],\"mapped\",[49,48,26085]],[[13290,13290],\"mapped\",[49,49,26085]],[[13291,13291],\"mapped\",[49,50,26085]],[[13292,13292],\"mapped\",[49,51,26085]],[[13293,13293],\"mapped\",[49,52,26085]],[[13294,13294],\"mapped\",[49,53,26085]],[[13295,13295],\"mapped\",[49,54,26085]],[[13296,13296],\"mapped\",[49,55,26085]],[[13297,13297],\"mapped\",[49,56,26085]],[[13298,13298],\"mapped\",[49,57,26085]],[[13299,13299],\"mapped\",[50,48,26085]],[[13300,13300],\"mapped\",[50,49,26085]],[[13301,13301],\"mapped\",[50,50,26085]],[[13302,13302],\"mapped\",[50,51,26085]],[[13303,13303],\"mapped\",[50,52,26085]],[[13304,13304],\"mapped\",[50,53,26085]],[[13305,13305],\"mapped\",[50,54,26085]],[[13306,13306],\"mapped\",[50,55,26085]],[[13307,13307],\"mapped\",[50,56,26085]],[[13308,13308],\"mapped\",[50,57,26085]],[[13309,13309],\"mapped\",[51,48,26085]],[[13310,13310],\"mapped\",[51,49,26085]],[[13311,13311],\"mapped\",[103,97,108]],[[13312,19893],\"valid\"],[[19894,19903],\"disallowed\"],[[19904,19967],\"valid\",[],\"NV8\"],[[19968,40869],\"valid\"],[[40870,40891],\"valid\"],[[40892,40899],\"valid\"],[[40900,40907],\"valid\"],[[40908,40908],\"valid\"],[[40909,40917],\"valid\"],[[40918,40959],\"disallowed\"],[[40960,42124],\"valid\"],[[42125,42127],\"disallowed\"],[[42128,42145],\"valid\",[],\"NV8\"],[[42146,42147],\"valid\",[],\"NV8\"],[[42148,42163],\"valid\",[],\"NV8\"],[[42164,42164],\"valid\",[],\"NV8\"],[[42165,42176],\"valid\",[],\"NV8\"],[[42177,42177],\"valid\",[],\"NV8\"],[[42178,42180],\"valid\",[],\"NV8\"],[[42181,42181],\"valid\",[],\"NV8\"],[[42182,42182],\"valid\",[],\"NV8\"],[[42183,42191],\"disallowed\"],[[42192,42237],\"valid\"],[[42238,42239],\"valid\",[],\"NV8\"],[[42240,42508],\"valid\"],[[42509,42511],\"valid\",[],\"NV8\"],[[42512,42539],\"valid\"],[[42540,42559],\"disallowed\"],[[42560,42560],\"mapped\",[42561]],[[42561,42561],\"valid\"],[[42562,42562],\"mapped\",[42563]],[[42563,42563],\"valid\"],[[42564,42564],\"mapped\",[42565]],[[42565,42565],\"valid\"],[[42566,42566],\"mapped\",[42567]],[[42567,42567],\"valid\"],[[42568,42568],\"mapped\",[42569]],[[42569,42569],\"valid\"],[[42570,42570],\"mapped\",[42571]],[[42571,42571],\"valid\"],[[42572,42572],\"mapped\",[42573]],[[42573,42573],\"valid\"],[[42574,42574],\"mapped\",[42575]],[[42575,42575],\"valid\"],[[42576,42576],\"mapped\",[42577]],[[42577,42577],\"valid\"],[[42578,42578],\"mapped\",[42579]],[[42579,42579],\"valid\"],[[42580,42580],\"mapped\",[42581]],[[42581,42581],\"valid\"],[[42582,42582],\"mapped\",[42583]],[[42583,42583],\"valid\"],[[42584,42584],\"mapped\",[42585]],[[42585,42585],\"valid\"],[[42586,42586],\"mapped\",[42587]],[[42587,42587],\"valid\"],[[42588,42588],\"mapped\",[42589]],[[42589,42589],\"valid\"],[[42590,42590],\"mapped\",[42591]],[[42591,42591],\"valid\"],[[42592,42592],\"mapped\",[42593]],[[42593,42593],\"valid\"],[[42594,42594],\"mapped\",[42595]],[[42595,42595],\"valid\"],[[42596,42596],\"mapped\",[42597]],[[42597,42597],\"valid\"],[[42598,42598],\"mapped\",[42599]],[[42599,42599],\"valid\"],[[42600,42600],\"mapped\",[42601]],[[42601,42601],\"valid\"],[[42602,42602],\"mapped\",[42603]],[[42603,42603],\"valid\"],[[42604,42604],\"mapped\",[42605]],[[42605,42607],\"valid\"],[[42608,42611],\"valid\",[],\"NV8\"],[[42612,42619],\"valid\"],[[42620,42621],\"valid\"],[[42622,42622],\"valid\",[],\"NV8\"],[[42623,42623],\"valid\"],[[42624,42624],\"mapped\",[42625]],[[42625,42625],\"valid\"],[[42626,42626],\"mapped\",[42627]],[[42627,42627],\"valid\"],[[42628,42628],\"mapped\",[42629]],[[42629,42629],\"valid\"],[[42630,42630],\"mapped\",[42631]],[[42631,42631],\"valid\"],[[42632,42632],\"mapped\",[42633]],[[42633,42633],\"valid\"],[[42634,42634],\"mapped\",[42635]],[[42635,42635],\"valid\"],[[42636,42636],\"mapped\",[42637]],[[42637,42637],\"valid\"],[[42638,42638],\"mapped\",[42639]],[[42639,42639],\"valid\"],[[42640,42640],\"mapped\",[42641]],[[42641,42641],\"valid\"],[[42642,42642],\"mapped\",[42643]],[[42643,42643],\"valid\"],[[42644,42644],\"mapped\",[42645]],[[42645,42645],\"valid\"],[[42646,42646],\"mapped\",[42647]],[[42647,42647],\"valid\"],[[42648,42648],\"mapped\",[42649]],[[42649,42649],\"valid\"],[[42650,42650],\"mapped\",[42651]],[[42651,42651],\"valid\"],[[42652,42652],\"mapped\",[1098]],[[42653,42653],\"mapped\",[1100]],[[42654,42654],\"valid\"],[[42655,42655],\"valid\"],[[42656,42725],\"valid\"],[[42726,42735],\"valid\",[],\"NV8\"],[[42736,42737],\"valid\"],[[42738,42743],\"valid\",[],\"NV8\"],[[42744,42751],\"disallowed\"],[[42752,42774],\"valid\",[],\"NV8\"],[[42775,42778],\"valid\"],[[42779,42783],\"valid\"],[[42784,42785],\"valid\",[],\"NV8\"],[[42786,42786],\"mapped\",[42787]],[[42787,42787],\"valid\"],[[42788,42788],\"mapped\",[42789]],[[42789,42789],\"valid\"],[[42790,42790],\"mapped\",[42791]],[[42791,42791],\"valid\"],[[42792,42792],\"mapped\",[42793]],[[42793,42793],\"valid\"],[[42794,42794],\"mapped\",[42795]],[[42795,42795],\"valid\"],[[42796,42796],\"mapped\",[42797]],[[42797,42797],\"valid\"],[[42798,42798],\"mapped\",[42799]],[[42799,42801],\"valid\"],[[42802,42802],\"mapped\",[42803]],[[42803,42803],\"valid\"],[[42804,42804],\"mapped\",[42805]],[[42805,42805],\"valid\"],[[42806,42806],\"mapped\",[42807]],[[42807,42807],\"valid\"],[[42808,42808],\"mapped\",[42809]],[[42809,42809],\"valid\"],[[42810,42810],\"mapped\",[42811]],[[42811,42811],\"valid\"],[[42812,42812],\"mapped\",[42813]],[[42813,42813],\"valid\"],[[42814,42814],\"mapped\",[42815]],[[42815,42815],\"valid\"],[[42816,42816],\"mapped\",[42817]],[[42817,42817],\"valid\"],[[42818,42818],\"mapped\",[42819]],[[42819,42819],\"valid\"],[[42820,42820],\"mapped\",[42821]],[[42821,42821],\"valid\"],[[42822,42822],\"mapped\",[42823]],[[42823,42823],\"valid\"],[[42824,42824],\"mapped\",[42825]],[[42825,42825],\"valid\"],[[42826,42826],\"mapped\",[42827]],[[42827,42827],\"valid\"],[[42828,42828],\"mapped\",[42829]],[[42829,42829],\"valid\"],[[42830,42830],\"mapped\",[42831]],[[42831,42831],\"valid\"],[[42832,42832],\"mapped\",[42833]],[[42833,42833],\"valid\"],[[42834,42834],\"mapped\",[42835]],[[42835,42835],\"valid\"],[[42836,42836],\"mapped\",[42837]],[[42837,42837],\"valid\"],[[42838,42838],\"mapped\",[42839]],[[42839,42839],\"valid\"],[[42840,42840],\"mapped\",[42841]],[[42841,42841],\"valid\"],[[42842,42842],\"mapped\",[42843]],[[42843,42843],\"valid\"],[[42844,42844],\"mapped\",[42845]],[[42845,42845],\"valid\"],[[42846,42846],\"mapped\",[42847]],[[42847,42847],\"valid\"],[[42848,42848],\"mapped\",[42849]],[[42849,42849],\"valid\"],[[42850,42850],\"mapped\",[42851]],[[42851,42851],\"valid\"],[[42852,42852],\"mapped\",[42853]],[[42853,42853],\"valid\"],[[42854,42854],\"mapped\",[42855]],[[42855,42855],\"valid\"],[[42856,42856],\"mapped\",[42857]],[[42857,42857],\"valid\"],[[42858,42858],\"mapped\",[42859]],[[42859,42859],\"valid\"],[[42860,42860],\"mapped\",[42861]],[[42861,42861],\"valid\"],[[42862,42862],\"mapped\",[42863]],[[42863,42863],\"valid\"],[[42864,42864],\"mapped\",[42863]],[[42865,42872],\"valid\"],[[42873,42873],\"mapped\",[42874]],[[42874,42874],\"valid\"],[[42875,42875],\"mapped\",[42876]],[[42876,42876],\"valid\"],[[42877,42877],\"mapped\",[7545]],[[42878,42878],\"mapped\",[42879]],[[42879,42879],\"valid\"],[[42880,42880],\"mapped\",[42881]],[[42881,42881],\"valid\"],[[42882,42882],\"mapped\",[42883]],[[42883,42883],\"valid\"],[[42884,42884],\"mapped\",[42885]],[[42885,42885],\"valid\"],[[42886,42886],\"mapped\",[42887]],[[42887,42888],\"valid\"],[[42889,42890],\"valid\",[],\"NV8\"],[[42891,42891],\"mapped\",[42892]],[[42892,42892],\"valid\"],[[42893,42893],\"mapped\",[613]],[[42894,42894],\"valid\"],[[42895,42895],\"valid\"],[[42896,42896],\"mapped\",[42897]],[[42897,42897],\"valid\"],[[42898,42898],\"mapped\",[42899]],[[42899,42899],\"valid\"],[[42900,42901],\"valid\"],[[42902,42902],\"mapped\",[42903]],[[42903,42903],\"valid\"],[[42904,42904],\"mapped\",[42905]],[[42905,42905],\"valid\"],[[42906,42906],\"mapped\",[42907]],[[42907,42907],\"valid\"],[[42908,42908],\"mapped\",[42909]],[[42909,42909],\"valid\"],[[42910,42910],\"mapped\",[42911]],[[42911,42911],\"valid\"],[[42912,42912],\"mapped\",[42913]],[[42913,42913],\"valid\"],[[42914,42914],\"mapped\",[42915]],[[42915,42915],\"valid\"],[[42916,42916],\"mapped\",[42917]],[[42917,42917],\"valid\"],[[42918,42918],\"mapped\",[42919]],[[42919,42919],\"valid\"],[[42920,42920],\"mapped\",[42921]],[[42921,42921],\"valid\"],[[42922,42922],\"mapped\",[614]],[[42923,42923],\"mapped\",[604]],[[42924,42924],\"mapped\",[609]],[[42925,42925],\"mapped\",[620]],[[42926,42927],\"disallowed\"],[[42928,42928],\"mapped\",[670]],[[42929,42929],\"mapped\",[647]],[[42930,42930],\"mapped\",[669]],[[42931,42931],\"mapped\",[43859]],[[42932,42932],\"mapped\",[42933]],[[42933,42933],\"valid\"],[[42934,42934],\"mapped\",[42935]],[[42935,42935],\"valid\"],[[42936,42998],\"disallowed\"],[[42999,42999],\"valid\"],[[43000,43000],\"mapped\",[295]],[[43001,43001],\"mapped\",[339]],[[43002,43002],\"valid\"],[[43003,43007],\"valid\"],[[43008,43047],\"valid\"],[[43048,43051],\"valid\",[],\"NV8\"],[[43052,43055],\"disallowed\"],[[43056,43065],\"valid\",[],\"NV8\"],[[43066,43071],\"disallowed\"],[[43072,43123],\"valid\"],[[43124,43127],\"valid\",[],\"NV8\"],[[43128,43135],\"disallowed\"],[[43136,43204],\"valid\"],[[43205,43213],\"disallowed\"],[[43214,43215],\"valid\",[],\"NV8\"],[[43216,43225],\"valid\"],[[43226,43231],\"disallowed\"],[[43232,43255],\"valid\"],[[43256,43258],\"valid\",[],\"NV8\"],[[43259,43259],\"valid\"],[[43260,43260],\"valid\",[],\"NV8\"],[[43261,43261],\"valid\"],[[43262,43263],\"disallowed\"],[[43264,43309],\"valid\"],[[43310,43311],\"valid\",[],\"NV8\"],[[43312,43347],\"valid\"],[[43348,43358],\"disallowed\"],[[43359,43359],\"valid\",[],\"NV8\"],[[43360,43388],\"valid\",[],\"NV8\"],[[43389,43391],\"disallowed\"],[[43392,43456],\"valid\"],[[43457,43469],\"valid\",[],\"NV8\"],[[43470,43470],\"disallowed\"],[[43471,43481],\"valid\"],[[43482,43485],\"disallowed\"],[[43486,43487],\"valid\",[],\"NV8\"],[[43488,43518],\"valid\"],[[43519,43519],\"disallowed\"],[[43520,43574],\"valid\"],[[43575,43583],\"disallowed\"],[[43584,43597],\"valid\"],[[43598,43599],\"disallowed\"],[[43600,43609],\"valid\"],[[43610,43611],\"disallowed\"],[[43612,43615],\"valid\",[],\"NV8\"],[[43616,43638],\"valid\"],[[43639,43641],\"valid\",[],\"NV8\"],[[43642,43643],\"valid\"],[[43644,43647],\"valid\"],[[43648,43714],\"valid\"],[[43715,43738],\"disallowed\"],[[43739,43741],\"valid\"],[[43742,43743],\"valid\",[],\"NV8\"],[[43744,43759],\"valid\"],[[43760,43761],\"valid\",[],\"NV8\"],[[43762,43766],\"valid\"],[[43767,43776],\"disallowed\"],[[43777,43782],\"valid\"],[[43783,43784],\"disallowed\"],[[43785,43790],\"valid\"],[[43791,43792],\"disallowed\"],[[43793,43798],\"valid\"],[[43799,43807],\"disallowed\"],[[43808,43814],\"valid\"],[[43815,43815],\"disallowed\"],[[43816,43822],\"valid\"],[[43823,43823],\"disallowed\"],[[43824,43866],\"valid\"],[[43867,43867],\"valid\",[],\"NV8\"],[[43868,43868],\"mapped\",[42791]],[[43869,43869],\"mapped\",[43831]],[[43870,43870],\"mapped\",[619]],[[43871,43871],\"mapped\",[43858]],[[43872,43875],\"valid\"],[[43876,43877],\"valid\"],[[43878,43887],\"disallowed\"],[[43888,43888],\"mapped\",[5024]],[[43889,43889],\"mapped\",[5025]],[[43890,43890],\"mapped\",[5026]],[[43891,43891],\"mapped\",[5027]],[[43892,43892],\"mapped\",[5028]],[[43893,43893],\"mapped\",[5029]],[[43894,43894],\"mapped\",[5030]],[[43895,43895],\"mapped\",[5031]],[[43896,43896],\"mapped\",[5032]],[[43897,43897],\"mapped\",[5033]],[[43898,43898],\"mapped\",[5034]],[[43899,43899],\"mapped\",[5035]],[[43900,43900],\"mapped\",[5036]],[[43901,43901],\"mapped\",[5037]],[[43902,43902],\"mapped\",[5038]],[[43903,43903],\"mapped\",[5039]],[[43904,43904],\"mapped\",[5040]],[[43905,43905],\"mapped\",[5041]],[[43906,43906],\"mapped\",[5042]],[[43907,43907],\"mapped\",[5043]],[[43908,43908],\"mapped\",[5044]],[[43909,43909],\"mapped\",[5045]],[[43910,43910],\"mapped\",[5046]],[[43911,43911],\"mapped\",[5047]],[[43912,43912],\"mapped\",[5048]],[[43913,43913],\"mapped\",[5049]],[[43914,43914],\"mapped\",[5050]],[[43915,43915],\"mapped\",[5051]],[[43916,43916],\"mapped\",[5052]],[[43917,43917],\"mapped\",[5053]],[[43918,43918],\"mapped\",[5054]],[[43919,43919],\"mapped\",[5055]],[[43920,43920],\"mapped\",[5056]],[[43921,43921],\"mapped\",[5057]],[[43922,43922],\"mapped\",[5058]],[[43923,43923],\"mapped\",[5059]],[[43924,43924],\"mapped\",[5060]],[[43925,43925],\"mapped\",[5061]],[[43926,43926],\"mapped\",[5062]],[[43927,43927],\"mapped\",[5063]],[[43928,43928],\"mapped\",[5064]],[[43929,43929],\"mapped\",[5065]],[[43930,43930],\"mapped\",[5066]],[[43931,43931],\"mapped\",[5067]],[[43932,43932],\"mapped\",[5068]],[[43933,43933],\"mapped\",[5069]],[[43934,43934],\"mapped\",[5070]],[[43935,43935],\"mapped\",[5071]],[[43936,43936],\"mapped\",[5072]],[[43937,43937],\"mapped\",[5073]],[[43938,43938],\"mapped\",[5074]],[[43939,43939],\"mapped\",[5075]],[[43940,43940],\"mapped\",[5076]],[[43941,43941],\"mapped\",[5077]],[[43942,43942],\"mapped\",[5078]],[[43943,43943],\"mapped\",[5079]],[[43944,43944],\"mapped\",[5080]],[[43945,43945],\"mapped\",[5081]],[[43946,43946],\"mapped\",[5082]],[[43947,43947],\"mapped\",[5083]],[[43948,43948],\"mapped\",[5084]],[[43949,43949],\"mapped\",[5085]],[[43950,43950],\"mapped\",[5086]],[[43951,43951],\"mapped\",[5087]],[[43952,43952],\"mapped\",[5088]],[[43953,43953],\"mapped\",[5089]],[[43954,43954],\"mapped\",[5090]],[[43955,43955],\"mapped\",[5091]],[[43956,43956],\"mapped\",[5092]],[[43957,43957],\"mapped\",[5093]],[[43958,43958],\"mapped\",[5094]],[[43959,43959],\"mapped\",[5095]],[[43960,43960],\"mapped\",[5096]],[[43961,43961],\"mapped\",[5097]],[[43962,43962],\"mapped\",[5098]],[[43963,43963],\"mapped\",[5099]],[[43964,43964],\"mapped\",[5100]],[[43965,43965],\"mapped\",[5101]],[[43966,43966],\"mapped\",[5102]],[[43967,43967],\"mapped\",[5103]],[[43968,44010],\"valid\"],[[44011,44011],\"valid\",[],\"NV8\"],[[44012,44013],\"valid\"],[[44014,44015],\"disallowed\"],[[44016,44025],\"valid\"],[[44026,44031],\"disallowed\"],[[44032,55203],\"valid\"],[[55204,55215],\"disallowed\"],[[55216,55238],\"valid\",[],\"NV8\"],[[55239,55242],\"disallowed\"],[[55243,55291],\"valid\",[],\"NV8\"],[[55292,55295],\"disallowed\"],[[55296,57343],\"disallowed\"],[[57344,63743],\"disallowed\"],[[63744,63744],\"mapped\",[35912]],[[63745,63745],\"mapped\",[26356]],[[63746,63746],\"mapped\",[36554]],[[63747,63747],\"mapped\",[36040]],[[63748,63748],\"mapped\",[28369]],[[63749,63749],\"mapped\",[20018]],[[63750,63750],\"mapped\",[21477]],[[63751,63752],\"mapped\",[40860]],[[63753,63753],\"mapped\",[22865]],[[63754,63754],\"mapped\",[37329]],[[63755,63755],\"mapped\",[21895]],[[63756,63756],\"mapped\",[22856]],[[63757,63757],\"mapped\",[25078]],[[63758,63758],\"mapped\",[30313]],[[63759,63759],\"mapped\",[32645]],[[63760,63760],\"mapped\",[34367]],[[63761,63761],\"mapped\",[34746]],[[63762,63762],\"mapped\",[35064]],[[63763,63763],\"mapped\",[37007]],[[63764,63764],\"mapped\",[27138]],[[63765,63765],\"mapped\",[27931]],[[63766,63766],\"mapped\",[28889]],[[63767,63767],\"mapped\",[29662]],[[63768,63768],\"mapped\",[33853]],[[63769,63769],\"mapped\",[37226]],[[63770,63770],\"mapped\",[39409]],[[63771,63771],\"mapped\",[20098]],[[63772,63772],\"mapped\",[21365]],[[63773,63773],\"mapped\",[27396]],[[63774,63774],\"mapped\",[29211]],[[63775,63775],\"mapped\",[34349]],[[63776,63776],\"mapped\",[40478]],[[63777,63777],\"mapped\",[23888]],[[63778,63778],\"mapped\",[28651]],[[63779,63779],\"mapped\",[34253]],[[63780,63780],\"mapped\",[35172]],[[63781,63781],\"mapped\",[25289]],[[63782,63782],\"mapped\",[33240]],[[63783,63783],\"mapped\",[34847]],[[63784,63784],\"mapped\",[24266]],[[63785,63785],\"mapped\",[26391]],[[63786,63786],\"mapped\",[28010]],[[63787,63787],\"mapped\",[29436]],[[63788,63788],\"mapped\",[37070]],[[63789,63789],\"mapped\",[20358]],[[63790,63790],\"mapped\",[20919]],[[63791,63791],\"mapped\",[21214]],[[63792,63792],\"mapped\",[25796]],[[63793,63793],\"mapped\",[27347]],[[63794,63794],\"mapped\",[29200]],[[63795,63795],\"mapped\",[30439]],[[63796,63796],\"mapped\",[32769]],[[63797,63797],\"mapped\",[34310]],[[63798,63798],\"mapped\",[34396]],[[63799,63799],\"mapped\",[36335]],[[63800,63800],\"mapped\",[38706]],[[63801,63801],\"mapped\",[39791]],[[63802,63802],\"mapped\",[40442]],[[63803,63803],\"mapped\",[30860]],[[63804,63804],\"mapped\",[31103]],[[63805,63805],\"mapped\",[32160]],[[63806,63806],\"mapped\",[33737]],[[63807,63807],\"mapped\",[37636]],[[63808,63808],\"mapped\",[40575]],[[63809,63809],\"mapped\",[35542]],[[63810,63810],\"mapped\",[22751]],[[63811,63811],\"mapped\",[24324]],[[63812,63812],\"mapped\",[31840]],[[63813,63813],\"mapped\",[32894]],[[63814,63814],\"mapped\",[29282]],[[63815,63815],\"mapped\",[30922]],[[63816,63816],\"mapped\",[36034]],[[63817,63817],\"mapped\",[38647]],[[63818,63818],\"mapped\",[22744]],[[63819,63819],\"mapped\",[23650]],[[63820,63820],\"mapped\",[27155]],[[63821,63821],\"mapped\",[28122]],[[63822,63822],\"mapped\",[28431]],[[63823,63823],\"mapped\",[32047]],[[63824,63824],\"mapped\",[32311]],[[63825,63825],\"mapped\",[38475]],[[63826,63826],\"mapped\",[21202]],[[63827,63827],\"mapped\",[32907]],[[63828,63828],\"mapped\",[20956]],[[63829,63829],\"mapped\",[20940]],[[63830,63830],\"mapped\",[31260]],[[63831,63831],\"mapped\",[32190]],[[63832,63832],\"mapped\",[33777]],[[63833,63833],\"mapped\",[38517]],[[63834,63834],\"mapped\",[35712]],[[63835,63835],\"mapped\",[25295]],[[63836,63836],\"mapped\",[27138]],[[63837,63837],\"mapped\",[35582]],[[63838,63838],\"mapped\",[20025]],[[63839,63839],\"mapped\",[23527]],[[63840,63840],\"mapped\",[24594]],[[63841,63841],\"mapped\",[29575]],[[63842,63842],\"mapped\",[30064]],[[63843,63843],\"mapped\",[21271]],[[63844,63844],\"mapped\",[30971]],[[63845,63845],\"mapped\",[20415]],[[63846,63846],\"mapped\",[24489]],[[63847,63847],\"mapped\",[19981]],[[63848,63848],\"mapped\",[27852]],[[63849,63849],\"mapped\",[25976]],[[63850,63850],\"mapped\",[32034]],[[63851,63851],\"mapped\",[21443]],[[63852,63852],\"mapped\",[22622]],[[63853,63853],\"mapped\",[30465]],[[63854,63854],\"mapped\",[33865]],[[63855,63855],\"mapped\",[35498]],[[63856,63856],\"mapped\",[27578]],[[63857,63857],\"mapped\",[36784]],[[63858,63858],\"mapped\",[27784]],[[63859,63859],\"mapped\",[25342]],[[63860,63860],\"mapped\",[33509]],[[63861,63861],\"mapped\",[25504]],[[63862,63862],\"mapped\",[30053]],[[63863,63863],\"mapped\",[20142]],[[63864,63864],\"mapped\",[20841]],[[63865,63865],\"mapped\",[20937]],[[63866,63866],\"mapped\",[26753]],[[63867,63867],\"mapped\",[31975]],[[63868,63868],\"mapped\",[33391]],[[63869,63869],\"mapped\",[35538]],[[63870,63870],\"mapped\",[37327]],[[63871,63871],\"mapped\",[21237]],[[63872,63872],\"mapped\",[21570]],[[63873,63873],\"mapped\",[22899]],[[63874,63874],\"mapped\",[24300]],[[63875,63875],\"mapped\",[26053]],[[63876,63876],\"mapped\",[28670]],[[63877,63877],\"mapped\",[31018]],[[63878,63878],\"mapped\",[38317]],[[63879,63879],\"mapped\",[39530]],[[63880,63880],\"mapped\",[40599]],[[63881,63881],\"mapped\",[40654]],[[63882,63882],\"mapped\",[21147]],[[63883,63883],\"mapped\",[26310]],[[63884,63884],\"mapped\",[27511]],[[63885,63885],\"mapped\",[36706]],[[63886,63886],\"mapped\",[24180]],[[63887,63887],\"mapped\",[24976]],[[63888,63888],\"mapped\",[25088]],[[63889,63889],\"mapped\",[25754]],[[63890,63890],\"mapped\",[28451]],[[63891,63891],\"mapped\",[29001]],[[63892,63892],\"mapped\",[29833]],[[63893,63893],\"mapped\",[31178]],[[63894,63894],\"mapped\",[32244]],[[63895,63895],\"mapped\",[32879]],[[63896,63896],\"mapped\",[36646]],[[63897,63897],\"mapped\",[34030]],[[63898,63898],\"mapped\",[36899]],[[63899,63899],\"mapped\",[37706]],[[63900,63900],\"mapped\",[21015]],[[63901,63901],\"mapped\",[21155]],[[63902,63902],\"mapped\",[21693]],[[63903,63903],\"mapped\",[28872]],[[63904,63904],\"mapped\",[35010]],[[63905,63905],\"mapped\",[35498]],[[63906,63906],\"mapped\",[24265]],[[63907,63907],\"mapped\",[24565]],[[63908,63908],\"mapped\",[25467]],[[63909,63909],\"mapped\",[27566]],[[63910,63910],\"mapped\",[31806]],[[63911,63911],\"mapped\",[29557]],[[63912,63912],\"mapped\",[20196]],[[63913,63913],\"mapped\",[22265]],[[63914,63914],\"mapped\",[23527]],[[63915,63915],\"mapped\",[23994]],[[63916,63916],\"mapped\",[24604]],[[63917,63917],\"mapped\",[29618]],[[63918,63918],\"mapped\",[29801]],[[63919,63919],\"mapped\",[32666]],[[63920,63920],\"mapped\",[32838]],[[63921,63921],\"mapped\",[37428]],[[63922,63922],\"mapped\",[38646]],[[63923,63923],\"mapped\",[38728]],[[63924,63924],\"mapped\",[38936]],[[63925,63925],\"mapped\",[20363]],[[63926,63926],\"mapped\",[31150]],[[63927,63927],\"mapped\",[37300]],[[63928,63928],\"mapped\",[38584]],[[63929,63929],\"mapped\",[24801]],[[63930,63930],\"mapped\",[20102]],[[63931,63931],\"mapped\",[20698]],[[63932,63932],\"mapped\",[23534]],[[63933,63933],\"mapped\",[23615]],[[63934,63934],\"mapped\",[26009]],[[63935,63935],\"mapped\",[27138]],[[63936,63936],\"mapped\",[29134]],[[63937,63937],\"mapped\",[30274]],[[63938,63938],\"mapped\",[34044]],[[63939,63939],\"mapped\",[36988]],[[63940,63940],\"mapped\",[40845]],[[63941,63941],\"mapped\",[26248]],[[63942,63942],\"mapped\",[38446]],[[63943,63943],\"mapped\",[21129]],[[63944,63944],\"mapped\",[26491]],[[63945,63945],\"mapped\",[26611]],[[63946,63946],\"mapped\",[27969]],[[63947,63947],\"mapped\",[28316]],[[63948,63948],\"mapped\",[29705]],[[63949,63949],\"mapped\",[30041]],[[63950,63950],\"mapped\",[30827]],[[63951,63951],\"mapped\",[32016]],[[63952,63952],\"mapped\",[39006]],[[63953,63953],\"mapped\",[20845]],[[63954,63954],\"mapped\",[25134]],[[63955,63955],\"mapped\",[38520]],[[63956,63956],\"mapped\",[20523]],[[63957,63957],\"mapped\",[23833]],[[63958,63958],\"mapped\",[28138]],[[63959,63959],\"mapped\",[36650]],[[63960,63960],\"mapped\",[24459]],[[63961,63961],\"mapped\",[24900]],[[63962,63962],\"mapped\",[26647]],[[63963,63963],\"mapped\",[29575]],[[63964,63964],\"mapped\",[38534]],[[63965,63965],\"mapped\",[21033]],[[63966,63966],\"mapped\",[21519]],[[63967,63967],\"mapped\",[23653]],[[63968,63968],\"mapped\",[26131]],[[63969,63969],\"mapped\",[26446]],[[63970,63970],\"mapped\",[26792]],[[63971,63971],\"mapped\",[27877]],[[63972,63972],\"mapped\",[29702]],[[63973,63973],\"mapped\",[30178]],[[63974,63974],\"mapped\",[32633]],[[63975,63975],\"mapped\",[35023]],[[63976,63976],\"mapped\",[35041]],[[63977,63977],\"mapped\",[37324]],[[63978,63978],\"mapped\",[38626]],[[63979,63979],\"mapped\",[21311]],[[63980,63980],\"mapped\",[28346]],[[63981,63981],\"mapped\",[21533]],[[63982,63982],\"mapped\",[29136]],[[63983,63983],\"mapped\",[29848]],[[63984,63984],\"mapped\",[34298]],[[63985,63985],\"mapped\",[38563]],[[63986,63986],\"mapped\",[40023]],[[63987,63987],\"mapped\",[40607]],[[63988,63988],\"mapped\",[26519]],[[63989,63989],\"mapped\",[28107]],[[63990,63990],\"mapped\",[33256]],[[63991,63991],\"mapped\",[31435]],[[63992,63992],\"mapped\",[31520]],[[63993,63993],\"mapped\",[31890]],[[63994,63994],\"mapped\",[29376]],[[63995,63995],\"mapped\",[28825]],[[63996,63996],\"mapped\",[35672]],[[63997,63997],\"mapped\",[20160]],[[63998,63998],\"mapped\",[33590]],[[63999,63999],\"mapped\",[21050]],[[64000,64000],\"mapped\",[20999]],[[64001,64001],\"mapped\",[24230]],[[64002,64002],\"mapped\",[25299]],[[64003,64003],\"mapped\",[31958]],[[64004,64004],\"mapped\",[23429]],[[64005,64005],\"mapped\",[27934]],[[64006,64006],\"mapped\",[26292]],[[64007,64007],\"mapped\",[36667]],[[64008,64008],\"mapped\",[34892]],[[64009,64009],\"mapped\",[38477]],[[64010,64010],\"mapped\",[35211]],[[64011,64011],\"mapped\",[24275]],[[64012,64012],\"mapped\",[20800]],[[64013,64013],\"mapped\",[21952]],[[64014,64015],\"valid\"],[[64016,64016],\"mapped\",[22618]],[[64017,64017],\"valid\"],[[64018,64018],\"mapped\",[26228]],[[64019,64020],\"valid\"],[[64021,64021],\"mapped\",[20958]],[[64022,64022],\"mapped\",[29482]],[[64023,64023],\"mapped\",[30410]],[[64024,64024],\"mapped\",[31036]],[[64025,64025],\"mapped\",[31070]],[[64026,64026],\"mapped\",[31077]],[[64027,64027],\"mapped\",[31119]],[[64028,64028],\"mapped\",[38742]],[[64029,64029],\"mapped\",[31934]],[[64030,64030],\"mapped\",[32701]],[[64031,64031],\"valid\"],[[64032,64032],\"mapped\",[34322]],[[64033,64033],\"valid\"],[[64034,64034],\"mapped\",[35576]],[[64035,64036],\"valid\"],[[64037,64037],\"mapped\",[36920]],[[64038,64038],\"mapped\",[37117]],[[64039,64041],\"valid\"],[[64042,64042],\"mapped\",[39151]],[[64043,64043],\"mapped\",[39164]],[[64044,64044],\"mapped\",[39208]],[[64045,64045],\"mapped\",[40372]],[[64046,64046],\"mapped\",[37086]],[[64047,64047],\"mapped\",[38583]],[[64048,64048],\"mapped\",[20398]],[[64049,64049],\"mapped\",[20711]],[[64050,64050],\"mapped\",[20813]],[[64051,64051],\"mapped\",[21193]],[[64052,64052],\"mapped\",[21220]],[[64053,64053],\"mapped\",[21329]],[[64054,64054],\"mapped\",[21917]],[[64055,64055],\"mapped\",[22022]],[[64056,64056],\"mapped\",[22120]],[[64057,64057],\"mapped\",[22592]],[[64058,64058],\"mapped\",[22696]],[[64059,64059],\"mapped\",[23652]],[[64060,64060],\"mapped\",[23662]],[[64061,64061],\"mapped\",[24724]],[[64062,64062],\"mapped\",[24936]],[[64063,64063],\"mapped\",[24974]],[[64064,64064],\"mapped\",[25074]],[[64065,64065],\"mapped\",[25935]],[[64066,64066],\"mapped\",[26082]],[[64067,64067],\"mapped\",[26257]],[[64068,64068],\"mapped\",[26757]],[[64069,64069],\"mapped\",[28023]],[[64070,64070],\"mapped\",[28186]],[[64071,64071],\"mapped\",[28450]],[[64072,64072],\"mapped\",[29038]],[[64073,64073],\"mapped\",[29227]],[[64074,64074],\"mapped\",[29730]],[[64075,64075],\"mapped\",[30865]],[[64076,64076],\"mapped\",[31038]],[[64077,64077],\"mapped\",[31049]],[[64078,64078],\"mapped\",[31048]],[[64079,64079],\"mapped\",[31056]],[[64080,64080],\"mapped\",[31062]],[[64081,64081],\"mapped\",[31069]],[[64082,64082],\"mapped\",[31117]],[[64083,64083],\"mapped\",[31118]],[[64084,64084],\"mapped\",[31296]],[[64085,64085],\"mapped\",[31361]],[[64086,64086],\"mapped\",[31680]],[[64087,64087],\"mapped\",[32244]],[[64088,64088],\"mapped\",[32265]],[[64089,64089],\"mapped\",[32321]],[[64090,64090],\"mapped\",[32626]],[[64091,64091],\"mapped\",[32773]],[[64092,64092],\"mapped\",[33261]],[[64093,64094],\"mapped\",[33401]],[[64095,64095],\"mapped\",[33879]],[[64096,64096],\"mapped\",[35088]],[[64097,64097],\"mapped\",[35222]],[[64098,64098],\"mapped\",[35585]],[[64099,64099],\"mapped\",[35641]],[[64100,64100],\"mapped\",[36051]],[[64101,64101],\"mapped\",[36104]],[[64102,64102],\"mapped\",[36790]],[[64103,64103],\"mapped\",[36920]],[[64104,64104],\"mapped\",[38627]],[[64105,64105],\"mapped\",[38911]],[[64106,64106],\"mapped\",[38971]],[[64107,64107],\"mapped\",[24693]],[[64108,64108],\"mapped\",[148206]],[[64109,64109],\"mapped\",[33304]],[[64110,64111],\"disallowed\"],[[64112,64112],\"mapped\",[20006]],[[64113,64113],\"mapped\",[20917]],[[64114,64114],\"mapped\",[20840]],[[64115,64115],\"mapped\",[20352]],[[64116,64116],\"mapped\",[20805]],[[64117,64117],\"mapped\",[20864]],[[64118,64118],\"mapped\",[21191]],[[64119,64119],\"mapped\",[21242]],[[64120,64120],\"mapped\",[21917]],[[64121,64121],\"mapped\",[21845]],[[64122,64122],\"mapped\",[21913]],[[64123,64123],\"mapped\",[21986]],[[64124,64124],\"mapped\",[22618]],[[64125,64125],\"mapped\",[22707]],[[64126,64126],\"mapped\",[22852]],[[64127,64127],\"mapped\",[22868]],[[64128,64128],\"mapped\",[23138]],[[64129,64129],\"mapped\",[23336]],[[64130,64130],\"mapped\",[24274]],[[64131,64131],\"mapped\",[24281]],[[64132,64132],\"mapped\",[24425]],[[64133,64133],\"mapped\",[24493]],[[64134,64134],\"mapped\",[24792]],[[64135,64135],\"mapped\",[24910]],[[64136,64136],\"mapped\",[24840]],[[64137,64137],\"mapped\",[24974]],[[64138,64138],\"mapped\",[24928]],[[64139,64139],\"mapped\",[25074]],[[64140,64140],\"mapped\",[25140]],[[64141,64141],\"mapped\",[25540]],[[64142,64142],\"mapped\",[25628]],[[64143,64143],\"mapped\",[25682]],[[64144,64144],\"mapped\",[25942]],[[64145,64145],\"mapped\",[26228]],[[64146,64146],\"mapped\",[26391]],[[64147,64147],\"mapped\",[26395]],[[64148,64148],\"mapped\",[26454]],[[64149,64149],\"mapped\",[27513]],[[64150,64150],\"mapped\",[27578]],[[64151,64151],\"mapped\",[27969]],[[64152,64152],\"mapped\",[28379]],[[64153,64153],\"mapped\",[28363]],[[64154,64154],\"mapped\",[28450]],[[64155,64155],\"mapped\",[28702]],[[64156,64156],\"mapped\",[29038]],[[64157,64157],\"mapped\",[30631]],[[64158,64158],\"mapped\",[29237]],[[64159,64159],\"mapped\",[29359]],[[64160,64160],\"mapped\",[29482]],[[64161,64161],\"mapped\",[29809]],[[64162,64162],\"mapped\",[29958]],[[64163,64163],\"mapped\",[30011]],[[64164,64164],\"mapped\",[30237]],[[64165,64165],\"mapped\",[30239]],[[64166,64166],\"mapped\",[30410]],[[64167,64167],\"mapped\",[30427]],[[64168,64168],\"mapped\",[30452]],[[64169,64169],\"mapped\",[30538]],[[64170,64170],\"mapped\",[30528]],[[64171,64171],\"mapped\",[30924]],[[64172,64172],\"mapped\",[31409]],[[64173,64173],\"mapped\",[31680]],[[64174,64174],\"mapped\",[31867]],[[64175,64175],\"mapped\",[32091]],[[64176,64176],\"mapped\",[32244]],[[64177,64177],\"mapped\",[32574]],[[64178,64178],\"mapped\",[32773]],[[64179,64179],\"mapped\",[33618]],[[64180,64180],\"mapped\",[33775]],[[64181,64181],\"mapped\",[34681]],[[64182,64182],\"mapped\",[35137]],[[64183,64183],\"mapped\",[35206]],[[64184,64184],\"mapped\",[35222]],[[64185,64185],\"mapped\",[35519]],[[64186,64186],\"mapped\",[35576]],[[64187,64187],\"mapped\",[35531]],[[64188,64188],\"mapped\",[35585]],[[64189,64189],\"mapped\",[35582]],[[64190,64190],\"mapped\",[35565]],[[64191,64191],\"mapped\",[35641]],[[64192,64192],\"mapped\",[35722]],[[64193,64193],\"mapped\",[36104]],[[64194,64194],\"mapped\",[36664]],[[64195,64195],\"mapped\",[36978]],[[64196,64196],\"mapped\",[37273]],[[64197,64197],\"mapped\",[37494]],[[64198,64198],\"mapped\",[38524]],[[64199,64199],\"mapped\",[38627]],[[64200,64200],\"mapped\",[38742]],[[64201,64201],\"mapped\",[38875]],[[64202,64202],\"mapped\",[38911]],[[64203,64203],\"mapped\",[38923]],[[64204,64204],\"mapped\",[38971]],[[64205,64205],\"mapped\",[39698]],[[64206,64206],\"mapped\",[40860]],[[64207,64207],\"mapped\",[141386]],[[64208,64208],\"mapped\",[141380]],[[64209,64209],\"mapped\",[144341]],[[64210,64210],\"mapped\",[15261]],[[64211,64211],\"mapped\",[16408]],[[64212,64212],\"mapped\",[16441]],[[64213,64213],\"mapped\",[152137]],[[64214,64214],\"mapped\",[154832]],[[64215,64215],\"mapped\",[163539]],[[64216,64216],\"mapped\",[40771]],[[64217,64217],\"mapped\",[40846]],[[64218,64255],\"disallowed\"],[[64256,64256],\"mapped\",[102,102]],[[64257,64257],\"mapped\",[102,105]],[[64258,64258],\"mapped\",[102,108]],[[64259,64259],\"mapped\",[102,102,105]],[[64260,64260],\"mapped\",[102,102,108]],[[64261,64262],\"mapped\",[115,116]],[[64263,64274],\"disallowed\"],[[64275,64275],\"mapped\",[1396,1398]],[[64276,64276],\"mapped\",[1396,1381]],[[64277,64277],\"mapped\",[1396,1387]],[[64278,64278],\"mapped\",[1406,1398]],[[64279,64279],\"mapped\",[1396,1389]],[[64280,64284],\"disallowed\"],[[64285,64285],\"mapped\",[1497,1460]],[[64286,64286],\"valid\"],[[64287,64287],\"mapped\",[1522,1463]],[[64288,64288],\"mapped\",[1506]],[[64289,64289],\"mapped\",[1488]],[[64290,64290],\"mapped\",[1491]],[[64291,64291],\"mapped\",[1492]],[[64292,64292],\"mapped\",[1499]],[[64293,64293],\"mapped\",[1500]],[[64294,64294],\"mapped\",[1501]],[[64295,64295],\"mapped\",[1512]],[[64296,64296],\"mapped\",[1514]],[[64297,64297],\"disallowed_STD3_mapped\",[43]],[[64298,64298],\"mapped\",[1513,1473]],[[64299,64299],\"mapped\",[1513,1474]],[[64300,64300],\"mapped\",[1513,1468,1473]],[[64301,64301],\"mapped\",[1513,1468,1474]],[[64302,64302],\"mapped\",[1488,1463]],[[64303,64303],\"mapped\",[1488,1464]],[[64304,64304],\"mapped\",[1488,1468]],[[64305,64305],\"mapped\",[1489,1468]],[[64306,64306],\"mapped\",[1490,1468]],[[64307,64307],\"mapped\",[1491,1468]],[[64308,64308],\"mapped\",[1492,1468]],[[64309,64309],\"mapped\",[1493,1468]],[[64310,64310],\"mapped\",[1494,1468]],[[64311,64311],\"disallowed\"],[[64312,64312],\"mapped\",[1496,1468]],[[64313,64313],\"mapped\",[1497,1468]],[[64314,64314],\"mapped\",[1498,1468]],[[64315,64315],\"mapped\",[1499,1468]],[[64316,64316],\"mapped\",[1500,1468]],[[64317,64317],\"disallowed\"],[[64318,64318],\"mapped\",[1502,1468]],[[64319,64319],\"disallowed\"],[[64320,64320],\"mapped\",[1504,1468]],[[64321,64321],\"mapped\",[1505,1468]],[[64322,64322],\"disallowed\"],[[64323,64323],\"mapped\",[1507,1468]],[[64324,64324],\"mapped\",[1508,1468]],[[64325,64325],\"disallowed\"],[[64326,64326],\"mapped\",[1510,1468]],[[64327,64327],\"mapped\",[1511,1468]],[[64328,64328],\"mapped\",[1512,1468]],[[64329,64329],\"mapped\",[1513,1468]],[[64330,64330],\"mapped\",[1514,1468]],[[64331,64331],\"mapped\",[1493,1465]],[[64332,64332],\"mapped\",[1489,1471]],[[64333,64333],\"mapped\",[1499,1471]],[[64334,64334],\"mapped\",[1508,1471]],[[64335,64335],\"mapped\",[1488,1500]],[[64336,64337],\"mapped\",[1649]],[[64338,64341],\"mapped\",[1659]],[[64342,64345],\"mapped\",[1662]],[[64346,64349],\"mapped\",[1664]],[[64350,64353],\"mapped\",[1658]],[[64354,64357],\"mapped\",[1663]],[[64358,64361],\"mapped\",[1657]],[[64362,64365],\"mapped\",[1700]],[[64366,64369],\"mapped\",[1702]],[[64370,64373],\"mapped\",[1668]],[[64374,64377],\"mapped\",[1667]],[[64378,64381],\"mapped\",[1670]],[[64382,64385],\"mapped\",[1671]],[[64386,64387],\"mapped\",[1677]],[[64388,64389],\"mapped\",[1676]],[[64390,64391],\"mapped\",[1678]],[[64392,64393],\"mapped\",[1672]],[[64394,64395],\"mapped\",[1688]],[[64396,64397],\"mapped\",[1681]],[[64398,64401],\"mapped\",[1705]],[[64402,64405],\"mapped\",[1711]],[[64406,64409],\"mapped\",[1715]],[[64410,64413],\"mapped\",[1713]],[[64414,64415],\"mapped\",[1722]],[[64416,64419],\"mapped\",[1723]],[[64420,64421],\"mapped\",[1728]],[[64422,64425],\"mapped\",[1729]],[[64426,64429],\"mapped\",[1726]],[[64430,64431],\"mapped\",[1746]],[[64432,64433],\"mapped\",[1747]],[[64434,64449],\"valid\",[],\"NV8\"],[[64450,64466],\"disallowed\"],[[64467,64470],\"mapped\",[1709]],[[64471,64472],\"mapped\",[1735]],[[64473,64474],\"mapped\",[1734]],[[64475,64476],\"mapped\",[1736]],[[64477,64477],\"mapped\",[1735,1652]],[[64478,64479],\"mapped\",[1739]],[[64480,64481],\"mapped\",[1733]],[[64482,64483],\"mapped\",[1737]],[[64484,64487],\"mapped\",[1744]],[[64488,64489],\"mapped\",[1609]],[[64490,64491],\"mapped\",[1574,1575]],[[64492,64493],\"mapped\",[1574,1749]],[[64494,64495],\"mapped\",[1574,1608]],[[64496,64497],\"mapped\",[1574,1735]],[[64498,64499],\"mapped\",[1574,1734]],[[64500,64501],\"mapped\",[1574,1736]],[[64502,64504],\"mapped\",[1574,1744]],[[64505,64507],\"mapped\",[1574,1609]],[[64508,64511],\"mapped\",[1740]],[[64512,64512],\"mapped\",[1574,1580]],[[64513,64513],\"mapped\",[1574,1581]],[[64514,64514],\"mapped\",[1574,1605]],[[64515,64515],\"mapped\",[1574,1609]],[[64516,64516],\"mapped\",[1574,1610]],[[64517,64517],\"mapped\",[1576,1580]],[[64518,64518],\"mapped\",[1576,1581]],[[64519,64519],\"mapped\",[1576,1582]],[[64520,64520],\"mapped\",[1576,1605]],[[64521,64521],\"mapped\",[1576,1609]],[[64522,64522],\"mapped\",[1576,1610]],[[64523,64523],\"mapped\",[1578,1580]],[[64524,64524],\"mapped\",[1578,1581]],[[64525,64525],\"mapped\",[1578,1582]],[[64526,64526],\"mapped\",[1578,1605]],[[64527,64527],\"mapped\",[1578,1609]],[[64528,64528],\"mapped\",[1578,1610]],[[64529,64529],\"mapped\",[1579,1580]],[[64530,64530],\"mapped\",[1579,1605]],[[64531,64531],\"mapped\",[1579,1609]],[[64532,64532],\"mapped\",[1579,1610]],[[64533,64533],\"mapped\",[1580,1581]],[[64534,64534],\"mapped\",[1580,1605]],[[64535,64535],\"mapped\",[1581,1580]],[[64536,64536],\"mapped\",[1581,1605]],[[64537,64537],\"mapped\",[1582,1580]],[[64538,64538],\"mapped\",[1582,1581]],[[64539,64539],\"mapped\",[1582,1605]],[[64540,64540],\"mapped\",[1587,1580]],[[64541,64541],\"mapped\",[1587,1581]],[[64542,64542],\"mapped\",[1587,1582]],[[64543,64543],\"mapped\",[1587,1605]],[[64544,64544],\"mapped\",[1589,1581]],[[64545,64545],\"mapped\",[1589,1605]],[[64546,64546],\"mapped\",[1590,1580]],[[64547,64547],\"mapped\",[1590,1581]],[[64548,64548],\"mapped\",[1590,1582]],[[64549,64549],\"mapped\",[1590,1605]],[[64550,64550],\"mapped\",[1591,1581]],[[64551,64551],\"mapped\",[1591,1605]],[[64552,64552],\"mapped\",[1592,1605]],[[64553,64553],\"mapped\",[1593,1580]],[[64554,64554],\"mapped\",[1593,1605]],[[64555,64555],\"mapped\",[1594,1580]],[[64556,64556],\"mapped\",[1594,1605]],[[64557,64557],\"mapped\",[1601,1580]],[[64558,64558],\"mapped\",[1601,1581]],[[64559,64559],\"mapped\",[1601,1582]],[[64560,64560],\"mapped\",[1601,1605]],[[64561,64561],\"mapped\",[1601,1609]],[[64562,64562],\"mapped\",[1601,1610]],[[64563,64563],\"mapped\",[1602,1581]],[[64564,64564],\"mapped\",[1602,1605]],[[64565,64565],\"mapped\",[1602,1609]],[[64566,64566],\"mapped\",[1602,1610]],[[64567,64567],\"mapped\",[1603,1575]],[[64568,64568],\"mapped\",[1603,1580]],[[64569,64569],\"mapped\",[1603,1581]],[[64570,64570],\"mapped\",[1603,1582]],[[64571,64571],\"mapped\",[1603,1604]],[[64572,64572],\"mapped\",[1603,1605]],[[64573,64573],\"mapped\",[1603,1609]],[[64574,64574],\"mapped\",[1603,1610]],[[64575,64575],\"mapped\",[1604,1580]],[[64576,64576],\"mapped\",[1604,1581]],[[64577,64577],\"mapped\",[1604,1582]],[[64578,64578],\"mapped\",[1604,1605]],[[64579,64579],\"mapped\",[1604,1609]],[[64580,64580],\"mapped\",[1604,1610]],[[64581,64581],\"mapped\",[1605,1580]],[[64582,64582],\"mapped\",[1605,1581]],[[64583,64583],\"mapped\",[1605,1582]],[[64584,64584],\"mapped\",[1605,1605]],[[64585,64585],\"mapped\",[1605,1609]],[[64586,64586],\"mapped\",[1605,1610]],[[64587,64587],\"mapped\",[1606,1580]],[[64588,64588],\"mapped\",[1606,1581]],[[64589,64589],\"mapped\",[1606,1582]],[[64590,64590],\"mapped\",[1606,1605]],[[64591,64591],\"mapped\",[1606,1609]],[[64592,64592],\"mapped\",[1606,1610]],[[64593,64593],\"mapped\",[1607,1580]],[[64594,64594],\"mapped\",[1607,1605]],[[64595,64595],\"mapped\",[1607,1609]],[[64596,64596],\"mapped\",[1607,1610]],[[64597,64597],\"mapped\",[1610,1580]],[[64598,64598],\"mapped\",[1610,1581]],[[64599,64599],\"mapped\",[1610,1582]],[[64600,64600],\"mapped\",[1610,1605]],[[64601,64601],\"mapped\",[1610,1609]],[[64602,64602],\"mapped\",[1610,1610]],[[64603,64603],\"mapped\",[1584,1648]],[[64604,64604],\"mapped\",[1585,1648]],[[64605,64605],\"mapped\",[1609,1648]],[[64606,64606],\"disallowed_STD3_mapped\",[32,1612,1617]],[[64607,64607],\"disallowed_STD3_mapped\",[32,1613,1617]],[[64608,64608],\"disallowed_STD3_mapped\",[32,1614,1617]],[[64609,64609],\"disallowed_STD3_mapped\",[32,1615,1617]],[[64610,64610],\"disallowed_STD3_mapped\",[32,1616,1617]],[[64611,64611],\"disallowed_STD3_mapped\",[32,1617,1648]],[[64612,64612],\"mapped\",[1574,1585]],[[64613,64613],\"mapped\",[1574,1586]],[[64614,64614],\"mapped\",[1574,1605]],[[64615,64615],\"mapped\",[1574,1606]],[[64616,64616],\"mapped\",[1574,1609]],[[64617,64617],\"mapped\",[1574,1610]],[[64618,64618],\"mapped\",[1576,1585]],[[64619,64619],\"mapped\",[1576,1586]],[[64620,64620],\"mapped\",[1576,1605]],[[64621,64621],\"mapped\",[1576,1606]],[[64622,64622],\"mapped\",[1576,1609]],[[64623,64623],\"mapped\",[1576,1610]],[[64624,64624],\"mapped\",[1578,1585]],[[64625,64625],\"mapped\",[1578,1586]],[[64626,64626],\"mapped\",[1578,1605]],[[64627,64627],\"mapped\",[1578,1606]],[[64628,64628],\"mapped\",[1578,1609]],[[64629,64629],\"mapped\",[1578,1610]],[[64630,64630],\"mapped\",[1579,1585]],[[64631,64631],\"mapped\",[1579,1586]],[[64632,64632],\"mapped\",[1579,1605]],[[64633,64633],\"mapped\",[1579,1606]],[[64634,64634],\"mapped\",[1579,1609]],[[64635,64635],\"mapped\",[1579,1610]],[[64636,64636],\"mapped\",[1601,1609]],[[64637,64637],\"mapped\",[1601,1610]],[[64638,64638],\"mapped\",[1602,1609]],[[64639,64639],\"mapped\",[1602,1610]],[[64640,64640],\"mapped\",[1603,1575]],[[64641,64641],\"mapped\",[1603,1604]],[[64642,64642],\"mapped\",[1603,1605]],[[64643,64643],\"mapped\",[1603,1609]],[[64644,64644],\"mapped\",[1603,1610]],[[64645,64645],\"mapped\",[1604,1605]],[[64646,64646],\"mapped\",[1604,1609]],[[64647,64647],\"mapped\",[1604,1610]],[[64648,64648],\"mapped\",[1605,1575]],[[64649,64649],\"mapped\",[1605,1605]],[[64650,64650],\"mapped\",[1606,1585]],[[64651,64651],\"mapped\",[1606,1586]],[[64652,64652],\"mapped\",[1606,1605]],[[64653,64653],\"mapped\",[1606,1606]],[[64654,64654],\"mapped\",[1606,1609]],[[64655,64655],\"mapped\",[1606,1610]],[[64656,64656],\"mapped\",[1609,1648]],[[64657,64657],\"mapped\",[1610,1585]],[[64658,64658],\"mapped\",[1610,1586]],[[64659,64659],\"mapped\",[1610,1605]],[[64660,64660],\"mapped\",[1610,1606]],[[64661,64661],\"mapped\",[1610,1609]],[[64662,64662],\"mapped\",[1610,1610]],[[64663,64663],\"mapped\",[1574,1580]],[[64664,64664],\"mapped\",[1574,1581]],[[64665,64665],\"mapped\",[1574,1582]],[[64666,64666],\"mapped\",[1574,1605]],[[64667,64667],\"mapped\",[1574,1607]],[[64668,64668],\"mapped\",[1576,1580]],[[64669,64669],\"mapped\",[1576,1581]],[[64670,64670],\"mapped\",[1576,1582]],[[64671,64671],\"mapped\",[1576,1605]],[[64672,64672],\"mapped\",[1576,1607]],[[64673,64673],\"mapped\",[1578,1580]],[[64674,64674],\"mapped\",[1578,1581]],[[64675,64675],\"mapped\",[1578,1582]],[[64676,64676],\"mapped\",[1578,1605]],[[64677,64677],\"mapped\",[1578,1607]],[[64678,64678],\"mapped\",[1579,1605]],[[64679,64679],\"mapped\",[1580,1581]],[[64680,64680],\"mapped\",[1580,1605]],[[64681,64681],\"mapped\",[1581,1580]],[[64682,64682],\"mapped\",[1581,1605]],[[64683,64683],\"mapped\",[1582,1580]],[[64684,64684],\"mapped\",[1582,1605]],[[64685,64685],\"mapped\",[1587,1580]],[[64686,64686],\"mapped\",[1587,1581]],[[64687,64687],\"mapped\",[1587,1582]],[[64688,64688],\"mapped\",[1587,1605]],[[64689,64689],\"mapped\",[1589,1581]],[[64690,64690],\"mapped\",[1589,1582]],[[64691,64691],\"mapped\",[1589,1605]],[[64692,64692],\"mapped\",[1590,1580]],[[64693,64693],\"mapped\",[1590,1581]],[[64694,64694],\"mapped\",[1590,1582]],[[64695,64695],\"mapped\",[1590,1605]],[[64696,64696],\"mapped\",[1591,1581]],[[64697,64697],\"mapped\",[1592,1605]],[[64698,64698],\"mapped\",[1593,1580]],[[64699,64699],\"mapped\",[1593,1605]],[[64700,64700],\"mapped\",[1594,1580]],[[64701,64701],\"mapped\",[1594,1605]],[[64702,64702],\"mapped\",[1601,1580]],[[64703,64703],\"mapped\",[1601,1581]],[[64704,64704],\"mapped\",[1601,1582]],[[64705,64705],\"mapped\",[1601,1605]],[[64706,64706],\"mapped\",[1602,1581]],[[64707,64707],\"mapped\",[1602,1605]],[[64708,64708],\"mapped\",[1603,1580]],[[64709,64709],\"mapped\",[1603,1581]],[[64710,64710],\"mapped\",[1603,1582]],[[64711,64711],\"mapped\",[1603,1604]],[[64712,64712],\"mapped\",[1603,1605]],[[64713,64713],\"mapped\",[1604,1580]],[[64714,64714],\"mapped\",[1604,1581]],[[64715,64715],\"mapped\",[1604,1582]],[[64716,64716],\"mapped\",[1604,1605]],[[64717,64717],\"mapped\",[1604,1607]],[[64718,64718],\"mapped\",[1605,1580]],[[64719,64719],\"mapped\",[1605,1581]],[[64720,64720],\"mapped\",[1605,1582]],[[64721,64721],\"mapped\",[1605,1605]],[[64722,64722],\"mapped\",[1606,1580]],[[64723,64723],\"mapped\",[1606,1581]],[[64724,64724],\"mapped\",[1606,1582]],[[64725,64725],\"mapped\",[1606,1605]],[[64726,64726],\"mapped\",[1606,1607]],[[64727,64727],\"mapped\",[1607,1580]],[[64728,64728],\"mapped\",[1607,1605]],[[64729,64729],\"mapped\",[1607,1648]],[[64730,64730],\"mapped\",[1610,1580]],[[64731,64731],\"mapped\",[1610,1581]],[[64732,64732],\"mapped\",[1610,1582]],[[64733,64733],\"mapped\",[1610,1605]],[[64734,64734],\"mapped\",[1610,1607]],[[64735,64735],\"mapped\",[1574,1605]],[[64736,64736],\"mapped\",[1574,1607]],[[64737,64737],\"mapped\",[1576,1605]],[[64738,64738],\"mapped\",[1576,1607]],[[64739,64739],\"mapped\",[1578,1605]],[[64740,64740],\"mapped\",[1578,1607]],[[64741,64741],\"mapped\",[1579,1605]],[[64742,64742],\"mapped\",[1579,1607]],[[64743,64743],\"mapped\",[1587,1605]],[[64744,64744],\"mapped\",[1587,1607]],[[64745,64745],\"mapped\",[1588,1605]],[[64746,64746],\"mapped\",[1588,1607]],[[64747,64747],\"mapped\",[1603,1604]],[[64748,64748],\"mapped\",[1603,1605]],[[64749,64749],\"mapped\",[1604,1605]],[[64750,64750],\"mapped\",[1606,1605]],[[64751,64751],\"mapped\",[1606,1607]],[[64752,64752],\"mapped\",[1610,1605]],[[64753,64753],\"mapped\",[1610,1607]],[[64754,64754],\"mapped\",[1600,1614,1617]],[[64755,64755],\"mapped\",[1600,1615,1617]],[[64756,64756],\"mapped\",[1600,1616,1617]],[[64757,64757],\"mapped\",[1591,1609]],[[64758,64758],\"mapped\",[1591,1610]],[[64759,64759],\"mapped\",[1593,1609]],[[64760,64760],\"mapped\",[1593,1610]],[[64761,64761],\"mapped\",[1594,1609]],[[64762,64762],\"mapped\",[1594,1610]],[[64763,64763],\"mapped\",[1587,1609]],[[64764,64764],\"mapped\",[1587,1610]],[[64765,64765],\"mapped\",[1588,1609]],[[64766,64766],\"mapped\",[1588,1610]],[[64767,64767],\"mapped\",[1581,1609]],[[64768,64768],\"mapped\",[1581,1610]],[[64769,64769],\"mapped\",[1580,1609]],[[64770,64770],\"mapped\",[1580,1610]],[[64771,64771],\"mapped\",[1582,1609]],[[64772,64772],\"mapped\",[1582,1610]],[[64773,64773],\"mapped\",[1589,1609]],[[64774,64774],\"mapped\",[1589,1610]],[[64775,64775],\"mapped\",[1590,1609]],[[64776,64776],\"mapped\",[1590,1610]],[[64777,64777],\"mapped\",[1588,1580]],[[64778,64778],\"mapped\",[1588,1581]],[[64779,64779],\"mapped\",[1588,1582]],[[64780,64780],\"mapped\",[1588,1605]],[[64781,64781],\"mapped\",[1588,1585]],[[64782,64782],\"mapped\",[1587,1585]],[[64783,64783],\"mapped\",[1589,1585]],[[64784,64784],\"mapped\",[1590,1585]],[[64785,64785],\"mapped\",[1591,1609]],[[64786,64786],\"mapped\",[1591,1610]],[[64787,64787],\"mapped\",[1593,1609]],[[64788,64788],\"mapped\",[1593,1610]],[[64789,64789],\"mapped\",[1594,1609]],[[64790,64790],\"mapped\",[1594,1610]],[[64791,64791],\"mapped\",[1587,1609]],[[64792,64792],\"mapped\",[1587,1610]],[[64793,64793],\"mapped\",[1588,1609]],[[64794,64794],\"mapped\",[1588,1610]],[[64795,64795],\"mapped\",[1581,1609]],[[64796,64796],\"mapped\",[1581,1610]],[[64797,64797],\"mapped\",[1580,1609]],[[64798,64798],\"mapped\",[1580,1610]],[[64799,64799],\"mapped\",[1582,1609]],[[64800,64800],\"mapped\",[1582,1610]],[[64801,64801],\"mapped\",[1589,1609]],[[64802,64802],\"mapped\",[1589,1610]],[[64803,64803],\"mapped\",[1590,1609]],[[64804,64804],\"mapped\",[1590,1610]],[[64805,64805],\"mapped\",[1588,1580]],[[64806,64806],\"mapped\",[1588,1581]],[[64807,64807],\"mapped\",[1588,1582]],[[64808,64808],\"mapped\",[1588,1605]],[[64809,64809],\"mapped\",[1588,1585]],[[64810,64810],\"mapped\",[1587,1585]],[[64811,64811],\"mapped\",[1589,1585]],[[64812,64812],\"mapped\",[1590,1585]],[[64813,64813],\"mapped\",[1588,1580]],[[64814,64814],\"mapped\",[1588,1581]],[[64815,64815],\"mapped\",[1588,1582]],[[64816,64816],\"mapped\",[1588,1605]],[[64817,64817],\"mapped\",[1587,1607]],[[64818,64818],\"mapped\",[1588,1607]],[[64819,64819],\"mapped\",[1591,1605]],[[64820,64820],\"mapped\",[1587,1580]],[[64821,64821],\"mapped\",[1587,1581]],[[64822,64822],\"mapped\",[1587,1582]],[[64823,64823],\"mapped\",[1588,1580]],[[64824,64824],\"mapped\",[1588,1581]],[[64825,64825],\"mapped\",[1588,1582]],[[64826,64826],\"mapped\",[1591,1605]],[[64827,64827],\"mapped\",[1592,1605]],[[64828,64829],\"mapped\",[1575,1611]],[[64830,64831],\"valid\",[],\"NV8\"],[[64832,64847],\"disallowed\"],[[64848,64848],\"mapped\",[1578,1580,1605]],[[64849,64850],\"mapped\",[1578,1581,1580]],[[64851,64851],\"mapped\",[1578,1581,1605]],[[64852,64852],\"mapped\",[1578,1582,1605]],[[64853,64853],\"mapped\",[1578,1605,1580]],[[64854,64854],\"mapped\",[1578,1605,1581]],[[64855,64855],\"mapped\",[1578,1605,1582]],[[64856,64857],\"mapped\",[1580,1605,1581]],[[64858,64858],\"mapped\",[1581,1605,1610]],[[64859,64859],\"mapped\",[1581,1605,1609]],[[64860,64860],\"mapped\",[1587,1581,1580]],[[64861,64861],\"mapped\",[1587,1580,1581]],[[64862,64862],\"mapped\",[1587,1580,1609]],[[64863,64864],\"mapped\",[1587,1605,1581]],[[64865,64865],\"mapped\",[1587,1605,1580]],[[64866,64867],\"mapped\",[1587,1605,1605]],[[64868,64869],\"mapped\",[1589,1581,1581]],[[64870,64870],\"mapped\",[1589,1605,1605]],[[64871,64872],\"mapped\",[1588,1581,1605]],[[64873,64873],\"mapped\",[1588,1580,1610]],[[64874,64875],\"mapped\",[1588,1605,1582]],[[64876,64877],\"mapped\",[1588,1605,1605]],[[64878,64878],\"mapped\",[1590,1581,1609]],[[64879,64880],\"mapped\",[1590,1582,1605]],[[64881,64882],\"mapped\",[1591,1605,1581]],[[64883,64883],\"mapped\",[1591,1605,1605]],[[64884,64884],\"mapped\",[1591,1605,1610]],[[64885,64885],\"mapped\",[1593,1580,1605]],[[64886,64887],\"mapped\",[1593,1605,1605]],[[64888,64888],\"mapped\",[1593,1605,1609]],[[64889,64889],\"mapped\",[1594,1605,1605]],[[64890,64890],\"mapped\",[1594,1605,1610]],[[64891,64891],\"mapped\",[1594,1605,1609]],[[64892,64893],\"mapped\",[1601,1582,1605]],[[64894,64894],\"mapped\",[1602,1605,1581]],[[64895,64895],\"mapped\",[1602,1605,1605]],[[64896,64896],\"mapped\",[1604,1581,1605]],[[64897,64897],\"mapped\",[1604,1581,1610]],[[64898,64898],\"mapped\",[1604,1581,1609]],[[64899,64900],\"mapped\",[1604,1580,1580]],[[64901,64902],\"mapped\",[1604,1582,1605]],[[64903,64904],\"mapped\",[1604,1605,1581]],[[64905,64905],\"mapped\",[1605,1581,1580]],[[64906,64906],\"mapped\",[1605,1581,1605]],[[64907,64907],\"mapped\",[1605,1581,1610]],[[64908,64908],\"mapped\",[1605,1580,1581]],[[64909,64909],\"mapped\",[1605,1580,1605]],[[64910,64910],\"mapped\",[1605,1582,1580]],[[64911,64911],\"mapped\",[1605,1582,1605]],[[64912,64913],\"disallowed\"],[[64914,64914],\"mapped\",[1605,1580,1582]],[[64915,64915],\"mapped\",[1607,1605,1580]],[[64916,64916],\"mapped\",[1607,1605,1605]],[[64917,64917],\"mapped\",[1606,1581,1605]],[[64918,64918],\"mapped\",[1606,1581,1609]],[[64919,64920],\"mapped\",[1606,1580,1605]],[[64921,64921],\"mapped\",[1606,1580,1609]],[[64922,64922],\"mapped\",[1606,1605,1610]],[[64923,64923],\"mapped\",[1606,1605,1609]],[[64924,64925],\"mapped\",[1610,1605,1605]],[[64926,64926],\"mapped\",[1576,1582,1610]],[[64927,64927],\"mapped\",[1578,1580,1610]],[[64928,64928],\"mapped\",[1578,1580,1609]],[[64929,64929],\"mapped\",[1578,1582,1610]],[[64930,64930],\"mapped\",[1578,1582,1609]],[[64931,64931],\"mapped\",[1578,1605,1610]],[[64932,64932],\"mapped\",[1578,1605,1609]],[[64933,64933],\"mapped\",[1580,1605,1610]],[[64934,64934],\"mapped\",[1580,1581,1609]],[[64935,64935],\"mapped\",[1580,1605,1609]],[[64936,64936],\"mapped\",[1587,1582,1609]],[[64937,64937],\"mapped\",[1589,1581,1610]],[[64938,64938],\"mapped\",[1588,1581,1610]],[[64939,64939],\"mapped\",[1590,1581,1610]],[[64940,64940],\"mapped\",[1604,1580,1610]],[[64941,64941],\"mapped\",[1604,1605,1610]],[[64942,64942],\"mapped\",[1610,1581,1610]],[[64943,64943],\"mapped\",[1610,1580,1610]],[[64944,64944],\"mapped\",[1610,1605,1610]],[[64945,64945],\"mapped\",[1605,1605,1610]],[[64946,64946],\"mapped\",[1602,1605,1610]],[[64947,64947],\"mapped\",[1606,1581,1610]],[[64948,64948],\"mapped\",[1602,1605,1581]],[[64949,64949],\"mapped\",[1604,1581,1605]],[[64950,64950],\"mapped\",[1593,1605,1610]],[[64951,64951],\"mapped\",[1603,1605,1610]],[[64952,64952],\"mapped\",[1606,1580,1581]],[[64953,64953],\"mapped\",[1605,1582,1610]],[[64954,64954],\"mapped\",[1604,1580,1605]],[[64955,64955],\"mapped\",[1603,1605,1605]],[[64956,64956],\"mapped\",[1604,1580,1605]],[[64957,64957],\"mapped\",[1606,1580,1581]],[[64958,64958],\"mapped\",[1580,1581,1610]],[[64959,64959],\"mapped\",[1581,1580,1610]],[[64960,64960],\"mapped\",[1605,1580,1610]],[[64961,64961],\"mapped\",[1601,1605,1610]],[[64962,64962],\"mapped\",[1576,1581,1610]],[[64963,64963],\"mapped\",[1603,1605,1605]],[[64964,64964],\"mapped\",[1593,1580,1605]],[[64965,64965],\"mapped\",[1589,1605,1605]],[[64966,64966],\"mapped\",[1587,1582,1610]],[[64967,64967],\"mapped\",[1606,1580,1610]],[[64968,64975],\"disallowed\"],[[64976,65007],\"disallowed\"],[[65008,65008],\"mapped\",[1589,1604,1746]],[[65009,65009],\"mapped\",[1602,1604,1746]],[[65010,65010],\"mapped\",[1575,1604,1604,1607]],[[65011,65011],\"mapped\",[1575,1603,1576,1585]],[[65012,65012],\"mapped\",[1605,1581,1605,1583]],[[65013,65013],\"mapped\",[1589,1604,1593,1605]],[[65014,65014],\"mapped\",[1585,1587,1608,1604]],[[65015,65015],\"mapped\",[1593,1604,1610,1607]],[[65016,65016],\"mapped\",[1608,1587,1604,1605]],[[65017,65017],\"mapped\",[1589,1604,1609]],[[65018,65018],\"disallowed_STD3_mapped\",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],\"disallowed_STD3_mapped\",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],\"mapped\",[1585,1740,1575,1604]],[[65021,65021],\"valid\",[],\"NV8\"],[[65022,65023],\"disallowed\"],[[65024,65039],\"ignored\"],[[65040,65040],\"disallowed_STD3_mapped\",[44]],[[65041,65041],\"mapped\",[12289]],[[65042,65042],\"disallowed\"],[[65043,65043],\"disallowed_STD3_mapped\",[58]],[[65044,65044],\"disallowed_STD3_mapped\",[59]],[[65045,65045],\"disallowed_STD3_mapped\",[33]],[[65046,65046],\"disallowed_STD3_mapped\",[63]],[[65047,65047],\"mapped\",[12310]],[[65048,65048],\"mapped\",[12311]],[[65049,65049],\"disallowed\"],[[65050,65055],\"disallowed\"],[[65056,65059],\"valid\"],[[65060,65062],\"valid\"],[[65063,65069],\"valid\"],[[65070,65071],\"valid\"],[[65072,65072],\"disallowed\"],[[65073,65073],\"mapped\",[8212]],[[65074,65074],\"mapped\",[8211]],[[65075,65076],\"disallowed_STD3_mapped\",[95]],[[65077,65077],\"disallowed_STD3_mapped\",[40]],[[65078,65078],\"disallowed_STD3_mapped\",[41]],[[65079,65079],\"disallowed_STD3_mapped\",[123]],[[65080,65080],\"disallowed_STD3_mapped\",[125]],[[65081,65081],\"mapped\",[12308]],[[65082,65082],\"mapped\",[12309]],[[65083,65083],\"mapped\",[12304]],[[65084,65084],\"mapped\",[12305]],[[65085,65085],\"mapped\",[12298]],[[65086,65086],\"mapped\",[12299]],[[65087,65087],\"mapped\",[12296]],[[65088,65088],\"mapped\",[12297]],[[65089,65089],\"mapped\",[12300]],[[65090,65090],\"mapped\",[12301]],[[65091,65091],\"mapped\",[12302]],[[65092,65092],\"mapped\",[12303]],[[65093,65094],\"valid\",[],\"NV8\"],[[65095,65095],\"disallowed_STD3_mapped\",[91]],[[65096,65096],\"disallowed_STD3_mapped\",[93]],[[65097,65100],\"disallowed_STD3_mapped\",[32,773]],[[65101,65103],\"disallowed_STD3_mapped\",[95]],[[65104,65104],\"disallowed_STD3_mapped\",[44]],[[65105,65105],\"mapped\",[12289]],[[65106,65106],\"disallowed\"],[[65107,65107],\"disallowed\"],[[65108,65108],\"disallowed_STD3_mapped\",[59]],[[65109,65109],\"disallowed_STD3_mapped\",[58]],[[65110,65110],\"disallowed_STD3_mapped\",[63]],[[65111,65111],\"disallowed_STD3_mapped\",[33]],[[65112,65112],\"mapped\",[8212]],[[65113,65113],\"disallowed_STD3_mapped\",[40]],[[65114,65114],\"disallowed_STD3_mapped\",[41]],[[65115,65115],\"disallowed_STD3_mapped\",[123]],[[65116,65116],\"disallowed_STD3_mapped\",[125]],[[65117,65117],\"mapped\",[12308]],[[65118,65118],\"mapped\",[12309]],[[65119,65119],\"disallowed_STD3_mapped\",[35]],[[65120,65120],\"disallowed_STD3_mapped\",[38]],[[65121,65121],\"disallowed_STD3_mapped\",[42]],[[65122,65122],\"disallowed_STD3_mapped\",[43]],[[65123,65123],\"mapped\",[45]],[[65124,65124],\"disallowed_STD3_mapped\",[60]],[[65125,65125],\"disallowed_STD3_mapped\",[62]],[[65126,65126],\"disallowed_STD3_mapped\",[61]],[[65127,65127],\"disallowed\"],[[65128,65128],\"disallowed_STD3_mapped\",[92]],[[65129,65129],\"disallowed_STD3_mapped\",[36]],[[65130,65130],\"disallowed_STD3_mapped\",[37]],[[65131,65131],\"disallowed_STD3_mapped\",[64]],[[65132,65135],\"disallowed\"],[[65136,65136],\"disallowed_STD3_mapped\",[32,1611]],[[65137,65137],\"mapped\",[1600,1611]],[[65138,65138],\"disallowed_STD3_mapped\",[32,1612]],[[65139,65139],\"valid\"],[[65140,65140],\"disallowed_STD3_mapped\",[32,1613]],[[65141,65141],\"disallowed\"],[[65142,65142],\"disallowed_STD3_mapped\",[32,1614]],[[65143,65143],\"mapped\",[1600,1614]],[[65144,65144],\"disallowed_STD3_mapped\",[32,1615]],[[65145,65145],\"mapped\",[1600,1615]],[[65146,65146],\"disallowed_STD3_mapped\",[32,1616]],[[65147,65147],\"mapped\",[1600,1616]],[[65148,65148],\"disallowed_STD3_mapped\",[32,1617]],[[65149,65149],\"mapped\",[1600,1617]],[[65150,65150],\"disallowed_STD3_mapped\",[32,1618]],[[65151,65151],\"mapped\",[1600,1618]],[[65152,65152],\"mapped\",[1569]],[[65153,65154],\"mapped\",[1570]],[[65155,65156],\"mapped\",[1571]],[[65157,65158],\"mapped\",[1572]],[[65159,65160],\"mapped\",[1573]],[[65161,65164],\"mapped\",[1574]],[[65165,65166],\"mapped\",[1575]],[[65167,65170],\"mapped\",[1576]],[[65171,65172],\"mapped\",[1577]],[[65173,65176],\"mapped\",[1578]],[[65177,65180],\"mapped\",[1579]],[[65181,65184],\"mapped\",[1580]],[[65185,65188],\"mapped\",[1581]],[[65189,65192],\"mapped\",[1582]],[[65193,65194],\"mapped\",[1583]],[[65195,65196],\"mapped\",[1584]],[[65197,65198],\"mapped\",[1585]],[[65199,65200],\"mapped\",[1586]],[[65201,65204],\"mapped\",[1587]],[[65205,65208],\"mapped\",[1588]],[[65209,65212],\"mapped\",[1589]],[[65213,65216],\"mapped\",[1590]],[[65217,65220],\"mapped\",[1591]],[[65221,65224],\"mapped\",[1592]],[[65225,65228],\"mapped\",[1593]],[[65229,65232],\"mapped\",[1594]],[[65233,65236],\"mapped\",[1601]],[[65237,65240],\"mapped\",[1602]],[[65241,65244],\"mapped\",[1603]],[[65245,65248],\"mapped\",[1604]],[[65249,65252],\"mapped\",[1605]],[[65253,65256],\"mapped\",[1606]],[[65257,65260],\"mapped\",[1607]],[[65261,65262],\"mapped\",[1608]],[[65263,65264],\"mapped\",[1609]],[[65265,65268],\"mapped\",[1610]],[[65269,65270],\"mapped\",[1604,1570]],[[65271,65272],\"mapped\",[1604,1571]],[[65273,65274],\"mapped\",[1604,1573]],[[65275,65276],\"mapped\",[1604,1575]],[[65277,65278],\"disallowed\"],[[65279,65279],\"ignored\"],[[65280,65280],\"disallowed\"],[[65281,65281],\"disallowed_STD3_mapped\",[33]],[[65282,65282],\"disallowed_STD3_mapped\",[34]],[[65283,65283],\"disallowed_STD3_mapped\",[35]],[[65284,65284],\"disallowed_STD3_mapped\",[36]],[[65285,65285],\"disallowed_STD3_mapped\",[37]],[[65286,65286],\"disallowed_STD3_mapped\",[38]],[[65287,65287],\"disallowed_STD3_mapped\",[39]],[[65288,65288],\"disallowed_STD3_mapped\",[40]],[[65289,65289],\"disallowed_STD3_mapped\",[41]],[[65290,65290],\"disallowed_STD3_mapped\",[42]],[[65291,65291],\"disallowed_STD3_mapped\",[43]],[[65292,65292],\"disallowed_STD3_mapped\",[44]],[[65293,65293],\"mapped\",[45]],[[65294,65294],\"mapped\",[46]],[[65295,65295],\"disallowed_STD3_mapped\",[47]],[[65296,65296],\"mapped\",[48]],[[65297,65297],\"mapped\",[49]],[[65298,65298],\"mapped\",[50]],[[65299,65299],\"mapped\",[51]],[[65300,65300],\"mapped\",[52]],[[65301,65301],\"mapped\",[53]],[[65302,65302],\"mapped\",[54]],[[65303,65303],\"mapped\",[55]],[[65304,65304],\"mapped\",[56]],[[65305,65305],\"mapped\",[57]],[[65306,65306],\"disallowed_STD3_mapped\",[58]],[[65307,65307],\"disallowed_STD3_mapped\",[59]],[[65308,65308],\"disallowed_STD3_mapped\",[60]],[[65309,65309],\"disallowed_STD3_mapped\",[61]],[[65310,65310],\"disallowed_STD3_mapped\",[62]],[[65311,65311],\"disallowed_STD3_mapped\",[63]],[[65312,65312],\"disallowed_STD3_mapped\",[64]],[[65313,65313],\"mapped\",[97]],[[65314,65314],\"mapped\",[98]],[[65315,65315],\"mapped\",[99]],[[65316,65316],\"mapped\",[100]],[[65317,65317],\"mapped\",[101]],[[65318,65318],\"mapped\",[102]],[[65319,65319],\"mapped\",[103]],[[65320,65320],\"mapped\",[104]],[[65321,65321],\"mapped\",[105]],[[65322,65322],\"mapped\",[106]],[[65323,65323],\"mapped\",[107]],[[65324,65324],\"mapped\",[108]],[[65325,65325],\"mapped\",[109]],[[65326,65326],\"mapped\",[110]],[[65327,65327],\"mapped\",[111]],[[65328,65328],\"mapped\",[112]],[[65329,65329],\"mapped\",[113]],[[65330,65330],\"mapped\",[114]],[[65331,65331],\"mapped\",[115]],[[65332,65332],\"mapped\",[116]],[[65333,65333],\"mapped\",[117]],[[65334,65334],\"mapped\",[118]],[[65335,65335],\"mapped\",[119]],[[65336,65336],\"mapped\",[120]],[[65337,65337],\"mapped\",[121]],[[65338,65338],\"mapped\",[122]],[[65339,65339],\"disallowed_STD3_mapped\",[91]],[[65340,65340],\"disallowed_STD3_mapped\",[92]],[[65341,65341],\"disallowed_STD3_mapped\",[93]],[[65342,65342],\"disallowed_STD3_mapped\",[94]],[[65343,65343],\"disallowed_STD3_mapped\",[95]],[[65344,65344],\"disallowed_STD3_mapped\",[96]],[[65345,65345],\"mapped\",[97]],[[65346,65346],\"mapped\",[98]],[[65347,65347],\"mapped\",[99]],[[65348,65348],\"mapped\",[100]],[[65349,65349],\"mapped\",[101]],[[65350,65350],\"mapped\",[102]],[[65351,65351],\"mapped\",[103]],[[65352,65352],\"mapped\",[104]],[[65353,65353],\"mapped\",[105]],[[65354,65354],\"mapped\",[106]],[[65355,65355],\"mapped\",[107]],[[65356,65356],\"mapped\",[108]],[[65357,65357],\"mapped\",[109]],[[65358,65358],\"mapped\",[110]],[[65359,65359],\"mapped\",[111]],[[65360,65360],\"mapped\",[112]],[[65361,65361],\"mapped\",[113]],[[65362,65362],\"mapped\",[114]],[[65363,65363],\"mapped\",[115]],[[65364,65364],\"mapped\",[116]],[[65365,65365],\"mapped\",[117]],[[65366,65366],\"mapped\",[118]],[[65367,65367],\"mapped\",[119]],[[65368,65368],\"mapped\",[120]],[[65369,65369],\"mapped\",[121]],[[65370,65370],\"mapped\",[122]],[[65371,65371],\"disallowed_STD3_mapped\",[123]],[[65372,65372],\"disallowed_STD3_mapped\",[124]],[[65373,65373],\"disallowed_STD3_mapped\",[125]],[[65374,65374],\"disallowed_STD3_mapped\",[126]],[[65375,65375],\"mapped\",[10629]],[[65376,65376],\"mapped\",[10630]],[[65377,65377],\"mapped\",[46]],[[65378,65378],\"mapped\",[12300]],[[65379,65379],\"mapped\",[12301]],[[65380,65380],\"mapped\",[12289]],[[65381,65381],\"mapped\",[12539]],[[65382,65382],\"mapped\",[12530]],[[65383,65383],\"mapped\",[12449]],[[65384,65384],\"mapped\",[12451]],[[65385,65385],\"mapped\",[12453]],[[65386,65386],\"mapped\",[12455]],[[65387,65387],\"mapped\",[12457]],[[65388,65388],\"mapped\",[12515]],[[65389,65389],\"mapped\",[12517]],[[65390,65390],\"mapped\",[12519]],[[65391,65391],\"mapped\",[12483]],[[65392,65392],\"mapped\",[12540]],[[65393,65393],\"mapped\",[12450]],[[65394,65394],\"mapped\",[12452]],[[65395,65395],\"mapped\",[12454]],[[65396,65396],\"mapped\",[12456]],[[65397,65397],\"mapped\",[12458]],[[65398,65398],\"mapped\",[12459]],[[65399,65399],\"mapped\",[12461]],[[65400,65400],\"mapped\",[12463]],[[65401,65401],\"mapped\",[12465]],[[65402,65402],\"mapped\",[12467]],[[65403,65403],\"mapped\",[12469]],[[65404,65404],\"mapped\",[12471]],[[65405,65405],\"mapped\",[12473]],[[65406,65406],\"mapped\",[12475]],[[65407,65407],\"mapped\",[12477]],[[65408,65408],\"mapped\",[12479]],[[65409,65409],\"mapped\",[12481]],[[65410,65410],\"mapped\",[12484]],[[65411,65411],\"mapped\",[12486]],[[65412,65412],\"mapped\",[12488]],[[65413,65413],\"mapped\",[12490]],[[65414,65414],\"mapped\",[12491]],[[65415,65415],\"mapped\",[12492]],[[65416,65416],\"mapped\",[12493]],[[65417,65417],\"mapped\",[12494]],[[65418,65418],\"mapped\",[12495]],[[65419,65419],\"mapped\",[12498]],[[65420,65420],\"mapped\",[12501]],[[65421,65421],\"mapped\",[12504]],[[65422,65422],\"mapped\",[12507]],[[65423,65423],\"mapped\",[12510]],[[65424,65424],\"mapped\",[12511]],[[65425,65425],\"mapped\",[12512]],[[65426,65426],\"mapped\",[12513]],[[65427,65427],\"mapped\",[12514]],[[65428,65428],\"mapped\",[12516]],[[65429,65429],\"mapped\",[12518]],[[65430,65430],\"mapped\",[12520]],[[65431,65431],\"mapped\",[12521]],[[65432,65432],\"mapped\",[12522]],[[65433,65433],\"mapped\",[12523]],[[65434,65434],\"mapped\",[12524]],[[65435,65435],\"mapped\",[12525]],[[65436,65436],\"mapped\",[12527]],[[65437,65437],\"mapped\",[12531]],[[65438,65438],\"mapped\",[12441]],[[65439,65439],\"mapped\",[12442]],[[65440,65440],\"disallowed\"],[[65441,65441],\"mapped\",[4352]],[[65442,65442],\"mapped\",[4353]],[[65443,65443],\"mapped\",[4522]],[[65444,65444],\"mapped\",[4354]],[[65445,65445],\"mapped\",[4524]],[[65446,65446],\"mapped\",[4525]],[[65447,65447],\"mapped\",[4355]],[[65448,65448],\"mapped\",[4356]],[[65449,65449],\"mapped\",[4357]],[[65450,65450],\"mapped\",[4528]],[[65451,65451],\"mapped\",[4529]],[[65452,65452],\"mapped\",[4530]],[[65453,65453],\"mapped\",[4531]],[[65454,65454],\"mapped\",[4532]],[[65455,65455],\"mapped\",[4533]],[[65456,65456],\"mapped\",[4378]],[[65457,65457],\"mapped\",[4358]],[[65458,65458],\"mapped\",[4359]],[[65459,65459],\"mapped\",[4360]],[[65460,65460],\"mapped\",[4385]],[[65461,65461],\"mapped\",[4361]],[[65462,65462],\"mapped\",[4362]],[[65463,65463],\"mapped\",[4363]],[[65464,65464],\"mapped\",[4364]],[[65465,65465],\"mapped\",[4365]],[[65466,65466],\"mapped\",[4366]],[[65467,65467],\"mapped\",[4367]],[[65468,65468],\"mapped\",[4368]],[[65469,65469],\"mapped\",[4369]],[[65470,65470],\"mapped\",[4370]],[[65471,65473],\"disallowed\"],[[65474,65474],\"mapped\",[4449]],[[65475,65475],\"mapped\",[4450]],[[65476,65476],\"mapped\",[4451]],[[65477,65477],\"mapped\",[4452]],[[65478,65478],\"mapped\",[4453]],[[65479,65479],\"mapped\",[4454]],[[65480,65481],\"disallowed\"],[[65482,65482],\"mapped\",[4455]],[[65483,65483],\"mapped\",[4456]],[[65484,65484],\"mapped\",[4457]],[[65485,65485],\"mapped\",[4458]],[[65486,65486],\"mapped\",[4459]],[[65487,65487],\"mapped\",[4460]],[[65488,65489],\"disallowed\"],[[65490,65490],\"mapped\",[4461]],[[65491,65491],\"mapped\",[4462]],[[65492,65492],\"mapped\",[4463]],[[65493,65493],\"mapped\",[4464]],[[65494,65494],\"mapped\",[4465]],[[65495,65495],\"mapped\",[4466]],[[65496,65497],\"disallowed\"],[[65498,65498],\"mapped\",[4467]],[[65499,65499],\"mapped\",[4468]],[[65500,65500],\"mapped\",[4469]],[[65501,65503],\"disallowed\"],[[65504,65504],\"mapped\",[162]],[[65505,65505],\"mapped\",[163]],[[65506,65506],\"mapped\",[172]],[[65507,65507],\"disallowed_STD3_mapped\",[32,772]],[[65508,65508],\"mapped\",[166]],[[65509,65509],\"mapped\",[165]],[[65510,65510],\"mapped\",[8361]],[[65511,65511],\"disallowed\"],[[65512,65512],\"mapped\",[9474]],[[65513,65513],\"mapped\",[8592]],[[65514,65514],\"mapped\",[8593]],[[65515,65515],\"mapped\",[8594]],[[65516,65516],\"mapped\",[8595]],[[65517,65517],\"mapped\",[9632]],[[65518,65518],\"mapped\",[9675]],[[65519,65528],\"disallowed\"],[[65529,65531],\"disallowed\"],[[65532,65532],\"disallowed\"],[[65533,65533],\"disallowed\"],[[65534,65535],\"disallowed\"],[[65536,65547],\"valid\"],[[65548,65548],\"disallowed\"],[[65549,65574],\"valid\"],[[65575,65575],\"disallowed\"],[[65576,65594],\"valid\"],[[65595,65595],\"disallowed\"],[[65596,65597],\"valid\"],[[65598,65598],\"disallowed\"],[[65599,65613],\"valid\"],[[65614,65615],\"disallowed\"],[[65616,65629],\"valid\"],[[65630,65663],\"disallowed\"],[[65664,65786],\"valid\"],[[65787,65791],\"disallowed\"],[[65792,65794],\"valid\",[],\"NV8\"],[[65795,65798],\"disallowed\"],[[65799,65843],\"valid\",[],\"NV8\"],[[65844,65846],\"disallowed\"],[[65847,65855],\"valid\",[],\"NV8\"],[[65856,65930],\"valid\",[],\"NV8\"],[[65931,65932],\"valid\",[],\"NV8\"],[[65933,65935],\"disallowed\"],[[65936,65947],\"valid\",[],\"NV8\"],[[65948,65951],\"disallowed\"],[[65952,65952],\"valid\",[],\"NV8\"],[[65953,65999],\"disallowed\"],[[66000,66044],\"valid\",[],\"NV8\"],[[66045,66045],\"valid\"],[[66046,66175],\"disallowed\"],[[66176,66204],\"valid\"],[[66205,66207],\"disallowed\"],[[66208,66256],\"valid\"],[[66257,66271],\"disallowed\"],[[66272,66272],\"valid\"],[[66273,66299],\"valid\",[],\"NV8\"],[[66300,66303],\"disallowed\"],[[66304,66334],\"valid\"],[[66335,66335],\"valid\"],[[66336,66339],\"valid\",[],\"NV8\"],[[66340,66351],\"disallowed\"],[[66352,66368],\"valid\"],[[66369,66369],\"valid\",[],\"NV8\"],[[66370,66377],\"valid\"],[[66378,66378],\"valid\",[],\"NV8\"],[[66379,66383],\"disallowed\"],[[66384,66426],\"valid\"],[[66427,66431],\"disallowed\"],[[66432,66461],\"valid\"],[[66462,66462],\"disallowed\"],[[66463,66463],\"valid\",[],\"NV8\"],[[66464,66499],\"valid\"],[[66500,66503],\"disallowed\"],[[66504,66511],\"valid\"],[[66512,66517],\"valid\",[],\"NV8\"],[[66518,66559],\"disallowed\"],[[66560,66560],\"mapped\",[66600]],[[66561,66561],\"mapped\",[66601]],[[66562,66562],\"mapped\",[66602]],[[66563,66563],\"mapped\",[66603]],[[66564,66564],\"mapped\",[66604]],[[66565,66565],\"mapped\",[66605]],[[66566,66566],\"mapped\",[66606]],[[66567,66567],\"mapped\",[66607]],[[66568,66568],\"mapped\",[66608]],[[66569,66569],\"mapped\",[66609]],[[66570,66570],\"mapped\",[66610]],[[66571,66571],\"mapped\",[66611]],[[66572,66572],\"mapped\",[66612]],[[66573,66573],\"mapped\",[66613]],[[66574,66574],\"mapped\",[66614]],[[66575,66575],\"mapped\",[66615]],[[66576,66576],\"mapped\",[66616]],[[66577,66577],\"mapped\",[66617]],[[66578,66578],\"mapped\",[66618]],[[66579,66579],\"mapped\",[66619]],[[66580,66580],\"mapped\",[66620]],[[66581,66581],\"mapped\",[66621]],[[66582,66582],\"mapped\",[66622]],[[66583,66583],\"mapped\",[66623]],[[66584,66584],\"mapped\",[66624]],[[66585,66585],\"mapped\",[66625]],[[66586,66586],\"mapped\",[66626]],[[66587,66587],\"mapped\",[66627]],[[66588,66588],\"mapped\",[66628]],[[66589,66589],\"mapped\",[66629]],[[66590,66590],\"mapped\",[66630]],[[66591,66591],\"mapped\",[66631]],[[66592,66592],\"mapped\",[66632]],[[66593,66593],\"mapped\",[66633]],[[66594,66594],\"mapped\",[66634]],[[66595,66595],\"mapped\",[66635]],[[66596,66596],\"mapped\",[66636]],[[66597,66597],\"mapped\",[66637]],[[66598,66598],\"mapped\",[66638]],[[66599,66599],\"mapped\",[66639]],[[66600,66637],\"valid\"],[[66638,66717],\"valid\"],[[66718,66719],\"disallowed\"],[[66720,66729],\"valid\"],[[66730,66815],\"disallowed\"],[[66816,66855],\"valid\"],[[66856,66863],\"disallowed\"],[[66864,66915],\"valid\"],[[66916,66926],\"disallowed\"],[[66927,66927],\"valid\",[],\"NV8\"],[[66928,67071],\"disallowed\"],[[67072,67382],\"valid\"],[[67383,67391],\"disallowed\"],[[67392,67413],\"valid\"],[[67414,67423],\"disallowed\"],[[67424,67431],\"valid\"],[[67432,67583],\"disallowed\"],[[67584,67589],\"valid\"],[[67590,67591],\"disallowed\"],[[67592,67592],\"valid\"],[[67593,67593],\"disallowed\"],[[67594,67637],\"valid\"],[[67638,67638],\"disallowed\"],[[67639,67640],\"valid\"],[[67641,67643],\"disallowed\"],[[67644,67644],\"valid\"],[[67645,67646],\"disallowed\"],[[67647,67647],\"valid\"],[[67648,67669],\"valid\"],[[67670,67670],\"disallowed\"],[[67671,67679],\"valid\",[],\"NV8\"],[[67680,67702],\"valid\"],[[67703,67711],\"valid\",[],\"NV8\"],[[67712,67742],\"valid\"],[[67743,67750],\"disallowed\"],[[67751,67759],\"valid\",[],\"NV8\"],[[67760,67807],\"disallowed\"],[[67808,67826],\"valid\"],[[67827,67827],\"disallowed\"],[[67828,67829],\"valid\"],[[67830,67834],\"disallowed\"],[[67835,67839],\"valid\",[],\"NV8\"],[[67840,67861],\"valid\"],[[67862,67865],\"valid\",[],\"NV8\"],[[67866,67867],\"valid\",[],\"NV8\"],[[67868,67870],\"disallowed\"],[[67871,67871],\"valid\",[],\"NV8\"],[[67872,67897],\"valid\"],[[67898,67902],\"disallowed\"],[[67903,67903],\"valid\",[],\"NV8\"],[[67904,67967],\"disallowed\"],[[67968,68023],\"valid\"],[[68024,68027],\"disallowed\"],[[68028,68029],\"valid\",[],\"NV8\"],[[68030,68031],\"valid\"],[[68032,68047],\"valid\",[],\"NV8\"],[[68048,68049],\"disallowed\"],[[68050,68095],\"valid\",[],\"NV8\"],[[68096,68099],\"valid\"],[[68100,68100],\"disallowed\"],[[68101,68102],\"valid\"],[[68103,68107],\"disallowed\"],[[68108,68115],\"valid\"],[[68116,68116],\"disallowed\"],[[68117,68119],\"valid\"],[[68120,68120],\"disallowed\"],[[68121,68147],\"valid\"],[[68148,68151],\"disallowed\"],[[68152,68154],\"valid\"],[[68155,68158],\"disallowed\"],[[68159,68159],\"valid\"],[[68160,68167],\"valid\",[],\"NV8\"],[[68168,68175],\"disallowed\"],[[68176,68184],\"valid\",[],\"NV8\"],[[68185,68191],\"disallowed\"],[[68192,68220],\"valid\"],[[68221,68223],\"valid\",[],\"NV8\"],[[68224,68252],\"valid\"],[[68253,68255],\"valid\",[],\"NV8\"],[[68256,68287],\"disallowed\"],[[68288,68295],\"valid\"],[[68296,68296],\"valid\",[],\"NV8\"],[[68297,68326],\"valid\"],[[68327,68330],\"disallowed\"],[[68331,68342],\"valid\",[],\"NV8\"],[[68343,68351],\"disallowed\"],[[68352,68405],\"valid\"],[[68406,68408],\"disallowed\"],[[68409,68415],\"valid\",[],\"NV8\"],[[68416,68437],\"valid\"],[[68438,68439],\"disallowed\"],[[68440,68447],\"valid\",[],\"NV8\"],[[68448,68466],\"valid\"],[[68467,68471],\"disallowed\"],[[68472,68479],\"valid\",[],\"NV8\"],[[68480,68497],\"valid\"],[[68498,68504],\"disallowed\"],[[68505,68508],\"valid\",[],\"NV8\"],[[68509,68520],\"disallowed\"],[[68521,68527],\"valid\",[],\"NV8\"],[[68528,68607],\"disallowed\"],[[68608,68680],\"valid\"],[[68681,68735],\"disallowed\"],[[68736,68736],\"mapped\",[68800]],[[68737,68737],\"mapped\",[68801]],[[68738,68738],\"mapped\",[68802]],[[68739,68739],\"mapped\",[68803]],[[68740,68740],\"mapped\",[68804]],[[68741,68741],\"mapped\",[68805]],[[68742,68742],\"mapped\",[68806]],[[68743,68743],\"mapped\",[68807]],[[68744,68744],\"mapped\",[68808]],[[68745,68745],\"mapped\",[68809]],[[68746,68746],\"mapped\",[68810]],[[68747,68747],\"mapped\",[68811]],[[68748,68748],\"mapped\",[68812]],[[68749,68749],\"mapped\",[68813]],[[68750,68750],\"mapped\",[68814]],[[68751,68751],\"mapped\",[68815]],[[68752,68752],\"mapped\",[68816]],[[68753,68753],\"mapped\",[68817]],[[68754,68754],\"mapped\",[68818]],[[68755,68755],\"mapped\",[68819]],[[68756,68756],\"mapped\",[68820]],[[68757,68757],\"mapped\",[68821]],[[68758,68758],\"mapped\",[68822]],[[68759,68759],\"mapped\",[68823]],[[68760,68760],\"mapped\",[68824]],[[68761,68761],\"mapped\",[68825]],[[68762,68762],\"mapped\",[68826]],[[68763,68763],\"mapped\",[68827]],[[68764,68764],\"mapped\",[68828]],[[68765,68765],\"mapped\",[68829]],[[68766,68766],\"mapped\",[68830]],[[68767,68767],\"mapped\",[68831]],[[68768,68768],\"mapped\",[68832]],[[68769,68769],\"mapped\",[68833]],[[68770,68770],\"mapped\",[68834]],[[68771,68771],\"mapped\",[68835]],[[68772,68772],\"mapped\",[68836]],[[68773,68773],\"mapped\",[68837]],[[68774,68774],\"mapped\",[68838]],[[68775,68775],\"mapped\",[68839]],[[68776,68776],\"mapped\",[68840]],[[68777,68777],\"mapped\",[68841]],[[68778,68778],\"mapped\",[68842]],[[68779,68779],\"mapped\",[68843]],[[68780,68780],\"mapped\",[68844]],[[68781,68781],\"mapped\",[68845]],[[68782,68782],\"mapped\",[68846]],[[68783,68783],\"mapped\",[68847]],[[68784,68784],\"mapped\",[68848]],[[68785,68785],\"mapped\",[68849]],[[68786,68786],\"mapped\",[68850]],[[68787,68799],\"disallowed\"],[[68800,68850],\"valid\"],[[68851,68857],\"disallowed\"],[[68858,68863],\"valid\",[],\"NV8\"],[[68864,69215],\"disallowed\"],[[69216,69246],\"valid\",[],\"NV8\"],[[69247,69631],\"disallowed\"],[[69632,69702],\"valid\"],[[69703,69709],\"valid\",[],\"NV8\"],[[69710,69713],\"disallowed\"],[[69714,69733],\"valid\",[],\"NV8\"],[[69734,69743],\"valid\"],[[69744,69758],\"disallowed\"],[[69759,69759],\"valid\"],[[69760,69818],\"valid\"],[[69819,69820],\"valid\",[],\"NV8\"],[[69821,69821],\"disallowed\"],[[69822,69825],\"valid\",[],\"NV8\"],[[69826,69839],\"disallowed\"],[[69840,69864],\"valid\"],[[69865,69871],\"disallowed\"],[[69872,69881],\"valid\"],[[69882,69887],\"disallowed\"],[[69888,69940],\"valid\"],[[69941,69941],\"disallowed\"],[[69942,69951],\"valid\"],[[69952,69955],\"valid\",[],\"NV8\"],[[69956,69967],\"disallowed\"],[[69968,70003],\"valid\"],[[70004,70005],\"valid\",[],\"NV8\"],[[70006,70006],\"valid\"],[[70007,70015],\"disallowed\"],[[70016,70084],\"valid\"],[[70085,70088],\"valid\",[],\"NV8\"],[[70089,70089],\"valid\",[],\"NV8\"],[[70090,70092],\"valid\"],[[70093,70093],\"valid\",[],\"NV8\"],[[70094,70095],\"disallowed\"],[[70096,70105],\"valid\"],[[70106,70106],\"valid\"],[[70107,70107],\"valid\",[],\"NV8\"],[[70108,70108],\"valid\"],[[70109,70111],\"valid\",[],\"NV8\"],[[70112,70112],\"disallowed\"],[[70113,70132],\"valid\",[],\"NV8\"],[[70133,70143],\"disallowed\"],[[70144,70161],\"valid\"],[[70162,70162],\"disallowed\"],[[70163,70199],\"valid\"],[[70200,70205],\"valid\",[],\"NV8\"],[[70206,70271],\"disallowed\"],[[70272,70278],\"valid\"],[[70279,70279],\"disallowed\"],[[70280,70280],\"valid\"],[[70281,70281],\"disallowed\"],[[70282,70285],\"valid\"],[[70286,70286],\"disallowed\"],[[70287,70301],\"valid\"],[[70302,70302],\"disallowed\"],[[70303,70312],\"valid\"],[[70313,70313],\"valid\",[],\"NV8\"],[[70314,70319],\"disallowed\"],[[70320,70378],\"valid\"],[[70379,70383],\"disallowed\"],[[70384,70393],\"valid\"],[[70394,70399],\"disallowed\"],[[70400,70400],\"valid\"],[[70401,70403],\"valid\"],[[70404,70404],\"disallowed\"],[[70405,70412],\"valid\"],[[70413,70414],\"disallowed\"],[[70415,70416],\"valid\"],[[70417,70418],\"disallowed\"],[[70419,70440],\"valid\"],[[70441,70441],\"disallowed\"],[[70442,70448],\"valid\"],[[70449,70449],\"disallowed\"],[[70450,70451],\"valid\"],[[70452,70452],\"disallowed\"],[[70453,70457],\"valid\"],[[70458,70459],\"disallowed\"],[[70460,70468],\"valid\"],[[70469,70470],\"disallowed\"],[[70471,70472],\"valid\"],[[70473,70474],\"disallowed\"],[[70475,70477],\"valid\"],[[70478,70479],\"disallowed\"],[[70480,70480],\"valid\"],[[70481,70486],\"disallowed\"],[[70487,70487],\"valid\"],[[70488,70492],\"disallowed\"],[[70493,70499],\"valid\"],[[70500,70501],\"disallowed\"],[[70502,70508],\"valid\"],[[70509,70511],\"disallowed\"],[[70512,70516],\"valid\"],[[70517,70783],\"disallowed\"],[[70784,70853],\"valid\"],[[70854,70854],\"valid\",[],\"NV8\"],[[70855,70855],\"valid\"],[[70856,70863],\"disallowed\"],[[70864,70873],\"valid\"],[[70874,71039],\"disallowed\"],[[71040,71093],\"valid\"],[[71094,71095],\"disallowed\"],[[71096,71104],\"valid\"],[[71105,71113],\"valid\",[],\"NV8\"],[[71114,71127],\"valid\",[],\"NV8\"],[[71128,71133],\"valid\"],[[71134,71167],\"disallowed\"],[[71168,71232],\"valid\"],[[71233,71235],\"valid\",[],\"NV8\"],[[71236,71236],\"valid\"],[[71237,71247],\"disallowed\"],[[71248,71257],\"valid\"],[[71258,71295],\"disallowed\"],[[71296,71351],\"valid\"],[[71352,71359],\"disallowed\"],[[71360,71369],\"valid\"],[[71370,71423],\"disallowed\"],[[71424,71449],\"valid\"],[[71450,71452],\"disallowed\"],[[71453,71467],\"valid\"],[[71468,71471],\"disallowed\"],[[71472,71481],\"valid\"],[[71482,71487],\"valid\",[],\"NV8\"],[[71488,71839],\"disallowed\"],[[71840,71840],\"mapped\",[71872]],[[71841,71841],\"mapped\",[71873]],[[71842,71842],\"mapped\",[71874]],[[71843,71843],\"mapped\",[71875]],[[71844,71844],\"mapped\",[71876]],[[71845,71845],\"mapped\",[71877]],[[71846,71846],\"mapped\",[71878]],[[71847,71847],\"mapped\",[71879]],[[71848,71848],\"mapped\",[71880]],[[71849,71849],\"mapped\",[71881]],[[71850,71850],\"mapped\",[71882]],[[71851,71851],\"mapped\",[71883]],[[71852,71852],\"mapped\",[71884]],[[71853,71853],\"mapped\",[71885]],[[71854,71854],\"mapped\",[71886]],[[71855,71855],\"mapped\",[71887]],[[71856,71856],\"mapped\",[71888]],[[71857,71857],\"mapped\",[71889]],[[71858,71858],\"mapped\",[71890]],[[71859,71859],\"mapped\",[71891]],[[71860,71860],\"mapped\",[71892]],[[71861,71861],\"mapped\",[71893]],[[71862,71862],\"mapped\",[71894]],[[71863,71863],\"mapped\",[71895]],[[71864,71864],\"mapped\",[71896]],[[71865,71865],\"mapped\",[71897]],[[71866,71866],\"mapped\",[71898]],[[71867,71867],\"mapped\",[71899]],[[71868,71868],\"mapped\",[71900]],[[71869,71869],\"mapped\",[71901]],[[71870,71870],\"mapped\",[71902]],[[71871,71871],\"mapped\",[71903]],[[71872,71913],\"valid\"],[[71914,71922],\"valid\",[],\"NV8\"],[[71923,71934],\"disallowed\"],[[71935,71935],\"valid\"],[[71936,72383],\"disallowed\"],[[72384,72440],\"valid\"],[[72441,73727],\"disallowed\"],[[73728,74606],\"valid\"],[[74607,74648],\"valid\"],[[74649,74649],\"valid\"],[[74650,74751],\"disallowed\"],[[74752,74850],\"valid\",[],\"NV8\"],[[74851,74862],\"valid\",[],\"NV8\"],[[74863,74863],\"disallowed\"],[[74864,74867],\"valid\",[],\"NV8\"],[[74868,74868],\"valid\",[],\"NV8\"],[[74869,74879],\"disallowed\"],[[74880,75075],\"valid\"],[[75076,77823],\"disallowed\"],[[77824,78894],\"valid\"],[[78895,82943],\"disallowed\"],[[82944,83526],\"valid\"],[[83527,92159],\"disallowed\"],[[92160,92728],\"valid\"],[[92729,92735],\"disallowed\"],[[92736,92766],\"valid\"],[[92767,92767],\"disallowed\"],[[92768,92777],\"valid\"],[[92778,92781],\"disallowed\"],[[92782,92783],\"valid\",[],\"NV8\"],[[92784,92879],\"disallowed\"],[[92880,92909],\"valid\"],[[92910,92911],\"disallowed\"],[[92912,92916],\"valid\"],[[92917,92917],\"valid\",[],\"NV8\"],[[92918,92927],\"disallowed\"],[[92928,92982],\"valid\"],[[92983,92991],\"valid\",[],\"NV8\"],[[92992,92995],\"valid\"],[[92996,92997],\"valid\",[],\"NV8\"],[[92998,93007],\"disallowed\"],[[93008,93017],\"valid\"],[[93018,93018],\"disallowed\"],[[93019,93025],\"valid\",[],\"NV8\"],[[93026,93026],\"disallowed\"],[[93027,93047],\"valid\"],[[93048,93052],\"disallowed\"],[[93053,93071],\"valid\"],[[93072,93951],\"disallowed\"],[[93952,94020],\"valid\"],[[94021,94031],\"disallowed\"],[[94032,94078],\"valid\"],[[94079,94094],\"disallowed\"],[[94095,94111],\"valid\"],[[94112,110591],\"disallowed\"],[[110592,110593],\"valid\"],[[110594,113663],\"disallowed\"],[[113664,113770],\"valid\"],[[113771,113775],\"disallowed\"],[[113776,113788],\"valid\"],[[113789,113791],\"disallowed\"],[[113792,113800],\"valid\"],[[113801,113807],\"disallowed\"],[[113808,113817],\"valid\"],[[113818,113819],\"disallowed\"],[[113820,113820],\"valid\",[],\"NV8\"],[[113821,113822],\"valid\"],[[113823,113823],\"valid\",[],\"NV8\"],[[113824,113827],\"ignored\"],[[113828,118783],\"disallowed\"],[[118784,119029],\"valid\",[],\"NV8\"],[[119030,119039],\"disallowed\"],[[119040,119078],\"valid\",[],\"NV8\"],[[119079,119080],\"disallowed\"],[[119081,119081],\"valid\",[],\"NV8\"],[[119082,119133],\"valid\",[],\"NV8\"],[[119134,119134],\"mapped\",[119127,119141]],[[119135,119135],\"mapped\",[119128,119141]],[[119136,119136],\"mapped\",[119128,119141,119150]],[[119137,119137],\"mapped\",[119128,119141,119151]],[[119138,119138],\"mapped\",[119128,119141,119152]],[[119139,119139],\"mapped\",[119128,119141,119153]],[[119140,119140],\"mapped\",[119128,119141,119154]],[[119141,119154],\"valid\",[],\"NV8\"],[[119155,119162],\"disallowed\"],[[119163,119226],\"valid\",[],\"NV8\"],[[119227,119227],\"mapped\",[119225,119141]],[[119228,119228],\"mapped\",[119226,119141]],[[119229,119229],\"mapped\",[119225,119141,119150]],[[119230,119230],\"mapped\",[119226,119141,119150]],[[119231,119231],\"mapped\",[119225,119141,119151]],[[119232,119232],\"mapped\",[119226,119141,119151]],[[119233,119261],\"valid\",[],\"NV8\"],[[119262,119272],\"valid\",[],\"NV8\"],[[119273,119295],\"disallowed\"],[[119296,119365],\"valid\",[],\"NV8\"],[[119366,119551],\"disallowed\"],[[119552,119638],\"valid\",[],\"NV8\"],[[119639,119647],\"disallowed\"],[[119648,119665],\"valid\",[],\"NV8\"],[[119666,119807],\"disallowed\"],[[119808,119808],\"mapped\",[97]],[[119809,119809],\"mapped\",[98]],[[119810,119810],\"mapped\",[99]],[[119811,119811],\"mapped\",[100]],[[119812,119812],\"mapped\",[101]],[[119813,119813],\"mapped\",[102]],[[119814,119814],\"mapped\",[103]],[[119815,119815],\"mapped\",[104]],[[119816,119816],\"mapped\",[105]],[[119817,119817],\"mapped\",[106]],[[119818,119818],\"mapped\",[107]],[[119819,119819],\"mapped\",[108]],[[119820,119820],\"mapped\",[109]],[[119821,119821],\"mapped\",[110]],[[119822,119822],\"mapped\",[111]],[[119823,119823],\"mapped\",[112]],[[119824,119824],\"mapped\",[113]],[[119825,119825],\"mapped\",[114]],[[119826,119826],\"mapped\",[115]],[[119827,119827],\"mapped\",[116]],[[119828,119828],\"mapped\",[117]],[[119829,119829],\"mapped\",[118]],[[119830,119830],\"mapped\",[119]],[[119831,119831],\"mapped\",[120]],[[119832,119832],\"mapped\",[121]],[[119833,119833],\"mapped\",[122]],[[119834,119834],\"mapped\",[97]],[[119835,119835],\"mapped\",[98]],[[119836,119836],\"mapped\",[99]],[[119837,119837],\"mapped\",[100]],[[119838,119838],\"mapped\",[101]],[[119839,119839],\"mapped\",[102]],[[119840,119840],\"mapped\",[103]],[[119841,119841],\"mapped\",[104]],[[119842,119842],\"mapped\",[105]],[[119843,119843],\"mapped\",[106]],[[119844,119844],\"mapped\",[107]],[[119845,119845],\"mapped\",[108]],[[119846,119846],\"mapped\",[109]],[[119847,119847],\"mapped\",[110]],[[119848,119848],\"mapped\",[111]],[[119849,119849],\"mapped\",[112]],[[119850,119850],\"mapped\",[113]],[[119851,119851],\"mapped\",[114]],[[119852,119852],\"mapped\",[115]],[[119853,119853],\"mapped\",[116]],[[119854,119854],\"mapped\",[117]],[[119855,119855],\"mapped\",[118]],[[119856,119856],\"mapped\",[119]],[[119857,119857],\"mapped\",[120]],[[119858,119858],\"mapped\",[121]],[[119859,119859],\"mapped\",[122]],[[119860,119860],\"mapped\",[97]],[[119861,119861],\"mapped\",[98]],[[119862,119862],\"mapped\",[99]],[[119863,119863],\"mapped\",[100]],[[119864,119864],\"mapped\",[101]],[[119865,119865],\"mapped\",[102]],[[119866,119866],\"mapped\",[103]],[[119867,119867],\"mapped\",[104]],[[119868,119868],\"mapped\",[105]],[[119869,119869],\"mapped\",[106]],[[119870,119870],\"mapped\",[107]],[[119871,119871],\"mapped\",[108]],[[119872,119872],\"mapped\",[109]],[[119873,119873],\"mapped\",[110]],[[119874,119874],\"mapped\",[111]],[[119875,119875],\"mapped\",[112]],[[119876,119876],\"mapped\",[113]],[[119877,119877],\"mapped\",[114]],[[119878,119878],\"mapped\",[115]],[[119879,119879],\"mapped\",[116]],[[119880,119880],\"mapped\",[117]],[[119881,119881],\"mapped\",[118]],[[119882,119882],\"mapped\",[119]],[[119883,119883],\"mapped\",[120]],[[119884,119884],\"mapped\",[121]],[[119885,119885],\"mapped\",[122]],[[119886,119886],\"mapped\",[97]],[[119887,119887],\"mapped\",[98]],[[119888,119888],\"mapped\",[99]],[[119889,119889],\"mapped\",[100]],[[119890,119890],\"mapped\",[101]],[[119891,119891],\"mapped\",[102]],[[119892,119892],\"mapped\",[103]],[[119893,119893],\"disallowed\"],[[119894,119894],\"mapped\",[105]],[[119895,119895],\"mapped\",[106]],[[119896,119896],\"mapped\",[107]],[[119897,119897],\"mapped\",[108]],[[119898,119898],\"mapped\",[109]],[[119899,119899],\"mapped\",[110]],[[119900,119900],\"mapped\",[111]],[[119901,119901],\"mapped\",[112]],[[119902,119902],\"mapped\",[113]],[[119903,119903],\"mapped\",[114]],[[119904,119904],\"mapped\",[115]],[[119905,119905],\"mapped\",[116]],[[119906,119906],\"mapped\",[117]],[[119907,119907],\"mapped\",[118]],[[119908,119908],\"mapped\",[119]],[[119909,119909],\"mapped\",[120]],[[119910,119910],\"mapped\",[121]],[[119911,119911],\"mapped\",[122]],[[119912,119912],\"mapped\",[97]],[[119913,119913],\"mapped\",[98]],[[119914,119914],\"mapped\",[99]],[[119915,119915],\"mapped\",[100]],[[119916,119916],\"mapped\",[101]],[[119917,119917],\"mapped\",[102]],[[119918,119918],\"mapped\",[103]],[[119919,119919],\"mapped\",[104]],[[119920,119920],\"mapped\",[105]],[[119921,119921],\"mapped\",[106]],[[119922,119922],\"mapped\",[107]],[[119923,119923],\"mapped\",[108]],[[119924,119924],\"mapped\",[109]],[[119925,119925],\"mapped\",[110]],[[119926,119926],\"mapped\",[111]],[[119927,119927],\"mapped\",[112]],[[119928,119928],\"mapped\",[113]],[[119929,119929],\"mapped\",[114]],[[119930,119930],\"mapped\",[115]],[[119931,119931],\"mapped\",[116]],[[119932,119932],\"mapped\",[117]],[[119933,119933],\"mapped\",[118]],[[119934,119934],\"mapped\",[119]],[[119935,119935],\"mapped\",[120]],[[119936,119936],\"mapped\",[121]],[[119937,119937],\"mapped\",[122]],[[119938,119938],\"mapped\",[97]],[[119939,119939],\"mapped\",[98]],[[119940,119940],\"mapped\",[99]],[[119941,119941],\"mapped\",[100]],[[119942,119942],\"mapped\",[101]],[[119943,119943],\"mapped\",[102]],[[119944,119944],\"mapped\",[103]],[[119945,119945],\"mapped\",[104]],[[119946,119946],\"mapped\",[105]],[[119947,119947],\"mapped\",[106]],[[119948,119948],\"mapped\",[107]],[[119949,119949],\"mapped\",[108]],[[119950,119950],\"mapped\",[109]],[[119951,119951],\"mapped\",[110]],[[119952,119952],\"mapped\",[111]],[[119953,119953],\"mapped\",[112]],[[119954,119954],\"mapped\",[113]],[[119955,119955],\"mapped\",[114]],[[119956,119956],\"mapped\",[115]],[[119957,119957],\"mapped\",[116]],[[119958,119958],\"mapped\",[117]],[[119959,119959],\"mapped\",[118]],[[119960,119960],\"mapped\",[119]],[[119961,119961],\"mapped\",[120]],[[119962,119962],\"mapped\",[121]],[[119963,119963],\"mapped\",[122]],[[119964,119964],\"mapped\",[97]],[[119965,119965],\"disallowed\"],[[119966,119966],\"mapped\",[99]],[[119967,119967],\"mapped\",[100]],[[119968,119969],\"disallowed\"],[[119970,119970],\"mapped\",[103]],[[119971,119972],\"disallowed\"],[[119973,119973],\"mapped\",[106]],[[119974,119974],\"mapped\",[107]],[[119975,119976],\"disallowed\"],[[119977,119977],\"mapped\",[110]],[[119978,119978],\"mapped\",[111]],[[119979,119979],\"mapped\",[112]],[[119980,119980],\"mapped\",[113]],[[119981,119981],\"disallowed\"],[[119982,119982],\"mapped\",[115]],[[119983,119983],\"mapped\",[116]],[[119984,119984],\"mapped\",[117]],[[119985,119985],\"mapped\",[118]],[[119986,119986],\"mapped\",[119]],[[119987,119987],\"mapped\",[120]],[[119988,119988],\"mapped\",[121]],[[119989,119989],\"mapped\",[122]],[[119990,119990],\"mapped\",[97]],[[119991,119991],\"mapped\",[98]],[[119992,119992],\"mapped\",[99]],[[119993,119993],\"mapped\",[100]],[[119994,119994],\"disallowed\"],[[119995,119995],\"mapped\",[102]],[[119996,119996],\"disallowed\"],[[119997,119997],\"mapped\",[104]],[[119998,119998],\"mapped\",[105]],[[119999,119999],\"mapped\",[106]],[[120000,120000],\"mapped\",[107]],[[120001,120001],\"mapped\",[108]],[[120002,120002],\"mapped\",[109]],[[120003,120003],\"mapped\",[110]],[[120004,120004],\"disallowed\"],[[120005,120005],\"mapped\",[112]],[[120006,120006],\"mapped\",[113]],[[120007,120007],\"mapped\",[114]],[[120008,120008],\"mapped\",[115]],[[120009,120009],\"mapped\",[116]],[[120010,120010],\"mapped\",[117]],[[120011,120011],\"mapped\",[118]],[[120012,120012],\"mapped\",[119]],[[120013,120013],\"mapped\",[120]],[[120014,120014],\"mapped\",[121]],[[120015,120015],\"mapped\",[122]],[[120016,120016],\"mapped\",[97]],[[120017,120017],\"mapped\",[98]],[[120018,120018],\"mapped\",[99]],[[120019,120019],\"mapped\",[100]],[[120020,120020],\"mapped\",[101]],[[120021,120021],\"mapped\",[102]],[[120022,120022],\"mapped\",[103]],[[120023,120023],\"mapped\",[104]],[[120024,120024],\"mapped\",[105]],[[120025,120025],\"mapped\",[106]],[[120026,120026],\"mapped\",[107]],[[120027,120027],\"mapped\",[108]],[[120028,120028],\"mapped\",[109]],[[120029,120029],\"mapped\",[110]],[[120030,120030],\"mapped\",[111]],[[120031,120031],\"mapped\",[112]],[[120032,120032],\"mapped\",[113]],[[120033,120033],\"mapped\",[114]],[[120034,120034],\"mapped\",[115]],[[120035,120035],\"mapped\",[116]],[[120036,120036],\"mapped\",[117]],[[120037,120037],\"mapped\",[118]],[[120038,120038],\"mapped\",[119]],[[120039,120039],\"mapped\",[120]],[[120040,120040],\"mapped\",[121]],[[120041,120041],\"mapped\",[122]],[[120042,120042],\"mapped\",[97]],[[120043,120043],\"mapped\",[98]],[[120044,120044],\"mapped\",[99]],[[120045,120045],\"mapped\",[100]],[[120046,120046],\"mapped\",[101]],[[120047,120047],\"mapped\",[102]],[[120048,120048],\"mapped\",[103]],[[120049,120049],\"mapped\",[104]],[[120050,120050],\"mapped\",[105]],[[120051,120051],\"mapped\",[106]],[[120052,120052],\"mapped\",[107]],[[120053,120053],\"mapped\",[108]],[[120054,120054],\"mapped\",[109]],[[120055,120055],\"mapped\",[110]],[[120056,120056],\"mapped\",[111]],[[120057,120057],\"mapped\",[112]],[[120058,120058],\"mapped\",[113]],[[120059,120059],\"mapped\",[114]],[[120060,120060],\"mapped\",[115]],[[120061,120061],\"mapped\",[116]],[[120062,120062],\"mapped\",[117]],[[120063,120063],\"mapped\",[118]],[[120064,120064],\"mapped\",[119]],[[120065,120065],\"mapped\",[120]],[[120066,120066],\"mapped\",[121]],[[120067,120067],\"mapped\",[122]],[[120068,120068],\"mapped\",[97]],[[120069,120069],\"mapped\",[98]],[[120070,120070],\"disallowed\"],[[120071,120071],\"mapped\",[100]],[[120072,120072],\"mapped\",[101]],[[120073,120073],\"mapped\",[102]],[[120074,120074],\"mapped\",[103]],[[120075,120076],\"disallowed\"],[[120077,120077],\"mapped\",[106]],[[120078,120078],\"mapped\",[107]],[[120079,120079],\"mapped\",[108]],[[120080,120080],\"mapped\",[109]],[[120081,120081],\"mapped\",[110]],[[120082,120082],\"mapped\",[111]],[[120083,120083],\"mapped\",[112]],[[120084,120084],\"mapped\",[113]],[[120085,120085],\"disallowed\"],[[120086,120086],\"mapped\",[115]],[[120087,120087],\"mapped\",[116]],[[120088,120088],\"mapped\",[117]],[[120089,120089],\"mapped\",[118]],[[120090,120090],\"mapped\",[119]],[[120091,120091],\"mapped\",[120]],[[120092,120092],\"mapped\",[121]],[[120093,120093],\"disallowed\"],[[120094,120094],\"mapped\",[97]],[[120095,120095],\"mapped\",[98]],[[120096,120096],\"mapped\",[99]],[[120097,120097],\"mapped\",[100]],[[120098,120098],\"mapped\",[101]],[[120099,120099],\"mapped\",[102]],[[120100,120100],\"mapped\",[103]],[[120101,120101],\"mapped\",[104]],[[120102,120102],\"mapped\",[105]],[[120103,120103],\"mapped\",[106]],[[120104,120104],\"mapped\",[107]],[[120105,120105],\"mapped\",[108]],[[120106,120106],\"mapped\",[109]],[[120107,120107],\"mapped\",[110]],[[120108,120108],\"mapped\",[111]],[[120109,120109],\"mapped\",[112]],[[120110,120110],\"mapped\",[113]],[[120111,120111],\"mapped\",[114]],[[120112,120112],\"mapped\",[115]],[[120113,120113],\"mapped\",[116]],[[120114,120114],\"mapped\",[117]],[[120115,120115],\"mapped\",[118]],[[120116,120116],\"mapped\",[119]],[[120117,120117],\"mapped\",[120]],[[120118,120118],\"mapped\",[121]],[[120119,120119],\"mapped\",[122]],[[120120,120120],\"mapped\",[97]],[[120121,120121],\"mapped\",[98]],[[120122,120122],\"disallowed\"],[[120123,120123],\"mapped\",[100]],[[120124,120124],\"mapped\",[101]],[[120125,120125],\"mapped\",[102]],[[120126,120126],\"mapped\",[103]],[[120127,120127],\"disallowed\"],[[120128,120128],\"mapped\",[105]],[[120129,120129],\"mapped\",[106]],[[120130,120130],\"mapped\",[107]],[[120131,120131],\"mapped\",[108]],[[120132,120132],\"mapped\",[109]],[[120133,120133],\"disallowed\"],[[120134,120134],\"mapped\",[111]],[[120135,120137],\"disallowed\"],[[120138,120138],\"mapped\",[115]],[[120139,120139],\"mapped\",[116]],[[120140,120140],\"mapped\",[117]],[[120141,120141],\"mapped\",[118]],[[120142,120142],\"mapped\",[119]],[[120143,120143],\"mapped\",[120]],[[120144,120144],\"mapped\",[121]],[[120145,120145],\"disallowed\"],[[120146,120146],\"mapped\",[97]],[[120147,120147],\"mapped\",[98]],[[120148,120148],\"mapped\",[99]],[[120149,120149],\"mapped\",[100]],[[120150,120150],\"mapped\",[101]],[[120151,120151],\"mapped\",[102]],[[120152,120152],\"mapped\",[103]],[[120153,120153],\"mapped\",[104]],[[120154,120154],\"mapped\",[105]],[[120155,120155],\"mapped\",[106]],[[120156,120156],\"mapped\",[107]],[[120157,120157],\"mapped\",[108]],[[120158,120158],\"mapped\",[109]],[[120159,120159],\"mapped\",[110]],[[120160,120160],\"mapped\",[111]],[[120161,120161],\"mapped\",[112]],[[120162,120162],\"mapped\",[113]],[[120163,120163],\"mapped\",[114]],[[120164,120164],\"mapped\",[115]],[[120165,120165],\"mapped\",[116]],[[120166,120166],\"mapped\",[117]],[[120167,120167],\"mapped\",[118]],[[120168,120168],\"mapped\",[119]],[[120169,120169],\"mapped\",[120]],[[120170,120170],\"mapped\",[121]],[[120171,120171],\"mapped\",[122]],[[120172,120172],\"mapped\",[97]],[[120173,120173],\"mapped\",[98]],[[120174,120174],\"mapped\",[99]],[[120175,120175],\"mapped\",[100]],[[120176,120176],\"mapped\",[101]],[[120177,120177],\"mapped\",[102]],[[120178,120178],\"mapped\",[103]],[[120179,120179],\"mapped\",[104]],[[120180,120180],\"mapped\",[105]],[[120181,120181],\"mapped\",[106]],[[120182,120182],\"mapped\",[107]],[[120183,120183],\"mapped\",[108]],[[120184,120184],\"mapped\",[109]],[[120185,120185],\"mapped\",[110]],[[120186,120186],\"mapped\",[111]],[[120187,120187],\"mapped\",[112]],[[120188,120188],\"mapped\",[113]],[[120189,120189],\"mapped\",[114]],[[120190,120190],\"mapped\",[115]],[[120191,120191],\"mapped\",[116]],[[120192,120192],\"mapped\",[117]],[[120193,120193],\"mapped\",[118]],[[120194,120194],\"mapped\",[119]],[[120195,120195],\"mapped\",[120]],[[120196,120196],\"mapped\",[121]],[[120197,120197],\"mapped\",[122]],[[120198,120198],\"mapped\",[97]],[[120199,120199],\"mapped\",[98]],[[120200,120200],\"mapped\",[99]],[[120201,120201],\"mapped\",[100]],[[120202,120202],\"mapped\",[101]],[[120203,120203],\"mapped\",[102]],[[120204,120204],\"mapped\",[103]],[[120205,120205],\"mapped\",[104]],[[120206,120206],\"mapped\",[105]],[[120207,120207],\"mapped\",[106]],[[120208,120208],\"mapped\",[107]],[[120209,120209],\"mapped\",[108]],[[120210,120210],\"mapped\",[109]],[[120211,120211],\"mapped\",[110]],[[120212,120212],\"mapped\",[111]],[[120213,120213],\"mapped\",[112]],[[120214,120214],\"mapped\",[113]],[[120215,120215],\"mapped\",[114]],[[120216,120216],\"mapped\",[115]],[[120217,120217],\"mapped\",[116]],[[120218,120218],\"mapped\",[117]],[[120219,120219],\"mapped\",[118]],[[120220,120220],\"mapped\",[119]],[[120221,120221],\"mapped\",[120]],[[120222,120222],\"mapped\",[121]],[[120223,120223],\"mapped\",[122]],[[120224,120224],\"mapped\",[97]],[[120225,120225],\"mapped\",[98]],[[120226,120226],\"mapped\",[99]],[[120227,120227],\"mapped\",[100]],[[120228,120228],\"mapped\",[101]],[[120229,120229],\"mapped\",[102]],[[120230,120230],\"mapped\",[103]],[[120231,120231],\"mapped\",[104]],[[120232,120232],\"mapped\",[105]],[[120233,120233],\"mapped\",[106]],[[120234,120234],\"mapped\",[107]],[[120235,120235],\"mapped\",[108]],[[120236,120236],\"mapped\",[109]],[[120237,120237],\"mapped\",[110]],[[120238,120238],\"mapped\",[111]],[[120239,120239],\"mapped\",[112]],[[120240,120240],\"mapped\",[113]],[[120241,120241],\"mapped\",[114]],[[120242,120242],\"mapped\",[115]],[[120243,120243],\"mapped\",[116]],[[120244,120244],\"mapped\",[117]],[[120245,120245],\"mapped\",[118]],[[120246,120246],\"mapped\",[119]],[[120247,120247],\"mapped\",[120]],[[120248,120248],\"mapped\",[121]],[[120249,120249],\"mapped\",[122]],[[120250,120250],\"mapped\",[97]],[[120251,120251],\"mapped\",[98]],[[120252,120252],\"mapped\",[99]],[[120253,120253],\"mapped\",[100]],[[120254,120254],\"mapped\",[101]],[[120255,120255],\"mapped\",[102]],[[120256,120256],\"mapped\",[103]],[[120257,120257],\"mapped\",[104]],[[120258,120258],\"mapped\",[105]],[[120259,120259],\"mapped\",[106]],[[120260,120260],\"mapped\",[107]],[[120261,120261],\"mapped\",[108]],[[120262,120262],\"mapped\",[109]],[[120263,120263],\"mapped\",[110]],[[120264,120264],\"mapped\",[111]],[[120265,120265],\"mapped\",[112]],[[120266,120266],\"mapped\",[113]],[[120267,120267],\"mapped\",[114]],[[120268,120268],\"mapped\",[115]],[[120269,120269],\"mapped\",[116]],[[120270,120270],\"mapped\",[117]],[[120271,120271],\"mapped\",[118]],[[120272,120272],\"mapped\",[119]],[[120273,120273],\"mapped\",[120]],[[120274,120274],\"mapped\",[121]],[[120275,120275],\"mapped\",[122]],[[120276,120276],\"mapped\",[97]],[[120277,120277],\"mapped\",[98]],[[120278,120278],\"mapped\",[99]],[[120279,120279],\"mapped\",[100]],[[120280,120280],\"mapped\",[101]],[[120281,120281],\"mapped\",[102]],[[120282,120282],\"mapped\",[103]],[[120283,120283],\"mapped\",[104]],[[120284,120284],\"mapped\",[105]],[[120285,120285],\"mapped\",[106]],[[120286,120286],\"mapped\",[107]],[[120287,120287],\"mapped\",[108]],[[120288,120288],\"mapped\",[109]],[[120289,120289],\"mapped\",[110]],[[120290,120290],\"mapped\",[111]],[[120291,120291],\"mapped\",[112]],[[120292,120292],\"mapped\",[113]],[[120293,120293],\"mapped\",[114]],[[120294,120294],\"mapped\",[115]],[[120295,120295],\"mapped\",[116]],[[120296,120296],\"mapped\",[117]],[[120297,120297],\"mapped\",[118]],[[120298,120298],\"mapped\",[119]],[[120299,120299],\"mapped\",[120]],[[120300,120300],\"mapped\",[121]],[[120301,120301],\"mapped\",[122]],[[120302,120302],\"mapped\",[97]],[[120303,120303],\"mapped\",[98]],[[120304,120304],\"mapped\",[99]],[[120305,120305],\"mapped\",[100]],[[120306,120306],\"mapped\",[101]],[[120307,120307],\"mapped\",[102]],[[120308,120308],\"mapped\",[103]],[[120309,120309],\"mapped\",[104]],[[120310,120310],\"mapped\",[105]],[[120311,120311],\"mapped\",[106]],[[120312,120312],\"mapped\",[107]],[[120313,120313],\"mapped\",[108]],[[120314,120314],\"mapped\",[109]],[[120315,120315],\"mapped\",[110]],[[120316,120316],\"mapped\",[111]],[[120317,120317],\"mapped\",[112]],[[120318,120318],\"mapped\",[113]],[[120319,120319],\"mapped\",[114]],[[120320,120320],\"mapped\",[115]],[[120321,120321],\"mapped\",[116]],[[120322,120322],\"mapped\",[117]],[[120323,120323],\"mapped\",[118]],[[120324,120324],\"mapped\",[119]],[[120325,120325],\"mapped\",[120]],[[120326,120326],\"mapped\",[121]],[[120327,120327],\"mapped\",[122]],[[120328,120328],\"mapped\",[97]],[[120329,120329],\"mapped\",[98]],[[120330,120330],\"mapped\",[99]],[[120331,120331],\"mapped\",[100]],[[120332,120332],\"mapped\",[101]],[[120333,120333],\"mapped\",[102]],[[120334,120334],\"mapped\",[103]],[[120335,120335],\"mapped\",[104]],[[120336,120336],\"mapped\",[105]],[[120337,120337],\"mapped\",[106]],[[120338,120338],\"mapped\",[107]],[[120339,120339],\"mapped\",[108]],[[120340,120340],\"mapped\",[109]],[[120341,120341],\"mapped\",[110]],[[120342,120342],\"mapped\",[111]],[[120343,120343],\"mapped\",[112]],[[120344,120344],\"mapped\",[113]],[[120345,120345],\"mapped\",[114]],[[120346,120346],\"mapped\",[115]],[[120347,120347],\"mapped\",[116]],[[120348,120348],\"mapped\",[117]],[[120349,120349],\"mapped\",[118]],[[120350,120350],\"mapped\",[119]],[[120351,120351],\"mapped\",[120]],[[120352,120352],\"mapped\",[121]],[[120353,120353],\"mapped\",[122]],[[120354,120354],\"mapped\",[97]],[[120355,120355],\"mapped\",[98]],[[120356,120356],\"mapped\",[99]],[[120357,120357],\"mapped\",[100]],[[120358,120358],\"mapped\",[101]],[[120359,120359],\"mapped\",[102]],[[120360,120360],\"mapped\",[103]],[[120361,120361],\"mapped\",[104]],[[120362,120362],\"mapped\",[105]],[[120363,120363],\"mapped\",[106]],[[120364,120364],\"mapped\",[107]],[[120365,120365],\"mapped\",[108]],[[120366,120366],\"mapped\",[109]],[[120367,120367],\"mapped\",[110]],[[120368,120368],\"mapped\",[111]],[[120369,120369],\"mapped\",[112]],[[120370,120370],\"mapped\",[113]],[[120371,120371],\"mapped\",[114]],[[120372,120372],\"mapped\",[115]],[[120373,120373],\"mapped\",[116]],[[120374,120374],\"mapped\",[117]],[[120375,120375],\"mapped\",[118]],[[120376,120376],\"mapped\",[119]],[[120377,120377],\"mapped\",[120]],[[120378,120378],\"mapped\",[121]],[[120379,120379],\"mapped\",[122]],[[120380,120380],\"mapped\",[97]],[[120381,120381],\"mapped\",[98]],[[120382,120382],\"mapped\",[99]],[[120383,120383],\"mapped\",[100]],[[120384,120384],\"mapped\",[101]],[[120385,120385],\"mapped\",[102]],[[120386,120386],\"mapped\",[103]],[[120387,120387],\"mapped\",[104]],[[120388,120388],\"mapped\",[105]],[[120389,120389],\"mapped\",[106]],[[120390,120390],\"mapped\",[107]],[[120391,120391],\"mapped\",[108]],[[120392,120392],\"mapped\",[109]],[[120393,120393],\"mapped\",[110]],[[120394,120394],\"mapped\",[111]],[[120395,120395],\"mapped\",[112]],[[120396,120396],\"mapped\",[113]],[[120397,120397],\"mapped\",[114]],[[120398,120398],\"mapped\",[115]],[[120399,120399],\"mapped\",[116]],[[120400,120400],\"mapped\",[117]],[[120401,120401],\"mapped\",[118]],[[120402,120402],\"mapped\",[119]],[[120403,120403],\"mapped\",[120]],[[120404,120404],\"mapped\",[121]],[[120405,120405],\"mapped\",[122]],[[120406,120406],\"mapped\",[97]],[[120407,120407],\"mapped\",[98]],[[120408,120408],\"mapped\",[99]],[[120409,120409],\"mapped\",[100]],[[120410,120410],\"mapped\",[101]],[[120411,120411],\"mapped\",[102]],[[120412,120412],\"mapped\",[103]],[[120413,120413],\"mapped\",[104]],[[120414,120414],\"mapped\",[105]],[[120415,120415],\"mapped\",[106]],[[120416,120416],\"mapped\",[107]],[[120417,120417],\"mapped\",[108]],[[120418,120418],\"mapped\",[109]],[[120419,120419],\"mapped\",[110]],[[120420,120420],\"mapped\",[111]],[[120421,120421],\"mapped\",[112]],[[120422,120422],\"mapped\",[113]],[[120423,120423],\"mapped\",[114]],[[120424,120424],\"mapped\",[115]],[[120425,120425],\"mapped\",[116]],[[120426,120426],\"mapped\",[117]],[[120427,120427],\"mapped\",[118]],[[120428,120428],\"mapped\",[119]],[[120429,120429],\"mapped\",[120]],[[120430,120430],\"mapped\",[121]],[[120431,120431],\"mapped\",[122]],[[120432,120432],\"mapped\",[97]],[[120433,120433],\"mapped\",[98]],[[120434,120434],\"mapped\",[99]],[[120435,120435],\"mapped\",[100]],[[120436,120436],\"mapped\",[101]],[[120437,120437],\"mapped\",[102]],[[120438,120438],\"mapped\",[103]],[[120439,120439],\"mapped\",[104]],[[120440,120440],\"mapped\",[105]],[[120441,120441],\"mapped\",[106]],[[120442,120442],\"mapped\",[107]],[[120443,120443],\"mapped\",[108]],[[120444,120444],\"mapped\",[109]],[[120445,120445],\"mapped\",[110]],[[120446,120446],\"mapped\",[111]],[[120447,120447],\"mapped\",[112]],[[120448,120448],\"mapped\",[113]],[[120449,120449],\"mapped\",[114]],[[120450,120450],\"mapped\",[115]],[[120451,120451],\"mapped\",[116]],[[120452,120452],\"mapped\",[117]],[[120453,120453],\"mapped\",[118]],[[120454,120454],\"mapped\",[119]],[[120455,120455],\"mapped\",[120]],[[120456,120456],\"mapped\",[121]],[[120457,120457],\"mapped\",[122]],[[120458,120458],\"mapped\",[97]],[[120459,120459],\"mapped\",[98]],[[120460,120460],\"mapped\",[99]],[[120461,120461],\"mapped\",[100]],[[120462,120462],\"mapped\",[101]],[[120463,120463],\"mapped\",[102]],[[120464,120464],\"mapped\",[103]],[[120465,120465],\"mapped\",[104]],[[120466,120466],\"mapped\",[105]],[[120467,120467],\"mapped\",[106]],[[120468,120468],\"mapped\",[107]],[[120469,120469],\"mapped\",[108]],[[120470,120470],\"mapped\",[109]],[[120471,120471],\"mapped\",[110]],[[120472,120472],\"mapped\",[111]],[[120473,120473],\"mapped\",[112]],[[120474,120474],\"mapped\",[113]],[[120475,120475],\"mapped\",[114]],[[120476,120476],\"mapped\",[115]],[[120477,120477],\"mapped\",[116]],[[120478,120478],\"mapped\",[117]],[[120479,120479],\"mapped\",[118]],[[120480,120480],\"mapped\",[119]],[[120481,120481],\"mapped\",[120]],[[120482,120482],\"mapped\",[121]],[[120483,120483],\"mapped\",[122]],[[120484,120484],\"mapped\",[305]],[[120485,120485],\"mapped\",[567]],[[120486,120487],\"disallowed\"],[[120488,120488],\"mapped\",[945]],[[120489,120489],\"mapped\",[946]],[[120490,120490],\"mapped\",[947]],[[120491,120491],\"mapped\",[948]],[[120492,120492],\"mapped\",[949]],[[120493,120493],\"mapped\",[950]],[[120494,120494],\"mapped\",[951]],[[120495,120495],\"mapped\",[952]],[[120496,120496],\"mapped\",[953]],[[120497,120497],\"mapped\",[954]],[[120498,120498],\"mapped\",[955]],[[120499,120499],\"mapped\",[956]],[[120500,120500],\"mapped\",[957]],[[120501,120501],\"mapped\",[958]],[[120502,120502],\"mapped\",[959]],[[120503,120503],\"mapped\",[960]],[[120504,120504],\"mapped\",[961]],[[120505,120505],\"mapped\",[952]],[[120506,120506],\"mapped\",[963]],[[120507,120507],\"mapped\",[964]],[[120508,120508],\"mapped\",[965]],[[120509,120509],\"mapped\",[966]],[[120510,120510],\"mapped\",[967]],[[120511,120511],\"mapped\",[968]],[[120512,120512],\"mapped\",[969]],[[120513,120513],\"mapped\",[8711]],[[120514,120514],\"mapped\",[945]],[[120515,120515],\"mapped\",[946]],[[120516,120516],\"mapped\",[947]],[[120517,120517],\"mapped\",[948]],[[120518,120518],\"mapped\",[949]],[[120519,120519],\"mapped\",[950]],[[120520,120520],\"mapped\",[951]],[[120521,120521],\"mapped\",[952]],[[120522,120522],\"mapped\",[953]],[[120523,120523],\"mapped\",[954]],[[120524,120524],\"mapped\",[955]],[[120525,120525],\"mapped\",[956]],[[120526,120526],\"mapped\",[957]],[[120527,120527],\"mapped\",[958]],[[120528,120528],\"mapped\",[959]],[[120529,120529],\"mapped\",[960]],[[120530,120530],\"mapped\",[961]],[[120531,120532],\"mapped\",[963]],[[120533,120533],\"mapped\",[964]],[[120534,120534],\"mapped\",[965]],[[120535,120535],\"mapped\",[966]],[[120536,120536],\"mapped\",[967]],[[120537,120537],\"mapped\",[968]],[[120538,120538],\"mapped\",[969]],[[120539,120539],\"mapped\",[8706]],[[120540,120540],\"mapped\",[949]],[[120541,120541],\"mapped\",[952]],[[120542,120542],\"mapped\",[954]],[[120543,120543],\"mapped\",[966]],[[120544,120544],\"mapped\",[961]],[[120545,120545],\"mapped\",[960]],[[120546,120546],\"mapped\",[945]],[[120547,120547],\"mapped\",[946]],[[120548,120548],\"mapped\",[947]],[[120549,120549],\"mapped\",[948]],[[120550,120550],\"mapped\",[949]],[[120551,120551],\"mapped\",[950]],[[120552,120552],\"mapped\",[951]],[[120553,120553],\"mapped\",[952]],[[120554,120554],\"mapped\",[953]],[[120555,120555],\"mapped\",[954]],[[120556,120556],\"mapped\",[955]],[[120557,120557],\"mapped\",[956]],[[120558,120558],\"mapped\",[957]],[[120559,120559],\"mapped\",[958]],[[120560,120560],\"mapped\",[959]],[[120561,120561],\"mapped\",[960]],[[120562,120562],\"mapped\",[961]],[[120563,120563],\"mapped\",[952]],[[120564,120564],\"mapped\",[963]],[[120565,120565],\"mapped\",[964]],[[120566,120566],\"mapped\",[965]],[[120567,120567],\"mapped\",[966]],[[120568,120568],\"mapped\",[967]],[[120569,120569],\"mapped\",[968]],[[120570,120570],\"mapped\",[969]],[[120571,120571],\"mapped\",[8711]],[[120572,120572],\"mapped\",[945]],[[120573,120573],\"mapped\",[946]],[[120574,120574],\"mapped\",[947]],[[120575,120575],\"mapped\",[948]],[[120576,120576],\"mapped\",[949]],[[120577,120577],\"mapped\",[950]],[[120578,120578],\"mapped\",[951]],[[120579,120579],\"mapped\",[952]],[[120580,120580],\"mapped\",[953]],[[120581,120581],\"mapped\",[954]],[[120582,120582],\"mapped\",[955]],[[120583,120583],\"mapped\",[956]],[[120584,120584],\"mapped\",[957]],[[120585,120585],\"mapped\",[958]],[[120586,120586],\"mapped\",[959]],[[120587,120587],\"mapped\",[960]],[[120588,120588],\"mapped\",[961]],[[120589,120590],\"mapped\",[963]],[[120591,120591],\"mapped\",[964]],[[120592,120592],\"mapped\",[965]],[[120593,120593],\"mapped\",[966]],[[120594,120594],\"mapped\",[967]],[[120595,120595],\"mapped\",[968]],[[120596,120596],\"mapped\",[969]],[[120597,120597],\"mapped\",[8706]],[[120598,120598],\"mapped\",[949]],[[120599,120599],\"mapped\",[952]],[[120600,120600],\"mapped\",[954]],[[120601,120601],\"mapped\",[966]],[[120602,120602],\"mapped\",[961]],[[120603,120603],\"mapped\",[960]],[[120604,120604],\"mapped\",[945]],[[120605,120605],\"mapped\",[946]],[[120606,120606],\"mapped\",[947]],[[120607,120607],\"mapped\",[948]],[[120608,120608],\"mapped\",[949]],[[120609,120609],\"mapped\",[950]],[[120610,120610],\"mapped\",[951]],[[120611,120611],\"mapped\",[952]],[[120612,120612],\"mapped\",[953]],[[120613,120613],\"mapped\",[954]],[[120614,120614],\"mapped\",[955]],[[120615,120615],\"mapped\",[956]],[[120616,120616],\"mapped\",[957]],[[120617,120617],\"mapped\",[958]],[[120618,120618],\"mapped\",[959]],[[120619,120619],\"mapped\",[960]],[[120620,120620],\"mapped\",[961]],[[120621,120621],\"mapped\",[952]],[[120622,120622],\"mapped\",[963]],[[120623,120623],\"mapped\",[964]],[[120624,120624],\"mapped\",[965]],[[120625,120625],\"mapped\",[966]],[[120626,120626],\"mapped\",[967]],[[120627,120627],\"mapped\",[968]],[[120628,120628],\"mapped\",[969]],[[120629,120629],\"mapped\",[8711]],[[120630,120630],\"mapped\",[945]],[[120631,120631],\"mapped\",[946]],[[120632,120632],\"mapped\",[947]],[[120633,120633],\"mapped\",[948]],[[120634,120634],\"mapped\",[949]],[[120635,120635],\"mapped\",[950]],[[120636,120636],\"mapped\",[951]],[[120637,120637],\"mapped\",[952]],[[120638,120638],\"mapped\",[953]],[[120639,120639],\"mapped\",[954]],[[120640,120640],\"mapped\",[955]],[[120641,120641],\"mapped\",[956]],[[120642,120642],\"mapped\",[957]],[[120643,120643],\"mapped\",[958]],[[120644,120644],\"mapped\",[959]],[[120645,120645],\"mapped\",[960]],[[120646,120646],\"mapped\",[961]],[[120647,120648],\"mapped\",[963]],[[120649,120649],\"mapped\",[964]],[[120650,120650],\"mapped\",[965]],[[120651,120651],\"mapped\",[966]],[[120652,120652],\"mapped\",[967]],[[120653,120653],\"mapped\",[968]],[[120654,120654],\"mapped\",[969]],[[120655,120655],\"mapped\",[8706]],[[120656,120656],\"mapped\",[949]],[[120657,120657],\"mapped\",[952]],[[120658,120658],\"mapped\",[954]],[[120659,120659],\"mapped\",[966]],[[120660,120660],\"mapped\",[961]],[[120661,120661],\"mapped\",[960]],[[120662,120662],\"mapped\",[945]],[[120663,120663],\"mapped\",[946]],[[120664,120664],\"mapped\",[947]],[[120665,120665],\"mapped\",[948]],[[120666,120666],\"mapped\",[949]],[[120667,120667],\"mapped\",[950]],[[120668,120668],\"mapped\",[951]],[[120669,120669],\"mapped\",[952]],[[120670,120670],\"mapped\",[953]],[[120671,120671],\"mapped\",[954]],[[120672,120672],\"mapped\",[955]],[[120673,120673],\"mapped\",[956]],[[120674,120674],\"mapped\",[957]],[[120675,120675],\"mapped\",[958]],[[120676,120676],\"mapped\",[959]],[[120677,120677],\"mapped\",[960]],[[120678,120678],\"mapped\",[961]],[[120679,120679],\"mapped\",[952]],[[120680,120680],\"mapped\",[963]],[[120681,120681],\"mapped\",[964]],[[120682,120682],\"mapped\",[965]],[[120683,120683],\"mapped\",[966]],[[120684,120684],\"mapped\",[967]],[[120685,120685],\"mapped\",[968]],[[120686,120686],\"mapped\",[969]],[[120687,120687],\"mapped\",[8711]],[[120688,120688],\"mapped\",[945]],[[120689,120689],\"mapped\",[946]],[[120690,120690],\"mapped\",[947]],[[120691,120691],\"mapped\",[948]],[[120692,120692],\"mapped\",[949]],[[120693,120693],\"mapped\",[950]],[[120694,120694],\"mapped\",[951]],[[120695,120695],\"mapped\",[952]],[[120696,120696],\"mapped\",[953]],[[120697,120697],\"mapped\",[954]],[[120698,120698],\"mapped\",[955]],[[120699,120699],\"mapped\",[956]],[[120700,120700],\"mapped\",[957]],[[120701,120701],\"mapped\",[958]],[[120702,120702],\"mapped\",[959]],[[120703,120703],\"mapped\",[960]],[[120704,120704],\"mapped\",[961]],[[120705,120706],\"mapped\",[963]],[[120707,120707],\"mapped\",[964]],[[120708,120708],\"mapped\",[965]],[[120709,120709],\"mapped\",[966]],[[120710,120710],\"mapped\",[967]],[[120711,120711],\"mapped\",[968]],[[120712,120712],\"mapped\",[969]],[[120713,120713],\"mapped\",[8706]],[[120714,120714],\"mapped\",[949]],[[120715,120715],\"mapped\",[952]],[[120716,120716],\"mapped\",[954]],[[120717,120717],\"mapped\",[966]],[[120718,120718],\"mapped\",[961]],[[120719,120719],\"mapped\",[960]],[[120720,120720],\"mapped\",[945]],[[120721,120721],\"mapped\",[946]],[[120722,120722],\"mapped\",[947]],[[120723,120723],\"mapped\",[948]],[[120724,120724],\"mapped\",[949]],[[120725,120725],\"mapped\",[950]],[[120726,120726],\"mapped\",[951]],[[120727,120727],\"mapped\",[952]],[[120728,120728],\"mapped\",[953]],[[120729,120729],\"mapped\",[954]],[[120730,120730],\"mapped\",[955]],[[120731,120731],\"mapped\",[956]],[[120732,120732],\"mapped\",[957]],[[120733,120733],\"mapped\",[958]],[[120734,120734],\"mapped\",[959]],[[120735,120735],\"mapped\",[960]],[[120736,120736],\"mapped\",[961]],[[120737,120737],\"mapped\",[952]],[[120738,120738],\"mapped\",[963]],[[120739,120739],\"mapped\",[964]],[[120740,120740],\"mapped\",[965]],[[120741,120741],\"mapped\",[966]],[[120742,120742],\"mapped\",[967]],[[120743,120743],\"mapped\",[968]],[[120744,120744],\"mapped\",[969]],[[120745,120745],\"mapped\",[8711]],[[120746,120746],\"mapped\",[945]],[[120747,120747],\"mapped\",[946]],[[120748,120748],\"mapped\",[947]],[[120749,120749],\"mapped\",[948]],[[120750,120750],\"mapped\",[949]],[[120751,120751],\"mapped\",[950]],[[120752,120752],\"mapped\",[951]],[[120753,120753],\"mapped\",[952]],[[120754,120754],\"mapped\",[953]],[[120755,120755],\"mapped\",[954]],[[120756,120756],\"mapped\",[955]],[[120757,120757],\"mapped\",[956]],[[120758,120758],\"mapped\",[957]],[[120759,120759],\"mapped\",[958]],[[120760,120760],\"mapped\",[959]],[[120761,120761],\"mapped\",[960]],[[120762,120762],\"mapped\",[961]],[[120763,120764],\"mapped\",[963]],[[120765,120765],\"mapped\",[964]],[[120766,120766],\"mapped\",[965]],[[120767,120767],\"mapped\",[966]],[[120768,120768],\"mapped\",[967]],[[120769,120769],\"mapped\",[968]],[[120770,120770],\"mapped\",[969]],[[120771,120771],\"mapped\",[8706]],[[120772,120772],\"mapped\",[949]],[[120773,120773],\"mapped\",[952]],[[120774,120774],\"mapped\",[954]],[[120775,120775],\"mapped\",[966]],[[120776,120776],\"mapped\",[961]],[[120777,120777],\"mapped\",[960]],[[120778,120779],\"mapped\",[989]],[[120780,120781],\"disallowed\"],[[120782,120782],\"mapped\",[48]],[[120783,120783],\"mapped\",[49]],[[120784,120784],\"mapped\",[50]],[[120785,120785],\"mapped\",[51]],[[120786,120786],\"mapped\",[52]],[[120787,120787],\"mapped\",[53]],[[120788,120788],\"mapped\",[54]],[[120789,120789],\"mapped\",[55]],[[120790,120790],\"mapped\",[56]],[[120791,120791],\"mapped\",[57]],[[120792,120792],\"mapped\",[48]],[[120793,120793],\"mapped\",[49]],[[120794,120794],\"mapped\",[50]],[[120795,120795],\"mapped\",[51]],[[120796,120796],\"mapped\",[52]],[[120797,120797],\"mapped\",[53]],[[120798,120798],\"mapped\",[54]],[[120799,120799],\"mapped\",[55]],[[120800,120800],\"mapped\",[56]],[[120801,120801],\"mapped\",[57]],[[120802,120802],\"mapped\",[48]],[[120803,120803],\"mapped\",[49]],[[120804,120804],\"mapped\",[50]],[[120805,120805],\"mapped\",[51]],[[120806,120806],\"mapped\",[52]],[[120807,120807],\"mapped\",[53]],[[120808,120808],\"mapped\",[54]],[[120809,120809],\"mapped\",[55]],[[120810,120810],\"mapped\",[56]],[[120811,120811],\"mapped\",[57]],[[120812,120812],\"mapped\",[48]],[[120813,120813],\"mapped\",[49]],[[120814,120814],\"mapped\",[50]],[[120815,120815],\"mapped\",[51]],[[120816,120816],\"mapped\",[52]],[[120817,120817],\"mapped\",[53]],[[120818,120818],\"mapped\",[54]],[[120819,120819],\"mapped\",[55]],[[120820,120820],\"mapped\",[56]],[[120821,120821],\"mapped\",[57]],[[120822,120822],\"mapped\",[48]],[[120823,120823],\"mapped\",[49]],[[120824,120824],\"mapped\",[50]],[[120825,120825],\"mapped\",[51]],[[120826,120826],\"mapped\",[52]],[[120827,120827],\"mapped\",[53]],[[120828,120828],\"mapped\",[54]],[[120829,120829],\"mapped\",[55]],[[120830,120830],\"mapped\",[56]],[[120831,120831],\"mapped\",[57]],[[120832,121343],\"valid\",[],\"NV8\"],[[121344,121398],\"valid\"],[[121399,121402],\"valid\",[],\"NV8\"],[[121403,121452],\"valid\"],[[121453,121460],\"valid\",[],\"NV8\"],[[121461,121461],\"valid\"],[[121462,121475],\"valid\",[],\"NV8\"],[[121476,121476],\"valid\"],[[121477,121483],\"valid\",[],\"NV8\"],[[121484,121498],\"disallowed\"],[[121499,121503],\"valid\"],[[121504,121504],\"disallowed\"],[[121505,121519],\"valid\"],[[121520,124927],\"disallowed\"],[[124928,125124],\"valid\"],[[125125,125126],\"disallowed\"],[[125127,125135],\"valid\",[],\"NV8\"],[[125136,125142],\"valid\"],[[125143,126463],\"disallowed\"],[[126464,126464],\"mapped\",[1575]],[[126465,126465],\"mapped\",[1576]],[[126466,126466],\"mapped\",[1580]],[[126467,126467],\"mapped\",[1583]],[[126468,126468],\"disallowed\"],[[126469,126469],\"mapped\",[1608]],[[126470,126470],\"mapped\",[1586]],[[126471,126471],\"mapped\",[1581]],[[126472,126472],\"mapped\",[1591]],[[126473,126473],\"mapped\",[1610]],[[126474,126474],\"mapped\",[1603]],[[126475,126475],\"mapped\",[1604]],[[126476,126476],\"mapped\",[1605]],[[126477,126477],\"mapped\",[1606]],[[126478,126478],\"mapped\",[1587]],[[126479,126479],\"mapped\",[1593]],[[126480,126480],\"mapped\",[1601]],[[126481,126481],\"mapped\",[1589]],[[126482,126482],\"mapped\",[1602]],[[126483,126483],\"mapped\",[1585]],[[126484,126484],\"mapped\",[1588]],[[126485,126485],\"mapped\",[1578]],[[126486,126486],\"mapped\",[1579]],[[126487,126487],\"mapped\",[1582]],[[126488,126488],\"mapped\",[1584]],[[126489,126489],\"mapped\",[1590]],[[126490,126490],\"mapped\",[1592]],[[126491,126491],\"mapped\",[1594]],[[126492,126492],\"mapped\",[1646]],[[126493,126493],\"mapped\",[1722]],[[126494,126494],\"mapped\",[1697]],[[126495,126495],\"mapped\",[1647]],[[126496,126496],\"disallowed\"],[[126497,126497],\"mapped\",[1576]],[[126498,126498],\"mapped\",[1580]],[[126499,126499],\"disallowed\"],[[126500,126500],\"mapped\",[1607]],[[126501,126502],\"disallowed\"],[[126503,126503],\"mapped\",[1581]],[[126504,126504],\"disallowed\"],[[126505,126505],\"mapped\",[1610]],[[126506,126506],\"mapped\",[1603]],[[126507,126507],\"mapped\",[1604]],[[126508,126508],\"mapped\",[1605]],[[126509,126509],\"mapped\",[1606]],[[126510,126510],\"mapped\",[1587]],[[126511,126511],\"mapped\",[1593]],[[126512,126512],\"mapped\",[1601]],[[126513,126513],\"mapped\",[1589]],[[126514,126514],\"mapped\",[1602]],[[126515,126515],\"disallowed\"],[[126516,126516],\"mapped\",[1588]],[[126517,126517],\"mapped\",[1578]],[[126518,126518],\"mapped\",[1579]],[[126519,126519],\"mapped\",[1582]],[[126520,126520],\"disallowed\"],[[126521,126521],\"mapped\",[1590]],[[126522,126522],\"disallowed\"],[[126523,126523],\"mapped\",[1594]],[[126524,126529],\"disallowed\"],[[126530,126530],\"mapped\",[1580]],[[126531,126534],\"disallowed\"],[[126535,126535],\"mapped\",[1581]],[[126536,126536],\"disallowed\"],[[126537,126537],\"mapped\",[1610]],[[126538,126538],\"disallowed\"],[[126539,126539],\"mapped\",[1604]],[[126540,126540],\"disallowed\"],[[126541,126541],\"mapped\",[1606]],[[126542,126542],\"mapped\",[1587]],[[126543,126543],\"mapped\",[1593]],[[126544,126544],\"disallowed\"],[[126545,126545],\"mapped\",[1589]],[[126546,126546],\"mapped\",[1602]],[[126547,126547],\"disallowed\"],[[126548,126548],\"mapped\",[1588]],[[126549,126550],\"disallowed\"],[[126551,126551],\"mapped\",[1582]],[[126552,126552],\"disallowed\"],[[126553,126553],\"mapped\",[1590]],[[126554,126554],\"disallowed\"],[[126555,126555],\"mapped\",[1594]],[[126556,126556],\"disallowed\"],[[126557,126557],\"mapped\",[1722]],[[126558,126558],\"disallowed\"],[[126559,126559],\"mapped\",[1647]],[[126560,126560],\"disallowed\"],[[126561,126561],\"mapped\",[1576]],[[126562,126562],\"mapped\",[1580]],[[126563,126563],\"disallowed\"],[[126564,126564],\"mapped\",[1607]],[[126565,126566],\"disallowed\"],[[126567,126567],\"mapped\",[1581]],[[126568,126568],\"mapped\",[1591]],[[126569,126569],\"mapped\",[1610]],[[126570,126570],\"mapped\",[1603]],[[126571,126571],\"disallowed\"],[[126572,126572],\"mapped\",[1605]],[[126573,126573],\"mapped\",[1606]],[[126574,126574],\"mapped\",[1587]],[[126575,126575],\"mapped\",[1593]],[[126576,126576],\"mapped\",[1601]],[[126577,126577],\"mapped\",[1589]],[[126578,126578],\"mapped\",[1602]],[[126579,126579],\"disallowed\"],[[126580,126580],\"mapped\",[1588]],[[126581,126581],\"mapped\",[1578]],[[126582,126582],\"mapped\",[1579]],[[126583,126583],\"mapped\",[1582]],[[126584,126584],\"disallowed\"],[[126585,126585],\"mapped\",[1590]],[[126586,126586],\"mapped\",[1592]],[[126587,126587],\"mapped\",[1594]],[[126588,126588],\"mapped\",[1646]],[[126589,126589],\"disallowed\"],[[126590,126590],\"mapped\",[1697]],[[126591,126591],\"disallowed\"],[[126592,126592],\"mapped\",[1575]],[[126593,126593],\"mapped\",[1576]],[[126594,126594],\"mapped\",[1580]],[[126595,126595],\"mapped\",[1583]],[[126596,126596],\"mapped\",[1607]],[[126597,126597],\"mapped\",[1608]],[[126598,126598],\"mapped\",[1586]],[[126599,126599],\"mapped\",[1581]],[[126600,126600],\"mapped\",[1591]],[[126601,126601],\"mapped\",[1610]],[[126602,126602],\"disallowed\"],[[126603,126603],\"mapped\",[1604]],[[126604,126604],\"mapped\",[1605]],[[126605,126605],\"mapped\",[1606]],[[126606,126606],\"mapped\",[1587]],[[126607,126607],\"mapped\",[1593]],[[126608,126608],\"mapped\",[1601]],[[126609,126609],\"mapped\",[1589]],[[126610,126610],\"mapped\",[1602]],[[126611,126611],\"mapped\",[1585]],[[126612,126612],\"mapped\",[1588]],[[126613,126613],\"mapped\",[1578]],[[126614,126614],\"mapped\",[1579]],[[126615,126615],\"mapped\",[1582]],[[126616,126616],\"mapped\",[1584]],[[126617,126617],\"mapped\",[1590]],[[126618,126618],\"mapped\",[1592]],[[126619,126619],\"mapped\",[1594]],[[126620,126624],\"disallowed\"],[[126625,126625],\"mapped\",[1576]],[[126626,126626],\"mapped\",[1580]],[[126627,126627],\"mapped\",[1583]],[[126628,126628],\"disallowed\"],[[126629,126629],\"mapped\",[1608]],[[126630,126630],\"mapped\",[1586]],[[126631,126631],\"mapped\",[1581]],[[126632,126632],\"mapped\",[1591]],[[126633,126633],\"mapped\",[1610]],[[126634,126634],\"disallowed\"],[[126635,126635],\"mapped\",[1604]],[[126636,126636],\"mapped\",[1605]],[[126637,126637],\"mapped\",[1606]],[[126638,126638],\"mapped\",[1587]],[[126639,126639],\"mapped\",[1593]],[[126640,126640],\"mapped\",[1601]],[[126641,126641],\"mapped\",[1589]],[[126642,126642],\"mapped\",[1602]],[[126643,126643],\"mapped\",[1585]],[[126644,126644],\"mapped\",[1588]],[[126645,126645],\"mapped\",[1578]],[[126646,126646],\"mapped\",[1579]],[[126647,126647],\"mapped\",[1582]],[[126648,126648],\"mapped\",[1584]],[[126649,126649],\"mapped\",[1590]],[[126650,126650],\"mapped\",[1592]],[[126651,126651],\"mapped\",[1594]],[[126652,126703],\"disallowed\"],[[126704,126705],\"valid\",[],\"NV8\"],[[126706,126975],\"disallowed\"],[[126976,127019],\"valid\",[],\"NV8\"],[[127020,127023],\"disallowed\"],[[127024,127123],\"valid\",[],\"NV8\"],[[127124,127135],\"disallowed\"],[[127136,127150],\"valid\",[],\"NV8\"],[[127151,127152],\"disallowed\"],[[127153,127166],\"valid\",[],\"NV8\"],[[127167,127167],\"valid\",[],\"NV8\"],[[127168,127168],\"disallowed\"],[[127169,127183],\"valid\",[],\"NV8\"],[[127184,127184],\"disallowed\"],[[127185,127199],\"valid\",[],\"NV8\"],[[127200,127221],\"valid\",[],\"NV8\"],[[127222,127231],\"disallowed\"],[[127232,127232],\"disallowed\"],[[127233,127233],\"disallowed_STD3_mapped\",[48,44]],[[127234,127234],\"disallowed_STD3_mapped\",[49,44]],[[127235,127235],\"disallowed_STD3_mapped\",[50,44]],[[127236,127236],\"disallowed_STD3_mapped\",[51,44]],[[127237,127237],\"disallowed_STD3_mapped\",[52,44]],[[127238,127238],\"disallowed_STD3_mapped\",[53,44]],[[127239,127239],\"disallowed_STD3_mapped\",[54,44]],[[127240,127240],\"disallowed_STD3_mapped\",[55,44]],[[127241,127241],\"disallowed_STD3_mapped\",[56,44]],[[127242,127242],\"disallowed_STD3_mapped\",[57,44]],[[127243,127244],\"valid\",[],\"NV8\"],[[127245,127247],\"disallowed\"],[[127248,127248],\"disallowed_STD3_mapped\",[40,97,41]],[[127249,127249],\"disallowed_STD3_mapped\",[40,98,41]],[[127250,127250],\"disallowed_STD3_mapped\",[40,99,41]],[[127251,127251],\"disallowed_STD3_mapped\",[40,100,41]],[[127252,127252],\"disallowed_STD3_mapped\",[40,101,41]],[[127253,127253],\"disallowed_STD3_mapped\",[40,102,41]],[[127254,127254],\"disallowed_STD3_mapped\",[40,103,41]],[[127255,127255],\"disallowed_STD3_mapped\",[40,104,41]],[[127256,127256],\"disallowed_STD3_mapped\",[40,105,41]],[[127257,127257],\"disallowed_STD3_mapped\",[40,106,41]],[[127258,127258],\"disallowed_STD3_mapped\",[40,107,41]],[[127259,127259],\"disallowed_STD3_mapped\",[40,108,41]],[[127260,127260],\"disallowed_STD3_mapped\",[40,109,41]],[[127261,127261],\"disallowed_STD3_mapped\",[40,110,41]],[[127262,127262],\"disallowed_STD3_mapped\",[40,111,41]],[[127263,127263],\"disallowed_STD3_mapped\",[40,112,41]],[[127264,127264],\"disallowed_STD3_mapped\",[40,113,41]],[[127265,127265],\"disallowed_STD3_mapped\",[40,114,41]],[[127266,127266],\"disallowed_STD3_mapped\",[40,115,41]],[[127267,127267],\"disallowed_STD3_mapped\",[40,116,41]],[[127268,127268],\"disallowed_STD3_mapped\",[40,117,41]],[[127269,127269],\"disallowed_STD3_mapped\",[40,118,41]],[[127270,127270],\"disallowed_STD3_mapped\",[40,119,41]],[[127271,127271],\"disallowed_STD3_mapped\",[40,120,41]],[[127272,127272],\"disallowed_STD3_mapped\",[40,121,41]],[[127273,127273],\"disallowed_STD3_mapped\",[40,122,41]],[[127274,127274],\"mapped\",[12308,115,12309]],[[127275,127275],\"mapped\",[99]],[[127276,127276],\"mapped\",[114]],[[127277,127277],\"mapped\",[99,100]],[[127278,127278],\"mapped\",[119,122]],[[127279,127279],\"disallowed\"],[[127280,127280],\"mapped\",[97]],[[127281,127281],\"mapped\",[98]],[[127282,127282],\"mapped\",[99]],[[127283,127283],\"mapped\",[100]],[[127284,127284],\"mapped\",[101]],[[127285,127285],\"mapped\",[102]],[[127286,127286],\"mapped\",[103]],[[127287,127287],\"mapped\",[104]],[[127288,127288],\"mapped\",[105]],[[127289,127289],\"mapped\",[106]],[[127290,127290],\"mapped\",[107]],[[127291,127291],\"mapped\",[108]],[[127292,127292],\"mapped\",[109]],[[127293,127293],\"mapped\",[110]],[[127294,127294],\"mapped\",[111]],[[127295,127295],\"mapped\",[112]],[[127296,127296],\"mapped\",[113]],[[127297,127297],\"mapped\",[114]],[[127298,127298],\"mapped\",[115]],[[127299,127299],\"mapped\",[116]],[[127300,127300],\"mapped\",[117]],[[127301,127301],\"mapped\",[118]],[[127302,127302],\"mapped\",[119]],[[127303,127303],\"mapped\",[120]],[[127304,127304],\"mapped\",[121]],[[127305,127305],\"mapped\",[122]],[[127306,127306],\"mapped\",[104,118]],[[127307,127307],\"mapped\",[109,118]],[[127308,127308],\"mapped\",[115,100]],[[127309,127309],\"mapped\",[115,115]],[[127310,127310],\"mapped\",[112,112,118]],[[127311,127311],\"mapped\",[119,99]],[[127312,127318],\"valid\",[],\"NV8\"],[[127319,127319],\"valid\",[],\"NV8\"],[[127320,127326],\"valid\",[],\"NV8\"],[[127327,127327],\"valid\",[],\"NV8\"],[[127328,127337],\"valid\",[],\"NV8\"],[[127338,127338],\"mapped\",[109,99]],[[127339,127339],\"mapped\",[109,100]],[[127340,127343],\"disallowed\"],[[127344,127352],\"valid\",[],\"NV8\"],[[127353,127353],\"valid\",[],\"NV8\"],[[127354,127354],\"valid\",[],\"NV8\"],[[127355,127356],\"valid\",[],\"NV8\"],[[127357,127358],\"valid\",[],\"NV8\"],[[127359,127359],\"valid\",[],\"NV8\"],[[127360,127369],\"valid\",[],\"NV8\"],[[127370,127373],\"valid\",[],\"NV8\"],[[127374,127375],\"valid\",[],\"NV8\"],[[127376,127376],\"mapped\",[100,106]],[[127377,127386],\"valid\",[],\"NV8\"],[[127387,127461],\"disallowed\"],[[127462,127487],\"valid\",[],\"NV8\"],[[127488,127488],\"mapped\",[12411,12363]],[[127489,127489],\"mapped\",[12467,12467]],[[127490,127490],\"mapped\",[12469]],[[127491,127503],\"disallowed\"],[[127504,127504],\"mapped\",[25163]],[[127505,127505],\"mapped\",[23383]],[[127506,127506],\"mapped\",[21452]],[[127507,127507],\"mapped\",[12487]],[[127508,127508],\"mapped\",[20108]],[[127509,127509],\"mapped\",[22810]],[[127510,127510],\"mapped\",[35299]],[[127511,127511],\"mapped\",[22825]],[[127512,127512],\"mapped\",[20132]],[[127513,127513],\"mapped\",[26144]],[[127514,127514],\"mapped\",[28961]],[[127515,127515],\"mapped\",[26009]],[[127516,127516],\"mapped\",[21069]],[[127517,127517],\"mapped\",[24460]],[[127518,127518],\"mapped\",[20877]],[[127519,127519],\"mapped\",[26032]],[[127520,127520],\"mapped\",[21021]],[[127521,127521],\"mapped\",[32066]],[[127522,127522],\"mapped\",[29983]],[[127523,127523],\"mapped\",[36009]],[[127524,127524],\"mapped\",[22768]],[[127525,127525],\"mapped\",[21561]],[[127526,127526],\"mapped\",[28436]],[[127527,127527],\"mapped\",[25237]],[[127528,127528],\"mapped\",[25429]],[[127529,127529],\"mapped\",[19968]],[[127530,127530],\"mapped\",[19977]],[[127531,127531],\"mapped\",[36938]],[[127532,127532],\"mapped\",[24038]],[[127533,127533],\"mapped\",[20013]],[[127534,127534],\"mapped\",[21491]],[[127535,127535],\"mapped\",[25351]],[[127536,127536],\"mapped\",[36208]],[[127537,127537],\"mapped\",[25171]],[[127538,127538],\"mapped\",[31105]],[[127539,127539],\"mapped\",[31354]],[[127540,127540],\"mapped\",[21512]],[[127541,127541],\"mapped\",[28288]],[[127542,127542],\"mapped\",[26377]],[[127543,127543],\"mapped\",[26376]],[[127544,127544],\"mapped\",[30003]],[[127545,127545],\"mapped\",[21106]],[[127546,127546],\"mapped\",[21942]],[[127547,127551],\"disallowed\"],[[127552,127552],\"mapped\",[12308,26412,12309]],[[127553,127553],\"mapped\",[12308,19977,12309]],[[127554,127554],\"mapped\",[12308,20108,12309]],[[127555,127555],\"mapped\",[12308,23433,12309]],[[127556,127556],\"mapped\",[12308,28857,12309]],[[127557,127557],\"mapped\",[12308,25171,12309]],[[127558,127558],\"mapped\",[12308,30423,12309]],[[127559,127559],\"mapped\",[12308,21213,12309]],[[127560,127560],\"mapped\",[12308,25943,12309]],[[127561,127567],\"disallowed\"],[[127568,127568],\"mapped\",[24471]],[[127569,127569],\"mapped\",[21487]],[[127570,127743],\"disallowed\"],[[127744,127776],\"valid\",[],\"NV8\"],[[127777,127788],\"valid\",[],\"NV8\"],[[127789,127791],\"valid\",[],\"NV8\"],[[127792,127797],\"valid\",[],\"NV8\"],[[127798,127798],\"valid\",[],\"NV8\"],[[127799,127868],\"valid\",[],\"NV8\"],[[127869,127869],\"valid\",[],\"NV8\"],[[127870,127871],\"valid\",[],\"NV8\"],[[127872,127891],\"valid\",[],\"NV8\"],[[127892,127903],\"valid\",[],\"NV8\"],[[127904,127940],\"valid\",[],\"NV8\"],[[127941,127941],\"valid\",[],\"NV8\"],[[127942,127946],\"valid\",[],\"NV8\"],[[127947,127950],\"valid\",[],\"NV8\"],[[127951,127955],\"valid\",[],\"NV8\"],[[127956,127967],\"valid\",[],\"NV8\"],[[127968,127984],\"valid\",[],\"NV8\"],[[127985,127991],\"valid\",[],\"NV8\"],[[127992,127999],\"valid\",[],\"NV8\"],[[128000,128062],\"valid\",[],\"NV8\"],[[128063,128063],\"valid\",[],\"NV8\"],[[128064,128064],\"valid\",[],\"NV8\"],[[128065,128065],\"valid\",[],\"NV8\"],[[128066,128247],\"valid\",[],\"NV8\"],[[128248,128248],\"valid\",[],\"NV8\"],[[128249,128252],\"valid\",[],\"NV8\"],[[128253,128254],\"valid\",[],\"NV8\"],[[128255,128255],\"valid\",[],\"NV8\"],[[128256,128317],\"valid\",[],\"NV8\"],[[128318,128319],\"valid\",[],\"NV8\"],[[128320,128323],\"valid\",[],\"NV8\"],[[128324,128330],\"valid\",[],\"NV8\"],[[128331,128335],\"valid\",[],\"NV8\"],[[128336,128359],\"valid\",[],\"NV8\"],[[128360,128377],\"valid\",[],\"NV8\"],[[128378,128378],\"disallowed\"],[[128379,128419],\"valid\",[],\"NV8\"],[[128420,128420],\"disallowed\"],[[128421,128506],\"valid\",[],\"NV8\"],[[128507,128511],\"valid\",[],\"NV8\"],[[128512,128512],\"valid\",[],\"NV8\"],[[128513,128528],\"valid\",[],\"NV8\"],[[128529,128529],\"valid\",[],\"NV8\"],[[128530,128532],\"valid\",[],\"NV8\"],[[128533,128533],\"valid\",[],\"NV8\"],[[128534,128534],\"valid\",[],\"NV8\"],[[128535,128535],\"valid\",[],\"NV8\"],[[128536,128536],\"valid\",[],\"NV8\"],[[128537,128537],\"valid\",[],\"NV8\"],[[128538,128538],\"valid\",[],\"NV8\"],[[128539,128539],\"valid\",[],\"NV8\"],[[128540,128542],\"valid\",[],\"NV8\"],[[128543,128543],\"valid\",[],\"NV8\"],[[128544,128549],\"valid\",[],\"NV8\"],[[128550,128551],\"valid\",[],\"NV8\"],[[128552,128555],\"valid\",[],\"NV8\"],[[128556,128556],\"valid\",[],\"NV8\"],[[128557,128557],\"valid\",[],\"NV8\"],[[128558,128559],\"valid\",[],\"NV8\"],[[128560,128563],\"valid\",[],\"NV8\"],[[128564,128564],\"valid\",[],\"NV8\"],[[128565,128576],\"valid\",[],\"NV8\"],[[128577,128578],\"valid\",[],\"NV8\"],[[128579,128580],\"valid\",[],\"NV8\"],[[128581,128591],\"valid\",[],\"NV8\"],[[128592,128639],\"valid\",[],\"NV8\"],[[128640,128709],\"valid\",[],\"NV8\"],[[128710,128719],\"valid\",[],\"NV8\"],[[128720,128720],\"valid\",[],\"NV8\"],[[128721,128735],\"disallowed\"],[[128736,128748],\"valid\",[],\"NV8\"],[[128749,128751],\"disallowed\"],[[128752,128755],\"valid\",[],\"NV8\"],[[128756,128767],\"disallowed\"],[[128768,128883],\"valid\",[],\"NV8\"],[[128884,128895],\"disallowed\"],[[128896,128980],\"valid\",[],\"NV8\"],[[128981,129023],\"disallowed\"],[[129024,129035],\"valid\",[],\"NV8\"],[[129036,129039],\"disallowed\"],[[129040,129095],\"valid\",[],\"NV8\"],[[129096,129103],\"disallowed\"],[[129104,129113],\"valid\",[],\"NV8\"],[[129114,129119],\"disallowed\"],[[129120,129159],\"valid\",[],\"NV8\"],[[129160,129167],\"disallowed\"],[[129168,129197],\"valid\",[],\"NV8\"],[[129198,129295],\"disallowed\"],[[129296,129304],\"valid\",[],\"NV8\"],[[129305,129407],\"disallowed\"],[[129408,129412],\"valid\",[],\"NV8\"],[[129413,129471],\"disallowed\"],[[129472,129472],\"valid\",[],\"NV8\"],[[129473,131069],\"disallowed\"],[[131070,131071],\"disallowed\"],[[131072,173782],\"valid\"],[[173783,173823],\"disallowed\"],[[173824,177972],\"valid\"],[[177973,177983],\"disallowed\"],[[177984,178205],\"valid\"],[[178206,178207],\"disallowed\"],[[178208,183969],\"valid\"],[[183970,194559],\"disallowed\"],[[194560,194560],\"mapped\",[20029]],[[194561,194561],\"mapped\",[20024]],[[194562,194562],\"mapped\",[20033]],[[194563,194563],\"mapped\",[131362]],[[194564,194564],\"mapped\",[20320]],[[194565,194565],\"mapped\",[20398]],[[194566,194566],\"mapped\",[20411]],[[194567,194567],\"mapped\",[20482]],[[194568,194568],\"mapped\",[20602]],[[194569,194569],\"mapped\",[20633]],[[194570,194570],\"mapped\",[20711]],[[194571,194571],\"mapped\",[20687]],[[194572,194572],\"mapped\",[13470]],[[194573,194573],\"mapped\",[132666]],[[194574,194574],\"mapped\",[20813]],[[194575,194575],\"mapped\",[20820]],[[194576,194576],\"mapped\",[20836]],[[194577,194577],\"mapped\",[20855]],[[194578,194578],\"mapped\",[132380]],[[194579,194579],\"mapped\",[13497]],[[194580,194580],\"mapped\",[20839]],[[194581,194581],\"mapped\",[20877]],[[194582,194582],\"mapped\",[132427]],[[194583,194583],\"mapped\",[20887]],[[194584,194584],\"mapped\",[20900]],[[194585,194585],\"mapped\",[20172]],[[194586,194586],\"mapped\",[20908]],[[194587,194587],\"mapped\",[20917]],[[194588,194588],\"mapped\",[168415]],[[194589,194589],\"mapped\",[20981]],[[194590,194590],\"mapped\",[20995]],[[194591,194591],\"mapped\",[13535]],[[194592,194592],\"mapped\",[21051]],[[194593,194593],\"mapped\",[21062]],[[194594,194594],\"mapped\",[21106]],[[194595,194595],\"mapped\",[21111]],[[194596,194596],\"mapped\",[13589]],[[194597,194597],\"mapped\",[21191]],[[194598,194598],\"mapped\",[21193]],[[194599,194599],\"mapped\",[21220]],[[194600,194600],\"mapped\",[21242]],[[194601,194601],\"mapped\",[21253]],[[194602,194602],\"mapped\",[21254]],[[194603,194603],\"mapped\",[21271]],[[194604,194604],\"mapped\",[21321]],[[194605,194605],\"mapped\",[21329]],[[194606,194606],\"mapped\",[21338]],[[194607,194607],\"mapped\",[21363]],[[194608,194608],\"mapped\",[21373]],[[194609,194611],\"mapped\",[21375]],[[194612,194612],\"mapped\",[133676]],[[194613,194613],\"mapped\",[28784]],[[194614,194614],\"mapped\",[21450]],[[194615,194615],\"mapped\",[21471]],[[194616,194616],\"mapped\",[133987]],[[194617,194617],\"mapped\",[21483]],[[194618,194618],\"mapped\",[21489]],[[194619,194619],\"mapped\",[21510]],[[194620,194620],\"mapped\",[21662]],[[194621,194621],\"mapped\",[21560]],[[194622,194622],\"mapped\",[21576]],[[194623,194623],\"mapped\",[21608]],[[194624,194624],\"mapped\",[21666]],[[194625,194625],\"mapped\",[21750]],[[194626,194626],\"mapped\",[21776]],[[194627,194627],\"mapped\",[21843]],[[194628,194628],\"mapped\",[21859]],[[194629,194630],\"mapped\",[21892]],[[194631,194631],\"mapped\",[21913]],[[194632,194632],\"mapped\",[21931]],[[194633,194633],\"mapped\",[21939]],[[194634,194634],\"mapped\",[21954]],[[194635,194635],\"mapped\",[22294]],[[194636,194636],\"mapped\",[22022]],[[194637,194637],\"mapped\",[22295]],[[194638,194638],\"mapped\",[22097]],[[194639,194639],\"mapped\",[22132]],[[194640,194640],\"mapped\",[20999]],[[194641,194641],\"mapped\",[22766]],[[194642,194642],\"mapped\",[22478]],[[194643,194643],\"mapped\",[22516]],[[194644,194644],\"mapped\",[22541]],[[194645,194645],\"mapped\",[22411]],[[194646,194646],\"mapped\",[22578]],[[194647,194647],\"mapped\",[22577]],[[194648,194648],\"mapped\",[22700]],[[194649,194649],\"mapped\",[136420]],[[194650,194650],\"mapped\",[22770]],[[194651,194651],\"mapped\",[22775]],[[194652,194652],\"mapped\",[22790]],[[194653,194653],\"mapped\",[22810]],[[194654,194654],\"mapped\",[22818]],[[194655,194655],\"mapped\",[22882]],[[194656,194656],\"mapped\",[136872]],[[194657,194657],\"mapped\",[136938]],[[194658,194658],\"mapped\",[23020]],[[194659,194659],\"mapped\",[23067]],[[194660,194660],\"mapped\",[23079]],[[194661,194661],\"mapped\",[23000]],[[194662,194662],\"mapped\",[23142]],[[194663,194663],\"mapped\",[14062]],[[194664,194664],\"disallowed\"],[[194665,194665],\"mapped\",[23304]],[[194666,194667],\"mapped\",[23358]],[[194668,194668],\"mapped\",[137672]],[[194669,194669],\"mapped\",[23491]],[[194670,194670],\"mapped\",[23512]],[[194671,194671],\"mapped\",[23527]],[[194672,194672],\"mapped\",[23539]],[[194673,194673],\"mapped\",[138008]],[[194674,194674],\"mapped\",[23551]],[[194675,194675],\"mapped\",[23558]],[[194676,194676],\"disallowed\"],[[194677,194677],\"mapped\",[23586]],[[194678,194678],\"mapped\",[14209]],[[194679,194679],\"mapped\",[23648]],[[194680,194680],\"mapped\",[23662]],[[194681,194681],\"mapped\",[23744]],[[194682,194682],\"mapped\",[23693]],[[194683,194683],\"mapped\",[138724]],[[194684,194684],\"mapped\",[23875]],[[194685,194685],\"mapped\",[138726]],[[194686,194686],\"mapped\",[23918]],[[194687,194687],\"mapped\",[23915]],[[194688,194688],\"mapped\",[23932]],[[194689,194689],\"mapped\",[24033]],[[194690,194690],\"mapped\",[24034]],[[194691,194691],\"mapped\",[14383]],[[194692,194692],\"mapped\",[24061]],[[194693,194693],\"mapped\",[24104]],[[194694,194694],\"mapped\",[24125]],[[194695,194695],\"mapped\",[24169]],[[194696,194696],\"mapped\",[14434]],[[194697,194697],\"mapped\",[139651]],[[194698,194698],\"mapped\",[14460]],[[194699,194699],\"mapped\",[24240]],[[194700,194700],\"mapped\",[24243]],[[194701,194701],\"mapped\",[24246]],[[194702,194702],\"mapped\",[24266]],[[194703,194703],\"mapped\",[172946]],[[194704,194704],\"mapped\",[24318]],[[194705,194706],\"mapped\",[140081]],[[194707,194707],\"mapped\",[33281]],[[194708,194709],\"mapped\",[24354]],[[194710,194710],\"mapped\",[14535]],[[194711,194711],\"mapped\",[144056]],[[194712,194712],\"mapped\",[156122]],[[194713,194713],\"mapped\",[24418]],[[194714,194714],\"mapped\",[24427]],[[194715,194715],\"mapped\",[14563]],[[194716,194716],\"mapped\",[24474]],[[194717,194717],\"mapped\",[24525]],[[194718,194718],\"mapped\",[24535]],[[194719,194719],\"mapped\",[24569]],[[194720,194720],\"mapped\",[24705]],[[194721,194721],\"mapped\",[14650]],[[194722,194722],\"mapped\",[14620]],[[194723,194723],\"mapped\",[24724]],[[194724,194724],\"mapped\",[141012]],[[194725,194725],\"mapped\",[24775]],[[194726,194726],\"mapped\",[24904]],[[194727,194727],\"mapped\",[24908]],[[194728,194728],\"mapped\",[24910]],[[194729,194729],\"mapped\",[24908]],[[194730,194730],\"mapped\",[24954]],[[194731,194731],\"mapped\",[24974]],[[194732,194732],\"mapped\",[25010]],[[194733,194733],\"mapped\",[24996]],[[194734,194734],\"mapped\",[25007]],[[194735,194735],\"mapped\",[25054]],[[194736,194736],\"mapped\",[25074]],[[194737,194737],\"mapped\",[25078]],[[194738,194738],\"mapped\",[25104]],[[194739,194739],\"mapped\",[25115]],[[194740,194740],\"mapped\",[25181]],[[194741,194741],\"mapped\",[25265]],[[194742,194742],\"mapped\",[25300]],[[194743,194743],\"mapped\",[25424]],[[194744,194744],\"mapped\",[142092]],[[194745,194745],\"mapped\",[25405]],[[194746,194746],\"mapped\",[25340]],[[194747,194747],\"mapped\",[25448]],[[194748,194748],\"mapped\",[25475]],[[194749,194749],\"mapped\",[25572]],[[194750,194750],\"mapped\",[142321]],[[194751,194751],\"mapped\",[25634]],[[194752,194752],\"mapped\",[25541]],[[194753,194753],\"mapped\",[25513]],[[194754,194754],\"mapped\",[14894]],[[194755,194755],\"mapped\",[25705]],[[194756,194756],\"mapped\",[25726]],[[194757,194757],\"mapped\",[25757]],[[194758,194758],\"mapped\",[25719]],[[194759,194759],\"mapped\",[14956]],[[194760,194760],\"mapped\",[25935]],[[194761,194761],\"mapped\",[25964]],[[194762,194762],\"mapped\",[143370]],[[194763,194763],\"mapped\",[26083]],[[194764,194764],\"mapped\",[26360]],[[194765,194765],\"mapped\",[26185]],[[194766,194766],\"mapped\",[15129]],[[194767,194767],\"mapped\",[26257]],[[194768,194768],\"mapped\",[15112]],[[194769,194769],\"mapped\",[15076]],[[194770,194770],\"mapped\",[20882]],[[194771,194771],\"mapped\",[20885]],[[194772,194772],\"mapped\",[26368]],[[194773,194773],\"mapped\",[26268]],[[194774,194774],\"mapped\",[32941]],[[194775,194775],\"mapped\",[17369]],[[194776,194776],\"mapped\",[26391]],[[194777,194777],\"mapped\",[26395]],[[194778,194778],\"mapped\",[26401]],[[194779,194779],\"mapped\",[26462]],[[194780,194780],\"mapped\",[26451]],[[194781,194781],\"mapped\",[144323]],[[194782,194782],\"mapped\",[15177]],[[194783,194783],\"mapped\",[26618]],[[194784,194784],\"mapped\",[26501]],[[194785,194785],\"mapped\",[26706]],[[194786,194786],\"mapped\",[26757]],[[194787,194787],\"mapped\",[144493]],[[194788,194788],\"mapped\",[26766]],[[194789,194789],\"mapped\",[26655]],[[194790,194790],\"mapped\",[26900]],[[194791,194791],\"mapped\",[15261]],[[194792,194792],\"mapped\",[26946]],[[194793,194793],\"mapped\",[27043]],[[194794,194794],\"mapped\",[27114]],[[194795,194795],\"mapped\",[27304]],[[194796,194796],\"mapped\",[145059]],[[194797,194797],\"mapped\",[27355]],[[194798,194798],\"mapped\",[15384]],[[194799,194799],\"mapped\",[27425]],[[194800,194800],\"mapped\",[145575]],[[194801,194801],\"mapped\",[27476]],[[194802,194802],\"mapped\",[15438]],[[194803,194803],\"mapped\",[27506]],[[194804,194804],\"mapped\",[27551]],[[194805,194805],\"mapped\",[27578]],[[194806,194806],\"mapped\",[27579]],[[194807,194807],\"mapped\",[146061]],[[194808,194808],\"mapped\",[138507]],[[194809,194809],\"mapped\",[146170]],[[194810,194810],\"mapped\",[27726]],[[194811,194811],\"mapped\",[146620]],[[194812,194812],\"mapped\",[27839]],[[194813,194813],\"mapped\",[27853]],[[194814,194814],\"mapped\",[27751]],[[194815,194815],\"mapped\",[27926]],[[194816,194816],\"mapped\",[27966]],[[194817,194817],\"mapped\",[28023]],[[194818,194818],\"mapped\",[27969]],[[194819,194819],\"mapped\",[28009]],[[194820,194820],\"mapped\",[28024]],[[194821,194821],\"mapped\",[28037]],[[194822,194822],\"mapped\",[146718]],[[194823,194823],\"mapped\",[27956]],[[194824,194824],\"mapped\",[28207]],[[194825,194825],\"mapped\",[28270]],[[194826,194826],\"mapped\",[15667]],[[194827,194827],\"mapped\",[28363]],[[194828,194828],\"mapped\",[28359]],[[194829,194829],\"mapped\",[147153]],[[194830,194830],\"mapped\",[28153]],[[194831,194831],\"mapped\",[28526]],[[194832,194832],\"mapped\",[147294]],[[194833,194833],\"mapped\",[147342]],[[194834,194834],\"mapped\",[28614]],[[194835,194835],\"mapped\",[28729]],[[194836,194836],\"mapped\",[28702]],[[194837,194837],\"mapped\",[28699]],[[194838,194838],\"mapped\",[15766]],[[194839,194839],\"mapped\",[28746]],[[194840,194840],\"mapped\",[28797]],[[194841,194841],\"mapped\",[28791]],[[194842,194842],\"mapped\",[28845]],[[194843,194843],\"mapped\",[132389]],[[194844,194844],\"mapped\",[28997]],[[194845,194845],\"mapped\",[148067]],[[194846,194846],\"mapped\",[29084]],[[194847,194847],\"disallowed\"],[[194848,194848],\"mapped\",[29224]],[[194849,194849],\"mapped\",[29237]],[[194850,194850],\"mapped\",[29264]],[[194851,194851],\"mapped\",[149000]],[[194852,194852],\"mapped\",[29312]],[[194853,194853],\"mapped\",[29333]],[[194854,194854],\"mapped\",[149301]],[[194855,194855],\"mapped\",[149524]],[[194856,194856],\"mapped\",[29562]],[[194857,194857],\"mapped\",[29579]],[[194858,194858],\"mapped\",[16044]],[[194859,194859],\"mapped\",[29605]],[[194860,194861],\"mapped\",[16056]],[[194862,194862],\"mapped\",[29767]],[[194863,194863],\"mapped\",[29788]],[[194864,194864],\"mapped\",[29809]],[[194865,194865],\"mapped\",[29829]],[[194866,194866],\"mapped\",[29898]],[[194867,194867],\"mapped\",[16155]],[[194868,194868],\"mapped\",[29988]],[[194869,194869],\"mapped\",[150582]],[[194870,194870],\"mapped\",[30014]],[[194871,194871],\"mapped\",[150674]],[[194872,194872],\"mapped\",[30064]],[[194873,194873],\"mapped\",[139679]],[[194874,194874],\"mapped\",[30224]],[[194875,194875],\"mapped\",[151457]],[[194876,194876],\"mapped\",[151480]],[[194877,194877],\"mapped\",[151620]],[[194878,194878],\"mapped\",[16380]],[[194879,194879],\"mapped\",[16392]],[[194880,194880],\"mapped\",[30452]],[[194881,194881],\"mapped\",[151795]],[[194882,194882],\"mapped\",[151794]],[[194883,194883],\"mapped\",[151833]],[[194884,194884],\"mapped\",[151859]],[[194885,194885],\"mapped\",[30494]],[[194886,194887],\"mapped\",[30495]],[[194888,194888],\"mapped\",[30538]],[[194889,194889],\"mapped\",[16441]],[[194890,194890],\"mapped\",[30603]],[[194891,194891],\"mapped\",[16454]],[[194892,194892],\"mapped\",[16534]],[[194893,194893],\"mapped\",[152605]],[[194894,194894],\"mapped\",[30798]],[[194895,194895],\"mapped\",[30860]],[[194896,194896],\"mapped\",[30924]],[[194897,194897],\"mapped\",[16611]],[[194898,194898],\"mapped\",[153126]],[[194899,194899],\"mapped\",[31062]],[[194900,194900],\"mapped\",[153242]],[[194901,194901],\"mapped\",[153285]],[[194902,194902],\"mapped\",[31119]],[[194903,194903],\"mapped\",[31211]],[[194904,194904],\"mapped\",[16687]],[[194905,194905],\"mapped\",[31296]],[[194906,194906],\"mapped\",[31306]],[[194907,194907],\"mapped\",[31311]],[[194908,194908],\"mapped\",[153980]],[[194909,194910],\"mapped\",[154279]],[[194911,194911],\"disallowed\"],[[194912,194912],\"mapped\",[16898]],[[194913,194913],\"mapped\",[154539]],[[194914,194914],\"mapped\",[31686]],[[194915,194915],\"mapped\",[31689]],[[194916,194916],\"mapped\",[16935]],[[194917,194917],\"mapped\",[154752]],[[194918,194918],\"mapped\",[31954]],[[194919,194919],\"mapped\",[17056]],[[194920,194920],\"mapped\",[31976]],[[194921,194921],\"mapped\",[31971]],[[194922,194922],\"mapped\",[32000]],[[194923,194923],\"mapped\",[155526]],[[194924,194924],\"mapped\",[32099]],[[194925,194925],\"mapped\",[17153]],[[194926,194926],\"mapped\",[32199]],[[194927,194927],\"mapped\",[32258]],[[194928,194928],\"mapped\",[32325]],[[194929,194929],\"mapped\",[17204]],[[194930,194930],\"mapped\",[156200]],[[194931,194931],\"mapped\",[156231]],[[194932,194932],\"mapped\",[17241]],[[194933,194933],\"mapped\",[156377]],[[194934,194934],\"mapped\",[32634]],[[194935,194935],\"mapped\",[156478]],[[194936,194936],\"mapped\",[32661]],[[194937,194937],\"mapped\",[32762]],[[194938,194938],\"mapped\",[32773]],[[194939,194939],\"mapped\",[156890]],[[194940,194940],\"mapped\",[156963]],[[194941,194941],\"mapped\",[32864]],[[194942,194942],\"mapped\",[157096]],[[194943,194943],\"mapped\",[32880]],[[194944,194944],\"mapped\",[144223]],[[194945,194945],\"mapped\",[17365]],[[194946,194946],\"mapped\",[32946]],[[194947,194947],\"mapped\",[33027]],[[194948,194948],\"mapped\",[17419]],[[194949,194949],\"mapped\",[33086]],[[194950,194950],\"mapped\",[23221]],[[194951,194951],\"mapped\",[157607]],[[194952,194952],\"mapped\",[157621]],[[194953,194953],\"mapped\",[144275]],[[194954,194954],\"mapped\",[144284]],[[194955,194955],\"mapped\",[33281]],[[194956,194956],\"mapped\",[33284]],[[194957,194957],\"mapped\",[36766]],[[194958,194958],\"mapped\",[17515]],[[194959,194959],\"mapped\",[33425]],[[194960,194960],\"mapped\",[33419]],[[194961,194961],\"mapped\",[33437]],[[194962,194962],\"mapped\",[21171]],[[194963,194963],\"mapped\",[33457]],[[194964,194964],\"mapped\",[33459]],[[194965,194965],\"mapped\",[33469]],[[194966,194966],\"mapped\",[33510]],[[194967,194967],\"mapped\",[158524]],[[194968,194968],\"mapped\",[33509]],[[194969,194969],\"mapped\",[33565]],[[194970,194970],\"mapped\",[33635]],[[194971,194971],\"mapped\",[33709]],[[194972,194972],\"mapped\",[33571]],[[194973,194973],\"mapped\",[33725]],[[194974,194974],\"mapped\",[33767]],[[194975,194975],\"mapped\",[33879]],[[194976,194976],\"mapped\",[33619]],[[194977,194977],\"mapped\",[33738]],[[194978,194978],\"mapped\",[33740]],[[194979,194979],\"mapped\",[33756]],[[194980,194980],\"mapped\",[158774]],[[194981,194981],\"mapped\",[159083]],[[194982,194982],\"mapped\",[158933]],[[194983,194983],\"mapped\",[17707]],[[194984,194984],\"mapped\",[34033]],[[194985,194985],\"mapped\",[34035]],[[194986,194986],\"mapped\",[34070]],[[194987,194987],\"mapped\",[160714]],[[194988,194988],\"mapped\",[34148]],[[194989,194989],\"mapped\",[159532]],[[194990,194990],\"mapped\",[17757]],[[194991,194991],\"mapped\",[17761]],[[194992,194992],\"mapped\",[159665]],[[194993,194993],\"mapped\",[159954]],[[194994,194994],\"mapped\",[17771]],[[194995,194995],\"mapped\",[34384]],[[194996,194996],\"mapped\",[34396]],[[194997,194997],\"mapped\",[34407]],[[194998,194998],\"mapped\",[34409]],[[194999,194999],\"mapped\",[34473]],[[195000,195000],\"mapped\",[34440]],[[195001,195001],\"mapped\",[34574]],[[195002,195002],\"mapped\",[34530]],[[195003,195003],\"mapped\",[34681]],[[195004,195004],\"mapped\",[34600]],[[195005,195005],\"mapped\",[34667]],[[195006,195006],\"mapped\",[34694]],[[195007,195007],\"disallowed\"],[[195008,195008],\"mapped\",[34785]],[[195009,195009],\"mapped\",[34817]],[[195010,195010],\"mapped\",[17913]],[[195011,195011],\"mapped\",[34912]],[[195012,195012],\"mapped\",[34915]],[[195013,195013],\"mapped\",[161383]],[[195014,195014],\"mapped\",[35031]],[[195015,195015],\"mapped\",[35038]],[[195016,195016],\"mapped\",[17973]],[[195017,195017],\"mapped\",[35066]],[[195018,195018],\"mapped\",[13499]],[[195019,195019],\"mapped\",[161966]],[[195020,195020],\"mapped\",[162150]],[[195021,195021],\"mapped\",[18110]],[[195022,195022],\"mapped\",[18119]],[[195023,195023],\"mapped\",[35488]],[[195024,195024],\"mapped\",[35565]],[[195025,195025],\"mapped\",[35722]],[[195026,195026],\"mapped\",[35925]],[[195027,195027],\"mapped\",[162984]],[[195028,195028],\"mapped\",[36011]],[[195029,195029],\"mapped\",[36033]],[[195030,195030],\"mapped\",[36123]],[[195031,195031],\"mapped\",[36215]],[[195032,195032],\"mapped\",[163631]],[[195033,195033],\"mapped\",[133124]],[[195034,195034],\"mapped\",[36299]],[[195035,195035],\"mapped\",[36284]],[[195036,195036],\"mapped\",[36336]],[[195037,195037],\"mapped\",[133342]],[[195038,195038],\"mapped\",[36564]],[[195039,195039],\"mapped\",[36664]],[[195040,195040],\"mapped\",[165330]],[[195041,195041],\"mapped\",[165357]],[[195042,195042],\"mapped\",[37012]],[[195043,195043],\"mapped\",[37105]],[[195044,195044],\"mapped\",[37137]],[[195045,195045],\"mapped\",[165678]],[[195046,195046],\"mapped\",[37147]],[[195047,195047],\"mapped\",[37432]],[[195048,195048],\"mapped\",[37591]],[[195049,195049],\"mapped\",[37592]],[[195050,195050],\"mapped\",[37500]],[[195051,195051],\"mapped\",[37881]],[[195052,195052],\"mapped\",[37909]],[[195053,195053],\"mapped\",[166906]],[[195054,195054],\"mapped\",[38283]],[[195055,195055],\"mapped\",[18837]],[[195056,195056],\"mapped\",[38327]],[[195057,195057],\"mapped\",[167287]],[[195058,195058],\"mapped\",[18918]],[[195059,195059],\"mapped\",[38595]],[[195060,195060],\"mapped\",[23986]],[[195061,195061],\"mapped\",[38691]],[[195062,195062],\"mapped\",[168261]],[[195063,195063],\"mapped\",[168474]],[[195064,195064],\"mapped\",[19054]],[[195065,195065],\"mapped\",[19062]],[[195066,195066],\"mapped\",[38880]],[[195067,195067],\"mapped\",[168970]],[[195068,195068],\"mapped\",[19122]],[[195069,195069],\"mapped\",[169110]],[[195070,195071],\"mapped\",[38923]],[[195072,195072],\"mapped\",[38953]],[[195073,195073],\"mapped\",[169398]],[[195074,195074],\"mapped\",[39138]],[[195075,195075],\"mapped\",[19251]],[[195076,195076],\"mapped\",[39209]],[[195077,195077],\"mapped\",[39335]],[[195078,195078],\"mapped\",[39362]],[[195079,195079],\"mapped\",[39422]],[[195080,195080],\"mapped\",[19406]],[[195081,195081],\"mapped\",[170800]],[[195082,195082],\"mapped\",[39698]],[[195083,195083],\"mapped\",[40000]],[[195084,195084],\"mapped\",[40189]],[[195085,195085],\"mapped\",[19662]],[[195086,195086],\"mapped\",[19693]],[[195087,195087],\"mapped\",[40295]],[[195088,195088],\"mapped\",[172238]],[[195089,195089],\"mapped\",[19704]],[[195090,195090],\"mapped\",[172293]],[[195091,195091],\"mapped\",[172558]],[[195092,195092],\"mapped\",[172689]],[[195093,195093],\"mapped\",[40635]],[[195094,195094],\"mapped\",[19798]],[[195095,195095],\"mapped\",[40697]],[[195096,195096],\"mapped\",[40702]],[[195097,195097],\"mapped\",[40709]],[[195098,195098],\"mapped\",[40719]],[[195099,195099],\"mapped\",[40726]],[[195100,195100],\"mapped\",[40763]],[[195101,195101],\"mapped\",[173568]],[[195102,196605],\"disallowed\"],[[196606,196607],\"disallowed\"],[[196608,262141],\"disallowed\"],[[262142,262143],\"disallowed\"],[[262144,327677],\"disallowed\"],[[327678,327679],\"disallowed\"],[[327680,393213],\"disallowed\"],[[393214,393215],\"disallowed\"],[[393216,458749],\"disallowed\"],[[458750,458751],\"disallowed\"],[[458752,524285],\"disallowed\"],[[524286,524287],\"disallowed\"],[[524288,589821],\"disallowed\"],[[589822,589823],\"disallowed\"],[[589824,655357],\"disallowed\"],[[655358,655359],\"disallowed\"],[[655360,720893],\"disallowed\"],[[720894,720895],\"disallowed\"],[[720896,786429],\"disallowed\"],[[786430,786431],\"disallowed\"],[[786432,851965],\"disallowed\"],[[851966,851967],\"disallowed\"],[[851968,917501],\"disallowed\"],[[917502,917503],\"disallowed\"],[[917504,917504],\"disallowed\"],[[917505,917505],\"disallowed\"],[[917506,917535],\"disallowed\"],[[917536,917631],\"disallowed\"],[[917632,917759],\"disallowed\"],[[917760,917999],\"ignored\"],[[918000,983037],\"disallowed\"],[[983038,983039],\"disallowed\"],[[983040,1048573],\"disallowed\"],[[1048574,1048575],\"disallowed\"],[[1048576,1114109],\"disallowed\"],[[1114110,1114111],\"disallowed\"]]", "\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n", "\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n", "\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n", "\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n", "\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = /<meta.+?charset=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// html4\n\tif (!res && str) {\n\t\tres = /<meta[\\s]+?http-equiv=(['\"])content-type\\1[\\s]+?content=(['\"])(.+?)\\2/i.exec(str);\n\t\tif (!res) {\n\t\t\tres = /<meta[\\s]+?content=(['\"])(.+?)\\1[\\s]+?http-equiv=(['\"])content-type\\3/i.exec(str);\n\t\t\tif (res) {\n\t\t\t\tres.pop(); // drop last quote\n\t\t\t}\n\t\t}\n\n\t\tif (res) {\n\t\t\tres = /charset=(.*)/i.exec(res.pop());\n\t\t}\n\t}\n\n\t// xml\n\tif (!res && str) {\n\t\tres = /<\\?xml.+?encoding=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// found charset\n\tif (res) {\n\t\tcharset = res.pop();\n\n\t\t// prevent decode issues when sites use incorrect encoding\n\t\t// ref: https://hsivonen.fi/encoding-menu/\n\t\tif (charset === 'gb2312' || charset === 'gbk') {\n\t\t\tcharset = 'gb18030';\n\t\t}\n\t}\n\n\t// turn raw buffers into a single utf-8 buffer\n\treturn convert(buffer, 'UTF-8', charset).toString();\n}\n\n/**\n * Detect a URLSearchParams object\n * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143\n *\n * @param Object obj Object to detect by type or brand\n * @return String\n */\nfunction isURLSearchParams(obj) {\n\t// Duck-typing as a necessary condition.\n\tif (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {\n\t\treturn false;\n\t}\n\n\t// Brand-checking and more duck-typing as optional condition.\n\treturn obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';\n}\n\n/**\n * Check if `obj` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} obj\n * @return {boolean}\n */\nfunction isBlob(obj) {\n\treturn typeof obj === 'object' && typeof obj.arrayBuffer === 'function' && typeof obj.type === 'string' && typeof obj.stream === 'function' && typeof obj.constructor === 'function' && typeof obj.constructor.name === 'string' && /^(Blob|File)$/.test(obj.constructor.name) && /^(Blob|File)$/.test(obj[Symbol.toStringTag]);\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @return Mixed\n */\nfunction clone(instance) {\n\tlet p1, p2;\n\tlet body = instance.body;\n\n\t// don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif (body instanceof Stream && typeof body.getBoundary !== 'function') {\n\t\t// tee instance body\n\t\tp1 = new PassThrough();\n\t\tp2 = new PassThrough();\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].body = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n}\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param Mixed instance Any options.body input\n */\nfunction extractContentType(body) {\n\tif (body === null) {\n\t\t// body is null\n\t\treturn null;\n\t} else if (typeof body === 'string') {\n\t\t// body is string\n\t\treturn 'text/plain;charset=UTF-8';\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t} else if (isBlob(body)) {\n\t\t// body is blob\n\t\treturn body.type || null;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn null;\n\t} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\treturn null;\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\treturn null;\n\t} else if (typeof body.getBoundary === 'function') {\n\t\t// detect form data input from form-data module\n\t\treturn `multipart/form-data;boundary=${body.getBoundary()}`;\n\t} else if (body instanceof Stream) {\n\t\t// body is stream\n\t\t// can't really do much about this\n\t\treturn null;\n\t} else {\n\t\t// Body constructor defaults other things to string\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n}\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param Body instance Instance of Body\n * @return Number? Number of bytes, or null if not possible\n */\nfunction getTotalBytes(instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\treturn 0;\n\t} else if (isBlob(body)) {\n\t\treturn body.size;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn body.length;\n\t} else if (body && typeof body.getLengthSync === 'function') {\n\t\t// detect form data input from form-data module\n\t\tif (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x\n\t\tbody.hasKnownLength && body.hasKnownLength()) {\n\t\t\t// 2.x\n\t\t\treturn body.getLengthSync();\n\t\t}\n\t\treturn null;\n\t} else {\n\t\t// body is stream\n\t\treturn null;\n\t}\n}\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param Body instance Instance of Body\n * @return Void\n */\nfunction writeToStream(dest, instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\tdest.end();\n\t} else if (isBlob(body)) {\n\t\tbody.stream().pipe(dest);\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\tdest.write(body);\n\t\tdest.end();\n\t} else {\n\t\t// body is stream\n\t\tbody.pipe(dest);\n\t}\n}\n\n// expose Promise\nBody.Promise = global.Promise;\n\n/**\n * headers.js\n *\n * Headers class offers convenient helpers\n */\n\nconst invalidTokenRegex = /[^\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]/;\nconst invalidHeaderCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/;\n\nfunction validateName(name) {\n\tname = `${name}`;\n\tif (invalidTokenRegex.test(name) || name === '') {\n\t\tthrow new TypeError(`${name} is not a legal HTTP header name`);\n\t}\n}\n\nfunction validateValue(value) {\n\tvalue = `${value}`;\n\tif (invalidHeaderCharRegex.test(value)) {\n\t\tthrow new TypeError(`${value} is not a legal HTTP header value`);\n\t}\n}\n\n/**\n * Find the key in the map object given a header name.\n *\n * Returns undefined if not found.\n *\n * @param String name Header name\n * @return String|Undefined\n */\nfunction find(map, name) {\n\tname = name.toLowerCase();\n\tfor (const key in map) {\n\t\tif (key.toLowerCase() === name) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst MAP = Symbol('map');\nclass Headers {\n\t/**\n * Headers class\n *\n * @param Object headers Response headers\n * @return Void\n */\n\tconstructor() {\n\t\tlet init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence<sequence<ByteString>>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record<ByteString, ByteString>\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nconst isSameProtocol = function isSameProtocol(destination, original) {\n\tconst orig = new URL$1(original).protocol;\n\tconst dest = new URL$1(destination).protocol;\n\n\treturn orig === dest;\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\tdestroyStream(request.body, error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(req, function (err) {\n\t\t\tif (signal && signal.aborted) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (parseInt(process.version.substring(1)) < 14) {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\treq.on('socket', function (s) {\n\t\t\t\ts.addListener('close', function (hadError) {\n\t\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\t\tconst hasDataListener = s.listenerCount('data') > 0;\n\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && hasDataListener && !hadError && !(signal && signal.aborted)) {\n\t\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', err);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.on('end', function () {\n\t\t\t\t\t// some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted.\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tlet socket;\n\n\trequest.on('socket', function (s) {\n\t\tsocket = s;\n\t});\n\n\trequest.on('response', function (response) {\n\t\tconst headers = response.headers;\n\n\t\tif (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) {\n\t\t\tresponse.once('close', function (hadError) {\n\t\t\t\t// tests for socket presence, as in some situations the\n\t\t\t\t// the 'socket' event is not triggered for the request\n\t\t\t\t// (happens in deno), avoids `TypeError`\n\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\tconst hasDataListener = socket && socket.listenerCount('data') > 0;\n\n\t\t\t\tif (hasDataListener && !hadError) {\n\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\terrorCallback(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction destroyStream(stream, err) {\n\tif (stream.destroy) {\n\t\tstream.destroy(err);\n\t} else {\n\t\t// node < 8\n\t\tstream.emit('error', err);\n\t\tstream.end();\n\t}\n}\n\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n", "const nodeFetch = require('node-fetch')\nconst realFetch = nodeFetch.default || nodeFetch\n\nconst fetch = function (url, options) {\n // Support schemaless URIs on the server for parity with the browser.\n // Ex: //github.com/ -> https://github.com/\n if (/^\\/\\//.test(url)) {\n url = 'https:' + url\n }\n return realFetch.call(this, url, options)\n}\n\nfetch.ponyfill = true\n\nmodule.exports = exports = fetch\nexports.fetch = fetch\nexports.Headers = nodeFetch.Headers\nexports.Request = nodeFetch.Request\nexports.Response = nodeFetch.Response\n\n// Needed for TypeScript consumers without esModuleInterop.\nexports.default = fetch\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFetch = void 0;\nconst react_1 = require(\"react\");\nconst media_typer_1 = __importDefault(require(\"media-typer\"));\nconst content_type_1 = __importDefault(require(\"content-type\"));\nconst useCachedPromise_1 = require(\"./useCachedPromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst cross_fetch_1 = require(\"cross-fetch\");\nfunction isJSON(contentTypeHeader) {\n if (contentTypeHeader) {\n const ct = content_type_1.default.parse(contentTypeHeader);\n const mediaType = media_typer_1.default.parse(ct.type);\n if (mediaType.subtype === \"json\") {\n return true;\n }\n if (mediaType.suffix === \"json\") {\n return true;\n }\n if (mediaType.suffix && /\\bjson\\b/i.test(mediaType.suffix)) {\n return true;\n }\n if (mediaType.subtype && /\\bjson\\b/i.test(mediaType.subtype)) {\n return true;\n }\n }\n return false;\n}\nasync function defaultParsing(response) {\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const contentTypeHeader = response.headers.get(\"content-type\");\n if (contentTypeHeader && isJSON(contentTypeHeader)) {\n return await response.json();\n }\n return await response.text();\n}\n/**\n * Fetch the URL and returns the {@link AsyncState} corresponding to the execution of the fetch. The last value will be kept between command runs.\n *\n * @example\n * ```\n * import { useFetch } from '@raycast/utils';\n *\n * export default function Command() {\n * const { isLoading, data, revalidate } = useFetch('https://api.example');\n *\n * return (\n * <Detail\n * isLoading={isLoading}\n * markdown={data}\n * actions={\n * <ActionPanel>\n * <Action title=\"Reload\" onAction={() => revalidate()} />\n * </ActionPanel>\n * }\n * />\n * );\n * };\n * ```\n */\nfunction useFetch(url, options) {\n const { parseResponse, initialData, execute, keepPreviousData, onError, onData, onWillExecute, ...fetchOptions } = options || {};\n const useCachedPromiseOptions = {\n initialData,\n execute,\n keepPreviousData,\n onError,\n onData,\n onWillExecute,\n };\n const parseResponseRef = (0, useLatest_1.useLatest)(parseResponse || defaultParsing);\n const abortable = (0, react_1.useRef)();\n const fn = (0, react_1.useCallback)(async (url, options) => {\n const res = await (0, cross_fetch_1.fetch)(url, { signal: abortable.current?.signal, ...options });\n return (await parseResponseRef.current(res));\n }, [parseResponseRef]);\n // @ts-expect-error T can't be a Promise so it's actually the same\n return (0, useCachedPromise_1.useCachedPromise)(fn, [url, fetchOptions], { ...useCachedPromiseOptions, abortable });\n}\nexports.useFetch = useFetch;\n", "/**\n * This is not the set of all possible signals.\n *\n * It IS, however, the set of all signals that trigger\n * an exit on either Linux or BSD systems. Linux is a\n * superset of the signal names supported on BSD, and\n * the unknown signals just fail to register, so we can\n * catch that easily enough.\n *\n * Windows signals are a different set, since there are\n * signals that terminate Windows processes, but don't\n * terminate (or don't even exist) on Posix systems.\n *\n * Don't bother with SIGKILL. It's uncatchable, which\n * means that we can't fire any callbacks anyway.\n *\n * If a user does happen to register a handler on a non-\n * fatal signal like SIGWINCH or something, and then\n * exit, it'll end up firing `process.emit('exit')`, so\n * the handler will be fired anyway.\n *\n * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n * artificially, inherently leave the process in a\n * state from which it is not safe to try and enter JS\n * listeners.\n */\nexport const signals: NodeJS.Signals[] = []\nsignals.push('SIGHUP', 'SIGINT', 'SIGTERM')\n\nif (process.platform !== 'win32') {\n signals.push(\n 'SIGALRM',\n 'SIGABRT',\n 'SIGVTALRM',\n 'SIGXCPU',\n 'SIGXFSZ',\n 'SIGUSR2',\n 'SIGTRAP',\n 'SIGSYS',\n 'SIGQUIT',\n 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n )\n}\n\nif (process.platform === 'linux') {\n signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT')\n}\n", "// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nimport { signals } from './signals.js'\nexport { signals }\n\n// just a loosened process type so we can do some evil things\ntype ProcessRE = NodeJS.Process & {\n reallyExit: (code?: number | undefined | null) => any\n emit: (ev: string, ...a: any[]) => any\n}\n\nconst processOk = (process: any): process is ProcessRE =>\n !!process &&\n typeof process === 'object' &&\n typeof process.removeListener === 'function' &&\n typeof process.emit === 'function' &&\n typeof process.reallyExit === 'function' &&\n typeof process.listeners === 'function' &&\n typeof process.kill === 'function' &&\n typeof process.pid === 'number' &&\n typeof process.on === 'function'\n\nconst kExitEmitter = Symbol.for('signal-exit emitter')\nconst global: typeof globalThis & { [kExitEmitter]?: Emitter } = globalThis\nconst ObjectDefineProperty = Object.defineProperty.bind(Object)\n\n/**\n * A function that takes an exit code and signal as arguments\n *\n * In the case of signal exits *only*, a return value of true\n * will indicate that the signal is being handled, and we should\n * not synthetically exit with the signal we received. Regardless\n * of the handler return value, the handler is unloaded when an\n * otherwise fatal signal is received, so you get exactly 1 shot\n * at it, unless you add another onExit handler at that point.\n *\n * In the case of numeric code exits, we may already have committed\n * to exiting the process, for example via a fatal exception or\n * unhandled promise rejection, so it is impossible to stop safely.\n */\nexport type Handler = (\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n) => true | void\ntype ExitEvent = 'afterExit' | 'exit'\ntype Emitted = { [k in ExitEvent]: boolean }\ntype Listeners = { [k in ExitEvent]: Handler[] }\n\n// teeny special purpose ee\nclass Emitter {\n emitted: Emitted = {\n afterExit: false,\n exit: false,\n }\n\n listeners: Listeners = {\n afterExit: [],\n exit: [],\n }\n\n count: number = 0\n id: number = Math.random()\n\n constructor() {\n if (global[kExitEmitter]) {\n return global[kExitEmitter]\n }\n ObjectDefineProperty(global, kExitEmitter, {\n value: this,\n writable: false,\n enumerable: false,\n configurable: false,\n })\n }\n\n on(ev: ExitEvent, fn: Handler) {\n this.listeners[ev].push(fn)\n }\n\n removeListener(ev: ExitEvent, fn: Handler) {\n const list = this.listeners[ev]\n const i = list.indexOf(fn)\n /* c8 ignore start */\n if (i === -1) {\n return\n }\n /* c8 ignore stop */\n if (i === 0 && list.length === 1) {\n list.length = 0\n } else {\n list.splice(i, 1)\n }\n }\n\n emit(\n ev: ExitEvent,\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n ): boolean {\n if (this.emitted[ev]) {\n return false\n }\n this.emitted[ev] = true\n let ret: boolean = false\n for (const fn of this.listeners[ev]) {\n ret = fn(code, signal) === true || ret\n }\n if (ev === 'exit') {\n ret = this.emit('afterExit', code, signal) || ret\n }\n return ret\n }\n}\n\nabstract class SignalExitBase {\n abstract onExit(cb: Handler, opts?: { alwaysLast?: boolean }): () => void\n abstract load(): void\n abstract unload(): void\n}\n\nconst signalExitWrap = <T extends SignalExitBase>(handler: T) => {\n return {\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n return handler.onExit(cb, opts)\n },\n load() {\n return handler.load()\n },\n unload() {\n return handler.unload()\n },\n }\n}\n\nclass SignalExitFallback extends SignalExitBase {\n onExit() {\n return () => {}\n }\n load() {}\n unload() {}\n}\n\nclass SignalExit extends SignalExitBase {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n /* c8 ignore start */\n #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP'\n /* c8 ignore stop */\n #emitter = new Emitter()\n #process: ProcessRE\n #originalProcessEmit: ProcessRE['emit']\n #originalProcessReallyExit: ProcessRE['reallyExit']\n\n #sigListeners: { [k in NodeJS.Signals]?: () => void } = {}\n #loaded: boolean = false\n\n constructor(process: ProcessRE) {\n super()\n this.#process = process\n // { <signal>: <listener fn>, ... }\n this.#sigListeners = {}\n for (const sig of signals) {\n this.#sigListeners[sig] = () => {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n const listeners = this.#process.listeners(sig)\n let { count } = this.#emitter\n // This is a workaround for the fact that signal-exit v3 and signal\n // exit v4 are not aware of each other, and each will attempt to let\n // the other handle it, so neither of them do. To correct this, we\n // detect if we're the only handler *except* for previous versions\n // of signal-exit, and increment by the count of listeners it has\n // created.\n /* c8 ignore start */\n const p = process as unknown as {\n __signal_exit_emitter__?: { count: number }\n }\n if (\n typeof p.__signal_exit_emitter__ === 'object' &&\n typeof p.__signal_exit_emitter__.count === 'number'\n ) {\n count += p.__signal_exit_emitter__.count\n }\n /* c8 ignore stop */\n if (listeners.length === count) {\n this.unload()\n const ret = this.#emitter.emit('exit', null, sig)\n /* c8 ignore start */\n const s = sig === 'SIGHUP' ? this.#hupSig : sig\n if (!ret) process.kill(process.pid, s)\n /* c8 ignore stop */\n }\n }\n }\n\n this.#originalProcessReallyExit = process.reallyExit\n this.#originalProcessEmit = process.emit\n }\n\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return () => {}\n }\n /* c8 ignore stop */\n\n if (this.#loaded === false) {\n this.load()\n }\n\n const ev = opts?.alwaysLast ? 'afterExit' : 'exit'\n this.#emitter.on(ev, cb)\n return () => {\n this.#emitter.removeListener(ev, cb)\n if (\n this.#emitter.listeners['exit'].length === 0 &&\n this.#emitter.listeners['afterExit'].length === 0\n ) {\n this.unload()\n }\n }\n }\n\n load() {\n if (this.#loaded) {\n return\n }\n this.#loaded = true\n\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n this.#emitter.count += 1\n\n for (const sig of signals) {\n try {\n const fn = this.#sigListeners[sig]\n if (fn) this.#process.on(sig, fn)\n } catch (_) {}\n }\n\n this.#process.emit = (ev: string, ...a: any[]) => {\n return this.#processEmit(ev, ...a)\n }\n this.#process.reallyExit = (code?: number | null | undefined) => {\n return this.#processReallyExit(code)\n }\n }\n\n unload() {\n if (!this.#loaded) {\n return\n }\n this.#loaded = false\n\n signals.forEach(sig => {\n const listener = this.#sigListeners[sig]\n /* c8 ignore start */\n if (!listener) {\n throw new Error('Listener not defined for signal: ' + sig)\n }\n /* c8 ignore stop */\n try {\n this.#process.removeListener(sig, listener)\n /* c8 ignore start */\n } catch (_) {}\n /* c8 ignore stop */\n })\n this.#process.emit = this.#originalProcessEmit\n this.#process.reallyExit = this.#originalProcessReallyExit\n this.#emitter.count -= 1\n }\n\n #processReallyExit(code?: number | null | undefined) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return 0\n }\n this.#process.exitCode = code || 0\n /* c8 ignore stop */\n\n this.#emitter.emit('exit', this.#process.exitCode, null)\n return this.#originalProcessReallyExit.call(\n this.#process,\n this.#process.exitCode\n )\n }\n\n #processEmit(ev: string, ...args: any[]): any {\n const og = this.#originalProcessEmit\n if (ev === 'exit' && processOk(this.#process)) {\n if (typeof args[0] === 'number') {\n this.#process.exitCode = args[0]\n /* c8 ignore start */\n }\n /* c8 ignore start */\n const ret = og.call(this.#process, ev, ...args)\n /* c8 ignore start */\n this.#emitter.emit('exit', this.#process.exitCode, null)\n /* c8 ignore stop */\n return ret\n } else {\n return og.call(this.#process, ev, ...args)\n }\n }\n}\n\nconst process = globalThis.process\n// wrap so that we call the method on the actual handler, without\n// exporting it directly.\nexport const {\n /**\n * Called when the process is exiting, whether via signal, explicit\n * exit, or running out of stuff to do.\n *\n * If the global process object is not suitable for instrumentation,\n * then this will be a no-op.\n *\n * Returns a function that may be used to unload signal-exit.\n */\n onExit,\n\n /**\n * Load the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n load,\n\n /**\n * Unload the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n unload,\n} = signalExitWrap(\n processOk(process) ? new SignalExit(process) : new SignalExitFallback()\n)\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultParsing = exports.handleOutput = exports.getSpawnedResult = exports.getSpawnedPromise = void 0;\nconst node_buffer_1 = require(\"node:buffer\");\nconst node_stream_1 = __importDefault(require(\"node:stream\"));\nconst node_util_1 = require(\"node:util\");\nconst signal_exit_1 = require(\"signal-exit\");\nfunction getSpawnedPromise(spawned, { timeout } = {}) {\n const spawnedPromise = new Promise((resolve, reject) => {\n spawned.on(\"exit\", (exitCode, signal) => {\n resolve({ exitCode, signal, timedOut: false });\n });\n spawned.on(\"error\", (error) => {\n reject(error);\n });\n if (spawned.stdin) {\n spawned.stdin.on(\"error\", (error) => {\n reject(error);\n });\n }\n });\n if (timeout === 0 || timeout === undefined) {\n return spawnedPromise;\n }\n let timeoutId;\n const timeoutPromise = new Promise((_resolve, reject) => {\n timeoutId = setTimeout(() => {\n spawned.kill(\"SIGTERM\");\n reject(Object.assign(new Error(\"Timed out\"), { timedOut: true, signal: \"SIGTERM\" }));\n }, timeout);\n });\n const safeSpawnedPromise = spawnedPromise.finally(() => {\n clearTimeout(timeoutId);\n });\n const removeExitHandler = (0, signal_exit_1.onExit)(() => {\n spawned.kill();\n });\n return Promise.race([timeoutPromise, safeSpawnedPromise]).finally(() => removeExitHandler());\n}\nexports.getSpawnedPromise = getSpawnedPromise;\nclass MaxBufferError extends Error {\n constructor() {\n super(\"The output is too big\");\n this.name = \"MaxBufferError\";\n }\n}\nconst streamPipelinePromisified = (0, node_util_1.promisify)(node_stream_1.default.pipeline);\nfunction bufferStream(options) {\n const { encoding } = options;\n const isBuffer = encoding === \"buffer\";\n // @ts-expect-error missing the methods we are adding below\n const stream = new node_stream_1.default.PassThrough({ objectMode: false });\n if (encoding && encoding !== \"buffer\") {\n stream.setEncoding(encoding);\n }\n let length = 0;\n const chunks = [];\n stream.on(\"data\", (chunk) => {\n chunks.push(chunk);\n length += chunk.length;\n });\n stream.getBufferedValue = () => {\n return (isBuffer ? Buffer.concat(chunks, length) : chunks.join(\"\"));\n };\n stream.getBufferedLength = () => length;\n return stream;\n}\nasync function getStream(inputStream, options) {\n const stream = bufferStream(options);\n await new Promise((resolve, reject) => {\n const rejectPromise = (error) => {\n // Don't retrieve an oversized buffer.\n if (error && stream.getBufferedLength() <= node_buffer_1.constants.MAX_LENGTH) {\n error.bufferedData = stream.getBufferedValue();\n }\n reject(error);\n };\n (async () => {\n try {\n await streamPipelinePromisified(inputStream, stream);\n resolve();\n }\n catch (error) {\n rejectPromise(error);\n }\n })();\n stream.on(\"data\", () => {\n // 80mb\n if (stream.getBufferedLength() > 1000 * 1000 * 80) {\n rejectPromise(new MaxBufferError());\n }\n });\n });\n return stream.getBufferedValue();\n}\n// On failure, `result.stdout|stderr` should contain the currently buffered stream\nasync function getBufferedData(stream, streamPromise) {\n stream.destroy();\n try {\n return await streamPromise;\n }\n catch (error) {\n return error.bufferedData;\n }\n}\nasync function getSpawnedResult({ stdout, stderr }, { encoding }, processDone) {\n const stdoutPromise = getStream(stdout, { encoding });\n const stderrPromise = getStream(stderr, { encoding });\n try {\n return await Promise.all([processDone, stdoutPromise, stderrPromise]);\n }\n catch (error) {\n return Promise.all([\n {\n error: error,\n exitCode: null,\n signal: error.signal,\n timedOut: error.timedOut || false,\n },\n getBufferedData(stdout, stdoutPromise),\n getBufferedData(stderr, stderrPromise),\n ]);\n }\n}\nexports.getSpawnedResult = getSpawnedResult;\nfunction stripFinalNewline(input) {\n const LF = typeof input === \"string\" ? \"\\n\" : \"\\n\".charCodeAt(0);\n const CR = typeof input === \"string\" ? \"\\r\" : \"\\r\".charCodeAt(0);\n if (input[input.length - 1] === LF) {\n // @ts-expect-error we are doing some nasty stuff here\n input = input.slice(0, -1);\n }\n if (input[input.length - 1] === CR) {\n // @ts-expect-error we are doing some nasty stuff here\n input = input.slice(0, -1);\n }\n return input;\n}\nfunction handleOutput(options, value) {\n if (options.stripFinalNewline) {\n return stripFinalNewline(value);\n }\n return value;\n}\nexports.handleOutput = handleOutput;\nconst getErrorPrefix = ({ timedOut, timeout, signal, exitCode, }) => {\n if (timedOut) {\n return `timed out after ${timeout} milliseconds`;\n }\n if (signal !== undefined && signal !== null) {\n return `was killed with ${signal}`;\n }\n if (exitCode !== undefined && exitCode !== null) {\n return `failed with exit code ${exitCode}`;\n }\n return \"failed\";\n};\nconst makeError = ({ stdout, stderr, error, signal, exitCode, command, timedOut, options, parentError, }) => {\n const prefix = getErrorPrefix({ timedOut, timeout: options?.timeout, signal, exitCode });\n const execaMessage = `Command ${prefix}: ${command}`;\n const shortMessage = error ? `${execaMessage}\\n${error.message}` : execaMessage;\n const message = [shortMessage, stderr, stdout].filter(Boolean).join(\"\\n\");\n if (error) {\n // @ts-expect-error not on Error\n error.originalMessage = error.message;\n }\n else {\n error = parentError;\n }\n error.message = message;\n // @ts-expect-error not on Error\n error.shortMessage = shortMessage;\n // @ts-expect-error not on Error\n error.command = command;\n // @ts-expect-error not on Error\n error.exitCode = exitCode;\n // @ts-expect-error not on Error\n error.signal = signal;\n // @ts-expect-error not on Error\n error.stdout = stdout;\n // @ts-expect-error not on Error\n error.stderr = stderr;\n if (\"bufferedData\" in error) {\n delete error[\"bufferedData\"];\n }\n return error;\n};\nfunction defaultParsing({ stdout, stderr, error, exitCode, signal, timedOut, command, options, parentError, }) {\n if (error || exitCode !== 0 || signal !== null) {\n const returnedError = makeError({\n error,\n exitCode,\n signal,\n stdout,\n stderr,\n command,\n timedOut,\n options,\n parentError,\n });\n throw returnedError;\n }\n return stdout;\n}\nexports.defaultParsing = defaultParsing;\n", "\"use strict\";\n/*\n * Inspired by Execa\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useExec = void 0;\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst react_1 = require(\"react\");\nconst useCachedPromise_1 = require(\"./useCachedPromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst exec_utils_1 = require(\"./exec-utils\");\nconst SPACES_REGEXP = / +/g;\nfunction parseCommand(command, args) {\n if (args) {\n return [command, ...args];\n }\n const tokens = [];\n for (const token of command.trim().split(SPACES_REGEXP)) {\n // Allow spaces to be escaped by a backslash if not meant as a delimiter\n const previousToken = tokens[tokens.length - 1];\n if (previousToken && previousToken.endsWith(\"\\\\\")) {\n // Merge previous token with current one\n tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`;\n }\n else {\n tokens.push(token);\n }\n }\n return tokens;\n}\nfunction useExec(command, optionsOrArgs, options) {\n const { parseOutput, input, onData, onWillExecute, initialData, execute, keepPreviousData, onError, ...execOptions } = Array.isArray(optionsOrArgs) ? options || {} : optionsOrArgs || {};\n const useCachedPromiseOptions = {\n initialData,\n execute,\n keepPreviousData,\n onError,\n onData,\n onWillExecute,\n };\n const abortable = (0, react_1.useRef)();\n const parseOutputRef = (0, useLatest_1.useLatest)(parseOutput || exec_utils_1.defaultParsing);\n const fn = (0, react_1.useCallback)(async (_command, _args, _options, input) => {\n const [file, ...args] = parseCommand(_command, _args);\n const command = [file, ...args].join(\" \");\n const options = {\n stripFinalNewline: true,\n ..._options,\n timeout: _options?.timeout || 10000,\n signal: abortable.current?.signal,\n encoding: _options?.encoding === null ? \"buffer\" : _options?.encoding || \"utf8\",\n env: { PATH: \"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\", ...process.env, ..._options?.env },\n };\n const spawned = node_child_process_1.default.spawn(file, args, options);\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned, options);\n if (input) {\n spawned.stdin.end(input);\n }\n const [{ error, exitCode, signal, timedOut }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, options, spawnedPromise);\n const stdout = (0, exec_utils_1.handleOutput)(options, stdoutResult);\n const stderr = (0, exec_utils_1.handleOutput)(options, stderrResult);\n return parseOutputRef.current({\n // @ts-expect-error too many generics, I give up\n stdout,\n // @ts-expect-error too many generics, I give up\n stderr,\n error,\n exitCode,\n signal,\n timedOut,\n command,\n options,\n parentError: new Error(),\n });\n }, [parseOutputRef]);\n // @ts-expect-error T can't be a Promise so it's actually the same\n return (0, useCachedPromise_1.useCachedPromise)(fn, [command, Array.isArray(optionsOrArgs) ? optionsOrArgs : [], execOptions, input], {\n ...useCachedPromiseOptions,\n abortable,\n });\n}\nexports.useExec = useExec;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useSQL = void 0;\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\nconst api_1 = require(\"@raycast/api\");\nconst node_fs_1 = require(\"node:fs\");\nconst promises_1 = require(\"node:fs/promises\");\nconst node_os_1 = __importDefault(require(\"node:os\"));\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst node_path_1 = __importDefault(require(\"node:path\"));\nconst object_hash_1 = __importDefault(require(\"object-hash\"));\nconst react_1 = require(\"react\");\nconst usePromise_1 = require(\"./usePromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst exec_utils_1 = require(\"./exec-utils\");\nconst handle_error_toast_action_1 = require(\"./handle-error-toast-action\");\n/**\n * Executes a query on a local SQL database and returns the {@link AsyncState} corresponding to the query of the command. The last value will be kept between command runs.\n *\n * @example\n * ```\n * import { useSQL } from \"@raycast/utils\";\n * import { resolve } from \"path\";\n * import { homedir } from \"os\";\n *\n * const NOTES_DB = resolve(homedir(), \"Library/Group Containers/group.com.apple.notes/NoteStore.sqlite\");\n * const notesQuery = `SELECT id, title FROM ...`;\n * type NoteItem = {\n * id: string;\n * title: string;\n * };\n *\n * export default function Command() {\n * const { isLoading, data, permissionView } = useSQL<NoteItem>(NOTES_DB, notesQuery);\n *\n * if (permissionView) {\n * return permissionView;\n * }\n *\n * return (\n * <List isLoading={isLoading}>\n * {(data || []).map((item) => (\n * <List.Item key={item.id} title={item.title} />\n * ))}\n * </List>\n * );\n * };\n * ```\n */\nfunction useSQL(databasePath, query, options) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { permissionPriming, ...usePromiseOptions } = options || {};\n const [permissionView, setPermissionView] = (0, react_1.useState)();\n const latestOptions = (0, useLatest_1.useLatest)(options || {});\n const abortable = (0, react_1.useRef)();\n const handleError = (0, react_1.useCallback)((_error) => {\n console.error(_error);\n const error = _error instanceof Error && _error.message.includes(\"authorization denied\")\n ? new PermissionError(\"You do not have permission to access the database.\")\n : _error;\n if (isPermissionError(error)) {\n setPermissionView((0, jsx_runtime_1.jsx)(PermissionErrorScreen, { priming: latestOptions.current.permissionPriming }));\n }\n else {\n if (latestOptions.current.onError) {\n latestOptions.current.onError(error);\n }\n else {\n console.error(error);\n if (api_1.environment.launchType !== api_1.LaunchType.Background) {\n (0, api_1.showToast)({\n style: api_1.Toast.Style.Failure,\n title: \"Cannot query the data\",\n message: error.message,\n primaryAction: (0, handle_error_toast_action_1.handleErrorToastAction)(error),\n });\n }\n }\n }\n }, [latestOptions]);\n const fn = (0, react_1.useMemo)(() => {\n if (!(0, node_fs_1.existsSync)(databasePath)) {\n throw new Error(\"The database does not exist\");\n }\n let workaroundCopiedDb = undefined;\n return async (databasePath, query) => {\n const abortSignal = abortable.current?.signal;\n const spawned = node_child_process_1.default.spawn(\"sqlite3\", [\"--json\", \"--readonly\", databasePath, query], {\n signal: abortSignal,\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned);\n let [{ error, exitCode, signal }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf-8\" }, spawnedPromise);\n checkAborted(abortSignal);\n if (stderrResult.match(\"(5)\") || stderrResult.match(\"(14)\")) {\n // That means that the DB is busy because of another app is locking it\n // This happens when Chrome or Arc is opened: they lock the History db.\n // As an ugly workaround, we duplicate the file and read that instead\n // (with vfs unix - none to just not care about locks)\n if (!workaroundCopiedDb) {\n const tempFolder = node_path_1.default.join(node_os_1.default.tmpdir(), \"useSQL\", (0, object_hash_1.default)(databasePath));\n await (0, promises_1.mkdir)(tempFolder, { recursive: true });\n checkAborted(abortSignal);\n workaroundCopiedDb = node_path_1.default.join(tempFolder, \"db.db\");\n await (0, promises_1.copyFile)(databasePath, workaroundCopiedDb);\n // needed for certain db\n await (0, promises_1.writeFile)(workaroundCopiedDb + \"-shm\", \"\");\n await (0, promises_1.writeFile)(workaroundCopiedDb + \"-wal\", \"\");\n checkAborted(abortSignal);\n }\n const spawned = node_child_process_1.default.spawn(\"sqlite3\", [\"--json\", \"--readonly\", \"--vfs\", \"unix-none\", workaroundCopiedDb, query], {\n signal: abortSignal,\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned);\n [{ error, exitCode, signal }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf-8\" }, spawnedPromise);\n checkAborted(abortSignal);\n }\n if (error || exitCode !== 0 || signal !== null) {\n throw new Error(stderrResult);\n }\n return JSON.parse(stdoutResult.trim() || \"[]\");\n };\n }, [databasePath]);\n return {\n ...(0, usePromise_1.usePromise)(fn, [databasePath, query], { ...usePromiseOptions, onError: handleError }),\n permissionView,\n };\n}\nexports.useSQL = useSQL;\nclass PermissionError extends Error {\n constructor(message) {\n super(message);\n this.name = \"PermissionError\";\n }\n}\nfunction isPermissionError(error) {\n return error instanceof Error && error.name === \"PermissionError\";\n}\nconst macosVenturaAndLater = parseInt(node_os_1.default.release().split(\".\")[0]) >= 22;\nconst preferencesString = macosVenturaAndLater ? \"Settings\" : \"Preferences\";\nfunction PermissionErrorScreen(props) {\n const action = macosVenturaAndLater\n ? {\n title: \"Open System Settings -> Privacy\",\n target: \"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles\",\n }\n : {\n title: \"Open System Preferences -> Security\",\n target: \"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles\",\n };\n if (api_1.environment.commandMode === \"menu-bar\") {\n return ((0, jsx_runtime_1.jsxs)(api_1.MenuBarExtra, { icon: api_1.Icon.Warning, title: api_1.environment.commandName, children: [(0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: \"Raycast needs full disk access\", tooltip: `You can revert this access in ${preferencesString} whenever you want` }), props.priming ? ((0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: props.priming, tooltip: `You can revert this access in ${preferencesString} whenever you want` })) : null, (0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Separator, {}), (0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: action.title, onAction: () => (0, api_1.open)(action.target) })] }));\n }\n return ((0, jsx_runtime_1.jsx)(api_1.List, { children: (0, jsx_runtime_1.jsx)(api_1.List.EmptyView, { icon: {\n source: {\n light: \"https://raycast.com/uploads/extensions-utils-security-permissions-light.png\",\n dark: \"https://raycast.com/uploads/extensions-utils-security-permissions-dark.png\",\n },\n }, title: \"Raycast needs full disk access.\", description: `${props.priming ? props.priming + \"\\n\" : \"\"}You can revert this access in ${preferencesString} whenever you want.`, actions: (0, jsx_runtime_1.jsx)(api_1.ActionPanel, { children: (0, jsx_runtime_1.jsx)(api_1.Action.Open, { ...action }) }) }) }));\n}\nfunction checkAborted(signal) {\n if (signal?.aborted) {\n const error = new Error(\"aborted\");\n error.name = \"AbortError\";\n throw error;\n }\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useForm = exports.FormValidation = void 0;\nconst react_1 = require(\"react\");\nconst useLatest_1 = require(\"./useLatest\");\n/**\n * Shorthands for common validation cases\n */\nvar FormValidation;\n(function (FormValidation) {\n /** Show an error when the value of the item is empty */\n FormValidation[\"Required\"] = \"required\";\n})(FormValidation = exports.FormValidation || (exports.FormValidation = {}));\nfunction validationError(validation, value) {\n if (validation) {\n if (typeof validation === \"function\") {\n return validation(value);\n }\n else if (validation === FormValidation.Required) {\n let valueIsValid = typeof value !== \"undefined\" && value !== null;\n if (valueIsValid) {\n switch (typeof value) {\n case \"string\":\n valueIsValid = value.length > 0;\n break;\n case \"object\":\n if (Array.isArray(value)) {\n valueIsValid = value.length > 0;\n }\n else if (value instanceof Date) {\n valueIsValid = value.getTime() > 0;\n }\n break;\n default:\n break;\n }\n }\n if (!valueIsValid) {\n return \"The item is required\";\n }\n }\n }\n}\n/**\n * Hook that provides a high-level interface to work with Forms, and more particularly, with Form validations. It incorporates all the good practices to provide a great User Experience for your Forms.\n *\n * @returns an object which contains the necessary methods and props to provide a good User Experience in your Form.\n *\n * @example\n * ```\n * import { Action, ActionPanel, Form, showToast, Toast } from \"@raycast/api\";\n * import { useForm, FormValidation } from \"@raycast/utils\";\n *\n * interface SignUpFormValues {\n * nickname: string;\n * password: string;\n * }\n *\n * export default function Command() {\n * const { handleSubmit, itemProps } = useForm<SignUpFormValues>({\n * onSubmit(values) {\n * showToast(Toast.Style.Success, \"Yay!\", `${values.nickname} account created`);\n * },\n * validation: {\n * nickname: FormValidation.Required,\n * password: (value) => {\n * if (value && value.length < 8) {\n * return \"Password must be at least 8 symbols\";\n * } else if (!value) {\n * return \"The item is required\";\n * }\n * },\n * },\n * });\n *\n * return (\n * <Form\n * actions={\n * <ActionPanel>\n * <Action.SubmitForm title=\"Submit\" onSubmit={handleSubmit} />\n * </ActionPanel>\n * }\n * >\n * <Form.TextField title=\"Nickname\" placeholder=\"Enter your nickname\" {...itemProps.nickname} />\n * <Form.PasswordField\n * title=\"Password\"\n * placeholder=\"Enter password at least 8 characters long\"\n * {...itemProps.password}\n * />\n * </Form>\n * );\n * }\n * ```\n */\nfunction useForm(props) {\n const { onSubmit: _onSubmit, validation, initialValues = {} } = props;\n // @ts-expect-error it's fine if we don't specify all the values\n const [values, setValues] = (0, react_1.useState)(initialValues);\n const [errors, setErrors] = (0, react_1.useState)({});\n const refs = (0, react_1.useRef)({});\n const latestValidation = (0, useLatest_1.useLatest)(validation || {});\n const latestOnSubmit = (0, useLatest_1.useLatest)(_onSubmit);\n const focus = (0, react_1.useCallback)((id) => {\n refs.current[id]?.focus();\n }, [refs]);\n const handleSubmit = (0, react_1.useCallback)(async (values) => {\n let validationErrors = false;\n for (const [id, validation] of Object.entries(latestValidation.current)) {\n const error = validationError(validation, values[id]);\n if (error) {\n if (!validationErrors) {\n validationErrors = {};\n // we focus the first item that has an error\n focus(id);\n }\n validationErrors[id] = error;\n }\n }\n if (validationErrors) {\n setErrors(validationErrors);\n return false;\n }\n const result = await latestOnSubmit.current(values);\n return typeof result === \"boolean\" ? result : true;\n }, [latestValidation, latestOnSubmit, focus]);\n const setValidationError = (0, react_1.useCallback)((id, error) => {\n setErrors((errors) => ({ ...errors, [id]: error }));\n }, [setErrors]);\n const setValue = (0, react_1.useCallback)(function (id, value) {\n // @ts-expect-error TS is always confused about SetStateAction, but it's fine here\n setValues((values) => ({ ...values, [id]: typeof value === \"function\" ? value(values[id]) : value }));\n }, [setValues]);\n const itemProps = (0, react_1.useMemo)(() => {\n // we have to use a proxy because we don't actually have any object to iterate through\n // so instead we dynamically create the props when required\n return new Proxy(\n // @ts-expect-error the whole point of a proxy...\n {}, {\n get(target, id) {\n const validation = latestValidation.current[id];\n const value = values[id];\n return {\n onChange(value) {\n if (errors[id]) {\n const error = validationError(validation, value);\n if (!error) {\n setValidationError(id, undefined);\n }\n }\n setValue(id, value);\n },\n onBlur(event) {\n const error = validationError(validation, event.target.value);\n if (error) {\n setValidationError(id, error);\n }\n },\n error: errors[id],\n id,\n // we shouldn't return `undefined` otherwise it will be an uncontrolled component\n value: typeof value === \"undefined\" ? null : value,\n ref: (instance) => {\n refs.current[id] = instance;\n },\n };\n },\n });\n }, [errors, latestValidation, setValidationError, values, refs, setValue]);\n const reset = (0, react_1.useCallback)((initialValues = {}) => {\n // @ts-expect-error it's fine if we don't specify all the values\n setValues(initialValues);\n setErrors({});\n }, [setValues, setErrors]);\n return { handleSubmit, setValidationError, setValue, values, itemProps, focus, reset };\n}\nexports.useForm = useForm;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useAI = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst usePromise_1 = require(\"./usePromise\");\n/**\n * Stream a prompt completion.\n *\n * @example\n * ```typescript\n * import { Detail, LaunchProps } from \"@raycast/api\";\n * import { use AI } from \"@raycast/utils\";\n *\n * export default function Command(props: LaunchProps<{ arguments: { prompt: string } }>) {\n * const { isLoading, data } = useAI(props.arguments.prompt);\n *\n * return <Detail isLoading={isLoading} markdown={data} />;\n * }\n * ```\n */\nfunction useAI(prompt, options = {}) {\n const { creativity, stream, model, ...usePromiseOptions } = options;\n const [data, setData] = (0, react_1.useState)(\"\");\n const abortable = (0, react_1.useRef)();\n const { isLoading, error, revalidate } = (0, usePromise_1.usePromise)(async (prompt, creativity, shouldStream) => {\n setData(\"\");\n const stream = api_1.AI.ask(prompt, { creativity, model, signal: abortable.current?.signal });\n if (shouldStream === false) {\n setData(await stream);\n }\n else {\n stream.on(\"data\", (data) => {\n setData((x) => x + data);\n });\n await stream;\n }\n }, [prompt, creativity, stream], { ...usePromiseOptions, abortable });\n return { isLoading, data, error, revalidate };\n}\nexports.useAI = useAI;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFrecencySorting = void 0;\nconst react_1 = require(\"react\");\nconst useLatest_1 = require(\"./useLatest\");\nconst useCachedState_1 = require(\"./useCachedState\");\nconst HALF_LIFE_DAYS = 10;\nconst MS_PER_DAY = 24 * 60 * 60 * 1000;\nconst DECAY_RATE_CONSTANT = Math.log(2) / (HALF_LIFE_DAYS * MS_PER_DAY);\nconst VISIT_TYPE_POINTS = {\n Default: 100,\n Embed: 0,\n Bookmark: 140,\n};\nfunction getNewFrecency(item) {\n const now = Date.now();\n const lastVisited = item ? item.lastVisited : 0;\n const frecency = item ? item.frecency : 0;\n const visitAgeInDays = (now - lastVisited) / MS_PER_DAY;\n const currentVisitValue = VISIT_TYPE_POINTS.Default * Math.exp(-DECAY_RATE_CONSTANT * visitAgeInDays);\n const totalVisitValue = frecency + currentVisitValue;\n return {\n lastVisited: now,\n frecency: totalVisitValue,\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst defaultKey = (item) => {\n if (process.env.NODE_ENV !== \"production\" &&\n (typeof item !== \"object\" || !item || !(\"id\" in item) || typeof item.id != \"string\")) {\n throw new Error(\"Specify a key function or make sure your items have an 'id' property\");\n }\n return item.id;\n};\nfunction useFrecencySorting(data, options) {\n const keyRef = (0, useLatest_1.useLatest)(options?.key || defaultKey);\n const sortUnvisitedRef = (0, useLatest_1.useLatest)(options?.sortUnvisited);\n const [storedFrecencies, setStoredFrecencies] = (0, useCachedState_1.useCachedState)(`raycast_frecency_${options?.namespace}`, {});\n const visitItem = (0, react_1.useCallback)(async function updateFrecency(item) {\n const itemKey = keyRef.current(item);\n setStoredFrecencies((storedFrecencies) => {\n const frecency = storedFrecencies[itemKey];\n const newFrecency = getNewFrecency(frecency);\n return {\n ...storedFrecencies,\n [itemKey]: newFrecency,\n };\n });\n }, [keyRef, setStoredFrecencies]);\n const resetRanking = (0, react_1.useCallback)(async function removeFrecency(item) {\n const itemKey = keyRef.current(item);\n setStoredFrecencies((storedFrecencies) => {\n const newFrencencies = { ...storedFrecencies };\n delete newFrencencies[itemKey];\n return newFrencencies;\n });\n }, [keyRef, setStoredFrecencies]);\n const sortedData = (0, react_1.useMemo)(() => {\n if (!data) {\n return [];\n }\n return data.sort((a, b) => {\n const frecencyA = storedFrecencies[keyRef.current(a)];\n const frecencyB = storedFrecencies[keyRef.current(b)];\n // If a has a frecency, but b doesn't, a should come first\n if (frecencyA && !frecencyB) {\n return -1;\n }\n // If b has a frecency, but a doesn't, b should come first\n if (!frecencyA && frecencyB) {\n return 1;\n }\n // If both frecencies are defined,put the one with the higher frecency first\n if (frecencyA && frecencyB) {\n return frecencyB.frecency - frecencyA.frecency;\n }\n // If both frecencies are undefined, keep the original order\n return sortUnvisitedRef.current ? sortUnvisitedRef.current(a, b) : 0;\n });\n }, [storedFrecencies, data, keyRef, sortUnvisitedRef]);\n return { data: sortedData, visitItem, resetRanking };\n}\nexports.useFrecencySorting = useFrecencySorting;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.slightlyLighterColor = exports.slightlyDarkerColor = void 0;\nfunction hexToRGB(hex) {\n let r = 0;\n let g = 0;\n let b = 0;\n // 3 digits\n if (hex.length === 4) {\n r = parseInt(`${hex[1]}${hex[1]}`, 16);\n g = parseInt(`${hex[2]}${hex[2]}`, 16);\n b = parseInt(`${hex[3]}${hex[3]}`, 16);\n // 6 digits\n }\n else if (hex.length === 7) {\n r = parseInt(`${hex[1]}${hex[2]}`, 16);\n g = parseInt(`${hex[3]}${hex[4]}`, 16);\n b = parseInt(`${hex[5]}${hex[6]}`, 16);\n }\n else {\n throw new Error(`Malformed hex color: ${hex}`);\n }\n return { r, g, b };\n}\nfunction rgbToHex({ r, g, b }) {\n let rString = r.toString(16);\n let gString = g.toString(16);\n let bString = b.toString(16);\n if (rString.length === 1) {\n rString = `0${rString}`;\n }\n if (gString.length === 1) {\n gString = `0${gString}`;\n }\n if (bString.length === 1) {\n bString = `0${bString}`;\n }\n return `#${rString}${gString}${bString}`;\n}\nfunction rgbToHSL({ r, g, b }) {\n // Make r, g, and b fractions of 1\n r /= 255;\n g /= 255;\n b /= 255;\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b);\n const cmax = Math.max(r, g, b);\n const delta = cmax - cmin;\n let h = 0;\n let s = 0;\n let l = 0;\n // Calculate hue\n // No difference\n if (delta === 0) {\n h = 0;\n }\n // Red is max\n else if (cmax === r) {\n h = ((g - b) / delta) % 6;\n }\n // Green is max\n else if (cmax === g) {\n h = (b - r) / delta + 2;\n }\n // Blue is max\n else {\n h = (r - g) / delta + 4;\n }\n h = Math.round(h * 60);\n // Make negative hues positive behind 360\u00B0\n if (h < 0) {\n h += 360;\n }\n // Calculate lightness\n l = (cmax + cmin) / 2;\n // Calculate saturation\n s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1);\n l = +(l * 100).toFixed(1);\n return { h, s, l };\n}\nfunction hslToRGB({ h, s, l }) {\n // Must be fractions of 1\n s /= 100;\n l /= 100;\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = l - c / 2;\n let r = 0;\n let g = 0;\n let b = 0;\n if (h >= 0 && h < 60) {\n r = c;\n g = x;\n b = 0;\n }\n else if (h >= 60 && h < 120) {\n r = x;\n g = c;\n b = 0;\n }\n else if (h >= 120 && h < 180) {\n r = 0;\n g = c;\n b = x;\n }\n else if (h >= 180 && h < 240) {\n r = 0;\n g = x;\n b = c;\n }\n else if (h >= 240 && h < 300) {\n r = x;\n g = 0;\n b = c;\n }\n else if (h >= 300 && h < 360) {\n r = c;\n g = 0;\n b = x;\n }\n r = Math.round((r + m) * 255);\n g = Math.round((g + m) * 255);\n b = Math.round((b + m) * 255);\n return { r, g, b };\n}\nfunction hexToHSL(hex) {\n return rgbToHSL(hexToRGB(hex));\n}\nfunction hslToHex(hsl) {\n return rgbToHex(hslToRGB(hsl));\n}\nfunction clamp(value, min, max) {\n return min < max ? (value < min ? min : value > max ? max : value) : value < max ? max : value > min ? min : value;\n}\nconst offset = 12;\nfunction slightlyDarkerColor(hex) {\n const hsl = hexToHSL(hex);\n return hslToHex({\n h: hsl.h,\n s: hsl.s,\n l: clamp(hsl.l - offset, 0, 100),\n });\n}\nexports.slightlyDarkerColor = slightlyDarkerColor;\nfunction slightlyLighterColor(hex) {\n const hsl = hexToHSL(hex);\n return hslToHex({\n h: hsl.h,\n s: hsl.s,\n l: clamp(hsl.l + offset, 0, 100),\n });\n}\nexports.slightlyLighterColor = slightlyLighterColor;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAvatarIcon = void 0;\nconst color_1 = require(\"./color\");\nfunction getWholeCharAndI(str, i) {\n const code = str.charCodeAt(i);\n if (Number.isNaN(code)) {\n return [\"\", i];\n }\n if (code < 0xd800 || code > 0xdfff) {\n return [str.charAt(i), i]; // Normal character, keeping 'i' the same\n }\n // High surrogate (could change last hex to 0xDB7F to treat high private\n // surrogates as single characters)\n if (0xd800 <= code && code <= 0xdbff) {\n if (str.length <= i + 1) {\n throw new Error(\"High surrogate without following low surrogate\");\n }\n const next = str.charCodeAt(i + 1);\n if (0xdc00 > next || next > 0xdfff) {\n throw new Error(\"High surrogate without following low surrogate\");\n }\n return [str.charAt(i) + str.charAt(i + 1), i + 1];\n }\n // Low surrogate (0xDC00 <= code && code <= 0xDFFF)\n if (i === 0) {\n throw new Error(\"Low surrogate without preceding high surrogate\");\n }\n const prev = str.charCodeAt(i - 1);\n // (could change last hex to 0xDB7F to treat high private surrogates\n // as single characters)\n if (0xd800 > prev || prev > 0xdbff) {\n throw new Error(\"Low surrogate without preceding high surrogate\");\n }\n // Return the next character instead (and increment)\n return [str.charAt(i + 1), i + 1];\n}\nconst avatarColorSet = [\n \"#DC829A\",\n \"#D64854\",\n \"#D47600\",\n \"#D36CDD\",\n \"#52A9E4\",\n \"#7871E8\",\n \"#70920F\",\n \"#43B93A\",\n \"#EB6B3E\",\n \"#26B795\",\n \"#D85A9B\",\n \"#A067DC\",\n \"#BD9500\",\n \"#5385D9\", // Blue\n];\n/**\n * Icon to represent an avatar when you don't have one. The generated avatar\n * will be generated from the initials of the name and have a colorful but consistent background.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getAvatarIcon('Mathieu Dutour')} title=\"Project\" />\n * ```\n */\nfunction getAvatarIcon(name, options) {\n const words = name.trim().split(\" \");\n let initials;\n if (words.length == 1 && getWholeCharAndI(words[0], 0)[0]) {\n initials = getWholeCharAndI(words[0], 0)[0];\n }\n else if (words.length > 1) {\n const firstWordFirstLetter = getWholeCharAndI(words[0], 0)[0] || \"\";\n const lastWordFirstLetter = getWholeCharAndI(words[words.length - 1], 0)[0] ?? \"\";\n initials = firstWordFirstLetter + lastWordFirstLetter;\n }\n else {\n initials = \"\";\n }\n let backgroundColor;\n if (options?.background) {\n backgroundColor = options?.background;\n }\n else {\n let initialsCharIndex = 0;\n let [char, i] = getWholeCharAndI(initials, 0);\n while (char) {\n initialsCharIndex += char.charCodeAt(0);\n [char, i] = getWholeCharAndI(initials, i + 1);\n }\n const colorIndex = initialsCharIndex % avatarColorSet.length;\n backgroundColor = avatarColorSet[colorIndex];\n }\n const padding = 0;\n const radius = 50 - padding;\n const svg = `<svg width=\"100px\" height=\"100px\">\n ${options?.gradient !== false\n ? `<defs>\n <linearGradient id=\"Gradient\" x1=\"0.25\" x2=\"0.75\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" stop-color=\"${(0, color_1.slightlyLighterColor)(backgroundColor)}\"/>\n <stop offset=\"50%\" stop-color=\"${backgroundColor}\"/>\n <stop offset=\"100%\" stop-color=\"${(0, color_1.slightlyDarkerColor)(backgroundColor)}\"/>\n </linearGradient>\n </defs>`\n : \"\"}\n <circle cx=\"50\" cy=\"50\" r=\"${radius}\" fill=\"${options?.gradient !== false ? \"url(#Gradient)\" : backgroundColor}\" />\n ${initials\n ? `<text x=\"50\" y=\"80\" font-size=\"${radius - 1}\" font-family=\"Inter, sans-serif\" text-anchor=\"middle\" fill=\"white\">${initials.toUpperCase()}</text>`\n : \"\"}\n </svg>\n `.replaceAll(\"\\n\", \"\");\n return `data:image/svg+xml,${svg}`;\n}\nexports.getAvatarIcon = getAvatarIcon;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFavicon = void 0;\nconst api_1 = require(\"@raycast/api\");\nconst url_1 = require(\"url\");\n/**\n * Icon showing the favicon of a website.\n *\n * A favicon (favorite icon) is a tiny icon included along with a website, which is displayed in places like the browser's address bar, page tabs, and bookmarks menu.\n *\n * @param url The URL of the website to represent.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getFavicon(\"https://raycast.com\")} title=\"Raycast Website\" />\n * ```\n */\nfunction getFavicon(url, options) {\n try {\n const urlObj = typeof url === \"string\" ? new url_1.URL(url) : url;\n const hostname = urlObj.hostname;\n return {\n source: `https://www.google.com/s2/favicons?sz=${options?.size ?? 64}&domain=${hostname}`,\n fallback: options?.fallback ?? api_1.Icon.Link,\n mask: options?.mask,\n };\n }\n catch (e) {\n console.error(e);\n return api_1.Icon.Link;\n }\n}\nexports.getFavicon = getFavicon;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getProgressIcon = void 0;\nconst api_1 = require(\"@raycast/api\");\nfunction polarToCartesian(centerX, centerY, radius, angleInDegrees) {\n const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180.0;\n return {\n x: centerX + radius * Math.cos(angleInRadians),\n y: centerY + radius * Math.sin(angleInRadians),\n };\n}\nfunction describeArc(x, y, radius, startAngle, endAngle) {\n const start = polarToCartesian(x, y, radius, endAngle);\n const end = polarToCartesian(x, y, radius, startAngle);\n const largeArcFlag = endAngle - startAngle <= 180 ? \"0\" : \"1\";\n const d = [\"M\", start.x, start.y, \"A\", radius, radius, 0, largeArcFlag, 0, end.x, end.y].join(\" \");\n return d;\n}\n/**\n * Icon to represent the progress of _something_.\n *\n * @param progress Number between 0 and 1.\n * @param color Hex color (default `\"#FF6363\"`) or Color.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getProgressIcon(0.1)} title=\"Project\" />\n * ```\n */\nfunction getProgressIcon(progress, color = api_1.Color.Red, options) {\n const background = options?.background || (api_1.environment.appearance === \"light\" ? \"black\" : \"white\");\n const backgroundOpacity = options?.backgroundOpacity || 0.1;\n const stroke = 10;\n const padding = 5;\n const radius = 50 - padding - stroke / 2;\n const svg = `<svg width=\"100px\" height=\"100px\">\n <circle cx=\"50\" cy=\"50\" r=\"${radius}\" stroke-width=\"${stroke}\" stroke=\"${progress < 1 ? background : color}\" opacity=\"${progress < 1 ? backgroundOpacity : \"1\"}\" fill=\"none\" />\n ${progress > 0 && progress < 1\n ? `<path d=\"${describeArc(50, 50, radius, 0, progress * 360)}\" stroke=\"${color}\" stroke-width=\"${stroke}\" fill=\"none\" />`\n : \"\"}\n </svg>\n `.replaceAll(\"\\n\", \"\");\n return `data:image/svg+xml,${svg}`;\n}\nexports.getProgressIcon = getProgressIcon;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./avatar\"), exports);\n__exportStar(require(\"./favicon\"), exports);\n__exportStar(require(\"./progress\"), exports);\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.runAppleScript = void 0;\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst exec_utils_1 = require(\"./exec-utils\");\nasync function runAppleScript(script, optionsOrArgs, options) {\n const { humanReadableOutput, language, timeout, ...execOptions } = Array.isArray(optionsOrArgs)\n ? options || {}\n : optionsOrArgs || {};\n const outputArguments = humanReadableOutput !== false ? [] : [\"-ss\"];\n if (language === \"JavaScript\") {\n outputArguments.push(\"-l\", \"JavaScript\");\n }\n if (Array.isArray(optionsOrArgs)) {\n outputArguments.push(\"-\", ...optionsOrArgs);\n }\n const spawned = node_child_process_1.default.spawn(\"osascript\", outputArguments, {\n ...execOptions,\n env: { PATH: \"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\" },\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned, { timeout: timeout || 10000 });\n spawned.stdin.end(script);\n const [{ error, exitCode, signal, timedOut }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf8\" }, spawnedPromise);\n const stdout = (0, exec_utils_1.handleOutput)({ stripFinalNewline: true }, stdoutResult);\n const stderr = (0, exec_utils_1.handleOutput)({ stripFinalNewline: true }, stderrResult);\n return (0, exec_utils_1.defaultParsing)({\n stdout,\n stderr,\n error,\n exitCode,\n signal,\n timedOut,\n command: \"osascript\",\n options,\n parentError: new Error(),\n });\n}\nexports.runAppleScript = runAppleScript;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./usePromise\"), exports);\n__exportStar(require(\"./useCachedState\"), exports);\n__exportStar(require(\"./useCachedPromise\"), exports);\n__exportStar(require(\"./useFetch\"), exports);\n__exportStar(require(\"./useExec\"), exports);\n__exportStar(require(\"./useSQL\"), exports);\n__exportStar(require(\"./useForm\"), exports);\n__exportStar(require(\"./useAI\"), exports);\n__exportStar(require(\"./useFrecencySorting\"), exports);\n__exportStar(require(\"./icon\"), exports);\n__exportStar(require(\"./run-applescript\"), exports);\n", "module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size')\n}\n", "'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseExceededMaxSizeError)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\n\nconst [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v))\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n return url\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.')\n }\n\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n if (!(url instanceof URL)) {\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substr(1, idx - 1)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substr(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (!isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\nfunction parseHeaders (headers, obj = {}) {\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1]\n } else {\n obj[key] = headers[i + 1].toString('utf8')\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString('utf8'))\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if ('content-length' in obj && 'content-disposition' in obj) {\n obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1')\n }\n\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n const ret = []\n let hasContentLength = false\n let contentDispositionIdx = -1\n\n for (let n = 0; n < headers.length; n += 2) {\n const key = headers[n + 0].toString()\n const val = headers[n + 1].toString('utf8')\n\n if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n ret.push(key, val)\n hasContentLength = true\n } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n contentDispositionIdx = ret.push(key, val) - 1\n } else {\n ret.push(key, val)\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if (hasContentLength && contentDispositionIdx !== -1) {\n ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1')\n }\n\n return ret\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n // https://github.com/whatwg/streams/pull/1083\n return ReadableStream.from(iterable)\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.append === 'function' &&\n typeof object.delete === 'function' &&\n typeof object.get === 'function' &&\n typeof object.getAll === 'function' &&\n typeof object.has === 'function' &&\n typeof object.set === 'function' &&\n object[Symbol.toStringTag] === 'FormData'\n )\n}\n\nfunction throwIfAborted (signal) {\n if (!signal) { return }\n if (typeof signal.throwIfAborted === 'function') {\n signal.throwIfAborted()\n } else {\n if (signal.aborted) {\n // DOMException not available < v17.0.0\n const err = new Error('The operation was aborted')\n err.name = 'AbortError'\n throw err\n }\n }\n}\n\nlet events\nfunction addAbortListener (signal, listener) {\n if (typeof Symbol.dispose === 'symbol') {\n if (!events) {\n events = require('events')\n }\n if (typeof events.addAbortListener === 'function' && 'aborted' in signal) {\n return events.addAbortListener(signal, listener)\n }\n }\n if ('addEventListener' in signal) {\n signal.addEventListener('abort', listener, { once: true })\n return () => signal.removeEventListener('abort', listener)\n }\n signal.addListener('abort', listener)\n return () => signal.removeListener('abort', listener)\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed\n\n/**\n * @param {string} val\n */\nfunction toUSVString (val) {\n if (hasToWellFormed) {\n return `${val}`.toWellFormed()\n } else if (nodeUtil.toUSVString) {\n return nodeUtil.toUSVString(val)\n }\n\n return `${val}`\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString,\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL,\n throwIfAborted,\n addAbortListener,\n nodeMajor,\n nodeMinor,\n nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13)\n}\n", "'use strict'\n\nlet fastNow = Date.now()\nlet fastNowTimeout\n\nconst fastTimers = []\n\nfunction onTimeout () {\n fastNow = Date.now()\n\n let len = fastTimers.length\n let idx = 0\n while (idx < len) {\n const timer = fastTimers[idx]\n\n if (timer.state === 0) {\n timer.state = fastNow + timer.delay\n } else if (timer.state > 0 && fastNow >= timer.state) {\n timer.state = -1\n timer.callback(timer.opaque)\n }\n\n if (timer.state === -1) {\n timer.state = -2\n if (idx !== len - 1) {\n fastTimers[idx] = fastTimers.pop()\n } else {\n fastTimers.pop()\n }\n len -= 1\n } else {\n idx += 1\n }\n }\n\n if (fastTimers.length > 0) {\n refreshTimeout()\n }\n}\n\nfunction refreshTimeout () {\n if (fastNowTimeout && fastNowTimeout.refresh) {\n fastNowTimeout.refresh()\n } else {\n clearTimeout(fastNowTimeout)\n fastNowTimeout = setTimeout(onTimeout, 1e3)\n if (fastNowTimeout.unref) {\n fastNowTimeout.unref()\n }\n }\n}\n\nclass Timeout {\n constructor (callback, delay, opaque) {\n this.callback = callback\n this.delay = delay\n this.opaque = opaque\n\n // -2 not in timer list\n // -1 in timer list but inactive\n // 0 in timer list waiting for time\n // > 0 in timer list waiting for time to expire\n this.state = -2\n\n this.refresh()\n }\n\n refresh () {\n if (this.state === -2) {\n fastTimers.push(this)\n if (!fastNowTimeout || fastTimers.length === 1) {\n refreshTimeout()\n }\n }\n\n this.state = 0\n }\n\n clear () {\n this.state = -1\n }\n}\n\nmodule.exports = {\n setTimeout (callback, delay, opaque) {\n return delay < 1e3\n ? setTimeout(callback, delay, opaque)\n : new Timeout(callback, delay, opaque)\n },\n clearTimeout (timeout) {\n if (timeout instanceof Timeout) {\n timeout.clear()\n } else {\n clearTimeout(timeout)\n }\n }\n}\n", "'use strict';\n\nfunction parseContentType(str) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n // Parse type\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 47/* '/' */ || i === 0)\n return;\n break;\n }\n }\n // Check for type without subtype\n if (i === str.length)\n return;\n\n const type = str.slice(0, i).toLowerCase();\n\n // Parse subtype\n const subtypeStart = ++i;\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n if (parseContentTypeParams(str, i, params) === undefined)\n return;\n break;\n }\n }\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n const subtype = str.slice(subtypeStart, i).toLowerCase();\n\n return { type, subtype, params };\n}\n\nfunction parseContentTypeParams(str, i, params) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 61/* '=' */)\n return;\n break;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n name = str.slice(nameStart, i);\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction parseDisposition(str, defDecoder) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (parseDispositionParams(str, i, params, defDecoder) === undefined)\n return;\n break;\n }\n }\n\n const type = str.slice(0, i).toLowerCase();\n\n return { type, params };\n}\n\nfunction parseDispositionParams(str, i, params, defDecoder) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code === 61/* '=' */)\n break;\n return;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n let charset;\n //~ let lang;\n name = str.slice(nameStart, i);\n if (name.charCodeAt(name.length - 1) === 42/* '*' */) {\n // Extended value\n\n const charsetStart = ++i;\n // Parse charset name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (CHARSET[code] !== 1) {\n if (code !== 39/* '\\'' */)\n return;\n break;\n }\n }\n\n // Incomplete charset (malformed)\n if (i === str.length)\n return;\n\n charset = str.slice(charsetStart, i);\n ++i; // Skip over the '\\''\n\n //~ const langStart = ++i;\n // Parse language name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 39/* '\\'' */)\n break;\n }\n\n // Incomplete language (malformed)\n if (i === str.length)\n return;\n\n //~ lang = str.slice(langStart, i);\n ++i; // Skip over the '\\''\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n valueStart = i;\n\n let encode = 0;\n // Parse value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (EXTENDED_VALUE[code] !== 1) {\n if (code === 37/* '%' */) {\n let hexUpper;\n let hexLower;\n if (i + 2 < str.length\n && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1\n && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) {\n const byteVal = (hexUpper << 4) + hexLower;\n value += str.slice(valueStart, i);\n value += String.fromCharCode(byteVal);\n i += 2;\n valueStart = i + 1;\n if (byteVal >= 128)\n encode = 2;\n else if (encode === 0)\n encode = 1;\n continue;\n }\n // '%' disallowed in non-percent encoded contexts (malformed)\n return;\n }\n break;\n }\n }\n\n value += str.slice(valueStart, i);\n value = convertToUTF8(value, charset, encode);\n if (value === undefined)\n return;\n } else {\n // Non-extended value\n\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n value = defDecoder(value, 2);\n if (value === undefined)\n return;\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction getDecoder(charset) {\n let lc;\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8;\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1;\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le;\n case 'base64':\n return decoders.base64;\n default:\n if (lc === undefined) {\n lc = true;\n charset = charset.toLowerCase();\n continue;\n }\n return decoders.other.bind(charset);\n }\n }\n}\n\nconst decoders = {\n utf8: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string') {\n // If `data` never had any percent-encoded bytes or never had any that\n // were outside of the ASCII range, then we can safely just return the\n // input since UTF-8 is ASCII compatible\n if (hint < 2)\n return data;\n\n data = Buffer.from(data, 'latin1');\n }\n return data.utf8Slice(0, data.length);\n },\n\n latin1: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n return data;\n return data.latin1Slice(0, data.length);\n },\n\n utf16le: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.ucs2Slice(0, data.length);\n },\n\n base64: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.base64Slice(0, data.length);\n },\n\n other: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n try {\n const decoder = new TextDecoder(this);\n return decoder.decode(data);\n } catch {}\n },\n};\n\nfunction convertToUTF8(data, charset, hint) {\n const decode = getDecoder(charset);\n if (decode)\n return decode(data, hint);\n}\n\nfunction basename(path) {\n if (typeof path !== 'string')\n return '';\n for (let i = path.length - 1; i >= 0; --i) {\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1);\n return (path === '..' || path === '.' ? '' : path);\n }\n }\n return (path === '..' || path === '.' ? '' : path);\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst QDTEXT = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nconst CHARSET = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst EXTENDED_VALUE = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n};\n", "'use strict';\n/*\n Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n*/\nfunction memcmp(buf1, pos1, buf2, pos2, num) {\n for (let i = 0; i < num; ++i) {\n if (buf1[pos1 + i] !== buf2[pos2 + i])\n return false;\n }\n return true;\n}\n\nclass SBMH {\n constructor(needle, cb) {\n if (typeof cb !== 'function')\n throw new Error('Missing match callback');\n\n if (typeof needle === 'string')\n needle = Buffer.from(needle);\n else if (!Buffer.isBuffer(needle))\n throw new Error(`Expected Buffer for needle, got ${typeof needle}`);\n\n const needleLen = needle.length;\n\n this.maxMatches = Infinity;\n this.matches = 0;\n\n this._cb = cb;\n this._lookbehindSize = 0;\n this._needle = needle;\n this._bufPos = 0;\n\n this._lookbehind = Buffer.allocUnsafe(needleLen);\n\n // Initialize occurrence table.\n this._occ = [\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen\n ];\n\n // Populate occurrence table with analysis of the needle, ignoring the last\n // letter.\n if (needleLen > 1) {\n for (let i = 0; i < needleLen - 1; ++i)\n this._occ[needle[i]] = needleLen - 1 - i;\n }\n }\n\n reset() {\n this.matches = 0;\n this._lookbehindSize = 0;\n this._bufPos = 0;\n }\n\n push(chunk, pos) {\n let result;\n if (!Buffer.isBuffer(chunk))\n chunk = Buffer.from(chunk, 'latin1');\n const chunkLen = chunk.length;\n this._bufPos = pos || 0;\n while (result !== chunkLen && this.matches < this.maxMatches)\n result = feed(this, chunk);\n return result;\n }\n\n destroy() {\n const lbSize = this._lookbehindSize;\n if (lbSize)\n this._cb(false, this._lookbehind, 0, lbSize, false);\n this.reset();\n }\n}\n\nfunction feed(self, data) {\n const len = data.length;\n const needle = self._needle;\n const needleLen = needle.length;\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehindSize - 2]\n let pos = -self._lookbehindSize;\n const lastNeedleCharPos = needleLen - 1;\n const lastNeedleChar = needle[lastNeedleCharPos];\n const end = len - needleLen;\n const occ = self._occ;\n const lookbehind = self._lookbehind;\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= end) {\n const nextPos = pos + lastNeedleCharPos;\n const ch = (nextPos < 0\n ? lookbehind[self._lookbehindSize + nextPos]\n : data[nextPos]);\n\n if (ch === lastNeedleChar\n && matchNeedle(self, data, pos, lastNeedleCharPos)) {\n self._lookbehindSize = 0;\n ++self.matches;\n if (pos > -self._lookbehindSize)\n self._cb(true, lookbehind, 0, self._lookbehindSize + pos, false);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // No match.\n\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !matchNeedle(self, data, pos, len - pos))\n ++pos;\n\n if (pos < 0) {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = self._lookbehindSize + pos;\n\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n self._cb(false, lookbehind, 0, bytesToCutOff, false);\n }\n\n self._lookbehindSize -= bytesToCutOff;\n lookbehind.copy(lookbehind, 0, bytesToCutOff, self._lookbehindSize);\n lookbehind.set(data, self._lookbehindSize);\n self._lookbehindSize += len;\n\n self._bufPos = len;\n return len;\n }\n\n // Discard lookbehind buffer.\n self._cb(false, lookbehind, 0, self._lookbehindSize, false);\n self._lookbehindSize = 0;\n }\n\n pos += self._bufPos;\n\n const firstNeedleChar = needle[0];\n\n // Lookbehind buffer is now empty. Perform Boyer-Moore-Horspool\n // search with optimized character lookup code that only considers\n // the current round's haystack data.\n while (pos <= end) {\n const ch = data[pos + lastNeedleCharPos];\n\n if (ch === lastNeedleChar\n && data[pos] === firstNeedleChar\n && memcmp(needle, 0, data, pos, lastNeedleCharPos)) {\n ++self.matches;\n if (pos > 0)\n self._cb(true, data, self._bufPos, pos, true);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (pos < len) {\n if (data[pos] !== firstNeedleChar\n || !memcmp(data, pos, needle, 0, len - pos)) {\n ++pos;\n continue;\n }\n data.copy(lookbehind, 0, pos, len);\n self._lookbehindSize = len - pos;\n break;\n }\n\n // Everything until `pos` is guaranteed not to contain needle data.\n if (pos > 0)\n self._cb(false, data, self._bufPos, pos < len ? pos : len, true);\n\n self._bufPos = len;\n return len;\n}\n\nfunction matchNeedle(self, data, pos, len) {\n const lb = self._lookbehind;\n const lbSize = self._lookbehindSize;\n const needle = self._needle;\n\n for (let i = 0; i < len; ++i, ++pos) {\n const ch = (pos < 0 ? lb[lbSize + pos] : data[pos]);\n if (ch !== needle[i])\n return false;\n }\n return true;\n}\n\nmodule.exports = SBMH;\n", "'use strict';\n\nconst { Readable, Writable } = require('stream');\n\nconst StreamSearch = require('streamsearch');\n\nconst {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n} = require('../utils.js');\n\nconst BUF_CRLF = Buffer.from('\\r\\n');\nconst BUF_CR = Buffer.from('\\r');\nconst BUF_DASH = Buffer.from('-');\n\nfunction noop() {}\n\nconst MAX_HEADER_PAIRS = 2000; // From node\nconst MAX_HEADER_SIZE = 16 * 1024; // From node (its default value)\n\nconst HPARSER_NAME = 0;\nconst HPARSER_PRE_OWS = 1;\nconst HPARSER_VALUE = 2;\nclass HeaderParser {\n constructor(cb) {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n this.cb = cb;\n }\n\n reset() {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n }\n\n push(chunk, pos, end) {\n let start = pos;\n while (pos < end) {\n switch (this.state) {\n case HPARSER_NAME: {\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (TOKEN[code] !== 1) {\n if (code !== 58/* ':' */)\n return -1;\n this.name += chunk.latin1Slice(start, pos);\n if (this.name.length === 0)\n return -1;\n ++pos;\n done = true;\n this.state = HPARSER_PRE_OWS;\n break;\n }\n }\n if (!done) {\n this.name += chunk.latin1Slice(start, pos);\n break;\n }\n // FALLTHROUGH\n }\n case HPARSER_PRE_OWS: {\n // Skip optional whitespace\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */) {\n start = pos;\n done = true;\n this.state = HPARSER_VALUE;\n break;\n }\n }\n if (!done)\n break;\n // FALLTHROUGH\n }\n case HPARSER_VALUE:\n switch (this.crlf) {\n case 0: // Nothing yet\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (FIELD_VCHAR[code] !== 1) {\n if (code !== 13/* '\\r' */)\n return -1;\n ++this.crlf;\n break;\n }\n }\n this.value += chunk.latin1Slice(start, pos++);\n break;\n case 1: // Received CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n ++this.crlf;\n break;\n case 2: { // Received CR LF\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code === 32/* ' ' */ || code === 9/* '\\t' */) {\n // Folded value\n start = pos;\n this.crlf = 0;\n } else {\n if (++this.pairCount < MAX_HEADER_PAIRS) {\n this.name = this.name.toLowerCase();\n if (this.header[this.name] === undefined)\n this.header[this.name] = [this.value];\n else\n this.header[this.name].push(this.value);\n }\n if (code === 13/* '\\r' */) {\n ++this.crlf;\n ++pos;\n } else {\n // Assume start of next header field name\n start = pos;\n this.crlf = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n }\n }\n break;\n }\n case 3: { // Received CR LF CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n // End of header\n const header = this.header;\n this.reset();\n this.cb(header);\n return pos;\n }\n }\n break;\n }\n }\n\n return pos;\n }\n}\n\nclass FileStream extends Readable {\n constructor(opts, owner) {\n super(opts);\n this.truncated = false;\n this._readcb = null;\n this.once('end', () => {\n // We need to make sure that we call any outstanding _writecb() that is\n // associated with this file so that processing of the rest of the form\n // can continue. This may not happen if the file stream ends right after\n // backpressure kicks in, so we force it here.\n this._read();\n if (--owner._fileEndsLeft === 0 && owner._finalcb) {\n const cb = owner._finalcb;\n owner._finalcb = null;\n // Make sure other 'end' event handlers get a chance to be executed\n // before busboy's 'finish' event is emitted\n process.nextTick(cb);\n }\n });\n }\n _read(n) {\n const cb = this._readcb;\n if (cb) {\n this._readcb = null;\n cb();\n }\n }\n}\n\nconst ignoreData = {\n push: (chunk, pos) => {},\n destroy: () => {},\n};\n\nfunction callAndUnsetCb(self, err) {\n const cb = self._writecb;\n self._writecb = null;\n if (err)\n self.destroy(err);\n else if (cb)\n cb();\n}\n\nfunction nullDecoder(val, hint) {\n return val;\n}\n\nclass Multipart extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n if (!cfg.conType.params || typeof cfg.conType.params.boundary !== 'string')\n throw new Error('Multipart: Boundary not found');\n\n const boundary = cfg.conType.params.boundary;\n const paramDecoder = (typeof cfg.defParamCharset === 'string'\n && cfg.defParamCharset\n ? getDecoder(cfg.defParamCharset)\n : nullDecoder);\n const defCharset = (cfg.defCharset || 'utf8');\n const preservePath = cfg.preservePath;\n const fileOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.fileHwm === 'number'\n ? cfg.fileHwm\n : undefined),\n };\n\n const limits = cfg.limits;\n const fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n const fileSizeLimit = (limits && typeof limits.fileSize === 'number'\n ? limits.fileSize\n : Infinity);\n const filesLimit = (limits && typeof limits.files === 'number'\n ? limits.files\n : Infinity);\n const fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n const partsLimit = (limits && typeof limits.parts === 'number'\n ? limits.parts\n : Infinity);\n\n let parts = -1; // Account for initial boundary\n let fields = 0;\n let files = 0;\n let skipPart = false;\n\n this._fileEndsLeft = 0;\n this._fileStream = undefined;\n this._complete = false;\n let fileSize = 0;\n\n let field;\n let fieldSize = 0;\n let partCharset;\n let partEncoding;\n let partType;\n let partName;\n let partTruncated = false;\n\n let hitFilesLimit = false;\n let hitFieldsLimit = false;\n\n this._hparser = null;\n const hparser = new HeaderParser((header) => {\n this._hparser = null;\n skipPart = false;\n\n partType = 'text/plain';\n partCharset = defCharset;\n partEncoding = '7bit';\n partName = undefined;\n partTruncated = false;\n\n let filename;\n if (!header['content-disposition']) {\n skipPart = true;\n return;\n }\n\n const disp = parseDisposition(header['content-disposition'][0],\n paramDecoder);\n if (!disp || disp.type !== 'form-data') {\n skipPart = true;\n return;\n }\n\n if (disp.params) {\n if (disp.params.name)\n partName = disp.params.name;\n\n if (disp.params['filename*'])\n filename = disp.params['filename*'];\n else if (disp.params.filename)\n filename = disp.params.filename;\n\n if (filename !== undefined && !preservePath)\n filename = basename(filename);\n }\n\n if (header['content-type']) {\n const conType = parseContentType(header['content-type'][0]);\n if (conType) {\n partType = `${conType.type}/${conType.subtype}`;\n if (conType.params && typeof conType.params.charset === 'string')\n partCharset = conType.params.charset.toLowerCase();\n }\n }\n\n if (header['content-transfer-encoding'])\n partEncoding = header['content-transfer-encoding'][0].toLowerCase();\n\n if (partType === 'application/octet-stream' || filename !== undefined) {\n // File\n\n if (files === filesLimit) {\n if (!hitFilesLimit) {\n hitFilesLimit = true;\n this.emit('filesLimit');\n }\n skipPart = true;\n return;\n }\n ++files;\n\n if (this.listenerCount('file') === 0) {\n skipPart = true;\n return;\n }\n\n fileSize = 0;\n this._fileStream = new FileStream(fileOpts, this);\n ++this._fileEndsLeft;\n this.emit(\n 'file',\n partName,\n this._fileStream,\n { filename,\n encoding: partEncoding,\n mimeType: partType }\n );\n } else {\n // Non-file\n\n if (fields === fieldsLimit) {\n if (!hitFieldsLimit) {\n hitFieldsLimit = true;\n this.emit('fieldsLimit');\n }\n skipPart = true;\n return;\n }\n ++fields;\n\n if (this.listenerCount('field') === 0) {\n skipPart = true;\n return;\n }\n\n field = [];\n fieldSize = 0;\n }\n });\n\n let matchPostBoundary = 0;\n const ssCb = (isMatch, data, start, end, isDataSafe) => {\nretrydata:\n while (data) {\n if (this._hparser !== null) {\n const ret = this._hparser.push(data, start, end);\n if (ret === -1) {\n this._hparser = null;\n hparser.reset();\n this.emit('error', new Error('Malformed part header'));\n break;\n }\n start = ret;\n }\n\n if (start === end)\n break;\n\n if (matchPostBoundary !== 0) {\n if (matchPostBoundary === 1) {\n switch (data[start]) {\n case 45: // '-'\n // Try matching '--' after boundary\n matchPostBoundary = 2;\n ++start;\n break;\n case 13: // '\\r'\n // Try matching CR LF before header\n matchPostBoundary = 3;\n ++start;\n break;\n default:\n matchPostBoundary = 0;\n }\n if (start === end)\n return;\n }\n\n if (matchPostBoundary === 2) {\n matchPostBoundary = 0;\n if (data[start] === 45/* '-' */) {\n // End of multipart data\n this._complete = true;\n this._bparser = ignoreData;\n return;\n }\n // We saw something other than '-', so put the dash we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_DASH, 0, 1, false);\n this._writecb = writecb;\n } else if (matchPostBoundary === 3) {\n matchPostBoundary = 0;\n if (data[start] === 10/* '\\n' */) {\n ++start;\n if (parts >= partsLimit)\n break;\n // Prepare the header parser\n this._hparser = hparser;\n if (start === end)\n break;\n // Process the remaining data as a header\n continue retrydata;\n } else {\n // We saw something other than LF, so put the CR we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_CR, 0, 1, false);\n this._writecb = writecb;\n }\n }\n }\n\n if (!skipPart) {\n if (this._fileStream) {\n let chunk;\n const actualLen = Math.min(end - start, fileSizeLimit - fileSize);\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fileSize += chunk.length;\n if (fileSize === fileSizeLimit) {\n if (chunk.length > 0)\n this._fileStream.push(chunk);\n this._fileStream.emit('limit');\n this._fileStream.truncated = true;\n skipPart = true;\n } else if (!this._fileStream.push(chunk)) {\n if (this._writecb)\n this._fileStream._readcb = this._writecb;\n this._writecb = null;\n }\n } else if (field !== undefined) {\n let chunk;\n const actualLen = Math.min(\n end - start,\n fieldSizeLimit - fieldSize\n );\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fieldSize += actualLen;\n field.push(chunk);\n if (fieldSize === fieldSizeLimit) {\n skipPart = true;\n partTruncated = true;\n }\n }\n }\n\n break;\n }\n\n if (isMatch) {\n matchPostBoundary = 1;\n\n if (this._fileStream) {\n // End the active file stream if the previous part was a file\n this._fileStream.push(null);\n this._fileStream = null;\n } else if (field !== undefined) {\n let data;\n switch (field.length) {\n case 0:\n data = '';\n break;\n case 1:\n data = convertToUTF8(field[0], partCharset, 0);\n break;\n default:\n data = convertToUTF8(\n Buffer.concat(field, fieldSize),\n partCharset,\n 0\n );\n }\n field = undefined;\n fieldSize = 0;\n this.emit(\n 'field',\n partName,\n data,\n { nameTruncated: false,\n valueTruncated: partTruncated,\n encoding: partEncoding,\n mimeType: partType }\n );\n }\n\n if (++parts === partsLimit)\n this.emit('partsLimit');\n }\n };\n this._bparser = new StreamSearch(`\\r\\n--${boundary}`, ssCb);\n\n this._writecb = null;\n this._finalcb = null;\n\n // Just in case there is no preamble\n this.write(BUF_CRLF);\n }\n\n static detect(conType) {\n return (conType.type === 'multipart' && conType.subtype === 'form-data');\n }\n\n _write(chunk, enc, cb) {\n this._writecb = cb;\n this._bparser.push(chunk, 0);\n if (this._writecb)\n callAndUnsetCb(this);\n }\n\n _destroy(err, cb) {\n this._hparser = null;\n this._bparser = ignoreData;\n if (!err)\n err = checkEndState(this);\n const fileStream = this._fileStream;\n if (fileStream) {\n this._fileStream = null;\n fileStream.destroy(err);\n }\n cb(err);\n }\n\n _final(cb) {\n this._bparser.destroy();\n if (!this._complete)\n return cb(new Error('Unexpected end of form'));\n if (this._fileEndsLeft)\n this._finalcb = finalcb.bind(null, this, cb);\n else\n finalcb(this, cb);\n }\n}\n\nfunction finalcb(self, cb, err) {\n if (err)\n return cb(err);\n err = checkEndState(self);\n cb(err);\n}\n\nfunction checkEndState(self) {\n if (self._hparser)\n return new Error('Malformed part header');\n const fileStream = self._fileStream;\n if (fileStream) {\n self._fileStream = null;\n fileStream.destroy(new Error('Unexpected end of file'));\n }\n if (!self._complete)\n return new Error('Unexpected end of form');\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst FIELD_VCHAR = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nmodule.exports = Multipart;\n", "'use strict';\n\nconst { Writable } = require('stream');\n\nconst { getDecoder } = require('../utils.js');\n\nclass URLEncoded extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n let charset = (cfg.defCharset || 'utf8');\n if (cfg.conType.params && typeof cfg.conType.params.charset === 'string')\n charset = cfg.conType.params.charset;\n\n this.charset = charset;\n\n const limits = cfg.limits;\n this.fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n this.fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n this.fieldNameSizeLimit = (\n limits && typeof limits.fieldNameSize === 'number'\n ? limits.fieldNameSize\n : 100\n );\n\n this._inKey = true;\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n this._fields = 0;\n this._key = '';\n this._val = '';\n this._byte = -2;\n this._lastPos = 0;\n this._encode = 0;\n this._decoder = getDecoder(charset);\n }\n\n static detect(conType) {\n return (conType.type === 'application'\n && conType.subtype === 'x-www-form-urlencoded');\n }\n\n _write(chunk, enc, cb) {\n if (this._fields >= this.fieldsLimit)\n return cb();\n\n let i = 0;\n const len = chunk.length;\n this._lastPos = 0;\n\n // Check if we last ended mid-percent-encoded byte\n if (this._byte !== -2) {\n i = readPctEnc(this, chunk, i, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n if (this._inKey)\n ++this._bytesKey;\n else\n ++this._bytesVal;\n }\n\nmain:\n while (i < len) {\n if (this._inKey) {\n // Parsing key\n\n i = skipKeyBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 61: // '='\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n this._inKey = false;\n continue main;\n case 38: // '&'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0) {\n this.emit(\n 'field',\n this._key,\n '',\n { nameTruncated: this._keyTrunc,\n valueTruncated: false,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue;\n case 43: // '+'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._key += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n } else {\n // Parsing value\n\n i = skipValBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 38: // '&'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._inKey = true;\n this._val = this._decoder(this._val, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0 || this._bytesVal > 0) {\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue main;\n case 43: // '+'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._val += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n }\n }\n\n cb();\n }\n\n _final(cb) {\n if (this._byte !== -2)\n return cb(new Error('Malformed urlencoded form'));\n if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) {\n if (this._inKey)\n this._key = this._decoder(this._key, this._encode);\n else\n this._val = this._decoder(this._val, this._encode);\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n cb();\n }\n}\n\nfunction readPctEnc(self, chunk, pos, len) {\n if (pos >= len)\n return len;\n\n if (self._byte === -1) {\n // We saw a '%' but no hex characters yet\n const hexUpper = HEX_VALUES[chunk[pos++]];\n if (hexUpper === -1)\n return -1;\n\n if (hexUpper >= 8)\n self._encode = 2; // Indicate high bits detected\n\n if (pos < len) {\n // Both hex characters are in this chunk\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((hexUpper << 4) + hexLower);\n else\n self._val += String.fromCharCode((hexUpper << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n } else {\n // Only one hex character was available in this chunk\n self._byte = hexUpper;\n }\n } else {\n // We saw only one hex character so far\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((self._byte << 4) + hexLower);\n else\n self._val += String.fromCharCode((self._byte << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipKeyBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesKey > self.fieldNameSizeLimit) {\n if (!self._keyTrunc) {\n if (self._lastPos < pos)\n self._key += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._keyTrunc = true;\n for (; pos < len; ++pos) {\n const code = chunk[pos];\n if (code === 61/* '=' */ || code === 38/* '&' */)\n break;\n ++self._bytesKey;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipValBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesVal > self.fieldSizeLimit) {\n if (!self._valTrunc) {\n if (self._lastPos < pos)\n self._val += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._valTrunc = true;\n for (; pos < len; ++pos) {\n if (chunk[pos] === 38/* '&' */)\n break;\n ++self._bytesVal;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = URLEncoded;\n", "'use strict';\n\nconst { parseContentType } = require('./utils.js');\n\nfunction getInstance(cfg) {\n const headers = cfg.headers;\n const conType = parseContentType(headers['content-type']);\n if (!conType)\n throw new Error('Malformed content type');\n\n for (const type of TYPES) {\n const matched = type.detect(conType);\n if (!matched)\n continue;\n\n const instanceCfg = {\n limits: cfg.limits,\n headers,\n conType,\n highWaterMark: undefined,\n fileHwm: undefined,\n defCharset: undefined,\n defParamCharset: undefined,\n preservePath: false,\n };\n if (cfg.highWaterMark)\n instanceCfg.highWaterMark = cfg.highWaterMark;\n if (cfg.fileHwm)\n instanceCfg.fileHwm = cfg.fileHwm;\n instanceCfg.defCharset = cfg.defCharset;\n instanceCfg.defParamCharset = cfg.defParamCharset;\n instanceCfg.preservePath = cfg.preservePath;\n return new type(instanceCfg);\n }\n\n throw new Error(`Unsupported content type: ${headers['content-type']}`);\n}\n\n// Note: types are explicitly listed here for easier bundling\n// See: https://github.com/mscdex/busboy/issues/121\nconst TYPES = [\n require('./types/multipart'),\n require('./types/urlencoded'),\n].filter(function(typemod) { return typeof typemod.detect === 'function'; });\n\nmodule.exports = (cfg) => {\n if (typeof cfg !== 'object' || cfg === null)\n cfg = {};\n\n if (typeof cfg.headers !== 'object'\n || cfg.headers === null\n || typeof cfg.headers['content-type'] !== 'string') {\n throw new Error('Missing Content-Type');\n }\n\n return getInstance(cfg);\n};\n", "'use strict'\n\nconst { MessageChannel, receiveMessageOnPort } = require('worker_threads')\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\n// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\n// https://fetch.spec.whatwg.org/#request-body-header-name\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type',\n // See https://github.com/nodejs/undici/issues/2021\n // 'Content-Length' is a forbidden header name, which is typically\n // removed in the Headers implementation. However, undici doesn't\n // filter out headers, so we add it here.\n 'content-length'\n]\n\n// https://fetch.spec.whatwg.org/#enumdef-requestduplex\nconst requestDuplex = [\n 'half'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nlet channel\n\n/** @type {globalThis['structuredClone']} */\nconst structuredClone =\n globalThis.structuredClone ??\n // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n // structuredClone was added in v17.0.0, but fetch supports v16.8\n function structuredClone (value, options = undefined) {\n if (arguments.length === 0) {\n throw new TypeError('missing argument')\n }\n\n if (!channel) {\n channel = new MessageChannel()\n }\n channel.port1.unref()\n channel.port2.unref()\n channel.port1.postMessage(value, options?.transfer)\n return receiveMessageOnPort(channel.port2).message\n }\n\nmodule.exports = {\n DOMException,\n structuredClone,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods,\n badPorts,\n requestDuplex\n}\n", "'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (\n newOrigin !== undefined &&\n typeof newOrigin !== 'string' &&\n !(newOrigin instanceof URL)\n ) {\n throw new Error('Invalid base url')\n }\n\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n", "'use strict'\n\nconst { redirectStatus, badPorts, referrerPolicy: referrerPolicyTokens } = require('./constants')\nconst { getGlobalOrigin } = require('./global')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response\u2019s URL list and null if response\u2019s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response\u2019s status is not a redirect status, then return null.\n if (!redirectStatus.includes(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response\u2019s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a header value, then set location to the result of\n // parsing location with response\u2019s URL.\n if (location !== null && isValidHeaderValue(location)) {\n location = new URL(location, responseURL(response))\n }\n\n // 4. If location is a URL whose fragment is null, then set location\u2019s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request\u2019s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url\u2019s scheme is an HTTP(S) scheme and url\u2019s port is a bad port,\n // then return blocked.\n if (urlIsHttpHttpsScheme(url) && badPorts.includes(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\nfunction isTokenChar (c) {\n return !(\n c >= 0x7f ||\n c <= 0x20 ||\n c === '(' ||\n c === ')' ||\n c === '<' ||\n c === '>' ||\n c === '@' ||\n c === ',' ||\n c === ';' ||\n c === ':' ||\n c === '\\\\' ||\n c === '\"' ||\n c === '/' ||\n c === '[' ||\n c === ']' ||\n c === '?' ||\n c === '=' ||\n c === '{' ||\n c === '}'\n )\n}\n\n// See RFC 7230, Section 3.2.6.\n// https://github.com/chromium/chromium/blob/d7da0240cae77824d1eda25745c4022757499131/third_party/blink/renderer/platform/network/http_parsers.cc#L321\nfunction isValidHTTPToken (characters) {\n if (!characters || typeof characters !== 'string') {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n const c = characters.charCodeAt(i)\n if (c > 0x7f || !isTokenChar(c)) {\n return false\n }\n }\n return true\n}\n\n// https://fetch.spec.whatwg.org/#header-name\n// https://github.com/chromium/chromium/blob/b3d37e6f94f87d59e44662d6078f6a12de845d17/net/http/http_util.cc#L342\nfunction isValidHeaderName (potentialValue) {\n if (potentialValue.length === 0) {\n return false\n }\n\n return isValidHTTPToken(potentialValue)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request\u2019s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing \u00A7 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n\n // 8.1 Parse a referrer policy from a Referrer-Policy header\n // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response\u2019s header list.\n const { headersList } = actualResponse\n // 2. Let policy be the empty string.\n // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.\n // 4. Return policy.\n const policyHeader = (headersList.get('referrer-policy') ?? '').split(',')\n\n // Note: As the referrer-policy can contain multiple policies\n // separated by comma, we need to loop through all of them\n // and pick the first valid one.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n let policy = ''\n if (policyHeader.length > 0) {\n // The right-most policy takes precedence.\n // The left-most policy is the fallback.\n for (let i = policyHeader.length; i !== 0; i--) {\n const token = policyHeader[i - 1].trim()\n if (referrerPolicyTokens.includes(token)) {\n policy = token\n break\n }\n }\n }\n\n // 2. If policy is not the empty string, then set request\u2019s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r\u2019s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header\u2019s value to r\u2019s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r\u2019s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request\u2019s response tainting is \"cors\" or request\u2019s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request\u2019s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request\u2019s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request\u2019s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request\u2019s origin is a tuple origin, its scheme is \"https\", and request\u2019s current URL\u2019s scheme is not \"https\", then set serializedOrigin to `null`.\n if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request\u2019s origin is not same origin with request\u2019s current URL\u2019s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request\u2019s header list.\n request.headersList.append('origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // Note: the fetch spec doesn't make use of embedder policy or CSP list\n return {\n referrerPolicy: 'strict-origin-when-cross-origin'\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer (policyContainer) {\n return {\n referrerPolicy: policyContainer.referrerPolicy\n }\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Note: policy cannot (shouldn't) be null or an empty string.\n assert(policy)\n\n // 2. Let environment be request\u2019s client.\n\n let referrerSource = null\n\n // 3. Switch on request\u2019s referrer:\n if (request.referrer === 'client') {\n // Note: node isn't a browser and doesn't implement document/iframes,\n // so we bypass this step and replace it with our own.\n\n const globalOrigin = getGlobalOrigin()\n\n if (!globalOrigin || globalOrigin.origin === 'null') {\n return 'no-referrer'\n }\n\n // note: we need to clone it as it's mutated\n referrerSource = new URL(globalOrigin)\n } else if (request.referrer instanceof URL) {\n // Let referrerSource be request\u2019s referrer.\n referrerSource = request.referrer\n }\n\n // 4. Let request\u2019s referrerURL be the result of stripping referrerSource for\n // use as a referrer.\n let referrerURL = stripURLForReferrer(referrerSource)\n\n // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n // a referrer, with the origin-only flag set to true.\n const referrerOrigin = stripURLForReferrer(referrerSource, true)\n\n // 6. If the result of serializing referrerURL is a string whose length is\n // greater than 4096, set referrerURL to referrerOrigin.\n if (referrerURL.toString().length > 4096) {\n referrerURL = referrerOrigin\n }\n\n const areSameOrigin = sameOrigin(request, referrerURL)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerURL\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerURL : referrerOrigin\n case 'strict-origin-when-cross-origin': {\n const currentURL = requestCurrentURL(request)\n\n // 1. If the origin of referrerURL and the origin of request\u2019s current\n // URL are the same, then return referrerURL.\n if (sameOrigin(referrerURL, currentURL)) {\n return referrerURL\n }\n\n // 2. If referrerURL is a potentially trustworthy URL and request\u2019s\n // current URL is not a potentially trustworthy URL, then return no\n // referrer.\n if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n return 'no-referrer'\n }\n\n // 3. Return referrerOrigin.\n return referrerOrigin\n }\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n * @param {URL} url\n * @param {boolean|undefined} originOnly\n */\nfunction stripURLForReferrer (url, originOnly) {\n // 1. Assert: url is a URL.\n assert(url instanceof URL)\n\n // 2. If url\u2019s scheme is a local scheme, then return no referrer.\n if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n return 'no-referrer'\n }\n\n // 3. Set url\u2019s username to the empty string.\n url.username = ''\n\n // 4. Set url\u2019s password to the empty string.\n url.password = ''\n\n // 5. Set url\u2019s fragment to null.\n url.hash = ''\n\n // 6. If the origin-only flag is true, then:\n if (originOnly) {\n // 1. Set url\u2019s path to \u00AB the empty string \u00BB.\n url.pathname = ''\n\n // 2. Set url\u2019s query to null.\n url.search = ''\n }\n\n // 7. Return url.\n return url\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 4. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n const list = parsedMetadata.sort((c, d) => d.algo.localeCompare(c.algo))\n // get the strongest algorithm\n const strongest = list[0].algo\n // get all entries that use the strongest algorithm; ignore weaker\n const metadata = list.filter((item) => item.algo === strongest)\n\n // 5. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n const actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (actualValue === expectedValue) {\n return true\n }\n }\n\n // 6. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// https://www.w3.org/TR/CSP2/#source-list-syntax\n// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\\x21-\\x7e]?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n const supportedHashes = crypto.getHashes()\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (parsedToken === null || parsedToken.groups === undefined) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm.toLowerCase())) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n if (A.origin === B.origin && A.origin === 'null') {\n return true\n }\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\n// https://fetch.spec.whatwg.org/#concept-method-normalize\nfunction normalizeMethod (method) {\n return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method)\n ? method.toUpperCase()\n : method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, \u00AB value \u00BB).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n/**\n * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n * @param {() => unknown[]} iterator\n * @param {string} name name of the instance\n * @param {'key'|'value'|'key+value'} kind\n */\nfunction makeIterator (iterator, name, kind) {\n const object = {\n index: 0,\n kind,\n target: iterator\n }\n\n const i = {\n next () {\n // 1. Let interface be the interface for which the iterator prototype object exists.\n\n // 2. Let thisValue be the this value.\n\n // 3. Let object be ? ToObject(thisValue).\n\n // 4. If object is a platform object, then perform a security\n // check, passing:\n\n // 5. If object is not a default iterator object for interface,\n // then throw a TypeError.\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n // 6. Let index be object\u2019s index.\n // 7. Let kind be object\u2019s kind.\n // 8. Let values be object\u2019s target's value pairs to iterate over.\n const { index, kind, target } = object\n const values = target()\n\n // 9. Let len be the length of values.\n const len = values.length\n\n // 10. If index is greater than or equal to len, then return\n // CreateIterResultObject(undefined, true).\n if (index >= len) {\n return { value: undefined, done: true }\n }\n\n // 11. Let pair be the entry in values at index index.\n const pair = values[index]\n\n // 12. Set object\u2019s index to index + 1.\n object.index = index + 1\n\n // 13. Return the iterator result for pair and kind.\n return iteratorResult(pair, kind)\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n// https://webidl.spec.whatwg.org/#iterator-result\nfunction iteratorResult (pair, kind) {\n let result\n\n // 1. Let result be a value determined by the value of kind:\n switch (kind) {\n case 'key': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 3. result is key.\n result = pair[0]\n break\n }\n case 'value': {\n // 1. Let idlValue be pair\u2019s value.\n // 2. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 3. result is value.\n result = pair[1]\n break\n }\n case 'key+value': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let idlValue be pair\u2019s value.\n // 3. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 4. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 5. Let array be ! ArrayCreate(2).\n // 6. Call ! CreateDataProperty(array, \"0\", key).\n // 7. Call ! CreateDataProperty(array, \"1\", value).\n // 8. result is array.\n result = pair\n break\n }\n }\n\n // 2. Return CreateIterResultObject(result, false).\n return { value: result, done: false }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nfunction fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let successSteps given a byte sequence bytes be to queue a\n // fetch task to run processBody given bytes, with taskDestination.\n const successSteps = (bytes) => queueMicrotask(() => processBody(bytes))\n\n // 3. Let errorSteps be to queue a fetch task to run processBodyError,\n // with taskDestination.\n const errorSteps = (error) => queueMicrotask(() => processBodyError(error))\n\n // 4. Let reader be the result of getting a reader for body\u2019s stream.\n // If that threw an exception, then run errorSteps with that\n // exception and return.\n let reader\n\n try {\n reader = body.stream.getReader()\n } catch (e) {\n errorSteps(e)\n return\n }\n\n // 5. Read all bytes from reader, given successSteps and errorSteps.\n readAllBytes(reader, successSteps, errorSteps)\n}\n\n/** @type {ReadableStream} */\nlet ReadableStream = globalThis.ReadableStream\n\nfunction isReadableStreamLike (stream) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n return stream instanceof ReadableStream || (\n stream[Symbol.toStringTag] === 'ReadableStream' &&\n typeof stream.tee === 'function'\n )\n}\n\nconst MAXIMUM_ARGUMENT_LENGTH = 65535\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-decode\n * @param {number[]|Uint8Array} input\n */\nfunction isomorphicDecode (input) {\n // 1. To isomorphic decode a byte sequence input, return a string whose code point\n // length is equal to input\u2019s length and whose code points have the same values\n // as the values of input\u2019s bytes, in the same order.\n\n if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n return String.fromCharCode(...input)\n }\n\n return input.reduce((previous, current) => previous + String.fromCharCode(current), '')\n}\n\n/**\n * @param {ReadableStreamController<Uint8Array>} controller\n */\nfunction readableStreamClose (controller) {\n try {\n controller.close()\n } catch (err) {\n // TODO: add comment explaining why this error occurs.\n if (!err.message.includes('Controller is already closed')) {\n throw err\n }\n }\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-encode\n * @param {string} input\n */\nfunction isomorphicEncode (input) {\n // 1. Assert: input contains no code points greater than U+00FF.\n for (let i = 0; i < input.length; i++) {\n assert(input.charCodeAt(i) <= 0xFF)\n }\n\n // 2. Return a byte sequence whose length is equal to input\u2019s code\n // point length and whose bytes have the same values as the\n // values of input\u2019s code points, in the same order\n return input\n}\n\n/**\n * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n * @see https://streams.spec.whatwg.org/#read-loop\n * @param {ReadableStreamDefaultReader} reader\n * @param {(bytes: Uint8Array) => void} successSteps\n * @param {(error: Error) => void} failureSteps\n */\nasync function readAllBytes (reader, successSteps, failureSteps) {\n const bytes = []\n let byteLength = 0\n\n while (true) {\n let done\n let chunk\n\n try {\n ({ done, value: chunk } = await reader.read())\n } catch (e) {\n // 1. Call failureSteps with e.\n failureSteps(e)\n return\n }\n\n if (done) {\n // 1. Call successSteps with bytes.\n successSteps(Buffer.concat(bytes, byteLength))\n return\n }\n\n // 1. If chunk is not a Uint8Array object, call failureSteps\n // with a TypeError and abort these steps.\n if (!isUint8Array(chunk)) {\n failureSteps(new TypeError('Received non-Uint8Array chunk'))\n return\n }\n\n // 2. Append the bytes represented by chunk to bytes.\n bytes.push(chunk)\n byteLength += chunk.length\n\n // 3. Read-loop given reader, bytes, successSteps, and failureSteps.\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#is-local\n * @param {URL} url\n */\nfunction urlIsLocal (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n}\n\n/**\n * @param {string|URL} url\n */\nfunction urlHasHttpsScheme (url) {\n if (typeof url === 'string') {\n return url.startsWith('https:')\n }\n\n return url.protocol === 'https:'\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-scheme\n * @param {URL} url\n */\nfunction urlIsHttpHttpsScheme (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'http:' || protocol === 'https:'\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch,\n isReadableStreamLike,\n readableStreamClose,\n isomorphicEncode,\n isomorphicDecode,\n urlIsLocal,\n urlHasHttpsScheme,\n urlIsHttpHttpsScheme,\n readAllBytes\n}\n", "'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n", "'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\n/** @type {import('../../types/webidl').Webidl} */\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\nwebidl.errors.exception = function (message) {\n return new TypeError(`${message.header}: ${message.message}`)\n}\n\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://webidl.spec.whatwg.org/#implements\nwebidl.brandCheck = function (V, I, opts = undefined) {\n if (opts?.strict !== false && !(V instanceof I)) {\n throw new TypeError('Illegal invocation')\n } else {\n return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n }\n}\n\nwebidl.argumentLengthCheck = function ({ length }, min, ctx) {\n if (length < min) {\n throw webidl.errors.exception({\n message: `${min} argument${min !== 1 ? 's' : ''} required, ` +\n `but${length ? ' only' : ''} ${length} found.`,\n ...ctx\n })\n }\n}\n\nwebidl.illegalConstructor = function () {\n throw webidl.errors.exception({\n header: 'TypeError',\n message: 'Illegal constructor'\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 \u2212 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be \u22122^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength \u2212 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength \u2212 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength \u2212 1 \u2212 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is \u22120, then set x to +0.\n if (x === 0) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +\u221E, or \u2212\u221E, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than \u22120.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +\u221E, or \u2212\u221E, then return +0.\n if (\n Number.isNaN(x) ||\n (x === 0 && Object.is(0, x)) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x \u2265 2^bitLength \u2212 1,\n // then return x \u2212 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 \u00D7 r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-to-record\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (O) => {\n // 1. If Type(O) is not Object, throw a TypeError.\n if (webidl.util.Type(O) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Record',\n message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n })\n }\n\n // 2. Let result be a new empty instance of record<K, V>.\n const result = {}\n\n if (!types.isProxy(O)) {\n // Object.keys only returns enumerable properties\n const keys = Object.keys(O)\n\n for (const key of keys) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n\n // 5. Return result.\n return result\n }\n\n // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n const keys = Reflect.ownKeys(O)\n\n // 4. For each key of keys.\n for (const key of keys) {\n // 1. Let desc be ? O.[[GetOwnProperty]](key).\n const desc = Reflect.getOwnPropertyDescriptor(O, key)\n\n // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n if (desc?.enumerable) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n }\n\n // 5. Return result.\n return result\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n throw webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type === 'Null' || type === 'Undefined') {\n return dict\n } else if (type !== 'Object') {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n const charCode = x.charCodeAt(index)\n\n if (charCode > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at ' +\n `index ${index} has a value of ${charCode} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed')\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long-long\nwebidl.converters['unsigned long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 64, 'unsigned')\n\n // 2. Return the IDL unsigned long long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long\nwebidl.converters['unsigned long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 32, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 32, 'unsigned')\n\n // 2. Return the IDL unsigned long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts)\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T\u2019s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n throw webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence<ByteString>'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence<sequence<ByteString>>'] = webidl.sequenceConverter(\n webidl.converters['sequence<ByteString>']\n)\n\nwebidl.converters['record<ByteString, ByteString>'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n", "const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isomorphicDecode } = require('./util')\n\nconst encoder = new TextEncoder()\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-token-code-point\n */\nconst HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/\nconst HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/ // eslint-disable-line\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n */\nconst HTTP_QUOTED_STRING_TOKENS = /[\\u0009|\\u0020-\\u007E|\\u0080-\\u00FF]/ // eslint-disable-line\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL\u2019s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePointsFast(\n ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = removeASCIIWhitespace(mimeType, true, true)\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = isomorphicDecode(body)\n\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n const href = url.href\n\n if (!excludeFragment) {\n return href\n }\n\n const hash = href.lastIndexOf('#')\n if (hash === -1) {\n return href\n }\n return href.slice(0, hash)\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn\u2019t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n/**\n * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n * @param {string} char\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePointsFast (char, input, position) {\n const idx = input.indexOf(char, position.position)\n const start = position.position\n\n if (idx === -1) {\n position.position = input.length\n return input.slice(start)\n }\n\n position.position = idx\n return input.slice(start, position.position)\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = removeHTTPWhitespace(input, true, true)\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePointsFast(\n '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = removeHTTPWhitespace(subtype, false, true)\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n return 'failure'\n }\n\n const typeLowercase = type.toLowerCase()\n const subtypeLowercase = subtype.toLowerCase()\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: typeLowercase,\n subtype: subtypeLowercase,\n /** @type {Map<string, string>} */\n parameters: new Map(),\n // https://mimesniff.spec.whatwg.org/#mime-type-essence\n essence: `${typeLowercase}/${subtypeLowercase}`\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n char => HTTP_WHITESPACE_REGEX.test(char),\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n parameterValue = removeHTTPWhitespace(parameterValue, false, true)\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType\u2019s parameters[parameterName] does not exist\n // then set mimeType\u2019s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) &&\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data\u2019s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data\u2019s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { parameters, essence } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType\u2019s\n // type, U+002F (/), and mimeType\u2019s subtype.\n let serialization = essence\n\n // 2. For each name \u2192 value of mimeType\u2019s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!HTTP_TOKEN_CODEPOINTS.test(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} char\n */\nfunction isHTTPWhiteSpace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === ' '\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} str\n */\nfunction removeHTTPWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n * @param {string} char\n */\nfunction isASCIIWhitespace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === '\\f' || char === ' '\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace\n */\nfunction removeASCIIWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n collectASequenceOfCodePointsFast,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n", "'use strict'\n\nconst { Blob, File: NativeFile } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' })\n\n fileBits = webidl.converters['sequence<BlobPart>'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n let t = options.type\n let d\n\n // eslint-disable-next-line no-labels\n substep: {\n if (t) {\n t = parseMIMEType(t)\n\n if (t === 'failure') {\n t = ''\n // eslint-disable-next-line no-labels\n break substep\n }\n\n t = serializeAMimeType(t).toLowerCase()\n }\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n d = options.lastModified\n }\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: t })\n this[kState] = {\n name: n,\n lastModified: d,\n type: t\n }\n }\n\n get name () {\n webidl.brandCheck(this, File)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, File)\n\n return this[kState].lastModified\n }\n\n get type () {\n webidl.brandCheck(this, File)\n\n return this[kState].type\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.size\n }\n\n get type () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.type\n }\n\n get name () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nObject.defineProperties(File.prototype, {\n [Symbol.toStringTag]: {\n value: 'File',\n configurable: true\n },\n name: kEnumerableProperty,\n lastModified: kEnumerableProperty\n})\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n ArrayBuffer.isView(V) ||\n types.isAnyArrayBuffer(V)\n ) {\n return webidl.converters.BufferSource(V, opts)\n }\n }\n\n return webidl.converters.USVString(V, opts)\n}\n\nwebidl.converters['sequence<BlobPart>'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(new TextEncoder().encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform\u2019s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return (\n (NativeFile && object instanceof NativeFile) ||\n object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n", "'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File: UndiciFile, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob, File: NativeFile } = require('buffer')\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n constructor (form) {\n if (form !== undefined) {\n throw webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['undefined']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' })\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this\u2019s entry list.\n this[kState] = this[kState].filter(entry => entry.name !== name)\n }\n\n get (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this\u2019s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this\u2019s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' })\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this\u2019s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this\u2019s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n }\n\n entries () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key+value'\n )\n }\n\n keys () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\nObject.defineProperties(FormData.prototype, {\n [Symbol.toStringTag]: {\n value: 'FormData',\n configurable: true\n }\n})\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n /** @type {FilePropertyBag} */\n const options = {\n type: value.type,\n lastModified: value.lastModified\n }\n\n value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n ? new File([value], filename, options)\n : new FileLike(value, filename, options)\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nmodule.exports = { FormData }\n", "'use strict'\n\nconst Busboy = require('busboy')\nconst util = require('../core/util')\nconst {\n ReadableStreamFrom,\n isBlobLike,\n isReadableStreamLike,\n readableStreamClose,\n createDeferredPromise,\n fullyReadBody\n} = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException, structuredClone } = require('./constants')\nconst { Blob, File: NativeFile } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File: UndiciFile } = require('./file')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\n\nlet ReadableStream = globalThis.ReadableStream\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be null.\n let stream = null\n\n // 2. If object is a ReadableStream object, then set stream to object.\n if (object instanceof ReadableStream) {\n stream = object\n } else if (isBlobLike(object)) {\n // 3. Otherwise, if object is a Blob object, set stream to the\n // result of running object\u2019s get stream.\n stream = object.stream()\n } else {\n // 4. Otherwise, set stream to a new ReadableStream object, and set\n // up stream.\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? new TextEncoder().encode(source) : source\n )\n queueMicrotask(() => readableStreamClose(controller))\n },\n start () {},\n type: undefined\n })\n }\n\n // 5. Assert: stream is a ReadableStream object.\n assert(isReadableStreamLike(stream))\n\n // 6. Let action be null.\n let action = null\n\n // 7. Let source be null.\n let source = null\n\n // 8. Let length be null.\n let length = null\n\n // 9. Let type be null.\n let type = null\n\n // 10. Switch on object:\n if (typeof object === 'string') {\n // Set source to the UTF-8 encoding of object.\n // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n source = object\n\n // Set type to `text/plain;charset=UTF-8`.\n type = 'text/plain;charset=UTF-8'\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object\u2019s list.\n source = object.toString()\n\n // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n type = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}`\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy W\u00E4rting <https://jimmy.warting.se/opensource> */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object\u2019s entry list and UTF-8.\n // - This ensures that the body is immutable and can't be changed afterwords\n // - That the content-length is calculated in advance.\n // - And that all parts are pre-encoded and ready to be sent.\n\n const enc = new TextEncoder()\n const blobParts = []\n const rn = new Uint8Array([13, 10]) // '\\r\\n'\n length = 0\n let hasUnknownSizeValue = false\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n const chunk = enc.encode(prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`)\n blobParts.push(chunk)\n length += chunk.byteLength\n } else {\n const chunk = enc.encode(`${prefix}; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') + '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`)\n blobParts.push(chunk, value, rn)\n if (typeof value.size === 'number') {\n length += chunk.byteLength + value.size + rn.byteLength\n } else {\n hasUnknownSizeValue = true\n }\n }\n }\n\n const chunk = enc.encode(`--${boundary}--`)\n blobParts.push(chunk)\n length += chunk.byteLength\n if (hasUnknownSizeValue) {\n length = null\n }\n\n // Set source to object.\n source = object\n\n action = async function * () {\n for (const part of blobParts) {\n if (part.stream) {\n yield * part.stream()\n } else {\n yield part\n }\n }\n }\n\n // Set type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n type = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set source to object.\n source = object\n\n // Set length to object\u2019s size.\n length = object.size\n\n // If object\u2019s type attribute is not the empty byte sequence, set\n // type to its value.\n if (object.type) {\n type = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n }\n\n // 11. If source is a byte sequence, then set action to a\n // step that returns source and length to source\u2019s length.\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 12. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n },\n type: undefined\n })\n }\n\n // 13. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 14. Return (body, type).\n return [body, type]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let \u00AB out1, out2 \u00BB be the result of teeing body\u2019s stream.\n const [out1, out2] = body.stream.tee()\n const out2Clone = structuredClone(out2, { transfer: [out2] })\n // This, for whatever reasons, unrefs out2Clone which allows\n // the process to exit by itself.\n const [, finalClone] = out2Clone.tee()\n\n // 2. Set body\u2019s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: finalClone,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n blob () {\n // The blob() method steps are to return the result of\n // running consume body with this and the following step\n // given a byte sequence bytes: return a Blob whose\n // contents are bytes and whose type attribute is this\u2019s\n // MIME type.\n return specConsumeBody(this, (bytes) => {\n let mimeType = bodyMimeType(this)\n\n if (mimeType === 'failure') {\n mimeType = ''\n } else if (mimeType) {\n mimeType = serializeAMimeType(mimeType)\n }\n\n // Return a Blob whose contents are bytes and type attribute\n // is mimeType.\n return new Blob([bytes], { type: mimeType })\n }, instance)\n },\n\n arrayBuffer () {\n // The arrayBuffer() method steps are to return the result\n // of running consume body with this and the following step\n // given a byte sequence bytes: return a new ArrayBuffer\n // whose contents are bytes.\n return specConsumeBody(this, (bytes) => {\n return new Uint8Array(bytes).buffer\n }, instance)\n },\n\n text () {\n // The text() method steps are to return the result of running\n // consume body with this and UTF-8 decode.\n return specConsumeBody(this, utf8DecodeBytes, instance)\n },\n\n json () {\n // The json() method steps are to return the result of running\n // consume body with this and parse JSON from bytes.\n return specConsumeBody(this, parseJSONFromBytes, instance)\n },\n\n async formData () {\n webidl.brandCheck(this, instance)\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType\u2019s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = Busboy({\n headers,\n defParamCharset: 'utf8'\n })\n } catch (err) {\n throw new DOMException(`${err}`, 'AbortError')\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, info) => {\n const { filename, encoding, mimeType } = info\n const chunks = []\n\n if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(new TypeError(err)))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType\u2019s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n const textDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += textDecoder.decode(chunk, { stream: true })\n }\n text += textDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n throw webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n * @param {Response|Request} object\n * @param {(value: unknown) => unknown} convertBytesToJSValue\n * @param {Response|Request} instance\n */\nasync function specConsumeBody (object, convertBytesToJSValue, instance) {\n webidl.brandCheck(object, instance)\n\n throwIfAborted(object[kState])\n\n // 1. If object is unusable, then return a promise rejected\n // with a TypeError.\n if (bodyUnusable(object[kState].body)) {\n throw new TypeError('Body is unusable')\n }\n\n // 2. Let promise be a new promise.\n const promise = createDeferredPromise()\n\n // 3. Let errorSteps given error be to reject promise with error.\n const errorSteps = (error) => promise.reject(error)\n\n // 4. Let successSteps given a byte sequence data be to resolve\n // promise with the result of running convertBytesToJSValue\n // with data. If that threw an exception, then run errorSteps\n // with that exception.\n const successSteps = (data) => {\n try {\n promise.resolve(convertBytesToJSValue(data))\n } catch (e) {\n errorSteps(e)\n }\n }\n\n // 5. If object\u2019s body is null, then run successSteps with an\n // empty byte sequence.\n if (object[kState].body == null) {\n successSteps(new Uint8Array())\n return promise.promise\n }\n\n // 6. Otherwise, fully read object\u2019s body given successSteps,\n // errorSteps, and object\u2019s relevant global object.\n fullyReadBody(object[kState].body, successSteps, errorSteps)\n\n // 7. Return promise.\n return promise.promise\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction bodyUnusable (body) {\n // An object including the Body interface mixin is\n // said to be unusable if its body is non-null and\n // its body\u2019s stream is disturbed or locked.\n return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#utf-8-decode\n * @param {Buffer} buffer\n */\nfunction utf8DecodeBytes (buffer) {\n if (buffer.length === 0) {\n return ''\n }\n\n // 1. Let buffer be the result of peeking three bytes from\n // ioQueue, converted to a byte sequence.\n\n // 2. If buffer is 0xEF 0xBB 0xBF, then read three\n // bytes from ioQueue. (Do nothing with those bytes.)\n if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n buffer = buffer.subarray(3)\n }\n\n // 3. Process a queue with an instance of UTF-8\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n const output = new TextDecoder().decode(buffer)\n\n // 4. Return output.\n return output\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n * @param {Uint8Array} bytes\n */\nfunction parseJSONFromBytes (bytes) {\n return JSON.parse(utf8DecodeBytes(bytes))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n * @param {import('./response').Response|import('./request').Request} object\n */\nfunction bodyMimeType (object) {\n const { headersList } = object[kState]\n const contentType = headersList.get('content-type')\n\n if (contentType === null) {\n return 'failure'\n }\n\n return parseMIMEType(contentType)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n", "'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n this.contentLength = bodyStream.length\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.onError(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onConnect(abort)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onData(chunk)\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n return this[kHandler].onComplete(trailers)\n }\n\n onError (error) {\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n return this[kHandler].onError(error)\n }\n\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n}\n\nfunction processHeaderValue (key, val) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n val = val != null ? `${val}` : ''\n\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n return `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request, key, val) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type'\n ) {\n request.contentType = val\n request.headers += processHeaderValue(key, val)\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n } else if (value === 'close') {\n request.reset = true\n }\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n request.headers += processHeaderValue(key, val[i])\n }\n } else {\n request.headers += processHeaderValue(key, val)\n }\n }\n}\n\nmodule.exports = Request\n", "'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n", "'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = null\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed] = this[kOnDestroyed] || []\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed] || this[kOnDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n", "'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\n\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache\nif (global.FinalizationRegistry) {\n SessionCache = class WeakSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n this._sessionRegistry = new global.FinalizationRegistry((key) => {\n if (this._sessionCache.size < this._maxCachedSessions) {\n return\n }\n\n const ref = this._sessionCache.get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this._sessionCache.delete(key)\n }\n })\n }\n\n get (sessionKey) {\n const ref = this._sessionCache.get(sessionKey)\n return ref ? ref.deref() : null\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n this._sessionCache.set(sessionKey, new WeakRef(session))\n this._sessionRegistry.register(session, sessionKey)\n }\n }\n} else {\n SessionCache = class SimpleSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n }\n\n get (sessionKey) {\n return this._sessionCache.get(sessionKey)\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n if (this._sessionCache.size >= this._maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = this._sessionCache.keys().next()\n this._sessionCache.delete(oldestKey)\n }\n\n this._sessionCache.set(sessionKey, session)\n }\n }\n}\n\nfunction buildConnector ({ maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions)\n timeout = timeout == null ? 10e3 : timeout\n\n return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n localAddress,\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // TODO (fix): Can a session become invalid once established? Don't think so?\n sessionCache.set(sessionKey, session)\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n localAddress,\n port: port || 80,\n host: hostname\n })\n }\n\n // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n if (options.keepAlive == null || options.keepAlive) {\n const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay\n socket.setKeepAlive(true, keepAliveInitialDelay)\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n", null, null, "'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n this.opts.query = null\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n return (\n (header.length === 4 && header.toString().toLowerCase() === 'host') ||\n (removeContent && header.toString().toLowerCase().indexOf('content-') === 0) ||\n (unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') ||\n (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie')\n )\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n", "'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='\n", "// @ts-check\n\n'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst util = require('./core/util')\nconst timers = require('./timers')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError,\n ResponseExceededMaxSizeError,\n ClientDestroyedError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors,\n kLocalAddress,\n kMaxResponseSize\n} = require('./core/symbols')\nconst FastBuffer = Buffer[Symbol.species]\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\n/**\n * @type {import('../types/client').default}\n */\nclass Client extends DispatcherBase {\n /**\n *\n * @param {string|URL} url\n * @param {import('../types/client').Client.Options} options\n */\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient,\n localAddress,\n maxResponseSize,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n throw new InvalidArgumentError('localAddress must be valid string IP address')\n }\n\n if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n throw new InvalidArgumentError('maxResponseSize must be a positive number')\n }\n\n if (\n autoSelectFamilyAttemptTimeout != null &&\n (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n ) {\n throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || 16384\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kLocalAddress] = localAddress != null ? localAddress : null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = new Request(origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n return new Promise((resolve) => {\n if (!this[kSize]) {\n resolve(null)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n // TODO (fix): Should we error here with ClientDestroyedError?\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp-wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd-wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp-wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\nllhttpPromise.catch()\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n this.connection = ''\n this.maxResponseSize = client[kMaxResponseSize]\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n timers.clearTimeout(this.timeout)\n if (value) {\n this.timeout = timers.setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message =\n 'Response does not match the HTTP/1.1 protocol (' +\n Buffer.from(llhttp.memory.buffer, ptr, len).toString() +\n ')'\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n timers.clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n this.connection += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = (\n shouldKeepAlive ||\n // Override llhttp value which does not allow keepAlive for HEAD.\n (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n )\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (this.shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n let pause\n try {\n pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n\n if (request.method === 'HEAD') {\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode, maxResponseSize } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n util.destroy(socket, new ResponseExceededMaxSizeError())\n return -1\n }\n\n this.bytesRead += buf.length\n\n try {\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n this.connection = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n try {\n request.onComplete(headers)\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n parser.readMore()\n}\n\nfunction onSocketError (err) {\n const { [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.onMessageComplete()\n return\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser } = this\n\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n return\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client } = this\n\n if (!this[kError] && this[kParser].statusCode && !this[kParser].shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n this[kParser].onMessageComplete()\n }\n\n this[kParser].destroy()\n this[kParser] = null\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substr(1, idx - 1)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (client.destroyed) {\n util.destroy(socket.on('error', () => {}), new ClientDestroyedError())\n return\n }\n\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kError] = null\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n socket[kClient] = client\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n client[kSocket] = socket\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n if (client.destroyed) {\n return\n }\n\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client[kClosedResolve] && !client[kSize]) {\n client[kClosedResolve]()\n client[kClosedResolve] = null\n return\n }\n\n const socket = client[kSocket]\n\n if (socket && !socket.destroyed) {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket) {\n connect(client)\n return\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (util.isStream(request.body) && util.bodyLength(request.body) === 0) {\n request.body\n .on('data', /* istanbul ignore next */ function () {\n /* istanbul ignore next */\n assert(false)\n })\n .on('error', function (err) {\n errorRequest(client, request, err)\n })\n .on('end', function () {\n util.destroy(this)\n })\n\n request.body = null\n }\n\n if (client[kRunning] > 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\nfunction write (client, request) {\n const { body, method, path, host, upgrade, headers, blocking, reset } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n if (request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (reset != null) {\n socket[kReset] = reset\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining] && !socket[kReset]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeStream ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n if (finished) {\n return\n }\n\n try {\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n if (finished) {\n return\n }\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n onFinished(new RequestAbortedError())\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(buffer)\n socket.uncork()\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(socket, err)\n }\n}\n\nasync function writeIterable ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n socket.cork()\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'latin1')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n socket.uncork()\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'latin1')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n", "/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n", "const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n", "'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n", "'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout == null ? 10e3 : connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n", "'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n", "'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n}\n\nmodule.exports = function () {\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n", "'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n", "// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nmodule.exports = class BodyReadable extends Readable {\n constructor ({\n resume,\n abort,\n contentType = '',\n highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n }) {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n async dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n const signal = opts && opts.signal\n const abortFn = () => {\n this.destroy()\n }\n let signalListenerCleanup\n if (signal) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new InvalidArgumentError('signal must be an AbortSignal')\n }\n util.throwIfAborted(signal)\n signalListenerCleanup = util.addAbortListener(signal, abortFn)\n }\n try {\n for await (const chunk of this) {\n util.throwIfAborted(signal)\n limit -= Buffer.byteLength(chunk)\n if (limit < 0) {\n return\n }\n }\n } catch {\n util.throwIfAborted(signal)\n } finally {\n if (typeof signalListenerCleanup === 'function') {\n signalListenerCleanup()\n } else if (signalListenerCleanup) {\n signalListenerCleanup[Symbol.dispose]()\n }\n }\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n", "const assert = require('assert')\nconst {\n ResponseStatusCodeError\n} = require('../core/errors')\nconst { toUSVString } = require('../core/util')\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n assert(body)\n\n let chunks = []\n let limit = 0\n\n for await (const chunk of body) {\n chunks.push(chunk)\n limit += chunk.length\n if (limit > 128 * 1024) {\n chunks = null\n break\n }\n }\n\n if (statusCode === 204 || !contentType || !chunks) {\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = toUSVString(Buffer.concat(chunks))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nmodule.exports = { getResolveErrorBodyCallback }\n", "const { addAbortListener } = require('../core/util')\nconst { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n addAbortListener(self[kSignal], self[kListener])\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n", "'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n throw new InvalidArgumentError('invalid highWaterMark')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n this.highWaterMark = highWaterMark\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n const body = new Readable({ resume, abort, contentType, highWaterMark })\n\n this.callback = null\n this.res = body\n\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n } else {\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\n", "'use strict'\n\nconst { finished, PassThrough } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError || false\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { factory, opaque, context, callback, responseHeaders } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n\n let res\n\n if (this.throwOnError && statusCode >= 400) {\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n res = new PassThrough()\n\n this.callback = null\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body: res, contentType, statusCode, statusMessage, headers }\n )\n } else {\n res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n }\n\n res.on('drain', resume)\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res.write(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n", "'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n", "'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n", "'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n", "'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n", "'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\nconst {\n types: {\n isPromise\n }\n} = require('util')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record<string, string>} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [\n ...keyValuePairs,\n Buffer.from(`${key}`),\n Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n ], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches, _data = data) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const body = typeof _data === 'function'\n ? _data({ ...opts, headers: optsHeaders })\n : _data\n\n // util.types.isPromise is likely needed for jest.\n if (isPromise(body)) {\n // If handleReply is asynchronous, throwing an error\n // in the callback will reject the promise, rather than\n // synchronously throw the error, which breaks some tests.\n // Rather, we wait for the callback to resolve if it is a\n // promise, and then re-run handleReply with the new body.\n body.then((newData) => handleReply(mockDispatches, newData))\n return\n }\n\n const responseData = getResponseData(body)\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n", "'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n", "'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n", "'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(\u2026)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '\u2705' : '\u274C',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n", "'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n", "'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Pool = require('./pool')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n const { clientFactory = defaultFactory } = opts\n\n if (typeof clientFactory !== 'function') {\n throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = opts.headers || {}\n\n if (opts.auth && opts.token) {\n throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token')\n } else if (opts.auth) {\n /* @deprecated in favour of opts.token */\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n } else if (opts.token) {\n this[kProxyHeaders]['proxy-authorization'] = opts.token\n }\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host } = resolvedUrl\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = clientFactory(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError('Proxy response !== 200 when HTTP Tunneling'))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record<string, string>} headers\n * @returns {Record<string, string>}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record<string, string>} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record<string, string>} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n", "'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n", "'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst { webidl } = require('./webidl')\nconst assert = require('assert')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n\n // Trimming the end with `.replace()` and a RegExp is typically subject to\n // ReDoS. This is safer and faster.\n let i = potentialValue.length\n while (/[\\r\\n\\t ]/.test(potentialValue.charAt(--i)));\n return potentialValue.slice(0, i + 1).replace(/^[\\r\\n\\t ]+/, '')\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (const header of object) {\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n throw webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header\u2019s first item, header\u2019s second item) to headers.\n headers.append(header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key \u2192 value in object,\n // append (key, value) to headers\n for (const [key, value] of Object.entries(object)) {\n headers.append(key, value)\n }\n } else {\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n }\n}\n\nclass HeadersList {\n /** @type {[string, string][]|null} */\n cookies = null\n\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n this.cookies = init.cookies\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n this.cookies = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header\u2019s name.\n const lowercaseName = name.toLowerCase()\n const exists = this[kHeadersMap].get(lowercaseName)\n\n // 2. Append (name, value) to list.\n if (exists) {\n const delimiter = lowercaseName === 'cookie' ? '; ' : ', '\n this[kHeadersMap].set(lowercaseName, {\n name: exists.name,\n value: `${exists.value}${delimiter}${value}`\n })\n } else {\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n if (lowercaseName === 'set-cookie') {\n this.cookies ??= []\n this.cookies.push(value)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n const lowercaseName = name.toLowerCase()\n\n if (lowercaseName === 'set-cookie') {\n this.cookies = [value]\n }\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n return this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n\n if (name === 'set-cookie') {\n this.cookies = null\n }\n\n return this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n // 1. If list does not contain name, then return null.\n if (!this.contains(name)) {\n return null\n }\n\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return this[kHeadersMap].get(name.toLowerCase())?.value ?? null\n }\n\n * [Symbol.iterator] () {\n // use the lowercased name\n for (const [name, { value }] of this[kHeadersMap]) {\n yield [name, value]\n }\n }\n\n get entries () {\n const headers = {}\n\n if (this[kHeadersMap].size) {\n for (const { name, value } of this[kHeadersMap].values()) {\n headers[name] = value\n }\n }\n\n return headers\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this\u2019s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers\u2019s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers\u2019s header list.\n // 8. If headers\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n return this[kHeadersList].append(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this\u2019s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this\u2019s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this\u2019s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n return this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this\u2019s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this\u2019s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this\u2019s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n return this[kHeadersList].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n getSetCookie () {\n webidl.brandCheck(this, Headers)\n\n // 1. If this\u2019s header list does not contain `Set-Cookie`, then return \u00AB \u00BB.\n // 2. Return the values of all headers in this\u2019s header list whose name is\n // a byte-case-insensitive match for `Set-Cookie`, in order.\n\n const list = this[kHeadersList].cookies\n\n if (list) {\n return [...list]\n }\n\n return []\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n get [kHeadersSortedMap] () {\n if (this[kHeadersList][kHeadersSortedMap]) {\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n // 1. Let headers be an empty list of headers with the key being the name\n // and value the value.\n const headers = []\n\n // 2. Let names be the result of convert header names to a sorted-lowercase\n // set with all the names of the headers in list.\n const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)\n const cookies = this[kHeadersList].cookies\n\n // 3. For each name of names:\n for (const [name, value] of names) {\n // 1. If name is `set-cookie`, then:\n if (name === 'set-cookie') {\n // 1. Let values be a list of all values of headers in list whose name\n // is a byte-case-insensitive match for name, in order.\n\n // 2. For each value of values:\n // 1. Append (name, value) to headers.\n for (const value of cookies) {\n headers.push([name, value])\n }\n } else {\n // 2. Otherwise:\n\n // 1. Let value be the result of getting name from list.\n\n // 2. Assert: value is non-null.\n assert(value !== null)\n\n // 3. Append (name, value) to headers.\n headers.push([name, value])\n }\n }\n\n this[kHeadersList][kHeadersSortedMap] = headers\n\n // 4. Return headers.\n return headers\n }\n\n keys () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'value'\n )\n }\n\n entries () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key+value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n webidl.brandCheck(this, Headers)\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n getSetCookie: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty,\n [Symbol.iterator]: { enumerable: false },\n [Symbol.toStringTag]: {\n value: 'Headers',\n configurable: true\n }\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence<sequence<ByteString>>'](V)\n }\n\n return webidl.converters['record<ByteString, ByteString>'](V)\n }\n\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n", "'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike,\n isomorphicEncode\n} = require('./util')\nconst {\n redirectStatus,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this\u2019s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data = undefined, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' })\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = new TextEncoder('utf-8').encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this\u2019s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' })\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object\u2019s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatus.includes(status)) {\n throw new RangeError('Invalid status code ' + status)\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this\u2019s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject\u2019s response\u2019s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n const value = isomorphicEncode(URLSerializer(parsedURL))\n\n // 7. Append `Location`/value to responseObject\u2019s response\u2019s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this\u2019s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is this\u2019s response\u2019s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers()\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n // Returns response\u2019s type, e.g., \"cors\".\n get type () {\n webidl.brandCheck(this, Response)\n\n // The type getter steps are to return this\u2019s response\u2019s type.\n return this[kState].type\n }\n\n // Returns response\u2019s URL, if it has one; otherwise the empty string.\n get url () {\n webidl.brandCheck(this, Response)\n\n const urlList = this[kState].urlList\n\n // The url getter steps are to return the empty string if this\u2019s\n // response\u2019s URL is null; otherwise this\u2019s response\u2019s URL,\n // serialized with exclude fragment set to true.\n const url = urlList[urlList.length - 1] ?? null\n\n if (url === null) {\n return ''\n }\n\n return URLSerializer(url, true)\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n webidl.brandCheck(this, Response)\n\n // The redirected getter steps are to return true if this\u2019s response\u2019s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response\u2019s status.\n get status () {\n webidl.brandCheck(this, Response)\n\n // The status getter steps are to return this\u2019s response\u2019s status.\n return this[kState].status\n }\n\n // Returns whether response\u2019s status is an ok status.\n get ok () {\n webidl.brandCheck(this, Response)\n\n // The ok getter steps are to return true if this\u2019s response\u2019s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response\u2019s status message.\n get statusText () {\n webidl.brandCheck(this, Response)\n\n // The statusText getter steps are to return this\u2019s response\u2019s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response\u2019s headers as Headers.\n get headers () {\n webidl.brandCheck(this, Response)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n get body () {\n webidl.brandCheck(this, Response)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Response)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n // Returns a clone of response.\n clone () {\n webidl.brandCheck(this, Response)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n throw webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this\u2019s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Response',\n configurable: true\n }\n})\n\nObject.defineProperties(Response, {\n json: kEnumerableProperty,\n redirect: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response\u2019s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response\u2019s body is non-null, then set newResponse\u2019s body to the\n // result of cloning response\u2019s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response\u2019s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response\u2019s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response\u2019s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(new DOMException('The operation was aborted.', 'AbortError'))\n : makeNetworkError('Request was cancelled.')\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response\u2019s response\u2019s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response\u2019s response\u2019s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response\u2019s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kHeaders], init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n throw webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code ' + response.status\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n types.isAnyArrayBuffer(V) ||\n types.isTypedArray(V) ||\n types.isDataView(V)\n ) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response,\n cloneResponse\n}\n", "/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod,\n makePolicyContainer\n} = require('./util')\nconst {\n forbiddenMethods,\n corsSafeListedMethods,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n requestDuplex\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require('events')\n\nlet TransformStream = globalThis.TransformStream\n\nconst kInit = Symbol('init')\nconst kAbortController = Symbol('abortController')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kInit) {\n return\n }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' })\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin(),\n get origin () {\n return this.baseUrl?.origin\n },\n policyContainer: makePolicyContainer()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this\u2019s relevant settings object\u2019s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input\u2019s request.\n request = input[kState]\n\n // 9. Set signal to input\u2019s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this\u2019s relevant settings object\u2019s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request\u2019s window is an environment settings object and its origin\n // is same origin with origin, then set window to request\u2019s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if ('window' in init) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request\u2019s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request\u2019s method.\n method: request.method,\n // header list A copy of request\u2019s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This\u2019s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request\u2019s priority.\n priority: request.priority,\n // origin request\u2019s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request\u2019s referrer.\n referrer: request.referrer,\n // referrer policy request\u2019s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request\u2019s mode.\n mode: request.mode,\n // credentials mode request\u2019s credentials mode.\n credentials: request.credentials,\n // cache mode request\u2019s cache mode.\n cache: request.cache,\n // redirect mode request\u2019s redirect mode.\n redirect: request.redirect,\n // integrity metadata request\u2019s integrity metadata.\n integrity: request.integrity,\n // keepalive request\u2019s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request\u2019s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request\u2019s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request\u2019s URL list.\n urlList: [...request.urlList]\n })\n\n // 13. If init is not empty, then:\n if (Object.keys(init).length > 0) {\n // 1. If request\u2019s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request\u2019s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request\u2019s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request\u2019s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request\u2019s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request\u2019s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request\u2019s URL to request\u2019s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request\u2019s URL list to \u00AB request\u2019s URL \u00BB.\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request\u2019s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // - parsedReferrer\u2019s scheme is \"about\" and path is the string \"client\"\n // - parsedReferrer\u2019s origin is not same origin with origin\n // then set request\u2019s referrer to \"client\".\n if (\n (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') ||\n (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl))\n ) {\n request.referrer = 'client'\n } else {\n // 4. Otherwise, set request\u2019s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request\u2019s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n throw webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request\u2019s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request\u2019s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n }\n\n // 18. If init[\"cache\"] exists, then set request\u2019s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n }\n\n // 21. If request\u2019s cache mode is \"only-if-cached\" and request\u2019s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request\u2019s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n }\n\n // 23. If init[\"integrity\"] exists, then set request\u2019s integrity metadata to it.\n if (init.integrity !== undefined && init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request\u2019s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(init.method)) {\n throw TypeError(`'${init.method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethods.indexOf(method.toUpperCase()) !== -1) {\n throw TypeError(`'${init.method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethod(init.method)\n\n // 4. Set request\u2019s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this\u2019s request to request.\n this[kState] = request\n\n // 28. Set this\u2019s signal to a new AbortSignal object with this\u2019s relevant\n // Realm.\n // TODO: could this be simplified with AbortSignal.any\n // (https://dom.spec.whatwg.org/#dom-abortsignal-any)\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this\u2019s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n // Keep a strong ref to ac while request object\n // is alive. This is needed to prevent AbortController\n // from being prematurely garbage collected.\n // See, https://github.com/nodejs/undici/issues/1926.\n this[kAbortController] = ac\n\n const acRef = new WeakRef(ac)\n const abort = function () {\n const ac = acRef.deref()\n if (ac !== undefined) {\n ac.abort(this.reason)\n }\n }\n\n // Third-party AbortControllers may not work with these.\n // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n try {\n // If the max amount of listeners is equal to the default, increase it\n // This is only available in node >= v19.9.0\n if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n setMaxListeners(100, signal)\n } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) {\n setMaxListeners(100, signal)\n }\n } catch {}\n\n util.addAbortListener(signal, abort)\n requestFinalizer.register(ac, { signal, abort })\n }\n }\n\n // 30. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is request\u2019s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers()\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this\u2019s request\u2019s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this\u2019s request\u2019s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethods.includes(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this\u2019s headers\u2019s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (Object.keys(init).length !== 0) {\n // 1. Let headers be a copy of this\u2019s headers and its associated header\n // list.\n let headers = new Headers(this[kHeaders])\n\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n if (init.headers !== undefined) {\n headers = init.headers\n }\n\n // 3. Empty this\u2019s headers\u2019s header list.\n this[kHeaders][kHeadersList].clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header\u2019s name/header\u2019s value to this\u2019s headers.\n if (headers.constructor.name === 'Headers') {\n for (const [key, val] of headers) {\n this[kHeaders].append(key, val)\n }\n } else {\n // 5. Otherwise, fill this\u2019s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input\u2019s request\u2019s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request\u2019s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n (init.body != null || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request\u2019s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this\u2019s headers\u2019s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this\u2019s headers.\n if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody\u2019s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If initBody is non-null and init[\"duplex\"] does not exist,\n // then throw a TypeError.\n if (initBody != null && init.duplex == null) {\n throw new TypeError('RequestInit: duplex option is required when sending a body.')\n }\n\n // 2. If this\u2019s request\u2019s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 3. Set this\u2019s request\u2019s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this\u2019s request\u2019s body to finalBody.\n this[kState].body = finalBody\n }\n\n // Returns request\u2019s HTTP method, which is \"GET\" by default.\n get method () {\n webidl.brandCheck(this, Request)\n\n // The method getter steps are to return this\u2019s request\u2019s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n webidl.brandCheck(this, Request)\n\n // The url getter steps are to return this\u2019s request\u2019s URL, serialized.\n return URLSerializer(this[kState].url)\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n webidl.brandCheck(this, Request)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n webidl.brandCheck(this, Request)\n\n // The destination getter are to return this\u2019s request\u2019s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global\u2019s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n webidl.brandCheck(this, Request)\n\n // 1. If this\u2019s request\u2019s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this\u2019s request\u2019s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this\u2019s request\u2019s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request\u2019s\n // referrer.\n get referrerPolicy () {\n webidl.brandCheck(this, Request)\n\n // The referrerPolicy getter steps are to return this\u2019s request\u2019s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n webidl.brandCheck(this, Request)\n\n // The mode getter steps are to return this\u2019s request\u2019s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this\u2019s request\u2019s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser\u2019s cache when fetching.\n get cache () {\n webidl.brandCheck(this, Request)\n\n // The cache getter steps are to return this\u2019s request\u2019s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n webidl.brandCheck(this, Request)\n\n // The redirect getter steps are to return this\u2019s request\u2019s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request\u2019s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n webidl.brandCheck(this, Request)\n\n // The integrity getter steps are to return this\u2019s request\u2019s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n webidl.brandCheck(this, Request)\n\n // The keepalive getter steps are to return this\u2019s request\u2019s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isReloadNavigation getter steps are to return true if this\u2019s\n // request\u2019s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isHistoryNavigation getter steps are to return true if this\u2019s request\u2019s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n webidl.brandCheck(this, Request)\n\n // The signal getter steps are to return this\u2019s signal.\n return this[kSignal]\n }\n\n get body () {\n webidl.brandCheck(this, Request)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Request)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n get duplex () {\n webidl.brandCheck(this, Request)\n\n return 'half'\n }\n\n // Returns a clone of request.\n clone () {\n webidl.brandCheck(this, Request)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this\u2019s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedRequestObject = new Request(kInit)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers()\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject\u2019s signal follow this\u2019s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n util.addAbortListener(\n this.signal,\n () => {\n ac.abort(this.signal.reason)\n }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request\u2019s body is non-null, set newRequest\u2019s body to the\n // result of cloning request\u2019s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty,\n duplex: kEnumerableProperty,\n destination: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n isHistoryNavigation: kEnumerableProperty,\n isReloadNavigation: kEnumerableProperty,\n keepalive: kEnumerableProperty,\n integrity: kEnumerableProperty,\n cache: kEnumerableProperty,\n credentials: kEnumerableProperty,\n attribute: kEnumerableProperty,\n referrerPolicy: kEnumerableProperty,\n referrer: kEnumerableProperty,\n mode: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Request',\n configurable: true\n }\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: referrerPolicy\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: requestMode\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: requestCredentials\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: requestCache\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: requestRedirect\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n },\n {\n key: 'duplex',\n converter: webidl.converters.DOMString,\n allowedValues: requestDuplex\n }\n])\n\nmodule.exports = { Request, makeRequest }\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody,\n readableStreamClose,\n isomorphicEncode,\n urlIsLocal,\n urlIsHttpHttpsScheme,\n urlHasHttpsScheme\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody } = require('./body')\nconst {\n redirectStatus,\n nullBodyStatus,\n safeMethods,\n requestBodyHeader,\n subresource,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\nconst { getGlobalDispatcher } = require('../global')\nconst { webidl } = require('./webidl')\nconst { STATUS_CODES } = require('http')\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream = globalThis.ReadableStream\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n // 2 terminated listeners get added per request,\n // but only 1 gets removed. If there are 20 redirects,\n // 21 listeners will be added.\n // See https://github.com/nodejs/undici/issues/1711\n // TODO (fix): Find and fix root cause for leaked listener.\n this.setMaxListeners(21)\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n // https://fetch.spec.whatwg.org/#fetch-controller-abort\n abort (error) {\n if (this.state !== 'ongoing') {\n return\n }\n\n // 1. Set controller\u2019s state to \"aborted\".\n this.state = 'aborted'\n\n // 2. Let fallbackError be an \"AbortError\" DOMException.\n // 3. Set error to fallbackError if it is not given.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 4. Let serializedError be StructuredSerialize(error).\n // If that threw an exception, catch it, and let\n // serializedError be StructuredSerialize(fallbackError).\n\n // 5. Set controller\u2019s serialized abort reason to serializedError.\n this.serializedAbortReason = error\n\n this.connection?.destroy(error)\n this.emit('terminated', error)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nasync function fetch (input, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' })\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject\u2019s request.\n const request = requestObject[kState]\n\n // 4. If requestObject\u2019s signal\u2019s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort the fetch() call with p, request, null, and\n // requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, null, requestObject.signal.reason)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request\u2019s client\u2019s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request\u2019s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this\u2019s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject\u2019s signal:\n addAbortListener(\n requestObject.signal,\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Assert: controller is non-null.\n assert(controller != null)\n\n // 3. Abort controller with requestObject\u2019s signal\u2019s abort reason.\n controller.abort(requestObject.signal.reason)\n\n // 4. Abort the fetch() call with p, request, responseObject,\n // and requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, responseObject, requestObject.signal.reason)\n }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return\n }\n\n // 2. If response\u2019s aborted flag is set, then:\n if (response.aborted) {\n // 1. Let deserializedError be the result of deserialize a serialized\n // abort reason given controller\u2019s serialized abort reason and\n // relevantRealm.\n\n // 2. Abort the fetch() call with p, request, responseObject, and\n // deserializedError.\n\n abortFetch(p, request, responseObject, controller.serializedAbortReason)\n return\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response\u2019s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response\u2019s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response\u2019s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response\u2019s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL\u2019s scheme is not an HTTP(S) scheme, then return.\n if (!urlIsHttpHttpsScheme(originalURL)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response\u2019s timing allow passed flag is not set, then:\n if (!timingInfo.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo\u2019s end time to the coarsened shared current time\n // given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability.\n // TODO: given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability?\n timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) {\n performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject, error) {\n // Note: AbortSignal.reason was added in node v17.2.0\n // which would give us an undefined error to reject with.\n // Remove this once node v16 is no longer supported.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 1. Reject promise with error.\n p.reject(error)\n\n // 2. If request\u2019s body is not null and is readable, then cancel request\u2019s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 3. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 4. Let response be responseObject\u2019s response.\n const response = responseObject[kState]\n\n // 5. If response\u2019s body is not null and is readable, then error response\u2019s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request\u2019s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request\u2019s client\u2019s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request\u2019s client\u2019s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request\u2019s body is a byte sequence, then set request\u2019s body to\n // request\u2019s body as a body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request\u2019s window is \"client\", then set request\u2019s window to request\u2019s\n // client, if request\u2019s client\u2019s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request\u2019s origin is \"client\", then set request\u2019s origin to request\u2019s\n // client\u2019s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request\u2019s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request\u2019s client is non-null, then set request\u2019s policy\n // container to a clone of request\u2019s client\u2019s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request\u2019s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request\u2019s header list does not contain `Accept`, then:\n if (!request.headersList.contains('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request\u2019s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request\u2019s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request\u2019s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request\u2019s header list.\n if (!request.headersList.contains('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request\u2019s priority is null, then use request\u2019s initiator and\n // destination appropriately in setting request\u2019s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresource.includes(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request\u2019s local-URLs-only flag is set and request\u2019s current URL is\n // not local, then set response to a network error.\n if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request\u2019s referrer policy is the empty string, then set request\u2019s\n // referrer policy to request\u2019s policy container\u2019s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request\u2019s referrer is not \"no-referrer\", then set request\u2019s\n // referrer to the result of invoking determine request\u2019s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request\u2019s current URL\u2019s scheme to \"https\" if all of the following\n // conditions are true:\n // - request\u2019s current URL\u2019s scheme is \"http\"\n // - request\u2019s current URL\u2019s host is a domain\n // - Matching request\u2019s current URL\u2019s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request\u2019s current URL\u2019s origin is same origin with request\u2019s origin,\n // and request\u2019s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request\u2019s current URL\u2019s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request\u2019s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request\u2019s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request\u2019s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request\u2019s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request\u2019s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s current URL\u2019s scheme is not an HTTP(S) scheme\n if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request\u2019s use-CORS-preflight flag is set\n // - request\u2019s unsafe-request flag is set and either request\u2019s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request\u2019s header list is not empty\n // 1. Set request\u2019s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request\u2019s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request\u2019s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response\u2019s header list.\n // TODO\n // 2. If request\u2019s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response\u2019s CORS-exposed header-name list to\n // all unique header names in response\u2019s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response\u2019s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response\u2019s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse\u2019s URL list is empty, then set it to a clone of\n // request\u2019s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request\u2019s timing allow failed flag is unset, then set\n // internalResponse\u2019s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response\u2019s type is \"opaque\", internalResponse\u2019s status is 206,\n // internalResponse\u2019s range-requested flag is set, and request\u2019s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.contains('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request\u2019s method is\n // `HEAD` or `CONNECT`, or internalResponse\u2019s status is a null body status,\n // set internalResponse\u2019s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request\u2019s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request\u2019s response tainting is \"opaque\", or response\u2019s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request\u2019s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response\u2019s body to bytes as a body.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response\u2019s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nasync function schemeFetch (fetchParams) {\n // Note: since the connection is destroyed on redirect, which sets fetchParams to a\n // cancelled state, we do not want this condition to trigger *unless* there have been\n // no redirects. See https://github.com/nodejs/undici/issues/1776\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Let request be fetchParams\u2019s request.\n const { request } = fetchParams\n\n const { protocol: scheme } = requestCurrentURL(request)\n\n // 3. Switch on request\u2019s current URL\u2019s scheme and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request\u2019s current URL\u2019s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is \u00AB (`Content-Type`, `text/html;charset=utf-8`) \u00BB,\n // and body is the empty byte sequence as a body.\n\n // Otherwise, return a network error.\n return makeNetworkError('about scheme is not supported')\n }\n case 'blob:': {\n if (!resolveObjectURL) {\n resolveObjectURL = require('buffer').resolveObjectURL\n }\n\n // 1. Let blobURLEntry be request\u2019s current URL\u2019s blob URL entry.\n const blobURLEntry = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (blobURLEntry.search.length !== 0) {\n return makeNetworkError('NetworkError when attempting to fetch resource.')\n }\n\n const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString())\n\n // 2. If request\u2019s method is not `GET`, blobURLEntry is null, or blobURLEntry\u2019s\n // object is not a Blob object, then return a network error.\n if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n return makeNetworkError('invalid method')\n }\n\n // 3. Let bodyWithType be the result of safely extracting blobURLEntry\u2019s object.\n const bodyWithType = safelyExtractBody(blobURLEntryObject)\n\n // 4. Let body be bodyWithType\u2019s body.\n const body = bodyWithType[0]\n\n // 5. Let length be body\u2019s length, serialized and isomorphic encoded.\n const length = isomorphicEncode(`${body.length}`)\n\n // 6. Let type be bodyWithType\u2019s type if it is non-null; otherwise the empty byte sequence.\n const type = bodyWithType[1] ?? ''\n\n // 7. Return a new response whose status message is `OK`, header list is\n // \u00AB (`Content-Length`, length), (`Content-Type`, type) \u00BB, and body is body.\n const response = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-length', { name: 'Content-Length', value: length }],\n ['content-type', { name: 'Content-Type', value: type }]\n ]\n })\n\n response.body = body\n\n return response\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request\u2019s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return makeNetworkError('failed to fetch the data URL')\n }\n\n // 3. Let mimeType be dataURLStruct\u2019s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is \u00AB (`Content-Type`, mimeType) \u00BB,\n // and body is dataURLStruct\u2019s body as a body.\n return makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', { name: 'Content-Type', value: mimeType }]\n ],\n body: safelyExtractBody(dataURLStruct.body)[0]\n })\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return makeNetworkError('not implemented... yet...')\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return await httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return makeNetworkError('unknown scheme')\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams\u2019s process response done is not null, then queue a fetch\n // task to run fetchParams\u2019s process response done given response, with\n // fetchParams\u2019s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nasync function fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response\u2019s URL list to \u00AB fetchParams\u2019s request\u2019s URL list[0] \u00BB.\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response\u2019s timing info to the result of creating an opaque timing\n // info for fetchParams\u2019s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // If fetchParams\u2019s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams\u2019s process response\n // end-of-body given response with fetchParams\u2019s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams\u2019s process response is non-null, then queue a fetch task\n // to run fetchParams\u2019s process response given response, with fetchParams\u2019s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response\u2019s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n }, {\n size () {\n return 1\n }\n }, {\n size () {\n return 1\n }\n })\n\n // 4. Set response\u2019s body to the result of piping response\u2019s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams\u2019s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams\u2019s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams\u2019s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response\u2019s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams\u2019s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response\u2019s body given processBody, processBodyError,\n // and fetchParams\u2019s task destination.\n await fullyReadBody(response.body, processBody, processBodyError)\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request\u2019s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request\u2019s redirect mode is \"follow\", then set request\u2019s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request\u2019s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request\u2019s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request\u2019s response tainting or response\u2019s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request\u2019s origin, request\u2019s client, request\u2019s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse\u2019s status is a redirect status, then:\n if (redirectStatus.includes(actualResponse.status)) {\n // 1. If actualResponse\u2019s status is not 303, request\u2019s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request\u2019s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nasync function httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response\u2019s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse\u2019s location URL given request\u2019s current\n // URL\u2019s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return makeNetworkError(err)\n }\n\n // 6. If locationURL\u2019s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!urlIsHttpHttpsScheme(locationURL)) {\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // 7. If request\u2019s redirect count is 20, then return a network error.\n if (request.redirectCount === 20) {\n return makeNetworkError('redirect count exceeded')\n }\n\n // 8. Increase request\u2019s redirect count by 1.\n request.redirectCount += 1\n\n // 9. If request\u2019s mode is \"cors\", locationURL includes credentials, and\n // request\u2019s origin is not same origin with locationURL\u2019s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return makeNetworkError('cross origin not allowed for request mode \"cors\"')\n }\n\n // 10. If request\u2019s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n )\n }\n\n // 11. If actualResponse\u2019s status is not 303, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return makeNetworkError()\n }\n\n // 12. If one of the following is true\n // - actualResponse\u2019s status is 301 or 302 and request\u2019s method is `POST`\n // - actualResponse\u2019s status is 303 and request\u2019s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !['GET', 'HEAD'].includes(request.method))\n ) {\n // then:\n // 1. Set request\u2019s method to `GET` and request\u2019s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request\u2019s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request\u2019s current URL\u2019s origin is not same origin with locationURL\u2019s\n // origin, then for each headerName of CORS non-wildcard request-header name,\n // delete headerName from request\u2019s header list.\n if (!sameOrigin(requestCurrentURL(request), locationURL)) {\n // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n request.headersList.delete('authorization')\n }\n\n // 14. If request\u2019s body is non-null, then set request\u2019s body to the first return\n // value of safely extracting request\u2019s body\u2019s source.\n if (request.body != null) {\n assert(request.body.source != null)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 15. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 16. Set timingInfo\u2019s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 17. If timingInfo\u2019s redirect start time is 0, then set timingInfo\u2019s\n // redirect start time to timingInfo\u2019s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 18. Append locationURL to request\u2019s URL list.\n request.urlList.push(locationURL)\n\n // 19. Invoke set request\u2019s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 20. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request\u2019s window is \"no-window\" and request\u2019s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams\u2019s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest\u2019s body\u2019s length, if httpRequest\u2019s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest\u2019s body is null and httpRequest\u2019s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest\u2019s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest\u2019s header list.\n\n // 10. If contentLength is non-null and httpRequest\u2019s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest\u2019s referrer is a URL, then append\n // `Referer`/httpRequest\u2019s referrer, serialized and isomorphic encoded,\n // to httpRequest\u2019s header list.\n if (httpRequest.referrer instanceof URL) {\n httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href))\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest\u2019s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('user-agent')) {\n httpRequest.headersList.append('user-agent', 'undici')\n }\n\n // 15. If httpRequest\u2019s cache mode is \"default\" and httpRequest\u2019s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest\u2019s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.contains('if-modified-since') ||\n httpRequest.headersList.contains('if-none-match') ||\n httpRequest.headersList.contains('if-unmodified-since') ||\n httpRequest.headersList.contains('if-match') ||\n httpRequest.headersList.contains('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest\u2019s cache mode is \"no-cache\", httpRequest\u2019s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest\u2019s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest\u2019s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.contains('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest\u2019s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest\u2019s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest\u2019s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest\u2019s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest\u2019s header list.\n if (httpRequest.headersList.contains('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest\u2019s header list per HTTP. Do not append a given\n // header if httpRequest\u2019s header list contains that header\u2019s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.contains('accept-encoding')) {\n if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest\u2019s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there\u2019s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest\u2019s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest\u2019s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest\u2019s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest\u2019s method is unsafe and forwardResponse\u2019s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethods.includes(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse\u2019s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response\u2019s URL list to a clone of httpRequest\u2019s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest\u2019s header list contains `Range`, then set response\u2019s\n // range-requested flag.\n if (httpRequest.headersList.contains('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response\u2019s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response\u2019s status is 401, httpRequest\u2019s response tainting is not\n // \"cors\", includeCredentials is true, and request\u2019s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response\u2019s status is 407, then:\n if (response.status === 407) {\n // 1. If request\u2019s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request\u2019s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response\u2019s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request\u2019s body is null, or request\u2019s body is non-null and request\u2019s body\u2019s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request\u2019s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request\u2019s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request\u2019s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request\u2019s current URL\u2019s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo\u2019s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection\u2019s\n // timing info, timingInfo\u2019s post-redirect start time, and fetchParams\u2019s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request\u2019s header list.\n\n // 4. Set timingInfo\u2019s final network-request start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request\u2019s body is non-null, and request\u2019s body\u2019s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request\u2019s body in that buffer. If the user agent reads from\n // request\u2019s body beyond that buffer\u2019s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo\u2019s final network-response start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated capability,\n // immediately after the user agent\u2019s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo\u2019s final network-response start time above.\n\n // - If request\u2019s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request\u2019s window is an environment settings object, make the\n // dialog available in request\u2019s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request\u2019s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams\u2019s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams\u2019s process request\n // end-of-body and fetchParams\u2019s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams\u2019s process request body is non-null, then run\n // fetchParams\u2019s process request body given bytes\u2019s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams\u2019s process request end-of-body is non-null,\n // then run fetchParams\u2019s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams\u2019s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request\u2019s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams\u2019s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n // socket is only provided for websockets\n const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody })\n\n if (socket) {\n response = makeResponse({ status, statusText, headersList, socket })\n } else {\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n }\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams\u2019s\n // controller with reason, given reason.\n const cancelAlgorithm = (reason) => {\n fetchParams.controller.abort(reason)\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n {\n highWaterMark: 0,\n size () {\n return 1\n }\n }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response\u2019s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request\u2019s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response\u2019s header list, if any, and request\u2019s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n let isFailure\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n\n // err may be propagated from the result of calling readablestream.cancel,\n // which might not be an error. https://github.com/nodejs/undici/issues/2009\n isFailure = true\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response\u2019s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n readableStreamClose(fetchParams.controller.controller)\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo\u2019s decoded body size by bytes\u2019s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams\u2019s controller.\n if (isFailure) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn\u2019t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response\u2019s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, then error stream with the result of\n // deserialize a serialized abort reason given fetchParams\u2019s\n // controller\u2019s serialized abort reason and an\n // implementation-defined realm.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n fetchParams.controller.serializedAbortReason\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n /** @type {import('../..').Agent} */\n const agent = fetchParams.controller.dispatcher\n\n return new Promise((resolve, reject) => agent.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && request.body.source : body,\n headers: request.headersList.entries,\n maxRedirections: 0,\n upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse()\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers.append(key, val)\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatus.includes(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n if (coding === 'x-gzip' || coding === 'gzip') {\n decoders.push(zlib.createGunzip({\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n }))\n } else if (coding === 'deflate') {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response\u2019s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response\u2019s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo\u2019s encoded body size by bytes\u2019s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n },\n\n onUpgrade (status, headersList, socket) {\n if (status !== 101) {\n return\n }\n\n const headers = new Headers()\n\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n headers.append(key, val)\n }\n\n resolve({\n status,\n statusText: STATUS_CODES[status],\n headersList: headers[kHeadersList],\n socket\n })\n\n return true\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n", "'use strict'\n\nmodule.exports = {\n kState: Symbol('FileReader state'),\n kResult: Symbol('FileReader result'),\n kError: Symbol('FileReader error'),\n kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'),\n kEvents: Symbol('FileReader events'),\n kAborted: Symbol('FileReader aborted')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\n\nconst kState = Symbol('ProgressEvent state')\n\n/**\n * @see https://xhr.spec.whatwg.org/#progressevent\n */\nclass ProgressEvent extends Event {\n constructor (type, eventInitDict = {}) {\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {})\n\n super(type, eventInitDict)\n\n this[kState] = {\n lengthComputable: eventInitDict.lengthComputable,\n loaded: eventInitDict.loaded,\n total: eventInitDict.total\n }\n }\n\n get lengthComputable () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].lengthComputable\n }\n\n get loaded () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].loaded\n }\n\n get total () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].total\n }\n}\n\nwebidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n {\n key: 'lengthComputable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'loaded',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'total',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n])\n\nmodule.exports = {\n ProgressEvent\n}\n", "'use strict'\n\n/**\n * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n * @param {string|undefined} label\n */\nfunction getEncoding (label) {\n if (!label) {\n return 'failure'\n }\n\n // 1. Remove any leading and trailing ASCII whitespace from label.\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, then return the\n // corresponding encoding; otherwise return failure.\n switch (label.trim().toLowerCase()) {\n case 'unicode-1-1-utf-8':\n case 'unicode11utf8':\n case 'unicode20utf8':\n case 'utf-8':\n case 'utf8':\n case 'x-unicode20utf8':\n return 'UTF-8'\n case '866':\n case 'cp866':\n case 'csibm866':\n case 'ibm866':\n return 'IBM866'\n case 'csisolatin2':\n case 'iso-8859-2':\n case 'iso-ir-101':\n case 'iso8859-2':\n case 'iso88592':\n case 'iso_8859-2':\n case 'iso_8859-2:1987':\n case 'l2':\n case 'latin2':\n return 'ISO-8859-2'\n case 'csisolatin3':\n case 'iso-8859-3':\n case 'iso-ir-109':\n case 'iso8859-3':\n case 'iso88593':\n case 'iso_8859-3':\n case 'iso_8859-3:1988':\n case 'l3':\n case 'latin3':\n return 'ISO-8859-3'\n case 'csisolatin4':\n case 'iso-8859-4':\n case 'iso-ir-110':\n case 'iso8859-4':\n case 'iso88594':\n case 'iso_8859-4':\n case 'iso_8859-4:1988':\n case 'l4':\n case 'latin4':\n return 'ISO-8859-4'\n case 'csisolatincyrillic':\n case 'cyrillic':\n case 'iso-8859-5':\n case 'iso-ir-144':\n case 'iso8859-5':\n case 'iso88595':\n case 'iso_8859-5':\n case 'iso_8859-5:1988':\n return 'ISO-8859-5'\n case 'arabic':\n case 'asmo-708':\n case 'csiso88596e':\n case 'csiso88596i':\n case 'csisolatinarabic':\n case 'ecma-114':\n case 'iso-8859-6':\n case 'iso-8859-6-e':\n case 'iso-8859-6-i':\n case 'iso-ir-127':\n case 'iso8859-6':\n case 'iso88596':\n case 'iso_8859-6':\n case 'iso_8859-6:1987':\n return 'ISO-8859-6'\n case 'csisolatingreek':\n case 'ecma-118':\n case 'elot_928':\n case 'greek':\n case 'greek8':\n case 'iso-8859-7':\n case 'iso-ir-126':\n case 'iso8859-7':\n case 'iso88597':\n case 'iso_8859-7':\n case 'iso_8859-7:1987':\n case 'sun_eu_greek':\n return 'ISO-8859-7'\n case 'csiso88598e':\n case 'csisolatinhebrew':\n case 'hebrew':\n case 'iso-8859-8':\n case 'iso-8859-8-e':\n case 'iso-ir-138':\n case 'iso8859-8':\n case 'iso88598':\n case 'iso_8859-8':\n case 'iso_8859-8:1988':\n case 'visual':\n return 'ISO-8859-8'\n case 'csiso88598i':\n case 'iso-8859-8-i':\n case 'logical':\n return 'ISO-8859-8-I'\n case 'csisolatin6':\n case 'iso-8859-10':\n case 'iso-ir-157':\n case 'iso8859-10':\n case 'iso885910':\n case 'l6':\n case 'latin6':\n return 'ISO-8859-10'\n case 'iso-8859-13':\n case 'iso8859-13':\n case 'iso885913':\n return 'ISO-8859-13'\n case 'iso-8859-14':\n case 'iso8859-14':\n case 'iso885914':\n return 'ISO-8859-14'\n case 'csisolatin9':\n case 'iso-8859-15':\n case 'iso8859-15':\n case 'iso885915':\n case 'iso_8859-15':\n case 'l9':\n return 'ISO-8859-15'\n case 'iso-8859-16':\n return 'ISO-8859-16'\n case 'cskoi8r':\n case 'koi':\n case 'koi8':\n case 'koi8-r':\n case 'koi8_r':\n return 'KOI8-R'\n case 'koi8-ru':\n case 'koi8-u':\n return 'KOI8-U'\n case 'csmacintosh':\n case 'mac':\n case 'macintosh':\n case 'x-mac-roman':\n return 'macintosh'\n case 'iso-8859-11':\n case 'iso8859-11':\n case 'iso885911':\n case 'tis-620':\n case 'windows-874':\n return 'windows-874'\n case 'cp1250':\n case 'windows-1250':\n case 'x-cp1250':\n return 'windows-1250'\n case 'cp1251':\n case 'windows-1251':\n case 'x-cp1251':\n return 'windows-1251'\n case 'ansi_x3.4-1968':\n case 'ascii':\n case 'cp1252':\n case 'cp819':\n case 'csisolatin1':\n case 'ibm819':\n case 'iso-8859-1':\n case 'iso-ir-100':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'iso_8859-1:1987':\n case 'l1':\n case 'latin1':\n case 'us-ascii':\n case 'windows-1252':\n case 'x-cp1252':\n return 'windows-1252'\n case 'cp1253':\n case 'windows-1253':\n case 'x-cp1253':\n return 'windows-1253'\n case 'cp1254':\n case 'csisolatin5':\n case 'iso-8859-9':\n case 'iso-ir-148':\n case 'iso8859-9':\n case 'iso88599':\n case 'iso_8859-9':\n case 'iso_8859-9:1989':\n case 'l5':\n case 'latin5':\n case 'windows-1254':\n case 'x-cp1254':\n return 'windows-1254'\n case 'cp1255':\n case 'windows-1255':\n case 'x-cp1255':\n return 'windows-1255'\n case 'cp1256':\n case 'windows-1256':\n case 'x-cp1256':\n return 'windows-1256'\n case 'cp1257':\n case 'windows-1257':\n case 'x-cp1257':\n return 'windows-1257'\n case 'cp1258':\n case 'windows-1258':\n case 'x-cp1258':\n return 'windows-1258'\n case 'x-mac-cyrillic':\n case 'x-mac-ukrainian':\n return 'x-mac-cyrillic'\n case 'chinese':\n case 'csgb2312':\n case 'csiso58gb231280':\n case 'gb2312':\n case 'gb_2312':\n case 'gb_2312-80':\n case 'gbk':\n case 'iso-ir-58':\n case 'x-gbk':\n return 'GBK'\n case 'gb18030':\n return 'gb18030'\n case 'big5':\n case 'big5-hkscs':\n case 'cn-big5':\n case 'csbig5':\n case 'x-x-big5':\n return 'Big5'\n case 'cseucpkdfmtjapanese':\n case 'euc-jp':\n case 'x-euc-jp':\n return 'EUC-JP'\n case 'csiso2022jp':\n case 'iso-2022-jp':\n return 'ISO-2022-JP'\n case 'csshiftjis':\n case 'ms932':\n case 'ms_kanji':\n case 'shift-jis':\n case 'shift_jis':\n case 'sjis':\n case 'windows-31j':\n case 'x-sjis':\n return 'Shift_JIS'\n case 'cseuckr':\n case 'csksc56011987':\n case 'euc-kr':\n case 'iso-ir-149':\n case 'korean':\n case 'ks_c_5601-1987':\n case 'ks_c_5601-1989':\n case 'ksc5601':\n case 'ksc_5601':\n case 'windows-949':\n return 'EUC-KR'\n case 'csiso2022kr':\n case 'hz-gb-2312':\n case 'iso-2022-cn':\n case 'iso-2022-cn-ext':\n case 'iso-2022-kr':\n case 'replacement':\n return 'replacement'\n case 'unicodefffe':\n case 'utf-16be':\n return 'UTF-16BE'\n case 'csunicode':\n case 'iso-10646-ucs-2':\n case 'ucs-2':\n case 'unicode':\n case 'unicodefeff':\n case 'utf-16':\n case 'utf-16le':\n return 'UTF-16LE'\n case 'x-user-defined':\n return 'x-user-defined'\n default: return 'failure'\n }\n}\n\nmodule.exports = {\n getEncoding\n}\n", "'use strict'\n\nconst {\n kState,\n kError,\n kResult,\n kAborted,\n kLastProgressEventFired\n} = require('./symbols')\nconst { ProgressEvent } = require('./progressevent')\nconst { getEncoding } = require('./encoding')\nconst { DOMException } = require('../fetch/constants')\nconst { serializeAMimeType, parseMIMEType } = require('../fetch/dataURL')\nconst { types } = require('util')\nconst { StringDecoder } = require('string_decoder')\nconst { btoa } = require('buffer')\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#readOperation\n * @param {import('./filereader').FileReader} fr\n * @param {import('buffer').Blob} blob\n * @param {string} type\n * @param {string?} encodingName\n */\nfunction readOperation (fr, blob, type, encodingName) {\n // 1. If fr\u2019s state is \"loading\", throw an InvalidStateError\n // DOMException.\n if (fr[kState] === 'loading') {\n throw new DOMException('Invalid state', 'InvalidStateError')\n }\n\n // 2. Set fr\u2019s state to \"loading\".\n fr[kState] = 'loading'\n\n // 3. Set fr\u2019s result to null.\n fr[kResult] = null\n\n // 4. Set fr\u2019s error to null.\n fr[kError] = null\n\n // 5. Let stream be the result of calling get stream on blob.\n /** @type {import('stream/web').ReadableStream} */\n const stream = blob.stream()\n\n // 6. Let reader be the result of getting a reader from stream.\n const reader = stream.getReader()\n\n // 7. Let bytes be an empty byte sequence.\n /** @type {Uint8Array[]} */\n const bytes = []\n\n // 8. Let chunkPromise be the result of reading a chunk from\n // stream with reader.\n let chunkPromise = reader.read()\n\n // 9. Let isFirstChunk be true.\n let isFirstChunk = true\n\n // 10. In parallel, while true:\n // Note: \"In parallel\" just means non-blocking\n // Note 2: readOperation itself cannot be async as double\n // reading the body would then reject the promise, instead\n // of throwing an error.\n ;(async () => {\n while (!fr[kAborted]) {\n // 1. Wait for chunkPromise to be fulfilled or rejected.\n try {\n const { done, value } = await chunkPromise\n\n // 2. If chunkPromise is fulfilled, and isFirstChunk is\n // true, queue a task to fire a progress event called\n // loadstart at fr.\n if (isFirstChunk && !fr[kAborted]) {\n queueMicrotask(() => {\n fireAProgressEvent('loadstart', fr)\n })\n }\n\n // 3. Set isFirstChunk to false.\n isFirstChunk = false\n\n // 4. If chunkPromise is fulfilled with an object whose\n // done property is false and whose value property is\n // a Uint8Array object, run these steps:\n if (!done && types.isUint8Array(value)) {\n // 1. Let bs be the byte sequence represented by the\n // Uint8Array object.\n\n // 2. Append bs to bytes.\n bytes.push(value)\n\n // 3. If roughly 50ms have passed since these steps\n // were last invoked, queue a task to fire a\n // progress event called progress at fr.\n if (\n (\n fr[kLastProgressEventFired] === undefined ||\n Date.now() - fr[kLastProgressEventFired] >= 50\n ) &&\n !fr[kAborted]\n ) {\n fr[kLastProgressEventFired] = Date.now()\n queueMicrotask(() => {\n fireAProgressEvent('progress', fr)\n })\n }\n\n // 4. Set chunkPromise to the result of reading a\n // chunk from stream with reader.\n chunkPromise = reader.read()\n } else if (done) {\n // 5. Otherwise, if chunkPromise is fulfilled with an\n // object whose done property is true, queue a task\n // to run the following steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Let result be the result of package data given\n // bytes, type, blob\u2019s type, and encodingName.\n try {\n const result = packageData(bytes, type, blob.type, encodingName)\n\n // 4. Else:\n\n if (fr[kAborted]) {\n return\n }\n\n // 1. Set fr\u2019s result to result.\n fr[kResult] = result\n\n // 2. Fire a progress event called load at the fr.\n fireAProgressEvent('load', fr)\n } catch (error) {\n // 3. If package data threw an exception error:\n\n // 1. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 2. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n }\n\n // 5. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at the fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n } catch (error) {\n if (fr[kAborted]) {\n return\n }\n\n // 6. Otherwise, if chunkPromise is rejected with an\n // error error, queue a task to run the following\n // steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 3. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n\n // 4. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n }\n })()\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e The name of the event\n * @param {import('./filereader').FileReader} reader\n */\nfunction fireAProgressEvent (e, reader) {\n // The progress event e does not bubble. e.bubbles must be false\n // The progress event e is NOT cancelable. e.cancelable must be false\n const event = new ProgressEvent(e, {\n bubbles: false,\n cancelable: false\n })\n\n reader.dispatchEvent(event)\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#blob-package-data\n * @param {Uint8Array[]} bytes\n * @param {string} type\n * @param {string?} mimeType\n * @param {string?} encodingName\n */\nfunction packageData (bytes, type, mimeType, encodingName) {\n // 1. A Blob has an associated package data algorithm, given\n // bytes, a type, a optional mimeType, and a optional\n // encodingName, which switches on type and runs the\n // associated steps:\n\n switch (type) {\n case 'DataURL': {\n // 1. Return bytes as a DataURL [RFC2397] subject to\n // the considerations below:\n // * Use mimeType as part of the Data URL if it is\n // available in keeping with the Data URL\n // specification [RFC2397].\n // * If mimeType is not available return a Data URL\n // without a media-type. [RFC2397].\n\n // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n // dataurl := \"data:\" [ mediatype ] [ \";base64\" ] \",\" data\n // mediatype := [ type \"/\" subtype ] *( \";\" parameter )\n // data := *urlchar\n // parameter := attribute \"=\" value\n let dataURL = 'data:'\n\n const parsed = parseMIMEType(mimeType || 'application/octet-stream')\n\n if (parsed !== 'failure') {\n dataURL += serializeAMimeType(parsed)\n }\n\n dataURL += ';base64,'\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n dataURL += btoa(decoder.write(chunk))\n }\n\n dataURL += btoa(decoder.end())\n\n return dataURL\n }\n case 'Text': {\n // 1. Let encoding be failure\n let encoding = 'failure'\n\n // 2. If the encodingName is present, set encoding to the\n // result of getting an encoding from encodingName.\n if (encodingName) {\n encoding = getEncoding(encodingName)\n }\n\n // 3. If encoding is failure, and mimeType is present:\n if (encoding === 'failure' && mimeType) {\n // 1. Let type be the result of parse a MIME type\n // given mimeType.\n const type = parseMIMEType(mimeType)\n\n // 2. If type is not failure, set encoding to the result\n // of getting an encoding from type\u2019s parameters[\"charset\"].\n if (type !== 'failure') {\n encoding = getEncoding(type.parameters.get('charset'))\n }\n }\n\n // 4. If encoding is failure, then set encoding to UTF-8.\n if (encoding === 'failure') {\n encoding = 'UTF-8'\n }\n\n // 5. Decode bytes using fallback encoding encoding, and\n // return the result.\n return decode(bytes, encoding)\n }\n case 'ArrayBuffer': {\n // Return a new ArrayBuffer whose contents are bytes.\n const sequence = combineByteSequences(bytes)\n\n return sequence.buffer\n }\n case 'BinaryString': {\n // Return bytes as a binary string, in which every byte\n // is represented by a code unit of equal value [0..255].\n let binaryString = ''\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n binaryString += decoder.write(chunk)\n }\n\n binaryString += decoder.end()\n\n return binaryString\n }\n }\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#decode\n * @param {Uint8Array[]} ioQueue\n * @param {string} encoding\n */\nfunction decode (ioQueue, encoding) {\n const bytes = combineByteSequences(ioQueue)\n\n // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n const BOMEncoding = BOMSniffing(bytes)\n\n let slice = 0\n\n // 2. If BOMEncoding is non-null:\n if (BOMEncoding !== null) {\n // 1. Set encoding to BOMEncoding.\n encoding = BOMEncoding\n\n // 2. Read three bytes from ioQueue, if BOMEncoding is\n // UTF-8; otherwise read two bytes.\n // (Do nothing with those bytes.)\n slice = BOMEncoding === 'UTF-8' ? 3 : 2\n }\n\n // 3. Process a queue with an instance of encoding\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n\n // 4. Return output.\n\n const sliced = bytes.slice(slice)\n return new TextDecoder(encoding).decode(sliced)\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#bom-sniff\n * @param {Uint8Array} ioQueue\n */\nfunction BOMSniffing (ioQueue) {\n // 1. Let BOM be the result of peeking 3 bytes from ioQueue,\n // converted to a byte sequence.\n const [a, b, c] = ioQueue\n\n // 2. For each of the rows in the table below, starting with\n // the first one and going down, if BOM starts with the\n // bytes given in the first column, then return the\n // encoding given in the cell in the second column of that\n // row. Otherwise, return null.\n if (a === 0xEF && b === 0xBB && c === 0xBF) {\n return 'UTF-8'\n } else if (a === 0xFE && b === 0xFF) {\n return 'UTF-16BE'\n } else if (a === 0xFF && b === 0xFE) {\n return 'UTF-16LE'\n }\n\n return null\n}\n\n/**\n * @param {Uint8Array[]} sequences\n */\nfunction combineByteSequences (sequences) {\n const size = sequences.reduce((a, b) => {\n return a + b.byteLength\n }, 0)\n\n let offset = 0\n\n return sequences.reduce((a, b) => {\n a.set(b, offset)\n offset += b.byteLength\n return a\n }, new Uint8Array(size))\n}\n\nmodule.exports = {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n}\n", "'use strict'\n\nconst {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n} = require('./util')\nconst {\n kState,\n kError,\n kResult,\n kEvents,\n kAborted\n} = require('./symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass FileReader extends EventTarget {\n constructor () {\n super()\n\n this[kState] = 'empty'\n this[kResult] = null\n this[kError] = null\n this[kEvents] = {\n loadend: null,\n error: null,\n abort: null,\n load: null,\n progress: null,\n loadstart: null\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n * @param {import('buffer').Blob} blob\n */\n readAsArrayBuffer (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsArrayBuffer(blob) method, when invoked,\n // must initiate a read operation for blob with ArrayBuffer.\n readOperation(this, blob, 'ArrayBuffer')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n * @param {import('buffer').Blob} blob\n */\n readAsBinaryString (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsBinaryString(blob) method, when invoked,\n // must initiate a read operation for blob with BinaryString.\n readOperation(this, blob, 'BinaryString')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsDataText\n * @param {import('buffer').Blob} blob\n * @param {string?} encoding\n */\n readAsText (blob, encoding = undefined) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n if (encoding !== undefined) {\n encoding = webidl.converters.DOMString(encoding)\n }\n\n // The readAsText(blob, encoding) method, when invoked,\n // must initiate a read operation for blob with Text and encoding.\n readOperation(this, blob, 'Text', encoding)\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n * @param {import('buffer').Blob} blob\n */\n readAsDataURL (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsDataURL(blob) method, when invoked, must\n // initiate a read operation for blob with DataURL.\n readOperation(this, blob, 'DataURL')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-abort\n */\n abort () {\n // 1. If this's state is \"empty\" or if this's state is\n // \"done\" set this's result to null and terminate\n // this algorithm.\n if (this[kState] === 'empty' || this[kState] === 'done') {\n this[kResult] = null\n return\n }\n\n // 2. If this's state is \"loading\" set this's state to\n // \"done\" and set this's result to null.\n if (this[kState] === 'loading') {\n this[kState] = 'done'\n this[kResult] = null\n }\n\n // 3. If there are any tasks from this on the file reading\n // task source in an affiliated task queue, then remove\n // those tasks from that task queue.\n this[kAborted] = true\n\n // 4. Terminate the algorithm for the read method being processed.\n // TODO\n\n // 5. Fire a progress event called abort at this.\n fireAProgressEvent('abort', this)\n\n // 6. If this's state is not \"loading\", fire a progress\n // event called loadend at this.\n if (this[kState] !== 'loading') {\n fireAProgressEvent('loadend', this)\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n */\n get readyState () {\n webidl.brandCheck(this, FileReader)\n\n switch (this[kState]) {\n case 'empty': return this.EMPTY\n case 'loading': return this.LOADING\n case 'done': return this.DONE\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n */\n get result () {\n webidl.brandCheck(this, FileReader)\n\n // The result attribute\u2019s getter, when invoked, must return\n // this's result.\n return this[kResult]\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n */\n get error () {\n webidl.brandCheck(this, FileReader)\n\n // The error attribute\u2019s getter, when invoked, must return\n // this's error.\n return this[kError]\n }\n\n get onloadend () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadend\n }\n\n set onloadend (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadend) {\n this.removeEventListener('loadend', this[kEvents].loadend)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadend = fn\n this.addEventListener('loadend', fn)\n } else {\n this[kEvents].loadend = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].error) {\n this.removeEventListener('error', this[kEvents].error)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].error = fn\n this.addEventListener('error', fn)\n } else {\n this[kEvents].error = null\n }\n }\n\n get onloadstart () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadstart\n }\n\n set onloadstart (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadstart) {\n this.removeEventListener('loadstart', this[kEvents].loadstart)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadstart = fn\n this.addEventListener('loadstart', fn)\n } else {\n this[kEvents].loadstart = null\n }\n }\n\n get onprogress () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].progress\n }\n\n set onprogress (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].progress) {\n this.removeEventListener('progress', this[kEvents].progress)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].progress = fn\n this.addEventListener('progress', fn)\n } else {\n this[kEvents].progress = null\n }\n }\n\n get onload () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].load\n }\n\n set onload (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].load) {\n this.removeEventListener('load', this[kEvents].load)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].load = fn\n this.addEventListener('load', fn)\n } else {\n this[kEvents].load = null\n }\n }\n\n get onabort () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].abort\n }\n\n set onabort (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].abort) {\n this.removeEventListener('abort', this[kEvents].abort)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].abort = fn\n this.addEventListener('abort', fn)\n } else {\n this[kEvents].abort = null\n }\n }\n}\n\n// https://w3c.github.io/FileAPI/#dom-filereader-empty\nFileReader.EMPTY = FileReader.prototype.EMPTY = 0\n// https://w3c.github.io/FileAPI/#dom-filereader-loading\nFileReader.LOADING = FileReader.prototype.LOADING = 1\n// https://w3c.github.io/FileAPI/#dom-filereader-done\nFileReader.DONE = FileReader.prototype.DONE = 2\n\nObject.defineProperties(FileReader.prototype, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors,\n readAsArrayBuffer: kEnumerableProperty,\n readAsBinaryString: kEnumerableProperty,\n readAsText: kEnumerableProperty,\n readAsDataURL: kEnumerableProperty,\n abort: kEnumerableProperty,\n readyState: kEnumerableProperty,\n result: kEnumerableProperty,\n error: kEnumerableProperty,\n onloadstart: kEnumerableProperty,\n onprogress: kEnumerableProperty,\n onload: kEnumerableProperty,\n onabort: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onloadend: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'FileReader',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(FileReader, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors\n})\n\nmodule.exports = {\n FileReader\n}\n", "'use strict'\n\nmodule.exports = {\n kConstruct: Symbol('constructable')\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { isValidHeaderName } = require('../fetch/util')\n\n/**\n * @see https://url.spec.whatwg.org/#concept-url-equals\n * @param {URL} A\n * @param {URL} B\n * @param {boolean | undefined} excludeFragment\n * @returns {boolean}\n */\nfunction urlEquals (A, B, excludeFragment = false) {\n const serializedA = URLSerializer(A, excludeFragment)\n\n const serializedB = URLSerializer(B, excludeFragment)\n\n return serializedA === serializedB\n}\n\n/**\n * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262\n * @param {string} header\n */\nfunction fieldValues (header) {\n assert(header !== null)\n\n const values = []\n\n for (let value of header.split(',')) {\n value = value.trim()\n\n if (!value.length) {\n continue\n } else if (!isValidHeaderName(value)) {\n continue\n }\n\n values.push(value)\n }\n\n return values\n}\n\nmodule.exports = {\n urlEquals,\n fieldValues\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { urlEquals, fieldValues: getFieldValues } = require('./util')\nconst { kEnumerableProperty, isDisturbed } = require('../core/util')\nconst { kHeadersList } = require('../core/symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { Response, cloneResponse } = require('../fetch/response')\nconst { Request } = require('../fetch/request')\nconst { kState, kHeaders, kGuard, kRealm } = require('../fetch/symbols')\nconst { fetching } = require('../fetch/index')\nconst { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')\nconst assert = require('assert')\nconst { getGlobalDispatcher } = require('../global')\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation\n * @typedef {Object} CacheBatchOperation\n * @property {'delete' | 'put'} type\n * @property {any} request\n * @property {any} response\n * @property {import('../../types/cache').CacheQueryOptions} options\n */\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list\n * @typedef {[any, any][]} requestResponseList\n */\n\nclass Cache {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list\n * @type {requestResponseList}\n */\n #relevantRequestResponseList\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n\n this.#relevantRequestResponseList = arguments[1]\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n const p = await this.matchAll(request, options)\n\n if (p.length === 0) {\n return\n }\n\n return p[0]\n }\n\n async matchAll (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') {\n // 2.2.1\n r = new Request(request)[kState]\n }\n }\n\n // 5.\n // 5.1\n const responses = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n responses.push(requestResponse[1])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n responses.push(requestResponse[1])\n }\n }\n\n // 5.4\n // We don't implement CORs so we don't need to loop over the responses, yay!\n\n // 5.5.1\n const responseList = []\n\n // 5.5.2\n for (const response of responses) {\n // 5.5.2.1\n const responseObject = new Response(response.body?.source ?? null)\n const body = responseObject[kState].body\n responseObject[kState] = response\n responseObject[kState].body = body\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n\n responseList.push(responseObject)\n }\n\n // 6.\n return Object.freeze(responseList)\n }\n\n async add (request) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })\n\n request = webidl.converters.RequestInfo(request)\n\n // 1.\n const requests = [request]\n\n // 2.\n const responseArrayPromise = this.addAll(requests)\n\n // 3.\n return await responseArrayPromise\n }\n\n async addAll (requests) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })\n\n requests = webidl.converters['sequence<RequestInfo>'](requests)\n\n // 1.\n const responsePromises = []\n\n // 2.\n const requestList = []\n\n // 3.\n for (const request of requests) {\n if (typeof request === 'string') {\n continue\n }\n\n // 3.1\n const r = request[kState]\n\n // 3.2\n if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme when method is not GET.'\n })\n }\n }\n\n // 4.\n /** @type {ReturnType<typeof fetching>[]} */\n const fetchControllers = []\n\n // 5.\n for (const request of requests) {\n // 5.1\n const r = new Request(request)[kState]\n\n // 5.2\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme.'\n })\n }\n\n // 5.4\n r.initiator = 'fetch'\n r.destination = 'subresource'\n\n // 5.5\n requestList.push(r)\n\n // 5.6\n const responsePromise = createDeferredPromise()\n\n // 5.7\n fetchControllers.push(fetching({\n request: r,\n dispatcher: getGlobalDispatcher(),\n processResponse (response) {\n // 1.\n if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Received an invalid status code or the request failed.'\n }))\n } else if (response.headersList.contains('vary')) { // 2.\n // 2.1\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n // 2.2\n for (const fieldValue of fieldValues) {\n // 2.2.1\n if (fieldValue === '*') {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'invalid vary field value'\n }))\n\n for (const controller of fetchControllers) {\n controller.abort()\n }\n\n return\n }\n }\n }\n },\n processResponseEndOfBody (response) {\n // 1.\n if (response.aborted) {\n responsePromise.reject(new DOMException('aborted', 'AbortError'))\n return\n }\n\n // 2.\n responsePromise.resolve(response)\n }\n }))\n\n // 5.8\n responsePromises.push(responsePromise.promise)\n }\n\n // 6.\n const p = Promise.all(responsePromises)\n\n // 7.\n const responses = await p\n\n // 7.1\n const operations = []\n\n // 7.2\n let index = 0\n\n // 7.3\n for (const response of responses) {\n // 7.3.1\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 7.3.2\n request: requestList[index], // 7.3.3\n response // 7.3.4\n }\n\n operations.push(operation) // 7.3.5\n\n index++ // 7.3.6\n }\n\n // 7.5\n const cacheJobPromise = createDeferredPromise()\n\n // 7.6.1\n let errorData = null\n\n // 7.6.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 7.6.3\n queueMicrotask(() => {\n // 7.6.3.1\n if (errorData === null) {\n cacheJobPromise.resolve(undefined)\n } else {\n // 7.6.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n // 7.7\n return cacheJobPromise.promise\n }\n\n async put (request, response) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })\n\n request = webidl.converters.RequestInfo(request)\n response = webidl.converters.Response(response)\n\n // 1.\n let innerRequest = null\n\n // 2.\n if (request instanceof Request) {\n innerRequest = request[kState]\n } else { // 3.\n innerRequest = new Request(request)[kState]\n }\n\n // 4.\n if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Expected an http/s scheme when method is not GET'\n })\n }\n\n // 5.\n const innerResponse = response[kState]\n\n // 6.\n if (innerResponse.status === 206) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got 206 status'\n })\n }\n\n // 7.\n if (innerResponse.headersList.contains('vary')) {\n // 7.1.\n const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))\n\n // 7.2.\n for (const fieldValue of fieldValues) {\n // 7.2.1\n if (fieldValue === '*') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got * vary field value'\n })\n }\n }\n }\n\n // 8.\n if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Response body is locked or disturbed'\n })\n }\n\n // 9.\n const clonedResponse = cloneResponse(innerResponse)\n\n // 10.\n const bodyReadPromise = createDeferredPromise()\n\n // 11.\n if (innerResponse.body != null) {\n // 11.1\n const stream = innerResponse.body.stream\n\n // 11.2\n const reader = stream.getReader()\n\n // 11.3\n readAllBytes(\n reader,\n (bytes) => bodyReadPromise.resolve(bytes),\n (error) => bodyReadPromise.reject(error)\n )\n } else {\n bodyReadPromise.resolve(undefined)\n }\n\n // 12.\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n // 13.\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 14.\n request: innerRequest, // 15.\n response: clonedResponse // 16.\n }\n\n // 17.\n operations.push(operation)\n\n // 19.\n const bytes = await bodyReadPromise.promise\n\n if (clonedResponse.body != null) {\n clonedResponse.body.source = bytes\n }\n\n // 19.1\n const cacheJobPromise = createDeferredPromise()\n\n // 19.2.1\n let errorData = null\n\n // 19.2.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 19.2.3\n queueMicrotask(() => {\n // 19.2.3.1\n if (errorData === null) {\n cacheJobPromise.resolve()\n } else { // 19.2.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n async delete (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n /**\n * @type {Request}\n */\n let r = null\n\n if (request instanceof Request) {\n r = request[kState]\n\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return false\n }\n } else {\n assert(typeof request === 'string')\n\n r = new Request(request)[kState]\n }\n\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'delete',\n request: r,\n options\n }\n\n operations.push(operation)\n\n const cacheJobPromise = createDeferredPromise()\n\n let errorData = null\n let requestResponses\n\n try {\n requestResponses = this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n queueMicrotask(() => {\n if (errorData === null) {\n cacheJobPromise.resolve(!!requestResponses?.length)\n } else {\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys\n * @param {any} request\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @returns {readonly Request[]}\n */\n async keys (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n // 2.1\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') { // 2.2\n r = new Request(request)[kState]\n }\n }\n\n // 4.\n const promise = createDeferredPromise()\n\n // 5.\n // 5.1\n const requests = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n // 5.2.1.1\n requests.push(requestResponse[0])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n // 5.3.2.1\n requests.push(requestResponse[0])\n }\n }\n\n // 5.4\n queueMicrotask(() => {\n // 5.4.1\n const requestList = []\n\n // 5.4.2\n for (const request of requests) {\n const requestObject = new Request('https://a')\n requestObject[kState] = request\n requestObject[kHeaders][kHeadersList] = request.headersList\n requestObject[kHeaders][kGuard] = 'immutable'\n requestObject[kRealm] = request.client\n\n // 5.4.2.1\n requestList.push(requestObject)\n }\n\n // 5.4.3\n promise.resolve(Object.freeze(requestList))\n })\n\n return promise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm\n * @param {CacheBatchOperation[]} operations\n * @returns {requestResponseList}\n */\n #batchCacheOperations (operations) {\n // 1.\n const cache = this.#relevantRequestResponseList\n\n // 2.\n const backupCache = [...cache]\n\n // 3.\n const addedItems = []\n\n // 4.1\n const resultList = []\n\n try {\n // 4.2\n for (const operation of operations) {\n // 4.2.1\n if (operation.type !== 'delete' && operation.type !== 'put') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'operation type does not match \"delete\" or \"put\"'\n })\n }\n\n // 4.2.2\n if (operation.type === 'delete' && operation.response != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'delete operation should not have an associated response'\n })\n }\n\n // 4.2.3\n if (this.#queryCache(operation.request, operation.options, addedItems).length) {\n throw new DOMException('???', 'InvalidStateError')\n }\n\n // 4.2.4\n let requestResponses\n\n // 4.2.5\n if (operation.type === 'delete') {\n // 4.2.5.1\n requestResponses = this.#queryCache(operation.request, operation.options)\n\n // TODO: the spec is wrong, this is needed to pass WPTs\n if (requestResponses.length === 0) {\n return []\n }\n\n // 4.2.5.2\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.5.2.1\n cache.splice(idx, 1)\n }\n } else if (operation.type === 'put') { // 4.2.6\n // 4.2.6.1\n if (operation.response == null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'put operation should have an associated response'\n })\n }\n\n // 4.2.6.2\n const r = operation.request\n\n // 4.2.6.3\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'expected http or https scheme'\n })\n }\n\n // 4.2.6.4\n if (r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'not get method'\n })\n }\n\n // 4.2.6.5\n if (operation.options != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'options must not be defined'\n })\n }\n\n // 4.2.6.6\n requestResponses = this.#queryCache(operation.request)\n\n // 4.2.6.7\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.6.7.1\n cache.splice(idx, 1)\n }\n\n // 4.2.6.8\n cache.push([operation.request, operation.response])\n\n // 4.2.6.10\n addedItems.push([operation.request, operation.response])\n }\n\n // 4.2.7\n resultList.push([operation.request, operation.response])\n }\n\n // 4.3\n return resultList\n } catch (e) { // 5.\n // 5.1\n this.#relevantRequestResponseList.length = 0\n\n // 5.2\n this.#relevantRequestResponseList = backupCache\n\n // 5.3\n throw e\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#query-cache\n * @param {any} requestQuery\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @param {requestResponseList} targetStorage\n * @returns {requestResponseList}\n */\n #queryCache (requestQuery, options, targetStorage) {\n /** @type {requestResponseList} */\n const resultList = []\n\n const storage = targetStorage ?? this.#relevantRequestResponseList\n\n for (const requestResponse of storage) {\n const [cachedRequest, cachedResponse] = requestResponse\n if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {\n resultList.push(requestResponse)\n }\n }\n\n return resultList\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm\n * @param {any} requestQuery\n * @param {any} request\n * @param {any | null} response\n * @param {import('../../types/cache').CacheQueryOptions | undefined} options\n * @returns {boolean}\n */\n #requestMatchesCachedItem (requestQuery, request, response = null, options) {\n // if (options?.ignoreMethod === false && request.method === 'GET') {\n // return false\n // }\n\n const queryURL = new URL(requestQuery.url)\n\n const cachedURL = new URL(request.url)\n\n if (options?.ignoreSearch) {\n cachedURL.search = ''\n\n queryURL.search = ''\n }\n\n if (!urlEquals(queryURL, cachedURL, true)) {\n return false\n }\n\n if (\n response == null ||\n options?.ignoreVary ||\n !response.headersList.contains('vary')\n ) {\n return true\n }\n\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n for (const fieldValue of fieldValues) {\n if (fieldValue === '*') {\n return false\n }\n\n const requestValue = request.headersList.get(fieldValue)\n const queryValue = requestQuery.headersList.get(fieldValue)\n\n // If one has the header and the other doesn't, or one has\n // a different value than the other, return false\n if (requestValue !== queryValue) {\n return false\n }\n }\n\n return true\n }\n}\n\nObject.defineProperties(Cache.prototype, {\n [Symbol.toStringTag]: {\n value: 'Cache',\n configurable: true\n },\n match: kEnumerableProperty,\n matchAll: kEnumerableProperty,\n add: kEnumerableProperty,\n addAll: kEnumerableProperty,\n put: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nconst cacheQueryOptionConverters = [\n {\n key: 'ignoreSearch',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreMethod',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreVary',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)\n\nwebidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([\n ...cacheQueryOptionConverters,\n {\n key: 'cacheName',\n converter: webidl.converters.DOMString\n }\n])\n\nwebidl.converters.Response = webidl.interfaceConverter(Response)\n\nwebidl.converters['sequence<RequestInfo>'] = webidl.sequenceConverter(\n webidl.converters.RequestInfo\n)\n\nmodule.exports = {\n Cache\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { Cache } = require('./cache')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass CacheStorage {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map\n * @type {Map<string, import('./cache').requestResponseList}\n */\n #caches = new Map()\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.MultiCacheQueryOptions(options)\n\n // 1.\n if (options.cacheName != null) {\n // 1.1.1.1\n if (this.#caches.has(options.cacheName)) {\n // 1.1.1.1.1\n const cacheList = this.#caches.get(options.cacheName)\n const cache = new Cache(kConstruct, cacheList)\n\n return await cache.match(request, options)\n }\n } else { // 2.\n // 2.2\n for (const cacheList of this.#caches.values()) {\n const cache = new Cache(kConstruct, cacheList)\n\n // 2.2.1.2\n const response = await cache.match(request, options)\n\n if (response !== undefined) {\n return response\n }\n }\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-has\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async has (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1.1\n // 2.2\n return this.#caches.has(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open\n * @param {string} cacheName\n * @returns {Promise<Cache>}\n */\n async open (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1\n if (this.#caches.has(cacheName)) {\n // await caches.open('v1') !== await caches.open('v1')\n\n // 2.1.1\n const cache = this.#caches.get(cacheName)\n\n // 2.1.1.1\n return new Cache(kConstruct, cache)\n }\n\n // 2.2\n const cache = []\n\n // 2.3\n this.#caches.set(cacheName, cache)\n\n // 2.4\n return new Cache(kConstruct, cache)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async delete (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n return this.#caches.delete(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys\n * @returns {string[]}\n */\n async keys () {\n webidl.brandCheck(this, CacheStorage)\n\n // 2.1\n const keys = this.#caches.keys()\n\n // 2.2\n return [...keys]\n }\n}\n\nObject.defineProperties(CacheStorage.prototype, {\n [Symbol.toStringTag]: {\n value: 'CacheStorage',\n configurable: true\n },\n match: kEnumerableProperty,\n has: kEnumerableProperty,\n open: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nmodule.exports = {\n CacheStorage\n}\n", "'use strict'\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\nconst maxAttributeValueSize = 1024\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\nconst maxNameValuePairSize = 4096\n\nmodule.exports = {\n maxAttributeValueSize,\n maxNameValuePairSize\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kHeadersList } = require('../core/symbols')\n\nfunction isCTLExcludingHtab (value) {\n if (value.length === 0) {\n return false\n }\n\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n (code >= 0x00 || code <= 0x08) ||\n (code >= 0x0A || code <= 0x1F) ||\n code === 0x7F\n ) {\n return false\n }\n }\n}\n\n/**\n CHAR = <any US-ASCII character (octets 0 - 127)>\n token = 1*<any CHAR except CTLs or separators>\n separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n | \",\" | \";\" | \":\" | \"\\\" | <\">\n | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n | \"{\" | \"}\" | SP | HT\n * @param {string} name\n */\nfunction validateCookieName (name) {\n for (const char of name) {\n const code = char.charCodeAt(0)\n\n if (\n (code <= 0x20 || code > 0x7F) ||\n char === '(' ||\n char === ')' ||\n char === '>' ||\n char === '<' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}'\n ) {\n throw new Error('Invalid cookie name')\n }\n }\n}\n\n/**\n cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n ; US-ASCII characters excluding CTLs,\n ; whitespace DQUOTE, comma, semicolon,\n ; and backslash\n * @param {string} value\n */\nfunction validateCookieValue (value) {\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 || // exclude CTLs (0-31)\n code === 0x22 ||\n code === 0x2C ||\n code === 0x3B ||\n code === 0x5C ||\n code > 0x7E // non-ascii\n ) {\n throw new Error('Invalid header value')\n }\n }\n}\n\n/**\n * path-value = <any CHAR except CTLs or \";\">\n * @param {string} path\n */\nfunction validateCookiePath (path) {\n for (const char of path) {\n const code = char.charCodeAt(0)\n\n if (code < 0x21 || char === ';') {\n throw new Error('Invalid cookie path')\n }\n }\n}\n\n/**\n * I have no idea why these values aren't allowed to be honest,\n * but Deno tests these. - Khafra\n * @param {string} domain\n */\nfunction validateCookieDomain (domain) {\n if (\n domain.startsWith('-') ||\n domain.endsWith('.') ||\n domain.endsWith('-')\n ) {\n throw new Error('Invalid cookie domain')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n * @param {number|Date} date\n IMF-fixdate = day-name \",\" SP date1 SP time-of-day SP GMT\n ; fixed length/zone/capitalization subset of the format\n ; see Section 3.3 of [RFC5322]\n\n day-name = %x4D.6F.6E ; \"Mon\", case-sensitive\n / %x54.75.65 ; \"Tue\", case-sensitive\n / %x57.65.64 ; \"Wed\", case-sensitive\n / %x54.68.75 ; \"Thu\", case-sensitive\n / %x46.72.69 ; \"Fri\", case-sensitive\n / %x53.61.74 ; \"Sat\", case-sensitive\n / %x53.75.6E ; \"Sun\", case-sensitive\n date1 = day SP month SP year\n ; e.g., 02 Jun 1982\n\n day = 2DIGIT\n month = %x4A.61.6E ; \"Jan\", case-sensitive\n / %x46.65.62 ; \"Feb\", case-sensitive\n / %x4D.61.72 ; \"Mar\", case-sensitive\n / %x41.70.72 ; \"Apr\", case-sensitive\n / %x4D.61.79 ; \"May\", case-sensitive\n / %x4A.75.6E ; \"Jun\", case-sensitive\n / %x4A.75.6C ; \"Jul\", case-sensitive\n / %x41.75.67 ; \"Aug\", case-sensitive\n / %x53.65.70 ; \"Sep\", case-sensitive\n / %x4F.63.74 ; \"Oct\", case-sensitive\n / %x4E.6F.76 ; \"Nov\", case-sensitive\n / %x44.65.63 ; \"Dec\", case-sensitive\n year = 4DIGIT\n\n GMT = %x47.4D.54 ; \"GMT\", case-sensitive\n\n time-of-day = hour \":\" minute \":\" second\n ; 00:00:00 - 23:59:60 (leap second)\n\n hour = 2DIGIT\n minute = 2DIGIT\n second = 2DIGIT\n */\nfunction toIMFDate (date) {\n if (typeof date === 'number') {\n date = new Date(date)\n }\n\n const days = [\n 'Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'\n ]\n\n const months = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ]\n\n const dayName = days[date.getUTCDay()]\n const day = date.getUTCDate().toString().padStart(2, '0')\n const month = months[date.getUTCMonth()]\n const year = date.getUTCFullYear()\n const hour = date.getUTCHours().toString().padStart(2, '0')\n const minute = date.getUTCMinutes().toString().padStart(2, '0')\n const second = date.getUTCSeconds().toString().padStart(2, '0')\n\n return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n}\n\n/**\n max-age-av = \"Max-Age=\" non-zero-digit *DIGIT\n ; In practice, both expires-av and max-age-av\n ; are limited to dates representable by the\n ; user agent.\n * @param {number} maxAge\n */\nfunction validateCookieMaxAge (maxAge) {\n if (maxAge < 0) {\n throw new Error('Invalid cookie max-age')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n * @param {import('./index').Cookie} cookie\n */\nfunction stringify (cookie) {\n if (cookie.name.length === 0) {\n return null\n }\n\n validateCookieName(cookie.name)\n validateCookieValue(cookie.value)\n\n const out = [`${cookie.name}=${cookie.value}`]\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n if (cookie.name.startsWith('__Secure-')) {\n cookie.secure = true\n }\n\n if (cookie.name.startsWith('__Host-')) {\n cookie.secure = true\n cookie.domain = null\n cookie.path = '/'\n }\n\n if (cookie.secure) {\n out.push('Secure')\n }\n\n if (cookie.httpOnly) {\n out.push('HttpOnly')\n }\n\n if (typeof cookie.maxAge === 'number') {\n validateCookieMaxAge(cookie.maxAge)\n out.push(`Max-Age=${cookie.maxAge}`)\n }\n\n if (cookie.domain) {\n validateCookieDomain(cookie.domain)\n out.push(`Domain=${cookie.domain}`)\n }\n\n if (cookie.path) {\n validateCookiePath(cookie.path)\n out.push(`Path=${cookie.path}`)\n }\n\n if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n out.push(`Expires=${toIMFDate(cookie.expires)}`)\n }\n\n if (cookie.sameSite) {\n out.push(`SameSite=${cookie.sameSite}`)\n }\n\n for (const part of cookie.unparsed) {\n if (!part.includes('=')) {\n throw new Error('Invalid unparsed')\n }\n\n const [key, ...value] = part.split('=')\n\n out.push(`${key.trim()}=${value.join('=')}`)\n }\n\n return out.join('; ')\n}\n\nlet kHeadersListNode\n\nfunction getHeadersList (headers) {\n if (headers[kHeadersList]) {\n return headers[kHeadersList]\n }\n\n if (!kHeadersListNode) {\n kHeadersListNode = Object.getOwnPropertySymbols(headers).find(\n (symbol) => symbol.description === 'headers list'\n )\n\n assert(kHeadersListNode, 'Headers cannot be parsed')\n }\n\n const headersList = headers[kHeadersListNode]\n assert(headersList)\n\n return headersList\n}\n\nmodule.exports = {\n isCTLExcludingHtab,\n stringify,\n getHeadersList\n}\n", "'use strict'\n\nconst { maxNameValuePairSize, maxAttributeValueSize } = require('./constants')\nconst { isCTLExcludingHtab } = require('./util')\nconst { collectASequenceOfCodePointsFast } = require('../fetch/dataURL')\nconst assert = require('assert')\n\n/**\n * @description Parses the field-value attributes of a set-cookie header string.\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} header\n * @returns if the header is invalid, null will be returned\n */\nfunction parseSetCookie (header) {\n // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n // character (CTL characters excluding HTAB): Abort these steps and\n // ignore the set-cookie-string entirely.\n if (isCTLExcludingHtab(header)) {\n return null\n }\n\n let nameValuePair = ''\n let unparsedAttributes = ''\n let name = ''\n let value = ''\n\n // 2. If the set-cookie-string contains a %x3B (\";\") character:\n if (header.includes(';')) {\n // 1. The name-value-pair string consists of the characters up to,\n // but not including, the first %x3B (\";\"), and the unparsed-\n // attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\n const position = { position: 0 }\n\n nameValuePair = collectASequenceOfCodePointsFast(';', header, position)\n unparsedAttributes = header.slice(position.position)\n } else {\n // Otherwise:\n\n // 1. The name-value-pair string consists of all the characters\n // contained in the set-cookie-string, and the unparsed-\n // attributes is the empty string.\n nameValuePair = header\n }\n\n // 3. If the name-value-pair string lacks a %x3D (\"=\") character, then\n // the name string is empty, and the value string is the value of\n // name-value-pair.\n if (!nameValuePair.includes('=')) {\n value = nameValuePair\n } else {\n // Otherwise, the name string consists of the characters up to, but\n // not including, the first %x3D (\"=\") character, and the (possibly\n // empty) value string consists of the characters after the first\n // %x3D (\"=\") character.\n const position = { position: 0 }\n name = collectASequenceOfCodePointsFast(\n '=',\n nameValuePair,\n position\n )\n value = nameValuePair.slice(position.position + 1)\n }\n\n // 4. Remove any leading or trailing WSP characters from the name\n // string and the value string.\n name = name.trim()\n value = value.trim()\n\n // 5. If the sum of the lengths of the name string and the value string\n // is more than 4096 octets, abort these steps and ignore the set-\n // cookie-string entirely.\n if (name.length + value.length > maxNameValuePairSize) {\n return null\n }\n\n // 6. The cookie-name is the name string, and the cookie-value is the\n // value string.\n return {\n name, value, ...parseUnparsedAttributes(unparsedAttributes)\n }\n}\n\n/**\n * Parses the remaining attributes of a set-cookie header\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} unparsedAttributes\n * @param {[Object.<string, unknown>]={}} cookieAttributeList\n */\nfunction parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {\n // 1. If the unparsed-attributes string is empty, skip the rest of\n // these steps.\n if (unparsedAttributes.length === 0) {\n return cookieAttributeList\n }\n\n // 2. Discard the first character of the unparsed-attributes (which\n // will be a %x3B (\";\") character).\n assert(unparsedAttributes[0] === ';')\n unparsedAttributes = unparsedAttributes.slice(1)\n\n let cookieAv = ''\n\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n if (unparsedAttributes.includes(';')) {\n // 1. Consume the characters of the unparsed-attributes up to, but\n // not including, the first %x3B (\";\") character.\n cookieAv = collectASequenceOfCodePointsFast(\n ';',\n unparsedAttributes,\n { position: 0 }\n )\n unparsedAttributes = unparsedAttributes.slice(cookieAv.length)\n } else {\n // Otherwise:\n\n // 1. Consume the remainder of the unparsed-attributes.\n cookieAv = unparsedAttributes\n unparsedAttributes = ''\n }\n\n // Let the cookie-av string be the characters consumed in this step.\n\n let attributeName = ''\n let attributeValue = ''\n\n // 4. If the cookie-av string contains a %x3D (\"=\") character:\n if (cookieAv.includes('=')) {\n // 1. The (possibly empty) attribute-name string consists of the\n // characters up to, but not including, the first %x3D (\"=\")\n // character, and the (possibly empty) attribute-value string\n // consists of the characters after the first %x3D (\"=\")\n // character.\n const position = { position: 0 }\n\n attributeName = collectASequenceOfCodePointsFast(\n '=',\n cookieAv,\n position\n )\n attributeValue = cookieAv.slice(position.position + 1)\n } else {\n // Otherwise:\n\n // 1. The attribute-name string consists of the entire cookie-av\n // string, and the attribute-value string is empty.\n attributeName = cookieAv\n }\n\n // 5. Remove any leading or trailing WSP characters from the attribute-\n // name string and the attribute-value string.\n attributeName = attributeName.trim()\n attributeValue = attributeValue.trim()\n\n // 6. If the attribute-value is longer than 1024 octets, ignore the\n // cookie-av string and return to Step 1 of this algorithm.\n if (attributeValue.length > maxAttributeValueSize) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 7. Process the attribute-name and attribute-value according to the\n // requirements in the following subsections. (Notice that\n // attributes with unrecognized attribute-names are ignored.)\n const attributeNameLowercase = attributeName.toLowerCase()\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n // If the attribute-name case-insensitively matches the string\n // \"Expires\", the user agent MUST process the cookie-av as follows.\n if (attributeNameLowercase === 'expires') {\n // 1. Let the expiry-time be the result of parsing the attribute-value\n // as cookie-date (see Section 5.1.1).\n const expiryTime = new Date(attributeValue)\n\n // 2. If the attribute-value failed to parse as a cookie date, ignore\n // the cookie-av.\n\n cookieAttributeList.expires = expiryTime\n } else if (attributeNameLowercase === 'max-age') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n // If the attribute-name case-insensitively matches the string \"Max-\n // Age\", the user agent MUST process the cookie-av as follows.\n\n // 1. If the first character of the attribute-value is not a DIGIT or a\n // \"-\" character, ignore the cookie-av.\n const charCode = attributeValue.charCodeAt(0)\n\n if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 2. If the remainder of attribute-value contains a non-DIGIT\n // character, ignore the cookie-av.\n if (!/^\\d+$/.test(attributeValue)) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 3. Let delta-seconds be the attribute-value converted to an integer.\n const deltaSeconds = Number(attributeValue)\n\n // 4. Let cookie-age-limit be the maximum age of the cookie (which\n // SHOULD be 400 days or less, see Section 4.1.2.2).\n\n // 5. Set delta-seconds to the smaller of its present value and cookie-\n // age-limit.\n // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)\n\n // 6. If delta-seconds is less than or equal to zero (0), let expiry-\n // time be the earliest representable date and time. Otherwise, let\n // the expiry-time be the current date and time plus delta-seconds\n // seconds.\n // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n // 7. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Max-Age and an attribute-value of expiry-time.\n cookieAttributeList.maxAge = deltaSeconds\n } else if (attributeNameLowercase === 'domain') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n // If the attribute-name case-insensitively matches the string \"Domain\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. Let cookie-domain be the attribute-value.\n let cookieDomain = attributeValue\n\n // 2. If cookie-domain starts with %x2E (\".\"), let cookie-domain be\n // cookie-domain without its leading %x2E (\".\").\n if (cookieDomain[0] === '.') {\n cookieDomain = cookieDomain.slice(1)\n }\n\n // 3. Convert the cookie-domain to lower case.\n cookieDomain = cookieDomain.toLowerCase()\n\n // 4. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Domain and an attribute-value of cookie-domain.\n cookieAttributeList.domain = cookieDomain\n } else if (attributeNameLowercase === 'path') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n // If the attribute-name case-insensitively matches the string \"Path\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. If the attribute-value is empty or if the first character of the\n // attribute-value is not %x2F (\"/\"):\n let cookiePath = ''\n if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n // 1. Let cookie-path be the default-path.\n cookiePath = '/'\n } else {\n // Otherwise:\n\n // 1. Let cookie-path be the attribute-value.\n cookiePath = attributeValue\n }\n\n // 2. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Path and an attribute-value of cookie-path.\n cookieAttributeList.path = cookiePath\n } else if (attributeNameLowercase === 'secure') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n // If the attribute-name case-insensitively matches the string \"Secure\",\n // the user agent MUST append an attribute to the cookie-attribute-list\n // with an attribute-name of Secure and an empty attribute-value.\n\n cookieAttributeList.secure = true\n } else if (attributeNameLowercase === 'httponly') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n // If the attribute-name case-insensitively matches the string\n // \"HttpOnly\", the user agent MUST append an attribute to the cookie-\n // attribute-list with an attribute-name of HttpOnly and an empty\n // attribute-value.\n\n cookieAttributeList.httpOnly = true\n } else if (attributeNameLowercase === 'samesite') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n // If the attribute-name case-insensitively matches the string\n // \"SameSite\", the user agent MUST process the cookie-av as follows:\n\n // 1. Let enforcement be \"Default\".\n let enforcement = 'Default'\n\n const attributeValueLowercase = attributeValue.toLowerCase()\n // 2. If cookie-av's attribute-value is a case-insensitive match for\n // \"None\", set enforcement to \"None\".\n if (attributeValueLowercase.includes('none')) {\n enforcement = 'None'\n }\n\n // 3. If cookie-av's attribute-value is a case-insensitive match for\n // \"Strict\", set enforcement to \"Strict\".\n if (attributeValueLowercase.includes('strict')) {\n enforcement = 'Strict'\n }\n\n // 4. If cookie-av's attribute-value is a case-insensitive match for\n // \"Lax\", set enforcement to \"Lax\".\n if (attributeValueLowercase.includes('lax')) {\n enforcement = 'Lax'\n }\n\n // 5. Append an attribute to the cookie-attribute-list with an\n // attribute-name of \"SameSite\" and an attribute-value of\n // enforcement.\n cookieAttributeList.sameSite = enforcement\n } else {\n cookieAttributeList.unparsed ??= []\n\n cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)\n }\n\n // 8. Return to Step 1 of this algorithm.\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n}\n\nmodule.exports = {\n parseSetCookie,\n parseUnparsedAttributes\n}\n", "'use strict'\n\nconst { parseSetCookie } = require('./parse')\nconst { stringify, getHeadersList } = require('./util')\nconst { webidl } = require('../fetch/webidl')\nconst { Headers } = require('../fetch/headers')\n\n/**\n * @typedef {Object} Cookie\n * @property {string} name\n * @property {string} value\n * @property {Date|number|undefined} expires\n * @property {number|undefined} maxAge\n * @property {string|undefined} domain\n * @property {string|undefined} path\n * @property {boolean|undefined} secure\n * @property {boolean|undefined} httpOnly\n * @property {'Strict'|'Lax'|'None'} sameSite\n * @property {string[]} unparsed\n */\n\n/**\n * @param {Headers} headers\n * @returns {Record<string, string>}\n */\nfunction getCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookie = headers.get('cookie')\n const out = {}\n\n if (!cookie) {\n return out\n }\n\n for (const piece of cookie.split(';')) {\n const [name, ...value] = piece.split('=')\n\n out[name.trim()] = value.join('=')\n }\n\n return out\n}\n\n/**\n * @param {Headers} headers\n * @param {string} name\n * @param {{ path?: string, domain?: string }|undefined} attributes\n * @returns {void}\n */\nfunction deleteCookie (headers, name, attributes) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n name = webidl.converters.DOMString(name)\n attributes = webidl.converters.DeleteCookieAttributes(attributes)\n\n // Matches behavior of\n // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n setCookie(headers, {\n name,\n value: '',\n expires: new Date(0),\n ...attributes\n })\n}\n\n/**\n * @param {Headers} headers\n * @returns {Cookie[]}\n */\nfunction getSetCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookies = getHeadersList(headers).cookies\n\n if (!cookies) {\n return []\n }\n\n // In older versions of undici, cookies is a list of name:value.\n return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair))\n}\n\n/**\n * @param {Headers} headers\n * @param {Cookie} cookie\n * @returns {void}\n */\nfunction setCookie (headers, cookie) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n cookie = webidl.converters.Cookie(cookie)\n\n const str = stringify(cookie)\n\n if (str) {\n headers.append('Set-Cookie', stringify(cookie))\n }\n}\n\nwebidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n }\n])\n\nwebidl.converters.Cookie = webidl.dictionaryConverter([\n {\n converter: webidl.converters.DOMString,\n key: 'name'\n },\n {\n converter: webidl.converters.DOMString,\n key: 'value'\n },\n {\n converter: webidl.nullableConverter((value) => {\n if (typeof value === 'number') {\n return webidl.converters['unsigned long long'](value)\n }\n\n return new Date(value)\n }),\n key: 'expires',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters['long long']),\n key: 'maxAge',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'secure',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'httpOnly',\n defaultValue: null\n },\n {\n converter: webidl.converters.USVString,\n key: 'sameSite',\n allowedValues: ['Strict', 'Lax', 'None']\n },\n {\n converter: webidl.sequenceConverter(webidl.converters.DOMString),\n key: 'unparsed',\n defaultValue: []\n }\n])\n\nmodule.exports = {\n getCookies,\n deleteCookie,\n getSetCookies,\n setCookie\n}\n", "'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nmodule.exports = {\n uid,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer\n}\n", "'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\nconst { MessagePort } = require('worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' })\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' })\n\n super(type, eventInitDict)\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence<MessagePort>'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence<MessagePort>'],\n get defaultValue () {\n return []\n }\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent\n}\n", "'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { MessageEvent, ErrorEvent } = require('./events')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventConstructor = Event, eventInitDict) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event\u2019s type attribute to e.\n const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = new Uint8Array(data).buffer\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object\u2019s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, MessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (const char of protocol) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 ||\n code > 0x7E ||\n char === '(' ||\n char === ')' ||\n char === '<' ||\n char === '>' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}' ||\n code === 32 || // SP\n code === 9 // HT\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n fireEvent('error', ws, ErrorEvent, {\n error: new Error(reason)\n })\n }\n}\n\nmodule.exports = {\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived\n}\n", "'use strict'\n\nconst { randomBytes, createHash } = require('crypto')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { uid, states } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection } = require('./util')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers } = require('../fetch/headers')\nconst { getGlobalDispatcher } = require('../global')\nconst { kHeadersList } = require('../core/symbols')\n\nconst channels = {}\nchannels.open = diagnosticsChannel.channel('undici:websocket:open')\nchannels.close = diagnosticsChannel.channel('undici:websocket:close')\nchannels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error')\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any) => void} onEstablish\n * @param {Partial<import('../../types/websocket').WebSocketInit>} options\n */\nfunction establishWebSocketConnection (url, protocols, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url\u2019s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = new Headers(options.headers)[kHeadersList]\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request\u2019s header list.\n // 4. Append (`Connection`, `Upgrade`) to request\u2019s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request\u2019s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n // TODO: enable once permessage-deflate is supported\n const permessageDeflate = '' // 'permessage-deflate; 15'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request\u2019s header list.\n // request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher ?? getGlobalDispatcher(),\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response\u2019s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n\n if (secExtension !== null && secExtension !== permessageDeflate) {\n failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.')\n return\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response)\n }\n })\n\n return controller\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kSentClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n fireEvent('close', ws, CloseEvent, {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection\n}\n", "'use strict'\n\nconst { randomBytes } = require('crypto')\nconst { maxUnsigned16Bit } = require('./constants')\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n this.maskKey = randomBytes(4)\n }\n\n createFrame (opcode) {\n const bodyLength = this.frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */\n buffer[offset - 4] = this.maskKey[0]\n buffer[offset - 3] = this.maskKey[1]\n buffer[offset - 2] = this.maskKey[2]\n buffer[offset - 1] = this.maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; i++) {\n buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n", "'use strict'\n\nconst { Writable } = require('stream')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { parserStates, opcodes, states, emptyBuffer } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>\n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nconst channels = {}\nchannels.ping = diagnosticsChannel.channel('undici:websocket:ping')\nchannels.pong = diagnosticsChannel.channel('undici:websocket:pong')\n\nclass ByteParser extends Writable {\n #buffers = []\n #byteOffset = 0\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n constructor (ws) {\n super()\n\n this.ws = ws\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n\n this.run(callback)\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (true) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.fin = (buffer[0] & 0x80) !== 0\n this.#info.opcode = buffer[0] & 0x0F\n\n // If we receive a fragmented message, we use the type of the first\n // frame to parse the full message as binary/text, when it's terminated\n this.#info.originalOpcode ??= this.#info.opcode\n\n this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION\n\n if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n const payloadLength = buffer[1] & 0x7F\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (this.#info.fragmented && payloadLength > 125) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n } else if (\n (this.#info.opcode === opcodes.PING ||\n this.#info.opcode === opcodes.PONG ||\n this.#info.opcode === opcodes.CLOSE) &&\n payloadLength > 125\n ) {\n // Control frames can have a payload length of 125 bytes MAX\n failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.')\n return\n } else if (this.#info.opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return\n }\n\n const body = this.consume(payloadLength)\n\n this.#info.closeInfo = this.parseCloseBody(false, body)\n\n if (!this.ws[kSentClose]) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n const body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = true\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n this.end()\n\n return\n } else if (this.#info.opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n const body = this.consume(payloadLength)\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n\n this.#state = parserStates.INFO\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n } else if (this.#info.opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n const body = this.consume(payloadLength)\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n\n // 2^31 is the maxinimum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n const lower = buffer.readUInt32BE(4)\n\n this.#info.payloadLength = (upper << 8) + lower\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n // If there is still more data in this chunk that needs to be read\n return callback()\n } else if (this.#byteOffset >= this.#info.payloadLength) {\n // If the server sent multiple frames in a single chunk\n\n const body = this.consume(this.#info.payloadLength)\n\n this.#fragments.push(body)\n\n // If the frame is unfragmented, or a fragmented frame was terminated,\n // a message was received\n if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n const fullMessage = Buffer.concat(this.#fragments)\n\n websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage)\n\n this.#info = {}\n this.#fragments.length = 0\n }\n\n this.#state = parserStates.INFO\n }\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n break\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer|null}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n return null\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n parseCloseBody (onlyCode, data) {\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (onlyCode) {\n if (!isValidStatusCode(code)) {\n return null\n }\n\n return { code }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return null\n }\n\n try {\n // TODO: optimize this\n reason = new TextDecoder('utf-8', { fatal: true }).decode(reason)\n } catch {\n return null\n }\n\n return { code, reason }\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { DOMException } = require('../fetch/constants')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require('./constants')\nconst {\n kWebSocketURL,\n kReadyState,\n kController,\n kBinaryType,\n kResponse,\n kSentClose,\n kByteParser\n} = require('./symbols')\nconst { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require('./util')\nconst { establishWebSocketConnection } = require('./connection')\nconst { WebsocketFrameSend } = require('./frame')\nconst { ByteParser } = require('./receiver')\nconst { kEnumerableProperty, isBlobLike } = require('../core/util')\nconst { getGlobalDispatcher } = require('../global')\nconst { types } = require('util')\n\nlet experimentalWarned = false\n\n// https://websockets.spec.whatwg.org/#interface-definition\nclass WebSocket extends EventTarget {\n #events = {\n open: null,\n error: null,\n close: null,\n message: null\n }\n\n #bufferedAmount = 0\n #protocol = ''\n #extensions = ''\n\n /**\n * @param {string} url\n * @param {string|string[]} protocols\n */\n constructor (url, protocols = []) {\n super()\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' })\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('WebSockets are experimental, expect them to change at any time.', {\n code: 'UNDICI-WS'\n })\n }\n\n const options = webidl.converters['DOMString or sequence<DOMString> or WebSocketInit'](protocols)\n\n url = webidl.converters.USVString(url)\n protocols = options.protocols\n\n // 1. Let urlRecord be the result of applying the URL parser to url.\n let urlRecord\n\n try {\n urlRecord = new URL(url)\n } catch (e) {\n // 2. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 3. If urlRecord\u2019s scheme is not \"ws\" or \"wss\", then throw a\n // \"SyntaxError\" DOMException.\n if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n throw new DOMException(\n `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,\n 'SyntaxError'\n )\n }\n\n // 4. If urlRecord\u2019s fragment is non-null, then throw a \"SyntaxError\"\n // DOMException.\n if (urlRecord.hash) {\n throw new DOMException('Got fragment', 'SyntaxError')\n }\n\n // 5. If protocols is a string, set protocols to a sequence consisting\n // of just that string.\n if (typeof protocols === 'string') {\n protocols = [protocols]\n }\n\n // 6. If any of the values in protocols occur more than once or otherwise\n // fail to match the requirements for elements that comprise the value\n // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n // protocol, then throw a \"SyntaxError\" DOMException.\n if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n // 7. Set this's url to urlRecord.\n this[kWebSocketURL] = urlRecord\n\n // 8. Let client be this's relevant settings object.\n\n // 9. Run this step in parallel:\n\n // 1. Establish a WebSocket connection given urlRecord, protocols,\n // and client.\n this[kController] = establishWebSocketConnection(\n urlRecord,\n protocols,\n this,\n (response) => this.#onConnectionEstablished(response),\n options\n )\n\n // Each WebSocket object has an associated ready state, which is a\n // number representing the state of the connection. Initially it must\n // be CONNECTING (0).\n this[kReadyState] = WebSocket.CONNECTING\n\n // The extensions attribute must initially return the empty string.\n\n // The protocol attribute must initially return the empty string.\n\n // Each WebSocket object has an associated binary type, which is a\n // BinaryType. Initially it must be \"blob\".\n this[kBinaryType] = 'blob'\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n * @param {number|undefined} code\n * @param {string|undefined} reason\n */\n close (code = undefined, reason = undefined) {\n webidl.brandCheck(this, WebSocket)\n\n if (code !== undefined) {\n code = webidl.converters['unsigned short'](code, { clamp: true })\n }\n\n if (reason !== undefined) {\n reason = webidl.converters.USVString(reason)\n }\n\n // 1. If code is present, but is neither an integer equal to 1000 nor an\n // integer in the range 3000 to 4999, inclusive, throw an\n // \"InvalidAccessError\" DOMException.\n if (code !== undefined) {\n if (code !== 1000 && (code < 3000 || code > 4999)) {\n throw new DOMException('invalid code', 'InvalidAccessError')\n }\n }\n\n let reasonByteLength = 0\n\n // 2. If reason is present, then run these substeps:\n if (reason !== undefined) {\n // 1. Let reasonBytes be the result of encoding reason.\n // 2. If reasonBytes is longer than 123 bytes, then throw a\n // \"SyntaxError\" DOMException.\n reasonByteLength = Buffer.byteLength(reason)\n\n if (reasonByteLength > 123) {\n throw new DOMException(\n `Reason must be less than 123 bytes; received ${reasonByteLength}`,\n 'SyntaxError'\n )\n }\n }\n\n // 3. Run the first matching steps from the following list:\n if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(this)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(this, 'Connection was closed before it was established.')\n this[kReadyState] = WebSocket.CLOSING\n } else if (!isClosing(this)) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE), (err) => {\n if (!err) {\n this[kSentClose] = true\n }\n })\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n this[kReadyState] = WebSocket.CLOSING\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n */\n send (data) {\n webidl.brandCheck(this, WebSocket)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' })\n\n data = webidl.converters.WebSocketSendData(data)\n\n // 1. If this's ready state is CONNECTING, then throw an\n // \"InvalidStateError\" DOMException.\n if (this[kReadyState] === WebSocket.CONNECTING) {\n throw new DOMException('Sent before connected.', 'InvalidStateError')\n }\n\n // 2. Run the appropriate set of steps from the following list:\n // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n if (!isEstablished(this) || isClosing(this)) {\n return\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n // If data is a string\n if (typeof data === 'string') {\n // If the WebSocket connection is established and the WebSocket\n // closing handshake has not yet started, then the user agent\n // must send a WebSocket Message comprised of the data argument\n // using a text frame opcode; if the data cannot be sent, e.g.\n // because it would need to be buffered but the buffer is full,\n // the user agent must flag the WebSocket as full and then close\n // the WebSocket connection. Any invocation of this method with a\n // string argument that does not throw an exception must increase\n // the bufferedAmount attribute by the number of bytes needed to\n // express the argument as UTF-8.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.TEXT)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (types.isArrayBuffer(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need\n // to be buffered but the buffer is full, the user agent must flag\n // the WebSocket as full and then close the WebSocket connection.\n // The data to be sent is the data stored in the buffer described\n // by the ArrayBuffer object. Any invocation of this method with an\n // ArrayBuffer argument that does not throw an exception must\n // increase the bufferedAmount attribute by the length of the\n // ArrayBuffer in bytes.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (ArrayBuffer.isView(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The\n // data to be sent is the data stored in the section of the buffer\n // described by the ArrayBuffer object that data references. Any\n // invocation of this method with this kind of argument that does\n // not throw an exception must increase the bufferedAmount attribute\n // by the length of data\u2019s buffer in bytes.\n\n const ab = Buffer.from(data, data.byteOffset, data.byteLength)\n\n const frame = new WebsocketFrameSend(ab)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += ab.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= ab.byteLength\n })\n } else if (isBlobLike(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The data\n // to be sent is the raw data represented by the Blob object. Any\n // invocation of this method with a Blob argument that does not throw\n // an exception must increase the bufferedAmount attribute by the size\n // of the Blob object\u2019s raw data, in bytes.\n\n const frame = new WebsocketFrameSend()\n\n data.arrayBuffer().then((ab) => {\n const value = Buffer.from(ab)\n frame.frameData = value\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n })\n }\n }\n\n get readyState () {\n webidl.brandCheck(this, WebSocket)\n\n // The readyState getter steps are to return this's ready state.\n return this[kReadyState]\n }\n\n get bufferedAmount () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#bufferedAmount\n }\n\n get url () {\n webidl.brandCheck(this, WebSocket)\n\n // The url getter steps are to return this's url, serialized.\n return URLSerializer(this[kWebSocketURL])\n }\n\n get extensions () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#extensions\n }\n\n get protocol () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#protocol\n }\n\n get onopen () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.open\n }\n\n set onopen (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n\n get onclose () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.close\n }\n\n set onclose (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.close) {\n this.removeEventListener('close', this.#events.close)\n }\n\n if (typeof fn === 'function') {\n this.#events.close = fn\n this.addEventListener('close', fn)\n } else {\n this.#events.close = null\n }\n }\n\n get onmessage () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.message\n }\n\n set onmessage (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get binaryType () {\n webidl.brandCheck(this, WebSocket)\n\n return this[kBinaryType]\n }\n\n set binaryType (type) {\n webidl.brandCheck(this, WebSocket)\n\n if (type !== 'blob' && type !== 'arraybuffer') {\n this[kBinaryType] = 'blob'\n } else {\n this[kBinaryType] = type\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n */\n #onConnectionEstablished (response) {\n // processResponse is called when the \"response\u2019s header list has been received and initialized.\"\n // once this happens, the connection is open\n this[kResponse] = response\n\n const parser = new ByteParser(this)\n parser.on('drain', function onParserDrain () {\n this.ws[kResponse].socket.resume()\n })\n\n response.socket.ws = this\n this[kByteParser] = parser\n\n // 1. Change the ready state to OPEN (1).\n this[kReadyState] = states.OPEN\n\n // 2. Change the extensions attribute\u2019s value to the extensions in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n const extensions = response.headersList.get('sec-websocket-extensions')\n\n if (extensions !== null) {\n this.#extensions = extensions\n }\n\n // 3. Change the protocol attribute\u2019s value to the subprotocol in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n const protocol = response.headersList.get('sec-websocket-protocol')\n\n if (protocol !== null) {\n this.#protocol = protocol\n }\n\n // 4. Fire an event named open at the WebSocket object.\n fireEvent('open', this)\n }\n}\n\n// https://websockets.spec.whatwg.org/#dom-websocket-connecting\nWebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING\n// https://websockets.spec.whatwg.org/#dom-websocket-open\nWebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN\n// https://websockets.spec.whatwg.org/#dom-websocket-closing\nWebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING\n// https://websockets.spec.whatwg.org/#dom-websocket-closed\nWebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED\n\nObject.defineProperties(WebSocket.prototype, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors,\n url: kEnumerableProperty,\n readyState: kEnumerableProperty,\n bufferedAmount: kEnumerableProperty,\n onopen: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onclose: kEnumerableProperty,\n close: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n binaryType: kEnumerableProperty,\n send: kEnumerableProperty,\n extensions: kEnumerableProperty,\n protocol: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'WebSocket',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(WebSocket, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors\n})\n\nwebidl.converters['sequence<DOMString>'] = webidl.sequenceConverter(\n webidl.converters.DOMString\n)\n\nwebidl.converters['DOMString or sequence<DOMString>'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n return webidl.converters['sequence<DOMString>'](V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// This implements the propsal made in https://github.com/whatwg/websockets/issues/42\nwebidl.converters.WebSocketInit = webidl.dictionaryConverter([\n {\n key: 'protocols',\n converter: webidl.converters['DOMString or sequence<DOMString>'],\n get defaultValue () {\n return []\n }\n },\n {\n key: 'dispatcher',\n converter: (V) => V,\n get defaultValue () {\n return getGlobalDispatcher()\n }\n },\n {\n key: 'headers',\n converter: webidl.nullableConverter(webidl.converters.HeadersInit)\n }\n])\n\nwebidl.converters['DOMString or sequence<DOMString> or WebSocketInit'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) {\n return webidl.converters.WebSocketInit(V)\n }\n\n return { protocols: webidl.converters['DOMString or sequence<DOMString>'](V) }\n}\n\nwebidl.converters.WebSocketSendData = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n return webidl.converters.BufferSource(V)\n }\n }\n\n return webidl.converters.USVString(V)\n}\n\nmodule.exports = {\n WebSocket\n}\n", "'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nlet hasCrypto\ntry {\n require('crypto')\n hasCrypto = true\n} catch {\n hasCrypto = false\n}\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n\n try {\n return await fetchImpl(...arguments)\n } catch (err) {\n Error.captureStackTrace(err, this)\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n module.exports.FileReader = require('./lib/fileapi/filereader').FileReader\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n\n const { CacheStorage } = require('./lib/cache/cachestorage')\n const { kConstruct } = require('./lib/cache/symbols')\n\n // Cache & CacheStorage are tightly coupled with fetch. Even if it may run\n // in an older version of Node, it doesn't have any use without fetch.\n module.exports.caches = new CacheStorage(kConstruct)\n}\n\nif (util.nodeMajor >= 16) {\n const { deleteCookie, getCookies, getSetCookies, setCookie } = require('./lib/cookies')\n\n module.exports.deleteCookie = deleteCookie\n module.exports.getCookies = getCookies\n module.exports.getSetCookies = getSetCookies\n module.exports.setCookie = setCookie\n\n const { parseMIMEType, serializeAMimeType } = require('./lib/fetch/dataURL')\n\n module.exports.parseMIMEType = parseMIMEType\n module.exports.serializeAMimeType = serializeAMimeType\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n const { WebSocket } = require('./lib/websocket/websocket')\n\n module.exports.WebSocket = WebSocket\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n", null, null, null, "'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n", "'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n", "'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n", "'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n", "'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n", "'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n", "'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n", "'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n", "var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n", "var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL());\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230\u00A75.3.1: When making a request directly to an origin server, [\u2026]\n // a client MUST send only the absolute path [\u2026] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, [\u2026]\n // a client MUST send the target URI in absolute-form [\u2026].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231\u00A76.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231\u00A76.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231\u00A76.4: Automatic redirection needs to done with\n // care for methods not known to be safe, [\u2026]\n // RFC7231\u00A76.4.2\u20133: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231\u00A76.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource [\u2026]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) [\u2026]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n /* istanbul ignore else */\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n /* istanbul ignore next */\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n", "{\n \"name\": \"axios\",\n \"version\": \"0.21.4\",\n \"description\": \"Promise based HTTP client for the browser and node.js\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"test\": \"grunt test\",\n \"start\": \"node ./sandbox/server.js\",\n \"build\": \"NODE_ENV=production grunt build\",\n \"preversion\": \"npm test\",\n \"version\": \"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json\",\n \"postversion\": \"git push && git push --tags\",\n \"examples\": \"node ./examples/server.js\",\n \"coveralls\": \"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\",\n \"fix\": \"eslint --fix lib/**/*.js\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/axios/axios.git\"\n },\n \"keywords\": [\n \"xhr\",\n \"http\",\n \"ajax\",\n \"promise\",\n \"node\"\n ],\n \"author\": \"Matt Zabriskie\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/axios/axios/issues\"\n },\n \"homepage\": \"https://axios-http.com\",\n \"devDependencies\": {\n \"coveralls\": \"^3.0.0\",\n \"es6-promise\": \"^4.2.4\",\n \"grunt\": \"^1.3.0\",\n \"grunt-banner\": \"^0.6.0\",\n \"grunt-cli\": \"^1.2.0\",\n \"grunt-contrib-clean\": \"^1.1.0\",\n \"grunt-contrib-watch\": \"^1.0.0\",\n \"grunt-eslint\": \"^23.0.0\",\n \"grunt-karma\": \"^4.0.0\",\n \"grunt-mocha-test\": \"^0.13.3\",\n \"grunt-ts\": \"^6.0.0-beta.19\",\n \"grunt-webpack\": \"^4.0.2\",\n \"istanbul-instrumenter-loader\": \"^1.0.0\",\n \"jasmine-core\": \"^2.4.1\",\n \"karma\": \"^6.3.2\",\n \"karma-chrome-launcher\": \"^3.1.0\",\n \"karma-firefox-launcher\": \"^2.1.0\",\n \"karma-jasmine\": \"^1.1.1\",\n \"karma-jasmine-ajax\": \"^0.1.13\",\n \"karma-safari-launcher\": \"^1.0.0\",\n \"karma-sauce-launcher\": \"^4.3.6\",\n \"karma-sinon\": \"^1.0.5\",\n \"karma-sourcemap-loader\": \"^0.3.8\",\n \"karma-webpack\": \"^4.0.2\",\n \"load-grunt-tasks\": \"^3.5.2\",\n \"minimist\": \"^1.2.0\",\n \"mocha\": \"^8.2.1\",\n \"sinon\": \"^4.5.0\",\n \"terser-webpack-plugin\": \"^4.2.3\",\n \"typescript\": \"^4.0.5\",\n \"url-search-params\": \"^0.10.0\",\n \"webpack\": \"^4.44.2\",\n \"webpack-dev-server\": \"^3.11.0\"\n },\n \"browser\": {\n \"./lib/adapters/http.js\": \"./lib/adapters/xhr.js\"\n },\n \"jsdelivr\": \"dist/axios.min.js\",\n \"unpkg\": \"dist/axios.min.js\",\n \"typings\": \"./index.d.ts\",\n \"dependencies\": {\n \"follow-redirects\": \"^1.14.0\"\n },\n \"bundlesize\": [\n {\n \"path\": \"./dist/axios.min.js\",\n \"threshold\": \"5kB\"\n }\n ]\n}\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildFullPath = require('../core/buildFullPath');\nvar buildURL = require('./../helpers/buildURL');\nvar http = require('http');\nvar https = require('https');\nvar httpFollow = require('follow-redirects').http;\nvar httpsFollow = require('follow-redirects').https;\nvar url = require('url');\nvar zlib = require('zlib');\nvar pkg = require('./../../package.json');\nvar createError = require('../core/createError');\nvar enhanceError = require('../core/enhanceError');\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nmodule.exports = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var resolve = function resolve(value) {\n resolvePromise(value);\n };\n var reject = function reject(value) {\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('User-Agent' in headers || 'user-agent' in headers) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers['User-Agent'] && !headers['user-agent']) {\n delete headers['User-Agent'];\n delete headers['user-agent'];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + pkg.version;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers['Content-Length'] = data.length;\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url.parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth) {\n delete headers.Authorization;\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url.parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n var responseData = Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n\n response.data = responseData;\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n reject(createError(\n 'timeout of ' + timeout + 'ms exceeded',\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(cancel);\n });\n }\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n", "'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n", "'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n", "'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n", "'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n", "'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n", "'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n", "module.exports = require('./lib/axios');", null, null, "import React from \"react\";\nimport { Action, ActionPanel, Form, Icon, showToast, Toast } from \"@raycast/api\";\nimport { usePromise } from \"@raycast/utils\";\nimport { useDebouncedValue, useSelectedLanguagesSet, useTextState, usePreferences } from \"./hooks\";\nimport { LanguageCode, supportedLanguagesByCode, languages, getLanguageFlag } from \"./languages\";\nimport { AUTO_DETECT, simpleTranslate } from \"./simple-translate\";\nimport { LanguagesManagerList } from \"./LanguagesManager\";\nimport { ConfigurableCopyPasteActions, OpenOnGoogleTranslateWebsiteAction } from \"./actions\";\n\nexport default function TranslateForm() {\n const [selectedLanguageSet, setSelectedLanguageSet] = useSelectedLanguagesSet();\n const langFrom = selectedLanguageSet.langFrom;\n const langTo = Array.isArray(selectedLanguageSet.langTo) ? selectedLanguageSet.langTo[0] : selectedLanguageSet.langTo;\n const { proxy } = usePreferences();\n const setLangFrom = (l: LanguageCode) => setSelectedLanguageSet({ ...selectedLanguageSet, langFrom: l });\n const setLangTo = (l: LanguageCode) => setSelectedLanguageSet({ ...selectedLanguageSet, langTo: [l] });\n const fromLangObj = supportedLanguagesByCode[langFrom];\n const toLangObj = supportedLanguagesByCode[langTo];\n\n const [text, setText] = useTextState();\n const debouncedValue = useDebouncedValue(text, 500);\n const { data: translated, isLoading } = usePromise(\n simpleTranslate,\n [debouncedValue, { langFrom: fromLangObj.code, langTo: [toLangObj.code], proxy }],\n {\n onError(error) {\n showToast({\n style: Toast.Style.Failure,\n title: error.name,\n message: error.message,\n });\n },\n },\n );\n\n const handleChange = (value: string) => {\n if (value.length > 5000) {\n setText(value.slice(0, 5000));\n showToast({\n style: Toast.Style.Failure,\n title: \"Limit\",\n message: \"Max length (5000 chars) for a single translation exceeded\",\n });\n } else {\n setText(value);\n }\n };\n\n const autoDetectedLanguage = React.useMemo(() => {\n if (langFrom === AUTO_DETECT && translated) {\n return supportedLanguagesByCode[translated.langFrom];\n }\n\n return null;\n }, [translated, langFrom]);\n\n return (\n <Form\n isLoading={isLoading}\n actions={\n <ActionPanel>\n <ActionPanel.Section title=\"Generals\">\n <ConfigurableCopyPasteActions defaultActionsPrefix=\"Translated\" value={translated?.translatedText ?? \"\"} />\n <Action.CopyToClipboard title=\"Copy Text\" content={text ?? \"\"} />\n <Action.CopyToClipboard\n title=\"Copy Pronunciation\"\n shortcut={{ modifiers: [\"cmd\", \"shift\"], key: \"p\" }}\n content={translated?.pronunciationText ?? \"\"}\n />\n <OpenOnGoogleTranslateWebsiteAction translationText={text} translation={{ langFrom, langTo }} />\n <Action.Push\n icon={Icon.Pencil}\n title=\"Manage language sets...\"\n shortcut={{ modifiers: [\"cmd\"], key: \"l\" }}\n target={<LanguagesManagerList />}\n />\n </ActionPanel.Section>\n <ActionPanel.Section title=\"Settings\">\n <Action\n shortcut={{ modifiers: [\"cmd\", \"shift\"], key: \"s\" }}\n onAction={() => {\n setSelectedLanguageSet({ langFrom: langTo, langTo: [langFrom] });\n }}\n title={`${getLanguageFlag(toLangObj, toLangObj?.code)} <-> ${getLanguageFlag(\n fromLangObj,\n fromLangObj?.code,\n )} Switch Languages`}\n />\n <ActionPanel.Submenu\n shortcut={{ modifiers: [\"cmd\"], key: \"s\" }}\n title=\"Change Languages\"\n icon={getLanguageFlag(fromLangObj)}\n >\n <ActionPanel.Submenu\n shortcut={{ modifiers: [\"cmd\", \"shift\"], key: \"f\" }}\n title=\"Change From Language\"\n icon={getLanguageFlag(fromLangObj)}\n >\n {languages.map((lang) => (\n <Action\n key={lang.code}\n onAction={() => setLangFrom(lang.code)}\n title={lang.name}\n icon={getLanguageFlag(lang)}\n />\n ))}\n </ActionPanel.Submenu>\n <ActionPanel.Submenu\n shortcut={{ modifiers: [\"cmd\", \"shift\"], key: \"t\" }}\n title=\"Change To Language\"\n icon={getLanguageFlag(toLangObj)}\n >\n {languages.map((lang) => (\n <Action\n key={lang.code}\n onAction={() => setLangTo(lang.code)}\n title={lang.name}\n icon={getLanguageFlag(lang)}\n />\n ))}\n </ActionPanel.Submenu>\n </ActionPanel.Submenu>\n </ActionPanel.Section>\n </ActionPanel>\n }\n >\n <Form.TextArea id=\"text\" title=\"Text\" value={text} onChange={handleChange} />\n <Form.Dropdown\n id=\"language_from\"\n title=\"From\"\n value={autoDetectedLanguage?.code ?? langFrom}\n onChange={(v) => setLangFrom(v as LanguageCode)}\n storeValue\n >\n {autoDetectedLanguage && (\n <Form.Dropdown.Item\n value={autoDetectedLanguage.code}\n title={`${autoDetectedLanguage.name} (Auto-detect)`}\n icon={getLanguageFlag(autoDetectedLanguage)}\n />\n )}\n {languages.map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} icon={getLanguageFlag(lang)} />\n ))}\n </Form.Dropdown>\n <Form.Dropdown\n id=\"language_to\"\n title=\"To\"\n value={langTo}\n onChange={(v) => setLangTo(v as LanguageCode)}\n storeValue\n >\n {languages\n .filter((lang) => lang.code !== AUTO_DETECT)\n .map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} icon={getLanguageFlag(lang)} />\n ))}\n </Form.Dropdown>\n <Form.TextArea\n id=\"result\"\n title=\"Translation\"\n value={translated?.translatedText ?? \"\"}\n placeholder=\"Translation\"\n />\n <Form.Description title=\"Pronunciation\" text={translated?.pronunciationText ?? \"\"} />\n </Form>\n );\n}\n", "import { getPreferenceValues, getSelectedText } from \"@raycast/api\";\nimport { useCachedState } from \"@raycast/utils\";\nimport React from \"react\";\nimport { LanguageCode } from \"./languages\";\nimport { LanguageCodeSet, TranslatePreferences } from \"./types\";\nimport { AUTO_DETECT } from \"./simple-translate\";\n\ntype _LegacySingleLanguageCodeSet = {\n langFrom: LanguageCode;\n langTo: LanguageCode;\n};\n\ntype _StoredLanguageCodeSet = _LegacySingleLanguageCodeSet | LanguageCodeSet;\n\nconst unifyLegacyLanguageSet = (legacy: _StoredLanguageCodeSet): LanguageCodeSet => {\n return {\n langFrom: legacy.langFrom,\n langTo: Array.isArray(legacy.langTo) ? legacy.langTo : [legacy.langTo],\n };\n};\n\nexport const usePreferences = () => {\n return React.useMemo(() => getPreferenceValues<TranslatePreferences>(), []);\n};\n\nexport const useTextState = () => {\n const preferences = usePreferences();\n const [text, setText] = React.useState(\"\");\n const textRef = React.useRef(text);\n textRef.current = text;\n\n React.useEffect(() => {\n if (preferences.autoInput) {\n getSelectedText()\n .then((cbText) => {\n if (!textRef.current) {\n setText(cbText ?? \"\");\n }\n })\n .catch((err) => {\n console.log(\"Error:\", err);\n });\n }\n }, []);\n\n return [text, setText] as const;\n};\n\nexport const useSelectedLanguagesSet = () => {\n const preferences = usePreferences();\n const [selectedLanguageSet, setSelectedLanguageSet] = useCachedState<_StoredLanguageCodeSet>(\n \"selectedLanguageSet\",\n unifyLegacyLanguageSet({\n langFrom: preferences.lang1,\n langTo: preferences.lang2,\n }),\n );\n\n return [unifyLegacyLanguageSet(selectedLanguageSet), setSelectedLanguageSet] as const;\n};\n\nexport const usePreferencesLanguageSet = () => {\n const preferences = usePreferences();\n const preferencesLanguageSet: LanguageCodeSet = { langFrom: preferences.lang1, langTo: [preferences.lang2] };\n return preferencesLanguageSet;\n};\n\nexport const useDebouncedValue = <T>(value: T, delay: number) => {\n const [debouncedValue, setDebouncedValue] = React.useState<T>(value);\n\n React.useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n\nexport const useAllLanguageSets = () => {\n const [languages, setLanguages] = useCachedState<_StoredLanguageCodeSet[]>(\"languages\", []);\n\n return [languages.map(unifyLegacyLanguageSet), setLanguages] as const;\n};\n\nexport const useSourceLanguage = () => {\n const [sourceLanguage, setSourceLanguage] = useCachedState<LanguageCode>(\"sourceLanguage\", AUTO_DETECT);\n\n return [sourceLanguage, setSourceLanguage] as const;\n};\n\nexport const useTargetLanguages = () => {\n const preferences = usePreferences();\n const [targetLanguages, setTargetLanguages] = useCachedState<LanguageCode[]>(\n \"targetLanguages\",\n [preferences.lang1, preferences.lang2].filter((lang) => lang !== AUTO_DETECT),\n );\n\n return [targetLanguages, setTargetLanguages] as const;\n};\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\nimport querystring from \"querystring\";\nimport { request, ProxyAgent } from \"undici\";\nimport { TranslateOption, TranslateResponse } from \"./types\";\nimport { isSupported, getISOCode } from \"./languages\";\nimport { tokenGenerator } from \"./tokenGenerator\";\n\n/**\n * @function translate\n * @param {String} text The text to be translated.\n * @param {TranslateOption} options The options object for the translator.\n * @returns {TranslateResponse} The result containing the translation.\n */\nexport async function translate(text: string, options?: TranslateOption): Promise<TranslateResponse> {\n if (typeof options !== \"object\") options = {};\n text = String(text);\n\n // Check if a lanugage is in supported; if not, throw an error object.\n let error: Error | null = null;\n [ options.from, options.to ].forEach((lang) => {\n if (lang && !isSupported(lang)) {\n error = new Error();\n error.message = `The language '${lang}' is not supported.`;\n }\n });\n if (error) throw error;\n\n // If options object doesn\"t have \"from\" language, set it to \"auto\".\n if (!Object.prototype.hasOwnProperty.call(options, \"from\")) options.from = \"auto\";\n // If options object doesn\"t have \"to\" language, set it to \"en\".\n if (!Object.prototype.hasOwnProperty.call(options, \"to\")) options.to = \"en\";\n // If options object has a \"raw\" property evaluating to true, set it to true.\n options.raw = Boolean(options.raw);\n\n // Get ISO 639-1 codes for the languages.\n options.from = getISOCode(options.from);\n options.to = getISOCode(options.to);\n\n // Generate Google Translate token for the text to be translated.\n let token: any = await tokenGenerator(text);\n\n // URL & query string required by Google Translate.\n let baseUrl = \"https://translate.google.com/translate_a/single\";\n let data: any = {\n client: \"gtx\",\n sl: options.from,\n tl: options.to,\n hl: options.to,\n dt: [ \"at\", \"bd\", \"ex\", \"ld\", \"md\", \"qca\", \"rw\", \"rm\", \"ss\", \"t\" ],\n ie: \"UTF-8\",\n oe: \"UTF-8\",\n otf: 1,\n ssel: 0,\n tsel: 0,\n kc: 7,\n q: text,\n [token.name]: token.value\n };\n\n // Append query string to the request URL.\n let url = `${baseUrl}?${querystring.stringify(data)}`;\n\n let requestOptions: any;\n let requestUrl = url;\n // If request URL is greater than 2048 characters, use POST method.\n if (url.length > 2048) {\n delete data.q;\n requestUrl = `${baseUrl}?${querystring.stringify(data)}`;\n requestOptions = {\n method: \"POST\",\n body: new URLSearchParams({ q: text }).toString(),\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\",\n },\n };\n if (options.proxy) {\n requestOptions.dispatcher = new ProxyAgent(options.proxy);\n }\n }\n else {\n if (options.proxy) {\n requestOptions = { dispatcher: new ProxyAgent(options.proxy) };\n }\n }\n\n // Request translation from Google Translate.\n let response = await request(requestUrl, requestOptions);\n let body: any = await response.body.json();\n\n let result: TranslateResponse = {\n text: \"\",\n from: {\n language: {\n didYouMean: false,\n iso: \"\"\n },\n text: {\n autoCorrected: false,\n value: \"\",\n didYouMean: false\n }\n },\n raw: \"\"\n };\n\n // If user requested a raw output, add the raw response to the result\n if (options.raw) {\n result.raw = body;\n }\n\n // Parse body and add it to the result object.\n body[0].forEach((obj: any) => {\n if (obj[0]) {\n result.text += obj[0];\n }\n });\n\n if (body[2] === body[8][0][0]) {\n result.from.language.iso = body[2];\n }\n else {\n result.from.language.didYouMean = true;\n result.from.language.iso = body[8][0][0];\n }\n\n if (body[7] && body[7][0]) {\n let str = body[7][0];\n\n str = str.replace(/<b><i>/g, \"[\");\n str = str.replace(/<\\/i><\\/b>/g, \"]\");\n\n result.from.text.value = str;\n\n if (body[7][5] === true) {\n result.from.text.autoCorrected = true;\n }\n else {\n result.from.text.didYouMean = true;\n }\n }\n\n return result;\n}\n", "/**\n * Generated from https://translate.google.com\n *\n * The languages that Google Translate supports (as of 7/5/2020) alongside\n * their ISO 639-1 codes\n * @see https://cloud.google.com/translate/docs/languages\n * @see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n */\n\nexport const languages: any = {\n \"auto\": \"Automatic\",\n \"af\": \"Afrikaans\",\n \"sq\": \"Albanian\",\n \"am\": \"Amharic\",\n \"ar\": \"Arabic\",\n \"hy\": \"Armenian\",\n \"az\": \"Azerbaijani\",\n \"eu\": \"Basque\",\n \"be\": \"Belarusian\",\n \"bn\": \"Bengali\",\n \"bs\": \"Bosnian\",\n \"bg\": \"Bulgarian\",\n \"ca\": \"Catalan\",\n \"ceb\": \"Cebuano\",\n \"ny\": \"Chichewa\",\n \"zh-cn\": \"Chinese Simplified\",\n \"zh-tw\": \"Chinese Traditional\",\n \"co\": \"Corsican\",\n \"hr\": \"Croatian\",\n \"cs\": \"Czech\",\n \"da\": \"Danish\",\n \"nl\": \"Dutch\",\n \"en\": \"English\",\n \"eo\": \"Esperanto\",\n \"et\": \"Estonian\",\n \"tl\": \"Filipino\",\n \"fi\": \"Finnish\",\n \"fr\": \"French\",\n \"fy\": \"Frisian\",\n \"gl\": \"Galician\",\n \"ka\": \"Georgian\",\n \"de\": \"German\",\n \"el\": \"Greek\",\n \"gu\": \"Gujarati\",\n \"ht\": \"Haitian Creole\",\n \"ha\": \"Hausa\",\n \"haw\": \"Hawaiian\",\n \"iw\": \"Hebrew\",\n \"hi\": \"Hindi\",\n \"hmn\": \"Hmong\",\n \"hu\": \"Hungarian\",\n \"is\": \"Icelandic\",\n \"ig\": \"Igbo\",\n \"id\": \"Indonesian\",\n \"ga\": \"Irish\",\n \"it\": \"Italian\",\n \"ja\": \"Japanese\",\n \"jw\": \"Javanese\",\n \"kn\": \"Kannada\",\n \"kk\": \"Kazakh\",\n \"km\": \"Khmer\",\n \"ko\": \"Korean\",\n \"ku\": \"Kurdish (Kurmanji)\",\n \"ky\": \"Kyrgyz\",\n \"lo\": \"Lao\",\n \"la\": \"Latin\",\n \"lv\": \"Latvian\",\n \"lt\": \"Lithuanian\",\n \"lb\": \"Luxembourgish\",\n \"mk\": \"Macedonian\",\n \"mg\": \"Malagasy\",\n \"ms\": \"Malay\",\n \"ml\": \"Malayalam\",\n \"mt\": \"Maltese\",\n \"mi\": \"Maori\",\n \"mr\": \"Marathi\",\n \"mn\": \"Mongolian\",\n \"my\": \"Myanmar (Burmese)\",\n \"ne\": \"Nepali\",\n \"no\": \"Norwegian\",\n \"ps\": \"Pashto\",\n \"fa\": \"Persian\",\n \"pl\": \"Polish\",\n \"pt\": \"Portuguese\",\n \"pa\": \"Punjabi\",\n \"ro\": \"Romanian\",\n \"ru\": \"Russian\",\n \"sm\": \"Samoan\",\n \"gd\": \"Scots Gaelic\",\n \"sr\": \"Serbian\",\n \"st\": \"Sesotho\",\n \"sn\": \"Shona\",\n \"sd\": \"Sindhi\",\n \"si\": \"Sinhala\",\n \"sk\": \"Slovak\",\n \"sl\": \"Slovenian\",\n \"so\": \"Somali\",\n \"es\": \"Spanish\",\n \"su\": \"Sundanese\",\n \"sw\": \"Swahili\",\n \"sv\": \"Swedish\",\n \"tg\": \"Tajik\",\n \"ta\": \"Tamil\",\n \"te\": \"Telugu\",\n \"th\": \"Thai\",\n \"tr\": \"Turkish\",\n \"uk\": \"Ukrainian\",\n \"ur\": \"Urdu\",\n \"uz\": \"Uzbek\",\n \"vi\": \"Vietnamese\",\n \"cy\": \"Welsh\",\n \"xh\": \"Xhosa\",\n \"yi\": \"Yiddish\",\n \"yo\": \"Yoruba\",\n \"zu\": \"Zulu\"\n};\n\n/**\n * Returns the ISO 639-1 code of the desiredLang \u2013 if it is supported by\n * Google Translate\n * @param {string} language The name or the code of the desired language\n * @returns {string|undefined} The ISO 639-1 code of the language or null if the\n * language is not supported\n */\nexport function getISOCode(language: string | undefined) {\n if (!language) return undefined;\n language = language.toLowerCase();\n if (language in languages) return language;\n\n let keys = Object.keys(languages).filter((key) => {\n if (typeof languages[key] !== \"string\") return false;\n\n return languages[key].toLowerCase() === language;\n });\n\n return keys[0] || undefined;\n}\n\n/**\n * Returns true if the desiredLang is supported by Google Translate and false otherwise\n * @param {string} language The ISO 639-1 code or the name of the desired language.\n * @returns {boolean} If the language is supported or not.\n */\nexport function isSupported(language: string | undefined) {\n return Boolean(getISOCode(language));\n}\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\n\nimport { request } from \"undici\";\n\nfunction zr(a: string) {\n let b: any;\n if (null !== yr) b = yr;\n else {\n b = wr(String.fromCharCode(84));\n let c = wr(String.fromCharCode(75));\n b = [ b(), b() ];\n b[1] = c();\n b = (yr = window[b.join(c())] || \"\") || \"\";\n }\n let d: any = wr(String.fromCharCode(116));\n let c: any = wr(String.fromCharCode(107));\n d = [ d(), d() ];\n d[1] = c();\n c = \"&\" + d.join(\"\") + \"=\";\n d = b.split(\".\");\n b = Number(d[0]) || 0;\n\n for (var e: any[] = [], f = 0, g = 0; g < a.length; g++) {\n let l = a.charCodeAt(g);\n 128 > l ? e[f++] = l : (2048 > l ? e[f++] = l >> 6 | 192 : ((l & 64512) == 55296 && g + 1 < a.length && (a.charCodeAt(g + 1) & 64512) == 56320 ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023), e[f++] = l >> 18 | 240, e[f++] = l >> 12 & 63 | 128) : e[f++] = l >> 12 | 224, e[f++] = l >> 6 & 63 | 128), e[f++] = l & 63 | 128);\n }\n let h: number = Number(b);\n for (let f = 0; f < e.length; f++) a += e[f], h = xr(h, \"+-a^+6\");\n h = xr(h, \"+-3^+b+-f\");\n h ^= Number(d[1]) || 0;\n 0 > h && (h = (h & 2147483647) + 2147483648);\n h %= 1E6;\n return c + (a.toString() + \".\" + (h ^ b));\n}\n\nlet yr: string | null = null;\nlet wr = function(a: string) {\n return function() {\n return a;\n };\n};\nlet xr = function(a: number, b: string) {\n for (let c = 0; c < b.length - 2; c += 3) {\n let d = b.charAt(c + 2);\n let e = d >= \"a\" ? d.charCodeAt(0) - 87 : Number(d);\n e = b.charAt(c + 1) == \"+\" ? a >>> e : a << e;\n a = b.charAt(c) == \"+\" ? a + e & 4294967295 : a ^ e;\n }\n return a;\n};\n\nconst config = new Map();\n\nconst window: any = {\n TKK: config.get(\"TKK\") || \"0\"\n};\n\nasync function updateTKK() {\n let now = Math.floor(Date.now() / 3600000);\n\n if (Number(window.TKK.split(\".\")[0]) !== now) {\n const response = await request(\"https://translate.google.com\");\n const body = await response.body.text();\n\n // code will extract something like tkk:'1232135.131231321312', we need only value\n const code = body.match(/tkk:'\\d+.\\d+'/g);\n\n if (code && code.length > 0) {\n // extracting value tkk:'1232135.131231321312', this will extract only token: 1232135.131231321312\n const xt = code[0].split(\":\")[1].replace(/'/g, \"\");\n\n window.TKK = xt;\n config.set(\"TKK\", xt);\n }\n }\n}\n\nexport async function tokenGenerator(text: string) {\n try {\n await updateTKK();\n\n let tk = zr(text);\n tk = tk.replace(\"&tk=\", \"\");\n return { name: \"tk\", value: tk };\n }\n catch (error) {\n return error;\n }\n}\n", "import { translate } from \"../vendor/@iamtraction-translate/src\";\nimport * as googleTTS from \"google-tts-api\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport * as https from \"https\";\nimport * as child_process from \"child_process\";\nimport { existsSync, writeFileSync, unlinkSync } from \"fs\";\nimport { LanguageCode } from \"./languages\";\nimport { LanguageCodeSet } from \"./types\";\n\nexport const AUTO_DETECT = \"auto\";\n\nexport type SimpleTranslateResult = {\n originalText: string;\n translatedText: string;\n pronunciationText?: string;\n langFrom: LanguageCode;\n langTo: LanguageCode;\n};\n\nexport class TranslateError extends Error {}\n\nconst extractPronounceTextFromRaw = (raw: string) => {\n return raw?.[0]?.[1]?.[2];\n};\n\nexport async function simpleTranslate(text: string, options: LanguageCodeSet): Promise<SimpleTranslateResult> {\n try {\n if (!text) {\n return {\n originalText: text,\n translatedText: \"\",\n pronunciationText: \"\",\n langFrom: options.langFrom,\n langTo: options.langTo[0],\n };\n }\n\n const translated = await translate(text, {\n from: options.langFrom,\n to: options.langTo[0],\n raw: true,\n proxy: options.proxy,\n });\n\n return {\n originalText: text,\n translatedText: translated.text,\n pronunciationText: extractPronounceTextFromRaw(translated?.raw),\n langFrom: translated?.from?.language?.iso as LanguageCode,\n langTo: options.langTo[0],\n };\n } catch (err) {\n if (err instanceof Error) {\n if (err.name === \"TooManyRequestsError\") {\n const error = new TranslateError();\n error.name = \"Too many requests\";\n error.message = \"please try again later\";\n throw error;\n }\n\n const error = new TranslateError();\n error.name = err.name;\n error.message = err.message;\n throw error;\n }\n\n throw err;\n }\n}\n\nexport async function doubleWayTranslate(text: string, options: LanguageCodeSet) {\n if (!text) {\n return [];\n }\n\n if (options.langFrom === AUTO_DETECT) {\n const translated1 = await simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n });\n\n if (translated1?.langFrom) {\n const translated2 = await simpleTranslate(translated1.translatedText, {\n langFrom: options.langTo[0],\n langTo: [translated1.langFrom],\n });\n\n return [translated1, translated2];\n }\n\n return [];\n } else {\n return await Promise.all([\n simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n }),\n simpleTranslate(text, {\n langFrom: options.langTo[0],\n langTo: [options.langFrom],\n }),\n ]);\n }\n}\n\nexport async function playTTS(text: string, langTo: string) {\n const audioUrl = googleTTS.getAudioUrl(text, {\n lang: langTo,\n slow: false,\n host: \"https://translate.google.com\",\n });\n https.get(audioUrl, (response) => {\n const chunks: Uint8Array[] = [];\n\n response.on(\"data\", (chunk) => {\n chunks.push(chunk);\n });\n\n response.on(\"end\", () => {\n const audioData = Buffer.concat(chunks);\n\n const tempFilePath = path.join(os.tmpdir(), \"translation.mp3\");\n writeFileSync(tempFilePath, audioData);\n\n // Play the audio file using afplay\n const afplayProcess = child_process.spawn(\"afplay\", [tempFilePath]);\n\n afplayProcess.on(\"exit\", (code) => {\n if (code !== 0) {\n console.error(\"Error playing audio\");\n }\n if (existsSync(tempFilePath)) {\n unlinkSync(tempFilePath);\n }\n });\n });\n });\n}\n", "{\n \"Auto-detect\": {\n \"code\": \"auto\",\n \"name\": \"Auto-detect\",\n \"flag\": \"\uD83C\uDF10\"\n },\n \"Afrikaans\": {\n \"code\": \"af\",\n \"name\": \"Afrikaans\",\n \"flag\": \"\uD83C\uDDFF\uD83C\uDDE6\"\n },\n \"Albanian\": {\n \"code\": \"sq\",\n \"name\": \"Albanian\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDF1\"\n },\n \"Amharic\": {\n \"code\": \"am\",\n \"name\": \"Amharic\"\n },\n \"Arabic\": {\n \"code\": \"ar\",\n \"name\": \"Arabic\"\n },\n \"Armenian\": {\n \"code\": \"hy\",\n \"name\": \"Armenian\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDF2\"\n },\n \"Azerbaijani\": {\n \"code\": \"az\",\n \"name\": \"Azerbaijani\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDFF\"\n },\n \"Basque\": {\n \"code\": \"eu\",\n \"name\": \"Basque\"\n },\n \"Belarusian\": {\n \"code\": \"be\",\n \"name\": \"Belarusian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDFE\"\n },\n \"Bengali\": {\n \"code\": \"bn\",\n \"name\": \"Bengali\"\n },\n \"Bosnian\": {\n \"code\": \"bs\",\n \"name\": \"Bosnian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDE6\"\n },\n \"Bulgarian\": {\n \"code\": \"bg\",\n \"name\": \"Bulgarian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDEC\"\n },\n \"Catalan\": {\n \"code\": \"ca\",\n \"name\": \"Catalan\"\n },\n \"Cebuano\": {\n \"code\": \"ceb\",\n \"name\": \"Cebuano\"\n },\n \"Chinese Simplified\": {\n \"code\": \"zh-CN\",\n \"name\": \"Chinese Simplified\",\n \"flag\": \"\uD83C\uDDE8\uD83C\uDDF3\"\n },\n \"Mandarin\": {\n \"code\": \"zh-TW\",\n \"name\": \"Chinese Traditional\"\n },\n \"Corsican\": {\n \"code\": \"co\",\n \"name\": \"Corsican\"\n },\n \"Croatian\": {\n \"code\": \"hr\",\n \"name\": \"Croatian\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDF7\"\n },\n \"Czech\": {\n \"code\": \"cs\",\n \"name\": \"Czech\",\n \"flag\": \"\uD83C\uDDE8\uD83C\uDDFF\"\n },\n \"Danish\": {\n \"code\": \"da\",\n \"name\": \"Danish\",\n \"flag\": \"\uD83C\uDDE9\uD83C\uDDF0\"\n },\n \"Dutch\": {\n \"code\": \"nl\",\n \"name\": \"Dutch\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF1\"\n },\n \"English\": {\n \"code\": \"en\",\n \"name\": \"English\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDE7\"\n },\n \"Esperanto\": {\n \"code\": \"eo\",\n \"name\": \"Esperanto\"\n },\n \"Estonian\": {\n \"code\": \"et\",\n \"name\": \"Estonian\",\n \"flag\": \"\uD83C\uDDEA\uD83C\uDDEA\"\n },\n \"Finnish\": {\n \"code\": \"fi\",\n \"name\": \"Finnish\",\n \"flag\": \"\uD83C\uDDEB\uD83C\uDDEE\"\n },\n \"French\": {\n \"code\": \"fr\",\n \"name\": \"French\",\n \"flag\": \"\uD83C\uDDEB\uD83C\uDDF7\"\n },\n \"Frisian\": {\n \"code\": \"fy\",\n \"name\": \"Frisian\"\n },\n \"Galician\": {\n \"code\": \"gl\",\n \"name\": \"Galician\"\n },\n \"Georgian\": {\n \"code\": \"ka\",\n \"name\": \"Georgian\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDEA\"\n },\n \"German\": {\n \"code\": \"de\",\n \"name\": \"German\",\n \"flag\": \"\uD83C\uDDE9\uD83C\uDDEA\"\n },\n \"Greek\": {\n \"code\": \"el\",\n \"name\": \"Greek\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDF7\"\n },\n \"Gujarati\": {\n \"code\": \"gu\",\n \"name\": \"Gujarati\"\n },\n \"Haitian Creole\": {\n \"code\": \"ht\",\n \"name\": \"Haitian Creole\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDF9\"\n },\n \"Hausa\": {\n \"code\": \"ha\",\n \"name\": \"Hausa\"\n },\n \"Hawaiian\": {\n \"code\": \"haw\",\n \"name\": \"Hawaiian\",\n \"flag\": \"\uD83C\uDF3A\"\n },\n \"Hebrew\": {\n \"code\": \"iw\",\n \"name\": \"Hebrew\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF1\"\n },\n \"Hindi\": {\n \"code\": \"hi\",\n \"name\": \"Hindi\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF3\"\n },\n \"Hmong\": {\n \"code\": \"hmn\",\n \"name\": \"Hmong\"\n },\n \"Hungarian\": {\n \"code\": \"hu\",\n \"name\": \"Hungarian\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDFA\"\n },\n \"Icelandic\": {\n \"code\": \"is\",\n \"name\": \"Icelandic\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF8\"\n },\n \"Igbo\": {\n \"code\": \"ig\",\n \"name\": \"Igbo\"\n },\n \"Indonesian\": {\n \"code\": \"id\",\n \"name\": \"Indonesian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDE9\"\n },\n \"Irish\": {\n \"code\": \"ga\",\n \"name\": \"Irish\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDEA\"\n },\n \"Italian\": {\n \"code\": \"it\",\n \"name\": \"Italian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF9\"\n },\n \"Japanese\": {\n \"code\": \"ja\",\n \"name\": \"Japanese\",\n \"flag\": \"\uD83C\uDDEF\uD83C\uDDF5\"\n },\n \"Javanese\": {\n \"code\": \"jv\",\n \"name\": \"Javanese\"\n },\n \"Kannada\": {\n \"code\": \"kn\",\n \"name\": \"Kannada\"\n },\n \"Kazakh\": {\n \"code\": \"kk\",\n \"name\": \"Kazakh\",\n \"flag\": \"\uD83C\uDDF0\uD83C\uDDFF\"\n },\n \"Khmer\": {\n \"code\": \"km\",\n \"name\": \"Khmer\"\n },\n \"Kinyarwanda\": {\n \"code\": \"rw\",\n \"name\": \"Kinyarwanda\"\n },\n \"Korean\": {\n \"code\": \"ko\",\n \"name\": \"Korean\",\n \"flag\": \"\uD83C\uDDF0\uD83C\uDDF7\"\n },\n \"Kurdish\": {\n \"code\": \"ku\",\n \"name\": \"Kurdish\"\n },\n \"Kyrgyz\": {\n \"code\": \"ky\",\n \"name\": \"Kyrgyz\"\n },\n \"Lao\": {\n \"code\": \"lo\",\n \"name\": \"Lao\"\n },\n \"Latvian\": {\n \"code\": \"lv\",\n \"name\": \"Latvian\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDFB\"\n },\n \"Lithuanian\": {\n \"code\": \"lt\",\n \"name\": \"Lithuanian\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDF9\"\n },\n \"Luxembourgish\": {\n \"code\": \"lb\",\n \"name\": \"Luxembourgish\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDFA\"\n },\n \"Latin\": {\n \"code\": \"la\",\n \"name\": \"Latin\",\n \"flag\": \"\uD83C\uDFDB\"\n },\n \"Macedonian\": {\n \"code\": \"mk\",\n \"name\": \"Macedonian\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF0\"\n },\n \"Malagasy\": {\n \"code\": \"mg\",\n \"name\": \"Malagasy\"\n },\n \"Malay\": {\n \"code\": \"ms\",\n \"name\": \"Malay\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDFE\"\n },\n \"Malayalam\": {\n \"code\": \"ml\",\n \"name\": \"Malayalam\"\n },\n \"Maltese\": {\n \"code\": \"mt\",\n \"name\": \"Maltese\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF9\"\n },\n \"Maori\": {\n \"code\": \"mi\",\n \"name\": \"Maori\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDFF\"\n },\n \"Marathi\": {\n \"code\": \"mr\",\n \"name\": \"Marathi\"\n },\n \"Mongolian\": {\n \"code\": \"mn\",\n \"name\": \"Mongolian\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF3\"\n },\n \"Myanmar (Burmese)\": {\n \"code\": \"my\",\n \"name\": \"Myanmar (Burmese)\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF2\"\n },\n \"Nepali\": {\n \"code\": \"ne\",\n \"name\": \"Nepali\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF5\"\n },\n \"Norwegian\": {\n \"code\": \"no\",\n \"name\": \"Norwegian\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF4\"\n },\n \"Nyanja (Chichewa)\": {\n \"code\": \"ny\",\n \"name\": \"Nyanja (Chichewa)\"\n },\n \"Odia (Oriya)\": {\n \"code\": \"or\",\n \"name\": \"Odia (Oriya)\"\n },\n \"Pashto\": {\n \"code\": \"ps\",\n \"name\": \"Pashto\"\n },\n \"Persian\": {\n \"code\": \"fa\",\n \"name\": \"Persian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF7\"\n },\n \"Polish\": {\n \"code\": \"pl\",\n \"name\": \"Polish\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDF1\"\n },\n \"Portuguese\": {\n \"code\": \"pt\",\n \"name\": \"Portuguese\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDF9\"\n },\n \"Punjabi\": {\n \"code\": \"pa\",\n \"name\": \"Punjabi\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF3\"\n },\n \"Romanian\": {\n \"code\": \"ro\",\n \"name\": \"Romanian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDF4\"\n },\n \"Russian\": {\n \"code\": \"ru\",\n \"name\": \"Russian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDFA\"\n },\n \"Samoan\": {\n \"code\": \"sm\",\n \"name\": \"Samoan\"\n },\n \"Scots Gaelic\": {\n \"code\": \"gd\",\n \"name\": \"Scots Gaelic\",\n \"flag\": \"\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74\uDB40\uDC7F\"\n },\n \"Serbian\": {\n \"code\": \"sr\",\n \"name\": \"Serbian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDF8\"\n },\n \"Sesotho\": {\n \"code\": \"st\",\n \"name\": \"Sesotho\"\n },\n \"Shona\": {\n \"code\": \"sn\",\n \"name\": \"Shona\"\n },\n \"Sindhi\": {\n \"code\": \"sd\",\n \"name\": \"Sindhi\"\n },\n \"Sinhala (Sinhalese)\": {\n \"code\": \"si\",\n \"name\": \"Sinhala (Sinhalese)\"\n },\n \"Slovak\": {\n \"code\": \"sk\",\n \"name\": \"Slovak\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDF0\"\n },\n \"Slovenian\": {\n \"code\": \"sl\",\n \"name\": \"Slovenian\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDEE\"\n },\n \"Somali\": {\n \"code\": \"so\",\n \"name\": \"Somali\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDF4\"\n },\n \"Spanish\": {\n \"code\": \"es\",\n \"name\": \"Spanish\",\n \"flag\": \"\uD83C\uDDEA\uD83C\uDDF8\"\n },\n \"Sundanese\": {\n \"code\": \"su\",\n \"name\": \"Sundanese\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDE9\"\n },\n \"Swahili\": {\n \"code\": \"sw\",\n \"name\": \"Swahili\"\n },\n \"Swedish\": {\n \"code\": \"sv\",\n \"name\": \"Swedish\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDEA\"\n },\n \"Tagalog (Filipino)\": {\n \"code\": \"tl\",\n \"name\": \"Tagalog (Filipino)\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDED\"\n },\n \"Tajik\": {\n \"code\": \"tg\",\n \"name\": \"Tajik\"\n },\n \"Tamil\": {\n \"code\": \"ta\",\n \"name\": \"Tamil\"\n },\n \"Tatar\": {\n \"code\": \"tt\",\n \"name\": \"Tatar\"\n },\n \"Telugu\": {\n \"code\": \"te\",\n \"name\": \"Telugu\"\n },\n \"Thai\": {\n \"code\": \"th\",\n \"name\": \"Thai\"\n },\n \"Turkish\": {\n \"code\": \"tr\",\n \"name\": \"Turkish\",\n \"flag\": \"\uD83C\uDDF9\uD83C\uDDF7\"\n },\n \"Turkmen\": {\n \"code\": \"tk\",\n \"name\": \"Turkmen\",\n \"flag\": \"\uD83C\uDDF9\uD83C\uDDF2\"\n },\n \"Ukrainian\": {\n \"code\": \"uk\",\n \"name\": \"Ukrainian\",\n \"flag\": \"\uD83C\uDDFA\uD83C\uDDE6\"\n },\n \"Urdu\": {\n \"code\": \"ur\",\n \"name\": \"Urdu\"\n },\n \"Uyghur\": {\n \"code\": \"ug\",\n \"name\": \"Uyghur\"\n },\n \"Uzbek\": {\n \"code\": \"uz\",\n \"name\": \"Uzbek\"\n },\n \"Vietnamese\": {\n \"code\": \"vi\",\n \"name\": \"Vietnamese\",\n \"flag\": \"\uD83C\uDDFB\uD83C\uDDF3\"\n },\n \"Welsh\": {\n \"code\": \"cy\",\n \"name\": \"Welsh\",\n \"flag\": \"\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73\uDB40\uDC7F\"\n },\n \"Xhosa\": {\n \"code\": \"xh\",\n \"name\": \"Xhosa\"\n },\n \"Yiddish\": {\n \"code\": \"yi\",\n \"name\": \"Yiddish\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF1\"\n },\n \"Yoruba\": {\n \"code\": \"yo\",\n \"name\": \"Yoruba\"\n },\n \"Zulu\": {\n \"code\": \"zu\",\n \"name\": \"Zulu\"\n }\n}\n", "{\n \"auto\": {\n \"code\": \"auto\",\n \"name\": \"Auto-detect\",\n \"flag\": \"\uD83C\uDF10\"\n },\n \"af\": {\n \"code\": \"af\",\n \"name\": \"Afrikaans\",\n \"flag\": \"\uD83C\uDDFF\uD83C\uDDE6\"\n },\n \"sq\": {\n \"code\": \"sq\",\n \"name\": \"Albanian\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDF1\"\n },\n \"am\": {\n \"code\": \"am\",\n \"name\": \"Amharic\"\n },\n \"ar\": {\n \"code\": \"ar\",\n \"name\": \"Arabic\"\n },\n \"hy\": {\n \"code\": \"hy\",\n \"name\": \"Armenian\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDF2\"\n },\n \"az\": {\n \"code\": \"az\",\n \"name\": \"Azerbaijani\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDFF\"\n },\n \"eu\": {\n \"code\": \"eu\",\n \"name\": \"Basque\"\n },\n \"be\": {\n \"code\": \"be\",\n \"name\": \"Belarusian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDFE\"\n },\n \"bn\": {\n \"code\": \"bn\",\n \"name\": \"Bengali\"\n },\n \"bs\": {\n \"code\": \"bs\",\n \"name\": \"Bosnian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDE6\"\n },\n \"bg\": {\n \"code\": \"bg\",\n \"name\": \"Bulgarian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDEC\"\n },\n \"ca\": {\n \"code\": \"ca\",\n \"name\": \"Catalan\"\n },\n \"ceb\": {\n \"code\": \"ceb\",\n \"name\": \"Cebuano\"\n },\n \"zh-CN\": {\n \"code\": \"zh-CN\",\n \"name\": \"Chinese Simplified\",\n \"flag\": \"\uD83C\uDDE8\uD83C\uDDF3\"\n },\n \"zh-TW\": {\n \"code\": \"zh-TW\",\n \"name\": \"Chinese Traditional\"\n },\n \"co\": {\n \"code\": \"co\",\n \"name\": \"Corsican\"\n },\n \"hr\": {\n \"code\": \"hr\",\n \"name\": \"Croatian\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDF7\"\n },\n \"cs\": {\n \"code\": \"cs\",\n \"name\": \"Czech\",\n \"flag\": \"\uD83C\uDDE8\uD83C\uDDFF\"\n },\n \"da\": {\n \"code\": \"da\",\n \"name\": \"Danish\",\n \"flag\": \"\uD83C\uDDE9\uD83C\uDDF0\"\n },\n \"nl\": {\n \"code\": \"nl\",\n \"name\": \"Dutch\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF1\"\n },\n \"en\": {\n \"code\": \"en\",\n \"name\": \"English\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDE7\"\n },\n \"eo\": {\n \"code\": \"eo\",\n \"name\": \"Esperanto\"\n },\n \"et\": {\n \"code\": \"et\",\n \"name\": \"Estonian\",\n \"flag\": \"\uD83C\uDDEA\uD83C\uDDEA\"\n },\n \"fi\": {\n \"code\": \"fi\",\n \"name\": \"Finnish\",\n \"flag\": \"\uD83C\uDDEB\uD83C\uDDEE\"\n },\n \"fr\": {\n \"code\": \"fr\",\n \"name\": \"French\",\n \"flag\": \"\uD83C\uDDEB\uD83C\uDDF7\"\n },\n \"fy\": {\n \"code\": \"fy\",\n \"name\": \"Frisian\"\n },\n \"gl\": {\n \"code\": \"gl\",\n \"name\": \"Galician\"\n },\n \"ka\": {\n \"code\": \"ka\",\n \"name\": \"Georgian\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDEA\"\n },\n \"de\": {\n \"code\": \"de\",\n \"name\": \"German\",\n \"flag\": \"\uD83C\uDDE9\uD83C\uDDEA\"\n },\n \"el\": {\n \"code\": \"el\",\n \"name\": \"Greek\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDF7\"\n },\n \"gu\": {\n \"code\": \"gu\",\n \"name\": \"Gujarati\"\n },\n \"ht\": {\n \"code\": \"ht\",\n \"name\": \"Haitian Creole\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDF9\"\n },\n \"ha\": {\n \"code\": \"ha\",\n \"name\": \"Hausa\"\n },\n \"haw\": {\n \"code\": \"haw\",\n \"name\": \"Hawaiian\",\n \"flag\": \"\uD83C\uDF3A\"\n },\n \"iw\": {\n \"code\": \"iw\",\n \"name\": \"Hebrew\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF1\"\n },\n \"hi\": {\n \"code\": \"hi\",\n \"name\": \"Hindi\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF3\"\n },\n \"hmn\": {\n \"code\": \"hmn\",\n \"name\": \"Hmong\"\n },\n \"hu\": {\n \"code\": \"hu\",\n \"name\": \"Hungarian\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDFA\"\n },\n \"is\": {\n \"code\": \"is\",\n \"name\": \"Icelandic\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF8\"\n },\n \"ig\": {\n \"code\": \"ig\",\n \"name\": \"Igbo\"\n },\n \"id\": {\n \"code\": \"id\",\n \"name\": \"Indonesian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDE9\"\n },\n \"ga\": {\n \"code\": \"ga\",\n \"name\": \"Irish\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDEA\"\n },\n \"it\": {\n \"code\": \"it\",\n \"name\": \"Italian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF9\"\n },\n \"ja\": {\n \"code\": \"ja\",\n \"name\": \"Japanese\",\n \"flag\": \"\uD83C\uDDEF\uD83C\uDDF5\"\n },\n \"jv\": {\n \"code\": \"jv\",\n \"name\": \"Javanese\"\n },\n \"kn\": {\n \"code\": \"kn\",\n \"name\": \"Kannada\"\n },\n \"kk\": {\n \"code\": \"kk\",\n \"name\": \"Kazakh\",\n \"flag\": \"\uD83C\uDDF0\uD83C\uDDFF\"\n },\n \"km\": {\n \"code\": \"km\",\n \"name\": \"Khmer\"\n },\n \"rw\": {\n \"code\": \"rw\",\n \"name\": \"Kinyarwanda\"\n },\n \"ko\": {\n \"code\": \"ko\",\n \"name\": \"Korean\",\n \"flag\": \"\uD83C\uDDF0\uD83C\uDDF7\"\n },\n \"ku\": {\n \"code\": \"ku\",\n \"name\": \"Kurdish\"\n },\n \"ky\": {\n \"code\": \"ky\",\n \"name\": \"Kyrgyz\"\n },\n \"lo\": {\n \"code\": \"lo\",\n \"name\": \"Lao\"\n },\n \"lv\": {\n \"code\": \"lv\",\n \"name\": \"Latvian\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDFB\"\n },\n \"lt\": {\n \"code\": \"lt\",\n \"name\": \"Lithuanian\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDF9\"\n },\n \"lb\": {\n \"code\": \"lb\",\n \"name\": \"Luxembourgish\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDFA\"\n },\n \"la\": {\n \"code\": \"la\",\n \"name\": \"Latin\",\n \"flag\": \"\uD83C\uDFDB\"\n },\n \"mk\": {\n \"code\": \"mk\",\n \"name\": \"Macedonian\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF0\"\n },\n \"mg\": {\n \"code\": \"mg\",\n \"name\": \"Malagasy\"\n },\n \"ms\": {\n \"code\": \"ms\",\n \"name\": \"Malay\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDFE\"\n },\n \"ml\": {\n \"code\": \"ml\",\n \"name\": \"Malayalam\"\n },\n \"mt\": {\n \"code\": \"mt\",\n \"name\": \"Maltese\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF9\"\n },\n \"mi\": {\n \"code\": \"mi\",\n \"name\": \"Maori\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDFF\"\n },\n \"mr\": {\n \"code\": \"mr\",\n \"name\": \"Marathi\"\n },\n \"mn\": {\n \"code\": \"mn\",\n \"name\": \"Mongolian\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF3\"\n },\n \"my\": {\n \"code\": \"my\",\n \"name\": \"Myanmar (Burmese)\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF2\"\n },\n \"ne\": {\n \"code\": \"ne\",\n \"name\": \"Nepali\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF5\"\n },\n \"no\": {\n \"code\": \"no\",\n \"name\": \"Norwegian\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF4\"\n },\n \"ny\": {\n \"code\": \"ny\",\n \"name\": \"Nyanja (Chichewa)\"\n },\n \"or\": {\n \"code\": \"or\",\n \"name\": \"Odia (Oriya)\"\n },\n \"ps\": {\n \"code\": \"ps\",\n \"name\": \"Pashto\"\n },\n \"fa\": {\n \"code\": \"fa\",\n \"name\": \"Persian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF7\"\n },\n \"pl\": {\n \"code\": \"pl\",\n \"name\": \"Polish\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDF1\"\n },\n \"pt\": {\n \"code\": \"pt\",\n \"name\": \"Portuguese\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDF9\"\n },\n \"pa\": {\n \"code\": \"pa\",\n \"name\": \"Punjabi\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF3\"\n },\n \"ro\": {\n \"code\": \"ro\",\n \"name\": \"Romanian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDF4\"\n },\n \"ru\": {\n \"code\": \"ru\",\n \"name\": \"Russian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDFA\"\n },\n \"sm\": {\n \"code\": \"sm\",\n \"name\": \"Samoan\"\n },\n \"gd\": {\n \"code\": \"gd\",\n \"name\": \"Scots Gaelic\",\n \"flag\": \"\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74\uDB40\uDC7F\"\n },\n \"sr\": {\n \"code\": \"sr\",\n \"name\": \"Serbian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDF8\"\n },\n \"st\": {\n \"code\": \"st\",\n \"name\": \"Sesotho\"\n },\n \"sn\": {\n \"code\": \"sn\",\n \"name\": \"Shona\"\n },\n \"sd\": {\n \"code\": \"sd\",\n \"name\": \"Sindhi\"\n },\n \"si\": {\n \"code\": \"si\",\n \"name\": \"Sinhala (Sinhalese)\"\n },\n \"sk\": {\n \"code\": \"sk\",\n \"name\": \"Slovak\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDF0\"\n },\n \"sl\": {\n \"code\": \"sl\",\n \"name\": \"Slovenian\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDEE\"\n },\n \"so\": {\n \"code\": \"so\",\n \"name\": \"Somali\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDF4\"\n },\n \"es\": {\n \"code\": \"es\",\n \"name\": \"Spanish\",\n \"flag\": \"\uD83C\uDDEA\uD83C\uDDF8\"\n },\n \"su\": {\n \"code\": \"su\",\n \"name\": \"Sundanese\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDE9\"\n },\n \"sw\": {\n \"code\": \"sw\",\n \"name\": \"Swahili\"\n },\n \"sv\": {\n \"code\": \"sv\",\n \"name\": \"Swedish\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDEA\"\n },\n \"tl\": {\n \"code\": \"tl\",\n \"name\": \"Tagalog (Filipino)\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDED\"\n },\n \"tg\": {\n \"code\": \"tg\",\n \"name\": \"Tajik\"\n },\n \"ta\": {\n \"code\": \"ta\",\n \"name\": \"Tamil\"\n },\n \"tt\": {\n \"code\": \"tt\",\n \"name\": \"Tatar\"\n },\n \"te\": {\n \"code\": \"te\",\n \"name\": \"Telugu\"\n },\n \"th\": {\n \"code\": \"th\",\n \"name\": \"Thai\"\n },\n \"tr\": {\n \"code\": \"tr\",\n \"name\": \"Turkish\",\n \"flag\": \"\uD83C\uDDF9\uD83C\uDDF7\"\n },\n \"tk\": {\n \"code\": \"tk\",\n \"name\": \"Turkmen\",\n \"flag\": \"\uD83C\uDDF9\uD83C\uDDF2\"\n },\n \"uk\": {\n \"code\": \"uk\",\n \"name\": \"Ukrainian\",\n \"flag\": \"\uD83C\uDDFA\uD83C\uDDE6\"\n },\n \"ur\": {\n \"code\": \"ur\",\n \"name\": \"Urdu\"\n },\n \"ug\": {\n \"code\": \"ug\",\n \"name\": \"Uyghur\"\n },\n \"uz\": {\n \"code\": \"uz\",\n \"name\": \"Uzbek\"\n },\n \"vi\": {\n \"code\": \"vi\",\n \"name\": \"Vietnamese\",\n \"flag\": \"\uD83C\uDDFB\uD83C\uDDF3\"\n },\n \"cy\": {\n \"code\": \"cy\",\n \"name\": \"Welsh\",\n \"flag\": \"\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73\uDB40\uDC7F\"\n },\n \"xh\": {\n \"code\": \"xh\",\n \"name\": \"Xhosa\"\n },\n \"yi\": {\n \"code\": \"yi\",\n \"name\": \"Yiddish\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF1\"\n },\n \"yo\": {\n \"code\": \"yo\",\n \"name\": \"Yoruba\"\n },\n \"zu\": {\n \"code\": \"zu\",\n \"name\": \"Zulu\"\n }\n}\n", "import _supportedLanguagesByCountry from \"./supportedLanguages.json\";\nimport _supportedLanguagesByCode from \"./supportedLanguagesByCode.json\";\n\nexport type LanguagesMapByCountry = typeof _supportedLanguagesByCountry;\nexport type LanguageCountries = keyof LanguagesMapByCountry;\n\nexport type LanguagesMapByCode = typeof _supportedLanguagesByCode;\nexport type LanguageCode = keyof LanguagesMapByCode;\n\nexport type LanguagesItem = {\n code: LanguageCode;\n name: string;\n flag?: string;\n};\n\nexport const getLanguageFlag = (language?: LanguagesItem, fallback = \"\uD83C\uDFF3\uFE0F\") => {\n return language?.flag ?? fallback;\n};\n\nexport const getLanguageFlagByCode = (lang: LanguageCode) => {\n return getLanguageFlag(supportedLanguagesByCode[lang]);\n};\n\nexport const supportedLanguagesByCode = _supportedLanguagesByCode as Record<LanguageCode, LanguagesItem>;\nexport const supportedLanguagesByCountry = _supportedLanguagesByCountry as Record<LanguageCountries, LanguagesItem>;\n\nexport const languages: LanguagesItem[] = Object.values(supportedLanguagesByCountry);\n", "import React from \"react\";\nimport { Action, ActionPanel, Color, Icon, List, showToast, Toast, useNavigation } from \"@raycast/api\";\nimport { useCachedState } from \"@raycast/utils\";\nimport { LanguageCodeSet } from \"../types\";\nimport { useAllLanguageSets, usePreferencesLanguageSet, useSelectedLanguagesSet } from \"../hooks\";\nimport { AddLanguageForm } from \"./AddLanguageForm\";\nimport { isSameLanguageSet, formatLanguageSet, getLanguageSetObjects } from \"../utils\";\nimport { getLanguageFlag } from \"../languages\";\n\nexport function LanguagesManagerItem({\n languageSet,\n onSelect,\n onDelete,\n selected,\n}: {\n languageSet: LanguageCodeSet;\n onSelect: () => void;\n onDelete?: () => void;\n selected?: boolean;\n}) {\n const { langFrom, langTo } = getLanguageSetObjects(languageSet);\n\n const langsTo = Array.isArray(langTo) ? langTo : [langTo];\n const langsToFlags = langsTo.map((l) => getLanguageFlag(l)).join(\" \");\n const langsToLabel = langsTo.map((l) => l.name).join(\", \");\n\n return (\n <List.Item\n subtitle={`${getLanguageFlag(langFrom)} -> ${langsToFlags}`}\n title={`${langFrom.name} -> ${langsToLabel}`}\n keywords={[langFrom.name, langFrom.code, ...langsTo.flatMap((l) => [l.name, l.code])]}\n icon={selected ? { tintColor: Color.Green, source: Icon.Checkmark } : undefined}\n actions={\n <ActionPanel>\n <Action title=\"Select\" onAction={onSelect} icon={{ tintColor: Color.Green, source: Icon.Checkmark }} />\n {onDelete && <Action style={Action.Style.Destructive} title=\"Delete\" onAction={onDelete} icon={Icon.Trash} />}\n </ActionPanel>\n }\n />\n );\n}\n\nexport const SaveCurrentLanguageSet: React.FC<{ languageSet: LanguageCodeSet; onSelect: () => void }> = ({\n languageSet,\n onSelect,\n}) => {\n return (\n <List.Item\n icon={Icon.SaveDocument}\n title=\"Save current set\"\n subtitle={formatLanguageSet(languageSet)}\n actions={\n <ActionPanel>\n <Action title=\"Save current set\" onAction={onSelect} />\n </ActionPanel>\n }\n />\n );\n};\n\nexport const LanguagesManagerList: React.VFC = () => {\n const navigation = useNavigation();\n const preferencesLanguageSet = usePreferencesLanguageSet();\n const [selectedLanguageSet, setSelectedLanguageSet] = useSelectedLanguagesSet();\n const [languages, setLanguages] = useAllLanguageSets();\n\n return (\n <List\n actions={\n <ActionPanel>\n <Action title=\"Remove all\" onAction={() => setLanguages([])} />\n </ActionPanel>\n }\n >\n <List.Item\n icon={{ source: Icon.Plus }}\n title=\"Add new language set...\"\n actions={\n <ActionPanel>\n <Action.Push\n title=\"Add new language set...\"\n target={\n <AddLanguageForm\n onAddLanguage={(langSet) => {\n setLanguages([...languages, langSet]);\n navigation.pop();\n showToast(Toast.Style.Success, \"Language set was saved!\", formatLanguageSet(langSet));\n }}\n />\n }\n />\n </ActionPanel>\n }\n />\n {!languages.some((l) => isSameLanguageSet(l, selectedLanguageSet)) &&\n !isSameLanguageSet(preferencesLanguageSet, selectedLanguageSet) && (\n <SaveCurrentLanguageSet\n languageSet={selectedLanguageSet}\n onSelect={() => setLanguages([...languages, selectedLanguageSet])}\n />\n )}\n <LanguagesManagerItem\n languageSet={preferencesLanguageSet}\n onSelect={() => {\n setSelectedLanguageSet(preferencesLanguageSet);\n navigation.pop();\n }}\n selected={isSameLanguageSet(selectedLanguageSet, preferencesLanguageSet)}\n />\n {languages.map((langSet) => (\n <LanguagesManagerItem\n key={`${langSet.langFrom} ${langSet.langTo}`}\n selected={isSameLanguageSet(selectedLanguageSet, langSet)}\n languageSet={langSet}\n onSelect={() => {\n setSelectedLanguageSet(langSet);\n navigation.pop();\n }}\n onDelete={() => {\n setLanguages(languages.filter((l) => !isSameLanguageSet(l, langSet)));\n showToast(Toast.Style.Success, \"Language set was deleted!\", formatLanguageSet(langSet));\n }}\n />\n ))}\n </List>\n );\n};\n", "import React from \"react\";\nimport { Action, ActionPanel, Toast, Form, showToast } from \"@raycast/api\";\nimport { getLanguageFlag, LanguageCode, languages } from \"../languages\";\nimport { AUTO_DETECT } from \"../simple-translate\";\nimport { LanguageCodeSet } from \"../types\";\n\nexport const AddLanguageForm: React.VFC<{\n onAddLanguage: (data: LanguageCodeSet) => void;\n}> = ({ onAddLanguage }) => {\n const [targetLanguages, setTargetLanguages] = React.useState<LanguageCode[]>([\"en\"]);\n\n return (\n <Form\n actions={\n <ActionPanel>\n <Action.SubmitForm\n title=\"Add language set\"\n onSubmit={(values: LanguageCodeSet) => {\n const filteredTargetLanguages = targetLanguages.filter((lang) => !!lang);\n if (!filteredTargetLanguages.length) {\n showToast({\n style: Toast.Style.Failure,\n title: \"No target languages\",\n message: \"Please select at least one target language\",\n });\n return;\n }\n onAddLanguage({\n langFrom: values.langFrom,\n langTo: filteredTargetLanguages,\n });\n }}\n />\n </ActionPanel>\n }\n >\n <Form.Dropdown id=\"langFrom\" title=\"Source Language\">\n {languages.map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} icon={getLanguageFlag(lang)} />\n ))}\n </Form.Dropdown>\n {targetLanguages.map((_, index) => {\n const value = targetLanguages[index];\n return (\n <Form.Dropdown\n id={`langTo.${index}`}\n title={`Target Language ${index + 1}`}\n key={index}\n value={value}\n onChange={(value) => {\n const newTargetLanguages = [...targetLanguages];\n newTargetLanguages[index] = value as LanguageCode;\n setTargetLanguages(newTargetLanguages);\n }}\n >\n {!value && <Form.Dropdown.Item value=\"\" title=\"\" />}\n {languages\n .filter((lang) => lang.code !== AUTO_DETECT)\n .map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} icon={getLanguageFlag(lang)} />\n ))}\n </Form.Dropdown>\n );\n })}\n {(!!targetLanguages[targetLanguages.length - 1] || targetLanguages.length === 0) && (\n <Form.Dropdown\n id={`langTo.${targetLanguages.length}`}\n title={`Target Language ${targetLanguages.length}`}\n key={targetLanguages.length}\n value={\"\"}\n onChange={(value) => {\n const newTargetLanguages = [...targetLanguages];\n newTargetLanguages.push(value as LanguageCode);\n setTargetLanguages(newTargetLanguages);\n }}\n >\n <Form.Dropdown.Item value=\"\" title=\"\" />\n {languages\n .filter((lang) => lang.code !== AUTO_DETECT)\n .map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} icon={getLanguageFlag(lang)} />\n ))}\n </Form.Dropdown>\n )}\n </Form>\n );\n};\n", "import { getLanguageFlag, supportedLanguagesByCode } from \"./languages\";\nimport { LanguageCodeSet } from \"./types\";\n\nexport const isSameLanguageSet = (langSet1: LanguageCodeSet, langSet2: LanguageCodeSet) => {\n return langSet1.langFrom === langSet2.langFrom && langSet1.langTo.join() === langSet2.langTo.join();\n};\n\nexport const getLanguageSetObjects = (languageSet: LanguageCodeSet) => {\n return {\n langFrom: supportedLanguagesByCode[languageSet.langFrom],\n langTo: languageSet.langTo.map((l) => supportedLanguagesByCode[l]),\n };\n};\n\nexport const formatLanguageSet = (languageSet: LanguageCodeSet) => {\n const { langFrom, langTo } = getLanguageSetObjects(languageSet);\n const langToArr = Array.isArray(langTo) ? langTo : [langTo];\n const languageLabels = langToArr.map((l) => `${getLanguageFlag(l)} ${l.name}`);\n return `${langFrom.name} ${getLanguageFlag(langFrom)} -> ${languageLabels.join(\", \")}`;\n};\n", "import React from \"react\";\nimport { Icon, List, useNavigation } from \"@raycast/api\";\nimport { LanguageCodeSet } from \"../types\";\nimport { useAllLanguageSets, usePreferencesLanguageSet, useSelectedLanguagesSet } from \"../hooks\";\nimport { LanguagesManagerList } from \"./LanguagesManagerList\";\nimport { formatLanguageSet } from \"../utils\";\n\nexport function LanguageManagerListDropdown() {\n const navigation = useNavigation();\n const preferencesLanguageSet = usePreferencesLanguageSet();\n const [selectedLanguageSet, setSelectedLanguageSet] = useSelectedLanguagesSet();\n const [languages] = useAllLanguageSets();\n\n return (\n <List.Dropdown\n value={JSON.stringify(selectedLanguageSet)}\n tooltip=\"Language Set\"\n onChange={(value) => {\n if (value === \"manage\") {\n navigation.push(<LanguagesManagerList />);\n } else {\n const langSet: LanguageCodeSet = JSON.parse(value);\n setSelectedLanguageSet(langSet);\n }\n }}\n >\n <List.Dropdown.Item icon={Icon.Pencil} title=\"Manage language sets...\" value=\"manage\" />\n <List.Dropdown.Item\n title={formatLanguageSet(preferencesLanguageSet)}\n value={JSON.stringify(preferencesLanguageSet)}\n />\n {languages.map((langSet) => (\n <List.Dropdown.Item\n key={`${langSet.langFrom} ${langSet.langTo.toString()}`}\n title={formatLanguageSet(langSet)}\n value={JSON.stringify(langSet)}\n />\n ))}\n </List.Dropdown>\n );\n}\n", "import React from \"react\";\nimport { Action, Icon, getPreferenceValues } from \"@raycast/api\";\nimport { SimpleTranslateResult } from \"./simple-translate\";\n\ninterface ActionsOpts {\n value: string;\n defaultActionsPrefix?: string;\n}\n\nexport const ConfigurableCopyPasteActions = ({ defaultActionsPrefix, value }: ActionsOpts) => {\n const defaultPreference = getPreferenceValues<ExtensionPreferences>().defaultAction;\n\n const pasteAction = (\n <Action.Paste title={defaultActionsPrefix ? `Paste ${defaultActionsPrefix}` : `Paste`} content={value} />\n );\n const copyAction = (\n <Action.CopyToClipboard title={defaultActionsPrefix ? `Copy ${defaultActionsPrefix}` : `Copy`} content={value} />\n );\n\n if (defaultPreference === \"paste\") {\n return (\n <>\n {pasteAction}\n {copyAction}\n </>\n );\n }\n\n return (\n <>\n {copyAction}\n {pasteAction}\n </>\n );\n};\n\nexport const ToggleFullTextAction: React.VFC<{\n onAction: () => void;\n}> = ({ onAction }) => {\n return (\n <Action title=\"Toggle Full Text\" icon={Icon.Text} onAction={onAction} shortcut={{ modifiers: [\"cmd\"], key: \"f\" }} />\n );\n};\n\nexport const OpenOnGoogleTranslateWebsiteAction: React.VFC<{\n translation: Pick<SimpleTranslateResult, \"langFrom\" | \"langTo\">;\n translationText: string;\n}> = ({ translationText, translation }) => {\n return (\n <Action.OpenInBrowser\n title=\"Open in Google Translate\"\n shortcut={{ modifiers: [\"opt\"], key: \"enter\" }}\n url={\n \"https://translate.google.com/?sl=\" +\n translation.langFrom +\n \"&tl=\" +\n translation.langTo +\n \"&text=\" +\n encodeURIComponent(translationText) +\n \"&op=translate\"\n }\n />\n );\n};\n"], + "mappings": "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AAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,uBAAuB,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAK,GAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,GAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,KAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAO,IAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI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AC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAO,KAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OA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,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMU,GAAS,CACb,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMM,GAAU,CACd,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEME,GAAiB,CACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,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,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMC,GAAc,CAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAA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L,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,qBACL,IAAK,WACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,SACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,WACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,kBACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,eACH,MAAO,aACT,IAAK,cACL,IAAK,mBACL,IAAK,SACL,IAAK,aACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,eACL,IAAK,UACH,MAAO,eACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,KACL,IAAK,SACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,KACH,MAAO,cACT,IAAK,cACH,MAAO,cACT,IAAK,UACL,IAAK,MACL,IAAK,OACL,IAAK,SACL,IAAK,SACH,MAAO,SACT,IAAK,UACL,IAAK,SACH,MAAO,SACT,IAAK,cACL,IAAK,MACL,IAAK,YACL,IAAK,cACH,MAAO,YACT,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,UACL,IAAK,cACH,MAAO,cACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,iBACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,cACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACL,IAAK,WACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,iBACL,IAAK,kBACH,MAAO,iBACT,IAAK,UACL,IAAK,WACL,IAAK,kBACL,IAAK,SACL,IAAK,UACL,IAAK,aACL,IAAK,MACL,IAAK,YACL,IAAK,QACH,MAAO,MACT,IAAK,UACH,MAAO,UACT,IAAK,OACL,IAAK,aACL,IAAK,UACL,IAAK,SACL,IAAK,WACH,MAAO,OACT,IAAK,sBACL,IAAK,SACL,IAAK,WACH,MAAO,SACT,IAAK,cACL,IAAK,cACH,MAAO,cACT,IAAK,aACL,IAAK,QACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,OACL,IAAK,cACL,IAAK,SACH,MAAO,YACT,IAAK,UACL,IAAK,gBACL,IAAK,SACL,IAAK,aACL,IAAK,SACL,IAAK,iBACL,IAAK,iBACL,IAAK,UACL,IAAK,WACL,IAAK,cACH,MAAO,SACT,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,cACH,MAAO,cACT,IAAK,cACL,IAAK,WACH,MAAO,WACT,IAAK,YACL,IAAK,kBACL,IAAK,QACL,IAAK,UACL,IAAK,cACL,IAAK,SACL,IAAK,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", + "names": ["require_lite", "__commonJSMin", "exports", "has", "dequal", "foo", "bar", "ctor", "len", "require_useDeepMemo", "__commonJSMin", "exports", "react_1", "lite_1", "useDeepMemo", "value", "ref", "signalRef", "require_useLatest", "__commonJSMin", "exports", "react_1", "useLatest", "value", "ref", "require_handle_error_toast_action", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "fs", "path", "api_1", "handleErrorToastAction", "error", "privateExtension", "title", "extensionURL", "packageJSON", "fallback", "toast", "require_usePromise", "__commonJSMin", "exports", "react_1", "api_1", "useDeepMemo_1", "useLatest_1", "handle_error_toast_action_1", "usePromise", "fn", "args", "options", "lastCallId", "state", "set", "fnRef", "latestAbortable", "latestArgs", "latestOnError", "latestOnData", "latestOnWillExecute", "latestValue", "latestCallback", "callback", "callId", "prevState", "bindPromiseIfNeeded", "data", "error", "toast", "revalidate", "mutate", "asyncUpdate", "dataBeforeOptimisticUpdate", "update", "err", "isLoading", "require_useCachedState", "__commonJSMin", "exports", "react_1", "api_1", "useLatest_1", "replacer", "key", "_value", "value", "reviver", "_key", "rootCache", "cacheMap", "useCachedState", "initialState", "config", "cacheKey", "cache", "keyRef", "initialValueRef", "cachedState", "error", "state", "err", "stateRef", "setStateAndCache", "updater", "newValue", "stringifiedValue", "require_object_hash", "__commonJSMin", "exports", "module", "crypto", "objectHash", "object", "options", "applyDefaults", "hash", "hashes", "encodings", "sourceOptions", "i", "isNativeFunction", "f", "exp", "hashingStream", "PassThrough", "hasher", "typeHasher", "buf", "stream", "writeTo", "context", "write", "str", "value", "type", "pattern", "objString", "objType", "objectNumber", "keys", "key", "self", "arr", "unordered", "entry", "contextAdditions", "entries", "strm", "localContext", "date", "sym", "err", "bool", "string", "fn", "number", "xml", "regex", "url", "map", "set", "file", "b", "require_useCachedPromise", "__commonJSMin", "exports", "__importDefault", "mod", "react_1", "object_hash_1", "useCachedState_1", "usePromise_1", "useLatest_1", "emptyCache", "useCachedPromise", "fn", "args", "options", "initialData", "keepPreviousData", "usePromiseOptions", "lastUpdateFrom", "cachedData", "mutateCache", "laggyDataRef", "_mutate", "revalidate", "state", "data", "returnedData", "latestData", "mutate", "asyncUpdate", "dataBeforeOptimisticUpdate", "err", "require_media_typer", "__commonJSMin", "exports", "SUBTYPE_NAME_REGEXP", "TYPE_NAME_REGEXP", "TYPE_REGEXP", "format", "parse", "test", "obj", "subtype", "suffix", "type", "string", "match", "index", "MediaType", "require_content_type", "__commonJSMin", "exports", "PARAM_REGEXP", "TEXT_REGEXP", "TOKEN_REGEXP", "QESC_REGEXP", "QUOTE_REGEXP", "TYPE_REGEXP", "format", "parse", "obj", "parameters", "type", "string", "param", "params", "i", "qstring", "header", "getcontenttype", "index", "ContentType", "key", "match", "value", "val", "str", "require_lib", "__commonJSMin", "exports", "module", "conversions", "sign", "x", "evenRound", "createNumberConversion", "bitLength", "typeOpts", "lowerBound", "upperBound", "moduloVal", "moduloBound", "V", "opts", "val", "c", "i", "S", "n", "U", "d", "a", "b", "require_utils", "__commonJSMin", "exports", "module", "target", "source", "keys", "i", "impl", "wrapper", "require_mappingTable", "__commonJSMin", "exports", "module", "require_tr46", "__commonJSMin", "exports", "module", "punycode", "mappingTable", "PROCESSING_OPTIONS", "normalize", "str", "s", "findStatus", "val", "start", "end", "mid", "target", "regexAstralSymbols", "countSymbols", "string", "mapChars", "domain_name", "useSTD3", "processing_option", "hasError", "processed", "len", "i", "codePoint", "status", "combiningMarksRegex", "validateLabel", "label", "error", "processing", "result", "labels", "validation", "verifyDnsLength", "l", "total", "require_url_state_machine", "__commonJSMin", "exports", "module", "punycode", "tr46", "specialSchemes", "failure", "countSymbols", "str", "at", "input", "idx", "c", "isASCIIDigit", "isASCIIAlpha", "isASCIIAlphanumeric", "isASCIIHex", "isSingleDot", "buffer", "isDoubleDot", "isWindowsDriveLetterCodePoints", "cp1", "cp2", "isWindowsDriveLetterString", "string", "isNormalizedWindowsDriveLetterString", "containsForbiddenHostCodePoint", "containsForbiddenHostCodePointExcludingPercent", "isSpecialScheme", "scheme", "isSpecial", "url", "defaultPort", "percentEncode", "hex", "utf8PercentEncode", "buf", "i", "utf8PercentDecode", "output", "isC0ControlPercentEncode", "extraPathPercentEncodeSet", "isPathPercentEncode", "extraUserinfoPercentEncodeSet", "isUserinfoPercentEncode", "percentEncodeChar", "encodeSetPredicate", "cStr", "parseIPv4Number", "R", "parseIPv4", "parts", "numbers", "part", "n", "ipv4", "counter", "serializeIPv4", "address", "parseIPv6", "pieceIndex", "compress", "pointer", "value", "length", "numbersSeen", "ipv4Piece", "number", "swaps", "temp", "serializeIPv6", "findLongestZeroSequence", "ignore0", "parseHost", "isSpecialArg", "parseOpaqueHost", "domain", "asciiDomain", "ipv4Host", "decoded", "arr", "maxIdx", "maxLen", "currStart", "currLen", "serializeHost", "host", "trimControlChars", "trimTabAndNewline", "shortenPath", "path", "isNormalizedWindowsDriveLetter", "includesCredentials", "cannotHaveAUsernamePasswordPort", "URLStateMachine", "base", "encodingOverride", "stateOverride", "res", "ret", "len", "codePoint", "encodedCodePoints", "port", "fileOtherwiseCodePoints", "serializeURL", "excludeFragment", "serializeOrigin", "tuple", "result", "options", "usm", "username", "password", "integer", "require_URL_impl", "__commonJSMin", "exports", "usm", "constructorArgs", "url", "base", "parsedBase", "parsedURL", "v", "input", "require_URL", "__commonJSMin", "exports", "module", "conversions", "utils", "Impl", "impl", "URL", "url", "args", "i", "V", "obj", "constructorArgs", "privateData", "require_public_api", "__commonJSMin", "exports", "require_lib", "__commonJSMin", "exports", "module", "_interopDefault", "ex", "Stream", "http", "Url", "whatwgUrl", "https", "zlib", "Readable", "BUFFER", "TYPE", "Blob", "_Blob", "blobParts", "options", "buffers", "size", "a", "length", "i", "element", "buffer", "type", "buf", "ab", "readable", "start", "end", "relativeStart", "relativeEnd", "span", "slicedBuffer", "blob", "FetchError", "message", "systemError", "convert", "INTERNALS", "PassThrough", "Body", "body", "_this", "_ref", "_ref$size", "_ref$timeout", "timeout", "isURLSearchParams", "isBlob", "err", "error", "consumeBody", "ct", "_this2", "_this3", "convertBody", "proto", "name", "desc", "_this4", "accum", "accumBytes", "abort", "resolve", "reject", "resTimeout", "chunk", "headers", "charset", "res", "str", "obj", "clone", "instance", "p1", "p2", "extractContentType", "getTotalBytes", "writeToStream", "dest", "invalidTokenRegex", "invalidHeaderCharRegex", "validateName", "validateValue", "value", "find", "map", "key", "MAP", "Headers", "_Headers", "init", "rawHeaders", "headerNames", "headerName", "method", "pairs", "pair", "callback", "thisArg", "getHeaders", "_pairs$i", "createHeadersIterator", "kind", "k", "INTERNAL", "target", "iterator", "HeadersIteratorPrototype", "_INTERNAL", "index", "values", "len", "exportNodeCompatibleHeaders", "hostHeaderKey", "createHeadersLenient", "val", "INTERNALS$1", "STATUS_CODES", "Response", "_Response", "opts", "status", "contentType", "INTERNALS$2", "URL", "parse_url", "format_url", "parseURL", "urlStr", "streamDestructionSupported", "isRequest", "input", "isAbortSignal", "signal", "Request", "_Request", "parsedURL", "inputBody", "getNodeRequestOptions", "request", "contentLengthValue", "totalBytes", "agent", "AbortError", "URL$1", "PassThrough$1", "isDomainOrSubdomain", "destination", "original", "orig", "isSameProtocol", "fetch", "url", "send", "response", "destroyStream", "abortAndFinalize", "finalize", "req", "reqTimeout", "socket", "fixResponseChunkedTransferBadEnding", "s", "hadError", "hasDataListener", "location", "locationURL", "requestOpts", "response_options", "codings", "zlibOptions", "raw", "errorCallback", "stream", "code", "require_node_ponyfill", "__commonJSMin", "exports", "module", "nodeFetch", "realFetch", "fetch", "url", "options", "require_useFetch", "__commonJSMin", "exports", "__importDefault", "mod", "react_1", "media_typer_1", "content_type_1", "useCachedPromise_1", "useLatest_1", "cross_fetch_1", "isJSON", "contentTypeHeader", "ct", "mediaType", "defaultParsing", "response", "useFetch", "url", "options", "parseResponse", "initialData", "execute", "keepPreviousData", "onError", "onData", "onWillExecute", "fetchOptions", "useCachedPromiseOptions", "parseResponseRef", "abortable", "fn", "res", "exports", "signals_js_1", "exports", "processOk", "process", "kExitEmitter", "global", "ObjectDefineProperty", "Emitter", "ev", "fn", "list", "i", "code", "signal", "ret", "SignalExitBase", "signalExitWrap", "handler", "cb", "opts", "SignalExitFallback", "SignalExit", "#hupSig", "#emitter", "#process", "#originalProcessEmit", "#originalProcessReallyExit", "#sigListeners", "#loaded", "sig", "listeners", "count", "p", "s", "a", "#processEmit", "#processReallyExit", "listener", "args", "og", "_a", "require_exec_utils", "__commonJSMin", "exports", "__importDefault", "mod", "node_buffer_1", "node_stream_1", "node_util_1", "signal_exit_1", "getSpawnedPromise", "spawned", "timeout", "spawnedPromise", "resolve", "reject", "exitCode", "signal", "error", "timeoutId", "timeoutPromise", "_resolve", "safeSpawnedPromise", "removeExitHandler", "MaxBufferError", "streamPipelinePromisified", "bufferStream", "options", "encoding", "isBuffer", "stream", "length", "chunks", "chunk", "getStream", "inputStream", "rejectPromise", "getBufferedData", "streamPromise", "getSpawnedResult", "stdout", "stderr", "processDone", "stdoutPromise", "stderrPromise", "stripFinalNewline", "input", "LF", "CR", "handleOutput", "value", "getErrorPrefix", "timedOut", "makeError", "command", "parentError", "execaMessage", "shortMessage", "message", "defaultParsing", "require_useExec", "__commonJSMin", "exports", "__importDefault", "mod", "node_child_process_1", "react_1", "useCachedPromise_1", "useLatest_1", "exec_utils_1", "SPACES_REGEXP", "parseCommand", "command", "args", "tokens", "token", "previousToken", "useExec", "optionsOrArgs", "options", "parseOutput", "input", "onData", "onWillExecute", "initialData", "execute", "keepPreviousData", "onError", "execOptions", "useCachedPromiseOptions", "abortable", "parseOutputRef", "fn", "_command", "_args", "_options", "file", "spawned", "spawnedPromise", "error", "exitCode", "signal", "timedOut", "stdoutResult", "stderrResult", "stdout", "stderr", "require_useSQL", "__commonJSMin", "exports", "__importDefault", "mod", "jsx_runtime_1", "api_1", "node_fs_1", "promises_1", "node_os_1", "node_child_process_1", "node_path_1", "object_hash_1", "react_1", "usePromise_1", "useLatest_1", "exec_utils_1", "handle_error_toast_action_1", "useSQL", "databasePath", "query", "options", "permissionPriming", "usePromiseOptions", "permissionView", "setPermissionView", "latestOptions", "abortable", "handleError", "_error", "error", "PermissionError", "isPermissionError", "PermissionErrorScreen", "fn", "workaroundCopiedDb", "abortSignal", "spawned", "spawnedPromise", "exitCode", "signal", "stdoutResult", "stderrResult", "checkAborted", "tempFolder", "message", "macosVenturaAndLater", "preferencesString", "props", "action", "require_useForm", "__commonJSMin", "exports", "react_1", "useLatest_1", "FormValidation", "validationError", "validation", "value", "valueIsValid", "useForm", "props", "_onSubmit", "initialValues", "values", "setValues", "errors", "setErrors", "refs", "latestValidation", "latestOnSubmit", "focus", "id", "handleSubmit", "validationErrors", "error", "result", "setValidationError", "setValue", "itemProps", "target", "event", "instance", "reset", "require_useAI", "__commonJSMin", "exports", "react_1", "api_1", "usePromise_1", "useAI", "prompt", "options", "creativity", "stream", "model", "usePromiseOptions", "data", "setData", "abortable", "isLoading", "error", "revalidate", "shouldStream", "x", "require_useFrecencySorting", "__commonJSMin", "exports", "react_1", "useLatest_1", "useCachedState_1", "HALF_LIFE_DAYS", "MS_PER_DAY", "DECAY_RATE_CONSTANT", "VISIT_TYPE_POINTS", "getNewFrecency", "item", "now", "lastVisited", "frecency", "visitAgeInDays", "currentVisitValue", "totalVisitValue", "defaultKey", "useFrecencySorting", "data", "options", "keyRef", "sortUnvisitedRef", "storedFrecencies", "setStoredFrecencies", "visitItem", "itemKey", "newFrecency", "resetRanking", "newFrencencies", "a", "b", "frecencyA", "frecencyB", "require_color", "__commonJSMin", "exports", "hexToRGB", "hex", "r", "g", "b", "rgbToHex", "rString", "gString", "bString", "rgbToHSL", "cmin", "cmax", "delta", "h", "s", "l", "hslToRGB", "c", "x", "m", "hexToHSL", "hslToHex", "hsl", "clamp", "value", "min", "max", "offset", "slightlyDarkerColor", "slightlyLighterColor", "require_avatar", "__commonJSMin", "exports", "color_1", "getWholeCharAndI", "str", "i", "code", "next", "prev", "avatarColorSet", "getAvatarIcon", "name", "options", "words", "initials", "firstWordFirstLetter", "lastWordFirstLetter", "backgroundColor", "initialsCharIndex", "char", "colorIndex", "radius", "require_favicon", "__commonJSMin", "exports", "api_1", "url_1", "getFavicon", "url", "options", "hostname", "e", "require_progress", "__commonJSMin", "exports", "api_1", "polarToCartesian", "centerX", "centerY", "radius", "angleInDegrees", "angleInRadians", "describeArc", "x", "y", "startAngle", "endAngle", "start", "end", "largeArcFlag", "getProgressIcon", "progress", "color", "options", "background", "backgroundOpacity", "stroke", "require_icon", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "require_run_applescript", "__commonJSMin", "exports", "__importDefault", "mod", "node_child_process_1", "exec_utils_1", "runAppleScript", "script", "optionsOrArgs", "options", "humanReadableOutput", "language", "timeout", "execOptions", "outputArguments", "spawned", "spawnedPromise", "error", "exitCode", "signal", "timedOut", "stdoutResult", "stderrResult", "stdout", "stderr", "require_dist", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "require_symbols", "__commonJSMin", "exports", "module", "require_errors", "__commonJSMin", "exports", "module", "UndiciError", "message", "ConnectTimeoutError", "_ConnectTimeoutError", "HeadersTimeoutError", "_HeadersTimeoutError", "HeadersOverflowError", "_HeadersOverflowError", "BodyTimeoutError", "_BodyTimeoutError", "ResponseStatusCodeError", "_ResponseStatusCodeError", "statusCode", "headers", "body", "InvalidArgumentError", "_InvalidArgumentError", "InvalidReturnValueError", "_InvalidReturnValueError", "RequestAbortedError", "_RequestAbortedError", "InformationalError", "_InformationalError", "RequestContentLengthMismatchError", "_RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "_ResponseContentLengthMismatchError", "ClientDestroyedError", "_ClientDestroyedError", "ClientClosedError", "_ClientClosedError", "SocketError", "_SocketError", "socket", "NotSupportedError", "_NotSupportedError", "BalancedPoolMissingUpstreamError", "HTTPParserError", "_HTTPParserError", "code", "data", "ResponseExceededMaxSizeError", "_ResponseExceededMaxSizeError", "require_util", "__commonJSMin", "exports", "module", "assert", "kDestroyed", "kBodyUsed", "IncomingMessage", "stream", "net", "InvalidArgumentError", "Blob", "nodeUtil", "stringify", "nodeMajor", "nodeMinor", "v", "nop", "isStream", "obj", "isBlobLike", "object", "buildURL", "url", "queryParams", "stringified", "parseURL", "port", "origin", "path", "parseOrigin", "getHostname", "host", "idx", "getServerName", "servername", "deepClone", "isAsyncIterable", "isIterable", "bodyLength", "body", "state", "isBuffer", "isDestroyed", "isReadableAborted", "destroy", "err", "KEEPALIVE_TIMEOUT_EXPR", "parseKeepAliveTimeout", "val", "m", "parseHeaders", "headers", "i", "key", "parseRawHeaders", "ret", "hasContentLength", "contentDispositionIdx", "n", "buffer", "validateHandler", "handler", "method", "upgrade", "isDisturbed", "isErrored", "isReadable", "getSocketInfo", "socket", "ReadableStream", "ReadableStreamFrom", "iterable", "iterator", "controller", "done", "value", "buf", "reason", "isFormDataLike", "throwIfAborted", "signal", "events", "addAbortListener", "listener", "hasToWellFormed", "toUSVString", "kEnumerableProperty", "require_timers", "__commonJSMin", "exports", "module", "fastNow", "fastNowTimeout", "fastTimers", "onTimeout", "len", "idx", "timer", "refreshTimeout", "Timeout", "callback", "delay", "opaque", "timeout", "require_utils", "__commonJSMin", "exports", "module", "parseContentType", "str", "params", "i", "code", "TOKEN", "type", "subtypeStart", "parseContentTypeParams", "subtype", "name", "nameStart", "value", "valueStart", "escaping", "QDTEXT", "parseDisposition", "defDecoder", "parseDispositionParams", "charset", "charsetStart", "CHARSET", "encode", "EXTENDED_VALUE", "hexUpper", "hexLower", "HEX_VALUES", "byteVal", "convertToUTF8", "getDecoder", "lc", "decoders", "data", "hint", "decode", "basename", "path", "require_sbmh", "__commonJSMin", "exports", "module", "memcmp", "buf1", "pos1", "buf2", "pos2", "num", "SBMH", "needle", "cb", "needleLen", "i", "chunk", "pos", "result", "chunkLen", "feed", "lbSize", "self", "data", "len", "lastNeedleCharPos", "lastNeedleChar", "end", "occ", "lookbehind", "nextPos", "ch", "matchNeedle", "bytesToCutOff", "firstNeedleChar", "lb", "require_multipart", "__commonJSMin", "exports", "module", "Readable", "Writable", "StreamSearch", "basename", "convertToUTF8", "getDecoder", "parseContentType", "parseDisposition", "BUF_CRLF", "BUF_CR", "BUF_DASH", "noop", "MAX_HEADER_PAIRS", "MAX_HEADER_SIZE", "HPARSER_NAME", "HPARSER_PRE_OWS", "HPARSER_VALUE", "HeaderParser", "cb", "chunk", "pos", "end", "start", "done", "code", "TOKEN", "FIELD_VCHAR", "header", "FileStream", "opts", "owner", "n", "ignoreData", "callAndUnsetCb", "self", "err", "nullDecoder", "val", "hint", "Multipart", "cfg", "streamOpts", "boundary", "paramDecoder", "defCharset", "preservePath", "fileOpts", "limits", "fieldSizeLimit", "fileSizeLimit", "filesLimit", "fieldsLimit", "partsLimit", "parts", "fields", "files", "skipPart", "fileSize", "field", "fieldSize", "partCharset", "partEncoding", "partType", "partName", "partTruncated", "hitFilesLimit", "hitFieldsLimit", "hparser", "filename", "disp", "conType", "matchPostBoundary", "ssCb", "isMatch", "data", "isDataSafe", "retrydata", "ret", "writecb", "actualLen", "enc", "checkEndState", "fileStream", "finalcb", "require_urlencoded", "__commonJSMin", "exports", "module", "Writable", "getDecoder", "URLEncoded", "cfg", "streamOpts", "charset", "limits", "conType", "chunk", "enc", "cb", "i", "len", "readPctEnc", "main", "skipKeyBytes", "skipValBytes", "self", "pos", "hexUpper", "HEX_VALUES", "hexLower", "code", "require_lib", "__commonJSMin", "exports", "module", "parseContentType", "getInstance", "cfg", "headers", "conType", "type", "TYPES", "instanceCfg", "typemod", "require_constants", "__commonJSMin", "exports", "module", "MessageChannel", "receiveMessageOnPort", "corsSafeListedMethods", "nullBodyStatus", "redirectStatus", "badPorts", "referrerPolicy", "requestRedirect", "safeMethods", "requestMode", "requestCredentials", "requestCache", "requestBodyHeader", "requestDuplex", "forbiddenMethods", "subresource", "DOMException", "err", "channel", "structuredClone", "value", "options", "require_global", "__commonJSMin", "exports", "module", "globalOrigin", "getGlobalOrigin", "setGlobalOrigin", "newOrigin", "parsedURL", "require_util", "__commonJSMin", "exports", "module", "redirectStatus", "badPorts", "referrerPolicyTokens", "getGlobalOrigin", "performance", "isBlobLike", "toUSVString", "ReadableStreamFrom", "assert", "isUint8Array", "crypto", "responseURL", "response", "urlList", "length", "responseLocationURL", "requestFragment", "location", "isValidHeaderValue", "requestCurrentURL", "request", "requestBadPort", "url", "urlIsHttpHttpsScheme", "isErrorLike", "object", "isValidReasonPhrase", "statusText", "i", "c", "isTokenChar", "isValidHTTPToken", "characters", "isValidHeaderName", "potentialValue", "setRequestReferrerPolicyOnRedirect", "actualResponse", "headersList", "policyHeader", "policy", "token", "crossOriginResourcePolicyCheck", "corsCheck", "TAOCheck", "appendFetchMetadata", "httpRequest", "header", "appendRequestOriginHeader", "serializedOrigin", "urlHasHttpsScheme", "sameOrigin", "coarsenedSharedCurrentTime", "crossOriginIsolatedCapability", "createOpaqueTimingInfo", "timingInfo", "makePolicyContainer", "clonePolicyContainer", "policyContainer", "determineRequestsReferrer", "referrerSource", "globalOrigin", "referrerURL", "stripURLForReferrer", "referrerOrigin", "areSameOrigin", "isNonPotentiallyTrustWorthy", "isURLPotentiallyTrustworthy", "currentURL", "originOnly", "isOriginPotentiallyTrustworthy", "origin", "originAsURL", "bytesMatch", "bytes", "metadataList", "parsedMetadata", "parseMetadata", "list", "d", "strongest", "metadata", "item", "algorithm", "expectedValue", "parseHashWithOptions", "result", "empty", "supportedHashes", "parsedToken", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "A", "B", "createDeferredPromise", "res", "rej", "resolve", "reject", "isAborted", "fetchParams", "isCancelled", "normalizeMethod", "method", "serializeJavascriptValueToJSONString", "value", "esIteratorPrototype", "makeIterator", "iterator", "name", "kind", "index", "target", "values", "len", "pair", "iteratorResult", "fullyReadBody", "body", "processBody", "processBodyError", "successSteps", "errorSteps", "error", "reader", "e", "readAllBytes", "ReadableStream", "isReadableStreamLike", "stream", "MAXIMUM_ARGUMENT_LENGTH", "isomorphicDecode", "input", "previous", "current", "readableStreamClose", "controller", "err", "isomorphicEncode", "failureSteps", "byteLength", "done", "chunk", "urlIsLocal", "protocol", "hasOwn", "dict", "key", "require_symbols", "__commonJSMin", "exports", "module", "require_webidl", "__commonJSMin", "exports", "module", "types", "hasOwn", "toUSVString", "webidl", "message", "context", "plural", "V", "I", "opts", "length", "min", "ctx", "bitLength", "signedness", "upperBound", "lowerBound", "x", "n", "r", "converter", "method", "seq", "done", "value", "keyConverter", "valueConverter", "O", "result", "keys", "key", "typedKey", "typedValue", "i", "converters", "dictionary", "type", "dict", "options", "defaultValue", "required", "hasDefault", "index", "charCode", "T", "require_dataURL", "__commonJSMin", "exports", "module", "assert", "atob", "isomorphicDecode", "encoder", "HTTP_TOKEN_CODEPOINTS", "HTTP_WHITESPACE_REGEX", "HTTP_QUOTED_STRING_TOKENS", "dataURLProcessor", "dataURL", "input", "URLSerializer", "position", "mimeType", "collectASequenceOfCodePointsFast", "mimeTypeLength", "removeASCIIWhitespace", "encodedBody", "body", "stringPercentDecode", "stringBody", "forgivingBase64", "mimeTypeRecord", "parseMIMEType", "url", "excludeFragment", "href", "hash", "collectASequenceOfCodePoints", "condition", "result", "char", "idx", "start", "bytes", "percentDecode", "output", "i", "byte", "nextTwoBytes", "bytePoint", "removeHTTPWhitespace", "type", "subtype", "typeLowercase", "subtypeLowercase", "parameterName", "parameterValue", "collectAnHTTPQuotedString", "data", "binary", "extractValue", "positionStart", "value", "quoteOrBackslash", "serializeAMimeType", "parameters", "essence", "serialization", "name", "isHTTPWhiteSpace", "str", "leading", "trailing", "lead", "trail", "isASCIIWhitespace", "require_file", "__commonJSMin", "exports", "module", "Blob", "NativeFile", "types", "kState", "isBlobLike", "webidl", "parseMIMEType", "serializeAMimeType", "kEnumerableProperty", "File", "_File", "fileBits", "fileName", "options", "n", "t", "d", "substep", "processBlobParts", "FileLike", "_FileLike", "blobLike", "args", "V", "opts", "value", "parts", "bytes", "element", "s", "convertLineEndingsNative", "nativeLineEnding", "isFileLike", "object", "require_formdata", "__commonJSMin", "exports", "module", "isBlobLike", "toUSVString", "makeIterator", "kState", "UndiciFile", "FileLike", "isFileLike", "webidl", "Blob", "NativeFile", "File", "FormData", "_FormData", "form", "name", "value", "filename", "entry", "makeEntry", "idx", "pair", "callbackFn", "thisArg", "key", "options", "require_body", "__commonJSMin", "exports", "module", "Busboy", "util", "ReadableStreamFrom", "isBlobLike", "isReadableStreamLike", "readableStreamClose", "createDeferredPromise", "fullyReadBody", "FormData", "kState", "webidl", "DOMException", "structuredClone", "Blob", "NativeFile", "kBodyUsed", "assert", "isErrored", "isUint8Array", "isArrayBuffer", "UndiciFile", "parseMIMEType", "serializeAMimeType", "ReadableStream", "File", "extractBody", "object", "keepalive", "stream", "controller", "source", "action", "length", "type", "boundary", "prefix", "escape", "str", "normalizeLinefeeds", "value", "enc", "blobParts", "rn", "hasUnknownSizeValue", "name", "chunk", "part", "iterator", "done", "reason", "safelyExtractBody", "cloneBody", "body", "out1", "out2", "out2Clone", "finalClone", "consumeBody", "throwIfAborted", "state", "bodyMixinMethods", "instance", "specConsumeBody", "bytes", "mimeType", "bodyMimeType", "utf8DecodeBytes", "parseJSONFromBytes", "contentType", "headers", "key", "responseFormData", "busboy", "err", "info", "filename", "encoding", "chunks", "base64chunk", "end", "busboyResolve", "resolve", "reject", "entries", "text", "textDecoder", "formData", "mixinBody", "prototype", "convertBytesToJSValue", "bodyUnusable", "promise", "errorSteps", "error", "successSteps", "data", "e", "buffer", "headersList", "require_request", "__commonJSMin", "exports", "module", "InvalidArgumentError", "NotSupportedError", "assert", "util", "tokenRegExp", "headerCharRegex", "invalidPathRegex", "kHandler", "channels", "extractBody", "diagnosticsChannel", "Request", "origin", "path", "method", "body", "headers", "query", "idempotent", "blocking", "upgrade", "headersTimeout", "bodyTimeout", "reset", "throwOnError", "handler", "i", "processHeader", "keys", "key", "bodyStream", "contentType", "chunk", "err", "abort", "statusCode", "resume", "statusText", "socket", "trailers", "error", "value", "processHeaderValue", "val", "request", "require_dispatcher", "__commonJSMin", "exports", "module", "EventEmitter", "Dispatcher", "require_dispatcher_base", "__commonJSMin", "exports", "module", "Dispatcher", "ClientDestroyedError", "ClientClosedError", "InvalidArgumentError", "kDestroy", "kClose", "kDispatch", "kInterceptors", "kDestroyed", "kClosed", "kOnDestroyed", "kOnClosed", "kInterceptedDispatch", "DispatcherBase", "newInterceptors", "i", "callback", "resolve", "reject", "err", "data", "onClosed", "callbacks", "onDestroyed", "opts", "handler", "dispatch", "require_connect", "__commonJSMin", "exports", "module", "net", "assert", "util", "InvalidArgumentError", "ConnectTimeoutError", "tls", "SessionCache", "maxCachedSessions", "key", "ref", "sessionKey", "session", "oldestKey", "buildConnector", "socketPath", "timeout", "opts", "options", "sessionCache", "hostname", "host", "protocol", "port", "servername", "localAddress", "httpSocket", "callback", "socket", "keepAliveInitialDelay", "cancelTimeout", "setupTimeout", "onConnectTimeout", "cb", "err", "s1", "s2", "timeoutId", "enumToMap", "obj", "res", "key", "value", "exports", "utils_1", "ERROR", "exports", "TYPE", "FLAGS", "LENIENT_FLAGS", "METHODS", "key", "FINISH", "i", "c", "HEADER_STATE", "require_RedirectHandler", "__commonJSMin", "exports", "module", "util", "kBodyUsed", "assert", "InvalidArgumentError", "EE", "redirectableStatusCodes", "kBody", "BodyAsyncIterable", "body", "RedirectHandler", "dispatch", "maxRedirections", "opts", "handler", "abort", "statusCode", "headers", "socket", "error", "resume", "statusText", "parseLocation", "origin", "pathname", "search", "path", "cleanRequestHeaders", "chunk", "trailers", "i", "shouldRemoveHeader", "header", "removeContent", "unknownOrigin", "ret", "key", "require_redirectInterceptor", "__commonJSMin", "exports", "module", "RedirectHandler", "createRedirectInterceptor", "defaultMaxRedirections", "dispatch", "opts", "handler", "maxRedirections", "redirectHandler", "require_llhttp_wasm", "__commonJSMin", "exports", "module", "require_llhttp_simd_wasm", "__commonJSMin", "exports", "module", "require_client", "__commonJSMin", "exports", "module", "assert", "net", "util", "timers", "Request", "DispatcherBase", "RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "InvalidArgumentError", "RequestAbortedError", "HeadersTimeoutError", "HeadersOverflowError", "SocketError", "InformationalError", "BodyTimeoutError", "HTTPParserError", "ResponseExceededMaxSizeError", "ClientDestroyedError", "buildConnector", "kUrl", "kReset", "kServerName", "kClient", "kBusy", "kParser", "kConnect", "kBlocking", "kResuming", "kRunning", "kPending", "kSize", "kWriting", "kQueue", "kConnected", "kConnecting", "kNeedDrain", "kNoRef", "kKeepAliveDefaultTimeout", "kHostHeader", "kPendingIdx", "kRunningIdx", "kError", "kPipelining", "kSocket", "kKeepAliveTimeoutValue", "kMaxHeadersSize", "kKeepAliveMaxTimeout", "kKeepAliveTimeoutThreshold", "kHeadersTimeout", "kBodyTimeout", "kStrictContentLength", "kConnector", "kMaxRedirections", "kMaxRequests", "kCounter", "kClose", "kDestroy", "kDispatch", "kInterceptors", "kLocalAddress", "kMaxResponseSize", "FastBuffer", "kClosedResolve", "channels", "diagnosticsChannel", "Client", "url", "interceptors", "maxHeaderSize", "headersTimeout", "socketTimeout", "requestTimeout", "connectTimeout", "bodyTimeout", "idleTimeout", "keepAlive", "keepAliveTimeout", "maxKeepAliveTimeout", "keepAliveMaxTimeout", "keepAliveTimeoutThreshold", "socketPath", "pipelining", "tls", "strictContentLength", "maxCachedSessions", "maxRedirections", "connect", "maxRequestsPerClient", "localAddress", "maxResponseSize", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "createRedirectInterceptor", "value", "resume", "socket", "cb", "opts", "handler", "origin", "request", "resolve", "err", "requests", "errorRequest", "callback", "constants", "EMPTY_BUF", "lazyllhttp", "llhttpWasmData", "mod", "p", "at", "len", "currentParser", "start", "currentBufferPtr", "currentBufferRef", "statusCode", "upgrade", "shouldKeepAlive", "llhttpInstance", "llhttpPromise", "currentBufferSize", "TIMEOUT_HEADERS", "TIMEOUT_BODY", "TIMEOUT_IDLE", "Parser", "client", "type", "onParserTimeout", "chunk", "data", "llhttp", "ret", "offset", "ptr", "message", "buf", "key", "head", "headers", "onSocketError", "onSocketReadable", "onSocketEnd", "onSocketClose", "statusText", "timeout", "pause", "contentLength", "bytesRead", "parser", "timeoutType", "onError", "i", "host", "hostname", "protocol", "port", "idx", "ip", "reject", "emitDrain", "sync", "_resume", "write", "body", "method", "path", "blocking", "reset", "expectsPayload", "header", "writeIterable", "writeBlob", "writeStream", "finished", "writer", "AsyncWriter", "onData", "onDrain", "onAbort", "onFinished", "er", "buffer", "waitForDrain", "bytesWritten", "require_fixed_queue", "__commonJSMin", "exports", "module", "FixedCircularBuffer", "data", "nextItem", "tail", "next", "require_pool_stats", "__commonJSMin", "exports", "module", "kFree", "kConnected", "kPending", "kQueued", "kRunning", "kSize", "kPool", "PoolStats", "pool", "require_pool_base", "__commonJSMin", "exports", "module", "DispatcherBase", "FixedQueue", "kConnected", "kSize", "kRunning", "kPending", "kQueued", "kBusy", "kFree", "kUrl", "kClose", "kDestroy", "kDispatch", "PoolStats", "kClients", "kNeedDrain", "kQueue", "kClosedResolve", "kOnDrain", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kGetDispatcher", "kAddClient", "kRemoveClient", "kStats", "PoolBase", "pool", "origin", "targets", "queue", "needDrain", "item", "c", "err", "client", "ret", "pending", "running", "size", "resolve", "opts", "handler", "dispatcher", "idx", "require_pool", "__commonJSMin", "exports", "module", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kGetDispatcher", "Client", "InvalidArgumentError", "util", "kUrl", "kInterceptors", "buildConnector", "kOptions", "kConnections", "kFactory", "defaultFactory", "origin", "opts", "Pool", "connections", "factory", "connect", "connectTimeout", "tls", "maxCachedSessions", "socketPath", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "options", "dispatcher", "require_balanced_pool", "__commonJSMin", "exports", "module", "BalancedPoolMissingUpstreamError", "InvalidArgumentError", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kRemoveClient", "kGetDispatcher", "Pool", "kUrl", "kInterceptors", "parseOrigin", "kFactory", "kOptions", "kGreatestCommonDivisor", "kCurrentWeight", "kIndex", "kWeight", "kMaxWeightPerServer", "kErrorPenalty", "getGreatestCommonDivisor", "a", "b", "defaultFactory", "origin", "opts", "BalancedPool", "upstreams", "factory", "upstream", "upstreamOrigin", "pool", "args", "err", "client", "p", "dispatcher", "counter", "maxWeightIndex", "require_dispatcher_weakref", "__commonJSMin", "exports", "module", "kConnected", "kSize", "CompatWeakRef", "value", "CompatFinalizer", "finalizer", "dispatcher", "key", "require_agent", "__commonJSMin", "exports", "module", "InvalidArgumentError", "kClients", "kRunning", "kClose", "kDestroy", "kDispatch", "kInterceptors", "DispatcherBase", "Pool", "Client", "util", "createRedirectInterceptor", "WeakRef", "FinalizationRegistry", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kMaxRedirections", "kOnDrain", "kFactory", "kFinalizer", "kOptions", "defaultFactory", "origin", "opts", "Agent", "factory", "maxRedirections", "connect", "options", "key", "ref", "agent", "targets", "err", "ret", "client", "handler", "dispatcher", "closePromises", "destroyPromises", "require_readable", "__commonJSMin", "exports", "module", "assert", "Readable", "RequestAbortedError", "NotSupportedError", "InvalidArgumentError", "util", "ReadableStreamFrom", "toUSVString", "Blob", "kConsume", "kReading", "kBody", "kAbort", "kContentType", "resume", "abort", "contentType", "highWaterMark", "err", "ev", "args", "ret", "chunk", "consumePush", "consume", "opts", "limit", "signal", "abortFn", "signalListenerCleanup", "isLocked", "self", "isUnusable", "stream", "type", "resolve", "reject", "consumeFinish", "consumeStart", "state", "consumeEnd", "body", "length", "dst", "pos", "buf", "require_util", "__commonJSMin", "exports", "module", "assert", "ResponseStatusCodeError", "toUSVString", "getResolveErrorBodyCallback", "callback", "body", "contentType", "statusCode", "statusMessage", "headers", "chunks", "limit", "chunk", "payload", "require_abort_signal", "__commonJSMin", "exports", "module", "addAbortListener", "RequestAbortedError", "kListener", "kSignal", "abort", "self", "addSignal", "signal", "removeSignal", "require_api_request", "__commonJSMin", "exports", "module", "Readable", "InvalidArgumentError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "RequestHandler", "opts", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "highWaterMark", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "contentType", "chunk", "res", "trailers", "request", "resolve", "reject", "data", "require_api_stream", "__commonJSMin", "exports", "module", "finished", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "StreamHandler", "opts", "factory", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "res", "contentType", "trailers", "chunk", "stream", "resolve", "reject", "data", "require_api_pipeline", "__commonJSMin", "exports", "module", "Readable", "Duplex", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "AsyncResource", "addSignal", "removeSignal", "assert", "kResume", "PipelineRequest", "resume", "err", "callback", "PipelineResponse", "PipelineHandler", "opts", "handler", "signal", "method", "opaque", "onInfo", "responseHeaders", "body", "chunk", "encoding", "req", "res", "ret", "abort", "context", "statusCode", "rawHeaders", "headers", "trailers", "pipeline", "pipelineHandler", "require_api_upgrade", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "assert", "UpgradeHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "upgrade", "resolve", "reject", "data", "upgradeHandler", "require_api_connect", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "ConnectHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "connect", "resolve", "reject", "data", "connectHandler", "require_api", "__commonJSMin", "exports", "module", "require_mock_errors", "__commonJSMin", "exports", "module", "UndiciError", "MockNotMatchedError", "_MockNotMatchedError", "message", "require_mock_symbols", "__commonJSMin", "exports", "module", "require_mock_utils", "__commonJSMin", "exports", "module", "MockNotMatchedError", "kDispatches", "kMockAgent", "kOriginalDispatch", "kOrigin", "kGetNetConnect", "buildURL", "nop", "STATUS_CODES", "isPromise", "matchValue", "match", "value", "lowerCaseEntries", "headers", "headerName", "headerValue", "getHeaderByName", "key", "i", "buildHeadersFromArray", "clone", "entries", "index", "matchHeaders", "mockDispatch", "matchHeaderName", "matchHeaderValue", "safeUrl", "path", "pathSegments", "qp", "matchKey", "method", "body", "pathMatch", "methodMatch", "bodyMatch", "headersMatch", "getResponseData", "data", "getMockDispatch", "mockDispatches", "basePath", "resolvedPath", "matchedMockDispatches", "consumed", "addMockDispatch", "baseData", "replyData", "newMockDispatch", "deleteMockDispatch", "dispatch", "buildKey", "opts", "query", "generateKeyValues", "keyValuePairs", "x", "getStatusText", "statusCode", "getResponse", "buffers", "handler", "trailers", "error", "delay", "persist", "timesInvoked", "times", "handleReply", "_data", "optsHeaders", "newData", "responseData", "responseHeaders", "responseTrailers", "resume", "buildMockDispatch", "agent", "origin", "originalDispatch", "netConnect", "checkNetConnect", "url", "matcher", "buildMockOptions", "mockOptions", "require_mock_interceptor", "__commonJSMin", "exports", "module", "getResponseData", "buildKey", "addMockDispatch", "kDispatches", "kDispatchKey", "kDefaultHeaders", "kDefaultTrailers", "kContentLength", "kMockDispatch", "InvalidArgumentError", "buildURL", "MockScope", "mockDispatch", "waitInMs", "repeatTimes", "MockInterceptor", "opts", "mockDispatches", "parsedURL", "statusCode", "data", "responseOptions", "responseData", "contentLength", "headers", "trailers", "replyData", "wrappedDefaultsCallback", "resolvedData", "newMockDispatch", "dispatchData", "error", "require_mock_client", "__commonJSMin", "exports", "module", "promisify", "Client", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockClient", "origin", "opts", "require_mock_pool", "__commonJSMin", "exports", "module", "promisify", "Pool", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockPool", "origin", "opts", "require_pluralizer", "__commonJSMin", "exports", "module", "singulars", "plurals", "singular", "plural", "count", "one", "keys", "noun", "require_pending_interceptors_formatter", "__commonJSMin", "exports", "module", "Transform", "Console", "disableColors", "chunk", "_enc", "cb", "pendingInterceptors", "withPrettyHeaders", "method", "path", "statusCode", "persist", "times", "timesInvoked", "origin", "require_mock_agent", "__commonJSMin", "exports", "module", "kClients", "Agent", "kAgent", "kMockAgentSet", "kMockAgentGet", "kDispatches", "kIsMockActive", "kNetConnect", "kGetNetConnect", "kOptions", "kFactory", "MockClient", "MockPool", "matchValue", "buildMockOptions", "InvalidArgumentError", "UndiciError", "Dispatcher", "Pluralizer", "PendingInterceptorsFormatter", "FakeWeakRef", "value", "MockAgent", "opts", "agent", "origin", "dispatcher", "handler", "matcher", "mockOptions", "ref", "keyMatcher", "nonExplicitRef", "nonExplicitDispatcher", "mockAgentClients", "scope", "dispatch", "pending", "pendingInterceptorsFormatter", "pluralizer", "require_proxy_agent", "__commonJSMin", "exports", "module", "kProxy", "kClose", "kDestroy", "kInterceptors", "URL", "Agent", "Pool", "DispatcherBase", "InvalidArgumentError", "RequestAbortedError", "buildConnector", "kAgent", "kClient", "kProxyHeaders", "kRequestTls", "kProxyTls", "kConnectEndpoint", "defaultProtocolPort", "protocol", "buildProxyOptions", "opts", "defaultFactory", "origin", "ProxyAgent", "clientFactory", "resolvedUrl", "port", "host", "connect", "callback", "requestedHost", "socket", "statusCode", "servername", "err", "handler", "headers", "buildHeaders", "throwIfProxyAuthIsSent", "headersPair", "i", "key", "require_global", "__commonJSMin", "exports", "module", "globalDispatcher", "InvalidArgumentError", "Agent", "getGlobalDispatcher", "setGlobalDispatcher", "agent", "require_DecoratorHandler", "__commonJSMin", "exports", "module", "handler", "args", "require_headers", "__commonJSMin", "exports", "module", "kHeadersList", "kGuard", "kEnumerableProperty", "makeIterator", "isValidHeaderName", "isValidHeaderValue", "webidl", "assert", "kHeadersMap", "kHeadersSortedMap", "headerValueNormalize", "potentialValue", "i", "fill", "headers", "object", "header", "key", "value", "HeadersList", "_HeadersList", "init", "name", "lowercaseName", "exists", "delimiter", "Headers", "_Headers", "list", "names", "a", "b", "cookies", "callbackFn", "thisArg", "V", "require_response", "__commonJSMin", "exports", "module", "Headers", "HeadersList", "fill", "extractBody", "cloneBody", "mixinBody", "util", "kEnumerableProperty", "isValidReasonPhrase", "isCancelled", "isAborted", "isBlobLike", "serializeJavascriptValueToJSONString", "isErrorLike", "isomorphicEncode", "redirectStatus", "nullBodyStatus", "DOMException", "kState", "kHeaders", "kGuard", "kRealm", "webidl", "FormData", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "types", "ReadableStream", "Response", "_Response", "relevantRealm", "responseObject", "makeNetworkError", "data", "init", "bytes", "body", "initializeResponse", "url", "status", "parsedURL", "err", "value", "makeResponse", "bodyWithType", "extractedBody", "type", "urlList", "clonedResponse", "cloneResponse", "clonedResponseObject", "response", "filterResponse", "newResponse", "reason", "isError", "makeFilteredResponse", "state", "target", "p", "makeAppropriateNetworkError", "fetchParams", "V", "require_request", "__commonJSMin", "exports", "module", "extractBody", "mixinBody", "cloneBody", "Headers", "fillHeaders", "HeadersList", "FinalizationRegistry", "util", "isValidHTTPToken", "sameOrigin", "normalizeMethod", "makePolicyContainer", "forbiddenMethods", "corsSafeListedMethods", "referrerPolicy", "requestRedirect", "requestMode", "requestCredentials", "requestCache", "requestDuplex", "kEnumerableProperty", "kHeaders", "kSignal", "kState", "kGuard", "kRealm", "webidl", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "getMaxListeners", "setMaxListeners", "getEventListeners", "defaultMaxListeners", "TransformStream", "kInit", "kAbortController", "requestFinalizer", "signal", "abort", "Request", "_Request", "input", "init", "request", "fallbackMode", "baseUrl", "parsedURL", "err", "makeRequest", "origin", "window", "referrer", "parsedReferrer", "mode", "method", "ac", "acRef", "headers", "key", "val", "inputBody", "initBody", "extractedBody", "contentType", "inputOrInitBody", "finalBody", "identityTransform", "clonedRequest", "cloneRequest", "clonedRequestObject", "newRequest", "V", "require_fetch", "__commonJSMin", "exports", "module", "Response", "makeNetworkError", "makeAppropriateNetworkError", "filterResponse", "makeResponse", "Headers", "Request", "makeRequest", "zlib", "bytesMatch", "makePolicyContainer", "clonePolicyContainer", "requestBadPort", "TAOCheck", "appendRequestOriginHeader", "responseLocationURL", "requestCurrentURL", "setRequestReferrerPolicyOnRedirect", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "createOpaqueTimingInfo", "appendFetchMetadata", "corsCheck", "crossOriginResourcePolicyCheck", "determineRequestsReferrer", "coarsenedSharedCurrentTime", "createDeferredPromise", "isBlobLike", "sameOrigin", "isCancelled", "isAborted", "isErrorLike", "fullyReadBody", "readableStreamClose", "isomorphicEncode", "urlIsLocal", "urlIsHttpHttpsScheme", "urlHasHttpsScheme", "kState", "kHeaders", "kGuard", "kRealm", "assert", "safelyExtractBody", "redirectStatus", "nullBodyStatus", "safeMethods", "requestBodyHeader", "subresource", "DOMException", "kHeadersList", "EE", "Readable", "pipeline", "addAbortListener", "isErrored", "isReadable", "nodeMajor", "nodeMinor", "dataURLProcessor", "serializeAMimeType", "TransformStream", "getGlobalDispatcher", "webidl", "STATUS_CODES", "resolveObjectURL", "ReadableStream", "Fetch", "dispatcher", "reason", "error", "fetch", "input", "init", "p", "requestObject", "e", "request", "abortFetch", "responseObject", "relevantRealm", "locallyAborted", "controller", "fetching", "response", "finalizeAndReportTiming", "initiatorType", "originalURL", "timingInfo", "cacheState", "markResourceTiming", "globalThis", "err", "processRequestBodyChunkLength", "processRequestEndOfBody", "processResponse", "processResponseEndOfBody", "processResponseConsumeBody", "useParallelQueue", "taskDestination", "crossOriginIsolatedCapability", "currenTime", "fetchParams", "mainFetch", "recursive", "currentURL", "schemeFetch", "httpFetch", "internalResponse", "processBodyError", "fetchFinale", "processBody", "bytes", "scheme", "blobURLEntry", "blobURLEntryObject", "bodyWithType", "body", "length", "type", "dataURLStruct", "mimeType", "finalizeResponse", "identityTransformAlgorithm", "chunk", "transformStream", "nullOrBytes", "failure", "actualResponse", "httpNetworkOrCacheFetch", "httpRedirectFetch", "locationURL", "headerName", "isAuthenticationFetch", "isNewConnectionFetch", "httpFetchParams", "httpRequest", "httpCache", "revalidatingFlag", "includeCredentials", "contentLength", "contentLengthHeaderValue", "forwardResponse", "httpNetworkFetch", "forceNewConnection", "newConnection", "requestBody", "processBodyChunk", "processEndOfBody", "status", "statusText", "headersList", "socket", "dispatch", "iterator", "pullAlgorithm", "cancelAlgorithm", "stream", "onAborted", "isFailure", "done", "value", "url", "agent", "resolve", "reject", "abort", "connection", "resume", "codings", "location", "headers", "n", "key", "val", "x", "decoders", "willFollow", "coding", "require_symbols", "__commonJSMin", "exports", "module", "require_progressevent", "__commonJSMin", "exports", "module", "webidl", "kState", "ProgressEvent", "_ProgressEvent", "type", "eventInitDict", "require_encoding", "__commonJSMin", "exports", "module", "getEncoding", "label", "require_util", "__commonJSMin", "exports", "module", "kState", "kError", "kResult", "kAborted", "kLastProgressEventFired", "ProgressEvent", "getEncoding", "DOMException", "serializeAMimeType", "parseMIMEType", "types", "StringDecoder", "btoa", "staticPropertyDescriptors", "readOperation", "fr", "blob", "type", "encodingName", "reader", "bytes", "chunkPromise", "isFirstChunk", "done", "value", "fireAProgressEvent", "result", "packageData", "error", "event", "mimeType", "dataURL", "parsed", "decoder", "chunk", "encoding", "decode", "combineByteSequences", "binaryString", "ioQueue", "BOMEncoding", "BOMSniffing", "slice", "sliced", "a", "b", "c", "sequences", "size", "offset", "require_filereader", "__commonJSMin", "exports", "module", "staticPropertyDescriptors", "readOperation", "fireAProgressEvent", "kState", "kError", "kResult", "kEvents", "kAborted", "webidl", "kEnumerableProperty", "FileReader", "_FileReader", "blob", "encoding", "fn", "require_symbols", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "URLSerializer", "isValidHeaderName", "urlEquals", "A", "B", "excludeFragment", "serializedA", "serializedB", "fieldValues", "header", "values", "value", "require_cache", "__commonJSMin", "exports", "module", "kConstruct", "urlEquals", "getFieldValues", "kEnumerableProperty", "isDisturbed", "kHeadersList", "webidl", "Response", "cloneResponse", "Request", "kState", "kHeaders", "kGuard", "kRealm", "fetching", "urlIsHttpHttpsScheme", "createDeferredPromise", "readAllBytes", "assert", "getGlobalDispatcher", "Cache", "_Cache", "#relevantRequestResponseList", "request", "options", "p", "r", "responses", "requestResponse", "requestResponses", "#queryCache", "responseList", "response", "responseObject", "body", "requests", "responsePromises", "requestList", "fetchControllers", "responsePromise", "fieldValues", "fieldValue", "controller", "operations", "index", "operation", "cacheJobPromise", "errorData", "#batchCacheOperations", "e", "innerRequest", "innerResponse", "clonedResponse", "bodyReadPromise", "reader", "bytes", "error", "promise", "requestObject", "cache", "backupCache", "addedItems", "resultList", "idx", "requestQuery", "targetStorage", "storage", "cachedRequest", "cachedResponse", "#requestMatchesCachedItem", "queryURL", "cachedURL", "requestValue", "queryValue", "cacheQueryOptionConverters", "require_cachestorage", "__commonJSMin", "exports", "module", "kConstruct", "Cache", "webidl", "kEnumerableProperty", "CacheStorage", "_CacheStorage", "#caches", "request", "options", "cacheList", "response", "cacheName", "cache", "require_constants", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "kHeadersList", "isCTLExcludingHtab", "value", "char", "code", "validateCookieName", "name", "validateCookieValue", "validateCookiePath", "path", "validateCookieDomain", "domain", "toIMFDate", "date", "days", "months", "dayName", "day", "month", "year", "hour", "minute", "second", "validateCookieMaxAge", "maxAge", "stringify", "cookie", "out", "part", "key", "kHeadersListNode", "getHeadersList", "headers", "symbol", "headersList", "require_parse", "__commonJSMin", "exports", "module", "maxNameValuePairSize", "maxAttributeValueSize", "isCTLExcludingHtab", "collectASequenceOfCodePointsFast", "assert", "parseSetCookie", "header", "nameValuePair", "unparsedAttributes", "name", "value", "position", "parseUnparsedAttributes", "cookieAttributeList", "cookieAv", "attributeName", "attributeValue", "attributeNameLowercase", "expiryTime", "charCode", "deltaSeconds", "cookieDomain", "cookiePath", "enforcement", "attributeValueLowercase", "require_cookies", "__commonJSMin", "exports", "module", "parseSetCookie", "stringify", "getHeadersList", "webidl", "Headers", "getCookies", "headers", "cookie", "out", "piece", "name", "value", "deleteCookie", "attributes", "setCookie", "getSetCookies", "cookies", "pair", "require_constants", "__commonJSMin", "exports", "module", "uid", "staticPropertyDescriptors", "states", "opcodes", "maxUnsigned16Bit", "parserStates", "emptyBuffer", "require_symbols", "__commonJSMin", "exports", "module", "require_events", "__commonJSMin", "exports", "module", "webidl", "kEnumerableProperty", "MessagePort", "MessageEvent", "_MessageEvent", "#eventInit", "type", "eventInitDict", "bubbles", "cancelable", "data", "origin", "lastEventId", "source", "ports", "CloseEvent", "_CloseEvent", "ErrorEvent", "_ErrorEvent", "eventInit", "require_util", "__commonJSMin", "exports", "module", "kReadyState", "kController", "kResponse", "kBinaryType", "kWebSocketURL", "states", "opcodes", "MessageEvent", "ErrorEvent", "isEstablished", "ws", "isClosing", "isClosed", "fireEvent", "target", "eventConstructor", "eventInitDict", "event", "websocketMessageReceived", "type", "data", "dataForEvent", "failWebsocketConnection", "isValidSubprotocol", "protocol", "char", "code", "isValidStatusCode", "reason", "controller", "response", "require_connection", "__commonJSMin", "exports", "module", "randomBytes", "createHash", "diagnosticsChannel", "uid", "states", "kReadyState", "kSentClose", "kByteParser", "kReceivedClose", "fireEvent", "failWebsocketConnection", "CloseEvent", "makeRequest", "fetching", "Headers", "getGlobalDispatcher", "kHeadersList", "channels", "establishWebSocketConnection", "url", "protocols", "ws", "onEstablish", "options", "requestURL", "request", "headersList", "keyValue", "protocol", "permessageDeflate", "response", "secWSAccept", "digest", "secExtension", "secProtocol", "onSocketData", "onSocketClose", "onSocketError", "chunk", "wasClean", "code", "reason", "result", "error", "require_frame", "__commonJSMin", "exports", "module", "randomBytes", "maxUnsigned16Bit", "WebsocketFrameSend", "data", "opcode", "bodyLength", "payloadLength", "offset", "buffer", "i", "require_receiver", "__commonJSMin", "exports", "module", "Writable", "diagnosticsChannel", "parserStates", "opcodes", "states", "emptyBuffer", "kReadyState", "kSentClose", "kResponse", "kReceivedClose", "isValidStatusCode", "failWebsocketConnection", "websocketMessageReceived", "WebsocketFrameSend", "channels", "ByteParser", "#buffers", "#byteOffset", "#state", "#info", "#fragments", "ws", "chunk", "_", "callback", "buffer", "payloadLength", "body", "closeFrame", "err", "frame", "upper", "lower", "fullMessage", "n", "offset", "next", "length", "onlyCode", "data", "code", "reason", "require_websocket", "__commonJSMin", "exports", "module", "webidl", "DOMException", "URLSerializer", "staticPropertyDescriptors", "states", "opcodes", "emptyBuffer", "kWebSocketURL", "kReadyState", "kController", "kBinaryType", "kResponse", "kSentClose", "kByteParser", "isEstablished", "isClosing", "isValidSubprotocol", "failWebsocketConnection", "fireEvent", "establishWebSocketConnection", "WebsocketFrameSend", "ByteParser", "kEnumerableProperty", "isBlobLike", "getGlobalDispatcher", "types", "experimentalWarned", "WebSocket", "_WebSocket", "#events", "#bufferedAmount", "#protocol", "#extensions", "url", "protocols", "options", "urlRecord", "e", "p", "response", "#onConnectionEstablished", "code", "reason", "reasonByteLength", "frame", "err", "data", "socket", "value", "buffer", "ab", "fn", "type", "parser", "extensions", "protocol", "V", "require_undici", "__commonJSMin", "exports", "module", "Client", "Dispatcher", "errors", "Pool", "BalancedPool", "Agent", "util", "InvalidArgumentError", "api", "buildConnector", "MockClient", "MockAgent", "MockPool", "mockErrors", "ProxyAgent", "getGlobalDispatcher", "setGlobalDispatcher", "DecoratorHandler", "RedirectHandler", "createRedirectInterceptor", "hasCrypto", "makeDispatcher", "fn", "url", "opts", "handler", "path", "agent", "dispatcher", "fetchImpl", "resource", "err", "setGlobalOrigin", "getGlobalOrigin", "CacheStorage", "kConstruct", "deleteCookie", "getCookies", "getSetCookies", "setCookie", "parseMIMEType", "serializeAMimeType", "WebSocket", "assertInputTypes", "text", "lang", "slow", "host", "exports", "SPACE_REGEX", "DEFAULT_PUNCTUATION_REGEX", "splitLongText", "text", "_a", "_b", "_c", "maxLength", "_d", "splitPunct", "isSpaceOrPunct", "s", "i", "regex", "lastIndexOfSpaceOrPunct", "left", "right", "result", "addResult", "start", "end", "str", "exports", "assertInputTypes_1", "__importDefault", "splitLongText_1", "url_1", "getAudioUrl", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "exports", "getAllAudioUrls", "_f", "splitPunct", "shortText", "require_bind", "__commonJSMin", "exports", "module", "fn", "thisArg", "args", "require_utils", "__commonJSMin", "exports", "module", "bind", "toString", "isArray", "val", "isUndefined", "isBuffer", "isArrayBuffer", "isFormData", "isArrayBufferView", "result", "isString", "isNumber", "isObject", "isPlainObject", "prototype", "isDate", "isFile", "isBlob", "isFunction", "isStream", "isURLSearchParams", "trim", "str", "isStandardBrowserEnv", "forEach", "obj", "fn", "i", "l", "key", "merge", "assignValue", "extend", "a", "b", "thisArg", "stripBOM", "content", "require_buildURL", "__commonJSMin", "exports", "module", "utils", "encode", "val", "url", "params", "paramsSerializer", "serializedParams", "parts", "key", "v", "hashmarkIndex", "require_InterceptorManager", "__commonJSMin", "exports", "module", "utils", "InterceptorManager", "fulfilled", "rejected", "options", "id", "fn", "h", "require_normalizeHeaderName", "__commonJSMin", "exports", "module", "utils", "headers", "normalizedName", "value", "name", "require_enhanceError", "__commonJSMin", "exports", "module", "error", "config", "code", "request", "response", "require_createError", "__commonJSMin", "exports", "module", "enhanceError", "message", "config", "code", "request", "response", "error", "require_settle", "__commonJSMin", "exports", "module", "createError", "resolve", "reject", "response", "validateStatus", "require_cookies", "__commonJSMin", "exports", "module", "utils", "name", "value", "expires", "path", "domain", "secure", "cookie", "match", "require_isAbsoluteURL", "__commonJSMin", "exports", "module", "url", "require_combineURLs", "__commonJSMin", "exports", "module", "baseURL", "relativeURL", "require_buildFullPath", "__commonJSMin", "exports", "module", "isAbsoluteURL", "combineURLs", "baseURL", "requestedURL", "require_parseHeaders", "__commonJSMin", "exports", "module", "utils", "ignoreDuplicateOf", "headers", "parsed", "key", "val", "line", "require_isURLSameOrigin", "__commonJSMin", "exports", "module", "utils", "msie", "urlParsingNode", "originURL", "resolveURL", "url", "href", "requestURL", "parsed", "require_xhr", "__commonJSMin", "exports", "module", "utils", "settle", "cookies", "buildURL", "buildFullPath", "parseHeaders", "isURLSameOrigin", "createError", "config", "resolve", "reject", "requestData", "requestHeaders", "responseType", "request", "username", "password", "fullPath", "onloadend", "responseHeaders", "responseData", "response", "timeoutErrorMessage", "xsrfValue", "val", "key", "cancel", "require_ms", "__commonJSMin", "exports", "module", "s", "m", "h", "d", "w", "y", "val", "options", "type", "parse", "fmtLong", "fmtShort", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "require_common", "__commonJSMin", "exports", "module", "setup", "env", "createDebug", "coerce", "disable", "enable", "enabled", "destroy", "key", "selectColor", "namespace", "hash", "i", "prevTime", "enableOverride", "namespacesCache", "enabledCache", "debug", "args", "self", "curr", "ms", "index", "match", "format", "formatter", "val", "extend", "v", "delimiter", "newDebug", "namespaces", "split", "len", "toNamespace", "name", "regexp", "require_browser", "__commonJSMin", "exports", "module", "formatArgs", "save", "load", "useColors", "localstorage", "warned", "args", "c", "index", "lastC", "match", "namespaces", "r", "formatters", "v", "error", "require_has_flag", "__commonJSMin", "exports", "module", "flag", "argv", "prefix", "position", "terminatorPosition", "require_supports_color", "__commonJSMin", "exports", "module", "os", "tty", "hasFlag", "env", "forceColor", "translateLevel", "level", "supportsColor", "haveStream", "streamIsTTY", "min", "osRelease", "sign", "version", "getSupportLevel", "stream", "require_node", "__commonJSMin", "exports", "module", "tty", "util", "init", "log", "formatArgs", "save", "load", "useColors", "supportsColor", "key", "obj", "prop", "_", "k", "val", "args", "name", "c", "colorCode", "prefix", "getDate", "namespaces", "debug", "keys", "i", "formatters", "v", "str", "require_src", "__commonJSMin", "exports", "module", "require_debug", "__commonJSMin", "exports", "module", "debug", "require_follow_redirects", "__commonJSMin", "exports", "module", "url", "URL", "http", "https", "Writable", "assert", "debug", "useNativeURL", "error", "preservedUrlFields", "events", "eventHandlers", "event", "arg1", "arg2", "arg3", "InvalidUrlError", "createErrorType", "RedirectionError", "TooManyRedirectsError", "MaxBodyLengthExceededError", "WriteAfterEndError", "destroy", "noop", "RedirectableRequest", "options", "responseCallback", "self", "response", "cause", "destroyRequest", "data", "encoding", "callback", "isString", "isBuffer", "isFunction", "currentRequest", "name", "value", "msecs", "destroyOnTimeout", "socket", "startTimer", "clearTimer", "method", "a", "b", "property", "searchPos", "protocol", "nativeProtocol", "scheme", "request", "buffers", "writeNext", "buffer", "statusCode", "location", "requestHeaders", "beforeRedirect", "removeMatchingHeaders", "currentHostHeader", "currentUrlParts", "parseUrl", "currentHost", "currentUrl", "redirectUrl", "resolveUrl", "spreadUrlObject", "isSubdomain", "responseDetails", "requestDetails", "wrap", "protocols", "nativeProtocols", "wrappedProtocol", "input", "isURL", "validateUrl", "get", "wrappedRequest", "parsed", "relative", "base", "urlObject", "target", "spread", "key", "regex", "headers", "lastValue", "header", "code", "message", "baseClass", "CustomError", "properties", "subdomain", "domain", "dot", "require_package", "__commonJSMin", "exports", "module", "require_http", "__commonJSMin", "exports", "module", "utils", "settle", "buildFullPath", "buildURL", "http", "https", "httpFollow", "httpsFollow", "url", "zlib", "pkg", "createError", "enhanceError", "isHttps", "setProxy", "options", "proxy", "location", "base64", "redirection", "config", "resolvePromise", "rejectPromise", "resolve", "value", "reject", "data", "headers", "auth", "username", "password", "fullPath", "parsed", "protocol", "urlAuth", "urlUsername", "urlPassword", "isHttpsRequest", "agent", "proxyEnv", "proxyUrl", "parsedProxyUrl", "noProxyEnv", "shouldProxy", "noProxy", "s", "proxyElement", "proxyUrlAuth", "transport", "isHttpsProxy", "req", "res", "stream", "lastRequest", "response", "responseBuffer", "totalResponseBytes", "chunk", "err", "responseData", "timeout", "cancel", "require_defaults", "__commonJSMin", "exports", "module", "utils", "normalizeHeaderName", "enhanceError", "DEFAULT_CONTENT_TYPE", "setContentTypeIfUnset", "headers", "value", "getDefaultAdapter", "adapter", "stringifySafely", "rawValue", "parser", "encoder", "e", "defaults", "data", "transitional", "silentJSONParsing", "forcedJSONParsing", "strictJSONParsing", "status", "method", "require_transformData", "__commonJSMin", "exports", "module", "utils", "defaults", "data", "headers", "fns", "context", "fn", "require_isCancel", "__commonJSMin", "exports", "module", "value", "require_dispatchRequest", "__commonJSMin", "exports", "module", "utils", "transformData", "isCancel", "defaults", "throwIfCancellationRequested", "config", "method", "adapter", "response", "reason", "require_mergeConfig", "__commonJSMin", "exports", "module", "utils", "config1", "config2", "config", "valueFromConfig2Keys", "mergeDeepPropertiesKeys", "defaultToConfig2Keys", "directMergeKeys", "getMergedValue", "target", "source", "mergeDeepProperties", "prop", "axiosKeys", "otherKeys", "key", "require_validator", "__commonJSMin", "exports", "module", "pkg", "validators", "type", "i", "thing", "deprecatedWarnings", "currentVerArr", "isOlderVersion", "version", "thanVersion", "pkgVersionArr", "destVer", "validator", "message", "isDeprecated", "formatMessage", "opt", "desc", "value", "opts", "assertOptions", "options", "schema", "allowUnknown", "keys", "result", "require_Axios", "__commonJSMin", "exports", "module", "utils", "buildURL", "InterceptorManager", "dispatchRequest", "mergeConfig", "validator", "validators", "Axios", "instanceConfig", "config", "transitional", "requestInterceptorChain", "synchronousRequestInterceptors", "interceptor", "responseInterceptorChain", "promise", "chain", "newConfig", "onFulfilled", "onRejected", "error", "method", "url", "data", "require_Cancel", "__commonJSMin", "exports", "module", "Cancel", "message", "require_CancelToken", "__commonJSMin", "exports", "module", "Cancel", "CancelToken", "executor", "resolvePromise", "resolve", "token", "message", "cancel", "c", "require_spread", "__commonJSMin", "exports", "module", "callback", "arr", "require_isAxiosError", "__commonJSMin", "exports", "module", "payload", "require_axios", "__commonJSMin", "exports", "module", "utils", "bind", "Axios", "mergeConfig", "defaults", "createInstance", "defaultConfig", "context", "instance", "axios", "instanceConfig", "promises", "require_axios", "__commonJSMin", "exports", "module", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "_f", "splitPunct", "_g", "timeout", "shortTextList", "shortText", "base64List", "_h", "result", "i", "base64", "getAudioUrl_1", "exports", "getAudioBase64_1", "translate_form_exports", "__export", "TranslateForm", "__toCommonJS", "import_react", "import_api", "import_utils", "import_api", "import_utils", "import_react", "import_querystring", "import_undici", "languages", "getISOCode", "language", "key", "isSupported", "import_undici", "zr", "a", "b", "yr", "wr", "c", "window", "d", "e", "f", "g", "l", "h", "xr", "config", "updateTKK", "now", "code", "xt", "tokenGenerator", "text", "tk", "error", "translate", "text", "options", "error", "lang", "isSupported", "getISOCode", "token", "tokenGenerator", "baseUrl", "data", "url", "querystring", "requestOptions", "requestUrl", "body", "result", "obj", "str", "googleTTS", "AUTO_DETECT", "TranslateError", "extractPronounceTextFromRaw", "raw", "simpleTranslate", "text", "options", "translated", "translate", "err", "error", "unifyLegacyLanguageSet", "legacy", "usePreferences", "React", "useTextState", "preferences", "text", "setText", "textRef", "cbText", "err", "useSelectedLanguagesSet", "selectedLanguageSet", "setSelectedLanguageSet", "usePreferencesLanguageSet", "useDebouncedValue", "value", "delay", "debouncedValue", "setDebouncedValue", "handler", "useAllLanguageSets", "languages", "setLanguages", "supportedLanguages_default", "supportedLanguagesByCode_default", "getLanguageFlag", "language", "fallback", "supportedLanguagesByCode", "supportedLanguagesByCode_default", "supportedLanguagesByCountry", "supportedLanguages_default", "languages", "import_api", "import_react", "import_api", "import_jsx_runtime", "AddLanguageForm", "onAddLanguage", "targetLanguages", "setTargetLanguages", "React", "values", "filteredTargetLanguages", "lang", "languages", "getLanguageFlag", "_", "index", "value", "newTargetLanguages", "AUTO_DETECT", "isSameLanguageSet", "langSet1", "langSet2", "getLanguageSetObjects", "languageSet", "supportedLanguagesByCode", "l", "formatLanguageSet", "langFrom", "langTo", "languageLabels", "getLanguageFlag", "import_jsx_runtime", "LanguagesManagerItem", "languageSet", "onSelect", "onDelete", "selected", "langFrom", "langTo", "getLanguageSetObjects", "langsTo", "langsToFlags", "l", "getLanguageFlag", "langsToLabel", "SaveCurrentLanguageSet", "formatLanguageSet", "LanguagesManagerList", "navigation", "preferencesLanguageSet", "usePreferencesLanguageSet", "selectedLanguageSet", "setSelectedLanguageSet", "useSelectedLanguagesSet", "languages", "setLanguages", "useAllLanguageSets", "AddLanguageForm", "langSet", "isSameLanguageSet", "import_api", "import_jsx_runtime", "import_api", "import_jsx_runtime", "ConfigurableCopyPasteActions", "defaultActionsPrefix", "value", "defaultPreference", "pasteAction", "copyAction", "OpenOnGoogleTranslateWebsiteAction", "translationText", "translation", "import_jsx_runtime", "TranslateForm", "selectedLanguageSet", "setSelectedLanguageSet", "useSelectedLanguagesSet", "langFrom", "langTo", "proxy", "usePreferences", "setLangFrom", "l", "setLangTo", "fromLangObj", "supportedLanguagesByCode", "toLangObj", "text", "setText", "useTextState", "debouncedValue", "useDebouncedValue", "translated", "isLoading", "simpleTranslate", "error", "handleChange", "value", "autoDetectedLanguage", "React", "AUTO_DETECT", "ConfigurableCopyPasteActions", "OpenOnGoogleTranslateWebsiteAction", "LanguagesManagerList", "getLanguageFlag", "languages", "lang", "v"] } diff --git a/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/translate.js b/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/translate.js @@ -1,96 +1,89 @@ -"use strict";var vQ=Object.create;var Zr=Object.defineProperty;var RQ=Object.getOwnPropertyDescriptor;var NQ=Object.getOwnPropertyNames;var bQ=Object.getPrototypeOf,SQ=Object.prototype.hasOwnProperty;var E=(e,A)=>()=>(A||e((A={exports:{}}).exports,A),A.exports),FQ=(e,A)=>{for(var t in A)Zr(e,t,{get:A[t],enumerable:!0})},d2=(e,A,t,a)=>{if(A&&typeof A=="object"||typeof A=="function")for(let r of NQ(A))!SQ.call(e,r)&&r!==t&&Zr(e,r,{get:()=>A[r],enumerable:!(a=RQ(A,r))||a.enumerable});return e};var je=(e,A,t)=>(t=e!=null?vQ(bQ(e)):{},d2(A||!e||!e.__esModule?Zr(t,"default",{value:e,enumerable:!0}):t,e)),kQ=e=>d2(Zr({},"__esModule",{value:!0}),e);var g2=E(l2=>{var p2=Object.prototype.hasOwnProperty;function Ln(e,A){var t,a;if(e===A)return!0;if(e&&A&&(t=e.constructor)===A.constructor){if(t===Date)return e.getTime()===A.getTime();if(t===RegExp)return e.toString()===A.toString();if(t===Array){if((a=e.length)===A.length)for(;a--&&Ln(e[a],A[a]););return a===-1}if(!t||typeof e=="object"){a=0;for(t in e)if(p2.call(e,t)&&++a&&!p2.call(A,t)||!(t in A)||!Ln(e[t],A[t]))return!1;return Object.keys(A).length===a}}return e!==e&&A!==A}l2.dequal=Ln});var c2=E(Xr=>{"use strict";Object.defineProperty(Xr,"__esModule",{value:!0});Xr.useDeepMemo=void 0;var Un=require("react"),LQ=g2();function UQ(e){let A=(0,Un.useRef)(e),t=(0,Un.useRef)(0);return(0,LQ.dequal)(e,A.current)||(A.current=e,t.current+=1),(0,Un.useMemo)(()=>A.current,[t.current])}Xr.useDeepMemo=UQ});var dt=E(zr=>{"use strict";Object.defineProperty(zr,"__esModule",{value:!0});zr.useLatest=void 0;var TQ=require("react");function MQ(e){let A=(0,TQ.useRef)(e);return A.current=e,A}zr.useLatest=MQ});var Tn=E(OA=>{"use strict";var VQ=OA&&OA.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),YQ=OA&&OA.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),u2=OA&&OA.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&VQ(A,e,t);return YQ(A,e),A};Object.defineProperty(OA,"__esModule",{value:!0});OA.handleErrorToastAction=void 0;var JQ=u2(require("fs")),GQ=u2(require("path")),Kr=require("@raycast/api"),xQ=e=>{let A=!0,t="[Extension Name]...",a="";try{let i=JSON.parse(JQ.readFileSync(GQ.join(Kr.environment.assetsPath,"..","package.json"),"utf8"));t=`[${i.title}]...`,a=`https://raycast.com/${i.owner||i.author}/${i.name}`,(!i.owner||i.access==="public")&&(A=!1)}catch{}let r=Kr.environment.isDevelopment||A;return{title:r?"Copy Logs":"Report Error",onAction(i){i.hide(),r?Kr.Clipboard.copy(e?.stack||e?.message||""):(0,Kr.open)(`https://github.com/raycast/extensions/issues/new?&labels=extension%2Cbug&template=extension_bug_report.yml&title=${encodeURIComponent(t)}&extension-url=${encodeURI(a)}&description=${encodeURIComponent(`#### Error: +"use strict";var rQ=Object.create;var _r=Object.defineProperty;var iQ=Object.getOwnPropertyDescriptor;var sQ=Object.getOwnPropertyNames;var nQ=Object.getPrototypeOf,oQ=Object.prototype.hasOwnProperty;var E=(e,A)=>()=>(A||e((A={exports:{}}).exports,A),A.exports),dQ=(e,A)=>{for(var t in A)_r(e,t,{get:A[t],enumerable:!0})},$0=(e,A,t,a)=>{if(A&&typeof A=="object"||typeof A=="function")for(let r of sQ(A))!oQ.call(e,r)&&r!==t&&_r(e,r,{get:()=>A[r],enumerable:!(a=iQ(A,r))||a.enumerable});return e};var aA=(e,A,t)=>(t=e!=null?rQ(nQ(e)):{},$0(A||!e||!e.__esModule?_r(t,"default",{value:e,enumerable:!0}):t,e)),pQ=e=>$0(_r({},"__esModule",{value:!0}),e);var t2=E(A2=>{var e2=Object.prototype.hasOwnProperty;function yn(e,A){var t,a;if(e===A)return!0;if(e&&A&&(t=e.constructor)===A.constructor){if(t===Date)return e.getTime()===A.getTime();if(t===RegExp)return e.toString()===A.toString();if(t===Array){if((a=e.length)===A.length)for(;a--&&yn(e[a],A[a]););return a===-1}if(!t||typeof e=="object"){a=0;for(t in e)if(e2.call(e,t)&&++a&&!e2.call(A,t)||!(t in A)||!yn(e[t],A[t]))return!1;return Object.keys(A).length===a}}return e!==e&&A!==A}A2.dequal=yn});var a2=E(qr=>{"use strict";Object.defineProperty(qr,"__esModule",{value:!0});qr.useDeepMemo=void 0;var Dn=require("react"),lQ=t2();function gQ(e){let A=(0,Dn.useRef)(e),t=(0,Dn.useRef)(0);return(0,lQ.dequal)(e,A.current)||(A.current=e,t.current+=1),(0,Dn.useMemo)(()=>A.current,[t.current])}qr.useDeepMemo=gQ});var it=E(Hr=>{"use strict";Object.defineProperty(Hr,"__esModule",{value:!0});Hr.useLatest=void 0;var cQ=require("react");function uQ(e){let A=(0,cQ.useRef)(e);return A.current=e,A}Hr.useLatest=uQ});var Rn=E(qA=>{"use strict";var EQ=qA&&qA.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),QQ=qA&&qA.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),r2=qA&&qA.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&EQ(A,e,t);return QQ(A,e),A};Object.defineProperty(qA,"__esModule",{value:!0});qA.handleErrorToastAction=void 0;var mQ=r2(require("fs")),CQ=r2(require("path")),Or=require("@raycast/api"),BQ=e=>{let A=!0,t="[Extension Name]...",a="";try{let i=JSON.parse(mQ.readFileSync(CQ.join(Or.environment.assetsPath,"..","package.json"),"utf8"));t=`[${i.title}]...`,a=`https://raycast.com/${i.owner||i.author}/${i.name}`,(!i.owner||i.access==="public")&&(A=!1)}catch{}let r=Or.environment.isDevelopment||A;return{title:r?"Copy Logs":"Report Error",onAction(i){i.hide(),r?Or.Clipboard.copy(e?.stack||e?.message||""):(0,Or.open)(`https://github.com/raycast/extensions/issues/new?&labels=extension%2Cbug&template=extension_bug_report.yml&title=${encodeURIComponent(t)}&extension-url=${encodeURI(a)}&description=${encodeURIComponent(`#### Error: \`\`\` ${e?.stack||e?.message||""} \`\`\` -`)}`)}}};OA.handleErrorToastAction=xQ});var Ja=E($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});$r.usePromise=void 0;var bt=require("react"),Xt=require("@raycast/api"),_Q=c2(),zt=dt(),qQ=Tn();function HQ(e,A,t){let a=(0,bt.useRef)(0),[r,i]=(0,bt.useState)({isLoading:!0}),s=(0,zt.useLatest)(e),n=(0,zt.useLatest)(t?.abortable),o=(0,zt.useLatest)(A||[]),d=(0,zt.useLatest)(t?.onError),l=(0,zt.useLatest)(t?.onData),p=(0,zt.useLatest)(t?.onWillExecute),g=(0,zt.useLatest)(r.data),c=(0,bt.useRef)(),u=(0,bt.useCallback)((...f)=>{let h=++a.current;return n.current&&(n.current.current?.abort(),n.current.current=new AbortController),p.current?.(f),i(w=>({...w,isLoading:!0})),OQ(s.current)(...f).then(w=>(h===a.current&&(l.current&&l.current(w),i({data:w,isLoading:!1})),w),w=>(w.name=="AbortError"||h===a.current&&(d.current?d.current(w):(console.error(w),Xt.environment.launchType!==Xt.LaunchType.Background&&(0,Xt.showToast)({style:Xt.Toast.Style.Failure,title:"Failed to fetch latest data",message:w.message,primaryAction:{title:"Retry",onAction(v){v.hide(),c.current?.(...o.current||[])}},secondaryAction:(0,qQ.handleErrorToastAction)(w)})),i({error:w,isLoading:!1})),w))},[n,l,d,o,s,i,c,p]);c.current=u;let Q=(0,bt.useCallback)(()=>u(...o.current||[]),[u,o]),m=(0,bt.useCallback)(async(f,h)=>{let w;try{if(h?.optimisticUpdate){typeof h?.rollbackOnError!="function"&&h?.rollbackOnError!==!1&&(w=structuredClone(g.current?.value));let v=h.optimisticUpdate;i(S=>({...S,data:v(S.data)}))}return await f}catch(v){if(typeof h?.rollbackOnError=="function"){let S=h.rollbackOnError;i(x=>({...x,data:S(x.data)}))}else h?.optimisticUpdate&&h?.rollbackOnError!==!1&&i(S=>({...S,data:w}));throw v}finally{h?.shouldRevalidateAfter!==!1&&(Xt.environment.launchType===Xt.LaunchType.Background||Xt.environment.commandMode==="menu-bar"?await Q():Q())}},[Q,g,i]);(0,bt.useEffect)(()=>{t?.execute!==!1?u(...A||[]):n.current&&n.current.current?.abort()},[(0,_Q.useDeepMemo)([A,t?.execute,u]),n]),(0,bt.useEffect)(()=>()=>{n.current&&n.current.current?.abort()},[n]);let C=t?.execute!==!1?r.isLoading:!1;return{...{...r,isLoading:C},revalidate:Q,mutate:m}}$r.usePromise=HQ;function OQ(e){return e===Promise.all||e===Promise.race||e===Promise.resolve||e===Promise.reject?e.bind(Promise):e}});var Ai=E(ei=>{"use strict";Object.defineProperty(ei,"__esModule",{value:!0});ei.useCachedState=void 0;var Mn=require("react"),PQ=require("@raycast/api"),Vn=dt();function WQ(e,A){let t=this[e];return t instanceof Date?`__raycast_cached_date__${t.toString()}`:Buffer.isBuffer(t)?`__raycast_cached_buffer__${t.toString("base64")}`:A}function jQ(e,A){return typeof A=="string"&&A.startsWith("__raycast_cached_date__")?new Date(A.replace("__raycast_cached_date__","")):typeof A=="string"&&A.startsWith("__raycast_cached_buffer__")?Buffer.from(A.replace("__raycast_cached_buffer__",""),"base64"):A}var ZQ=Symbol("cache without namespace"),E2=new Map;function XQ(e,A,t){let a=t?.cacheNamespace||ZQ,r=E2.get(a)||E2.set(a,new PQ.Cache({namespace:t?.cacheNamespace})).get(a);if(!r)throw new Error("Missing cache");let i=(0,Vn.useLatest)(e),s=(0,Vn.useLatest)(A),n=(0,Mn.useSyncExternalStore)(r.subscribe,()=>{try{return r.get(i.current)}catch(p){console.error("Could not get Cache data:",p);return}}),o=(0,Mn.useMemo)(()=>{if(typeof n<"u"){if(n==="undefined")return;try{return JSON.parse(n,jQ)}catch(p){return console.warn("The cached data is corrupted",p),s.current}}else return s.current},[n,s]),d=(0,Vn.useLatest)(o),l=(0,Mn.useCallback)(p=>{let g=typeof p=="function"?p(d.current):p;if(typeof g>"u")r.set(i.current,"undefined");else{let c=JSON.stringify(g,WQ);r.set(i.current,c)}return g},[r,i,d]);return[o,l]}ei.useCachedState=XQ});var Gn=E((Kt,h2)=>{"use strict";var Yn=require("crypto");Kt=h2.exports=Ga;function Ga(e,A){return A=m2(e,A),zQ(e,A)}Kt.sha1=function(e){return Ga(e)};Kt.keys=function(e){return Ga(e,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})};Kt.MD5=function(e){return Ga(e,{algorithm:"md5",encoding:"hex"})};Kt.keysMD5=function(e){return Ga(e,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var b1=Yn.getHashes?Yn.getHashes().slice():["sha1","md5"];b1.push("passthrough");var Q2=["buffer","hex","binary","base64"];function m2(e,A){A=A||{};var t={};if(t.algorithm=A.algorithm||"sha1",t.encoding=A.encoding||"hex",t.excludeValues=!!A.excludeValues,t.algorithm=t.algorithm.toLowerCase(),t.encoding=t.encoding.toLowerCase(),t.ignoreUnknown=A.ignoreUnknown===!0,t.respectType=A.respectType!==!1,t.respectFunctionNames=A.respectFunctionNames!==!1,t.respectFunctionProperties=A.respectFunctionProperties!==!1,t.unorderedArrays=A.unorderedArrays===!0,t.unorderedSets=A.unorderedSets!==!1,t.unorderedObjects=A.unorderedObjects!==!1,t.replacer=A.replacer||void 0,t.excludeKeys=A.excludeKeys||void 0,typeof e>"u")throw new Error("Object argument required.");for(var a=0;a<b1.length;++a)b1[a].toLowerCase()===t.algorithm.toLowerCase()&&(t.algorithm=b1[a]);if(b1.indexOf(t.algorithm)===-1)throw new Error('Algorithm "'+t.algorithm+'" not supported. supported values: '+b1.join(", "));if(Q2.indexOf(t.encoding)===-1&&t.algorithm!=="passthrough")throw new Error('Encoding "'+t.encoding+'" not supported. supported values: '+Q2.join(", "));return t}function C2(e){if(typeof e!="function")return!1;var A=/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i;return A.exec(Function.prototype.toString.call(e))!=null}function zQ(e,A){var t;A.algorithm!=="passthrough"?t=Yn.createHash(A.algorithm):t=new B2,typeof t.write>"u"&&(t.write=t.update,t.end=t.update);var a=Jn(A,t);if(a.dispatch(e),t.update||t.end(""),t.digest)return t.digest(A.encoding==="buffer"?void 0:A.encoding);var r=t.read();return A.encoding==="buffer"?r:r.toString(A.encoding)}Kt.writeToStream=function(e,A,t){return typeof t>"u"&&(t=A,A={}),A=m2(e,A),Jn(A,t).dispatch(e)};function Jn(e,A,t){t=t||[];var a=function(r){return A.update?A.update(r,"utf8"):A.write(r,"utf8")};return{dispatch:function(r){e.replacer&&(r=e.replacer(r));var i=typeof r;return r===null&&(i="null"),this["_"+i](r)},_object:function(r){var i=/\[object (.*)\]/i,s=Object.prototype.toString.call(r),n=i.exec(s);n?n=n[1]:n="unknown:["+s+"]",n=n.toLowerCase();var o=null;if((o=t.indexOf(r))>=0)return this.dispatch("[CIRCULAR:"+o+"]");if(t.push(r),typeof Buffer<"u"&&Buffer.isBuffer&&Buffer.isBuffer(r))return a("buffer:"),a(r);if(n!=="object"&&n!=="function"&&n!=="asyncfunction")if(this["_"+n])this["_"+n](r);else{if(e.ignoreUnknown)return a("["+n+"]");throw new Error('Unknown object type "'+n+'"')}else{var d=Object.keys(r);e.unorderedObjects&&(d=d.sort()),e.respectType!==!1&&!C2(r)&&d.splice(0,0,"prototype","__proto__","constructor"),e.excludeKeys&&(d=d.filter(function(p){return!e.excludeKeys(p)})),a("object:"+d.length+":");var l=this;return d.forEach(function(p){l.dispatch(p),a(":"),e.excludeValues||l.dispatch(r[p]),a(",")})}},_array:function(r,i){i=typeof i<"u"?i:e.unorderedArrays!==!1;var s=this;if(a("array:"+r.length+":"),!i||r.length<=1)return r.forEach(function(d){return s.dispatch(d)});var n=[],o=r.map(function(d){var l=new B2,p=t.slice(),g=Jn(e,l,p);return g.dispatch(d),n=n.concat(p.slice(t.length)),l.read().toString()});return t=t.concat(n),o.sort(),this._array(o,!1)},_date:function(r){return a("date:"+r.toJSON())},_symbol:function(r){return a("symbol:"+r.toString())},_error:function(r){return a("error:"+r.toString())},_boolean:function(r){return a("bool:"+r.toString())},_string:function(r){a("string:"+r.length+":"),a(r.toString())},_function:function(r){a("fn:"),C2(r)?this.dispatch("[native]"):this.dispatch(r.toString()),e.respectFunctionNames!==!1&&this.dispatch("function-name:"+String(r.name)),e.respectFunctionProperties&&this._object(r)},_number:function(r){return a("number:"+r.toString())},_xml:function(r){return a("xml:"+r.toString())},_null:function(){return a("Null")},_undefined:function(){return a("Undefined")},_regexp:function(r){return a("regex:"+r.toString())},_uint8array:function(r){return a("uint8array:"),this.dispatch(Array.prototype.slice.call(r))},_uint8clampedarray:function(r){return a("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(r))},_int8array:function(r){return a("int8array:"),this.dispatch(Array.prototype.slice.call(r))},_uint16array:function(r){return a("uint16array:"),this.dispatch(Array.prototype.slice.call(r))},_int16array:function(r){return a("int16array:"),this.dispatch(Array.prototype.slice.call(r))},_uint32array:function(r){return a("uint32array:"),this.dispatch(Array.prototype.slice.call(r))},_int32array:function(r){return a("int32array:"),this.dispatch(Array.prototype.slice.call(r))},_float32array:function(r){return a("float32array:"),this.dispatch(Array.prototype.slice.call(r))},_float64array:function(r){return a("float64array:"),this.dispatch(Array.prototype.slice.call(r))},_arraybuffer:function(r){return a("arraybuffer:"),this.dispatch(new Uint8Array(r))},_url:function(r){return a("url:"+r.toString(),"utf8")},_map:function(r){a("map:");var i=Array.from(r);return this._array(i,e.unorderedSets!==!1)},_set:function(r){a("set:");var i=Array.from(r);return this._array(i,e.unorderedSets!==!1)},_file:function(r){return a("file:"),this.dispatch([r.name,r.size,r.type,r.lastModfied])},_blob:function(){if(e.ignoreUnknown)return a("[blob]");throw Error(`Hashing Blob objects is currently not supported +`)}`)}}};qA.handleErrorToastAction=BQ});var La=E(Pr=>{"use strict";Object.defineProperty(Pr,"__esModule",{value:!0});Pr.usePromise=void 0;var Dt=require("react"),Pt=require("@raycast/api"),hQ=a2(),Wt=it(),IQ=Rn();function fQ(e,A,t){let a=(0,Dt.useRef)(0),[r,i]=(0,Dt.useState)({isLoading:!0}),s=(0,Wt.useLatest)(e),n=(0,Wt.useLatest)(t?.abortable),o=(0,Wt.useLatest)(A||[]),d=(0,Wt.useLatest)(t?.onError),l=(0,Wt.useLatest)(t?.onData),p=(0,Wt.useLatest)(t?.onWillExecute),g=(0,Wt.useLatest)(r.data),c=(0,Dt.useRef)(),u=(0,Dt.useCallback)((...w)=>{let I=++a.current;return n.current&&(n.current.current?.abort(),n.current.current=new AbortController),p.current?.(w),i(y=>({...y,isLoading:!0})),wQ(s.current)(...w).then(y=>(I===a.current&&(l.current&&l.current(y),i({data:y,isLoading:!1})),y),y=>(y.name=="AbortError"||I===a.current&&(d.current?d.current(y):(console.error(y),Pt.environment.launchType!==Pt.LaunchType.Background&&(0,Pt.showToast)({style:Pt.Toast.Style.Failure,title:"Failed to fetch latest data",message:y.message,primaryAction:{title:"Retry",onAction(S){S.hide(),c.current?.(...o.current||[])}},secondaryAction:(0,IQ.handleErrorToastAction)(y)})),i({error:y,isLoading:!1})),y))},[n,l,d,o,s,i,c,p]);c.current=u;let Q=(0,Dt.useCallback)(()=>u(...o.current||[]),[u,o]),C=(0,Dt.useCallback)(async(w,I)=>{let y;try{if(I?.optimisticUpdate){typeof I?.rollbackOnError!="function"&&I?.rollbackOnError!==!1&&(y=structuredClone(g.current?.value));let S=I.optimisticUpdate;i(k=>({...k,data:S(k.data)}))}return await w}catch(S){if(typeof I?.rollbackOnError=="function"){let k=I.rollbackOnError;i(x=>({...x,data:k(x.data)}))}else I?.optimisticUpdate&&I?.rollbackOnError!==!1&&i(k=>({...k,data:y}));throw S}finally{I?.shouldRevalidateAfter!==!1&&(Pt.environment.launchType===Pt.LaunchType.Background||Pt.environment.commandMode==="menu-bar"?await Q():Q())}},[Q,g,i]);(0,Dt.useEffect)(()=>{t?.execute!==!1?u(...A||[]):n.current&&n.current.current?.abort()},[(0,hQ.useDeepMemo)([A,t?.execute,u]),n]),(0,Dt.useEffect)(()=>()=>{n.current&&n.current.current?.abort()},[n]);let m=t?.execute!==!1?r.isLoading:!1;return{...{...r,isLoading:m},revalidate:Q,mutate:C}}Pr.usePromise=fQ;function wQ(e){return e===Promise.all||e===Promise.race||e===Promise.resolve||e===Promise.reject?e.bind(Promise):e}});var Zr=E(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.useCachedState=void 0;var vn=require("react"),yQ=require("@raycast/api"),Nn=it();function DQ(e,A){let t=this[e];return t instanceof Date?`__raycast_cached_date__${t.toString()}`:Buffer.isBuffer(t)?`__raycast_cached_buffer__${t.toString("base64")}`:A}function RQ(e,A){return typeof A=="string"&&A.startsWith("__raycast_cached_date__")?new Date(A.replace("__raycast_cached_date__","")):typeof A=="string"&&A.startsWith("__raycast_cached_buffer__")?Buffer.from(A.replace("__raycast_cached_buffer__",""),"base64"):A}var vQ=Symbol("cache without namespace"),i2=new Map;function NQ(e,A,t){let a=t?.cacheNamespace||vQ,r=i2.get(a)||i2.set(a,new yQ.Cache({namespace:t?.cacheNamespace})).get(a);if(!r)throw new Error("Missing cache");let i=(0,Nn.useLatest)(e),s=(0,Nn.useLatest)(A),n=(0,vn.useSyncExternalStore)(r.subscribe,()=>{try{return r.get(i.current)}catch(p){console.error("Could not get Cache data:",p);return}}),o=(0,vn.useMemo)(()=>{if(typeof n<"u"){if(n==="undefined")return;try{return JSON.parse(n,RQ)}catch(p){return console.warn("The cached data is corrupted",p),s.current}}else return s.current},[n,s]),d=(0,Nn.useLatest)(o),l=(0,vn.useCallback)(p=>{let g=typeof p=="function"?p(d.current):p;if(typeof g>"u")r.set(i.current,"undefined");else{let c=JSON.stringify(g,DQ);r.set(i.current,c)}return g},[r,i,d]);return[o,l]}Wr.useCachedState=NQ});var Fn=E((Zt,p2)=>{"use strict";var Sn=require("crypto");Zt=p2.exports=Ua;function Ua(e,A){return A=o2(e,A),SQ(e,A)}Zt.sha1=function(e){return Ua(e)};Zt.keys=function(e){return Ua(e,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})};Zt.MD5=function(e){return Ua(e,{algorithm:"md5",encoding:"hex"})};Zt.keysMD5=function(e){return Ua(e,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var D1=Sn.getHashes?Sn.getHashes().slice():["sha1","md5"];D1.push("passthrough");var s2=["buffer","hex","binary","base64"];function o2(e,A){A=A||{};var t={};if(t.algorithm=A.algorithm||"sha1",t.encoding=A.encoding||"hex",t.excludeValues=!!A.excludeValues,t.algorithm=t.algorithm.toLowerCase(),t.encoding=t.encoding.toLowerCase(),t.ignoreUnknown=A.ignoreUnknown===!0,t.respectType=A.respectType!==!1,t.respectFunctionNames=A.respectFunctionNames!==!1,t.respectFunctionProperties=A.respectFunctionProperties!==!1,t.unorderedArrays=A.unorderedArrays===!0,t.unorderedSets=A.unorderedSets!==!1,t.unorderedObjects=A.unorderedObjects!==!1,t.replacer=A.replacer||void 0,t.excludeKeys=A.excludeKeys||void 0,typeof e>"u")throw new Error("Object argument required.");for(var a=0;a<D1.length;++a)D1[a].toLowerCase()===t.algorithm.toLowerCase()&&(t.algorithm=D1[a]);if(D1.indexOf(t.algorithm)===-1)throw new Error('Algorithm "'+t.algorithm+'" not supported. supported values: '+D1.join(", "));if(s2.indexOf(t.encoding)===-1&&t.algorithm!=="passthrough")throw new Error('Encoding "'+t.encoding+'" not supported. supported values: '+s2.join(", "));return t}function n2(e){if(typeof e!="function")return!1;var A=/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i;return A.exec(Function.prototype.toString.call(e))!=null}function SQ(e,A){var t;A.algorithm!=="passthrough"?t=Sn.createHash(A.algorithm):t=new d2,typeof t.write>"u"&&(t.write=t.update,t.end=t.update);var a=bn(A,t);if(a.dispatch(e),t.update||t.end(""),t.digest)return t.digest(A.encoding==="buffer"?void 0:A.encoding);var r=t.read();return A.encoding==="buffer"?r:r.toString(A.encoding)}Zt.writeToStream=function(e,A,t){return typeof t>"u"&&(t=A,A={}),A=o2(e,A),bn(A,t).dispatch(e)};function bn(e,A,t){t=t||[];var a=function(r){return A.update?A.update(r,"utf8"):A.write(r,"utf8")};return{dispatch:function(r){e.replacer&&(r=e.replacer(r));var i=typeof r;return r===null&&(i="null"),this["_"+i](r)},_object:function(r){var i=/\[object (.*)\]/i,s=Object.prototype.toString.call(r),n=i.exec(s);n?n=n[1]:n="unknown:["+s+"]",n=n.toLowerCase();var o=null;if((o=t.indexOf(r))>=0)return this.dispatch("[CIRCULAR:"+o+"]");if(t.push(r),typeof Buffer<"u"&&Buffer.isBuffer&&Buffer.isBuffer(r))return a("buffer:"),a(r);if(n!=="object"&&n!=="function"&&n!=="asyncfunction")if(this["_"+n])this["_"+n](r);else{if(e.ignoreUnknown)return a("["+n+"]");throw new Error('Unknown object type "'+n+'"')}else{var d=Object.keys(r);e.unorderedObjects&&(d=d.sort()),e.respectType!==!1&&!n2(r)&&d.splice(0,0,"prototype","__proto__","constructor"),e.excludeKeys&&(d=d.filter(function(p){return!e.excludeKeys(p)})),a("object:"+d.length+":");var l=this;return d.forEach(function(p){l.dispatch(p),a(":"),e.excludeValues||l.dispatch(r[p]),a(",")})}},_array:function(r,i){i=typeof i<"u"?i:e.unorderedArrays!==!1;var s=this;if(a("array:"+r.length+":"),!i||r.length<=1)return r.forEach(function(d){return s.dispatch(d)});var n=[],o=r.map(function(d){var l=new d2,p=t.slice(),g=bn(e,l,p);return g.dispatch(d),n=n.concat(p.slice(t.length)),l.read().toString()});return t=t.concat(n),o.sort(),this._array(o,!1)},_date:function(r){return a("date:"+r.toJSON())},_symbol:function(r){return a("symbol:"+r.toString())},_error:function(r){return a("error:"+r.toString())},_boolean:function(r){return a("bool:"+r.toString())},_string:function(r){a("string:"+r.length+":"),a(r.toString())},_function:function(r){a("fn:"),n2(r)?this.dispatch("[native]"):this.dispatch(r.toString()),e.respectFunctionNames!==!1&&this.dispatch("function-name:"+String(r.name)),e.respectFunctionProperties&&this._object(r)},_number:function(r){return a("number:"+r.toString())},_xml:function(r){return a("xml:"+r.toString())},_null:function(){return a("Null")},_undefined:function(){return a("Undefined")},_regexp:function(r){return a("regex:"+r.toString())},_uint8array:function(r){return a("uint8array:"),this.dispatch(Array.prototype.slice.call(r))},_uint8clampedarray:function(r){return a("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(r))},_int8array:function(r){return a("int8array:"),this.dispatch(Array.prototype.slice.call(r))},_uint16array:function(r){return a("uint16array:"),this.dispatch(Array.prototype.slice.call(r))},_int16array:function(r){return a("int16array:"),this.dispatch(Array.prototype.slice.call(r))},_uint32array:function(r){return a("uint32array:"),this.dispatch(Array.prototype.slice.call(r))},_int32array:function(r){return a("int32array:"),this.dispatch(Array.prototype.slice.call(r))},_float32array:function(r){return a("float32array:"),this.dispatch(Array.prototype.slice.call(r))},_float64array:function(r){return a("float64array:"),this.dispatch(Array.prototype.slice.call(r))},_arraybuffer:function(r){return a("arraybuffer:"),this.dispatch(new Uint8Array(r))},_url:function(r){return a("url:"+r.toString(),"utf8")},_map:function(r){a("map:");var i=Array.from(r);return this._array(i,e.unorderedSets!==!1)},_set:function(r){a("set:");var i=Array.from(r);return this._array(i,e.unorderedSets!==!1)},_file:function(r){return a("file:"),this.dispatch([r.name,r.size,r.type,r.lastModfied])},_blob:function(){if(e.ignoreUnknown)return a("[blob]");throw Error(`Hashing Blob objects is currently not supported (see https://github.com/puleos/object-hash/issues/26) Use "options.replacer" or "options.ignoreUnknown" -`)},_domwindow:function(){return a("domwindow")},_bigint:function(r){return a("bigint:"+r.toString())},_process:function(){return a("process")},_timer:function(){return a("timer")},_pipe:function(){return a("pipe")},_tcp:function(){return a("tcp")},_udp:function(){return a("udp")},_tty:function(){return a("tty")},_statwatcher:function(){return a("statwatcher")},_securecontext:function(){return a("securecontext")},_connection:function(){return a("connection")},_zlib:function(){return a("zlib")},_context:function(){return a("context")},_nodescript:function(){return a("nodescript")},_httpparser:function(){return a("httpparser")},_dataview:function(){return a("dataview")},_signal:function(){return a("signal")},_fsevent:function(){return a("fsevent")},_tlswrap:function(){return a("tlswrap")}}}function B2(){return{buf:"",write:function(e){this.buf+=e},end:function(e){this.buf+=e},read:function(){return this.buf}}}});var ai=E(S1=>{"use strict";var KQ=S1&&S1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(S1,"__esModule",{value:!0});S1.useCachedPromise=void 0;var ti=require("react"),I2=KQ(Gn()),$Q=Ai(),e8=Ja(),A8=dt(),xa=Symbol();function t8(e,A,t){let{initialData:a,keepPreviousData:r,...i}=t||{},s=(0,ti.useRef)(),[n,o]=(0,$Q.useCachedState)((0,I2.default)(A||[]),xa,{cacheNamespace:(0,I2.default)(e)}),d=(0,ti.useRef)(n!==xa?n:a),{mutate:l,revalidate:p,...g}=(0,e8.usePromise)(e,A||[],{...i,onData(C){i.onData&&i.onData(C),s.current="promise",d.current=C,o(C)}}),c=n!==xa?n:a,u=s.current==="promise"?d.current:r?n!==xa?n:d.current:c,Q=(0,A8.useLatest)(u),m=(0,ti.useCallback)(async(C,B)=>{let f;try{if(B?.optimisticUpdate){typeof B?.rollbackOnError!="function"&&B?.rollbackOnError!==!1&&(f=structuredClone(Q.current));let h=B.optimisticUpdate(Q.current);s.current="cache",d.current=h,o(h)}return await l(C,{shouldRevalidateAfter:B?.shouldRevalidateAfter})}catch(h){if(typeof B?.rollbackOnError=="function"){let w=B.rollbackOnError(Q.current);s.current="cache",d.current=w,o(w)}else B?.optimisticUpdate&&B?.rollbackOnError!==!1&&(s.current="cache",d.current=f,o(f));throw h}},[o,l,Q,d,s]);return(0,ti.useEffect)(()=>{n!==xa&&(s.current="cache",d.current=n)},[n]),{data:u,isLoading:g.isLoading,error:g.error,mutate:m,revalidate:p}}S1.useCachedPromise=t8});var y2=E(ri=>{"use strict";var a8=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,f2=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,w2=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;ri.format=r8;ri.parse=s8;ri.test=i8;function r8(e){if(!e||typeof e!="object")throw new TypeError("argument obj is required");var A=e.subtype,t=e.suffix,a=e.type;if(!a||!f2.test(a))throw new TypeError("invalid type");if(!A||!a8.test(A))throw new TypeError("invalid subtype");var r=a+"/"+A;if(t){if(!f2.test(t))throw new TypeError("invalid suffix");r+="+"+t}return r}function i8(e){if(!e)throw new TypeError("argument string is required");if(typeof e!="string")throw new TypeError("argument string is required to be a string");return w2.test(e.toLowerCase())}function s8(e){if(!e)throw new TypeError("argument string is required");if(typeof e!="string")throw new TypeError("argument string is required to be a string");var A=w2.exec(e.toLowerCase());if(!A)throw new TypeError("invalid media type");var t=A[1],a=A[2],r,i=a.lastIndexOf("+");return i!==-1&&(r=a.substr(i+1),a=a.substr(0,i)),new n8(t,a,r)}function n8(e,A,t){this.type=e,this.subtype=A,this.suffix=t}});var N2=E(xn=>{"use strict";var D2=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,o8=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,v2=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,d8=/\\([\u000b\u0020-\u00ff])/g,p8=/([\\"])/g,R2=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;xn.format=l8;xn.parse=g8;function l8(e){if(!e||typeof e!="object")throw new TypeError("argument obj is required");var A=e.parameters,t=e.type;if(!t||!R2.test(t))throw new TypeError("invalid type");var a=t;if(A&&typeof A=="object")for(var r,i=Object.keys(A).sort(),s=0;s<i.length;s++){if(r=i[s],!v2.test(r))throw new TypeError("invalid parameter name");a+="; "+r+"="+u8(A[r])}return a}function g8(e){if(!e)throw new TypeError("argument string is required");var A=typeof e=="object"?c8(e):e;if(typeof A!="string")throw new TypeError("argument string is required to be a string");var t=A.indexOf(";"),a=t!==-1?A.slice(0,t).trim():A.trim();if(!R2.test(a))throw new TypeError("invalid media type");var r=new E8(a.toLowerCase());if(t!==-1){var i,s,n;for(D2.lastIndex=t;s=D2.exec(A);){if(s.index!==t)throw new TypeError("invalid parameter format");t+=s[0].length,i=s[1].toLowerCase(),n=s[2],n.charCodeAt(0)===34&&(n=n.slice(1,-1),n.indexOf("\\")!==-1&&(n=n.replace(d8,"$1"))),r.parameters[i]=n}if(t!==A.length)throw new TypeError("invalid parameter format")}return r}function c8(e){var A;if(typeof e.getHeader=="function"?A=e.getHeader("content-type"):typeof e.headers=="object"&&(A=e.headers&&e.headers["content-type"]),typeof A!="string")throw new TypeError("content-type header is missing from object");return A}function u8(e){var A=String(e);if(v2.test(A))return A;if(A.length>0&&!o8.test(A))throw new TypeError("invalid parameter value");return'"'+A.replace(p8,"\\$1")+'"'}function E8(e){this.parameters=Object.create(null),this.type=e}});var F2=E((ob,S2)=>{"use strict";var ne={};S2.exports=ne;function b2(e){return e<0?-1:1}function Q8(e){return e%1===.5&&(e&1)===0?Math.floor(e):Math.round(e)}function St(e,A){A.unsigned||--e;let t=A.unsigned?0:-Math.pow(2,e),a=Math.pow(2,e)-1,r=A.moduloBitLength?Math.pow(2,A.moduloBitLength):Math.pow(2,e),i=A.moduloBitLength?Math.pow(2,A.moduloBitLength-1):Math.pow(2,e-1);return function(s,n){n||(n={});let o=+s;if(n.enforceRange){if(!Number.isFinite(o))throw new TypeError("Argument is not a finite number");if(o=b2(o)*Math.floor(Math.abs(o)),o<t||o>a)throw new TypeError("Argument is not in byte range");return o}if(!isNaN(o)&&n.clamp)return o=Q8(o),o<t&&(o=t),o>a&&(o=a),o;if(!Number.isFinite(o)||o===0)return 0;if(o=b2(o)*Math.floor(Math.abs(o)),o=o%r,!A.unsigned&&o>=i)return o-r;if(A.unsigned){if(o<0)o+=r;else if(o===-0)return 0}return o}}ne.void=function(){};ne.boolean=function(e){return!!e};ne.byte=St(8,{unsigned:!1});ne.octet=St(8,{unsigned:!0});ne.short=St(16,{unsigned:!1});ne["unsigned short"]=St(16,{unsigned:!0});ne.long=St(32,{unsigned:!1});ne["unsigned long"]=St(32,{unsigned:!0});ne["long long"]=St(32,{unsigned:!1,moduloBitLength:64});ne["unsigned long long"]=St(32,{unsigned:!0,moduloBitLength:64});ne.double=function(e){let A=+e;if(!Number.isFinite(A))throw new TypeError("Argument is not a finite floating-point value");return A};ne["unrestricted double"]=function(e){let A=+e;if(isNaN(A))throw new TypeError("Argument is NaN");return A};ne.float=ne.double;ne["unrestricted float"]=ne["unrestricted double"];ne.DOMString=function(e,A){return A||(A={}),A.treatNullAsEmptyString&&e===null?"":String(e)};ne.ByteString=function(e,A){let t=String(e),a;for(let r=0;(a=t.codePointAt(r))!==void 0;++r)if(a>255)throw new TypeError("Argument is not a valid bytestring");return t};ne.USVString=function(e){let A=String(e),t=A.length,a=[];for(let r=0;r<t;++r){let i=A.charCodeAt(r);if(i<55296||i>57343)a.push(String.fromCodePoint(i));else if(56320<=i&&i<=57343)a.push(String.fromCodePoint(65533));else if(r===t-1)a.push(String.fromCodePoint(65533));else{let s=A.charCodeAt(r+1);if(56320<=s&&s<=57343){let n=i&1023,o=s&1023;a.push(String.fromCodePoint(65536+1024*n+o)),++r}else a.push(String.fromCodePoint(65533))}}return a.join("")};ne.Date=function(e,A){if(!(e instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(e))return e};ne.RegExp=function(e,A){return e instanceof RegExp||(e=new RegExp(e)),e}});var k2=E((db,Ft)=>{"use strict";Ft.exports.mixin=function(A,t){let a=Object.getOwnPropertyNames(t);for(let r=0;r<a.length;++r)Object.defineProperty(A,a[r],Object.getOwnPropertyDescriptor(t,a[r]))};Ft.exports.wrapperSymbol=Symbol("wrapper");Ft.exports.implSymbol=Symbol("impl");Ft.exports.wrapperForImpl=function(e){return e[Ft.exports.wrapperSymbol]};Ft.exports.implForWrapper=function(e){return e[Ft.exports.implSymbol]}});var L2=E((pb,C8)=>{C8.exports=[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1e3,1e3],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6e3],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8e3,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8e3]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9e3],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[3e4]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13e3,13e3],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43e3,43e3],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64e3,64e3],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66e3,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[12e4,12e4],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128e3,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23e3]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149e3]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32e3]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195e3,195e3],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[4e4]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918e3,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]});var J2=E((lb,si)=>{"use strict";var T2=require("punycode"),U2=L2(),F1={TRANSITIONAL:0,NONTRANSITIONAL:1};function M2(e){return e.split("\0").map(function(A){return A.normalize("NFC")}).join("\0")}function V2(e){for(var A=0,t=U2.length-1;A<=t;){var a=Math.floor((A+t)/2),r=U2[a];if(r[0][0]<=e&&r[0][1]>=e)return r;r[0][0]>e?t=a-1:A=a+1}return null}var m8=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function Y2(e){return e.replace(m8,"_").length}function B8(e,A,t){for(var a=!1,r="",i=Y2(e),s=0;s<i;++s){var n=e.codePointAt(s),o=V2(n);switch(o[1]){case"disallowed":a=!0,r+=String.fromCodePoint(n);break;case"ignored":break;case"mapped":r+=String.fromCodePoint.apply(String,o[2]);break;case"deviation":t===F1.TRANSITIONAL?r+=String.fromCodePoint.apply(String,o[2]):r+=String.fromCodePoint(n);break;case"valid":r+=String.fromCodePoint(n);break;case"disallowed_STD3_mapped":A?(a=!0,r+=String.fromCodePoint(n)):r+=String.fromCodePoint.apply(String,o[2]);break;case"disallowed_STD3_valid":A&&(a=!0),r+=String.fromCodePoint(n);break}}return{string:r,error:a}}var h8=/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;function I8(e,A){e.substr(0,4)==="xn--"&&(e=T2.toUnicode(e),A=F1.NONTRANSITIONAL);var t=!1;(M2(e)!==e||e[3]==="-"&&e[4]==="-"||e[0]==="-"||e[e.length-1]==="-"||e.indexOf(".")!==-1||e.search(h8)===0)&&(t=!0);for(var a=Y2(e),r=0;r<a;++r){var i=V2(e.codePointAt(r));if(ii===F1.TRANSITIONAL&&i[1]!=="valid"||ii===F1.NONTRANSITIONAL&&i[1]!=="valid"&&i[1]!=="deviation"){t=!0;break}}return{label:e,error:t}}function ii(e,A,t){var a=B8(e,A,t);a.string=M2(a.string);for(var r=a.string.split("."),i=0;i<r.length;++i)try{var s=I8(r[i]);r[i]=s.label,a.error=a.error||s.error}catch{a.error=!0}return{string:r.join("."),error:a.error}}si.exports.toASCII=function(e,A,t,a){var r=ii(e,A,t),i=r.string.split(".");if(i=i.map(function(o){try{return T2.toASCII(o)}catch{return r.error=!0,o}}),a){var s=i.slice(0,i.length-1).join(".").length;(s.length>253||s.length===0)&&(r.error=!0);for(var n=0;n<i.length;++n)if(i.length>63||i.length===0){r.error=!0;break}}return r.error?null:i.join(".")};si.exports.toUnicode=function(e,A){var t=ii(e,A,F1.NONTRANSITIONAL);return{domain:t.string,error:t.error}};si.exports.PROCESSING_OPTIONS=F1});var PA=E((gb,rA)=>{"use strict";var k1=require("punycode"),G2=J2(),H2={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443},J=Symbol("failure");function x2(e){return k1.ucs2.decode(e).length}function _2(e,A){let t=e[A];return isNaN(t)?void 0:String.fromCodePoint(t)}function qa(e){return e>=48&&e<=57}function Ha(e){return e>=65&&e<=90||e>=97&&e<=122}function f8(e){return Ha(e)||qa(e)}function UA(e){return qa(e)||e>=65&&e<=70||e>=97&&e<=102}function q2(e){return e==="."||e.toLowerCase()==="%2e"}function w8(e){return e=e.toLowerCase(),e===".."||e==="%2e."||e===".%2e"||e==="%2e%2e"}function y8(e,A){return Ha(e)&&(A===58||A===124)}function O2(e){return e.length===2&&Ha(e.codePointAt(0))&&(e[1]===":"||e[1]==="|")}function D8(e){return e.length===2&&Ha(e.codePointAt(0))&&e[1]===":"}function v8(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/)!==-1}function R8(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)!==-1}function _n(e){return H2[e]!==void 0}function Be(e){return _n(e.scheme)}function N8(e){return H2[e]}function P2(e){let A=e.toString(16).toUpperCase();return A.length===1&&(A="0"+A),"%"+A}function b8(e){let A=new Buffer(e),t="";for(let a=0;a<A.length;++a)t+=P2(A[a]);return t}function S8(e){let A=new Buffer(e),t=[];for(let a=0;a<A.length;++a)A[a]!==37?t.push(A[a]):A[a]===37&&UA(A[a+1])&&UA(A[a+2])?(t.push(parseInt(A.slice(a+1,a+3).toString(),16)),a+=2):t.push(A[a]);return new Buffer(t).toString()}function ni(e){return e<=31||e>126}var F8=new Set([32,34,35,60,62,63,96,123,125]);function W2(e){return ni(e)||F8.has(e)}var k8=new Set([47,58,59,61,64,91,92,93,94,124]);function Hn(e){return W2(e)||k8.has(e)}function $t(e,A){let t=String.fromCodePoint(e);return A(e)?b8(t):t}function L8(e){let A=10;return e.length>=2&&e.charAt(0)==="0"&&e.charAt(1).toLowerCase()==="x"?(e=e.substring(2),A=16):e.length>=2&&e.charAt(0)==="0"&&(e=e.substring(1),A=8),e===""?0:(A===10?/[^0-9]/:A===16?/[^0-9A-Fa-f]/:/[^0-7]/).test(e)?J:parseInt(e,A)}function U8(e){let A=e.split(".");if(A[A.length-1]===""&&A.length>1&&A.pop(),A.length>4)return e;let t=[];for(let i of A){if(i==="")return e;let s=L8(i);if(s===J)return e;t.push(s)}for(let i=0;i<t.length-1;++i)if(t[i]>255)return J;if(t[t.length-1]>=Math.pow(256,5-t.length))return J;let a=t.pop(),r=0;for(let i of t)a+=i*Math.pow(256,3-r),++r;return a}function T8(e){let A="",t=e;for(let a=1;a<=4;++a)A=String(t%256)+A,a!==4&&(A="."+A),t=Math.floor(t/256);return A}function M8(e){let A=[0,0,0,0,0,0,0,0],t=0,a=null,r=0;if(e=k1.ucs2.decode(e),e[r]===58){if(e[r+1]!==58)return J;r+=2,++t,a=t}for(;r<e.length;){if(t===8)return J;if(e[r]===58){if(a!==null)return J;++r,++t,a=t;continue}let i=0,s=0;for(;s<4&&UA(e[r]);)i=i*16+parseInt(_2(e,r),16),++r,++s;if(e[r]===46){if(s===0||(r-=s,t>6))return J;let n=0;for(;e[r]!==void 0;){let o=null;if(n>0)if(e[r]===46&&n<4)++r;else return J;if(!qa(e[r]))return J;for(;qa(e[r]);){let d=parseInt(_2(e,r));if(o===null)o=d;else{if(o===0)return J;o=o*10+d}if(o>255)return J;++r}A[t]=A[t]*256+o,++n,(n===2||n===4)&&++t}if(n!==4)return J;break}else if(e[r]===58){if(++r,e[r]===void 0)return J}else if(e[r]!==void 0)return J;A[t]=i,++t}if(a!==null){let i=t-a;for(t=7;t!==0&&i>0;){let s=A[a+i-1];A[a+i-1]=A[t],A[t]=s,--t,--i}}else if(a===null&&t!==8)return J;return A}function V8(e){let A="",a=J8(e).idx,r=!1;for(let i=0;i<=7;++i)if(!(r&&e[i]===0)){if(r&&(r=!1),a===i){A+=i===0?"::":":",r=!0;continue}A+=e[i].toString(16),i!==7&&(A+=":")}return A}function qn(e,A){if(e[0]==="[")return e[e.length-1]!=="]"?J:M8(e.substring(1,e.length-1));if(!A)return Y8(e);let t=S8(e),a=G2.toASCII(t,!1,G2.PROCESSING_OPTIONS.NONTRANSITIONAL,!1);if(a===null||v8(a))return J;let r=U8(a);return typeof r=="number"||r===J?r:a}function Y8(e){if(R8(e))return J;let A="",t=k1.ucs2.decode(e);for(let a=0;a<t.length;++a)A+=$t(t[a],ni);return A}function J8(e){let A=null,t=1,a=null,r=0;for(let i=0;i<e.length;++i)e[i]!==0?(r>t&&(A=a,t=r),a=null,r=0):(a===null&&(a=i),++r);return r>t&&(A=a,t=r),{idx:A,len:t}}function On(e){return typeof e=="number"?T8(e):e instanceof Array?"["+V8(e)+"]":e}function G8(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}function x8(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}function j2(e){let A=e.path;A.length!==0&&(e.scheme==="file"&&A.length===1&&q8(A[0])||A.pop())}function Z2(e){return e.username!==""||e.password!==""}function _8(e){return e.host===null||e.host===""||e.cannotBeABaseURL||e.scheme==="file"}function q8(e){return/^[A-Za-z]:$/.test(e)}function oe(e,A,t,a,r){if(this.pointer=0,this.input=e,this.base=A||null,this.encodingOverride=t||"utf-8",this.stateOverride=r,this.url=a,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};let s=G8(this.input);s!==this.input&&(this.parseError=!0),this.input=s}let i=x8(this.input);for(i!==this.input&&(this.parseError=!0),this.input=i,this.state=r||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=k1.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){let s=this.input[this.pointer],n=isNaN(s)?void 0:String.fromCodePoint(s),o=this["parse "+this.state](s,n);if(o){if(o===J){this.failure=!0;break}}else break}}oe.prototype["parse scheme start"]=function(A,t){if(Ha(A))this.buffer+=t.toLowerCase(),this.state="scheme";else if(!this.stateOverride)this.state="no scheme",--this.pointer;else return this.parseError=!0,J;return!0};oe.prototype["parse scheme"]=function(A,t){if(f8(A)||A===43||A===45||A===46)this.buffer+=t.toLowerCase();else if(A===58){if(this.stateOverride&&(Be(this.url)&&!_n(this.buffer)||!Be(this.url)&&_n(this.buffer)||(Z2(this.url)||this.url.port!==null)&&this.buffer==="file"||this.url.scheme==="file"&&(this.url.host===""||this.url.host===null))||(this.url.scheme=this.buffer,this.buffer="",this.stateOverride))return!1;this.url.scheme==="file"?((this.input[this.pointer+1]!==47||this.input[this.pointer+2]!==47)&&(this.parseError=!0),this.state="file"):Be(this.url)&&this.base!==null&&this.base.scheme===this.url.scheme?this.state="special relative or authority":Be(this.url)?this.state="special authority slashes":this.input[this.pointer+1]===47?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else if(!this.stateOverride)this.buffer="",this.state="no scheme",this.pointer=-1;else return this.parseError=!0,J;return!0};oe.prototype["parse no scheme"]=function(A){return this.base===null||this.base.cannotBeABaseURL&&A!==35?J:(this.base.cannotBeABaseURL&&A===35?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):this.base.scheme==="file"?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)};oe.prototype["parse special relative or authority"]=function(A){return A===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0};oe.prototype["parse path or authority"]=function(A){return A===47?this.state="authority":(this.state="path",--this.pointer),!0};oe.prototype["parse relative"]=function(A){return this.url.scheme=this.base.scheme,isNaN(A)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):A===47?this.state="relative slash":A===63?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):A===35?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):Be(this.url)&&A===92?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0};oe.prototype["parse relative slash"]=function(A){return Be(this.url)&&(A===47||A===92)?(A===92&&(this.parseError=!0),this.state="special authority ignore slashes"):A===47?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer),!0};oe.prototype["parse special authority slashes"]=function(A){return A===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0};oe.prototype["parse special authority ignore slashes"]=function(A){return A!==47&&A!==92?(this.state="authority",--this.pointer):this.parseError=!0,!0};oe.prototype["parse authority"]=function(A,t){if(A===64){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;let a=x2(this.buffer);for(let r=0;r<a;++r){let i=this.buffer.codePointAt(r);if(i===58&&!this.passwordTokenSeenFlag){this.passwordTokenSeenFlag=!0;continue}let s=$t(i,Hn);this.passwordTokenSeenFlag?this.url.password+=s:this.url.username+=s}this.buffer=""}else if(isNaN(A)||A===47||A===63||A===35||Be(this.url)&&A===92){if(this.atFlag&&this.buffer==="")return this.parseError=!0,J;this.pointer-=x2(this.buffer)+1,this.buffer="",this.state="host"}else this.buffer+=t;return!0};oe.prototype["parse hostname"]=oe.prototype["parse host"]=function(A,t){if(this.stateOverride&&this.url.scheme==="file")--this.pointer,this.state="file host";else if(A===58&&!this.arrFlag){if(this.buffer==="")return this.parseError=!0,J;let a=qn(this.buffer,Be(this.url));if(a===J)return J;if(this.url.host=a,this.buffer="",this.state="port",this.stateOverride==="hostname")return!1}else if(isNaN(A)||A===47||A===63||A===35||Be(this.url)&&A===92){if(--this.pointer,Be(this.url)&&this.buffer==="")return this.parseError=!0,J;if(this.stateOverride&&this.buffer===""&&(Z2(this.url)||this.url.port!==null))return this.parseError=!0,!1;let a=qn(this.buffer,Be(this.url));if(a===J)return J;if(this.url.host=a,this.buffer="",this.state="path start",this.stateOverride)return!1}else A===91?this.arrFlag=!0:A===93&&(this.arrFlag=!1),this.buffer+=t;return!0};oe.prototype["parse port"]=function(A,t){if(qa(A))this.buffer+=t;else if(isNaN(A)||A===47||A===63||A===35||Be(this.url)&&A===92||this.stateOverride){if(this.buffer!==""){let a=parseInt(this.buffer);if(a>Math.pow(2,16)-1)return this.parseError=!0,J;this.url.port=a===N8(this.url.scheme)?null:a,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}else return this.parseError=!0,J;return!0};var H8=new Set([47,92,63,35]);oe.prototype["parse file"]=function(A){return this.url.scheme="file",A===47||A===92?(A===92&&(this.parseError=!0),this.state="file slash"):this.base!==null&&this.base.scheme==="file"?isNaN(A)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):A===63?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):A===35?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(this.input.length-this.pointer-1===0||!y8(A,this.input[this.pointer+1])||this.input.length-this.pointer-1>=2&&!H8.has(this.input[this.pointer+2])?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),j2(this.url)):this.parseError=!0,this.state="path",--this.pointer):(this.state="path",--this.pointer),!0};oe.prototype["parse file slash"]=function(A){return A===47||A===92?(A===92&&(this.parseError=!0),this.state="file host"):(this.base!==null&&this.base.scheme==="file"&&(D8(this.base.path[0])?this.url.path.push(this.base.path[0]):this.url.host=this.base.host),this.state="path",--this.pointer),!0};oe.prototype["parse file host"]=function(A,t){if(isNaN(A)||A===47||A===92||A===63||A===35)if(--this.pointer,!this.stateOverride&&O2(this.buffer))this.parseError=!0,this.state="path";else if(this.buffer===""){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let a=qn(this.buffer,Be(this.url));if(a===J)return J;if(a==="localhost"&&(a=""),this.url.host=a,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=t;return!0};oe.prototype["parse path start"]=function(A){return Be(this.url)?(A===92&&(this.parseError=!0),this.state="path",A!==47&&A!==92&&--this.pointer):!this.stateOverride&&A===63?(this.url.query="",this.state="query"):!this.stateOverride&&A===35?(this.url.fragment="",this.state="fragment"):A!==void 0&&(this.state="path",A!==47&&--this.pointer),!0};oe.prototype["parse path"]=function(A){if(isNaN(A)||A===47||Be(this.url)&&A===92||!this.stateOverride&&(A===63||A===35)){if(Be(this.url)&&A===92&&(this.parseError=!0),w8(this.buffer)?(j2(this.url),A!==47&&!(Be(this.url)&&A===92)&&this.url.path.push("")):q2(this.buffer)&&A!==47&&!(Be(this.url)&&A===92)?this.url.path.push(""):q2(this.buffer)||(this.url.scheme==="file"&&this.url.path.length===0&&O2(this.buffer)&&(this.url.host!==""&&this.url.host!==null&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)),this.buffer="",this.url.scheme==="file"&&(A===void 0||A===63||A===35))for(;this.url.path.length>1&&this.url.path[0]==="";)this.parseError=!0,this.url.path.shift();A===63&&(this.url.query="",this.state="query"),A===35&&(this.url.fragment="",this.state="fragment")}else A===37&&(!UA(this.input[this.pointer+1])||!UA(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=$t(A,W2);return!0};oe.prototype["parse cannot-be-a-base-URL path"]=function(A){return A===63?(this.url.query="",this.state="query"):A===35?(this.url.fragment="",this.state="fragment"):(!isNaN(A)&&A!==37&&(this.parseError=!0),A===37&&(!UA(this.input[this.pointer+1])||!UA(this.input[this.pointer+2]))&&(this.parseError=!0),isNaN(A)||(this.url.path[0]=this.url.path[0]+$t(A,ni))),!0};oe.prototype["parse query"]=function(A,t){if(isNaN(A)||!this.stateOverride&&A===35){(!Be(this.url)||this.url.scheme==="ws"||this.url.scheme==="wss")&&(this.encodingOverride="utf-8");let a=new Buffer(this.buffer);for(let r=0;r<a.length;++r)a[r]<33||a[r]>126||a[r]===34||a[r]===35||a[r]===60||a[r]===62?this.url.query+=P2(a[r]):this.url.query+=String.fromCodePoint(a[r]);this.buffer="",A===35&&(this.url.fragment="",this.state="fragment")}else A===37&&(!UA(this.input[this.pointer+1])||!UA(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=t;return!0};oe.prototype["parse fragment"]=function(A){return isNaN(A)||(A===0?this.parseError=!0:(A===37&&(!UA(this.input[this.pointer+1])||!UA(this.input[this.pointer+2]))&&(this.parseError=!0),this.url.fragment+=$t(A,ni))),!0};function O8(e,A){let t=e.scheme+":";if(e.host!==null?(t+="//",(e.username!==""||e.password!=="")&&(t+=e.username,e.password!==""&&(t+=":"+e.password),t+="@"),t+=On(e.host),e.port!==null&&(t+=":"+e.port)):e.host===null&&e.scheme==="file"&&(t+="//"),e.cannotBeABaseURL)t+=e.path[0];else for(let a of e.path)t+="/"+a;return e.query!==null&&(t+="?"+e.query),!A&&e.fragment!==null&&(t+="#"+e.fragment),t}function P8(e){let A=e.scheme+"://";return A+=On(e.host),e.port!==null&&(A+=":"+e.port),A}rA.exports.serializeURL=O8;rA.exports.serializeURLOrigin=function(e){switch(e.scheme){case"blob":try{return rA.exports.serializeURLOrigin(rA.exports.parseURL(e.path[0]))}catch{return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return P8({scheme:e.scheme,host:e.host,port:e.port});case"file":return"file://";default:return"null"}};rA.exports.basicURLParse=function(e,A){A===void 0&&(A={});let t=new oe(e,A.baseURL,A.encodingOverride,A.url,A.stateOverride);return t.failure?"failure":t.url};rA.exports.setTheUsername=function(e,A){e.username="";let t=k1.ucs2.decode(A);for(let a=0;a<t.length;++a)e.username+=$t(t[a],Hn)};rA.exports.setThePassword=function(e,A){e.password="";let t=k1.ucs2.decode(A);for(let a=0;a<t.length;++a)e.password+=$t(t[a],Hn)};rA.exports.serializeHost=On;rA.exports.cannotHaveAUsernamePasswordPort=_8;rA.exports.serializeInteger=function(e){return String(e)};rA.exports.parseURL=function(e,A){return A===void 0&&(A={}),rA.exports.basicURLParse(e,{baseURL:A.baseURL,encodingOverride:A.encodingOverride})}});var z2=E(X2=>{"use strict";var de=PA();X2.implementation=class{constructor(A){let t=A[0],a=A[1],r=null;if(a!==void 0&&(r=de.basicURLParse(a),r==="failure"))throw new TypeError("Invalid base URL");let i=de.basicURLParse(t,{baseURL:r});if(i==="failure")throw new TypeError("Invalid URL");this._url=i}get href(){return de.serializeURL(this._url)}set href(A){let t=de.basicURLParse(A);if(t==="failure")throw new TypeError("Invalid URL");this._url=t}get origin(){return de.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(A){de.basicURLParse(A+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(A){de.cannotHaveAUsernamePasswordPort(this._url)||de.setTheUsername(this._url,A)}get password(){return this._url.password}set password(A){de.cannotHaveAUsernamePasswordPort(this._url)||de.setThePassword(this._url,A)}get host(){let A=this._url;return A.host===null?"":A.port===null?de.serializeHost(A.host):de.serializeHost(A.host)+":"+de.serializeInteger(A.port)}set host(A){this._url.cannotBeABaseURL||de.basicURLParse(A,{url:this._url,stateOverride:"host"})}get hostname(){return this._url.host===null?"":de.serializeHost(this._url.host)}set hostname(A){this._url.cannotBeABaseURL||de.basicURLParse(A,{url:this._url,stateOverride:"hostname"})}get port(){return this._url.port===null?"":de.serializeInteger(this._url.port)}set port(A){de.cannotHaveAUsernamePasswordPort(this._url)||(A===""?this._url.port=null:de.basicURLParse(A,{url:this._url,stateOverride:"port"}))}get pathname(){return this._url.cannotBeABaseURL?this._url.path[0]:this._url.path.length===0?"":"/"+this._url.path.join("/")}set pathname(A){this._url.cannotBeABaseURL||(this._url.path=[],de.basicURLParse(A,{url:this._url,stateOverride:"path start"}))}get search(){return this._url.query===null||this._url.query===""?"":"?"+this._url.query}set search(A){let t=this._url;if(A===""){t.query=null;return}let a=A[0]==="?"?A.substring(1):A;t.query="",de.basicURLParse(a,{url:t,stateOverride:"query"})}get hash(){return this._url.fragment===null||this._url.fragment===""?"":"#"+this._url.fragment}set hash(A){if(A===""){this._url.fragment=null;return}let t=A[0]==="#"?A.substring(1):A;this._url.fragment="",de.basicURLParse(t,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}});var el=E((Eb,Oa)=>{"use strict";var BA=F2(),$2=k2(),K2=z2(),K=$2.implSymbol;function ye(e){if(!this||this[K]||!(this instanceof ye))throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");if(arguments.length<1)throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.");let A=[];for(let t=0;t<arguments.length&&t<2;++t)A[t]=arguments[t];A[0]=BA.USVString(A[0]),A[1]!==void 0&&(A[1]=BA.USVString(A[1])),Oa.exports.setup(this,A)}ye.prototype.toJSON=function(){if(!this||!Oa.exports.is(this))throw new TypeError("Illegal invocation");let A=[];for(let t=0;t<arguments.length&&t<0;++t)A[t]=arguments[t];return this[K].toJSON.apply(this[K],A)};Object.defineProperty(ye.prototype,"href",{get(){return this[K].href},set(e){e=BA.USVString(e),this[K].href=e},enumerable:!0,configurable:!0});ye.prototype.toString=function(){if(!this||!Oa.exports.is(this))throw new TypeError("Illegal invocation");return this.href};Object.defineProperty(ye.prototype,"origin",{get(){return this[K].origin},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"protocol",{get(){return this[K].protocol},set(e){e=BA.USVString(e),this[K].protocol=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"username",{get(){return this[K].username},set(e){e=BA.USVString(e),this[K].username=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"password",{get(){return this[K].password},set(e){e=BA.USVString(e),this[K].password=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"host",{get(){return this[K].host},set(e){e=BA.USVString(e),this[K].host=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"hostname",{get(){return this[K].hostname},set(e){e=BA.USVString(e),this[K].hostname=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"port",{get(){return this[K].port},set(e){e=BA.USVString(e),this[K].port=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"pathname",{get(){return this[K].pathname},set(e){e=BA.USVString(e),this[K].pathname=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"search",{get(){return this[K].search},set(e){e=BA.USVString(e),this[K].search=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"hash",{get(){return this[K].hash},set(e){e=BA.USVString(e),this[K].hash=e},enumerable:!0,configurable:!0});Oa.exports={is(e){return!!e&&e[K]instanceof K2.implementation},create(e,A){let t=Object.create(ye.prototype);return this.setup(t,e,A),t},setup(e,A,t){t||(t={}),t.wrapper=e,e[K]=new K2.implementation(A,t),e[K][$2.wrapperSymbol]=e},interface:ye,expose:{Window:{URL:ye},Worker:{URL:ye}}}});var Al=E(WA=>{"use strict";WA.URL=el().interface;WA.serializeURL=PA().serializeURL;WA.serializeURLOrigin=PA().serializeURLOrigin;WA.basicURLParse=PA().basicURLParse;WA.setTheUsername=PA().setTheUsername;WA.setThePassword=PA().setThePassword;WA.serializeHost=PA().serializeHost;WA.serializeInteger=PA().serializeInteger;WA.parseURL=PA().parseURL});var cl=E((jA,gl)=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});function T1(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var TA=T1(require("stream")),il=T1(require("http")),di=T1(require("url")),sl=T1(Al()),W8=T1(require("https")),e1=T1(require("zlib")),j8=TA.Readable,pt=Symbol("buffer"),Pn=Symbol("type"),Wa=class e{constructor(){this[Pn]="";let A=arguments[0],t=arguments[1],a=[],r=0;if(A){let s=A,n=Number(s.length);for(let o=0;o<n;o++){let d=s[o],l;d instanceof Buffer?l=d:ArrayBuffer.isView(d)?l=Buffer.from(d.buffer,d.byteOffset,d.byteLength):d instanceof ArrayBuffer?l=Buffer.from(d):d instanceof e?l=d[pt]:l=Buffer.from(typeof d=="string"?d:String(d)),r+=l.length,a.push(l)}}this[pt]=Buffer.concat(a);let i=t&&t.type!==void 0&&String(t.type).toLowerCase();i&&!/[^\u0020-\u007E]/.test(i)&&(this[Pn]=i)}get size(){return this[pt].length}get type(){return this[Pn]}text(){return Promise.resolve(this[pt].toString())}arrayBuffer(){let A=this[pt],t=A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength);return Promise.resolve(t)}stream(){let A=new j8;return A._read=function(){},A.push(this[pt]),A.push(null),A}toString(){return"[object Blob]"}slice(){let A=this.size,t=arguments[0],a=arguments[1],r,i;t===void 0?r=0:t<0?r=Math.max(A+t,0):r=Math.min(t,A),a===void 0?i=A:a<0?i=Math.max(A+a,0):i=Math.min(a,A);let s=Math.max(i-r,0),o=this[pt].slice(r,r+s),d=new e([],{type:arguments[2]});return d[pt]=o,d}};Object.defineProperties(Wa.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});Object.defineProperty(Wa.prototype,Symbol.toStringTag,{value:"Blob",writable:!1,enumerable:!1,configurable:!0});function Fe(e,A,t){Error.call(this,e),this.message=e,this.type=A,t&&(this.code=this.errno=t.code),Error.captureStackTrace(this,this.constructor)}Fe.prototype=Object.create(Error.prototype);Fe.prototype.constructor=Fe;Fe.prototype.name="FetchError";var Xn;try{Xn=require("encoding").convert}catch{}var gt=Symbol("Body internals"),tl=TA.PassThrough;function De(e){var A=this,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=t.size;let r=a===void 0?0:a;var i=t.timeout;let s=i===void 0?0:i;e==null?e=null:nl(e)?e=Buffer.from(e.toString()):Xa(e)||Buffer.isBuffer(e)||(Object.prototype.toString.call(e)==="[object ArrayBuffer]"?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof TA||(e=Buffer.from(String(e)))),this[gt]={body:e,disturbed:!1,error:null},this.size=r,this.timeout=s,e instanceof TA&&e.on("error",function(n){let o=n.name==="AbortError"?n:new Fe(`Invalid response body while trying to fetch ${A.url}: ${n.message}`,"system",n);A[gt].error=o})}De.prototype={get body(){return this[gt].body},get bodyUsed(){return this[gt].disturbed},arrayBuffer(){return L1.call(this).then(function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)})},blob(){let e=this.headers&&this.headers.get("content-type")||"";return L1.call(this).then(function(A){return Object.assign(new Wa([],{type:e.toLowerCase()}),{[pt]:A})})},json(){var e=this;return L1.call(this).then(function(A){try{return JSON.parse(A.toString())}catch(t){return De.Promise.reject(new Fe(`invalid json response body at ${e.url} reason: ${t.message}`,"invalid-json"))}})},text(){return L1.call(this).then(function(e){return e.toString()})},buffer(){return L1.call(this)},textConverted(){var e=this;return L1.call(this).then(function(A){return Z8(A,e.headers)})}};Object.defineProperties(De.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});De.mixIn=function(e){for(let A of Object.getOwnPropertyNames(De.prototype))if(!(A in e)){let t=Object.getOwnPropertyDescriptor(De.prototype,A);Object.defineProperty(e,A,t)}};function L1(){var e=this;if(this[gt].disturbed)return De.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[gt].disturbed=!0,this[gt].error)return De.Promise.reject(this[gt].error);let A=this.body;if(A===null)return De.Promise.resolve(Buffer.alloc(0));if(Xa(A)&&(A=A.stream()),Buffer.isBuffer(A))return De.Promise.resolve(A);if(!(A instanceof TA))return De.Promise.resolve(Buffer.alloc(0));let t=[],a=0,r=!1;return new De.Promise(function(i,s){let n;e.timeout&&(n=setTimeout(function(){r=!0,s(new Fe(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))},e.timeout)),A.on("error",function(o){o.name==="AbortError"?(r=!0,s(o)):s(new Fe(`Invalid response body while trying to fetch ${e.url}: ${o.message}`,"system",o))}),A.on("data",function(o){if(!(r||o===null)){if(e.size&&a+o.length>e.size){r=!0,s(new Fe(`content size at ${e.url} over limit: ${e.size}`,"max-size"));return}a+=o.length,t.push(o)}}),A.on("end",function(){if(!r){clearTimeout(n);try{i(Buffer.concat(t,a))}catch(o){s(new Fe(`Could not create Buffer from response body for ${e.url}: ${o.message}`,"system",o))}}})})}function Z8(e,A){if(typeof Xn!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let t=A.get("content-type"),a="utf-8",r,i;return t&&(r=/charset=([^;]*)/i.exec(t)),i=e.slice(0,1024).toString(),!r&&i&&(r=/<meta.+?charset=(['"])(.+?)\1/i.exec(i)),!r&&i&&(r=/<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(i),r||(r=/<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i.exec(i),r&&r.pop()),r&&(r=/charset=(.*)/i.exec(r.pop()))),!r&&i&&(r=/<\?xml.+?encoding=(['"])(.+?)\1/i.exec(i)),r&&(a=r.pop(),(a==="gb2312"||a==="gbk")&&(a="gb18030")),Xn(e,"UTF-8",a).toString()}function nl(e){return typeof e!="object"||typeof e.append!="function"||typeof e.delete!="function"||typeof e.get!="function"||typeof e.getAll!="function"||typeof e.has!="function"||typeof e.set!="function"?!1:e.constructor.name==="URLSearchParams"||Object.prototype.toString.call(e)==="[object URLSearchParams]"||typeof e.sort=="function"}function Xa(e){return typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&typeof e.constructor=="function"&&typeof e.constructor.name=="string"&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function ol(e){let A,t,a=e.body;if(e.bodyUsed)throw new Error("cannot clone body after it is used");return a instanceof TA&&typeof a.getBoundary!="function"&&(A=new tl,t=new tl,a.pipe(A),a.pipe(t),e[gt].body=A,a=t),a}function dl(e){return e===null?null:typeof e=="string"?"text/plain;charset=UTF-8":nl(e)?"application/x-www-form-urlencoded;charset=UTF-8":Xa(e)?e.type||null:Buffer.isBuffer(e)||Object.prototype.toString.call(e)==="[object ArrayBuffer]"||ArrayBuffer.isView(e)?null:typeof e.getBoundary=="function"?`multipart/form-data;boundary=${e.getBoundary()}`:e instanceof TA?null:"text/plain;charset=UTF-8"}function pl(e){let A=e.body;return A===null?0:Xa(A)?A.size:Buffer.isBuffer(A)?A.length:A&&typeof A.getLengthSync=="function"&&(A._lengthRetrievers&&A._lengthRetrievers.length==0||A.hasKnownLength&&A.hasKnownLength())?A.getLengthSync():null}function X8(e,A){let t=A.body;t===null?e.end():Xa(t)?t.stream().pipe(e):Buffer.isBuffer(t)?(e.write(t),e.end()):t.pipe(e)}De.Promise=global.Promise;var ll=/[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/,zn=/[^\t\x20-\x7e\x80-\xff]/;function Pa(e){if(e=`${e}`,ll.test(e)||e==="")throw new TypeError(`${e} is not a legal HTTP header name`)}function al(e){if(e=`${e}`,zn.test(e))throw new TypeError(`${e} is not a legal HTTP header value`)}function U1(e,A){A=A.toLowerCase();for(let t in e)if(t.toLowerCase()===A)return t}var ge=Symbol("map"),IA=class e{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0;if(this[ge]=Object.create(null),A instanceof e){let t=A.raw(),a=Object.keys(t);for(let r of a)for(let i of t[r])this.append(r,i);return}if(A!=null)if(typeof A=="object"){let t=A[Symbol.iterator];if(t!=null){if(typeof t!="function")throw new TypeError("Header pairs must be iterable");let a=[];for(let r of A){if(typeof r!="object"||typeof r[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");a.push(Array.from(r))}for(let r of a){if(r.length!==2)throw new TypeError("Each header pair must be a name/value tuple");this.append(r[0],r[1])}}else for(let a of Object.keys(A)){let r=A[a];this.append(a,r)}}else throw new TypeError("Provided initializer must be an object")}get(A){A=`${A}`,Pa(A);let t=U1(this[ge],A);return t===void 0?null:this[ge][t].join(", ")}forEach(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,a=Kn(this),r=0;for(;r<a.length;){var i=a[r];let s=i[0],n=i[1];A.call(t,n,s,this),a=Kn(this),r++}}set(A,t){A=`${A}`,t=`${t}`,Pa(A),al(t);let a=U1(this[ge],A);this[ge][a!==void 0?a:A]=[t]}append(A,t){A=`${A}`,t=`${t}`,Pa(A),al(t);let a=U1(this[ge],A);a!==void 0?this[ge][a].push(t):this[ge][A]=[t]}has(A){return A=`${A}`,Pa(A),U1(this[ge],A)!==void 0}delete(A){A=`${A}`,Pa(A);let t=U1(this[ge],A);t!==void 0&&delete this[ge][t]}raw(){return this[ge]}keys(){return Wn(this,"key")}values(){return Wn(this,"value")}[Symbol.iterator](){return Wn(this,"key+value")}};IA.prototype.entries=IA.prototype[Symbol.iterator];Object.defineProperty(IA.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(IA.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});function Kn(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"key+value";return Object.keys(e[ge]).sort().map(A==="key"?function(a){return a.toLowerCase()}:A==="value"?function(a){return e[ge][a].join(", ")}:function(a){return[a.toLowerCase(),e[ge][a].join(", ")]})}var $n=Symbol("internal");function Wn(e,A){let t=Object.create(eo);return t[$n]={target:e,kind:A,index:0},t}var eo=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==eo)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[$n];let A=e.target,t=e.kind,a=e.index,r=Kn(A,t),i=r.length;return a>=i?{value:void 0,done:!0}:(this[$n].index=a+1,{value:r[a],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(eo,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});function z8(e){let A=Object.assign({__proto__:null},e[ge]),t=U1(e[ge],"Host");return t!==void 0&&(A[t]=A[t][0]),A}function K8(e){let A=new IA;for(let t of Object.keys(e))if(!ll.test(t))if(Array.isArray(e[t]))for(let a of e[t])zn.test(a)||(A[ge][t]===void 0?A[ge][t]=[a]:A[ge][t].push(a));else zn.test(e[t])||(A[ge][t]=[e[t]]);return A}var kt=Symbol("Response internals"),$8=il.STATUS_CODES,hA=class e{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};De.call(this,A,t);let a=t.status||200,r=new IA(t.headers);if(A!=null&&!r.has("Content-Type")){let i=dl(A);i&&r.append("Content-Type",i)}this[kt]={url:t.url,status:a,statusText:t.statusText||$8[a],headers:r,counter:t.counter}}get url(){return this[kt].url||""}get status(){return this[kt].status}get ok(){return this[kt].status>=200&&this[kt].status<300}get redirected(){return this[kt].counter>0}get statusText(){return this[kt].statusText}get headers(){return this[kt].headers}clone(){return new e(ol(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}};De.mixIn(hA.prototype);Object.defineProperties(hA.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});Object.defineProperty(hA.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});var lt=Symbol("Request internals"),e5=di.URL||sl.URL,A5=di.parse,t5=di.format;function jn(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)&&(e=new e5(e).toString()),A5(e)}var a5="destroy"in TA.Readable.prototype;function oi(e){return typeof e=="object"&&typeof e[lt]=="object"}function r5(e){let A=e&&typeof e=="object"&&Object.getPrototypeOf(e);return!!(A&&A.constructor.name==="AbortSignal")}var Ut=class e{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a;oi(A)?a=jn(A.url):(A&&A.href?a=jn(A.href):a=jn(`${A}`),A={});let r=t.method||A.method||"GET";if(r=r.toUpperCase(),(t.body!=null||oi(A)&&A.body!==null)&&(r==="GET"||r==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let i=t.body!=null?t.body:oi(A)&&A.body!==null?ol(A):null;De.call(this,i,{timeout:t.timeout||A.timeout||0,size:t.size||A.size||0});let s=new IA(t.headers||A.headers||{});if(i!=null&&!s.has("Content-Type")){let o=dl(i);o&&s.append("Content-Type",o)}let n=oi(A)?A.signal:null;if("signal"in t&&(n=t.signal),n!=null&&!r5(n))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[lt]={method:r,redirect:t.redirect||A.redirect||"follow",headers:s,parsedURL:a,signal:n},this.follow=t.follow!==void 0?t.follow:A.follow!==void 0?A.follow:20,this.compress=t.compress!==void 0?t.compress:A.compress!==void 0?A.compress:!0,this.counter=t.counter||A.counter||0,this.agent=t.agent||A.agent}get method(){return this[lt].method}get url(){return t5(this[lt].parsedURL)}get headers(){return this[lt].headers}get redirect(){return this[lt].redirect}get signal(){return this[lt].signal}clone(){return new e(this)}};De.mixIn(Ut.prototype);Object.defineProperty(Ut.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(Ut.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}});function i5(e){let A=e[lt].parsedURL,t=new IA(e[lt].headers);if(t.has("Accept")||t.set("Accept","*/*"),!A.protocol||!A.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(A.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof TA.Readable&&!a5)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let a=null;if(e.body==null&&/^(POST|PUT)$/i.test(e.method)&&(a="0"),e.body!=null){let i=pl(e);typeof i=="number"&&(a=String(i))}a&&t.set("Content-Length",a),t.has("User-Agent")||t.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!t.has("Accept-Encoding")&&t.set("Accept-Encoding","gzip,deflate");let r=e.agent;return typeof r=="function"&&(r=r(A)),!t.has("Connection")&&!r&&t.set("Connection","close"),Object.assign({},A,{method:e.method,headers:z8(t),agent:r})}function ja(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}ja.prototype=Object.create(Error.prototype);ja.prototype.constructor=ja;ja.prototype.name="AbortError";var Za=di.URL||sl.URL,rl=TA.PassThrough,s5=function(A,t){let a=new Za(t).hostname,r=new Za(A).hostname;return a===r||a[a.length-r.length-1]==="."&&a.endsWith(r)},n5=function(A,t){let a=new Za(t).protocol,r=new Za(A).protocol;return a===r};function Lt(e,A){if(!Lt.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return De.Promise=Lt.Promise,new Lt.Promise(function(t,a){let r=new Ut(e,A),i=i5(r),s=(i.protocol==="https:"?W8:il).request,n=r.signal,o=null,d=function(){let Q=new ja("The user aborted a request.");a(Q),r.body&&r.body instanceof TA.Readable&&Zn(r.body,Q),!(!o||!o.body)&&o.body.emit("error",Q)};if(n&&n.aborted){d();return}let l=function(){d(),c()},p=s(i),g;n&&n.addEventListener("abort",l);function c(){p.abort(),n&&n.removeEventListener("abort",l),clearTimeout(g)}r.timeout&&p.once("socket",function(u){g=setTimeout(function(){a(new Fe(`network timeout at: ${r.url}`,"request-timeout")),c()},r.timeout)}),p.on("error",function(u){a(new Fe(`request to ${r.url} failed, reason: ${u.message}`,"system",u)),o&&o.body&&Zn(o.body,u),c()}),o5(p,function(u){n&&n.aborted||o&&o.body&&Zn(o.body,u)}),parseInt(process.version.substring(1))<14&&p.on("socket",function(u){u.addListener("close",function(Q){let m=u.listenerCount("data")>0;if(o&&m&&!Q&&!(n&&n.aborted)){let C=new Error("Premature close");C.code="ERR_STREAM_PREMATURE_CLOSE",o.body.emit("error",C)}})}),p.on("response",function(u){clearTimeout(g);let Q=K8(u.headers);if(Lt.isRedirect(u.statusCode)){let h=Q.get("Location"),w=null;try{w=h===null?null:new Za(h,r.url).toString()}catch{if(r.redirect!=="manual"){a(new Fe(`uri requested responds with an invalid redirect URL: ${h}`,"invalid-redirect")),c();return}}switch(r.redirect){case"error":a(new Fe(`uri requested responds with a redirect, redirect mode is set to error: ${r.url}`,"no-redirect")),c();return;case"manual":if(w!==null)try{Q.set("Location",w)}catch(S){a(S)}break;case"follow":if(w===null)break;if(r.counter>=r.follow){a(new Fe(`maximum redirect reached at: ${r.url}`,"max-redirect")),c();return}let v={headers:new IA(r.headers),follow:r.follow,counter:r.counter+1,agent:r.agent,compress:r.compress,method:r.method,body:r.body,signal:r.signal,timeout:r.timeout,size:r.size};if(!s5(r.url,w)||!n5(r.url,w))for(let S of["authorization","www-authenticate","cookie","cookie2"])v.headers.delete(S);if(u.statusCode!==303&&r.body&&pl(r)===null){a(new Fe("Cannot follow redirect with body being a readable stream","unsupported-redirect")),c();return}(u.statusCode===303||(u.statusCode===301||u.statusCode===302)&&r.method==="POST")&&(v.method="GET",v.body=void 0,v.headers.delete("content-length")),t(Lt(new Ut(w,v))),c();return}}u.once("end",function(){n&&n.removeEventListener("abort",l)});let m=u.pipe(new rl),C={url:r.url,status:u.statusCode,statusText:u.statusMessage,headers:Q,size:r.size,timeout:r.timeout,counter:r.counter},B=Q.get("Content-Encoding");if(!r.compress||r.method==="HEAD"||B===null||u.statusCode===204||u.statusCode===304){o=new hA(m,C),t(o);return}let f={flush:e1.Z_SYNC_FLUSH,finishFlush:e1.Z_SYNC_FLUSH};if(B=="gzip"||B=="x-gzip"){m=m.pipe(e1.createGunzip(f)),o=new hA(m,C),t(o);return}if(B=="deflate"||B=="x-deflate"){let h=u.pipe(new rl);h.once("data",function(w){(w[0]&15)===8?m=m.pipe(e1.createInflate()):m=m.pipe(e1.createInflateRaw()),o=new hA(m,C),t(o)}),h.on("end",function(){o||(o=new hA(m,C),t(o))});return}if(B=="br"&&typeof e1.createBrotliDecompress=="function"){m=m.pipe(e1.createBrotliDecompress()),o=new hA(m,C),t(o);return}o=new hA(m,C),t(o)}),X8(p,r)})}function o5(e,A){let t;e.on("socket",function(a){t=a}),e.on("response",function(a){let r=a.headers;r["transfer-encoding"]==="chunked"&&!r["content-length"]&&a.once("close",function(i){if(t&&t.listenerCount("data")>0&&!i){let n=new Error("Premature close");n.code="ERR_STREAM_PREMATURE_CLOSE",A(n)}})})}function Zn(e,A){e.destroy?e.destroy(A):(e.emit("error",A),e.end())}Lt.isRedirect=function(e){return e===301||e===302||e===303||e===307||e===308};Lt.Promise=global.Promise;gl.exports=jA=Lt;Object.defineProperty(jA,"__esModule",{value:!0});jA.default=jA;jA.Headers=IA;jA.Request=Ut;jA.Response=hA;jA.FetchError=Fe});var El=E((A1,ul)=>{var za=cl(),d5=za.default||za,pi=function(e,A){return/^\/\//.test(e)&&(e="https:"+e),d5.call(this,e,A)};pi.ponyfill=!0;ul.exports=A1=pi;A1.fetch=pi;A1.Headers=za.Headers;A1.Request=za.Request;A1.Response=za.Response;A1.default=pi});var ml=E(M1=>{"use strict";var Cl=M1&&M1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(M1,"__esModule",{value:!0});M1.useFetch=void 0;var Ql=require("react"),p5=Cl(y2()),l5=Cl(N2()),g5=ai(),c5=dt(),u5=El();function E5(e){if(e){let A=l5.default.parse(e),t=p5.default.parse(A.type);if(t.subtype==="json"||t.suffix==="json"||t.suffix&&/\bjson\b/i.test(t.suffix)||t.subtype&&/\bjson\b/i.test(t.subtype))return!0}return!1}async function Q5(e){if(!e.ok)throw new Error(e.statusText);let A=e.headers.get("content-type");return A&&E5(A)?await e.json():await e.text()}function C5(e,A){let{parseResponse:t,initialData:a,execute:r,keepPreviousData:i,onError:s,onData:n,onWillExecute:o,...d}=A||{},l={initialData:a,execute:r,keepPreviousData:i,onError:s,onData:n,onWillExecute:o},p=(0,c5.useLatest)(t||Q5),g=(0,Ql.useRef)(),c=(0,Ql.useCallback)(async(u,Q)=>{let m=await(0,u5.fetch)(u,{signal:g.current?.signal,...Q});return await p.current(m)},[p]);return(0,g5.useCachedPromise)(c,[e,d],{...l,abortable:g})}M1.useFetch=C5});var Bl=E(t1=>{"use strict";Object.defineProperty(t1,"__esModule",{value:!0});t1.signals=void 0;t1.signals=[];t1.signals.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&t1.signals.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&t1.signals.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT")});var hl=E(ZA=>{"use strict";var li;Object.defineProperty(ZA,"__esModule",{value:!0});ZA.unload=ZA.load=ZA.onExit=ZA.signals=void 0;var gi=Bl();Object.defineProperty(ZA,"signals",{enumerable:!0,get:function(){return gi.signals}});var ci=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",Ao=Symbol.for("signal-exit emitter"),to=globalThis,m5=Object.defineProperty.bind(Object),ao=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(to[Ao])return to[Ao];m5(to,Ao,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(A,t){this.listeners[A].push(t)}removeListener(A,t){let a=this.listeners[A],r=a.indexOf(t);r!==-1&&(r===0&&a.length===1?a.length=0:a.splice(r,1))}emit(A,t,a){if(this.emitted[A])return!1;this.emitted[A]=!0;let r=!1;for(let i of this.listeners[A])r=i(t,a)===!0||r;return A==="exit"&&(r=this.emit("afterExit",t,a)||r),r}},ui=class{},B5=e=>({onExit(A,t){return e.onExit(A,t)},load(){return e.load()},unload(){return e.unload()}}),ro=class extends ui{onExit(){return()=>{}}load(){}unload(){}},io=class extends ui{#e=so.platform==="win32"?"SIGINT":"SIGHUP";#a=new ao;#A;#t;#r;#s={};#i=!1;constructor(A){super(),this.#A=A,this.#s={};for(let t of gi.signals)this.#s[t]=()=>{let a=this.#A.listeners(t),{count:r}=this.#a,i=A;if(typeof i.__signal_exit_emitter__=="object"&&typeof i.__signal_exit_emitter__.count=="number"&&(r+=i.__signal_exit_emitter__.count),a.length===r){this.unload();let s=this.#a.emit("exit",null,t),n=t==="SIGHUP"?this.#e:t;s||A.kill(A.pid,n)}};this.#r=A.reallyExit,this.#t=A.emit}onExit(A,t){if(!ci(this.#A))return()=>{};this.#i===!1&&this.load();let a=t?.alwaysLast?"afterExit":"exit";return this.#a.on(a,A),()=>{this.#a.removeListener(a,A),this.#a.listeners.exit.length===0&&this.#a.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#i){this.#i=!0,this.#a.count+=1;for(let A of gi.signals)try{let t=this.#s[A];t&&this.#A.on(A,t)}catch{}this.#A.emit=(A,...t)=>this.#o(A,...t),this.#A.reallyExit=A=>this.#n(A)}}unload(){this.#i&&(this.#i=!1,gi.signals.forEach(A=>{let t=this.#s[A];if(!t)throw new Error("Listener not defined for signal: "+A);try{this.#A.removeListener(A,t)}catch{}}),this.#A.emit=this.#t,this.#A.reallyExit=this.#r,this.#a.count-=1)}#n(A){return ci(this.#A)?(this.#A.exitCode=A||0,this.#a.emit("exit",this.#A.exitCode,null),this.#r.call(this.#A,this.#A.exitCode)):0}#o(A,...t){let a=this.#t;if(A==="exit"&&ci(this.#A)){typeof t[0]=="number"&&(this.#A.exitCode=t[0]);let r=a.call(this.#A,A,...t);return this.#a.emit("exit",this.#A.exitCode,null),r}else return a.call(this.#A,A,...t)}},so=globalThis.process;li=B5(ci(so)?new io(so):new ro),ZA.onExit=li.onExit,ZA.load=li.load,ZA.unload=li.unload});var Ei=E(fA=>{"use strict";var h5=fA&&fA.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(fA,"__esModule",{value:!0});fA.defaultParsing=fA.handleOutput=fA.getSpawnedResult=fA.getSpawnedPromise=void 0;var I5=require("node:buffer"),wl=h5(require("node:stream")),f5=require("node:util"),w5=hl();function y5(e,{timeout:A}={}){let t=new Promise((n,o)=>{e.on("exit",(d,l)=>{n({exitCode:d,signal:l,timedOut:!1})}),e.on("error",d=>{o(d)}),e.stdin&&e.stdin.on("error",d=>{o(d)})});if(A===0||A===void 0)return t;let a,r=new Promise((n,o)=>{a=setTimeout(()=>{e.kill("SIGTERM"),o(Object.assign(new Error("Timed out"),{timedOut:!0,signal:"SIGTERM"}))},A)}),i=t.finally(()=>{clearTimeout(a)}),s=(0,w5.onExit)(()=>{e.kill()});return Promise.race([r,i]).finally(()=>s())}fA.getSpawnedPromise=y5;var no=class extends Error{constructor(){super("The output is too big"),this.name="MaxBufferError"}},D5=(0,f5.promisify)(wl.default.pipeline);function v5(e){let{encoding:A}=e,t=A==="buffer",a=new wl.default.PassThrough({objectMode:!1});A&&A!=="buffer"&&a.setEncoding(A);let r=0,i=[];return a.on("data",s=>{i.push(s),r+=s.length}),a.getBufferedValue=()=>t?Buffer.concat(i,r):i.join(""),a.getBufferedLength=()=>r,a}async function Il(e,A){let t=v5(A);return await new Promise((a,r)=>{let i=s=>{s&&t.getBufferedLength()<=I5.constants.MAX_LENGTH&&(s.bufferedData=t.getBufferedValue()),r(s)};(async()=>{try{await D5(e,t),a()}catch(s){i(s)}})(),t.on("data",()=>{t.getBufferedLength()>1e3*1e3*80&&i(new no)})}),t.getBufferedValue()}async function fl(e,A){e.destroy();try{return await A}catch(t){return t.bufferedData}}async function R5({stdout:e,stderr:A},{encoding:t},a){let r=Il(e,{encoding:t}),i=Il(A,{encoding:t});try{return await Promise.all([a,r,i])}catch(s){return Promise.all([{error:s,exitCode:null,signal:s.signal,timedOut:s.timedOut||!1},fl(e,r),fl(A,i)])}}fA.getSpawnedResult=R5;function N5(e){let A=typeof e=="string"?` -`:10,t=typeof e=="string"?"\r":13;return e[e.length-1]===A&&(e=e.slice(0,-1)),e[e.length-1]===t&&(e=e.slice(0,-1)),e}function b5(e,A){return e.stripFinalNewline?N5(A):A}fA.handleOutput=b5;var S5=({timedOut:e,timeout:A,signal:t,exitCode:a})=>e?`timed out after ${A} milliseconds`:t!=null?`was killed with ${t}`:a!=null?`failed with exit code ${a}`:"failed",F5=({stdout:e,stderr:A,error:t,signal:a,exitCode:r,command:i,timedOut:s,options:n,parentError:o})=>{let l=`Command ${S5({timedOut:s,timeout:n?.timeout,signal:a,exitCode:r})}: ${i}`,p=t?`${l} +`)},_domwindow:function(){return a("domwindow")},_bigint:function(r){return a("bigint:"+r.toString())},_process:function(){return a("process")},_timer:function(){return a("timer")},_pipe:function(){return a("pipe")},_tcp:function(){return a("tcp")},_udp:function(){return a("udp")},_tty:function(){return a("tty")},_statwatcher:function(){return a("statwatcher")},_securecontext:function(){return a("securecontext")},_connection:function(){return a("connection")},_zlib:function(){return a("zlib")},_context:function(){return a("context")},_nodescript:function(){return a("nodescript")},_httpparser:function(){return a("httpparser")},_dataview:function(){return a("dataview")},_signal:function(){return a("signal")},_fsevent:function(){return a("fsevent")},_tlswrap:function(){return a("tlswrap")}}}function d2(){return{buf:"",write:function(e){this.buf+=e},end:function(e){this.buf+=e},read:function(){return this.buf}}}});var Xr=E(R1=>{"use strict";var bQ=R1&&R1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(R1,"__esModule",{value:!0});R1.useCachedPromise=void 0;var jr=require("react"),l2=bQ(Fn()),FQ=Zr(),kQ=La(),LQ=it(),Ta=Symbol();function UQ(e,A,t){let{initialData:a,keepPreviousData:r,...i}=t||{},s=(0,jr.useRef)(),[n,o]=(0,FQ.useCachedState)((0,l2.default)(A||[]),Ta,{cacheNamespace:(0,l2.default)(e)}),d=(0,jr.useRef)(n!==Ta?n:a),{mutate:l,revalidate:p,...g}=(0,kQ.usePromise)(e,A||[],{...i,onData(m){i.onData&&i.onData(m),s.current="promise",d.current=m,o(m)}}),c=n!==Ta?n:a,u=s.current==="promise"?d.current:r?n!==Ta?n:d.current:c,Q=(0,LQ.useLatest)(u),C=(0,jr.useCallback)(async(m,B)=>{let w;try{if(B?.optimisticUpdate){typeof B?.rollbackOnError!="function"&&B?.rollbackOnError!==!1&&(w=structuredClone(Q.current));let I=B.optimisticUpdate(Q.current);s.current="cache",d.current=I,o(I)}return await l(m,{shouldRevalidateAfter:B?.shouldRevalidateAfter})}catch(I){if(typeof B?.rollbackOnError=="function"){let y=B.rollbackOnError(Q.current);s.current="cache",d.current=y,o(y)}else B?.optimisticUpdate&&B?.rollbackOnError!==!1&&(s.current="cache",d.current=w,o(w));throw I}},[o,l,Q,d,s]);return(0,jr.useEffect)(()=>{n!==Ta&&(s.current="cache",d.current=n)},[n]),{data:u,isLoading:g.isLoading,error:g.error,mutate:C,revalidate:p}}R1.useCachedPromise=UQ});var u2=E(zr=>{"use strict";var TQ=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,g2=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,c2=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;zr.format=MQ;zr.parse=YQ;zr.test=VQ;function MQ(e){if(!e||typeof e!="object")throw new TypeError("argument obj is required");var A=e.subtype,t=e.suffix,a=e.type;if(!a||!g2.test(a))throw new TypeError("invalid type");if(!A||!TQ.test(A))throw new TypeError("invalid subtype");var r=a+"/"+A;if(t){if(!g2.test(t))throw new TypeError("invalid suffix");r+="+"+t}return r}function VQ(e){if(!e)throw new TypeError("argument string is required");if(typeof e!="string")throw new TypeError("argument string is required to be a string");return c2.test(e.toLowerCase())}function YQ(e){if(!e)throw new TypeError("argument string is required");if(typeof e!="string")throw new TypeError("argument string is required to be a string");var A=c2.exec(e.toLowerCase());if(!A)throw new TypeError("invalid media type");var t=A[1],a=A[2],r,i=a.lastIndexOf("+");return i!==-1&&(r=a.substr(i+1),a=a.substr(0,i)),new JQ(t,a,r)}function JQ(e,A,t){this.type=e,this.subtype=A,this.suffix=t}});var C2=E(kn=>{"use strict";var E2=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,GQ=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,Q2=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,xQ=/\\([\u000b\u0020-\u00ff])/g,_Q=/([\\"])/g,m2=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;kn.format=qQ;kn.parse=HQ;function qQ(e){if(!e||typeof e!="object")throw new TypeError("argument obj is required");var A=e.parameters,t=e.type;if(!t||!m2.test(t))throw new TypeError("invalid type");var a=t;if(A&&typeof A=="object")for(var r,i=Object.keys(A).sort(),s=0;s<i.length;s++){if(r=i[s],!Q2.test(r))throw new TypeError("invalid parameter name");a+="; "+r+"="+PQ(A[r])}return a}function HQ(e){if(!e)throw new TypeError("argument string is required");var A=typeof e=="object"?OQ(e):e;if(typeof A!="string")throw new TypeError("argument string is required to be a string");var t=A.indexOf(";"),a=t!==-1?A.slice(0,t).trim():A.trim();if(!m2.test(a))throw new TypeError("invalid media type");var r=new WQ(a.toLowerCase());if(t!==-1){var i,s,n;for(E2.lastIndex=t;s=E2.exec(A);){if(s.index!==t)throw new TypeError("invalid parameter format");t+=s[0].length,i=s[1].toLowerCase(),n=s[2],n.charCodeAt(0)===34&&(n=n.slice(1,-1),n.indexOf("\\")!==-1&&(n=n.replace(xQ,"$1"))),r.parameters[i]=n}if(t!==A.length)throw new TypeError("invalid parameter format")}return r}function OQ(e){var A;if(typeof e.getHeader=="function"?A=e.getHeader("content-type"):typeof e.headers=="object"&&(A=e.headers&&e.headers["content-type"]),typeof A!="string")throw new TypeError("content-type header is missing from object");return A}function PQ(e){var A=String(e);if(Q2.test(A))return A;if(A.length>0&&!GQ.test(A))throw new TypeError("invalid parameter value");return'"'+A.replace(_Q,"\\$1")+'"'}function WQ(e){this.parameters=Object.create(null),this.type=e}});var I2=E((fN,h2)=>{"use strict";var ne={};h2.exports=ne;function B2(e){return e<0?-1:1}function ZQ(e){return e%1===.5&&(e&1)===0?Math.floor(e):Math.round(e)}function Rt(e,A){A.unsigned||--e;let t=A.unsigned?0:-Math.pow(2,e),a=Math.pow(2,e)-1,r=A.moduloBitLength?Math.pow(2,A.moduloBitLength):Math.pow(2,e),i=A.moduloBitLength?Math.pow(2,A.moduloBitLength-1):Math.pow(2,e-1);return function(s,n){n||(n={});let o=+s;if(n.enforceRange){if(!Number.isFinite(o))throw new TypeError("Argument is not a finite number");if(o=B2(o)*Math.floor(Math.abs(o)),o<t||o>a)throw new TypeError("Argument is not in byte range");return o}if(!isNaN(o)&&n.clamp)return o=ZQ(o),o<t&&(o=t),o>a&&(o=a),o;if(!Number.isFinite(o)||o===0)return 0;if(o=B2(o)*Math.floor(Math.abs(o)),o=o%r,!A.unsigned&&o>=i)return o-r;if(A.unsigned){if(o<0)o+=r;else if(o===-0)return 0}return o}}ne.void=function(){};ne.boolean=function(e){return!!e};ne.byte=Rt(8,{unsigned:!1});ne.octet=Rt(8,{unsigned:!0});ne.short=Rt(16,{unsigned:!1});ne["unsigned short"]=Rt(16,{unsigned:!0});ne.long=Rt(32,{unsigned:!1});ne["unsigned long"]=Rt(32,{unsigned:!0});ne["long long"]=Rt(32,{unsigned:!1,moduloBitLength:64});ne["unsigned long long"]=Rt(32,{unsigned:!0,moduloBitLength:64});ne.double=function(e){let A=+e;if(!Number.isFinite(A))throw new TypeError("Argument is not a finite floating-point value");return A};ne["unrestricted double"]=function(e){let A=+e;if(isNaN(A))throw new TypeError("Argument is NaN");return A};ne.float=ne.double;ne["unrestricted float"]=ne["unrestricted double"];ne.DOMString=function(e,A){return A||(A={}),A.treatNullAsEmptyString&&e===null?"":String(e)};ne.ByteString=function(e,A){let t=String(e),a;for(let r=0;(a=t.codePointAt(r))!==void 0;++r)if(a>255)throw new TypeError("Argument is not a valid bytestring");return t};ne.USVString=function(e){let A=String(e),t=A.length,a=[];for(let r=0;r<t;++r){let i=A.charCodeAt(r);if(i<55296||i>57343)a.push(String.fromCodePoint(i));else if(56320<=i&&i<=57343)a.push(String.fromCodePoint(65533));else if(r===t-1)a.push(String.fromCodePoint(65533));else{let s=A.charCodeAt(r+1);if(56320<=s&&s<=57343){let n=i&1023,o=s&1023;a.push(String.fromCodePoint(65536+1024*n+o)),++r}else a.push(String.fromCodePoint(65533))}}return a.join("")};ne.Date=function(e,A){if(!(e instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(e))return e};ne.RegExp=function(e,A){return e instanceof RegExp||(e=new RegExp(e)),e}});var f2=E((wN,vt)=>{"use strict";vt.exports.mixin=function(A,t){let a=Object.getOwnPropertyNames(t);for(let r=0;r<a.length;++r)Object.defineProperty(A,a[r],Object.getOwnPropertyDescriptor(t,a[r]))};vt.exports.wrapperSymbol=Symbol("wrapper");vt.exports.implSymbol=Symbol("impl");vt.exports.wrapperForImpl=function(e){return e[vt.exports.wrapperSymbol]};vt.exports.implForWrapper=function(e){return e[vt.exports.implSymbol]}});var w2=E((yN,jQ)=>{jQ.exports=[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1e3,1e3],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6e3],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8e3,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8e3]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9e3],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[3e4]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13e3,13e3],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43e3,43e3],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64e3,64e3],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66e3,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[12e4,12e4],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128e3,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23e3]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149e3]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32e3]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195e3,195e3],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[4e4]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918e3,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]});var S2=E((DN,$r)=>{"use strict";var D2=require("punycode"),y2=w2(),v1={TRANSITIONAL:0,NONTRANSITIONAL:1};function R2(e){return e.split("\0").map(function(A){return A.normalize("NFC")}).join("\0")}function v2(e){for(var A=0,t=y2.length-1;A<=t;){var a=Math.floor((A+t)/2),r=y2[a];if(r[0][0]<=e&&r[0][1]>=e)return r;r[0][0]>e?t=a-1:A=a+1}return null}var XQ=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function N2(e){return e.replace(XQ,"_").length}function zQ(e,A,t){for(var a=!1,r="",i=N2(e),s=0;s<i;++s){var n=e.codePointAt(s),o=v2(n);switch(o[1]){case"disallowed":a=!0,r+=String.fromCodePoint(n);break;case"ignored":break;case"mapped":r+=String.fromCodePoint.apply(String,o[2]);break;case"deviation":t===v1.TRANSITIONAL?r+=String.fromCodePoint.apply(String,o[2]):r+=String.fromCodePoint(n);break;case"valid":r+=String.fromCodePoint(n);break;case"disallowed_STD3_mapped":A?(a=!0,r+=String.fromCodePoint(n)):r+=String.fromCodePoint.apply(String,o[2]);break;case"disallowed_STD3_valid":A&&(a=!0),r+=String.fromCodePoint(n);break}}return{string:r,error:a}}var KQ=/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;function $Q(e,A){e.substr(0,4)==="xn--"&&(e=D2.toUnicode(e),A=v1.NONTRANSITIONAL);var t=!1;(R2(e)!==e||e[3]==="-"&&e[4]==="-"||e[0]==="-"||e[e.length-1]==="-"||e.indexOf(".")!==-1||e.search(KQ)===0)&&(t=!0);for(var a=N2(e),r=0;r<a;++r){var i=v2(e.codePointAt(r));if(Kr===v1.TRANSITIONAL&&i[1]!=="valid"||Kr===v1.NONTRANSITIONAL&&i[1]!=="valid"&&i[1]!=="deviation"){t=!0;break}}return{label:e,error:t}}function Kr(e,A,t){var a=zQ(e,A,t);a.string=R2(a.string);for(var r=a.string.split("."),i=0;i<r.length;++i)try{var s=$Q(r[i]);r[i]=s.label,a.error=a.error||s.error}catch{a.error=!0}return{string:r.join("."),error:a.error}}$r.exports.toASCII=function(e,A,t,a){var r=Kr(e,A,t),i=r.string.split(".");if(i=i.map(function(o){try{return D2.toASCII(o)}catch{return r.error=!0,o}}),a){var s=i.slice(0,i.length-1).join(".").length;(s.length>253||s.length===0)&&(r.error=!0);for(var n=0;n<i.length;++n)if(i.length>63||i.length===0){r.error=!0;break}}return r.error?null:i.join(".")};$r.exports.toUnicode=function(e,A){var t=Kr(e,A,v1.NONTRANSITIONAL);return{domain:t.string,error:t.error}};$r.exports.PROCESSING_OPTIONS=v1});var HA=E((RN,rA)=>{"use strict";var N1=require("punycode"),b2=S2(),U2={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443},J=Symbol("failure");function F2(e){return N1.ucs2.decode(e).length}function k2(e,A){let t=e[A];return isNaN(t)?void 0:String.fromCodePoint(t)}function Ma(e){return e>=48&&e<=57}function Va(e){return e>=65&&e<=90||e>=97&&e<=122}function e8(e){return Va(e)||Ma(e)}function kA(e){return Ma(e)||e>=65&&e<=70||e>=97&&e<=102}function L2(e){return e==="."||e.toLowerCase()==="%2e"}function A8(e){return e=e.toLowerCase(),e===".."||e==="%2e."||e===".%2e"||e==="%2e%2e"}function t8(e,A){return Va(e)&&(A===58||A===124)}function T2(e){return e.length===2&&Va(e.codePointAt(0))&&(e[1]===":"||e[1]==="|")}function a8(e){return e.length===2&&Va(e.codePointAt(0))&&e[1]===":"}function r8(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/)!==-1}function i8(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)!==-1}function Ln(e){return U2[e]!==void 0}function Be(e){return Ln(e.scheme)}function s8(e){return U2[e]}function M2(e){let A=e.toString(16).toUpperCase();return A.length===1&&(A="0"+A),"%"+A}function n8(e){let A=new Buffer(e),t="";for(let a=0;a<A.length;++a)t+=M2(A[a]);return t}function o8(e){let A=new Buffer(e),t=[];for(let a=0;a<A.length;++a)A[a]!==37?t.push(A[a]):A[a]===37&&kA(A[a+1])&&kA(A[a+2])?(t.push(parseInt(A.slice(a+1,a+3).toString(),16)),a+=2):t.push(A[a]);return new Buffer(t).toString()}function ei(e){return e<=31||e>126}var d8=new Set([32,34,35,60,62,63,96,123,125]);function V2(e){return ei(e)||d8.has(e)}var p8=new Set([47,58,59,61,64,91,92,93,94,124]);function Tn(e){return V2(e)||p8.has(e)}function jt(e,A){let t=String.fromCodePoint(e);return A(e)?n8(t):t}function l8(e){let A=10;return e.length>=2&&e.charAt(0)==="0"&&e.charAt(1).toLowerCase()==="x"?(e=e.substring(2),A=16):e.length>=2&&e.charAt(0)==="0"&&(e=e.substring(1),A=8),e===""?0:(A===10?/[^0-9]/:A===16?/[^0-9A-Fa-f]/:/[^0-7]/).test(e)?J:parseInt(e,A)}function g8(e){let A=e.split(".");if(A[A.length-1]===""&&A.length>1&&A.pop(),A.length>4)return e;let t=[];for(let i of A){if(i==="")return e;let s=l8(i);if(s===J)return e;t.push(s)}for(let i=0;i<t.length-1;++i)if(t[i]>255)return J;if(t[t.length-1]>=Math.pow(256,5-t.length))return J;let a=t.pop(),r=0;for(let i of t)a+=i*Math.pow(256,3-r),++r;return a}function c8(e){let A="",t=e;for(let a=1;a<=4;++a)A=String(t%256)+A,a!==4&&(A="."+A),t=Math.floor(t/256);return A}function u8(e){let A=[0,0,0,0,0,0,0,0],t=0,a=null,r=0;if(e=N1.ucs2.decode(e),e[r]===58){if(e[r+1]!==58)return J;r+=2,++t,a=t}for(;r<e.length;){if(t===8)return J;if(e[r]===58){if(a!==null)return J;++r,++t,a=t;continue}let i=0,s=0;for(;s<4&&kA(e[r]);)i=i*16+parseInt(k2(e,r),16),++r,++s;if(e[r]===46){if(s===0||(r-=s,t>6))return J;let n=0;for(;e[r]!==void 0;){let o=null;if(n>0)if(e[r]===46&&n<4)++r;else return J;if(!Ma(e[r]))return J;for(;Ma(e[r]);){let d=parseInt(k2(e,r));if(o===null)o=d;else{if(o===0)return J;o=o*10+d}if(o>255)return J;++r}A[t]=A[t]*256+o,++n,(n===2||n===4)&&++t}if(n!==4)return J;break}else if(e[r]===58){if(++r,e[r]===void 0)return J}else if(e[r]!==void 0)return J;A[t]=i,++t}if(a!==null){let i=t-a;for(t=7;t!==0&&i>0;){let s=A[a+i-1];A[a+i-1]=A[t],A[t]=s,--t,--i}}else if(a===null&&t!==8)return J;return A}function E8(e){let A="",a=m8(e).idx,r=!1;for(let i=0;i<=7;++i)if(!(r&&e[i]===0)){if(r&&(r=!1),a===i){A+=i===0?"::":":",r=!0;continue}A+=e[i].toString(16),i!==7&&(A+=":")}return A}function Un(e,A){if(e[0]==="[")return e[e.length-1]!=="]"?J:u8(e.substring(1,e.length-1));if(!A)return Q8(e);let t=o8(e),a=b2.toASCII(t,!1,b2.PROCESSING_OPTIONS.NONTRANSITIONAL,!1);if(a===null||r8(a))return J;let r=g8(a);return typeof r=="number"||r===J?r:a}function Q8(e){if(i8(e))return J;let A="",t=N1.ucs2.decode(e);for(let a=0;a<t.length;++a)A+=jt(t[a],ei);return A}function m8(e){let A=null,t=1,a=null,r=0;for(let i=0;i<e.length;++i)e[i]!==0?(r>t&&(A=a,t=r),a=null,r=0):(a===null&&(a=i),++r);return r>t&&(A=a,t=r),{idx:A,len:t}}function Mn(e){return typeof e=="number"?c8(e):e instanceof Array?"["+E8(e)+"]":e}function C8(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}function B8(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}function Y2(e){let A=e.path;A.length!==0&&(e.scheme==="file"&&A.length===1&&I8(A[0])||A.pop())}function J2(e){return e.username!==""||e.password!==""}function h8(e){return e.host===null||e.host===""||e.cannotBeABaseURL||e.scheme==="file"}function I8(e){return/^[A-Za-z]:$/.test(e)}function oe(e,A,t,a,r){if(this.pointer=0,this.input=e,this.base=A||null,this.encodingOverride=t||"utf-8",this.stateOverride=r,this.url=a,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};let s=C8(this.input);s!==this.input&&(this.parseError=!0),this.input=s}let i=B8(this.input);for(i!==this.input&&(this.parseError=!0),this.input=i,this.state=r||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=N1.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){let s=this.input[this.pointer],n=isNaN(s)?void 0:String.fromCodePoint(s),o=this["parse "+this.state](s,n);if(o){if(o===J){this.failure=!0;break}}else break}}oe.prototype["parse scheme start"]=function(A,t){if(Va(A))this.buffer+=t.toLowerCase(),this.state="scheme";else if(!this.stateOverride)this.state="no scheme",--this.pointer;else return this.parseError=!0,J;return!0};oe.prototype["parse scheme"]=function(A,t){if(e8(A)||A===43||A===45||A===46)this.buffer+=t.toLowerCase();else if(A===58){if(this.stateOverride&&(Be(this.url)&&!Ln(this.buffer)||!Be(this.url)&&Ln(this.buffer)||(J2(this.url)||this.url.port!==null)&&this.buffer==="file"||this.url.scheme==="file"&&(this.url.host===""||this.url.host===null))||(this.url.scheme=this.buffer,this.buffer="",this.stateOverride))return!1;this.url.scheme==="file"?((this.input[this.pointer+1]!==47||this.input[this.pointer+2]!==47)&&(this.parseError=!0),this.state="file"):Be(this.url)&&this.base!==null&&this.base.scheme===this.url.scheme?this.state="special relative or authority":Be(this.url)?this.state="special authority slashes":this.input[this.pointer+1]===47?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else if(!this.stateOverride)this.buffer="",this.state="no scheme",this.pointer=-1;else return this.parseError=!0,J;return!0};oe.prototype["parse no scheme"]=function(A){return this.base===null||this.base.cannotBeABaseURL&&A!==35?J:(this.base.cannotBeABaseURL&&A===35?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):this.base.scheme==="file"?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)};oe.prototype["parse special relative or authority"]=function(A){return A===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0};oe.prototype["parse path or authority"]=function(A){return A===47?this.state="authority":(this.state="path",--this.pointer),!0};oe.prototype["parse relative"]=function(A){return this.url.scheme=this.base.scheme,isNaN(A)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):A===47?this.state="relative slash":A===63?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):A===35?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):Be(this.url)&&A===92?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0};oe.prototype["parse relative slash"]=function(A){return Be(this.url)&&(A===47||A===92)?(A===92&&(this.parseError=!0),this.state="special authority ignore slashes"):A===47?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer),!0};oe.prototype["parse special authority slashes"]=function(A){return A===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0};oe.prototype["parse special authority ignore slashes"]=function(A){return A!==47&&A!==92?(this.state="authority",--this.pointer):this.parseError=!0,!0};oe.prototype["parse authority"]=function(A,t){if(A===64){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;let a=F2(this.buffer);for(let r=0;r<a;++r){let i=this.buffer.codePointAt(r);if(i===58&&!this.passwordTokenSeenFlag){this.passwordTokenSeenFlag=!0;continue}let s=jt(i,Tn);this.passwordTokenSeenFlag?this.url.password+=s:this.url.username+=s}this.buffer=""}else if(isNaN(A)||A===47||A===63||A===35||Be(this.url)&&A===92){if(this.atFlag&&this.buffer==="")return this.parseError=!0,J;this.pointer-=F2(this.buffer)+1,this.buffer="",this.state="host"}else this.buffer+=t;return!0};oe.prototype["parse hostname"]=oe.prototype["parse host"]=function(A,t){if(this.stateOverride&&this.url.scheme==="file")--this.pointer,this.state="file host";else if(A===58&&!this.arrFlag){if(this.buffer==="")return this.parseError=!0,J;let a=Un(this.buffer,Be(this.url));if(a===J)return J;if(this.url.host=a,this.buffer="",this.state="port",this.stateOverride==="hostname")return!1}else if(isNaN(A)||A===47||A===63||A===35||Be(this.url)&&A===92){if(--this.pointer,Be(this.url)&&this.buffer==="")return this.parseError=!0,J;if(this.stateOverride&&this.buffer===""&&(J2(this.url)||this.url.port!==null))return this.parseError=!0,!1;let a=Un(this.buffer,Be(this.url));if(a===J)return J;if(this.url.host=a,this.buffer="",this.state="path start",this.stateOverride)return!1}else A===91?this.arrFlag=!0:A===93&&(this.arrFlag=!1),this.buffer+=t;return!0};oe.prototype["parse port"]=function(A,t){if(Ma(A))this.buffer+=t;else if(isNaN(A)||A===47||A===63||A===35||Be(this.url)&&A===92||this.stateOverride){if(this.buffer!==""){let a=parseInt(this.buffer);if(a>Math.pow(2,16)-1)return this.parseError=!0,J;this.url.port=a===s8(this.url.scheme)?null:a,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}else return this.parseError=!0,J;return!0};var f8=new Set([47,92,63,35]);oe.prototype["parse file"]=function(A){return this.url.scheme="file",A===47||A===92?(A===92&&(this.parseError=!0),this.state="file slash"):this.base!==null&&this.base.scheme==="file"?isNaN(A)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):A===63?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):A===35?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(this.input.length-this.pointer-1===0||!t8(A,this.input[this.pointer+1])||this.input.length-this.pointer-1>=2&&!f8.has(this.input[this.pointer+2])?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),Y2(this.url)):this.parseError=!0,this.state="path",--this.pointer):(this.state="path",--this.pointer),!0};oe.prototype["parse file slash"]=function(A){return A===47||A===92?(A===92&&(this.parseError=!0),this.state="file host"):(this.base!==null&&this.base.scheme==="file"&&(a8(this.base.path[0])?this.url.path.push(this.base.path[0]):this.url.host=this.base.host),this.state="path",--this.pointer),!0};oe.prototype["parse file host"]=function(A,t){if(isNaN(A)||A===47||A===92||A===63||A===35)if(--this.pointer,!this.stateOverride&&T2(this.buffer))this.parseError=!0,this.state="path";else if(this.buffer===""){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let a=Un(this.buffer,Be(this.url));if(a===J)return J;if(a==="localhost"&&(a=""),this.url.host=a,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=t;return!0};oe.prototype["parse path start"]=function(A){return Be(this.url)?(A===92&&(this.parseError=!0),this.state="path",A!==47&&A!==92&&--this.pointer):!this.stateOverride&&A===63?(this.url.query="",this.state="query"):!this.stateOverride&&A===35?(this.url.fragment="",this.state="fragment"):A!==void 0&&(this.state="path",A!==47&&--this.pointer),!0};oe.prototype["parse path"]=function(A){if(isNaN(A)||A===47||Be(this.url)&&A===92||!this.stateOverride&&(A===63||A===35)){if(Be(this.url)&&A===92&&(this.parseError=!0),A8(this.buffer)?(Y2(this.url),A!==47&&!(Be(this.url)&&A===92)&&this.url.path.push("")):L2(this.buffer)&&A!==47&&!(Be(this.url)&&A===92)?this.url.path.push(""):L2(this.buffer)||(this.url.scheme==="file"&&this.url.path.length===0&&T2(this.buffer)&&(this.url.host!==""&&this.url.host!==null&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)),this.buffer="",this.url.scheme==="file"&&(A===void 0||A===63||A===35))for(;this.url.path.length>1&&this.url.path[0]==="";)this.parseError=!0,this.url.path.shift();A===63&&(this.url.query="",this.state="query"),A===35&&(this.url.fragment="",this.state="fragment")}else A===37&&(!kA(this.input[this.pointer+1])||!kA(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=jt(A,V2);return!0};oe.prototype["parse cannot-be-a-base-URL path"]=function(A){return A===63?(this.url.query="",this.state="query"):A===35?(this.url.fragment="",this.state="fragment"):(!isNaN(A)&&A!==37&&(this.parseError=!0),A===37&&(!kA(this.input[this.pointer+1])||!kA(this.input[this.pointer+2]))&&(this.parseError=!0),isNaN(A)||(this.url.path[0]=this.url.path[0]+jt(A,ei))),!0};oe.prototype["parse query"]=function(A,t){if(isNaN(A)||!this.stateOverride&&A===35){(!Be(this.url)||this.url.scheme==="ws"||this.url.scheme==="wss")&&(this.encodingOverride="utf-8");let a=new Buffer(this.buffer);for(let r=0;r<a.length;++r)a[r]<33||a[r]>126||a[r]===34||a[r]===35||a[r]===60||a[r]===62?this.url.query+=M2(a[r]):this.url.query+=String.fromCodePoint(a[r]);this.buffer="",A===35&&(this.url.fragment="",this.state="fragment")}else A===37&&(!kA(this.input[this.pointer+1])||!kA(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=t;return!0};oe.prototype["parse fragment"]=function(A){return isNaN(A)||(A===0?this.parseError=!0:(A===37&&(!kA(this.input[this.pointer+1])||!kA(this.input[this.pointer+2]))&&(this.parseError=!0),this.url.fragment+=jt(A,ei))),!0};function w8(e,A){let t=e.scheme+":";if(e.host!==null?(t+="//",(e.username!==""||e.password!=="")&&(t+=e.username,e.password!==""&&(t+=":"+e.password),t+="@"),t+=Mn(e.host),e.port!==null&&(t+=":"+e.port)):e.host===null&&e.scheme==="file"&&(t+="//"),e.cannotBeABaseURL)t+=e.path[0];else for(let a of e.path)t+="/"+a;return e.query!==null&&(t+="?"+e.query),!A&&e.fragment!==null&&(t+="#"+e.fragment),t}function y8(e){let A=e.scheme+"://";return A+=Mn(e.host),e.port!==null&&(A+=":"+e.port),A}rA.exports.serializeURL=w8;rA.exports.serializeURLOrigin=function(e){switch(e.scheme){case"blob":try{return rA.exports.serializeURLOrigin(rA.exports.parseURL(e.path[0]))}catch{return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return y8({scheme:e.scheme,host:e.host,port:e.port});case"file":return"file://";default:return"null"}};rA.exports.basicURLParse=function(e,A){A===void 0&&(A={});let t=new oe(e,A.baseURL,A.encodingOverride,A.url,A.stateOverride);return t.failure?"failure":t.url};rA.exports.setTheUsername=function(e,A){e.username="";let t=N1.ucs2.decode(A);for(let a=0;a<t.length;++a)e.username+=jt(t[a],Tn)};rA.exports.setThePassword=function(e,A){e.password="";let t=N1.ucs2.decode(A);for(let a=0;a<t.length;++a)e.password+=jt(t[a],Tn)};rA.exports.serializeHost=Mn;rA.exports.cannotHaveAUsernamePasswordPort=h8;rA.exports.serializeInteger=function(e){return String(e)};rA.exports.parseURL=function(e,A){return A===void 0&&(A={}),rA.exports.basicURLParse(e,{baseURL:A.baseURL,encodingOverride:A.encodingOverride})}});var x2=E(G2=>{"use strict";var de=HA();G2.implementation=class{constructor(A){let t=A[0],a=A[1],r=null;if(a!==void 0&&(r=de.basicURLParse(a),r==="failure"))throw new TypeError("Invalid base URL");let i=de.basicURLParse(t,{baseURL:r});if(i==="failure")throw new TypeError("Invalid URL");this._url=i}get href(){return de.serializeURL(this._url)}set href(A){let t=de.basicURLParse(A);if(t==="failure")throw new TypeError("Invalid URL");this._url=t}get origin(){return de.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(A){de.basicURLParse(A+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(A){de.cannotHaveAUsernamePasswordPort(this._url)||de.setTheUsername(this._url,A)}get password(){return this._url.password}set password(A){de.cannotHaveAUsernamePasswordPort(this._url)||de.setThePassword(this._url,A)}get host(){let A=this._url;return A.host===null?"":A.port===null?de.serializeHost(A.host):de.serializeHost(A.host)+":"+de.serializeInteger(A.port)}set host(A){this._url.cannotBeABaseURL||de.basicURLParse(A,{url:this._url,stateOverride:"host"})}get hostname(){return this._url.host===null?"":de.serializeHost(this._url.host)}set hostname(A){this._url.cannotBeABaseURL||de.basicURLParse(A,{url:this._url,stateOverride:"hostname"})}get port(){return this._url.port===null?"":de.serializeInteger(this._url.port)}set port(A){de.cannotHaveAUsernamePasswordPort(this._url)||(A===""?this._url.port=null:de.basicURLParse(A,{url:this._url,stateOverride:"port"}))}get pathname(){return this._url.cannotBeABaseURL?this._url.path[0]:this._url.path.length===0?"":"/"+this._url.path.join("/")}set pathname(A){this._url.cannotBeABaseURL||(this._url.path=[],de.basicURLParse(A,{url:this._url,stateOverride:"path start"}))}get search(){return this._url.query===null||this._url.query===""?"":"?"+this._url.query}set search(A){let t=this._url;if(A===""){t.query=null;return}let a=A[0]==="?"?A.substring(1):A;t.query="",de.basicURLParse(a,{url:t,stateOverride:"query"})}get hash(){return this._url.fragment===null||this._url.fragment===""?"":"#"+this._url.fragment}set hash(A){if(A===""){this._url.fragment=null;return}let t=A[0]==="#"?A.substring(1):A;this._url.fragment="",de.basicURLParse(t,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}});var H2=E((SN,Ya)=>{"use strict";var CA=I2(),q2=f2(),_2=x2(),z=q2.implSymbol;function ye(e){if(!this||this[z]||!(this instanceof ye))throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");if(arguments.length<1)throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.");let A=[];for(let t=0;t<arguments.length&&t<2;++t)A[t]=arguments[t];A[0]=CA.USVString(A[0]),A[1]!==void 0&&(A[1]=CA.USVString(A[1])),Ya.exports.setup(this,A)}ye.prototype.toJSON=function(){if(!this||!Ya.exports.is(this))throw new TypeError("Illegal invocation");let A=[];for(let t=0;t<arguments.length&&t<0;++t)A[t]=arguments[t];return this[z].toJSON.apply(this[z],A)};Object.defineProperty(ye.prototype,"href",{get(){return this[z].href},set(e){e=CA.USVString(e),this[z].href=e},enumerable:!0,configurable:!0});ye.prototype.toString=function(){if(!this||!Ya.exports.is(this))throw new TypeError("Illegal invocation");return this.href};Object.defineProperty(ye.prototype,"origin",{get(){return this[z].origin},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"protocol",{get(){return this[z].protocol},set(e){e=CA.USVString(e),this[z].protocol=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"username",{get(){return this[z].username},set(e){e=CA.USVString(e),this[z].username=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"password",{get(){return this[z].password},set(e){e=CA.USVString(e),this[z].password=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"host",{get(){return this[z].host},set(e){e=CA.USVString(e),this[z].host=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"hostname",{get(){return this[z].hostname},set(e){e=CA.USVString(e),this[z].hostname=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"port",{get(){return this[z].port},set(e){e=CA.USVString(e),this[z].port=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"pathname",{get(){return this[z].pathname},set(e){e=CA.USVString(e),this[z].pathname=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"search",{get(){return this[z].search},set(e){e=CA.USVString(e),this[z].search=e},enumerable:!0,configurable:!0});Object.defineProperty(ye.prototype,"hash",{get(){return this[z].hash},set(e){e=CA.USVString(e),this[z].hash=e},enumerable:!0,configurable:!0});Ya.exports={is(e){return!!e&&e[z]instanceof _2.implementation},create(e,A){let t=Object.create(ye.prototype);return this.setup(t,e,A),t},setup(e,A,t){t||(t={}),t.wrapper=e,e[z]=new _2.implementation(A,t),e[z][q2.wrapperSymbol]=e},interface:ye,expose:{Window:{URL:ye},Worker:{URL:ye}}}});var O2=E(OA=>{"use strict";OA.URL=H2().interface;OA.serializeURL=HA().serializeURL;OA.serializeURLOrigin=HA().serializeURLOrigin;OA.basicURLParse=HA().basicURLParse;OA.setTheUsername=HA().setTheUsername;OA.setThePassword=HA().setThePassword;OA.serializeHost=HA().serializeHost;OA.serializeInteger=HA().serializeInteger;OA.parseURL=HA().parseURL});var al=E((PA,tl)=>{"use strict";Object.defineProperty(PA,"__esModule",{value:!0});function F1(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var LA=F1(require("stream")),j2=F1(require("http")),ti=F1(require("url")),X2=F1(O2()),D8=F1(require("https")),Xt=F1(require("zlib")),R8=LA.Readable,st=Symbol("buffer"),Vn=Symbol("type"),Ga=class e{constructor(){this[Vn]="";let A=arguments[0],t=arguments[1],a=[],r=0;if(A){let s=A,n=Number(s.length);for(let o=0;o<n;o++){let d=s[o],l;d instanceof Buffer?l=d:ArrayBuffer.isView(d)?l=Buffer.from(d.buffer,d.byteOffset,d.byteLength):d instanceof ArrayBuffer?l=Buffer.from(d):d instanceof e?l=d[st]:l=Buffer.from(typeof d=="string"?d:String(d)),r+=l.length,a.push(l)}}this[st]=Buffer.concat(a);let i=t&&t.type!==void 0&&String(t.type).toLowerCase();i&&!/[^\u0020-\u007E]/.test(i)&&(this[Vn]=i)}get size(){return this[st].length}get type(){return this[Vn]}text(){return Promise.resolve(this[st].toString())}arrayBuffer(){let A=this[st],t=A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength);return Promise.resolve(t)}stream(){let A=new R8;return A._read=function(){},A.push(this[st]),A.push(null),A}toString(){return"[object Blob]"}slice(){let A=this.size,t=arguments[0],a=arguments[1],r,i;t===void 0?r=0:t<0?r=Math.max(A+t,0):r=Math.min(t,A),a===void 0?i=A:a<0?i=Math.max(A+a,0):i=Math.min(a,A);let s=Math.max(i-r,0),o=this[st].slice(r,r+s),d=new e([],{type:arguments[2]});return d[st]=o,d}};Object.defineProperties(Ga.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});Object.defineProperty(Ga.prototype,Symbol.toStringTag,{value:"Blob",writable:!1,enumerable:!1,configurable:!0});function Fe(e,A,t){Error.call(this,e),this.message=e,this.type=A,t&&(this.code=this.errno=t.code),Error.captureStackTrace(this,this.constructor)}Fe.prototype=Object.create(Error.prototype);Fe.prototype.constructor=Fe;Fe.prototype.name="FetchError";var xn;try{xn=require("encoding").convert}catch{}var ot=Symbol("Body internals"),P2=LA.PassThrough;function De(e){var A=this,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=t.size;let r=a===void 0?0:a;var i=t.timeout;let s=i===void 0?0:i;e==null?e=null:z2(e)?e=Buffer.from(e.toString()):Ha(e)||Buffer.isBuffer(e)||(Object.prototype.toString.call(e)==="[object ArrayBuffer]"?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof LA||(e=Buffer.from(String(e)))),this[ot]={body:e,disturbed:!1,error:null},this.size=r,this.timeout=s,e instanceof LA&&e.on("error",function(n){let o=n.name==="AbortError"?n:new Fe(`Invalid response body while trying to fetch ${A.url}: ${n.message}`,"system",n);A[ot].error=o})}De.prototype={get body(){return this[ot].body},get bodyUsed(){return this[ot].disturbed},arrayBuffer(){return S1.call(this).then(function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)})},blob(){let e=this.headers&&this.headers.get("content-type")||"";return S1.call(this).then(function(A){return Object.assign(new Ga([],{type:e.toLowerCase()}),{[st]:A})})},json(){var e=this;return S1.call(this).then(function(A){try{return JSON.parse(A.toString())}catch(t){return De.Promise.reject(new Fe(`invalid json response body at ${e.url} reason: ${t.message}`,"invalid-json"))}})},text(){return S1.call(this).then(function(e){return e.toString()})},buffer(){return S1.call(this)},textConverted(){var e=this;return S1.call(this).then(function(A){return v8(A,e.headers)})}};Object.defineProperties(De.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});De.mixIn=function(e){for(let A of Object.getOwnPropertyNames(De.prototype))if(!(A in e)){let t=Object.getOwnPropertyDescriptor(De.prototype,A);Object.defineProperty(e,A,t)}};function S1(){var e=this;if(this[ot].disturbed)return De.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[ot].disturbed=!0,this[ot].error)return De.Promise.reject(this[ot].error);let A=this.body;if(A===null)return De.Promise.resolve(Buffer.alloc(0));if(Ha(A)&&(A=A.stream()),Buffer.isBuffer(A))return De.Promise.resolve(A);if(!(A instanceof LA))return De.Promise.resolve(Buffer.alloc(0));let t=[],a=0,r=!1;return new De.Promise(function(i,s){let n;e.timeout&&(n=setTimeout(function(){r=!0,s(new Fe(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))},e.timeout)),A.on("error",function(o){o.name==="AbortError"?(r=!0,s(o)):s(new Fe(`Invalid response body while trying to fetch ${e.url}: ${o.message}`,"system",o))}),A.on("data",function(o){if(!(r||o===null)){if(e.size&&a+o.length>e.size){r=!0,s(new Fe(`content size at ${e.url} over limit: ${e.size}`,"max-size"));return}a+=o.length,t.push(o)}}),A.on("end",function(){if(!r){clearTimeout(n);try{i(Buffer.concat(t,a))}catch(o){s(new Fe(`Could not create Buffer from response body for ${e.url}: ${o.message}`,"system",o))}}})})}function v8(e,A){if(typeof xn!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let t=A.get("content-type"),a="utf-8",r,i;return t&&(r=/charset=([^;]*)/i.exec(t)),i=e.slice(0,1024).toString(),!r&&i&&(r=/<meta.+?charset=(['"])(.+?)\1/i.exec(i)),!r&&i&&(r=/<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(i),r||(r=/<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i.exec(i),r&&r.pop()),r&&(r=/charset=(.*)/i.exec(r.pop()))),!r&&i&&(r=/<\?xml.+?encoding=(['"])(.+?)\1/i.exec(i)),r&&(a=r.pop(),(a==="gb2312"||a==="gbk")&&(a="gb18030")),xn(e,"UTF-8",a).toString()}function z2(e){return typeof e!="object"||typeof e.append!="function"||typeof e.delete!="function"||typeof e.get!="function"||typeof e.getAll!="function"||typeof e.has!="function"||typeof e.set!="function"?!1:e.constructor.name==="URLSearchParams"||Object.prototype.toString.call(e)==="[object URLSearchParams]"||typeof e.sort=="function"}function Ha(e){return typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&typeof e.constructor=="function"&&typeof e.constructor.name=="string"&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function K2(e){let A,t,a=e.body;if(e.bodyUsed)throw new Error("cannot clone body after it is used");return a instanceof LA&&typeof a.getBoundary!="function"&&(A=new P2,t=new P2,a.pipe(A),a.pipe(t),e[ot].body=A,a=t),a}function $2(e){return e===null?null:typeof e=="string"?"text/plain;charset=UTF-8":z2(e)?"application/x-www-form-urlencoded;charset=UTF-8":Ha(e)?e.type||null:Buffer.isBuffer(e)||Object.prototype.toString.call(e)==="[object ArrayBuffer]"||ArrayBuffer.isView(e)?null:typeof e.getBoundary=="function"?`multipart/form-data;boundary=${e.getBoundary()}`:e instanceof LA?null:"text/plain;charset=UTF-8"}function el(e){let A=e.body;return A===null?0:Ha(A)?A.size:Buffer.isBuffer(A)?A.length:A&&typeof A.getLengthSync=="function"&&(A._lengthRetrievers&&A._lengthRetrievers.length==0||A.hasKnownLength&&A.hasKnownLength())?A.getLengthSync():null}function N8(e,A){let t=A.body;t===null?e.end():Ha(t)?t.stream().pipe(e):Buffer.isBuffer(t)?(e.write(t),e.end()):t.pipe(e)}De.Promise=global.Promise;var Al=/[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/,_n=/[^\t\x20-\x7e\x80-\xff]/;function Ja(e){if(e=`${e}`,Al.test(e)||e==="")throw new TypeError(`${e} is not a legal HTTP header name`)}function W2(e){if(e=`${e}`,_n.test(e))throw new TypeError(`${e} is not a legal HTTP header value`)}function b1(e,A){A=A.toLowerCase();for(let t in e)if(t.toLowerCase()===A)return t}var ge=Symbol("map"),hA=class e{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0;if(this[ge]=Object.create(null),A instanceof e){let t=A.raw(),a=Object.keys(t);for(let r of a)for(let i of t[r])this.append(r,i);return}if(A!=null)if(typeof A=="object"){let t=A[Symbol.iterator];if(t!=null){if(typeof t!="function")throw new TypeError("Header pairs must be iterable");let a=[];for(let r of A){if(typeof r!="object"||typeof r[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");a.push(Array.from(r))}for(let r of a){if(r.length!==2)throw new TypeError("Each header pair must be a name/value tuple");this.append(r[0],r[1])}}else for(let a of Object.keys(A)){let r=A[a];this.append(a,r)}}else throw new TypeError("Provided initializer must be an object")}get(A){A=`${A}`,Ja(A);let t=b1(this[ge],A);return t===void 0?null:this[ge][t].join(", ")}forEach(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,a=qn(this),r=0;for(;r<a.length;){var i=a[r];let s=i[0],n=i[1];A.call(t,n,s,this),a=qn(this),r++}}set(A,t){A=`${A}`,t=`${t}`,Ja(A),W2(t);let a=b1(this[ge],A);this[ge][a!==void 0?a:A]=[t]}append(A,t){A=`${A}`,t=`${t}`,Ja(A),W2(t);let a=b1(this[ge],A);a!==void 0?this[ge][a].push(t):this[ge][A]=[t]}has(A){return A=`${A}`,Ja(A),b1(this[ge],A)!==void 0}delete(A){A=`${A}`,Ja(A);let t=b1(this[ge],A);t!==void 0&&delete this[ge][t]}raw(){return this[ge]}keys(){return Yn(this,"key")}values(){return Yn(this,"value")}[Symbol.iterator](){return Yn(this,"key+value")}};hA.prototype.entries=hA.prototype[Symbol.iterator];Object.defineProperty(hA.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(hA.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});function qn(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"key+value";return Object.keys(e[ge]).sort().map(A==="key"?function(a){return a.toLowerCase()}:A==="value"?function(a){return e[ge][a].join(", ")}:function(a){return[a.toLowerCase(),e[ge][a].join(", ")]})}var Hn=Symbol("internal");function Yn(e,A){let t=Object.create(On);return t[Hn]={target:e,kind:A,index:0},t}var On=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==On)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[Hn];let A=e.target,t=e.kind,a=e.index,r=qn(A,t),i=r.length;return a>=i?{value:void 0,done:!0}:(this[Hn].index=a+1,{value:r[a],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(On,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});function S8(e){let A=Object.assign({__proto__:null},e[ge]),t=b1(e[ge],"Host");return t!==void 0&&(A[t]=A[t][0]),A}function b8(e){let A=new hA;for(let t of Object.keys(e))if(!Al.test(t))if(Array.isArray(e[t]))for(let a of e[t])_n.test(a)||(A[ge][t]===void 0?A[ge][t]=[a]:A[ge][t].push(a));else _n.test(e[t])||(A[ge][t]=[e[t]]);return A}var Nt=Symbol("Response internals"),F8=j2.STATUS_CODES,BA=class e{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};De.call(this,A,t);let a=t.status||200,r=new hA(t.headers);if(A!=null&&!r.has("Content-Type")){let i=$2(A);i&&r.append("Content-Type",i)}this[Nt]={url:t.url,status:a,statusText:t.statusText||F8[a],headers:r,counter:t.counter}}get url(){return this[Nt].url||""}get status(){return this[Nt].status}get ok(){return this[Nt].status>=200&&this[Nt].status<300}get redirected(){return this[Nt].counter>0}get statusText(){return this[Nt].statusText}get headers(){return this[Nt].headers}clone(){return new e(K2(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}};De.mixIn(BA.prototype);Object.defineProperties(BA.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});Object.defineProperty(BA.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});var nt=Symbol("Request internals"),k8=ti.URL||X2.URL,L8=ti.parse,U8=ti.format;function Jn(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)&&(e=new k8(e).toString()),L8(e)}var T8="destroy"in LA.Readable.prototype;function Ai(e){return typeof e=="object"&&typeof e[nt]=="object"}function M8(e){let A=e&&typeof e=="object"&&Object.getPrototypeOf(e);return!!(A&&A.constructor.name==="AbortSignal")}var bt=class e{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a;Ai(A)?a=Jn(A.url):(A&&A.href?a=Jn(A.href):a=Jn(`${A}`),A={});let r=t.method||A.method||"GET";if(r=r.toUpperCase(),(t.body!=null||Ai(A)&&A.body!==null)&&(r==="GET"||r==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let i=t.body!=null?t.body:Ai(A)&&A.body!==null?K2(A):null;De.call(this,i,{timeout:t.timeout||A.timeout||0,size:t.size||A.size||0});let s=new hA(t.headers||A.headers||{});if(i!=null&&!s.has("Content-Type")){let o=$2(i);o&&s.append("Content-Type",o)}let n=Ai(A)?A.signal:null;if("signal"in t&&(n=t.signal),n!=null&&!M8(n))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[nt]={method:r,redirect:t.redirect||A.redirect||"follow",headers:s,parsedURL:a,signal:n},this.follow=t.follow!==void 0?t.follow:A.follow!==void 0?A.follow:20,this.compress=t.compress!==void 0?t.compress:A.compress!==void 0?A.compress:!0,this.counter=t.counter||A.counter||0,this.agent=t.agent||A.agent}get method(){return this[nt].method}get url(){return U8(this[nt].parsedURL)}get headers(){return this[nt].headers}get redirect(){return this[nt].redirect}get signal(){return this[nt].signal}clone(){return new e(this)}};De.mixIn(bt.prototype);Object.defineProperty(bt.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(bt.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}});function V8(e){let A=e[nt].parsedURL,t=new hA(e[nt].headers);if(t.has("Accept")||t.set("Accept","*/*"),!A.protocol||!A.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(A.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof LA.Readable&&!T8)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let a=null;if(e.body==null&&/^(POST|PUT)$/i.test(e.method)&&(a="0"),e.body!=null){let i=el(e);typeof i=="number"&&(a=String(i))}a&&t.set("Content-Length",a),t.has("User-Agent")||t.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!t.has("Accept-Encoding")&&t.set("Accept-Encoding","gzip,deflate");let r=e.agent;return typeof r=="function"&&(r=r(A)),!t.has("Connection")&&!r&&t.set("Connection","close"),Object.assign({},A,{method:e.method,headers:S8(t),agent:r})}function xa(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}xa.prototype=Object.create(Error.prototype);xa.prototype.constructor=xa;xa.prototype.name="AbortError";var qa=ti.URL||X2.URL,Z2=LA.PassThrough,Y8=function(A,t){let a=new qa(t).hostname,r=new qa(A).hostname;return a===r||a[a.length-r.length-1]==="."&&a.endsWith(r)},J8=function(A,t){let a=new qa(t).protocol,r=new qa(A).protocol;return a===r};function St(e,A){if(!St.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return De.Promise=St.Promise,new St.Promise(function(t,a){let r=new bt(e,A),i=V8(r),s=(i.protocol==="https:"?D8:j2).request,n=r.signal,o=null,d=function(){let Q=new xa("The user aborted a request.");a(Q),r.body&&r.body instanceof LA.Readable&&Gn(r.body,Q),!(!o||!o.body)&&o.body.emit("error",Q)};if(n&&n.aborted){d();return}let l=function(){d(),c()},p=s(i),g;n&&n.addEventListener("abort",l);function c(){p.abort(),n&&n.removeEventListener("abort",l),clearTimeout(g)}r.timeout&&p.once("socket",function(u){g=setTimeout(function(){a(new Fe(`network timeout at: ${r.url}`,"request-timeout")),c()},r.timeout)}),p.on("error",function(u){a(new Fe(`request to ${r.url} failed, reason: ${u.message}`,"system",u)),o&&o.body&&Gn(o.body,u),c()}),G8(p,function(u){n&&n.aborted||o&&o.body&&Gn(o.body,u)}),parseInt(process.version.substring(1))<14&&p.on("socket",function(u){u.addListener("close",function(Q){let C=u.listenerCount("data")>0;if(o&&C&&!Q&&!(n&&n.aborted)){let m=new Error("Premature close");m.code="ERR_STREAM_PREMATURE_CLOSE",o.body.emit("error",m)}})}),p.on("response",function(u){clearTimeout(g);let Q=b8(u.headers);if(St.isRedirect(u.statusCode)){let I=Q.get("Location"),y=null;try{y=I===null?null:new qa(I,r.url).toString()}catch{if(r.redirect!=="manual"){a(new Fe(`uri requested responds with an invalid redirect URL: ${I}`,"invalid-redirect")),c();return}}switch(r.redirect){case"error":a(new Fe(`uri requested responds with a redirect, redirect mode is set to error: ${r.url}`,"no-redirect")),c();return;case"manual":if(y!==null)try{Q.set("Location",y)}catch(k){a(k)}break;case"follow":if(y===null)break;if(r.counter>=r.follow){a(new Fe(`maximum redirect reached at: ${r.url}`,"max-redirect")),c();return}let S={headers:new hA(r.headers),follow:r.follow,counter:r.counter+1,agent:r.agent,compress:r.compress,method:r.method,body:r.body,signal:r.signal,timeout:r.timeout,size:r.size};if(!Y8(r.url,y)||!J8(r.url,y))for(let k of["authorization","www-authenticate","cookie","cookie2"])S.headers.delete(k);if(u.statusCode!==303&&r.body&&el(r)===null){a(new Fe("Cannot follow redirect with body being a readable stream","unsupported-redirect")),c();return}(u.statusCode===303||(u.statusCode===301||u.statusCode===302)&&r.method==="POST")&&(S.method="GET",S.body=void 0,S.headers.delete("content-length")),t(St(new bt(y,S))),c();return}}u.once("end",function(){n&&n.removeEventListener("abort",l)});let C=u.pipe(new Z2),m={url:r.url,status:u.statusCode,statusText:u.statusMessage,headers:Q,size:r.size,timeout:r.timeout,counter:r.counter},B=Q.get("Content-Encoding");if(!r.compress||r.method==="HEAD"||B===null||u.statusCode===204||u.statusCode===304){o=new BA(C,m),t(o);return}let w={flush:Xt.Z_SYNC_FLUSH,finishFlush:Xt.Z_SYNC_FLUSH};if(B=="gzip"||B=="x-gzip"){C=C.pipe(Xt.createGunzip(w)),o=new BA(C,m),t(o);return}if(B=="deflate"||B=="x-deflate"){let I=u.pipe(new Z2);I.once("data",function(y){(y[0]&15)===8?C=C.pipe(Xt.createInflate()):C=C.pipe(Xt.createInflateRaw()),o=new BA(C,m),t(o)}),I.on("end",function(){o||(o=new BA(C,m),t(o))});return}if(B=="br"&&typeof Xt.createBrotliDecompress=="function"){C=C.pipe(Xt.createBrotliDecompress()),o=new BA(C,m),t(o);return}o=new BA(C,m),t(o)}),N8(p,r)})}function G8(e,A){let t;e.on("socket",function(a){t=a}),e.on("response",function(a){let r=a.headers;r["transfer-encoding"]==="chunked"&&!r["content-length"]&&a.once("close",function(i){if(t&&t.listenerCount("data")>0&&!i){let n=new Error("Premature close");n.code="ERR_STREAM_PREMATURE_CLOSE",A(n)}})})}function Gn(e,A){e.destroy?e.destroy(A):(e.emit("error",A),e.end())}St.isRedirect=function(e){return e===301||e===302||e===303||e===307||e===308};St.Promise=global.Promise;tl.exports=PA=St;Object.defineProperty(PA,"__esModule",{value:!0});PA.default=PA;PA.Headers=hA;PA.Request=bt;PA.Response=BA;PA.FetchError=Fe});var il=E((zt,rl)=>{var Oa=al(),x8=Oa.default||Oa,ai=function(e,A){return/^\/\//.test(e)&&(e="https:"+e),x8.call(this,e,A)};ai.ponyfill=!0;rl.exports=zt=ai;zt.fetch=ai;zt.Headers=Oa.Headers;zt.Request=Oa.Request;zt.Response=Oa.Response;zt.default=ai});var ol=E(k1=>{"use strict";var nl=k1&&k1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(k1,"__esModule",{value:!0});k1.useFetch=void 0;var sl=require("react"),_8=nl(u2()),q8=nl(C2()),H8=Xr(),O8=it(),P8=il();function W8(e){if(e){let A=q8.default.parse(e),t=_8.default.parse(A.type);if(t.subtype==="json"||t.suffix==="json"||t.suffix&&/\bjson\b/i.test(t.suffix)||t.subtype&&/\bjson\b/i.test(t.subtype))return!0}return!1}async function Z8(e){if(!e.ok)throw new Error(e.statusText);let A=e.headers.get("content-type");return A&&W8(A)?await e.json():await e.text()}function j8(e,A){let{parseResponse:t,initialData:a,execute:r,keepPreviousData:i,onError:s,onData:n,onWillExecute:o,...d}=A||{},l={initialData:a,execute:r,keepPreviousData:i,onError:s,onData:n,onWillExecute:o},p=(0,O8.useLatest)(t||Z8),g=(0,sl.useRef)(),c=(0,sl.useCallback)(async(u,Q)=>{let C=await(0,P8.fetch)(u,{signal:g.current?.signal,...Q});return await p.current(C)},[p]);return(0,H8.useCachedPromise)(c,[e,d],{...l,abortable:g})}k1.useFetch=j8});var dl=E(Kt=>{"use strict";Object.defineProperty(Kt,"__esModule",{value:!0});Kt.signals=void 0;Kt.signals=[];Kt.signals.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Kt.signals.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Kt.signals.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT")});var pl=E(WA=>{"use strict";var ri;Object.defineProperty(WA,"__esModule",{value:!0});WA.unload=WA.load=WA.onExit=WA.signals=void 0;var ii=dl();Object.defineProperty(WA,"signals",{enumerable:!0,get:function(){return ii.signals}});var si=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",Pn=Symbol.for("signal-exit emitter"),Wn=globalThis,X8=Object.defineProperty.bind(Object),Zn=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Wn[Pn])return Wn[Pn];X8(Wn,Pn,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(A,t){this.listeners[A].push(t)}removeListener(A,t){let a=this.listeners[A],r=a.indexOf(t);r!==-1&&(r===0&&a.length===1?a.length=0:a.splice(r,1))}emit(A,t,a){if(this.emitted[A])return!1;this.emitted[A]=!0;let r=!1;for(let i of this.listeners[A])r=i(t,a)===!0||r;return A==="exit"&&(r=this.emit("afterExit",t,a)||r),r}},ni=class{},z8=e=>({onExit(A,t){return e.onExit(A,t)},load(){return e.load()},unload(){return e.unload()}}),jn=class extends ni{onExit(){return()=>{}}load(){}unload(){}},Xn=class extends ni{#e=zn.platform==="win32"?"SIGINT":"SIGHUP";#a=new Zn;#A;#t;#r;#s={};#i=!1;constructor(A){super(),this.#A=A,this.#s={};for(let t of ii.signals)this.#s[t]=()=>{let a=this.#A.listeners(t),{count:r}=this.#a,i=A;if(typeof i.__signal_exit_emitter__=="object"&&typeof i.__signal_exit_emitter__.count=="number"&&(r+=i.__signal_exit_emitter__.count),a.length===r){this.unload();let s=this.#a.emit("exit",null,t),n=t==="SIGHUP"?this.#e:t;s||A.kill(A.pid,n)}};this.#r=A.reallyExit,this.#t=A.emit}onExit(A,t){if(!si(this.#A))return()=>{};this.#i===!1&&this.load();let a=t?.alwaysLast?"afterExit":"exit";return this.#a.on(a,A),()=>{this.#a.removeListener(a,A),this.#a.listeners.exit.length===0&&this.#a.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#i){this.#i=!0,this.#a.count+=1;for(let A of ii.signals)try{let t=this.#s[A];t&&this.#A.on(A,t)}catch{}this.#A.emit=(A,...t)=>this.#o(A,...t),this.#A.reallyExit=A=>this.#n(A)}}unload(){this.#i&&(this.#i=!1,ii.signals.forEach(A=>{let t=this.#s[A];if(!t)throw new Error("Listener not defined for signal: "+A);try{this.#A.removeListener(A,t)}catch{}}),this.#A.emit=this.#t,this.#A.reallyExit=this.#r,this.#a.count-=1)}#n(A){return si(this.#A)?(this.#A.exitCode=A||0,this.#a.emit("exit",this.#A.exitCode,null),this.#r.call(this.#A,this.#A.exitCode)):0}#o(A,...t){let a=this.#t;if(A==="exit"&&si(this.#A)){typeof t[0]=="number"&&(this.#A.exitCode=t[0]);let r=a.call(this.#A,A,...t);return this.#a.emit("exit",this.#A.exitCode,null),r}else return a.call(this.#A,A,...t)}},zn=globalThis.process;ri=z8(si(zn)?new Xn(zn):new jn),WA.onExit=ri.onExit,WA.load=ri.load,WA.unload=ri.unload});var oi=E(IA=>{"use strict";var K8=IA&&IA.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(IA,"__esModule",{value:!0});IA.defaultParsing=IA.handleOutput=IA.getSpawnedResult=IA.getSpawnedPromise=void 0;var $8=require("node:buffer"),cl=K8(require("node:stream")),e5=require("node:util"),A5=pl();function t5(e,{timeout:A}={}){let t=new Promise((n,o)=>{e.on("exit",(d,l)=>{n({exitCode:d,signal:l,timedOut:!1})}),e.on("error",d=>{o(d)}),e.stdin&&e.stdin.on("error",d=>{o(d)})});if(A===0||A===void 0)return t;let a,r=new Promise((n,o)=>{a=setTimeout(()=>{e.kill("SIGTERM"),o(Object.assign(new Error("Timed out"),{timedOut:!0,signal:"SIGTERM"}))},A)}),i=t.finally(()=>{clearTimeout(a)}),s=(0,A5.onExit)(()=>{e.kill()});return Promise.race([r,i]).finally(()=>s())}IA.getSpawnedPromise=t5;var Kn=class extends Error{constructor(){super("The output is too big"),this.name="MaxBufferError"}},a5=(0,e5.promisify)(cl.default.pipeline);function r5(e){let{encoding:A}=e,t=A==="buffer",a=new cl.default.PassThrough({objectMode:!1});A&&A!=="buffer"&&a.setEncoding(A);let r=0,i=[];return a.on("data",s=>{i.push(s),r+=s.length}),a.getBufferedValue=()=>t?Buffer.concat(i,r):i.join(""),a.getBufferedLength=()=>r,a}async function ll(e,A){let t=r5(A);return await new Promise((a,r)=>{let i=s=>{s&&t.getBufferedLength()<=$8.constants.MAX_LENGTH&&(s.bufferedData=t.getBufferedValue()),r(s)};(async()=>{try{await a5(e,t),a()}catch(s){i(s)}})(),t.on("data",()=>{t.getBufferedLength()>1e3*1e3*80&&i(new Kn)})}),t.getBufferedValue()}async function gl(e,A){e.destroy();try{return await A}catch(t){return t.bufferedData}}async function i5({stdout:e,stderr:A},{encoding:t},a){let r=ll(e,{encoding:t}),i=ll(A,{encoding:t});try{return await Promise.all([a,r,i])}catch(s){return Promise.all([{error:s,exitCode:null,signal:s.signal,timedOut:s.timedOut||!1},gl(e,r),gl(A,i)])}}IA.getSpawnedResult=i5;function s5(e){let A=typeof e=="string"?` +`:10,t=typeof e=="string"?"\r":13;return e[e.length-1]===A&&(e=e.slice(0,-1)),e[e.length-1]===t&&(e=e.slice(0,-1)),e}function n5(e,A){return e.stripFinalNewline?s5(A):A}IA.handleOutput=n5;var o5=({timedOut:e,timeout:A,signal:t,exitCode:a})=>e?`timed out after ${A} milliseconds`:t!=null?`was killed with ${t}`:a!=null?`failed with exit code ${a}`:"failed",d5=({stdout:e,stderr:A,error:t,signal:a,exitCode:r,command:i,timedOut:s,options:n,parentError:o})=>{let l=`Command ${o5({timedOut:s,timeout:n?.timeout,signal:a,exitCode:r})}: ${i}`,p=t?`${l} ${t.message}`:l,g=[p,A,e].filter(Boolean).join(` -`);return t?t.originalMessage=t.message:t=o,t.message=g,t.shortMessage=p,t.command=i,t.exitCode=r,t.signal=a,t.stdout=e,t.stderr=A,"bufferedData"in t&&delete t.bufferedData,t};function k5({stdout:e,stderr:A,error:t,exitCode:a,signal:r,timedOut:i,command:s,options:n,parentError:o}){if(t||a!==0||r!==null)throw F5({error:t,exitCode:a,signal:r,stdout:e,stderr:A,command:s,timedOut:i,options:n,parentError:o});return e}fA.defaultParsing=k5});var Dl=E(V1=>{"use strict";var L5=V1&&V1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(V1,"__esModule",{value:!0});V1.useExec=void 0;var U5=L5(require("node:child_process")),yl=require("react"),T5=ai(),M5=dt(),Ka=Ei(),V5=/ +/g;function Y5(e,A){if(A)return[e,...A];let t=[];for(let a of e.trim().split(V5)){let r=t[t.length-1];r&&r.endsWith("\\")?t[t.length-1]=`${r.slice(0,-1)} ${a}`:t.push(a)}return t}function J5(e,A,t){let{parseOutput:a,input:r,onData:i,onWillExecute:s,initialData:n,execute:o,keepPreviousData:d,onError:l,...p}=Array.isArray(A)?t||{}:A||{},g={initialData:n,execute:o,keepPreviousData:d,onError:l,onData:i,onWillExecute:s},c=(0,yl.useRef)(),u=(0,M5.useLatest)(a||Ka.defaultParsing),Q=(0,yl.useCallback)(async(m,C,B,f)=>{let[h,...w]=Y5(m,C),v=[h,...w].join(" "),S={stripFinalNewline:!0,...B,timeout:B?.timeout||1e4,signal:c.current?.signal,encoding:B?.encoding===null?"buffer":B?.encoding||"utf8",env:{PATH:"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",...process.env,...B?.env}},x=U5.default.spawn(h,w,S),we=(0,Ka.getSpawnedPromise)(x,S);f&&x.stdin.end(f);let[{error:me,exitCode:Nt,signal:Se,timedOut:le},mA,X]=await(0,Ka.getSpawnedResult)(x,S,we),re=(0,Ka.handleOutput)(S,mA),U=(0,Ka.handleOutput)(S,X);return u.current({stdout:re,stderr:U,error:me,exitCode:Nt,signal:Se,timedOut:le,command:v,options:S,parentError:new Error})},[u]);return(0,T5.useCachedPromise)(Q,[e,Array.isArray(A)?A:[],p,r],{...g,abortable:c})}V1.useExec=J5});var Sl=E(Y1=>{"use strict";var hi=Y1&&Y1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Y1,"__esModule",{value:!0});Y1.useSQL=void 0;var XA=require("react/jsx-runtime"),ke=require("@raycast/api"),G5=require("node:fs"),Qi=require("node:fs/promises"),Nl=hi(require("node:os")),vl=hi(require("node:child_process")),Rl=hi(require("node:path")),x5=hi(Gn()),Ci=require("react"),_5=Ja(),q5=dt(),mi=Ei(),H5=Tn();function O5(e,A,t){let{permissionPriming:a,...r}=t||{},[i,s]=(0,Ci.useState)(),n=(0,q5.useLatest)(t||{}),o=(0,Ci.useRef)(),d=(0,Ci.useCallback)(p=>{console.error(p);let g=p instanceof Error&&p.message.includes("authorization denied")?new po("You do not have permission to access the database."):p;P5(g)?s((0,XA.jsx)(W5,{priming:n.current.permissionPriming})):n.current.onError?n.current.onError(g):(console.error(g),ke.environment.launchType!==ke.LaunchType.Background&&(0,ke.showToast)({style:ke.Toast.Style.Failure,title:"Cannot query the data",message:g.message,primaryAction:(0,H5.handleErrorToastAction)(g)}))},[n]),l=(0,Ci.useMemo)(()=>{if(!(0,G5.existsSync)(e))throw new Error("The database does not exist");let p;return async(g,c)=>{let u=o.current?.signal,Q=vl.default.spawn("sqlite3",["--json","--readonly",g,c],{signal:u}),m=(0,mi.getSpawnedPromise)(Q),[{error:C,exitCode:B,signal:f},h,w]=await(0,mi.getSpawnedResult)(Q,{encoding:"utf-8"},m);if(Bi(u),w.match("(5)")||w.match("(14)")){if(!p){let x=Rl.default.join(Nl.default.tmpdir(),"useSQL",(0,x5.default)(g));await(0,Qi.mkdir)(x,{recursive:!0}),Bi(u),p=Rl.default.join(x,"db.db"),await(0,Qi.copyFile)(g,p),await(0,Qi.writeFile)(p+"-shm",""),await(0,Qi.writeFile)(p+"-wal",""),Bi(u)}let v=vl.default.spawn("sqlite3",["--json","--readonly","--vfs","unix-none",p,c],{signal:u}),S=(0,mi.getSpawnedPromise)(v);[{error:C,exitCode:B,signal:f},h,w]=await(0,mi.getSpawnedResult)(v,{encoding:"utf-8"},S),Bi(u)}if(C||B!==0||f!==null)throw new Error(w);return JSON.parse(h.trim()||"[]")}},[e]);return{...(0,_5.usePromise)(l,[e,A],{...r,onError:d}),permissionView:i}}Y1.useSQL=O5;var po=class extends Error{constructor(A){super(A),this.name="PermissionError"}};function P5(e){return e instanceof Error&&e.name==="PermissionError"}var bl=parseInt(Nl.default.release().split(".")[0])>=22,oo=bl?"Settings":"Preferences";function W5(e){let A=bl?{title:"Open System Settings -> Privacy",target:"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"}:{title:"Open System Preferences -> Security",target:"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"};return ke.environment.commandMode==="menu-bar"?(0,XA.jsxs)(ke.MenuBarExtra,{icon:ke.Icon.Warning,title:ke.environment.commandName,children:[(0,XA.jsx)(ke.MenuBarExtra.Item,{title:"Raycast needs full disk access",tooltip:`You can revert this access in ${oo} whenever you want`}),e.priming?(0,XA.jsx)(ke.MenuBarExtra.Item,{title:e.priming,tooltip:`You can revert this access in ${oo} whenever you want`}):null,(0,XA.jsx)(ke.MenuBarExtra.Separator,{}),(0,XA.jsx)(ke.MenuBarExtra.Item,{title:A.title,onAction:()=>(0,ke.open)(A.target)})]}):(0,XA.jsx)(ke.List,{children:(0,XA.jsx)(ke.List.EmptyView,{icon:{source:{light:"https://raycast.com/uploads/extensions-utils-security-permissions-light.png",dark:"https://raycast.com/uploads/extensions-utils-security-permissions-dark.png"}},title:"Raycast needs full disk access.",description:`${e.priming?e.priming+` -`:""}You can revert this access in ${oo} whenever you want.`,actions:(0,XA.jsx)(ke.ActionPanel,{children:(0,XA.jsx)(ke.Action.Open,{...A})})})})}function Bi(e){if(e?.aborted){let A=new Error("aborted");throw A.name="AbortError",A}}});var Ll=E(a1=>{"use strict";Object.defineProperty(a1,"__esModule",{value:!0});a1.useForm=a1.FormValidation=void 0;var ct=require("react"),Fl=dt(),kl;(function(e){e.Required="required"})(kl=a1.FormValidation||(a1.FormValidation={}));function lo(e,A){if(e){if(typeof e=="function")return e(A);if(e===kl.Required){let t=typeof A<"u"&&A!==null;if(t)switch(typeof A){case"string":t=A.length>0;break;case"object":Array.isArray(A)?t=A.length>0:A instanceof Date&&(t=A.getTime()>0);break;default:break}if(!t)return"The item is required"}}}function j5(e){let{onSubmit:A,validation:t,initialValues:a={}}=e,[r,i]=(0,ct.useState)(a),[s,n]=(0,ct.useState)({}),o=(0,ct.useRef)({}),d=(0,Fl.useLatest)(t||{}),l=(0,Fl.useLatest)(A),p=(0,ct.useCallback)(C=>{o.current[C]?.focus()},[o]),g=(0,ct.useCallback)(async C=>{let B=!1;for(let[h,w]of Object.entries(d.current)){let v=lo(w,C[h]);v&&(B||(B={},p(h)),B[h]=v)}if(B)return n(B),!1;let f=await l.current(C);return typeof f=="boolean"?f:!0},[d,l,p]),c=(0,ct.useCallback)((C,B)=>{n(f=>({...f,[C]:B}))},[n]),u=(0,ct.useCallback)(function(C,B){i(f=>({...f,[C]:typeof B=="function"?B(f[C]):B}))},[i]),Q=(0,ct.useMemo)(()=>new Proxy({},{get(C,B){let f=d.current[B],h=r[B];return{onChange(w){s[B]&&(lo(f,w)||c(B,void 0)),u(B,w)},onBlur(w){let v=lo(f,w.target.value);v&&c(B,v)},error:s[B],id:B,value:typeof h>"u"?null:h,ref:w=>{o.current[B]=w}}}}),[s,d,c,r,o,u]),m=(0,ct.useCallback)((C={})=>{i(C),n({})},[i,n]);return{handleSubmit:g,setValidationError:c,setValue:u,values:r,itemProps:Q,focus:p,reset:m}}a1.useForm=j5});var Tl=E(Ii=>{"use strict";Object.defineProperty(Ii,"__esModule",{value:!0});Ii.useAI=void 0;var Ul=require("react"),Z5=require("@raycast/api"),X5=Ja();function z5(e,A={}){let{creativity:t,stream:a,model:r,...i}=A,[s,n]=(0,Ul.useState)(""),o=(0,Ul.useRef)(),{isLoading:d,error:l,revalidate:p}=(0,X5.usePromise)(async(g,c,u)=>{n("");let Q=Z5.AI.ask(g,{creativity:c,model:r,signal:o.current?.signal});u===!1?n(await Q):(Q.on("data",m=>{n(C=>C+m)}),await Q)},[e,t,a],{...i,abortable:o});return{isLoading:d,data:s,error:l,revalidate:p}}Ii.useAI=z5});var Yl=E(fi=>{"use strict";Object.defineProperty(fi,"__esModule",{value:!0});fi.useFrecencySorting=void 0;var go=require("react"),Ml=dt(),K5=Ai(),$5=10,Vl=24*60*60*1e3,eC=Math.log(2)/($5*Vl),AC={Default:100,Embed:0,Bookmark:140};function tC(e){let A=Date.now(),t=e?e.lastVisited:0,a=e?e.frecency:0,r=(A-t)/Vl,i=AC.Default*Math.exp(-eC*r),s=a+i;return{lastVisited:A,frecency:s}}var aC=e=>{if(process.env.NODE_ENV!=="production"&&(typeof e!="object"||!e||!("id"in e)||typeof e.id!="string"))throw new Error("Specify a key function or make sure your items have an 'id' property");return e.id};function rC(e,A){let t=(0,Ml.useLatest)(A?.key||aC),a=(0,Ml.useLatest)(A?.sortUnvisited),[r,i]=(0,K5.useCachedState)(`raycast_frecency_${A?.namespace}`,{}),s=(0,go.useCallback)(async function(l){let p=t.current(l);i(g=>{let c=g[p],u=tC(c);return{...g,[p]:u}})},[t,i]),n=(0,go.useCallback)(async function(l){let p=t.current(l);i(g=>{let c={...g};return delete c[p],c})},[t,i]);return{data:(0,go.useMemo)(()=>e?e.sort((d,l)=>{let p=r[t.current(d)],g=r[t.current(l)];return p&&!g?-1:!p&&g?1:p&&g?g.frecency-p.frecency:a.current?a.current(d,l):0}):[],[r,e,t,a]),visitItem:s,resetRanking:n}}fi.useFrecencySorting=rC});var ql=E(J1=>{"use strict";Object.defineProperty(J1,"__esModule",{value:!0});J1.slightlyLighterColor=J1.slightlyDarkerColor=void 0;function iC(e){let A=0,t=0,a=0;if(e.length===4)A=parseInt(`${e[1]}${e[1]}`,16),t=parseInt(`${e[2]}${e[2]}`,16),a=parseInt(`${e[3]}${e[3]}`,16);else if(e.length===7)A=parseInt(`${e[1]}${e[2]}`,16),t=parseInt(`${e[3]}${e[4]}`,16),a=parseInt(`${e[5]}${e[6]}`,16);else throw new Error(`Malformed hex color: ${e}`);return{r:A,g:t,b:a}}function sC({r:e,g:A,b:t}){let a=e.toString(16),r=A.toString(16),i=t.toString(16);return a.length===1&&(a=`0${a}`),r.length===1&&(r=`0${r}`),i.length===1&&(i=`0${i}`),`#${a}${r}${i}`}function nC({r:e,g:A,b:t}){e/=255,A/=255,t/=255;let a=Math.min(e,A,t),r=Math.max(e,A,t),i=r-a,s=0,n=0,o=0;return i===0?s=0:r===e?s=(A-t)/i%6:r===A?s=(t-e)/i+2:s=(e-A)/i+4,s=Math.round(s*60),s<0&&(s+=360),o=(r+a)/2,n=i===0?0:i/(1-Math.abs(2*o-1)),n=+(n*100).toFixed(1),o=+(o*100).toFixed(1),{h:s,s:n,l:o}}function oC({h:e,s:A,l:t}){A/=100,t/=100;let a=(1-Math.abs(2*t-1))*A,r=a*(1-Math.abs(e/60%2-1)),i=t-a/2,s=0,n=0,o=0;return e>=0&&e<60?(s=a,n=r,o=0):e>=60&&e<120?(s=r,n=a,o=0):e>=120&&e<180?(s=0,n=a,o=r):e>=180&&e<240?(s=0,n=r,o=a):e>=240&&e<300?(s=r,n=0,o=a):e>=300&&e<360&&(s=a,n=0,o=r),s=Math.round((s+i)*255),n=Math.round((n+i)*255),o=Math.round((o+i)*255),{r:s,g:n,b:o}}function Jl(e){return nC(iC(e))}function Gl(e){return sC(oC(e))}function xl(e,A,t){return A<t?e<A?A:e>t?t:e:e<t?t:e>A?A:e}var _l=12;function dC(e){let A=Jl(e);return Gl({h:A.h,s:A.s,l:xl(A.l-_l,0,100)})}J1.slightlyDarkerColor=dC;function pC(e){let A=Jl(e);return Gl({h:A.h,s:A.s,l:xl(A.l+_l,0,100)})}J1.slightlyLighterColor=pC});var Pl=E(wi=>{"use strict";Object.defineProperty(wi,"__esModule",{value:!0});wi.getAvatarIcon=void 0;var Hl=ql();function G1(e,A){let t=e.charCodeAt(A);if(Number.isNaN(t))return["",A];if(t<55296||t>57343)return[e.charAt(A),A];if(55296<=t&&t<=56319){if(e.length<=A+1)throw new Error("High surrogate without following low surrogate");let r=e.charCodeAt(A+1);if(56320>r||r>57343)throw new Error("High surrogate without following low surrogate");return[e.charAt(A)+e.charAt(A+1),A+1]}if(A===0)throw new Error("Low surrogate without preceding high surrogate");let a=e.charCodeAt(A-1);if(55296>a||a>56319)throw new Error("Low surrogate without preceding high surrogate");return[e.charAt(A+1),A+1]}var Ol=["#DC829A","#D64854","#D47600","#D36CDD","#52A9E4","#7871E8","#70920F","#43B93A","#EB6B3E","#26B795","#D85A9B","#A067DC","#BD9500","#5385D9"];function lC(e,A){let t=e.trim().split(" "),a;if(t.length==1&&G1(t[0],0)[0])a=G1(t[0],0)[0];else if(t.length>1){let o=G1(t[0],0)[0]||"",d=G1(t[t.length-1],0)[0]??"";a=o+d}else a="";let r;if(A?.background)r=A?.background;else{let o=0,[d,l]=G1(a,0);for(;d;)o+=d.charCodeAt(0),[d,l]=G1(a,l+1);let p=o%Ol.length;r=Ol[p]}let s=50-0;return`data:image/svg+xml,${`<svg width="100px" height="100px"> +`);return t?t.originalMessage=t.message:t=o,t.message=g,t.shortMessage=p,t.command=i,t.exitCode=r,t.signal=a,t.stdout=e,t.stderr=A,"bufferedData"in t&&delete t.bufferedData,t};function p5({stdout:e,stderr:A,error:t,exitCode:a,signal:r,timedOut:i,command:s,options:n,parentError:o}){if(t||a!==0||r!==null)throw d5({error:t,exitCode:a,signal:r,stdout:e,stderr:A,command:s,timedOut:i,options:n,parentError:o});return e}IA.defaultParsing=p5});var El=E(L1=>{"use strict";var l5=L1&&L1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(L1,"__esModule",{value:!0});L1.useExec=void 0;var g5=l5(require("node:child_process")),ul=require("react"),c5=Xr(),u5=it(),Pa=oi(),E5=/ +/g;function Q5(e,A){if(A)return[e,...A];let t=[];for(let a of e.trim().split(E5)){let r=t[t.length-1];r&&r.endsWith("\\")?t[t.length-1]=`${r.slice(0,-1)} ${a}`:t.push(a)}return t}function m5(e,A,t){let{parseOutput:a,input:r,onData:i,onWillExecute:s,initialData:n,execute:o,keepPreviousData:d,onError:l,...p}=Array.isArray(A)?t||{}:A||{},g={initialData:n,execute:o,keepPreviousData:d,onError:l,onData:i,onWillExecute:s},c=(0,ul.useRef)(),u=(0,u5.useLatest)(a||Pa.defaultParsing),Q=(0,ul.useCallback)(async(C,m,B,w)=>{let[I,...y]=Q5(C,m),S=[I,...y].join(" "),k={stripFinalNewline:!0,...B,timeout:B?.timeout||1e4,signal:c.current?.signal,encoding:B?.encoding===null?"buffer":B?.encoding||"utf8",env:{PATH:"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",...process.env,...B?.env}},x=g5.default.spawn(I,y,k),we=(0,Pa.getSpawnedPromise)(x,k);w&&x.stdin.end(w);let[{error:Ce,exitCode:yt,signal:be,timedOut:le},mA,j]=await(0,Pa.getSpawnedResult)(x,k,we),re=(0,Pa.handleOutput)(k,mA),U=(0,Pa.handleOutput)(k,j);return u.current({stdout:re,stderr:U,error:Ce,exitCode:yt,signal:be,timedOut:le,command:S,options:k,parentError:new Error})},[u]);return(0,c5.useCachedPromise)(Q,[e,Array.isArray(A)?A:[],p,r],{...g,abortable:c})}L1.useExec=m5});var hl=E(U1=>{"use strict";var ci=U1&&U1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(U1,"__esModule",{value:!0});U1.useSQL=void 0;var ZA=require("react/jsx-runtime"),ke=require("@raycast/api"),C5=require("node:fs"),di=require("node:fs/promises"),Cl=ci(require("node:os")),Ql=ci(require("node:child_process")),ml=ci(require("node:path")),B5=ci(Fn()),pi=require("react"),h5=La(),I5=it(),li=oi(),f5=Rn();function w5(e,A,t){let{permissionPriming:a,...r}=t||{},[i,s]=(0,pi.useState)(),n=(0,I5.useLatest)(t||{}),o=(0,pi.useRef)(),d=(0,pi.useCallback)(p=>{console.error(p);let g=p instanceof Error&&p.message.includes("authorization denied")?new eo("You do not have permission to access the database."):p;y5(g)?s((0,ZA.jsx)(D5,{priming:n.current.permissionPriming})):n.current.onError?n.current.onError(g):(console.error(g),ke.environment.launchType!==ke.LaunchType.Background&&(0,ke.showToast)({style:ke.Toast.Style.Failure,title:"Cannot query the data",message:g.message,primaryAction:(0,f5.handleErrorToastAction)(g)}))},[n]),l=(0,pi.useMemo)(()=>{if(!(0,C5.existsSync)(e))throw new Error("The database does not exist");let p;return async(g,c)=>{let u=o.current?.signal,Q=Ql.default.spawn("sqlite3",["--json","--readonly",g,c],{signal:u}),C=(0,li.getSpawnedPromise)(Q),[{error:m,exitCode:B,signal:w},I,y]=await(0,li.getSpawnedResult)(Q,{encoding:"utf-8"},C);if(gi(u),y.match("(5)")||y.match("(14)")){if(!p){let x=ml.default.join(Cl.default.tmpdir(),"useSQL",(0,B5.default)(g));await(0,di.mkdir)(x,{recursive:!0}),gi(u),p=ml.default.join(x,"db.db"),await(0,di.copyFile)(g,p),await(0,di.writeFile)(p+"-shm",""),await(0,di.writeFile)(p+"-wal",""),gi(u)}let S=Ql.default.spawn("sqlite3",["--json","--readonly","--vfs","unix-none",p,c],{signal:u}),k=(0,li.getSpawnedPromise)(S);[{error:m,exitCode:B,signal:w},I,y]=await(0,li.getSpawnedResult)(S,{encoding:"utf-8"},k),gi(u)}if(m||B!==0||w!==null)throw new Error(y);return JSON.parse(I.trim()||"[]")}},[e]);return{...(0,h5.usePromise)(l,[e,A],{...r,onError:d}),permissionView:i}}U1.useSQL=w5;var eo=class extends Error{constructor(A){super(A),this.name="PermissionError"}};function y5(e){return e instanceof Error&&e.name==="PermissionError"}var Bl=parseInt(Cl.default.release().split(".")[0])>=22,$n=Bl?"Settings":"Preferences";function D5(e){let A=Bl?{title:"Open System Settings -> Privacy",target:"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"}:{title:"Open System Preferences -> Security",target:"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"};return ke.environment.commandMode==="menu-bar"?(0,ZA.jsxs)(ke.MenuBarExtra,{icon:ke.Icon.Warning,title:ke.environment.commandName,children:[(0,ZA.jsx)(ke.MenuBarExtra.Item,{title:"Raycast needs full disk access",tooltip:`You can revert this access in ${$n} whenever you want`}),e.priming?(0,ZA.jsx)(ke.MenuBarExtra.Item,{title:e.priming,tooltip:`You can revert this access in ${$n} whenever you want`}):null,(0,ZA.jsx)(ke.MenuBarExtra.Separator,{}),(0,ZA.jsx)(ke.MenuBarExtra.Item,{title:A.title,onAction:()=>(0,ke.open)(A.target)})]}):(0,ZA.jsx)(ke.List,{children:(0,ZA.jsx)(ke.List.EmptyView,{icon:{source:{light:"https://raycast.com/uploads/extensions-utils-security-permissions-light.png",dark:"https://raycast.com/uploads/extensions-utils-security-permissions-dark.png"}},title:"Raycast needs full disk access.",description:`${e.priming?e.priming+` +`:""}You can revert this access in ${$n} whenever you want.`,actions:(0,ZA.jsx)(ke.ActionPanel,{children:(0,ZA.jsx)(ke.Action.Open,{...A})})})})}function gi(e){if(e?.aborted){let A=new Error("aborted");throw A.name="AbortError",A}}});var wl=E($t=>{"use strict";Object.defineProperty($t,"__esModule",{value:!0});$t.useForm=$t.FormValidation=void 0;var dt=require("react"),Il=it(),fl;(function(e){e.Required="required"})(fl=$t.FormValidation||($t.FormValidation={}));function Ao(e,A){if(e){if(typeof e=="function")return e(A);if(e===fl.Required){let t=typeof A<"u"&&A!==null;if(t)switch(typeof A){case"string":t=A.length>0;break;case"object":Array.isArray(A)?t=A.length>0:A instanceof Date&&(t=A.getTime()>0);break;default:break}if(!t)return"The item is required"}}}function R5(e){let{onSubmit:A,validation:t,initialValues:a={}}=e,[r,i]=(0,dt.useState)(a),[s,n]=(0,dt.useState)({}),o=(0,dt.useRef)({}),d=(0,Il.useLatest)(t||{}),l=(0,Il.useLatest)(A),p=(0,dt.useCallback)(m=>{o.current[m]?.focus()},[o]),g=(0,dt.useCallback)(async m=>{let B=!1;for(let[I,y]of Object.entries(d.current)){let S=Ao(y,m[I]);S&&(B||(B={},p(I)),B[I]=S)}if(B)return n(B),!1;let w=await l.current(m);return typeof w=="boolean"?w:!0},[d,l,p]),c=(0,dt.useCallback)((m,B)=>{n(w=>({...w,[m]:B}))},[n]),u=(0,dt.useCallback)(function(m,B){i(w=>({...w,[m]:typeof B=="function"?B(w[m]):B}))},[i]),Q=(0,dt.useMemo)(()=>new Proxy({},{get(m,B){let w=d.current[B],I=r[B];return{onChange(y){s[B]&&(Ao(w,y)||c(B,void 0)),u(B,y)},onBlur(y){let S=Ao(w,y.target.value);S&&c(B,S)},error:s[B],id:B,value:typeof I>"u"?null:I,ref:y=>{o.current[B]=y}}}}),[s,d,c,r,o,u]),C=(0,dt.useCallback)((m={})=>{i(m),n({})},[i,n]);return{handleSubmit:g,setValidationError:c,setValue:u,values:r,itemProps:Q,focus:p,reset:C}}$t.useForm=R5});var Dl=E(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.useAI=void 0;var yl=require("react"),v5=require("@raycast/api"),N5=La();function S5(e,A={}){let{creativity:t,stream:a,model:r,...i}=A,[s,n]=(0,yl.useState)(""),o=(0,yl.useRef)(),{isLoading:d,error:l,revalidate:p}=(0,N5.usePromise)(async(g,c,u)=>{n("");let Q=v5.AI.ask(g,{creativity:c,model:r,signal:o.current?.signal});u===!1?n(await Q):(Q.on("data",C=>{n(m=>m+C)}),await Q)},[e,t,a],{...i,abortable:o});return{isLoading:d,data:s,error:l,revalidate:p}}ui.useAI=S5});var Nl=E(Ei=>{"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});Ei.useFrecencySorting=void 0;var to=require("react"),Rl=it(),b5=Zr(),F5=10,vl=24*60*60*1e3,k5=Math.log(2)/(F5*vl),L5={Default:100,Embed:0,Bookmark:140};function U5(e){let A=Date.now(),t=e?e.lastVisited:0,a=e?e.frecency:0,r=(A-t)/vl,i=L5.Default*Math.exp(-k5*r),s=a+i;return{lastVisited:A,frecency:s}}var T5=e=>{if(process.env.NODE_ENV!=="production"&&(typeof e!="object"||!e||!("id"in e)||typeof e.id!="string"))throw new Error("Specify a key function or make sure your items have an 'id' property");return e.id};function M5(e,A){let t=(0,Rl.useLatest)(A?.key||T5),a=(0,Rl.useLatest)(A?.sortUnvisited),[r,i]=(0,b5.useCachedState)(`raycast_frecency_${A?.namespace}`,{}),s=(0,to.useCallback)(async function(l){let p=t.current(l);i(g=>{let c=g[p],u=U5(c);return{...g,[p]:u}})},[t,i]),n=(0,to.useCallback)(async function(l){let p=t.current(l);i(g=>{let c={...g};return delete c[p],c})},[t,i]);return{data:(0,to.useMemo)(()=>e?e.sort((d,l)=>{let p=r[t.current(d)],g=r[t.current(l)];return p&&!g?-1:!p&&g?1:p&&g?g.frecency-p.frecency:a.current?a.current(d,l):0}):[],[r,e,t,a]),visitItem:s,resetRanking:n}}Ei.useFrecencySorting=M5});var Ll=E(T1=>{"use strict";Object.defineProperty(T1,"__esModule",{value:!0});T1.slightlyLighterColor=T1.slightlyDarkerColor=void 0;function V5(e){let A=0,t=0,a=0;if(e.length===4)A=parseInt(`${e[1]}${e[1]}`,16),t=parseInt(`${e[2]}${e[2]}`,16),a=parseInt(`${e[3]}${e[3]}`,16);else if(e.length===7)A=parseInt(`${e[1]}${e[2]}`,16),t=parseInt(`${e[3]}${e[4]}`,16),a=parseInt(`${e[5]}${e[6]}`,16);else throw new Error(`Malformed hex color: ${e}`);return{r:A,g:t,b:a}}function Y5({r:e,g:A,b:t}){let a=e.toString(16),r=A.toString(16),i=t.toString(16);return a.length===1&&(a=`0${a}`),r.length===1&&(r=`0${r}`),i.length===1&&(i=`0${i}`),`#${a}${r}${i}`}function J5({r:e,g:A,b:t}){e/=255,A/=255,t/=255;let a=Math.min(e,A,t),r=Math.max(e,A,t),i=r-a,s=0,n=0,o=0;return i===0?s=0:r===e?s=(A-t)/i%6:r===A?s=(t-e)/i+2:s=(e-A)/i+4,s=Math.round(s*60),s<0&&(s+=360),o=(r+a)/2,n=i===0?0:i/(1-Math.abs(2*o-1)),n=+(n*100).toFixed(1),o=+(o*100).toFixed(1),{h:s,s:n,l:o}}function G5({h:e,s:A,l:t}){A/=100,t/=100;let a=(1-Math.abs(2*t-1))*A,r=a*(1-Math.abs(e/60%2-1)),i=t-a/2,s=0,n=0,o=0;return e>=0&&e<60?(s=a,n=r,o=0):e>=60&&e<120?(s=r,n=a,o=0):e>=120&&e<180?(s=0,n=a,o=r):e>=180&&e<240?(s=0,n=r,o=a):e>=240&&e<300?(s=r,n=0,o=a):e>=300&&e<360&&(s=a,n=0,o=r),s=Math.round((s+i)*255),n=Math.round((n+i)*255),o=Math.round((o+i)*255),{r:s,g:n,b:o}}function Sl(e){return J5(V5(e))}function bl(e){return Y5(G5(e))}function Fl(e,A,t){return A<t?e<A?A:e>t?t:e:e<t?t:e>A?A:e}var kl=12;function x5(e){let A=Sl(e);return bl({h:A.h,s:A.s,l:Fl(A.l-kl,0,100)})}T1.slightlyDarkerColor=x5;function _5(e){let A=Sl(e);return bl({h:A.h,s:A.s,l:Fl(A.l+kl,0,100)})}T1.slightlyLighterColor=_5});var Ml=E(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});Qi.getAvatarIcon=void 0;var Ul=Ll();function M1(e,A){let t=e.charCodeAt(A);if(Number.isNaN(t))return["",A];if(t<55296||t>57343)return[e.charAt(A),A];if(55296<=t&&t<=56319){if(e.length<=A+1)throw new Error("High surrogate without following low surrogate");let r=e.charCodeAt(A+1);if(56320>r||r>57343)throw new Error("High surrogate without following low surrogate");return[e.charAt(A)+e.charAt(A+1),A+1]}if(A===0)throw new Error("Low surrogate without preceding high surrogate");let a=e.charCodeAt(A-1);if(55296>a||a>56319)throw new Error("Low surrogate without preceding high surrogate");return[e.charAt(A+1),A+1]}var Tl=["#DC829A","#D64854","#D47600","#D36CDD","#52A9E4","#7871E8","#70920F","#43B93A","#EB6B3E","#26B795","#D85A9B","#A067DC","#BD9500","#5385D9"];function q5(e,A){let t=e.trim().split(" "),a;if(t.length==1&&M1(t[0],0)[0])a=M1(t[0],0)[0];else if(t.length>1){let o=M1(t[0],0)[0]||"",d=M1(t[t.length-1],0)[0]??"";a=o+d}else a="";let r;if(A?.background)r=A?.background;else{let o=0,[d,l]=M1(a,0);for(;d;)o+=d.charCodeAt(0),[d,l]=M1(a,l+1);let p=o%Tl.length;r=Tl[p]}let s=50-0;return`data:image/svg+xml,${`<svg width="100px" height="100px"> ${A?.gradient!==!1?`<defs> <linearGradient id="Gradient" x1="0.25" x2="0.75" y1="0" y2="1"> - <stop offset="0%" stop-color="${(0,Hl.slightlyLighterColor)(r)}"/> + <stop offset="0%" stop-color="${(0,Ul.slightlyLighterColor)(r)}"/> <stop offset="50%" stop-color="${r}"/> - <stop offset="100%" stop-color="${(0,Hl.slightlyDarkerColor)(r)}"/> + <stop offset="100%" stop-color="${(0,Ul.slightlyDarkerColor)(r)}"/> </linearGradient> </defs>`:""} <circle cx="50" cy="50" r="${s}" fill="${A?.gradient!==!1?"url(#Gradient)":r}" /> ${a?`<text x="50" y="80" font-size="${s-1}" font-family="Inter, sans-serif" text-anchor="middle" fill="white">${a.toUpperCase()}</text>`:""} </svg> `.replaceAll(` -`,"")}`}wi.getAvatarIcon=lC});var jl=E(yi=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.getFavicon=void 0;var Wl=require("@raycast/api"),gC=require("url");function cC(e,A){try{let a=(typeof e=="string"?new gC.URL(e):e).hostname;return{source:`https://www.google.com/s2/favicons?sz=${A?.size??64}&domain=${a}`,fallback:A?.fallback??Wl.Icon.Link,mask:A?.mask}}catch(t){return console.error(t),Wl.Icon.Link}}yi.getFavicon=cC});var zl=E(Di=>{"use strict";Object.defineProperty(Di,"__esModule",{value:!0});Di.getProgressIcon=void 0;var Zl=require("@raycast/api");function Xl(e,A,t,a){let r=(a-90)*Math.PI/180;return{x:e+t*Math.cos(r),y:A+t*Math.sin(r)}}function uC(e,A,t,a,r){let i=Xl(e,A,t,r),s=Xl(e,A,t,a),n=r-a<=180?"0":"1";return["M",i.x,i.y,"A",t,t,0,n,0,s.x,s.y].join(" ")}function EC(e,A=Zl.Color.Red,t){let a=t?.background||(Zl.environment.appearance==="light"?"black":"white"),r=t?.backgroundOpacity||.1,i=10,n=50-5-i/2;return`data:image/svg+xml,${`<svg width="100px" height="100px"> +`,"")}`}Qi.getAvatarIcon=q5});var Yl=E(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.getFavicon=void 0;var Vl=require("@raycast/api"),H5=require("url");function O5(e,A){try{let a=(typeof e=="string"?new H5.URL(e):e).hostname;return{source:`https://www.google.com/s2/favicons?sz=${A?.size??64}&domain=${a}`,fallback:A?.fallback??Vl.Icon.Link,mask:A?.mask}}catch(t){return console.error(t),Vl.Icon.Link}}mi.getFavicon=O5});var xl=E(Ci=>{"use strict";Object.defineProperty(Ci,"__esModule",{value:!0});Ci.getProgressIcon=void 0;var Jl=require("@raycast/api");function Gl(e,A,t,a){let r=(a-90)*Math.PI/180;return{x:e+t*Math.cos(r),y:A+t*Math.sin(r)}}function P5(e,A,t,a,r){let i=Gl(e,A,t,r),s=Gl(e,A,t,a),n=r-a<=180?"0":"1";return["M",i.x,i.y,"A",t,t,0,n,0,s.x,s.y].join(" ")}function W5(e,A=Jl.Color.Red,t){let a=t?.background||(Jl.environment.appearance==="light"?"black":"white"),r=t?.backgroundOpacity||.1,i=10,n=50-5-i/2;return`data:image/svg+xml,${`<svg width="100px" height="100px"> <circle cx="50" cy="50" r="${n}" stroke-width="${i}" stroke="${e<1?a:A}" opacity="${e<1?r:"1"}" fill="none" /> - ${e>0&&e<1?`<path d="${uC(50,50,n,0,e*360)}" stroke="${A}" stroke-width="${i}" fill="none" />`:""} + ${e>0&&e<1?`<path d="${P5(50,50,n,0,e*360)}" stroke="${A}" stroke-width="${i}" fill="none" />`:""} </svg> `.replaceAll(` -`,"")}`}Di.getProgressIcon=EC});var Kl=E(ut=>{"use strict";var QC=ut&&ut.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),co=ut&&ut.__exportStar||function(e,A){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(A,t)&&QC(A,e,t)};Object.defineProperty(ut,"__esModule",{value:!0});co(Pl(),ut);co(jl(),ut);co(zl(),ut)});var $l=E(x1=>{"use strict";var CC=x1&&x1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(x1,"__esModule",{value:!0});x1.runAppleScript=void 0;var mC=CC(require("node:child_process")),$a=Ei();async function BC(e,A,t){let{humanReadableOutput:a,language:r,timeout:i,...s}=Array.isArray(A)?t||{}:A||{},n=a!==!1?[]:["-ss"];r==="JavaScript"&&n.push("-l","JavaScript"),Array.isArray(A)&&n.push("-",...A);let o=mC.default.spawn("osascript",n,{...s,env:{PATH:"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"}}),d=(0,$a.getSpawnedPromise)(o,{timeout:i||1e4});o.stdin.end(e);let[{error:l,exitCode:p,signal:g,timedOut:c},u,Q]=await(0,$a.getSpawnedResult)(o,{encoding:"utf8"},d),m=(0,$a.handleOutput)({stripFinalNewline:!0},u),C=(0,$a.handleOutput)({stripFinalNewline:!0},Q);return(0,$a.defaultParsing)({stdout:m,stderr:C,error:l,exitCode:p,signal:g,timedOut:c,command:"osascript",options:t,parentError:new Error})}x1.runAppleScript=BC});var uo=E(Le=>{"use strict";var hC=Le&&Le.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),MA=Le&&Le.__exportStar||function(e,A){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(A,t)&&hC(A,e,t)};Object.defineProperty(Le,"__esModule",{value:!0});MA(Ja(),Le);MA(Ai(),Le);MA(ai(),Le);MA(ml(),Le);MA(Dl(),Le);MA(Sl(),Le);MA(Ll(),Le);MA(Tl(),Le);MA(Yl(),Le);MA(Kl(),Le);MA($l(),Le)});var ie=E((Lb,e4)=>{e4.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size")}});var ee=E((Ub,A4)=>{"use strict";var Ee=class extends Error{constructor(A){super(A),this.name="UndiciError",this.code="UND_ERR"}},Eo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ConnectTimeoutError",this.message=A||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},Qo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="HeadersTimeoutError",this.message=A||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},Co=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="HeadersOverflowError",this.message=A||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},mo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="BodyTimeoutError",this.message=A||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},Bo=class e extends Ee{constructor(A,t,a,r){super(A),Error.captureStackTrace(this,e),this.name="ResponseStatusCodeError",this.message=A||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=r,this.status=t,this.statusCode=t,this.headers=a}},ho=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InvalidArgumentError",this.message=A||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},Io=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InvalidReturnValueError",this.message=A||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},fo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="AbortError",this.message=A||"Request aborted",this.code="UND_ERR_ABORTED"}},wo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InformationalError",this.message=A||"Request information",this.code="UND_ERR_INFO"}},yo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="RequestContentLengthMismatchError",this.message=A||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},Do=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ResponseContentLengthMismatchError",this.message=A||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},vo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ClientDestroyedError",this.message=A||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},Ro=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ClientClosedError",this.message=A||"The client is closed",this.code="UND_ERR_CLOSED"}},No=class e extends Ee{constructor(A,t){super(A),Error.captureStackTrace(this,e),this.name="SocketError",this.message=A||"Socket error",this.code="UND_ERR_SOCKET",this.socket=t}},vi=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="NotSupportedError",this.message=A||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},bo=class extends Ee{constructor(A){super(A),Error.captureStackTrace(this,vi),this.name="MissingUpstreamError",this.message=A||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},So=class e extends Error{constructor(A,t,a){super(A),Error.captureStackTrace(this,e),this.name="HTTPParserError",this.code=t?`HPE_${t}`:void 0,this.data=a?a.toString():void 0}},Fo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ResponseExceededMaxSizeError",this.message=A||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}};A4.exports={HTTPParserError:So,UndiciError:Ee,HeadersTimeoutError:Qo,HeadersOverflowError:Co,BodyTimeoutError:mo,RequestContentLengthMismatchError:yo,ConnectTimeoutError:Eo,ResponseStatusCodeError:Bo,InvalidArgumentError:ho,InvalidReturnValueError:Io,RequestAbortedError:fo,ClientDestroyedError:vo,ClientClosedError:Ro,InformationalError:wo,SocketError:No,NotSupportedError:vi,ResponseContentLengthMismatchError:Do,BalancedPoolMissingUpstreamError:bo,ResponseExceededMaxSizeError:Fo}});var H=E((Tb,g4)=>{"use strict";var i4=require("assert"),{kDestroyed:s4,kBodyUsed:t4}=ie(),{IncomingMessage:IC}=require("http"),_1=require("stream"),fC=require("net"),{InvalidArgumentError:Ue}=ee(),{Blob:a4}=require("buffer"),Ni=require("util"),{stringify:wC}=require("querystring"),[ko,r4]=process.versions.node.split(".").map(e=>Number(e));function yC(){}function Lo(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function n4(e){return a4&&e instanceof a4||e&&typeof e=="object"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function DC(e,A){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let t=wC(A);return t&&(e+="?"+t),e}function o4(e){if(typeof e=="string"){if(e=new URL(e),!/^https?:/.test(e.origin||e.protocol))throw new Ue("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new Ue("Invalid URL: The URL argument must be a non-null object.");if(e.port!=null&&e.port!==""&&!Number.isFinite(parseInt(e.port)))throw new Ue("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new Ue("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new Ue("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new Ue("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new Ue("Invalid URL origin: the origin must be a string or null/undefined.");if(!/^https?:/.test(e.origin||e.protocol))throw new Ue("Invalid URL protocol: the URL must start with `http:` or `https:`.");if(!(e instanceof URL)){let A=e.port!=null?e.port:e.protocol==="https:"?443:80,t=e.origin!=null?e.origin:`${e.protocol}//${e.hostname}:${A}`,a=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;t.endsWith("/")&&(t=t.substring(0,t.length-1)),a&&!a.startsWith("/")&&(a=`/${a}`),e=new URL(t+a)}return e}function vC(e){if(e=o4(e),e.pathname!=="/"||e.search||e.hash)throw new Ue("invalid url");return e}function RC(e){if(e[0]==="["){let t=e.indexOf("]");return i4(t!==-1),e.substr(1,t-1)}let A=e.indexOf(":");return A===-1?e:e.substr(0,A)}function NC(e){if(!e)return null;i4.strictEqual(typeof e,"string");let A=RC(e);return fC.isIP(A)?"":A}function bC(e){return JSON.parse(JSON.stringify(e))}function SC(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function FC(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function kC(e){if(e==null)return 0;if(Lo(e)){let A=e._readableState;return A&&A.ended===!0&&Number.isFinite(A.length)?A.length:null}else{if(n4(e))return e.size!=null?e.size:null;if(p4(e))return e.byteLength}return null}function Uo(e){return!e||!!(e.destroyed||e[s4])}function d4(e){let A=e&&e._readableState;return Uo(e)&&A&&!A.endEmitted}function LC(e,A){!Lo(e)||Uo(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===IC&&(e.socket=null),e.destroy(A)):A&&process.nextTick((t,a)=>{t.emit("error",a)},e,A),e.destroyed!==!0&&(e[s4]=!0))}var UC=/timeout=(\d+)/;function TC(e){let A=e.toString().match(UC);return A?parseInt(A[1],10)*1e3:null}function MC(e,A={}){for(let t=0;t<e.length;t+=2){let a=e[t].toString().toLowerCase(),r=A[a];r?(Array.isArray(r)||(r=[r],A[a]=r),r.push(e[t+1].toString("utf8"))):Array.isArray(e[t+1])?A[a]=e[t+1]:A[a]=e[t+1].toString("utf8")}return"content-length"in A&&"content-disposition"in A&&(A["content-disposition"]=Buffer.from(A["content-disposition"]).toString("latin1")),A}function VC(e){let A=[],t=!1,a=-1;for(let r=0;r<e.length;r+=2){let i=e[r+0].toString(),s=e[r+1].toString("utf8");i.length===14&&(i==="content-length"||i.toLowerCase()==="content-length")?(A.push(i,s),t=!0):i.length===19&&(i==="content-disposition"||i.toLowerCase()==="content-disposition")?a=A.push(i,s)-1:A.push(i,s)}return t&&a!==-1&&(A[a]=Buffer.from(A[a]).toString("latin1")),A}function p4(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function YC(e,A,t){if(!e||typeof e!="object")throw new Ue("handler must be an object");if(typeof e.onConnect!="function")throw new Ue("invalid onConnect method");if(typeof e.onError!="function")throw new Ue("invalid onError method");if(typeof e.onBodySent!="function"&&e.onBodySent!==void 0)throw new Ue("invalid onBodySent method");if(t||A==="CONNECT"){if(typeof e.onUpgrade!="function")throw new Ue("invalid onUpgrade method")}else{if(typeof e.onHeaders!="function")throw new Ue("invalid onHeaders method");if(typeof e.onData!="function")throw new Ue("invalid onData method");if(typeof e.onComplete!="function")throw new Ue("invalid onComplete method")}}function JC(e){return!!(e&&(_1.isDisturbed?_1.isDisturbed(e)||e[t4]:e[t4]||e.readableDidRead||e._readableState&&e._readableState.dataEmitted||d4(e)))}function GC(e){return!!(e&&(_1.isErrored?_1.isErrored(e):/state: 'errored'/.test(Ni.inspect(e))))}function xC(e){return!!(e&&(_1.isReadable?_1.isReadable(e):/state: 'readable'/.test(Ni.inspect(e))))}function _C(e){return{localAddress:e.localAddress,localPort:e.localPort,remoteAddress:e.remoteAddress,remotePort:e.remotePort,remoteFamily:e.remoteFamily,timeout:e.timeout,bytesWritten:e.bytesWritten,bytesRead:e.bytesRead}}var er;function qC(e){if(er||(er=require("stream/web").ReadableStream),er.from)return er.from(e);let A;return new er({async start(){A=e[Symbol.asyncIterator]()},async pull(t){let{done:a,value:r}=await A.next();if(a)queueMicrotask(()=>{t.close()});else{let i=Buffer.isBuffer(r)?r:Buffer.from(r);t.enqueue(new Uint8Array(i))}return t.desiredSize>0},async cancel(t){await A.return()}},0)}function HC(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function OC(e){if(e){if(typeof e.throwIfAborted=="function")e.throwIfAborted();else if(e.aborted){let A=new Error("The operation was aborted");throw A.name="AbortError",A}}}var Ri;function PC(e,A){return typeof Symbol.dispose=="symbol"&&(Ri||(Ri=require("events")),typeof Ri.addAbortListener=="function"&&"aborted"in e)?Ri.addAbortListener(e,A):"addEventListener"in e?(e.addEventListener("abort",A,{once:!0}),()=>e.removeEventListener("abort",A)):(e.addListener("abort",A),()=>e.removeListener("abort",A))}var WC=!!String.prototype.toWellFormed;function jC(e){return WC?`${e}`.toWellFormed():Ni.toUSVString?Ni.toUSVString(e):`${e}`}var l4=Object.create(null);l4.enumerable=!0;g4.exports={kEnumerableProperty:l4,nop:yC,isDisturbed:JC,isErrored:GC,isReadable:xC,toUSVString:jC,isReadableAborted:d4,isBlobLike:n4,parseOrigin:vC,parseURL:o4,getServerName:NC,isStream:Lo,isIterable:FC,isAsyncIterable:SC,isDestroyed:Uo,parseRawHeaders:VC,parseHeaders:MC,parseKeepAliveTimeout:TC,destroy:LC,bodyLength:kC,deepClone:bC,ReadableStreamFrom:qC,isBuffer:p4,validateHandler:YC,getSocketInfo:_C,isFormDataLike:HC,buildURL:DC,throwIfAborted:OC,addAbortListener:PC,nodeMajor:ko,nodeMinor:r4,nodeHasAutoSelectFamily:ko>18||ko===18&&r4>=13}});var E4=E((Mb,u4)=>{"use strict";var To=Date.now(),Tt,Mt=[];function ZC(){To=Date.now();let e=Mt.length,A=0;for(;A<e;){let t=Mt[A];t.state===0?t.state=To+t.delay:t.state>0&&To>=t.state&&(t.state=-1,t.callback(t.opaque)),t.state===-1?(t.state=-2,A!==e-1?Mt[A]=Mt.pop():Mt.pop(),e-=1):A+=1}Mt.length>0&&c4()}function c4(){Tt&&Tt.refresh?Tt.refresh():(clearTimeout(Tt),Tt=setTimeout(ZC,1e3),Tt.unref&&Tt.unref())}var bi=class{constructor(A,t,a){this.callback=A,this.delay=t,this.opaque=a,this.state=-2,this.refresh()}refresh(){this.state===-2&&(Mt.push(this),(!Tt||Mt.length===1)&&c4()),this.state=0}clear(){this.state=-1}};u4.exports={setTimeout(e,A,t){return A<1e3?setTimeout(e,A,t):new bi(e,A,t)},clearTimeout(e){e instanceof bi?e.clear():clearTimeout(e)}}});var Si=E((h4,I4)=>{"use strict";function XC(e){if(e.length===0)return;let A=Object.create(null),t=0;for(;t<e.length;++t){let s=e.charCodeAt(t);if(r1[s]!==1){if(s!==47||t===0)return;break}}if(t===e.length)return;let a=e.slice(0,t).toLowerCase(),r=++t;for(;t<e.length;++t){let s=e.charCodeAt(t);if(r1[s]!==1){if(t===r||zC(e,t,A)===void 0)return;break}}if(t===r)return;let i=e.slice(r,t).toLowerCase();return{type:a,subtype:i,params:A}}function zC(e,A,t){for(;A<e.length;){for(;A<e.length;++A){let n=e.charCodeAt(A);if(n!==32&&n!==9)break}if(A===e.length)break;if(e.charCodeAt(A++)!==59)return;for(;A<e.length;++A){let n=e.charCodeAt(A);if(n!==32&&n!==9)break}if(A===e.length)return;let a,r=A;for(;A<e.length;++A){let n=e.charCodeAt(A);if(r1[n]!==1){if(n!==61)return;break}}if(A===e.length||(a=e.slice(r,A),++A,A===e.length))return;let i="",s;if(e.charCodeAt(A)===34){s=++A;let n=!1;for(;A<e.length;++A){let o=e.charCodeAt(A);if(o===92){n?(s=A,n=!1):(i+=e.slice(s,A),n=!0);continue}if(o===34){if(n){s=A,n=!1;continue}i+=e.slice(s,A);break}if(n&&(s=A-1,n=!1),B4[o]!==1)return}if(A===e.length)return;++A}else{for(s=A;A<e.length;++A){let n=e.charCodeAt(A);if(r1[n]!==1){if(A===s)return;break}}i=e.slice(s,A)}a=a.toLowerCase(),t[a]===void 0&&(t[a]=i)}return t}function KC(e,A){if(e.length===0)return;let t=Object.create(null),a=0;for(;a<e.length;++a){let i=e.charCodeAt(a);if(r1[i]!==1){if($C(e,a,t,A)===void 0)return;break}}return{type:e.slice(0,a).toLowerCase(),params:t}}function $C(e,A,t,a){for(;A<e.length;){for(;A<e.length;++A){let d=e.charCodeAt(A);if(d!==32&&d!==9)break}if(A===e.length)break;if(e.charCodeAt(A++)!==59)return;for(;A<e.length;++A){let d=e.charCodeAt(A);if(d!==32&&d!==9)break}if(A===e.length)return;let r,i=A;for(;A<e.length;++A){let d=e.charCodeAt(A);if(r1[d]!==1){if(d===61)break;return}}if(A===e.length)return;let s="",n,o;if(r=e.slice(i,A),r.charCodeAt(r.length-1)===42){let d=++A;for(;A<e.length;++A){let p=e.charCodeAt(A);if(Am[p]!==1){if(p!==39)return;break}}if(A===e.length)return;for(o=e.slice(d,A),++A;A<e.length&&e.charCodeAt(A)!==39;++A);if(A===e.length||(++A,A===e.length))return;n=A;let l=0;for(;A<e.length;++A){let p=e.charCodeAt(A);if(tm[p]!==1){if(p===37){let g,c;if(A+2<e.length&&(g=Q4[e.charCodeAt(A+1)])!==-1&&(c=Q4[e.charCodeAt(A+2)])!==-1){let u=(g<<4)+c;s+=e.slice(n,A),s+=String.fromCharCode(u),A+=2,n=A+1,u>=128?l=2:l===0&&(l=1);continue}return}break}}if(s+=e.slice(n,A),s=m4(s,o,l),s===void 0)return}else{if(++A,A===e.length)return;if(e.charCodeAt(A)===34){n=++A;let d=!1;for(;A<e.length;++A){let l=e.charCodeAt(A);if(l===92){d?(n=A,d=!1):(s+=e.slice(n,A),d=!0);continue}if(l===34){if(d){n=A,d=!1;continue}s+=e.slice(n,A);break}if(d&&(n=A-1,d=!1),B4[l]!==1)return}if(A===e.length)return;++A}else{for(n=A;A<e.length;++A){let d=e.charCodeAt(A);if(r1[d]!==1){if(A===n)return;break}}s=e.slice(n,A)}if(s=a(s,2),s===void 0)return}r=r.toLowerCase(),t[r]===void 0&&(t[r]=s)}return t}function C4(e){let A;for(;;)switch(e){case"utf-8":case"utf8":return Ar.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return Ar.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return Ar.utf16le;case"base64":return Ar.base64;default:if(A===void 0){A=!0,e=e.toLowerCase();continue}return Ar.other.bind(e)}}var Ar={utf8:(e,A)=>{if(e.length===0)return"";if(typeof e=="string"){if(A<2)return e;e=Buffer.from(e,"latin1")}return e.utf8Slice(0,e.length)},latin1:(e,A)=>e.length===0?"":typeof e=="string"?e:e.latin1Slice(0,e.length),utf16le:(e,A)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,"latin1")),e.ucs2Slice(0,e.length)),base64:(e,A)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,"latin1")),e.base64Slice(0,e.length)),other:(e,A)=>{if(e.length===0)return"";typeof e=="string"&&(e=Buffer.from(e,"latin1"));try{return new TextDecoder(h4).decode(e)}catch{}}};function m4(e,A,t){let a=C4(A);if(a)return a(e,t)}function em(e){if(typeof e!="string")return"";for(let A=e.length-1;A>=0;--A)switch(e.charCodeAt(A)){case 47:case 92:return e=e.slice(A+1),e===".."||e==="."?"":e}return e===".."||e==="."?"":e}var r1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],B4=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],Am=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],tm=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],Q4=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];I4.exports={basename:em,convertToUTF8:m4,getDecoder:C4,parseContentType:XC,parseDisposition:KC}});var D4=E((Vb,y4)=>{"use strict";function f4(e,A,t,a,r){for(let i=0;i<r;++i)if(e[A+i]!==t[a+i])return!1;return!0}var Mo=class{constructor(A,t){if(typeof t!="function")throw new Error("Missing match callback");if(typeof A=="string")A=Buffer.from(A);else if(!Buffer.isBuffer(A))throw new Error(`Expected Buffer for needle, got ${typeof A}`);let a=A.length;if(this.maxMatches=1/0,this.matches=0,this._cb=t,this._lookbehindSize=0,this._needle=A,this._bufPos=0,this._lookbehind=Buffer.allocUnsafe(a),this._occ=[a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a],a>1)for(let r=0;r<a-1;++r)this._occ[A[r]]=a-1-r}reset(){this.matches=0,this._lookbehindSize=0,this._bufPos=0}push(A,t){let a;Buffer.isBuffer(A)||(A=Buffer.from(A,"latin1"));let r=A.length;for(this._bufPos=t||0;a!==r&&this.matches<this.maxMatches;)a=am(this,A);return a}destroy(){let A=this._lookbehindSize;A&&this._cb(!1,this._lookbehind,0,A,!1),this.reset()}};function am(e,A){let t=A.length,a=e._needle,r=a.length,i=-e._lookbehindSize,s=r-1,n=a[s],o=t-r,d=e._occ,l=e._lookbehind;if(i<0){for(;i<0&&i<=o;){let g=i+s,c=g<0?l[e._lookbehindSize+g]:A[g];if(c===n&&w4(e,A,i,s))return e._lookbehindSize=0,++e.matches,i>-e._lookbehindSize?e._cb(!0,l,0,e._lookbehindSize+i,!1):e._cb(!0,void 0,0,0,!0),e._bufPos=i+r;i+=d[c]}for(;i<0&&!w4(e,A,i,t-i);)++i;if(i<0){let g=e._lookbehindSize+i;return g>0&&e._cb(!1,l,0,g,!1),e._lookbehindSize-=g,l.copy(l,0,g,e._lookbehindSize),l.set(A,e._lookbehindSize),e._lookbehindSize+=t,e._bufPos=t,t}e._cb(!1,l,0,e._lookbehindSize,!1),e._lookbehindSize=0}i+=e._bufPos;let p=a[0];for(;i<=o;){let g=A[i+s];if(g===n&&A[i]===p&&f4(a,0,A,i,s))return++e.matches,i>0?e._cb(!0,A,e._bufPos,i,!0):e._cb(!0,void 0,0,0,!0),e._bufPos=i+r;i+=d[g]}for(;i<t;){if(A[i]!==p||!f4(A,i,a,0,t-i)){++i;continue}A.copy(l,0,i,t),e._lookbehindSize=t-i;break}return i>0&&e._cb(!1,A,e._bufPos,i<t?i:t,!0),e._bufPos=t,t}function w4(e,A,t,a){let r=e._lookbehind,i=e._lookbehindSize,s=e._needle;for(let n=0;n<a;++n,++t)if((t<0?r[i+t]:A[t])!==s[n])return!1;return!0}y4.exports=Mo});var U4=E((Yb,L4)=>{"use strict";var{Readable:rm,Writable:im}=require("stream"),sm=D4(),{basename:nm,convertToUTF8:v4,getDecoder:om,parseContentType:dm,parseDisposition:pm}=Si(),lm=Buffer.from(`\r -`),gm=Buffer.from("\r"),cm=Buffer.from("-");function R4(){}var um=2e3,q1=16*1024,Fi=0,N4=1,b4=2,Vo=class{constructor(A){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=Fi,this.name="",this.value="",this.crlf=0,this.cb=A}reset(){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=Fi,this.name="",this.value="",this.crlf=0}push(A,t,a){let r=t;for(;t<a;)switch(this.state){case Fi:{let i=!1;for(;t<a;++t){if(this.byteCount===q1)return-1;++this.byteCount;let s=A[t];if(Cm[s]!==1){if(s!==58||(this.name+=A.latin1Slice(r,t),this.name.length===0))return-1;++t,i=!0,this.state=N4;break}}if(!i){this.name+=A.latin1Slice(r,t);break}}case N4:{let i=!1;for(;t<a;++t){if(this.byteCount===q1)return-1;++this.byteCount;let s=A[t];if(s!==32&&s!==9){r=t,i=!0,this.state=b4;break}}if(!i)break}case b4:switch(this.crlf){case 0:for(;t<a;++t){if(this.byteCount===q1)return-1;++this.byteCount;let i=A[t];if(mm[i]!==1){if(i!==13)return-1;++this.crlf;break}}this.value+=A.latin1Slice(r,t++);break;case 1:if(this.byteCount===q1||(++this.byteCount,A[t++]!==10))return-1;++this.crlf;break;case 2:{if(this.byteCount===q1)return-1;++this.byteCount;let i=A[t];i===32||i===9?(r=t,this.crlf=0):(++this.pairCount<um&&(this.name=this.name.toLowerCase(),this.header[this.name]===void 0?this.header[this.name]=[this.value]:this.header[this.name].push(this.value)),i===13?(++this.crlf,++t):(r=t,this.crlf=0,this.state=Fi,this.name="",this.value=""));break}case 3:{if(this.byteCount===q1||(++this.byteCount,A[t++]!==10))return-1;let i=this.header;return this.reset(),this.cb(i),t}}break}return t}},Yo=class extends rm{constructor(A,t){super(A),this.truncated=!1,this._readcb=null,this.once("end",()=>{if(this._read(),--t._fileEndsLeft===0&&t._finalcb){let a=t._finalcb;t._finalcb=null,process.nextTick(a)}})}_read(A){let t=this._readcb;t&&(this._readcb=null,t())}},S4={push:(e,A)=>{},destroy:()=>{}};function Em(e,A){let t=e._writecb;e._writecb=null,A?e.destroy(A):t&&t()}function Qm(e,A){return e}var Jo=class extends im{constructor(A){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.highWaterMark=="number"?A.highWaterMark:void 0};if(super(t),!A.conType.params||typeof A.conType.params.boundary!="string")throw new Error("Multipart: Boundary not found");let a=A.conType.params.boundary,r=typeof A.defParamCharset=="string"&&A.defParamCharset?om(A.defParamCharset):Qm,i=A.defCharset||"utf8",s=A.preservePath,n={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.fileHwm=="number"?A.fileHwm:void 0},o=A.limits,d=o&&typeof o.fieldSize=="number"?o.fieldSize:1*1024*1024,l=o&&typeof o.fileSize=="number"?o.fileSize:1/0,p=o&&typeof o.files=="number"?o.files:1/0,g=o&&typeof o.fields=="number"?o.fields:1/0,c=o&&typeof o.parts=="number"?o.parts:1/0,u=-1,Q=0,m=0,C=!1;this._fileEndsLeft=0,this._fileStream=void 0,this._complete=!1;let B=0,f,h=0,w,v,S,x,we=!1,me=!1,Nt=!1;this._hparser=null;let Se=new Vo(X=>{this._hparser=null,C=!1,S="text/plain",w=i,v="7bit",x=void 0,we=!1;let re;if(!X["content-disposition"]){C=!0;return}let U=pm(X["content-disposition"][0],r);if(!U||U.type!=="form-data"){C=!0;return}if(U.params&&(U.params.name&&(x=U.params.name),U.params["filename*"]?re=U.params["filename*"]:U.params.filename&&(re=U.params.filename),re!==void 0&&!s&&(re=nm(re))),X["content-type"]){let T=dm(X["content-type"][0]);T&&(S=`${T.type}/${T.subtype}`,T.params&&typeof T.params.charset=="string"&&(w=T.params.charset.toLowerCase()))}if(X["content-transfer-encoding"]&&(v=X["content-transfer-encoding"][0].toLowerCase()),S==="application/octet-stream"||re!==void 0){if(m===p){me||(me=!0,this.emit("filesLimit")),C=!0;return}if(++m,this.listenerCount("file")===0){C=!0;return}B=0,this._fileStream=new Yo(n,this),++this._fileEndsLeft,this.emit("file",x,this._fileStream,{filename:re,encoding:v,mimeType:S})}else{if(Q===g){Nt||(Nt=!0,this.emit("fieldsLimit")),C=!0;return}if(++Q,this.listenerCount("field")===0){C=!0;return}f=[],h=0}}),le=0,mA=(X,re,U,T,qA)=>{e:for(;re;){if(this._hparser!==null){let W=this._hparser.push(re,U,T);if(W===-1){this._hparser=null,Se.reset(),this.emit("error",new Error("Malformed part header"));break}U=W}if(U===T)break;if(le!==0){if(le===1){switch(re[U]){case 45:le=2,++U;break;case 13:le=3,++U;break;default:le=0}if(U===T)return}if(le===2){if(le=0,re[U]===45){this._complete=!0,this._bparser=S4;return}let W=this._writecb;this._writecb=R4,mA(!1,cm,0,1,!1),this._writecb=W}else if(le===3)if(le=0,re[U]===10){if(++U,u>=c||(this._hparser=Se,U===T))break;continue e}else{let W=this._writecb;this._writecb=R4,mA(!1,gm,0,1,!1),this._writecb=W}}if(!C){if(this._fileStream){let W,aA=Math.min(T-U,l-B);qA?W=re.slice(U,U+aA):(W=Buffer.allocUnsafe(aA),re.copy(W,0,U,U+aA)),B+=W.length,B===l?(W.length>0&&this._fileStream.push(W),this._fileStream.emit("limit"),this._fileStream.truncated=!0,C=!0):this._fileStream.push(W)||(this._writecb&&(this._fileStream._readcb=this._writecb),this._writecb=null)}else if(f!==void 0){let W,aA=Math.min(T-U,d-h);qA?W=re.slice(U,U+aA):(W=Buffer.allocUnsafe(aA),re.copy(W,0,U,U+aA)),h+=aA,f.push(W),h===d&&(C=!0,we=!0)}}break}if(X){if(le=1,this._fileStream)this._fileStream.push(null),this._fileStream=null;else if(f!==void 0){let W;switch(f.length){case 0:W="";break;case 1:W=v4(f[0],w,0);break;default:W=v4(Buffer.concat(f,h),w,0)}f=void 0,h=0,this.emit("field",x,W,{nameTruncated:!1,valueTruncated:we,encoding:v,mimeType:S})}++u===c&&this.emit("partsLimit")}};this._bparser=new sm(`\r ---${a}`,mA),this._writecb=null,this._finalcb=null,this.write(lm)}static detect(A){return A.type==="multipart"&&A.subtype==="form-data"}_write(A,t,a){this._writecb=a,this._bparser.push(A,0),this._writecb&&Em(this)}_destroy(A,t){this._hparser=null,this._bparser=S4,A||(A=k4(this));let a=this._fileStream;a&&(this._fileStream=null,a.destroy(A)),t(A)}_final(A){if(this._bparser.destroy(),!this._complete)return A(new Error("Unexpected end of form"));this._fileEndsLeft?this._finalcb=F4.bind(null,this,A):F4(this,A)}};function F4(e,A,t){if(t)return A(t);t=k4(e),A(t)}function k4(e){if(e._hparser)return new Error("Malformed part header");let A=e._fileStream;if(A&&(e._fileStream=null,A.destroy(new Error("Unexpected end of file"))),!e._complete)return new Error("Unexpected end of form")}var Cm=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],mm=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];L4.exports=Jo});var M4=E((Jb,T4)=>{"use strict";var{Writable:Bm}=require("stream"),{getDecoder:hm}=Si(),Ho=class extends Bm{constructor(A){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.highWaterMark=="number"?A.highWaterMark:void 0};super(t);let a=A.defCharset||"utf8";A.conType.params&&typeof A.conType.params.charset=="string"&&(a=A.conType.params.charset),this.charset=a;let r=A.limits;this.fieldSizeLimit=r&&typeof r.fieldSize=="number"?r.fieldSize:1*1024*1024,this.fieldsLimit=r&&typeof r.fields=="number"?r.fields:1/0,this.fieldNameSizeLimit=r&&typeof r.fieldNameSize=="number"?r.fieldNameSize:100,this._inKey=!0,this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,this._fields=0,this._key="",this._val="",this._byte=-2,this._lastPos=0,this._encode=0,this._decoder=hm(a)}static detect(A){return A.type==="application"&&A.subtype==="x-www-form-urlencoded"}_write(A,t,a){if(this._fields>=this.fieldsLimit)return a();let r=0,i=A.length;if(this._lastPos=0,this._byte!==-2){if(r=Go(this,A,r,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();this._inKey?++this._bytesKey:++this._bytesVal}e:for(;r<i;)if(this._inKey){for(r=xo(this,A,r,i);r<i;){switch(A[r]){case 61:this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._key=this._decoder(this._key,this._encode),this._encode=0,this._inKey=!1;continue e;case 38:if(this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._key=this._decoder(this._key,this._encode),this._encode=0,this._bytesKey>0&&this.emit("field",this._key,"",{nameTruncated:this._keyTrunc,valueTruncated:!1,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),a();continue;case 43:this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._key+=" ",this._lastPos=r+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=r+1,this._byte=-1,r=Go(this,A,r+1,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();++this._bytesKey,r=xo(this,A,r,i);continue}++r,++this._bytesKey,r=xo(this,A,r,i)}this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r))}else{for(r=_o(this,A,r,i);r<i;){switch(A[r]){case 38:if(this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._inKey=!0,this._val=this._decoder(this._val,this._encode),this._encode=0,(this._bytesKey>0||this._bytesVal>0)&&this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),a();continue e;case 43:this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._val+=" ",this._lastPos=r+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._lastPos=r+1,this._byte=-1,r=Go(this,A,r+1,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();++this._bytesVal,r=_o(this,A,r,i);continue}++r,++this._bytesVal,r=_o(this,A,r,i)}this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r))}a()}_final(A){if(this._byte!==-2)return A(new Error("Malformed urlencoded form"));(!this._inKey||this._bytesKey>0||this._bytesVal>0)&&(this._inKey?this._key=this._decoder(this._key,this._encode):this._val=this._decoder(this._val,this._encode),this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"})),A()}};function Go(e,A,t,a){if(t>=a)return a;if(e._byte===-1){let r=qo[A[t++]];if(r===-1)return-1;if(r>=8&&(e._encode=2),t<a){let i=qo[A[t++]];if(i===-1)return-1;e._inKey?e._key+=String.fromCharCode((r<<4)+i):e._val+=String.fromCharCode((r<<4)+i),e._byte=-2,e._lastPos=t}else e._byte=r}else{let r=qo[A[t++]];if(r===-1)return-1;e._inKey?e._key+=String.fromCharCode((e._byte<<4)+r):e._val+=String.fromCharCode((e._byte<<4)+r),e._byte=-2,e._lastPos=t}return t}function xo(e,A,t,a){if(e._bytesKey>e.fieldNameSizeLimit){for(e._keyTrunc||e._lastPos<t&&(e._key+=A.latin1Slice(e._lastPos,t-1)),e._keyTrunc=!0;t<a;++t){let r=A[t];if(r===61||r===38)break;++e._bytesKey}e._lastPos=t}return t}function _o(e,A,t,a){if(e._bytesVal>e.fieldSizeLimit){for(e._valTrunc||e._lastPos<t&&(e._val+=A.latin1Slice(e._lastPos,t-1)),e._valTrunc=!0;t<a&&A[t]!==38;++t)++e._bytesVal;e._lastPos=t}return t}var qo=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];T4.exports=Ho});var Y4=E((Gb,V4)=>{"use strict";var{parseContentType:Im}=Si();function fm(e){let A=e.headers,t=Im(A["content-type"]);if(!t)throw new Error("Malformed content type");for(let a of wm){if(!a.detect(t))continue;let i={limits:e.limits,headers:A,conType:t,highWaterMark:void 0,fileHwm:void 0,defCharset:void 0,defParamCharset:void 0,preservePath:!1};return e.highWaterMark&&(i.highWaterMark=e.highWaterMark),e.fileHwm&&(i.fileHwm=e.fileHwm),i.defCharset=e.defCharset,i.defParamCharset=e.defParamCharset,i.preservePath=e.preservePath,new a(i)}throw new Error(`Unsupported content type: ${A["content-type"]}`)}var wm=[U4(),M4()].filter(function(e){return typeof e.detect=="function"});V4.exports=e=>{if((typeof e!="object"||e===null)&&(e={}),typeof e.headers!="object"||e.headers===null||typeof e.headers["content-type"]!="string")throw new Error("Missing Content-Type");return fm(e)}});var Vt=E((xb,J4)=>{"use strict";var{MessageChannel:ym,receiveMessageOnPort:Dm}=require("worker_threads"),vm=["GET","HEAD","POST"],Rm=[101,204,205,304],Nm=[301,302,303,307,308],bm=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"],Sm=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],Fm=["follow","manual","error"],km=["GET","HEAD","OPTIONS","TRACE"],Lm=["navigate","same-origin","no-cors","cors"],Um=["omit","same-origin","include"],Tm=["default","no-store","reload","no-cache","force-cache","only-if-cached"],Mm=["content-encoding","content-language","content-location","content-type","content-length"],Vm=["half"],Ym=["CONNECT","TRACE","TRACK"],Jm=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],Gm=globalThis.DOMException??(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})(),H1,xm=globalThis.structuredClone??function(A,t=void 0){if(arguments.length===0)throw new TypeError("missing argument");return H1||(H1=new ym),H1.port1.unref(),H1.port2.unref(),H1.port1.postMessage(A,t?.transfer),Dm(H1.port2).message};J4.exports={DOMException:Gm,structuredClone:xm,subresource:Jm,forbiddenMethods:Ym,requestBodyHeader:Mm,referrerPolicy:Sm,requestRedirect:Fm,requestMode:Lm,requestCredentials:Um,requestCache:Tm,redirectStatus:Nm,corsSafeListedMethods:vm,nullBodyStatus:Rm,safeMethods:km,badPorts:bm,requestDuplex:Vm}});var tr=E((qb,G4)=>{"use strict";var Oo=Symbol.for("undici.globalOrigin.1");function _m(){return globalThis[Oo]}function qm(e){if(e!==void 0&&typeof e!="string"&&!(e instanceof URL))throw new Error("Invalid base url");if(e===void 0){Object.defineProperty(globalThis,Oo,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let A=new URL(e);if(A.protocol!=="http:"&&A.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${A.protocol}`);Object.defineProperty(globalThis,Oo,{value:A,writable:!0,enumerable:!1,configurable:!1})}G4.exports={getGlobalOrigin:_m,setGlobalOrigin:qm}});var wA=E((Hb,P4)=>{"use strict";var{redirectStatus:Hm,badPorts:Om,referrerPolicy:Pm}=Vt(),{getGlobalOrigin:Wm}=tr(),{performance:jm}=require("perf_hooks"),{isBlobLike:Zm,toUSVString:Xm,ReadableStreamFrom:zm}=H(),O1=require("assert"),{isUint8Array:Km}=require("util/types"),ki;try{ki=require("crypto")}catch{}function x4(e){let A=e.urlList,t=A.length;return t===0?null:A[t-1].toString()}function $m(e,A){if(!Hm.includes(e.status))return null;let t=e.headersList.get("location");return t!==null&&q4(t)&&(t=new URL(t,x4(e))),t&&!t.hash&&(t.hash=A),t}function rr(e){return e.urlList[e.urlList.length-1]}function eB(e){let A=rr(e);return O4(A)&&Om.includes(A.port)?"blocked":"allowed"}function AB(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function tB(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(!(t===9||t>=32&&t<=126||t>=128&&t<=255))return!1}return!0}function aB(e){return!(e>=127||e<=32||e==="("||e===")"||e==="<"||e===">"||e==="@"||e===","||e===";"||e===":"||e==="\\"||e==='"'||e==="/"||e==="["||e==="]"||e==="?"||e==="="||e==="{"||e==="}")}function _4(e){if(!e||typeof e!="string")return!1;for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t>127||!aB(t))return!1}return!0}function rB(e){return e.length===0?!1:_4(e)}function q4(e){return!(e.startsWith(" ")||e.startsWith(" ")||e.endsWith(" ")||e.endsWith(" ")||e.includes("\0")||e.includes("\r")||e.includes(` -`))}function iB(e,A){let{headersList:t}=A,a=(t.get("referrer-policy")??"").split(","),r="";if(a.length>0)for(let i=a.length;i!==0;i--){let s=a[i-1].trim();if(Pm.includes(s)){r=s;break}}r!==""&&(e.referrerPolicy=r)}function sB(){return"allowed"}function nB(){return"success"}function oB(){return"success"}function dB(e){let A=null;A=e.mode,e.headersList.set("sec-fetch-mode",A)}function pB(e){let A=e.origin;if(e.responseTainting==="cors"||e.mode==="websocket")A&&e.headersList.append("origin",A);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":A=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&jo(e.origin)&&!jo(rr(e))&&(A=null);break;case"same-origin":Li(e,rr(e))||(A=null);break;default:}A&&e.headersList.append("origin",A)}}function lB(e){return jm.now()}function gB(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function cB(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function uB(e){return{referrerPolicy:e.referrerPolicy}}function EB(e){let A=e.referrerPolicy;O1(A);let t=null;if(e.referrer==="client"){let n=Wm();if(!n||n.origin==="null")return"no-referrer";t=new URL(n)}else e.referrer instanceof URL&&(t=e.referrer);let a=Po(t),r=Po(t,!0);a.toString().length>4096&&(a=r);let i=Li(e,a),s=ar(a)&&!ar(e.url);switch(A){case"origin":return r??Po(t,!0);case"unsafe-url":return a;case"same-origin":return i?r:"no-referrer";case"origin-when-cross-origin":return i?a:r;case"strict-origin-when-cross-origin":{let n=rr(e);return Li(a,n)?a:ar(a)&&!ar(n)?"no-referrer":r}case"strict-origin":case"no-referrer-when-downgrade":default:return s?"no-referrer":r}}function Po(e,A){return O1(e instanceof URL),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",A&&(e.pathname="",e.search=""),e)}function ar(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return A(e.origin);function A(t){if(t==null||t==="null")return!1;let a=new URL(t);return!!(a.protocol==="https:"||a.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(a.hostname)||a.hostname==="localhost"||a.hostname.includes("localhost.")||a.hostname.endsWith(".localhost"))}}function QB(e,A){if(ki===void 0)return!0;let t=mB(A);if(t==="no metadata"||t.length===0)return!0;let a=t.sort((s,n)=>n.algo.localeCompare(s.algo)),r=a[0].algo,i=a.filter(s=>s.algo===r);for(let s of i){let n=s.algo,o=s.hash;if(ki.createHash(n).update(e).digest("base64")===o)return!0}return!1}var CB=/((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\x21-\x7e]?)?/i;function mB(e){let A=[],t=!0,a=ki.getHashes();for(let r of e.split(" ")){t=!1;let i=CB.exec(r);if(i===null||i.groups===void 0)continue;let s=i.groups.algo;a.includes(s.toLowerCase())&&A.push(i.groups)}return t===!0?"no metadata":A}function BB(e){}function Li(e,A){return e.origin===A.origin&&e.origin==="null"||e.protocol===A.protocol&&e.hostname===A.hostname&&e.port===A.port}function hB(){let e,A;return{promise:new Promise((a,r)=>{e=a,A=r}),resolve:e,reject:A}}function IB(e){return e.controller.state==="aborted"}function fB(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}function wB(e){return/^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(e)?e.toUpperCase():e}function yB(e){let A=JSON.stringify(e);if(A===void 0)throw new TypeError("Value is not JSON serializable");return O1(typeof A=="string"),A}var DB=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function vB(e,A,t){let a={index:0,kind:t,target:e},r={next(){if(Object.getPrototypeOf(this)!==r)throw new TypeError(`'next' called on an object that does not implement interface ${A} Iterator.`);let{index:i,kind:s,target:n}=a,o=n(),d=o.length;if(i>=d)return{value:void 0,done:!0};let l=o[i];return a.index=i+1,RB(l,s)},[Symbol.toStringTag]:`${A} Iterator`};return Object.setPrototypeOf(r,DB),Object.setPrototypeOf({},r)}function RB(e,A){let t;switch(A){case"key":{t=e[0];break}case"value":{t=e[1];break}case"key+value":{t=e;break}}return{value:t,done:!1}}function NB(e,A,t){let a=s=>queueMicrotask(()=>A(s)),r=s=>queueMicrotask(()=>t(s)),i;try{i=e.stream.getReader()}catch(s){r(s);return}H4(i,a,r)}var Wo=globalThis.ReadableStream;function bB(e){return Wo||(Wo=require("stream/web").ReadableStream),e instanceof Wo||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}var SB=65535;function FB(e){return e.length<SB?String.fromCharCode(...e):e.reduce((A,t)=>A+String.fromCharCode(t),"")}function kB(e){try{e.close()}catch(A){if(!A.message.includes("Controller is already closed"))throw A}}function LB(e){for(let A=0;A<e.length;A++)O1(e.charCodeAt(A)<=255);return e}async function H4(e,A,t){let a=[],r=0;for(;;){let i,s;try{({done:i,value:s}=await e.read())}catch(n){t(n);return}if(i){A(Buffer.concat(a,r));return}if(!Km(s)){t(new TypeError("Received non-Uint8Array chunk"));return}a.push(s),r+=s.length}}function UB(e){O1("protocol"in e);let A=e.protocol;return A==="about:"||A==="blob:"||A==="data:"}function jo(e){return typeof e=="string"?e.startsWith("https:"):e.protocol==="https:"}function O4(e){O1("protocol"in e);let A=e.protocol;return A==="http:"||A==="https:"}var TB=Object.hasOwn||((e,A)=>Object.prototype.hasOwnProperty.call(e,A));P4.exports={isAborted:IB,isCancelled:fB,createDeferredPromise:hB,ReadableStreamFrom:zm,toUSVString:Xm,tryUpgradeRequestToAPotentiallyTrustworthyURL:BB,coarsenedSharedCurrentTime:lB,determineRequestsReferrer:EB,makePolicyContainer:cB,clonePolicyContainer:uB,appendFetchMetadata:dB,appendRequestOriginHeader:pB,TAOCheck:oB,corsCheck:nB,crossOriginResourcePolicyCheck:sB,createOpaqueTimingInfo:gB,setRequestReferrerPolicyOnRedirect:iB,isValidHTTPToken:_4,requestBadPort:eB,requestCurrentURL:rr,responseURL:x4,responseLocationURL:$m,isBlobLike:Zm,isURLPotentiallyTrustworthy:ar,isValidReasonPhrase:tB,sameOrigin:Li,normalizeMethod:wB,serializeJavascriptValueToJSONString:yB,makeIterator:vB,isValidHeaderName:rB,isValidHeaderValue:q4,hasOwn:TB,isErrorLike:AB,fullyReadBody:NB,bytesMatch:QB,isReadableStreamLike:bB,readableStreamClose:kB,isomorphicEncode:LB,isomorphicDecode:FB,urlIsLocal:UB,urlHasHttpsScheme:jo,urlIsHttpHttpsScheme:O4,readAllBytes:H4}});var Et=E((Ob,W4)=>{"use strict";W4.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}});var Ge=E((Pb,Z4)=>{"use strict";var{types:zA}=require("util"),{hasOwn:j4,toUSVString:MB}=wA(),y={};y.converters={};y.util={};y.errors={};y.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};y.errors.conversionFailed=function(e){let A=e.types.length===1?"":" one of",t=`${e.argument} could not be converted to${A}: ${e.types.join(", ")}.`;return y.errors.exception({header:e.prefix,message:t})};y.errors.invalidArgument=function(e){return y.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};y.brandCheck=function(e,A,t=void 0){if(t?.strict!==!1&&!(e instanceof A))throw new TypeError("Illegal invocation");return e?.[Symbol.toStringTag]===A.prototype[Symbol.toStringTag]};y.argumentLengthCheck=function({length:e},A,t){if(e<A)throw y.errors.exception({message:`${A} argument${A!==1?"s":""} required, but${e?" only":""} ${e} found.`,...t})};y.illegalConstructor=function(){throw y.errors.exception({header:"TypeError",message:"Illegal constructor"})};y.util.Type=function(e){switch(typeof e){case"undefined":return"Undefined";case"boolean":return"Boolean";case"string":return"String";case"symbol":return"Symbol";case"number":return"Number";case"bigint":return"BigInt";case"function":case"object":return e===null?"Null":"Object"}};y.util.ConvertToInt=function(e,A,t,a={}){let r,i;A===64?(r=Math.pow(2,53)-1,t==="unsigned"?i=0:i=Math.pow(-2,53)+1):t==="unsigned"?(i=0,r=Math.pow(2,A)-1):(i=Math.pow(-2,A)-1,r=Math.pow(2,A-1)-1);let s=Number(e);if(s===0&&(s=0),a.enforceRange===!0){if(Number.isNaN(s)||s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY)throw y.errors.exception({header:"Integer conversion",message:`Could not convert ${e} to an integer.`});if(s=y.util.IntegerPart(s),s<i||s>r)throw y.errors.exception({header:"Integer conversion",message:`Value must be between ${i}-${r}, got ${s}.`});return s}return!Number.isNaN(s)&&a.clamp===!0?(s=Math.min(Math.max(s,i),r),Math.floor(s)%2===0?s=Math.floor(s):s=Math.ceil(s),s):Number.isNaN(s)||s===0&&Object.is(0,s)||s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY?0:(s=y.util.IntegerPart(s),s=s%Math.pow(2,A),t==="signed"&&s>=Math.pow(2,A)-1?s-Math.pow(2,A):s)};y.util.IntegerPart=function(e){let A=Math.floor(Math.abs(e));return e<0?-1*A:A};y.sequenceConverter=function(e){return A=>{if(y.util.Type(A)!=="Object")throw y.errors.exception({header:"Sequence",message:`Value of type ${y.util.Type(A)} is not an Object.`});let t=A?.[Symbol.iterator]?.(),a=[];if(t===void 0||typeof t.next!="function")throw y.errors.exception({header:"Sequence",message:"Object is not an iterator."});for(;;){let{done:r,value:i}=t.next();if(r)break;a.push(e(i))}return a}};y.recordConverter=function(e,A){return t=>{if(y.util.Type(t)!=="Object")throw y.errors.exception({header:"Record",message:`Value of type ${y.util.Type(t)} is not an Object.`});let a={};if(!zA.isProxy(t)){let i=Object.keys(t);for(let s of i){let n=e(s),o=A(t[s]);a[n]=o}return a}let r=Reflect.ownKeys(t);for(let i of r)if(Reflect.getOwnPropertyDescriptor(t,i)?.enumerable){let n=e(i),o=A(t[i]);a[n]=o}return a}};y.interfaceConverter=function(e){return(A,t={})=>{if(t.strict!==!1&&!(A instanceof e))throw y.errors.exception({header:e.name,message:`Expected ${A} to be an instance of ${e.name}.`});return A}};y.dictionaryConverter=function(e){return A=>{let t=y.util.Type(A),a={};if(t==="Null"||t==="Undefined")return a;if(t!=="Object")throw y.errors.exception({header:"Dictionary",message:`Expected ${A} to be one of: Null, Undefined, Object.`});for(let r of e){let{key:i,defaultValue:s,required:n,converter:o}=r;if(n===!0&&!j4(A,i))throw y.errors.exception({header:"Dictionary",message:`Missing required key "${i}".`});let d=A[i],l=j4(r,"defaultValue");if(l&&d!==null&&(d=d??s),n||l||d!==void 0){if(d=o(d),r.allowedValues&&!r.allowedValues.includes(d))throw y.errors.exception({header:"Dictionary",message:`${d} is not an accepted type. Expected one of ${r.allowedValues.join(", ")}.`});a[i]=d}}return a}};y.nullableConverter=function(e){return A=>A===null?A:e(A)};y.converters.DOMString=function(e,A={}){if(e===null&&A.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw new TypeError("Could not convert argument of type symbol to string.");return String(e)};y.converters.ByteString=function(e){let A=y.converters.DOMString(e);for(let t=0;t<A.length;t++){let a=A.charCodeAt(t);if(a>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${t} has a value of ${a} which is greater than 255.`)}return A};y.converters.USVString=MB;y.converters.boolean=function(e){return!!e};y.converters.any=function(e){return e};y.converters["long long"]=function(e){return y.util.ConvertToInt(e,64,"signed")};y.converters["unsigned long long"]=function(e){return y.util.ConvertToInt(e,64,"unsigned")};y.converters["unsigned long"]=function(e){return y.util.ConvertToInt(e,32,"unsigned")};y.converters["unsigned short"]=function(e,A){return y.util.ConvertToInt(e,16,"unsigned",A)};y.converters.ArrayBuffer=function(e,A={}){if(y.util.Type(e)!=="Object"||!zA.isAnyArrayBuffer(e))throw y.errors.conversionFailed({prefix:`${e}`,argument:`${e}`,types:["ArrayBuffer"]});if(A.allowShared===!1&&zA.isSharedArrayBuffer(e))throw y.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};y.converters.TypedArray=function(e,A,t={}){if(y.util.Type(e)!=="Object"||!zA.isTypedArray(e)||e.constructor.name!==A.name)throw y.errors.conversionFailed({prefix:`${A.name}`,argument:`${e}`,types:[A.name]});if(t.allowShared===!1&&zA.isSharedArrayBuffer(e.buffer))throw y.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};y.converters.DataView=function(e,A={}){if(y.util.Type(e)!=="Object"||!zA.isDataView(e))throw y.errors.exception({header:"DataView",message:"Object is not a DataView."});if(A.allowShared===!1&&zA.isSharedArrayBuffer(e.buffer))throw y.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};y.converters.BufferSource=function(e,A={}){if(zA.isAnyArrayBuffer(e))return y.converters.ArrayBuffer(e,A);if(zA.isTypedArray(e))return y.converters.TypedArray(e,e.constructor);if(zA.isDataView(e))return y.converters.DataView(e,A);throw new TypeError(`Could not convert ${e} to a BufferSource.`)};y.converters["sequence<ByteString>"]=y.sequenceConverter(y.converters.ByteString);y.converters["sequence<sequence<ByteString>>"]=y.sequenceConverter(y.converters["sequence<ByteString>"]);y.converters["record<ByteString, ByteString>"]=y.recordConverter(y.converters.ByteString,y.converters.ByteString);Z4.exports={webidl:y}});var VA=E((Wb,Ag)=>{var Ti=require("assert"),{atob:VB}=require("buffer"),{isomorphicDecode:YB}=wA(),JB=new TextEncoder,Ui=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/,GB=/(\u000A|\u000D|\u0009|\u0020)/,xB=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function _B(e){Ti(e.protocol==="data:");let A=K4(e,!0);A=A.slice(5);let t={position:0},a=P1(",",A,t),r=a.length;if(a=PB(a,!0,!0),t.position>=A.length)return"failure";t.position++;let i=A.slice(r+1),s=$4(i);if(/;(\u0020){0,}base64$/i.test(a)){let o=YB(s);if(s=HB(o),s==="failure")return"failure";a=a.slice(0,-6),a=a.replace(/(\u0020)+$/,""),a=a.slice(0,-1)}a.startsWith(";")&&(a="text/plain"+a);let n=Xo(a);return n==="failure"&&(n=Xo("text/plain;charset=US-ASCII")),{mimeType:n,body:s}}function K4(e,A=!1){let t=e.href;if(!A)return t;let a=t.lastIndexOf("#");return a===-1?t:t.slice(0,a)}function Mi(e,A,t){let a="";for(;t.position<A.length&&e(A[t.position]);)a+=A[t.position],t.position++;return a}function P1(e,A,t){let a=A.indexOf(e,t.position),r=t.position;return a===-1?(t.position=A.length,A.slice(r)):(t.position=a,A.slice(r,t.position))}function $4(e){let A=JB.encode(e);return qB(A)}function qB(e){let A=[];for(let t=0;t<e.length;t++){let a=e[t];if(a!==37)A.push(a);else if(a===37&&!/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(e[t+1],e[t+2])))A.push(37);else{let r=String.fromCharCode(e[t+1],e[t+2]),i=Number.parseInt(r,16);A.push(i),t+=2}}return Uint8Array.from(A)}function Xo(e){e=Zo(e,!0,!0);let A={position:0},t=P1("/",e,A);if(t.length===0||!Ui.test(t)||A.position>e.length)return"failure";A.position++;let a=P1(";",e,A);if(a=Zo(a,!1,!0),a.length===0||!Ui.test(a))return"failure";let r=t.toLowerCase(),i=a.toLowerCase(),s={type:r,subtype:i,parameters:new Map,essence:`${r}/${i}`};for(;A.position<e.length;){A.position++,Mi(d=>GB.test(d),e,A);let n=Mi(d=>d!==";"&&d!=="=",e,A);if(n=n.toLowerCase(),A.position<e.length){if(e[A.position]===";")continue;A.position++}if(A.position>e.length)break;let o=null;if(e[A.position]==='"')o=eg(e,A,!0),P1(";",e,A);else if(o=P1(";",e,A),o=Zo(o,!1,!0),o.length===0)continue;n.length!==0&&Ui.test(n)&&(o.length===0||xB.test(o))&&!s.parameters.has(n)&&s.parameters.set(n,o)}return s}function HB(e){if(e=e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,""),e.length%4===0&&(e=e.replace(/=?=$/,"")),e.length%4===1||/[^+/0-9A-Za-z]/.test(e))return"failure";let A=VB(e),t=new Uint8Array(A.length);for(let a=0;a<A.length;a++)t[a]=A.charCodeAt(a);return t}function eg(e,A,t){let a=A.position,r="";for(Ti(e[A.position]==='"'),A.position++;r+=Mi(s=>s!=='"'&&s!=="\\",e,A),!(A.position>=e.length);){let i=e[A.position];if(A.position++,i==="\\"){if(A.position>=e.length){r+="\\";break}r+=e[A.position],A.position++}else{Ti(i==='"');break}}return t?r:e.slice(a,A.position)}function OB(e){Ti(e!=="failure");let{parameters:A,essence:t}=e,a=t;for(let[r,i]of A.entries())a+=";",a+=r,a+="=",Ui.test(i)||(i=i.replace(/(\\|")/g,"\\$1"),i='"'+i,i+='"'),a+=i;return a}function X4(e){return e==="\r"||e===` -`||e===" "||e===" "}function Zo(e,A=!0,t=!0){let a=0,r=e.length-1;if(A)for(;a<e.length&&X4(e[a]);a++);if(t)for(;r>0&&X4(e[r]);r--);return e.slice(a,r+1)}function z4(e){return e==="\r"||e===` -`||e===" "||e==="\f"||e===" "}function PB(e,A=!0,t=!0){let a=0,r=e.length-1;if(A)for(;a<e.length&&z4(e[a]);a++);if(t)for(;r>0&&z4(e[r]);r--);return e.slice(a,r+1)}Ag.exports={dataURLProcessor:_B,URLSerializer:K4,collectASequenceOfCodePoints:Mi,collectASequenceOfCodePointsFast:P1,stringPercentDecode:$4,parseMIMEType:Xo,collectAnHTTPQuotedString:eg,serializeAMimeType:OB}});var Vi=E((jb,sg)=>{"use strict";var{Blob:rg,File:tg}=require("buffer"),{types:zo}=require("util"),{kState:iA}=Et(),{isBlobLike:ig}=wA(),{webidl:P}=Ge(),{parseMIMEType:WB,serializeAMimeType:jB}=VA(),{kEnumerableProperty:ag}=H(),ir=class e extends rg{constructor(A,t,a={}){P.argumentLengthCheck(arguments,2,{header:"File constructor"}),A=P.converters["sequence<BlobPart>"](A),t=P.converters.USVString(t),a=P.converters.FilePropertyBag(a);let r=t,i=a.type,s;e:{if(i){if(i=WB(i),i==="failure"){i="";break e}i=jB(i).toLowerCase()}s=a.lastModified}super(ZB(A,a),{type:i}),this[iA]={name:r,lastModified:s,type:i}}get name(){return P.brandCheck(this,e),this[iA].name}get lastModified(){return P.brandCheck(this,e),this[iA].lastModified}get type(){return P.brandCheck(this,e),this[iA].type}},Ko=class e{constructor(A,t,a={}){let r=t,i=a.type,s=a.lastModified??Date.now();this[iA]={blobLike:A,name:r,type:i,lastModified:s}}stream(...A){return P.brandCheck(this,e),this[iA].blobLike.stream(...A)}arrayBuffer(...A){return P.brandCheck(this,e),this[iA].blobLike.arrayBuffer(...A)}slice(...A){return P.brandCheck(this,e),this[iA].blobLike.slice(...A)}text(...A){return P.brandCheck(this,e),this[iA].blobLike.text(...A)}get size(){return P.brandCheck(this,e),this[iA].blobLike.size}get type(){return P.brandCheck(this,e),this[iA].blobLike.type}get name(){return P.brandCheck(this,e),this[iA].name}get lastModified(){return P.brandCheck(this,e),this[iA].lastModified}get[Symbol.toStringTag](){return"File"}};Object.defineProperties(ir.prototype,{[Symbol.toStringTag]:{value:"File",configurable:!0},name:ag,lastModified:ag});P.converters.Blob=P.interfaceConverter(rg);P.converters.BlobPart=function(e,A){if(P.util.Type(e)==="Object"){if(ig(e))return P.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||zo.isAnyArrayBuffer(e))return P.converters.BufferSource(e,A)}return P.converters.USVString(e,A)};P.converters["sequence<BlobPart>"]=P.sequenceConverter(P.converters.BlobPart);P.converters.FilePropertyBag=P.dictionaryConverter([{key:"lastModified",converter:P.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:P.converters.DOMString,defaultValue:""},{key:"endings",converter:e=>(e=P.converters.DOMString(e),e=e.toLowerCase(),e!=="native"&&(e="transparent"),e),defaultValue:"transparent"}]);function ZB(e,A){let t=[];for(let a of e)if(typeof a=="string"){let r=a;A.endings==="native"&&(r=XB(r)),t.push(new TextEncoder().encode(r))}else zo.isAnyArrayBuffer(a)||zo.isTypedArray(a)?a.buffer?t.push(new Uint8Array(a.buffer,a.byteOffset,a.byteLength)):t.push(new Uint8Array(a)):ig(a)&&t.push(a);return t}function XB(e){let A=` +`,"")}`}Ci.getProgressIcon=W5});var _l=E(pt=>{"use strict";var Z5=pt&&pt.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),ao=pt&&pt.__exportStar||function(e,A){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(A,t)&&Z5(A,e,t)};Object.defineProperty(pt,"__esModule",{value:!0});ao(Ml(),pt);ao(Yl(),pt);ao(xl(),pt)});var ql=E(V1=>{"use strict";var j5=V1&&V1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(V1,"__esModule",{value:!0});V1.runAppleScript=void 0;var X5=j5(require("node:child_process")),Wa=oi();async function z5(e,A,t){let{humanReadableOutput:a,language:r,timeout:i,...s}=Array.isArray(A)?t||{}:A||{},n=a!==!1?[]:["-ss"];r==="JavaScript"&&n.push("-l","JavaScript"),Array.isArray(A)&&n.push("-",...A);let o=X5.default.spawn("osascript",n,{...s,env:{PATH:"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"}}),d=(0,Wa.getSpawnedPromise)(o,{timeout:i||1e4});o.stdin.end(e);let[{error:l,exitCode:p,signal:g,timedOut:c},u,Q]=await(0,Wa.getSpawnedResult)(o,{encoding:"utf8"},d),C=(0,Wa.handleOutput)({stripFinalNewline:!0},u),m=(0,Wa.handleOutput)({stripFinalNewline:!0},Q);return(0,Wa.defaultParsing)({stdout:C,stderr:m,error:l,exitCode:p,signal:g,timedOut:c,command:"osascript",options:t,parentError:new Error})}V1.runAppleScript=z5});var ro=E(Le=>{"use strict";var K5=Le&&Le.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),UA=Le&&Le.__exportStar||function(e,A){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(A,t)&&K5(A,e,t)};Object.defineProperty(Le,"__esModule",{value:!0});UA(La(),Le);UA(Zr(),Le);UA(Xr(),Le);UA(ol(),Le);UA(El(),Le);UA(hl(),Le);UA(wl(),Le);UA(Dl(),Le);UA(Nl(),Le);UA(_l(),Le);UA(ql(),Le)});var ie=E((WN,Hl)=>{Hl.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size")}});var ee=E((ZN,Ol)=>{"use strict";var Ee=class extends Error{constructor(A){super(A),this.name="UndiciError",this.code="UND_ERR"}},io=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ConnectTimeoutError",this.message=A||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},so=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="HeadersTimeoutError",this.message=A||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},no=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="HeadersOverflowError",this.message=A||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},oo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="BodyTimeoutError",this.message=A||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},po=class e extends Ee{constructor(A,t,a,r){super(A),Error.captureStackTrace(this,e),this.name="ResponseStatusCodeError",this.message=A||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=r,this.status=t,this.statusCode=t,this.headers=a}},lo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InvalidArgumentError",this.message=A||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},go=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InvalidReturnValueError",this.message=A||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},co=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="AbortError",this.message=A||"Request aborted",this.code="UND_ERR_ABORTED"}},uo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="InformationalError",this.message=A||"Request information",this.code="UND_ERR_INFO"}},Eo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="RequestContentLengthMismatchError",this.message=A||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},Qo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ResponseContentLengthMismatchError",this.message=A||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},mo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ClientDestroyedError",this.message=A||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},Co=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ClientClosedError",this.message=A||"The client is closed",this.code="UND_ERR_CLOSED"}},Bo=class e extends Ee{constructor(A,t){super(A),Error.captureStackTrace(this,e),this.name="SocketError",this.message=A||"Socket error",this.code="UND_ERR_SOCKET",this.socket=t}},Bi=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="NotSupportedError",this.message=A||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},ho=class extends Ee{constructor(A){super(A),Error.captureStackTrace(this,Bi),this.name="MissingUpstreamError",this.message=A||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},Io=class e extends Error{constructor(A,t,a){super(A),Error.captureStackTrace(this,e),this.name="HTTPParserError",this.code=t?`HPE_${t}`:void 0,this.data=a?a.toString():void 0}},fo=class e extends Ee{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="ResponseExceededMaxSizeError",this.message=A||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}};Ol.exports={HTTPParserError:Io,UndiciError:Ee,HeadersTimeoutError:so,HeadersOverflowError:no,BodyTimeoutError:oo,RequestContentLengthMismatchError:Eo,ConnectTimeoutError:io,ResponseStatusCodeError:po,InvalidArgumentError:lo,InvalidReturnValueError:go,RequestAbortedError:co,ClientDestroyedError:mo,ClientClosedError:Co,InformationalError:uo,SocketError:Bo,NotSupportedError:Bi,ResponseContentLengthMismatchError:Qo,BalancedPoolMissingUpstreamError:ho,ResponseExceededMaxSizeError:fo}});var q=E((jN,t4)=>{"use strict";var jl=require("assert"),{kDestroyed:Xl,kBodyUsed:Pl}=ie(),{IncomingMessage:$5}=require("http"),Y1=require("stream"),em=require("net"),{InvalidArgumentError:Ue}=ee(),{Blob:Wl}=require("buffer"),Ii=require("util"),{stringify:Am}=require("querystring"),[wo,Zl]=process.versions.node.split(".").map(e=>Number(e));function tm(){}function yo(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function zl(e){return Wl&&e instanceof Wl||e&&typeof e=="object"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function am(e,A){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let t=Am(A);return t&&(e+="?"+t),e}function Kl(e){if(typeof e=="string"){if(e=new URL(e),!/^https?:/.test(e.origin||e.protocol))throw new Ue("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new Ue("Invalid URL: The URL argument must be a non-null object.");if(e.port!=null&&e.port!==""&&!Number.isFinite(parseInt(e.port)))throw new Ue("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new Ue("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new Ue("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new Ue("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new Ue("Invalid URL origin: the origin must be a string or null/undefined.");if(!/^https?:/.test(e.origin||e.protocol))throw new Ue("Invalid URL protocol: the URL must start with `http:` or `https:`.");if(!(e instanceof URL)){let A=e.port!=null?e.port:e.protocol==="https:"?443:80,t=e.origin!=null?e.origin:`${e.protocol}//${e.hostname}:${A}`,a=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;t.endsWith("/")&&(t=t.substring(0,t.length-1)),a&&!a.startsWith("/")&&(a=`/${a}`),e=new URL(t+a)}return e}function rm(e){if(e=Kl(e),e.pathname!=="/"||e.search||e.hash)throw new Ue("invalid url");return e}function im(e){if(e[0]==="["){let t=e.indexOf("]");return jl(t!==-1),e.substr(1,t-1)}let A=e.indexOf(":");return A===-1?e:e.substr(0,A)}function sm(e){if(!e)return null;jl.strictEqual(typeof e,"string");let A=im(e);return em.isIP(A)?"":A}function nm(e){return JSON.parse(JSON.stringify(e))}function om(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function dm(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function pm(e){if(e==null)return 0;if(yo(e)){let A=e._readableState;return A&&A.ended===!0&&Number.isFinite(A.length)?A.length:null}else{if(zl(e))return e.size!=null?e.size:null;if(e4(e))return e.byteLength}return null}function Do(e){return!e||!!(e.destroyed||e[Xl])}function $l(e){let A=e&&e._readableState;return Do(e)&&A&&!A.endEmitted}function lm(e,A){!yo(e)||Do(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===$5&&(e.socket=null),e.destroy(A)):A&&process.nextTick((t,a)=>{t.emit("error",a)},e,A),e.destroyed!==!0&&(e[Xl]=!0))}var gm=/timeout=(\d+)/;function cm(e){let A=e.toString().match(gm);return A?parseInt(A[1],10)*1e3:null}function um(e,A={}){for(let t=0;t<e.length;t+=2){let a=e[t].toString().toLowerCase(),r=A[a];r?(Array.isArray(r)||(r=[r],A[a]=r),r.push(e[t+1].toString("utf8"))):Array.isArray(e[t+1])?A[a]=e[t+1]:A[a]=e[t+1].toString("utf8")}return"content-length"in A&&"content-disposition"in A&&(A["content-disposition"]=Buffer.from(A["content-disposition"]).toString("latin1")),A}function Em(e){let A=[],t=!1,a=-1;for(let r=0;r<e.length;r+=2){let i=e[r+0].toString(),s=e[r+1].toString("utf8");i.length===14&&(i==="content-length"||i.toLowerCase()==="content-length")?(A.push(i,s),t=!0):i.length===19&&(i==="content-disposition"||i.toLowerCase()==="content-disposition")?a=A.push(i,s)-1:A.push(i,s)}return t&&a!==-1&&(A[a]=Buffer.from(A[a]).toString("latin1")),A}function e4(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function Qm(e,A,t){if(!e||typeof e!="object")throw new Ue("handler must be an object");if(typeof e.onConnect!="function")throw new Ue("invalid onConnect method");if(typeof e.onError!="function")throw new Ue("invalid onError method");if(typeof e.onBodySent!="function"&&e.onBodySent!==void 0)throw new Ue("invalid onBodySent method");if(t||A==="CONNECT"){if(typeof e.onUpgrade!="function")throw new Ue("invalid onUpgrade method")}else{if(typeof e.onHeaders!="function")throw new Ue("invalid onHeaders method");if(typeof e.onData!="function")throw new Ue("invalid onData method");if(typeof e.onComplete!="function")throw new Ue("invalid onComplete method")}}function mm(e){return!!(e&&(Y1.isDisturbed?Y1.isDisturbed(e)||e[Pl]:e[Pl]||e.readableDidRead||e._readableState&&e._readableState.dataEmitted||$l(e)))}function Cm(e){return!!(e&&(Y1.isErrored?Y1.isErrored(e):/state: 'errored'/.test(Ii.inspect(e))))}function Bm(e){return!!(e&&(Y1.isReadable?Y1.isReadable(e):/state: 'readable'/.test(Ii.inspect(e))))}function hm(e){return{localAddress:e.localAddress,localPort:e.localPort,remoteAddress:e.remoteAddress,remotePort:e.remotePort,remoteFamily:e.remoteFamily,timeout:e.timeout,bytesWritten:e.bytesWritten,bytesRead:e.bytesRead}}var Za;function Im(e){if(Za||(Za=require("stream/web").ReadableStream),Za.from)return Za.from(e);let A;return new Za({async start(){A=e[Symbol.asyncIterator]()},async pull(t){let{done:a,value:r}=await A.next();if(a)queueMicrotask(()=>{t.close()});else{let i=Buffer.isBuffer(r)?r:Buffer.from(r);t.enqueue(new Uint8Array(i))}return t.desiredSize>0},async cancel(t){await A.return()}},0)}function fm(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function wm(e){if(e){if(typeof e.throwIfAborted=="function")e.throwIfAborted();else if(e.aborted){let A=new Error("The operation was aborted");throw A.name="AbortError",A}}}var hi;function ym(e,A){return typeof Symbol.dispose=="symbol"&&(hi||(hi=require("events")),typeof hi.addAbortListener=="function"&&"aborted"in e)?hi.addAbortListener(e,A):"addEventListener"in e?(e.addEventListener("abort",A,{once:!0}),()=>e.removeEventListener("abort",A)):(e.addListener("abort",A),()=>e.removeListener("abort",A))}var Dm=!!String.prototype.toWellFormed;function Rm(e){return Dm?`${e}`.toWellFormed():Ii.toUSVString?Ii.toUSVString(e):`${e}`}var A4=Object.create(null);A4.enumerable=!0;t4.exports={kEnumerableProperty:A4,nop:tm,isDisturbed:mm,isErrored:Cm,isReadable:Bm,toUSVString:Rm,isReadableAborted:$l,isBlobLike:zl,parseOrigin:rm,parseURL:Kl,getServerName:sm,isStream:yo,isIterable:dm,isAsyncIterable:om,isDestroyed:Do,parseRawHeaders:Em,parseHeaders:um,parseKeepAliveTimeout:cm,destroy:lm,bodyLength:pm,deepClone:nm,ReadableStreamFrom:Im,isBuffer:e4,validateHandler:Qm,getSocketInfo:hm,isFormDataLike:fm,buildURL:am,throwIfAborted:wm,addAbortListener:ym,nodeMajor:wo,nodeMinor:Zl,nodeHasAutoSelectFamily:wo>18||wo===18&&Zl>=13}});var i4=E((XN,r4)=>{"use strict";var Ro=Date.now(),Ft,kt=[];function vm(){Ro=Date.now();let e=kt.length,A=0;for(;A<e;){let t=kt[A];t.state===0?t.state=Ro+t.delay:t.state>0&&Ro>=t.state&&(t.state=-1,t.callback(t.opaque)),t.state===-1?(t.state=-2,A!==e-1?kt[A]=kt.pop():kt.pop(),e-=1):A+=1}kt.length>0&&a4()}function a4(){Ft&&Ft.refresh?Ft.refresh():(clearTimeout(Ft),Ft=setTimeout(vm,1e3),Ft.unref&&Ft.unref())}var fi=class{constructor(A,t,a){this.callback=A,this.delay=t,this.opaque=a,this.state=-2,this.refresh()}refresh(){this.state===-2&&(kt.push(this),(!Ft||kt.length===1)&&a4()),this.state=0}clear(){this.state=-1}};r4.exports={setTimeout(e,A,t){return A<1e3?setTimeout(e,A,t):new fi(e,A,t)},clearTimeout(e){e instanceof fi?e.clear():clearTimeout(e)}}});var wi=E((p4,l4)=>{"use strict";function Nm(e){if(e.length===0)return;let A=Object.create(null),t=0;for(;t<e.length;++t){let s=e.charCodeAt(t);if(e1[s]!==1){if(s!==47||t===0)return;break}}if(t===e.length)return;let a=e.slice(0,t).toLowerCase(),r=++t;for(;t<e.length;++t){let s=e.charCodeAt(t);if(e1[s]!==1){if(t===r||Sm(e,t,A)===void 0)return;break}}if(t===r)return;let i=e.slice(r,t).toLowerCase();return{type:a,subtype:i,params:A}}function Sm(e,A,t){for(;A<e.length;){for(;A<e.length;++A){let n=e.charCodeAt(A);if(n!==32&&n!==9)break}if(A===e.length)break;if(e.charCodeAt(A++)!==59)return;for(;A<e.length;++A){let n=e.charCodeAt(A);if(n!==32&&n!==9)break}if(A===e.length)return;let a,r=A;for(;A<e.length;++A){let n=e.charCodeAt(A);if(e1[n]!==1){if(n!==61)return;break}}if(A===e.length||(a=e.slice(r,A),++A,A===e.length))return;let i="",s;if(e.charCodeAt(A)===34){s=++A;let n=!1;for(;A<e.length;++A){let o=e.charCodeAt(A);if(o===92){n?(s=A,n=!1):(i+=e.slice(s,A),n=!0);continue}if(o===34){if(n){s=A,n=!1;continue}i+=e.slice(s,A);break}if(n&&(s=A-1,n=!1),d4[o]!==1)return}if(A===e.length)return;++A}else{for(s=A;A<e.length;++A){let n=e.charCodeAt(A);if(e1[n]!==1){if(A===s)return;break}}i=e.slice(s,A)}a=a.toLowerCase(),t[a]===void 0&&(t[a]=i)}return t}function bm(e,A){if(e.length===0)return;let t=Object.create(null),a=0;for(;a<e.length;++a){let i=e.charCodeAt(a);if(e1[i]!==1){if(Fm(e,a,t,A)===void 0)return;break}}return{type:e.slice(0,a).toLowerCase(),params:t}}function Fm(e,A,t,a){for(;A<e.length;){for(;A<e.length;++A){let d=e.charCodeAt(A);if(d!==32&&d!==9)break}if(A===e.length)break;if(e.charCodeAt(A++)!==59)return;for(;A<e.length;++A){let d=e.charCodeAt(A);if(d!==32&&d!==9)break}if(A===e.length)return;let r,i=A;for(;A<e.length;++A){let d=e.charCodeAt(A);if(e1[d]!==1){if(d===61)break;return}}if(A===e.length)return;let s="",n,o;if(r=e.slice(i,A),r.charCodeAt(r.length-1)===42){let d=++A;for(;A<e.length;++A){let p=e.charCodeAt(A);if(Lm[p]!==1){if(p!==39)return;break}}if(A===e.length)return;for(o=e.slice(d,A),++A;A<e.length&&e.charCodeAt(A)!==39;++A);if(A===e.length||(++A,A===e.length))return;n=A;let l=0;for(;A<e.length;++A){let p=e.charCodeAt(A);if(Um[p]!==1){if(p===37){let g,c;if(A+2<e.length&&(g=s4[e.charCodeAt(A+1)])!==-1&&(c=s4[e.charCodeAt(A+2)])!==-1){let u=(g<<4)+c;s+=e.slice(n,A),s+=String.fromCharCode(u),A+=2,n=A+1,u>=128?l=2:l===0&&(l=1);continue}return}break}}if(s+=e.slice(n,A),s=o4(s,o,l),s===void 0)return}else{if(++A,A===e.length)return;if(e.charCodeAt(A)===34){n=++A;let d=!1;for(;A<e.length;++A){let l=e.charCodeAt(A);if(l===92){d?(n=A,d=!1):(s+=e.slice(n,A),d=!0);continue}if(l===34){if(d){n=A,d=!1;continue}s+=e.slice(n,A);break}if(d&&(n=A-1,d=!1),d4[l]!==1)return}if(A===e.length)return;++A}else{for(n=A;A<e.length;++A){let d=e.charCodeAt(A);if(e1[d]!==1){if(A===n)return;break}}s=e.slice(n,A)}if(s=a(s,2),s===void 0)return}r=r.toLowerCase(),t[r]===void 0&&(t[r]=s)}return t}function n4(e){let A;for(;;)switch(e){case"utf-8":case"utf8":return ja.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return ja.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return ja.utf16le;case"base64":return ja.base64;default:if(A===void 0){A=!0,e=e.toLowerCase();continue}return ja.other.bind(e)}}var ja={utf8:(e,A)=>{if(e.length===0)return"";if(typeof e=="string"){if(A<2)return e;e=Buffer.from(e,"latin1")}return e.utf8Slice(0,e.length)},latin1:(e,A)=>e.length===0?"":typeof e=="string"?e:e.latin1Slice(0,e.length),utf16le:(e,A)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,"latin1")),e.ucs2Slice(0,e.length)),base64:(e,A)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,"latin1")),e.base64Slice(0,e.length)),other:(e,A)=>{if(e.length===0)return"";typeof e=="string"&&(e=Buffer.from(e,"latin1"));try{return new TextDecoder(p4).decode(e)}catch{}}};function o4(e,A,t){let a=n4(A);if(a)return a(e,t)}function km(e){if(typeof e!="string")return"";for(let A=e.length-1;A>=0;--A)switch(e.charCodeAt(A)){case 47:case 92:return e=e.slice(A+1),e===".."||e==="."?"":e}return e===".."||e==="."?"":e}var e1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],d4=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],Lm=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],Um=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],s4=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];l4.exports={basename:km,convertToUTF8:o4,getDecoder:n4,parseContentType:Nm,parseDisposition:bm}});var E4=E((zN,u4)=>{"use strict";function g4(e,A,t,a,r){for(let i=0;i<r;++i)if(e[A+i]!==t[a+i])return!1;return!0}var vo=class{constructor(A,t){if(typeof t!="function")throw new Error("Missing match callback");if(typeof A=="string")A=Buffer.from(A);else if(!Buffer.isBuffer(A))throw new Error(`Expected Buffer for needle, got ${typeof A}`);let a=A.length;if(this.maxMatches=1/0,this.matches=0,this._cb=t,this._lookbehindSize=0,this._needle=A,this._bufPos=0,this._lookbehind=Buffer.allocUnsafe(a),this._occ=[a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a],a>1)for(let r=0;r<a-1;++r)this._occ[A[r]]=a-1-r}reset(){this.matches=0,this._lookbehindSize=0,this._bufPos=0}push(A,t){let a;Buffer.isBuffer(A)||(A=Buffer.from(A,"latin1"));let r=A.length;for(this._bufPos=t||0;a!==r&&this.matches<this.maxMatches;)a=Tm(this,A);return a}destroy(){let A=this._lookbehindSize;A&&this._cb(!1,this._lookbehind,0,A,!1),this.reset()}};function Tm(e,A){let t=A.length,a=e._needle,r=a.length,i=-e._lookbehindSize,s=r-1,n=a[s],o=t-r,d=e._occ,l=e._lookbehind;if(i<0){for(;i<0&&i<=o;){let g=i+s,c=g<0?l[e._lookbehindSize+g]:A[g];if(c===n&&c4(e,A,i,s))return e._lookbehindSize=0,++e.matches,i>-e._lookbehindSize?e._cb(!0,l,0,e._lookbehindSize+i,!1):e._cb(!0,void 0,0,0,!0),e._bufPos=i+r;i+=d[c]}for(;i<0&&!c4(e,A,i,t-i);)++i;if(i<0){let g=e._lookbehindSize+i;return g>0&&e._cb(!1,l,0,g,!1),e._lookbehindSize-=g,l.copy(l,0,g,e._lookbehindSize),l.set(A,e._lookbehindSize),e._lookbehindSize+=t,e._bufPos=t,t}e._cb(!1,l,0,e._lookbehindSize,!1),e._lookbehindSize=0}i+=e._bufPos;let p=a[0];for(;i<=o;){let g=A[i+s];if(g===n&&A[i]===p&&g4(a,0,A,i,s))return++e.matches,i>0?e._cb(!0,A,e._bufPos,i,!0):e._cb(!0,void 0,0,0,!0),e._bufPos=i+r;i+=d[g]}for(;i<t;){if(A[i]!==p||!g4(A,i,a,0,t-i)){++i;continue}A.copy(l,0,i,t),e._lookbehindSize=t-i;break}return i>0&&e._cb(!1,A,e._bufPos,i<t?i:t,!0),e._bufPos=t,t}function c4(e,A,t,a){let r=e._lookbehind,i=e._lookbehindSize,s=e._needle;for(let n=0;n<a;++n,++t)if((t<0?r[i+t]:A[t])!==s[n])return!1;return!0}u4.exports=vo});var y4=E((KN,w4)=>{"use strict";var{Readable:Mm,Writable:Vm}=require("stream"),Ym=E4(),{basename:Jm,convertToUTF8:Q4,getDecoder:Gm,parseContentType:xm,parseDisposition:_m}=wi(),qm=Buffer.from(`\r +`),Hm=Buffer.from("\r"),Om=Buffer.from("-");function m4(){}var Pm=2e3,J1=16*1024,yi=0,C4=1,B4=2,No=class{constructor(A){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=yi,this.name="",this.value="",this.crlf=0,this.cb=A}reset(){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=yi,this.name="",this.value="",this.crlf=0}push(A,t,a){let r=t;for(;t<a;)switch(this.state){case yi:{let i=!1;for(;t<a;++t){if(this.byteCount===J1)return-1;++this.byteCount;let s=A[t];if(jm[s]!==1){if(s!==58||(this.name+=A.latin1Slice(r,t),this.name.length===0))return-1;++t,i=!0,this.state=C4;break}}if(!i){this.name+=A.latin1Slice(r,t);break}}case C4:{let i=!1;for(;t<a;++t){if(this.byteCount===J1)return-1;++this.byteCount;let s=A[t];if(s!==32&&s!==9){r=t,i=!0,this.state=B4;break}}if(!i)break}case B4:switch(this.crlf){case 0:for(;t<a;++t){if(this.byteCount===J1)return-1;++this.byteCount;let i=A[t];if(Xm[i]!==1){if(i!==13)return-1;++this.crlf;break}}this.value+=A.latin1Slice(r,t++);break;case 1:if(this.byteCount===J1||(++this.byteCount,A[t++]!==10))return-1;++this.crlf;break;case 2:{if(this.byteCount===J1)return-1;++this.byteCount;let i=A[t];i===32||i===9?(r=t,this.crlf=0):(++this.pairCount<Pm&&(this.name=this.name.toLowerCase(),this.header[this.name]===void 0?this.header[this.name]=[this.value]:this.header[this.name].push(this.value)),i===13?(++this.crlf,++t):(r=t,this.crlf=0,this.state=yi,this.name="",this.value=""));break}case 3:{if(this.byteCount===J1||(++this.byteCount,A[t++]!==10))return-1;let i=this.header;return this.reset(),this.cb(i),t}}break}return t}},So=class extends Mm{constructor(A,t){super(A),this.truncated=!1,this._readcb=null,this.once("end",()=>{if(this._read(),--t._fileEndsLeft===0&&t._finalcb){let a=t._finalcb;t._finalcb=null,process.nextTick(a)}})}_read(A){let t=this._readcb;t&&(this._readcb=null,t())}},h4={push:(e,A)=>{},destroy:()=>{}};function Wm(e,A){let t=e._writecb;e._writecb=null,A?e.destroy(A):t&&t()}function Zm(e,A){return e}var bo=class extends Vm{constructor(A){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.highWaterMark=="number"?A.highWaterMark:void 0};if(super(t),!A.conType.params||typeof A.conType.params.boundary!="string")throw new Error("Multipart: Boundary not found");let a=A.conType.params.boundary,r=typeof A.defParamCharset=="string"&&A.defParamCharset?Gm(A.defParamCharset):Zm,i=A.defCharset||"utf8",s=A.preservePath,n={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.fileHwm=="number"?A.fileHwm:void 0},o=A.limits,d=o&&typeof o.fieldSize=="number"?o.fieldSize:1*1024*1024,l=o&&typeof o.fileSize=="number"?o.fileSize:1/0,p=o&&typeof o.files=="number"?o.files:1/0,g=o&&typeof o.fields=="number"?o.fields:1/0,c=o&&typeof o.parts=="number"?o.parts:1/0,u=-1,Q=0,C=0,m=!1;this._fileEndsLeft=0,this._fileStream=void 0,this._complete=!1;let B=0,w,I=0,y,S,k,x,we=!1,Ce=!1,yt=!1;this._hparser=null;let be=new No(j=>{this._hparser=null,m=!1,k="text/plain",y=i,S="7bit",x=void 0,we=!1;let re;if(!j["content-disposition"]){m=!0;return}let U=_m(j["content-disposition"][0],r);if(!U||U.type!=="form-data"){m=!0;return}if(U.params&&(U.params.name&&(x=U.params.name),U.params["filename*"]?re=U.params["filename*"]:U.params.filename&&(re=U.params.filename),re!==void 0&&!s&&(re=Jm(re))),j["content-type"]){let T=xm(j["content-type"][0]);T&&(k=`${T.type}/${T.subtype}`,T.params&&typeof T.params.charset=="string"&&(y=T.params.charset.toLowerCase()))}if(j["content-transfer-encoding"]&&(S=j["content-transfer-encoding"][0].toLowerCase()),k==="application/octet-stream"||re!==void 0){if(C===p){Ce||(Ce=!0,this.emit("filesLimit")),m=!0;return}if(++C,this.listenerCount("file")===0){m=!0;return}B=0,this._fileStream=new So(n,this),++this._fileEndsLeft,this.emit("file",x,this._fileStream,{filename:re,encoding:S,mimeType:k})}else{if(Q===g){yt||(yt=!0,this.emit("fieldsLimit")),m=!0;return}if(++Q,this.listenerCount("field")===0){m=!0;return}w=[],I=0}}),le=0,mA=(j,re,U,T,xA)=>{e:for(;re;){if(this._hparser!==null){let W=this._hparser.push(re,U,T);if(W===-1){this._hparser=null,be.reset(),this.emit("error",new Error("Malformed part header"));break}U=W}if(U===T)break;if(le!==0){if(le===1){switch(re[U]){case 45:le=2,++U;break;case 13:le=3,++U;break;default:le=0}if(U===T)return}if(le===2){if(le=0,re[U]===45){this._complete=!0,this._bparser=h4;return}let W=this._writecb;this._writecb=m4,mA(!1,Om,0,1,!1),this._writecb=W}else if(le===3)if(le=0,re[U]===10){if(++U,u>=c||(this._hparser=be,U===T))break;continue e}else{let W=this._writecb;this._writecb=m4,mA(!1,Hm,0,1,!1),this._writecb=W}}if(!m){if(this._fileStream){let W,tA=Math.min(T-U,l-B);xA?W=re.slice(U,U+tA):(W=Buffer.allocUnsafe(tA),re.copy(W,0,U,U+tA)),B+=W.length,B===l?(W.length>0&&this._fileStream.push(W),this._fileStream.emit("limit"),this._fileStream.truncated=!0,m=!0):this._fileStream.push(W)||(this._writecb&&(this._fileStream._readcb=this._writecb),this._writecb=null)}else if(w!==void 0){let W,tA=Math.min(T-U,d-I);xA?W=re.slice(U,U+tA):(W=Buffer.allocUnsafe(tA),re.copy(W,0,U,U+tA)),I+=tA,w.push(W),I===d&&(m=!0,we=!0)}}break}if(j){if(le=1,this._fileStream)this._fileStream.push(null),this._fileStream=null;else if(w!==void 0){let W;switch(w.length){case 0:W="";break;case 1:W=Q4(w[0],y,0);break;default:W=Q4(Buffer.concat(w,I),y,0)}w=void 0,I=0,this.emit("field",x,W,{nameTruncated:!1,valueTruncated:we,encoding:S,mimeType:k})}++u===c&&this.emit("partsLimit")}};this._bparser=new Ym(`\r +--${a}`,mA),this._writecb=null,this._finalcb=null,this.write(qm)}static detect(A){return A.type==="multipart"&&A.subtype==="form-data"}_write(A,t,a){this._writecb=a,this._bparser.push(A,0),this._writecb&&Wm(this)}_destroy(A,t){this._hparser=null,this._bparser=h4,A||(A=f4(this));let a=this._fileStream;a&&(this._fileStream=null,a.destroy(A)),t(A)}_final(A){if(this._bparser.destroy(),!this._complete)return A(new Error("Unexpected end of form"));this._fileEndsLeft?this._finalcb=I4.bind(null,this,A):I4(this,A)}};function I4(e,A,t){if(t)return A(t);t=f4(e),A(t)}function f4(e){if(e._hparser)return new Error("Malformed part header");let A=e._fileStream;if(A&&(e._fileStream=null,A.destroy(new Error("Unexpected end of file"))),!e._complete)return new Error("Unexpected end of form")}var jm=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],Xm=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];w4.exports=bo});var R4=E(($N,D4)=>{"use strict";var{Writable:zm}=require("stream"),{getDecoder:Km}=wi(),To=class extends zm{constructor(A){let t={autoDestroy:!0,emitClose:!0,highWaterMark:typeof A.highWaterMark=="number"?A.highWaterMark:void 0};super(t);let a=A.defCharset||"utf8";A.conType.params&&typeof A.conType.params.charset=="string"&&(a=A.conType.params.charset),this.charset=a;let r=A.limits;this.fieldSizeLimit=r&&typeof r.fieldSize=="number"?r.fieldSize:1*1024*1024,this.fieldsLimit=r&&typeof r.fields=="number"?r.fields:1/0,this.fieldNameSizeLimit=r&&typeof r.fieldNameSize=="number"?r.fieldNameSize:100,this._inKey=!0,this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,this._fields=0,this._key="",this._val="",this._byte=-2,this._lastPos=0,this._encode=0,this._decoder=Km(a)}static detect(A){return A.type==="application"&&A.subtype==="x-www-form-urlencoded"}_write(A,t,a){if(this._fields>=this.fieldsLimit)return a();let r=0,i=A.length;if(this._lastPos=0,this._byte!==-2){if(r=Fo(this,A,r,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();this._inKey?++this._bytesKey:++this._bytesVal}e:for(;r<i;)if(this._inKey){for(r=ko(this,A,r,i);r<i;){switch(A[r]){case 61:this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._key=this._decoder(this._key,this._encode),this._encode=0,this._inKey=!1;continue e;case 38:if(this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._key=this._decoder(this._key,this._encode),this._encode=0,this._bytesKey>0&&this.emit("field",this._key,"",{nameTruncated:this._keyTrunc,valueTruncated:!1,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),a();continue;case 43:this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._key+=" ",this._lastPos=r+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r)),this._lastPos=r+1,this._byte=-1,r=Fo(this,A,r+1,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();++this._bytesKey,r=ko(this,A,r,i);continue}++r,++this._bytesKey,r=ko(this,A,r,i)}this._lastPos<r&&(this._key+=A.latin1Slice(this._lastPos,r))}else{for(r=Lo(this,A,r,i);r<i;){switch(A[r]){case 38:if(this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._lastPos=++r,this._inKey=!0,this._val=this._decoder(this._val,this._encode),this._encode=0,(this._bytesKey>0||this._bytesVal>0)&&this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),a();continue e;case 43:this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._val+=" ",this._lastPos=r+1;break;case 37:if(this._encode===0&&(this._encode=1),this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r)),this._lastPos=r+1,this._byte=-1,r=Fo(this,A,r+1,i),r===-1)return a(new Error("Malformed urlencoded form"));if(r>=i)return a();++this._bytesVal,r=Lo(this,A,r,i);continue}++r,++this._bytesVal,r=Lo(this,A,r,i)}this._lastPos<r&&(this._val+=A.latin1Slice(this._lastPos,r))}a()}_final(A){if(this._byte!==-2)return A(new Error("Malformed urlencoded form"));(!this._inKey||this._bytesKey>0||this._bytesVal>0)&&(this._inKey?this._key=this._decoder(this._key,this._encode):this._val=this._decoder(this._val,this._encode),this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"})),A()}};function Fo(e,A,t,a){if(t>=a)return a;if(e._byte===-1){let r=Uo[A[t++]];if(r===-1)return-1;if(r>=8&&(e._encode=2),t<a){let i=Uo[A[t++]];if(i===-1)return-1;e._inKey?e._key+=String.fromCharCode((r<<4)+i):e._val+=String.fromCharCode((r<<4)+i),e._byte=-2,e._lastPos=t}else e._byte=r}else{let r=Uo[A[t++]];if(r===-1)return-1;e._inKey?e._key+=String.fromCharCode((e._byte<<4)+r):e._val+=String.fromCharCode((e._byte<<4)+r),e._byte=-2,e._lastPos=t}return t}function ko(e,A,t,a){if(e._bytesKey>e.fieldNameSizeLimit){for(e._keyTrunc||e._lastPos<t&&(e._key+=A.latin1Slice(e._lastPos,t-1)),e._keyTrunc=!0;t<a;++t){let r=A[t];if(r===61||r===38)break;++e._bytesKey}e._lastPos=t}return t}function Lo(e,A,t,a){if(e._bytesVal>e.fieldSizeLimit){for(e._valTrunc||e._lastPos<t&&(e._val+=A.latin1Slice(e._lastPos,t-1)),e._valTrunc=!0;t<a&&A[t]!==38;++t)++e._bytesVal;e._lastPos=t}return t}var Uo=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];D4.exports=To});var N4=E((eS,v4)=>{"use strict";var{parseContentType:$m}=wi();function eC(e){let A=e.headers,t=$m(A["content-type"]);if(!t)throw new Error("Malformed content type");for(let a of AC){if(!a.detect(t))continue;let i={limits:e.limits,headers:A,conType:t,highWaterMark:void 0,fileHwm:void 0,defCharset:void 0,defParamCharset:void 0,preservePath:!1};return e.highWaterMark&&(i.highWaterMark=e.highWaterMark),e.fileHwm&&(i.fileHwm=e.fileHwm),i.defCharset=e.defCharset,i.defParamCharset=e.defParamCharset,i.preservePath=e.preservePath,new a(i)}throw new Error(`Unsupported content type: ${A["content-type"]}`)}var AC=[y4(),R4()].filter(function(e){return typeof e.detect=="function"});v4.exports=e=>{if((typeof e!="object"||e===null)&&(e={}),typeof e.headers!="object"||e.headers===null||typeof e.headers["content-type"]!="string")throw new Error("Missing Content-Type");return eC(e)}});var Lt=E((AS,S4)=>{"use strict";var{MessageChannel:tC,receiveMessageOnPort:aC}=require("worker_threads"),rC=["GET","HEAD","POST"],iC=[101,204,205,304],sC=[301,302,303,307,308],nC=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"],oC=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],dC=["follow","manual","error"],pC=["GET","HEAD","OPTIONS","TRACE"],lC=["navigate","same-origin","no-cors","cors"],gC=["omit","same-origin","include"],cC=["default","no-store","reload","no-cache","force-cache","only-if-cached"],uC=["content-encoding","content-language","content-location","content-type","content-length"],EC=["half"],QC=["CONNECT","TRACE","TRACK"],mC=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],CC=globalThis.DOMException??(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})(),G1,BC=globalThis.structuredClone??function(A,t=void 0){if(arguments.length===0)throw new TypeError("missing argument");return G1||(G1=new tC),G1.port1.unref(),G1.port2.unref(),G1.port1.postMessage(A,t?.transfer),aC(G1.port2).message};S4.exports={DOMException:CC,structuredClone:BC,subresource:mC,forbiddenMethods:QC,requestBodyHeader:uC,referrerPolicy:oC,requestRedirect:dC,requestMode:lC,requestCredentials:gC,requestCache:cC,redirectStatus:sC,corsSafeListedMethods:rC,nullBodyStatus:iC,safeMethods:pC,badPorts:nC,requestDuplex:EC}});var Xa=E((tS,b4)=>{"use strict";var Mo=Symbol.for("undici.globalOrigin.1");function hC(){return globalThis[Mo]}function IC(e){if(e!==void 0&&typeof e!="string"&&!(e instanceof URL))throw new Error("Invalid base url");if(e===void 0){Object.defineProperty(globalThis,Mo,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let A=new URL(e);if(A.protocol!=="http:"&&A.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${A.protocol}`);Object.defineProperty(globalThis,Mo,{value:A,writable:!0,enumerable:!1,configurable:!1})}b4.exports={getGlobalOrigin:hC,setGlobalOrigin:IC}});var fA=E((aS,M4)=>{"use strict";var{redirectStatus:fC,badPorts:wC,referrerPolicy:yC}=Lt(),{getGlobalOrigin:DC}=Xa(),{performance:RC}=require("perf_hooks"),{isBlobLike:vC,toUSVString:NC,ReadableStreamFrom:SC}=q(),x1=require("assert"),{isUint8Array:bC}=require("util/types"),Di;try{Di=require("crypto")}catch{}function F4(e){let A=e.urlList,t=A.length;return t===0?null:A[t-1].toString()}function FC(e,A){if(!fC.includes(e.status))return null;let t=e.headersList.get("location");return t!==null&&L4(t)&&(t=new URL(t,F4(e))),t&&!t.hash&&(t.hash=A),t}function Ka(e){return e.urlList[e.urlList.length-1]}function kC(e){let A=Ka(e);return T4(A)&&wC.includes(A.port)?"blocked":"allowed"}function LC(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function UC(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(!(t===9||t>=32&&t<=126||t>=128&&t<=255))return!1}return!0}function TC(e){return!(e>=127||e<=32||e==="("||e===")"||e==="<"||e===">"||e==="@"||e===","||e===";"||e===":"||e==="\\"||e==='"'||e==="/"||e==="["||e==="]"||e==="?"||e==="="||e==="{"||e==="}")}function k4(e){if(!e||typeof e!="string")return!1;for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t>127||!TC(t))return!1}return!0}function MC(e){return e.length===0?!1:k4(e)}function L4(e){return!(e.startsWith(" ")||e.startsWith(" ")||e.endsWith(" ")||e.endsWith(" ")||e.includes("\0")||e.includes("\r")||e.includes(` +`))}function VC(e,A){let{headersList:t}=A,a=(t.get("referrer-policy")??"").split(","),r="";if(a.length>0)for(let i=a.length;i!==0;i--){let s=a[i-1].trim();if(yC.includes(s)){r=s;break}}r!==""&&(e.referrerPolicy=r)}function YC(){return"allowed"}function JC(){return"success"}function GC(){return"success"}function xC(e){let A=null;A=e.mode,e.headersList.set("sec-fetch-mode",A)}function _C(e){let A=e.origin;if(e.responseTainting==="cors"||e.mode==="websocket")A&&e.headersList.append("origin",A);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":A=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&Jo(e.origin)&&!Jo(Ka(e))&&(A=null);break;case"same-origin":Ri(e,Ka(e))||(A=null);break;default:}A&&e.headersList.append("origin",A)}}function qC(e){return RC.now()}function HC(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function OC(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function PC(e){return{referrerPolicy:e.referrerPolicy}}function WC(e){let A=e.referrerPolicy;x1(A);let t=null;if(e.referrer==="client"){let n=DC();if(!n||n.origin==="null")return"no-referrer";t=new URL(n)}else e.referrer instanceof URL&&(t=e.referrer);let a=Vo(t),r=Vo(t,!0);a.toString().length>4096&&(a=r);let i=Ri(e,a),s=za(a)&&!za(e.url);switch(A){case"origin":return r??Vo(t,!0);case"unsafe-url":return a;case"same-origin":return i?r:"no-referrer";case"origin-when-cross-origin":return i?a:r;case"strict-origin-when-cross-origin":{let n=Ka(e);return Ri(a,n)?a:za(a)&&!za(n)?"no-referrer":r}case"strict-origin":case"no-referrer-when-downgrade":default:return s?"no-referrer":r}}function Vo(e,A){return x1(e instanceof URL),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",A&&(e.pathname="",e.search=""),e)}function za(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return A(e.origin);function A(t){if(t==null||t==="null")return!1;let a=new URL(t);return!!(a.protocol==="https:"||a.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(a.hostname)||a.hostname==="localhost"||a.hostname.includes("localhost.")||a.hostname.endsWith(".localhost"))}}function ZC(e,A){if(Di===void 0)return!0;let t=XC(A);if(t==="no metadata"||t.length===0)return!0;let a=t.sort((s,n)=>n.algo.localeCompare(s.algo)),r=a[0].algo,i=a.filter(s=>s.algo===r);for(let s of i){let n=s.algo,o=s.hash;if(Di.createHash(n).update(e).digest("base64")===o)return!0}return!1}var jC=/((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\x21-\x7e]?)?/i;function XC(e){let A=[],t=!0,a=Di.getHashes();for(let r of e.split(" ")){t=!1;let i=jC.exec(r);if(i===null||i.groups===void 0)continue;let s=i.groups.algo;a.includes(s.toLowerCase())&&A.push(i.groups)}return t===!0?"no metadata":A}function zC(e){}function Ri(e,A){return e.origin===A.origin&&e.origin==="null"||e.protocol===A.protocol&&e.hostname===A.hostname&&e.port===A.port}function KC(){let e,A;return{promise:new Promise((a,r)=>{e=a,A=r}),resolve:e,reject:A}}function $C(e){return e.controller.state==="aborted"}function eB(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}function AB(e){return/^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(e)?e.toUpperCase():e}function tB(e){let A=JSON.stringify(e);if(A===void 0)throw new TypeError("Value is not JSON serializable");return x1(typeof A=="string"),A}var aB=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function rB(e,A,t){let a={index:0,kind:t,target:e},r={next(){if(Object.getPrototypeOf(this)!==r)throw new TypeError(`'next' called on an object that does not implement interface ${A} Iterator.`);let{index:i,kind:s,target:n}=a,o=n(),d=o.length;if(i>=d)return{value:void 0,done:!0};let l=o[i];return a.index=i+1,iB(l,s)},[Symbol.toStringTag]:`${A} Iterator`};return Object.setPrototypeOf(r,aB),Object.setPrototypeOf({},r)}function iB(e,A){let t;switch(A){case"key":{t=e[0];break}case"value":{t=e[1];break}case"key+value":{t=e;break}}return{value:t,done:!1}}function sB(e,A,t){let a=s=>queueMicrotask(()=>A(s)),r=s=>queueMicrotask(()=>t(s)),i;try{i=e.stream.getReader()}catch(s){r(s);return}U4(i,a,r)}var Yo=globalThis.ReadableStream;function nB(e){return Yo||(Yo=require("stream/web").ReadableStream),e instanceof Yo||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}var oB=65535;function dB(e){return e.length<oB?String.fromCharCode(...e):e.reduce((A,t)=>A+String.fromCharCode(t),"")}function pB(e){try{e.close()}catch(A){if(!A.message.includes("Controller is already closed"))throw A}}function lB(e){for(let A=0;A<e.length;A++)x1(e.charCodeAt(A)<=255);return e}async function U4(e,A,t){let a=[],r=0;for(;;){let i,s;try{({done:i,value:s}=await e.read())}catch(n){t(n);return}if(i){A(Buffer.concat(a,r));return}if(!bC(s)){t(new TypeError("Received non-Uint8Array chunk"));return}a.push(s),r+=s.length}}function gB(e){x1("protocol"in e);let A=e.protocol;return A==="about:"||A==="blob:"||A==="data:"}function Jo(e){return typeof e=="string"?e.startsWith("https:"):e.protocol==="https:"}function T4(e){x1("protocol"in e);let A=e.protocol;return A==="http:"||A==="https:"}var cB=Object.hasOwn||((e,A)=>Object.prototype.hasOwnProperty.call(e,A));M4.exports={isAborted:$C,isCancelled:eB,createDeferredPromise:KC,ReadableStreamFrom:SC,toUSVString:NC,tryUpgradeRequestToAPotentiallyTrustworthyURL:zC,coarsenedSharedCurrentTime:qC,determineRequestsReferrer:WC,makePolicyContainer:OC,clonePolicyContainer:PC,appendFetchMetadata:xC,appendRequestOriginHeader:_C,TAOCheck:GC,corsCheck:JC,crossOriginResourcePolicyCheck:YC,createOpaqueTimingInfo:HC,setRequestReferrerPolicyOnRedirect:VC,isValidHTTPToken:k4,requestBadPort:kC,requestCurrentURL:Ka,responseURL:F4,responseLocationURL:FC,isBlobLike:vC,isURLPotentiallyTrustworthy:za,isValidReasonPhrase:UC,sameOrigin:Ri,normalizeMethod:AB,serializeJavascriptValueToJSONString:tB,makeIterator:rB,isValidHeaderName:MC,isValidHeaderValue:L4,hasOwn:cB,isErrorLike:LC,fullyReadBody:sB,bytesMatch:ZC,isReadableStreamLike:nB,readableStreamClose:pB,isomorphicEncode:lB,isomorphicDecode:dB,urlIsLocal:gB,urlHasHttpsScheme:Jo,urlIsHttpHttpsScheme:T4,readAllBytes:U4}});var lt=E((rS,V4)=>{"use strict";V4.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}});var Ge=E((iS,J4)=>{"use strict";var{types:jA}=require("util"),{hasOwn:Y4,toUSVString:uB}=fA(),f={};f.converters={};f.util={};f.errors={};f.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};f.errors.conversionFailed=function(e){let A=e.types.length===1?"":" one of",t=`${e.argument} could not be converted to${A}: ${e.types.join(", ")}.`;return f.errors.exception({header:e.prefix,message:t})};f.errors.invalidArgument=function(e){return f.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};f.brandCheck=function(e,A,t=void 0){if(t?.strict!==!1&&!(e instanceof A))throw new TypeError("Illegal invocation");return e?.[Symbol.toStringTag]===A.prototype[Symbol.toStringTag]};f.argumentLengthCheck=function({length:e},A,t){if(e<A)throw f.errors.exception({message:`${A} argument${A!==1?"s":""} required, but${e?" only":""} ${e} found.`,...t})};f.illegalConstructor=function(){throw f.errors.exception({header:"TypeError",message:"Illegal constructor"})};f.util.Type=function(e){switch(typeof e){case"undefined":return"Undefined";case"boolean":return"Boolean";case"string":return"String";case"symbol":return"Symbol";case"number":return"Number";case"bigint":return"BigInt";case"function":case"object":return e===null?"Null":"Object"}};f.util.ConvertToInt=function(e,A,t,a={}){let r,i;A===64?(r=Math.pow(2,53)-1,t==="unsigned"?i=0:i=Math.pow(-2,53)+1):t==="unsigned"?(i=0,r=Math.pow(2,A)-1):(i=Math.pow(-2,A)-1,r=Math.pow(2,A-1)-1);let s=Number(e);if(s===0&&(s=0),a.enforceRange===!0){if(Number.isNaN(s)||s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY)throw f.errors.exception({header:"Integer conversion",message:`Could not convert ${e} to an integer.`});if(s=f.util.IntegerPart(s),s<i||s>r)throw f.errors.exception({header:"Integer conversion",message:`Value must be between ${i}-${r}, got ${s}.`});return s}return!Number.isNaN(s)&&a.clamp===!0?(s=Math.min(Math.max(s,i),r),Math.floor(s)%2===0?s=Math.floor(s):s=Math.ceil(s),s):Number.isNaN(s)||s===0&&Object.is(0,s)||s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY?0:(s=f.util.IntegerPart(s),s=s%Math.pow(2,A),t==="signed"&&s>=Math.pow(2,A)-1?s-Math.pow(2,A):s)};f.util.IntegerPart=function(e){let A=Math.floor(Math.abs(e));return e<0?-1*A:A};f.sequenceConverter=function(e){return A=>{if(f.util.Type(A)!=="Object")throw f.errors.exception({header:"Sequence",message:`Value of type ${f.util.Type(A)} is not an Object.`});let t=A?.[Symbol.iterator]?.(),a=[];if(t===void 0||typeof t.next!="function")throw f.errors.exception({header:"Sequence",message:"Object is not an iterator."});for(;;){let{done:r,value:i}=t.next();if(r)break;a.push(e(i))}return a}};f.recordConverter=function(e,A){return t=>{if(f.util.Type(t)!=="Object")throw f.errors.exception({header:"Record",message:`Value of type ${f.util.Type(t)} is not an Object.`});let a={};if(!jA.isProxy(t)){let i=Object.keys(t);for(let s of i){let n=e(s),o=A(t[s]);a[n]=o}return a}let r=Reflect.ownKeys(t);for(let i of r)if(Reflect.getOwnPropertyDescriptor(t,i)?.enumerable){let n=e(i),o=A(t[i]);a[n]=o}return a}};f.interfaceConverter=function(e){return(A,t={})=>{if(t.strict!==!1&&!(A instanceof e))throw f.errors.exception({header:e.name,message:`Expected ${A} to be an instance of ${e.name}.`});return A}};f.dictionaryConverter=function(e){return A=>{let t=f.util.Type(A),a={};if(t==="Null"||t==="Undefined")return a;if(t!=="Object")throw f.errors.exception({header:"Dictionary",message:`Expected ${A} to be one of: Null, Undefined, Object.`});for(let r of e){let{key:i,defaultValue:s,required:n,converter:o}=r;if(n===!0&&!Y4(A,i))throw f.errors.exception({header:"Dictionary",message:`Missing required key "${i}".`});let d=A[i],l=Y4(r,"defaultValue");if(l&&d!==null&&(d=d??s),n||l||d!==void 0){if(d=o(d),r.allowedValues&&!r.allowedValues.includes(d))throw f.errors.exception({header:"Dictionary",message:`${d} is not an accepted type. Expected one of ${r.allowedValues.join(", ")}.`});a[i]=d}}return a}};f.nullableConverter=function(e){return A=>A===null?A:e(A)};f.converters.DOMString=function(e,A={}){if(e===null&&A.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw new TypeError("Could not convert argument of type symbol to string.");return String(e)};f.converters.ByteString=function(e){let A=f.converters.DOMString(e);for(let t=0;t<A.length;t++){let a=A.charCodeAt(t);if(a>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${t} has a value of ${a} which is greater than 255.`)}return A};f.converters.USVString=uB;f.converters.boolean=function(e){return!!e};f.converters.any=function(e){return e};f.converters["long long"]=function(e){return f.util.ConvertToInt(e,64,"signed")};f.converters["unsigned long long"]=function(e){return f.util.ConvertToInt(e,64,"unsigned")};f.converters["unsigned long"]=function(e){return f.util.ConvertToInt(e,32,"unsigned")};f.converters["unsigned short"]=function(e,A){return f.util.ConvertToInt(e,16,"unsigned",A)};f.converters.ArrayBuffer=function(e,A={}){if(f.util.Type(e)!=="Object"||!jA.isAnyArrayBuffer(e))throw f.errors.conversionFailed({prefix:`${e}`,argument:`${e}`,types:["ArrayBuffer"]});if(A.allowShared===!1&&jA.isSharedArrayBuffer(e))throw f.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};f.converters.TypedArray=function(e,A,t={}){if(f.util.Type(e)!=="Object"||!jA.isTypedArray(e)||e.constructor.name!==A.name)throw f.errors.conversionFailed({prefix:`${A.name}`,argument:`${e}`,types:[A.name]});if(t.allowShared===!1&&jA.isSharedArrayBuffer(e.buffer))throw f.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};f.converters.DataView=function(e,A={}){if(f.util.Type(e)!=="Object"||!jA.isDataView(e))throw f.errors.exception({header:"DataView",message:"Object is not a DataView."});if(A.allowShared===!1&&jA.isSharedArrayBuffer(e.buffer))throw f.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};f.converters.BufferSource=function(e,A={}){if(jA.isAnyArrayBuffer(e))return f.converters.ArrayBuffer(e,A);if(jA.isTypedArray(e))return f.converters.TypedArray(e,e.constructor);if(jA.isDataView(e))return f.converters.DataView(e,A);throw new TypeError(`Could not convert ${e} to a BufferSource.`)};f.converters["sequence<ByteString>"]=f.sequenceConverter(f.converters.ByteString);f.converters["sequence<sequence<ByteString>>"]=f.sequenceConverter(f.converters["sequence<ByteString>"]);f.converters["record<ByteString, ByteString>"]=f.recordConverter(f.converters.ByteString,f.converters.ByteString);J4.exports={webidl:f}});var TA=E((sS,O4)=>{var Ni=require("assert"),{atob:EB}=require("buffer"),{isomorphicDecode:QB}=fA(),mB=new TextEncoder,vi=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/,CB=/(\u000A|\u000D|\u0009|\u0020)/,BB=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function hB(e){Ni(e.protocol==="data:");let A=_4(e,!0);A=A.slice(5);let t={position:0},a=_1(",",A,t),r=a.length;if(a=yB(a,!0,!0),t.position>=A.length)return"failure";t.position++;let i=A.slice(r+1),s=q4(i);if(/;(\u0020){0,}base64$/i.test(a)){let o=QB(s);if(s=fB(o),s==="failure")return"failure";a=a.slice(0,-6),a=a.replace(/(\u0020)+$/,""),a=a.slice(0,-1)}a.startsWith(";")&&(a="text/plain"+a);let n=xo(a);return n==="failure"&&(n=xo("text/plain;charset=US-ASCII")),{mimeType:n,body:s}}function _4(e,A=!1){let t=e.href;if(!A)return t;let a=t.lastIndexOf("#");return a===-1?t:t.slice(0,a)}function Si(e,A,t){let a="";for(;t.position<A.length&&e(A[t.position]);)a+=A[t.position],t.position++;return a}function _1(e,A,t){let a=A.indexOf(e,t.position),r=t.position;return a===-1?(t.position=A.length,A.slice(r)):(t.position=a,A.slice(r,t.position))}function q4(e){let A=mB.encode(e);return IB(A)}function IB(e){let A=[];for(let t=0;t<e.length;t++){let a=e[t];if(a!==37)A.push(a);else if(a===37&&!/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(e[t+1],e[t+2])))A.push(37);else{let r=String.fromCharCode(e[t+1],e[t+2]),i=Number.parseInt(r,16);A.push(i),t+=2}}return Uint8Array.from(A)}function xo(e){e=Go(e,!0,!0);let A={position:0},t=_1("/",e,A);if(t.length===0||!vi.test(t)||A.position>e.length)return"failure";A.position++;let a=_1(";",e,A);if(a=Go(a,!1,!0),a.length===0||!vi.test(a))return"failure";let r=t.toLowerCase(),i=a.toLowerCase(),s={type:r,subtype:i,parameters:new Map,essence:`${r}/${i}`};for(;A.position<e.length;){A.position++,Si(d=>CB.test(d),e,A);let n=Si(d=>d!==";"&&d!=="=",e,A);if(n=n.toLowerCase(),A.position<e.length){if(e[A.position]===";")continue;A.position++}if(A.position>e.length)break;let o=null;if(e[A.position]==='"')o=H4(e,A,!0),_1(";",e,A);else if(o=_1(";",e,A),o=Go(o,!1,!0),o.length===0)continue;n.length!==0&&vi.test(n)&&(o.length===0||BB.test(o))&&!s.parameters.has(n)&&s.parameters.set(n,o)}return s}function fB(e){if(e=e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,""),e.length%4===0&&(e=e.replace(/=?=$/,"")),e.length%4===1||/[^+/0-9A-Za-z]/.test(e))return"failure";let A=EB(e),t=new Uint8Array(A.length);for(let a=0;a<A.length;a++)t[a]=A.charCodeAt(a);return t}function H4(e,A,t){let a=A.position,r="";for(Ni(e[A.position]==='"'),A.position++;r+=Si(s=>s!=='"'&&s!=="\\",e,A),!(A.position>=e.length);){let i=e[A.position];if(A.position++,i==="\\"){if(A.position>=e.length){r+="\\";break}r+=e[A.position],A.position++}else{Ni(i==='"');break}}return t?r:e.slice(a,A.position)}function wB(e){Ni(e!=="failure");let{parameters:A,essence:t}=e,a=t;for(let[r,i]of A.entries())a+=";",a+=r,a+="=",vi.test(i)||(i=i.replace(/(\\|")/g,"\\$1"),i='"'+i,i+='"'),a+=i;return a}function G4(e){return e==="\r"||e===` +`||e===" "||e===" "}function Go(e,A=!0,t=!0){let a=0,r=e.length-1;if(A)for(;a<e.length&&G4(e[a]);a++);if(t)for(;r>0&&G4(e[r]);r--);return e.slice(a,r+1)}function x4(e){return e==="\r"||e===` +`||e===" "||e==="\f"||e===" "}function yB(e,A=!0,t=!0){let a=0,r=e.length-1;if(A)for(;a<e.length&&x4(e[a]);a++);if(t)for(;r>0&&x4(e[r]);r--);return e.slice(a,r+1)}O4.exports={dataURLProcessor:hB,URLSerializer:_4,collectASequenceOfCodePoints:Si,collectASequenceOfCodePointsFast:_1,stringPercentDecode:q4,parseMIMEType:xo,collectAnHTTPQuotedString:H4,serializeAMimeType:wB}});var bi=E((nS,X4)=>{"use strict";var{Blob:Z4,File:P4}=require("buffer"),{types:_o}=require("util"),{kState:iA}=lt(),{isBlobLike:j4}=fA(),{webidl:P}=Ge(),{parseMIMEType:DB,serializeAMimeType:RB}=TA(),{kEnumerableProperty:W4}=q(),$a=class e extends Z4{constructor(A,t,a={}){P.argumentLengthCheck(arguments,2,{header:"File constructor"}),A=P.converters["sequence<BlobPart>"](A),t=P.converters.USVString(t),a=P.converters.FilePropertyBag(a);let r=t,i=a.type,s;e:{if(i){if(i=DB(i),i==="failure"){i="";break e}i=RB(i).toLowerCase()}s=a.lastModified}super(vB(A,a),{type:i}),this[iA]={name:r,lastModified:s,type:i}}get name(){return P.brandCheck(this,e),this[iA].name}get lastModified(){return P.brandCheck(this,e),this[iA].lastModified}get type(){return P.brandCheck(this,e),this[iA].type}},qo=class e{constructor(A,t,a={}){let r=t,i=a.type,s=a.lastModified??Date.now();this[iA]={blobLike:A,name:r,type:i,lastModified:s}}stream(...A){return P.brandCheck(this,e),this[iA].blobLike.stream(...A)}arrayBuffer(...A){return P.brandCheck(this,e),this[iA].blobLike.arrayBuffer(...A)}slice(...A){return P.brandCheck(this,e),this[iA].blobLike.slice(...A)}text(...A){return P.brandCheck(this,e),this[iA].blobLike.text(...A)}get size(){return P.brandCheck(this,e),this[iA].blobLike.size}get type(){return P.brandCheck(this,e),this[iA].blobLike.type}get name(){return P.brandCheck(this,e),this[iA].name}get lastModified(){return P.brandCheck(this,e),this[iA].lastModified}get[Symbol.toStringTag](){return"File"}};Object.defineProperties($a.prototype,{[Symbol.toStringTag]:{value:"File",configurable:!0},name:W4,lastModified:W4});P.converters.Blob=P.interfaceConverter(Z4);P.converters.BlobPart=function(e,A){if(P.util.Type(e)==="Object"){if(j4(e))return P.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||_o.isAnyArrayBuffer(e))return P.converters.BufferSource(e,A)}return P.converters.USVString(e,A)};P.converters["sequence<BlobPart>"]=P.sequenceConverter(P.converters.BlobPart);P.converters.FilePropertyBag=P.dictionaryConverter([{key:"lastModified",converter:P.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:P.converters.DOMString,defaultValue:""},{key:"endings",converter:e=>(e=P.converters.DOMString(e),e=e.toLowerCase(),e!=="native"&&(e="transparent"),e),defaultValue:"transparent"}]);function vB(e,A){let t=[];for(let a of e)if(typeof a=="string"){let r=a;A.endings==="native"&&(r=NB(r)),t.push(new TextEncoder().encode(r))}else _o.isAnyArrayBuffer(a)||_o.isTypedArray(a)?a.buffer?t.push(new Uint8Array(a.buffer,a.byteOffset,a.byteLength)):t.push(new Uint8Array(a)):j4(a)&&t.push(a);return t}function NB(e){let A=` `;return process.platform==="win32"&&(A=`\r -`),e.replace(/\r?\n/g,A)}function zB(e){return tg&&e instanceof tg||e instanceof ir||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}sg.exports={File:ir,FileLike:Ko,isFileLike:zB}});var Ji=E((Zb,lg)=>{"use strict";var{isBlobLike:Yi,toUSVString:KB,makeIterator:$o}=wA(),{kState:Ve}=Et(),{File:pg,FileLike:ng,isFileLike:$B}=Vi(),{webidl:j}=Ge(),{Blob:eh,File:ed}=require("buffer"),og=ed??pg,W1=class e{constructor(A){if(A!==void 0)throw j.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[Ve]=[]}append(A,t,a=void 0){if(j.brandCheck(this,e),j.argumentLengthCheck(arguments,2,{header:"FormData.append"}),arguments.length===3&&!Yi(t))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");A=j.converters.USVString(A),t=Yi(t)?j.converters.Blob(t,{strict:!1}):j.converters.USVString(t),a=arguments.length===3?j.converters.USVString(a):void 0;let r=dg(A,t,a);this[Ve].push(r)}delete(A){j.brandCheck(this,e),j.argumentLengthCheck(arguments,1,{header:"FormData.delete"}),A=j.converters.USVString(A),this[Ve]=this[Ve].filter(t=>t.name!==A)}get(A){j.brandCheck(this,e),j.argumentLengthCheck(arguments,1,{header:"FormData.get"}),A=j.converters.USVString(A);let t=this[Ve].findIndex(a=>a.name===A);return t===-1?null:this[Ve][t].value}getAll(A){return j.brandCheck(this,e),j.argumentLengthCheck(arguments,1,{header:"FormData.getAll"}),A=j.converters.USVString(A),this[Ve].filter(t=>t.name===A).map(t=>t.value)}has(A){return j.brandCheck(this,e),j.argumentLengthCheck(arguments,1,{header:"FormData.has"}),A=j.converters.USVString(A),this[Ve].findIndex(t=>t.name===A)!==-1}set(A,t,a=void 0){if(j.brandCheck(this,e),j.argumentLengthCheck(arguments,2,{header:"FormData.set"}),arguments.length===3&&!Yi(t))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");A=j.converters.USVString(A),t=Yi(t)?j.converters.Blob(t,{strict:!1}):j.converters.USVString(t),a=arguments.length===3?KB(a):void 0;let r=dg(A,t,a),i=this[Ve].findIndex(s=>s.name===A);i!==-1?this[Ve]=[...this[Ve].slice(0,i),r,...this[Ve].slice(i+1).filter(s=>s.name!==A)]:this[Ve].push(r)}entries(){return j.brandCheck(this,e),$o(()=>this[Ve].map(A=>[A.name,A.value]),"FormData","key+value")}keys(){return j.brandCheck(this,e),$o(()=>this[Ve].map(A=>[A.name,A.value]),"FormData","key")}values(){return j.brandCheck(this,e),$o(()=>this[Ve].map(A=>[A.name,A.value]),"FormData","value")}forEach(A,t=globalThis){if(j.brandCheck(this,e),j.argumentLengthCheck(arguments,1,{header:"FormData.forEach"}),typeof A!="function")throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.");for(let[a,r]of this)A.apply(t,[r,a,this])}};W1.prototype[Symbol.iterator]=W1.prototype.entries;Object.defineProperties(W1.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function dg(e,A,t){if(e=Buffer.from(e).toString("utf8"),typeof A=="string")A=Buffer.from(A).toString("utf8");else if($B(A)||(A=A instanceof eh?new og([A],"blob",{type:A.type}):new ng(A,"blob",{type:A.type})),t!==void 0){let a={type:A.type,lastModified:A.lastModified};A=ed&&A instanceof ed||A instanceof pg?new og([A],t,a):new ng(A,t,a)}return{name:e,value:A}}lg.exports={FormData:W1}});var sr=E((Xb,hg)=>{"use strict";var Ah=Y4(),j1=H(),{ReadableStreamFrom:th,isBlobLike:gg,isReadableStreamLike:ah,readableStreamClose:rh,createDeferredPromise:ih,fullyReadBody:sh}=wA(),{FormData:cg}=Ji(),{kState:Ct}=Et(),{webidl:Ad}=Ge(),{DOMException:Qg,structuredClone:nh}=Vt(),{Blob:oh,File:dh}=require("buffer"),{kBodyUsed:ph}=ie(),td=require("assert"),{isErrored:lh}=H(),{isUint8Array:Cg,isArrayBuffer:gh}=require("util/types"),{File:ch}=Vi(),{parseMIMEType:uh,serializeAMimeType:Eh}=VA(),Qt=globalThis.ReadableStream,ug=dh??ch;function mg(e,A=!1){Qt||(Qt=require("stream/web").ReadableStream);let t=null;e instanceof Qt?t=e:gg(e)?t=e.stream():t=new Qt({async pull(o){o.enqueue(typeof r=="string"?new TextEncoder().encode(r):r),queueMicrotask(()=>rh(o))},start(){},type:void 0}),td(ah(t));let a=null,r=null,i=null,s=null;if(typeof e=="string")r=e,s="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)r=e.toString(),s="application/x-www-form-urlencoded;charset=UTF-8";else if(gh(e))r=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))r=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(j1.isFormDataLike(e)){let o=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,d=`--${o}\r -Content-Disposition: form-data`;let l=C=>C.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),p=C=>C.replace(/\r?\n|\r/g,`\r -`),g=new TextEncoder,c=[],u=new Uint8Array([13,10]);i=0;let Q=!1;for(let[C,B]of e)if(typeof B=="string"){let f=g.encode(d+`; name="${l(p(C))}"\r +`),e.replace(/\r?\n/g,A)}function SB(e){return P4&&e instanceof P4||e instanceof $a||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}X4.exports={File:$a,FileLike:qo,isFileLike:SB}});var ki=E((oS,Ag)=>{"use strict";var{isBlobLike:Fi,toUSVString:bB,makeIterator:Ho}=fA(),{kState:Ve}=lt(),{File:eg,FileLike:z4,isFileLike:FB}=bi(),{webidl:Z}=Ge(),{Blob:kB,File:Oo}=require("buffer"),K4=Oo??eg,q1=class e{constructor(A){if(A!==void 0)throw Z.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[Ve]=[]}append(A,t,a=void 0){if(Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,2,{header:"FormData.append"}),arguments.length===3&&!Fi(t))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");A=Z.converters.USVString(A),t=Fi(t)?Z.converters.Blob(t,{strict:!1}):Z.converters.USVString(t),a=arguments.length===3?Z.converters.USVString(a):void 0;let r=$4(A,t,a);this[Ve].push(r)}delete(A){Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FormData.delete"}),A=Z.converters.USVString(A),this[Ve]=this[Ve].filter(t=>t.name!==A)}get(A){Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FormData.get"}),A=Z.converters.USVString(A);let t=this[Ve].findIndex(a=>a.name===A);return t===-1?null:this[Ve][t].value}getAll(A){return Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FormData.getAll"}),A=Z.converters.USVString(A),this[Ve].filter(t=>t.name===A).map(t=>t.value)}has(A){return Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FormData.has"}),A=Z.converters.USVString(A),this[Ve].findIndex(t=>t.name===A)!==-1}set(A,t,a=void 0){if(Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,2,{header:"FormData.set"}),arguments.length===3&&!Fi(t))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");A=Z.converters.USVString(A),t=Fi(t)?Z.converters.Blob(t,{strict:!1}):Z.converters.USVString(t),a=arguments.length===3?bB(a):void 0;let r=$4(A,t,a),i=this[Ve].findIndex(s=>s.name===A);i!==-1?this[Ve]=[...this[Ve].slice(0,i),r,...this[Ve].slice(i+1).filter(s=>s.name!==A)]:this[Ve].push(r)}entries(){return Z.brandCheck(this,e),Ho(()=>this[Ve].map(A=>[A.name,A.value]),"FormData","key+value")}keys(){return Z.brandCheck(this,e),Ho(()=>this[Ve].map(A=>[A.name,A.value]),"FormData","key")}values(){return Z.brandCheck(this,e),Ho(()=>this[Ve].map(A=>[A.name,A.value]),"FormData","value")}forEach(A,t=globalThis){if(Z.brandCheck(this,e),Z.argumentLengthCheck(arguments,1,{header:"FormData.forEach"}),typeof A!="function")throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.");for(let[a,r]of this)A.apply(t,[r,a,this])}};q1.prototype[Symbol.iterator]=q1.prototype.entries;Object.defineProperties(q1.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function $4(e,A,t){if(e=Buffer.from(e).toString("utf8"),typeof A=="string")A=Buffer.from(A).toString("utf8");else if(FB(A)||(A=A instanceof kB?new K4([A],"blob",{type:A.type}):new z4(A,"blob",{type:A.type})),t!==void 0){let a={type:A.type,lastModified:A.lastModified};A=Oo&&A instanceof Oo||A instanceof eg?new K4([A],t,a):new z4(A,t,a)}return{name:e,value:A}}Ag.exports={FormData:q1}});var er=E((dS,pg)=>{"use strict";var LB=N4(),H1=q(),{ReadableStreamFrom:UB,isBlobLike:tg,isReadableStreamLike:TB,readableStreamClose:MB,createDeferredPromise:VB,fullyReadBody:YB}=fA(),{FormData:ag}=ki(),{kState:ct}=lt(),{webidl:Po}=Ge(),{DOMException:sg,structuredClone:JB}=Lt(),{Blob:GB,File:xB}=require("buffer"),{kBodyUsed:_B}=ie(),Wo=require("assert"),{isErrored:qB}=q(),{isUint8Array:ng,isArrayBuffer:HB}=require("util/types"),{File:OB}=bi(),{parseMIMEType:PB,serializeAMimeType:WB}=TA(),gt=globalThis.ReadableStream,rg=xB??OB;function og(e,A=!1){gt||(gt=require("stream/web").ReadableStream);let t=null;e instanceof gt?t=e:tg(e)?t=e.stream():t=new gt({async pull(o){o.enqueue(typeof r=="string"?new TextEncoder().encode(r):r),queueMicrotask(()=>MB(o))},start(){},type:void 0}),Wo(TB(t));let a=null,r=null,i=null,s=null;if(typeof e=="string")r=e,s="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)r=e.toString(),s="application/x-www-form-urlencoded;charset=UTF-8";else if(HB(e))r=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))r=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(H1.isFormDataLike(e)){let o=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,d=`--${o}\r +Content-Disposition: form-data`;let l=m=>m.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),p=m=>m.replace(/\r?\n|\r/g,`\r +`),g=new TextEncoder,c=[],u=new Uint8Array([13,10]);i=0;let Q=!1;for(let[m,B]of e)if(typeof B=="string"){let w=g.encode(d+`; name="${l(p(m))}"\r \r ${p(B)}\r -`);c.push(f),i+=f.byteLength}else{let f=g.encode(`${d}; name="${l(p(C))}"`+(B.name?`; filename="${l(B.name)}"`:"")+`\r +`);c.push(w),i+=w.byteLength}else{let w=g.encode(`${d}; name="${l(p(m))}"`+(B.name?`; filename="${l(B.name)}"`:"")+`\r Content-Type: ${B.type||"application/octet-stream"}\r \r -`);c.push(f,B,u),typeof B.size=="number"?i+=f.byteLength+B.size+u.byteLength:Q=!0}let m=g.encode(`--${o}--`);c.push(m),i+=m.byteLength,Q&&(i=null),r=e,a=async function*(){for(let C of c)C.stream?yield*C.stream():yield C},s="multipart/form-data; boundary="+o}else if(gg(e))r=e,i=e.size,e.type&&(s=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(A)throw new TypeError("keepalive");if(j1.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");t=e instanceof Qt?e:th(e)}if((typeof r=="string"||j1.isBuffer(r))&&(i=Buffer.byteLength(r)),a!=null){let o;t=new Qt({async start(){o=a(e)[Symbol.asyncIterator]()},async pull(d){let{value:l,done:p}=await o.next();return p?queueMicrotask(()=>{d.close()}):lh(t)||d.enqueue(new Uint8Array(l)),d.desiredSize>0},async cancel(d){await o.return()},type:void 0})}return[{stream:t,source:r,length:i},s]}function Qh(e,A=!1){return Qt||(Qt=require("stream/web").ReadableStream),e instanceof Qt&&(td(!j1.isDisturbed(e),"The body has already been consumed."),td(!e.locked,"The stream is locked.")),mg(e,A)}function Ch(e){let[A,t]=e.stream.tee(),a=nh(t,{transfer:[t]}),[,r]=a.tee();return e.stream=A,{stream:r,length:e.length,source:e.source}}async function*Eg(e){if(e)if(Cg(e))yield e;else{let A=e.stream;if(j1.isDisturbed(A))throw new TypeError("The body has already been consumed.");if(A.locked)throw new TypeError("The stream is locked.");A[ph]=!0,yield*A}}function ad(e){if(e.aborted)throw new Qg("The operation was aborted.","AbortError")}function mh(e){return{blob(){return Gi(this,t=>{let a=fh(this);return a==="failure"?a="":a&&(a=Eh(a)),new oh([t],{type:a})},e)},arrayBuffer(){return Gi(this,t=>new Uint8Array(t).buffer,e)},text(){return Gi(this,Bg,e)},json(){return Gi(this,Ih,e)},async formData(){Ad.brandCheck(this,e),ad(this[Ct]);let t=this.headers.get("Content-Type");if(/multipart\/form-data/.test(t)){let a={};for(let[n,o]of this.headers)a[n.toLowerCase()]=o;let r=new cg,i;try{i=Ah({headers:a,defParamCharset:"utf8"})}catch(n){throw new Qg(`${n}`,"AbortError")}i.on("field",(n,o)=>{r.append(n,o)}),i.on("file",(n,o,d)=>{let{filename:l,encoding:p,mimeType:g}=d,c=[];if(p==="base64"||p.toLowerCase()==="base64"){let u="";o.on("data",Q=>{u+=Q.toString().replace(/[\r\n]/gm,"");let m=u.length-u.length%4;c.push(Buffer.from(u.slice(0,m),"base64")),u=u.slice(m)}),o.on("end",()=>{c.push(Buffer.from(u,"base64")),r.append(n,new ug(c,l,{type:g}))})}else o.on("data",u=>{c.push(u)}),o.on("end",()=>{r.append(n,new ug(c,l,{type:g}))})});let s=new Promise((n,o)=>{i.on("finish",n),i.on("error",d=>o(new TypeError(d)))});if(this.body!==null)for await(let n of Eg(this[Ct].body))i.write(n);return i.end(),await s,r}else if(/application\/x-www-form-urlencoded/.test(t)){let a;try{let i="",s=new TextDecoder("utf-8",{ignoreBOM:!0});for await(let n of Eg(this[Ct].body)){if(!Cg(n))throw new TypeError("Expected Uint8Array chunk");i+=s.decode(n,{stream:!0})}i+=s.decode(),a=new URLSearchParams(i)}catch(i){throw Object.assign(new TypeError,{cause:i})}let r=new cg;for(let[i,s]of a)r.append(i,s);return r}else throw await Promise.resolve(),ad(this[Ct]),Ad.errors.exception({header:`${e.name}.formData`,message:"Could not parse content as FormData."})}}}function Bh(e){Object.assign(e.prototype,mh(e))}async function Gi(e,A,t){if(Ad.brandCheck(e,t),ad(e[Ct]),hh(e[Ct].body))throw new TypeError("Body is unusable");let a=ih(),r=s=>a.reject(s),i=s=>{try{a.resolve(A(s))}catch(n){r(n)}};return e[Ct].body==null?(i(new Uint8Array),a.promise):(sh(e[Ct].body,i,r),a.promise)}function hh(e){return e!=null&&(e.stream.locked||j1.isDisturbed(e.stream))}function Bg(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),new TextDecoder().decode(e))}function Ih(e){return JSON.parse(Bg(e))}function fh(e){let{headersList:A}=e[Ct],t=A.get("content-type");return t===null?"failure":uh(t)}hg.exports={extractBody:mg,safelyExtractBody:Qh,cloneBody:Ch,mixinBody:Bh}});var yg=E((zb,wg)=>{"use strict";var{InvalidArgumentError:se,NotSupportedError:wh}=ee(),mt=require("assert"),sA=H(),Ig=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,fg=/[^\t\x20-\x7e\x80-\xff]/,yh=/[^\u0021-\u00ff]/,Bt=Symbol("handler"),Qe={},rd;try{let e=require("diagnostics_channel");Qe.create=e.channel("undici:request:create"),Qe.bodySent=e.channel("undici:request:bodySent"),Qe.headers=e.channel("undici:request:headers"),Qe.trailers=e.channel("undici:request:trailers"),Qe.error=e.channel("undici:request:error")}catch{Qe.create={hasSubscribers:!1},Qe.bodySent={hasSubscribers:!1},Qe.headers={hasSubscribers:!1},Qe.trailers={hasSubscribers:!1},Qe.error={hasSubscribers:!1}}var nd=class{constructor(A,{path:t,method:a,body:r,headers:i,query:s,idempotent:n,blocking:o,upgrade:d,headersTimeout:l,bodyTimeout:p,reset:g,throwOnError:c},u){if(typeof t!="string")throw new se("path must be a string");if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&a!=="CONNECT")throw new se("path must be an absolute URL or start with a slash");if(yh.exec(t)!==null)throw new se("invalid request path");if(typeof a!="string")throw new se("method must be a string");if(Ig.exec(a)===null)throw new se("invalid request method");if(d&&typeof d!="string")throw new se("upgrade must be a string");if(l!=null&&(!Number.isFinite(l)||l<0))throw new se("invalid headersTimeout");if(p!=null&&(!Number.isFinite(p)||p<0))throw new se("invalid bodyTimeout");if(g!=null&&typeof g!="boolean")throw new se("invalid reset");if(this.headersTimeout=l,this.bodyTimeout=p,this.throwOnError=c===!0,this.method=a,r==null)this.body=null;else if(sA.isStream(r))this.body=r;else if(sA.isBuffer(r))this.body=r.byteLength?r:null;else if(ArrayBuffer.isView(r))this.body=r.buffer.byteLength?Buffer.from(r.buffer,r.byteOffset,r.byteLength):null;else if(r instanceof ArrayBuffer)this.body=r.byteLength?Buffer.from(r):null;else if(typeof r=="string")this.body=r.length?Buffer.from(r):null;else if(sA.isFormDataLike(r)||sA.isIterable(r)||sA.isBlobLike(r))this.body=r;else throw new se("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=d||null,this.path=s?sA.buildURL(t,s):t,this.origin=A,this.idempotent=n??(a==="HEAD"||a==="GET"),this.blocking=o??!1,this.reset=g??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers="",Array.isArray(i)){if(i.length%2!==0)throw new se("headers array must be even");for(let Q=0;Q<i.length;Q+=2)sd(this,i[Q],i[Q+1])}else if(i&&typeof i=="object"){let Q=Object.keys(i);for(let m=0;m<Q.length;m++){let C=Q[m];sd(this,C,i[C])}}else if(i!=null)throw new se("headers must be an object or an array");if(sA.isFormDataLike(this.body)){if(sA.nodeMajor<16||sA.nodeMajor===16&&sA.nodeMinor<8)throw new se("Form-Data bodies are only supported in node v16.8 and newer.");rd||(rd=sr().extractBody);let[Q,m]=rd(r);this.contentType==null&&(this.contentType=m,this.headers+=`content-type: ${m}\r +`);c.push(w,B,u),typeof B.size=="number"?i+=w.byteLength+B.size+u.byteLength:Q=!0}let C=g.encode(`--${o}--`);c.push(C),i+=C.byteLength,Q&&(i=null),r=e,a=async function*(){for(let m of c)m.stream?yield*m.stream():yield m},s="multipart/form-data; boundary="+o}else if(tg(e))r=e,i=e.size,e.type&&(s=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(A)throw new TypeError("keepalive");if(H1.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");t=e instanceof gt?e:UB(e)}if((typeof r=="string"||H1.isBuffer(r))&&(i=Buffer.byteLength(r)),a!=null){let o;t=new gt({async start(){o=a(e)[Symbol.asyncIterator]()},async pull(d){let{value:l,done:p}=await o.next();return p?queueMicrotask(()=>{d.close()}):qB(t)||d.enqueue(new Uint8Array(l)),d.desiredSize>0},async cancel(d){await o.return()},type:void 0})}return[{stream:t,source:r,length:i},s]}function ZB(e,A=!1){return gt||(gt=require("stream/web").ReadableStream),e instanceof gt&&(Wo(!H1.isDisturbed(e),"The body has already been consumed."),Wo(!e.locked,"The stream is locked.")),og(e,A)}function jB(e){let[A,t]=e.stream.tee(),a=JB(t,{transfer:[t]}),[,r]=a.tee();return e.stream=A,{stream:r,length:e.length,source:e.source}}async function*ig(e){if(e)if(ng(e))yield e;else{let A=e.stream;if(H1.isDisturbed(A))throw new TypeError("The body has already been consumed.");if(A.locked)throw new TypeError("The stream is locked.");A[_B]=!0,yield*A}}function Zo(e){if(e.aborted)throw new sg("The operation was aborted.","AbortError")}function XB(e){return{blob(){return Li(this,t=>{let a=eh(this);return a==="failure"?a="":a&&(a=WB(a)),new GB([t],{type:a})},e)},arrayBuffer(){return Li(this,t=>new Uint8Array(t).buffer,e)},text(){return Li(this,dg,e)},json(){return Li(this,$B,e)},async formData(){Po.brandCheck(this,e),Zo(this[ct]);let t=this.headers.get("Content-Type");if(/multipart\/form-data/.test(t)){let a={};for(let[n,o]of this.headers)a[n.toLowerCase()]=o;let r=new ag,i;try{i=LB({headers:a,defParamCharset:"utf8"})}catch(n){throw new sg(`${n}`,"AbortError")}i.on("field",(n,o)=>{r.append(n,o)}),i.on("file",(n,o,d)=>{let{filename:l,encoding:p,mimeType:g}=d,c=[];if(p==="base64"||p.toLowerCase()==="base64"){let u="";o.on("data",Q=>{u+=Q.toString().replace(/[\r\n]/gm,"");let C=u.length-u.length%4;c.push(Buffer.from(u.slice(0,C),"base64")),u=u.slice(C)}),o.on("end",()=>{c.push(Buffer.from(u,"base64")),r.append(n,new rg(c,l,{type:g}))})}else o.on("data",u=>{c.push(u)}),o.on("end",()=>{r.append(n,new rg(c,l,{type:g}))})});let s=new Promise((n,o)=>{i.on("finish",n),i.on("error",d=>o(new TypeError(d)))});if(this.body!==null)for await(let n of ig(this[ct].body))i.write(n);return i.end(),await s,r}else if(/application\/x-www-form-urlencoded/.test(t)){let a;try{let i="",s=new TextDecoder("utf-8",{ignoreBOM:!0});for await(let n of ig(this[ct].body)){if(!ng(n))throw new TypeError("Expected Uint8Array chunk");i+=s.decode(n,{stream:!0})}i+=s.decode(),a=new URLSearchParams(i)}catch(i){throw Object.assign(new TypeError,{cause:i})}let r=new ag;for(let[i,s]of a)r.append(i,s);return r}else throw await Promise.resolve(),Zo(this[ct]),Po.errors.exception({header:`${e.name}.formData`,message:"Could not parse content as FormData."})}}}function zB(e){Object.assign(e.prototype,XB(e))}async function Li(e,A,t){if(Po.brandCheck(e,t),Zo(e[ct]),KB(e[ct].body))throw new TypeError("Body is unusable");let a=VB(),r=s=>a.reject(s),i=s=>{try{a.resolve(A(s))}catch(n){r(n)}};return e[ct].body==null?(i(new Uint8Array),a.promise):(YB(e[ct].body,i,r),a.promise)}function KB(e){return e!=null&&(e.stream.locked||H1.isDisturbed(e.stream))}function dg(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),new TextDecoder().decode(e))}function $B(e){return JSON.parse(dg(e))}function eh(e){let{headersList:A}=e[ct],t=A.get("content-type");return t===null?"failure":PB(t)}pg.exports={extractBody:og,safelyExtractBody:ZB,cloneBody:jB,mixinBody:zB}});var ug=E((pS,cg)=>{"use strict";var{InvalidArgumentError:se,NotSupportedError:Ah}=ee(),ut=require("assert"),sA=q(),lg=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,gg=/[^\t\x20-\x7e\x80-\xff]/,th=/[^\u0021-\u00ff]/,Et=Symbol("handler"),Qe={},jo;try{let e=require("diagnostics_channel");Qe.create=e.channel("undici:request:create"),Qe.bodySent=e.channel("undici:request:bodySent"),Qe.headers=e.channel("undici:request:headers"),Qe.trailers=e.channel("undici:request:trailers"),Qe.error=e.channel("undici:request:error")}catch{Qe.create={hasSubscribers:!1},Qe.bodySent={hasSubscribers:!1},Qe.headers={hasSubscribers:!1},Qe.trailers={hasSubscribers:!1},Qe.error={hasSubscribers:!1}}var Ko=class{constructor(A,{path:t,method:a,body:r,headers:i,query:s,idempotent:n,blocking:o,upgrade:d,headersTimeout:l,bodyTimeout:p,reset:g,throwOnError:c},u){if(typeof t!="string")throw new se("path must be a string");if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&a!=="CONNECT")throw new se("path must be an absolute URL or start with a slash");if(th.exec(t)!==null)throw new se("invalid request path");if(typeof a!="string")throw new se("method must be a string");if(lg.exec(a)===null)throw new se("invalid request method");if(d&&typeof d!="string")throw new se("upgrade must be a string");if(l!=null&&(!Number.isFinite(l)||l<0))throw new se("invalid headersTimeout");if(p!=null&&(!Number.isFinite(p)||p<0))throw new se("invalid bodyTimeout");if(g!=null&&typeof g!="boolean")throw new se("invalid reset");if(this.headersTimeout=l,this.bodyTimeout=p,this.throwOnError=c===!0,this.method=a,r==null)this.body=null;else if(sA.isStream(r))this.body=r;else if(sA.isBuffer(r))this.body=r.byteLength?r:null;else if(ArrayBuffer.isView(r))this.body=r.buffer.byteLength?Buffer.from(r.buffer,r.byteOffset,r.byteLength):null;else if(r instanceof ArrayBuffer)this.body=r.byteLength?Buffer.from(r):null;else if(typeof r=="string")this.body=r.length?Buffer.from(r):null;else if(sA.isFormDataLike(r)||sA.isIterable(r)||sA.isBlobLike(r))this.body=r;else throw new se("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=d||null,this.path=s?sA.buildURL(t,s):t,this.origin=A,this.idempotent=n??(a==="HEAD"||a==="GET"),this.blocking=o??!1,this.reset=g??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers="",Array.isArray(i)){if(i.length%2!==0)throw new se("headers array must be even");for(let Q=0;Q<i.length;Q+=2)zo(this,i[Q],i[Q+1])}else if(i&&typeof i=="object"){let Q=Object.keys(i);for(let C=0;C<Q.length;C++){let m=Q[C];zo(this,m,i[m])}}else if(i!=null)throw new se("headers must be an object or an array");if(sA.isFormDataLike(this.body)){if(sA.nodeMajor<16||sA.nodeMajor===16&&sA.nodeMinor<8)throw new se("Form-Data bodies are only supported in node v16.8 and newer.");jo||(jo=er().extractBody);let[Q,C]=jo(r);this.contentType==null&&(this.contentType=C,this.headers+=`content-type: ${C}\r `),this.body=Q.stream,this.contentLength=Q.length}else sA.isBlobLike(r)&&this.contentType==null&&r.type&&(this.contentType=r.type,this.headers+=`content-type: ${r.type}\r -`);sA.validateHandler(u,a,d),this.servername=sA.getServerName(this.host),this[Bt]=u,Qe.create.hasSubscribers&&Qe.create.publish({request:this})}onBodySent(A){if(this[Bt].onBodySent)try{this[Bt].onBodySent(A)}catch(t){this.onError(t)}}onRequestSent(){Qe.bodySent.hasSubscribers&&Qe.bodySent.publish({request:this})}onConnect(A){return mt(!this.aborted),mt(!this.completed),this[Bt].onConnect(A)}onHeaders(A,t,a,r){return mt(!this.aborted),mt(!this.completed),Qe.headers.hasSubscribers&&Qe.headers.publish({request:this,response:{statusCode:A,headers:t,statusText:r}}),this[Bt].onHeaders(A,t,a,r)}onData(A){return mt(!this.aborted),mt(!this.completed),this[Bt].onData(A)}onUpgrade(A,t,a){return mt(!this.aborted),mt(!this.completed),this[Bt].onUpgrade(A,t,a)}onComplete(A){return mt(!this.aborted),this.completed=!0,Qe.trailers.hasSubscribers&&Qe.trailers.publish({request:this,trailers:A}),this[Bt].onComplete(A)}onError(A){if(Qe.error.hasSubscribers&&Qe.error.publish({request:this,error:A}),!this.aborted)return this.aborted=!0,this[Bt].onError(A)}addHeader(A,t){return sd(this,A,t),this}};function id(e,A){if(A&&typeof A=="object")throw new se(`invalid ${e} header`);if(A=A!=null?`${A}`:"",fg.exec(A)!==null)throw new se(`invalid ${e} header`);return`${e}: ${A}\r -`}function sd(e,A,t){if(t&&typeof t=="object"&&!Array.isArray(t))throw new se(`invalid ${A} header`);if(t===void 0)return;if(e.host===null&&A.length===4&&A.toLowerCase()==="host"){if(fg.exec(t)!==null)throw new se(`invalid ${A} header`);e.host=t}else if(e.contentLength===null&&A.length===14&&A.toLowerCase()==="content-length"){if(e.contentLength=parseInt(t,10),!Number.isFinite(e.contentLength))throw new se("invalid content-length header")}else if(e.contentType===null&&A.length===12&&A.toLowerCase()==="content-type")e.contentType=t,e.headers+=id(A,t);else{if(A.length===17&&A.toLowerCase()==="transfer-encoding")throw new se("invalid transfer-encoding header");if(A.length===10&&A.toLowerCase()==="connection"){let a=typeof t=="string"?t.toLowerCase():null;if(a!=="close"&&a!=="keep-alive")throw new se("invalid connection header");a==="close"&&(e.reset=!0)}else{if(A.length===10&&A.toLowerCase()==="keep-alive")throw new se("invalid keep-alive header");if(A.length===7&&A.toLowerCase()==="upgrade")throw new se("invalid upgrade header");if(A.length===6&&A.toLowerCase()==="expect")throw new wh("expect header not supported");if(Ig.exec(A)===null)throw new se("invalid header key");if(Array.isArray(t))for(let a=0;a<t.length;a++)e.headers+=id(A,t[a]);else e.headers+=id(A,t)}}}wg.exports=nd});var xi=E((Kb,Dg)=>{"use strict";var Dh=require("events"),od=class extends Dh{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}};Dg.exports=od});var or=E(($b,vg)=>{"use strict";var vh=xi(),{ClientDestroyedError:dd,ClientClosedError:Rh,InvalidArgumentError:Z1}=ee(),{kDestroy:Nh,kClose:bh,kDispatch:pd,kInterceptors:i1}=ie(),X1=Symbol("destroyed"),nr=Symbol("closed"),ht=Symbol("onDestroyed"),z1=Symbol("onClosed"),_i=Symbol("Intercepted Dispatch"),ld=class extends vh{constructor(){super(),this[X1]=!1,this[ht]=null,this[nr]=!1,this[z1]=[]}get destroyed(){return this[X1]}get closed(){return this[nr]}get interceptors(){return this[i1]}set interceptors(A){if(A){for(let t=A.length-1;t>=0;t--)if(typeof this[i1][t]!="function")throw new Z1("interceptor must be an function")}this[i1]=A}close(A){if(A===void 0)return new Promise((a,r)=>{this.close((i,s)=>i?r(i):a(s))});if(typeof A!="function")throw new Z1("invalid callback");if(this[X1]){queueMicrotask(()=>A(new dd,null));return}if(this[nr]){this[z1]?this[z1].push(A):queueMicrotask(()=>A(null,null));return}this[nr]=!0,this[z1].push(A);let t=()=>{let a=this[z1];this[z1]=null;for(let r=0;r<a.length;r++)a[r](null,null)};this[bh]().then(()=>this.destroy()).then(()=>{queueMicrotask(t)})}destroy(A,t){if(typeof A=="function"&&(t=A,A=null),t===void 0)return new Promise((r,i)=>{this.destroy(A,(s,n)=>s?i(s):r(n))});if(typeof t!="function")throw new Z1("invalid callback");if(this[X1]){this[ht]?this[ht].push(t):queueMicrotask(()=>t(null,null));return}A||(A=new dd),this[X1]=!0,this[ht]=this[ht]||[],this[ht].push(t);let a=()=>{let r=this[ht];this[ht]=null;for(let i=0;i<r.length;i++)r[i](null,null)};this[Nh](A).then(()=>{queueMicrotask(a)})}[_i](A,t){if(!this[i1]||this[i1].length===0)return this[_i]=this[pd],this[pd](A,t);let a=this[pd].bind(this);for(let r=this[i1].length-1;r>=0;r--)a=this[i1][r](a);return this[_i]=a,a(A,t)}dispatch(A,t){if(!t||typeof t!="object")throw new Z1("handler must be an object");try{if(!A||typeof A!="object")throw new Z1("opts must be an object.");if(this[X1]||this[ht])throw new dd;if(this[nr])throw new Rh;return this[_i](A,t)}catch(a){if(typeof t.onError!="function")throw new Z1("invalid onError method");return t.onError(a),!1}}};vg.exports=ld});var dr=E((tS,bg)=>{"use strict";var Sh=require("net"),Rg=require("assert"),Ng=H(),{InvalidArgumentError:Fh,ConnectTimeoutError:kh}=ee(),gd,cd;global.FinalizationRegistry?cd=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(t=>{if(this._sessionCache.size<this._maxCachedSessions)return;let a=this._sessionCache.get(t);a!==void 0&&a.deref()===void 0&&this._sessionCache.delete(t)})}get(A){let t=this._sessionCache.get(A);return t?t.deref():null}set(A,t){this._maxCachedSessions!==0&&(this._sessionCache.set(A,new WeakRef(t)),this._sessionRegistry.register(t,A))}}:cd=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map}get(A){return this._sessionCache.get(A)}set(A,t){if(this._maxCachedSessions!==0){if(this._sessionCache.size>=this._maxCachedSessions){let{value:a}=this._sessionCache.keys().next();this._sessionCache.delete(a)}this._sessionCache.set(A,t)}}};function Lh({maxCachedSessions:e,socketPath:A,timeout:t,...a}){if(e!=null&&(!Number.isInteger(e)||e<0))throw new Fh("maxCachedSessions must be a positive integer or zero");let r={path:A,...a},i=new cd(e??100);return t=t??1e4,function({hostname:n,host:o,protocol:d,port:l,servername:p,localAddress:g,httpSocket:c},u){let Q;if(d==="https:"){gd||(gd=require("tls")),p=p||r.servername||Ng.getServerName(o)||null;let C=p||n,B=i.get(C)||null;Rg(C),Q=gd.connect({highWaterMark:16384,...r,servername:p,session:B,localAddress:g,socket:c,port:l||443,host:n}),Q.on("session",function(f){i.set(C,f)})}else Rg(!c,"httpSocket can only be sent on TLS update"),Q=Sh.connect({highWaterMark:64*1024,...r,localAddress:g,port:l||80,host:n});if(r.keepAlive==null||r.keepAlive){let C=r.keepAliveInitialDelay===void 0?6e4:r.keepAliveInitialDelay;Q.setKeepAlive(!0,C)}let m=Uh(()=>Th(Q),t);return Q.setNoDelay(!0).once(d==="https:"?"secureConnect":"connect",function(){if(m(),u){let C=u;u=null,C(null,this)}}).on("error",function(C){if(m(),u){let B=u;u=null,B(C)}}),Q}}function Uh(e,A){if(!A)return()=>{};let t=null,a=null,r=setTimeout(()=>{t=setImmediate(()=>{process.platform==="win32"?a=setImmediate(()=>e()):e()})},A);return()=>{clearTimeout(r),clearImmediate(t),clearImmediate(a)}}function Th(e){Ng.destroy(e,new kh)}bg.exports=Lh});var Sg=E(qi=>{"use strict";Object.defineProperty(qi,"__esModule",{value:!0});qi.enumToMap=void 0;function Mh(e){let A={};return Object.keys(e).forEach(t=>{let a=e[t];typeof a=="number"&&(A[t]=a)}),A}qi.enumToMap=Mh});var Fg=E(I=>{"use strict";Object.defineProperty(I,"__esModule",{value:!0});I.SPECIAL_HEADERS=I.HEADER_STATE=I.MINOR=I.MAJOR=I.CONNECTION_TOKEN_CHARS=I.HEADER_CHARS=I.TOKEN=I.STRICT_TOKEN=I.HEX=I.URL_CHAR=I.STRICT_URL_CHAR=I.USERINFO_CHARS=I.MARK=I.ALPHANUM=I.NUM=I.HEX_MAP=I.NUM_MAP=I.ALPHA=I.FINISH=I.H_METHOD_MAP=I.METHOD_MAP=I.METHODS_RTSP=I.METHODS_ICE=I.METHODS_HTTP=I.METHODS=I.LENIENT_FLAGS=I.FLAGS=I.TYPE=I.ERROR=void 0;var Vh=Sg(),Yh;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(Yh=I.ERROR||(I.ERROR={}));var Jh;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(Jh=I.TYPE||(I.TYPE={}));var Gh;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(Gh=I.FLAGS||(I.FLAGS={}));var xh;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(xh=I.LENIENT_FLAGS||(I.LENIENT_FLAGS={}));var R;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(R=I.METHODS||(I.METHODS={}));I.METHODS_HTTP=[R.DELETE,R.GET,R.HEAD,R.POST,R.PUT,R.CONNECT,R.OPTIONS,R.TRACE,R.COPY,R.LOCK,R.MKCOL,R.MOVE,R.PROPFIND,R.PROPPATCH,R.SEARCH,R.UNLOCK,R.BIND,R.REBIND,R.UNBIND,R.ACL,R.REPORT,R.MKACTIVITY,R.CHECKOUT,R.MERGE,R["M-SEARCH"],R.NOTIFY,R.SUBSCRIBE,R.UNSUBSCRIBE,R.PATCH,R.PURGE,R.MKCALENDAR,R.LINK,R.UNLINK,R.PRI,R.SOURCE];I.METHODS_ICE=[R.SOURCE];I.METHODS_RTSP=[R.OPTIONS,R.DESCRIBE,R.ANNOUNCE,R.SETUP,R.PLAY,R.PAUSE,R.TEARDOWN,R.GET_PARAMETER,R.SET_PARAMETER,R.REDIRECT,R.RECORD,R.FLUSH,R.GET,R.POST];I.METHOD_MAP=Vh.enumToMap(R);I.H_METHOD_MAP={};Object.keys(I.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(I.H_METHOD_MAP[e]=I.METHOD_MAP[e])});var _h;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(_h=I.FINISH||(I.FINISH={}));I.ALPHA=[];for(let e=65;e<=90;e++)I.ALPHA.push(String.fromCharCode(e)),I.ALPHA.push(String.fromCharCode(e+32));I.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};I.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};I.NUM=["0","1","2","3","4","5","6","7","8","9"];I.ALPHANUM=I.ALPHA.concat(I.NUM);I.MARK=["-","_",".","!","~","*","'","(",")"];I.USERINFO_CHARS=I.ALPHANUM.concat(I.MARK).concat(["%",";",":","&","=","+","$",","]);I.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(I.ALPHANUM);I.URL_CHAR=I.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)I.URL_CHAR.push(e);I.HEX=I.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);I.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(I.ALPHANUM);I.TOKEN=I.STRICT_TOKEN.concat([" "]);I.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&I.HEADER_CHARS.push(e);I.CONNECTION_TOKEN_CHARS=I.HEADER_CHARS.filter(e=>e!==44);I.MAJOR=I.NUM_MAP;I.MINOR=I.MAJOR;var K1;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(K1=I.HEADER_STATE||(I.HEADER_STATE={}));I.SPECIAL_HEADERS={connection:K1.CONNECTION,"content-length":K1.CONTENT_LENGTH,"proxy-connection":K1.CONNECTION,"transfer-encoding":K1.TRANSFER_ENCODING,upgrade:K1.UPGRADE}});var Qd=E((iS,Ug)=>{"use strict";var $1=H(),{kBodyUsed:pr}=ie(),Ed=require("assert"),{InvalidArgumentError:qh}=ee(),Hh=require("events"),Oh=[300,301,302,303,307,308],kg=Symbol("body"),Hi=class{constructor(A){this[kg]=A,this[pr]=!1}async*[Symbol.asyncIterator](){Ed(!this[pr],"disturbed"),this[pr]=!0,yield*this[kg]}},ud=class{constructor(A,t,a,r){if(t!=null&&(!Number.isInteger(t)||t<0))throw new qh("maxRedirections must be a positive number");$1.validateHandler(r,a.method,a.upgrade),this.dispatch=A,this.location=null,this.abort=null,this.opts={...a,maxRedirections:0},this.maxRedirections=t,this.handler=r,this.history=[],$1.isStream(this.opts.body)?($1.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){Ed(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[pr]=!1,Hh.prototype.on.call(this.opts.body,"data",function(){this[pr]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new Hi(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&$1.isIterable(this.opts.body)&&(this.opts.body=new Hi(this.opts.body))}onConnect(A){this.abort=A,this.handler.onConnect(A,{history:this.history})}onUpgrade(A,t,a){this.handler.onUpgrade(A,t,a)}onError(A){this.handler.onError(A)}onHeaders(A,t,a,r){if(this.location=this.history.length>=this.maxRedirections||$1.isDisturbed(this.opts.body)?null:Ph(A,t),this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(A,t,a,r);let{origin:i,pathname:s,search:n}=$1.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),o=n?`${s}${n}`:s;this.opts.headers=Wh(this.opts.headers,A===303,this.opts.origin!==i),this.opts.path=o,this.opts.origin=i,this.opts.maxRedirections=0,this.opts.query=null,A===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(A){if(!this.location)return this.handler.onData(A)}onComplete(A){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(A)}onBodySent(A){this.handler.onBodySent&&this.handler.onBodySent(A)}};function Ph(e,A){if(Oh.indexOf(e)===-1)return null;for(let t=0;t<A.length;t+=2)if(A[t].toString().toLowerCase()==="location")return A[t+1]}function Lg(e,A,t){return e.length===4&&e.toString().toLowerCase()==="host"||A&&e.toString().toLowerCase().indexOf("content-")===0||t&&e.length===13&&e.toString().toLowerCase()==="authorization"||t&&e.length===6&&e.toString().toLowerCase()==="cookie"}function Wh(e,A,t){let a=[];if(Array.isArray(e))for(let r=0;r<e.length;r+=2)Lg(e[r],A,t)||a.push(e[r],e[r+1]);else if(e&&typeof e=="object")for(let r of Object.keys(e))Lg(r,A,t)||a.push(r,e[r]);else Ed(e==null,"headers must be an object or an array");return a}Ug.exports=ud});var Oi=E((sS,Tg)=>{"use strict";var jh=Qd();function Zh({maxRedirections:e}){return A=>function(a,r){let{maxRedirections:i=e}=a;if(!i)return A(a,r);let s=new jh(A,i,a,r);return a={...a,maxRedirections:0},A(a,s)}}Tg.exports=Zh});var Cd=E((nS,Mg)=>{Mg.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQDscBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxweHyAhIyUoP0BBREVGR0hJSktMTU9QUVJT3gNXWVtcXWBiZWZnaGlqa2xtb3BxcnN0dXZ3eHl6e3x9foABggGFAYYBhwGJAYsBjAGNAY4BjwGQAZEBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAZkCpAKwAv4C/gILIAEiBCACRw3zAUHdASEQDP8DCyABIhAgAkcN3QFBwwEhEAz+AwsgASIBIAJHDZABQfcAIRAM/QMLIAEiASACRw2GAUHvACEQDPwDCyABIgEgAkcNf0HqACEQDPsDCyABIgEgAkcNe0HoACEQDPoDCyABIgEgAkcNeEHmACEQDPkDCyABIgEgAkcNGkEYIRAM+AMLIAEiASACRw0UQRIhEAz3AwsgASIBIAJHDVlBxQAhEAz2AwsgASIBIAJHDUpBPyEQDPUDCyABIgEgAkcNSEE8IRAM9AMLIAEiASACRw1BQTEhEAzzAwsgAC0ALkEBRg3rAwyHAgsgACABIgEgAhDAgICAAEEBRw3mASAAQgA3AyAM5wELIAAgASIBIAIQtICAgAAiEA3nASABIQEM9QILAkAgASIBIAJHDQBBBiEQDPADCyAAIAFBAWoiASACELuAgIAAIhAN6AEgASEBDDELIABCADcDIEESIRAM1QMLIAEiECACRw0rQR0hEAztAwsCQCABIgEgAkYNACABQQFqIQFBECEQDNQDC0EHIRAM7AMLIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN5QFBCCEQDOsDCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEUIRAM0gMLQQkhEAzqAwsgASEBIAApAyBQDeQBIAEhAQzyAgsCQCABIgEgAkcNAEELIRAM6QMLIAAgAUEBaiIBIAIQtoCAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3mASABIQEMDQsgACABIgEgAhC6gICAACIQDecBIAEhAQzwAgsCQCABIgEgAkcNAEEPIRAM5QMLIAEtAAAiEEE7Rg0IIBBBDUcN6AEgAUEBaiEBDO8CCyAAIAEiASACELqAgIAAIhAN6AEgASEBDPICCwNAAkAgAS0AAEHwtYCAAGotAAAiEEEBRg0AIBBBAkcN6wEgACgCBCEQIABBADYCBCAAIBAgAUEBaiIBELmAgIAAIhAN6gEgASEBDPQCCyABQQFqIgEgAkcNAAtBEiEQDOIDCyAAIAEiASACELqAgIAAIhAN6QEgASEBDAoLIAEiASACRw0GQRshEAzgAwsCQCABIgEgAkcNAEEWIRAM4AMLIABBioCAgAA2AgggACABNgIEIAAgASACELiAgIAAIhAN6gEgASEBQSAhEAzGAwsCQCABIgEgAkYNAANAAkAgAS0AAEHwt4CAAGotAAAiEEECRg0AAkAgEEF/ag4E5QHsAQDrAewBCyABQQFqIQFBCCEQDMgDCyABQQFqIgEgAkcNAAtBFSEQDN8DC0EVIRAM3gMLA0ACQCABLQAAQfC5gIAAai0AACIQQQJGDQAgEEF/ag4E3gHsAeAB6wHsAQsgAUEBaiIBIAJHDQALQRghEAzdAwsCQCABIgEgAkYNACAAQYuAgIAANgIIIAAgATYCBCABIQFBByEQDMQDC0EZIRAM3AMLIAFBAWohAQwCCwJAIAEiFCACRw0AQRohEAzbAwsgFCEBAkAgFC0AAEFzag4U3QLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gIA7gILQQAhECAAQQA2AhwgAEGvi4CAADYCECAAQQI2AgwgACAUQQFqNgIUDNoDCwJAIAEtAAAiEEE7Rg0AIBBBDUcN6AEgAUEBaiEBDOUCCyABQQFqIQELQSIhEAy/AwsCQCABIhAgAkcNAEEcIRAM2AMLQgAhESAQIQEgEC0AAEFQag435wHmAQECAwQFBgcIAAAAAAAAAAkKCwwNDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxAREhMUAAtBHiEQDL0DC0ICIREM5QELQgMhEQzkAQtCBCERDOMBC0IFIREM4gELQgYhEQzhAQtCByERDOABC0IIIREM3wELQgkhEQzeAQtCCiERDN0BC0ILIREM3AELQgwhEQzbAQtCDSERDNoBC0IOIREM2QELQg8hEQzYAQtCCiERDNcBC0ILIREM1gELQgwhEQzVAQtCDSERDNQBC0IOIREM0wELQg8hEQzSAQtCACERAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQLQAAQVBqDjflAeQBAAECAwQFBgfmAeYB5gHmAeYB5gHmAQgJCgsMDeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gEODxAREhPmAQtCAiERDOQBC0IDIREM4wELQgQhEQziAQtCBSERDOEBC0IGIREM4AELQgchEQzfAQtCCCERDN4BC0IJIREM3QELQgohEQzcAQtCCyERDNsBC0IMIREM2gELQg0hEQzZAQtCDiERDNgBC0IPIREM1wELQgohEQzWAQtCCyERDNUBC0IMIREM1AELQg0hEQzTAQtCDiERDNIBC0IPIREM0QELIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN0gFBHyEQDMADCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEkIRAMpwMLQSAhEAy/AwsgACABIhAgAhC+gICAAEF/ag4FtgEAxQIB0QHSAQtBESEQDKQDCyAAQQE6AC8gECEBDLsDCyABIgEgAkcN0gFBJCEQDLsDCyABIg0gAkcNHkHGACEQDLoDCyAAIAEiASACELKAgIAAIhAN1AEgASEBDLUBCyABIhAgAkcNJkHQACEQDLgDCwJAIAEiASACRw0AQSghEAy4AwsgAEEANgIEIABBjICAgAA2AgggACABIAEQsYCAgAAiEA3TASABIQEM2AELAkAgASIQIAJHDQBBKSEQDLcDCyAQLQAAIgFBIEYNFCABQQlHDdMBIBBBAWohAQwVCwJAIAEiASACRg0AIAFBAWohAQwXC0EqIRAMtQMLAkAgASIQIAJHDQBBKyEQDLUDCwJAIBAtAAAiAUEJRg0AIAFBIEcN1QELIAAtACxBCEYN0wEgECEBDJEDCwJAIAEiASACRw0AQSwhEAy0AwsgAS0AAEEKRw3VASABQQFqIQEMyQILIAEiDiACRw3VAUEvIRAMsgMLA0ACQCABLQAAIhBBIEYNAAJAIBBBdmoOBADcAdwBANoBCyABIQEM4AELIAFBAWoiASACRw0AC0ExIRAMsQMLQTIhECABIhQgAkYNsAMgAiAUayAAKAIAIgFqIRUgFCABa0EDaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfC7gIAAai0AAEcNAQJAIAFBA0cNAEEGIQEMlgMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLEDCyAAQQA2AgAgFCEBDNkBC0EzIRAgASIUIAJGDa8DIAIgFGsgACgCACIBaiEVIBQgAWtBCGohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUH0u4CAAGotAABHDQECQCABQQhHDQBBBSEBDJUDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAywAwsgAEEANgIAIBQhAQzYAQtBNCEQIAEiFCACRg2uAyACIBRrIAAoAgAiAWohFSAUIAFrQQVqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw0BAkAgAUEFRw0AQQchAQyUAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMrwMLIABBADYCACAUIQEM1wELAkAgASIBIAJGDQADQAJAIAEtAABBgL6AgABqLQAAIhBBAUYNACAQQQJGDQogASEBDN0BCyABQQFqIgEgAkcNAAtBMCEQDK4DC0EwIRAMrQMLAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AIBBBdmoOBNkB2gHaAdkB2gELIAFBAWoiASACRw0AC0E4IRAMrQMLQTghEAysAwsDQAJAIAEtAAAiEEEgRg0AIBBBCUcNAwsgAUEBaiIBIAJHDQALQTwhEAyrAwsDQAJAIAEtAAAiEEEgRg0AAkACQCAQQXZqDgTaAQEB2gEACyAQQSxGDdsBCyABIQEMBAsgAUEBaiIBIAJHDQALQT8hEAyqAwsgASEBDNsBC0HAACEQIAEiFCACRg2oAyACIBRrIAAoAgAiAWohFiAUIAFrQQZqIRcCQANAIBQtAABBIHIgAUGAwICAAGotAABHDQEgAUEGRg2OAyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAypAwsgAEEANgIAIBQhAQtBNiEQDI4DCwJAIAEiDyACRw0AQcEAIRAMpwMLIABBjICAgAA2AgggACAPNgIEIA8hASAALQAsQX9qDgTNAdUB1wHZAYcDCyABQQFqIQEMzAELAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgciAQIBBBv39qQf8BcUEaSRtB/wFxIhBBCUYNACAQQSBGDQACQAJAAkACQCAQQZ1/ag4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUExIRAMkQMLIAFBAWohAUEyIRAMkAMLIAFBAWohAUEzIRAMjwMLIAEhAQzQAQsgAUEBaiIBIAJHDQALQTUhEAylAwtBNSEQDKQDCwJAIAEiASACRg0AA0ACQCABLQAAQYC8gIAAai0AAEEBRg0AIAEhAQzTAQsgAUEBaiIBIAJHDQALQT0hEAykAwtBPSEQDKMDCyAAIAEiASACELCAgIAAIhAN1gEgASEBDAELIBBBAWohAQtBPCEQDIcDCwJAIAEiASACRw0AQcIAIRAMoAMLAkADQAJAIAEtAABBd2oOGAAC/gL+AoQD/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4CAP4CCyABQQFqIgEgAkcNAAtBwgAhEAygAwsgAUEBaiEBIAAtAC1BAXFFDb0BIAEhAQtBLCEQDIUDCyABIgEgAkcN0wFBxAAhEAydAwsDQAJAIAEtAABBkMCAgABqLQAAQQFGDQAgASEBDLcCCyABQQFqIgEgAkcNAAtBxQAhEAycAwsgDS0AACIQQSBGDbMBIBBBOkcNgQMgACgCBCEBIABBADYCBCAAIAEgDRCvgICAACIBDdABIA1BAWohAQyzAgtBxwAhECABIg0gAkYNmgMgAiANayAAKAIAIgFqIRYgDSABa0EFaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGQwoCAAGotAABHDYADIAFBBUYN9AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmgMLQcgAIRAgASINIAJGDZkDIAIgDWsgACgCACIBaiEWIA0gAWtBCWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBlsKAgABqLQAARw3/AgJAIAFBCUcNAEECIQEM9QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJkDCwJAIAEiDSACRw0AQckAIRAMmQMLAkACQCANLQAAIgFBIHIgASABQb9/akH/AXFBGkkbQf8BcUGSf2oOBwCAA4ADgAOAA4ADAYADCyANQQFqIQFBPiEQDIADCyANQQFqIQFBPyEQDP8CC0HKACEQIAEiDSACRg2XAyACIA1rIAAoAgAiAWohFiANIAFrQQFqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaDCgIAAai0AAEcN/QIgAUEBRg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyXAwtBywAhECABIg0gAkYNlgMgAiANayAAKAIAIgFqIRYgDSABa0EOaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGiwoCAAGotAABHDfwCIAFBDkYN8AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlgMLQcwAIRAgASINIAJGDZUDIAIgDWsgACgCACIBaiEWIA0gAWtBD2ohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBwMKAgABqLQAARw37AgJAIAFBD0cNAEEDIQEM8QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJUDC0HNACEQIAEiDSACRg2UAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQdDCgIAAai0AAEcN+gICQCABQQVHDQBBBCEBDPACCyABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyUAwsCQCABIg0gAkcNAEHOACEQDJQDCwJAAkACQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZ1/ag4TAP0C/QL9Av0C/QL9Av0C/QL9Av0C/QL9AgH9Av0C/QICA/0CCyANQQFqIQFBwQAhEAz9AgsgDUEBaiEBQcIAIRAM/AILIA1BAWohAUHDACEQDPsCCyANQQFqIQFBxAAhEAz6AgsCQCABIgEgAkYNACAAQY2AgIAANgIIIAAgATYCBCABIQFBxQAhEAz6AgtBzwAhEAySAwsgECEBAkACQCAQLQAAQXZqDgQBqAKoAgCoAgsgEEEBaiEBC0EnIRAM+AILAkAgASIBIAJHDQBB0QAhEAyRAwsCQCABLQAAQSBGDQAgASEBDI0BCyABQQFqIQEgAC0ALUEBcUUNxwEgASEBDIwBCyABIhcgAkcNyAFB0gAhEAyPAwtB0wAhECABIhQgAkYNjgMgAiAUayAAKAIAIgFqIRYgFCABa0EBaiEXA0AgFC0AACABQdbCgIAAai0AAEcNzAEgAUEBRg3HASABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAyOAwsCQCABIgEgAkcNAEHVACEQDI4DCyABLQAAQQpHDcwBIAFBAWohAQzHAQsCQCABIgEgAkcNAEHWACEQDI0DCwJAAkAgAS0AAEF2ag4EAM0BzQEBzQELIAFBAWohAQzHAQsgAUEBaiEBQcoAIRAM8wILIAAgASIBIAIQroCAgAAiEA3LASABIQFBzQAhEAzyAgsgAC0AKUEiRg2FAwymAgsCQCABIgEgAkcNAEHbACEQDIoDC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4K1AHTAQABAgMEBQYI1QELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMzAELQQkhEEEBIRRBACEXQQAhFgzLAQsCQCABIgEgAkcNAEHdACEQDIkDCyABLQAAQS5HDcwBIAFBAWohAQymAgsgASIBIAJHDcwBQd8AIRAMhwMLAkAgASIBIAJGDQAgAEGOgICAADYCCCAAIAE2AgQgASEBQdAAIRAM7gILQeAAIRAMhgMLQeEAIRAgASIBIAJGDYUDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHiwoCAAGotAABHDc0BIBRBA0YNzAEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhQMLQeIAIRAgASIBIAJGDYQDIAIgAWsgACgCACIUaiEWIAEgFGtBAmohFwNAIAEtAAAgFEHmwoCAAGotAABHDcwBIBRBAkYNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhAMLQeMAIRAgASIBIAJGDYMDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHpwoCAAGotAABHDcsBIBRBA0YNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMgwMLAkAgASIBIAJHDQBB5QAhEAyDAwsgACABQQFqIgEgAhCogICAACIQDc0BIAEhAUHWACEQDOkCCwJAIAEiASACRg0AA0ACQCABLQAAIhBBIEYNAAJAAkACQCAQQbh/ag4LAAHPAc8BzwHPAc8BzwHPAc8BAs8BCyABQQFqIQFB0gAhEAztAgsgAUEBaiEBQdMAIRAM7AILIAFBAWohAUHUACEQDOsCCyABQQFqIgEgAkcNAAtB5AAhEAyCAwtB5AAhEAyBAwsDQAJAIAEtAABB8MKAgABqLQAAIhBBAUYNACAQQX5qDgPPAdAB0QHSAQsgAUEBaiIBIAJHDQALQeYAIRAMgAMLAkAgASIBIAJGDQAgAUEBaiEBDAMLQecAIRAM/wILA0ACQCABLQAAQfDEgIAAai0AACIQQQFGDQACQCAQQX5qDgTSAdMB1AEA1QELIAEhAUHXACEQDOcCCyABQQFqIgEgAkcNAAtB6AAhEAz+AgsCQCABIgEgAkcNAEHpACEQDP4CCwJAIAEtAAAiEEF2ag4augHVAdUBvAHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHKAdUB1QEA0wELIAFBAWohAQtBBiEQDOMCCwNAAkAgAS0AAEHwxoCAAGotAABBAUYNACABIQEMngILIAFBAWoiASACRw0AC0HqACEQDPsCCwJAIAEiASACRg0AIAFBAWohAQwDC0HrACEQDPoCCwJAIAEiASACRw0AQewAIRAM+gILIAFBAWohAQwBCwJAIAEiASACRw0AQe0AIRAM+QILIAFBAWohAQtBBCEQDN4CCwJAIAEiFCACRw0AQe4AIRAM9wILIBQhAQJAAkACQCAULQAAQfDIgIAAai0AAEF/ag4H1AHVAdYBAJwCAQLXAQsgFEEBaiEBDAoLIBRBAWohAQzNAQtBACEQIABBADYCHCAAQZuSgIAANgIQIABBBzYCDCAAIBRBAWo2AhQM9gILAkADQAJAIAEtAABB8MiAgABqLQAAIhBBBEYNAAJAAkAgEEF/ag4H0gHTAdQB2QEABAHZAQsgASEBQdoAIRAM4AILIAFBAWohAUHcACEQDN8CCyABQQFqIgEgAkcNAAtB7wAhEAz2AgsgAUEBaiEBDMsBCwJAIAEiFCACRw0AQfAAIRAM9QILIBQtAABBL0cN1AEgFEEBaiEBDAYLAkAgASIUIAJHDQBB8QAhEAz0AgsCQCAULQAAIgFBL0cNACAUQQFqIQFB3QAhEAzbAgsgAUF2aiIEQRZLDdMBQQEgBHRBiYCAAnFFDdMBDMoCCwJAIAEiASACRg0AIAFBAWohAUHeACEQDNoCC0HyACEQDPICCwJAIAEiFCACRw0AQfQAIRAM8gILIBQhAQJAIBQtAABB8MyAgABqLQAAQX9qDgPJApQCANQBC0HhACEQDNgCCwJAIAEiFCACRg0AA0ACQCAULQAAQfDKgIAAai0AACIBQQNGDQACQCABQX9qDgLLAgDVAQsgFCEBQd8AIRAM2gILIBRBAWoiFCACRw0AC0HzACEQDPECC0HzACEQDPACCwJAIAEiASACRg0AIABBj4CAgAA2AgggACABNgIEIAEhAUHgACEQDNcCC0H1ACEQDO8CCwJAIAEiASACRw0AQfYAIRAM7wILIABBj4CAgAA2AgggACABNgIEIAEhAQtBAyEQDNQCCwNAIAEtAABBIEcNwwIgAUEBaiIBIAJHDQALQfcAIRAM7AILAkAgASIBIAJHDQBB+AAhEAzsAgsgAS0AAEEgRw3OASABQQFqIQEM7wELIAAgASIBIAIQrICAgAAiEA3OASABIQEMjgILAkAgASIEIAJHDQBB+gAhEAzqAgsgBC0AAEHMAEcN0QEgBEEBaiEBQRMhEAzPAQsCQCABIgQgAkcNAEH7ACEQDOkCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRADQCAELQAAIAFB8M6AgABqLQAARw3QASABQQVGDc4BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQfsAIRAM6AILAkAgASIEIAJHDQBB/AAhEAzoAgsCQAJAIAQtAABBvX9qDgwA0QHRAdEB0QHRAdEB0QHRAdEB0QEB0QELIARBAWohAUHmACEQDM8CCyAEQQFqIQFB5wAhEAzOAgsCQCABIgQgAkcNAEH9ACEQDOcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDc8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH9ACEQDOcCCyAAQQA2AgAgEEEBaiEBQRAhEAzMAQsCQCABIgQgAkcNAEH+ACEQDOYCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUH2zoCAAGotAABHDc4BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH+ACEQDOYCCyAAQQA2AgAgEEEBaiEBQRYhEAzLAQsCQCABIgQgAkcNAEH/ACEQDOUCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUH8zoCAAGotAABHDc0BIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH/ACEQDOUCCyAAQQA2AgAgEEEBaiEBQQUhEAzKAQsCQCABIgQgAkcNAEGAASEQDOQCCyAELQAAQdkARw3LASAEQQFqIQFBCCEQDMkBCwJAIAEiBCACRw0AQYEBIRAM4wILAkACQCAELQAAQbJ/ag4DAMwBAcwBCyAEQQFqIQFB6wAhEAzKAgsgBEEBaiEBQewAIRAMyQILAkAgASIEIAJHDQBBggEhEAziAgsCQAJAIAQtAABBuH9qDggAywHLAcsBywHLAcsBAcsBCyAEQQFqIQFB6gAhEAzJAgsgBEEBaiEBQe0AIRAMyAILAkAgASIEIAJHDQBBgwEhEAzhAgsgAiAEayAAKAIAIgFqIRAgBCABa0ECaiEUAkADQCAELQAAIAFBgM+AgABqLQAARw3JASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBA2AgBBgwEhEAzhAgtBACEQIABBADYCACAUQQFqIQEMxgELAkAgASIEIAJHDQBBhAEhEAzgAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBg8+AgABqLQAARw3IASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhAEhEAzgAgsgAEEANgIAIBBBAWohAUEjIRAMxQELAkAgASIEIAJHDQBBhQEhEAzfAgsCQAJAIAQtAABBtH9qDggAyAHIAcgByAHIAcgBAcgBCyAEQQFqIQFB7wAhEAzGAgsgBEEBaiEBQfAAIRAMxQILAkAgASIEIAJHDQBBhgEhEAzeAgsgBC0AAEHFAEcNxQEgBEEBaiEBDIMCCwJAIAEiBCACRw0AQYcBIRAM3QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQYjPgIAAai0AAEcNxQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYcBIRAM3QILIABBADYCACAQQQFqIQFBLSEQDMIBCwJAIAEiBCACRw0AQYgBIRAM3AILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNxAEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYgBIRAM3AILIABBADYCACAQQQFqIQFBKSEQDMEBCwJAIAEiASACRw0AQYkBIRAM2wILQQEhECABLQAAQd8ARw3AASABQQFqIQEMgQILAkAgASIEIAJHDQBBigEhEAzaAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQA0AgBC0AACABQYzPgIAAai0AAEcNwQEgAUEBRg2vAiABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGKASEQDNkCCwJAIAEiBCACRw0AQYsBIRAM2QILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQY7PgIAAai0AAEcNwQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYsBIRAM2QILIABBADYCACAQQQFqIQFBAiEQDL4BCwJAIAEiBCACRw0AQYwBIRAM2AILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNwAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYwBIRAM2AILIABBADYCACAQQQFqIQFBHyEQDL0BCwJAIAEiBCACRw0AQY0BIRAM1wILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNvwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY0BIRAM1wILIABBADYCACAQQQFqIQFBCSEQDLwBCwJAIAEiBCACRw0AQY4BIRAM1gILAkACQCAELQAAQbd/ag4HAL8BvwG/Ab8BvwEBvwELIARBAWohAUH4ACEQDL0CCyAEQQFqIQFB+QAhEAy8AgsCQCABIgQgAkcNAEGPASEQDNUCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGRz4CAAGotAABHDb0BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGPASEQDNUCCyAAQQA2AgAgEEEBaiEBQRghEAy6AQsCQCABIgQgAkcNAEGQASEQDNQCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUGXz4CAAGotAABHDbwBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGQASEQDNQCCyAAQQA2AgAgEEEBaiEBQRchEAy5AQsCQCABIgQgAkcNAEGRASEQDNMCCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUGaz4CAAGotAABHDbsBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGRASEQDNMCCyAAQQA2AgAgEEEBaiEBQRUhEAy4AQsCQCABIgQgAkcNAEGSASEQDNICCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGhz4CAAGotAABHDboBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGSASEQDNICCyAAQQA2AgAgEEEBaiEBQR4hEAy3AQsCQCABIgQgAkcNAEGTASEQDNECCyAELQAAQcwARw24ASAEQQFqIQFBCiEQDLYBCwJAIAQgAkcNAEGUASEQDNACCwJAAkAgBC0AAEG/f2oODwC5AbkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AQG5AQsgBEEBaiEBQf4AIRAMtwILIARBAWohAUH/ACEQDLYCCwJAIAQgAkcNAEGVASEQDM8CCwJAAkAgBC0AAEG/f2oOAwC4AQG4AQsgBEEBaiEBQf0AIRAMtgILIARBAWohBEGAASEQDLUCCwJAIAQgAkcNAEGWASEQDM4CCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUGnz4CAAGotAABHDbYBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGWASEQDM4CCyAAQQA2AgAgEEEBaiEBQQshEAyzAQsCQCAEIAJHDQBBlwEhEAzNAgsCQAJAAkACQCAELQAAQVNqDiMAuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AQG4AbgBuAG4AbgBArgBuAG4AQO4AQsgBEEBaiEBQfsAIRAMtgILIARBAWohAUH8ACEQDLUCCyAEQQFqIQRBgQEhEAy0AgsgBEEBaiEEQYIBIRAMswILAkAgBCACRw0AQZgBIRAMzAILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQanPgIAAai0AAEcNtAEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZgBIRAMzAILIABBADYCACAQQQFqIQFBGSEQDLEBCwJAIAQgAkcNAEGZASEQDMsCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGuz4CAAGotAABHDbMBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGZASEQDMsCCyAAQQA2AgAgEEEBaiEBQQYhEAywAQsCQCAEIAJHDQBBmgEhEAzKAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBtM+AgABqLQAARw2yASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmgEhEAzKAgsgAEEANgIAIBBBAWohAUEcIRAMrwELAkAgBCACRw0AQZsBIRAMyQILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbbPgIAAai0AAEcNsQEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZsBIRAMyQILIABBADYCACAQQQFqIQFBJyEQDK4BCwJAIAQgAkcNAEGcASEQDMgCCwJAAkAgBC0AAEGsf2oOAgABsQELIARBAWohBEGGASEQDK8CCyAEQQFqIQRBhwEhEAyuAgsCQCAEIAJHDQBBnQEhEAzHAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBuM+AgABqLQAARw2vASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBnQEhEAzHAgsgAEEANgIAIBBBAWohAUEmIRAMrAELAkAgBCACRw0AQZ4BIRAMxgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbrPgIAAai0AAEcNrgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ4BIRAMxgILIABBADYCACAQQQFqIQFBAyEQDKsBCwJAIAQgAkcNAEGfASEQDMUCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDa0BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGfASEQDMUCCyAAQQA2AgAgEEEBaiEBQQwhEAyqAQsCQCAEIAJHDQBBoAEhEAzEAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBvM+AgABqLQAARw2sASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBoAEhEAzEAgsgAEEANgIAIBBBAWohAUENIRAMqQELAkAgBCACRw0AQaEBIRAMwwILAkACQCAELQAAQbp/ag4LAKwBrAGsAawBrAGsAawBrAGsAQGsAQsgBEEBaiEEQYsBIRAMqgILIARBAWohBEGMASEQDKkCCwJAIAQgAkcNAEGiASEQDMICCyAELQAAQdAARw2pASAEQQFqIQQM6QELAkAgBCACRw0AQaMBIRAMwQILAkACQCAELQAAQbd/ag4HAaoBqgGqAaoBqgEAqgELIARBAWohBEGOASEQDKgCCyAEQQFqIQFBIiEQDKYBCwJAIAQgAkcNAEGkASEQDMACCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHAz4CAAGotAABHDagBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGkASEQDMACCyAAQQA2AgAgEEEBaiEBQR0hEAylAQsCQCAEIAJHDQBBpQEhEAy/AgsCQAJAIAQtAABBrn9qDgMAqAEBqAELIARBAWohBEGQASEQDKYCCyAEQQFqIQFBBCEQDKQBCwJAIAQgAkcNAEGmASEQDL4CCwJAAkACQAJAAkAgBC0AAEG/f2oOFQCqAaoBqgGqAaoBqgGqAaoBqgGqAQGqAaoBAqoBqgEDqgGqAQSqAQsgBEEBaiEEQYgBIRAMqAILIARBAWohBEGJASEQDKcCCyAEQQFqIQRBigEhEAymAgsgBEEBaiEEQY8BIRAMpQILIARBAWohBEGRASEQDKQCCwJAIAQgAkcNAEGnASEQDL0CCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDaUBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGnASEQDL0CCyAAQQA2AgAgEEEBaiEBQREhEAyiAQsCQCAEIAJHDQBBqAEhEAy8AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBws+AgABqLQAARw2kASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqAEhEAy8AgsgAEEANgIAIBBBAWohAUEsIRAMoQELAkAgBCACRw0AQakBIRAMuwILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQcXPgIAAai0AAEcNowEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQakBIRAMuwILIABBADYCACAQQQFqIQFBKyEQDKABCwJAIAQgAkcNAEGqASEQDLoCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHKz4CAAGotAABHDaIBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGqASEQDLoCCyAAQQA2AgAgEEEBaiEBQRQhEAyfAQsCQCAEIAJHDQBBqwEhEAy5AgsCQAJAAkACQCAELQAAQb5/ag4PAAECpAGkAaQBpAGkAaQBpAGkAaQBpAGkAQOkAQsgBEEBaiEEQZMBIRAMogILIARBAWohBEGUASEQDKECCyAEQQFqIQRBlQEhEAygAgsgBEEBaiEEQZYBIRAMnwILAkAgBCACRw0AQawBIRAMuAILIAQtAABBxQBHDZ8BIARBAWohBAzgAQsCQCAEIAJHDQBBrQEhEAy3AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBzc+AgABqLQAARw2fASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrQEhEAy3AgsgAEEANgIAIBBBAWohAUEOIRAMnAELAkAgBCACRw0AQa4BIRAMtgILIAQtAABB0ABHDZ0BIARBAWohAUElIRAMmwELAkAgBCACRw0AQa8BIRAMtQILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNnQEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQa8BIRAMtQILIABBADYCACAQQQFqIQFBKiEQDJoBCwJAIAQgAkcNAEGwASEQDLQCCwJAAkAgBC0AAEGrf2oOCwCdAZ0BnQGdAZ0BnQGdAZ0BnQEBnQELIARBAWohBEGaASEQDJsCCyAEQQFqIQRBmwEhEAyaAgsCQCAEIAJHDQBBsQEhEAyzAgsCQAJAIAQtAABBv39qDhQAnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBAZwBCyAEQQFqIQRBmQEhEAyaAgsgBEEBaiEEQZwBIRAMmQILAkAgBCACRw0AQbIBIRAMsgILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQdnPgIAAai0AAEcNmgEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbIBIRAMsgILIABBADYCACAQQQFqIQFBISEQDJcBCwJAIAQgAkcNAEGzASEQDLECCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUHdz4CAAGotAABHDZkBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGzASEQDLECCyAAQQA2AgAgEEEBaiEBQRohEAyWAQsCQCAEIAJHDQBBtAEhEAywAgsCQAJAAkAgBC0AAEG7f2oOEQCaAZoBmgGaAZoBmgGaAZoBmgEBmgGaAZoBmgGaAQKaAQsgBEEBaiEEQZ0BIRAMmAILIARBAWohBEGeASEQDJcCCyAEQQFqIQRBnwEhEAyWAgsCQCAEIAJHDQBBtQEhEAyvAgsgAiAEayAAKAIAIgFqIRQgBCABa0EFaiEQAkADQCAELQAAIAFB5M+AgABqLQAARw2XASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtQEhEAyvAgsgAEEANgIAIBBBAWohAUEoIRAMlAELAkAgBCACRw0AQbYBIRAMrgILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQerPgIAAai0AAEcNlgEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbYBIRAMrgILIABBADYCACAQQQFqIQFBByEQDJMBCwJAIAQgAkcNAEG3ASEQDK0CCwJAAkAgBC0AAEG7f2oODgCWAZYBlgGWAZYBlgGWAZYBlgGWAZYBlgEBlgELIARBAWohBEGhASEQDJQCCyAEQQFqIQRBogEhEAyTAgsCQCAEIAJHDQBBuAEhEAysAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB7c+AgABqLQAARw2UASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuAEhEAysAgsgAEEANgIAIBBBAWohAUESIRAMkQELAkAgBCACRw0AQbkBIRAMqwILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNkwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbkBIRAMqwILIABBADYCACAQQQFqIQFBICEQDJABCwJAIAQgAkcNAEG6ASEQDKoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHyz4CAAGotAABHDZIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG6ASEQDKoCCyAAQQA2AgAgEEEBaiEBQQ8hEAyPAQsCQCAEIAJHDQBBuwEhEAypAgsCQAJAIAQtAABBt39qDgcAkgGSAZIBkgGSAQGSAQsgBEEBaiEEQaUBIRAMkAILIARBAWohBEGmASEQDI8CCwJAIAQgAkcNAEG8ASEQDKgCCyACIARrIAAoAgAiAWohFCAEIAFrQQdqIRACQANAIAQtAAAgAUH0z4CAAGotAABHDZABIAFBB0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG8ASEQDKgCCyAAQQA2AgAgEEEBaiEBQRshEAyNAQsCQCAEIAJHDQBBvQEhEAynAgsCQAJAAkAgBC0AAEG+f2oOEgCRAZEBkQGRAZEBkQGRAZEBkQEBkQGRAZEBkQGRAZEBApEBCyAEQQFqIQRBpAEhEAyPAgsgBEEBaiEEQacBIRAMjgILIARBAWohBEGoASEQDI0CCwJAIAQgAkcNAEG+ASEQDKYCCyAELQAAQc4ARw2NASAEQQFqIQQMzwELAkAgBCACRw0AQb8BIRAMpQILAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBC0AAEG/f2oOFQABAgOcAQQFBpwBnAGcAQcICQoLnAEMDQ4PnAELIARBAWohAUHoACEQDJoCCyAEQQFqIQFB6QAhEAyZAgsgBEEBaiEBQe4AIRAMmAILIARBAWohAUHyACEQDJcCCyAEQQFqIQFB8wAhEAyWAgsgBEEBaiEBQfYAIRAMlQILIARBAWohAUH3ACEQDJQCCyAEQQFqIQFB+gAhEAyTAgsgBEEBaiEEQYMBIRAMkgILIARBAWohBEGEASEQDJECCyAEQQFqIQRBhQEhEAyQAgsgBEEBaiEEQZIBIRAMjwILIARBAWohBEGYASEQDI4CCyAEQQFqIQRBoAEhEAyNAgsgBEEBaiEEQaMBIRAMjAILIARBAWohBEGqASEQDIsCCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEGrASEQDIsCC0HAASEQDKMCCyAAIAUgAhCqgICAACIBDYsBIAUhAQxcCwJAIAYgAkYNACAGQQFqIQUMjQELQcIBIRAMoQILA0ACQCAQLQAAQXZqDgSMAQAAjwEACyAQQQFqIhAgAkcNAAtBwwEhEAygAgsCQCAHIAJGDQAgAEGRgICAADYCCCAAIAc2AgQgByEBQQEhEAyHAgtBxAEhEAyfAgsCQCAHIAJHDQBBxQEhEAyfAgsCQAJAIActAABBdmoOBAHOAc4BAM4BCyAHQQFqIQYMjQELIAdBAWohBQyJAQsCQCAHIAJHDQBBxgEhEAyeAgsCQAJAIActAABBdmoOFwGPAY8BAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAQCPAQsgB0EBaiEHC0GwASEQDIQCCwJAIAggAkcNAEHIASEQDJ0CCyAILQAAQSBHDY0BIABBADsBMiAIQQFqIQFBswEhEAyDAgsgASEXAkADQCAXIgcgAkYNASAHLQAAQVBqQf8BcSIQQQpPDcwBAkAgAC8BMiIUQZkzSw0AIAAgFEEKbCIUOwEyIBBB//8DcyAUQf7/A3FJDQAgB0EBaiEXIAAgFCAQaiIQOwEyIBBB//8DcUHoB0kNAQsLQQAhECAAQQA2AhwgAEHBiYCAADYCECAAQQ02AgwgACAHQQFqNgIUDJwCC0HHASEQDJsCCyAAIAggAhCugICAACIQRQ3KASAQQRVHDYwBIABByAE2AhwgACAINgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAyaAgsCQCAJIAJHDQBBzAEhEAyaAgtBACEUQQEhF0EBIRZBACEQAkACQAJAAkACQAJAAkACQAJAIAktAABBUGoOCpYBlQEAAQIDBAUGCJcBC0ECIRAMBgtBAyEQDAULQQQhEAwEC0EFIRAMAwtBBiEQDAILQQchEAwBC0EIIRALQQAhF0EAIRZBACEUDI4BC0EJIRBBASEUQQAhF0EAIRYMjQELAkAgCiACRw0AQc4BIRAMmQILIAotAABBLkcNjgEgCkEBaiEJDMoBCyALIAJHDY4BQdABIRAMlwILAkAgCyACRg0AIABBjoCAgAA2AgggACALNgIEQbcBIRAM/gELQdEBIRAMlgILAkAgBCACRw0AQdIBIRAMlgILIAIgBGsgACgCACIQaiEUIAQgEGtBBGohCwNAIAQtAAAgEEH8z4CAAGotAABHDY4BIBBBBEYN6QEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB0gEhEAyVAgsgACAMIAIQrICAgAAiAQ2NASAMIQEMuAELAkAgBCACRw0AQdQBIRAMlAILIAIgBGsgACgCACIQaiEUIAQgEGtBAWohDANAIAQtAAAgEEGB0ICAAGotAABHDY8BIBBBAUYNjgEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB1AEhEAyTAgsCQCAEIAJHDQBB1gEhEAyTAgsgAiAEayAAKAIAIhBqIRQgBCAQa0ECaiELA0AgBC0AACAQQYPQgIAAai0AAEcNjgEgEEECRg2QASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHWASEQDJICCwJAIAQgAkcNAEHXASEQDJICCwJAAkAgBC0AAEG7f2oOEACPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAY8BCyAEQQFqIQRBuwEhEAz5AQsgBEEBaiEEQbwBIRAM+AELAkAgBCACRw0AQdgBIRAMkQILIAQtAABByABHDYwBIARBAWohBAzEAQsCQCAEIAJGDQAgAEGQgICAADYCCCAAIAQ2AgRBvgEhEAz3AQtB2QEhEAyPAgsCQCAEIAJHDQBB2gEhEAyPAgsgBC0AAEHIAEYNwwEgAEEBOgAoDLkBCyAAQQI6AC8gACAEIAIQpoCAgAAiEA2NAUHCASEQDPQBCyAALQAoQX9qDgK3AbkBuAELA0ACQCAELQAAQXZqDgQAjgGOAQCOAQsgBEEBaiIEIAJHDQALQd0BIRAMiwILIABBADoALyAALQAtQQRxRQ2EAgsgAEEAOgAvIABBAToANCABIQEMjAELIBBBFUYN2gEgAEEANgIcIAAgATYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMiAILAkAgACAQIAIQtICAgAAiBA0AIBAhAQyBAgsCQCAEQRVHDQAgAEEDNgIcIAAgEDYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMiAILIABBADYCHCAAIBA2AhQgAEGnjoCAADYCECAAQRI2AgxBACEQDIcCCyAQQRVGDdYBIABBADYCHCAAIAE2AhQgAEHajYCAADYCECAAQRQ2AgxBACEQDIYCCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNjQEgAEEHNgIcIAAgEDYCFCAAIBQ2AgxBACEQDIUCCyAAIAAvATBBgAFyOwEwIAEhAQtBKiEQDOoBCyAQQRVGDdEBIABBADYCHCAAIAE2AhQgAEGDjICAADYCECAAQRM2AgxBACEQDIICCyAQQRVGDc8BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDIECCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyNAQsgAEEMNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDIACCyAQQRVGDcwBIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDP8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyMAQsgAEENNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDP4BCyAQQRVGDckBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDP0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyLAQsgAEEONgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPwBCyAAQQA2AhwgACABNgIUIABBwJWAgAA2AhAgAEECNgIMQQAhEAz7AQsgEEEVRg3FASAAQQA2AhwgACABNgIUIABBxoyAgAA2AhAgAEEjNgIMQQAhEAz6AQsgAEEQNgIcIAAgATYCFCAAIBA2AgxBACEQDPkBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQzxAQsgAEERNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPgBCyAQQRVGDcEBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPcBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyIAQsgAEETNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPYBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQztAQsgAEEUNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPUBCyAQQRVGDb0BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDPQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyGAQsgAEEWNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPMBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQt4CAgAAiBA0AIAFBAWohAQzpAQsgAEEXNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPIBCyAAQQA2AhwgACABNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzxAQtCASERCyAQQQFqIQECQCAAKQMgIhJC//////////8PVg0AIAAgEkIEhiARhDcDICABIQEMhAELIABBADYCHCAAIAE2AhQgAEGtiYCAADYCECAAQQw2AgxBACEQDO8BCyAAQQA2AhwgACAQNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzuAQsgACgCBCEXIABBADYCBCAQIBGnaiIWIQEgACAXIBAgFiAUGyIQELWAgIAAIhRFDXMgAEEFNgIcIAAgEDYCFCAAIBQ2AgxBACEQDO0BCyAAQQA2AhwgACAQNgIUIABBqpyAgAA2AhAgAEEPNgIMQQAhEAzsAQsgACAQIAIQtICAgAAiAQ0BIBAhAQtBDiEQDNEBCwJAIAFBFUcNACAAQQI2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAzqAQsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAM6QELIAFBAWohEAJAIAAvATAiAUGAAXFFDQACQCAAIBAgAhC7gICAACIBDQAgECEBDHALIAFBFUcNugEgAEEFNgIcIAAgEDYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAM6QELAkAgAUGgBHFBoARHDQAgAC0ALUECcQ0AIABBADYCHCAAIBA2AhQgAEGWk4CAADYCECAAQQQ2AgxBACEQDOkBCyAAIBAgAhC9gICAABogECEBAkACQAJAAkACQCAAIBAgAhCzgICAAA4WAgEABAQEBAQEBAQEBAQEBAQEBAQEAwQLIABBAToALgsgACAALwEwQcAAcjsBMCAQIQELQSYhEAzRAQsgAEEjNgIcIAAgEDYCFCAAQaWWgIAANgIQIABBFTYCDEEAIRAM6QELIABBADYCHCAAIBA2AhQgAEHVi4CAADYCECAAQRE2AgxBACEQDOgBCyAALQAtQQFxRQ0BQcMBIRAMzgELAkAgDSACRg0AA0ACQCANLQAAQSBGDQAgDSEBDMQBCyANQQFqIg0gAkcNAAtBJSEQDOcBC0ElIRAM5gELIAAoAgQhBCAAQQA2AgQgACAEIA0Qr4CAgAAiBEUNrQEgAEEmNgIcIAAgBDYCDCAAIA1BAWo2AhRBACEQDOUBCyAQQRVGDasBIABBADYCHCAAIAE2AhQgAEH9jYCAADYCECAAQR02AgxBACEQDOQBCyAAQSc2AhwgACABNgIUIAAgEDYCDEEAIRAM4wELIBAhAUEBIRQCQAJAAkACQAJAAkACQCAALQAsQX5qDgcGBQUDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhFAwBC0EEIRQLIABBAToALCAAIAAvATAgFHI7ATALIBAhAQtBKyEQDMoBCyAAQQA2AhwgACAQNgIUIABBq5KAgAA2AhAgAEELNgIMQQAhEAziAQsgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDEEAIRAM4QELIABBADoALCAQIQEMvQELIBAhAUEBIRQCQAJAAkACQAJAIAAtACxBe2oOBAMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0EpIRAMxQELIABBADYCHCAAIAE2AhQgAEHwlICAADYCECAAQQM2AgxBACEQDN0BCwJAIA4tAABBDUcNACAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA5BAWohAQx1CyAAQSw2AhwgACABNgIMIAAgDkEBajYCFEEAIRAM3QELIAAtAC1BAXFFDQFBxAEhEAzDAQsCQCAOIAJHDQBBLSEQDNwBCwJAAkADQAJAIA4tAABBdmoOBAIAAAMACyAOQQFqIg4gAkcNAAtBLSEQDN0BCyAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA4hAQx0CyAAQSw2AhwgACAONgIUIAAgATYCDEEAIRAM3AELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHMLIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzbAQsgACgCBCEEIABBADYCBCAAIAQgDhCxgICAACIEDaABIA4hAQzOAQsgEEEsRw0BIAFBAWohEEEBIQECQAJAAkACQAJAIAAtACxBe2oOBAMBAgQACyAQIQEMBAtBAiEBDAELQQQhAQsgAEEBOgAsIAAgAC8BMCABcjsBMCAQIQEMAQsgACAALwEwQQhyOwEwIBAhAQtBOSEQDL8BCyAAQQA6ACwgASEBC0E0IRAMvQELIAAgAC8BMEEgcjsBMCABIQEMAgsgACgCBCEEIABBADYCBAJAIAAgBCABELGAgIAAIgQNACABIQEMxwELIABBNzYCHCAAIAE2AhQgACAENgIMQQAhEAzUAQsgAEEIOgAsIAEhAQtBMCEQDLkBCwJAIAAtAChBAUYNACABIQEMBAsgAC0ALUEIcUUNkwEgASEBDAMLIAAtADBBIHENlAFBxQEhEAy3AQsCQCAPIAJGDQACQANAAkAgDy0AAEFQaiIBQf8BcUEKSQ0AIA8hAUE1IRAMugELIAApAyAiEUKZs+bMmbPmzBlWDQEgACARQgp+IhE3AyAgESABrUL/AYMiEkJ/hVYNASAAIBEgEnw3AyAgD0EBaiIPIAJHDQALQTkhEAzRAQsgACgCBCECIABBADYCBCAAIAIgD0EBaiIEELGAgIAAIgINlQEgBCEBDMMBC0E5IRAMzwELAkAgAC8BMCIBQQhxRQ0AIAAtAChBAUcNACAALQAtQQhxRQ2QAQsgACABQff7A3FBgARyOwEwIA8hAQtBNyEQDLQBCyAAIAAvATBBEHI7ATAMqwELIBBBFUYNiwEgAEEANgIcIAAgATYCFCAAQfCOgIAANgIQIABBHDYCDEEAIRAMywELIABBwwA2AhwgACABNgIMIAAgDUEBajYCFEEAIRAMygELAkAgAS0AAEE6Rw0AIAAoAgQhECAAQQA2AgQCQCAAIBAgARCvgICAACIQDQAgAUEBaiEBDGMLIABBwwA2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMygELIABBADYCHCAAIAE2AhQgAEGxkYCAADYCECAAQQo2AgxBACEQDMkBCyAAQQA2AhwgACABNgIUIABBoJmAgAA2AhAgAEEeNgIMQQAhEAzIAQsgAEEANgIACyAAQYASOwEqIAAgF0EBaiIBIAIQqICAgAAiEA0BIAEhAQtBxwAhEAysAQsgEEEVRw2DASAAQdEANgIcIAAgATYCFCAAQeOXgIAANgIQIABBFTYCDEEAIRAMxAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDF4LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMwwELIABBADYCHCAAIBQ2AhQgAEHBqICAADYCECAAQQc2AgwgAEEANgIAQQAhEAzCAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAzBAQtBACEQIABBADYCHCAAIAE2AhQgAEGAkYCAADYCECAAQQk2AgwMwAELIBBBFUYNfSAAQQA2AhwgACABNgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAy/AQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgAUEBaiEBAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBAJAIAAgECABEK2AgIAAIhANACABIQEMXAsgAEHYADYCHCAAIAE2AhQgACAQNgIMQQAhEAy+AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMrQELIABB2QA2AhwgACABNgIUIAAgBDYCDEEAIRAMvQELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKsBCyAAQdoANgIcIAAgATYCFCAAIAQ2AgxBACEQDLwBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQypAQsgAEHcADYCHCAAIAE2AhQgACAENgIMQQAhEAy7AQsCQCABLQAAQVBqIhBB/wFxQQpPDQAgACAQOgAqIAFBAWohAUHPACEQDKIBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQynAQsgAEHeADYCHCAAIAE2AhQgACAENgIMQQAhEAy6AQsgAEEANgIAIBdBAWohAQJAIAAtAClBI08NACABIQEMWQsgAEEANgIcIAAgATYCFCAAQdOJgIAANgIQIABBCDYCDEEAIRAMuQELIABBADYCAAtBACEQIABBADYCHCAAIAE2AhQgAEGQs4CAADYCECAAQQg2AgwMtwELIABBADYCACAXQQFqIQECQCAALQApQSFHDQAgASEBDFYLIABBADYCHCAAIAE2AhQgAEGbioCAADYCECAAQQg2AgxBACEQDLYBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKSIQQV1qQQtPDQAgASEBDFULAkAgEEEGSw0AQQEgEHRBygBxRQ0AIAEhAQxVC0EAIRAgAEEANgIcIAAgATYCFCAAQfeJgIAANgIQIABBCDYCDAy1AQsgEEEVRg1xIABBADYCHCAAIAE2AhQgAEG5jYCAADYCECAAQRo2AgxBACEQDLQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxUCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLMBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="});var Yg=E((oS,Vg)=>{Vg.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="});var Qr=E((dS,a6)=>{"use strict";var D=require("assert"),xg=require("net"),L=H(),md=E4(),Xh=yg(),zh=or(),{RequestContentLengthMismatchError:s1,ResponseContentLengthMismatchError:Kh,InvalidArgumentError:he,RequestAbortedError:qg,HeadersTimeoutError:$h,HeadersOverflowError:eI,SocketError:Xi,InformationalError:n1,BodyTimeoutError:AI,HTTPParserError:tI,ResponseExceededMaxSizeError:aI,ClientDestroyedError:rI}=ee(),iI=dr(),{kUrl:yA,kReset:xe,kServerName:Yt,kClient:$i,kBusy:hd,kParser:te,kConnect:sI,kBlocking:Aa,kResuming:o1,kRunning:ue,kPending:ta,kSize:d1,kWriting:It,kQueue:pe,kConnected:nI,kConnecting:ea,kNeedDrain:Gt,kNoRef:lr,kKeepAliveDefaultTimeout:Id,kHostHeader:Hg,kPendingIdx:DA,kRunningIdx:ce,kError:oA,kPipelining:xt,kSocket:nA,kKeepAliveTimeoutValue:ur,kMaxHeadersSize:ji,kKeepAliveMaxTimeout:Og,kKeepAliveTimeoutThreshold:Pg,kHeadersTimeout:Wg,kBodyTimeout:jg,kStrictContentLength:zi,kConnector:gr,kMaxRedirections:oI,kMaxRequests:Er,kCounter:Zg,kClose:dI,kDestroy:pI,kDispatch:lI,kInterceptors:gI,kLocalAddress:cr,kMaxResponseSize:Xg}=ie(),Pi=Buffer[Symbol.species],Jt=Symbol("kClosedResolve"),Ye={};try{let e=require("diagnostics_channel");Ye.sendHeaders=e.channel("undici:client:sendHeaders"),Ye.beforeConnect=e.channel("undici:client:beforeConnect"),Ye.connectError=e.channel("undici:client:connectError"),Ye.connected=e.channel("undici:client:connected")}catch{Ye.sendHeaders={hasSubscribers:!1},Ye.beforeConnect={hasSubscribers:!1},Ye.connectError={hasSubscribers:!1},Ye.connected={hasSubscribers:!1}}var fd=class extends zh{constructor(A,{interceptors:t,maxHeaderSize:a,headersTimeout:r,socketTimeout:i,requestTimeout:s,connectTimeout:n,bodyTimeout:o,idleTimeout:d,keepAlive:l,keepAliveTimeout:p,maxKeepAliveTimeout:g,keepAliveMaxTimeout:c,keepAliveTimeoutThreshold:u,socketPath:Q,pipelining:m,tls:C,strictContentLength:B,maxCachedSessions:f,maxRedirections:h,connect:w,maxRequestsPerClient:v,localAddress:S,maxResponseSize:x,autoSelectFamily:we,autoSelectFamilyAttemptTimeout:me}={}){if(super(),l!==void 0)throw new he("unsupported keepAlive, use pipelining=0 instead");if(i!==void 0)throw new he("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(s!==void 0)throw new he("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(d!==void 0)throw new he("unsupported idleTimeout, use keepAliveTimeout instead");if(g!==void 0)throw new he("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(a!=null&&!Number.isFinite(a))throw new he("invalid maxHeaderSize");if(Q!=null&&typeof Q!="string")throw new he("invalid socketPath");if(n!=null&&(!Number.isFinite(n)||n<0))throw new he("invalid connectTimeout");if(p!=null&&(!Number.isFinite(p)||p<=0))throw new he("invalid keepAliveTimeout");if(c!=null&&(!Number.isFinite(c)||c<=0))throw new he("invalid keepAliveMaxTimeout");if(u!=null&&!Number.isFinite(u))throw new he("invalid keepAliveTimeoutThreshold");if(r!=null&&(!Number.isInteger(r)||r<0))throw new he("headersTimeout must be a positive integer or zero");if(o!=null&&(!Number.isInteger(o)||o<0))throw new he("bodyTimeout must be a positive integer or zero");if(w!=null&&typeof w!="function"&&typeof w!="object")throw new he("connect must be a function or an object");if(h!=null&&(!Number.isInteger(h)||h<0))throw new he("maxRedirections must be a positive number");if(v!=null&&(!Number.isInteger(v)||v<0))throw new he("maxRequestsPerClient must be a positive number");if(S!=null&&(typeof S!="string"||xg.isIP(S)===0))throw new he("localAddress must be valid string IP address");if(x!=null&&(!Number.isInteger(x)||x<-1))throw new he("maxResponseSize must be a positive number");if(me!=null&&(!Number.isInteger(me)||me<-1))throw new he("autoSelectFamilyAttemptTimeout must be a positive number");typeof w!="function"&&(w=iI({...C,maxCachedSessions:f,socketPath:Q,timeout:n,...L.nodeHasAutoSelectFamily&&we?{autoSelectFamily:we,autoSelectFamilyAttemptTimeout:me}:void 0,...w})),this[gI]=t&&t.Client&&Array.isArray(t.Client)?t.Client:[cI({maxRedirections:h})],this[yA]=L.parseOrigin(A),this[gr]=w,this[nA]=null,this[xt]=m??1,this[ji]=a||16384,this[Id]=p??4e3,this[Og]=c??6e5,this[Pg]=u??1e3,this[ur]=this[Id],this[Yt]=null,this[cr]=S??null,this[o1]=0,this[Gt]=0,this[Hg]=`host: ${this[yA].hostname}${this[yA].port?`:${this[yA].port}`:""}\r -`,this[jg]=o??3e5,this[Wg]=r??3e5,this[zi]=B??!0,this[oI]=h,this[Er]=v,this[Jt]=null,this[Xg]=x>-1?x:-1,this[pe]=[],this[ce]=0,this[DA]=0}get pipelining(){return this[xt]}set pipelining(A){this[xt]=A,vA(this,!0)}get[ta](){return this[pe].length-this[DA]}get[ue](){return this[DA]-this[ce]}get[d1](){return this[pe].length-this[ce]}get[nI](){return!!this[nA]&&!this[ea]&&!this[nA].destroyed}get[hd](){let A=this[nA];return A&&(A[xe]||A[It]||A[Aa])||this[d1]>=(this[xt]||1)||this[ta]>0}[sI](A){t6(this),this.once("connect",A)}[lI](A,t){let a=A.origin||this[yA].origin,r=new Xh(a,A,t);return this[pe].push(r),this[o1]||(L.bodyLength(r.body)==null&&L.isIterable(r.body)?(this[o1]=1,process.nextTick(vA,this)):vA(this,!0)),this[o1]&&this[Gt]!==2&&this[hd]&&(this[Gt]=2),this[Gt]<2}async[dI](){return new Promise(A=>{this[d1]?this[Jt]=A:A(null)})}async[pI](A){return new Promise(t=>{let a=this[pe].splice(this[DA]);for(let i=0;i<a.length;i++){let s=a[i];At(this,s,A)}let r=()=>{this[Jt]&&(this[Jt](),this[Jt]=null),t()};this[nA]?L.destroy(this[nA].on("close",r),A):queueMicrotask(r),vA(this)})}},KA=Fg(),cI=Oi(),uI=Buffer.alloc(0);async function EI(){let e=process.env.JEST_WORKER_ID?Cd():void 0,A;try{A=await WebAssembly.compile(Buffer.from(Yg(),"base64"))}catch{A=await WebAssembly.compile(Buffer.from(e||Cd(),"base64"))}return await WebAssembly.instantiate(A,{env:{wasm_on_url:(t,a,r)=>0,wasm_on_status:(t,a,r)=>{D.strictEqual(Ie.ptr,t);let i=a-et+$A.byteOffset;return Ie.onStatus(new Pi($A.buffer,i,r))||0},wasm_on_message_begin:t=>(D.strictEqual(Ie.ptr,t),Ie.onMessageBegin()||0),wasm_on_header_field:(t,a,r)=>{D.strictEqual(Ie.ptr,t);let i=a-et+$A.byteOffset;return Ie.onHeaderField(new Pi($A.buffer,i,r))||0},wasm_on_header_value:(t,a,r)=>{D.strictEqual(Ie.ptr,t);let i=a-et+$A.byteOffset;return Ie.onHeaderValue(new Pi($A.buffer,i,r))||0},wasm_on_headers_complete:(t,a,r,i)=>(D.strictEqual(Ie.ptr,t),Ie.onHeadersComplete(a,!!r,!!i)||0),wasm_on_body:(t,a,r)=>{D.strictEqual(Ie.ptr,t);let i=a-et+$A.byteOffset;return Ie.onBody(new Pi($A.buffer,i,r))||0},wasm_on_message_complete:t=>(D.strictEqual(Ie.ptr,t),Ie.onMessageComplete()||0)}})}var Bd=null,wd=EI();wd.catch();var Ie=null,$A=null,Wi=0,et=null,aa=1,Zi=2,yd=3,Dd=class{constructor(A,t,{exports:a}){D(Number.isFinite(A[ji])&&A[ji]>0),this.llhttp=a,this.ptr=this.llhttp.llhttp_alloc(KA.TYPE.RESPONSE),this.client=A,this.socket=t,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=A[ji],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=A[Xg]}setTimeout(A,t){this.timeoutType=t,A!==this.timeoutValue?(md.clearTimeout(this.timeout),A?(this.timeout=md.setTimeout(QI,A,this),this.timeout.unref&&this.timeout.unref()):this.timeout=null,this.timeoutValue=A):this.timeout&&this.timeout.refresh&&this.timeout.refresh()}resume(){this.socket.destroyed||!this.paused||(D(this.ptr!=null),D(Ie==null),this.llhttp.llhttp_resume(this.ptr),D(this.timeoutType===Zi),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||uI),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let A=this.socket.read();if(A===null)break;this.execute(A)}}execute(A){D(this.ptr!=null),D(Ie==null),D(!this.paused);let{socket:t,llhttp:a}=this;A.length>Wi&&(et&&a.free(et),Wi=Math.ceil(A.length/4096)*4096,et=a.malloc(Wi)),new Uint8Array(a.memory.buffer,et,Wi).set(A);try{let r;try{$A=A,Ie=this,r=a.llhttp_execute(this.ptr,et,A.length)}catch(s){throw s}finally{Ie=null,$A=null}let i=a.llhttp_get_error_pos(this.ptr)-et;if(r===KA.ERROR.PAUSED_UPGRADE)this.onUpgrade(A.slice(i));else if(r===KA.ERROR.PAUSED)this.paused=!0,t.unshift(A.slice(i));else if(r!==KA.ERROR.OK){let s=a.llhttp_get_error_reason(this.ptr),n="";if(s){let o=new Uint8Array(a.memory.buffer,s).indexOf(0);n="Response does not match the HTTP/1.1 protocol ("+Buffer.from(a.memory.buffer,s,o).toString()+")"}throw new tI(n,KA.ERROR[r],A.slice(i))}}catch(r){L.destroy(t,r)}}destroy(){D(this.ptr!=null),D(Ie==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,md.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(A){this.statusText=A.toString()}onMessageBegin(){let{socket:A,client:t}=this;if(A.destroyed||!t[pe][t[ce]])return-1}onHeaderField(A){let t=this.headers.length;(t&1)===0?this.headers.push(A):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]),this.trackHeader(A.length)}onHeaderValue(A){let t=this.headers.length;(t&1)===1?(this.headers.push(A),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]);let a=this.headers[t-2];a.length===10&&a.toString().toLowerCase()==="keep-alive"?this.keepAlive+=A.toString():a.length===10&&a.toString().toLowerCase()==="connection"?this.connection+=A.toString():a.length===14&&a.toString().toLowerCase()==="content-length"&&(this.contentLength+=A.toString()),this.trackHeader(A.length)}trackHeader(A){this.headersSize+=A,this.headersSize>=this.headersMaxSize&&L.destroy(this.socket,new eI)}onUpgrade(A){let{upgrade:t,client:a,socket:r,headers:i,statusCode:s}=this;D(t);let n=a[pe][a[ce]];D(n),D(!r.destroyed),D(r===a[nA]),D(!this.paused),D(n.upgrade||n.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,D(this.headers.length%2===0),this.headers=[],this.headersSize=0,r.unshift(A),r[te].destroy(),r[te]=null,r[$i]=null,r[oA]=null,r.removeListener("error",Kg).removeListener("readable",zg).removeListener("end",e6).removeListener("close",A6),a[nA]=null,a[pe][a[ce]++]=null,a.emit("disconnect",a[yA],[a],new n1("upgrade"));try{n.onUpgrade(s,i,r)}catch(o){L.destroy(r,o)}vA(a)}onHeadersComplete(A,t,a){let{client:r,socket:i,headers:s,statusText:n}=this;if(i.destroyed)return-1;let o=r[pe][r[ce]];if(!o)return-1;if(D(!this.upgrade),D(this.statusCode<200),A===100)return L.destroy(i,new Xi("bad response",L.getSocketInfo(i))),-1;if(t&&!o.upgrade)return L.destroy(i,new Xi("bad upgrade",L.getSocketInfo(i))),-1;if(D.strictEqual(this.timeoutType,aa),this.statusCode=A,this.shouldKeepAlive=a||o.method==="HEAD"&&!i[xe]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let l=o.bodyTimeout!=null?o.bodyTimeout:r[jg];this.setTimeout(l,Zi)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(o.method==="CONNECT")return D(r[ue]===1),this.upgrade=!0,2;if(t)return D(r[ue]===1),this.upgrade=!0,2;if(D(this.headers.length%2===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&r[xt]){let l=this.keepAlive?L.parseKeepAliveTimeout(this.keepAlive):null;if(l!=null){let p=Math.min(l-r[Pg],r[Og]);p<=0?i[xe]=!0:r[ur]=p}else r[ur]=r[Id]}else i[xe]=!0;let d;try{d=o.onHeaders(A,s,this.resume,n)===!1}catch(l){return L.destroy(i,l),-1}return o.method==="HEAD"||A<200?1:(i[Aa]&&(i[Aa]=!1,vA(r)),d?KA.ERROR.PAUSED:0)}onBody(A){let{client:t,socket:a,statusCode:r,maxResponseSize:i}=this;if(a.destroyed)return-1;let s=t[pe][t[ce]];if(D(s),D.strictEqual(this.timeoutType,Zi),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),D(r>=200),i>-1&&this.bytesRead+A.length>i)return L.destroy(a,new aI),-1;this.bytesRead+=A.length;try{if(s.onData(A)===!1)return KA.ERROR.PAUSED}catch(n){return L.destroy(a,n),-1}}onMessageComplete(){let{client:A,socket:t,statusCode:a,upgrade:r,headers:i,contentLength:s,bytesRead:n,shouldKeepAlive:o}=this;if(t.destroyed&&(!a||o))return-1;if(r)return;let d=A[pe][A[ce]];if(D(d),D(a>=100),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",D(this.headers.length%2===0),this.headers=[],this.headersSize=0,!(a<200)){if(d.method!=="HEAD"&&s&&n!==parseInt(s,10))return L.destroy(t,new Kh),-1;try{d.onComplete(i)}catch(l){At(A,d,l)}if(A[pe][A[ce]++]=null,t[It])return D.strictEqual(A[ue],0),L.destroy(t,new n1("reset")),KA.ERROR.PAUSED;if(o){if(t[xe]&&A[ue]===0)return L.destroy(t,new n1("reset")),KA.ERROR.PAUSED;A[xt]===1?setImmediate(vA,A):vA(A)}else return L.destroy(t,new n1("reset")),KA.ERROR.PAUSED}}};function QI(e){let{socket:A,timeoutType:t,client:a}=e;t===aa?(!A[It]||A.writableNeedDrain||a[ue]>1)&&(D(!e.paused,"cannot be paused while waiting for headers"),L.destroy(A,new $h)):t===Zi?e.paused||L.destroy(A,new AI):t===yd&&(D(a[ue]===0&&a[ur]),L.destroy(A,new n1("socket idle timeout")))}function zg(){let{[te]:e}=this;e.readMore()}function Kg(e){let{[te]:A}=this;if(D(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),e.code==="ECONNRESET"&&A.statusCode&&!A.shouldKeepAlive){A.onMessageComplete();return}this[oA]=e,$g(this[$i],e)}function $g(e,A){if(e[ue]===0&&A.code!=="UND_ERR_INFO"&&A.code!=="UND_ERR_SOCKET"){D(e[DA]===e[ce]);let t=e[pe].splice(e[ce]);for(let a=0;a<t.length;a++){let r=t[a];At(e,r,A)}D(e[d1]===0)}}function e6(){let{[te]:e}=this;if(e.statusCode&&!e.shouldKeepAlive){e.onMessageComplete();return}L.destroy(this,new Xi("other side closed",L.getSocketInfo(this)))}function A6(){let{[$i]:e}=this;!this[oA]&&this[te].statusCode&&!this[te].shouldKeepAlive&&this[te].onMessageComplete(),this[te].destroy(),this[te]=null;let A=this[oA]||new Xi("closed",L.getSocketInfo(this));if(e[nA]=null,e.destroyed){D(e[ta]===0);let t=e[pe].splice(e[ce]);for(let a=0;a<t.length;a++){let r=t[a];At(e,r,A)}}else if(e[ue]>0&&A.code!=="UND_ERR_INFO"){let t=e[pe][e[ce]];e[pe][e[ce]++]=null,At(e,t,A)}e[DA]=e[ce],D(e[ue]===0),e.emit("disconnect",e[yA],[e],A),vA(e)}async function t6(e){D(!e[ea]),D(!e[nA]);let{host:A,hostname:t,protocol:a,port:r}=e[yA];if(t[0]==="["){let i=t.indexOf("]");D(i!==-1);let s=t.substr(1,i-1);D(xg.isIP(s)),t=s}e[ea]=!0,Ye.beforeConnect.hasSubscribers&&Ye.beforeConnect.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[Yt],localAddress:e[cr]},connector:e[gr]});try{let i=await new Promise((s,n)=>{e[gr]({host:A,hostname:t,protocol:a,port:r,servername:e[Yt],localAddress:e[cr]},(o,d)=>{o?n(o):s(d)})});if(e.destroyed){L.destroy(i.on("error",()=>{}),new rI);return}Bd||(Bd=await wd,wd=null),e[ea]=!1,D(i),i[lr]=!1,i[It]=!1,i[xe]=!1,i[Aa]=!1,i[oA]=null,i[te]=new Dd(e,i,Bd),i[$i]=e,i[Zg]=0,i[Er]=e[Er],i.on("error",Kg).on("readable",zg).on("end",e6).on("close",A6),e[nA]=i,Ye.connected.hasSubscribers&&Ye.connected.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[Yt],localAddress:e[cr]},connector:e[gr],socket:i}),e.emit("connect",e[yA],[e])}catch(i){if(e.destroyed)return;if(e[ea]=!1,Ye.connectError.hasSubscribers&&Ye.connectError.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[Yt],localAddress:e[cr]},connector:e[gr],error:i}),i.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(D(e[ue]===0);e[ta]>0&&e[pe][e[DA]].servername===e[Yt];){let s=e[pe][e[DA]++];At(e,s,i)}else $g(e,i);e.emit("connectionError",e[yA],[e],i)}vA(e)}function Jg(e){e[Gt]=0,e.emit("drain",e[yA],[e])}function vA(e,A){e[o1]!==2&&(e[o1]=2,CI(e,A),e[o1]=0,e[ce]>256&&(e[pe].splice(0,e[ce]),e[DA]-=e[ce],e[ce]=0))}function CI(e,A){for(;;){if(e.destroyed){D(e[ta]===0);return}if(e[Jt]&&!e[d1]){e[Jt](),e[Jt]=null;return}let t=e[nA];if(t&&!t.destroyed){if(e[d1]===0?!t[lr]&&t.unref&&(t.unref(),t[lr]=!0):t[lr]&&t.ref&&(t.ref(),t[lr]=!1),e[d1]===0)t[te].timeoutType!==yd&&t[te].setTimeout(e[ur],yd);else if(e[ue]>0&&t[te].statusCode<200&&t[te].timeoutType!==aa){let r=e[pe][e[ce]],i=r.headersTimeout!=null?r.headersTimeout:e[Wg];t[te].setTimeout(i,aa)}}if(e[hd])e[Gt]=2;else if(e[Gt]===2){A?(e[Gt]=1,process.nextTick(Jg,e)):Jg(e);continue}if(e[ta]===0||e[ue]>=(e[xt]||1))return;let a=e[pe][e[DA]];if(e[yA].protocol==="https:"&&e[Yt]!==a.servername){if(e[ue]>0)return;if(e[Yt]=a.servername,t&&t.servername!==a.servername){L.destroy(t,new n1("servername changed"));return}}if(e[ea])return;if(!t){t6(e);return}if(t.destroyed||t[It]||t[xe]||t[Aa]||e[ue]>0&&!a.idempotent||e[ue]>0&&(a.upgrade||a.method==="CONNECT")||(L.isStream(a.body)&&L.bodyLength(a.body)===0&&(a.body.on("data",function(){D(!1)}).on("error",function(r){At(e,a,r)}).on("end",function(){L.destroy(this)}),a.body=null),e[ue]>0&&(L.isStream(a.body)||L.isAsyncIterable(a.body))))return;!a.aborted&&mI(e,a)?e[DA]++:e[pe].splice(e[DA],1)}}function mI(e,A){let{body:t,method:a,path:r,host:i,upgrade:s,headers:n,blocking:o,reset:d}=A,l=a==="PUT"||a==="POST"||a==="PATCH";t&&typeof t.read=="function"&&t.read(0);let p=L.bodyLength(t);if(p===null&&(p=A.contentLength),p===0&&!l&&(p=null),A.contentLength!==null&&A.contentLength!==p){if(e[zi])return At(e,A,new s1),!1;process.emitWarning(new s1)}let g=e[nA];try{A.onConnect(u=>{A.aborted||A.completed||(At(e,A,u||new qg),L.destroy(g,new n1("aborted")))})}catch(u){At(e,A,u)}if(A.aborted)return!1;a==="HEAD"&&(g[xe]=!0),(s||a==="CONNECT")&&(g[xe]=!0),d!=null&&(g[xe]=d),e[Er]&&g[Zg]++>=e[Er]&&(g[xe]=!0),o&&(g[Aa]=!0);let c=`${a} ${r} HTTP/1.1\r +`);sA.validateHandler(u,a,d),this.servername=sA.getServerName(this.host),this[Et]=u,Qe.create.hasSubscribers&&Qe.create.publish({request:this})}onBodySent(A){if(this[Et].onBodySent)try{this[Et].onBodySent(A)}catch(t){this.onError(t)}}onRequestSent(){Qe.bodySent.hasSubscribers&&Qe.bodySent.publish({request:this})}onConnect(A){return ut(!this.aborted),ut(!this.completed),this[Et].onConnect(A)}onHeaders(A,t,a,r){return ut(!this.aborted),ut(!this.completed),Qe.headers.hasSubscribers&&Qe.headers.publish({request:this,response:{statusCode:A,headers:t,statusText:r}}),this[Et].onHeaders(A,t,a,r)}onData(A){return ut(!this.aborted),ut(!this.completed),this[Et].onData(A)}onUpgrade(A,t,a){return ut(!this.aborted),ut(!this.completed),this[Et].onUpgrade(A,t,a)}onComplete(A){return ut(!this.aborted),this.completed=!0,Qe.trailers.hasSubscribers&&Qe.trailers.publish({request:this,trailers:A}),this[Et].onComplete(A)}onError(A){if(Qe.error.hasSubscribers&&Qe.error.publish({request:this,error:A}),!this.aborted)return this.aborted=!0,this[Et].onError(A)}addHeader(A,t){return zo(this,A,t),this}};function Xo(e,A){if(A&&typeof A=="object")throw new se(`invalid ${e} header`);if(A=A!=null?`${A}`:"",gg.exec(A)!==null)throw new se(`invalid ${e} header`);return`${e}: ${A}\r +`}function zo(e,A,t){if(t&&typeof t=="object"&&!Array.isArray(t))throw new se(`invalid ${A} header`);if(t===void 0)return;if(e.host===null&&A.length===4&&A.toLowerCase()==="host"){if(gg.exec(t)!==null)throw new se(`invalid ${A} header`);e.host=t}else if(e.contentLength===null&&A.length===14&&A.toLowerCase()==="content-length"){if(e.contentLength=parseInt(t,10),!Number.isFinite(e.contentLength))throw new se("invalid content-length header")}else if(e.contentType===null&&A.length===12&&A.toLowerCase()==="content-type")e.contentType=t,e.headers+=Xo(A,t);else{if(A.length===17&&A.toLowerCase()==="transfer-encoding")throw new se("invalid transfer-encoding header");if(A.length===10&&A.toLowerCase()==="connection"){let a=typeof t=="string"?t.toLowerCase():null;if(a!=="close"&&a!=="keep-alive")throw new se("invalid connection header");a==="close"&&(e.reset=!0)}else{if(A.length===10&&A.toLowerCase()==="keep-alive")throw new se("invalid keep-alive header");if(A.length===7&&A.toLowerCase()==="upgrade")throw new se("invalid upgrade header");if(A.length===6&&A.toLowerCase()==="expect")throw new Ah("expect header not supported");if(lg.exec(A)===null)throw new se("invalid header key");if(Array.isArray(t))for(let a=0;a<t.length;a++)e.headers+=Xo(A,t[a]);else e.headers+=Xo(A,t)}}}cg.exports=Ko});var Ui=E((lS,Eg)=>{"use strict";var ah=require("events"),$o=class extends ah{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}};Eg.exports=$o});var tr=E((gS,Qg)=>{"use strict";var rh=Ui(),{ClientDestroyedError:ed,ClientClosedError:ih,InvalidArgumentError:O1}=ee(),{kDestroy:sh,kClose:nh,kDispatch:Ad,kInterceptors:A1}=ie(),P1=Symbol("destroyed"),Ar=Symbol("closed"),Qt=Symbol("onDestroyed"),W1=Symbol("onClosed"),Ti=Symbol("Intercepted Dispatch"),td=class extends rh{constructor(){super(),this[P1]=!1,this[Qt]=null,this[Ar]=!1,this[W1]=[]}get destroyed(){return this[P1]}get closed(){return this[Ar]}get interceptors(){return this[A1]}set interceptors(A){if(A){for(let t=A.length-1;t>=0;t--)if(typeof this[A1][t]!="function")throw new O1("interceptor must be an function")}this[A1]=A}close(A){if(A===void 0)return new Promise((a,r)=>{this.close((i,s)=>i?r(i):a(s))});if(typeof A!="function")throw new O1("invalid callback");if(this[P1]){queueMicrotask(()=>A(new ed,null));return}if(this[Ar]){this[W1]?this[W1].push(A):queueMicrotask(()=>A(null,null));return}this[Ar]=!0,this[W1].push(A);let t=()=>{let a=this[W1];this[W1]=null;for(let r=0;r<a.length;r++)a[r](null,null)};this[nh]().then(()=>this.destroy()).then(()=>{queueMicrotask(t)})}destroy(A,t){if(typeof A=="function"&&(t=A,A=null),t===void 0)return new Promise((r,i)=>{this.destroy(A,(s,n)=>s?i(s):r(n))});if(typeof t!="function")throw new O1("invalid callback");if(this[P1]){this[Qt]?this[Qt].push(t):queueMicrotask(()=>t(null,null));return}A||(A=new ed),this[P1]=!0,this[Qt]=this[Qt]||[],this[Qt].push(t);let a=()=>{let r=this[Qt];this[Qt]=null;for(let i=0;i<r.length;i++)r[i](null,null)};this[sh](A).then(()=>{queueMicrotask(a)})}[Ti](A,t){if(!this[A1]||this[A1].length===0)return this[Ti]=this[Ad],this[Ad](A,t);let a=this[Ad].bind(this);for(let r=this[A1].length-1;r>=0;r--)a=this[A1][r](a);return this[Ti]=a,a(A,t)}dispatch(A,t){if(!t||typeof t!="object")throw new O1("handler must be an object");try{if(!A||typeof A!="object")throw new O1("opts must be an object.");if(this[P1]||this[Qt])throw new ed;if(this[Ar])throw new ih;return this[Ti](A,t)}catch(a){if(typeof t.onError!="function")throw new O1("invalid onError method");return t.onError(a),!1}}};Qg.exports=td});var ar=E((ES,Bg)=>{"use strict";var oh=require("net"),mg=require("assert"),Cg=q(),{InvalidArgumentError:dh,ConnectTimeoutError:ph}=ee(),ad,rd;global.FinalizationRegistry?rd=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(t=>{if(this._sessionCache.size<this._maxCachedSessions)return;let a=this._sessionCache.get(t);a!==void 0&&a.deref()===void 0&&this._sessionCache.delete(t)})}get(A){let t=this._sessionCache.get(A);return t?t.deref():null}set(A,t){this._maxCachedSessions!==0&&(this._sessionCache.set(A,new WeakRef(t)),this._sessionRegistry.register(t,A))}}:rd=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map}get(A){return this._sessionCache.get(A)}set(A,t){if(this._maxCachedSessions!==0){if(this._sessionCache.size>=this._maxCachedSessions){let{value:a}=this._sessionCache.keys().next();this._sessionCache.delete(a)}this._sessionCache.set(A,t)}}};function lh({maxCachedSessions:e,socketPath:A,timeout:t,...a}){if(e!=null&&(!Number.isInteger(e)||e<0))throw new dh("maxCachedSessions must be a positive integer or zero");let r={path:A,...a},i=new rd(e??100);return t=t??1e4,function({hostname:n,host:o,protocol:d,port:l,servername:p,localAddress:g,httpSocket:c},u){let Q;if(d==="https:"){ad||(ad=require("tls")),p=p||r.servername||Cg.getServerName(o)||null;let m=p||n,B=i.get(m)||null;mg(m),Q=ad.connect({highWaterMark:16384,...r,servername:p,session:B,localAddress:g,socket:c,port:l||443,host:n}),Q.on("session",function(w){i.set(m,w)})}else mg(!c,"httpSocket can only be sent on TLS update"),Q=oh.connect({highWaterMark:64*1024,...r,localAddress:g,port:l||80,host:n});if(r.keepAlive==null||r.keepAlive){let m=r.keepAliveInitialDelay===void 0?6e4:r.keepAliveInitialDelay;Q.setKeepAlive(!0,m)}let C=gh(()=>ch(Q),t);return Q.setNoDelay(!0).once(d==="https:"?"secureConnect":"connect",function(){if(C(),u){let m=u;u=null,m(null,this)}}).on("error",function(m){if(C(),u){let B=u;u=null,B(m)}}),Q}}function gh(e,A){if(!A)return()=>{};let t=null,a=null,r=setTimeout(()=>{t=setImmediate(()=>{process.platform==="win32"?a=setImmediate(()=>e()):e()})},A);return()=>{clearTimeout(r),clearImmediate(t),clearImmediate(a)}}function ch(e){Cg.destroy(e,new ph)}Bg.exports=lh});var hg=E(Mi=>{"use strict";Object.defineProperty(Mi,"__esModule",{value:!0});Mi.enumToMap=void 0;function uh(e){let A={};return Object.keys(e).forEach(t=>{let a=e[t];typeof a=="number"&&(A[t]=a)}),A}Mi.enumToMap=uh});var Ig=E(h=>{"use strict";Object.defineProperty(h,"__esModule",{value:!0});h.SPECIAL_HEADERS=h.HEADER_STATE=h.MINOR=h.MAJOR=h.CONNECTION_TOKEN_CHARS=h.HEADER_CHARS=h.TOKEN=h.STRICT_TOKEN=h.HEX=h.URL_CHAR=h.STRICT_URL_CHAR=h.USERINFO_CHARS=h.MARK=h.ALPHANUM=h.NUM=h.HEX_MAP=h.NUM_MAP=h.ALPHA=h.FINISH=h.H_METHOD_MAP=h.METHOD_MAP=h.METHODS_RTSP=h.METHODS_ICE=h.METHODS_HTTP=h.METHODS=h.LENIENT_FLAGS=h.FLAGS=h.TYPE=h.ERROR=void 0;var Eh=hg(),Qh;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(Qh=h.ERROR||(h.ERROR={}));var mh;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(mh=h.TYPE||(h.TYPE={}));var Ch;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(Ch=h.FLAGS||(h.FLAGS={}));var Bh;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(Bh=h.LENIENT_FLAGS||(h.LENIENT_FLAGS={}));var R;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(R=h.METHODS||(h.METHODS={}));h.METHODS_HTTP=[R.DELETE,R.GET,R.HEAD,R.POST,R.PUT,R.CONNECT,R.OPTIONS,R.TRACE,R.COPY,R.LOCK,R.MKCOL,R.MOVE,R.PROPFIND,R.PROPPATCH,R.SEARCH,R.UNLOCK,R.BIND,R.REBIND,R.UNBIND,R.ACL,R.REPORT,R.MKACTIVITY,R.CHECKOUT,R.MERGE,R["M-SEARCH"],R.NOTIFY,R.SUBSCRIBE,R.UNSUBSCRIBE,R.PATCH,R.PURGE,R.MKCALENDAR,R.LINK,R.UNLINK,R.PRI,R.SOURCE];h.METHODS_ICE=[R.SOURCE];h.METHODS_RTSP=[R.OPTIONS,R.DESCRIBE,R.ANNOUNCE,R.SETUP,R.PLAY,R.PAUSE,R.TEARDOWN,R.GET_PARAMETER,R.SET_PARAMETER,R.REDIRECT,R.RECORD,R.FLUSH,R.GET,R.POST];h.METHOD_MAP=Eh.enumToMap(R);h.H_METHOD_MAP={};Object.keys(h.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(h.H_METHOD_MAP[e]=h.METHOD_MAP[e])});var hh;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(hh=h.FINISH||(h.FINISH={}));h.ALPHA=[];for(let e=65;e<=90;e++)h.ALPHA.push(String.fromCharCode(e)),h.ALPHA.push(String.fromCharCode(e+32));h.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};h.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};h.NUM=["0","1","2","3","4","5","6","7","8","9"];h.ALPHANUM=h.ALPHA.concat(h.NUM);h.MARK=["-","_",".","!","~","*","'","(",")"];h.USERINFO_CHARS=h.ALPHANUM.concat(h.MARK).concat(["%",";",":","&","=","+","$",","]);h.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(h.ALPHANUM);h.URL_CHAR=h.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)h.URL_CHAR.push(e);h.HEX=h.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);h.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(h.ALPHANUM);h.TOKEN=h.STRICT_TOKEN.concat([" "]);h.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&h.HEADER_CHARS.push(e);h.CONNECTION_TOKEN_CHARS=h.HEADER_CHARS.filter(e=>e!==44);h.MAJOR=h.NUM_MAP;h.MINOR=h.MAJOR;var Z1;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(Z1=h.HEADER_STATE||(h.HEADER_STATE={}));h.SPECIAL_HEADERS={connection:Z1.CONNECTION,"content-length":Z1.CONTENT_LENGTH,"proxy-connection":Z1.CONNECTION,"transfer-encoding":Z1.TRANSFER_ENCODING,upgrade:Z1.UPGRADE}});var nd=E((CS,yg)=>{"use strict";var j1=q(),{kBodyUsed:rr}=ie(),sd=require("assert"),{InvalidArgumentError:Ih}=ee(),fh=require("events"),wh=[300,301,302,303,307,308],fg=Symbol("body"),Vi=class{constructor(A){this[fg]=A,this[rr]=!1}async*[Symbol.asyncIterator](){sd(!this[rr],"disturbed"),this[rr]=!0,yield*this[fg]}},id=class{constructor(A,t,a,r){if(t!=null&&(!Number.isInteger(t)||t<0))throw new Ih("maxRedirections must be a positive number");j1.validateHandler(r,a.method,a.upgrade),this.dispatch=A,this.location=null,this.abort=null,this.opts={...a,maxRedirections:0},this.maxRedirections=t,this.handler=r,this.history=[],j1.isStream(this.opts.body)?(j1.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){sd(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[rr]=!1,fh.prototype.on.call(this.opts.body,"data",function(){this[rr]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new Vi(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&j1.isIterable(this.opts.body)&&(this.opts.body=new Vi(this.opts.body))}onConnect(A){this.abort=A,this.handler.onConnect(A,{history:this.history})}onUpgrade(A,t,a){this.handler.onUpgrade(A,t,a)}onError(A){this.handler.onError(A)}onHeaders(A,t,a,r){if(this.location=this.history.length>=this.maxRedirections||j1.isDisturbed(this.opts.body)?null:yh(A,t),this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(A,t,a,r);let{origin:i,pathname:s,search:n}=j1.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),o=n?`${s}${n}`:s;this.opts.headers=Dh(this.opts.headers,A===303,this.opts.origin!==i),this.opts.path=o,this.opts.origin=i,this.opts.maxRedirections=0,this.opts.query=null,A===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(A){if(!this.location)return this.handler.onData(A)}onComplete(A){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(A)}onBodySent(A){this.handler.onBodySent&&this.handler.onBodySent(A)}};function yh(e,A){if(wh.indexOf(e)===-1)return null;for(let t=0;t<A.length;t+=2)if(A[t].toString().toLowerCase()==="location")return A[t+1]}function wg(e,A,t){return e.length===4&&e.toString().toLowerCase()==="host"||A&&e.toString().toLowerCase().indexOf("content-")===0||t&&e.length===13&&e.toString().toLowerCase()==="authorization"||t&&e.length===6&&e.toString().toLowerCase()==="cookie"}function Dh(e,A,t){let a=[];if(Array.isArray(e))for(let r=0;r<e.length;r+=2)wg(e[r],A,t)||a.push(e[r],e[r+1]);else if(e&&typeof e=="object")for(let r of Object.keys(e))wg(r,A,t)||a.push(r,e[r]);else sd(e==null,"headers must be an object or an array");return a}yg.exports=id});var Yi=E((BS,Dg)=>{"use strict";var Rh=nd();function vh({maxRedirections:e}){return A=>function(a,r){let{maxRedirections:i=e}=a;if(!i)return A(a,r);let s=new Rh(A,i,a,r);return a={...a,maxRedirections:0},A(a,s)}}Dg.exports=vh});var od=E((hS,Rg)=>{Rg.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="});var Ng=E((IS,vg)=>{vg.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="});var pr=E((fS,Wg)=>{"use strict";var D=require("assert"),Fg=require("net"),L=q(),dd=i4(),Nh=ug(),Sh=tr(),{RequestContentLengthMismatchError:t1,ResponseContentLengthMismatchError:bh,InvalidArgumentError:he,RequestAbortedError:kg,HeadersTimeoutError:Fh,HeadersOverflowError:kh,SocketError:qi,InformationalError:a1,BodyTimeoutError:Lh,HTTPParserError:Uh,ResponseExceededMaxSizeError:Th,ClientDestroyedError:Mh}=ee(),Vh=ar(),{kUrl:wA,kReset:xe,kServerName:Ut,kClient:Pi,kBusy:ld,kParser:te,kConnect:Yh,kBlocking:z1,kResuming:r1,kRunning:ue,kPending:K1,kSize:i1,kWriting:mt,kQueue:pe,kConnected:Jh,kConnecting:X1,kNeedDrain:Mt,kNoRef:ir,kKeepAliveDefaultTimeout:gd,kHostHeader:Lg,kPendingIdx:yA,kRunningIdx:ce,kError:oA,kPipelining:Vt,kSocket:nA,kKeepAliveTimeoutValue:or,kMaxHeadersSize:xi,kKeepAliveMaxTimeout:Ug,kKeepAliveTimeoutThreshold:Tg,kHeadersTimeout:Mg,kBodyTimeout:Vg,kStrictContentLength:Hi,kConnector:sr,kMaxRedirections:Gh,kMaxRequests:dr,kCounter:Yg,kClose:xh,kDestroy:_h,kDispatch:qh,kInterceptors:Hh,kLocalAddress:nr,kMaxResponseSize:Jg}=ie(),Ji=Buffer[Symbol.species],Tt=Symbol("kClosedResolve"),Ye={};try{let e=require("diagnostics_channel");Ye.sendHeaders=e.channel("undici:client:sendHeaders"),Ye.beforeConnect=e.channel("undici:client:beforeConnect"),Ye.connectError=e.channel("undici:client:connectError"),Ye.connected=e.channel("undici:client:connected")}catch{Ye.sendHeaders={hasSubscribers:!1},Ye.beforeConnect={hasSubscribers:!1},Ye.connectError={hasSubscribers:!1},Ye.connected={hasSubscribers:!1}}var cd=class extends Sh{constructor(A,{interceptors:t,maxHeaderSize:a,headersTimeout:r,socketTimeout:i,requestTimeout:s,connectTimeout:n,bodyTimeout:o,idleTimeout:d,keepAlive:l,keepAliveTimeout:p,maxKeepAliveTimeout:g,keepAliveMaxTimeout:c,keepAliveTimeoutThreshold:u,socketPath:Q,pipelining:C,tls:m,strictContentLength:B,maxCachedSessions:w,maxRedirections:I,connect:y,maxRequestsPerClient:S,localAddress:k,maxResponseSize:x,autoSelectFamily:we,autoSelectFamilyAttemptTimeout:Ce}={}){if(super(),l!==void 0)throw new he("unsupported keepAlive, use pipelining=0 instead");if(i!==void 0)throw new he("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(s!==void 0)throw new he("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(d!==void 0)throw new he("unsupported idleTimeout, use keepAliveTimeout instead");if(g!==void 0)throw new he("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(a!=null&&!Number.isFinite(a))throw new he("invalid maxHeaderSize");if(Q!=null&&typeof Q!="string")throw new he("invalid socketPath");if(n!=null&&(!Number.isFinite(n)||n<0))throw new he("invalid connectTimeout");if(p!=null&&(!Number.isFinite(p)||p<=0))throw new he("invalid keepAliveTimeout");if(c!=null&&(!Number.isFinite(c)||c<=0))throw new he("invalid keepAliveMaxTimeout");if(u!=null&&!Number.isFinite(u))throw new he("invalid keepAliveTimeoutThreshold");if(r!=null&&(!Number.isInteger(r)||r<0))throw new he("headersTimeout must be a positive integer or zero");if(o!=null&&(!Number.isInteger(o)||o<0))throw new he("bodyTimeout must be a positive integer or zero");if(y!=null&&typeof y!="function"&&typeof y!="object")throw new he("connect must be a function or an object");if(I!=null&&(!Number.isInteger(I)||I<0))throw new he("maxRedirections must be a positive number");if(S!=null&&(!Number.isInteger(S)||S<0))throw new he("maxRequestsPerClient must be a positive number");if(k!=null&&(typeof k!="string"||Fg.isIP(k)===0))throw new he("localAddress must be valid string IP address");if(x!=null&&(!Number.isInteger(x)||x<-1))throw new he("maxResponseSize must be a positive number");if(Ce!=null&&(!Number.isInteger(Ce)||Ce<-1))throw new he("autoSelectFamilyAttemptTimeout must be a positive number");typeof y!="function"&&(y=Vh({...m,maxCachedSessions:w,socketPath:Q,timeout:n,...L.nodeHasAutoSelectFamily&&we?{autoSelectFamily:we,autoSelectFamilyAttemptTimeout:Ce}:void 0,...y})),this[Hh]=t&&t.Client&&Array.isArray(t.Client)?t.Client:[Oh({maxRedirections:I})],this[wA]=L.parseOrigin(A),this[sr]=y,this[nA]=null,this[Vt]=C??1,this[xi]=a||16384,this[gd]=p??4e3,this[Ug]=c??6e5,this[Tg]=u??1e3,this[or]=this[gd],this[Ut]=null,this[nr]=k??null,this[r1]=0,this[Mt]=0,this[Lg]=`host: ${this[wA].hostname}${this[wA].port?`:${this[wA].port}`:""}\r +`,this[Vg]=o??3e5,this[Mg]=r??3e5,this[Hi]=B??!0,this[Gh]=I,this[dr]=S,this[Tt]=null,this[Jg]=x>-1?x:-1,this[pe]=[],this[ce]=0,this[yA]=0}get pipelining(){return this[Vt]}set pipelining(A){this[Vt]=A,DA(this,!0)}get[K1](){return this[pe].length-this[yA]}get[ue](){return this[yA]-this[ce]}get[i1](){return this[pe].length-this[ce]}get[Jh](){return!!this[nA]&&!this[X1]&&!this[nA].destroyed}get[ld](){let A=this[nA];return A&&(A[xe]||A[mt]||A[z1])||this[i1]>=(this[Vt]||1)||this[K1]>0}[Yh](A){Pg(this),this.once("connect",A)}[qh](A,t){let a=A.origin||this[wA].origin,r=new Nh(a,A,t);return this[pe].push(r),this[r1]||(L.bodyLength(r.body)==null&&L.isIterable(r.body)?(this[r1]=1,process.nextTick(DA,this)):DA(this,!0)),this[r1]&&this[Mt]!==2&&this[ld]&&(this[Mt]=2),this[Mt]<2}async[xh](){return new Promise(A=>{this[i1]?this[Tt]=A:A(null)})}async[_h](A){return new Promise(t=>{let a=this[pe].splice(this[yA]);for(let i=0;i<a.length;i++){let s=a[i];$A(this,s,A)}let r=()=>{this[Tt]&&(this[Tt](),this[Tt]=null),t()};this[nA]?L.destroy(this[nA].on("close",r),A):queueMicrotask(r),DA(this)})}},XA=Ig(),Oh=Yi(),Ph=Buffer.alloc(0);async function Wh(){let e=process.env.JEST_WORKER_ID?od():void 0,A;try{A=await WebAssembly.compile(Buffer.from(Ng(),"base64"))}catch{A=await WebAssembly.compile(Buffer.from(e||od(),"base64"))}return await WebAssembly.instantiate(A,{env:{wasm_on_url:(t,a,r)=>0,wasm_on_status:(t,a,r)=>{D.strictEqual(Ie.ptr,t);let i=a-KA+zA.byteOffset;return Ie.onStatus(new Ji(zA.buffer,i,r))||0},wasm_on_message_begin:t=>(D.strictEqual(Ie.ptr,t),Ie.onMessageBegin()||0),wasm_on_header_field:(t,a,r)=>{D.strictEqual(Ie.ptr,t);let i=a-KA+zA.byteOffset;return Ie.onHeaderField(new Ji(zA.buffer,i,r))||0},wasm_on_header_value:(t,a,r)=>{D.strictEqual(Ie.ptr,t);let i=a-KA+zA.byteOffset;return Ie.onHeaderValue(new Ji(zA.buffer,i,r))||0},wasm_on_headers_complete:(t,a,r,i)=>(D.strictEqual(Ie.ptr,t),Ie.onHeadersComplete(a,!!r,!!i)||0),wasm_on_body:(t,a,r)=>{D.strictEqual(Ie.ptr,t);let i=a-KA+zA.byteOffset;return Ie.onBody(new Ji(zA.buffer,i,r))||0},wasm_on_message_complete:t=>(D.strictEqual(Ie.ptr,t),Ie.onMessageComplete()||0)}})}var pd=null,ud=Wh();ud.catch();var Ie=null,zA=null,Gi=0,KA=null,$1=1,_i=2,Ed=3,Qd=class{constructor(A,t,{exports:a}){D(Number.isFinite(A[xi])&&A[xi]>0),this.llhttp=a,this.ptr=this.llhttp.llhttp_alloc(XA.TYPE.RESPONSE),this.client=A,this.socket=t,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=A[xi],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=A[Jg]}setTimeout(A,t){this.timeoutType=t,A!==this.timeoutValue?(dd.clearTimeout(this.timeout),A?(this.timeout=dd.setTimeout(Zh,A,this),this.timeout.unref&&this.timeout.unref()):this.timeout=null,this.timeoutValue=A):this.timeout&&this.timeout.refresh&&this.timeout.refresh()}resume(){this.socket.destroyed||!this.paused||(D(this.ptr!=null),D(Ie==null),this.llhttp.llhttp_resume(this.ptr),D(this.timeoutType===_i),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||Ph),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let A=this.socket.read();if(A===null)break;this.execute(A)}}execute(A){D(this.ptr!=null),D(Ie==null),D(!this.paused);let{socket:t,llhttp:a}=this;A.length>Gi&&(KA&&a.free(KA),Gi=Math.ceil(A.length/4096)*4096,KA=a.malloc(Gi)),new Uint8Array(a.memory.buffer,KA,Gi).set(A);try{let r;try{zA=A,Ie=this,r=a.llhttp_execute(this.ptr,KA,A.length)}catch(s){throw s}finally{Ie=null,zA=null}let i=a.llhttp_get_error_pos(this.ptr)-KA;if(r===XA.ERROR.PAUSED_UPGRADE)this.onUpgrade(A.slice(i));else if(r===XA.ERROR.PAUSED)this.paused=!0,t.unshift(A.slice(i));else if(r!==XA.ERROR.OK){let s=a.llhttp_get_error_reason(this.ptr),n="";if(s){let o=new Uint8Array(a.memory.buffer,s).indexOf(0);n="Response does not match the HTTP/1.1 protocol ("+Buffer.from(a.memory.buffer,s,o).toString()+")"}throw new Uh(n,XA.ERROR[r],A.slice(i))}}catch(r){L.destroy(t,r)}}destroy(){D(this.ptr!=null),D(Ie==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,dd.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(A){this.statusText=A.toString()}onMessageBegin(){let{socket:A,client:t}=this;if(A.destroyed||!t[pe][t[ce]])return-1}onHeaderField(A){let t=this.headers.length;(t&1)===0?this.headers.push(A):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]),this.trackHeader(A.length)}onHeaderValue(A){let t=this.headers.length;(t&1)===1?(this.headers.push(A),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]);let a=this.headers[t-2];a.length===10&&a.toString().toLowerCase()==="keep-alive"?this.keepAlive+=A.toString():a.length===10&&a.toString().toLowerCase()==="connection"?this.connection+=A.toString():a.length===14&&a.toString().toLowerCase()==="content-length"&&(this.contentLength+=A.toString()),this.trackHeader(A.length)}trackHeader(A){this.headersSize+=A,this.headersSize>=this.headersMaxSize&&L.destroy(this.socket,new kh)}onUpgrade(A){let{upgrade:t,client:a,socket:r,headers:i,statusCode:s}=this;D(t);let n=a[pe][a[ce]];D(n),D(!r.destroyed),D(r===a[nA]),D(!this.paused),D(n.upgrade||n.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,D(this.headers.length%2===0),this.headers=[],this.headersSize=0,r.unshift(A),r[te].destroy(),r[te]=null,r[Pi]=null,r[oA]=null,r.removeListener("error",xg).removeListener("readable",Gg).removeListener("end",Hg).removeListener("close",Og),a[nA]=null,a[pe][a[ce]++]=null,a.emit("disconnect",a[wA],[a],new a1("upgrade"));try{n.onUpgrade(s,i,r)}catch(o){L.destroy(r,o)}DA(a)}onHeadersComplete(A,t,a){let{client:r,socket:i,headers:s,statusText:n}=this;if(i.destroyed)return-1;let o=r[pe][r[ce]];if(!o)return-1;if(D(!this.upgrade),D(this.statusCode<200),A===100)return L.destroy(i,new qi("bad response",L.getSocketInfo(i))),-1;if(t&&!o.upgrade)return L.destroy(i,new qi("bad upgrade",L.getSocketInfo(i))),-1;if(D.strictEqual(this.timeoutType,$1),this.statusCode=A,this.shouldKeepAlive=a||o.method==="HEAD"&&!i[xe]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let l=o.bodyTimeout!=null?o.bodyTimeout:r[Vg];this.setTimeout(l,_i)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(o.method==="CONNECT")return D(r[ue]===1),this.upgrade=!0,2;if(t)return D(r[ue]===1),this.upgrade=!0,2;if(D(this.headers.length%2===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&r[Vt]){let l=this.keepAlive?L.parseKeepAliveTimeout(this.keepAlive):null;if(l!=null){let p=Math.min(l-r[Tg],r[Ug]);p<=0?i[xe]=!0:r[or]=p}else r[or]=r[gd]}else i[xe]=!0;let d;try{d=o.onHeaders(A,s,this.resume,n)===!1}catch(l){return L.destroy(i,l),-1}return o.method==="HEAD"||A<200?1:(i[z1]&&(i[z1]=!1,DA(r)),d?XA.ERROR.PAUSED:0)}onBody(A){let{client:t,socket:a,statusCode:r,maxResponseSize:i}=this;if(a.destroyed)return-1;let s=t[pe][t[ce]];if(D(s),D.strictEqual(this.timeoutType,_i),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),D(r>=200),i>-1&&this.bytesRead+A.length>i)return L.destroy(a,new Th),-1;this.bytesRead+=A.length;try{if(s.onData(A)===!1)return XA.ERROR.PAUSED}catch(n){return L.destroy(a,n),-1}}onMessageComplete(){let{client:A,socket:t,statusCode:a,upgrade:r,headers:i,contentLength:s,bytesRead:n,shouldKeepAlive:o}=this;if(t.destroyed&&(!a||o))return-1;if(r)return;let d=A[pe][A[ce]];if(D(d),D(a>=100),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",D(this.headers.length%2===0),this.headers=[],this.headersSize=0,!(a<200)){if(d.method!=="HEAD"&&s&&n!==parseInt(s,10))return L.destroy(t,new bh),-1;try{d.onComplete(i)}catch(l){$A(A,d,l)}if(A[pe][A[ce]++]=null,t[mt])return D.strictEqual(A[ue],0),L.destroy(t,new a1("reset")),XA.ERROR.PAUSED;if(o){if(t[xe]&&A[ue]===0)return L.destroy(t,new a1("reset")),XA.ERROR.PAUSED;A[Vt]===1?setImmediate(DA,A):DA(A)}else return L.destroy(t,new a1("reset")),XA.ERROR.PAUSED}}};function Zh(e){let{socket:A,timeoutType:t,client:a}=e;t===$1?(!A[mt]||A.writableNeedDrain||a[ue]>1)&&(D(!e.paused,"cannot be paused while waiting for headers"),L.destroy(A,new Fh)):t===_i?e.paused||L.destroy(A,new Lh):t===Ed&&(D(a[ue]===0&&a[or]),L.destroy(A,new a1("socket idle timeout")))}function Gg(){let{[te]:e}=this;e.readMore()}function xg(e){let{[te]:A}=this;if(D(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),e.code==="ECONNRESET"&&A.statusCode&&!A.shouldKeepAlive){A.onMessageComplete();return}this[oA]=e,qg(this[Pi],e)}function qg(e,A){if(e[ue]===0&&A.code!=="UND_ERR_INFO"&&A.code!=="UND_ERR_SOCKET"){D(e[yA]===e[ce]);let t=e[pe].splice(e[ce]);for(let a=0;a<t.length;a++){let r=t[a];$A(e,r,A)}D(e[i1]===0)}}function Hg(){let{[te]:e}=this;if(e.statusCode&&!e.shouldKeepAlive){e.onMessageComplete();return}L.destroy(this,new qi("other side closed",L.getSocketInfo(this)))}function Og(){let{[Pi]:e}=this;!this[oA]&&this[te].statusCode&&!this[te].shouldKeepAlive&&this[te].onMessageComplete(),this[te].destroy(),this[te]=null;let A=this[oA]||new qi("closed",L.getSocketInfo(this));if(e[nA]=null,e.destroyed){D(e[K1]===0);let t=e[pe].splice(e[ce]);for(let a=0;a<t.length;a++){let r=t[a];$A(e,r,A)}}else if(e[ue]>0&&A.code!=="UND_ERR_INFO"){let t=e[pe][e[ce]];e[pe][e[ce]++]=null,$A(e,t,A)}e[yA]=e[ce],D(e[ue]===0),e.emit("disconnect",e[wA],[e],A),DA(e)}async function Pg(e){D(!e[X1]),D(!e[nA]);let{host:A,hostname:t,protocol:a,port:r}=e[wA];if(t[0]==="["){let i=t.indexOf("]");D(i!==-1);let s=t.substr(1,i-1);D(Fg.isIP(s)),t=s}e[X1]=!0,Ye.beforeConnect.hasSubscribers&&Ye.beforeConnect.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[Ut],localAddress:e[nr]},connector:e[sr]});try{let i=await new Promise((s,n)=>{e[sr]({host:A,hostname:t,protocol:a,port:r,servername:e[Ut],localAddress:e[nr]},(o,d)=>{o?n(o):s(d)})});if(e.destroyed){L.destroy(i.on("error",()=>{}),new Mh);return}pd||(pd=await ud,ud=null),e[X1]=!1,D(i),i[ir]=!1,i[mt]=!1,i[xe]=!1,i[z1]=!1,i[oA]=null,i[te]=new Qd(e,i,pd),i[Pi]=e,i[Yg]=0,i[dr]=e[dr],i.on("error",xg).on("readable",Gg).on("end",Hg).on("close",Og),e[nA]=i,Ye.connected.hasSubscribers&&Ye.connected.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[Ut],localAddress:e[nr]},connector:e[sr],socket:i}),e.emit("connect",e[wA],[e])}catch(i){if(e.destroyed)return;if(e[X1]=!1,Ye.connectError.hasSubscribers&&Ye.connectError.publish({connectParams:{host:A,hostname:t,protocol:a,port:r,servername:e[Ut],localAddress:e[nr]},connector:e[sr],error:i}),i.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(D(e[ue]===0);e[K1]>0&&e[pe][e[yA]].servername===e[Ut];){let s=e[pe][e[yA]++];$A(e,s,i)}else qg(e,i);e.emit("connectionError",e[wA],[e],i)}DA(e)}function Sg(e){e[Mt]=0,e.emit("drain",e[wA],[e])}function DA(e,A){e[r1]!==2&&(e[r1]=2,jh(e,A),e[r1]=0,e[ce]>256&&(e[pe].splice(0,e[ce]),e[yA]-=e[ce],e[ce]=0))}function jh(e,A){for(;;){if(e.destroyed){D(e[K1]===0);return}if(e[Tt]&&!e[i1]){e[Tt](),e[Tt]=null;return}let t=e[nA];if(t&&!t.destroyed){if(e[i1]===0?!t[ir]&&t.unref&&(t.unref(),t[ir]=!0):t[ir]&&t.ref&&(t.ref(),t[ir]=!1),e[i1]===0)t[te].timeoutType!==Ed&&t[te].setTimeout(e[or],Ed);else if(e[ue]>0&&t[te].statusCode<200&&t[te].timeoutType!==$1){let r=e[pe][e[ce]],i=r.headersTimeout!=null?r.headersTimeout:e[Mg];t[te].setTimeout(i,$1)}}if(e[ld])e[Mt]=2;else if(e[Mt]===2){A?(e[Mt]=1,process.nextTick(Sg,e)):Sg(e);continue}if(e[K1]===0||e[ue]>=(e[Vt]||1))return;let a=e[pe][e[yA]];if(e[wA].protocol==="https:"&&e[Ut]!==a.servername){if(e[ue]>0)return;if(e[Ut]=a.servername,t&&t.servername!==a.servername){L.destroy(t,new a1("servername changed"));return}}if(e[X1])return;if(!t){Pg(e);return}if(t.destroyed||t[mt]||t[xe]||t[z1]||e[ue]>0&&!a.idempotent||e[ue]>0&&(a.upgrade||a.method==="CONNECT")||(L.isStream(a.body)&&L.bodyLength(a.body)===0&&(a.body.on("data",function(){D(!1)}).on("error",function(r){$A(e,a,r)}).on("end",function(){L.destroy(this)}),a.body=null),e[ue]>0&&(L.isStream(a.body)||L.isAsyncIterable(a.body))))return;!a.aborted&&Xh(e,a)?e[yA]++:e[pe].splice(e[yA],1)}}function Xh(e,A){let{body:t,method:a,path:r,host:i,upgrade:s,headers:n,blocking:o,reset:d}=A,l=a==="PUT"||a==="POST"||a==="PATCH";t&&typeof t.read=="function"&&t.read(0);let p=L.bodyLength(t);if(p===null&&(p=A.contentLength),p===0&&!l&&(p=null),A.contentLength!==null&&A.contentLength!==p){if(e[Hi])return $A(e,A,new t1),!1;process.emitWarning(new t1)}let g=e[nA];try{A.onConnect(u=>{A.aborted||A.completed||($A(e,A,u||new kg),L.destroy(g,new a1("aborted")))})}catch(u){$A(e,A,u)}if(A.aborted)return!1;a==="HEAD"&&(g[xe]=!0),(s||a==="CONNECT")&&(g[xe]=!0),d!=null&&(g[xe]=d),e[dr]&&g[Yg]++>=e[dr]&&(g[xe]=!0),o&&(g[z1]=!0);let c=`${a} ${r} HTTP/1.1\r `;return typeof i=="string"?c+=`host: ${i}\r -`:c+=e[Hg],s?c+=`connection: upgrade\r +`:c+=e[Lg],s?c+=`connection: upgrade\r upgrade: ${s}\r -`:e[xt]&&!g[xe]?c+=`connection: keep-alive\r +`:e[Vt]&&!g[xe]?c+=`connection: keep-alive\r `:c+=`connection: close\r `,n&&(c+=n),Ye.sendHeaders.hasSubscribers&&Ye.sendHeaders.publish({request:A,headers:c,socket:g}),t?L.isBuffer(t)?(D(p===t.byteLength,"buffer body must have content length"),g.cork(),g.write(`${c}content-length: ${p}\r \r -`,"latin1"),g.write(t),g.uncork(),A.onBodySent(t),A.onRequestSent(),l||(g[xe]=!0)):L.isBlobLike(t)?typeof t.stream=="function"?Gg({body:t.stream(),client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):hI({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):L.isStream(t)?BI({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):L.isIterable(t)?Gg({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):D(!1):(p===0?g.write(`${c}content-length: 0\r +`,"latin1"),g.write(t),g.uncork(),A.onBodySent(t),A.onRequestSent(),l||(g[xe]=!0)):L.isBlobLike(t)?typeof t.stream=="function"?bg({body:t.stream(),client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):Kh({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):L.isStream(t)?zh({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):L.isIterable(t)?bg({body:t,client:e,request:A,socket:g,contentLength:p,header:c,expectsPayload:l}):D(!1):(p===0?g.write(`${c}content-length: 0\r \r `,"latin1"):(D(p===null,"no body must not have content length"),g.write(`${c}\r -`,"latin1")),A.onRequestSent()),!0}function BI({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r!==0||A[ue]===0,"stream body cannot be pipelined");let n=!1,o=new Ki({socket:a,request:t,contentLength:r,client:A,expectsPayload:s,header:i}),d=function(c){if(!n)try{!o.write(c)&&this.pause&&this.pause()}catch(u){L.destroy(this,u)}},l=function(){n||e.resume&&e.resume()},p=function(){g(new qg)},g=function(c){if(!n){if(n=!0,D(a.destroyed||a[It]&&A[ue]<=1),a.off("drain",l).off("error",g),e.removeListener("data",d).removeListener("end",g).removeListener("error",g).removeListener("close",p),!c)try{o.end()}catch(u){c=u}o.destroy(c),c&&(c.code!=="UND_ERR_INFO"||c.message!=="reset")?L.destroy(e,c):L.destroy(e)}};e.on("data",d).on("end",g).on("error",g).on("close",p),e.resume&&e.resume(),a.on("drain",l).on("error",g)}async function hI({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r===e.size,"blob body must have content length");try{if(r!=null&&r!==e.size)throw new s1;let n=Buffer.from(await e.arrayBuffer());a.cork(),a.write(`${i}content-length: ${r}\r +`,"latin1")),A.onRequestSent()),!0}function zh({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r!==0||A[ue]===0,"stream body cannot be pipelined");let n=!1,o=new Oi({socket:a,request:t,contentLength:r,client:A,expectsPayload:s,header:i}),d=function(c){if(!n)try{!o.write(c)&&this.pause&&this.pause()}catch(u){L.destroy(this,u)}},l=function(){n||e.resume&&e.resume()},p=function(){g(new kg)},g=function(c){if(!n){if(n=!0,D(a.destroyed||a[mt]&&A[ue]<=1),a.off("drain",l).off("error",g),e.removeListener("data",d).removeListener("end",g).removeListener("error",g).removeListener("close",p),!c)try{o.end()}catch(u){c=u}o.destroy(c),c&&(c.code!=="UND_ERR_INFO"||c.message!=="reset")?L.destroy(e,c):L.destroy(e)}};e.on("data",d).on("end",g).on("error",g).on("close",p),e.resume&&e.resume(),a.on("drain",l).on("error",g)}async function Kh({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r===e.size,"blob body must have content length");try{if(r!=null&&r!==e.size)throw new t1;let n=Buffer.from(await e.arrayBuffer());a.cork(),a.write(`${i}content-length: ${r}\r \r -`,"latin1"),a.write(n),a.uncork(),t.onBodySent(n),t.onRequestSent(),s||(a[xe]=!0),vA(A)}catch(n){L.destroy(a,n)}}async function Gg({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r!==0||A[ue]===0,"iterator body cannot be pipelined");let n=null;function o(){if(n){let p=n;n=null,p()}}let d=()=>new Promise((p,g)=>{D(n===null),a[oA]?g(a[oA]):n=p});a.on("close",o).on("drain",o);let l=new Ki({socket:a,request:t,contentLength:r,client:A,expectsPayload:s,header:i});try{for await(let p of e){if(a[oA])throw a[oA];l.write(p)||await d()}l.end()}catch(p){l.destroy(p)}finally{a.off("close",o).off("drain",o)}}var Ki=class{constructor({socket:A,request:t,contentLength:a,client:r,expectsPayload:i,header:s}){this.socket=A,this.request=t,this.contentLength=a,this.client=r,this.bytesWritten=0,this.expectsPayload=i,this.header=s,A[It]=!0}write(A){let{socket:t,request:a,contentLength:r,client:i,bytesWritten:s,expectsPayload:n,header:o}=this;if(t[oA])throw t[oA];if(t.destroyed)return!1;let d=Buffer.byteLength(A);if(!d)return!0;if(r!==null&&s+d>r){if(i[zi])throw new s1;process.emitWarning(new s1)}t.cork(),s===0&&(n||(t[xe]=!0),r===null?t.write(`${o}transfer-encoding: chunked\r +`,"latin1"),a.write(n),a.uncork(),t.onBodySent(n),t.onRequestSent(),s||(a[xe]=!0),DA(A)}catch(n){L.destroy(a,n)}}async function bg({body:e,client:A,request:t,socket:a,contentLength:r,header:i,expectsPayload:s}){D(r!==0||A[ue]===0,"iterator body cannot be pipelined");let n=null;function o(){if(n){let p=n;n=null,p()}}let d=()=>new Promise((p,g)=>{D(n===null),a[oA]?g(a[oA]):n=p});a.on("close",o).on("drain",o);let l=new Oi({socket:a,request:t,contentLength:r,client:A,expectsPayload:s,header:i});try{for await(let p of e){if(a[oA])throw a[oA];l.write(p)||await d()}l.end()}catch(p){l.destroy(p)}finally{a.off("close",o).off("drain",o)}}var Oi=class{constructor({socket:A,request:t,contentLength:a,client:r,expectsPayload:i,header:s}){this.socket=A,this.request=t,this.contentLength=a,this.client=r,this.bytesWritten=0,this.expectsPayload=i,this.header=s,A[mt]=!0}write(A){let{socket:t,request:a,contentLength:r,client:i,bytesWritten:s,expectsPayload:n,header:o}=this;if(t[oA])throw t[oA];if(t.destroyed)return!1;let d=Buffer.byteLength(A);if(!d)return!0;if(r!==null&&s+d>r){if(i[Hi])throw new t1;process.emitWarning(new t1)}t.cork(),s===0&&(n||(t[xe]=!0),r===null?t.write(`${o}transfer-encoding: chunked\r `,"latin1"):t.write(`${o}content-length: ${r}\r \r `,"latin1")),r===null&&t.write(`\r ${d.toString(16)}\r -`,"latin1"),this.bytesWritten+=d;let l=t.write(A);return t.uncork(),a.onBodySent(A),l||t[te].timeout&&t[te].timeoutType===aa&&t[te].timeout.refresh&&t[te].timeout.refresh(),l}end(){let{socket:A,contentLength:t,client:a,bytesWritten:r,expectsPayload:i,header:s,request:n}=this;if(n.onRequestSent(),A[It]=!1,A[oA])throw A[oA];if(!A.destroyed){if(r===0?i?A.write(`${s}content-length: 0\r +`,"latin1"),this.bytesWritten+=d;let l=t.write(A);return t.uncork(),a.onBodySent(A),l||t[te].timeout&&t[te].timeoutType===$1&&t[te].timeout.refresh&&t[te].timeout.refresh(),l}end(){let{socket:A,contentLength:t,client:a,bytesWritten:r,expectsPayload:i,header:s,request:n}=this;if(n.onRequestSent(),A[mt]=!1,A[oA])throw A[oA];if(!A.destroyed){if(r===0?i?A.write(`${s}content-length: 0\r \r `,"latin1"):A.write(`${s}\r `,"latin1"):t===null&&A.write(`\r 0\r \r -`,"latin1"),t!==null&&r!==t){if(a[zi])throw new s1;process.emitWarning(new s1)}A[te].timeout&&A[te].timeoutType===aa&&A[te].timeout.refresh&&A[te].timeout.refresh(),vA(a)}}destroy(A){let{socket:t,client:a}=this;t[It]=!1,A&&(D(a[ue]<=1,"pipeline should only contain this request"),L.destroy(t,A))}};function At(e,A,t){try{A.onError(t),D(A.aborted)}catch(a){e.emit("error",a)}}a6.exports=fd});var i6=E((lS,r6)=>{"use strict";var es=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(A){this.list[this.top]=A,this.top=this.top+1&2047}shift(){let A=this.list[this.bottom];return A===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,A)}};r6.exports=class{constructor(){this.head=this.tail=new es}isEmpty(){return this.head.isEmpty()}push(A){this.head.isFull()&&(this.head=this.head.next=new es),this.head.push(A)}shift(){let A=this.tail,t=A.shift();return A.isEmpty()&&A.next!==null&&(this.tail=A.next),t}}});var n6=E((gS,s6)=>{var{kFree:II,kConnected:fI,kPending:wI,kQueued:yI,kRunning:DI,kSize:vI}=ie(),p1=Symbol("pool"),vd=class{constructor(A){this[p1]=A}get connected(){return this[p1][fI]}get free(){return this[p1][II]}get pending(){return this[p1][wI]}get queued(){return this[p1][yI]}get running(){return this[p1][DI]}get size(){return this[p1][vI]}};s6.exports=vd});var kd=E((cS,C6)=>{"use strict";var RI=or(),NI=i6(),{kConnected:Rd,kSize:o6,kRunning:d6,kPending:p6,kQueued:Cr,kBusy:bI,kFree:SI,kUrl:FI,kClose:kI,kDestroy:LI,kDispatch:UI}=ie(),TI=n6(),Ze=Symbol("clients"),qe=Symbol("needDrain"),mr=Symbol("queue"),Nd=Symbol("closed resolve"),bd=Symbol("onDrain"),l6=Symbol("onConnect"),g6=Symbol("onDisconnect"),c6=Symbol("onConnectionError"),Sd=Symbol("get dispatcher"),E6=Symbol("add client"),Q6=Symbol("remove client"),u6=Symbol("stats"),Fd=class extends RI{constructor(){super(),this[mr]=new NI,this[Ze]=[],this[Cr]=0;let A=this;this[bd]=function(a,r){let i=A[mr],s=!1;for(;!s;){let n=i.shift();if(!n)break;A[Cr]--,s=!this.dispatch(n.opts,n.handler)}this[qe]=s,!this[qe]&&A[qe]&&(A[qe]=!1,A.emit("drain",a,[A,...r])),A[Nd]&&i.isEmpty()&&Promise.all(A[Ze].map(n=>n.close())).then(A[Nd])},this[l6]=(t,a)=>{A.emit("connect",t,[A,...a])},this[g6]=(t,a,r)=>{A.emit("disconnect",t,[A,...a],r)},this[c6]=(t,a,r)=>{A.emit("connectionError",t,[A,...a],r)},this[u6]=new TI(this)}get[bI](){return this[qe]}get[Rd](){return this[Ze].filter(A=>A[Rd]).length}get[SI](){return this[Ze].filter(A=>A[Rd]&&!A[qe]).length}get[p6](){let A=this[Cr];for(let{[p6]:t}of this[Ze])A+=t;return A}get[d6](){let A=0;for(let{[d6]:t}of this[Ze])A+=t;return A}get[o6](){let A=this[Cr];for(let{[o6]:t}of this[Ze])A+=t;return A}get stats(){return this[u6]}async[kI](){return this[mr].isEmpty()?Promise.all(this[Ze].map(A=>A.close())):new Promise(A=>{this[Nd]=A})}async[LI](A){for(;;){let t=this[mr].shift();if(!t)break;t.handler.onError(A)}return Promise.all(this[Ze].map(t=>t.destroy(A)))}[UI](A,t){let a=this[Sd]();return a?a.dispatch(A,t)||(a[qe]=!0,this[qe]=!this[Sd]()):(this[qe]=!0,this[mr].push({opts:A,handler:t}),this[Cr]++),!this[qe]}[E6](A){return A.on("drain",this[bd]).on("connect",this[l6]).on("disconnect",this[g6]).on("connectionError",this[c6]),this[Ze].push(A),this[qe]&&process.nextTick(()=>{this[qe]&&this[bd](A[FI],[this,A])}),this}[Q6](A){A.close(()=>{let t=this[Ze].indexOf(A);t!==-1&&this[Ze].splice(t,1)}),this[qe]=this[Ze].some(t=>!t[qe]&&t.closed!==!0&&t.destroyed!==!0)}};C6.exports={PoolBase:Fd,kClients:Ze,kNeedDrain:qe,kAddClient:E6,kRemoveClient:Q6,kGetDispatcher:Sd}});var ra=E((uS,I6)=>{"use strict";var{PoolBase:MI,kClients:m6,kNeedDrain:VI,kAddClient:YI,kGetDispatcher:JI}=kd(),GI=Qr(),{InvalidArgumentError:Ld}=ee(),Ud=H(),{kUrl:B6,kInterceptors:xI}=ie(),_I=dr(),Td=Symbol("options"),Md=Symbol("connections"),h6=Symbol("factory");function qI(e,A){return new GI(e,A)}var Vd=class extends MI{constructor(A,{connections:t,factory:a=qI,connect:r,connectTimeout:i,tls:s,maxCachedSessions:n,socketPath:o,autoSelectFamily:d,autoSelectFamilyAttemptTimeout:l,...p}={}){if(super(),t!=null&&(!Number.isFinite(t)||t<0))throw new Ld("invalid connections");if(typeof a!="function")throw new Ld("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new Ld("connect must be a function or an object");typeof r!="function"&&(r=_I({...s,maxCachedSessions:n,socketPath:o,timeout:i??1e4,...Ud.nodeHasAutoSelectFamily&&d?{autoSelectFamily:d,autoSelectFamilyAttemptTimeout:l}:void 0,...r})),this[xI]=p.interceptors&&p.interceptors.Pool&&Array.isArray(p.interceptors.Pool)?p.interceptors.Pool:[],this[Md]=t||null,this[B6]=Ud.parseOrigin(A),this[Td]={...Ud.deepClone(p),connect:r},this[Td].interceptors=p.interceptors?{...p.interceptors}:void 0,this[h6]=a}[JI](){let A=this[m6].find(t=>!t[VI]);return A||((!this[Md]||this[m6].length<this[Md])&&(A=this[h6](this[B6],this[Td]),this[YI](A)),A)}};I6.exports=Vd});var R6=E((ES,v6)=>{"use strict";var{BalancedPoolMissingUpstreamError:HI,InvalidArgumentError:OI}=ee(),{PoolBase:PI,kClients:He,kNeedDrain:Br,kAddClient:WI,kRemoveClient:jI,kGetDispatcher:ZI}=kd(),XI=ra(),{kUrl:Yd,kInterceptors:zI}=ie(),{parseOrigin:f6}=H(),w6=Symbol("factory"),As=Symbol("options"),y6=Symbol("kGreatestCommonDivisor"),l1=Symbol("kCurrentWeight"),g1=Symbol("kIndex"),RA=Symbol("kWeight"),ts=Symbol("kMaxWeightPerServer"),as=Symbol("kErrorPenalty");function D6(e,A){return A===0?e:D6(A,e%A)}function KI(e,A){return new XI(e,A)}var Jd=class extends PI{constructor(A=[],{factory:t=KI,...a}={}){if(super(),this[As]=a,this[g1]=-1,this[l1]=0,this[ts]=this[As].maxWeightPerServer||100,this[as]=this[As].errorPenalty||15,Array.isArray(A)||(A=[A]),typeof t!="function")throw new OI("factory must be a function.");this[zI]=a.interceptors&&a.interceptors.BalancedPool&&Array.isArray(a.interceptors.BalancedPool)?a.interceptors.BalancedPool:[],this[w6]=t;for(let r of A)this.addUpstream(r);this._updateBalancedPoolStats()}addUpstream(A){let t=f6(A).origin;if(this[He].find(r=>r[Yd].origin===t&&r.closed!==!0&&r.destroyed!==!0))return this;let a=this[w6](t,Object.assign({},this[As]));this[WI](a),a.on("connect",()=>{a[RA]=Math.min(this[ts],a[RA]+this[as])}),a.on("connectionError",()=>{a[RA]=Math.max(1,a[RA]-this[as]),this._updateBalancedPoolStats()}),a.on("disconnect",(...r)=>{let i=r[2];i&&i.code==="UND_ERR_SOCKET"&&(a[RA]=Math.max(1,a[RA]-this[as]),this._updateBalancedPoolStats())});for(let r of this[He])r[RA]=this[ts];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){this[y6]=this[He].map(A=>A[RA]).reduce(D6,0)}removeUpstream(A){let t=f6(A).origin,a=this[He].find(r=>r[Yd].origin===t&&r.closed!==!0&&r.destroyed!==!0);return a&&this[jI](a),this}get upstreams(){return this[He].filter(A=>A.closed!==!0&&A.destroyed!==!0).map(A=>A[Yd].origin)}[ZI](){if(this[He].length===0)throw new HI;if(!this[He].find(i=>!i[Br]&&i.closed!==!0&&i.destroyed!==!0)||this[He].map(i=>i[Br]).reduce((i,s)=>i&&s,!0))return;let a=0,r=this[He].findIndex(i=>!i[Br]);for(;a++<this[He].length;){this[g1]=(this[g1]+1)%this[He].length;let i=this[He][this[g1]];if(i[RA]>this[He][r][RA]&&!i[Br]&&(r=this[g1]),this[g1]===0&&(this[l1]=this[l1]-this[y6],this[l1]<=0&&(this[l1]=this[ts])),i[RA]>=this[l1]&&!i[Br])return i}return this[l1]=this[He][r][RA],this[g1]=r,this[He][r]}};v6.exports=Jd});var qd=E((QS,S6)=>{"use strict";var{kConnected:N6,kSize:b6}=ie(),Gd=class{constructor(A){this.value=A}deref(){return this.value[N6]===0&&this.value[b6]===0?void 0:this.value}},xd=class{constructor(A){this.finalizer=A}register(A,t){A.on("disconnect",()=>{A[N6]===0&&A[b6]===0&&this.finalizer(t)})}};S6.exports=function(){return{WeakRef:global.WeakRef||Gd,FinalizationRegistry:global.FinalizationRegistry||xd}}});var hr=E((CS,Y6)=>{"use strict";var{InvalidArgumentError:rs}=ee(),{kClients:_t,kRunning:F6,kClose:$I,kDestroy:e7,kDispatch:A7,kInterceptors:t7}=ie(),a7=or(),r7=ra(),i7=Qr(),s7=H(),n7=Oi(),{WeakRef:o7,FinalizationRegistry:d7}=qd()(),k6=Symbol("onConnect"),L6=Symbol("onDisconnect"),U6=Symbol("onConnectionError"),p7=Symbol("maxRedirections"),T6=Symbol("onDrain"),M6=Symbol("factory"),V6=Symbol("finalizer"),Hd=Symbol("options");function l7(e,A){return A&&A.connections===1?new i7(e,A):new r7(e,A)}var Od=class extends a7{constructor({factory:A=l7,maxRedirections:t=0,connect:a,...r}={}){if(super(),typeof A!="function")throw new rs("factory must be a function.");if(a!=null&&typeof a!="function"&&typeof a!="object")throw new rs("connect must be a function or an object");if(!Number.isInteger(t)||t<0)throw new rs("maxRedirections must be a positive number");a&&typeof a!="function"&&(a={...a}),this[t7]=r.interceptors&&r.interceptors.Agent&&Array.isArray(r.interceptors.Agent)?r.interceptors.Agent:[n7({maxRedirections:t})],this[Hd]={...s7.deepClone(r),connect:a},this[Hd].interceptors=r.interceptors?{...r.interceptors}:void 0,this[p7]=t,this[M6]=A,this[_t]=new Map,this[V6]=new d7(s=>{let n=this[_t].get(s);n!==void 0&&n.deref()===void 0&&this[_t].delete(s)});let i=this;this[T6]=(s,n)=>{i.emit("drain",s,[i,...n])},this[k6]=(s,n)=>{i.emit("connect",s,[i,...n])},this[L6]=(s,n,o)=>{i.emit("disconnect",s,[i,...n],o)},this[U6]=(s,n,o)=>{i.emit("connectionError",s,[i,...n],o)}}get[F6](){let A=0;for(let t of this[_t].values()){let a=t.deref();a&&(A+=a[F6])}return A}[A7](A,t){let a;if(A.origin&&(typeof A.origin=="string"||A.origin instanceof URL))a=String(A.origin);else throw new rs("opts.origin must be a non-empty string or URL.");let r=this[_t].get(a),i=r?r.deref():null;return i||(i=this[M6](A.origin,this[Hd]).on("drain",this[T6]).on("connect",this[k6]).on("disconnect",this[L6]).on("connectionError",this[U6]),this[_t].set(a,new o7(i)),this[V6].register(i,a)),i.dispatch(A,t)}async[$I](){let A=[];for(let t of this[_t].values()){let a=t.deref();a&&A.push(a.close())}await Promise.all(A)}async[e7](A){let t=[];for(let a of this[_t].values()){let r=a.deref();r&&t.push(r.destroy(A))}await Promise.all(t)}};Y6.exports=Od});var P6=E((BS,O6)=>{"use strict";var x6=require("assert"),{Readable:g7}=require("stream"),{RequestAbortedError:_6,NotSupportedError:c7,InvalidArgumentError:u7}=ee(),ia=H(),{ReadableStreamFrom:E7,toUSVString:Q7}=H(),Pd,dA=Symbol("kConsume"),is=Symbol("kReading"),qt=Symbol("kBody"),J6=Symbol("abort"),q6=Symbol("kContentType");O6.exports=class extends g7{constructor({resume:A,abort:t,contentType:a="",highWaterMark:r=64*1024}){super({autoDestroy:!0,read:A,highWaterMark:r}),this._readableState.dataEmitted=!1,this[J6]=t,this[dA]=null,this[qt]=null,this[q6]=a,this[is]=!1}destroy(A){return this.destroyed?this:(!A&&!this._readableState.endEmitted&&(A=new _6),A&&this[J6](),super.destroy(A))}emit(A,...t){return A==="data"?this._readableState.dataEmitted=!0:A==="error"&&(this._readableState.errorEmitted=!0),super.emit(A,...t)}on(A,...t){return(A==="data"||A==="readable")&&(this[is]=!0),super.on(A,...t)}addListener(A,...t){return this.on(A,...t)}off(A,...t){let a=super.off(A,...t);return(A==="data"||A==="readable")&&(this[is]=this.listenerCount("data")>0||this.listenerCount("readable")>0),a}removeListener(A,...t){return this.off(A,...t)}push(A){return this[dA]&&A!==null&&this.readableLength===0?(H6(this[dA],A),this[is]?super.push(A):!0):super.push(A)}async text(){return ss(this,"text")}async json(){return ss(this,"json")}async blob(){return ss(this,"blob")}async arrayBuffer(){return ss(this,"arrayBuffer")}async formData(){throw new c7}get bodyUsed(){return ia.isDisturbed(this)}get body(){return this[qt]||(this[qt]=E7(this),this[dA]&&(this[qt].getReader(),x6(this[qt].locked))),this[qt]}async dump(A){let t=A&&Number.isFinite(A.limit)?A.limit:262144,a=A&&A.signal,r=()=>{this.destroy()},i;if(a){if(typeof a!="object"||!("aborted"in a))throw new u7("signal must be an AbortSignal");ia.throwIfAborted(a),i=ia.addAbortListener(a,r)}try{for await(let s of this)if(ia.throwIfAborted(a),t-=Buffer.byteLength(s),t<0)return}catch{ia.throwIfAborted(a)}finally{typeof i=="function"?i():i&&i[Symbol.dispose]()}}};function C7(e){return e[qt]&&e[qt].locked===!0||e[dA]}function m7(e){return ia.isDisturbed(e)||C7(e)}async function ss(e,A){if(m7(e))throw new TypeError("unusable");return x6(!e[dA]),new Promise((t,a)=>{e[dA]={type:A,stream:e,resolve:t,reject:a,length:0,body:[]},e.on("error",function(r){Wd(this[dA],r)}).on("close",function(){this[dA].body!==null&&Wd(this[dA],new _6)}),process.nextTick(B7,e[dA])})}function B7(e){if(e.body===null)return;let{_readableState:A}=e.stream;for(let t of A.buffer)H6(e,t);for(A.endEmitted?G6(this[dA]):e.stream.on("end",function(){G6(this[dA])}),e.stream.resume();e.stream.read()!=null;);}function G6(e){let{type:A,body:t,resolve:a,stream:r,length:i}=e;try{if(A==="text")a(Q7(Buffer.concat(t)));else if(A==="json")a(JSON.parse(Buffer.concat(t)));else if(A==="arrayBuffer"){let s=new Uint8Array(i),n=0;for(let o of t)s.set(o,n),n+=o.byteLength;a(s)}else A==="blob"&&(Pd||(Pd=require("buffer").Blob),a(new Pd(t,{type:r[q6]})));Wd(e)}catch(s){r.destroy(s)}}function H6(e,A){e.length+=A.length,e.body.push(A)}function Wd(e,A){e.body!==null&&(A?e.reject(A):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}});var jd=E((hS,j6)=>{var h7=require("assert"),{ResponseStatusCodeError:ns}=ee(),{toUSVString:W6}=H();async function I7({callback:e,body:A,contentType:t,statusCode:a,statusMessage:r,headers:i}){h7(A);let s=[],n=0;for await(let o of A)if(s.push(o),n+=o.length,n>128*1024){s=null;break}if(a===204||!t||!s){process.nextTick(e,new ns(`Response status code ${a}${r?`: ${r}`:""}`,a,i));return}try{if(t.startsWith("application/json")){let o=JSON.parse(W6(Buffer.concat(s)));process.nextTick(e,new ns(`Response status code ${a}${r?`: ${r}`:""}`,a,i,o));return}if(t.startsWith("text/")){let o=W6(Buffer.concat(s));process.nextTick(e,new ns(`Response status code ${a}${r?`: ${r}`:""}`,a,i,o));return}}catch{}process.nextTick(e,new ns(`Response status code ${a}${r?`: ${r}`:""}`,a,i))}j6.exports={getResolveErrorBodyCallback:I7}});var na=E((IS,X6)=>{var{addAbortListener:f7}=H(),{RequestAbortedError:w7}=ee(),sa=Symbol("kListener"),Ht=Symbol("kSignal");function Z6(e){e.abort?e.abort():e.onError(new w7)}function y7(e,A){if(e[Ht]=null,e[sa]=null,!!A){if(A.aborted){Z6(e);return}e[Ht]=A,e[sa]=()=>{Z6(e)},f7(e[Ht],e[sa])}}function D7(e){e[Ht]&&("removeEventListener"in e[Ht]?e[Ht].removeEventListener("abort",e[sa]):e[Ht].removeListener("abort",e[sa]),e[Ht]=null,e[sa]=null)}X6.exports={addSignal:y7,removeSignal:D7}});var ec=E((fS,$6)=>{"use strict";var v7=P6(),{InvalidArgumentError:oa,RequestAbortedError:R7}=ee(),tt=H(),{getResolveErrorBodyCallback:N7}=jd(),{AsyncResource:b7}=require("async_hooks"),{addSignal:S7,removeSignal:z6}=na(),Zd=class extends b7{constructor(A,t){if(!A||typeof A!="object")throw new oa("invalid opts");let{signal:a,method:r,opaque:i,body:s,onInfo:n,responseHeaders:o,throwOnError:d,highWaterMark:l}=A;try{if(typeof t!="function")throw new oa("invalid callback");if(l&&(typeof l!="number"||l<0))throw new oa("invalid highWaterMark");if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new oa("signal must be an EventEmitter or EventTarget");if(r==="CONNECT")throw new oa("invalid method");if(n&&typeof n!="function")throw new oa("invalid onInfo callback");super("UNDICI_REQUEST")}catch(p){throw tt.isStream(s)&&tt.destroy(s.on("error",tt.nop),p),p}this.responseHeaders=o||null,this.opaque=i||null,this.callback=t,this.res=null,this.abort=null,this.body=s,this.trailers={},this.context=null,this.onInfo=n||null,this.throwOnError=d,this.highWaterMark=l,tt.isStream(s)&&s.on("error",p=>{this.onError(p)}),S7(this,a)}onConnect(A,t){if(!this.callback)throw new R7;this.abort=A,this.context=t}onHeaders(A,t,a,r){let{callback:i,opaque:s,abort:n,context:o,responseHeaders:d,highWaterMark:l}=this,p=d==="raw"?tt.parseRawHeaders(t):tt.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:p});return}let c=(d==="raw"?tt.parseHeaders(t):p)["content-type"],u=new v7({resume:a,abort:n,contentType:c,highWaterMark:l});this.callback=null,this.res=u,i!==null&&(this.throwOnError&&A>=400?this.runInAsyncScope(N7,null,{callback:i,body:u,contentType:c,statusCode:A,statusMessage:r,headers:p}):this.runInAsyncScope(i,null,null,{statusCode:A,headers:p,trailers:this.trailers,opaque:s,body:u,context:o}))}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;z6(this),tt.parseHeaders(A,this.trailers),t.push(null)}onError(A){let{res:t,callback:a,body:r,opaque:i}=this;z6(this),a&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(a,null,A,{opaque:i})})),t&&(this.res=null,queueMicrotask(()=>{tt.destroy(t,A)})),r&&(this.body=null,tt.destroy(r,A))}};function K6(e,A){if(A===void 0)return new Promise((t,a)=>{K6.call(this,e,(r,i)=>r?a(r):t(i))});try{this.dispatch(e,new Zd(e,A))}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}$6.exports=K6});var rc=E((wS,ac)=>{"use strict";var{finished:F7,PassThrough:k7}=require("stream"),{InvalidArgumentError:da,InvalidReturnValueError:L7,RequestAbortedError:U7}=ee(),YA=H(),{getResolveErrorBodyCallback:T7}=jd(),{AsyncResource:M7}=require("async_hooks"),{addSignal:V7,removeSignal:Ac}=na(),Xd=class extends M7{constructor(A,t,a){if(!A||typeof A!="object")throw new da("invalid opts");let{signal:r,method:i,opaque:s,body:n,onInfo:o,responseHeaders:d,throwOnError:l}=A;try{if(typeof a!="function")throw new da("invalid callback");if(typeof t!="function")throw new da("invalid factory");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new da("signal must be an EventEmitter or EventTarget");if(i==="CONNECT")throw new da("invalid method");if(o&&typeof o!="function")throw new da("invalid onInfo callback");super("UNDICI_STREAM")}catch(p){throw YA.isStream(n)&&YA.destroy(n.on("error",YA.nop),p),p}this.responseHeaders=d||null,this.opaque=s||null,this.factory=t,this.callback=a,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=n,this.onInfo=o||null,this.throwOnError=l||!1,YA.isStream(n)&&n.on("error",p=>{this.onError(p)}),V7(this,r)}onConnect(A,t){if(!this.callback)throw new U7;this.abort=A,this.context=t}onHeaders(A,t,a,r){let{factory:i,opaque:s,context:n,callback:o,responseHeaders:d}=this,l=d==="raw"?YA.parseRawHeaders(t):YA.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:l});return}this.factory=null;let p;if(this.throwOnError&&A>=400){let u=(d==="raw"?YA.parseHeaders(t):l)["content-type"];p=new k7,this.callback=null,this.runInAsyncScope(T7,null,{callback:o,body:p,contentType:u,statusCode:A,statusMessage:r,headers:l})}else{if(p=this.runInAsyncScope(i,null,{statusCode:A,headers:l,opaque:s,context:n}),!p||typeof p.write!="function"||typeof p.end!="function"||typeof p.on!="function")throw new L7("expected Writable");F7(p,{readable:!1},c=>{let{callback:u,res:Q,opaque:m,trailers:C,abort:B}=this;this.res=null,(c||!Q.readable)&&YA.destroy(Q,c),this.callback=null,this.runInAsyncScope(u,null,c||null,{opaque:m,trailers:C}),c&&B()})}return p.on("drain",a),this.res=p,(p.writableNeedDrain!==void 0?p.writableNeedDrain:p._writableState&&p._writableState.needDrain)!==!0}onData(A){let{res:t}=this;return t.write(A)}onComplete(A){let{res:t}=this;Ac(this),this.trailers=YA.parseHeaders(A),t.end()}onError(A){let{res:t,callback:a,opaque:r,body:i}=this;Ac(this),this.factory=null,t?(this.res=null,YA.destroy(t,A)):a&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(a,null,A,{opaque:r})})),i&&(this.body=null,YA.destroy(i,A))}};function tc(e,A,t){if(t===void 0)return new Promise((a,r)=>{tc.call(this,e,A,(i,s)=>i?r(i):a(s))});try{this.dispatch(e,new Xd(e,A,t))}catch(a){if(typeof t!="function")throw a;let r=e&&e.opaque;queueMicrotask(()=>t(a,{opaque:r}))}}ac.exports=tc});var nc=E((yS,sc)=>{"use strict";var{Readable:ic,Duplex:Y7,PassThrough:J7}=require("stream"),{InvalidArgumentError:Ir,InvalidReturnValueError:G7,RequestAbortedError:os}=ee(),NA=H(),{AsyncResource:x7}=require("async_hooks"),{addSignal:_7,removeSignal:q7}=na(),H7=require("assert"),pa=Symbol("resume"),zd=class extends ic{constructor(){super({autoDestroy:!0}),this[pa]=null}_read(){let{[pa]:A}=this;A&&(this[pa]=null,A())}_destroy(A,t){this._read(),t(A)}},Kd=class extends ic{constructor(A){super({autoDestroy:!0}),this[pa]=A}_read(){this[pa]()}_destroy(A,t){!A&&!this._readableState.endEmitted&&(A=new os),t(A)}},$d=class extends x7{constructor(A,t){if(!A||typeof A!="object")throw new Ir("invalid opts");if(typeof t!="function")throw new Ir("invalid handler");let{signal:a,method:r,opaque:i,onInfo:s,responseHeaders:n}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Ir("signal must be an EventEmitter or EventTarget");if(r==="CONNECT")throw new Ir("invalid method");if(s&&typeof s!="function")throw new Ir("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=i||null,this.responseHeaders=n||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=s||null,this.req=new zd().on("error",NA.nop),this.ret=new Y7({readableObjectMode:A.objectMode,autoDestroy:!0,read:()=>{let{body:o}=this;o&&o.resume&&o.resume()},write:(o,d,l)=>{let{req:p}=this;p.push(o,d)||p._readableState.destroyed?l():p[pa]=l},destroy:(o,d)=>{let{body:l,req:p,res:g,ret:c,abort:u}=this;!o&&!c._readableState.endEmitted&&(o=new os),u&&o&&u(),NA.destroy(l,o),NA.destroy(p,o),NA.destroy(g,o),q7(this),d(o)}}).on("prefinish",()=>{let{req:o}=this;o.push(null)}),this.res=null,_7(this,a)}onConnect(A,t){let{ret:a,res:r}=this;if(H7(!r,"pipeline cannot be retried"),a.destroyed)throw new os;this.abort=A,this.context=t}onHeaders(A,t,a){let{opaque:r,handler:i,context:s}=this;if(A<200){if(this.onInfo){let o=this.responseHeaders==="raw"?NA.parseRawHeaders(t):NA.parseHeaders(t);this.onInfo({statusCode:A,headers:o})}return}this.res=new Kd(a);let n;try{this.handler=null;let o=this.responseHeaders==="raw"?NA.parseRawHeaders(t):NA.parseHeaders(t);n=this.runInAsyncScope(i,null,{statusCode:A,headers:o,opaque:r,body:this.res,context:s})}catch(o){throw this.res.on("error",NA.nop),o}if(!n||typeof n.on!="function")throw new G7("expected Readable");n.on("data",o=>{let{ret:d,body:l}=this;!d.push(o)&&l.pause&&l.pause()}).on("error",o=>{let{ret:d}=this;NA.destroy(d,o)}).on("end",()=>{let{ret:o}=this;o.push(null)}).on("close",()=>{let{ret:o}=this;o._readableState.ended||NA.destroy(o,new os)}),this.body=n}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;t.push(null)}onError(A){let{ret:t}=this;this.handler=null,NA.destroy(t,A)}};function O7(e,A){try{let t=new $d(e,A);return this.dispatch({...e,body:t.req},t),t.ret}catch(t){return new J7().destroy(t)}}sc.exports=O7});var gc=E((DS,lc)=>{"use strict";var{InvalidArgumentError:ep,RequestAbortedError:P7,SocketError:W7}=ee(),{AsyncResource:j7}=require("async_hooks"),oc=H(),{addSignal:Z7,removeSignal:dc}=na(),X7=require("assert"),Ap=class extends j7{constructor(A,t){if(!A||typeof A!="object")throw new ep("invalid opts");if(typeof t!="function")throw new ep("invalid callback");let{signal:a,opaque:r,responseHeaders:i}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new ep("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=i||null,this.opaque=r||null,this.callback=t,this.abort=null,this.context=null,Z7(this,a)}onConnect(A,t){if(!this.callback)throw new P7;this.abort=A,this.context=null}onHeaders(){throw new W7("bad upgrade",null)}onUpgrade(A,t,a){let{callback:r,opaque:i,context:s}=this;X7.strictEqual(A,101),dc(this),this.callback=null;let n=this.responseHeaders==="raw"?oc.parseRawHeaders(t):oc.parseHeaders(t);this.runInAsyncScope(r,null,null,{headers:n,socket:a,opaque:i,context:s})}onError(A){let{callback:t,opaque:a}=this;dc(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:a})}))}};function pc(e,A){if(A===void 0)return new Promise((t,a)=>{pc.call(this,e,(r,i)=>r?a(r):t(i))});try{let t=new Ap(e,A);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},t)}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}lc.exports=pc});var Cc=E((vS,Qc)=>{"use strict";var{InvalidArgumentError:tp,RequestAbortedError:z7,SocketError:K7}=ee(),{AsyncResource:$7}=require("async_hooks"),cc=H(),{addSignal:ef,removeSignal:uc}=na(),ap=class extends $7{constructor(A,t){if(!A||typeof A!="object")throw new tp("invalid opts");if(typeof t!="function")throw new tp("invalid callback");let{signal:a,opaque:r,responseHeaders:i}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new tp("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=r||null,this.responseHeaders=i||null,this.callback=t,this.abort=null,ef(this,a)}onConnect(A,t){if(!this.callback)throw new z7;this.abort=A,this.context=t}onHeaders(){throw new K7("bad connect",null)}onUpgrade(A,t,a){let{callback:r,opaque:i,context:s}=this;uc(this),this.callback=null;let n=this.responseHeaders==="raw"?cc.parseRawHeaders(t):cc.parseHeaders(t);this.runInAsyncScope(r,null,null,{statusCode:A,headers:n,socket:a,opaque:i,context:s})}onError(A){let{callback:t,opaque:a}=this;uc(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:a})}))}};function Ec(e,A){if(A===void 0)return new Promise((t,a)=>{Ec.call(this,e,(r,i)=>r?a(r):t(i))});try{let t=new ap(e,A);this.dispatch({...e,method:"CONNECT"},t)}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}Qc.exports=Ec});var mc=E((RS,la)=>{"use strict";la.exports.request=ec();la.exports.stream=rc();la.exports.pipeline=nc();la.exports.upgrade=gc();la.exports.connect=Cc()});var ip=E((NS,Bc)=>{"use strict";var{UndiciError:Af}=ee(),rp=class e extends Af{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=A||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};Bc.exports={MockNotMatchedError:rp}});var ga=E((bS,hc)=>{"use strict";hc.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var fr=E((SS,kc)=>{"use strict";var{MockNotMatchedError:c1}=ip(),{kDispatches:ds,kMockAgent:tf,kOriginalDispatch:af,kOrigin:rf,kGetNetConnect:sf}=ga(),{buildURL:nf,nop:of}=H(),{STATUS_CODES:df}=require("http"),{types:{isPromise:pf}}=require("util");function ft(e,A){return typeof e=="string"?e===A:e instanceof RegExp?e.test(A):typeof e=="function"?e(A)===!0:!1}function fc(e){return Object.fromEntries(Object.entries(e).map(([A,t])=>[A.toLocaleLowerCase(),t]))}function wc(e,A){if(Array.isArray(e)){for(let t=0;t<e.length;t+=2)if(e[t].toLocaleLowerCase()===A.toLocaleLowerCase())return e[t+1];return}else return typeof e.get=="function"?e.get(A):fc(e)[A.toLocaleLowerCase()]}function yc(e){let A=e.slice(),t=[];for(let a=0;a<A.length;a+=2)t.push([A[a],A[a+1]]);return Object.fromEntries(t)}function Dc(e,A){if(typeof e.headers=="function")return Array.isArray(A)&&(A=yc(A)),e.headers(A?fc(A):{});if(typeof e.headers>"u")return!0;if(typeof A!="object"||typeof e.headers!="object")return!1;for(let[t,a]of Object.entries(e.headers)){let r=wc(A,t);if(!ft(a,r))return!1}return!0}function Ic(e){if(typeof e!="string")return e;let A=e.split("?");if(A.length!==2)return e;let t=new URLSearchParams(A.pop());return t.sort(),[...A,t.toString()].join("?")}function lf(e,{path:A,method:t,body:a,headers:r}){let i=ft(e.path,A),s=ft(e.method,t),n=typeof e.body<"u"?ft(e.body,a):!0,o=Dc(e,r);return i&&s&&n&&o}function vc(e){return Buffer.isBuffer(e)?e:typeof e=="object"?JSON.stringify(e):e.toString()}function Rc(e,A){let t=A.query?nf(A.path,A.query):A.path,a=typeof t=="string"?Ic(t):t,r=e.filter(({consumed:i})=>!i).filter(({path:i})=>ft(Ic(i),a));if(r.length===0)throw new c1(`Mock dispatch not matched for path '${a}'`);if(r=r.filter(({method:i})=>ft(i,A.method)),r.length===0)throw new c1(`Mock dispatch not matched for method '${A.method}'`);if(r=r.filter(({body:i})=>typeof i<"u"?ft(i,A.body):!0),r.length===0)throw new c1(`Mock dispatch not matched for body '${A.body}'`);if(r=r.filter(i=>Dc(i,A.headers)),r.length===0)throw new c1(`Mock dispatch not matched for headers '${typeof A.headers=="object"?JSON.stringify(A.headers):A.headers}'`);return r[0]}function gf(e,A,t){let a={timesInvoked:0,times:1,persist:!1,consumed:!1},r=typeof t=="function"?{callback:t}:{...t},i={...a,...A,pending:!0,data:{error:null,...r}};return e.push(i),i}function sp(e,A){let t=e.findIndex(a=>a.consumed?lf(a,A):!1);t!==-1&&e.splice(t,1)}function Nc(e){let{path:A,method:t,body:a,headers:r,query:i}=e;return{path:A,method:t,body:a,headers:r,query:i}}function np(e){return Object.entries(e).reduce((A,[t,a])=>[...A,Buffer.from(`${t}`),Array.isArray(a)?a.map(r=>Buffer.from(`${r}`)):Buffer.from(`${a}`)],[])}function bc(e){return df[e]||"unknown"}async function cf(e){let A=[];for await(let t of e)A.push(t);return Buffer.concat(A).toString("utf8")}function Sc(e,A){let t=Nc(e),a=Rc(this[ds],t);a.timesInvoked++,a.data.callback&&(a.data={...a.data,...a.data.callback(e)});let{data:{statusCode:r,data:i,headers:s,trailers:n,error:o},delay:d,persist:l}=a,{timesInvoked:p,times:g}=a;if(a.consumed=!l&&p>=g,a.pending=p<g,o!==null)return sp(this[ds],t),A.onError(o),!0;typeof d=="number"&&d>0?setTimeout(()=>{c(this[ds])},d):c(this[ds]);function c(Q,m=i){let C=Array.isArray(e.headers)?yc(e.headers):e.headers,B=typeof m=="function"?m({...e,headers:C}):m;if(pf(B)){B.then(v=>c(Q,v));return}let f=vc(B),h=np(s),w=np(n);A.abort=of,A.onHeaders(r,h,u,bc(r)),A.onData(Buffer.from(f)),A.onComplete(w),sp(Q,t)}function u(){}return!0}function uf(){let e=this[tf],A=this[rf],t=this[af];return function(r,i){if(e.isMockActive)try{Sc.call(this,r,i)}catch(s){if(s instanceof c1){let n=e[sf]();if(n===!1)throw new c1(`${s.message}: subsequent request to origin ${A} was not allowed (net.connect disabled)`);if(Fc(n,A))t.call(this,r,i);else throw new c1(`${s.message}: subsequent request to origin ${A} was not allowed (net.connect is not enabled for this origin)`)}else throw s}else t.call(this,r,i)}}function Fc(e,A){let t=new URL(A);return e===!0?!0:!!(Array.isArray(e)&&e.some(a=>ft(a,t.host)))}function Ef(e){if(e){let{agent:A,...t}=e;return t}}kc.exports={getResponseData:vc,getMockDispatch:Rc,addMockDispatch:gf,deleteMockDispatch:sp,buildKey:Nc,generateKeyValues:np,matchValue:ft,getResponse:cf,getStatusText:bc,mockDispatch:Sc,buildMockDispatch:uf,checkNetConnect:Fc,buildMockOptions:Ef,getHeaderByName:wc}});var up=E((FS,cp)=>{"use strict";var{getResponseData:Qf,buildKey:Cf,addMockDispatch:op}=fr(),{kDispatches:ps,kDispatchKey:ls,kDefaultHeaders:dp,kDefaultTrailers:pp,kContentLength:lp,kMockDispatch:gs}=ga(),{InvalidArgumentError:JA}=ee(),{buildURL:mf}=H(),ca=class{constructor(A){this[gs]=A}delay(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new JA("waitInMs must be a valid integer > 0");return this[gs].delay=A,this}persist(){return this[gs].persist=!0,this}times(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new JA("repeatTimes must be a valid integer > 0");return this[gs].times=A,this}},gp=class{constructor(A,t){if(typeof A!="object")throw new JA("opts must be an object");if(typeof A.path>"u")throw new JA("opts.path must be defined");if(typeof A.method>"u"&&(A.method="GET"),typeof A.path=="string")if(A.query)A.path=mf(A.path,A.query);else{let a=new URL(A.path,"data://");A.path=a.pathname+a.search}typeof A.method=="string"&&(A.method=A.method.toUpperCase()),this[ls]=Cf(A),this[ps]=t,this[dp]={},this[pp]={},this[lp]=!1}createMockScopeDispatchData(A,t,a={}){let r=Qf(t),i=this[lp]?{"content-length":r.length}:{},s={...this[dp],...i,...a.headers},n={...this[pp],...a.trailers};return{statusCode:A,data:t,headers:s,trailers:n}}validateReplyParameters(A,t,a){if(typeof A>"u")throw new JA("statusCode must be defined");if(typeof t>"u")throw new JA("data must be defined");if(typeof a!="object")throw new JA("responseOptions must be an object")}reply(A){if(typeof A=="function"){let n=d=>{let l=A(d);if(typeof l!="object")throw new JA("reply options callback must return an object");let{statusCode:p,data:g="",responseOptions:c={}}=l;return this.validateReplyParameters(p,g,c),{...this.createMockScopeDispatchData(p,g,c)}},o=op(this[ps],this[ls],n);return new ca(o)}let[t,a="",r={}]=[...arguments];this.validateReplyParameters(t,a,r);let i=this.createMockScopeDispatchData(t,a,r),s=op(this[ps],this[ls],i);return new ca(s)}replyWithError(A){if(typeof A>"u")throw new JA("error must be defined");let t=op(this[ps],this[ls],{error:A});return new ca(t)}defaultReplyHeaders(A){if(typeof A>"u")throw new JA("headers must be defined");return this[dp]=A,this}defaultReplyTrailers(A){if(typeof A>"u")throw new JA("trailers must be defined");return this[pp]=A,this}replyContentLength(){return this[lp]=!0,this}};cp.exports.MockInterceptor=gp;cp.exports.MockScope=ca});var Cp=E((kS,Jc)=>{"use strict";var{promisify:Bf}=require("util"),hf=Qr(),{buildMockDispatch:If}=fr(),{kDispatches:Lc,kMockAgent:Uc,kClose:Tc,kOriginalClose:Mc,kOrigin:Vc,kOriginalDispatch:ff,kConnected:Ep}=ga(),{MockInterceptor:wf}=up(),Yc=ie(),{InvalidArgumentError:yf}=ee(),Qp=class extends hf{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new yf("Argument opts.agent must implement Agent");this[Uc]=t.agent,this[Vc]=A,this[Lc]=[],this[Ep]=1,this[ff]=this.dispatch,this[Mc]=this.close.bind(this),this.dispatch=If.call(this),this.close=this[Tc]}get[Yc.kConnected](){return this[Ep]}intercept(A){return new wf(A,this[Lc])}async[Tc](){await Bf(this[Mc])(),this[Ep]=0,this[Uc][Yc.kClients].delete(this[Vc])}};Jc.exports=Qp});var hp=E((LS,Wc)=>{"use strict";var{promisify:Df}=require("util"),vf=ra(),{buildMockDispatch:Rf}=fr(),{kDispatches:Gc,kMockAgent:xc,kClose:qc,kOriginalClose:Hc,kOrigin:Oc,kOriginalDispatch:Nf,kConnected:mp}=ga(),{MockInterceptor:bf}=up(),Pc=ie(),{InvalidArgumentError:Sf}=ee(),Bp=class extends vf{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new Sf("Argument opts.agent must implement Agent");this[xc]=t.agent,this[Oc]=A,this[Gc]=[],this[mp]=1,this[Nf]=this.dispatch,this[Hc]=this.close.bind(this),this.dispatch=Rf.call(this),this.close=this[qc]}get[Pc.kConnected](){return this[mp]}intercept(A){return new bf(A,this[Gc])}async[qc](){await Df(this[Hc])(),this[mp]=0,this[xc][Pc.kClients].delete(this[Oc])}};Wc.exports=Bp});var Zc=E((TS,jc)=>{"use strict";var Ff={pronoun:"it",is:"is",was:"was",this:"this"},kf={pronoun:"they",is:"are",was:"were",this:"these"};jc.exports=class{constructor(A,t){this.singular=A,this.plural=t}pluralize(A){let t=A===1,a=t?Ff:kf,r=t?this.singular:this.plural;return{...a,count:A,noun:r}}}});var zc=E((VS,Xc)=>{"use strict";var{Transform:Lf}=require("stream"),{Console:Uf}=require("console");Xc.exports=class{constructor({disableColors:A}={}){this.transform=new Lf({transform(t,a,r){r(null,t)}}),this.logger=new Uf({stdout:this.transform,inspectOptions:{colors:!A&&!process.env.CI}})}format(A){let t=A.map(({method:a,path:r,data:{statusCode:i},persist:s,times:n,timesInvoked:o,origin:d})=>({Method:a,Origin:d,Path:r,"Status code":i,Persistent:s?"\u2705":"\u274C",Invocations:o,Remaining:s?1/0:n-o}));return this.logger.table(t),this.transform.read().toString()}}});var Au=E((YS,eu)=>{"use strict";var{kClients:u1}=ie(),Tf=hr(),{kAgent:Ip,kMockAgentSet:cs,kMockAgentGet:Kc,kDispatches:fp,kIsMockActive:us,kNetConnect:E1,kGetNetConnect:Mf,kOptions:Es,kFactory:Qs}=ga(),Vf=Cp(),Yf=hp(),{matchValue:Jf,buildMockOptions:Gf}=fr(),{InvalidArgumentError:$c,UndiciError:xf}=ee(),qf=xi(),Hf=Zc(),Of=zc(),wp=class{constructor(A){this.value=A}deref(){return this.value}},yp=class extends qf{constructor(A){if(super(A),this[E1]=!0,this[us]=!0,A&&A.agent&&typeof A.agent.dispatch!="function")throw new $c("Argument opts.agent must implement Agent");let t=A&&A.agent?A.agent:new Tf(A);this[Ip]=t,this[u1]=t[u1],this[Es]=Gf(A)}get(A){let t=this[Kc](A);return t||(t=this[Qs](A),this[cs](A,t)),t}dispatch(A,t){return this.get(A.origin),this[Ip].dispatch(A,t)}async close(){await this[Ip].close(),this[u1].clear()}deactivate(){this[us]=!1}activate(){this[us]=!0}enableNetConnect(A){if(typeof A=="string"||typeof A=="function"||A instanceof RegExp)Array.isArray(this[E1])?this[E1].push(A):this[E1]=[A];else if(typeof A>"u")this[E1]=!0;else throw new $c("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[E1]=!1}get isMockActive(){return this[us]}[cs](A,t){this[u1].set(A,new wp(t))}[Qs](A){let t=Object.assign({agent:this},this[Es]);return this[Es]&&this[Es].connections===1?new Vf(A,t):new Yf(A,t)}[Kc](A){let t=this[u1].get(A);if(t)return t.deref();if(typeof A!="string"){let a=this[Qs]("http://localhost:9999");return this[cs](A,a),a}for(let[a,r]of Array.from(this[u1])){let i=r.deref();if(i&&typeof a!="string"&&Jf(a,A)){let s=this[Qs](A);return this[cs](A,s),s[fp]=i[fp],s}}}[Mf](){return this[E1]}pendingInterceptors(){let A=this[u1];return Array.from(A.entries()).flatMap(([t,a])=>a.deref()[fp].map(r=>({...r,origin:t}))).filter(({pending:t})=>t)}assertNoPendingInterceptors({pendingInterceptorsFormatter:A=new Of}={}){let t=this.pendingInterceptors();if(t.length===0)return;let a=new Hf("interceptor","interceptors").pluralize(t.length);throw new xf(` +`,"latin1"),t!==null&&r!==t){if(a[Hi])throw new t1;process.emitWarning(new t1)}A[te].timeout&&A[te].timeoutType===$1&&A[te].timeout.refresh&&A[te].timeout.refresh(),DA(a)}}destroy(A){let{socket:t,client:a}=this;t[mt]=!1,A&&(D(a[ue]<=1,"pipeline should only contain this request"),L.destroy(t,A))}};function $A(e,A,t){try{A.onError(t),D(A.aborted)}catch(a){e.emit("error",a)}}Wg.exports=cd});var jg=E((yS,Zg)=>{"use strict";var Wi=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(A){this.list[this.top]=A,this.top=this.top+1&2047}shift(){let A=this.list[this.bottom];return A===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,A)}};Zg.exports=class{constructor(){this.head=this.tail=new Wi}isEmpty(){return this.head.isEmpty()}push(A){this.head.isFull()&&(this.head=this.head.next=new Wi),this.head.push(A)}shift(){let A=this.tail,t=A.shift();return A.isEmpty()&&A.next!==null&&(this.tail=A.next),t}}});var zg=E((DS,Xg)=>{var{kFree:$h,kConnected:eI,kPending:AI,kQueued:tI,kRunning:aI,kSize:rI}=ie(),s1=Symbol("pool"),md=class{constructor(A){this[s1]=A}get connected(){return this[s1][eI]}get free(){return this[s1][$h]}get pending(){return this[s1][AI]}get queued(){return this[s1][tI]}get running(){return this[s1][aI]}get size(){return this[s1][rI]}};Xg.exports=md});var wd=E((RS,n6)=>{"use strict";var iI=tr(),sI=jg(),{kConnected:Cd,kSize:Kg,kRunning:$g,kPending:e6,kQueued:lr,kBusy:nI,kFree:oI,kUrl:dI,kClose:pI,kDestroy:lI,kDispatch:gI}=ie(),cI=zg(),je=Symbol("clients"),qe=Symbol("needDrain"),gr=Symbol("queue"),Bd=Symbol("closed resolve"),hd=Symbol("onDrain"),A6=Symbol("onConnect"),t6=Symbol("onDisconnect"),a6=Symbol("onConnectionError"),Id=Symbol("get dispatcher"),i6=Symbol("add client"),s6=Symbol("remove client"),r6=Symbol("stats"),fd=class extends iI{constructor(){super(),this[gr]=new sI,this[je]=[],this[lr]=0;let A=this;this[hd]=function(a,r){let i=A[gr],s=!1;for(;!s;){let n=i.shift();if(!n)break;A[lr]--,s=!this.dispatch(n.opts,n.handler)}this[qe]=s,!this[qe]&&A[qe]&&(A[qe]=!1,A.emit("drain",a,[A,...r])),A[Bd]&&i.isEmpty()&&Promise.all(A[je].map(n=>n.close())).then(A[Bd])},this[A6]=(t,a)=>{A.emit("connect",t,[A,...a])},this[t6]=(t,a,r)=>{A.emit("disconnect",t,[A,...a],r)},this[a6]=(t,a,r)=>{A.emit("connectionError",t,[A,...a],r)},this[r6]=new cI(this)}get[nI](){return this[qe]}get[Cd](){return this[je].filter(A=>A[Cd]).length}get[oI](){return this[je].filter(A=>A[Cd]&&!A[qe]).length}get[e6](){let A=this[lr];for(let{[e6]:t}of this[je])A+=t;return A}get[$g](){let A=0;for(let{[$g]:t}of this[je])A+=t;return A}get[Kg](){let A=this[lr];for(let{[Kg]:t}of this[je])A+=t;return A}get stats(){return this[r6]}async[pI](){return this[gr].isEmpty()?Promise.all(this[je].map(A=>A.close())):new Promise(A=>{this[Bd]=A})}async[lI](A){for(;;){let t=this[gr].shift();if(!t)break;t.handler.onError(A)}return Promise.all(this[je].map(t=>t.destroy(A)))}[gI](A,t){let a=this[Id]();return a?a.dispatch(A,t)||(a[qe]=!0,this[qe]=!this[Id]()):(this[qe]=!0,this[gr].push({opts:A,handler:t}),this[lr]++),!this[qe]}[i6](A){return A.on("drain",this[hd]).on("connect",this[A6]).on("disconnect",this[t6]).on("connectionError",this[a6]),this[je].push(A),this[qe]&&process.nextTick(()=>{this[qe]&&this[hd](A[dI],[this,A])}),this}[s6](A){A.close(()=>{let t=this[je].indexOf(A);t!==-1&&this[je].splice(t,1)}),this[qe]=this[je].some(t=>!t[qe]&&t.closed!==!0&&t.destroyed!==!0)}};n6.exports={PoolBase:fd,kClients:je,kNeedDrain:qe,kAddClient:i6,kRemoveClient:s6,kGetDispatcher:Id}});var ea=E((vS,l6)=>{"use strict";var{PoolBase:uI,kClients:o6,kNeedDrain:EI,kAddClient:QI,kGetDispatcher:mI}=wd(),CI=pr(),{InvalidArgumentError:yd}=ee(),Dd=q(),{kUrl:d6,kInterceptors:BI}=ie(),hI=ar(),Rd=Symbol("options"),vd=Symbol("connections"),p6=Symbol("factory");function II(e,A){return new CI(e,A)}var Nd=class extends uI{constructor(A,{connections:t,factory:a=II,connect:r,connectTimeout:i,tls:s,maxCachedSessions:n,socketPath:o,autoSelectFamily:d,autoSelectFamilyAttemptTimeout:l,...p}={}){if(super(),t!=null&&(!Number.isFinite(t)||t<0))throw new yd("invalid connections");if(typeof a!="function")throw new yd("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new yd("connect must be a function or an object");typeof r!="function"&&(r=hI({...s,maxCachedSessions:n,socketPath:o,timeout:i??1e4,...Dd.nodeHasAutoSelectFamily&&d?{autoSelectFamily:d,autoSelectFamilyAttemptTimeout:l}:void 0,...r})),this[BI]=p.interceptors&&p.interceptors.Pool&&Array.isArray(p.interceptors.Pool)?p.interceptors.Pool:[],this[vd]=t||null,this[d6]=Dd.parseOrigin(A),this[Rd]={...Dd.deepClone(p),connect:r},this[Rd].interceptors=p.interceptors?{...p.interceptors}:void 0,this[p6]=a}[mI](){let A=this[o6].find(t=>!t[EI]);return A||((!this[vd]||this[o6].length<this[vd])&&(A=this[p6](this[d6],this[Rd]),this[QI](A)),A)}};l6.exports=Nd});var m6=E((NS,Q6)=>{"use strict";var{BalancedPoolMissingUpstreamError:fI,InvalidArgumentError:wI}=ee(),{PoolBase:yI,kClients:He,kNeedDrain:cr,kAddClient:DI,kRemoveClient:RI,kGetDispatcher:vI}=wd(),NI=ea(),{kUrl:Sd,kInterceptors:SI}=ie(),{parseOrigin:g6}=q(),c6=Symbol("factory"),Zi=Symbol("options"),u6=Symbol("kGreatestCommonDivisor"),n1=Symbol("kCurrentWeight"),o1=Symbol("kIndex"),RA=Symbol("kWeight"),ji=Symbol("kMaxWeightPerServer"),Xi=Symbol("kErrorPenalty");function E6(e,A){return A===0?e:E6(A,e%A)}function bI(e,A){return new NI(e,A)}var bd=class extends yI{constructor(A=[],{factory:t=bI,...a}={}){if(super(),this[Zi]=a,this[o1]=-1,this[n1]=0,this[ji]=this[Zi].maxWeightPerServer||100,this[Xi]=this[Zi].errorPenalty||15,Array.isArray(A)||(A=[A]),typeof t!="function")throw new wI("factory must be a function.");this[SI]=a.interceptors&&a.interceptors.BalancedPool&&Array.isArray(a.interceptors.BalancedPool)?a.interceptors.BalancedPool:[],this[c6]=t;for(let r of A)this.addUpstream(r);this._updateBalancedPoolStats()}addUpstream(A){let t=g6(A).origin;if(this[He].find(r=>r[Sd].origin===t&&r.closed!==!0&&r.destroyed!==!0))return this;let a=this[c6](t,Object.assign({},this[Zi]));this[DI](a),a.on("connect",()=>{a[RA]=Math.min(this[ji],a[RA]+this[Xi])}),a.on("connectionError",()=>{a[RA]=Math.max(1,a[RA]-this[Xi]),this._updateBalancedPoolStats()}),a.on("disconnect",(...r)=>{let i=r[2];i&&i.code==="UND_ERR_SOCKET"&&(a[RA]=Math.max(1,a[RA]-this[Xi]),this._updateBalancedPoolStats())});for(let r of this[He])r[RA]=this[ji];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){this[u6]=this[He].map(A=>A[RA]).reduce(E6,0)}removeUpstream(A){let t=g6(A).origin,a=this[He].find(r=>r[Sd].origin===t&&r.closed!==!0&&r.destroyed!==!0);return a&&this[RI](a),this}get upstreams(){return this[He].filter(A=>A.closed!==!0&&A.destroyed!==!0).map(A=>A[Sd].origin)}[vI](){if(this[He].length===0)throw new fI;if(!this[He].find(i=>!i[cr]&&i.closed!==!0&&i.destroyed!==!0)||this[He].map(i=>i[cr]).reduce((i,s)=>i&&s,!0))return;let a=0,r=this[He].findIndex(i=>!i[cr]);for(;a++<this[He].length;){this[o1]=(this[o1]+1)%this[He].length;let i=this[He][this[o1]];if(i[RA]>this[He][r][RA]&&!i[cr]&&(r=this[o1]),this[o1]===0&&(this[n1]=this[n1]-this[u6],this[n1]<=0&&(this[n1]=this[ji])),i[RA]>=this[n1]&&!i[cr])return i}return this[n1]=this[He][r][RA],this[o1]=r,this[He][r]}};Q6.exports=bd});var Ld=E((SS,h6)=>{"use strict";var{kConnected:C6,kSize:B6}=ie(),Fd=class{constructor(A){this.value=A}deref(){return this.value[C6]===0&&this.value[B6]===0?void 0:this.value}},kd=class{constructor(A){this.finalizer=A}register(A,t){A.on("disconnect",()=>{A[C6]===0&&A[B6]===0&&this.finalizer(t)})}};h6.exports=function(){return{WeakRef:global.WeakRef||Fd,FinalizationRegistry:global.FinalizationRegistry||kd}}});var ur=E((bS,N6)=>{"use strict";var{InvalidArgumentError:zi}=ee(),{kClients:Yt,kRunning:I6,kClose:FI,kDestroy:kI,kDispatch:LI,kInterceptors:UI}=ie(),TI=tr(),MI=ea(),VI=pr(),YI=q(),JI=Yi(),{WeakRef:GI,FinalizationRegistry:xI}=Ld()(),f6=Symbol("onConnect"),w6=Symbol("onDisconnect"),y6=Symbol("onConnectionError"),_I=Symbol("maxRedirections"),D6=Symbol("onDrain"),R6=Symbol("factory"),v6=Symbol("finalizer"),Ud=Symbol("options");function qI(e,A){return A&&A.connections===1?new VI(e,A):new MI(e,A)}var Td=class extends TI{constructor({factory:A=qI,maxRedirections:t=0,connect:a,...r}={}){if(super(),typeof A!="function")throw new zi("factory must be a function.");if(a!=null&&typeof a!="function"&&typeof a!="object")throw new zi("connect must be a function or an object");if(!Number.isInteger(t)||t<0)throw new zi("maxRedirections must be a positive number");a&&typeof a!="function"&&(a={...a}),this[UI]=r.interceptors&&r.interceptors.Agent&&Array.isArray(r.interceptors.Agent)?r.interceptors.Agent:[JI({maxRedirections:t})],this[Ud]={...YI.deepClone(r),connect:a},this[Ud].interceptors=r.interceptors?{...r.interceptors}:void 0,this[_I]=t,this[R6]=A,this[Yt]=new Map,this[v6]=new xI(s=>{let n=this[Yt].get(s);n!==void 0&&n.deref()===void 0&&this[Yt].delete(s)});let i=this;this[D6]=(s,n)=>{i.emit("drain",s,[i,...n])},this[f6]=(s,n)=>{i.emit("connect",s,[i,...n])},this[w6]=(s,n,o)=>{i.emit("disconnect",s,[i,...n],o)},this[y6]=(s,n,o)=>{i.emit("connectionError",s,[i,...n],o)}}get[I6](){let A=0;for(let t of this[Yt].values()){let a=t.deref();a&&(A+=a[I6])}return A}[LI](A,t){let a;if(A.origin&&(typeof A.origin=="string"||A.origin instanceof URL))a=String(A.origin);else throw new zi("opts.origin must be a non-empty string or URL.");let r=this[Yt].get(a),i=r?r.deref():null;return i||(i=this[R6](A.origin,this[Ud]).on("drain",this[D6]).on("connect",this[f6]).on("disconnect",this[w6]).on("connectionError",this[y6]),this[Yt].set(a,new GI(i)),this[v6].register(i,a)),i.dispatch(A,t)}async[FI](){let A=[];for(let t of this[Yt].values()){let a=t.deref();a&&A.push(a.close())}await Promise.all(A)}async[kI](A){let t=[];for(let a of this[Yt].values()){let r=a.deref();r&&t.push(r.destroy(A))}await Promise.all(t)}};N6.exports=Td});var M6=E((kS,T6)=>{"use strict";var F6=require("assert"),{Readable:HI}=require("stream"),{RequestAbortedError:k6,NotSupportedError:OI,InvalidArgumentError:PI}=ee(),Aa=q(),{ReadableStreamFrom:WI,toUSVString:ZI}=q(),Md,dA=Symbol("kConsume"),Ki=Symbol("kReading"),Jt=Symbol("kBody"),S6=Symbol("abort"),L6=Symbol("kContentType");T6.exports=class extends HI{constructor({resume:A,abort:t,contentType:a="",highWaterMark:r=64*1024}){super({autoDestroy:!0,read:A,highWaterMark:r}),this._readableState.dataEmitted=!1,this[S6]=t,this[dA]=null,this[Jt]=null,this[L6]=a,this[Ki]=!1}destroy(A){return this.destroyed?this:(!A&&!this._readableState.endEmitted&&(A=new k6),A&&this[S6](),super.destroy(A))}emit(A,...t){return A==="data"?this._readableState.dataEmitted=!0:A==="error"&&(this._readableState.errorEmitted=!0),super.emit(A,...t)}on(A,...t){return(A==="data"||A==="readable")&&(this[Ki]=!0),super.on(A,...t)}addListener(A,...t){return this.on(A,...t)}off(A,...t){let a=super.off(A,...t);return(A==="data"||A==="readable")&&(this[Ki]=this.listenerCount("data")>0||this.listenerCount("readable")>0),a}removeListener(A,...t){return this.off(A,...t)}push(A){return this[dA]&&A!==null&&this.readableLength===0?(U6(this[dA],A),this[Ki]?super.push(A):!0):super.push(A)}async text(){return $i(this,"text")}async json(){return $i(this,"json")}async blob(){return $i(this,"blob")}async arrayBuffer(){return $i(this,"arrayBuffer")}async formData(){throw new OI}get bodyUsed(){return Aa.isDisturbed(this)}get body(){return this[Jt]||(this[Jt]=WI(this),this[dA]&&(this[Jt].getReader(),F6(this[Jt].locked))),this[Jt]}async dump(A){let t=A&&Number.isFinite(A.limit)?A.limit:262144,a=A&&A.signal,r=()=>{this.destroy()},i;if(a){if(typeof a!="object"||!("aborted"in a))throw new PI("signal must be an AbortSignal");Aa.throwIfAborted(a),i=Aa.addAbortListener(a,r)}try{for await(let s of this)if(Aa.throwIfAborted(a),t-=Buffer.byteLength(s),t<0)return}catch{Aa.throwIfAborted(a)}finally{typeof i=="function"?i():i&&i[Symbol.dispose]()}}};function jI(e){return e[Jt]&&e[Jt].locked===!0||e[dA]}function XI(e){return Aa.isDisturbed(e)||jI(e)}async function $i(e,A){if(XI(e))throw new TypeError("unusable");return F6(!e[dA]),new Promise((t,a)=>{e[dA]={type:A,stream:e,resolve:t,reject:a,length:0,body:[]},e.on("error",function(r){Vd(this[dA],r)}).on("close",function(){this[dA].body!==null&&Vd(this[dA],new k6)}),process.nextTick(zI,e[dA])})}function zI(e){if(e.body===null)return;let{_readableState:A}=e.stream;for(let t of A.buffer)U6(e,t);for(A.endEmitted?b6(this[dA]):e.stream.on("end",function(){b6(this[dA])}),e.stream.resume();e.stream.read()!=null;);}function b6(e){let{type:A,body:t,resolve:a,stream:r,length:i}=e;try{if(A==="text")a(ZI(Buffer.concat(t)));else if(A==="json")a(JSON.parse(Buffer.concat(t)));else if(A==="arrayBuffer"){let s=new Uint8Array(i),n=0;for(let o of t)s.set(o,n),n+=o.byteLength;a(s)}else A==="blob"&&(Md||(Md=require("buffer").Blob),a(new Md(t,{type:r[L6]})));Vd(e)}catch(s){r.destroy(s)}}function U6(e,A){e.length+=A.length,e.body.push(A)}function Vd(e,A){e.body!==null&&(A?e.reject(A):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}});var Yd=E((LS,Y6)=>{var KI=require("assert"),{ResponseStatusCodeError:es}=ee(),{toUSVString:V6}=q();async function $I({callback:e,body:A,contentType:t,statusCode:a,statusMessage:r,headers:i}){KI(A);let s=[],n=0;for await(let o of A)if(s.push(o),n+=o.length,n>128*1024){s=null;break}if(a===204||!t||!s){process.nextTick(e,new es(`Response status code ${a}${r?`: ${r}`:""}`,a,i));return}try{if(t.startsWith("application/json")){let o=JSON.parse(V6(Buffer.concat(s)));process.nextTick(e,new es(`Response status code ${a}${r?`: ${r}`:""}`,a,i,o));return}if(t.startsWith("text/")){let o=V6(Buffer.concat(s));process.nextTick(e,new es(`Response status code ${a}${r?`: ${r}`:""}`,a,i,o));return}}catch{}process.nextTick(e,new es(`Response status code ${a}${r?`: ${r}`:""}`,a,i))}Y6.exports={getResolveErrorBodyCallback:$I}});var aa=E((US,G6)=>{var{addAbortListener:e7}=q(),{RequestAbortedError:A7}=ee(),ta=Symbol("kListener"),Gt=Symbol("kSignal");function J6(e){e.abort?e.abort():e.onError(new A7)}function t7(e,A){if(e[Gt]=null,e[ta]=null,!!A){if(A.aborted){J6(e);return}e[Gt]=A,e[ta]=()=>{J6(e)},e7(e[Gt],e[ta])}}function a7(e){e[Gt]&&("removeEventListener"in e[Gt]?e[Gt].removeEventListener("abort",e[ta]):e[Gt].removeListener("abort",e[ta]),e[Gt]=null,e[ta]=null)}G6.exports={addSignal:t7,removeSignal:a7}});var H6=E((TS,q6)=>{"use strict";var r7=M6(),{InvalidArgumentError:ra,RequestAbortedError:i7}=ee(),et=q(),{getResolveErrorBodyCallback:s7}=Yd(),{AsyncResource:n7}=require("async_hooks"),{addSignal:o7,removeSignal:x6}=aa(),Jd=class extends n7{constructor(A,t){if(!A||typeof A!="object")throw new ra("invalid opts");let{signal:a,method:r,opaque:i,body:s,onInfo:n,responseHeaders:o,throwOnError:d,highWaterMark:l}=A;try{if(typeof t!="function")throw new ra("invalid callback");if(l&&(typeof l!="number"||l<0))throw new ra("invalid highWaterMark");if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new ra("signal must be an EventEmitter or EventTarget");if(r==="CONNECT")throw new ra("invalid method");if(n&&typeof n!="function")throw new ra("invalid onInfo callback");super("UNDICI_REQUEST")}catch(p){throw et.isStream(s)&&et.destroy(s.on("error",et.nop),p),p}this.responseHeaders=o||null,this.opaque=i||null,this.callback=t,this.res=null,this.abort=null,this.body=s,this.trailers={},this.context=null,this.onInfo=n||null,this.throwOnError=d,this.highWaterMark=l,et.isStream(s)&&s.on("error",p=>{this.onError(p)}),o7(this,a)}onConnect(A,t){if(!this.callback)throw new i7;this.abort=A,this.context=t}onHeaders(A,t,a,r){let{callback:i,opaque:s,abort:n,context:o,responseHeaders:d,highWaterMark:l}=this,p=d==="raw"?et.parseRawHeaders(t):et.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:p});return}let c=(d==="raw"?et.parseHeaders(t):p)["content-type"],u=new r7({resume:a,abort:n,contentType:c,highWaterMark:l});this.callback=null,this.res=u,i!==null&&(this.throwOnError&&A>=400?this.runInAsyncScope(s7,null,{callback:i,body:u,contentType:c,statusCode:A,statusMessage:r,headers:p}):this.runInAsyncScope(i,null,null,{statusCode:A,headers:p,trailers:this.trailers,opaque:s,body:u,context:o}))}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;x6(this),et.parseHeaders(A,this.trailers),t.push(null)}onError(A){let{res:t,callback:a,body:r,opaque:i}=this;x6(this),a&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(a,null,A,{opaque:i})})),t&&(this.res=null,queueMicrotask(()=>{et.destroy(t,A)})),r&&(this.body=null,et.destroy(r,A))}};function _6(e,A){if(A===void 0)return new Promise((t,a)=>{_6.call(this,e,(r,i)=>r?a(r):t(i))});try{this.dispatch(e,new Jd(e,A))}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}q6.exports=_6});var Z6=E((MS,W6)=>{"use strict";var{finished:d7,PassThrough:p7}=require("stream"),{InvalidArgumentError:ia,InvalidReturnValueError:l7,RequestAbortedError:g7}=ee(),MA=q(),{getResolveErrorBodyCallback:c7}=Yd(),{AsyncResource:u7}=require("async_hooks"),{addSignal:E7,removeSignal:O6}=aa(),Gd=class extends u7{constructor(A,t,a){if(!A||typeof A!="object")throw new ia("invalid opts");let{signal:r,method:i,opaque:s,body:n,onInfo:o,responseHeaders:d,throwOnError:l}=A;try{if(typeof a!="function")throw new ia("invalid callback");if(typeof t!="function")throw new ia("invalid factory");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new ia("signal must be an EventEmitter or EventTarget");if(i==="CONNECT")throw new ia("invalid method");if(o&&typeof o!="function")throw new ia("invalid onInfo callback");super("UNDICI_STREAM")}catch(p){throw MA.isStream(n)&&MA.destroy(n.on("error",MA.nop),p),p}this.responseHeaders=d||null,this.opaque=s||null,this.factory=t,this.callback=a,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=n,this.onInfo=o||null,this.throwOnError=l||!1,MA.isStream(n)&&n.on("error",p=>{this.onError(p)}),E7(this,r)}onConnect(A,t){if(!this.callback)throw new g7;this.abort=A,this.context=t}onHeaders(A,t,a,r){let{factory:i,opaque:s,context:n,callback:o,responseHeaders:d}=this,l=d==="raw"?MA.parseRawHeaders(t):MA.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:l});return}this.factory=null;let p;if(this.throwOnError&&A>=400){let u=(d==="raw"?MA.parseHeaders(t):l)["content-type"];p=new p7,this.callback=null,this.runInAsyncScope(c7,null,{callback:o,body:p,contentType:u,statusCode:A,statusMessage:r,headers:l})}else{if(p=this.runInAsyncScope(i,null,{statusCode:A,headers:l,opaque:s,context:n}),!p||typeof p.write!="function"||typeof p.end!="function"||typeof p.on!="function")throw new l7("expected Writable");d7(p,{readable:!1},c=>{let{callback:u,res:Q,opaque:C,trailers:m,abort:B}=this;this.res=null,(c||!Q.readable)&&MA.destroy(Q,c),this.callback=null,this.runInAsyncScope(u,null,c||null,{opaque:C,trailers:m}),c&&B()})}return p.on("drain",a),this.res=p,(p.writableNeedDrain!==void 0?p.writableNeedDrain:p._writableState&&p._writableState.needDrain)!==!0}onData(A){let{res:t}=this;return t.write(A)}onComplete(A){let{res:t}=this;O6(this),this.trailers=MA.parseHeaders(A),t.end()}onError(A){let{res:t,callback:a,opaque:r,body:i}=this;O6(this),this.factory=null,t?(this.res=null,MA.destroy(t,A)):a&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(a,null,A,{opaque:r})})),i&&(this.body=null,MA.destroy(i,A))}};function P6(e,A,t){if(t===void 0)return new Promise((a,r)=>{P6.call(this,e,A,(i,s)=>i?r(i):a(s))});try{this.dispatch(e,new Gd(e,A,t))}catch(a){if(typeof t!="function")throw a;let r=e&&e.opaque;queueMicrotask(()=>t(a,{opaque:r}))}}W6.exports=P6});var z6=E((VS,X6)=>{"use strict";var{Readable:j6,Duplex:Q7,PassThrough:m7}=require("stream"),{InvalidArgumentError:Er,InvalidReturnValueError:C7,RequestAbortedError:As}=ee(),vA=q(),{AsyncResource:B7}=require("async_hooks"),{addSignal:h7,removeSignal:I7}=aa(),f7=require("assert"),sa=Symbol("resume"),xd=class extends j6{constructor(){super({autoDestroy:!0}),this[sa]=null}_read(){let{[sa]:A}=this;A&&(this[sa]=null,A())}_destroy(A,t){this._read(),t(A)}},qd=class extends j6{constructor(A){super({autoDestroy:!0}),this[sa]=A}_read(){this[sa]()}_destroy(A,t){!A&&!this._readableState.endEmitted&&(A=new As),t(A)}},Hd=class extends B7{constructor(A,t){if(!A||typeof A!="object")throw new Er("invalid opts");if(typeof t!="function")throw new Er("invalid handler");let{signal:a,method:r,opaque:i,onInfo:s,responseHeaders:n}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Er("signal must be an EventEmitter or EventTarget");if(r==="CONNECT")throw new Er("invalid method");if(s&&typeof s!="function")throw new Er("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=i||null,this.responseHeaders=n||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=s||null,this.req=new xd().on("error",vA.nop),this.ret=new Q7({readableObjectMode:A.objectMode,autoDestroy:!0,read:()=>{let{body:o}=this;o&&o.resume&&o.resume()},write:(o,d,l)=>{let{req:p}=this;p.push(o,d)||p._readableState.destroyed?l():p[sa]=l},destroy:(o,d)=>{let{body:l,req:p,res:g,ret:c,abort:u}=this;!o&&!c._readableState.endEmitted&&(o=new As),u&&o&&u(),vA.destroy(l,o),vA.destroy(p,o),vA.destroy(g,o),I7(this),d(o)}}).on("prefinish",()=>{let{req:o}=this;o.push(null)}),this.res=null,h7(this,a)}onConnect(A,t){let{ret:a,res:r}=this;if(f7(!r,"pipeline cannot be retried"),a.destroyed)throw new As;this.abort=A,this.context=t}onHeaders(A,t,a){let{opaque:r,handler:i,context:s}=this;if(A<200){if(this.onInfo){let o=this.responseHeaders==="raw"?vA.parseRawHeaders(t):vA.parseHeaders(t);this.onInfo({statusCode:A,headers:o})}return}this.res=new qd(a);let n;try{this.handler=null;let o=this.responseHeaders==="raw"?vA.parseRawHeaders(t):vA.parseHeaders(t);n=this.runInAsyncScope(i,null,{statusCode:A,headers:o,opaque:r,body:this.res,context:s})}catch(o){throw this.res.on("error",vA.nop),o}if(!n||typeof n.on!="function")throw new C7("expected Readable");n.on("data",o=>{let{ret:d,body:l}=this;!d.push(o)&&l.pause&&l.pause()}).on("error",o=>{let{ret:d}=this;vA.destroy(d,o)}).on("end",()=>{let{ret:o}=this;o.push(null)}).on("close",()=>{let{ret:o}=this;o._readableState.ended||vA.destroy(o,new As)}),this.body=n}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;t.push(null)}onError(A){let{ret:t}=this;this.handler=null,vA.destroy(t,A)}};function w7(e,A){try{let t=new Hd(e,A);return this.dispatch({...e,body:t.req},t),t.ret}catch(t){return new m7().destroy(t)}}X6.exports=w7});var tc=E((YS,Ac)=>{"use strict";var{InvalidArgumentError:Od,RequestAbortedError:y7,SocketError:D7}=ee(),{AsyncResource:R7}=require("async_hooks"),K6=q(),{addSignal:v7,removeSignal:$6}=aa(),N7=require("assert"),Pd=class extends R7{constructor(A,t){if(!A||typeof A!="object")throw new Od("invalid opts");if(typeof t!="function")throw new Od("invalid callback");let{signal:a,opaque:r,responseHeaders:i}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Od("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=i||null,this.opaque=r||null,this.callback=t,this.abort=null,this.context=null,v7(this,a)}onConnect(A,t){if(!this.callback)throw new y7;this.abort=A,this.context=null}onHeaders(){throw new D7("bad upgrade",null)}onUpgrade(A,t,a){let{callback:r,opaque:i,context:s}=this;N7.strictEqual(A,101),$6(this),this.callback=null;let n=this.responseHeaders==="raw"?K6.parseRawHeaders(t):K6.parseHeaders(t);this.runInAsyncScope(r,null,null,{headers:n,socket:a,opaque:i,context:s})}onError(A){let{callback:t,opaque:a}=this;$6(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:a})}))}};function ec(e,A){if(A===void 0)return new Promise((t,a)=>{ec.call(this,e,(r,i)=>r?a(r):t(i))});try{let t=new Pd(e,A);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},t)}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}Ac.exports=ec});var nc=E((JS,sc)=>{"use strict";var{InvalidArgumentError:Wd,RequestAbortedError:S7,SocketError:b7}=ee(),{AsyncResource:F7}=require("async_hooks"),ac=q(),{addSignal:k7,removeSignal:rc}=aa(),Zd=class extends F7{constructor(A,t){if(!A||typeof A!="object")throw new Wd("invalid opts");if(typeof t!="function")throw new Wd("invalid callback");let{signal:a,opaque:r,responseHeaders:i}=A;if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Wd("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=r||null,this.responseHeaders=i||null,this.callback=t,this.abort=null,k7(this,a)}onConnect(A,t){if(!this.callback)throw new S7;this.abort=A,this.context=t}onHeaders(){throw new b7("bad connect",null)}onUpgrade(A,t,a){let{callback:r,opaque:i,context:s}=this;rc(this),this.callback=null;let n=this.responseHeaders==="raw"?ac.parseRawHeaders(t):ac.parseHeaders(t);this.runInAsyncScope(r,null,null,{statusCode:A,headers:n,socket:a,opaque:i,context:s})}onError(A){let{callback:t,opaque:a}=this;rc(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:a})}))}};function ic(e,A){if(A===void 0)return new Promise((t,a)=>{ic.call(this,e,(r,i)=>r?a(r):t(i))});try{let t=new Zd(e,A);this.dispatch({...e,method:"CONNECT"},t)}catch(t){if(typeof A!="function")throw t;let a=e&&e.opaque;queueMicrotask(()=>A(t,{opaque:a}))}}sc.exports=ic});var oc=E((GS,na)=>{"use strict";na.exports.request=H6();na.exports.stream=Z6();na.exports.pipeline=z6();na.exports.upgrade=tc();na.exports.connect=nc()});var Xd=E((xS,dc)=>{"use strict";var{UndiciError:L7}=ee(),jd=class e extends L7{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=A||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};dc.exports={MockNotMatchedError:jd}});var oa=E((_S,pc)=>{"use strict";pc.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var Qr=E((qS,fc)=>{"use strict";var{MockNotMatchedError:d1}=Xd(),{kDispatches:ts,kMockAgent:U7,kOriginalDispatch:T7,kOrigin:M7,kGetNetConnect:V7}=oa(),{buildURL:Y7,nop:J7}=q(),{STATUS_CODES:G7}=require("http"),{types:{isPromise:x7}}=require("util");function Ct(e,A){return typeof e=="string"?e===A:e instanceof RegExp?e.test(A):typeof e=="function"?e(A)===!0:!1}function gc(e){return Object.fromEntries(Object.entries(e).map(([A,t])=>[A.toLocaleLowerCase(),t]))}function cc(e,A){if(Array.isArray(e)){for(let t=0;t<e.length;t+=2)if(e[t].toLocaleLowerCase()===A.toLocaleLowerCase())return e[t+1];return}else return typeof e.get=="function"?e.get(A):gc(e)[A.toLocaleLowerCase()]}function uc(e){let A=e.slice(),t=[];for(let a=0;a<A.length;a+=2)t.push([A[a],A[a+1]]);return Object.fromEntries(t)}function Ec(e,A){if(typeof e.headers=="function")return Array.isArray(A)&&(A=uc(A)),e.headers(A?gc(A):{});if(typeof e.headers>"u")return!0;if(typeof A!="object"||typeof e.headers!="object")return!1;for(let[t,a]of Object.entries(e.headers)){let r=cc(A,t);if(!Ct(a,r))return!1}return!0}function lc(e){if(typeof e!="string")return e;let A=e.split("?");if(A.length!==2)return e;let t=new URLSearchParams(A.pop());return t.sort(),[...A,t.toString()].join("?")}function _7(e,{path:A,method:t,body:a,headers:r}){let i=Ct(e.path,A),s=Ct(e.method,t),n=typeof e.body<"u"?Ct(e.body,a):!0,o=Ec(e,r);return i&&s&&n&&o}function Qc(e){return Buffer.isBuffer(e)?e:typeof e=="object"?JSON.stringify(e):e.toString()}function mc(e,A){let t=A.query?Y7(A.path,A.query):A.path,a=typeof t=="string"?lc(t):t,r=e.filter(({consumed:i})=>!i).filter(({path:i})=>Ct(lc(i),a));if(r.length===0)throw new d1(`Mock dispatch not matched for path '${a}'`);if(r=r.filter(({method:i})=>Ct(i,A.method)),r.length===0)throw new d1(`Mock dispatch not matched for method '${A.method}'`);if(r=r.filter(({body:i})=>typeof i<"u"?Ct(i,A.body):!0),r.length===0)throw new d1(`Mock dispatch not matched for body '${A.body}'`);if(r=r.filter(i=>Ec(i,A.headers)),r.length===0)throw new d1(`Mock dispatch not matched for headers '${typeof A.headers=="object"?JSON.stringify(A.headers):A.headers}'`);return r[0]}function q7(e,A,t){let a={timesInvoked:0,times:1,persist:!1,consumed:!1},r=typeof t=="function"?{callback:t}:{...t},i={...a,...A,pending:!0,data:{error:null,...r}};return e.push(i),i}function zd(e,A){let t=e.findIndex(a=>a.consumed?_7(a,A):!1);t!==-1&&e.splice(t,1)}function Cc(e){let{path:A,method:t,body:a,headers:r,query:i}=e;return{path:A,method:t,body:a,headers:r,query:i}}function Kd(e){return Object.entries(e).reduce((A,[t,a])=>[...A,Buffer.from(`${t}`),Array.isArray(a)?a.map(r=>Buffer.from(`${r}`)):Buffer.from(`${a}`)],[])}function Bc(e){return G7[e]||"unknown"}async function H7(e){let A=[];for await(let t of e)A.push(t);return Buffer.concat(A).toString("utf8")}function hc(e,A){let t=Cc(e),a=mc(this[ts],t);a.timesInvoked++,a.data.callback&&(a.data={...a.data,...a.data.callback(e)});let{data:{statusCode:r,data:i,headers:s,trailers:n,error:o},delay:d,persist:l}=a,{timesInvoked:p,times:g}=a;if(a.consumed=!l&&p>=g,a.pending=p<g,o!==null)return zd(this[ts],t),A.onError(o),!0;typeof d=="number"&&d>0?setTimeout(()=>{c(this[ts])},d):c(this[ts]);function c(Q,C=i){let m=Array.isArray(e.headers)?uc(e.headers):e.headers,B=typeof C=="function"?C({...e,headers:m}):C;if(x7(B)){B.then(S=>c(Q,S));return}let w=Qc(B),I=Kd(s),y=Kd(n);A.abort=J7,A.onHeaders(r,I,u,Bc(r)),A.onData(Buffer.from(w)),A.onComplete(y),zd(Q,t)}function u(){}return!0}function O7(){let e=this[U7],A=this[M7],t=this[T7];return function(r,i){if(e.isMockActive)try{hc.call(this,r,i)}catch(s){if(s instanceof d1){let n=e[V7]();if(n===!1)throw new d1(`${s.message}: subsequent request to origin ${A} was not allowed (net.connect disabled)`);if(Ic(n,A))t.call(this,r,i);else throw new d1(`${s.message}: subsequent request to origin ${A} was not allowed (net.connect is not enabled for this origin)`)}else throw s}else t.call(this,r,i)}}function Ic(e,A){let t=new URL(A);return e===!0?!0:!!(Array.isArray(e)&&e.some(a=>Ct(a,t.host)))}function P7(e){if(e){let{agent:A,...t}=e;return t}}fc.exports={getResponseData:Qc,getMockDispatch:mc,addMockDispatch:q7,deleteMockDispatch:zd,buildKey:Cc,generateKeyValues:Kd,matchValue:Ct,getResponse:H7,getStatusText:Bc,mockDispatch:hc,buildMockDispatch:O7,checkNetConnect:Ic,buildMockOptions:P7,getHeaderByName:cc}});var ip=E((HS,rp)=>{"use strict";var{getResponseData:W7,buildKey:Z7,addMockDispatch:$d}=Qr(),{kDispatches:as,kDispatchKey:rs,kDefaultHeaders:ep,kDefaultTrailers:Ap,kContentLength:tp,kMockDispatch:is}=oa(),{InvalidArgumentError:VA}=ee(),{buildURL:j7}=q(),da=class{constructor(A){this[is]=A}delay(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new VA("waitInMs must be a valid integer > 0");return this[is].delay=A,this}persist(){return this[is].persist=!0,this}times(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new VA("repeatTimes must be a valid integer > 0");return this[is].times=A,this}},ap=class{constructor(A,t){if(typeof A!="object")throw new VA("opts must be an object");if(typeof A.path>"u")throw new VA("opts.path must be defined");if(typeof A.method>"u"&&(A.method="GET"),typeof A.path=="string")if(A.query)A.path=j7(A.path,A.query);else{let a=new URL(A.path,"data://");A.path=a.pathname+a.search}typeof A.method=="string"&&(A.method=A.method.toUpperCase()),this[rs]=Z7(A),this[as]=t,this[ep]={},this[Ap]={},this[tp]=!1}createMockScopeDispatchData(A,t,a={}){let r=W7(t),i=this[tp]?{"content-length":r.length}:{},s={...this[ep],...i,...a.headers},n={...this[Ap],...a.trailers};return{statusCode:A,data:t,headers:s,trailers:n}}validateReplyParameters(A,t,a){if(typeof A>"u")throw new VA("statusCode must be defined");if(typeof t>"u")throw new VA("data must be defined");if(typeof a!="object")throw new VA("responseOptions must be an object")}reply(A){if(typeof A=="function"){let n=d=>{let l=A(d);if(typeof l!="object")throw new VA("reply options callback must return an object");let{statusCode:p,data:g="",responseOptions:c={}}=l;return this.validateReplyParameters(p,g,c),{...this.createMockScopeDispatchData(p,g,c)}},o=$d(this[as],this[rs],n);return new da(o)}let[t,a="",r={}]=[...arguments];this.validateReplyParameters(t,a,r);let i=this.createMockScopeDispatchData(t,a,r),s=$d(this[as],this[rs],i);return new da(s)}replyWithError(A){if(typeof A>"u")throw new VA("error must be defined");let t=$d(this[as],this[rs],{error:A});return new da(t)}defaultReplyHeaders(A){if(typeof A>"u")throw new VA("headers must be defined");return this[ep]=A,this}defaultReplyTrailers(A){if(typeof A>"u")throw new VA("trailers must be defined");return this[Ap]=A,this}replyContentLength(){return this[tp]=!0,this}};rp.exports.MockInterceptor=ap;rp.exports.MockScope=da});var op=E((OS,Sc)=>{"use strict";var{promisify:X7}=require("util"),z7=pr(),{buildMockDispatch:K7}=Qr(),{kDispatches:wc,kMockAgent:yc,kClose:Dc,kOriginalClose:Rc,kOrigin:vc,kOriginalDispatch:$7,kConnected:sp}=oa(),{MockInterceptor:ef}=ip(),Nc=ie(),{InvalidArgumentError:Af}=ee(),np=class extends z7{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new Af("Argument opts.agent must implement Agent");this[yc]=t.agent,this[vc]=A,this[wc]=[],this[sp]=1,this[$7]=this.dispatch,this[Rc]=this.close.bind(this),this.dispatch=K7.call(this),this.close=this[Dc]}get[Nc.kConnected](){return this[sp]}intercept(A){return new ef(A,this[wc])}async[Dc](){await X7(this[Rc])(),this[sp]=0,this[yc][Nc.kClients].delete(this[vc])}};Sc.exports=np});var lp=E((PS,Mc)=>{"use strict";var{promisify:tf}=require("util"),af=ea(),{buildMockDispatch:rf}=Qr(),{kDispatches:bc,kMockAgent:Fc,kClose:kc,kOriginalClose:Lc,kOrigin:Uc,kOriginalDispatch:sf,kConnected:dp}=oa(),{MockInterceptor:nf}=ip(),Tc=ie(),{InvalidArgumentError:of}=ee(),pp=class extends af{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new of("Argument opts.agent must implement Agent");this[Fc]=t.agent,this[Uc]=A,this[bc]=[],this[dp]=1,this[sf]=this.dispatch,this[Lc]=this.close.bind(this),this.dispatch=rf.call(this),this.close=this[kc]}get[Tc.kConnected](){return this[dp]}intercept(A){return new nf(A,this[bc])}async[kc](){await tf(this[Lc])(),this[dp]=0,this[Fc][Tc.kClients].delete(this[Uc])}};Mc.exports=pp});var Yc=E((ZS,Vc)=>{"use strict";var df={pronoun:"it",is:"is",was:"was",this:"this"},pf={pronoun:"they",is:"are",was:"were",this:"these"};Vc.exports=class{constructor(A,t){this.singular=A,this.plural=t}pluralize(A){let t=A===1,a=t?df:pf,r=t?this.singular:this.plural;return{...a,count:A,noun:r}}}});var Gc=E((XS,Jc)=>{"use strict";var{Transform:lf}=require("stream"),{Console:gf}=require("console");Jc.exports=class{constructor({disableColors:A}={}){this.transform=new lf({transform(t,a,r){r(null,t)}}),this.logger=new gf({stdout:this.transform,inspectOptions:{colors:!A&&!process.env.CI}})}format(A){let t=A.map(({method:a,path:r,data:{statusCode:i},persist:s,times:n,timesInvoked:o,origin:d})=>({Method:a,Origin:d,Path:r,"Status code":i,Persistent:s?"\u2705":"\u274C",Invocations:o,Remaining:s?1/0:n-o}));return this.logger.table(t),this.transform.read().toString()}}});var Oc=E((zS,Hc)=>{"use strict";var{kClients:p1}=ie(),cf=ur(),{kAgent:gp,kMockAgentSet:ss,kMockAgentGet:xc,kDispatches:cp,kIsMockActive:ns,kNetConnect:l1,kGetNetConnect:uf,kOptions:os,kFactory:ds}=oa(),Ef=op(),Qf=lp(),{matchValue:mf,buildMockOptions:Cf}=Qr(),{InvalidArgumentError:qc,UndiciError:Bf}=ee(),hf=Ui(),If=Yc(),ff=Gc(),up=class{constructor(A){this.value=A}deref(){return this.value}},Ep=class extends hf{constructor(A){if(super(A),this[l1]=!0,this[ns]=!0,A&&A.agent&&typeof A.agent.dispatch!="function")throw new qc("Argument opts.agent must implement Agent");let t=A&&A.agent?A.agent:new cf(A);this[gp]=t,this[p1]=t[p1],this[os]=Cf(A)}get(A){let t=this[xc](A);return t||(t=this[ds](A),this[ss](A,t)),t}dispatch(A,t){return this.get(A.origin),this[gp].dispatch(A,t)}async close(){await this[gp].close(),this[p1].clear()}deactivate(){this[ns]=!1}activate(){this[ns]=!0}enableNetConnect(A){if(typeof A=="string"||typeof A=="function"||A instanceof RegExp)Array.isArray(this[l1])?this[l1].push(A):this[l1]=[A];else if(typeof A>"u")this[l1]=!0;else throw new qc("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[l1]=!1}get isMockActive(){return this[ns]}[ss](A,t){this[p1].set(A,new up(t))}[ds](A){let t=Object.assign({agent:this},this[os]);return this[os]&&this[os].connections===1?new Ef(A,t):new Qf(A,t)}[xc](A){let t=this[p1].get(A);if(t)return t.deref();if(typeof A!="string"){let a=this[ds]("http://localhost:9999");return this[ss](A,a),a}for(let[a,r]of Array.from(this[p1])){let i=r.deref();if(i&&typeof a!="string"&&mf(a,A)){let s=this[ds](A);return this[ss](A,s),s[cp]=i[cp],s}}}[uf](){return this[l1]}pendingInterceptors(){let A=this[p1];return Array.from(A.entries()).flatMap(([t,a])=>a.deref()[cp].map(r=>({...r,origin:t}))).filter(({pending:t})=>t)}assertNoPendingInterceptors({pendingInterceptorsFormatter:A=new ff}={}){let t=this.pendingInterceptors();if(t.length===0)return;let a=new If("interceptor","interceptors").pluralize(t.length);throw new Bf(` ${a.count} ${a.noun} ${a.is} pending: ${A.format(t)} -`.trim())}};eu.exports=yp});var nu=E((JS,su)=>{"use strict";var{kProxy:Pf,kClose:Wf,kDestroy:jf,kInterceptors:Zf}=ie(),{URL:tu}=require("url"),au=hr(),Xf=ra(),zf=or(),{InvalidArgumentError:yr,RequestAbortedError:Kf}=ee(),ru=dr(),wr=Symbol("proxy agent"),Cs=Symbol("proxy client"),ms=Symbol("proxy headers"),Dp=Symbol("request tls settings"),$f=Symbol("proxy tls settings"),iu=Symbol("connect endpoint function");function ew(e){return e==="https:"?443:80}function Aw(e){if(typeof e=="string"&&(e={uri:e}),!e||!e.uri)throw new yr("Proxy opts.uri is mandatory");return{uri:e.uri,protocol:e.protocol||"https"}}function tw(e,A){return new Xf(e,A)}var vp=class extends zf{constructor(A){if(super(A),this[Pf]=Aw(A),this[wr]=new au(A),this[Zf]=A.interceptors&&A.interceptors.ProxyAgent&&Array.isArray(A.interceptors.ProxyAgent)?A.interceptors.ProxyAgent:[],typeof A=="string"&&(A={uri:A}),!A||!A.uri)throw new yr("Proxy opts.uri is mandatory");let{clientFactory:t=tw}=A;if(typeof t!="function")throw new yr("Proxy opts.clientFactory must be a function.");if(this[Dp]=A.requestTls,this[$f]=A.proxyTls,this[ms]=A.headers||{},A.auth&&A.token)throw new yr("opts.auth cannot be used in combination with opts.token");A.auth?this[ms]["proxy-authorization"]=`Basic ${A.auth}`:A.token&&(this[ms]["proxy-authorization"]=A.token);let a=new tu(A.uri),{origin:r,port:i,host:s}=a,n=ru({...A.proxyTls});this[iu]=ru({...A.requestTls}),this[Cs]=t(a,{connect:n}),this[wr]=new au({...A,connect:async(o,d)=>{let l=o.host;o.port||(l+=`:${ew(o.protocol)}`);try{let{socket:p,statusCode:g}=await this[Cs].connect({origin:r,port:i,path:l,signal:o.signal,headers:{...this[ms],host:s}});if(g!==200&&(p.on("error",()=>{}).destroy(),d(new Kf("Proxy response !== 200 when HTTP Tunneling"))),o.protocol!=="https:"){d(null,p);return}let c;this[Dp]?c=this[Dp].servername:c=o.servername,this[iu]({...o,servername:c,httpSocket:p},d)}catch(p){d(p)}}})}dispatch(A,t){let{host:a}=new tu(A.origin),r=aw(A.headers);return rw(r),this[wr].dispatch({...A,headers:{...r,host:a}},t)}async[Wf](){await this[wr].close(),await this[Cs].close()}async[jf](){await this[wr].destroy(),await this[Cs].destroy()}};function aw(e){if(Array.isArray(e)){let A={};for(let t=0;t<e.length;t+=2)A[e[t]]=e[t+1];return A}return e}function rw(e){if(e&&Object.keys(e).find(t=>t.toLowerCase()==="proxy-authorization"))throw new yr("Proxy-Authorization should be sent in ProxyAgent constructor")}su.exports=vp});var ua=E((GS,lu)=>{"use strict";var ou=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:iw}=ee(),sw=hr();pu()===void 0&&du(new sw);function du(e){if(!e||typeof e.dispatch!="function")throw new iw("Argument agent must implement Agent");Object.defineProperty(globalThis,ou,{value:e,writable:!0,enumerable:!1,configurable:!1})}function pu(){return globalThis[ou]}lu.exports={setGlobalDispatcher:du,getGlobalDispatcher:pu}});var cu=E((_S,gu)=>{"use strict";gu.exports=class{constructor(A){this.handler=A}onConnect(...A){return this.handler.onConnect(...A)}onError(...A){return this.handler.onError(...A)}onUpgrade(...A){return this.handler.onUpgrade(...A)}onHeaders(...A){return this.handler.onHeaders(...A)}onData(...A){return this.handler.onData(...A)}onComplete(...A){return this.handler.onComplete(...A)}onBodySent(...A){return this.handler.onBodySent(...A)}}});var C1=E((qS,Cu)=>{"use strict";var{kHeadersList:Xe}=ie(),{kGuard:Q1}=Et(),{kEnumerableProperty:at}=H(),{makeIterator:Rp,isValidHeaderName:Dr,isValidHeaderValue:uu}=wA(),{webidl:Y}=Ge(),nw=require("assert"),ze=Symbol("headers map"),Ke=Symbol("headers map sorted");function Eu(e){let A=e.length;for(;/[\r\n\t ]/.test(e.charAt(--A)););return e.slice(0,A+1).replace(/^[\r\n\t ]+/,"")}function Qu(e,A){if(Array.isArray(A))for(let t of A){if(t.length!==2)throw Y.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${t.length}.`});e.append(t[0],t[1])}else if(typeof A=="object"&&A!==null)for(let[t,a]of Object.entries(A))e.append(t,a);else throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}var Bs=class e{cookies=null;constructor(A){A instanceof e?(this[ze]=new Map(A[ze]),this[Ke]=A[Ke],this.cookies=A.cookies):(this[ze]=new Map(A),this[Ke]=null)}contains(A){return A=A.toLowerCase(),this[ze].has(A)}clear(){this[ze].clear(),this[Ke]=null,this.cookies=null}append(A,t){this[Ke]=null;let a=A.toLowerCase(),r=this[ze].get(a);if(r){let i=a==="cookie"?"; ":", ";this[ze].set(a,{name:r.name,value:`${r.value}${i}${t}`})}else this[ze].set(a,{name:A,value:t});a==="set-cookie"&&(this.cookies??=[],this.cookies.push(t))}set(A,t){this[Ke]=null;let a=A.toLowerCase();return a==="set-cookie"&&(this.cookies=[t]),this[ze].set(a,{name:A,value:t})}delete(A){return this[Ke]=null,A=A.toLowerCase(),A==="set-cookie"&&(this.cookies=null),this[ze].delete(A)}get(A){return this.contains(A)?this[ze].get(A.toLowerCase())?.value??null:null}*[Symbol.iterator](){for(let[A,{value:t}]of this[ze])yield[A,t]}get entries(){let A={};if(this[ze].size)for(let{name:t,value:a}of this[ze].values())A[t]=a;return A}},Ea=class e{constructor(A=void 0){this[Xe]=new Bs,this[Q1]="none",A!==void 0&&(A=Y.converters.HeadersInit(A),Qu(this,A))}append(A,t){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,2,{header:"Headers.append"}),A=Y.converters.ByteString(A),t=Y.converters.ByteString(t),t=Eu(t),Dr(A)){if(!uu(t))throw Y.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.append",value:A,type:"header name"});if(this[Q1]==="immutable")throw new TypeError("immutable");return this[Q1],this[Xe].append(A,t)}delete(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.delete"}),A=Y.converters.ByteString(A),!Dr(A))throw Y.errors.invalidArgument({prefix:"Headers.delete",value:A,type:"header name"});if(this[Q1]==="immutable")throw new TypeError("immutable");if(this[Q1],!!this[Xe].contains(A))return this[Xe].delete(A)}get(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.get"}),A=Y.converters.ByteString(A),!Dr(A))throw Y.errors.invalidArgument({prefix:"Headers.get",value:A,type:"header name"});return this[Xe].get(A)}has(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.has"}),A=Y.converters.ByteString(A),!Dr(A))throw Y.errors.invalidArgument({prefix:"Headers.has",value:A,type:"header name"});return this[Xe].contains(A)}set(A,t){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,2,{header:"Headers.set"}),A=Y.converters.ByteString(A),t=Y.converters.ByteString(t),t=Eu(t),Dr(A)){if(!uu(t))throw Y.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.set",value:A,type:"header name"});if(this[Q1]==="immutable")throw new TypeError("immutable");return this[Q1],this[Xe].set(A,t)}getSetCookie(){Y.brandCheck(this,e);let A=this[Xe].cookies;return A?[...A]:[]}get[Ke](){if(this[Xe][Ke])return this[Xe][Ke];let A=[],t=[...this[Xe]].sort((r,i)=>r[0]<i[0]?-1:1),a=this[Xe].cookies;for(let[r,i]of t)if(r==="set-cookie")for(let s of a)A.push([r,s]);else nw(i!==null),A.push([r,i]);return this[Xe][Ke]=A,A}keys(){return Y.brandCheck(this,e),Rp(()=>[...this[Ke].values()],"Headers","key")}values(){return Y.brandCheck(this,e),Rp(()=>[...this[Ke].values()],"Headers","value")}entries(){return Y.brandCheck(this,e),Rp(()=>[...this[Ke].values()],"Headers","key+value")}forEach(A,t=globalThis){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.forEach"}),typeof A!="function")throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.");for(let[a,r]of this)A.apply(t,[r,a,this])}[Symbol.for("nodejs.util.inspect.custom")](){return Y.brandCheck(this,e),this[Xe]}};Ea.prototype[Symbol.iterator]=Ea.prototype.entries;Object.defineProperties(Ea.prototype,{append:at,delete:at,get:at,has:at,set:at,getSetCookie:at,keys:at,values:at,entries:at,forEach:at,[Symbol.iterator]:{enumerable:!1},[Symbol.toStringTag]:{value:"Headers",configurable:!0}});Y.converters.HeadersInit=function(e){if(Y.util.Type(e)==="Object")return e[Symbol.iterator]?Y.converters["sequence<sequence<ByteString>>"](e):Y.converters["record<ByteString, ByteString>"](e);throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};Cu.exports={fill:Qu,Headers:Ea,HeadersList:Bs}});var ws=E((HS,yu)=>{"use strict";var{Headers:ow,HeadersList:mu,fill:dw}=C1(),{extractBody:Bu,cloneBody:pw,mixinBody:lw}=sr(),Sp=H(),{kEnumerableProperty:lA}=Sp,{isValidReasonPhrase:gw,isCancelled:cw,isAborted:uw,isBlobLike:Ew,serializeJavascriptValueToJSONString:Qw,isErrorLike:Cw,isomorphicEncode:mw}=wA(),{redirectStatus:Bw,nullBodyStatus:hw,DOMException:Iw}=Vt(),{kState:ae,kHeaders:ve,kGuard:Qa,kRealm:pA}=Et(),{webidl:M}=Ge(),{FormData:fw}=Ji(),{getGlobalOrigin:ww}=tr(),{URLSerializer:hu}=VA(),{kHeadersList:Np}=ie(),Fp=require("assert"),{types:bp}=require("util"),fu=globalThis.ReadableStream||require("stream/web").ReadableStream,Ca=class e{static error(){let A={settingsObject:{}},t=new e;return t[ae]=Is(),t[pA]=A,t[ve][Np]=t[ae].headersList,t[ve][Qa]="immutable",t[ve][pA]=A,t}static json(A=void 0,t={}){M.argumentLengthCheck(arguments,1,{header:"Response.json"}),t!==null&&(t=M.converters.ResponseInit(t));let a=new TextEncoder("utf-8").encode(Qw(A)),r=Bu(a),i={settingsObject:{}},s=new e;return s[pA]=i,s[ve][Qa]="response",s[ve][pA]=i,Iu(s,t,{body:r[0],type:"application/json"}),s}static redirect(A,t=302){let a={settingsObject:{}};M.argumentLengthCheck(arguments,1,{header:"Response.redirect"}),A=M.converters.USVString(A),t=M.converters["unsigned short"](t);let r;try{r=new URL(A,ww())}catch(n){throw Object.assign(new TypeError("Failed to parse URL from "+A),{cause:n})}if(!Bw.includes(t))throw new RangeError("Invalid status code "+t);let i=new e;i[pA]=a,i[ve][Qa]="immutable",i[ve][pA]=a,i[ae].status=t;let s=mw(hu(r));return i[ae].headersList.append("location",s),i}constructor(A=null,t={}){A!==null&&(A=M.converters.BodyInit(A)),t=M.converters.ResponseInit(t),this[pA]={settingsObject:{}},this[ae]=fs({}),this[ve]=new ow,this[ve][Qa]="response",this[ve][Np]=this[ae].headersList,this[ve][pA]=this[pA];let a=null;if(A!=null){let[r,i]=Bu(A);a={body:r,type:i}}Iu(this,t,a)}get type(){return M.brandCheck(this,e),this[ae].type}get url(){M.brandCheck(this,e);let A=this[ae].urlList,t=A[A.length-1]??null;return t===null?"":hu(t,!0)}get redirected(){return M.brandCheck(this,e),this[ae].urlList.length>1}get status(){return M.brandCheck(this,e),this[ae].status}get ok(){return M.brandCheck(this,e),this[ae].status>=200&&this[ae].status<=299}get statusText(){return M.brandCheck(this,e),this[ae].statusText}get headers(){return M.brandCheck(this,e),this[ve]}get body(){return M.brandCheck(this,e),this[ae].body?this[ae].body.stream:null}get bodyUsed(){return M.brandCheck(this,e),!!this[ae].body&&Sp.isDisturbed(this[ae].body.stream)}clone(){if(M.brandCheck(this,e),this.bodyUsed||this.body&&this.body.locked)throw M.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let A=kp(this[ae]),t=new e;return t[ae]=A,t[pA]=this[pA],t[ve][Np]=A.headersList,t[ve][Qa]=this[ve][Qa],t[ve][pA]=this[ve][pA],t}};lw(Ca);Object.defineProperties(Ca.prototype,{type:lA,url:lA,status:lA,ok:lA,redirected:lA,statusText:lA,headers:lA,clone:lA,body:lA,bodyUsed:lA,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(Ca,{json:lA,redirect:lA,error:lA});function kp(e){if(e.internalResponse)return wu(kp(e.internalResponse),e.type);let A=fs({...e,body:null});return e.body!=null&&(A.body=pw(e.body)),A}function fs(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e.headersList?new mu(e.headersList):new mu,urlList:e.urlList?[...e.urlList]:[]}}function Is(e){let A=Cw(e);return fs({type:"error",status:0,error:A?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function hs(e,A){return A={internalResponse:e,...A},new Proxy(e,{get(t,a){return a in A?A[a]:t[a]},set(t,a,r){return Fp(!(a in A)),t[a]=r,!0}})}function wu(e,A){if(A==="basic")return hs(e,{type:"basic",headersList:e.headersList});if(A==="cors")return hs(e,{type:"cors",headersList:e.headersList});if(A==="opaque")return hs(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(A==="opaqueredirect")return hs(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});Fp(!1)}function yw(e){return Fp(cw(e)),uw(e)?Is(new Iw("The operation was aborted.","AbortError")):Is("Request was cancelled.")}function Iu(e,A,t){if(A.status!==null&&(A.status<200||A.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in A&&A.statusText!=null&&!gw(String(A.statusText)))throw new TypeError("Invalid statusText");if("status"in A&&A.status!=null&&(e[ae].status=A.status),"statusText"in A&&A.statusText!=null&&(e[ae].statusText=A.statusText),"headers"in A&&A.headers!=null&&dw(e[ve],A.headers),t){if(hw.includes(e.status))throw M.errors.exception({header:"Response constructor",message:"Invalid response status code "+e.status});e[ae].body=t.body,t.type!=null&&!e[ae].headersList.contains("Content-Type")&&e[ae].headersList.append("content-type",t.type)}}M.converters.ReadableStream=M.interfaceConverter(fu);M.converters.FormData=M.interfaceConverter(fw);M.converters.URLSearchParams=M.interfaceConverter(URLSearchParams);M.converters.XMLHttpRequestBodyInit=function(e){return typeof e=="string"?M.converters.USVString(e):Ew(e)?M.converters.Blob(e,{strict:!1}):bp.isAnyArrayBuffer(e)||bp.isTypedArray(e)||bp.isDataView(e)?M.converters.BufferSource(e):Sp.isFormDataLike(e)?M.converters.FormData(e,{strict:!1}):e instanceof URLSearchParams?M.converters.URLSearchParams(e):M.converters.DOMString(e)};M.converters.BodyInit=function(e){return e instanceof fu?M.converters.ReadableStream(e):e?.[Symbol.asyncIterator]?e:M.converters.XMLHttpRequestBodyInit(e)};M.converters.ResponseInit=M.dictionaryConverter([{key:"status",converter:M.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:M.converters.ByteString,defaultValue:""},{key:"headers",converter:M.converters.HeadersInit}]);yu.exports={makeNetworkError:Is,makeResponse:fs,makeAppropriateNetworkError:yw,filterResponse:wu,Response:Ca,cloneResponse:kp}});var Nr=E((OS,Fu)=>{"use strict";var{extractBody:Dw,mixinBody:vw,cloneBody:Rw}=sr(),{Headers:Lp,fill:Nw,HeadersList:Du}=C1(),{FinalizationRegistry:bw}=qd()(),Rr=H(),{isValidHTTPToken:Sw,sameOrigin:vu,normalizeMethod:Fw,makePolicyContainer:kw}=wA(),{forbiddenMethods:Lw,corsSafeListedMethods:Uw,referrerPolicy:Tw,requestRedirect:Mw,requestMode:Vw,requestCredentials:Yw,requestCache:Jw,requestDuplex:Gw}=Vt(),{kEnumerableProperty:Ce}=Rr,{kHeaders:Re,kSignal:vr,kState:Ae,kGuard:ys,kRealm:gA}=Et(),{webidl:F}=Ge(),{getGlobalOrigin:xw}=tr(),{URLSerializer:_w}=VA(),{kHeadersList:Ds}=ie(),qw=require("assert"),{getMaxListeners:Ru,setMaxListeners:Nu,getEventListeners:Hw,defaultMaxListeners:bu}=require("events"),Up=globalThis.TransformStream,Su=Symbol("init"),Ow=Symbol("abortController"),Pw=new bw(({signal:e,abort:A})=>{e.removeEventListener("abort",A)}),m1=class e{constructor(A,t={}){if(A===Su)return;F.argumentLengthCheck(arguments,1,{header:"Request constructor"}),A=F.converters.RequestInfo(A),t=F.converters.RequestInit(t),this[gA]={settingsObject:{baseUrl:xw(),get origin(){return this.baseUrl?.origin},policyContainer:kw()}};let a=null,r=null,i=this[gA].settingsObject.baseUrl,s=null;if(typeof A=="string"){let Q;try{Q=new URL(A,i)}catch(m){throw new TypeError("Failed to parse URL from "+A,{cause:m})}if(Q.username||Q.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+A);a=vs({urlList:[Q]}),r="cors"}else qw(A instanceof e),a=A[Ae],s=A[vr];let n=this[gA].settingsObject.origin,o="client";if(a.window?.constructor?.name==="EnvironmentSettingsObject"&&vu(a.window,n)&&(o=a.window),t.window!=null)throw new TypeError(`'window' option '${o}' must be null`);if("window"in t&&(o="no-window"),a=vs({method:a.method,headersList:a.headersList,unsafeRequest:a.unsafeRequest,client:this[gA].settingsObject,window:o,priority:a.priority,origin:a.origin,referrer:a.referrer,referrerPolicy:a.referrerPolicy,mode:a.mode,credentials:a.credentials,cache:a.cache,redirect:a.redirect,integrity:a.integrity,keepalive:a.keepalive,reloadNavigation:a.reloadNavigation,historyNavigation:a.historyNavigation,urlList:[...a.urlList]}),Object.keys(t).length>0&&(a.mode==="navigate"&&(a.mode="same-origin"),a.reloadNavigation=!1,a.historyNavigation=!1,a.origin="client",a.referrer="client",a.referrerPolicy="",a.url=a.urlList[a.urlList.length-1],a.urlList=[a.url]),t.referrer!==void 0){let Q=t.referrer;if(Q==="")a.referrer="no-referrer";else{let m;try{m=new URL(Q,i)}catch(C){throw new TypeError(`Referrer "${Q}" is not a valid URL.`,{cause:C})}m.protocol==="about:"&&m.hostname==="client"||n&&!vu(m,this[gA].settingsObject.baseUrl)?a.referrer="client":a.referrer=m}}t.referrerPolicy!==void 0&&(a.referrerPolicy=t.referrerPolicy);let d;if(t.mode!==void 0?d=t.mode:d=r,d==="navigate")throw F.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(d!=null&&(a.mode=d),t.credentials!==void 0&&(a.credentials=t.credentials),t.cache!==void 0&&(a.cache=t.cache),a.cache==="only-if-cached"&&a.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(t.redirect!==void 0&&(a.redirect=t.redirect),t.integrity!==void 0&&t.integrity!=null&&(a.integrity=String(t.integrity)),t.keepalive!==void 0&&(a.keepalive=!!t.keepalive),t.method!==void 0){let Q=t.method;if(!Sw(t.method))throw TypeError(`'${t.method}' is not a valid HTTP method.`);if(Lw.indexOf(Q.toUpperCase())!==-1)throw TypeError(`'${t.method}' HTTP method is unsupported.`);Q=Fw(t.method),a.method=Q}t.signal!==void 0&&(s=t.signal),this[Ae]=a;let l=new AbortController;if(this[vr]=l.signal,this[vr][gA]=this[gA],s!=null){if(!s||typeof s.aborted!="boolean"||typeof s.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(s.aborted)l.abort(s.reason);else{this[Ow]=l;let Q=new WeakRef(l),m=function(){let C=Q.deref();C!==void 0&&C.abort(this.reason)};try{(typeof Ru=="function"&&Ru(s)===bu||Hw(s,"abort").length>=bu)&&Nu(100,s)}catch{}Rr.addAbortListener(s,m),Pw.register(l,{signal:s,abort:m})}}if(this[Re]=new Lp,this[Re][Ds]=a.headersList,this[Re][ys]="request",this[Re][gA]=this[gA],d==="no-cors"){if(!Uw.includes(a.method))throw new TypeError(`'${a.method} is unsupported in no-cors mode.`);this[Re][ys]="request-no-cors"}if(Object.keys(t).length!==0){let Q=new Lp(this[Re]);if(t.headers!==void 0&&(Q=t.headers),this[Re][Ds].clear(),Q.constructor.name==="Headers")for(let[m,C]of Q)this[Re].append(m,C);else Nw(this[Re],Q)}let p=A instanceof e?A[Ae].body:null;if((t.body!=null||p!=null)&&(a.method==="GET"||a.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let g=null;if(t.body!=null){let[Q,m]=Dw(t.body,a.keepalive);g=Q,m&&!this[Re][Ds].contains("content-type")&&this[Re].append("content-type",m)}let c=g??p;if(c!=null&&c.source==null){if(g!=null&&t.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(a.mode!=="same-origin"&&a.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');a.useCORSPreflightFlag=!0}let u=c;if(g==null&&p!=null){if(Rr.isDisturbed(p.stream)||p.stream.locked)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");Up||(Up=require("stream/web").TransformStream);let Q=new Up;p.stream.pipeThrough(Q),u={source:p.source,length:p.length,stream:Q.readable}}this[Ae].body=u}get method(){return F.brandCheck(this,e),this[Ae].method}get url(){return F.brandCheck(this,e),_w(this[Ae].url)}get headers(){return F.brandCheck(this,e),this[Re]}get destination(){return F.brandCheck(this,e),this[Ae].destination}get referrer(){return F.brandCheck(this,e),this[Ae].referrer==="no-referrer"?"":this[Ae].referrer==="client"?"about:client":this[Ae].referrer.toString()}get referrerPolicy(){return F.brandCheck(this,e),this[Ae].referrerPolicy}get mode(){return F.brandCheck(this,e),this[Ae].mode}get credentials(){return this[Ae].credentials}get cache(){return F.brandCheck(this,e),this[Ae].cache}get redirect(){return F.brandCheck(this,e),this[Ae].redirect}get integrity(){return F.brandCheck(this,e),this[Ae].integrity}get keepalive(){return F.brandCheck(this,e),this[Ae].keepalive}get isReloadNavigation(){return F.brandCheck(this,e),this[Ae].reloadNavigation}get isHistoryNavigation(){return F.brandCheck(this,e),this[Ae].historyNavigation}get signal(){return F.brandCheck(this,e),this[vr]}get body(){return F.brandCheck(this,e),this[Ae].body?this[Ae].body.stream:null}get bodyUsed(){return F.brandCheck(this,e),!!this[Ae].body&&Rr.isDisturbed(this[Ae].body.stream)}get duplex(){return F.brandCheck(this,e),"half"}clone(){if(F.brandCheck(this,e),this.bodyUsed||this.body?.locked)throw new TypeError("unusable");let A=Ww(this[Ae]),t=new e(Su);t[Ae]=A,t[gA]=this[gA],t[Re]=new Lp,t[Re][Ds]=A.headersList,t[Re][ys]=this[Re][ys],t[Re][gA]=this[Re][gA];let a=new AbortController;return this.signal.aborted?a.abort(this.signal.reason):Rr.addAbortListener(this.signal,()=>{a.abort(this.signal.reason)}),t[vr]=a.signal,t}};vw(m1);function vs(e){let A={method:"GET",localURLsOnly:!1,unsafeRequest:!1,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:!1,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:!1,credentials:"same-origin",useCredentials:!1,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:!1,historyNavigation:!1,userActivation:!1,taintedOrigin:!1,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:!1,done:!1,timingAllowFailed:!1,...e,headersList:e.headersList?new Du(e.headersList):new Du};return A.url=A.urlList[0],A}function Ww(e){let A=vs({...e,body:null});return e.body!=null&&(A.body=Rw(e.body)),A}Object.defineProperties(m1.prototype,{method:Ce,url:Ce,headers:Ce,redirect:Ce,clone:Ce,signal:Ce,duplex:Ce,destination:Ce,body:Ce,bodyUsed:Ce,isHistoryNavigation:Ce,isReloadNavigation:Ce,keepalive:Ce,integrity:Ce,cache:Ce,credentials:Ce,attribute:Ce,referrerPolicy:Ce,referrer:Ce,mode:Ce,[Symbol.toStringTag]:{value:"Request",configurable:!0}});F.converters.Request=F.interfaceConverter(m1);F.converters.RequestInfo=function(e){return typeof e=="string"?F.converters.USVString(e):e instanceof m1?F.converters.Request(e):F.converters.USVString(e)};F.converters.AbortSignal=F.interfaceConverter(AbortSignal);F.converters.RequestInit=F.dictionaryConverter([{key:"method",converter:F.converters.ByteString},{key:"headers",converter:F.converters.HeadersInit},{key:"body",converter:F.nullableConverter(F.converters.BodyInit)},{key:"referrer",converter:F.converters.USVString},{key:"referrerPolicy",converter:F.converters.DOMString,allowedValues:Tw},{key:"mode",converter:F.converters.DOMString,allowedValues:Vw},{key:"credentials",converter:F.converters.DOMString,allowedValues:Yw},{key:"cache",converter:F.converters.DOMString,allowedValues:Jw},{key:"redirect",converter:F.converters.DOMString,allowedValues:Mw},{key:"integrity",converter:F.converters.DOMString},{key:"keepalive",converter:F.converters.boolean},{key:"signal",converter:F.nullableConverter(e=>F.converters.AbortSignal(e,{strict:!1}))},{key:"window",converter:F.converters.any},{key:"duplex",converter:F.converters.DOMString,allowedValues:Gw}]);Fu.exports={Request:m1,makeRequest:vs}});var Ls=E((PS,Ou)=>{"use strict";var{Response:jw,makeNetworkError:$,makeAppropriateNetworkError:Rs,filterResponse:Tp,makeResponse:Ns}=ws(),{Headers:ku}=C1(),{Request:Zw,makeRequest:Xw}=Nr(),br=require("zlib"),{bytesMatch:zw,makePolicyContainer:Kw,clonePolicyContainer:$w,requestBadPort:ey,TAOCheck:Ay,appendRequestOriginHeader:ty,responseLocationURL:ay,requestCurrentURL:rt,setRequestReferrerPolicyOnRedirect:ry,tryUpgradeRequestToAPotentiallyTrustworthyURL:iy,createOpaqueTimingInfo:Op,appendFetchMetadata:sy,corsCheck:ny,crossOriginResourcePolicyCheck:oy,determineRequestsReferrer:dy,coarsenedSharedCurrentTime:Pp,createDeferredPromise:py,isBlobLike:ly,sameOrigin:xp,isCancelled:ma,isAborted:Lu,isErrorLike:gy,fullyReadBody:Vu,readableStreamClose:cy,isomorphicEncode:_p,urlIsLocal:uy,urlIsHttpHttpsScheme:Wp,urlHasHttpsScheme:Ey}=wA(),{kState:qp,kHeaders:Mp,kGuard:Qy,kRealm:Uu}=Et(),Ba=require("assert"),{safelyExtractBody:bs}=sr(),{redirectStatus:Yu,nullBodyStatus:Ju,safeMethods:Cy,requestBodyHeader:my,subresource:By,DOMException:Ss}=Vt(),{kHeadersList:Hp}=ie(),hy=require("events"),{Readable:Iy,pipeline:fy}=require("stream"),{addAbortListener:wy,isErrored:yy,isReadable:Fs,nodeMajor:Tu,nodeMinor:Dy}=H(),{dataURLProcessor:vy,serializeAMimeType:Ry}=VA(),{TransformStream:Ny}=require("stream/web"),{getGlobalDispatcher:by}=ua(),{webidl:Sy}=Ge(),{STATUS_CODES:Fy}=require("http"),Vp,Yp=globalThis.ReadableStream,ks=class extends hy{constructor(A){super(),this.dispatcher=A,this.connection=null,this.dump=!1,this.state="ongoing",this.setMaxListeners(21)}terminate(A){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(A),this.emit("terminated",A))}abort(A){this.state==="ongoing"&&(this.state="aborted",A||(A=new Ss("The operation was aborted.","AbortError")),this.serializedAbortReason=A,this.connection?.destroy(A),this.emit("terminated",A))}};async function ky(e,A={}){Sy.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});let t=py(),a;try{a=new Zw(e,A)}catch(g){return t.reject(g),t.promise}let r=a[qp];if(a.signal.aborted)return Jp(t,r,null,a.signal.reason),t.promise;r.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(r.serviceWorkers="none");let s=null,n=null,o=!1,d=null;return wy(a.signal,()=>{o=!0,Ba(d!=null),d.abort(a.signal.reason),Jp(t,r,s,a.signal.reason)}),d=xu({request:r,processResponseEndOfBody:g=>Gu(g,"fetch"),processResponse:g=>{if(!o){if(g.aborted){Jp(t,r,s,d.serializedAbortReason);return}if(g.type==="error"){t.reject(Object.assign(new TypeError("fetch failed"),{cause:g.error}));return}s=new jw,s[qp]=g,s[Uu]=n,s[Mp][Hp]=g.headersList,s[Mp][Qy]="immutable",s[Mp][Uu]=n,t.resolve(s)}},dispatcher:A.dispatcher??by()}),t.promise}function Gu(e,A="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let t=e.urlList[0],a=e.timingInfo,r=e.cacheState;Wp(t)&&a!==null&&(a.timingAllowPassed||(a=Op({startTime:a.startTime}),r=""),a.endTime=Pp(),e.timingInfo=a,Ly(a,t,A,globalThis,r))}function Ly(e,A,t,a,r){(Tu>18||Tu===18&&Dy>=2)&&performance.markResourceTiming(e,A.href,t,a,r)}function Jp(e,A,t,a){if(a||(a=new Ss("The operation was aborted.","AbortError")),e.reject(a),A.body!=null&&Fs(A.body?.stream)&&A.body.stream.cancel(a).catch(i=>{if(i.code!=="ERR_INVALID_STATE")throw i}),t==null)return;let r=t[qp];r.body!=null&&Fs(r.body?.stream)&&r.body.stream.cancel(a).catch(i=>{if(i.code!=="ERR_INVALID_STATE")throw i})}function xu({request:e,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:a,processResponseEndOfBody:r,processResponseConsumeBody:i,useParallelQueue:s=!1,dispatcher:n}){let o=null,d=!1;e.client!=null&&(o=e.client.globalObject,d=e.client.crossOriginIsolatedCapability);let l=Pp(d),p=Op({startTime:l}),g={controller:new ks(n),request:e,timingInfo:p,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:a,processResponseConsumeBody:i,processResponseEndOfBody:r,taskDestination:o,crossOriginIsolatedCapability:d};return Ba(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client?.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=$w(e.client.policyContainer):e.policyContainer=Kw()),e.headersList.contains("accept")||e.headersList.append("accept","*/*"),e.headersList.contains("accept-language")||e.headersList.append("accept-language","*"),e.priority,By.includes(e.destination),_u(g).catch(c=>{g.controller.terminate(c)}),g.controller}async function _u(e,A=!1){let t=e.request,a=null;if(t.localURLsOnly&&!uy(rt(t))&&(a=$("local URLs only")),iy(t),ey(t)==="blocked"&&(a=$("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=dy(t)),a===null&&(a=await(async()=>{let i=rt(t);return xp(i,t.url)&&t.responseTainting==="basic"||i.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await Mu(e)):t.mode==="same-origin"?$('request mode cannot be "same-origin"'):t.mode==="no-cors"?t.redirect!=="follow"?$('redirect mode cannot be "follow" for "no-cors" request'):(t.responseTainting="opaque",await Mu(e)):Wp(rt(t))?(t.responseTainting="cors",await qu(e)):$("URL scheme must be a HTTP(S) scheme")})()),A)return a;a.status!==0&&!a.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?a=Tp(a,"basic"):t.responseTainting==="cors"?a=Tp(a,"cors"):t.responseTainting==="opaque"?a=Tp(a,"opaque"):Ba(!1));let r=a.status===0?a:a.internalResponse;if(r.urlList.length===0&&r.urlList.push(...t.urlList),t.timingAllowFailed||(a.timingAllowPassed=!0),a.type==="opaque"&&r.status===206&&r.rangeRequested&&!t.headers.contains("range")&&(a=r=$()),a.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||Ju.includes(r.status))&&(r.body=null,e.controller.dump=!0),t.integrity){let i=n=>Gp(e,$(n));if(t.responseTainting==="opaque"||a.body==null){i(a.error);return}let s=n=>{if(!zw(n,t.integrity)){i("integrity mismatch");return}a.body=bs(n)[0],Gp(e,a)};await Vu(a.body,s,i)}else Gp(e,a)}async function Mu(e){if(ma(e)&&e.request.redirectCount===0)return Rs(e);let{request:A}=e,{protocol:t}=rt(A);switch(t){case"about:":return $("about scheme is not supported");case"blob:":{Vp||(Vp=require("buffer").resolveObjectURL);let a=rt(A);if(a.search.length!==0)return $("NetworkError when attempting to fetch resource.");let r=Vp(a.toString());if(A.method!=="GET"||!ly(r))return $("invalid method");let i=bs(r),s=i[0],n=_p(`${s.length}`),o=i[1]??"",d=Ns({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:n}],["content-type",{name:"Content-Type",value:o}]]});return d.body=s,d}case"data:":{let a=rt(A),r=vy(a);if(r==="failure")return $("failed to fetch the data URL");let i=Ry(r.mimeType);return Ns({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:i}]],body:bs(r.body)[0]})}case"file:":return $("not implemented... yet...");case"http:":case"https:":return await qu(e).catch(a=>$(a));default:return $("unknown scheme")}}function Uy(e,A){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(A))}async function Gp(e,A){A.type==="error"&&(A.urlList=[e.request.urlList[0]],A.timingInfo=Op({startTime:e.timingInfo.startTime}));let t=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(A))};if(e.processResponse!=null&&queueMicrotask(()=>e.processResponse(A)),A.body==null)t();else{let a=(i,s)=>{s.enqueue(i)},r=new Ny({start(){},transform:a,flush:t},{size(){return 1}},{size(){return 1}});A.body={stream:A.body.stream.pipeThrough(r)}}if(e.processResponseConsumeBody!=null){let a=i=>e.processResponseConsumeBody(A,i),r=i=>e.processResponseConsumeBody(A,i);A.body==null?queueMicrotask(()=>a(null)):await Vu(A.body,a,r)}}async function qu(e){let A=e.request,t=null,a=null,r=e.timingInfo;if(A.serviceWorkers,t===null){if(A.redirect==="follow"&&(A.serviceWorkers="none"),a=t=await Hu(e),A.responseTainting==="cors"&&ny(A,t)==="failure")return $("cors failure");Ay(A,t)==="failure"&&(A.timingAllowFailed=!0)}return(A.responseTainting==="opaque"||t.type==="opaque")&&oy(A.origin,A.client,A.destination,a)==="blocked"?$("blocked"):(Yu.includes(a.status)&&(A.redirect!=="manual"&&e.controller.connection.destroy(),A.redirect==="error"?t=$("unexpected redirect"):A.redirect==="manual"?t=a:A.redirect==="follow"?t=await Ty(e,t):Ba(!1)),t.timingInfo=r,t)}async function Ty(e,A){let t=e.request,a=A.internalResponse?A.internalResponse:A,r;try{if(r=ay(a,rt(t).hash),r==null)return A}catch(s){return $(s)}if(!Wp(r))return $("URL scheme must be a HTTP(S) scheme");if(t.redirectCount===20)return $("redirect count exceeded");if(t.redirectCount+=1,t.mode==="cors"&&(r.username||r.password)&&!xp(t,r))return $('cross origin not allowed for request mode "cors"');if(t.responseTainting==="cors"&&(r.username||r.password))return $('URL cannot contain credentials for request mode "cors"');if(a.status!==303&&t.body!=null&&t.body.source==null)return $();if([301,302].includes(a.status)&&t.method==="POST"||a.status===303&&!["GET","HEAD"].includes(t.method)){t.method="GET",t.body=null;for(let s of my)t.headersList.delete(s)}xp(rt(t),r)||t.headersList.delete("authorization"),t.body!=null&&(Ba(t.body.source!=null),t.body=bs(t.body.source)[0]);let i=e.timingInfo;return i.redirectEndTime=i.postRedirectStartTime=Pp(e.crossOriginIsolatedCapability),i.redirectStartTime===0&&(i.redirectStartTime=i.startTime),t.urlList.push(r),ry(t,a),_u(e,!0)}async function Hu(e,A=!1,t=!1){let a=e.request,r=null,i=null,s=null,n=null,o=!1;a.window==="no-window"&&a.redirect==="error"?(r=e,i=a):(i=Xw(a),r={...e},r.request=i);let d=a.credentials==="include"||a.credentials==="same-origin"&&a.responseTainting==="basic",l=i.body?i.body.length:null,p=null;if(i.body==null&&["POST","PUT"].includes(i.method)&&(p="0"),l!=null&&(p=_p(`${l}`)),p!=null&&i.headersList.append("content-length",p),l!=null&&i.keepalive,i.referrer instanceof URL&&i.headersList.append("referer",_p(i.referrer.href)),ty(i),sy(i),i.headersList.contains("user-agent")||i.headersList.append("user-agent","undici"),i.cache==="default"&&(i.headersList.contains("if-modified-since")||i.headersList.contains("if-none-match")||i.headersList.contains("if-unmodified-since")||i.headersList.contains("if-match")||i.headersList.contains("if-range"))&&(i.cache="no-store"),i.cache==="no-cache"&&!i.preventNoCacheCacheControlHeaderModification&&!i.headersList.contains("cache-control")&&i.headersList.append("cache-control","max-age=0"),(i.cache==="no-store"||i.cache==="reload")&&(i.headersList.contains("pragma")||i.headersList.append("pragma","no-cache"),i.headersList.contains("cache-control")||i.headersList.append("cache-control","no-cache")),i.headersList.contains("range")&&i.headersList.append("accept-encoding","identity"),i.headersList.contains("accept-encoding")||(Ey(rt(i))?i.headersList.append("accept-encoding","br, gzip, deflate"):i.headersList.append("accept-encoding","gzip, deflate")),n==null&&(i.cache="no-store"),i.mode!=="no-store"&&i.mode,s==null){if(i.mode==="only-if-cached")return $("only if cached");let g=await My(r,d,t);!Cy.includes(i.method)&&g.status>=200&&g.status<=399,o&&g.status,s==null&&(s=g)}if(s.urlList=[...i.urlList],i.headersList.contains("range")&&(s.rangeRequested=!0),s.requestIncludesCredentials=d,s.status===407)return a.window==="no-window"?$():ma(e)?Rs(e):$("proxy authentication required");if(s.status===421&&!t&&(a.body==null||a.body.source!=null)){if(ma(e))return Rs(e);e.controller.connection.destroy(),s=await Hu(e,A,!0)}return s}async function My(e,A=!1,t=!1){Ba(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(u){this.destroyed||(this.destroyed=!0,this.abort?.(u??new Ss("The operation was aborted.","AbortError")))}};let a=e.request,r=null,i=e.timingInfo;null==null&&(a.cache="no-store");let n=t?"yes":"no";a.mode;let o=null;if(a.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(a.body!=null){let u=async function*(C){ma(e)||(yield C,e.processRequestBodyChunkLength?.(C.byteLength))},Q=()=>{ma(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},m=C=>{ma(e)||(C.name==="AbortError"?e.controller.abort():e.controller.terminate(C))};o=async function*(){try{for await(let C of a.body.stream)yield*u(C);Q()}catch(C){m(C)}}()}try{let{body:u,status:Q,statusText:m,headersList:C,socket:B}=await c({body:o});if(B)r=Ns({status:Q,statusText:m,headersList:C,socket:B});else{let f=u[Symbol.asyncIterator]();e.controller.next=()=>f.next(),r=Ns({status:Q,statusText:m,headersList:C})}}catch(u){return u.name==="AbortError"?(e.controller.connection.destroy(),Rs(e)):$(u)}let d=()=>{e.controller.resume()},l=u=>{e.controller.abort(u)};Yp||(Yp=require("stream/web").ReadableStream);let p=new Yp({async start(u){e.controller.controller=u},async pull(u){await d(u)},async cancel(u){await l(u)}},{highWaterMark:0,size(){return 1}});r.body={stream:p},e.controller.on("terminated",g),e.controller.resume=async()=>{for(;;){let u,Q;try{let{done:m,value:C}=await e.controller.next();if(Lu(e))break;u=m?void 0:C}catch(m){e.controller.ended&&!i.encodedBodySize?u=void 0:(u=m,Q=!0)}if(u===void 0){cy(e.controller.controller),Uy(e,r);return}if(i.decodedBodySize+=u?.byteLength??0,Q){e.controller.terminate(u);return}if(e.controller.controller.enqueue(new Uint8Array(u)),yy(p)){e.controller.terminate();return}if(!e.controller.controller.desiredSize)return}};function g(u){Lu(e)?(r.aborted=!0,Fs(p)&&e.controller.controller.error(e.controller.serializedAbortReason)):Fs(p)&&e.controller.controller.error(new TypeError("terminated",{cause:gy(u)?u:void 0})),e.controller.connection.destroy()}return r;async function c({body:u}){let Q=rt(a),m=e.controller.dispatcher;return new Promise((C,B)=>m.dispatch({path:Q.pathname+Q.search,origin:Q.origin,method:a.method,body:e.controller.dispatcher.isMockActive?a.body&&a.body.source:u,headers:a.headersList.entries,maxRedirections:0,upgrade:a.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(f){let{connection:h}=e.controller;h.destroyed?f(new Ss("The operation was aborted.","AbortError")):(e.controller.on("terminated",f),this.abort=h.abort=f)},onHeaders(f,h,w,v){if(f<200)return;let S=[],x="",we=new ku;for(let Se=0;Se<h.length;Se+=2){let le=h[Se+0].toString("latin1"),mA=h[Se+1].toString("latin1");le.toLowerCase()==="content-encoding"?S=mA.toLowerCase().split(",").map(X=>X.trim()).reverse():le.toLowerCase()==="location"&&(x=mA),we.append(le,mA)}this.body=new Iy({read:w});let me=[],Nt=a.redirect==="follow"&&x&&Yu.includes(f);if(a.method!=="HEAD"&&a.method!=="CONNECT"&&!Ju.includes(f)&&!Nt)for(let Se of S)if(Se==="x-gzip"||Se==="gzip")me.push(br.createGunzip({flush:br.constants.Z_SYNC_FLUSH,finishFlush:br.constants.Z_SYNC_FLUSH}));else if(Se==="deflate")me.push(br.createInflate());else if(Se==="br")me.push(br.createBrotliDecompress());else{me.length=0;break}return C({status:f,statusText:v,headersList:we[Hp],body:me.length?fy(this.body,...me,()=>{}):this.body.on("error",()=>{})}),!0},onData(f){if(e.controller.dump)return;let h=f;return i.encodedBodySize+=h.byteLength,this.body.push(h)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.ended=!0,this.body.push(null)},onError(f){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(f),e.controller.terminate(f),B(f)},onUpgrade(f,h,w){if(f!==101)return;let v=new ku;for(let S=0;S<h.length;S+=2){let x=h[S+0].toString("latin1"),we=h[S+1].toString("latin1");v.append(x,we)}return C({status:f,statusText:Fy[f],headersList:v[Hp],socket:w}),!0}}))}}Ou.exports={fetch:ky,Fetch:ks,fetching:xu,finalizeAndReportTiming:Gu}});var jp=E((WS,Pu)=>{"use strict";Pu.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var ju=E((jS,Wu)=>{"use strict";var{webidl:cA}=Ge(),Us=Symbol("ProgressEvent state"),Zp=class e extends Event{constructor(A,t={}){A=cA.converters.DOMString(A),t=cA.converters.ProgressEventInit(t??{}),super(A,t),this[Us]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return cA.brandCheck(this,e),this[Us].lengthComputable}get loaded(){return cA.brandCheck(this,e),this[Us].loaded}get total(){return cA.brandCheck(this,e),this[Us].total}};cA.converters.ProgressEventInit=cA.dictionaryConverter([{key:"lengthComputable",converter:cA.converters.boolean,defaultValue:!1},{key:"loaded",converter:cA.converters["unsigned long long"],defaultValue:0},{key:"total",converter:cA.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:cA.converters.boolean,defaultValue:!1},{key:"cancelable",converter:cA.converters.boolean,defaultValue:!1},{key:"composed",converter:cA.converters.boolean,defaultValue:!1}]);Wu.exports={ProgressEvent:Zp}});var Xu=E((ZS,Zu)=>{"use strict";function Vy(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}Zu.exports={getEncoding:Vy}});var rE=E((XS,aE)=>{"use strict";var{kState:ha,kError:Xp,kResult:zu,kAborted:Sr,kLastProgressEventFired:zp}=jp(),{ProgressEvent:Yy}=ju(),{getEncoding:Ku}=Xu(),{DOMException:Jy}=Vt(),{serializeAMimeType:Gy,parseMIMEType:$u}=VA(),{types:xy}=require("util"),{StringDecoder:eE}=require("string_decoder"),{btoa:AE}=require("buffer"),_y={enumerable:!0,writable:!1,configurable:!1};function qy(e,A,t,a){if(e[ha]==="loading")throw new Jy("Invalid state","InvalidStateError");e[ha]="loading",e[zu]=null,e[Xp]=null;let i=A.stream().getReader(),s=[],n=i.read(),o=!0;(async()=>{for(;!e[Sr];)try{let{done:d,value:l}=await n;if(o&&!e[Sr]&&queueMicrotask(()=>{Ot("loadstart",e)}),o=!1,!d&&xy.isUint8Array(l))s.push(l),(e[zp]===void 0||Date.now()-e[zp]>=50)&&!e[Sr]&&(e[zp]=Date.now(),queueMicrotask(()=>{Ot("progress",e)})),n=i.read();else if(d){queueMicrotask(()=>{e[ha]="done";try{let p=Hy(s,t,A.type,a);if(e[Sr])return;e[zu]=p,Ot("load",e)}catch(p){e[Xp]=p,Ot("error",e)}e[ha]!=="loading"&&Ot("loadend",e)});break}}catch(d){if(e[Sr])return;queueMicrotask(()=>{e[ha]="done",e[Xp]=d,Ot("error",e),e[ha]!=="loading"&&Ot("loadend",e)});break}})()}function Ot(e,A){let t=new Yy(e,{bubbles:!1,cancelable:!1});A.dispatchEvent(t)}function Hy(e,A,t,a){switch(A){case"DataURL":{let r="data:",i=$u(t||"application/octet-stream");i!=="failure"&&(r+=Gy(i)),r+=";base64,";let s=new eE("latin1");for(let n of e)r+=AE(s.write(n));return r+=AE(s.end()),r}case"Text":{let r="failure";if(a&&(r=Ku(a)),r==="failure"&&t){let i=$u(t);i!=="failure"&&(r=Ku(i.parameters.get("charset")))}return r==="failure"&&(r="UTF-8"),Oy(e,r)}case"ArrayBuffer":return tE(e).buffer;case"BinaryString":{let r="",i=new eE("latin1");for(let s of e)r+=i.write(s);return r+=i.end(),r}}}function Oy(e,A){let t=tE(e),a=Py(t),r=0;a!==null&&(A=a,r=a==="UTF-8"?3:2);let i=t.slice(r);return new TextDecoder(A).decode(i)}function Py(e){let[A,t,a]=e;return A===239&&t===187&&a===191?"UTF-8":A===254&&t===255?"UTF-16BE":A===255&&t===254?"UTF-16LE":null}function tE(e){let A=e.reduce((a,r)=>a+r.byteLength,0),t=0;return e.reduce((a,r)=>(a.set(r,t),t+=r.byteLength,a),new Uint8Array(A))}aE.exports={staticPropertyDescriptors:_y,readOperation:qy,fireAProgressEvent:Ot}});var oE=E((zS,nE)=>{"use strict";var{staticPropertyDescriptors:Ia,readOperation:Ts,fireAProgressEvent:iE}=rE(),{kState:B1,kError:sE,kResult:Ms,kEvents:O,kAborted:Wy}=jp(),{webidl:z}=Ge(),{kEnumerableProperty:$e}=H(),GA=class e extends EventTarget{constructor(){super(),this[B1]="empty",this[Ms]=null,this[sE]=null,this[O]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(A){z.brandCheck(this,e),z.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"}),A=z.converters.Blob(A,{strict:!1}),Ts(this,A,"ArrayBuffer")}readAsBinaryString(A){z.brandCheck(this,e),z.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"}),A=z.converters.Blob(A,{strict:!1}),Ts(this,A,"BinaryString")}readAsText(A,t=void 0){z.brandCheck(this,e),z.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"}),A=z.converters.Blob(A,{strict:!1}),t!==void 0&&(t=z.converters.DOMString(t)),Ts(this,A,"Text",t)}readAsDataURL(A){z.brandCheck(this,e),z.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"}),A=z.converters.Blob(A,{strict:!1}),Ts(this,A,"DataURL")}abort(){if(this[B1]==="empty"||this[B1]==="done"){this[Ms]=null;return}this[B1]==="loading"&&(this[B1]="done",this[Ms]=null),this[Wy]=!0,iE("abort",this),this[B1]!=="loading"&&iE("loadend",this)}get readyState(){switch(z.brandCheck(this,e),this[B1]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return z.brandCheck(this,e),this[Ms]}get error(){return z.brandCheck(this,e),this[sE]}get onloadend(){return z.brandCheck(this,e),this[O].loadend}set onloadend(A){z.brandCheck(this,e),this[O].loadend&&this.removeEventListener("loadend",this[O].loadend),typeof A=="function"?(this[O].loadend=A,this.addEventListener("loadend",A)):this[O].loadend=null}get onerror(){return z.brandCheck(this,e),this[O].error}set onerror(A){z.brandCheck(this,e),this[O].error&&this.removeEventListener("error",this[O].error),typeof A=="function"?(this[O].error=A,this.addEventListener("error",A)):this[O].error=null}get onloadstart(){return z.brandCheck(this,e),this[O].loadstart}set onloadstart(A){z.brandCheck(this,e),this[O].loadstart&&this.removeEventListener("loadstart",this[O].loadstart),typeof A=="function"?(this[O].loadstart=A,this.addEventListener("loadstart",A)):this[O].loadstart=null}get onprogress(){return z.brandCheck(this,e),this[O].progress}set onprogress(A){z.brandCheck(this,e),this[O].progress&&this.removeEventListener("progress",this[O].progress),typeof A=="function"?(this[O].progress=A,this.addEventListener("progress",A)):this[O].progress=null}get onload(){return z.brandCheck(this,e),this[O].load}set onload(A){z.brandCheck(this,e),this[O].load&&this.removeEventListener("load",this[O].load),typeof A=="function"?(this[O].load=A,this.addEventListener("load",A)):this[O].load=null}get onabort(){return z.brandCheck(this,e),this[O].abort}set onabort(A){z.brandCheck(this,e),this[O].abort&&this.removeEventListener("abort",this[O].abort),typeof A=="function"?(this[O].abort=A,this.addEventListener("abort",A)):this[O].abort=null}};GA.EMPTY=GA.prototype.EMPTY=0;GA.LOADING=GA.prototype.LOADING=1;GA.DONE=GA.prototype.DONE=2;Object.defineProperties(GA.prototype,{EMPTY:Ia,LOADING:Ia,DONE:Ia,readAsArrayBuffer:$e,readAsBinaryString:$e,readAsText:$e,readAsDataURL:$e,abort:$e,readyState:$e,result:$e,error:$e,onloadstart:$e,onprogress:$e,onload:$e,onabort:$e,onerror:$e,onloadend:$e,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(GA,{EMPTY:Ia,LOADING:Ia,DONE:Ia});nE.exports={FileReader:GA}});var Vs=E((KS,dE)=>{"use strict";dE.exports={kConstruct:Symbol("constructable")}});var gE=E(($S,lE)=>{"use strict";var jy=require("assert"),{URLSerializer:pE}=VA(),{isValidHeaderName:Zy}=wA();function Xy(e,A,t=!1){let a=pE(e,t),r=pE(A,t);return a===r}function zy(e){jy(e!==null);let A=[];for(let t of e.split(",")){if(t=t.trim(),t.length){if(!Zy(t))continue}else continue;A.push(t)}return A}lE.exports={urlEquals:Xy,fieldValues:zy}});var mE=E((eF,CE)=>{"use strict";var{kConstruct:Ky}=Vs(),{urlEquals:$y,fieldValues:Kp}=gE(),{kEnumerableProperty:h1,isDisturbed:eD}=H(),{kHeadersList:cE}=ie(),{webidl:N}=Ge(),{Response:EE,cloneResponse:AD}=ws(),{Request:it}=Nr(),{kState:Oe,kHeaders:Ys,kGuard:uE,kRealm:tD}=Et(),{fetching:aD}=Ls(),{urlIsHttpHttpsScheme:Js,createDeferredPromise:fa,readAllBytes:rD}=wA(),$p=require("assert"),{getGlobalDispatcher:iD}=ua(),Gs=class e{#e;constructor(){arguments[0]!==Ky&&N.illegalConstructor(),this.#e=arguments[1]}async match(A,t={}){N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,{header:"Cache.match"}),A=N.converters.RequestInfo(A),t=N.converters.CacheQueryOptions(t);let a=await this.matchAll(A,t);if(a.length!==0)return a[0]}async matchAll(A=void 0,t={}){N.brandCheck(this,e),A!==void 0&&(A=N.converters.RequestInfo(A)),t=N.converters.CacheQueryOptions(t);let a=null;if(A!==void 0)if(A instanceof it){if(a=A[Oe],a.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(a=new it(A)[Oe]);let r=[];if(A===void 0)for(let s of this.#e)r.push(s[1]);else{let s=this.#A(a,t);for(let n of s)r.push(n[1])}let i=[];for(let s of r){let n=new EE(s.body?.source??null),o=n[Oe].body;n[Oe]=s,n[Oe].body=o,n[Ys][cE]=s.headersList,n[Ys][uE]="immutable",i.push(n)}return Object.freeze(i)}async add(A){N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,{header:"Cache.add"}),A=N.converters.RequestInfo(A);let t=[A];return await this.addAll(t)}async addAll(A){N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,{header:"Cache.addAll"}),A=N.converters["sequence<RequestInfo>"](A);let t=[],a=[];for(let p of A){if(typeof p=="string")continue;let g=p[Oe];if(!Js(g.url)||g.method!=="GET")throw N.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}let r=[];for(let p of A){let g=new it(p)[Oe];if(!Js(g.url))throw N.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."});g.initiator="fetch",g.destination="subresource",a.push(g);let c=fa();r.push(aD({request:g,dispatcher:iD(),processResponse(u){if(u.type==="error"||u.status===206||u.status<200||u.status>299)c.reject(N.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(u.headersList.contains("vary")){let Q=Kp(u.headersList.get("vary"));for(let m of Q)if(m==="*"){c.reject(N.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let C of r)C.abort();return}}},processResponseEndOfBody(u){if(u.aborted){c.reject(new DOMException("aborted","AbortError"));return}c.resolve(u)}})),t.push(c.promise)}let s=await Promise.all(t),n=[],o=0;for(let p of s){let g={type:"put",request:a[o],response:p};n.push(g),o++}let d=fa(),l=null;try{this.#a(n)}catch(p){l=p}return queueMicrotask(()=>{l===null?d.resolve(void 0):d.reject(l)}),d.promise}async put(A,t){N.brandCheck(this,e),N.argumentLengthCheck(arguments,2,{header:"Cache.put"}),A=N.converters.RequestInfo(A),t=N.converters.Response(t);let a=null;if(A instanceof it?a=A[Oe]:a=new it(A)[Oe],!Js(a.url)||a.method!=="GET")throw N.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"});let r=t[Oe];if(r.status===206)throw N.errors.exception({header:"Cache.put",message:"Got 206 status"});if(r.headersList.contains("vary")){let g=Kp(r.headersList.get("vary"));for(let c of g)if(c==="*")throw N.errors.exception({header:"Cache.put",message:"Got * vary field value"})}if(r.body&&(eD(r.body.stream)||r.body.stream.locked))throw N.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"});let i=AD(r),s=fa();if(r.body!=null){let c=r.body.stream.getReader();rD(c,u=>s.resolve(u),u=>s.reject(u))}else s.resolve(void 0);let n=[],o={type:"put",request:a,response:i};n.push(o);let d=await s.promise;i.body!=null&&(i.body.source=d);let l=fa(),p=null;try{this.#a(n)}catch(g){p=g}return queueMicrotask(()=>{p===null?l.resolve():l.reject(p)}),l.promise}async delete(A,t={}){N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,{header:"Cache.delete"}),A=N.converters.RequestInfo(A),t=N.converters.CacheQueryOptions(t);let a=null;if(A instanceof it){if(a=A[Oe],a.method!=="GET"&&!t.ignoreMethod)return!1}else $p(typeof A=="string"),a=new it(A)[Oe];let r=[],i={type:"delete",request:a,options:t};r.push(i);let s=fa(),n=null,o;try{o=this.#a(r)}catch(d){n=d}return queueMicrotask(()=>{n===null?s.resolve(!!o?.length):s.reject(n)}),s.promise}async keys(A=void 0,t={}){N.brandCheck(this,e),A!==void 0&&(A=N.converters.RequestInfo(A)),t=N.converters.CacheQueryOptions(t);let a=null;if(A!==void 0)if(A instanceof it){if(a=A[Oe],a.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(a=new it(A)[Oe]);let r=fa(),i=[];if(A===void 0)for(let s of this.#e)i.push(s[0]);else{let s=this.#A(a,t);for(let n of s)i.push(n[0])}return queueMicrotask(()=>{let s=[];for(let n of i){let o=new it("https://a");o[Oe]=n,o[Ys][cE]=n.headersList,o[Ys][uE]="immutable",o[tD]=n.client,s.push(o)}r.resolve(Object.freeze(s))}),r.promise}#a(A){let t=this.#e,a=[...t],r=[],i=[];try{for(let s of A){if(s.type!=="delete"&&s.type!=="put")throw N.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(s.type==="delete"&&s.response!=null)throw N.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#A(s.request,s.options,r).length)throw new DOMException("???","InvalidStateError");let n;if(s.type==="delete"){if(n=this.#A(s.request,s.options),n.length===0)return[];for(let o of n){let d=t.indexOf(o);$p(d!==-1),t.splice(d,1)}}else if(s.type==="put"){if(s.response==null)throw N.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let o=s.request;if(!Js(o.url))throw N.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(o.method!=="GET")throw N.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(s.options!=null)throw N.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});n=this.#A(s.request);for(let d of n){let l=t.indexOf(d);$p(l!==-1),t.splice(l,1)}t.push([s.request,s.response]),r.push([s.request,s.response])}i.push([s.request,s.response])}return i}catch(s){throw this.#e.length=0,this.#e=a,s}}#A(A,t,a){let r=[],i=a??this.#e;for(let s of i){let[n,o]=s;this.#t(A,n,o,t)&&r.push(s)}return r}#t(A,t,a=null,r){let i=new URL(A.url),s=new URL(t.url);if(r?.ignoreSearch&&(s.search="",i.search=""),!$y(i,s,!0))return!1;if(a==null||r?.ignoreVary||!a.headersList.contains("vary"))return!0;let n=Kp(a.headersList.get("vary"));for(let o of n){if(o==="*")return!1;let d=t.headersList.get(o),l=A.headersList.get(o);if(d!==l)return!1}return!0}};Object.defineProperties(Gs.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:h1,matchAll:h1,add:h1,addAll:h1,put:h1,delete:h1,keys:h1});var QE=[{key:"ignoreSearch",converter:N.converters.boolean,defaultValue:!1},{key:"ignoreMethod",converter:N.converters.boolean,defaultValue:!1},{key:"ignoreVary",converter:N.converters.boolean,defaultValue:!1}];N.converters.CacheQueryOptions=N.dictionaryConverter(QE);N.converters.MultiCacheQueryOptions=N.dictionaryConverter([...QE,{key:"cacheName",converter:N.converters.DOMString}]);N.converters.Response=N.interfaceConverter(EE);N.converters["sequence<RequestInfo>"]=N.sequenceConverter(N.converters.RequestInfo);CE.exports={Cache:Gs}});var hE=E((AF,BE)=>{"use strict";var{kConstruct:Fr}=Vs(),{Cache:xs}=mE(),{webidl:Pe}=Ge(),{kEnumerableProperty:kr}=H(),_s=class e{#e=new Map;constructor(){arguments[0]!==Fr&&Pe.illegalConstructor()}async match(A,t={}){if(Pe.brandCheck(this,e),Pe.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"}),A=Pe.converters.RequestInfo(A),t=Pe.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#e.has(t.cacheName)){let a=this.#e.get(t.cacheName);return await new xs(Fr,a).match(A,t)}}else for(let a of this.#e.values()){let i=await new xs(Fr,a).match(A,t);if(i!==void 0)return i}}async has(A){return Pe.brandCheck(this,e),Pe.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"}),A=Pe.converters.DOMString(A),this.#e.has(A)}async open(A){if(Pe.brandCheck(this,e),Pe.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"}),A=Pe.converters.DOMString(A),this.#e.has(A)){let a=this.#e.get(A);return new xs(Fr,a)}let t=[];return this.#e.set(A,t),new xs(Fr,t)}async delete(A){return Pe.brandCheck(this,e),Pe.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"}),A=Pe.converters.DOMString(A),this.#e.delete(A)}async keys(){return Pe.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(_s.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:kr,has:kr,open:kr,delete:kr,keys:kr});BE.exports={CacheStorage:_s}});var fE=E((tF,IE)=>{"use strict";IE.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var e0=E((aF,DE)=>{"use strict";var wE=require("assert"),{kHeadersList:yE}=ie();function sD(e){if(e.length===0)return!1;for(let A of e){let t=A.charCodeAt(0);if(t>=0||t<=8||t>=10||t<=31||t===127)return!1}}function nD(e){for(let A of e){let t=A.charCodeAt(0);if(t<=32||t>127||A==="("||A===")"||A===">"||A==="<"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}")throw new Error("Invalid cookie name")}}function oD(e){for(let A of e){let t=A.charCodeAt(0);if(t<33||t===34||t===44||t===59||t===92||t>126)throw new Error("Invalid header value")}}function dD(e){for(let A of e)if(A.charCodeAt(0)<33||A===";")throw new Error("Invalid cookie path")}function pD(e){if(e.startsWith("-")||e.endsWith(".")||e.endsWith("-"))throw new Error("Invalid cookie domain")}function lD(e){typeof e=="number"&&(e=new Date(e));let A=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],a=A[e.getUTCDay()],r=e.getUTCDate().toString().padStart(2,"0"),i=t[e.getUTCMonth()],s=e.getUTCFullYear(),n=e.getUTCHours().toString().padStart(2,"0"),o=e.getUTCMinutes().toString().padStart(2,"0"),d=e.getUTCSeconds().toString().padStart(2,"0");return`${a}, ${r} ${i} ${s} ${n}:${o}:${d} GMT`}function gD(e){if(e<0)throw new Error("Invalid cookie max-age")}function cD(e){if(e.name.length===0)return null;nD(e.name),oD(e.value);let A=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&A.push("Secure"),e.httpOnly&&A.push("HttpOnly"),typeof e.maxAge=="number"&&(gD(e.maxAge),A.push(`Max-Age=${e.maxAge}`)),e.domain&&(pD(e.domain),A.push(`Domain=${e.domain}`)),e.path&&(dD(e.path),A.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&A.push(`Expires=${lD(e.expires)}`),e.sameSite&&A.push(`SameSite=${e.sameSite}`);for(let t of e.unparsed){if(!t.includes("="))throw new Error("Invalid unparsed");let[a,...r]=t.split("=");A.push(`${a.trim()}=${r.join("=")}`)}return A.join("; ")}var qs;function uD(e){if(e[yE])return e[yE];qs||(qs=Object.getOwnPropertySymbols(e).find(t=>t.description==="headers list"),wE(qs,"Headers cannot be parsed"));let A=e[qs];return wE(A),A}DE.exports={isCTLExcludingHtab:sD,stringify:cD,getHeadersList:uD}});var RE=E((rF,vE)=>{"use strict";var{maxNameValuePairSize:ED,maxAttributeValueSize:QD}=fE(),{isCTLExcludingHtab:CD}=e0(),{collectASequenceOfCodePointsFast:Hs}=VA(),mD=require("assert");function BD(e){if(CD(e))return null;let A="",t="",a="",r="";if(e.includes(";")){let i={position:0};A=Hs(";",e,i),t=e.slice(i.position)}else A=e;if(!A.includes("="))r=A;else{let i={position:0};a=Hs("=",A,i),r=A.slice(i.position+1)}return a=a.trim(),r=r.trim(),a.length+r.length>ED?null:{name:a,value:r,...wa(t)}}function wa(e,A={}){if(e.length===0)return A;mD(e[0]===";"),e=e.slice(1);let t="";e.includes(";")?(t=Hs(";",e,{position:0}),e=e.slice(t.length)):(t=e,e="");let a="",r="";if(t.includes("=")){let s={position:0};a=Hs("=",t,s),r=t.slice(s.position+1)}else a=t;if(a=a.trim(),r=r.trim(),r.length>QD)return wa(e,A);let i=a.toLowerCase();if(i==="expires"){let s=new Date(r);A.expires=s}else if(i==="max-age"){let s=r.charCodeAt(0);if((s<48||s>57)&&r[0]!=="-"||!/^\d+$/.test(r))return wa(e,A);let n=Number(r);A.maxAge=n}else if(i==="domain"){let s=r;s[0]==="."&&(s=s.slice(1)),s=s.toLowerCase(),A.domain=s}else if(i==="path"){let s="";r.length===0||r[0]!=="/"?s="/":s=r,A.path=s}else if(i==="secure")A.secure=!0;else if(i==="httponly")A.httpOnly=!0;else if(i==="samesite"){let s="Default",n=r.toLowerCase();n.includes("none")&&(s="None"),n.includes("strict")&&(s="Strict"),n.includes("lax")&&(s="Lax"),A.sameSite=s}else A.unparsed??=[],A.unparsed.push(`${a}=${r}`);return wa(e,A)}vE.exports={parseSetCookie:BD,parseUnparsedAttributes:wa}});var FE=E((iF,SE)=>{"use strict";var{parseSetCookie:hD}=RE(),{stringify:NE,getHeadersList:ID}=e0(),{webidl:G}=Ge(),{Headers:Os}=C1();function fD(e){G.argumentLengthCheck(arguments,1,{header:"getCookies"}),G.brandCheck(e,Os,{strict:!1});let A=e.get("cookie"),t={};if(!A)return t;for(let a of A.split(";")){let[r,...i]=a.split("=");t[r.trim()]=i.join("=")}return t}function wD(e,A,t){G.argumentLengthCheck(arguments,2,{header:"deleteCookie"}),G.brandCheck(e,Os,{strict:!1}),A=G.converters.DOMString(A),t=G.converters.DeleteCookieAttributes(t),bE(e,{name:A,value:"",expires:new Date(0),...t})}function yD(e){G.argumentLengthCheck(arguments,1,{header:"getSetCookies"}),G.brandCheck(e,Os,{strict:!1});let A=ID(e).cookies;return A?A.map(t=>hD(Array.isArray(t)?t[1]:t)):[]}function bE(e,A){G.argumentLengthCheck(arguments,2,{header:"setCookie"}),G.brandCheck(e,Os,{strict:!1}),A=G.converters.Cookie(A),NE(A)&&e.append("Set-Cookie",NE(A))}G.converters.DeleteCookieAttributes=G.dictionaryConverter([{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:null}]);G.converters.Cookie=G.dictionaryConverter([{converter:G.converters.DOMString,key:"name"},{converter:G.converters.DOMString,key:"value"},{converter:G.nullableConverter(e=>typeof e=="number"?G.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:null},{converter:G.nullableConverter(G.converters["long long"]),key:"maxAge",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:null},{converter:G.nullableConverter(G.converters.boolean),key:"secure",defaultValue:null},{converter:G.nullableConverter(G.converters.boolean),key:"httpOnly",defaultValue:null},{converter:G.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:G.sequenceConverter(G.converters.DOMString),key:"unparsed",defaultValue:[]}]);SE.exports={getCookies:fD,deleteCookie:wD,getSetCookies:yD,setCookie:bE}});var ya=E((sF,kE)=>{"use strict";var DD="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",vD={enumerable:!0,writable:!1,configurable:!1},RD={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},ND={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},bD=2**16-1,SD={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},FD=Buffer.allocUnsafe(0);kE.exports={uid:DD,staticPropertyDescriptors:vD,states:RD,opcodes:ND,maxUnsigned16Bit:bD,parserStates:SD,emptyBuffer:FD}});var Lr=E((nF,LE)=>{"use strict";LE.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var t0=E((oF,UE)=>{"use strict";var{webidl:b}=Ge(),{kEnumerableProperty:eA}=H(),{MessagePort:kD}=require("worker_threads"),Ps=class e extends Event{#e;constructor(A,t={}){b.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"}),A=b.converters.DOMString(A),t=b.converters.MessageEventInit(t),super(A,t),this.#e=t}get data(){return b.brandCheck(this,e),this.#e.data}get origin(){return b.brandCheck(this,e),this.#e.origin}get lastEventId(){return b.brandCheck(this,e),this.#e.lastEventId}get source(){return b.brandCheck(this,e),this.#e.source}get ports(){return b.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(A,t=!1,a=!1,r=null,i="",s="",n=null,o=[]){return b.brandCheck(this,e),b.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"}),new e(A,{bubbles:t,cancelable:a,data:r,origin:i,lastEventId:s,source:n,ports:o})}},Ws=class e extends Event{#e;constructor(A,t={}){b.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"}),A=b.converters.DOMString(A),t=b.converters.CloseEventInit(t),super(A,t),this.#e=t}get wasClean(){return b.brandCheck(this,e),this.#e.wasClean}get code(){return b.brandCheck(this,e),this.#e.code}get reason(){return b.brandCheck(this,e),this.#e.reason}},js=class e extends Event{#e;constructor(A,t){b.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"}),super(A,t),A=b.converters.DOMString(A),t=b.converters.ErrorEventInit(t??{}),this.#e=t}get message(){return b.brandCheck(this,e),this.#e.message}get filename(){return b.brandCheck(this,e),this.#e.filename}get lineno(){return b.brandCheck(this,e),this.#e.lineno}get colno(){return b.brandCheck(this,e),this.#e.colno}get error(){return b.brandCheck(this,e),this.#e.error}};Object.defineProperties(Ps.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:eA,origin:eA,lastEventId:eA,source:eA,ports:eA,initMessageEvent:eA});Object.defineProperties(Ws.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:eA,code:eA,wasClean:eA});Object.defineProperties(js.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:eA,filename:eA,lineno:eA,colno:eA,error:eA});b.converters.MessagePort=b.interfaceConverter(kD);b.converters["sequence<MessagePort>"]=b.sequenceConverter(b.converters.MessagePort);var A0=[{key:"bubbles",converter:b.converters.boolean,defaultValue:!1},{key:"cancelable",converter:b.converters.boolean,defaultValue:!1},{key:"composed",converter:b.converters.boolean,defaultValue:!1}];b.converters.MessageEventInit=b.dictionaryConverter([...A0,{key:"data",converter:b.converters.any,defaultValue:null},{key:"origin",converter:b.converters.USVString,defaultValue:""},{key:"lastEventId",converter:b.converters.DOMString,defaultValue:""},{key:"source",converter:b.nullableConverter(b.converters.MessagePort),defaultValue:null},{key:"ports",converter:b.converters["sequence<MessagePort>"],get defaultValue(){return[]}}]);b.converters.CloseEventInit=b.dictionaryConverter([...A0,{key:"wasClean",converter:b.converters.boolean,defaultValue:!1},{key:"code",converter:b.converters["unsigned short"],defaultValue:0},{key:"reason",converter:b.converters.USVString,defaultValue:""}]);b.converters.ErrorEventInit=b.dictionaryConverter([...A0,{key:"message",converter:b.converters.DOMString,defaultValue:""},{key:"filename",converter:b.converters.USVString,defaultValue:""},{key:"lineno",converter:b.converters["unsigned long"],defaultValue:0},{key:"colno",converter:b.converters["unsigned long"],defaultValue:0},{key:"error",converter:b.converters.any}]);UE.exports={MessageEvent:Ps,CloseEvent:Ws,ErrorEvent:js}});var zs=E((dF,VE)=>{"use strict";var{kReadyState:Zs,kController:LD,kResponse:UD,kBinaryType:TD,kWebSocketURL:MD}=Lr(),{states:Xs,opcodes:TE}=ya(),{MessageEvent:VD,ErrorEvent:YD}=t0();function JD(e){return e[Zs]===Xs.OPEN}function GD(e){return e[Zs]===Xs.CLOSING}function xD(e){return e[Zs]===Xs.CLOSED}function a0(e,A,t=Event,a){let r=new t(e,a);A.dispatchEvent(r)}function _D(e,A,t){if(e[Zs]!==Xs.OPEN)return;let a;if(A===TE.TEXT)try{a=new TextDecoder("utf-8",{fatal:!0}).decode(t)}catch{ME(e,"Received invalid UTF-8 in text frame.");return}else A===TE.BINARY&&(e[TD]==="blob"?a=new Blob([t]):a=new Uint8Array(t).buffer);a0("message",e,VD,{origin:e[MD].origin,data:a})}function qD(e){if(e.length===0)return!1;for(let A of e){let t=A.charCodeAt(0);if(t<33||t>126||A==="("||A===")"||A==="<"||A===">"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}"||t===32||t===9)return!1}return!0}function HD(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function ME(e,A){let{[LD]:t,[UD]:a}=e;t.abort(),a?.socket&&!a.socket.destroyed&&a.socket.destroy(),A&&a0("error",e,YD,{error:new Error(A)})}VE.exports={isEstablished:JD,isClosing:GD,isClosed:xD,fireEvent:a0,isValidSubprotocol:qD,isValidStatusCode:HD,failWebsocketConnection:ME,websocketMessageReceived:_D}});var qE=E((pF,_E)=>{"use strict";var{randomBytes:OD,createHash:PD}=require("crypto"),r0=require("diagnostics_channel"),{uid:WD,states:JE}=ya(),{kReadyState:GE,kSentClose:YE,kByteParser:xE,kReceivedClose:jD}=Lr(),{fireEvent:ZD,failWebsocketConnection:I1}=zs(),{CloseEvent:XD}=t0(),{makeRequest:zD}=Nr(),{fetching:KD}=Ls(),{Headers:$D}=C1(),{getGlobalDispatcher:ev}=ua(),{kHeadersList:Av}=ie(),wt={};wt.open=r0.channel("undici:websocket:open");wt.close=r0.channel("undici:websocket:close");wt.socketError=r0.channel("undici:websocket:socket_error");function tv(e,A,t,a,r){let i=e;i.protocol=e.protocol==="ws:"?"http:":"https:";let s=zD({urlList:[i],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(r.headers){let l=new $D(r.headers)[Av];s.headersList=l}let n=OD(16).toString("base64");s.headersList.append("sec-websocket-key",n),s.headersList.append("sec-websocket-version","13");for(let l of A)s.headersList.append("sec-websocket-protocol",l);let o="";return KD({request:s,useParallelQueue:!0,dispatcher:r.dispatcher??ev(),processResponse(l){if(l.type==="error"||l.status!==101){I1(t,"Received network error or non-101 status code.");return}if(A.length!==0&&!l.headersList.get("Sec-WebSocket-Protocol")){I1(t,"Server did not respond with sent protocols.");return}if(l.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){I1(t,'Server did not set Upgrade header to "websocket".');return}if(l.headersList.get("Connection")?.toLowerCase()!=="upgrade"){I1(t,'Server did not set Connection header to "upgrade".');return}let p=l.headersList.get("Sec-WebSocket-Accept"),g=PD("sha1").update(n+WD).digest("base64");if(p!==g){I1(t,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let c=l.headersList.get("Sec-WebSocket-Extensions");if(c!==null&&c!==o){I1(t,"Received different permessage-deflate than the one set.");return}let u=l.headersList.get("Sec-WebSocket-Protocol");if(u!==null&&u!==s.headersList.get("Sec-WebSocket-Protocol")){I1(t,"Protocol was not set in the opening handshake.");return}l.socket.on("data",av),l.socket.on("close",rv),l.socket.on("error",iv),wt.open.hasSubscribers&&wt.open.publish({address:l.socket.address(),protocol:u,extensions:c}),a(l)}})}function av(e){this.ws[xE].write(e)||this.pause()}function rv(){let{ws:e}=this,A=e[YE]&&e[jD],t=1005,a="",r=e[xE].closingInfo;r?(t=r.code??1005,a=r.reason):e[YE]||(t=1006),e[GE]=JE.CLOSED,ZD("close",e,XD,{wasClean:A,code:t,reason:a}),wt.close.hasSubscribers&&wt.close.publish({websocket:e,code:t,reason:a})}function iv(e){let{ws:A}=this;A[GE]=JE.CLOSING,wt.socketError.hasSubscribers&&wt.socketError.publish(e),this.destroy()}_E.exports={establishWebSocketConnection:tv}});var s0=E((lF,HE)=>{"use strict";var{randomBytes:sv}=require("crypto"),{maxUnsigned16Bit:nv}=ya(),i0=class{constructor(A){this.frameData=A,this.maskKey=sv(4)}createFrame(A){let t=this.frameData?.byteLength??0,a=t,r=6;t>nv?(r+=8,a=127):t>125&&(r+=2,a=126);let i=Buffer.allocUnsafe(t+r);i[0]=i[1]=0,i[0]|=128,i[0]=(i[0]&240)+A;i[r-4]=this.maskKey[0],i[r-3]=this.maskKey[1],i[r-2]=this.maskKey[2],i[r-1]=this.maskKey[3],i[1]=a,a===126?i.writeUInt16BE(t,2):a===127&&(i[2]=i[3]=0,i.writeUIntBE(t,4,6)),i[1]|=128;for(let s=0;s<t;s++)i[r+s]=this.frameData[s]^this.maskKey[s%4];return i}};HE.exports={WebsocketFrameSend:i0}});var KE=E((gF,zE)=>{"use strict";var{Writable:ov}=require("stream"),XE=require("diagnostics_channel"),{parserStates:bA,opcodes:SA,states:dv,emptyBuffer:pv}=ya(),{kReadyState:lv,kSentClose:OE,kResponse:PE,kReceivedClose:WE}=Lr(),{isValidStatusCode:jE,failWebsocketConnection:Ur,websocketMessageReceived:gv}=zs(),{WebsocketFrameSend:ZE}=s0(),Da={};Da.ping=XE.channel("undici:websocket:ping");Da.pong=XE.channel("undici:websocket:pong");var n0=class extends ov{#e=[];#a=0;#A=bA.INFO;#t={};#r=[];constructor(A){super(),this.ws=A}_write(A,t,a){this.#e.push(A),this.#a+=A.length,this.run(a)}run(A){for(;;){if(this.#A===bA.INFO){if(this.#a<2)return A();let t=this.consume(2);if(this.#t.fin=(t[0]&128)!==0,this.#t.opcode=t[0]&15,this.#t.originalOpcode??=this.#t.opcode,this.#t.fragmented=!this.#t.fin&&this.#t.opcode!==SA.CONTINUATION,this.#t.fragmented&&this.#t.opcode!==SA.BINARY&&this.#t.opcode!==SA.TEXT){Ur(this.ws,"Invalid frame type was fragmented.");return}let a=t[1]&127;if(a<=125?(this.#t.payloadLength=a,this.#A=bA.READ_DATA):a===126?this.#A=bA.PAYLOADLENGTH_16:a===127&&(this.#A=bA.PAYLOADLENGTH_64),this.#t.fragmented&&a>125){Ur(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#t.opcode===SA.PING||this.#t.opcode===SA.PONG||this.#t.opcode===SA.CLOSE)&&a>125){Ur(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#t.opcode===SA.CLOSE){if(a===1){Ur(this.ws,"Received close frame with a 1-byte body.");return}let r=this.consume(a);if(this.#t.closeInfo=this.parseCloseBody(!1,r),!this.ws[OE]){let i=Buffer.allocUnsafe(2);i.writeUInt16BE(this.#t.closeInfo.code,0);let s=new ZE(i);this.ws[PE].socket.write(s.createFrame(SA.CLOSE),n=>{n||(this.ws[OE]=!0)})}this.ws[lv]=dv.CLOSING,this.ws[WE]=!0,this.end();return}else if(this.#t.opcode===SA.PING){let r=this.consume(a);if(!this.ws[WE]){let i=new ZE(r);this.ws[PE].socket.write(i.createFrame(SA.PONG)),Da.ping.hasSubscribers&&Da.ping.publish({payload:r})}if(this.#A=bA.INFO,this.#a>0)continue;A();return}else if(this.#t.opcode===SA.PONG){let r=this.consume(a);if(Da.pong.hasSubscribers&&Da.pong.publish({payload:r}),this.#a>0)continue;A();return}}else if(this.#A===bA.PAYLOADLENGTH_16){if(this.#a<2)return A();let t=this.consume(2);this.#t.payloadLength=t.readUInt16BE(0),this.#A=bA.READ_DATA}else if(this.#A===bA.PAYLOADLENGTH_64){if(this.#a<8)return A();let t=this.consume(8),a=t.readUInt32BE(0);if(a>2**31-1){Ur(this.ws,"Received payload length > 2^31 bytes.");return}let r=t.readUInt32BE(4);this.#t.payloadLength=(a<<8)+r,this.#A=bA.READ_DATA}else if(this.#A===bA.READ_DATA){if(this.#a<this.#t.payloadLength)return A();if(this.#a>=this.#t.payloadLength){let t=this.consume(this.#t.payloadLength);if(this.#r.push(t),!this.#t.fragmented||this.#t.fin&&this.#t.opcode===SA.CONTINUATION){let a=Buffer.concat(this.#r);gv(this.ws,this.#t.originalOpcode,a),this.#t={},this.#r.length=0}this.#A=bA.INFO}}if(!(this.#a>0)){A();break}}}consume(A){if(A>this.#a)return null;if(A===0)return pv;if(this.#e[0].length===A)return this.#a-=this.#e[0].length,this.#e.shift();let t=Buffer.allocUnsafe(A),a=0;for(;a!==A;){let r=this.#e[0],{length:i}=r;if(i+a===A){t.set(this.#e.shift(),a);break}else if(i+a>A){t.set(r.subarray(0,A-a),a),this.#e[0]=r.subarray(A-a);break}else t.set(this.#e.shift(),a),a+=r.length}return this.#a-=A,t}parseCloseBody(A,t){let a;if(t.length>=2&&(a=t.readUInt16BE(0)),A)return jE(a)?{code:a}:null;let r=t.subarray(2);if(r[0]===239&&r[1]===187&&r[2]===191&&(r=r.subarray(3)),a!==void 0&&!jE(a))return null;try{r=new TextDecoder("utf-8",{fatal:!0}).decode(r)}catch{return null}return{code:a,reason:r}}get closingInfo(){return this.#t.closeInfo}};zE.exports={ByteParser:n0}});var s9=E((cF,i9)=>{"use strict";var{webidl:k}=Ge(),{DOMException:Pt}=Vt(),{URLSerializer:cv}=VA(),{staticPropertyDescriptors:Wt,states:va,opcodes:Tr,emptyBuffer:uv}=ya(),{kWebSocketURL:$E,kReadyState:yt,kController:Ev,kBinaryType:Ks,kResponse:$s,kSentClose:Qv,kByteParser:Cv}=Lr(),{isEstablished:e9,isClosing:A9,isValidSubprotocol:mv,failWebsocketConnection:Bv,fireEvent:hv}=zs(),{establishWebSocketConnection:Iv}=qE(),{WebsocketFrameSend:Mr}=s0(),{ByteParser:fv}=KE(),{kEnumerableProperty:FA,isBlobLike:a9}=H(),{getGlobalDispatcher:wv}=ua(),{types:r9}=require("util"),t9=!1,uA=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#a=0;#A="";#t="";constructor(A,t=[]){super(),k.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"}),t9||(t9=!0,process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"}));let a=k.converters["DOMString or sequence<DOMString> or WebSocketInit"](t);A=k.converters.USVString(A),t=a.protocols;let r;try{r=new URL(A)}catch(i){throw new Pt(i,"SyntaxError")}if(r.protocol!=="ws:"&&r.protocol!=="wss:")throw new Pt(`Expected a ws: or wss: protocol, got ${r.protocol}`,"SyntaxError");if(r.hash)throw new Pt("Got fragment","SyntaxError");if(typeof t=="string"&&(t=[t]),t.length!==new Set(t.map(i=>i.toLowerCase())).size)throw new Pt("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(t.length>0&&!t.every(i=>mv(i)))throw new Pt("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[$E]=r,this[Ev]=Iv(r,t,this,i=>this.#r(i),a),this[yt]=e.CONNECTING,this[Ks]="blob"}close(A=void 0,t=void 0){if(k.brandCheck(this,e),A!==void 0&&(A=k.converters["unsigned short"](A,{clamp:!0})),t!==void 0&&(t=k.converters.USVString(t)),A!==void 0&&A!==1e3&&(A<3e3||A>4999))throw new Pt("invalid code","InvalidAccessError");let a=0;if(t!==void 0&&(a=Buffer.byteLength(t),a>123))throw new Pt(`Reason must be less than 123 bytes; received ${a}`,"SyntaxError");if(!(this[yt]===e.CLOSING||this[yt]===e.CLOSED))if(!e9(this))Bv(this,"Connection was closed before it was established."),this[yt]=e.CLOSING;else if(A9(this))this[yt]=e.CLOSING;else{let r=new Mr;A!==void 0&&t===void 0?(r.frameData=Buffer.allocUnsafe(2),r.frameData.writeUInt16BE(A,0)):A!==void 0&&t!==void 0?(r.frameData=Buffer.allocUnsafe(2+a),r.frameData.writeUInt16BE(A,0),r.frameData.write(t,2,"utf-8")):r.frameData=uv,this[$s].socket.write(r.createFrame(Tr.CLOSE),s=>{s||(this[Qv]=!0)}),this[yt]=va.CLOSING}}send(A){if(k.brandCheck(this,e),k.argumentLengthCheck(arguments,1,{header:"WebSocket.send"}),A=k.converters.WebSocketSendData(A),this[yt]===e.CONNECTING)throw new Pt("Sent before connected.","InvalidStateError");if(!e9(this)||A9(this))return;let t=this[$s].socket;if(typeof A=="string"){let a=Buffer.from(A),i=new Mr(a).createFrame(Tr.TEXT);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(r9.isArrayBuffer(A)){let a=Buffer.from(A),i=new Mr(a).createFrame(Tr.BINARY);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(ArrayBuffer.isView(A)){let a=Buffer.from(A,A.byteOffset,A.byteLength),i=new Mr(a).createFrame(Tr.BINARY);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(a9(A)){let a=new Mr;A.arrayBuffer().then(r=>{let i=Buffer.from(r);a.frameData=i;let s=a.createFrame(Tr.BINARY);this.#a+=i.byteLength,t.write(s,()=>{this.#a-=i.byteLength})})}}get readyState(){return k.brandCheck(this,e),this[yt]}get bufferedAmount(){return k.brandCheck(this,e),this.#a}get url(){return k.brandCheck(this,e),cv(this[$E])}get extensions(){return k.brandCheck(this,e),this.#t}get protocol(){return k.brandCheck(this,e),this.#A}get onopen(){return k.brandCheck(this,e),this.#e.open}set onopen(A){k.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof A=="function"?(this.#e.open=A,this.addEventListener("open",A)):this.#e.open=null}get onerror(){return k.brandCheck(this,e),this.#e.error}set onerror(A){k.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof A=="function"?(this.#e.error=A,this.addEventListener("error",A)):this.#e.error=null}get onclose(){return k.brandCheck(this,e),this.#e.close}set onclose(A){k.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof A=="function"?(this.#e.close=A,this.addEventListener("close",A)):this.#e.close=null}get onmessage(){return k.brandCheck(this,e),this.#e.message}set onmessage(A){k.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof A=="function"?(this.#e.message=A,this.addEventListener("message",A)):this.#e.message=null}get binaryType(){return k.brandCheck(this,e),this[Ks]}set binaryType(A){k.brandCheck(this,e),A!=="blob"&&A!=="arraybuffer"?this[Ks]="blob":this[Ks]=A}#r(A){this[$s]=A;let t=new fv(this);t.on("drain",function(){this.ws[$s].socket.resume()}),A.socket.ws=this,this[Cv]=t,this[yt]=va.OPEN;let a=A.headersList.get("sec-websocket-extensions");a!==null&&(this.#t=a);let r=A.headersList.get("sec-websocket-protocol");r!==null&&(this.#A=r),hv("open",this)}};uA.CONNECTING=uA.prototype.CONNECTING=va.CONNECTING;uA.OPEN=uA.prototype.OPEN=va.OPEN;uA.CLOSING=uA.prototype.CLOSING=va.CLOSING;uA.CLOSED=uA.prototype.CLOSED=va.CLOSED;Object.defineProperties(uA.prototype,{CONNECTING:Wt,OPEN:Wt,CLOSING:Wt,CLOSED:Wt,url:FA,readyState:FA,bufferedAmount:FA,onopen:FA,onerror:FA,onclose:FA,close:FA,onmessage:FA,binaryType:FA,send:FA,extensions:FA,protocol:FA,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(uA,{CONNECTING:Wt,OPEN:Wt,CLOSING:Wt,CLOSED:Wt});k.converters["sequence<DOMString>"]=k.sequenceConverter(k.converters.DOMString);k.converters["DOMString or sequence<DOMString>"]=function(e){return k.util.Type(e)==="Object"&&Symbol.iterator in e?k.converters["sequence<DOMString>"](e):k.converters.DOMString(e)};k.converters.WebSocketInit=k.dictionaryConverter([{key:"protocols",converter:k.converters["DOMString or sequence<DOMString>"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return wv()}},{key:"headers",converter:k.nullableConverter(k.converters.HeadersInit)}]);k.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(e){return k.util.Type(e)==="Object"&&!(Symbol.iterator in e)?k.converters.WebSocketInit(e):{protocols:k.converters["DOMString or sequence<DOMString>"](e)}};k.converters.WebSocketSendData=function(e){if(k.util.Type(e)==="Object"){if(a9(e))return k.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||r9.isAnyArrayBuffer(e))return k.converters.BufferSource(e)}return k.converters.USVString(e)};i9.exports={WebSocket:uA}});var d0=E((uF,V)=>{"use strict";var yv=Qr(),n9=xi(),o9=ee(),Dv=ra(),vv=R6(),Rv=hr(),f1=H(),{InvalidArgumentError:en}=o9,Ra=mc(),Nv=dr(),bv=Cp(),Sv=Au(),Fv=hp(),kv=ip(),Lv=nu(),{getGlobalDispatcher:d9,setGlobalDispatcher:Uv}=ua(),Tv=cu(),Mv=Qd(),Vv=Oi(),o0;try{require("crypto"),o0=!0}catch{o0=!1}Object.assign(n9.prototype,Ra);V.exports.Dispatcher=n9;V.exports.Client=yv;V.exports.Pool=Dv;V.exports.BalancedPool=vv;V.exports.Agent=Rv;V.exports.ProxyAgent=Lv;V.exports.DecoratorHandler=Tv;V.exports.RedirectHandler=Mv;V.exports.createRedirectInterceptor=Vv;V.exports.buildConnector=Nv;V.exports.errors=o9;function Vr(e){return(A,t,a)=>{if(typeof t=="function"&&(a=t,t=null),!A||typeof A!="string"&&typeof A!="object"&&!(A instanceof URL))throw new en("invalid url");if(t!=null&&typeof t!="object")throw new en("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new en("invalid opts.path");let s=t.path;t.path.startsWith("/")||(s=`/${s}`),A=new URL(f1.parseOrigin(A).origin+s)}else t||(t=typeof A=="object"?A:{}),A=f1.parseURL(A);let{agent:r,dispatcher:i=d9()}=t;if(r)throw new en("unsupported opts.agent. Did you mean opts.client?");return e.call(i,{...t,origin:A.origin,path:A.search?`${A.pathname}${A.search}`:A.pathname,method:t.method||(t.body?"PUT":"GET")},a)}}V.exports.setGlobalDispatcher=Uv;V.exports.getGlobalDispatcher=d9;if(f1.nodeMajor>16||f1.nodeMajor===16&&f1.nodeMinor>=8){let e=null;V.exports.fetch=async function(s){e||(e=Ls().fetch);try{return await e(...arguments)}catch(n){throw Error.captureStackTrace(n,this),n}},V.exports.Headers=C1().Headers,V.exports.Response=ws().Response,V.exports.Request=Nr().Request,V.exports.FormData=Ji().FormData,V.exports.File=Vi().File,V.exports.FileReader=oE().FileReader;let{setGlobalOrigin:A,getGlobalOrigin:t}=tr();V.exports.setGlobalOrigin=A,V.exports.getGlobalOrigin=t;let{CacheStorage:a}=hE(),{kConstruct:r}=Vs();V.exports.caches=new a(r)}if(f1.nodeMajor>=16){let{deleteCookie:e,getCookies:A,getSetCookies:t,setCookie:a}=FE();V.exports.deleteCookie=e,V.exports.getCookies=A,V.exports.getSetCookies=t,V.exports.setCookie=a;let{parseMIMEType:r,serializeAMimeType:i}=VA();V.exports.parseMIMEType=r,V.exports.serializeAMimeType=i}if(f1.nodeMajor>=18&&o0){let{WebSocket:e}=s9();V.exports.WebSocket=e}V.exports.request=Vr(Ra.request);V.exports.stream=Vr(Ra.stream);V.exports.pipeline=Vr(Ra.pipeline);V.exports.connect=Vr(Ra.connect);V.exports.upgrade=Vr(Ra.upgrade);V.exports.MockClient=bv;V.exports.MockPool=Fv;V.exports.MockAgent=Sv;V.exports.mockErrors=kv});var u0=E(c0=>{"use strict";Object.defineProperty(c0,"__esModule",{value:!0});var Gv=function(e,A,t,a){if(typeof e!="string"||e.length===0)throw new TypeError("text should be a string");if(typeof A!="string"||A.length===0)throw new TypeError("lang should be a string");if(typeof t!="boolean")throw new TypeError("slow should be a boolean");if(typeof a!="string"||a.length===0)throw new TypeError("host should be a string")};c0.default=Gv});var Q0=E(E0=>{"use strict";Object.defineProperty(E0,"__esModule",{value:!0});var xv="\\s\\uFEFF\\xA0",_v="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",qv=function(e,A){for(var t=A===void 0?{}:A,a=t.maxLength,r=a===void 0?200:a,i=t.splitPunct,s=i===void 0?"":i,n=function(u,Q){var m=new RegExp("["+xv+_v+s+"]");return m.test(u.charAt(Q))},o=function(u,Q,m){for(var C=m;C>=Q;C--)if(n(u,C))return C;return-1},d=[],l=function(u,Q,m){d.push(u.slice(Q,m+1))},p=0;;){if(e.length-p<=r){l(e,p,e.length-1);break}var g=p+r-1;if(n(e,g)||n(e,g+1)){l(e,p,g),p=g+1;continue}if(g=o(e,p,g),g===-1){var c=e.slice(p,p+r);throw new Error("The word is too long to split into a short text:"+(` +`.trim())}};Hc.exports=Ep});var zc=E((KS,Xc)=>{"use strict";var{kProxy:wf,kClose:yf,kDestroy:Df,kInterceptors:Rf}=ie(),{URL:Pc}=require("url"),Wc=ur(),vf=ea(),Nf=tr(),{InvalidArgumentError:Cr,RequestAbortedError:Sf}=ee(),Zc=ar(),mr=Symbol("proxy agent"),ps=Symbol("proxy client"),ls=Symbol("proxy headers"),Qp=Symbol("request tls settings"),bf=Symbol("proxy tls settings"),jc=Symbol("connect endpoint function");function Ff(e){return e==="https:"?443:80}function kf(e){if(typeof e=="string"&&(e={uri:e}),!e||!e.uri)throw new Cr("Proxy opts.uri is mandatory");return{uri:e.uri,protocol:e.protocol||"https"}}function Lf(e,A){return new vf(e,A)}var mp=class extends Nf{constructor(A){if(super(A),this[wf]=kf(A),this[mr]=new Wc(A),this[Rf]=A.interceptors&&A.interceptors.ProxyAgent&&Array.isArray(A.interceptors.ProxyAgent)?A.interceptors.ProxyAgent:[],typeof A=="string"&&(A={uri:A}),!A||!A.uri)throw new Cr("Proxy opts.uri is mandatory");let{clientFactory:t=Lf}=A;if(typeof t!="function")throw new Cr("Proxy opts.clientFactory must be a function.");if(this[Qp]=A.requestTls,this[bf]=A.proxyTls,this[ls]=A.headers||{},A.auth&&A.token)throw new Cr("opts.auth cannot be used in combination with opts.token");A.auth?this[ls]["proxy-authorization"]=`Basic ${A.auth}`:A.token&&(this[ls]["proxy-authorization"]=A.token);let a=new Pc(A.uri),{origin:r,port:i,host:s}=a,n=Zc({...A.proxyTls});this[jc]=Zc({...A.requestTls}),this[ps]=t(a,{connect:n}),this[mr]=new Wc({...A,connect:async(o,d)=>{let l=o.host;o.port||(l+=`:${Ff(o.protocol)}`);try{let{socket:p,statusCode:g}=await this[ps].connect({origin:r,port:i,path:l,signal:o.signal,headers:{...this[ls],host:s}});if(g!==200&&(p.on("error",()=>{}).destroy(),d(new Sf("Proxy response !== 200 when HTTP Tunneling"))),o.protocol!=="https:"){d(null,p);return}let c;this[Qp]?c=this[Qp].servername:c=o.servername,this[jc]({...o,servername:c,httpSocket:p},d)}catch(p){d(p)}}})}dispatch(A,t){let{host:a}=new Pc(A.origin),r=Uf(A.headers);return Tf(r),this[mr].dispatch({...A,headers:{...r,host:a}},t)}async[yf](){await this[mr].close(),await this[ps].close()}async[Df](){await this[mr].destroy(),await this[ps].destroy()}};function Uf(e){if(Array.isArray(e)){let A={};for(let t=0;t<e.length;t+=2)A[e[t]]=e[t+1];return A}return e}function Tf(e){if(e&&Object.keys(e).find(t=>t.toLowerCase()==="proxy-authorization"))throw new Cr("Proxy-Authorization should be sent in ProxyAgent constructor")}Xc.exports=mp});var pa=E(($S,Au)=>{"use strict";var Kc=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:Mf}=ee(),Vf=ur();eu()===void 0&&$c(new Vf);function $c(e){if(!e||typeof e.dispatch!="function")throw new Mf("Argument agent must implement Agent");Object.defineProperty(globalThis,Kc,{value:e,writable:!0,enumerable:!1,configurable:!1})}function eu(){return globalThis[Kc]}Au.exports={setGlobalDispatcher:$c,getGlobalDispatcher:eu}});var au=E((Ab,tu)=>{"use strict";tu.exports=class{constructor(A){this.handler=A}onConnect(...A){return this.handler.onConnect(...A)}onError(...A){return this.handler.onError(...A)}onUpgrade(...A){return this.handler.onUpgrade(...A)}onHeaders(...A){return this.handler.onHeaders(...A)}onData(...A){return this.handler.onData(...A)}onComplete(...A){return this.handler.onComplete(...A)}onBodySent(...A){return this.handler.onBodySent(...A)}}});var c1=E((tb,nu)=>{"use strict";var{kHeadersList:Xe}=ie(),{kGuard:g1}=lt(),{kEnumerableProperty:At}=q(),{makeIterator:Cp,isValidHeaderName:Br,isValidHeaderValue:ru}=fA(),{webidl:Y}=Ge(),Yf=require("assert"),ze=Symbol("headers map"),Ke=Symbol("headers map sorted");function iu(e){let A=e.length;for(;/[\r\n\t ]/.test(e.charAt(--A)););return e.slice(0,A+1).replace(/^[\r\n\t ]+/,"")}function su(e,A){if(Array.isArray(A))for(let t of A){if(t.length!==2)throw Y.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${t.length}.`});e.append(t[0],t[1])}else if(typeof A=="object"&&A!==null)for(let[t,a]of Object.entries(A))e.append(t,a);else throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}var gs=class e{cookies=null;constructor(A){A instanceof e?(this[ze]=new Map(A[ze]),this[Ke]=A[Ke],this.cookies=A.cookies):(this[ze]=new Map(A),this[Ke]=null)}contains(A){return A=A.toLowerCase(),this[ze].has(A)}clear(){this[ze].clear(),this[Ke]=null,this.cookies=null}append(A,t){this[Ke]=null;let a=A.toLowerCase(),r=this[ze].get(a);if(r){let i=a==="cookie"?"; ":", ";this[ze].set(a,{name:r.name,value:`${r.value}${i}${t}`})}else this[ze].set(a,{name:A,value:t});a==="set-cookie"&&(this.cookies??=[],this.cookies.push(t))}set(A,t){this[Ke]=null;let a=A.toLowerCase();return a==="set-cookie"&&(this.cookies=[t]),this[ze].set(a,{name:A,value:t})}delete(A){return this[Ke]=null,A=A.toLowerCase(),A==="set-cookie"&&(this.cookies=null),this[ze].delete(A)}get(A){return this.contains(A)?this[ze].get(A.toLowerCase())?.value??null:null}*[Symbol.iterator](){for(let[A,{value:t}]of this[ze])yield[A,t]}get entries(){let A={};if(this[ze].size)for(let{name:t,value:a}of this[ze].values())A[t]=a;return A}},la=class e{constructor(A=void 0){this[Xe]=new gs,this[g1]="none",A!==void 0&&(A=Y.converters.HeadersInit(A),su(this,A))}append(A,t){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,2,{header:"Headers.append"}),A=Y.converters.ByteString(A),t=Y.converters.ByteString(t),t=iu(t),Br(A)){if(!ru(t))throw Y.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.append",value:A,type:"header name"});if(this[g1]==="immutable")throw new TypeError("immutable");return this[g1],this[Xe].append(A,t)}delete(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.delete"}),A=Y.converters.ByteString(A),!Br(A))throw Y.errors.invalidArgument({prefix:"Headers.delete",value:A,type:"header name"});if(this[g1]==="immutable")throw new TypeError("immutable");if(this[g1],!!this[Xe].contains(A))return this[Xe].delete(A)}get(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.get"}),A=Y.converters.ByteString(A),!Br(A))throw Y.errors.invalidArgument({prefix:"Headers.get",value:A,type:"header name"});return this[Xe].get(A)}has(A){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.has"}),A=Y.converters.ByteString(A),!Br(A))throw Y.errors.invalidArgument({prefix:"Headers.has",value:A,type:"header name"});return this[Xe].contains(A)}set(A,t){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,2,{header:"Headers.set"}),A=Y.converters.ByteString(A),t=Y.converters.ByteString(t),t=iu(t),Br(A)){if(!ru(t))throw Y.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header value"})}else throw Y.errors.invalidArgument({prefix:"Headers.set",value:A,type:"header name"});if(this[g1]==="immutable")throw new TypeError("immutable");return this[g1],this[Xe].set(A,t)}getSetCookie(){Y.brandCheck(this,e);let A=this[Xe].cookies;return A?[...A]:[]}get[Ke](){if(this[Xe][Ke])return this[Xe][Ke];let A=[],t=[...this[Xe]].sort((r,i)=>r[0]<i[0]?-1:1),a=this[Xe].cookies;for(let[r,i]of t)if(r==="set-cookie")for(let s of a)A.push([r,s]);else Yf(i!==null),A.push([r,i]);return this[Xe][Ke]=A,A}keys(){return Y.brandCheck(this,e),Cp(()=>[...this[Ke].values()],"Headers","key")}values(){return Y.brandCheck(this,e),Cp(()=>[...this[Ke].values()],"Headers","value")}entries(){return Y.brandCheck(this,e),Cp(()=>[...this[Ke].values()],"Headers","key+value")}forEach(A,t=globalThis){if(Y.brandCheck(this,e),Y.argumentLengthCheck(arguments,1,{header:"Headers.forEach"}),typeof A!="function")throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.");for(let[a,r]of this)A.apply(t,[r,a,this])}[Symbol.for("nodejs.util.inspect.custom")](){return Y.brandCheck(this,e),this[Xe]}};la.prototype[Symbol.iterator]=la.prototype.entries;Object.defineProperties(la.prototype,{append:At,delete:At,get:At,has:At,set:At,getSetCookie:At,keys:At,values:At,entries:At,forEach:At,[Symbol.iterator]:{enumerable:!1},[Symbol.toStringTag]:{value:"Headers",configurable:!0}});Y.converters.HeadersInit=function(e){if(Y.util.Type(e)==="Object")return e[Symbol.iterator]?Y.converters["sequence<sequence<ByteString>>"](e):Y.converters["record<ByteString, ByteString>"](e);throw Y.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};nu.exports={fill:su,Headers:la,HeadersList:gs}});var Qs=E((ab,uu)=>{"use strict";var{Headers:Jf,HeadersList:ou,fill:Gf}=c1(),{extractBody:du,cloneBody:xf,mixinBody:qf}=er(),Ip=q(),{kEnumerableProperty:lA}=Ip,{isValidReasonPhrase:Hf,isCancelled:Of,isAborted:Pf,isBlobLike:Wf,serializeJavascriptValueToJSONString:Zf,isErrorLike:jf,isomorphicEncode:Xf}=fA(),{redirectStatus:zf,nullBodyStatus:Kf,DOMException:$f}=Lt(),{kState:ae,kHeaders:Re,kGuard:ga,kRealm:pA}=lt(),{webidl:M}=Ge(),{FormData:ew}=ki(),{getGlobalOrigin:Aw}=Xa(),{URLSerializer:pu}=TA(),{kHeadersList:Bp}=ie(),fp=require("assert"),{types:hp}=require("util"),gu=globalThis.ReadableStream||require("stream/web").ReadableStream,ca=class e{static error(){let A={settingsObject:{}},t=new e;return t[ae]=us(),t[pA]=A,t[Re][Bp]=t[ae].headersList,t[Re][ga]="immutable",t[Re][pA]=A,t}static json(A=void 0,t={}){M.argumentLengthCheck(arguments,1,{header:"Response.json"}),t!==null&&(t=M.converters.ResponseInit(t));let a=new TextEncoder("utf-8").encode(Zf(A)),r=du(a),i={settingsObject:{}},s=new e;return s[pA]=i,s[Re][ga]="response",s[Re][pA]=i,lu(s,t,{body:r[0],type:"application/json"}),s}static redirect(A,t=302){let a={settingsObject:{}};M.argumentLengthCheck(arguments,1,{header:"Response.redirect"}),A=M.converters.USVString(A),t=M.converters["unsigned short"](t);let r;try{r=new URL(A,Aw())}catch(n){throw Object.assign(new TypeError("Failed to parse URL from "+A),{cause:n})}if(!zf.includes(t))throw new RangeError("Invalid status code "+t);let i=new e;i[pA]=a,i[Re][ga]="immutable",i[Re][pA]=a,i[ae].status=t;let s=Xf(pu(r));return i[ae].headersList.append("location",s),i}constructor(A=null,t={}){A!==null&&(A=M.converters.BodyInit(A)),t=M.converters.ResponseInit(t),this[pA]={settingsObject:{}},this[ae]=Es({}),this[Re]=new Jf,this[Re][ga]="response",this[Re][Bp]=this[ae].headersList,this[Re][pA]=this[pA];let a=null;if(A!=null){let[r,i]=du(A);a={body:r,type:i}}lu(this,t,a)}get type(){return M.brandCheck(this,e),this[ae].type}get url(){M.brandCheck(this,e);let A=this[ae].urlList,t=A[A.length-1]??null;return t===null?"":pu(t,!0)}get redirected(){return M.brandCheck(this,e),this[ae].urlList.length>1}get status(){return M.brandCheck(this,e),this[ae].status}get ok(){return M.brandCheck(this,e),this[ae].status>=200&&this[ae].status<=299}get statusText(){return M.brandCheck(this,e),this[ae].statusText}get headers(){return M.brandCheck(this,e),this[Re]}get body(){return M.brandCheck(this,e),this[ae].body?this[ae].body.stream:null}get bodyUsed(){return M.brandCheck(this,e),!!this[ae].body&&Ip.isDisturbed(this[ae].body.stream)}clone(){if(M.brandCheck(this,e),this.bodyUsed||this.body&&this.body.locked)throw M.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let A=wp(this[ae]),t=new e;return t[ae]=A,t[pA]=this[pA],t[Re][Bp]=A.headersList,t[Re][ga]=this[Re][ga],t[Re][pA]=this[Re][pA],t}};qf(ca);Object.defineProperties(ca.prototype,{type:lA,url:lA,status:lA,ok:lA,redirected:lA,statusText:lA,headers:lA,clone:lA,body:lA,bodyUsed:lA,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(ca,{json:lA,redirect:lA,error:lA});function wp(e){if(e.internalResponse)return cu(wp(e.internalResponse),e.type);let A=Es({...e,body:null});return e.body!=null&&(A.body=xf(e.body)),A}function Es(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e.headersList?new ou(e.headersList):new ou,urlList:e.urlList?[...e.urlList]:[]}}function us(e){let A=jf(e);return Es({type:"error",status:0,error:A?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function cs(e,A){return A={internalResponse:e,...A},new Proxy(e,{get(t,a){return a in A?A[a]:t[a]},set(t,a,r){return fp(!(a in A)),t[a]=r,!0}})}function cu(e,A){if(A==="basic")return cs(e,{type:"basic",headersList:e.headersList});if(A==="cors")return cs(e,{type:"cors",headersList:e.headersList});if(A==="opaque")return cs(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(A==="opaqueredirect")return cs(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});fp(!1)}function tw(e){return fp(Of(e)),Pf(e)?us(new $f("The operation was aborted.","AbortError")):us("Request was cancelled.")}function lu(e,A,t){if(A.status!==null&&(A.status<200||A.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in A&&A.statusText!=null&&!Hf(String(A.statusText)))throw new TypeError("Invalid statusText");if("status"in A&&A.status!=null&&(e[ae].status=A.status),"statusText"in A&&A.statusText!=null&&(e[ae].statusText=A.statusText),"headers"in A&&A.headers!=null&&Gf(e[Re],A.headers),t){if(Kf.includes(e.status))throw M.errors.exception({header:"Response constructor",message:"Invalid response status code "+e.status});e[ae].body=t.body,t.type!=null&&!e[ae].headersList.contains("Content-Type")&&e[ae].headersList.append("content-type",t.type)}}M.converters.ReadableStream=M.interfaceConverter(gu);M.converters.FormData=M.interfaceConverter(ew);M.converters.URLSearchParams=M.interfaceConverter(URLSearchParams);M.converters.XMLHttpRequestBodyInit=function(e){return typeof e=="string"?M.converters.USVString(e):Wf(e)?M.converters.Blob(e,{strict:!1}):hp.isAnyArrayBuffer(e)||hp.isTypedArray(e)||hp.isDataView(e)?M.converters.BufferSource(e):Ip.isFormDataLike(e)?M.converters.FormData(e,{strict:!1}):e instanceof URLSearchParams?M.converters.URLSearchParams(e):M.converters.DOMString(e)};M.converters.BodyInit=function(e){return e instanceof gu?M.converters.ReadableStream(e):e?.[Symbol.asyncIterator]?e:M.converters.XMLHttpRequestBodyInit(e)};M.converters.ResponseInit=M.dictionaryConverter([{key:"status",converter:M.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:M.converters.ByteString,defaultValue:""},{key:"headers",converter:M.converters.HeadersInit}]);uu.exports={makeNetworkError:us,makeResponse:Es,makeAppropriateNetworkError:tw,filterResponse:cu,Response:ca,cloneResponse:wp}});var fr=E((rb,Iu)=>{"use strict";var{extractBody:aw,mixinBody:rw,cloneBody:iw}=er(),{Headers:yp,fill:sw,HeadersList:Eu}=c1(),{FinalizationRegistry:nw}=Ld()(),Ir=q(),{isValidHTTPToken:ow,sameOrigin:Qu,normalizeMethod:dw,makePolicyContainer:pw}=fA(),{forbiddenMethods:lw,corsSafeListedMethods:gw,referrerPolicy:cw,requestRedirect:uw,requestMode:Ew,requestCredentials:Qw,requestCache:mw,requestDuplex:Cw}=Lt(),{kEnumerableProperty:me}=Ir,{kHeaders:ve,kSignal:hr,kState:Ae,kGuard:ms,kRealm:gA}=lt(),{webidl:b}=Ge(),{getGlobalOrigin:Bw}=Xa(),{URLSerializer:hw}=TA(),{kHeadersList:Cs}=ie(),Iw=require("assert"),{getMaxListeners:mu,setMaxListeners:Cu,getEventListeners:fw,defaultMaxListeners:Bu}=require("events"),Dp=globalThis.TransformStream,hu=Symbol("init"),ww=Symbol("abortController"),yw=new nw(({signal:e,abort:A})=>{e.removeEventListener("abort",A)}),u1=class e{constructor(A,t={}){if(A===hu)return;b.argumentLengthCheck(arguments,1,{header:"Request constructor"}),A=b.converters.RequestInfo(A),t=b.converters.RequestInit(t),this[gA]={settingsObject:{baseUrl:Bw(),get origin(){return this.baseUrl?.origin},policyContainer:pw()}};let a=null,r=null,i=this[gA].settingsObject.baseUrl,s=null;if(typeof A=="string"){let Q;try{Q=new URL(A,i)}catch(C){throw new TypeError("Failed to parse URL from "+A,{cause:C})}if(Q.username||Q.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+A);a=Bs({urlList:[Q]}),r="cors"}else Iw(A instanceof e),a=A[Ae],s=A[hr];let n=this[gA].settingsObject.origin,o="client";if(a.window?.constructor?.name==="EnvironmentSettingsObject"&&Qu(a.window,n)&&(o=a.window),t.window!=null)throw new TypeError(`'window' option '${o}' must be null`);if("window"in t&&(o="no-window"),a=Bs({method:a.method,headersList:a.headersList,unsafeRequest:a.unsafeRequest,client:this[gA].settingsObject,window:o,priority:a.priority,origin:a.origin,referrer:a.referrer,referrerPolicy:a.referrerPolicy,mode:a.mode,credentials:a.credentials,cache:a.cache,redirect:a.redirect,integrity:a.integrity,keepalive:a.keepalive,reloadNavigation:a.reloadNavigation,historyNavigation:a.historyNavigation,urlList:[...a.urlList]}),Object.keys(t).length>0&&(a.mode==="navigate"&&(a.mode="same-origin"),a.reloadNavigation=!1,a.historyNavigation=!1,a.origin="client",a.referrer="client",a.referrerPolicy="",a.url=a.urlList[a.urlList.length-1],a.urlList=[a.url]),t.referrer!==void 0){let Q=t.referrer;if(Q==="")a.referrer="no-referrer";else{let C;try{C=new URL(Q,i)}catch(m){throw new TypeError(`Referrer "${Q}" is not a valid URL.`,{cause:m})}C.protocol==="about:"&&C.hostname==="client"||n&&!Qu(C,this[gA].settingsObject.baseUrl)?a.referrer="client":a.referrer=C}}t.referrerPolicy!==void 0&&(a.referrerPolicy=t.referrerPolicy);let d;if(t.mode!==void 0?d=t.mode:d=r,d==="navigate")throw b.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(d!=null&&(a.mode=d),t.credentials!==void 0&&(a.credentials=t.credentials),t.cache!==void 0&&(a.cache=t.cache),a.cache==="only-if-cached"&&a.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(t.redirect!==void 0&&(a.redirect=t.redirect),t.integrity!==void 0&&t.integrity!=null&&(a.integrity=String(t.integrity)),t.keepalive!==void 0&&(a.keepalive=!!t.keepalive),t.method!==void 0){let Q=t.method;if(!ow(t.method))throw TypeError(`'${t.method}' is not a valid HTTP method.`);if(lw.indexOf(Q.toUpperCase())!==-1)throw TypeError(`'${t.method}' HTTP method is unsupported.`);Q=dw(t.method),a.method=Q}t.signal!==void 0&&(s=t.signal),this[Ae]=a;let l=new AbortController;if(this[hr]=l.signal,this[hr][gA]=this[gA],s!=null){if(!s||typeof s.aborted!="boolean"||typeof s.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(s.aborted)l.abort(s.reason);else{this[ww]=l;let Q=new WeakRef(l),C=function(){let m=Q.deref();m!==void 0&&m.abort(this.reason)};try{(typeof mu=="function"&&mu(s)===Bu||fw(s,"abort").length>=Bu)&&Cu(100,s)}catch{}Ir.addAbortListener(s,C),yw.register(l,{signal:s,abort:C})}}if(this[ve]=new yp,this[ve][Cs]=a.headersList,this[ve][ms]="request",this[ve][gA]=this[gA],d==="no-cors"){if(!gw.includes(a.method))throw new TypeError(`'${a.method} is unsupported in no-cors mode.`);this[ve][ms]="request-no-cors"}if(Object.keys(t).length!==0){let Q=new yp(this[ve]);if(t.headers!==void 0&&(Q=t.headers),this[ve][Cs].clear(),Q.constructor.name==="Headers")for(let[C,m]of Q)this[ve].append(C,m);else sw(this[ve],Q)}let p=A instanceof e?A[Ae].body:null;if((t.body!=null||p!=null)&&(a.method==="GET"||a.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let g=null;if(t.body!=null){let[Q,C]=aw(t.body,a.keepalive);g=Q,C&&!this[ve][Cs].contains("content-type")&&this[ve].append("content-type",C)}let c=g??p;if(c!=null&&c.source==null){if(g!=null&&t.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(a.mode!=="same-origin"&&a.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');a.useCORSPreflightFlag=!0}let u=c;if(g==null&&p!=null){if(Ir.isDisturbed(p.stream)||p.stream.locked)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");Dp||(Dp=require("stream/web").TransformStream);let Q=new Dp;p.stream.pipeThrough(Q),u={source:p.source,length:p.length,stream:Q.readable}}this[Ae].body=u}get method(){return b.brandCheck(this,e),this[Ae].method}get url(){return b.brandCheck(this,e),hw(this[Ae].url)}get headers(){return b.brandCheck(this,e),this[ve]}get destination(){return b.brandCheck(this,e),this[Ae].destination}get referrer(){return b.brandCheck(this,e),this[Ae].referrer==="no-referrer"?"":this[Ae].referrer==="client"?"about:client":this[Ae].referrer.toString()}get referrerPolicy(){return b.brandCheck(this,e),this[Ae].referrerPolicy}get mode(){return b.brandCheck(this,e),this[Ae].mode}get credentials(){return this[Ae].credentials}get cache(){return b.brandCheck(this,e),this[Ae].cache}get redirect(){return b.brandCheck(this,e),this[Ae].redirect}get integrity(){return b.brandCheck(this,e),this[Ae].integrity}get keepalive(){return b.brandCheck(this,e),this[Ae].keepalive}get isReloadNavigation(){return b.brandCheck(this,e),this[Ae].reloadNavigation}get isHistoryNavigation(){return b.brandCheck(this,e),this[Ae].historyNavigation}get signal(){return b.brandCheck(this,e),this[hr]}get body(){return b.brandCheck(this,e),this[Ae].body?this[Ae].body.stream:null}get bodyUsed(){return b.brandCheck(this,e),!!this[Ae].body&&Ir.isDisturbed(this[Ae].body.stream)}get duplex(){return b.brandCheck(this,e),"half"}clone(){if(b.brandCheck(this,e),this.bodyUsed||this.body?.locked)throw new TypeError("unusable");let A=Dw(this[Ae]),t=new e(hu);t[Ae]=A,t[gA]=this[gA],t[ve]=new yp,t[ve][Cs]=A.headersList,t[ve][ms]=this[ve][ms],t[ve][gA]=this[ve][gA];let a=new AbortController;return this.signal.aborted?a.abort(this.signal.reason):Ir.addAbortListener(this.signal,()=>{a.abort(this.signal.reason)}),t[hr]=a.signal,t}};rw(u1);function Bs(e){let A={method:"GET",localURLsOnly:!1,unsafeRequest:!1,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:!1,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:!1,credentials:"same-origin",useCredentials:!1,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:!1,historyNavigation:!1,userActivation:!1,taintedOrigin:!1,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:!1,done:!1,timingAllowFailed:!1,...e,headersList:e.headersList?new Eu(e.headersList):new Eu};return A.url=A.urlList[0],A}function Dw(e){let A=Bs({...e,body:null});return e.body!=null&&(A.body=iw(e.body)),A}Object.defineProperties(u1.prototype,{method:me,url:me,headers:me,redirect:me,clone:me,signal:me,duplex:me,destination:me,body:me,bodyUsed:me,isHistoryNavigation:me,isReloadNavigation:me,keepalive:me,integrity:me,cache:me,credentials:me,attribute:me,referrerPolicy:me,referrer:me,mode:me,[Symbol.toStringTag]:{value:"Request",configurable:!0}});b.converters.Request=b.interfaceConverter(u1);b.converters.RequestInfo=function(e){return typeof e=="string"?b.converters.USVString(e):e instanceof u1?b.converters.Request(e):b.converters.USVString(e)};b.converters.AbortSignal=b.interfaceConverter(AbortSignal);b.converters.RequestInit=b.dictionaryConverter([{key:"method",converter:b.converters.ByteString},{key:"headers",converter:b.converters.HeadersInit},{key:"body",converter:b.nullableConverter(b.converters.BodyInit)},{key:"referrer",converter:b.converters.USVString},{key:"referrerPolicy",converter:b.converters.DOMString,allowedValues:cw},{key:"mode",converter:b.converters.DOMString,allowedValues:Ew},{key:"credentials",converter:b.converters.DOMString,allowedValues:Qw},{key:"cache",converter:b.converters.DOMString,allowedValues:mw},{key:"redirect",converter:b.converters.DOMString,allowedValues:uw},{key:"integrity",converter:b.converters.DOMString},{key:"keepalive",converter:b.converters.boolean},{key:"signal",converter:b.nullableConverter(e=>b.converters.AbortSignal(e,{strict:!1}))},{key:"window",converter:b.converters.any},{key:"duplex",converter:b.converters.DOMString,allowedValues:Cw}]);Iu.exports={Request:u1,makeRequest:Bs}});var Rs=E((ib,Tu)=>{"use strict";var{Response:Rw,makeNetworkError:K,makeAppropriateNetworkError:hs,filterResponse:Rp,makeResponse:Is}=Qs(),{Headers:fu}=c1(),{Request:vw,makeRequest:Nw}=fr(),wr=require("zlib"),{bytesMatch:Sw,makePolicyContainer:bw,clonePolicyContainer:Fw,requestBadPort:kw,TAOCheck:Lw,appendRequestOriginHeader:Uw,responseLocationURL:Tw,requestCurrentURL:tt,setRequestReferrerPolicyOnRedirect:Mw,tryUpgradeRequestToAPotentiallyTrustworthyURL:Vw,createOpaqueTimingInfo:Mp,appendFetchMetadata:Yw,corsCheck:Jw,crossOriginResourcePolicyCheck:Gw,determineRequestsReferrer:xw,coarsenedSharedCurrentTime:Vp,createDeferredPromise:_w,isBlobLike:qw,sameOrigin:kp,isCancelled:ua,isAborted:wu,isErrorLike:Hw,fullyReadBody:vu,readableStreamClose:Ow,isomorphicEncode:Lp,urlIsLocal:Pw,urlIsHttpHttpsScheme:Yp,urlHasHttpsScheme:Ww}=fA(),{kState:Up,kHeaders:vp,kGuard:Zw,kRealm:yu}=lt(),Ea=require("assert"),{safelyExtractBody:fs}=er(),{redirectStatus:Nu,nullBodyStatus:Su,safeMethods:jw,requestBodyHeader:Xw,subresource:zw,DOMException:ws}=Lt(),{kHeadersList:Tp}=ie(),Kw=require("events"),{Readable:$w,pipeline:ey}=require("stream"),{addAbortListener:Ay,isErrored:ty,isReadable:ys,nodeMajor:Du,nodeMinor:ay}=q(),{dataURLProcessor:ry,serializeAMimeType:iy}=TA(),{TransformStream:sy}=require("stream/web"),{getGlobalDispatcher:ny}=pa(),{webidl:oy}=Ge(),{STATUS_CODES:dy}=require("http"),Np,Sp=globalThis.ReadableStream,Ds=class extends Kw{constructor(A){super(),this.dispatcher=A,this.connection=null,this.dump=!1,this.state="ongoing",this.setMaxListeners(21)}terminate(A){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(A),this.emit("terminated",A))}abort(A){this.state==="ongoing"&&(this.state="aborted",A||(A=new ws("The operation was aborted.","AbortError")),this.serializedAbortReason=A,this.connection?.destroy(A),this.emit("terminated",A))}};async function py(e,A={}){oy.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});let t=_w(),a;try{a=new vw(e,A)}catch(g){return t.reject(g),t.promise}let r=a[Up];if(a.signal.aborted)return bp(t,r,null,a.signal.reason),t.promise;r.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(r.serviceWorkers="none");let s=null,n=null,o=!1,d=null;return Ay(a.signal,()=>{o=!0,Ea(d!=null),d.abort(a.signal.reason),bp(t,r,s,a.signal.reason)}),d=Fu({request:r,processResponseEndOfBody:g=>bu(g,"fetch"),processResponse:g=>{if(!o){if(g.aborted){bp(t,r,s,d.serializedAbortReason);return}if(g.type==="error"){t.reject(Object.assign(new TypeError("fetch failed"),{cause:g.error}));return}s=new Rw,s[Up]=g,s[yu]=n,s[vp][Tp]=g.headersList,s[vp][Zw]="immutable",s[vp][yu]=n,t.resolve(s)}},dispatcher:A.dispatcher??ny()}),t.promise}function bu(e,A="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let t=e.urlList[0],a=e.timingInfo,r=e.cacheState;Yp(t)&&a!==null&&(a.timingAllowPassed||(a=Mp({startTime:a.startTime}),r=""),a.endTime=Vp(),e.timingInfo=a,ly(a,t,A,globalThis,r))}function ly(e,A,t,a,r){(Du>18||Du===18&&ay>=2)&&performance.markResourceTiming(e,A.href,t,a,r)}function bp(e,A,t,a){if(a||(a=new ws("The operation was aborted.","AbortError")),e.reject(a),A.body!=null&&ys(A.body?.stream)&&A.body.stream.cancel(a).catch(i=>{if(i.code!=="ERR_INVALID_STATE")throw i}),t==null)return;let r=t[Up];r.body!=null&&ys(r.body?.stream)&&r.body.stream.cancel(a).catch(i=>{if(i.code!=="ERR_INVALID_STATE")throw i})}function Fu({request:e,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:a,processResponseEndOfBody:r,processResponseConsumeBody:i,useParallelQueue:s=!1,dispatcher:n}){let o=null,d=!1;e.client!=null&&(o=e.client.globalObject,d=e.client.crossOriginIsolatedCapability);let l=Vp(d),p=Mp({startTime:l}),g={controller:new Ds(n),request:e,timingInfo:p,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:a,processResponseConsumeBody:i,processResponseEndOfBody:r,taskDestination:o,crossOriginIsolatedCapability:d};return Ea(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client?.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=Fw(e.client.policyContainer):e.policyContainer=bw()),e.headersList.contains("accept")||e.headersList.append("accept","*/*"),e.headersList.contains("accept-language")||e.headersList.append("accept-language","*"),e.priority,zw.includes(e.destination),ku(g).catch(c=>{g.controller.terminate(c)}),g.controller}async function ku(e,A=!1){let t=e.request,a=null;if(t.localURLsOnly&&!Pw(tt(t))&&(a=K("local URLs only")),Vw(t),kw(t)==="blocked"&&(a=K("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=xw(t)),a===null&&(a=await(async()=>{let i=tt(t);return kp(i,t.url)&&t.responseTainting==="basic"||i.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await Ru(e)):t.mode==="same-origin"?K('request mode cannot be "same-origin"'):t.mode==="no-cors"?t.redirect!=="follow"?K('redirect mode cannot be "follow" for "no-cors" request'):(t.responseTainting="opaque",await Ru(e)):Yp(tt(t))?(t.responseTainting="cors",await Lu(e)):K("URL scheme must be a HTTP(S) scheme")})()),A)return a;a.status!==0&&!a.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?a=Rp(a,"basic"):t.responseTainting==="cors"?a=Rp(a,"cors"):t.responseTainting==="opaque"?a=Rp(a,"opaque"):Ea(!1));let r=a.status===0?a:a.internalResponse;if(r.urlList.length===0&&r.urlList.push(...t.urlList),t.timingAllowFailed||(a.timingAllowPassed=!0),a.type==="opaque"&&r.status===206&&r.rangeRequested&&!t.headers.contains("range")&&(a=r=K()),a.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||Su.includes(r.status))&&(r.body=null,e.controller.dump=!0),t.integrity){let i=n=>Fp(e,K(n));if(t.responseTainting==="opaque"||a.body==null){i(a.error);return}let s=n=>{if(!Sw(n,t.integrity)){i("integrity mismatch");return}a.body=fs(n)[0],Fp(e,a)};await vu(a.body,s,i)}else Fp(e,a)}async function Ru(e){if(ua(e)&&e.request.redirectCount===0)return hs(e);let{request:A}=e,{protocol:t}=tt(A);switch(t){case"about:":return K("about scheme is not supported");case"blob:":{Np||(Np=require("buffer").resolveObjectURL);let a=tt(A);if(a.search.length!==0)return K("NetworkError when attempting to fetch resource.");let r=Np(a.toString());if(A.method!=="GET"||!qw(r))return K("invalid method");let i=fs(r),s=i[0],n=Lp(`${s.length}`),o=i[1]??"",d=Is({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:n}],["content-type",{name:"Content-Type",value:o}]]});return d.body=s,d}case"data:":{let a=tt(A),r=ry(a);if(r==="failure")return K("failed to fetch the data URL");let i=iy(r.mimeType);return Is({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:i}]],body:fs(r.body)[0]})}case"file:":return K("not implemented... yet...");case"http:":case"https:":return await Lu(e).catch(a=>K(a));default:return K("unknown scheme")}}function gy(e,A){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(A))}async function Fp(e,A){A.type==="error"&&(A.urlList=[e.request.urlList[0]],A.timingInfo=Mp({startTime:e.timingInfo.startTime}));let t=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(A))};if(e.processResponse!=null&&queueMicrotask(()=>e.processResponse(A)),A.body==null)t();else{let a=(i,s)=>{s.enqueue(i)},r=new sy({start(){},transform:a,flush:t},{size(){return 1}},{size(){return 1}});A.body={stream:A.body.stream.pipeThrough(r)}}if(e.processResponseConsumeBody!=null){let a=i=>e.processResponseConsumeBody(A,i),r=i=>e.processResponseConsumeBody(A,i);A.body==null?queueMicrotask(()=>a(null)):await vu(A.body,a,r)}}async function Lu(e){let A=e.request,t=null,a=null,r=e.timingInfo;if(A.serviceWorkers,t===null){if(A.redirect==="follow"&&(A.serviceWorkers="none"),a=t=await Uu(e),A.responseTainting==="cors"&&Jw(A,t)==="failure")return K("cors failure");Lw(A,t)==="failure"&&(A.timingAllowFailed=!0)}return(A.responseTainting==="opaque"||t.type==="opaque")&&Gw(A.origin,A.client,A.destination,a)==="blocked"?K("blocked"):(Nu.includes(a.status)&&(A.redirect!=="manual"&&e.controller.connection.destroy(),A.redirect==="error"?t=K("unexpected redirect"):A.redirect==="manual"?t=a:A.redirect==="follow"?t=await cy(e,t):Ea(!1)),t.timingInfo=r,t)}async function cy(e,A){let t=e.request,a=A.internalResponse?A.internalResponse:A,r;try{if(r=Tw(a,tt(t).hash),r==null)return A}catch(s){return K(s)}if(!Yp(r))return K("URL scheme must be a HTTP(S) scheme");if(t.redirectCount===20)return K("redirect count exceeded");if(t.redirectCount+=1,t.mode==="cors"&&(r.username||r.password)&&!kp(t,r))return K('cross origin not allowed for request mode "cors"');if(t.responseTainting==="cors"&&(r.username||r.password))return K('URL cannot contain credentials for request mode "cors"');if(a.status!==303&&t.body!=null&&t.body.source==null)return K();if([301,302].includes(a.status)&&t.method==="POST"||a.status===303&&!["GET","HEAD"].includes(t.method)){t.method="GET",t.body=null;for(let s of Xw)t.headersList.delete(s)}kp(tt(t),r)||t.headersList.delete("authorization"),t.body!=null&&(Ea(t.body.source!=null),t.body=fs(t.body.source)[0]);let i=e.timingInfo;return i.redirectEndTime=i.postRedirectStartTime=Vp(e.crossOriginIsolatedCapability),i.redirectStartTime===0&&(i.redirectStartTime=i.startTime),t.urlList.push(r),Mw(t,a),ku(e,!0)}async function Uu(e,A=!1,t=!1){let a=e.request,r=null,i=null,s=null,n=null,o=!1;a.window==="no-window"&&a.redirect==="error"?(r=e,i=a):(i=Nw(a),r={...e},r.request=i);let d=a.credentials==="include"||a.credentials==="same-origin"&&a.responseTainting==="basic",l=i.body?i.body.length:null,p=null;if(i.body==null&&["POST","PUT"].includes(i.method)&&(p="0"),l!=null&&(p=Lp(`${l}`)),p!=null&&i.headersList.append("content-length",p),l!=null&&i.keepalive,i.referrer instanceof URL&&i.headersList.append("referer",Lp(i.referrer.href)),Uw(i),Yw(i),i.headersList.contains("user-agent")||i.headersList.append("user-agent","undici"),i.cache==="default"&&(i.headersList.contains("if-modified-since")||i.headersList.contains("if-none-match")||i.headersList.contains("if-unmodified-since")||i.headersList.contains("if-match")||i.headersList.contains("if-range"))&&(i.cache="no-store"),i.cache==="no-cache"&&!i.preventNoCacheCacheControlHeaderModification&&!i.headersList.contains("cache-control")&&i.headersList.append("cache-control","max-age=0"),(i.cache==="no-store"||i.cache==="reload")&&(i.headersList.contains("pragma")||i.headersList.append("pragma","no-cache"),i.headersList.contains("cache-control")||i.headersList.append("cache-control","no-cache")),i.headersList.contains("range")&&i.headersList.append("accept-encoding","identity"),i.headersList.contains("accept-encoding")||(Ww(tt(i))?i.headersList.append("accept-encoding","br, gzip, deflate"):i.headersList.append("accept-encoding","gzip, deflate")),n==null&&(i.cache="no-store"),i.mode!=="no-store"&&i.mode,s==null){if(i.mode==="only-if-cached")return K("only if cached");let g=await uy(r,d,t);!jw.includes(i.method)&&g.status>=200&&g.status<=399,o&&g.status,s==null&&(s=g)}if(s.urlList=[...i.urlList],i.headersList.contains("range")&&(s.rangeRequested=!0),s.requestIncludesCredentials=d,s.status===407)return a.window==="no-window"?K():ua(e)?hs(e):K("proxy authentication required");if(s.status===421&&!t&&(a.body==null||a.body.source!=null)){if(ua(e))return hs(e);e.controller.connection.destroy(),s=await Uu(e,A,!0)}return s}async function uy(e,A=!1,t=!1){Ea(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(u){this.destroyed||(this.destroyed=!0,this.abort?.(u??new ws("The operation was aborted.","AbortError")))}};let a=e.request,r=null,i=e.timingInfo;null==null&&(a.cache="no-store");let n=t?"yes":"no";a.mode;let o=null;if(a.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(a.body!=null){let u=async function*(m){ua(e)||(yield m,e.processRequestBodyChunkLength?.(m.byteLength))},Q=()=>{ua(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},C=m=>{ua(e)||(m.name==="AbortError"?e.controller.abort():e.controller.terminate(m))};o=async function*(){try{for await(let m of a.body.stream)yield*u(m);Q()}catch(m){C(m)}}()}try{let{body:u,status:Q,statusText:C,headersList:m,socket:B}=await c({body:o});if(B)r=Is({status:Q,statusText:C,headersList:m,socket:B});else{let w=u[Symbol.asyncIterator]();e.controller.next=()=>w.next(),r=Is({status:Q,statusText:C,headersList:m})}}catch(u){return u.name==="AbortError"?(e.controller.connection.destroy(),hs(e)):K(u)}let d=()=>{e.controller.resume()},l=u=>{e.controller.abort(u)};Sp||(Sp=require("stream/web").ReadableStream);let p=new Sp({async start(u){e.controller.controller=u},async pull(u){await d(u)},async cancel(u){await l(u)}},{highWaterMark:0,size(){return 1}});r.body={stream:p},e.controller.on("terminated",g),e.controller.resume=async()=>{for(;;){let u,Q;try{let{done:C,value:m}=await e.controller.next();if(wu(e))break;u=C?void 0:m}catch(C){e.controller.ended&&!i.encodedBodySize?u=void 0:(u=C,Q=!0)}if(u===void 0){Ow(e.controller.controller),gy(e,r);return}if(i.decodedBodySize+=u?.byteLength??0,Q){e.controller.terminate(u);return}if(e.controller.controller.enqueue(new Uint8Array(u)),ty(p)){e.controller.terminate();return}if(!e.controller.controller.desiredSize)return}};function g(u){wu(e)?(r.aborted=!0,ys(p)&&e.controller.controller.error(e.controller.serializedAbortReason)):ys(p)&&e.controller.controller.error(new TypeError("terminated",{cause:Hw(u)?u:void 0})),e.controller.connection.destroy()}return r;async function c({body:u}){let Q=tt(a),C=e.controller.dispatcher;return new Promise((m,B)=>C.dispatch({path:Q.pathname+Q.search,origin:Q.origin,method:a.method,body:e.controller.dispatcher.isMockActive?a.body&&a.body.source:u,headers:a.headersList.entries,maxRedirections:0,upgrade:a.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(w){let{connection:I}=e.controller;I.destroyed?w(new ws("The operation was aborted.","AbortError")):(e.controller.on("terminated",w),this.abort=I.abort=w)},onHeaders(w,I,y,S){if(w<200)return;let k=[],x="",we=new fu;for(let be=0;be<I.length;be+=2){let le=I[be+0].toString("latin1"),mA=I[be+1].toString("latin1");le.toLowerCase()==="content-encoding"?k=mA.toLowerCase().split(",").map(j=>j.trim()).reverse():le.toLowerCase()==="location"&&(x=mA),we.append(le,mA)}this.body=new $w({read:y});let Ce=[],yt=a.redirect==="follow"&&x&&Nu.includes(w);if(a.method!=="HEAD"&&a.method!=="CONNECT"&&!Su.includes(w)&&!yt)for(let be of k)if(be==="x-gzip"||be==="gzip")Ce.push(wr.createGunzip({flush:wr.constants.Z_SYNC_FLUSH,finishFlush:wr.constants.Z_SYNC_FLUSH}));else if(be==="deflate")Ce.push(wr.createInflate());else if(be==="br")Ce.push(wr.createBrotliDecompress());else{Ce.length=0;break}return m({status:w,statusText:S,headersList:we[Tp],body:Ce.length?ey(this.body,...Ce,()=>{}):this.body.on("error",()=>{})}),!0},onData(w){if(e.controller.dump)return;let I=w;return i.encodedBodySize+=I.byteLength,this.body.push(I)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.ended=!0,this.body.push(null)},onError(w){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(w),e.controller.terminate(w),B(w)},onUpgrade(w,I,y){if(w!==101)return;let S=new fu;for(let k=0;k<I.length;k+=2){let x=I[k+0].toString("latin1"),we=I[k+1].toString("latin1");S.append(x,we)}return m({status:w,statusText:dy[w],headersList:S[Tp],socket:y}),!0}}))}}Tu.exports={fetch:py,Fetch:Ds,fetching:Fu,finalizeAndReportTiming:bu}});var Jp=E((sb,Mu)=>{"use strict";Mu.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var Yu=E((nb,Vu)=>{"use strict";var{webidl:cA}=Ge(),vs=Symbol("ProgressEvent state"),Gp=class e extends Event{constructor(A,t={}){A=cA.converters.DOMString(A),t=cA.converters.ProgressEventInit(t??{}),super(A,t),this[vs]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return cA.brandCheck(this,e),this[vs].lengthComputable}get loaded(){return cA.brandCheck(this,e),this[vs].loaded}get total(){return cA.brandCheck(this,e),this[vs].total}};cA.converters.ProgressEventInit=cA.dictionaryConverter([{key:"lengthComputable",converter:cA.converters.boolean,defaultValue:!1},{key:"loaded",converter:cA.converters["unsigned long long"],defaultValue:0},{key:"total",converter:cA.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:cA.converters.boolean,defaultValue:!1},{key:"cancelable",converter:cA.converters.boolean,defaultValue:!1},{key:"composed",converter:cA.converters.boolean,defaultValue:!1}]);Vu.exports={ProgressEvent:Gp}});var Gu=E((ob,Ju)=>{"use strict";function Ey(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}Ju.exports={getEncoding:Ey}});var Zu=E((db,Wu)=>{"use strict";var{kState:Qa,kError:xp,kResult:xu,kAborted:yr,kLastProgressEventFired:_p}=Jp(),{ProgressEvent:Qy}=Yu(),{getEncoding:_u}=Gu(),{DOMException:my}=Lt(),{serializeAMimeType:Cy,parseMIMEType:qu}=TA(),{types:By}=require("util"),{StringDecoder:Hu}=require("string_decoder"),{btoa:Ou}=require("buffer"),hy={enumerable:!0,writable:!1,configurable:!1};function Iy(e,A,t,a){if(e[Qa]==="loading")throw new my("Invalid state","InvalidStateError");e[Qa]="loading",e[xu]=null,e[xp]=null;let i=A.stream().getReader(),s=[],n=i.read(),o=!0;(async()=>{for(;!e[yr];)try{let{done:d,value:l}=await n;if(o&&!e[yr]&&queueMicrotask(()=>{xt("loadstart",e)}),o=!1,!d&&By.isUint8Array(l))s.push(l),(e[_p]===void 0||Date.now()-e[_p]>=50)&&!e[yr]&&(e[_p]=Date.now(),queueMicrotask(()=>{xt("progress",e)})),n=i.read();else if(d){queueMicrotask(()=>{e[Qa]="done";try{let p=fy(s,t,A.type,a);if(e[yr])return;e[xu]=p,xt("load",e)}catch(p){e[xp]=p,xt("error",e)}e[Qa]!=="loading"&&xt("loadend",e)});break}}catch(d){if(e[yr])return;queueMicrotask(()=>{e[Qa]="done",e[xp]=d,xt("error",e),e[Qa]!=="loading"&&xt("loadend",e)});break}})()}function xt(e,A){let t=new Qy(e,{bubbles:!1,cancelable:!1});A.dispatchEvent(t)}function fy(e,A,t,a){switch(A){case"DataURL":{let r="data:",i=qu(t||"application/octet-stream");i!=="failure"&&(r+=Cy(i)),r+=";base64,";let s=new Hu("latin1");for(let n of e)r+=Ou(s.write(n));return r+=Ou(s.end()),r}case"Text":{let r="failure";if(a&&(r=_u(a)),r==="failure"&&t){let i=qu(t);i!=="failure"&&(r=_u(i.parameters.get("charset")))}return r==="failure"&&(r="UTF-8"),wy(e,r)}case"ArrayBuffer":return Pu(e).buffer;case"BinaryString":{let r="",i=new Hu("latin1");for(let s of e)r+=i.write(s);return r+=i.end(),r}}}function wy(e,A){let t=Pu(e),a=yy(t),r=0;a!==null&&(A=a,r=a==="UTF-8"?3:2);let i=t.slice(r);return new TextDecoder(A).decode(i)}function yy(e){let[A,t,a]=e;return A===239&&t===187&&a===191?"UTF-8":A===254&&t===255?"UTF-16BE":A===255&&t===254?"UTF-16LE":null}function Pu(e){let A=e.reduce((a,r)=>a+r.byteLength,0),t=0;return e.reduce((a,r)=>(a.set(r,t),t+=r.byteLength,a),new Uint8Array(A))}Wu.exports={staticPropertyDescriptors:hy,readOperation:Iy,fireAProgressEvent:xt}});var Ku=E((pb,zu)=>{"use strict";var{staticPropertyDescriptors:ma,readOperation:Ns,fireAProgressEvent:ju}=Zu(),{kState:E1,kError:Xu,kResult:Ss,kEvents:O,kAborted:Dy}=Jp(),{webidl:X}=Ge(),{kEnumerableProperty:$e}=q(),YA=class e extends EventTarget{constructor(){super(),this[E1]="empty",this[Ss]=null,this[Xu]=null,this[O]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(A){X.brandCheck(this,e),X.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"}),A=X.converters.Blob(A,{strict:!1}),Ns(this,A,"ArrayBuffer")}readAsBinaryString(A){X.brandCheck(this,e),X.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"}),A=X.converters.Blob(A,{strict:!1}),Ns(this,A,"BinaryString")}readAsText(A,t=void 0){X.brandCheck(this,e),X.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"}),A=X.converters.Blob(A,{strict:!1}),t!==void 0&&(t=X.converters.DOMString(t)),Ns(this,A,"Text",t)}readAsDataURL(A){X.brandCheck(this,e),X.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"}),A=X.converters.Blob(A,{strict:!1}),Ns(this,A,"DataURL")}abort(){if(this[E1]==="empty"||this[E1]==="done"){this[Ss]=null;return}this[E1]==="loading"&&(this[E1]="done",this[Ss]=null),this[Dy]=!0,ju("abort",this),this[E1]!=="loading"&&ju("loadend",this)}get readyState(){switch(X.brandCheck(this,e),this[E1]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return X.brandCheck(this,e),this[Ss]}get error(){return X.brandCheck(this,e),this[Xu]}get onloadend(){return X.brandCheck(this,e),this[O].loadend}set onloadend(A){X.brandCheck(this,e),this[O].loadend&&this.removeEventListener("loadend",this[O].loadend),typeof A=="function"?(this[O].loadend=A,this.addEventListener("loadend",A)):this[O].loadend=null}get onerror(){return X.brandCheck(this,e),this[O].error}set onerror(A){X.brandCheck(this,e),this[O].error&&this.removeEventListener("error",this[O].error),typeof A=="function"?(this[O].error=A,this.addEventListener("error",A)):this[O].error=null}get onloadstart(){return X.brandCheck(this,e),this[O].loadstart}set onloadstart(A){X.brandCheck(this,e),this[O].loadstart&&this.removeEventListener("loadstart",this[O].loadstart),typeof A=="function"?(this[O].loadstart=A,this.addEventListener("loadstart",A)):this[O].loadstart=null}get onprogress(){return X.brandCheck(this,e),this[O].progress}set onprogress(A){X.brandCheck(this,e),this[O].progress&&this.removeEventListener("progress",this[O].progress),typeof A=="function"?(this[O].progress=A,this.addEventListener("progress",A)):this[O].progress=null}get onload(){return X.brandCheck(this,e),this[O].load}set onload(A){X.brandCheck(this,e),this[O].load&&this.removeEventListener("load",this[O].load),typeof A=="function"?(this[O].load=A,this.addEventListener("load",A)):this[O].load=null}get onabort(){return X.brandCheck(this,e),this[O].abort}set onabort(A){X.brandCheck(this,e),this[O].abort&&this.removeEventListener("abort",this[O].abort),typeof A=="function"?(this[O].abort=A,this.addEventListener("abort",A)):this[O].abort=null}};YA.EMPTY=YA.prototype.EMPTY=0;YA.LOADING=YA.prototype.LOADING=1;YA.DONE=YA.prototype.DONE=2;Object.defineProperties(YA.prototype,{EMPTY:ma,LOADING:ma,DONE:ma,readAsArrayBuffer:$e,readAsBinaryString:$e,readAsText:$e,readAsDataURL:$e,abort:$e,readyState:$e,result:$e,error:$e,onloadstart:$e,onprogress:$e,onload:$e,onabort:$e,onerror:$e,onloadend:$e,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(YA,{EMPTY:ma,LOADING:ma,DONE:ma});zu.exports={FileReader:YA}});var bs=E((lb,$u)=>{"use strict";$u.exports={kConstruct:Symbol("constructable")}});var t9=E((gb,A9)=>{"use strict";var Ry=require("assert"),{URLSerializer:e9}=TA(),{isValidHeaderName:vy}=fA();function Ny(e,A,t=!1){let a=e9(e,t),r=e9(A,t);return a===r}function Sy(e){Ry(e!==null);let A=[];for(let t of e.split(",")){if(t=t.trim(),t.length){if(!vy(t))continue}else continue;A.push(t)}return A}A9.exports={urlEquals:Ny,fieldValues:Sy}});var o9=E((cb,n9)=>{"use strict";var{kConstruct:by}=bs(),{urlEquals:Fy,fieldValues:qp}=t9(),{kEnumerableProperty:Q1,isDisturbed:ky}=q(),{kHeadersList:a9}=ie(),{webidl:v}=Ge(),{Response:i9,cloneResponse:Ly}=Qs(),{Request:at}=fr(),{kState:Oe,kHeaders:Fs,kGuard:r9,kRealm:Uy}=lt(),{fetching:Ty}=Rs(),{urlIsHttpHttpsScheme:ks,createDeferredPromise:Ca,readAllBytes:My}=fA(),Hp=require("assert"),{getGlobalDispatcher:Vy}=pa(),Ls=class e{#e;constructor(){arguments[0]!==by&&v.illegalConstructor(),this.#e=arguments[1]}async match(A,t={}){v.brandCheck(this,e),v.argumentLengthCheck(arguments,1,{header:"Cache.match"}),A=v.converters.RequestInfo(A),t=v.converters.CacheQueryOptions(t);let a=await this.matchAll(A,t);if(a.length!==0)return a[0]}async matchAll(A=void 0,t={}){v.brandCheck(this,e),A!==void 0&&(A=v.converters.RequestInfo(A)),t=v.converters.CacheQueryOptions(t);let a=null;if(A!==void 0)if(A instanceof at){if(a=A[Oe],a.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(a=new at(A)[Oe]);let r=[];if(A===void 0)for(let s of this.#e)r.push(s[1]);else{let s=this.#A(a,t);for(let n of s)r.push(n[1])}let i=[];for(let s of r){let n=new i9(s.body?.source??null),o=n[Oe].body;n[Oe]=s,n[Oe].body=o,n[Fs][a9]=s.headersList,n[Fs][r9]="immutable",i.push(n)}return Object.freeze(i)}async add(A){v.brandCheck(this,e),v.argumentLengthCheck(arguments,1,{header:"Cache.add"}),A=v.converters.RequestInfo(A);let t=[A];return await this.addAll(t)}async addAll(A){v.brandCheck(this,e),v.argumentLengthCheck(arguments,1,{header:"Cache.addAll"}),A=v.converters["sequence<RequestInfo>"](A);let t=[],a=[];for(let p of A){if(typeof p=="string")continue;let g=p[Oe];if(!ks(g.url)||g.method!=="GET")throw v.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}let r=[];for(let p of A){let g=new at(p)[Oe];if(!ks(g.url))throw v.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."});g.initiator="fetch",g.destination="subresource",a.push(g);let c=Ca();r.push(Ty({request:g,dispatcher:Vy(),processResponse(u){if(u.type==="error"||u.status===206||u.status<200||u.status>299)c.reject(v.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(u.headersList.contains("vary")){let Q=qp(u.headersList.get("vary"));for(let C of Q)if(C==="*"){c.reject(v.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let m of r)m.abort();return}}},processResponseEndOfBody(u){if(u.aborted){c.reject(new DOMException("aborted","AbortError"));return}c.resolve(u)}})),t.push(c.promise)}let s=await Promise.all(t),n=[],o=0;for(let p of s){let g={type:"put",request:a[o],response:p};n.push(g),o++}let d=Ca(),l=null;try{this.#a(n)}catch(p){l=p}return queueMicrotask(()=>{l===null?d.resolve(void 0):d.reject(l)}),d.promise}async put(A,t){v.brandCheck(this,e),v.argumentLengthCheck(arguments,2,{header:"Cache.put"}),A=v.converters.RequestInfo(A),t=v.converters.Response(t);let a=null;if(A instanceof at?a=A[Oe]:a=new at(A)[Oe],!ks(a.url)||a.method!=="GET")throw v.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"});let r=t[Oe];if(r.status===206)throw v.errors.exception({header:"Cache.put",message:"Got 206 status"});if(r.headersList.contains("vary")){let g=qp(r.headersList.get("vary"));for(let c of g)if(c==="*")throw v.errors.exception({header:"Cache.put",message:"Got * vary field value"})}if(r.body&&(ky(r.body.stream)||r.body.stream.locked))throw v.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"});let i=Ly(r),s=Ca();if(r.body!=null){let c=r.body.stream.getReader();My(c,u=>s.resolve(u),u=>s.reject(u))}else s.resolve(void 0);let n=[],o={type:"put",request:a,response:i};n.push(o);let d=await s.promise;i.body!=null&&(i.body.source=d);let l=Ca(),p=null;try{this.#a(n)}catch(g){p=g}return queueMicrotask(()=>{p===null?l.resolve():l.reject(p)}),l.promise}async delete(A,t={}){v.brandCheck(this,e),v.argumentLengthCheck(arguments,1,{header:"Cache.delete"}),A=v.converters.RequestInfo(A),t=v.converters.CacheQueryOptions(t);let a=null;if(A instanceof at){if(a=A[Oe],a.method!=="GET"&&!t.ignoreMethod)return!1}else Hp(typeof A=="string"),a=new at(A)[Oe];let r=[],i={type:"delete",request:a,options:t};r.push(i);let s=Ca(),n=null,o;try{o=this.#a(r)}catch(d){n=d}return queueMicrotask(()=>{n===null?s.resolve(!!o?.length):s.reject(n)}),s.promise}async keys(A=void 0,t={}){v.brandCheck(this,e),A!==void 0&&(A=v.converters.RequestInfo(A)),t=v.converters.CacheQueryOptions(t);let a=null;if(A!==void 0)if(A instanceof at){if(a=A[Oe],a.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(a=new at(A)[Oe]);let r=Ca(),i=[];if(A===void 0)for(let s of this.#e)i.push(s[0]);else{let s=this.#A(a,t);for(let n of s)i.push(n[0])}return queueMicrotask(()=>{let s=[];for(let n of i){let o=new at("https://a");o[Oe]=n,o[Fs][a9]=n.headersList,o[Fs][r9]="immutable",o[Uy]=n.client,s.push(o)}r.resolve(Object.freeze(s))}),r.promise}#a(A){let t=this.#e,a=[...t],r=[],i=[];try{for(let s of A){if(s.type!=="delete"&&s.type!=="put")throw v.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(s.type==="delete"&&s.response!=null)throw v.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#A(s.request,s.options,r).length)throw new DOMException("???","InvalidStateError");let n;if(s.type==="delete"){if(n=this.#A(s.request,s.options),n.length===0)return[];for(let o of n){let d=t.indexOf(o);Hp(d!==-1),t.splice(d,1)}}else if(s.type==="put"){if(s.response==null)throw v.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let o=s.request;if(!ks(o.url))throw v.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(o.method!=="GET")throw v.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(s.options!=null)throw v.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});n=this.#A(s.request);for(let d of n){let l=t.indexOf(d);Hp(l!==-1),t.splice(l,1)}t.push([s.request,s.response]),r.push([s.request,s.response])}i.push([s.request,s.response])}return i}catch(s){throw this.#e.length=0,this.#e=a,s}}#A(A,t,a){let r=[],i=a??this.#e;for(let s of i){let[n,o]=s;this.#t(A,n,o,t)&&r.push(s)}return r}#t(A,t,a=null,r){let i=new URL(A.url),s=new URL(t.url);if(r?.ignoreSearch&&(s.search="",i.search=""),!Fy(i,s,!0))return!1;if(a==null||r?.ignoreVary||!a.headersList.contains("vary"))return!0;let n=qp(a.headersList.get("vary"));for(let o of n){if(o==="*")return!1;let d=t.headersList.get(o),l=A.headersList.get(o);if(d!==l)return!1}return!0}};Object.defineProperties(Ls.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:Q1,matchAll:Q1,add:Q1,addAll:Q1,put:Q1,delete:Q1,keys:Q1});var s9=[{key:"ignoreSearch",converter:v.converters.boolean,defaultValue:!1},{key:"ignoreMethod",converter:v.converters.boolean,defaultValue:!1},{key:"ignoreVary",converter:v.converters.boolean,defaultValue:!1}];v.converters.CacheQueryOptions=v.dictionaryConverter(s9);v.converters.MultiCacheQueryOptions=v.dictionaryConverter([...s9,{key:"cacheName",converter:v.converters.DOMString}]);v.converters.Response=v.interfaceConverter(i9);v.converters["sequence<RequestInfo>"]=v.sequenceConverter(v.converters.RequestInfo);n9.exports={Cache:Ls}});var p9=E((ub,d9)=>{"use strict";var{kConstruct:Dr}=bs(),{Cache:Us}=o9(),{webidl:Pe}=Ge(),{kEnumerableProperty:Rr}=q(),Ts=class e{#e=new Map;constructor(){arguments[0]!==Dr&&Pe.illegalConstructor()}async match(A,t={}){if(Pe.brandCheck(this,e),Pe.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"}),A=Pe.converters.RequestInfo(A),t=Pe.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#e.has(t.cacheName)){let a=this.#e.get(t.cacheName);return await new Us(Dr,a).match(A,t)}}else for(let a of this.#e.values()){let i=await new Us(Dr,a).match(A,t);if(i!==void 0)return i}}async has(A){return Pe.brandCheck(this,e),Pe.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"}),A=Pe.converters.DOMString(A),this.#e.has(A)}async open(A){if(Pe.brandCheck(this,e),Pe.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"}),A=Pe.converters.DOMString(A),this.#e.has(A)){let a=this.#e.get(A);return new Us(Dr,a)}let t=[];return this.#e.set(A,t),new Us(Dr,t)}async delete(A){return Pe.brandCheck(this,e),Pe.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"}),A=Pe.converters.DOMString(A),this.#e.delete(A)}async keys(){return Pe.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(Ts.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:Rr,has:Rr,open:Rr,delete:Rr,keys:Rr});d9.exports={CacheStorage:Ts}});var g9=E((Eb,l9)=>{"use strict";l9.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var Op=E((Qb,E9)=>{"use strict";var c9=require("assert"),{kHeadersList:u9}=ie();function Yy(e){if(e.length===0)return!1;for(let A of e){let t=A.charCodeAt(0);if(t>=0||t<=8||t>=10||t<=31||t===127)return!1}}function Jy(e){for(let A of e){let t=A.charCodeAt(0);if(t<=32||t>127||A==="("||A===")"||A===">"||A==="<"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}")throw new Error("Invalid cookie name")}}function Gy(e){for(let A of e){let t=A.charCodeAt(0);if(t<33||t===34||t===44||t===59||t===92||t>126)throw new Error("Invalid header value")}}function xy(e){for(let A of e)if(A.charCodeAt(0)<33||A===";")throw new Error("Invalid cookie path")}function _y(e){if(e.startsWith("-")||e.endsWith(".")||e.endsWith("-"))throw new Error("Invalid cookie domain")}function qy(e){typeof e=="number"&&(e=new Date(e));let A=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],a=A[e.getUTCDay()],r=e.getUTCDate().toString().padStart(2,"0"),i=t[e.getUTCMonth()],s=e.getUTCFullYear(),n=e.getUTCHours().toString().padStart(2,"0"),o=e.getUTCMinutes().toString().padStart(2,"0"),d=e.getUTCSeconds().toString().padStart(2,"0");return`${a}, ${r} ${i} ${s} ${n}:${o}:${d} GMT`}function Hy(e){if(e<0)throw new Error("Invalid cookie max-age")}function Oy(e){if(e.name.length===0)return null;Jy(e.name),Gy(e.value);let A=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&A.push("Secure"),e.httpOnly&&A.push("HttpOnly"),typeof e.maxAge=="number"&&(Hy(e.maxAge),A.push(`Max-Age=${e.maxAge}`)),e.domain&&(_y(e.domain),A.push(`Domain=${e.domain}`)),e.path&&(xy(e.path),A.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&A.push(`Expires=${qy(e.expires)}`),e.sameSite&&A.push(`SameSite=${e.sameSite}`);for(let t of e.unparsed){if(!t.includes("="))throw new Error("Invalid unparsed");let[a,...r]=t.split("=");A.push(`${a.trim()}=${r.join("=")}`)}return A.join("; ")}var Ms;function Py(e){if(e[u9])return e[u9];Ms||(Ms=Object.getOwnPropertySymbols(e).find(t=>t.description==="headers list"),c9(Ms,"Headers cannot be parsed"));let A=e[Ms];return c9(A),A}E9.exports={isCTLExcludingHtab:Yy,stringify:Oy,getHeadersList:Py}});var m9=E((mb,Q9)=>{"use strict";var{maxNameValuePairSize:Wy,maxAttributeValueSize:Zy}=g9(),{isCTLExcludingHtab:jy}=Op(),{collectASequenceOfCodePointsFast:Vs}=TA(),Xy=require("assert");function zy(e){if(jy(e))return null;let A="",t="",a="",r="";if(e.includes(";")){let i={position:0};A=Vs(";",e,i),t=e.slice(i.position)}else A=e;if(!A.includes("="))r=A;else{let i={position:0};a=Vs("=",A,i),r=A.slice(i.position+1)}return a=a.trim(),r=r.trim(),a.length+r.length>Wy?null:{name:a,value:r,...Ba(t)}}function Ba(e,A={}){if(e.length===0)return A;Xy(e[0]===";"),e=e.slice(1);let t="";e.includes(";")?(t=Vs(";",e,{position:0}),e=e.slice(t.length)):(t=e,e="");let a="",r="";if(t.includes("=")){let s={position:0};a=Vs("=",t,s),r=t.slice(s.position+1)}else a=t;if(a=a.trim(),r=r.trim(),r.length>Zy)return Ba(e,A);let i=a.toLowerCase();if(i==="expires"){let s=new Date(r);A.expires=s}else if(i==="max-age"){let s=r.charCodeAt(0);if((s<48||s>57)&&r[0]!=="-"||!/^\d+$/.test(r))return Ba(e,A);let n=Number(r);A.maxAge=n}else if(i==="domain"){let s=r;s[0]==="."&&(s=s.slice(1)),s=s.toLowerCase(),A.domain=s}else if(i==="path"){let s="";r.length===0||r[0]!=="/"?s="/":s=r,A.path=s}else if(i==="secure")A.secure=!0;else if(i==="httponly")A.httpOnly=!0;else if(i==="samesite"){let s="Default",n=r.toLowerCase();n.includes("none")&&(s="None"),n.includes("strict")&&(s="Strict"),n.includes("lax")&&(s="Lax"),A.sameSite=s}else A.unparsed??=[],A.unparsed.push(`${a}=${r}`);return Ba(e,A)}Q9.exports={parseSetCookie:zy,parseUnparsedAttributes:Ba}});var I9=E((Cb,h9)=>{"use strict";var{parseSetCookie:Ky}=m9(),{stringify:C9,getHeadersList:$y}=Op(),{webidl:G}=Ge(),{Headers:Ys}=c1();function eD(e){G.argumentLengthCheck(arguments,1,{header:"getCookies"}),G.brandCheck(e,Ys,{strict:!1});let A=e.get("cookie"),t={};if(!A)return t;for(let a of A.split(";")){let[r,...i]=a.split("=");t[r.trim()]=i.join("=")}return t}function AD(e,A,t){G.argumentLengthCheck(arguments,2,{header:"deleteCookie"}),G.brandCheck(e,Ys,{strict:!1}),A=G.converters.DOMString(A),t=G.converters.DeleteCookieAttributes(t),B9(e,{name:A,value:"",expires:new Date(0),...t})}function tD(e){G.argumentLengthCheck(arguments,1,{header:"getSetCookies"}),G.brandCheck(e,Ys,{strict:!1});let A=$y(e).cookies;return A?A.map(t=>Ky(Array.isArray(t)?t[1]:t)):[]}function B9(e,A){G.argumentLengthCheck(arguments,2,{header:"setCookie"}),G.brandCheck(e,Ys,{strict:!1}),A=G.converters.Cookie(A),C9(A)&&e.append("Set-Cookie",C9(A))}G.converters.DeleteCookieAttributes=G.dictionaryConverter([{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:null}]);G.converters.Cookie=G.dictionaryConverter([{converter:G.converters.DOMString,key:"name"},{converter:G.converters.DOMString,key:"value"},{converter:G.nullableConverter(e=>typeof e=="number"?G.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:null},{converter:G.nullableConverter(G.converters["long long"]),key:"maxAge",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:null},{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:null},{converter:G.nullableConverter(G.converters.boolean),key:"secure",defaultValue:null},{converter:G.nullableConverter(G.converters.boolean),key:"httpOnly",defaultValue:null},{converter:G.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:G.sequenceConverter(G.converters.DOMString),key:"unparsed",defaultValue:[]}]);h9.exports={getCookies:eD,deleteCookie:AD,getSetCookies:tD,setCookie:B9}});var ha=E((Bb,f9)=>{"use strict";var aD="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",rD={enumerable:!0,writable:!1,configurable:!1},iD={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},sD={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},nD=2**16-1,oD={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},dD=Buffer.allocUnsafe(0);f9.exports={uid:aD,staticPropertyDescriptors:rD,states:iD,opcodes:sD,maxUnsigned16Bit:nD,parserStates:oD,emptyBuffer:dD}});var vr=E((hb,w9)=>{"use strict";w9.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var Wp=E((Ib,y9)=>{"use strict";var{webidl:N}=Ge(),{kEnumerableProperty:eA}=q(),{MessagePort:pD}=require("worker_threads"),Js=class e extends Event{#e;constructor(A,t={}){N.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"}),A=N.converters.DOMString(A),t=N.converters.MessageEventInit(t),super(A,t),this.#e=t}get data(){return N.brandCheck(this,e),this.#e.data}get origin(){return N.brandCheck(this,e),this.#e.origin}get lastEventId(){return N.brandCheck(this,e),this.#e.lastEventId}get source(){return N.brandCheck(this,e),this.#e.source}get ports(){return N.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(A,t=!1,a=!1,r=null,i="",s="",n=null,o=[]){return N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"}),new e(A,{bubbles:t,cancelable:a,data:r,origin:i,lastEventId:s,source:n,ports:o})}},Gs=class e extends Event{#e;constructor(A,t={}){N.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"}),A=N.converters.DOMString(A),t=N.converters.CloseEventInit(t),super(A,t),this.#e=t}get wasClean(){return N.brandCheck(this,e),this.#e.wasClean}get code(){return N.brandCheck(this,e),this.#e.code}get reason(){return N.brandCheck(this,e),this.#e.reason}},xs=class e extends Event{#e;constructor(A,t){N.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"}),super(A,t),A=N.converters.DOMString(A),t=N.converters.ErrorEventInit(t??{}),this.#e=t}get message(){return N.brandCheck(this,e),this.#e.message}get filename(){return N.brandCheck(this,e),this.#e.filename}get lineno(){return N.brandCheck(this,e),this.#e.lineno}get colno(){return N.brandCheck(this,e),this.#e.colno}get error(){return N.brandCheck(this,e),this.#e.error}};Object.defineProperties(Js.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:eA,origin:eA,lastEventId:eA,source:eA,ports:eA,initMessageEvent:eA});Object.defineProperties(Gs.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:eA,code:eA,wasClean:eA});Object.defineProperties(xs.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:eA,filename:eA,lineno:eA,colno:eA,error:eA});N.converters.MessagePort=N.interfaceConverter(pD);N.converters["sequence<MessagePort>"]=N.sequenceConverter(N.converters.MessagePort);var Pp=[{key:"bubbles",converter:N.converters.boolean,defaultValue:!1},{key:"cancelable",converter:N.converters.boolean,defaultValue:!1},{key:"composed",converter:N.converters.boolean,defaultValue:!1}];N.converters.MessageEventInit=N.dictionaryConverter([...Pp,{key:"data",converter:N.converters.any,defaultValue:null},{key:"origin",converter:N.converters.USVString,defaultValue:""},{key:"lastEventId",converter:N.converters.DOMString,defaultValue:""},{key:"source",converter:N.nullableConverter(N.converters.MessagePort),defaultValue:null},{key:"ports",converter:N.converters["sequence<MessagePort>"],get defaultValue(){return[]}}]);N.converters.CloseEventInit=N.dictionaryConverter([...Pp,{key:"wasClean",converter:N.converters.boolean,defaultValue:!1},{key:"code",converter:N.converters["unsigned short"],defaultValue:0},{key:"reason",converter:N.converters.USVString,defaultValue:""}]);N.converters.ErrorEventInit=N.dictionaryConverter([...Pp,{key:"message",converter:N.converters.DOMString,defaultValue:""},{key:"filename",converter:N.converters.USVString,defaultValue:""},{key:"lineno",converter:N.converters["unsigned long"],defaultValue:0},{key:"colno",converter:N.converters["unsigned long"],defaultValue:0},{key:"error",converter:N.converters.any}]);y9.exports={MessageEvent:Js,CloseEvent:Gs,ErrorEvent:xs}});var Hs=E((fb,v9)=>{"use strict";var{kReadyState:_s,kController:lD,kResponse:gD,kBinaryType:cD,kWebSocketURL:uD}=vr(),{states:qs,opcodes:D9}=ha(),{MessageEvent:ED,ErrorEvent:QD}=Wp();function mD(e){return e[_s]===qs.OPEN}function CD(e){return e[_s]===qs.CLOSING}function BD(e){return e[_s]===qs.CLOSED}function Zp(e,A,t=Event,a){let r=new t(e,a);A.dispatchEvent(r)}function hD(e,A,t){if(e[_s]!==qs.OPEN)return;let a;if(A===D9.TEXT)try{a=new TextDecoder("utf-8",{fatal:!0}).decode(t)}catch{R9(e,"Received invalid UTF-8 in text frame.");return}else A===D9.BINARY&&(e[cD]==="blob"?a=new Blob([t]):a=new Uint8Array(t).buffer);Zp("message",e,ED,{origin:e[uD].origin,data:a})}function ID(e){if(e.length===0)return!1;for(let A of e){let t=A.charCodeAt(0);if(t<33||t>126||A==="("||A===")"||A==="<"||A===">"||A==="@"||A===","||A===";"||A===":"||A==="\\"||A==='"'||A==="/"||A==="["||A==="]"||A==="?"||A==="="||A==="{"||A==="}"||t===32||t===9)return!1}return!0}function fD(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function R9(e,A){let{[lD]:t,[gD]:a}=e;t.abort(),a?.socket&&!a.socket.destroyed&&a.socket.destroy(),A&&Zp("error",e,QD,{error:new Error(A)})}v9.exports={isEstablished:mD,isClosing:CD,isClosed:BD,fireEvent:Zp,isValidSubprotocol:ID,isValidStatusCode:fD,failWebsocketConnection:R9,websocketMessageReceived:hD}});var L9=E((wb,k9)=>{"use strict";var{randomBytes:wD,createHash:yD}=require("crypto"),jp=require("diagnostics_channel"),{uid:DD,states:S9}=ha(),{kReadyState:b9,kSentClose:N9,kByteParser:F9,kReceivedClose:RD}=vr(),{fireEvent:vD,failWebsocketConnection:m1}=Hs(),{CloseEvent:ND}=Wp(),{makeRequest:SD}=fr(),{fetching:bD}=Rs(),{Headers:FD}=c1(),{getGlobalDispatcher:kD}=pa(),{kHeadersList:LD}=ie(),Bt={};Bt.open=jp.channel("undici:websocket:open");Bt.close=jp.channel("undici:websocket:close");Bt.socketError=jp.channel("undici:websocket:socket_error");function UD(e,A,t,a,r){let i=e;i.protocol=e.protocol==="ws:"?"http:":"https:";let s=SD({urlList:[i],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(r.headers){let l=new FD(r.headers)[LD];s.headersList=l}let n=wD(16).toString("base64");s.headersList.append("sec-websocket-key",n),s.headersList.append("sec-websocket-version","13");for(let l of A)s.headersList.append("sec-websocket-protocol",l);let o="";return bD({request:s,useParallelQueue:!0,dispatcher:r.dispatcher??kD(),processResponse(l){if(l.type==="error"||l.status!==101){m1(t,"Received network error or non-101 status code.");return}if(A.length!==0&&!l.headersList.get("Sec-WebSocket-Protocol")){m1(t,"Server did not respond with sent protocols.");return}if(l.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){m1(t,'Server did not set Upgrade header to "websocket".');return}if(l.headersList.get("Connection")?.toLowerCase()!=="upgrade"){m1(t,'Server did not set Connection header to "upgrade".');return}let p=l.headersList.get("Sec-WebSocket-Accept"),g=yD("sha1").update(n+DD).digest("base64");if(p!==g){m1(t,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let c=l.headersList.get("Sec-WebSocket-Extensions");if(c!==null&&c!==o){m1(t,"Received different permessage-deflate than the one set.");return}let u=l.headersList.get("Sec-WebSocket-Protocol");if(u!==null&&u!==s.headersList.get("Sec-WebSocket-Protocol")){m1(t,"Protocol was not set in the opening handshake.");return}l.socket.on("data",TD),l.socket.on("close",MD),l.socket.on("error",VD),Bt.open.hasSubscribers&&Bt.open.publish({address:l.socket.address(),protocol:u,extensions:c}),a(l)}})}function TD(e){this.ws[F9].write(e)||this.pause()}function MD(){let{ws:e}=this,A=e[N9]&&e[RD],t=1005,a="",r=e[F9].closingInfo;r?(t=r.code??1005,a=r.reason):e[N9]||(t=1006),e[b9]=S9.CLOSED,vD("close",e,ND,{wasClean:A,code:t,reason:a}),Bt.close.hasSubscribers&&Bt.close.publish({websocket:e,code:t,reason:a})}function VD(e){let{ws:A}=this;A[b9]=S9.CLOSING,Bt.socketError.hasSubscribers&&Bt.socketError.publish(e),this.destroy()}k9.exports={establishWebSocketConnection:UD}});var zp=E((yb,U9)=>{"use strict";var{randomBytes:YD}=require("crypto"),{maxUnsigned16Bit:JD}=ha(),Xp=class{constructor(A){this.frameData=A,this.maskKey=YD(4)}createFrame(A){let t=this.frameData?.byteLength??0,a=t,r=6;t>JD?(r+=8,a=127):t>125&&(r+=2,a=126);let i=Buffer.allocUnsafe(t+r);i[0]=i[1]=0,i[0]|=128,i[0]=(i[0]&240)+A;i[r-4]=this.maskKey[0],i[r-3]=this.maskKey[1],i[r-2]=this.maskKey[2],i[r-1]=this.maskKey[3],i[1]=a,a===126?i.writeUInt16BE(t,2):a===127&&(i[2]=i[3]=0,i.writeUIntBE(t,4,6)),i[1]|=128;for(let s=0;s<t;s++)i[r+s]=this.frameData[s]^this.maskKey[s%4];return i}};U9.exports={WebsocketFrameSend:Xp}});var _9=E((Db,x9)=>{"use strict";var{Writable:GD}=require("stream"),G9=require("diagnostics_channel"),{parserStates:NA,opcodes:SA,states:xD,emptyBuffer:_D}=ha(),{kReadyState:qD,kSentClose:T9,kResponse:M9,kReceivedClose:V9}=vr(),{isValidStatusCode:Y9,failWebsocketConnection:Nr,websocketMessageReceived:HD}=Hs(),{WebsocketFrameSend:J9}=zp(),Ia={};Ia.ping=G9.channel("undici:websocket:ping");Ia.pong=G9.channel("undici:websocket:pong");var Kp=class extends GD{#e=[];#a=0;#A=NA.INFO;#t={};#r=[];constructor(A){super(),this.ws=A}_write(A,t,a){this.#e.push(A),this.#a+=A.length,this.run(a)}run(A){for(;;){if(this.#A===NA.INFO){if(this.#a<2)return A();let t=this.consume(2);if(this.#t.fin=(t[0]&128)!==0,this.#t.opcode=t[0]&15,this.#t.originalOpcode??=this.#t.opcode,this.#t.fragmented=!this.#t.fin&&this.#t.opcode!==SA.CONTINUATION,this.#t.fragmented&&this.#t.opcode!==SA.BINARY&&this.#t.opcode!==SA.TEXT){Nr(this.ws,"Invalid frame type was fragmented.");return}let a=t[1]&127;if(a<=125?(this.#t.payloadLength=a,this.#A=NA.READ_DATA):a===126?this.#A=NA.PAYLOADLENGTH_16:a===127&&(this.#A=NA.PAYLOADLENGTH_64),this.#t.fragmented&&a>125){Nr(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#t.opcode===SA.PING||this.#t.opcode===SA.PONG||this.#t.opcode===SA.CLOSE)&&a>125){Nr(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#t.opcode===SA.CLOSE){if(a===1){Nr(this.ws,"Received close frame with a 1-byte body.");return}let r=this.consume(a);if(this.#t.closeInfo=this.parseCloseBody(!1,r),!this.ws[T9]){let i=Buffer.allocUnsafe(2);i.writeUInt16BE(this.#t.closeInfo.code,0);let s=new J9(i);this.ws[M9].socket.write(s.createFrame(SA.CLOSE),n=>{n||(this.ws[T9]=!0)})}this.ws[qD]=xD.CLOSING,this.ws[V9]=!0,this.end();return}else if(this.#t.opcode===SA.PING){let r=this.consume(a);if(!this.ws[V9]){let i=new J9(r);this.ws[M9].socket.write(i.createFrame(SA.PONG)),Ia.ping.hasSubscribers&&Ia.ping.publish({payload:r})}if(this.#A=NA.INFO,this.#a>0)continue;A();return}else if(this.#t.opcode===SA.PONG){let r=this.consume(a);if(Ia.pong.hasSubscribers&&Ia.pong.publish({payload:r}),this.#a>0)continue;A();return}}else if(this.#A===NA.PAYLOADLENGTH_16){if(this.#a<2)return A();let t=this.consume(2);this.#t.payloadLength=t.readUInt16BE(0),this.#A=NA.READ_DATA}else if(this.#A===NA.PAYLOADLENGTH_64){if(this.#a<8)return A();let t=this.consume(8),a=t.readUInt32BE(0);if(a>2**31-1){Nr(this.ws,"Received payload length > 2^31 bytes.");return}let r=t.readUInt32BE(4);this.#t.payloadLength=(a<<8)+r,this.#A=NA.READ_DATA}else if(this.#A===NA.READ_DATA){if(this.#a<this.#t.payloadLength)return A();if(this.#a>=this.#t.payloadLength){let t=this.consume(this.#t.payloadLength);if(this.#r.push(t),!this.#t.fragmented||this.#t.fin&&this.#t.opcode===SA.CONTINUATION){let a=Buffer.concat(this.#r);HD(this.ws,this.#t.originalOpcode,a),this.#t={},this.#r.length=0}this.#A=NA.INFO}}if(!(this.#a>0)){A();break}}}consume(A){if(A>this.#a)return null;if(A===0)return _D;if(this.#e[0].length===A)return this.#a-=this.#e[0].length,this.#e.shift();let t=Buffer.allocUnsafe(A),a=0;for(;a!==A;){let r=this.#e[0],{length:i}=r;if(i+a===A){t.set(this.#e.shift(),a);break}else if(i+a>A){t.set(r.subarray(0,A-a),a),this.#e[0]=r.subarray(A-a);break}else t.set(this.#e.shift(),a),a+=r.length}return this.#a-=A,t}parseCloseBody(A,t){let a;if(t.length>=2&&(a=t.readUInt16BE(0)),A)return Y9(a)?{code:a}:null;let r=t.subarray(2);if(r[0]===239&&r[1]===187&&r[2]===191&&(r=r.subarray(3)),a!==void 0&&!Y9(a))return null;try{r=new TextDecoder("utf-8",{fatal:!0}).decode(r)}catch{return null}return{code:a,reason:r}}get closingInfo(){return this.#t.closeInfo}};x9.exports={ByteParser:Kp}});var X9=E((Rb,j9)=>{"use strict";var{webidl:F}=Ge(),{DOMException:_t}=Lt(),{URLSerializer:OD}=TA(),{staticPropertyDescriptors:qt,states:fa,opcodes:Sr,emptyBuffer:PD}=ha(),{kWebSocketURL:q9,kReadyState:ht,kController:WD,kBinaryType:Os,kResponse:Ps,kSentClose:ZD,kByteParser:jD}=vr(),{isEstablished:H9,isClosing:O9,isValidSubprotocol:XD,failWebsocketConnection:zD,fireEvent:KD}=Hs(),{establishWebSocketConnection:$D}=L9(),{WebsocketFrameSend:br}=zp(),{ByteParser:eR}=_9(),{kEnumerableProperty:bA,isBlobLike:W9}=q(),{getGlobalDispatcher:AR}=pa(),{types:Z9}=require("util"),P9=!1,uA=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#a=0;#A="";#t="";constructor(A,t=[]){super(),F.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"}),P9||(P9=!0,process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"}));let a=F.converters["DOMString or sequence<DOMString> or WebSocketInit"](t);A=F.converters.USVString(A),t=a.protocols;let r;try{r=new URL(A)}catch(i){throw new _t(i,"SyntaxError")}if(r.protocol!=="ws:"&&r.protocol!=="wss:")throw new _t(`Expected a ws: or wss: protocol, got ${r.protocol}`,"SyntaxError");if(r.hash)throw new _t("Got fragment","SyntaxError");if(typeof t=="string"&&(t=[t]),t.length!==new Set(t.map(i=>i.toLowerCase())).size)throw new _t("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(t.length>0&&!t.every(i=>XD(i)))throw new _t("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[q9]=r,this[WD]=$D(r,t,this,i=>this.#r(i),a),this[ht]=e.CONNECTING,this[Os]="blob"}close(A=void 0,t=void 0){if(F.brandCheck(this,e),A!==void 0&&(A=F.converters["unsigned short"](A,{clamp:!0})),t!==void 0&&(t=F.converters.USVString(t)),A!==void 0&&A!==1e3&&(A<3e3||A>4999))throw new _t("invalid code","InvalidAccessError");let a=0;if(t!==void 0&&(a=Buffer.byteLength(t),a>123))throw new _t(`Reason must be less than 123 bytes; received ${a}`,"SyntaxError");if(!(this[ht]===e.CLOSING||this[ht]===e.CLOSED))if(!H9(this))zD(this,"Connection was closed before it was established."),this[ht]=e.CLOSING;else if(O9(this))this[ht]=e.CLOSING;else{let r=new br;A!==void 0&&t===void 0?(r.frameData=Buffer.allocUnsafe(2),r.frameData.writeUInt16BE(A,0)):A!==void 0&&t!==void 0?(r.frameData=Buffer.allocUnsafe(2+a),r.frameData.writeUInt16BE(A,0),r.frameData.write(t,2,"utf-8")):r.frameData=PD,this[Ps].socket.write(r.createFrame(Sr.CLOSE),s=>{s||(this[ZD]=!0)}),this[ht]=fa.CLOSING}}send(A){if(F.brandCheck(this,e),F.argumentLengthCheck(arguments,1,{header:"WebSocket.send"}),A=F.converters.WebSocketSendData(A),this[ht]===e.CONNECTING)throw new _t("Sent before connected.","InvalidStateError");if(!H9(this)||O9(this))return;let t=this[Ps].socket;if(typeof A=="string"){let a=Buffer.from(A),i=new br(a).createFrame(Sr.TEXT);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(Z9.isArrayBuffer(A)){let a=Buffer.from(A),i=new br(a).createFrame(Sr.BINARY);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(ArrayBuffer.isView(A)){let a=Buffer.from(A,A.byteOffset,A.byteLength),i=new br(a).createFrame(Sr.BINARY);this.#a+=a.byteLength,t.write(i,()=>{this.#a-=a.byteLength})}else if(W9(A)){let a=new br;A.arrayBuffer().then(r=>{let i=Buffer.from(r);a.frameData=i;let s=a.createFrame(Sr.BINARY);this.#a+=i.byteLength,t.write(s,()=>{this.#a-=i.byteLength})})}}get readyState(){return F.brandCheck(this,e),this[ht]}get bufferedAmount(){return F.brandCheck(this,e),this.#a}get url(){return F.brandCheck(this,e),OD(this[q9])}get extensions(){return F.brandCheck(this,e),this.#t}get protocol(){return F.brandCheck(this,e),this.#A}get onopen(){return F.brandCheck(this,e),this.#e.open}set onopen(A){F.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof A=="function"?(this.#e.open=A,this.addEventListener("open",A)):this.#e.open=null}get onerror(){return F.brandCheck(this,e),this.#e.error}set onerror(A){F.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof A=="function"?(this.#e.error=A,this.addEventListener("error",A)):this.#e.error=null}get onclose(){return F.brandCheck(this,e),this.#e.close}set onclose(A){F.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof A=="function"?(this.#e.close=A,this.addEventListener("close",A)):this.#e.close=null}get onmessage(){return F.brandCheck(this,e),this.#e.message}set onmessage(A){F.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof A=="function"?(this.#e.message=A,this.addEventListener("message",A)):this.#e.message=null}get binaryType(){return F.brandCheck(this,e),this[Os]}set binaryType(A){F.brandCheck(this,e),A!=="blob"&&A!=="arraybuffer"?this[Os]="blob":this[Os]=A}#r(A){this[Ps]=A;let t=new eR(this);t.on("drain",function(){this.ws[Ps].socket.resume()}),A.socket.ws=this,this[jD]=t,this[ht]=fa.OPEN;let a=A.headersList.get("sec-websocket-extensions");a!==null&&(this.#t=a);let r=A.headersList.get("sec-websocket-protocol");r!==null&&(this.#A=r),KD("open",this)}};uA.CONNECTING=uA.prototype.CONNECTING=fa.CONNECTING;uA.OPEN=uA.prototype.OPEN=fa.OPEN;uA.CLOSING=uA.prototype.CLOSING=fa.CLOSING;uA.CLOSED=uA.prototype.CLOSED=fa.CLOSED;Object.defineProperties(uA.prototype,{CONNECTING:qt,OPEN:qt,CLOSING:qt,CLOSED:qt,url:bA,readyState:bA,bufferedAmount:bA,onopen:bA,onerror:bA,onclose:bA,close:bA,onmessage:bA,binaryType:bA,send:bA,extensions:bA,protocol:bA,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(uA,{CONNECTING:qt,OPEN:qt,CLOSING:qt,CLOSED:qt});F.converters["sequence<DOMString>"]=F.sequenceConverter(F.converters.DOMString);F.converters["DOMString or sequence<DOMString>"]=function(e){return F.util.Type(e)==="Object"&&Symbol.iterator in e?F.converters["sequence<DOMString>"](e):F.converters.DOMString(e)};F.converters.WebSocketInit=F.dictionaryConverter([{key:"protocols",converter:F.converters["DOMString or sequence<DOMString>"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return AR()}},{key:"headers",converter:F.nullableConverter(F.converters.HeadersInit)}]);F.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(e){return F.util.Type(e)==="Object"&&!(Symbol.iterator in e)?F.converters.WebSocketInit(e):{protocols:F.converters["DOMString or sequence<DOMString>"](e)}};F.converters.WebSocketSendData=function(e){if(F.util.Type(e)==="Object"){if(W9(e))return F.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||Z9.isAnyArrayBuffer(e))return F.converters.BufferSource(e)}return F.converters.USVString(e)};j9.exports={WebSocket:uA}});var e0=E((vb,V)=>{"use strict";var tR=pr(),z9=Ui(),K9=ee(),aR=ea(),rR=m6(),iR=ur(),C1=q(),{InvalidArgumentError:Ws}=K9,wa=oc(),sR=ar(),nR=op(),oR=Oc(),dR=lp(),pR=Xd(),lR=zc(),{getGlobalDispatcher:$9,setGlobalDispatcher:gR}=pa(),cR=au(),uR=nd(),ER=Yi(),$p;try{require("crypto"),$p=!0}catch{$p=!1}Object.assign(z9.prototype,wa);V.exports.Dispatcher=z9;V.exports.Client=tR;V.exports.Pool=aR;V.exports.BalancedPool=rR;V.exports.Agent=iR;V.exports.ProxyAgent=lR;V.exports.DecoratorHandler=cR;V.exports.RedirectHandler=uR;V.exports.createRedirectInterceptor=ER;V.exports.buildConnector=sR;V.exports.errors=K9;function Fr(e){return(A,t,a)=>{if(typeof t=="function"&&(a=t,t=null),!A||typeof A!="string"&&typeof A!="object"&&!(A instanceof URL))throw new Ws("invalid url");if(t!=null&&typeof t!="object")throw new Ws("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new Ws("invalid opts.path");let s=t.path;t.path.startsWith("/")||(s=`/${s}`),A=new URL(C1.parseOrigin(A).origin+s)}else t||(t=typeof A=="object"?A:{}),A=C1.parseURL(A);let{agent:r,dispatcher:i=$9()}=t;if(r)throw new Ws("unsupported opts.agent. Did you mean opts.client?");return e.call(i,{...t,origin:A.origin,path:A.search?`${A.pathname}${A.search}`:A.pathname,method:t.method||(t.body?"PUT":"GET")},a)}}V.exports.setGlobalDispatcher=gR;V.exports.getGlobalDispatcher=$9;if(C1.nodeMajor>16||C1.nodeMajor===16&&C1.nodeMinor>=8){let e=null;V.exports.fetch=async function(s){e||(e=Rs().fetch);try{return await e(...arguments)}catch(n){throw Error.captureStackTrace(n,this),n}},V.exports.Headers=c1().Headers,V.exports.Response=Qs().Response,V.exports.Request=fr().Request,V.exports.FormData=ki().FormData,V.exports.File=bi().File,V.exports.FileReader=Ku().FileReader;let{setGlobalOrigin:A,getGlobalOrigin:t}=Xa();V.exports.setGlobalOrigin=A,V.exports.getGlobalOrigin=t;let{CacheStorage:a}=p9(),{kConstruct:r}=bs();V.exports.caches=new a(r)}if(C1.nodeMajor>=16){let{deleteCookie:e,getCookies:A,getSetCookies:t,setCookie:a}=I9();V.exports.deleteCookie=e,V.exports.getCookies=A,V.exports.getSetCookies=t,V.exports.setCookie=a;let{parseMIMEType:r,serializeAMimeType:i}=TA();V.exports.parseMIMEType=r,V.exports.serializeAMimeType=i}if(C1.nodeMajor>=18&&$p){let{WebSocket:e}=X9();V.exports.WebSocket=e}V.exports.request=Fr(wa.request);V.exports.stream=Fr(wa.stream);V.exports.pipeline=Fr(wa.pipeline);V.exports.connect=Fr(wa.connect);V.exports.upgrade=Fr(wa.upgrade);V.exports.MockClient=nR;V.exports.MockPool=dR;V.exports.MockAgent=oR;V.exports.mockErrors=pR});var i0=E(r0=>{"use strict";Object.defineProperty(r0,"__esModule",{value:!0});var CR=function(e,A,t,a){if(typeof e!="string"||e.length===0)throw new TypeError("text should be a string");if(typeof A!="string"||A.length===0)throw new TypeError("lang should be a string");if(typeof t!="boolean")throw new TypeError("slow should be a boolean");if(typeof a!="string"||a.length===0)throw new TypeError("host should be a string")};r0.default=CR});var n0=E(s0=>{"use strict";Object.defineProperty(s0,"__esModule",{value:!0});var BR="\\s\\uFEFF\\xA0",hR="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",IR=function(e,A){for(var t=A===void 0?{}:A,a=t.maxLength,r=a===void 0?200:a,i=t.splitPunct,s=i===void 0?"":i,n=function(u,Q){var C=new RegExp("["+BR+hR+s+"]");return C.test(u.charAt(Q))},o=function(u,Q,C){for(var m=C;m>=Q;m--)if(n(u,m))return m;return-1},d=[],l=function(u,Q,C){d.push(u.slice(Q,C+1))},p=0;;){if(e.length-p<=r){l(e,p,e.length-1);break}var g=p+r-1;if(n(e,g)||n(e,g+1)){l(e,p,g),p=g+1;continue}if(g=o(e,p,g),g===-1){var c=e.slice(p,p+r);throw new Error("The word is too long to split into a short text:"+(` `+c+" ...")+` -Try the option "splitPunct" to split the text by punctuation.`)}l(e,p,g),p=g+1}return d};E0.default=qv});var C9=E(Dt=>{"use strict";var C0=Dt&&Dt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Dt,"__esModule",{value:!0});Dt.getAllAudioUrls=Dt.getAudioUrl=void 0;var Q9=C0(u0()),Hv=C0(Q0()),Ov=C0(require("url")),Pv=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n;if(Q9.default(e,r,s,o),e.length>200)throw new RangeError("text length ("+e.length+') should be less than 200 characters. Try "getAllAudioUrls(text, [option])" for long text.');return o+"/translate_tts"+Ov.default.format({query:{ie:"UTF-8",q:e,tl:r,total:1,idx:0,textlen:e.length,client:"tw-ob",prev:"input",ttsspeed:s?.24:1}})};Dt.getAudioUrl=Pv;var Wv=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n,d=t.splitPunct,l=d===void 0?"":d;if(Q9.default(e,r,s,o),typeof l!="string")throw new TypeError("splitPunct should be a string");return Hv.default(e,{splitPunct:l}).map(function(p){return{shortText:p,url:Dt.getAudioUrl(p,{lang:r,slow:s,host:o})}})};Dt.getAllAudioUrls=Wv});var m0=E((wF,m9)=>{"use strict";m9.exports=function(A,t){return function(){for(var r=new Array(arguments.length),i=0;i<r.length;i++)r[i]=arguments[i];return A.apply(t,r)}}});var We=E((yF,I9)=>{"use strict";var jv=m0(),w1=Object.prototype.toString;function I0(e){return w1.call(e)==="[object Array]"}function B0(e){return typeof e>"u"}function Zv(e){return e!==null&&!B0(e)&&e.constructor!==null&&!B0(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function Xv(e){return w1.call(e)==="[object ArrayBuffer]"}function zv(e){return typeof FormData<"u"&&e instanceof FormData}function Kv(e){var A;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?A=ArrayBuffer.isView(e):A=e&&e.buffer&&e.buffer instanceof ArrayBuffer,A}function $v(e){return typeof e=="string"}function eR(e){return typeof e=="number"}function B9(e){return e!==null&&typeof e=="object"}function an(e){if(w1.call(e)!=="[object Object]")return!1;var A=Object.getPrototypeOf(e);return A===null||A===Object.prototype}function AR(e){return w1.call(e)==="[object Date]"}function tR(e){return w1.call(e)==="[object File]"}function aR(e){return w1.call(e)==="[object Blob]"}function h9(e){return w1.call(e)==="[object Function]"}function rR(e){return B9(e)&&h9(e.pipe)}function iR(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function sR(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function nR(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function f0(e,A){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),I0(e))for(var t=0,a=e.length;t<a;t++)A.call(null,e[t],t,e);else for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&A.call(null,e[r],r,e)}function h0(){var e={};function A(r,i){an(e[i])&&an(r)?e[i]=h0(e[i],r):an(r)?e[i]=h0({},r):I0(r)?e[i]=r.slice():e[i]=r}for(var t=0,a=arguments.length;t<a;t++)f0(arguments[t],A);return e}function oR(e,A,t){return f0(A,function(r,i){t&&typeof r=="function"?e[i]=jv(r,t):e[i]=r}),e}function dR(e){return e.charCodeAt(0)===65279&&(e=e.slice(1)),e}I9.exports={isArray:I0,isArrayBuffer:Xv,isBuffer:Zv,isFormData:zv,isArrayBufferView:Kv,isString:$v,isNumber:eR,isObject:B9,isPlainObject:an,isUndefined:B0,isDate:AR,isFile:tR,isBlob:aR,isFunction:h9,isStream:rR,isURLSearchParams:iR,isStandardBrowserEnv:nR,forEach:f0,merge:h0,extend:oR,trim:sR,stripBOM:dR}});var rn=E((DF,w9)=>{"use strict";var Na=We();function f9(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}w9.exports=function(A,t,a){if(!t)return A;var r;if(a)r=a(t);else if(Na.isURLSearchParams(t))r=t.toString();else{var i=[];Na.forEach(t,function(o,d){o===null||typeof o>"u"||(Na.isArray(o)?d=d+"[]":o=[o],Na.forEach(o,function(p){Na.isDate(p)?p=p.toISOString():Na.isObject(p)&&(p=JSON.stringify(p)),i.push(f9(d)+"="+f9(p))}))}),r=i.join("&")}if(r){var s=A.indexOf("#");s!==-1&&(A=A.slice(0,s)),A+=(A.indexOf("?")===-1?"?":"&")+r}return A}});var D9=E((vF,y9)=>{"use strict";var pR=We();function sn(){this.handlers=[]}sn.prototype.use=function(A,t,a){return this.handlers.push({fulfilled:A,rejected:t,synchronous:a?a.synchronous:!1,runWhen:a?a.runWhen:null}),this.handlers.length-1};sn.prototype.eject=function(A){this.handlers[A]&&(this.handlers[A]=null)};sn.prototype.forEach=function(A){pR.forEach(this.handlers,function(a){a!==null&&A(a)})};y9.exports=sn});var R9=E((RF,v9)=>{"use strict";var lR=We();v9.exports=function(A,t){lR.forEach(A,function(r,i){i!==t&&i.toUpperCase()===t.toUpperCase()&&(A[t]=r,delete A[i])})}});var nn=E((NF,N9)=>{"use strict";N9.exports=function(A,t,a,r,i){return A.config=t,a&&(A.code=a),A.request=r,A.response=i,A.isAxiosError=!0,A.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},A}});var on=E((bF,b9)=>{"use strict";var gR=nn();b9.exports=function(A,t,a,r,i){var s=new Error(A);return gR(s,t,a,r,i)}});var w0=E((SF,S9)=>{"use strict";var cR=on();S9.exports=function(A,t,a){var r=a.config.validateStatus;!a.status||!r||r(a.status)?A(a):t(cR("Request failed with status code "+a.status,a.config,null,a.request,a))}});var k9=E((FF,F9)=>{"use strict";var dn=We();F9.exports=dn.isStandardBrowserEnv()?function(){return{write:function(t,a,r,i,s,n){var o=[];o.push(t+"="+encodeURIComponent(a)),dn.isNumber(r)&&o.push("expires="+new Date(r).toGMTString()),dn.isString(i)&&o.push("path="+i),dn.isString(s)&&o.push("domain="+s),n===!0&&o.push("secure"),document.cookie=o.join("; ")},read:function(t){var a=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return a?decodeURIComponent(a[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var U9=E((kF,L9)=>{"use strict";L9.exports=function(A){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(A)}});var M9=E((LF,T9)=>{"use strict";T9.exports=function(A,t){return t?A.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):A}});var y0=E((UF,V9)=>{"use strict";var uR=U9(),ER=M9();V9.exports=function(A,t){return A&&!uR(t)?ER(A,t):t}});var J9=E((TF,Y9)=>{"use strict";var D0=We(),QR=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];Y9.exports=function(A){var t={},a,r,i;return A&&D0.forEach(A.split(` -`),function(n){if(i=n.indexOf(":"),a=D0.trim(n.substr(0,i)).toLowerCase(),r=D0.trim(n.substr(i+1)),a){if(t[a]&&QR.indexOf(a)>=0)return;a==="set-cookie"?t[a]=(t[a]?t[a]:[]).concat([r]):t[a]=t[a]?t[a]+", "+r:r}}),t}});var _9=E((MF,x9)=>{"use strict";var G9=We();x9.exports=G9.isStandardBrowserEnv()?function(){var A=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a"),a;function r(i){var s=i;return A&&(t.setAttribute("href",s),s=t.href),t.setAttribute("href",s),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}return a=r(window.location.href),function(s){var n=G9.isString(s)?r(s):s;return n.protocol===a.protocol&&n.host===a.host}}():function(){return function(){return!0}}()});var H9=E((VF,q9)=>{"use strict";var pn=We(),CR=w0(),mR=k9(),BR=rn(),hR=y0(),IR=J9(),fR=_9(),v0=on();q9.exports=function(A){return new Promise(function(a,r){var i=A.data,s=A.headers,n=A.responseType;pn.isFormData(i)&&delete s["Content-Type"];var o=new XMLHttpRequest;if(A.auth){var d=A.auth.username||"",l=A.auth.password?unescape(encodeURIComponent(A.auth.password)):"";s.Authorization="Basic "+btoa(d+":"+l)}var p=hR(A.baseURL,A.url);o.open(A.method.toUpperCase(),BR(p,A.params,A.paramsSerializer),!0),o.timeout=A.timeout;function g(){if(o){var u="getAllResponseHeaders"in o?IR(o.getAllResponseHeaders()):null,Q=!n||n==="text"||n==="json"?o.responseText:o.response,m={data:Q,status:o.status,statusText:o.statusText,headers:u,config:A,request:o};CR(a,r,m),o=null}}if("onloadend"in o?o.onloadend=g:o.onreadystatechange=function(){!o||o.readyState!==4||o.status===0&&!(o.responseURL&&o.responseURL.indexOf("file:")===0)||setTimeout(g)},o.onabort=function(){o&&(r(v0("Request aborted",A,"ECONNABORTED",o)),o=null)},o.onerror=function(){r(v0("Network Error",A,null,o)),o=null},o.ontimeout=function(){var Q="timeout of "+A.timeout+"ms exceeded";A.timeoutErrorMessage&&(Q=A.timeoutErrorMessage),r(v0(Q,A,A.transitional&&A.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",o)),o=null},pn.isStandardBrowserEnv()){var c=(A.withCredentials||fR(p))&&A.xsrfCookieName?mR.read(A.xsrfCookieName):void 0;c&&(s[A.xsrfHeaderName]=c)}"setRequestHeader"in o&&pn.forEach(s,function(Q,m){typeof i>"u"&&m.toLowerCase()==="content-type"?delete s[m]:o.setRequestHeader(m,Q)}),pn.isUndefined(A.withCredentials)||(o.withCredentials=!!A.withCredentials),n&&n!=="json"&&(o.responseType=A.responseType),typeof A.onDownloadProgress=="function"&&o.addEventListener("progress",A.onDownloadProgress),typeof A.onUploadProgress=="function"&&o.upload&&o.upload.addEventListener("progress",A.onUploadProgress),A.cancelToken&&A.cancelToken.promise.then(function(Q){o&&(o.abort(),r(Q),o=null)}),i||(i=null),o.send(i)})}});var P9=E((YF,O9)=>{var ba=1e3,Sa=ba*60,Fa=Sa*60,y1=Fa*24,wR=y1*7,yR=y1*365.25;O9.exports=function(e,A){A=A||{};var t=typeof e;if(t==="string"&&e.length>0)return DR(e);if(t==="number"&&isFinite(e))return A.long?RR(e):vR(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function DR(e){if(e=String(e),!(e.length>100)){var A=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(A){var t=parseFloat(A[1]),a=(A[2]||"ms").toLowerCase();switch(a){case"years":case"year":case"yrs":case"yr":case"y":return t*yR;case"weeks":case"week":case"w":return t*wR;case"days":case"day":case"d":return t*y1;case"hours":case"hour":case"hrs":case"hr":case"h":return t*Fa;case"minutes":case"minute":case"mins":case"min":case"m":return t*Sa;case"seconds":case"second":case"secs":case"sec":case"s":return t*ba;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function vR(e){var A=Math.abs(e);return A>=y1?Math.round(e/y1)+"d":A>=Fa?Math.round(e/Fa)+"h":A>=Sa?Math.round(e/Sa)+"m":A>=ba?Math.round(e/ba)+"s":e+"ms"}function RR(e){var A=Math.abs(e);return A>=y1?ln(e,A,y1,"day"):A>=Fa?ln(e,A,Fa,"hour"):A>=Sa?ln(e,A,Sa,"minute"):A>=ba?ln(e,A,ba,"second"):e+" ms"}function ln(e,A,t,a){var r=A>=t*1.5;return Math.round(e/t)+" "+a+(r?"s":"")}});var R0=E((JF,W9)=>{function NR(e){t.debug=t,t.default=t,t.coerce=o,t.disable=i,t.enable=r,t.enabled=s,t.humanize=P9(),t.destroy=d,Object.keys(e).forEach(l=>{t[l]=e[l]}),t.names=[],t.skips=[],t.formatters={};function A(l){let p=0;for(let g=0;g<l.length;g++)p=(p<<5)-p+l.charCodeAt(g),p|=0;return t.colors[Math.abs(p)%t.colors.length]}t.selectColor=A;function t(l){let p,g=null,c,u;function Q(...m){if(!Q.enabled)return;let C=Q,B=Number(new Date),f=B-(p||B);C.diff=f,C.prev=p,C.curr=B,p=B,m[0]=t.coerce(m[0]),typeof m[0]!="string"&&m.unshift("%O");let h=0;m[0]=m[0].replace(/%([a-zA-Z%])/g,(v,S)=>{if(v==="%%")return"%";h++;let x=t.formatters[S];if(typeof x=="function"){let we=m[h];v=x.call(C,we),m.splice(h,1),h--}return v}),t.formatArgs.call(C,m),(C.log||t.log).apply(C,m)}return Q.namespace=l,Q.useColors=t.useColors(),Q.color=t.selectColor(l),Q.extend=a,Q.destroy=t.destroy,Object.defineProperty(Q,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(c!==t.namespaces&&(c=t.namespaces,u=t.enabled(l)),u),set:m=>{g=m}}),typeof t.init=="function"&&t.init(Q),Q}function a(l,p){let g=t(this.namespace+(typeof p>"u"?":":p)+l);return g.log=this.log,g}function r(l){t.save(l),t.namespaces=l,t.names=[],t.skips=[];let p,g=(typeof l=="string"?l:"").split(/[\s,]+/),c=g.length;for(p=0;p<c;p++)g[p]&&(l=g[p].replace(/\*/g,".*?"),l[0]==="-"?t.skips.push(new RegExp("^"+l.slice(1)+"$")):t.names.push(new RegExp("^"+l+"$")))}function i(){let l=[...t.names.map(n),...t.skips.map(n).map(p=>"-"+p)].join(",");return t.enable(""),l}function s(l){if(l[l.length-1]==="*")return!0;let p,g;for(p=0,g=t.skips.length;p<g;p++)if(t.skips[p].test(l))return!1;for(p=0,g=t.names.length;p<g;p++)if(t.names[p].test(l))return!0;return!1}function n(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function o(l){return l instanceof Error?l.stack||l.message:l}function d(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}W9.exports=NR});var j9=E((EA,gn)=>{EA.formatArgs=SR;EA.save=FR;EA.load=kR;EA.useColors=bR;EA.storage=LR();EA.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();EA.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function bR(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function SR(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+gn.exports.humanize(this.diff),!this.useColors)return;let A="color: "+this.color;e.splice(1,0,A,"color: inherit");let t=0,a=0;e[0].replace(/%[a-zA-Z%]/g,r=>{r!=="%%"&&(t++,r==="%c"&&(a=t))}),e.splice(a,0,A)}EA.log=console.debug||console.log||(()=>{});function FR(e){try{e?EA.storage.setItem("debug",e):EA.storage.removeItem("debug")}catch{}}function kR(){let e;try{e=EA.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function LR(){try{return localStorage}catch{}}gn.exports=R0()(EA);var{formatters:UR}=gn.exports;UR.j=function(e){try{return JSON.stringify(e)}catch(A){return"[UnexpectedJSONParseError]: "+A.message}}});var X9=E((GF,Z9)=>{"use strict";Z9.exports=(e,A=process.argv)=>{let t=e.startsWith("-")?"":e.length===1?"-":"--",a=A.indexOf(t+e),r=A.indexOf("--");return a!==-1&&(r===-1||a<r)}});var $9=E((xF,K9)=>{"use strict";var TR=require("os"),z9=require("tty"),kA=X9(),{env:Ne}=process,jt;kA("no-color")||kA("no-colors")||kA("color=false")||kA("color=never")?jt=0:(kA("color")||kA("colors")||kA("color=true")||kA("color=always"))&&(jt=1);"FORCE_COLOR"in Ne&&(Ne.FORCE_COLOR==="true"?jt=1:Ne.FORCE_COLOR==="false"?jt=0:jt=Ne.FORCE_COLOR.length===0?1:Math.min(parseInt(Ne.FORCE_COLOR,10),3));function N0(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function b0(e,A){if(jt===0)return 0;if(kA("color=16m")||kA("color=full")||kA("color=truecolor"))return 3;if(kA("color=256"))return 2;if(e&&!A&&jt===void 0)return 0;let t=jt||0;if(Ne.TERM==="dumb")return t;if(process.platform==="win32"){let a=TR.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in Ne)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(a=>a in Ne)||Ne.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in Ne)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Ne.TEAMCITY_VERSION)?1:0;if(Ne.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Ne){let a=parseInt((Ne.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Ne.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Ne.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Ne.TERM)||"COLORTERM"in Ne?1:t}function MR(e){let A=b0(e,e&&e.isTTY);return N0(A)}K9.exports={supportsColor:MR,stdout:N0(b0(!0,z9.isatty(1))),stderr:N0(b0(!0,z9.isatty(2)))}});var A3=E((Te,un)=>{var VR=require("tty"),cn=require("util");Te.init=HR;Te.log=xR;Te.formatArgs=JR;Te.save=_R;Te.load=qR;Te.useColors=YR;Te.destroy=cn.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Te.colors=[6,2,3,4,5,1];try{let e=$9();e&&(e.stderr||e).level>=2&&(Te.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Te.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,A)=>{let t=A.substring(6).toLowerCase().replace(/_([a-z])/g,(r,i)=>i.toUpperCase()),a=process.env[A];return/^(yes|on|true|enabled)$/i.test(a)?a=!0:/^(no|off|false|disabled)$/i.test(a)?a=!1:a==="null"?a=null:a=Number(a),e[t]=a,e},{});function YR(){return"colors"in Te.inspectOpts?!!Te.inspectOpts.colors:VR.isatty(process.stderr.fd)}function JR(e){let{namespace:A,useColors:t}=this;if(t){let a=this.color,r="\x1B[3"+(a<8?a:"8;5;"+a),i=` ${r};1m${A} \x1B[0m`;e[0]=i+e[0].split(` +Try the option "splitPunct" to split the text by punctuation.`)}l(e,p,g),p=g+1}return d};s0.default=IR});var nE=E(It=>{"use strict";var o0=It&&It.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(It,"__esModule",{value:!0});It.getAllAudioUrls=It.getAudioUrl=void 0;var sE=o0(i0()),fR=o0(n0()),wR=o0(require("url")),yR=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n;if(sE.default(e,r,s,o),e.length>200)throw new RangeError("text length ("+e.length+') should be less than 200 characters. Try "getAllAudioUrls(text, [option])" for long text.');return o+"/translate_tts"+wR.default.format({query:{ie:"UTF-8",q:e,tl:r,total:1,idx:0,textlen:e.length,client:"tw-ob",prev:"input",ttsspeed:s?.24:1}})};It.getAudioUrl=yR;var DR=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n,d=t.splitPunct,l=d===void 0?"":d;if(sE.default(e,r,s,o),typeof l!="string")throw new TypeError("splitPunct should be a string");return fR.default(e,{splitPunct:l}).map(function(p){return{shortText:p,url:It.getAudioUrl(p,{lang:r,slow:s,host:o})}})};It.getAllAudioUrls=DR});var d0=E((Mb,oE)=>{"use strict";oE.exports=function(A,t){return function(){for(var r=new Array(arguments.length),i=0;i<r.length;i++)r[i]=arguments[i];return A.apply(t,r)}}});var We=E((Vb,lE)=>{"use strict";var RR=d0(),B1=Object.prototype.toString;function g0(e){return B1.call(e)==="[object Array]"}function p0(e){return typeof e>"u"}function vR(e){return e!==null&&!p0(e)&&e.constructor!==null&&!p0(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function NR(e){return B1.call(e)==="[object ArrayBuffer]"}function SR(e){return typeof FormData<"u"&&e instanceof FormData}function bR(e){var A;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?A=ArrayBuffer.isView(e):A=e&&e.buffer&&e.buffer instanceof ArrayBuffer,A}function FR(e){return typeof e=="string"}function kR(e){return typeof e=="number"}function dE(e){return e!==null&&typeof e=="object"}function zs(e){if(B1.call(e)!=="[object Object]")return!1;var A=Object.getPrototypeOf(e);return A===null||A===Object.prototype}function LR(e){return B1.call(e)==="[object Date]"}function UR(e){return B1.call(e)==="[object File]"}function TR(e){return B1.call(e)==="[object Blob]"}function pE(e){return B1.call(e)==="[object Function]"}function MR(e){return dE(e)&&pE(e.pipe)}function VR(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function YR(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function JR(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function c0(e,A){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),g0(e))for(var t=0,a=e.length;t<a;t++)A.call(null,e[t],t,e);else for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&A.call(null,e[r],r,e)}function l0(){var e={};function A(r,i){zs(e[i])&&zs(r)?e[i]=l0(e[i],r):zs(r)?e[i]=l0({},r):g0(r)?e[i]=r.slice():e[i]=r}for(var t=0,a=arguments.length;t<a;t++)c0(arguments[t],A);return e}function GR(e,A,t){return c0(A,function(r,i){t&&typeof r=="function"?e[i]=RR(r,t):e[i]=r}),e}function xR(e){return e.charCodeAt(0)===65279&&(e=e.slice(1)),e}lE.exports={isArray:g0,isArrayBuffer:NR,isBuffer:vR,isFormData:SR,isArrayBufferView:bR,isString:FR,isNumber:kR,isObject:dE,isPlainObject:zs,isUndefined:p0,isDate:LR,isFile:UR,isBlob:TR,isFunction:pE,isStream:MR,isURLSearchParams:VR,isStandardBrowserEnv:JR,forEach:c0,merge:l0,extend:GR,trim:YR,stripBOM:xR}});var Ks=E((Yb,cE)=>{"use strict";var ya=We();function gE(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}cE.exports=function(A,t,a){if(!t)return A;var r;if(a)r=a(t);else if(ya.isURLSearchParams(t))r=t.toString();else{var i=[];ya.forEach(t,function(o,d){o===null||typeof o>"u"||(ya.isArray(o)?d=d+"[]":o=[o],ya.forEach(o,function(p){ya.isDate(p)?p=p.toISOString():ya.isObject(p)&&(p=JSON.stringify(p)),i.push(gE(d)+"="+gE(p))}))}),r=i.join("&")}if(r){var s=A.indexOf("#");s!==-1&&(A=A.slice(0,s)),A+=(A.indexOf("?")===-1?"?":"&")+r}return A}});var EE=E((Jb,uE)=>{"use strict";var _R=We();function $s(){this.handlers=[]}$s.prototype.use=function(A,t,a){return this.handlers.push({fulfilled:A,rejected:t,synchronous:a?a.synchronous:!1,runWhen:a?a.runWhen:null}),this.handlers.length-1};$s.prototype.eject=function(A){this.handlers[A]&&(this.handlers[A]=null)};$s.prototype.forEach=function(A){_R.forEach(this.handlers,function(a){a!==null&&A(a)})};uE.exports=$s});var mE=E((Gb,QE)=>{"use strict";var qR=We();QE.exports=function(A,t){qR.forEach(A,function(r,i){i!==t&&i.toUpperCase()===t.toUpperCase()&&(A[t]=r,delete A[i])})}});var en=E((xb,CE)=>{"use strict";CE.exports=function(A,t,a,r,i){return A.config=t,a&&(A.code=a),A.request=r,A.response=i,A.isAxiosError=!0,A.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},A}});var An=E((qb,BE)=>{"use strict";var HR=en();BE.exports=function(A,t,a,r,i){var s=new Error(A);return HR(s,t,a,r,i)}});var u0=E((Hb,hE)=>{"use strict";var OR=An();hE.exports=function(A,t,a){var r=a.config.validateStatus;!a.status||!r||r(a.status)?A(a):t(OR("Request failed with status code "+a.status,a.config,null,a.request,a))}});var fE=E((Ob,IE)=>{"use strict";var tn=We();IE.exports=tn.isStandardBrowserEnv()?function(){return{write:function(t,a,r,i,s,n){var o=[];o.push(t+"="+encodeURIComponent(a)),tn.isNumber(r)&&o.push("expires="+new Date(r).toGMTString()),tn.isString(i)&&o.push("path="+i),tn.isString(s)&&o.push("domain="+s),n===!0&&o.push("secure"),document.cookie=o.join("; ")},read:function(t){var a=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return a?decodeURIComponent(a[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var yE=E((Pb,wE)=>{"use strict";wE.exports=function(A){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(A)}});var RE=E((Wb,DE)=>{"use strict";DE.exports=function(A,t){return t?A.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):A}});var E0=E((Zb,vE)=>{"use strict";var PR=yE(),WR=RE();vE.exports=function(A,t){return A&&!PR(t)?WR(A,t):t}});var SE=E((jb,NE)=>{"use strict";var Q0=We(),ZR=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];NE.exports=function(A){var t={},a,r,i;return A&&Q0.forEach(A.split(` +`),function(n){if(i=n.indexOf(":"),a=Q0.trim(n.substr(0,i)).toLowerCase(),r=Q0.trim(n.substr(i+1)),a){if(t[a]&&ZR.indexOf(a)>=0)return;a==="set-cookie"?t[a]=(t[a]?t[a]:[]).concat([r]):t[a]=t[a]?t[a]+", "+r:r}}),t}});var kE=E((Xb,FE)=>{"use strict";var bE=We();FE.exports=bE.isStandardBrowserEnv()?function(){var A=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a"),a;function r(i){var s=i;return A&&(t.setAttribute("href",s),s=t.href),t.setAttribute("href",s),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}return a=r(window.location.href),function(s){var n=bE.isString(s)?r(s):s;return n.protocol===a.protocol&&n.host===a.host}}():function(){return function(){return!0}}()});var UE=E((zb,LE)=>{"use strict";var an=We(),jR=u0(),XR=fE(),zR=Ks(),KR=E0(),$R=SE(),ev=kE(),m0=An();LE.exports=function(A){return new Promise(function(a,r){var i=A.data,s=A.headers,n=A.responseType;an.isFormData(i)&&delete s["Content-Type"];var o=new XMLHttpRequest;if(A.auth){var d=A.auth.username||"",l=A.auth.password?unescape(encodeURIComponent(A.auth.password)):"";s.Authorization="Basic "+btoa(d+":"+l)}var p=KR(A.baseURL,A.url);o.open(A.method.toUpperCase(),zR(p,A.params,A.paramsSerializer),!0),o.timeout=A.timeout;function g(){if(o){var u="getAllResponseHeaders"in o?$R(o.getAllResponseHeaders()):null,Q=!n||n==="text"||n==="json"?o.responseText:o.response,C={data:Q,status:o.status,statusText:o.statusText,headers:u,config:A,request:o};jR(a,r,C),o=null}}if("onloadend"in o?o.onloadend=g:o.onreadystatechange=function(){!o||o.readyState!==4||o.status===0&&!(o.responseURL&&o.responseURL.indexOf("file:")===0)||setTimeout(g)},o.onabort=function(){o&&(r(m0("Request aborted",A,"ECONNABORTED",o)),o=null)},o.onerror=function(){r(m0("Network Error",A,null,o)),o=null},o.ontimeout=function(){var Q="timeout of "+A.timeout+"ms exceeded";A.timeoutErrorMessage&&(Q=A.timeoutErrorMessage),r(m0(Q,A,A.transitional&&A.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",o)),o=null},an.isStandardBrowserEnv()){var c=(A.withCredentials||ev(p))&&A.xsrfCookieName?XR.read(A.xsrfCookieName):void 0;c&&(s[A.xsrfHeaderName]=c)}"setRequestHeader"in o&&an.forEach(s,function(Q,C){typeof i>"u"&&C.toLowerCase()==="content-type"?delete s[C]:o.setRequestHeader(C,Q)}),an.isUndefined(A.withCredentials)||(o.withCredentials=!!A.withCredentials),n&&n!=="json"&&(o.responseType=A.responseType),typeof A.onDownloadProgress=="function"&&o.addEventListener("progress",A.onDownloadProgress),typeof A.onUploadProgress=="function"&&o.upload&&o.upload.addEventListener("progress",A.onUploadProgress),A.cancelToken&&A.cancelToken.promise.then(function(Q){o&&(o.abort(),r(Q),o=null)}),i||(i=null),o.send(i)})}});var ME=E((Kb,TE)=>{var Da=1e3,Ra=Da*60,va=Ra*60,h1=va*24,Av=h1*7,tv=h1*365.25;TE.exports=function(e,A){A=A||{};var t=typeof e;if(t==="string"&&e.length>0)return av(e);if(t==="number"&&isFinite(e))return A.long?iv(e):rv(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function av(e){if(e=String(e),!(e.length>100)){var A=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(A){var t=parseFloat(A[1]),a=(A[2]||"ms").toLowerCase();switch(a){case"years":case"year":case"yrs":case"yr":case"y":return t*tv;case"weeks":case"week":case"w":return t*Av;case"days":case"day":case"d":return t*h1;case"hours":case"hour":case"hrs":case"hr":case"h":return t*va;case"minutes":case"minute":case"mins":case"min":case"m":return t*Ra;case"seconds":case"second":case"secs":case"sec":case"s":return t*Da;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function rv(e){var A=Math.abs(e);return A>=h1?Math.round(e/h1)+"d":A>=va?Math.round(e/va)+"h":A>=Ra?Math.round(e/Ra)+"m":A>=Da?Math.round(e/Da)+"s":e+"ms"}function iv(e){var A=Math.abs(e);return A>=h1?rn(e,A,h1,"day"):A>=va?rn(e,A,va,"hour"):A>=Ra?rn(e,A,Ra,"minute"):A>=Da?rn(e,A,Da,"second"):e+" ms"}function rn(e,A,t,a){var r=A>=t*1.5;return Math.round(e/t)+" "+a+(r?"s":"")}});var C0=E(($b,VE)=>{function sv(e){t.debug=t,t.default=t,t.coerce=o,t.disable=i,t.enable=r,t.enabled=s,t.humanize=ME(),t.destroy=d,Object.keys(e).forEach(l=>{t[l]=e[l]}),t.names=[],t.skips=[],t.formatters={};function A(l){let p=0;for(let g=0;g<l.length;g++)p=(p<<5)-p+l.charCodeAt(g),p|=0;return t.colors[Math.abs(p)%t.colors.length]}t.selectColor=A;function t(l){let p,g=null,c,u;function Q(...C){if(!Q.enabled)return;let m=Q,B=Number(new Date),w=B-(p||B);m.diff=w,m.prev=p,m.curr=B,p=B,C[0]=t.coerce(C[0]),typeof C[0]!="string"&&C.unshift("%O");let I=0;C[0]=C[0].replace(/%([a-zA-Z%])/g,(S,k)=>{if(S==="%%")return"%";I++;let x=t.formatters[k];if(typeof x=="function"){let we=C[I];S=x.call(m,we),C.splice(I,1),I--}return S}),t.formatArgs.call(m,C),(m.log||t.log).apply(m,C)}return Q.namespace=l,Q.useColors=t.useColors(),Q.color=t.selectColor(l),Q.extend=a,Q.destroy=t.destroy,Object.defineProperty(Q,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(c!==t.namespaces&&(c=t.namespaces,u=t.enabled(l)),u),set:C=>{g=C}}),typeof t.init=="function"&&t.init(Q),Q}function a(l,p){let g=t(this.namespace+(typeof p>"u"?":":p)+l);return g.log=this.log,g}function r(l){t.save(l),t.namespaces=l,t.names=[],t.skips=[];let p,g=(typeof l=="string"?l:"").split(/[\s,]+/),c=g.length;for(p=0;p<c;p++)g[p]&&(l=g[p].replace(/\*/g,".*?"),l[0]==="-"?t.skips.push(new RegExp("^"+l.slice(1)+"$")):t.names.push(new RegExp("^"+l+"$")))}function i(){let l=[...t.names.map(n),...t.skips.map(n).map(p=>"-"+p)].join(",");return t.enable(""),l}function s(l){if(l[l.length-1]==="*")return!0;let p,g;for(p=0,g=t.skips.length;p<g;p++)if(t.skips[p].test(l))return!1;for(p=0,g=t.names.length;p<g;p++)if(t.names[p].test(l))return!0;return!1}function n(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function o(l){return l instanceof Error?l.stack||l.message:l}function d(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}VE.exports=sv});var YE=E((EA,sn)=>{EA.formatArgs=ov;EA.save=dv;EA.load=pv;EA.useColors=nv;EA.storage=lv();EA.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();EA.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function nv(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function ov(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+sn.exports.humanize(this.diff),!this.useColors)return;let A="color: "+this.color;e.splice(1,0,A,"color: inherit");let t=0,a=0;e[0].replace(/%[a-zA-Z%]/g,r=>{r!=="%%"&&(t++,r==="%c"&&(a=t))}),e.splice(a,0,A)}EA.log=console.debug||console.log||(()=>{});function dv(e){try{e?EA.storage.setItem("debug",e):EA.storage.removeItem("debug")}catch{}}function pv(){let e;try{e=EA.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function lv(){try{return localStorage}catch{}}sn.exports=C0()(EA);var{formatters:gv}=sn.exports;gv.j=function(e){try{return JSON.stringify(e)}catch(A){return"[UnexpectedJSONParseError]: "+A.message}}});var GE=E((eF,JE)=>{"use strict";JE.exports=(e,A=process.argv)=>{let t=e.startsWith("-")?"":e.length===1?"-":"--",a=A.indexOf(t+e),r=A.indexOf("--");return a!==-1&&(r===-1||a<r)}});var qE=E((AF,_E)=>{"use strict";var cv=require("os"),xE=require("tty"),FA=GE(),{env:Ne}=process,Ht;FA("no-color")||FA("no-colors")||FA("color=false")||FA("color=never")?Ht=0:(FA("color")||FA("colors")||FA("color=true")||FA("color=always"))&&(Ht=1);"FORCE_COLOR"in Ne&&(Ne.FORCE_COLOR==="true"?Ht=1:Ne.FORCE_COLOR==="false"?Ht=0:Ht=Ne.FORCE_COLOR.length===0?1:Math.min(parseInt(Ne.FORCE_COLOR,10),3));function B0(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function h0(e,A){if(Ht===0)return 0;if(FA("color=16m")||FA("color=full")||FA("color=truecolor"))return 3;if(FA("color=256"))return 2;if(e&&!A&&Ht===void 0)return 0;let t=Ht||0;if(Ne.TERM==="dumb")return t;if(process.platform==="win32"){let a=cv.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in Ne)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(a=>a in Ne)||Ne.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in Ne)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Ne.TEAMCITY_VERSION)?1:0;if(Ne.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Ne){let a=parseInt((Ne.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Ne.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Ne.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Ne.TERM)||"COLORTERM"in Ne?1:t}function uv(e){let A=h0(e,e&&e.isTTY);return B0(A)}_E.exports={supportsColor:uv,stdout:B0(h0(!0,xE.isatty(1))),stderr:B0(h0(!0,xE.isatty(2)))}});var OE=E((Te,on)=>{var Ev=require("tty"),nn=require("util");Te.init=fv;Te.log=Bv;Te.formatArgs=mv;Te.save=hv;Te.load=Iv;Te.useColors=Qv;Te.destroy=nn.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Te.colors=[6,2,3,4,5,1];try{let e=qE();e&&(e.stderr||e).level>=2&&(Te.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Te.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,A)=>{let t=A.substring(6).toLowerCase().replace(/_([a-z])/g,(r,i)=>i.toUpperCase()),a=process.env[A];return/^(yes|on|true|enabled)$/i.test(a)?a=!0:/^(no|off|false|disabled)$/i.test(a)?a=!1:a==="null"?a=null:a=Number(a),e[t]=a,e},{});function Qv(){return"colors"in Te.inspectOpts?!!Te.inspectOpts.colors:Ev.isatty(process.stderr.fd)}function mv(e){let{namespace:A,useColors:t}=this;if(t){let a=this.color,r="\x1B[3"+(a<8?a:"8;5;"+a),i=` ${r};1m${A} \x1B[0m`;e[0]=i+e[0].split(` `).join(` -`+i),e.push(r+"m+"+un.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=GR()+A+" "+e[0]}function GR(){return Te.inspectOpts.hideDate?"":new Date().toISOString()+" "}function xR(...e){return process.stderr.write(cn.format(...e)+` -`)}function _R(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function qR(){return process.env.DEBUG}function HR(e){e.inspectOpts={};let A=Object.keys(Te.inspectOpts);for(let t=0;t<A.length;t++)e.inspectOpts[A[t]]=Te.inspectOpts[A[t]]}un.exports=R0()(Te);var{formatters:e3}=un.exports;e3.o=function(e){return this.inspectOpts.colors=this.useColors,cn.inspect(e,this.inspectOpts).split(` -`).map(A=>A.trim()).join(" ")};e3.O=function(e){return this.inspectOpts.colors=this.useColors,cn.inspect(e,this.inspectOpts)}});var En=E((_F,S0)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?S0.exports=j9():S0.exports=A3()});var a3=E((qF,t3)=>{var Jr;t3.exports=function(){if(!Jr){try{Jr=En()("follow-redirects")}catch{}typeof Jr!="function"&&(Jr=function(){})}Jr.apply(null,arguments)}});var q0=E((HF,_0)=>{var _r=require("url"),Gr=_r.URL,OR=require("http"),PR=require("https"),T0=require("stream").Writable,M0=require("assert"),r3=a3(),V0=!1;try{M0(new Gr)}catch(e){V0=e.code==="ERR_INVALID_URL"}var WR=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],Y0=["abort","aborted","connect","error","socket","timeout"],J0=Object.create(null);Y0.forEach(function(e){J0[e]=function(A,t,a){this._redirectable.emit(e,A,t,a)}});var k0=qr("ERR_INVALID_URL","Invalid URL",TypeError),L0=qr("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),jR=qr("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",L0),ZR=qr("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),XR=qr("ERR_STREAM_WRITE_AFTER_END","write after end"),zR=T0.prototype.destroy||s3;function AA(e,A){T0.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],A&&this.on("response",A);var t=this;this._onNativeResponse=function(a){try{t._processResponse(a)}catch(r){t.emit("error",r instanceof L0?r:new L0({cause:r}))}},this._performRequest()}AA.prototype=Object.create(T0.prototype);AA.prototype.abort=function(){x0(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};AA.prototype.destroy=function(e){return x0(this._currentRequest,e),zR.call(this,e),this};AA.prototype.write=function(e,A,t){if(this._ending)throw new XR;if(!D1(e)&&!eN(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(xr(A)&&(t=A,A=null),e.length===0){t&&t();return}this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:A}),this._currentRequest.write(e,A,t)):(this.emit("error",new ZR),this.abort())};AA.prototype.end=function(e,A,t){if(xr(e)?(t=e,e=A=null):xr(A)&&(t=A,A=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,t);else{var a=this,r=this._currentRequest;this.write(e,A,function(){a._ended=!0,r.end(null,null,t)}),this._ending=!0}};AA.prototype.setHeader=function(e,A){this._options.headers[e]=A,this._currentRequest.setHeader(e,A)};AA.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};AA.prototype.setTimeout=function(e,A){var t=this;function a(s){s.setTimeout(e),s.removeListener("timeout",s.destroy),s.addListener("timeout",s.destroy)}function r(s){t._timeout&&clearTimeout(t._timeout),t._timeout=setTimeout(function(){t.emit("timeout"),i()},e),a(s)}function i(){t._timeout&&(clearTimeout(t._timeout),t._timeout=null),t.removeListener("abort",i),t.removeListener("error",i),t.removeListener("response",i),t.removeListener("close",i),A&&t.removeListener("timeout",A),t.socket||t._currentRequest.removeListener("socket",r)}return A&&this.on("timeout",A),this.socket?r(this.socket):this._currentRequest.once("socket",r),this.on("socket",a),this.on("abort",i),this.on("error",i),this.on("response",i),this.on("close",i),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){AA.prototype[e]=function(A,t){return this._currentRequest[e](A,t)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(AA.prototype,e,{get:function(){return this._currentRequest[e]}})});AA.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var A=e.path.indexOf("?");A<0?e.pathname=e.path:(e.pathname=e.path.substring(0,A),e.search=e.path.substring(A))}};AA.prototype._performRequest=function(){var e=this._options.protocol,A=this._options.nativeProtocols[e];if(!A)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var t=e.slice(0,-1);this._options.agent=this._options.agents[t]}var a=this._currentRequest=A.request(this._options,this._onNativeResponse);a._redirectable=this;for(var r of Y0)a.on(r,J0[r]);if(this._currentUrl=/^\//.test(this._options.path)?_r.format(this._options):this._options.path,this._isRedirect){var i=0,s=this,n=this._requestBodyBuffers;(function o(d){if(a===s._currentRequest)if(d)s.emit("error",d);else if(i<n.length){var l=n[i++];a.finished||a.write(l.data,l.encoding,o)}else s._ended&&a.end()})()}};AA.prototype._processResponse=function(e){var A=e.statusCode;this._options.trackRedirects&&this._redirects.push({url:this._currentUrl,headers:e.headers,statusCode:A});var t=e.headers.location;if(!t||this._options.followRedirects===!1||A<300||A>=400){e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[];return}if(x0(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new jR;var a,r=this._options.beforeRedirect;r&&(a=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var i=this._options.method;((A===301||A===302)&&this._options.method==="POST"||A===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],F0(/^content-/i,this._options.headers));var s=F0(/^host$/i,this._options.headers),n=G0(this._currentUrl),o=s||n.host,d=/^\w+:/.test(t)?this._currentUrl:_r.format(Object.assign(n,{host:o})),l=KR(t,d);if(r3("redirecting to",l.href),this._isRedirect=!0,U0(l,this._options),(l.protocol!==n.protocol&&l.protocol!=="https:"||l.host!==o&&!$R(l.host,o))&&F0(/^(?:authorization|cookie)$/i,this._options.headers),xr(r)){var p={headers:e.headers,statusCode:A},g={url:d,method:i,headers:a};r(this._options,p,g),this._sanitizeOptions(this._options)}this._performRequest()};function i3(e){var A={maxRedirects:21,maxBodyLength:10485760},t={};return Object.keys(e).forEach(function(a){var r=a+":",i=t[r]=e[a],s=A[a]=Object.create(i);function n(d,l,p){return AN(d)?d=U0(d):D1(d)?d=U0(G0(d)):(p=l,l=n3(d),d={protocol:r}),xr(l)&&(p=l,l=null),l=Object.assign({maxRedirects:A.maxRedirects,maxBodyLength:A.maxBodyLength},d,l),l.nativeProtocols=t,!D1(l.host)&&!D1(l.hostname)&&(l.hostname="::1"),M0.equal(l.protocol,r,"protocol mismatch"),r3("options",l),new AA(l,p)}function o(d,l,p){var g=s.request(d,l,p);return g.end(),g}Object.defineProperties(s,{request:{value:n,configurable:!0,enumerable:!0,writable:!0},get:{value:o,configurable:!0,enumerable:!0,writable:!0}})}),A}function s3(){}function G0(e){var A;if(V0)A=new Gr(e);else if(A=n3(_r.parse(e)),!D1(A.protocol))throw new k0({input:e});return A}function KR(e,A){return V0?new Gr(e,A):G0(_r.resolve(A,e))}function n3(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new k0({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new k0({input:e.href||e});return e}function U0(e,A){var t=A||{};for(var a of WR)t[a]=e[a];return t.hostname.startsWith("[")&&(t.hostname=t.hostname.slice(1,-1)),t.port!==""&&(t.port=Number(t.port)),t.path=t.search?t.pathname+t.search:t.pathname,t}function F0(e,A){var t;for(var a in A)e.test(a)&&(t=A[a],delete A[a]);return t===null||typeof t>"u"?void 0:String(t).trim()}function qr(e,A,t){function a(r){Error.captureStackTrace(this,this.constructor),Object.assign(this,r||{}),this.code=e,this.message=this.cause?A+": "+this.cause.message:A}return a.prototype=new(t||Error),Object.defineProperties(a.prototype,{constructor:{value:a,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),a}function x0(e,A){for(var t of Y0)e.removeListener(t,J0[t]);e.on("error",s3),e.destroy(A)}function $R(e,A){M0(D1(e)&&D1(A));var t=e.length-A.length-1;return t>0&&e[t]==="."&&e.endsWith(A)}function D1(e){return typeof e=="string"||e instanceof String}function xr(e){return typeof e=="function"}function eN(e){return typeof e=="object"&&"length"in e}function AN(e){return Gr&&e instanceof Gr}_0.exports=i3({http:OR,https:PR});_0.exports.wrap=i3});var H0=E((OF,tN)=>{tN.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var c3=E((PF,g3)=>{"use strict";var Hr=We(),o3=w0(),aN=y0(),rN=rn(),iN=require("http"),sN=require("https"),nN=q0().http,oN=q0().https,d3=require("url"),dN=require("zlib"),pN=H0(),Qn=on(),O0=nn(),p3=/https:?/;function l3(e,A,t){if(e.hostname=A.host,e.host=A.host,e.port=A.port,e.path=t,A.auth){var a=Buffer.from(A.auth.username+":"+A.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.beforeRedirect=function(i){i.headers.host=i.host,l3(i,A,i.href)}}g3.exports=function(A){return new Promise(function(a,r){var i=function(T){a(T)},s=function(T){r(T)},n=A.data,o=A.headers;if("User-Agent"in o||"user-agent"in o?!o["User-Agent"]&&!o["user-agent"]&&(delete o["User-Agent"],delete o["user-agent"]):o["User-Agent"]="axios/"+pN.version,n&&!Hr.isStream(n)){if(!Buffer.isBuffer(n))if(Hr.isArrayBuffer(n))n=Buffer.from(new Uint8Array(n));else if(Hr.isString(n))n=Buffer.from(n,"utf-8");else return s(Qn("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",A));o["Content-Length"]=n.length}var d=void 0;if(A.auth){var l=A.auth.username||"",p=A.auth.password||"";d=l+":"+p}var g=aN(A.baseURL,A.url),c=d3.parse(g),u=c.protocol||"http:";if(!d&&c.auth){var Q=c.auth.split(":"),m=Q[0]||"",C=Q[1]||"";d=m+":"+C}d&&delete o.Authorization;var B=p3.test(u),f=B?A.httpsAgent:A.httpAgent,h={path:rN(c.path,A.params,A.paramsSerializer).replace(/^\?/,""),method:A.method.toUpperCase(),headers:o,agent:f,agents:{http:A.httpAgent,https:A.httpsAgent},auth:d};A.socketPath?h.socketPath=A.socketPath:(h.hostname=c.hostname,h.port=c.port);var w=A.proxy;if(!w&&w!==!1){var v=u.slice(0,-1)+"_proxy",S=process.env[v]||process.env[v.toUpperCase()];if(S){var x=d3.parse(S),we=process.env.no_proxy||process.env.NO_PROXY,me=!0;if(we){var Nt=we.split(",").map(function(T){return T.trim()});me=!Nt.some(function(T){return T?T==="*"||T[0]==="."&&c.hostname.substr(c.hostname.length-T.length)===T?!0:c.hostname===T:!1})}if(me&&(w={host:x.hostname,port:x.port,protocol:x.protocol},x.auth)){var Se=x.auth.split(":");w.auth={username:Se[0],password:Se[1]}}}}w&&(h.headers.host=c.hostname+(c.port?":"+c.port:""),l3(h,w,u+"//"+c.hostname+(c.port?":"+c.port:"")+h.path));var le,mA=B&&(w?p3.test(w.protocol):!0);A.transport?le=A.transport:A.maxRedirects===0?le=mA?sN:iN:(A.maxRedirects&&(h.maxRedirects=A.maxRedirects),le=mA?oN:nN),A.maxBodyLength>-1&&(h.maxBodyLength=A.maxBodyLength);var X=le.request(h,function(T){if(!X.aborted){var qA=T,W=T.req||X;if(T.statusCode!==204&&W.method!=="HEAD"&&A.decompress!==!1)switch(T.headers["content-encoding"]){case"gzip":case"compress":case"deflate":qA=qA.pipe(dN.createUnzip()),delete T.headers["content-encoding"];break}var aA={status:T.statusCode,statusText:T.statusMessage,headers:T.headers,config:A,request:W};if(A.responseType==="stream")aA.data=qA,o3(i,s,aA);else{var s2=[],n2=0;qA.on("data",function(HA){s2.push(HA),n2+=HA.length,A.maxContentLength>-1&&n2>A.maxContentLength&&(qA.destroy(),s(Qn("maxContentLength size of "+A.maxContentLength+" exceeded",A,null,W)))}),qA.on("error",function(HA){X.aborted||s(O0(HA,A,null,W))}),qA.on("end",function(){var HA=Buffer.concat(s2);A.responseType!=="arraybuffer"&&(HA=HA.toString(A.responseEncoding),(!A.responseEncoding||A.responseEncoding==="utf8")&&(HA=Hr.stripBOM(HA))),aA.data=HA,o3(i,s,aA)})}}});if(X.on("error",function(T){X.aborted&&T.code!=="ERR_FR_TOO_MANY_REDIRECTS"||s(O0(T,A,null,X))}),A.timeout){var re=parseInt(A.timeout,10);if(isNaN(re)){s(Qn("error trying to parse `config.timeout` to int",A,"ERR_PARSE_TIMEOUT",X));return}X.setTimeout(re,function(){X.abort(),s(Qn("timeout of "+re+"ms exceeded",A,A.transitional&&A.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",X))})}A.cancelToken&&A.cancelToken.promise.then(function(T){X.aborted||(X.abort(),s(T))}),Hr.isStream(n)?n.on("error",function(T){s(O0(T,A,null,X))}).pipe(X):X.end(n)})}});var mn=E((WF,Q3)=>{"use strict";var Me=We(),u3=R9(),lN=nn(),gN={"Content-Type":"application/x-www-form-urlencoded"};function E3(e,A){!Me.isUndefined(e)&&Me.isUndefined(e["Content-Type"])&&(e["Content-Type"]=A)}function cN(){var e;return typeof XMLHttpRequest<"u"?e=H9():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=c3()),e}function uN(e,A,t){if(Me.isString(e))try{return(A||JSON.parse)(e),Me.trim(e)}catch(a){if(a.name!=="SyntaxError")throw a}return(t||JSON.stringify)(e)}var Cn={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:cN(),transformRequest:[function(A,t){return u3(t,"Accept"),u3(t,"Content-Type"),Me.isFormData(A)||Me.isArrayBuffer(A)||Me.isBuffer(A)||Me.isStream(A)||Me.isFile(A)||Me.isBlob(A)?A:Me.isArrayBufferView(A)?A.buffer:Me.isURLSearchParams(A)?(E3(t,"application/x-www-form-urlencoded;charset=utf-8"),A.toString()):Me.isObject(A)||t&&t["Content-Type"]==="application/json"?(E3(t,"application/json"),uN(A)):A}],transformResponse:[function(A){var t=this.transitional,a=t&&t.silentJSONParsing,r=t&&t.forcedJSONParsing,i=!a&&this.responseType==="json";if(i||r&&Me.isString(A)&&A.length)try{return JSON.parse(A)}catch(s){if(i)throw s.name==="SyntaxError"?lN(s,this,"E_JSON_PARSE"):s}return A}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(A){return A>=200&&A<300}};Cn.headers={common:{Accept:"application/json, text/plain, */*"}};Me.forEach(["delete","get","head"],function(A){Cn.headers[A]={}});Me.forEach(["post","put","patch"],function(A){Cn.headers[A]=Me.merge(gN)});Q3.exports=Cn});var m3=E((jF,C3)=>{"use strict";var EN=We(),QN=mn();C3.exports=function(A,t,a){var r=this||QN;return EN.forEach(a,function(s){A=s.call(r,A,t)}),A}});var P0=E((ZF,B3)=>{"use strict";B3.exports=function(A){return!!(A&&A.__CANCEL__)}});var f3=E((XF,I3)=>{"use strict";var h3=We(),W0=m3(),CN=P0(),mN=mn();function j0(e){e.cancelToken&&e.cancelToken.throwIfRequested()}I3.exports=function(A){j0(A),A.headers=A.headers||{},A.data=W0.call(A,A.data,A.headers,A.transformRequest),A.headers=h3.merge(A.headers.common||{},A.headers[A.method]||{},A.headers),h3.forEach(["delete","get","head","post","put","patch","common"],function(r){delete A.headers[r]});var t=A.adapter||mN.adapter;return t(A).then(function(r){return j0(A),r.data=W0.call(A,r.data,r.headers,A.transformResponse),r},function(r){return CN(r)||(j0(A),r&&r.response&&(r.response.data=W0.call(A,r.response.data,r.response.headers,A.transformResponse))),Promise.reject(r)})}});var Z0=E((zF,w3)=>{"use strict";var Je=We();w3.exports=function(A,t){t=t||{};var a={},r=["url","method","data"],i=["headers","auth","proxy","params"],s=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],n=["validateStatus"];function o(g,c){return Je.isPlainObject(g)&&Je.isPlainObject(c)?Je.merge(g,c):Je.isPlainObject(c)?Je.merge({},c):Je.isArray(c)?c.slice():c}function d(g){Je.isUndefined(t[g])?Je.isUndefined(A[g])||(a[g]=o(void 0,A[g])):a[g]=o(A[g],t[g])}Je.forEach(r,function(c){Je.isUndefined(t[c])||(a[c]=o(void 0,t[c]))}),Je.forEach(i,d),Je.forEach(s,function(c){Je.isUndefined(t[c])?Je.isUndefined(A[c])||(a[c]=o(void 0,A[c])):a[c]=o(void 0,t[c])}),Je.forEach(n,function(c){c in t?a[c]=o(A[c],t[c]):c in A&&(a[c]=o(void 0,A[c]))});var l=r.concat(i).concat(s).concat(n),p=Object.keys(A).concat(Object.keys(t)).filter(function(c){return l.indexOf(c)===-1});return Je.forEach(p,d),a}});var N3=E((KF,R3)=>{"use strict";var D3=H0(),X0={};["object","boolean","number","function","string","symbol"].forEach(function(e,A){X0[e]=function(a){return typeof a===e||"a"+(A<1?"n ":" ")+e}});var y3={},BN=D3.version.split(".");function v3(e,A){for(var t=A?A.split("."):BN,a=e.split("."),r=0;r<3;r++){if(t[r]>a[r])return!0;if(t[r]<a[r])return!1}return!1}X0.transitional=function(A,t,a){var r=t&&v3(t);function i(s,n){return"[Axios v"+D3.version+"] Transitional option '"+s+"'"+n+(a?". "+a:"")}return function(s,n,o){if(A===!1)throw new Error(i(n," has been removed in "+t));return r&&!y3[n]&&(y3[n]=!0,console.warn(i(n," has been deprecated since v"+t+" and will be removed in the near future"))),A?A(s,n,o):!0}};function hN(e,A,t){if(typeof e!="object")throw new TypeError("options must be an object");for(var a=Object.keys(e),r=a.length;r-- >0;){var i=a[r],s=A[i];if(s){var n=e[i],o=n===void 0||s(n,i,e);if(o!==!0)throw new TypeError("option "+i+" must be "+o);continue}if(t!==!0)throw Error("Unknown option "+i)}}R3.exports={isOlderVersion:v3,assertOptions:hN,validators:X0}});var U3=E(($F,L3)=>{"use strict";var F3=We(),IN=rn(),b3=D9(),S3=f3(),Bn=Z0(),k3=N3(),ka=k3.validators;function Or(e){this.defaults=e,this.interceptors={request:new b3,response:new b3}}Or.prototype.request=function(A){typeof A=="string"?(A=arguments[1]||{},A.url=arguments[0]):A=A||{},A=Bn(this.defaults,A),A.method?A.method=A.method.toLowerCase():this.defaults.method?A.method=this.defaults.method.toLowerCase():A.method="get";var t=A.transitional;t!==void 0&&k3.assertOptions(t,{silentJSONParsing:ka.transitional(ka.boolean,"1.0.0"),forcedJSONParsing:ka.transitional(ka.boolean,"1.0.0"),clarifyTimeoutError:ka.transitional(ka.boolean,"1.0.0")},!1);var a=[],r=!0;this.interceptors.request.forEach(function(g){typeof g.runWhen=="function"&&g.runWhen(A)===!1||(r=r&&g.synchronous,a.unshift(g.fulfilled,g.rejected))});var i=[];this.interceptors.response.forEach(function(g){i.push(g.fulfilled,g.rejected)});var s;if(!r){var n=[S3,void 0];for(Array.prototype.unshift.apply(n,a),n=n.concat(i),s=Promise.resolve(A);n.length;)s=s.then(n.shift(),n.shift());return s}for(var o=A;a.length;){var d=a.shift(),l=a.shift();try{o=d(o)}catch(p){l(p);break}}try{s=S3(o)}catch(p){return Promise.reject(p)}for(;i.length;)s=s.then(i.shift(),i.shift());return s};Or.prototype.getUri=function(A){return A=Bn(this.defaults,A),IN(A.url,A.params,A.paramsSerializer).replace(/^\?/,"")};F3.forEach(["delete","get","head","options"],function(A){Or.prototype[A]=function(t,a){return this.request(Bn(a||{},{method:A,url:t,data:(a||{}).data}))}});F3.forEach(["post","put","patch"],function(A){Or.prototype[A]=function(t,a,r){return this.request(Bn(r||{},{method:A,url:t,data:a}))}});L3.exports=Or});var K0=E((ek,T3)=>{"use strict";function z0(e){this.message=e}z0.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};z0.prototype.__CANCEL__=!0;T3.exports=z0});var V3=E((Ak,M3)=>{"use strict";var fN=K0();function hn(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var A;this.promise=new Promise(function(r){A=r});var t=this;e(function(r){t.reason||(t.reason=new fN(r),A(t.reason))})}hn.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};hn.source=function(){var A,t=new hn(function(r){A=r});return{token:t,cancel:A}};M3.exports=hn});var J3=E((tk,Y3)=>{"use strict";Y3.exports=function(A){return function(a){return A.apply(null,a)}}});var x3=E((ak,G3)=>{"use strict";G3.exports=function(A){return typeof A=="object"&&A.isAxiosError===!0}});var H3=E((rk,$0)=>{"use strict";var _3=We(),wN=m0(),In=U3(),yN=Z0(),DN=mn();function q3(e){var A=new In(e),t=wN(In.prototype.request,A);return _3.extend(t,In.prototype,A),_3.extend(t,A),t}var xA=q3(DN);xA.Axios=In;xA.create=function(A){return q3(yN(xA.defaults,A))};xA.Cancel=K0();xA.CancelToken=V3();xA.isCancel=P0();xA.all=function(A){return Promise.all(A)};xA.spread=J3();xA.isAxiosError=x3();$0.exports=xA;$0.exports.default=xA});var P3=E((ik,O3)=>{O3.exports=H3()});var W3=E((exports,module)=>{"use strict";var __awaiter=exports&&exports.__awaiter||function(e,A,t,a){function r(i){return i instanceof t?i:new t(function(s){s(i)})}return new(t||(t=Promise))(function(i,s){function n(l){try{d(a.next(l))}catch(p){s(p)}}function o(l){try{d(a.throw(l))}catch(p){s(p)}}function d(l){l.done?i(l.value):r(l.value).then(n,o)}d((a=a.apply(e,A||[])).next())})},__generator=exports&&exports.__generator||function(e,A){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},a,r,i,s;return s={next:n(0),throw:n(1),return:n(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function n(d){return function(l){return o([d,l])}}function o(d){if(a)throw new TypeError("Generator is already executing.");for(;t;)try{if(a=1,r&&(i=d[0]&2?r.return:d[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,d[1])).done)return i;switch(r=0,i&&(d=[d[0]&2,i.value]),d[0]){case 0:case 1:i=d;break;case 4:return t.label++,{value:d[1],done:!1};case 5:t.label++,r=d[1],d=[0];continue;case 7:d=t.ops.pop(),t.trys.pop();continue;default:if(i=t.trys,!(i=i.length>0&&i[i.length-1])&&(d[0]===6||d[0]===2)){t=0;continue}if(d[0]===3&&(!i||d[1]>i[0]&&d[1]<i[3])){t.label=d[1];break}if(d[0]===6&&t.label<i[1]){t.label=i[1],i=d;break}if(i&&t.label<i[2]){t.label=i[2],t.ops.push(d);break}i[2]&&t.ops.pop(),t.trys.pop();continue}d=A.call(e,t)}catch(l){d=[6,l],r=0}finally{a=i=0}if(d[0]&5)throw d[1];return{value:d[0]?d[1]:void 0,done:!0}}},__importDefault=exports&&exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});exports.getAllAudioBase64=exports.getAudioBase64=void 0;var assertInputTypes_1=__importDefault(u0()),axios_1=__importDefault(P3()),splitLongText_1=__importDefault(Q0()),getAudioBase64=function(text,_a){var _b=_a===void 0?{}:_a,_c=_b.lang,lang=_c===void 0?"en":_c,_d=_b.slow,slow=_d===void 0?!1:_d,_e=_b.host,host=_e===void 0?"https://translate.google.com":_e,_f=_b.timeout,timeout=_f===void 0?1e4:_f;return __awaiter(void 0,void 0,void 0,function(){var res,result;return __generator(this,function(_g){switch(_g.label){case 0:if(assertInputTypes_1.default(text,lang,slow,host),typeof timeout!="number"||timeout<=0)throw new TypeError("timeout should be a positive number");if(text.length>200)throw new RangeError("text length ("+text.length+') should be less than 200 characters. Try "getAllAudioBase64(text, [option])" for long text.');return[4,axios_1.default({method:"post",baseURL:host,url:"/_/TranslateWebserverUi/data/batchexecute",timeout,data:"f.req="+encodeURIComponent(JSON.stringify([[["jQ1olc",JSON.stringify([text,lang,slow?!0:null,"null"]),null,"generic"]]]))})];case 1:res=_g.sent();try{result=eval(res.data.slice(5))[0][2]}catch(e){throw new Error(`parse response failed: +`+i),e.push(r+"m+"+on.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=Cv()+A+" "+e[0]}function Cv(){return Te.inspectOpts.hideDate?"":new Date().toISOString()+" "}function Bv(...e){return process.stderr.write(nn.format(...e)+` +`)}function hv(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function Iv(){return process.env.DEBUG}function fv(e){e.inspectOpts={};let A=Object.keys(Te.inspectOpts);for(let t=0;t<A.length;t++)e.inspectOpts[A[t]]=Te.inspectOpts[A[t]]}on.exports=C0()(Te);var{formatters:HE}=on.exports;HE.o=function(e){return this.inspectOpts.colors=this.useColors,nn.inspect(e,this.inspectOpts).split(` +`).map(A=>A.trim()).join(" ")};HE.O=function(e){return this.inspectOpts.colors=this.useColors,nn.inspect(e,this.inspectOpts)}});var PE=E((tF,I0)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?I0.exports=YE():I0.exports=OE()});var ZE=E((aF,WE)=>{var Lr;WE.exports=function(){if(!Lr){try{Lr=PE()("follow-redirects")}catch{}typeof Lr!="function"&&(Lr=function(){})}Lr.apply(null,arguments)}});var U0=E((rF,L0)=>{var Mr=require("url"),Ur=Mr.URL,wv=require("http"),yv=require("https"),R0=require("stream").Writable,v0=require("assert"),jE=ZE(),N0=!1;try{v0(new Ur)}catch(e){N0=e.code==="ERR_INVALID_URL"}var Dv=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],S0=["abort","aborted","connect","error","socket","timeout"],b0=Object.create(null);S0.forEach(function(e){b0[e]=function(A,t,a){this._redirectable.emit(e,A,t,a)}});var w0=Vr("ERR_INVALID_URL","Invalid URL",TypeError),y0=Vr("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),Rv=Vr("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",y0),vv=Vr("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),Nv=Vr("ERR_STREAM_WRITE_AFTER_END","write after end"),Sv=R0.prototype.destroy||zE;function AA(e,A){R0.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],A&&this.on("response",A);var t=this;this._onNativeResponse=function(a){try{t._processResponse(a)}catch(r){t.emit("error",r instanceof y0?r:new y0({cause:r}))}},this._performRequest()}AA.prototype=Object.create(R0.prototype);AA.prototype.abort=function(){k0(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};AA.prototype.destroy=function(e){return k0(this._currentRequest,e),Sv.call(this,e),this};AA.prototype.write=function(e,A,t){if(this._ending)throw new Nv;if(!I1(e)&&!kv(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(Tr(A)&&(t=A,A=null),e.length===0){t&&t();return}this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:A}),this._currentRequest.write(e,A,t)):(this.emit("error",new vv),this.abort())};AA.prototype.end=function(e,A,t){if(Tr(e)?(t=e,e=A=null):Tr(A)&&(t=A,A=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,t);else{var a=this,r=this._currentRequest;this.write(e,A,function(){a._ended=!0,r.end(null,null,t)}),this._ending=!0}};AA.prototype.setHeader=function(e,A){this._options.headers[e]=A,this._currentRequest.setHeader(e,A)};AA.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};AA.prototype.setTimeout=function(e,A){var t=this;function a(s){s.setTimeout(e),s.removeListener("timeout",s.destroy),s.addListener("timeout",s.destroy)}function r(s){t._timeout&&clearTimeout(t._timeout),t._timeout=setTimeout(function(){t.emit("timeout"),i()},e),a(s)}function i(){t._timeout&&(clearTimeout(t._timeout),t._timeout=null),t.removeListener("abort",i),t.removeListener("error",i),t.removeListener("response",i),t.removeListener("close",i),A&&t.removeListener("timeout",A),t.socket||t._currentRequest.removeListener("socket",r)}return A&&this.on("timeout",A),this.socket?r(this.socket):this._currentRequest.once("socket",r),this.on("socket",a),this.on("abort",i),this.on("error",i),this.on("response",i),this.on("close",i),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){AA.prototype[e]=function(A,t){return this._currentRequest[e](A,t)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(AA.prototype,e,{get:function(){return this._currentRequest[e]}})});AA.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var A=e.path.indexOf("?");A<0?e.pathname=e.path:(e.pathname=e.path.substring(0,A),e.search=e.path.substring(A))}};AA.prototype._performRequest=function(){var e=this._options.protocol,A=this._options.nativeProtocols[e];if(!A)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var t=e.slice(0,-1);this._options.agent=this._options.agents[t]}var a=this._currentRequest=A.request(this._options,this._onNativeResponse);a._redirectable=this;for(var r of S0)a.on(r,b0[r]);if(this._currentUrl=/^\//.test(this._options.path)?Mr.format(this._options):this._options.path,this._isRedirect){var i=0,s=this,n=this._requestBodyBuffers;(function o(d){if(a===s._currentRequest)if(d)s.emit("error",d);else if(i<n.length){var l=n[i++];a.finished||a.write(l.data,l.encoding,o)}else s._ended&&a.end()})()}};AA.prototype._processResponse=function(e){var A=e.statusCode;this._options.trackRedirects&&this._redirects.push({url:this._currentUrl,headers:e.headers,statusCode:A});var t=e.headers.location;if(!t||this._options.followRedirects===!1||A<300||A>=400){e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[];return}if(k0(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new Rv;var a,r=this._options.beforeRedirect;r&&(a=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var i=this._options.method;((A===301||A===302)&&this._options.method==="POST"||A===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],f0(/^content-/i,this._options.headers));var s=f0(/^host$/i,this._options.headers),n=F0(this._currentUrl),o=s||n.host,d=/^\w+:/.test(t)?this._currentUrl:Mr.format(Object.assign(n,{host:o})),l=bv(t,d);if(jE("redirecting to",l.href),this._isRedirect=!0,D0(l,this._options),(l.protocol!==n.protocol&&l.protocol!=="https:"||l.host!==o&&!Fv(l.host,o))&&f0(/^(?:authorization|cookie)$/i,this._options.headers),Tr(r)){var p={headers:e.headers,statusCode:A},g={url:d,method:i,headers:a};r(this._options,p,g),this._sanitizeOptions(this._options)}this._performRequest()};function XE(e){var A={maxRedirects:21,maxBodyLength:10485760},t={};return Object.keys(e).forEach(function(a){var r=a+":",i=t[r]=e[a],s=A[a]=Object.create(i);function n(d,l,p){return Lv(d)?d=D0(d):I1(d)?d=D0(F0(d)):(p=l,l=KE(d),d={protocol:r}),Tr(l)&&(p=l,l=null),l=Object.assign({maxRedirects:A.maxRedirects,maxBodyLength:A.maxBodyLength},d,l),l.nativeProtocols=t,!I1(l.host)&&!I1(l.hostname)&&(l.hostname="::1"),v0.equal(l.protocol,r,"protocol mismatch"),jE("options",l),new AA(l,p)}function o(d,l,p){var g=s.request(d,l,p);return g.end(),g}Object.defineProperties(s,{request:{value:n,configurable:!0,enumerable:!0,writable:!0},get:{value:o,configurable:!0,enumerable:!0,writable:!0}})}),A}function zE(){}function F0(e){var A;if(N0)A=new Ur(e);else if(A=KE(Mr.parse(e)),!I1(A.protocol))throw new w0({input:e});return A}function bv(e,A){return N0?new Ur(e,A):F0(Mr.resolve(A,e))}function KE(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new w0({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new w0({input:e.href||e});return e}function D0(e,A){var t=A||{};for(var a of Dv)t[a]=e[a];return t.hostname.startsWith("[")&&(t.hostname=t.hostname.slice(1,-1)),t.port!==""&&(t.port=Number(t.port)),t.path=t.search?t.pathname+t.search:t.pathname,t}function f0(e,A){var t;for(var a in A)e.test(a)&&(t=A[a],delete A[a]);return t===null||typeof t>"u"?void 0:String(t).trim()}function Vr(e,A,t){function a(r){Error.captureStackTrace(this,this.constructor),Object.assign(this,r||{}),this.code=e,this.message=this.cause?A+": "+this.cause.message:A}return a.prototype=new(t||Error),Object.defineProperties(a.prototype,{constructor:{value:a,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),a}function k0(e,A){for(var t of S0)e.removeListener(t,b0[t]);e.on("error",zE),e.destroy(A)}function Fv(e,A){v0(I1(e)&&I1(A));var t=e.length-A.length-1;return t>0&&e[t]==="."&&e.endsWith(A)}function I1(e){return typeof e=="string"||e instanceof String}function Tr(e){return typeof e=="function"}function kv(e){return typeof e=="object"&&"length"in e}function Lv(e){return Ur&&e instanceof Ur}L0.exports=XE({http:wv,https:yv});L0.exports.wrap=XE});var T0=E((iF,Uv)=>{Uv.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var r3=E((sF,a3)=>{"use strict";var Yr=We(),$E=u0(),Tv=E0(),Mv=Ks(),Vv=require("http"),Yv=require("https"),Jv=U0().http,Gv=U0().https,e3=require("url"),xv=require("zlib"),_v=T0(),dn=An(),M0=en(),A3=/https:?/;function t3(e,A,t){if(e.hostname=A.host,e.host=A.host,e.port=A.port,e.path=t,A.auth){var a=Buffer.from(A.auth.username+":"+A.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.beforeRedirect=function(i){i.headers.host=i.host,t3(i,A,i.href)}}a3.exports=function(A){return new Promise(function(a,r){var i=function(T){a(T)},s=function(T){r(T)},n=A.data,o=A.headers;if("User-Agent"in o||"user-agent"in o?!o["User-Agent"]&&!o["user-agent"]&&(delete o["User-Agent"],delete o["user-agent"]):o["User-Agent"]="axios/"+_v.version,n&&!Yr.isStream(n)){if(!Buffer.isBuffer(n))if(Yr.isArrayBuffer(n))n=Buffer.from(new Uint8Array(n));else if(Yr.isString(n))n=Buffer.from(n,"utf-8");else return s(dn("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",A));o["Content-Length"]=n.length}var d=void 0;if(A.auth){var l=A.auth.username||"",p=A.auth.password||"";d=l+":"+p}var g=Tv(A.baseURL,A.url),c=e3.parse(g),u=c.protocol||"http:";if(!d&&c.auth){var Q=c.auth.split(":"),C=Q[0]||"",m=Q[1]||"";d=C+":"+m}d&&delete o.Authorization;var B=A3.test(u),w=B?A.httpsAgent:A.httpAgent,I={path:Mv(c.path,A.params,A.paramsSerializer).replace(/^\?/,""),method:A.method.toUpperCase(),headers:o,agent:w,agents:{http:A.httpAgent,https:A.httpsAgent},auth:d};A.socketPath?I.socketPath=A.socketPath:(I.hostname=c.hostname,I.port=c.port);var y=A.proxy;if(!y&&y!==!1){var S=u.slice(0,-1)+"_proxy",k=process.env[S]||process.env[S.toUpperCase()];if(k){var x=e3.parse(k),we=process.env.no_proxy||process.env.NO_PROXY,Ce=!0;if(we){var yt=we.split(",").map(function(T){return T.trim()});Ce=!yt.some(function(T){return T?T==="*"||T[0]==="."&&c.hostname.substr(c.hostname.length-T.length)===T?!0:c.hostname===T:!1})}if(Ce&&(y={host:x.hostname,port:x.port,protocol:x.protocol},x.auth)){var be=x.auth.split(":");y.auth={username:be[0],password:be[1]}}}}y&&(I.headers.host=c.hostname+(c.port?":"+c.port:""),t3(I,y,u+"//"+c.hostname+(c.port?":"+c.port:"")+I.path));var le,mA=B&&(y?A3.test(y.protocol):!0);A.transport?le=A.transport:A.maxRedirects===0?le=mA?Yv:Vv:(A.maxRedirects&&(I.maxRedirects=A.maxRedirects),le=mA?Gv:Jv),A.maxBodyLength>-1&&(I.maxBodyLength=A.maxBodyLength);var j=le.request(I,function(T){if(!j.aborted){var xA=T,W=T.req||j;if(T.statusCode!==204&&W.method!=="HEAD"&&A.decompress!==!1)switch(T.headers["content-encoding"]){case"gzip":case"compress":case"deflate":xA=xA.pipe(xv.createUnzip()),delete T.headers["content-encoding"];break}var tA={status:T.statusCode,statusText:T.statusMessage,headers:T.headers,config:A,request:W};if(A.responseType==="stream")tA.data=xA,$E(i,s,tA);else{var X0=[],z0=0;xA.on("data",function(_A){X0.push(_A),z0+=_A.length,A.maxContentLength>-1&&z0>A.maxContentLength&&(xA.destroy(),s(dn("maxContentLength size of "+A.maxContentLength+" exceeded",A,null,W)))}),xA.on("error",function(_A){j.aborted||s(M0(_A,A,null,W))}),xA.on("end",function(){var _A=Buffer.concat(X0);A.responseType!=="arraybuffer"&&(_A=_A.toString(A.responseEncoding),(!A.responseEncoding||A.responseEncoding==="utf8")&&(_A=Yr.stripBOM(_A))),tA.data=_A,$E(i,s,tA)})}}});if(j.on("error",function(T){j.aborted&&T.code!=="ERR_FR_TOO_MANY_REDIRECTS"||s(M0(T,A,null,j))}),A.timeout){var re=parseInt(A.timeout,10);if(isNaN(re)){s(dn("error trying to parse `config.timeout` to int",A,"ERR_PARSE_TIMEOUT",j));return}j.setTimeout(re,function(){j.abort(),s(dn("timeout of "+re+"ms exceeded",A,A.transitional&&A.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",j))})}A.cancelToken&&A.cancelToken.promise.then(function(T){j.aborted||(j.abort(),s(T))}),Yr.isStream(n)?n.on("error",function(T){s(M0(T,A,null,j))}).pipe(j):j.end(n)})}});var ln=E((nF,n3)=>{"use strict";var Me=We(),i3=mE(),qv=en(),Hv={"Content-Type":"application/x-www-form-urlencoded"};function s3(e,A){!Me.isUndefined(e)&&Me.isUndefined(e["Content-Type"])&&(e["Content-Type"]=A)}function Ov(){var e;return typeof XMLHttpRequest<"u"?e=UE():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=r3()),e}function Pv(e,A,t){if(Me.isString(e))try{return(A||JSON.parse)(e),Me.trim(e)}catch(a){if(a.name!=="SyntaxError")throw a}return(t||JSON.stringify)(e)}var pn={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:Ov(),transformRequest:[function(A,t){return i3(t,"Accept"),i3(t,"Content-Type"),Me.isFormData(A)||Me.isArrayBuffer(A)||Me.isBuffer(A)||Me.isStream(A)||Me.isFile(A)||Me.isBlob(A)?A:Me.isArrayBufferView(A)?A.buffer:Me.isURLSearchParams(A)?(s3(t,"application/x-www-form-urlencoded;charset=utf-8"),A.toString()):Me.isObject(A)||t&&t["Content-Type"]==="application/json"?(s3(t,"application/json"),Pv(A)):A}],transformResponse:[function(A){var t=this.transitional,a=t&&t.silentJSONParsing,r=t&&t.forcedJSONParsing,i=!a&&this.responseType==="json";if(i||r&&Me.isString(A)&&A.length)try{return JSON.parse(A)}catch(s){if(i)throw s.name==="SyntaxError"?qv(s,this,"E_JSON_PARSE"):s}return A}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(A){return A>=200&&A<300}};pn.headers={common:{Accept:"application/json, text/plain, */*"}};Me.forEach(["delete","get","head"],function(A){pn.headers[A]={}});Me.forEach(["post","put","patch"],function(A){pn.headers[A]=Me.merge(Hv)});n3.exports=pn});var d3=E((oF,o3)=>{"use strict";var Wv=We(),Zv=ln();o3.exports=function(A,t,a){var r=this||Zv;return Wv.forEach(a,function(s){A=s.call(r,A,t)}),A}});var V0=E((dF,p3)=>{"use strict";p3.exports=function(A){return!!(A&&A.__CANCEL__)}});var c3=E((pF,g3)=>{"use strict";var l3=We(),Y0=d3(),jv=V0(),Xv=ln();function J0(e){e.cancelToken&&e.cancelToken.throwIfRequested()}g3.exports=function(A){J0(A),A.headers=A.headers||{},A.data=Y0.call(A,A.data,A.headers,A.transformRequest),A.headers=l3.merge(A.headers.common||{},A.headers[A.method]||{},A.headers),l3.forEach(["delete","get","head","post","put","patch","common"],function(r){delete A.headers[r]});var t=A.adapter||Xv.adapter;return t(A).then(function(r){return J0(A),r.data=Y0.call(A,r.data,r.headers,A.transformResponse),r},function(r){return jv(r)||(J0(A),r&&r.response&&(r.response.data=Y0.call(A,r.response.data,r.response.headers,A.transformResponse))),Promise.reject(r)})}});var G0=E((lF,u3)=>{"use strict";var Je=We();u3.exports=function(A,t){t=t||{};var a={},r=["url","method","data"],i=["headers","auth","proxy","params"],s=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],n=["validateStatus"];function o(g,c){return Je.isPlainObject(g)&&Je.isPlainObject(c)?Je.merge(g,c):Je.isPlainObject(c)?Je.merge({},c):Je.isArray(c)?c.slice():c}function d(g){Je.isUndefined(t[g])?Je.isUndefined(A[g])||(a[g]=o(void 0,A[g])):a[g]=o(A[g],t[g])}Je.forEach(r,function(c){Je.isUndefined(t[c])||(a[c]=o(void 0,t[c]))}),Je.forEach(i,d),Je.forEach(s,function(c){Je.isUndefined(t[c])?Je.isUndefined(A[c])||(a[c]=o(void 0,A[c])):a[c]=o(void 0,t[c])}),Je.forEach(n,function(c){c in t?a[c]=o(A[c],t[c]):c in A&&(a[c]=o(void 0,A[c]))});var l=r.concat(i).concat(s).concat(n),p=Object.keys(A).concat(Object.keys(t)).filter(function(c){return l.indexOf(c)===-1});return Je.forEach(p,d),a}});var B3=E((gF,C3)=>{"use strict";var Q3=T0(),x0={};["object","boolean","number","function","string","symbol"].forEach(function(e,A){x0[e]=function(a){return typeof a===e||"a"+(A<1?"n ":" ")+e}});var E3={},zv=Q3.version.split(".");function m3(e,A){for(var t=A?A.split("."):zv,a=e.split("."),r=0;r<3;r++){if(t[r]>a[r])return!0;if(t[r]<a[r])return!1}return!1}x0.transitional=function(A,t,a){var r=t&&m3(t);function i(s,n){return"[Axios v"+Q3.version+"] Transitional option '"+s+"'"+n+(a?". "+a:"")}return function(s,n,o){if(A===!1)throw new Error(i(n," has been removed in "+t));return r&&!E3[n]&&(E3[n]=!0,console.warn(i(n," has been deprecated since v"+t+" and will be removed in the near future"))),A?A(s,n,o):!0}};function Kv(e,A,t){if(typeof e!="object")throw new TypeError("options must be an object");for(var a=Object.keys(e),r=a.length;r-- >0;){var i=a[r],s=A[i];if(s){var n=e[i],o=n===void 0||s(n,i,e);if(o!==!0)throw new TypeError("option "+i+" must be "+o);continue}if(t!==!0)throw Error("Unknown option "+i)}}C3.exports={isOlderVersion:m3,assertOptions:Kv,validators:x0}});var D3=E((cF,y3)=>{"use strict";var f3=We(),$v=Ks(),h3=EE(),I3=c3(),gn=G0(),w3=B3(),Na=w3.validators;function Jr(e){this.defaults=e,this.interceptors={request:new h3,response:new h3}}Jr.prototype.request=function(A){typeof A=="string"?(A=arguments[1]||{},A.url=arguments[0]):A=A||{},A=gn(this.defaults,A),A.method?A.method=A.method.toLowerCase():this.defaults.method?A.method=this.defaults.method.toLowerCase():A.method="get";var t=A.transitional;t!==void 0&&w3.assertOptions(t,{silentJSONParsing:Na.transitional(Na.boolean,"1.0.0"),forcedJSONParsing:Na.transitional(Na.boolean,"1.0.0"),clarifyTimeoutError:Na.transitional(Na.boolean,"1.0.0")},!1);var a=[],r=!0;this.interceptors.request.forEach(function(g){typeof g.runWhen=="function"&&g.runWhen(A)===!1||(r=r&&g.synchronous,a.unshift(g.fulfilled,g.rejected))});var i=[];this.interceptors.response.forEach(function(g){i.push(g.fulfilled,g.rejected)});var s;if(!r){var n=[I3,void 0];for(Array.prototype.unshift.apply(n,a),n=n.concat(i),s=Promise.resolve(A);n.length;)s=s.then(n.shift(),n.shift());return s}for(var o=A;a.length;){var d=a.shift(),l=a.shift();try{o=d(o)}catch(p){l(p);break}}try{s=I3(o)}catch(p){return Promise.reject(p)}for(;i.length;)s=s.then(i.shift(),i.shift());return s};Jr.prototype.getUri=function(A){return A=gn(this.defaults,A),$v(A.url,A.params,A.paramsSerializer).replace(/^\?/,"")};f3.forEach(["delete","get","head","options"],function(A){Jr.prototype[A]=function(t,a){return this.request(gn(a||{},{method:A,url:t,data:(a||{}).data}))}});f3.forEach(["post","put","patch"],function(A){Jr.prototype[A]=function(t,a,r){return this.request(gn(r||{},{method:A,url:t,data:a}))}});y3.exports=Jr});var q0=E((uF,R3)=>{"use strict";function _0(e){this.message=e}_0.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};_0.prototype.__CANCEL__=!0;R3.exports=_0});var N3=E((EF,v3)=>{"use strict";var eN=q0();function cn(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var A;this.promise=new Promise(function(r){A=r});var t=this;e(function(r){t.reason||(t.reason=new eN(r),A(t.reason))})}cn.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};cn.source=function(){var A,t=new cn(function(r){A=r});return{token:t,cancel:A}};v3.exports=cn});var b3=E((QF,S3)=>{"use strict";S3.exports=function(A){return function(a){return A.apply(null,a)}}});var k3=E((mF,F3)=>{"use strict";F3.exports=function(A){return typeof A=="object"&&A.isAxiosError===!0}});var T3=E((CF,H0)=>{"use strict";var L3=We(),AN=d0(),un=D3(),tN=G0(),aN=ln();function U3(e){var A=new un(e),t=AN(un.prototype.request,A);return L3.extend(t,un.prototype,A),L3.extend(t,A),t}var JA=U3(aN);JA.Axios=un;JA.create=function(A){return U3(tN(JA.defaults,A))};JA.Cancel=q0();JA.CancelToken=N3();JA.isCancel=V0();JA.all=function(A){return Promise.all(A)};JA.spread=b3();JA.isAxiosError=k3();H0.exports=JA;H0.exports.default=JA});var V3=E((BF,M3)=>{M3.exports=T3()});var Y3=E((exports,module)=>{"use strict";var __awaiter=exports&&exports.__awaiter||function(e,A,t,a){function r(i){return i instanceof t?i:new t(function(s){s(i)})}return new(t||(t=Promise))(function(i,s){function n(l){try{d(a.next(l))}catch(p){s(p)}}function o(l){try{d(a.throw(l))}catch(p){s(p)}}function d(l){l.done?i(l.value):r(l.value).then(n,o)}d((a=a.apply(e,A||[])).next())})},__generator=exports&&exports.__generator||function(e,A){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},a,r,i,s;return s={next:n(0),throw:n(1),return:n(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function n(d){return function(l){return o([d,l])}}function o(d){if(a)throw new TypeError("Generator is already executing.");for(;t;)try{if(a=1,r&&(i=d[0]&2?r.return:d[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,d[1])).done)return i;switch(r=0,i&&(d=[d[0]&2,i.value]),d[0]){case 0:case 1:i=d;break;case 4:return t.label++,{value:d[1],done:!1};case 5:t.label++,r=d[1],d=[0];continue;case 7:d=t.ops.pop(),t.trys.pop();continue;default:if(i=t.trys,!(i=i.length>0&&i[i.length-1])&&(d[0]===6||d[0]===2)){t=0;continue}if(d[0]===3&&(!i||d[1]>i[0]&&d[1]<i[3])){t.label=d[1];break}if(d[0]===6&&t.label<i[1]){t.label=i[1],i=d;break}if(i&&t.label<i[2]){t.label=i[2],t.ops.push(d);break}i[2]&&t.ops.pop(),t.trys.pop();continue}d=A.call(e,t)}catch(l){d=[6,l],r=0}finally{a=i=0}if(d[0]&5)throw d[1];return{value:d[0]?d[1]:void 0,done:!0}}},__importDefault=exports&&exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});exports.getAllAudioBase64=exports.getAudioBase64=void 0;var assertInputTypes_1=__importDefault(i0()),axios_1=__importDefault(V3()),splitLongText_1=__importDefault(n0()),getAudioBase64=function(text,_a){var _b=_a===void 0?{}:_a,_c=_b.lang,lang=_c===void 0?"en":_c,_d=_b.slow,slow=_d===void 0?!1:_d,_e=_b.host,host=_e===void 0?"https://translate.google.com":_e,_f=_b.timeout,timeout=_f===void 0?1e4:_f;return __awaiter(void 0,void 0,void 0,function(){var res,result;return __generator(this,function(_g){switch(_g.label){case 0:if(assertInputTypes_1.default(text,lang,slow,host),typeof timeout!="number"||timeout<=0)throw new TypeError("timeout should be a positive number");if(text.length>200)throw new RangeError("text length ("+text.length+') should be less than 200 characters. Try "getAllAudioBase64(text, [option])" for long text.');return[4,axios_1.default({method:"post",baseURL:host,url:"/_/TranslateWebserverUi/data/batchexecute",timeout,data:"f.req="+encodeURIComponent(JSON.stringify([[["jQ1olc",JSON.stringify([text,lang,slow?!0:null,"null"]),null,"generic"]]]))})];case 1:res=_g.sent();try{result=eval(res.data.slice(5))[0][2]}catch(e){throw new Error(`parse response failed: `+res.data)}if(!result)throw new Error('lang "'+lang+'" might not exist');try{result=eval(result)[0]}catch(e){throw new Error(`parse response failed: -`+res.data)}return[2,result]}})})};exports.getAudioBase64=getAudioBase64;var getAllAudioBase64=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n,d=t.splitPunct,l=d===void 0?"":d,p=t.timeout,g=p===void 0?1e4:p;return __awaiter(void 0,void 0,void 0,function(){var c,u,Q,m,C,B;return __generator(this,function(f){switch(f.label){case 0:if(assertInputTypes_1.default(e,r,s,o),typeof l!="string")throw new TypeError("splitPunct should be a string");if(typeof g!="number"||g<=0)throw new TypeError("timeout should be a positive number");return c=splitLongText_1.default(e,{splitPunct:l}),[4,Promise.all(c.map(function(h){return exports.getAudioBase64(h,{lang:r,slow:s,host:o,timeout:g})}))];case 1:for(u=f.sent(),Q=[],m=0;m<c.length;m++)C=c[m],B=u[m],Q.push({shortText:C,base64:B});return[2,Q]}})})};exports.getAllAudioBase64=getAllAudioBase64});var X3=E(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.getAllAudioBase64=nt.getAudioBase64=nt.getAllAudioUrls=nt.getAudioUrl=void 0;var j3=C9();Object.defineProperty(nt,"getAudioUrl",{enumerable:!0,get:function(){return j3.getAudioUrl}});Object.defineProperty(nt,"getAllAudioUrls",{enumerable:!0,get:function(){return j3.getAllAudioUrls}});var Z3=W3();Object.defineProperty(nt,"getAudioBase64",{enumerable:!0,get:function(){return Z3.getAudioBase64}});Object.defineProperty(nt,"getAllAudioBase64",{enumerable:!0,get:function(){return Z3.getAllAudioBase64}})});var $3=E(tA=>{"use strict";var vN=tA&&tA.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),RN=tA&&tA.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),z3=tA&&tA.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&vN(A,e,t);return RN(A,e),A};Object.defineProperty(tA,"__esModule",{value:!0});tA.req=tA.json=tA.toBuffer=void 0;var NN=z3(require("http")),bN=z3(require("https"));async function K3(e){let A=0,t=[];for await(let a of e)A+=a.length,t.push(a);return Buffer.concat(t,A)}tA.toBuffer=K3;async function SN(e){let t=(await K3(e)).toString("utf8");try{return JSON.parse(t)}catch(a){let r=a;throw r.message+=` (input: ${t})`,r}}tA.json=SN;function FN(e,A={}){let a=((typeof e=="string"?e:e.href).startsWith("https:")?bN:NN).request(e,A),r=new Promise((i,s)=>{a.once("response",i).once("error",s).end()});return a.then=r.then.bind(r),a}tA.req=FN});var aQ=E(QA=>{"use strict";var AQ=QA&&QA.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),kN=QA&&QA.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),tQ=QA&&QA.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&AQ(A,e,t);return kN(A,e),A},LN=QA&&QA.__exportStar||function(e,A){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(A,t)&&AQ(A,e,t)};Object.defineProperty(QA,"__esModule",{value:!0});QA.Agent=void 0;var UN=tQ(require("net")),eQ=tQ(require("http")),TN=require("https");LN($3(),QA);var ot=Symbol("AgentBaseInternalState"),e2=class extends eQ.Agent{constructor(A){super(A),this[ot]={}}isSecureEndpoint(A){if(A){if(typeof A.secureEndpoint=="boolean")return A.secureEndpoint;if(typeof A.protocol=="string")return A.protocol==="https:"}let{stack:t}=new Error;return typeof t!="string"?!1:t.split(` -`).some(a=>a.indexOf("(https.js:")!==-1||a.indexOf("node:https:")!==-1)}incrementSockets(A){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[A]||(this.sockets[A]=[]);let t=new UN.Socket({writable:!1});return this.sockets[A].push(t),this.totalSocketCount++,t}decrementSockets(A,t){if(!this.sockets[A]||t===null)return;let a=this.sockets[A],r=a.indexOf(t);r!==-1&&(a.splice(r,1),this.totalSocketCount--,a.length===0&&delete this.sockets[A])}getName(A){return(typeof A.secureEndpoint=="boolean"?A.secureEndpoint:this.isSecureEndpoint(A))?TN.Agent.prototype.getName.call(this,A):super.getName(A)}createSocket(A,t,a){let r={...t,secureEndpoint:this.isSecureEndpoint(t)},i=this.getName(r),s=this.incrementSockets(i);Promise.resolve().then(()=>this.connect(A,r)).then(n=>{if(this.decrementSockets(i,s),n instanceof eQ.Agent)try{return n.addRequest(A,r)}catch(o){return a(o)}this[ot].currentSocket=n,super.createSocket(A,t,a)},n=>{this.decrementSockets(i,s),a(n)})}createConnection(){let A=this[ot].currentSocket;if(this[ot].currentSocket=void 0,!A)throw new Error("No socket was returned in the `connect()` function");return A}get defaultPort(){return this[ot].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(A){this[ot]&&(this[ot].defaultPort=A)}get protocol(){return this[ot].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(A){this[ot]&&(this[ot].protocol=A)}};QA.Agent=e2});var rQ=E(La=>{"use strict";var MN=La&&La.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(La,"__esModule",{value:!0});La.parseProxyResponse=void 0;var VN=MN(En()),fn=(0,VN.default)("https-proxy-agent:parse-proxy-response");function YN(e){return new Promise((A,t)=>{let a=0,r=[];function i(){let l=e.read();l?d(l):e.once("readable",i)}function s(){e.removeListener("end",n),e.removeListener("error",o),e.removeListener("readable",i)}function n(){s(),fn("onend"),t(new Error("Proxy connection ended before receiving CONNECT response"))}function o(l){s(),fn("onerror %o",l),t(l)}function d(l){r.push(l),a+=l.length;let p=Buffer.concat(r,a),g=p.indexOf(`\r -\r -`);if(g===-1){fn("have not received end of HTTP headers yet..."),i();return}let c=p.slice(0,g).toString("ascii").split(`\r -`),u=c.shift();if(!u)return e.destroy(),t(new Error("No header received from proxy CONNECT response"));let Q=u.split(" "),m=+Q[1],C=Q.slice(2).join(" "),B={};for(let f of c){if(!f)continue;let h=f.indexOf(":");if(h===-1)return e.destroy(),t(new Error(`Invalid header from proxy CONNECT response: "${f}"`));let w=f.slice(0,h).toLowerCase(),v=f.slice(h+1).trimStart(),S=B[w];typeof S=="string"?B[w]=[S,v]:Array.isArray(S)?S.push(v):B[w]=v}fn("got proxy server response: %o %o",u,B),s(),A({connect:{statusCode:m,statusText:C,headers:B},buffered:p})}e.on("error",o),e.on("end",n),i()})}La.parseProxyResponse=YN});var pQ=E(LA=>{"use strict";var JN=LA&&LA.__createBinding||(Object.create?function(e,A,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(A,t);(!r||("get"in r?!A.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,a,r)}:function(e,A,t,a){a===void 0&&(a=t),e[a]=A[t]}),GN=LA&&LA.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),oQ=LA&&LA.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&JN(A,e,t);return GN(A,e),A},dQ=LA&&LA.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(LA,"__esModule",{value:!0});LA.HttpsProxyAgent=void 0;var wn=oQ(require("net")),iQ=oQ(require("tls")),xN=dQ(require("assert")),_N=dQ(En()),qN=aQ(),HN=require("url"),ON=rQ(),Pr=(0,_N.default)("https-proxy-agent"),sQ=e=>e.servername===void 0&&e.host&&!wn.isIP(e.host)?{...e,servername:e.host}:e,yn=class extends qN.Agent{constructor(A,t){super(t),this.options={path:void 0},this.proxy=typeof A=="string"?new HN.URL(A):A,this.proxyHeaders=t?.headers??{},Pr("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let a=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),r=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...t?nQ(t,"headers"):null,host:a,port:r}}async connect(A,t){let{proxy:a}=this;if(!t.host)throw new TypeError('No "host" provided');let r;a.protocol==="https:"?(Pr("Creating `tls.Socket`: %o",this.connectOpts),r=iQ.connect(sQ(this.connectOpts))):(Pr("Creating `net.Socket`: %o",this.connectOpts),r=wn.connect(this.connectOpts));let i=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},s=wn.isIPv6(t.host)?`[${t.host}]`:t.host,n=`CONNECT ${s}:${t.port} HTTP/1.1\r -`;if(a.username||a.password){let g=`${decodeURIComponent(a.username)}:${decodeURIComponent(a.password)}`;i["Proxy-Authorization"]=`Basic ${Buffer.from(g).toString("base64")}`}i.Host=`${s}:${t.port}`,i["Proxy-Connection"]||(i["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let g of Object.keys(i))n+=`${g}: ${i[g]}\r -`;let o=(0,ON.parseProxyResponse)(r);r.write(`${n}\r -`);let{connect:d,buffered:l}=await o;if(A.emit("proxyConnect",d),this.emit("proxyConnect",d,A),d.statusCode===200)return A.once("socket",PN),t.secureEndpoint?(Pr("Upgrading socket connection to TLS"),iQ.connect({...nQ(sQ(t),"host","path","port"),socket:r})):r;r.destroy();let p=new wn.Socket({writable:!1});return p.readable=!0,A.once("socket",g=>{Pr("Replaying proxy buffer for failed request"),(0,xN.default)(g.listenerCount("data")>0),g.push(l),g.push(null)}),p}};yn.protocols=["http","https"];LA.HttpsProxyAgent=yn;function PN(e){e.resume()}function nQ(e,...A){let t={},a;for(a in e)A.includes(a)||(t[a]=e[a]);return t}});var zN={};FQ(zN,{default:()=>DQ});module.exports=kQ(zN);var kn=je(require("react")),Z=require("@raycast/api"),i2=je(uo());var vn=require("@raycast/api"),a2=je(uo()),v1=je(require("react"));var g0=je(require("querystring")),Yr=je(d0());var st={auto:"Auto-Detect",ab:"Abkhaz",ace:"Acehnese",ach:"Acholi",aa:"Afar",af:"Afrikaans",sq:"Albanian",alz:"Alur",am:"Amharic",ar:"Arabic",hy:"Armenian",as:"Assamese",av:"Avar",awa:"Awadhi",ay:"Aymara",az:"Azerbaijani",ban:"Balinese",bal:"Baluchi",bm:"Bambara",bci:"Baoul\xE9",ba:"Bashkir",eu:"Basque",btx:"Batak Karo",bts:"Batak Simalungun",bbc:"Batak Toba",be:"Belarusian",bem:"Bemba",bn:"Bengali",bew:"Betawi",bho:"Bhojpuri",bik:"Bikol",bs:"Bosnian",br:"Breton",bg:"Bulgarian",bua:"Buryat",yue:"Cantonese",ca:"Catalan",ceb:"Cebuano",ch:"Chamorro",ce:"Chechen",ny:"Chichewa","zh-CN":"Chinese (Simplified)","zh-TW":"Chinese (Traditional)",chk:"Chuukese",cv:"Chuvash",co:"Corsican",crh:"Crimean Tatar (Cyrillic)","crh-Latn":"Crimean Tatar (Latin)",hr:"Croatian",cs:"Czech",da:"Danish","fa-AF":"Dari",dv:"Dhivehi",din:"Dinka",doi:"Dogri",dov:"Dombe",nl:"Dutch",dyu:"Dyula",dz:"Dzongkha",en:"English",eo:"Esperanto",et:"Estonian",ee:"Ewe",fo:"Faroese",fj:"Fijian",tl:"Filipino",fi:"Finnish",fon:"Fon",fr:"French","fr-CA":"French (Canada)",fy:"Frisian",fur:"Friulian",ff:"Fulani",gaa:"Ga",gl:"Galician",ka:"Georgian",de:"German",el:"Greek",gn:"Guarani",gu:"Gujarati",ht:"Haitian Creole",cnh:"Hakha Chin",ha:"Hausa",haw:"Hawaiian",iw:"Hebrew",hil:"Hiligaynon",hi:"Hindi",hmn:"Hmong",hu:"Hungarian",hrx:"Hunsrik",iba:"Iban",is:"Icelandic",ig:"Igbo",ilo:"Ilocano",id:"Indonesian","iu-Latn":"Inuktut (Latin)",iu:"Inuktut (Syllabics)",ga:"Irish",it:"Italian",jam:"Jamaican Patois",ja:"Japanese",jv:"Javanese",kac:"Jingpo",kl:"Kalaallisut",kn:"Kannada",kr:"Kanuri",pam:"Kapampangan",kk:"Kazakh",kha:"Khasi",km:"Khmer",cgg:"Kiga",kg:"Kikongo",rw:"Kinyarwanda",ktu:"Kituba",trp:"Kokborok",kv:"Komi",gom:"Konkani",ko:"Korean",kri:"Krio",ku:"Kurdish (Kurmanji)",ckb:"Kurdish (Sorani)",ky:"Kyrgyz",lo:"Lao",ltg:"Latgalian",la:"Latin",lv:"Latvian",lij:"Ligurian",li:"Limburgish",ln:"Lingala",lt:"Lithuanian",lmo:"Lombard",lg:"Luganda",luo:"Luo",lb:"Luxembourgish",mk:"Macedonian",mad:"Madurese",mai:"Maithili",mak:"Makassar",mg:"Malagasy",ms:"Malay","ms-Arab":"Malay (Jawi)",ml:"Malayalam",mt:"Maltese",mam:"Mam",gv:"Manx",mi:"Maori",mr:"Marathi",mh:"Marshallese",mwr:"Marwadi",mfe:"Mauritian Creole",chm:"Meadow Mari","mni-Mtei":"Meiteilon (Manipuri)",min:"Minang",lus:"Mizo",mn:"Mongolian",my:"Myanmar (Burmese)","bm-Nkoo":"NKo",nhe:"Nahuatl (Eastern Huasteca)","ndc-ZW":"Ndau",nr:"Ndebele (South)",new:"Nepalbhasa (Newari)",ne:"Nepali",no:"Norwegian",nus:"Nuer",oc:"Occitan",or:"Odia (Oriya)",om:"Oromo",os:"Ossetian",pag:"Pangasinan",pap:"Papiamento",ps:"Pashto",fa:"Persian",pl:"Polish",pt:"Portuguese (Brazil)","pt-PT":"Portuguese (Portugal)",pa:"Punjabi (Gurmukhi)","pa-Arab":"Punjabi (Shahmukhi)",qu:"Quechua",kek:"Q\u02BCeqchi\u02BC",rom:"Romani",ro:"Romanian",rn:"Rundi",ru:"Russian",se:"Sami (North)",sm:"Samoan",sg:"Sango",sa:"Sanskrit","sat-Latn":"Santali (Latin)",sat:"Santali (Ol Chiki)",gd:"Scots Gaelic",nso:"Sepedi",sr:"Serbian",st:"Sesotho",crs:"Seychellois Creole",shn:"Shan",sn:"Shona",scn:"Sicilian",szl:"Silesian",sd:"Sindhi",si:"Sinhala",sk:"Slovak",sl:"Slovenian",so:"Somali",es:"Spanish",su:"Sundanese",sus:"Susu",sw:"Swahili",ss:"Swati",sv:"Swedish",ty:"Tahitian",tg:"Tajik","ber-Latn":"Tamazight",ber:"Tamazight (Tifinagh)",ta:"Tamil",tt:"Tatar",te:"Telugu",tet:"Tetum",th:"Thai",bo:"Tibetan",ti:"Tigrinya",tiv:"Tiv",tpi:"Tok Pisin",to:"Tongan",lua:"Tshiluba",ts:"Tsonga",tn:"Tswana",tcy:"Tulu",tum:"Tumbuka",tr:"Turkish",tk:"Turkmen",tyv:"Tuvan",ak:"Twi",udm:"Udmurt",uk:"Ukrainian",ur:"Urdu",ug:"Uyghur",uz:"Uzbek",ve:"Venda",vec:"Venetian",vi:"Vietnamese",war:"Waray",cy:"Welsh",wo:"Wolof",xh:"Xhosa",sah:"Yakut",yi:"Yiddish",yo:"Yoruba",yua:"Yucatec Maya",zap:"Zapotec",zu:"Zulu"};function An(e){return e?e in st||(e=e.toLowerCase(),e in st)?e:Object.keys(st).filter(t=>typeof st[t]!="string"?!1:st[t].toLowerCase()===e)[0]||void 0:void 0}function p9(e){return!!An(e)}var g9=je(d0());function Yv(e){let A;if(p0!==null)A=p0;else{A=tn("T");let o=tn("K");A=[A(),A()],A[1]=o(),A=(p0=l0[A.join(o())]||"")||""}let t=tn("t"),a=tn("k");t=[t(),t()],t[1]=a(),a="&"+t.join("")+"=",t=A.split("."),A=Number(t[0])||0;for(var r=[],i=0,s=0;s<e.length;s++){let o=e.charCodeAt(s);128>o?r[i++]=o:(2048>o?r[i++]=o>>6|192:((o&64512)==55296&&s+1<e.length&&(e.charCodeAt(s+1)&64512)==56320?(o=65536+((o&1023)<<10)+(e.charCodeAt(++s)&1023),r[i++]=o>>18|240,r[i++]=o>>12&63|128):r[i++]=o>>12|224,r[i++]=o>>6&63|128),r[i++]=o&63|128)}let n=Number(A);for(let o=0;o<r.length;o++)e+=r[o],n=l9(n,"+-a^+6");return n=l9(n,"+-3^+b+-f"),n^=Number(t[1])||0,0>n&&(n=(n&2147483647)+2147483648),n%=1e6,a+(e.toString()+"."+(n^A))}var p0=null,tn=function(e){return function(){return e}},l9=function(e,A){for(let t=0;t<A.length-2;t+=3){let a=A.charAt(t+2),r=a>="a"?a.charCodeAt(0)-87:Number(a);r=A.charAt(t+1)=="+"?e>>>r:e<<r,e=A.charAt(t)=="+"?e+r&4294967295:e^r}return e},c9=new Map,l0={TKK:c9.get("TKK")||"0"};async function Jv(){let e=Math.floor(Date.now()/36e5);if(Number(l0.TKK.split(".")[0])!==e){let a=(await(await(0,g9.request)("https://translate.google.com")).body.text()).match(/tkk:'\d+.\d+'/g);if(a&&a.length>0){let r=a[0].split(":")[1].replace(/'/g,"");l0.TKK=r,c9.set("TKK",r)}}}async function u9(e){try{await Jv();let A=Yv(e);return A=A.replace("&tk=",""),{name:"tk",value:A}}catch(A){return A}}async function E9(e,A){typeof A!="object"&&(A={}),e=String(e);let t=null;if([A.from,A.to].forEach(g=>{g&&!p9(g)&&(t=new Error,t.message=`The language '${g}' is not supported.`)}),t)throw t;Object.prototype.hasOwnProperty.call(A,"from")||(A.from="auto"),Object.prototype.hasOwnProperty.call(A,"to")||(A.to="en"),A.raw=!!A.raw,A.from=An(A.from),A.to=An(A.to);let a=await u9(e),r="https://translate.google.com/translate_a/single",i={client:"gtx",sl:A.from,tl:A.to,hl:A.to,dt:["at","bd","ex","ld","md","qca","rw","rm","ss","t"],ie:"UTF-8",oe:"UTF-8",otf:1,ssel:0,tsel:0,kc:7,q:e,[a.name]:a.value},s=`${r}?${g0.default.stringify(i)}`,n,o=s;s.length>2048?(delete i.q,o=`${r}?${g0.default.stringify(i)}`,n={method:"POST",body:new URLSearchParams({q:e}).toString(),headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"}},A.proxy&&(n.dispatcher=new Yr.ProxyAgent(A.proxy))):A.proxy&&(n={dispatcher:new Yr.ProxyAgent(A.proxy)});let l=await(await(0,Yr.request)(o,n)).body.json(),p={text:"",from:{language:{didYouMean:!1,iso:""},text:{autoCorrected:!1,value:"",didYouMean:!1}},raw:""};if(A.raw&&(p.raw=l),l[0].forEach(g=>{g[0]&&(p.text+=g[0])}),l[2]===l[8][0][0]?p.from.language.iso=l[2]:(p.from.language.didYouMean=!0,p.from.language.iso=l[8][0][0]),l[7]&&l[7][0]){let g=l[7][0];g=g.replace(/<b><i>/g,"["),g=g.replace(/<\/i><\/b>/g,"]"),p.from.text.value=g,l[7][5]===!0?p.from.text.autoCorrected=!0:p.from.text.didYouMean=!0}return p}var lQ=je(X3()),gQ=je(require("os")),cQ=je(require("path")),uQ=je(require("https")),EQ=je(require("child_process")),Ta=require("fs"),QQ=je(pQ()),Wr="auto",Dn=class extends Error{},WN=e=>e?.[0]?.[1]?.[2];async function Ua(e,A){try{if(!e)return{originalText:e,translatedText:"",pronunciationText:"",langFrom:A.langFrom,langTo:A.langTo[0]};let t=await E9(e,{from:A.langFrom,to:A.langTo[0],raw:!0,proxy:A.proxy});return{originalText:e,translatedText:t.text,pronunciationText:WN(t?.raw),langFrom:t?.from?.language?.iso,langTo:A.langTo[0]}}catch(t){if(t instanceof Error){if(t.name==="TooManyRequestsError"){let r=new Dn;throw r.name="Too many requests",r.message="please try again later",r}let a=new Dn;throw a.name=t.name,a.message=t.message,a}throw t}}async function CQ(e,A){if(!e)return[];if(A.langFrom===Wr){let t=await Ua(e,{langFrom:A.langFrom,langTo:A.langTo,proxy:A.proxy});if(t?.langFrom){let a=await Ua(t.translatedText,{langFrom:A.langTo[0],langTo:[t.langFrom],proxy:A.proxy});return[t,a]}return[]}else return await Promise.all([Ua(e,{langFrom:A.langFrom,langTo:A.langTo,proxy:A.proxy}),Ua(e,{langFrom:A.langTo[0],langTo:[A.langFrom],proxy:A.proxy})])}async function A2(e,A,t){let a=lQ.getAudioUrl(e,{lang:A,slow:!1,host:"https://translate.google.com"}),r;if(t)try{r=new QQ.HttpsProxyAgent(t)}catch(s){console.error(`Error creating proxy agent for ${t}:`,s),r=void 0}uQ.get(a,{agent:r},s=>{let n=[];s.on("data",o=>{n.push(o)}),s.on("end",()=>{let o=Buffer.concat(n),d=cQ.join(gQ.tmpdir(),"translation.mp3");(0,Ta.writeFileSync)(d,o),EQ.spawn("afplay",[d]).on("exit",p=>{p!==0&&console.error(`Error playing audio: afplay exited with code ${p}`),(0,Ta.existsSync)(d)&&(0,Ta.unlinkSync)(d)})}).on("error",o=>{console.error("Error downloading audio:",o)})})}var t2=e=>({langFrom:e.langFrom,langTo:Array.isArray(e.langTo)?e.langTo:[e.langTo]}),jr=()=>v1.default.useMemo(()=>(0,vn.getPreferenceValues)(),[]),mQ=()=>{let e=jr(),[A,t]=v1.default.useState(""),a=v1.default.useRef(A);return a.current=A,v1.default.useEffect(()=>{e.autoInput&&(0,vn.getSelectedText)().then(r=>{a.current||t(r??"")}).catch(r=>{console.log("Error:",r)})},[]),[A,t]},Ma=()=>{let e=jr(),[A,t]=(0,a2.useCachedState)("selectedLanguageSet",t2({langFrom:e.lang1,langTo:e.lang2}));return[t2(A),t]},Rn=()=>{let e=jr();return{langFrom:e.lang1,langTo:[e.lang2]}},BQ=(e,A)=>{let[t,a]=v1.default.useState(e);return v1.default.useEffect(()=>{let r=setTimeout(()=>{a(e)},A);return()=>{clearTimeout(r)}},[e,A]),t},Nn=()=>{let[e,A]=(0,a2.useCachedState)("languages",[]);return[e.map(t2),A]};var Qk={code:"en",name:st.en},Ck={code:"auto",name:st.auto},Va=Object.keys(st).map(e=>({code:e,name:st[e]})),Zt=Va.reduce((e,A)=>({...e,[A.code]:A}),{}),mk=Va.reduce((e,A)=>({...e,[A.name]:A}),{});var _=require("@raycast/api");var hQ=je(require("react")),be=require("@raycast/api");var CA=require("react/jsx-runtime"),IQ=({onAddLanguage:e})=>{let[A,t]=hQ.default.useState(["en"]);return(0,CA.jsxs)(be.Form,{actions:(0,CA.jsx)(be.ActionPanel,{children:(0,CA.jsx)(be.Action.SubmitForm,{title:"Add language set",onSubmit:a=>{let r=A.filter(i=>!!i);if(!r.length){(0,be.showToast)({style:be.Toast.Style.Failure,title:"No target languages",message:"Please select at least one target language"});return}e({langFrom:a.langFrom,langTo:r})}})}),children:[(0,CA.jsx)(be.Form.Dropdown,{id:"langFrom",title:"Source Language",children:Va.map(a=>(0,CA.jsx)(be.Form.Dropdown.Item,{value:a.code,title:a.name},a.code))}),A.map((a,r)=>{let i=A[r];return(0,CA.jsxs)(be.Form.Dropdown,{id:`langTo.${r}`,title:`Target Language ${r+1}`,value:i,onChange:s=>{let n=[...A];n[r]=s,t(n)},children:[!i&&(0,CA.jsx)(be.Form.Dropdown.Item,{value:"",title:""}),Va.filter(s=>s.code!==Wr).map(s=>(0,CA.jsx)(be.Form.Dropdown.Item,{value:s.code,title:s.name},s.code))]},r)}),(!!A[A.length-1]||A.length===0)&&(0,CA.jsxs)(be.Form.Dropdown,{id:`langTo.${A.length}`,title:`Target Language ${A.length}`,value:"",onChange:a=>{let r=[...A];r.push(a),t(r)},children:[(0,CA.jsx)(be.Form.Dropdown.Item,{value:"",title:""}),Va.filter(a=>a.code!==Wr).map(a=>(0,CA.jsx)(be.Form.Dropdown.Item,{value:a.code,title:a.name},a.code))]},A.length)]})};var Ya=(e,A)=>e.langFrom===A.langFrom&&e.langTo.join()===A.langTo.join(),r2=e=>({langFrom:Zt[e.langFrom],langTo:e.langTo.map(A=>Zt[A])}),R1=e=>{let{langFrom:A,langTo:t}=r2(e),r=(Array.isArray(t)?t:[t]).map(i=>i.name);return`${A.name} -> ${r.join(", ")}`};var fe=require("react/jsx-runtime");function fQ({languageSet:e,onSelect:A,onDelete:t,selected:a}){let{langFrom:r,langTo:i}=r2(e),s=Array.isArray(i)?i:[i],n=s.map(o=>o.name).join(", ");return(0,fe.jsx)(_.List.Item,{title:`${r.name} ->`,subtitle:` ${n}`,keywords:[r.name,r.code,...s.flatMap(o=>[o.name,o.code])],icon:a?{tintColor:_.Color.Green,source:_.Icon.Checkmark}:void 0,actions:(0,fe.jsxs)(_.ActionPanel,{children:[(0,fe.jsx)(_.Action,{title:"Select",onAction:A,icon:{tintColor:_.Color.Green,source:_.Icon.Checkmark}}),t&&(0,fe.jsx)(_.Action,{style:_.Action.Style.Destructive,title:"Delete",onAction:t,icon:_.Icon.Trash})]})})}var jN=({languageSet:e,onSelect:A})=>(0,fe.jsx)(_.List.Item,{icon:_.Icon.SaveDocument,title:"Save current set",subtitle:R1(e),actions:(0,fe.jsx)(_.ActionPanel,{children:(0,fe.jsx)(_.Action,{title:"Save current set",onAction:A})})}),wQ=()=>{let e=(0,_.useNavigation)(),A=Rn(),[t,a]=Ma(),[r,i]=Nn();return(0,fe.jsxs)(_.List,{actions:(0,fe.jsx)(_.ActionPanel,{children:(0,fe.jsx)(_.Action,{title:"Remove all",onAction:()=>i([])})}),children:[(0,fe.jsx)(_.List.Item,{icon:{source:_.Icon.Plus},title:"Add new language set...",actions:(0,fe.jsx)(_.ActionPanel,{children:(0,fe.jsx)(_.Action.Push,{title:"Add new language set...",target:(0,fe.jsx)(IQ,{onAddLanguage:s=>{i([...r,s]),e.pop(),(0,_.showToast)(_.Toast.Style.Success,"Language set was saved!",R1(s))}})})})}),!r.some(s=>Ya(s,t))&&!Ya(A,t)&&(0,fe.jsx)(jN,{languageSet:t,onSelect:()=>i([...r,t])}),(0,fe.jsx)(fQ,{languageSet:A,onSelect:()=>{a(A),e.pop()},selected:Ya(t,A)}),r.map(s=>(0,fe.jsx)(fQ,{selected:Ya(t,s),languageSet:s,onSelect:()=>{a(s),e.pop()},onDelete:()=>{i(r.filter(n=>!Ya(n,s))),(0,_.showToast)(_.Toast.Style.Success,"Language set was deleted!",R1(s))}},`${s.langFrom} ${s.langTo}`))]})};var vt=require("@raycast/api");var N1=require("react/jsx-runtime");function yQ(){let e=(0,vt.useNavigation)(),A=Rn(),[t,a]=Ma(),[r]=Nn();return(0,N1.jsxs)(vt.List.Dropdown,{value:JSON.stringify(t),tooltip:"Language Set",onChange:i=>{if(i==="manage")e.push((0,N1.jsx)(wQ,{}));else{let s=JSON.parse(i);a(s)}},children:[(0,N1.jsx)(vt.List.Dropdown.Item,{icon:vt.Icon.Pencil,title:"Manage language sets...",value:"manage"}),(0,N1.jsx)(vt.List.Dropdown.Item,{title:R1(A),value:JSON.stringify(A)}),r.map(i=>(0,N1.jsx)(vt.List.Dropdown.Item,{title:R1(i),value:JSON.stringify(i)},`${i.langFrom} ${i.langTo.toString()}`))]})}var Rt=require("@raycast/api"),_A=require("react/jsx-runtime"),bn=({defaultActionsPrefix:e,value:A})=>{let t=(0,Rt.getPreferenceValues)().defaultAction,a=(0,_A.jsx)(Rt.Action.Paste,{title:e?`Paste ${e}`:"Paste",content:A}),r=(0,_A.jsx)(Rt.Action.CopyToClipboard,{title:e?`Copy ${e}`:"Copy",content:A});return t==="paste"?(0,_A.jsxs)(_A.Fragment,{children:[a,r]}):(0,_A.jsxs)(_A.Fragment,{children:[r,a]})},Sn=({onAction:e})=>(0,_A.jsx)(Rt.Action,{title:"Toggle Full Text",icon:Rt.Icon.Text,onAction:e,shortcut:{modifiers:["cmd"],key:"f"}}),Fn=({translationText:e,translation:A})=>(0,_A.jsx)(Rt.Action.OpenInBrowser,{title:"Open in Google Translate",shortcut:{modifiers:["opt"],key:"enter"},url:"https://translate.google.com/?sl="+A.langFrom+"&tl="+A.langTo+"&text="+encodeURIComponent(e)+"&op=translate"});var q=require("react/jsx-runtime"),ZN=({toggleShowingDetail:e,value:A,selectedLanguageSet:t})=>{let{data:a,isLoading:r}=(0,i2.usePromise)(CQ,[A,t],{onError(i){(0,Z.showToast)({style:Z.Toast.Style.Failure,title:"Could not translate",message:i.toString()})}});return r?(0,q.jsx)(Z.List.EmptyView,{icon:Z.Icon.Hourglass,title:"Translating..."}):(0,q.jsx)(q.Fragment,{children:a?.map((i,s)=>{let n=Zt[i.langFrom],o=Zt[i.langTo],d=`${n.name} -> ${o.name}`,l=`${n?.name} -> ${o?.name}`;return(0,q.jsxs)(kn.default.Fragment,{children:[(0,q.jsx)(Z.List.Item,{title:i.translatedText,accessories:[{text:d,tooltip:l}],detail:(0,q.jsx)(Z.List.Item.Detail,{markdown:i.translatedText}),actions:(0,q.jsx)(Z.ActionPanel,{children:(0,q.jsxs)(Z.ActionPanel.Section,{children:[(0,q.jsx)(bn,{defaultActionsPrefix:"Translation",value:i.translatedText}),(0,q.jsx)(Sn,{onAction:()=>e()}),(0,q.jsx)(Z.Action,{title:"Play Text-To-Speech",icon:Z.Icon.Play,shortcut:{modifiers:["cmd"],key:"t"},onAction:()=>A2(i.translatedText,i.langTo)}),(0,q.jsx)(Fn,{translationText:A,translation:i})]})})}),i.pronunciationText&&(0,q.jsx)(Z.List.Item,{title:i.pronunciationText,accessories:[{text:d,tooltip:l}],detail:(0,q.jsx)(Z.List.Item.Detail,{markdown:i.pronunciationText}),actions:(0,q.jsx)(Z.ActionPanel,{children:(0,q.jsxs)(Z.ActionPanel.Section,{children:[(0,q.jsx)(bn,{value:i.pronunciationText}),(0,q.jsx)(Sn,{onAction:()=>e()}),(0,q.jsx)(Fn,{translationText:A,translation:i})]})})})]},s)})})},XN=({toggleShowingDetail:e,value:A,selectedLanguageSet:t})=>{let{data:a,isLoading:r}=(0,i2.usePromise)(Ua,[A,t],{onError(p){(0,Z.showToast)({style:Z.Toast.Style.Failure,title:"Could not translate",message:p.toString()})}}),i=a?.langFrom??t.langFrom,s=a?.langTo??t.langTo[0],n=Zt[i],o=Zt[s],d=`${n.name} -> ${o.name}`,l=`${n?.name} -> ${o?.name}`;return(0,q.jsx)(Z.List.Item,{title:a?.translatedText??"",subtitle:r?"Translating...":void 0,accessories:[{text:d,tooltip:l}],detail:(0,q.jsx)(Z.List.Item.Detail,{markdown:a?.translatedText??""}),actions:(0,q.jsx)(Z.ActionPanel,{children:(0,q.jsxs)(Z.ActionPanel.Section,{children:[(0,q.jsx)(bn,{defaultActionsPrefix:"Translation",value:a?.translatedText??""}),(0,q.jsx)(Sn,{onAction:()=>e()}),a&&(0,q.jsx)(Z.Action,{title:"Play Text-To-Speech",icon:Z.Icon.Play,shortcut:{modifiers:["cmd"],key:"t"},onAction:()=>A2(a.translatedText,s)}),a&&(0,q.jsx)(Fn,{translationText:A,translation:a})]})})})};function DQ(){let[e]=Ma(),{proxy:A}=jr(),[t,a]=(0,kn.useState)(!1),[r,i]=mQ(),s=BQ(r,500);return(0,q.jsx)(Z.List,{searchBarPlaceholder:"Enter text to translate",searchText:r,onSearchTextChange:i,isShowingDetail:t,searchBarAccessory:(0,q.jsx)(yQ,{}),children:e.langTo.length===1?(0,q.jsx)(ZN,{value:s,selectedLanguageSet:{langFrom:e.langFrom,langTo:e.langTo,proxy:A},toggleShowingDetail:()=>a(!t)}):e.langTo.map((n,o)=>(0,q.jsx)(XN,{value:s,selectedLanguageSet:{langFrom:e.langFrom,langTo:[n],proxy:A},toggleShowingDetail:()=>a(!t)},`${o} ${n}`))})} +`+res.data)}return[2,result]}})})};exports.getAudioBase64=getAudioBase64;var getAllAudioBase64=function(e,A){var t=A===void 0?{}:A,a=t.lang,r=a===void 0?"en":a,i=t.slow,s=i===void 0?!1:i,n=t.host,o=n===void 0?"https://translate.google.com":n,d=t.splitPunct,l=d===void 0?"":d,p=t.timeout,g=p===void 0?1e4:p;return __awaiter(void 0,void 0,void 0,function(){var c,u,Q,C,m,B;return __generator(this,function(w){switch(w.label){case 0:if(assertInputTypes_1.default(e,r,s,o),typeof l!="string")throw new TypeError("splitPunct should be a string");if(typeof g!="number"||g<=0)throw new TypeError("timeout should be a positive number");return c=splitLongText_1.default(e,{splitPunct:l}),[4,Promise.all(c.map(function(I){return exports.getAudioBase64(I,{lang:r,slow:s,host:o,timeout:g})}))];case 1:for(u=w.sent(),Q=[],C=0;C<c.length;C++)m=c[C],B=u[C],Q.push({shortText:m,base64:B});return[2,Q]}})})};exports.getAllAudioBase64=getAllAudioBase64});var x3=E(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.getAllAudioBase64=rt.getAudioBase64=rt.getAllAudioUrls=rt.getAudioUrl=void 0;var J3=nE();Object.defineProperty(rt,"getAudioUrl",{enumerable:!0,get:function(){return J3.getAudioUrl}});Object.defineProperty(rt,"getAllAudioUrls",{enumerable:!0,get:function(){return J3.getAllAudioUrls}});var G3=Y3();Object.defineProperty(rt,"getAudioBase64",{enumerable:!0,get:function(){return G3.getAudioBase64}});Object.defineProperty(rt,"getAllAudioBase64",{enumerable:!0,get:function(){return G3.getAllAudioBase64}})});var lN={};dQ(lN,{default:()=>aQ});module.exports=pQ(lN);var wn=aA(require("react")),$=require("@raycast/api"),j0=aA(ro());var Qn=require("@raycast/api"),W0=aA(ro()),f1=aA(require("react"));var a0=aA(require("querystring")),kr=aA(e0());var Zs={auto:"Automatic",af:"Afrikaans",sq:"Albanian",am:"Amharic",ar:"Arabic",hy:"Armenian",az:"Azerbaijani",eu:"Basque",be:"Belarusian",bn:"Bengali",bs:"Bosnian",bg:"Bulgarian",ca:"Catalan",ceb:"Cebuano",ny:"Chichewa","zh-cn":"Chinese Simplified","zh-tw":"Chinese Traditional",co:"Corsican",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch",en:"English",eo:"Esperanto",et:"Estonian",tl:"Filipino",fi:"Finnish",fr:"French",fy:"Frisian",gl:"Galician",ka:"Georgian",de:"German",el:"Greek",gu:"Gujarati",ht:"Haitian Creole",ha:"Hausa",haw:"Hawaiian",iw:"Hebrew",hi:"Hindi",hmn:"Hmong",hu:"Hungarian",is:"Icelandic",ig:"Igbo",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",jw:"Javanese",kn:"Kannada",kk:"Kazakh",km:"Khmer",ko:"Korean",ku:"Kurdish (Kurmanji)",ky:"Kyrgyz",lo:"Lao",la:"Latin",lv:"Latvian",lt:"Lithuanian",lb:"Luxembourgish",mk:"Macedonian",mg:"Malagasy",ms:"Malay",ml:"Malayalam",mt:"Maltese",mi:"Maori",mr:"Marathi",mn:"Mongolian",my:"Myanmar (Burmese)",ne:"Nepali",no:"Norwegian",ps:"Pashto",fa:"Persian",pl:"Polish",pt:"Portuguese",pa:"Punjabi",ro:"Romanian",ru:"Russian",sm:"Samoan",gd:"Scots Gaelic",sr:"Serbian",st:"Sesotho",sn:"Shona",sd:"Sindhi",si:"Sinhala",sk:"Slovak",sl:"Slovenian",so:"Somali",es:"Spanish",su:"Sundanese",sw:"Swahili",sv:"Swedish",tg:"Tajik",ta:"Tamil",te:"Telugu",th:"Thai",tr:"Turkish",uk:"Ukrainian",ur:"Urdu",uz:"Uzbek",vi:"Vietnamese",cy:"Welsh",xh:"Xhosa",yi:"Yiddish",yo:"Yoruba",zu:"Zulu"};function js(e){return e?(e=e.toLowerCase(),e in Zs?e:Object.keys(Zs).filter(t=>typeof Zs[t]!="string"?!1:Zs[t].toLowerCase()===e)[0]||void 0):void 0}function eE(e){return!!js(e)}var tE=aA(e0());function QR(e){let A;if(A0!==null)A=A0;else{A=Xs("T");let o=Xs("K");A=[A(),A()],A[1]=o(),A=(A0=t0[A.join(o())]||"")||""}let t=Xs("t"),a=Xs("k");t=[t(),t()],t[1]=a(),a="&"+t.join("")+"=",t=A.split("."),A=Number(t[0])||0;for(var r=[],i=0,s=0;s<e.length;s++){let o=e.charCodeAt(s);128>o?r[i++]=o:(2048>o?r[i++]=o>>6|192:((o&64512)==55296&&s+1<e.length&&(e.charCodeAt(s+1)&64512)==56320?(o=65536+((o&1023)<<10)+(e.charCodeAt(++s)&1023),r[i++]=o>>18|240,r[i++]=o>>12&63|128):r[i++]=o>>12|224,r[i++]=o>>6&63|128),r[i++]=o&63|128)}let n=Number(A);for(let o=0;o<r.length;o++)e+=r[o],n=AE(n,"+-a^+6");return n=AE(n,"+-3^+b+-f"),n^=Number(t[1])||0,0>n&&(n=(n&2147483647)+2147483648),n%=1e6,a+(e.toString()+"."+(n^A))}var A0=null,Xs=function(e){return function(){return e}},AE=function(e,A){for(let t=0;t<A.length-2;t+=3){let a=A.charAt(t+2),r=a>="a"?a.charCodeAt(0)-87:Number(a);r=A.charAt(t+1)=="+"?e>>>r:e<<r,e=A.charAt(t)=="+"?e+r&4294967295:e^r}return e},aE=new Map,t0={TKK:aE.get("TKK")||"0"};async function mR(){let e=Math.floor(Date.now()/36e5);if(Number(t0.TKK.split(".")[0])!==e){let a=(await(await(0,tE.request)("https://translate.google.com")).body.text()).match(/tkk:'\d+.\d+'/g);if(a&&a.length>0){let r=a[0].split(":")[1].replace(/'/g,"");t0.TKK=r,aE.set("TKK",r)}}}async function rE(e){try{await mR();let A=QR(e);return A=A.replace("&tk=",""),{name:"tk",value:A}}catch(A){return A}}async function iE(e,A){typeof A!="object"&&(A={}),e=String(e);let t=null;if([A.from,A.to].forEach(g=>{g&&!eE(g)&&(t=new Error,t.message=`The language '${g}' is not supported.`)}),t)throw t;Object.prototype.hasOwnProperty.call(A,"from")||(A.from="auto"),Object.prototype.hasOwnProperty.call(A,"to")||(A.to="en"),A.raw=!!A.raw,A.from=js(A.from),A.to=js(A.to);let a=await rE(e),r="https://translate.google.com/translate_a/single",i={client:"gtx",sl:A.from,tl:A.to,hl:A.to,dt:["at","bd","ex","ld","md","qca","rw","rm","ss","t"],ie:"UTF-8",oe:"UTF-8",otf:1,ssel:0,tsel:0,kc:7,q:e,[a.name]:a.value},s=`${r}?${a0.default.stringify(i)}`,n,o=s;s.length>2048?(delete i.q,o=`${r}?${a0.default.stringify(i)}`,n={method:"POST",body:new URLSearchParams({q:e}).toString(),headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"}},A.proxy&&(n.dispatcher=new kr.ProxyAgent(A.proxy))):A.proxy&&(n={dispatcher:new kr.ProxyAgent(A.proxy)});let l=await(await(0,kr.request)(o,n)).body.json(),p={text:"",from:{language:{didYouMean:!1,iso:""},text:{autoCorrected:!1,value:"",didYouMean:!1}},raw:""};if(A.raw&&(p.raw=l),l[0].forEach(g=>{g[0]&&(p.text+=g[0])}),l[2]===l[8][0][0]?p.from.language.iso=l[2]:(p.from.language.didYouMean=!0,p.from.language.iso=l[8][0][0]),l[7]&&l[7][0]){let g=l[7][0];g=g.replace(/<b><i>/g,"["),g=g.replace(/<\/i><\/b>/g,"]"),p.from.text.value=g,l[7][5]===!0?p.from.text.autoCorrected=!0:p.from.text.didYouMean=!0}return p}var _3=aA(x3()),q3=aA(require("os")),H3=aA(require("path")),O3=aA(require("https")),P3=aA(require("child_process")),ba=require("fs"),Gr="auto",En=class extends Error{},rN=e=>e?.[0]?.[1]?.[2];async function Sa(e,A){try{if(!e)return{originalText:e,translatedText:"",pronunciationText:"",langFrom:A.langFrom,langTo:A.langTo[0]};let t=await iE(e,{from:A.langFrom,to:A.langTo[0],raw:!0,proxy:A.proxy});return{originalText:e,translatedText:t.text,pronunciationText:rN(t?.raw),langFrom:t?.from?.language?.iso,langTo:A.langTo[0]}}catch(t){if(t instanceof Error){if(t.name==="TooManyRequestsError"){let r=new En;throw r.name="Too many requests",r.message="please try again later",r}let a=new En;throw a.name=t.name,a.message=t.message,a}throw t}}async function W3(e,A){if(!e)return[];if(A.langFrom===Gr){let t=await Sa(e,{langFrom:A.langFrom,langTo:A.langTo});if(t?.langFrom){let a=await Sa(t.translatedText,{langFrom:A.langTo[0],langTo:[t.langFrom]});return[t,a]}return[]}else return await Promise.all([Sa(e,{langFrom:A.langFrom,langTo:A.langTo}),Sa(e,{langFrom:A.langTo[0],langTo:[A.langFrom]})])}async function O0(e,A){let t=_3.getAudioUrl(e,{lang:A,slow:!1,host:"https://translate.google.com"});O3.get(t,a=>{let r=[];a.on("data",i=>{r.push(i)}),a.on("end",()=>{let i=Buffer.concat(r),s=H3.join(q3.tmpdir(),"translation.mp3");(0,ba.writeFileSync)(s,i),P3.spawn("afplay",[s]).on("exit",o=>{o!==0&&console.error("Error playing audio"),(0,ba.existsSync)(s)&&(0,ba.unlinkSync)(s)})})})}var P0=e=>({langFrom:e.langFrom,langTo:Array.isArray(e.langTo)?e.langTo:[e.langTo]}),xr=()=>f1.default.useMemo(()=>(0,Qn.getPreferenceValues)(),[]),Z3=()=>{let e=xr(),[A,t]=f1.default.useState(""),a=f1.default.useRef(A);return a.current=A,f1.default.useEffect(()=>{e.autoInput&&(0,Qn.getSelectedText)().then(r=>{a.current||t(r??"")}).catch(r=>{console.log("Error:",r)})},[]),[A,t]},Fa=()=>{let e=xr(),[A,t]=(0,W0.useCachedState)("selectedLanguageSet",P0({langFrom:e.lang1,langTo:e.lang2}));return[P0(A),t]},mn=()=>{let e=xr();return{langFrom:e.lang1,langTo:[e.lang2]}},j3=(e,A)=>{let[t,a]=f1.default.useState(e);return f1.default.useEffect(()=>{let r=setTimeout(()=>{a(e)},A);return()=>{clearTimeout(r)}},[e,A]),t},Cn=()=>{let[e,A]=(0,W0.useCachedState)("languages",[]);return[e.map(P0),A]};var X3={"Auto-detect":{code:"auto",name:"Auto-detect",flag:"\u{1F310}"},Afrikaans:{code:"af",name:"Afrikaans",flag:"\u{1F1FF}\u{1F1E6}"},Albanian:{code:"sq",name:"Albanian",flag:"\u{1F1E6}\u{1F1F1}"},Amharic:{code:"am",name:"Amharic"},Arabic:{code:"ar",name:"Arabic"},Armenian:{code:"hy",name:"Armenian",flag:"\u{1F1E6}\u{1F1F2}"},Azerbaijani:{code:"az",name:"Azerbaijani",flag:"\u{1F1E6}\u{1F1FF}"},Basque:{code:"eu",name:"Basque"},Belarusian:{code:"be",name:"Belarusian",flag:"\u{1F1E7}\u{1F1FE}"},Bengali:{code:"bn",name:"Bengali"},Bosnian:{code:"bs",name:"Bosnian",flag:"\u{1F1E7}\u{1F1E6}"},Bulgarian:{code:"bg",name:"Bulgarian",flag:"\u{1F1E7}\u{1F1EC}"},Catalan:{code:"ca",name:"Catalan"},Cebuano:{code:"ceb",name:"Cebuano"},"Chinese Simplified":{code:"zh-CN",name:"Chinese Simplified",flag:"\u{1F1E8}\u{1F1F3}"},Mandarin:{code:"zh-TW",name:"Chinese Traditional"},Corsican:{code:"co",name:"Corsican"},Croatian:{code:"hr",name:"Croatian",flag:"\u{1F1ED}\u{1F1F7}"},Czech:{code:"cs",name:"Czech",flag:"\u{1F1E8}\u{1F1FF}"},Danish:{code:"da",name:"Danish",flag:"\u{1F1E9}\u{1F1F0}"},Dutch:{code:"nl",name:"Dutch",flag:"\u{1F1F3}\u{1F1F1}"},English:{code:"en",name:"English",flag:"\u{1F1EC}\u{1F1E7}"},Esperanto:{code:"eo",name:"Esperanto"},Estonian:{code:"et",name:"Estonian",flag:"\u{1F1EA}\u{1F1EA}"},Finnish:{code:"fi",name:"Finnish",flag:"\u{1F1EB}\u{1F1EE}"},French:{code:"fr",name:"French",flag:"\u{1F1EB}\u{1F1F7}"},Frisian:{code:"fy",name:"Frisian"},Galician:{code:"gl",name:"Galician"},Georgian:{code:"ka",name:"Georgian",flag:"\u{1F1EC}\u{1F1EA}"},German:{code:"de",name:"German",flag:"\u{1F1E9}\u{1F1EA}"},Greek:{code:"el",name:"Greek",flag:"\u{1F1EC}\u{1F1F7}"},Gujarati:{code:"gu",name:"Gujarati"},"Haitian Creole":{code:"ht",name:"Haitian Creole",flag:"\u{1F1ED}\u{1F1F9}"},Hausa:{code:"ha",name:"Hausa"},Hawaiian:{code:"haw",name:"Hawaiian",flag:"\u{1F33A}"},Hebrew:{code:"iw",name:"Hebrew",flag:"\u{1F1EE}\u{1F1F1}"},Hindi:{code:"hi",name:"Hindi",flag:"\u{1F1EE}\u{1F1F3}"},Hmong:{code:"hmn",name:"Hmong"},Hungarian:{code:"hu",name:"Hungarian",flag:"\u{1F1ED}\u{1F1FA}"},Icelandic:{code:"is",name:"Icelandic",flag:"\u{1F1EE}\u{1F1F8}"},Igbo:{code:"ig",name:"Igbo"},Indonesian:{code:"id",name:"Indonesian",flag:"\u{1F1EE}\u{1F1E9}"},Irish:{code:"ga",name:"Irish",flag:"\u{1F1EE}\u{1F1EA}"},Italian:{code:"it",name:"Italian",flag:"\u{1F1EE}\u{1F1F9}"},Japanese:{code:"ja",name:"Japanese",flag:"\u{1F1EF}\u{1F1F5}"},Javanese:{code:"jv",name:"Javanese"},Kannada:{code:"kn",name:"Kannada"},Kazakh:{code:"kk",name:"Kazakh",flag:"\u{1F1F0}\u{1F1FF}"},Khmer:{code:"km",name:"Khmer"},Kinyarwanda:{code:"rw",name:"Kinyarwanda"},Korean:{code:"ko",name:"Korean",flag:"\u{1F1F0}\u{1F1F7}"},Kurdish:{code:"ku",name:"Kurdish"},Kyrgyz:{code:"ky",name:"Kyrgyz"},Lao:{code:"lo",name:"Lao"},Latvian:{code:"lv",name:"Latvian",flag:"\u{1F1F1}\u{1F1FB}"},Lithuanian:{code:"lt",name:"Lithuanian",flag:"\u{1F1F1}\u{1F1F9}"},Luxembourgish:{code:"lb",name:"Luxembourgish",flag:"\u{1F1F1}\u{1F1FA}"},Latin:{code:"la",name:"Latin",flag:"\u{1F3DB}"},Macedonian:{code:"mk",name:"Macedonian",flag:"\u{1F1F2}\u{1F1F0}"},Malagasy:{code:"mg",name:"Malagasy"},Malay:{code:"ms",name:"Malay",flag:"\u{1F1F2}\u{1F1FE}"},Malayalam:{code:"ml",name:"Malayalam"},Maltese:{code:"mt",name:"Maltese",flag:"\u{1F1F2}\u{1F1F9}"},Maori:{code:"mi",name:"Maori",flag:"\u{1F1F3}\u{1F1FF}"},Marathi:{code:"mr",name:"Marathi"},Mongolian:{code:"mn",name:"Mongolian",flag:"\u{1F1F2}\u{1F1F3}"},"Myanmar (Burmese)":{code:"my",name:"Myanmar (Burmese)",flag:"\u{1F1F2}\u{1F1F2}"},Nepali:{code:"ne",name:"Nepali",flag:"\u{1F1F3}\u{1F1F5}"},Norwegian:{code:"no",name:"Norwegian",flag:"\u{1F1F3}\u{1F1F4}"},"Nyanja (Chichewa)":{code:"ny",name:"Nyanja (Chichewa)"},"Odia (Oriya)":{code:"or",name:"Odia (Oriya)"},Pashto:{code:"ps",name:"Pashto"},Persian:{code:"fa",name:"Persian",flag:"\u{1F1EE}\u{1F1F7}"},Polish:{code:"pl",name:"Polish",flag:"\u{1F1F5}\u{1F1F1}"},Portuguese:{code:"pt",name:"Portuguese",flag:"\u{1F1F5}\u{1F1F9}"},Punjabi:{code:"pa",name:"Punjabi",flag:"\u{1F1EE}\u{1F1F3}"},Romanian:{code:"ro",name:"Romanian",flag:"\u{1F1F7}\u{1F1F4}"},Russian:{code:"ru",name:"Russian",flag:"\u{1F1F7}\u{1F1FA}"},Samoan:{code:"sm",name:"Samoan"},"Scots Gaelic":{code:"gd",name:"Scots Gaelic",flag:"\u{1F3F4}\u{E0067}\u{E0062}\u{E0073}\u{E0063}\u{E0074}\u{E007F}"},Serbian:{code:"sr",name:"Serbian",flag:"\u{1F1F7}\u{1F1F8}"},Sesotho:{code:"st",name:"Sesotho"},Shona:{code:"sn",name:"Shona"},Sindhi:{code:"sd",name:"Sindhi"},"Sinhala (Sinhalese)":{code:"si",name:"Sinhala (Sinhalese)"},Slovak:{code:"sk",name:"Slovak",flag:"\u{1F1F8}\u{1F1F0}"},Slovenian:{code:"sl",name:"Slovenian",flag:"\u{1F1F8}\u{1F1EE}"},Somali:{code:"so",name:"Somali",flag:"\u{1F1F8}\u{1F1F4}"},Spanish:{code:"es",name:"Spanish",flag:"\u{1F1EA}\u{1F1F8}"},Sundanese:{code:"su",name:"Sundanese",flag:"\u{1F1F8}\u{1F1E9}"},Swahili:{code:"sw",name:"Swahili"},Swedish:{code:"sv",name:"Swedish",flag:"\u{1F1F8}\u{1F1EA}"},"Tagalog (Filipino)":{code:"tl",name:"Tagalog (Filipino)",flag:"\u{1F1F5}\u{1F1ED}"},Tajik:{code:"tg",name:"Tajik"},Tamil:{code:"ta",name:"Tamil"},Tatar:{code:"tt",name:"Tatar"},Telugu:{code:"te",name:"Telugu"},Thai:{code:"th",name:"Thai"},Turkish:{code:"tr",name:"Turkish",flag:"\u{1F1F9}\u{1F1F7}"},Turkmen:{code:"tk",name:"Turkmen",flag:"\u{1F1F9}\u{1F1F2}"},Ukrainian:{code:"uk",name:"Ukrainian",flag:"\u{1F1FA}\u{1F1E6}"},Urdu:{code:"ur",name:"Urdu"},Uyghur:{code:"ug",name:"Uyghur"},Uzbek:{code:"uz",name:"Uzbek"},Vietnamese:{code:"vi",name:"Vietnamese",flag:"\u{1F1FB}\u{1F1F3}"},Welsh:{code:"cy",name:"Welsh",flag:"\u{1F3F4}\u{E0067}\u{E0062}\u{E0077}\u{E006C}\u{E0073}\u{E007F}"},Xhosa:{code:"xh",name:"Xhosa"},Yiddish:{code:"yi",name:"Yiddish",flag:"\u{1F1EE}\u{1F1F1}"},Yoruba:{code:"yo",name:"Yoruba"},Zulu:{code:"zu",name:"Zulu"}};var z3={auto:{code:"auto",name:"Auto-detect",flag:"\u{1F310}"},af:{code:"af",name:"Afrikaans",flag:"\u{1F1FF}\u{1F1E6}"},sq:{code:"sq",name:"Albanian",flag:"\u{1F1E6}\u{1F1F1}"},am:{code:"am",name:"Amharic"},ar:{code:"ar",name:"Arabic"},hy:{code:"hy",name:"Armenian",flag:"\u{1F1E6}\u{1F1F2}"},az:{code:"az",name:"Azerbaijani",flag:"\u{1F1E6}\u{1F1FF}"},eu:{code:"eu",name:"Basque"},be:{code:"be",name:"Belarusian",flag:"\u{1F1E7}\u{1F1FE}"},bn:{code:"bn",name:"Bengali"},bs:{code:"bs",name:"Bosnian",flag:"\u{1F1E7}\u{1F1E6}"},bg:{code:"bg",name:"Bulgarian",flag:"\u{1F1E7}\u{1F1EC}"},ca:{code:"ca",name:"Catalan"},ceb:{code:"ceb",name:"Cebuano"},"zh-CN":{code:"zh-CN",name:"Chinese Simplified",flag:"\u{1F1E8}\u{1F1F3}"},"zh-TW":{code:"zh-TW",name:"Chinese Traditional"},co:{code:"co",name:"Corsican"},hr:{code:"hr",name:"Croatian",flag:"\u{1F1ED}\u{1F1F7}"},cs:{code:"cs",name:"Czech",flag:"\u{1F1E8}\u{1F1FF}"},da:{code:"da",name:"Danish",flag:"\u{1F1E9}\u{1F1F0}"},nl:{code:"nl",name:"Dutch",flag:"\u{1F1F3}\u{1F1F1}"},en:{code:"en",name:"English",flag:"\u{1F1EC}\u{1F1E7}"},eo:{code:"eo",name:"Esperanto"},et:{code:"et",name:"Estonian",flag:"\u{1F1EA}\u{1F1EA}"},fi:{code:"fi",name:"Finnish",flag:"\u{1F1EB}\u{1F1EE}"},fr:{code:"fr",name:"French",flag:"\u{1F1EB}\u{1F1F7}"},fy:{code:"fy",name:"Frisian"},gl:{code:"gl",name:"Galician"},ka:{code:"ka",name:"Georgian",flag:"\u{1F1EC}\u{1F1EA}"},de:{code:"de",name:"German",flag:"\u{1F1E9}\u{1F1EA}"},el:{code:"el",name:"Greek",flag:"\u{1F1EC}\u{1F1F7}"},gu:{code:"gu",name:"Gujarati"},ht:{code:"ht",name:"Haitian Creole",flag:"\u{1F1ED}\u{1F1F9}"},ha:{code:"ha",name:"Hausa"},haw:{code:"haw",name:"Hawaiian",flag:"\u{1F33A}"},iw:{code:"iw",name:"Hebrew",flag:"\u{1F1EE}\u{1F1F1}"},hi:{code:"hi",name:"Hindi",flag:"\u{1F1EE}\u{1F1F3}"},hmn:{code:"hmn",name:"Hmong"},hu:{code:"hu",name:"Hungarian",flag:"\u{1F1ED}\u{1F1FA}"},is:{code:"is",name:"Icelandic",flag:"\u{1F1EE}\u{1F1F8}"},ig:{code:"ig",name:"Igbo"},id:{code:"id",name:"Indonesian",flag:"\u{1F1EE}\u{1F1E9}"},ga:{code:"ga",name:"Irish",flag:"\u{1F1EE}\u{1F1EA}"},it:{code:"it",name:"Italian",flag:"\u{1F1EE}\u{1F1F9}"},ja:{code:"ja",name:"Japanese",flag:"\u{1F1EF}\u{1F1F5}"},jv:{code:"jv",name:"Javanese"},kn:{code:"kn",name:"Kannada"},kk:{code:"kk",name:"Kazakh",flag:"\u{1F1F0}\u{1F1FF}"},km:{code:"km",name:"Khmer"},rw:{code:"rw",name:"Kinyarwanda"},ko:{code:"ko",name:"Korean",flag:"\u{1F1F0}\u{1F1F7}"},ku:{code:"ku",name:"Kurdish"},ky:{code:"ky",name:"Kyrgyz"},lo:{code:"lo",name:"Lao"},lv:{code:"lv",name:"Latvian",flag:"\u{1F1F1}\u{1F1FB}"},lt:{code:"lt",name:"Lithuanian",flag:"\u{1F1F1}\u{1F1F9}"},lb:{code:"lb",name:"Luxembourgish",flag:"\u{1F1F1}\u{1F1FA}"},la:{code:"la",name:"Latin",flag:"\u{1F3DB}"},mk:{code:"mk",name:"Macedonian",flag:"\u{1F1F2}\u{1F1F0}"},mg:{code:"mg",name:"Malagasy"},ms:{code:"ms",name:"Malay",flag:"\u{1F1F2}\u{1F1FE}"},ml:{code:"ml",name:"Malayalam"},mt:{code:"mt",name:"Maltese",flag:"\u{1F1F2}\u{1F1F9}"},mi:{code:"mi",name:"Maori",flag:"\u{1F1F3}\u{1F1FF}"},mr:{code:"mr",name:"Marathi"},mn:{code:"mn",name:"Mongolian",flag:"\u{1F1F2}\u{1F1F3}"},my:{code:"my",name:"Myanmar (Burmese)",flag:"\u{1F1F2}\u{1F1F2}"},ne:{code:"ne",name:"Nepali",flag:"\u{1F1F3}\u{1F1F5}"},no:{code:"no",name:"Norwegian",flag:"\u{1F1F3}\u{1F1F4}"},ny:{code:"ny",name:"Nyanja (Chichewa)"},or:{code:"or",name:"Odia (Oriya)"},ps:{code:"ps",name:"Pashto"},fa:{code:"fa",name:"Persian",flag:"\u{1F1EE}\u{1F1F7}"},pl:{code:"pl",name:"Polish",flag:"\u{1F1F5}\u{1F1F1}"},pt:{code:"pt",name:"Portuguese",flag:"\u{1F1F5}\u{1F1F9}"},pa:{code:"pa",name:"Punjabi",flag:"\u{1F1EE}\u{1F1F3}"},ro:{code:"ro",name:"Romanian",flag:"\u{1F1F7}\u{1F1F4}"},ru:{code:"ru",name:"Russian",flag:"\u{1F1F7}\u{1F1FA}"},sm:{code:"sm",name:"Samoan"},gd:{code:"gd",name:"Scots Gaelic",flag:"\u{1F3F4}\u{E0067}\u{E0062}\u{E0073}\u{E0063}\u{E0074}\u{E007F}"},sr:{code:"sr",name:"Serbian",flag:"\u{1F1F7}\u{1F1F8}"},st:{code:"st",name:"Sesotho"},sn:{code:"sn",name:"Shona"},sd:{code:"sd",name:"Sindhi"},si:{code:"si",name:"Sinhala (Sinhalese)"},sk:{code:"sk",name:"Slovak",flag:"\u{1F1F8}\u{1F1F0}"},sl:{code:"sl",name:"Slovenian",flag:"\u{1F1F8}\u{1F1EE}"},so:{code:"so",name:"Somali",flag:"\u{1F1F8}\u{1F1F4}"},es:{code:"es",name:"Spanish",flag:"\u{1F1EA}\u{1F1F8}"},su:{code:"su",name:"Sundanese",flag:"\u{1F1F8}\u{1F1E9}"},sw:{code:"sw",name:"Swahili"},sv:{code:"sv",name:"Swedish",flag:"\u{1F1F8}\u{1F1EA}"},tl:{code:"tl",name:"Tagalog (Filipino)",flag:"\u{1F1F5}\u{1F1ED}"},tg:{code:"tg",name:"Tajik"},ta:{code:"ta",name:"Tamil"},tt:{code:"tt",name:"Tatar"},te:{code:"te",name:"Telugu"},th:{code:"th",name:"Thai"},tr:{code:"tr",name:"Turkish",flag:"\u{1F1F9}\u{1F1F7}"},tk:{code:"tk",name:"Turkmen",flag:"\u{1F1F9}\u{1F1F2}"},uk:{code:"uk",name:"Ukrainian",flag:"\u{1F1FA}\u{1F1E6}"},ur:{code:"ur",name:"Urdu"},ug:{code:"ug",name:"Uyghur"},uz:{code:"uz",name:"Uzbek"},vi:{code:"vi",name:"Vietnamese",flag:"\u{1F1FB}\u{1F1F3}"},cy:{code:"cy",name:"Welsh",flag:"\u{1F3F4}\u{E0067}\u{E0062}\u{E0077}\u{E006C}\u{E0073}\u{E007F}"},xh:{code:"xh",name:"Xhosa"},yi:{code:"yi",name:"Yiddish",flag:"\u{1F1EE}\u{1F1F1}"},yo:{code:"yo",name:"Yoruba"},zu:{code:"zu",name:"Zulu"}};var Ze=(e,A="\u{1F3F3}\uFE0F")=>e?.flag??A;var Ot=z3,nN=X3,Bn=Object.values(nN);var _=require("@raycast/api");var K3=aA(require("react")),Se=require("@raycast/api");var QA=require("react/jsx-runtime"),$3=({onAddLanguage:e})=>{let[A,t]=K3.default.useState(["en"]);return(0,QA.jsxs)(Se.Form,{actions:(0,QA.jsx)(Se.ActionPanel,{children:(0,QA.jsx)(Se.Action.SubmitForm,{title:"Add language set",onSubmit:a=>{let r=A.filter(i=>!!i);if(!r.length){(0,Se.showToast)({style:Se.Toast.Style.Failure,title:"No target languages",message:"Please select at least one target language"});return}e({langFrom:a.langFrom,langTo:r})}})}),children:[(0,QA.jsx)(Se.Form.Dropdown,{id:"langFrom",title:"Source Language",children:Bn.map(a=>(0,QA.jsx)(Se.Form.Dropdown.Item,{value:a.code,title:a.name,icon:Ze(a)},a.code))}),A.map((a,r)=>{let i=A[r];return(0,QA.jsxs)(Se.Form.Dropdown,{id:`langTo.${r}`,title:`Target Language ${r+1}`,value:i,onChange:s=>{let n=[...A];n[r]=s,t(n)},children:[!i&&(0,QA.jsx)(Se.Form.Dropdown.Item,{value:"",title:""}),Bn.filter(s=>s.code!==Gr).map(s=>(0,QA.jsx)(Se.Form.Dropdown.Item,{value:s.code,title:s.name,icon:Ze(s)},s.code))]},r)}),(!!A[A.length-1]||A.length===0)&&(0,QA.jsxs)(Se.Form.Dropdown,{id:`langTo.${A.length}`,title:`Target Language ${A.length}`,value:"",onChange:a=>{let r=[...A];r.push(a),t(r)},children:[(0,QA.jsx)(Se.Form.Dropdown.Item,{value:"",title:""}),Bn.filter(a=>a.code!==Gr).map(a=>(0,QA.jsx)(Se.Form.Dropdown.Item,{value:a.code,title:a.name,icon:Ze(a)},a.code))]},A.length)]})};var ka=(e,A)=>e.langFrom===A.langFrom&&e.langTo.join()===A.langTo.join(),Z0=e=>({langFrom:Ot[e.langFrom],langTo:e.langTo.map(A=>Ot[A])}),w1=e=>{let{langFrom:A,langTo:t}=Z0(e),r=(Array.isArray(t)?t:[t]).map(i=>`${Ze(i)} ${i.name}`);return`${A.name} ${Ze(A)} -> ${r.join(", ")}`};var fe=require("react/jsx-runtime");function eQ({languageSet:e,onSelect:A,onDelete:t,selected:a}){let{langFrom:r,langTo:i}=Z0(e),s=Array.isArray(i)?i:[i],n=s.map(d=>Ze(d)).join(" "),o=s.map(d=>d.name).join(", ");return(0,fe.jsx)(_.List.Item,{subtitle:`${Ze(r)} -> ${n}`,title:`${r.name} -> ${o}`,keywords:[r.name,r.code,...s.flatMap(d=>[d.name,d.code])],icon:a?{tintColor:_.Color.Green,source:_.Icon.Checkmark}:void 0,actions:(0,fe.jsxs)(_.ActionPanel,{children:[(0,fe.jsx)(_.Action,{title:"Select",onAction:A,icon:{tintColor:_.Color.Green,source:_.Icon.Checkmark}}),t&&(0,fe.jsx)(_.Action,{style:_.Action.Style.Destructive,title:"Delete",onAction:t,icon:_.Icon.Trash})]})})}var oN=({languageSet:e,onSelect:A})=>(0,fe.jsx)(_.List.Item,{icon:_.Icon.SaveDocument,title:"Save current set",subtitle:w1(e),actions:(0,fe.jsx)(_.ActionPanel,{children:(0,fe.jsx)(_.Action,{title:"Save current set",onAction:A})})}),AQ=()=>{let e=(0,_.useNavigation)(),A=mn(),[t,a]=Fa(),[r,i]=Cn();return(0,fe.jsxs)(_.List,{actions:(0,fe.jsx)(_.ActionPanel,{children:(0,fe.jsx)(_.Action,{title:"Remove all",onAction:()=>i([])})}),children:[(0,fe.jsx)(_.List.Item,{icon:{source:_.Icon.Plus},title:"Add new language set...",actions:(0,fe.jsx)(_.ActionPanel,{children:(0,fe.jsx)(_.Action.Push,{title:"Add new language set...",target:(0,fe.jsx)($3,{onAddLanguage:s=>{i([...r,s]),e.pop(),(0,_.showToast)(_.Toast.Style.Success,"Language set was saved!",w1(s))}})})})}),!r.some(s=>ka(s,t))&&!ka(A,t)&&(0,fe.jsx)(oN,{languageSet:t,onSelect:()=>i([...r,t])}),(0,fe.jsx)(eQ,{languageSet:A,onSelect:()=>{a(A),e.pop()},selected:ka(t,A)}),r.map(s=>(0,fe.jsx)(eQ,{selected:ka(t,s),languageSet:s,onSelect:()=>{a(s),e.pop()},onDelete:()=>{i(r.filter(n=>!ka(n,s))),(0,_.showToast)(_.Toast.Style.Success,"Language set was deleted!",w1(s))}},`${s.langFrom} ${s.langTo}`))]})};var ft=require("@raycast/api");var y1=require("react/jsx-runtime");function tQ(){let e=(0,ft.useNavigation)(),A=mn(),[t,a]=Fa(),[r]=Cn();return(0,y1.jsxs)(ft.List.Dropdown,{value:JSON.stringify(t),tooltip:"Language Set",onChange:i=>{if(i==="manage")e.push((0,y1.jsx)(AQ,{}));else{let s=JSON.parse(i);a(s)}},children:[(0,y1.jsx)(ft.List.Dropdown.Item,{icon:ft.Icon.Pencil,title:"Manage language sets...",value:"manage"}),(0,y1.jsx)(ft.List.Dropdown.Item,{title:w1(A),value:JSON.stringify(A)}),r.map(i=>(0,y1.jsx)(ft.List.Dropdown.Item,{title:w1(i),value:JSON.stringify(i)},`${i.langFrom} ${i.langTo.toString()}`))]})}var wt=require("@raycast/api"),GA=require("react/jsx-runtime"),hn=({defaultActionsPrefix:e,value:A})=>{let t=(0,wt.getPreferenceValues)().defaultAction,a=(0,GA.jsx)(wt.Action.Paste,{title:e?`Paste ${e}`:"Paste",content:A}),r=(0,GA.jsx)(wt.Action.CopyToClipboard,{title:e?`Copy ${e}`:"Copy",content:A});return t==="paste"?(0,GA.jsxs)(GA.Fragment,{children:[a,r]}):(0,GA.jsxs)(GA.Fragment,{children:[r,a]})},In=({onAction:e})=>(0,GA.jsx)(wt.Action,{title:"Toggle Full Text",icon:wt.Icon.Text,onAction:e,shortcut:{modifiers:["cmd"],key:"f"}}),fn=({translationText:e,translation:A})=>(0,GA.jsx)(wt.Action.OpenInBrowser,{title:"Open in Google Translate",shortcut:{modifiers:["opt"],key:"enter"},url:"https://translate.google.com/?sl="+A.langFrom+"&tl="+A.langTo+"&text="+encodeURIComponent(e)+"&op=translate"});var H=require("react/jsx-runtime"),dN=({toggleShowingDetail:e,value:A,selectedLanguageSet:t})=>{let{data:a}=(0,j0.usePromise)(W3,[A,t],{onError(r){(0,$.showToast)({style:$.Toast.Style.Failure,title:"Could not translate",message:r.toString()})}});return(0,H.jsx)(H.Fragment,{children:a?.map((r,i)=>{let s=Ot[r.langFrom],n=Ot[r.langTo],o=`${Ze(s,s?.code)} -> ${Ze(n,n?.code)}`,d=`${s?.name??s?.code} -> ${n?.name??n?.code}`;return(0,H.jsxs)(wn.default.Fragment,{children:[(0,H.jsx)($.List.Item,{title:r.translatedText,accessories:[{text:o,tooltip:d}],detail:(0,H.jsx)($.List.Item.Detail,{markdown:r.translatedText}),actions:(0,H.jsx)($.ActionPanel,{children:(0,H.jsxs)($.ActionPanel.Section,{children:[(0,H.jsx)(hn,{defaultActionsPrefix:"Translation",value:r.translatedText}),(0,H.jsx)(In,{onAction:()=>e()}),(0,H.jsx)($.Action,{title:"Play Text-To-Speech",icon:$.Icon.Play,shortcut:{modifiers:["cmd"],key:"t"},onAction:()=>O0(r.translatedText,r.langTo)}),(0,H.jsx)(fn,{translationText:A,translation:r})]})})}),r.pronunciationText&&(0,H.jsx)($.List.Item,{title:r.pronunciationText,accessories:[{text:o,tooltip:d}],detail:(0,H.jsx)($.List.Item.Detail,{markdown:r.pronunciationText}),actions:(0,H.jsx)($.ActionPanel,{children:(0,H.jsxs)($.ActionPanel.Section,{children:[(0,H.jsx)(hn,{value:r.pronunciationText}),(0,H.jsx)(In,{onAction:()=>e()}),(0,H.jsx)(fn,{translationText:A,translation:r})]})})})]},i)})})},pN=({toggleShowingDetail:e,value:A,selectedLanguageSet:t})=>{let{data:a,isLoading:r}=(0,j0.usePromise)(Sa,[A,t],{onError(p){(0,$.showToast)({style:$.Toast.Style.Failure,title:"Could not translate",message:p.toString()})}}),i=a?.langFrom??t.langFrom,s=a?.langTo??t.langTo[0],n=Ot[i],o=Ot[s],d=`${Ze(n,n?.code)} -> ${Ze(o,o?.code)}`,l=`${n?.name??n?.code} -> ${o?.name??o?.code}`;return(0,H.jsx)($.List.Item,{title:a?.translatedText??"",subtitle:r?"Translating...":void 0,accessories:[{text:d,tooltip:l}],detail:(0,H.jsx)($.List.Item.Detail,{markdown:a?.translatedText??""}),actions:(0,H.jsx)($.ActionPanel,{children:(0,H.jsxs)($.ActionPanel.Section,{children:[(0,H.jsx)(hn,{defaultActionsPrefix:"Translation",value:a?.translatedText??""}),(0,H.jsx)(In,{onAction:()=>e()}),a&&(0,H.jsx)($.Action,{title:"Play Text-To-Speech",icon:$.Icon.Play,shortcut:{modifiers:["cmd"],key:"t"},onAction:()=>O0(a.translatedText,s)}),a&&(0,H.jsx)(fn,{translationText:A,translation:a})]})})})};function aQ(){let[e]=Fa(),{proxy:A}=xr(),[t,a]=(0,wn.useState)(!1),[r,i]=Z3(),s=j3(r,500);return(0,H.jsx)($.List,{searchBarPlaceholder:"Enter text to translate",searchText:r,onSearchTextChange:i,isShowingDetail:t,searchBarAccessory:(0,H.jsx)(tQ,{}),children:e.langTo.length===1?(0,H.jsx)(dN,{value:s,selectedLanguageSet:e,toggleShowingDetail:()=>a(!t)}):e.langTo.map((n,o)=>(0,H.jsx)(pN,{value:s,selectedLanguageSet:{langFrom:e.langFrom,langTo:[n],proxy:A},toggleShowingDetail:()=>a(!t)},`${o} ${n}`))})} /*! Bundled license information: media-typer/index.js: diff --git a/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/translate.js.map b/.config/raycast/extensions/0e43920f-bbf6-4582-bc3f-5f63092c915f/translate.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../node_modules/dequal/lite/index.js", "../node_modules/@raycast/utils/dist/useDeepMemo.js", "../node_modules/@raycast/utils/dist/useLatest.js", "../node_modules/@raycast/utils/dist/handle-error-toast-action.js", "../node_modules/@raycast/utils/dist/usePromise.js", "../node_modules/@raycast/utils/dist/useCachedState.js", "../node_modules/object-hash/index.js", "../node_modules/@raycast/utils/dist/useCachedPromise.js", "../node_modules/media-typer/index.js", "../node_modules/content-type/index.js", "../node_modules/webidl-conversions/lib/index.js", "../node_modules/whatwg-url/lib/utils.js", "../node_modules/tr46/lib/mappingTable.json", "../node_modules/tr46/index.js", "../node_modules/whatwg-url/lib/url-state-machine.js", "../node_modules/whatwg-url/lib/URL-impl.js", "../node_modules/whatwg-url/lib/URL.js", "../node_modules/whatwg-url/lib/public-api.js", "../node_modules/node-fetch/lib/index.js", "../node_modules/cross-fetch/dist/node-ponyfill.js", "../node_modules/@raycast/utils/dist/useFetch.js", "../node_modules/signal-exit/src/signals.ts", "../node_modules/signal-exit/src/index.ts", "../node_modules/@raycast/utils/dist/exec-utils.js", "../node_modules/@raycast/utils/dist/useExec.js", "../node_modules/@raycast/utils/dist/useSQL.js", "../node_modules/@raycast/utils/dist/useForm.js", "../node_modules/@raycast/utils/dist/useAI.js", "../node_modules/@raycast/utils/dist/useFrecencySorting.js", "../node_modules/@raycast/utils/dist/icon/color.js", "../node_modules/@raycast/utils/dist/icon/avatar.js", "../node_modules/@raycast/utils/dist/icon/favicon.js", "../node_modules/@raycast/utils/dist/icon/progress.js", "../node_modules/@raycast/utils/dist/icon/index.js", "../node_modules/@raycast/utils/dist/run-applescript.js", "../node_modules/@raycast/utils/dist/index.js", "../node_modules/undici/lib/core/symbols.js", "../node_modules/undici/lib/core/errors.js", "../node_modules/undici/lib/core/util.js", "../node_modules/undici/lib/timers.js", "../node_modules/busboy/lib/utils.js", "../node_modules/streamsearch/lib/sbmh.js", "../node_modules/busboy/lib/types/multipart.js", "../node_modules/busboy/lib/types/urlencoded.js", "../node_modules/busboy/lib/index.js", "../node_modules/undici/lib/fetch/constants.js", "../node_modules/undici/lib/fetch/global.js", "../node_modules/undici/lib/fetch/util.js", "../node_modules/undici/lib/fetch/symbols.js", "../node_modules/undici/lib/fetch/webidl.js", "../node_modules/undici/lib/fetch/dataURL.js", "../node_modules/undici/lib/fetch/file.js", "../node_modules/undici/lib/fetch/formdata.js", "../node_modules/undici/lib/fetch/body.js", "../node_modules/undici/lib/core/request.js", "../node_modules/undici/lib/dispatcher.js", "../node_modules/undici/lib/dispatcher-base.js", "../node_modules/undici/lib/core/connect.js", "../node_modules/undici/src/llhttp/utils.ts", "../node_modules/undici/src/llhttp/constants.ts", "../node_modules/undici/lib/handler/RedirectHandler.js", "../node_modules/undici/lib/interceptor/redirectInterceptor.js", "../node_modules/undici/lib/llhttp/llhttp-wasm.js", "../node_modules/undici/lib/llhttp/llhttp_simd-wasm.js", "../node_modules/undici/lib/client.js", "../node_modules/undici/lib/node/fixed-queue.js", "../node_modules/undici/lib/pool-stats.js", "../node_modules/undici/lib/pool-base.js", "../node_modules/undici/lib/pool.js", "../node_modules/undici/lib/balanced-pool.js", "../node_modules/undici/lib/compat/dispatcher-weakref.js", "../node_modules/undici/lib/agent.js", "../node_modules/undici/lib/api/readable.js", "../node_modules/undici/lib/api/util.js", "../node_modules/undici/lib/api/abort-signal.js", "../node_modules/undici/lib/api/api-request.js", "../node_modules/undici/lib/api/api-stream.js", "../node_modules/undici/lib/api/api-pipeline.js", "../node_modules/undici/lib/api/api-upgrade.js", "../node_modules/undici/lib/api/api-connect.js", "../node_modules/undici/lib/api/index.js", "../node_modules/undici/lib/mock/mock-errors.js", "../node_modules/undici/lib/mock/mock-symbols.js", "../node_modules/undici/lib/mock/mock-utils.js", "../node_modules/undici/lib/mock/mock-interceptor.js", "../node_modules/undici/lib/mock/mock-client.js", "../node_modules/undici/lib/mock/mock-pool.js", "../node_modules/undici/lib/mock/pluralizer.js", "../node_modules/undici/lib/mock/pending-interceptors-formatter.js", "../node_modules/undici/lib/mock/mock-agent.js", "../node_modules/undici/lib/proxy-agent.js", "../node_modules/undici/lib/global.js", "../node_modules/undici/lib/handler/DecoratorHandler.js", "../node_modules/undici/lib/fetch/headers.js", "../node_modules/undici/lib/fetch/response.js", "../node_modules/undici/lib/fetch/request.js", "../node_modules/undici/lib/fetch/index.js", "../node_modules/undici/lib/fileapi/symbols.js", "../node_modules/undici/lib/fileapi/progressevent.js", "../node_modules/undici/lib/fileapi/encoding.js", "../node_modules/undici/lib/fileapi/util.js", "../node_modules/undici/lib/fileapi/filereader.js", "../node_modules/undici/lib/cache/symbols.js", "../node_modules/undici/lib/cache/util.js", "../node_modules/undici/lib/cache/cache.js", "../node_modules/undici/lib/cache/cachestorage.js", "../node_modules/undici/lib/cookies/constants.js", "../node_modules/undici/lib/cookies/util.js", "../node_modules/undici/lib/cookies/parse.js", "../node_modules/undici/lib/cookies/index.js", "../node_modules/undici/lib/websocket/constants.js", "../node_modules/undici/lib/websocket/symbols.js", "../node_modules/undici/lib/websocket/events.js", "../node_modules/undici/lib/websocket/util.js", "../node_modules/undici/lib/websocket/connection.js", "../node_modules/undici/lib/websocket/frame.js", "../node_modules/undici/lib/websocket/receiver.js", "../node_modules/undici/lib/websocket/websocket.js", "../node_modules/undici/index.js", "../node_modules/google-tts-api/src/assertInputTypes.ts", "../node_modules/google-tts-api/src/splitLongText.ts", "../node_modules/google-tts-api/src/getAudioUrl.ts", "../node_modules/axios/lib/helpers/bind.js", "../node_modules/axios/lib/utils.js", "../node_modules/axios/lib/helpers/buildURL.js", "../node_modules/axios/lib/core/InterceptorManager.js", "../node_modules/axios/lib/helpers/normalizeHeaderName.js", "../node_modules/axios/lib/core/enhanceError.js", "../node_modules/axios/lib/core/createError.js", "../node_modules/axios/lib/core/settle.js", "../node_modules/axios/lib/helpers/cookies.js", "../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../node_modules/axios/lib/helpers/combineURLs.js", "../node_modules/axios/lib/core/buildFullPath.js", "../node_modules/axios/lib/helpers/parseHeaders.js", "../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../node_modules/axios/lib/adapters/xhr.js", "../node_modules/ms/index.js", "../node_modules/debug/src/common.js", "../node_modules/debug/src/browser.js", "../node_modules/has-flag/index.js", "../node_modules/supports-color/index.js", "../node_modules/debug/src/node.js", "../node_modules/debug/src/index.js", "../node_modules/follow-redirects/debug.js", "../node_modules/follow-redirects/index.js", "../node_modules/axios/package.json", "../node_modules/axios/lib/adapters/http.js", "../node_modules/axios/lib/defaults.js", "../node_modules/axios/lib/core/transformData.js", "../node_modules/axios/lib/cancel/isCancel.js", "../node_modules/axios/lib/core/dispatchRequest.js", "../node_modules/axios/lib/core/mergeConfig.js", "../node_modules/axios/lib/helpers/validator.js", "../node_modules/axios/lib/core/Axios.js", "../node_modules/axios/lib/cancel/Cancel.js", "../node_modules/axios/lib/cancel/CancelToken.js", "../node_modules/axios/lib/helpers/spread.js", "../node_modules/axios/lib/helpers/isAxiosError.js", "../node_modules/axios/lib/axios.js", "../node_modules/axios/index.js", "../node_modules/google-tts-api/src/getAudioBase64.ts", "../node_modules/google-tts-api/src/index.ts", "../node_modules/agent-base/src/helpers.ts", "../node_modules/agent-base/src/index.ts", "../node_modules/https-proxy-agent/src/parse-proxy-response.ts", "../node_modules/https-proxy-agent/src/index.ts", "../src/translate.tsx", "../src/hooks.ts", "../vendor/@iamtraction-translate/src/index.ts", "../vendor/@iamtraction-translate/src/languages.ts", "../vendor/@iamtraction-translate/src/tokenGenerator.ts", "../src/simple-translate.ts", "../src/languages.ts", "../src/LanguagesManager/LanguagesManagerList.tsx", "../src/LanguagesManager/AddLanguageForm.tsx", "../src/utils.ts", "../src/LanguagesManager/LanguagesManagerListDropdown.tsx", "../src/actions.tsx"], - "sourcesContent": ["var has = Object.prototype.hasOwnProperty;\n\nfunction dequal(foo, bar) {\n\tvar ctor, len;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n\nexports.dequal = dequal;", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useDeepMemo = void 0;\nconst react_1 = require(\"react\");\nconst lite_1 = require(\"dequal/lite\");\n/**\n * @param value the value to be memoized (usually a dependency list)\n * @returns a memoized version of the value as long as it remains deeply equal\n */\nfunction useDeepMemo(value) {\n const ref = (0, react_1.useRef)(value);\n const signalRef = (0, react_1.useRef)(0);\n if (!(0, lite_1.dequal)(value, ref.current)) {\n ref.current = value;\n signalRef.current += 1;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return (0, react_1.useMemo)(() => ref.current, [signalRef.current]);\n}\nexports.useDeepMemo = useDeepMemo;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useLatest = void 0;\nconst react_1 = require(\"react\");\n/**\n * Returns the latest state.\n *\n * This is mostly useful to get access to the latest value of some props or state inside an asynchronous callback, instead of that value at the time the callback was created from.\n */\nfunction useLatest(value) {\n const ref = (0, react_1.useRef)(value);\n ref.current = value;\n return ref;\n}\nexports.useLatest = useLatest;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.handleErrorToastAction = void 0;\nconst fs = __importStar(require(\"fs\"));\nconst path = __importStar(require(\"path\"));\nconst api_1 = require(\"@raycast/api\");\nconst handleErrorToastAction = (error) => {\n let privateExtension = true;\n let title = \"[Extension Name]...\";\n let extensionURL = \"\";\n try {\n const packageJSON = JSON.parse(fs.readFileSync(path.join(api_1.environment.assetsPath, \"..\", \"package.json\"), \"utf8\"));\n title = `[${packageJSON.title}]...`;\n extensionURL = `https://raycast.com/${packageJSON.owner || packageJSON.author}/${packageJSON.name}`;\n if (!packageJSON.owner || packageJSON.access === \"public\") {\n privateExtension = false;\n }\n }\n catch (err) {\n // no-op\n }\n // if it's a private extension, we can't construct the URL to report the error\n // so we fallback to copying the error to the clipboard\n const fallback = api_1.environment.isDevelopment || privateExtension;\n return {\n title: fallback ? \"Copy Logs\" : \"Report Error\",\n onAction(toast) {\n toast.hide();\n if (fallback) {\n api_1.Clipboard.copy(error?.stack || error?.message || \"\");\n }\n else {\n (0, api_1.open)(`https://github.com/raycast/extensions/issues/new?&labels=extension%2Cbug&template=extension_bug_report.yml&title=${encodeURIComponent(title)}&extension-url=${encodeURI(extensionURL)}&description=${encodeURIComponent(`#### Error:\n\\`\\`\\`\n${error?.stack || error?.message || \"\"}\n\\`\\`\\`\n`)}`);\n }\n },\n };\n};\nexports.handleErrorToastAction = handleErrorToastAction;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.usePromise = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst useDeepMemo_1 = require(\"./useDeepMemo\");\nconst useLatest_1 = require(\"./useLatest\");\nconst handle_error_toast_action_1 = require(\"./handle-error-toast-action\");\nfunction usePromise(fn, args, options) {\n const lastCallId = (0, react_1.useRef)(0);\n const [state, set] = (0, react_1.useState)({ isLoading: true });\n const fnRef = (0, useLatest_1.useLatest)(fn);\n const latestAbortable = (0, useLatest_1.useLatest)(options?.abortable);\n const latestArgs = (0, useLatest_1.useLatest)(args || []);\n const latestOnError = (0, useLatest_1.useLatest)(options?.onError);\n const latestOnData = (0, useLatest_1.useLatest)(options?.onData);\n const latestOnWillExecute = (0, useLatest_1.useLatest)(options?.onWillExecute);\n const latestValue = (0, useLatest_1.useLatest)(state.data);\n const latestCallback = (0, react_1.useRef)();\n const callback = (0, react_1.useCallback)((...args) => {\n const callId = ++lastCallId.current;\n if (latestAbortable.current) {\n latestAbortable.current.current?.abort();\n latestAbortable.current.current = new AbortController();\n }\n latestOnWillExecute.current?.(args);\n set((prevState) => ({ ...prevState, isLoading: true }));\n return bindPromiseIfNeeded(fnRef.current)(...args).then((data) => {\n if (callId === lastCallId.current) {\n if (latestOnData.current) {\n latestOnData.current(data);\n }\n set({ data, isLoading: false });\n }\n return data;\n }, (error) => {\n if (error.name == \"AbortError\") {\n return error;\n }\n if (callId === lastCallId.current) {\n // handle errors\n if (latestOnError.current) {\n latestOnError.current(error);\n }\n else {\n console.error(error);\n if (api_1.environment.launchType !== api_1.LaunchType.Background) {\n (0, api_1.showToast)({\n style: api_1.Toast.Style.Failure,\n title: \"Failed to fetch latest data\",\n message: error.message,\n primaryAction: {\n title: \"Retry\",\n onAction(toast) {\n toast.hide();\n latestCallback.current?.(...(latestArgs.current || []));\n },\n },\n secondaryAction: (0, handle_error_toast_action_1.handleErrorToastAction)(error),\n });\n }\n }\n set({ error, isLoading: false });\n }\n return error;\n });\n }, [latestAbortable, latestOnData, latestOnError, latestArgs, fnRef, set, latestCallback, latestOnWillExecute]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n );\n latestCallback.current = callback;\n const revalidate = (0, react_1.useCallback)(() => {\n return callback(...(latestArgs.current || []));\n }, [callback, latestArgs]);\n const mutate = (0, react_1.useCallback)(async (asyncUpdate, options) => {\n let dataBeforeOptimisticUpdate;\n try {\n if (options?.optimisticUpdate) {\n if (typeof options?.rollbackOnError !== \"function\" && options?.rollbackOnError !== false) {\n // keep track of the data before the optimistic update,\n // but only if we need it (eg. only when we want to automatically rollback after)\n dataBeforeOptimisticUpdate = structuredClone(latestValue.current?.value);\n }\n const update = options.optimisticUpdate;\n set((prevState) => ({ ...prevState, data: update(prevState.data) }));\n }\n return await asyncUpdate;\n }\n catch (err) {\n if (typeof options?.rollbackOnError === \"function\") {\n const update = options.rollbackOnError;\n set((prevState) => ({ ...prevState, data: update(prevState.data) }));\n }\n else if (options?.optimisticUpdate && options?.rollbackOnError !== false) {\n set((prevState) => ({ ...prevState, data: dataBeforeOptimisticUpdate }));\n }\n throw err;\n }\n finally {\n if (options?.shouldRevalidateAfter !== false) {\n if (api_1.environment.launchType === api_1.LaunchType.Background || api_1.environment.commandMode === \"menu-bar\") {\n // when in the background or in a menu bar, we are going to await the revalidation\n // to make sure we get the right data at the end of the mutation\n await revalidate();\n }\n else {\n revalidate();\n }\n }\n }\n }, [revalidate, latestValue, set]);\n // revalidate when the args change\n (0, react_1.useEffect)(() => {\n if (options?.execute !== false) {\n callback(...(args || []));\n }\n else {\n // cancel the previous request if we don't want to execute anymore\n if (latestAbortable.current) {\n latestAbortable.current.current?.abort();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(0, useDeepMemo_1.useDeepMemo)([args, options?.execute, callback]), latestAbortable]);\n // abort request when unmounting\n (0, react_1.useEffect)(() => {\n return () => {\n if (latestAbortable.current) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n latestAbortable.current.current?.abort();\n }\n };\n }, [latestAbortable]);\n // we only want to show the loading indicator if the promise is executing\n const isLoading = options?.execute !== false ? state.isLoading : false;\n // @ts-expect-error loading is has some fixed value in the enum which\n const stateWithLoadingFixed = { ...state, isLoading };\n return { ...stateWithLoadingFixed, revalidate, mutate };\n}\nexports.usePromise = usePromise;\n/** Bind the fn if it's a Promise method */\nfunction bindPromiseIfNeeded(fn) {\n if (fn === Promise.all) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.race) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.resolve) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.reject) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n return fn;\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useCachedState = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst useLatest_1 = require(\"./useLatest\");\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction replacer(key, _value) {\n const value = this[key];\n if (value instanceof Date) {\n return `__raycast_cached_date__${value.toString()}`;\n }\n if (Buffer.isBuffer(value)) {\n return `__raycast_cached_buffer__${value.toString(\"base64\")}`;\n }\n return _value;\n}\nfunction reviver(_key, value) {\n if (typeof value === \"string\" && value.startsWith(\"__raycast_cached_date__\")) {\n return new Date(value.replace(\"__raycast_cached_date__\", \"\"));\n }\n if (typeof value === \"string\" && value.startsWith(\"__raycast_cached_buffer__\")) {\n return Buffer.from(value.replace(\"__raycast_cached_buffer__\", \"\"), \"base64\");\n }\n return value;\n}\nconst rootCache = Symbol(\"cache without namespace\");\nconst cacheMap = new Map();\nfunction useCachedState(key, initialState, config) {\n const cacheKey = config?.cacheNamespace || rootCache;\n const cache = cacheMap.get(cacheKey) || cacheMap.set(cacheKey, new api_1.Cache({ namespace: config?.cacheNamespace })).get(cacheKey);\n if (!cache) {\n throw new Error(\"Missing cache\");\n }\n const keyRef = (0, useLatest_1.useLatest)(key);\n const initialValueRef = (0, useLatest_1.useLatest)(initialState);\n const cachedState = (0, react_1.useSyncExternalStore)(cache.subscribe, () => {\n try {\n return cache.get(keyRef.current);\n }\n catch (error) {\n console.error(\"Could not get Cache data:\", error);\n return undefined;\n }\n });\n const state = (0, react_1.useMemo)(() => {\n if (typeof cachedState !== \"undefined\") {\n if (cachedState === \"undefined\") {\n return undefined;\n }\n try {\n return JSON.parse(cachedState, reviver);\n }\n catch (err) {\n // the data got corrupted somehow\n console.warn(\"The cached data is corrupted\", err);\n return initialValueRef.current;\n }\n }\n else {\n return initialValueRef.current;\n }\n }, [cachedState, initialValueRef]);\n const stateRef = (0, useLatest_1.useLatest)(state);\n const setStateAndCache = (0, react_1.useCallback)((updater) => {\n // @ts-expect-error TS struggles to infer the types as T could potentially be a function\n const newValue = typeof updater === \"function\" ? updater(stateRef.current) : updater;\n if (typeof newValue === \"undefined\") {\n cache.set(keyRef.current, \"undefined\");\n }\n else {\n const stringifiedValue = JSON.stringify(newValue, replacer);\n cache.set(keyRef.current, stringifiedValue);\n }\n return newValue;\n }, [cache, keyRef, stateRef]);\n return [state, setStateAndCache];\n}\nexports.useCachedState = useCachedState;\n", "'use strict';\n\nvar crypto = require('crypto');\n\n/**\n * Exported function\n *\n * Options:\n *\n * - `algorithm` hash algo to be used by this instance: *'sha1', 'md5'\n * - `excludeValues` {true|*false} hash object keys, values ignored\n * - `encoding` hash encoding, supports 'buffer', '*hex', 'binary', 'base64'\n * - `ignoreUnknown` {true|*false} ignore unknown object types\n * - `replacer` optional function that replaces values before hashing\n * - `respectFunctionProperties` {*true|false} consider function properties when hashing\n * - `respectFunctionNames` {*true|false} consider 'name' property of functions for hashing\n * - `respectType` {*true|false} Respect special properties (prototype, constructor)\n * when hashing to distinguish between types\n * - `unorderedArrays` {true|*false} Sort all arrays before hashing\n * - `unorderedSets` {*true|false} Sort `Set` and `Map` instances before hashing\n * * = default\n *\n * @param {object} object value to hash\n * @param {object} options hashing options\n * @return {string} hash value\n * @api public\n */\nexports = module.exports = objectHash;\n\nfunction objectHash(object, options){\n options = applyDefaults(object, options);\n\n return hash(object, options);\n}\n\n/**\n * Exported sugar methods\n *\n * @param {object} object value to hash\n * @return {string} hash value\n * @api public\n */\nexports.sha1 = function(object){\n return objectHash(object);\n};\nexports.keys = function(object){\n return objectHash(object, {excludeValues: true, algorithm: 'sha1', encoding: 'hex'});\n};\nexports.MD5 = function(object){\n return objectHash(object, {algorithm: 'md5', encoding: 'hex'});\n};\nexports.keysMD5 = function(object){\n return objectHash(object, {algorithm: 'md5', encoding: 'hex', excludeValues: true});\n};\n\n// Internals\nvar hashes = crypto.getHashes ? crypto.getHashes().slice() : ['sha1', 'md5'];\nhashes.push('passthrough');\nvar encodings = ['buffer', 'hex', 'binary', 'base64'];\n\nfunction applyDefaults(object, sourceOptions){\n sourceOptions = sourceOptions || {};\n\n // create a copy rather than mutating\n var options = {};\n options.algorithm = sourceOptions.algorithm || 'sha1';\n options.encoding = sourceOptions.encoding || 'hex';\n options.excludeValues = sourceOptions.excludeValues ? true : false;\n options.algorithm = options.algorithm.toLowerCase();\n options.encoding = options.encoding.toLowerCase();\n options.ignoreUnknown = sourceOptions.ignoreUnknown !== true ? false : true; // default to false\n options.respectType = sourceOptions.respectType === false ? false : true; // default to true\n options.respectFunctionNames = sourceOptions.respectFunctionNames === false ? false : true;\n options.respectFunctionProperties = sourceOptions.respectFunctionProperties === false ? false : true;\n options.unorderedArrays = sourceOptions.unorderedArrays !== true ? false : true; // default to false\n options.unorderedSets = sourceOptions.unorderedSets === false ? false : true; // default to false\n options.unorderedObjects = sourceOptions.unorderedObjects === false ? false : true; // default to true\n options.replacer = sourceOptions.replacer || undefined;\n options.excludeKeys = sourceOptions.excludeKeys || undefined;\n\n if(typeof object === 'undefined') {\n throw new Error('Object argument required.');\n }\n\n // if there is a case-insensitive match in the hashes list, accept it\n // (i.e. SHA256 for sha256)\n for (var i = 0; i < hashes.length; ++i) {\n if (hashes[i].toLowerCase() === options.algorithm.toLowerCase()) {\n options.algorithm = hashes[i];\n }\n }\n\n if(hashes.indexOf(options.algorithm) === -1){\n throw new Error('Algorithm \"' + options.algorithm + '\" not supported. ' +\n 'supported values: ' + hashes.join(', '));\n }\n\n if(encodings.indexOf(options.encoding) === -1 &&\n options.algorithm !== 'passthrough'){\n throw new Error('Encoding \"' + options.encoding + '\" not supported. ' +\n 'supported values: ' + encodings.join(', '));\n }\n\n return options;\n}\n\n/** Check if the given function is a native function */\nfunction isNativeFunction(f) {\n if ((typeof f) !== 'function') {\n return false;\n }\n var exp = /^function\\s+\\w*\\s*\\(\\s*\\)\\s*{\\s+\\[native code\\]\\s+}$/i;\n return exp.exec(Function.prototype.toString.call(f)) != null;\n}\n\nfunction hash(object, options) {\n var hashingStream;\n\n if (options.algorithm !== 'passthrough') {\n hashingStream = crypto.createHash(options.algorithm);\n } else {\n hashingStream = new PassThrough();\n }\n\n if (typeof hashingStream.write === 'undefined') {\n hashingStream.write = hashingStream.update;\n hashingStream.end = hashingStream.update;\n }\n\n var hasher = typeHasher(options, hashingStream);\n hasher.dispatch(object);\n if (!hashingStream.update) {\n hashingStream.end('');\n }\n\n if (hashingStream.digest) {\n return hashingStream.digest(options.encoding === 'buffer' ? undefined : options.encoding);\n }\n\n var buf = hashingStream.read();\n if (options.encoding === 'buffer') {\n return buf;\n }\n\n return buf.toString(options.encoding);\n}\n\n/**\n * Expose streaming API\n *\n * @param {object} object Value to serialize\n * @param {object} options Options, as for hash()\n * @param {object} stream A stream to write the serializiation to\n * @api public\n */\nexports.writeToStream = function(object, options, stream) {\n if (typeof stream === 'undefined') {\n stream = options;\n options = {};\n }\n\n options = applyDefaults(object, options);\n\n return typeHasher(options, stream).dispatch(object);\n};\n\nfunction typeHasher(options, writeTo, context){\n context = context || [];\n var write = function(str) {\n if (writeTo.update) {\n return writeTo.update(str, 'utf8');\n } else {\n return writeTo.write(str, 'utf8');\n }\n };\n\n return {\n dispatch: function(value){\n if (options.replacer) {\n value = options.replacer(value);\n }\n\n var type = typeof value;\n if (value === null) {\n type = 'null';\n }\n\n //console.log(\"[DEBUG] Dispatch: \", value, \"->\", type, \" -> \", \"_\" + type);\n\n return this['_' + type](value);\n },\n _object: function(object) {\n var pattern = (/\\[object (.*)\\]/i);\n var objString = Object.prototype.toString.call(object);\n var objType = pattern.exec(objString);\n if (!objType) { // object type did not match [object ...]\n objType = 'unknown:[' + objString + ']';\n } else {\n objType = objType[1]; // take only the class name\n }\n\n objType = objType.toLowerCase();\n\n var objectNumber = null;\n\n if ((objectNumber = context.indexOf(object)) >= 0) {\n return this.dispatch('[CIRCULAR:' + objectNumber + ']');\n } else {\n context.push(object);\n }\n\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer && Buffer.isBuffer(object)) {\n write('buffer:');\n return write(object);\n }\n\n if(objType !== 'object' && objType !== 'function' && objType !== 'asyncfunction') {\n if(this['_' + objType]) {\n this['_' + objType](object);\n } else if (options.ignoreUnknown) {\n return write('[' + objType + ']');\n } else {\n throw new Error('Unknown object type \"' + objType + '\"');\n }\n }else{\n var keys = Object.keys(object);\n if (options.unorderedObjects) {\n keys = keys.sort();\n }\n // Make sure to incorporate special properties, so\n // Types with different prototypes will produce\n // a different hash and objects derived from\n // different functions (`new Foo`, `new Bar`) will\n // produce different hashes.\n // We never do this for native functions since some\n // seem to break because of that.\n if (options.respectType !== false && !isNativeFunction(object)) {\n keys.splice(0, 0, 'prototype', '__proto__', 'constructor');\n }\n\n if (options.excludeKeys) {\n keys = keys.filter(function(key) { return !options.excludeKeys(key); });\n }\n\n write('object:' + keys.length + ':');\n var self = this;\n return keys.forEach(function(key){\n self.dispatch(key);\n write(':');\n if(!options.excludeValues) {\n self.dispatch(object[key]);\n }\n write(',');\n });\n }\n },\n _array: function(arr, unordered){\n unordered = typeof unordered !== 'undefined' ? unordered :\n options.unorderedArrays !== false; // default to options.unorderedArrays\n\n var self = this;\n write('array:' + arr.length + ':');\n if (!unordered || arr.length <= 1) {\n return arr.forEach(function(entry) {\n return self.dispatch(entry);\n });\n }\n\n // the unordered case is a little more complicated:\n // since there is no canonical ordering on objects,\n // i.e. {a:1} < {a:2} and {a:1} > {a:2} are both false,\n // we first serialize each entry using a PassThrough stream\n // before sorting.\n // also: we can\u2019t use the same context array for all entries\n // since the order of hashing should *not* matter. instead,\n // we keep track of the additions to a copy of the context array\n // and add all of them to the global context array when we\u2019re done\n var contextAdditions = [];\n var entries = arr.map(function(entry) {\n var strm = new PassThrough();\n var localContext = context.slice(); // make copy\n var hasher = typeHasher(options, strm, localContext);\n hasher.dispatch(entry);\n // take only what was added to localContext and append it to contextAdditions\n contextAdditions = contextAdditions.concat(localContext.slice(context.length));\n return strm.read().toString();\n });\n context = context.concat(contextAdditions);\n entries.sort();\n return this._array(entries, false);\n },\n _date: function(date){\n return write('date:' + date.toJSON());\n },\n _symbol: function(sym){\n return write('symbol:' + sym.toString());\n },\n _error: function(err){\n return write('error:' + err.toString());\n },\n _boolean: function(bool){\n return write('bool:' + bool.toString());\n },\n _string: function(string){\n write('string:' + string.length + ':');\n write(string.toString());\n },\n _function: function(fn){\n write('fn:');\n if (isNativeFunction(fn)) {\n this.dispatch('[native]');\n } else {\n this.dispatch(fn.toString());\n }\n\n if (options.respectFunctionNames !== false) {\n // Make sure we can still distinguish native functions\n // by their name, otherwise String and Function will\n // have the same hash\n this.dispatch(\"function-name:\" + String(fn.name));\n }\n\n if (options.respectFunctionProperties) {\n this._object(fn);\n }\n },\n _number: function(number){\n return write('number:' + number.toString());\n },\n _xml: function(xml){\n return write('xml:' + xml.toString());\n },\n _null: function() {\n return write('Null');\n },\n _undefined: function() {\n return write('Undefined');\n },\n _regexp: function(regex){\n return write('regex:' + regex.toString());\n },\n _uint8array: function(arr){\n write('uint8array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint8clampedarray: function(arr){\n write('uint8clampedarray:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int8array: function(arr){\n write('int8array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint16array: function(arr){\n write('uint16array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int16array: function(arr){\n write('int16array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint32array: function(arr){\n write('uint32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int32array: function(arr){\n write('int32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _float32array: function(arr){\n write('float32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _float64array: function(arr){\n write('float64array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _arraybuffer: function(arr){\n write('arraybuffer:');\n return this.dispatch(new Uint8Array(arr));\n },\n _url: function(url) {\n return write('url:' + url.toString(), 'utf8');\n },\n _map: function(map) {\n write('map:');\n var arr = Array.from(map);\n return this._array(arr, options.unorderedSets !== false);\n },\n _set: function(set) {\n write('set:');\n var arr = Array.from(set);\n return this._array(arr, options.unorderedSets !== false);\n },\n _file: function(file) {\n write('file:');\n return this.dispatch([file.name, file.size, file.type, file.lastModfied]);\n },\n _blob: function() {\n if (options.ignoreUnknown) {\n return write('[blob]');\n }\n\n throw Error('Hashing Blob objects is currently not supported\\n' +\n '(see https://github.com/puleos/object-hash/issues/26)\\n' +\n 'Use \"options.replacer\" or \"options.ignoreUnknown\"\\n');\n },\n _domwindow: function() { return write('domwindow'); },\n _bigint: function(number){\n return write('bigint:' + number.toString());\n },\n /* Node.js standard native objects */\n _process: function() { return write('process'); },\n _timer: function() { return write('timer'); },\n _pipe: function() { return write('pipe'); },\n _tcp: function() { return write('tcp'); },\n _udp: function() { return write('udp'); },\n _tty: function() { return write('tty'); },\n _statwatcher: function() { return write('statwatcher'); },\n _securecontext: function() { return write('securecontext'); },\n _connection: function() { return write('connection'); },\n _zlib: function() { return write('zlib'); },\n _context: function() { return write('context'); },\n _nodescript: function() { return write('nodescript'); },\n _httpparser: function() { return write('httpparser'); },\n _dataview: function() { return write('dataview'); },\n _signal: function() { return write('signal'); },\n _fsevent: function() { return write('fsevent'); },\n _tlswrap: function() { return write('tlswrap'); },\n };\n}\n\n// Mini-implementation of stream.PassThrough\n// We are far from having need for the full implementation, and we can\n// make assumptions like \"many writes, then only one final read\"\n// and we can ignore encoding specifics\nfunction PassThrough() {\n return {\n buf: '',\n\n write: function(b) {\n this.buf += b;\n },\n\n end: function(b) {\n this.buf += b;\n },\n\n read: function() {\n return this.buf;\n }\n };\n}\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useCachedPromise = void 0;\nconst react_1 = require(\"react\");\nconst object_hash_1 = __importDefault(require(\"object-hash\"));\nconst useCachedState_1 = require(\"./useCachedState\");\nconst usePromise_1 = require(\"./usePromise\");\nconst useLatest_1 = require(\"./useLatest\");\n// Symbol to differentiate an empty cache from `undefined`\nconst emptyCache = Symbol();\nfunction useCachedPromise(fn, args, options) {\n const { initialData, keepPreviousData, ...usePromiseOptions } = options || {};\n const lastUpdateFrom = (0, react_1.useRef)();\n const [cachedData, mutateCache] = (0, useCachedState_1.useCachedState)((0, object_hash_1.default)(args || []), emptyCache, {\n cacheNamespace: (0, object_hash_1.default)(fn),\n });\n // Use a ref to store previous returned data. Use the inital data as its inital value from the cache.\n const laggyDataRef = (0, react_1.useRef)(cachedData !== emptyCache ? cachedData : initialData);\n const { mutate: _mutate, revalidate, ...state\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = (0, usePromise_1.usePromise)(fn, args || [], {\n ...usePromiseOptions,\n onData(data) {\n if (usePromiseOptions.onData) {\n usePromiseOptions.onData(data);\n }\n // update the cache when we fetch new values\n lastUpdateFrom.current = \"promise\";\n laggyDataRef.current = data;\n mutateCache(data);\n },\n });\n // data returned if there are no special cases\n const data = cachedData !== emptyCache ? cachedData : initialData;\n const returnedData = \n // if the latest update if from the Promise, we keep it\n lastUpdateFrom.current === \"promise\"\n ? laggyDataRef.current\n : // if we want to keep the latest data, we pick the cache but only if it's not empty\n keepPreviousData\n ? cachedData !== emptyCache\n ? cachedData\n : // if the cache is empty, we will return the previous data\n laggyDataRef.current\n : data;\n const latestData = (0, useLatest_1.useLatest)(returnedData);\n // we rewrite the mutate function to update the cache instead\n const mutate = (0, react_1.useCallback)(async (asyncUpdate, options) => {\n let dataBeforeOptimisticUpdate;\n try {\n if (options?.optimisticUpdate) {\n if (typeof options?.rollbackOnError !== \"function\" && options?.rollbackOnError !== false) {\n // keep track of the data before the optimistic update,\n // but only if we need it (eg. only when we want to automatically rollback after)\n dataBeforeOptimisticUpdate = structuredClone(latestData.current);\n }\n const data = options.optimisticUpdate(latestData.current);\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = data;\n mutateCache(data);\n }\n return await _mutate(asyncUpdate, { shouldRevalidateAfter: options?.shouldRevalidateAfter });\n }\n catch (err) {\n if (typeof options?.rollbackOnError === \"function\") {\n const data = options.rollbackOnError(latestData.current);\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = data;\n mutateCache(data);\n }\n else if (options?.optimisticUpdate && options?.rollbackOnError !== false) {\n lastUpdateFrom.current = \"cache\";\n // @ts-expect-error when undefined, it's expected\n laggyDataRef.current = dataBeforeOptimisticUpdate;\n // @ts-expect-error when undefined, it's expected\n mutateCache(dataBeforeOptimisticUpdate);\n }\n throw err;\n }\n }, [mutateCache, _mutate, latestData, laggyDataRef, lastUpdateFrom]);\n (0, react_1.useEffect)(() => {\n if (cachedData !== emptyCache) {\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = cachedData;\n }\n }, [cachedData]);\n return {\n data: returnedData,\n isLoading: state.isLoading,\n error: state.error,\n mutate,\n revalidate,\n };\n}\nexports.useCachedPromise = useCachedPromise;\n", "/*!\n * media-typer\n * Copyright(c) 2014-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match type in RFC 6838\n *\n * type-name = restricted-name\n * subtype-name = restricted-name\n * restricted-name = restricted-name-first *126restricted-name-chars\n * restricted-name-first = ALPHA / DIGIT\n * restricted-name-chars = ALPHA / DIGIT / \"!\" / \"#\" /\n * \"$\" / \"&\" / \"-\" / \"^\" / \"_\"\n * restricted-name-chars =/ \".\" ; Characters before first dot always\n * ; specify a facet name\n * restricted-name-chars =/ \"+\" ; Characters after last plus always\n * ; specify a structured syntax suffix\n * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n * DIGIT = %x30-39 ; 0-9\n */\nvar SUBTYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/\nvar TYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/\nvar TYPE_REGEXP = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/\n\n/**\n * Module exports.\n */\n\nexports.format = format\nexports.parse = parse\nexports.test = test\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var subtype = obj.subtype\n var suffix = obj.suffix\n var type = obj.type\n\n if (!type || !TYPE_NAME_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n if (!subtype || !SUBTYPE_NAME_REGEXP.test(subtype)) {\n throw new TypeError('invalid subtype')\n }\n\n // format as type/subtype\n var string = type + '/' + subtype\n\n // append +suffix\n if (suffix) {\n if (!TYPE_NAME_REGEXP.test(suffix)) {\n throw new TypeError('invalid suffix')\n }\n\n string += '+' + suffix\n }\n\n return string\n}\n\n/**\n * Test media type.\n *\n * @param {string} string\n * @return {object}\n * @public\n */\n\nfunction test (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n if (typeof string !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n return TYPE_REGEXP.test(string.toLowerCase())\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string} string\n * @return {object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n if (typeof string !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var match = TYPE_REGEXP.exec(string.toLowerCase())\n\n if (!match) {\n throw new TypeError('invalid media type')\n }\n\n var type = match[1]\n var subtype = match[2]\n var suffix\n\n // suffix after last +\n var index = subtype.lastIndexOf('+')\n if (index !== -1) {\n suffix = subtype.substr(index + 1)\n subtype = subtype.substr(0, index)\n }\n\n return new MediaType(type, subtype, suffix)\n}\n\n/**\n * Class for MediaType object.\n * @public\n */\n\nfunction MediaType (type, subtype, suffix) {\n this.type = type\n this.subtype = subtype\n this.suffix = suffix\n}\n", "/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match *( \";\" parameter ) in RFC 7231 sec 3.1.1.1\n *\n * parameter = token \"=\" ( token / quoted-string )\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n * / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n * / DIGIT / ALPHA\n * ; any VCHAR, except delimiters\n * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE\n * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text\n * obs-text = %x80-FF\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n */\nvar PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *(\"(?:[\\u000b\\u0020\\u0021\\u0023-\\u005b\\u005d-\\u007e\\u0080-\\u00ff]|\\\\[\\u000b\\u0020-\\u00ff])*\"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g // eslint-disable-line no-control-regex\nvar TEXT_REGEXP = /^[\\u000b\\u0020-\\u007e\\u0080-\\u00ff]+$/ // eslint-disable-line no-control-regex\nvar TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * RegExp to match quoted-pair in RFC 7230 sec 3.2.6\n *\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n * obs-text = %x80-FF\n */\nvar QESC_REGEXP = /\\\\([\\u000b\\u0020-\\u00ff])/g // eslint-disable-line no-control-regex\n\n/**\n * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6\n */\nvar QUOTE_REGEXP = /([\\\\\"])/g\n\n/**\n * RegExp to match type in RFC 7231 sec 3.1.1.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nvar TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * Module exports.\n * @public\n */\n\nexports.format = format\nexports.parse = parse\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var parameters = obj.parameters\n var type = obj.type\n\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n var string = type\n\n // append parameters\n if (parameters && typeof parameters === 'object') {\n var param\n var params = Object.keys(parameters).sort()\n\n for (var i = 0; i < params.length; i++) {\n param = params[i]\n\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError('invalid parameter name')\n }\n\n string += '; ' + param + '=' + qstring(parameters[param])\n }\n }\n\n return string\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string|object} string\n * @return {Object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n // support req/res-like objects as argument\n var header = typeof string === 'object'\n ? getcontenttype(string)\n : string\n\n if (typeof header !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var index = header.indexOf(';')\n var type = index !== -1\n ? header.slice(0, index).trim()\n : header.trim()\n\n if (!TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid media type')\n }\n\n var obj = new ContentType(type.toLowerCase())\n\n // parse parameters\n if (index !== -1) {\n var key\n var match\n var value\n\n PARAM_REGEXP.lastIndex = index\n\n while ((match = PARAM_REGEXP.exec(header))) {\n if (match.index !== index) {\n throw new TypeError('invalid parameter format')\n }\n\n index += match[0].length\n key = match[1].toLowerCase()\n value = match[2]\n\n if (value.charCodeAt(0) === 0x22 /* \" */) {\n // remove quotes\n value = value.slice(1, -1)\n\n // remove escapes\n if (value.indexOf('\\\\') !== -1) {\n value = value.replace(QESC_REGEXP, '$1')\n }\n }\n\n obj.parameters[key] = value\n }\n\n if (index !== header.length) {\n throw new TypeError('invalid parameter format')\n }\n }\n\n return obj\n}\n\n/**\n * Get content-type from req/res objects.\n *\n * @param {object}\n * @return {Object}\n * @private\n */\n\nfunction getcontenttype (obj) {\n var header\n\n if (typeof obj.getHeader === 'function') {\n // res-like\n header = obj.getHeader('content-type')\n } else if (typeof obj.headers === 'object') {\n // req-like\n header = obj.headers && obj.headers['content-type']\n }\n\n if (typeof header !== 'string') {\n throw new TypeError('content-type header is missing from object')\n }\n\n return header\n}\n\n/**\n * Quote a string if necessary.\n *\n * @param {string} val\n * @return {string}\n * @private\n */\n\nfunction qstring (val) {\n var str = String(val)\n\n // no need to quote tokens\n if (TOKEN_REGEXP.test(str)) {\n return str\n }\n\n if (str.length > 0 && !TEXT_REGEXP.test(str)) {\n throw new TypeError('invalid parameter value')\n }\n\n return '\"' + str.replace(QUOTE_REGEXP, '\\\\$1') + '\"'\n}\n\n/**\n * Class to represent a content type.\n * @private\n */\nfunction ContentType (type) {\n this.parameters = Object.create(null)\n this.type = type\n}\n", "\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n", "\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n", "[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"valid\"],[[47,47],\"disallowed_STD3_valid\"],[[48,57],\"valid\"],[[58,64],\"disallowed_STD3_valid\"],[[65,65],\"mapped\",[97]],[[66,66],\"mapped\",[98]],[[67,67],\"mapped\",[99]],[[68,68],\"mapped\",[100]],[[69,69],\"mapped\",[101]],[[70,70],\"mapped\",[102]],[[71,71],\"mapped\",[103]],[[72,72],\"mapped\",[104]],[[73,73],\"mapped\",[105]],[[74,74],\"mapped\",[106]],[[75,75],\"mapped\",[107]],[[76,76],\"mapped\",[108]],[[77,77],\"mapped\",[109]],[[78,78],\"mapped\",[110]],[[79,79],\"mapped\",[111]],[[80,80],\"mapped\",[112]],[[81,81],\"mapped\",[113]],[[82,82],\"mapped\",[114]],[[83,83],\"mapped\",[115]],[[84,84],\"mapped\",[116]],[[85,85],\"mapped\",[117]],[[86,86],\"mapped\",[118]],[[87,87],\"mapped\",[119]],[[88,88],\"mapped\",[120]],[[89,89],\"mapped\",[121]],[[90,90],\"mapped\",[122]],[[91,96],\"disallowed_STD3_valid\"],[[97,122],\"valid\"],[[123,127],\"disallowed_STD3_valid\"],[[128,159],\"disallowed\"],[[160,160],\"disallowed_STD3_mapped\",[32]],[[161,167],\"valid\",[],\"NV8\"],[[168,168],\"disallowed_STD3_mapped\",[32,776]],[[169,169],\"valid\",[],\"NV8\"],[[170,170],\"mapped\",[97]],[[171,172],\"valid\",[],\"NV8\"],[[173,173],\"ignored\"],[[174,174],\"valid\",[],\"NV8\"],[[175,175],\"disallowed_STD3_mapped\",[32,772]],[[176,177],\"valid\",[],\"NV8\"],[[178,178],\"mapped\",[50]],[[179,179],\"mapped\",[51]],[[180,180],\"disallowed_STD3_mapped\",[32,769]],[[181,181],\"mapped\",[956]],[[182,182],\"valid\",[],\"NV8\"],[[183,183],\"valid\"],[[184,184],\"disallowed_STD3_mapped\",[32,807]],[[185,185],\"mapped\",[49]],[[186,186],\"mapped\",[111]],[[187,187],\"valid\",[],\"NV8\"],[[188,188],\"mapped\",[49,8260,52]],[[189,189],\"mapped\",[49,8260,50]],[[190,190],\"mapped\",[51,8260,52]],[[191,191],\"valid\",[],\"NV8\"],[[192,192],\"mapped\",[224]],[[193,193],\"mapped\",[225]],[[194,194],\"mapped\",[226]],[[195,195],\"mapped\",[227]],[[196,196],\"mapped\",[228]],[[197,197],\"mapped\",[229]],[[198,198],\"mapped\",[230]],[[199,199],\"mapped\",[231]],[[200,200],\"mapped\",[232]],[[201,201],\"mapped\",[233]],[[202,202],\"mapped\",[234]],[[203,203],\"mapped\",[235]],[[204,204],\"mapped\",[236]],[[205,205],\"mapped\",[237]],[[206,206],\"mapped\",[238]],[[207,207],\"mapped\",[239]],[[208,208],\"mapped\",[240]],[[209,209],\"mapped\",[241]],[[210,210],\"mapped\",[242]],[[211,211],\"mapped\",[243]],[[212,212],\"mapped\",[244]],[[213,213],\"mapped\",[245]],[[214,214],\"mapped\",[246]],[[215,215],\"valid\",[],\"NV8\"],[[216,216],\"mapped\",[248]],[[217,217],\"mapped\",[249]],[[218,218],\"mapped\",[250]],[[219,219],\"mapped\",[251]],[[220,220],\"mapped\",[252]],[[221,221],\"mapped\",[253]],[[222,222],\"mapped\",[254]],[[223,223],\"deviation\",[115,115]],[[224,246],\"valid\"],[[247,247],\"valid\",[],\"NV8\"],[[248,255],\"valid\"],[[256,256],\"mapped\",[257]],[[257,257],\"valid\"],[[258,258],\"mapped\",[259]],[[259,259],\"valid\"],[[260,260],\"mapped\",[261]],[[261,261],\"valid\"],[[262,262],\"mapped\",[263]],[[263,263],\"valid\"],[[264,264],\"mapped\",[265]],[[265,265],\"valid\"],[[266,266],\"mapped\",[267]],[[267,267],\"valid\"],[[268,268],\"mapped\",[269]],[[269,269],\"valid\"],[[270,270],\"mapped\",[271]],[[271,271],\"valid\"],[[272,272],\"mapped\",[273]],[[273,273],\"valid\"],[[274,274],\"mapped\",[275]],[[275,275],\"valid\"],[[276,276],\"mapped\",[277]],[[277,277],\"valid\"],[[278,278],\"mapped\",[279]],[[279,279],\"valid\"],[[280,280],\"mapped\",[281]],[[281,281],\"valid\"],[[282,282],\"mapped\",[283]],[[283,283],\"valid\"],[[284,284],\"mapped\",[285]],[[285,285],\"valid\"],[[286,286],\"mapped\",[287]],[[287,287],\"valid\"],[[288,288],\"mapped\",[289]],[[289,289],\"valid\"],[[290,290],\"mapped\",[291]],[[291,291],\"valid\"],[[292,292],\"mapped\",[293]],[[293,293],\"valid\"],[[294,294],\"mapped\",[295]],[[295,295],\"valid\"],[[296,296],\"mapped\",[297]],[[297,297],\"valid\"],[[298,298],\"mapped\",[299]],[[299,299],\"valid\"],[[300,300],\"mapped\",[301]],[[301,301],\"valid\"],[[302,302],\"mapped\",[303]],[[303,303],\"valid\"],[[304,304],\"mapped\",[105,775]],[[305,305],\"valid\"],[[306,307],\"mapped\",[105,106]],[[308,308],\"mapped\",[309]],[[309,309],\"valid\"],[[310,310],\"mapped\",[311]],[[311,312],\"valid\"],[[313,313],\"mapped\",[314]],[[314,314],\"valid\"],[[315,315],\"mapped\",[316]],[[316,316],\"valid\"],[[317,317],\"mapped\",[318]],[[318,318],\"valid\"],[[319,320],\"mapped\",[108,183]],[[321,321],\"mapped\",[322]],[[322,322],\"valid\"],[[323,323],\"mapped\",[324]],[[324,324],\"valid\"],[[325,325],\"mapped\",[326]],[[326,326],\"valid\"],[[327,327],\"mapped\",[328]],[[328,328],\"valid\"],[[329,329],\"mapped\",[700,110]],[[330,330],\"mapped\",[331]],[[331,331],\"valid\"],[[332,332],\"mapped\",[333]],[[333,333],\"valid\"],[[334,334],\"mapped\",[335]],[[335,335],\"valid\"],[[336,336],\"mapped\",[337]],[[337,337],\"valid\"],[[338,338],\"mapped\",[339]],[[339,339],\"valid\"],[[340,340],\"mapped\",[341]],[[341,341],\"valid\"],[[342,342],\"mapped\",[343]],[[343,343],\"valid\"],[[344,344],\"mapped\",[345]],[[345,345],\"valid\"],[[346,346],\"mapped\",[347]],[[347,347],\"valid\"],[[348,348],\"mapped\",[349]],[[349,349],\"valid\"],[[350,350],\"mapped\",[351]],[[351,351],\"valid\"],[[352,352],\"mapped\",[353]],[[353,353],\"valid\"],[[354,354],\"mapped\",[355]],[[355,355],\"valid\"],[[356,356],\"mapped\",[357]],[[357,357],\"valid\"],[[358,358],\"mapped\",[359]],[[359,359],\"valid\"],[[360,360],\"mapped\",[361]],[[361,361],\"valid\"],[[362,362],\"mapped\",[363]],[[363,363],\"valid\"],[[364,364],\"mapped\",[365]],[[365,365],\"valid\"],[[366,366],\"mapped\",[367]],[[367,367],\"valid\"],[[368,368],\"mapped\",[369]],[[369,369],\"valid\"],[[370,370],\"mapped\",[371]],[[371,371],\"valid\"],[[372,372],\"mapped\",[373]],[[373,373],\"valid\"],[[374,374],\"mapped\",[375]],[[375,375],\"valid\"],[[376,376],\"mapped\",[255]],[[377,377],\"mapped\",[378]],[[378,378],\"valid\"],[[379,379],\"mapped\",[380]],[[380,380],\"valid\"],[[381,381],\"mapped\",[382]],[[382,382],\"valid\"],[[383,383],\"mapped\",[115]],[[384,384],\"valid\"],[[385,385],\"mapped\",[595]],[[386,386],\"mapped\",[387]],[[387,387],\"valid\"],[[388,388],\"mapped\",[389]],[[389,389],\"valid\"],[[390,390],\"mapped\",[596]],[[391,391],\"mapped\",[392]],[[392,392],\"valid\"],[[393,393],\"mapped\",[598]],[[394,394],\"mapped\",[599]],[[395,395],\"mapped\",[396]],[[396,397],\"valid\"],[[398,398],\"mapped\",[477]],[[399,399],\"mapped\",[601]],[[400,400],\"mapped\",[603]],[[401,401],\"mapped\",[402]],[[402,402],\"valid\"],[[403,403],\"mapped\",[608]],[[404,404],\"mapped\",[611]],[[405,405],\"valid\"],[[406,406],\"mapped\",[617]],[[407,407],\"mapped\",[616]],[[408,408],\"mapped\",[409]],[[409,411],\"valid\"],[[412,412],\"mapped\",[623]],[[413,413],\"mapped\",[626]],[[414,414],\"valid\"],[[415,415],\"mapped\",[629]],[[416,416],\"mapped\",[417]],[[417,417],\"valid\"],[[418,418],\"mapped\",[419]],[[419,419],\"valid\"],[[420,420],\"mapped\",[421]],[[421,421],\"valid\"],[[422,422],\"mapped\",[640]],[[423,423],\"mapped\",[424]],[[424,424],\"valid\"],[[425,425],\"mapped\",[643]],[[426,427],\"valid\"],[[428,428],\"mapped\",[429]],[[429,429],\"valid\"],[[430,430],\"mapped\",[648]],[[431,431],\"mapped\",[432]],[[432,432],\"valid\"],[[433,433],\"mapped\",[650]],[[434,434],\"mapped\",[651]],[[435,435],\"mapped\",[436]],[[436,436],\"valid\"],[[437,437],\"mapped\",[438]],[[438,438],\"valid\"],[[439,439],\"mapped\",[658]],[[440,440],\"mapped\",[441]],[[441,443],\"valid\"],[[444,444],\"mapped\",[445]],[[445,451],\"valid\"],[[452,454],\"mapped\",[100,382]],[[455,457],\"mapped\",[108,106]],[[458,460],\"mapped\",[110,106]],[[461,461],\"mapped\",[462]],[[462,462],\"valid\"],[[463,463],\"mapped\",[464]],[[464,464],\"valid\"],[[465,465],\"mapped\",[466]],[[466,466],\"valid\"],[[467,467],\"mapped\",[468]],[[468,468],\"valid\"],[[469,469],\"mapped\",[470]],[[470,470],\"valid\"],[[471,471],\"mapped\",[472]],[[472,472],\"valid\"],[[473,473],\"mapped\",[474]],[[474,474],\"valid\"],[[475,475],\"mapped\",[476]],[[476,477],\"valid\"],[[478,478],\"mapped\",[479]],[[479,479],\"valid\"],[[480,480],\"mapped\",[481]],[[481,481],\"valid\"],[[482,482],\"mapped\",[483]],[[483,483],\"valid\"],[[484,484],\"mapped\",[485]],[[485,485],\"valid\"],[[486,486],\"mapped\",[487]],[[487,487],\"valid\"],[[488,488],\"mapped\",[489]],[[489,489],\"valid\"],[[490,490],\"mapped\",[491]],[[491,491],\"valid\"],[[492,492],\"mapped\",[493]],[[493,493],\"valid\"],[[494,494],\"mapped\",[495]],[[495,496],\"valid\"],[[497,499],\"mapped\",[100,122]],[[500,500],\"mapped\",[501]],[[501,501],\"valid\"],[[502,502],\"mapped\",[405]],[[503,503],\"mapped\",[447]],[[504,504],\"mapped\",[505]],[[505,505],\"valid\"],[[506,506],\"mapped\",[507]],[[507,507],\"valid\"],[[508,508],\"mapped\",[509]],[[509,509],\"valid\"],[[510,510],\"mapped\",[511]],[[511,511],\"valid\"],[[512,512],\"mapped\",[513]],[[513,513],\"valid\"],[[514,514],\"mapped\",[515]],[[515,515],\"valid\"],[[516,516],\"mapped\",[517]],[[517,517],\"valid\"],[[518,518],\"mapped\",[519]],[[519,519],\"valid\"],[[520,520],\"mapped\",[521]],[[521,521],\"valid\"],[[522,522],\"mapped\",[523]],[[523,523],\"valid\"],[[524,524],\"mapped\",[525]],[[525,525],\"valid\"],[[526,526],\"mapped\",[527]],[[527,527],\"valid\"],[[528,528],\"mapped\",[529]],[[529,529],\"valid\"],[[530,530],\"mapped\",[531]],[[531,531],\"valid\"],[[532,532],\"mapped\",[533]],[[533,533],\"valid\"],[[534,534],\"mapped\",[535]],[[535,535],\"valid\"],[[536,536],\"mapped\",[537]],[[537,537],\"valid\"],[[538,538],\"mapped\",[539]],[[539,539],\"valid\"],[[540,540],\"mapped\",[541]],[[541,541],\"valid\"],[[542,542],\"mapped\",[543]],[[543,543],\"valid\"],[[544,544],\"mapped\",[414]],[[545,545],\"valid\"],[[546,546],\"mapped\",[547]],[[547,547],\"valid\"],[[548,548],\"mapped\",[549]],[[549,549],\"valid\"],[[550,550],\"mapped\",[551]],[[551,551],\"valid\"],[[552,552],\"mapped\",[553]],[[553,553],\"valid\"],[[554,554],\"mapped\",[555]],[[555,555],\"valid\"],[[556,556],\"mapped\",[557]],[[557,557],\"valid\"],[[558,558],\"mapped\",[559]],[[559,559],\"valid\"],[[560,560],\"mapped\",[561]],[[561,561],\"valid\"],[[562,562],\"mapped\",[563]],[[563,563],\"valid\"],[[564,566],\"valid\"],[[567,569],\"valid\"],[[570,570],\"mapped\",[11365]],[[571,571],\"mapped\",[572]],[[572,572],\"valid\"],[[573,573],\"mapped\",[410]],[[574,574],\"mapped\",[11366]],[[575,576],\"valid\"],[[577,577],\"mapped\",[578]],[[578,578],\"valid\"],[[579,579],\"mapped\",[384]],[[580,580],\"mapped\",[649]],[[581,581],\"mapped\",[652]],[[582,582],\"mapped\",[583]],[[583,583],\"valid\"],[[584,584],\"mapped\",[585]],[[585,585],\"valid\"],[[586,586],\"mapped\",[587]],[[587,587],\"valid\"],[[588,588],\"mapped\",[589]],[[589,589],\"valid\"],[[590,590],\"mapped\",[591]],[[591,591],\"valid\"],[[592,680],\"valid\"],[[681,685],\"valid\"],[[686,687],\"valid\"],[[688,688],\"mapped\",[104]],[[689,689],\"mapped\",[614]],[[690,690],\"mapped\",[106]],[[691,691],\"mapped\",[114]],[[692,692],\"mapped\",[633]],[[693,693],\"mapped\",[635]],[[694,694],\"mapped\",[641]],[[695,695],\"mapped\",[119]],[[696,696],\"mapped\",[121]],[[697,705],\"valid\"],[[706,709],\"valid\",[],\"NV8\"],[[710,721],\"valid\"],[[722,727],\"valid\",[],\"NV8\"],[[728,728],\"disallowed_STD3_mapped\",[32,774]],[[729,729],\"disallowed_STD3_mapped\",[32,775]],[[730,730],\"disallowed_STD3_mapped\",[32,778]],[[731,731],\"disallowed_STD3_mapped\",[32,808]],[[732,732],\"disallowed_STD3_mapped\",[32,771]],[[733,733],\"disallowed_STD3_mapped\",[32,779]],[[734,734],\"valid\",[],\"NV8\"],[[735,735],\"valid\",[],\"NV8\"],[[736,736],\"mapped\",[611]],[[737,737],\"mapped\",[108]],[[738,738],\"mapped\",[115]],[[739,739],\"mapped\",[120]],[[740,740],\"mapped\",[661]],[[741,745],\"valid\",[],\"NV8\"],[[746,747],\"valid\",[],\"NV8\"],[[748,748],\"valid\"],[[749,749],\"valid\",[],\"NV8\"],[[750,750],\"valid\"],[[751,767],\"valid\",[],\"NV8\"],[[768,831],\"valid\"],[[832,832],\"mapped\",[768]],[[833,833],\"mapped\",[769]],[[834,834],\"valid\"],[[835,835],\"mapped\",[787]],[[836,836],\"mapped\",[776,769]],[[837,837],\"mapped\",[953]],[[838,846],\"valid\"],[[847,847],\"ignored\"],[[848,855],\"valid\"],[[856,860],\"valid\"],[[861,863],\"valid\"],[[864,865],\"valid\"],[[866,866],\"valid\"],[[867,879],\"valid\"],[[880,880],\"mapped\",[881]],[[881,881],\"valid\"],[[882,882],\"mapped\",[883]],[[883,883],\"valid\"],[[884,884],\"mapped\",[697]],[[885,885],\"valid\"],[[886,886],\"mapped\",[887]],[[887,887],\"valid\"],[[888,889],\"disallowed\"],[[890,890],\"disallowed_STD3_mapped\",[32,953]],[[891,893],\"valid\"],[[894,894],\"disallowed_STD3_mapped\",[59]],[[895,895],\"mapped\",[1011]],[[896,899],\"disallowed\"],[[900,900],\"disallowed_STD3_mapped\",[32,769]],[[901,901],\"disallowed_STD3_mapped\",[32,776,769]],[[902,902],\"mapped\",[940]],[[903,903],\"mapped\",[183]],[[904,904],\"mapped\",[941]],[[905,905],\"mapped\",[942]],[[906,906],\"mapped\",[943]],[[907,907],\"disallowed\"],[[908,908],\"mapped\",[972]],[[909,909],\"disallowed\"],[[910,910],\"mapped\",[973]],[[911,911],\"mapped\",[974]],[[912,912],\"valid\"],[[913,913],\"mapped\",[945]],[[914,914],\"mapped\",[946]],[[915,915],\"mapped\",[947]],[[916,916],\"mapped\",[948]],[[917,917],\"mapped\",[949]],[[918,918],\"mapped\",[950]],[[919,919],\"mapped\",[951]],[[920,920],\"mapped\",[952]],[[921,921],\"mapped\",[953]],[[922,922],\"mapped\",[954]],[[923,923],\"mapped\",[955]],[[924,924],\"mapped\",[956]],[[925,925],\"mapped\",[957]],[[926,926],\"mapped\",[958]],[[927,927],\"mapped\",[959]],[[928,928],\"mapped\",[960]],[[929,929],\"mapped\",[961]],[[930,930],\"disallowed\"],[[931,931],\"mapped\",[963]],[[932,932],\"mapped\",[964]],[[933,933],\"mapped\",[965]],[[934,934],\"mapped\",[966]],[[935,935],\"mapped\",[967]],[[936,936],\"mapped\",[968]],[[937,937],\"mapped\",[969]],[[938,938],\"mapped\",[970]],[[939,939],\"mapped\",[971]],[[940,961],\"valid\"],[[962,962],\"deviation\",[963]],[[963,974],\"valid\"],[[975,975],\"mapped\",[983]],[[976,976],\"mapped\",[946]],[[977,977],\"mapped\",[952]],[[978,978],\"mapped\",[965]],[[979,979],\"mapped\",[973]],[[980,980],\"mapped\",[971]],[[981,981],\"mapped\",[966]],[[982,982],\"mapped\",[960]],[[983,983],\"valid\"],[[984,984],\"mapped\",[985]],[[985,985],\"valid\"],[[986,986],\"mapped\",[987]],[[987,987],\"valid\"],[[988,988],\"mapped\",[989]],[[989,989],\"valid\"],[[990,990],\"mapped\",[991]],[[991,991],\"valid\"],[[992,992],\"mapped\",[993]],[[993,993],\"valid\"],[[994,994],\"mapped\",[995]],[[995,995],\"valid\"],[[996,996],\"mapped\",[997]],[[997,997],\"valid\"],[[998,998],\"mapped\",[999]],[[999,999],\"valid\"],[[1000,1000],\"mapped\",[1001]],[[1001,1001],\"valid\"],[[1002,1002],\"mapped\",[1003]],[[1003,1003],\"valid\"],[[1004,1004],\"mapped\",[1005]],[[1005,1005],\"valid\"],[[1006,1006],\"mapped\",[1007]],[[1007,1007],\"valid\"],[[1008,1008],\"mapped\",[954]],[[1009,1009],\"mapped\",[961]],[[1010,1010],\"mapped\",[963]],[[1011,1011],\"valid\"],[[1012,1012],\"mapped\",[952]],[[1013,1013],\"mapped\",[949]],[[1014,1014],\"valid\",[],\"NV8\"],[[1015,1015],\"mapped\",[1016]],[[1016,1016],\"valid\"],[[1017,1017],\"mapped\",[963]],[[1018,1018],\"mapped\",[1019]],[[1019,1019],\"valid\"],[[1020,1020],\"valid\"],[[1021,1021],\"mapped\",[891]],[[1022,1022],\"mapped\",[892]],[[1023,1023],\"mapped\",[893]],[[1024,1024],\"mapped\",[1104]],[[1025,1025],\"mapped\",[1105]],[[1026,1026],\"mapped\",[1106]],[[1027,1027],\"mapped\",[1107]],[[1028,1028],\"mapped\",[1108]],[[1029,1029],\"mapped\",[1109]],[[1030,1030],\"mapped\",[1110]],[[1031,1031],\"mapped\",[1111]],[[1032,1032],\"mapped\",[1112]],[[1033,1033],\"mapped\",[1113]],[[1034,1034],\"mapped\",[1114]],[[1035,1035],\"mapped\",[1115]],[[1036,1036],\"mapped\",[1116]],[[1037,1037],\"mapped\",[1117]],[[1038,1038],\"mapped\",[1118]],[[1039,1039],\"mapped\",[1119]],[[1040,1040],\"mapped\",[1072]],[[1041,1041],\"mapped\",[1073]],[[1042,1042],\"mapped\",[1074]],[[1043,1043],\"mapped\",[1075]],[[1044,1044],\"mapped\",[1076]],[[1045,1045],\"mapped\",[1077]],[[1046,1046],\"mapped\",[1078]],[[1047,1047],\"mapped\",[1079]],[[1048,1048],\"mapped\",[1080]],[[1049,1049],\"mapped\",[1081]],[[1050,1050],\"mapped\",[1082]],[[1051,1051],\"mapped\",[1083]],[[1052,1052],\"mapped\",[1084]],[[1053,1053],\"mapped\",[1085]],[[1054,1054],\"mapped\",[1086]],[[1055,1055],\"mapped\",[1087]],[[1056,1056],\"mapped\",[1088]],[[1057,1057],\"mapped\",[1089]],[[1058,1058],\"mapped\",[1090]],[[1059,1059],\"mapped\",[1091]],[[1060,1060],\"mapped\",[1092]],[[1061,1061],\"mapped\",[1093]],[[1062,1062],\"mapped\",[1094]],[[1063,1063],\"mapped\",[1095]],[[1064,1064],\"mapped\",[1096]],[[1065,1065],\"mapped\",[1097]],[[1066,1066],\"mapped\",[1098]],[[1067,1067],\"mapped\",[1099]],[[1068,1068],\"mapped\",[1100]],[[1069,1069],\"mapped\",[1101]],[[1070,1070],\"mapped\",[1102]],[[1071,1071],\"mapped\",[1103]],[[1072,1103],\"valid\"],[[1104,1104],\"valid\"],[[1105,1116],\"valid\"],[[1117,1117],\"valid\"],[[1118,1119],\"valid\"],[[1120,1120],\"mapped\",[1121]],[[1121,1121],\"valid\"],[[1122,1122],\"mapped\",[1123]],[[1123,1123],\"valid\"],[[1124,1124],\"mapped\",[1125]],[[1125,1125],\"valid\"],[[1126,1126],\"mapped\",[1127]],[[1127,1127],\"valid\"],[[1128,1128],\"mapped\",[1129]],[[1129,1129],\"valid\"],[[1130,1130],\"mapped\",[1131]],[[1131,1131],\"valid\"],[[1132,1132],\"mapped\",[1133]],[[1133,1133],\"valid\"],[[1134,1134],\"mapped\",[1135]],[[1135,1135],\"valid\"],[[1136,1136],\"mapped\",[1137]],[[1137,1137],\"valid\"],[[1138,1138],\"mapped\",[1139]],[[1139,1139],\"valid\"],[[1140,1140],\"mapped\",[1141]],[[1141,1141],\"valid\"],[[1142,1142],\"mapped\",[1143]],[[1143,1143],\"valid\"],[[1144,1144],\"mapped\",[1145]],[[1145,1145],\"valid\"],[[1146,1146],\"mapped\",[1147]],[[1147,1147],\"valid\"],[[1148,1148],\"mapped\",[1149]],[[1149,1149],\"valid\"],[[1150,1150],\"mapped\",[1151]],[[1151,1151],\"valid\"],[[1152,1152],\"mapped\",[1153]],[[1153,1153],\"valid\"],[[1154,1154],\"valid\",[],\"NV8\"],[[1155,1158],\"valid\"],[[1159,1159],\"valid\"],[[1160,1161],\"valid\",[],\"NV8\"],[[1162,1162],\"mapped\",[1163]],[[1163,1163],\"valid\"],[[1164,1164],\"mapped\",[1165]],[[1165,1165],\"valid\"],[[1166,1166],\"mapped\",[1167]],[[1167,1167],\"valid\"],[[1168,1168],\"mapped\",[1169]],[[1169,1169],\"valid\"],[[1170,1170],\"mapped\",[1171]],[[1171,1171],\"valid\"],[[1172,1172],\"mapped\",[1173]],[[1173,1173],\"valid\"],[[1174,1174],\"mapped\",[1175]],[[1175,1175],\"valid\"],[[1176,1176],\"mapped\",[1177]],[[1177,1177],\"valid\"],[[1178,1178],\"mapped\",[1179]],[[1179,1179],\"valid\"],[[1180,1180],\"mapped\",[1181]],[[1181,1181],\"valid\"],[[1182,1182],\"mapped\",[1183]],[[1183,1183],\"valid\"],[[1184,1184],\"mapped\",[1185]],[[1185,1185],\"valid\"],[[1186,1186],\"mapped\",[1187]],[[1187,1187],\"valid\"],[[1188,1188],\"mapped\",[1189]],[[1189,1189],\"valid\"],[[1190,1190],\"mapped\",[1191]],[[1191,1191],\"valid\"],[[1192,1192],\"mapped\",[1193]],[[1193,1193],\"valid\"],[[1194,1194],\"mapped\",[1195]],[[1195,1195],\"valid\"],[[1196,1196],\"mapped\",[1197]],[[1197,1197],\"valid\"],[[1198,1198],\"mapped\",[1199]],[[1199,1199],\"valid\"],[[1200,1200],\"mapped\",[1201]],[[1201,1201],\"valid\"],[[1202,1202],\"mapped\",[1203]],[[1203,1203],\"valid\"],[[1204,1204],\"mapped\",[1205]],[[1205,1205],\"valid\"],[[1206,1206],\"mapped\",[1207]],[[1207,1207],\"valid\"],[[1208,1208],\"mapped\",[1209]],[[1209,1209],\"valid\"],[[1210,1210],\"mapped\",[1211]],[[1211,1211],\"valid\"],[[1212,1212],\"mapped\",[1213]],[[1213,1213],\"valid\"],[[1214,1214],\"mapped\",[1215]],[[1215,1215],\"valid\"],[[1216,1216],\"disallowed\"],[[1217,1217],\"mapped\",[1218]],[[1218,1218],\"valid\"],[[1219,1219],\"mapped\",[1220]],[[1220,1220],\"valid\"],[[1221,1221],\"mapped\",[1222]],[[1222,1222],\"valid\"],[[1223,1223],\"mapped\",[1224]],[[1224,1224],\"valid\"],[[1225,1225],\"mapped\",[1226]],[[1226,1226],\"valid\"],[[1227,1227],\"mapped\",[1228]],[[1228,1228],\"valid\"],[[1229,1229],\"mapped\",[1230]],[[1230,1230],\"valid\"],[[1231,1231],\"valid\"],[[1232,1232],\"mapped\",[1233]],[[1233,1233],\"valid\"],[[1234,1234],\"mapped\",[1235]],[[1235,1235],\"valid\"],[[1236,1236],\"mapped\",[1237]],[[1237,1237],\"valid\"],[[1238,1238],\"mapped\",[1239]],[[1239,1239],\"valid\"],[[1240,1240],\"mapped\",[1241]],[[1241,1241],\"valid\"],[[1242,1242],\"mapped\",[1243]],[[1243,1243],\"valid\"],[[1244,1244],\"mapped\",[1245]],[[1245,1245],\"valid\"],[[1246,1246],\"mapped\",[1247]],[[1247,1247],\"valid\"],[[1248,1248],\"mapped\",[1249]],[[1249,1249],\"valid\"],[[1250,1250],\"mapped\",[1251]],[[1251,1251],\"valid\"],[[1252,1252],\"mapped\",[1253]],[[1253,1253],\"valid\"],[[1254,1254],\"mapped\",[1255]],[[1255,1255],\"valid\"],[[1256,1256],\"mapped\",[1257]],[[1257,1257],\"valid\"],[[1258,1258],\"mapped\",[1259]],[[1259,1259],\"valid\"],[[1260,1260],\"mapped\",[1261]],[[1261,1261],\"valid\"],[[1262,1262],\"mapped\",[1263]],[[1263,1263],\"valid\"],[[1264,1264],\"mapped\",[1265]],[[1265,1265],\"valid\"],[[1266,1266],\"mapped\",[1267]],[[1267,1267],\"valid\"],[[1268,1268],\"mapped\",[1269]],[[1269,1269],\"valid\"],[[1270,1270],\"mapped\",[1271]],[[1271,1271],\"valid\"],[[1272,1272],\"mapped\",[1273]],[[1273,1273],\"valid\"],[[1274,1274],\"mapped\",[1275]],[[1275,1275],\"valid\"],[[1276,1276],\"mapped\",[1277]],[[1277,1277],\"valid\"],[[1278,1278],\"mapped\",[1279]],[[1279,1279],\"valid\"],[[1280,1280],\"mapped\",[1281]],[[1281,1281],\"valid\"],[[1282,1282],\"mapped\",[1283]],[[1283,1283],\"valid\"],[[1284,1284],\"mapped\",[1285]],[[1285,1285],\"valid\"],[[1286,1286],\"mapped\",[1287]],[[1287,1287],\"valid\"],[[1288,1288],\"mapped\",[1289]],[[1289,1289],\"valid\"],[[1290,1290],\"mapped\",[1291]],[[1291,1291],\"valid\"],[[1292,1292],\"mapped\",[1293]],[[1293,1293],\"valid\"],[[1294,1294],\"mapped\",[1295]],[[1295,1295],\"valid\"],[[1296,1296],\"mapped\",[1297]],[[1297,1297],\"valid\"],[[1298,1298],\"mapped\",[1299]],[[1299,1299],\"valid\"],[[1300,1300],\"mapped\",[1301]],[[1301,1301],\"valid\"],[[1302,1302],\"mapped\",[1303]],[[1303,1303],\"valid\"],[[1304,1304],\"mapped\",[1305]],[[1305,1305],\"valid\"],[[1306,1306],\"mapped\",[1307]],[[1307,1307],\"valid\"],[[1308,1308],\"mapped\",[1309]],[[1309,1309],\"valid\"],[[1310,1310],\"mapped\",[1311]],[[1311,1311],\"valid\"],[[1312,1312],\"mapped\",[1313]],[[1313,1313],\"valid\"],[[1314,1314],\"mapped\",[1315]],[[1315,1315],\"valid\"],[[1316,1316],\"mapped\",[1317]],[[1317,1317],\"valid\"],[[1318,1318],\"mapped\",[1319]],[[1319,1319],\"valid\"],[[1320,1320],\"mapped\",[1321]],[[1321,1321],\"valid\"],[[1322,1322],\"mapped\",[1323]],[[1323,1323],\"valid\"],[[1324,1324],\"mapped\",[1325]],[[1325,1325],\"valid\"],[[1326,1326],\"mapped\",[1327]],[[1327,1327],\"valid\"],[[1328,1328],\"disallowed\"],[[1329,1329],\"mapped\",[1377]],[[1330,1330],\"mapped\",[1378]],[[1331,1331],\"mapped\",[1379]],[[1332,1332],\"mapped\",[1380]],[[1333,1333],\"mapped\",[1381]],[[1334,1334],\"mapped\",[1382]],[[1335,1335],\"mapped\",[1383]],[[1336,1336],\"mapped\",[1384]],[[1337,1337],\"mapped\",[1385]],[[1338,1338],\"mapped\",[1386]],[[1339,1339],\"mapped\",[1387]],[[1340,1340],\"mapped\",[1388]],[[1341,1341],\"mapped\",[1389]],[[1342,1342],\"mapped\",[1390]],[[1343,1343],\"mapped\",[1391]],[[1344,1344],\"mapped\",[1392]],[[1345,1345],\"mapped\",[1393]],[[1346,1346],\"mapped\",[1394]],[[1347,1347],\"mapped\",[1395]],[[1348,1348],\"mapped\",[1396]],[[1349,1349],\"mapped\",[1397]],[[1350,1350],\"mapped\",[1398]],[[1351,1351],\"mapped\",[1399]],[[1352,1352],\"mapped\",[1400]],[[1353,1353],\"mapped\",[1401]],[[1354,1354],\"mapped\",[1402]],[[1355,1355],\"mapped\",[1403]],[[1356,1356],\"mapped\",[1404]],[[1357,1357],\"mapped\",[1405]],[[1358,1358],\"mapped\",[1406]],[[1359,1359],\"mapped\",[1407]],[[1360,1360],\"mapped\",[1408]],[[1361,1361],\"mapped\",[1409]],[[1362,1362],\"mapped\",[1410]],[[1363,1363],\"mapped\",[1411]],[[1364,1364],\"mapped\",[1412]],[[1365,1365],\"mapped\",[1413]],[[1366,1366],\"mapped\",[1414]],[[1367,1368],\"disallowed\"],[[1369,1369],\"valid\"],[[1370,1375],\"valid\",[],\"NV8\"],[[1376,1376],\"disallowed\"],[[1377,1414],\"valid\"],[[1415,1415],\"mapped\",[1381,1410]],[[1416,1416],\"disallowed\"],[[1417,1417],\"valid\",[],\"NV8\"],[[1418,1418],\"valid\",[],\"NV8\"],[[1419,1420],\"disallowed\"],[[1421,1422],\"valid\",[],\"NV8\"],[[1423,1423],\"valid\",[],\"NV8\"],[[1424,1424],\"disallowed\"],[[1425,1441],\"valid\"],[[1442,1442],\"valid\"],[[1443,1455],\"valid\"],[[1456,1465],\"valid\"],[[1466,1466],\"valid\"],[[1467,1469],\"valid\"],[[1470,1470],\"valid\",[],\"NV8\"],[[1471,1471],\"valid\"],[[1472,1472],\"valid\",[],\"NV8\"],[[1473,1474],\"valid\"],[[1475,1475],\"valid\",[],\"NV8\"],[[1476,1476],\"valid\"],[[1477,1477],\"valid\"],[[1478,1478],\"valid\",[],\"NV8\"],[[1479,1479],\"valid\"],[[1480,1487],\"disallowed\"],[[1488,1514],\"valid\"],[[1515,1519],\"disallowed\"],[[1520,1524],\"valid\"],[[1525,1535],\"disallowed\"],[[1536,1539],\"disallowed\"],[[1540,1540],\"disallowed\"],[[1541,1541],\"disallowed\"],[[1542,1546],\"valid\",[],\"NV8\"],[[1547,1547],\"valid\",[],\"NV8\"],[[1548,1548],\"valid\",[],\"NV8\"],[[1549,1551],\"valid\",[],\"NV8\"],[[1552,1557],\"valid\"],[[1558,1562],\"valid\"],[[1563,1563],\"valid\",[],\"NV8\"],[[1564,1564],\"disallowed\"],[[1565,1565],\"disallowed\"],[[1566,1566],\"valid\",[],\"NV8\"],[[1567,1567],\"valid\",[],\"NV8\"],[[1568,1568],\"valid\"],[[1569,1594],\"valid\"],[[1595,1599],\"valid\"],[[1600,1600],\"valid\",[],\"NV8\"],[[1601,1618],\"valid\"],[[1619,1621],\"valid\"],[[1622,1624],\"valid\"],[[1625,1630],\"valid\"],[[1631,1631],\"valid\"],[[1632,1641],\"valid\"],[[1642,1645],\"valid\",[],\"NV8\"],[[1646,1647],\"valid\"],[[1648,1652],\"valid\"],[[1653,1653],\"mapped\",[1575,1652]],[[1654,1654],\"mapped\",[1608,1652]],[[1655,1655],\"mapped\",[1735,1652]],[[1656,1656],\"mapped\",[1610,1652]],[[1657,1719],\"valid\"],[[1720,1721],\"valid\"],[[1722,1726],\"valid\"],[[1727,1727],\"valid\"],[[1728,1742],\"valid\"],[[1743,1743],\"valid\"],[[1744,1747],\"valid\"],[[1748,1748],\"valid\",[],\"NV8\"],[[1749,1756],\"valid\"],[[1757,1757],\"disallowed\"],[[1758,1758],\"valid\",[],\"NV8\"],[[1759,1768],\"valid\"],[[1769,1769],\"valid\",[],\"NV8\"],[[1770,1773],\"valid\"],[[1774,1775],\"valid\"],[[1776,1785],\"valid\"],[[1786,1790],\"valid\"],[[1791,1791],\"valid\"],[[1792,1805],\"valid\",[],\"NV8\"],[[1806,1806],\"disallowed\"],[[1807,1807],\"disallowed\"],[[1808,1836],\"valid\"],[[1837,1839],\"valid\"],[[1840,1866],\"valid\"],[[1867,1868],\"disallowed\"],[[1869,1871],\"valid\"],[[1872,1901],\"valid\"],[[1902,1919],\"valid\"],[[1920,1968],\"valid\"],[[1969,1969],\"valid\"],[[1970,1983],\"disallowed\"],[[1984,2037],\"valid\"],[[2038,2042],\"valid\",[],\"NV8\"],[[2043,2047],\"disallowed\"],[[2048,2093],\"valid\"],[[2094,2095],\"disallowed\"],[[2096,2110],\"valid\",[],\"NV8\"],[[2111,2111],\"disallowed\"],[[2112,2139],\"valid\"],[[2140,2141],\"disallowed\"],[[2142,2142],\"valid\",[],\"NV8\"],[[2143,2207],\"disallowed\"],[[2208,2208],\"valid\"],[[2209,2209],\"valid\"],[[2210,2220],\"valid\"],[[2221,2226],\"valid\"],[[2227,2228],\"valid\"],[[2229,2274],\"disallowed\"],[[2275,2275],\"valid\"],[[2276,2302],\"valid\"],[[2303,2303],\"valid\"],[[2304,2304],\"valid\"],[[2305,2307],\"valid\"],[[2308,2308],\"valid\"],[[2309,2361],\"valid\"],[[2362,2363],\"valid\"],[[2364,2381],\"valid\"],[[2382,2382],\"valid\"],[[2383,2383],\"valid\"],[[2384,2388],\"valid\"],[[2389,2389],\"valid\"],[[2390,2391],\"valid\"],[[2392,2392],\"mapped\",[2325,2364]],[[2393,2393],\"mapped\",[2326,2364]],[[2394,2394],\"mapped\",[2327,2364]],[[2395,2395],\"mapped\",[2332,2364]],[[2396,2396],\"mapped\",[2337,2364]],[[2397,2397],\"mapped\",[2338,2364]],[[2398,2398],\"mapped\",[2347,2364]],[[2399,2399],\"mapped\",[2351,2364]],[[2400,2403],\"valid\"],[[2404,2405],\"valid\",[],\"NV8\"],[[2406,2415],\"valid\"],[[2416,2416],\"valid\",[],\"NV8\"],[[2417,2418],\"valid\"],[[2419,2423],\"valid\"],[[2424,2424],\"valid\"],[[2425,2426],\"valid\"],[[2427,2428],\"valid\"],[[2429,2429],\"valid\"],[[2430,2431],\"valid\"],[[2432,2432],\"valid\"],[[2433,2435],\"valid\"],[[2436,2436],\"disallowed\"],[[2437,2444],\"valid\"],[[2445,2446],\"disallowed\"],[[2447,2448],\"valid\"],[[2449,2450],\"disallowed\"],[[2451,2472],\"valid\"],[[2473,2473],\"disallowed\"],[[2474,2480],\"valid\"],[[2481,2481],\"disallowed\"],[[2482,2482],\"valid\"],[[2483,2485],\"disallowed\"],[[2486,2489],\"valid\"],[[2490,2491],\"disallowed\"],[[2492,2492],\"valid\"],[[2493,2493],\"valid\"],[[2494,2500],\"valid\"],[[2501,2502],\"disallowed\"],[[2503,2504],\"valid\"],[[2505,2506],\"disallowed\"],[[2507,2509],\"valid\"],[[2510,2510],\"valid\"],[[2511,2518],\"disallowed\"],[[2519,2519],\"valid\"],[[2520,2523],\"disallowed\"],[[2524,2524],\"mapped\",[2465,2492]],[[2525,2525],\"mapped\",[2466,2492]],[[2526,2526],\"disallowed\"],[[2527,2527],\"mapped\",[2479,2492]],[[2528,2531],\"valid\"],[[2532,2533],\"disallowed\"],[[2534,2545],\"valid\"],[[2546,2554],\"valid\",[],\"NV8\"],[[2555,2555],\"valid\",[],\"NV8\"],[[2556,2560],\"disallowed\"],[[2561,2561],\"valid\"],[[2562,2562],\"valid\"],[[2563,2563],\"valid\"],[[2564,2564],\"disallowed\"],[[2565,2570],\"valid\"],[[2571,2574],\"disallowed\"],[[2575,2576],\"valid\"],[[2577,2578],\"disallowed\"],[[2579,2600],\"valid\"],[[2601,2601],\"disallowed\"],[[2602,2608],\"valid\"],[[2609,2609],\"disallowed\"],[[2610,2610],\"valid\"],[[2611,2611],\"mapped\",[2610,2620]],[[2612,2612],\"disallowed\"],[[2613,2613],\"valid\"],[[2614,2614],\"mapped\",[2616,2620]],[[2615,2615],\"disallowed\"],[[2616,2617],\"valid\"],[[2618,2619],\"disallowed\"],[[2620,2620],\"valid\"],[[2621,2621],\"disallowed\"],[[2622,2626],\"valid\"],[[2627,2630],\"disallowed\"],[[2631,2632],\"valid\"],[[2633,2634],\"disallowed\"],[[2635,2637],\"valid\"],[[2638,2640],\"disallowed\"],[[2641,2641],\"valid\"],[[2642,2648],\"disallowed\"],[[2649,2649],\"mapped\",[2582,2620]],[[2650,2650],\"mapped\",[2583,2620]],[[2651,2651],\"mapped\",[2588,2620]],[[2652,2652],\"valid\"],[[2653,2653],\"disallowed\"],[[2654,2654],\"mapped\",[2603,2620]],[[2655,2661],\"disallowed\"],[[2662,2676],\"valid\"],[[2677,2677],\"valid\"],[[2678,2688],\"disallowed\"],[[2689,2691],\"valid\"],[[2692,2692],\"disallowed\"],[[2693,2699],\"valid\"],[[2700,2700],\"valid\"],[[2701,2701],\"valid\"],[[2702,2702],\"disallowed\"],[[2703,2705],\"valid\"],[[2706,2706],\"disallowed\"],[[2707,2728],\"valid\"],[[2729,2729],\"disallowed\"],[[2730,2736],\"valid\"],[[2737,2737],\"disallowed\"],[[2738,2739],\"valid\"],[[2740,2740],\"disallowed\"],[[2741,2745],\"valid\"],[[2746,2747],\"disallowed\"],[[2748,2757],\"valid\"],[[2758,2758],\"disallowed\"],[[2759,2761],\"valid\"],[[2762,2762],\"disallowed\"],[[2763,2765],\"valid\"],[[2766,2767],\"disallowed\"],[[2768,2768],\"valid\"],[[2769,2783],\"disallowed\"],[[2784,2784],\"valid\"],[[2785,2787],\"valid\"],[[2788,2789],\"disallowed\"],[[2790,2799],\"valid\"],[[2800,2800],\"valid\",[],\"NV8\"],[[2801,2801],\"valid\",[],\"NV8\"],[[2802,2808],\"disallowed\"],[[2809,2809],\"valid\"],[[2810,2816],\"disallowed\"],[[2817,2819],\"valid\"],[[2820,2820],\"disallowed\"],[[2821,2828],\"valid\"],[[2829,2830],\"disallowed\"],[[2831,2832],\"valid\"],[[2833,2834],\"disallowed\"],[[2835,2856],\"valid\"],[[2857,2857],\"disallowed\"],[[2858,2864],\"valid\"],[[2865,2865],\"disallowed\"],[[2866,2867],\"valid\"],[[2868,2868],\"disallowed\"],[[2869,2869],\"valid\"],[[2870,2873],\"valid\"],[[2874,2875],\"disallowed\"],[[2876,2883],\"valid\"],[[2884,2884],\"valid\"],[[2885,2886],\"disallowed\"],[[2887,2888],\"valid\"],[[2889,2890],\"disallowed\"],[[2891,2893],\"valid\"],[[2894,2901],\"disallowed\"],[[2902,2903],\"valid\"],[[2904,2907],\"disallowed\"],[[2908,2908],\"mapped\",[2849,2876]],[[2909,2909],\"mapped\",[2850,2876]],[[2910,2910],\"disallowed\"],[[2911,2913],\"valid\"],[[2914,2915],\"valid\"],[[2916,2917],\"disallowed\"],[[2918,2927],\"valid\"],[[2928,2928],\"valid\",[],\"NV8\"],[[2929,2929],\"valid\"],[[2930,2935],\"valid\",[],\"NV8\"],[[2936,2945],\"disallowed\"],[[2946,2947],\"valid\"],[[2948,2948],\"disallowed\"],[[2949,2954],\"valid\"],[[2955,2957],\"disallowed\"],[[2958,2960],\"valid\"],[[2961,2961],\"disallowed\"],[[2962,2965],\"valid\"],[[2966,2968],\"disallowed\"],[[2969,2970],\"valid\"],[[2971,2971],\"disallowed\"],[[2972,2972],\"valid\"],[[2973,2973],\"disallowed\"],[[2974,2975],\"valid\"],[[2976,2978],\"disallowed\"],[[2979,2980],\"valid\"],[[2981,2983],\"disallowed\"],[[2984,2986],\"valid\"],[[2987,2989],\"disallowed\"],[[2990,2997],\"valid\"],[[2998,2998],\"valid\"],[[2999,3001],\"valid\"],[[3002,3005],\"disallowed\"],[[3006,3010],\"valid\"],[[3011,3013],\"disallowed\"],[[3014,3016],\"valid\"],[[3017,3017],\"disallowed\"],[[3018,3021],\"valid\"],[[3022,3023],\"disallowed\"],[[3024,3024],\"valid\"],[[3025,3030],\"disallowed\"],[[3031,3031],\"valid\"],[[3032,3045],\"disallowed\"],[[3046,3046],\"valid\"],[[3047,3055],\"valid\"],[[3056,3058],\"valid\",[],\"NV8\"],[[3059,3066],\"valid\",[],\"NV8\"],[[3067,3071],\"disallowed\"],[[3072,3072],\"valid\"],[[3073,3075],\"valid\"],[[3076,3076],\"disallowed\"],[[3077,3084],\"valid\"],[[3085,3085],\"disallowed\"],[[3086,3088],\"valid\"],[[3089,3089],\"disallowed\"],[[3090,3112],\"valid\"],[[3113,3113],\"disallowed\"],[[3114,3123],\"valid\"],[[3124,3124],\"valid\"],[[3125,3129],\"valid\"],[[3130,3132],\"disallowed\"],[[3133,3133],\"valid\"],[[3134,3140],\"valid\"],[[3141,3141],\"disallowed\"],[[3142,3144],\"valid\"],[[3145,3145],\"disallowed\"],[[3146,3149],\"valid\"],[[3150,3156],\"disallowed\"],[[3157,3158],\"valid\"],[[3159,3159],\"disallowed\"],[[3160,3161],\"valid\"],[[3162,3162],\"valid\"],[[3163,3167],\"disallowed\"],[[3168,3169],\"valid\"],[[3170,3171],\"valid\"],[[3172,3173],\"disallowed\"],[[3174,3183],\"valid\"],[[3184,3191],\"disallowed\"],[[3192,3199],\"valid\",[],\"NV8\"],[[3200,3200],\"disallowed\"],[[3201,3201],\"valid\"],[[3202,3203],\"valid\"],[[3204,3204],\"disallowed\"],[[3205,3212],\"valid\"],[[3213,3213],\"disallowed\"],[[3214,3216],\"valid\"],[[3217,3217],\"disallowed\"],[[3218,3240],\"valid\"],[[3241,3241],\"disallowed\"],[[3242,3251],\"valid\"],[[3252,3252],\"disallowed\"],[[3253,3257],\"valid\"],[[3258,3259],\"disallowed\"],[[3260,3261],\"valid\"],[[3262,3268],\"valid\"],[[3269,3269],\"disallowed\"],[[3270,3272],\"valid\"],[[3273,3273],\"disallowed\"],[[3274,3277],\"valid\"],[[3278,3284],\"disallowed\"],[[3285,3286],\"valid\"],[[3287,3293],\"disallowed\"],[[3294,3294],\"valid\"],[[3295,3295],\"disallowed\"],[[3296,3297],\"valid\"],[[3298,3299],\"valid\"],[[3300,3301],\"disallowed\"],[[3302,3311],\"valid\"],[[3312,3312],\"disallowed\"],[[3313,3314],\"valid\"],[[3315,3328],\"disallowed\"],[[3329,3329],\"valid\"],[[3330,3331],\"valid\"],[[3332,3332],\"disallowed\"],[[3333,3340],\"valid\"],[[3341,3341],\"disallowed\"],[[3342,3344],\"valid\"],[[3345,3345],\"disallowed\"],[[3346,3368],\"valid\"],[[3369,3369],\"valid\"],[[3370,3385],\"valid\"],[[3386,3386],\"valid\"],[[3387,3388],\"disallowed\"],[[3389,3389],\"valid\"],[[3390,3395],\"valid\"],[[3396,3396],\"valid\"],[[3397,3397],\"disallowed\"],[[3398,3400],\"valid\"],[[3401,3401],\"disallowed\"],[[3402,3405],\"valid\"],[[3406,3406],\"valid\"],[[3407,3414],\"disallowed\"],[[3415,3415],\"valid\"],[[3416,3422],\"disallowed\"],[[3423,3423],\"valid\"],[[3424,3425],\"valid\"],[[3426,3427],\"valid\"],[[3428,3429],\"disallowed\"],[[3430,3439],\"valid\"],[[3440,3445],\"valid\",[],\"NV8\"],[[3446,3448],\"disallowed\"],[[3449,3449],\"valid\",[],\"NV8\"],[[3450,3455],\"valid\"],[[3456,3457],\"disallowed\"],[[3458,3459],\"valid\"],[[3460,3460],\"disallowed\"],[[3461,3478],\"valid\"],[[3479,3481],\"disallowed\"],[[3482,3505],\"valid\"],[[3506,3506],\"disallowed\"],[[3507,3515],\"valid\"],[[3516,3516],\"disallowed\"],[[3517,3517],\"valid\"],[[3518,3519],\"disallowed\"],[[3520,3526],\"valid\"],[[3527,3529],\"disallowed\"],[[3530,3530],\"valid\"],[[3531,3534],\"disallowed\"],[[3535,3540],\"valid\"],[[3541,3541],\"disallowed\"],[[3542,3542],\"valid\"],[[3543,3543],\"disallowed\"],[[3544,3551],\"valid\"],[[3552,3557],\"disallowed\"],[[3558,3567],\"valid\"],[[3568,3569],\"disallowed\"],[[3570,3571],\"valid\"],[[3572,3572],\"valid\",[],\"NV8\"],[[3573,3584],\"disallowed\"],[[3585,3634],\"valid\"],[[3635,3635],\"mapped\",[3661,3634]],[[3636,3642],\"valid\"],[[3643,3646],\"disallowed\"],[[3647,3647],\"valid\",[],\"NV8\"],[[3648,3662],\"valid\"],[[3663,3663],\"valid\",[],\"NV8\"],[[3664,3673],\"valid\"],[[3674,3675],\"valid\",[],\"NV8\"],[[3676,3712],\"disallowed\"],[[3713,3714],\"valid\"],[[3715,3715],\"disallowed\"],[[3716,3716],\"valid\"],[[3717,3718],\"disallowed\"],[[3719,3720],\"valid\"],[[3721,3721],\"disallowed\"],[[3722,3722],\"valid\"],[[3723,3724],\"disallowed\"],[[3725,3725],\"valid\"],[[3726,3731],\"disallowed\"],[[3732,3735],\"valid\"],[[3736,3736],\"disallowed\"],[[3737,3743],\"valid\"],[[3744,3744],\"disallowed\"],[[3745,3747],\"valid\"],[[3748,3748],\"disallowed\"],[[3749,3749],\"valid\"],[[3750,3750],\"disallowed\"],[[3751,3751],\"valid\"],[[3752,3753],\"disallowed\"],[[3754,3755],\"valid\"],[[3756,3756],\"disallowed\"],[[3757,3762],\"valid\"],[[3763,3763],\"mapped\",[3789,3762]],[[3764,3769],\"valid\"],[[3770,3770],\"disallowed\"],[[3771,3773],\"valid\"],[[3774,3775],\"disallowed\"],[[3776,3780],\"valid\"],[[3781,3781],\"disallowed\"],[[3782,3782],\"valid\"],[[3783,3783],\"disallowed\"],[[3784,3789],\"valid\"],[[3790,3791],\"disallowed\"],[[3792,3801],\"valid\"],[[3802,3803],\"disallowed\"],[[3804,3804],\"mapped\",[3755,3737]],[[3805,3805],\"mapped\",[3755,3745]],[[3806,3807],\"valid\"],[[3808,3839],\"disallowed\"],[[3840,3840],\"valid\"],[[3841,3850],\"valid\",[],\"NV8\"],[[3851,3851],\"valid\"],[[3852,3852],\"mapped\",[3851]],[[3853,3863],\"valid\",[],\"NV8\"],[[3864,3865],\"valid\"],[[3866,3871],\"valid\",[],\"NV8\"],[[3872,3881],\"valid\"],[[3882,3892],\"valid\",[],\"NV8\"],[[3893,3893],\"valid\"],[[3894,3894],\"valid\",[],\"NV8\"],[[3895,3895],\"valid\"],[[3896,3896],\"valid\",[],\"NV8\"],[[3897,3897],\"valid\"],[[3898,3901],\"valid\",[],\"NV8\"],[[3902,3906],\"valid\"],[[3907,3907],\"mapped\",[3906,4023]],[[3908,3911],\"valid\"],[[3912,3912],\"disallowed\"],[[3913,3916],\"valid\"],[[3917,3917],\"mapped\",[3916,4023]],[[3918,3921],\"valid\"],[[3922,3922],\"mapped\",[3921,4023]],[[3923,3926],\"valid\"],[[3927,3927],\"mapped\",[3926,4023]],[[3928,3931],\"valid\"],[[3932,3932],\"mapped\",[3931,4023]],[[3933,3944],\"valid\"],[[3945,3945],\"mapped\",[3904,4021]],[[3946,3946],\"valid\"],[[3947,3948],\"valid\"],[[3949,3952],\"disallowed\"],[[3953,3954],\"valid\"],[[3955,3955],\"mapped\",[3953,3954]],[[3956,3956],\"valid\"],[[3957,3957],\"mapped\",[3953,3956]],[[3958,3958],\"mapped\",[4018,3968]],[[3959,3959],\"mapped\",[4018,3953,3968]],[[3960,3960],\"mapped\",[4019,3968]],[[3961,3961],\"mapped\",[4019,3953,3968]],[[3962,3968],\"valid\"],[[3969,3969],\"mapped\",[3953,3968]],[[3970,3972],\"valid\"],[[3973,3973],\"valid\",[],\"NV8\"],[[3974,3979],\"valid\"],[[3980,3983],\"valid\"],[[3984,3986],\"valid\"],[[3987,3987],\"mapped\",[3986,4023]],[[3988,3989],\"valid\"],[[3990,3990],\"valid\"],[[3991,3991],\"valid\"],[[3992,3992],\"disallowed\"],[[3993,3996],\"valid\"],[[3997,3997],\"mapped\",[3996,4023]],[[3998,4001],\"valid\"],[[4002,4002],\"mapped\",[4001,4023]],[[4003,4006],\"valid\"],[[4007,4007],\"mapped\",[4006,4023]],[[4008,4011],\"valid\"],[[4012,4012],\"mapped\",[4011,4023]],[[4013,4013],\"valid\"],[[4014,4016],\"valid\"],[[4017,4023],\"valid\"],[[4024,4024],\"valid\"],[[4025,4025],\"mapped\",[3984,4021]],[[4026,4028],\"valid\"],[[4029,4029],\"disallowed\"],[[4030,4037],\"valid\",[],\"NV8\"],[[4038,4038],\"valid\"],[[4039,4044],\"valid\",[],\"NV8\"],[[4045,4045],\"disallowed\"],[[4046,4046],\"valid\",[],\"NV8\"],[[4047,4047],\"valid\",[],\"NV8\"],[[4048,4049],\"valid\",[],\"NV8\"],[[4050,4052],\"valid\",[],\"NV8\"],[[4053,4056],\"valid\",[],\"NV8\"],[[4057,4058],\"valid\",[],\"NV8\"],[[4059,4095],\"disallowed\"],[[4096,4129],\"valid\"],[[4130,4130],\"valid\"],[[4131,4135],\"valid\"],[[4136,4136],\"valid\"],[[4137,4138],\"valid\"],[[4139,4139],\"valid\"],[[4140,4146],\"valid\"],[[4147,4149],\"valid\"],[[4150,4153],\"valid\"],[[4154,4159],\"valid\"],[[4160,4169],\"valid\"],[[4170,4175],\"valid\",[],\"NV8\"],[[4176,4185],\"valid\"],[[4186,4249],\"valid\"],[[4250,4253],\"valid\"],[[4254,4255],\"valid\",[],\"NV8\"],[[4256,4293],\"disallowed\"],[[4294,4294],\"disallowed\"],[[4295,4295],\"mapped\",[11559]],[[4296,4300],\"disallowed\"],[[4301,4301],\"mapped\",[11565]],[[4302,4303],\"disallowed\"],[[4304,4342],\"valid\"],[[4343,4344],\"valid\"],[[4345,4346],\"valid\"],[[4347,4347],\"valid\",[],\"NV8\"],[[4348,4348],\"mapped\",[4316]],[[4349,4351],\"valid\"],[[4352,4441],\"valid\",[],\"NV8\"],[[4442,4446],\"valid\",[],\"NV8\"],[[4447,4448],\"disallowed\"],[[4449,4514],\"valid\",[],\"NV8\"],[[4515,4519],\"valid\",[],\"NV8\"],[[4520,4601],\"valid\",[],\"NV8\"],[[4602,4607],\"valid\",[],\"NV8\"],[[4608,4614],\"valid\"],[[4615,4615],\"valid\"],[[4616,4678],\"valid\"],[[4679,4679],\"valid\"],[[4680,4680],\"valid\"],[[4681,4681],\"disallowed\"],[[4682,4685],\"valid\"],[[4686,4687],\"disallowed\"],[[4688,4694],\"valid\"],[[4695,4695],\"disallowed\"],[[4696,4696],\"valid\"],[[4697,4697],\"disallowed\"],[[4698,4701],\"valid\"],[[4702,4703],\"disallowed\"],[[4704,4742],\"valid\"],[[4743,4743],\"valid\"],[[4744,4744],\"valid\"],[[4745,4745],\"disallowed\"],[[4746,4749],\"valid\"],[[4750,4751],\"disallowed\"],[[4752,4782],\"valid\"],[[4783,4783],\"valid\"],[[4784,4784],\"valid\"],[[4785,4785],\"disallowed\"],[[4786,4789],\"valid\"],[[4790,4791],\"disallowed\"],[[4792,4798],\"valid\"],[[4799,4799],\"disallowed\"],[[4800,4800],\"valid\"],[[4801,4801],\"disallowed\"],[[4802,4805],\"valid\"],[[4806,4807],\"disallowed\"],[[4808,4814],\"valid\"],[[4815,4815],\"valid\"],[[4816,4822],\"valid\"],[[4823,4823],\"disallowed\"],[[4824,4846],\"valid\"],[[4847,4847],\"valid\"],[[4848,4878],\"valid\"],[[4879,4879],\"valid\"],[[4880,4880],\"valid\"],[[4881,4881],\"disallowed\"],[[4882,4885],\"valid\"],[[4886,4887],\"disallowed\"],[[4888,4894],\"valid\"],[[4895,4895],\"valid\"],[[4896,4934],\"valid\"],[[4935,4935],\"valid\"],[[4936,4954],\"valid\"],[[4955,4956],\"disallowed\"],[[4957,4958],\"valid\"],[[4959,4959],\"valid\"],[[4960,4960],\"valid\",[],\"NV8\"],[[4961,4988],\"valid\",[],\"NV8\"],[[4989,4991],\"disallowed\"],[[4992,5007],\"valid\"],[[5008,5017],\"valid\",[],\"NV8\"],[[5018,5023],\"disallowed\"],[[5024,5108],\"valid\"],[[5109,5109],\"valid\"],[[5110,5111],\"disallowed\"],[[5112,5112],\"mapped\",[5104]],[[5113,5113],\"mapped\",[5105]],[[5114,5114],\"mapped\",[5106]],[[5115,5115],\"mapped\",[5107]],[[5116,5116],\"mapped\",[5108]],[[5117,5117],\"mapped\",[5109]],[[5118,5119],\"disallowed\"],[[5120,5120],\"valid\",[],\"NV8\"],[[5121,5740],\"valid\"],[[5741,5742],\"valid\",[],\"NV8\"],[[5743,5750],\"valid\"],[[5751,5759],\"valid\"],[[5760,5760],\"disallowed\"],[[5761,5786],\"valid\"],[[5787,5788],\"valid\",[],\"NV8\"],[[5789,5791],\"disallowed\"],[[5792,5866],\"valid\"],[[5867,5872],\"valid\",[],\"NV8\"],[[5873,5880],\"valid\"],[[5881,5887],\"disallowed\"],[[5888,5900],\"valid\"],[[5901,5901],\"disallowed\"],[[5902,5908],\"valid\"],[[5909,5919],\"disallowed\"],[[5920,5940],\"valid\"],[[5941,5942],\"valid\",[],\"NV8\"],[[5943,5951],\"disallowed\"],[[5952,5971],\"valid\"],[[5972,5983],\"disallowed\"],[[5984,5996],\"valid\"],[[5997,5997],\"disallowed\"],[[5998,6000],\"valid\"],[[6001,6001],\"disallowed\"],[[6002,6003],\"valid\"],[[6004,6015],\"disallowed\"],[[6016,6067],\"valid\"],[[6068,6069],\"disallowed\"],[[6070,6099],\"valid\"],[[6100,6102],\"valid\",[],\"NV8\"],[[6103,6103],\"valid\"],[[6104,6107],\"valid\",[],\"NV8\"],[[6108,6108],\"valid\"],[[6109,6109],\"valid\"],[[6110,6111],\"disallowed\"],[[6112,6121],\"valid\"],[[6122,6127],\"disallowed\"],[[6128,6137],\"valid\",[],\"NV8\"],[[6138,6143],\"disallowed\"],[[6144,6149],\"valid\",[],\"NV8\"],[[6150,6150],\"disallowed\"],[[6151,6154],\"valid\",[],\"NV8\"],[[6155,6157],\"ignored\"],[[6158,6158],\"disallowed\"],[[6159,6159],\"disallowed\"],[[6160,6169],\"valid\"],[[6170,6175],\"disallowed\"],[[6176,6263],\"valid\"],[[6264,6271],\"disallowed\"],[[6272,6313],\"valid\"],[[6314,6314],\"valid\"],[[6315,6319],\"disallowed\"],[[6320,6389],\"valid\"],[[6390,6399],\"disallowed\"],[[6400,6428],\"valid\"],[[6429,6430],\"valid\"],[[6431,6431],\"disallowed\"],[[6432,6443],\"valid\"],[[6444,6447],\"disallowed\"],[[6448,6459],\"valid\"],[[6460,6463],\"disallowed\"],[[6464,6464],\"valid\",[],\"NV8\"],[[6465,6467],\"disallowed\"],[[6468,6469],\"valid\",[],\"NV8\"],[[6470,6509],\"valid\"],[[6510,6511],\"disallowed\"],[[6512,6516],\"valid\"],[[6517,6527],\"disallowed\"],[[6528,6569],\"valid\"],[[6570,6571],\"valid\"],[[6572,6575],\"disallowed\"],[[6576,6601],\"valid\"],[[6602,6607],\"disallowed\"],[[6608,6617],\"valid\"],[[6618,6618],\"valid\",[],\"XV8\"],[[6619,6621],\"disallowed\"],[[6622,6623],\"valid\",[],\"NV8\"],[[6624,6655],\"valid\",[],\"NV8\"],[[6656,6683],\"valid\"],[[6684,6685],\"disallowed\"],[[6686,6687],\"valid\",[],\"NV8\"],[[6688,6750],\"valid\"],[[6751,6751],\"disallowed\"],[[6752,6780],\"valid\"],[[6781,6782],\"disallowed\"],[[6783,6793],\"valid\"],[[6794,6799],\"disallowed\"],[[6800,6809],\"valid\"],[[6810,6815],\"disallowed\"],[[6816,6822],\"valid\",[],\"NV8\"],[[6823,6823],\"valid\"],[[6824,6829],\"valid\",[],\"NV8\"],[[6830,6831],\"disallowed\"],[[6832,6845],\"valid\"],[[6846,6846],\"valid\",[],\"NV8\"],[[6847,6911],\"disallowed\"],[[6912,6987],\"valid\"],[[6988,6991],\"disallowed\"],[[6992,7001],\"valid\"],[[7002,7018],\"valid\",[],\"NV8\"],[[7019,7027],\"valid\"],[[7028,7036],\"valid\",[],\"NV8\"],[[7037,7039],\"disallowed\"],[[7040,7082],\"valid\"],[[7083,7085],\"valid\"],[[7086,7097],\"valid\"],[[7098,7103],\"valid\"],[[7104,7155],\"valid\"],[[7156,7163],\"disallowed\"],[[7164,7167],\"valid\",[],\"NV8\"],[[7168,7223],\"valid\"],[[7224,7226],\"disallowed\"],[[7227,7231],\"valid\",[],\"NV8\"],[[7232,7241],\"valid\"],[[7242,7244],\"disallowed\"],[[7245,7293],\"valid\"],[[7294,7295],\"valid\",[],\"NV8\"],[[7296,7359],\"disallowed\"],[[7360,7367],\"valid\",[],\"NV8\"],[[7368,7375],\"disallowed\"],[[7376,7378],\"valid\"],[[7379,7379],\"valid\",[],\"NV8\"],[[7380,7410],\"valid\"],[[7411,7414],\"valid\"],[[7415,7415],\"disallowed\"],[[7416,7417],\"valid\"],[[7418,7423],\"disallowed\"],[[7424,7467],\"valid\"],[[7468,7468],\"mapped\",[97]],[[7469,7469],\"mapped\",[230]],[[7470,7470],\"mapped\",[98]],[[7471,7471],\"valid\"],[[7472,7472],\"mapped\",[100]],[[7473,7473],\"mapped\",[101]],[[7474,7474],\"mapped\",[477]],[[7475,7475],\"mapped\",[103]],[[7476,7476],\"mapped\",[104]],[[7477,7477],\"mapped\",[105]],[[7478,7478],\"mapped\",[106]],[[7479,7479],\"mapped\",[107]],[[7480,7480],\"mapped\",[108]],[[7481,7481],\"mapped\",[109]],[[7482,7482],\"mapped\",[110]],[[7483,7483],\"valid\"],[[7484,7484],\"mapped\",[111]],[[7485,7485],\"mapped\",[547]],[[7486,7486],\"mapped\",[112]],[[7487,7487],\"mapped\",[114]],[[7488,7488],\"mapped\",[116]],[[7489,7489],\"mapped\",[117]],[[7490,7490],\"mapped\",[119]],[[7491,7491],\"mapped\",[97]],[[7492,7492],\"mapped\",[592]],[[7493,7493],\"mapped\",[593]],[[7494,7494],\"mapped\",[7426]],[[7495,7495],\"mapped\",[98]],[[7496,7496],\"mapped\",[100]],[[7497,7497],\"mapped\",[101]],[[7498,7498],\"mapped\",[601]],[[7499,7499],\"mapped\",[603]],[[7500,7500],\"mapped\",[604]],[[7501,7501],\"mapped\",[103]],[[7502,7502],\"valid\"],[[7503,7503],\"mapped\",[107]],[[7504,7504],\"mapped\",[109]],[[7505,7505],\"mapped\",[331]],[[7506,7506],\"mapped\",[111]],[[7507,7507],\"mapped\",[596]],[[7508,7508],\"mapped\",[7446]],[[7509,7509],\"mapped\",[7447]],[[7510,7510],\"mapped\",[112]],[[7511,7511],\"mapped\",[116]],[[7512,7512],\"mapped\",[117]],[[7513,7513],\"mapped\",[7453]],[[7514,7514],\"mapped\",[623]],[[7515,7515],\"mapped\",[118]],[[7516,7516],\"mapped\",[7461]],[[7517,7517],\"mapped\",[946]],[[7518,7518],\"mapped\",[947]],[[7519,7519],\"mapped\",[948]],[[7520,7520],\"mapped\",[966]],[[7521,7521],\"mapped\",[967]],[[7522,7522],\"mapped\",[105]],[[7523,7523],\"mapped\",[114]],[[7524,7524],\"mapped\",[117]],[[7525,7525],\"mapped\",[118]],[[7526,7526],\"mapped\",[946]],[[7527,7527],\"mapped\",[947]],[[7528,7528],\"mapped\",[961]],[[7529,7529],\"mapped\",[966]],[[7530,7530],\"mapped\",[967]],[[7531,7531],\"valid\"],[[7532,7543],\"valid\"],[[7544,7544],\"mapped\",[1085]],[[7545,7578],\"valid\"],[[7579,7579],\"mapped\",[594]],[[7580,7580],\"mapped\",[99]],[[7581,7581],\"mapped\",[597]],[[7582,7582],\"mapped\",[240]],[[7583,7583],\"mapped\",[604]],[[7584,7584],\"mapped\",[102]],[[7585,7585],\"mapped\",[607]],[[7586,7586],\"mapped\",[609]],[[7587,7587],\"mapped\",[613]],[[7588,7588],\"mapped\",[616]],[[7589,7589],\"mapped\",[617]],[[7590,7590],\"mapped\",[618]],[[7591,7591],\"mapped\",[7547]],[[7592,7592],\"mapped\",[669]],[[7593,7593],\"mapped\",[621]],[[7594,7594],\"mapped\",[7557]],[[7595,7595],\"mapped\",[671]],[[7596,7596],\"mapped\",[625]],[[7597,7597],\"mapped\",[624]],[[7598,7598],\"mapped\",[626]],[[7599,7599],\"mapped\",[627]],[[7600,7600],\"mapped\",[628]],[[7601,7601],\"mapped\",[629]],[[7602,7602],\"mapped\",[632]],[[7603,7603],\"mapped\",[642]],[[7604,7604],\"mapped\",[643]],[[7605,7605],\"mapped\",[427]],[[7606,7606],\"mapped\",[649]],[[7607,7607],\"mapped\",[650]],[[7608,7608],\"mapped\",[7452]],[[7609,7609],\"mapped\",[651]],[[7610,7610],\"mapped\",[652]],[[7611,7611],\"mapped\",[122]],[[7612,7612],\"mapped\",[656]],[[7613,7613],\"mapped\",[657]],[[7614,7614],\"mapped\",[658]],[[7615,7615],\"mapped\",[952]],[[7616,7619],\"valid\"],[[7620,7626],\"valid\"],[[7627,7654],\"valid\"],[[7655,7669],\"valid\"],[[7670,7675],\"disallowed\"],[[7676,7676],\"valid\"],[[7677,7677],\"valid\"],[[7678,7679],\"valid\"],[[7680,7680],\"mapped\",[7681]],[[7681,7681],\"valid\"],[[7682,7682],\"mapped\",[7683]],[[7683,7683],\"valid\"],[[7684,7684],\"mapped\",[7685]],[[7685,7685],\"valid\"],[[7686,7686],\"mapped\",[7687]],[[7687,7687],\"valid\"],[[7688,7688],\"mapped\",[7689]],[[7689,7689],\"valid\"],[[7690,7690],\"mapped\",[7691]],[[7691,7691],\"valid\"],[[7692,7692],\"mapped\",[7693]],[[7693,7693],\"valid\"],[[7694,7694],\"mapped\",[7695]],[[7695,7695],\"valid\"],[[7696,7696],\"mapped\",[7697]],[[7697,7697],\"valid\"],[[7698,7698],\"mapped\",[7699]],[[7699,7699],\"valid\"],[[7700,7700],\"mapped\",[7701]],[[7701,7701],\"valid\"],[[7702,7702],\"mapped\",[7703]],[[7703,7703],\"valid\"],[[7704,7704],\"mapped\",[7705]],[[7705,7705],\"valid\"],[[7706,7706],\"mapped\",[7707]],[[7707,7707],\"valid\"],[[7708,7708],\"mapped\",[7709]],[[7709,7709],\"valid\"],[[7710,7710],\"mapped\",[7711]],[[7711,7711],\"valid\"],[[7712,7712],\"mapped\",[7713]],[[7713,7713],\"valid\"],[[7714,7714],\"mapped\",[7715]],[[7715,7715],\"valid\"],[[7716,7716],\"mapped\",[7717]],[[7717,7717],\"valid\"],[[7718,7718],\"mapped\",[7719]],[[7719,7719],\"valid\"],[[7720,7720],\"mapped\",[7721]],[[7721,7721],\"valid\"],[[7722,7722],\"mapped\",[7723]],[[7723,7723],\"valid\"],[[7724,7724],\"mapped\",[7725]],[[7725,7725],\"valid\"],[[7726,7726],\"mapped\",[7727]],[[7727,7727],\"valid\"],[[7728,7728],\"mapped\",[7729]],[[7729,7729],\"valid\"],[[7730,7730],\"mapped\",[7731]],[[7731,7731],\"valid\"],[[7732,7732],\"mapped\",[7733]],[[7733,7733],\"valid\"],[[7734,7734],\"mapped\",[7735]],[[7735,7735],\"valid\"],[[7736,7736],\"mapped\",[7737]],[[7737,7737],\"valid\"],[[7738,7738],\"mapped\",[7739]],[[7739,7739],\"valid\"],[[7740,7740],\"mapped\",[7741]],[[7741,7741],\"valid\"],[[7742,7742],\"mapped\",[7743]],[[7743,7743],\"valid\"],[[7744,7744],\"mapped\",[7745]],[[7745,7745],\"valid\"],[[7746,7746],\"mapped\",[7747]],[[7747,7747],\"valid\"],[[7748,7748],\"mapped\",[7749]],[[7749,7749],\"valid\"],[[7750,7750],\"mapped\",[7751]],[[7751,7751],\"valid\"],[[7752,7752],\"mapped\",[7753]],[[7753,7753],\"valid\"],[[7754,7754],\"mapped\",[7755]],[[7755,7755],\"valid\"],[[7756,7756],\"mapped\",[7757]],[[7757,7757],\"valid\"],[[7758,7758],\"mapped\",[7759]],[[7759,7759],\"valid\"],[[7760,7760],\"mapped\",[7761]],[[7761,7761],\"valid\"],[[7762,7762],\"mapped\",[7763]],[[7763,7763],\"valid\"],[[7764,7764],\"mapped\",[7765]],[[7765,7765],\"valid\"],[[7766,7766],\"mapped\",[7767]],[[7767,7767],\"valid\"],[[7768,7768],\"mapped\",[7769]],[[7769,7769],\"valid\"],[[7770,7770],\"mapped\",[7771]],[[7771,7771],\"valid\"],[[7772,7772],\"mapped\",[7773]],[[7773,7773],\"valid\"],[[7774,7774],\"mapped\",[7775]],[[7775,7775],\"valid\"],[[7776,7776],\"mapped\",[7777]],[[7777,7777],\"valid\"],[[7778,7778],\"mapped\",[7779]],[[7779,7779],\"valid\"],[[7780,7780],\"mapped\",[7781]],[[7781,7781],\"valid\"],[[7782,7782],\"mapped\",[7783]],[[7783,7783],\"valid\"],[[7784,7784],\"mapped\",[7785]],[[7785,7785],\"valid\"],[[7786,7786],\"mapped\",[7787]],[[7787,7787],\"valid\"],[[7788,7788],\"mapped\",[7789]],[[7789,7789],\"valid\"],[[7790,7790],\"mapped\",[7791]],[[7791,7791],\"valid\"],[[7792,7792],\"mapped\",[7793]],[[7793,7793],\"valid\"],[[7794,7794],\"mapped\",[7795]],[[7795,7795],\"valid\"],[[7796,7796],\"mapped\",[7797]],[[7797,7797],\"valid\"],[[7798,7798],\"mapped\",[7799]],[[7799,7799],\"valid\"],[[7800,7800],\"mapped\",[7801]],[[7801,7801],\"valid\"],[[7802,7802],\"mapped\",[7803]],[[7803,7803],\"valid\"],[[7804,7804],\"mapped\",[7805]],[[7805,7805],\"valid\"],[[7806,7806],\"mapped\",[7807]],[[7807,7807],\"valid\"],[[7808,7808],\"mapped\",[7809]],[[7809,7809],\"valid\"],[[7810,7810],\"mapped\",[7811]],[[7811,7811],\"valid\"],[[7812,7812],\"mapped\",[7813]],[[7813,7813],\"valid\"],[[7814,7814],\"mapped\",[7815]],[[7815,7815],\"valid\"],[[7816,7816],\"mapped\",[7817]],[[7817,7817],\"valid\"],[[7818,7818],\"mapped\",[7819]],[[7819,7819],\"valid\"],[[7820,7820],\"mapped\",[7821]],[[7821,7821],\"valid\"],[[7822,7822],\"mapped\",[7823]],[[7823,7823],\"valid\"],[[7824,7824],\"mapped\",[7825]],[[7825,7825],\"valid\"],[[7826,7826],\"mapped\",[7827]],[[7827,7827],\"valid\"],[[7828,7828],\"mapped\",[7829]],[[7829,7833],\"valid\"],[[7834,7834],\"mapped\",[97,702]],[[7835,7835],\"mapped\",[7777]],[[7836,7837],\"valid\"],[[7838,7838],\"mapped\",[115,115]],[[7839,7839],\"valid\"],[[7840,7840],\"mapped\",[7841]],[[7841,7841],\"valid\"],[[7842,7842],\"mapped\",[7843]],[[7843,7843],\"valid\"],[[7844,7844],\"mapped\",[7845]],[[7845,7845],\"valid\"],[[7846,7846],\"mapped\",[7847]],[[7847,7847],\"valid\"],[[7848,7848],\"mapped\",[7849]],[[7849,7849],\"valid\"],[[7850,7850],\"mapped\",[7851]],[[7851,7851],\"valid\"],[[7852,7852],\"mapped\",[7853]],[[7853,7853],\"valid\"],[[7854,7854],\"mapped\",[7855]],[[7855,7855],\"valid\"],[[7856,7856],\"mapped\",[7857]],[[7857,7857],\"valid\"],[[7858,7858],\"mapped\",[7859]],[[7859,7859],\"valid\"],[[7860,7860],\"mapped\",[7861]],[[7861,7861],\"valid\"],[[7862,7862],\"mapped\",[7863]],[[7863,7863],\"valid\"],[[7864,7864],\"mapped\",[7865]],[[7865,7865],\"valid\"],[[7866,7866],\"mapped\",[7867]],[[7867,7867],\"valid\"],[[7868,7868],\"mapped\",[7869]],[[7869,7869],\"valid\"],[[7870,7870],\"mapped\",[7871]],[[7871,7871],\"valid\"],[[7872,7872],\"mapped\",[7873]],[[7873,7873],\"valid\"],[[7874,7874],\"mapped\",[7875]],[[7875,7875],\"valid\"],[[7876,7876],\"mapped\",[7877]],[[7877,7877],\"valid\"],[[7878,7878],\"mapped\",[7879]],[[7879,7879],\"valid\"],[[7880,7880],\"mapped\",[7881]],[[7881,7881],\"valid\"],[[7882,7882],\"mapped\",[7883]],[[7883,7883],\"valid\"],[[7884,7884],\"mapped\",[7885]],[[7885,7885],\"valid\"],[[7886,7886],\"mapped\",[7887]],[[7887,7887],\"valid\"],[[7888,7888],\"mapped\",[7889]],[[7889,7889],\"valid\"],[[7890,7890],\"mapped\",[7891]],[[7891,7891],\"valid\"],[[7892,7892],\"mapped\",[7893]],[[7893,7893],\"valid\"],[[7894,7894],\"mapped\",[7895]],[[7895,7895],\"valid\"],[[7896,7896],\"mapped\",[7897]],[[7897,7897],\"valid\"],[[7898,7898],\"mapped\",[7899]],[[7899,7899],\"valid\"],[[7900,7900],\"mapped\",[7901]],[[7901,7901],\"valid\"],[[7902,7902],\"mapped\",[7903]],[[7903,7903],\"valid\"],[[7904,7904],\"mapped\",[7905]],[[7905,7905],\"valid\"],[[7906,7906],\"mapped\",[7907]],[[7907,7907],\"valid\"],[[7908,7908],\"mapped\",[7909]],[[7909,7909],\"valid\"],[[7910,7910],\"mapped\",[7911]],[[7911,7911],\"valid\"],[[7912,7912],\"mapped\",[7913]],[[7913,7913],\"valid\"],[[7914,7914],\"mapped\",[7915]],[[7915,7915],\"valid\"],[[7916,7916],\"mapped\",[7917]],[[7917,7917],\"valid\"],[[7918,7918],\"mapped\",[7919]],[[7919,7919],\"valid\"],[[7920,7920],\"mapped\",[7921]],[[7921,7921],\"valid\"],[[7922,7922],\"mapped\",[7923]],[[7923,7923],\"valid\"],[[7924,7924],\"mapped\",[7925]],[[7925,7925],\"valid\"],[[7926,7926],\"mapped\",[7927]],[[7927,7927],\"valid\"],[[7928,7928],\"mapped\",[7929]],[[7929,7929],\"valid\"],[[7930,7930],\"mapped\",[7931]],[[7931,7931],\"valid\"],[[7932,7932],\"mapped\",[7933]],[[7933,7933],\"valid\"],[[7934,7934],\"mapped\",[7935]],[[7935,7935],\"valid\"],[[7936,7943],\"valid\"],[[7944,7944],\"mapped\",[7936]],[[7945,7945],\"mapped\",[7937]],[[7946,7946],\"mapped\",[7938]],[[7947,7947],\"mapped\",[7939]],[[7948,7948],\"mapped\",[7940]],[[7949,7949],\"mapped\",[7941]],[[7950,7950],\"mapped\",[7942]],[[7951,7951],\"mapped\",[7943]],[[7952,7957],\"valid\"],[[7958,7959],\"disallowed\"],[[7960,7960],\"mapped\",[7952]],[[7961,7961],\"mapped\",[7953]],[[7962,7962],\"mapped\",[7954]],[[7963,7963],\"mapped\",[7955]],[[7964,7964],\"mapped\",[7956]],[[7965,7965],\"mapped\",[7957]],[[7966,7967],\"disallowed\"],[[7968,7975],\"valid\"],[[7976,7976],\"mapped\",[7968]],[[7977,7977],\"mapped\",[7969]],[[7978,7978],\"mapped\",[7970]],[[7979,7979],\"mapped\",[7971]],[[7980,7980],\"mapped\",[7972]],[[7981,7981],\"mapped\",[7973]],[[7982,7982],\"mapped\",[7974]],[[7983,7983],\"mapped\",[7975]],[[7984,7991],\"valid\"],[[7992,7992],\"mapped\",[7984]],[[7993,7993],\"mapped\",[7985]],[[7994,7994],\"mapped\",[7986]],[[7995,7995],\"mapped\",[7987]],[[7996,7996],\"mapped\",[7988]],[[7997,7997],\"mapped\",[7989]],[[7998,7998],\"mapped\",[7990]],[[7999,7999],\"mapped\",[7991]],[[8000,8005],\"valid\"],[[8006,8007],\"disallowed\"],[[8008,8008],\"mapped\",[8000]],[[8009,8009],\"mapped\",[8001]],[[8010,8010],\"mapped\",[8002]],[[8011,8011],\"mapped\",[8003]],[[8012,8012],\"mapped\",[8004]],[[8013,8013],\"mapped\",[8005]],[[8014,8015],\"disallowed\"],[[8016,8023],\"valid\"],[[8024,8024],\"disallowed\"],[[8025,8025],\"mapped\",[8017]],[[8026,8026],\"disallowed\"],[[8027,8027],\"mapped\",[8019]],[[8028,8028],\"disallowed\"],[[8029,8029],\"mapped\",[8021]],[[8030,8030],\"disallowed\"],[[8031,8031],\"mapped\",[8023]],[[8032,8039],\"valid\"],[[8040,8040],\"mapped\",[8032]],[[8041,8041],\"mapped\",[8033]],[[8042,8042],\"mapped\",[8034]],[[8043,8043],\"mapped\",[8035]],[[8044,8044],\"mapped\",[8036]],[[8045,8045],\"mapped\",[8037]],[[8046,8046],\"mapped\",[8038]],[[8047,8047],\"mapped\",[8039]],[[8048,8048],\"valid\"],[[8049,8049],\"mapped\",[940]],[[8050,8050],\"valid\"],[[8051,8051],\"mapped\",[941]],[[8052,8052],\"valid\"],[[8053,8053],\"mapped\",[942]],[[8054,8054],\"valid\"],[[8055,8055],\"mapped\",[943]],[[8056,8056],\"valid\"],[[8057,8057],\"mapped\",[972]],[[8058,8058],\"valid\"],[[8059,8059],\"mapped\",[973]],[[8060,8060],\"valid\"],[[8061,8061],\"mapped\",[974]],[[8062,8063],\"disallowed\"],[[8064,8064],\"mapped\",[7936,953]],[[8065,8065],\"mapped\",[7937,953]],[[8066,8066],\"mapped\",[7938,953]],[[8067,8067],\"mapped\",[7939,953]],[[8068,8068],\"mapped\",[7940,953]],[[8069,8069],\"mapped\",[7941,953]],[[8070,8070],\"mapped\",[7942,953]],[[8071,8071],\"mapped\",[7943,953]],[[8072,8072],\"mapped\",[7936,953]],[[8073,8073],\"mapped\",[7937,953]],[[8074,8074],\"mapped\",[7938,953]],[[8075,8075],\"mapped\",[7939,953]],[[8076,8076],\"mapped\",[7940,953]],[[8077,8077],\"mapped\",[7941,953]],[[8078,8078],\"mapped\",[7942,953]],[[8079,8079],\"mapped\",[7943,953]],[[8080,8080],\"mapped\",[7968,953]],[[8081,8081],\"mapped\",[7969,953]],[[8082,8082],\"mapped\",[7970,953]],[[8083,8083],\"mapped\",[7971,953]],[[8084,8084],\"mapped\",[7972,953]],[[8085,8085],\"mapped\",[7973,953]],[[8086,8086],\"mapped\",[7974,953]],[[8087,8087],\"mapped\",[7975,953]],[[8088,8088],\"mapped\",[7968,953]],[[8089,8089],\"mapped\",[7969,953]],[[8090,8090],\"mapped\",[7970,953]],[[8091,8091],\"mapped\",[7971,953]],[[8092,8092],\"mapped\",[7972,953]],[[8093,8093],\"mapped\",[7973,953]],[[8094,8094],\"mapped\",[7974,953]],[[8095,8095],\"mapped\",[7975,953]],[[8096,8096],\"mapped\",[8032,953]],[[8097,8097],\"mapped\",[8033,953]],[[8098,8098],\"mapped\",[8034,953]],[[8099,8099],\"mapped\",[8035,953]],[[8100,8100],\"mapped\",[8036,953]],[[8101,8101],\"mapped\",[8037,953]],[[8102,8102],\"mapped\",[8038,953]],[[8103,8103],\"mapped\",[8039,953]],[[8104,8104],\"mapped\",[8032,953]],[[8105,8105],\"mapped\",[8033,953]],[[8106,8106],\"mapped\",[8034,953]],[[8107,8107],\"mapped\",[8035,953]],[[8108,8108],\"mapped\",[8036,953]],[[8109,8109],\"mapped\",[8037,953]],[[8110,8110],\"mapped\",[8038,953]],[[8111,8111],\"mapped\",[8039,953]],[[8112,8113],\"valid\"],[[8114,8114],\"mapped\",[8048,953]],[[8115,8115],\"mapped\",[945,953]],[[8116,8116],\"mapped\",[940,953]],[[8117,8117],\"disallowed\"],[[8118,8118],\"valid\"],[[8119,8119],\"mapped\",[8118,953]],[[8120,8120],\"mapped\",[8112]],[[8121,8121],\"mapped\",[8113]],[[8122,8122],\"mapped\",[8048]],[[8123,8123],\"mapped\",[940]],[[8124,8124],\"mapped\",[945,953]],[[8125,8125],\"disallowed_STD3_mapped\",[32,787]],[[8126,8126],\"mapped\",[953]],[[8127,8127],\"disallowed_STD3_mapped\",[32,787]],[[8128,8128],\"disallowed_STD3_mapped\",[32,834]],[[8129,8129],\"disallowed_STD3_mapped\",[32,776,834]],[[8130,8130],\"mapped\",[8052,953]],[[8131,8131],\"mapped\",[951,953]],[[8132,8132],\"mapped\",[942,953]],[[8133,8133],\"disallowed\"],[[8134,8134],\"valid\"],[[8135,8135],\"mapped\",[8134,953]],[[8136,8136],\"mapped\",[8050]],[[8137,8137],\"mapped\",[941]],[[8138,8138],\"mapped\",[8052]],[[8139,8139],\"mapped\",[942]],[[8140,8140],\"mapped\",[951,953]],[[8141,8141],\"disallowed_STD3_mapped\",[32,787,768]],[[8142,8142],\"disallowed_STD3_mapped\",[32,787,769]],[[8143,8143],\"disallowed_STD3_mapped\",[32,787,834]],[[8144,8146],\"valid\"],[[8147,8147],\"mapped\",[912]],[[8148,8149],\"disallowed\"],[[8150,8151],\"valid\"],[[8152,8152],\"mapped\",[8144]],[[8153,8153],\"mapped\",[8145]],[[8154,8154],\"mapped\",[8054]],[[8155,8155],\"mapped\",[943]],[[8156,8156],\"disallowed\"],[[8157,8157],\"disallowed_STD3_mapped\",[32,788,768]],[[8158,8158],\"disallowed_STD3_mapped\",[32,788,769]],[[8159,8159],\"disallowed_STD3_mapped\",[32,788,834]],[[8160,8162],\"valid\"],[[8163,8163],\"mapped\",[944]],[[8164,8167],\"valid\"],[[8168,8168],\"mapped\",[8160]],[[8169,8169],\"mapped\",[8161]],[[8170,8170],\"mapped\",[8058]],[[8171,8171],\"mapped\",[973]],[[8172,8172],\"mapped\",[8165]],[[8173,8173],\"disallowed_STD3_mapped\",[32,776,768]],[[8174,8174],\"disallowed_STD3_mapped\",[32,776,769]],[[8175,8175],\"disallowed_STD3_mapped\",[96]],[[8176,8177],\"disallowed\"],[[8178,8178],\"mapped\",[8060,953]],[[8179,8179],\"mapped\",[969,953]],[[8180,8180],\"mapped\",[974,953]],[[8181,8181],\"disallowed\"],[[8182,8182],\"valid\"],[[8183,8183],\"mapped\",[8182,953]],[[8184,8184],\"mapped\",[8056]],[[8185,8185],\"mapped\",[972]],[[8186,8186],\"mapped\",[8060]],[[8187,8187],\"mapped\",[974]],[[8188,8188],\"mapped\",[969,953]],[[8189,8189],\"disallowed_STD3_mapped\",[32,769]],[[8190,8190],\"disallowed_STD3_mapped\",[32,788]],[[8191,8191],\"disallowed\"],[[8192,8202],\"disallowed_STD3_mapped\",[32]],[[8203,8203],\"ignored\"],[[8204,8205],\"deviation\",[]],[[8206,8207],\"disallowed\"],[[8208,8208],\"valid\",[],\"NV8\"],[[8209,8209],\"mapped\",[8208]],[[8210,8214],\"valid\",[],\"NV8\"],[[8215,8215],\"disallowed_STD3_mapped\",[32,819]],[[8216,8227],\"valid\",[],\"NV8\"],[[8228,8230],\"disallowed\"],[[8231,8231],\"valid\",[],\"NV8\"],[[8232,8238],\"disallowed\"],[[8239,8239],\"disallowed_STD3_mapped\",[32]],[[8240,8242],\"valid\",[],\"NV8\"],[[8243,8243],\"mapped\",[8242,8242]],[[8244,8244],\"mapped\",[8242,8242,8242]],[[8245,8245],\"valid\",[],\"NV8\"],[[8246,8246],\"mapped\",[8245,8245]],[[8247,8247],\"mapped\",[8245,8245,8245]],[[8248,8251],\"valid\",[],\"NV8\"],[[8252,8252],\"disallowed_STD3_mapped\",[33,33]],[[8253,8253],\"valid\",[],\"NV8\"],[[8254,8254],\"disallowed_STD3_mapped\",[32,773]],[[8255,8262],\"valid\",[],\"NV8\"],[[8263,8263],\"disallowed_STD3_mapped\",[63,63]],[[8264,8264],\"disallowed_STD3_mapped\",[63,33]],[[8265,8265],\"disallowed_STD3_mapped\",[33,63]],[[8266,8269],\"valid\",[],\"NV8\"],[[8270,8274],\"valid\",[],\"NV8\"],[[8275,8276],\"valid\",[],\"NV8\"],[[8277,8278],\"valid\",[],\"NV8\"],[[8279,8279],\"mapped\",[8242,8242,8242,8242]],[[8280,8286],\"valid\",[],\"NV8\"],[[8287,8287],\"disallowed_STD3_mapped\",[32]],[[8288,8288],\"ignored\"],[[8289,8291],\"disallowed\"],[[8292,8292],\"ignored\"],[[8293,8293],\"disallowed\"],[[8294,8297],\"disallowed\"],[[8298,8303],\"disallowed\"],[[8304,8304],\"mapped\",[48]],[[8305,8305],\"mapped\",[105]],[[8306,8307],\"disallowed\"],[[8308,8308],\"mapped\",[52]],[[8309,8309],\"mapped\",[53]],[[8310,8310],\"mapped\",[54]],[[8311,8311],\"mapped\",[55]],[[8312,8312],\"mapped\",[56]],[[8313,8313],\"mapped\",[57]],[[8314,8314],\"disallowed_STD3_mapped\",[43]],[[8315,8315],\"mapped\",[8722]],[[8316,8316],\"disallowed_STD3_mapped\",[61]],[[8317,8317],\"disallowed_STD3_mapped\",[40]],[[8318,8318],\"disallowed_STD3_mapped\",[41]],[[8319,8319],\"mapped\",[110]],[[8320,8320],\"mapped\",[48]],[[8321,8321],\"mapped\",[49]],[[8322,8322],\"mapped\",[50]],[[8323,8323],\"mapped\",[51]],[[8324,8324],\"mapped\",[52]],[[8325,8325],\"mapped\",[53]],[[8326,8326],\"mapped\",[54]],[[8327,8327],\"mapped\",[55]],[[8328,8328],\"mapped\",[56]],[[8329,8329],\"mapped\",[57]],[[8330,8330],\"disallowed_STD3_mapped\",[43]],[[8331,8331],\"mapped\",[8722]],[[8332,8332],\"disallowed_STD3_mapped\",[61]],[[8333,8333],\"disallowed_STD3_mapped\",[40]],[[8334,8334],\"disallowed_STD3_mapped\",[41]],[[8335,8335],\"disallowed\"],[[8336,8336],\"mapped\",[97]],[[8337,8337],\"mapped\",[101]],[[8338,8338],\"mapped\",[111]],[[8339,8339],\"mapped\",[120]],[[8340,8340],\"mapped\",[601]],[[8341,8341],\"mapped\",[104]],[[8342,8342],\"mapped\",[107]],[[8343,8343],\"mapped\",[108]],[[8344,8344],\"mapped\",[109]],[[8345,8345],\"mapped\",[110]],[[8346,8346],\"mapped\",[112]],[[8347,8347],\"mapped\",[115]],[[8348,8348],\"mapped\",[116]],[[8349,8351],\"disallowed\"],[[8352,8359],\"valid\",[],\"NV8\"],[[8360,8360],\"mapped\",[114,115]],[[8361,8362],\"valid\",[],\"NV8\"],[[8363,8363],\"valid\",[],\"NV8\"],[[8364,8364],\"valid\",[],\"NV8\"],[[8365,8367],\"valid\",[],\"NV8\"],[[8368,8369],\"valid\",[],\"NV8\"],[[8370,8373],\"valid\",[],\"NV8\"],[[8374,8376],\"valid\",[],\"NV8\"],[[8377,8377],\"valid\",[],\"NV8\"],[[8378,8378],\"valid\",[],\"NV8\"],[[8379,8381],\"valid\",[],\"NV8\"],[[8382,8382],\"valid\",[],\"NV8\"],[[8383,8399],\"disallowed\"],[[8400,8417],\"valid\",[],\"NV8\"],[[8418,8419],\"valid\",[],\"NV8\"],[[8420,8426],\"valid\",[],\"NV8\"],[[8427,8427],\"valid\",[],\"NV8\"],[[8428,8431],\"valid\",[],\"NV8\"],[[8432,8432],\"valid\",[],\"NV8\"],[[8433,8447],\"disallowed\"],[[8448,8448],\"disallowed_STD3_mapped\",[97,47,99]],[[8449,8449],\"disallowed_STD3_mapped\",[97,47,115]],[[8450,8450],\"mapped\",[99]],[[8451,8451],\"mapped\",[176,99]],[[8452,8452],\"valid\",[],\"NV8\"],[[8453,8453],\"disallowed_STD3_mapped\",[99,47,111]],[[8454,8454],\"disallowed_STD3_mapped\",[99,47,117]],[[8455,8455],\"mapped\",[603]],[[8456,8456],\"valid\",[],\"NV8\"],[[8457,8457],\"mapped\",[176,102]],[[8458,8458],\"mapped\",[103]],[[8459,8462],\"mapped\",[104]],[[8463,8463],\"mapped\",[295]],[[8464,8465],\"mapped\",[105]],[[8466,8467],\"mapped\",[108]],[[8468,8468],\"valid\",[],\"NV8\"],[[8469,8469],\"mapped\",[110]],[[8470,8470],\"mapped\",[110,111]],[[8471,8472],\"valid\",[],\"NV8\"],[[8473,8473],\"mapped\",[112]],[[8474,8474],\"mapped\",[113]],[[8475,8477],\"mapped\",[114]],[[8478,8479],\"valid\",[],\"NV8\"],[[8480,8480],\"mapped\",[115,109]],[[8481,8481],\"mapped\",[116,101,108]],[[8482,8482],\"mapped\",[116,109]],[[8483,8483],\"valid\",[],\"NV8\"],[[8484,8484],\"mapped\",[122]],[[8485,8485],\"valid\",[],\"NV8\"],[[8486,8486],\"mapped\",[969]],[[8487,8487],\"valid\",[],\"NV8\"],[[8488,8488],\"mapped\",[122]],[[8489,8489],\"valid\",[],\"NV8\"],[[8490,8490],\"mapped\",[107]],[[8491,8491],\"mapped\",[229]],[[8492,8492],\"mapped\",[98]],[[8493,8493],\"mapped\",[99]],[[8494,8494],\"valid\",[],\"NV8\"],[[8495,8496],\"mapped\",[101]],[[8497,8497],\"mapped\",[102]],[[8498,8498],\"disallowed\"],[[8499,8499],\"mapped\",[109]],[[8500,8500],\"mapped\",[111]],[[8501,8501],\"mapped\",[1488]],[[8502,8502],\"mapped\",[1489]],[[8503,8503],\"mapped\",[1490]],[[8504,8504],\"mapped\",[1491]],[[8505,8505],\"mapped\",[105]],[[8506,8506],\"valid\",[],\"NV8\"],[[8507,8507],\"mapped\",[102,97,120]],[[8508,8508],\"mapped\",[960]],[[8509,8510],\"mapped\",[947]],[[8511,8511],\"mapped\",[960]],[[8512,8512],\"mapped\",[8721]],[[8513,8516],\"valid\",[],\"NV8\"],[[8517,8518],\"mapped\",[100]],[[8519,8519],\"mapped\",[101]],[[8520,8520],\"mapped\",[105]],[[8521,8521],\"mapped\",[106]],[[8522,8523],\"valid\",[],\"NV8\"],[[8524,8524],\"valid\",[],\"NV8\"],[[8525,8525],\"valid\",[],\"NV8\"],[[8526,8526],\"valid\"],[[8527,8527],\"valid\",[],\"NV8\"],[[8528,8528],\"mapped\",[49,8260,55]],[[8529,8529],\"mapped\",[49,8260,57]],[[8530,8530],\"mapped\",[49,8260,49,48]],[[8531,8531],\"mapped\",[49,8260,51]],[[8532,8532],\"mapped\",[50,8260,51]],[[8533,8533],\"mapped\",[49,8260,53]],[[8534,8534],\"mapped\",[50,8260,53]],[[8535,8535],\"mapped\",[51,8260,53]],[[8536,8536],\"mapped\",[52,8260,53]],[[8537,8537],\"mapped\",[49,8260,54]],[[8538,8538],\"mapped\",[53,8260,54]],[[8539,8539],\"mapped\",[49,8260,56]],[[8540,8540],\"mapped\",[51,8260,56]],[[8541,8541],\"mapped\",[53,8260,56]],[[8542,8542],\"mapped\",[55,8260,56]],[[8543,8543],\"mapped\",[49,8260]],[[8544,8544],\"mapped\",[105]],[[8545,8545],\"mapped\",[105,105]],[[8546,8546],\"mapped\",[105,105,105]],[[8547,8547],\"mapped\",[105,118]],[[8548,8548],\"mapped\",[118]],[[8549,8549],\"mapped\",[118,105]],[[8550,8550],\"mapped\",[118,105,105]],[[8551,8551],\"mapped\",[118,105,105,105]],[[8552,8552],\"mapped\",[105,120]],[[8553,8553],\"mapped\",[120]],[[8554,8554],\"mapped\",[120,105]],[[8555,8555],\"mapped\",[120,105,105]],[[8556,8556],\"mapped\",[108]],[[8557,8557],\"mapped\",[99]],[[8558,8558],\"mapped\",[100]],[[8559,8559],\"mapped\",[109]],[[8560,8560],\"mapped\",[105]],[[8561,8561],\"mapped\",[105,105]],[[8562,8562],\"mapped\",[105,105,105]],[[8563,8563],\"mapped\",[105,118]],[[8564,8564],\"mapped\",[118]],[[8565,8565],\"mapped\",[118,105]],[[8566,8566],\"mapped\",[118,105,105]],[[8567,8567],\"mapped\",[118,105,105,105]],[[8568,8568],\"mapped\",[105,120]],[[8569,8569],\"mapped\",[120]],[[8570,8570],\"mapped\",[120,105]],[[8571,8571],\"mapped\",[120,105,105]],[[8572,8572],\"mapped\",[108]],[[8573,8573],\"mapped\",[99]],[[8574,8574],\"mapped\",[100]],[[8575,8575],\"mapped\",[109]],[[8576,8578],\"valid\",[],\"NV8\"],[[8579,8579],\"disallowed\"],[[8580,8580],\"valid\"],[[8581,8584],\"valid\",[],\"NV8\"],[[8585,8585],\"mapped\",[48,8260,51]],[[8586,8587],\"valid\",[],\"NV8\"],[[8588,8591],\"disallowed\"],[[8592,8682],\"valid\",[],\"NV8\"],[[8683,8691],\"valid\",[],\"NV8\"],[[8692,8703],\"valid\",[],\"NV8\"],[[8704,8747],\"valid\",[],\"NV8\"],[[8748,8748],\"mapped\",[8747,8747]],[[8749,8749],\"mapped\",[8747,8747,8747]],[[8750,8750],\"valid\",[],\"NV8\"],[[8751,8751],\"mapped\",[8750,8750]],[[8752,8752],\"mapped\",[8750,8750,8750]],[[8753,8799],\"valid\",[],\"NV8\"],[[8800,8800],\"disallowed_STD3_valid\"],[[8801,8813],\"valid\",[],\"NV8\"],[[8814,8815],\"disallowed_STD3_valid\"],[[8816,8945],\"valid\",[],\"NV8\"],[[8946,8959],\"valid\",[],\"NV8\"],[[8960,8960],\"valid\",[],\"NV8\"],[[8961,8961],\"valid\",[],\"NV8\"],[[8962,9000],\"valid\",[],\"NV8\"],[[9001,9001],\"mapped\",[12296]],[[9002,9002],\"mapped\",[12297]],[[9003,9082],\"valid\",[],\"NV8\"],[[9083,9083],\"valid\",[],\"NV8\"],[[9084,9084],\"valid\",[],\"NV8\"],[[9085,9114],\"valid\",[],\"NV8\"],[[9115,9166],\"valid\",[],\"NV8\"],[[9167,9168],\"valid\",[],\"NV8\"],[[9169,9179],\"valid\",[],\"NV8\"],[[9180,9191],\"valid\",[],\"NV8\"],[[9192,9192],\"valid\",[],\"NV8\"],[[9193,9203],\"valid\",[],\"NV8\"],[[9204,9210],\"valid\",[],\"NV8\"],[[9211,9215],\"disallowed\"],[[9216,9252],\"valid\",[],\"NV8\"],[[9253,9254],\"valid\",[],\"NV8\"],[[9255,9279],\"disallowed\"],[[9280,9290],\"valid\",[],\"NV8\"],[[9291,9311],\"disallowed\"],[[9312,9312],\"mapped\",[49]],[[9313,9313],\"mapped\",[50]],[[9314,9314],\"mapped\",[51]],[[9315,9315],\"mapped\",[52]],[[9316,9316],\"mapped\",[53]],[[9317,9317],\"mapped\",[54]],[[9318,9318],\"mapped\",[55]],[[9319,9319],\"mapped\",[56]],[[9320,9320],\"mapped\",[57]],[[9321,9321],\"mapped\",[49,48]],[[9322,9322],\"mapped\",[49,49]],[[9323,9323],\"mapped\",[49,50]],[[9324,9324],\"mapped\",[49,51]],[[9325,9325],\"mapped\",[49,52]],[[9326,9326],\"mapped\",[49,53]],[[9327,9327],\"mapped\",[49,54]],[[9328,9328],\"mapped\",[49,55]],[[9329,9329],\"mapped\",[49,56]],[[9330,9330],\"mapped\",[49,57]],[[9331,9331],\"mapped\",[50,48]],[[9332,9332],\"disallowed_STD3_mapped\",[40,49,41]],[[9333,9333],\"disallowed_STD3_mapped\",[40,50,41]],[[9334,9334],\"disallowed_STD3_mapped\",[40,51,41]],[[9335,9335],\"disallowed_STD3_mapped\",[40,52,41]],[[9336,9336],\"disallowed_STD3_mapped\",[40,53,41]],[[9337,9337],\"disallowed_STD3_mapped\",[40,54,41]],[[9338,9338],\"disallowed_STD3_mapped\",[40,55,41]],[[9339,9339],\"disallowed_STD3_mapped\",[40,56,41]],[[9340,9340],\"disallowed_STD3_mapped\",[40,57,41]],[[9341,9341],\"disallowed_STD3_mapped\",[40,49,48,41]],[[9342,9342],\"disallowed_STD3_mapped\",[40,49,49,41]],[[9343,9343],\"disallowed_STD3_mapped\",[40,49,50,41]],[[9344,9344],\"disallowed_STD3_mapped\",[40,49,51,41]],[[9345,9345],\"disallowed_STD3_mapped\",[40,49,52,41]],[[9346,9346],\"disallowed_STD3_mapped\",[40,49,53,41]],[[9347,9347],\"disallowed_STD3_mapped\",[40,49,54,41]],[[9348,9348],\"disallowed_STD3_mapped\",[40,49,55,41]],[[9349,9349],\"disallowed_STD3_mapped\",[40,49,56,41]],[[9350,9350],\"disallowed_STD3_mapped\",[40,49,57,41]],[[9351,9351],\"disallowed_STD3_mapped\",[40,50,48,41]],[[9352,9371],\"disallowed\"],[[9372,9372],\"disallowed_STD3_mapped\",[40,97,41]],[[9373,9373],\"disallowed_STD3_mapped\",[40,98,41]],[[9374,9374],\"disallowed_STD3_mapped\",[40,99,41]],[[9375,9375],\"disallowed_STD3_mapped\",[40,100,41]],[[9376,9376],\"disallowed_STD3_mapped\",[40,101,41]],[[9377,9377],\"disallowed_STD3_mapped\",[40,102,41]],[[9378,9378],\"disallowed_STD3_mapped\",[40,103,41]],[[9379,9379],\"disallowed_STD3_mapped\",[40,104,41]],[[9380,9380],\"disallowed_STD3_mapped\",[40,105,41]],[[9381,9381],\"disallowed_STD3_mapped\",[40,106,41]],[[9382,9382],\"disallowed_STD3_mapped\",[40,107,41]],[[9383,9383],\"disallowed_STD3_mapped\",[40,108,41]],[[9384,9384],\"disallowed_STD3_mapped\",[40,109,41]],[[9385,9385],\"disallowed_STD3_mapped\",[40,110,41]],[[9386,9386],\"disallowed_STD3_mapped\",[40,111,41]],[[9387,9387],\"disallowed_STD3_mapped\",[40,112,41]],[[9388,9388],\"disallowed_STD3_mapped\",[40,113,41]],[[9389,9389],\"disallowed_STD3_mapped\",[40,114,41]],[[9390,9390],\"disallowed_STD3_mapped\",[40,115,41]],[[9391,9391],\"disallowed_STD3_mapped\",[40,116,41]],[[9392,9392],\"disallowed_STD3_mapped\",[40,117,41]],[[9393,9393],\"disallowed_STD3_mapped\",[40,118,41]],[[9394,9394],\"disallowed_STD3_mapped\",[40,119,41]],[[9395,9395],\"disallowed_STD3_mapped\",[40,120,41]],[[9396,9396],\"disallowed_STD3_mapped\",[40,121,41]],[[9397,9397],\"disallowed_STD3_mapped\",[40,122,41]],[[9398,9398],\"mapped\",[97]],[[9399,9399],\"mapped\",[98]],[[9400,9400],\"mapped\",[99]],[[9401,9401],\"mapped\",[100]],[[9402,9402],\"mapped\",[101]],[[9403,9403],\"mapped\",[102]],[[9404,9404],\"mapped\",[103]],[[9405,9405],\"mapped\",[104]],[[9406,9406],\"mapped\",[105]],[[9407,9407],\"mapped\",[106]],[[9408,9408],\"mapped\",[107]],[[9409,9409],\"mapped\",[108]],[[9410,9410],\"mapped\",[109]],[[9411,9411],\"mapped\",[110]],[[9412,9412],\"mapped\",[111]],[[9413,9413],\"mapped\",[112]],[[9414,9414],\"mapped\",[113]],[[9415,9415],\"mapped\",[114]],[[9416,9416],\"mapped\",[115]],[[9417,9417],\"mapped\",[116]],[[9418,9418],\"mapped\",[117]],[[9419,9419],\"mapped\",[118]],[[9420,9420],\"mapped\",[119]],[[9421,9421],\"mapped\",[120]],[[9422,9422],\"mapped\",[121]],[[9423,9423],\"mapped\",[122]],[[9424,9424],\"mapped\",[97]],[[9425,9425],\"mapped\",[98]],[[9426,9426],\"mapped\",[99]],[[9427,9427],\"mapped\",[100]],[[9428,9428],\"mapped\",[101]],[[9429,9429],\"mapped\",[102]],[[9430,9430],\"mapped\",[103]],[[9431,9431],\"mapped\",[104]],[[9432,9432],\"mapped\",[105]],[[9433,9433],\"mapped\",[106]],[[9434,9434],\"mapped\",[107]],[[9435,9435],\"mapped\",[108]],[[9436,9436],\"mapped\",[109]],[[9437,9437],\"mapped\",[110]],[[9438,9438],\"mapped\",[111]],[[9439,9439],\"mapped\",[112]],[[9440,9440],\"mapped\",[113]],[[9441,9441],\"mapped\",[114]],[[9442,9442],\"mapped\",[115]],[[9443,9443],\"mapped\",[116]],[[9444,9444],\"mapped\",[117]],[[9445,9445],\"mapped\",[118]],[[9446,9446],\"mapped\",[119]],[[9447,9447],\"mapped\",[120]],[[9448,9448],\"mapped\",[121]],[[9449,9449],\"mapped\",[122]],[[9450,9450],\"mapped\",[48]],[[9451,9470],\"valid\",[],\"NV8\"],[[9471,9471],\"valid\",[],\"NV8\"],[[9472,9621],\"valid\",[],\"NV8\"],[[9622,9631],\"valid\",[],\"NV8\"],[[9632,9711],\"valid\",[],\"NV8\"],[[9712,9719],\"valid\",[],\"NV8\"],[[9720,9727],\"valid\",[],\"NV8\"],[[9728,9747],\"valid\",[],\"NV8\"],[[9748,9749],\"valid\",[],\"NV8\"],[[9750,9751],\"valid\",[],\"NV8\"],[[9752,9752],\"valid\",[],\"NV8\"],[[9753,9753],\"valid\",[],\"NV8\"],[[9754,9839],\"valid\",[],\"NV8\"],[[9840,9841],\"valid\",[],\"NV8\"],[[9842,9853],\"valid\",[],\"NV8\"],[[9854,9855],\"valid\",[],\"NV8\"],[[9856,9865],\"valid\",[],\"NV8\"],[[9866,9873],\"valid\",[],\"NV8\"],[[9874,9884],\"valid\",[],\"NV8\"],[[9885,9885],\"valid\",[],\"NV8\"],[[9886,9887],\"valid\",[],\"NV8\"],[[9888,9889],\"valid\",[],\"NV8\"],[[9890,9905],\"valid\",[],\"NV8\"],[[9906,9906],\"valid\",[],\"NV8\"],[[9907,9916],\"valid\",[],\"NV8\"],[[9917,9919],\"valid\",[],\"NV8\"],[[9920,9923],\"valid\",[],\"NV8\"],[[9924,9933],\"valid\",[],\"NV8\"],[[9934,9934],\"valid\",[],\"NV8\"],[[9935,9953],\"valid\",[],\"NV8\"],[[9954,9954],\"valid\",[],\"NV8\"],[[9955,9955],\"valid\",[],\"NV8\"],[[9956,9959],\"valid\",[],\"NV8\"],[[9960,9983],\"valid\",[],\"NV8\"],[[9984,9984],\"valid\",[],\"NV8\"],[[9985,9988],\"valid\",[],\"NV8\"],[[9989,9989],\"valid\",[],\"NV8\"],[[9990,9993],\"valid\",[],\"NV8\"],[[9994,9995],\"valid\",[],\"NV8\"],[[9996,10023],\"valid\",[],\"NV8\"],[[10024,10024],\"valid\",[],\"NV8\"],[[10025,10059],\"valid\",[],\"NV8\"],[[10060,10060],\"valid\",[],\"NV8\"],[[10061,10061],\"valid\",[],\"NV8\"],[[10062,10062],\"valid\",[],\"NV8\"],[[10063,10066],\"valid\",[],\"NV8\"],[[10067,10069],\"valid\",[],\"NV8\"],[[10070,10070],\"valid\",[],\"NV8\"],[[10071,10071],\"valid\",[],\"NV8\"],[[10072,10078],\"valid\",[],\"NV8\"],[[10079,10080],\"valid\",[],\"NV8\"],[[10081,10087],\"valid\",[],\"NV8\"],[[10088,10101],\"valid\",[],\"NV8\"],[[10102,10132],\"valid\",[],\"NV8\"],[[10133,10135],\"valid\",[],\"NV8\"],[[10136,10159],\"valid\",[],\"NV8\"],[[10160,10160],\"valid\",[],\"NV8\"],[[10161,10174],\"valid\",[],\"NV8\"],[[10175,10175],\"valid\",[],\"NV8\"],[[10176,10182],\"valid\",[],\"NV8\"],[[10183,10186],\"valid\",[],\"NV8\"],[[10187,10187],\"valid\",[],\"NV8\"],[[10188,10188],\"valid\",[],\"NV8\"],[[10189,10189],\"valid\",[],\"NV8\"],[[10190,10191],\"valid\",[],\"NV8\"],[[10192,10219],\"valid\",[],\"NV8\"],[[10220,10223],\"valid\",[],\"NV8\"],[[10224,10239],\"valid\",[],\"NV8\"],[[10240,10495],\"valid\",[],\"NV8\"],[[10496,10763],\"valid\",[],\"NV8\"],[[10764,10764],\"mapped\",[8747,8747,8747,8747]],[[10765,10867],\"valid\",[],\"NV8\"],[[10868,10868],\"disallowed_STD3_mapped\",[58,58,61]],[[10869,10869],\"disallowed_STD3_mapped\",[61,61]],[[10870,10870],\"disallowed_STD3_mapped\",[61,61,61]],[[10871,10971],\"valid\",[],\"NV8\"],[[10972,10972],\"mapped\",[10973,824]],[[10973,11007],\"valid\",[],\"NV8\"],[[11008,11021],\"valid\",[],\"NV8\"],[[11022,11027],\"valid\",[],\"NV8\"],[[11028,11034],\"valid\",[],\"NV8\"],[[11035,11039],\"valid\",[],\"NV8\"],[[11040,11043],\"valid\",[],\"NV8\"],[[11044,11084],\"valid\",[],\"NV8\"],[[11085,11087],\"valid\",[],\"NV8\"],[[11088,11092],\"valid\",[],\"NV8\"],[[11093,11097],\"valid\",[],\"NV8\"],[[11098,11123],\"valid\",[],\"NV8\"],[[11124,11125],\"disallowed\"],[[11126,11157],\"valid\",[],\"NV8\"],[[11158,11159],\"disallowed\"],[[11160,11193],\"valid\",[],\"NV8\"],[[11194,11196],\"disallowed\"],[[11197,11208],\"valid\",[],\"NV8\"],[[11209,11209],\"disallowed\"],[[11210,11217],\"valid\",[],\"NV8\"],[[11218,11243],\"disallowed\"],[[11244,11247],\"valid\",[],\"NV8\"],[[11248,11263],\"disallowed\"],[[11264,11264],\"mapped\",[11312]],[[11265,11265],\"mapped\",[11313]],[[11266,11266],\"mapped\",[11314]],[[11267,11267],\"mapped\",[11315]],[[11268,11268],\"mapped\",[11316]],[[11269,11269],\"mapped\",[11317]],[[11270,11270],\"mapped\",[11318]],[[11271,11271],\"mapped\",[11319]],[[11272,11272],\"mapped\",[11320]],[[11273,11273],\"mapped\",[11321]],[[11274,11274],\"mapped\",[11322]],[[11275,11275],\"mapped\",[11323]],[[11276,11276],\"mapped\",[11324]],[[11277,11277],\"mapped\",[11325]],[[11278,11278],\"mapped\",[11326]],[[11279,11279],\"mapped\",[11327]],[[11280,11280],\"mapped\",[11328]],[[11281,11281],\"mapped\",[11329]],[[11282,11282],\"mapped\",[11330]],[[11283,11283],\"mapped\",[11331]],[[11284,11284],\"mapped\",[11332]],[[11285,11285],\"mapped\",[11333]],[[11286,11286],\"mapped\",[11334]],[[11287,11287],\"mapped\",[11335]],[[11288,11288],\"mapped\",[11336]],[[11289,11289],\"mapped\",[11337]],[[11290,11290],\"mapped\",[11338]],[[11291,11291],\"mapped\",[11339]],[[11292,11292],\"mapped\",[11340]],[[11293,11293],\"mapped\",[11341]],[[11294,11294],\"mapped\",[11342]],[[11295,11295],\"mapped\",[11343]],[[11296,11296],\"mapped\",[11344]],[[11297,11297],\"mapped\",[11345]],[[11298,11298],\"mapped\",[11346]],[[11299,11299],\"mapped\",[11347]],[[11300,11300],\"mapped\",[11348]],[[11301,11301],\"mapped\",[11349]],[[11302,11302],\"mapped\",[11350]],[[11303,11303],\"mapped\",[11351]],[[11304,11304],\"mapped\",[11352]],[[11305,11305],\"mapped\",[11353]],[[11306,11306],\"mapped\",[11354]],[[11307,11307],\"mapped\",[11355]],[[11308,11308],\"mapped\",[11356]],[[11309,11309],\"mapped\",[11357]],[[11310,11310],\"mapped\",[11358]],[[11311,11311],\"disallowed\"],[[11312,11358],\"valid\"],[[11359,11359],\"disallowed\"],[[11360,11360],\"mapped\",[11361]],[[11361,11361],\"valid\"],[[11362,11362],\"mapped\",[619]],[[11363,11363],\"mapped\",[7549]],[[11364,11364],\"mapped\",[637]],[[11365,11366],\"valid\"],[[11367,11367],\"mapped\",[11368]],[[11368,11368],\"valid\"],[[11369,11369],\"mapped\",[11370]],[[11370,11370],\"valid\"],[[11371,11371],\"mapped\",[11372]],[[11372,11372],\"valid\"],[[11373,11373],\"mapped\",[593]],[[11374,11374],\"mapped\",[625]],[[11375,11375],\"mapped\",[592]],[[11376,11376],\"mapped\",[594]],[[11377,11377],\"valid\"],[[11378,11378],\"mapped\",[11379]],[[11379,11379],\"valid\"],[[11380,11380],\"valid\"],[[11381,11381],\"mapped\",[11382]],[[11382,11383],\"valid\"],[[11384,11387],\"valid\"],[[11388,11388],\"mapped\",[106]],[[11389,11389],\"mapped\",[118]],[[11390,11390],\"mapped\",[575]],[[11391,11391],\"mapped\",[576]],[[11392,11392],\"mapped\",[11393]],[[11393,11393],\"valid\"],[[11394,11394],\"mapped\",[11395]],[[11395,11395],\"valid\"],[[11396,11396],\"mapped\",[11397]],[[11397,11397],\"valid\"],[[11398,11398],\"mapped\",[11399]],[[11399,11399],\"valid\"],[[11400,11400],\"mapped\",[11401]],[[11401,11401],\"valid\"],[[11402,11402],\"mapped\",[11403]],[[11403,11403],\"valid\"],[[11404,11404],\"mapped\",[11405]],[[11405,11405],\"valid\"],[[11406,11406],\"mapped\",[11407]],[[11407,11407],\"valid\"],[[11408,11408],\"mapped\",[11409]],[[11409,11409],\"valid\"],[[11410,11410],\"mapped\",[11411]],[[11411,11411],\"valid\"],[[11412,11412],\"mapped\",[11413]],[[11413,11413],\"valid\"],[[11414,11414],\"mapped\",[11415]],[[11415,11415],\"valid\"],[[11416,11416],\"mapped\",[11417]],[[11417,11417],\"valid\"],[[11418,11418],\"mapped\",[11419]],[[11419,11419],\"valid\"],[[11420,11420],\"mapped\",[11421]],[[11421,11421],\"valid\"],[[11422,11422],\"mapped\",[11423]],[[11423,11423],\"valid\"],[[11424,11424],\"mapped\",[11425]],[[11425,11425],\"valid\"],[[11426,11426],\"mapped\",[11427]],[[11427,11427],\"valid\"],[[11428,11428],\"mapped\",[11429]],[[11429,11429],\"valid\"],[[11430,11430],\"mapped\",[11431]],[[11431,11431],\"valid\"],[[11432,11432],\"mapped\",[11433]],[[11433,11433],\"valid\"],[[11434,11434],\"mapped\",[11435]],[[11435,11435],\"valid\"],[[11436,11436],\"mapped\",[11437]],[[11437,11437],\"valid\"],[[11438,11438],\"mapped\",[11439]],[[11439,11439],\"valid\"],[[11440,11440],\"mapped\",[11441]],[[11441,11441],\"valid\"],[[11442,11442],\"mapped\",[11443]],[[11443,11443],\"valid\"],[[11444,11444],\"mapped\",[11445]],[[11445,11445],\"valid\"],[[11446,11446],\"mapped\",[11447]],[[11447,11447],\"valid\"],[[11448,11448],\"mapped\",[11449]],[[11449,11449],\"valid\"],[[11450,11450],\"mapped\",[11451]],[[11451,11451],\"valid\"],[[11452,11452],\"mapped\",[11453]],[[11453,11453],\"valid\"],[[11454,11454],\"mapped\",[11455]],[[11455,11455],\"valid\"],[[11456,11456],\"mapped\",[11457]],[[11457,11457],\"valid\"],[[11458,11458],\"mapped\",[11459]],[[11459,11459],\"valid\"],[[11460,11460],\"mapped\",[11461]],[[11461,11461],\"valid\"],[[11462,11462],\"mapped\",[11463]],[[11463,11463],\"valid\"],[[11464,11464],\"mapped\",[11465]],[[11465,11465],\"valid\"],[[11466,11466],\"mapped\",[11467]],[[11467,11467],\"valid\"],[[11468,11468],\"mapped\",[11469]],[[11469,11469],\"valid\"],[[11470,11470],\"mapped\",[11471]],[[11471,11471],\"valid\"],[[11472,11472],\"mapped\",[11473]],[[11473,11473],\"valid\"],[[11474,11474],\"mapped\",[11475]],[[11475,11475],\"valid\"],[[11476,11476],\"mapped\",[11477]],[[11477,11477],\"valid\"],[[11478,11478],\"mapped\",[11479]],[[11479,11479],\"valid\"],[[11480,11480],\"mapped\",[11481]],[[11481,11481],\"valid\"],[[11482,11482],\"mapped\",[11483]],[[11483,11483],\"valid\"],[[11484,11484],\"mapped\",[11485]],[[11485,11485],\"valid\"],[[11486,11486],\"mapped\",[11487]],[[11487,11487],\"valid\"],[[11488,11488],\"mapped\",[11489]],[[11489,11489],\"valid\"],[[11490,11490],\"mapped\",[11491]],[[11491,11492],\"valid\"],[[11493,11498],\"valid\",[],\"NV8\"],[[11499,11499],\"mapped\",[11500]],[[11500,11500],\"valid\"],[[11501,11501],\"mapped\",[11502]],[[11502,11505],\"valid\"],[[11506,11506],\"mapped\",[11507]],[[11507,11507],\"valid\"],[[11508,11512],\"disallowed\"],[[11513,11519],\"valid\",[],\"NV8\"],[[11520,11557],\"valid\"],[[11558,11558],\"disallowed\"],[[11559,11559],\"valid\"],[[11560,11564],\"disallowed\"],[[11565,11565],\"valid\"],[[11566,11567],\"disallowed\"],[[11568,11621],\"valid\"],[[11622,11623],\"valid\"],[[11624,11630],\"disallowed\"],[[11631,11631],\"mapped\",[11617]],[[11632,11632],\"valid\",[],\"NV8\"],[[11633,11646],\"disallowed\"],[[11647,11647],\"valid\"],[[11648,11670],\"valid\"],[[11671,11679],\"disallowed\"],[[11680,11686],\"valid\"],[[11687,11687],\"disallowed\"],[[11688,11694],\"valid\"],[[11695,11695],\"disallowed\"],[[11696,11702],\"valid\"],[[11703,11703],\"disallowed\"],[[11704,11710],\"valid\"],[[11711,11711],\"disallowed\"],[[11712,11718],\"valid\"],[[11719,11719],\"disallowed\"],[[11720,11726],\"valid\"],[[11727,11727],\"disallowed\"],[[11728,11734],\"valid\"],[[11735,11735],\"disallowed\"],[[11736,11742],\"valid\"],[[11743,11743],\"disallowed\"],[[11744,11775],\"valid\"],[[11776,11799],\"valid\",[],\"NV8\"],[[11800,11803],\"valid\",[],\"NV8\"],[[11804,11805],\"valid\",[],\"NV8\"],[[11806,11822],\"valid\",[],\"NV8\"],[[11823,11823],\"valid\"],[[11824,11824],\"valid\",[],\"NV8\"],[[11825,11825],\"valid\",[],\"NV8\"],[[11826,11835],\"valid\",[],\"NV8\"],[[11836,11842],\"valid\",[],\"NV8\"],[[11843,11903],\"disallowed\"],[[11904,11929],\"valid\",[],\"NV8\"],[[11930,11930],\"disallowed\"],[[11931,11934],\"valid\",[],\"NV8\"],[[11935,11935],\"mapped\",[27597]],[[11936,12018],\"valid\",[],\"NV8\"],[[12019,12019],\"mapped\",[40863]],[[12020,12031],\"disallowed\"],[[12032,12032],\"mapped\",[19968]],[[12033,12033],\"mapped\",[20008]],[[12034,12034],\"mapped\",[20022]],[[12035,12035],\"mapped\",[20031]],[[12036,12036],\"mapped\",[20057]],[[12037,12037],\"mapped\",[20101]],[[12038,12038],\"mapped\",[20108]],[[12039,12039],\"mapped\",[20128]],[[12040,12040],\"mapped\",[20154]],[[12041,12041],\"mapped\",[20799]],[[12042,12042],\"mapped\",[20837]],[[12043,12043],\"mapped\",[20843]],[[12044,12044],\"mapped\",[20866]],[[12045,12045],\"mapped\",[20886]],[[12046,12046],\"mapped\",[20907]],[[12047,12047],\"mapped\",[20960]],[[12048,12048],\"mapped\",[20981]],[[12049,12049],\"mapped\",[20992]],[[12050,12050],\"mapped\",[21147]],[[12051,12051],\"mapped\",[21241]],[[12052,12052],\"mapped\",[21269]],[[12053,12053],\"mapped\",[21274]],[[12054,12054],\"mapped\",[21304]],[[12055,12055],\"mapped\",[21313]],[[12056,12056],\"mapped\",[21340]],[[12057,12057],\"mapped\",[21353]],[[12058,12058],\"mapped\",[21378]],[[12059,12059],\"mapped\",[21430]],[[12060,12060],\"mapped\",[21448]],[[12061,12061],\"mapped\",[21475]],[[12062,12062],\"mapped\",[22231]],[[12063,12063],\"mapped\",[22303]],[[12064,12064],\"mapped\",[22763]],[[12065,12065],\"mapped\",[22786]],[[12066,12066],\"mapped\",[22794]],[[12067,12067],\"mapped\",[22805]],[[12068,12068],\"mapped\",[22823]],[[12069,12069],\"mapped\",[22899]],[[12070,12070],\"mapped\",[23376]],[[12071,12071],\"mapped\",[23424]],[[12072,12072],\"mapped\",[23544]],[[12073,12073],\"mapped\",[23567]],[[12074,12074],\"mapped\",[23586]],[[12075,12075],\"mapped\",[23608]],[[12076,12076],\"mapped\",[23662]],[[12077,12077],\"mapped\",[23665]],[[12078,12078],\"mapped\",[24027]],[[12079,12079],\"mapped\",[24037]],[[12080,12080],\"mapped\",[24049]],[[12081,12081],\"mapped\",[24062]],[[12082,12082],\"mapped\",[24178]],[[12083,12083],\"mapped\",[24186]],[[12084,12084],\"mapped\",[24191]],[[12085,12085],\"mapped\",[24308]],[[12086,12086],\"mapped\",[24318]],[[12087,12087],\"mapped\",[24331]],[[12088,12088],\"mapped\",[24339]],[[12089,12089],\"mapped\",[24400]],[[12090,12090],\"mapped\",[24417]],[[12091,12091],\"mapped\",[24435]],[[12092,12092],\"mapped\",[24515]],[[12093,12093],\"mapped\",[25096]],[[12094,12094],\"mapped\",[25142]],[[12095,12095],\"mapped\",[25163]],[[12096,12096],\"mapped\",[25903]],[[12097,12097],\"mapped\",[25908]],[[12098,12098],\"mapped\",[25991]],[[12099,12099],\"mapped\",[26007]],[[12100,12100],\"mapped\",[26020]],[[12101,12101],\"mapped\",[26041]],[[12102,12102],\"mapped\",[26080]],[[12103,12103],\"mapped\",[26085]],[[12104,12104],\"mapped\",[26352]],[[12105,12105],\"mapped\",[26376]],[[12106,12106],\"mapped\",[26408]],[[12107,12107],\"mapped\",[27424]],[[12108,12108],\"mapped\",[27490]],[[12109,12109],\"mapped\",[27513]],[[12110,12110],\"mapped\",[27571]],[[12111,12111],\"mapped\",[27595]],[[12112,12112],\"mapped\",[27604]],[[12113,12113],\"mapped\",[27611]],[[12114,12114],\"mapped\",[27663]],[[12115,12115],\"mapped\",[27668]],[[12116,12116],\"mapped\",[27700]],[[12117,12117],\"mapped\",[28779]],[[12118,12118],\"mapped\",[29226]],[[12119,12119],\"mapped\",[29238]],[[12120,12120],\"mapped\",[29243]],[[12121,12121],\"mapped\",[29247]],[[12122,12122],\"mapped\",[29255]],[[12123,12123],\"mapped\",[29273]],[[12124,12124],\"mapped\",[29275]],[[12125,12125],\"mapped\",[29356]],[[12126,12126],\"mapped\",[29572]],[[12127,12127],\"mapped\",[29577]],[[12128,12128],\"mapped\",[29916]],[[12129,12129],\"mapped\",[29926]],[[12130,12130],\"mapped\",[29976]],[[12131,12131],\"mapped\",[29983]],[[12132,12132],\"mapped\",[29992]],[[12133,12133],\"mapped\",[30000]],[[12134,12134],\"mapped\",[30091]],[[12135,12135],\"mapped\",[30098]],[[12136,12136],\"mapped\",[30326]],[[12137,12137],\"mapped\",[30333]],[[12138,12138],\"mapped\",[30382]],[[12139,12139],\"mapped\",[30399]],[[12140,12140],\"mapped\",[30446]],[[12141,12141],\"mapped\",[30683]],[[12142,12142],\"mapped\",[30690]],[[12143,12143],\"mapped\",[30707]],[[12144,12144],\"mapped\",[31034]],[[12145,12145],\"mapped\",[31160]],[[12146,12146],\"mapped\",[31166]],[[12147,12147],\"mapped\",[31348]],[[12148,12148],\"mapped\",[31435]],[[12149,12149],\"mapped\",[31481]],[[12150,12150],\"mapped\",[31859]],[[12151,12151],\"mapped\",[31992]],[[12152,12152],\"mapped\",[32566]],[[12153,12153],\"mapped\",[32593]],[[12154,12154],\"mapped\",[32650]],[[12155,12155],\"mapped\",[32701]],[[12156,12156],\"mapped\",[32769]],[[12157,12157],\"mapped\",[32780]],[[12158,12158],\"mapped\",[32786]],[[12159,12159],\"mapped\",[32819]],[[12160,12160],\"mapped\",[32895]],[[12161,12161],\"mapped\",[32905]],[[12162,12162],\"mapped\",[33251]],[[12163,12163],\"mapped\",[33258]],[[12164,12164],\"mapped\",[33267]],[[12165,12165],\"mapped\",[33276]],[[12166,12166],\"mapped\",[33292]],[[12167,12167],\"mapped\",[33307]],[[12168,12168],\"mapped\",[33311]],[[12169,12169],\"mapped\",[33390]],[[12170,12170],\"mapped\",[33394]],[[12171,12171],\"mapped\",[33400]],[[12172,12172],\"mapped\",[34381]],[[12173,12173],\"mapped\",[34411]],[[12174,12174],\"mapped\",[34880]],[[12175,12175],\"mapped\",[34892]],[[12176,12176],\"mapped\",[34915]],[[12177,12177],\"mapped\",[35198]],[[12178,12178],\"mapped\",[35211]],[[12179,12179],\"mapped\",[35282]],[[12180,12180],\"mapped\",[35328]],[[12181,12181],\"mapped\",[35895]],[[12182,12182],\"mapped\",[35910]],[[12183,12183],\"mapped\",[35925]],[[12184,12184],\"mapped\",[35960]],[[12185,12185],\"mapped\",[35997]],[[12186,12186],\"mapped\",[36196]],[[12187,12187],\"mapped\",[36208]],[[12188,12188],\"mapped\",[36275]],[[12189,12189],\"mapped\",[36523]],[[12190,12190],\"mapped\",[36554]],[[12191,12191],\"mapped\",[36763]],[[12192,12192],\"mapped\",[36784]],[[12193,12193],\"mapped\",[36789]],[[12194,12194],\"mapped\",[37009]],[[12195,12195],\"mapped\",[37193]],[[12196,12196],\"mapped\",[37318]],[[12197,12197],\"mapped\",[37324]],[[12198,12198],\"mapped\",[37329]],[[12199,12199],\"mapped\",[38263]],[[12200,12200],\"mapped\",[38272]],[[12201,12201],\"mapped\",[38428]],[[12202,12202],\"mapped\",[38582]],[[12203,12203],\"mapped\",[38585]],[[12204,12204],\"mapped\",[38632]],[[12205,12205],\"mapped\",[38737]],[[12206,12206],\"mapped\",[38750]],[[12207,12207],\"mapped\",[38754]],[[12208,12208],\"mapped\",[38761]],[[12209,12209],\"mapped\",[38859]],[[12210,12210],\"mapped\",[38893]],[[12211,12211],\"mapped\",[38899]],[[12212,12212],\"mapped\",[38913]],[[12213,12213],\"mapped\",[39080]],[[12214,12214],\"mapped\",[39131]],[[12215,12215],\"mapped\",[39135]],[[12216,12216],\"mapped\",[39318]],[[12217,12217],\"mapped\",[39321]],[[12218,12218],\"mapped\",[39340]],[[12219,12219],\"mapped\",[39592]],[[12220,12220],\"mapped\",[39640]],[[12221,12221],\"mapped\",[39647]],[[12222,12222],\"mapped\",[39717]],[[12223,12223],\"mapped\",[39727]],[[12224,12224],\"mapped\",[39730]],[[12225,12225],\"mapped\",[39740]],[[12226,12226],\"mapped\",[39770]],[[12227,12227],\"mapped\",[40165]],[[12228,12228],\"mapped\",[40565]],[[12229,12229],\"mapped\",[40575]],[[12230,12230],\"mapped\",[40613]],[[12231,12231],\"mapped\",[40635]],[[12232,12232],\"mapped\",[40643]],[[12233,12233],\"mapped\",[40653]],[[12234,12234],\"mapped\",[40657]],[[12235,12235],\"mapped\",[40697]],[[12236,12236],\"mapped\",[40701]],[[12237,12237],\"mapped\",[40718]],[[12238,12238],\"mapped\",[40723]],[[12239,12239],\"mapped\",[40736]],[[12240,12240],\"mapped\",[40763]],[[12241,12241],\"mapped\",[40778]],[[12242,12242],\"mapped\",[40786]],[[12243,12243],\"mapped\",[40845]],[[12244,12244],\"mapped\",[40860]],[[12245,12245],\"mapped\",[40864]],[[12246,12271],\"disallowed\"],[[12272,12283],\"disallowed\"],[[12284,12287],\"disallowed\"],[[12288,12288],\"disallowed_STD3_mapped\",[32]],[[12289,12289],\"valid\",[],\"NV8\"],[[12290,12290],\"mapped\",[46]],[[12291,12292],\"valid\",[],\"NV8\"],[[12293,12295],\"valid\"],[[12296,12329],\"valid\",[],\"NV8\"],[[12330,12333],\"valid\"],[[12334,12341],\"valid\",[],\"NV8\"],[[12342,12342],\"mapped\",[12306]],[[12343,12343],\"valid\",[],\"NV8\"],[[12344,12344],\"mapped\",[21313]],[[12345,12345],\"mapped\",[21316]],[[12346,12346],\"mapped\",[21317]],[[12347,12347],\"valid\",[],\"NV8\"],[[12348,12348],\"valid\"],[[12349,12349],\"valid\",[],\"NV8\"],[[12350,12350],\"valid\",[],\"NV8\"],[[12351,12351],\"valid\",[],\"NV8\"],[[12352,12352],\"disallowed\"],[[12353,12436],\"valid\"],[[12437,12438],\"valid\"],[[12439,12440],\"disallowed\"],[[12441,12442],\"valid\"],[[12443,12443],\"disallowed_STD3_mapped\",[32,12441]],[[12444,12444],\"disallowed_STD3_mapped\",[32,12442]],[[12445,12446],\"valid\"],[[12447,12447],\"mapped\",[12424,12426]],[[12448,12448],\"valid\",[],\"NV8\"],[[12449,12542],\"valid\"],[[12543,12543],\"mapped\",[12467,12488]],[[12544,12548],\"disallowed\"],[[12549,12588],\"valid\"],[[12589,12589],\"valid\"],[[12590,12592],\"disallowed\"],[[12593,12593],\"mapped\",[4352]],[[12594,12594],\"mapped\",[4353]],[[12595,12595],\"mapped\",[4522]],[[12596,12596],\"mapped\",[4354]],[[12597,12597],\"mapped\",[4524]],[[12598,12598],\"mapped\",[4525]],[[12599,12599],\"mapped\",[4355]],[[12600,12600],\"mapped\",[4356]],[[12601,12601],\"mapped\",[4357]],[[12602,12602],\"mapped\",[4528]],[[12603,12603],\"mapped\",[4529]],[[12604,12604],\"mapped\",[4530]],[[12605,12605],\"mapped\",[4531]],[[12606,12606],\"mapped\",[4532]],[[12607,12607],\"mapped\",[4533]],[[12608,12608],\"mapped\",[4378]],[[12609,12609],\"mapped\",[4358]],[[12610,12610],\"mapped\",[4359]],[[12611,12611],\"mapped\",[4360]],[[12612,12612],\"mapped\",[4385]],[[12613,12613],\"mapped\",[4361]],[[12614,12614],\"mapped\",[4362]],[[12615,12615],\"mapped\",[4363]],[[12616,12616],\"mapped\",[4364]],[[12617,12617],\"mapped\",[4365]],[[12618,12618],\"mapped\",[4366]],[[12619,12619],\"mapped\",[4367]],[[12620,12620],\"mapped\",[4368]],[[12621,12621],\"mapped\",[4369]],[[12622,12622],\"mapped\",[4370]],[[12623,12623],\"mapped\",[4449]],[[12624,12624],\"mapped\",[4450]],[[12625,12625],\"mapped\",[4451]],[[12626,12626],\"mapped\",[4452]],[[12627,12627],\"mapped\",[4453]],[[12628,12628],\"mapped\",[4454]],[[12629,12629],\"mapped\",[4455]],[[12630,12630],\"mapped\",[4456]],[[12631,12631],\"mapped\",[4457]],[[12632,12632],\"mapped\",[4458]],[[12633,12633],\"mapped\",[4459]],[[12634,12634],\"mapped\",[4460]],[[12635,12635],\"mapped\",[4461]],[[12636,12636],\"mapped\",[4462]],[[12637,12637],\"mapped\",[4463]],[[12638,12638],\"mapped\",[4464]],[[12639,12639],\"mapped\",[4465]],[[12640,12640],\"mapped\",[4466]],[[12641,12641],\"mapped\",[4467]],[[12642,12642],\"mapped\",[4468]],[[12643,12643],\"mapped\",[4469]],[[12644,12644],\"disallowed\"],[[12645,12645],\"mapped\",[4372]],[[12646,12646],\"mapped\",[4373]],[[12647,12647],\"mapped\",[4551]],[[12648,12648],\"mapped\",[4552]],[[12649,12649],\"mapped\",[4556]],[[12650,12650],\"mapped\",[4558]],[[12651,12651],\"mapped\",[4563]],[[12652,12652],\"mapped\",[4567]],[[12653,12653],\"mapped\",[4569]],[[12654,12654],\"mapped\",[4380]],[[12655,12655],\"mapped\",[4573]],[[12656,12656],\"mapped\",[4575]],[[12657,12657],\"mapped\",[4381]],[[12658,12658],\"mapped\",[4382]],[[12659,12659],\"mapped\",[4384]],[[12660,12660],\"mapped\",[4386]],[[12661,12661],\"mapped\",[4387]],[[12662,12662],\"mapped\",[4391]],[[12663,12663],\"mapped\",[4393]],[[12664,12664],\"mapped\",[4395]],[[12665,12665],\"mapped\",[4396]],[[12666,12666],\"mapped\",[4397]],[[12667,12667],\"mapped\",[4398]],[[12668,12668],\"mapped\",[4399]],[[12669,12669],\"mapped\",[4402]],[[12670,12670],\"mapped\",[4406]],[[12671,12671],\"mapped\",[4416]],[[12672,12672],\"mapped\",[4423]],[[12673,12673],\"mapped\",[4428]],[[12674,12674],\"mapped\",[4593]],[[12675,12675],\"mapped\",[4594]],[[12676,12676],\"mapped\",[4439]],[[12677,12677],\"mapped\",[4440]],[[12678,12678],\"mapped\",[4441]],[[12679,12679],\"mapped\",[4484]],[[12680,12680],\"mapped\",[4485]],[[12681,12681],\"mapped\",[4488]],[[12682,12682],\"mapped\",[4497]],[[12683,12683],\"mapped\",[4498]],[[12684,12684],\"mapped\",[4500]],[[12685,12685],\"mapped\",[4510]],[[12686,12686],\"mapped\",[4513]],[[12687,12687],\"disallowed\"],[[12688,12689],\"valid\",[],\"NV8\"],[[12690,12690],\"mapped\",[19968]],[[12691,12691],\"mapped\",[20108]],[[12692,12692],\"mapped\",[19977]],[[12693,12693],\"mapped\",[22235]],[[12694,12694],\"mapped\",[19978]],[[12695,12695],\"mapped\",[20013]],[[12696,12696],\"mapped\",[19979]],[[12697,12697],\"mapped\",[30002]],[[12698,12698],\"mapped\",[20057]],[[12699,12699],\"mapped\",[19993]],[[12700,12700],\"mapped\",[19969]],[[12701,12701],\"mapped\",[22825]],[[12702,12702],\"mapped\",[22320]],[[12703,12703],\"mapped\",[20154]],[[12704,12727],\"valid\"],[[12728,12730],\"valid\"],[[12731,12735],\"disallowed\"],[[12736,12751],\"valid\",[],\"NV8\"],[[12752,12771],\"valid\",[],\"NV8\"],[[12772,12783],\"disallowed\"],[[12784,12799],\"valid\"],[[12800,12800],\"disallowed_STD3_mapped\",[40,4352,41]],[[12801,12801],\"disallowed_STD3_mapped\",[40,4354,41]],[[12802,12802],\"disallowed_STD3_mapped\",[40,4355,41]],[[12803,12803],\"disallowed_STD3_mapped\",[40,4357,41]],[[12804,12804],\"disallowed_STD3_mapped\",[40,4358,41]],[[12805,12805],\"disallowed_STD3_mapped\",[40,4359,41]],[[12806,12806],\"disallowed_STD3_mapped\",[40,4361,41]],[[12807,12807],\"disallowed_STD3_mapped\",[40,4363,41]],[[12808,12808],\"disallowed_STD3_mapped\",[40,4364,41]],[[12809,12809],\"disallowed_STD3_mapped\",[40,4366,41]],[[12810,12810],\"disallowed_STD3_mapped\",[40,4367,41]],[[12811,12811],\"disallowed_STD3_mapped\",[40,4368,41]],[[12812,12812],\"disallowed_STD3_mapped\",[40,4369,41]],[[12813,12813],\"disallowed_STD3_mapped\",[40,4370,41]],[[12814,12814],\"disallowed_STD3_mapped\",[40,44032,41]],[[12815,12815],\"disallowed_STD3_mapped\",[40,45208,41]],[[12816,12816],\"disallowed_STD3_mapped\",[40,45796,41]],[[12817,12817],\"disallowed_STD3_mapped\",[40,46972,41]],[[12818,12818],\"disallowed_STD3_mapped\",[40,47560,41]],[[12819,12819],\"disallowed_STD3_mapped\",[40,48148,41]],[[12820,12820],\"disallowed_STD3_mapped\",[40,49324,41]],[[12821,12821],\"disallowed_STD3_mapped\",[40,50500,41]],[[12822,12822],\"disallowed_STD3_mapped\",[40,51088,41]],[[12823,12823],\"disallowed_STD3_mapped\",[40,52264,41]],[[12824,12824],\"disallowed_STD3_mapped\",[40,52852,41]],[[12825,12825],\"disallowed_STD3_mapped\",[40,53440,41]],[[12826,12826],\"disallowed_STD3_mapped\",[40,54028,41]],[[12827,12827],\"disallowed_STD3_mapped\",[40,54616,41]],[[12828,12828],\"disallowed_STD3_mapped\",[40,51452,41]],[[12829,12829],\"disallowed_STD3_mapped\",[40,50724,51204,41]],[[12830,12830],\"disallowed_STD3_mapped\",[40,50724,54980,41]],[[12831,12831],\"disallowed\"],[[12832,12832],\"disallowed_STD3_mapped\",[40,19968,41]],[[12833,12833],\"disallowed_STD3_mapped\",[40,20108,41]],[[12834,12834],\"disallowed_STD3_mapped\",[40,19977,41]],[[12835,12835],\"disallowed_STD3_mapped\",[40,22235,41]],[[12836,12836],\"disallowed_STD3_mapped\",[40,20116,41]],[[12837,12837],\"disallowed_STD3_mapped\",[40,20845,41]],[[12838,12838],\"disallowed_STD3_mapped\",[40,19971,41]],[[12839,12839],\"disallowed_STD3_mapped\",[40,20843,41]],[[12840,12840],\"disallowed_STD3_mapped\",[40,20061,41]],[[12841,12841],\"disallowed_STD3_mapped\",[40,21313,41]],[[12842,12842],\"disallowed_STD3_mapped\",[40,26376,41]],[[12843,12843],\"disallowed_STD3_mapped\",[40,28779,41]],[[12844,12844],\"disallowed_STD3_mapped\",[40,27700,41]],[[12845,12845],\"disallowed_STD3_mapped\",[40,26408,41]],[[12846,12846],\"disallowed_STD3_mapped\",[40,37329,41]],[[12847,12847],\"disallowed_STD3_mapped\",[40,22303,41]],[[12848,12848],\"disallowed_STD3_mapped\",[40,26085,41]],[[12849,12849],\"disallowed_STD3_mapped\",[40,26666,41]],[[12850,12850],\"disallowed_STD3_mapped\",[40,26377,41]],[[12851,12851],\"disallowed_STD3_mapped\",[40,31038,41]],[[12852,12852],\"disallowed_STD3_mapped\",[40,21517,41]],[[12853,12853],\"disallowed_STD3_mapped\",[40,29305,41]],[[12854,12854],\"disallowed_STD3_mapped\",[40,36001,41]],[[12855,12855],\"disallowed_STD3_mapped\",[40,31069,41]],[[12856,12856],\"disallowed_STD3_mapped\",[40,21172,41]],[[12857,12857],\"disallowed_STD3_mapped\",[40,20195,41]],[[12858,12858],\"disallowed_STD3_mapped\",[40,21628,41]],[[12859,12859],\"disallowed_STD3_mapped\",[40,23398,41]],[[12860,12860],\"disallowed_STD3_mapped\",[40,30435,41]],[[12861,12861],\"disallowed_STD3_mapped\",[40,20225,41]],[[12862,12862],\"disallowed_STD3_mapped\",[40,36039,41]],[[12863,12863],\"disallowed_STD3_mapped\",[40,21332,41]],[[12864,12864],\"disallowed_STD3_mapped\",[40,31085,41]],[[12865,12865],\"disallowed_STD3_mapped\",[40,20241,41]],[[12866,12866],\"disallowed_STD3_mapped\",[40,33258,41]],[[12867,12867],\"disallowed_STD3_mapped\",[40,33267,41]],[[12868,12868],\"mapped\",[21839]],[[12869,12869],\"mapped\",[24188]],[[12870,12870],\"mapped\",[25991]],[[12871,12871],\"mapped\",[31631]],[[12872,12879],\"valid\",[],\"NV8\"],[[12880,12880],\"mapped\",[112,116,101]],[[12881,12881],\"mapped\",[50,49]],[[12882,12882],\"mapped\",[50,50]],[[12883,12883],\"mapped\",[50,51]],[[12884,12884],\"mapped\",[50,52]],[[12885,12885],\"mapped\",[50,53]],[[12886,12886],\"mapped\",[50,54]],[[12887,12887],\"mapped\",[50,55]],[[12888,12888],\"mapped\",[50,56]],[[12889,12889],\"mapped\",[50,57]],[[12890,12890],\"mapped\",[51,48]],[[12891,12891],\"mapped\",[51,49]],[[12892,12892],\"mapped\",[51,50]],[[12893,12893],\"mapped\",[51,51]],[[12894,12894],\"mapped\",[51,52]],[[12895,12895],\"mapped\",[51,53]],[[12896,12896],\"mapped\",[4352]],[[12897,12897],\"mapped\",[4354]],[[12898,12898],\"mapped\",[4355]],[[12899,12899],\"mapped\",[4357]],[[12900,12900],\"mapped\",[4358]],[[12901,12901],\"mapped\",[4359]],[[12902,12902],\"mapped\",[4361]],[[12903,12903],\"mapped\",[4363]],[[12904,12904],\"mapped\",[4364]],[[12905,12905],\"mapped\",[4366]],[[12906,12906],\"mapped\",[4367]],[[12907,12907],\"mapped\",[4368]],[[12908,12908],\"mapped\",[4369]],[[12909,12909],\"mapped\",[4370]],[[12910,12910],\"mapped\",[44032]],[[12911,12911],\"mapped\",[45208]],[[12912,12912],\"mapped\",[45796]],[[12913,12913],\"mapped\",[46972]],[[12914,12914],\"mapped\",[47560]],[[12915,12915],\"mapped\",[48148]],[[12916,12916],\"mapped\",[49324]],[[12917,12917],\"mapped\",[50500]],[[12918,12918],\"mapped\",[51088]],[[12919,12919],\"mapped\",[52264]],[[12920,12920],\"mapped\",[52852]],[[12921,12921],\"mapped\",[53440]],[[12922,12922],\"mapped\",[54028]],[[12923,12923],\"mapped\",[54616]],[[12924,12924],\"mapped\",[52280,44256]],[[12925,12925],\"mapped\",[51452,51032]],[[12926,12926],\"mapped\",[50864]],[[12927,12927],\"valid\",[],\"NV8\"],[[12928,12928],\"mapped\",[19968]],[[12929,12929],\"mapped\",[20108]],[[12930,12930],\"mapped\",[19977]],[[12931,12931],\"mapped\",[22235]],[[12932,12932],\"mapped\",[20116]],[[12933,12933],\"mapped\",[20845]],[[12934,12934],\"mapped\",[19971]],[[12935,12935],\"mapped\",[20843]],[[12936,12936],\"mapped\",[20061]],[[12937,12937],\"mapped\",[21313]],[[12938,12938],\"mapped\",[26376]],[[12939,12939],\"mapped\",[28779]],[[12940,12940],\"mapped\",[27700]],[[12941,12941],\"mapped\",[26408]],[[12942,12942],\"mapped\",[37329]],[[12943,12943],\"mapped\",[22303]],[[12944,12944],\"mapped\",[26085]],[[12945,12945],\"mapped\",[26666]],[[12946,12946],\"mapped\",[26377]],[[12947,12947],\"mapped\",[31038]],[[12948,12948],\"mapped\",[21517]],[[12949,12949],\"mapped\",[29305]],[[12950,12950],\"mapped\",[36001]],[[12951,12951],\"mapped\",[31069]],[[12952,12952],\"mapped\",[21172]],[[12953,12953],\"mapped\",[31192]],[[12954,12954],\"mapped\",[30007]],[[12955,12955],\"mapped\",[22899]],[[12956,12956],\"mapped\",[36969]],[[12957,12957],\"mapped\",[20778]],[[12958,12958],\"mapped\",[21360]],[[12959,12959],\"mapped\",[27880]],[[12960,12960],\"mapped\",[38917]],[[12961,12961],\"mapped\",[20241]],[[12962,12962],\"mapped\",[20889]],[[12963,12963],\"mapped\",[27491]],[[12964,12964],\"mapped\",[19978]],[[12965,12965],\"mapped\",[20013]],[[12966,12966],\"mapped\",[19979]],[[12967,12967],\"mapped\",[24038]],[[12968,12968],\"mapped\",[21491]],[[12969,12969],\"mapped\",[21307]],[[12970,12970],\"mapped\",[23447]],[[12971,12971],\"mapped\",[23398]],[[12972,12972],\"mapped\",[30435]],[[12973,12973],\"mapped\",[20225]],[[12974,12974],\"mapped\",[36039]],[[12975,12975],\"mapped\",[21332]],[[12976,12976],\"mapped\",[22812]],[[12977,12977],\"mapped\",[51,54]],[[12978,12978],\"mapped\",[51,55]],[[12979,12979],\"mapped\",[51,56]],[[12980,12980],\"mapped\",[51,57]],[[12981,12981],\"mapped\",[52,48]],[[12982,12982],\"mapped\",[52,49]],[[12983,12983],\"mapped\",[52,50]],[[12984,12984],\"mapped\",[52,51]],[[12985,12985],\"mapped\",[52,52]],[[12986,12986],\"mapped\",[52,53]],[[12987,12987],\"mapped\",[52,54]],[[12988,12988],\"mapped\",[52,55]],[[12989,12989],\"mapped\",[52,56]],[[12990,12990],\"mapped\",[52,57]],[[12991,12991],\"mapped\",[53,48]],[[12992,12992],\"mapped\",[49,26376]],[[12993,12993],\"mapped\",[50,26376]],[[12994,12994],\"mapped\",[51,26376]],[[12995,12995],\"mapped\",[52,26376]],[[12996,12996],\"mapped\",[53,26376]],[[12997,12997],\"mapped\",[54,26376]],[[12998,12998],\"mapped\",[55,26376]],[[12999,12999],\"mapped\",[56,26376]],[[13000,13000],\"mapped\",[57,26376]],[[13001,13001],\"mapped\",[49,48,26376]],[[13002,13002],\"mapped\",[49,49,26376]],[[13003,13003],\"mapped\",[49,50,26376]],[[13004,13004],\"mapped\",[104,103]],[[13005,13005],\"mapped\",[101,114,103]],[[13006,13006],\"mapped\",[101,118]],[[13007,13007],\"mapped\",[108,116,100]],[[13008,13008],\"mapped\",[12450]],[[13009,13009],\"mapped\",[12452]],[[13010,13010],\"mapped\",[12454]],[[13011,13011],\"mapped\",[12456]],[[13012,13012],\"mapped\",[12458]],[[13013,13013],\"mapped\",[12459]],[[13014,13014],\"mapped\",[12461]],[[13015,13015],\"mapped\",[12463]],[[13016,13016],\"mapped\",[12465]],[[13017,13017],\"mapped\",[12467]],[[13018,13018],\"mapped\",[12469]],[[13019,13019],\"mapped\",[12471]],[[13020,13020],\"mapped\",[12473]],[[13021,13021],\"mapped\",[12475]],[[13022,13022],\"mapped\",[12477]],[[13023,13023],\"mapped\",[12479]],[[13024,13024],\"mapped\",[12481]],[[13025,13025],\"mapped\",[12484]],[[13026,13026],\"mapped\",[12486]],[[13027,13027],\"mapped\",[12488]],[[13028,13028],\"mapped\",[12490]],[[13029,13029],\"mapped\",[12491]],[[13030,13030],\"mapped\",[12492]],[[13031,13031],\"mapped\",[12493]],[[13032,13032],\"mapped\",[12494]],[[13033,13033],\"mapped\",[12495]],[[13034,13034],\"mapped\",[12498]],[[13035,13035],\"mapped\",[12501]],[[13036,13036],\"mapped\",[12504]],[[13037,13037],\"mapped\",[12507]],[[13038,13038],\"mapped\",[12510]],[[13039,13039],\"mapped\",[12511]],[[13040,13040],\"mapped\",[12512]],[[13041,13041],\"mapped\",[12513]],[[13042,13042],\"mapped\",[12514]],[[13043,13043],\"mapped\",[12516]],[[13044,13044],\"mapped\",[12518]],[[13045,13045],\"mapped\",[12520]],[[13046,13046],\"mapped\",[12521]],[[13047,13047],\"mapped\",[12522]],[[13048,13048],\"mapped\",[12523]],[[13049,13049],\"mapped\",[12524]],[[13050,13050],\"mapped\",[12525]],[[13051,13051],\"mapped\",[12527]],[[13052,13052],\"mapped\",[12528]],[[13053,13053],\"mapped\",[12529]],[[13054,13054],\"mapped\",[12530]],[[13055,13055],\"disallowed\"],[[13056,13056],\"mapped\",[12450,12497,12540,12488]],[[13057,13057],\"mapped\",[12450,12523,12501,12449]],[[13058,13058],\"mapped\",[12450,12531,12506,12450]],[[13059,13059],\"mapped\",[12450,12540,12523]],[[13060,13060],\"mapped\",[12452,12491,12531,12464]],[[13061,13061],\"mapped\",[12452,12531,12481]],[[13062,13062],\"mapped\",[12454,12457,12531]],[[13063,13063],\"mapped\",[12456,12473,12463,12540,12489]],[[13064,13064],\"mapped\",[12456,12540,12459,12540]],[[13065,13065],\"mapped\",[12458,12531,12473]],[[13066,13066],\"mapped\",[12458,12540,12512]],[[13067,13067],\"mapped\",[12459,12452,12522]],[[13068,13068],\"mapped\",[12459,12521,12483,12488]],[[13069,13069],\"mapped\",[12459,12525,12522,12540]],[[13070,13070],\"mapped\",[12460,12525,12531]],[[13071,13071],\"mapped\",[12460,12531,12510]],[[13072,13072],\"mapped\",[12462,12460]],[[13073,13073],\"mapped\",[12462,12491,12540]],[[13074,13074],\"mapped\",[12461,12517,12522,12540]],[[13075,13075],\"mapped\",[12462,12523,12480,12540]],[[13076,13076],\"mapped\",[12461,12525]],[[13077,13077],\"mapped\",[12461,12525,12464,12521,12512]],[[13078,13078],\"mapped\",[12461,12525,12513,12540,12488,12523]],[[13079,13079],\"mapped\",[12461,12525,12527,12483,12488]],[[13080,13080],\"mapped\",[12464,12521,12512]],[[13081,13081],\"mapped\",[12464,12521,12512,12488,12531]],[[13082,13082],\"mapped\",[12463,12523,12476,12452,12525]],[[13083,13083],\"mapped\",[12463,12525,12540,12493]],[[13084,13084],\"mapped\",[12465,12540,12473]],[[13085,13085],\"mapped\",[12467,12523,12490]],[[13086,13086],\"mapped\",[12467,12540,12509]],[[13087,13087],\"mapped\",[12469,12452,12463,12523]],[[13088,13088],\"mapped\",[12469,12531,12481,12540,12512]],[[13089,13089],\"mapped\",[12471,12522,12531,12464]],[[13090,13090],\"mapped\",[12475,12531,12481]],[[13091,13091],\"mapped\",[12475,12531,12488]],[[13092,13092],\"mapped\",[12480,12540,12473]],[[13093,13093],\"mapped\",[12487,12471]],[[13094,13094],\"mapped\",[12489,12523]],[[13095,13095],\"mapped\",[12488,12531]],[[13096,13096],\"mapped\",[12490,12494]],[[13097,13097],\"mapped\",[12494,12483,12488]],[[13098,13098],\"mapped\",[12495,12452,12484]],[[13099,13099],\"mapped\",[12497,12540,12475,12531,12488]],[[13100,13100],\"mapped\",[12497,12540,12484]],[[13101,13101],\"mapped\",[12496,12540,12524,12523]],[[13102,13102],\"mapped\",[12500,12450,12473,12488,12523]],[[13103,13103],\"mapped\",[12500,12463,12523]],[[13104,13104],\"mapped\",[12500,12467]],[[13105,13105],\"mapped\",[12499,12523]],[[13106,13106],\"mapped\",[12501,12449,12521,12483,12489]],[[13107,13107],\"mapped\",[12501,12451,12540,12488]],[[13108,13108],\"mapped\",[12502,12483,12471,12455,12523]],[[13109,13109],\"mapped\",[12501,12521,12531]],[[13110,13110],\"mapped\",[12504,12463,12479,12540,12523]],[[13111,13111],\"mapped\",[12506,12477]],[[13112,13112],\"mapped\",[12506,12491,12498]],[[13113,13113],\"mapped\",[12504,12523,12484]],[[13114,13114],\"mapped\",[12506,12531,12473]],[[13115,13115],\"mapped\",[12506,12540,12472]],[[13116,13116],\"mapped\",[12505,12540,12479]],[[13117,13117],\"mapped\",[12509,12452,12531,12488]],[[13118,13118],\"mapped\",[12508,12523,12488]],[[13119,13119],\"mapped\",[12507,12531]],[[13120,13120],\"mapped\",[12509,12531,12489]],[[13121,13121],\"mapped\",[12507,12540,12523]],[[13122,13122],\"mapped\",[12507,12540,12531]],[[13123,13123],\"mapped\",[12510,12452,12463,12525]],[[13124,13124],\"mapped\",[12510,12452,12523]],[[13125,13125],\"mapped\",[12510,12483,12495]],[[13126,13126],\"mapped\",[12510,12523,12463]],[[13127,13127],\"mapped\",[12510,12531,12471,12519,12531]],[[13128,13128],\"mapped\",[12511,12463,12525,12531]],[[13129,13129],\"mapped\",[12511,12522]],[[13130,13130],\"mapped\",[12511,12522,12496,12540,12523]],[[13131,13131],\"mapped\",[12513,12460]],[[13132,13132],\"mapped\",[12513,12460,12488,12531]],[[13133,13133],\"mapped\",[12513,12540,12488,12523]],[[13134,13134],\"mapped\",[12516,12540,12489]],[[13135,13135],\"mapped\",[12516,12540,12523]],[[13136,13136],\"mapped\",[12518,12450,12531]],[[13137,13137],\"mapped\",[12522,12483,12488,12523]],[[13138,13138],\"mapped\",[12522,12521]],[[13139,13139],\"mapped\",[12523,12500,12540]],[[13140,13140],\"mapped\",[12523,12540,12502,12523]],[[13141,13141],\"mapped\",[12524,12512]],[[13142,13142],\"mapped\",[12524,12531,12488,12466,12531]],[[13143,13143],\"mapped\",[12527,12483,12488]],[[13144,13144],\"mapped\",[48,28857]],[[13145,13145],\"mapped\",[49,28857]],[[13146,13146],\"mapped\",[50,28857]],[[13147,13147],\"mapped\",[51,28857]],[[13148,13148],\"mapped\",[52,28857]],[[13149,13149],\"mapped\",[53,28857]],[[13150,13150],\"mapped\",[54,28857]],[[13151,13151],\"mapped\",[55,28857]],[[13152,13152],\"mapped\",[56,28857]],[[13153,13153],\"mapped\",[57,28857]],[[13154,13154],\"mapped\",[49,48,28857]],[[13155,13155],\"mapped\",[49,49,28857]],[[13156,13156],\"mapped\",[49,50,28857]],[[13157,13157],\"mapped\",[49,51,28857]],[[13158,13158],\"mapped\",[49,52,28857]],[[13159,13159],\"mapped\",[49,53,28857]],[[13160,13160],\"mapped\",[49,54,28857]],[[13161,13161],\"mapped\",[49,55,28857]],[[13162,13162],\"mapped\",[49,56,28857]],[[13163,13163],\"mapped\",[49,57,28857]],[[13164,13164],\"mapped\",[50,48,28857]],[[13165,13165],\"mapped\",[50,49,28857]],[[13166,13166],\"mapped\",[50,50,28857]],[[13167,13167],\"mapped\",[50,51,28857]],[[13168,13168],\"mapped\",[50,52,28857]],[[13169,13169],\"mapped\",[104,112,97]],[[13170,13170],\"mapped\",[100,97]],[[13171,13171],\"mapped\",[97,117]],[[13172,13172],\"mapped\",[98,97,114]],[[13173,13173],\"mapped\",[111,118]],[[13174,13174],\"mapped\",[112,99]],[[13175,13175],\"mapped\",[100,109]],[[13176,13176],\"mapped\",[100,109,50]],[[13177,13177],\"mapped\",[100,109,51]],[[13178,13178],\"mapped\",[105,117]],[[13179,13179],\"mapped\",[24179,25104]],[[13180,13180],\"mapped\",[26157,21644]],[[13181,13181],\"mapped\",[22823,27491]],[[13182,13182],\"mapped\",[26126,27835]],[[13183,13183],\"mapped\",[26666,24335,20250,31038]],[[13184,13184],\"mapped\",[112,97]],[[13185,13185],\"mapped\",[110,97]],[[13186,13186],\"mapped\",[956,97]],[[13187,13187],\"mapped\",[109,97]],[[13188,13188],\"mapped\",[107,97]],[[13189,13189],\"mapped\",[107,98]],[[13190,13190],\"mapped\",[109,98]],[[13191,13191],\"mapped\",[103,98]],[[13192,13192],\"mapped\",[99,97,108]],[[13193,13193],\"mapped\",[107,99,97,108]],[[13194,13194],\"mapped\",[112,102]],[[13195,13195],\"mapped\",[110,102]],[[13196,13196],\"mapped\",[956,102]],[[13197,13197],\"mapped\",[956,103]],[[13198,13198],\"mapped\",[109,103]],[[13199,13199],\"mapped\",[107,103]],[[13200,13200],\"mapped\",[104,122]],[[13201,13201],\"mapped\",[107,104,122]],[[13202,13202],\"mapped\",[109,104,122]],[[13203,13203],\"mapped\",[103,104,122]],[[13204,13204],\"mapped\",[116,104,122]],[[13205,13205],\"mapped\",[956,108]],[[13206,13206],\"mapped\",[109,108]],[[13207,13207],\"mapped\",[100,108]],[[13208,13208],\"mapped\",[107,108]],[[13209,13209],\"mapped\",[102,109]],[[13210,13210],\"mapped\",[110,109]],[[13211,13211],\"mapped\",[956,109]],[[13212,13212],\"mapped\",[109,109]],[[13213,13213],\"mapped\",[99,109]],[[13214,13214],\"mapped\",[107,109]],[[13215,13215],\"mapped\",[109,109,50]],[[13216,13216],\"mapped\",[99,109,50]],[[13217,13217],\"mapped\",[109,50]],[[13218,13218],\"mapped\",[107,109,50]],[[13219,13219],\"mapped\",[109,109,51]],[[13220,13220],\"mapped\",[99,109,51]],[[13221,13221],\"mapped\",[109,51]],[[13222,13222],\"mapped\",[107,109,51]],[[13223,13223],\"mapped\",[109,8725,115]],[[13224,13224],\"mapped\",[109,8725,115,50]],[[13225,13225],\"mapped\",[112,97]],[[13226,13226],\"mapped\",[107,112,97]],[[13227,13227],\"mapped\",[109,112,97]],[[13228,13228],\"mapped\",[103,112,97]],[[13229,13229],\"mapped\",[114,97,100]],[[13230,13230],\"mapped\",[114,97,100,8725,115]],[[13231,13231],\"mapped\",[114,97,100,8725,115,50]],[[13232,13232],\"mapped\",[112,115]],[[13233,13233],\"mapped\",[110,115]],[[13234,13234],\"mapped\",[956,115]],[[13235,13235],\"mapped\",[109,115]],[[13236,13236],\"mapped\",[112,118]],[[13237,13237],\"mapped\",[110,118]],[[13238,13238],\"mapped\",[956,118]],[[13239,13239],\"mapped\",[109,118]],[[13240,13240],\"mapped\",[107,118]],[[13241,13241],\"mapped\",[109,118]],[[13242,13242],\"mapped\",[112,119]],[[13243,13243],\"mapped\",[110,119]],[[13244,13244],\"mapped\",[956,119]],[[13245,13245],\"mapped\",[109,119]],[[13246,13246],\"mapped\",[107,119]],[[13247,13247],\"mapped\",[109,119]],[[13248,13248],\"mapped\",[107,969]],[[13249,13249],\"mapped\",[109,969]],[[13250,13250],\"disallowed\"],[[13251,13251],\"mapped\",[98,113]],[[13252,13252],\"mapped\",[99,99]],[[13253,13253],\"mapped\",[99,100]],[[13254,13254],\"mapped\",[99,8725,107,103]],[[13255,13255],\"disallowed\"],[[13256,13256],\"mapped\",[100,98]],[[13257,13257],\"mapped\",[103,121]],[[13258,13258],\"mapped\",[104,97]],[[13259,13259],\"mapped\",[104,112]],[[13260,13260],\"mapped\",[105,110]],[[13261,13261],\"mapped\",[107,107]],[[13262,13262],\"mapped\",[107,109]],[[13263,13263],\"mapped\",[107,116]],[[13264,13264],\"mapped\",[108,109]],[[13265,13265],\"mapped\",[108,110]],[[13266,13266],\"mapped\",[108,111,103]],[[13267,13267],\"mapped\",[108,120]],[[13268,13268],\"mapped\",[109,98]],[[13269,13269],\"mapped\",[109,105,108]],[[13270,13270],\"mapped\",[109,111,108]],[[13271,13271],\"mapped\",[112,104]],[[13272,13272],\"disallowed\"],[[13273,13273],\"mapped\",[112,112,109]],[[13274,13274],\"mapped\",[112,114]],[[13275,13275],\"mapped\",[115,114]],[[13276,13276],\"mapped\",[115,118]],[[13277,13277],\"mapped\",[119,98]],[[13278,13278],\"mapped\",[118,8725,109]],[[13279,13279],\"mapped\",[97,8725,109]],[[13280,13280],\"mapped\",[49,26085]],[[13281,13281],\"mapped\",[50,26085]],[[13282,13282],\"mapped\",[51,26085]],[[13283,13283],\"mapped\",[52,26085]],[[13284,13284],\"mapped\",[53,26085]],[[13285,13285],\"mapped\",[54,26085]],[[13286,13286],\"mapped\",[55,26085]],[[13287,13287],\"mapped\",[56,26085]],[[13288,13288],\"mapped\",[57,26085]],[[13289,13289],\"mapped\",[49,48,26085]],[[13290,13290],\"mapped\",[49,49,26085]],[[13291,13291],\"mapped\",[49,50,26085]],[[13292,13292],\"mapped\",[49,51,26085]],[[13293,13293],\"mapped\",[49,52,26085]],[[13294,13294],\"mapped\",[49,53,26085]],[[13295,13295],\"mapped\",[49,54,26085]],[[13296,13296],\"mapped\",[49,55,26085]],[[13297,13297],\"mapped\",[49,56,26085]],[[13298,13298],\"mapped\",[49,57,26085]],[[13299,13299],\"mapped\",[50,48,26085]],[[13300,13300],\"mapped\",[50,49,26085]],[[13301,13301],\"mapped\",[50,50,26085]],[[13302,13302],\"mapped\",[50,51,26085]],[[13303,13303],\"mapped\",[50,52,26085]],[[13304,13304],\"mapped\",[50,53,26085]],[[13305,13305],\"mapped\",[50,54,26085]],[[13306,13306],\"mapped\",[50,55,26085]],[[13307,13307],\"mapped\",[50,56,26085]],[[13308,13308],\"mapped\",[50,57,26085]],[[13309,13309],\"mapped\",[51,48,26085]],[[13310,13310],\"mapped\",[51,49,26085]],[[13311,13311],\"mapped\",[103,97,108]],[[13312,19893],\"valid\"],[[19894,19903],\"disallowed\"],[[19904,19967],\"valid\",[],\"NV8\"],[[19968,40869],\"valid\"],[[40870,40891],\"valid\"],[[40892,40899],\"valid\"],[[40900,40907],\"valid\"],[[40908,40908],\"valid\"],[[40909,40917],\"valid\"],[[40918,40959],\"disallowed\"],[[40960,42124],\"valid\"],[[42125,42127],\"disallowed\"],[[42128,42145],\"valid\",[],\"NV8\"],[[42146,42147],\"valid\",[],\"NV8\"],[[42148,42163],\"valid\",[],\"NV8\"],[[42164,42164],\"valid\",[],\"NV8\"],[[42165,42176],\"valid\",[],\"NV8\"],[[42177,42177],\"valid\",[],\"NV8\"],[[42178,42180],\"valid\",[],\"NV8\"],[[42181,42181],\"valid\",[],\"NV8\"],[[42182,42182],\"valid\",[],\"NV8\"],[[42183,42191],\"disallowed\"],[[42192,42237],\"valid\"],[[42238,42239],\"valid\",[],\"NV8\"],[[42240,42508],\"valid\"],[[42509,42511],\"valid\",[],\"NV8\"],[[42512,42539],\"valid\"],[[42540,42559],\"disallowed\"],[[42560,42560],\"mapped\",[42561]],[[42561,42561],\"valid\"],[[42562,42562],\"mapped\",[42563]],[[42563,42563],\"valid\"],[[42564,42564],\"mapped\",[42565]],[[42565,42565],\"valid\"],[[42566,42566],\"mapped\",[42567]],[[42567,42567],\"valid\"],[[42568,42568],\"mapped\",[42569]],[[42569,42569],\"valid\"],[[42570,42570],\"mapped\",[42571]],[[42571,42571],\"valid\"],[[42572,42572],\"mapped\",[42573]],[[42573,42573],\"valid\"],[[42574,42574],\"mapped\",[42575]],[[42575,42575],\"valid\"],[[42576,42576],\"mapped\",[42577]],[[42577,42577],\"valid\"],[[42578,42578],\"mapped\",[42579]],[[42579,42579],\"valid\"],[[42580,42580],\"mapped\",[42581]],[[42581,42581],\"valid\"],[[42582,42582],\"mapped\",[42583]],[[42583,42583],\"valid\"],[[42584,42584],\"mapped\",[42585]],[[42585,42585],\"valid\"],[[42586,42586],\"mapped\",[42587]],[[42587,42587],\"valid\"],[[42588,42588],\"mapped\",[42589]],[[42589,42589],\"valid\"],[[42590,42590],\"mapped\",[42591]],[[42591,42591],\"valid\"],[[42592,42592],\"mapped\",[42593]],[[42593,42593],\"valid\"],[[42594,42594],\"mapped\",[42595]],[[42595,42595],\"valid\"],[[42596,42596],\"mapped\",[42597]],[[42597,42597],\"valid\"],[[42598,42598],\"mapped\",[42599]],[[42599,42599],\"valid\"],[[42600,42600],\"mapped\",[42601]],[[42601,42601],\"valid\"],[[42602,42602],\"mapped\",[42603]],[[42603,42603],\"valid\"],[[42604,42604],\"mapped\",[42605]],[[42605,42607],\"valid\"],[[42608,42611],\"valid\",[],\"NV8\"],[[42612,42619],\"valid\"],[[42620,42621],\"valid\"],[[42622,42622],\"valid\",[],\"NV8\"],[[42623,42623],\"valid\"],[[42624,42624],\"mapped\",[42625]],[[42625,42625],\"valid\"],[[42626,42626],\"mapped\",[42627]],[[42627,42627],\"valid\"],[[42628,42628],\"mapped\",[42629]],[[42629,42629],\"valid\"],[[42630,42630],\"mapped\",[42631]],[[42631,42631],\"valid\"],[[42632,42632],\"mapped\",[42633]],[[42633,42633],\"valid\"],[[42634,42634],\"mapped\",[42635]],[[42635,42635],\"valid\"],[[42636,42636],\"mapped\",[42637]],[[42637,42637],\"valid\"],[[42638,42638],\"mapped\",[42639]],[[42639,42639],\"valid\"],[[42640,42640],\"mapped\",[42641]],[[42641,42641],\"valid\"],[[42642,42642],\"mapped\",[42643]],[[42643,42643],\"valid\"],[[42644,42644],\"mapped\",[42645]],[[42645,42645],\"valid\"],[[42646,42646],\"mapped\",[42647]],[[42647,42647],\"valid\"],[[42648,42648],\"mapped\",[42649]],[[42649,42649],\"valid\"],[[42650,42650],\"mapped\",[42651]],[[42651,42651],\"valid\"],[[42652,42652],\"mapped\",[1098]],[[42653,42653],\"mapped\",[1100]],[[42654,42654],\"valid\"],[[42655,42655],\"valid\"],[[42656,42725],\"valid\"],[[42726,42735],\"valid\",[],\"NV8\"],[[42736,42737],\"valid\"],[[42738,42743],\"valid\",[],\"NV8\"],[[42744,42751],\"disallowed\"],[[42752,42774],\"valid\",[],\"NV8\"],[[42775,42778],\"valid\"],[[42779,42783],\"valid\"],[[42784,42785],\"valid\",[],\"NV8\"],[[42786,42786],\"mapped\",[42787]],[[42787,42787],\"valid\"],[[42788,42788],\"mapped\",[42789]],[[42789,42789],\"valid\"],[[42790,42790],\"mapped\",[42791]],[[42791,42791],\"valid\"],[[42792,42792],\"mapped\",[42793]],[[42793,42793],\"valid\"],[[42794,42794],\"mapped\",[42795]],[[42795,42795],\"valid\"],[[42796,42796],\"mapped\",[42797]],[[42797,42797],\"valid\"],[[42798,42798],\"mapped\",[42799]],[[42799,42801],\"valid\"],[[42802,42802],\"mapped\",[42803]],[[42803,42803],\"valid\"],[[42804,42804],\"mapped\",[42805]],[[42805,42805],\"valid\"],[[42806,42806],\"mapped\",[42807]],[[42807,42807],\"valid\"],[[42808,42808],\"mapped\",[42809]],[[42809,42809],\"valid\"],[[42810,42810],\"mapped\",[42811]],[[42811,42811],\"valid\"],[[42812,42812],\"mapped\",[42813]],[[42813,42813],\"valid\"],[[42814,42814],\"mapped\",[42815]],[[42815,42815],\"valid\"],[[42816,42816],\"mapped\",[42817]],[[42817,42817],\"valid\"],[[42818,42818],\"mapped\",[42819]],[[42819,42819],\"valid\"],[[42820,42820],\"mapped\",[42821]],[[42821,42821],\"valid\"],[[42822,42822],\"mapped\",[42823]],[[42823,42823],\"valid\"],[[42824,42824],\"mapped\",[42825]],[[42825,42825],\"valid\"],[[42826,42826],\"mapped\",[42827]],[[42827,42827],\"valid\"],[[42828,42828],\"mapped\",[42829]],[[42829,42829],\"valid\"],[[42830,42830],\"mapped\",[42831]],[[42831,42831],\"valid\"],[[42832,42832],\"mapped\",[42833]],[[42833,42833],\"valid\"],[[42834,42834],\"mapped\",[42835]],[[42835,42835],\"valid\"],[[42836,42836],\"mapped\",[42837]],[[42837,42837],\"valid\"],[[42838,42838],\"mapped\",[42839]],[[42839,42839],\"valid\"],[[42840,42840],\"mapped\",[42841]],[[42841,42841],\"valid\"],[[42842,42842],\"mapped\",[42843]],[[42843,42843],\"valid\"],[[42844,42844],\"mapped\",[42845]],[[42845,42845],\"valid\"],[[42846,42846],\"mapped\",[42847]],[[42847,42847],\"valid\"],[[42848,42848],\"mapped\",[42849]],[[42849,42849],\"valid\"],[[42850,42850],\"mapped\",[42851]],[[42851,42851],\"valid\"],[[42852,42852],\"mapped\",[42853]],[[42853,42853],\"valid\"],[[42854,42854],\"mapped\",[42855]],[[42855,42855],\"valid\"],[[42856,42856],\"mapped\",[42857]],[[42857,42857],\"valid\"],[[42858,42858],\"mapped\",[42859]],[[42859,42859],\"valid\"],[[42860,42860],\"mapped\",[42861]],[[42861,42861],\"valid\"],[[42862,42862],\"mapped\",[42863]],[[42863,42863],\"valid\"],[[42864,42864],\"mapped\",[42863]],[[42865,42872],\"valid\"],[[42873,42873],\"mapped\",[42874]],[[42874,42874],\"valid\"],[[42875,42875],\"mapped\",[42876]],[[42876,42876],\"valid\"],[[42877,42877],\"mapped\",[7545]],[[42878,42878],\"mapped\",[42879]],[[42879,42879],\"valid\"],[[42880,42880],\"mapped\",[42881]],[[42881,42881],\"valid\"],[[42882,42882],\"mapped\",[42883]],[[42883,42883],\"valid\"],[[42884,42884],\"mapped\",[42885]],[[42885,42885],\"valid\"],[[42886,42886],\"mapped\",[42887]],[[42887,42888],\"valid\"],[[42889,42890],\"valid\",[],\"NV8\"],[[42891,42891],\"mapped\",[42892]],[[42892,42892],\"valid\"],[[42893,42893],\"mapped\",[613]],[[42894,42894],\"valid\"],[[42895,42895],\"valid\"],[[42896,42896],\"mapped\",[42897]],[[42897,42897],\"valid\"],[[42898,42898],\"mapped\",[42899]],[[42899,42899],\"valid\"],[[42900,42901],\"valid\"],[[42902,42902],\"mapped\",[42903]],[[42903,42903],\"valid\"],[[42904,42904],\"mapped\",[42905]],[[42905,42905],\"valid\"],[[42906,42906],\"mapped\",[42907]],[[42907,42907],\"valid\"],[[42908,42908],\"mapped\",[42909]],[[42909,42909],\"valid\"],[[42910,42910],\"mapped\",[42911]],[[42911,42911],\"valid\"],[[42912,42912],\"mapped\",[42913]],[[42913,42913],\"valid\"],[[42914,42914],\"mapped\",[42915]],[[42915,42915],\"valid\"],[[42916,42916],\"mapped\",[42917]],[[42917,42917],\"valid\"],[[42918,42918],\"mapped\",[42919]],[[42919,42919],\"valid\"],[[42920,42920],\"mapped\",[42921]],[[42921,42921],\"valid\"],[[42922,42922],\"mapped\",[614]],[[42923,42923],\"mapped\",[604]],[[42924,42924],\"mapped\",[609]],[[42925,42925],\"mapped\",[620]],[[42926,42927],\"disallowed\"],[[42928,42928],\"mapped\",[670]],[[42929,42929],\"mapped\",[647]],[[42930,42930],\"mapped\",[669]],[[42931,42931],\"mapped\",[43859]],[[42932,42932],\"mapped\",[42933]],[[42933,42933],\"valid\"],[[42934,42934],\"mapped\",[42935]],[[42935,42935],\"valid\"],[[42936,42998],\"disallowed\"],[[42999,42999],\"valid\"],[[43000,43000],\"mapped\",[295]],[[43001,43001],\"mapped\",[339]],[[43002,43002],\"valid\"],[[43003,43007],\"valid\"],[[43008,43047],\"valid\"],[[43048,43051],\"valid\",[],\"NV8\"],[[43052,43055],\"disallowed\"],[[43056,43065],\"valid\",[],\"NV8\"],[[43066,43071],\"disallowed\"],[[43072,43123],\"valid\"],[[43124,43127],\"valid\",[],\"NV8\"],[[43128,43135],\"disallowed\"],[[43136,43204],\"valid\"],[[43205,43213],\"disallowed\"],[[43214,43215],\"valid\",[],\"NV8\"],[[43216,43225],\"valid\"],[[43226,43231],\"disallowed\"],[[43232,43255],\"valid\"],[[43256,43258],\"valid\",[],\"NV8\"],[[43259,43259],\"valid\"],[[43260,43260],\"valid\",[],\"NV8\"],[[43261,43261],\"valid\"],[[43262,43263],\"disallowed\"],[[43264,43309],\"valid\"],[[43310,43311],\"valid\",[],\"NV8\"],[[43312,43347],\"valid\"],[[43348,43358],\"disallowed\"],[[43359,43359],\"valid\",[],\"NV8\"],[[43360,43388],\"valid\",[],\"NV8\"],[[43389,43391],\"disallowed\"],[[43392,43456],\"valid\"],[[43457,43469],\"valid\",[],\"NV8\"],[[43470,43470],\"disallowed\"],[[43471,43481],\"valid\"],[[43482,43485],\"disallowed\"],[[43486,43487],\"valid\",[],\"NV8\"],[[43488,43518],\"valid\"],[[43519,43519],\"disallowed\"],[[43520,43574],\"valid\"],[[43575,43583],\"disallowed\"],[[43584,43597],\"valid\"],[[43598,43599],\"disallowed\"],[[43600,43609],\"valid\"],[[43610,43611],\"disallowed\"],[[43612,43615],\"valid\",[],\"NV8\"],[[43616,43638],\"valid\"],[[43639,43641],\"valid\",[],\"NV8\"],[[43642,43643],\"valid\"],[[43644,43647],\"valid\"],[[43648,43714],\"valid\"],[[43715,43738],\"disallowed\"],[[43739,43741],\"valid\"],[[43742,43743],\"valid\",[],\"NV8\"],[[43744,43759],\"valid\"],[[43760,43761],\"valid\",[],\"NV8\"],[[43762,43766],\"valid\"],[[43767,43776],\"disallowed\"],[[43777,43782],\"valid\"],[[43783,43784],\"disallowed\"],[[43785,43790],\"valid\"],[[43791,43792],\"disallowed\"],[[43793,43798],\"valid\"],[[43799,43807],\"disallowed\"],[[43808,43814],\"valid\"],[[43815,43815],\"disallowed\"],[[43816,43822],\"valid\"],[[43823,43823],\"disallowed\"],[[43824,43866],\"valid\"],[[43867,43867],\"valid\",[],\"NV8\"],[[43868,43868],\"mapped\",[42791]],[[43869,43869],\"mapped\",[43831]],[[43870,43870],\"mapped\",[619]],[[43871,43871],\"mapped\",[43858]],[[43872,43875],\"valid\"],[[43876,43877],\"valid\"],[[43878,43887],\"disallowed\"],[[43888,43888],\"mapped\",[5024]],[[43889,43889],\"mapped\",[5025]],[[43890,43890],\"mapped\",[5026]],[[43891,43891],\"mapped\",[5027]],[[43892,43892],\"mapped\",[5028]],[[43893,43893],\"mapped\",[5029]],[[43894,43894],\"mapped\",[5030]],[[43895,43895],\"mapped\",[5031]],[[43896,43896],\"mapped\",[5032]],[[43897,43897],\"mapped\",[5033]],[[43898,43898],\"mapped\",[5034]],[[43899,43899],\"mapped\",[5035]],[[43900,43900],\"mapped\",[5036]],[[43901,43901],\"mapped\",[5037]],[[43902,43902],\"mapped\",[5038]],[[43903,43903],\"mapped\",[5039]],[[43904,43904],\"mapped\",[5040]],[[43905,43905],\"mapped\",[5041]],[[43906,43906],\"mapped\",[5042]],[[43907,43907],\"mapped\",[5043]],[[43908,43908],\"mapped\",[5044]],[[43909,43909],\"mapped\",[5045]],[[43910,43910],\"mapped\",[5046]],[[43911,43911],\"mapped\",[5047]],[[43912,43912],\"mapped\",[5048]],[[43913,43913],\"mapped\",[5049]],[[43914,43914],\"mapped\",[5050]],[[43915,43915],\"mapped\",[5051]],[[43916,43916],\"mapped\",[5052]],[[43917,43917],\"mapped\",[5053]],[[43918,43918],\"mapped\",[5054]],[[43919,43919],\"mapped\",[5055]],[[43920,43920],\"mapped\",[5056]],[[43921,43921],\"mapped\",[5057]],[[43922,43922],\"mapped\",[5058]],[[43923,43923],\"mapped\",[5059]],[[43924,43924],\"mapped\",[5060]],[[43925,43925],\"mapped\",[5061]],[[43926,43926],\"mapped\",[5062]],[[43927,43927],\"mapped\",[5063]],[[43928,43928],\"mapped\",[5064]],[[43929,43929],\"mapped\",[5065]],[[43930,43930],\"mapped\",[5066]],[[43931,43931],\"mapped\",[5067]],[[43932,43932],\"mapped\",[5068]],[[43933,43933],\"mapped\",[5069]],[[43934,43934],\"mapped\",[5070]],[[43935,43935],\"mapped\",[5071]],[[43936,43936],\"mapped\",[5072]],[[43937,43937],\"mapped\",[5073]],[[43938,43938],\"mapped\",[5074]],[[43939,43939],\"mapped\",[5075]],[[43940,43940],\"mapped\",[5076]],[[43941,43941],\"mapped\",[5077]],[[43942,43942],\"mapped\",[5078]],[[43943,43943],\"mapped\",[5079]],[[43944,43944],\"mapped\",[5080]],[[43945,43945],\"mapped\",[5081]],[[43946,43946],\"mapped\",[5082]],[[43947,43947],\"mapped\",[5083]],[[43948,43948],\"mapped\",[5084]],[[43949,43949],\"mapped\",[5085]],[[43950,43950],\"mapped\",[5086]],[[43951,43951],\"mapped\",[5087]],[[43952,43952],\"mapped\",[5088]],[[43953,43953],\"mapped\",[5089]],[[43954,43954],\"mapped\",[5090]],[[43955,43955],\"mapped\",[5091]],[[43956,43956],\"mapped\",[5092]],[[43957,43957],\"mapped\",[5093]],[[43958,43958],\"mapped\",[5094]],[[43959,43959],\"mapped\",[5095]],[[43960,43960],\"mapped\",[5096]],[[43961,43961],\"mapped\",[5097]],[[43962,43962],\"mapped\",[5098]],[[43963,43963],\"mapped\",[5099]],[[43964,43964],\"mapped\",[5100]],[[43965,43965],\"mapped\",[5101]],[[43966,43966],\"mapped\",[5102]],[[43967,43967],\"mapped\",[5103]],[[43968,44010],\"valid\"],[[44011,44011],\"valid\",[],\"NV8\"],[[44012,44013],\"valid\"],[[44014,44015],\"disallowed\"],[[44016,44025],\"valid\"],[[44026,44031],\"disallowed\"],[[44032,55203],\"valid\"],[[55204,55215],\"disallowed\"],[[55216,55238],\"valid\",[],\"NV8\"],[[55239,55242],\"disallowed\"],[[55243,55291],\"valid\",[],\"NV8\"],[[55292,55295],\"disallowed\"],[[55296,57343],\"disallowed\"],[[57344,63743],\"disallowed\"],[[63744,63744],\"mapped\",[35912]],[[63745,63745],\"mapped\",[26356]],[[63746,63746],\"mapped\",[36554]],[[63747,63747],\"mapped\",[36040]],[[63748,63748],\"mapped\",[28369]],[[63749,63749],\"mapped\",[20018]],[[63750,63750],\"mapped\",[21477]],[[63751,63752],\"mapped\",[40860]],[[63753,63753],\"mapped\",[22865]],[[63754,63754],\"mapped\",[37329]],[[63755,63755],\"mapped\",[21895]],[[63756,63756],\"mapped\",[22856]],[[63757,63757],\"mapped\",[25078]],[[63758,63758],\"mapped\",[30313]],[[63759,63759],\"mapped\",[32645]],[[63760,63760],\"mapped\",[34367]],[[63761,63761],\"mapped\",[34746]],[[63762,63762],\"mapped\",[35064]],[[63763,63763],\"mapped\",[37007]],[[63764,63764],\"mapped\",[27138]],[[63765,63765],\"mapped\",[27931]],[[63766,63766],\"mapped\",[28889]],[[63767,63767],\"mapped\",[29662]],[[63768,63768],\"mapped\",[33853]],[[63769,63769],\"mapped\",[37226]],[[63770,63770],\"mapped\",[39409]],[[63771,63771],\"mapped\",[20098]],[[63772,63772],\"mapped\",[21365]],[[63773,63773],\"mapped\",[27396]],[[63774,63774],\"mapped\",[29211]],[[63775,63775],\"mapped\",[34349]],[[63776,63776],\"mapped\",[40478]],[[63777,63777],\"mapped\",[23888]],[[63778,63778],\"mapped\",[28651]],[[63779,63779],\"mapped\",[34253]],[[63780,63780],\"mapped\",[35172]],[[63781,63781],\"mapped\",[25289]],[[63782,63782],\"mapped\",[33240]],[[63783,63783],\"mapped\",[34847]],[[63784,63784],\"mapped\",[24266]],[[63785,63785],\"mapped\",[26391]],[[63786,63786],\"mapped\",[28010]],[[63787,63787],\"mapped\",[29436]],[[63788,63788],\"mapped\",[37070]],[[63789,63789],\"mapped\",[20358]],[[63790,63790],\"mapped\",[20919]],[[63791,63791],\"mapped\",[21214]],[[63792,63792],\"mapped\",[25796]],[[63793,63793],\"mapped\",[27347]],[[63794,63794],\"mapped\",[29200]],[[63795,63795],\"mapped\",[30439]],[[63796,63796],\"mapped\",[32769]],[[63797,63797],\"mapped\",[34310]],[[63798,63798],\"mapped\",[34396]],[[63799,63799],\"mapped\",[36335]],[[63800,63800],\"mapped\",[38706]],[[63801,63801],\"mapped\",[39791]],[[63802,63802],\"mapped\",[40442]],[[63803,63803],\"mapped\",[30860]],[[63804,63804],\"mapped\",[31103]],[[63805,63805],\"mapped\",[32160]],[[63806,63806],\"mapped\",[33737]],[[63807,63807],\"mapped\",[37636]],[[63808,63808],\"mapped\",[40575]],[[63809,63809],\"mapped\",[35542]],[[63810,63810],\"mapped\",[22751]],[[63811,63811],\"mapped\",[24324]],[[63812,63812],\"mapped\",[31840]],[[63813,63813],\"mapped\",[32894]],[[63814,63814],\"mapped\",[29282]],[[63815,63815],\"mapped\",[30922]],[[63816,63816],\"mapped\",[36034]],[[63817,63817],\"mapped\",[38647]],[[63818,63818],\"mapped\",[22744]],[[63819,63819],\"mapped\",[23650]],[[63820,63820],\"mapped\",[27155]],[[63821,63821],\"mapped\",[28122]],[[63822,63822],\"mapped\",[28431]],[[63823,63823],\"mapped\",[32047]],[[63824,63824],\"mapped\",[32311]],[[63825,63825],\"mapped\",[38475]],[[63826,63826],\"mapped\",[21202]],[[63827,63827],\"mapped\",[32907]],[[63828,63828],\"mapped\",[20956]],[[63829,63829],\"mapped\",[20940]],[[63830,63830],\"mapped\",[31260]],[[63831,63831],\"mapped\",[32190]],[[63832,63832],\"mapped\",[33777]],[[63833,63833],\"mapped\",[38517]],[[63834,63834],\"mapped\",[35712]],[[63835,63835],\"mapped\",[25295]],[[63836,63836],\"mapped\",[27138]],[[63837,63837],\"mapped\",[35582]],[[63838,63838],\"mapped\",[20025]],[[63839,63839],\"mapped\",[23527]],[[63840,63840],\"mapped\",[24594]],[[63841,63841],\"mapped\",[29575]],[[63842,63842],\"mapped\",[30064]],[[63843,63843],\"mapped\",[21271]],[[63844,63844],\"mapped\",[30971]],[[63845,63845],\"mapped\",[20415]],[[63846,63846],\"mapped\",[24489]],[[63847,63847],\"mapped\",[19981]],[[63848,63848],\"mapped\",[27852]],[[63849,63849],\"mapped\",[25976]],[[63850,63850],\"mapped\",[32034]],[[63851,63851],\"mapped\",[21443]],[[63852,63852],\"mapped\",[22622]],[[63853,63853],\"mapped\",[30465]],[[63854,63854],\"mapped\",[33865]],[[63855,63855],\"mapped\",[35498]],[[63856,63856],\"mapped\",[27578]],[[63857,63857],\"mapped\",[36784]],[[63858,63858],\"mapped\",[27784]],[[63859,63859],\"mapped\",[25342]],[[63860,63860],\"mapped\",[33509]],[[63861,63861],\"mapped\",[25504]],[[63862,63862],\"mapped\",[30053]],[[63863,63863],\"mapped\",[20142]],[[63864,63864],\"mapped\",[20841]],[[63865,63865],\"mapped\",[20937]],[[63866,63866],\"mapped\",[26753]],[[63867,63867],\"mapped\",[31975]],[[63868,63868],\"mapped\",[33391]],[[63869,63869],\"mapped\",[35538]],[[63870,63870],\"mapped\",[37327]],[[63871,63871],\"mapped\",[21237]],[[63872,63872],\"mapped\",[21570]],[[63873,63873],\"mapped\",[22899]],[[63874,63874],\"mapped\",[24300]],[[63875,63875],\"mapped\",[26053]],[[63876,63876],\"mapped\",[28670]],[[63877,63877],\"mapped\",[31018]],[[63878,63878],\"mapped\",[38317]],[[63879,63879],\"mapped\",[39530]],[[63880,63880],\"mapped\",[40599]],[[63881,63881],\"mapped\",[40654]],[[63882,63882],\"mapped\",[21147]],[[63883,63883],\"mapped\",[26310]],[[63884,63884],\"mapped\",[27511]],[[63885,63885],\"mapped\",[36706]],[[63886,63886],\"mapped\",[24180]],[[63887,63887],\"mapped\",[24976]],[[63888,63888],\"mapped\",[25088]],[[63889,63889],\"mapped\",[25754]],[[63890,63890],\"mapped\",[28451]],[[63891,63891],\"mapped\",[29001]],[[63892,63892],\"mapped\",[29833]],[[63893,63893],\"mapped\",[31178]],[[63894,63894],\"mapped\",[32244]],[[63895,63895],\"mapped\",[32879]],[[63896,63896],\"mapped\",[36646]],[[63897,63897],\"mapped\",[34030]],[[63898,63898],\"mapped\",[36899]],[[63899,63899],\"mapped\",[37706]],[[63900,63900],\"mapped\",[21015]],[[63901,63901],\"mapped\",[21155]],[[63902,63902],\"mapped\",[21693]],[[63903,63903],\"mapped\",[28872]],[[63904,63904],\"mapped\",[35010]],[[63905,63905],\"mapped\",[35498]],[[63906,63906],\"mapped\",[24265]],[[63907,63907],\"mapped\",[24565]],[[63908,63908],\"mapped\",[25467]],[[63909,63909],\"mapped\",[27566]],[[63910,63910],\"mapped\",[31806]],[[63911,63911],\"mapped\",[29557]],[[63912,63912],\"mapped\",[20196]],[[63913,63913],\"mapped\",[22265]],[[63914,63914],\"mapped\",[23527]],[[63915,63915],\"mapped\",[23994]],[[63916,63916],\"mapped\",[24604]],[[63917,63917],\"mapped\",[29618]],[[63918,63918],\"mapped\",[29801]],[[63919,63919],\"mapped\",[32666]],[[63920,63920],\"mapped\",[32838]],[[63921,63921],\"mapped\",[37428]],[[63922,63922],\"mapped\",[38646]],[[63923,63923],\"mapped\",[38728]],[[63924,63924],\"mapped\",[38936]],[[63925,63925],\"mapped\",[20363]],[[63926,63926],\"mapped\",[31150]],[[63927,63927],\"mapped\",[37300]],[[63928,63928],\"mapped\",[38584]],[[63929,63929],\"mapped\",[24801]],[[63930,63930],\"mapped\",[20102]],[[63931,63931],\"mapped\",[20698]],[[63932,63932],\"mapped\",[23534]],[[63933,63933],\"mapped\",[23615]],[[63934,63934],\"mapped\",[26009]],[[63935,63935],\"mapped\",[27138]],[[63936,63936],\"mapped\",[29134]],[[63937,63937],\"mapped\",[30274]],[[63938,63938],\"mapped\",[34044]],[[63939,63939],\"mapped\",[36988]],[[63940,63940],\"mapped\",[40845]],[[63941,63941],\"mapped\",[26248]],[[63942,63942],\"mapped\",[38446]],[[63943,63943],\"mapped\",[21129]],[[63944,63944],\"mapped\",[26491]],[[63945,63945],\"mapped\",[26611]],[[63946,63946],\"mapped\",[27969]],[[63947,63947],\"mapped\",[28316]],[[63948,63948],\"mapped\",[29705]],[[63949,63949],\"mapped\",[30041]],[[63950,63950],\"mapped\",[30827]],[[63951,63951],\"mapped\",[32016]],[[63952,63952],\"mapped\",[39006]],[[63953,63953],\"mapped\",[20845]],[[63954,63954],\"mapped\",[25134]],[[63955,63955],\"mapped\",[38520]],[[63956,63956],\"mapped\",[20523]],[[63957,63957],\"mapped\",[23833]],[[63958,63958],\"mapped\",[28138]],[[63959,63959],\"mapped\",[36650]],[[63960,63960],\"mapped\",[24459]],[[63961,63961],\"mapped\",[24900]],[[63962,63962],\"mapped\",[26647]],[[63963,63963],\"mapped\",[29575]],[[63964,63964],\"mapped\",[38534]],[[63965,63965],\"mapped\",[21033]],[[63966,63966],\"mapped\",[21519]],[[63967,63967],\"mapped\",[23653]],[[63968,63968],\"mapped\",[26131]],[[63969,63969],\"mapped\",[26446]],[[63970,63970],\"mapped\",[26792]],[[63971,63971],\"mapped\",[27877]],[[63972,63972],\"mapped\",[29702]],[[63973,63973],\"mapped\",[30178]],[[63974,63974],\"mapped\",[32633]],[[63975,63975],\"mapped\",[35023]],[[63976,63976],\"mapped\",[35041]],[[63977,63977],\"mapped\",[37324]],[[63978,63978],\"mapped\",[38626]],[[63979,63979],\"mapped\",[21311]],[[63980,63980],\"mapped\",[28346]],[[63981,63981],\"mapped\",[21533]],[[63982,63982],\"mapped\",[29136]],[[63983,63983],\"mapped\",[29848]],[[63984,63984],\"mapped\",[34298]],[[63985,63985],\"mapped\",[38563]],[[63986,63986],\"mapped\",[40023]],[[63987,63987],\"mapped\",[40607]],[[63988,63988],\"mapped\",[26519]],[[63989,63989],\"mapped\",[28107]],[[63990,63990],\"mapped\",[33256]],[[63991,63991],\"mapped\",[31435]],[[63992,63992],\"mapped\",[31520]],[[63993,63993],\"mapped\",[31890]],[[63994,63994],\"mapped\",[29376]],[[63995,63995],\"mapped\",[28825]],[[63996,63996],\"mapped\",[35672]],[[63997,63997],\"mapped\",[20160]],[[63998,63998],\"mapped\",[33590]],[[63999,63999],\"mapped\",[21050]],[[64000,64000],\"mapped\",[20999]],[[64001,64001],\"mapped\",[24230]],[[64002,64002],\"mapped\",[25299]],[[64003,64003],\"mapped\",[31958]],[[64004,64004],\"mapped\",[23429]],[[64005,64005],\"mapped\",[27934]],[[64006,64006],\"mapped\",[26292]],[[64007,64007],\"mapped\",[36667]],[[64008,64008],\"mapped\",[34892]],[[64009,64009],\"mapped\",[38477]],[[64010,64010],\"mapped\",[35211]],[[64011,64011],\"mapped\",[24275]],[[64012,64012],\"mapped\",[20800]],[[64013,64013],\"mapped\",[21952]],[[64014,64015],\"valid\"],[[64016,64016],\"mapped\",[22618]],[[64017,64017],\"valid\"],[[64018,64018],\"mapped\",[26228]],[[64019,64020],\"valid\"],[[64021,64021],\"mapped\",[20958]],[[64022,64022],\"mapped\",[29482]],[[64023,64023],\"mapped\",[30410]],[[64024,64024],\"mapped\",[31036]],[[64025,64025],\"mapped\",[31070]],[[64026,64026],\"mapped\",[31077]],[[64027,64027],\"mapped\",[31119]],[[64028,64028],\"mapped\",[38742]],[[64029,64029],\"mapped\",[31934]],[[64030,64030],\"mapped\",[32701]],[[64031,64031],\"valid\"],[[64032,64032],\"mapped\",[34322]],[[64033,64033],\"valid\"],[[64034,64034],\"mapped\",[35576]],[[64035,64036],\"valid\"],[[64037,64037],\"mapped\",[36920]],[[64038,64038],\"mapped\",[37117]],[[64039,64041],\"valid\"],[[64042,64042],\"mapped\",[39151]],[[64043,64043],\"mapped\",[39164]],[[64044,64044],\"mapped\",[39208]],[[64045,64045],\"mapped\",[40372]],[[64046,64046],\"mapped\",[37086]],[[64047,64047],\"mapped\",[38583]],[[64048,64048],\"mapped\",[20398]],[[64049,64049],\"mapped\",[20711]],[[64050,64050],\"mapped\",[20813]],[[64051,64051],\"mapped\",[21193]],[[64052,64052],\"mapped\",[21220]],[[64053,64053],\"mapped\",[21329]],[[64054,64054],\"mapped\",[21917]],[[64055,64055],\"mapped\",[22022]],[[64056,64056],\"mapped\",[22120]],[[64057,64057],\"mapped\",[22592]],[[64058,64058],\"mapped\",[22696]],[[64059,64059],\"mapped\",[23652]],[[64060,64060],\"mapped\",[23662]],[[64061,64061],\"mapped\",[24724]],[[64062,64062],\"mapped\",[24936]],[[64063,64063],\"mapped\",[24974]],[[64064,64064],\"mapped\",[25074]],[[64065,64065],\"mapped\",[25935]],[[64066,64066],\"mapped\",[26082]],[[64067,64067],\"mapped\",[26257]],[[64068,64068],\"mapped\",[26757]],[[64069,64069],\"mapped\",[28023]],[[64070,64070],\"mapped\",[28186]],[[64071,64071],\"mapped\",[28450]],[[64072,64072],\"mapped\",[29038]],[[64073,64073],\"mapped\",[29227]],[[64074,64074],\"mapped\",[29730]],[[64075,64075],\"mapped\",[30865]],[[64076,64076],\"mapped\",[31038]],[[64077,64077],\"mapped\",[31049]],[[64078,64078],\"mapped\",[31048]],[[64079,64079],\"mapped\",[31056]],[[64080,64080],\"mapped\",[31062]],[[64081,64081],\"mapped\",[31069]],[[64082,64082],\"mapped\",[31117]],[[64083,64083],\"mapped\",[31118]],[[64084,64084],\"mapped\",[31296]],[[64085,64085],\"mapped\",[31361]],[[64086,64086],\"mapped\",[31680]],[[64087,64087],\"mapped\",[32244]],[[64088,64088],\"mapped\",[32265]],[[64089,64089],\"mapped\",[32321]],[[64090,64090],\"mapped\",[32626]],[[64091,64091],\"mapped\",[32773]],[[64092,64092],\"mapped\",[33261]],[[64093,64094],\"mapped\",[33401]],[[64095,64095],\"mapped\",[33879]],[[64096,64096],\"mapped\",[35088]],[[64097,64097],\"mapped\",[35222]],[[64098,64098],\"mapped\",[35585]],[[64099,64099],\"mapped\",[35641]],[[64100,64100],\"mapped\",[36051]],[[64101,64101],\"mapped\",[36104]],[[64102,64102],\"mapped\",[36790]],[[64103,64103],\"mapped\",[36920]],[[64104,64104],\"mapped\",[38627]],[[64105,64105],\"mapped\",[38911]],[[64106,64106],\"mapped\",[38971]],[[64107,64107],\"mapped\",[24693]],[[64108,64108],\"mapped\",[148206]],[[64109,64109],\"mapped\",[33304]],[[64110,64111],\"disallowed\"],[[64112,64112],\"mapped\",[20006]],[[64113,64113],\"mapped\",[20917]],[[64114,64114],\"mapped\",[20840]],[[64115,64115],\"mapped\",[20352]],[[64116,64116],\"mapped\",[20805]],[[64117,64117],\"mapped\",[20864]],[[64118,64118],\"mapped\",[21191]],[[64119,64119],\"mapped\",[21242]],[[64120,64120],\"mapped\",[21917]],[[64121,64121],\"mapped\",[21845]],[[64122,64122],\"mapped\",[21913]],[[64123,64123],\"mapped\",[21986]],[[64124,64124],\"mapped\",[22618]],[[64125,64125],\"mapped\",[22707]],[[64126,64126],\"mapped\",[22852]],[[64127,64127],\"mapped\",[22868]],[[64128,64128],\"mapped\",[23138]],[[64129,64129],\"mapped\",[23336]],[[64130,64130],\"mapped\",[24274]],[[64131,64131],\"mapped\",[24281]],[[64132,64132],\"mapped\",[24425]],[[64133,64133],\"mapped\",[24493]],[[64134,64134],\"mapped\",[24792]],[[64135,64135],\"mapped\",[24910]],[[64136,64136],\"mapped\",[24840]],[[64137,64137],\"mapped\",[24974]],[[64138,64138],\"mapped\",[24928]],[[64139,64139],\"mapped\",[25074]],[[64140,64140],\"mapped\",[25140]],[[64141,64141],\"mapped\",[25540]],[[64142,64142],\"mapped\",[25628]],[[64143,64143],\"mapped\",[25682]],[[64144,64144],\"mapped\",[25942]],[[64145,64145],\"mapped\",[26228]],[[64146,64146],\"mapped\",[26391]],[[64147,64147],\"mapped\",[26395]],[[64148,64148],\"mapped\",[26454]],[[64149,64149],\"mapped\",[27513]],[[64150,64150],\"mapped\",[27578]],[[64151,64151],\"mapped\",[27969]],[[64152,64152],\"mapped\",[28379]],[[64153,64153],\"mapped\",[28363]],[[64154,64154],\"mapped\",[28450]],[[64155,64155],\"mapped\",[28702]],[[64156,64156],\"mapped\",[29038]],[[64157,64157],\"mapped\",[30631]],[[64158,64158],\"mapped\",[29237]],[[64159,64159],\"mapped\",[29359]],[[64160,64160],\"mapped\",[29482]],[[64161,64161],\"mapped\",[29809]],[[64162,64162],\"mapped\",[29958]],[[64163,64163],\"mapped\",[30011]],[[64164,64164],\"mapped\",[30237]],[[64165,64165],\"mapped\",[30239]],[[64166,64166],\"mapped\",[30410]],[[64167,64167],\"mapped\",[30427]],[[64168,64168],\"mapped\",[30452]],[[64169,64169],\"mapped\",[30538]],[[64170,64170],\"mapped\",[30528]],[[64171,64171],\"mapped\",[30924]],[[64172,64172],\"mapped\",[31409]],[[64173,64173],\"mapped\",[31680]],[[64174,64174],\"mapped\",[31867]],[[64175,64175],\"mapped\",[32091]],[[64176,64176],\"mapped\",[32244]],[[64177,64177],\"mapped\",[32574]],[[64178,64178],\"mapped\",[32773]],[[64179,64179],\"mapped\",[33618]],[[64180,64180],\"mapped\",[33775]],[[64181,64181],\"mapped\",[34681]],[[64182,64182],\"mapped\",[35137]],[[64183,64183],\"mapped\",[35206]],[[64184,64184],\"mapped\",[35222]],[[64185,64185],\"mapped\",[35519]],[[64186,64186],\"mapped\",[35576]],[[64187,64187],\"mapped\",[35531]],[[64188,64188],\"mapped\",[35585]],[[64189,64189],\"mapped\",[35582]],[[64190,64190],\"mapped\",[35565]],[[64191,64191],\"mapped\",[35641]],[[64192,64192],\"mapped\",[35722]],[[64193,64193],\"mapped\",[36104]],[[64194,64194],\"mapped\",[36664]],[[64195,64195],\"mapped\",[36978]],[[64196,64196],\"mapped\",[37273]],[[64197,64197],\"mapped\",[37494]],[[64198,64198],\"mapped\",[38524]],[[64199,64199],\"mapped\",[38627]],[[64200,64200],\"mapped\",[38742]],[[64201,64201],\"mapped\",[38875]],[[64202,64202],\"mapped\",[38911]],[[64203,64203],\"mapped\",[38923]],[[64204,64204],\"mapped\",[38971]],[[64205,64205],\"mapped\",[39698]],[[64206,64206],\"mapped\",[40860]],[[64207,64207],\"mapped\",[141386]],[[64208,64208],\"mapped\",[141380]],[[64209,64209],\"mapped\",[144341]],[[64210,64210],\"mapped\",[15261]],[[64211,64211],\"mapped\",[16408]],[[64212,64212],\"mapped\",[16441]],[[64213,64213],\"mapped\",[152137]],[[64214,64214],\"mapped\",[154832]],[[64215,64215],\"mapped\",[163539]],[[64216,64216],\"mapped\",[40771]],[[64217,64217],\"mapped\",[40846]],[[64218,64255],\"disallowed\"],[[64256,64256],\"mapped\",[102,102]],[[64257,64257],\"mapped\",[102,105]],[[64258,64258],\"mapped\",[102,108]],[[64259,64259],\"mapped\",[102,102,105]],[[64260,64260],\"mapped\",[102,102,108]],[[64261,64262],\"mapped\",[115,116]],[[64263,64274],\"disallowed\"],[[64275,64275],\"mapped\",[1396,1398]],[[64276,64276],\"mapped\",[1396,1381]],[[64277,64277],\"mapped\",[1396,1387]],[[64278,64278],\"mapped\",[1406,1398]],[[64279,64279],\"mapped\",[1396,1389]],[[64280,64284],\"disallowed\"],[[64285,64285],\"mapped\",[1497,1460]],[[64286,64286],\"valid\"],[[64287,64287],\"mapped\",[1522,1463]],[[64288,64288],\"mapped\",[1506]],[[64289,64289],\"mapped\",[1488]],[[64290,64290],\"mapped\",[1491]],[[64291,64291],\"mapped\",[1492]],[[64292,64292],\"mapped\",[1499]],[[64293,64293],\"mapped\",[1500]],[[64294,64294],\"mapped\",[1501]],[[64295,64295],\"mapped\",[1512]],[[64296,64296],\"mapped\",[1514]],[[64297,64297],\"disallowed_STD3_mapped\",[43]],[[64298,64298],\"mapped\",[1513,1473]],[[64299,64299],\"mapped\",[1513,1474]],[[64300,64300],\"mapped\",[1513,1468,1473]],[[64301,64301],\"mapped\",[1513,1468,1474]],[[64302,64302],\"mapped\",[1488,1463]],[[64303,64303],\"mapped\",[1488,1464]],[[64304,64304],\"mapped\",[1488,1468]],[[64305,64305],\"mapped\",[1489,1468]],[[64306,64306],\"mapped\",[1490,1468]],[[64307,64307],\"mapped\",[1491,1468]],[[64308,64308],\"mapped\",[1492,1468]],[[64309,64309],\"mapped\",[1493,1468]],[[64310,64310],\"mapped\",[1494,1468]],[[64311,64311],\"disallowed\"],[[64312,64312],\"mapped\",[1496,1468]],[[64313,64313],\"mapped\",[1497,1468]],[[64314,64314],\"mapped\",[1498,1468]],[[64315,64315],\"mapped\",[1499,1468]],[[64316,64316],\"mapped\",[1500,1468]],[[64317,64317],\"disallowed\"],[[64318,64318],\"mapped\",[1502,1468]],[[64319,64319],\"disallowed\"],[[64320,64320],\"mapped\",[1504,1468]],[[64321,64321],\"mapped\",[1505,1468]],[[64322,64322],\"disallowed\"],[[64323,64323],\"mapped\",[1507,1468]],[[64324,64324],\"mapped\",[1508,1468]],[[64325,64325],\"disallowed\"],[[64326,64326],\"mapped\",[1510,1468]],[[64327,64327],\"mapped\",[1511,1468]],[[64328,64328],\"mapped\",[1512,1468]],[[64329,64329],\"mapped\",[1513,1468]],[[64330,64330],\"mapped\",[1514,1468]],[[64331,64331],\"mapped\",[1493,1465]],[[64332,64332],\"mapped\",[1489,1471]],[[64333,64333],\"mapped\",[1499,1471]],[[64334,64334],\"mapped\",[1508,1471]],[[64335,64335],\"mapped\",[1488,1500]],[[64336,64337],\"mapped\",[1649]],[[64338,64341],\"mapped\",[1659]],[[64342,64345],\"mapped\",[1662]],[[64346,64349],\"mapped\",[1664]],[[64350,64353],\"mapped\",[1658]],[[64354,64357],\"mapped\",[1663]],[[64358,64361],\"mapped\",[1657]],[[64362,64365],\"mapped\",[1700]],[[64366,64369],\"mapped\",[1702]],[[64370,64373],\"mapped\",[1668]],[[64374,64377],\"mapped\",[1667]],[[64378,64381],\"mapped\",[1670]],[[64382,64385],\"mapped\",[1671]],[[64386,64387],\"mapped\",[1677]],[[64388,64389],\"mapped\",[1676]],[[64390,64391],\"mapped\",[1678]],[[64392,64393],\"mapped\",[1672]],[[64394,64395],\"mapped\",[1688]],[[64396,64397],\"mapped\",[1681]],[[64398,64401],\"mapped\",[1705]],[[64402,64405],\"mapped\",[1711]],[[64406,64409],\"mapped\",[1715]],[[64410,64413],\"mapped\",[1713]],[[64414,64415],\"mapped\",[1722]],[[64416,64419],\"mapped\",[1723]],[[64420,64421],\"mapped\",[1728]],[[64422,64425],\"mapped\",[1729]],[[64426,64429],\"mapped\",[1726]],[[64430,64431],\"mapped\",[1746]],[[64432,64433],\"mapped\",[1747]],[[64434,64449],\"valid\",[],\"NV8\"],[[64450,64466],\"disallowed\"],[[64467,64470],\"mapped\",[1709]],[[64471,64472],\"mapped\",[1735]],[[64473,64474],\"mapped\",[1734]],[[64475,64476],\"mapped\",[1736]],[[64477,64477],\"mapped\",[1735,1652]],[[64478,64479],\"mapped\",[1739]],[[64480,64481],\"mapped\",[1733]],[[64482,64483],\"mapped\",[1737]],[[64484,64487],\"mapped\",[1744]],[[64488,64489],\"mapped\",[1609]],[[64490,64491],\"mapped\",[1574,1575]],[[64492,64493],\"mapped\",[1574,1749]],[[64494,64495],\"mapped\",[1574,1608]],[[64496,64497],\"mapped\",[1574,1735]],[[64498,64499],\"mapped\",[1574,1734]],[[64500,64501],\"mapped\",[1574,1736]],[[64502,64504],\"mapped\",[1574,1744]],[[64505,64507],\"mapped\",[1574,1609]],[[64508,64511],\"mapped\",[1740]],[[64512,64512],\"mapped\",[1574,1580]],[[64513,64513],\"mapped\",[1574,1581]],[[64514,64514],\"mapped\",[1574,1605]],[[64515,64515],\"mapped\",[1574,1609]],[[64516,64516],\"mapped\",[1574,1610]],[[64517,64517],\"mapped\",[1576,1580]],[[64518,64518],\"mapped\",[1576,1581]],[[64519,64519],\"mapped\",[1576,1582]],[[64520,64520],\"mapped\",[1576,1605]],[[64521,64521],\"mapped\",[1576,1609]],[[64522,64522],\"mapped\",[1576,1610]],[[64523,64523],\"mapped\",[1578,1580]],[[64524,64524],\"mapped\",[1578,1581]],[[64525,64525],\"mapped\",[1578,1582]],[[64526,64526],\"mapped\",[1578,1605]],[[64527,64527],\"mapped\",[1578,1609]],[[64528,64528],\"mapped\",[1578,1610]],[[64529,64529],\"mapped\",[1579,1580]],[[64530,64530],\"mapped\",[1579,1605]],[[64531,64531],\"mapped\",[1579,1609]],[[64532,64532],\"mapped\",[1579,1610]],[[64533,64533],\"mapped\",[1580,1581]],[[64534,64534],\"mapped\",[1580,1605]],[[64535,64535],\"mapped\",[1581,1580]],[[64536,64536],\"mapped\",[1581,1605]],[[64537,64537],\"mapped\",[1582,1580]],[[64538,64538],\"mapped\",[1582,1581]],[[64539,64539],\"mapped\",[1582,1605]],[[64540,64540],\"mapped\",[1587,1580]],[[64541,64541],\"mapped\",[1587,1581]],[[64542,64542],\"mapped\",[1587,1582]],[[64543,64543],\"mapped\",[1587,1605]],[[64544,64544],\"mapped\",[1589,1581]],[[64545,64545],\"mapped\",[1589,1605]],[[64546,64546],\"mapped\",[1590,1580]],[[64547,64547],\"mapped\",[1590,1581]],[[64548,64548],\"mapped\",[1590,1582]],[[64549,64549],\"mapped\",[1590,1605]],[[64550,64550],\"mapped\",[1591,1581]],[[64551,64551],\"mapped\",[1591,1605]],[[64552,64552],\"mapped\",[1592,1605]],[[64553,64553],\"mapped\",[1593,1580]],[[64554,64554],\"mapped\",[1593,1605]],[[64555,64555],\"mapped\",[1594,1580]],[[64556,64556],\"mapped\",[1594,1605]],[[64557,64557],\"mapped\",[1601,1580]],[[64558,64558],\"mapped\",[1601,1581]],[[64559,64559],\"mapped\",[1601,1582]],[[64560,64560],\"mapped\",[1601,1605]],[[64561,64561],\"mapped\",[1601,1609]],[[64562,64562],\"mapped\",[1601,1610]],[[64563,64563],\"mapped\",[1602,1581]],[[64564,64564],\"mapped\",[1602,1605]],[[64565,64565],\"mapped\",[1602,1609]],[[64566,64566],\"mapped\",[1602,1610]],[[64567,64567],\"mapped\",[1603,1575]],[[64568,64568],\"mapped\",[1603,1580]],[[64569,64569],\"mapped\",[1603,1581]],[[64570,64570],\"mapped\",[1603,1582]],[[64571,64571],\"mapped\",[1603,1604]],[[64572,64572],\"mapped\",[1603,1605]],[[64573,64573],\"mapped\",[1603,1609]],[[64574,64574],\"mapped\",[1603,1610]],[[64575,64575],\"mapped\",[1604,1580]],[[64576,64576],\"mapped\",[1604,1581]],[[64577,64577],\"mapped\",[1604,1582]],[[64578,64578],\"mapped\",[1604,1605]],[[64579,64579],\"mapped\",[1604,1609]],[[64580,64580],\"mapped\",[1604,1610]],[[64581,64581],\"mapped\",[1605,1580]],[[64582,64582],\"mapped\",[1605,1581]],[[64583,64583],\"mapped\",[1605,1582]],[[64584,64584],\"mapped\",[1605,1605]],[[64585,64585],\"mapped\",[1605,1609]],[[64586,64586],\"mapped\",[1605,1610]],[[64587,64587],\"mapped\",[1606,1580]],[[64588,64588],\"mapped\",[1606,1581]],[[64589,64589],\"mapped\",[1606,1582]],[[64590,64590],\"mapped\",[1606,1605]],[[64591,64591],\"mapped\",[1606,1609]],[[64592,64592],\"mapped\",[1606,1610]],[[64593,64593],\"mapped\",[1607,1580]],[[64594,64594],\"mapped\",[1607,1605]],[[64595,64595],\"mapped\",[1607,1609]],[[64596,64596],\"mapped\",[1607,1610]],[[64597,64597],\"mapped\",[1610,1580]],[[64598,64598],\"mapped\",[1610,1581]],[[64599,64599],\"mapped\",[1610,1582]],[[64600,64600],\"mapped\",[1610,1605]],[[64601,64601],\"mapped\",[1610,1609]],[[64602,64602],\"mapped\",[1610,1610]],[[64603,64603],\"mapped\",[1584,1648]],[[64604,64604],\"mapped\",[1585,1648]],[[64605,64605],\"mapped\",[1609,1648]],[[64606,64606],\"disallowed_STD3_mapped\",[32,1612,1617]],[[64607,64607],\"disallowed_STD3_mapped\",[32,1613,1617]],[[64608,64608],\"disallowed_STD3_mapped\",[32,1614,1617]],[[64609,64609],\"disallowed_STD3_mapped\",[32,1615,1617]],[[64610,64610],\"disallowed_STD3_mapped\",[32,1616,1617]],[[64611,64611],\"disallowed_STD3_mapped\",[32,1617,1648]],[[64612,64612],\"mapped\",[1574,1585]],[[64613,64613],\"mapped\",[1574,1586]],[[64614,64614],\"mapped\",[1574,1605]],[[64615,64615],\"mapped\",[1574,1606]],[[64616,64616],\"mapped\",[1574,1609]],[[64617,64617],\"mapped\",[1574,1610]],[[64618,64618],\"mapped\",[1576,1585]],[[64619,64619],\"mapped\",[1576,1586]],[[64620,64620],\"mapped\",[1576,1605]],[[64621,64621],\"mapped\",[1576,1606]],[[64622,64622],\"mapped\",[1576,1609]],[[64623,64623],\"mapped\",[1576,1610]],[[64624,64624],\"mapped\",[1578,1585]],[[64625,64625],\"mapped\",[1578,1586]],[[64626,64626],\"mapped\",[1578,1605]],[[64627,64627],\"mapped\",[1578,1606]],[[64628,64628],\"mapped\",[1578,1609]],[[64629,64629],\"mapped\",[1578,1610]],[[64630,64630],\"mapped\",[1579,1585]],[[64631,64631],\"mapped\",[1579,1586]],[[64632,64632],\"mapped\",[1579,1605]],[[64633,64633],\"mapped\",[1579,1606]],[[64634,64634],\"mapped\",[1579,1609]],[[64635,64635],\"mapped\",[1579,1610]],[[64636,64636],\"mapped\",[1601,1609]],[[64637,64637],\"mapped\",[1601,1610]],[[64638,64638],\"mapped\",[1602,1609]],[[64639,64639],\"mapped\",[1602,1610]],[[64640,64640],\"mapped\",[1603,1575]],[[64641,64641],\"mapped\",[1603,1604]],[[64642,64642],\"mapped\",[1603,1605]],[[64643,64643],\"mapped\",[1603,1609]],[[64644,64644],\"mapped\",[1603,1610]],[[64645,64645],\"mapped\",[1604,1605]],[[64646,64646],\"mapped\",[1604,1609]],[[64647,64647],\"mapped\",[1604,1610]],[[64648,64648],\"mapped\",[1605,1575]],[[64649,64649],\"mapped\",[1605,1605]],[[64650,64650],\"mapped\",[1606,1585]],[[64651,64651],\"mapped\",[1606,1586]],[[64652,64652],\"mapped\",[1606,1605]],[[64653,64653],\"mapped\",[1606,1606]],[[64654,64654],\"mapped\",[1606,1609]],[[64655,64655],\"mapped\",[1606,1610]],[[64656,64656],\"mapped\",[1609,1648]],[[64657,64657],\"mapped\",[1610,1585]],[[64658,64658],\"mapped\",[1610,1586]],[[64659,64659],\"mapped\",[1610,1605]],[[64660,64660],\"mapped\",[1610,1606]],[[64661,64661],\"mapped\",[1610,1609]],[[64662,64662],\"mapped\",[1610,1610]],[[64663,64663],\"mapped\",[1574,1580]],[[64664,64664],\"mapped\",[1574,1581]],[[64665,64665],\"mapped\",[1574,1582]],[[64666,64666],\"mapped\",[1574,1605]],[[64667,64667],\"mapped\",[1574,1607]],[[64668,64668],\"mapped\",[1576,1580]],[[64669,64669],\"mapped\",[1576,1581]],[[64670,64670],\"mapped\",[1576,1582]],[[64671,64671],\"mapped\",[1576,1605]],[[64672,64672],\"mapped\",[1576,1607]],[[64673,64673],\"mapped\",[1578,1580]],[[64674,64674],\"mapped\",[1578,1581]],[[64675,64675],\"mapped\",[1578,1582]],[[64676,64676],\"mapped\",[1578,1605]],[[64677,64677],\"mapped\",[1578,1607]],[[64678,64678],\"mapped\",[1579,1605]],[[64679,64679],\"mapped\",[1580,1581]],[[64680,64680],\"mapped\",[1580,1605]],[[64681,64681],\"mapped\",[1581,1580]],[[64682,64682],\"mapped\",[1581,1605]],[[64683,64683],\"mapped\",[1582,1580]],[[64684,64684],\"mapped\",[1582,1605]],[[64685,64685],\"mapped\",[1587,1580]],[[64686,64686],\"mapped\",[1587,1581]],[[64687,64687],\"mapped\",[1587,1582]],[[64688,64688],\"mapped\",[1587,1605]],[[64689,64689],\"mapped\",[1589,1581]],[[64690,64690],\"mapped\",[1589,1582]],[[64691,64691],\"mapped\",[1589,1605]],[[64692,64692],\"mapped\",[1590,1580]],[[64693,64693],\"mapped\",[1590,1581]],[[64694,64694],\"mapped\",[1590,1582]],[[64695,64695],\"mapped\",[1590,1605]],[[64696,64696],\"mapped\",[1591,1581]],[[64697,64697],\"mapped\",[1592,1605]],[[64698,64698],\"mapped\",[1593,1580]],[[64699,64699],\"mapped\",[1593,1605]],[[64700,64700],\"mapped\",[1594,1580]],[[64701,64701],\"mapped\",[1594,1605]],[[64702,64702],\"mapped\",[1601,1580]],[[64703,64703],\"mapped\",[1601,1581]],[[64704,64704],\"mapped\",[1601,1582]],[[64705,64705],\"mapped\",[1601,1605]],[[64706,64706],\"mapped\",[1602,1581]],[[64707,64707],\"mapped\",[1602,1605]],[[64708,64708],\"mapped\",[1603,1580]],[[64709,64709],\"mapped\",[1603,1581]],[[64710,64710],\"mapped\",[1603,1582]],[[64711,64711],\"mapped\",[1603,1604]],[[64712,64712],\"mapped\",[1603,1605]],[[64713,64713],\"mapped\",[1604,1580]],[[64714,64714],\"mapped\",[1604,1581]],[[64715,64715],\"mapped\",[1604,1582]],[[64716,64716],\"mapped\",[1604,1605]],[[64717,64717],\"mapped\",[1604,1607]],[[64718,64718],\"mapped\",[1605,1580]],[[64719,64719],\"mapped\",[1605,1581]],[[64720,64720],\"mapped\",[1605,1582]],[[64721,64721],\"mapped\",[1605,1605]],[[64722,64722],\"mapped\",[1606,1580]],[[64723,64723],\"mapped\",[1606,1581]],[[64724,64724],\"mapped\",[1606,1582]],[[64725,64725],\"mapped\",[1606,1605]],[[64726,64726],\"mapped\",[1606,1607]],[[64727,64727],\"mapped\",[1607,1580]],[[64728,64728],\"mapped\",[1607,1605]],[[64729,64729],\"mapped\",[1607,1648]],[[64730,64730],\"mapped\",[1610,1580]],[[64731,64731],\"mapped\",[1610,1581]],[[64732,64732],\"mapped\",[1610,1582]],[[64733,64733],\"mapped\",[1610,1605]],[[64734,64734],\"mapped\",[1610,1607]],[[64735,64735],\"mapped\",[1574,1605]],[[64736,64736],\"mapped\",[1574,1607]],[[64737,64737],\"mapped\",[1576,1605]],[[64738,64738],\"mapped\",[1576,1607]],[[64739,64739],\"mapped\",[1578,1605]],[[64740,64740],\"mapped\",[1578,1607]],[[64741,64741],\"mapped\",[1579,1605]],[[64742,64742],\"mapped\",[1579,1607]],[[64743,64743],\"mapped\",[1587,1605]],[[64744,64744],\"mapped\",[1587,1607]],[[64745,64745],\"mapped\",[1588,1605]],[[64746,64746],\"mapped\",[1588,1607]],[[64747,64747],\"mapped\",[1603,1604]],[[64748,64748],\"mapped\",[1603,1605]],[[64749,64749],\"mapped\",[1604,1605]],[[64750,64750],\"mapped\",[1606,1605]],[[64751,64751],\"mapped\",[1606,1607]],[[64752,64752],\"mapped\",[1610,1605]],[[64753,64753],\"mapped\",[1610,1607]],[[64754,64754],\"mapped\",[1600,1614,1617]],[[64755,64755],\"mapped\",[1600,1615,1617]],[[64756,64756],\"mapped\",[1600,1616,1617]],[[64757,64757],\"mapped\",[1591,1609]],[[64758,64758],\"mapped\",[1591,1610]],[[64759,64759],\"mapped\",[1593,1609]],[[64760,64760],\"mapped\",[1593,1610]],[[64761,64761],\"mapped\",[1594,1609]],[[64762,64762],\"mapped\",[1594,1610]],[[64763,64763],\"mapped\",[1587,1609]],[[64764,64764],\"mapped\",[1587,1610]],[[64765,64765],\"mapped\",[1588,1609]],[[64766,64766],\"mapped\",[1588,1610]],[[64767,64767],\"mapped\",[1581,1609]],[[64768,64768],\"mapped\",[1581,1610]],[[64769,64769],\"mapped\",[1580,1609]],[[64770,64770],\"mapped\",[1580,1610]],[[64771,64771],\"mapped\",[1582,1609]],[[64772,64772],\"mapped\",[1582,1610]],[[64773,64773],\"mapped\",[1589,1609]],[[64774,64774],\"mapped\",[1589,1610]],[[64775,64775],\"mapped\",[1590,1609]],[[64776,64776],\"mapped\",[1590,1610]],[[64777,64777],\"mapped\",[1588,1580]],[[64778,64778],\"mapped\",[1588,1581]],[[64779,64779],\"mapped\",[1588,1582]],[[64780,64780],\"mapped\",[1588,1605]],[[64781,64781],\"mapped\",[1588,1585]],[[64782,64782],\"mapped\",[1587,1585]],[[64783,64783],\"mapped\",[1589,1585]],[[64784,64784],\"mapped\",[1590,1585]],[[64785,64785],\"mapped\",[1591,1609]],[[64786,64786],\"mapped\",[1591,1610]],[[64787,64787],\"mapped\",[1593,1609]],[[64788,64788],\"mapped\",[1593,1610]],[[64789,64789],\"mapped\",[1594,1609]],[[64790,64790],\"mapped\",[1594,1610]],[[64791,64791],\"mapped\",[1587,1609]],[[64792,64792],\"mapped\",[1587,1610]],[[64793,64793],\"mapped\",[1588,1609]],[[64794,64794],\"mapped\",[1588,1610]],[[64795,64795],\"mapped\",[1581,1609]],[[64796,64796],\"mapped\",[1581,1610]],[[64797,64797],\"mapped\",[1580,1609]],[[64798,64798],\"mapped\",[1580,1610]],[[64799,64799],\"mapped\",[1582,1609]],[[64800,64800],\"mapped\",[1582,1610]],[[64801,64801],\"mapped\",[1589,1609]],[[64802,64802],\"mapped\",[1589,1610]],[[64803,64803],\"mapped\",[1590,1609]],[[64804,64804],\"mapped\",[1590,1610]],[[64805,64805],\"mapped\",[1588,1580]],[[64806,64806],\"mapped\",[1588,1581]],[[64807,64807],\"mapped\",[1588,1582]],[[64808,64808],\"mapped\",[1588,1605]],[[64809,64809],\"mapped\",[1588,1585]],[[64810,64810],\"mapped\",[1587,1585]],[[64811,64811],\"mapped\",[1589,1585]],[[64812,64812],\"mapped\",[1590,1585]],[[64813,64813],\"mapped\",[1588,1580]],[[64814,64814],\"mapped\",[1588,1581]],[[64815,64815],\"mapped\",[1588,1582]],[[64816,64816],\"mapped\",[1588,1605]],[[64817,64817],\"mapped\",[1587,1607]],[[64818,64818],\"mapped\",[1588,1607]],[[64819,64819],\"mapped\",[1591,1605]],[[64820,64820],\"mapped\",[1587,1580]],[[64821,64821],\"mapped\",[1587,1581]],[[64822,64822],\"mapped\",[1587,1582]],[[64823,64823],\"mapped\",[1588,1580]],[[64824,64824],\"mapped\",[1588,1581]],[[64825,64825],\"mapped\",[1588,1582]],[[64826,64826],\"mapped\",[1591,1605]],[[64827,64827],\"mapped\",[1592,1605]],[[64828,64829],\"mapped\",[1575,1611]],[[64830,64831],\"valid\",[],\"NV8\"],[[64832,64847],\"disallowed\"],[[64848,64848],\"mapped\",[1578,1580,1605]],[[64849,64850],\"mapped\",[1578,1581,1580]],[[64851,64851],\"mapped\",[1578,1581,1605]],[[64852,64852],\"mapped\",[1578,1582,1605]],[[64853,64853],\"mapped\",[1578,1605,1580]],[[64854,64854],\"mapped\",[1578,1605,1581]],[[64855,64855],\"mapped\",[1578,1605,1582]],[[64856,64857],\"mapped\",[1580,1605,1581]],[[64858,64858],\"mapped\",[1581,1605,1610]],[[64859,64859],\"mapped\",[1581,1605,1609]],[[64860,64860],\"mapped\",[1587,1581,1580]],[[64861,64861],\"mapped\",[1587,1580,1581]],[[64862,64862],\"mapped\",[1587,1580,1609]],[[64863,64864],\"mapped\",[1587,1605,1581]],[[64865,64865],\"mapped\",[1587,1605,1580]],[[64866,64867],\"mapped\",[1587,1605,1605]],[[64868,64869],\"mapped\",[1589,1581,1581]],[[64870,64870],\"mapped\",[1589,1605,1605]],[[64871,64872],\"mapped\",[1588,1581,1605]],[[64873,64873],\"mapped\",[1588,1580,1610]],[[64874,64875],\"mapped\",[1588,1605,1582]],[[64876,64877],\"mapped\",[1588,1605,1605]],[[64878,64878],\"mapped\",[1590,1581,1609]],[[64879,64880],\"mapped\",[1590,1582,1605]],[[64881,64882],\"mapped\",[1591,1605,1581]],[[64883,64883],\"mapped\",[1591,1605,1605]],[[64884,64884],\"mapped\",[1591,1605,1610]],[[64885,64885],\"mapped\",[1593,1580,1605]],[[64886,64887],\"mapped\",[1593,1605,1605]],[[64888,64888],\"mapped\",[1593,1605,1609]],[[64889,64889],\"mapped\",[1594,1605,1605]],[[64890,64890],\"mapped\",[1594,1605,1610]],[[64891,64891],\"mapped\",[1594,1605,1609]],[[64892,64893],\"mapped\",[1601,1582,1605]],[[64894,64894],\"mapped\",[1602,1605,1581]],[[64895,64895],\"mapped\",[1602,1605,1605]],[[64896,64896],\"mapped\",[1604,1581,1605]],[[64897,64897],\"mapped\",[1604,1581,1610]],[[64898,64898],\"mapped\",[1604,1581,1609]],[[64899,64900],\"mapped\",[1604,1580,1580]],[[64901,64902],\"mapped\",[1604,1582,1605]],[[64903,64904],\"mapped\",[1604,1605,1581]],[[64905,64905],\"mapped\",[1605,1581,1580]],[[64906,64906],\"mapped\",[1605,1581,1605]],[[64907,64907],\"mapped\",[1605,1581,1610]],[[64908,64908],\"mapped\",[1605,1580,1581]],[[64909,64909],\"mapped\",[1605,1580,1605]],[[64910,64910],\"mapped\",[1605,1582,1580]],[[64911,64911],\"mapped\",[1605,1582,1605]],[[64912,64913],\"disallowed\"],[[64914,64914],\"mapped\",[1605,1580,1582]],[[64915,64915],\"mapped\",[1607,1605,1580]],[[64916,64916],\"mapped\",[1607,1605,1605]],[[64917,64917],\"mapped\",[1606,1581,1605]],[[64918,64918],\"mapped\",[1606,1581,1609]],[[64919,64920],\"mapped\",[1606,1580,1605]],[[64921,64921],\"mapped\",[1606,1580,1609]],[[64922,64922],\"mapped\",[1606,1605,1610]],[[64923,64923],\"mapped\",[1606,1605,1609]],[[64924,64925],\"mapped\",[1610,1605,1605]],[[64926,64926],\"mapped\",[1576,1582,1610]],[[64927,64927],\"mapped\",[1578,1580,1610]],[[64928,64928],\"mapped\",[1578,1580,1609]],[[64929,64929],\"mapped\",[1578,1582,1610]],[[64930,64930],\"mapped\",[1578,1582,1609]],[[64931,64931],\"mapped\",[1578,1605,1610]],[[64932,64932],\"mapped\",[1578,1605,1609]],[[64933,64933],\"mapped\",[1580,1605,1610]],[[64934,64934],\"mapped\",[1580,1581,1609]],[[64935,64935],\"mapped\",[1580,1605,1609]],[[64936,64936],\"mapped\",[1587,1582,1609]],[[64937,64937],\"mapped\",[1589,1581,1610]],[[64938,64938],\"mapped\",[1588,1581,1610]],[[64939,64939],\"mapped\",[1590,1581,1610]],[[64940,64940],\"mapped\",[1604,1580,1610]],[[64941,64941],\"mapped\",[1604,1605,1610]],[[64942,64942],\"mapped\",[1610,1581,1610]],[[64943,64943],\"mapped\",[1610,1580,1610]],[[64944,64944],\"mapped\",[1610,1605,1610]],[[64945,64945],\"mapped\",[1605,1605,1610]],[[64946,64946],\"mapped\",[1602,1605,1610]],[[64947,64947],\"mapped\",[1606,1581,1610]],[[64948,64948],\"mapped\",[1602,1605,1581]],[[64949,64949],\"mapped\",[1604,1581,1605]],[[64950,64950],\"mapped\",[1593,1605,1610]],[[64951,64951],\"mapped\",[1603,1605,1610]],[[64952,64952],\"mapped\",[1606,1580,1581]],[[64953,64953],\"mapped\",[1605,1582,1610]],[[64954,64954],\"mapped\",[1604,1580,1605]],[[64955,64955],\"mapped\",[1603,1605,1605]],[[64956,64956],\"mapped\",[1604,1580,1605]],[[64957,64957],\"mapped\",[1606,1580,1581]],[[64958,64958],\"mapped\",[1580,1581,1610]],[[64959,64959],\"mapped\",[1581,1580,1610]],[[64960,64960],\"mapped\",[1605,1580,1610]],[[64961,64961],\"mapped\",[1601,1605,1610]],[[64962,64962],\"mapped\",[1576,1581,1610]],[[64963,64963],\"mapped\",[1603,1605,1605]],[[64964,64964],\"mapped\",[1593,1580,1605]],[[64965,64965],\"mapped\",[1589,1605,1605]],[[64966,64966],\"mapped\",[1587,1582,1610]],[[64967,64967],\"mapped\",[1606,1580,1610]],[[64968,64975],\"disallowed\"],[[64976,65007],\"disallowed\"],[[65008,65008],\"mapped\",[1589,1604,1746]],[[65009,65009],\"mapped\",[1602,1604,1746]],[[65010,65010],\"mapped\",[1575,1604,1604,1607]],[[65011,65011],\"mapped\",[1575,1603,1576,1585]],[[65012,65012],\"mapped\",[1605,1581,1605,1583]],[[65013,65013],\"mapped\",[1589,1604,1593,1605]],[[65014,65014],\"mapped\",[1585,1587,1608,1604]],[[65015,65015],\"mapped\",[1593,1604,1610,1607]],[[65016,65016],\"mapped\",[1608,1587,1604,1605]],[[65017,65017],\"mapped\",[1589,1604,1609]],[[65018,65018],\"disallowed_STD3_mapped\",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],\"disallowed_STD3_mapped\",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],\"mapped\",[1585,1740,1575,1604]],[[65021,65021],\"valid\",[],\"NV8\"],[[65022,65023],\"disallowed\"],[[65024,65039],\"ignored\"],[[65040,65040],\"disallowed_STD3_mapped\",[44]],[[65041,65041],\"mapped\",[12289]],[[65042,65042],\"disallowed\"],[[65043,65043],\"disallowed_STD3_mapped\",[58]],[[65044,65044],\"disallowed_STD3_mapped\",[59]],[[65045,65045],\"disallowed_STD3_mapped\",[33]],[[65046,65046],\"disallowed_STD3_mapped\",[63]],[[65047,65047],\"mapped\",[12310]],[[65048,65048],\"mapped\",[12311]],[[65049,65049],\"disallowed\"],[[65050,65055],\"disallowed\"],[[65056,65059],\"valid\"],[[65060,65062],\"valid\"],[[65063,65069],\"valid\"],[[65070,65071],\"valid\"],[[65072,65072],\"disallowed\"],[[65073,65073],\"mapped\",[8212]],[[65074,65074],\"mapped\",[8211]],[[65075,65076],\"disallowed_STD3_mapped\",[95]],[[65077,65077],\"disallowed_STD3_mapped\",[40]],[[65078,65078],\"disallowed_STD3_mapped\",[41]],[[65079,65079],\"disallowed_STD3_mapped\",[123]],[[65080,65080],\"disallowed_STD3_mapped\",[125]],[[65081,65081],\"mapped\",[12308]],[[65082,65082],\"mapped\",[12309]],[[65083,65083],\"mapped\",[12304]],[[65084,65084],\"mapped\",[12305]],[[65085,65085],\"mapped\",[12298]],[[65086,65086],\"mapped\",[12299]],[[65087,65087],\"mapped\",[12296]],[[65088,65088],\"mapped\",[12297]],[[65089,65089],\"mapped\",[12300]],[[65090,65090],\"mapped\",[12301]],[[65091,65091],\"mapped\",[12302]],[[65092,65092],\"mapped\",[12303]],[[65093,65094],\"valid\",[],\"NV8\"],[[65095,65095],\"disallowed_STD3_mapped\",[91]],[[65096,65096],\"disallowed_STD3_mapped\",[93]],[[65097,65100],\"disallowed_STD3_mapped\",[32,773]],[[65101,65103],\"disallowed_STD3_mapped\",[95]],[[65104,65104],\"disallowed_STD3_mapped\",[44]],[[65105,65105],\"mapped\",[12289]],[[65106,65106],\"disallowed\"],[[65107,65107],\"disallowed\"],[[65108,65108],\"disallowed_STD3_mapped\",[59]],[[65109,65109],\"disallowed_STD3_mapped\",[58]],[[65110,65110],\"disallowed_STD3_mapped\",[63]],[[65111,65111],\"disallowed_STD3_mapped\",[33]],[[65112,65112],\"mapped\",[8212]],[[65113,65113],\"disallowed_STD3_mapped\",[40]],[[65114,65114],\"disallowed_STD3_mapped\",[41]],[[65115,65115],\"disallowed_STD3_mapped\",[123]],[[65116,65116],\"disallowed_STD3_mapped\",[125]],[[65117,65117],\"mapped\",[12308]],[[65118,65118],\"mapped\",[12309]],[[65119,65119],\"disallowed_STD3_mapped\",[35]],[[65120,65120],\"disallowed_STD3_mapped\",[38]],[[65121,65121],\"disallowed_STD3_mapped\",[42]],[[65122,65122],\"disallowed_STD3_mapped\",[43]],[[65123,65123],\"mapped\",[45]],[[65124,65124],\"disallowed_STD3_mapped\",[60]],[[65125,65125],\"disallowed_STD3_mapped\",[62]],[[65126,65126],\"disallowed_STD3_mapped\",[61]],[[65127,65127],\"disallowed\"],[[65128,65128],\"disallowed_STD3_mapped\",[92]],[[65129,65129],\"disallowed_STD3_mapped\",[36]],[[65130,65130],\"disallowed_STD3_mapped\",[37]],[[65131,65131],\"disallowed_STD3_mapped\",[64]],[[65132,65135],\"disallowed\"],[[65136,65136],\"disallowed_STD3_mapped\",[32,1611]],[[65137,65137],\"mapped\",[1600,1611]],[[65138,65138],\"disallowed_STD3_mapped\",[32,1612]],[[65139,65139],\"valid\"],[[65140,65140],\"disallowed_STD3_mapped\",[32,1613]],[[65141,65141],\"disallowed\"],[[65142,65142],\"disallowed_STD3_mapped\",[32,1614]],[[65143,65143],\"mapped\",[1600,1614]],[[65144,65144],\"disallowed_STD3_mapped\",[32,1615]],[[65145,65145],\"mapped\",[1600,1615]],[[65146,65146],\"disallowed_STD3_mapped\",[32,1616]],[[65147,65147],\"mapped\",[1600,1616]],[[65148,65148],\"disallowed_STD3_mapped\",[32,1617]],[[65149,65149],\"mapped\",[1600,1617]],[[65150,65150],\"disallowed_STD3_mapped\",[32,1618]],[[65151,65151],\"mapped\",[1600,1618]],[[65152,65152],\"mapped\",[1569]],[[65153,65154],\"mapped\",[1570]],[[65155,65156],\"mapped\",[1571]],[[65157,65158],\"mapped\",[1572]],[[65159,65160],\"mapped\",[1573]],[[65161,65164],\"mapped\",[1574]],[[65165,65166],\"mapped\",[1575]],[[65167,65170],\"mapped\",[1576]],[[65171,65172],\"mapped\",[1577]],[[65173,65176],\"mapped\",[1578]],[[65177,65180],\"mapped\",[1579]],[[65181,65184],\"mapped\",[1580]],[[65185,65188],\"mapped\",[1581]],[[65189,65192],\"mapped\",[1582]],[[65193,65194],\"mapped\",[1583]],[[65195,65196],\"mapped\",[1584]],[[65197,65198],\"mapped\",[1585]],[[65199,65200],\"mapped\",[1586]],[[65201,65204],\"mapped\",[1587]],[[65205,65208],\"mapped\",[1588]],[[65209,65212],\"mapped\",[1589]],[[65213,65216],\"mapped\",[1590]],[[65217,65220],\"mapped\",[1591]],[[65221,65224],\"mapped\",[1592]],[[65225,65228],\"mapped\",[1593]],[[65229,65232],\"mapped\",[1594]],[[65233,65236],\"mapped\",[1601]],[[65237,65240],\"mapped\",[1602]],[[65241,65244],\"mapped\",[1603]],[[65245,65248],\"mapped\",[1604]],[[65249,65252],\"mapped\",[1605]],[[65253,65256],\"mapped\",[1606]],[[65257,65260],\"mapped\",[1607]],[[65261,65262],\"mapped\",[1608]],[[65263,65264],\"mapped\",[1609]],[[65265,65268],\"mapped\",[1610]],[[65269,65270],\"mapped\",[1604,1570]],[[65271,65272],\"mapped\",[1604,1571]],[[65273,65274],\"mapped\",[1604,1573]],[[65275,65276],\"mapped\",[1604,1575]],[[65277,65278],\"disallowed\"],[[65279,65279],\"ignored\"],[[65280,65280],\"disallowed\"],[[65281,65281],\"disallowed_STD3_mapped\",[33]],[[65282,65282],\"disallowed_STD3_mapped\",[34]],[[65283,65283],\"disallowed_STD3_mapped\",[35]],[[65284,65284],\"disallowed_STD3_mapped\",[36]],[[65285,65285],\"disallowed_STD3_mapped\",[37]],[[65286,65286],\"disallowed_STD3_mapped\",[38]],[[65287,65287],\"disallowed_STD3_mapped\",[39]],[[65288,65288],\"disallowed_STD3_mapped\",[40]],[[65289,65289],\"disallowed_STD3_mapped\",[41]],[[65290,65290],\"disallowed_STD3_mapped\",[42]],[[65291,65291],\"disallowed_STD3_mapped\",[43]],[[65292,65292],\"disallowed_STD3_mapped\",[44]],[[65293,65293],\"mapped\",[45]],[[65294,65294],\"mapped\",[46]],[[65295,65295],\"disallowed_STD3_mapped\",[47]],[[65296,65296],\"mapped\",[48]],[[65297,65297],\"mapped\",[49]],[[65298,65298],\"mapped\",[50]],[[65299,65299],\"mapped\",[51]],[[65300,65300],\"mapped\",[52]],[[65301,65301],\"mapped\",[53]],[[65302,65302],\"mapped\",[54]],[[65303,65303],\"mapped\",[55]],[[65304,65304],\"mapped\",[56]],[[65305,65305],\"mapped\",[57]],[[65306,65306],\"disallowed_STD3_mapped\",[58]],[[65307,65307],\"disallowed_STD3_mapped\",[59]],[[65308,65308],\"disallowed_STD3_mapped\",[60]],[[65309,65309],\"disallowed_STD3_mapped\",[61]],[[65310,65310],\"disallowed_STD3_mapped\",[62]],[[65311,65311],\"disallowed_STD3_mapped\",[63]],[[65312,65312],\"disallowed_STD3_mapped\",[64]],[[65313,65313],\"mapped\",[97]],[[65314,65314],\"mapped\",[98]],[[65315,65315],\"mapped\",[99]],[[65316,65316],\"mapped\",[100]],[[65317,65317],\"mapped\",[101]],[[65318,65318],\"mapped\",[102]],[[65319,65319],\"mapped\",[103]],[[65320,65320],\"mapped\",[104]],[[65321,65321],\"mapped\",[105]],[[65322,65322],\"mapped\",[106]],[[65323,65323],\"mapped\",[107]],[[65324,65324],\"mapped\",[108]],[[65325,65325],\"mapped\",[109]],[[65326,65326],\"mapped\",[110]],[[65327,65327],\"mapped\",[111]],[[65328,65328],\"mapped\",[112]],[[65329,65329],\"mapped\",[113]],[[65330,65330],\"mapped\",[114]],[[65331,65331],\"mapped\",[115]],[[65332,65332],\"mapped\",[116]],[[65333,65333],\"mapped\",[117]],[[65334,65334],\"mapped\",[118]],[[65335,65335],\"mapped\",[119]],[[65336,65336],\"mapped\",[120]],[[65337,65337],\"mapped\",[121]],[[65338,65338],\"mapped\",[122]],[[65339,65339],\"disallowed_STD3_mapped\",[91]],[[65340,65340],\"disallowed_STD3_mapped\",[92]],[[65341,65341],\"disallowed_STD3_mapped\",[93]],[[65342,65342],\"disallowed_STD3_mapped\",[94]],[[65343,65343],\"disallowed_STD3_mapped\",[95]],[[65344,65344],\"disallowed_STD3_mapped\",[96]],[[65345,65345],\"mapped\",[97]],[[65346,65346],\"mapped\",[98]],[[65347,65347],\"mapped\",[99]],[[65348,65348],\"mapped\",[100]],[[65349,65349],\"mapped\",[101]],[[65350,65350],\"mapped\",[102]],[[65351,65351],\"mapped\",[103]],[[65352,65352],\"mapped\",[104]],[[65353,65353],\"mapped\",[105]],[[65354,65354],\"mapped\",[106]],[[65355,65355],\"mapped\",[107]],[[65356,65356],\"mapped\",[108]],[[65357,65357],\"mapped\",[109]],[[65358,65358],\"mapped\",[110]],[[65359,65359],\"mapped\",[111]],[[65360,65360],\"mapped\",[112]],[[65361,65361],\"mapped\",[113]],[[65362,65362],\"mapped\",[114]],[[65363,65363],\"mapped\",[115]],[[65364,65364],\"mapped\",[116]],[[65365,65365],\"mapped\",[117]],[[65366,65366],\"mapped\",[118]],[[65367,65367],\"mapped\",[119]],[[65368,65368],\"mapped\",[120]],[[65369,65369],\"mapped\",[121]],[[65370,65370],\"mapped\",[122]],[[65371,65371],\"disallowed_STD3_mapped\",[123]],[[65372,65372],\"disallowed_STD3_mapped\",[124]],[[65373,65373],\"disallowed_STD3_mapped\",[125]],[[65374,65374],\"disallowed_STD3_mapped\",[126]],[[65375,65375],\"mapped\",[10629]],[[65376,65376],\"mapped\",[10630]],[[65377,65377],\"mapped\",[46]],[[65378,65378],\"mapped\",[12300]],[[65379,65379],\"mapped\",[12301]],[[65380,65380],\"mapped\",[12289]],[[65381,65381],\"mapped\",[12539]],[[65382,65382],\"mapped\",[12530]],[[65383,65383],\"mapped\",[12449]],[[65384,65384],\"mapped\",[12451]],[[65385,65385],\"mapped\",[12453]],[[65386,65386],\"mapped\",[12455]],[[65387,65387],\"mapped\",[12457]],[[65388,65388],\"mapped\",[12515]],[[65389,65389],\"mapped\",[12517]],[[65390,65390],\"mapped\",[12519]],[[65391,65391],\"mapped\",[12483]],[[65392,65392],\"mapped\",[12540]],[[65393,65393],\"mapped\",[12450]],[[65394,65394],\"mapped\",[12452]],[[65395,65395],\"mapped\",[12454]],[[65396,65396],\"mapped\",[12456]],[[65397,65397],\"mapped\",[12458]],[[65398,65398],\"mapped\",[12459]],[[65399,65399],\"mapped\",[12461]],[[65400,65400],\"mapped\",[12463]],[[65401,65401],\"mapped\",[12465]],[[65402,65402],\"mapped\",[12467]],[[65403,65403],\"mapped\",[12469]],[[65404,65404],\"mapped\",[12471]],[[65405,65405],\"mapped\",[12473]],[[65406,65406],\"mapped\",[12475]],[[65407,65407],\"mapped\",[12477]],[[65408,65408],\"mapped\",[12479]],[[65409,65409],\"mapped\",[12481]],[[65410,65410],\"mapped\",[12484]],[[65411,65411],\"mapped\",[12486]],[[65412,65412],\"mapped\",[12488]],[[65413,65413],\"mapped\",[12490]],[[65414,65414],\"mapped\",[12491]],[[65415,65415],\"mapped\",[12492]],[[65416,65416],\"mapped\",[12493]],[[65417,65417],\"mapped\",[12494]],[[65418,65418],\"mapped\",[12495]],[[65419,65419],\"mapped\",[12498]],[[65420,65420],\"mapped\",[12501]],[[65421,65421],\"mapped\",[12504]],[[65422,65422],\"mapped\",[12507]],[[65423,65423],\"mapped\",[12510]],[[65424,65424],\"mapped\",[12511]],[[65425,65425],\"mapped\",[12512]],[[65426,65426],\"mapped\",[12513]],[[65427,65427],\"mapped\",[12514]],[[65428,65428],\"mapped\",[12516]],[[65429,65429],\"mapped\",[12518]],[[65430,65430],\"mapped\",[12520]],[[65431,65431],\"mapped\",[12521]],[[65432,65432],\"mapped\",[12522]],[[65433,65433],\"mapped\",[12523]],[[65434,65434],\"mapped\",[12524]],[[65435,65435],\"mapped\",[12525]],[[65436,65436],\"mapped\",[12527]],[[65437,65437],\"mapped\",[12531]],[[65438,65438],\"mapped\",[12441]],[[65439,65439],\"mapped\",[12442]],[[65440,65440],\"disallowed\"],[[65441,65441],\"mapped\",[4352]],[[65442,65442],\"mapped\",[4353]],[[65443,65443],\"mapped\",[4522]],[[65444,65444],\"mapped\",[4354]],[[65445,65445],\"mapped\",[4524]],[[65446,65446],\"mapped\",[4525]],[[65447,65447],\"mapped\",[4355]],[[65448,65448],\"mapped\",[4356]],[[65449,65449],\"mapped\",[4357]],[[65450,65450],\"mapped\",[4528]],[[65451,65451],\"mapped\",[4529]],[[65452,65452],\"mapped\",[4530]],[[65453,65453],\"mapped\",[4531]],[[65454,65454],\"mapped\",[4532]],[[65455,65455],\"mapped\",[4533]],[[65456,65456],\"mapped\",[4378]],[[65457,65457],\"mapped\",[4358]],[[65458,65458],\"mapped\",[4359]],[[65459,65459],\"mapped\",[4360]],[[65460,65460],\"mapped\",[4385]],[[65461,65461],\"mapped\",[4361]],[[65462,65462],\"mapped\",[4362]],[[65463,65463],\"mapped\",[4363]],[[65464,65464],\"mapped\",[4364]],[[65465,65465],\"mapped\",[4365]],[[65466,65466],\"mapped\",[4366]],[[65467,65467],\"mapped\",[4367]],[[65468,65468],\"mapped\",[4368]],[[65469,65469],\"mapped\",[4369]],[[65470,65470],\"mapped\",[4370]],[[65471,65473],\"disallowed\"],[[65474,65474],\"mapped\",[4449]],[[65475,65475],\"mapped\",[4450]],[[65476,65476],\"mapped\",[4451]],[[65477,65477],\"mapped\",[4452]],[[65478,65478],\"mapped\",[4453]],[[65479,65479],\"mapped\",[4454]],[[65480,65481],\"disallowed\"],[[65482,65482],\"mapped\",[4455]],[[65483,65483],\"mapped\",[4456]],[[65484,65484],\"mapped\",[4457]],[[65485,65485],\"mapped\",[4458]],[[65486,65486],\"mapped\",[4459]],[[65487,65487],\"mapped\",[4460]],[[65488,65489],\"disallowed\"],[[65490,65490],\"mapped\",[4461]],[[65491,65491],\"mapped\",[4462]],[[65492,65492],\"mapped\",[4463]],[[65493,65493],\"mapped\",[4464]],[[65494,65494],\"mapped\",[4465]],[[65495,65495],\"mapped\",[4466]],[[65496,65497],\"disallowed\"],[[65498,65498],\"mapped\",[4467]],[[65499,65499],\"mapped\",[4468]],[[65500,65500],\"mapped\",[4469]],[[65501,65503],\"disallowed\"],[[65504,65504],\"mapped\",[162]],[[65505,65505],\"mapped\",[163]],[[65506,65506],\"mapped\",[172]],[[65507,65507],\"disallowed_STD3_mapped\",[32,772]],[[65508,65508],\"mapped\",[166]],[[65509,65509],\"mapped\",[165]],[[65510,65510],\"mapped\",[8361]],[[65511,65511],\"disallowed\"],[[65512,65512],\"mapped\",[9474]],[[65513,65513],\"mapped\",[8592]],[[65514,65514],\"mapped\",[8593]],[[65515,65515],\"mapped\",[8594]],[[65516,65516],\"mapped\",[8595]],[[65517,65517],\"mapped\",[9632]],[[65518,65518],\"mapped\",[9675]],[[65519,65528],\"disallowed\"],[[65529,65531],\"disallowed\"],[[65532,65532],\"disallowed\"],[[65533,65533],\"disallowed\"],[[65534,65535],\"disallowed\"],[[65536,65547],\"valid\"],[[65548,65548],\"disallowed\"],[[65549,65574],\"valid\"],[[65575,65575],\"disallowed\"],[[65576,65594],\"valid\"],[[65595,65595],\"disallowed\"],[[65596,65597],\"valid\"],[[65598,65598],\"disallowed\"],[[65599,65613],\"valid\"],[[65614,65615],\"disallowed\"],[[65616,65629],\"valid\"],[[65630,65663],\"disallowed\"],[[65664,65786],\"valid\"],[[65787,65791],\"disallowed\"],[[65792,65794],\"valid\",[],\"NV8\"],[[65795,65798],\"disallowed\"],[[65799,65843],\"valid\",[],\"NV8\"],[[65844,65846],\"disallowed\"],[[65847,65855],\"valid\",[],\"NV8\"],[[65856,65930],\"valid\",[],\"NV8\"],[[65931,65932],\"valid\",[],\"NV8\"],[[65933,65935],\"disallowed\"],[[65936,65947],\"valid\",[],\"NV8\"],[[65948,65951],\"disallowed\"],[[65952,65952],\"valid\",[],\"NV8\"],[[65953,65999],\"disallowed\"],[[66000,66044],\"valid\",[],\"NV8\"],[[66045,66045],\"valid\"],[[66046,66175],\"disallowed\"],[[66176,66204],\"valid\"],[[66205,66207],\"disallowed\"],[[66208,66256],\"valid\"],[[66257,66271],\"disallowed\"],[[66272,66272],\"valid\"],[[66273,66299],\"valid\",[],\"NV8\"],[[66300,66303],\"disallowed\"],[[66304,66334],\"valid\"],[[66335,66335],\"valid\"],[[66336,66339],\"valid\",[],\"NV8\"],[[66340,66351],\"disallowed\"],[[66352,66368],\"valid\"],[[66369,66369],\"valid\",[],\"NV8\"],[[66370,66377],\"valid\"],[[66378,66378],\"valid\",[],\"NV8\"],[[66379,66383],\"disallowed\"],[[66384,66426],\"valid\"],[[66427,66431],\"disallowed\"],[[66432,66461],\"valid\"],[[66462,66462],\"disallowed\"],[[66463,66463],\"valid\",[],\"NV8\"],[[66464,66499],\"valid\"],[[66500,66503],\"disallowed\"],[[66504,66511],\"valid\"],[[66512,66517],\"valid\",[],\"NV8\"],[[66518,66559],\"disallowed\"],[[66560,66560],\"mapped\",[66600]],[[66561,66561],\"mapped\",[66601]],[[66562,66562],\"mapped\",[66602]],[[66563,66563],\"mapped\",[66603]],[[66564,66564],\"mapped\",[66604]],[[66565,66565],\"mapped\",[66605]],[[66566,66566],\"mapped\",[66606]],[[66567,66567],\"mapped\",[66607]],[[66568,66568],\"mapped\",[66608]],[[66569,66569],\"mapped\",[66609]],[[66570,66570],\"mapped\",[66610]],[[66571,66571],\"mapped\",[66611]],[[66572,66572],\"mapped\",[66612]],[[66573,66573],\"mapped\",[66613]],[[66574,66574],\"mapped\",[66614]],[[66575,66575],\"mapped\",[66615]],[[66576,66576],\"mapped\",[66616]],[[66577,66577],\"mapped\",[66617]],[[66578,66578],\"mapped\",[66618]],[[66579,66579],\"mapped\",[66619]],[[66580,66580],\"mapped\",[66620]],[[66581,66581],\"mapped\",[66621]],[[66582,66582],\"mapped\",[66622]],[[66583,66583],\"mapped\",[66623]],[[66584,66584],\"mapped\",[66624]],[[66585,66585],\"mapped\",[66625]],[[66586,66586],\"mapped\",[66626]],[[66587,66587],\"mapped\",[66627]],[[66588,66588],\"mapped\",[66628]],[[66589,66589],\"mapped\",[66629]],[[66590,66590],\"mapped\",[66630]],[[66591,66591],\"mapped\",[66631]],[[66592,66592],\"mapped\",[66632]],[[66593,66593],\"mapped\",[66633]],[[66594,66594],\"mapped\",[66634]],[[66595,66595],\"mapped\",[66635]],[[66596,66596],\"mapped\",[66636]],[[66597,66597],\"mapped\",[66637]],[[66598,66598],\"mapped\",[66638]],[[66599,66599],\"mapped\",[66639]],[[66600,66637],\"valid\"],[[66638,66717],\"valid\"],[[66718,66719],\"disallowed\"],[[66720,66729],\"valid\"],[[66730,66815],\"disallowed\"],[[66816,66855],\"valid\"],[[66856,66863],\"disallowed\"],[[66864,66915],\"valid\"],[[66916,66926],\"disallowed\"],[[66927,66927],\"valid\",[],\"NV8\"],[[66928,67071],\"disallowed\"],[[67072,67382],\"valid\"],[[67383,67391],\"disallowed\"],[[67392,67413],\"valid\"],[[67414,67423],\"disallowed\"],[[67424,67431],\"valid\"],[[67432,67583],\"disallowed\"],[[67584,67589],\"valid\"],[[67590,67591],\"disallowed\"],[[67592,67592],\"valid\"],[[67593,67593],\"disallowed\"],[[67594,67637],\"valid\"],[[67638,67638],\"disallowed\"],[[67639,67640],\"valid\"],[[67641,67643],\"disallowed\"],[[67644,67644],\"valid\"],[[67645,67646],\"disallowed\"],[[67647,67647],\"valid\"],[[67648,67669],\"valid\"],[[67670,67670],\"disallowed\"],[[67671,67679],\"valid\",[],\"NV8\"],[[67680,67702],\"valid\"],[[67703,67711],\"valid\",[],\"NV8\"],[[67712,67742],\"valid\"],[[67743,67750],\"disallowed\"],[[67751,67759],\"valid\",[],\"NV8\"],[[67760,67807],\"disallowed\"],[[67808,67826],\"valid\"],[[67827,67827],\"disallowed\"],[[67828,67829],\"valid\"],[[67830,67834],\"disallowed\"],[[67835,67839],\"valid\",[],\"NV8\"],[[67840,67861],\"valid\"],[[67862,67865],\"valid\",[],\"NV8\"],[[67866,67867],\"valid\",[],\"NV8\"],[[67868,67870],\"disallowed\"],[[67871,67871],\"valid\",[],\"NV8\"],[[67872,67897],\"valid\"],[[67898,67902],\"disallowed\"],[[67903,67903],\"valid\",[],\"NV8\"],[[67904,67967],\"disallowed\"],[[67968,68023],\"valid\"],[[68024,68027],\"disallowed\"],[[68028,68029],\"valid\",[],\"NV8\"],[[68030,68031],\"valid\"],[[68032,68047],\"valid\",[],\"NV8\"],[[68048,68049],\"disallowed\"],[[68050,68095],\"valid\",[],\"NV8\"],[[68096,68099],\"valid\"],[[68100,68100],\"disallowed\"],[[68101,68102],\"valid\"],[[68103,68107],\"disallowed\"],[[68108,68115],\"valid\"],[[68116,68116],\"disallowed\"],[[68117,68119],\"valid\"],[[68120,68120],\"disallowed\"],[[68121,68147],\"valid\"],[[68148,68151],\"disallowed\"],[[68152,68154],\"valid\"],[[68155,68158],\"disallowed\"],[[68159,68159],\"valid\"],[[68160,68167],\"valid\",[],\"NV8\"],[[68168,68175],\"disallowed\"],[[68176,68184],\"valid\",[],\"NV8\"],[[68185,68191],\"disallowed\"],[[68192,68220],\"valid\"],[[68221,68223],\"valid\",[],\"NV8\"],[[68224,68252],\"valid\"],[[68253,68255],\"valid\",[],\"NV8\"],[[68256,68287],\"disallowed\"],[[68288,68295],\"valid\"],[[68296,68296],\"valid\",[],\"NV8\"],[[68297,68326],\"valid\"],[[68327,68330],\"disallowed\"],[[68331,68342],\"valid\",[],\"NV8\"],[[68343,68351],\"disallowed\"],[[68352,68405],\"valid\"],[[68406,68408],\"disallowed\"],[[68409,68415],\"valid\",[],\"NV8\"],[[68416,68437],\"valid\"],[[68438,68439],\"disallowed\"],[[68440,68447],\"valid\",[],\"NV8\"],[[68448,68466],\"valid\"],[[68467,68471],\"disallowed\"],[[68472,68479],\"valid\",[],\"NV8\"],[[68480,68497],\"valid\"],[[68498,68504],\"disallowed\"],[[68505,68508],\"valid\",[],\"NV8\"],[[68509,68520],\"disallowed\"],[[68521,68527],\"valid\",[],\"NV8\"],[[68528,68607],\"disallowed\"],[[68608,68680],\"valid\"],[[68681,68735],\"disallowed\"],[[68736,68736],\"mapped\",[68800]],[[68737,68737],\"mapped\",[68801]],[[68738,68738],\"mapped\",[68802]],[[68739,68739],\"mapped\",[68803]],[[68740,68740],\"mapped\",[68804]],[[68741,68741],\"mapped\",[68805]],[[68742,68742],\"mapped\",[68806]],[[68743,68743],\"mapped\",[68807]],[[68744,68744],\"mapped\",[68808]],[[68745,68745],\"mapped\",[68809]],[[68746,68746],\"mapped\",[68810]],[[68747,68747],\"mapped\",[68811]],[[68748,68748],\"mapped\",[68812]],[[68749,68749],\"mapped\",[68813]],[[68750,68750],\"mapped\",[68814]],[[68751,68751],\"mapped\",[68815]],[[68752,68752],\"mapped\",[68816]],[[68753,68753],\"mapped\",[68817]],[[68754,68754],\"mapped\",[68818]],[[68755,68755],\"mapped\",[68819]],[[68756,68756],\"mapped\",[68820]],[[68757,68757],\"mapped\",[68821]],[[68758,68758],\"mapped\",[68822]],[[68759,68759],\"mapped\",[68823]],[[68760,68760],\"mapped\",[68824]],[[68761,68761],\"mapped\",[68825]],[[68762,68762],\"mapped\",[68826]],[[68763,68763],\"mapped\",[68827]],[[68764,68764],\"mapped\",[68828]],[[68765,68765],\"mapped\",[68829]],[[68766,68766],\"mapped\",[68830]],[[68767,68767],\"mapped\",[68831]],[[68768,68768],\"mapped\",[68832]],[[68769,68769],\"mapped\",[68833]],[[68770,68770],\"mapped\",[68834]],[[68771,68771],\"mapped\",[68835]],[[68772,68772],\"mapped\",[68836]],[[68773,68773],\"mapped\",[68837]],[[68774,68774],\"mapped\",[68838]],[[68775,68775],\"mapped\",[68839]],[[68776,68776],\"mapped\",[68840]],[[68777,68777],\"mapped\",[68841]],[[68778,68778],\"mapped\",[68842]],[[68779,68779],\"mapped\",[68843]],[[68780,68780],\"mapped\",[68844]],[[68781,68781],\"mapped\",[68845]],[[68782,68782],\"mapped\",[68846]],[[68783,68783],\"mapped\",[68847]],[[68784,68784],\"mapped\",[68848]],[[68785,68785],\"mapped\",[68849]],[[68786,68786],\"mapped\",[68850]],[[68787,68799],\"disallowed\"],[[68800,68850],\"valid\"],[[68851,68857],\"disallowed\"],[[68858,68863],\"valid\",[],\"NV8\"],[[68864,69215],\"disallowed\"],[[69216,69246],\"valid\",[],\"NV8\"],[[69247,69631],\"disallowed\"],[[69632,69702],\"valid\"],[[69703,69709],\"valid\",[],\"NV8\"],[[69710,69713],\"disallowed\"],[[69714,69733],\"valid\",[],\"NV8\"],[[69734,69743],\"valid\"],[[69744,69758],\"disallowed\"],[[69759,69759],\"valid\"],[[69760,69818],\"valid\"],[[69819,69820],\"valid\",[],\"NV8\"],[[69821,69821],\"disallowed\"],[[69822,69825],\"valid\",[],\"NV8\"],[[69826,69839],\"disallowed\"],[[69840,69864],\"valid\"],[[69865,69871],\"disallowed\"],[[69872,69881],\"valid\"],[[69882,69887],\"disallowed\"],[[69888,69940],\"valid\"],[[69941,69941],\"disallowed\"],[[69942,69951],\"valid\"],[[69952,69955],\"valid\",[],\"NV8\"],[[69956,69967],\"disallowed\"],[[69968,70003],\"valid\"],[[70004,70005],\"valid\",[],\"NV8\"],[[70006,70006],\"valid\"],[[70007,70015],\"disallowed\"],[[70016,70084],\"valid\"],[[70085,70088],\"valid\",[],\"NV8\"],[[70089,70089],\"valid\",[],\"NV8\"],[[70090,70092],\"valid\"],[[70093,70093],\"valid\",[],\"NV8\"],[[70094,70095],\"disallowed\"],[[70096,70105],\"valid\"],[[70106,70106],\"valid\"],[[70107,70107],\"valid\",[],\"NV8\"],[[70108,70108],\"valid\"],[[70109,70111],\"valid\",[],\"NV8\"],[[70112,70112],\"disallowed\"],[[70113,70132],\"valid\",[],\"NV8\"],[[70133,70143],\"disallowed\"],[[70144,70161],\"valid\"],[[70162,70162],\"disallowed\"],[[70163,70199],\"valid\"],[[70200,70205],\"valid\",[],\"NV8\"],[[70206,70271],\"disallowed\"],[[70272,70278],\"valid\"],[[70279,70279],\"disallowed\"],[[70280,70280],\"valid\"],[[70281,70281],\"disallowed\"],[[70282,70285],\"valid\"],[[70286,70286],\"disallowed\"],[[70287,70301],\"valid\"],[[70302,70302],\"disallowed\"],[[70303,70312],\"valid\"],[[70313,70313],\"valid\",[],\"NV8\"],[[70314,70319],\"disallowed\"],[[70320,70378],\"valid\"],[[70379,70383],\"disallowed\"],[[70384,70393],\"valid\"],[[70394,70399],\"disallowed\"],[[70400,70400],\"valid\"],[[70401,70403],\"valid\"],[[70404,70404],\"disallowed\"],[[70405,70412],\"valid\"],[[70413,70414],\"disallowed\"],[[70415,70416],\"valid\"],[[70417,70418],\"disallowed\"],[[70419,70440],\"valid\"],[[70441,70441],\"disallowed\"],[[70442,70448],\"valid\"],[[70449,70449],\"disallowed\"],[[70450,70451],\"valid\"],[[70452,70452],\"disallowed\"],[[70453,70457],\"valid\"],[[70458,70459],\"disallowed\"],[[70460,70468],\"valid\"],[[70469,70470],\"disallowed\"],[[70471,70472],\"valid\"],[[70473,70474],\"disallowed\"],[[70475,70477],\"valid\"],[[70478,70479],\"disallowed\"],[[70480,70480],\"valid\"],[[70481,70486],\"disallowed\"],[[70487,70487],\"valid\"],[[70488,70492],\"disallowed\"],[[70493,70499],\"valid\"],[[70500,70501],\"disallowed\"],[[70502,70508],\"valid\"],[[70509,70511],\"disallowed\"],[[70512,70516],\"valid\"],[[70517,70783],\"disallowed\"],[[70784,70853],\"valid\"],[[70854,70854],\"valid\",[],\"NV8\"],[[70855,70855],\"valid\"],[[70856,70863],\"disallowed\"],[[70864,70873],\"valid\"],[[70874,71039],\"disallowed\"],[[71040,71093],\"valid\"],[[71094,71095],\"disallowed\"],[[71096,71104],\"valid\"],[[71105,71113],\"valid\",[],\"NV8\"],[[71114,71127],\"valid\",[],\"NV8\"],[[71128,71133],\"valid\"],[[71134,71167],\"disallowed\"],[[71168,71232],\"valid\"],[[71233,71235],\"valid\",[],\"NV8\"],[[71236,71236],\"valid\"],[[71237,71247],\"disallowed\"],[[71248,71257],\"valid\"],[[71258,71295],\"disallowed\"],[[71296,71351],\"valid\"],[[71352,71359],\"disallowed\"],[[71360,71369],\"valid\"],[[71370,71423],\"disallowed\"],[[71424,71449],\"valid\"],[[71450,71452],\"disallowed\"],[[71453,71467],\"valid\"],[[71468,71471],\"disallowed\"],[[71472,71481],\"valid\"],[[71482,71487],\"valid\",[],\"NV8\"],[[71488,71839],\"disallowed\"],[[71840,71840],\"mapped\",[71872]],[[71841,71841],\"mapped\",[71873]],[[71842,71842],\"mapped\",[71874]],[[71843,71843],\"mapped\",[71875]],[[71844,71844],\"mapped\",[71876]],[[71845,71845],\"mapped\",[71877]],[[71846,71846],\"mapped\",[71878]],[[71847,71847],\"mapped\",[71879]],[[71848,71848],\"mapped\",[71880]],[[71849,71849],\"mapped\",[71881]],[[71850,71850],\"mapped\",[71882]],[[71851,71851],\"mapped\",[71883]],[[71852,71852],\"mapped\",[71884]],[[71853,71853],\"mapped\",[71885]],[[71854,71854],\"mapped\",[71886]],[[71855,71855],\"mapped\",[71887]],[[71856,71856],\"mapped\",[71888]],[[71857,71857],\"mapped\",[71889]],[[71858,71858],\"mapped\",[71890]],[[71859,71859],\"mapped\",[71891]],[[71860,71860],\"mapped\",[71892]],[[71861,71861],\"mapped\",[71893]],[[71862,71862],\"mapped\",[71894]],[[71863,71863],\"mapped\",[71895]],[[71864,71864],\"mapped\",[71896]],[[71865,71865],\"mapped\",[71897]],[[71866,71866],\"mapped\",[71898]],[[71867,71867],\"mapped\",[71899]],[[71868,71868],\"mapped\",[71900]],[[71869,71869],\"mapped\",[71901]],[[71870,71870],\"mapped\",[71902]],[[71871,71871],\"mapped\",[71903]],[[71872,71913],\"valid\"],[[71914,71922],\"valid\",[],\"NV8\"],[[71923,71934],\"disallowed\"],[[71935,71935],\"valid\"],[[71936,72383],\"disallowed\"],[[72384,72440],\"valid\"],[[72441,73727],\"disallowed\"],[[73728,74606],\"valid\"],[[74607,74648],\"valid\"],[[74649,74649],\"valid\"],[[74650,74751],\"disallowed\"],[[74752,74850],\"valid\",[],\"NV8\"],[[74851,74862],\"valid\",[],\"NV8\"],[[74863,74863],\"disallowed\"],[[74864,74867],\"valid\",[],\"NV8\"],[[74868,74868],\"valid\",[],\"NV8\"],[[74869,74879],\"disallowed\"],[[74880,75075],\"valid\"],[[75076,77823],\"disallowed\"],[[77824,78894],\"valid\"],[[78895,82943],\"disallowed\"],[[82944,83526],\"valid\"],[[83527,92159],\"disallowed\"],[[92160,92728],\"valid\"],[[92729,92735],\"disallowed\"],[[92736,92766],\"valid\"],[[92767,92767],\"disallowed\"],[[92768,92777],\"valid\"],[[92778,92781],\"disallowed\"],[[92782,92783],\"valid\",[],\"NV8\"],[[92784,92879],\"disallowed\"],[[92880,92909],\"valid\"],[[92910,92911],\"disallowed\"],[[92912,92916],\"valid\"],[[92917,92917],\"valid\",[],\"NV8\"],[[92918,92927],\"disallowed\"],[[92928,92982],\"valid\"],[[92983,92991],\"valid\",[],\"NV8\"],[[92992,92995],\"valid\"],[[92996,92997],\"valid\",[],\"NV8\"],[[92998,93007],\"disallowed\"],[[93008,93017],\"valid\"],[[93018,93018],\"disallowed\"],[[93019,93025],\"valid\",[],\"NV8\"],[[93026,93026],\"disallowed\"],[[93027,93047],\"valid\"],[[93048,93052],\"disallowed\"],[[93053,93071],\"valid\"],[[93072,93951],\"disallowed\"],[[93952,94020],\"valid\"],[[94021,94031],\"disallowed\"],[[94032,94078],\"valid\"],[[94079,94094],\"disallowed\"],[[94095,94111],\"valid\"],[[94112,110591],\"disallowed\"],[[110592,110593],\"valid\"],[[110594,113663],\"disallowed\"],[[113664,113770],\"valid\"],[[113771,113775],\"disallowed\"],[[113776,113788],\"valid\"],[[113789,113791],\"disallowed\"],[[113792,113800],\"valid\"],[[113801,113807],\"disallowed\"],[[113808,113817],\"valid\"],[[113818,113819],\"disallowed\"],[[113820,113820],\"valid\",[],\"NV8\"],[[113821,113822],\"valid\"],[[113823,113823],\"valid\",[],\"NV8\"],[[113824,113827],\"ignored\"],[[113828,118783],\"disallowed\"],[[118784,119029],\"valid\",[],\"NV8\"],[[119030,119039],\"disallowed\"],[[119040,119078],\"valid\",[],\"NV8\"],[[119079,119080],\"disallowed\"],[[119081,119081],\"valid\",[],\"NV8\"],[[119082,119133],\"valid\",[],\"NV8\"],[[119134,119134],\"mapped\",[119127,119141]],[[119135,119135],\"mapped\",[119128,119141]],[[119136,119136],\"mapped\",[119128,119141,119150]],[[119137,119137],\"mapped\",[119128,119141,119151]],[[119138,119138],\"mapped\",[119128,119141,119152]],[[119139,119139],\"mapped\",[119128,119141,119153]],[[119140,119140],\"mapped\",[119128,119141,119154]],[[119141,119154],\"valid\",[],\"NV8\"],[[119155,119162],\"disallowed\"],[[119163,119226],\"valid\",[],\"NV8\"],[[119227,119227],\"mapped\",[119225,119141]],[[119228,119228],\"mapped\",[119226,119141]],[[119229,119229],\"mapped\",[119225,119141,119150]],[[119230,119230],\"mapped\",[119226,119141,119150]],[[119231,119231],\"mapped\",[119225,119141,119151]],[[119232,119232],\"mapped\",[119226,119141,119151]],[[119233,119261],\"valid\",[],\"NV8\"],[[119262,119272],\"valid\",[],\"NV8\"],[[119273,119295],\"disallowed\"],[[119296,119365],\"valid\",[],\"NV8\"],[[119366,119551],\"disallowed\"],[[119552,119638],\"valid\",[],\"NV8\"],[[119639,119647],\"disallowed\"],[[119648,119665],\"valid\",[],\"NV8\"],[[119666,119807],\"disallowed\"],[[119808,119808],\"mapped\",[97]],[[119809,119809],\"mapped\",[98]],[[119810,119810],\"mapped\",[99]],[[119811,119811],\"mapped\",[100]],[[119812,119812],\"mapped\",[101]],[[119813,119813],\"mapped\",[102]],[[119814,119814],\"mapped\",[103]],[[119815,119815],\"mapped\",[104]],[[119816,119816],\"mapped\",[105]],[[119817,119817],\"mapped\",[106]],[[119818,119818],\"mapped\",[107]],[[119819,119819],\"mapped\",[108]],[[119820,119820],\"mapped\",[109]],[[119821,119821],\"mapped\",[110]],[[119822,119822],\"mapped\",[111]],[[119823,119823],\"mapped\",[112]],[[119824,119824],\"mapped\",[113]],[[119825,119825],\"mapped\",[114]],[[119826,119826],\"mapped\",[115]],[[119827,119827],\"mapped\",[116]],[[119828,119828],\"mapped\",[117]],[[119829,119829],\"mapped\",[118]],[[119830,119830],\"mapped\",[119]],[[119831,119831],\"mapped\",[120]],[[119832,119832],\"mapped\",[121]],[[119833,119833],\"mapped\",[122]],[[119834,119834],\"mapped\",[97]],[[119835,119835],\"mapped\",[98]],[[119836,119836],\"mapped\",[99]],[[119837,119837],\"mapped\",[100]],[[119838,119838],\"mapped\",[101]],[[119839,119839],\"mapped\",[102]],[[119840,119840],\"mapped\",[103]],[[119841,119841],\"mapped\",[104]],[[119842,119842],\"mapped\",[105]],[[119843,119843],\"mapped\",[106]],[[119844,119844],\"mapped\",[107]],[[119845,119845],\"mapped\",[108]],[[119846,119846],\"mapped\",[109]],[[119847,119847],\"mapped\",[110]],[[119848,119848],\"mapped\",[111]],[[119849,119849],\"mapped\",[112]],[[119850,119850],\"mapped\",[113]],[[119851,119851],\"mapped\",[114]],[[119852,119852],\"mapped\",[115]],[[119853,119853],\"mapped\",[116]],[[119854,119854],\"mapped\",[117]],[[119855,119855],\"mapped\",[118]],[[119856,119856],\"mapped\",[119]],[[119857,119857],\"mapped\",[120]],[[119858,119858],\"mapped\",[121]],[[119859,119859],\"mapped\",[122]],[[119860,119860],\"mapped\",[97]],[[119861,119861],\"mapped\",[98]],[[119862,119862],\"mapped\",[99]],[[119863,119863],\"mapped\",[100]],[[119864,119864],\"mapped\",[101]],[[119865,119865],\"mapped\",[102]],[[119866,119866],\"mapped\",[103]],[[119867,119867],\"mapped\",[104]],[[119868,119868],\"mapped\",[105]],[[119869,119869],\"mapped\",[106]],[[119870,119870],\"mapped\",[107]],[[119871,119871],\"mapped\",[108]],[[119872,119872],\"mapped\",[109]],[[119873,119873],\"mapped\",[110]],[[119874,119874],\"mapped\",[111]],[[119875,119875],\"mapped\",[112]],[[119876,119876],\"mapped\",[113]],[[119877,119877],\"mapped\",[114]],[[119878,119878],\"mapped\",[115]],[[119879,119879],\"mapped\",[116]],[[119880,119880],\"mapped\",[117]],[[119881,119881],\"mapped\",[118]],[[119882,119882],\"mapped\",[119]],[[119883,119883],\"mapped\",[120]],[[119884,119884],\"mapped\",[121]],[[119885,119885],\"mapped\",[122]],[[119886,119886],\"mapped\",[97]],[[119887,119887],\"mapped\",[98]],[[119888,119888],\"mapped\",[99]],[[119889,119889],\"mapped\",[100]],[[119890,119890],\"mapped\",[101]],[[119891,119891],\"mapped\",[102]],[[119892,119892],\"mapped\",[103]],[[119893,119893],\"disallowed\"],[[119894,119894],\"mapped\",[105]],[[119895,119895],\"mapped\",[106]],[[119896,119896],\"mapped\",[107]],[[119897,119897],\"mapped\",[108]],[[119898,119898],\"mapped\",[109]],[[119899,119899],\"mapped\",[110]],[[119900,119900],\"mapped\",[111]],[[119901,119901],\"mapped\",[112]],[[119902,119902],\"mapped\",[113]],[[119903,119903],\"mapped\",[114]],[[119904,119904],\"mapped\",[115]],[[119905,119905],\"mapped\",[116]],[[119906,119906],\"mapped\",[117]],[[119907,119907],\"mapped\",[118]],[[119908,119908],\"mapped\",[119]],[[119909,119909],\"mapped\",[120]],[[119910,119910],\"mapped\",[121]],[[119911,119911],\"mapped\",[122]],[[119912,119912],\"mapped\",[97]],[[119913,119913],\"mapped\",[98]],[[119914,119914],\"mapped\",[99]],[[119915,119915],\"mapped\",[100]],[[119916,119916],\"mapped\",[101]],[[119917,119917],\"mapped\",[102]],[[119918,119918],\"mapped\",[103]],[[119919,119919],\"mapped\",[104]],[[119920,119920],\"mapped\",[105]],[[119921,119921],\"mapped\",[106]],[[119922,119922],\"mapped\",[107]],[[119923,119923],\"mapped\",[108]],[[119924,119924],\"mapped\",[109]],[[119925,119925],\"mapped\",[110]],[[119926,119926],\"mapped\",[111]],[[119927,119927],\"mapped\",[112]],[[119928,119928],\"mapped\",[113]],[[119929,119929],\"mapped\",[114]],[[119930,119930],\"mapped\",[115]],[[119931,119931],\"mapped\",[116]],[[119932,119932],\"mapped\",[117]],[[119933,119933],\"mapped\",[118]],[[119934,119934],\"mapped\",[119]],[[119935,119935],\"mapped\",[120]],[[119936,119936],\"mapped\",[121]],[[119937,119937],\"mapped\",[122]],[[119938,119938],\"mapped\",[97]],[[119939,119939],\"mapped\",[98]],[[119940,119940],\"mapped\",[99]],[[119941,119941],\"mapped\",[100]],[[119942,119942],\"mapped\",[101]],[[119943,119943],\"mapped\",[102]],[[119944,119944],\"mapped\",[103]],[[119945,119945],\"mapped\",[104]],[[119946,119946],\"mapped\",[105]],[[119947,119947],\"mapped\",[106]],[[119948,119948],\"mapped\",[107]],[[119949,119949],\"mapped\",[108]],[[119950,119950],\"mapped\",[109]],[[119951,119951],\"mapped\",[110]],[[119952,119952],\"mapped\",[111]],[[119953,119953],\"mapped\",[112]],[[119954,119954],\"mapped\",[113]],[[119955,119955],\"mapped\",[114]],[[119956,119956],\"mapped\",[115]],[[119957,119957],\"mapped\",[116]],[[119958,119958],\"mapped\",[117]],[[119959,119959],\"mapped\",[118]],[[119960,119960],\"mapped\",[119]],[[119961,119961],\"mapped\",[120]],[[119962,119962],\"mapped\",[121]],[[119963,119963],\"mapped\",[122]],[[119964,119964],\"mapped\",[97]],[[119965,119965],\"disallowed\"],[[119966,119966],\"mapped\",[99]],[[119967,119967],\"mapped\",[100]],[[119968,119969],\"disallowed\"],[[119970,119970],\"mapped\",[103]],[[119971,119972],\"disallowed\"],[[119973,119973],\"mapped\",[106]],[[119974,119974],\"mapped\",[107]],[[119975,119976],\"disallowed\"],[[119977,119977],\"mapped\",[110]],[[119978,119978],\"mapped\",[111]],[[119979,119979],\"mapped\",[112]],[[119980,119980],\"mapped\",[113]],[[119981,119981],\"disallowed\"],[[119982,119982],\"mapped\",[115]],[[119983,119983],\"mapped\",[116]],[[119984,119984],\"mapped\",[117]],[[119985,119985],\"mapped\",[118]],[[119986,119986],\"mapped\",[119]],[[119987,119987],\"mapped\",[120]],[[119988,119988],\"mapped\",[121]],[[119989,119989],\"mapped\",[122]],[[119990,119990],\"mapped\",[97]],[[119991,119991],\"mapped\",[98]],[[119992,119992],\"mapped\",[99]],[[119993,119993],\"mapped\",[100]],[[119994,119994],\"disallowed\"],[[119995,119995],\"mapped\",[102]],[[119996,119996],\"disallowed\"],[[119997,119997],\"mapped\",[104]],[[119998,119998],\"mapped\",[105]],[[119999,119999],\"mapped\",[106]],[[120000,120000],\"mapped\",[107]],[[120001,120001],\"mapped\",[108]],[[120002,120002],\"mapped\",[109]],[[120003,120003],\"mapped\",[110]],[[120004,120004],\"disallowed\"],[[120005,120005],\"mapped\",[112]],[[120006,120006],\"mapped\",[113]],[[120007,120007],\"mapped\",[114]],[[120008,120008],\"mapped\",[115]],[[120009,120009],\"mapped\",[116]],[[120010,120010],\"mapped\",[117]],[[120011,120011],\"mapped\",[118]],[[120012,120012],\"mapped\",[119]],[[120013,120013],\"mapped\",[120]],[[120014,120014],\"mapped\",[121]],[[120015,120015],\"mapped\",[122]],[[120016,120016],\"mapped\",[97]],[[120017,120017],\"mapped\",[98]],[[120018,120018],\"mapped\",[99]],[[120019,120019],\"mapped\",[100]],[[120020,120020],\"mapped\",[101]],[[120021,120021],\"mapped\",[102]],[[120022,120022],\"mapped\",[103]],[[120023,120023],\"mapped\",[104]],[[120024,120024],\"mapped\",[105]],[[120025,120025],\"mapped\",[106]],[[120026,120026],\"mapped\",[107]],[[120027,120027],\"mapped\",[108]],[[120028,120028],\"mapped\",[109]],[[120029,120029],\"mapped\",[110]],[[120030,120030],\"mapped\",[111]],[[120031,120031],\"mapped\",[112]],[[120032,120032],\"mapped\",[113]],[[120033,120033],\"mapped\",[114]],[[120034,120034],\"mapped\",[115]],[[120035,120035],\"mapped\",[116]],[[120036,120036],\"mapped\",[117]],[[120037,120037],\"mapped\",[118]],[[120038,120038],\"mapped\",[119]],[[120039,120039],\"mapped\",[120]],[[120040,120040],\"mapped\",[121]],[[120041,120041],\"mapped\",[122]],[[120042,120042],\"mapped\",[97]],[[120043,120043],\"mapped\",[98]],[[120044,120044],\"mapped\",[99]],[[120045,120045],\"mapped\",[100]],[[120046,120046],\"mapped\",[101]],[[120047,120047],\"mapped\",[102]],[[120048,120048],\"mapped\",[103]],[[120049,120049],\"mapped\",[104]],[[120050,120050],\"mapped\",[105]],[[120051,120051],\"mapped\",[106]],[[120052,120052],\"mapped\",[107]],[[120053,120053],\"mapped\",[108]],[[120054,120054],\"mapped\",[109]],[[120055,120055],\"mapped\",[110]],[[120056,120056],\"mapped\",[111]],[[120057,120057],\"mapped\",[112]],[[120058,120058],\"mapped\",[113]],[[120059,120059],\"mapped\",[114]],[[120060,120060],\"mapped\",[115]],[[120061,120061],\"mapped\",[116]],[[120062,120062],\"mapped\",[117]],[[120063,120063],\"mapped\",[118]],[[120064,120064],\"mapped\",[119]],[[120065,120065],\"mapped\",[120]],[[120066,120066],\"mapped\",[121]],[[120067,120067],\"mapped\",[122]],[[120068,120068],\"mapped\",[97]],[[120069,120069],\"mapped\",[98]],[[120070,120070],\"disallowed\"],[[120071,120071],\"mapped\",[100]],[[120072,120072],\"mapped\",[101]],[[120073,120073],\"mapped\",[102]],[[120074,120074],\"mapped\",[103]],[[120075,120076],\"disallowed\"],[[120077,120077],\"mapped\",[106]],[[120078,120078],\"mapped\",[107]],[[120079,120079],\"mapped\",[108]],[[120080,120080],\"mapped\",[109]],[[120081,120081],\"mapped\",[110]],[[120082,120082],\"mapped\",[111]],[[120083,120083],\"mapped\",[112]],[[120084,120084],\"mapped\",[113]],[[120085,120085],\"disallowed\"],[[120086,120086],\"mapped\",[115]],[[120087,120087],\"mapped\",[116]],[[120088,120088],\"mapped\",[117]],[[120089,120089],\"mapped\",[118]],[[120090,120090],\"mapped\",[119]],[[120091,120091],\"mapped\",[120]],[[120092,120092],\"mapped\",[121]],[[120093,120093],\"disallowed\"],[[120094,120094],\"mapped\",[97]],[[120095,120095],\"mapped\",[98]],[[120096,120096],\"mapped\",[99]],[[120097,120097],\"mapped\",[100]],[[120098,120098],\"mapped\",[101]],[[120099,120099],\"mapped\",[102]],[[120100,120100],\"mapped\",[103]],[[120101,120101],\"mapped\",[104]],[[120102,120102],\"mapped\",[105]],[[120103,120103],\"mapped\",[106]],[[120104,120104],\"mapped\",[107]],[[120105,120105],\"mapped\",[108]],[[120106,120106],\"mapped\",[109]],[[120107,120107],\"mapped\",[110]],[[120108,120108],\"mapped\",[111]],[[120109,120109],\"mapped\",[112]],[[120110,120110],\"mapped\",[113]],[[120111,120111],\"mapped\",[114]],[[120112,120112],\"mapped\",[115]],[[120113,120113],\"mapped\",[116]],[[120114,120114],\"mapped\",[117]],[[120115,120115],\"mapped\",[118]],[[120116,120116],\"mapped\",[119]],[[120117,120117],\"mapped\",[120]],[[120118,120118],\"mapped\",[121]],[[120119,120119],\"mapped\",[122]],[[120120,120120],\"mapped\",[97]],[[120121,120121],\"mapped\",[98]],[[120122,120122],\"disallowed\"],[[120123,120123],\"mapped\",[100]],[[120124,120124],\"mapped\",[101]],[[120125,120125],\"mapped\",[102]],[[120126,120126],\"mapped\",[103]],[[120127,120127],\"disallowed\"],[[120128,120128],\"mapped\",[105]],[[120129,120129],\"mapped\",[106]],[[120130,120130],\"mapped\",[107]],[[120131,120131],\"mapped\",[108]],[[120132,120132],\"mapped\",[109]],[[120133,120133],\"disallowed\"],[[120134,120134],\"mapped\",[111]],[[120135,120137],\"disallowed\"],[[120138,120138],\"mapped\",[115]],[[120139,120139],\"mapped\",[116]],[[120140,120140],\"mapped\",[117]],[[120141,120141],\"mapped\",[118]],[[120142,120142],\"mapped\",[119]],[[120143,120143],\"mapped\",[120]],[[120144,120144],\"mapped\",[121]],[[120145,120145],\"disallowed\"],[[120146,120146],\"mapped\",[97]],[[120147,120147],\"mapped\",[98]],[[120148,120148],\"mapped\",[99]],[[120149,120149],\"mapped\",[100]],[[120150,120150],\"mapped\",[101]],[[120151,120151],\"mapped\",[102]],[[120152,120152],\"mapped\",[103]],[[120153,120153],\"mapped\",[104]],[[120154,120154],\"mapped\",[105]],[[120155,120155],\"mapped\",[106]],[[120156,120156],\"mapped\",[107]],[[120157,120157],\"mapped\",[108]],[[120158,120158],\"mapped\",[109]],[[120159,120159],\"mapped\",[110]],[[120160,120160],\"mapped\",[111]],[[120161,120161],\"mapped\",[112]],[[120162,120162],\"mapped\",[113]],[[120163,120163],\"mapped\",[114]],[[120164,120164],\"mapped\",[115]],[[120165,120165],\"mapped\",[116]],[[120166,120166],\"mapped\",[117]],[[120167,120167],\"mapped\",[118]],[[120168,120168],\"mapped\",[119]],[[120169,120169],\"mapped\",[120]],[[120170,120170],\"mapped\",[121]],[[120171,120171],\"mapped\",[122]],[[120172,120172],\"mapped\",[97]],[[120173,120173],\"mapped\",[98]],[[120174,120174],\"mapped\",[99]],[[120175,120175],\"mapped\",[100]],[[120176,120176],\"mapped\",[101]],[[120177,120177],\"mapped\",[102]],[[120178,120178],\"mapped\",[103]],[[120179,120179],\"mapped\",[104]],[[120180,120180],\"mapped\",[105]],[[120181,120181],\"mapped\",[106]],[[120182,120182],\"mapped\",[107]],[[120183,120183],\"mapped\",[108]],[[120184,120184],\"mapped\",[109]],[[120185,120185],\"mapped\",[110]],[[120186,120186],\"mapped\",[111]],[[120187,120187],\"mapped\",[112]],[[120188,120188],\"mapped\",[113]],[[120189,120189],\"mapped\",[114]],[[120190,120190],\"mapped\",[115]],[[120191,120191],\"mapped\",[116]],[[120192,120192],\"mapped\",[117]],[[120193,120193],\"mapped\",[118]],[[120194,120194],\"mapped\",[119]],[[120195,120195],\"mapped\",[120]],[[120196,120196],\"mapped\",[121]],[[120197,120197],\"mapped\",[122]],[[120198,120198],\"mapped\",[97]],[[120199,120199],\"mapped\",[98]],[[120200,120200],\"mapped\",[99]],[[120201,120201],\"mapped\",[100]],[[120202,120202],\"mapped\",[101]],[[120203,120203],\"mapped\",[102]],[[120204,120204],\"mapped\",[103]],[[120205,120205],\"mapped\",[104]],[[120206,120206],\"mapped\",[105]],[[120207,120207],\"mapped\",[106]],[[120208,120208],\"mapped\",[107]],[[120209,120209],\"mapped\",[108]],[[120210,120210],\"mapped\",[109]],[[120211,120211],\"mapped\",[110]],[[120212,120212],\"mapped\",[111]],[[120213,120213],\"mapped\",[112]],[[120214,120214],\"mapped\",[113]],[[120215,120215],\"mapped\",[114]],[[120216,120216],\"mapped\",[115]],[[120217,120217],\"mapped\",[116]],[[120218,120218],\"mapped\",[117]],[[120219,120219],\"mapped\",[118]],[[120220,120220],\"mapped\",[119]],[[120221,120221],\"mapped\",[120]],[[120222,120222],\"mapped\",[121]],[[120223,120223],\"mapped\",[122]],[[120224,120224],\"mapped\",[97]],[[120225,120225],\"mapped\",[98]],[[120226,120226],\"mapped\",[99]],[[120227,120227],\"mapped\",[100]],[[120228,120228],\"mapped\",[101]],[[120229,120229],\"mapped\",[102]],[[120230,120230],\"mapped\",[103]],[[120231,120231],\"mapped\",[104]],[[120232,120232],\"mapped\",[105]],[[120233,120233],\"mapped\",[106]],[[120234,120234],\"mapped\",[107]],[[120235,120235],\"mapped\",[108]],[[120236,120236],\"mapped\",[109]],[[120237,120237],\"mapped\",[110]],[[120238,120238],\"mapped\",[111]],[[120239,120239],\"mapped\",[112]],[[120240,120240],\"mapped\",[113]],[[120241,120241],\"mapped\",[114]],[[120242,120242],\"mapped\",[115]],[[120243,120243],\"mapped\",[116]],[[120244,120244],\"mapped\",[117]],[[120245,120245],\"mapped\",[118]],[[120246,120246],\"mapped\",[119]],[[120247,120247],\"mapped\",[120]],[[120248,120248],\"mapped\",[121]],[[120249,120249],\"mapped\",[122]],[[120250,120250],\"mapped\",[97]],[[120251,120251],\"mapped\",[98]],[[120252,120252],\"mapped\",[99]],[[120253,120253],\"mapped\",[100]],[[120254,120254],\"mapped\",[101]],[[120255,120255],\"mapped\",[102]],[[120256,120256],\"mapped\",[103]],[[120257,120257],\"mapped\",[104]],[[120258,120258],\"mapped\",[105]],[[120259,120259],\"mapped\",[106]],[[120260,120260],\"mapped\",[107]],[[120261,120261],\"mapped\",[108]],[[120262,120262],\"mapped\",[109]],[[120263,120263],\"mapped\",[110]],[[120264,120264],\"mapped\",[111]],[[120265,120265],\"mapped\",[112]],[[120266,120266],\"mapped\",[113]],[[120267,120267],\"mapped\",[114]],[[120268,120268],\"mapped\",[115]],[[120269,120269],\"mapped\",[116]],[[120270,120270],\"mapped\",[117]],[[120271,120271],\"mapped\",[118]],[[120272,120272],\"mapped\",[119]],[[120273,120273],\"mapped\",[120]],[[120274,120274],\"mapped\",[121]],[[120275,120275],\"mapped\",[122]],[[120276,120276],\"mapped\",[97]],[[120277,120277],\"mapped\",[98]],[[120278,120278],\"mapped\",[99]],[[120279,120279],\"mapped\",[100]],[[120280,120280],\"mapped\",[101]],[[120281,120281],\"mapped\",[102]],[[120282,120282],\"mapped\",[103]],[[120283,120283],\"mapped\",[104]],[[120284,120284],\"mapped\",[105]],[[120285,120285],\"mapped\",[106]],[[120286,120286],\"mapped\",[107]],[[120287,120287],\"mapped\",[108]],[[120288,120288],\"mapped\",[109]],[[120289,120289],\"mapped\",[110]],[[120290,120290],\"mapped\",[111]],[[120291,120291],\"mapped\",[112]],[[120292,120292],\"mapped\",[113]],[[120293,120293],\"mapped\",[114]],[[120294,120294],\"mapped\",[115]],[[120295,120295],\"mapped\",[116]],[[120296,120296],\"mapped\",[117]],[[120297,120297],\"mapped\",[118]],[[120298,120298],\"mapped\",[119]],[[120299,120299],\"mapped\",[120]],[[120300,120300],\"mapped\",[121]],[[120301,120301],\"mapped\",[122]],[[120302,120302],\"mapped\",[97]],[[120303,120303],\"mapped\",[98]],[[120304,120304],\"mapped\",[99]],[[120305,120305],\"mapped\",[100]],[[120306,120306],\"mapped\",[101]],[[120307,120307],\"mapped\",[102]],[[120308,120308],\"mapped\",[103]],[[120309,120309],\"mapped\",[104]],[[120310,120310],\"mapped\",[105]],[[120311,120311],\"mapped\",[106]],[[120312,120312],\"mapped\",[107]],[[120313,120313],\"mapped\",[108]],[[120314,120314],\"mapped\",[109]],[[120315,120315],\"mapped\",[110]],[[120316,120316],\"mapped\",[111]],[[120317,120317],\"mapped\",[112]],[[120318,120318],\"mapped\",[113]],[[120319,120319],\"mapped\",[114]],[[120320,120320],\"mapped\",[115]],[[120321,120321],\"mapped\",[116]],[[120322,120322],\"mapped\",[117]],[[120323,120323],\"mapped\",[118]],[[120324,120324],\"mapped\",[119]],[[120325,120325],\"mapped\",[120]],[[120326,120326],\"mapped\",[121]],[[120327,120327],\"mapped\",[122]],[[120328,120328],\"mapped\",[97]],[[120329,120329],\"mapped\",[98]],[[120330,120330],\"mapped\",[99]],[[120331,120331],\"mapped\",[100]],[[120332,120332],\"mapped\",[101]],[[120333,120333],\"mapped\",[102]],[[120334,120334],\"mapped\",[103]],[[120335,120335],\"mapped\",[104]],[[120336,120336],\"mapped\",[105]],[[120337,120337],\"mapped\",[106]],[[120338,120338],\"mapped\",[107]],[[120339,120339],\"mapped\",[108]],[[120340,120340],\"mapped\",[109]],[[120341,120341],\"mapped\",[110]],[[120342,120342],\"mapped\",[111]],[[120343,120343],\"mapped\",[112]],[[120344,120344],\"mapped\",[113]],[[120345,120345],\"mapped\",[114]],[[120346,120346],\"mapped\",[115]],[[120347,120347],\"mapped\",[116]],[[120348,120348],\"mapped\",[117]],[[120349,120349],\"mapped\",[118]],[[120350,120350],\"mapped\",[119]],[[120351,120351],\"mapped\",[120]],[[120352,120352],\"mapped\",[121]],[[120353,120353],\"mapped\",[122]],[[120354,120354],\"mapped\",[97]],[[120355,120355],\"mapped\",[98]],[[120356,120356],\"mapped\",[99]],[[120357,120357],\"mapped\",[100]],[[120358,120358],\"mapped\",[101]],[[120359,120359],\"mapped\",[102]],[[120360,120360],\"mapped\",[103]],[[120361,120361],\"mapped\",[104]],[[120362,120362],\"mapped\",[105]],[[120363,120363],\"mapped\",[106]],[[120364,120364],\"mapped\",[107]],[[120365,120365],\"mapped\",[108]],[[120366,120366],\"mapped\",[109]],[[120367,120367],\"mapped\",[110]],[[120368,120368],\"mapped\",[111]],[[120369,120369],\"mapped\",[112]],[[120370,120370],\"mapped\",[113]],[[120371,120371],\"mapped\",[114]],[[120372,120372],\"mapped\",[115]],[[120373,120373],\"mapped\",[116]],[[120374,120374],\"mapped\",[117]],[[120375,120375],\"mapped\",[118]],[[120376,120376],\"mapped\",[119]],[[120377,120377],\"mapped\",[120]],[[120378,120378],\"mapped\",[121]],[[120379,120379],\"mapped\",[122]],[[120380,120380],\"mapped\",[97]],[[120381,120381],\"mapped\",[98]],[[120382,120382],\"mapped\",[99]],[[120383,120383],\"mapped\",[100]],[[120384,120384],\"mapped\",[101]],[[120385,120385],\"mapped\",[102]],[[120386,120386],\"mapped\",[103]],[[120387,120387],\"mapped\",[104]],[[120388,120388],\"mapped\",[105]],[[120389,120389],\"mapped\",[106]],[[120390,120390],\"mapped\",[107]],[[120391,120391],\"mapped\",[108]],[[120392,120392],\"mapped\",[109]],[[120393,120393],\"mapped\",[110]],[[120394,120394],\"mapped\",[111]],[[120395,120395],\"mapped\",[112]],[[120396,120396],\"mapped\",[113]],[[120397,120397],\"mapped\",[114]],[[120398,120398],\"mapped\",[115]],[[120399,120399],\"mapped\",[116]],[[120400,120400],\"mapped\",[117]],[[120401,120401],\"mapped\",[118]],[[120402,120402],\"mapped\",[119]],[[120403,120403],\"mapped\",[120]],[[120404,120404],\"mapped\",[121]],[[120405,120405],\"mapped\",[122]],[[120406,120406],\"mapped\",[97]],[[120407,120407],\"mapped\",[98]],[[120408,120408],\"mapped\",[99]],[[120409,120409],\"mapped\",[100]],[[120410,120410],\"mapped\",[101]],[[120411,120411],\"mapped\",[102]],[[120412,120412],\"mapped\",[103]],[[120413,120413],\"mapped\",[104]],[[120414,120414],\"mapped\",[105]],[[120415,120415],\"mapped\",[106]],[[120416,120416],\"mapped\",[107]],[[120417,120417],\"mapped\",[108]],[[120418,120418],\"mapped\",[109]],[[120419,120419],\"mapped\",[110]],[[120420,120420],\"mapped\",[111]],[[120421,120421],\"mapped\",[112]],[[120422,120422],\"mapped\",[113]],[[120423,120423],\"mapped\",[114]],[[120424,120424],\"mapped\",[115]],[[120425,120425],\"mapped\",[116]],[[120426,120426],\"mapped\",[117]],[[120427,120427],\"mapped\",[118]],[[120428,120428],\"mapped\",[119]],[[120429,120429],\"mapped\",[120]],[[120430,120430],\"mapped\",[121]],[[120431,120431],\"mapped\",[122]],[[120432,120432],\"mapped\",[97]],[[120433,120433],\"mapped\",[98]],[[120434,120434],\"mapped\",[99]],[[120435,120435],\"mapped\",[100]],[[120436,120436],\"mapped\",[101]],[[120437,120437],\"mapped\",[102]],[[120438,120438],\"mapped\",[103]],[[120439,120439],\"mapped\",[104]],[[120440,120440],\"mapped\",[105]],[[120441,120441],\"mapped\",[106]],[[120442,120442],\"mapped\",[107]],[[120443,120443],\"mapped\",[108]],[[120444,120444],\"mapped\",[109]],[[120445,120445],\"mapped\",[110]],[[120446,120446],\"mapped\",[111]],[[120447,120447],\"mapped\",[112]],[[120448,120448],\"mapped\",[113]],[[120449,120449],\"mapped\",[114]],[[120450,120450],\"mapped\",[115]],[[120451,120451],\"mapped\",[116]],[[120452,120452],\"mapped\",[117]],[[120453,120453],\"mapped\",[118]],[[120454,120454],\"mapped\",[119]],[[120455,120455],\"mapped\",[120]],[[120456,120456],\"mapped\",[121]],[[120457,120457],\"mapped\",[122]],[[120458,120458],\"mapped\",[97]],[[120459,120459],\"mapped\",[98]],[[120460,120460],\"mapped\",[99]],[[120461,120461],\"mapped\",[100]],[[120462,120462],\"mapped\",[101]],[[120463,120463],\"mapped\",[102]],[[120464,120464],\"mapped\",[103]],[[120465,120465],\"mapped\",[104]],[[120466,120466],\"mapped\",[105]],[[120467,120467],\"mapped\",[106]],[[120468,120468],\"mapped\",[107]],[[120469,120469],\"mapped\",[108]],[[120470,120470],\"mapped\",[109]],[[120471,120471],\"mapped\",[110]],[[120472,120472],\"mapped\",[111]],[[120473,120473],\"mapped\",[112]],[[120474,120474],\"mapped\",[113]],[[120475,120475],\"mapped\",[114]],[[120476,120476],\"mapped\",[115]],[[120477,120477],\"mapped\",[116]],[[120478,120478],\"mapped\",[117]],[[120479,120479],\"mapped\",[118]],[[120480,120480],\"mapped\",[119]],[[120481,120481],\"mapped\",[120]],[[120482,120482],\"mapped\",[121]],[[120483,120483],\"mapped\",[122]],[[120484,120484],\"mapped\",[305]],[[120485,120485],\"mapped\",[567]],[[120486,120487],\"disallowed\"],[[120488,120488],\"mapped\",[945]],[[120489,120489],\"mapped\",[946]],[[120490,120490],\"mapped\",[947]],[[120491,120491],\"mapped\",[948]],[[120492,120492],\"mapped\",[949]],[[120493,120493],\"mapped\",[950]],[[120494,120494],\"mapped\",[951]],[[120495,120495],\"mapped\",[952]],[[120496,120496],\"mapped\",[953]],[[120497,120497],\"mapped\",[954]],[[120498,120498],\"mapped\",[955]],[[120499,120499],\"mapped\",[956]],[[120500,120500],\"mapped\",[957]],[[120501,120501],\"mapped\",[958]],[[120502,120502],\"mapped\",[959]],[[120503,120503],\"mapped\",[960]],[[120504,120504],\"mapped\",[961]],[[120505,120505],\"mapped\",[952]],[[120506,120506],\"mapped\",[963]],[[120507,120507],\"mapped\",[964]],[[120508,120508],\"mapped\",[965]],[[120509,120509],\"mapped\",[966]],[[120510,120510],\"mapped\",[967]],[[120511,120511],\"mapped\",[968]],[[120512,120512],\"mapped\",[969]],[[120513,120513],\"mapped\",[8711]],[[120514,120514],\"mapped\",[945]],[[120515,120515],\"mapped\",[946]],[[120516,120516],\"mapped\",[947]],[[120517,120517],\"mapped\",[948]],[[120518,120518],\"mapped\",[949]],[[120519,120519],\"mapped\",[950]],[[120520,120520],\"mapped\",[951]],[[120521,120521],\"mapped\",[952]],[[120522,120522],\"mapped\",[953]],[[120523,120523],\"mapped\",[954]],[[120524,120524],\"mapped\",[955]],[[120525,120525],\"mapped\",[956]],[[120526,120526],\"mapped\",[957]],[[120527,120527],\"mapped\",[958]],[[120528,120528],\"mapped\",[959]],[[120529,120529],\"mapped\",[960]],[[120530,120530],\"mapped\",[961]],[[120531,120532],\"mapped\",[963]],[[120533,120533],\"mapped\",[964]],[[120534,120534],\"mapped\",[965]],[[120535,120535],\"mapped\",[966]],[[120536,120536],\"mapped\",[967]],[[120537,120537],\"mapped\",[968]],[[120538,120538],\"mapped\",[969]],[[120539,120539],\"mapped\",[8706]],[[120540,120540],\"mapped\",[949]],[[120541,120541],\"mapped\",[952]],[[120542,120542],\"mapped\",[954]],[[120543,120543],\"mapped\",[966]],[[120544,120544],\"mapped\",[961]],[[120545,120545],\"mapped\",[960]],[[120546,120546],\"mapped\",[945]],[[120547,120547],\"mapped\",[946]],[[120548,120548],\"mapped\",[947]],[[120549,120549],\"mapped\",[948]],[[120550,120550],\"mapped\",[949]],[[120551,120551],\"mapped\",[950]],[[120552,120552],\"mapped\",[951]],[[120553,120553],\"mapped\",[952]],[[120554,120554],\"mapped\",[953]],[[120555,120555],\"mapped\",[954]],[[120556,120556],\"mapped\",[955]],[[120557,120557],\"mapped\",[956]],[[120558,120558],\"mapped\",[957]],[[120559,120559],\"mapped\",[958]],[[120560,120560],\"mapped\",[959]],[[120561,120561],\"mapped\",[960]],[[120562,120562],\"mapped\",[961]],[[120563,120563],\"mapped\",[952]],[[120564,120564],\"mapped\",[963]],[[120565,120565],\"mapped\",[964]],[[120566,120566],\"mapped\",[965]],[[120567,120567],\"mapped\",[966]],[[120568,120568],\"mapped\",[967]],[[120569,120569],\"mapped\",[968]],[[120570,120570],\"mapped\",[969]],[[120571,120571],\"mapped\",[8711]],[[120572,120572],\"mapped\",[945]],[[120573,120573],\"mapped\",[946]],[[120574,120574],\"mapped\",[947]],[[120575,120575],\"mapped\",[948]],[[120576,120576],\"mapped\",[949]],[[120577,120577],\"mapped\",[950]],[[120578,120578],\"mapped\",[951]],[[120579,120579],\"mapped\",[952]],[[120580,120580],\"mapped\",[953]],[[120581,120581],\"mapped\",[954]],[[120582,120582],\"mapped\",[955]],[[120583,120583],\"mapped\",[956]],[[120584,120584],\"mapped\",[957]],[[120585,120585],\"mapped\",[958]],[[120586,120586],\"mapped\",[959]],[[120587,120587],\"mapped\",[960]],[[120588,120588],\"mapped\",[961]],[[120589,120590],\"mapped\",[963]],[[120591,120591],\"mapped\",[964]],[[120592,120592],\"mapped\",[965]],[[120593,120593],\"mapped\",[966]],[[120594,120594],\"mapped\",[967]],[[120595,120595],\"mapped\",[968]],[[120596,120596],\"mapped\",[969]],[[120597,120597],\"mapped\",[8706]],[[120598,120598],\"mapped\",[949]],[[120599,120599],\"mapped\",[952]],[[120600,120600],\"mapped\",[954]],[[120601,120601],\"mapped\",[966]],[[120602,120602],\"mapped\",[961]],[[120603,120603],\"mapped\",[960]],[[120604,120604],\"mapped\",[945]],[[120605,120605],\"mapped\",[946]],[[120606,120606],\"mapped\",[947]],[[120607,120607],\"mapped\",[948]],[[120608,120608],\"mapped\",[949]],[[120609,120609],\"mapped\",[950]],[[120610,120610],\"mapped\",[951]],[[120611,120611],\"mapped\",[952]],[[120612,120612],\"mapped\",[953]],[[120613,120613],\"mapped\",[954]],[[120614,120614],\"mapped\",[955]],[[120615,120615],\"mapped\",[956]],[[120616,120616],\"mapped\",[957]],[[120617,120617],\"mapped\",[958]],[[120618,120618],\"mapped\",[959]],[[120619,120619],\"mapped\",[960]],[[120620,120620],\"mapped\",[961]],[[120621,120621],\"mapped\",[952]],[[120622,120622],\"mapped\",[963]],[[120623,120623],\"mapped\",[964]],[[120624,120624],\"mapped\",[965]],[[120625,120625],\"mapped\",[966]],[[120626,120626],\"mapped\",[967]],[[120627,120627],\"mapped\",[968]],[[120628,120628],\"mapped\",[969]],[[120629,120629],\"mapped\",[8711]],[[120630,120630],\"mapped\",[945]],[[120631,120631],\"mapped\",[946]],[[120632,120632],\"mapped\",[947]],[[120633,120633],\"mapped\",[948]],[[120634,120634],\"mapped\",[949]],[[120635,120635],\"mapped\",[950]],[[120636,120636],\"mapped\",[951]],[[120637,120637],\"mapped\",[952]],[[120638,120638],\"mapped\",[953]],[[120639,120639],\"mapped\",[954]],[[120640,120640],\"mapped\",[955]],[[120641,120641],\"mapped\",[956]],[[120642,120642],\"mapped\",[957]],[[120643,120643],\"mapped\",[958]],[[120644,120644],\"mapped\",[959]],[[120645,120645],\"mapped\",[960]],[[120646,120646],\"mapped\",[961]],[[120647,120648],\"mapped\",[963]],[[120649,120649],\"mapped\",[964]],[[120650,120650],\"mapped\",[965]],[[120651,120651],\"mapped\",[966]],[[120652,120652],\"mapped\",[967]],[[120653,120653],\"mapped\",[968]],[[120654,120654],\"mapped\",[969]],[[120655,120655],\"mapped\",[8706]],[[120656,120656],\"mapped\",[949]],[[120657,120657],\"mapped\",[952]],[[120658,120658],\"mapped\",[954]],[[120659,120659],\"mapped\",[966]],[[120660,120660],\"mapped\",[961]],[[120661,120661],\"mapped\",[960]],[[120662,120662],\"mapped\",[945]],[[120663,120663],\"mapped\",[946]],[[120664,120664],\"mapped\",[947]],[[120665,120665],\"mapped\",[948]],[[120666,120666],\"mapped\",[949]],[[120667,120667],\"mapped\",[950]],[[120668,120668],\"mapped\",[951]],[[120669,120669],\"mapped\",[952]],[[120670,120670],\"mapped\",[953]],[[120671,120671],\"mapped\",[954]],[[120672,120672],\"mapped\",[955]],[[120673,120673],\"mapped\",[956]],[[120674,120674],\"mapped\",[957]],[[120675,120675],\"mapped\",[958]],[[120676,120676],\"mapped\",[959]],[[120677,120677],\"mapped\",[960]],[[120678,120678],\"mapped\",[961]],[[120679,120679],\"mapped\",[952]],[[120680,120680],\"mapped\",[963]],[[120681,120681],\"mapped\",[964]],[[120682,120682],\"mapped\",[965]],[[120683,120683],\"mapped\",[966]],[[120684,120684],\"mapped\",[967]],[[120685,120685],\"mapped\",[968]],[[120686,120686],\"mapped\",[969]],[[120687,120687],\"mapped\",[8711]],[[120688,120688],\"mapped\",[945]],[[120689,120689],\"mapped\",[946]],[[120690,120690],\"mapped\",[947]],[[120691,120691],\"mapped\",[948]],[[120692,120692],\"mapped\",[949]],[[120693,120693],\"mapped\",[950]],[[120694,120694],\"mapped\",[951]],[[120695,120695],\"mapped\",[952]],[[120696,120696],\"mapped\",[953]],[[120697,120697],\"mapped\",[954]],[[120698,120698],\"mapped\",[955]],[[120699,120699],\"mapped\",[956]],[[120700,120700],\"mapped\",[957]],[[120701,120701],\"mapped\",[958]],[[120702,120702],\"mapped\",[959]],[[120703,120703],\"mapped\",[960]],[[120704,120704],\"mapped\",[961]],[[120705,120706],\"mapped\",[963]],[[120707,120707],\"mapped\",[964]],[[120708,120708],\"mapped\",[965]],[[120709,120709],\"mapped\",[966]],[[120710,120710],\"mapped\",[967]],[[120711,120711],\"mapped\",[968]],[[120712,120712],\"mapped\",[969]],[[120713,120713],\"mapped\",[8706]],[[120714,120714],\"mapped\",[949]],[[120715,120715],\"mapped\",[952]],[[120716,120716],\"mapped\",[954]],[[120717,120717],\"mapped\",[966]],[[120718,120718],\"mapped\",[961]],[[120719,120719],\"mapped\",[960]],[[120720,120720],\"mapped\",[945]],[[120721,120721],\"mapped\",[946]],[[120722,120722],\"mapped\",[947]],[[120723,120723],\"mapped\",[948]],[[120724,120724],\"mapped\",[949]],[[120725,120725],\"mapped\",[950]],[[120726,120726],\"mapped\",[951]],[[120727,120727],\"mapped\",[952]],[[120728,120728],\"mapped\",[953]],[[120729,120729],\"mapped\",[954]],[[120730,120730],\"mapped\",[955]],[[120731,120731],\"mapped\",[956]],[[120732,120732],\"mapped\",[957]],[[120733,120733],\"mapped\",[958]],[[120734,120734],\"mapped\",[959]],[[120735,120735],\"mapped\",[960]],[[120736,120736],\"mapped\",[961]],[[120737,120737],\"mapped\",[952]],[[120738,120738],\"mapped\",[963]],[[120739,120739],\"mapped\",[964]],[[120740,120740],\"mapped\",[965]],[[120741,120741],\"mapped\",[966]],[[120742,120742],\"mapped\",[967]],[[120743,120743],\"mapped\",[968]],[[120744,120744],\"mapped\",[969]],[[120745,120745],\"mapped\",[8711]],[[120746,120746],\"mapped\",[945]],[[120747,120747],\"mapped\",[946]],[[120748,120748],\"mapped\",[947]],[[120749,120749],\"mapped\",[948]],[[120750,120750],\"mapped\",[949]],[[120751,120751],\"mapped\",[950]],[[120752,120752],\"mapped\",[951]],[[120753,120753],\"mapped\",[952]],[[120754,120754],\"mapped\",[953]],[[120755,120755],\"mapped\",[954]],[[120756,120756],\"mapped\",[955]],[[120757,120757],\"mapped\",[956]],[[120758,120758],\"mapped\",[957]],[[120759,120759],\"mapped\",[958]],[[120760,120760],\"mapped\",[959]],[[120761,120761],\"mapped\",[960]],[[120762,120762],\"mapped\",[961]],[[120763,120764],\"mapped\",[963]],[[120765,120765],\"mapped\",[964]],[[120766,120766],\"mapped\",[965]],[[120767,120767],\"mapped\",[966]],[[120768,120768],\"mapped\",[967]],[[120769,120769],\"mapped\",[968]],[[120770,120770],\"mapped\",[969]],[[120771,120771],\"mapped\",[8706]],[[120772,120772],\"mapped\",[949]],[[120773,120773],\"mapped\",[952]],[[120774,120774],\"mapped\",[954]],[[120775,120775],\"mapped\",[966]],[[120776,120776],\"mapped\",[961]],[[120777,120777],\"mapped\",[960]],[[120778,120779],\"mapped\",[989]],[[120780,120781],\"disallowed\"],[[120782,120782],\"mapped\",[48]],[[120783,120783],\"mapped\",[49]],[[120784,120784],\"mapped\",[50]],[[120785,120785],\"mapped\",[51]],[[120786,120786],\"mapped\",[52]],[[120787,120787],\"mapped\",[53]],[[120788,120788],\"mapped\",[54]],[[120789,120789],\"mapped\",[55]],[[120790,120790],\"mapped\",[56]],[[120791,120791],\"mapped\",[57]],[[120792,120792],\"mapped\",[48]],[[120793,120793],\"mapped\",[49]],[[120794,120794],\"mapped\",[50]],[[120795,120795],\"mapped\",[51]],[[120796,120796],\"mapped\",[52]],[[120797,120797],\"mapped\",[53]],[[120798,120798],\"mapped\",[54]],[[120799,120799],\"mapped\",[55]],[[120800,120800],\"mapped\",[56]],[[120801,120801],\"mapped\",[57]],[[120802,120802],\"mapped\",[48]],[[120803,120803],\"mapped\",[49]],[[120804,120804],\"mapped\",[50]],[[120805,120805],\"mapped\",[51]],[[120806,120806],\"mapped\",[52]],[[120807,120807],\"mapped\",[53]],[[120808,120808],\"mapped\",[54]],[[120809,120809],\"mapped\",[55]],[[120810,120810],\"mapped\",[56]],[[120811,120811],\"mapped\",[57]],[[120812,120812],\"mapped\",[48]],[[120813,120813],\"mapped\",[49]],[[120814,120814],\"mapped\",[50]],[[120815,120815],\"mapped\",[51]],[[120816,120816],\"mapped\",[52]],[[120817,120817],\"mapped\",[53]],[[120818,120818],\"mapped\",[54]],[[120819,120819],\"mapped\",[55]],[[120820,120820],\"mapped\",[56]],[[120821,120821],\"mapped\",[57]],[[120822,120822],\"mapped\",[48]],[[120823,120823],\"mapped\",[49]],[[120824,120824],\"mapped\",[50]],[[120825,120825],\"mapped\",[51]],[[120826,120826],\"mapped\",[52]],[[120827,120827],\"mapped\",[53]],[[120828,120828],\"mapped\",[54]],[[120829,120829],\"mapped\",[55]],[[120830,120830],\"mapped\",[56]],[[120831,120831],\"mapped\",[57]],[[120832,121343],\"valid\",[],\"NV8\"],[[121344,121398],\"valid\"],[[121399,121402],\"valid\",[],\"NV8\"],[[121403,121452],\"valid\"],[[121453,121460],\"valid\",[],\"NV8\"],[[121461,121461],\"valid\"],[[121462,121475],\"valid\",[],\"NV8\"],[[121476,121476],\"valid\"],[[121477,121483],\"valid\",[],\"NV8\"],[[121484,121498],\"disallowed\"],[[121499,121503],\"valid\"],[[121504,121504],\"disallowed\"],[[121505,121519],\"valid\"],[[121520,124927],\"disallowed\"],[[124928,125124],\"valid\"],[[125125,125126],\"disallowed\"],[[125127,125135],\"valid\",[],\"NV8\"],[[125136,125142],\"valid\"],[[125143,126463],\"disallowed\"],[[126464,126464],\"mapped\",[1575]],[[126465,126465],\"mapped\",[1576]],[[126466,126466],\"mapped\",[1580]],[[126467,126467],\"mapped\",[1583]],[[126468,126468],\"disallowed\"],[[126469,126469],\"mapped\",[1608]],[[126470,126470],\"mapped\",[1586]],[[126471,126471],\"mapped\",[1581]],[[126472,126472],\"mapped\",[1591]],[[126473,126473],\"mapped\",[1610]],[[126474,126474],\"mapped\",[1603]],[[126475,126475],\"mapped\",[1604]],[[126476,126476],\"mapped\",[1605]],[[126477,126477],\"mapped\",[1606]],[[126478,126478],\"mapped\",[1587]],[[126479,126479],\"mapped\",[1593]],[[126480,126480],\"mapped\",[1601]],[[126481,126481],\"mapped\",[1589]],[[126482,126482],\"mapped\",[1602]],[[126483,126483],\"mapped\",[1585]],[[126484,126484],\"mapped\",[1588]],[[126485,126485],\"mapped\",[1578]],[[126486,126486],\"mapped\",[1579]],[[126487,126487],\"mapped\",[1582]],[[126488,126488],\"mapped\",[1584]],[[126489,126489],\"mapped\",[1590]],[[126490,126490],\"mapped\",[1592]],[[126491,126491],\"mapped\",[1594]],[[126492,126492],\"mapped\",[1646]],[[126493,126493],\"mapped\",[1722]],[[126494,126494],\"mapped\",[1697]],[[126495,126495],\"mapped\",[1647]],[[126496,126496],\"disallowed\"],[[126497,126497],\"mapped\",[1576]],[[126498,126498],\"mapped\",[1580]],[[126499,126499],\"disallowed\"],[[126500,126500],\"mapped\",[1607]],[[126501,126502],\"disallowed\"],[[126503,126503],\"mapped\",[1581]],[[126504,126504],\"disallowed\"],[[126505,126505],\"mapped\",[1610]],[[126506,126506],\"mapped\",[1603]],[[126507,126507],\"mapped\",[1604]],[[126508,126508],\"mapped\",[1605]],[[126509,126509],\"mapped\",[1606]],[[126510,126510],\"mapped\",[1587]],[[126511,126511],\"mapped\",[1593]],[[126512,126512],\"mapped\",[1601]],[[126513,126513],\"mapped\",[1589]],[[126514,126514],\"mapped\",[1602]],[[126515,126515],\"disallowed\"],[[126516,126516],\"mapped\",[1588]],[[126517,126517],\"mapped\",[1578]],[[126518,126518],\"mapped\",[1579]],[[126519,126519],\"mapped\",[1582]],[[126520,126520],\"disallowed\"],[[126521,126521],\"mapped\",[1590]],[[126522,126522],\"disallowed\"],[[126523,126523],\"mapped\",[1594]],[[126524,126529],\"disallowed\"],[[126530,126530],\"mapped\",[1580]],[[126531,126534],\"disallowed\"],[[126535,126535],\"mapped\",[1581]],[[126536,126536],\"disallowed\"],[[126537,126537],\"mapped\",[1610]],[[126538,126538],\"disallowed\"],[[126539,126539],\"mapped\",[1604]],[[126540,126540],\"disallowed\"],[[126541,126541],\"mapped\",[1606]],[[126542,126542],\"mapped\",[1587]],[[126543,126543],\"mapped\",[1593]],[[126544,126544],\"disallowed\"],[[126545,126545],\"mapped\",[1589]],[[126546,126546],\"mapped\",[1602]],[[126547,126547],\"disallowed\"],[[126548,126548],\"mapped\",[1588]],[[126549,126550],\"disallowed\"],[[126551,126551],\"mapped\",[1582]],[[126552,126552],\"disallowed\"],[[126553,126553],\"mapped\",[1590]],[[126554,126554],\"disallowed\"],[[126555,126555],\"mapped\",[1594]],[[126556,126556],\"disallowed\"],[[126557,126557],\"mapped\",[1722]],[[126558,126558],\"disallowed\"],[[126559,126559],\"mapped\",[1647]],[[126560,126560],\"disallowed\"],[[126561,126561],\"mapped\",[1576]],[[126562,126562],\"mapped\",[1580]],[[126563,126563],\"disallowed\"],[[126564,126564],\"mapped\",[1607]],[[126565,126566],\"disallowed\"],[[126567,126567],\"mapped\",[1581]],[[126568,126568],\"mapped\",[1591]],[[126569,126569],\"mapped\",[1610]],[[126570,126570],\"mapped\",[1603]],[[126571,126571],\"disallowed\"],[[126572,126572],\"mapped\",[1605]],[[126573,126573],\"mapped\",[1606]],[[126574,126574],\"mapped\",[1587]],[[126575,126575],\"mapped\",[1593]],[[126576,126576],\"mapped\",[1601]],[[126577,126577],\"mapped\",[1589]],[[126578,126578],\"mapped\",[1602]],[[126579,126579],\"disallowed\"],[[126580,126580],\"mapped\",[1588]],[[126581,126581],\"mapped\",[1578]],[[126582,126582],\"mapped\",[1579]],[[126583,126583],\"mapped\",[1582]],[[126584,126584],\"disallowed\"],[[126585,126585],\"mapped\",[1590]],[[126586,126586],\"mapped\",[1592]],[[126587,126587],\"mapped\",[1594]],[[126588,126588],\"mapped\",[1646]],[[126589,126589],\"disallowed\"],[[126590,126590],\"mapped\",[1697]],[[126591,126591],\"disallowed\"],[[126592,126592],\"mapped\",[1575]],[[126593,126593],\"mapped\",[1576]],[[126594,126594],\"mapped\",[1580]],[[126595,126595],\"mapped\",[1583]],[[126596,126596],\"mapped\",[1607]],[[126597,126597],\"mapped\",[1608]],[[126598,126598],\"mapped\",[1586]],[[126599,126599],\"mapped\",[1581]],[[126600,126600],\"mapped\",[1591]],[[126601,126601],\"mapped\",[1610]],[[126602,126602],\"disallowed\"],[[126603,126603],\"mapped\",[1604]],[[126604,126604],\"mapped\",[1605]],[[126605,126605],\"mapped\",[1606]],[[126606,126606],\"mapped\",[1587]],[[126607,126607],\"mapped\",[1593]],[[126608,126608],\"mapped\",[1601]],[[126609,126609],\"mapped\",[1589]],[[126610,126610],\"mapped\",[1602]],[[126611,126611],\"mapped\",[1585]],[[126612,126612],\"mapped\",[1588]],[[126613,126613],\"mapped\",[1578]],[[126614,126614],\"mapped\",[1579]],[[126615,126615],\"mapped\",[1582]],[[126616,126616],\"mapped\",[1584]],[[126617,126617],\"mapped\",[1590]],[[126618,126618],\"mapped\",[1592]],[[126619,126619],\"mapped\",[1594]],[[126620,126624],\"disallowed\"],[[126625,126625],\"mapped\",[1576]],[[126626,126626],\"mapped\",[1580]],[[126627,126627],\"mapped\",[1583]],[[126628,126628],\"disallowed\"],[[126629,126629],\"mapped\",[1608]],[[126630,126630],\"mapped\",[1586]],[[126631,126631],\"mapped\",[1581]],[[126632,126632],\"mapped\",[1591]],[[126633,126633],\"mapped\",[1610]],[[126634,126634],\"disallowed\"],[[126635,126635],\"mapped\",[1604]],[[126636,126636],\"mapped\",[1605]],[[126637,126637],\"mapped\",[1606]],[[126638,126638],\"mapped\",[1587]],[[126639,126639],\"mapped\",[1593]],[[126640,126640],\"mapped\",[1601]],[[126641,126641],\"mapped\",[1589]],[[126642,126642],\"mapped\",[1602]],[[126643,126643],\"mapped\",[1585]],[[126644,126644],\"mapped\",[1588]],[[126645,126645],\"mapped\",[1578]],[[126646,126646],\"mapped\",[1579]],[[126647,126647],\"mapped\",[1582]],[[126648,126648],\"mapped\",[1584]],[[126649,126649],\"mapped\",[1590]],[[126650,126650],\"mapped\",[1592]],[[126651,126651],\"mapped\",[1594]],[[126652,126703],\"disallowed\"],[[126704,126705],\"valid\",[],\"NV8\"],[[126706,126975],\"disallowed\"],[[126976,127019],\"valid\",[],\"NV8\"],[[127020,127023],\"disallowed\"],[[127024,127123],\"valid\",[],\"NV8\"],[[127124,127135],\"disallowed\"],[[127136,127150],\"valid\",[],\"NV8\"],[[127151,127152],\"disallowed\"],[[127153,127166],\"valid\",[],\"NV8\"],[[127167,127167],\"valid\",[],\"NV8\"],[[127168,127168],\"disallowed\"],[[127169,127183],\"valid\",[],\"NV8\"],[[127184,127184],\"disallowed\"],[[127185,127199],\"valid\",[],\"NV8\"],[[127200,127221],\"valid\",[],\"NV8\"],[[127222,127231],\"disallowed\"],[[127232,127232],\"disallowed\"],[[127233,127233],\"disallowed_STD3_mapped\",[48,44]],[[127234,127234],\"disallowed_STD3_mapped\",[49,44]],[[127235,127235],\"disallowed_STD3_mapped\",[50,44]],[[127236,127236],\"disallowed_STD3_mapped\",[51,44]],[[127237,127237],\"disallowed_STD3_mapped\",[52,44]],[[127238,127238],\"disallowed_STD3_mapped\",[53,44]],[[127239,127239],\"disallowed_STD3_mapped\",[54,44]],[[127240,127240],\"disallowed_STD3_mapped\",[55,44]],[[127241,127241],\"disallowed_STD3_mapped\",[56,44]],[[127242,127242],\"disallowed_STD3_mapped\",[57,44]],[[127243,127244],\"valid\",[],\"NV8\"],[[127245,127247],\"disallowed\"],[[127248,127248],\"disallowed_STD3_mapped\",[40,97,41]],[[127249,127249],\"disallowed_STD3_mapped\",[40,98,41]],[[127250,127250],\"disallowed_STD3_mapped\",[40,99,41]],[[127251,127251],\"disallowed_STD3_mapped\",[40,100,41]],[[127252,127252],\"disallowed_STD3_mapped\",[40,101,41]],[[127253,127253],\"disallowed_STD3_mapped\",[40,102,41]],[[127254,127254],\"disallowed_STD3_mapped\",[40,103,41]],[[127255,127255],\"disallowed_STD3_mapped\",[40,104,41]],[[127256,127256],\"disallowed_STD3_mapped\",[40,105,41]],[[127257,127257],\"disallowed_STD3_mapped\",[40,106,41]],[[127258,127258],\"disallowed_STD3_mapped\",[40,107,41]],[[127259,127259],\"disallowed_STD3_mapped\",[40,108,41]],[[127260,127260],\"disallowed_STD3_mapped\",[40,109,41]],[[127261,127261],\"disallowed_STD3_mapped\",[40,110,41]],[[127262,127262],\"disallowed_STD3_mapped\",[40,111,41]],[[127263,127263],\"disallowed_STD3_mapped\",[40,112,41]],[[127264,127264],\"disallowed_STD3_mapped\",[40,113,41]],[[127265,127265],\"disallowed_STD3_mapped\",[40,114,41]],[[127266,127266],\"disallowed_STD3_mapped\",[40,115,41]],[[127267,127267],\"disallowed_STD3_mapped\",[40,116,41]],[[127268,127268],\"disallowed_STD3_mapped\",[40,117,41]],[[127269,127269],\"disallowed_STD3_mapped\",[40,118,41]],[[127270,127270],\"disallowed_STD3_mapped\",[40,119,41]],[[127271,127271],\"disallowed_STD3_mapped\",[40,120,41]],[[127272,127272],\"disallowed_STD3_mapped\",[40,121,41]],[[127273,127273],\"disallowed_STD3_mapped\",[40,122,41]],[[127274,127274],\"mapped\",[12308,115,12309]],[[127275,127275],\"mapped\",[99]],[[127276,127276],\"mapped\",[114]],[[127277,127277],\"mapped\",[99,100]],[[127278,127278],\"mapped\",[119,122]],[[127279,127279],\"disallowed\"],[[127280,127280],\"mapped\",[97]],[[127281,127281],\"mapped\",[98]],[[127282,127282],\"mapped\",[99]],[[127283,127283],\"mapped\",[100]],[[127284,127284],\"mapped\",[101]],[[127285,127285],\"mapped\",[102]],[[127286,127286],\"mapped\",[103]],[[127287,127287],\"mapped\",[104]],[[127288,127288],\"mapped\",[105]],[[127289,127289],\"mapped\",[106]],[[127290,127290],\"mapped\",[107]],[[127291,127291],\"mapped\",[108]],[[127292,127292],\"mapped\",[109]],[[127293,127293],\"mapped\",[110]],[[127294,127294],\"mapped\",[111]],[[127295,127295],\"mapped\",[112]],[[127296,127296],\"mapped\",[113]],[[127297,127297],\"mapped\",[114]],[[127298,127298],\"mapped\",[115]],[[127299,127299],\"mapped\",[116]],[[127300,127300],\"mapped\",[117]],[[127301,127301],\"mapped\",[118]],[[127302,127302],\"mapped\",[119]],[[127303,127303],\"mapped\",[120]],[[127304,127304],\"mapped\",[121]],[[127305,127305],\"mapped\",[122]],[[127306,127306],\"mapped\",[104,118]],[[127307,127307],\"mapped\",[109,118]],[[127308,127308],\"mapped\",[115,100]],[[127309,127309],\"mapped\",[115,115]],[[127310,127310],\"mapped\",[112,112,118]],[[127311,127311],\"mapped\",[119,99]],[[127312,127318],\"valid\",[],\"NV8\"],[[127319,127319],\"valid\",[],\"NV8\"],[[127320,127326],\"valid\",[],\"NV8\"],[[127327,127327],\"valid\",[],\"NV8\"],[[127328,127337],\"valid\",[],\"NV8\"],[[127338,127338],\"mapped\",[109,99]],[[127339,127339],\"mapped\",[109,100]],[[127340,127343],\"disallowed\"],[[127344,127352],\"valid\",[],\"NV8\"],[[127353,127353],\"valid\",[],\"NV8\"],[[127354,127354],\"valid\",[],\"NV8\"],[[127355,127356],\"valid\",[],\"NV8\"],[[127357,127358],\"valid\",[],\"NV8\"],[[127359,127359],\"valid\",[],\"NV8\"],[[127360,127369],\"valid\",[],\"NV8\"],[[127370,127373],\"valid\",[],\"NV8\"],[[127374,127375],\"valid\",[],\"NV8\"],[[127376,127376],\"mapped\",[100,106]],[[127377,127386],\"valid\",[],\"NV8\"],[[127387,127461],\"disallowed\"],[[127462,127487],\"valid\",[],\"NV8\"],[[127488,127488],\"mapped\",[12411,12363]],[[127489,127489],\"mapped\",[12467,12467]],[[127490,127490],\"mapped\",[12469]],[[127491,127503],\"disallowed\"],[[127504,127504],\"mapped\",[25163]],[[127505,127505],\"mapped\",[23383]],[[127506,127506],\"mapped\",[21452]],[[127507,127507],\"mapped\",[12487]],[[127508,127508],\"mapped\",[20108]],[[127509,127509],\"mapped\",[22810]],[[127510,127510],\"mapped\",[35299]],[[127511,127511],\"mapped\",[22825]],[[127512,127512],\"mapped\",[20132]],[[127513,127513],\"mapped\",[26144]],[[127514,127514],\"mapped\",[28961]],[[127515,127515],\"mapped\",[26009]],[[127516,127516],\"mapped\",[21069]],[[127517,127517],\"mapped\",[24460]],[[127518,127518],\"mapped\",[20877]],[[127519,127519],\"mapped\",[26032]],[[127520,127520],\"mapped\",[21021]],[[127521,127521],\"mapped\",[32066]],[[127522,127522],\"mapped\",[29983]],[[127523,127523],\"mapped\",[36009]],[[127524,127524],\"mapped\",[22768]],[[127525,127525],\"mapped\",[21561]],[[127526,127526],\"mapped\",[28436]],[[127527,127527],\"mapped\",[25237]],[[127528,127528],\"mapped\",[25429]],[[127529,127529],\"mapped\",[19968]],[[127530,127530],\"mapped\",[19977]],[[127531,127531],\"mapped\",[36938]],[[127532,127532],\"mapped\",[24038]],[[127533,127533],\"mapped\",[20013]],[[127534,127534],\"mapped\",[21491]],[[127535,127535],\"mapped\",[25351]],[[127536,127536],\"mapped\",[36208]],[[127537,127537],\"mapped\",[25171]],[[127538,127538],\"mapped\",[31105]],[[127539,127539],\"mapped\",[31354]],[[127540,127540],\"mapped\",[21512]],[[127541,127541],\"mapped\",[28288]],[[127542,127542],\"mapped\",[26377]],[[127543,127543],\"mapped\",[26376]],[[127544,127544],\"mapped\",[30003]],[[127545,127545],\"mapped\",[21106]],[[127546,127546],\"mapped\",[21942]],[[127547,127551],\"disallowed\"],[[127552,127552],\"mapped\",[12308,26412,12309]],[[127553,127553],\"mapped\",[12308,19977,12309]],[[127554,127554],\"mapped\",[12308,20108,12309]],[[127555,127555],\"mapped\",[12308,23433,12309]],[[127556,127556],\"mapped\",[12308,28857,12309]],[[127557,127557],\"mapped\",[12308,25171,12309]],[[127558,127558],\"mapped\",[12308,30423,12309]],[[127559,127559],\"mapped\",[12308,21213,12309]],[[127560,127560],\"mapped\",[12308,25943,12309]],[[127561,127567],\"disallowed\"],[[127568,127568],\"mapped\",[24471]],[[127569,127569],\"mapped\",[21487]],[[127570,127743],\"disallowed\"],[[127744,127776],\"valid\",[],\"NV8\"],[[127777,127788],\"valid\",[],\"NV8\"],[[127789,127791],\"valid\",[],\"NV8\"],[[127792,127797],\"valid\",[],\"NV8\"],[[127798,127798],\"valid\",[],\"NV8\"],[[127799,127868],\"valid\",[],\"NV8\"],[[127869,127869],\"valid\",[],\"NV8\"],[[127870,127871],\"valid\",[],\"NV8\"],[[127872,127891],\"valid\",[],\"NV8\"],[[127892,127903],\"valid\",[],\"NV8\"],[[127904,127940],\"valid\",[],\"NV8\"],[[127941,127941],\"valid\",[],\"NV8\"],[[127942,127946],\"valid\",[],\"NV8\"],[[127947,127950],\"valid\",[],\"NV8\"],[[127951,127955],\"valid\",[],\"NV8\"],[[127956,127967],\"valid\",[],\"NV8\"],[[127968,127984],\"valid\",[],\"NV8\"],[[127985,127991],\"valid\",[],\"NV8\"],[[127992,127999],\"valid\",[],\"NV8\"],[[128000,128062],\"valid\",[],\"NV8\"],[[128063,128063],\"valid\",[],\"NV8\"],[[128064,128064],\"valid\",[],\"NV8\"],[[128065,128065],\"valid\",[],\"NV8\"],[[128066,128247],\"valid\",[],\"NV8\"],[[128248,128248],\"valid\",[],\"NV8\"],[[128249,128252],\"valid\",[],\"NV8\"],[[128253,128254],\"valid\",[],\"NV8\"],[[128255,128255],\"valid\",[],\"NV8\"],[[128256,128317],\"valid\",[],\"NV8\"],[[128318,128319],\"valid\",[],\"NV8\"],[[128320,128323],\"valid\",[],\"NV8\"],[[128324,128330],\"valid\",[],\"NV8\"],[[128331,128335],\"valid\",[],\"NV8\"],[[128336,128359],\"valid\",[],\"NV8\"],[[128360,128377],\"valid\",[],\"NV8\"],[[128378,128378],\"disallowed\"],[[128379,128419],\"valid\",[],\"NV8\"],[[128420,128420],\"disallowed\"],[[128421,128506],\"valid\",[],\"NV8\"],[[128507,128511],\"valid\",[],\"NV8\"],[[128512,128512],\"valid\",[],\"NV8\"],[[128513,128528],\"valid\",[],\"NV8\"],[[128529,128529],\"valid\",[],\"NV8\"],[[128530,128532],\"valid\",[],\"NV8\"],[[128533,128533],\"valid\",[],\"NV8\"],[[128534,128534],\"valid\",[],\"NV8\"],[[128535,128535],\"valid\",[],\"NV8\"],[[128536,128536],\"valid\",[],\"NV8\"],[[128537,128537],\"valid\",[],\"NV8\"],[[128538,128538],\"valid\",[],\"NV8\"],[[128539,128539],\"valid\",[],\"NV8\"],[[128540,128542],\"valid\",[],\"NV8\"],[[128543,128543],\"valid\",[],\"NV8\"],[[128544,128549],\"valid\",[],\"NV8\"],[[128550,128551],\"valid\",[],\"NV8\"],[[128552,128555],\"valid\",[],\"NV8\"],[[128556,128556],\"valid\",[],\"NV8\"],[[128557,128557],\"valid\",[],\"NV8\"],[[128558,128559],\"valid\",[],\"NV8\"],[[128560,128563],\"valid\",[],\"NV8\"],[[128564,128564],\"valid\",[],\"NV8\"],[[128565,128576],\"valid\",[],\"NV8\"],[[128577,128578],\"valid\",[],\"NV8\"],[[128579,128580],\"valid\",[],\"NV8\"],[[128581,128591],\"valid\",[],\"NV8\"],[[128592,128639],\"valid\",[],\"NV8\"],[[128640,128709],\"valid\",[],\"NV8\"],[[128710,128719],\"valid\",[],\"NV8\"],[[128720,128720],\"valid\",[],\"NV8\"],[[128721,128735],\"disallowed\"],[[128736,128748],\"valid\",[],\"NV8\"],[[128749,128751],\"disallowed\"],[[128752,128755],\"valid\",[],\"NV8\"],[[128756,128767],\"disallowed\"],[[128768,128883],\"valid\",[],\"NV8\"],[[128884,128895],\"disallowed\"],[[128896,128980],\"valid\",[],\"NV8\"],[[128981,129023],\"disallowed\"],[[129024,129035],\"valid\",[],\"NV8\"],[[129036,129039],\"disallowed\"],[[129040,129095],\"valid\",[],\"NV8\"],[[129096,129103],\"disallowed\"],[[129104,129113],\"valid\",[],\"NV8\"],[[129114,129119],\"disallowed\"],[[129120,129159],\"valid\",[],\"NV8\"],[[129160,129167],\"disallowed\"],[[129168,129197],\"valid\",[],\"NV8\"],[[129198,129295],\"disallowed\"],[[129296,129304],\"valid\",[],\"NV8\"],[[129305,129407],\"disallowed\"],[[129408,129412],\"valid\",[],\"NV8\"],[[129413,129471],\"disallowed\"],[[129472,129472],\"valid\",[],\"NV8\"],[[129473,131069],\"disallowed\"],[[131070,131071],\"disallowed\"],[[131072,173782],\"valid\"],[[173783,173823],\"disallowed\"],[[173824,177972],\"valid\"],[[177973,177983],\"disallowed\"],[[177984,178205],\"valid\"],[[178206,178207],\"disallowed\"],[[178208,183969],\"valid\"],[[183970,194559],\"disallowed\"],[[194560,194560],\"mapped\",[20029]],[[194561,194561],\"mapped\",[20024]],[[194562,194562],\"mapped\",[20033]],[[194563,194563],\"mapped\",[131362]],[[194564,194564],\"mapped\",[20320]],[[194565,194565],\"mapped\",[20398]],[[194566,194566],\"mapped\",[20411]],[[194567,194567],\"mapped\",[20482]],[[194568,194568],\"mapped\",[20602]],[[194569,194569],\"mapped\",[20633]],[[194570,194570],\"mapped\",[20711]],[[194571,194571],\"mapped\",[20687]],[[194572,194572],\"mapped\",[13470]],[[194573,194573],\"mapped\",[132666]],[[194574,194574],\"mapped\",[20813]],[[194575,194575],\"mapped\",[20820]],[[194576,194576],\"mapped\",[20836]],[[194577,194577],\"mapped\",[20855]],[[194578,194578],\"mapped\",[132380]],[[194579,194579],\"mapped\",[13497]],[[194580,194580],\"mapped\",[20839]],[[194581,194581],\"mapped\",[20877]],[[194582,194582],\"mapped\",[132427]],[[194583,194583],\"mapped\",[20887]],[[194584,194584],\"mapped\",[20900]],[[194585,194585],\"mapped\",[20172]],[[194586,194586],\"mapped\",[20908]],[[194587,194587],\"mapped\",[20917]],[[194588,194588],\"mapped\",[168415]],[[194589,194589],\"mapped\",[20981]],[[194590,194590],\"mapped\",[20995]],[[194591,194591],\"mapped\",[13535]],[[194592,194592],\"mapped\",[21051]],[[194593,194593],\"mapped\",[21062]],[[194594,194594],\"mapped\",[21106]],[[194595,194595],\"mapped\",[21111]],[[194596,194596],\"mapped\",[13589]],[[194597,194597],\"mapped\",[21191]],[[194598,194598],\"mapped\",[21193]],[[194599,194599],\"mapped\",[21220]],[[194600,194600],\"mapped\",[21242]],[[194601,194601],\"mapped\",[21253]],[[194602,194602],\"mapped\",[21254]],[[194603,194603],\"mapped\",[21271]],[[194604,194604],\"mapped\",[21321]],[[194605,194605],\"mapped\",[21329]],[[194606,194606],\"mapped\",[21338]],[[194607,194607],\"mapped\",[21363]],[[194608,194608],\"mapped\",[21373]],[[194609,194611],\"mapped\",[21375]],[[194612,194612],\"mapped\",[133676]],[[194613,194613],\"mapped\",[28784]],[[194614,194614],\"mapped\",[21450]],[[194615,194615],\"mapped\",[21471]],[[194616,194616],\"mapped\",[133987]],[[194617,194617],\"mapped\",[21483]],[[194618,194618],\"mapped\",[21489]],[[194619,194619],\"mapped\",[21510]],[[194620,194620],\"mapped\",[21662]],[[194621,194621],\"mapped\",[21560]],[[194622,194622],\"mapped\",[21576]],[[194623,194623],\"mapped\",[21608]],[[194624,194624],\"mapped\",[21666]],[[194625,194625],\"mapped\",[21750]],[[194626,194626],\"mapped\",[21776]],[[194627,194627],\"mapped\",[21843]],[[194628,194628],\"mapped\",[21859]],[[194629,194630],\"mapped\",[21892]],[[194631,194631],\"mapped\",[21913]],[[194632,194632],\"mapped\",[21931]],[[194633,194633],\"mapped\",[21939]],[[194634,194634],\"mapped\",[21954]],[[194635,194635],\"mapped\",[22294]],[[194636,194636],\"mapped\",[22022]],[[194637,194637],\"mapped\",[22295]],[[194638,194638],\"mapped\",[22097]],[[194639,194639],\"mapped\",[22132]],[[194640,194640],\"mapped\",[20999]],[[194641,194641],\"mapped\",[22766]],[[194642,194642],\"mapped\",[22478]],[[194643,194643],\"mapped\",[22516]],[[194644,194644],\"mapped\",[22541]],[[194645,194645],\"mapped\",[22411]],[[194646,194646],\"mapped\",[22578]],[[194647,194647],\"mapped\",[22577]],[[194648,194648],\"mapped\",[22700]],[[194649,194649],\"mapped\",[136420]],[[194650,194650],\"mapped\",[22770]],[[194651,194651],\"mapped\",[22775]],[[194652,194652],\"mapped\",[22790]],[[194653,194653],\"mapped\",[22810]],[[194654,194654],\"mapped\",[22818]],[[194655,194655],\"mapped\",[22882]],[[194656,194656],\"mapped\",[136872]],[[194657,194657],\"mapped\",[136938]],[[194658,194658],\"mapped\",[23020]],[[194659,194659],\"mapped\",[23067]],[[194660,194660],\"mapped\",[23079]],[[194661,194661],\"mapped\",[23000]],[[194662,194662],\"mapped\",[23142]],[[194663,194663],\"mapped\",[14062]],[[194664,194664],\"disallowed\"],[[194665,194665],\"mapped\",[23304]],[[194666,194667],\"mapped\",[23358]],[[194668,194668],\"mapped\",[137672]],[[194669,194669],\"mapped\",[23491]],[[194670,194670],\"mapped\",[23512]],[[194671,194671],\"mapped\",[23527]],[[194672,194672],\"mapped\",[23539]],[[194673,194673],\"mapped\",[138008]],[[194674,194674],\"mapped\",[23551]],[[194675,194675],\"mapped\",[23558]],[[194676,194676],\"disallowed\"],[[194677,194677],\"mapped\",[23586]],[[194678,194678],\"mapped\",[14209]],[[194679,194679],\"mapped\",[23648]],[[194680,194680],\"mapped\",[23662]],[[194681,194681],\"mapped\",[23744]],[[194682,194682],\"mapped\",[23693]],[[194683,194683],\"mapped\",[138724]],[[194684,194684],\"mapped\",[23875]],[[194685,194685],\"mapped\",[138726]],[[194686,194686],\"mapped\",[23918]],[[194687,194687],\"mapped\",[23915]],[[194688,194688],\"mapped\",[23932]],[[194689,194689],\"mapped\",[24033]],[[194690,194690],\"mapped\",[24034]],[[194691,194691],\"mapped\",[14383]],[[194692,194692],\"mapped\",[24061]],[[194693,194693],\"mapped\",[24104]],[[194694,194694],\"mapped\",[24125]],[[194695,194695],\"mapped\",[24169]],[[194696,194696],\"mapped\",[14434]],[[194697,194697],\"mapped\",[139651]],[[194698,194698],\"mapped\",[14460]],[[194699,194699],\"mapped\",[24240]],[[194700,194700],\"mapped\",[24243]],[[194701,194701],\"mapped\",[24246]],[[194702,194702],\"mapped\",[24266]],[[194703,194703],\"mapped\",[172946]],[[194704,194704],\"mapped\",[24318]],[[194705,194706],\"mapped\",[140081]],[[194707,194707],\"mapped\",[33281]],[[194708,194709],\"mapped\",[24354]],[[194710,194710],\"mapped\",[14535]],[[194711,194711],\"mapped\",[144056]],[[194712,194712],\"mapped\",[156122]],[[194713,194713],\"mapped\",[24418]],[[194714,194714],\"mapped\",[24427]],[[194715,194715],\"mapped\",[14563]],[[194716,194716],\"mapped\",[24474]],[[194717,194717],\"mapped\",[24525]],[[194718,194718],\"mapped\",[24535]],[[194719,194719],\"mapped\",[24569]],[[194720,194720],\"mapped\",[24705]],[[194721,194721],\"mapped\",[14650]],[[194722,194722],\"mapped\",[14620]],[[194723,194723],\"mapped\",[24724]],[[194724,194724],\"mapped\",[141012]],[[194725,194725],\"mapped\",[24775]],[[194726,194726],\"mapped\",[24904]],[[194727,194727],\"mapped\",[24908]],[[194728,194728],\"mapped\",[24910]],[[194729,194729],\"mapped\",[24908]],[[194730,194730],\"mapped\",[24954]],[[194731,194731],\"mapped\",[24974]],[[194732,194732],\"mapped\",[25010]],[[194733,194733],\"mapped\",[24996]],[[194734,194734],\"mapped\",[25007]],[[194735,194735],\"mapped\",[25054]],[[194736,194736],\"mapped\",[25074]],[[194737,194737],\"mapped\",[25078]],[[194738,194738],\"mapped\",[25104]],[[194739,194739],\"mapped\",[25115]],[[194740,194740],\"mapped\",[25181]],[[194741,194741],\"mapped\",[25265]],[[194742,194742],\"mapped\",[25300]],[[194743,194743],\"mapped\",[25424]],[[194744,194744],\"mapped\",[142092]],[[194745,194745],\"mapped\",[25405]],[[194746,194746],\"mapped\",[25340]],[[194747,194747],\"mapped\",[25448]],[[194748,194748],\"mapped\",[25475]],[[194749,194749],\"mapped\",[25572]],[[194750,194750],\"mapped\",[142321]],[[194751,194751],\"mapped\",[25634]],[[194752,194752],\"mapped\",[25541]],[[194753,194753],\"mapped\",[25513]],[[194754,194754],\"mapped\",[14894]],[[194755,194755],\"mapped\",[25705]],[[194756,194756],\"mapped\",[25726]],[[194757,194757],\"mapped\",[25757]],[[194758,194758],\"mapped\",[25719]],[[194759,194759],\"mapped\",[14956]],[[194760,194760],\"mapped\",[25935]],[[194761,194761],\"mapped\",[25964]],[[194762,194762],\"mapped\",[143370]],[[194763,194763],\"mapped\",[26083]],[[194764,194764],\"mapped\",[26360]],[[194765,194765],\"mapped\",[26185]],[[194766,194766],\"mapped\",[15129]],[[194767,194767],\"mapped\",[26257]],[[194768,194768],\"mapped\",[15112]],[[194769,194769],\"mapped\",[15076]],[[194770,194770],\"mapped\",[20882]],[[194771,194771],\"mapped\",[20885]],[[194772,194772],\"mapped\",[26368]],[[194773,194773],\"mapped\",[26268]],[[194774,194774],\"mapped\",[32941]],[[194775,194775],\"mapped\",[17369]],[[194776,194776],\"mapped\",[26391]],[[194777,194777],\"mapped\",[26395]],[[194778,194778],\"mapped\",[26401]],[[194779,194779],\"mapped\",[26462]],[[194780,194780],\"mapped\",[26451]],[[194781,194781],\"mapped\",[144323]],[[194782,194782],\"mapped\",[15177]],[[194783,194783],\"mapped\",[26618]],[[194784,194784],\"mapped\",[26501]],[[194785,194785],\"mapped\",[26706]],[[194786,194786],\"mapped\",[26757]],[[194787,194787],\"mapped\",[144493]],[[194788,194788],\"mapped\",[26766]],[[194789,194789],\"mapped\",[26655]],[[194790,194790],\"mapped\",[26900]],[[194791,194791],\"mapped\",[15261]],[[194792,194792],\"mapped\",[26946]],[[194793,194793],\"mapped\",[27043]],[[194794,194794],\"mapped\",[27114]],[[194795,194795],\"mapped\",[27304]],[[194796,194796],\"mapped\",[145059]],[[194797,194797],\"mapped\",[27355]],[[194798,194798],\"mapped\",[15384]],[[194799,194799],\"mapped\",[27425]],[[194800,194800],\"mapped\",[145575]],[[194801,194801],\"mapped\",[27476]],[[194802,194802],\"mapped\",[15438]],[[194803,194803],\"mapped\",[27506]],[[194804,194804],\"mapped\",[27551]],[[194805,194805],\"mapped\",[27578]],[[194806,194806],\"mapped\",[27579]],[[194807,194807],\"mapped\",[146061]],[[194808,194808],\"mapped\",[138507]],[[194809,194809],\"mapped\",[146170]],[[194810,194810],\"mapped\",[27726]],[[194811,194811],\"mapped\",[146620]],[[194812,194812],\"mapped\",[27839]],[[194813,194813],\"mapped\",[27853]],[[194814,194814],\"mapped\",[27751]],[[194815,194815],\"mapped\",[27926]],[[194816,194816],\"mapped\",[27966]],[[194817,194817],\"mapped\",[28023]],[[194818,194818],\"mapped\",[27969]],[[194819,194819],\"mapped\",[28009]],[[194820,194820],\"mapped\",[28024]],[[194821,194821],\"mapped\",[28037]],[[194822,194822],\"mapped\",[146718]],[[194823,194823],\"mapped\",[27956]],[[194824,194824],\"mapped\",[28207]],[[194825,194825],\"mapped\",[28270]],[[194826,194826],\"mapped\",[15667]],[[194827,194827],\"mapped\",[28363]],[[194828,194828],\"mapped\",[28359]],[[194829,194829],\"mapped\",[147153]],[[194830,194830],\"mapped\",[28153]],[[194831,194831],\"mapped\",[28526]],[[194832,194832],\"mapped\",[147294]],[[194833,194833],\"mapped\",[147342]],[[194834,194834],\"mapped\",[28614]],[[194835,194835],\"mapped\",[28729]],[[194836,194836],\"mapped\",[28702]],[[194837,194837],\"mapped\",[28699]],[[194838,194838],\"mapped\",[15766]],[[194839,194839],\"mapped\",[28746]],[[194840,194840],\"mapped\",[28797]],[[194841,194841],\"mapped\",[28791]],[[194842,194842],\"mapped\",[28845]],[[194843,194843],\"mapped\",[132389]],[[194844,194844],\"mapped\",[28997]],[[194845,194845],\"mapped\",[148067]],[[194846,194846],\"mapped\",[29084]],[[194847,194847],\"disallowed\"],[[194848,194848],\"mapped\",[29224]],[[194849,194849],\"mapped\",[29237]],[[194850,194850],\"mapped\",[29264]],[[194851,194851],\"mapped\",[149000]],[[194852,194852],\"mapped\",[29312]],[[194853,194853],\"mapped\",[29333]],[[194854,194854],\"mapped\",[149301]],[[194855,194855],\"mapped\",[149524]],[[194856,194856],\"mapped\",[29562]],[[194857,194857],\"mapped\",[29579]],[[194858,194858],\"mapped\",[16044]],[[194859,194859],\"mapped\",[29605]],[[194860,194861],\"mapped\",[16056]],[[194862,194862],\"mapped\",[29767]],[[194863,194863],\"mapped\",[29788]],[[194864,194864],\"mapped\",[29809]],[[194865,194865],\"mapped\",[29829]],[[194866,194866],\"mapped\",[29898]],[[194867,194867],\"mapped\",[16155]],[[194868,194868],\"mapped\",[29988]],[[194869,194869],\"mapped\",[150582]],[[194870,194870],\"mapped\",[30014]],[[194871,194871],\"mapped\",[150674]],[[194872,194872],\"mapped\",[30064]],[[194873,194873],\"mapped\",[139679]],[[194874,194874],\"mapped\",[30224]],[[194875,194875],\"mapped\",[151457]],[[194876,194876],\"mapped\",[151480]],[[194877,194877],\"mapped\",[151620]],[[194878,194878],\"mapped\",[16380]],[[194879,194879],\"mapped\",[16392]],[[194880,194880],\"mapped\",[30452]],[[194881,194881],\"mapped\",[151795]],[[194882,194882],\"mapped\",[151794]],[[194883,194883],\"mapped\",[151833]],[[194884,194884],\"mapped\",[151859]],[[194885,194885],\"mapped\",[30494]],[[194886,194887],\"mapped\",[30495]],[[194888,194888],\"mapped\",[30538]],[[194889,194889],\"mapped\",[16441]],[[194890,194890],\"mapped\",[30603]],[[194891,194891],\"mapped\",[16454]],[[194892,194892],\"mapped\",[16534]],[[194893,194893],\"mapped\",[152605]],[[194894,194894],\"mapped\",[30798]],[[194895,194895],\"mapped\",[30860]],[[194896,194896],\"mapped\",[30924]],[[194897,194897],\"mapped\",[16611]],[[194898,194898],\"mapped\",[153126]],[[194899,194899],\"mapped\",[31062]],[[194900,194900],\"mapped\",[153242]],[[194901,194901],\"mapped\",[153285]],[[194902,194902],\"mapped\",[31119]],[[194903,194903],\"mapped\",[31211]],[[194904,194904],\"mapped\",[16687]],[[194905,194905],\"mapped\",[31296]],[[194906,194906],\"mapped\",[31306]],[[194907,194907],\"mapped\",[31311]],[[194908,194908],\"mapped\",[153980]],[[194909,194910],\"mapped\",[154279]],[[194911,194911],\"disallowed\"],[[194912,194912],\"mapped\",[16898]],[[194913,194913],\"mapped\",[154539]],[[194914,194914],\"mapped\",[31686]],[[194915,194915],\"mapped\",[31689]],[[194916,194916],\"mapped\",[16935]],[[194917,194917],\"mapped\",[154752]],[[194918,194918],\"mapped\",[31954]],[[194919,194919],\"mapped\",[17056]],[[194920,194920],\"mapped\",[31976]],[[194921,194921],\"mapped\",[31971]],[[194922,194922],\"mapped\",[32000]],[[194923,194923],\"mapped\",[155526]],[[194924,194924],\"mapped\",[32099]],[[194925,194925],\"mapped\",[17153]],[[194926,194926],\"mapped\",[32199]],[[194927,194927],\"mapped\",[32258]],[[194928,194928],\"mapped\",[32325]],[[194929,194929],\"mapped\",[17204]],[[194930,194930],\"mapped\",[156200]],[[194931,194931],\"mapped\",[156231]],[[194932,194932],\"mapped\",[17241]],[[194933,194933],\"mapped\",[156377]],[[194934,194934],\"mapped\",[32634]],[[194935,194935],\"mapped\",[156478]],[[194936,194936],\"mapped\",[32661]],[[194937,194937],\"mapped\",[32762]],[[194938,194938],\"mapped\",[32773]],[[194939,194939],\"mapped\",[156890]],[[194940,194940],\"mapped\",[156963]],[[194941,194941],\"mapped\",[32864]],[[194942,194942],\"mapped\",[157096]],[[194943,194943],\"mapped\",[32880]],[[194944,194944],\"mapped\",[144223]],[[194945,194945],\"mapped\",[17365]],[[194946,194946],\"mapped\",[32946]],[[194947,194947],\"mapped\",[33027]],[[194948,194948],\"mapped\",[17419]],[[194949,194949],\"mapped\",[33086]],[[194950,194950],\"mapped\",[23221]],[[194951,194951],\"mapped\",[157607]],[[194952,194952],\"mapped\",[157621]],[[194953,194953],\"mapped\",[144275]],[[194954,194954],\"mapped\",[144284]],[[194955,194955],\"mapped\",[33281]],[[194956,194956],\"mapped\",[33284]],[[194957,194957],\"mapped\",[36766]],[[194958,194958],\"mapped\",[17515]],[[194959,194959],\"mapped\",[33425]],[[194960,194960],\"mapped\",[33419]],[[194961,194961],\"mapped\",[33437]],[[194962,194962],\"mapped\",[21171]],[[194963,194963],\"mapped\",[33457]],[[194964,194964],\"mapped\",[33459]],[[194965,194965],\"mapped\",[33469]],[[194966,194966],\"mapped\",[33510]],[[194967,194967],\"mapped\",[158524]],[[194968,194968],\"mapped\",[33509]],[[194969,194969],\"mapped\",[33565]],[[194970,194970],\"mapped\",[33635]],[[194971,194971],\"mapped\",[33709]],[[194972,194972],\"mapped\",[33571]],[[194973,194973],\"mapped\",[33725]],[[194974,194974],\"mapped\",[33767]],[[194975,194975],\"mapped\",[33879]],[[194976,194976],\"mapped\",[33619]],[[194977,194977],\"mapped\",[33738]],[[194978,194978],\"mapped\",[33740]],[[194979,194979],\"mapped\",[33756]],[[194980,194980],\"mapped\",[158774]],[[194981,194981],\"mapped\",[159083]],[[194982,194982],\"mapped\",[158933]],[[194983,194983],\"mapped\",[17707]],[[194984,194984],\"mapped\",[34033]],[[194985,194985],\"mapped\",[34035]],[[194986,194986],\"mapped\",[34070]],[[194987,194987],\"mapped\",[160714]],[[194988,194988],\"mapped\",[34148]],[[194989,194989],\"mapped\",[159532]],[[194990,194990],\"mapped\",[17757]],[[194991,194991],\"mapped\",[17761]],[[194992,194992],\"mapped\",[159665]],[[194993,194993],\"mapped\",[159954]],[[194994,194994],\"mapped\",[17771]],[[194995,194995],\"mapped\",[34384]],[[194996,194996],\"mapped\",[34396]],[[194997,194997],\"mapped\",[34407]],[[194998,194998],\"mapped\",[34409]],[[194999,194999],\"mapped\",[34473]],[[195000,195000],\"mapped\",[34440]],[[195001,195001],\"mapped\",[34574]],[[195002,195002],\"mapped\",[34530]],[[195003,195003],\"mapped\",[34681]],[[195004,195004],\"mapped\",[34600]],[[195005,195005],\"mapped\",[34667]],[[195006,195006],\"mapped\",[34694]],[[195007,195007],\"disallowed\"],[[195008,195008],\"mapped\",[34785]],[[195009,195009],\"mapped\",[34817]],[[195010,195010],\"mapped\",[17913]],[[195011,195011],\"mapped\",[34912]],[[195012,195012],\"mapped\",[34915]],[[195013,195013],\"mapped\",[161383]],[[195014,195014],\"mapped\",[35031]],[[195015,195015],\"mapped\",[35038]],[[195016,195016],\"mapped\",[17973]],[[195017,195017],\"mapped\",[35066]],[[195018,195018],\"mapped\",[13499]],[[195019,195019],\"mapped\",[161966]],[[195020,195020],\"mapped\",[162150]],[[195021,195021],\"mapped\",[18110]],[[195022,195022],\"mapped\",[18119]],[[195023,195023],\"mapped\",[35488]],[[195024,195024],\"mapped\",[35565]],[[195025,195025],\"mapped\",[35722]],[[195026,195026],\"mapped\",[35925]],[[195027,195027],\"mapped\",[162984]],[[195028,195028],\"mapped\",[36011]],[[195029,195029],\"mapped\",[36033]],[[195030,195030],\"mapped\",[36123]],[[195031,195031],\"mapped\",[36215]],[[195032,195032],\"mapped\",[163631]],[[195033,195033],\"mapped\",[133124]],[[195034,195034],\"mapped\",[36299]],[[195035,195035],\"mapped\",[36284]],[[195036,195036],\"mapped\",[36336]],[[195037,195037],\"mapped\",[133342]],[[195038,195038],\"mapped\",[36564]],[[195039,195039],\"mapped\",[36664]],[[195040,195040],\"mapped\",[165330]],[[195041,195041],\"mapped\",[165357]],[[195042,195042],\"mapped\",[37012]],[[195043,195043],\"mapped\",[37105]],[[195044,195044],\"mapped\",[37137]],[[195045,195045],\"mapped\",[165678]],[[195046,195046],\"mapped\",[37147]],[[195047,195047],\"mapped\",[37432]],[[195048,195048],\"mapped\",[37591]],[[195049,195049],\"mapped\",[37592]],[[195050,195050],\"mapped\",[37500]],[[195051,195051],\"mapped\",[37881]],[[195052,195052],\"mapped\",[37909]],[[195053,195053],\"mapped\",[166906]],[[195054,195054],\"mapped\",[38283]],[[195055,195055],\"mapped\",[18837]],[[195056,195056],\"mapped\",[38327]],[[195057,195057],\"mapped\",[167287]],[[195058,195058],\"mapped\",[18918]],[[195059,195059],\"mapped\",[38595]],[[195060,195060],\"mapped\",[23986]],[[195061,195061],\"mapped\",[38691]],[[195062,195062],\"mapped\",[168261]],[[195063,195063],\"mapped\",[168474]],[[195064,195064],\"mapped\",[19054]],[[195065,195065],\"mapped\",[19062]],[[195066,195066],\"mapped\",[38880]],[[195067,195067],\"mapped\",[168970]],[[195068,195068],\"mapped\",[19122]],[[195069,195069],\"mapped\",[169110]],[[195070,195071],\"mapped\",[38923]],[[195072,195072],\"mapped\",[38953]],[[195073,195073],\"mapped\",[169398]],[[195074,195074],\"mapped\",[39138]],[[195075,195075],\"mapped\",[19251]],[[195076,195076],\"mapped\",[39209]],[[195077,195077],\"mapped\",[39335]],[[195078,195078],\"mapped\",[39362]],[[195079,195079],\"mapped\",[39422]],[[195080,195080],\"mapped\",[19406]],[[195081,195081],\"mapped\",[170800]],[[195082,195082],\"mapped\",[39698]],[[195083,195083],\"mapped\",[40000]],[[195084,195084],\"mapped\",[40189]],[[195085,195085],\"mapped\",[19662]],[[195086,195086],\"mapped\",[19693]],[[195087,195087],\"mapped\",[40295]],[[195088,195088],\"mapped\",[172238]],[[195089,195089],\"mapped\",[19704]],[[195090,195090],\"mapped\",[172293]],[[195091,195091],\"mapped\",[172558]],[[195092,195092],\"mapped\",[172689]],[[195093,195093],\"mapped\",[40635]],[[195094,195094],\"mapped\",[19798]],[[195095,195095],\"mapped\",[40697]],[[195096,195096],\"mapped\",[40702]],[[195097,195097],\"mapped\",[40709]],[[195098,195098],\"mapped\",[40719]],[[195099,195099],\"mapped\",[40726]],[[195100,195100],\"mapped\",[40763]],[[195101,195101],\"mapped\",[173568]],[[195102,196605],\"disallowed\"],[[196606,196607],\"disallowed\"],[[196608,262141],\"disallowed\"],[[262142,262143],\"disallowed\"],[[262144,327677],\"disallowed\"],[[327678,327679],\"disallowed\"],[[327680,393213],\"disallowed\"],[[393214,393215],\"disallowed\"],[[393216,458749],\"disallowed\"],[[458750,458751],\"disallowed\"],[[458752,524285],\"disallowed\"],[[524286,524287],\"disallowed\"],[[524288,589821],\"disallowed\"],[[589822,589823],\"disallowed\"],[[589824,655357],\"disallowed\"],[[655358,655359],\"disallowed\"],[[655360,720893],\"disallowed\"],[[720894,720895],\"disallowed\"],[[720896,786429],\"disallowed\"],[[786430,786431],\"disallowed\"],[[786432,851965],\"disallowed\"],[[851966,851967],\"disallowed\"],[[851968,917501],\"disallowed\"],[[917502,917503],\"disallowed\"],[[917504,917504],\"disallowed\"],[[917505,917505],\"disallowed\"],[[917506,917535],\"disallowed\"],[[917536,917631],\"disallowed\"],[[917632,917759],\"disallowed\"],[[917760,917999],\"ignored\"],[[918000,983037],\"disallowed\"],[[983038,983039],\"disallowed\"],[[983040,1048573],\"disallowed\"],[[1048574,1048575],\"disallowed\"],[[1048576,1114109],\"disallowed\"],[[1114110,1114111],\"disallowed\"]]", "\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n", "\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n", "\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n", "\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n", "\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = /<meta.+?charset=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// html4\n\tif (!res && str) {\n\t\tres = /<meta[\\s]+?http-equiv=(['\"])content-type\\1[\\s]+?content=(['\"])(.+?)\\2/i.exec(str);\n\t\tif (!res) {\n\t\t\tres = /<meta[\\s]+?content=(['\"])(.+?)\\1[\\s]+?http-equiv=(['\"])content-type\\3/i.exec(str);\n\t\t\tif (res) {\n\t\t\t\tres.pop(); // drop last quote\n\t\t\t}\n\t\t}\n\n\t\tif (res) {\n\t\t\tres = /charset=(.*)/i.exec(res.pop());\n\t\t}\n\t}\n\n\t// xml\n\tif (!res && str) {\n\t\tres = /<\\?xml.+?encoding=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// found charset\n\tif (res) {\n\t\tcharset = res.pop();\n\n\t\t// prevent decode issues when sites use incorrect encoding\n\t\t// ref: https://hsivonen.fi/encoding-menu/\n\t\tif (charset === 'gb2312' || charset === 'gbk') {\n\t\t\tcharset = 'gb18030';\n\t\t}\n\t}\n\n\t// turn raw buffers into a single utf-8 buffer\n\treturn convert(buffer, 'UTF-8', charset).toString();\n}\n\n/**\n * Detect a URLSearchParams object\n * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143\n *\n * @param Object obj Object to detect by type or brand\n * @return String\n */\nfunction isURLSearchParams(obj) {\n\t// Duck-typing as a necessary condition.\n\tif (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {\n\t\treturn false;\n\t}\n\n\t// Brand-checking and more duck-typing as optional condition.\n\treturn obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';\n}\n\n/**\n * Check if `obj` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} obj\n * @return {boolean}\n */\nfunction isBlob(obj) {\n\treturn typeof obj === 'object' && typeof obj.arrayBuffer === 'function' && typeof obj.type === 'string' && typeof obj.stream === 'function' && typeof obj.constructor === 'function' && typeof obj.constructor.name === 'string' && /^(Blob|File)$/.test(obj.constructor.name) && /^(Blob|File)$/.test(obj[Symbol.toStringTag]);\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @return Mixed\n */\nfunction clone(instance) {\n\tlet p1, p2;\n\tlet body = instance.body;\n\n\t// don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif (body instanceof Stream && typeof body.getBoundary !== 'function') {\n\t\t// tee instance body\n\t\tp1 = new PassThrough();\n\t\tp2 = new PassThrough();\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].body = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n}\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param Mixed instance Any options.body input\n */\nfunction extractContentType(body) {\n\tif (body === null) {\n\t\t// body is null\n\t\treturn null;\n\t} else if (typeof body === 'string') {\n\t\t// body is string\n\t\treturn 'text/plain;charset=UTF-8';\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t} else if (isBlob(body)) {\n\t\t// body is blob\n\t\treturn body.type || null;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn null;\n\t} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\treturn null;\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\treturn null;\n\t} else if (typeof body.getBoundary === 'function') {\n\t\t// detect form data input from form-data module\n\t\treturn `multipart/form-data;boundary=${body.getBoundary()}`;\n\t} else if (body instanceof Stream) {\n\t\t// body is stream\n\t\t// can't really do much about this\n\t\treturn null;\n\t} else {\n\t\t// Body constructor defaults other things to string\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n}\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param Body instance Instance of Body\n * @return Number? Number of bytes, or null if not possible\n */\nfunction getTotalBytes(instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\treturn 0;\n\t} else if (isBlob(body)) {\n\t\treturn body.size;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn body.length;\n\t} else if (body && typeof body.getLengthSync === 'function') {\n\t\t// detect form data input from form-data module\n\t\tif (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x\n\t\tbody.hasKnownLength && body.hasKnownLength()) {\n\t\t\t// 2.x\n\t\t\treturn body.getLengthSync();\n\t\t}\n\t\treturn null;\n\t} else {\n\t\t// body is stream\n\t\treturn null;\n\t}\n}\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param Body instance Instance of Body\n * @return Void\n */\nfunction writeToStream(dest, instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\tdest.end();\n\t} else if (isBlob(body)) {\n\t\tbody.stream().pipe(dest);\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\tdest.write(body);\n\t\tdest.end();\n\t} else {\n\t\t// body is stream\n\t\tbody.pipe(dest);\n\t}\n}\n\n// expose Promise\nBody.Promise = global.Promise;\n\n/**\n * headers.js\n *\n * Headers class offers convenient helpers\n */\n\nconst invalidTokenRegex = /[^\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]/;\nconst invalidHeaderCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/;\n\nfunction validateName(name) {\n\tname = `${name}`;\n\tif (invalidTokenRegex.test(name) || name === '') {\n\t\tthrow new TypeError(`${name} is not a legal HTTP header name`);\n\t}\n}\n\nfunction validateValue(value) {\n\tvalue = `${value}`;\n\tif (invalidHeaderCharRegex.test(value)) {\n\t\tthrow new TypeError(`${value} is not a legal HTTP header value`);\n\t}\n}\n\n/**\n * Find the key in the map object given a header name.\n *\n * Returns undefined if not found.\n *\n * @param String name Header name\n * @return String|Undefined\n */\nfunction find(map, name) {\n\tname = name.toLowerCase();\n\tfor (const key in map) {\n\t\tif (key.toLowerCase() === name) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst MAP = Symbol('map');\nclass Headers {\n\t/**\n * Headers class\n *\n * @param Object headers Response headers\n * @return Void\n */\n\tconstructor() {\n\t\tlet init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence<sequence<ByteString>>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record<ByteString, ByteString>\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nconst isSameProtocol = function isSameProtocol(destination, original) {\n\tconst orig = new URL$1(original).protocol;\n\tconst dest = new URL$1(destination).protocol;\n\n\treturn orig === dest;\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\tdestroyStream(request.body, error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(req, function (err) {\n\t\t\tif (signal && signal.aborted) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (parseInt(process.version.substring(1)) < 14) {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\treq.on('socket', function (s) {\n\t\t\t\ts.addListener('close', function (hadError) {\n\t\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\t\tconst hasDataListener = s.listenerCount('data') > 0;\n\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && hasDataListener && !hadError && !(signal && signal.aborted)) {\n\t\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', err);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.on('end', function () {\n\t\t\t\t\t// some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted.\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tlet socket;\n\n\trequest.on('socket', function (s) {\n\t\tsocket = s;\n\t});\n\n\trequest.on('response', function (response) {\n\t\tconst headers = response.headers;\n\n\t\tif (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) {\n\t\t\tresponse.once('close', function (hadError) {\n\t\t\t\t// tests for socket presence, as in some situations the\n\t\t\t\t// the 'socket' event is not triggered for the request\n\t\t\t\t// (happens in deno), avoids `TypeError`\n\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\tconst hasDataListener = socket && socket.listenerCount('data') > 0;\n\n\t\t\t\tif (hasDataListener && !hadError) {\n\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\terrorCallback(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction destroyStream(stream, err) {\n\tif (stream.destroy) {\n\t\tstream.destroy(err);\n\t} else {\n\t\t// node < 8\n\t\tstream.emit('error', err);\n\t\tstream.end();\n\t}\n}\n\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n", "const nodeFetch = require('node-fetch')\nconst realFetch = nodeFetch.default || nodeFetch\n\nconst fetch = function (url, options) {\n // Support schemaless URIs on the server for parity with the browser.\n // Ex: //github.com/ -> https://github.com/\n if (/^\\/\\//.test(url)) {\n url = 'https:' + url\n }\n return realFetch.call(this, url, options)\n}\n\nfetch.ponyfill = true\n\nmodule.exports = exports = fetch\nexports.fetch = fetch\nexports.Headers = nodeFetch.Headers\nexports.Request = nodeFetch.Request\nexports.Response = nodeFetch.Response\n\n// Needed for TypeScript consumers without esModuleInterop.\nexports.default = fetch\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFetch = void 0;\nconst react_1 = require(\"react\");\nconst media_typer_1 = __importDefault(require(\"media-typer\"));\nconst content_type_1 = __importDefault(require(\"content-type\"));\nconst useCachedPromise_1 = require(\"./useCachedPromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst cross_fetch_1 = require(\"cross-fetch\");\nfunction isJSON(contentTypeHeader) {\n if (contentTypeHeader) {\n const ct = content_type_1.default.parse(contentTypeHeader);\n const mediaType = media_typer_1.default.parse(ct.type);\n if (mediaType.subtype === \"json\") {\n return true;\n }\n if (mediaType.suffix === \"json\") {\n return true;\n }\n if (mediaType.suffix && /\\bjson\\b/i.test(mediaType.suffix)) {\n return true;\n }\n if (mediaType.subtype && /\\bjson\\b/i.test(mediaType.subtype)) {\n return true;\n }\n }\n return false;\n}\nasync function defaultParsing(response) {\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const contentTypeHeader = response.headers.get(\"content-type\");\n if (contentTypeHeader && isJSON(contentTypeHeader)) {\n return await response.json();\n }\n return await response.text();\n}\n/**\n * Fetch the URL and returns the {@link AsyncState} corresponding to the execution of the fetch. The last value will be kept between command runs.\n *\n * @example\n * ```\n * import { useFetch } from '@raycast/utils';\n *\n * export default function Command() {\n * const { isLoading, data, revalidate } = useFetch('https://api.example');\n *\n * return (\n * <Detail\n * isLoading={isLoading}\n * markdown={data}\n * actions={\n * <ActionPanel>\n * <Action title=\"Reload\" onAction={() => revalidate()} />\n * </ActionPanel>\n * }\n * />\n * );\n * };\n * ```\n */\nfunction useFetch(url, options) {\n const { parseResponse, initialData, execute, keepPreviousData, onError, onData, onWillExecute, ...fetchOptions } = options || {};\n const useCachedPromiseOptions = {\n initialData,\n execute,\n keepPreviousData,\n onError,\n onData,\n onWillExecute,\n };\n const parseResponseRef = (0, useLatest_1.useLatest)(parseResponse || defaultParsing);\n const abortable = (0, react_1.useRef)();\n const fn = (0, react_1.useCallback)(async (url, options) => {\n const res = await (0, cross_fetch_1.fetch)(url, { signal: abortable.current?.signal, ...options });\n return (await parseResponseRef.current(res));\n }, [parseResponseRef]);\n // @ts-expect-error T can't be a Promise so it's actually the same\n return (0, useCachedPromise_1.useCachedPromise)(fn, [url, fetchOptions], { ...useCachedPromiseOptions, abortable });\n}\nexports.useFetch = useFetch;\n", "/**\n * This is not the set of all possible signals.\n *\n * It IS, however, the set of all signals that trigger\n * an exit on either Linux or BSD systems. Linux is a\n * superset of the signal names supported on BSD, and\n * the unknown signals just fail to register, so we can\n * catch that easily enough.\n *\n * Windows signals are a different set, since there are\n * signals that terminate Windows processes, but don't\n * terminate (or don't even exist) on Posix systems.\n *\n * Don't bother with SIGKILL. It's uncatchable, which\n * means that we can't fire any callbacks anyway.\n *\n * If a user does happen to register a handler on a non-\n * fatal signal like SIGWINCH or something, and then\n * exit, it'll end up firing `process.emit('exit')`, so\n * the handler will be fired anyway.\n *\n * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n * artificially, inherently leave the process in a\n * state from which it is not safe to try and enter JS\n * listeners.\n */\nexport const signals: NodeJS.Signals[] = []\nsignals.push('SIGHUP', 'SIGINT', 'SIGTERM')\n\nif (process.platform !== 'win32') {\n signals.push(\n 'SIGALRM',\n 'SIGABRT',\n 'SIGVTALRM',\n 'SIGXCPU',\n 'SIGXFSZ',\n 'SIGUSR2',\n 'SIGTRAP',\n 'SIGSYS',\n 'SIGQUIT',\n 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n )\n}\n\nif (process.platform === 'linux') {\n signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT')\n}\n", "// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nimport { signals } from './signals.js'\nexport { signals }\n\n// just a loosened process type so we can do some evil things\ntype ProcessRE = NodeJS.Process & {\n reallyExit: (code?: number | undefined | null) => any\n emit: (ev: string, ...a: any[]) => any\n}\n\nconst processOk = (process: any): process is ProcessRE =>\n !!process &&\n typeof process === 'object' &&\n typeof process.removeListener === 'function' &&\n typeof process.emit === 'function' &&\n typeof process.reallyExit === 'function' &&\n typeof process.listeners === 'function' &&\n typeof process.kill === 'function' &&\n typeof process.pid === 'number' &&\n typeof process.on === 'function'\n\nconst kExitEmitter = Symbol.for('signal-exit emitter')\nconst global: typeof globalThis & { [kExitEmitter]?: Emitter } = globalThis\nconst ObjectDefineProperty = Object.defineProperty.bind(Object)\n\n/**\n * A function that takes an exit code and signal as arguments\n *\n * In the case of signal exits *only*, a return value of true\n * will indicate that the signal is being handled, and we should\n * not synthetically exit with the signal we received. Regardless\n * of the handler return value, the handler is unloaded when an\n * otherwise fatal signal is received, so you get exactly 1 shot\n * at it, unless you add another onExit handler at that point.\n *\n * In the case of numeric code exits, we may already have committed\n * to exiting the process, for example via a fatal exception or\n * unhandled promise rejection, so it is impossible to stop safely.\n */\nexport type Handler = (\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n) => true | void\ntype ExitEvent = 'afterExit' | 'exit'\ntype Emitted = { [k in ExitEvent]: boolean }\ntype Listeners = { [k in ExitEvent]: Handler[] }\n\n// teeny special purpose ee\nclass Emitter {\n emitted: Emitted = {\n afterExit: false,\n exit: false,\n }\n\n listeners: Listeners = {\n afterExit: [],\n exit: [],\n }\n\n count: number = 0\n id: number = Math.random()\n\n constructor() {\n if (global[kExitEmitter]) {\n return global[kExitEmitter]\n }\n ObjectDefineProperty(global, kExitEmitter, {\n value: this,\n writable: false,\n enumerable: false,\n configurable: false,\n })\n }\n\n on(ev: ExitEvent, fn: Handler) {\n this.listeners[ev].push(fn)\n }\n\n removeListener(ev: ExitEvent, fn: Handler) {\n const list = this.listeners[ev]\n const i = list.indexOf(fn)\n /* c8 ignore start */\n if (i === -1) {\n return\n }\n /* c8 ignore stop */\n if (i === 0 && list.length === 1) {\n list.length = 0\n } else {\n list.splice(i, 1)\n }\n }\n\n emit(\n ev: ExitEvent,\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n ): boolean {\n if (this.emitted[ev]) {\n return false\n }\n this.emitted[ev] = true\n let ret: boolean = false\n for (const fn of this.listeners[ev]) {\n ret = fn(code, signal) === true || ret\n }\n if (ev === 'exit') {\n ret = this.emit('afterExit', code, signal) || ret\n }\n return ret\n }\n}\n\nabstract class SignalExitBase {\n abstract onExit(cb: Handler, opts?: { alwaysLast?: boolean }): () => void\n abstract load(): void\n abstract unload(): void\n}\n\nconst signalExitWrap = <T extends SignalExitBase>(handler: T) => {\n return {\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n return handler.onExit(cb, opts)\n },\n load() {\n return handler.load()\n },\n unload() {\n return handler.unload()\n },\n }\n}\n\nclass SignalExitFallback extends SignalExitBase {\n onExit() {\n return () => {}\n }\n load() {}\n unload() {}\n}\n\nclass SignalExit extends SignalExitBase {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n /* c8 ignore start */\n #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP'\n /* c8 ignore stop */\n #emitter = new Emitter()\n #process: ProcessRE\n #originalProcessEmit: ProcessRE['emit']\n #originalProcessReallyExit: ProcessRE['reallyExit']\n\n #sigListeners: { [k in NodeJS.Signals]?: () => void } = {}\n #loaded: boolean = false\n\n constructor(process: ProcessRE) {\n super()\n this.#process = process\n // { <signal>: <listener fn>, ... }\n this.#sigListeners = {}\n for (const sig of signals) {\n this.#sigListeners[sig] = () => {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n const listeners = this.#process.listeners(sig)\n let { count } = this.#emitter\n // This is a workaround for the fact that signal-exit v3 and signal\n // exit v4 are not aware of each other, and each will attempt to let\n // the other handle it, so neither of them do. To correct this, we\n // detect if we're the only handler *except* for previous versions\n // of signal-exit, and increment by the count of listeners it has\n // created.\n /* c8 ignore start */\n const p = process as unknown as {\n __signal_exit_emitter__?: { count: number }\n }\n if (\n typeof p.__signal_exit_emitter__ === 'object' &&\n typeof p.__signal_exit_emitter__.count === 'number'\n ) {\n count += p.__signal_exit_emitter__.count\n }\n /* c8 ignore stop */\n if (listeners.length === count) {\n this.unload()\n const ret = this.#emitter.emit('exit', null, sig)\n /* c8 ignore start */\n const s = sig === 'SIGHUP' ? this.#hupSig : sig\n if (!ret) process.kill(process.pid, s)\n /* c8 ignore stop */\n }\n }\n }\n\n this.#originalProcessReallyExit = process.reallyExit\n this.#originalProcessEmit = process.emit\n }\n\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return () => {}\n }\n /* c8 ignore stop */\n\n if (this.#loaded === false) {\n this.load()\n }\n\n const ev = opts?.alwaysLast ? 'afterExit' : 'exit'\n this.#emitter.on(ev, cb)\n return () => {\n this.#emitter.removeListener(ev, cb)\n if (\n this.#emitter.listeners['exit'].length === 0 &&\n this.#emitter.listeners['afterExit'].length === 0\n ) {\n this.unload()\n }\n }\n }\n\n load() {\n if (this.#loaded) {\n return\n }\n this.#loaded = true\n\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n this.#emitter.count += 1\n\n for (const sig of signals) {\n try {\n const fn = this.#sigListeners[sig]\n if (fn) this.#process.on(sig, fn)\n } catch (_) {}\n }\n\n this.#process.emit = (ev: string, ...a: any[]) => {\n return this.#processEmit(ev, ...a)\n }\n this.#process.reallyExit = (code?: number | null | undefined) => {\n return this.#processReallyExit(code)\n }\n }\n\n unload() {\n if (!this.#loaded) {\n return\n }\n this.#loaded = false\n\n signals.forEach(sig => {\n const listener = this.#sigListeners[sig]\n /* c8 ignore start */\n if (!listener) {\n throw new Error('Listener not defined for signal: ' + sig)\n }\n /* c8 ignore stop */\n try {\n this.#process.removeListener(sig, listener)\n /* c8 ignore start */\n } catch (_) {}\n /* c8 ignore stop */\n })\n this.#process.emit = this.#originalProcessEmit\n this.#process.reallyExit = this.#originalProcessReallyExit\n this.#emitter.count -= 1\n }\n\n #processReallyExit(code?: number | null | undefined) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return 0\n }\n this.#process.exitCode = code || 0\n /* c8 ignore stop */\n\n this.#emitter.emit('exit', this.#process.exitCode, null)\n return this.#originalProcessReallyExit.call(\n this.#process,\n this.#process.exitCode\n )\n }\n\n #processEmit(ev: string, ...args: any[]): any {\n const og = this.#originalProcessEmit\n if (ev === 'exit' && processOk(this.#process)) {\n if (typeof args[0] === 'number') {\n this.#process.exitCode = args[0]\n /* c8 ignore start */\n }\n /* c8 ignore start */\n const ret = og.call(this.#process, ev, ...args)\n /* c8 ignore start */\n this.#emitter.emit('exit', this.#process.exitCode, null)\n /* c8 ignore stop */\n return ret\n } else {\n return og.call(this.#process, ev, ...args)\n }\n }\n}\n\nconst process = globalThis.process\n// wrap so that we call the method on the actual handler, without\n// exporting it directly.\nexport const {\n /**\n * Called when the process is exiting, whether via signal, explicit\n * exit, or running out of stuff to do.\n *\n * If the global process object is not suitable for instrumentation,\n * then this will be a no-op.\n *\n * Returns a function that may be used to unload signal-exit.\n */\n onExit,\n\n /**\n * Load the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n load,\n\n /**\n * Unload the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n unload,\n} = signalExitWrap(\n processOk(process) ? new SignalExit(process) : new SignalExitFallback()\n)\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultParsing = exports.handleOutput = exports.getSpawnedResult = exports.getSpawnedPromise = void 0;\nconst node_buffer_1 = require(\"node:buffer\");\nconst node_stream_1 = __importDefault(require(\"node:stream\"));\nconst node_util_1 = require(\"node:util\");\nconst signal_exit_1 = require(\"signal-exit\");\nfunction getSpawnedPromise(spawned, { timeout } = {}) {\n const spawnedPromise = new Promise((resolve, reject) => {\n spawned.on(\"exit\", (exitCode, signal) => {\n resolve({ exitCode, signal, timedOut: false });\n });\n spawned.on(\"error\", (error) => {\n reject(error);\n });\n if (spawned.stdin) {\n spawned.stdin.on(\"error\", (error) => {\n reject(error);\n });\n }\n });\n if (timeout === 0 || timeout === undefined) {\n return spawnedPromise;\n }\n let timeoutId;\n const timeoutPromise = new Promise((_resolve, reject) => {\n timeoutId = setTimeout(() => {\n spawned.kill(\"SIGTERM\");\n reject(Object.assign(new Error(\"Timed out\"), { timedOut: true, signal: \"SIGTERM\" }));\n }, timeout);\n });\n const safeSpawnedPromise = spawnedPromise.finally(() => {\n clearTimeout(timeoutId);\n });\n const removeExitHandler = (0, signal_exit_1.onExit)(() => {\n spawned.kill();\n });\n return Promise.race([timeoutPromise, safeSpawnedPromise]).finally(() => removeExitHandler());\n}\nexports.getSpawnedPromise = getSpawnedPromise;\nclass MaxBufferError extends Error {\n constructor() {\n super(\"The output is too big\");\n this.name = \"MaxBufferError\";\n }\n}\nconst streamPipelinePromisified = (0, node_util_1.promisify)(node_stream_1.default.pipeline);\nfunction bufferStream(options) {\n const { encoding } = options;\n const isBuffer = encoding === \"buffer\";\n // @ts-expect-error missing the methods we are adding below\n const stream = new node_stream_1.default.PassThrough({ objectMode: false });\n if (encoding && encoding !== \"buffer\") {\n stream.setEncoding(encoding);\n }\n let length = 0;\n const chunks = [];\n stream.on(\"data\", (chunk) => {\n chunks.push(chunk);\n length += chunk.length;\n });\n stream.getBufferedValue = () => {\n return (isBuffer ? Buffer.concat(chunks, length) : chunks.join(\"\"));\n };\n stream.getBufferedLength = () => length;\n return stream;\n}\nasync function getStream(inputStream, options) {\n const stream = bufferStream(options);\n await new Promise((resolve, reject) => {\n const rejectPromise = (error) => {\n // Don't retrieve an oversized buffer.\n if (error && stream.getBufferedLength() <= node_buffer_1.constants.MAX_LENGTH) {\n error.bufferedData = stream.getBufferedValue();\n }\n reject(error);\n };\n (async () => {\n try {\n await streamPipelinePromisified(inputStream, stream);\n resolve();\n }\n catch (error) {\n rejectPromise(error);\n }\n })();\n stream.on(\"data\", () => {\n // 80mb\n if (stream.getBufferedLength() > 1000 * 1000 * 80) {\n rejectPromise(new MaxBufferError());\n }\n });\n });\n return stream.getBufferedValue();\n}\n// On failure, `result.stdout|stderr` should contain the currently buffered stream\nasync function getBufferedData(stream, streamPromise) {\n stream.destroy();\n try {\n return await streamPromise;\n }\n catch (error) {\n return error.bufferedData;\n }\n}\nasync function getSpawnedResult({ stdout, stderr }, { encoding }, processDone) {\n const stdoutPromise = getStream(stdout, { encoding });\n const stderrPromise = getStream(stderr, { encoding });\n try {\n return await Promise.all([processDone, stdoutPromise, stderrPromise]);\n }\n catch (error) {\n return Promise.all([\n {\n error: error,\n exitCode: null,\n signal: error.signal,\n timedOut: error.timedOut || false,\n },\n getBufferedData(stdout, stdoutPromise),\n getBufferedData(stderr, stderrPromise),\n ]);\n }\n}\nexports.getSpawnedResult = getSpawnedResult;\nfunction stripFinalNewline(input) {\n const LF = typeof input === \"string\" ? \"\\n\" : \"\\n\".charCodeAt(0);\n const CR = typeof input === \"string\" ? \"\\r\" : \"\\r\".charCodeAt(0);\n if (input[input.length - 1] === LF) {\n // @ts-expect-error we are doing some nasty stuff here\n input = input.slice(0, -1);\n }\n if (input[input.length - 1] === CR) {\n // @ts-expect-error we are doing some nasty stuff here\n input = input.slice(0, -1);\n }\n return input;\n}\nfunction handleOutput(options, value) {\n if (options.stripFinalNewline) {\n return stripFinalNewline(value);\n }\n return value;\n}\nexports.handleOutput = handleOutput;\nconst getErrorPrefix = ({ timedOut, timeout, signal, exitCode, }) => {\n if (timedOut) {\n return `timed out after ${timeout} milliseconds`;\n }\n if (signal !== undefined && signal !== null) {\n return `was killed with ${signal}`;\n }\n if (exitCode !== undefined && exitCode !== null) {\n return `failed with exit code ${exitCode}`;\n }\n return \"failed\";\n};\nconst makeError = ({ stdout, stderr, error, signal, exitCode, command, timedOut, options, parentError, }) => {\n const prefix = getErrorPrefix({ timedOut, timeout: options?.timeout, signal, exitCode });\n const execaMessage = `Command ${prefix}: ${command}`;\n const shortMessage = error ? `${execaMessage}\\n${error.message}` : execaMessage;\n const message = [shortMessage, stderr, stdout].filter(Boolean).join(\"\\n\");\n if (error) {\n // @ts-expect-error not on Error\n error.originalMessage = error.message;\n }\n else {\n error = parentError;\n }\n error.message = message;\n // @ts-expect-error not on Error\n error.shortMessage = shortMessage;\n // @ts-expect-error not on Error\n error.command = command;\n // @ts-expect-error not on Error\n error.exitCode = exitCode;\n // @ts-expect-error not on Error\n error.signal = signal;\n // @ts-expect-error not on Error\n error.stdout = stdout;\n // @ts-expect-error not on Error\n error.stderr = stderr;\n if (\"bufferedData\" in error) {\n delete error[\"bufferedData\"];\n }\n return error;\n};\nfunction defaultParsing({ stdout, stderr, error, exitCode, signal, timedOut, command, options, parentError, }) {\n if (error || exitCode !== 0 || signal !== null) {\n const returnedError = makeError({\n error,\n exitCode,\n signal,\n stdout,\n stderr,\n command,\n timedOut,\n options,\n parentError,\n });\n throw returnedError;\n }\n return stdout;\n}\nexports.defaultParsing = defaultParsing;\n", "\"use strict\";\n/*\n * Inspired by Execa\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useExec = void 0;\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst react_1 = require(\"react\");\nconst useCachedPromise_1 = require(\"./useCachedPromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst exec_utils_1 = require(\"./exec-utils\");\nconst SPACES_REGEXP = / +/g;\nfunction parseCommand(command, args) {\n if (args) {\n return [command, ...args];\n }\n const tokens = [];\n for (const token of command.trim().split(SPACES_REGEXP)) {\n // Allow spaces to be escaped by a backslash if not meant as a delimiter\n const previousToken = tokens[tokens.length - 1];\n if (previousToken && previousToken.endsWith(\"\\\\\")) {\n // Merge previous token with current one\n tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`;\n }\n else {\n tokens.push(token);\n }\n }\n return tokens;\n}\nfunction useExec(command, optionsOrArgs, options) {\n const { parseOutput, input, onData, onWillExecute, initialData, execute, keepPreviousData, onError, ...execOptions } = Array.isArray(optionsOrArgs) ? options || {} : optionsOrArgs || {};\n const useCachedPromiseOptions = {\n initialData,\n execute,\n keepPreviousData,\n onError,\n onData,\n onWillExecute,\n };\n const abortable = (0, react_1.useRef)();\n const parseOutputRef = (0, useLatest_1.useLatest)(parseOutput || exec_utils_1.defaultParsing);\n const fn = (0, react_1.useCallback)(async (_command, _args, _options, input) => {\n const [file, ...args] = parseCommand(_command, _args);\n const command = [file, ...args].join(\" \");\n const options = {\n stripFinalNewline: true,\n ..._options,\n timeout: _options?.timeout || 10000,\n signal: abortable.current?.signal,\n encoding: _options?.encoding === null ? \"buffer\" : _options?.encoding || \"utf8\",\n env: { PATH: \"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\", ...process.env, ..._options?.env },\n };\n const spawned = node_child_process_1.default.spawn(file, args, options);\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned, options);\n if (input) {\n spawned.stdin.end(input);\n }\n const [{ error, exitCode, signal, timedOut }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, options, spawnedPromise);\n const stdout = (0, exec_utils_1.handleOutput)(options, stdoutResult);\n const stderr = (0, exec_utils_1.handleOutput)(options, stderrResult);\n return parseOutputRef.current({\n // @ts-expect-error too many generics, I give up\n stdout,\n // @ts-expect-error too many generics, I give up\n stderr,\n error,\n exitCode,\n signal,\n timedOut,\n command,\n options,\n parentError: new Error(),\n });\n }, [parseOutputRef]);\n // @ts-expect-error T can't be a Promise so it's actually the same\n return (0, useCachedPromise_1.useCachedPromise)(fn, [command, Array.isArray(optionsOrArgs) ? optionsOrArgs : [], execOptions, input], {\n ...useCachedPromiseOptions,\n abortable,\n });\n}\nexports.useExec = useExec;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useSQL = void 0;\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\nconst api_1 = require(\"@raycast/api\");\nconst node_fs_1 = require(\"node:fs\");\nconst promises_1 = require(\"node:fs/promises\");\nconst node_os_1 = __importDefault(require(\"node:os\"));\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst node_path_1 = __importDefault(require(\"node:path\"));\nconst object_hash_1 = __importDefault(require(\"object-hash\"));\nconst react_1 = require(\"react\");\nconst usePromise_1 = require(\"./usePromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst exec_utils_1 = require(\"./exec-utils\");\nconst handle_error_toast_action_1 = require(\"./handle-error-toast-action\");\n/**\n * Executes a query on a local SQL database and returns the {@link AsyncState} corresponding to the query of the command. The last value will be kept between command runs.\n *\n * @example\n * ```\n * import { useSQL } from \"@raycast/utils\";\n * import { resolve } from \"path\";\n * import { homedir } from \"os\";\n *\n * const NOTES_DB = resolve(homedir(), \"Library/Group Containers/group.com.apple.notes/NoteStore.sqlite\");\n * const notesQuery = `SELECT id, title FROM ...`;\n * type NoteItem = {\n * id: string;\n * title: string;\n * };\n *\n * export default function Command() {\n * const { isLoading, data, permissionView } = useSQL<NoteItem>(NOTES_DB, notesQuery);\n *\n * if (permissionView) {\n * return permissionView;\n * }\n *\n * return (\n * <List isLoading={isLoading}>\n * {(data || []).map((item) => (\n * <List.Item key={item.id} title={item.title} />\n * ))}\n * </List>\n * );\n * };\n * ```\n */\nfunction useSQL(databasePath, query, options) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { permissionPriming, ...usePromiseOptions } = options || {};\n const [permissionView, setPermissionView] = (0, react_1.useState)();\n const latestOptions = (0, useLatest_1.useLatest)(options || {});\n const abortable = (0, react_1.useRef)();\n const handleError = (0, react_1.useCallback)((_error) => {\n console.error(_error);\n const error = _error instanceof Error && _error.message.includes(\"authorization denied\")\n ? new PermissionError(\"You do not have permission to access the database.\")\n : _error;\n if (isPermissionError(error)) {\n setPermissionView((0, jsx_runtime_1.jsx)(PermissionErrorScreen, { priming: latestOptions.current.permissionPriming }));\n }\n else {\n if (latestOptions.current.onError) {\n latestOptions.current.onError(error);\n }\n else {\n console.error(error);\n if (api_1.environment.launchType !== api_1.LaunchType.Background) {\n (0, api_1.showToast)({\n style: api_1.Toast.Style.Failure,\n title: \"Cannot query the data\",\n message: error.message,\n primaryAction: (0, handle_error_toast_action_1.handleErrorToastAction)(error),\n });\n }\n }\n }\n }, [latestOptions]);\n const fn = (0, react_1.useMemo)(() => {\n if (!(0, node_fs_1.existsSync)(databasePath)) {\n throw new Error(\"The database does not exist\");\n }\n let workaroundCopiedDb = undefined;\n return async (databasePath, query) => {\n const abortSignal = abortable.current?.signal;\n const spawned = node_child_process_1.default.spawn(\"sqlite3\", [\"--json\", \"--readonly\", databasePath, query], {\n signal: abortSignal,\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned);\n let [{ error, exitCode, signal }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf-8\" }, spawnedPromise);\n checkAborted(abortSignal);\n if (stderrResult.match(\"(5)\") || stderrResult.match(\"(14)\")) {\n // That means that the DB is busy because of another app is locking it\n // This happens when Chrome or Arc is opened: they lock the History db.\n // As an ugly workaround, we duplicate the file and read that instead\n // (with vfs unix - none to just not care about locks)\n if (!workaroundCopiedDb) {\n const tempFolder = node_path_1.default.join(node_os_1.default.tmpdir(), \"useSQL\", (0, object_hash_1.default)(databasePath));\n await (0, promises_1.mkdir)(tempFolder, { recursive: true });\n checkAborted(abortSignal);\n workaroundCopiedDb = node_path_1.default.join(tempFolder, \"db.db\");\n await (0, promises_1.copyFile)(databasePath, workaroundCopiedDb);\n // needed for certain db\n await (0, promises_1.writeFile)(workaroundCopiedDb + \"-shm\", \"\");\n await (0, promises_1.writeFile)(workaroundCopiedDb + \"-wal\", \"\");\n checkAborted(abortSignal);\n }\n const spawned = node_child_process_1.default.spawn(\"sqlite3\", [\"--json\", \"--readonly\", \"--vfs\", \"unix-none\", workaroundCopiedDb, query], {\n signal: abortSignal,\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned);\n [{ error, exitCode, signal }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf-8\" }, spawnedPromise);\n checkAborted(abortSignal);\n }\n if (error || exitCode !== 0 || signal !== null) {\n throw new Error(stderrResult);\n }\n return JSON.parse(stdoutResult.trim() || \"[]\");\n };\n }, [databasePath]);\n return {\n ...(0, usePromise_1.usePromise)(fn, [databasePath, query], { ...usePromiseOptions, onError: handleError }),\n permissionView,\n };\n}\nexports.useSQL = useSQL;\nclass PermissionError extends Error {\n constructor(message) {\n super(message);\n this.name = \"PermissionError\";\n }\n}\nfunction isPermissionError(error) {\n return error instanceof Error && error.name === \"PermissionError\";\n}\nconst macosVenturaAndLater = parseInt(node_os_1.default.release().split(\".\")[0]) >= 22;\nconst preferencesString = macosVenturaAndLater ? \"Settings\" : \"Preferences\";\nfunction PermissionErrorScreen(props) {\n const action = macosVenturaAndLater\n ? {\n title: \"Open System Settings -> Privacy\",\n target: \"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles\",\n }\n : {\n title: \"Open System Preferences -> Security\",\n target: \"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles\",\n };\n if (api_1.environment.commandMode === \"menu-bar\") {\n return ((0, jsx_runtime_1.jsxs)(api_1.MenuBarExtra, { icon: api_1.Icon.Warning, title: api_1.environment.commandName, children: [(0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: \"Raycast needs full disk access\", tooltip: `You can revert this access in ${preferencesString} whenever you want` }), props.priming ? ((0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: props.priming, tooltip: `You can revert this access in ${preferencesString} whenever you want` })) : null, (0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Separator, {}), (0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: action.title, onAction: () => (0, api_1.open)(action.target) })] }));\n }\n return ((0, jsx_runtime_1.jsx)(api_1.List, { children: (0, jsx_runtime_1.jsx)(api_1.List.EmptyView, { icon: {\n source: {\n light: \"https://raycast.com/uploads/extensions-utils-security-permissions-light.png\",\n dark: \"https://raycast.com/uploads/extensions-utils-security-permissions-dark.png\",\n },\n }, title: \"Raycast needs full disk access.\", description: `${props.priming ? props.priming + \"\\n\" : \"\"}You can revert this access in ${preferencesString} whenever you want.`, actions: (0, jsx_runtime_1.jsx)(api_1.ActionPanel, { children: (0, jsx_runtime_1.jsx)(api_1.Action.Open, { ...action }) }) }) }));\n}\nfunction checkAborted(signal) {\n if (signal?.aborted) {\n const error = new Error(\"aborted\");\n error.name = \"AbortError\";\n throw error;\n }\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useForm = exports.FormValidation = void 0;\nconst react_1 = require(\"react\");\nconst useLatest_1 = require(\"./useLatest\");\n/**\n * Shorthands for common validation cases\n */\nvar FormValidation;\n(function (FormValidation) {\n /** Show an error when the value of the item is empty */\n FormValidation[\"Required\"] = \"required\";\n})(FormValidation = exports.FormValidation || (exports.FormValidation = {}));\nfunction validationError(validation, value) {\n if (validation) {\n if (typeof validation === \"function\") {\n return validation(value);\n }\n else if (validation === FormValidation.Required) {\n let valueIsValid = typeof value !== \"undefined\" && value !== null;\n if (valueIsValid) {\n switch (typeof value) {\n case \"string\":\n valueIsValid = value.length > 0;\n break;\n case \"object\":\n if (Array.isArray(value)) {\n valueIsValid = value.length > 0;\n }\n else if (value instanceof Date) {\n valueIsValid = value.getTime() > 0;\n }\n break;\n default:\n break;\n }\n }\n if (!valueIsValid) {\n return \"The item is required\";\n }\n }\n }\n}\n/**\n * Hook that provides a high-level interface to work with Forms, and more particularly, with Form validations. It incorporates all the good practices to provide a great User Experience for your Forms.\n *\n * @returns an object which contains the necessary methods and props to provide a good User Experience in your Form.\n *\n * @example\n * ```\n * import { Action, ActionPanel, Form, showToast, Toast } from \"@raycast/api\";\n * import { useForm, FormValidation } from \"@raycast/utils\";\n *\n * interface SignUpFormValues {\n * nickname: string;\n * password: string;\n * }\n *\n * export default function Command() {\n * const { handleSubmit, itemProps } = useForm<SignUpFormValues>({\n * onSubmit(values) {\n * showToast(Toast.Style.Success, \"Yay!\", `${values.nickname} account created`);\n * },\n * validation: {\n * nickname: FormValidation.Required,\n * password: (value) => {\n * if (value && value.length < 8) {\n * return \"Password must be at least 8 symbols\";\n * } else if (!value) {\n * return \"The item is required\";\n * }\n * },\n * },\n * });\n *\n * return (\n * <Form\n * actions={\n * <ActionPanel>\n * <Action.SubmitForm title=\"Submit\" onSubmit={handleSubmit} />\n * </ActionPanel>\n * }\n * >\n * <Form.TextField title=\"Nickname\" placeholder=\"Enter your nickname\" {...itemProps.nickname} />\n * <Form.PasswordField\n * title=\"Password\"\n * placeholder=\"Enter password at least 8 characters long\"\n * {...itemProps.password}\n * />\n * </Form>\n * );\n * }\n * ```\n */\nfunction useForm(props) {\n const { onSubmit: _onSubmit, validation, initialValues = {} } = props;\n // @ts-expect-error it's fine if we don't specify all the values\n const [values, setValues] = (0, react_1.useState)(initialValues);\n const [errors, setErrors] = (0, react_1.useState)({});\n const refs = (0, react_1.useRef)({});\n const latestValidation = (0, useLatest_1.useLatest)(validation || {});\n const latestOnSubmit = (0, useLatest_1.useLatest)(_onSubmit);\n const focus = (0, react_1.useCallback)((id) => {\n refs.current[id]?.focus();\n }, [refs]);\n const handleSubmit = (0, react_1.useCallback)(async (values) => {\n let validationErrors = false;\n for (const [id, validation] of Object.entries(latestValidation.current)) {\n const error = validationError(validation, values[id]);\n if (error) {\n if (!validationErrors) {\n validationErrors = {};\n // we focus the first item that has an error\n focus(id);\n }\n validationErrors[id] = error;\n }\n }\n if (validationErrors) {\n setErrors(validationErrors);\n return false;\n }\n const result = await latestOnSubmit.current(values);\n return typeof result === \"boolean\" ? result : true;\n }, [latestValidation, latestOnSubmit, focus]);\n const setValidationError = (0, react_1.useCallback)((id, error) => {\n setErrors((errors) => ({ ...errors, [id]: error }));\n }, [setErrors]);\n const setValue = (0, react_1.useCallback)(function (id, value) {\n // @ts-expect-error TS is always confused about SetStateAction, but it's fine here\n setValues((values) => ({ ...values, [id]: typeof value === \"function\" ? value(values[id]) : value }));\n }, [setValues]);\n const itemProps = (0, react_1.useMemo)(() => {\n // we have to use a proxy because we don't actually have any object to iterate through\n // so instead we dynamically create the props when required\n return new Proxy(\n // @ts-expect-error the whole point of a proxy...\n {}, {\n get(target, id) {\n const validation = latestValidation.current[id];\n const value = values[id];\n return {\n onChange(value) {\n if (errors[id]) {\n const error = validationError(validation, value);\n if (!error) {\n setValidationError(id, undefined);\n }\n }\n setValue(id, value);\n },\n onBlur(event) {\n const error = validationError(validation, event.target.value);\n if (error) {\n setValidationError(id, error);\n }\n },\n error: errors[id],\n id,\n // we shouldn't return `undefined` otherwise it will be an uncontrolled component\n value: typeof value === \"undefined\" ? null : value,\n ref: (instance) => {\n refs.current[id] = instance;\n },\n };\n },\n });\n }, [errors, latestValidation, setValidationError, values, refs, setValue]);\n const reset = (0, react_1.useCallback)((initialValues = {}) => {\n // @ts-expect-error it's fine if we don't specify all the values\n setValues(initialValues);\n setErrors({});\n }, [setValues, setErrors]);\n return { handleSubmit, setValidationError, setValue, values, itemProps, focus, reset };\n}\nexports.useForm = useForm;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useAI = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst usePromise_1 = require(\"./usePromise\");\n/**\n * Stream a prompt completion.\n *\n * @example\n * ```typescript\n * import { Detail, LaunchProps } from \"@raycast/api\";\n * import { use AI } from \"@raycast/utils\";\n *\n * export default function Command(props: LaunchProps<{ arguments: { prompt: string } }>) {\n * const { isLoading, data } = useAI(props.arguments.prompt);\n *\n * return <Detail isLoading={isLoading} markdown={data} />;\n * }\n * ```\n */\nfunction useAI(prompt, options = {}) {\n const { creativity, stream, model, ...usePromiseOptions } = options;\n const [data, setData] = (0, react_1.useState)(\"\");\n const abortable = (0, react_1.useRef)();\n const { isLoading, error, revalidate } = (0, usePromise_1.usePromise)(async (prompt, creativity, shouldStream) => {\n setData(\"\");\n const stream = api_1.AI.ask(prompt, { creativity, model, signal: abortable.current?.signal });\n if (shouldStream === false) {\n setData(await stream);\n }\n else {\n stream.on(\"data\", (data) => {\n setData((x) => x + data);\n });\n await stream;\n }\n }, [prompt, creativity, stream], { ...usePromiseOptions, abortable });\n return { isLoading, data, error, revalidate };\n}\nexports.useAI = useAI;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFrecencySorting = void 0;\nconst react_1 = require(\"react\");\nconst useLatest_1 = require(\"./useLatest\");\nconst useCachedState_1 = require(\"./useCachedState\");\nconst HALF_LIFE_DAYS = 10;\nconst MS_PER_DAY = 24 * 60 * 60 * 1000;\nconst DECAY_RATE_CONSTANT = Math.log(2) / (HALF_LIFE_DAYS * MS_PER_DAY);\nconst VISIT_TYPE_POINTS = {\n Default: 100,\n Embed: 0,\n Bookmark: 140,\n};\nfunction getNewFrecency(item) {\n const now = Date.now();\n const lastVisited = item ? item.lastVisited : 0;\n const frecency = item ? item.frecency : 0;\n const visitAgeInDays = (now - lastVisited) / MS_PER_DAY;\n const currentVisitValue = VISIT_TYPE_POINTS.Default * Math.exp(-DECAY_RATE_CONSTANT * visitAgeInDays);\n const totalVisitValue = frecency + currentVisitValue;\n return {\n lastVisited: now,\n frecency: totalVisitValue,\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst defaultKey = (item) => {\n if (process.env.NODE_ENV !== \"production\" &&\n (typeof item !== \"object\" || !item || !(\"id\" in item) || typeof item.id != \"string\")) {\n throw new Error(\"Specify a key function or make sure your items have an 'id' property\");\n }\n return item.id;\n};\nfunction useFrecencySorting(data, options) {\n const keyRef = (0, useLatest_1.useLatest)(options?.key || defaultKey);\n const sortUnvisitedRef = (0, useLatest_1.useLatest)(options?.sortUnvisited);\n const [storedFrecencies, setStoredFrecencies] = (0, useCachedState_1.useCachedState)(`raycast_frecency_${options?.namespace}`, {});\n const visitItem = (0, react_1.useCallback)(async function updateFrecency(item) {\n const itemKey = keyRef.current(item);\n setStoredFrecencies((storedFrecencies) => {\n const frecency = storedFrecencies[itemKey];\n const newFrecency = getNewFrecency(frecency);\n return {\n ...storedFrecencies,\n [itemKey]: newFrecency,\n };\n });\n }, [keyRef, setStoredFrecencies]);\n const resetRanking = (0, react_1.useCallback)(async function removeFrecency(item) {\n const itemKey = keyRef.current(item);\n setStoredFrecencies((storedFrecencies) => {\n const newFrencencies = { ...storedFrecencies };\n delete newFrencencies[itemKey];\n return newFrencencies;\n });\n }, [keyRef, setStoredFrecencies]);\n const sortedData = (0, react_1.useMemo)(() => {\n if (!data) {\n return [];\n }\n return data.sort((a, b) => {\n const frecencyA = storedFrecencies[keyRef.current(a)];\n const frecencyB = storedFrecencies[keyRef.current(b)];\n // If a has a frecency, but b doesn't, a should come first\n if (frecencyA && !frecencyB) {\n return -1;\n }\n // If b has a frecency, but a doesn't, b should come first\n if (!frecencyA && frecencyB) {\n return 1;\n }\n // If both frecencies are defined,put the one with the higher frecency first\n if (frecencyA && frecencyB) {\n return frecencyB.frecency - frecencyA.frecency;\n }\n // If both frecencies are undefined, keep the original order\n return sortUnvisitedRef.current ? sortUnvisitedRef.current(a, b) : 0;\n });\n }, [storedFrecencies, data, keyRef, sortUnvisitedRef]);\n return { data: sortedData, visitItem, resetRanking };\n}\nexports.useFrecencySorting = useFrecencySorting;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.slightlyLighterColor = exports.slightlyDarkerColor = void 0;\nfunction hexToRGB(hex) {\n let r = 0;\n let g = 0;\n let b = 0;\n // 3 digits\n if (hex.length === 4) {\n r = parseInt(`${hex[1]}${hex[1]}`, 16);\n g = parseInt(`${hex[2]}${hex[2]}`, 16);\n b = parseInt(`${hex[3]}${hex[3]}`, 16);\n // 6 digits\n }\n else if (hex.length === 7) {\n r = parseInt(`${hex[1]}${hex[2]}`, 16);\n g = parseInt(`${hex[3]}${hex[4]}`, 16);\n b = parseInt(`${hex[5]}${hex[6]}`, 16);\n }\n else {\n throw new Error(`Malformed hex color: ${hex}`);\n }\n return { r, g, b };\n}\nfunction rgbToHex({ r, g, b }) {\n let rString = r.toString(16);\n let gString = g.toString(16);\n let bString = b.toString(16);\n if (rString.length === 1) {\n rString = `0${rString}`;\n }\n if (gString.length === 1) {\n gString = `0${gString}`;\n }\n if (bString.length === 1) {\n bString = `0${bString}`;\n }\n return `#${rString}${gString}${bString}`;\n}\nfunction rgbToHSL({ r, g, b }) {\n // Make r, g, and b fractions of 1\n r /= 255;\n g /= 255;\n b /= 255;\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b);\n const cmax = Math.max(r, g, b);\n const delta = cmax - cmin;\n let h = 0;\n let s = 0;\n let l = 0;\n // Calculate hue\n // No difference\n if (delta === 0) {\n h = 0;\n }\n // Red is max\n else if (cmax === r) {\n h = ((g - b) / delta) % 6;\n }\n // Green is max\n else if (cmax === g) {\n h = (b - r) / delta + 2;\n }\n // Blue is max\n else {\n h = (r - g) / delta + 4;\n }\n h = Math.round(h * 60);\n // Make negative hues positive behind 360\u00B0\n if (h < 0) {\n h += 360;\n }\n // Calculate lightness\n l = (cmax + cmin) / 2;\n // Calculate saturation\n s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1);\n l = +(l * 100).toFixed(1);\n return { h, s, l };\n}\nfunction hslToRGB({ h, s, l }) {\n // Must be fractions of 1\n s /= 100;\n l /= 100;\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = l - c / 2;\n let r = 0;\n let g = 0;\n let b = 0;\n if (h >= 0 && h < 60) {\n r = c;\n g = x;\n b = 0;\n }\n else if (h >= 60 && h < 120) {\n r = x;\n g = c;\n b = 0;\n }\n else if (h >= 120 && h < 180) {\n r = 0;\n g = c;\n b = x;\n }\n else if (h >= 180 && h < 240) {\n r = 0;\n g = x;\n b = c;\n }\n else if (h >= 240 && h < 300) {\n r = x;\n g = 0;\n b = c;\n }\n else if (h >= 300 && h < 360) {\n r = c;\n g = 0;\n b = x;\n }\n r = Math.round((r + m) * 255);\n g = Math.round((g + m) * 255);\n b = Math.round((b + m) * 255);\n return { r, g, b };\n}\nfunction hexToHSL(hex) {\n return rgbToHSL(hexToRGB(hex));\n}\nfunction hslToHex(hsl) {\n return rgbToHex(hslToRGB(hsl));\n}\nfunction clamp(value, min, max) {\n return min < max ? (value < min ? min : value > max ? max : value) : value < max ? max : value > min ? min : value;\n}\nconst offset = 12;\nfunction slightlyDarkerColor(hex) {\n const hsl = hexToHSL(hex);\n return hslToHex({\n h: hsl.h,\n s: hsl.s,\n l: clamp(hsl.l - offset, 0, 100),\n });\n}\nexports.slightlyDarkerColor = slightlyDarkerColor;\nfunction slightlyLighterColor(hex) {\n const hsl = hexToHSL(hex);\n return hslToHex({\n h: hsl.h,\n s: hsl.s,\n l: clamp(hsl.l + offset, 0, 100),\n });\n}\nexports.slightlyLighterColor = slightlyLighterColor;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAvatarIcon = void 0;\nconst color_1 = require(\"./color\");\nfunction getWholeCharAndI(str, i) {\n const code = str.charCodeAt(i);\n if (Number.isNaN(code)) {\n return [\"\", i];\n }\n if (code < 0xd800 || code > 0xdfff) {\n return [str.charAt(i), i]; // Normal character, keeping 'i' the same\n }\n // High surrogate (could change last hex to 0xDB7F to treat high private\n // surrogates as single characters)\n if (0xd800 <= code && code <= 0xdbff) {\n if (str.length <= i + 1) {\n throw new Error(\"High surrogate without following low surrogate\");\n }\n const next = str.charCodeAt(i + 1);\n if (0xdc00 > next || next > 0xdfff) {\n throw new Error(\"High surrogate without following low surrogate\");\n }\n return [str.charAt(i) + str.charAt(i + 1), i + 1];\n }\n // Low surrogate (0xDC00 <= code && code <= 0xDFFF)\n if (i === 0) {\n throw new Error(\"Low surrogate without preceding high surrogate\");\n }\n const prev = str.charCodeAt(i - 1);\n // (could change last hex to 0xDB7F to treat high private surrogates\n // as single characters)\n if (0xd800 > prev || prev > 0xdbff) {\n throw new Error(\"Low surrogate without preceding high surrogate\");\n }\n // Return the next character instead (and increment)\n return [str.charAt(i + 1), i + 1];\n}\nconst avatarColorSet = [\n \"#DC829A\",\n \"#D64854\",\n \"#D47600\",\n \"#D36CDD\",\n \"#52A9E4\",\n \"#7871E8\",\n \"#70920F\",\n \"#43B93A\",\n \"#EB6B3E\",\n \"#26B795\",\n \"#D85A9B\",\n \"#A067DC\",\n \"#BD9500\",\n \"#5385D9\", // Blue\n];\n/**\n * Icon to represent an avatar when you don't have one. The generated avatar\n * will be generated from the initials of the name and have a colorful but consistent background.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getAvatarIcon('Mathieu Dutour')} title=\"Project\" />\n * ```\n */\nfunction getAvatarIcon(name, options) {\n const words = name.trim().split(\" \");\n let initials;\n if (words.length == 1 && getWholeCharAndI(words[0], 0)[0]) {\n initials = getWholeCharAndI(words[0], 0)[0];\n }\n else if (words.length > 1) {\n const firstWordFirstLetter = getWholeCharAndI(words[0], 0)[0] || \"\";\n const lastWordFirstLetter = getWholeCharAndI(words[words.length - 1], 0)[0] ?? \"\";\n initials = firstWordFirstLetter + lastWordFirstLetter;\n }\n else {\n initials = \"\";\n }\n let backgroundColor;\n if (options?.background) {\n backgroundColor = options?.background;\n }\n else {\n let initialsCharIndex = 0;\n let [char, i] = getWholeCharAndI(initials, 0);\n while (char) {\n initialsCharIndex += char.charCodeAt(0);\n [char, i] = getWholeCharAndI(initials, i + 1);\n }\n const colorIndex = initialsCharIndex % avatarColorSet.length;\n backgroundColor = avatarColorSet[colorIndex];\n }\n const padding = 0;\n const radius = 50 - padding;\n const svg = `<svg width=\"100px\" height=\"100px\">\n ${options?.gradient !== false\n ? `<defs>\n <linearGradient id=\"Gradient\" x1=\"0.25\" x2=\"0.75\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" stop-color=\"${(0, color_1.slightlyLighterColor)(backgroundColor)}\"/>\n <stop offset=\"50%\" stop-color=\"${backgroundColor}\"/>\n <stop offset=\"100%\" stop-color=\"${(0, color_1.slightlyDarkerColor)(backgroundColor)}\"/>\n </linearGradient>\n </defs>`\n : \"\"}\n <circle cx=\"50\" cy=\"50\" r=\"${radius}\" fill=\"${options?.gradient !== false ? \"url(#Gradient)\" : backgroundColor}\" />\n ${initials\n ? `<text x=\"50\" y=\"80\" font-size=\"${radius - 1}\" font-family=\"Inter, sans-serif\" text-anchor=\"middle\" fill=\"white\">${initials.toUpperCase()}</text>`\n : \"\"}\n </svg>\n `.replaceAll(\"\\n\", \"\");\n return `data:image/svg+xml,${svg}`;\n}\nexports.getAvatarIcon = getAvatarIcon;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFavicon = void 0;\nconst api_1 = require(\"@raycast/api\");\nconst url_1 = require(\"url\");\n/**\n * Icon showing the favicon of a website.\n *\n * A favicon (favorite icon) is a tiny icon included along with a website, which is displayed in places like the browser's address bar, page tabs, and bookmarks menu.\n *\n * @param url The URL of the website to represent.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getFavicon(\"https://raycast.com\")} title=\"Raycast Website\" />\n * ```\n */\nfunction getFavicon(url, options) {\n try {\n const urlObj = typeof url === \"string\" ? new url_1.URL(url) : url;\n const hostname = urlObj.hostname;\n return {\n source: `https://www.google.com/s2/favicons?sz=${options?.size ?? 64}&domain=${hostname}`,\n fallback: options?.fallback ?? api_1.Icon.Link,\n mask: options?.mask,\n };\n }\n catch (e) {\n console.error(e);\n return api_1.Icon.Link;\n }\n}\nexports.getFavicon = getFavicon;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getProgressIcon = void 0;\nconst api_1 = require(\"@raycast/api\");\nfunction polarToCartesian(centerX, centerY, radius, angleInDegrees) {\n const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180.0;\n return {\n x: centerX + radius * Math.cos(angleInRadians),\n y: centerY + radius * Math.sin(angleInRadians),\n };\n}\nfunction describeArc(x, y, radius, startAngle, endAngle) {\n const start = polarToCartesian(x, y, radius, endAngle);\n const end = polarToCartesian(x, y, radius, startAngle);\n const largeArcFlag = endAngle - startAngle <= 180 ? \"0\" : \"1\";\n const d = [\"M\", start.x, start.y, \"A\", radius, radius, 0, largeArcFlag, 0, end.x, end.y].join(\" \");\n return d;\n}\n/**\n * Icon to represent the progress of _something_.\n *\n * @param progress Number between 0 and 1.\n * @param color Hex color (default `\"#FF6363\"`) or Color.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getProgressIcon(0.1)} title=\"Project\" />\n * ```\n */\nfunction getProgressIcon(progress, color = api_1.Color.Red, options) {\n const background = options?.background || (api_1.environment.appearance === \"light\" ? \"black\" : \"white\");\n const backgroundOpacity = options?.backgroundOpacity || 0.1;\n const stroke = 10;\n const padding = 5;\n const radius = 50 - padding - stroke / 2;\n const svg = `<svg width=\"100px\" height=\"100px\">\n <circle cx=\"50\" cy=\"50\" r=\"${radius}\" stroke-width=\"${stroke}\" stroke=\"${progress < 1 ? background : color}\" opacity=\"${progress < 1 ? backgroundOpacity : \"1\"}\" fill=\"none\" />\n ${progress > 0 && progress < 1\n ? `<path d=\"${describeArc(50, 50, radius, 0, progress * 360)}\" stroke=\"${color}\" stroke-width=\"${stroke}\" fill=\"none\" />`\n : \"\"}\n </svg>\n `.replaceAll(\"\\n\", \"\");\n return `data:image/svg+xml,${svg}`;\n}\nexports.getProgressIcon = getProgressIcon;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./avatar\"), exports);\n__exportStar(require(\"./favicon\"), exports);\n__exportStar(require(\"./progress\"), exports);\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.runAppleScript = void 0;\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst exec_utils_1 = require(\"./exec-utils\");\nasync function runAppleScript(script, optionsOrArgs, options) {\n const { humanReadableOutput, language, timeout, ...execOptions } = Array.isArray(optionsOrArgs)\n ? options || {}\n : optionsOrArgs || {};\n const outputArguments = humanReadableOutput !== false ? [] : [\"-ss\"];\n if (language === \"JavaScript\") {\n outputArguments.push(\"-l\", \"JavaScript\");\n }\n if (Array.isArray(optionsOrArgs)) {\n outputArguments.push(\"-\", ...optionsOrArgs);\n }\n const spawned = node_child_process_1.default.spawn(\"osascript\", outputArguments, {\n ...execOptions,\n env: { PATH: \"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\" },\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned, { timeout: timeout || 10000 });\n spawned.stdin.end(script);\n const [{ error, exitCode, signal, timedOut }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf8\" }, spawnedPromise);\n const stdout = (0, exec_utils_1.handleOutput)({ stripFinalNewline: true }, stdoutResult);\n const stderr = (0, exec_utils_1.handleOutput)({ stripFinalNewline: true }, stderrResult);\n return (0, exec_utils_1.defaultParsing)({\n stdout,\n stderr,\n error,\n exitCode,\n signal,\n timedOut,\n command: \"osascript\",\n options,\n parentError: new Error(),\n });\n}\nexports.runAppleScript = runAppleScript;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./usePromise\"), exports);\n__exportStar(require(\"./useCachedState\"), exports);\n__exportStar(require(\"./useCachedPromise\"), exports);\n__exportStar(require(\"./useFetch\"), exports);\n__exportStar(require(\"./useExec\"), exports);\n__exportStar(require(\"./useSQL\"), exports);\n__exportStar(require(\"./useForm\"), exports);\n__exportStar(require(\"./useAI\"), exports);\n__exportStar(require(\"./useFrecencySorting\"), exports);\n__exportStar(require(\"./icon\"), exports);\n__exportStar(require(\"./run-applescript\"), exports);\n", "module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size')\n}\n", "'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseExceededMaxSizeError)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\n\nconst [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v))\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n return url\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.')\n }\n\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n if (!(url instanceof URL)) {\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substr(1, idx - 1)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substr(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (!isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\nfunction parseHeaders (headers, obj = {}) {\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1]\n } else {\n obj[key] = headers[i + 1].toString('utf8')\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString('utf8'))\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if ('content-length' in obj && 'content-disposition' in obj) {\n obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1')\n }\n\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n const ret = []\n let hasContentLength = false\n let contentDispositionIdx = -1\n\n for (let n = 0; n < headers.length; n += 2) {\n const key = headers[n + 0].toString()\n const val = headers[n + 1].toString('utf8')\n\n if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n ret.push(key, val)\n hasContentLength = true\n } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n contentDispositionIdx = ret.push(key, val) - 1\n } else {\n ret.push(key, val)\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if (hasContentLength && contentDispositionIdx !== -1) {\n ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1')\n }\n\n return ret\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n // https://github.com/whatwg/streams/pull/1083\n return ReadableStream.from(iterable)\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.append === 'function' &&\n typeof object.delete === 'function' &&\n typeof object.get === 'function' &&\n typeof object.getAll === 'function' &&\n typeof object.has === 'function' &&\n typeof object.set === 'function' &&\n object[Symbol.toStringTag] === 'FormData'\n )\n}\n\nfunction throwIfAborted (signal) {\n if (!signal) { return }\n if (typeof signal.throwIfAborted === 'function') {\n signal.throwIfAborted()\n } else {\n if (signal.aborted) {\n // DOMException not available < v17.0.0\n const err = new Error('The operation was aborted')\n err.name = 'AbortError'\n throw err\n }\n }\n}\n\nlet events\nfunction addAbortListener (signal, listener) {\n if (typeof Symbol.dispose === 'symbol') {\n if (!events) {\n events = require('events')\n }\n if (typeof events.addAbortListener === 'function' && 'aborted' in signal) {\n return events.addAbortListener(signal, listener)\n }\n }\n if ('addEventListener' in signal) {\n signal.addEventListener('abort', listener, { once: true })\n return () => signal.removeEventListener('abort', listener)\n }\n signal.addListener('abort', listener)\n return () => signal.removeListener('abort', listener)\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed\n\n/**\n * @param {string} val\n */\nfunction toUSVString (val) {\n if (hasToWellFormed) {\n return `${val}`.toWellFormed()\n } else if (nodeUtil.toUSVString) {\n return nodeUtil.toUSVString(val)\n }\n\n return `${val}`\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString,\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL,\n throwIfAborted,\n addAbortListener,\n nodeMajor,\n nodeMinor,\n nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13)\n}\n", "'use strict'\n\nlet fastNow = Date.now()\nlet fastNowTimeout\n\nconst fastTimers = []\n\nfunction onTimeout () {\n fastNow = Date.now()\n\n let len = fastTimers.length\n let idx = 0\n while (idx < len) {\n const timer = fastTimers[idx]\n\n if (timer.state === 0) {\n timer.state = fastNow + timer.delay\n } else if (timer.state > 0 && fastNow >= timer.state) {\n timer.state = -1\n timer.callback(timer.opaque)\n }\n\n if (timer.state === -1) {\n timer.state = -2\n if (idx !== len - 1) {\n fastTimers[idx] = fastTimers.pop()\n } else {\n fastTimers.pop()\n }\n len -= 1\n } else {\n idx += 1\n }\n }\n\n if (fastTimers.length > 0) {\n refreshTimeout()\n }\n}\n\nfunction refreshTimeout () {\n if (fastNowTimeout && fastNowTimeout.refresh) {\n fastNowTimeout.refresh()\n } else {\n clearTimeout(fastNowTimeout)\n fastNowTimeout = setTimeout(onTimeout, 1e3)\n if (fastNowTimeout.unref) {\n fastNowTimeout.unref()\n }\n }\n}\n\nclass Timeout {\n constructor (callback, delay, opaque) {\n this.callback = callback\n this.delay = delay\n this.opaque = opaque\n\n // -2 not in timer list\n // -1 in timer list but inactive\n // 0 in timer list waiting for time\n // > 0 in timer list waiting for time to expire\n this.state = -2\n\n this.refresh()\n }\n\n refresh () {\n if (this.state === -2) {\n fastTimers.push(this)\n if (!fastNowTimeout || fastTimers.length === 1) {\n refreshTimeout()\n }\n }\n\n this.state = 0\n }\n\n clear () {\n this.state = -1\n }\n}\n\nmodule.exports = {\n setTimeout (callback, delay, opaque) {\n return delay < 1e3\n ? setTimeout(callback, delay, opaque)\n : new Timeout(callback, delay, opaque)\n },\n clearTimeout (timeout) {\n if (timeout instanceof Timeout) {\n timeout.clear()\n } else {\n clearTimeout(timeout)\n }\n }\n}\n", "'use strict';\n\nfunction parseContentType(str) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n // Parse type\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 47/* '/' */ || i === 0)\n return;\n break;\n }\n }\n // Check for type without subtype\n if (i === str.length)\n return;\n\n const type = str.slice(0, i).toLowerCase();\n\n // Parse subtype\n const subtypeStart = ++i;\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n if (parseContentTypeParams(str, i, params) === undefined)\n return;\n break;\n }\n }\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n const subtype = str.slice(subtypeStart, i).toLowerCase();\n\n return { type, subtype, params };\n}\n\nfunction parseContentTypeParams(str, i, params) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 61/* '=' */)\n return;\n break;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n name = str.slice(nameStart, i);\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction parseDisposition(str, defDecoder) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (parseDispositionParams(str, i, params, defDecoder) === undefined)\n return;\n break;\n }\n }\n\n const type = str.slice(0, i).toLowerCase();\n\n return { type, params };\n}\n\nfunction parseDispositionParams(str, i, params, defDecoder) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code === 61/* '=' */)\n break;\n return;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n let charset;\n //~ let lang;\n name = str.slice(nameStart, i);\n if (name.charCodeAt(name.length - 1) === 42/* '*' */) {\n // Extended value\n\n const charsetStart = ++i;\n // Parse charset name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (CHARSET[code] !== 1) {\n if (code !== 39/* '\\'' */)\n return;\n break;\n }\n }\n\n // Incomplete charset (malformed)\n if (i === str.length)\n return;\n\n charset = str.slice(charsetStart, i);\n ++i; // Skip over the '\\''\n\n //~ const langStart = ++i;\n // Parse language name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 39/* '\\'' */)\n break;\n }\n\n // Incomplete language (malformed)\n if (i === str.length)\n return;\n\n //~ lang = str.slice(langStart, i);\n ++i; // Skip over the '\\''\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n valueStart = i;\n\n let encode = 0;\n // Parse value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (EXTENDED_VALUE[code] !== 1) {\n if (code === 37/* '%' */) {\n let hexUpper;\n let hexLower;\n if (i + 2 < str.length\n && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1\n && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) {\n const byteVal = (hexUpper << 4) + hexLower;\n value += str.slice(valueStart, i);\n value += String.fromCharCode(byteVal);\n i += 2;\n valueStart = i + 1;\n if (byteVal >= 128)\n encode = 2;\n else if (encode === 0)\n encode = 1;\n continue;\n }\n // '%' disallowed in non-percent encoded contexts (malformed)\n return;\n }\n break;\n }\n }\n\n value += str.slice(valueStart, i);\n value = convertToUTF8(value, charset, encode);\n if (value === undefined)\n return;\n } else {\n // Non-extended value\n\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n value = defDecoder(value, 2);\n if (value === undefined)\n return;\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction getDecoder(charset) {\n let lc;\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8;\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1;\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le;\n case 'base64':\n return decoders.base64;\n default:\n if (lc === undefined) {\n lc = true;\n charset = charset.toLowerCase();\n continue;\n }\n return decoders.other.bind(charset);\n }\n }\n}\n\nconst decoders = {\n utf8: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string') {\n // If `data` never had any percent-encoded bytes or never had any that\n // were outside of the ASCII range, then we can safely just return the\n // input since UTF-8 is ASCII compatible\n if (hint < 2)\n return data;\n\n data = Buffer.from(data, 'latin1');\n }\n return data.utf8Slice(0, data.length);\n },\n\n latin1: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n return data;\n return data.latin1Slice(0, data.length);\n },\n\n utf16le: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.ucs2Slice(0, data.length);\n },\n\n base64: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.base64Slice(0, data.length);\n },\n\n other: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n try {\n const decoder = new TextDecoder(this);\n return decoder.decode(data);\n } catch {}\n },\n};\n\nfunction convertToUTF8(data, charset, hint) {\n const decode = getDecoder(charset);\n if (decode)\n return decode(data, hint);\n}\n\nfunction basename(path) {\n if (typeof path !== 'string')\n return '';\n for (let i = path.length - 1; i >= 0; --i) {\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1);\n return (path === '..' || path === '.' ? '' : path);\n }\n }\n return (path === '..' || path === '.' ? '' : path);\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst QDTEXT = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nconst CHARSET = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst EXTENDED_VALUE = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n};\n", "'use strict';\n/*\n Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n*/\nfunction memcmp(buf1, pos1, buf2, pos2, num) {\n for (let i = 0; i < num; ++i) {\n if (buf1[pos1 + i] !== buf2[pos2 + i])\n return false;\n }\n return true;\n}\n\nclass SBMH {\n constructor(needle, cb) {\n if (typeof cb !== 'function')\n throw new Error('Missing match callback');\n\n if (typeof needle === 'string')\n needle = Buffer.from(needle);\n else if (!Buffer.isBuffer(needle))\n throw new Error(`Expected Buffer for needle, got ${typeof needle}`);\n\n const needleLen = needle.length;\n\n this.maxMatches = Infinity;\n this.matches = 0;\n\n this._cb = cb;\n this._lookbehindSize = 0;\n this._needle = needle;\n this._bufPos = 0;\n\n this._lookbehind = Buffer.allocUnsafe(needleLen);\n\n // Initialize occurrence table.\n this._occ = [\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen\n ];\n\n // Populate occurrence table with analysis of the needle, ignoring the last\n // letter.\n if (needleLen > 1) {\n for (let i = 0; i < needleLen - 1; ++i)\n this._occ[needle[i]] = needleLen - 1 - i;\n }\n }\n\n reset() {\n this.matches = 0;\n this._lookbehindSize = 0;\n this._bufPos = 0;\n }\n\n push(chunk, pos) {\n let result;\n if (!Buffer.isBuffer(chunk))\n chunk = Buffer.from(chunk, 'latin1');\n const chunkLen = chunk.length;\n this._bufPos = pos || 0;\n while (result !== chunkLen && this.matches < this.maxMatches)\n result = feed(this, chunk);\n return result;\n }\n\n destroy() {\n const lbSize = this._lookbehindSize;\n if (lbSize)\n this._cb(false, this._lookbehind, 0, lbSize, false);\n this.reset();\n }\n}\n\nfunction feed(self, data) {\n const len = data.length;\n const needle = self._needle;\n const needleLen = needle.length;\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehindSize - 2]\n let pos = -self._lookbehindSize;\n const lastNeedleCharPos = needleLen - 1;\n const lastNeedleChar = needle[lastNeedleCharPos];\n const end = len - needleLen;\n const occ = self._occ;\n const lookbehind = self._lookbehind;\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= end) {\n const nextPos = pos + lastNeedleCharPos;\n const ch = (nextPos < 0\n ? lookbehind[self._lookbehindSize + nextPos]\n : data[nextPos]);\n\n if (ch === lastNeedleChar\n && matchNeedle(self, data, pos, lastNeedleCharPos)) {\n self._lookbehindSize = 0;\n ++self.matches;\n if (pos > -self._lookbehindSize)\n self._cb(true, lookbehind, 0, self._lookbehindSize + pos, false);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // No match.\n\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !matchNeedle(self, data, pos, len - pos))\n ++pos;\n\n if (pos < 0) {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = self._lookbehindSize + pos;\n\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n self._cb(false, lookbehind, 0, bytesToCutOff, false);\n }\n\n self._lookbehindSize -= bytesToCutOff;\n lookbehind.copy(lookbehind, 0, bytesToCutOff, self._lookbehindSize);\n lookbehind.set(data, self._lookbehindSize);\n self._lookbehindSize += len;\n\n self._bufPos = len;\n return len;\n }\n\n // Discard lookbehind buffer.\n self._cb(false, lookbehind, 0, self._lookbehindSize, false);\n self._lookbehindSize = 0;\n }\n\n pos += self._bufPos;\n\n const firstNeedleChar = needle[0];\n\n // Lookbehind buffer is now empty. Perform Boyer-Moore-Horspool\n // search with optimized character lookup code that only considers\n // the current round's haystack data.\n while (pos <= end) {\n const ch = data[pos + lastNeedleCharPos];\n\n if (ch === lastNeedleChar\n && data[pos] === firstNeedleChar\n && memcmp(needle, 0, data, pos, lastNeedleCharPos)) {\n ++self.matches;\n if (pos > 0)\n self._cb(true, data, self._bufPos, pos, true);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (pos < len) {\n if (data[pos] !== firstNeedleChar\n || !memcmp(data, pos, needle, 0, len - pos)) {\n ++pos;\n continue;\n }\n data.copy(lookbehind, 0, pos, len);\n self._lookbehindSize = len - pos;\n break;\n }\n\n // Everything until `pos` is guaranteed not to contain needle data.\n if (pos > 0)\n self._cb(false, data, self._bufPos, pos < len ? pos : len, true);\n\n self._bufPos = len;\n return len;\n}\n\nfunction matchNeedle(self, data, pos, len) {\n const lb = self._lookbehind;\n const lbSize = self._lookbehindSize;\n const needle = self._needle;\n\n for (let i = 0; i < len; ++i, ++pos) {\n const ch = (pos < 0 ? lb[lbSize + pos] : data[pos]);\n if (ch !== needle[i])\n return false;\n }\n return true;\n}\n\nmodule.exports = SBMH;\n", "'use strict';\n\nconst { Readable, Writable } = require('stream');\n\nconst StreamSearch = require('streamsearch');\n\nconst {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n} = require('../utils.js');\n\nconst BUF_CRLF = Buffer.from('\\r\\n');\nconst BUF_CR = Buffer.from('\\r');\nconst BUF_DASH = Buffer.from('-');\n\nfunction noop() {}\n\nconst MAX_HEADER_PAIRS = 2000; // From node\nconst MAX_HEADER_SIZE = 16 * 1024; // From node (its default value)\n\nconst HPARSER_NAME = 0;\nconst HPARSER_PRE_OWS = 1;\nconst HPARSER_VALUE = 2;\nclass HeaderParser {\n constructor(cb) {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n this.cb = cb;\n }\n\n reset() {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n }\n\n push(chunk, pos, end) {\n let start = pos;\n while (pos < end) {\n switch (this.state) {\n case HPARSER_NAME: {\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (TOKEN[code] !== 1) {\n if (code !== 58/* ':' */)\n return -1;\n this.name += chunk.latin1Slice(start, pos);\n if (this.name.length === 0)\n return -1;\n ++pos;\n done = true;\n this.state = HPARSER_PRE_OWS;\n break;\n }\n }\n if (!done) {\n this.name += chunk.latin1Slice(start, pos);\n break;\n }\n // FALLTHROUGH\n }\n case HPARSER_PRE_OWS: {\n // Skip optional whitespace\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */) {\n start = pos;\n done = true;\n this.state = HPARSER_VALUE;\n break;\n }\n }\n if (!done)\n break;\n // FALLTHROUGH\n }\n case HPARSER_VALUE:\n switch (this.crlf) {\n case 0: // Nothing yet\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (FIELD_VCHAR[code] !== 1) {\n if (code !== 13/* '\\r' */)\n return -1;\n ++this.crlf;\n break;\n }\n }\n this.value += chunk.latin1Slice(start, pos++);\n break;\n case 1: // Received CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n ++this.crlf;\n break;\n case 2: { // Received CR LF\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code === 32/* ' ' */ || code === 9/* '\\t' */) {\n // Folded value\n start = pos;\n this.crlf = 0;\n } else {\n if (++this.pairCount < MAX_HEADER_PAIRS) {\n this.name = this.name.toLowerCase();\n if (this.header[this.name] === undefined)\n this.header[this.name] = [this.value];\n else\n this.header[this.name].push(this.value);\n }\n if (code === 13/* '\\r' */) {\n ++this.crlf;\n ++pos;\n } else {\n // Assume start of next header field name\n start = pos;\n this.crlf = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n }\n }\n break;\n }\n case 3: { // Received CR LF CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n // End of header\n const header = this.header;\n this.reset();\n this.cb(header);\n return pos;\n }\n }\n break;\n }\n }\n\n return pos;\n }\n}\n\nclass FileStream extends Readable {\n constructor(opts, owner) {\n super(opts);\n this.truncated = false;\n this._readcb = null;\n this.once('end', () => {\n // We need to make sure that we call any outstanding _writecb() that is\n // associated with this file so that processing of the rest of the form\n // can continue. This may not happen if the file stream ends right after\n // backpressure kicks in, so we force it here.\n this._read();\n if (--owner._fileEndsLeft === 0 && owner._finalcb) {\n const cb = owner._finalcb;\n owner._finalcb = null;\n // Make sure other 'end' event handlers get a chance to be executed\n // before busboy's 'finish' event is emitted\n process.nextTick(cb);\n }\n });\n }\n _read(n) {\n const cb = this._readcb;\n if (cb) {\n this._readcb = null;\n cb();\n }\n }\n}\n\nconst ignoreData = {\n push: (chunk, pos) => {},\n destroy: () => {},\n};\n\nfunction callAndUnsetCb(self, err) {\n const cb = self._writecb;\n self._writecb = null;\n if (err)\n self.destroy(err);\n else if (cb)\n cb();\n}\n\nfunction nullDecoder(val, hint) {\n return val;\n}\n\nclass Multipart extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n if (!cfg.conType.params || typeof cfg.conType.params.boundary !== 'string')\n throw new Error('Multipart: Boundary not found');\n\n const boundary = cfg.conType.params.boundary;\n const paramDecoder = (typeof cfg.defParamCharset === 'string'\n && cfg.defParamCharset\n ? getDecoder(cfg.defParamCharset)\n : nullDecoder);\n const defCharset = (cfg.defCharset || 'utf8');\n const preservePath = cfg.preservePath;\n const fileOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.fileHwm === 'number'\n ? cfg.fileHwm\n : undefined),\n };\n\n const limits = cfg.limits;\n const fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n const fileSizeLimit = (limits && typeof limits.fileSize === 'number'\n ? limits.fileSize\n : Infinity);\n const filesLimit = (limits && typeof limits.files === 'number'\n ? limits.files\n : Infinity);\n const fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n const partsLimit = (limits && typeof limits.parts === 'number'\n ? limits.parts\n : Infinity);\n\n let parts = -1; // Account for initial boundary\n let fields = 0;\n let files = 0;\n let skipPart = false;\n\n this._fileEndsLeft = 0;\n this._fileStream = undefined;\n this._complete = false;\n let fileSize = 0;\n\n let field;\n let fieldSize = 0;\n let partCharset;\n let partEncoding;\n let partType;\n let partName;\n let partTruncated = false;\n\n let hitFilesLimit = false;\n let hitFieldsLimit = false;\n\n this._hparser = null;\n const hparser = new HeaderParser((header) => {\n this._hparser = null;\n skipPart = false;\n\n partType = 'text/plain';\n partCharset = defCharset;\n partEncoding = '7bit';\n partName = undefined;\n partTruncated = false;\n\n let filename;\n if (!header['content-disposition']) {\n skipPart = true;\n return;\n }\n\n const disp = parseDisposition(header['content-disposition'][0],\n paramDecoder);\n if (!disp || disp.type !== 'form-data') {\n skipPart = true;\n return;\n }\n\n if (disp.params) {\n if (disp.params.name)\n partName = disp.params.name;\n\n if (disp.params['filename*'])\n filename = disp.params['filename*'];\n else if (disp.params.filename)\n filename = disp.params.filename;\n\n if (filename !== undefined && !preservePath)\n filename = basename(filename);\n }\n\n if (header['content-type']) {\n const conType = parseContentType(header['content-type'][0]);\n if (conType) {\n partType = `${conType.type}/${conType.subtype}`;\n if (conType.params && typeof conType.params.charset === 'string')\n partCharset = conType.params.charset.toLowerCase();\n }\n }\n\n if (header['content-transfer-encoding'])\n partEncoding = header['content-transfer-encoding'][0].toLowerCase();\n\n if (partType === 'application/octet-stream' || filename !== undefined) {\n // File\n\n if (files === filesLimit) {\n if (!hitFilesLimit) {\n hitFilesLimit = true;\n this.emit('filesLimit');\n }\n skipPart = true;\n return;\n }\n ++files;\n\n if (this.listenerCount('file') === 0) {\n skipPart = true;\n return;\n }\n\n fileSize = 0;\n this._fileStream = new FileStream(fileOpts, this);\n ++this._fileEndsLeft;\n this.emit(\n 'file',\n partName,\n this._fileStream,\n { filename,\n encoding: partEncoding,\n mimeType: partType }\n );\n } else {\n // Non-file\n\n if (fields === fieldsLimit) {\n if (!hitFieldsLimit) {\n hitFieldsLimit = true;\n this.emit('fieldsLimit');\n }\n skipPart = true;\n return;\n }\n ++fields;\n\n if (this.listenerCount('field') === 0) {\n skipPart = true;\n return;\n }\n\n field = [];\n fieldSize = 0;\n }\n });\n\n let matchPostBoundary = 0;\n const ssCb = (isMatch, data, start, end, isDataSafe) => {\nretrydata:\n while (data) {\n if (this._hparser !== null) {\n const ret = this._hparser.push(data, start, end);\n if (ret === -1) {\n this._hparser = null;\n hparser.reset();\n this.emit('error', new Error('Malformed part header'));\n break;\n }\n start = ret;\n }\n\n if (start === end)\n break;\n\n if (matchPostBoundary !== 0) {\n if (matchPostBoundary === 1) {\n switch (data[start]) {\n case 45: // '-'\n // Try matching '--' after boundary\n matchPostBoundary = 2;\n ++start;\n break;\n case 13: // '\\r'\n // Try matching CR LF before header\n matchPostBoundary = 3;\n ++start;\n break;\n default:\n matchPostBoundary = 0;\n }\n if (start === end)\n return;\n }\n\n if (matchPostBoundary === 2) {\n matchPostBoundary = 0;\n if (data[start] === 45/* '-' */) {\n // End of multipart data\n this._complete = true;\n this._bparser = ignoreData;\n return;\n }\n // We saw something other than '-', so put the dash we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_DASH, 0, 1, false);\n this._writecb = writecb;\n } else if (matchPostBoundary === 3) {\n matchPostBoundary = 0;\n if (data[start] === 10/* '\\n' */) {\n ++start;\n if (parts >= partsLimit)\n break;\n // Prepare the header parser\n this._hparser = hparser;\n if (start === end)\n break;\n // Process the remaining data as a header\n continue retrydata;\n } else {\n // We saw something other than LF, so put the CR we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_CR, 0, 1, false);\n this._writecb = writecb;\n }\n }\n }\n\n if (!skipPart) {\n if (this._fileStream) {\n let chunk;\n const actualLen = Math.min(end - start, fileSizeLimit - fileSize);\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fileSize += chunk.length;\n if (fileSize === fileSizeLimit) {\n if (chunk.length > 0)\n this._fileStream.push(chunk);\n this._fileStream.emit('limit');\n this._fileStream.truncated = true;\n skipPart = true;\n } else if (!this._fileStream.push(chunk)) {\n if (this._writecb)\n this._fileStream._readcb = this._writecb;\n this._writecb = null;\n }\n } else if (field !== undefined) {\n let chunk;\n const actualLen = Math.min(\n end - start,\n fieldSizeLimit - fieldSize\n );\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fieldSize += actualLen;\n field.push(chunk);\n if (fieldSize === fieldSizeLimit) {\n skipPart = true;\n partTruncated = true;\n }\n }\n }\n\n break;\n }\n\n if (isMatch) {\n matchPostBoundary = 1;\n\n if (this._fileStream) {\n // End the active file stream if the previous part was a file\n this._fileStream.push(null);\n this._fileStream = null;\n } else if (field !== undefined) {\n let data;\n switch (field.length) {\n case 0:\n data = '';\n break;\n case 1:\n data = convertToUTF8(field[0], partCharset, 0);\n break;\n default:\n data = convertToUTF8(\n Buffer.concat(field, fieldSize),\n partCharset,\n 0\n );\n }\n field = undefined;\n fieldSize = 0;\n this.emit(\n 'field',\n partName,\n data,\n { nameTruncated: false,\n valueTruncated: partTruncated,\n encoding: partEncoding,\n mimeType: partType }\n );\n }\n\n if (++parts === partsLimit)\n this.emit('partsLimit');\n }\n };\n this._bparser = new StreamSearch(`\\r\\n--${boundary}`, ssCb);\n\n this._writecb = null;\n this._finalcb = null;\n\n // Just in case there is no preamble\n this.write(BUF_CRLF);\n }\n\n static detect(conType) {\n return (conType.type === 'multipart' && conType.subtype === 'form-data');\n }\n\n _write(chunk, enc, cb) {\n this._writecb = cb;\n this._bparser.push(chunk, 0);\n if (this._writecb)\n callAndUnsetCb(this);\n }\n\n _destroy(err, cb) {\n this._hparser = null;\n this._bparser = ignoreData;\n if (!err)\n err = checkEndState(this);\n const fileStream = this._fileStream;\n if (fileStream) {\n this._fileStream = null;\n fileStream.destroy(err);\n }\n cb(err);\n }\n\n _final(cb) {\n this._bparser.destroy();\n if (!this._complete)\n return cb(new Error('Unexpected end of form'));\n if (this._fileEndsLeft)\n this._finalcb = finalcb.bind(null, this, cb);\n else\n finalcb(this, cb);\n }\n}\n\nfunction finalcb(self, cb, err) {\n if (err)\n return cb(err);\n err = checkEndState(self);\n cb(err);\n}\n\nfunction checkEndState(self) {\n if (self._hparser)\n return new Error('Malformed part header');\n const fileStream = self._fileStream;\n if (fileStream) {\n self._fileStream = null;\n fileStream.destroy(new Error('Unexpected end of file'));\n }\n if (!self._complete)\n return new Error('Unexpected end of form');\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst FIELD_VCHAR = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nmodule.exports = Multipart;\n", "'use strict';\n\nconst { Writable } = require('stream');\n\nconst { getDecoder } = require('../utils.js');\n\nclass URLEncoded extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n let charset = (cfg.defCharset || 'utf8');\n if (cfg.conType.params && typeof cfg.conType.params.charset === 'string')\n charset = cfg.conType.params.charset;\n\n this.charset = charset;\n\n const limits = cfg.limits;\n this.fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n this.fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n this.fieldNameSizeLimit = (\n limits && typeof limits.fieldNameSize === 'number'\n ? limits.fieldNameSize\n : 100\n );\n\n this._inKey = true;\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n this._fields = 0;\n this._key = '';\n this._val = '';\n this._byte = -2;\n this._lastPos = 0;\n this._encode = 0;\n this._decoder = getDecoder(charset);\n }\n\n static detect(conType) {\n return (conType.type === 'application'\n && conType.subtype === 'x-www-form-urlencoded');\n }\n\n _write(chunk, enc, cb) {\n if (this._fields >= this.fieldsLimit)\n return cb();\n\n let i = 0;\n const len = chunk.length;\n this._lastPos = 0;\n\n // Check if we last ended mid-percent-encoded byte\n if (this._byte !== -2) {\n i = readPctEnc(this, chunk, i, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n if (this._inKey)\n ++this._bytesKey;\n else\n ++this._bytesVal;\n }\n\nmain:\n while (i < len) {\n if (this._inKey) {\n // Parsing key\n\n i = skipKeyBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 61: // '='\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n this._inKey = false;\n continue main;\n case 38: // '&'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0) {\n this.emit(\n 'field',\n this._key,\n '',\n { nameTruncated: this._keyTrunc,\n valueTruncated: false,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue;\n case 43: // '+'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._key += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n } else {\n // Parsing value\n\n i = skipValBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 38: // '&'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._inKey = true;\n this._val = this._decoder(this._val, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0 || this._bytesVal > 0) {\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue main;\n case 43: // '+'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._val += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n }\n }\n\n cb();\n }\n\n _final(cb) {\n if (this._byte !== -2)\n return cb(new Error('Malformed urlencoded form'));\n if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) {\n if (this._inKey)\n this._key = this._decoder(this._key, this._encode);\n else\n this._val = this._decoder(this._val, this._encode);\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n cb();\n }\n}\n\nfunction readPctEnc(self, chunk, pos, len) {\n if (pos >= len)\n return len;\n\n if (self._byte === -1) {\n // We saw a '%' but no hex characters yet\n const hexUpper = HEX_VALUES[chunk[pos++]];\n if (hexUpper === -1)\n return -1;\n\n if (hexUpper >= 8)\n self._encode = 2; // Indicate high bits detected\n\n if (pos < len) {\n // Both hex characters are in this chunk\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((hexUpper << 4) + hexLower);\n else\n self._val += String.fromCharCode((hexUpper << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n } else {\n // Only one hex character was available in this chunk\n self._byte = hexUpper;\n }\n } else {\n // We saw only one hex character so far\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((self._byte << 4) + hexLower);\n else\n self._val += String.fromCharCode((self._byte << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipKeyBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesKey > self.fieldNameSizeLimit) {\n if (!self._keyTrunc) {\n if (self._lastPos < pos)\n self._key += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._keyTrunc = true;\n for (; pos < len; ++pos) {\n const code = chunk[pos];\n if (code === 61/* '=' */ || code === 38/* '&' */)\n break;\n ++self._bytesKey;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipValBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesVal > self.fieldSizeLimit) {\n if (!self._valTrunc) {\n if (self._lastPos < pos)\n self._val += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._valTrunc = true;\n for (; pos < len; ++pos) {\n if (chunk[pos] === 38/* '&' */)\n break;\n ++self._bytesVal;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = URLEncoded;\n", "'use strict';\n\nconst { parseContentType } = require('./utils.js');\n\nfunction getInstance(cfg) {\n const headers = cfg.headers;\n const conType = parseContentType(headers['content-type']);\n if (!conType)\n throw new Error('Malformed content type');\n\n for (const type of TYPES) {\n const matched = type.detect(conType);\n if (!matched)\n continue;\n\n const instanceCfg = {\n limits: cfg.limits,\n headers,\n conType,\n highWaterMark: undefined,\n fileHwm: undefined,\n defCharset: undefined,\n defParamCharset: undefined,\n preservePath: false,\n };\n if (cfg.highWaterMark)\n instanceCfg.highWaterMark = cfg.highWaterMark;\n if (cfg.fileHwm)\n instanceCfg.fileHwm = cfg.fileHwm;\n instanceCfg.defCharset = cfg.defCharset;\n instanceCfg.defParamCharset = cfg.defParamCharset;\n instanceCfg.preservePath = cfg.preservePath;\n return new type(instanceCfg);\n }\n\n throw new Error(`Unsupported content type: ${headers['content-type']}`);\n}\n\n// Note: types are explicitly listed here for easier bundling\n// See: https://github.com/mscdex/busboy/issues/121\nconst TYPES = [\n require('./types/multipart'),\n require('./types/urlencoded'),\n].filter(function(typemod) { return typeof typemod.detect === 'function'; });\n\nmodule.exports = (cfg) => {\n if (typeof cfg !== 'object' || cfg === null)\n cfg = {};\n\n if (typeof cfg.headers !== 'object'\n || cfg.headers === null\n || typeof cfg.headers['content-type'] !== 'string') {\n throw new Error('Missing Content-Type');\n }\n\n return getInstance(cfg);\n};\n", "'use strict'\n\nconst { MessageChannel, receiveMessageOnPort } = require('worker_threads')\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\n// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\n// https://fetch.spec.whatwg.org/#request-body-header-name\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type',\n // See https://github.com/nodejs/undici/issues/2021\n // 'Content-Length' is a forbidden header name, which is typically\n // removed in the Headers implementation. However, undici doesn't\n // filter out headers, so we add it here.\n 'content-length'\n]\n\n// https://fetch.spec.whatwg.org/#enumdef-requestduplex\nconst requestDuplex = [\n 'half'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nlet channel\n\n/** @type {globalThis['structuredClone']} */\nconst structuredClone =\n globalThis.structuredClone ??\n // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n // structuredClone was added in v17.0.0, but fetch supports v16.8\n function structuredClone (value, options = undefined) {\n if (arguments.length === 0) {\n throw new TypeError('missing argument')\n }\n\n if (!channel) {\n channel = new MessageChannel()\n }\n channel.port1.unref()\n channel.port2.unref()\n channel.port1.postMessage(value, options?.transfer)\n return receiveMessageOnPort(channel.port2).message\n }\n\nmodule.exports = {\n DOMException,\n structuredClone,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods,\n badPorts,\n requestDuplex\n}\n", "'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (\n newOrigin !== undefined &&\n typeof newOrigin !== 'string' &&\n !(newOrigin instanceof URL)\n ) {\n throw new Error('Invalid base url')\n }\n\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n", "'use strict'\n\nconst { redirectStatus, badPorts, referrerPolicy: referrerPolicyTokens } = require('./constants')\nconst { getGlobalOrigin } = require('./global')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response\u2019s URL list and null if response\u2019s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response\u2019s status is not a redirect status, then return null.\n if (!redirectStatus.includes(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response\u2019s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a header value, then set location to the result of\n // parsing location with response\u2019s URL.\n if (location !== null && isValidHeaderValue(location)) {\n location = new URL(location, responseURL(response))\n }\n\n // 4. If location is a URL whose fragment is null, then set location\u2019s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request\u2019s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url\u2019s scheme is an HTTP(S) scheme and url\u2019s port is a bad port,\n // then return blocked.\n if (urlIsHttpHttpsScheme(url) && badPorts.includes(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\nfunction isTokenChar (c) {\n return !(\n c >= 0x7f ||\n c <= 0x20 ||\n c === '(' ||\n c === ')' ||\n c === '<' ||\n c === '>' ||\n c === '@' ||\n c === ',' ||\n c === ';' ||\n c === ':' ||\n c === '\\\\' ||\n c === '\"' ||\n c === '/' ||\n c === '[' ||\n c === ']' ||\n c === '?' ||\n c === '=' ||\n c === '{' ||\n c === '}'\n )\n}\n\n// See RFC 7230, Section 3.2.6.\n// https://github.com/chromium/chromium/blob/d7da0240cae77824d1eda25745c4022757499131/third_party/blink/renderer/platform/network/http_parsers.cc#L321\nfunction isValidHTTPToken (characters) {\n if (!characters || typeof characters !== 'string') {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n const c = characters.charCodeAt(i)\n if (c > 0x7f || !isTokenChar(c)) {\n return false\n }\n }\n return true\n}\n\n// https://fetch.spec.whatwg.org/#header-name\n// https://github.com/chromium/chromium/blob/b3d37e6f94f87d59e44662d6078f6a12de845d17/net/http/http_util.cc#L342\nfunction isValidHeaderName (potentialValue) {\n if (potentialValue.length === 0) {\n return false\n }\n\n return isValidHTTPToken(potentialValue)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request\u2019s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing \u00A7 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n\n // 8.1 Parse a referrer policy from a Referrer-Policy header\n // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response\u2019s header list.\n const { headersList } = actualResponse\n // 2. Let policy be the empty string.\n // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.\n // 4. Return policy.\n const policyHeader = (headersList.get('referrer-policy') ?? '').split(',')\n\n // Note: As the referrer-policy can contain multiple policies\n // separated by comma, we need to loop through all of them\n // and pick the first valid one.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n let policy = ''\n if (policyHeader.length > 0) {\n // The right-most policy takes precedence.\n // The left-most policy is the fallback.\n for (let i = policyHeader.length; i !== 0; i--) {\n const token = policyHeader[i - 1].trim()\n if (referrerPolicyTokens.includes(token)) {\n policy = token\n break\n }\n }\n }\n\n // 2. If policy is not the empty string, then set request\u2019s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r\u2019s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header\u2019s value to r\u2019s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r\u2019s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request\u2019s response tainting is \"cors\" or request\u2019s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request\u2019s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request\u2019s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request\u2019s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request\u2019s origin is a tuple origin, its scheme is \"https\", and request\u2019s current URL\u2019s scheme is not \"https\", then set serializedOrigin to `null`.\n if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request\u2019s origin is not same origin with request\u2019s current URL\u2019s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request\u2019s header list.\n request.headersList.append('origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // Note: the fetch spec doesn't make use of embedder policy or CSP list\n return {\n referrerPolicy: 'strict-origin-when-cross-origin'\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer (policyContainer) {\n return {\n referrerPolicy: policyContainer.referrerPolicy\n }\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Note: policy cannot (shouldn't) be null or an empty string.\n assert(policy)\n\n // 2. Let environment be request\u2019s client.\n\n let referrerSource = null\n\n // 3. Switch on request\u2019s referrer:\n if (request.referrer === 'client') {\n // Note: node isn't a browser and doesn't implement document/iframes,\n // so we bypass this step and replace it with our own.\n\n const globalOrigin = getGlobalOrigin()\n\n if (!globalOrigin || globalOrigin.origin === 'null') {\n return 'no-referrer'\n }\n\n // note: we need to clone it as it's mutated\n referrerSource = new URL(globalOrigin)\n } else if (request.referrer instanceof URL) {\n // Let referrerSource be request\u2019s referrer.\n referrerSource = request.referrer\n }\n\n // 4. Let request\u2019s referrerURL be the result of stripping referrerSource for\n // use as a referrer.\n let referrerURL = stripURLForReferrer(referrerSource)\n\n // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n // a referrer, with the origin-only flag set to true.\n const referrerOrigin = stripURLForReferrer(referrerSource, true)\n\n // 6. If the result of serializing referrerURL is a string whose length is\n // greater than 4096, set referrerURL to referrerOrigin.\n if (referrerURL.toString().length > 4096) {\n referrerURL = referrerOrigin\n }\n\n const areSameOrigin = sameOrigin(request, referrerURL)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerURL\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerURL : referrerOrigin\n case 'strict-origin-when-cross-origin': {\n const currentURL = requestCurrentURL(request)\n\n // 1. If the origin of referrerURL and the origin of request\u2019s current\n // URL are the same, then return referrerURL.\n if (sameOrigin(referrerURL, currentURL)) {\n return referrerURL\n }\n\n // 2. If referrerURL is a potentially trustworthy URL and request\u2019s\n // current URL is not a potentially trustworthy URL, then return no\n // referrer.\n if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n return 'no-referrer'\n }\n\n // 3. Return referrerOrigin.\n return referrerOrigin\n }\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n * @param {URL} url\n * @param {boolean|undefined} originOnly\n */\nfunction stripURLForReferrer (url, originOnly) {\n // 1. Assert: url is a URL.\n assert(url instanceof URL)\n\n // 2. If url\u2019s scheme is a local scheme, then return no referrer.\n if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n return 'no-referrer'\n }\n\n // 3. Set url\u2019s username to the empty string.\n url.username = ''\n\n // 4. Set url\u2019s password to the empty string.\n url.password = ''\n\n // 5. Set url\u2019s fragment to null.\n url.hash = ''\n\n // 6. If the origin-only flag is true, then:\n if (originOnly) {\n // 1. Set url\u2019s path to \u00AB the empty string \u00BB.\n url.pathname = ''\n\n // 2. Set url\u2019s query to null.\n url.search = ''\n }\n\n // 7. Return url.\n return url\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 4. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n const list = parsedMetadata.sort((c, d) => d.algo.localeCompare(c.algo))\n // get the strongest algorithm\n const strongest = list[0].algo\n // get all entries that use the strongest algorithm; ignore weaker\n const metadata = list.filter((item) => item.algo === strongest)\n\n // 5. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n const actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (actualValue === expectedValue) {\n return true\n }\n }\n\n // 6. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// https://www.w3.org/TR/CSP2/#source-list-syntax\n// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\\x21-\\x7e]?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n const supportedHashes = crypto.getHashes()\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (parsedToken === null || parsedToken.groups === undefined) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm.toLowerCase())) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n if (A.origin === B.origin && A.origin === 'null') {\n return true\n }\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\n// https://fetch.spec.whatwg.org/#concept-method-normalize\nfunction normalizeMethod (method) {\n return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method)\n ? method.toUpperCase()\n : method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, \u00AB value \u00BB).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n/**\n * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n * @param {() => unknown[]} iterator\n * @param {string} name name of the instance\n * @param {'key'|'value'|'key+value'} kind\n */\nfunction makeIterator (iterator, name, kind) {\n const object = {\n index: 0,\n kind,\n target: iterator\n }\n\n const i = {\n next () {\n // 1. Let interface be the interface for which the iterator prototype object exists.\n\n // 2. Let thisValue be the this value.\n\n // 3. Let object be ? ToObject(thisValue).\n\n // 4. If object is a platform object, then perform a security\n // check, passing:\n\n // 5. If object is not a default iterator object for interface,\n // then throw a TypeError.\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n // 6. Let index be object\u2019s index.\n // 7. Let kind be object\u2019s kind.\n // 8. Let values be object\u2019s target's value pairs to iterate over.\n const { index, kind, target } = object\n const values = target()\n\n // 9. Let len be the length of values.\n const len = values.length\n\n // 10. If index is greater than or equal to len, then return\n // CreateIterResultObject(undefined, true).\n if (index >= len) {\n return { value: undefined, done: true }\n }\n\n // 11. Let pair be the entry in values at index index.\n const pair = values[index]\n\n // 12. Set object\u2019s index to index + 1.\n object.index = index + 1\n\n // 13. Return the iterator result for pair and kind.\n return iteratorResult(pair, kind)\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n// https://webidl.spec.whatwg.org/#iterator-result\nfunction iteratorResult (pair, kind) {\n let result\n\n // 1. Let result be a value determined by the value of kind:\n switch (kind) {\n case 'key': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 3. result is key.\n result = pair[0]\n break\n }\n case 'value': {\n // 1. Let idlValue be pair\u2019s value.\n // 2. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 3. result is value.\n result = pair[1]\n break\n }\n case 'key+value': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let idlValue be pair\u2019s value.\n // 3. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 4. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 5. Let array be ! ArrayCreate(2).\n // 6. Call ! CreateDataProperty(array, \"0\", key).\n // 7. Call ! CreateDataProperty(array, \"1\", value).\n // 8. result is array.\n result = pair\n break\n }\n }\n\n // 2. Return CreateIterResultObject(result, false).\n return { value: result, done: false }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nfunction fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let successSteps given a byte sequence bytes be to queue a\n // fetch task to run processBody given bytes, with taskDestination.\n const successSteps = (bytes) => queueMicrotask(() => processBody(bytes))\n\n // 3. Let errorSteps be to queue a fetch task to run processBodyError,\n // with taskDestination.\n const errorSteps = (error) => queueMicrotask(() => processBodyError(error))\n\n // 4. Let reader be the result of getting a reader for body\u2019s stream.\n // If that threw an exception, then run errorSteps with that\n // exception and return.\n let reader\n\n try {\n reader = body.stream.getReader()\n } catch (e) {\n errorSteps(e)\n return\n }\n\n // 5. Read all bytes from reader, given successSteps and errorSteps.\n readAllBytes(reader, successSteps, errorSteps)\n}\n\n/** @type {ReadableStream} */\nlet ReadableStream = globalThis.ReadableStream\n\nfunction isReadableStreamLike (stream) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n return stream instanceof ReadableStream || (\n stream[Symbol.toStringTag] === 'ReadableStream' &&\n typeof stream.tee === 'function'\n )\n}\n\nconst MAXIMUM_ARGUMENT_LENGTH = 65535\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-decode\n * @param {number[]|Uint8Array} input\n */\nfunction isomorphicDecode (input) {\n // 1. To isomorphic decode a byte sequence input, return a string whose code point\n // length is equal to input\u2019s length and whose code points have the same values\n // as the values of input\u2019s bytes, in the same order.\n\n if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n return String.fromCharCode(...input)\n }\n\n return input.reduce((previous, current) => previous + String.fromCharCode(current), '')\n}\n\n/**\n * @param {ReadableStreamController<Uint8Array>} controller\n */\nfunction readableStreamClose (controller) {\n try {\n controller.close()\n } catch (err) {\n // TODO: add comment explaining why this error occurs.\n if (!err.message.includes('Controller is already closed')) {\n throw err\n }\n }\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-encode\n * @param {string} input\n */\nfunction isomorphicEncode (input) {\n // 1. Assert: input contains no code points greater than U+00FF.\n for (let i = 0; i < input.length; i++) {\n assert(input.charCodeAt(i) <= 0xFF)\n }\n\n // 2. Return a byte sequence whose length is equal to input\u2019s code\n // point length and whose bytes have the same values as the\n // values of input\u2019s code points, in the same order\n return input\n}\n\n/**\n * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n * @see https://streams.spec.whatwg.org/#read-loop\n * @param {ReadableStreamDefaultReader} reader\n * @param {(bytes: Uint8Array) => void} successSteps\n * @param {(error: Error) => void} failureSteps\n */\nasync function readAllBytes (reader, successSteps, failureSteps) {\n const bytes = []\n let byteLength = 0\n\n while (true) {\n let done\n let chunk\n\n try {\n ({ done, value: chunk } = await reader.read())\n } catch (e) {\n // 1. Call failureSteps with e.\n failureSteps(e)\n return\n }\n\n if (done) {\n // 1. Call successSteps with bytes.\n successSteps(Buffer.concat(bytes, byteLength))\n return\n }\n\n // 1. If chunk is not a Uint8Array object, call failureSteps\n // with a TypeError and abort these steps.\n if (!isUint8Array(chunk)) {\n failureSteps(new TypeError('Received non-Uint8Array chunk'))\n return\n }\n\n // 2. Append the bytes represented by chunk to bytes.\n bytes.push(chunk)\n byteLength += chunk.length\n\n // 3. Read-loop given reader, bytes, successSteps, and failureSteps.\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#is-local\n * @param {URL} url\n */\nfunction urlIsLocal (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n}\n\n/**\n * @param {string|URL} url\n */\nfunction urlHasHttpsScheme (url) {\n if (typeof url === 'string') {\n return url.startsWith('https:')\n }\n\n return url.protocol === 'https:'\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-scheme\n * @param {URL} url\n */\nfunction urlIsHttpHttpsScheme (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'http:' || protocol === 'https:'\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch,\n isReadableStreamLike,\n readableStreamClose,\n isomorphicEncode,\n isomorphicDecode,\n urlIsLocal,\n urlHasHttpsScheme,\n urlIsHttpHttpsScheme,\n readAllBytes\n}\n", "'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n", "'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\n/** @type {import('../../types/webidl').Webidl} */\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\nwebidl.errors.exception = function (message) {\n return new TypeError(`${message.header}: ${message.message}`)\n}\n\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://webidl.spec.whatwg.org/#implements\nwebidl.brandCheck = function (V, I, opts = undefined) {\n if (opts?.strict !== false && !(V instanceof I)) {\n throw new TypeError('Illegal invocation')\n } else {\n return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n }\n}\n\nwebidl.argumentLengthCheck = function ({ length }, min, ctx) {\n if (length < min) {\n throw webidl.errors.exception({\n message: `${min} argument${min !== 1 ? 's' : ''} required, ` +\n `but${length ? ' only' : ''} ${length} found.`,\n ...ctx\n })\n }\n}\n\nwebidl.illegalConstructor = function () {\n throw webidl.errors.exception({\n header: 'TypeError',\n message: 'Illegal constructor'\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 \u2212 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be \u22122^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength \u2212 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength \u2212 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength \u2212 1 \u2212 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is \u22120, then set x to +0.\n if (x === 0) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +\u221E, or \u2212\u221E, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than \u22120.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +\u221E, or \u2212\u221E, then return +0.\n if (\n Number.isNaN(x) ||\n (x === 0 && Object.is(0, x)) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x \u2265 2^bitLength \u2212 1,\n // then return x \u2212 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 \u00D7 r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-to-record\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (O) => {\n // 1. If Type(O) is not Object, throw a TypeError.\n if (webidl.util.Type(O) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Record',\n message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n })\n }\n\n // 2. Let result be a new empty instance of record<K, V>.\n const result = {}\n\n if (!types.isProxy(O)) {\n // Object.keys only returns enumerable properties\n const keys = Object.keys(O)\n\n for (const key of keys) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n\n // 5. Return result.\n return result\n }\n\n // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n const keys = Reflect.ownKeys(O)\n\n // 4. For each key of keys.\n for (const key of keys) {\n // 1. Let desc be ? O.[[GetOwnProperty]](key).\n const desc = Reflect.getOwnPropertyDescriptor(O, key)\n\n // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n if (desc?.enumerable) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n }\n\n // 5. Return result.\n return result\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n throw webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type === 'Null' || type === 'Undefined') {\n return dict\n } else if (type !== 'Object') {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n const charCode = x.charCodeAt(index)\n\n if (charCode > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at ' +\n `index ${index} has a value of ${charCode} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed')\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long-long\nwebidl.converters['unsigned long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 64, 'unsigned')\n\n // 2. Return the IDL unsigned long long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long\nwebidl.converters['unsigned long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 32, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 32, 'unsigned')\n\n // 2. Return the IDL unsigned long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts)\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T\u2019s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n throw webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence<ByteString>'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence<sequence<ByteString>>'] = webidl.sequenceConverter(\n webidl.converters['sequence<ByteString>']\n)\n\nwebidl.converters['record<ByteString, ByteString>'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n", "const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isomorphicDecode } = require('./util')\n\nconst encoder = new TextEncoder()\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-token-code-point\n */\nconst HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/\nconst HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/ // eslint-disable-line\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n */\nconst HTTP_QUOTED_STRING_TOKENS = /[\\u0009|\\u0020-\\u007E|\\u0080-\\u00FF]/ // eslint-disable-line\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL\u2019s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePointsFast(\n ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = removeASCIIWhitespace(mimeType, true, true)\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = isomorphicDecode(body)\n\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n const href = url.href\n\n if (!excludeFragment) {\n return href\n }\n\n const hash = href.lastIndexOf('#')\n if (hash === -1) {\n return href\n }\n return href.slice(0, hash)\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn\u2019t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n/**\n * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n * @param {string} char\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePointsFast (char, input, position) {\n const idx = input.indexOf(char, position.position)\n const start = position.position\n\n if (idx === -1) {\n position.position = input.length\n return input.slice(start)\n }\n\n position.position = idx\n return input.slice(start, position.position)\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = removeHTTPWhitespace(input, true, true)\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePointsFast(\n '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = removeHTTPWhitespace(subtype, false, true)\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n return 'failure'\n }\n\n const typeLowercase = type.toLowerCase()\n const subtypeLowercase = subtype.toLowerCase()\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: typeLowercase,\n subtype: subtypeLowercase,\n /** @type {Map<string, string>} */\n parameters: new Map(),\n // https://mimesniff.spec.whatwg.org/#mime-type-essence\n essence: `${typeLowercase}/${subtypeLowercase}`\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n char => HTTP_WHITESPACE_REGEX.test(char),\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n parameterValue = removeHTTPWhitespace(parameterValue, false, true)\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType\u2019s parameters[parameterName] does not exist\n // then set mimeType\u2019s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) &&\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data\u2019s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data\u2019s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { parameters, essence } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType\u2019s\n // type, U+002F (/), and mimeType\u2019s subtype.\n let serialization = essence\n\n // 2. For each name \u2192 value of mimeType\u2019s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!HTTP_TOKEN_CODEPOINTS.test(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} char\n */\nfunction isHTTPWhiteSpace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === ' '\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} str\n */\nfunction removeHTTPWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n * @param {string} char\n */\nfunction isASCIIWhitespace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === '\\f' || char === ' '\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace\n */\nfunction removeASCIIWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n collectASequenceOfCodePointsFast,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n", "'use strict'\n\nconst { Blob, File: NativeFile } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' })\n\n fileBits = webidl.converters['sequence<BlobPart>'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n let t = options.type\n let d\n\n // eslint-disable-next-line no-labels\n substep: {\n if (t) {\n t = parseMIMEType(t)\n\n if (t === 'failure') {\n t = ''\n // eslint-disable-next-line no-labels\n break substep\n }\n\n t = serializeAMimeType(t).toLowerCase()\n }\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n d = options.lastModified\n }\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: t })\n this[kState] = {\n name: n,\n lastModified: d,\n type: t\n }\n }\n\n get name () {\n webidl.brandCheck(this, File)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, File)\n\n return this[kState].lastModified\n }\n\n get type () {\n webidl.brandCheck(this, File)\n\n return this[kState].type\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.size\n }\n\n get type () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.type\n }\n\n get name () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nObject.defineProperties(File.prototype, {\n [Symbol.toStringTag]: {\n value: 'File',\n configurable: true\n },\n name: kEnumerableProperty,\n lastModified: kEnumerableProperty\n})\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n ArrayBuffer.isView(V) ||\n types.isAnyArrayBuffer(V)\n ) {\n return webidl.converters.BufferSource(V, opts)\n }\n }\n\n return webidl.converters.USVString(V, opts)\n}\n\nwebidl.converters['sequence<BlobPart>'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(new TextEncoder().encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform\u2019s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return (\n (NativeFile && object instanceof NativeFile) ||\n object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n", "'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File: UndiciFile, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob, File: NativeFile } = require('buffer')\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n constructor (form) {\n if (form !== undefined) {\n throw webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['undefined']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' })\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this\u2019s entry list.\n this[kState] = this[kState].filter(entry => entry.name !== name)\n }\n\n get (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this\u2019s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this\u2019s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' })\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this\u2019s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this\u2019s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n }\n\n entries () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key+value'\n )\n }\n\n keys () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\nObject.defineProperties(FormData.prototype, {\n [Symbol.toStringTag]: {\n value: 'FormData',\n configurable: true\n }\n})\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n /** @type {FilePropertyBag} */\n const options = {\n type: value.type,\n lastModified: value.lastModified\n }\n\n value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n ? new File([value], filename, options)\n : new FileLike(value, filename, options)\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nmodule.exports = { FormData }\n", "'use strict'\n\nconst Busboy = require('busboy')\nconst util = require('../core/util')\nconst {\n ReadableStreamFrom,\n isBlobLike,\n isReadableStreamLike,\n readableStreamClose,\n createDeferredPromise,\n fullyReadBody\n} = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException, structuredClone } = require('./constants')\nconst { Blob, File: NativeFile } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File: UndiciFile } = require('./file')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\n\nlet ReadableStream = globalThis.ReadableStream\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be null.\n let stream = null\n\n // 2. If object is a ReadableStream object, then set stream to object.\n if (object instanceof ReadableStream) {\n stream = object\n } else if (isBlobLike(object)) {\n // 3. Otherwise, if object is a Blob object, set stream to the\n // result of running object\u2019s get stream.\n stream = object.stream()\n } else {\n // 4. Otherwise, set stream to a new ReadableStream object, and set\n // up stream.\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? new TextEncoder().encode(source) : source\n )\n queueMicrotask(() => readableStreamClose(controller))\n },\n start () {},\n type: undefined\n })\n }\n\n // 5. Assert: stream is a ReadableStream object.\n assert(isReadableStreamLike(stream))\n\n // 6. Let action be null.\n let action = null\n\n // 7. Let source be null.\n let source = null\n\n // 8. Let length be null.\n let length = null\n\n // 9. Let type be null.\n let type = null\n\n // 10. Switch on object:\n if (typeof object === 'string') {\n // Set source to the UTF-8 encoding of object.\n // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n source = object\n\n // Set type to `text/plain;charset=UTF-8`.\n type = 'text/plain;charset=UTF-8'\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object\u2019s list.\n source = object.toString()\n\n // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n type = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}`\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy W\u00E4rting <https://jimmy.warting.se/opensource> */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object\u2019s entry list and UTF-8.\n // - This ensures that the body is immutable and can't be changed afterwords\n // - That the content-length is calculated in advance.\n // - And that all parts are pre-encoded and ready to be sent.\n\n const enc = new TextEncoder()\n const blobParts = []\n const rn = new Uint8Array([13, 10]) // '\\r\\n'\n length = 0\n let hasUnknownSizeValue = false\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n const chunk = enc.encode(prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`)\n blobParts.push(chunk)\n length += chunk.byteLength\n } else {\n const chunk = enc.encode(`${prefix}; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') + '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`)\n blobParts.push(chunk, value, rn)\n if (typeof value.size === 'number') {\n length += chunk.byteLength + value.size + rn.byteLength\n } else {\n hasUnknownSizeValue = true\n }\n }\n }\n\n const chunk = enc.encode(`--${boundary}--`)\n blobParts.push(chunk)\n length += chunk.byteLength\n if (hasUnknownSizeValue) {\n length = null\n }\n\n // Set source to object.\n source = object\n\n action = async function * () {\n for (const part of blobParts) {\n if (part.stream) {\n yield * part.stream()\n } else {\n yield part\n }\n }\n }\n\n // Set type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n type = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set source to object.\n source = object\n\n // Set length to object\u2019s size.\n length = object.size\n\n // If object\u2019s type attribute is not the empty byte sequence, set\n // type to its value.\n if (object.type) {\n type = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n }\n\n // 11. If source is a byte sequence, then set action to a\n // step that returns source and length to source\u2019s length.\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 12. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n },\n type: undefined\n })\n }\n\n // 13. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 14. Return (body, type).\n return [body, type]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let \u00AB out1, out2 \u00BB be the result of teeing body\u2019s stream.\n const [out1, out2] = body.stream.tee()\n const out2Clone = structuredClone(out2, { transfer: [out2] })\n // This, for whatever reasons, unrefs out2Clone which allows\n // the process to exit by itself.\n const [, finalClone] = out2Clone.tee()\n\n // 2. Set body\u2019s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: finalClone,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n blob () {\n // The blob() method steps are to return the result of\n // running consume body with this and the following step\n // given a byte sequence bytes: return a Blob whose\n // contents are bytes and whose type attribute is this\u2019s\n // MIME type.\n return specConsumeBody(this, (bytes) => {\n let mimeType = bodyMimeType(this)\n\n if (mimeType === 'failure') {\n mimeType = ''\n } else if (mimeType) {\n mimeType = serializeAMimeType(mimeType)\n }\n\n // Return a Blob whose contents are bytes and type attribute\n // is mimeType.\n return new Blob([bytes], { type: mimeType })\n }, instance)\n },\n\n arrayBuffer () {\n // The arrayBuffer() method steps are to return the result\n // of running consume body with this and the following step\n // given a byte sequence bytes: return a new ArrayBuffer\n // whose contents are bytes.\n return specConsumeBody(this, (bytes) => {\n return new Uint8Array(bytes).buffer\n }, instance)\n },\n\n text () {\n // The text() method steps are to return the result of running\n // consume body with this and UTF-8 decode.\n return specConsumeBody(this, utf8DecodeBytes, instance)\n },\n\n json () {\n // The json() method steps are to return the result of running\n // consume body with this and parse JSON from bytes.\n return specConsumeBody(this, parseJSONFromBytes, instance)\n },\n\n async formData () {\n webidl.brandCheck(this, instance)\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType\u2019s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = Busboy({\n headers,\n defParamCharset: 'utf8'\n })\n } catch (err) {\n throw new DOMException(`${err}`, 'AbortError')\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, info) => {\n const { filename, encoding, mimeType } = info\n const chunks = []\n\n if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(new TypeError(err)))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType\u2019s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n const textDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += textDecoder.decode(chunk, { stream: true })\n }\n text += textDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n throw webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n * @param {Response|Request} object\n * @param {(value: unknown) => unknown} convertBytesToJSValue\n * @param {Response|Request} instance\n */\nasync function specConsumeBody (object, convertBytesToJSValue, instance) {\n webidl.brandCheck(object, instance)\n\n throwIfAborted(object[kState])\n\n // 1. If object is unusable, then return a promise rejected\n // with a TypeError.\n if (bodyUnusable(object[kState].body)) {\n throw new TypeError('Body is unusable')\n }\n\n // 2. Let promise be a new promise.\n const promise = createDeferredPromise()\n\n // 3. Let errorSteps given error be to reject promise with error.\n const errorSteps = (error) => promise.reject(error)\n\n // 4. Let successSteps given a byte sequence data be to resolve\n // promise with the result of running convertBytesToJSValue\n // with data. If that threw an exception, then run errorSteps\n // with that exception.\n const successSteps = (data) => {\n try {\n promise.resolve(convertBytesToJSValue(data))\n } catch (e) {\n errorSteps(e)\n }\n }\n\n // 5. If object\u2019s body is null, then run successSteps with an\n // empty byte sequence.\n if (object[kState].body == null) {\n successSteps(new Uint8Array())\n return promise.promise\n }\n\n // 6. Otherwise, fully read object\u2019s body given successSteps,\n // errorSteps, and object\u2019s relevant global object.\n fullyReadBody(object[kState].body, successSteps, errorSteps)\n\n // 7. Return promise.\n return promise.promise\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction bodyUnusable (body) {\n // An object including the Body interface mixin is\n // said to be unusable if its body is non-null and\n // its body\u2019s stream is disturbed or locked.\n return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#utf-8-decode\n * @param {Buffer} buffer\n */\nfunction utf8DecodeBytes (buffer) {\n if (buffer.length === 0) {\n return ''\n }\n\n // 1. Let buffer be the result of peeking three bytes from\n // ioQueue, converted to a byte sequence.\n\n // 2. If buffer is 0xEF 0xBB 0xBF, then read three\n // bytes from ioQueue. (Do nothing with those bytes.)\n if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n buffer = buffer.subarray(3)\n }\n\n // 3. Process a queue with an instance of UTF-8\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n const output = new TextDecoder().decode(buffer)\n\n // 4. Return output.\n return output\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n * @param {Uint8Array} bytes\n */\nfunction parseJSONFromBytes (bytes) {\n return JSON.parse(utf8DecodeBytes(bytes))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n * @param {import('./response').Response|import('./request').Request} object\n */\nfunction bodyMimeType (object) {\n const { headersList } = object[kState]\n const contentType = headersList.get('content-type')\n\n if (contentType === null) {\n return 'failure'\n }\n\n return parseMIMEType(contentType)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n", "'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n this.contentLength = bodyStream.length\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.onError(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onConnect(abort)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onData(chunk)\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n return this[kHandler].onComplete(trailers)\n }\n\n onError (error) {\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n return this[kHandler].onError(error)\n }\n\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n}\n\nfunction processHeaderValue (key, val) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n val = val != null ? `${val}` : ''\n\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n return `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request, key, val) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type'\n ) {\n request.contentType = val\n request.headers += processHeaderValue(key, val)\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n } else if (value === 'close') {\n request.reset = true\n }\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n request.headers += processHeaderValue(key, val[i])\n }\n } else {\n request.headers += processHeaderValue(key, val)\n }\n }\n}\n\nmodule.exports = Request\n", "'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n", "'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = null\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed] = this[kOnDestroyed] || []\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed] || this[kOnDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n", "'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\n\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache\nif (global.FinalizationRegistry) {\n SessionCache = class WeakSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n this._sessionRegistry = new global.FinalizationRegistry((key) => {\n if (this._sessionCache.size < this._maxCachedSessions) {\n return\n }\n\n const ref = this._sessionCache.get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this._sessionCache.delete(key)\n }\n })\n }\n\n get (sessionKey) {\n const ref = this._sessionCache.get(sessionKey)\n return ref ? ref.deref() : null\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n this._sessionCache.set(sessionKey, new WeakRef(session))\n this._sessionRegistry.register(session, sessionKey)\n }\n }\n} else {\n SessionCache = class SimpleSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n }\n\n get (sessionKey) {\n return this._sessionCache.get(sessionKey)\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n if (this._sessionCache.size >= this._maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = this._sessionCache.keys().next()\n this._sessionCache.delete(oldestKey)\n }\n\n this._sessionCache.set(sessionKey, session)\n }\n }\n}\n\nfunction buildConnector ({ maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions)\n timeout = timeout == null ? 10e3 : timeout\n\n return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n localAddress,\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // TODO (fix): Can a session become invalid once established? Don't think so?\n sessionCache.set(sessionKey, session)\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n localAddress,\n port: port || 80,\n host: hostname\n })\n }\n\n // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n if (options.keepAlive == null || options.keepAlive) {\n const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay\n socket.setKeepAlive(true, keepAliveInitialDelay)\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n", null, null, "'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n this.opts.query = null\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n return (\n (header.length === 4 && header.toString().toLowerCase() === 'host') ||\n (removeContent && header.toString().toLowerCase().indexOf('content-') === 0) ||\n (unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') ||\n (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie')\n )\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n", "'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='\n", "// @ts-check\n\n'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst util = require('./core/util')\nconst timers = require('./timers')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError,\n ResponseExceededMaxSizeError,\n ClientDestroyedError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors,\n kLocalAddress,\n kMaxResponseSize\n} = require('./core/symbols')\nconst FastBuffer = Buffer[Symbol.species]\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\n/**\n * @type {import('../types/client').default}\n */\nclass Client extends DispatcherBase {\n /**\n *\n * @param {string|URL} url\n * @param {import('../types/client').Client.Options} options\n */\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient,\n localAddress,\n maxResponseSize,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n throw new InvalidArgumentError('localAddress must be valid string IP address')\n }\n\n if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n throw new InvalidArgumentError('maxResponseSize must be a positive number')\n }\n\n if (\n autoSelectFamilyAttemptTimeout != null &&\n (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n ) {\n throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || 16384\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kLocalAddress] = localAddress != null ? localAddress : null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = new Request(origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n return new Promise((resolve) => {\n if (!this[kSize]) {\n resolve(null)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n // TODO (fix): Should we error here with ClientDestroyedError?\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp-wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd-wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp-wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\nllhttpPromise.catch()\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n this.connection = ''\n this.maxResponseSize = client[kMaxResponseSize]\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n timers.clearTimeout(this.timeout)\n if (value) {\n this.timeout = timers.setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message =\n 'Response does not match the HTTP/1.1 protocol (' +\n Buffer.from(llhttp.memory.buffer, ptr, len).toString() +\n ')'\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n timers.clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n this.connection += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = (\n shouldKeepAlive ||\n // Override llhttp value which does not allow keepAlive for HEAD.\n (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n )\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (this.shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n let pause\n try {\n pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n\n if (request.method === 'HEAD') {\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode, maxResponseSize } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n util.destroy(socket, new ResponseExceededMaxSizeError())\n return -1\n }\n\n this.bytesRead += buf.length\n\n try {\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n this.connection = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n try {\n request.onComplete(headers)\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n parser.readMore()\n}\n\nfunction onSocketError (err) {\n const { [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.onMessageComplete()\n return\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser } = this\n\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n return\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client } = this\n\n if (!this[kError] && this[kParser].statusCode && !this[kParser].shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n this[kParser].onMessageComplete()\n }\n\n this[kParser].destroy()\n this[kParser] = null\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substr(1, idx - 1)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (client.destroyed) {\n util.destroy(socket.on('error', () => {}), new ClientDestroyedError())\n return\n }\n\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kError] = null\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n socket[kClient] = client\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n client[kSocket] = socket\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n if (client.destroyed) {\n return\n }\n\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client[kClosedResolve] && !client[kSize]) {\n client[kClosedResolve]()\n client[kClosedResolve] = null\n return\n }\n\n const socket = client[kSocket]\n\n if (socket && !socket.destroyed) {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket) {\n connect(client)\n return\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (util.isStream(request.body) && util.bodyLength(request.body) === 0) {\n request.body\n .on('data', /* istanbul ignore next */ function () {\n /* istanbul ignore next */\n assert(false)\n })\n .on('error', function (err) {\n errorRequest(client, request, err)\n })\n .on('end', function () {\n util.destroy(this)\n })\n\n request.body = null\n }\n\n if (client[kRunning] > 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\nfunction write (client, request) {\n const { body, method, path, host, upgrade, headers, blocking, reset } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n if (request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (reset != null) {\n socket[kReset] = reset\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining] && !socket[kReset]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeStream ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n if (finished) {\n return\n }\n\n try {\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n if (finished) {\n return\n }\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n onFinished(new RequestAbortedError())\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(buffer)\n socket.uncork()\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(socket, err)\n }\n}\n\nasync function writeIterable ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n socket.cork()\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'latin1')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n socket.uncork()\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'latin1')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n", "/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n", "const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n", "'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n", "'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout == null ? 10e3 : connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n", "'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n", "'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n}\n\nmodule.exports = function () {\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n", "'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n", "// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nmodule.exports = class BodyReadable extends Readable {\n constructor ({\n resume,\n abort,\n contentType = '',\n highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n }) {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n async dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n const signal = opts && opts.signal\n const abortFn = () => {\n this.destroy()\n }\n let signalListenerCleanup\n if (signal) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new InvalidArgumentError('signal must be an AbortSignal')\n }\n util.throwIfAborted(signal)\n signalListenerCleanup = util.addAbortListener(signal, abortFn)\n }\n try {\n for await (const chunk of this) {\n util.throwIfAborted(signal)\n limit -= Buffer.byteLength(chunk)\n if (limit < 0) {\n return\n }\n }\n } catch {\n util.throwIfAborted(signal)\n } finally {\n if (typeof signalListenerCleanup === 'function') {\n signalListenerCleanup()\n } else if (signalListenerCleanup) {\n signalListenerCleanup[Symbol.dispose]()\n }\n }\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n", "const assert = require('assert')\nconst {\n ResponseStatusCodeError\n} = require('../core/errors')\nconst { toUSVString } = require('../core/util')\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n assert(body)\n\n let chunks = []\n let limit = 0\n\n for await (const chunk of body) {\n chunks.push(chunk)\n limit += chunk.length\n if (limit > 128 * 1024) {\n chunks = null\n break\n }\n }\n\n if (statusCode === 204 || !contentType || !chunks) {\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = toUSVString(Buffer.concat(chunks))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nmodule.exports = { getResolveErrorBodyCallback }\n", "const { addAbortListener } = require('../core/util')\nconst { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n addAbortListener(self[kSignal], self[kListener])\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n", "'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n throw new InvalidArgumentError('invalid highWaterMark')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n this.highWaterMark = highWaterMark\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n const body = new Readable({ resume, abort, contentType, highWaterMark })\n\n this.callback = null\n this.res = body\n\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n } else {\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\n", "'use strict'\n\nconst { finished, PassThrough } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError || false\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { factory, opaque, context, callback, responseHeaders } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n\n let res\n\n if (this.throwOnError && statusCode >= 400) {\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n res = new PassThrough()\n\n this.callback = null\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body: res, contentType, statusCode, statusMessage, headers }\n )\n } else {\n res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n }\n\n res.on('drain', resume)\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res.write(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n", "'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n", "'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n", "'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n", "'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n", "'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\nconst {\n types: {\n isPromise\n }\n} = require('util')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record<string, string>} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [\n ...keyValuePairs,\n Buffer.from(`${key}`),\n Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n ], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches, _data = data) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const body = typeof _data === 'function'\n ? _data({ ...opts, headers: optsHeaders })\n : _data\n\n // util.types.isPromise is likely needed for jest.\n if (isPromise(body)) {\n // If handleReply is asynchronous, throwing an error\n // in the callback will reject the promise, rather than\n // synchronously throw the error, which breaks some tests.\n // Rather, we wait for the callback to resolve if it is a\n // promise, and then re-run handleReply with the new body.\n body.then((newData) => handleReply(mockDispatches, newData))\n return\n }\n\n const responseData = getResponseData(body)\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n", "'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n", "'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n", "'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(\u2026)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '\u2705' : '\u274C',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n", "'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n", "'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Pool = require('./pool')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n const { clientFactory = defaultFactory } = opts\n\n if (typeof clientFactory !== 'function') {\n throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = opts.headers || {}\n\n if (opts.auth && opts.token) {\n throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token')\n } else if (opts.auth) {\n /* @deprecated in favour of opts.token */\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n } else if (opts.token) {\n this[kProxyHeaders]['proxy-authorization'] = opts.token\n }\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host } = resolvedUrl\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = clientFactory(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError('Proxy response !== 200 when HTTP Tunneling'))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record<string, string>} headers\n * @returns {Record<string, string>}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record<string, string>} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record<string, string>} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n", "'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n", "'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst { webidl } = require('./webidl')\nconst assert = require('assert')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n\n // Trimming the end with `.replace()` and a RegExp is typically subject to\n // ReDoS. This is safer and faster.\n let i = potentialValue.length\n while (/[\\r\\n\\t ]/.test(potentialValue.charAt(--i)));\n return potentialValue.slice(0, i + 1).replace(/^[\\r\\n\\t ]+/, '')\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (const header of object) {\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n throw webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header\u2019s first item, header\u2019s second item) to headers.\n headers.append(header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key \u2192 value in object,\n // append (key, value) to headers\n for (const [key, value] of Object.entries(object)) {\n headers.append(key, value)\n }\n } else {\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n }\n}\n\nclass HeadersList {\n /** @type {[string, string][]|null} */\n cookies = null\n\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n this.cookies = init.cookies\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n this.cookies = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header\u2019s name.\n const lowercaseName = name.toLowerCase()\n const exists = this[kHeadersMap].get(lowercaseName)\n\n // 2. Append (name, value) to list.\n if (exists) {\n const delimiter = lowercaseName === 'cookie' ? '; ' : ', '\n this[kHeadersMap].set(lowercaseName, {\n name: exists.name,\n value: `${exists.value}${delimiter}${value}`\n })\n } else {\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n if (lowercaseName === 'set-cookie') {\n this.cookies ??= []\n this.cookies.push(value)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n const lowercaseName = name.toLowerCase()\n\n if (lowercaseName === 'set-cookie') {\n this.cookies = [value]\n }\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n return this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n\n if (name === 'set-cookie') {\n this.cookies = null\n }\n\n return this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n // 1. If list does not contain name, then return null.\n if (!this.contains(name)) {\n return null\n }\n\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return this[kHeadersMap].get(name.toLowerCase())?.value ?? null\n }\n\n * [Symbol.iterator] () {\n // use the lowercased name\n for (const [name, { value }] of this[kHeadersMap]) {\n yield [name, value]\n }\n }\n\n get entries () {\n const headers = {}\n\n if (this[kHeadersMap].size) {\n for (const { name, value } of this[kHeadersMap].values()) {\n headers[name] = value\n }\n }\n\n return headers\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this\u2019s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers\u2019s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers\u2019s header list.\n // 8. If headers\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n return this[kHeadersList].append(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this\u2019s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this\u2019s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this\u2019s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n return this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this\u2019s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this\u2019s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this\u2019s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n return this[kHeadersList].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n getSetCookie () {\n webidl.brandCheck(this, Headers)\n\n // 1. If this\u2019s header list does not contain `Set-Cookie`, then return \u00AB \u00BB.\n // 2. Return the values of all headers in this\u2019s header list whose name is\n // a byte-case-insensitive match for `Set-Cookie`, in order.\n\n const list = this[kHeadersList].cookies\n\n if (list) {\n return [...list]\n }\n\n return []\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n get [kHeadersSortedMap] () {\n if (this[kHeadersList][kHeadersSortedMap]) {\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n // 1. Let headers be an empty list of headers with the key being the name\n // and value the value.\n const headers = []\n\n // 2. Let names be the result of convert header names to a sorted-lowercase\n // set with all the names of the headers in list.\n const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)\n const cookies = this[kHeadersList].cookies\n\n // 3. For each name of names:\n for (const [name, value] of names) {\n // 1. If name is `set-cookie`, then:\n if (name === 'set-cookie') {\n // 1. Let values be a list of all values of headers in list whose name\n // is a byte-case-insensitive match for name, in order.\n\n // 2. For each value of values:\n // 1. Append (name, value) to headers.\n for (const value of cookies) {\n headers.push([name, value])\n }\n } else {\n // 2. Otherwise:\n\n // 1. Let value be the result of getting name from list.\n\n // 2. Assert: value is non-null.\n assert(value !== null)\n\n // 3. Append (name, value) to headers.\n headers.push([name, value])\n }\n }\n\n this[kHeadersList][kHeadersSortedMap] = headers\n\n // 4. Return headers.\n return headers\n }\n\n keys () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'value'\n )\n }\n\n entries () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key+value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n webidl.brandCheck(this, Headers)\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n getSetCookie: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty,\n [Symbol.iterator]: { enumerable: false },\n [Symbol.toStringTag]: {\n value: 'Headers',\n configurable: true\n }\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence<sequence<ByteString>>'](V)\n }\n\n return webidl.converters['record<ByteString, ByteString>'](V)\n }\n\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n", "'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike,\n isomorphicEncode\n} = require('./util')\nconst {\n redirectStatus,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this\u2019s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data = undefined, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' })\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = new TextEncoder('utf-8').encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this\u2019s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' })\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object\u2019s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatus.includes(status)) {\n throw new RangeError('Invalid status code ' + status)\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this\u2019s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject\u2019s response\u2019s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n const value = isomorphicEncode(URLSerializer(parsedURL))\n\n // 7. Append `Location`/value to responseObject\u2019s response\u2019s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this\u2019s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is this\u2019s response\u2019s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers()\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n // Returns response\u2019s type, e.g., \"cors\".\n get type () {\n webidl.brandCheck(this, Response)\n\n // The type getter steps are to return this\u2019s response\u2019s type.\n return this[kState].type\n }\n\n // Returns response\u2019s URL, if it has one; otherwise the empty string.\n get url () {\n webidl.brandCheck(this, Response)\n\n const urlList = this[kState].urlList\n\n // The url getter steps are to return the empty string if this\u2019s\n // response\u2019s URL is null; otherwise this\u2019s response\u2019s URL,\n // serialized with exclude fragment set to true.\n const url = urlList[urlList.length - 1] ?? null\n\n if (url === null) {\n return ''\n }\n\n return URLSerializer(url, true)\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n webidl.brandCheck(this, Response)\n\n // The redirected getter steps are to return true if this\u2019s response\u2019s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response\u2019s status.\n get status () {\n webidl.brandCheck(this, Response)\n\n // The status getter steps are to return this\u2019s response\u2019s status.\n return this[kState].status\n }\n\n // Returns whether response\u2019s status is an ok status.\n get ok () {\n webidl.brandCheck(this, Response)\n\n // The ok getter steps are to return true if this\u2019s response\u2019s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response\u2019s status message.\n get statusText () {\n webidl.brandCheck(this, Response)\n\n // The statusText getter steps are to return this\u2019s response\u2019s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response\u2019s headers as Headers.\n get headers () {\n webidl.brandCheck(this, Response)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n get body () {\n webidl.brandCheck(this, Response)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Response)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n // Returns a clone of response.\n clone () {\n webidl.brandCheck(this, Response)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n throw webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this\u2019s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Response',\n configurable: true\n }\n})\n\nObject.defineProperties(Response, {\n json: kEnumerableProperty,\n redirect: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response\u2019s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response\u2019s body is non-null, then set newResponse\u2019s body to the\n // result of cloning response\u2019s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response\u2019s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response\u2019s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response\u2019s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(new DOMException('The operation was aborted.', 'AbortError'))\n : makeNetworkError('Request was cancelled.')\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response\u2019s response\u2019s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response\u2019s response\u2019s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response\u2019s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kHeaders], init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n throw webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code ' + response.status\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n types.isAnyArrayBuffer(V) ||\n types.isTypedArray(V) ||\n types.isDataView(V)\n ) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response,\n cloneResponse\n}\n", "/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod,\n makePolicyContainer\n} = require('./util')\nconst {\n forbiddenMethods,\n corsSafeListedMethods,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n requestDuplex\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require('events')\n\nlet TransformStream = globalThis.TransformStream\n\nconst kInit = Symbol('init')\nconst kAbortController = Symbol('abortController')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kInit) {\n return\n }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' })\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin(),\n get origin () {\n return this.baseUrl?.origin\n },\n policyContainer: makePolicyContainer()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this\u2019s relevant settings object\u2019s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input\u2019s request.\n request = input[kState]\n\n // 9. Set signal to input\u2019s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this\u2019s relevant settings object\u2019s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request\u2019s window is an environment settings object and its origin\n // is same origin with origin, then set window to request\u2019s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if ('window' in init) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request\u2019s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request\u2019s method.\n method: request.method,\n // header list A copy of request\u2019s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This\u2019s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request\u2019s priority.\n priority: request.priority,\n // origin request\u2019s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request\u2019s referrer.\n referrer: request.referrer,\n // referrer policy request\u2019s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request\u2019s mode.\n mode: request.mode,\n // credentials mode request\u2019s credentials mode.\n credentials: request.credentials,\n // cache mode request\u2019s cache mode.\n cache: request.cache,\n // redirect mode request\u2019s redirect mode.\n redirect: request.redirect,\n // integrity metadata request\u2019s integrity metadata.\n integrity: request.integrity,\n // keepalive request\u2019s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request\u2019s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request\u2019s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request\u2019s URL list.\n urlList: [...request.urlList]\n })\n\n // 13. If init is not empty, then:\n if (Object.keys(init).length > 0) {\n // 1. If request\u2019s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request\u2019s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request\u2019s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request\u2019s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request\u2019s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request\u2019s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request\u2019s URL to request\u2019s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request\u2019s URL list to \u00AB request\u2019s URL \u00BB.\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request\u2019s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // - parsedReferrer\u2019s scheme is \"about\" and path is the string \"client\"\n // - parsedReferrer\u2019s origin is not same origin with origin\n // then set request\u2019s referrer to \"client\".\n if (\n (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') ||\n (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl))\n ) {\n request.referrer = 'client'\n } else {\n // 4. Otherwise, set request\u2019s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request\u2019s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n throw webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request\u2019s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request\u2019s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n }\n\n // 18. If init[\"cache\"] exists, then set request\u2019s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n }\n\n // 21. If request\u2019s cache mode is \"only-if-cached\" and request\u2019s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request\u2019s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n }\n\n // 23. If init[\"integrity\"] exists, then set request\u2019s integrity metadata to it.\n if (init.integrity !== undefined && init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request\u2019s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(init.method)) {\n throw TypeError(`'${init.method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethods.indexOf(method.toUpperCase()) !== -1) {\n throw TypeError(`'${init.method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethod(init.method)\n\n // 4. Set request\u2019s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this\u2019s request to request.\n this[kState] = request\n\n // 28. Set this\u2019s signal to a new AbortSignal object with this\u2019s relevant\n // Realm.\n // TODO: could this be simplified with AbortSignal.any\n // (https://dom.spec.whatwg.org/#dom-abortsignal-any)\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this\u2019s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n // Keep a strong ref to ac while request object\n // is alive. This is needed to prevent AbortController\n // from being prematurely garbage collected.\n // See, https://github.com/nodejs/undici/issues/1926.\n this[kAbortController] = ac\n\n const acRef = new WeakRef(ac)\n const abort = function () {\n const ac = acRef.deref()\n if (ac !== undefined) {\n ac.abort(this.reason)\n }\n }\n\n // Third-party AbortControllers may not work with these.\n // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n try {\n // If the max amount of listeners is equal to the default, increase it\n // This is only available in node >= v19.9.0\n if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n setMaxListeners(100, signal)\n } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) {\n setMaxListeners(100, signal)\n }\n } catch {}\n\n util.addAbortListener(signal, abort)\n requestFinalizer.register(ac, { signal, abort })\n }\n }\n\n // 30. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is request\u2019s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers()\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this\u2019s request\u2019s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this\u2019s request\u2019s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethods.includes(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this\u2019s headers\u2019s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (Object.keys(init).length !== 0) {\n // 1. Let headers be a copy of this\u2019s headers and its associated header\n // list.\n let headers = new Headers(this[kHeaders])\n\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n if (init.headers !== undefined) {\n headers = init.headers\n }\n\n // 3. Empty this\u2019s headers\u2019s header list.\n this[kHeaders][kHeadersList].clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header\u2019s name/header\u2019s value to this\u2019s headers.\n if (headers.constructor.name === 'Headers') {\n for (const [key, val] of headers) {\n this[kHeaders].append(key, val)\n }\n } else {\n // 5. Otherwise, fill this\u2019s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input\u2019s request\u2019s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request\u2019s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n (init.body != null || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request\u2019s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this\u2019s headers\u2019s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this\u2019s headers.\n if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody\u2019s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If initBody is non-null and init[\"duplex\"] does not exist,\n // then throw a TypeError.\n if (initBody != null && init.duplex == null) {\n throw new TypeError('RequestInit: duplex option is required when sending a body.')\n }\n\n // 2. If this\u2019s request\u2019s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 3. Set this\u2019s request\u2019s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this\u2019s request\u2019s body to finalBody.\n this[kState].body = finalBody\n }\n\n // Returns request\u2019s HTTP method, which is \"GET\" by default.\n get method () {\n webidl.brandCheck(this, Request)\n\n // The method getter steps are to return this\u2019s request\u2019s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n webidl.brandCheck(this, Request)\n\n // The url getter steps are to return this\u2019s request\u2019s URL, serialized.\n return URLSerializer(this[kState].url)\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n webidl.brandCheck(this, Request)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n webidl.brandCheck(this, Request)\n\n // The destination getter are to return this\u2019s request\u2019s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global\u2019s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n webidl.brandCheck(this, Request)\n\n // 1. If this\u2019s request\u2019s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this\u2019s request\u2019s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this\u2019s request\u2019s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request\u2019s\n // referrer.\n get referrerPolicy () {\n webidl.brandCheck(this, Request)\n\n // The referrerPolicy getter steps are to return this\u2019s request\u2019s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n webidl.brandCheck(this, Request)\n\n // The mode getter steps are to return this\u2019s request\u2019s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this\u2019s request\u2019s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser\u2019s cache when fetching.\n get cache () {\n webidl.brandCheck(this, Request)\n\n // The cache getter steps are to return this\u2019s request\u2019s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n webidl.brandCheck(this, Request)\n\n // The redirect getter steps are to return this\u2019s request\u2019s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request\u2019s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n webidl.brandCheck(this, Request)\n\n // The integrity getter steps are to return this\u2019s request\u2019s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n webidl.brandCheck(this, Request)\n\n // The keepalive getter steps are to return this\u2019s request\u2019s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isReloadNavigation getter steps are to return true if this\u2019s\n // request\u2019s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isHistoryNavigation getter steps are to return true if this\u2019s request\u2019s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n webidl.brandCheck(this, Request)\n\n // The signal getter steps are to return this\u2019s signal.\n return this[kSignal]\n }\n\n get body () {\n webidl.brandCheck(this, Request)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Request)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n get duplex () {\n webidl.brandCheck(this, Request)\n\n return 'half'\n }\n\n // Returns a clone of request.\n clone () {\n webidl.brandCheck(this, Request)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this\u2019s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedRequestObject = new Request(kInit)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers()\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject\u2019s signal follow this\u2019s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n util.addAbortListener(\n this.signal,\n () => {\n ac.abort(this.signal.reason)\n }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request\u2019s body is non-null, set newRequest\u2019s body to the\n // result of cloning request\u2019s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty,\n duplex: kEnumerableProperty,\n destination: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n isHistoryNavigation: kEnumerableProperty,\n isReloadNavigation: kEnumerableProperty,\n keepalive: kEnumerableProperty,\n integrity: kEnumerableProperty,\n cache: kEnumerableProperty,\n credentials: kEnumerableProperty,\n attribute: kEnumerableProperty,\n referrerPolicy: kEnumerableProperty,\n referrer: kEnumerableProperty,\n mode: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Request',\n configurable: true\n }\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: referrerPolicy\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: requestMode\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: requestCredentials\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: requestCache\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: requestRedirect\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n },\n {\n key: 'duplex',\n converter: webidl.converters.DOMString,\n allowedValues: requestDuplex\n }\n])\n\nmodule.exports = { Request, makeRequest }\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody,\n readableStreamClose,\n isomorphicEncode,\n urlIsLocal,\n urlIsHttpHttpsScheme,\n urlHasHttpsScheme\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody } = require('./body')\nconst {\n redirectStatus,\n nullBodyStatus,\n safeMethods,\n requestBodyHeader,\n subresource,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\nconst { getGlobalDispatcher } = require('../global')\nconst { webidl } = require('./webidl')\nconst { STATUS_CODES } = require('http')\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream = globalThis.ReadableStream\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n // 2 terminated listeners get added per request,\n // but only 1 gets removed. If there are 20 redirects,\n // 21 listeners will be added.\n // See https://github.com/nodejs/undici/issues/1711\n // TODO (fix): Find and fix root cause for leaked listener.\n this.setMaxListeners(21)\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n // https://fetch.spec.whatwg.org/#fetch-controller-abort\n abort (error) {\n if (this.state !== 'ongoing') {\n return\n }\n\n // 1. Set controller\u2019s state to \"aborted\".\n this.state = 'aborted'\n\n // 2. Let fallbackError be an \"AbortError\" DOMException.\n // 3. Set error to fallbackError if it is not given.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 4. Let serializedError be StructuredSerialize(error).\n // If that threw an exception, catch it, and let\n // serializedError be StructuredSerialize(fallbackError).\n\n // 5. Set controller\u2019s serialized abort reason to serializedError.\n this.serializedAbortReason = error\n\n this.connection?.destroy(error)\n this.emit('terminated', error)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nasync function fetch (input, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' })\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject\u2019s request.\n const request = requestObject[kState]\n\n // 4. If requestObject\u2019s signal\u2019s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort the fetch() call with p, request, null, and\n // requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, null, requestObject.signal.reason)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request\u2019s client\u2019s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request\u2019s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this\u2019s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject\u2019s signal:\n addAbortListener(\n requestObject.signal,\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Assert: controller is non-null.\n assert(controller != null)\n\n // 3. Abort controller with requestObject\u2019s signal\u2019s abort reason.\n controller.abort(requestObject.signal.reason)\n\n // 4. Abort the fetch() call with p, request, responseObject,\n // and requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, responseObject, requestObject.signal.reason)\n }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return\n }\n\n // 2. If response\u2019s aborted flag is set, then:\n if (response.aborted) {\n // 1. Let deserializedError be the result of deserialize a serialized\n // abort reason given controller\u2019s serialized abort reason and\n // relevantRealm.\n\n // 2. Abort the fetch() call with p, request, responseObject, and\n // deserializedError.\n\n abortFetch(p, request, responseObject, controller.serializedAbortReason)\n return\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response\u2019s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response\u2019s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response\u2019s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response\u2019s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL\u2019s scheme is not an HTTP(S) scheme, then return.\n if (!urlIsHttpHttpsScheme(originalURL)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response\u2019s timing allow passed flag is not set, then:\n if (!timingInfo.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo\u2019s end time to the coarsened shared current time\n // given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability.\n // TODO: given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability?\n timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) {\n performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject, error) {\n // Note: AbortSignal.reason was added in node v17.2.0\n // which would give us an undefined error to reject with.\n // Remove this once node v16 is no longer supported.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 1. Reject promise with error.\n p.reject(error)\n\n // 2. If request\u2019s body is not null and is readable, then cancel request\u2019s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 3. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 4. Let response be responseObject\u2019s response.\n const response = responseObject[kState]\n\n // 5. If response\u2019s body is not null and is readable, then error response\u2019s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request\u2019s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request\u2019s client\u2019s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request\u2019s client\u2019s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request\u2019s body is a byte sequence, then set request\u2019s body to\n // request\u2019s body as a body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request\u2019s window is \"client\", then set request\u2019s window to request\u2019s\n // client, if request\u2019s client\u2019s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request\u2019s origin is \"client\", then set request\u2019s origin to request\u2019s\n // client\u2019s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request\u2019s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request\u2019s client is non-null, then set request\u2019s policy\n // container to a clone of request\u2019s client\u2019s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request\u2019s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request\u2019s header list does not contain `Accept`, then:\n if (!request.headersList.contains('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request\u2019s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request\u2019s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request\u2019s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request\u2019s header list.\n if (!request.headersList.contains('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request\u2019s priority is null, then use request\u2019s initiator and\n // destination appropriately in setting request\u2019s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresource.includes(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request\u2019s local-URLs-only flag is set and request\u2019s current URL is\n // not local, then set response to a network error.\n if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request\u2019s referrer policy is the empty string, then set request\u2019s\n // referrer policy to request\u2019s policy container\u2019s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request\u2019s referrer is not \"no-referrer\", then set request\u2019s\n // referrer to the result of invoking determine request\u2019s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request\u2019s current URL\u2019s scheme to \"https\" if all of the following\n // conditions are true:\n // - request\u2019s current URL\u2019s scheme is \"http\"\n // - request\u2019s current URL\u2019s host is a domain\n // - Matching request\u2019s current URL\u2019s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request\u2019s current URL\u2019s origin is same origin with request\u2019s origin,\n // and request\u2019s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request\u2019s current URL\u2019s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request\u2019s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request\u2019s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request\u2019s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request\u2019s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request\u2019s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s current URL\u2019s scheme is not an HTTP(S) scheme\n if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request\u2019s use-CORS-preflight flag is set\n // - request\u2019s unsafe-request flag is set and either request\u2019s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request\u2019s header list is not empty\n // 1. Set request\u2019s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request\u2019s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request\u2019s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response\u2019s header list.\n // TODO\n // 2. If request\u2019s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response\u2019s CORS-exposed header-name list to\n // all unique header names in response\u2019s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response\u2019s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response\u2019s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse\u2019s URL list is empty, then set it to a clone of\n // request\u2019s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request\u2019s timing allow failed flag is unset, then set\n // internalResponse\u2019s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response\u2019s type is \"opaque\", internalResponse\u2019s status is 206,\n // internalResponse\u2019s range-requested flag is set, and request\u2019s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.contains('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request\u2019s method is\n // `HEAD` or `CONNECT`, or internalResponse\u2019s status is a null body status,\n // set internalResponse\u2019s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request\u2019s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request\u2019s response tainting is \"opaque\", or response\u2019s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request\u2019s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response\u2019s body to bytes as a body.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response\u2019s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nasync function schemeFetch (fetchParams) {\n // Note: since the connection is destroyed on redirect, which sets fetchParams to a\n // cancelled state, we do not want this condition to trigger *unless* there have been\n // no redirects. See https://github.com/nodejs/undici/issues/1776\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Let request be fetchParams\u2019s request.\n const { request } = fetchParams\n\n const { protocol: scheme } = requestCurrentURL(request)\n\n // 3. Switch on request\u2019s current URL\u2019s scheme and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request\u2019s current URL\u2019s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is \u00AB (`Content-Type`, `text/html;charset=utf-8`) \u00BB,\n // and body is the empty byte sequence as a body.\n\n // Otherwise, return a network error.\n return makeNetworkError('about scheme is not supported')\n }\n case 'blob:': {\n if (!resolveObjectURL) {\n resolveObjectURL = require('buffer').resolveObjectURL\n }\n\n // 1. Let blobURLEntry be request\u2019s current URL\u2019s blob URL entry.\n const blobURLEntry = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (blobURLEntry.search.length !== 0) {\n return makeNetworkError('NetworkError when attempting to fetch resource.')\n }\n\n const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString())\n\n // 2. If request\u2019s method is not `GET`, blobURLEntry is null, or blobURLEntry\u2019s\n // object is not a Blob object, then return a network error.\n if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n return makeNetworkError('invalid method')\n }\n\n // 3. Let bodyWithType be the result of safely extracting blobURLEntry\u2019s object.\n const bodyWithType = safelyExtractBody(blobURLEntryObject)\n\n // 4. Let body be bodyWithType\u2019s body.\n const body = bodyWithType[0]\n\n // 5. Let length be body\u2019s length, serialized and isomorphic encoded.\n const length = isomorphicEncode(`${body.length}`)\n\n // 6. Let type be bodyWithType\u2019s type if it is non-null; otherwise the empty byte sequence.\n const type = bodyWithType[1] ?? ''\n\n // 7. Return a new response whose status message is `OK`, header list is\n // \u00AB (`Content-Length`, length), (`Content-Type`, type) \u00BB, and body is body.\n const response = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-length', { name: 'Content-Length', value: length }],\n ['content-type', { name: 'Content-Type', value: type }]\n ]\n })\n\n response.body = body\n\n return response\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request\u2019s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return makeNetworkError('failed to fetch the data URL')\n }\n\n // 3. Let mimeType be dataURLStruct\u2019s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is \u00AB (`Content-Type`, mimeType) \u00BB,\n // and body is dataURLStruct\u2019s body as a body.\n return makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', { name: 'Content-Type', value: mimeType }]\n ],\n body: safelyExtractBody(dataURLStruct.body)[0]\n })\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return makeNetworkError('not implemented... yet...')\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return await httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return makeNetworkError('unknown scheme')\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams\u2019s process response done is not null, then queue a fetch\n // task to run fetchParams\u2019s process response done given response, with\n // fetchParams\u2019s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nasync function fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response\u2019s URL list to \u00AB fetchParams\u2019s request\u2019s URL list[0] \u00BB.\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response\u2019s timing info to the result of creating an opaque timing\n // info for fetchParams\u2019s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // If fetchParams\u2019s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams\u2019s process response\n // end-of-body given response with fetchParams\u2019s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams\u2019s process response is non-null, then queue a fetch task\n // to run fetchParams\u2019s process response given response, with fetchParams\u2019s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response\u2019s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n }, {\n size () {\n return 1\n }\n }, {\n size () {\n return 1\n }\n })\n\n // 4. Set response\u2019s body to the result of piping response\u2019s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams\u2019s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams\u2019s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams\u2019s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response\u2019s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams\u2019s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response\u2019s body given processBody, processBodyError,\n // and fetchParams\u2019s task destination.\n await fullyReadBody(response.body, processBody, processBodyError)\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request\u2019s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request\u2019s redirect mode is \"follow\", then set request\u2019s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request\u2019s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request\u2019s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request\u2019s response tainting or response\u2019s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request\u2019s origin, request\u2019s client, request\u2019s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse\u2019s status is a redirect status, then:\n if (redirectStatus.includes(actualResponse.status)) {\n // 1. If actualResponse\u2019s status is not 303, request\u2019s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request\u2019s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nasync function httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response\u2019s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse\u2019s location URL given request\u2019s current\n // URL\u2019s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return makeNetworkError(err)\n }\n\n // 6. If locationURL\u2019s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!urlIsHttpHttpsScheme(locationURL)) {\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // 7. If request\u2019s redirect count is 20, then return a network error.\n if (request.redirectCount === 20) {\n return makeNetworkError('redirect count exceeded')\n }\n\n // 8. Increase request\u2019s redirect count by 1.\n request.redirectCount += 1\n\n // 9. If request\u2019s mode is \"cors\", locationURL includes credentials, and\n // request\u2019s origin is not same origin with locationURL\u2019s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return makeNetworkError('cross origin not allowed for request mode \"cors\"')\n }\n\n // 10. If request\u2019s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n )\n }\n\n // 11. If actualResponse\u2019s status is not 303, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return makeNetworkError()\n }\n\n // 12. If one of the following is true\n // - actualResponse\u2019s status is 301 or 302 and request\u2019s method is `POST`\n // - actualResponse\u2019s status is 303 and request\u2019s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !['GET', 'HEAD'].includes(request.method))\n ) {\n // then:\n // 1. Set request\u2019s method to `GET` and request\u2019s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request\u2019s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request\u2019s current URL\u2019s origin is not same origin with locationURL\u2019s\n // origin, then for each headerName of CORS non-wildcard request-header name,\n // delete headerName from request\u2019s header list.\n if (!sameOrigin(requestCurrentURL(request), locationURL)) {\n // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n request.headersList.delete('authorization')\n }\n\n // 14. If request\u2019s body is non-null, then set request\u2019s body to the first return\n // value of safely extracting request\u2019s body\u2019s source.\n if (request.body != null) {\n assert(request.body.source != null)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 15. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 16. Set timingInfo\u2019s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 17. If timingInfo\u2019s redirect start time is 0, then set timingInfo\u2019s\n // redirect start time to timingInfo\u2019s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 18. Append locationURL to request\u2019s URL list.\n request.urlList.push(locationURL)\n\n // 19. Invoke set request\u2019s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 20. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request\u2019s window is \"no-window\" and request\u2019s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams\u2019s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest\u2019s body\u2019s length, if httpRequest\u2019s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest\u2019s body is null and httpRequest\u2019s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest\u2019s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest\u2019s header list.\n\n // 10. If contentLength is non-null and httpRequest\u2019s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest\u2019s referrer is a URL, then append\n // `Referer`/httpRequest\u2019s referrer, serialized and isomorphic encoded,\n // to httpRequest\u2019s header list.\n if (httpRequest.referrer instanceof URL) {\n httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href))\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest\u2019s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('user-agent')) {\n httpRequest.headersList.append('user-agent', 'undici')\n }\n\n // 15. If httpRequest\u2019s cache mode is \"default\" and httpRequest\u2019s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest\u2019s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.contains('if-modified-since') ||\n httpRequest.headersList.contains('if-none-match') ||\n httpRequest.headersList.contains('if-unmodified-since') ||\n httpRequest.headersList.contains('if-match') ||\n httpRequest.headersList.contains('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest\u2019s cache mode is \"no-cache\", httpRequest\u2019s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest\u2019s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest\u2019s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.contains('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest\u2019s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest\u2019s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest\u2019s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest\u2019s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest\u2019s header list.\n if (httpRequest.headersList.contains('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest\u2019s header list per HTTP. Do not append a given\n // header if httpRequest\u2019s header list contains that header\u2019s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.contains('accept-encoding')) {\n if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest\u2019s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there\u2019s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest\u2019s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest\u2019s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest\u2019s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest\u2019s method is unsafe and forwardResponse\u2019s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethods.includes(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse\u2019s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response\u2019s URL list to a clone of httpRequest\u2019s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest\u2019s header list contains `Range`, then set response\u2019s\n // range-requested flag.\n if (httpRequest.headersList.contains('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response\u2019s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response\u2019s status is 401, httpRequest\u2019s response tainting is not\n // \"cors\", includeCredentials is true, and request\u2019s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response\u2019s status is 407, then:\n if (response.status === 407) {\n // 1. If request\u2019s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request\u2019s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response\u2019s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request\u2019s body is null, or request\u2019s body is non-null and request\u2019s body\u2019s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request\u2019s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request\u2019s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request\u2019s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request\u2019s current URL\u2019s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo\u2019s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection\u2019s\n // timing info, timingInfo\u2019s post-redirect start time, and fetchParams\u2019s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request\u2019s header list.\n\n // 4. Set timingInfo\u2019s final network-request start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request\u2019s body is non-null, and request\u2019s body\u2019s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request\u2019s body in that buffer. If the user agent reads from\n // request\u2019s body beyond that buffer\u2019s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo\u2019s final network-response start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated capability,\n // immediately after the user agent\u2019s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo\u2019s final network-response start time above.\n\n // - If request\u2019s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request\u2019s window is an environment settings object, make the\n // dialog available in request\u2019s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request\u2019s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams\u2019s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams\u2019s process request\n // end-of-body and fetchParams\u2019s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams\u2019s process request body is non-null, then run\n // fetchParams\u2019s process request body given bytes\u2019s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams\u2019s process request end-of-body is non-null,\n // then run fetchParams\u2019s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams\u2019s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request\u2019s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams\u2019s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n // socket is only provided for websockets\n const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody })\n\n if (socket) {\n response = makeResponse({ status, statusText, headersList, socket })\n } else {\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n }\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams\u2019s\n // controller with reason, given reason.\n const cancelAlgorithm = (reason) => {\n fetchParams.controller.abort(reason)\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n {\n highWaterMark: 0,\n size () {\n return 1\n }\n }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response\u2019s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request\u2019s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response\u2019s header list, if any, and request\u2019s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n let isFailure\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n\n // err may be propagated from the result of calling readablestream.cancel,\n // which might not be an error. https://github.com/nodejs/undici/issues/2009\n isFailure = true\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response\u2019s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n readableStreamClose(fetchParams.controller.controller)\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo\u2019s decoded body size by bytes\u2019s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams\u2019s controller.\n if (isFailure) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn\u2019t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response\u2019s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, then error stream with the result of\n // deserialize a serialized abort reason given fetchParams\u2019s\n // controller\u2019s serialized abort reason and an\n // implementation-defined realm.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n fetchParams.controller.serializedAbortReason\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n /** @type {import('../..').Agent} */\n const agent = fetchParams.controller.dispatcher\n\n return new Promise((resolve, reject) => agent.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && request.body.source : body,\n headers: request.headersList.entries,\n maxRedirections: 0,\n upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse()\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers.append(key, val)\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatus.includes(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n if (coding === 'x-gzip' || coding === 'gzip') {\n decoders.push(zlib.createGunzip({\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n }))\n } else if (coding === 'deflate') {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response\u2019s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response\u2019s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo\u2019s encoded body size by bytes\u2019s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n },\n\n onUpgrade (status, headersList, socket) {\n if (status !== 101) {\n return\n }\n\n const headers = new Headers()\n\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n headers.append(key, val)\n }\n\n resolve({\n status,\n statusText: STATUS_CODES[status],\n headersList: headers[kHeadersList],\n socket\n })\n\n return true\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n", "'use strict'\n\nmodule.exports = {\n kState: Symbol('FileReader state'),\n kResult: Symbol('FileReader result'),\n kError: Symbol('FileReader error'),\n kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'),\n kEvents: Symbol('FileReader events'),\n kAborted: Symbol('FileReader aborted')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\n\nconst kState = Symbol('ProgressEvent state')\n\n/**\n * @see https://xhr.spec.whatwg.org/#progressevent\n */\nclass ProgressEvent extends Event {\n constructor (type, eventInitDict = {}) {\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {})\n\n super(type, eventInitDict)\n\n this[kState] = {\n lengthComputable: eventInitDict.lengthComputable,\n loaded: eventInitDict.loaded,\n total: eventInitDict.total\n }\n }\n\n get lengthComputable () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].lengthComputable\n }\n\n get loaded () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].loaded\n }\n\n get total () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].total\n }\n}\n\nwebidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n {\n key: 'lengthComputable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'loaded',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'total',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n])\n\nmodule.exports = {\n ProgressEvent\n}\n", "'use strict'\n\n/**\n * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n * @param {string|undefined} label\n */\nfunction getEncoding (label) {\n if (!label) {\n return 'failure'\n }\n\n // 1. Remove any leading and trailing ASCII whitespace from label.\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, then return the\n // corresponding encoding; otherwise return failure.\n switch (label.trim().toLowerCase()) {\n case 'unicode-1-1-utf-8':\n case 'unicode11utf8':\n case 'unicode20utf8':\n case 'utf-8':\n case 'utf8':\n case 'x-unicode20utf8':\n return 'UTF-8'\n case '866':\n case 'cp866':\n case 'csibm866':\n case 'ibm866':\n return 'IBM866'\n case 'csisolatin2':\n case 'iso-8859-2':\n case 'iso-ir-101':\n case 'iso8859-2':\n case 'iso88592':\n case 'iso_8859-2':\n case 'iso_8859-2:1987':\n case 'l2':\n case 'latin2':\n return 'ISO-8859-2'\n case 'csisolatin3':\n case 'iso-8859-3':\n case 'iso-ir-109':\n case 'iso8859-3':\n case 'iso88593':\n case 'iso_8859-3':\n case 'iso_8859-3:1988':\n case 'l3':\n case 'latin3':\n return 'ISO-8859-3'\n case 'csisolatin4':\n case 'iso-8859-4':\n case 'iso-ir-110':\n case 'iso8859-4':\n case 'iso88594':\n case 'iso_8859-4':\n case 'iso_8859-4:1988':\n case 'l4':\n case 'latin4':\n return 'ISO-8859-4'\n case 'csisolatincyrillic':\n case 'cyrillic':\n case 'iso-8859-5':\n case 'iso-ir-144':\n case 'iso8859-5':\n case 'iso88595':\n case 'iso_8859-5':\n case 'iso_8859-5:1988':\n return 'ISO-8859-5'\n case 'arabic':\n case 'asmo-708':\n case 'csiso88596e':\n case 'csiso88596i':\n case 'csisolatinarabic':\n case 'ecma-114':\n case 'iso-8859-6':\n case 'iso-8859-6-e':\n case 'iso-8859-6-i':\n case 'iso-ir-127':\n case 'iso8859-6':\n case 'iso88596':\n case 'iso_8859-6':\n case 'iso_8859-6:1987':\n return 'ISO-8859-6'\n case 'csisolatingreek':\n case 'ecma-118':\n case 'elot_928':\n case 'greek':\n case 'greek8':\n case 'iso-8859-7':\n case 'iso-ir-126':\n case 'iso8859-7':\n case 'iso88597':\n case 'iso_8859-7':\n case 'iso_8859-7:1987':\n case 'sun_eu_greek':\n return 'ISO-8859-7'\n case 'csiso88598e':\n case 'csisolatinhebrew':\n case 'hebrew':\n case 'iso-8859-8':\n case 'iso-8859-8-e':\n case 'iso-ir-138':\n case 'iso8859-8':\n case 'iso88598':\n case 'iso_8859-8':\n case 'iso_8859-8:1988':\n case 'visual':\n return 'ISO-8859-8'\n case 'csiso88598i':\n case 'iso-8859-8-i':\n case 'logical':\n return 'ISO-8859-8-I'\n case 'csisolatin6':\n case 'iso-8859-10':\n case 'iso-ir-157':\n case 'iso8859-10':\n case 'iso885910':\n case 'l6':\n case 'latin6':\n return 'ISO-8859-10'\n case 'iso-8859-13':\n case 'iso8859-13':\n case 'iso885913':\n return 'ISO-8859-13'\n case 'iso-8859-14':\n case 'iso8859-14':\n case 'iso885914':\n return 'ISO-8859-14'\n case 'csisolatin9':\n case 'iso-8859-15':\n case 'iso8859-15':\n case 'iso885915':\n case 'iso_8859-15':\n case 'l9':\n return 'ISO-8859-15'\n case 'iso-8859-16':\n return 'ISO-8859-16'\n case 'cskoi8r':\n case 'koi':\n case 'koi8':\n case 'koi8-r':\n case 'koi8_r':\n return 'KOI8-R'\n case 'koi8-ru':\n case 'koi8-u':\n return 'KOI8-U'\n case 'csmacintosh':\n case 'mac':\n case 'macintosh':\n case 'x-mac-roman':\n return 'macintosh'\n case 'iso-8859-11':\n case 'iso8859-11':\n case 'iso885911':\n case 'tis-620':\n case 'windows-874':\n return 'windows-874'\n case 'cp1250':\n case 'windows-1250':\n case 'x-cp1250':\n return 'windows-1250'\n case 'cp1251':\n case 'windows-1251':\n case 'x-cp1251':\n return 'windows-1251'\n case 'ansi_x3.4-1968':\n case 'ascii':\n case 'cp1252':\n case 'cp819':\n case 'csisolatin1':\n case 'ibm819':\n case 'iso-8859-1':\n case 'iso-ir-100':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'iso_8859-1:1987':\n case 'l1':\n case 'latin1':\n case 'us-ascii':\n case 'windows-1252':\n case 'x-cp1252':\n return 'windows-1252'\n case 'cp1253':\n case 'windows-1253':\n case 'x-cp1253':\n return 'windows-1253'\n case 'cp1254':\n case 'csisolatin5':\n case 'iso-8859-9':\n case 'iso-ir-148':\n case 'iso8859-9':\n case 'iso88599':\n case 'iso_8859-9':\n case 'iso_8859-9:1989':\n case 'l5':\n case 'latin5':\n case 'windows-1254':\n case 'x-cp1254':\n return 'windows-1254'\n case 'cp1255':\n case 'windows-1255':\n case 'x-cp1255':\n return 'windows-1255'\n case 'cp1256':\n case 'windows-1256':\n case 'x-cp1256':\n return 'windows-1256'\n case 'cp1257':\n case 'windows-1257':\n case 'x-cp1257':\n return 'windows-1257'\n case 'cp1258':\n case 'windows-1258':\n case 'x-cp1258':\n return 'windows-1258'\n case 'x-mac-cyrillic':\n case 'x-mac-ukrainian':\n return 'x-mac-cyrillic'\n case 'chinese':\n case 'csgb2312':\n case 'csiso58gb231280':\n case 'gb2312':\n case 'gb_2312':\n case 'gb_2312-80':\n case 'gbk':\n case 'iso-ir-58':\n case 'x-gbk':\n return 'GBK'\n case 'gb18030':\n return 'gb18030'\n case 'big5':\n case 'big5-hkscs':\n case 'cn-big5':\n case 'csbig5':\n case 'x-x-big5':\n return 'Big5'\n case 'cseucpkdfmtjapanese':\n case 'euc-jp':\n case 'x-euc-jp':\n return 'EUC-JP'\n case 'csiso2022jp':\n case 'iso-2022-jp':\n return 'ISO-2022-JP'\n case 'csshiftjis':\n case 'ms932':\n case 'ms_kanji':\n case 'shift-jis':\n case 'shift_jis':\n case 'sjis':\n case 'windows-31j':\n case 'x-sjis':\n return 'Shift_JIS'\n case 'cseuckr':\n case 'csksc56011987':\n case 'euc-kr':\n case 'iso-ir-149':\n case 'korean':\n case 'ks_c_5601-1987':\n case 'ks_c_5601-1989':\n case 'ksc5601':\n case 'ksc_5601':\n case 'windows-949':\n return 'EUC-KR'\n case 'csiso2022kr':\n case 'hz-gb-2312':\n case 'iso-2022-cn':\n case 'iso-2022-cn-ext':\n case 'iso-2022-kr':\n case 'replacement':\n return 'replacement'\n case 'unicodefffe':\n case 'utf-16be':\n return 'UTF-16BE'\n case 'csunicode':\n case 'iso-10646-ucs-2':\n case 'ucs-2':\n case 'unicode':\n case 'unicodefeff':\n case 'utf-16':\n case 'utf-16le':\n return 'UTF-16LE'\n case 'x-user-defined':\n return 'x-user-defined'\n default: return 'failure'\n }\n}\n\nmodule.exports = {\n getEncoding\n}\n", "'use strict'\n\nconst {\n kState,\n kError,\n kResult,\n kAborted,\n kLastProgressEventFired\n} = require('./symbols')\nconst { ProgressEvent } = require('./progressevent')\nconst { getEncoding } = require('./encoding')\nconst { DOMException } = require('../fetch/constants')\nconst { serializeAMimeType, parseMIMEType } = require('../fetch/dataURL')\nconst { types } = require('util')\nconst { StringDecoder } = require('string_decoder')\nconst { btoa } = require('buffer')\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#readOperation\n * @param {import('./filereader').FileReader} fr\n * @param {import('buffer').Blob} blob\n * @param {string} type\n * @param {string?} encodingName\n */\nfunction readOperation (fr, blob, type, encodingName) {\n // 1. If fr\u2019s state is \"loading\", throw an InvalidStateError\n // DOMException.\n if (fr[kState] === 'loading') {\n throw new DOMException('Invalid state', 'InvalidStateError')\n }\n\n // 2. Set fr\u2019s state to \"loading\".\n fr[kState] = 'loading'\n\n // 3. Set fr\u2019s result to null.\n fr[kResult] = null\n\n // 4. Set fr\u2019s error to null.\n fr[kError] = null\n\n // 5. Let stream be the result of calling get stream on blob.\n /** @type {import('stream/web').ReadableStream} */\n const stream = blob.stream()\n\n // 6. Let reader be the result of getting a reader from stream.\n const reader = stream.getReader()\n\n // 7. Let bytes be an empty byte sequence.\n /** @type {Uint8Array[]} */\n const bytes = []\n\n // 8. Let chunkPromise be the result of reading a chunk from\n // stream with reader.\n let chunkPromise = reader.read()\n\n // 9. Let isFirstChunk be true.\n let isFirstChunk = true\n\n // 10. In parallel, while true:\n // Note: \"In parallel\" just means non-blocking\n // Note 2: readOperation itself cannot be async as double\n // reading the body would then reject the promise, instead\n // of throwing an error.\n ;(async () => {\n while (!fr[kAborted]) {\n // 1. Wait for chunkPromise to be fulfilled or rejected.\n try {\n const { done, value } = await chunkPromise\n\n // 2. If chunkPromise is fulfilled, and isFirstChunk is\n // true, queue a task to fire a progress event called\n // loadstart at fr.\n if (isFirstChunk && !fr[kAborted]) {\n queueMicrotask(() => {\n fireAProgressEvent('loadstart', fr)\n })\n }\n\n // 3. Set isFirstChunk to false.\n isFirstChunk = false\n\n // 4. If chunkPromise is fulfilled with an object whose\n // done property is false and whose value property is\n // a Uint8Array object, run these steps:\n if (!done && types.isUint8Array(value)) {\n // 1. Let bs be the byte sequence represented by the\n // Uint8Array object.\n\n // 2. Append bs to bytes.\n bytes.push(value)\n\n // 3. If roughly 50ms have passed since these steps\n // were last invoked, queue a task to fire a\n // progress event called progress at fr.\n if (\n (\n fr[kLastProgressEventFired] === undefined ||\n Date.now() - fr[kLastProgressEventFired] >= 50\n ) &&\n !fr[kAborted]\n ) {\n fr[kLastProgressEventFired] = Date.now()\n queueMicrotask(() => {\n fireAProgressEvent('progress', fr)\n })\n }\n\n // 4. Set chunkPromise to the result of reading a\n // chunk from stream with reader.\n chunkPromise = reader.read()\n } else if (done) {\n // 5. Otherwise, if chunkPromise is fulfilled with an\n // object whose done property is true, queue a task\n // to run the following steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Let result be the result of package data given\n // bytes, type, blob\u2019s type, and encodingName.\n try {\n const result = packageData(bytes, type, blob.type, encodingName)\n\n // 4. Else:\n\n if (fr[kAborted]) {\n return\n }\n\n // 1. Set fr\u2019s result to result.\n fr[kResult] = result\n\n // 2. Fire a progress event called load at the fr.\n fireAProgressEvent('load', fr)\n } catch (error) {\n // 3. If package data threw an exception error:\n\n // 1. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 2. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n }\n\n // 5. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at the fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n } catch (error) {\n if (fr[kAborted]) {\n return\n }\n\n // 6. Otherwise, if chunkPromise is rejected with an\n // error error, queue a task to run the following\n // steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 3. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n\n // 4. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n }\n })()\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e The name of the event\n * @param {import('./filereader').FileReader} reader\n */\nfunction fireAProgressEvent (e, reader) {\n // The progress event e does not bubble. e.bubbles must be false\n // The progress event e is NOT cancelable. e.cancelable must be false\n const event = new ProgressEvent(e, {\n bubbles: false,\n cancelable: false\n })\n\n reader.dispatchEvent(event)\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#blob-package-data\n * @param {Uint8Array[]} bytes\n * @param {string} type\n * @param {string?} mimeType\n * @param {string?} encodingName\n */\nfunction packageData (bytes, type, mimeType, encodingName) {\n // 1. A Blob has an associated package data algorithm, given\n // bytes, a type, a optional mimeType, and a optional\n // encodingName, which switches on type and runs the\n // associated steps:\n\n switch (type) {\n case 'DataURL': {\n // 1. Return bytes as a DataURL [RFC2397] subject to\n // the considerations below:\n // * Use mimeType as part of the Data URL if it is\n // available in keeping with the Data URL\n // specification [RFC2397].\n // * If mimeType is not available return a Data URL\n // without a media-type. [RFC2397].\n\n // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n // dataurl := \"data:\" [ mediatype ] [ \";base64\" ] \",\" data\n // mediatype := [ type \"/\" subtype ] *( \";\" parameter )\n // data := *urlchar\n // parameter := attribute \"=\" value\n let dataURL = 'data:'\n\n const parsed = parseMIMEType(mimeType || 'application/octet-stream')\n\n if (parsed !== 'failure') {\n dataURL += serializeAMimeType(parsed)\n }\n\n dataURL += ';base64,'\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n dataURL += btoa(decoder.write(chunk))\n }\n\n dataURL += btoa(decoder.end())\n\n return dataURL\n }\n case 'Text': {\n // 1. Let encoding be failure\n let encoding = 'failure'\n\n // 2. If the encodingName is present, set encoding to the\n // result of getting an encoding from encodingName.\n if (encodingName) {\n encoding = getEncoding(encodingName)\n }\n\n // 3. If encoding is failure, and mimeType is present:\n if (encoding === 'failure' && mimeType) {\n // 1. Let type be the result of parse a MIME type\n // given mimeType.\n const type = parseMIMEType(mimeType)\n\n // 2. If type is not failure, set encoding to the result\n // of getting an encoding from type\u2019s parameters[\"charset\"].\n if (type !== 'failure') {\n encoding = getEncoding(type.parameters.get('charset'))\n }\n }\n\n // 4. If encoding is failure, then set encoding to UTF-8.\n if (encoding === 'failure') {\n encoding = 'UTF-8'\n }\n\n // 5. Decode bytes using fallback encoding encoding, and\n // return the result.\n return decode(bytes, encoding)\n }\n case 'ArrayBuffer': {\n // Return a new ArrayBuffer whose contents are bytes.\n const sequence = combineByteSequences(bytes)\n\n return sequence.buffer\n }\n case 'BinaryString': {\n // Return bytes as a binary string, in which every byte\n // is represented by a code unit of equal value [0..255].\n let binaryString = ''\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n binaryString += decoder.write(chunk)\n }\n\n binaryString += decoder.end()\n\n return binaryString\n }\n }\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#decode\n * @param {Uint8Array[]} ioQueue\n * @param {string} encoding\n */\nfunction decode (ioQueue, encoding) {\n const bytes = combineByteSequences(ioQueue)\n\n // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n const BOMEncoding = BOMSniffing(bytes)\n\n let slice = 0\n\n // 2. If BOMEncoding is non-null:\n if (BOMEncoding !== null) {\n // 1. Set encoding to BOMEncoding.\n encoding = BOMEncoding\n\n // 2. Read three bytes from ioQueue, if BOMEncoding is\n // UTF-8; otherwise read two bytes.\n // (Do nothing with those bytes.)\n slice = BOMEncoding === 'UTF-8' ? 3 : 2\n }\n\n // 3. Process a queue with an instance of encoding\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n\n // 4. Return output.\n\n const sliced = bytes.slice(slice)\n return new TextDecoder(encoding).decode(sliced)\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#bom-sniff\n * @param {Uint8Array} ioQueue\n */\nfunction BOMSniffing (ioQueue) {\n // 1. Let BOM be the result of peeking 3 bytes from ioQueue,\n // converted to a byte sequence.\n const [a, b, c] = ioQueue\n\n // 2. For each of the rows in the table below, starting with\n // the first one and going down, if BOM starts with the\n // bytes given in the first column, then return the\n // encoding given in the cell in the second column of that\n // row. Otherwise, return null.\n if (a === 0xEF && b === 0xBB && c === 0xBF) {\n return 'UTF-8'\n } else if (a === 0xFE && b === 0xFF) {\n return 'UTF-16BE'\n } else if (a === 0xFF && b === 0xFE) {\n return 'UTF-16LE'\n }\n\n return null\n}\n\n/**\n * @param {Uint8Array[]} sequences\n */\nfunction combineByteSequences (sequences) {\n const size = sequences.reduce((a, b) => {\n return a + b.byteLength\n }, 0)\n\n let offset = 0\n\n return sequences.reduce((a, b) => {\n a.set(b, offset)\n offset += b.byteLength\n return a\n }, new Uint8Array(size))\n}\n\nmodule.exports = {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n}\n", "'use strict'\n\nconst {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n} = require('./util')\nconst {\n kState,\n kError,\n kResult,\n kEvents,\n kAborted\n} = require('./symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass FileReader extends EventTarget {\n constructor () {\n super()\n\n this[kState] = 'empty'\n this[kResult] = null\n this[kError] = null\n this[kEvents] = {\n loadend: null,\n error: null,\n abort: null,\n load: null,\n progress: null,\n loadstart: null\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n * @param {import('buffer').Blob} blob\n */\n readAsArrayBuffer (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsArrayBuffer(blob) method, when invoked,\n // must initiate a read operation for blob with ArrayBuffer.\n readOperation(this, blob, 'ArrayBuffer')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n * @param {import('buffer').Blob} blob\n */\n readAsBinaryString (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsBinaryString(blob) method, when invoked,\n // must initiate a read operation for blob with BinaryString.\n readOperation(this, blob, 'BinaryString')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsDataText\n * @param {import('buffer').Blob} blob\n * @param {string?} encoding\n */\n readAsText (blob, encoding = undefined) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n if (encoding !== undefined) {\n encoding = webidl.converters.DOMString(encoding)\n }\n\n // The readAsText(blob, encoding) method, when invoked,\n // must initiate a read operation for blob with Text and encoding.\n readOperation(this, blob, 'Text', encoding)\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n * @param {import('buffer').Blob} blob\n */\n readAsDataURL (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsDataURL(blob) method, when invoked, must\n // initiate a read operation for blob with DataURL.\n readOperation(this, blob, 'DataURL')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-abort\n */\n abort () {\n // 1. If this's state is \"empty\" or if this's state is\n // \"done\" set this's result to null and terminate\n // this algorithm.\n if (this[kState] === 'empty' || this[kState] === 'done') {\n this[kResult] = null\n return\n }\n\n // 2. If this's state is \"loading\" set this's state to\n // \"done\" and set this's result to null.\n if (this[kState] === 'loading') {\n this[kState] = 'done'\n this[kResult] = null\n }\n\n // 3. If there are any tasks from this on the file reading\n // task source in an affiliated task queue, then remove\n // those tasks from that task queue.\n this[kAborted] = true\n\n // 4. Terminate the algorithm for the read method being processed.\n // TODO\n\n // 5. Fire a progress event called abort at this.\n fireAProgressEvent('abort', this)\n\n // 6. If this's state is not \"loading\", fire a progress\n // event called loadend at this.\n if (this[kState] !== 'loading') {\n fireAProgressEvent('loadend', this)\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n */\n get readyState () {\n webidl.brandCheck(this, FileReader)\n\n switch (this[kState]) {\n case 'empty': return this.EMPTY\n case 'loading': return this.LOADING\n case 'done': return this.DONE\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n */\n get result () {\n webidl.brandCheck(this, FileReader)\n\n // The result attribute\u2019s getter, when invoked, must return\n // this's result.\n return this[kResult]\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n */\n get error () {\n webidl.brandCheck(this, FileReader)\n\n // The error attribute\u2019s getter, when invoked, must return\n // this's error.\n return this[kError]\n }\n\n get onloadend () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadend\n }\n\n set onloadend (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadend) {\n this.removeEventListener('loadend', this[kEvents].loadend)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadend = fn\n this.addEventListener('loadend', fn)\n } else {\n this[kEvents].loadend = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].error) {\n this.removeEventListener('error', this[kEvents].error)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].error = fn\n this.addEventListener('error', fn)\n } else {\n this[kEvents].error = null\n }\n }\n\n get onloadstart () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadstart\n }\n\n set onloadstart (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadstart) {\n this.removeEventListener('loadstart', this[kEvents].loadstart)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadstart = fn\n this.addEventListener('loadstart', fn)\n } else {\n this[kEvents].loadstart = null\n }\n }\n\n get onprogress () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].progress\n }\n\n set onprogress (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].progress) {\n this.removeEventListener('progress', this[kEvents].progress)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].progress = fn\n this.addEventListener('progress', fn)\n } else {\n this[kEvents].progress = null\n }\n }\n\n get onload () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].load\n }\n\n set onload (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].load) {\n this.removeEventListener('load', this[kEvents].load)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].load = fn\n this.addEventListener('load', fn)\n } else {\n this[kEvents].load = null\n }\n }\n\n get onabort () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].abort\n }\n\n set onabort (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].abort) {\n this.removeEventListener('abort', this[kEvents].abort)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].abort = fn\n this.addEventListener('abort', fn)\n } else {\n this[kEvents].abort = null\n }\n }\n}\n\n// https://w3c.github.io/FileAPI/#dom-filereader-empty\nFileReader.EMPTY = FileReader.prototype.EMPTY = 0\n// https://w3c.github.io/FileAPI/#dom-filereader-loading\nFileReader.LOADING = FileReader.prototype.LOADING = 1\n// https://w3c.github.io/FileAPI/#dom-filereader-done\nFileReader.DONE = FileReader.prototype.DONE = 2\n\nObject.defineProperties(FileReader.prototype, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors,\n readAsArrayBuffer: kEnumerableProperty,\n readAsBinaryString: kEnumerableProperty,\n readAsText: kEnumerableProperty,\n readAsDataURL: kEnumerableProperty,\n abort: kEnumerableProperty,\n readyState: kEnumerableProperty,\n result: kEnumerableProperty,\n error: kEnumerableProperty,\n onloadstart: kEnumerableProperty,\n onprogress: kEnumerableProperty,\n onload: kEnumerableProperty,\n onabort: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onloadend: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'FileReader',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(FileReader, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors\n})\n\nmodule.exports = {\n FileReader\n}\n", "'use strict'\n\nmodule.exports = {\n kConstruct: Symbol('constructable')\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { isValidHeaderName } = require('../fetch/util')\n\n/**\n * @see https://url.spec.whatwg.org/#concept-url-equals\n * @param {URL} A\n * @param {URL} B\n * @param {boolean | undefined} excludeFragment\n * @returns {boolean}\n */\nfunction urlEquals (A, B, excludeFragment = false) {\n const serializedA = URLSerializer(A, excludeFragment)\n\n const serializedB = URLSerializer(B, excludeFragment)\n\n return serializedA === serializedB\n}\n\n/**\n * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262\n * @param {string} header\n */\nfunction fieldValues (header) {\n assert(header !== null)\n\n const values = []\n\n for (let value of header.split(',')) {\n value = value.trim()\n\n if (!value.length) {\n continue\n } else if (!isValidHeaderName(value)) {\n continue\n }\n\n values.push(value)\n }\n\n return values\n}\n\nmodule.exports = {\n urlEquals,\n fieldValues\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { urlEquals, fieldValues: getFieldValues } = require('./util')\nconst { kEnumerableProperty, isDisturbed } = require('../core/util')\nconst { kHeadersList } = require('../core/symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { Response, cloneResponse } = require('../fetch/response')\nconst { Request } = require('../fetch/request')\nconst { kState, kHeaders, kGuard, kRealm } = require('../fetch/symbols')\nconst { fetching } = require('../fetch/index')\nconst { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')\nconst assert = require('assert')\nconst { getGlobalDispatcher } = require('../global')\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation\n * @typedef {Object} CacheBatchOperation\n * @property {'delete' | 'put'} type\n * @property {any} request\n * @property {any} response\n * @property {import('../../types/cache').CacheQueryOptions} options\n */\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list\n * @typedef {[any, any][]} requestResponseList\n */\n\nclass Cache {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list\n * @type {requestResponseList}\n */\n #relevantRequestResponseList\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n\n this.#relevantRequestResponseList = arguments[1]\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n const p = await this.matchAll(request, options)\n\n if (p.length === 0) {\n return\n }\n\n return p[0]\n }\n\n async matchAll (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') {\n // 2.2.1\n r = new Request(request)[kState]\n }\n }\n\n // 5.\n // 5.1\n const responses = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n responses.push(requestResponse[1])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n responses.push(requestResponse[1])\n }\n }\n\n // 5.4\n // We don't implement CORs so we don't need to loop over the responses, yay!\n\n // 5.5.1\n const responseList = []\n\n // 5.5.2\n for (const response of responses) {\n // 5.5.2.1\n const responseObject = new Response(response.body?.source ?? null)\n const body = responseObject[kState].body\n responseObject[kState] = response\n responseObject[kState].body = body\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n\n responseList.push(responseObject)\n }\n\n // 6.\n return Object.freeze(responseList)\n }\n\n async add (request) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })\n\n request = webidl.converters.RequestInfo(request)\n\n // 1.\n const requests = [request]\n\n // 2.\n const responseArrayPromise = this.addAll(requests)\n\n // 3.\n return await responseArrayPromise\n }\n\n async addAll (requests) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })\n\n requests = webidl.converters['sequence<RequestInfo>'](requests)\n\n // 1.\n const responsePromises = []\n\n // 2.\n const requestList = []\n\n // 3.\n for (const request of requests) {\n if (typeof request === 'string') {\n continue\n }\n\n // 3.1\n const r = request[kState]\n\n // 3.2\n if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme when method is not GET.'\n })\n }\n }\n\n // 4.\n /** @type {ReturnType<typeof fetching>[]} */\n const fetchControllers = []\n\n // 5.\n for (const request of requests) {\n // 5.1\n const r = new Request(request)[kState]\n\n // 5.2\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme.'\n })\n }\n\n // 5.4\n r.initiator = 'fetch'\n r.destination = 'subresource'\n\n // 5.5\n requestList.push(r)\n\n // 5.6\n const responsePromise = createDeferredPromise()\n\n // 5.7\n fetchControllers.push(fetching({\n request: r,\n dispatcher: getGlobalDispatcher(),\n processResponse (response) {\n // 1.\n if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Received an invalid status code or the request failed.'\n }))\n } else if (response.headersList.contains('vary')) { // 2.\n // 2.1\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n // 2.2\n for (const fieldValue of fieldValues) {\n // 2.2.1\n if (fieldValue === '*') {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'invalid vary field value'\n }))\n\n for (const controller of fetchControllers) {\n controller.abort()\n }\n\n return\n }\n }\n }\n },\n processResponseEndOfBody (response) {\n // 1.\n if (response.aborted) {\n responsePromise.reject(new DOMException('aborted', 'AbortError'))\n return\n }\n\n // 2.\n responsePromise.resolve(response)\n }\n }))\n\n // 5.8\n responsePromises.push(responsePromise.promise)\n }\n\n // 6.\n const p = Promise.all(responsePromises)\n\n // 7.\n const responses = await p\n\n // 7.1\n const operations = []\n\n // 7.2\n let index = 0\n\n // 7.3\n for (const response of responses) {\n // 7.3.1\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 7.3.2\n request: requestList[index], // 7.3.3\n response // 7.3.4\n }\n\n operations.push(operation) // 7.3.5\n\n index++ // 7.3.6\n }\n\n // 7.5\n const cacheJobPromise = createDeferredPromise()\n\n // 7.6.1\n let errorData = null\n\n // 7.6.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 7.6.3\n queueMicrotask(() => {\n // 7.6.3.1\n if (errorData === null) {\n cacheJobPromise.resolve(undefined)\n } else {\n // 7.6.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n // 7.7\n return cacheJobPromise.promise\n }\n\n async put (request, response) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })\n\n request = webidl.converters.RequestInfo(request)\n response = webidl.converters.Response(response)\n\n // 1.\n let innerRequest = null\n\n // 2.\n if (request instanceof Request) {\n innerRequest = request[kState]\n } else { // 3.\n innerRequest = new Request(request)[kState]\n }\n\n // 4.\n if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Expected an http/s scheme when method is not GET'\n })\n }\n\n // 5.\n const innerResponse = response[kState]\n\n // 6.\n if (innerResponse.status === 206) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got 206 status'\n })\n }\n\n // 7.\n if (innerResponse.headersList.contains('vary')) {\n // 7.1.\n const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))\n\n // 7.2.\n for (const fieldValue of fieldValues) {\n // 7.2.1\n if (fieldValue === '*') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got * vary field value'\n })\n }\n }\n }\n\n // 8.\n if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Response body is locked or disturbed'\n })\n }\n\n // 9.\n const clonedResponse = cloneResponse(innerResponse)\n\n // 10.\n const bodyReadPromise = createDeferredPromise()\n\n // 11.\n if (innerResponse.body != null) {\n // 11.1\n const stream = innerResponse.body.stream\n\n // 11.2\n const reader = stream.getReader()\n\n // 11.3\n readAllBytes(\n reader,\n (bytes) => bodyReadPromise.resolve(bytes),\n (error) => bodyReadPromise.reject(error)\n )\n } else {\n bodyReadPromise.resolve(undefined)\n }\n\n // 12.\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n // 13.\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 14.\n request: innerRequest, // 15.\n response: clonedResponse // 16.\n }\n\n // 17.\n operations.push(operation)\n\n // 19.\n const bytes = await bodyReadPromise.promise\n\n if (clonedResponse.body != null) {\n clonedResponse.body.source = bytes\n }\n\n // 19.1\n const cacheJobPromise = createDeferredPromise()\n\n // 19.2.1\n let errorData = null\n\n // 19.2.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 19.2.3\n queueMicrotask(() => {\n // 19.2.3.1\n if (errorData === null) {\n cacheJobPromise.resolve()\n } else { // 19.2.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n async delete (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n /**\n * @type {Request}\n */\n let r = null\n\n if (request instanceof Request) {\n r = request[kState]\n\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return false\n }\n } else {\n assert(typeof request === 'string')\n\n r = new Request(request)[kState]\n }\n\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'delete',\n request: r,\n options\n }\n\n operations.push(operation)\n\n const cacheJobPromise = createDeferredPromise()\n\n let errorData = null\n let requestResponses\n\n try {\n requestResponses = this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n queueMicrotask(() => {\n if (errorData === null) {\n cacheJobPromise.resolve(!!requestResponses?.length)\n } else {\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys\n * @param {any} request\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @returns {readonly Request[]}\n */\n async keys (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n // 2.1\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') { // 2.2\n r = new Request(request)[kState]\n }\n }\n\n // 4.\n const promise = createDeferredPromise()\n\n // 5.\n // 5.1\n const requests = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n // 5.2.1.1\n requests.push(requestResponse[0])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n // 5.3.2.1\n requests.push(requestResponse[0])\n }\n }\n\n // 5.4\n queueMicrotask(() => {\n // 5.4.1\n const requestList = []\n\n // 5.4.2\n for (const request of requests) {\n const requestObject = new Request('https://a')\n requestObject[kState] = request\n requestObject[kHeaders][kHeadersList] = request.headersList\n requestObject[kHeaders][kGuard] = 'immutable'\n requestObject[kRealm] = request.client\n\n // 5.4.2.1\n requestList.push(requestObject)\n }\n\n // 5.4.3\n promise.resolve(Object.freeze(requestList))\n })\n\n return promise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm\n * @param {CacheBatchOperation[]} operations\n * @returns {requestResponseList}\n */\n #batchCacheOperations (operations) {\n // 1.\n const cache = this.#relevantRequestResponseList\n\n // 2.\n const backupCache = [...cache]\n\n // 3.\n const addedItems = []\n\n // 4.1\n const resultList = []\n\n try {\n // 4.2\n for (const operation of operations) {\n // 4.2.1\n if (operation.type !== 'delete' && operation.type !== 'put') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'operation type does not match \"delete\" or \"put\"'\n })\n }\n\n // 4.2.2\n if (operation.type === 'delete' && operation.response != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'delete operation should not have an associated response'\n })\n }\n\n // 4.2.3\n if (this.#queryCache(operation.request, operation.options, addedItems).length) {\n throw new DOMException('???', 'InvalidStateError')\n }\n\n // 4.2.4\n let requestResponses\n\n // 4.2.5\n if (operation.type === 'delete') {\n // 4.2.5.1\n requestResponses = this.#queryCache(operation.request, operation.options)\n\n // TODO: the spec is wrong, this is needed to pass WPTs\n if (requestResponses.length === 0) {\n return []\n }\n\n // 4.2.5.2\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.5.2.1\n cache.splice(idx, 1)\n }\n } else if (operation.type === 'put') { // 4.2.6\n // 4.2.6.1\n if (operation.response == null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'put operation should have an associated response'\n })\n }\n\n // 4.2.6.2\n const r = operation.request\n\n // 4.2.6.3\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'expected http or https scheme'\n })\n }\n\n // 4.2.6.4\n if (r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'not get method'\n })\n }\n\n // 4.2.6.5\n if (operation.options != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'options must not be defined'\n })\n }\n\n // 4.2.6.6\n requestResponses = this.#queryCache(operation.request)\n\n // 4.2.6.7\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.6.7.1\n cache.splice(idx, 1)\n }\n\n // 4.2.6.8\n cache.push([operation.request, operation.response])\n\n // 4.2.6.10\n addedItems.push([operation.request, operation.response])\n }\n\n // 4.2.7\n resultList.push([operation.request, operation.response])\n }\n\n // 4.3\n return resultList\n } catch (e) { // 5.\n // 5.1\n this.#relevantRequestResponseList.length = 0\n\n // 5.2\n this.#relevantRequestResponseList = backupCache\n\n // 5.3\n throw e\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#query-cache\n * @param {any} requestQuery\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @param {requestResponseList} targetStorage\n * @returns {requestResponseList}\n */\n #queryCache (requestQuery, options, targetStorage) {\n /** @type {requestResponseList} */\n const resultList = []\n\n const storage = targetStorage ?? this.#relevantRequestResponseList\n\n for (const requestResponse of storage) {\n const [cachedRequest, cachedResponse] = requestResponse\n if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {\n resultList.push(requestResponse)\n }\n }\n\n return resultList\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm\n * @param {any} requestQuery\n * @param {any} request\n * @param {any | null} response\n * @param {import('../../types/cache').CacheQueryOptions | undefined} options\n * @returns {boolean}\n */\n #requestMatchesCachedItem (requestQuery, request, response = null, options) {\n // if (options?.ignoreMethod === false && request.method === 'GET') {\n // return false\n // }\n\n const queryURL = new URL(requestQuery.url)\n\n const cachedURL = new URL(request.url)\n\n if (options?.ignoreSearch) {\n cachedURL.search = ''\n\n queryURL.search = ''\n }\n\n if (!urlEquals(queryURL, cachedURL, true)) {\n return false\n }\n\n if (\n response == null ||\n options?.ignoreVary ||\n !response.headersList.contains('vary')\n ) {\n return true\n }\n\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n for (const fieldValue of fieldValues) {\n if (fieldValue === '*') {\n return false\n }\n\n const requestValue = request.headersList.get(fieldValue)\n const queryValue = requestQuery.headersList.get(fieldValue)\n\n // If one has the header and the other doesn't, or one has\n // a different value than the other, return false\n if (requestValue !== queryValue) {\n return false\n }\n }\n\n return true\n }\n}\n\nObject.defineProperties(Cache.prototype, {\n [Symbol.toStringTag]: {\n value: 'Cache',\n configurable: true\n },\n match: kEnumerableProperty,\n matchAll: kEnumerableProperty,\n add: kEnumerableProperty,\n addAll: kEnumerableProperty,\n put: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nconst cacheQueryOptionConverters = [\n {\n key: 'ignoreSearch',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreMethod',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreVary',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)\n\nwebidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([\n ...cacheQueryOptionConverters,\n {\n key: 'cacheName',\n converter: webidl.converters.DOMString\n }\n])\n\nwebidl.converters.Response = webidl.interfaceConverter(Response)\n\nwebidl.converters['sequence<RequestInfo>'] = webidl.sequenceConverter(\n webidl.converters.RequestInfo\n)\n\nmodule.exports = {\n Cache\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { Cache } = require('./cache')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass CacheStorage {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map\n * @type {Map<string, import('./cache').requestResponseList}\n */\n #caches = new Map()\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.MultiCacheQueryOptions(options)\n\n // 1.\n if (options.cacheName != null) {\n // 1.1.1.1\n if (this.#caches.has(options.cacheName)) {\n // 1.1.1.1.1\n const cacheList = this.#caches.get(options.cacheName)\n const cache = new Cache(kConstruct, cacheList)\n\n return await cache.match(request, options)\n }\n } else { // 2.\n // 2.2\n for (const cacheList of this.#caches.values()) {\n const cache = new Cache(kConstruct, cacheList)\n\n // 2.2.1.2\n const response = await cache.match(request, options)\n\n if (response !== undefined) {\n return response\n }\n }\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-has\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async has (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1.1\n // 2.2\n return this.#caches.has(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open\n * @param {string} cacheName\n * @returns {Promise<Cache>}\n */\n async open (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1\n if (this.#caches.has(cacheName)) {\n // await caches.open('v1') !== await caches.open('v1')\n\n // 2.1.1\n const cache = this.#caches.get(cacheName)\n\n // 2.1.1.1\n return new Cache(kConstruct, cache)\n }\n\n // 2.2\n const cache = []\n\n // 2.3\n this.#caches.set(cacheName, cache)\n\n // 2.4\n return new Cache(kConstruct, cache)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async delete (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n return this.#caches.delete(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys\n * @returns {string[]}\n */\n async keys () {\n webidl.brandCheck(this, CacheStorage)\n\n // 2.1\n const keys = this.#caches.keys()\n\n // 2.2\n return [...keys]\n }\n}\n\nObject.defineProperties(CacheStorage.prototype, {\n [Symbol.toStringTag]: {\n value: 'CacheStorage',\n configurable: true\n },\n match: kEnumerableProperty,\n has: kEnumerableProperty,\n open: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nmodule.exports = {\n CacheStorage\n}\n", "'use strict'\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\nconst maxAttributeValueSize = 1024\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\nconst maxNameValuePairSize = 4096\n\nmodule.exports = {\n maxAttributeValueSize,\n maxNameValuePairSize\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kHeadersList } = require('../core/symbols')\n\nfunction isCTLExcludingHtab (value) {\n if (value.length === 0) {\n return false\n }\n\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n (code >= 0x00 || code <= 0x08) ||\n (code >= 0x0A || code <= 0x1F) ||\n code === 0x7F\n ) {\n return false\n }\n }\n}\n\n/**\n CHAR = <any US-ASCII character (octets 0 - 127)>\n token = 1*<any CHAR except CTLs or separators>\n separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n | \",\" | \";\" | \":\" | \"\\\" | <\">\n | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n | \"{\" | \"}\" | SP | HT\n * @param {string} name\n */\nfunction validateCookieName (name) {\n for (const char of name) {\n const code = char.charCodeAt(0)\n\n if (\n (code <= 0x20 || code > 0x7F) ||\n char === '(' ||\n char === ')' ||\n char === '>' ||\n char === '<' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}'\n ) {\n throw new Error('Invalid cookie name')\n }\n }\n}\n\n/**\n cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n ; US-ASCII characters excluding CTLs,\n ; whitespace DQUOTE, comma, semicolon,\n ; and backslash\n * @param {string} value\n */\nfunction validateCookieValue (value) {\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 || // exclude CTLs (0-31)\n code === 0x22 ||\n code === 0x2C ||\n code === 0x3B ||\n code === 0x5C ||\n code > 0x7E // non-ascii\n ) {\n throw new Error('Invalid header value')\n }\n }\n}\n\n/**\n * path-value = <any CHAR except CTLs or \";\">\n * @param {string} path\n */\nfunction validateCookiePath (path) {\n for (const char of path) {\n const code = char.charCodeAt(0)\n\n if (code < 0x21 || char === ';') {\n throw new Error('Invalid cookie path')\n }\n }\n}\n\n/**\n * I have no idea why these values aren't allowed to be honest,\n * but Deno tests these. - Khafra\n * @param {string} domain\n */\nfunction validateCookieDomain (domain) {\n if (\n domain.startsWith('-') ||\n domain.endsWith('.') ||\n domain.endsWith('-')\n ) {\n throw new Error('Invalid cookie domain')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n * @param {number|Date} date\n IMF-fixdate = day-name \",\" SP date1 SP time-of-day SP GMT\n ; fixed length/zone/capitalization subset of the format\n ; see Section 3.3 of [RFC5322]\n\n day-name = %x4D.6F.6E ; \"Mon\", case-sensitive\n / %x54.75.65 ; \"Tue\", case-sensitive\n / %x57.65.64 ; \"Wed\", case-sensitive\n / %x54.68.75 ; \"Thu\", case-sensitive\n / %x46.72.69 ; \"Fri\", case-sensitive\n / %x53.61.74 ; \"Sat\", case-sensitive\n / %x53.75.6E ; \"Sun\", case-sensitive\n date1 = day SP month SP year\n ; e.g., 02 Jun 1982\n\n day = 2DIGIT\n month = %x4A.61.6E ; \"Jan\", case-sensitive\n / %x46.65.62 ; \"Feb\", case-sensitive\n / %x4D.61.72 ; \"Mar\", case-sensitive\n / %x41.70.72 ; \"Apr\", case-sensitive\n / %x4D.61.79 ; \"May\", case-sensitive\n / %x4A.75.6E ; \"Jun\", case-sensitive\n / %x4A.75.6C ; \"Jul\", case-sensitive\n / %x41.75.67 ; \"Aug\", case-sensitive\n / %x53.65.70 ; \"Sep\", case-sensitive\n / %x4F.63.74 ; \"Oct\", case-sensitive\n / %x4E.6F.76 ; \"Nov\", case-sensitive\n / %x44.65.63 ; \"Dec\", case-sensitive\n year = 4DIGIT\n\n GMT = %x47.4D.54 ; \"GMT\", case-sensitive\n\n time-of-day = hour \":\" minute \":\" second\n ; 00:00:00 - 23:59:60 (leap second)\n\n hour = 2DIGIT\n minute = 2DIGIT\n second = 2DIGIT\n */\nfunction toIMFDate (date) {\n if (typeof date === 'number') {\n date = new Date(date)\n }\n\n const days = [\n 'Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'\n ]\n\n const months = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ]\n\n const dayName = days[date.getUTCDay()]\n const day = date.getUTCDate().toString().padStart(2, '0')\n const month = months[date.getUTCMonth()]\n const year = date.getUTCFullYear()\n const hour = date.getUTCHours().toString().padStart(2, '0')\n const minute = date.getUTCMinutes().toString().padStart(2, '0')\n const second = date.getUTCSeconds().toString().padStart(2, '0')\n\n return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n}\n\n/**\n max-age-av = \"Max-Age=\" non-zero-digit *DIGIT\n ; In practice, both expires-av and max-age-av\n ; are limited to dates representable by the\n ; user agent.\n * @param {number} maxAge\n */\nfunction validateCookieMaxAge (maxAge) {\n if (maxAge < 0) {\n throw new Error('Invalid cookie max-age')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n * @param {import('./index').Cookie} cookie\n */\nfunction stringify (cookie) {\n if (cookie.name.length === 0) {\n return null\n }\n\n validateCookieName(cookie.name)\n validateCookieValue(cookie.value)\n\n const out = [`${cookie.name}=${cookie.value}`]\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n if (cookie.name.startsWith('__Secure-')) {\n cookie.secure = true\n }\n\n if (cookie.name.startsWith('__Host-')) {\n cookie.secure = true\n cookie.domain = null\n cookie.path = '/'\n }\n\n if (cookie.secure) {\n out.push('Secure')\n }\n\n if (cookie.httpOnly) {\n out.push('HttpOnly')\n }\n\n if (typeof cookie.maxAge === 'number') {\n validateCookieMaxAge(cookie.maxAge)\n out.push(`Max-Age=${cookie.maxAge}`)\n }\n\n if (cookie.domain) {\n validateCookieDomain(cookie.domain)\n out.push(`Domain=${cookie.domain}`)\n }\n\n if (cookie.path) {\n validateCookiePath(cookie.path)\n out.push(`Path=${cookie.path}`)\n }\n\n if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n out.push(`Expires=${toIMFDate(cookie.expires)}`)\n }\n\n if (cookie.sameSite) {\n out.push(`SameSite=${cookie.sameSite}`)\n }\n\n for (const part of cookie.unparsed) {\n if (!part.includes('=')) {\n throw new Error('Invalid unparsed')\n }\n\n const [key, ...value] = part.split('=')\n\n out.push(`${key.trim()}=${value.join('=')}`)\n }\n\n return out.join('; ')\n}\n\nlet kHeadersListNode\n\nfunction getHeadersList (headers) {\n if (headers[kHeadersList]) {\n return headers[kHeadersList]\n }\n\n if (!kHeadersListNode) {\n kHeadersListNode = Object.getOwnPropertySymbols(headers).find(\n (symbol) => symbol.description === 'headers list'\n )\n\n assert(kHeadersListNode, 'Headers cannot be parsed')\n }\n\n const headersList = headers[kHeadersListNode]\n assert(headersList)\n\n return headersList\n}\n\nmodule.exports = {\n isCTLExcludingHtab,\n stringify,\n getHeadersList\n}\n", "'use strict'\n\nconst { maxNameValuePairSize, maxAttributeValueSize } = require('./constants')\nconst { isCTLExcludingHtab } = require('./util')\nconst { collectASequenceOfCodePointsFast } = require('../fetch/dataURL')\nconst assert = require('assert')\n\n/**\n * @description Parses the field-value attributes of a set-cookie header string.\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} header\n * @returns if the header is invalid, null will be returned\n */\nfunction parseSetCookie (header) {\n // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n // character (CTL characters excluding HTAB): Abort these steps and\n // ignore the set-cookie-string entirely.\n if (isCTLExcludingHtab(header)) {\n return null\n }\n\n let nameValuePair = ''\n let unparsedAttributes = ''\n let name = ''\n let value = ''\n\n // 2. If the set-cookie-string contains a %x3B (\";\") character:\n if (header.includes(';')) {\n // 1. The name-value-pair string consists of the characters up to,\n // but not including, the first %x3B (\";\"), and the unparsed-\n // attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\n const position = { position: 0 }\n\n nameValuePair = collectASequenceOfCodePointsFast(';', header, position)\n unparsedAttributes = header.slice(position.position)\n } else {\n // Otherwise:\n\n // 1. The name-value-pair string consists of all the characters\n // contained in the set-cookie-string, and the unparsed-\n // attributes is the empty string.\n nameValuePair = header\n }\n\n // 3. If the name-value-pair string lacks a %x3D (\"=\") character, then\n // the name string is empty, and the value string is the value of\n // name-value-pair.\n if (!nameValuePair.includes('=')) {\n value = nameValuePair\n } else {\n // Otherwise, the name string consists of the characters up to, but\n // not including, the first %x3D (\"=\") character, and the (possibly\n // empty) value string consists of the characters after the first\n // %x3D (\"=\") character.\n const position = { position: 0 }\n name = collectASequenceOfCodePointsFast(\n '=',\n nameValuePair,\n position\n )\n value = nameValuePair.slice(position.position + 1)\n }\n\n // 4. Remove any leading or trailing WSP characters from the name\n // string and the value string.\n name = name.trim()\n value = value.trim()\n\n // 5. If the sum of the lengths of the name string and the value string\n // is more than 4096 octets, abort these steps and ignore the set-\n // cookie-string entirely.\n if (name.length + value.length > maxNameValuePairSize) {\n return null\n }\n\n // 6. The cookie-name is the name string, and the cookie-value is the\n // value string.\n return {\n name, value, ...parseUnparsedAttributes(unparsedAttributes)\n }\n}\n\n/**\n * Parses the remaining attributes of a set-cookie header\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} unparsedAttributes\n * @param {[Object.<string, unknown>]={}} cookieAttributeList\n */\nfunction parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {\n // 1. If the unparsed-attributes string is empty, skip the rest of\n // these steps.\n if (unparsedAttributes.length === 0) {\n return cookieAttributeList\n }\n\n // 2. Discard the first character of the unparsed-attributes (which\n // will be a %x3B (\";\") character).\n assert(unparsedAttributes[0] === ';')\n unparsedAttributes = unparsedAttributes.slice(1)\n\n let cookieAv = ''\n\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n if (unparsedAttributes.includes(';')) {\n // 1. Consume the characters of the unparsed-attributes up to, but\n // not including, the first %x3B (\";\") character.\n cookieAv = collectASequenceOfCodePointsFast(\n ';',\n unparsedAttributes,\n { position: 0 }\n )\n unparsedAttributes = unparsedAttributes.slice(cookieAv.length)\n } else {\n // Otherwise:\n\n // 1. Consume the remainder of the unparsed-attributes.\n cookieAv = unparsedAttributes\n unparsedAttributes = ''\n }\n\n // Let the cookie-av string be the characters consumed in this step.\n\n let attributeName = ''\n let attributeValue = ''\n\n // 4. If the cookie-av string contains a %x3D (\"=\") character:\n if (cookieAv.includes('=')) {\n // 1. The (possibly empty) attribute-name string consists of the\n // characters up to, but not including, the first %x3D (\"=\")\n // character, and the (possibly empty) attribute-value string\n // consists of the characters after the first %x3D (\"=\")\n // character.\n const position = { position: 0 }\n\n attributeName = collectASequenceOfCodePointsFast(\n '=',\n cookieAv,\n position\n )\n attributeValue = cookieAv.slice(position.position + 1)\n } else {\n // Otherwise:\n\n // 1. The attribute-name string consists of the entire cookie-av\n // string, and the attribute-value string is empty.\n attributeName = cookieAv\n }\n\n // 5. Remove any leading or trailing WSP characters from the attribute-\n // name string and the attribute-value string.\n attributeName = attributeName.trim()\n attributeValue = attributeValue.trim()\n\n // 6. If the attribute-value is longer than 1024 octets, ignore the\n // cookie-av string and return to Step 1 of this algorithm.\n if (attributeValue.length > maxAttributeValueSize) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 7. Process the attribute-name and attribute-value according to the\n // requirements in the following subsections. (Notice that\n // attributes with unrecognized attribute-names are ignored.)\n const attributeNameLowercase = attributeName.toLowerCase()\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n // If the attribute-name case-insensitively matches the string\n // \"Expires\", the user agent MUST process the cookie-av as follows.\n if (attributeNameLowercase === 'expires') {\n // 1. Let the expiry-time be the result of parsing the attribute-value\n // as cookie-date (see Section 5.1.1).\n const expiryTime = new Date(attributeValue)\n\n // 2. If the attribute-value failed to parse as a cookie date, ignore\n // the cookie-av.\n\n cookieAttributeList.expires = expiryTime\n } else if (attributeNameLowercase === 'max-age') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n // If the attribute-name case-insensitively matches the string \"Max-\n // Age\", the user agent MUST process the cookie-av as follows.\n\n // 1. If the first character of the attribute-value is not a DIGIT or a\n // \"-\" character, ignore the cookie-av.\n const charCode = attributeValue.charCodeAt(0)\n\n if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 2. If the remainder of attribute-value contains a non-DIGIT\n // character, ignore the cookie-av.\n if (!/^\\d+$/.test(attributeValue)) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 3. Let delta-seconds be the attribute-value converted to an integer.\n const deltaSeconds = Number(attributeValue)\n\n // 4. Let cookie-age-limit be the maximum age of the cookie (which\n // SHOULD be 400 days or less, see Section 4.1.2.2).\n\n // 5. Set delta-seconds to the smaller of its present value and cookie-\n // age-limit.\n // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)\n\n // 6. If delta-seconds is less than or equal to zero (0), let expiry-\n // time be the earliest representable date and time. Otherwise, let\n // the expiry-time be the current date and time plus delta-seconds\n // seconds.\n // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n // 7. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Max-Age and an attribute-value of expiry-time.\n cookieAttributeList.maxAge = deltaSeconds\n } else if (attributeNameLowercase === 'domain') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n // If the attribute-name case-insensitively matches the string \"Domain\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. Let cookie-domain be the attribute-value.\n let cookieDomain = attributeValue\n\n // 2. If cookie-domain starts with %x2E (\".\"), let cookie-domain be\n // cookie-domain without its leading %x2E (\".\").\n if (cookieDomain[0] === '.') {\n cookieDomain = cookieDomain.slice(1)\n }\n\n // 3. Convert the cookie-domain to lower case.\n cookieDomain = cookieDomain.toLowerCase()\n\n // 4. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Domain and an attribute-value of cookie-domain.\n cookieAttributeList.domain = cookieDomain\n } else if (attributeNameLowercase === 'path') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n // If the attribute-name case-insensitively matches the string \"Path\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. If the attribute-value is empty or if the first character of the\n // attribute-value is not %x2F (\"/\"):\n let cookiePath = ''\n if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n // 1. Let cookie-path be the default-path.\n cookiePath = '/'\n } else {\n // Otherwise:\n\n // 1. Let cookie-path be the attribute-value.\n cookiePath = attributeValue\n }\n\n // 2. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Path and an attribute-value of cookie-path.\n cookieAttributeList.path = cookiePath\n } else if (attributeNameLowercase === 'secure') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n // If the attribute-name case-insensitively matches the string \"Secure\",\n // the user agent MUST append an attribute to the cookie-attribute-list\n // with an attribute-name of Secure and an empty attribute-value.\n\n cookieAttributeList.secure = true\n } else if (attributeNameLowercase === 'httponly') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n // If the attribute-name case-insensitively matches the string\n // \"HttpOnly\", the user agent MUST append an attribute to the cookie-\n // attribute-list with an attribute-name of HttpOnly and an empty\n // attribute-value.\n\n cookieAttributeList.httpOnly = true\n } else if (attributeNameLowercase === 'samesite') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n // If the attribute-name case-insensitively matches the string\n // \"SameSite\", the user agent MUST process the cookie-av as follows:\n\n // 1. Let enforcement be \"Default\".\n let enforcement = 'Default'\n\n const attributeValueLowercase = attributeValue.toLowerCase()\n // 2. If cookie-av's attribute-value is a case-insensitive match for\n // \"None\", set enforcement to \"None\".\n if (attributeValueLowercase.includes('none')) {\n enforcement = 'None'\n }\n\n // 3. If cookie-av's attribute-value is a case-insensitive match for\n // \"Strict\", set enforcement to \"Strict\".\n if (attributeValueLowercase.includes('strict')) {\n enforcement = 'Strict'\n }\n\n // 4. If cookie-av's attribute-value is a case-insensitive match for\n // \"Lax\", set enforcement to \"Lax\".\n if (attributeValueLowercase.includes('lax')) {\n enforcement = 'Lax'\n }\n\n // 5. Append an attribute to the cookie-attribute-list with an\n // attribute-name of \"SameSite\" and an attribute-value of\n // enforcement.\n cookieAttributeList.sameSite = enforcement\n } else {\n cookieAttributeList.unparsed ??= []\n\n cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)\n }\n\n // 8. Return to Step 1 of this algorithm.\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n}\n\nmodule.exports = {\n parseSetCookie,\n parseUnparsedAttributes\n}\n", "'use strict'\n\nconst { parseSetCookie } = require('./parse')\nconst { stringify, getHeadersList } = require('./util')\nconst { webidl } = require('../fetch/webidl')\nconst { Headers } = require('../fetch/headers')\n\n/**\n * @typedef {Object} Cookie\n * @property {string} name\n * @property {string} value\n * @property {Date|number|undefined} expires\n * @property {number|undefined} maxAge\n * @property {string|undefined} domain\n * @property {string|undefined} path\n * @property {boolean|undefined} secure\n * @property {boolean|undefined} httpOnly\n * @property {'Strict'|'Lax'|'None'} sameSite\n * @property {string[]} unparsed\n */\n\n/**\n * @param {Headers} headers\n * @returns {Record<string, string>}\n */\nfunction getCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookie = headers.get('cookie')\n const out = {}\n\n if (!cookie) {\n return out\n }\n\n for (const piece of cookie.split(';')) {\n const [name, ...value] = piece.split('=')\n\n out[name.trim()] = value.join('=')\n }\n\n return out\n}\n\n/**\n * @param {Headers} headers\n * @param {string} name\n * @param {{ path?: string, domain?: string }|undefined} attributes\n * @returns {void}\n */\nfunction deleteCookie (headers, name, attributes) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n name = webidl.converters.DOMString(name)\n attributes = webidl.converters.DeleteCookieAttributes(attributes)\n\n // Matches behavior of\n // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n setCookie(headers, {\n name,\n value: '',\n expires: new Date(0),\n ...attributes\n })\n}\n\n/**\n * @param {Headers} headers\n * @returns {Cookie[]}\n */\nfunction getSetCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookies = getHeadersList(headers).cookies\n\n if (!cookies) {\n return []\n }\n\n // In older versions of undici, cookies is a list of name:value.\n return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair))\n}\n\n/**\n * @param {Headers} headers\n * @param {Cookie} cookie\n * @returns {void}\n */\nfunction setCookie (headers, cookie) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n cookie = webidl.converters.Cookie(cookie)\n\n const str = stringify(cookie)\n\n if (str) {\n headers.append('Set-Cookie', stringify(cookie))\n }\n}\n\nwebidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n }\n])\n\nwebidl.converters.Cookie = webidl.dictionaryConverter([\n {\n converter: webidl.converters.DOMString,\n key: 'name'\n },\n {\n converter: webidl.converters.DOMString,\n key: 'value'\n },\n {\n converter: webidl.nullableConverter((value) => {\n if (typeof value === 'number') {\n return webidl.converters['unsigned long long'](value)\n }\n\n return new Date(value)\n }),\n key: 'expires',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters['long long']),\n key: 'maxAge',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'secure',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'httpOnly',\n defaultValue: null\n },\n {\n converter: webidl.converters.USVString,\n key: 'sameSite',\n allowedValues: ['Strict', 'Lax', 'None']\n },\n {\n converter: webidl.sequenceConverter(webidl.converters.DOMString),\n key: 'unparsed',\n defaultValue: []\n }\n])\n\nmodule.exports = {\n getCookies,\n deleteCookie,\n getSetCookies,\n setCookie\n}\n", "'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nmodule.exports = {\n uid,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer\n}\n", "'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\nconst { MessagePort } = require('worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' })\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' })\n\n super(type, eventInitDict)\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence<MessagePort>'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence<MessagePort>'],\n get defaultValue () {\n return []\n }\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent\n}\n", "'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { MessageEvent, ErrorEvent } = require('./events')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventConstructor = Event, eventInitDict) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event\u2019s type attribute to e.\n const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = new Uint8Array(data).buffer\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object\u2019s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, MessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (const char of protocol) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 ||\n code > 0x7E ||\n char === '(' ||\n char === ')' ||\n char === '<' ||\n char === '>' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}' ||\n code === 32 || // SP\n code === 9 // HT\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n fireEvent('error', ws, ErrorEvent, {\n error: new Error(reason)\n })\n }\n}\n\nmodule.exports = {\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived\n}\n", "'use strict'\n\nconst { randomBytes, createHash } = require('crypto')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { uid, states } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection } = require('./util')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers } = require('../fetch/headers')\nconst { getGlobalDispatcher } = require('../global')\nconst { kHeadersList } = require('../core/symbols')\n\nconst channels = {}\nchannels.open = diagnosticsChannel.channel('undici:websocket:open')\nchannels.close = diagnosticsChannel.channel('undici:websocket:close')\nchannels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error')\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any) => void} onEstablish\n * @param {Partial<import('../../types/websocket').WebSocketInit>} options\n */\nfunction establishWebSocketConnection (url, protocols, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url\u2019s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = new Headers(options.headers)[kHeadersList]\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request\u2019s header list.\n // 4. Append (`Connection`, `Upgrade`) to request\u2019s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request\u2019s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n // TODO: enable once permessage-deflate is supported\n const permessageDeflate = '' // 'permessage-deflate; 15'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request\u2019s header list.\n // request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher ?? getGlobalDispatcher(),\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response\u2019s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n\n if (secExtension !== null && secExtension !== permessageDeflate) {\n failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.')\n return\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response)\n }\n })\n\n return controller\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kSentClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n fireEvent('close', ws, CloseEvent, {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection\n}\n", "'use strict'\n\nconst { randomBytes } = require('crypto')\nconst { maxUnsigned16Bit } = require('./constants')\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n this.maskKey = randomBytes(4)\n }\n\n createFrame (opcode) {\n const bodyLength = this.frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */\n buffer[offset - 4] = this.maskKey[0]\n buffer[offset - 3] = this.maskKey[1]\n buffer[offset - 2] = this.maskKey[2]\n buffer[offset - 1] = this.maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; i++) {\n buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n", "'use strict'\n\nconst { Writable } = require('stream')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { parserStates, opcodes, states, emptyBuffer } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>\n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nconst channels = {}\nchannels.ping = diagnosticsChannel.channel('undici:websocket:ping')\nchannels.pong = diagnosticsChannel.channel('undici:websocket:pong')\n\nclass ByteParser extends Writable {\n #buffers = []\n #byteOffset = 0\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n constructor (ws) {\n super()\n\n this.ws = ws\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n\n this.run(callback)\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (true) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.fin = (buffer[0] & 0x80) !== 0\n this.#info.opcode = buffer[0] & 0x0F\n\n // If we receive a fragmented message, we use the type of the first\n // frame to parse the full message as binary/text, when it's terminated\n this.#info.originalOpcode ??= this.#info.opcode\n\n this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION\n\n if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n const payloadLength = buffer[1] & 0x7F\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (this.#info.fragmented && payloadLength > 125) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n } else if (\n (this.#info.opcode === opcodes.PING ||\n this.#info.opcode === opcodes.PONG ||\n this.#info.opcode === opcodes.CLOSE) &&\n payloadLength > 125\n ) {\n // Control frames can have a payload length of 125 bytes MAX\n failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.')\n return\n } else if (this.#info.opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return\n }\n\n const body = this.consume(payloadLength)\n\n this.#info.closeInfo = this.parseCloseBody(false, body)\n\n if (!this.ws[kSentClose]) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n const body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = true\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n this.end()\n\n return\n } else if (this.#info.opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n const body = this.consume(payloadLength)\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n\n this.#state = parserStates.INFO\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n } else if (this.#info.opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n const body = this.consume(payloadLength)\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n\n // 2^31 is the maxinimum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n const lower = buffer.readUInt32BE(4)\n\n this.#info.payloadLength = (upper << 8) + lower\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n // If there is still more data in this chunk that needs to be read\n return callback()\n } else if (this.#byteOffset >= this.#info.payloadLength) {\n // If the server sent multiple frames in a single chunk\n\n const body = this.consume(this.#info.payloadLength)\n\n this.#fragments.push(body)\n\n // If the frame is unfragmented, or a fragmented frame was terminated,\n // a message was received\n if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n const fullMessage = Buffer.concat(this.#fragments)\n\n websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage)\n\n this.#info = {}\n this.#fragments.length = 0\n }\n\n this.#state = parserStates.INFO\n }\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n break\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer|null}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n return null\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n parseCloseBody (onlyCode, data) {\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (onlyCode) {\n if (!isValidStatusCode(code)) {\n return null\n }\n\n return { code }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return null\n }\n\n try {\n // TODO: optimize this\n reason = new TextDecoder('utf-8', { fatal: true }).decode(reason)\n } catch {\n return null\n }\n\n return { code, reason }\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { DOMException } = require('../fetch/constants')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require('./constants')\nconst {\n kWebSocketURL,\n kReadyState,\n kController,\n kBinaryType,\n kResponse,\n kSentClose,\n kByteParser\n} = require('./symbols')\nconst { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require('./util')\nconst { establishWebSocketConnection } = require('./connection')\nconst { WebsocketFrameSend } = require('./frame')\nconst { ByteParser } = require('./receiver')\nconst { kEnumerableProperty, isBlobLike } = require('../core/util')\nconst { getGlobalDispatcher } = require('../global')\nconst { types } = require('util')\n\nlet experimentalWarned = false\n\n// https://websockets.spec.whatwg.org/#interface-definition\nclass WebSocket extends EventTarget {\n #events = {\n open: null,\n error: null,\n close: null,\n message: null\n }\n\n #bufferedAmount = 0\n #protocol = ''\n #extensions = ''\n\n /**\n * @param {string} url\n * @param {string|string[]} protocols\n */\n constructor (url, protocols = []) {\n super()\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' })\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('WebSockets are experimental, expect them to change at any time.', {\n code: 'UNDICI-WS'\n })\n }\n\n const options = webidl.converters['DOMString or sequence<DOMString> or WebSocketInit'](protocols)\n\n url = webidl.converters.USVString(url)\n protocols = options.protocols\n\n // 1. Let urlRecord be the result of applying the URL parser to url.\n let urlRecord\n\n try {\n urlRecord = new URL(url)\n } catch (e) {\n // 2. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 3. If urlRecord\u2019s scheme is not \"ws\" or \"wss\", then throw a\n // \"SyntaxError\" DOMException.\n if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n throw new DOMException(\n `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,\n 'SyntaxError'\n )\n }\n\n // 4. If urlRecord\u2019s fragment is non-null, then throw a \"SyntaxError\"\n // DOMException.\n if (urlRecord.hash) {\n throw new DOMException('Got fragment', 'SyntaxError')\n }\n\n // 5. If protocols is a string, set protocols to a sequence consisting\n // of just that string.\n if (typeof protocols === 'string') {\n protocols = [protocols]\n }\n\n // 6. If any of the values in protocols occur more than once or otherwise\n // fail to match the requirements for elements that comprise the value\n // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n // protocol, then throw a \"SyntaxError\" DOMException.\n if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n // 7. Set this's url to urlRecord.\n this[kWebSocketURL] = urlRecord\n\n // 8. Let client be this's relevant settings object.\n\n // 9. Run this step in parallel:\n\n // 1. Establish a WebSocket connection given urlRecord, protocols,\n // and client.\n this[kController] = establishWebSocketConnection(\n urlRecord,\n protocols,\n this,\n (response) => this.#onConnectionEstablished(response),\n options\n )\n\n // Each WebSocket object has an associated ready state, which is a\n // number representing the state of the connection. Initially it must\n // be CONNECTING (0).\n this[kReadyState] = WebSocket.CONNECTING\n\n // The extensions attribute must initially return the empty string.\n\n // The protocol attribute must initially return the empty string.\n\n // Each WebSocket object has an associated binary type, which is a\n // BinaryType. Initially it must be \"blob\".\n this[kBinaryType] = 'blob'\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n * @param {number|undefined} code\n * @param {string|undefined} reason\n */\n close (code = undefined, reason = undefined) {\n webidl.brandCheck(this, WebSocket)\n\n if (code !== undefined) {\n code = webidl.converters['unsigned short'](code, { clamp: true })\n }\n\n if (reason !== undefined) {\n reason = webidl.converters.USVString(reason)\n }\n\n // 1. If code is present, but is neither an integer equal to 1000 nor an\n // integer in the range 3000 to 4999, inclusive, throw an\n // \"InvalidAccessError\" DOMException.\n if (code !== undefined) {\n if (code !== 1000 && (code < 3000 || code > 4999)) {\n throw new DOMException('invalid code', 'InvalidAccessError')\n }\n }\n\n let reasonByteLength = 0\n\n // 2. If reason is present, then run these substeps:\n if (reason !== undefined) {\n // 1. Let reasonBytes be the result of encoding reason.\n // 2. If reasonBytes is longer than 123 bytes, then throw a\n // \"SyntaxError\" DOMException.\n reasonByteLength = Buffer.byteLength(reason)\n\n if (reasonByteLength > 123) {\n throw new DOMException(\n `Reason must be less than 123 bytes; received ${reasonByteLength}`,\n 'SyntaxError'\n )\n }\n }\n\n // 3. Run the first matching steps from the following list:\n if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(this)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(this, 'Connection was closed before it was established.')\n this[kReadyState] = WebSocket.CLOSING\n } else if (!isClosing(this)) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE), (err) => {\n if (!err) {\n this[kSentClose] = true\n }\n })\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n this[kReadyState] = WebSocket.CLOSING\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n */\n send (data) {\n webidl.brandCheck(this, WebSocket)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' })\n\n data = webidl.converters.WebSocketSendData(data)\n\n // 1. If this's ready state is CONNECTING, then throw an\n // \"InvalidStateError\" DOMException.\n if (this[kReadyState] === WebSocket.CONNECTING) {\n throw new DOMException('Sent before connected.', 'InvalidStateError')\n }\n\n // 2. Run the appropriate set of steps from the following list:\n // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n if (!isEstablished(this) || isClosing(this)) {\n return\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n // If data is a string\n if (typeof data === 'string') {\n // If the WebSocket connection is established and the WebSocket\n // closing handshake has not yet started, then the user agent\n // must send a WebSocket Message comprised of the data argument\n // using a text frame opcode; if the data cannot be sent, e.g.\n // because it would need to be buffered but the buffer is full,\n // the user agent must flag the WebSocket as full and then close\n // the WebSocket connection. Any invocation of this method with a\n // string argument that does not throw an exception must increase\n // the bufferedAmount attribute by the number of bytes needed to\n // express the argument as UTF-8.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.TEXT)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (types.isArrayBuffer(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need\n // to be buffered but the buffer is full, the user agent must flag\n // the WebSocket as full and then close the WebSocket connection.\n // The data to be sent is the data stored in the buffer described\n // by the ArrayBuffer object. Any invocation of this method with an\n // ArrayBuffer argument that does not throw an exception must\n // increase the bufferedAmount attribute by the length of the\n // ArrayBuffer in bytes.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (ArrayBuffer.isView(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The\n // data to be sent is the data stored in the section of the buffer\n // described by the ArrayBuffer object that data references. Any\n // invocation of this method with this kind of argument that does\n // not throw an exception must increase the bufferedAmount attribute\n // by the length of data\u2019s buffer in bytes.\n\n const ab = Buffer.from(data, data.byteOffset, data.byteLength)\n\n const frame = new WebsocketFrameSend(ab)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += ab.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= ab.byteLength\n })\n } else if (isBlobLike(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The data\n // to be sent is the raw data represented by the Blob object. Any\n // invocation of this method with a Blob argument that does not throw\n // an exception must increase the bufferedAmount attribute by the size\n // of the Blob object\u2019s raw data, in bytes.\n\n const frame = new WebsocketFrameSend()\n\n data.arrayBuffer().then((ab) => {\n const value = Buffer.from(ab)\n frame.frameData = value\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n })\n }\n }\n\n get readyState () {\n webidl.brandCheck(this, WebSocket)\n\n // The readyState getter steps are to return this's ready state.\n return this[kReadyState]\n }\n\n get bufferedAmount () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#bufferedAmount\n }\n\n get url () {\n webidl.brandCheck(this, WebSocket)\n\n // The url getter steps are to return this's url, serialized.\n return URLSerializer(this[kWebSocketURL])\n }\n\n get extensions () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#extensions\n }\n\n get protocol () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#protocol\n }\n\n get onopen () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.open\n }\n\n set onopen (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n\n get onclose () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.close\n }\n\n set onclose (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.close) {\n this.removeEventListener('close', this.#events.close)\n }\n\n if (typeof fn === 'function') {\n this.#events.close = fn\n this.addEventListener('close', fn)\n } else {\n this.#events.close = null\n }\n }\n\n get onmessage () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.message\n }\n\n set onmessage (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get binaryType () {\n webidl.brandCheck(this, WebSocket)\n\n return this[kBinaryType]\n }\n\n set binaryType (type) {\n webidl.brandCheck(this, WebSocket)\n\n if (type !== 'blob' && type !== 'arraybuffer') {\n this[kBinaryType] = 'blob'\n } else {\n this[kBinaryType] = type\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n */\n #onConnectionEstablished (response) {\n // processResponse is called when the \"response\u2019s header list has been received and initialized.\"\n // once this happens, the connection is open\n this[kResponse] = response\n\n const parser = new ByteParser(this)\n parser.on('drain', function onParserDrain () {\n this.ws[kResponse].socket.resume()\n })\n\n response.socket.ws = this\n this[kByteParser] = parser\n\n // 1. Change the ready state to OPEN (1).\n this[kReadyState] = states.OPEN\n\n // 2. Change the extensions attribute\u2019s value to the extensions in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n const extensions = response.headersList.get('sec-websocket-extensions')\n\n if (extensions !== null) {\n this.#extensions = extensions\n }\n\n // 3. Change the protocol attribute\u2019s value to the subprotocol in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n const protocol = response.headersList.get('sec-websocket-protocol')\n\n if (protocol !== null) {\n this.#protocol = protocol\n }\n\n // 4. Fire an event named open at the WebSocket object.\n fireEvent('open', this)\n }\n}\n\n// https://websockets.spec.whatwg.org/#dom-websocket-connecting\nWebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING\n// https://websockets.spec.whatwg.org/#dom-websocket-open\nWebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN\n// https://websockets.spec.whatwg.org/#dom-websocket-closing\nWebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING\n// https://websockets.spec.whatwg.org/#dom-websocket-closed\nWebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED\n\nObject.defineProperties(WebSocket.prototype, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors,\n url: kEnumerableProperty,\n readyState: kEnumerableProperty,\n bufferedAmount: kEnumerableProperty,\n onopen: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onclose: kEnumerableProperty,\n close: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n binaryType: kEnumerableProperty,\n send: kEnumerableProperty,\n extensions: kEnumerableProperty,\n protocol: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'WebSocket',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(WebSocket, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors\n})\n\nwebidl.converters['sequence<DOMString>'] = webidl.sequenceConverter(\n webidl.converters.DOMString\n)\n\nwebidl.converters['DOMString or sequence<DOMString>'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n return webidl.converters['sequence<DOMString>'](V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// This implements the propsal made in https://github.com/whatwg/websockets/issues/42\nwebidl.converters.WebSocketInit = webidl.dictionaryConverter([\n {\n key: 'protocols',\n converter: webidl.converters['DOMString or sequence<DOMString>'],\n get defaultValue () {\n return []\n }\n },\n {\n key: 'dispatcher',\n converter: (V) => V,\n get defaultValue () {\n return getGlobalDispatcher()\n }\n },\n {\n key: 'headers',\n converter: webidl.nullableConverter(webidl.converters.HeadersInit)\n }\n])\n\nwebidl.converters['DOMString or sequence<DOMString> or WebSocketInit'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) {\n return webidl.converters.WebSocketInit(V)\n }\n\n return { protocols: webidl.converters['DOMString or sequence<DOMString>'](V) }\n}\n\nwebidl.converters.WebSocketSendData = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n return webidl.converters.BufferSource(V)\n }\n }\n\n return webidl.converters.USVString(V)\n}\n\nmodule.exports = {\n WebSocket\n}\n", "'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nlet hasCrypto\ntry {\n require('crypto')\n hasCrypto = true\n} catch {\n hasCrypto = false\n}\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n\n try {\n return await fetchImpl(...arguments)\n } catch (err) {\n Error.captureStackTrace(err, this)\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n module.exports.FileReader = require('./lib/fileapi/filereader').FileReader\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n\n const { CacheStorage } = require('./lib/cache/cachestorage')\n const { kConstruct } = require('./lib/cache/symbols')\n\n // Cache & CacheStorage are tightly coupled with fetch. Even if it may run\n // in an older version of Node, it doesn't have any use without fetch.\n module.exports.caches = new CacheStorage(kConstruct)\n}\n\nif (util.nodeMajor >= 16) {\n const { deleteCookie, getCookies, getSetCookies, setCookie } = require('./lib/cookies')\n\n module.exports.deleteCookie = deleteCookie\n module.exports.getCookies = getCookies\n module.exports.getSetCookies = getSetCookies\n module.exports.setCookie = setCookie\n\n const { parseMIMEType, serializeAMimeType } = require('./lib/fetch/dataURL')\n\n module.exports.parseMIMEType = parseMIMEType\n module.exports.serializeAMimeType = serializeAMimeType\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n const { WebSocket } = require('./lib/websocket/websocket')\n\n module.exports.WebSocket = WebSocket\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n", null, null, null, "'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n", "'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n", "'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n", "'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n", "'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n", "'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n", "'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n", "'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n", "var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n", "var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL());\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230\u00A75.3.1: When making a request directly to an origin server, [\u2026]\n // a client MUST send only the absolute path [\u2026] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, [\u2026]\n // a client MUST send the target URI in absolute-form [\u2026].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231\u00A76.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231\u00A76.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231\u00A76.4: Automatic redirection needs to done with\n // care for methods not known to be safe, [\u2026]\n // RFC7231\u00A76.4.2\u20133: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231\u00A76.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource [\u2026]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) [\u2026]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n /* istanbul ignore else */\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n /* istanbul ignore next */\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n", "{\n \"name\": \"axios\",\n \"version\": \"0.21.4\",\n \"description\": \"Promise based HTTP client for the browser and node.js\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"test\": \"grunt test\",\n \"start\": \"node ./sandbox/server.js\",\n \"build\": \"NODE_ENV=production grunt build\",\n \"preversion\": \"npm test\",\n \"version\": \"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json\",\n \"postversion\": \"git push && git push --tags\",\n \"examples\": \"node ./examples/server.js\",\n \"coveralls\": \"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\",\n \"fix\": \"eslint --fix lib/**/*.js\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/axios/axios.git\"\n },\n \"keywords\": [\n \"xhr\",\n \"http\",\n \"ajax\",\n \"promise\",\n \"node\"\n ],\n \"author\": \"Matt Zabriskie\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/axios/axios/issues\"\n },\n \"homepage\": \"https://axios-http.com\",\n \"devDependencies\": {\n \"coveralls\": \"^3.0.0\",\n \"es6-promise\": \"^4.2.4\",\n \"grunt\": \"^1.3.0\",\n \"grunt-banner\": \"^0.6.0\",\n \"grunt-cli\": \"^1.2.0\",\n \"grunt-contrib-clean\": \"^1.1.0\",\n \"grunt-contrib-watch\": \"^1.0.0\",\n \"grunt-eslint\": \"^23.0.0\",\n \"grunt-karma\": \"^4.0.0\",\n \"grunt-mocha-test\": \"^0.13.3\",\n \"grunt-ts\": \"^6.0.0-beta.19\",\n \"grunt-webpack\": \"^4.0.2\",\n \"istanbul-instrumenter-loader\": \"^1.0.0\",\n \"jasmine-core\": \"^2.4.1\",\n \"karma\": \"^6.3.2\",\n \"karma-chrome-launcher\": \"^3.1.0\",\n \"karma-firefox-launcher\": \"^2.1.0\",\n \"karma-jasmine\": \"^1.1.1\",\n \"karma-jasmine-ajax\": \"^0.1.13\",\n \"karma-safari-launcher\": \"^1.0.0\",\n \"karma-sauce-launcher\": \"^4.3.6\",\n \"karma-sinon\": \"^1.0.5\",\n \"karma-sourcemap-loader\": \"^0.3.8\",\n \"karma-webpack\": \"^4.0.2\",\n \"load-grunt-tasks\": \"^3.5.2\",\n \"minimist\": \"^1.2.0\",\n \"mocha\": \"^8.2.1\",\n \"sinon\": \"^4.5.0\",\n \"terser-webpack-plugin\": \"^4.2.3\",\n \"typescript\": \"^4.0.5\",\n \"url-search-params\": \"^0.10.0\",\n \"webpack\": \"^4.44.2\",\n \"webpack-dev-server\": \"^3.11.0\"\n },\n \"browser\": {\n \"./lib/adapters/http.js\": \"./lib/adapters/xhr.js\"\n },\n \"jsdelivr\": \"dist/axios.min.js\",\n \"unpkg\": \"dist/axios.min.js\",\n \"typings\": \"./index.d.ts\",\n \"dependencies\": {\n \"follow-redirects\": \"^1.14.0\"\n },\n \"bundlesize\": [\n {\n \"path\": \"./dist/axios.min.js\",\n \"threshold\": \"5kB\"\n }\n ]\n}\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildFullPath = require('../core/buildFullPath');\nvar buildURL = require('./../helpers/buildURL');\nvar http = require('http');\nvar https = require('https');\nvar httpFollow = require('follow-redirects').http;\nvar httpsFollow = require('follow-redirects').https;\nvar url = require('url');\nvar zlib = require('zlib');\nvar pkg = require('./../../package.json');\nvar createError = require('../core/createError');\nvar enhanceError = require('../core/enhanceError');\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nmodule.exports = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var resolve = function resolve(value) {\n resolvePromise(value);\n };\n var reject = function reject(value) {\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('User-Agent' in headers || 'user-agent' in headers) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers['User-Agent'] && !headers['user-agent']) {\n delete headers['User-Agent'];\n delete headers['user-agent'];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + pkg.version;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers['Content-Length'] = data.length;\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url.parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth) {\n delete headers.Authorization;\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url.parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n var responseData = Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n\n response.data = responseData;\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n reject(createError(\n 'timeout of ' + timeout + 'ms exceeded',\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(cancel);\n });\n }\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n", "'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n", "'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n", "'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n", "'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n", "'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n", "'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n", "module.exports = require('./lib/axios');", null, null, null, null, null, null, "import React, { ReactElement, useState } from \"react\";\nimport { List, showToast, Toast, Action, Icon, ActionPanel } from \"@raycast/api\";\nimport { usePromise } from \"@raycast/utils\";\nimport { useDebouncedValue, usePreferences, useSelectedLanguagesSet, useTextState } from \"./hooks\";\nimport { supportedLanguagesByCode } from \"./languages\";\nimport { LanguageManagerListDropdown } from \"./LanguagesManager\";\nimport { doubleWayTranslate, simpleTranslate, playTTS } from \"./simple-translate\";\nimport { ConfigurableCopyPasteActions, OpenOnGoogleTranslateWebsiteAction, ToggleFullTextAction } from \"./actions\";\nimport { LanguageCodeSet } from \"./types\";\n\nconst DoubleWayTranslateItem: React.FC<{\n value: string;\n selectedLanguageSet: LanguageCodeSet;\n toggleShowingDetail: () => void;\n}> = ({ toggleShowingDetail, value, selectedLanguageSet }) => {\n const { data: results, isLoading } = usePromise(doubleWayTranslate, [value, selectedLanguageSet], {\n onError(error) {\n showToast({\n style: Toast.Style.Failure,\n title: \"Could not translate\",\n message: error.toString(),\n });\n },\n });\n\n if (isLoading) {\n return <List.EmptyView icon={Icon.Hourglass} title=\"Translating...\" />;\n }\n\n return (\n <>\n {results?.map((r, index) => {\n const langFrom = supportedLanguagesByCode[r.langFrom];\n const langTo = supportedLanguagesByCode[r.langTo];\n const languages = `${langFrom.name} -> ${langTo.name}`;\n const tooltip = `${langFrom?.name} -> ${langTo?.name}`;\n return (\n <React.Fragment key={index}>\n <List.Item\n title={r.translatedText}\n accessories={[{ text: languages, tooltip: tooltip }]}\n detail={<List.Item.Detail markdown={r.translatedText} />}\n actions={\n <ActionPanel>\n <ActionPanel.Section>\n <ConfigurableCopyPasteActions defaultActionsPrefix=\"Translation\" value={r.translatedText} />\n <ToggleFullTextAction onAction={() => toggleShowingDetail()} />\n <Action\n title=\"Play Text-To-Speech\"\n icon={Icon.Play}\n shortcut={{ modifiers: [\"cmd\"], key: \"t\" }}\n onAction={() => playTTS(r.translatedText, r.langTo)}\n />\n <OpenOnGoogleTranslateWebsiteAction translationText={value} translation={r} />\n </ActionPanel.Section>\n </ActionPanel>\n }\n />\n {r.pronunciationText && (\n <List.Item\n title={r.pronunciationText}\n accessories={[{ text: languages, tooltip: tooltip }]}\n detail={<List.Item.Detail markdown={r.pronunciationText} />}\n actions={\n <ActionPanel>\n <ActionPanel.Section>\n <ConfigurableCopyPasteActions value={r.pronunciationText} />\n <ToggleFullTextAction onAction={() => toggleShowingDetail()} />\n <OpenOnGoogleTranslateWebsiteAction translationText={value} translation={r} />\n </ActionPanel.Section>\n </ActionPanel>\n }\n />\n )}\n </React.Fragment>\n );\n })}\n </>\n );\n};\n\nconst TranslateItem: React.FC<{\n value: string;\n selectedLanguageSet: LanguageCodeSet;\n toggleShowingDetail: () => void;\n}> = ({ toggleShowingDetail, value, selectedLanguageSet }) => {\n const { data: result, isLoading } = usePromise(simpleTranslate, [value, selectedLanguageSet], {\n onError(error) {\n showToast({\n style: Toast.Style.Failure,\n title: \"Could not translate\",\n message: error.toString(),\n });\n },\n });\n\n const langFromCode = result?.langFrom ?? selectedLanguageSet.langFrom;\n const langToCode = result?.langTo ?? selectedLanguageSet.langTo[0];\n\n const langFrom = supportedLanguagesByCode[langFromCode];\n const langTo = supportedLanguagesByCode[langToCode];\n const languages = `${langFrom.name} -> ${langTo.name}`;\n const tooltip = `${langFrom?.name} -> ${langTo?.name}`;\n\n return (\n <List.Item\n title={result?.translatedText ?? \"\"}\n subtitle={isLoading ? \"Translating...\" : undefined}\n accessories={[{ text: languages, tooltip: tooltip }]}\n detail={<List.Item.Detail markdown={result?.translatedText ?? \"\"} />}\n actions={\n <ActionPanel>\n <ActionPanel.Section>\n <ConfigurableCopyPasteActions defaultActionsPrefix=\"Translation\" value={result?.translatedText ?? \"\"} />\n <ToggleFullTextAction onAction={() => toggleShowingDetail()} />\n {result && (\n <Action\n title=\"Play Text-To-Speech\"\n icon={Icon.Play}\n shortcut={{ modifiers: [\"cmd\"], key: \"t\" }}\n onAction={() => playTTS(result.translatedText, langToCode)}\n />\n )}\n {result && <OpenOnGoogleTranslateWebsiteAction translationText={value} translation={result} />}\n </ActionPanel.Section>\n </ActionPanel>\n }\n />\n );\n};\n\nexport default function Translate(): ReactElement {\n const [selectedLanguageSet] = useSelectedLanguagesSet();\n const { proxy } = usePreferences();\n const [isShowingDetail, setIsShowingDetail] = useState(false);\n const [text, setText] = useTextState();\n const debouncedValue = useDebouncedValue(text, 500);\n\n return (\n <List\n searchBarPlaceholder=\"Enter text to translate\"\n searchText={text}\n onSearchTextChange={setText}\n isShowingDetail={isShowingDetail}\n searchBarAccessory={<LanguageManagerListDropdown />}\n >\n {selectedLanguageSet.langTo.length === 1 ? (\n <DoubleWayTranslateItem\n value={debouncedValue}\n selectedLanguageSet={{ langFrom: selectedLanguageSet.langFrom, langTo: selectedLanguageSet.langTo, proxy }}\n toggleShowingDetail={() => setIsShowingDetail(!isShowingDetail)}\n />\n ) : (\n selectedLanguageSet.langTo.map((langTo, index) => (\n <TranslateItem\n key={`${index} ${langTo}`}\n value={debouncedValue}\n selectedLanguageSet={{ langFrom: selectedLanguageSet.langFrom, langTo: [langTo], proxy }}\n toggleShowingDetail={() => setIsShowingDetail(!isShowingDetail)}\n />\n ))\n )}\n </List>\n );\n}\n", "import { getPreferenceValues, getSelectedText } from \"@raycast/api\";\nimport { useCachedState } from \"@raycast/utils\";\nimport React from \"react\";\nimport { LanguageCode } from \"./languages\";\nimport { LanguageCodeSet, TranslatePreferences } from \"./types\";\nimport { AUTO_DETECT } from \"./simple-translate\";\n\ntype _LegacySingleLanguageCodeSet = {\n langFrom: LanguageCode;\n langTo: LanguageCode;\n};\n\ntype _StoredLanguageCodeSet = _LegacySingleLanguageCodeSet | LanguageCodeSet;\n\nconst unifyLegacyLanguageSet = (legacy: _StoredLanguageCodeSet): LanguageCodeSet => {\n return {\n langFrom: legacy.langFrom,\n langTo: Array.isArray(legacy.langTo) ? legacy.langTo : [legacy.langTo],\n };\n};\n\nexport const usePreferences = () => {\n return React.useMemo(() => getPreferenceValues<TranslatePreferences>(), []);\n};\n\nexport const useTextState = () => {\n const preferences = usePreferences();\n const [text, setText] = React.useState(\"\");\n const textRef = React.useRef(text);\n textRef.current = text;\n\n React.useEffect(() => {\n if (preferences.autoInput) {\n getSelectedText()\n .then((cbText) => {\n if (!textRef.current) {\n setText(cbText ?? \"\");\n }\n })\n .catch((err) => {\n console.log(\"Error:\", err);\n });\n }\n }, []);\n\n return [text, setText] as const;\n};\n\nexport const useSelectedLanguagesSet = () => {\n const preferences = usePreferences();\n const [selectedLanguageSet, setSelectedLanguageSet] = useCachedState<_StoredLanguageCodeSet>(\n \"selectedLanguageSet\",\n unifyLegacyLanguageSet({\n langFrom: preferences.lang1,\n langTo: preferences.lang2,\n }),\n );\n\n return [unifyLegacyLanguageSet(selectedLanguageSet), setSelectedLanguageSet] as const;\n};\n\nexport const usePreferencesLanguageSet = () => {\n const preferences = usePreferences();\n const preferencesLanguageSet: LanguageCodeSet = { langFrom: preferences.lang1, langTo: [preferences.lang2] };\n return preferencesLanguageSet;\n};\n\nexport const useDebouncedValue = <T>(value: T, delay: number) => {\n const [debouncedValue, setDebouncedValue] = React.useState<T>(value);\n\n React.useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n\nexport const useAllLanguageSets = () => {\n const [languages, setLanguages] = useCachedState<_StoredLanguageCodeSet[]>(\"languages\", []);\n\n return [languages.map(unifyLegacyLanguageSet), setLanguages] as const;\n};\n\nexport const useSourceLanguage = () => {\n const [sourceLanguage, setSourceLanguage] = useCachedState<LanguageCode>(\"sourceLanguage\", AUTO_DETECT);\n\n return [sourceLanguage, setSourceLanguage] as const;\n};\n\nexport const useTargetLanguages = () => {\n const preferences = usePreferences();\n const [targetLanguages, setTargetLanguages] = useCachedState<LanguageCode[]>(\n \"targetLanguages\",\n [preferences.lang1, preferences.lang2].filter((lang) => lang !== AUTO_DETECT),\n );\n\n return [targetLanguages, setTargetLanguages] as const;\n};\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\nimport querystring from \"querystring\";\nimport { request, ProxyAgent } from \"undici\";\nimport { TranslateOption, TranslateResponse } from \"./types\";\nimport { isSupported, getISOCode } from \"./languages\";\nimport { tokenGenerator } from \"./tokenGenerator\";\n\n/**\n * @function translate\n * @param {String} text The text to be translated.\n * @param {TranslateOption} options The options object for the translator.\n * @returns {TranslateResponse} The result containing the translation.\n */\nexport async function translate(text: string, options?: TranslateOption): Promise<TranslateResponse> {\n if (typeof options !== \"object\") options = {};\n text = String(text);\n\n // Check if a lanugage is in supported; if not, throw an error object.\n let error: Error | null = null;\n [ options.from, options.to ].forEach((lang) => {\n if (lang && !isSupported(lang)) {\n error = new Error();\n error.message = `The language '${lang}' is not supported.`;\n }\n });\n if (error) throw error;\n\n // If options object doesn\"t have \"from\" language, set it to \"auto\".\n if (!Object.prototype.hasOwnProperty.call(options, \"from\")) options.from = \"auto\";\n // If options object doesn\"t have \"to\" language, set it to \"en\".\n if (!Object.prototype.hasOwnProperty.call(options, \"to\")) options.to = \"en\";\n // If options object has a \"raw\" property evaluating to true, set it to true.\n options.raw = Boolean(options.raw);\n\n // Get ISO 639-1 codes for the languages.\n options.from = getISOCode(options.from);\n options.to = getISOCode(options.to);\n\n // Generate Google Translate token for the text to be translated.\n let token: any = await tokenGenerator(text);\n\n // URL & query string required by Google Translate.\n let baseUrl = \"https://translate.google.com/translate_a/single\";\n let data: any = {\n client: \"gtx\",\n sl: options.from,\n tl: options.to,\n hl: options.to,\n dt: [ \"at\", \"bd\", \"ex\", \"ld\", \"md\", \"qca\", \"rw\", \"rm\", \"ss\", \"t\" ],\n ie: \"UTF-8\",\n oe: \"UTF-8\",\n otf: 1,\n ssel: 0,\n tsel: 0,\n kc: 7,\n q: text,\n [token.name]: token.value\n };\n\n // Append query string to the request URL.\n let url = `${baseUrl}?${querystring.stringify(data)}`;\n\n let requestOptions: any;\n let requestUrl = url;\n // If request URL is greater than 2048 characters, use POST method.\n if (url.length > 2048) {\n delete data.q;\n requestUrl = `${baseUrl}?${querystring.stringify(data)}`;\n requestOptions = {\n method: \"POST\",\n body: new URLSearchParams({ q: text }).toString(),\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\",\n },\n };\n if (options.proxy) {\n requestOptions.dispatcher = new ProxyAgent(options.proxy);\n }\n }\n else {\n if (options.proxy) {\n requestOptions = { dispatcher: new ProxyAgent(options.proxy) };\n }\n }\n\n // Request translation from Google Translate.\n let response = await request(requestUrl, requestOptions);\n let body: any = await response.body.json();\n\n let result: TranslateResponse = {\n text: \"\",\n from: {\n language: {\n didYouMean: false,\n iso: \"\"\n },\n text: {\n autoCorrected: false,\n value: \"\",\n didYouMean: false\n }\n },\n raw: \"\"\n };\n\n // If user requested a raw output, add the raw response to the result\n if (options.raw) {\n result.raw = body;\n }\n\n // Parse body and add it to the result object.\n body[0].forEach((obj: any) => {\n if (obj[0]) {\n result.text += obj[0];\n }\n });\n\n if (body[2] === body[8][0][0]) {\n result.from.language.iso = body[2];\n }\n else {\n result.from.language.didYouMean = true;\n result.from.language.iso = body[8][0][0];\n }\n\n if (body[7] && body[7][0]) {\n let str = body[7][0];\n\n str = str.replace(/<b><i>/g, \"[\");\n str = str.replace(/<\\/i><\\/b>/g, \"]\");\n\n result.from.text.value = str;\n\n if (body[7][5] === true) {\n result.from.text.autoCorrected = true;\n }\n else {\n result.from.text.didYouMean = true;\n }\n }\n\n return result;\n}\n", "/**\n * Generated from https://translate.google.com\n *\n * The languages that Google Translate supports (as of 7/5/2020) alongside\n * their ISO 639-1 codes\n * @see https://cloud.google.com/translate/docs/languages\n * @see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n */\n\nexport const languages = {\n \"auto\": \"Auto-Detect\",\n \"ab\": \"Abkhaz\",\n \"ace\": \"Acehnese\",\n \"ach\": \"Acholi\",\n \"aa\": \"Afar\",\n \"af\": \"Afrikaans\",\n \"sq\": \"Albanian\",\n \"alz\": \"Alur\",\n \"am\": \"Amharic\",\n \"ar\": \"Arabic\",\n \"hy\": \"Armenian\",\n \"as\": \"Assamese\",\n \"av\": \"Avar\",\n \"awa\": \"Awadhi\",\n \"ay\": \"Aymara\",\n \"az\": \"Azerbaijani\",\n \"ban\": \"Balinese\",\n \"bal\": \"Baluchi\",\n \"bm\": \"Bambara\",\n \"bci\": \"Baoul\\u00e9\",\n \"ba\": \"Bashkir\",\n \"eu\": \"Basque\",\n \"btx\": \"Batak Karo\",\n \"bts\": \"Batak Simalungun\",\n \"bbc\": \"Batak Toba\",\n \"be\": \"Belarusian\",\n \"bem\": \"Bemba\",\n \"bn\": \"Bengali\",\n \"bew\": \"Betawi\",\n \"bho\": \"Bhojpuri\",\n \"bik\": \"Bikol\",\n \"bs\": \"Bosnian\",\n \"br\": \"Breton\",\n \"bg\": \"Bulgarian\",\n \"bua\": \"Buryat\",\n \"yue\": \"Cantonese\",\n \"ca\": \"Catalan\",\n \"ceb\": \"Cebuano\",\n \"ch\": \"Chamorro\",\n \"ce\": \"Chechen\",\n \"ny\": \"Chichewa\",\n \"zh-CN\": \"Chinese (Simplified)\",\n \"zh-TW\": \"Chinese (Traditional)\",\n \"chk\": \"Chuukese\",\n \"cv\": \"Chuvash\",\n \"co\": \"Corsican\",\n \"crh\": \"Crimean Tatar (Cyrillic)\",\n \"crh-Latn\": \"Crimean Tatar (Latin)\",\n \"hr\": \"Croatian\",\n \"cs\": \"Czech\",\n \"da\": \"Danish\",\n \"fa-AF\": \"Dari\",\n \"dv\": \"Dhivehi\",\n \"din\": \"Dinka\",\n \"doi\": \"Dogri\",\n \"dov\": \"Dombe\",\n \"nl\": \"Dutch\",\n \"dyu\": \"Dyula\",\n \"dz\": \"Dzongkha\",\n \"en\": \"English\",\n \"eo\": \"Esperanto\",\n \"et\": \"Estonian\",\n \"ee\": \"Ewe\",\n \"fo\": \"Faroese\",\n \"fj\": \"Fijian\",\n \"tl\": \"Filipino\",\n \"fi\": \"Finnish\",\n \"fon\": \"Fon\",\n \"fr\": \"French\",\n \"fr-CA\": \"French (Canada)\",\n \"fy\": \"Frisian\",\n \"fur\": \"Friulian\",\n \"ff\": \"Fulani\",\n \"gaa\": \"Ga\",\n \"gl\": \"Galician\",\n \"ka\": \"Georgian\",\n \"de\": \"German\",\n \"el\": \"Greek\",\n \"gn\": \"Guarani\",\n \"gu\": \"Gujarati\",\n \"ht\": \"Haitian Creole\",\n \"cnh\": \"Hakha Chin\",\n \"ha\": \"Hausa\",\n \"haw\": \"Hawaiian\",\n \"iw\": \"Hebrew\",\n \"hil\": \"Hiligaynon\",\n \"hi\": \"Hindi\",\n \"hmn\": \"Hmong\",\n \"hu\": \"Hungarian\",\n \"hrx\": \"Hunsrik\",\n \"iba\": \"Iban\",\n \"is\": \"Icelandic\",\n \"ig\": \"Igbo\",\n \"ilo\": \"Ilocano\",\n \"id\": \"Indonesian\",\n \"iu-Latn\": \"Inuktut (Latin)\",\n \"iu\": \"Inuktut (Syllabics)\",\n \"ga\": \"Irish\",\n \"it\": \"Italian\",\n \"jam\": \"Jamaican Patois\",\n \"ja\": \"Japanese\",\n \"jv\": \"Javanese\",\n \"kac\": \"Jingpo\",\n \"kl\": \"Kalaallisut\",\n \"kn\": \"Kannada\",\n \"kr\": \"Kanuri\",\n \"pam\": \"Kapampangan\",\n \"kk\": \"Kazakh\",\n \"kha\": \"Khasi\",\n \"km\": \"Khmer\",\n \"cgg\": \"Kiga\",\n \"kg\": \"Kikongo\",\n \"rw\": \"Kinyarwanda\",\n \"ktu\": \"Kituba\",\n \"trp\": \"Kokborok\",\n \"kv\": \"Komi\",\n \"gom\": \"Konkani\",\n \"ko\": \"Korean\",\n \"kri\": \"Krio\",\n \"ku\": \"Kurdish (Kurmanji)\",\n \"ckb\": \"Kurdish (Sorani)\",\n \"ky\": \"Kyrgyz\",\n \"lo\": \"Lao\",\n \"ltg\": \"Latgalian\",\n \"la\": \"Latin\",\n \"lv\": \"Latvian\",\n \"lij\": \"Ligurian\",\n \"li\": \"Limburgish\",\n \"ln\": \"Lingala\",\n \"lt\": \"Lithuanian\",\n \"lmo\": \"Lombard\",\n \"lg\": \"Luganda\",\n \"luo\": \"Luo\",\n \"lb\": \"Luxembourgish\",\n \"mk\": \"Macedonian\",\n \"mad\": \"Madurese\",\n \"mai\": \"Maithili\",\n \"mak\": \"Makassar\",\n \"mg\": \"Malagasy\",\n \"ms\": \"Malay\",\n \"ms-Arab\": \"Malay (Jawi)\",\n \"ml\": \"Malayalam\",\n \"mt\": \"Maltese\",\n \"mam\": \"Mam\",\n \"gv\": \"Manx\",\n \"mi\": \"Maori\",\n \"mr\": \"Marathi\",\n \"mh\": \"Marshallese\",\n \"mwr\": \"Marwadi\",\n \"mfe\": \"Mauritian Creole\",\n \"chm\": \"Meadow Mari\",\n \"mni-Mtei\": \"Meiteilon (Manipuri)\",\n \"min\": \"Minang\",\n \"lus\": \"Mizo\",\n \"mn\": \"Mongolian\",\n \"my\": \"Myanmar (Burmese)\",\n \"bm-Nkoo\": \"NKo\",\n \"nhe\": \"Nahuatl (Eastern Huasteca)\",\n \"ndc-ZW\": \"Ndau\",\n \"nr\": \"Ndebele (South)\",\n \"new\": \"Nepalbhasa (Newari)\",\n \"ne\": \"Nepali\",\n \"no\": \"Norwegian\",\n \"nus\": \"Nuer\",\n \"oc\": \"Occitan\",\n \"or\": \"Odia (Oriya)\",\n \"om\": \"Oromo\",\n \"os\": \"Ossetian\",\n \"pag\": \"Pangasinan\",\n \"pap\": \"Papiamento\",\n \"ps\": \"Pashto\",\n \"fa\": \"Persian\",\n \"pl\": \"Polish\",\n \"pt\": \"Portuguese (Brazil)\",\n \"pt-PT\": \"Portuguese (Portugal)\",\n \"pa\": \"Punjabi (Gurmukhi)\",\n \"pa-Arab\": \"Punjabi (Shahmukhi)\",\n \"qu\": \"Quechua\",\n \"kek\": \"Q\\u02bceqchi\\u02bc\",\n \"rom\": \"Romani\",\n \"ro\": \"Romanian\",\n \"rn\": \"Rundi\",\n \"ru\": \"Russian\",\n \"se\": \"Sami (North)\",\n \"sm\": \"Samoan\",\n \"sg\": \"Sango\",\n \"sa\": \"Sanskrit\",\n \"sat-Latn\": \"Santali (Latin)\",\n \"sat\": \"Santali (Ol Chiki)\",\n \"gd\": \"Scots Gaelic\",\n \"nso\": \"Sepedi\",\n \"sr\": \"Serbian\",\n \"st\": \"Sesotho\",\n \"crs\": \"Seychellois Creole\",\n \"shn\": \"Shan\",\n \"sn\": \"Shona\",\n \"scn\": \"Sicilian\",\n \"szl\": \"Silesian\",\n \"sd\": \"Sindhi\",\n \"si\": \"Sinhala\",\n \"sk\": \"Slovak\",\n \"sl\": \"Slovenian\",\n \"so\": \"Somali\",\n \"es\": \"Spanish\",\n \"su\": \"Sundanese\",\n \"sus\": \"Susu\",\n \"sw\": \"Swahili\",\n \"ss\": \"Swati\",\n \"sv\": \"Swedish\",\n \"ty\": \"Tahitian\",\n \"tg\": \"Tajik\",\n \"ber-Latn\": \"Tamazight\",\n \"ber\": \"Tamazight (Tifinagh)\",\n \"ta\": \"Tamil\",\n \"tt\": \"Tatar\",\n \"te\": \"Telugu\",\n \"tet\": \"Tetum\",\n \"th\": \"Thai\",\n \"bo\": \"Tibetan\",\n \"ti\": \"Tigrinya\",\n \"tiv\": \"Tiv\",\n \"tpi\": \"Tok Pisin\",\n \"to\": \"Tongan\",\n \"lua\": \"Tshiluba\",\n \"ts\": \"Tsonga\",\n \"tn\": \"Tswana\",\n \"tcy\": \"Tulu\",\n \"tum\": \"Tumbuka\",\n \"tr\": \"Turkish\",\n \"tk\": \"Turkmen\",\n \"tyv\": \"Tuvan\",\n \"ak\": \"Twi\",\n \"udm\": \"Udmurt\",\n \"uk\": \"Ukrainian\",\n \"ur\": \"Urdu\",\n \"ug\": \"Uyghur\",\n \"uz\": \"Uzbek\",\n \"ve\": \"Venda\",\n \"vec\": \"Venetian\",\n \"vi\": \"Vietnamese\",\n \"war\": \"Waray\",\n \"cy\": \"Welsh\",\n \"wo\": \"Wolof\",\n \"xh\": \"Xhosa\",\n \"sah\": \"Yakut\",\n \"yi\": \"Yiddish\",\n \"yo\": \"Yoruba\",\n \"yua\": \"Yucatec Maya\",\n \"zap\": \"Zapotec\",\n \"zu\": \"Zulu\",\n} as const;\n\n/**\n * Returns the ISO 639-1 code of the desiredLang \u2013 if it is supported by\n * Google Translate\n * @param {string} language The name or the code of the desired language\n * @returns {string|undefined} The ISO 639-1 code of the language or null if the\n * language is not supported\n */\nexport function getISOCode(language: string | undefined) {\n if (!language) return undefined;\n if (language in languages) return language;\n language = language.toLowerCase();\n if (language in languages) return language;\n\n const keys = (Object.keys(languages) as (keyof typeof languages)[]).filter((key) => {\n if (typeof languages[key] !== \"string\") return false;\n\n return languages[key].toLowerCase() === language;\n });\n\n return keys[0] || undefined;\n}\n\n/**\n * Returns true if the desiredLang is supported by Google Translate and false otherwise\n * @param {string} language The ISO 639-1 code or the name of the desired language.\n * @returns {boolean} If the language is supported or not.\n */\nexport function isSupported(language: string | undefined) {\n return Boolean(getISOCode(language));\n}\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\n\nimport { request } from \"undici\";\n\nfunction zr(a: string) {\n let b: any;\n if (null !== yr) b = yr;\n else {\n b = wr(String.fromCharCode(84));\n let c = wr(String.fromCharCode(75));\n b = [ b(), b() ];\n b[1] = c();\n b = (yr = window[b.join(c())] || \"\") || \"\";\n }\n let d: any = wr(String.fromCharCode(116));\n let c: any = wr(String.fromCharCode(107));\n d = [ d(), d() ];\n d[1] = c();\n c = \"&\" + d.join(\"\") + \"=\";\n d = b.split(\".\");\n b = Number(d[0]) || 0;\n\n for (var e: any[] = [], f = 0, g = 0; g < a.length; g++) {\n let l = a.charCodeAt(g);\n 128 > l ? e[f++] = l : (2048 > l ? e[f++] = l >> 6 | 192 : ((l & 64512) == 55296 && g + 1 < a.length && (a.charCodeAt(g + 1) & 64512) == 56320 ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023), e[f++] = l >> 18 | 240, e[f++] = l >> 12 & 63 | 128) : e[f++] = l >> 12 | 224, e[f++] = l >> 6 & 63 | 128), e[f++] = l & 63 | 128);\n }\n let h: number = Number(b);\n for (let f = 0; f < e.length; f++) a += e[f], h = xr(h, \"+-a^+6\");\n h = xr(h, \"+-3^+b+-f\");\n h ^= Number(d[1]) || 0;\n 0 > h && (h = (h & 2147483647) + 2147483648);\n h %= 1E6;\n return c + (a.toString() + \".\" + (h ^ b));\n}\n\nlet yr: string | null = null;\nlet wr = function(a: string) {\n return function() {\n return a;\n };\n};\nlet xr = function(a: number, b: string) {\n for (let c = 0; c < b.length - 2; c += 3) {\n let d = b.charAt(c + 2);\n let e = d >= \"a\" ? d.charCodeAt(0) - 87 : Number(d);\n e = b.charAt(c + 1) == \"+\" ? a >>> e : a << e;\n a = b.charAt(c) == \"+\" ? a + e & 4294967295 : a ^ e;\n }\n return a;\n};\n\nconst config = new Map();\n\nconst window: any = {\n TKK: config.get(\"TKK\") || \"0\"\n};\n\nasync function updateTKK() {\n let now = Math.floor(Date.now() / 3600000);\n\n if (Number(window.TKK.split(\".\")[0]) !== now) {\n const response = await request(\"https://translate.google.com\");\n const body = await response.body.text();\n\n // code will extract something like tkk:'1232135.131231321312', we need only value\n const code = body.match(/tkk:'\\d+.\\d+'/g);\n\n if (code && code.length > 0) {\n // extracting value tkk:'1232135.131231321312', this will extract only token: 1232135.131231321312\n const xt = code[0].split(\":\")[1].replace(/'/g, \"\");\n\n window.TKK = xt;\n config.set(\"TKK\", xt);\n }\n }\n}\n\nexport async function tokenGenerator(text: string) {\n try {\n await updateTKK();\n\n let tk = zr(text);\n tk = tk.replace(\"&tk=\", \"\");\n return { name: \"tk\", value: tk };\n }\n catch (error) {\n return error;\n }\n}\n", "import { translate } from \"../vendor/@iamtraction-translate/src\";\nimport * as googleTTS from \"google-tts-api\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport * as https from \"https\";\nimport * as child_process from \"child_process\";\nimport { existsSync, writeFileSync, unlinkSync } from \"fs\";\nimport { LanguageCode } from \"./languages\";\nimport { LanguageCodeSet } from \"./types\";\nimport { HttpsProxyAgent } from \"https-proxy-agent\";\n\nexport const AUTO_DETECT = \"auto\";\n\nexport type SimpleTranslateResult = {\n originalText: string;\n translatedText: string;\n pronunciationText?: string;\n langFrom: LanguageCode;\n langTo: LanguageCode;\n proxy?: string;\n};\n\nexport class TranslateError extends Error {}\n\nconst extractPronounceTextFromRaw = (raw: string) => {\n return raw?.[0]?.[1]?.[2];\n};\n\nexport async function simpleTranslate(text: string, options: LanguageCodeSet): Promise<SimpleTranslateResult> {\n try {\n if (!text) {\n return {\n originalText: text,\n translatedText: \"\",\n pronunciationText: \"\",\n langFrom: options.langFrom,\n langTo: options.langTo[0],\n };\n }\n\n const translated = await translate(text, {\n from: options.langFrom,\n to: options.langTo[0],\n raw: true,\n proxy: options.proxy,\n });\n\n return {\n originalText: text,\n translatedText: translated.text,\n pronunciationText: extractPronounceTextFromRaw(translated?.raw),\n langFrom: translated?.from?.language?.iso as LanguageCode,\n langTo: options.langTo[0],\n };\n } catch (err) {\n if (err instanceof Error) {\n if (err.name === \"TooManyRequestsError\") {\n const error = new TranslateError();\n error.name = \"Too many requests\";\n error.message = \"please try again later\";\n throw error;\n }\n\n const error = new TranslateError();\n error.name = err.name;\n error.message = err.message;\n throw error;\n }\n\n throw err;\n }\n}\n\nexport async function doubleWayTranslate(text: string, options: LanguageCodeSet) {\n if (!text) {\n return [];\n }\n\n if (options.langFrom === AUTO_DETECT) {\n const translated1 = await simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n proxy: options.proxy,\n });\n\n if (translated1?.langFrom) {\n const translated2 = await simpleTranslate(translated1.translatedText, {\n langFrom: options.langTo[0],\n langTo: [translated1.langFrom],\n proxy: options.proxy,\n });\n\n return [translated1, translated2];\n }\n\n return [];\n } else {\n return await Promise.all([\n simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n proxy: options.proxy,\n }),\n simpleTranslate(text, {\n langFrom: options.langTo[0],\n langTo: [options.langFrom],\n proxy: options.proxy,\n }),\n ]);\n }\n}\n\nexport async function playTTS(text: string, langTo: string, proxy?: string) {\n const audioUrl = googleTTS.getAudioUrl(text, {\n lang: langTo,\n slow: false,\n host: \"https://translate.google.com\",\n });\n\n let agent: HttpsProxyAgent<string> | undefined;\n\n if (proxy) {\n try {\n agent = new HttpsProxyAgent(proxy);\n } catch (e) {\n console.error(`Error creating proxy agent for ${proxy}:`, e);\n agent = undefined; // Fallback to no proxy if agent creation fails\n }\n }\n\n // The options object for https.get. If 'agent' is undefined, it won't be included,\n // and https.get will use the default agent.\n const requestOptions: https.RequestOptions = {\n agent: agent,\n };\n\n https.get(audioUrl, requestOptions, (response) => {\n const chunks: Uint8Array[] = [];\n\n response.on(\"data\", (chunk) => {\n chunks.push(chunk);\n });\n\n response\n .on(\"end\", () => {\n const audioData = Buffer.concat(chunks);\n\n const tempFilePath = path.join(os.tmpdir(), \"translation.mp3\");\n writeFileSync(tempFilePath, audioData);\n\n // Play the audio file using afplay\n const afplayProcess = child_process.spawn(\"afplay\", [tempFilePath]);\n\n afplayProcess.on(\"exit\", (code) => {\n if (code !== 0) {\n console.error(`Error playing audio: afplay exited with code ${code}`);\n }\n if (existsSync(tempFilePath)) {\n unlinkSync(tempFilePath);\n }\n });\n })\n .on(\"error\", (error) => {\n console.error(\"Error downloading audio:\", error);\n });\n });\n}\n", "import { languages as _languages } from \"../vendor/@iamtraction-translate/src/languages\";\n\nexport type LanguageCode = keyof typeof _languages;\nexport type LanguageName = (typeof _languages)[LanguageCode];\nexport type LanguagesItem = {\n code: LanguageCode;\n name: LanguageName;\n};\nexport const english: LanguagesItem = { code: \"en\", name: _languages.en };\nexport const autoDetect: LanguagesItem = { code: \"auto\", name: _languages.auto };\n\nexport const languages: LanguagesItem[] = (Object.keys(_languages) as (keyof typeof _languages)[]).map((code) => ({\n code,\n name: _languages[code],\n}));\n\nexport const supportedLanguagesByCode = languages.reduce(\n (acc, lang) => ({\n ...acc,\n [lang.code]: lang,\n }),\n {} as Record<LanguageCode, LanguagesItem>,\n);\nexport const supportedLanguagesByCountry = languages.reduce(\n (acc, lang) => ({\n ...acc,\n [lang.name]: lang,\n }),\n {} as Record<LanguageName, LanguagesItem>,\n);\n", "import React from \"react\";\nimport { Action, ActionPanel, Color, Icon, List, showToast, Toast, useNavigation } from \"@raycast/api\";\nimport { LanguageCodeSet } from \"../types\";\nimport { useAllLanguageSets, usePreferencesLanguageSet, useSelectedLanguagesSet } from \"../hooks\";\nimport { AddLanguageForm } from \"./AddLanguageForm\";\nimport { isSameLanguageSet, formatLanguageSet, getLanguageSetObjects } from \"../utils\";\n\nexport function LanguagesManagerItem({\n languageSet,\n onSelect,\n onDelete,\n selected,\n}: {\n languageSet: LanguageCodeSet;\n onSelect: () => void;\n onDelete?: () => void;\n selected?: boolean;\n}) {\n const { langFrom, langTo } = getLanguageSetObjects(languageSet);\n\n const langsTo = Array.isArray(langTo) ? langTo : [langTo];\n const langsToLabel = langsTo.map((l) => l.name).join(\", \");\n\n return (\n <List.Item\n title={`${langFrom.name} ->`}\n subtitle={` ${langsToLabel}`}\n keywords={[langFrom.name, langFrom.code, ...langsTo.flatMap((l) => [l.name, l.code])]}\n icon={selected ? { tintColor: Color.Green, source: Icon.Checkmark } : undefined}\n actions={\n <ActionPanel>\n <Action title=\"Select\" onAction={onSelect} icon={{ tintColor: Color.Green, source: Icon.Checkmark }} />\n {onDelete && <Action style={Action.Style.Destructive} title=\"Delete\" onAction={onDelete} icon={Icon.Trash} />}\n </ActionPanel>\n }\n />\n );\n}\n\nexport const SaveCurrentLanguageSet: React.FC<{ languageSet: LanguageCodeSet; onSelect: () => void }> = ({\n languageSet,\n onSelect,\n}) => {\n return (\n <List.Item\n icon={Icon.SaveDocument}\n title=\"Save current set\"\n subtitle={formatLanguageSet(languageSet)}\n actions={\n <ActionPanel>\n <Action title=\"Save current set\" onAction={onSelect} />\n </ActionPanel>\n }\n />\n );\n};\n\nexport const LanguagesManagerList: React.VFC = () => {\n const navigation = useNavigation();\n const preferencesLanguageSet = usePreferencesLanguageSet();\n const [selectedLanguageSet, setSelectedLanguageSet] = useSelectedLanguagesSet();\n const [languages, setLanguages] = useAllLanguageSets();\n\n return (\n <List\n actions={\n <ActionPanel>\n <Action title=\"Remove all\" onAction={() => setLanguages([])} />\n </ActionPanel>\n }\n >\n <List.Item\n icon={{ source: Icon.Plus }}\n title=\"Add new language set...\"\n actions={\n <ActionPanel>\n <Action.Push\n title=\"Add new language set...\"\n target={\n <AddLanguageForm\n onAddLanguage={(langSet) => {\n setLanguages([...languages, langSet]);\n navigation.pop();\n showToast(Toast.Style.Success, \"Language set was saved!\", formatLanguageSet(langSet));\n }}\n />\n }\n />\n </ActionPanel>\n }\n />\n {!languages.some((l) => isSameLanguageSet(l, selectedLanguageSet)) &&\n !isSameLanguageSet(preferencesLanguageSet, selectedLanguageSet) && (\n <SaveCurrentLanguageSet\n languageSet={selectedLanguageSet}\n onSelect={() => setLanguages([...languages, selectedLanguageSet])}\n />\n )}\n <LanguagesManagerItem\n languageSet={preferencesLanguageSet}\n onSelect={() => {\n setSelectedLanguageSet(preferencesLanguageSet);\n navigation.pop();\n }}\n selected={isSameLanguageSet(selectedLanguageSet, preferencesLanguageSet)}\n />\n {languages.map((langSet) => (\n <LanguagesManagerItem\n key={`${langSet.langFrom} ${langSet.langTo}`}\n selected={isSameLanguageSet(selectedLanguageSet, langSet)}\n languageSet={langSet}\n onSelect={() => {\n setSelectedLanguageSet(langSet);\n navigation.pop();\n }}\n onDelete={() => {\n setLanguages(languages.filter((l) => !isSameLanguageSet(l, langSet)));\n showToast(Toast.Style.Success, \"Language set was deleted!\", formatLanguageSet(langSet));\n }}\n />\n ))}\n </List>\n );\n};\n", "import React from \"react\";\nimport { Action, ActionPanel, Toast, Form, showToast } from \"@raycast/api\";\nimport { LanguageCode, languages } from \"../languages\";\nimport { AUTO_DETECT } from \"../simple-translate\";\nimport { LanguageCodeSet } from \"../types\";\n\nexport const AddLanguageForm: React.VFC<{\n onAddLanguage: (data: LanguageCodeSet) => void;\n}> = ({ onAddLanguage }) => {\n const [targetLanguages, setTargetLanguages] = React.useState<LanguageCode[]>([\"en\"]);\n\n return (\n <Form\n actions={\n <ActionPanel>\n <Action.SubmitForm\n title=\"Add language set\"\n onSubmit={(values: LanguageCodeSet) => {\n const filteredTargetLanguages = targetLanguages.filter((lang) => !!lang);\n if (!filteredTargetLanguages.length) {\n showToast({\n style: Toast.Style.Failure,\n title: \"No target languages\",\n message: \"Please select at least one target language\",\n });\n return;\n }\n onAddLanguage({\n langFrom: values.langFrom,\n langTo: filteredTargetLanguages,\n });\n }}\n />\n </ActionPanel>\n }\n >\n <Form.Dropdown id=\"langFrom\" title=\"Source Language\">\n {languages.map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} />\n ))}\n </Form.Dropdown>\n {targetLanguages.map((_, index) => {\n const value = targetLanguages[index];\n return (\n <Form.Dropdown\n id={`langTo.${index}`}\n title={`Target Language ${index + 1}`}\n key={index}\n value={value}\n onChange={(value) => {\n const newTargetLanguages = [...targetLanguages];\n newTargetLanguages[index] = value as LanguageCode;\n setTargetLanguages(newTargetLanguages);\n }}\n >\n {!value && <Form.Dropdown.Item value=\"\" title=\"\" />}\n {languages\n .filter((lang) => lang.code !== AUTO_DETECT)\n .map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} />\n ))}\n </Form.Dropdown>\n );\n })}\n {(!!targetLanguages[targetLanguages.length - 1] || targetLanguages.length === 0) && (\n <Form.Dropdown\n id={`langTo.${targetLanguages.length}`}\n title={`Target Language ${targetLanguages.length}`}\n key={targetLanguages.length}\n value={\"\"}\n onChange={(value) => {\n const newTargetLanguages = [...targetLanguages];\n newTargetLanguages.push(value as LanguageCode);\n setTargetLanguages(newTargetLanguages);\n }}\n >\n <Form.Dropdown.Item value=\"\" title=\"\" />\n {languages\n .filter((lang) => lang.code !== AUTO_DETECT)\n .map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} />\n ))}\n </Form.Dropdown>\n )}\n </Form>\n );\n};\n", "import { supportedLanguagesByCode } from \"./languages\";\nimport { LanguageCodeSet } from \"./types\";\n\nexport const isSameLanguageSet = (langSet1: LanguageCodeSet, langSet2: LanguageCodeSet) => {\n return langSet1.langFrom === langSet2.langFrom && langSet1.langTo.join() === langSet2.langTo.join();\n};\n\nexport const getLanguageSetObjects = (languageSet: LanguageCodeSet) => {\n return {\n langFrom: supportedLanguagesByCode[languageSet.langFrom],\n langTo: languageSet.langTo.map((l) => supportedLanguagesByCode[l]),\n };\n};\n\nexport const formatLanguageSet = (languageSet: LanguageCodeSet) => {\n const { langFrom, langTo } = getLanguageSetObjects(languageSet);\n const langToArr = Array.isArray(langTo) ? langTo : [langTo];\n const languageLabels = langToArr.map((l) => l.name);\n return `${langFrom.name} -> ${languageLabels.join(\", \")}`;\n};\n", "import React from \"react\";\nimport { Icon, List, useNavigation } from \"@raycast/api\";\nimport { LanguageCodeSet } from \"../types\";\nimport { useAllLanguageSets, usePreferencesLanguageSet, useSelectedLanguagesSet } from \"../hooks\";\nimport { LanguagesManagerList } from \"./LanguagesManagerList\";\nimport { formatLanguageSet } from \"../utils\";\n\nexport function LanguageManagerListDropdown() {\n const navigation = useNavigation();\n const preferencesLanguageSet = usePreferencesLanguageSet();\n const [selectedLanguageSet, setSelectedLanguageSet] = useSelectedLanguagesSet();\n const [languages] = useAllLanguageSets();\n\n return (\n <List.Dropdown\n value={JSON.stringify(selectedLanguageSet)}\n tooltip=\"Language Set\"\n onChange={(value) => {\n if (value === \"manage\") {\n navigation.push(<LanguagesManagerList />);\n } else {\n const langSet: LanguageCodeSet = JSON.parse(value);\n setSelectedLanguageSet(langSet);\n }\n }}\n >\n <List.Dropdown.Item icon={Icon.Pencil} title=\"Manage language sets...\" value=\"manage\" />\n <List.Dropdown.Item\n title={formatLanguageSet(preferencesLanguageSet)}\n value={JSON.stringify(preferencesLanguageSet)}\n />\n {languages.map((langSet) => (\n <List.Dropdown.Item\n key={`${langSet.langFrom} ${langSet.langTo.toString()}`}\n title={formatLanguageSet(langSet)}\n value={JSON.stringify(langSet)}\n />\n ))}\n </List.Dropdown>\n );\n}\n", "import React from \"react\";\nimport { Action, Icon, getPreferenceValues } from \"@raycast/api\";\nimport { SimpleTranslateResult } from \"./simple-translate\";\n\ninterface ActionsOpts {\n value: string;\n defaultActionsPrefix?: string;\n}\n\nexport const ConfigurableCopyPasteActions = ({ defaultActionsPrefix, value }: ActionsOpts) => {\n const defaultPreference = getPreferenceValues<ExtensionPreferences>().defaultAction;\n\n const pasteAction = (\n <Action.Paste title={defaultActionsPrefix ? `Paste ${defaultActionsPrefix}` : `Paste`} content={value} />\n );\n const copyAction = (\n <Action.CopyToClipboard title={defaultActionsPrefix ? `Copy ${defaultActionsPrefix}` : `Copy`} content={value} />\n );\n\n if (defaultPreference === \"paste\") {\n return (\n <>\n {pasteAction}\n {copyAction}\n </>\n );\n }\n\n return (\n <>\n {copyAction}\n {pasteAction}\n </>\n );\n};\n\nexport const ToggleFullTextAction: React.VFC<{\n onAction: () => void;\n}> = ({ onAction }) => {\n return (\n <Action title=\"Toggle Full Text\" icon={Icon.Text} onAction={onAction} shortcut={{ modifiers: [\"cmd\"], key: \"f\" }} />\n );\n};\n\nexport const OpenOnGoogleTranslateWebsiteAction: React.VFC<{\n translation: Pick<SimpleTranslateResult, \"langFrom\" | \"langTo\">;\n translationText: string;\n}> = ({ translationText, translation }) => {\n return (\n <Action.OpenInBrowser\n title=\"Open in Google Translate\"\n shortcut={{ modifiers: [\"opt\"], key: \"enter\" }}\n url={\n \"https://translate.google.com/?sl=\" +\n translation.langFrom +\n \"&tl=\" +\n translation.langTo +\n \"&text=\" +\n encodeURIComponent(translationText) +\n \"&op=translate\"\n }\n />\n );\n};\n"], - "mappings": "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AAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,uBAAuB,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAK,GAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,GAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,KAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAO,IAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI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AC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAO,KAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OA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,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMU,GAAS,CACb,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMM,GAAU,CACd,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEME,GAAiB,CACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,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,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMC,GAAc,CAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEA3B,GAAO,QAAUwC,KC5oBjB,IAAA6C,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,SAAAC,EAAS,EAAI,QAAQ,QAAQ,EAE/B,CAAE,WAAAC,EAAW,EAAI,KAEjBC,GAAN,cAAyBF,EAAS,CAChC,YAAYG,EAAK,CACf,IAAMC,EAAa,CACjB,YAAa,GACb,UAAW,GACX,cAAgB,OAAOD,EAAI,eAAkB,SAC3BA,EAAI,cACJ,MACpB,EACA,MAAMC,CAAU,EAEhB,IAAIC,EAAWF,EAAI,YAAc,OAC7BA,EAAI,QAAQ,QAAU,OAAOA,EAAI,QAAQ,OAAO,SAAY,WAC9DE,EAAUF,EAAI,QAAQ,OAAO,SAE/B,KAAK,QAAUE,EAEf,IAAMC,EAASH,EAAI,OACnB,KAAK,eAAkBG,GAAU,OAAOA,EAAO,WAAc,SACpCA,EAAO,UACP,EAAI,KAAO,KACpC,KAAK,YAAeA,GAAU,OAAOA,EAAO,QAAW,SACjCA,EAAO,OACP,IACtB,KAAK,mBACHA,GAAU,OAAOA,EAAO,eAAkB,SACxCA,EAAO,cACP,IAGJ,KAAK,OAAS,GACd,KAAK,UAAY,GACjB,KAAK,UAAY,GACjB,KAAK,UAAY,EACjB,KAAK,UAAY,EACjB,KAAK,QAAU,EACf,KAAK,KAAO,GACZ,KAAK,KAAO,GACZ,KAAK,MAAQ,GACb,KAAK,SAAW,EAChB,KAAK,QAAU,EACf,KAAK,SAAWL,GAAWI,CAAO,CACpC,CAEA,OAAO,OAAOE,EAAS,CACrB,OAAQA,EAAQ,OAAS,eACdA,EAAQ,UAAY,uBACjC,CAEA,OAAOC,EAAOC,EAAKC,EAAI,CACrB,GAAI,KAAK,SAAW,KAAK,YACvB,OAAOA,EAAG,EAEZ,IAAIC,EAAI,EACFC,EAAMJ,EAAM,OAIlB,GAHA,KAAK,SAAW,EAGZ,KAAK,QAAU,GAAI,CAErB,GADAG,EAAIE,GAAW,KAAML,EAAOG,EAAGC,CAAG,EAC9BD,IAAM,GACR,OAAOD,EAAG,IAAI,MAAM,2BAA2B,CAAC,EAClD,GAAIC,GAAKC,EACP,OAAOF,EAAG,EACR,KAAK,OACP,EAAE,KAAK,UAEP,EAAE,KAAK,SACX,CAEJI,EACI,KAAOH,EAAIC,GACT,GAAI,KAAK,OAAQ,CAKf,IAFAD,EAAII,GAAa,KAAMP,EAAOG,EAAGC,CAAG,EAE7BD,EAAIC,GAAK,CACd,OAAQJ,EAAMG,CAAC,EAAG,CAChB,IAAK,IACC,KAAK,SAAWA,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,GACjD,KAAK,SAAW,EAAEA,EAClB,KAAK,KAAO,KAAK,SAAS,KAAK,KAAM,KAAK,OAAO,EACjD,KAAK,QAAU,EACf,KAAK,OAAS,GACd,SAASG,EACX,IAAK,IAuBH,GAtBI,KAAK,SAAWH,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,GACjD,KAAK,SAAW,EAAEA,EAClB,KAAK,KAAO,KAAK,SAAS,KAAK,KAAM,KAAK,OAAO,EACjD,KAAK,QAAU,EACX,KAAK,UAAY,GACnB,KAAK,KACH,QACA,KAAK,KACL,GACA,CAAE,cAAe,KAAK,UACpB,eAAgB,GAChB,SAAU,KAAK,QACf,SAAU,YAAa,CAC3B,EAEF,KAAK,KAAO,GACZ,KAAK,KAAO,GACZ,KAAK,UAAY,GACjB,KAAK,UAAY,GACjB,KAAK,UAAY,EACjB,KAAK,UAAY,EACb,EAAE,KAAK,SAAW,KAAK,YACzB,YAAK,KAAK,aAAa,EAChBD,EAAG,EAEZ,SACF,IAAK,IACC,KAAK,SAAWC,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,GACjD,KAAK,MAAQ,IACb,KAAK,SAAWA,EAAI,EACpB,MACF,IAAK,IAQH,GAPI,KAAK,UAAY,IACnB,KAAK,QAAU,GACb,KAAK,SAAWA,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,GACjD,KAAK,SAAWA,EAAI,EACpB,KAAK,MAAQ,GACbA,EAAIE,GAAW,KAAML,EAAOG,EAAI,EAAGC,CAAG,EAClCD,IAAM,GACR,OAAOD,EAAG,IAAI,MAAM,2BAA2B,CAAC,EAClD,GAAIC,GAAKC,EACP,OAAOF,EAAG,EACZ,EAAE,KAAK,UACPC,EAAII,GAAa,KAAMP,EAAOG,EAAGC,CAAG,EACpC,QACJ,CACA,EAAED,EACF,EAAE,KAAK,UACPA,EAAII,GAAa,KAAMP,EAAOG,EAAGC,CAAG,CACtC,CACI,KAAK,SAAWD,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,EACnD,KAAO,CAKL,IAFAA,EAAIK,GAAa,KAAMR,EAAOG,EAAGC,CAAG,EAE7BD,EAAIC,GAAK,CACd,OAAQJ,EAAMG,CAAC,EAAG,CAChB,IAAK,IAwBH,GAvBI,KAAK,SAAWA,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,GACjD,KAAK,SAAW,EAAEA,EAClB,KAAK,OAAS,GACd,KAAK,KAAO,KAAK,SAAS,KAAK,KAAM,KAAK,OAAO,EACjD,KAAK,QAAU,GACX,KAAK,UAAY,GAAK,KAAK,UAAY,IACzC,KAAK,KACH,QACA,KAAK,KACL,KAAK,KACL,CAAE,cAAe,KAAK,UACpB,eAAgB,KAAK,UACrB,SAAU,KAAK,QACf,SAAU,YAAa,CAC3B,EAEF,KAAK,KAAO,GACZ,KAAK,KAAO,GACZ,KAAK,UAAY,GACjB,KAAK,UAAY,GACjB,KAAK,UAAY,EACjB,KAAK,UAAY,EACb,EAAE,KAAK,SAAW,KAAK,YACzB,YAAK,KAAK,aAAa,EAChBD,EAAG,EAEZ,SAASI,EACX,IAAK,IACC,KAAK,SAAWH,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,GACjD,KAAK,MAAQ,IACb,KAAK,SAAWA,EAAI,EACpB,MACF,IAAK,IAQH,GAPI,KAAK,UAAY,IACnB,KAAK,QAAU,GACb,KAAK,SAAWA,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,GACjD,KAAK,SAAWA,EAAI,EACpB,KAAK,MAAQ,GACbA,EAAIE,GAAW,KAAML,EAAOG,EAAI,EAAGC,CAAG,EAClCD,IAAM,GACR,OAAOD,EAAG,IAAI,MAAM,2BAA2B,CAAC,EAClD,GAAIC,GAAKC,EACP,OAAOF,EAAG,EACZ,EAAE,KAAK,UACPC,EAAIK,GAAa,KAAMR,EAAOG,EAAGC,CAAG,EACpC,QACJ,CACA,EAAED,EACF,EAAE,KAAK,UACPA,EAAIK,GAAa,KAAMR,EAAOG,EAAGC,CAAG,CACtC,CACI,KAAK,SAAWD,IAClB,KAAK,MAAQH,EAAM,YAAY,KAAK,SAAUG,CAAC,EACnD,CAGFD,EAAG,CACL,CAEA,OAAOA,EAAI,CACT,GAAI,KAAK,QAAU,GACjB,OAAOA,EAAG,IAAI,MAAM,2BAA2B,CAAC,GAC9C,CAAC,KAAK,QAAU,KAAK,UAAY,GAAK,KAAK,UAAY,KACrD,KAAK,OACP,KAAK,KAAO,KAAK,SAAS,KAAK,KAAM,KAAK,OAAO,EAEjD,KAAK,KAAO,KAAK,SAAS,KAAK,KAAM,KAAK,OAAO,EACnD,KAAK,KACH,QACA,KAAK,KACL,KAAK,KACL,CAAE,cAAe,KAAK,UACpB,eAAgB,KAAK,UACrB,SAAU,KAAK,QACf,SAAU,YAAa,CAC3B,GAEFA,EAAG,CACL,CACF,EAEA,SAASG,GAAWI,EAAMT,EAAOU,EAAKN,EAAK,CACzC,GAAIM,GAAON,EACT,OAAOA,EAET,GAAIK,EAAK,QAAU,GAAI,CAErB,IAAME,EAAWC,GAAWZ,EAAMU,GAAK,CAAC,EACxC,GAAIC,IAAa,GACf,MAAO,GAKT,GAHIA,GAAY,IACdF,EAAK,QAAU,GAEbC,EAAMN,EAAK,CAEb,IAAMS,EAAWD,GAAWZ,EAAMU,GAAK,CAAC,EACxC,GAAIG,IAAa,GACf,MAAO,GAELJ,EAAK,OACPA,EAAK,MAAQ,OAAO,cAAcE,GAAY,GAAKE,CAAQ,EAE3DJ,EAAK,MAAQ,OAAO,cAAcE,GAAY,GAAKE,CAAQ,EAE7DJ,EAAK,MAAQ,GACbA,EAAK,SAAWC,CAClB,MAEED,EAAK,MAAQE,CAEjB,KAAO,CAEL,IAAME,EAAWD,GAAWZ,EAAMU,GAAK,CAAC,EACxC,GAAIG,IAAa,GACf,MAAO,GAELJ,EAAK,OACPA,EAAK,MAAQ,OAAO,cAAcA,EAAK,OAAS,GAAKI,CAAQ,EAE7DJ,EAAK,MAAQ,OAAO,cAAcA,EAAK,OAAS,GAAKI,CAAQ,EAE/DJ,EAAK,MAAQ,GACbA,EAAK,SAAWC,CAClB,CAEA,OAAOA,CACT,CAEA,SAASH,GAAaE,EAAMT,EAAOU,EAAKN,EAAK,CAE3C,GAAIK,EAAK,UAAYA,EAAK,mBAAoB,CAM5C,IALKA,EAAK,WACJA,EAAK,SAAWC,IAClBD,EAAK,MAAQT,EAAM,YAAYS,EAAK,SAAUC,EAAM,CAAC,GAEzDD,EAAK,UAAY,GACVC,EAAMN,EAAK,EAAEM,EAAK,CACvB,IAAMI,EAAOd,EAAMU,CAAG,EACtB,GAAII,IAAS,IAAeA,IAAS,GACnC,MACF,EAAEL,EAAK,SACT,CACAA,EAAK,SAAWC,CAClB,CAEA,OAAOA,CACT,CAEA,SAASF,GAAaC,EAAMT,EAAOU,EAAKN,EAAK,CAE3C,GAAIK,EAAK,UAAYA,EAAK,eAAgB,CAMxC,IALKA,EAAK,WACJA,EAAK,SAAWC,IAClBD,EAAK,MAAQT,EAAM,YAAYS,EAAK,SAAUC,EAAM,CAAC,GAEzDD,EAAK,UAAY,GACVC,EAAMN,GACPJ,EAAMU,CAAG,IAAM,GADH,EAAEA,EAGlB,EAAED,EAAK,UAETA,EAAK,SAAWC,CAClB,CAEA,OAAOA,CACT,CAGA,IAAME,GAAa,CACjB,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC9D,EAGArB,GAAO,QAAUG,KC7VjB,IAAAqB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,iBAAAC,EAAiB,EAAI,KAE7B,SAASC,GAAYC,EAAK,CACxB,IAAMC,EAAUD,EAAI,QACdE,EAAUJ,GAAiBG,EAAQ,cAAc,CAAC,EACxD,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,wBAAwB,EAE1C,QAAWC,KAAQC,GAAO,CAExB,GAAI,CADYD,EAAK,OAAOD,CAAO,EAEjC,SAEF,IAAMG,EAAc,CAClB,OAAQL,EAAI,OACZ,QAAAC,EACA,QAAAC,EACA,cAAe,OACf,QAAS,OACT,WAAY,OACZ,gBAAiB,OACjB,aAAc,EAChB,EACA,OAAIF,EAAI,gBACNK,EAAY,cAAgBL,EAAI,eAC9BA,EAAI,UACNK,EAAY,QAAUL,EAAI,SAC5BK,EAAY,WAAaL,EAAI,WAC7BK,EAAY,gBAAkBL,EAAI,gBAClCK,EAAY,aAAeL,EAAI,aACxB,IAAIG,EAAKE,CAAW,CAC7B,CAEA,MAAM,IAAI,MAAM,6BAA6BJ,EAAQ,cAAc,CAAC,EAAE,CACxE,CAIA,IAAMG,GAAQ,CACZ,KACA,IACF,EAAE,OAAO,SAASE,EAAS,CAAE,OAAO,OAAOA,EAAQ,QAAW,UAAY,CAAC,EAE3ET,GAAO,QAAWG,GAAQ,CAIxB,IAHI,OAAOA,GAAQ,UAAYA,IAAQ,QACrCA,EAAM,CAAC,GAEL,OAAOA,EAAI,SAAY,UACpBA,EAAI,UAAY,MAChB,OAAOA,EAAI,QAAQ,cAAc,GAAM,SAC5C,MAAM,IAAI,MAAM,sBAAsB,EAGxC,OAAOD,GAAYC,CAAG,CACxB,ICxDA,IAAAO,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,eAAAC,GAAgB,qBAAAC,EAAqB,EAAI,QAAQ,gBAAgB,EAEnEC,GAAwB,CAAC,MAAO,OAAQ,MAAM,EAE9CC,GAAiB,CAAC,IAAK,IAAK,IAAK,GAAG,EAEpCC,GAAiB,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,EAGzCC,GAAW,CACf,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC/G,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAClG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OACpG,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAChG,OACF,EAGMC,GAAiB,CACrB,GACA,cACA,6BACA,cACA,SACA,gBACA,2BACA,kCACA,YACF,EAEMC,GAAkB,CAAC,SAAU,SAAU,OAAO,EAE9CC,GAAc,CAAC,MAAO,OAAQ,UAAW,OAAO,EAEhDC,GAAc,CAAC,WAAY,cAAe,UAAW,MAAM,EAE3DC,GAAqB,CAAC,OAAQ,cAAe,SAAS,EAEtDC,GAAe,CACnB,UACA,WACA,SACA,WACA,cACA,gBACF,EAGMC,GAAoB,CACxB,mBACA,mBACA,mBACA,eAKA,gBACF,EAGMC,GAAgB,CACpB,MACF,EAGMC,GAAmB,CAAC,UAAW,QAAS,OAAO,EAE/CC,GAAc,CAClB,QACA,eACA,OACA,QACA,WACA,eACA,SACA,QACA,QACA,QACA,OACA,EACF,EAGMC,GAAe,WAAW,eAAiB,IAAM,CAGrD,GAAI,CACF,KAAK,GAAG,CACV,OAASC,EAAK,CACZ,OAAO,OAAO,eAAeA,CAAG,EAAE,WACpC,CACF,GAAG,EAECC,GAGEC,GACJ,WAAW,iBAGX,SAA0BC,EAAOC,EAAU,OAAW,CACpD,GAAI,UAAU,SAAW,EACvB,MAAM,IAAI,UAAU,kBAAkB,EAGxC,OAAKH,KACHA,GAAU,IAAIlB,IAEhBkB,GAAQ,MAAM,MAAM,EACpBA,GAAQ,MAAM,MAAM,EACpBA,GAAQ,MAAM,YAAYE,EAAOC,GAAS,QAAQ,EAC3CpB,GAAqBiB,GAAQ,KAAK,EAAE,OAC7C,EAEFnB,GAAO,QAAU,CACf,aAAAiB,GACA,gBAAAG,GACA,YAAAJ,GACA,iBAAAD,GACA,kBAAAF,GACA,eAAAN,GACA,gBAAAC,GACA,YAAAE,GACA,mBAAAC,GACA,aAAAC,GACA,eAAAP,GACA,sBAAAF,GACA,eAAAC,GACA,YAAAK,GACA,SAAAH,GACA,cAAAQ,EACF,ICvIA,IAAAS,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,IAAMC,GAAe,OAAO,IAAI,uBAAuB,EAEvD,SAASC,IAAmB,CAC1B,OAAO,WAAWD,EAAY,CAChC,CAEA,SAASE,GAAiBC,EAAW,CACnC,GACEA,IAAc,QACd,OAAOA,GAAc,UACrB,EAAEA,aAAqB,KAEvB,MAAM,IAAI,MAAM,kBAAkB,EAGpC,GAAIA,IAAc,OAAW,CAC3B,OAAO,eAAe,WAAYH,GAAc,CAC9C,MAAO,OACP,SAAU,GACV,WAAY,GACZ,aAAc,EAChB,CAAC,EAED,MACF,CAEA,IAAMI,EAAY,IAAI,IAAID,CAAS,EAEnC,GAAIC,EAAU,WAAa,SAAWA,EAAU,WAAa,SAC3D,MAAM,IAAI,UAAU,gDAAgDA,EAAU,QAAQ,EAAE,EAG1F,OAAO,eAAe,WAAYJ,GAAc,CAC9C,MAAOI,EACP,SAAU,GACV,WAAY,GACZ,aAAc,EAChB,CAAC,CACH,CAEAL,GAAO,QAAU,CACf,gBAAAE,GACA,gBAAAC,EACF,IC/CA,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,eAAAC,GAAgB,SAAAC,GAAU,eAAgBC,EAAqB,EAAI,KACrE,CAAE,gBAAAC,EAAgB,EAAI,KACtB,CAAE,YAAAC,EAAY,EAAI,QAAQ,YAAY,EACtC,CAAE,WAAAC,GAAY,YAAAC,GAAa,mBAAAC,EAAmB,EAAI,IAClDC,GAAS,QAAQ,QAAQ,EACzB,CAAE,aAAAC,EAAa,EAAI,QAAQ,YAAY,EAIzCC,GAEJ,GAAI,CACFA,GAAS,QAAQ,QAAQ,CAC3B,MAAQ,CAER,CAEA,SAASC,GAAaC,EAAU,CAI9B,IAAMC,EAAUD,EAAS,QACnBE,EAASD,EAAQ,OACvB,OAAOC,IAAW,EAAI,KAAOD,EAAQC,EAAS,CAAC,EAAE,SAAS,CAC5D,CAGA,SAASC,GAAqBH,EAAUI,EAAiB,CAEvD,GAAI,CAAChB,GAAe,SAASY,EAAS,MAAM,EAC1C,OAAO,KAKT,IAAIK,EAAWL,EAAS,YAAY,IAAI,UAAU,EAIlD,OAAIK,IAAa,MAAQC,GAAmBD,CAAQ,IAClDA,EAAW,IAAI,IAAIA,EAAUN,GAAYC,CAAQ,CAAC,GAKhDK,GAAY,CAACA,EAAS,OACxBA,EAAS,KAAOD,GAIXC,CACT,CAGA,SAASE,GAAmBC,EAAS,CACnC,OAAOA,EAAQ,QAAQA,EAAQ,QAAQ,OAAS,CAAC,CACnD,CAEA,SAASC,GAAgBD,EAAS,CAEhC,IAAME,EAAMH,GAAkBC,CAAO,EAIrC,OAAIG,GAAqBD,CAAG,GAAKrB,GAAS,SAASqB,EAAI,IAAI,EAClD,UAIF,SACT,CAEA,SAASE,GAAaC,EAAQ,CAC5B,OAAOA,aAAkB,OACvBA,GAAQ,aAAa,OAAS,SAC9BA,GAAQ,aAAa,OAAS,cAElC,CAQA,SAASC,GAAqBC,EAAY,CACxC,QAASC,EAAI,EAAGA,EAAID,EAAW,OAAQ,EAAEC,EAAG,CAC1C,IAAMC,EAAIF,EAAW,WAAWC,CAAC,EACjC,GACE,EAEIC,IAAM,GACLA,GAAK,IAAQA,GAAK,KAClBA,GAAK,KAAQA,GAAK,KAIvB,MAAO,EAEX,CACA,MAAO,EACT,CAEA,SAASC,GAAaD,EAAG,CACvB,MAAO,EACLA,GAAK,KACLA,GAAK,IACLA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,MACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,KACNA,IAAM,IAEV,CAIA,SAASE,GAAkBC,EAAY,CACrC,GAAI,CAACA,GAAc,OAAOA,GAAe,SACvC,MAAO,GAET,QAASJ,EAAI,EAAGA,EAAII,EAAW,OAAQ,EAAEJ,EAAG,CAC1C,IAAMC,EAAIG,EAAW,WAAWJ,CAAC,EACjC,GAAIC,EAAI,KAAQ,CAACC,GAAYD,CAAC,EAC5B,MAAO,EAEX,CACA,MAAO,EACT,CAIA,SAASI,GAAmBC,EAAgB,CAC1C,OAAIA,EAAe,SAAW,EACrB,GAGFH,GAAiBG,CAAc,CACxC,CAMA,SAAShB,GAAoBgB,EAAgB,CAY3C,MARE,EAAAA,EAAe,WAAW,GAAI,GAC9BA,EAAe,WAAW,GAAG,GAC7BA,EAAe,SAAS,GAAI,GAC5BA,EAAe,SAAS,GAAG,GAM3BA,EAAe,SAAS,IAAI,GAC5BA,EAAe,SAAS,IAAI,GAC5BA,EAAe,SAAS;AAAA,CAAI,EAMhC,CAGA,SAASC,GAAoCf,EAASgB,EAAgB,CAUpE,GAAM,CAAE,YAAAC,CAAY,EAAID,EAIlBE,GAAgBD,EAAY,IAAI,iBAAiB,GAAK,IAAI,MAAM,GAAG,EAMrEE,EAAS,GACb,GAAID,EAAa,OAAS,EAGxB,QAAS,EAAIA,EAAa,OAAQ,IAAM,EAAG,IAAK,CAC9C,IAAME,EAAQF,EAAa,EAAI,CAAC,EAAE,KAAK,EACvC,GAAIpC,GAAqB,SAASsC,CAAK,EAAG,CACxCD,EAASC,EACT,KACF,CACF,CAIED,IAAW,KACbnB,EAAQ,eAAiBmB,EAE7B,CAGA,SAASE,IAAkC,CAEzC,MAAO,SACT,CAGA,SAASC,IAAa,CAEpB,MAAO,SACT,CAGA,SAASC,IAAY,CAEnB,MAAO,SACT,CAEA,SAASC,GAAqBC,EAAa,CAUzC,IAAIC,EAAS,KAGbA,EAASD,EAAY,KAGrBA,EAAY,YAAY,IAAI,iBAAkBC,CAAM,CAOtD,CAGA,SAASC,GAA2B3B,EAAS,CAE3C,IAAI4B,EAAmB5B,EAAQ,OAG/B,GAAIA,EAAQ,mBAAqB,QAAUA,EAAQ,OAAS,YACtD4B,GACF5B,EAAQ,YAAY,OAAO,SAAU4B,CAAgB,UAI9C5B,EAAQ,SAAW,OAASA,EAAQ,SAAW,OAAQ,CAEhE,OAAQA,EAAQ,eAAgB,CAC9B,IAAK,cAEH4B,EAAmB,KACnB,MACF,IAAK,6BACL,IAAK,gBACL,IAAK,kCAEC5B,EAAQ,QAAU6B,GAAkB7B,EAAQ,MAAM,GAAK,CAAC6B,GAAkB9B,GAAkBC,CAAO,CAAC,IACtG4B,EAAmB,MAErB,MACF,IAAK,cAEEE,GAAW9B,EAASD,GAAkBC,CAAO,CAAC,IACjD4B,EAAmB,MAErB,MACF,QAEF,CAEIA,GAEF5B,EAAQ,YAAY,OAAO,SAAU4B,CAAgB,CAEzD,CACF,CAEA,SAASG,GAA4BC,EAA+B,CAElE,OAAOhD,GAAY,IAAI,CACzB,CAGA,SAASiD,GAAwBC,EAAY,CAC3C,MAAO,CACL,UAAWA,EAAW,WAAa,EACnC,kBAAmB,EACnB,gBAAiB,EACjB,sBAAuBA,EAAW,WAAa,EAC/C,4BAA6B,EAC7B,8BAA+B,EAC/B,6BAA8B,EAC9B,QAAS,EACT,gBAAiB,EACjB,gBAAiB,EACjB,0BAA2B,IAC7B,CACF,CAGA,SAASC,IAAuB,CAE9B,MAAO,CACL,eAAgB,iCAClB,CACF,CAGA,SAASC,GAAsBC,EAAiB,CAC9C,MAAO,CACL,eAAgBA,EAAgB,cAClC,CACF,CAGA,SAASC,GAA2BtC,EAAS,CAE3C,IAAMmB,EAASnB,EAAQ,eAGvBZ,GAAO+B,CAAM,EAIb,IAAIoB,EAAiB,KAGrB,GAAIvC,EAAQ,WAAa,SAAU,CAIjC,IAAMwC,EAAezD,GAAgB,EAErC,GAAI,CAACyD,GAAgBA,EAAa,SAAW,OAC3C,MAAO,cAITD,EAAiB,IAAI,IAAIC,CAAY,CACvC,MAAWxC,EAAQ,oBAAoB,MAErCuC,EAAiBvC,EAAQ,UAK3B,IAAIyC,EAAcC,GAAoBH,CAAc,EAI9CI,EAAiBD,GAAoBH,EAAgB,EAAI,EAI3DE,EAAY,SAAS,EAAE,OAAS,OAClCA,EAAcE,GAGhB,IAAMC,EAAgBd,GAAW9B,EAASyC,CAAW,EAC/CI,EAA8BC,GAA4BL,CAAW,GACzE,CAACK,GAA4B9C,EAAQ,GAAG,EAG1C,OAAQmB,EAAQ,CACd,IAAK,SAAU,OAAOwB,GAA0CD,GAAoBH,EAAgB,EAAI,EACxG,IAAK,aAAc,OAAOE,EAC1B,IAAK,cACH,OAAOG,EAAgBD,EAAiB,cAC1C,IAAK,2BACH,OAAOC,EAAgBH,EAAcE,EACvC,IAAK,kCAAmC,CACtC,IAAMI,EAAahD,GAAkBC,CAAO,EAI5C,OAAI8B,GAAWW,EAAaM,CAAU,EAC7BN,EAMLK,GAA4BL,CAAW,GAAK,CAACK,GAA4BC,CAAU,EAC9E,cAIFJ,CACT,CACA,IAAK,gBAOL,IAAK,6BAQL,QACE,OAAOE,EAA8B,cAAgBF,CACzD,CACF,CAOA,SAASD,GAAqBxC,EAAK8C,EAAY,CAK7C,OAHA5D,GAAOc,aAAe,GAAG,EAGrBA,EAAI,WAAa,SAAWA,EAAI,WAAa,UAAYA,EAAI,WAAa,SACrE,eAITA,EAAI,SAAW,GAGfA,EAAI,SAAW,GAGfA,EAAI,KAAO,GAGP8C,IAEF9C,EAAI,SAAW,GAGfA,EAAI,OAAS,IAIRA,EACT,CAEA,SAAS4C,GAA6B5C,EAAK,CACzC,GAAI,EAAEA,aAAe,KACnB,MAAO,GAYT,GARIA,EAAI,OAAS,eAAiBA,EAAI,OAAS,gBAK3CA,EAAI,WAAa,SAGjBA,EAAI,WAAa,QAAS,MAAO,GAErC,OAAO+C,EAA+B/C,EAAI,MAAM,EAEhD,SAAS+C,EAAgCC,EAAQ,CAE/C,GAAIA,GAAU,MAAQA,IAAW,OAAQ,MAAO,GAEhD,IAAMC,EAAc,IAAI,IAAID,CAAM,EAQlC,MALI,GAAAC,EAAY,WAAa,UAAYA,EAAY,WAAa,QAK9D,sDAAsD,KAAKA,EAAY,QAAQ,GACjFA,EAAY,WAAa,aAAeA,EAAY,SAAS,SAAS,YAAY,GAClFA,EAAY,SAAS,SAAS,YAAY,EAM9C,CACF,CAOA,SAASC,GAAYC,EAAOC,EAAc,CAKxC,GAAIhE,KAAW,OACb,MAAO,GAIT,IAAMiE,EAAiBC,GAAcF,CAAY,EAQjD,GALIC,IAAmB,eAKnBA,EAAe,SAAW,EAC5B,MAAO,GAKT,IAAME,EAAOF,EAAe,KAAK,CAAC9C,EAAGiD,IAAMA,EAAE,KAAK,cAAcjD,EAAE,IAAI,CAAC,EAEjEkD,EAAYF,EAAK,CAAC,EAAE,KAEpBG,EAAWH,EAAK,OAAQI,GAASA,EAAK,OAASF,CAAS,EAG9D,QAAWE,KAAQD,EAAU,CAE3B,IAAME,EAAYD,EAAK,KAGjBE,EAAgBF,EAAK,KAO3B,GAJoBvE,GAAO,WAAWwE,CAAS,EAAE,OAAOT,CAAK,EAAE,OAAO,QAAQ,IAI1DU,EAClB,MAAO,EAEX,CAGA,MAAO,EACT,CAKA,IAAMC,GAAuB,mFAM7B,SAASR,GAAeI,EAAU,CAGhC,IAAMK,EAAS,CAAC,EAGZC,EAAQ,GAENC,EAAkB7E,GAAO,UAAU,EAGzC,QAAW8B,KAASwC,EAAS,MAAM,GAAG,EAAG,CAEvCM,EAAQ,GAGR,IAAME,EAAcJ,GAAqB,KAAK5C,CAAK,EAGnD,GAAIgD,IAAgB,MAAQA,EAAY,SAAW,OAKjD,SAIF,IAAMN,EAAYM,EAAY,OAAO,KAIjCD,EAAgB,SAASL,EAAU,YAAY,CAAC,GAClDG,EAAO,KAAKG,EAAY,MAAM,CAElC,CAGA,OAAIF,IAAU,GACL,cAGFD,CACT,CAGA,SAASI,GAA+CrE,EAAS,CAEjE,CAOA,SAAS8B,GAAYwC,EAAGC,EAAG,CAQzB,OANID,EAAE,SAAWC,EAAE,QAAUD,EAAE,SAAW,QAMtCA,EAAE,WAAaC,EAAE,UAAYD,EAAE,WAAaC,EAAE,UAAYD,EAAE,OAASC,EAAE,IAM7E,CAEA,SAASC,IAAyB,CAChC,IAAIC,EACAC,EAMJ,MAAO,CAAE,QALO,IAAI,QAAQ,CAACC,EAASC,IAAW,CAC/CH,EAAME,EACND,EAAME,CACR,CAAC,EAEiB,QAASH,EAAK,OAAQC,CAAI,CAC9C,CAEA,SAASG,GAAWC,EAAa,CAC/B,OAAOA,EAAY,WAAW,QAAU,SAC1C,CAEA,SAASC,GAAaD,EAAa,CACjC,OAAOA,EAAY,WAAW,QAAU,WACtCA,EAAY,WAAW,QAAU,YACrC,CAGA,SAASE,GAAiBC,EAAQ,CAChC,MAAO,wCAAwC,KAAKA,CAAM,EACtDA,EAAO,YAAY,EACnBA,CACN,CAGA,SAASC,GAAsCC,EAAO,CAEpD,IAAMlB,EAAS,KAAK,UAAUkB,CAAK,EAGnC,GAAIlB,IAAW,OACb,MAAM,IAAI,UAAU,gCAAgC,EAItD,OAAA7E,GAAO,OAAO6E,GAAW,QAAQ,EAG1BA,CACT,CAGA,IAAMmB,GAAsB,OAAO,eAAe,OAAO,eAAe,CAAC,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC,EAQ9F,SAASC,GAAcC,EAAUC,EAAMC,EAAM,CAC3C,IAAMnF,EAAS,CACb,MAAO,EACP,KAAAmF,EACA,OAAQF,CACV,EAEM9E,EAAI,CACR,MAAQ,CAYN,GAAI,OAAO,eAAe,IAAI,IAAMA,EAClC,MAAM,IAAI,UACR,gEAAgE+E,CAAI,YACtE,EAMF,GAAM,CAAE,MAAAE,EAAO,KAAAD,EAAM,OAAAE,CAAO,EAAIrF,EAC1BsF,EAASD,EAAO,EAGhBE,EAAMD,EAAO,OAInB,GAAIF,GAASG,EACX,MAAO,CAAE,MAAO,OAAW,KAAM,EAAK,EAIxC,IAAMC,EAAOF,EAAOF,CAAK,EAGzB,OAAApF,EAAO,MAAQoF,EAAQ,EAGhBK,GAAeD,EAAML,CAAI,CAClC,EAGA,CAAC,OAAO,WAAW,EAAG,GAAGD,CAAI,WAC/B,EAGA,cAAO,eAAe/E,EAAG4E,EAAmB,EAGrC,OAAO,eAAe,CAAC,EAAG5E,CAAC,CACpC,CAGA,SAASsF,GAAgBD,EAAML,EAAM,CACnC,IAAIvB,EAGJ,OAAQuB,EAAM,CACZ,IAAK,MAAO,CAKVvB,EAAS4B,EAAK,CAAC,EACf,KACF,CACA,IAAK,QAAS,CAKZ5B,EAAS4B,EAAK,CAAC,EACf,KACF,CACA,IAAK,YAAa,CAWhB5B,EAAS4B,EACT,KACF,CACF,CAGA,MAAO,CAAE,MAAO5B,EAAQ,KAAM,EAAM,CACtC,CAKA,SAAS8B,GAAeC,EAAMC,EAAaC,EAAkB,CAM3D,IAAMC,EAAgB9C,GAAU,eAAe,IAAM4C,EAAY5C,CAAK,CAAC,EAIjE+C,EAAcC,GAAU,eAAe,IAAMH,EAAiBG,CAAK,CAAC,EAKtEC,EAEJ,GAAI,CACFA,EAASN,EAAK,OAAO,UAAU,CACjC,OAASO,EAAG,CACVH,EAAWG,CAAC,EACZ,MACF,CAGAC,GAAaF,EAAQH,EAAcC,CAAU,CAC/C,CAGA,IAAIK,GAAiB,WAAW,eAEhC,SAASC,GAAsBC,EAAQ,CACrC,OAAKF,KACHA,GAAiB,QAAQ,YAAY,EAAE,gBAGlCE,aAAkBF,IACvBE,EAAO,OAAO,WAAW,IAAM,kBAC/B,OAAOA,EAAO,KAAQ,UAE1B,CAEA,IAAMC,GAA0B,MAMhC,SAASC,GAAkBC,EAAO,CAKhC,OAAIA,EAAM,OAASF,GACV,OAAO,aAAa,GAAGE,CAAK,EAG9BA,EAAM,OAAO,CAACC,EAAUC,IAAYD,EAAW,OAAO,aAAaC,CAAO,EAAG,EAAE,CACxF,CAKA,SAASC,GAAqBC,EAAY,CACxC,GAAI,CACFA,EAAW,MAAM,CACnB,OAASC,EAAK,CAEZ,GAAI,CAACA,EAAI,QAAQ,SAAS,8BAA8B,EACtD,MAAMA,CAEV,CACF,CAMA,SAASC,GAAkBN,EAAO,CAEhC,QAAStG,EAAI,EAAGA,EAAIsG,EAAM,OAAQtG,IAChCpB,GAAO0H,EAAM,WAAWtG,CAAC,GAAK,GAAI,EAMpC,OAAOsG,CACT,CASA,eAAeN,GAAcF,EAAQH,EAAckB,EAAc,CAC/D,IAAMhE,EAAQ,CAAC,EACXiE,EAAa,EAEjB,OAAa,CACX,IAAIC,EACAC,EAEJ,GAAI,EACD,CAAE,KAAAD,EAAM,MAAOC,CAAM,EAAI,MAAMlB,EAAO,KAAK,EAC9C,OAASC,EAAG,CAEVc,EAAad,CAAC,EACd,MACF,CAEA,GAAIgB,EAAM,CAERpB,EAAa,OAAO,OAAO9C,EAAOiE,CAAU,CAAC,EAC7C,MACF,CAIA,GAAI,CAACjI,GAAamI,CAAK,EAAG,CACxBH,EAAa,IAAI,UAAU,+BAA+B,CAAC,EAC3D,MACF,CAGAhE,EAAM,KAAKmE,CAAK,EAChBF,GAAcE,EAAM,MAGtB,CACF,CAMA,SAASC,GAAYvH,EAAK,CACxBd,GAAO,aAAcc,CAAG,EAExB,IAAMwH,EAAWxH,EAAI,SAErB,OAAOwH,IAAa,UAAYA,IAAa,SAAWA,IAAa,OACvE,CAKA,SAAS7F,GAAmB3B,EAAK,CAC/B,OAAI,OAAOA,GAAQ,SACVA,EAAI,WAAW,QAAQ,EAGzBA,EAAI,WAAa,QAC1B,CAMA,SAASC,GAAsBD,EAAK,CAClCd,GAAO,aAAcc,CAAG,EAExB,IAAMwH,EAAWxH,EAAI,SAErB,OAAOwH,IAAa,SAAWA,IAAa,QAC9C,CAKA,IAAMC,GAAS,OAAO,SAAW,CAACC,EAAMC,IAAQ,OAAO,UAAU,eAAe,KAAKD,EAAMC,CAAG,GAE9FlJ,GAAO,QAAU,CACf,UAAAkG,GACA,YAAAE,GACA,sBAAAP,GACA,mBAAArF,GACA,YAAAD,GACA,8CAAAmF,GACA,2BAAAtC,GACA,0BAAAO,GACA,oBAAAH,GACA,qBAAAC,GACA,oBAAAZ,GACA,0BAAAG,GACA,SAAAJ,GACA,UAAAD,GACA,+BAAAD,GACA,uBAAAY,GACA,mCAAAlB,GACA,iBAAAJ,GACA,eAAAV,GACA,kBAAAF,GACA,YAAAR,GACA,oBAAAI,GACA,WAAAV,GACA,4BAAA6D,GACA,oBAAAxC,GACA,WAAAwB,GACA,gBAAAkD,GACA,qCAAAE,GACA,aAAAG,GACA,kBAAAxE,GACA,mBAAAf,GACA,OAAA6H,GACA,YAAAvH,GACA,cAAA2F,GACA,WAAA3C,GACA,qBAAAsD,GACA,oBAAAO,GACA,iBAAAG,GACA,iBAAAP,GACA,WAAAY,GACA,kBAAA5F,GACA,qBAAA1B,GACA,aAAAqG,EACF,ICxgCA,IAAAsB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEAA,GAAO,QAAU,CACf,KAAM,OAAO,KAAK,EAClB,SAAU,OAAO,SAAS,EAC1B,QAAS,OAAO,QAAQ,EACxB,OAAQ,OAAO,OAAO,EACtB,OAAQ,OAAO,OAAO,EACtB,OAAQ,OAAO,OAAO,CACxB,ICTA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,MAAAC,EAAM,EAAI,QAAQ,MAAM,EAC1B,CAAE,OAAAC,GAAQ,YAAAC,EAAY,EAAI,KAG1BC,EAAS,CAAC,EAChBA,EAAO,WAAa,CAAC,EACrBA,EAAO,KAAO,CAAC,EACfA,EAAO,OAAS,CAAC,EAEjBA,EAAO,OAAO,UAAY,SAAUC,EAAS,CAC3C,OAAO,IAAI,UAAU,GAAGA,EAAQ,MAAM,KAAKA,EAAQ,OAAO,EAAE,CAC9D,EAEAD,EAAO,OAAO,iBAAmB,SAAUE,EAAS,CAClD,IAAMC,EAASD,EAAQ,MAAM,SAAW,EAAI,GAAK,UAC3CD,EACJ,GAAGC,EAAQ,QAAQ,6BAChBC,CAAM,KAAKD,EAAQ,MAAM,KAAK,IAAI,CAAC,IAExC,OAAOF,EAAO,OAAO,UAAU,CAC7B,OAAQE,EAAQ,OAChB,QAAAD,CACF,CAAC,CACH,EAEAD,EAAO,OAAO,gBAAkB,SAAUE,EAAS,CACjD,OAAOF,EAAO,OAAO,UAAU,CAC7B,OAAQE,EAAQ,OAChB,QAAS,IAAIA,EAAQ,KAAK,mBAAmBA,EAAQ,IAAI,GAC3D,CAAC,CACH,EAGAF,EAAO,WAAa,SAAUI,EAAGC,EAAGC,EAAO,OAAW,CACpD,GAAIA,GAAM,SAAW,IAAS,EAAEF,aAAaC,GAC3C,MAAM,IAAI,UAAU,oBAAoB,EAExC,OAAOD,IAAI,OAAO,WAAW,IAAMC,EAAE,UAAU,OAAO,WAAW,CAErE,EAEAL,EAAO,oBAAsB,SAAU,CAAE,OAAAO,CAAO,EAAGC,EAAKC,EAAK,CAC3D,GAAIF,EAASC,EACX,MAAMR,EAAO,OAAO,UAAU,CAC5B,QAAS,GAAGQ,CAAG,YAAYA,IAAQ,EAAI,IAAM,EAAE,iBAChCD,EAAS,QAAU,EAAE,IAAIA,CAAM,UAC9C,GAAGE,CACL,CAAC,CAEL,EAEAT,EAAO,mBAAqB,UAAY,CACtC,MAAMA,EAAO,OAAO,UAAU,CAC5B,OAAQ,YACR,QAAS,qBACX,CAAC,CACH,EAGAA,EAAO,KAAK,KAAO,SAAUI,EAAG,CAC9B,OAAQ,OAAOA,EAAG,CAChB,IAAK,YAAa,MAAO,YACzB,IAAK,UAAW,MAAO,UACvB,IAAK,SAAU,MAAO,SACtB,IAAK,SAAU,MAAO,SACtB,IAAK,SAAU,MAAO,SACtB,IAAK,SAAU,MAAO,SACtB,IAAK,WACL,IAAK,SACH,OAAIA,IAAM,KACD,OAGF,QAEX,CACF,EAGAJ,EAAO,KAAK,aAAe,SAAUI,EAAGM,EAAWC,EAAYL,EAAO,CAAC,EAAG,CACxE,IAAIM,EACAC,EAGAH,IAAc,IAEhBE,EAAa,KAAK,IAAI,EAAG,EAAE,EAAI,EAG3BD,IAAe,WACjBE,EAAa,EAGbA,EAAa,KAAK,IAAI,GAAI,EAAE,EAAI,GAEzBF,IAAe,YAIxBE,EAAa,EAGbD,EAAa,KAAK,IAAI,EAAGF,CAAS,EAAI,IAKtCG,EAAa,KAAK,IAAI,GAAIH,CAAS,EAAI,EAGvCE,EAAa,KAAK,IAAI,EAAGF,EAAY,CAAC,EAAI,GAI5C,IAAII,EAAI,OAAOV,CAAC,EAShB,GANIU,IAAM,IACRA,EAAI,GAKFR,EAAK,eAAiB,GAAM,CAE9B,GACE,OAAO,MAAMQ,CAAC,GACdA,IAAM,OAAO,mBACbA,IAAM,OAAO,kBAEb,MAAMd,EAAO,OAAO,UAAU,CAC5B,OAAQ,qBACR,QAAS,qBAAqBI,CAAC,iBACjC,CAAC,EAQH,GAJAU,EAAId,EAAO,KAAK,YAAYc,CAAC,EAIzBA,EAAID,GAAcC,EAAIF,EACxB,MAAMZ,EAAO,OAAO,UAAU,CAC5B,OAAQ,qBACR,QAAS,yBAAyBa,CAAU,IAAID,CAAU,SAASE,CAAC,GACtE,CAAC,EAIH,OAAOA,CACT,CAKA,MAAI,CAAC,OAAO,MAAMA,CAAC,GAAKR,EAAK,QAAU,IAErCQ,EAAI,KAAK,IAAI,KAAK,IAAIA,EAAGD,CAAU,EAAGD,CAAU,EAK5C,KAAK,MAAME,CAAC,EAAI,IAAM,EACxBA,EAAI,KAAK,MAAMA,CAAC,EAEhBA,EAAI,KAAK,KAAKA,CAAC,EAIVA,GAKP,OAAO,MAAMA,CAAC,GACbA,IAAM,GAAK,OAAO,GAAG,EAAGA,CAAC,GAC1BA,IAAM,OAAO,mBACbA,IAAM,OAAO,kBAEN,GAITA,EAAId,EAAO,KAAK,YAAYc,CAAC,EAG7BA,EAAIA,EAAI,KAAK,IAAI,EAAGJ,CAAS,EAIzBC,IAAe,UAAYG,GAAK,KAAK,IAAI,EAAGJ,CAAS,EAAI,EACpDI,EAAI,KAAK,IAAI,EAAGJ,CAAS,EAI3BI,EACT,EAGAd,EAAO,KAAK,YAAc,SAAUe,EAAG,CAErC,IAAMC,EAAI,KAAK,MAAM,KAAK,IAAID,CAAC,CAAC,EAGhC,OAAIA,EAAI,EACC,GAAKC,EAIPA,CACT,EAGAhB,EAAO,kBAAoB,SAAUiB,EAAW,CAC9C,OAAQb,GAAM,CAEZ,GAAIJ,EAAO,KAAK,KAAKI,CAAC,IAAM,SAC1B,MAAMJ,EAAO,OAAO,UAAU,CAC5B,OAAQ,WACR,QAAS,iBAAiBA,EAAO,KAAK,KAAKI,CAAC,CAAC,oBAC/C,CAAC,EAKH,IAAMc,EAASd,IAAI,OAAO,QAAQ,IAAI,EAChCe,EAAM,CAAC,EAGb,GACED,IAAW,QACX,OAAOA,EAAO,MAAS,WAEvB,MAAMlB,EAAO,OAAO,UAAU,CAC5B,OAAQ,WACR,QAAS,4BACX,CAAC,EAIH,OAAa,CACX,GAAM,CAAE,KAAAoB,EAAM,MAAAC,CAAM,EAAIH,EAAO,KAAK,EAEpC,GAAIE,EACF,MAGFD,EAAI,KAAKF,EAAUI,CAAK,CAAC,CAC3B,CAEA,OAAOF,CACT,CACF,EAGAnB,EAAO,gBAAkB,SAAUsB,EAAcC,EAAgB,CAC/D,OAAQC,GAAM,CAEZ,GAAIxB,EAAO,KAAK,KAAKwB,CAAC,IAAM,SAC1B,MAAMxB,EAAO,OAAO,UAAU,CAC5B,OAAQ,SACR,QAAS,iBAAiBA,EAAO,KAAK,KAAKwB,CAAC,CAAC,oBAC/C,CAAC,EAIH,IAAMC,EAAS,CAAC,EAEhB,GAAI,CAAC5B,GAAM,QAAQ2B,CAAC,EAAG,CAErB,IAAME,EAAO,OAAO,KAAKF,CAAC,EAE1B,QAAWG,KAAOD,EAAM,CAEtB,IAAME,EAAWN,EAAaK,CAAG,EAI3BE,EAAaN,EAAeC,EAAEG,CAAG,CAAC,EAGxCF,EAAOG,CAAQ,EAAIC,CACrB,CAGA,OAAOJ,CACT,CAGA,IAAMC,EAAO,QAAQ,QAAQF,CAAC,EAG9B,QAAWG,KAAOD,EAKhB,GAHa,QAAQ,yBAAyBF,EAAGG,CAAG,GAG1C,WAAY,CAEpB,IAAMC,EAAWN,EAAaK,CAAG,EAI3BE,EAAaN,EAAeC,EAAEG,CAAG,CAAC,EAGxCF,EAAOG,CAAQ,EAAIC,CACrB,CAIF,OAAOJ,CACT,CACF,EAEAzB,EAAO,mBAAqB,SAAU8B,EAAG,CACvC,MAAO,CAAC1B,EAAGE,EAAO,CAAC,IAAM,CACvB,GAAIA,EAAK,SAAW,IAAS,EAAEF,aAAa0B,GAC1C,MAAM9B,EAAO,OAAO,UAAU,CAC5B,OAAQ8B,EAAE,KACV,QAAS,YAAY1B,CAAC,yBAAyB0B,EAAE,IAAI,GACvD,CAAC,EAGH,OAAO1B,CACT,CACF,EAEAJ,EAAO,oBAAsB,SAAU+B,EAAY,CACjD,OAAQC,GAAe,CACrB,IAAMC,EAAOjC,EAAO,KAAK,KAAKgC,CAAU,EAClCE,EAAO,CAAC,EAEd,GAAID,IAAS,QAAUA,IAAS,YAC9B,OAAOC,EACF,GAAID,IAAS,SAClB,MAAMjC,EAAO,OAAO,UAAU,CAC5B,OAAQ,aACR,QAAS,YAAYgC,CAAU,yCACjC,CAAC,EAGH,QAAWG,KAAWJ,EAAY,CAChC,GAAM,CAAE,IAAAJ,EAAK,aAAAS,EAAc,SAAAC,EAAU,UAAApB,CAAU,EAAIkB,EAEnD,GAAIE,IAAa,IACX,CAACvC,GAAOkC,EAAYL,CAAG,EACzB,MAAM3B,EAAO,OAAO,UAAU,CAC5B,OAAQ,aACR,QAAS,yBAAyB2B,CAAG,IACvC,CAAC,EAIL,IAAIN,EAAQW,EAAWL,CAAG,EACpBW,EAAaxC,GAAOqC,EAAS,cAAc,EAWjD,GAPIG,GAAcjB,IAAU,OAC1BA,EAAQA,GAASe,GAMfC,GAAYC,GAAcjB,IAAU,OAAW,CAGjD,GAFAA,EAAQJ,EAAUI,CAAK,EAGrBc,EAAQ,eACR,CAACA,EAAQ,cAAc,SAASd,CAAK,EAErC,MAAMrB,EAAO,OAAO,UAAU,CAC5B,OAAQ,aACR,QAAS,GAAGqB,CAAK,6CAA6Cc,EAAQ,cAAc,KAAK,IAAI,CAAC,GAChG,CAAC,EAGHD,EAAKP,CAAG,EAAIN,CACd,CACF,CAEA,OAAOa,CACT,CACF,EAEAlC,EAAO,kBAAoB,SAAUiB,EAAW,CAC9C,OAAQb,GACFA,IAAM,KACDA,EAGFa,EAAUb,CAAC,CAEtB,EAGAJ,EAAO,WAAW,UAAY,SAAUI,EAAGE,EAAO,CAAC,EAAG,CAKpD,GAAIF,IAAM,MAAQE,EAAK,wBACrB,MAAO,GAIT,GAAI,OAAOF,GAAM,SACf,MAAM,IAAI,UAAU,sDAAsD,EAM5E,OAAO,OAAOA,CAAC,CACjB,EAGAJ,EAAO,WAAW,WAAa,SAAUI,EAAG,CAG1C,IAAMU,EAAId,EAAO,WAAW,UAAUI,CAAC,EAIvC,QAASmC,EAAQ,EAAGA,EAAQzB,EAAE,OAAQyB,IAAS,CAC7C,IAAMC,EAAW1B,EAAE,WAAWyB,CAAK,EAEnC,GAAIC,EAAW,IACb,MAAM,IAAI,UACR,0EACSD,CAAK,mBAAmBC,CAAQ,6BAC3C,CAEJ,CAKA,OAAO1B,CACT,EAGAd,EAAO,WAAW,UAAYD,GAG9BC,EAAO,WAAW,QAAU,SAAUI,EAAG,CAMvC,MAJU,EAAQA,CAKpB,EAGAJ,EAAO,WAAW,IAAM,SAAUI,EAAG,CACnC,OAAOA,CACT,EAGAJ,EAAO,WAAW,WAAW,EAAI,SAAUI,EAAG,CAM5C,OAJUJ,EAAO,KAAK,aAAaI,EAAG,GAAI,QAAQ,CAKpD,EAGAJ,EAAO,WAAW,oBAAoB,EAAI,SAAUI,EAAG,CAMrD,OAJUJ,EAAO,KAAK,aAAaI,EAAG,GAAI,UAAU,CAKtD,EAGAJ,EAAO,WAAW,eAAe,EAAI,SAAUI,EAAG,CAMhD,OAJUJ,EAAO,KAAK,aAAaI,EAAG,GAAI,UAAU,CAKtD,EAGAJ,EAAO,WAAW,gBAAgB,EAAI,SAAUI,EAAGE,EAAM,CAMvD,OAJUN,EAAO,KAAK,aAAaI,EAAG,GAAI,WAAYE,CAAI,CAK5D,EAGAN,EAAO,WAAW,YAAc,SAAUI,EAAGE,EAAO,CAAC,EAAG,CAMtD,GACEN,EAAO,KAAK,KAAKI,CAAC,IAAM,UACxB,CAACP,GAAM,iBAAiBO,CAAC,EAEzB,MAAMJ,EAAO,OAAO,iBAAiB,CACnC,OAAQ,GAAGI,CAAC,GACZ,SAAU,GAAGA,CAAC,GACd,MAAO,CAAC,aAAa,CACvB,CAAC,EAOH,GAAIE,EAAK,cAAgB,IAAST,GAAM,oBAAoBO,CAAC,EAC3D,MAAMJ,EAAO,OAAO,UAAU,CAC5B,OAAQ,cACR,QAAS,mCACX,CAAC,EAWH,OAAOI,CACT,EAEAJ,EAAO,WAAW,WAAa,SAAUI,EAAGqC,EAAGnC,EAAO,CAAC,EAAG,CAMxD,GACEN,EAAO,KAAK,KAAKI,CAAC,IAAM,UACxB,CAACP,GAAM,aAAaO,CAAC,GACrBA,EAAE,YAAY,OAASqC,EAAE,KAEzB,MAAMzC,EAAO,OAAO,iBAAiB,CACnC,OAAQ,GAAGyC,EAAE,IAAI,GACjB,SAAU,GAAGrC,CAAC,GACd,MAAO,CAACqC,EAAE,IAAI,CAChB,CAAC,EAOH,GAAInC,EAAK,cAAgB,IAAST,GAAM,oBAAoBO,EAAE,MAAM,EAClE,MAAMJ,EAAO,OAAO,UAAU,CAC5B,OAAQ,cACR,QAAS,mCACX,CAAC,EAWH,OAAOI,CACT,EAEAJ,EAAO,WAAW,SAAW,SAAUI,EAAGE,EAAO,CAAC,EAAG,CAGnD,GAAIN,EAAO,KAAK,KAAKI,CAAC,IAAM,UAAY,CAACP,GAAM,WAAWO,CAAC,EACzD,MAAMJ,EAAO,OAAO,UAAU,CAC5B,OAAQ,WACR,QAAS,2BACX,CAAC,EAOH,GAAIM,EAAK,cAAgB,IAAST,GAAM,oBAAoBO,EAAE,MAAM,EAClE,MAAMJ,EAAO,OAAO,UAAU,CAC5B,OAAQ,cACR,QAAS,mCACX,CAAC,EAWH,OAAOI,CACT,EAGAJ,EAAO,WAAW,aAAe,SAAUI,EAAGE,EAAO,CAAC,EAAG,CACvD,GAAIT,GAAM,iBAAiBO,CAAC,EAC1B,OAAOJ,EAAO,WAAW,YAAYI,EAAGE,CAAI,EAG9C,GAAIT,GAAM,aAAaO,CAAC,EACtB,OAAOJ,EAAO,WAAW,WAAWI,EAAGA,EAAE,WAAW,EAGtD,GAAIP,GAAM,WAAWO,CAAC,EACpB,OAAOJ,EAAO,WAAW,SAASI,EAAGE,CAAI,EAG3C,MAAM,IAAI,UAAU,qBAAqBF,CAAC,qBAAqB,CACjE,EAEAJ,EAAO,WAAW,sBAAsB,EAAIA,EAAO,kBACjDA,EAAO,WAAW,UACpB,EAEAA,EAAO,WAAW,gCAAgC,EAAIA,EAAO,kBAC3DA,EAAO,WAAW,sBAAsB,CAC1C,EAEAA,EAAO,WAAW,gCAAgC,EAAIA,EAAO,gBAC3DA,EAAO,WAAW,WAClBA,EAAO,WAAW,UACpB,EAEAJ,GAAO,QAAU,CACf,OAAAI,CACF,ICvoBA,IAAA0C,GAAAC,EAAA,CAAAC,GAAAC,KAAA,KAAMC,GAAS,QAAQ,QAAQ,EACzB,CAAE,KAAAC,EAAK,EAAI,QAAQ,QAAQ,EAC3B,CAAE,iBAAAC,EAAiB,EAAI,KAEvBC,GAAU,IAAI,YAKdC,GAAwB,+BACxBC,GAAwB,gCAIxBC,GAA4B,uCAIlC,SAASC,GAAkBC,EAAS,CAElCR,GAAOQ,EAAQ,WAAa,OAAO,EAKnC,IAAIC,EAAQC,GAAcF,EAAS,EAAI,EAGvCC,EAAQA,EAAM,MAAM,CAAC,EAGrB,IAAME,EAAW,CAAE,SAAU,CAAE,EAK3BC,EAAWC,GACb,IACAJ,EACAE,CACF,EAQMG,EAAiBF,EAAS,OAKhC,GAJAA,EAAWG,GAAsBH,EAAU,GAAM,EAAI,EAIjDD,EAAS,UAAYF,EAAM,OAC7B,MAAO,UAITE,EAAS,WAGT,IAAMK,EAAcP,EAAM,MAAMK,EAAiB,CAAC,EAG9CG,EAAOC,GAAoBF,CAAW,EAK1C,GAAI,wBAAwB,KAAKJ,CAAQ,EAAG,CAE1C,IAAMO,EAAajB,GAAiBe,CAAI,EAOxC,GAHAA,EAAOG,GAAgBD,CAAU,EAG7BF,IAAS,UACX,MAAO,UAITL,EAAWA,EAAS,MAAM,EAAG,EAAE,EAI/BA,EAAWA,EAAS,QAAQ,aAAc,EAAE,EAG5CA,EAAWA,EAAS,MAAM,EAAG,EAAE,CACjC,CAIIA,EAAS,WAAW,GAAG,IACzBA,EAAW,aAAeA,GAK5B,IAAIS,EAAiBC,GAAcV,CAAQ,EAI3C,OAAIS,IAAmB,YACrBA,EAAiBC,GAAc,6BAA6B,GAMvD,CAAE,SAAUD,EAAgB,KAAAJ,CAAK,CAC1C,CAOA,SAASP,GAAea,EAAKC,EAAkB,GAAO,CACpD,IAAMC,EAAOF,EAAI,KAEjB,GAAI,CAACC,EACH,OAAOC,EAGT,IAAMC,EAAOD,EAAK,YAAY,GAAG,EACjC,OAAIC,IAAS,GACJD,EAEFA,EAAK,MAAM,EAAGC,CAAI,CAC3B,CAQA,SAASC,GAA8BC,EAAWnB,EAAOE,EAAU,CAEjE,IAAIkB,EAAS,GAIb,KAAOlB,EAAS,SAAWF,EAAM,QAAUmB,EAAUnB,EAAME,EAAS,QAAQ,CAAC,GAE3EkB,GAAUpB,EAAME,EAAS,QAAQ,EAGjCA,EAAS,WAIX,OAAOkB,CACT,CAQA,SAAShB,GAAkCiB,EAAMrB,EAAOE,EAAU,CAChE,IAAMoB,EAAMtB,EAAM,QAAQqB,EAAMnB,EAAS,QAAQ,EAC3CqB,EAAQrB,EAAS,SAEvB,OAAIoB,IAAQ,IACVpB,EAAS,SAAWF,EAAM,OACnBA,EAAM,MAAMuB,CAAK,IAG1BrB,EAAS,SAAWoB,EACbtB,EAAM,MAAMuB,EAAOrB,EAAS,QAAQ,EAC7C,CAIA,SAASO,GAAqBT,EAAO,CAEnC,IAAMwB,EAAQ9B,GAAQ,OAAOM,CAAK,EAGlC,OAAOyB,GAAcD,CAAK,CAC5B,CAIA,SAASC,GAAezB,EAAO,CAG7B,IAAM0B,EAAS,CAAC,EAGhB,QAASC,EAAI,EAAGA,EAAI3B,EAAM,OAAQ2B,IAAK,CACrC,IAAMC,EAAO5B,EAAM2B,CAAC,EAGpB,GAAIC,IAAS,GACXF,EAAO,KAAKE,CAAI,UAQhBA,IAAS,IACT,CAAC,oBAAoB,KAAK,OAAO,aAAa5B,EAAM2B,EAAI,CAAC,EAAG3B,EAAM2B,EAAI,CAAC,CAAC,CAAC,EAEzED,EAAO,KAAK,EAAI,MAGX,CAGL,IAAMG,EAAe,OAAO,aAAa7B,EAAM2B,EAAI,CAAC,EAAG3B,EAAM2B,EAAI,CAAC,CAAC,EAC7DG,EAAY,OAAO,SAASD,EAAc,EAAE,EAGlDH,EAAO,KAAKI,CAAS,EAGrBH,GAAK,CACP,CACF,CAGA,OAAO,WAAW,KAAKD,CAAM,CAC/B,CAIA,SAASb,GAAeb,EAAO,CAG7BA,EAAQ+B,GAAqB/B,EAAO,GAAM,EAAI,EAI9C,IAAME,EAAW,CAAE,SAAU,CAAE,EAKzB8B,EAAO5B,GACX,IACAJ,EACAE,CACF,EAWA,GANI8B,EAAK,SAAW,GAAK,CAACrC,GAAsB,KAAKqC,CAAI,GAMrD9B,EAAS,SAAWF,EAAM,OAC5B,MAAO,UAITE,EAAS,WAKT,IAAI+B,EAAU7B,GACZ,IACAJ,EACAE,CACF,EAOA,GAJA+B,EAAUF,GAAqBE,EAAS,GAAO,EAAI,EAI/CA,EAAQ,SAAW,GAAK,CAACtC,GAAsB,KAAKsC,CAAO,EAC7D,MAAO,UAGT,IAAMC,EAAgBF,EAAK,YAAY,EACjCG,EAAmBF,EAAQ,YAAY,EAMvC9B,EAAW,CACf,KAAM+B,EACN,QAASC,EAET,WAAY,IAAI,IAEhB,QAAS,GAAGD,CAAa,IAAIC,CAAgB,EAC/C,EAGA,KAAOjC,EAAS,SAAWF,EAAM,QAAQ,CAEvCE,EAAS,WAITgB,GAEEG,GAAQzB,GAAsB,KAAKyB,CAAI,EACvCrB,EACAE,CACF,EAKA,IAAIkC,EAAgBlB,GACjBG,GAASA,IAAS,KAAOA,IAAS,IACnCrB,EACAE,CACF,EAOA,GAHAkC,EAAgBA,EAAc,YAAY,EAGtClC,EAAS,SAAWF,EAAM,OAAQ,CAGpC,GAAIA,EAAME,EAAS,QAAQ,IAAM,IAC/B,SAIFA,EAAS,UACX,CAGA,GAAIA,EAAS,SAAWF,EAAM,OAC5B,MAIF,IAAIqC,EAAiB,KAIrB,GAAIrC,EAAME,EAAS,QAAQ,IAAM,IAI/BmC,EAAiBC,GAA0BtC,EAAOE,EAAU,EAAI,EAIhEE,GACE,IACAJ,EACAE,CACF,UAOAmC,EAAiBjC,GACf,IACAJ,EACAE,CACF,EAGAmC,EAAiBN,GAAqBM,EAAgB,GAAO,EAAI,EAG7DA,EAAe,SAAW,EAC5B,SAWFD,EAAc,SAAW,GACzBzC,GAAsB,KAAKyC,CAAa,IACvCC,EAAe,SAAW,GAAKxC,GAA0B,KAAKwC,CAAc,IAC7E,CAAClC,EAAS,WAAW,IAAIiC,CAAa,GAEtCjC,EAAS,WAAW,IAAIiC,EAAeC,CAAc,CAEzD,CAGA,OAAOlC,CACT,CAIA,SAASQ,GAAiB4B,EAAM,CAuB9B,GArBAA,EAAOA,EAAK,QAAQ,oCAAqC,EAAE,EAIvDA,EAAK,OAAS,IAAM,IAGtBA,EAAOA,EAAK,QAAQ,OAAQ,EAAE,GAK5BA,EAAK,OAAS,IAAM,GASpB,iBAAiB,KAAKA,CAAI,EAC5B,MAAO,UAGT,IAAMC,EAAShD,GAAK+C,CAAI,EAClBf,EAAQ,IAAI,WAAWgB,EAAO,MAAM,EAE1C,QAASZ,EAAO,EAAGA,EAAOY,EAAO,OAAQZ,IACvCJ,EAAMI,CAAI,EAAIY,EAAO,WAAWZ,CAAI,EAGtC,OAAOJ,CACT,CASA,SAASc,GAA2BtC,EAAOE,EAAUuC,EAAc,CAEjE,IAAMC,EAAgBxC,EAAS,SAG3ByC,EAAQ,GAUZ,IANApD,GAAOS,EAAME,EAAS,QAAQ,IAAM,GAAG,EAGvCA,EAAS,WAOPyC,GAASzB,GACNG,GAASA,IAAS,KAAOA,IAAS,KACnCrB,EACAE,CACF,EAGI,EAAAA,EAAS,UAAYF,EAAM,SAXpB,CAiBX,IAAM4C,EAAmB5C,EAAME,EAAS,QAAQ,EAMhD,GAHAA,EAAS,WAGL0C,IAAqB,KAAM,CAG7B,GAAI1C,EAAS,UAAYF,EAAM,OAAQ,CACrC2C,GAAS,KACT,KACF,CAGAA,GAAS3C,EAAME,EAAS,QAAQ,EAGhCA,EAAS,UAGX,KAAO,CAELX,GAAOqD,IAAqB,GAAG,EAG/B,KACF,CACF,CAGA,OAAIH,EACKE,EAKF3C,EAAM,MAAM0C,EAAexC,EAAS,QAAQ,CACrD,CAKA,SAAS2C,GAAoB1C,EAAU,CACrCZ,GAAOY,IAAa,SAAS,EAC7B,GAAM,CAAE,WAAA2C,EAAY,QAAAC,CAAQ,EAAI5C,EAI5B6C,EAAgBD,EAGpB,OAAS,CAACE,EAAMN,CAAK,IAAKG,EAAW,QAAQ,EAE3CE,GAAiB,IAGjBA,GAAiBC,EAGjBD,GAAiB,IAIZrD,GAAsB,KAAKgD,CAAK,IAGnCA,EAAQA,EAAM,QAAQ,UAAW,MAAM,EAGvCA,EAAQ,IAAMA,EAGdA,GAAS,KAIXK,GAAiBL,EAInB,OAAOK,CACT,CAMA,SAASE,GAAkB7B,EAAM,CAC/B,OAAOA,IAAS,MAAQA,IAAS;AAAA,GAAQA,IAAS,KAAQA,IAAS,GACrE,CAMA,SAASU,GAAsBoB,EAAKC,EAAU,GAAMC,EAAW,GAAM,CACnE,IAAIC,EAAO,EACPC,EAAQJ,EAAI,OAAS,EAEzB,GAAIC,EACF,KAAOE,EAAOH,EAAI,QAAUD,GAAiBC,EAAIG,CAAI,CAAC,EAAGA,IAAO,CAGlE,GAAID,EACF,KAAOE,EAAQ,GAAKL,GAAiBC,EAAII,CAAK,CAAC,EAAGA,IAAQ,CAG5D,OAAOJ,EAAI,MAAMG,EAAMC,EAAQ,CAAC,CAClC,CAMA,SAASC,GAAmBnC,EAAM,CAChC,OAAOA,IAAS,MAAQA,IAAS;AAAA,GAAQA,IAAS,KAAQA,IAAS,MAAQA,IAAS,GACtF,CAKA,SAASf,GAAuB6C,EAAKC,EAAU,GAAMC,EAAW,GAAM,CACpE,IAAIC,EAAO,EACPC,EAAQJ,EAAI,OAAS,EAEzB,GAAIC,EACF,KAAOE,EAAOH,EAAI,QAAUK,GAAkBL,EAAIG,CAAI,CAAC,EAAGA,IAAO,CAGnE,GAAID,EACF,KAAOE,EAAQ,GAAKC,GAAkBL,EAAII,CAAK,CAAC,EAAGA,IAAQ,CAG7D,OAAOJ,EAAI,MAAMG,EAAMC,EAAQ,CAAC,CAClC,CAEAjE,GAAO,QAAU,CACf,iBAAAQ,GACA,cAAAG,GACA,6BAAAiB,GACA,iCAAAd,GACA,oBAAAK,GACA,cAAAI,GACA,0BAAAyB,GACA,mBAAAO,EACF,ICrnBA,IAAAY,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,KAAAC,GAAM,KAAMC,EAAW,EAAI,QAAQ,QAAQ,EAC7C,CAAE,MAAAC,EAAM,EAAI,QAAQ,MAAM,EAC1B,CAAE,OAAAC,EAAO,EAAI,KACb,CAAE,WAAAC,EAAW,EAAI,KACjB,CAAE,OAAAC,CAAO,EAAI,KACb,CAAE,cAAAC,GAAe,mBAAAC,EAAmB,EAAI,KACxC,CAAE,oBAAAC,EAAoB,EAAI,IAE1BC,GAAN,MAAMC,UAAaV,EAAK,CACtB,YAAaW,EAAUC,EAAUC,EAAU,CAAC,EAAG,CAI7CR,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,kBAAmB,CAAC,EAEvEM,EAAWN,EAAO,WAAW,oBAAoB,EAAEM,CAAQ,EAC3DC,EAAWP,EAAO,WAAW,UAAUO,CAAQ,EAC/CC,EAAUR,EAAO,WAAW,gBAAgBQ,CAAO,EAOnD,IAAMC,EAAIF,EAUNG,EAAIF,EAAQ,KACZG,EAGJC,EAAS,CACP,GAAIF,EAAG,CAGL,GAFAA,EAAIT,GAAcS,CAAC,EAEfA,IAAM,UAAW,CACnBA,EAAI,GAEJ,MAAME,CACR,CAEAF,EAAIR,GAAmBQ,CAAC,EAAE,YAAY,CACxC,CAMAC,EAAIH,EAAQ,YACd,CASA,MAAMK,GAAiBP,EAAUE,CAAO,EAAG,CAAE,KAAME,CAAE,CAAC,EACtD,KAAKZ,EAAM,EAAI,CACb,KAAMW,EACN,aAAcE,EACd,KAAMD,CACR,CACF,CAEA,IAAI,MAAQ,CACV,OAAAV,EAAO,WAAW,KAAMK,CAAI,EAErB,KAAKP,EAAM,EAAE,IACtB,CAEA,IAAI,cAAgB,CAClB,OAAAE,EAAO,WAAW,KAAMK,CAAI,EAErB,KAAKP,EAAM,EAAE,YACtB,CAEA,IAAI,MAAQ,CACV,OAAAE,EAAO,WAAW,KAAMK,CAAI,EAErB,KAAKP,EAAM,EAAE,IACtB,CACF,EAEMgB,GAAN,MAAMC,CAAS,CACb,YAAaC,EAAUT,EAAUC,EAAU,CAAC,EAAG,CAW7C,IAAMC,EAAIF,EAUJG,EAAIF,EAAQ,KASZG,EAAIH,EAAQ,cAAgB,KAAK,IAAI,EAS3C,KAAKV,EAAM,EAAI,CACb,SAAAkB,EACA,KAAMP,EACN,KAAMC,EACN,aAAcC,CAChB,CACF,CAEA,UAAWM,EAAM,CACf,OAAAjB,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,SAAS,OAAO,GAAGmB,CAAI,CAC7C,CAEA,eAAgBA,EAAM,CACpB,OAAAjB,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,SAAS,YAAY,GAAGmB,CAAI,CAClD,CAEA,SAAUA,EAAM,CACd,OAAAjB,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,SAAS,MAAM,GAAGmB,CAAI,CAC5C,CAEA,QAASA,EAAM,CACb,OAAAjB,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,SAAS,KAAK,GAAGmB,CAAI,CAC3C,CAEA,IAAI,MAAQ,CACV,OAAAjB,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,SAAS,IAC/B,CAEA,IAAI,MAAQ,CACV,OAAAE,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,SAAS,IAC/B,CAEA,IAAI,MAAQ,CACV,OAAAE,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,IACtB,CAEA,IAAI,cAAgB,CAClB,OAAAE,EAAO,WAAW,KAAMe,CAAQ,EAEzB,KAAKjB,EAAM,EAAE,YACtB,CAEA,IAAK,OAAO,WAAW,GAAK,CAC1B,MAAO,MACT,CACF,EAEA,OAAO,iBAAiBM,GAAK,UAAW,CACtC,CAAC,OAAO,WAAW,EAAG,CACpB,MAAO,OACP,aAAc,EAChB,EACA,KAAMD,GACN,aAAcA,EAChB,CAAC,EAEDH,EAAO,WAAW,KAAOA,EAAO,mBAAmBL,EAAI,EAEvDK,EAAO,WAAW,SAAW,SAAUkB,EAAGC,EAAM,CAC9C,GAAInB,EAAO,KAAK,KAAKkB,CAAC,IAAM,SAAU,CACpC,GAAInB,GAAWmB,CAAC,EACd,OAAOlB,EAAO,WAAW,KAAKkB,EAAG,CAAE,OAAQ,EAAM,CAAC,EAGpD,GACE,YAAY,OAAOA,CAAC,GACpBrB,GAAM,iBAAiBqB,CAAC,EAExB,OAAOlB,EAAO,WAAW,aAAakB,EAAGC,CAAI,CAEjD,CAEA,OAAOnB,EAAO,WAAW,UAAUkB,EAAGC,CAAI,CAC5C,EAEAnB,EAAO,WAAW,oBAAoB,EAAIA,EAAO,kBAC/CA,EAAO,WAAW,QACpB,EAGAA,EAAO,WAAW,gBAAkBA,EAAO,oBAAoB,CAC7D,CACE,IAAK,eACL,UAAWA,EAAO,WAAW,WAAW,EACxC,IAAI,cAAgB,CAClB,OAAO,KAAK,IAAI,CAClB,CACF,EACA,CACE,IAAK,OACL,UAAWA,EAAO,WAAW,UAC7B,aAAc,EAChB,EACA,CACE,IAAK,UACL,UAAYoB,IACVA,EAAQpB,EAAO,WAAW,UAAUoB,CAAK,EACzCA,EAAQA,EAAM,YAAY,EAEtBA,IAAU,WACZA,EAAQ,eAGHA,GAET,aAAc,aAChB,CACF,CAAC,EAOD,SAASP,GAAkBQ,EAAOb,EAAS,CAGzC,IAAMc,EAAQ,CAAC,EAGf,QAAWC,KAAWF,EAEpB,GAAI,OAAOE,GAAY,SAAU,CAE/B,IAAIC,EAAID,EAKJf,EAAQ,UAAY,WACtBgB,EAAIC,GAAyBD,CAAC,GAIhCF,EAAM,KAAK,IAAI,YAAY,EAAE,OAAOE,CAAC,CAAC,CACxC,MACE3B,GAAM,iBAAiB0B,CAAO,GAC9B1B,GAAM,aAAa0B,CAAO,EAKrBA,EAAQ,OAGXD,EAAM,KACJ,IAAI,WAAWC,EAAQ,OAAQA,EAAQ,WAAYA,EAAQ,UAAU,CACvE,EAJAD,EAAM,KAAK,IAAI,WAAWC,CAAO,CAAC,EAM3BxB,GAAWwB,CAAO,GAG3BD,EAAM,KAAKC,CAAO,EAKtB,OAAOD,CACT,CAMA,SAASG,GAA0BD,EAAG,CAEpC,IAAIE,EAAmB;AAAA,EAMvB,OAAI,QAAQ,WAAa,UACvBA,EAAmB;AAAA,GAGdF,EAAE,QAAQ,SAAUE,CAAgB,CAC7C,CAKA,SAASC,GAAYC,EAAQ,CAC3B,OACGhC,IAAcgC,aAAkBhC,IACjCgC,aAAkBxB,IAChBwB,IACC,OAAOA,EAAO,QAAW,YAC1B,OAAOA,EAAO,aAAgB,aAC9BA,EAAO,OAAO,WAAW,IAAM,MAGrC,CAEAlC,GAAO,QAAU,CAAE,KAAAU,GAAM,SAAAU,GAAU,WAAAa,EAAW,ICtV9C,IAAAE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,WAAAC,GAAY,YAAAC,GAAa,aAAAC,EAAa,EAAI,KAC5C,CAAE,OAAAC,EAAO,EAAI,KACb,CAAE,KAAMC,GAAY,SAAAC,GAAU,WAAAC,EAAW,EAAI,KAC7C,CAAE,OAAAC,CAAO,EAAI,KACb,CAAE,KAAAC,GAAM,KAAMC,EAAW,EAAI,QAAQ,QAAQ,EAG7CC,GAAOD,IAAcL,GAGrBO,GAAN,MAAMC,CAAS,CACb,YAAaC,EAAM,CACjB,GAAIA,IAAS,OACX,MAAMN,EAAO,OAAO,iBAAiB,CACnC,OAAQ,uBACR,SAAU,aACV,MAAO,CAAC,WAAW,CACrB,CAAC,EAGH,KAAKJ,EAAM,EAAI,CAAC,CAClB,CAEA,OAAQW,EAAMC,EAAOC,EAAW,OAAW,CAKzC,GAJAT,EAAO,WAAW,KAAMK,CAAQ,EAEhCL,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,iBAAkB,CAAC,EAElE,UAAU,SAAW,GAAK,CAACP,GAAWe,CAAK,EAC7C,MAAM,IAAI,UACR,6EACF,EAKFD,EAAOP,EAAO,WAAW,UAAUO,CAAI,EACvCC,EAAQf,GAAWe,CAAK,EACpBR,EAAO,WAAW,KAAKQ,EAAO,CAAE,OAAQ,EAAM,CAAC,EAC/CR,EAAO,WAAW,UAAUQ,CAAK,EACrCC,EAAW,UAAU,SAAW,EAC5BT,EAAO,WAAW,UAAUS,CAAQ,EACpC,OAIJ,IAAMC,EAAQC,GAAUJ,EAAMC,EAAOC,CAAQ,EAG7C,KAAKb,EAAM,EAAE,KAAKc,CAAK,CACzB,CAEA,OAAQH,EAAM,CACZP,EAAO,WAAW,KAAMK,CAAQ,EAEhCL,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,iBAAkB,CAAC,EAEtEO,EAAOP,EAAO,WAAW,UAAUO,CAAI,EAIvC,KAAKX,EAAM,EAAI,KAAKA,EAAM,EAAE,OAAOc,GAASA,EAAM,OAASH,CAAI,CACjE,CAEA,IAAKA,EAAM,CACTP,EAAO,WAAW,KAAMK,CAAQ,EAEhCL,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,cAAe,CAAC,EAEnEO,EAAOP,EAAO,WAAW,UAAUO,CAAI,EAIvC,IAAMK,EAAM,KAAKhB,EAAM,EAAE,UAAWc,GAAUA,EAAM,OAASH,CAAI,EACjE,OAAIK,IAAQ,GACH,KAKF,KAAKhB,EAAM,EAAEgB,CAAG,EAAE,KAC3B,CAEA,OAAQL,EAAM,CACZ,OAAAP,EAAO,WAAW,KAAMK,CAAQ,EAEhCL,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,iBAAkB,CAAC,EAEtEO,EAAOP,EAAO,WAAW,UAAUO,CAAI,EAMhC,KAAKX,EAAM,EACf,OAAQc,GAAUA,EAAM,OAASH,CAAI,EACrC,IAAKG,GAAUA,EAAM,KAAK,CAC/B,CAEA,IAAKH,EAAM,CACT,OAAAP,EAAO,WAAW,KAAMK,CAAQ,EAEhCL,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,cAAe,CAAC,EAEnEO,EAAOP,EAAO,WAAW,UAAUO,CAAI,EAIhC,KAAKX,EAAM,EAAE,UAAWc,GAAUA,EAAM,OAASH,CAAI,IAAM,EACpE,CAEA,IAAKA,EAAMC,EAAOC,EAAW,OAAW,CAKtC,GAJAT,EAAO,WAAW,KAAMK,CAAQ,EAEhCL,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,cAAe,CAAC,EAE/D,UAAU,SAAW,GAAK,CAACP,GAAWe,CAAK,EAC7C,MAAM,IAAI,UACR,0EACF,EAQFD,EAAOP,EAAO,WAAW,UAAUO,CAAI,EACvCC,EAAQf,GAAWe,CAAK,EACpBR,EAAO,WAAW,KAAKQ,EAAO,CAAE,OAAQ,EAAM,CAAC,EAC/CR,EAAO,WAAW,UAAUQ,CAAK,EACrCC,EAAW,UAAU,SAAW,EAC5Bf,GAAYe,CAAQ,EACpB,OAIJ,IAAMC,EAAQC,GAAUJ,EAAMC,EAAOC,CAAQ,EAIvCG,EAAM,KAAKhB,EAAM,EAAE,UAAWc,GAAUA,EAAM,OAASH,CAAI,EAC7DK,IAAQ,GACV,KAAKhB,EAAM,EAAI,CACb,GAAG,KAAKA,EAAM,EAAE,MAAM,EAAGgB,CAAG,EAC5BF,EACA,GAAG,KAAKd,EAAM,EAAE,MAAMgB,EAAM,CAAC,EAAE,OAAQF,GAAUA,EAAM,OAASH,CAAI,CACtE,EAGA,KAAKX,EAAM,EAAE,KAAKc,CAAK,CAE3B,CAEA,SAAW,CACT,OAAAV,EAAO,WAAW,KAAMK,CAAQ,EAEzBV,GACL,IAAM,KAAKC,EAAM,EAAE,IAAIiB,GAAQ,CAACA,EAAK,KAAMA,EAAK,KAAK,CAAC,EACtD,WACA,WACF,CACF,CAEA,MAAQ,CACN,OAAAb,EAAO,WAAW,KAAMK,CAAQ,EAEzBV,GACL,IAAM,KAAKC,EAAM,EAAE,IAAIiB,GAAQ,CAACA,EAAK,KAAMA,EAAK,KAAK,CAAC,EACtD,WACA,KACF,CACF,CAEA,QAAU,CACR,OAAAb,EAAO,WAAW,KAAMK,CAAQ,EAEzBV,GACL,IAAM,KAAKC,EAAM,EAAE,IAAIiB,GAAQ,CAACA,EAAK,KAAMA,EAAK,KAAK,CAAC,EACtD,WACA,OACF,CACF,CAMA,QAASC,EAAYC,EAAU,WAAY,CAKzC,GAJAf,EAAO,WAAW,KAAMK,CAAQ,EAEhCL,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,kBAAmB,CAAC,EAEnE,OAAOc,GAAe,WACxB,MAAM,IAAI,UACR,mFACF,EAGF,OAAW,CAACE,EAAKR,CAAK,IAAK,KACzBM,EAAW,MAAMC,EAAS,CAACP,EAAOQ,EAAK,IAAI,CAAC,CAEhD,CACF,EAEAZ,GAAS,UAAU,OAAO,QAAQ,EAAIA,GAAS,UAAU,QAEzD,OAAO,iBAAiBA,GAAS,UAAW,CAC1C,CAAC,OAAO,WAAW,EAAG,CACpB,MAAO,WACP,aAAc,EAChB,CACF,CAAC,EASD,SAASO,GAAWJ,EAAMC,EAAOC,EAAU,CASzC,GAJAF,EAAO,OAAO,KAAKA,CAAI,EAAE,SAAS,MAAM,EAIpC,OAAOC,GAAU,SACnBA,EAAQ,OAAO,KAAKA,CAAK,EAAE,SAAS,MAAM,UAMrCT,GAAWS,CAAK,IACnBA,EAAQA,aAAiBP,GACrB,IAAIE,GAAK,CAACK,CAAK,EAAG,OAAQ,CAAE,KAAMA,EAAM,IAAK,CAAC,EAC9C,IAAIV,GAASU,EAAO,OAAQ,CAAE,KAAMA,EAAM,IAAK,CAAC,GAKlDC,IAAa,OAAW,CAE1B,IAAMQ,EAAU,CACd,KAAMT,EAAM,KACZ,aAAcA,EAAM,YACtB,EAEAA,EAASN,IAAcM,aAAiBN,IAAeM,aAAiBX,GACpE,IAAIM,GAAK,CAACK,CAAK,EAAGC,EAAUQ,CAAO,EACnC,IAAInB,GAASU,EAAOC,EAAUQ,CAAO,CAC3C,CAIF,MAAO,CAAE,KAAAV,EAAM,MAAAC,CAAM,CACvB,CAEAhB,GAAO,QAAU,CAAE,SAAAY,EAAS,ICxQ5B,IAAAc,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAS,KACTC,GAAO,IACP,CACJ,mBAAAC,GACA,WAAAC,GACA,qBAAAC,GACA,oBAAAC,GACA,sBAAAC,GACA,cAAAC,EACF,EAAI,KACE,CAAE,SAAAC,EAAS,EAAI,KACf,CAAE,OAAAC,EAAO,EAAI,KACb,CAAE,OAAAC,EAAO,EAAI,KACb,CAAE,aAAAC,GAAc,gBAAAC,EAAgB,EAAI,KACpC,CAAE,KAAAC,GAAM,KAAMC,EAAW,EAAI,QAAQ,QAAQ,EAC7C,CAAE,UAAAC,EAAU,EAAI,KAChBC,GAAS,QAAQ,QAAQ,EACzB,CAAE,UAAAC,EAAU,EAAI,IAChB,CAAE,aAAAC,GAAc,cAAAC,EAAc,EAAI,QAAQ,YAAY,EACtD,CAAE,KAAMC,EAAW,EAAI,KACvB,CAAE,cAAAC,GAAe,mBAAAC,EAAmB,EAAI,KAE1CC,GAAiB,WAAW,eAG1BC,GAAOV,IAAcM,GAG3B,SAASK,GAAaC,EAAQC,EAAY,GAAO,CAC1CJ,KACHA,GAAiB,QAAQ,YAAY,EAAE,gBAIzC,IAAIK,EAAS,KAGTF,aAAkBH,GACpBK,EAASF,EACAvB,GAAWuB,CAAM,EAG1BE,EAASF,EAAO,OAAO,EAIvBE,EAAS,IAAIL,GAAe,CAC1B,MAAM,KAAMM,EAAY,CACtBA,EAAW,QACT,OAAOC,GAAW,SAAW,IAAI,YAAY,EAAE,OAAOA,CAAM,EAAIA,CAClE,EACA,eAAe,IAAMzB,GAAoBwB,CAAU,CAAC,CACtD,EACA,OAAS,CAAC,EACV,KAAM,MACR,CAAC,EAIHb,GAAOZ,GAAqBwB,CAAM,CAAC,EAGnC,IAAIG,EAAS,KAGTD,EAAS,KAGTE,EAAS,KAGTC,EAAO,KAGX,GAAI,OAAOP,GAAW,SAGpBI,EAASJ,EAGTO,EAAO,mCACEP,aAAkB,gBAS3BI,EAASJ,EAAO,SAAS,EAGzBO,EAAO,0DACEd,GAAcO,CAAM,EAI7BI,EAAS,IAAI,WAAWJ,EAAO,MAAM,CAAC,UAC7B,YAAY,OAAOA,CAAM,EAIlCI,EAAS,IAAI,WAAWJ,EAAO,OAAO,MAAMA,EAAO,WAAYA,EAAO,WAAaA,EAAO,UAAU,CAAC,UAC5FzB,GAAK,eAAeyB,CAAM,EAAG,CACtC,IAAMQ,EAAW,wBAAwB,GAAG,KAAK,MAAM,KAAK,OAAO,EAAI,IAAI,CAAC,GAAG,SAAS,GAAI,GAAG,CAAC,GAC1FC,EAAS,KAAKD,CAAQ;AAAA,gCAG5B,IAAME,EAAUC,GACdA,EAAI,QAAQ,MAAO,KAAK,EAAE,QAAQ,MAAO,KAAK,EAAE,QAAQ,KAAM,KAAK,EAC/DC,EAAsBC,GAAUA,EAAM,QAAQ,YAAa;AAAA,CAAM,EAQjEC,EAAM,IAAI,YACVC,EAAY,CAAC,EACbC,EAAK,IAAI,WAAW,CAAC,GAAI,EAAE,CAAC,EAClCV,EAAS,EACT,IAAIW,EAAsB,GAE1B,OAAW,CAACC,EAAML,CAAK,IAAKb,EAC1B,GAAI,OAAOa,GAAU,SAAU,CAC7B,IAAMM,EAAQL,EAAI,OAAOL,EACvB,WAAWC,EAAOE,EAAmBM,CAAI,CAAC,CAAC;AAAA;AAAA,EAChCN,EAAmBC,CAAK,CAAC;AAAA,CAAM,EAC5CE,EAAU,KAAKI,CAAK,EACpBb,GAAUa,EAAM,UAClB,KAAO,CACL,IAAMA,EAAQL,EAAI,OAAO,GAAGL,CAAM,WAAWC,EAAOE,EAAmBM,CAAI,CAAC,CAAC,KAC1EL,EAAM,KAAO,eAAeH,EAAOG,EAAM,IAAI,CAAC,IAAM,IAAM;AAAA,gBAEzDA,EAAM,MAAQ,0BAChB;AAAA;AAAA,CAAU,EACZE,EAAU,KAAKI,EAAON,EAAOG,CAAE,EAC3B,OAAOH,EAAM,MAAS,SACxBP,GAAUa,EAAM,WAAaN,EAAM,KAAOG,EAAG,WAE7CC,EAAsB,EAE1B,CAGF,IAAME,EAAQL,EAAI,OAAO,KAAKN,CAAQ,IAAI,EAC1CO,EAAU,KAAKI,CAAK,EACpBb,GAAUa,EAAM,WACZF,IACFX,EAAS,MAIXF,EAASJ,EAETK,EAAS,iBAAoB,CAC3B,QAAWe,KAAQL,EACbK,EAAK,OACP,MAAQA,EAAK,OAAO,EAEpB,MAAMA,CAGZ,EAKAb,EAAO,iCAAmCC,CAC5C,SAAW/B,GAAWuB,CAAM,EAI1BI,EAASJ,EAGTM,EAASN,EAAO,KAIZA,EAAO,OACTO,EAAOP,EAAO,cAEP,OAAOA,EAAO,OAAO,aAAa,GAAM,WAAY,CAE7D,GAAIC,EACF,MAAM,IAAI,UAAU,WAAW,EAIjC,GAAI1B,GAAK,YAAYyB,CAAM,GAAKA,EAAO,OACrC,MAAM,IAAI,UACR,wDACF,EAGFE,EACEF,aAAkBH,GAAiBG,EAASxB,GAAmBwB,CAAM,CACzE,CASA,IALI,OAAOI,GAAW,UAAY7B,GAAK,SAAS6B,CAAM,KACpDE,EAAS,OAAO,WAAWF,CAAM,GAI/BC,GAAU,KAAM,CAElB,IAAIgB,EACJnB,EAAS,IAAIL,GAAe,CAC1B,MAAM,OAAS,CACbwB,EAAWhB,EAAOL,CAAM,EAAE,OAAO,aAAa,EAAE,CAClD,EACA,MAAM,KAAMG,EAAY,CACtB,GAAM,CAAE,MAAAU,EAAO,KAAAS,CAAK,EAAI,MAAMD,EAAS,KAAK,EAC5C,OAAIC,EAEF,eAAe,IAAM,CACnBnB,EAAW,MAAM,CACnB,CAAC,EAKIZ,GAAUW,CAAM,GACnBC,EAAW,QAAQ,IAAI,WAAWU,CAAK,CAAC,EAGrCV,EAAW,YAAc,CAClC,EACA,MAAM,OAAQoB,EAAQ,CACpB,MAAMF,EAAS,OAAO,CACxB,EACA,KAAM,MACR,CAAC,CACH,CAOA,MAAO,CAHM,CAAE,OAAAnB,EAAQ,OAAAE,EAAQ,OAAAE,CAAO,EAGxBC,CAAI,CACpB,CAGA,SAASiB,GAAmBxB,EAAQC,EAAY,GAAO,CACrD,OAAKJ,KAEHA,GAAiB,QAAQ,YAAY,EAAE,gBAOrCG,aAAkBH,KAGpBP,GAAO,CAACf,GAAK,YAAYyB,CAAM,EAAG,qCAAqC,EAEvEV,GAAO,CAACU,EAAO,OAAQ,uBAAuB,GAIzCD,GAAYC,EAAQC,CAAS,CACtC,CAEA,SAASwB,GAAWC,EAAM,CAMxB,GAAM,CAACC,EAAMC,CAAI,EAAIF,EAAK,OAAO,IAAI,EAC/BG,EAAY3C,GAAgB0C,EAAM,CAAE,SAAU,CAACA,CAAI,CAAE,CAAC,EAGtD,CAAC,CAAEE,CAAU,EAAID,EAAU,IAAI,EAGrC,OAAAH,EAAK,OAASC,EAGP,CACL,OAAQG,EACR,OAAQJ,EAAK,OACb,OAAQA,EAAK,MACf,CACF,CAEA,eAAiBK,GAAaL,EAAM,CAClC,GAAIA,EACF,GAAIlC,GAAakC,CAAI,EACnB,MAAMA,MACD,CACL,IAAMxB,EAASwB,EAAK,OAEpB,GAAInD,GAAK,YAAY2B,CAAM,EACzB,MAAM,IAAI,UAAU,qCAAqC,EAG3D,GAAIA,EAAO,OACT,MAAM,IAAI,UAAU,uBAAuB,EAI7CA,EAAOb,EAAS,EAAI,GAEpB,MAAQa,CACV,CAEJ,CAEA,SAAS8B,GAAgBC,EAAO,CAC9B,GAAIA,EAAM,QACR,MAAM,IAAIhD,GAAa,6BAA8B,YAAY,CAErE,CAEA,SAASiD,GAAkBC,EAAU,CA8JnC,MA7JgB,CACd,MAAQ,CAMN,OAAOC,GAAgB,KAAOC,GAAU,CACtC,IAAIC,EAAWC,GAAa,IAAI,EAEhC,OAAID,IAAa,UACfA,EAAW,GACFA,IACTA,EAAW1C,GAAmB0C,CAAQ,GAKjC,IAAInD,GAAK,CAACkD,CAAK,EAAG,CAAE,KAAMC,CAAS,CAAC,CAC7C,EAAGH,CAAQ,CACb,EAEA,aAAe,CAKb,OAAOC,GAAgB,KAAOC,GACrB,IAAI,WAAWA,CAAK,EAAE,OAC5BF,CAAQ,CACb,EAEA,MAAQ,CAGN,OAAOC,GAAgB,KAAMI,GAAiBL,CAAQ,CACxD,EAEA,MAAQ,CAGN,OAAOC,GAAgB,KAAMK,GAAoBN,CAAQ,CAC3D,EAEA,MAAM,UAAY,CAChBnD,GAAO,WAAW,KAAMmD,CAAQ,EAEhCH,GAAe,KAAKjD,EAAM,CAAC,EAE3B,IAAM2D,EAAc,KAAK,QAAQ,IAAI,cAAc,EAGnD,GAAI,uBAAuB,KAAKA,CAAW,EAAG,CAC5C,IAAMC,EAAU,CAAC,EACjB,OAAW,CAACC,EAAK/B,CAAK,IAAK,KAAK,QAAS8B,EAAQC,EAAI,YAAY,CAAC,EAAI/B,EAEtE,IAAMgC,EAAmB,IAAI/D,GAEzBgE,EAEJ,GAAI,CACFA,EAASxE,GAAO,CACd,QAAAqE,EACA,gBAAiB,MACnB,CAAC,CACH,OAASI,EAAK,CACZ,MAAM,IAAI9D,GAAa,GAAG8D,CAAG,GAAI,YAAY,CAC/C,CAEAD,EAAO,GAAG,QAAS,CAAC5B,EAAML,IAAU,CAClCgC,EAAiB,OAAO3B,EAAML,CAAK,CACrC,CAAC,EACDiC,EAAO,GAAG,OAAQ,CAAC5B,EAAML,EAAOmC,IAAS,CACvC,GAAM,CAAE,SAAAC,EAAU,SAAAC,EAAU,SAAAZ,CAAS,EAAIU,EACnCG,EAAS,CAAC,EAEhB,GAAID,IAAa,UAAYA,EAAS,YAAY,IAAM,SAAU,CAChE,IAAIE,EAAc,GAElBvC,EAAM,GAAG,OAASM,GAAU,CAC1BiC,GAAejC,EAAM,SAAS,EAAE,QAAQ,WAAY,EAAE,EAEtD,IAAMkC,EAAMD,EAAY,OAASA,EAAY,OAAS,EACtDD,EAAO,KAAK,OAAO,KAAKC,EAAY,MAAM,EAAGC,CAAG,EAAG,QAAQ,CAAC,EAE5DD,EAAcA,EAAY,MAAMC,CAAG,CACrC,CAAC,EACDxC,EAAM,GAAG,MAAO,IAAM,CACpBsC,EAAO,KAAK,OAAO,KAAKC,EAAa,QAAQ,CAAC,EAC9CP,EAAiB,OAAO3B,EAAM,IAAIpB,GAAKqD,EAAQF,EAAU,CAAE,KAAMX,CAAS,CAAC,CAAC,CAC9E,CAAC,CACH,MACEzB,EAAM,GAAG,OAASM,GAAU,CAC1BgC,EAAO,KAAKhC,CAAK,CACnB,CAAC,EACDN,EAAM,GAAG,MAAO,IAAM,CACpBgC,EAAiB,OAAO3B,EAAM,IAAIpB,GAAKqD,EAAQF,EAAU,CAAE,KAAMX,CAAS,CAAC,CAAC,CAC9E,CAAC,CAEL,CAAC,EAED,IAAMgB,EAAgB,IAAI,QAAQ,CAACC,EAASC,IAAW,CACrDV,EAAO,GAAG,SAAUS,CAAO,EAC3BT,EAAO,GAAG,QAAUC,GAAQS,EAAO,IAAI,UAAUT,CAAG,CAAC,CAAC,CACxD,CAAC,EAED,GAAI,KAAK,OAAS,KAAM,cAAiB5B,KAASY,GAAY,KAAKhD,EAAM,EAAE,IAAI,EAAG+D,EAAO,MAAM3B,CAAK,EACpG,OAAA2B,EAAO,IAAI,EACX,MAAMQ,EAECT,CACT,SAAW,qCAAqC,KAAKH,CAAW,EAAG,CAIjE,IAAIe,EACJ,GAAI,CACF,IAAIC,EAAO,GAGLC,EAAc,IAAI,YAAY,QAAS,CAAE,UAAW,EAAK,CAAC,EAChE,cAAiBxC,KAASY,GAAY,KAAKhD,EAAM,EAAE,IAAI,EAAG,CACxD,GAAI,CAACS,GAAa2B,CAAK,EACrB,MAAM,IAAI,UAAU,2BAA2B,EAEjDuC,GAAQC,EAAY,OAAOxC,EAAO,CAAE,OAAQ,EAAK,CAAC,CACpD,CACAuC,GAAQC,EAAY,OAAO,EAC3BF,EAAU,IAAI,gBAAgBC,CAAI,CACpC,OAASX,EAAK,CAGZ,MAAM,OAAO,OAAO,IAAI,UAAa,CAAE,MAAOA,CAAI,CAAC,CACrD,CAGA,IAAMa,EAAW,IAAI9E,GACrB,OAAW,CAACoC,EAAML,CAAK,IAAK4C,EAC1BG,EAAS,OAAO1C,EAAML,CAAK,EAE7B,OAAO+C,CACT,KAGE,aAAM,QAAQ,QAAQ,EAEtB5B,GAAe,KAAKjD,EAAM,CAAC,EAGrBC,GAAO,OAAO,UAAU,CAC5B,OAAQ,GAAGmD,EAAS,IAAI,YACxB,QAAS,sCACX,CAAC,CAEL,CACF,CAGF,CAEA,SAAS0B,GAAWC,EAAW,CAC7B,OAAO,OAAOA,EAAU,UAAW5B,GAAiB4B,CAAS,CAAC,CAChE,CAQA,eAAe1B,GAAiBpC,EAAQ+D,EAAuB5B,EAAU,CAOvE,GANAnD,GAAO,WAAWgB,EAAQmC,CAAQ,EAElCH,GAAehC,EAAOjB,EAAM,CAAC,EAIzBiF,GAAahE,EAAOjB,EAAM,EAAE,IAAI,EAClC,MAAM,IAAI,UAAU,kBAAkB,EAIxC,IAAMkF,EAAUrF,GAAsB,EAGhCsF,EAAcC,GAAUF,EAAQ,OAAOE,CAAK,EAM5CC,EAAgBC,GAAS,CAC7B,GAAI,CACFJ,EAAQ,QAAQF,EAAsBM,CAAI,CAAC,CAC7C,OAASC,EAAG,CACVJ,EAAWI,CAAC,CACd,CACF,EAIA,OAAItE,EAAOjB,EAAM,EAAE,MAAQ,MACzBqF,EAAa,IAAI,UAAY,EACtBH,EAAQ,UAKjBpF,GAAcmB,EAAOjB,EAAM,EAAE,KAAMqF,EAAcF,CAAU,EAGpDD,EAAQ,QACjB,CAGA,SAASD,GAActC,EAAM,CAI3B,OAAOA,GAAQ,OAASA,EAAK,OAAO,QAAUnD,GAAK,YAAYmD,EAAK,MAAM,EAC5E,CAMA,SAASc,GAAiB+B,EAAQ,CAChC,OAAIA,EAAO,SAAW,EACb,IAQLA,EAAO,CAAC,IAAM,KAAQA,EAAO,CAAC,IAAM,KAAQA,EAAO,CAAC,IAAM,MAC5DA,EAASA,EAAO,SAAS,CAAC,GAKb,IAAI,YAAY,EAAE,OAAOA,CAAM,EAIhD,CAMA,SAAS9B,GAAoBJ,EAAO,CAClC,OAAO,KAAK,MAAMG,GAAgBH,CAAK,CAAC,CAC1C,CAMA,SAASE,GAAcvC,EAAQ,CAC7B,GAAM,CAAE,YAAAwE,CAAY,EAAIxE,EAAOjB,EAAM,EAC/B2D,EAAc8B,EAAY,IAAI,cAAc,EAElD,OAAI9B,IAAgB,KACX,UAGF/C,GAAc+C,CAAW,CAClC,CAEArE,GAAO,QAAU,CACf,YAAA0B,GACA,kBAAAyB,GACA,UAAAC,GACA,UAAAoC,EACF,IC1lBA,IAAAY,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CACJ,qBAAAC,GACA,kBAAAC,EACF,EAAI,KACEC,GAAS,QAAQ,QAAQ,EACzBC,GAAO,IAUPC,GAAc,kCAQdC,GAAkB,0BAGlBC,GAAmB,mBAEnBC,GAAW,OAAO,SAAS,EAE3BC,GAAW,CAAC,EAEdC,GAEJ,GAAI,CACF,IAAMC,EAAqB,QAAQ,qBAAqB,EACxDF,GAAS,OAASE,EAAmB,QAAQ,uBAAuB,EACpEF,GAAS,SAAWE,EAAmB,QAAQ,yBAAyB,EACxEF,GAAS,QAAUE,EAAmB,QAAQ,wBAAwB,EACtEF,GAAS,SAAWE,EAAmB,QAAQ,yBAAyB,EACxEF,GAAS,MAAQE,EAAmB,QAAQ,sBAAsB,CACpE,MAAQ,CACNF,GAAS,OAAS,CAAE,eAAgB,EAAM,EAC1CA,GAAS,SAAW,CAAE,eAAgB,EAAM,EAC5CA,GAAS,QAAU,CAAE,eAAgB,EAAM,EAC3CA,GAAS,SAAW,CAAE,eAAgB,EAAM,EAC5CA,GAAS,MAAQ,CAAE,eAAgB,EAAM,CAC3C,CAEA,IAAMG,GAAN,KAAc,CACZ,YAAaC,EAAQ,CACnB,KAAAC,EACA,OAAAC,EACA,KAAAC,EACA,QAAAC,EACA,MAAAC,EACA,WAAAC,EACA,SAAAC,EACA,QAAAC,EACA,eAAAC,EACA,YAAAC,EACA,MAAAC,EACA,aAAAC,CACF,EAAGC,EAAS,CACV,GAAI,OAAOZ,GAAS,SAClB,MAAM,IAAIb,GAAqB,uBAAuB,EACjD,GACLa,EAAK,CAAC,IAAM,KACZ,EAAEA,EAAK,WAAW,SAAS,GAAKA,EAAK,WAAW,UAAU,IAC1DC,IAAW,UAEX,MAAM,IAAId,GAAqB,oDAAoD,EAC9E,GAAIM,GAAiB,KAAKO,CAAI,IAAM,KACzC,MAAM,IAAIb,GAAqB,sBAAsB,EAGvD,GAAI,OAAOc,GAAW,SACpB,MAAM,IAAId,GAAqB,yBAAyB,EACnD,GAAII,GAAY,KAAKU,CAAM,IAAM,KACtC,MAAM,IAAId,GAAqB,wBAAwB,EAGzD,GAAIoB,GAAW,OAAOA,GAAY,SAChC,MAAM,IAAIpB,GAAqB,0BAA0B,EAG3D,GAAIqB,GAAkB,OAAS,CAAC,OAAO,SAASA,CAAc,GAAKA,EAAiB,GAClF,MAAM,IAAIrB,GAAqB,wBAAwB,EAGzD,GAAIsB,GAAe,OAAS,CAAC,OAAO,SAASA,CAAW,GAAKA,EAAc,GACzE,MAAM,IAAItB,GAAqB,qBAAqB,EAGtD,GAAIuB,GAAS,MAAQ,OAAOA,GAAU,UACpC,MAAM,IAAIvB,GAAqB,eAAe,EAWhD,GARA,KAAK,eAAiBqB,EAEtB,KAAK,YAAcC,EAEnB,KAAK,aAAeE,IAAiB,GAErC,KAAK,OAASV,EAEVC,GAAQ,KACV,KAAK,KAAO,aACHZ,GAAK,SAASY,CAAI,EAC3B,KAAK,KAAOA,UACHZ,GAAK,SAASY,CAAI,EAC3B,KAAK,KAAOA,EAAK,WAAaA,EAAO,aAC5B,YAAY,OAAOA,CAAI,EAChC,KAAK,KAAOA,EAAK,OAAO,WAAa,OAAO,KAAKA,EAAK,OAAQA,EAAK,WAAYA,EAAK,UAAU,EAAI,aACzFA,aAAgB,YACzB,KAAK,KAAOA,EAAK,WAAa,OAAO,KAAKA,CAAI,EAAI,aACzC,OAAOA,GAAS,SACzB,KAAK,KAAOA,EAAK,OAAS,OAAO,KAAKA,CAAI,EAAI,aACrCZ,GAAK,eAAeY,CAAI,GAAKZ,GAAK,WAAWY,CAAI,GAAKZ,GAAK,WAAWY,CAAI,EACnF,KAAK,KAAOA,MAEZ,OAAM,IAAIf,GAAqB,uFAAuF,EA6BxH,GA1BA,KAAK,UAAY,GAEjB,KAAK,QAAU,GAEf,KAAK,QAAUoB,GAAW,KAE1B,KAAK,KAAOH,EAAQd,GAAK,SAASU,EAAMI,CAAK,EAAIJ,EAEjD,KAAK,OAASD,EAEd,KAAK,WAAaM,IACdJ,IAAW,QAAUA,IAAW,OAGpC,KAAK,SAAWK,GAAmB,GAEnC,KAAK,MAAQI,GAAgB,KAE7B,KAAK,KAAO,KAEZ,KAAK,cAAgB,KAErB,KAAK,YAAc,KAEnB,KAAK,QAAU,GAEX,MAAM,QAAQP,CAAO,EAAG,CAC1B,GAAIA,EAAQ,OAAS,IAAM,EACzB,MAAM,IAAIhB,GAAqB,4BAA4B,EAE7D,QAAS0B,EAAI,EAAGA,EAAIV,EAAQ,OAAQU,GAAK,EACvCC,GAAc,KAAMX,EAAQU,CAAC,EAAGV,EAAQU,EAAI,CAAC,CAAC,CAElD,SAAWV,GAAW,OAAOA,GAAY,SAAU,CACjD,IAAMY,EAAO,OAAO,KAAKZ,CAAO,EAChC,QAASU,EAAI,EAAGA,EAAIE,EAAK,OAAQF,IAAK,CACpC,IAAMG,EAAMD,EAAKF,CAAC,EAClBC,GAAc,KAAME,EAAKb,EAAQa,CAAG,CAAC,CACvC,CACF,SAAWb,GAAW,KACpB,MAAM,IAAIhB,GAAqB,uCAAuC,EAGxE,GAAIG,GAAK,eAAe,KAAK,IAAI,EAAG,CAClC,GAAIA,GAAK,UAAY,IAAOA,GAAK,YAAc,IAAMA,GAAK,UAAY,EACpE,MAAM,IAAIH,GAAqB,8DAA8D,EAG1FS,KACHA,GAAc,KAA4B,aAG5C,GAAM,CAACqB,EAAYC,CAAW,EAAItB,GAAYM,CAAI,EAC9C,KAAK,aAAe,OACtB,KAAK,YAAcgB,EACnB,KAAK,SAAW,iBAAiBA,CAAW;AAAA,GAE9C,KAAK,KAAOD,EAAW,OACvB,KAAK,cAAgBA,EAAW,MAClC,MAAW3B,GAAK,WAAWY,CAAI,GAAK,KAAK,aAAe,MAAQA,EAAK,OACnE,KAAK,YAAcA,EAAK,KACxB,KAAK,SAAW,iBAAiBA,EAAK,IAAI;AAAA,GAG5CZ,GAAK,gBAAgBsB,EAASX,EAAQM,CAAO,EAE7C,KAAK,WAAajB,GAAK,cAAc,KAAK,IAAI,EAE9C,KAAKI,EAAQ,EAAIkB,EAEbjB,GAAS,OAAO,gBAClBA,GAAS,OAAO,QAAQ,CAAE,QAAS,IAAK,CAAC,CAE7C,CAEA,WAAYwB,EAAO,CACjB,GAAI,KAAKzB,EAAQ,EAAE,WACjB,GAAI,CACF,KAAKA,EAAQ,EAAE,WAAWyB,CAAK,CACjC,OAASC,EAAK,CACZ,KAAK,QAAQA,CAAG,CAClB,CAEJ,CAEA,eAAiB,CACXzB,GAAS,SAAS,gBACpBA,GAAS,SAAS,QAAQ,CAAE,QAAS,IAAK,CAAC,CAE/C,CAEA,UAAW0B,EAAO,CAChB,OAAAhC,GAAO,CAAC,KAAK,OAAO,EACpBA,GAAO,CAAC,KAAK,SAAS,EAEf,KAAKK,EAAQ,EAAE,UAAU2B,CAAK,CACvC,CAEA,UAAWC,EAAYnB,EAASoB,EAAQC,EAAY,CAClD,OAAAnC,GAAO,CAAC,KAAK,OAAO,EACpBA,GAAO,CAAC,KAAK,SAAS,EAElBM,GAAS,QAAQ,gBACnBA,GAAS,QAAQ,QAAQ,CAAE,QAAS,KAAM,SAAU,CAAE,WAAA2B,EAAY,QAAAnB,EAAS,WAAAqB,CAAW,CAAE,CAAC,EAGpF,KAAK9B,EAAQ,EAAE,UAAU4B,EAAYnB,EAASoB,EAAQC,CAAU,CACzE,CAEA,OAAQL,EAAO,CACb,OAAA9B,GAAO,CAAC,KAAK,OAAO,EACpBA,GAAO,CAAC,KAAK,SAAS,EAEf,KAAKK,EAAQ,EAAE,OAAOyB,CAAK,CACpC,CAEA,UAAWG,EAAYnB,EAASsB,EAAQ,CACtC,OAAApC,GAAO,CAAC,KAAK,OAAO,EACpBA,GAAO,CAAC,KAAK,SAAS,EAEf,KAAKK,EAAQ,EAAE,UAAU4B,EAAYnB,EAASsB,CAAM,CAC7D,CAEA,WAAYC,EAAU,CACpB,OAAArC,GAAO,CAAC,KAAK,OAAO,EAEpB,KAAK,UAAY,GACbM,GAAS,SAAS,gBACpBA,GAAS,SAAS,QAAQ,CAAE,QAAS,KAAM,SAAA+B,CAAS,CAAC,EAEhD,KAAKhC,EAAQ,EAAE,WAAWgC,CAAQ,CAC3C,CAEA,QAASC,EAAO,CAKd,GAJIhC,GAAS,MAAM,gBACjBA,GAAS,MAAM,QAAQ,CAAE,QAAS,KAAM,MAAAgC,CAAM,CAAC,EAG7C,MAAK,QAGT,YAAK,QAAU,GACR,KAAKjC,EAAQ,EAAE,QAAQiC,CAAK,CACrC,CAEA,UAAWX,EAAKY,EAAO,CACrB,OAAAd,GAAc,KAAME,EAAKY,CAAK,EACvB,IACT,CACF,EAEA,SAASC,GAAoBb,EAAKc,EAAK,CACrC,GAAIA,GAAO,OAAOA,GAAQ,SACxB,MAAM,IAAI3C,GAAqB,WAAW6B,CAAG,SAAS,EAKxD,GAFAc,EAAMA,GAAO,KAAO,GAAGA,CAAG,GAAK,GAE3BtC,GAAgB,KAAKsC,CAAG,IAAM,KAChC,MAAM,IAAI3C,GAAqB,WAAW6B,CAAG,SAAS,EAGxD,MAAO,GAAGA,CAAG,KAAKc,CAAG;AAAA,CACvB,CAEA,SAAShB,GAAeiB,EAASf,EAAKc,EAAK,CACzC,GAAIA,GAAQ,OAAOA,GAAQ,UAAY,CAAC,MAAM,QAAQA,CAAG,EACvD,MAAM,IAAI3C,GAAqB,WAAW6B,CAAG,SAAS,EACjD,GAAIc,IAAQ,OACjB,OAGF,GACEC,EAAQ,OAAS,MACjBf,EAAI,SAAW,GACfA,EAAI,YAAY,IAAM,OACtB,CACA,GAAIxB,GAAgB,KAAKsC,CAAG,IAAM,KAChC,MAAM,IAAI3C,GAAqB,WAAW6B,CAAG,SAAS,EAGxDe,EAAQ,KAAOD,CACjB,SACEC,EAAQ,gBAAkB,MAC1Bf,EAAI,SAAW,IACfA,EAAI,YAAY,IAAM,kBAGtB,GADAe,EAAQ,cAAgB,SAASD,EAAK,EAAE,EACpC,CAAC,OAAO,SAASC,EAAQ,aAAa,EACxC,MAAM,IAAI5C,GAAqB,+BAA+B,UAGhE4C,EAAQ,cAAgB,MACxBf,EAAI,SAAW,IACfA,EAAI,YAAY,IAAM,eAEtBe,EAAQ,YAAcD,EACtBC,EAAQ,SAAWF,GAAmBb,EAAKc,CAAG,MACzC,IACLd,EAAI,SAAW,IACfA,EAAI,YAAY,IAAM,oBAEtB,MAAM,IAAI7B,GAAqB,kCAAkC,EAC5D,GACL6B,EAAI,SAAW,IACfA,EAAI,YAAY,IAAM,aACtB,CACA,IAAMY,EAAQ,OAAOE,GAAQ,SAAWA,EAAI,YAAY,EAAI,KAC5D,GAAIF,IAAU,SAAWA,IAAU,aACjC,MAAM,IAAIzC,GAAqB,2BAA2B,EACjDyC,IAAU,UACnBG,EAAQ,MAAQ,GAEpB,KAAO,IACLf,EAAI,SAAW,IACfA,EAAI,YAAY,IAAM,aAEtB,MAAM,IAAI7B,GAAqB,2BAA2B,EACrD,GACL6B,EAAI,SAAW,GACfA,EAAI,YAAY,IAAM,UAEtB,MAAM,IAAI7B,GAAqB,wBAAwB,EAClD,GACL6B,EAAI,SAAW,GACfA,EAAI,YAAY,IAAM,SAEtB,MAAM,IAAI5B,GAAkB,6BAA6B,EACpD,GAAIG,GAAY,KAAKyB,CAAG,IAAM,KACnC,MAAM,IAAI7B,GAAqB,oBAAoB,EAEnD,GAAI,MAAM,QAAQ2C,CAAG,EACnB,QAASjB,EAAI,EAAGA,EAAIiB,EAAI,OAAQjB,IAC9BkB,EAAQ,SAAWF,GAAmBb,EAAKc,EAAIjB,CAAC,CAAC,OAGnDkB,EAAQ,SAAWF,GAAmBb,EAAKc,CAAG,GAGpD,CAEA5C,GAAO,QAAUY,KC/WjB,IAAAkC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAe,QAAQ,QAAQ,EAE/BC,GAAN,cAAyBD,EAAa,CACpC,UAAY,CACV,MAAM,IAAI,MAAM,iBAAiB,CACnC,CAEA,OAAS,CACP,MAAM,IAAI,MAAM,iBAAiB,CACnC,CAEA,SAAW,CACT,MAAM,IAAI,MAAM,iBAAiB,CACnC,CACF,EAEAD,GAAO,QAAUE,KClBjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAa,KACb,CACJ,qBAAAC,GACA,kBAAAC,GACA,qBAAAC,EACF,EAAI,KACE,CAAE,SAAAC,GAAU,OAAAC,GAAQ,UAAAC,GAAW,cAAAC,EAAc,EAAI,KAEjDC,GAAa,OAAO,WAAW,EAC/BC,GAAU,OAAO,QAAQ,EACzBC,GAAe,OAAO,aAAa,EACnCC,GAAY,OAAO,UAAU,EAC7BC,GAAuB,OAAO,sBAAsB,EAEpDC,GAAN,cAA6Bb,EAAW,CACtC,aAAe,CACb,MAAM,EAEN,KAAKQ,EAAU,EAAI,GACnB,KAAKE,EAAY,EAAI,KACrB,KAAKD,EAAO,EAAI,GAChB,KAAKE,EAAS,EAAI,CAAC,CACrB,CAEA,IAAI,WAAa,CACf,OAAO,KAAKH,EAAU,CACxB,CAEA,IAAI,QAAU,CACZ,OAAO,KAAKC,EAAO,CACrB,CAEA,IAAI,cAAgB,CAClB,OAAO,KAAKF,EAAa,CAC3B,CAEA,IAAI,aAAcO,EAAiB,CACjC,GAAIA,GACF,QAASC,EAAID,EAAgB,OAAS,EAAGC,GAAK,EAAGA,IAE/C,GAAI,OADgB,KAAKR,EAAa,EAAEQ,CAAC,GACd,WACzB,MAAM,IAAIZ,GAAqB,iCAAiC,EAKtE,KAAKI,EAAa,EAAIO,CACxB,CAEA,MAAOE,EAAU,CACf,GAAIA,IAAa,OACf,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtC,KAAK,MAAM,CAACC,EAAKC,IACRD,EAAMD,EAAOC,CAAG,EAAIF,EAAQG,CAAI,CACxC,CACH,CAAC,EAGH,GAAI,OAAOJ,GAAa,WACtB,MAAM,IAAIb,GAAqB,kBAAkB,EAGnD,GAAI,KAAKK,EAAU,EAAG,CACpB,eAAe,IAAMQ,EAAS,IAAIf,GAAwB,IAAI,CAAC,EAC/D,MACF,CAEA,GAAI,KAAKQ,EAAO,EAAG,CACb,KAAKE,EAAS,EAChB,KAAKA,EAAS,EAAE,KAAKK,CAAQ,EAE7B,eAAe,IAAMA,EAAS,KAAM,IAAI,CAAC,EAE3C,MACF,CAEA,KAAKP,EAAO,EAAI,GAChB,KAAKE,EAAS,EAAE,KAAKK,CAAQ,EAE7B,IAAMK,EAAW,IAAM,CACrB,IAAMC,EAAY,KAAKX,EAAS,EAChC,KAAKA,EAAS,EAAI,KAClB,QAASI,EAAI,EAAGA,EAAIO,EAAU,OAAQP,IACpCO,EAAUP,CAAC,EAAE,KAAM,IAAI,CAE3B,EAGA,KAAKV,EAAM,EAAE,EACV,KAAK,IAAM,KAAK,QAAQ,CAAC,EACzB,KAAK,IAAM,CACV,eAAegB,CAAQ,CACzB,CAAC,CACL,CAEA,QAASF,EAAKH,EAAU,CAMtB,GALI,OAAOG,GAAQ,aACjBH,EAAWG,EACXA,EAAM,MAGJH,IAAa,OACf,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtC,KAAK,QAAQC,EAAK,CAACA,EAAKC,IACfD,EAAqDD,EAAOC,CAAG,EAAIF,EAAQG,CAAI,CACvF,CACH,CAAC,EAGH,GAAI,OAAOJ,GAAa,WACtB,MAAM,IAAIb,GAAqB,kBAAkB,EAGnD,GAAI,KAAKK,EAAU,EAAG,CAChB,KAAKE,EAAY,EACnB,KAAKA,EAAY,EAAE,KAAKM,CAAQ,EAEhC,eAAe,IAAMA,EAAS,KAAM,IAAI,CAAC,EAE3C,MACF,CAEKG,IACHA,EAAM,IAAIlB,IAGZ,KAAKO,EAAU,EAAI,GACnB,KAAKE,EAAY,EAAI,KAAKA,EAAY,GAAK,CAAC,EAC5C,KAAKA,EAAY,EAAE,KAAKM,CAAQ,EAEhC,IAAMO,EAAc,IAAM,CACxB,IAAMD,EAAY,KAAKZ,EAAY,EACnC,KAAKA,EAAY,EAAI,KACrB,QAAS,EAAI,EAAG,EAAIY,EAAU,OAAQ,IACpCA,EAAU,CAAC,EAAE,KAAM,IAAI,CAE3B,EAGA,KAAKlB,EAAQ,EAAEe,CAAG,EAAE,KAAK,IAAM,CAC7B,eAAeI,CAAW,CAC5B,CAAC,CACH,CAEA,CAACX,EAAoB,EAAGY,EAAMC,EAAS,CACrC,GAAI,CAAC,KAAKlB,EAAa,GAAK,KAAKA,EAAa,EAAE,SAAW,EACzD,YAAKK,EAAoB,EAAI,KAAKN,EAAS,EACpC,KAAKA,EAAS,EAAEkB,EAAMC,CAAO,EAGtC,IAAIC,EAAW,KAAKpB,EAAS,EAAE,KAAK,IAAI,EACxC,QAASS,EAAI,KAAKR,EAAa,EAAE,OAAS,EAAGQ,GAAK,EAAGA,IACnDW,EAAW,KAAKnB,EAAa,EAAEQ,CAAC,EAAEW,CAAQ,EAE5C,YAAKd,EAAoB,EAAIc,EACtBA,EAASF,EAAMC,CAAO,CAC/B,CAEA,SAAUD,EAAMC,EAAS,CACvB,GAAI,CAACA,GAAW,OAAOA,GAAY,SACjC,MAAM,IAAItB,GAAqB,2BAA2B,EAG5D,GAAI,CACF,GAAI,CAACqB,GAAQ,OAAOA,GAAS,SAC3B,MAAM,IAAIrB,GAAqB,yBAAyB,EAG1D,GAAI,KAAKK,EAAU,GAAK,KAAKE,EAAY,EACvC,MAAM,IAAIT,GAGZ,GAAI,KAAKQ,EAAO,EACd,MAAM,IAAIP,GAGZ,OAAO,KAAKU,EAAoB,EAAEY,EAAMC,CAAO,CACjD,OAASN,EAAK,CACZ,GAAI,OAAOM,EAAQ,SAAY,WAC7B,MAAM,IAAItB,GAAqB,wBAAwB,EAGzD,OAAAsB,EAAQ,QAAQN,CAAG,EAEZ,EACT,CACF,CACF,EAEApB,GAAO,QAAUc,KC/LjB,IAAAc,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAM,QAAQ,KAAK,EACnBC,GAAS,QAAQ,QAAQ,EACzBC,GAAO,IACP,CAAE,qBAAAC,GAAsB,oBAAAC,EAAoB,EAAI,KAElDC,GAOAC,GACA,OAAO,qBACTA,GAAe,KAAuB,CACpC,YAAaC,EAAmB,CAC9B,KAAK,mBAAqBA,EAC1B,KAAK,cAAgB,IAAI,IACzB,KAAK,iBAAmB,IAAI,OAAO,qBAAsBC,GAAQ,CAC/D,GAAI,KAAK,cAAc,KAAO,KAAK,mBACjC,OAGF,IAAMC,EAAM,KAAK,cAAc,IAAID,CAAG,EAClCC,IAAQ,QAAaA,EAAI,MAAM,IAAM,QACvC,KAAK,cAAc,OAAOD,CAAG,CAEjC,CAAC,CACH,CAEA,IAAKE,EAAY,CACf,IAAMD,EAAM,KAAK,cAAc,IAAIC,CAAU,EAC7C,OAAOD,EAAMA,EAAI,MAAM,EAAI,IAC7B,CAEA,IAAKC,EAAYC,EAAS,CACpB,KAAK,qBAAuB,IAIhC,KAAK,cAAc,IAAID,EAAY,IAAI,QAAQC,CAAO,CAAC,EACvD,KAAK,iBAAiB,SAASA,EAASD,CAAU,EACpD,CACF,EAEAJ,GAAe,KAAyB,CACtC,YAAaC,EAAmB,CAC9B,KAAK,mBAAqBA,EAC1B,KAAK,cAAgB,IAAI,GAC3B,CAEA,IAAKG,EAAY,CACf,OAAO,KAAK,cAAc,IAAIA,CAAU,CAC1C,CAEA,IAAKA,EAAYC,EAAS,CACxB,GAAI,KAAK,qBAAuB,EAIhC,IAAI,KAAK,cAAc,MAAQ,KAAK,mBAAoB,CAEtD,GAAM,CAAE,MAAOC,CAAU,EAAI,KAAK,cAAc,KAAK,EAAE,KAAK,EAC5D,KAAK,cAAc,OAAOA,CAAS,CACrC,CAEA,KAAK,cAAc,IAAIF,EAAYC,CAAO,EAC5C,CACF,EAGF,SAASE,GAAgB,CAAE,kBAAAN,EAAmB,WAAAO,EAAY,QAAAC,EAAS,GAAGC,CAAK,EAAG,CAC5E,GAAIT,GAAqB,OAAS,CAAC,OAAO,UAAUA,CAAiB,GAAKA,EAAoB,GAC5F,MAAM,IAAIJ,GAAqB,sDAAsD,EAGvF,IAAMc,EAAU,CAAE,KAAMH,EAAY,GAAGE,CAAK,EACtCE,EAAe,IAAIZ,GAAaC,GAA4B,GAAuB,EACzF,OAAAQ,EAAUA,GAAkB,IAErB,SAAkB,CAAE,SAAAI,EAAU,KAAAC,EAAM,SAAAC,EAAU,KAAAC,EAAM,WAAAC,EAAY,aAAAC,EAAc,WAAAC,CAAW,EAAGC,EAAU,CAC3G,IAAIC,EACJ,GAAIN,IAAa,SAAU,CACpBhB,KACHA,GAAM,QAAQ,KAAK,GAErBkB,EAAaA,GAAcN,EAAQ,YAAcf,GAAK,cAAckB,CAAI,GAAK,KAE7E,IAAMV,EAAaa,GAAcJ,EAC3BR,EAAUO,EAAa,IAAIR,CAAU,GAAK,KAEhDT,GAAOS,CAAU,EAEjBiB,EAAStB,GAAI,QAAQ,CACnB,cAAe,MACf,GAAGY,EACH,WAAAM,EACA,QAAAZ,EACA,aAAAa,EACA,OAAQC,EACR,KAAMH,GAAQ,IACd,KAAMH,CACR,CAAC,EAEDQ,EACG,GAAG,UAAW,SAAUhB,EAAS,CAEhCO,EAAa,IAAIR,EAAYC,CAAO,CACtC,CAAC,CACL,MACEV,GAAO,CAACwB,EAAY,2CAA2C,EAC/DE,EAAS3B,GAAI,QAAQ,CACnB,cAAe,GAAK,KACpB,GAAGiB,EACH,aAAAO,EACA,KAAMF,GAAQ,GACd,KAAMH,CACR,CAAC,EAIH,GAAIF,EAAQ,WAAa,MAAQA,EAAQ,UAAW,CAClD,IAAMW,EAAwBX,EAAQ,wBAA0B,OAAY,IAAOA,EAAQ,sBAC3FU,EAAO,aAAa,GAAMC,CAAqB,CACjD,CAEA,IAAMC,EAAgBC,GAAa,IAAMC,GAAiBJ,CAAM,EAAGZ,CAAO,EAE1E,OAAAY,EACG,WAAW,EAAI,EACf,KAAKN,IAAa,SAAW,gBAAkB,UAAW,UAAY,CAGrE,GAFAQ,EAAc,EAEVH,EAAU,CACZ,IAAMM,EAAKN,EACXA,EAAW,KACXM,EAAG,KAAM,IAAI,CACf,CACF,CAAC,EACA,GAAG,QAAS,SAAUC,EAAK,CAG1B,GAFAJ,EAAc,EAEVH,EAAU,CACZ,IAAMM,EAAKN,EACXA,EAAW,KACXM,EAAGC,CAAG,CACR,CACF,CAAC,EAEIN,CACT,CACF,CAEA,SAASG,GAAcC,EAAkBhB,EAAS,CAChD,GAAI,CAACA,EACH,MAAO,IAAM,CAAC,EAGhB,IAAImB,EAAK,KACLC,EAAK,KACHC,EAAY,WAAW,IAAM,CAEjCF,EAAK,aAAa,IAAM,CAClB,QAAQ,WAAa,QAEvBC,EAAK,aAAa,IAAMJ,EAAiB,CAAC,EAE1CA,EAAiB,CAErB,CAAC,CACH,EAAGhB,CAAO,EACV,MAAO,IAAM,CACX,aAAaqB,CAAS,EACtB,eAAeF,CAAE,EACjB,eAAeC,CAAE,CACnB,CACF,CAEA,SAASJ,GAAkBJ,EAAQ,CACjCzB,GAAK,QAAQyB,EAAQ,IAAIvB,EAAqB,CAChD,CAEAL,GAAO,QAAUc,sGCpLjB,SAAgBwB,GAAUC,EAAQ,CAChC,IAAMC,EAAgB,CAAA,EAEtB,cAAO,KAAKD,CAAG,EAAE,QAASE,GAAO,CAC/B,IAAMC,EAAQH,EAAIE,CAAG,EACjB,OAAOC,GAAU,WACnBF,EAAIC,CAAG,EAAIC,EAEf,CAAC,EAEMF,CACT,CAXAG,GAAA,UAAAL,ibCJA,IAAAM,GAAA,KAMYC,IAAZ,SAAYA,EAAK,CACfA,EAAAA,EAAA,GAAA,CAAA,EAAA,KACAA,EAAAA,EAAA,SAAA,CAAA,EAAA,WACAA,EAAAA,EAAA,OAAA,CAAA,EAAA,SACAA,EAAAA,EAAA,YAAA,CAAA,EAAA,cACAA,EAAAA,EAAA,0BAAA,CAAA,EAAA,4BACAA,EAAAA,EAAA,kBAAA,CAAA,EAAA,oBACAA,EAAAA,EAAA,eAAA,CAAA,EAAA,iBACAA,EAAAA,EAAA,YAAA,CAAA,EAAA,cACAA,EAAAA,EAAA,iBAAA,CAAA,EAAA,mBACAA,EAAAA,EAAA,gBAAA,CAAA,EAAA,kBACAA,EAAAA,EAAA,qBAAA,EAAA,EAAA,uBACAA,EAAAA,EAAA,uBAAA,EAAA,EAAA,yBACAA,EAAAA,EAAA,mBAAA,EAAA,EAAA,qBACAA,EAAAA,EAAA,eAAA,EAAA,EAAA,iBACAA,EAAAA,EAAA,kBAAA,EAAA,EAAA,oBACAA,EAAAA,EAAA,0BAAA,EAAA,EAAA,4BAEAA,EAAAA,EAAA,iBAAA,EAAA,EAAA,mBACAA,EAAAA,EAAA,oBAAA,EAAA,EAAA,sBACAA,EAAAA,EAAA,oBAAA,EAAA,EAAA,sBACAA,EAAAA,EAAA,gBAAA,EAAA,EAAA,kBACAA,EAAAA,EAAA,kBAAA,EAAA,EAAA,oBAEAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SACAA,EAAAA,EAAA,eAAA,EAAA,EAAA,iBACAA,EAAAA,EAAA,kBAAA,EAAA,EAAA,oBAEAA,EAAAA,EAAA,KAAA,EAAA,EAAA,MACF,GA7BYA,GAAAC,EAAA,QAAAA,EAAA,MAAK,CAAA,EAAA,EA+BjB,IAAYC,IAAZ,SAAYA,EAAI,CACdA,EAAAA,EAAA,KAAA,CAAA,EAAA,OACAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,SAAA,CAAA,EAAA,UACF,GAJYA,GAAAD,EAAA,OAAAA,EAAA,KAAI,CAAA,EAAA,EAMhB,IAAYE,IAAZ,SAAYA,EAAK,CACfA,EAAAA,EAAA,sBAAA,CAAA,EAAA,wBACAA,EAAAA,EAAA,iBAAA,CAAA,EAAA,mBACAA,EAAAA,EAAA,mBAAA,CAAA,EAAA,qBACAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,QAAA,EAAA,EAAA,UACAA,EAAAA,EAAA,eAAA,EAAA,EAAA,iBACAA,EAAAA,EAAA,SAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,SAAA,GAAA,EAAA,WAEAA,EAAAA,EAAA,kBAAA,GAAA,EAAA,mBACF,GAXYA,GAAAF,EAAA,QAAAA,EAAA,MAAK,CAAA,EAAA,EAajB,IAAYG,IAAZ,SAAYA,EAAa,CACvBA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,eAAA,CAAA,EAAA,iBACAA,EAAAA,EAAA,WAAA,CAAA,EAAA,YACF,GAJYA,GAAAH,EAAA,gBAAAA,EAAA,cAAa,CAAA,EAAA,EAMzB,IAAYI,GAAZ,SAAYA,EAAO,CACjBA,EAAAA,EAAA,OAAA,CAAA,EAAA,SACAA,EAAAA,EAAA,IAAA,CAAA,EAAA,MACAA,EAAAA,EAAA,KAAA,CAAA,EAAA,OACAA,EAAAA,EAAA,KAAA,CAAA,EAAA,OACAA,EAAAA,EAAA,IAAA,CAAA,EAAA,MAEAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,MAAA,CAAA,EAAA,QAEAA,EAAAA,EAAA,KAAA,CAAA,EAAA,OACAA,EAAAA,EAAA,KAAA,CAAA,EAAA,OACAA,EAAAA,EAAA,MAAA,EAAA,EAAA,QACAA,EAAAA,EAAA,KAAA,EAAA,EAAA,OACAA,EAAAA,EAAA,SAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,UAAA,EAAA,EAAA,YACAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SACAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SACAA,EAAAA,EAAA,KAAA,EAAA,EAAA,OACAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SACAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SACAA,EAAAA,EAAA,IAAA,EAAA,EAAA,MAEAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SACAA,EAAAA,EAAA,WAAA,EAAA,EAAA,aACAA,EAAAA,EAAA,SAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,MAAA,EAAA,EAAA,QAEAA,EAAAA,EAAA,UAAA,EAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SACAA,EAAAA,EAAA,UAAA,EAAA,EAAA,YACAA,EAAAA,EAAA,YAAA,EAAA,EAAA,cAEAA,EAAAA,EAAA,MAAA,EAAA,EAAA,QACAA,EAAAA,EAAA,MAAA,EAAA,EAAA,QAEAA,EAAAA,EAAA,WAAA,EAAA,EAAA,aAEAA,EAAAA,EAAA,KAAA,EAAA,EAAA,OACAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SAEAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SAEAA,EAAAA,EAAA,IAAA,EAAA,EAAA,MAEAA,EAAAA,EAAA,SAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,SAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,MAAA,EAAA,EAAA,QACAA,EAAAA,EAAA,KAAA,EAAA,EAAA,OACAA,EAAAA,EAAA,MAAA,EAAA,EAAA,QACAA,EAAAA,EAAA,SAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,cAAA,EAAA,EAAA,gBACAA,EAAAA,EAAA,cAAA,EAAA,EAAA,gBACAA,EAAAA,EAAA,SAAA,EAAA,EAAA,WACAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SAEAA,EAAAA,EAAA,MAAA,EAAA,EAAA,OACF,GA1DYA,EAAAJ,EAAA,UAAAA,EAAA,QAAO,CAAA,EAAA,EA4DNA,EAAA,aAAe,CAC1BI,EAAQ,OACRA,EAAQ,IACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,IACRA,EAAQ,QACRA,EAAQ,QACRA,EAAQ,MACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,MACRA,EAAQ,KACRA,EAAQ,SACRA,EAAQ,UACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,KACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,IACRA,EAAQ,OACRA,EAAQ,WACRA,EAAQ,SACRA,EAAQ,MACRA,EAAQ,UAAU,EAClBA,EAAQ,OACRA,EAAQ,UACRA,EAAQ,YACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,WACRA,EAAQ,KACRA,EAAQ,OACRA,EAAQ,IAGRA,EAAQ,QAGGJ,EAAA,YAAc,CACzBI,EAAQ,QAGGJ,EAAA,aAAe,CAC1BI,EAAQ,QACRA,EAAQ,SACRA,EAAQ,SACRA,EAAQ,MACRA,EAAQ,KACRA,EAAQ,MACRA,EAAQ,SACRA,EAAQ,cACRA,EAAQ,cACRA,EAAQ,SACRA,EAAQ,OACRA,EAAQ,MAGRA,EAAQ,IACRA,EAAQ,MAGGJ,EAAA,WAAaF,GAAA,UAAUM,CAAO,EAC9BJ,EAAA,aAAyB,CAAA,EAEtC,OAAO,KAAKA,EAAA,UAAU,EAAE,QAASK,GAAO,CAClC,KAAK,KAAKA,CAAG,IACfL,EAAA,aAAaK,CAAG,EAAIL,EAAA,WAAWK,CAAG,EAEtC,CAAC,EAED,IAAYC,IAAZ,SAAYA,EAAM,CAChBA,EAAAA,EAAA,KAAA,CAAA,EAAA,OACAA,EAAAA,EAAA,aAAA,CAAA,EAAA,eACAA,EAAAA,EAAA,OAAA,CAAA,EAAA,QACF,GAJYA,GAAAN,EAAA,SAAAA,EAAA,OAAM,CAAA,EAAA,EAULA,EAAA,MAAkB,CAAA,EAE/B,QAASO,EAAI,GAAmBA,GAAK,GAAmBA,IAEtDP,EAAA,MAAM,KAAK,OAAO,aAAaO,CAAC,CAAC,EAGjCP,EAAA,MAAM,KAAK,OAAO,aAAaO,EAAI,EAAI,CAAC,EAG7BP,EAAA,QAAU,CACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBA,EAAA,QAAU,CACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3B,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAC3C,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,IAGhCA,EAAA,IAAgB,CAC3B,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGlCA,EAAA,SAAqBA,EAAA,MAAM,OAAOA,EAAA,GAAG,EACrCA,EAAA,KAAiB,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAM,IAAK,GAAG,EAC/DA,EAAA,eAA2BA,EAAA,SACrC,OAAOA,EAAA,IAAI,EACX,OAAO,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAE,EAGvCA,EAAA,gBAA6B,CACxC,IAAK,IAAK,IAAK,IAAK,IAAK,IACzB,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnC,IAAK,IAAK,IAAK,IAAK,IACpB,IAAK,IAAK,KAAM,IAAK,IAAK,IAC1B,IACA,IAAK,IAAK,IAAK,KACF,OAAOA,EAAA,QAAQ,EAEjBA,EAAA,SAAqBA,EAAA,gBAC/B,OAAQ,CAAE,IAAM,IAAI,CAAe,EAGtC,QAASO,EAAI,IAAMA,GAAK,IAAMA,IAC5BP,EAAA,SAAS,KAAKO,CAAC,EAGJP,EAAA,IAAgBA,EAAA,IAAI,OAC/B,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAE,EASnDA,EAAA,aAA0B,CACrC,IAAK,IAAK,IAAK,IAAK,IAAK,IACzB,IAAK,IAAK,IAAK,IACf,IAAK,IAAK,IACV,IAAK,KACQ,OAAOA,EAAA,QAAQ,EAEjBA,EAAA,MAAkBA,EAAA,aAAa,OAAO,CAAE,GAAG,CAAE,EAM7CA,EAAA,aAAyB,CAAE,GAAI,EAC5C,QAASO,EAAI,GAAIA,GAAK,IAAKA,IACrBA,IAAM,KACRP,EAAA,aAAa,KAAKO,CAAC,EAKVP,EAAA,uBACXA,EAAA,aAAa,OAAQQ,GAAuBA,IAAM,EAAE,EAEzCR,EAAA,MAAQA,EAAA,QACRA,EAAA,MAAQA,EAAA,MAErB,IAAYS,IAAZ,SAAYA,EAAY,CACtBA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,WAAA,CAAA,EAAA,aACAA,EAAAA,EAAA,eAAA,CAAA,EAAA,iBACAA,EAAAA,EAAA,kBAAA,CAAA,EAAA,oBACAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UAEAA,EAAAA,EAAA,sBAAA,CAAA,EAAA,wBACAA,EAAAA,EAAA,iBAAA,CAAA,EAAA,mBACAA,EAAAA,EAAA,mBAAA,CAAA,EAAA,qBACAA,EAAAA,EAAA,0BAAA,CAAA,EAAA,2BACF,GAXYA,GAAAT,EAAA,eAAAA,EAAA,aAAY,CAAA,EAAA,EAaXA,EAAA,gBAAkB,CAC7B,WAAcS,GAAa,WAC3B,iBAAkBA,GAAa,eAC/B,mBAAoBA,GAAa,WACjC,oBAAqBA,GAAa,kBAClC,QAAWA,GAAa,WCrT1B,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAO,IACP,CAAE,UAAAC,EAAU,EAAI,KAChBC,GAAS,QAAQ,QAAQ,EACzB,CAAE,qBAAAC,EAAqB,EAAI,KAC3BC,GAAK,QAAQ,QAAQ,EAErBC,GAA0B,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAEvDC,GAAQ,OAAO,MAAM,EAErBC,GAAN,KAAwB,CACtB,YAAaC,EAAM,CACjB,KAAKF,EAAK,EAAIE,EACd,KAAKP,EAAS,EAAI,EACpB,CAEA,OAAS,OAAO,aAAa,GAAK,CAChCC,GAAO,CAAC,KAAKD,EAAS,EAAG,WAAW,EACpC,KAAKA,EAAS,EAAI,GAClB,MAAQ,KAAKK,EAAK,CACpB,CACF,EAEMG,GAAN,KAAsB,CACpB,YAAaC,EAAUC,EAAiBC,EAAMC,EAAS,CACrD,GAAIF,GAAmB,OAAS,CAAC,OAAO,UAAUA,CAAe,GAAKA,EAAkB,GACtF,MAAM,IAAIR,GAAqB,2CAA2C,EAG5EH,GAAK,gBAAgBa,EAASD,EAAK,OAAQA,EAAK,OAAO,EAEvD,KAAK,SAAWF,EAChB,KAAK,SAAW,KAChB,KAAK,MAAQ,KACb,KAAK,KAAO,CAAE,GAAGE,EAAM,gBAAiB,CAAE,EAC1C,KAAK,gBAAkBD,EACvB,KAAK,QAAUE,EACf,KAAK,QAAU,CAAC,EAEZb,GAAK,SAAS,KAAK,KAAK,IAAI,GAI1BA,GAAK,WAAW,KAAK,KAAK,IAAI,IAAM,GACtC,KAAK,KAAK,KACP,GAAG,OAAQ,UAAY,CACtBE,GAAO,EAAK,CACd,CAAC,EAGD,OAAO,KAAK,KAAK,KAAK,iBAAoB,YAC5C,KAAK,KAAK,KAAKD,EAAS,EAAI,GAC5BG,GAAG,UAAU,GAAG,KAAK,KAAK,KAAK,KAAM,OAAQ,UAAY,CACvD,KAAKH,EAAS,EAAI,EACpB,CAAC,IAEM,KAAK,KAAK,MAAQ,OAAO,KAAK,KAAK,KAAK,QAAW,WAI5D,KAAK,KAAK,KAAO,IAAIM,GAAkB,KAAK,KAAK,IAAI,EAErD,KAAK,KAAK,MACV,OAAO,KAAK,KAAK,MAAS,UAC1B,CAAC,YAAY,OAAO,KAAK,KAAK,IAAI,GAClCP,GAAK,WAAW,KAAK,KAAK,IAAI,IAI9B,KAAK,KAAK,KAAO,IAAIO,GAAkB,KAAK,KAAK,IAAI,EAEzD,CAEA,UAAWO,EAAO,CAChB,KAAK,MAAQA,EACb,KAAK,QAAQ,UAAUA,EAAO,CAAE,QAAS,KAAK,OAAQ,CAAC,CACzD,CAEA,UAAWC,EAAYC,EAASC,EAAQ,CACtC,KAAK,QAAQ,UAAUF,EAAYC,EAASC,CAAM,CACpD,CAEA,QAASC,EAAO,CACd,KAAK,QAAQ,QAAQA,CAAK,CAC5B,CAEA,UAAWH,EAAYC,EAASG,EAAQC,EAAY,CASlD,GARA,KAAK,SAAW,KAAK,QAAQ,QAAU,KAAK,iBAAmBpB,GAAK,YAAY,KAAK,KAAK,IAAI,EAC1F,KACAqB,GAAcN,EAAYC,CAAO,EAEjC,KAAK,KAAK,QACZ,KAAK,QAAQ,KAAK,IAAI,IAAI,KAAK,KAAK,KAAM,KAAK,KAAK,MAAM,CAAC,EAGzD,CAAC,KAAK,SACR,OAAO,KAAK,QAAQ,UAAUD,EAAYC,EAASG,EAAQC,CAAU,EAGvE,GAAM,CAAE,OAAAE,EAAQ,SAAAC,EAAU,OAAAC,CAAO,EAAIxB,GAAK,SAAS,IAAI,IAAI,KAAK,SAAU,KAAK,KAAK,QAAU,IAAI,IAAI,KAAK,KAAK,KAAM,KAAK,KAAK,MAAM,CAAC,CAAC,EAClIyB,EAAOD,EAAS,GAAGD,CAAQ,GAAGC,CAAM,GAAKD,EAK/C,KAAK,KAAK,QAAUG,GAAoB,KAAK,KAAK,QAASX,IAAe,IAAK,KAAK,KAAK,SAAWO,CAAM,EAC1G,KAAK,KAAK,KAAOG,EACjB,KAAK,KAAK,OAASH,EACnB,KAAK,KAAK,gBAAkB,EAC5B,KAAK,KAAK,MAAQ,KAIdP,IAAe,KAAO,KAAK,KAAK,SAAW,SAC7C,KAAK,KAAK,OAAS,MACnB,KAAK,KAAK,KAAO,KAErB,CAEA,OAAQY,EAAO,CACb,GAAI,MAAK,SAmBP,OAAO,KAAK,QAAQ,OAAOA,CAAK,CAEpC,CAEA,WAAYC,EAAU,CAChB,KAAK,UAUP,KAAK,SAAW,KAChB,KAAK,MAAQ,KAEb,KAAK,SAAS,KAAK,KAAM,IAAI,GAE7B,KAAK,QAAQ,WAAWA,CAAQ,CAEpC,CAEA,WAAYD,EAAO,CACb,KAAK,QAAQ,YACf,KAAK,QAAQ,WAAWA,CAAK,CAEjC,CACF,EAEA,SAASN,GAAeN,EAAYC,EAAS,CAC3C,GAAIX,GAAwB,QAAQU,CAAU,IAAM,GAClD,OAAO,KAGT,QAASc,EAAI,EAAGA,EAAIb,EAAQ,OAAQa,GAAK,EACvC,GAAIb,EAAQa,CAAC,EAAE,SAAS,EAAE,YAAY,IAAM,WAC1C,OAAOb,EAAQa,EAAI,CAAC,CAG1B,CAGA,SAASC,GAAoBC,EAAQC,EAAeC,EAAe,CACjE,OACGF,EAAO,SAAW,GAAKA,EAAO,SAAS,EAAE,YAAY,IAAM,QAC3DC,GAAiBD,EAAO,SAAS,EAAE,YAAY,EAAE,QAAQ,UAAU,IAAM,GACzEE,GAAiBF,EAAO,SAAW,IAAMA,EAAO,SAAS,EAAE,YAAY,IAAM,iBAC7EE,GAAiBF,EAAO,SAAW,GAAKA,EAAO,SAAS,EAAE,YAAY,IAAM,QAEjF,CAGA,SAASL,GAAqBV,EAASgB,EAAeC,EAAe,CACnE,IAAMC,EAAM,CAAC,EACb,GAAI,MAAM,QAAQlB,CAAO,EACvB,QAASa,EAAI,EAAGA,EAAIb,EAAQ,OAAQa,GAAK,EAClCC,GAAmBd,EAAQa,CAAC,EAAGG,EAAeC,CAAa,GAC9DC,EAAI,KAAKlB,EAAQa,CAAC,EAAGb,EAAQa,EAAI,CAAC,CAAC,UAG9Bb,GAAW,OAAOA,GAAY,SACvC,QAAWmB,KAAO,OAAO,KAAKnB,CAAO,EAC9Bc,GAAmBK,EAAKH,EAAeC,CAAa,GACvDC,EAAI,KAAKC,EAAKnB,EAAQmB,CAAG,CAAC,OAI9BjC,GAAOc,GAAW,KAAM,uCAAuC,EAEjE,OAAOkB,CACT,CAEAnC,GAAO,QAAUU,KCvNjB,IAAA2B,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAkB,KAExB,SAASC,GAA2B,CAAE,gBAAiBC,CAAuB,EAAG,CAC/E,OAAQC,GACC,SAAoBC,EAAMC,EAAS,CACxC,GAAM,CAAE,gBAAAC,EAAkBJ,CAAuB,EAAIE,EAErD,GAAI,CAACE,EACH,OAAOH,EAASC,EAAMC,CAAO,EAG/B,IAAME,EAAkB,IAAIP,GAAgBG,EAAUG,EAAiBF,EAAMC,CAAO,EACpF,OAAAD,EAAO,CAAE,GAAGA,EAAM,gBAAiB,CAAE,EAC9BD,EAASC,EAAMG,CAAe,CACvC,CAEJ,CAEAR,GAAO,QAAUE,KCpBjB,IAAAO,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAO,QAAU,yuwECAjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAO,QAAU,qtwECAjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAMA,IAAMC,EAAS,QAAQ,QAAQ,EACzBC,GAAM,QAAQ,KAAK,EACnBC,EAAO,IACPC,GAAS,KACTC,GAAU,KACVC,GAAiB,KACjB,CACJ,kCAAAC,GACA,mCAAAC,GACA,qBAAAC,GACA,oBAAAC,GACA,oBAAAC,GACA,qBAAAC,GACA,YAAAC,GACA,mBAAAC,GACA,iBAAAC,GACA,gBAAAC,GACA,6BAAAC,GACA,qBAAAC,EACF,EAAI,KACEC,GAAiB,KACjB,CACJ,KAAAC,GACA,OAAAC,GACA,YAAAC,GACA,QAAAC,GACA,MAAAC,GACA,QAAAC,GACA,SAAAC,GACA,UAAAC,GACA,UAAAC,GACA,SAAAC,GACA,SAAAC,GACA,MAAAC,GACA,SAAAC,GACA,OAAAC,GACA,WAAAC,GACA,YAAAC,GACA,WAAAC,GACA,OAAAC,GACA,yBAAAC,GACA,YAAAC,GACA,YAAAC,GACA,YAAAC,GACA,OAAAC,GACA,YAAAC,GACA,QAAAC,GACA,uBAAAC,GACA,gBAAAC,GACA,qBAAAC,GACA,2BAAAC,GACA,gBAAAC,GACA,aAAAC,GACA,qBAAAC,GACA,WAAAC,GACA,iBAAAC,GACA,aAAAC,GACA,SAAAC,GACA,OAAAC,GACA,SAAAC,GACA,UAAAC,GACA,cAAAC,GACA,cAAAC,GACA,iBAAAC,EACF,EAAI,KACEC,GAAa,OAAO,OAAO,OAAO,EAElCC,GAAiB,OAAO,gBAAgB,EAExCC,GAAW,CAAC,EAElB,GAAI,CACF,IAAMC,EAAqB,QAAQ,qBAAqB,EACxDD,GAAS,YAAcC,EAAmB,QAAQ,2BAA2B,EAC7ED,GAAS,cAAgBC,EAAmB,QAAQ,6BAA6B,EACjFD,GAAS,aAAeC,EAAmB,QAAQ,4BAA4B,EAC/ED,GAAS,UAAYC,EAAmB,QAAQ,yBAAyB,CAC3E,MAAQ,CACND,GAAS,YAAc,CAAE,eAAgB,EAAM,EAC/CA,GAAS,cAAgB,CAAE,eAAgB,EAAM,EACjDA,GAAS,aAAe,CAAE,eAAgB,EAAM,EAChDA,GAAS,UAAY,CAAE,eAAgB,EAAM,CAC/C,CAKA,IAAME,GAAN,cAAqB5D,EAAe,CAMlC,YAAa6D,EAAK,CAChB,aAAAC,EACA,cAAAC,EACA,eAAAC,EACA,cAAAC,EACA,eAAAC,EACA,eAAAC,EACA,YAAAC,EACA,YAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,oBAAAC,EACA,oBAAAC,EACA,0BAAAC,EACA,WAAAC,EACA,WAAAC,EACA,IAAAC,EACA,oBAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,QAAAC,EACA,qBAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,iBAAAC,GACA,+BAAAC,EACF,EAAI,CAAC,EAAG,CAGN,GAFA,MAAM,EAEFhB,IAAc,OAChB,MAAM,IAAInE,GAAqB,iDAAiD,EAGlF,GAAI8D,IAAkB,OACpB,MAAM,IAAI9D,GAAqB,qEAAqE,EAGtG,GAAI+D,IAAmB,OACrB,MAAM,IAAI/D,GAAqB,sEAAsE,EAGvG,GAAIkE,IAAgB,OAClB,MAAM,IAAIlE,GAAqB,uDAAuD,EAGxF,GAAIqE,IAAwB,OAC1B,MAAM,IAAIrE,GAAqB,kEAAkE,EAGnG,GAAI4D,GAAiB,MAAQ,CAAC,OAAO,SAASA,CAAa,EACzD,MAAM,IAAI5D,GAAqB,uBAAuB,EAGxD,GAAIwE,GAAc,MAAQ,OAAOA,GAAe,SAC9C,MAAM,IAAIxE,GAAqB,oBAAoB,EAGrD,GAAIgE,GAAkB,OAAS,CAAC,OAAO,SAASA,CAAc,GAAKA,EAAiB,GAClF,MAAM,IAAIhE,GAAqB,wBAAwB,EAGzD,GAAIoE,GAAoB,OAAS,CAAC,OAAO,SAASA,CAAgB,GAAKA,GAAoB,GACzF,MAAM,IAAIpE,GAAqB,0BAA0B,EAG3D,GAAIsE,GAAuB,OAAS,CAAC,OAAO,SAASA,CAAmB,GAAKA,GAAuB,GAClG,MAAM,IAAItE,GAAqB,6BAA6B,EAG9D,GAAIuE,GAA6B,MAAQ,CAAC,OAAO,SAASA,CAAyB,EACjF,MAAM,IAAIvE,GAAqB,mCAAmC,EAGpE,GAAI6D,GAAkB,OAAS,CAAC,OAAO,UAAUA,CAAc,GAAKA,EAAiB,GACnF,MAAM,IAAI7D,GAAqB,mDAAmD,EAGpF,GAAIiE,GAAe,OAAS,CAAC,OAAO,UAAUA,CAAW,GAAKA,EAAc,GAC1E,MAAM,IAAIjE,GAAqB,gDAAgD,EAGjF,GAAI8E,GAAW,MAAQ,OAAOA,GAAY,YAAc,OAAOA,GAAY,SACzE,MAAM,IAAI9E,GAAqB,yCAAyC,EAG1E,GAAI6E,GAAmB,OAAS,CAAC,OAAO,UAAUA,CAAe,GAAKA,EAAkB,GACtF,MAAM,IAAI7E,GAAqB,2CAA2C,EAG5E,GAAI+E,GAAwB,OAAS,CAAC,OAAO,UAAUA,CAAoB,GAAKA,EAAuB,GACrG,MAAM,IAAI/E,GAAqB,gDAAgD,EAGjF,GAAIgF,GAAgB,OAAS,OAAOA,GAAiB,UAAYvF,GAAI,KAAKuF,CAAY,IAAM,GAC1F,MAAM,IAAIhF,GAAqB,8CAA8C,EAG/E,GAAIiF,GAAmB,OAAS,CAAC,OAAO,UAAUA,CAAe,GAAKA,EAAkB,IACtF,MAAM,IAAIjF,GAAqB,2CAA2C,EAG5E,GACEmF,IAAkC,OACjC,CAAC,OAAO,UAAUA,EAA8B,GAAKA,GAAiC,IAEvF,MAAM,IAAInF,GAAqB,0DAA0D,EAGvF,OAAO8E,GAAY,aACrBA,EAAUpE,GAAe,CACvB,GAAGgE,EACH,kBAAAE,EACA,WAAAJ,EACA,QAASR,EACT,GAAItE,EAAK,yBAA2BwF,GAAmB,CAAE,iBAAAA,GAAkB,+BAAAC,EAA+B,EAAI,OAC9G,GAAGL,CACL,CAAC,GAGH,KAAK5B,EAAa,EAAIS,GAAgBA,EAAa,QAAU,MAAM,QAAQA,EAAa,MAAM,EAC1FA,EAAa,OACb,CAACyB,GAA0B,CAAE,gBAAAP,CAAgB,CAAC,CAAC,EACnD,KAAKlE,EAAI,EAAIjB,EAAK,YAAYgE,CAAG,EACjC,KAAKf,EAAU,EAAImC,EACnB,KAAK3C,EAAO,EAAI,KAChB,KAAKD,EAAW,EAAIuC,GAAkC,EACtD,KAAKpC,EAAe,EAAIuB,GAAiB,MACzC,KAAK/B,EAAwB,EAAIuC,GAA2B,IAC5D,KAAK9B,EAAoB,EAAIgC,GAA8B,IAC3D,KAAK/B,EAA0B,EAAIgC,GAAoC,IACvE,KAAKnC,EAAsB,EAAI,KAAKP,EAAwB,EAC5D,KAAKhB,EAAW,EAAI,KACpB,KAAKsC,EAAa,EAAI6B,GAAsC,KAC5D,KAAK7D,EAAS,EAAI,EAClB,KAAKQ,EAAU,EAAI,EACnB,KAAKG,EAAW,EAAI,SAAS,KAAKnB,EAAI,EAAE,QAAQ,GAAG,KAAKA,EAAI,EAAE,KAAO,IAAI,KAAKA,EAAI,EAAE,IAAI,GAAK,EAAE;AAAA,EAC/F,KAAK8B,EAAY,EAAIwB,GAAoC,IACzD,KAAKzB,EAAe,EAAIqB,GAA0C,IAClE,KAAKnB,EAAoB,EAAIiC,GAA8B,GAC3D,KAAK/B,EAAgB,EAAIiC,EACzB,KAAKhC,EAAY,EAAIkC,EACrB,KAAKzB,EAAc,EAAI,KACvB,KAAKF,EAAgB,EAAI6B,EAAkB,GAAKA,EAAkB,GAWlE,KAAKzD,EAAM,EAAI,CAAC,EAChB,KAAKQ,EAAW,EAAI,EACpB,KAAKD,EAAW,EAAI,CACtB,CAEA,IAAI,YAAc,CAChB,OAAO,KAAKG,EAAW,CACzB,CAEA,IAAI,WAAYmD,EAAO,CACrB,KAAKnD,EAAW,EAAImD,EACpBC,GAAO,KAAM,EAAI,CACnB,CAEA,IAAKjE,EAAQ,GAAK,CAChB,OAAO,KAAKG,EAAM,EAAE,OAAS,KAAKO,EAAW,CAC/C,CAEA,IAAKX,EAAQ,GAAK,CAChB,OAAO,KAAKW,EAAW,EAAI,KAAKC,EAAW,CAC7C,CAEA,IAAKV,EAAK,GAAK,CACb,OAAO,KAAKE,EAAM,EAAE,OAAS,KAAKQ,EAAW,CAC/C,CAEA,IAAKP,EAAU,GAAK,CAClB,MAAO,CAAC,CAAC,KAAKU,EAAO,GAAK,CAAC,KAAKT,EAAW,GAAK,CAAC,KAAKS,EAAO,EAAE,SACjE,CAEA,IAAKpB,EAAK,GAAK,CACb,IAAMwE,EAAS,KAAKpD,EAAO,EAC3B,OACGoD,IAAWA,EAAO3E,EAAM,GAAK2E,EAAOhE,EAAQ,GAAKgE,EAAOrE,EAAS,IACjE,KAAKI,EAAK,IAAM,KAAKY,EAAW,GAAK,IACtC,KAAKb,EAAQ,EAAI,CAErB,CAGA,CAACJ,EAAQ,EAAGuE,EAAI,CACdV,GAAQ,IAAI,EACZ,KAAK,KAAK,UAAWU,CAAE,CACzB,CAEA,CAACvC,EAAS,EAAGwC,EAAMC,EAAS,CAC1B,IAAMC,EAASF,EAAK,QAAU,KAAK9E,EAAI,EAAE,OAEnCiF,EAAU,IAAIhG,GAAQ+F,EAAQF,EAAMC,CAAO,EAEjD,YAAKlE,EAAM,EAAE,KAAKoE,CAAO,EACrB,KAAKzE,EAAS,IAEPzB,EAAK,WAAWkG,EAAQ,IAAI,GAAK,MAAQlG,EAAK,WAAWkG,EAAQ,IAAI,GAE9E,KAAKzE,EAAS,EAAI,EAClB,QAAQ,SAASmE,GAAQ,IAAI,GAE7BA,GAAO,KAAM,EAAI,GAGf,KAAKnE,EAAS,GAAK,KAAKQ,EAAU,IAAM,GAAK,KAAKZ,EAAK,IACzD,KAAKY,EAAU,EAAI,GAGd,KAAKA,EAAU,EAAI,CAC5B,CAEA,MAAOoB,EAAM,GAAK,CAChB,OAAO,IAAI,QAAS8C,GAAY,CACzB,KAAKvE,EAAK,EAGb,KAAKgC,EAAc,EAAIuC,EAFvBA,EAAQ,IAAI,CAIhB,CAAC,CACH,CAEA,MAAO7C,EAAQ,EAAG8C,EAAK,CACrB,OAAO,IAAI,QAASD,GAAY,CAC9B,IAAME,EAAW,KAAKvE,EAAM,EAAE,OAAO,KAAKO,EAAW,CAAC,EACtD,QAAS,EAAI,EAAG,EAAIgE,EAAS,OAAQ,IAAK,CACxC,IAAMH,EAAUG,EAAS,CAAC,EAC1BC,GAAa,KAAMJ,EAASE,CAAG,CACjC,CAEA,IAAMG,EAAW,IAAM,CACjB,KAAK3C,EAAc,IAErB,KAAKA,EAAc,EAAE,EACrB,KAAKA,EAAc,EAAI,MAEzBuC,EAAQ,CACV,EAEK,KAAK1D,EAAO,EAGfzC,EAAK,QAAQ,KAAKyC,EAAO,EAAE,GAAG,QAAS8D,CAAQ,EAAGH,CAAG,EAFrD,eAAeG,CAAQ,EAKzBX,GAAO,IAAI,CACb,CAAC,CACH,CACF,EAEMY,GAAY,KACZd,GAA4B,KAC5Be,GAAY,OAAO,MAAM,CAAC,EAEhC,eAAeC,IAAc,CAC3B,IAAMC,EAAiB,QAAQ,IAAI,eAAiB,KAAqC,OAErFC,EACJ,GAAI,CACFA,EAAM,MAAM,YAAY,QAAQ,OAAO,KAAK,KAAyC,QAAQ,CAAC,CAChG,MAAY,CAOVA,EAAM,MAAM,YAAY,QAAQ,OAAO,KAAKD,GAAkB,KAAoC,QAAQ,CAAC,CAC7G,CAEA,OAAO,MAAM,YAAY,YAAYC,EAAK,CACxC,IAAK,CAGH,YAAa,CAACC,EAAGC,EAAIC,IAEZ,EAET,eAAgB,CAACF,EAAGC,EAAIC,IAAQ,CAC9BjH,EAAO,YAAYkH,GAAc,IAAKH,CAAC,EACvC,IAAMI,EAAQH,EAAKI,GAAmBC,GAAiB,WACvD,OAAOH,GAAc,SAAS,IAAIrD,GAAWwD,GAAiB,OAAQF,EAAOF,CAAG,CAAC,GAAK,CACxF,EACA,sBAAwBF,IACtB/G,EAAO,YAAYkH,GAAc,IAAKH,CAAC,EAChCG,GAAc,eAAe,GAAK,GAE3C,qBAAsB,CAACH,EAAGC,EAAIC,IAAQ,CACpCjH,EAAO,YAAYkH,GAAc,IAAKH,CAAC,EACvC,IAAMI,EAAQH,EAAKI,GAAmBC,GAAiB,WACvD,OAAOH,GAAc,cAAc,IAAIrD,GAAWwD,GAAiB,OAAQF,EAAOF,CAAG,CAAC,GAAK,CAC7F,EACA,qBAAsB,CAACF,EAAGC,EAAIC,IAAQ,CACpCjH,EAAO,YAAYkH,GAAc,IAAKH,CAAC,EACvC,IAAMI,EAAQH,EAAKI,GAAmBC,GAAiB,WACvD,OAAOH,GAAc,cAAc,IAAIrD,GAAWwD,GAAiB,OAAQF,EAAOF,CAAG,CAAC,GAAK,CAC7F,EACA,yBAA0B,CAACF,EAAGO,EAAYC,EAASC,KACjDxH,EAAO,YAAYkH,GAAc,IAAKH,CAAC,EAChCG,GAAc,kBAAkBI,EAAY,EAAQC,EAAU,EAAQC,CAAgB,GAAK,GAEpG,aAAc,CAACT,EAAGC,EAAIC,IAAQ,CAC5BjH,EAAO,YAAYkH,GAAc,IAAKH,CAAC,EACvC,IAAMI,EAAQH,EAAKI,GAAmBC,GAAiB,WACvD,OAAOH,GAAc,OAAO,IAAIrD,GAAWwD,GAAiB,OAAQF,EAAOF,CAAG,CAAC,GAAK,CACtF,EACA,yBAA2BF,IACzB/G,EAAO,YAAYkH,GAAc,IAAKH,CAAC,EAChCG,GAAc,kBAAkB,GAAK,EAIhD,CACF,CAAC,CACH,CAEA,IAAIO,GAAiB,KACjBC,GAAgBd,GAAW,EAC/Bc,GAAc,MAAM,EAEpB,IAAIR,GAAgB,KAChBG,GAAmB,KACnBM,GAAoB,EACpBP,GAAmB,KAEjBQ,GAAkB,EAClBC,GAAe,EACfC,GAAe,EAEfC,GAAN,KAAa,CACX,YAAaC,EAAQjC,EAAQ,CAAE,QAAAjG,CAAQ,EAAG,CACxCE,EAAO,OAAO,SAASgI,EAAOnF,EAAe,CAAC,GAAKmF,EAAOnF,EAAe,EAAI,CAAC,EAE9E,KAAK,OAAS/C,EACd,KAAK,IAAM,KAAK,OAAO,aAAa4G,GAAU,KAAK,QAAQ,EAC3D,KAAK,OAASsB,EACd,KAAK,OAASjC,EACd,KAAK,QAAU,KACf,KAAK,aAAe,KACpB,KAAK,YAAc,KACnB,KAAK,WAAa,KAClB,KAAK,WAAa,GAClB,KAAK,QAAU,GACf,KAAK,QAAU,CAAC,EAChB,KAAK,YAAc,EACnB,KAAK,eAAiBiC,EAAOnF,EAAe,EAC5C,KAAK,gBAAkB,GACvB,KAAK,OAAS,GACd,KAAK,OAAS,KAAK,OAAO,KAAK,IAAI,EAEnC,KAAK,UAAY,EAEjB,KAAK,UAAY,GACjB,KAAK,cAAgB,GACrB,KAAK,WAAa,GAClB,KAAK,gBAAkBmF,EAAOpE,EAAgB,CAChD,CAEA,WAAYiC,EAAOoC,EAAM,CACvB,KAAK,YAAcA,EACfpC,IAAU,KAAK,cACjB1F,GAAO,aAAa,KAAK,OAAO,EAC5B0F,GACF,KAAK,QAAU1F,GAAO,WAAW+H,GAAiBrC,EAAO,IAAI,EAEzD,KAAK,QAAQ,OACf,KAAK,QAAQ,MAAM,GAGrB,KAAK,QAAU,KAEjB,KAAK,aAAeA,GACX,KAAK,SAEV,KAAK,QAAQ,SACf,KAAK,QAAQ,QAAQ,CAG3B,CAEA,QAAU,CACJ,KAAK,OAAO,WAAa,CAAC,KAAK,SAInC7F,EAAO,KAAK,KAAO,IAAI,EACvBA,EAAOkH,IAAiB,IAAI,EAE5B,KAAK,OAAO,cAAc,KAAK,GAAG,EAElClH,EAAO,KAAK,cAAgB6H,EAAY,EACpC,KAAK,SAEH,KAAK,QAAQ,SACf,KAAK,QAAQ,QAAQ,EAIzB,KAAK,OAAS,GACd,KAAK,QAAQ,KAAK,OAAO,KAAK,GAAKlB,EAAS,EAC5C,KAAK,SAAS,EAChB,CAEA,UAAY,CACV,KAAO,CAAC,KAAK,QAAU,KAAK,KAAK,CAC/B,IAAMwB,EAAQ,KAAK,OAAO,KAAK,EAC/B,GAAIA,IAAU,KACZ,MAEF,KAAK,QAAQA,CAAK,CACpB,CACF,CAEA,QAASC,EAAM,CACbpI,EAAO,KAAK,KAAO,IAAI,EACvBA,EAAOkH,IAAiB,IAAI,EAC5BlH,EAAO,CAAC,KAAK,MAAM,EAEnB,GAAM,CAAE,OAAA+F,EAAQ,OAAAsC,CAAO,EAAI,KAEvBD,EAAK,OAAST,KACZP,IACFiB,EAAO,KAAKjB,EAAgB,EAE9BO,GAAoB,KAAK,KAAKS,EAAK,OAAS,IAAI,EAAI,KACpDhB,GAAmBiB,EAAO,OAAOV,EAAiB,GAGpD,IAAI,WAAWU,EAAO,OAAO,OAAQjB,GAAkBO,EAAiB,EAAE,IAAIS,CAAI,EAMlF,GAAI,CACF,IAAIE,EAEJ,GAAI,CACFjB,GAAmBe,EACnBlB,GAAgB,KAChBoB,EAAMD,EAAO,eAAe,KAAK,IAAKjB,GAAkBgB,EAAK,MAAM,CAErE,OAAS9B,EAAK,CAEZ,MAAMA,CACR,QAAE,CACAY,GAAgB,KAChBG,GAAmB,IACrB,CAEA,IAAMkB,EAASF,EAAO,qBAAqB,KAAK,GAAG,EAAIjB,GAEvD,GAAIkB,IAAQ5B,GAAU,MAAM,eAC1B,KAAK,UAAU0B,EAAK,MAAMG,CAAM,CAAC,UACxBD,IAAQ5B,GAAU,MAAM,OACjC,KAAK,OAAS,GACdX,EAAO,QAAQqC,EAAK,MAAMG,CAAM,CAAC,UACxBD,IAAQ5B,GAAU,MAAM,GAAI,CACrC,IAAM8B,EAAMH,EAAO,wBAAwB,KAAK,GAAG,EAC/CI,EAAU,GAEd,GAAID,EAAK,CACP,IAAMvB,EAAM,IAAI,WAAWoB,EAAO,OAAO,OAAQG,CAAG,EAAE,QAAQ,CAAC,EAC/DC,EACE,kDACA,OAAO,KAAKJ,EAAO,OAAO,OAAQG,EAAKvB,CAAG,EAAE,SAAS,EACrD,GACJ,CACA,MAAM,IAAIlG,GAAgB0H,EAAS/B,GAAU,MAAM4B,CAAG,EAAGF,EAAK,MAAMG,CAAM,CAAC,CAC7E,CACF,OAASjC,EAAK,CACZpG,EAAK,QAAQ6F,EAAQO,CAAG,CAC1B,CACF,CAEA,SAAW,CACTtG,EAAO,KAAK,KAAO,IAAI,EACvBA,EAAOkH,IAAiB,IAAI,EAE5B,KAAK,OAAO,YAAY,KAAK,GAAG,EAChC,KAAK,IAAM,KAEX/G,GAAO,aAAa,KAAK,OAAO,EAChC,KAAK,QAAU,KACf,KAAK,aAAe,KACpB,KAAK,YAAc,KAEnB,KAAK,OAAS,EAChB,CAEA,SAAUuI,EAAK,CACb,KAAK,WAAaA,EAAI,SAAS,CACjC,CAEA,gBAAkB,CAChB,GAAM,CAAE,OAAA3C,EAAQ,OAAAiC,CAAO,EAAI,KAQ3B,GALIjC,EAAO,WAKP,CADYiC,EAAOhG,EAAM,EAAEgG,EAAOxF,EAAW,CAAC,EAEhD,MAAO,EAEX,CAEA,cAAekG,EAAK,CAClB,IAAMzB,EAAM,KAAK,QAAQ,QAEpBA,EAAM,KAAO,EAChB,KAAK,QAAQ,KAAKyB,CAAG,EAErB,KAAK,QAAQzB,EAAM,CAAC,EAAI,OAAO,OAAO,CAAC,KAAK,QAAQA,EAAM,CAAC,EAAGyB,CAAG,CAAC,EAGpE,KAAK,YAAYA,EAAI,MAAM,CAC7B,CAEA,cAAeA,EAAK,CAClB,IAAIzB,EAAM,KAAK,QAAQ,QAElBA,EAAM,KAAO,GAChB,KAAK,QAAQ,KAAKyB,CAAG,EACrBzB,GAAO,GAEP,KAAK,QAAQA,EAAM,CAAC,EAAI,OAAO,OAAO,CAAC,KAAK,QAAQA,EAAM,CAAC,EAAGyB,CAAG,CAAC,EAGpE,IAAMC,EAAM,KAAK,QAAQ1B,EAAM,CAAC,EAC5B0B,EAAI,SAAW,IAAMA,EAAI,SAAS,EAAE,YAAY,IAAM,aACxD,KAAK,WAAaD,EAAI,SAAS,EACtBC,EAAI,SAAW,IAAMA,EAAI,SAAS,EAAE,YAAY,IAAM,aAC/D,KAAK,YAAcD,EAAI,SAAS,EACvBC,EAAI,SAAW,IAAMA,EAAI,SAAS,EAAE,YAAY,IAAM,mBAC/D,KAAK,eAAiBD,EAAI,SAAS,GAGrC,KAAK,YAAYA,EAAI,MAAM,CAC7B,CAEA,YAAazB,EAAK,CAChB,KAAK,aAAeA,EAChB,KAAK,aAAe,KAAK,gBAC3B/G,EAAK,QAAQ,KAAK,OAAQ,IAAIS,EAAsB,CAExD,CAEA,UAAWiI,EAAM,CACf,GAAM,CAAE,QAAArB,EAAS,OAAAS,EAAQ,OAAAjC,EAAQ,QAAA8C,EAAS,WAAAvB,CAAW,EAAI,KAEzDtH,EAAOuH,CAAO,EAEd,IAAMnB,EAAU4B,EAAOhG,EAAM,EAAEgG,EAAOxF,EAAW,CAAC,EAClDxC,EAAOoG,CAAO,EAEdpG,EAAO,CAAC+F,EAAO,SAAS,EACxB/F,EAAO+F,IAAWiC,EAAOrF,EAAO,CAAC,EACjC3C,EAAO,CAAC,KAAK,MAAM,EACnBA,EAAOoG,EAAQ,SAAWA,EAAQ,SAAW,SAAS,EAEtD,KAAK,WAAa,KAClB,KAAK,WAAa,GAClB,KAAK,gBAAkB,KAEvBpG,EAAO,KAAK,QAAQ,OAAS,IAAM,CAAC,EACpC,KAAK,QAAU,CAAC,EAChB,KAAK,YAAc,EAEnB+F,EAAO,QAAQ6C,CAAI,EAEnB7C,EAAOvE,EAAO,EAAE,QAAQ,EACxBuE,EAAOvE,EAAO,EAAI,KAElBuE,EAAOzE,EAAO,EAAI,KAClByE,EAAOtD,EAAM,EAAI,KACjBsD,EACG,eAAe,QAAS+C,EAAa,EACrC,eAAe,WAAYC,EAAgB,EAC3C,eAAe,MAAOC,EAAW,EACjC,eAAe,QAASC,EAAa,EAExCjB,EAAOrF,EAAO,EAAI,KAClBqF,EAAOhG,EAAM,EAAEgG,EAAOxF,EAAW,GAAG,EAAI,KACxCwF,EAAO,KAAK,aAAcA,EAAO7G,EAAI,EAAG,CAAC6G,CAAM,EAAG,IAAInH,GAAmB,SAAS,CAAC,EAEnF,GAAI,CACFuF,EAAQ,UAAUkB,EAAYuB,EAAS9C,CAAM,CAC/C,OAASO,EAAK,CACZpG,EAAK,QAAQ6F,EAAQO,CAAG,CAC1B,CAEAR,GAAOkC,CAAM,CACf,CAEA,kBAAmBV,EAAYC,EAASC,EAAiB,CACvD,GAAM,CAAE,OAAAQ,EAAQ,OAAAjC,EAAQ,QAAA8C,EAAS,WAAAK,CAAW,EAAI,KAGhD,GAAInD,EAAO,UACT,MAAO,GAGT,IAAMK,EAAU4B,EAAOhG,EAAM,EAAEgG,EAAOxF,EAAW,CAAC,EAGlD,GAAI,CAAC4D,EACH,MAAO,GAMT,GAHApG,EAAO,CAAC,KAAK,OAAO,EACpBA,EAAO,KAAK,WAAa,GAAG,EAExBsH,IAAe,IACjB,OAAApH,EAAK,QAAQ6F,EAAQ,IAAInF,GAAY,eAAgBV,EAAK,cAAc6F,CAAM,CAAC,CAAC,EACzE,GAIT,GAAIwB,GAAW,CAACnB,EAAQ,QACtB,OAAAlG,EAAK,QAAQ6F,EAAQ,IAAInF,GAAY,cAAeV,EAAK,cAAc6F,CAAM,CAAC,CAAC,EACxE,GAYT,GATA/F,EAAO,YAAY,KAAK,YAAa4H,EAAe,EAEpD,KAAK,WAAaN,EAClB,KAAK,gBACHE,GAECpB,EAAQ,SAAW,QAAU,CAACL,EAAO3E,EAAM,GAAK,KAAK,WAAW,YAAY,IAAM,aAGjF,KAAK,YAAc,IAAK,CAC1B,IAAMqD,EAAc2B,EAAQ,aAAe,KACvCA,EAAQ,YACR4B,EAAO/E,EAAY,EACvB,KAAK,WAAWwB,EAAaoD,EAAY,CAC3C,MAAW,KAAK,SAEV,KAAK,QAAQ,SACf,KAAK,QAAQ,QAAQ,EAIzB,GAAIzB,EAAQ,SAAW,UACrB,OAAApG,EAAOgI,EAAOpG,EAAQ,IAAM,CAAC,EAC7B,KAAK,QAAU,GACR,EAGT,GAAI2F,EACF,OAAAvH,EAAOgI,EAAOpG,EAAQ,IAAM,CAAC,EAC7B,KAAK,QAAU,GACR,EAOT,GAJA5B,EAAO,KAAK,QAAQ,OAAS,IAAM,CAAC,EACpC,KAAK,QAAU,CAAC,EAChB,KAAK,YAAc,EAEf,KAAK,iBAAmBgI,EAAOtF,EAAW,EAAG,CAC/C,IAAMkC,EAAmB,KAAK,UAAY1E,EAAK,sBAAsB,KAAK,SAAS,EAAI,KAEvF,GAAI0E,GAAoB,KAAM,CAC5B,IAAMuE,EAAU,KAAK,IACnBvE,EAAmBoD,EAAOjF,EAA0B,EACpDiF,EAAOlF,EAAoB,CAC7B,EACIqG,GAAW,EACbpD,EAAO3E,EAAM,EAAI,GAEjB4G,EAAOpF,EAAsB,EAAIuG,CAErC,MACEnB,EAAOpF,EAAsB,EAAIoF,EAAO3F,EAAwB,CAEpE,MAEE0D,EAAO3E,EAAM,EAAI,GAGnB,IAAIgI,EACJ,GAAI,CACFA,EAAQhD,EAAQ,UAAUkB,EAAYuB,EAAS,KAAK,OAAQK,CAAU,IAAM,EAC9E,OAAS5C,EAAK,CACZ,OAAApG,EAAK,QAAQ6F,EAAQO,CAAG,EACjB,EACT,CAMA,OAJIF,EAAQ,SAAW,QAInBkB,EAAa,IACR,GAGLvB,EAAOrE,EAAS,IAClBqE,EAAOrE,EAAS,EAAI,GACpBoE,GAAOkC,CAAM,GAGRoB,EAAQ1C,GAAU,MAAM,OAAS,EAC1C,CAEA,OAAQgC,EAAK,CACX,GAAM,CAAE,OAAAV,EAAQ,OAAAjC,EAAQ,WAAAuB,EAAY,gBAAA7B,CAAgB,EAAI,KAExD,GAAIM,EAAO,UACT,MAAO,GAGT,IAAMK,EAAU4B,EAAOhG,EAAM,EAAEgG,EAAOxF,EAAW,CAAC,EAalD,GAZAxC,EAAOoG,CAAO,EAEdpG,EAAO,YAAY,KAAK,YAAa6H,EAAY,EAC7C,KAAK,SAEH,KAAK,QAAQ,SACf,KAAK,QAAQ,QAAQ,EAIzB7H,EAAOsH,GAAc,GAAG,EAEpB7B,EAAkB,IAAM,KAAK,UAAYiD,EAAI,OAASjD,EACxD,OAAAvF,EAAK,QAAQ6F,EAAQ,IAAI/E,EAA8B,EAChD,GAGT,KAAK,WAAa0H,EAAI,OAEtB,GAAI,CACF,GAAItC,EAAQ,OAAOsC,CAAG,IAAM,GAC1B,OAAOhC,GAAU,MAAM,MAE3B,OAASJ,EAAK,CACZ,OAAApG,EAAK,QAAQ6F,EAAQO,CAAG,EACjB,EACT,CACF,CAEA,mBAAqB,CACnB,GAAM,CAAE,OAAA0B,EAAQ,OAAAjC,EAAQ,WAAAuB,EAAY,QAAAC,EAAS,QAAAsB,EAAS,cAAAQ,EAAe,UAAAC,EAAW,gBAAA9B,CAAgB,EAAI,KAEpG,GAAIzB,EAAO,YAAc,CAACuB,GAAcE,GACtC,MAAO,GAGT,GAAID,EACF,OAGF,IAAMnB,EAAU4B,EAAOhG,EAAM,EAAEgG,EAAOxF,EAAW,CAAC,EAgBlD,GAfAxC,EAAOoG,CAAO,EAEdpG,EAAOsH,GAAc,GAAG,EAExB,KAAK,WAAa,KAClB,KAAK,WAAa,GAClB,KAAK,UAAY,EACjB,KAAK,cAAgB,GACrB,KAAK,UAAY,GACjB,KAAK,WAAa,GAElBtH,EAAO,KAAK,QAAQ,OAAS,IAAM,CAAC,EACpC,KAAK,QAAU,CAAC,EAChB,KAAK,YAAc,EAEf,EAAAsH,EAAa,KAKjB,IAAIlB,EAAQ,SAAW,QAAUiD,GAAiBC,IAAc,SAASD,EAAe,EAAE,EACxF,OAAAnJ,EAAK,QAAQ6F,EAAQ,IAAIxF,EAAoC,EACtD,GAGT,GAAI,CACF6F,EAAQ,WAAWyC,CAAO,CAC5B,OAASvC,EAAK,CACZE,GAAawB,EAAQ5B,EAASE,CAAG,CACnC,CAIA,GAFA0B,EAAOhG,EAAM,EAAEgG,EAAOxF,EAAW,GAAG,EAAI,KAEpCuD,EAAOhE,EAAQ,EACjB,OAAA/B,EAAO,YAAYgI,EAAOpG,EAAQ,EAAG,CAAC,EAEtC1B,EAAK,QAAQ6F,EAAQ,IAAIlF,GAAmB,OAAO,CAAC,EAC7C6F,GAAU,MAAM,OAClB,GAAKc,EAGL,IAAIzB,EAAO3E,EAAM,GAAK4G,EAAOpG,EAAQ,IAAM,EAKhD,OAAA1B,EAAK,QAAQ6F,EAAQ,IAAIlF,GAAmB,OAAO,CAAC,EAC7C6F,GAAU,MAAM,OACdsB,EAAOtF,EAAW,IAAM,EAIjC,aAAaoD,GAAQkC,CAAM,EAE3BlC,GAAOkC,CAAM,MAfb,QAAA9H,EAAK,QAAQ6F,EAAQ,IAAIlF,GAAmB,OAAO,CAAC,EAC7C6F,GAAU,MAAM,OAgB3B,CACF,EAEA,SAASwB,GAAiBqB,EAAQ,CAChC,GAAM,CAAE,OAAAxD,EAAQ,YAAAyD,EAAa,OAAAxB,CAAO,EAAIuB,EAGpCC,IAAgB5B,IACd,CAAC7B,EAAOhE,EAAQ,GAAKgE,EAAO,mBAAqBiC,EAAOpG,EAAQ,EAAI,KACtE5B,EAAO,CAACuJ,EAAO,OAAQ,4CAA4C,EACnErJ,EAAK,QAAQ6F,EAAQ,IAAIrF,EAAqB,GAEvC8I,IAAgB3B,GACpB0B,EAAO,QACVrJ,EAAK,QAAQ6F,EAAQ,IAAIjF,EAAkB,EAEpC0I,IAAgB1B,KACzB9H,EAAOgI,EAAOpG,EAAQ,IAAM,GAAKoG,EAAOpF,EAAsB,CAAC,EAC/D1C,EAAK,QAAQ6F,EAAQ,IAAIlF,GAAmB,qBAAqB,CAAC,EAEtE,CAEA,SAASkI,IAAoB,CAC3B,GAAM,CAAE,CAACvH,EAAO,EAAG+H,CAAO,EAAI,KAC9BA,EAAO,SAAS,CAClB,CAEA,SAAST,GAAexC,EAAK,CAC3B,GAAM,CAAE,CAAC9E,EAAO,EAAG+H,CAAO,EAAI,KAM9B,GAJAvJ,EAAOsG,EAAI,OAAS,8BAA8B,EAI9CA,EAAI,OAAS,cAAgBiD,EAAO,YAAc,CAACA,EAAO,gBAAiB,CAE7EA,EAAO,kBAAkB,EACzB,MACF,CAEA,KAAK9G,EAAM,EAAI6D,EAEfmD,GAAQ,KAAKnI,EAAO,EAAGgF,CAAG,CAC5B,CAEA,SAASmD,GAASzB,EAAQ1B,EAAK,CAC7B,GACE0B,EAAOpG,EAAQ,IAAM,GACrB0E,EAAI,OAAS,gBACbA,EAAI,OAAS,iBACb,CAIAtG,EAAOgI,EAAOzF,EAAW,IAAMyF,EAAOxF,EAAW,CAAC,EAElD,IAAM+D,EAAWyB,EAAOhG,EAAM,EAAE,OAAOgG,EAAOxF,EAAW,CAAC,EAC1D,QAASkH,EAAI,EAAGA,EAAInD,EAAS,OAAQmD,IAAK,CACxC,IAAMtD,EAAUG,EAASmD,CAAC,EAC1BlD,GAAawB,EAAQ5B,EAASE,CAAG,CACnC,CACAtG,EAAOgI,EAAOlG,EAAK,IAAM,CAAC,CAC5B,CACF,CAEA,SAASkH,IAAe,CACtB,GAAM,CAAE,CAACxH,EAAO,EAAG+H,CAAO,EAAI,KAE9B,GAAIA,EAAO,YAAc,CAACA,EAAO,gBAAiB,CAEhDA,EAAO,kBAAkB,EACzB,MACF,CAEArJ,EAAK,QAAQ,KAAM,IAAIU,GAAY,oBAAqBV,EAAK,cAAc,IAAI,CAAC,CAAC,CACnF,CAEA,SAAS+I,IAAiB,CACxB,GAAM,CAAE,CAAC3H,EAAO,EAAG0G,CAAO,EAAI,KAE1B,CAAC,KAAKvF,EAAM,GAAK,KAAKjB,EAAO,EAAE,YAAc,CAAC,KAAKA,EAAO,EAAE,iBAE9D,KAAKA,EAAO,EAAE,kBAAkB,EAGlC,KAAKA,EAAO,EAAE,QAAQ,EACtB,KAAKA,EAAO,EAAI,KAEhB,IAAM8E,EAAM,KAAK7D,EAAM,GAAK,IAAI7B,GAAY,SAAUV,EAAK,cAAc,IAAI,CAAC,EAI9E,GAFA8H,EAAOrF,EAAO,EAAI,KAEdqF,EAAO,UAAW,CACpBhI,EAAOgI,EAAOnG,EAAQ,IAAM,CAAC,EAG7B,IAAM0E,EAAWyB,EAAOhG,EAAM,EAAE,OAAOgG,EAAOxF,EAAW,CAAC,EAC1D,QAASkH,EAAI,EAAGA,EAAInD,EAAS,OAAQmD,IAAK,CACxC,IAAMtD,EAAUG,EAASmD,CAAC,EAC1BlD,GAAawB,EAAQ5B,EAASE,CAAG,CACnC,CACF,SAAW0B,EAAOpG,EAAQ,EAAI,GAAK0E,EAAI,OAAS,eAAgB,CAE9D,IAAMF,EAAU4B,EAAOhG,EAAM,EAAEgG,EAAOxF,EAAW,CAAC,EAClDwF,EAAOhG,EAAM,EAAEgG,EAAOxF,EAAW,GAAG,EAAI,KAExCgE,GAAawB,EAAQ5B,EAASE,CAAG,CACnC,CAEA0B,EAAOzF,EAAW,EAAIyF,EAAOxF,EAAW,EAExCxC,EAAOgI,EAAOpG,EAAQ,IAAM,CAAC,EAE7BoG,EAAO,KAAK,aAAcA,EAAO7G,EAAI,EAAG,CAAC6G,CAAM,EAAG1B,CAAG,EAErDR,GAAOkC,CAAM,CACf,CAEA,eAAe1C,GAAS0C,EAAQ,CAC9BhI,EAAO,CAACgI,EAAO9F,EAAW,CAAC,EAC3BlC,EAAO,CAACgI,EAAOrF,EAAO,CAAC,EAEvB,GAAI,CAAE,KAAAgH,EAAM,SAAAC,EAAU,SAAAC,EAAU,KAAAC,CAAK,EAAI9B,EAAO7G,EAAI,EAGpD,GAAIyI,EAAS,CAAC,IAAM,IAAK,CACvB,IAAMG,EAAMH,EAAS,QAAQ,GAAG,EAEhC5J,EAAO+J,IAAQ,EAAE,EACjB,IAAMC,EAAKJ,EAAS,OAAO,EAAGG,EAAM,CAAC,EAErC/J,EAAOC,GAAI,KAAK+J,CAAE,CAAC,EACnBJ,EAAWI,CACb,CAEAhC,EAAO9F,EAAW,EAAI,GAElB6B,GAAS,cAAc,gBACzBA,GAAS,cAAc,QAAQ,CAC7B,cAAe,CACb,KAAA4F,EACA,SAAAC,EACA,SAAAC,EACA,KAAAC,EACA,WAAY9B,EAAO3G,EAAW,EAC9B,aAAc2G,EAAOrE,EAAa,CACpC,EACA,UAAWqE,EAAO7E,EAAU,CAC9B,CAAC,EAGH,GAAI,CACF,IAAM4C,EAAS,MAAM,IAAI,QAAQ,CAACM,EAAS4D,IAAW,CACpDjC,EAAO7E,EAAU,EAAE,CACjB,KAAAwG,EACA,SAAAC,EACA,SAAAC,EACA,KAAAC,EACA,WAAY9B,EAAO3G,EAAW,EAC9B,aAAc2G,EAAOrE,EAAa,CACpC,EAAG,CAAC2C,EAAKP,IAAW,CACdO,EACF2D,EAAO3D,CAAG,EAEVD,EAAQN,CAAM,CAElB,CAAC,CACH,CAAC,EAED,GAAIiC,EAAO,UAAW,CACpB9H,EAAK,QAAQ6F,EAAO,GAAG,QAAS,IAAM,CAAC,CAAC,EAAG,IAAI9E,EAAsB,EACrE,MACF,CAEKwG,KACHA,GAAiB,MAAMC,GACvBA,GAAgB,MAGlBM,EAAO9F,EAAW,EAAI,GAEtBlC,EAAO+F,CAAM,EAEbA,EAAO3D,EAAM,EAAI,GACjB2D,EAAOhE,EAAQ,EAAI,GACnBgE,EAAO3E,EAAM,EAAI,GACjB2E,EAAOrE,EAAS,EAAI,GACpBqE,EAAOtD,EAAM,EAAI,KACjBsD,EAAOvE,EAAO,EAAI,IAAIuG,GAAOC,EAAQjC,EAAQ0B,EAAc,EAC3D1B,EAAOzE,EAAO,EAAI0G,EAClBjC,EAAOzC,EAAQ,EAAI,EACnByC,EAAO1C,EAAY,EAAI2E,EAAO3E,EAAY,EAC1C0C,EACG,GAAG,QAAS+C,EAAa,EACzB,GAAG,WAAYC,EAAgB,EAC/B,GAAG,MAAOC,EAAW,EACrB,GAAG,QAASC,EAAa,EAE5BjB,EAAOrF,EAAO,EAAIoD,EAEdhC,GAAS,UAAU,gBACrBA,GAAS,UAAU,QAAQ,CACzB,cAAe,CACb,KAAA4F,EACA,SAAAC,EACA,SAAAC,EACA,KAAAC,EACA,WAAY9B,EAAO3G,EAAW,EAC9B,aAAc2G,EAAOrE,EAAa,CACpC,EACA,UAAWqE,EAAO7E,EAAU,EAC5B,OAAA4C,CACF,CAAC,EAEHiC,EAAO,KAAK,UAAWA,EAAO7G,EAAI,EAAG,CAAC6G,CAAM,CAAC,CAC/C,OAAS1B,EAAK,CACZ,GAAI0B,EAAO,UACT,OAoBF,GAjBAA,EAAO9F,EAAW,EAAI,GAElB6B,GAAS,aAAa,gBACxBA,GAAS,aAAa,QAAQ,CAC5B,cAAe,CACb,KAAA4F,EACA,SAAAC,EACA,SAAAC,EACA,KAAAC,EACA,WAAY9B,EAAO3G,EAAW,EAC9B,aAAc2G,EAAOrE,EAAa,CACpC,EACA,UAAWqE,EAAO7E,EAAU,EAC5B,MAAOmD,CACT,CAAC,EAGCA,EAAI,OAAS,+BAEf,IADAtG,EAAOgI,EAAOpG,EAAQ,IAAM,CAAC,EACtBoG,EAAOnG,EAAQ,EAAI,GAAKmG,EAAOhG,EAAM,EAAEgG,EAAOzF,EAAW,CAAC,EAAE,aAAeyF,EAAO3G,EAAW,GAAG,CACrG,IAAM+E,EAAU4B,EAAOhG,EAAM,EAAEgG,EAAOzF,EAAW,GAAG,EACpDiE,GAAawB,EAAQ5B,EAASE,CAAG,CACnC,MAEAmD,GAAQzB,EAAQ1B,CAAG,EAGrB0B,EAAO,KAAK,kBAAmBA,EAAO7G,EAAI,EAAG,CAAC6G,CAAM,EAAG1B,CAAG,CAC5D,CAEAR,GAAOkC,CAAM,CACf,CAEA,SAASkC,GAAWlC,EAAQ,CAC1BA,EAAO7F,EAAU,EAAI,EACrB6F,EAAO,KAAK,QAASA,EAAO7G,EAAI,EAAG,CAAC6G,CAAM,CAAC,CAC7C,CAEA,SAASlC,GAAQkC,EAAQmC,EAAM,CACzBnC,EAAOrG,EAAS,IAAM,IAI1BqG,EAAOrG,EAAS,EAAI,EAEpByI,GAAQpC,EAAQmC,CAAI,EACpBnC,EAAOrG,EAAS,EAAI,EAEhBqG,EAAOxF,EAAW,EAAI,MACxBwF,EAAOhG,EAAM,EAAE,OAAO,EAAGgG,EAAOxF,EAAW,CAAC,EAC5CwF,EAAOzF,EAAW,GAAKyF,EAAOxF,EAAW,EACzCwF,EAAOxF,EAAW,EAAI,GAE1B,CAEA,SAAS4H,GAASpC,EAAQmC,EAAM,CAC9B,OAAa,CACX,GAAInC,EAAO,UAAW,CACpBhI,EAAOgI,EAAOnG,EAAQ,IAAM,CAAC,EAC7B,MACF,CAEA,GAAImG,EAAOlE,EAAc,GAAK,CAACkE,EAAOlG,EAAK,EAAG,CAC5CkG,EAAOlE,EAAc,EAAE,EACvBkE,EAAOlE,EAAc,EAAI,KACzB,MACF,CAEA,IAAMiC,EAASiC,EAAOrF,EAAO,EAE7B,GAAIoD,GAAU,CAACA,EAAO,WAWpB,GAVIiC,EAAOlG,EAAK,IAAM,EAChB,CAACiE,EAAO3D,EAAM,GAAK2D,EAAO,QAC5BA,EAAO,MAAM,EACbA,EAAO3D,EAAM,EAAI,IAEV2D,EAAO3D,EAAM,GAAK2D,EAAO,MAClCA,EAAO,IAAI,EACXA,EAAO3D,EAAM,EAAI,IAGf4F,EAAOlG,EAAK,IAAM,EAChBiE,EAAOvE,EAAO,EAAE,cAAgBsG,IAClC/B,EAAOvE,EAAO,EAAE,WAAWwG,EAAOpF,EAAsB,EAAGkF,EAAY,UAEhEE,EAAOpG,EAAQ,EAAI,GAAKmE,EAAOvE,EAAO,EAAE,WAAa,KAC1DuE,EAAOvE,EAAO,EAAE,cAAgBoG,GAAiB,CACnD,IAAMxB,EAAU4B,EAAOhG,EAAM,EAAEgG,EAAOxF,EAAW,CAAC,EAC5C6B,EAAiB+B,EAAQ,gBAAkB,KAC7CA,EAAQ,eACR4B,EAAOhF,EAAe,EAC1B+C,EAAOvE,EAAO,EAAE,WAAW6C,EAAgBuD,EAAe,CAC5D,EAIJ,GAAII,EAAOzG,EAAK,EACdyG,EAAO7F,EAAU,EAAI,UACZ6F,EAAO7F,EAAU,IAAM,EAAG,CAC/BgI,GACFnC,EAAO7F,EAAU,EAAI,EACrB,QAAQ,SAAS+H,GAAWlC,CAAM,GAElCkC,GAAUlC,CAAM,EAElB,QACF,CAMA,GAJIA,EAAOnG,EAAQ,IAAM,GAIrBmG,EAAOpG,EAAQ,IAAMoG,EAAOtF,EAAW,GAAK,GAC9C,OAGF,IAAM0D,EAAU4B,EAAOhG,EAAM,EAAEgG,EAAOzF,EAAW,CAAC,EAElD,GAAIyF,EAAO7G,EAAI,EAAE,WAAa,UAAY6G,EAAO3G,EAAW,IAAM+E,EAAQ,WAAY,CACpF,GAAI4B,EAAOpG,EAAQ,EAAI,EACrB,OAKF,GAFAoG,EAAO3G,EAAW,EAAI+E,EAAQ,WAE1BL,GAAUA,EAAO,aAAeK,EAAQ,WAAY,CACtDlG,EAAK,QAAQ6F,EAAQ,IAAIlF,GAAmB,oBAAoB,CAAC,EACjE,MACF,CACF,CAEA,GAAImH,EAAO9F,EAAW,EACpB,OAGF,GAAI,CAAC6D,EAAQ,CACXT,GAAQ0C,CAAM,EACd,MACF,CAoCA,GAlCIjC,EAAO,WAAaA,EAAOhE,EAAQ,GAAKgE,EAAO3E,EAAM,GAAK2E,EAAOrE,EAAS,GAI1EsG,EAAOpG,EAAQ,EAAI,GAAK,CAACwE,EAAQ,YAOjC4B,EAAOpG,EAAQ,EAAI,IAAMwE,EAAQ,SAAWA,EAAQ,SAAW,aAO/DlG,EAAK,SAASkG,EAAQ,IAAI,GAAKlG,EAAK,WAAWkG,EAAQ,IAAI,IAAM,IACnEA,EAAQ,KACL,GAAG,OAAmC,UAAY,CAEjDpG,EAAO,EAAK,CACd,CAAC,EACA,GAAG,QAAS,SAAUsG,EAAK,CAC1BE,GAAawB,EAAQ5B,EAASE,CAAG,CACnC,CAAC,EACA,GAAG,MAAO,UAAY,CACrBpG,EAAK,QAAQ,IAAI,CACnB,CAAC,EAEHkG,EAAQ,KAAO,MAGb4B,EAAOpG,EAAQ,EAAI,IACpB1B,EAAK,SAASkG,EAAQ,IAAI,GAAKlG,EAAK,gBAAgBkG,EAAQ,IAAI,IASjE,OAGE,CAACA,EAAQ,SAAWiE,GAAMrC,EAAQ5B,CAAO,EAC3C4B,EAAOzF,EAAW,IAElByF,EAAOhG,EAAM,EAAE,OAAOgG,EAAOzF,EAAW,EAAG,CAAC,CAEhD,CACF,CAEA,SAAS8H,GAAOrC,EAAQ5B,EAAS,CAC/B,GAAM,CAAE,KAAAkE,EAAM,OAAAC,EAAQ,KAAAC,EAAM,KAAAb,EAAM,QAAApC,EAAS,QAAAsB,EAAS,SAAA4B,EAAU,MAAAC,CAAM,EAAItE,EAWlEuE,EACJJ,IAAW,OACXA,IAAW,QACXA,IAAW,QAGTD,GAAQ,OAAOA,EAAK,MAAS,YAE/BA,EAAK,KAAK,CAAC,EAGb,IAAIjB,EAAgBnJ,EAAK,WAAWoK,CAAI,EAexC,GAbIjB,IAAkB,OACpBA,EAAgBjD,EAAQ,eAGtBiD,IAAkB,GAAK,CAACsB,IAM1BtB,EAAgB,MAGdjD,EAAQ,gBAAkB,MAAQA,EAAQ,gBAAkBiD,EAAe,CAC7E,GAAIrB,EAAO9E,EAAoB,EAC7B,OAAAsD,GAAawB,EAAQ5B,EAAS,IAAI9F,EAAmC,EAC9D,GAGT,QAAQ,YAAY,IAAIA,EAAmC,CAC7D,CAEA,IAAMyF,EAASiC,EAAOrF,EAAO,EAE7B,GAAI,CACFyD,EAAQ,UAAWE,GAAQ,CACrBF,EAAQ,SAAWA,EAAQ,YAI/BI,GAAawB,EAAQ5B,EAASE,GAAO,IAAI7F,EAAqB,EAE9DP,EAAK,QAAQ6F,EAAQ,IAAIlF,GAAmB,SAAS,CAAC,EACxD,CAAC,CACH,OAASyF,EAAK,CACZE,GAAawB,EAAQ5B,EAASE,CAAG,CACnC,CAEA,GAAIF,EAAQ,QACV,MAAO,GAGLmE,IAAW,SAKbxE,EAAO3E,EAAM,EAAI,KAGfmG,GAAWgD,IAAW,aAIxBxE,EAAO3E,EAAM,EAAI,IAGfsJ,GAAS,OACX3E,EAAO3E,EAAM,EAAIsJ,GAGf1C,EAAO3E,EAAY,GAAK0C,EAAOzC,EAAQ,KAAO0E,EAAO3E,EAAY,IACnE0C,EAAO3E,EAAM,EAAI,IAGfqJ,IACF1E,EAAOrE,EAAS,EAAI,IAGtB,IAAIkJ,EAAS,GAAGL,CAAM,IAAIC,CAAI;AAAA,EAE9B,OAAI,OAAOb,GAAS,SAClBiB,GAAU,SAASjB,CAAI;AAAA,EAEvBiB,GAAU5C,EAAO1F,EAAW,EAG1BiF,EACFqD,GAAU;AAAA,WAAmCrD,CAAO;AAAA,EAC3CS,EAAOtF,EAAW,GAAK,CAACqD,EAAO3E,EAAM,EAC9CwJ,GAAU;AAAA,EAEVA,GAAU;AAAA,EAGR/B,IACF+B,GAAU/B,GAGR9E,GAAS,YAAY,gBACvBA,GAAS,YAAY,QAAQ,CAAE,QAAAqC,EAAS,QAASwE,EAAQ,OAAA7E,CAAO,CAAC,EAI9DuE,EAQMpK,EAAK,SAASoK,CAAI,GAC3BtK,EAAOqJ,IAAkBiB,EAAK,WAAY,sCAAsC,EAEhFvE,EAAO,KAAK,EACZA,EAAO,MAAM,GAAG6E,CAAM,mBAAmBvB,CAAa;AAAA;AAAA,EAAY,QAAQ,EAC1EtD,EAAO,MAAMuE,CAAI,EACjBvE,EAAO,OAAO,EACdK,EAAQ,WAAWkE,CAAI,EACvBlE,EAAQ,cAAc,EACjBuE,IACH5E,EAAO3E,EAAM,EAAI,KAEVlB,EAAK,WAAWoK,CAAI,EACzB,OAAOA,EAAK,QAAW,WACzBO,GAAc,CAAE,KAAMP,EAAK,OAAO,EAAG,OAAAtC,EAAQ,QAAA5B,EAAS,OAAAL,EAAQ,cAAAsD,EAAe,OAAAuB,EAAQ,eAAAD,CAAe,CAAC,EAErGG,GAAU,CAAE,KAAAR,EAAM,OAAAtC,EAAQ,QAAA5B,EAAS,OAAAL,EAAQ,cAAAsD,EAAe,OAAAuB,EAAQ,eAAAD,CAAe,CAAC,EAE3EzK,EAAK,SAASoK,CAAI,EAC3BS,GAAY,CAAE,KAAAT,EAAM,OAAAtC,EAAQ,QAAA5B,EAAS,OAAAL,EAAQ,cAAAsD,EAAe,OAAAuB,EAAQ,eAAAD,CAAe,CAAC,EAC3EzK,EAAK,WAAWoK,CAAI,EAC7BO,GAAc,CAAE,KAAAP,EAAM,OAAAtC,EAAQ,QAAA5B,EAAS,OAAAL,EAAQ,cAAAsD,EAAe,OAAAuB,EAAQ,eAAAD,CAAe,CAAC,EAEtF3K,EAAO,EAAK,GA9BRqJ,IAAkB,EACpBtD,EAAO,MAAM,GAAG6E,CAAM;AAAA;AAAA,EAA6B,QAAQ,GAE3D5K,EAAOqJ,IAAkB,KAAM,sCAAsC,EACrEtD,EAAO,MAAM,GAAG6E,CAAM;AAAA,EAAQ,QAAQ,GAExCxE,EAAQ,cAAc,GA2BjB,EACT,CAEA,SAAS2E,GAAa,CAAE,KAAAT,EAAM,OAAAtC,EAAQ,QAAA5B,EAAS,OAAAL,EAAQ,cAAAsD,EAAe,OAAAuB,EAAQ,eAAAD,CAAe,EAAG,CAC9F3K,EAAOqJ,IAAkB,GAAKrB,EAAOpG,EAAQ,IAAM,EAAG,iCAAiC,EAEvF,IAAIoJ,EAAW,GAETC,EAAS,IAAIC,GAAY,CAAE,OAAAnF,EAAQ,QAAAK,EAAS,cAAAiD,EAAe,OAAArB,EAAQ,eAAA2C,EAAgB,OAAAC,CAAO,CAAC,EAE3FO,EAAS,SAAUhD,EAAO,CAC9B,GAAI,CAAA6C,EAIJ,GAAI,CACE,CAACC,EAAO,MAAM9C,CAAK,GAAK,KAAK,OAC/B,KAAK,MAAM,CAEf,OAAS7B,EAAK,CACZpG,EAAK,QAAQ,KAAMoG,CAAG,CACxB,CACF,EACM8E,EAAU,UAAY,CACtBJ,GAIAV,EAAK,QACPA,EAAK,OAAO,CAEhB,EACMe,EAAU,UAAY,CAC1BC,EAAW,IAAI7K,EAAqB,CACtC,EACM6K,EAAa,SAAUhF,EAAK,CAChC,GAAI,CAAA0E,EAkBJ,IAdAA,EAAW,GAEXhL,EAAO+F,EAAO,WAAcA,EAAOhE,EAAQ,GAAKiG,EAAOpG,EAAQ,GAAK,CAAE,EAEtEmE,EACG,IAAI,QAASqF,CAAO,EACpB,IAAI,QAASE,CAAU,EAE1BhB,EACG,eAAe,OAAQa,CAAM,EAC7B,eAAe,MAAOG,CAAU,EAChC,eAAe,QAASA,CAAU,EAClC,eAAe,QAASD,CAAO,EAE9B,CAAC/E,EACH,GAAI,CACF2E,EAAO,IAAI,CACb,OAASM,EAAI,CACXjF,EAAMiF,CACR,CAGFN,EAAO,QAAQ3E,CAAG,EAEdA,IAAQA,EAAI,OAAS,gBAAkBA,EAAI,UAAY,SACzDpG,EAAK,QAAQoK,EAAMhE,CAAG,EAEtBpG,EAAK,QAAQoK,CAAI,EAErB,EAEAA,EACG,GAAG,OAAQa,CAAM,EACjB,GAAG,MAAOG,CAAU,EACpB,GAAG,QAASA,CAAU,EACtB,GAAG,QAASD,CAAO,EAElBf,EAAK,QACPA,EAAK,OAAO,EAGdvE,EACG,GAAG,QAASqF,CAAO,EACnB,GAAG,QAASE,CAAU,CAC3B,CAEA,eAAeR,GAAW,CAAE,KAAAR,EAAM,OAAAtC,EAAQ,QAAA5B,EAAS,OAAAL,EAAQ,cAAAsD,EAAe,OAAAuB,EAAQ,eAAAD,CAAe,EAAG,CAClG3K,EAAOqJ,IAAkBiB,EAAK,KAAM,oCAAoC,EAExE,GAAI,CACF,GAAIjB,GAAiB,MAAQA,IAAkBiB,EAAK,KAClD,MAAM,IAAIhK,GAGZ,IAAMkL,EAAS,OAAO,KAAK,MAAMlB,EAAK,YAAY,CAAC,EAEnDvE,EAAO,KAAK,EACZA,EAAO,MAAM,GAAG6E,CAAM,mBAAmBvB,CAAa;AAAA;AAAA,EAAY,QAAQ,EAC1EtD,EAAO,MAAMyF,CAAM,EACnBzF,EAAO,OAAO,EAEdK,EAAQ,WAAWoF,CAAM,EACzBpF,EAAQ,cAAc,EAEjBuE,IACH5E,EAAO3E,EAAM,EAAI,IAGnB0E,GAAOkC,CAAM,CACf,OAAS1B,EAAK,CACZpG,EAAK,QAAQ6F,EAAQO,CAAG,CAC1B,CACF,CAEA,eAAeuE,GAAe,CAAE,KAAAP,EAAM,OAAAtC,EAAQ,QAAA5B,EAAS,OAAAL,EAAQ,cAAAsD,EAAe,OAAAuB,EAAQ,eAAAD,CAAe,EAAG,CACtG3K,EAAOqJ,IAAkB,GAAKrB,EAAOpG,EAAQ,IAAM,EAAG,mCAAmC,EAEzF,IAAI6E,EAAW,KACf,SAAS2E,GAAW,CAClB,GAAI3E,EAAU,CACZ,IAAMT,EAAKS,EACXA,EAAW,KACXT,EAAG,CACL,CACF,CAEA,IAAMyF,EAAe,IAAM,IAAI,QAAQ,CAACpF,EAAS4D,IAAW,CAC1DjK,EAAOyG,IAAa,IAAI,EAEpBV,EAAOtD,EAAM,EACfwH,EAAOlE,EAAOtD,EAAM,CAAC,EAErBgE,EAAWJ,CAEf,CAAC,EAEDN,EACG,GAAG,QAASqF,CAAO,EACnB,GAAG,QAASA,CAAO,EAEtB,IAAMH,EAAS,IAAIC,GAAY,CAAE,OAAAnF,EAAQ,QAAAK,EAAS,cAAAiD,EAAe,OAAArB,EAAQ,eAAA2C,EAAgB,OAAAC,CAAO,CAAC,EACjG,GAAI,CAEF,cAAiBzC,KAASmC,EAAM,CAC9B,GAAIvE,EAAOtD,EAAM,EACf,MAAMsD,EAAOtD,EAAM,EAGhBwI,EAAO,MAAM9C,CAAK,GACrB,MAAMsD,EAAa,CAEvB,CAEAR,EAAO,IAAI,CACb,OAAS3E,EAAK,CACZ2E,EAAO,QAAQ3E,CAAG,CACpB,QAAE,CACAP,EACG,IAAI,QAASqF,CAAO,EACpB,IAAI,QAASA,CAAO,CACzB,CACF,CAEA,IAAMF,GAAN,KAAkB,CAChB,YAAa,CAAE,OAAAnF,EAAQ,QAAAK,EAAS,cAAAiD,EAAe,OAAArB,EAAQ,eAAA2C,EAAgB,OAAAC,CAAO,EAAG,CAC/E,KAAK,OAAS7E,EACd,KAAK,QAAUK,EACf,KAAK,cAAgBiD,EACrB,KAAK,OAASrB,EACd,KAAK,aAAe,EACpB,KAAK,eAAiB2C,EACtB,KAAK,OAASC,EAEd7E,EAAOhE,EAAQ,EAAI,EACrB,CAEA,MAAOoG,EAAO,CACZ,GAAM,CAAE,OAAApC,EAAQ,QAAAK,EAAS,cAAAiD,EAAe,OAAArB,EAAQ,aAAA0D,EAAc,eAAAf,EAAgB,OAAAC,CAAO,EAAI,KAEzF,GAAI7E,EAAOtD,EAAM,EACf,MAAMsD,EAAOtD,EAAM,EAGrB,GAAIsD,EAAO,UACT,MAAO,GAGT,IAAMkB,EAAM,OAAO,WAAWkB,CAAK,EACnC,GAAI,CAAClB,EACH,MAAO,GAIT,GAAIoC,IAAkB,MAAQqC,EAAezE,EAAMoC,EAAe,CAChE,GAAIrB,EAAO9E,EAAoB,EAC7B,MAAM,IAAI5C,GAGZ,QAAQ,YAAY,IAAIA,EAAmC,CAC7D,CAEAyF,EAAO,KAAK,EAER2F,IAAiB,IACdf,IACH5E,EAAO3E,EAAM,EAAI,IAGfiI,IAAkB,KACpBtD,EAAO,MAAM,GAAG6E,CAAM;AAAA,EAAkC,QAAQ,EAEhE7E,EAAO,MAAM,GAAG6E,CAAM,mBAAmBvB,CAAa;AAAA;AAAA,EAAY,QAAQ,GAI1EA,IAAkB,MACpBtD,EAAO,MAAM;AAAA,EAAOkB,EAAI,SAAS,EAAE,CAAC;AAAA,EAAQ,QAAQ,EAGtD,KAAK,cAAgBA,EAErB,IAAMqB,EAAMvC,EAAO,MAAMoC,CAAK,EAE9B,OAAApC,EAAO,OAAO,EAEdK,EAAQ,WAAW+B,CAAK,EAEnBG,GACCvC,EAAOvE,EAAO,EAAE,SAAWuE,EAAOvE,EAAO,EAAE,cAAgBoG,IAEzD7B,EAAOvE,EAAO,EAAE,QAAQ,SAC1BuE,EAAOvE,EAAO,EAAE,QAAQ,QAAQ,EAK/B8G,CACT,CAEA,KAAO,CACL,GAAM,CAAE,OAAAvC,EAAQ,cAAAsD,EAAe,OAAArB,EAAQ,aAAA0D,EAAc,eAAAf,EAAgB,OAAAC,EAAQ,QAAAxE,CAAQ,EAAI,KAKzF,GAJAA,EAAQ,cAAc,EAEtBL,EAAOhE,EAAQ,EAAI,GAEfgE,EAAOtD,EAAM,EACf,MAAMsD,EAAOtD,EAAM,EAGrB,GAAI,CAAAsD,EAAO,UAmBX,IAfI2F,IAAiB,EACff,EAMF5E,EAAO,MAAM,GAAG6E,CAAM;AAAA;AAAA,EAA6B,QAAQ,EAE3D7E,EAAO,MAAM,GAAG6E,CAAM;AAAA,EAAQ,QAAQ,EAE/BvB,IAAkB,MAC3BtD,EAAO,MAAM;AAAA;AAAA;AAAA,EAAiB,QAAQ,EAGpCsD,IAAkB,MAAQqC,IAAiBrC,EAAe,CAC5D,GAAIrB,EAAO9E,EAAoB,EAC7B,MAAM,IAAI5C,GAEV,QAAQ,YAAY,IAAIA,EAAmC,CAE/D,CAEIyF,EAAOvE,EAAO,EAAE,SAAWuE,EAAOvE,EAAO,EAAE,cAAgBoG,IAEzD7B,EAAOvE,EAAO,EAAE,QAAQ,SAC1BuE,EAAOvE,EAAO,EAAE,QAAQ,QAAQ,EAIpCsE,GAAOkC,CAAM,EACf,CAEA,QAAS1B,EAAK,CACZ,GAAM,CAAE,OAAAP,EAAQ,OAAAiC,CAAO,EAAI,KAE3BjC,EAAOhE,EAAQ,EAAI,GAEfuE,IACFtG,EAAOgI,EAAOpG,EAAQ,GAAK,EAAG,2CAA2C,EACzE1B,EAAK,QAAQ6F,EAAQO,CAAG,EAE5B,CACF,EAEA,SAASE,GAAcwB,EAAQ5B,EAASE,EAAK,CAC3C,GAAI,CACFF,EAAQ,QAAQE,CAAG,EACnBtG,EAAOoG,EAAQ,OAAO,CACxB,OAASE,EAAK,CACZ0B,EAAO,KAAK,QAAS1B,CAAG,CAC1B,CACF,CAEAvG,GAAO,QAAUkE,KCnwDjB,IAAA0H,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cA0DA,IAAMC,GAAN,KAA0B,CACxB,aAAc,CACZ,KAAK,OAAS,EACd,KAAK,IAAM,EACX,KAAK,KAAO,IAAI,MAAM,IAAK,EAC3B,KAAK,KAAO,IACd,CAEA,SAAU,CACR,OAAO,KAAK,MAAQ,KAAK,MAC3B,CAEA,QAAS,CACP,OAAS,KAAK,IAAM,EAAK,QAAW,KAAK,MAC3C,CAEA,KAAKC,EAAM,CACT,KAAK,KAAK,KAAK,GAAG,EAAIA,EACtB,KAAK,IAAO,KAAK,IAAM,EAAK,IAC9B,CAEA,OAAQ,CACN,IAAMC,EAAW,KAAK,KAAK,KAAK,MAAM,EACtC,OAAIA,IAAa,OACR,MACT,KAAK,KAAK,KAAK,MAAM,EAAI,OACzB,KAAK,OAAU,KAAK,OAAS,EAAK,KAC3BA,EACT,CACF,EAEAH,GAAO,QAAU,KAAiB,CAChC,aAAc,CACZ,KAAK,KAAO,KAAK,KAAO,IAAIC,EAC9B,CAEA,SAAU,CACR,OAAO,KAAK,KAAK,QAAQ,CAC3B,CAEA,KAAKC,EAAM,CACL,KAAK,KAAK,OAAO,IAGnB,KAAK,KAAO,KAAK,KAAK,KAAO,IAAID,IAEnC,KAAK,KAAK,KAAKC,CAAI,CACrB,CAEA,OAAQ,CACN,IAAME,EAAO,KAAK,KACZC,EAAOD,EAAK,MAAM,EACxB,OAAIA,EAAK,QAAQ,GAAKA,EAAK,OAAS,OAElC,KAAK,KAAOA,EAAK,MAEZC,CACT,CACF,ICpHA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,IAAM,CAAE,MAAAC,GAAO,WAAAC,GAAY,SAAAC,GAAU,QAAAC,GAAS,SAAAC,GAAU,MAAAC,EAAM,EAAI,KAC5DC,GAAQ,OAAO,MAAM,EAErBC,GAAN,KAAgB,CACd,YAAaC,EAAM,CACjB,KAAKF,EAAK,EAAIE,CAChB,CAEA,IAAI,WAAa,CACf,OAAO,KAAKF,EAAK,EAAEL,EAAU,CAC/B,CAEA,IAAI,MAAQ,CACV,OAAO,KAAKK,EAAK,EAAEN,EAAK,CAC1B,CAEA,IAAI,SAAW,CACb,OAAO,KAAKM,EAAK,EAAEJ,EAAQ,CAC7B,CAEA,IAAI,QAAU,CACZ,OAAO,KAAKI,EAAK,EAAEH,EAAO,CAC5B,CAEA,IAAI,SAAW,CACb,OAAO,KAAKG,EAAK,EAAEF,EAAQ,CAC7B,CAEA,IAAI,MAAQ,CACV,OAAO,KAAKE,EAAK,EAAED,EAAK,CAC1B,CACF,EAEAN,GAAO,QAAUQ,KCjCjB,IAAAE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAiB,KACjBC,GAAa,KACb,CAAE,WAAAC,GAAY,MAAAC,GAAO,SAAAC,GAAU,SAAAC,GAAU,QAAAC,GAAS,MAAAC,GAAO,MAAAC,GAAO,KAAAC,GAAM,OAAAC,GAAQ,SAAAC,GAAU,UAAAC,EAAU,EAAI,KACtGC,GAAY,KAEZC,GAAW,OAAO,SAAS,EAC3BC,GAAa,OAAO,WAAW,EAC/BC,GAAS,OAAO,OAAO,EACvBC,GAAiB,OAAO,gBAAgB,EACxCC,GAAW,OAAO,SAAS,EAC3BC,GAAa,OAAO,WAAW,EAC/BC,GAAgB,OAAO,cAAc,EACrCC,GAAqB,OAAO,mBAAmB,EAC/CC,GAAiB,OAAO,gBAAgB,EACxCC,GAAa,OAAO,YAAY,EAChCC,GAAgB,OAAO,eAAe,EACtCC,GAAS,OAAO,OAAO,EAEvBC,GAAN,cAAuB1B,EAAe,CACpC,aAAe,CACb,MAAM,EAEN,KAAKgB,EAAM,EAAI,IAAIf,GACnB,KAAKa,EAAQ,EAAI,CAAC,EAClB,KAAKR,EAAO,EAAI,EAEhB,IAAMqB,EAAO,KAEb,KAAKT,EAAQ,EAAI,SAAkBU,EAAQC,EAAS,CAClD,IAAMC,EAAQH,EAAKX,EAAM,EAErBe,EAAY,GAEhB,KAAO,CAACA,GAAW,CACjB,IAAMC,EAAOF,EAAM,MAAM,EACzB,GAAI,CAACE,EACH,MAEFL,EAAKrB,EAAO,IACZyB,EAAY,CAAC,KAAK,SAASC,EAAK,KAAMA,EAAK,OAAO,CACpD,CAEA,KAAKjB,EAAU,EAAIgB,EAEf,CAAC,KAAKhB,EAAU,GAAKY,EAAKZ,EAAU,IACtCY,EAAKZ,EAAU,EAAI,GACnBY,EAAK,KAAK,QAASC,EAAQ,CAACD,EAAM,GAAGE,CAAO,CAAC,GAG3CF,EAAKV,EAAc,GAAKa,EAAM,QAAQ,GACxC,QACG,IAAIH,EAAKb,EAAQ,EAAE,IAAImB,GAAKA,EAAE,MAAM,CAAC,CAAC,EACtC,KAAKN,EAAKV,EAAc,CAAC,CAEhC,EAEA,KAAKE,EAAU,EAAI,CAACS,EAAQC,IAAY,CACtCF,EAAK,KAAK,UAAWC,EAAQ,CAACD,EAAM,GAAGE,CAAO,CAAC,CACjD,EAEA,KAAKT,EAAa,EAAI,CAACQ,EAAQC,EAASK,IAAQ,CAC9CP,EAAK,KAAK,aAAcC,EAAQ,CAACD,EAAM,GAAGE,CAAO,EAAGK,CAAG,CACzD,EAEA,KAAKb,EAAkB,EAAI,CAACO,EAAQC,EAASK,IAAQ,CACnDP,EAAK,KAAK,kBAAmBC,EAAQ,CAACD,EAAM,GAAGE,CAAO,EAAGK,CAAG,CAC9D,EAEA,KAAKT,EAAM,EAAI,IAAIZ,GAAU,IAAI,CACnC,CAEA,IAAKN,EAAK,GAAK,CACb,OAAO,KAAKQ,EAAU,CACxB,CAEA,IAAKb,EAAU,GAAK,CAClB,OAAO,KAAKY,EAAQ,EAAE,OAAOqB,GAAUA,EAAOjC,EAAU,CAAC,EAAE,MAC7D,CAEA,IAAKM,EAAK,GAAK,CACb,OAAO,KAAKM,EAAQ,EAAE,OAAOqB,GAAUA,EAAOjC,EAAU,GAAK,CAACiC,EAAOpB,EAAU,CAAC,EAAE,MACpF,CAEA,IAAKV,EAAQ,GAAK,CAChB,IAAI+B,EAAM,KAAK9B,EAAO,EACtB,OAAW,CAAE,CAACD,EAAQ,EAAGgC,CAAQ,IAAK,KAAKvB,EAAQ,EACjDsB,GAAOC,EAET,OAAOD,CACT,CAEA,IAAKhC,EAAQ,GAAK,CAChB,IAAIgC,EAAM,EACV,OAAW,CAAE,CAAChC,EAAQ,EAAGkC,CAAQ,IAAK,KAAKxB,EAAQ,EACjDsB,GAAOE,EAET,OAAOF,CACT,CAEA,IAAKjC,EAAK,GAAK,CACb,IAAIiC,EAAM,KAAK9B,EAAO,EACtB,OAAW,CAAE,CAACH,EAAK,EAAGoC,CAAK,IAAK,KAAKzB,EAAQ,EAC3CsB,GAAOG,EAET,OAAOH,CACT,CAEA,IAAI,OAAS,CACX,OAAO,KAAKX,EAAM,CACpB,CAEA,MAAOf,EAAM,GAAK,CAChB,OAAI,KAAKM,EAAM,EAAE,QAAQ,EAChB,QAAQ,IAAI,KAAKF,EAAQ,EAAE,IAAImB,GAAKA,EAAE,MAAM,CAAC,CAAC,EAE9C,IAAI,QAASO,GAAY,CAC9B,KAAKvB,EAAc,EAAIuB,CACzB,CAAC,CAEL,CAEA,MAAO7B,EAAQ,EAAGuB,EAAK,CACrB,OAAa,CACX,IAAMF,EAAO,KAAKhB,EAAM,EAAE,MAAM,EAChC,GAAI,CAACgB,EACH,MAEFA,EAAK,QAAQ,QAAQE,CAAG,CAC1B,CAEA,OAAO,QAAQ,IAAI,KAAKpB,EAAQ,EAAE,IAAImB,GAAKA,EAAE,QAAQC,CAAG,CAAC,CAAC,CAC5D,CAEA,CAACtB,EAAS,EAAG6B,EAAMC,EAAS,CAC1B,IAAMC,EAAa,KAAKrB,EAAc,EAAE,EAExC,OAAKqB,EAIOA,EAAW,SAASF,EAAMC,CAAO,IAC3CC,EAAW5B,EAAU,EAAI,GACzB,KAAKA,EAAU,EAAI,CAAC,KAAKO,EAAc,EAAE,IALzC,KAAKP,EAAU,EAAI,GACnB,KAAKC,EAAM,EAAE,KAAK,CAAE,KAAAyB,EAAM,QAAAC,CAAQ,CAAC,EACnC,KAAKpC,EAAO,KAMP,CAAC,KAAKS,EAAU,CACzB,CAEA,CAACQ,EAAU,EAAGY,EAAQ,CACpB,OAAAA,EACG,GAAG,QAAS,KAAKjB,EAAQ,CAAC,EAC1B,GAAG,UAAW,KAAKC,EAAU,CAAC,EAC9B,GAAG,aAAc,KAAKC,EAAa,CAAC,EACpC,GAAG,kBAAmB,KAAKC,EAAkB,CAAC,EAEjD,KAAKP,EAAQ,EAAE,KAAKqB,CAAM,EAEtB,KAAKpB,EAAU,GACjB,QAAQ,SAAS,IAAM,CACjB,KAAKA,EAAU,GACjB,KAAKG,EAAQ,EAAEiB,EAAO1B,EAAI,EAAG,CAAC,KAAM0B,CAAM,CAAC,CAE/C,CAAC,EAGI,IACT,CAEA,CAACX,EAAa,EAAGW,EAAQ,CACvBA,EAAO,MAAM,IAAM,CACjB,IAAMS,EAAM,KAAK9B,EAAQ,EAAE,QAAQqB,CAAM,EACrCS,IAAQ,IACV,KAAK9B,EAAQ,EAAE,OAAO8B,EAAK,CAAC,CAEhC,CAAC,EAED,KAAK7B,EAAU,EAAI,KAAKD,EAAQ,EAAE,KAAK6B,GACrC,CAACA,EAAW5B,EAAU,GACtB4B,EAAW,SAAW,IACtBA,EAAW,YAAc,EAC1B,CACH,CACF,EAEA5C,GAAO,QAAU,CACf,SAAA2B,GACA,SAAAZ,GACA,WAAAC,GACA,WAAAQ,GACA,cAAAC,GACA,eAAAF,EACF,ICjMA,IAAAuB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CACJ,SAAAC,GACA,SAAAC,GACA,WAAAC,GACA,WAAAC,GACA,eAAAC,EACF,EAAI,KACEC,GAAS,KACT,CACJ,qBAAAC,EACF,EAAI,KACEC,GAAO,IACP,CAAE,KAAAC,GAAM,cAAAC,EAAc,EAAI,KAC1BC,GAAiB,KAEjBC,GAAW,OAAO,SAAS,EAC3BC,GAAe,OAAO,aAAa,EACnCC,GAAW,OAAO,SAAS,EAEjC,SAASC,GAAgBC,EAAQC,EAAM,CACrC,OAAO,IAAIX,GAAOU,EAAQC,CAAI,CAChC,CAEA,IAAMC,GAAN,cAAmBjB,EAAS,CAC1B,YAAae,EAAQ,CACnB,YAAAG,EACA,QAAAC,EAAUL,GACV,QAAAM,EACA,eAAAC,EACA,IAAAC,EACA,kBAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,+BAAAC,EACA,GAAGC,CACL,EAAI,CAAC,EAAG,CAGN,GAFA,MAAM,EAEFT,GAAe,OAAS,CAAC,OAAO,SAASA,CAAW,GAAKA,EAAc,GACzE,MAAM,IAAIZ,GAAqB,qBAAqB,EAGtD,GAAI,OAAOa,GAAY,WACrB,MAAM,IAAIb,GAAqB,6BAA6B,EAG9D,GAAIc,GAAW,MAAQ,OAAOA,GAAY,YAAc,OAAOA,GAAY,SACzE,MAAM,IAAId,GAAqB,yCAAyC,EAGtE,OAAOc,GAAY,aACrBA,EAAUV,GAAe,CACvB,GAAGY,EACH,kBAAAC,EACA,WAAAC,EACA,QAASH,GAAyB,IAClC,GAAId,GAAK,yBAA2BkB,EAAmB,CAAE,iBAAAA,EAAkB,+BAAAC,CAA+B,EAAI,OAC9G,GAAGN,CACL,CAAC,GAGH,KAAKX,EAAa,EAAIkB,EAAQ,cAAgBA,EAAQ,aAAa,MAAQ,MAAM,QAAQA,EAAQ,aAAa,IAAI,EAC9GA,EAAQ,aAAa,KACrB,CAAC,EACL,KAAKf,EAAY,EAAIM,GAAe,KACpC,KAAKV,EAAI,EAAID,GAAK,YAAYQ,CAAM,EACpC,KAAKJ,EAAQ,EAAI,CAAE,GAAGJ,GAAK,UAAUoB,CAAO,EAAG,QAAAP,CAAQ,EACvD,KAAKT,EAAQ,EAAE,aAAegB,EAAQ,aAClC,CAAE,GAAGA,EAAQ,YAAa,EAC1B,OACJ,KAAKd,EAAQ,EAAIM,CACnB,CAEA,CAACf,EAAc,GAAK,CAClB,IAAIwB,EAAa,KAAK3B,EAAQ,EAAE,KAAK2B,GAAc,CAACA,EAAW1B,EAAU,CAAC,EAE1E,OAAI0B,KAIA,CAAC,KAAKhB,EAAY,GAAK,KAAKX,EAAQ,EAAE,OAAS,KAAKW,EAAY,KAClEgB,EAAa,KAAKf,EAAQ,EAAE,KAAKL,EAAI,EAAG,KAAKG,EAAQ,CAAC,EACtD,KAAKR,EAAU,EAAEyB,CAAU,GAGtBA,EACT,CACF,EAEA7B,GAAO,QAAUkB,KC3FjB,IAAAY,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CACJ,iCAAAC,GACA,qBAAAC,EACF,EAAI,KACE,CACJ,SAAAC,GACA,SAAAC,GACA,WAAAC,GACA,WAAAC,GACA,cAAAC,GACA,eAAAC,EACF,EAAI,KACEC,GAAO,KACP,CAAE,KAAAC,GAAM,cAAAC,EAAc,EAAI,KAC1B,CAAE,YAAAC,EAAY,EAAI,IAClBC,GAAW,OAAO,SAAS,EAE3BC,GAAW,OAAO,SAAS,EAC3BC,GAAyB,OAAO,wBAAwB,EACxDC,GAAiB,OAAO,gBAAgB,EACxCC,GAAS,OAAO,QAAQ,EACxBC,GAAU,OAAO,SAAS,EAC1BC,GAAsB,OAAO,qBAAqB,EAClDC,GAAgB,OAAO,eAAe,EAE5C,SAASC,GAA0BC,EAAGC,EAAG,CACvC,OAAIA,IAAM,EAAUD,EACbD,GAAyBE,EAAGD,EAAIC,CAAC,CAC1C,CAEA,SAASC,GAAgBC,EAAQC,EAAM,CACrC,OAAO,IAAIjB,GAAKgB,EAAQC,CAAI,CAC9B,CAEA,IAAMC,GAAN,cAA2BxB,EAAS,CAClC,YAAayB,EAAY,CAAC,EAAG,CAAE,QAAAC,EAAUL,GAAgB,GAAGE,CAAK,EAAI,CAAC,EAAG,CAcvE,GAbA,MAAM,EAEN,KAAKZ,EAAQ,EAAIY,EACjB,KAAKT,EAAM,EAAI,GACf,KAAKD,EAAc,EAAI,EAEvB,KAAKG,EAAmB,EAAI,KAAKL,EAAQ,EAAE,oBAAsB,IACjE,KAAKM,EAAa,EAAI,KAAKN,EAAQ,EAAE,cAAgB,GAEhD,MAAM,QAAQc,CAAS,IAC1BA,EAAY,CAACA,CAAS,GAGpB,OAAOC,GAAY,WACrB,MAAM,IAAI3B,GAAqB,6BAA6B,EAG9D,KAAKS,EAAa,EAAIe,EAAK,cAAgBA,EAAK,aAAa,cAAgB,MAAM,QAAQA,EAAK,aAAa,YAAY,EACrHA,EAAK,aAAa,aAClB,CAAC,EACL,KAAKb,EAAQ,EAAIgB,EAEjB,QAAWC,KAAYF,EACrB,KAAK,YAAYE,CAAQ,EAE3B,KAAK,yBAAyB,CAChC,CAEA,YAAaA,EAAU,CACrB,IAAMC,EAAiBnB,GAAYkB,CAAQ,EAAE,OAE7C,GAAI,KAAK1B,EAAQ,EAAE,KAAM4B,GACvBA,EAAKtB,EAAI,EAAE,SAAWqB,GACtBC,EAAK,SAAW,IAChBA,EAAK,YAAc,EACpB,EACC,OAAO,KAET,IAAMA,EAAO,KAAKnB,EAAQ,EAAEkB,EAAgB,OAAO,OAAO,CAAC,EAAG,KAAKjB,EAAQ,CAAC,CAAC,EAE7E,KAAKR,EAAU,EAAE0B,CAAI,EACrBA,EAAK,GAAG,UAAW,IAAM,CACvBA,EAAKd,EAAO,EAAI,KAAK,IAAI,KAAKC,EAAmB,EAAGa,EAAKd,EAAO,EAAI,KAAKE,EAAa,CAAC,CACzF,CAAC,EAEDY,EAAK,GAAG,kBAAmB,IAAM,CAC/BA,EAAKd,EAAO,EAAI,KAAK,IAAI,EAAGc,EAAKd,EAAO,EAAI,KAAKE,EAAa,CAAC,EAC/D,KAAK,yBAAyB,CAChC,CAAC,EAEDY,EAAK,GAAG,aAAc,IAAIC,IAAS,CACjC,IAAMC,EAAMD,EAAK,CAAC,EACdC,GAAOA,EAAI,OAAS,mBAEtBF,EAAKd,EAAO,EAAI,KAAK,IAAI,EAAGc,EAAKd,EAAO,EAAI,KAAKE,EAAa,CAAC,EAC/D,KAAK,yBAAyB,EAElC,CAAC,EAED,QAAWe,KAAU,KAAK/B,EAAQ,EAChC+B,EAAOjB,EAAO,EAAI,KAAKC,EAAmB,EAG5C,YAAK,yBAAyB,EAEvB,IACT,CAEA,0BAA4B,CAC1B,KAAKJ,EAAsB,EAAI,KAAKX,EAAQ,EAAE,IAAIgC,GAAKA,EAAElB,EAAO,CAAC,EAAE,OAAOG,GAA0B,CAAC,CACvG,CAEA,eAAgBS,EAAU,CACxB,IAAMC,EAAiBnB,GAAYkB,CAAQ,EAAE,OAEvCE,EAAO,KAAK5B,EAAQ,EAAE,KAAM4B,GAChCA,EAAKtB,EAAI,EAAE,SAAWqB,GACtBC,EAAK,SAAW,IAChBA,EAAK,YAAc,EACpB,EAED,OAAIA,GACF,KAAKzB,EAAa,EAAEyB,CAAI,EAGnB,IACT,CAEA,IAAI,WAAa,CACf,OAAO,KAAK5B,EAAQ,EACjB,OAAOiC,GAAcA,EAAW,SAAW,IAAQA,EAAW,YAAc,EAAI,EAChF,IAAKD,GAAMA,EAAE1B,EAAI,EAAE,MAAM,CAC9B,CAEA,CAACF,EAAc,GAAK,CAIlB,GAAI,KAAKJ,EAAQ,EAAE,SAAW,EAC5B,MAAM,IAAIH,GAeZ,GANI,CANe,KAAKG,EAAQ,EAAE,KAAKiC,GACrC,CAACA,EAAWhC,EAAU,GACtBgC,EAAW,SAAW,IACtBA,EAAW,YAAc,EAC1B,GAMsB,KAAKjC,EAAQ,EAAE,IAAI4B,GAAQA,EAAK3B,EAAU,CAAC,EAAE,OAAO,CAACiB,EAAGC,IAAMD,GAAKC,EAAG,EAAI,EAG/F,OAGF,IAAIe,EAAU,EAEVC,EAAiB,KAAKnC,EAAQ,EAAE,UAAU4B,GAAQ,CAACA,EAAK3B,EAAU,CAAC,EAEvE,KAAOiC,IAAY,KAAKlC,EAAQ,EAAE,QAAQ,CACxC,KAAKa,EAAM,GAAK,KAAKA,EAAM,EAAI,GAAK,KAAKb,EAAQ,EAAE,OACnD,IAAM4B,EAAO,KAAK5B,EAAQ,EAAE,KAAKa,EAAM,CAAC,EAgBxC,GAbIe,EAAKd,EAAO,EAAI,KAAKd,EAAQ,EAAEmC,CAAc,EAAErB,EAAO,GAAK,CAACc,EAAK3B,EAAU,IAC7EkC,EAAiB,KAAKtB,EAAM,GAI1B,KAAKA,EAAM,IAAM,IAEnB,KAAKD,EAAc,EAAI,KAAKA,EAAc,EAAI,KAAKD,EAAsB,EAErE,KAAKC,EAAc,GAAK,IAC1B,KAAKA,EAAc,EAAI,KAAKG,EAAmB,IAG/Ca,EAAKd,EAAO,GAAK,KAAKF,EAAc,GAAM,CAACgB,EAAK3B,EAAU,EAC5D,OAAO2B,CAEX,CAEA,YAAKhB,EAAc,EAAI,KAAKZ,EAAQ,EAAEmC,CAAc,EAAErB,EAAO,EAC7D,KAAKD,EAAM,EAAIsB,EACR,KAAKnC,EAAQ,EAAEmC,CAAc,CACtC,CACF,EAEAvC,GAAO,QAAU2B,KC7LjB,IAAAa,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,GAAM,CAAE,WAAAC,GAAY,MAAAC,EAAM,EAAI,KAExBC,GAAN,KAAoB,CAClB,YAAaC,EAAO,CAClB,KAAK,MAAQA,CACf,CAEA,OAAS,CACP,OAAO,KAAK,MAAMH,EAAU,IAAM,GAAK,KAAK,MAAMC,EAAK,IAAM,EACzD,OACA,KAAK,KACX,CACF,EAEMG,GAAN,KAAsB,CACpB,YAAaC,EAAW,CACtB,KAAK,UAAYA,CACnB,CAEA,SAAUC,EAAYC,EAAK,CACzBD,EAAW,GAAG,aAAc,IAAM,CAC5BA,EAAWN,EAAU,IAAM,GAAKM,EAAWL,EAAK,IAAM,GACxD,KAAK,UAAUM,CAAG,CAEtB,CAAC,CACH,CACF,EAEAR,GAAO,QAAU,UAAY,CAC3B,MAAO,CACL,QAAS,OAAO,SAAWG,GAC3B,qBAAsB,OAAO,sBAAwBE,EACvD,CACF,ICrCA,IAAAI,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,qBAAAC,EAAqB,EAAI,KAC3B,CAAE,SAAAC,GAAU,SAAAC,GAAU,OAAAC,GAAQ,SAAAC,GAAU,UAAAC,GAAW,cAAAC,EAAc,EAAI,KACrEC,GAAiB,KACjBC,GAAO,KACPC,GAAS,KACTC,GAAO,IACPC,GAA4B,KAC5B,CAAE,QAAAC,GAAS,qBAAAC,EAAqB,EAAI,KAAuC,EAE3EC,GAAa,OAAO,WAAW,EAC/BC,GAAgB,OAAO,cAAc,EACrCC,GAAqB,OAAO,mBAAmB,EAC/CC,GAAmB,OAAO,iBAAiB,EAC3CC,GAAW,OAAO,SAAS,EAC3BC,GAAW,OAAO,SAAS,EAC3BC,GAAa,OAAO,WAAW,EAC/BC,GAAW,OAAO,SAAS,EAEjC,SAASC,GAAgBC,EAAQC,EAAM,CACrC,OAAOA,GAAQA,EAAK,cAAgB,EAChC,IAAIf,GAAOc,EAAQC,CAAI,EACvB,IAAIhB,GAAKe,EAAQC,CAAI,CAC3B,CAEA,IAAMC,GAAN,cAAoBlB,EAAe,CACjC,YAAa,CAAE,QAAAmB,EAAUJ,GAAgB,gBAAAK,EAAkB,EAAG,QAAAC,EAAS,GAAGC,CAAQ,EAAI,CAAC,EAAG,CAGxF,GAFA,MAAM,EAEF,OAAOH,GAAY,WACrB,MAAM,IAAI1B,GAAqB,6BAA6B,EAG9D,GAAI4B,GAAW,MAAQ,OAAOA,GAAY,YAAc,OAAOA,GAAY,SACzE,MAAM,IAAI5B,GAAqB,yCAAyC,EAG1E,GAAI,CAAC,OAAO,UAAU2B,CAAe,GAAKA,EAAkB,EAC1D,MAAM,IAAI3B,GAAqB,2CAA2C,EAGxE4B,GAAW,OAAOA,GAAY,aAChCA,EAAU,CAAE,GAAGA,CAAQ,GAGzB,KAAKtB,EAAa,EAAIuB,EAAQ,cAAgBA,EAAQ,aAAa,OAAS,MAAM,QAAQA,EAAQ,aAAa,KAAK,EAChHA,EAAQ,aAAa,MACrB,CAAClB,GAA0B,CAAE,gBAAAgB,CAAgB,CAAC,CAAC,EAEnD,KAAKN,EAAQ,EAAI,CAAE,GAAGX,GAAK,UAAUmB,CAAO,EAAG,QAAAD,CAAQ,EACvD,KAAKP,EAAQ,EAAE,aAAeQ,EAAQ,aAClC,CAAE,GAAGA,EAAQ,YAAa,EAC1B,OACJ,KAAKZ,EAAgB,EAAIU,EACzB,KAAKR,EAAQ,EAAIO,EACjB,KAAKzB,EAAQ,EAAI,IAAI,IACrB,KAAKmB,EAAU,EAAI,IAAIP,GAAuEiB,GAAO,CACnG,IAAMC,EAAM,KAAK9B,EAAQ,EAAE,IAAI6B,CAAG,EAC9BC,IAAQ,QAAaA,EAAI,MAAM,IAAM,QACvC,KAAK9B,EAAQ,EAAE,OAAO6B,CAAG,CAE7B,CAAC,EAED,IAAME,EAAQ,KAEd,KAAKd,EAAQ,EAAI,CAACK,EAAQU,IAAY,CACpCD,EAAM,KAAK,QAAST,EAAQ,CAACS,EAAO,GAAGC,CAAO,CAAC,CACjD,EAEA,KAAKnB,EAAU,EAAI,CAACS,EAAQU,IAAY,CACtCD,EAAM,KAAK,UAAWT,EAAQ,CAACS,EAAO,GAAGC,CAAO,CAAC,CACnD,EAEA,KAAKlB,EAAa,EAAI,CAACQ,EAAQU,EAASC,IAAQ,CAC9CF,EAAM,KAAK,aAAcT,EAAQ,CAACS,EAAO,GAAGC,CAAO,EAAGC,CAAG,CAC3D,EAEA,KAAKlB,EAAkB,EAAI,CAACO,EAAQU,EAASC,IAAQ,CACnDF,EAAM,KAAK,kBAAmBT,EAAQ,CAACS,EAAO,GAAGC,CAAO,EAAGC,CAAG,CAChE,CACF,CAEA,IAAKhC,EAAQ,GAAK,CAChB,IAAIiC,EAAM,EACV,QAAWJ,KAAO,KAAK9B,EAAQ,EAAE,OAAO,EAAG,CACzC,IAAMmC,EAASL,EAAI,MAAM,EAErBK,IACFD,GAAOC,EAAOlC,EAAQ,EAE1B,CACA,OAAOiC,CACT,CAEA,CAAC9B,EAAS,EAAGmB,EAAMa,EAAS,CAC1B,IAAIP,EACJ,GAAIN,EAAK,SAAW,OAAOA,EAAK,QAAW,UAAYA,EAAK,kBAAkB,KAC5EM,EAAM,OAAON,EAAK,MAAM,MAExB,OAAM,IAAIxB,GAAqB,gDAAgD,EAGjF,IAAM+B,EAAM,KAAK9B,EAAQ,EAAE,IAAI6B,CAAG,EAE9BQ,EAAaP,EAAMA,EAAI,MAAM,EAAI,KACrC,OAAKO,IACHA,EAAa,KAAKnB,EAAQ,EAAEK,EAAK,OAAQ,KAAKH,EAAQ,CAAC,EACpD,GAAG,QAAS,KAAKH,EAAQ,CAAC,EAC1B,GAAG,UAAW,KAAKJ,EAAU,CAAC,EAC9B,GAAG,aAAc,KAAKC,EAAa,CAAC,EACpC,GAAG,kBAAmB,KAAKC,EAAkB,CAAC,EAEjD,KAAKf,EAAQ,EAAE,IAAI6B,EAAK,IAAIlB,GAAQ0B,CAAU,CAAC,EAC/C,KAAKlB,EAAU,EAAE,SAASkB,EAAYR,CAAG,GAGpCQ,EAAW,SAASd,EAAMa,CAAO,CAC1C,CAEA,MAAOlC,EAAM,GAAK,CAChB,IAAMoC,EAAgB,CAAC,EACvB,QAAWR,KAAO,KAAK9B,EAAQ,EAAE,OAAO,EAAG,CACzC,IAAMmC,EAASL,EAAI,MAAM,EAErBK,GACFG,EAAc,KAAKH,EAAO,MAAM,CAAC,CAErC,CAEA,MAAM,QAAQ,IAAIG,CAAa,CACjC,CAEA,MAAOnC,EAAQ,EAAG8B,EAAK,CACrB,IAAMM,EAAkB,CAAC,EACzB,QAAWT,KAAO,KAAK9B,EAAQ,EAAE,OAAO,EAAG,CACzC,IAAMmC,EAASL,EAAI,MAAM,EAErBK,GACFI,EAAgB,KAAKJ,EAAO,QAAQF,CAAG,CAAC,CAE5C,CAEA,MAAM,QAAQ,IAAIM,CAAe,CACnC,CACF,EAEAzC,GAAO,QAAU0B,KCnJjB,IAAAgB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,IAAMC,GAAS,QAAQ,QAAQ,EACzB,CAAE,SAAAC,EAAS,EAAI,QAAQ,QAAQ,EAC/B,CAAE,oBAAAC,GAAqB,kBAAAC,GAAmB,qBAAAC,EAAqB,EAAI,KACnEC,GAAO,IACP,CAAE,mBAAAC,GAAoB,YAAAC,EAAY,EAAI,IAExCC,GAEEC,GAAW,OAAO,UAAU,EAC5BC,GAAW,OAAO,UAAU,EAC5BC,GAAQ,OAAO,OAAO,EACtBC,GAAS,OAAO,OAAO,EACvBC,GAAe,OAAO,cAAc,EAE1Cd,GAAO,QAAU,cAA2BE,EAAS,CACnD,YAAa,CACX,OAAAa,EACA,MAAAC,EACA,YAAAC,EAAc,GACd,cAAAC,EAAgB,GAAK,IACvB,EAAG,CACD,MAAM,CACJ,YAAa,GACb,KAAMH,EACN,cAAAG,CACF,CAAC,EAED,KAAK,eAAe,YAAc,GAElC,KAAKL,EAAM,EAAIG,EACf,KAAKN,EAAQ,EAAI,KACjB,KAAKE,EAAK,EAAI,KACd,KAAKE,EAAY,EAAIG,EAMrB,KAAKN,EAAQ,EAAI,EACnB,CAEA,QAASQ,EAAK,CACZ,OAAI,KAAK,UAEA,MAGL,CAACA,GAAO,CAAC,KAAK,eAAe,aAC/BA,EAAM,IAAIhB,IAGRgB,GACF,KAAKN,EAAM,EAAE,EAGR,MAAM,QAAQM,CAAG,EAC1B,CAEA,KAAMC,KAAOC,EAAM,CACjB,OAAID,IAAO,OAET,KAAK,eAAe,YAAc,GACzBA,IAAO,UAEhB,KAAK,eAAe,aAAe,IAE9B,MAAM,KAAKA,EAAI,GAAGC,CAAI,CAC/B,CAEA,GAAID,KAAOC,EAAM,CACf,OAAID,IAAO,QAAUA,IAAO,cAC1B,KAAKT,EAAQ,EAAI,IAEZ,MAAM,GAAGS,EAAI,GAAGC,CAAI,CAC7B,CAEA,YAAaD,KAAOC,EAAM,CACxB,OAAO,KAAK,GAAGD,EAAI,GAAGC,CAAI,CAC5B,CAEA,IAAKD,KAAOC,EAAM,CAChB,IAAMC,EAAM,MAAM,IAAIF,EAAI,GAAGC,CAAI,EACjC,OAAID,IAAO,QAAUA,IAAO,cAC1B,KAAKT,EAAQ,EACX,KAAK,cAAc,MAAM,EAAI,GAC7B,KAAK,cAAc,UAAU,EAAI,GAG9BW,CACT,CAEA,eAAgBF,KAAOC,EAAM,CAC3B,OAAO,KAAK,IAAID,EAAI,GAAGC,CAAI,CAC7B,CAEA,KAAME,EAAO,CACX,OAAI,KAAKb,EAAQ,GAAKa,IAAU,MAAQ,KAAK,iBAAmB,GAC9DC,GAAY,KAAKd,EAAQ,EAAGa,CAAK,EAC1B,KAAKZ,EAAQ,EAAI,MAAM,KAAKY,CAAK,EAAI,IAEvC,MAAM,KAAKA,CAAK,CACzB,CAGA,MAAM,MAAQ,CACZ,OAAOE,GAAQ,KAAM,MAAM,CAC7B,CAGA,MAAM,MAAQ,CACZ,OAAOA,GAAQ,KAAM,MAAM,CAC7B,CAGA,MAAM,MAAQ,CACZ,OAAOA,GAAQ,KAAM,MAAM,CAC7B,CAGA,MAAM,aAAe,CACnB,OAAOA,GAAQ,KAAM,aAAa,CACpC,CAGA,MAAM,UAAY,CAEhB,MAAM,IAAIrB,EACZ,CAGA,IAAI,UAAY,CACd,OAAOE,GAAK,YAAY,IAAI,CAC9B,CAGA,IAAI,MAAQ,CACV,OAAK,KAAKM,EAAK,IACb,KAAKA,EAAK,EAAIL,GAAmB,IAAI,EACjC,KAAKG,EAAQ,IAEf,KAAKE,EAAK,EAAE,UAAU,EACtBX,GAAO,KAAKW,EAAK,EAAE,MAAM,IAGtB,KAAKA,EAAK,CACnB,CAEA,MAAM,KAAMc,EAAM,CAChB,IAAIC,EAAQD,GAAQ,OAAO,SAASA,EAAK,KAAK,EAAIA,EAAK,MAAQ,OACzDE,EAASF,GAAQA,EAAK,OACtBG,EAAU,IAAM,CACpB,KAAK,QAAQ,CACf,EACIC,EACJ,GAAIF,EAAQ,CACV,GAAI,OAAOA,GAAW,UAAY,EAAE,YAAaA,GAC/C,MAAM,IAAIvB,GAAqB,+BAA+B,EAEhEC,GAAK,eAAesB,CAAM,EAC1BE,EAAwBxB,GAAK,iBAAiBsB,EAAQC,CAAO,CAC/D,CACA,GAAI,CACF,cAAiBN,KAAS,KAGxB,GAFAjB,GAAK,eAAesB,CAAM,EAC1BD,GAAS,OAAO,WAAWJ,CAAK,EAC5BI,EAAQ,EACV,MAGN,MAAQ,CACNrB,GAAK,eAAesB,CAAM,CAC5B,QAAE,CACI,OAAOE,GAA0B,WACnCA,EAAsB,EACbA,GACTA,EAAsB,OAAO,OAAO,EAAE,CAE1C,CACF,CACF,EAGA,SAASC,GAAUC,EAAM,CAEvB,OAAQA,EAAKpB,EAAK,GAAKoB,EAAKpB,EAAK,EAAE,SAAW,IAASoB,EAAKtB,EAAQ,CACtE,CAGA,SAASuB,GAAYD,EAAM,CACzB,OAAO1B,GAAK,YAAY0B,CAAI,GAAKD,GAASC,CAAI,CAChD,CAEA,eAAeP,GAASS,EAAQC,EAAM,CACpC,GAAIF,GAAWC,CAAM,EACnB,MAAM,IAAI,UAAU,UAAU,EAGhC,OAAAjC,GAAO,CAACiC,EAAOxB,EAAQ,CAAC,EAEjB,IAAI,QAAQ,CAAC0B,EAASC,IAAW,CACtCH,EAAOxB,EAAQ,EAAI,CACjB,KAAAyB,EACA,OAAAD,EACA,QAAAE,EACA,OAAAC,EACA,OAAQ,EACR,KAAM,CAAC,CACT,EAEAH,EACG,GAAG,QAAS,SAAUf,EAAK,CAC1BmB,GAAc,KAAK5B,EAAQ,EAAGS,CAAG,CACnC,CAAC,EACA,GAAG,QAAS,UAAY,CACnB,KAAKT,EAAQ,EAAE,OAAS,MAC1B4B,GAAc,KAAK5B,EAAQ,EAAG,IAAIP,EAAqB,CAE3D,CAAC,EAEH,QAAQ,SAASoC,GAAcL,EAAOxB,EAAQ,CAAC,CACjD,CAAC,CACH,CAEA,SAAS6B,GAAcd,EAAS,CAC9B,GAAIA,EAAQ,OAAS,KACnB,OAGF,GAAM,CAAE,eAAgBe,CAAM,EAAIf,EAAQ,OAE1C,QAAWF,KAASiB,EAAM,OACxBhB,GAAYC,EAASF,CAAK,EAa5B,IAVIiB,EAAM,WACRC,GAAW,KAAK/B,EAAQ,CAAC,EAEzBe,EAAQ,OAAO,GAAG,MAAO,UAAY,CACnCgB,GAAW,KAAK/B,EAAQ,CAAC,CAC3B,CAAC,EAGHe,EAAQ,OAAO,OAAO,EAEfA,EAAQ,OAAO,KAAK,GAAK,MAAM,CAGxC,CAEA,SAASgB,GAAYhB,EAAS,CAC5B,GAAM,CAAE,KAAAU,EAAM,KAAAO,EAAM,QAAAN,EAAS,OAAAF,EAAQ,OAAAS,CAAO,EAAIlB,EAEhD,GAAI,CACF,GAAIU,IAAS,OACXC,EAAQ5B,GAAY,OAAO,OAAOkC,CAAI,CAAC,CAAC,UAC/BP,IAAS,OAClBC,EAAQ,KAAK,MAAM,OAAO,OAAOM,CAAI,CAAC,CAAC,UAC9BP,IAAS,cAAe,CACjC,IAAMS,EAAM,IAAI,WAAWD,CAAM,EAE7BE,EAAM,EACV,QAAWC,KAAOJ,EAChBE,EAAI,IAAIE,EAAKD,CAAG,EAChBA,GAAOC,EAAI,WAGbV,EAAQQ,CAAG,CACb,MAAWT,IAAS,SACb1B,KACHA,GAAO,QAAQ,QAAQ,EAAE,MAE3B2B,EAAQ,IAAI3B,GAAKiC,EAAM,CAAE,KAAMR,EAAOpB,EAAY,CAAE,CAAC,CAAC,GAGxDwB,GAAcb,CAAO,CACvB,OAASN,EAAK,CACZe,EAAO,QAAQf,CAAG,CACpB,CACF,CAEA,SAASK,GAAaC,EAASF,EAAO,CACpCE,EAAQ,QAAUF,EAAM,OACxBE,EAAQ,KAAK,KAAKF,CAAK,CACzB,CAEA,SAASe,GAAeb,EAASN,EAAK,CAChCM,EAAQ,OAAS,OAIjBN,EACFM,EAAQ,OAAON,CAAG,EAElBM,EAAQ,QAAQ,EAGlBA,EAAQ,KAAO,KACfA,EAAQ,OAAS,KACjBA,EAAQ,QAAU,KAClBA,EAAQ,OAAS,KACjBA,EAAQ,OAAS,EACjBA,EAAQ,KAAO,KACjB,IClTA,IAAAsB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,KAAMC,GAAS,QAAQ,QAAQ,EACzB,CACJ,wBAAAC,EACF,EAAI,KACE,CAAE,YAAAC,EAAY,EAAI,IAExB,eAAeC,GAA6B,CAAE,SAAAC,EAAU,KAAAC,EAAM,YAAAC,EAAa,WAAAC,EAAY,cAAAC,EAAe,QAAAC,CAAQ,EAAG,CAC/GT,GAAOK,CAAI,EAEX,IAAIK,EAAS,CAAC,EACVC,EAAQ,EAEZ,cAAiBC,KAASP,EAGxB,GAFAK,EAAO,KAAKE,CAAK,EACjBD,GAASC,EAAM,OACXD,EAAQ,IAAM,KAAM,CACtBD,EAAS,KACT,KACF,CAGF,GAAIH,IAAe,KAAO,CAACD,GAAe,CAACI,EAAQ,CACjD,QAAQ,SAASN,EAAU,IAAIH,GAAwB,wBAAwBM,CAAU,GAAGC,EAAgB,KAAKA,CAAa,GAAK,EAAE,GAAID,EAAYE,CAAO,CAAC,EAC7J,MACF,CAEA,GAAI,CACF,GAAIH,EAAY,WAAW,kBAAkB,EAAG,CAC9C,IAAMO,EAAU,KAAK,MAAMX,GAAY,OAAO,OAAOQ,CAAM,CAAC,CAAC,EAC7D,QAAQ,SAASN,EAAU,IAAIH,GAAwB,wBAAwBM,CAAU,GAAGC,EAAgB,KAAKA,CAAa,GAAK,EAAE,GAAID,EAAYE,EAASI,CAAO,CAAC,EACtK,MACF,CAEA,GAAIP,EAAY,WAAW,OAAO,EAAG,CACnC,IAAMO,EAAUX,GAAY,OAAO,OAAOQ,CAAM,CAAC,EACjD,QAAQ,SAASN,EAAU,IAAIH,GAAwB,wBAAwBM,CAAU,GAAGC,EAAgB,KAAKA,CAAa,GAAK,EAAE,GAAID,EAAYE,EAASI,CAAO,CAAC,EACtK,MACF,CACF,MAAc,CAEd,CAEA,QAAQ,SAAST,EAAU,IAAIH,GAAwB,wBAAwBM,CAAU,GAAGC,EAAgB,KAAKA,CAAa,GAAK,EAAE,GAAID,EAAYE,CAAO,CAAC,CAC/J,CAEAV,GAAO,QAAU,CAAE,4BAAAI,EAA4B,IC7C/C,IAAAW,GAAAC,EAAA,CAAAC,GAAAC,KAAA,IAAM,CAAE,iBAAAC,EAAiB,EAAI,IACvB,CAAE,oBAAAC,EAAoB,EAAI,KAE1BC,GAAY,OAAO,WAAW,EAC9BC,GAAU,OAAO,SAAS,EAEhC,SAASC,GAAOC,EAAM,CAChBA,EAAK,MACPA,EAAK,MAAM,EAEXA,EAAK,QAAQ,IAAIJ,EAAqB,CAE1C,CAEA,SAASK,GAAWD,EAAME,EAAQ,CAIhC,GAHAF,EAAKF,EAAO,EAAI,KAChBE,EAAKH,EAAS,EAAI,KAEd,EAACK,EAIL,IAAIA,EAAO,QAAS,CAClBH,GAAMC,CAAI,EACV,MACF,CAEAA,EAAKF,EAAO,EAAII,EAChBF,EAAKH,EAAS,EAAI,IAAM,CACtBE,GAAMC,CAAI,CACZ,EAEAL,GAAiBK,EAAKF,EAAO,EAAGE,EAAKH,EAAS,CAAC,EACjD,CAEA,SAASM,GAAcH,EAAM,CACtBA,EAAKF,EAAO,IAIb,wBAAyBE,EAAKF,EAAO,EACvCE,EAAKF,EAAO,EAAE,oBAAoB,QAASE,EAAKH,EAAS,CAAC,EAE1DG,EAAKF,EAAO,EAAE,eAAe,QAASE,EAAKH,EAAS,CAAC,EAGvDG,EAAKF,EAAO,EAAI,KAChBE,EAAKH,EAAS,EAAI,KACpB,CAEAH,GAAO,QAAU,CACf,UAAAO,GACA,aAAAE,EACF,ICrDA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAW,KACX,CACJ,qBAAAC,GACA,oBAAAC,EACF,EAAI,KACEC,GAAO,IACP,CAAE,4BAAAC,EAA4B,EAAI,KAClC,CAAE,cAAAC,EAAc,EAAI,QAAQ,aAAa,EACzC,CAAE,UAAAC,GAAW,aAAAC,EAAa,EAAI,KAE9BC,GAAN,cAA6BH,EAAc,CACzC,YAAaI,EAAMC,EAAU,CAC3B,GAAI,CAACD,GAAQ,OAAOA,GAAS,SAC3B,MAAM,IAAIR,GAAqB,cAAc,EAG/C,GAAM,CAAE,OAAAU,EAAQ,OAAAC,EAAQ,OAAAC,EAAQ,KAAAC,EAAM,OAAAC,EAAQ,gBAAAC,EAAiB,aAAAC,EAAc,cAAAC,CAAc,EAAIT,EAE/F,GAAI,CACF,GAAI,OAAOC,GAAa,WACtB,MAAM,IAAIT,GAAqB,kBAAkB,EAGnD,GAAIiB,IAAkB,OAAOA,GAAkB,UAAYA,EAAgB,GACzE,MAAM,IAAIjB,GAAqB,uBAAuB,EAGxD,GAAIU,GAAU,OAAOA,EAAO,IAAO,YAAc,OAAOA,EAAO,kBAAqB,WAClF,MAAM,IAAIV,GAAqB,+CAA+C,EAGhF,GAAIW,IAAW,UACb,MAAM,IAAIX,GAAqB,gBAAgB,EAGjD,GAAIc,GAAU,OAAOA,GAAW,WAC9B,MAAM,IAAId,GAAqB,yBAAyB,EAG1D,MAAM,gBAAgB,CACxB,OAASkB,EAAK,CACZ,MAAIhB,GAAK,SAASW,CAAI,GACpBX,GAAK,QAAQW,EAAK,GAAG,QAASX,GAAK,GAAG,EAAGgB,CAAG,EAExCA,CACR,CAEA,KAAK,gBAAkBH,GAAmB,KAC1C,KAAK,OAASH,GAAU,KACxB,KAAK,SAAWH,EAChB,KAAK,IAAM,KACX,KAAK,MAAQ,KACb,KAAK,KAAOI,EACZ,KAAK,SAAW,CAAC,EACjB,KAAK,QAAU,KACf,KAAK,OAASC,GAAU,KACxB,KAAK,aAAeE,EACpB,KAAK,cAAgBC,EAEjBf,GAAK,SAASW,CAAI,GACpBA,EAAK,GAAG,QAAUK,GAAQ,CACxB,KAAK,QAAQA,CAAG,CAClB,CAAC,EAGHb,GAAU,KAAMK,CAAM,CACxB,CAEA,UAAWS,EAAOC,EAAS,CACzB,GAAI,CAAC,KAAK,SACR,MAAM,IAAInB,GAGZ,KAAK,MAAQkB,EACb,KAAK,QAAUC,CACjB,CAEA,UAAWC,EAAYC,EAAYC,EAAQC,EAAe,CACxD,GAAM,CAAE,SAAAf,EAAU,OAAAG,EAAQ,MAAAO,EAAO,QAAAC,EAAS,gBAAAL,EAAiB,cAAAE,CAAc,EAAI,KAEvEQ,EAAUV,IAAoB,MAAQb,GAAK,gBAAgBoB,CAAU,EAAIpB,GAAK,aAAaoB,CAAU,EAE3G,GAAID,EAAa,IAAK,CAChB,KAAK,QACP,KAAK,OAAO,CAAE,WAAAA,EAAY,QAAAI,CAAQ,CAAC,EAErC,MACF,CAGA,IAAMC,GADgBX,IAAoB,MAAQb,GAAK,aAAaoB,CAAU,EAAIG,GAChD,cAAc,EAC1CZ,EAAO,IAAId,GAAS,CAAE,OAAAwB,EAAQ,MAAAJ,EAAO,YAAAO,EAAa,cAAAT,CAAc,CAAC,EAEvE,KAAK,SAAW,KAChB,KAAK,IAAMJ,EAEPJ,IAAa,OACX,KAAK,cAAgBY,GAAc,IACrC,KAAK,gBAAgBlB,GAA6B,KAChD,CAAE,SAAAM,EAAU,KAAAI,EAAM,YAAAa,EAAa,WAAAL,EAAY,cAAAG,EAAe,QAAAC,CAAQ,CACpE,EAEA,KAAK,gBAAgBhB,EAAU,KAAM,KAAM,CACzC,WAAAY,EACA,QAAAI,EACA,SAAU,KAAK,SACf,OAAAb,EACA,KAAAC,EACA,QAAAO,CACF,CAAC,EAGP,CAEA,OAAQO,EAAO,CACb,GAAM,CAAE,IAAAC,CAAI,EAAI,KAChB,OAAOA,EAAI,KAAKD,CAAK,CACvB,CAEA,WAAYE,EAAU,CACpB,GAAM,CAAE,IAAAD,CAAI,EAAI,KAEhBtB,GAAa,IAAI,EAEjBJ,GAAK,aAAa2B,EAAU,KAAK,QAAQ,EAEzCD,EAAI,KAAK,IAAI,CACf,CAEA,QAASV,EAAK,CACZ,GAAM,CAAE,IAAAU,EAAK,SAAAnB,EAAU,KAAAI,EAAM,OAAAD,CAAO,EAAI,KAExCN,GAAa,IAAI,EAEbG,IAEF,KAAK,SAAW,KAChB,eAAe,IAAM,CACnB,KAAK,gBAAgBA,EAAU,KAAMS,EAAK,CAAE,OAAAN,CAAO,CAAC,CACtD,CAAC,GAGCgB,IACF,KAAK,IAAM,KAEX,eAAe,IAAM,CACnB1B,GAAK,QAAQ0B,EAAKV,CAAG,CACvB,CAAC,GAGCL,IACF,KAAK,KAAO,KACZX,GAAK,QAAQW,EAAMK,CAAG,EAE1B,CACF,EAEA,SAASY,GAAStB,EAAMC,EAAU,CAChC,GAAIA,IAAa,OACf,OAAO,IAAI,QAAQ,CAACsB,EAASC,IAAW,CACtCF,GAAQ,KAAK,KAAMtB,EAAM,CAACU,EAAKe,IACtBf,EAAMc,EAAOd,CAAG,EAAIa,EAAQE,CAAI,CACxC,CACH,CAAC,EAGH,GAAI,CACF,KAAK,SAASzB,EAAM,IAAID,GAAeC,EAAMC,CAAQ,CAAC,CACxD,OAASS,EAAK,CACZ,GAAI,OAAOT,GAAa,WACtB,MAAMS,EAER,IAAMN,EAASJ,GAAQA,EAAK,OAC5B,eAAe,IAAMC,EAASS,EAAK,CAAE,OAAAN,CAAO,CAAC,CAAC,CAChD,CACF,CAEAd,GAAO,QAAUgC,KCnLjB,IAAAI,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,SAAAC,GAAU,YAAAC,EAAY,EAAI,QAAQ,QAAQ,EAC5C,CACJ,qBAAAC,GACA,wBAAAC,GACA,oBAAAC,EACF,EAAI,KACEC,GAAO,IACP,CAAE,4BAAAC,EAA4B,EAAI,KAClC,CAAE,cAAAC,EAAc,EAAI,QAAQ,aAAa,EACzC,CAAE,UAAAC,GAAW,aAAAC,EAAa,EAAI,KAE9BC,GAAN,cAA4BH,EAAc,CACxC,YAAaI,EAAMC,EAASC,EAAU,CACpC,GAAI,CAACF,GAAQ,OAAOA,GAAS,SAC3B,MAAM,IAAIT,GAAqB,cAAc,EAG/C,GAAM,CAAE,OAAAY,EAAQ,OAAAC,EAAQ,OAAAC,EAAQ,KAAAC,EAAM,OAAAC,EAAQ,gBAAAC,EAAiB,aAAAC,CAAa,EAAIT,EAEhF,GAAI,CACF,GAAI,OAAOE,GAAa,WACtB,MAAM,IAAIX,GAAqB,kBAAkB,EAGnD,GAAI,OAAOU,GAAY,WACrB,MAAM,IAAIV,GAAqB,iBAAiB,EAGlD,GAAIY,GAAU,OAAOA,EAAO,IAAO,YAAc,OAAOA,EAAO,kBAAqB,WAClF,MAAM,IAAIZ,GAAqB,+CAA+C,EAGhF,GAAIa,IAAW,UACb,MAAM,IAAIb,GAAqB,gBAAgB,EAGjD,GAAIgB,GAAU,OAAOA,GAAW,WAC9B,MAAM,IAAIhB,GAAqB,yBAAyB,EAG1D,MAAM,eAAe,CACvB,OAASmB,EAAK,CACZ,MAAIhB,GAAK,SAASY,CAAI,GACpBZ,GAAK,QAAQY,EAAK,GAAG,QAASZ,GAAK,GAAG,EAAGgB,CAAG,EAExCA,CACR,CAEA,KAAK,gBAAkBF,GAAmB,KAC1C,KAAK,OAASH,GAAU,KACxB,KAAK,QAAUJ,EACf,KAAK,SAAWC,EAChB,KAAK,IAAM,KACX,KAAK,MAAQ,KACb,KAAK,QAAU,KACf,KAAK,SAAW,KAChB,KAAK,KAAOI,EACZ,KAAK,OAASC,GAAU,KACxB,KAAK,aAAeE,GAAgB,GAEhCf,GAAK,SAASY,CAAI,GACpBA,EAAK,GAAG,QAAUI,GAAQ,CACxB,KAAK,QAAQA,CAAG,CAClB,CAAC,EAGHb,GAAU,KAAMM,CAAM,CACxB,CAEA,UAAWQ,EAAOC,EAAS,CACzB,GAAI,CAAC,KAAK,SACR,MAAM,IAAInB,GAGZ,KAAK,MAAQkB,EACb,KAAK,QAAUC,CACjB,CAEA,UAAWC,EAAYC,EAAYC,EAAQC,EAAe,CACxD,GAAM,CAAE,QAAAf,EAAS,OAAAI,EAAQ,QAAAO,EAAS,SAAAV,EAAU,gBAAAM,CAAgB,EAAI,KAE1DS,EAAUT,IAAoB,MAAQd,GAAK,gBAAgBoB,CAAU,EAAIpB,GAAK,aAAaoB,CAAU,EAE3G,GAAID,EAAa,IAAK,CAChB,KAAK,QACP,KAAK,OAAO,CAAE,WAAAA,EAAY,QAAAI,CAAQ,CAAC,EAErC,MACF,CAEA,KAAK,QAAU,KAEf,IAAIC,EAEJ,GAAI,KAAK,cAAgBL,GAAc,IAAK,CAE1C,IAAMM,GADgBX,IAAoB,MAAQd,GAAK,aAAaoB,CAAU,EAAIG,GAChD,cAAc,EAChDC,EAAM,IAAI5B,GAEV,KAAK,SAAW,KAChB,KAAK,gBAAgBK,GAA6B,KAChD,CAAE,SAAAO,EAAU,KAAMgB,EAAK,YAAAC,EAAa,WAAAN,EAAY,cAAAG,EAAe,QAAAC,CAAQ,CACzE,CACF,KAAO,CAQL,GAPAC,EAAM,KAAK,gBAAgBjB,EAAS,KAAM,CACxC,WAAAY,EACA,QAAAI,EACA,OAAAZ,EACA,QAAAO,CACF,CAAC,EAGC,CAACM,GACD,OAAOA,EAAI,OAAU,YACrB,OAAOA,EAAI,KAAQ,YACnB,OAAOA,EAAI,IAAO,WAElB,MAAM,IAAI1B,GAAwB,mBAAmB,EAIvDH,GAAS6B,EAAK,CAAE,SAAU,EAAM,EAAIR,GAAQ,CAC1C,GAAM,CAAE,SAAAR,EAAU,IAAAgB,EAAK,OAAAb,EAAQ,SAAAe,EAAU,MAAAT,CAAM,EAAI,KAEnD,KAAK,IAAM,MACPD,GAAO,CAACQ,EAAI,WACdxB,GAAK,QAAQwB,EAAKR,CAAG,EAGvB,KAAK,SAAW,KAChB,KAAK,gBAAgBR,EAAU,KAAMQ,GAAO,KAAM,CAAE,OAAAL,EAAQ,SAAAe,CAAS,CAAC,EAElEV,GACFC,EAAM,CAEV,CAAC,CACH,CAEA,OAAAO,EAAI,GAAG,QAASH,CAAM,EAEtB,KAAK,IAAMG,GAEOA,EAAI,oBAAsB,OACxCA,EAAI,kBACJA,EAAI,gBAAkBA,EAAI,eAAe,aAExB,EACvB,CAEA,OAAQG,EAAO,CACb,GAAM,CAAE,IAAAH,CAAI,EAAI,KAEhB,OAAOA,EAAI,MAAMG,CAAK,CACxB,CAEA,WAAYD,EAAU,CACpB,GAAM,CAAE,IAAAF,CAAI,EAAI,KAEhBpB,GAAa,IAAI,EAEjB,KAAK,SAAWJ,GAAK,aAAa0B,CAAQ,EAE1CF,EAAI,IAAI,CACV,CAEA,QAASR,EAAK,CACZ,GAAM,CAAE,IAAAQ,EAAK,SAAAhB,EAAU,OAAAG,EAAQ,KAAAC,CAAK,EAAI,KAExCR,GAAa,IAAI,EAEjB,KAAK,QAAU,KAEXoB,GACF,KAAK,IAAM,KACXxB,GAAK,QAAQwB,EAAKR,CAAG,GACZR,IACT,KAAK,SAAW,KAChB,eAAe,IAAM,CACnB,KAAK,gBAAgBA,EAAU,KAAMQ,EAAK,CAAE,OAAAL,CAAO,CAAC,CACtD,CAAC,GAGCC,IACF,KAAK,KAAO,KACZZ,GAAK,QAAQY,EAAMI,CAAG,EAE1B,CACF,EAEA,SAASY,GAAQtB,EAAMC,EAASC,EAAU,CACxC,GAAIA,IAAa,OACf,OAAO,IAAI,QAAQ,CAACqB,EAASC,IAAW,CACtCF,GAAO,KAAK,KAAMtB,EAAMC,EAAS,CAACS,EAAKe,IAC9Bf,EAAMc,EAAOd,CAAG,EAAIa,EAAQE,CAAI,CACxC,CACH,CAAC,EAGH,GAAI,CACF,KAAK,SAASzB,EAAM,IAAID,GAAcC,EAAMC,EAASC,CAAQ,CAAC,CAChE,OAASQ,EAAK,CACZ,GAAI,OAAOR,GAAa,WACtB,MAAMQ,EAER,IAAML,EAASL,GAAQA,EAAK,OAC5B,eAAe,IAAME,EAASQ,EAAK,CAAE,OAAAL,CAAO,CAAC,CAAC,CAChD,CACF,CAEAjB,GAAO,QAAUkC,KCnNjB,IAAAI,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CACJ,SAAAC,GACA,OAAAC,GACA,YAAAC,EACF,EAAI,QAAQ,QAAQ,EACd,CACJ,qBAAAC,GACA,wBAAAC,GACA,oBAAAC,EACF,EAAI,KACEC,GAAO,IACP,CAAE,cAAAC,EAAc,EAAI,QAAQ,aAAa,EACzC,CAAE,UAAAC,GAAW,aAAAC,EAAa,EAAI,KAC9BC,GAAS,QAAQ,QAAQ,EAEzBC,GAAU,OAAO,QAAQ,EAEzBC,GAAN,cAA8BZ,EAAS,CACrC,aAAe,CACb,MAAM,CAAE,YAAa,EAAK,CAAC,EAE3B,KAAKW,EAAO,EAAI,IAClB,CAEA,OAAS,CACP,GAAM,CAAE,CAACA,EAAO,EAAGE,CAAO,EAAI,KAE1BA,IACF,KAAKF,EAAO,EAAI,KAChBE,EAAO,EAEX,CAEA,SAAUC,EAAKC,EAAU,CACvB,KAAK,MAAM,EAEXA,EAASD,CAAG,CACd,CACF,EAEME,GAAN,cAA+BhB,EAAS,CACtC,YAAaa,EAAQ,CACnB,MAAM,CAAE,YAAa,EAAK,CAAC,EAC3B,KAAKF,EAAO,EAAIE,CAClB,CAEA,OAAS,CACP,KAAKF,EAAO,EAAE,CAChB,CAEA,SAAUG,EAAKC,EAAU,CACnB,CAACD,GAAO,CAAC,KAAK,eAAe,aAC/BA,EAAM,IAAIT,IAGZU,EAASD,CAAG,CACd,CACF,EAEMG,GAAN,cAA8BV,EAAc,CAC1C,YAAaW,EAAMC,EAAS,CAC1B,GAAI,CAACD,GAAQ,OAAOA,GAAS,SAC3B,MAAM,IAAIf,GAAqB,cAAc,EAG/C,GAAI,OAAOgB,GAAY,WACrB,MAAM,IAAIhB,GAAqB,iBAAiB,EAGlD,GAAM,CAAE,OAAAiB,EAAQ,OAAAC,EAAQ,OAAAC,EAAQ,OAAAC,EAAQ,gBAAAC,CAAgB,EAAIN,EAE5D,GAAIE,GAAU,OAAOA,EAAO,IAAO,YAAc,OAAOA,EAAO,kBAAqB,WAClF,MAAM,IAAIjB,GAAqB,+CAA+C,EAGhF,GAAIkB,IAAW,UACb,MAAM,IAAIlB,GAAqB,gBAAgB,EAGjD,GAAIoB,GAAU,OAAOA,GAAW,WAC9B,MAAM,IAAIpB,GAAqB,yBAAyB,EAG1D,MAAM,iBAAiB,EAEvB,KAAK,OAASmB,GAAU,KACxB,KAAK,gBAAkBE,GAAmB,KAC1C,KAAK,QAAUL,EACf,KAAK,MAAQ,KACb,KAAK,QAAU,KACf,KAAK,OAASI,GAAU,KAExB,KAAK,IAAM,IAAIX,GAAgB,EAAE,GAAG,QAASN,GAAK,GAAG,EAErD,KAAK,IAAM,IAAIL,GAAO,CACpB,mBAAoBiB,EAAK,WACzB,YAAa,GACb,KAAM,IAAM,CACV,GAAM,CAAE,KAAAO,CAAK,EAAI,KAEbA,GAAQA,EAAK,QACfA,EAAK,OAAO,CAEhB,EACA,MAAO,CAACC,EAAOC,EAAUZ,IAAa,CACpC,GAAM,CAAE,IAAAa,CAAI,EAAI,KAEZA,EAAI,KAAKF,EAAOC,CAAQ,GAAKC,EAAI,eAAe,UAClDb,EAAS,EAETa,EAAIjB,EAAO,EAAII,CAEnB,EACA,QAAS,CAACD,EAAKC,IAAa,CAC1B,GAAM,CAAE,KAAAU,EAAM,IAAAG,EAAK,IAAAC,EAAK,IAAAC,EAAK,MAAAC,CAAM,EAAI,KAEnC,CAACjB,GAAO,CAACgB,EAAI,eAAe,aAC9BhB,EAAM,IAAIT,IAGR0B,GAASjB,GACXiB,EAAM,EAGRzB,GAAK,QAAQmB,EAAMX,CAAG,EACtBR,GAAK,QAAQsB,EAAKd,CAAG,EACrBR,GAAK,QAAQuB,EAAKf,CAAG,EAErBL,GAAa,IAAI,EAEjBM,EAASD,CAAG,CACd,CACF,CAAC,EAAE,GAAG,YAAa,IAAM,CACvB,GAAM,CAAE,IAAAc,CAAI,EAAI,KAGhBA,EAAI,KAAK,IAAI,CACf,CAAC,EAED,KAAK,IAAM,KAEXpB,GAAU,KAAMY,CAAM,CACxB,CAEA,UAAWW,EAAOC,EAAS,CACzB,GAAM,CAAE,IAAAF,EAAK,IAAAD,CAAI,EAAI,KAIrB,GAFAnB,GAAO,CAACmB,EAAK,4BAA4B,EAErCC,EAAI,UACN,MAAM,IAAIzB,GAGZ,KAAK,MAAQ0B,EACb,KAAK,QAAUC,CACjB,CAEA,UAAWC,EAAYC,EAAYrB,EAAQ,CACzC,GAAM,CAAE,OAAAS,EAAQ,QAAAH,EAAS,QAAAa,CAAQ,EAAI,KAErC,GAAIC,EAAa,IAAK,CACpB,GAAI,KAAK,OAAQ,CACf,IAAME,EAAU,KAAK,kBAAoB,MAAQ7B,GAAK,gBAAgB4B,CAAU,EAAI5B,GAAK,aAAa4B,CAAU,EAChH,KAAK,OAAO,CAAE,WAAAD,EAAY,QAAAE,CAAQ,CAAC,CACrC,CACA,MACF,CAEA,KAAK,IAAM,IAAInB,GAAiBH,CAAM,EAEtC,IAAIY,EACJ,GAAI,CACF,KAAK,QAAU,KACf,IAAMU,EAAU,KAAK,kBAAoB,MAAQ7B,GAAK,gBAAgB4B,CAAU,EAAI5B,GAAK,aAAa4B,CAAU,EAChHT,EAAO,KAAK,gBAAgBN,EAAS,KAAM,CACzC,WAAAc,EACA,QAAAE,EACA,OAAAb,EACA,KAAM,KAAK,IACX,QAAAU,CACF,CAAC,CACH,OAASlB,EAAK,CACZ,WAAK,IAAI,GAAG,QAASR,GAAK,GAAG,EACvBQ,CACR,CAEA,GAAI,CAACW,GAAQ,OAAOA,EAAK,IAAO,WAC9B,MAAM,IAAIrB,GAAwB,mBAAmB,EAGvDqB,EACG,GAAG,OAASC,GAAU,CACrB,GAAM,CAAE,IAAAI,EAAK,KAAAL,CAAK,EAAI,KAElB,CAACK,EAAI,KAAKJ,CAAK,GAAKD,EAAK,OAC3BA,EAAK,MAAM,CAEf,CAAC,EACA,GAAG,QAAUX,GAAQ,CACpB,GAAM,CAAE,IAAAgB,CAAI,EAAI,KAEhBxB,GAAK,QAAQwB,EAAKhB,CAAG,CACvB,CAAC,EACA,GAAG,MAAO,IAAM,CACf,GAAM,CAAE,IAAAgB,CAAI,EAAI,KAEhBA,EAAI,KAAK,IAAI,CACf,CAAC,EACA,GAAG,QAAS,IAAM,CACjB,GAAM,CAAE,IAAAA,CAAI,EAAI,KAEXA,EAAI,eAAe,OACtBxB,GAAK,QAAQwB,EAAK,IAAIzB,EAAqB,CAE/C,CAAC,EAEH,KAAK,KAAOoB,CACd,CAEA,OAAQC,EAAO,CACb,GAAM,CAAE,IAAAG,CAAI,EAAI,KAChB,OAAOA,EAAI,KAAKH,CAAK,CACvB,CAEA,WAAYU,EAAU,CACpB,GAAM,CAAE,IAAAP,CAAI,EAAI,KAChBA,EAAI,KAAK,IAAI,CACf,CAEA,QAASf,EAAK,CACZ,GAAM,CAAE,IAAAgB,CAAI,EAAI,KAChB,KAAK,QAAU,KACfxB,GAAK,QAAQwB,EAAKhB,CAAG,CACvB,CACF,EAEA,SAASuB,GAAUnB,EAAMC,EAAS,CAChC,GAAI,CACF,IAAMmB,EAAkB,IAAIrB,GAAgBC,EAAMC,CAAO,EACzD,YAAK,SAAS,CAAE,GAAGD,EAAM,KAAMoB,EAAgB,GAAI,EAAGA,CAAe,EAC9DA,EAAgB,GACzB,OAASxB,EAAK,CACZ,OAAO,IAAIZ,GAAY,EAAE,QAAQY,CAAG,CACtC,CACF,CAEAf,GAAO,QAAUsC,KCxPjB,IAAAE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,qBAAAC,GAAsB,oBAAAC,GAAqB,YAAAC,EAAY,EAAI,KAC7D,CAAE,cAAAC,EAAc,EAAI,QAAQ,aAAa,EACzCC,GAAO,IACP,CAAE,UAAAC,GAAW,aAAAC,EAAa,EAAI,KAC9BC,GAAS,QAAQ,QAAQ,EAEzBC,GAAN,cAA6BL,EAAc,CACzC,YAAaM,EAAMC,EAAU,CAC3B,GAAI,CAACD,GAAQ,OAAOA,GAAS,SAC3B,MAAM,IAAIT,GAAqB,cAAc,EAG/C,GAAI,OAAOU,GAAa,WACtB,MAAM,IAAIV,GAAqB,kBAAkB,EAGnD,GAAM,CAAE,OAAAW,EAAQ,OAAAC,EAAQ,gBAAAC,CAAgB,EAAIJ,EAE5C,GAAIE,GAAU,OAAOA,EAAO,IAAO,YAAc,OAAOA,EAAO,kBAAqB,WAClF,MAAM,IAAIX,GAAqB,+CAA+C,EAGhF,MAAM,gBAAgB,EAEtB,KAAK,gBAAkBa,GAAmB,KAC1C,KAAK,OAASD,GAAU,KACxB,KAAK,SAAWF,EAChB,KAAK,MAAQ,KACb,KAAK,QAAU,KAEfL,GAAU,KAAMM,CAAM,CACxB,CAEA,UAAWG,EAAOC,EAAS,CACzB,GAAI,CAAC,KAAK,SACR,MAAM,IAAId,GAGZ,KAAK,MAAQa,EACb,KAAK,QAAU,IACjB,CAEA,WAAa,CACX,MAAM,IAAIZ,GAAY,cAAe,IAAI,CAC3C,CAEA,UAAWc,EAAYC,EAAYC,EAAQ,CACzC,GAAM,CAAE,SAAAR,EAAU,OAAAE,EAAQ,QAAAG,CAAQ,EAAI,KAEtCR,GAAO,YAAYS,EAAY,GAAG,EAElCV,GAAa,IAAI,EAEjB,KAAK,SAAW,KAChB,IAAMa,EAAU,KAAK,kBAAoB,MAAQf,GAAK,gBAAgBa,CAAU,EAAIb,GAAK,aAAaa,CAAU,EAChH,KAAK,gBAAgBP,EAAU,KAAM,KAAM,CACzC,QAAAS,EACA,OAAAD,EACA,OAAAN,EACA,QAAAG,CACF,CAAC,CACH,CAEA,QAASK,EAAK,CACZ,GAAM,CAAE,SAAAV,EAAU,OAAAE,CAAO,EAAI,KAE7BN,GAAa,IAAI,EAEbI,IACF,KAAK,SAAW,KAChB,eAAe,IAAM,CACnB,KAAK,gBAAgBA,EAAU,KAAMU,EAAK,CAAE,OAAAR,CAAO,CAAC,CACtD,CAAC,EAEL,CACF,EAEA,SAASS,GAASZ,EAAMC,EAAU,CAChC,GAAIA,IAAa,OACf,OAAO,IAAI,QAAQ,CAACY,EAASC,IAAW,CACtCF,GAAQ,KAAK,KAAMZ,EAAM,CAACW,EAAKI,IACtBJ,EAAMG,EAAOH,CAAG,EAAIE,EAAQE,CAAI,CACxC,CACH,CAAC,EAGH,GAAI,CACF,IAAMC,EAAiB,IAAIjB,GAAeC,EAAMC,CAAQ,EACxD,KAAK,SAAS,CACZ,GAAGD,EACH,OAAQA,EAAK,QAAU,MACvB,QAASA,EAAK,UAAY,WAC5B,EAAGgB,CAAc,CACnB,OAASL,EAAK,CACZ,GAAI,OAAOV,GAAa,WACtB,MAAMU,EAER,IAAMR,EAASH,GAAQA,EAAK,OAC5B,eAAe,IAAMC,EAASU,EAAK,CAAE,OAAAR,CAAO,CAAC,CAAC,CAChD,CACF,CAEAb,GAAO,QAAUsB,KCxGjB,IAAAK,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,qBAAAC,GAAsB,oBAAAC,GAAqB,YAAAC,EAAY,EAAI,KAC7D,CAAE,cAAAC,EAAc,EAAI,QAAQ,aAAa,EACzCC,GAAO,IACP,CAAE,UAAAC,GAAW,aAAAC,EAAa,EAAI,KAE9BC,GAAN,cAA6BJ,EAAc,CACzC,YAAaK,EAAMC,EAAU,CAC3B,GAAI,CAACD,GAAQ,OAAOA,GAAS,SAC3B,MAAM,IAAIR,GAAqB,cAAc,EAG/C,GAAI,OAAOS,GAAa,WACtB,MAAM,IAAIT,GAAqB,kBAAkB,EAGnD,GAAM,CAAE,OAAAU,EAAQ,OAAAC,EAAQ,gBAAAC,CAAgB,EAAIJ,EAE5C,GAAIE,GAAU,OAAOA,EAAO,IAAO,YAAc,OAAOA,EAAO,kBAAqB,WAClF,MAAM,IAAIV,GAAqB,+CAA+C,EAGhF,MAAM,gBAAgB,EAEtB,KAAK,OAASW,GAAU,KACxB,KAAK,gBAAkBC,GAAmB,KAC1C,KAAK,SAAWH,EAChB,KAAK,MAAQ,KAEbJ,GAAU,KAAMK,CAAM,CACxB,CAEA,UAAWG,EAAOC,EAAS,CACzB,GAAI,CAAC,KAAK,SACR,MAAM,IAAIb,GAGZ,KAAK,MAAQY,EACb,KAAK,QAAUC,CACjB,CAEA,WAAa,CACX,MAAM,IAAIZ,GAAY,cAAe,IAAI,CAC3C,CAEA,UAAWa,EAAYC,EAAYC,EAAQ,CACzC,GAAM,CAAE,SAAAR,EAAU,OAAAE,EAAQ,QAAAG,CAAQ,EAAI,KAEtCR,GAAa,IAAI,EAEjB,KAAK,SAAW,KAChB,IAAMY,EAAU,KAAK,kBAAoB,MAAQd,GAAK,gBAAgBY,CAAU,EAAIZ,GAAK,aAAaY,CAAU,EAChH,KAAK,gBAAgBP,EAAU,KAAM,KAAM,CACzC,WAAAM,EACA,QAAAG,EACA,OAAAD,EACA,OAAAN,EACA,QAAAG,CACF,CAAC,CACH,CAEA,QAASK,EAAK,CACZ,GAAM,CAAE,SAAAV,EAAU,OAAAE,CAAO,EAAI,KAE7BL,GAAa,IAAI,EAEbG,IACF,KAAK,SAAW,KAChB,eAAe,IAAM,CACnB,KAAK,gBAAgBA,EAAU,KAAMU,EAAK,CAAE,OAAAR,CAAO,CAAC,CACtD,CAAC,EAEL,CACF,EAEA,SAASS,GAASZ,EAAMC,EAAU,CAChC,GAAIA,IAAa,OACf,OAAO,IAAI,QAAQ,CAACY,EAASC,IAAW,CACtCF,GAAQ,KAAK,KAAMZ,EAAM,CAACW,EAAKI,IACtBJ,EAAMG,EAAOH,CAAG,EAAIE,EAAQE,CAAI,CACxC,CACH,CAAC,EAGH,GAAI,CACF,IAAMC,EAAiB,IAAIjB,GAAeC,EAAMC,CAAQ,EACxD,KAAK,SAAS,CAAE,GAAGD,EAAM,OAAQ,SAAU,EAAGgB,CAAc,CAC9D,OAASL,EAAK,CACZ,GAAI,OAAOV,GAAa,WACtB,MAAMU,EAER,IAAMR,EAASH,GAAQA,EAAK,OAC5B,eAAe,IAAMC,EAASU,EAAK,CAAE,OAAAR,CAAO,CAAC,CAAC,CAChD,CACF,CAEAZ,GAAO,QAAUqB,KCjGjB,IAAAK,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEAA,GAAO,QAAQ,QAAU,KACzBA,GAAO,QAAQ,OAAS,KACxBA,GAAO,QAAQ,SAAW,KAC1BA,GAAO,QAAQ,QAAU,KACzBA,GAAO,QAAQ,QAAU,OCNzB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,YAAAC,EAAY,EAAI,KAElBC,GAAN,MAAMC,UAA4BF,EAAY,CAC5C,YAAaG,EAAS,CACpB,MAAMA,CAAO,EACb,MAAM,kBAAkB,KAAMD,CAAmB,EACjD,KAAK,KAAO,sBACZ,KAAK,QAAUC,GAAW,4DAC1B,KAAK,KAAO,+BACd,CACF,EAEAJ,GAAO,QAAU,CACf,oBAAAE,EACF,IChBA,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEAA,GAAO,QAAU,CACf,OAAQ,OAAO,OAAO,EACtB,SAAU,OAAO,SAAS,EAC1B,SAAU,OAAO,SAAS,EAC1B,YAAa,OAAO,YAAY,EAChC,aAAc,OAAO,cAAc,EACnC,gBAAiB,OAAO,iBAAiB,EACzC,iBAAkB,OAAO,kBAAkB,EAC3C,eAAgB,OAAO,gBAAgB,EACvC,WAAY,OAAO,YAAY,EAC/B,cAAe,OAAO,gBAAgB,EACtC,cAAe,OAAO,gBAAgB,EACtC,cAAe,OAAO,eAAe,EACrC,OAAQ,OAAO,OAAO,EACtB,eAAgB,OAAO,sBAAsB,EAC7C,QAAS,OAAO,QAAQ,EACxB,cAAe,OAAO,gBAAgB,EACtC,YAAa,OAAO,aAAa,EACjC,eAAgB,OAAO,iBAAiB,EACxC,WAAY,OAAO,WAAW,CAChC,ICtBA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,oBAAAC,EAAoB,EAAI,KAC1B,CACJ,YAAAC,GACA,WAAAC,GACA,kBAAAC,GACA,QAAAC,GACA,eAAAC,EACF,EAAI,KACE,CAAE,SAAAC,GAAU,IAAAC,EAAI,EAAI,IACpB,CAAE,aAAAC,EAAa,EAAI,QAAQ,MAAM,EACjC,CACJ,MAAO,CACL,UAAAC,EACF,CACF,EAAI,QAAQ,MAAM,EAElB,SAASC,GAAYC,EAAOC,EAAO,CACjC,OAAI,OAAOD,GAAU,SACZA,IAAUC,EAEfD,aAAiB,OACZA,EAAM,KAAKC,CAAK,EAErB,OAAOD,GAAU,WACZA,EAAMC,CAAK,IAAM,GAEnB,EACT,CAEA,SAASC,GAAkBC,EAAS,CAClC,OAAO,OAAO,YACZ,OAAO,QAAQA,CAAO,EAAE,IAAI,CAAC,CAACC,EAAYC,CAAW,IAC5C,CAACD,EAAW,kBAAkB,EAAGC,CAAW,CACpD,CACH,CACF,CAMA,SAASC,GAAiBH,EAASI,EAAK,CACtC,GAAI,MAAM,QAAQJ,CAAO,EAAG,CAC1B,QAASK,EAAI,EAAGA,EAAIL,EAAQ,OAAQK,GAAK,EACvC,GAAIL,EAAQK,CAAC,EAAE,kBAAkB,IAAMD,EAAI,kBAAkB,EAC3D,OAAOJ,EAAQK,EAAI,CAAC,EAIxB,MACF,KAAO,QAAI,OAAOL,EAAQ,KAAQ,WACzBA,EAAQ,IAAII,CAAG,EAEfL,GAAiBC,CAAO,EAAEI,EAAI,kBAAkB,CAAC,CAE5D,CAGA,SAASE,GAAuBN,EAAS,CACvC,IAAMO,EAAQP,EAAQ,MAAM,EACtBQ,EAAU,CAAC,EACjB,QAASC,EAAQ,EAAGA,EAAQF,EAAM,OAAQE,GAAS,EACjDD,EAAQ,KAAK,CAACD,EAAME,CAAK,EAAGF,EAAME,EAAQ,CAAC,CAAC,CAAC,EAE/C,OAAO,OAAO,YAAYD,CAAO,CACnC,CAEA,SAASE,GAAcC,EAAcX,EAAS,CAC5C,GAAI,OAAOW,EAAa,SAAY,WAClC,OAAI,MAAM,QAAQX,CAAO,IACvBA,EAAUM,GAAsBN,CAAO,GAElCW,EAAa,QAAQX,EAAUD,GAAiBC,CAAO,EAAI,CAAC,CAAC,EAEtE,GAAI,OAAOW,EAAa,QAAY,IAClC,MAAO,GAET,GAAI,OAAOX,GAAY,UAAY,OAAOW,EAAa,SAAY,SACjE,MAAO,GAGT,OAAW,CAACC,EAAiBC,CAAgB,IAAK,OAAO,QAAQF,EAAa,OAAO,EAAG,CACtF,IAAMT,EAAcC,GAAgBH,EAASY,CAAe,EAE5D,GAAI,CAAChB,GAAWiB,EAAkBX,CAAW,EAC3C,MAAO,EAEX,CACA,MAAO,EACT,CAEA,SAASY,GAASC,EAAM,CACtB,GAAI,OAAOA,GAAS,SAClB,OAAOA,EAGT,IAAMC,EAAeD,EAAK,MAAM,GAAG,EAEnC,GAAIC,EAAa,SAAW,EAC1B,OAAOD,EAGT,IAAME,EAAK,IAAI,gBAAgBD,EAAa,IAAI,CAAC,EACjD,OAAAC,EAAG,KAAK,EACD,CAAC,GAAGD,EAAcC,EAAG,SAAS,CAAC,EAAE,KAAK,GAAG,CAClD,CAEA,SAASC,GAAUP,EAAc,CAAE,KAAAI,EAAM,OAAAI,EAAQ,KAAAC,EAAM,QAAApB,CAAQ,EAAG,CAChE,IAAMqB,EAAYzB,GAAWe,EAAa,KAAMI,CAAI,EAC9CO,EAAc1B,GAAWe,EAAa,OAAQQ,CAAM,EACpDI,EAAY,OAAOZ,EAAa,KAAS,IAAcf,GAAWe,EAAa,KAAMS,CAAI,EAAI,GAC7FI,EAAed,GAAaC,EAAcX,CAAO,EACvD,OAAOqB,GAAaC,GAAeC,GAAaC,CAClD,CAEA,SAASC,GAAiBC,EAAM,CAC9B,OAAI,OAAO,SAASA,CAAI,EACfA,EACE,OAAOA,GAAS,SAClB,KAAK,UAAUA,CAAI,EAEnBA,EAAK,SAAS,CAEzB,CAEA,SAASC,GAAiBC,EAAgBxB,EAAK,CAC7C,IAAMyB,EAAWzB,EAAI,MAAQZ,GAASY,EAAI,KAAMA,EAAI,KAAK,EAAIA,EAAI,KAC3D0B,EAAe,OAAOD,GAAa,SAAWf,GAAQe,CAAQ,EAAIA,EAGpEE,EAAwBH,EAAe,OAAO,CAAC,CAAE,SAAAI,CAAS,IAAM,CAACA,CAAQ,EAAE,OAAO,CAAC,CAAE,KAAAjB,CAAK,IAAMnB,GAAWkB,GAAQC,CAAI,EAAGe,CAAY,CAAC,EAC3I,GAAIC,EAAsB,SAAW,EACnC,MAAM,IAAI7C,GAAoB,uCAAuC4C,CAAY,GAAG,EAKtF,GADAC,EAAwBA,EAAsB,OAAO,CAAC,CAAE,OAAAZ,CAAO,IAAMvB,GAAWuB,EAAQf,EAAI,MAAM,CAAC,EAC/F2B,EAAsB,SAAW,EACnC,MAAM,IAAI7C,GAAoB,yCAAyCkB,EAAI,MAAM,GAAG,EAKtF,GADA2B,EAAwBA,EAAsB,OAAO,CAAC,CAAE,KAAAX,CAAK,IAAM,OAAOA,EAAS,IAAcxB,GAAWwB,EAAMhB,EAAI,IAAI,EAAI,EAAI,EAC9H2B,EAAsB,SAAW,EACnC,MAAM,IAAI7C,GAAoB,uCAAuCkB,EAAI,IAAI,GAAG,EAKlF,GADA2B,EAAwBA,EAAsB,OAAQpB,GAAiBD,GAAaC,EAAcP,EAAI,OAAO,CAAC,EAC1G2B,EAAsB,SAAW,EACnC,MAAM,IAAI7C,GAAoB,0CAA0C,OAAOkB,EAAI,SAAY,SAAW,KAAK,UAAUA,EAAI,OAAO,EAAIA,EAAI,OAAO,GAAG,EAGxJ,OAAO2B,EAAsB,CAAC,CAChC,CAEA,SAASE,GAAiBL,EAAgBxB,EAAKsB,EAAM,CACnD,IAAMQ,EAAW,CAAE,aAAc,EAAG,MAAO,EAAG,QAAS,GAAO,SAAU,EAAM,EACxEC,EAAY,OAAOT,GAAS,WAAa,CAAE,SAAUA,CAAK,EAAI,CAAE,GAAGA,CAAK,EACxEU,EAAkB,CAAE,GAAGF,EAAU,GAAG9B,EAAK,QAAS,GAAM,KAAM,CAAE,MAAO,KAAM,GAAG+B,CAAU,CAAE,EAClG,OAAAP,EAAe,KAAKQ,CAAe,EAC5BA,CACT,CAEA,SAASC,GAAoBT,EAAgBxB,EAAK,CAChD,IAAMK,EAAQmB,EAAe,UAAUU,GAChCA,EAAS,SAGPpB,GAASoB,EAAUlC,CAAG,EAFpB,EAGV,EACGK,IAAU,IACZmB,EAAe,OAAOnB,EAAO,CAAC,CAElC,CAEA,SAAS8B,GAAUC,EAAM,CACvB,GAAM,CAAE,KAAAzB,EAAM,OAAAI,EAAQ,KAAAC,EAAM,QAAApB,EAAS,MAAAyC,CAAM,EAAID,EAC/C,MAAO,CACL,KAAAzB,EACA,OAAAI,EACA,KAAAC,EACA,QAAApB,EACA,MAAAyC,CACF,CACF,CAEA,SAASC,GAAmBhB,EAAM,CAChC,OAAO,OAAO,QAAQA,CAAI,EAAE,OAAO,CAACiB,EAAe,CAACvC,EAAKN,CAAK,IAAM,CAClE,GAAG6C,EACH,OAAO,KAAK,GAAGvC,CAAG,EAAE,EACpB,MAAM,QAAQN,CAAK,EAAIA,EAAM,IAAI8C,GAAK,OAAO,KAAK,GAAGA,CAAC,EAAE,CAAC,EAAI,OAAO,KAAK,GAAG9C,CAAK,EAAE,CACrF,EAAG,CAAC,CAAC,CACP,CAMA,SAAS+C,GAAeC,EAAY,CAClC,OAAOpD,GAAaoD,CAAU,GAAK,SACrC,CAEA,eAAeC,GAAa3B,EAAM,CAChC,IAAM4B,EAAU,CAAC,EACjB,cAAiBtB,KAAQN,EACvB4B,EAAQ,KAAKtB,CAAI,EAEnB,OAAO,OAAO,OAAOsB,CAAO,EAAE,SAAS,MAAM,CAC/C,CAKA,SAASrC,GAAc6B,EAAMS,EAAS,CAEpC,IAAM7C,EAAMmC,GAASC,CAAI,EACnB7B,EAAegB,GAAgB,KAAKxC,EAAW,EAAGiB,CAAG,EAE3DO,EAAa,eAGTA,EAAa,KAAK,WACpBA,EAAa,KAAO,CAAE,GAAGA,EAAa,KAAM,GAAGA,EAAa,KAAK,SAAS6B,CAAI,CAAE,GAIlF,GAAM,CAAE,KAAM,CAAE,WAAAM,EAAY,KAAApB,EAAM,QAAA1B,EAAS,SAAAkD,EAAU,MAAAC,CAAM,EAAG,MAAAC,EAAO,QAAAC,CAAQ,EAAI1C,EAC3E,CAAE,aAAA2C,EAAc,MAAAC,CAAM,EAAI5C,EAOhC,GAJAA,EAAa,SAAW,CAAC0C,GAAWC,GAAgBC,EACpD5C,EAAa,QAAU2C,EAAeC,EAGlCJ,IAAU,KACZ,OAAAd,GAAmB,KAAKlD,EAAW,EAAGiB,CAAG,EACzC6C,EAAQ,QAAQE,CAAK,EACd,GAIL,OAAOC,GAAU,UAAYA,EAAQ,EACvC,WAAW,IAAM,CACfI,EAAY,KAAKrE,EAAW,CAAC,CAC/B,EAAGiE,CAAK,EAERI,EAAY,KAAKrE,EAAW,CAAC,EAG/B,SAASqE,EAAa5B,EAAgB6B,EAAQ/B,EAAM,CAElD,IAAMgC,EAAc,MAAM,QAAQlB,EAAK,OAAO,EAC1ClC,GAAsBkC,EAAK,OAAO,EAClCA,EAAK,QACHpB,EAAO,OAAOqC,GAAU,WAC1BA,EAAM,CAAE,GAAGjB,EAAM,QAASkB,CAAY,CAAC,EACvCD,EAGJ,GAAI9D,GAAUyB,CAAI,EAAG,CAMnBA,EAAK,KAAMuC,GAAYH,EAAY5B,EAAgB+B,CAAO,CAAC,EAC3D,MACF,CAEA,IAAMC,EAAenC,GAAgBL,CAAI,EACnCyC,EAAkBnB,GAAkB1C,CAAO,EAC3C8D,EAAmBpB,GAAkBQ,CAAQ,EAEnDD,EAAQ,MAAQxD,GAChBwD,EAAQ,UAAUH,EAAYe,EAAiBE,EAAQlB,GAAcC,CAAU,CAAC,EAChFG,EAAQ,OAAO,OAAO,KAAKW,CAAY,CAAC,EACxCX,EAAQ,WAAWa,CAAgB,EACnCzB,GAAmBT,EAAgBxB,CAAG,CACxC,CAEA,SAAS2D,GAAU,CAAC,CAEpB,MAAO,EACT,CAEA,SAASC,IAAqB,CAC5B,IAAMC,EAAQ,KAAK7E,EAAU,EACvB8E,EAAS,KAAK5E,EAAO,EACrB6E,EAAmB,KAAK9E,EAAiB,EAE/C,OAAO,SAAmBmD,EAAMS,EAAS,CACvC,GAAIgB,EAAM,aACR,GAAI,CACFtD,GAAa,KAAK,KAAM6B,EAAMS,CAAO,CACvC,OAASE,EAAO,CACd,GAAIA,aAAiBjE,GAAqB,CACxC,IAAMkF,EAAaH,EAAM1E,EAAc,EAAE,EACzC,GAAI6E,IAAe,GACjB,MAAM,IAAIlF,GAAoB,GAAGiE,EAAM,OAAO,kCAAkCe,CAAM,yCAAyC,EAEjI,GAAIG,GAAgBD,EAAYF,CAAM,EACpCC,EAAiB,KAAK,KAAM3B,EAAMS,CAAO,MAEzC,OAAM,IAAI/D,GAAoB,GAAGiE,EAAM,OAAO,kCAAkCe,CAAM,+DAA+D,CAEzJ,KACE,OAAMf,CAEV,MAEAgB,EAAiB,KAAK,KAAM3B,EAAMS,CAAO,CAE7C,CACF,CAEA,SAASoB,GAAiBD,EAAYF,EAAQ,CAC5C,IAAMI,EAAM,IAAI,IAAIJ,CAAM,EAC1B,OAAIE,IAAe,GACV,GACE,SAAM,QAAQA,CAAU,GAAKA,EAAW,KAAMG,GAAY3E,GAAW2E,EAASD,EAAI,IAAI,CAAC,EAIpG,CAEA,SAASE,GAAkBhC,EAAM,CAC/B,GAAIA,EAAM,CACR,GAAM,CAAE,MAAAyB,EAAO,GAAGQ,CAAY,EAAIjC,EAClC,OAAOiC,CACT,CACF,CAEAxF,GAAO,QAAU,CACf,gBAAAwC,GACA,gBAAAE,GACA,gBAAAM,GACA,mBAAAI,GACA,SAAAE,GACA,kBAAAG,GACA,WAAA9C,GACA,YAAAmD,GACA,cAAAF,GACA,aAAAlC,GACA,kBAAAqD,GACA,gBAAAK,GACA,iBAAAG,GACA,gBAAArE,EACF,IC9VA,IAAAuE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,gBAAAC,GAAiB,SAAAC,GAAU,gBAAAC,EAAgB,EAAI,KACjD,CACJ,YAAAC,GACA,aAAAC,GACA,gBAAAC,GACA,iBAAAC,GACA,eAAAC,GACA,cAAAC,EACF,EAAI,KACE,CAAE,qBAAAC,EAAqB,EAAI,KAC3B,CAAE,SAAAC,EAAS,EAAI,IAKfC,GAAN,KAAgB,CACd,YAAaC,EAAc,CACzB,KAAKJ,EAAa,EAAII,CACxB,CAKA,MAAOC,EAAU,CACf,GAAI,OAAOA,GAAa,UAAY,CAAC,OAAO,UAAUA,CAAQ,GAAKA,GAAY,EAC7E,MAAM,IAAIJ,GAAqB,sCAAsC,EAGvE,YAAKD,EAAa,EAAE,MAAQK,EACrB,IACT,CAKA,SAAW,CACT,YAAKL,EAAa,EAAE,QAAU,GACvB,IACT,CAKA,MAAOM,EAAa,CAClB,GAAI,OAAOA,GAAgB,UAAY,CAAC,OAAO,UAAUA,CAAW,GAAKA,GAAe,EACtF,MAAM,IAAIL,GAAqB,yCAAyC,EAG1E,YAAKD,EAAa,EAAE,MAAQM,EACrB,IACT,CACF,EAKMC,GAAN,KAAsB,CACpB,YAAaC,EAAMC,EAAgB,CACjC,GAAI,OAAOD,GAAS,SAClB,MAAM,IAAIP,GAAqB,wBAAwB,EAEzD,GAAI,OAAOO,EAAK,KAAS,IACvB,MAAM,IAAIP,GAAqB,2BAA2B,EAQ5D,GANI,OAAOO,EAAK,OAAW,MACzBA,EAAK,OAAS,OAKZ,OAAOA,EAAK,MAAS,SACvB,GAAIA,EAAK,MACPA,EAAK,KAAON,GAASM,EAAK,KAAMA,EAAK,KAAK,MACrC,CAEL,IAAME,EAAY,IAAI,IAAIF,EAAK,KAAM,SAAS,EAC9CA,EAAK,KAAOE,EAAU,SAAWA,EAAU,MAC7C,CAEE,OAAOF,EAAK,QAAW,WACzBA,EAAK,OAASA,EAAK,OAAO,YAAY,GAGxC,KAAKZ,EAAY,EAAIH,GAASe,CAAI,EAClC,KAAKb,EAAW,EAAIc,EACpB,KAAKZ,EAAe,EAAI,CAAC,EACzB,KAAKC,EAAgB,EAAI,CAAC,EAC1B,KAAKC,EAAc,EAAI,EACzB,CAEA,4BAA6BY,EAAYC,EAAMC,EAAkB,CAAC,EAAG,CACnE,IAAMC,EAAetB,GAAgBoB,CAAI,EACnCG,EAAgB,KAAKhB,EAAc,EAAI,CAAE,iBAAkBe,EAAa,MAAO,EAAI,CAAC,EACpFE,EAAU,CAAE,GAAG,KAAKnB,EAAe,EAAG,GAAGkB,EAAe,GAAGF,EAAgB,OAAQ,EACnFI,EAAW,CAAE,GAAG,KAAKnB,EAAgB,EAAG,GAAGe,EAAgB,QAAS,EAE1E,MAAO,CAAE,WAAAF,EAAY,KAAAC,EAAM,QAAAI,EAAS,SAAAC,CAAS,CAC/C,CAEA,wBAAyBN,EAAYC,EAAMC,EAAiB,CAC1D,GAAI,OAAOF,EAAe,IACxB,MAAM,IAAIV,GAAqB,4BAA4B,EAE7D,GAAI,OAAOW,EAAS,IAClB,MAAM,IAAIX,GAAqB,sBAAsB,EAEvD,GAAI,OAAOY,GAAoB,SAC7B,MAAM,IAAIZ,GAAqB,mCAAmC,CAEtE,CAKA,MAAOiB,EAAW,CAGhB,GAAI,OAAOA,GAAc,WAAY,CAInC,IAAMC,EAA2BX,GAAS,CAExC,IAAMY,EAAeF,EAAUV,CAAI,EAGnC,GAAI,OAAOY,GAAiB,SAC1B,MAAM,IAAInB,GAAqB,8CAA8C,EAG/E,GAAM,CAAE,WAAAU,EAAY,KAAAC,EAAO,GAAI,gBAAAC,EAAkB,CAAC,CAAE,EAAIO,EACxD,YAAK,wBAAwBT,EAAYC,EAAMC,CAAe,EAGvD,CACL,GAAG,KAAK,4BAA4BF,EAAYC,EAAMC,CAAe,CACvE,CACF,EAGMQ,EAAkB3B,GAAgB,KAAKC,EAAW,EAAG,KAAKC,EAAY,EAAGuB,CAAuB,EACtG,OAAO,IAAIhB,GAAUkB,CAAe,CACtC,CAMA,GAAM,CAACV,EAAYC,EAAO,GAAIC,EAAkB,CAAC,CAAC,EAAI,CAAC,GAAG,SAAS,EACnE,KAAK,wBAAwBF,EAAYC,EAAMC,CAAe,EAG9D,IAAMS,EAAe,KAAK,4BAA4BX,EAAYC,EAAMC,CAAe,EACjFQ,EAAkB3B,GAAgB,KAAKC,EAAW,EAAG,KAAKC,EAAY,EAAG0B,CAAY,EAC3F,OAAO,IAAInB,GAAUkB,CAAe,CACtC,CAKA,eAAgBE,EAAO,CACrB,GAAI,OAAOA,EAAU,IACnB,MAAM,IAAItB,GAAqB,uBAAuB,EAGxD,IAAMoB,EAAkB3B,GAAgB,KAAKC,EAAW,EAAG,KAAKC,EAAY,EAAG,CAAE,MAAA2B,CAAM,CAAC,EACxF,OAAO,IAAIpB,GAAUkB,CAAe,CACtC,CAKA,oBAAqBL,EAAS,CAC5B,GAAI,OAAOA,EAAY,IACrB,MAAM,IAAIf,GAAqB,yBAAyB,EAG1D,YAAKJ,EAAe,EAAImB,EACjB,IACT,CAKA,qBAAsBC,EAAU,CAC9B,GAAI,OAAOA,EAAa,IACtB,MAAM,IAAIhB,GAAqB,0BAA0B,EAG3D,YAAKH,EAAgB,EAAImB,EAClB,IACT,CAKA,oBAAsB,CACpB,YAAKlB,EAAc,EAAI,GAChB,IACT,CACF,EAEAR,GAAO,QAAQ,gBAAkBgB,GACjChB,GAAO,QAAQ,UAAYY,KC7M3B,IAAAqB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,UAAAC,EAAU,EAAI,QAAQ,MAAM,EAC9BC,GAAS,KACT,CAAE,kBAAAC,EAAkB,EAAI,KACxB,CACJ,YAAAC,GACA,WAAAC,GACA,OAAAC,GACA,eAAAC,GACA,QAAAC,GACA,kBAAAC,GACA,WAAAC,EACF,EAAI,KACE,CAAE,gBAAAC,EAAgB,EAAI,KACtBC,GAAU,KACV,CAAE,qBAAAC,EAAqB,EAAI,KAK3BC,GAAN,cAAyBZ,EAAO,CAC9B,YAAaa,EAAQC,EAAM,CAGzB,GAFA,MAAMD,EAAQC,CAAI,EAEd,CAACA,GAAQ,CAACA,EAAK,OAAS,OAAOA,EAAK,MAAM,UAAa,WACzD,MAAM,IAAIH,GAAqB,0CAA0C,EAG3E,KAAKR,EAAU,EAAIW,EAAK,MACxB,KAAKR,EAAO,EAAIO,EAChB,KAAKX,EAAW,EAAI,CAAC,EACrB,KAAKM,EAAU,EAAI,EACnB,KAAKD,EAAiB,EAAI,KAAK,SAC/B,KAAKF,EAAc,EAAI,KAAK,MAAM,KAAK,IAAI,EAE3C,KAAK,SAAWJ,GAAkB,KAAK,IAAI,EAC3C,KAAK,MAAQ,KAAKG,EAAM,CAC1B,CAEA,IAAKM,GAAQ,UAAU,GAAK,CAC1B,OAAO,KAAKF,EAAU,CACxB,CAKA,UAAWM,EAAM,CACf,OAAO,IAAIL,GAAgBK,EAAM,KAAKZ,EAAW,CAAC,CACpD,CAEA,MAAOE,EAAM,GAAK,CAChB,MAAML,GAAU,KAAKM,EAAc,CAAC,EAAE,EACtC,KAAKG,EAAU,EAAI,EACnB,KAAKL,EAAU,EAAEO,GAAQ,QAAQ,EAAE,OAAO,KAAKJ,EAAO,CAAC,CACzD,CACF,EAEAR,GAAO,QAAUc,KC1DjB,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,UAAAC,EAAU,EAAI,QAAQ,MAAM,EAC9BC,GAAO,KACP,CAAE,kBAAAC,EAAkB,EAAI,KACxB,CACJ,YAAAC,GACA,WAAAC,GACA,OAAAC,GACA,eAAAC,GACA,QAAAC,GACA,kBAAAC,GACA,WAAAC,EACF,EAAI,KACE,CAAE,gBAAAC,EAAgB,EAAI,KACtBC,GAAU,KACV,CAAE,qBAAAC,EAAqB,EAAI,KAK3BC,GAAN,cAAuBZ,EAAK,CAC1B,YAAaa,EAAQC,EAAM,CAGzB,GAFA,MAAMD,EAAQC,CAAI,EAEd,CAACA,GAAQ,CAACA,EAAK,OAAS,OAAOA,EAAK,MAAM,UAAa,WACzD,MAAM,IAAIH,GAAqB,0CAA0C,EAG3E,KAAKR,EAAU,EAAIW,EAAK,MACxB,KAAKR,EAAO,EAAIO,EAChB,KAAKX,EAAW,EAAI,CAAC,EACrB,KAAKM,EAAU,EAAI,EACnB,KAAKD,EAAiB,EAAI,KAAK,SAC/B,KAAKF,EAAc,EAAI,KAAK,MAAM,KAAK,IAAI,EAE3C,KAAK,SAAWJ,GAAkB,KAAK,IAAI,EAC3C,KAAK,MAAQ,KAAKG,EAAM,CAC1B,CAEA,IAAKM,GAAQ,UAAU,GAAK,CAC1B,OAAO,KAAKF,EAAU,CACxB,CAKA,UAAWM,EAAM,CACf,OAAO,IAAIL,GAAgBK,EAAM,KAAKZ,EAAW,CAAC,CACpD,CAEA,MAAOE,EAAM,GAAK,CAChB,MAAML,GAAU,KAAKM,EAAc,CAAC,EAAE,EACtC,KAAKG,EAAU,EAAI,EACnB,KAAKL,EAAU,EAAEO,GAAQ,QAAQ,EAAE,OAAO,KAAKJ,EAAO,CAAC,CACzD,CACF,EAEAR,GAAO,QAAUc,KC1DjB,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAY,CAChB,QAAS,KACT,GAAI,KACJ,IAAK,MACL,KAAM,MACR,EAEMC,GAAU,CACd,QAAS,OACT,GAAI,MACJ,IAAK,OACL,KAAM,OACR,EAEAF,GAAO,QAAU,KAAiB,CAChC,YAAaG,EAAUC,EAAQ,CAC7B,KAAK,SAAWD,EAChB,KAAK,OAASC,CAChB,CAEA,UAAWC,EAAO,CAChB,IAAMC,EAAMD,IAAU,EAChBE,EAAOD,EAAML,GAAYC,GACzBM,EAAOF,EAAM,KAAK,SAAW,KAAK,OACxC,MAAO,CAAE,GAAGC,EAAM,MAAAF,EAAO,KAAAG,CAAK,CAChC,CACF,IC5BA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,UAAAC,EAAU,EAAI,QAAQ,QAAQ,EAChC,CAAE,QAAAC,EAAQ,EAAI,QAAQ,SAAS,EAKrCF,GAAO,QAAU,KAAmC,CAClD,YAAa,CAAE,cAAAG,CAAc,EAAI,CAAC,EAAG,CACnC,KAAK,UAAY,IAAIF,GAAU,CAC7B,UAAWG,EAAOC,EAAMC,EAAI,CAC1BA,EAAG,KAAMF,CAAK,CAChB,CACF,CAAC,EAED,KAAK,OAAS,IAAIF,GAAQ,CACxB,OAAQ,KAAK,UACb,eAAgB,CACd,OAAQ,CAACC,GAAiB,CAAC,QAAQ,IAAI,EACzC,CACF,CAAC,CACH,CAEA,OAAQI,EAAqB,CAC3B,IAAMC,EAAoBD,EAAoB,IAC5C,CAAC,CAAE,OAAAE,EAAQ,KAAAC,EAAM,KAAM,CAAE,WAAAC,CAAW,EAAG,QAAAC,EAAS,MAAAC,EAAO,aAAAC,EAAc,OAAAC,CAAO,KAAO,CACjF,OAAQN,EACR,OAAQM,EACR,KAAML,EACN,cAAeC,EACf,WAAYC,EAAU,SAAM,SAC5B,YAAaE,EACb,UAAWF,EAAU,IAAWC,EAAQC,CAC1C,EAAE,EAEJ,YAAK,OAAO,MAAMN,CAAiB,EAC5B,KAAK,UAAU,KAAK,EAAE,SAAS,CACxC,CACF,ICvCA,IAAAQ,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,SAAAC,EAAS,EAAI,KACfC,GAAQ,KACR,CACJ,OAAAC,GACA,cAAAC,GACA,cAAAC,GACA,YAAAC,GACA,cAAAC,GACA,YAAAC,GACA,eAAAC,GACA,SAAAC,GACA,SAAAC,EACF,EAAI,KACEC,GAAa,KACbC,GAAW,KACX,CAAE,WAAAC,GAAY,iBAAAC,EAAiB,EAAI,KACnC,CAAE,qBAAAC,GAAsB,YAAAC,EAAY,EAAI,KACxCC,GAAa,KACbC,GAAa,KACbC,GAA+B,KAE/BC,GAAN,KAAkB,CAChB,YAAaC,EAAO,CAClB,KAAK,MAAQA,CACf,CAEA,OAAS,CACP,OAAO,KAAK,KACd,CACF,EAEMC,GAAN,cAAwBL,EAAW,CACjC,YAAaM,EAAM,CAOjB,GANA,MAAMA,CAAI,EAEV,KAAKhB,EAAW,EAAI,GACpB,KAAKD,EAAa,EAAI,GAGjBiB,GAAQA,EAAK,OAAS,OAAOA,EAAK,MAAM,UAAa,WACxD,MAAM,IAAIR,GAAqB,0CAA0C,EAE3E,IAAMS,EAAQD,GAAQA,EAAK,MAAQA,EAAK,MAAQ,IAAItB,GAAMsB,CAAI,EAC9D,KAAKrB,EAAM,EAAIsB,EAEf,KAAKxB,EAAQ,EAAIwB,EAAMxB,EAAQ,EAC/B,KAAKS,EAAQ,EAAIK,GAAiBS,CAAI,CACxC,CAEA,IAAKE,EAAQ,CACX,IAAIC,EAAa,KAAKtB,EAAa,EAAEqB,CAAM,EAE3C,OAAKC,IACHA,EAAa,KAAKhB,EAAQ,EAAEe,CAAM,EAClC,KAAKtB,EAAa,EAAEsB,EAAQC,CAAU,GAEjCA,CACT,CAEA,SAAUH,EAAMI,EAAS,CAEvB,YAAK,IAAIJ,EAAK,MAAM,EACb,KAAKrB,EAAM,EAAE,SAASqB,EAAMI,CAAO,CAC5C,CAEA,MAAM,OAAS,CACb,MAAM,KAAKzB,EAAM,EAAE,MAAM,EACzB,KAAKF,EAAQ,EAAE,MAAM,CACvB,CAEA,YAAc,CACZ,KAAKM,EAAa,EAAI,EACxB,CAEA,UAAY,CACV,KAAKA,EAAa,EAAI,EACxB,CAEA,iBAAkBsB,EAAS,CACzB,GAAI,OAAOA,GAAY,UAAY,OAAOA,GAAY,YAAcA,aAAmB,OACjF,MAAM,QAAQ,KAAKrB,EAAW,CAAC,EACjC,KAAKA,EAAW,EAAE,KAAKqB,CAAO,EAE9B,KAAKrB,EAAW,EAAI,CAACqB,CAAO,UAErB,OAAOA,EAAY,IAC5B,KAAKrB,EAAW,EAAI,OAEpB,OAAM,IAAIQ,GAAqB,6DAA6D,CAEhG,CAEA,mBAAqB,CACnB,KAAKR,EAAW,EAAI,EACtB,CAIA,IAAI,cAAgB,CAClB,OAAO,KAAKD,EAAa,CAC3B,CAEA,CAACH,EAAa,EAAGsB,EAAQC,EAAY,CACnC,KAAK1B,EAAQ,EAAE,IAAIyB,EAAQ,IAAIL,GAAYM,CAAU,CAAC,CACxD,CAEA,CAAChB,EAAQ,EAAGe,EAAQ,CAClB,IAAMI,EAAc,OAAO,OAAO,CAAE,MAAO,IAAK,EAAG,KAAKpB,EAAQ,CAAC,EACjE,OAAO,KAAKA,EAAQ,GAAK,KAAKA,EAAQ,EAAE,cAAgB,EACpD,IAAIE,GAAWc,EAAQI,CAAW,EAClC,IAAIjB,GAASa,EAAQI,CAAW,CACtC,CAEA,CAACzB,EAAa,EAAGqB,EAAQ,CAEvB,IAAMK,EAAM,KAAK9B,EAAQ,EAAE,IAAIyB,CAAM,EACrC,GAAIK,EACF,OAAOA,EAAI,MAAM,EAInB,GAAI,OAAOL,GAAW,SAAU,CAC9B,IAAMC,EAAa,KAAKhB,EAAQ,EAAE,uBAAuB,EACzD,YAAKP,EAAa,EAAEsB,EAAQC,CAAU,EAC/BA,CACT,CAGA,OAAW,CAACK,EAAYC,CAAc,IAAK,MAAM,KAAK,KAAKhC,EAAQ,CAAC,EAAG,CACrE,IAAMiC,EAAwBD,EAAe,MAAM,EACnD,GAAIC,GAAyB,OAAOF,GAAe,UAAYlB,GAAWkB,EAAYN,CAAM,EAAG,CAC7F,IAAMC,EAAa,KAAKhB,EAAQ,EAAEe,CAAM,EACxC,YAAKtB,EAAa,EAAEsB,EAAQC,CAAU,EACtCA,EAAWrB,EAAW,EAAI4B,EAAsB5B,EAAW,EACpDqB,CACT,CACF,CACF,CAEA,CAAClB,EAAc,GAAK,CAClB,OAAO,KAAKD,EAAW,CACzB,CAEA,qBAAuB,CACrB,IAAM2B,EAAmB,KAAKlC,EAAQ,EAEtC,OAAO,MAAM,KAAKkC,EAAiB,QAAQ,CAAC,EACzC,QAAQ,CAAC,CAACT,EAAQU,CAAK,IAAMA,EAAM,MAAM,EAAE9B,EAAW,EAAE,IAAI+B,IAAa,CAAE,GAAGA,EAAU,OAAAX,CAAO,EAAE,CAAC,EAClG,OAAO,CAAC,CAAE,QAAAY,CAAQ,IAAMA,CAAO,CACpC,CAEA,4BAA6B,CAAE,6BAAAC,EAA+B,IAAInB,EAA+B,EAAI,CAAC,EAAG,CACvG,IAAMkB,EAAU,KAAK,oBAAoB,EAEzC,GAAIA,EAAQ,SAAW,EACrB,OAGF,IAAME,EAAa,IAAIrB,GAAW,cAAe,cAAc,EAAE,UAAUmB,EAAQ,MAAM,EAEzF,MAAM,IAAIrB,GAAY;AAAA,EACxBuB,EAAW,KAAK,IAAIA,EAAW,IAAI,IAAIA,EAAW,EAAE;AAAA;AAAA,EAEpDD,EAA6B,OAAOD,CAAO,CAAC;AAAA,EAC5C,KAAK,CAAC,CACN,CACF,EAEAtC,GAAO,QAAUuB,KC1KjB,IAAAkB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,OAAAC,GAAQ,OAAAC,GAAQ,SAAAC,GAAU,cAAAC,EAAc,EAAI,KAC9C,CAAE,IAAAC,EAAI,EAAI,QAAQ,KAAK,EACvBC,GAAQ,KACRC,GAAO,KACPC,GAAiB,KACjB,CAAE,qBAAAC,GAAsB,oBAAAC,EAAoB,EAAI,KAChDC,GAAiB,KAEjBC,GAAS,OAAO,aAAa,EAC7BC,GAAU,OAAO,cAAc,EAC/BC,GAAgB,OAAO,eAAe,EACtCC,GAAc,OAAO,sBAAsB,EAC3CC,GAAY,OAAO,oBAAoB,EACvCC,GAAmB,OAAO,2BAA2B,EAE3D,SAASC,GAAqBC,EAAU,CACtC,OAAOA,IAAa,SAAW,IAAM,EACvC,CAEA,SAASC,GAAmBC,EAAM,CAKhC,GAJI,OAAOA,GAAS,WAClBA,EAAO,CAAE,IAAKA,CAAK,GAGjB,CAACA,GAAQ,CAACA,EAAK,IACjB,MAAM,IAAIZ,GAAqB,6BAA6B,EAG9D,MAAO,CACL,IAAKY,EAAK,IACV,SAAUA,EAAK,UAAY,OAC7B,CACF,CAEA,SAASC,GAAgBC,EAAQF,EAAM,CACrC,OAAO,IAAId,GAAKgB,EAAQF,CAAI,CAC9B,CAEA,IAAMG,GAAN,cAAyBhB,EAAe,CACtC,YAAaa,EAAM,CAYjB,GAXA,MAAMA,CAAI,EACV,KAAKpB,EAAM,EAAImB,GAAkBC,CAAI,EACrC,KAAKT,EAAM,EAAI,IAAIN,GAAMe,CAAI,EAC7B,KAAKjB,EAAa,EAAIiB,EAAK,cAAgBA,EAAK,aAAa,YAAc,MAAM,QAAQA,EAAK,aAAa,UAAU,EACjHA,EAAK,aAAa,WAClB,CAAC,EAED,OAAOA,GAAS,WAClBA,EAAO,CAAE,IAAKA,CAAK,GAGjB,CAACA,GAAQ,CAACA,EAAK,IACjB,MAAM,IAAIZ,GAAqB,6BAA6B,EAG9D,GAAM,CAAE,cAAAgB,EAAgBH,EAAe,EAAID,EAE3C,GAAI,OAAOI,GAAkB,WAC3B,MAAM,IAAIhB,GAAqB,8CAA8C,EAO/E,GAJA,KAAKM,EAAW,EAAIM,EAAK,WACzB,KAAKL,EAAS,EAAIK,EAAK,SACvB,KAAKP,EAAa,EAAIO,EAAK,SAAW,CAAC,EAEnCA,EAAK,MAAQA,EAAK,MACpB,MAAM,IAAIZ,GAAqB,yDAAyD,EAC/EY,EAAK,KAEd,KAAKP,EAAa,EAAE,qBAAqB,EAAI,SAASO,EAAK,IAAI,GACtDA,EAAK,QACd,KAAKP,EAAa,EAAE,qBAAqB,EAAIO,EAAK,OAGpD,IAAMK,EAAc,IAAIrB,GAAIgB,EAAK,GAAG,EAC9B,CAAE,OAAAE,EAAQ,KAAAI,EAAM,KAAAC,CAAK,EAAIF,EAEzBG,EAAUlB,GAAe,CAAE,GAAGU,EAAK,QAAS,CAAC,EACnD,KAAKJ,EAAgB,EAAIN,GAAe,CAAE,GAAGU,EAAK,UAAW,CAAC,EAC9D,KAAKR,EAAO,EAAIY,EAAcC,EAAa,CAAE,QAAAG,CAAQ,CAAC,EACtD,KAAKjB,EAAM,EAAI,IAAIN,GAAM,CACvB,GAAGe,EACH,QAAS,MAAOA,EAAMS,IAAa,CACjC,IAAIC,EAAgBV,EAAK,KACpBA,EAAK,OACRU,GAAiB,IAAIb,GAAoBG,EAAK,QAAQ,CAAC,IAEzD,GAAI,CACF,GAAM,CAAE,OAAAW,EAAQ,WAAAC,CAAW,EAAI,MAAM,KAAKpB,EAAO,EAAE,QAAQ,CACzD,OAAAU,EACA,KAAAI,EACA,KAAMI,EACN,OAAQV,EAAK,OACb,QAAS,CACP,GAAG,KAAKP,EAAa,EACrB,KAAAc,CACF,CACF,CAAC,EAKD,GAJIK,IAAe,MACjBD,EAAO,GAAG,QAAS,IAAM,CAAC,CAAC,EAAE,QAAQ,EACrCF,EAAS,IAAIpB,GAAoB,4CAA4C,CAAC,GAE5EW,EAAK,WAAa,SAAU,CAC9BS,EAAS,KAAME,CAAM,EACrB,MACF,CACA,IAAIE,EACA,KAAKnB,EAAW,EAClBmB,EAAa,KAAKnB,EAAW,EAAE,WAE/BmB,EAAab,EAAK,WAEpB,KAAKJ,EAAgB,EAAE,CAAE,GAAGI,EAAM,WAAAa,EAAY,WAAYF,CAAO,EAAGF,CAAQ,CAC9E,OAASK,EAAK,CACZL,EAASK,CAAG,CACd,CACF,CACF,CAAC,CACH,CAEA,SAAUd,EAAMe,EAAS,CACvB,GAAM,CAAE,KAAAR,CAAK,EAAI,IAAIvB,GAAIgB,EAAK,MAAM,EAC9BgB,EAAUC,GAAajB,EAAK,OAAO,EACzC,OAAAkB,GAAuBF,CAAO,EACvB,KAAKzB,EAAM,EAAE,SAClB,CACE,GAAGS,EACH,QAAS,CACP,GAAGgB,EACH,KAAAT,CACF,CACF,EACAQ,CACF,CACF,CAEA,MAAOlC,EAAM,GAAK,CAChB,MAAM,KAAKU,EAAM,EAAE,MAAM,EACzB,MAAM,KAAKC,EAAO,EAAE,MAAM,CAC5B,CAEA,MAAOV,EAAQ,GAAK,CAClB,MAAM,KAAKS,EAAM,EAAE,QAAQ,EAC3B,MAAM,KAAKC,EAAO,EAAE,QAAQ,CAC9B,CACF,EAMA,SAASyB,GAAcD,EAAS,CAG9B,GAAI,MAAM,QAAQA,CAAO,EAAG,CAE1B,IAAMG,EAAc,CAAC,EAErB,QAASC,EAAI,EAAGA,EAAIJ,EAAQ,OAAQI,GAAK,EACvCD,EAAYH,EAAQI,CAAC,CAAC,EAAIJ,EAAQI,EAAI,CAAC,EAGzC,OAAOD,CACT,CAEA,OAAOH,CACT,CAUA,SAASE,GAAwBF,EAAS,CAGxC,GAFuBA,GAAW,OAAO,KAAKA,CAAO,EAClD,KAAMK,GAAQA,EAAI,YAAY,IAAM,qBAAqB,EAE1D,MAAM,IAAIjC,GAAqB,8DAA8D,CAEjG,CAEAT,GAAO,QAAUwB,KC1LjB,IAAAmB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,IAAMC,GAAmB,OAAO,IAAI,2BAA2B,EACzD,CAAE,qBAAAC,EAAqB,EAAI,KAC3BC,GAAQ,KAEVC,GAAoB,IAAM,QAC5BC,GAAoB,IAAIF,EAAO,EAGjC,SAASE,GAAqBC,EAAO,CACnC,GAAI,CAACA,GAAS,OAAOA,EAAM,UAAa,WACtC,MAAM,IAAIJ,GAAqB,qCAAqC,EAEtE,OAAO,eAAe,WAAYD,GAAkB,CAClD,MAAOK,EACP,SAAU,GACV,WAAY,GACZ,aAAc,EAChB,CAAC,CACH,CAEA,SAASF,IAAuB,CAC9B,OAAO,WAAWH,EAAgB,CACpC,CAEAD,GAAO,QAAU,CACf,oBAAAK,GACA,oBAAAD,EACF,IC/BA,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEAA,GAAO,QAAU,KAAuB,CACtC,YAAaC,EAAS,CACpB,KAAK,QAAUA,CACjB,CAEA,aAAcC,EAAM,CAClB,OAAO,KAAK,QAAQ,UAAU,GAAGA,CAAI,CACvC,CAEA,WAAYA,EAAM,CAChB,OAAO,KAAK,QAAQ,QAAQ,GAAGA,CAAI,CACrC,CAEA,aAAcA,EAAM,CAClB,OAAO,KAAK,QAAQ,UAAU,GAAGA,CAAI,CACvC,CAEA,aAAcA,EAAM,CAClB,OAAO,KAAK,QAAQ,UAAU,GAAGA,CAAI,CACvC,CAEA,UAAWA,EAAM,CACf,OAAO,KAAK,QAAQ,OAAO,GAAGA,CAAI,CACpC,CAEA,cAAeA,EAAM,CACnB,OAAO,KAAK,QAAQ,WAAW,GAAGA,CAAI,CACxC,CAEA,cAAeA,EAAM,CACnB,OAAO,KAAK,QAAQ,WAAW,GAAGA,CAAI,CACxC,CACF,IClCA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,GAAM,CAAE,aAAAC,EAAa,EAAI,KACnB,CAAE,OAAAC,EAAO,EAAI,KACb,CAAE,oBAAAC,EAAoB,EAAI,IAC1B,CACJ,aAAAC,GACA,kBAAAC,GACA,mBAAAC,EACF,EAAI,KACE,CAAE,OAAAC,CAAO,EAAI,KACbC,GAAS,QAAQ,QAAQ,EAEzBC,GAAc,OAAO,aAAa,EAClCC,GAAoB,OAAO,oBAAoB,EAMrD,SAASC,GAAsBC,EAAgB,CAO7C,IAAIC,EAAID,EAAe,OACvB,KAAO,YAAY,KAAKA,EAAe,OAAO,EAAEC,CAAC,CAAC,GAAE,CACpD,OAAOD,EAAe,MAAM,EAAGC,EAAI,CAAC,EAAE,QAAQ,cAAe,EAAE,CACjE,CAEA,SAASC,GAAMC,EAASC,EAAQ,CAK9B,GAAI,MAAM,QAAQA,CAAM,EACtB,QAAWC,KAAUD,EAAQ,CAE3B,GAAIC,EAAO,SAAW,EACpB,MAAMV,EAAO,OAAO,UAAU,CAC5B,OAAQ,sBACR,QAAS,kDAAkDU,EAAO,MAAM,GAC1E,CAAC,EAIHF,EAAQ,OAAOE,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,CACrC,SACS,OAAOD,GAAW,UAAYA,IAAW,KAKlD,OAAW,CAACE,EAAKC,CAAK,IAAK,OAAO,QAAQH,CAAM,EAC9CD,EAAQ,OAAOG,EAAKC,CAAK,MAG3B,OAAMZ,EAAO,OAAO,iBAAiB,CACnC,OAAQ,sBACR,SAAU,aACV,MAAO,CAAC,iCAAkC,gCAAgC,CAC5E,CAAC,CAEL,CAEA,IAAMa,GAAN,MAAMC,CAAY,CAEhB,QAAU,KAEV,YAAaC,EAAM,CACbA,aAAgBD,GAClB,KAAKZ,EAAW,EAAI,IAAI,IAAIa,EAAKb,EAAW,CAAC,EAC7C,KAAKC,EAAiB,EAAIY,EAAKZ,EAAiB,EAChD,KAAK,QAAUY,EAAK,UAEpB,KAAKb,EAAW,EAAI,IAAI,IAAIa,CAAI,EAChC,KAAKZ,EAAiB,EAAI,KAE9B,CAGA,SAAUa,EAAM,CAId,OAAAA,EAAOA,EAAK,YAAY,EAEjB,KAAKd,EAAW,EAAE,IAAIc,CAAI,CACnC,CAEA,OAAS,CACP,KAAKd,EAAW,EAAE,MAAM,EACxB,KAAKC,EAAiB,EAAI,KAC1B,KAAK,QAAU,IACjB,CAGA,OAAQa,EAAMJ,EAAO,CACnB,KAAKT,EAAiB,EAAI,KAI1B,IAAMc,EAAgBD,EAAK,YAAY,EACjCE,EAAS,KAAKhB,EAAW,EAAE,IAAIe,CAAa,EAGlD,GAAIC,EAAQ,CACV,IAAMC,EAAYF,IAAkB,SAAW,KAAO,KACtD,KAAKf,EAAW,EAAE,IAAIe,EAAe,CACnC,KAAMC,EAAO,KACb,MAAO,GAAGA,EAAO,KAAK,GAAGC,CAAS,GAAGP,CAAK,EAC5C,CAAC,CACH,MACE,KAAKV,EAAW,EAAE,IAAIe,EAAe,CAAE,KAAAD,EAAM,MAAAJ,CAAM,CAAC,EAGlDK,IAAkB,eACpB,KAAK,UAAY,CAAC,EAClB,KAAK,QAAQ,KAAKL,CAAK,EAE3B,CAGA,IAAKI,EAAMJ,EAAO,CAChB,KAAKT,EAAiB,EAAI,KAC1B,IAAMc,EAAgBD,EAAK,YAAY,EAEvC,OAAIC,IAAkB,eACpB,KAAK,QAAU,CAACL,CAAK,GAOhB,KAAKV,EAAW,EAAE,IAAIe,EAAe,CAAE,KAAAD,EAAM,MAAAJ,CAAM,CAAC,CAC7D,CAGA,OAAQI,EAAM,CACZ,YAAKb,EAAiB,EAAI,KAE1Ba,EAAOA,EAAK,YAAY,EAEpBA,IAAS,eACX,KAAK,QAAU,MAGV,KAAKd,EAAW,EAAE,OAAOc,CAAI,CACtC,CAGA,IAAKA,EAAM,CAET,OAAK,KAAK,SAASA,CAAI,EAOhB,KAAKd,EAAW,EAAE,IAAIc,EAAK,YAAY,CAAC,GAAG,OAAS,KANlD,IAOX,CAEA,EAAG,OAAO,QAAQ,GAAK,CAErB,OAAW,CAACA,EAAM,CAAE,MAAAJ,CAAM,CAAC,IAAK,KAAKV,EAAW,EAC9C,KAAM,CAACc,EAAMJ,CAAK,CAEtB,CAEA,IAAI,SAAW,CACb,IAAMJ,EAAU,CAAC,EAEjB,GAAI,KAAKN,EAAW,EAAE,KACpB,OAAW,CAAE,KAAAc,EAAM,MAAAJ,CAAM,IAAK,KAAKV,EAAW,EAAE,OAAO,EACrDM,EAAQQ,CAAI,EAAIJ,EAIpB,OAAOJ,CACT,CACF,EAGMY,GAAN,MAAMC,CAAQ,CACZ,YAAaN,EAAO,OAAW,CAC7B,KAAKrB,EAAY,EAAI,IAAImB,GAKzB,KAAKlB,EAAM,EAAI,OAGXoB,IAAS,SACXA,EAAOf,EAAO,WAAW,YAAYe,CAAI,EACzCR,GAAK,KAAMQ,CAAI,EAEnB,CAGA,OAAQC,EAAMJ,EAAO,CAanB,GAZAZ,EAAO,WAAW,KAAMqB,CAAO,EAE/BrB,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,gBAAiB,CAAC,EAErEgB,EAAOhB,EAAO,WAAW,WAAWgB,CAAI,EACxCJ,EAAQZ,EAAO,WAAW,WAAWY,CAAK,EAG1CA,EAAQR,GAAqBQ,CAAK,EAI7Bd,GAAkBkB,CAAI,GAMpB,GAAI,CAACjB,GAAmBa,CAAK,EAClC,MAAMZ,EAAO,OAAO,gBAAgB,CAClC,OAAQ,iBACR,MAAAY,EACA,KAAM,cACR,CAAC,MAVD,OAAMZ,EAAO,OAAO,gBAAgB,CAClC,OAAQ,iBACR,MAAOgB,EACP,KAAM,aACR,CAAC,EAaH,GAAI,KAAKrB,EAAM,IAAM,YACnB,MAAM,IAAI,UAAU,WAAW,EAC1B,OAAI,KAAKA,EAAM,EAWf,KAAKD,EAAY,EAAE,OAAOsB,EAAMJ,CAAK,CAC9C,CAGA,OAAQI,EAAM,CAQZ,GAPAhB,EAAO,WAAW,KAAMqB,CAAO,EAE/BrB,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,gBAAiB,CAAC,EAErEgB,EAAOhB,EAAO,WAAW,WAAWgB,CAAI,EAGpC,CAAClB,GAAkBkB,CAAI,EACzB,MAAMhB,EAAO,OAAO,gBAAgB,CAClC,OAAQ,iBACR,MAAOgB,EACP,KAAM,aACR,CAAC,EAaH,GAAI,KAAKrB,EAAM,IAAM,YACnB,MAAM,IAAI,UAAU,WAAW,EAOjC,GANW,KAAKA,EAAM,EAMlB,EAAC,KAAKD,EAAY,EAAE,SAASsB,CAAI,EAOrC,OAAO,KAAKtB,EAAY,EAAE,OAAOsB,CAAI,CACvC,CAGA,IAAKA,EAAM,CAQT,GAPAhB,EAAO,WAAW,KAAMqB,CAAO,EAE/BrB,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,aAAc,CAAC,EAElEgB,EAAOhB,EAAO,WAAW,WAAWgB,CAAI,EAGpC,CAAClB,GAAkBkB,CAAI,EACzB,MAAMhB,EAAO,OAAO,gBAAgB,CAClC,OAAQ,cACR,MAAOgB,EACP,KAAM,aACR,CAAC,EAKH,OAAO,KAAKtB,EAAY,EAAE,IAAIsB,CAAI,CACpC,CAGA,IAAKA,EAAM,CAQT,GAPAhB,EAAO,WAAW,KAAMqB,CAAO,EAE/BrB,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,aAAc,CAAC,EAElEgB,EAAOhB,EAAO,WAAW,WAAWgB,CAAI,EAGpC,CAAClB,GAAkBkB,CAAI,EACzB,MAAMhB,EAAO,OAAO,gBAAgB,CAClC,OAAQ,cACR,MAAOgB,EACP,KAAM,aACR,CAAC,EAKH,OAAO,KAAKtB,EAAY,EAAE,SAASsB,CAAI,CACzC,CAGA,IAAKA,EAAMJ,EAAO,CAahB,GAZAZ,EAAO,WAAW,KAAMqB,CAAO,EAE/BrB,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,aAAc,CAAC,EAElEgB,EAAOhB,EAAO,WAAW,WAAWgB,CAAI,EACxCJ,EAAQZ,EAAO,WAAW,WAAWY,CAAK,EAG1CA,EAAQR,GAAqBQ,CAAK,EAI7Bd,GAAkBkB,CAAI,GAMpB,GAAI,CAACjB,GAAmBa,CAAK,EAClC,MAAMZ,EAAO,OAAO,gBAAgB,CAClC,OAAQ,cACR,MAAAY,EACA,KAAM,cACR,CAAC,MAVD,OAAMZ,EAAO,OAAO,gBAAgB,CAClC,OAAQ,cACR,MAAOgB,EACP,KAAM,aACR,CAAC,EAkBH,GAAI,KAAKrB,EAAM,IAAM,YACnB,MAAM,IAAI,UAAU,WAAW,EAC1B,OAAI,KAAKA,EAAM,EAOf,KAAKD,EAAY,EAAE,IAAIsB,EAAMJ,CAAK,CAC3C,CAGA,cAAgB,CACdZ,EAAO,WAAW,KAAMqB,CAAO,EAM/B,IAAMC,EAAO,KAAK5B,EAAY,EAAE,QAEhC,OAAI4B,EACK,CAAC,GAAGA,CAAI,EAGV,CAAC,CACV,CAGA,IAAKnB,EAAiB,GAAK,CACzB,GAAI,KAAKT,EAAY,EAAES,EAAiB,EACtC,OAAO,KAAKT,EAAY,EAAES,EAAiB,EAK7C,IAAMK,EAAU,CAAC,EAIXe,EAAQ,CAAC,GAAG,KAAK7B,EAAY,CAAC,EAAE,KAAK,CAAC8B,EAAGC,IAAMD,EAAE,CAAC,EAAIC,EAAE,CAAC,EAAI,GAAK,CAAC,EACnEC,EAAU,KAAKhC,EAAY,EAAE,QAGnC,OAAW,CAACsB,EAAMJ,CAAK,IAAKW,EAE1B,GAAIP,IAAS,aAMX,QAAWJ,KAASc,EAClBlB,EAAQ,KAAK,CAACQ,EAAMJ,CAAK,CAAC,OAQ5BX,GAAOW,IAAU,IAAI,EAGrBJ,EAAQ,KAAK,CAACQ,EAAMJ,CAAK,CAAC,EAI9B,YAAKlB,EAAY,EAAES,EAAiB,EAAIK,EAGjCA,CACT,CAEA,MAAQ,CACN,OAAAR,EAAO,WAAW,KAAMqB,CAAO,EAExBxB,GACL,IAAM,CAAC,GAAG,KAAKM,EAAiB,EAAE,OAAO,CAAC,EAC1C,UACA,KACF,CACF,CAEA,QAAU,CACR,OAAAH,EAAO,WAAW,KAAMqB,CAAO,EAExBxB,GACL,IAAM,CAAC,GAAG,KAAKM,EAAiB,EAAE,OAAO,CAAC,EAC1C,UACA,OACF,CACF,CAEA,SAAW,CACT,OAAAH,EAAO,WAAW,KAAMqB,CAAO,EAExBxB,GACL,IAAM,CAAC,GAAG,KAAKM,EAAiB,EAAE,OAAO,CAAC,EAC1C,UACA,WACF,CACF,CAMA,QAASwB,EAAYC,EAAU,WAAY,CAKzC,GAJA5B,EAAO,WAAW,KAAMqB,CAAO,EAE/BrB,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,iBAAkB,CAAC,EAElE,OAAO2B,GAAe,WACxB,MAAM,IAAI,UACR,kFACF,EAGF,OAAW,CAAChB,EAAKC,CAAK,IAAK,KACzBe,EAAW,MAAMC,EAAS,CAAChB,EAAOD,EAAK,IAAI,CAAC,CAEhD,CAEA,CAAC,OAAO,IAAI,4BAA4B,CAAC,GAAK,CAC5C,OAAAX,EAAO,WAAW,KAAMqB,CAAO,EAExB,KAAK3B,EAAY,CAC1B,CACF,EAEA0B,GAAQ,UAAU,OAAO,QAAQ,EAAIA,GAAQ,UAAU,QAEvD,OAAO,iBAAiBA,GAAQ,UAAW,CACzC,OAAQxB,GACR,OAAQA,GACR,IAAKA,GACL,IAAKA,GACL,IAAKA,GACL,aAAcA,GACd,KAAMA,GACN,OAAQA,GACR,QAASA,GACT,QAASA,GACT,CAAC,OAAO,QAAQ,EAAG,CAAE,WAAY,EAAM,EACvC,CAAC,OAAO,WAAW,EAAG,CACpB,MAAO,UACP,aAAc,EAChB,CACF,CAAC,EAEDI,EAAO,WAAW,YAAc,SAAU6B,EAAG,CAC3C,GAAI7B,EAAO,KAAK,KAAK6B,CAAC,IAAM,SAC1B,OAAIA,EAAE,OAAO,QAAQ,EACZ7B,EAAO,WAAW,gCAAgC,EAAE6B,CAAC,EAGvD7B,EAAO,WAAW,gCAAgC,EAAE6B,CAAC,EAG9D,MAAM7B,EAAO,OAAO,iBAAiB,CACnC,OAAQ,sBACR,SAAU,aACV,MAAO,CAAC,iCAAkC,gCAAgC,CAC5E,CAAC,CACH,EAEAP,GAAO,QAAU,CACf,KAAAc,GACA,QAAAa,GACA,YAAAP,EACF,ICviBA,IAAAiB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,QAAAC,GAAS,YAAAC,GAAa,KAAAC,EAAK,EAAI,KACjC,CAAE,YAAAC,GAAa,UAAAC,GAAW,UAAAC,EAAU,EAAI,KACxCC,GAAO,IACP,CAAE,oBAAAC,EAAoB,EAAID,GAC1B,CACJ,oBAAAE,GACA,YAAAC,GACA,UAAAC,GACA,WAAAC,GACA,qCAAAC,GACA,YAAAC,GACA,iBAAAC,EACF,EAAI,KACE,CACJ,eAAAC,GACA,eAAAC,GACA,aAAAC,EACF,EAAI,KACE,CAAE,OAAAC,GAAQ,SAAAC,GAAU,OAAAC,GAAQ,OAAAC,EAAO,EAAI,KACvC,CAAE,OAAAC,CAAO,EAAI,KACb,CAAE,SAAAC,EAAS,EAAI,KACf,CAAE,gBAAAC,EAAgB,EAAI,KACtB,CAAE,cAAAC,EAAc,EAAI,KACpB,CAAE,aAAAC,EAAa,EAAI,KACnBC,GAAS,QAAQ,QAAQ,EACzB,CAAE,MAAAC,EAAM,EAAI,QAAQ,MAAM,EAE1BC,GAAiB,WAAW,gBAAkB,QAAQ,YAAY,EAAE,eAGpEC,GAAN,MAAMC,CAAS,CAEb,OAAO,OAAS,CAEd,IAAMC,EAAgB,CAAE,eAAgB,CAAC,CAAE,EAKrCC,EAAiB,IAAIF,EAC3B,OAAAE,EAAef,EAAM,EAAIgB,GAAiB,EAC1CD,EAAeZ,EAAM,EAAIW,EACzBC,EAAed,EAAQ,EAAEO,EAAY,EAAIO,EAAef,EAAM,EAAE,YAChEe,EAAed,EAAQ,EAAEC,EAAM,EAAI,YACnCa,EAAed,EAAQ,EAAEE,EAAM,EAAIW,EAC5BC,CACT,CAGA,OAAO,KAAME,EAAO,OAAWC,EAAO,CAAC,EAAG,CACxCd,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,eAAgB,CAAC,EAEhEc,IAAS,OACXA,EAAOd,EAAO,WAAW,aAAac,CAAI,GAI5C,IAAMC,EAAQ,IAAI,YAAY,OAAO,EAAE,OACrCzB,GAAqCuB,CAAI,CAC3C,EAGMG,EAAOnC,GAAYkC,CAAK,EAIxBL,EAAgB,CAAE,eAAgB,CAAC,CAAE,EACrCC,EAAiB,IAAIF,EAC3B,OAAAE,EAAeZ,EAAM,EAAIW,EACzBC,EAAed,EAAQ,EAAEC,EAAM,EAAI,WACnCa,EAAed,EAAQ,EAAEE,EAAM,EAAIW,EAGnCO,GAAmBN,EAAgBG,EAAM,CAAE,KAAME,EAAK,CAAC,EAAG,KAAM,kBAAmB,CAAC,EAG7EL,CACT,CAGA,OAAO,SAAUO,EAAKC,EAAS,IAAK,CAClC,IAAMT,EAAgB,CAAE,eAAgB,CAAC,CAAE,EAE3CV,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,mBAAoB,CAAC,EAExEkB,EAAMlB,EAAO,WAAW,UAAUkB,CAAG,EACrCC,EAASnB,EAAO,WAAW,gBAAgB,EAAEmB,CAAM,EAMnD,IAAIC,EACJ,GAAI,CACFA,EAAY,IAAI,IAAIF,EAAKhB,GAAgB,CAAC,CAC5C,OAASmB,EAAK,CACZ,MAAM,OAAO,OAAO,IAAI,UAAU,4BAA8BH,CAAG,EAAG,CACpE,MAAOG,CACT,CAAC,CACH,CAGA,GAAI,CAAC5B,GAAe,SAAS0B,CAAM,EACjC,MAAM,IAAI,WAAW,uBAAyBA,CAAM,EAKtD,IAAMR,EAAiB,IAAIF,EAC3BE,EAAeZ,EAAM,EAAIW,EACzBC,EAAed,EAAQ,EAAEC,EAAM,EAAI,YACnCa,EAAed,EAAQ,EAAEE,EAAM,EAAIW,EAGnCC,EAAef,EAAM,EAAE,OAASuB,EAGhC,IAAMG,EAAQ9B,GAAiBW,GAAciB,CAAS,CAAC,EAGvD,OAAAT,EAAef,EAAM,EAAE,YAAY,OAAO,WAAY0B,CAAK,EAGpDX,CACT,CAGA,YAAaK,EAAO,KAAMF,EAAO,CAAC,EAAG,CAC/BE,IAAS,OACXA,EAAOhB,EAAO,WAAW,SAASgB,CAAI,GAGxCF,EAAOd,EAAO,WAAW,aAAac,CAAI,EAG1C,KAAKf,EAAM,EAAI,CAAE,eAAgB,CAAC,CAAE,EAGpC,KAAKH,EAAM,EAAI2B,GAAa,CAAC,CAAC,EAK9B,KAAK1B,EAAQ,EAAI,IAAInB,GACrB,KAAKmB,EAAQ,EAAEC,EAAM,EAAI,WACzB,KAAKD,EAAQ,EAAEO,EAAY,EAAI,KAAKR,EAAM,EAAE,YAC5C,KAAKC,EAAQ,EAAEE,EAAM,EAAI,KAAKA,EAAM,EAGpC,IAAIyB,EAAe,KAGnB,GAAIR,GAAQ,KAAM,CAChB,GAAM,CAACS,EAAeC,CAAI,EAAI7C,GAAYmC,CAAI,EAC9CQ,EAAe,CAAE,KAAMC,EAAe,KAAAC,CAAK,CAC7C,CAGAT,GAAmB,KAAMH,EAAMU,CAAY,CAC7C,CAGA,IAAI,MAAQ,CACV,OAAAxB,EAAO,WAAW,KAAMS,CAAQ,EAGzB,KAAKb,EAAM,EAAE,IACtB,CAGA,IAAI,KAAO,CACTI,EAAO,WAAW,KAAMS,CAAQ,EAEhC,IAAMkB,EAAU,KAAK/B,EAAM,EAAE,QAKvBsB,EAAMS,EAAQA,EAAQ,OAAS,CAAC,GAAK,KAE3C,OAAIT,IAAQ,KACH,GAGFf,GAAce,EAAK,EAAI,CAChC,CAGA,IAAI,YAAc,CAChB,OAAAlB,EAAO,WAAW,KAAMS,CAAQ,EAIzB,KAAKb,EAAM,EAAE,QAAQ,OAAS,CACvC,CAGA,IAAI,QAAU,CACZ,OAAAI,EAAO,WAAW,KAAMS,CAAQ,EAGzB,KAAKb,EAAM,EAAE,MACtB,CAGA,IAAI,IAAM,CACR,OAAAI,EAAO,WAAW,KAAMS,CAAQ,EAIzB,KAAKb,EAAM,EAAE,QAAU,KAAO,KAAKA,EAAM,EAAE,QAAU,GAC9D,CAGA,IAAI,YAAc,CAChB,OAAAI,EAAO,WAAW,KAAMS,CAAQ,EAIzB,KAAKb,EAAM,EAAE,UACtB,CAGA,IAAI,SAAW,CACb,OAAAI,EAAO,WAAW,KAAMS,CAAQ,EAGzB,KAAKZ,EAAQ,CACtB,CAEA,IAAI,MAAQ,CACV,OAAAG,EAAO,WAAW,KAAMS,CAAQ,EAEzB,KAAKb,EAAM,EAAE,KAAO,KAAKA,EAAM,EAAE,KAAK,OAAS,IACxD,CAEA,IAAI,UAAY,CACd,OAAAI,EAAO,WAAW,KAAMS,CAAQ,EAEzB,CAAC,CAAC,KAAKb,EAAM,EAAE,MAAQZ,GAAK,YAAY,KAAKY,EAAM,EAAE,KAAK,MAAM,CACzE,CAGA,OAAS,CAIP,GAHAI,EAAO,WAAW,KAAMS,CAAQ,EAG5B,KAAK,UAAa,KAAK,MAAQ,KAAK,KAAK,OAC3C,MAAMT,EAAO,OAAO,UAAU,CAC5B,OAAQ,iBACR,QAAS,iCACX,CAAC,EAIH,IAAM4B,EAAiBC,GAAc,KAAKjC,EAAM,CAAC,EAI3CkC,EAAuB,IAAIrB,EACjC,OAAAqB,EAAqBlC,EAAM,EAAIgC,EAC/BE,EAAqB/B,EAAM,EAAI,KAAKA,EAAM,EAC1C+B,EAAqBjC,EAAQ,EAAEO,EAAY,EAAIwB,EAAe,YAC9DE,EAAqBjC,EAAQ,EAAEC,EAAM,EAAI,KAAKD,EAAQ,EAAEC,EAAM,EAC9DgC,EAAqBjC,EAAQ,EAAEE,EAAM,EAAI,KAAKF,EAAQ,EAAEE,EAAM,EAEvD+B,CACT,CACF,EAEA/C,GAAUyB,EAAQ,EAElB,OAAO,iBAAiBA,GAAS,UAAW,CAC1C,KAAMvB,GACN,IAAKA,GACL,OAAQA,GACR,GAAIA,GACJ,WAAYA,GACZ,WAAYA,GACZ,QAASA,GACT,MAAOA,GACP,KAAMA,GACN,SAAUA,GACV,CAAC,OAAO,WAAW,EAAG,CACpB,MAAO,WACP,aAAc,EAChB,CACF,CAAC,EAED,OAAO,iBAAiBuB,GAAU,CAChC,KAAMvB,GACN,SAAUA,GACV,MAAOA,EACT,CAAC,EAGD,SAAS4C,GAAeE,EAAU,CAMhC,GAAIA,EAAS,iBACX,OAAOC,GACLH,GAAcE,EAAS,gBAAgB,EACvCA,EAAS,IACX,EAIF,IAAME,EAAcV,GAAa,CAAE,GAAGQ,EAAU,KAAM,IAAK,CAAC,EAI5D,OAAIA,EAAS,MAAQ,OACnBE,EAAY,KAAOnD,GAAUiD,EAAS,IAAI,GAIrCE,CACT,CAEA,SAASV,GAAcT,EAAM,CAC3B,MAAO,CACL,QAAS,GACT,eAAgB,GAChB,kBAAmB,GACnB,2BAA4B,GAC5B,KAAM,UACN,OAAQ,IACR,WAAY,KACZ,WAAY,GACZ,WAAY,GACZ,GAAGA,EACH,YAAaA,EAAK,YACd,IAAInC,GAAYmC,EAAK,WAAW,EAChC,IAAInC,GACR,QAASmC,EAAK,QAAU,CAAC,GAAGA,EAAK,OAAO,EAAI,CAAC,CAC/C,CACF,CAEA,SAASF,GAAkBsB,EAAQ,CACjC,IAAMC,EAAU5C,GAAY2C,CAAM,EAClC,OAAOX,GAAa,CAClB,KAAM,QACN,OAAQ,EACR,MAAOY,EACHD,EACA,IAAI,MAAMA,GAAS,OAAOA,CAAM,CAAU,EAC9C,QAASA,GAAUA,EAAO,OAAS,YACrC,CAAC,CACH,CAEA,SAASE,GAAsBL,EAAUM,EAAO,CAC9C,OAAAA,EAAQ,CACN,iBAAkBN,EAClB,GAAGM,CACL,EAEO,IAAI,MAAMN,EAAU,CACzB,IAAKO,EAAQC,EAAG,CACd,OAAOA,KAAKF,EAAQA,EAAME,CAAC,EAAID,EAAOC,CAAC,CACzC,EACA,IAAKD,EAAQC,EAAGjB,EAAO,CACrB,OAAAjB,GAAO,EAAEkC,KAAKF,EAAM,EACpBC,EAAOC,CAAC,EAAIjB,EACL,EACT,CACF,CAAC,CACH,CAGA,SAASU,GAAgBD,EAAUL,EAAM,CAGvC,GAAIA,IAAS,QAMX,OAAOU,GAAqBL,EAAU,CACpC,KAAM,QACN,YAAaA,EAAS,WACxB,CAAC,EACI,GAAIL,IAAS,OAOlB,OAAOU,GAAqBL,EAAU,CACpC,KAAM,OACN,YAAaA,EAAS,WACxB,CAAC,EACI,GAAIL,IAAS,SAKlB,OAAOU,GAAqBL,EAAU,CACpC,KAAM,SACN,QAAS,OAAO,OAAO,CAAC,CAAC,EACzB,OAAQ,EACR,WAAY,GACZ,KAAM,IACR,CAAC,EACI,GAAIL,IAAS,iBAKlB,OAAOU,GAAqBL,EAAU,CACpC,KAAM,iBACN,OAAQ,EACR,WAAY,GACZ,YAAa,CAAC,EACd,KAAM,IACR,CAAC,EAED1B,GAAO,EAAK,CAEhB,CAGA,SAASmC,GAA6BC,EAAa,CAEjD,OAAApC,GAAOlB,GAAYsD,CAAW,CAAC,EAIxBrD,GAAUqD,CAAW,EACxB7B,GAAiB,IAAIjB,GAAa,6BAA8B,YAAY,CAAC,EAC7EiB,GAAiB,wBAAwB,CAC/C,CAGA,SAASK,GAAoBc,EAAUjB,EAAME,EAAM,CAGjD,GAAIF,EAAK,SAAW,OAASA,EAAK,OAAS,KAAOA,EAAK,OAAS,KAC9D,MAAM,IAAI,WAAW,+DAA+D,EAKtF,GAAI,eAAgBA,GAAQA,EAAK,YAAc,MAGzC,CAAC5B,GAAoB,OAAO4B,EAAK,UAAU,CAAC,EAC9C,MAAM,IAAI,UAAU,oBAAoB,EAoB5C,GAfI,WAAYA,GAAQA,EAAK,QAAU,OACrCiB,EAASnC,EAAM,EAAE,OAASkB,EAAK,QAI7B,eAAgBA,GAAQA,EAAK,YAAc,OAC7CiB,EAASnC,EAAM,EAAE,WAAakB,EAAK,YAIjC,YAAaA,GAAQA,EAAK,SAAW,MACvClC,GAAKmD,EAASlC,EAAQ,EAAGiB,EAAK,OAAO,EAInCE,EAAM,CAER,GAAItB,GAAe,SAASqC,EAAS,MAAM,EACzC,MAAM/B,EAAO,OAAO,UAAU,CAC5B,OAAQ,uBACR,QAAS,gCAAkC+B,EAAS,MACtD,CAAC,EAIHA,EAASnC,EAAM,EAAE,KAAOoB,EAAK,KAIzBA,EAAK,MAAQ,MAAQ,CAACe,EAASnC,EAAM,EAAE,YAAY,SAAS,cAAc,GAC5EmC,EAASnC,EAAM,EAAE,YAAY,OAAO,eAAgBoB,EAAK,IAAI,CAEjE,CACF,CAEAhB,EAAO,WAAW,eAAiBA,EAAO,mBACxCO,EACF,EAEAP,EAAO,WAAW,SAAWA,EAAO,mBAClCC,EACF,EAEAD,EAAO,WAAW,gBAAkBA,EAAO,mBACzC,eACF,EAGAA,EAAO,WAAW,uBAAyB,SAAU0C,EAAG,CACtD,OAAI,OAAOA,GAAM,SACR1C,EAAO,WAAW,UAAU0C,CAAC,EAGlCrD,GAAWqD,CAAC,EACP1C,EAAO,WAAW,KAAK0C,EAAG,CAAE,OAAQ,EAAM,CAAC,EAIlDpC,GAAM,iBAAiBoC,CAAC,GACxBpC,GAAM,aAAaoC,CAAC,GACpBpC,GAAM,WAAWoC,CAAC,EAEX1C,EAAO,WAAW,aAAa0C,CAAC,EAGrC1D,GAAK,eAAe0D,CAAC,EAChB1C,EAAO,WAAW,SAAS0C,EAAG,CAAE,OAAQ,EAAM,CAAC,EAGpDA,aAAa,gBACR1C,EAAO,WAAW,gBAAgB0C,CAAC,EAGrC1C,EAAO,WAAW,UAAU0C,CAAC,CACtC,EAGA1C,EAAO,WAAW,SAAW,SAAU0C,EAAG,CACxC,OAAIA,aAAanC,GACRP,EAAO,WAAW,eAAe0C,CAAC,EAKvCA,IAAI,OAAO,aAAa,EACnBA,EAGF1C,EAAO,WAAW,uBAAuB0C,CAAC,CACnD,EAEA1C,EAAO,WAAW,aAAeA,EAAO,oBAAoB,CAC1D,CACE,IAAK,SACL,UAAWA,EAAO,WAAW,gBAAgB,EAC7C,aAAc,GAChB,EACA,CACE,IAAK,aACL,UAAWA,EAAO,WAAW,WAC7B,aAAc,EAChB,EACA,CACE,IAAK,UACL,UAAWA,EAAO,WAAW,WAC/B,CACF,CAAC,EAEDvB,GAAO,QAAU,CACf,iBAAAmC,GACA,aAAAW,GACA,4BAAAiB,GACA,eAAAR,GACA,SAAAxB,GACA,cAAAqB,EACF,IC7jBA,IAAAc,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,GAAM,CAAE,YAAAC,GAAa,UAAAC,GAAW,UAAAC,EAAU,EAAI,KACxC,CAAE,QAAAC,GAAS,KAAMC,GAAa,YAAAC,EAAY,EAAI,KAC9C,CAAE,qBAAAC,EAAqB,EAAI,KAAwC,EACnEC,GAAO,IACP,CACJ,iBAAAC,GACA,WAAAC,GACA,gBAAAC,GACA,oBAAAC,EACF,EAAI,KACE,CACJ,iBAAAC,GACA,sBAAAC,GACA,eAAAC,GACA,gBAAAC,GACA,YAAAC,GACA,mBAAAC,GACA,aAAAC,GACA,cAAAC,EACF,EAAI,KACE,CAAE,oBAAAC,EAAoB,EAAIb,GAC1B,CAAE,SAAAc,GAAU,QAAAC,GAAS,OAAAC,GAAQ,OAAAC,GAAQ,OAAAC,EAAO,EAAI,KAChD,CAAE,OAAAC,CAAO,EAAI,KACb,CAAE,gBAAAC,EAAgB,EAAI,KACtB,CAAE,cAAAC,EAAc,EAAI,KACpB,CAAE,aAAAC,EAAa,EAAI,KACnBC,GAAS,QAAQ,QAAQ,EACzB,CAAE,gBAAAC,GAAiB,gBAAAC,GAAiB,kBAAAC,GAAmB,oBAAAC,EAAoB,EAAI,QAAQ,QAAQ,EAEjGC,GAAkB,WAAW,gBAE3BC,GAAQ,OAAO,MAAM,EACrBC,GAAmB,OAAO,iBAAiB,EAE3CC,GAAmB,IAAIhC,GAAqB,CAAC,CAAE,OAAAiC,EAAQ,MAAAC,CAAM,IAAM,CACvED,EAAO,oBAAoB,QAASC,CAAK,CAC3C,CAAC,EAGKC,GAAN,MAAMC,CAAQ,CAEZ,YAAaC,EAAOC,EAAO,CAAC,EAAG,CAC7B,GAAID,IAAUP,GACZ,OAGFV,EAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,qBAAsB,CAAC,EAE1EiB,EAAQjB,EAAO,WAAW,YAAYiB,CAAK,EAC3CC,EAAOlB,EAAO,WAAW,YAAYkB,CAAI,EAGzC,KAAKnB,EAAM,EAAI,CACb,eAAgB,CACd,QAASE,GAAgB,EACzB,IAAI,QAAU,CACZ,OAAO,KAAK,SAAS,MACvB,EACA,gBAAiBhB,GAAoB,CACvC,CACF,EAGA,IAAIkC,EAAU,KAGVC,EAAe,KAGbC,EAAU,KAAKtB,EAAM,EAAE,eAAe,QAGxCc,EAAS,KAGb,GAAI,OAAOI,GAAU,SAAU,CAG7B,IAAIK,EACJ,GAAI,CACFA,EAAY,IAAI,IAAIL,EAAOI,CAAO,CACpC,OAASE,EAAK,CACZ,MAAM,IAAI,UAAU,4BAA8BN,EAAO,CAAE,MAAOM,CAAI,CAAC,CACzE,CAGA,GAAID,EAAU,UAAYA,EAAU,SAClC,MAAM,IAAI,UACR,uEACEL,CACJ,EAIFE,EAAUK,GAAY,CAAE,QAAS,CAACF,CAAS,CAAE,CAAC,EAG9CF,EAAe,MACjB,MAIEhB,GAAOa,aAAiBD,CAAO,EAG/BG,EAAUF,EAAMpB,EAAM,EAGtBgB,EAASI,EAAMrB,EAAO,EAIxB,IAAM6B,EAAS,KAAK1B,EAAM,EAAE,eAAe,OAGvC2B,EAAS,SAYb,GAPEP,EAAQ,QAAQ,aAAa,OAAS,6BACtCpC,GAAWoC,EAAQ,OAAQM,CAAM,IAEjCC,EAASP,EAAQ,QAIfD,EAAK,QAAU,KACjB,MAAM,IAAI,UAAU,oBAAoBQ,CAAM,gBAAgB,EAmFhE,GA/EI,WAAYR,IACdQ,EAAS,aAIXP,EAAUK,GAAY,CAIpB,OAAQL,EAAQ,OAGhB,YAAaA,EAAQ,YAErB,cAAeA,EAAQ,cAEvB,OAAQ,KAAKpB,EAAM,EAAE,eAErB,OAAA2B,EAEA,SAAUP,EAAQ,SAIlB,OAAQA,EAAQ,OAEhB,SAAUA,EAAQ,SAElB,eAAgBA,EAAQ,eAExB,KAAMA,EAAQ,KAEd,YAAaA,EAAQ,YAErB,MAAOA,EAAQ,MAEf,SAAUA,EAAQ,SAElB,UAAWA,EAAQ,UAEnB,UAAWA,EAAQ,UAEnB,iBAAkBA,EAAQ,iBAE1B,kBAAmBA,EAAQ,kBAE3B,QAAS,CAAC,GAAGA,EAAQ,OAAO,CAC9B,CAAC,EAGG,OAAO,KAAKD,CAAI,EAAE,OAAS,IAEzBC,EAAQ,OAAS,aACnBA,EAAQ,KAAO,eAIjBA,EAAQ,iBAAmB,GAG3BA,EAAQ,kBAAoB,GAG5BA,EAAQ,OAAS,SAGjBA,EAAQ,SAAW,SAGnBA,EAAQ,eAAiB,GAGzBA,EAAQ,IAAMA,EAAQ,QAAQA,EAAQ,QAAQ,OAAS,CAAC,EAGxDA,EAAQ,QAAU,CAACA,EAAQ,GAAG,GAI5BD,EAAK,WAAa,OAAW,CAE/B,IAAMS,EAAWT,EAAK,SAGtB,GAAIS,IAAa,GACfR,EAAQ,SAAW,kBACd,CAIL,IAAIS,EACJ,GAAI,CACFA,EAAiB,IAAI,IAAID,EAAUN,CAAO,CAC5C,OAASE,EAAK,CACZ,MAAM,IAAI,UAAU,aAAaI,CAAQ,wBAAyB,CAAE,MAAOJ,CAAI,CAAC,CAClF,CAOGK,EAAe,WAAa,UAAYA,EAAe,WAAa,UACpEH,GAAU,CAAC1C,GAAW6C,EAAgB,KAAK7B,EAAM,EAAE,eAAe,OAAO,EAE1EoB,EAAQ,SAAW,SAGnBA,EAAQ,SAAWS,CAEvB,CACF,CAIIV,EAAK,iBAAmB,SAC1BC,EAAQ,eAAiBD,EAAK,gBAIhC,IAAIW,EAQJ,GAPIX,EAAK,OAAS,OAChBW,EAAOX,EAAK,KAEZW,EAAOT,EAILS,IAAS,WACX,MAAM7B,EAAO,OAAO,UAAU,CAC5B,OAAQ,sBACR,QAAS,gCACX,CAAC,EAqBH,GAjBI6B,GAAQ,OACVV,EAAQ,KAAOU,GAKbX,EAAK,cAAgB,SACvBC,EAAQ,YAAcD,EAAK,aAIzBA,EAAK,QAAU,SACjBC,EAAQ,MAAQD,EAAK,OAKnBC,EAAQ,QAAU,kBAAoBA,EAAQ,OAAS,cACzD,MAAM,IAAI,UACR,0DACF,EAmBF,GAfID,EAAK,WAAa,SACpBC,EAAQ,SAAWD,EAAK,UAItBA,EAAK,YAAc,QAAaA,EAAK,WAAa,OACpDC,EAAQ,UAAY,OAAOD,EAAK,SAAS,GAIvCA,EAAK,YAAc,SACrBC,EAAQ,UAAY,EAAQD,EAAK,WAI/BA,EAAK,SAAW,OAAW,CAE7B,IAAIY,EAASZ,EAAK,OAIlB,GAAI,CAACpC,GAAiBoC,EAAK,MAAM,EAC/B,MAAM,UAAU,IAAIA,EAAK,MAAM,+BAA+B,EAGhE,GAAIhC,GAAiB,QAAQ4C,EAAO,YAAY,CAAC,IAAM,GACrD,MAAM,UAAU,IAAIZ,EAAK,MAAM,+BAA+B,EAIhEY,EAAS9C,GAAgBkC,EAAK,MAAM,EAGpCC,EAAQ,OAASW,CACnB,CAGIZ,EAAK,SAAW,SAClBL,EAASK,EAAK,QAIhB,KAAKrB,EAAM,EAAIsB,EAMf,IAAMY,EAAK,IAAI,gBAKf,GAJA,KAAKnC,EAAO,EAAImC,EAAG,OACnB,KAAKnC,EAAO,EAAEG,EAAM,EAAI,KAAKA,EAAM,EAG/Bc,GAAU,KAAM,CAClB,GACE,CAACA,GACD,OAAOA,EAAO,SAAY,WAC1B,OAAOA,EAAO,kBAAqB,WAEnC,MAAM,IAAI,UACR,0EACF,EAGF,GAAIA,EAAO,QACTkB,EAAG,MAAMlB,EAAO,MAAM,MACjB,CAKL,KAAKF,EAAgB,EAAIoB,EAEzB,IAAMC,EAAQ,IAAI,QAAQD,CAAE,EACtBjB,EAAQ,UAAY,CACxB,IAAMiB,EAAKC,EAAM,MAAM,EACnBD,IAAO,QACTA,EAAG,MAAM,KAAK,MAAM,CAExB,EAIA,GAAI,EAGE,OAAO1B,IAAoB,YAAcA,GAAgBQ,CAAM,IAAML,IAE9DD,GAAkBM,EAAQ,OAAO,EAAE,QAAUL,KACtDF,GAAgB,IAAKO,CAAM,CAE/B,MAAQ,CAAC,CAEThC,GAAK,iBAAiBgC,EAAQC,CAAK,EACnCF,GAAiB,SAASmB,EAAI,CAAE,OAAAlB,EAAQ,MAAAC,CAAM,CAAC,CACjD,CACF,CAWA,GANA,KAAKnB,EAAQ,EAAI,IAAIlB,GACrB,KAAKkB,EAAQ,EAAEQ,EAAY,EAAIgB,EAAQ,YACvC,KAAKxB,EAAQ,EAAEG,EAAM,EAAI,UACzB,KAAKH,EAAQ,EAAEI,EAAM,EAAI,KAAKA,EAAM,EAGhC8B,IAAS,UAAW,CAGtB,GAAI,CAAC1C,GAAsB,SAASgC,EAAQ,MAAM,EAChD,MAAM,IAAI,UACR,IAAIA,EAAQ,MAAM,kCACpB,EAIF,KAAKxB,EAAQ,EAAEG,EAAM,EAAI,iBAC3B,CAGA,GAAI,OAAO,KAAKoB,CAAI,EAAE,SAAW,EAAG,CAGlC,IAAIe,EAAU,IAAIxD,GAAQ,KAAKkB,EAAQ,CAAC,EAYxC,GATIuB,EAAK,UAAY,SACnBe,EAAUf,EAAK,SAIjB,KAAKvB,EAAQ,EAAEQ,EAAY,EAAE,MAAM,EAI/B8B,EAAQ,YAAY,OAAS,UAC/B,OAAW,CAACC,EAAKC,CAAG,IAAKF,EACvB,KAAKtC,EAAQ,EAAE,OAAOuC,EAAKC,CAAG,OAIhCzD,GAAY,KAAKiB,EAAQ,EAAGsC,CAAO,CAEvC,CAIA,IAAMG,EAAYnB,aAAiBD,EAAUC,EAAMpB,EAAM,EAAE,KAAO,KAKlE,IACGqB,EAAK,MAAQ,MAAQkB,GAAa,QAClCjB,EAAQ,SAAW,OAASA,EAAQ,SAAW,QAEhD,MAAM,IAAI,UAAU,gDAAgD,EAItE,IAAIkB,EAAW,KAGf,GAAInB,EAAK,MAAQ,KAAM,CAIrB,GAAM,CAACoB,EAAeC,CAAW,EAAIjE,GACnC4C,EAAK,KACLC,EAAQ,SACV,EACAkB,EAAWC,EAKPC,GAAe,CAAC,KAAK5C,EAAQ,EAAEQ,EAAY,EAAE,SAAS,cAAc,GACtE,KAAKR,EAAQ,EAAE,OAAO,eAAgB4C,CAAW,CAErD,CAIA,IAAMC,EAAkBH,GAAYD,EAIpC,GAAII,GAAmB,MAAQA,EAAgB,QAAU,KAAM,CAG7D,GAAIH,GAAY,MAAQnB,EAAK,QAAU,KACrC,MAAM,IAAI,UAAU,6DAA6D,EAKnF,GAAIC,EAAQ,OAAS,eAAiBA,EAAQ,OAAS,OACrD,MAAM,IAAI,UACR,gFACF,EAIFA,EAAQ,qBAAuB,EACjC,CAGA,IAAIsB,EAAYD,EAGhB,GAAIH,GAAY,MAAQD,GAAa,KAAM,CAEzC,GAAIvD,GAAK,YAAYuD,EAAU,MAAM,GAAKA,EAAU,OAAO,OACzD,MAAM,IAAI,UACR,8EACF,EAIG3B,KACHA,GAAkB,QAAQ,YAAY,EAAE,iBAI1C,IAAMiC,EAAoB,IAAIjC,GAC9B2B,EAAU,OAAO,YAAYM,CAAiB,EAC9CD,EAAY,CACV,OAAQL,EAAU,OAClB,OAAQA,EAAU,OAClB,OAAQM,EAAkB,QAC5B,CACF,CAGA,KAAK7C,EAAM,EAAE,KAAO4C,CACtB,CAGA,IAAI,QAAU,CACZ,OAAAzC,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKnB,EAAM,EAAE,MACtB,CAGA,IAAI,KAAO,CACT,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxBd,GAAc,KAAKL,EAAM,EAAE,GAAG,CACvC,CAKA,IAAI,SAAW,CACb,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKrB,EAAQ,CACtB,CAIA,IAAI,aAAe,CACjB,OAAAK,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKnB,EAAM,EAAE,WACtB,CAOA,IAAI,UAAY,CAKd,OAJAG,EAAO,WAAW,KAAMgB,CAAO,EAI3B,KAAKnB,EAAM,EAAE,WAAa,cACrB,GAKL,KAAKA,EAAM,EAAE,WAAa,SACrB,eAIF,KAAKA,EAAM,EAAE,SAAS,SAAS,CACxC,CAKA,IAAI,gBAAkB,CACpB,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKnB,EAAM,EAAE,cACtB,CAKA,IAAI,MAAQ,CACV,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKnB,EAAM,EAAE,IACtB,CAKA,IAAI,aAAe,CAEjB,OAAO,KAAKA,EAAM,EAAE,WACtB,CAKA,IAAI,OAAS,CACX,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKnB,EAAM,EAAE,KACtB,CAMA,IAAI,UAAY,CACd,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKnB,EAAM,EAAE,QACtB,CAKA,IAAI,WAAa,CACf,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAIxB,KAAKnB,EAAM,EAAE,SACtB,CAIA,IAAI,WAAa,CACf,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKnB,EAAM,EAAE,SACtB,CAIA,IAAI,oBAAsB,CACxB,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAIxB,KAAKnB,EAAM,EAAE,gBACtB,CAIA,IAAI,qBAAuB,CACzB,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAIxB,KAAKnB,EAAM,EAAE,iBACtB,CAKA,IAAI,QAAU,CACZ,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAGxB,KAAKpB,EAAO,CACrB,CAEA,IAAI,MAAQ,CACV,OAAAI,EAAO,WAAW,KAAMgB,CAAO,EAExB,KAAKnB,EAAM,EAAE,KAAO,KAAKA,EAAM,EAAE,KAAK,OAAS,IACxD,CAEA,IAAI,UAAY,CACd,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAExB,CAAC,CAAC,KAAKnB,EAAM,EAAE,MAAQhB,GAAK,YAAY,KAAKgB,EAAM,EAAE,KAAK,MAAM,CACzE,CAEA,IAAI,QAAU,CACZ,OAAAG,EAAO,WAAW,KAAMgB,CAAO,EAExB,MACT,CAGA,OAAS,CAIP,GAHAhB,EAAO,WAAW,KAAMgB,CAAO,EAG3B,KAAK,UAAY,KAAK,MAAM,OAC9B,MAAM,IAAI,UAAU,UAAU,EAIhC,IAAM2B,EAAgBC,GAAa,KAAK/C,EAAM,CAAC,EAIzCgD,EAAsB,IAAI7B,EAAQN,EAAK,EAC7CmC,EAAoBhD,EAAM,EAAI8C,EAC9BE,EAAoB9C,EAAM,EAAI,KAAKA,EAAM,EACzC8C,EAAoBlD,EAAQ,EAAI,IAAIlB,GACpCoE,EAAoBlD,EAAQ,EAAEQ,EAAY,EAAIwC,EAAc,YAC5DE,EAAoBlD,EAAQ,EAAEG,EAAM,EAAI,KAAKH,EAAQ,EAAEG,EAAM,EAC7D+C,EAAoBlD,EAAQ,EAAEI,EAAM,EAAI,KAAKJ,EAAQ,EAAEI,EAAM,EAG7D,IAAMgC,EAAK,IAAI,gBACf,OAAI,KAAK,OAAO,QACdA,EAAG,MAAM,KAAK,OAAO,MAAM,EAE3BlD,GAAK,iBACH,KAAK,OACL,IAAM,CACJkD,EAAG,MAAM,KAAK,OAAO,MAAM,CAC7B,CACF,EAEFc,EAAoBjD,EAAO,EAAImC,EAAG,OAG3Bc,CACT,CACF,EAEAtE,GAAUwC,EAAO,EAEjB,SAASS,GAAaN,EAAM,CAE1B,IAAMC,EAAU,CACd,OAAQ,MACR,cAAe,GACf,cAAe,GACf,KAAM,KACN,OAAQ,KACR,eAAgB,KAChB,iBAAkB,GAClB,OAAQ,SACR,UAAW,GACX,eAAgB,MAChB,UAAW,GACX,YAAa,GACb,SAAU,KACV,OAAQ,SACR,gBAAiB,SACjB,SAAU,SACV,eAAgB,GAChB,KAAM,UACN,qBAAsB,GACtB,YAAa,cACb,eAAgB,GAChB,MAAO,UACP,SAAU,SACV,UAAW,GACX,4BAA6B,GAC7B,eAAgB,GAChB,iBAAkB,GAClB,kBAAmB,GACnB,eAAgB,GAChB,cAAe,GACf,cAAe,EACf,iBAAkB,QAClB,6CAA8C,GAC9C,KAAM,GACN,kBAAmB,GACnB,GAAGD,EACH,YAAaA,EAAK,YACd,IAAIvC,GAAYuC,EAAK,WAAW,EAChC,IAAIvC,EACV,EACA,OAAAwC,EAAQ,IAAMA,EAAQ,QAAQ,CAAC,EACxBA,CACT,CAGA,SAASyB,GAAczB,EAAS,CAI9B,IAAM2B,EAAatB,GAAY,CAAE,GAAGL,EAAS,KAAM,IAAK,CAAC,EAIzD,OAAIA,EAAQ,MAAQ,OAClB2B,EAAW,KAAOtE,GAAU2C,EAAQ,IAAI,GAInC2B,CACT,CAEA,OAAO,iBAAiB/B,GAAQ,UAAW,CACzC,OAAQrB,GACR,IAAKA,GACL,QAASA,GACT,SAAUA,GACV,MAAOA,GACP,OAAQA,GACR,OAAQA,GACR,YAAaA,GACb,KAAMA,GACN,SAAUA,GACV,oBAAqBA,GACrB,mBAAoBA,GACpB,UAAWA,GACX,UAAWA,GACX,MAAOA,GACP,YAAaA,GACb,UAAWA,GACX,eAAgBA,GAChB,SAAUA,GACV,KAAMA,GACN,CAAC,OAAO,WAAW,EAAG,CACpB,MAAO,UACP,aAAc,EAChB,CACF,CAAC,EAEDM,EAAO,WAAW,QAAUA,EAAO,mBACjCe,EACF,EAGAf,EAAO,WAAW,YAAc,SAAU+C,EAAG,CAC3C,OAAI,OAAOA,GAAM,SACR/C,EAAO,WAAW,UAAU+C,CAAC,EAGlCA,aAAahC,GACRf,EAAO,WAAW,QAAQ+C,CAAC,EAG7B/C,EAAO,WAAW,UAAU+C,CAAC,CACtC,EAEA/C,EAAO,WAAW,YAAcA,EAAO,mBACrC,WACF,EAGAA,EAAO,WAAW,YAAcA,EAAO,oBAAoB,CACzD,CACE,IAAK,SACL,UAAWA,EAAO,WAAW,UAC/B,EACA,CACE,IAAK,UACL,UAAWA,EAAO,WAAW,WAC/B,EACA,CACE,IAAK,OACL,UAAWA,EAAO,kBAChBA,EAAO,WAAW,QACpB,CACF,EACA,CACE,IAAK,WACL,UAAWA,EAAO,WAAW,SAC/B,EACA,CACE,IAAK,iBACL,UAAWA,EAAO,WAAW,UAE7B,cAAeZ,EACjB,EACA,CACE,IAAK,OACL,UAAWY,EAAO,WAAW,UAE7B,cAAeV,EACjB,EACA,CACE,IAAK,cACL,UAAWU,EAAO,WAAW,UAE7B,cAAeT,EACjB,EACA,CACE,IAAK,QACL,UAAWS,EAAO,WAAW,UAE7B,cAAeR,EACjB,EACA,CACE,IAAK,WACL,UAAWQ,EAAO,WAAW,UAE7B,cAAeX,EACjB,EACA,CACE,IAAK,YACL,UAAWW,EAAO,WAAW,SAC/B,EACA,CACE,IAAK,YACL,UAAWA,EAAO,WAAW,OAC/B,EACA,CACE,IAAK,SACL,UAAWA,EAAO,kBACfa,GAAWb,EAAO,WAAW,YAC5Ba,EACA,CAAE,OAAQ,EAAM,CAClB,CACF,CACF,EACA,CACE,IAAK,SACL,UAAWb,EAAO,WAAW,GAC/B,EACA,CACE,IAAK,SACL,UAAWA,EAAO,WAAW,UAC7B,cAAeP,EACjB,CACF,CAAC,EAEDpB,GAAO,QAAU,CAAE,QAAA0C,GAAS,YAAAS,EAAY,IC/6BxC,IAAAwB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,GAAM,CACJ,SAAAC,GACA,iBAAAC,EACA,4BAAAC,GACA,eAAAC,GACA,aAAAC,EACF,EAAI,KACE,CAAE,QAAAC,EAAQ,EAAI,KACd,CAAE,QAAAC,GAAS,YAAAC,EAAY,EAAI,KAC3BC,GAAO,QAAQ,MAAM,EACrB,CACJ,WAAAC,GACA,oBAAAC,GACA,qBAAAC,GACA,eAAAC,GACA,SAAAC,GACA,0BAAAC,GACA,oBAAAC,GACA,kBAAAC,GACA,mCAAAC,GACA,8CAAAC,GACA,uBAAAC,GACA,oBAAAC,GACA,UAAAC,GACA,+BAAAC,GACA,0BAAAC,GACA,2BAAAC,GACA,sBAAAC,GACA,WAAAC,GACA,WAAAC,GACA,YAAAC,GACA,UAAAC,GACA,YAAAC,GACA,cAAAC,GACA,oBAAAC,GACA,iBAAAC,GACA,WAAAC,GACA,qBAAAC,GACA,kBAAAC,EACF,EAAI,KACE,CAAE,OAAAC,GAAQ,SAAAC,GAAU,OAAAC,GAAQ,OAAAC,EAAO,EAAI,KACvCC,GAAS,QAAQ,QAAQ,EACzB,CAAE,kBAAAC,EAAkB,EAAI,KACxB,CACJ,eAAAC,GACA,eAAAC,GACA,YAAAC,GACA,kBAAAC,GACA,YAAAC,GACA,aAAAC,EACF,EAAI,KACE,CAAE,aAAAC,EAAa,EAAI,KACnBC,GAAK,QAAQ,QAAQ,EACrB,CAAE,SAAAC,GAAU,SAAAC,EAAS,EAAI,QAAQ,QAAQ,EACzC,CAAE,iBAAAC,GAAkB,UAAAC,GAAW,WAAAC,GAAY,UAAAC,GAAW,UAAAC,EAAU,EAAI,IACpE,CAAE,iBAAAC,GAAkB,mBAAAC,EAAmB,EAAI,KAC3C,CAAE,gBAAAC,EAAgB,EAAI,QAAQ,YAAY,EAC1C,CAAE,oBAAAC,EAAoB,EAAI,KAC1B,CAAE,OAAAC,EAAO,EAAI,KACb,CAAE,aAAAC,EAAa,EAAI,QAAQ,MAAM,EAGnCC,GACAC,GAAiB,WAAW,eAE1BC,GAAN,cAAoBhB,EAAG,CACrB,YAAaiB,EAAY,CACvB,MAAM,EAEN,KAAK,WAAaA,EAClB,KAAK,WAAa,KAClB,KAAK,KAAO,GACZ,KAAK,MAAQ,UAMb,KAAK,gBAAgB,EAAE,CACzB,CAEA,UAAWC,EAAQ,CACb,KAAK,QAAU,YAInB,KAAK,MAAQ,aACb,KAAK,YAAY,QAAQA,CAAM,EAC/B,KAAK,KAAK,aAAcA,CAAM,EAChC,CAGA,MAAOC,EAAO,CACR,KAAK,QAAU,YAKnB,KAAK,MAAQ,UAIRA,IACHA,EAAQ,IAAIrB,GAAa,6BAA8B,YAAY,GAQrE,KAAK,sBAAwBqB,EAE7B,KAAK,YAAY,QAAQA,CAAK,EAC9B,KAAK,KAAK,aAAcA,CAAK,EAC/B,CACF,EAGA,eAAeC,GAAOC,EAAOC,EAAO,CAAC,EAAG,CACtCV,GAAO,oBAAoB,UAAW,EAAG,CAAE,OAAQ,kBAAmB,CAAC,EAGvE,IAAMW,EAAIhD,GAAsB,EAK5BiD,EAEJ,GAAI,CACFA,EAAgB,IAAIpE,GAAQiE,EAAOC,CAAI,CACzC,OAASG,EAAG,CACV,OAAAF,EAAE,OAAOE,CAAC,EACHF,EAAE,OACX,CAGA,IAAMG,EAAUF,EAAcrC,EAAM,EAGpC,GAAIqC,EAAc,OAAO,QAGvB,OAAAG,GAAWJ,EAAGG,EAAS,KAAMF,EAAc,OAAO,MAAM,EAGjDD,EAAE,QAIUG,EAAQ,OAAO,cAIlB,aAAa,OAAS,6BACtCA,EAAQ,eAAiB,QAI3B,IAAIE,EAAiB,KAGfC,EAAgB,KAGlBC,EAAiB,GAGjBC,EAAa,KAGjB,OAAA5B,GACEqB,EAAc,OACd,IAAM,CAEJM,EAAiB,GAGjBvC,GAAOwC,GAAc,IAAI,EAGzBA,EAAW,MAAMP,EAAc,OAAO,MAAM,EAI5CG,GAAWJ,EAAGG,EAASE,EAAgBJ,EAAc,OAAO,MAAM,CACpE,CACF,EAoDAO,EAAaC,GAAS,CACpB,QAAAN,EACA,yBAlDuBO,GACvBC,GAAwBD,EAAU,OAAO,EAkDzC,gBA5CuBA,GAAa,CAEpC,GAAI,CAAAH,EAKJ,IAAIG,EAAS,QAAS,CAQpBN,GAAWJ,EAAGG,EAASE,EAAgBG,EAAW,qBAAqB,EACvE,MACF,CAIA,GAAIE,EAAS,OAAS,QAAS,CAC7BV,EAAE,OACA,OAAO,OAAO,IAAI,UAAU,cAAc,EAAG,CAAE,MAAOU,EAAS,KAAM,CAAC,CACxE,EACA,MACF,CAIAL,EAAiB,IAAI9E,GACrB8E,EAAezC,EAAM,EAAI8C,EACzBL,EAAetC,EAAM,EAAIuC,EACzBD,EAAexC,EAAQ,EAAEW,EAAY,EAAIkC,EAAS,YAClDL,EAAexC,EAAQ,EAAEC,EAAM,EAAI,YACnCuC,EAAexC,EAAQ,EAAEE,EAAM,EAAIuC,EAGnCN,EAAE,QAAQK,CAAc,EAC1B,EAME,WAAYN,EAAK,YAAcX,GAAoB,CACrD,CAAC,EAGMY,EAAE,OACX,CAGA,SAASW,GAAyBD,EAAUE,EAAgB,QAAS,CAOnE,GALIF,EAAS,OAAS,SAAWA,EAAS,SAKtC,CAACA,EAAS,SAAS,OACrB,OAIF,IAAMG,EAAcH,EAAS,QAAQ,CAAC,EAGlCI,EAAaJ,EAAS,WAGtBK,EAAaL,EAAS,WAGrBhD,GAAqBmD,CAAW,GAKjCC,IAAe,OAKdA,EAAW,oBAEdA,EAAapE,GAAuB,CAClC,UAAWoE,EAAW,SACxB,CAAC,EAGDC,EAAa,IAQfD,EAAW,QAAU/D,GAA2B,EAGhD2D,EAAS,WAAaI,EAItBE,GACEF,EACAD,EACAD,EACA,WACAG,CACF,EACF,CAGA,SAASC,GAAoBF,EAAYD,EAAaD,EAAeK,EAAYF,EAAY,EACvFhC,GAAY,IAAOA,KAAc,IAAMC,IAAa,IACtD,YAAY,mBAAmB8B,EAAYD,EAAY,KAAMD,EAAeK,EAAYF,CAAU,CAEtG,CAGA,SAASX,GAAYJ,EAAGG,EAASE,EAAgBT,EAAO,CAwBtD,GApBKA,IACHA,EAAQ,IAAIrB,GAAa,6BAA8B,YAAY,GAIrEyB,EAAE,OAAOJ,CAAK,EAIVO,EAAQ,MAAQ,MAAQrB,GAAWqB,EAAQ,MAAM,MAAM,GACzDA,EAAQ,KAAK,OAAO,OAAOP,CAAK,EAAE,MAAOsB,GAAQ,CAC/C,GAAIA,EAAI,OAAS,oBAIjB,MAAMA,CACR,CAAC,EAICb,GAAkB,KACpB,OAIF,IAAMK,EAAWL,EAAezC,EAAM,EAIlC8C,EAAS,MAAQ,MAAQ5B,GAAW4B,EAAS,MAAM,MAAM,GAC3DA,EAAS,KAAK,OAAO,OAAOd,CAAK,EAAE,MAAOsB,GAAQ,CAChD,GAAIA,EAAI,OAAS,oBAIjB,MAAMA,CACR,CAAC,CAEL,CAGA,SAAST,GAAU,CACjB,QAAAN,EACA,8BAAAgB,EACA,wBAAAC,EACA,gBAAAC,EACA,yBAAAC,EACA,2BAAAC,EACA,iBAAAC,EAAmB,GACnB,WAAA9B,CACF,EAAG,CAED,IAAI+B,EAAkB,KAGlBC,EAAgC,GAGhCvB,EAAQ,QAAU,OAEpBsB,EAAkBtB,EAAQ,OAAO,aAIjCuB,EACEvB,EAAQ,OAAO,+BAUnB,IAAMwB,EAAa5E,GAA2B2E,CAA6B,EACrEZ,EAAapE,GAAuB,CACxC,UAAWiF,CACb,CAAC,EAYKC,EAAc,CAClB,WAAY,IAAInC,GAAMC,CAAU,EAChC,QAAAS,EACA,WAAAW,EACA,8BAAAK,EACA,wBAAAC,EACA,gBAAAC,EACA,2BAAAE,EACA,yBAAAD,EACA,gBAAAG,EACA,8BAAAC,CACF,EAMA,OAAA1D,GAAO,CAACmC,EAAQ,MAAQA,EAAQ,KAAK,MAAM,EAKvCA,EAAQ,SAAW,WAErBA,EAAQ,OACNA,EAAQ,QAAQ,cAAc,aAAa,OAAS,SAChDA,EAAQ,OACR,aAKJA,EAAQ,SAAW,WAErBA,EAAQ,OAASA,EAAQ,QAAQ,QAO/BA,EAAQ,kBAAoB,WAG1BA,EAAQ,QAAU,KACpBA,EAAQ,gBAAkBjE,GACxBiE,EAAQ,OAAO,eACjB,EAIAA,EAAQ,gBAAkBlE,GAAoB,GAK7CkE,EAAQ,YAAY,SAAS,QAAQ,GAiBxCA,EAAQ,YAAY,OAAO,SAfb,KAe4B,EAMvCA,EAAQ,YAAY,SAAS,iBAAiB,GACjDA,EAAQ,YAAY,OAAO,kBAAmB,GAAG,EAM/CA,EAAQ,SAKR7B,GAAY,SAAS6B,EAAQ,WAAW,EAK5C0B,GAAUD,CAAW,EAClB,MAAMV,GAAO,CACZU,EAAY,WAAW,UAAUV,CAAG,CACtC,CAAC,EAGIU,EAAY,UACrB,CAGA,eAAeC,GAAWD,EAAaE,EAAY,GAAO,CAExD,IAAM3B,EAAUyB,EAAY,QAGxBlB,EAAW,KAyHf,GArHIP,EAAQ,eAAiB,CAAC1C,GAAWlB,GAAkB4D,CAAO,CAAC,IACjEO,EAAWlF,EAAiB,iBAAiB,GAO/CiB,GAA8C0D,CAAO,EAKjDhE,GAAegE,CAAO,IAAM,YAC9BO,EAAWlF,EAAiB,UAAU,GAOpC2E,EAAQ,iBAAmB,KAC7BA,EAAQ,eAAiBA,EAAQ,gBAAgB,gBAK/CA,EAAQ,WAAa,gBACvBA,EAAQ,SAAWrD,GAA0BqD,CAAO,GAkBlDO,IAAa,OACfA,EAAW,MAAO,SAAY,CAC5B,IAAMqB,EAAaxF,GAAkB4D,CAAO,EAE5C,OAGGjD,GAAW6E,EAAY5B,EAAQ,GAAG,GAAKA,EAAQ,mBAAqB,SAEpE4B,EAAW,WAAa,SAExB5B,EAAQ,OAAS,YAAcA,EAAQ,OAAS,aAGjDA,EAAQ,iBAAmB,QAGpB,MAAM6B,GAAYJ,CAAW,GAIlCzB,EAAQ,OAAS,cAEZ3E,EAAiB,sCAAsC,EAI5D2E,EAAQ,OAAS,UAGfA,EAAQ,WAAa,SAChB3E,EACL,wDACF,GAIF2E,EAAQ,iBAAmB,SAGpB,MAAM6B,GAAYJ,CAAW,GAIjClE,GAAqBnB,GAAkB4D,CAAO,CAAC,GAmBpDA,EAAQ,iBAAmB,OAGpB,MAAM8B,GAAUL,CAAW,GApBzBpG,EAAiB,qCAAqC,CAqBjE,GAAG,GAIDsG,EACF,OAAOpB,EAKLA,EAAS,SAAW,GAAK,CAACA,EAAS,mBAEjCP,EAAQ,iBAeRA,EAAQ,mBAAqB,QAC/BO,EAAWhF,GAAegF,EAAU,OAAO,EAClCP,EAAQ,mBAAqB,OACtCO,EAAWhF,GAAegF,EAAU,MAAM,EACjCP,EAAQ,mBAAqB,SACtCO,EAAWhF,GAAegF,EAAU,QAAQ,EAE5C1C,GAAO,EAAK,GAMhB,IAAIkE,EACFxB,EAAS,SAAW,EAAIA,EAAWA,EAAS,iBAkD9C,GA9CIwB,EAAiB,QAAQ,SAAW,GACtCA,EAAiB,QAAQ,KAAK,GAAG/B,EAAQ,OAAO,EAK7CA,EAAQ,oBACXO,EAAS,kBAAoB,IAgB7BA,EAAS,OAAS,UAClBwB,EAAiB,SAAW,KAC5BA,EAAiB,gBACjB,CAAC/B,EAAQ,QAAQ,SAAS,OAAO,IAEjCO,EAAWwB,EAAmB1G,EAAiB,GAQ/CkF,EAAS,SAAW,IACnBP,EAAQ,SAAW,QAClBA,EAAQ,SAAW,WACnBhC,GAAe,SAAS+D,EAAiB,MAAM,KAEjDA,EAAiB,KAAO,KACxBN,EAAY,WAAW,KAAO,IAI5BzB,EAAQ,UAAW,CAGrB,IAAMgC,EAAoBxC,GACxByC,GAAYR,EAAapG,EAAiBmE,CAAM,CAAC,EAInD,GAAIQ,EAAQ,mBAAqB,UAAYO,EAAS,MAAQ,KAAM,CAClEyB,EAAiBzB,EAAS,KAAK,EAC/B,MACF,CAGA,IAAM2B,EAAeC,GAAU,CAG7B,GAAI,CAACtG,GAAWsG,EAAOnC,EAAQ,SAAS,EAAG,CACzCgC,EAAiB,oBAAoB,EACrC,MACF,CAGAzB,EAAS,KAAOzC,GAAkBqE,CAAK,EAAE,CAAC,EAG1CF,GAAYR,EAAalB,CAAQ,CACnC,EAGA,MAAMpD,GAAcoD,EAAS,KAAM2B,EAAaF,CAAgB,CAClE,MAEEC,GAAYR,EAAalB,CAAQ,CAErC,CAIA,eAAesB,GAAaJ,EAAa,CAKvC,GAAIzE,GAAYyE,CAAW,GAAKA,EAAY,QAAQ,gBAAkB,EACpE,OAAOnG,GAA4BmG,CAAW,EAIhD,GAAM,CAAE,QAAAzB,CAAQ,EAAIyB,EAEd,CAAE,SAAUW,CAAO,EAAIhG,GAAkB4D,CAAO,EAGtD,OAAQoC,EAAQ,CACd,IAAK,SAMH,OAAO/G,EAAiB,+BAA+B,EAEzD,IAAK,QAAS,CACP+D,KACHA,GAAmB,QAAQ,QAAQ,EAAE,kBAIvC,IAAMiD,EAAejG,GAAkB4D,CAAO,EAI9C,GAAIqC,EAAa,OAAO,SAAW,EACjC,OAAOhH,EAAiB,iDAAiD,EAG3E,IAAMiH,EAAqBlD,GAAiBiD,EAAa,SAAS,CAAC,EAInE,GAAIrC,EAAQ,SAAW,OAAS,CAAClD,GAAWwF,CAAkB,EAC5D,OAAOjH,EAAiB,gBAAgB,EAI1C,IAAMkH,EAAezE,GAAkBwE,CAAkB,EAGnDE,EAAOD,EAAa,CAAC,EAGrBE,EAASpF,GAAiB,GAAGmF,EAAK,MAAM,EAAE,EAG1CE,EAAOH,EAAa,CAAC,GAAK,GAI1BhC,EAAW/E,GAAa,CAC5B,WAAY,KACZ,YAAa,CACX,CAAC,iBAAkB,CAAE,KAAM,iBAAkB,MAAOiH,CAAO,CAAC,EAC5D,CAAC,eAAgB,CAAE,KAAM,eAAgB,MAAOC,CAAK,CAAC,CACxD,CACF,CAAC,EAED,OAAAnC,EAAS,KAAOiC,EAETjC,CACT,CACA,IAAK,QAAS,CAGZ,IAAMqB,EAAaxF,GAAkB4D,CAAO,EACtC2C,EAAgB7D,GAAiB8C,CAAU,EAIjD,GAAIe,IAAkB,UACpB,OAAOtH,EAAiB,8BAA8B,EAIxD,IAAMuH,EAAW7D,GAAmB4D,EAAc,QAAQ,EAK1D,OAAOnH,GAAa,CAClB,WAAY,KACZ,YAAa,CACX,CAAC,eAAgB,CAAE,KAAM,eAAgB,MAAOoH,CAAS,CAAC,CAC5D,EACA,KAAM9E,GAAkB6E,EAAc,IAAI,EAAE,CAAC,CAC/C,CAAC,CACH,CACA,IAAK,QAGH,OAAOtH,EAAiB,2BAA2B,EAErD,IAAK,QACL,IAAK,SAGH,OAAO,MAAMyG,GAAUL,CAAW,EAC/B,MAAOV,GAAQ1F,EAAiB0F,CAAG,CAAC,EAEzC,QACE,OAAO1F,EAAiB,gBAAgB,CAE5C,CACF,CAGA,SAASwH,GAAkBpB,EAAalB,EAAU,CAEhDkB,EAAY,QAAQ,KAAO,GAKvBA,EAAY,qBAAuB,MACrC,eAAe,IAAMA,EAAY,oBAAoBlB,CAAQ,CAAC,CAElE,CAGA,eAAe0B,GAAaR,EAAalB,EAAU,CAE7CA,EAAS,OAAS,UAEpBA,EAAS,QAAU,CAACkB,EAAY,QAAQ,QAAQ,CAAC,CAAC,EAIlDlB,EAAS,WAAahE,GAAuB,CAC3C,UAAWkF,EAAY,WAAW,SACpC,CAAC,GAIH,IAAMN,EAA2B,IAAM,CAErCM,EAAY,QAAQ,KAAO,GAKvBA,EAAY,0BAA4B,MAC1C,eAAe,IAAMA,EAAY,yBAAyBlB,CAAQ,CAAC,CAEvE,EAUA,GALIkB,EAAY,iBAAmB,MACjC,eAAe,IAAMA,EAAY,gBAAgBlB,CAAQ,CAAC,EAIxDA,EAAS,MAAQ,KACnBY,EAAyB,MACpB,CAOL,IAAM2B,EAA6B,CAACC,EAAO1C,IAAe,CACxDA,EAAW,QAAQ0C,CAAK,CAC1B,EAIMC,EAAkB,IAAIhE,GAAgB,CAC1C,OAAS,CAAC,EACV,UAAW8D,EACX,MAAO3B,CACT,EAAG,CACD,MAAQ,CACN,MAAO,EACT,CACF,EAAG,CACD,MAAQ,CACN,MAAO,EACT,CACF,CAAC,EAGDZ,EAAS,KAAO,CAAE,OAAQA,EAAS,KAAK,OAAO,YAAYyC,CAAe,CAAE,CAC9E,CAGA,GAAIvB,EAAY,4BAA8B,KAAM,CAGlD,IAAMS,EAAee,GAAgBxB,EAAY,2BAA2BlB,EAAU0C,CAAW,EAI3FjB,EAAoBkB,GAAYzB,EAAY,2BAA2BlB,EAAU2C,CAAO,EAI1F3C,EAAS,MAAQ,KACnB,eAAe,IAAM2B,EAAY,IAAI,CAAC,EAItC,MAAM/E,GAAcoD,EAAS,KAAM2B,EAAaF,CAAgB,CAEpE,CACF,CAGA,eAAeF,GAAWL,EAAa,CAErC,IAAMzB,EAAUyB,EAAY,QAGxBlB,EAAW,KAGX4C,EAAiB,KAGfxC,EAAac,EAAY,WAQ/B,GALIzB,EAAQ,eAKRO,IAAa,KAAM,CAgBrB,GAVIP,EAAQ,WAAa,WACvBA,EAAQ,eAAiB,QAK3BmD,EAAiB5C,EAAW,MAAM6C,GAAwB3B,CAAW,EAKnEzB,EAAQ,mBAAqB,QAC7BvD,GAAUuD,EAASO,CAAQ,IAAM,UAEjC,OAAOlF,EAAiB,cAAc,EAKpCY,GAAS+D,EAASO,CAAQ,IAAM,YAClCP,EAAQ,kBAAoB,GAEhC,CAMA,OACGA,EAAQ,mBAAqB,UAAYO,EAAS,OAAS,WAC5D7D,GACEsD,EAAQ,OACRA,EAAQ,OACRA,EAAQ,YACRmD,CACF,IAAM,UAEC9H,EAAiB,SAAS,GAI/B0C,GAAe,SAASoF,EAAe,MAAM,IAK3CnD,EAAQ,WAAa,UACvByB,EAAY,WAAW,WAAW,QAAQ,EAIxCzB,EAAQ,WAAa,QAEvBO,EAAWlF,EAAiB,qBAAqB,EACxC2E,EAAQ,WAAa,SAM9BO,EAAW4C,EACFnD,EAAQ,WAAa,SAG9BO,EAAW,MAAM8C,GAAkB5B,EAAalB,CAAQ,EAExD1C,GAAO,EAAK,GAKhB0C,EAAS,WAAaI,EAGfJ,EACT,CAGA,eAAe8C,GAAmB5B,EAAalB,EAAU,CAEvD,IAAMP,EAAUyB,EAAY,QAItB0B,EAAiB5C,EAAS,iBAC5BA,EAAS,iBACTA,EAIA+C,EAEJ,GAAI,CAOF,GANAA,EAAcnH,GACZgH,EACA/G,GAAkB4D,CAAO,EAAE,IAC7B,EAGIsD,GAAe,KACjB,OAAO/C,CAEX,OAASQ,EAAK,CAEZ,OAAO1F,EAAiB0F,CAAG,CAC7B,CAIA,GAAI,CAACxD,GAAqB+F,CAAW,EACnC,OAAOjI,EAAiB,qCAAqC,EAI/D,GAAI2E,EAAQ,gBAAkB,GAC5B,OAAO3E,EAAiB,yBAAyB,EASnD,GALA2E,EAAQ,eAAiB,EAMvBA,EAAQ,OAAS,SAChBsD,EAAY,UAAYA,EAAY,WACrC,CAACvG,GAAWiD,EAASsD,CAAW,EAEhC,OAAOjI,EAAiB,kDAAkD,EAK5E,GACE2E,EAAQ,mBAAqB,SAC5BsD,EAAY,UAAYA,EAAY,UAErC,OAAOjI,EACL,wDACF,EAKF,GACE8H,EAAe,SAAW,KAC1BnD,EAAQ,MAAQ,MAChBA,EAAQ,KAAK,QAAU,KAEvB,OAAO3E,EAAiB,EAM1B,GACG,CAAC,IAAK,GAAG,EAAE,SAAS8H,EAAe,MAAM,GAAKnD,EAAQ,SAAW,QACjEmD,EAAe,SAAW,KACzB,CAAC,CAAC,MAAO,MAAM,EAAE,SAASnD,EAAQ,MAAM,EAC1C,CAGAA,EAAQ,OAAS,MACjBA,EAAQ,KAAO,KAIf,QAAWuD,KAAcrF,GACvB8B,EAAQ,YAAY,OAAOuD,CAAU,CAEzC,CAKKxG,GAAWX,GAAkB4D,CAAO,EAAGsD,CAAW,GAErDtD,EAAQ,YAAY,OAAO,eAAe,EAKxCA,EAAQ,MAAQ,OAClBnC,GAAOmC,EAAQ,KAAK,QAAU,IAAI,EAClCA,EAAQ,KAAOlC,GAAkBkC,EAAQ,KAAK,MAAM,EAAE,CAAC,GAIzD,IAAMW,EAAac,EAAY,WAK/B,OAAAd,EAAW,gBAAkBA,EAAW,sBACtC/D,GAA2B6E,EAAY,6BAA6B,EAIlEd,EAAW,oBAAsB,IACnCA,EAAW,kBAAoBA,EAAW,WAI5CX,EAAQ,QAAQ,KAAKsD,CAAW,EAIhCjH,GAAmC2D,EAASmD,CAAc,EAGnDzB,GAAUD,EAAa,EAAI,CACpC,CAGA,eAAe2B,GACb3B,EACA+B,EAAwB,GACxBC,EAAuB,GACvB,CAEA,IAAMzD,EAAUyB,EAAY,QAGxBiC,EAAkB,KAGlBC,EAAc,KAGdpD,EAAW,KAMTqD,EAAY,KAGZC,EAAmB,GAOrB7D,EAAQ,SAAW,aAAeA,EAAQ,WAAa,SACzD0D,EAAkBjC,EAClBkC,EAAc3D,IAKd2D,EAAchI,GAAYqE,CAAO,EAGjC0D,EAAkB,CAAE,GAAGjC,CAAY,EAGnCiC,EAAgB,QAAUC,GAI5B,IAAMG,EACJ9D,EAAQ,cAAgB,WACvBA,EAAQ,cAAgB,eACvBA,EAAQ,mBAAqB,QAI3B+D,EAAgBJ,EAAY,KAAOA,EAAY,KAAK,OAAS,KAG/DK,EAA2B,KAgJ/B,GA3IEL,EAAY,MAAQ,MACpB,CAAC,OAAQ,KAAK,EAAE,SAASA,EAAY,MAAM,IAE3CK,EAA2B,KAKzBD,GAAiB,OACnBC,EAA2B3G,GAAiB,GAAG0G,CAAa,EAAE,GAM5DC,GAA4B,MAC9BL,EAAY,YAAY,OAAO,iBAAkBK,CAAwB,EAQvED,GAAiB,MAAQJ,EAAY,UAOrCA,EAAY,oBAAoB,KAClCA,EAAY,YAAY,OAAO,UAAWtG,GAAiBsG,EAAY,SAAS,IAAI,CAAC,EAIvFzH,GAA0ByH,CAAW,EAGrCnH,GAAoBmH,CAAW,EAK1BA,EAAY,YAAY,SAAS,YAAY,GAChDA,EAAY,YAAY,OAAO,aAAc,QAAQ,EAQrDA,EAAY,QAAU,YACrBA,EAAY,YAAY,SAAS,mBAAmB,GACnDA,EAAY,YAAY,SAAS,eAAe,GAChDA,EAAY,YAAY,SAAS,qBAAqB,GACtDA,EAAY,YAAY,SAAS,UAAU,GAC3CA,EAAY,YAAY,SAAS,UAAU,KAE7CA,EAAY,MAAQ,YAQpBA,EAAY,QAAU,YACtB,CAACA,EAAY,8CACb,CAACA,EAAY,YAAY,SAAS,eAAe,GAEjDA,EAAY,YAAY,OAAO,gBAAiB,WAAW,GAIzDA,EAAY,QAAU,YAAcA,EAAY,QAAU,YAGvDA,EAAY,YAAY,SAAS,QAAQ,GAC5CA,EAAY,YAAY,OAAO,SAAU,UAAU,EAKhDA,EAAY,YAAY,SAAS,eAAe,GACnDA,EAAY,YAAY,OAAO,gBAAiB,UAAU,GAM1DA,EAAY,YAAY,SAAS,OAAO,GAC1CA,EAAY,YAAY,OAAO,kBAAmB,UAAU,EAMzDA,EAAY,YAAY,SAAS,iBAAiB,IACjDnG,GAAkBpB,GAAkBuH,CAAW,CAAC,EAClDA,EAAY,YAAY,OAAO,kBAAmB,mBAAmB,EAErEA,EAAY,YAAY,OAAO,kBAAmB,eAAe,GAsBjEC,GAAa,OACfD,EAAY,MAAQ,YAKlBA,EAAY,OAAS,YAAcA,EAAY,KAQ/CpD,GAAY,KAAM,CAGpB,GAAIoD,EAAY,OAAS,iBACvB,OAAOtI,EAAiB,gBAAgB,EAK1C,IAAM4I,EAAkB,MAAMC,GAC5BR,EACAI,EACAL,CACF,EAOE,CAACxF,GAAY,SAAS0F,EAAY,MAAM,GACxCM,EAAgB,QAAU,KAC1BA,EAAgB,QAAU,IAOxBJ,GAAoBI,EAAgB,OAKpC1D,GAAY,OAEdA,EAAW0D,EAMf,CAoBA,GAjBA1D,EAAS,QAAU,CAAC,GAAGoD,EAAY,OAAO,EAItCA,EAAY,YAAY,SAAS,OAAO,IAC1CpD,EAAS,eAAiB,IAI5BA,EAAS,2BAA6BuD,EAQlCvD,EAAS,SAAW,IAEtB,OAAIP,EAAQ,SAAW,YACd3E,EAAiB,EAMtB2B,GAAYyE,CAAW,EAClBnG,GAA4BmG,CAAW,EAUzCpG,EAAiB,+BAA+B,EAIzD,GAEEkF,EAAS,SAAW,KAEpB,CAACkD,IAEAzD,EAAQ,MAAQ,MAAQA,EAAQ,KAAK,QAAU,MAChD,CAIA,GAAIhD,GAAYyE,CAAW,EACzB,OAAOnG,GAA4BmG,CAAW,EAShDA,EAAY,WAAW,WAAW,QAAQ,EAE1ClB,EAAW,MAAM6C,GACf3B,EACA+B,EACA,EACF,CACF,CAQA,OAAOjD,CACT,CAGA,eAAe2D,GACbzC,EACAqC,EAAqB,GACrBK,EAAqB,GACrB,CACAtG,GAAO,CAAC4D,EAAY,WAAW,YAAcA,EAAY,WAAW,WAAW,SAAS,EAExFA,EAAY,WAAW,WAAa,CAClC,MAAO,KACP,UAAW,GACX,QAASV,EAAK,CACP,KAAK,YACR,KAAK,UAAY,GACjB,KAAK,QAAQA,GAAO,IAAI3C,GAAa,6BAA8B,YAAY,CAAC,EAEpF,CACF,EAGA,IAAM4B,EAAUyB,EAAY,QAGxBlB,EAAW,KAGTI,EAAac,EAAY,WAKb,MAGD,OACfzB,EAAQ,MAAQ,YASlB,IAAMoE,EAAgBD,EAAqB,MAAQ,KAG/CnE,EAAQ,KAgEZ,IAAIqE,EAAc,KAIlB,GAAIrE,EAAQ,MAAQ,MAAQyB,EAAY,wBACtC,eAAe,IAAMA,EAAY,wBAAwB,CAAC,UACjDzB,EAAQ,MAAQ,KAAM,CAI/B,IAAMsE,EAAmB,gBAAkBnC,EAAO,CAE5CnF,GAAYyE,CAAW,IAK3B,MAAMU,EAINV,EAAY,gCAAgCU,EAAM,UAAU,EAC9D,EAGMoC,EAAmB,IAAM,CAEzBvH,GAAYyE,CAAW,GAMvBA,EAAY,yBACdA,EAAY,wBAAwB,CAExC,EAGMO,EAAoBjC,GAAM,CAE1B/C,GAAYyE,CAAW,IAKvB1B,EAAE,OAAS,aACb0B,EAAY,WAAW,MAAM,EAE7BA,EAAY,WAAW,UAAU1B,CAAC,EAEtC,EAIAsE,EAAe,iBAAoB,CACjC,GAAI,CACF,cAAiBlC,KAASnC,EAAQ,KAAK,OACrC,MAAQsE,EAAiBnC,CAAK,EAEhCoC,EAAiB,CACnB,OAASxD,EAAK,CACZiB,EAAiBjB,CAAG,CACtB,CACF,EAAG,CACL,CAEA,GAAI,CAEF,GAAM,CAAE,KAAAyB,EAAM,OAAAgC,EAAQ,WAAAC,EAAY,YAAAC,EAAa,OAAAC,CAAO,EAAI,MAAMC,EAAS,CAAE,KAAMP,CAAY,CAAC,EAE9F,GAAIM,EACFpE,EAAW/E,GAAa,CAAE,OAAAgJ,EAAQ,WAAAC,EAAY,YAAAC,EAAa,OAAAC,CAAO,CAAC,MAC9D,CACL,IAAME,EAAWrC,EAAK,OAAO,aAAa,EAAE,EAC5Cf,EAAY,WAAW,KAAO,IAAMoD,EAAS,KAAK,EAElDtE,EAAW/E,GAAa,CAAE,OAAAgJ,EAAQ,WAAAC,EAAY,YAAAC,CAAY,CAAC,CAC7D,CACF,OAAS3D,EAAK,CAEZ,OAAIA,EAAI,OAAS,cAEfU,EAAY,WAAW,WAAW,QAAQ,EAGnCnG,GAA4BmG,CAAW,GAGzCpG,EAAiB0F,CAAG,CAC7B,CAIA,IAAM+D,EAAgB,IAAM,CAC1BrD,EAAY,WAAW,OAAO,CAChC,EAIMsD,EAAmBvF,GAAW,CAClCiC,EAAY,WAAW,MAAMjC,CAAM,CACrC,EAcKH,KACHA,GAAiB,QAAQ,YAAY,EAAE,gBAGzC,IAAM2F,EAAS,IAAI3F,GACjB,CACE,MAAM,MAAOgB,EAAY,CACvBoB,EAAY,WAAW,WAAapB,CACtC,EACA,MAAM,KAAMA,EAAY,CACtB,MAAMyE,EAAczE,CAAU,CAChC,EACA,MAAM,OAAQb,EAAQ,CACpB,MAAMuF,EAAgBvF,CAAM,CAC9B,CACF,EACA,CACE,cAAe,EACf,MAAQ,CACN,MAAO,EACT,CACF,CACF,EAKAe,EAAS,KAAO,CAAE,OAAAyE,CAAO,EAmBzBvD,EAAY,WAAW,GAAG,aAAcwD,CAAS,EACjDxD,EAAY,WAAW,OAAS,SAAY,CAE1C,OAAa,CAKX,IAAIU,EACA+C,EACJ,GAAI,CACF,GAAM,CAAE,KAAAC,EAAM,MAAAC,CAAM,EAAI,MAAM3D,EAAY,WAAW,KAAK,EAE1D,GAAIxE,GAAUwE,CAAW,EACvB,MAGFU,EAAQgD,EAAO,OAAYC,CAC7B,OAASrE,EAAK,CACRU,EAAY,WAAW,OAAS,CAACd,EAAW,gBAE9CwB,EAAQ,QAERA,EAAQpB,EAIRmE,EAAY,GAEhB,CAEA,GAAI/C,IAAU,OAAW,CAKvB/E,GAAoBqE,EAAY,WAAW,UAAU,EAErDoB,GAAiBpB,EAAalB,CAAQ,EAEtC,MACF,CAMA,GAHAI,EAAW,iBAAmBwB,GAAO,YAAc,EAG/C+C,EAAW,CACbzD,EAAY,WAAW,UAAUU,CAAK,EACtC,MACF,CAOA,GAHAV,EAAY,WAAW,WAAW,QAAQ,IAAI,WAAWU,CAAK,CAAC,EAG3DzD,GAAUsG,CAAM,EAAG,CACrBvD,EAAY,WAAW,UAAU,EACjC,MACF,CAIA,GAAI,CAACA,EAAY,WAAW,WAAW,YACrC,MAEJ,CACF,EAGA,SAASwD,EAAWzF,EAAQ,CAEtBvC,GAAUwE,CAAW,GAEvBlB,EAAS,QAAU,GAMf5B,GAAWqG,CAAM,GACnBvD,EAAY,WAAW,WAAW,MAChCA,EAAY,WAAW,qBACzB,GAIE9C,GAAWqG,CAAM,GACnBvD,EAAY,WAAW,WAAW,MAAM,IAAI,UAAU,aAAc,CAClE,MAAOvE,GAAYsC,CAAM,EAAIA,EAAS,MACxC,CAAC,CAAC,EAMNiC,EAAY,WAAW,WAAW,QAAQ,CAC5C,CAGA,OAAOlB,EAEP,eAAeqE,EAAU,CAAE,KAAApC,CAAK,EAAG,CACjC,IAAM6C,EAAMjJ,GAAkB4D,CAAO,EAE/BsF,EAAQ7D,EAAY,WAAW,WAErC,OAAO,IAAI,QAAQ,CAAC8D,EAASC,IAAWF,EAAM,SAC5C,CACE,KAAMD,EAAI,SAAWA,EAAI,OACzB,OAAQA,EAAI,OACZ,OAAQrF,EAAQ,OAChB,KAAMyB,EAAY,WAAW,WAAW,aAAezB,EAAQ,MAAQA,EAAQ,KAAK,OAASwC,EAC7F,QAASxC,EAAQ,YAAY,QAC7B,gBAAiB,EACjB,QAASA,EAAQ,OAAS,YAAc,YAAc,MACxD,EACA,CACE,KAAM,KACN,MAAO,KAEP,UAAWyF,EAAO,CAEhB,GAAM,CAAE,WAAAC,CAAW,EAAIjE,EAAY,WAE/BiE,EAAW,UACbD,EAAM,IAAIrH,GAAa,6BAA8B,YAAY,CAAC,GAElEqD,EAAY,WAAW,GAAG,aAAcgE,CAAK,EAC7C,KAAK,MAAQC,EAAW,MAAQD,EAEpC,EAEA,UAAWjB,EAAQE,EAAaiB,EAAQlB,EAAY,CAClD,GAAID,EAAS,IACX,OAGF,IAAIoB,EAAU,CAAC,EACXC,EAAW,GAETC,GAAU,IAAIrK,GACpB,QAASsK,GAAI,EAAGA,GAAIrB,EAAY,OAAQqB,IAAK,EAAG,CAC9C,IAAMC,GAAMtB,EAAYqB,GAAI,CAAC,EAAE,SAAS,QAAQ,EAC1CE,GAAMvB,EAAYqB,GAAI,CAAC,EAAE,SAAS,QAAQ,EAE5CC,GAAI,YAAY,IAAM,mBAGxBJ,EAAUK,GAAI,YAAY,EAAE,MAAM,GAAG,EAAE,IAAKC,GAAMA,EAAE,KAAK,CAAC,EAAE,QAAQ,EAC3DF,GAAI,YAAY,IAAM,aAC/BH,EAAWI,IAGbH,GAAQ,OAAOE,GAAKC,EAAG,CACzB,CAEA,KAAK,KAAO,IAAI1H,GAAS,CAAE,KAAMoH,CAAO,CAAC,EAEzC,IAAMQ,GAAW,CAAC,EAEZC,GAAapG,EAAQ,WAAa,UACtC6F,GACA9H,GAAe,SAASyG,CAAM,EAGhC,GAAIxE,EAAQ,SAAW,QAAUA,EAAQ,SAAW,WAAa,CAAChC,GAAe,SAASwG,CAAM,GAAK,CAAC4B,GACpG,QAAWC,MAAUT,EAEnB,GAAIS,KAAW,UAAYA,KAAW,OACpCF,GAAS,KAAKvK,GAAK,aAAa,CAK9B,MAAOA,GAAK,UAAU,aACtB,YAAaA,GAAK,UAAU,YAC9B,CAAC,CAAC,UACOyK,KAAW,UACpBF,GAAS,KAAKvK,GAAK,cAAc,CAAC,UACzByK,KAAW,KACpBF,GAAS,KAAKvK,GAAK,uBAAuB,CAAC,MACtC,CACLuK,GAAS,OAAS,EAClB,KACF,CAIJ,OAAAZ,EAAQ,CACN,OAAAf,EACA,WAAAC,EACA,YAAaqB,GAAQzH,EAAY,EACjC,KAAM8H,GAAS,OACX3H,GAAS,KAAK,KAAM,GAAG2H,GAAU,IAAM,CAAE,CAAC,EAC1C,KAAK,KAAK,GAAG,QAAS,IAAM,CAAC,CAAC,CACpC,CAAC,EAEM,EACT,EAEA,OAAQpD,EAAO,CACb,GAAItB,EAAY,WAAW,KACzB,OAOF,IAAMU,EAAQY,EAOd,OAAApC,EAAW,iBAAmBwB,EAAM,WAI7B,KAAK,KAAK,KAAKA,CAAK,CAC7B,EAEA,YAAc,CACR,KAAK,OACPV,EAAY,WAAW,IAAI,aAAc,KAAK,KAAK,EAGrDA,EAAY,WAAW,MAAQ,GAE/B,KAAK,KAAK,KAAK,IAAI,CACrB,EAEA,QAAShC,EAAO,CACV,KAAK,OACPgC,EAAY,WAAW,IAAI,aAAc,KAAK,KAAK,EAGrD,KAAK,MAAM,QAAQhC,CAAK,EAExBgC,EAAY,WAAW,UAAUhC,CAAK,EAEtC+F,EAAO/F,CAAK,CACd,EAEA,UAAW+E,EAAQE,EAAaC,EAAQ,CACtC,GAAIH,IAAW,IACb,OAGF,IAAMsB,EAAU,IAAIrK,GAEpB,QAASsK,EAAI,EAAGA,EAAIrB,EAAY,OAAQqB,GAAK,EAAG,CAC9C,IAAMC,EAAMtB,EAAYqB,EAAI,CAAC,EAAE,SAAS,QAAQ,EAC1CE,GAAMvB,EAAYqB,EAAI,CAAC,EAAE,SAAS,QAAQ,EAEhDD,EAAQ,OAAOE,EAAKC,EAAG,CACzB,CAEA,OAAAV,EAAQ,CACN,OAAAf,EACA,WAAYrF,GAAaqF,CAAM,EAC/B,YAAasB,EAAQzH,EAAY,EACjC,OAAAsG,CACF,CAAC,EAEM,EACT,CACF,CACF,CAAC,CACH,CACF,CAEAxJ,GAAO,QAAU,CACf,MAAAuE,GACA,MAAAJ,GACA,SAAAgB,GACA,wBAAAE,EACF,ICtkEA,IAAA8F,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEAA,GAAO,QAAU,CACf,OAAQ,OAAO,kBAAkB,EACjC,QAAS,OAAO,mBAAmB,EACnC,OAAQ,OAAO,kBAAkB,EACjC,wBAAyB,OAAO,gDAAgD,EAChF,QAAS,OAAO,mBAAmB,EACnC,SAAU,OAAO,oBAAoB,CACvC,ICTA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,GAAM,CAAE,OAAAC,EAAO,EAAI,KAEbC,GAAS,OAAO,qBAAqB,EAKrCC,GAAN,MAAMC,UAAsB,KAAM,CAChC,YAAaC,EAAMC,EAAgB,CAAC,EAAG,CACrCD,EAAOJ,GAAO,WAAW,UAAUI,CAAI,EACvCC,EAAgBL,GAAO,WAAW,kBAAkBK,GAAiB,CAAC,CAAC,EAEvE,MAAMD,EAAMC,CAAa,EAEzB,KAAKJ,EAAM,EAAI,CACb,iBAAkBI,EAAc,iBAChC,OAAQA,EAAc,OACtB,MAAOA,EAAc,KACvB,CACF,CAEA,IAAI,kBAAoB,CACtB,OAAAL,GAAO,WAAW,KAAMG,CAAa,EAE9B,KAAKF,EAAM,EAAE,gBACtB,CAEA,IAAI,QAAU,CACZ,OAAAD,GAAO,WAAW,KAAMG,CAAa,EAE9B,KAAKF,EAAM,EAAE,MACtB,CAEA,IAAI,OAAS,CACX,OAAAD,GAAO,WAAW,KAAMG,CAAa,EAE9B,KAAKF,EAAM,EAAE,KACtB,CACF,EAEAD,GAAO,WAAW,kBAAoBA,GAAO,oBAAoB,CAC/D,CACE,IAAK,mBACL,UAAWA,GAAO,WAAW,QAC7B,aAAc,EAChB,EACA,CACE,IAAK,SACL,UAAWA,GAAO,WAAW,oBAAoB,EACjD,aAAc,CAChB,EACA,CACE,IAAK,QACL,UAAWA,GAAO,WAAW,oBAAoB,EACjD,aAAc,CAChB,EACA,CACE,IAAK,UACL,UAAWA,GAAO,WAAW,QAC7B,aAAc,EAChB,EACA,CACE,IAAK,aACL,UAAWA,GAAO,WAAW,QAC7B,aAAc,EAChB,EACA,CACE,IAAK,WACL,UAAWA,GAAO,WAAW,QAC7B,aAAc,EAChB,CACF,CAAC,EAEDD,GAAO,QAAU,CACf,cAAAG,EACF,IC7EA,IAAAI,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAMA,SAASC,GAAaC,EAAO,CAC3B,GAAI,CAACA,EACH,MAAO,UAOT,OAAQA,EAAM,KAAK,EAAE,YAAY,EAAG,CAClC,IAAK,oBACL,IAAK,gBACL,IAAK,gBACL,IAAK,QACL,IAAK,OACL,IAAK,kBACH,MAAO,QACT,IAAK,MACL,IAAK,QACL,IAAK,WACL,IAAK,SACH,MAAO,SACT,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,qBACL,IAAK,WACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,SACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,WACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,kBACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,eACH,MAAO,aACT,IAAK,cACL,IAAK,mBACL,IAAK,SACL,IAAK,aACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,eACL,IAAK,UACH,MAAO,eACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,KACL,IAAK,SACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,KACH,MAAO,cACT,IAAK,cACH,MAAO,cACT,IAAK,UACL,IAAK,MACL,IAAK,OACL,IAAK,SACL,IAAK,SACH,MAAO,SACT,IAAK,UACL,IAAK,SACH,MAAO,SACT,IAAK,cACL,IAAK,MACL,IAAK,YACL,IAAK,cACH,MAAO,YACT,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,UACL,IAAK,cACH,MAAO,cACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,iBACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,cACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACL,IAAK,WACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,iBACL,IAAK,kBACH,MAAO,iBACT,IAAK,UACL,IAAK,WACL,IAAK,kBACL,IAAK,SACL,IAAK,UACL,IAAK,aACL,IAAK,MACL,IAAK,YACL,IAAK,QACH,MAAO,MACT,IAAK,UACH,MAAO,UACT,IAAK,OACL,IAAK,aACL,IAAK,UACL,IAAK,SACL,IAAK,WACH,MAAO,OACT,IAAK,sBACL,IAAK,SACL,IAAK,WACH,MAAO,SACT,IAAK,cACL,IAAK,cACH,MAAO,cACT,IAAK,aACL,IAAK,QACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,OACL,IAAK,cACL,IAAK,SACH,MAAO,YACT,IAAK,UACL,IAAK,gBACL,IAAK,SACL,IAAK,aACL,IAAK,SACL,IAAK,iBACL,IAAK,iBACL,IAAK,UACL,IAAK,WACL,IAAK,cACH,MAAO,SACT,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,cACH,MAAO,cACT,IAAK,cACL,IAAK,WACH,MAAO,WACT,IAAK,YACL,IAAK,kBACL,IAAK,QACL,IAAK,UACL,IAAK,cACL,IAAK,SACL,IAAK,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P,GAAM,WACN,GAAM,WACN,IAAO,SACP,GAAM,cACN,GAAM,UACN,GAAM,SACN,IAAO,cACP,GAAM,SACN,IAAO,QACP,GAAM,QACN,IAAO,OACP,GAAM,UACN,GAAM,cACN,IAAO,SACP,IAAO,WACP,GAAM,OACN,IAAO,UACP,GAAM,SACN,IAAO,OACP,GAAM,qBACN,IAAO,mBACP,GAAM,SACN,GAAM,MACN,IAAO,YACP,GAAM,QACN,GAAM,UACN,IAAO,WACP,GAAM,aACN,GAAM,UACN,GAAM,aACN,IAAO,UACP,GAAM,UACN,IAAO,MACP,GAAM,gBACN,GAAM,aACN,IAAO,WACP,IAAO,WACP,IAAO,WACP,GAAM,WACN,GAAM,QACN,UAAW,eACX,GAAM,YACN,GAAM,UACN,IAAO,MACP,GAAM,OACN,GAAM,QACN,GAAM,UACN,GAAM,cACN,IAAO,UACP,IAAO,mBACP,IAAO,cACP,WAAY,uBACZ,IAAO,SACP,IAAO,OACP,GAAM,YACN,GAAM,oBACN,UAAW,MACX,IAAO,6BACP,SAAU,OACV,GAAM,kBACN,IAAO,sBACP,GAAM,SACN,GAAM,YACN,IAAO,OACP,GAAM,UACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,IAAO,aACP,IAAO,aACP,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,sBACN,QAAS,wBACT,GAAM,qBACN,UAAW,sBACX,GAAM,UACN,IAAO,qBACP,IAAO,SACP,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,QACN,GAAM,WACN,WAAY,kBACZ,IAAO,qBACP,GAAM,eACN,IAAO,SACP,GAAM,UACN,GAAM,UACN,IAAO,qBACP,IAAO,OACP,GAAM,QACN,IAAO,WACP,IAAO,WACP,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,YACN,GAAM,SACN,GAAM,UACN,GAAM,YACN,IAAO,OACP,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,WAAY,YACZ,IAAO,uBACP,GAAM,QACN,GAAM,QACN,GAAM,SACN,IAAO,QACP,GAAM,OACN,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", - "names": ["require_lite", "__commonJSMin", "exports", "has", "dequal", "foo", "bar", "ctor", "len", "require_useDeepMemo", "__commonJSMin", "exports", "react_1", "lite_1", "useDeepMemo", "value", "ref", "signalRef", "require_useLatest", "__commonJSMin", "exports", "react_1", "useLatest", "value", "ref", "require_handle_error_toast_action", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "fs", "path", "api_1", "handleErrorToastAction", "error", "privateExtension", "title", "extensionURL", "packageJSON", "fallback", "toast", "require_usePromise", "__commonJSMin", "exports", "react_1", "api_1", "useDeepMemo_1", "useLatest_1", "handle_error_toast_action_1", "usePromise", "fn", "args", "options", "lastCallId", "state", "set", "fnRef", "latestAbortable", "latestArgs", "latestOnError", "latestOnData", "latestOnWillExecute", "latestValue", "latestCallback", "callback", "callId", "prevState", "bindPromiseIfNeeded", "data", "error", "toast", "revalidate", "mutate", "asyncUpdate", "dataBeforeOptimisticUpdate", "update", "err", "isLoading", "require_useCachedState", "__commonJSMin", "exports", "react_1", "api_1", "useLatest_1", "replacer", "key", "_value", "value", "reviver", "_key", "rootCache", "cacheMap", "useCachedState", "initialState", "config", "cacheKey", "cache", "keyRef", "initialValueRef", "cachedState", "error", "state", "err", "stateRef", "setStateAndCache", "updater", "newValue", "stringifiedValue", "require_object_hash", "__commonJSMin", "exports", "module", "crypto", "objectHash", "object", "options", "applyDefaults", "hash", "hashes", "encodings", "sourceOptions", "i", "isNativeFunction", "f", "exp", "hashingStream", "PassThrough", "hasher", "typeHasher", "buf", "stream", "writeTo", "context", "write", "str", "value", "type", "pattern", "objString", "objType", "objectNumber", "keys", "key", "self", "arr", "unordered", "entry", "contextAdditions", "entries", "strm", "localContext", "date", "sym", "err", "bool", "string", "fn", "number", "xml", "regex", "url", "map", "set", "file", "b", "require_useCachedPromise", "__commonJSMin", "exports", "__importDefault", "mod", "react_1", "object_hash_1", "useCachedState_1", "usePromise_1", "useLatest_1", "emptyCache", "useCachedPromise", "fn", "args", "options", "initialData", "keepPreviousData", "usePromiseOptions", "lastUpdateFrom", "cachedData", "mutateCache", "laggyDataRef", "_mutate", "revalidate", "state", "data", "returnedData", "latestData", "mutate", "asyncUpdate", "dataBeforeOptimisticUpdate", "err", "require_media_typer", "__commonJSMin", "exports", "SUBTYPE_NAME_REGEXP", "TYPE_NAME_REGEXP", "TYPE_REGEXP", "format", "parse", "test", "obj", "subtype", "suffix", "type", "string", "match", "index", "MediaType", "require_content_type", "__commonJSMin", "exports", "PARAM_REGEXP", "TEXT_REGEXP", "TOKEN_REGEXP", "QESC_REGEXP", "QUOTE_REGEXP", "TYPE_REGEXP", "format", "parse", "obj", "parameters", "type", "string", "param", "params", "i", "qstring", "header", "getcontenttype", "index", "ContentType", "key", "match", "value", "val", "str", "require_lib", "__commonJSMin", "exports", "module", "conversions", "sign", "x", "evenRound", "createNumberConversion", "bitLength", "typeOpts", "lowerBound", "upperBound", "moduloVal", "moduloBound", "V", "opts", "val", "c", "i", "S", "n", "U", "d", "a", "b", "require_utils", "__commonJSMin", "exports", "module", "target", "source", "keys", "i", "impl", "wrapper", "require_mappingTable", "__commonJSMin", "exports", "module", "require_tr46", "__commonJSMin", "exports", "module", "punycode", "mappingTable", "PROCESSING_OPTIONS", "normalize", "str", "s", "findStatus", "val", "start", "end", "mid", "target", "regexAstralSymbols", "countSymbols", "string", "mapChars", "domain_name", "useSTD3", "processing_option", "hasError", "processed", "len", "i", "codePoint", "status", "combiningMarksRegex", "validateLabel", "label", "error", "processing", "result", "labels", "validation", "verifyDnsLength", "l", "total", "require_url_state_machine", "__commonJSMin", "exports", "module", "punycode", "tr46", "specialSchemes", "failure", "countSymbols", "str", "at", "input", "idx", "c", "isASCIIDigit", "isASCIIAlpha", "isASCIIAlphanumeric", "isASCIIHex", "isSingleDot", "buffer", "isDoubleDot", "isWindowsDriveLetterCodePoints", "cp1", "cp2", "isWindowsDriveLetterString", "string", "isNormalizedWindowsDriveLetterString", "containsForbiddenHostCodePoint", "containsForbiddenHostCodePointExcludingPercent", "isSpecialScheme", "scheme", "isSpecial", "url", "defaultPort", "percentEncode", "hex", "utf8PercentEncode", "buf", "i", "utf8PercentDecode", "output", "isC0ControlPercentEncode", "extraPathPercentEncodeSet", "isPathPercentEncode", "extraUserinfoPercentEncodeSet", "isUserinfoPercentEncode", "percentEncodeChar", "encodeSetPredicate", "cStr", "parseIPv4Number", "R", "parseIPv4", "parts", "numbers", "part", "n", "ipv4", "counter", "serializeIPv4", "address", "parseIPv6", "pieceIndex", "compress", "pointer", "value", "length", "numbersSeen", "ipv4Piece", "number", "swaps", "temp", "serializeIPv6", "findLongestZeroSequence", "ignore0", "parseHost", "isSpecialArg", "parseOpaqueHost", "domain", "asciiDomain", "ipv4Host", "decoded", "arr", "maxIdx", "maxLen", "currStart", "currLen", "serializeHost", "host", "trimControlChars", "trimTabAndNewline", "shortenPath", "path", "isNormalizedWindowsDriveLetter", "includesCredentials", "cannotHaveAUsernamePasswordPort", "URLStateMachine", "base", "encodingOverride", "stateOverride", "res", "ret", "len", "codePoint", "encodedCodePoints", "port", "fileOtherwiseCodePoints", "serializeURL", "excludeFragment", "serializeOrigin", "tuple", "result", "options", "usm", "username", "password", "integer", "require_URL_impl", "__commonJSMin", "exports", "usm", "constructorArgs", "url", "base", "parsedBase", "parsedURL", "v", "input", "require_URL", "__commonJSMin", "exports", "module", "conversions", "utils", "Impl", "impl", "URL", "url", "args", "i", "V", "obj", "constructorArgs", "privateData", "require_public_api", "__commonJSMin", "exports", "require_lib", "__commonJSMin", "exports", "module", "_interopDefault", "ex", "Stream", "http", "Url", "whatwgUrl", "https", "zlib", "Readable", "BUFFER", "TYPE", "Blob", "_Blob", "blobParts", "options", "buffers", "size", "a", "length", "i", "element", "buffer", "type", "buf", "ab", "readable", "start", "end", "relativeStart", "relativeEnd", "span", "slicedBuffer", "blob", "FetchError", "message", "systemError", "convert", "INTERNALS", "PassThrough", "Body", "body", "_this", "_ref", "_ref$size", "_ref$timeout", "timeout", "isURLSearchParams", "isBlob", "err", "error", "consumeBody", "ct", "_this2", "_this3", "convertBody", "proto", "name", "desc", "_this4", "accum", "accumBytes", "abort", "resolve", "reject", "resTimeout", "chunk", "headers", "charset", "res", "str", "obj", "clone", "instance", "p1", "p2", "extractContentType", "getTotalBytes", "writeToStream", "dest", "invalidTokenRegex", "invalidHeaderCharRegex", "validateName", "validateValue", "value", "find", "map", "key", "MAP", "Headers", "_Headers", "init", "rawHeaders", "headerNames", "headerName", "method", "pairs", "pair", "callback", "thisArg", "getHeaders", "_pairs$i", "createHeadersIterator", "kind", "k", "INTERNAL", "target", "iterator", "HeadersIteratorPrototype", "_INTERNAL", "index", "values", "len", "exportNodeCompatibleHeaders", "hostHeaderKey", "createHeadersLenient", "val", "INTERNALS$1", "STATUS_CODES", "Response", "_Response", "opts", "status", "contentType", "INTERNALS$2", "URL", "parse_url", "format_url", "parseURL", "urlStr", "streamDestructionSupported", "isRequest", "input", "isAbortSignal", "signal", "Request", "_Request", "parsedURL", "inputBody", "getNodeRequestOptions", "request", "contentLengthValue", "totalBytes", "agent", "AbortError", "URL$1", "PassThrough$1", "isDomainOrSubdomain", "destination", "original", "orig", "isSameProtocol", "fetch", "url", "send", "response", "destroyStream", "abortAndFinalize", "finalize", "req", "reqTimeout", "socket", "fixResponseChunkedTransferBadEnding", "s", "hadError", "hasDataListener", "location", "locationURL", "requestOpts", "response_options", "codings", "zlibOptions", "raw", "errorCallback", "stream", "code", "require_node_ponyfill", "__commonJSMin", "exports", "module", "nodeFetch", "realFetch", "fetch", "url", "options", "require_useFetch", "__commonJSMin", "exports", "__importDefault", "mod", "react_1", "media_typer_1", "content_type_1", "useCachedPromise_1", "useLatest_1", "cross_fetch_1", "isJSON", "contentTypeHeader", "ct", "mediaType", "defaultParsing", "response", "useFetch", "url", "options", "parseResponse", "initialData", "execute", "keepPreviousData", "onError", "onData", "onWillExecute", "fetchOptions", "useCachedPromiseOptions", "parseResponseRef", "abortable", "fn", "res", "exports", "signals_js_1", "exports", "processOk", "process", "kExitEmitter", "global", "ObjectDefineProperty", "Emitter", "ev", "fn", "list", "i", "code", "signal", "ret", "SignalExitBase", "signalExitWrap", "handler", "cb", "opts", "SignalExitFallback", "SignalExit", "#hupSig", "#emitter", "#process", "#originalProcessEmit", "#originalProcessReallyExit", "#sigListeners", "#loaded", "sig", "listeners", "count", "p", "s", "a", "#processEmit", "#processReallyExit", "listener", "args", "og", "_a", "require_exec_utils", "__commonJSMin", "exports", "__importDefault", "mod", "node_buffer_1", "node_stream_1", "node_util_1", "signal_exit_1", "getSpawnedPromise", "spawned", "timeout", "spawnedPromise", "resolve", "reject", "exitCode", "signal", "error", "timeoutId", "timeoutPromise", "_resolve", "safeSpawnedPromise", "removeExitHandler", "MaxBufferError", "streamPipelinePromisified", "bufferStream", "options", "encoding", "isBuffer", "stream", "length", "chunks", "chunk", "getStream", "inputStream", "rejectPromise", "getBufferedData", "streamPromise", "getSpawnedResult", "stdout", "stderr", "processDone", "stdoutPromise", "stderrPromise", "stripFinalNewline", "input", "LF", "CR", "handleOutput", "value", "getErrorPrefix", "timedOut", "makeError", "command", "parentError", "execaMessage", "shortMessage", "message", "defaultParsing", "require_useExec", "__commonJSMin", "exports", "__importDefault", "mod", "node_child_process_1", "react_1", "useCachedPromise_1", "useLatest_1", "exec_utils_1", "SPACES_REGEXP", "parseCommand", "command", "args", "tokens", "token", "previousToken", "useExec", "optionsOrArgs", "options", "parseOutput", "input", "onData", "onWillExecute", "initialData", "execute", "keepPreviousData", "onError", "execOptions", "useCachedPromiseOptions", "abortable", "parseOutputRef", "fn", "_command", "_args", "_options", "file", "spawned", "spawnedPromise", "error", "exitCode", "signal", "timedOut", "stdoutResult", "stderrResult", "stdout", "stderr", "require_useSQL", "__commonJSMin", "exports", "__importDefault", "mod", "jsx_runtime_1", "api_1", "node_fs_1", "promises_1", "node_os_1", "node_child_process_1", "node_path_1", "object_hash_1", "react_1", "usePromise_1", "useLatest_1", "exec_utils_1", "handle_error_toast_action_1", "useSQL", "databasePath", "query", "options", "permissionPriming", "usePromiseOptions", "permissionView", "setPermissionView", "latestOptions", "abortable", "handleError", "_error", "error", "PermissionError", "isPermissionError", "PermissionErrorScreen", "fn", "workaroundCopiedDb", "abortSignal", "spawned", "spawnedPromise", "exitCode", "signal", "stdoutResult", "stderrResult", "checkAborted", "tempFolder", "message", "macosVenturaAndLater", "preferencesString", "props", "action", "require_useForm", "__commonJSMin", "exports", "react_1", "useLatest_1", "FormValidation", "validationError", "validation", "value", "valueIsValid", "useForm", "props", "_onSubmit", "initialValues", "values", "setValues", "errors", "setErrors", "refs", "latestValidation", "latestOnSubmit", "focus", "id", "handleSubmit", "validationErrors", "error", "result", "setValidationError", "setValue", "itemProps", "target", "event", "instance", "reset", "require_useAI", "__commonJSMin", "exports", "react_1", "api_1", "usePromise_1", "useAI", "prompt", "options", "creativity", "stream", "model", "usePromiseOptions", "data", "setData", "abortable", "isLoading", "error", "revalidate", "shouldStream", "x", "require_useFrecencySorting", "__commonJSMin", "exports", "react_1", "useLatest_1", "useCachedState_1", "HALF_LIFE_DAYS", "MS_PER_DAY", "DECAY_RATE_CONSTANT", "VISIT_TYPE_POINTS", "getNewFrecency", "item", "now", "lastVisited", "frecency", "visitAgeInDays", "currentVisitValue", "totalVisitValue", "defaultKey", "useFrecencySorting", "data", "options", "keyRef", "sortUnvisitedRef", "storedFrecencies", "setStoredFrecencies", "visitItem", "itemKey", "newFrecency", "resetRanking", "newFrencencies", "a", "b", "frecencyA", "frecencyB", "require_color", "__commonJSMin", "exports", "hexToRGB", "hex", "r", "g", "b", "rgbToHex", "rString", "gString", "bString", "rgbToHSL", "cmin", "cmax", "delta", "h", "s", "l", "hslToRGB", "c", "x", "m", "hexToHSL", "hslToHex", "hsl", "clamp", "value", "min", "max", "offset", "slightlyDarkerColor", "slightlyLighterColor", "require_avatar", "__commonJSMin", "exports", "color_1", "getWholeCharAndI", "str", "i", "code", "next", "prev", "avatarColorSet", "getAvatarIcon", "name", "options", "words", "initials", "firstWordFirstLetter", "lastWordFirstLetter", "backgroundColor", "initialsCharIndex", "char", "colorIndex", "radius", "require_favicon", "__commonJSMin", "exports", "api_1", "url_1", "getFavicon", "url", "options", "hostname", "e", "require_progress", "__commonJSMin", "exports", "api_1", "polarToCartesian", "centerX", "centerY", "radius", "angleInDegrees", "angleInRadians", "describeArc", "x", "y", "startAngle", "endAngle", "start", "end", "largeArcFlag", "getProgressIcon", "progress", "color", "options", "background", "backgroundOpacity", "stroke", "require_icon", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "require_run_applescript", "__commonJSMin", "exports", "__importDefault", "mod", "node_child_process_1", "exec_utils_1", "runAppleScript", "script", "optionsOrArgs", "options", "humanReadableOutput", "language", "timeout", "execOptions", "outputArguments", "spawned", "spawnedPromise", "error", "exitCode", "signal", "timedOut", "stdoutResult", "stderrResult", "stdout", "stderr", "require_dist", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "require_symbols", "__commonJSMin", "exports", "module", "require_errors", "__commonJSMin", "exports", "module", "UndiciError", "message", "ConnectTimeoutError", "_ConnectTimeoutError", "HeadersTimeoutError", "_HeadersTimeoutError", "HeadersOverflowError", "_HeadersOverflowError", "BodyTimeoutError", "_BodyTimeoutError", "ResponseStatusCodeError", "_ResponseStatusCodeError", "statusCode", "headers", "body", "InvalidArgumentError", "_InvalidArgumentError", "InvalidReturnValueError", "_InvalidReturnValueError", "RequestAbortedError", "_RequestAbortedError", "InformationalError", "_InformationalError", "RequestContentLengthMismatchError", "_RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "_ResponseContentLengthMismatchError", "ClientDestroyedError", "_ClientDestroyedError", "ClientClosedError", "_ClientClosedError", "SocketError", "_SocketError", "socket", "NotSupportedError", "_NotSupportedError", "BalancedPoolMissingUpstreamError", "HTTPParserError", "_HTTPParserError", "code", "data", "ResponseExceededMaxSizeError", "_ResponseExceededMaxSizeError", "require_util", "__commonJSMin", "exports", "module", "assert", "kDestroyed", "kBodyUsed", "IncomingMessage", "stream", "net", "InvalidArgumentError", "Blob", "nodeUtil", "stringify", "nodeMajor", "nodeMinor", "v", "nop", "isStream", "obj", "isBlobLike", "object", "buildURL", "url", "queryParams", "stringified", "parseURL", "port", "origin", "path", "parseOrigin", "getHostname", "host", "idx", "getServerName", "servername", "deepClone", "isAsyncIterable", "isIterable", "bodyLength", "body", "state", "isBuffer", "isDestroyed", "isReadableAborted", "destroy", "err", "KEEPALIVE_TIMEOUT_EXPR", "parseKeepAliveTimeout", "val", "m", "parseHeaders", "headers", "i", "key", "parseRawHeaders", "ret", "hasContentLength", "contentDispositionIdx", "n", "buffer", "validateHandler", "handler", "method", "upgrade", "isDisturbed", "isErrored", "isReadable", "getSocketInfo", "socket", "ReadableStream", "ReadableStreamFrom", "iterable", "iterator", "controller", "done", "value", "buf", "reason", "isFormDataLike", "throwIfAborted", "signal", "events", "addAbortListener", "listener", "hasToWellFormed", "toUSVString", "kEnumerableProperty", "require_timers", "__commonJSMin", "exports", "module", "fastNow", "fastNowTimeout", "fastTimers", "onTimeout", "len", "idx", "timer", "refreshTimeout", "Timeout", "callback", "delay", "opaque", "timeout", "require_utils", "__commonJSMin", "exports", "module", "parseContentType", "str", "params", "i", "code", "TOKEN", "type", "subtypeStart", "parseContentTypeParams", "subtype", "name", "nameStart", "value", "valueStart", "escaping", "QDTEXT", "parseDisposition", "defDecoder", "parseDispositionParams", "charset", "charsetStart", "CHARSET", "encode", "EXTENDED_VALUE", "hexUpper", "hexLower", "HEX_VALUES", "byteVal", "convertToUTF8", "getDecoder", "lc", "decoders", "data", "hint", "decode", "basename", "path", "require_sbmh", "__commonJSMin", "exports", "module", "memcmp", "buf1", "pos1", "buf2", "pos2", "num", "SBMH", "needle", "cb", "needleLen", "i", "chunk", "pos", "result", "chunkLen", "feed", "lbSize", "self", "data", "len", "lastNeedleCharPos", "lastNeedleChar", "end", "occ", "lookbehind", "nextPos", "ch", "matchNeedle", "bytesToCutOff", "firstNeedleChar", "lb", "require_multipart", "__commonJSMin", "exports", "module", "Readable", "Writable", "StreamSearch", "basename", "convertToUTF8", "getDecoder", "parseContentType", "parseDisposition", "BUF_CRLF", "BUF_CR", "BUF_DASH", "noop", "MAX_HEADER_PAIRS", "MAX_HEADER_SIZE", "HPARSER_NAME", "HPARSER_PRE_OWS", "HPARSER_VALUE", "HeaderParser", "cb", "chunk", "pos", "end", "start", "done", "code", "TOKEN", "FIELD_VCHAR", "header", "FileStream", "opts", "owner", "n", "ignoreData", "callAndUnsetCb", "self", "err", "nullDecoder", "val", "hint", "Multipart", "cfg", "streamOpts", "boundary", "paramDecoder", "defCharset", "preservePath", "fileOpts", "limits", "fieldSizeLimit", "fileSizeLimit", "filesLimit", "fieldsLimit", "partsLimit", "parts", "fields", "files", "skipPart", "fileSize", "field", "fieldSize", "partCharset", "partEncoding", "partType", "partName", "partTruncated", "hitFilesLimit", "hitFieldsLimit", "hparser", "filename", "disp", "conType", "matchPostBoundary", "ssCb", "isMatch", "data", "isDataSafe", "retrydata", "ret", "writecb", "actualLen", "enc", "checkEndState", "fileStream", "finalcb", "require_urlencoded", "__commonJSMin", "exports", "module", "Writable", "getDecoder", "URLEncoded", "cfg", "streamOpts", "charset", "limits", "conType", "chunk", "enc", "cb", "i", "len", "readPctEnc", "main", "skipKeyBytes", "skipValBytes", "self", "pos", "hexUpper", "HEX_VALUES", "hexLower", "code", "require_lib", "__commonJSMin", "exports", "module", "parseContentType", "getInstance", "cfg", "headers", "conType", "type", "TYPES", "instanceCfg", "typemod", "require_constants", "__commonJSMin", "exports", "module", "MessageChannel", "receiveMessageOnPort", "corsSafeListedMethods", "nullBodyStatus", "redirectStatus", "badPorts", "referrerPolicy", "requestRedirect", "safeMethods", "requestMode", "requestCredentials", "requestCache", "requestBodyHeader", "requestDuplex", "forbiddenMethods", "subresource", "DOMException", "err", "channel", "structuredClone", "value", "options", "require_global", "__commonJSMin", "exports", "module", "globalOrigin", "getGlobalOrigin", "setGlobalOrigin", "newOrigin", "parsedURL", "require_util", "__commonJSMin", "exports", "module", "redirectStatus", "badPorts", "referrerPolicyTokens", "getGlobalOrigin", "performance", "isBlobLike", "toUSVString", "ReadableStreamFrom", "assert", "isUint8Array", "crypto", "responseURL", "response", "urlList", "length", "responseLocationURL", "requestFragment", "location", "isValidHeaderValue", "requestCurrentURL", "request", "requestBadPort", "url", "urlIsHttpHttpsScheme", "isErrorLike", "object", "isValidReasonPhrase", "statusText", "i", "c", "isTokenChar", "isValidHTTPToken", "characters", "isValidHeaderName", "potentialValue", "setRequestReferrerPolicyOnRedirect", "actualResponse", "headersList", "policyHeader", "policy", "token", "crossOriginResourcePolicyCheck", "corsCheck", "TAOCheck", "appendFetchMetadata", "httpRequest", "header", "appendRequestOriginHeader", "serializedOrigin", "urlHasHttpsScheme", "sameOrigin", "coarsenedSharedCurrentTime", "crossOriginIsolatedCapability", "createOpaqueTimingInfo", "timingInfo", "makePolicyContainer", "clonePolicyContainer", "policyContainer", "determineRequestsReferrer", "referrerSource", "globalOrigin", "referrerURL", "stripURLForReferrer", "referrerOrigin", "areSameOrigin", "isNonPotentiallyTrustWorthy", "isURLPotentiallyTrustworthy", "currentURL", "originOnly", "isOriginPotentiallyTrustworthy", "origin", "originAsURL", "bytesMatch", "bytes", "metadataList", "parsedMetadata", "parseMetadata", "list", "d", "strongest", "metadata", "item", "algorithm", "expectedValue", "parseHashWithOptions", "result", "empty", "supportedHashes", "parsedToken", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "A", "B", "createDeferredPromise", "res", "rej", "resolve", "reject", "isAborted", "fetchParams", "isCancelled", "normalizeMethod", "method", "serializeJavascriptValueToJSONString", "value", "esIteratorPrototype", "makeIterator", "iterator", "name", "kind", "index", "target", "values", "len", "pair", "iteratorResult", "fullyReadBody", "body", "processBody", "processBodyError", "successSteps", "errorSteps", "error", "reader", "e", "readAllBytes", "ReadableStream", "isReadableStreamLike", "stream", "MAXIMUM_ARGUMENT_LENGTH", "isomorphicDecode", "input", "previous", "current", "readableStreamClose", "controller", "err", "isomorphicEncode", "failureSteps", "byteLength", "done", "chunk", "urlIsLocal", "protocol", "hasOwn", "dict", "key", "require_symbols", "__commonJSMin", "exports", "module", "require_webidl", "__commonJSMin", "exports", "module", "types", "hasOwn", "toUSVString", "webidl", "message", "context", "plural", "V", "I", "opts", "length", "min", "ctx", "bitLength", "signedness", "upperBound", "lowerBound", "x", "n", "r", "converter", "method", "seq", "done", "value", "keyConverter", "valueConverter", "O", "result", "keys", "key", "typedKey", "typedValue", "i", "converters", "dictionary", "type", "dict", "options", "defaultValue", "required", "hasDefault", "index", "charCode", "T", "require_dataURL", "__commonJSMin", "exports", "module", "assert", "atob", "isomorphicDecode", "encoder", "HTTP_TOKEN_CODEPOINTS", "HTTP_WHITESPACE_REGEX", "HTTP_QUOTED_STRING_TOKENS", "dataURLProcessor", "dataURL", "input", "URLSerializer", "position", "mimeType", "collectASequenceOfCodePointsFast", "mimeTypeLength", "removeASCIIWhitespace", "encodedBody", "body", "stringPercentDecode", "stringBody", "forgivingBase64", "mimeTypeRecord", "parseMIMEType", "url", "excludeFragment", "href", "hash", "collectASequenceOfCodePoints", "condition", "result", "char", "idx", "start", "bytes", "percentDecode", "output", "i", "byte", "nextTwoBytes", "bytePoint", "removeHTTPWhitespace", "type", "subtype", "typeLowercase", "subtypeLowercase", "parameterName", "parameterValue", "collectAnHTTPQuotedString", "data", "binary", "extractValue", "positionStart", "value", "quoteOrBackslash", "serializeAMimeType", "parameters", "essence", "serialization", "name", "isHTTPWhiteSpace", "str", "leading", "trailing", "lead", "trail", "isASCIIWhitespace", "require_file", "__commonJSMin", "exports", "module", "Blob", "NativeFile", "types", "kState", "isBlobLike", "webidl", "parseMIMEType", "serializeAMimeType", "kEnumerableProperty", "File", "_File", "fileBits", "fileName", "options", "n", "t", "d", "substep", "processBlobParts", "FileLike", "_FileLike", "blobLike", "args", "V", "opts", "value", "parts", "bytes", "element", "s", "convertLineEndingsNative", "nativeLineEnding", "isFileLike", "object", "require_formdata", "__commonJSMin", "exports", "module", "isBlobLike", "toUSVString", "makeIterator", "kState", "UndiciFile", "FileLike", "isFileLike", "webidl", "Blob", "NativeFile", "File", "FormData", "_FormData", "form", "name", "value", "filename", "entry", "makeEntry", "idx", "pair", "callbackFn", "thisArg", "key", "options", "require_body", "__commonJSMin", "exports", "module", "Busboy", "util", "ReadableStreamFrom", "isBlobLike", "isReadableStreamLike", "readableStreamClose", "createDeferredPromise", "fullyReadBody", "FormData", "kState", "webidl", "DOMException", "structuredClone", "Blob", "NativeFile", "kBodyUsed", "assert", "isErrored", "isUint8Array", "isArrayBuffer", "UndiciFile", "parseMIMEType", "serializeAMimeType", "ReadableStream", "File", "extractBody", "object", "keepalive", "stream", "controller", "source", "action", "length", "type", "boundary", "prefix", "escape", "str", "normalizeLinefeeds", "value", "enc", "blobParts", "rn", "hasUnknownSizeValue", "name", "chunk", "part", "iterator", "done", "reason", "safelyExtractBody", "cloneBody", "body", "out1", "out2", "out2Clone", "finalClone", "consumeBody", "throwIfAborted", "state", "bodyMixinMethods", "instance", "specConsumeBody", "bytes", "mimeType", "bodyMimeType", "utf8DecodeBytes", "parseJSONFromBytes", "contentType", "headers", "key", "responseFormData", "busboy", "err", "info", "filename", "encoding", "chunks", "base64chunk", "end", "busboyResolve", "resolve", "reject", "entries", "text", "textDecoder", "formData", "mixinBody", "prototype", "convertBytesToJSValue", "bodyUnusable", "promise", "errorSteps", "error", "successSteps", "data", "e", "buffer", "headersList", "require_request", "__commonJSMin", "exports", "module", "InvalidArgumentError", "NotSupportedError", "assert", "util", "tokenRegExp", "headerCharRegex", "invalidPathRegex", "kHandler", "channels", "extractBody", "diagnosticsChannel", "Request", "origin", "path", "method", "body", "headers", "query", "idempotent", "blocking", "upgrade", "headersTimeout", "bodyTimeout", "reset", "throwOnError", "handler", "i", "processHeader", "keys", "key", "bodyStream", "contentType", "chunk", "err", "abort", "statusCode", "resume", "statusText", "socket", "trailers", "error", "value", "processHeaderValue", "val", "request", "require_dispatcher", "__commonJSMin", "exports", "module", "EventEmitter", "Dispatcher", "require_dispatcher_base", "__commonJSMin", "exports", "module", "Dispatcher", "ClientDestroyedError", "ClientClosedError", "InvalidArgumentError", "kDestroy", "kClose", "kDispatch", "kInterceptors", "kDestroyed", "kClosed", "kOnDestroyed", "kOnClosed", "kInterceptedDispatch", "DispatcherBase", "newInterceptors", "i", "callback", "resolve", "reject", "err", "data", "onClosed", "callbacks", "onDestroyed", "opts", "handler", "dispatch", "require_connect", "__commonJSMin", "exports", "module", "net", "assert", "util", "InvalidArgumentError", "ConnectTimeoutError", "tls", "SessionCache", "maxCachedSessions", "key", "ref", "sessionKey", "session", "oldestKey", "buildConnector", "socketPath", "timeout", "opts", "options", "sessionCache", "hostname", "host", "protocol", "port", "servername", "localAddress", "httpSocket", "callback", "socket", "keepAliveInitialDelay", "cancelTimeout", "setupTimeout", "onConnectTimeout", "cb", "err", "s1", "s2", "timeoutId", "enumToMap", "obj", "res", "key", "value", "exports", "utils_1", "ERROR", "exports", "TYPE", "FLAGS", "LENIENT_FLAGS", "METHODS", "key", "FINISH", "i", "c", "HEADER_STATE", "require_RedirectHandler", "__commonJSMin", "exports", "module", "util", "kBodyUsed", "assert", "InvalidArgumentError", "EE", "redirectableStatusCodes", "kBody", "BodyAsyncIterable", "body", "RedirectHandler", "dispatch", "maxRedirections", "opts", "handler", "abort", "statusCode", "headers", "socket", "error", "resume", "statusText", "parseLocation", "origin", "pathname", "search", "path", "cleanRequestHeaders", "chunk", "trailers", "i", "shouldRemoveHeader", "header", "removeContent", "unknownOrigin", "ret", "key", "require_redirectInterceptor", "__commonJSMin", "exports", "module", "RedirectHandler", "createRedirectInterceptor", "defaultMaxRedirections", "dispatch", "opts", "handler", "maxRedirections", "redirectHandler", "require_llhttp_wasm", "__commonJSMin", "exports", "module", "require_llhttp_simd_wasm", "__commonJSMin", "exports", "module", "require_client", "__commonJSMin", "exports", "module", "assert", "net", "util", "timers", "Request", "DispatcherBase", "RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "InvalidArgumentError", "RequestAbortedError", "HeadersTimeoutError", "HeadersOverflowError", "SocketError", "InformationalError", "BodyTimeoutError", "HTTPParserError", "ResponseExceededMaxSizeError", "ClientDestroyedError", "buildConnector", "kUrl", "kReset", "kServerName", "kClient", "kBusy", "kParser", "kConnect", "kBlocking", "kResuming", "kRunning", "kPending", "kSize", "kWriting", "kQueue", "kConnected", "kConnecting", "kNeedDrain", "kNoRef", "kKeepAliveDefaultTimeout", "kHostHeader", "kPendingIdx", "kRunningIdx", "kError", "kPipelining", "kSocket", "kKeepAliveTimeoutValue", "kMaxHeadersSize", "kKeepAliveMaxTimeout", "kKeepAliveTimeoutThreshold", "kHeadersTimeout", "kBodyTimeout", "kStrictContentLength", "kConnector", "kMaxRedirections", "kMaxRequests", "kCounter", "kClose", "kDestroy", "kDispatch", "kInterceptors", "kLocalAddress", "kMaxResponseSize", "FastBuffer", "kClosedResolve", "channels", "diagnosticsChannel", "Client", "url", "interceptors", "maxHeaderSize", "headersTimeout", "socketTimeout", "requestTimeout", "connectTimeout", "bodyTimeout", "idleTimeout", "keepAlive", "keepAliveTimeout", "maxKeepAliveTimeout", "keepAliveMaxTimeout", "keepAliveTimeoutThreshold", "socketPath", "pipelining", "tls", "strictContentLength", "maxCachedSessions", "maxRedirections", "connect", "maxRequestsPerClient", "localAddress", "maxResponseSize", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "createRedirectInterceptor", "value", "resume", "socket", "cb", "opts", "handler", "origin", "request", "resolve", "err", "requests", "errorRequest", "callback", "constants", "EMPTY_BUF", "lazyllhttp", "llhttpWasmData", "mod", "p", "at", "len", "currentParser", "start", "currentBufferPtr", "currentBufferRef", "statusCode", "upgrade", "shouldKeepAlive", "llhttpInstance", "llhttpPromise", "currentBufferSize", "TIMEOUT_HEADERS", "TIMEOUT_BODY", "TIMEOUT_IDLE", "Parser", "client", "type", "onParserTimeout", "chunk", "data", "llhttp", "ret", "offset", "ptr", "message", "buf", "key", "head", "headers", "onSocketError", "onSocketReadable", "onSocketEnd", "onSocketClose", "statusText", "timeout", "pause", "contentLength", "bytesRead", "parser", "timeoutType", "onError", "i", "host", "hostname", "protocol", "port", "idx", "ip", "reject", "emitDrain", "sync", "_resume", "write", "body", "method", "path", "blocking", "reset", "expectsPayload", "header", "writeIterable", "writeBlob", "writeStream", "finished", "writer", "AsyncWriter", "onData", "onDrain", "onAbort", "onFinished", "er", "buffer", "waitForDrain", "bytesWritten", "require_fixed_queue", "__commonJSMin", "exports", "module", "FixedCircularBuffer", "data", "nextItem", "tail", "next", "require_pool_stats", "__commonJSMin", "exports", "module", "kFree", "kConnected", "kPending", "kQueued", "kRunning", "kSize", "kPool", "PoolStats", "pool", "require_pool_base", "__commonJSMin", "exports", "module", "DispatcherBase", "FixedQueue", "kConnected", "kSize", "kRunning", "kPending", "kQueued", "kBusy", "kFree", "kUrl", "kClose", "kDestroy", "kDispatch", "PoolStats", "kClients", "kNeedDrain", "kQueue", "kClosedResolve", "kOnDrain", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kGetDispatcher", "kAddClient", "kRemoveClient", "kStats", "PoolBase", "pool", "origin", "targets", "queue", "needDrain", "item", "c", "err", "client", "ret", "pending", "running", "size", "resolve", "opts", "handler", "dispatcher", "idx", "require_pool", "__commonJSMin", "exports", "module", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kGetDispatcher", "Client", "InvalidArgumentError", "util", "kUrl", "kInterceptors", "buildConnector", "kOptions", "kConnections", "kFactory", "defaultFactory", "origin", "opts", "Pool", "connections", "factory", "connect", "connectTimeout", "tls", "maxCachedSessions", "socketPath", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "options", "dispatcher", "require_balanced_pool", "__commonJSMin", "exports", "module", "BalancedPoolMissingUpstreamError", "InvalidArgumentError", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kRemoveClient", "kGetDispatcher", "Pool", "kUrl", "kInterceptors", "parseOrigin", "kFactory", "kOptions", "kGreatestCommonDivisor", "kCurrentWeight", "kIndex", "kWeight", "kMaxWeightPerServer", "kErrorPenalty", "getGreatestCommonDivisor", "a", "b", "defaultFactory", "origin", "opts", "BalancedPool", "upstreams", "factory", "upstream", "upstreamOrigin", "pool", "args", "err", "client", "p", "dispatcher", "counter", "maxWeightIndex", "require_dispatcher_weakref", "__commonJSMin", "exports", "module", "kConnected", "kSize", "CompatWeakRef", "value", "CompatFinalizer", "finalizer", "dispatcher", "key", "require_agent", "__commonJSMin", "exports", "module", "InvalidArgumentError", "kClients", "kRunning", "kClose", "kDestroy", "kDispatch", "kInterceptors", "DispatcherBase", "Pool", "Client", "util", "createRedirectInterceptor", "WeakRef", "FinalizationRegistry", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kMaxRedirections", "kOnDrain", "kFactory", "kFinalizer", "kOptions", "defaultFactory", "origin", "opts", "Agent", "factory", "maxRedirections", "connect", "options", "key", "ref", "agent", "targets", "err", "ret", "client", "handler", "dispatcher", "closePromises", "destroyPromises", "require_readable", "__commonJSMin", "exports", "module", "assert", "Readable", "RequestAbortedError", "NotSupportedError", "InvalidArgumentError", "util", "ReadableStreamFrom", "toUSVString", "Blob", "kConsume", "kReading", "kBody", "kAbort", "kContentType", "resume", "abort", "contentType", "highWaterMark", "err", "ev", "args", "ret", "chunk", "consumePush", "consume", "opts", "limit", "signal", "abortFn", "signalListenerCleanup", "isLocked", "self", "isUnusable", "stream", "type", "resolve", "reject", "consumeFinish", "consumeStart", "state", "consumeEnd", "body", "length", "dst", "pos", "buf", "require_util", "__commonJSMin", "exports", "module", "assert", "ResponseStatusCodeError", "toUSVString", "getResolveErrorBodyCallback", "callback", "body", "contentType", "statusCode", "statusMessage", "headers", "chunks", "limit", "chunk", "payload", "require_abort_signal", "__commonJSMin", "exports", "module", "addAbortListener", "RequestAbortedError", "kListener", "kSignal", "abort", "self", "addSignal", "signal", "removeSignal", "require_api_request", "__commonJSMin", "exports", "module", "Readable", "InvalidArgumentError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "RequestHandler", "opts", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "highWaterMark", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "contentType", "chunk", "res", "trailers", "request", "resolve", "reject", "data", "require_api_stream", "__commonJSMin", "exports", "module", "finished", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "StreamHandler", "opts", "factory", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "res", "contentType", "trailers", "chunk", "stream", "resolve", "reject", "data", "require_api_pipeline", "__commonJSMin", "exports", "module", "Readable", "Duplex", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "AsyncResource", "addSignal", "removeSignal", "assert", "kResume", "PipelineRequest", "resume", "err", "callback", "PipelineResponse", "PipelineHandler", "opts", "handler", "signal", "method", "opaque", "onInfo", "responseHeaders", "body", "chunk", "encoding", "req", "res", "ret", "abort", "context", "statusCode", "rawHeaders", "headers", "trailers", "pipeline", "pipelineHandler", "require_api_upgrade", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "assert", "UpgradeHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "upgrade", "resolve", "reject", "data", "upgradeHandler", "require_api_connect", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "ConnectHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "connect", "resolve", "reject", "data", "connectHandler", "require_api", "__commonJSMin", "exports", "module", "require_mock_errors", "__commonJSMin", "exports", "module", "UndiciError", "MockNotMatchedError", "_MockNotMatchedError", "message", "require_mock_symbols", "__commonJSMin", "exports", "module", "require_mock_utils", "__commonJSMin", "exports", "module", "MockNotMatchedError", "kDispatches", "kMockAgent", "kOriginalDispatch", "kOrigin", "kGetNetConnect", "buildURL", "nop", "STATUS_CODES", "isPromise", "matchValue", "match", "value", "lowerCaseEntries", "headers", "headerName", "headerValue", "getHeaderByName", "key", "i", "buildHeadersFromArray", "clone", "entries", "index", "matchHeaders", "mockDispatch", "matchHeaderName", "matchHeaderValue", "safeUrl", "path", "pathSegments", "qp", "matchKey", "method", "body", "pathMatch", "methodMatch", "bodyMatch", "headersMatch", "getResponseData", "data", "getMockDispatch", "mockDispatches", "basePath", "resolvedPath", "matchedMockDispatches", "consumed", "addMockDispatch", "baseData", "replyData", "newMockDispatch", "deleteMockDispatch", "dispatch", "buildKey", "opts", "query", "generateKeyValues", "keyValuePairs", "x", "getStatusText", "statusCode", "getResponse", "buffers", "handler", "trailers", "error", "delay", "persist", "timesInvoked", "times", "handleReply", "_data", "optsHeaders", "newData", "responseData", "responseHeaders", "responseTrailers", "resume", "buildMockDispatch", "agent", "origin", "originalDispatch", "netConnect", "checkNetConnect", "url", "matcher", "buildMockOptions", "mockOptions", "require_mock_interceptor", "__commonJSMin", "exports", "module", "getResponseData", "buildKey", "addMockDispatch", "kDispatches", "kDispatchKey", "kDefaultHeaders", "kDefaultTrailers", "kContentLength", "kMockDispatch", "InvalidArgumentError", "buildURL", "MockScope", "mockDispatch", "waitInMs", "repeatTimes", "MockInterceptor", "opts", "mockDispatches", "parsedURL", "statusCode", "data", "responseOptions", "responseData", "contentLength", "headers", "trailers", "replyData", "wrappedDefaultsCallback", "resolvedData", "newMockDispatch", "dispatchData", "error", "require_mock_client", "__commonJSMin", "exports", "module", "promisify", "Client", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockClient", "origin", "opts", "require_mock_pool", "__commonJSMin", "exports", "module", "promisify", "Pool", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockPool", "origin", "opts", "require_pluralizer", "__commonJSMin", "exports", "module", "singulars", "plurals", "singular", "plural", "count", "one", "keys", "noun", "require_pending_interceptors_formatter", "__commonJSMin", "exports", "module", "Transform", "Console", "disableColors", "chunk", "_enc", "cb", "pendingInterceptors", "withPrettyHeaders", "method", "path", "statusCode", "persist", "times", "timesInvoked", "origin", "require_mock_agent", "__commonJSMin", "exports", "module", "kClients", "Agent", "kAgent", "kMockAgentSet", "kMockAgentGet", "kDispatches", "kIsMockActive", "kNetConnect", "kGetNetConnect", "kOptions", "kFactory", "MockClient", "MockPool", "matchValue", "buildMockOptions", "InvalidArgumentError", "UndiciError", "Dispatcher", "Pluralizer", "PendingInterceptorsFormatter", "FakeWeakRef", "value", "MockAgent", "opts", "agent", "origin", "dispatcher", "handler", "matcher", "mockOptions", "ref", "keyMatcher", "nonExplicitRef", "nonExplicitDispatcher", "mockAgentClients", "scope", "dispatch", "pending", "pendingInterceptorsFormatter", "pluralizer", "require_proxy_agent", "__commonJSMin", "exports", "module", "kProxy", "kClose", "kDestroy", "kInterceptors", "URL", "Agent", "Pool", "DispatcherBase", "InvalidArgumentError", "RequestAbortedError", "buildConnector", "kAgent", "kClient", "kProxyHeaders", "kRequestTls", "kProxyTls", "kConnectEndpoint", "defaultProtocolPort", "protocol", "buildProxyOptions", "opts", "defaultFactory", "origin", "ProxyAgent", "clientFactory", "resolvedUrl", "port", "host", "connect", "callback", "requestedHost", "socket", "statusCode", "servername", "err", "handler", "headers", "buildHeaders", "throwIfProxyAuthIsSent", "headersPair", "i", "key", "require_global", "__commonJSMin", "exports", "module", "globalDispatcher", "InvalidArgumentError", "Agent", "getGlobalDispatcher", "setGlobalDispatcher", "agent", "require_DecoratorHandler", "__commonJSMin", "exports", "module", "handler", "args", "require_headers", "__commonJSMin", "exports", "module", "kHeadersList", "kGuard", "kEnumerableProperty", "makeIterator", "isValidHeaderName", "isValidHeaderValue", "webidl", "assert", "kHeadersMap", "kHeadersSortedMap", "headerValueNormalize", "potentialValue", "i", "fill", "headers", "object", "header", "key", "value", "HeadersList", "_HeadersList", "init", "name", "lowercaseName", "exists", "delimiter", "Headers", "_Headers", "list", "names", "a", "b", "cookies", "callbackFn", "thisArg", "V", "require_response", "__commonJSMin", "exports", "module", "Headers", "HeadersList", "fill", "extractBody", "cloneBody", "mixinBody", "util", "kEnumerableProperty", "isValidReasonPhrase", "isCancelled", "isAborted", "isBlobLike", "serializeJavascriptValueToJSONString", "isErrorLike", "isomorphicEncode", "redirectStatus", "nullBodyStatus", "DOMException", "kState", "kHeaders", "kGuard", "kRealm", "webidl", "FormData", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "types", "ReadableStream", "Response", "_Response", "relevantRealm", "responseObject", "makeNetworkError", "data", "init", "bytes", "body", "initializeResponse", "url", "status", "parsedURL", "err", "value", "makeResponse", "bodyWithType", "extractedBody", "type", "urlList", "clonedResponse", "cloneResponse", "clonedResponseObject", "response", "filterResponse", "newResponse", "reason", "isError", "makeFilteredResponse", "state", "target", "p", "makeAppropriateNetworkError", "fetchParams", "V", "require_request", "__commonJSMin", "exports", "module", "extractBody", "mixinBody", "cloneBody", "Headers", "fillHeaders", "HeadersList", "FinalizationRegistry", "util", "isValidHTTPToken", "sameOrigin", "normalizeMethod", "makePolicyContainer", "forbiddenMethods", "corsSafeListedMethods", "referrerPolicy", "requestRedirect", "requestMode", "requestCredentials", "requestCache", "requestDuplex", "kEnumerableProperty", "kHeaders", "kSignal", "kState", "kGuard", "kRealm", "webidl", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "getMaxListeners", "setMaxListeners", "getEventListeners", "defaultMaxListeners", "TransformStream", "kInit", "kAbortController", "requestFinalizer", "signal", "abort", "Request", "_Request", "input", "init", "request", "fallbackMode", "baseUrl", "parsedURL", "err", "makeRequest", "origin", "window", "referrer", "parsedReferrer", "mode", "method", "ac", "acRef", "headers", "key", "val", "inputBody", "initBody", "extractedBody", "contentType", "inputOrInitBody", "finalBody", "identityTransform", "clonedRequest", "cloneRequest", "clonedRequestObject", "newRequest", "V", "require_fetch", "__commonJSMin", "exports", "module", "Response", "makeNetworkError", "makeAppropriateNetworkError", "filterResponse", "makeResponse", "Headers", "Request", "makeRequest", "zlib", "bytesMatch", "makePolicyContainer", "clonePolicyContainer", "requestBadPort", "TAOCheck", "appendRequestOriginHeader", "responseLocationURL", "requestCurrentURL", "setRequestReferrerPolicyOnRedirect", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "createOpaqueTimingInfo", "appendFetchMetadata", "corsCheck", "crossOriginResourcePolicyCheck", "determineRequestsReferrer", "coarsenedSharedCurrentTime", "createDeferredPromise", "isBlobLike", "sameOrigin", "isCancelled", "isAborted", "isErrorLike", "fullyReadBody", "readableStreamClose", "isomorphicEncode", "urlIsLocal", "urlIsHttpHttpsScheme", "urlHasHttpsScheme", "kState", "kHeaders", "kGuard", "kRealm", "assert", "safelyExtractBody", "redirectStatus", "nullBodyStatus", "safeMethods", "requestBodyHeader", "subresource", "DOMException", "kHeadersList", "EE", "Readable", "pipeline", "addAbortListener", "isErrored", "isReadable", "nodeMajor", "nodeMinor", "dataURLProcessor", "serializeAMimeType", "TransformStream", "getGlobalDispatcher", "webidl", "STATUS_CODES", "resolveObjectURL", "ReadableStream", "Fetch", "dispatcher", "reason", "error", "fetch", "input", "init", "p", "requestObject", "e", "request", "abortFetch", "responseObject", "relevantRealm", "locallyAborted", "controller", "fetching", "response", "finalizeAndReportTiming", "initiatorType", "originalURL", "timingInfo", "cacheState", "markResourceTiming", "globalThis", "err", "processRequestBodyChunkLength", "processRequestEndOfBody", "processResponse", "processResponseEndOfBody", "processResponseConsumeBody", "useParallelQueue", "taskDestination", "crossOriginIsolatedCapability", "currenTime", "fetchParams", "mainFetch", "recursive", "currentURL", "schemeFetch", "httpFetch", "internalResponse", "processBodyError", "fetchFinale", "processBody", "bytes", "scheme", "blobURLEntry", "blobURLEntryObject", "bodyWithType", "body", "length", "type", "dataURLStruct", "mimeType", "finalizeResponse", "identityTransformAlgorithm", "chunk", "transformStream", "nullOrBytes", "failure", "actualResponse", "httpNetworkOrCacheFetch", "httpRedirectFetch", "locationURL", "headerName", "isAuthenticationFetch", "isNewConnectionFetch", "httpFetchParams", "httpRequest", "httpCache", "revalidatingFlag", "includeCredentials", "contentLength", "contentLengthHeaderValue", "forwardResponse", "httpNetworkFetch", "forceNewConnection", "newConnection", "requestBody", "processBodyChunk", "processEndOfBody", "status", "statusText", "headersList", "socket", "dispatch", "iterator", "pullAlgorithm", "cancelAlgorithm", "stream", "onAborted", "isFailure", "done", "value", "url", "agent", "resolve", "reject", "abort", "connection", "resume", "codings", "location", "headers", "n", "key", "val", "x", "decoders", "willFollow", "coding", "require_symbols", "__commonJSMin", "exports", "module", "require_progressevent", "__commonJSMin", "exports", "module", "webidl", "kState", "ProgressEvent", "_ProgressEvent", "type", "eventInitDict", "require_encoding", "__commonJSMin", "exports", "module", "getEncoding", "label", "require_util", "__commonJSMin", "exports", "module", "kState", "kError", "kResult", "kAborted", "kLastProgressEventFired", "ProgressEvent", "getEncoding", "DOMException", "serializeAMimeType", "parseMIMEType", "types", "StringDecoder", "btoa", "staticPropertyDescriptors", "readOperation", "fr", "blob", "type", "encodingName", "reader", "bytes", "chunkPromise", "isFirstChunk", "done", "value", "fireAProgressEvent", "result", "packageData", "error", "event", "mimeType", "dataURL", "parsed", "decoder", "chunk", "encoding", "decode", "combineByteSequences", "binaryString", "ioQueue", "BOMEncoding", "BOMSniffing", "slice", "sliced", "a", "b", "c", "sequences", "size", "offset", "require_filereader", "__commonJSMin", "exports", "module", "staticPropertyDescriptors", "readOperation", "fireAProgressEvent", "kState", "kError", "kResult", "kEvents", "kAborted", "webidl", "kEnumerableProperty", "FileReader", "_FileReader", "blob", "encoding", "fn", "require_symbols", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "URLSerializer", "isValidHeaderName", "urlEquals", "A", "B", "excludeFragment", "serializedA", "serializedB", "fieldValues", "header", "values", "value", "require_cache", "__commonJSMin", "exports", "module", "kConstruct", "urlEquals", "getFieldValues", "kEnumerableProperty", "isDisturbed", "kHeadersList", "webidl", "Response", "cloneResponse", "Request", "kState", "kHeaders", "kGuard", "kRealm", "fetching", "urlIsHttpHttpsScheme", "createDeferredPromise", "readAllBytes", "assert", "getGlobalDispatcher", "Cache", "_Cache", "#relevantRequestResponseList", "request", "options", "p", "r", "responses", "requestResponse", "requestResponses", "#queryCache", "responseList", "response", "responseObject", "body", "requests", "responsePromises", "requestList", "fetchControllers", "responsePromise", "fieldValues", "fieldValue", "controller", "operations", "index", "operation", "cacheJobPromise", "errorData", "#batchCacheOperations", "e", "innerRequest", "innerResponse", "clonedResponse", "bodyReadPromise", "reader", "bytes", "error", "promise", "requestObject", "cache", "backupCache", "addedItems", "resultList", "idx", "requestQuery", "targetStorage", "storage", "cachedRequest", "cachedResponse", "#requestMatchesCachedItem", "queryURL", "cachedURL", "requestValue", "queryValue", "cacheQueryOptionConverters", "require_cachestorage", "__commonJSMin", "exports", "module", "kConstruct", "Cache", "webidl", "kEnumerableProperty", "CacheStorage", "_CacheStorage", "#caches", "request", "options", "cacheList", "response", "cacheName", "cache", "require_constants", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "kHeadersList", "isCTLExcludingHtab", "value", "char", "code", "validateCookieName", "name", "validateCookieValue", "validateCookiePath", "path", "validateCookieDomain", "domain", "toIMFDate", "date", "days", "months", "dayName", "day", "month", "year", "hour", "minute", "second", "validateCookieMaxAge", "maxAge", "stringify", "cookie", "out", "part", "key", "kHeadersListNode", "getHeadersList", "headers", "symbol", "headersList", "require_parse", "__commonJSMin", "exports", "module", "maxNameValuePairSize", "maxAttributeValueSize", "isCTLExcludingHtab", "collectASequenceOfCodePointsFast", "assert", "parseSetCookie", "header", "nameValuePair", "unparsedAttributes", "name", "value", "position", "parseUnparsedAttributes", "cookieAttributeList", "cookieAv", "attributeName", "attributeValue", "attributeNameLowercase", "expiryTime", "charCode", "deltaSeconds", "cookieDomain", "cookiePath", "enforcement", "attributeValueLowercase", "require_cookies", "__commonJSMin", "exports", "module", "parseSetCookie", "stringify", "getHeadersList", "webidl", "Headers", "getCookies", "headers", "cookie", "out", "piece", "name", "value", "deleteCookie", "attributes", "setCookie", "getSetCookies", "cookies", "pair", "require_constants", "__commonJSMin", "exports", "module", "uid", "staticPropertyDescriptors", "states", "opcodes", "maxUnsigned16Bit", "parserStates", "emptyBuffer", "require_symbols", "__commonJSMin", "exports", "module", "require_events", "__commonJSMin", "exports", "module", "webidl", "kEnumerableProperty", "MessagePort", "MessageEvent", "_MessageEvent", "#eventInit", "type", "eventInitDict", "bubbles", "cancelable", "data", "origin", "lastEventId", "source", "ports", "CloseEvent", "_CloseEvent", "ErrorEvent", "_ErrorEvent", "eventInit", "require_util", "__commonJSMin", "exports", "module", "kReadyState", "kController", "kResponse", "kBinaryType", "kWebSocketURL", "states", "opcodes", "MessageEvent", "ErrorEvent", "isEstablished", "ws", "isClosing", "isClosed", "fireEvent", "target", "eventConstructor", "eventInitDict", "event", "websocketMessageReceived", "type", "data", "dataForEvent", "failWebsocketConnection", "isValidSubprotocol", "protocol", "char", "code", "isValidStatusCode", "reason", "controller", "response", "require_connection", "__commonJSMin", "exports", "module", "randomBytes", "createHash", "diagnosticsChannel", "uid", "states", "kReadyState", "kSentClose", "kByteParser", "kReceivedClose", "fireEvent", "failWebsocketConnection", "CloseEvent", "makeRequest", "fetching", "Headers", "getGlobalDispatcher", "kHeadersList", "channels", "establishWebSocketConnection", "url", "protocols", "ws", "onEstablish", "options", "requestURL", "request", "headersList", "keyValue", "protocol", "permessageDeflate", "response", "secWSAccept", "digest", "secExtension", "secProtocol", "onSocketData", "onSocketClose", "onSocketError", "chunk", "wasClean", "code", "reason", "result", "error", "require_frame", "__commonJSMin", "exports", "module", "randomBytes", "maxUnsigned16Bit", "WebsocketFrameSend", "data", "opcode", "bodyLength", "payloadLength", "offset", "buffer", "i", "require_receiver", "__commonJSMin", "exports", "module", "Writable", "diagnosticsChannel", "parserStates", "opcodes", "states", "emptyBuffer", "kReadyState", "kSentClose", "kResponse", "kReceivedClose", "isValidStatusCode", "failWebsocketConnection", "websocketMessageReceived", "WebsocketFrameSend", "channels", "ByteParser", "#buffers", "#byteOffset", "#state", "#info", "#fragments", "ws", "chunk", "_", "callback", "buffer", "payloadLength", "body", "closeFrame", "err", "frame", "upper", "lower", "fullMessage", "n", "offset", "next", "length", "onlyCode", "data", "code", "reason", "require_websocket", "__commonJSMin", "exports", "module", "webidl", "DOMException", "URLSerializer", "staticPropertyDescriptors", "states", "opcodes", "emptyBuffer", "kWebSocketURL", "kReadyState", "kController", "kBinaryType", "kResponse", "kSentClose", "kByteParser", "isEstablished", "isClosing", "isValidSubprotocol", "failWebsocketConnection", "fireEvent", "establishWebSocketConnection", "WebsocketFrameSend", "ByteParser", "kEnumerableProperty", "isBlobLike", "getGlobalDispatcher", "types", "experimentalWarned", "WebSocket", "_WebSocket", "#events", "#bufferedAmount", "#protocol", "#extensions", "url", "protocols", "options", "urlRecord", "e", "p", "response", "#onConnectionEstablished", "code", "reason", "reasonByteLength", "frame", "err", "data", "socket", "value", "buffer", "ab", "fn", "type", "parser", "extensions", "protocol", "V", "require_undici", "__commonJSMin", "exports", "module", "Client", "Dispatcher", "errors", "Pool", "BalancedPool", "Agent", "util", "InvalidArgumentError", "api", "buildConnector", "MockClient", "MockAgent", "MockPool", "mockErrors", "ProxyAgent", "getGlobalDispatcher", "setGlobalDispatcher", "DecoratorHandler", "RedirectHandler", "createRedirectInterceptor", "hasCrypto", "makeDispatcher", "fn", "url", "opts", "handler", "path", "agent", "dispatcher", "fetchImpl", "resource", "err", "setGlobalOrigin", "getGlobalOrigin", "CacheStorage", "kConstruct", "deleteCookie", "getCookies", "getSetCookies", "setCookie", "parseMIMEType", "serializeAMimeType", "WebSocket", "assertInputTypes", "text", "lang", "slow", "host", "exports", "SPACE_REGEX", "DEFAULT_PUNCTUATION_REGEX", "splitLongText", "text", "_a", "_b", "_c", "maxLength", "_d", "splitPunct", "isSpaceOrPunct", "s", "i", "regex", "lastIndexOfSpaceOrPunct", "left", "right", "result", "addResult", "start", "end", "str", "exports", "assertInputTypes_1", "__importDefault", "splitLongText_1", "url_1", "getAudioUrl", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "exports", "getAllAudioUrls", "_f", "splitPunct", "shortText", "require_bind", "__commonJSMin", "exports", "module", "fn", "thisArg", "args", "require_utils", "__commonJSMin", "exports", "module", "bind", "toString", "isArray", "val", "isUndefined", "isBuffer", "isArrayBuffer", "isFormData", "isArrayBufferView", "result", "isString", "isNumber", "isObject", "isPlainObject", "prototype", "isDate", "isFile", "isBlob", "isFunction", "isStream", "isURLSearchParams", "trim", "str", "isStandardBrowserEnv", "forEach", "obj", "fn", "i", "l", "key", "merge", "assignValue", "extend", "a", "b", "thisArg", "stripBOM", "content", "require_buildURL", "__commonJSMin", "exports", "module", "utils", "encode", "val", "url", "params", "paramsSerializer", "serializedParams", "parts", "key", "v", "hashmarkIndex", "require_InterceptorManager", "__commonJSMin", "exports", "module", "utils", "InterceptorManager", "fulfilled", "rejected", "options", "id", "fn", "h", "require_normalizeHeaderName", "__commonJSMin", "exports", "module", "utils", "headers", "normalizedName", "value", "name", "require_enhanceError", "__commonJSMin", "exports", "module", "error", "config", "code", "request", "response", "require_createError", "__commonJSMin", "exports", "module", "enhanceError", "message", "config", "code", "request", "response", "error", "require_settle", "__commonJSMin", "exports", "module", "createError", "resolve", "reject", "response", "validateStatus", "require_cookies", "__commonJSMin", "exports", "module", "utils", "name", "value", "expires", "path", "domain", "secure", "cookie", "match", "require_isAbsoluteURL", "__commonJSMin", "exports", "module", "url", "require_combineURLs", "__commonJSMin", "exports", "module", "baseURL", "relativeURL", "require_buildFullPath", "__commonJSMin", "exports", "module", "isAbsoluteURL", "combineURLs", "baseURL", "requestedURL", "require_parseHeaders", "__commonJSMin", "exports", "module", "utils", "ignoreDuplicateOf", "headers", "parsed", "key", "val", "line", "require_isURLSameOrigin", "__commonJSMin", "exports", "module", "utils", "msie", "urlParsingNode", "originURL", "resolveURL", "url", "href", "requestURL", "parsed", "require_xhr", "__commonJSMin", "exports", "module", "utils", "settle", "cookies", "buildURL", "buildFullPath", "parseHeaders", "isURLSameOrigin", "createError", "config", "resolve", "reject", "requestData", "requestHeaders", "responseType", "request", "username", "password", "fullPath", "onloadend", "responseHeaders", "responseData", "response", "timeoutErrorMessage", "xsrfValue", "val", "key", "cancel", "require_ms", "__commonJSMin", "exports", "module", "s", "m", "h", "d", "w", "y", "val", "options", "type", "parse", "fmtLong", "fmtShort", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "require_common", "__commonJSMin", "exports", "module", "setup", "env", "createDebug", "coerce", "disable", "enable", "enabled", "destroy", "key", "selectColor", "namespace", "hash", "i", "prevTime", "enableOverride", "namespacesCache", "enabledCache", "debug", "args", "self", "curr", "ms", "index", "match", "format", "formatter", "val", "extend", "v", "delimiter", "newDebug", "namespaces", "split", "len", "toNamespace", "name", "regexp", "require_browser", "__commonJSMin", "exports", "module", "formatArgs", "save", "load", "useColors", "localstorage", "warned", "args", "c", "index", "lastC", "match", "namespaces", "r", "formatters", "v", "error", "require_has_flag", "__commonJSMin", "exports", "module", "flag", "argv", "prefix", "position", "terminatorPosition", "require_supports_color", "__commonJSMin", "exports", "module", "os", "tty", "hasFlag", "env", "forceColor", "translateLevel", "level", "supportsColor", "haveStream", "streamIsTTY", "min", "osRelease", "sign", "version", "getSupportLevel", "stream", "require_node", "__commonJSMin", "exports", "module", "tty", "util", "init", "log", "formatArgs", "save", "load", "useColors", "supportsColor", "key", "obj", "prop", "_", "k", "val", "args", "name", "c", "colorCode", "prefix", "getDate", "namespaces", "debug", "keys", "i", "formatters", "v", "str", "require_src", "__commonJSMin", "exports", "module", "require_debug", "__commonJSMin", "exports", "module", "debug", "require_follow_redirects", "__commonJSMin", "exports", "module", "url", "URL", "http", "https", "Writable", "assert", "debug", "useNativeURL", "error", "preservedUrlFields", "events", "eventHandlers", "event", "arg1", "arg2", "arg3", "InvalidUrlError", "createErrorType", "RedirectionError", "TooManyRedirectsError", "MaxBodyLengthExceededError", "WriteAfterEndError", "destroy", "noop", "RedirectableRequest", "options", "responseCallback", "self", "response", "cause", "destroyRequest", "data", "encoding", "callback", "isString", "isBuffer", "isFunction", "currentRequest", "name", "value", "msecs", "destroyOnTimeout", "socket", "startTimer", "clearTimer", "method", "a", "b", "property", "searchPos", "protocol", "nativeProtocol", "scheme", "request", "buffers", "writeNext", "buffer", "statusCode", "location", "requestHeaders", "beforeRedirect", "removeMatchingHeaders", "currentHostHeader", "currentUrlParts", "parseUrl", "currentHost", "currentUrl", "redirectUrl", "resolveUrl", "spreadUrlObject", "isSubdomain", "responseDetails", "requestDetails", "wrap", "protocols", "nativeProtocols", "wrappedProtocol", "input", "isURL", "validateUrl", "get", "wrappedRequest", "parsed", "relative", "base", "urlObject", "target", "spread", "key", "regex", "headers", "lastValue", "header", "code", "message", "baseClass", "CustomError", "properties", "subdomain", "domain", "dot", "require_package", "__commonJSMin", "exports", "module", "require_http", "__commonJSMin", "exports", "module", "utils", "settle", "buildFullPath", "buildURL", "http", "https", "httpFollow", "httpsFollow", "url", "zlib", "pkg", "createError", "enhanceError", "isHttps", "setProxy", "options", "proxy", "location", "base64", "redirection", "config", "resolvePromise", "rejectPromise", "resolve", "value", "reject", "data", "headers", "auth", "username", "password", "fullPath", "parsed", "protocol", "urlAuth", "urlUsername", "urlPassword", "isHttpsRequest", "agent", "proxyEnv", "proxyUrl", "parsedProxyUrl", "noProxyEnv", "shouldProxy", "noProxy", "s", "proxyElement", "proxyUrlAuth", "transport", "isHttpsProxy", "req", "res", "stream", "lastRequest", "response", "responseBuffer", "totalResponseBytes", "chunk", "err", "responseData", "timeout", "cancel", "require_defaults", "__commonJSMin", "exports", "module", "utils", "normalizeHeaderName", "enhanceError", "DEFAULT_CONTENT_TYPE", "setContentTypeIfUnset", "headers", "value", "getDefaultAdapter", "adapter", "stringifySafely", "rawValue", "parser", "encoder", "e", "defaults", "data", "transitional", "silentJSONParsing", "forcedJSONParsing", "strictJSONParsing", "status", "method", "require_transformData", "__commonJSMin", "exports", "module", "utils", "defaults", "data", "headers", "fns", "context", "fn", "require_isCancel", "__commonJSMin", "exports", "module", "value", "require_dispatchRequest", "__commonJSMin", "exports", "module", "utils", "transformData", "isCancel", "defaults", "throwIfCancellationRequested", "config", "method", "adapter", "response", "reason", "require_mergeConfig", "__commonJSMin", "exports", "module", "utils", "config1", "config2", "config", "valueFromConfig2Keys", "mergeDeepPropertiesKeys", "defaultToConfig2Keys", "directMergeKeys", "getMergedValue", "target", "source", "mergeDeepProperties", "prop", "axiosKeys", "otherKeys", "key", "require_validator", "__commonJSMin", "exports", "module", "pkg", "validators", "type", "i", "thing", "deprecatedWarnings", "currentVerArr", "isOlderVersion", "version", "thanVersion", "pkgVersionArr", "destVer", "validator", "message", "isDeprecated", "formatMessage", "opt", "desc", "value", "opts", "assertOptions", "options", "schema", "allowUnknown", "keys", "result", "require_Axios", "__commonJSMin", "exports", "module", "utils", "buildURL", "InterceptorManager", "dispatchRequest", "mergeConfig", "validator", "validators", "Axios", "instanceConfig", "config", "transitional", "requestInterceptorChain", "synchronousRequestInterceptors", "interceptor", "responseInterceptorChain", "promise", "chain", "newConfig", "onFulfilled", "onRejected", "error", "method", "url", "data", "require_Cancel", "__commonJSMin", "exports", "module", "Cancel", "message", "require_CancelToken", "__commonJSMin", "exports", "module", "Cancel", "CancelToken", "executor", "resolvePromise", "resolve", "token", "message", "cancel", "c", "require_spread", "__commonJSMin", "exports", "module", "callback", "arr", "require_isAxiosError", "__commonJSMin", "exports", "module", "payload", "require_axios", "__commonJSMin", "exports", "module", "utils", "bind", "Axios", "mergeConfig", "defaults", "createInstance", "defaultConfig", "context", "instance", "axios", "instanceConfig", "promises", "require_axios", "__commonJSMin", "exports", "module", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "_f", "splitPunct", "_g", "timeout", "shortTextList", "shortText", "base64List", "_h", "result", "i", "base64", "getAudioUrl_1", "exports", "getAudioBase64_1", "http", "__importStar", "https", "toBuffer", "stream", "length", "chunks", "chunk", "exports", "json", "str", "_err", "err", "req", "url", "opts", "promise", "resolve", "reject", "net", "__importStar", "http", "https_1", "__exportStar", "exports", "INTERNAL", "Agent", "opts", "options", "stack", "l", "name", "fakeSocket", "socket", "sockets", "index", "req", "cb", "connectOpts", "err", "v", "debug_1", "__importDefault", "debug", "parseProxyResponse", "socket", "resolve", "reject", "buffersLength", "buffers", "read", "b", "ondata", "cleanup", "onend", "onerror", "err", "buffered", "endOfHeaders", "headerParts", "firstLine", "firstLineParts", "statusCode", "statusText", "headers", "header", "firstColon", "key", "value", "current", "exports", "net", "__importStar", "tls", "assert_1", "__importDefault", "debug_1", "agent_base_1", "url_1", "parse_proxy_response_1", "debug", "setServernameFromNonIpHost", "options", "HttpsProxyAgent", "proxy", "opts", "host", "port", "omit", "req", "socket", "headers", "payload", "auth", "name", "proxyResponsePromise", "connect", "buffered", "resume", "fakeSocket", "s", "exports", "obj", "keys", "ret", "key", "translate_exports", "__export", "Translate", "__toCommonJS", "import_react", "import_api", "import_utils", "import_api", "import_utils", "import_react", "import_querystring", "import_undici", "languages", "getISOCode", "language", "key", "isSupported", "import_undici", "zr", "a", "b", "yr", "wr", "c", "window", "d", "e", "f", "g", "l", "h", "xr", "config", "updateTKK", "now", "code", "xt", "tokenGenerator", "text", "tk", "error", "translate", "text", "options", "error", "lang", "isSupported", "getISOCode", "token", "tokenGenerator", "baseUrl", "data", "url", "querystring", "requestOptions", "requestUrl", "body", "result", "obj", "str", "googleTTS", "os", "path", "https", "child_process", "import_fs", "import_https_proxy_agent", "AUTO_DETECT", "TranslateError", "extractPronounceTextFromRaw", "raw", "simpleTranslate", "text", "options", "translated", "translate", "err", "error", "doubleWayTranslate", "translated1", "translated2", "playTTS", "langTo", "proxy", "audioUrl", "agent", "e", "response", "chunks", "chunk", "audioData", "tempFilePath", "code", "unifyLegacyLanguageSet", "legacy", "usePreferences", "React", "useTextState", "preferences", "text", "setText", "textRef", "cbText", "err", "useSelectedLanguagesSet", "selectedLanguageSet", "setSelectedLanguageSet", "usePreferencesLanguageSet", "useDebouncedValue", "value", "delay", "debouncedValue", "setDebouncedValue", "handler", "useAllLanguageSets", "languages", "setLanguages", "english", "languages", "autoDetect", "code", "supportedLanguagesByCode", "acc", "lang", "supportedLanguagesByCountry", "import_api", "import_react", "import_api", "import_jsx_runtime", "AddLanguageForm", "onAddLanguage", "targetLanguages", "setTargetLanguages", "React", "values", "filteredTargetLanguages", "lang", "languages", "_", "index", "value", "newTargetLanguages", "AUTO_DETECT", "isSameLanguageSet", "langSet1", "langSet2", "getLanguageSetObjects", "languageSet", "supportedLanguagesByCode", "l", "formatLanguageSet", "langFrom", "langTo", "languageLabels", "import_jsx_runtime", "LanguagesManagerItem", "languageSet", "onSelect", "onDelete", "selected", "langFrom", "langTo", "getLanguageSetObjects", "langsTo", "langsToLabel", "l", "SaveCurrentLanguageSet", "formatLanguageSet", "LanguagesManagerList", "navigation", "preferencesLanguageSet", "usePreferencesLanguageSet", "selectedLanguageSet", "setSelectedLanguageSet", "useSelectedLanguagesSet", "languages", "setLanguages", "useAllLanguageSets", "AddLanguageForm", "langSet", "isSameLanguageSet", "import_api", "import_jsx_runtime", "LanguageManagerListDropdown", "navigation", "preferencesLanguageSet", "usePreferencesLanguageSet", "selectedLanguageSet", "setSelectedLanguageSet", "useSelectedLanguagesSet", "languages", "useAllLanguageSets", "value", "LanguagesManagerList", "langSet", "formatLanguageSet", "import_api", "import_jsx_runtime", "ConfigurableCopyPasteActions", "defaultActionsPrefix", "value", "defaultPreference", "pasteAction", "copyAction", "ToggleFullTextAction", "onAction", "OpenOnGoogleTranslateWebsiteAction", "translationText", "translation", "import_jsx_runtime", "DoubleWayTranslateItem", "toggleShowingDetail", "value", "selectedLanguageSet", "results", "isLoading", "doubleWayTranslate", "error", "r", "index", "langFrom", "supportedLanguagesByCode", "langTo", "languages", "tooltip", "React", "ConfigurableCopyPasteActions", "ToggleFullTextAction", "playTTS", "OpenOnGoogleTranslateWebsiteAction", "TranslateItem", "result", "simpleTranslate", "langFromCode", "langToCode", "Translate", "useSelectedLanguagesSet", "proxy", "usePreferences", "isShowingDetail", "setIsShowingDetail", "text", "setText", "useTextState", "debouncedValue", "useDebouncedValue", "LanguageManagerListDropdown"] + "sources": ["../node_modules/dequal/lite/index.js", "../node_modules/@raycast/utils/dist/useDeepMemo.js", "../node_modules/@raycast/utils/dist/useLatest.js", "../node_modules/@raycast/utils/dist/handle-error-toast-action.js", "../node_modules/@raycast/utils/dist/usePromise.js", "../node_modules/@raycast/utils/dist/useCachedState.js", "../node_modules/object-hash/index.js", "../node_modules/@raycast/utils/dist/useCachedPromise.js", "../node_modules/media-typer/index.js", "../node_modules/content-type/index.js", "../node_modules/webidl-conversions/lib/index.js", "../node_modules/whatwg-url/lib/utils.js", "../node_modules/tr46/lib/mappingTable.json", "../node_modules/tr46/index.js", "../node_modules/whatwg-url/lib/url-state-machine.js", "../node_modules/whatwg-url/lib/URL-impl.js", "../node_modules/whatwg-url/lib/URL.js", "../node_modules/whatwg-url/lib/public-api.js", "../node_modules/node-fetch/lib/index.js", "../node_modules/cross-fetch/dist/node-ponyfill.js", "../node_modules/@raycast/utils/dist/useFetch.js", "../node_modules/signal-exit/src/signals.ts", "../node_modules/signal-exit/src/index.ts", "../node_modules/@raycast/utils/dist/exec-utils.js", "../node_modules/@raycast/utils/dist/useExec.js", "../node_modules/@raycast/utils/dist/useSQL.js", "../node_modules/@raycast/utils/dist/useForm.js", "../node_modules/@raycast/utils/dist/useAI.js", "../node_modules/@raycast/utils/dist/useFrecencySorting.js", "../node_modules/@raycast/utils/dist/icon/color.js", "../node_modules/@raycast/utils/dist/icon/avatar.js", "../node_modules/@raycast/utils/dist/icon/favicon.js", "../node_modules/@raycast/utils/dist/icon/progress.js", "../node_modules/@raycast/utils/dist/icon/index.js", "../node_modules/@raycast/utils/dist/run-applescript.js", "../node_modules/@raycast/utils/dist/index.js", "../node_modules/undici/lib/core/symbols.js", "../node_modules/undici/lib/core/errors.js", "../node_modules/undici/lib/core/util.js", "../node_modules/undici/lib/timers.js", "../node_modules/busboy/lib/utils.js", "../node_modules/streamsearch/lib/sbmh.js", "../node_modules/busboy/lib/types/multipart.js", "../node_modules/busboy/lib/types/urlencoded.js", "../node_modules/busboy/lib/index.js", "../node_modules/undici/lib/fetch/constants.js", "../node_modules/undici/lib/fetch/global.js", "../node_modules/undici/lib/fetch/util.js", "../node_modules/undici/lib/fetch/symbols.js", "../node_modules/undici/lib/fetch/webidl.js", "../node_modules/undici/lib/fetch/dataURL.js", "../node_modules/undici/lib/fetch/file.js", "../node_modules/undici/lib/fetch/formdata.js", "../node_modules/undici/lib/fetch/body.js", "../node_modules/undici/lib/core/request.js", "../node_modules/undici/lib/dispatcher.js", "../node_modules/undici/lib/dispatcher-base.js", "../node_modules/undici/lib/core/connect.js", "../node_modules/undici/src/llhttp/utils.ts", "../node_modules/undici/src/llhttp/constants.ts", "../node_modules/undici/lib/handler/RedirectHandler.js", "../node_modules/undici/lib/interceptor/redirectInterceptor.js", "../node_modules/undici/lib/llhttp/llhttp-wasm.js", "../node_modules/undici/lib/llhttp/llhttp_simd-wasm.js", "../node_modules/undici/lib/client.js", "../node_modules/undici/lib/node/fixed-queue.js", "../node_modules/undici/lib/pool-stats.js", "../node_modules/undici/lib/pool-base.js", "../node_modules/undici/lib/pool.js", "../node_modules/undici/lib/balanced-pool.js", "../node_modules/undici/lib/compat/dispatcher-weakref.js", "../node_modules/undici/lib/agent.js", "../node_modules/undici/lib/api/readable.js", "../node_modules/undici/lib/api/util.js", "../node_modules/undici/lib/api/abort-signal.js", "../node_modules/undici/lib/api/api-request.js", "../node_modules/undici/lib/api/api-stream.js", "../node_modules/undici/lib/api/api-pipeline.js", "../node_modules/undici/lib/api/api-upgrade.js", "../node_modules/undici/lib/api/api-connect.js", "../node_modules/undici/lib/api/index.js", "../node_modules/undici/lib/mock/mock-errors.js", "../node_modules/undici/lib/mock/mock-symbols.js", "../node_modules/undici/lib/mock/mock-utils.js", "../node_modules/undici/lib/mock/mock-interceptor.js", "../node_modules/undici/lib/mock/mock-client.js", "../node_modules/undici/lib/mock/mock-pool.js", "../node_modules/undici/lib/mock/pluralizer.js", "../node_modules/undici/lib/mock/pending-interceptors-formatter.js", "../node_modules/undici/lib/mock/mock-agent.js", "../node_modules/undici/lib/proxy-agent.js", "../node_modules/undici/lib/global.js", "../node_modules/undici/lib/handler/DecoratorHandler.js", "../node_modules/undici/lib/fetch/headers.js", "../node_modules/undici/lib/fetch/response.js", "../node_modules/undici/lib/fetch/request.js", "../node_modules/undici/lib/fetch/index.js", "../node_modules/undici/lib/fileapi/symbols.js", "../node_modules/undici/lib/fileapi/progressevent.js", "../node_modules/undici/lib/fileapi/encoding.js", "../node_modules/undici/lib/fileapi/util.js", "../node_modules/undici/lib/fileapi/filereader.js", "../node_modules/undici/lib/cache/symbols.js", "../node_modules/undici/lib/cache/util.js", "../node_modules/undici/lib/cache/cache.js", "../node_modules/undici/lib/cache/cachestorage.js", "../node_modules/undici/lib/cookies/constants.js", "../node_modules/undici/lib/cookies/util.js", "../node_modules/undici/lib/cookies/parse.js", "../node_modules/undici/lib/cookies/index.js", "../node_modules/undici/lib/websocket/constants.js", "../node_modules/undici/lib/websocket/symbols.js", "../node_modules/undici/lib/websocket/events.js", "../node_modules/undici/lib/websocket/util.js", "../node_modules/undici/lib/websocket/connection.js", "../node_modules/undici/lib/websocket/frame.js", "../node_modules/undici/lib/websocket/receiver.js", "../node_modules/undici/lib/websocket/websocket.js", "../node_modules/undici/index.js", "../node_modules/google-tts-api/src/assertInputTypes.ts", "../node_modules/google-tts-api/src/splitLongText.ts", "../node_modules/google-tts-api/src/getAudioUrl.ts", "../node_modules/axios/lib/helpers/bind.js", "../node_modules/axios/lib/utils.js", "../node_modules/axios/lib/helpers/buildURL.js", "../node_modules/axios/lib/core/InterceptorManager.js", "../node_modules/axios/lib/helpers/normalizeHeaderName.js", "../node_modules/axios/lib/core/enhanceError.js", "../node_modules/axios/lib/core/createError.js", "../node_modules/axios/lib/core/settle.js", "../node_modules/axios/lib/helpers/cookies.js", "../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../node_modules/axios/lib/helpers/combineURLs.js", "../node_modules/axios/lib/core/buildFullPath.js", "../node_modules/axios/lib/helpers/parseHeaders.js", "../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../node_modules/axios/lib/adapters/xhr.js", "../node_modules/ms/index.js", "../node_modules/debug/src/common.js", "../node_modules/debug/src/browser.js", "../node_modules/has-flag/index.js", "../node_modules/supports-color/index.js", "../node_modules/debug/src/node.js", "../node_modules/debug/src/index.js", "../node_modules/follow-redirects/debug.js", "../node_modules/follow-redirects/index.js", "../node_modules/axios/package.json", "../node_modules/axios/lib/adapters/http.js", "../node_modules/axios/lib/defaults.js", "../node_modules/axios/lib/core/transformData.js", "../node_modules/axios/lib/cancel/isCancel.js", "../node_modules/axios/lib/core/dispatchRequest.js", "../node_modules/axios/lib/core/mergeConfig.js", "../node_modules/axios/lib/helpers/validator.js", "../node_modules/axios/lib/core/Axios.js", "../node_modules/axios/lib/cancel/Cancel.js", "../node_modules/axios/lib/cancel/CancelToken.js", "../node_modules/axios/lib/helpers/spread.js", "../node_modules/axios/lib/helpers/isAxiosError.js", "../node_modules/axios/lib/axios.js", "../node_modules/axios/index.js", "../node_modules/google-tts-api/src/getAudioBase64.ts", "../node_modules/google-tts-api/src/index.ts", "../src/translate.tsx", "../src/hooks.ts", "../vendor/@iamtraction-translate/src/index.ts", "../vendor/@iamtraction-translate/src/languages.ts", "../vendor/@iamtraction-translate/src/tokenGenerator.ts", "../src/simple-translate.ts", "../src/supportedLanguages.json", "../src/supportedLanguagesByCode.json", "../src/languages.ts", "../src/LanguagesManager/LanguagesManagerList.tsx", "../src/LanguagesManager/AddLanguageForm.tsx", "../src/utils.ts", "../src/LanguagesManager/LanguagesManagerListDropdown.tsx", "../src/actions.tsx"], + "sourcesContent": ["var has = Object.prototype.hasOwnProperty;\n\nfunction dequal(foo, bar) {\n\tvar ctor, len;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n\nexports.dequal = dequal;", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useDeepMemo = void 0;\nconst react_1 = require(\"react\");\nconst lite_1 = require(\"dequal/lite\");\n/**\n * @param value the value to be memoized (usually a dependency list)\n * @returns a memoized version of the value as long as it remains deeply equal\n */\nfunction useDeepMemo(value) {\n const ref = (0, react_1.useRef)(value);\n const signalRef = (0, react_1.useRef)(0);\n if (!(0, lite_1.dequal)(value, ref.current)) {\n ref.current = value;\n signalRef.current += 1;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return (0, react_1.useMemo)(() => ref.current, [signalRef.current]);\n}\nexports.useDeepMemo = useDeepMemo;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useLatest = void 0;\nconst react_1 = require(\"react\");\n/**\n * Returns the latest state.\n *\n * This is mostly useful to get access to the latest value of some props or state inside an asynchronous callback, instead of that value at the time the callback was created from.\n */\nfunction useLatest(value) {\n const ref = (0, react_1.useRef)(value);\n ref.current = value;\n return ref;\n}\nexports.useLatest = useLatest;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.handleErrorToastAction = void 0;\nconst fs = __importStar(require(\"fs\"));\nconst path = __importStar(require(\"path\"));\nconst api_1 = require(\"@raycast/api\");\nconst handleErrorToastAction = (error) => {\n let privateExtension = true;\n let title = \"[Extension Name]...\";\n let extensionURL = \"\";\n try {\n const packageJSON = JSON.parse(fs.readFileSync(path.join(api_1.environment.assetsPath, \"..\", \"package.json\"), \"utf8\"));\n title = `[${packageJSON.title}]...`;\n extensionURL = `https://raycast.com/${packageJSON.owner || packageJSON.author}/${packageJSON.name}`;\n if (!packageJSON.owner || packageJSON.access === \"public\") {\n privateExtension = false;\n }\n }\n catch (err) {\n // no-op\n }\n // if it's a private extension, we can't construct the URL to report the error\n // so we fallback to copying the error to the clipboard\n const fallback = api_1.environment.isDevelopment || privateExtension;\n return {\n title: fallback ? \"Copy Logs\" : \"Report Error\",\n onAction(toast) {\n toast.hide();\n if (fallback) {\n api_1.Clipboard.copy(error?.stack || error?.message || \"\");\n }\n else {\n (0, api_1.open)(`https://github.com/raycast/extensions/issues/new?&labels=extension%2Cbug&template=extension_bug_report.yml&title=${encodeURIComponent(title)}&extension-url=${encodeURI(extensionURL)}&description=${encodeURIComponent(`#### Error:\n\\`\\`\\`\n${error?.stack || error?.message || \"\"}\n\\`\\`\\`\n`)}`);\n }\n },\n };\n};\nexports.handleErrorToastAction = handleErrorToastAction;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.usePromise = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst useDeepMemo_1 = require(\"./useDeepMemo\");\nconst useLatest_1 = require(\"./useLatest\");\nconst handle_error_toast_action_1 = require(\"./handle-error-toast-action\");\nfunction usePromise(fn, args, options) {\n const lastCallId = (0, react_1.useRef)(0);\n const [state, set] = (0, react_1.useState)({ isLoading: true });\n const fnRef = (0, useLatest_1.useLatest)(fn);\n const latestAbortable = (0, useLatest_1.useLatest)(options?.abortable);\n const latestArgs = (0, useLatest_1.useLatest)(args || []);\n const latestOnError = (0, useLatest_1.useLatest)(options?.onError);\n const latestOnData = (0, useLatest_1.useLatest)(options?.onData);\n const latestOnWillExecute = (0, useLatest_1.useLatest)(options?.onWillExecute);\n const latestValue = (0, useLatest_1.useLatest)(state.data);\n const latestCallback = (0, react_1.useRef)();\n const callback = (0, react_1.useCallback)((...args) => {\n const callId = ++lastCallId.current;\n if (latestAbortable.current) {\n latestAbortable.current.current?.abort();\n latestAbortable.current.current = new AbortController();\n }\n latestOnWillExecute.current?.(args);\n set((prevState) => ({ ...prevState, isLoading: true }));\n return bindPromiseIfNeeded(fnRef.current)(...args).then((data) => {\n if (callId === lastCallId.current) {\n if (latestOnData.current) {\n latestOnData.current(data);\n }\n set({ data, isLoading: false });\n }\n return data;\n }, (error) => {\n if (error.name == \"AbortError\") {\n return error;\n }\n if (callId === lastCallId.current) {\n // handle errors\n if (latestOnError.current) {\n latestOnError.current(error);\n }\n else {\n console.error(error);\n if (api_1.environment.launchType !== api_1.LaunchType.Background) {\n (0, api_1.showToast)({\n style: api_1.Toast.Style.Failure,\n title: \"Failed to fetch latest data\",\n message: error.message,\n primaryAction: {\n title: \"Retry\",\n onAction(toast) {\n toast.hide();\n latestCallback.current?.(...(latestArgs.current || []));\n },\n },\n secondaryAction: (0, handle_error_toast_action_1.handleErrorToastAction)(error),\n });\n }\n }\n set({ error, isLoading: false });\n }\n return error;\n });\n }, [latestAbortable, latestOnData, latestOnError, latestArgs, fnRef, set, latestCallback, latestOnWillExecute]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n );\n latestCallback.current = callback;\n const revalidate = (0, react_1.useCallback)(() => {\n return callback(...(latestArgs.current || []));\n }, [callback, latestArgs]);\n const mutate = (0, react_1.useCallback)(async (asyncUpdate, options) => {\n let dataBeforeOptimisticUpdate;\n try {\n if (options?.optimisticUpdate) {\n if (typeof options?.rollbackOnError !== \"function\" && options?.rollbackOnError !== false) {\n // keep track of the data before the optimistic update,\n // but only if we need it (eg. only when we want to automatically rollback after)\n dataBeforeOptimisticUpdate = structuredClone(latestValue.current?.value);\n }\n const update = options.optimisticUpdate;\n set((prevState) => ({ ...prevState, data: update(prevState.data) }));\n }\n return await asyncUpdate;\n }\n catch (err) {\n if (typeof options?.rollbackOnError === \"function\") {\n const update = options.rollbackOnError;\n set((prevState) => ({ ...prevState, data: update(prevState.data) }));\n }\n else if (options?.optimisticUpdate && options?.rollbackOnError !== false) {\n set((prevState) => ({ ...prevState, data: dataBeforeOptimisticUpdate }));\n }\n throw err;\n }\n finally {\n if (options?.shouldRevalidateAfter !== false) {\n if (api_1.environment.launchType === api_1.LaunchType.Background || api_1.environment.commandMode === \"menu-bar\") {\n // when in the background or in a menu bar, we are going to await the revalidation\n // to make sure we get the right data at the end of the mutation\n await revalidate();\n }\n else {\n revalidate();\n }\n }\n }\n }, [revalidate, latestValue, set]);\n // revalidate when the args change\n (0, react_1.useEffect)(() => {\n if (options?.execute !== false) {\n callback(...(args || []));\n }\n else {\n // cancel the previous request if we don't want to execute anymore\n if (latestAbortable.current) {\n latestAbortable.current.current?.abort();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(0, useDeepMemo_1.useDeepMemo)([args, options?.execute, callback]), latestAbortable]);\n // abort request when unmounting\n (0, react_1.useEffect)(() => {\n return () => {\n if (latestAbortable.current) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n latestAbortable.current.current?.abort();\n }\n };\n }, [latestAbortable]);\n // we only want to show the loading indicator if the promise is executing\n const isLoading = options?.execute !== false ? state.isLoading : false;\n // @ts-expect-error loading is has some fixed value in the enum which\n const stateWithLoadingFixed = { ...state, isLoading };\n return { ...stateWithLoadingFixed, revalidate, mutate };\n}\nexports.usePromise = usePromise;\n/** Bind the fn if it's a Promise method */\nfunction bindPromiseIfNeeded(fn) {\n if (fn === Promise.all) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.race) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.resolve) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n if (fn === Promise.reject) {\n // @ts-expect-error this is fine\n return fn.bind(Promise);\n }\n return fn;\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useCachedState = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst useLatest_1 = require(\"./useLatest\");\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction replacer(key, _value) {\n const value = this[key];\n if (value instanceof Date) {\n return `__raycast_cached_date__${value.toString()}`;\n }\n if (Buffer.isBuffer(value)) {\n return `__raycast_cached_buffer__${value.toString(\"base64\")}`;\n }\n return _value;\n}\nfunction reviver(_key, value) {\n if (typeof value === \"string\" && value.startsWith(\"__raycast_cached_date__\")) {\n return new Date(value.replace(\"__raycast_cached_date__\", \"\"));\n }\n if (typeof value === \"string\" && value.startsWith(\"__raycast_cached_buffer__\")) {\n return Buffer.from(value.replace(\"__raycast_cached_buffer__\", \"\"), \"base64\");\n }\n return value;\n}\nconst rootCache = Symbol(\"cache without namespace\");\nconst cacheMap = new Map();\nfunction useCachedState(key, initialState, config) {\n const cacheKey = config?.cacheNamespace || rootCache;\n const cache = cacheMap.get(cacheKey) || cacheMap.set(cacheKey, new api_1.Cache({ namespace: config?.cacheNamespace })).get(cacheKey);\n if (!cache) {\n throw new Error(\"Missing cache\");\n }\n const keyRef = (0, useLatest_1.useLatest)(key);\n const initialValueRef = (0, useLatest_1.useLatest)(initialState);\n const cachedState = (0, react_1.useSyncExternalStore)(cache.subscribe, () => {\n try {\n return cache.get(keyRef.current);\n }\n catch (error) {\n console.error(\"Could not get Cache data:\", error);\n return undefined;\n }\n });\n const state = (0, react_1.useMemo)(() => {\n if (typeof cachedState !== \"undefined\") {\n if (cachedState === \"undefined\") {\n return undefined;\n }\n try {\n return JSON.parse(cachedState, reviver);\n }\n catch (err) {\n // the data got corrupted somehow\n console.warn(\"The cached data is corrupted\", err);\n return initialValueRef.current;\n }\n }\n else {\n return initialValueRef.current;\n }\n }, [cachedState, initialValueRef]);\n const stateRef = (0, useLatest_1.useLatest)(state);\n const setStateAndCache = (0, react_1.useCallback)((updater) => {\n // @ts-expect-error TS struggles to infer the types as T could potentially be a function\n const newValue = typeof updater === \"function\" ? updater(stateRef.current) : updater;\n if (typeof newValue === \"undefined\") {\n cache.set(keyRef.current, \"undefined\");\n }\n else {\n const stringifiedValue = JSON.stringify(newValue, replacer);\n cache.set(keyRef.current, stringifiedValue);\n }\n return newValue;\n }, [cache, keyRef, stateRef]);\n return [state, setStateAndCache];\n}\nexports.useCachedState = useCachedState;\n", "'use strict';\n\nvar crypto = require('crypto');\n\n/**\n * Exported function\n *\n * Options:\n *\n * - `algorithm` hash algo to be used by this instance: *'sha1', 'md5'\n * - `excludeValues` {true|*false} hash object keys, values ignored\n * - `encoding` hash encoding, supports 'buffer', '*hex', 'binary', 'base64'\n * - `ignoreUnknown` {true|*false} ignore unknown object types\n * - `replacer` optional function that replaces values before hashing\n * - `respectFunctionProperties` {*true|false} consider function properties when hashing\n * - `respectFunctionNames` {*true|false} consider 'name' property of functions for hashing\n * - `respectType` {*true|false} Respect special properties (prototype, constructor)\n * when hashing to distinguish between types\n * - `unorderedArrays` {true|*false} Sort all arrays before hashing\n * - `unorderedSets` {*true|false} Sort `Set` and `Map` instances before hashing\n * * = default\n *\n * @param {object} object value to hash\n * @param {object} options hashing options\n * @return {string} hash value\n * @api public\n */\nexports = module.exports = objectHash;\n\nfunction objectHash(object, options){\n options = applyDefaults(object, options);\n\n return hash(object, options);\n}\n\n/**\n * Exported sugar methods\n *\n * @param {object} object value to hash\n * @return {string} hash value\n * @api public\n */\nexports.sha1 = function(object){\n return objectHash(object);\n};\nexports.keys = function(object){\n return objectHash(object, {excludeValues: true, algorithm: 'sha1', encoding: 'hex'});\n};\nexports.MD5 = function(object){\n return objectHash(object, {algorithm: 'md5', encoding: 'hex'});\n};\nexports.keysMD5 = function(object){\n return objectHash(object, {algorithm: 'md5', encoding: 'hex', excludeValues: true});\n};\n\n// Internals\nvar hashes = crypto.getHashes ? crypto.getHashes().slice() : ['sha1', 'md5'];\nhashes.push('passthrough');\nvar encodings = ['buffer', 'hex', 'binary', 'base64'];\n\nfunction applyDefaults(object, sourceOptions){\n sourceOptions = sourceOptions || {};\n\n // create a copy rather than mutating\n var options = {};\n options.algorithm = sourceOptions.algorithm || 'sha1';\n options.encoding = sourceOptions.encoding || 'hex';\n options.excludeValues = sourceOptions.excludeValues ? true : false;\n options.algorithm = options.algorithm.toLowerCase();\n options.encoding = options.encoding.toLowerCase();\n options.ignoreUnknown = sourceOptions.ignoreUnknown !== true ? false : true; // default to false\n options.respectType = sourceOptions.respectType === false ? false : true; // default to true\n options.respectFunctionNames = sourceOptions.respectFunctionNames === false ? false : true;\n options.respectFunctionProperties = sourceOptions.respectFunctionProperties === false ? false : true;\n options.unorderedArrays = sourceOptions.unorderedArrays !== true ? false : true; // default to false\n options.unorderedSets = sourceOptions.unorderedSets === false ? false : true; // default to false\n options.unorderedObjects = sourceOptions.unorderedObjects === false ? false : true; // default to true\n options.replacer = sourceOptions.replacer || undefined;\n options.excludeKeys = sourceOptions.excludeKeys || undefined;\n\n if(typeof object === 'undefined') {\n throw new Error('Object argument required.');\n }\n\n // if there is a case-insensitive match in the hashes list, accept it\n // (i.e. SHA256 for sha256)\n for (var i = 0; i < hashes.length; ++i) {\n if (hashes[i].toLowerCase() === options.algorithm.toLowerCase()) {\n options.algorithm = hashes[i];\n }\n }\n\n if(hashes.indexOf(options.algorithm) === -1){\n throw new Error('Algorithm \"' + options.algorithm + '\" not supported. ' +\n 'supported values: ' + hashes.join(', '));\n }\n\n if(encodings.indexOf(options.encoding) === -1 &&\n options.algorithm !== 'passthrough'){\n throw new Error('Encoding \"' + options.encoding + '\" not supported. ' +\n 'supported values: ' + encodings.join(', '));\n }\n\n return options;\n}\n\n/** Check if the given function is a native function */\nfunction isNativeFunction(f) {\n if ((typeof f) !== 'function') {\n return false;\n }\n var exp = /^function\\s+\\w*\\s*\\(\\s*\\)\\s*{\\s+\\[native code\\]\\s+}$/i;\n return exp.exec(Function.prototype.toString.call(f)) != null;\n}\n\nfunction hash(object, options) {\n var hashingStream;\n\n if (options.algorithm !== 'passthrough') {\n hashingStream = crypto.createHash(options.algorithm);\n } else {\n hashingStream = new PassThrough();\n }\n\n if (typeof hashingStream.write === 'undefined') {\n hashingStream.write = hashingStream.update;\n hashingStream.end = hashingStream.update;\n }\n\n var hasher = typeHasher(options, hashingStream);\n hasher.dispatch(object);\n if (!hashingStream.update) {\n hashingStream.end('');\n }\n\n if (hashingStream.digest) {\n return hashingStream.digest(options.encoding === 'buffer' ? undefined : options.encoding);\n }\n\n var buf = hashingStream.read();\n if (options.encoding === 'buffer') {\n return buf;\n }\n\n return buf.toString(options.encoding);\n}\n\n/**\n * Expose streaming API\n *\n * @param {object} object Value to serialize\n * @param {object} options Options, as for hash()\n * @param {object} stream A stream to write the serializiation to\n * @api public\n */\nexports.writeToStream = function(object, options, stream) {\n if (typeof stream === 'undefined') {\n stream = options;\n options = {};\n }\n\n options = applyDefaults(object, options);\n\n return typeHasher(options, stream).dispatch(object);\n};\n\nfunction typeHasher(options, writeTo, context){\n context = context || [];\n var write = function(str) {\n if (writeTo.update) {\n return writeTo.update(str, 'utf8');\n } else {\n return writeTo.write(str, 'utf8');\n }\n };\n\n return {\n dispatch: function(value){\n if (options.replacer) {\n value = options.replacer(value);\n }\n\n var type = typeof value;\n if (value === null) {\n type = 'null';\n }\n\n //console.log(\"[DEBUG] Dispatch: \", value, \"->\", type, \" -> \", \"_\" + type);\n\n return this['_' + type](value);\n },\n _object: function(object) {\n var pattern = (/\\[object (.*)\\]/i);\n var objString = Object.prototype.toString.call(object);\n var objType = pattern.exec(objString);\n if (!objType) { // object type did not match [object ...]\n objType = 'unknown:[' + objString + ']';\n } else {\n objType = objType[1]; // take only the class name\n }\n\n objType = objType.toLowerCase();\n\n var objectNumber = null;\n\n if ((objectNumber = context.indexOf(object)) >= 0) {\n return this.dispatch('[CIRCULAR:' + objectNumber + ']');\n } else {\n context.push(object);\n }\n\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer && Buffer.isBuffer(object)) {\n write('buffer:');\n return write(object);\n }\n\n if(objType !== 'object' && objType !== 'function' && objType !== 'asyncfunction') {\n if(this['_' + objType]) {\n this['_' + objType](object);\n } else if (options.ignoreUnknown) {\n return write('[' + objType + ']');\n } else {\n throw new Error('Unknown object type \"' + objType + '\"');\n }\n }else{\n var keys = Object.keys(object);\n if (options.unorderedObjects) {\n keys = keys.sort();\n }\n // Make sure to incorporate special properties, so\n // Types with different prototypes will produce\n // a different hash and objects derived from\n // different functions (`new Foo`, `new Bar`) will\n // produce different hashes.\n // We never do this for native functions since some\n // seem to break because of that.\n if (options.respectType !== false && !isNativeFunction(object)) {\n keys.splice(0, 0, 'prototype', '__proto__', 'constructor');\n }\n\n if (options.excludeKeys) {\n keys = keys.filter(function(key) { return !options.excludeKeys(key); });\n }\n\n write('object:' + keys.length + ':');\n var self = this;\n return keys.forEach(function(key){\n self.dispatch(key);\n write(':');\n if(!options.excludeValues) {\n self.dispatch(object[key]);\n }\n write(',');\n });\n }\n },\n _array: function(arr, unordered){\n unordered = typeof unordered !== 'undefined' ? unordered :\n options.unorderedArrays !== false; // default to options.unorderedArrays\n\n var self = this;\n write('array:' + arr.length + ':');\n if (!unordered || arr.length <= 1) {\n return arr.forEach(function(entry) {\n return self.dispatch(entry);\n });\n }\n\n // the unordered case is a little more complicated:\n // since there is no canonical ordering on objects,\n // i.e. {a:1} < {a:2} and {a:1} > {a:2} are both false,\n // we first serialize each entry using a PassThrough stream\n // before sorting.\n // also: we can\u2019t use the same context array for all entries\n // since the order of hashing should *not* matter. instead,\n // we keep track of the additions to a copy of the context array\n // and add all of them to the global context array when we\u2019re done\n var contextAdditions = [];\n var entries = arr.map(function(entry) {\n var strm = new PassThrough();\n var localContext = context.slice(); // make copy\n var hasher = typeHasher(options, strm, localContext);\n hasher.dispatch(entry);\n // take only what was added to localContext and append it to contextAdditions\n contextAdditions = contextAdditions.concat(localContext.slice(context.length));\n return strm.read().toString();\n });\n context = context.concat(contextAdditions);\n entries.sort();\n return this._array(entries, false);\n },\n _date: function(date){\n return write('date:' + date.toJSON());\n },\n _symbol: function(sym){\n return write('symbol:' + sym.toString());\n },\n _error: function(err){\n return write('error:' + err.toString());\n },\n _boolean: function(bool){\n return write('bool:' + bool.toString());\n },\n _string: function(string){\n write('string:' + string.length + ':');\n write(string.toString());\n },\n _function: function(fn){\n write('fn:');\n if (isNativeFunction(fn)) {\n this.dispatch('[native]');\n } else {\n this.dispatch(fn.toString());\n }\n\n if (options.respectFunctionNames !== false) {\n // Make sure we can still distinguish native functions\n // by their name, otherwise String and Function will\n // have the same hash\n this.dispatch(\"function-name:\" + String(fn.name));\n }\n\n if (options.respectFunctionProperties) {\n this._object(fn);\n }\n },\n _number: function(number){\n return write('number:' + number.toString());\n },\n _xml: function(xml){\n return write('xml:' + xml.toString());\n },\n _null: function() {\n return write('Null');\n },\n _undefined: function() {\n return write('Undefined');\n },\n _regexp: function(regex){\n return write('regex:' + regex.toString());\n },\n _uint8array: function(arr){\n write('uint8array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint8clampedarray: function(arr){\n write('uint8clampedarray:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int8array: function(arr){\n write('int8array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint16array: function(arr){\n write('uint16array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int16array: function(arr){\n write('int16array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _uint32array: function(arr){\n write('uint32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _int32array: function(arr){\n write('int32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _float32array: function(arr){\n write('float32array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _float64array: function(arr){\n write('float64array:');\n return this.dispatch(Array.prototype.slice.call(arr));\n },\n _arraybuffer: function(arr){\n write('arraybuffer:');\n return this.dispatch(new Uint8Array(arr));\n },\n _url: function(url) {\n return write('url:' + url.toString(), 'utf8');\n },\n _map: function(map) {\n write('map:');\n var arr = Array.from(map);\n return this._array(arr, options.unorderedSets !== false);\n },\n _set: function(set) {\n write('set:');\n var arr = Array.from(set);\n return this._array(arr, options.unorderedSets !== false);\n },\n _file: function(file) {\n write('file:');\n return this.dispatch([file.name, file.size, file.type, file.lastModfied]);\n },\n _blob: function() {\n if (options.ignoreUnknown) {\n return write('[blob]');\n }\n\n throw Error('Hashing Blob objects is currently not supported\\n' +\n '(see https://github.com/puleos/object-hash/issues/26)\\n' +\n 'Use \"options.replacer\" or \"options.ignoreUnknown\"\\n');\n },\n _domwindow: function() { return write('domwindow'); },\n _bigint: function(number){\n return write('bigint:' + number.toString());\n },\n /* Node.js standard native objects */\n _process: function() { return write('process'); },\n _timer: function() { return write('timer'); },\n _pipe: function() { return write('pipe'); },\n _tcp: function() { return write('tcp'); },\n _udp: function() { return write('udp'); },\n _tty: function() { return write('tty'); },\n _statwatcher: function() { return write('statwatcher'); },\n _securecontext: function() { return write('securecontext'); },\n _connection: function() { return write('connection'); },\n _zlib: function() { return write('zlib'); },\n _context: function() { return write('context'); },\n _nodescript: function() { return write('nodescript'); },\n _httpparser: function() { return write('httpparser'); },\n _dataview: function() { return write('dataview'); },\n _signal: function() { return write('signal'); },\n _fsevent: function() { return write('fsevent'); },\n _tlswrap: function() { return write('tlswrap'); },\n };\n}\n\n// Mini-implementation of stream.PassThrough\n// We are far from having need for the full implementation, and we can\n// make assumptions like \"many writes, then only one final read\"\n// and we can ignore encoding specifics\nfunction PassThrough() {\n return {\n buf: '',\n\n write: function(b) {\n this.buf += b;\n },\n\n end: function(b) {\n this.buf += b;\n },\n\n read: function() {\n return this.buf;\n }\n };\n}\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useCachedPromise = void 0;\nconst react_1 = require(\"react\");\nconst object_hash_1 = __importDefault(require(\"object-hash\"));\nconst useCachedState_1 = require(\"./useCachedState\");\nconst usePromise_1 = require(\"./usePromise\");\nconst useLatest_1 = require(\"./useLatest\");\n// Symbol to differentiate an empty cache from `undefined`\nconst emptyCache = Symbol();\nfunction useCachedPromise(fn, args, options) {\n const { initialData, keepPreviousData, ...usePromiseOptions } = options || {};\n const lastUpdateFrom = (0, react_1.useRef)();\n const [cachedData, mutateCache] = (0, useCachedState_1.useCachedState)((0, object_hash_1.default)(args || []), emptyCache, {\n cacheNamespace: (0, object_hash_1.default)(fn),\n });\n // Use a ref to store previous returned data. Use the inital data as its inital value from the cache.\n const laggyDataRef = (0, react_1.useRef)(cachedData !== emptyCache ? cachedData : initialData);\n const { mutate: _mutate, revalidate, ...state\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = (0, usePromise_1.usePromise)(fn, args || [], {\n ...usePromiseOptions,\n onData(data) {\n if (usePromiseOptions.onData) {\n usePromiseOptions.onData(data);\n }\n // update the cache when we fetch new values\n lastUpdateFrom.current = \"promise\";\n laggyDataRef.current = data;\n mutateCache(data);\n },\n });\n // data returned if there are no special cases\n const data = cachedData !== emptyCache ? cachedData : initialData;\n const returnedData = \n // if the latest update if from the Promise, we keep it\n lastUpdateFrom.current === \"promise\"\n ? laggyDataRef.current\n : // if we want to keep the latest data, we pick the cache but only if it's not empty\n keepPreviousData\n ? cachedData !== emptyCache\n ? cachedData\n : // if the cache is empty, we will return the previous data\n laggyDataRef.current\n : data;\n const latestData = (0, useLatest_1.useLatest)(returnedData);\n // we rewrite the mutate function to update the cache instead\n const mutate = (0, react_1.useCallback)(async (asyncUpdate, options) => {\n let dataBeforeOptimisticUpdate;\n try {\n if (options?.optimisticUpdate) {\n if (typeof options?.rollbackOnError !== \"function\" && options?.rollbackOnError !== false) {\n // keep track of the data before the optimistic update,\n // but only if we need it (eg. only when we want to automatically rollback after)\n dataBeforeOptimisticUpdate = structuredClone(latestData.current);\n }\n const data = options.optimisticUpdate(latestData.current);\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = data;\n mutateCache(data);\n }\n return await _mutate(asyncUpdate, { shouldRevalidateAfter: options?.shouldRevalidateAfter });\n }\n catch (err) {\n if (typeof options?.rollbackOnError === \"function\") {\n const data = options.rollbackOnError(latestData.current);\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = data;\n mutateCache(data);\n }\n else if (options?.optimisticUpdate && options?.rollbackOnError !== false) {\n lastUpdateFrom.current = \"cache\";\n // @ts-expect-error when undefined, it's expected\n laggyDataRef.current = dataBeforeOptimisticUpdate;\n // @ts-expect-error when undefined, it's expected\n mutateCache(dataBeforeOptimisticUpdate);\n }\n throw err;\n }\n }, [mutateCache, _mutate, latestData, laggyDataRef, lastUpdateFrom]);\n (0, react_1.useEffect)(() => {\n if (cachedData !== emptyCache) {\n lastUpdateFrom.current = \"cache\";\n laggyDataRef.current = cachedData;\n }\n }, [cachedData]);\n return {\n data: returnedData,\n isLoading: state.isLoading,\n error: state.error,\n mutate,\n revalidate,\n };\n}\nexports.useCachedPromise = useCachedPromise;\n", "/*!\n * media-typer\n * Copyright(c) 2014-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match type in RFC 6838\n *\n * type-name = restricted-name\n * subtype-name = restricted-name\n * restricted-name = restricted-name-first *126restricted-name-chars\n * restricted-name-first = ALPHA / DIGIT\n * restricted-name-chars = ALPHA / DIGIT / \"!\" / \"#\" /\n * \"$\" / \"&\" / \"-\" / \"^\" / \"_\"\n * restricted-name-chars =/ \".\" ; Characters before first dot always\n * ; specify a facet name\n * restricted-name-chars =/ \"+\" ; Characters after last plus always\n * ; specify a structured syntax suffix\n * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n * DIGIT = %x30-39 ; 0-9\n */\nvar SUBTYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/\nvar TYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/\nvar TYPE_REGEXP = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/\n\n/**\n * Module exports.\n */\n\nexports.format = format\nexports.parse = parse\nexports.test = test\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var subtype = obj.subtype\n var suffix = obj.suffix\n var type = obj.type\n\n if (!type || !TYPE_NAME_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n if (!subtype || !SUBTYPE_NAME_REGEXP.test(subtype)) {\n throw new TypeError('invalid subtype')\n }\n\n // format as type/subtype\n var string = type + '/' + subtype\n\n // append +suffix\n if (suffix) {\n if (!TYPE_NAME_REGEXP.test(suffix)) {\n throw new TypeError('invalid suffix')\n }\n\n string += '+' + suffix\n }\n\n return string\n}\n\n/**\n * Test media type.\n *\n * @param {string} string\n * @return {object}\n * @public\n */\n\nfunction test (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n if (typeof string !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n return TYPE_REGEXP.test(string.toLowerCase())\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string} string\n * @return {object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n if (typeof string !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var match = TYPE_REGEXP.exec(string.toLowerCase())\n\n if (!match) {\n throw new TypeError('invalid media type')\n }\n\n var type = match[1]\n var subtype = match[2]\n var suffix\n\n // suffix after last +\n var index = subtype.lastIndexOf('+')\n if (index !== -1) {\n suffix = subtype.substr(index + 1)\n subtype = subtype.substr(0, index)\n }\n\n return new MediaType(type, subtype, suffix)\n}\n\n/**\n * Class for MediaType object.\n * @public\n */\n\nfunction MediaType (type, subtype, suffix) {\n this.type = type\n this.subtype = subtype\n this.suffix = suffix\n}\n", "/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match *( \";\" parameter ) in RFC 7231 sec 3.1.1.1\n *\n * parameter = token \"=\" ( token / quoted-string )\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n * / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n * / DIGIT / ALPHA\n * ; any VCHAR, except delimiters\n * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE\n * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text\n * obs-text = %x80-FF\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n */\nvar PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *(\"(?:[\\u000b\\u0020\\u0021\\u0023-\\u005b\\u005d-\\u007e\\u0080-\\u00ff]|\\\\[\\u000b\\u0020-\\u00ff])*\"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g // eslint-disable-line no-control-regex\nvar TEXT_REGEXP = /^[\\u000b\\u0020-\\u007e\\u0080-\\u00ff]+$/ // eslint-disable-line no-control-regex\nvar TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * RegExp to match quoted-pair in RFC 7230 sec 3.2.6\n *\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n * obs-text = %x80-FF\n */\nvar QESC_REGEXP = /\\\\([\\u000b\\u0020-\\u00ff])/g // eslint-disable-line no-control-regex\n\n/**\n * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6\n */\nvar QUOTE_REGEXP = /([\\\\\"])/g\n\n/**\n * RegExp to match type in RFC 7231 sec 3.1.1.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nvar TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * Module exports.\n * @public\n */\n\nexports.format = format\nexports.parse = parse\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var parameters = obj.parameters\n var type = obj.type\n\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n var string = type\n\n // append parameters\n if (parameters && typeof parameters === 'object') {\n var param\n var params = Object.keys(parameters).sort()\n\n for (var i = 0; i < params.length; i++) {\n param = params[i]\n\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError('invalid parameter name')\n }\n\n string += '; ' + param + '=' + qstring(parameters[param])\n }\n }\n\n return string\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string|object} string\n * @return {Object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n // support req/res-like objects as argument\n var header = typeof string === 'object'\n ? getcontenttype(string)\n : string\n\n if (typeof header !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var index = header.indexOf(';')\n var type = index !== -1\n ? header.slice(0, index).trim()\n : header.trim()\n\n if (!TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid media type')\n }\n\n var obj = new ContentType(type.toLowerCase())\n\n // parse parameters\n if (index !== -1) {\n var key\n var match\n var value\n\n PARAM_REGEXP.lastIndex = index\n\n while ((match = PARAM_REGEXP.exec(header))) {\n if (match.index !== index) {\n throw new TypeError('invalid parameter format')\n }\n\n index += match[0].length\n key = match[1].toLowerCase()\n value = match[2]\n\n if (value.charCodeAt(0) === 0x22 /* \" */) {\n // remove quotes\n value = value.slice(1, -1)\n\n // remove escapes\n if (value.indexOf('\\\\') !== -1) {\n value = value.replace(QESC_REGEXP, '$1')\n }\n }\n\n obj.parameters[key] = value\n }\n\n if (index !== header.length) {\n throw new TypeError('invalid parameter format')\n }\n }\n\n return obj\n}\n\n/**\n * Get content-type from req/res objects.\n *\n * @param {object}\n * @return {Object}\n * @private\n */\n\nfunction getcontenttype (obj) {\n var header\n\n if (typeof obj.getHeader === 'function') {\n // res-like\n header = obj.getHeader('content-type')\n } else if (typeof obj.headers === 'object') {\n // req-like\n header = obj.headers && obj.headers['content-type']\n }\n\n if (typeof header !== 'string') {\n throw new TypeError('content-type header is missing from object')\n }\n\n return header\n}\n\n/**\n * Quote a string if necessary.\n *\n * @param {string} val\n * @return {string}\n * @private\n */\n\nfunction qstring (val) {\n var str = String(val)\n\n // no need to quote tokens\n if (TOKEN_REGEXP.test(str)) {\n return str\n }\n\n if (str.length > 0 && !TEXT_REGEXP.test(str)) {\n throw new TypeError('invalid parameter value')\n }\n\n return '\"' + str.replace(QUOTE_REGEXP, '\\\\$1') + '\"'\n}\n\n/**\n * Class to represent a content type.\n * @private\n */\nfunction ContentType (type) {\n this.parameters = Object.create(null)\n this.type = type\n}\n", "\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n", "\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n", "[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"valid\"],[[47,47],\"disallowed_STD3_valid\"],[[48,57],\"valid\"],[[58,64],\"disallowed_STD3_valid\"],[[65,65],\"mapped\",[97]],[[66,66],\"mapped\",[98]],[[67,67],\"mapped\",[99]],[[68,68],\"mapped\",[100]],[[69,69],\"mapped\",[101]],[[70,70],\"mapped\",[102]],[[71,71],\"mapped\",[103]],[[72,72],\"mapped\",[104]],[[73,73],\"mapped\",[105]],[[74,74],\"mapped\",[106]],[[75,75],\"mapped\",[107]],[[76,76],\"mapped\",[108]],[[77,77],\"mapped\",[109]],[[78,78],\"mapped\",[110]],[[79,79],\"mapped\",[111]],[[80,80],\"mapped\",[112]],[[81,81],\"mapped\",[113]],[[82,82],\"mapped\",[114]],[[83,83],\"mapped\",[115]],[[84,84],\"mapped\",[116]],[[85,85],\"mapped\",[117]],[[86,86],\"mapped\",[118]],[[87,87],\"mapped\",[119]],[[88,88],\"mapped\",[120]],[[89,89],\"mapped\",[121]],[[90,90],\"mapped\",[122]],[[91,96],\"disallowed_STD3_valid\"],[[97,122],\"valid\"],[[123,127],\"disallowed_STD3_valid\"],[[128,159],\"disallowed\"],[[160,160],\"disallowed_STD3_mapped\",[32]],[[161,167],\"valid\",[],\"NV8\"],[[168,168],\"disallowed_STD3_mapped\",[32,776]],[[169,169],\"valid\",[],\"NV8\"],[[170,170],\"mapped\",[97]],[[171,172],\"valid\",[],\"NV8\"],[[173,173],\"ignored\"],[[174,174],\"valid\",[],\"NV8\"],[[175,175],\"disallowed_STD3_mapped\",[32,772]],[[176,177],\"valid\",[],\"NV8\"],[[178,178],\"mapped\",[50]],[[179,179],\"mapped\",[51]],[[180,180],\"disallowed_STD3_mapped\",[32,769]],[[181,181],\"mapped\",[956]],[[182,182],\"valid\",[],\"NV8\"],[[183,183],\"valid\"],[[184,184],\"disallowed_STD3_mapped\",[32,807]],[[185,185],\"mapped\",[49]],[[186,186],\"mapped\",[111]],[[187,187],\"valid\",[],\"NV8\"],[[188,188],\"mapped\",[49,8260,52]],[[189,189],\"mapped\",[49,8260,50]],[[190,190],\"mapped\",[51,8260,52]],[[191,191],\"valid\",[],\"NV8\"],[[192,192],\"mapped\",[224]],[[193,193],\"mapped\",[225]],[[194,194],\"mapped\",[226]],[[195,195],\"mapped\",[227]],[[196,196],\"mapped\",[228]],[[197,197],\"mapped\",[229]],[[198,198],\"mapped\",[230]],[[199,199],\"mapped\",[231]],[[200,200],\"mapped\",[232]],[[201,201],\"mapped\",[233]],[[202,202],\"mapped\",[234]],[[203,203],\"mapped\",[235]],[[204,204],\"mapped\",[236]],[[205,205],\"mapped\",[237]],[[206,206],\"mapped\",[238]],[[207,207],\"mapped\",[239]],[[208,208],\"mapped\",[240]],[[209,209],\"mapped\",[241]],[[210,210],\"mapped\",[242]],[[211,211],\"mapped\",[243]],[[212,212],\"mapped\",[244]],[[213,213],\"mapped\",[245]],[[214,214],\"mapped\",[246]],[[215,215],\"valid\",[],\"NV8\"],[[216,216],\"mapped\",[248]],[[217,217],\"mapped\",[249]],[[218,218],\"mapped\",[250]],[[219,219],\"mapped\",[251]],[[220,220],\"mapped\",[252]],[[221,221],\"mapped\",[253]],[[222,222],\"mapped\",[254]],[[223,223],\"deviation\",[115,115]],[[224,246],\"valid\"],[[247,247],\"valid\",[],\"NV8\"],[[248,255],\"valid\"],[[256,256],\"mapped\",[257]],[[257,257],\"valid\"],[[258,258],\"mapped\",[259]],[[259,259],\"valid\"],[[260,260],\"mapped\",[261]],[[261,261],\"valid\"],[[262,262],\"mapped\",[263]],[[263,263],\"valid\"],[[264,264],\"mapped\",[265]],[[265,265],\"valid\"],[[266,266],\"mapped\",[267]],[[267,267],\"valid\"],[[268,268],\"mapped\",[269]],[[269,269],\"valid\"],[[270,270],\"mapped\",[271]],[[271,271],\"valid\"],[[272,272],\"mapped\",[273]],[[273,273],\"valid\"],[[274,274],\"mapped\",[275]],[[275,275],\"valid\"],[[276,276],\"mapped\",[277]],[[277,277],\"valid\"],[[278,278],\"mapped\",[279]],[[279,279],\"valid\"],[[280,280],\"mapped\",[281]],[[281,281],\"valid\"],[[282,282],\"mapped\",[283]],[[283,283],\"valid\"],[[284,284],\"mapped\",[285]],[[285,285],\"valid\"],[[286,286],\"mapped\",[287]],[[287,287],\"valid\"],[[288,288],\"mapped\",[289]],[[289,289],\"valid\"],[[290,290],\"mapped\",[291]],[[291,291],\"valid\"],[[292,292],\"mapped\",[293]],[[293,293],\"valid\"],[[294,294],\"mapped\",[295]],[[295,295],\"valid\"],[[296,296],\"mapped\",[297]],[[297,297],\"valid\"],[[298,298],\"mapped\",[299]],[[299,299],\"valid\"],[[300,300],\"mapped\",[301]],[[301,301],\"valid\"],[[302,302],\"mapped\",[303]],[[303,303],\"valid\"],[[304,304],\"mapped\",[105,775]],[[305,305],\"valid\"],[[306,307],\"mapped\",[105,106]],[[308,308],\"mapped\",[309]],[[309,309],\"valid\"],[[310,310],\"mapped\",[311]],[[311,312],\"valid\"],[[313,313],\"mapped\",[314]],[[314,314],\"valid\"],[[315,315],\"mapped\",[316]],[[316,316],\"valid\"],[[317,317],\"mapped\",[318]],[[318,318],\"valid\"],[[319,320],\"mapped\",[108,183]],[[321,321],\"mapped\",[322]],[[322,322],\"valid\"],[[323,323],\"mapped\",[324]],[[324,324],\"valid\"],[[325,325],\"mapped\",[326]],[[326,326],\"valid\"],[[327,327],\"mapped\",[328]],[[328,328],\"valid\"],[[329,329],\"mapped\",[700,110]],[[330,330],\"mapped\",[331]],[[331,331],\"valid\"],[[332,332],\"mapped\",[333]],[[333,333],\"valid\"],[[334,334],\"mapped\",[335]],[[335,335],\"valid\"],[[336,336],\"mapped\",[337]],[[337,337],\"valid\"],[[338,338],\"mapped\",[339]],[[339,339],\"valid\"],[[340,340],\"mapped\",[341]],[[341,341],\"valid\"],[[342,342],\"mapped\",[343]],[[343,343],\"valid\"],[[344,344],\"mapped\",[345]],[[345,345],\"valid\"],[[346,346],\"mapped\",[347]],[[347,347],\"valid\"],[[348,348],\"mapped\",[349]],[[349,349],\"valid\"],[[350,350],\"mapped\",[351]],[[351,351],\"valid\"],[[352,352],\"mapped\",[353]],[[353,353],\"valid\"],[[354,354],\"mapped\",[355]],[[355,355],\"valid\"],[[356,356],\"mapped\",[357]],[[357,357],\"valid\"],[[358,358],\"mapped\",[359]],[[359,359],\"valid\"],[[360,360],\"mapped\",[361]],[[361,361],\"valid\"],[[362,362],\"mapped\",[363]],[[363,363],\"valid\"],[[364,364],\"mapped\",[365]],[[365,365],\"valid\"],[[366,366],\"mapped\",[367]],[[367,367],\"valid\"],[[368,368],\"mapped\",[369]],[[369,369],\"valid\"],[[370,370],\"mapped\",[371]],[[371,371],\"valid\"],[[372,372],\"mapped\",[373]],[[373,373],\"valid\"],[[374,374],\"mapped\",[375]],[[375,375],\"valid\"],[[376,376],\"mapped\",[255]],[[377,377],\"mapped\",[378]],[[378,378],\"valid\"],[[379,379],\"mapped\",[380]],[[380,380],\"valid\"],[[381,381],\"mapped\",[382]],[[382,382],\"valid\"],[[383,383],\"mapped\",[115]],[[384,384],\"valid\"],[[385,385],\"mapped\",[595]],[[386,386],\"mapped\",[387]],[[387,387],\"valid\"],[[388,388],\"mapped\",[389]],[[389,389],\"valid\"],[[390,390],\"mapped\",[596]],[[391,391],\"mapped\",[392]],[[392,392],\"valid\"],[[393,393],\"mapped\",[598]],[[394,394],\"mapped\",[599]],[[395,395],\"mapped\",[396]],[[396,397],\"valid\"],[[398,398],\"mapped\",[477]],[[399,399],\"mapped\",[601]],[[400,400],\"mapped\",[603]],[[401,401],\"mapped\",[402]],[[402,402],\"valid\"],[[403,403],\"mapped\",[608]],[[404,404],\"mapped\",[611]],[[405,405],\"valid\"],[[406,406],\"mapped\",[617]],[[407,407],\"mapped\",[616]],[[408,408],\"mapped\",[409]],[[409,411],\"valid\"],[[412,412],\"mapped\",[623]],[[413,413],\"mapped\",[626]],[[414,414],\"valid\"],[[415,415],\"mapped\",[629]],[[416,416],\"mapped\",[417]],[[417,417],\"valid\"],[[418,418],\"mapped\",[419]],[[419,419],\"valid\"],[[420,420],\"mapped\",[421]],[[421,421],\"valid\"],[[422,422],\"mapped\",[640]],[[423,423],\"mapped\",[424]],[[424,424],\"valid\"],[[425,425],\"mapped\",[643]],[[426,427],\"valid\"],[[428,428],\"mapped\",[429]],[[429,429],\"valid\"],[[430,430],\"mapped\",[648]],[[431,431],\"mapped\",[432]],[[432,432],\"valid\"],[[433,433],\"mapped\",[650]],[[434,434],\"mapped\",[651]],[[435,435],\"mapped\",[436]],[[436,436],\"valid\"],[[437,437],\"mapped\",[438]],[[438,438],\"valid\"],[[439,439],\"mapped\",[658]],[[440,440],\"mapped\",[441]],[[441,443],\"valid\"],[[444,444],\"mapped\",[445]],[[445,451],\"valid\"],[[452,454],\"mapped\",[100,382]],[[455,457],\"mapped\",[108,106]],[[458,460],\"mapped\",[110,106]],[[461,461],\"mapped\",[462]],[[462,462],\"valid\"],[[463,463],\"mapped\",[464]],[[464,464],\"valid\"],[[465,465],\"mapped\",[466]],[[466,466],\"valid\"],[[467,467],\"mapped\",[468]],[[468,468],\"valid\"],[[469,469],\"mapped\",[470]],[[470,470],\"valid\"],[[471,471],\"mapped\",[472]],[[472,472],\"valid\"],[[473,473],\"mapped\",[474]],[[474,474],\"valid\"],[[475,475],\"mapped\",[476]],[[476,477],\"valid\"],[[478,478],\"mapped\",[479]],[[479,479],\"valid\"],[[480,480],\"mapped\",[481]],[[481,481],\"valid\"],[[482,482],\"mapped\",[483]],[[483,483],\"valid\"],[[484,484],\"mapped\",[485]],[[485,485],\"valid\"],[[486,486],\"mapped\",[487]],[[487,487],\"valid\"],[[488,488],\"mapped\",[489]],[[489,489],\"valid\"],[[490,490],\"mapped\",[491]],[[491,491],\"valid\"],[[492,492],\"mapped\",[493]],[[493,493],\"valid\"],[[494,494],\"mapped\",[495]],[[495,496],\"valid\"],[[497,499],\"mapped\",[100,122]],[[500,500],\"mapped\",[501]],[[501,501],\"valid\"],[[502,502],\"mapped\",[405]],[[503,503],\"mapped\",[447]],[[504,504],\"mapped\",[505]],[[505,505],\"valid\"],[[506,506],\"mapped\",[507]],[[507,507],\"valid\"],[[508,508],\"mapped\",[509]],[[509,509],\"valid\"],[[510,510],\"mapped\",[511]],[[511,511],\"valid\"],[[512,512],\"mapped\",[513]],[[513,513],\"valid\"],[[514,514],\"mapped\",[515]],[[515,515],\"valid\"],[[516,516],\"mapped\",[517]],[[517,517],\"valid\"],[[518,518],\"mapped\",[519]],[[519,519],\"valid\"],[[520,520],\"mapped\",[521]],[[521,521],\"valid\"],[[522,522],\"mapped\",[523]],[[523,523],\"valid\"],[[524,524],\"mapped\",[525]],[[525,525],\"valid\"],[[526,526],\"mapped\",[527]],[[527,527],\"valid\"],[[528,528],\"mapped\",[529]],[[529,529],\"valid\"],[[530,530],\"mapped\",[531]],[[531,531],\"valid\"],[[532,532],\"mapped\",[533]],[[533,533],\"valid\"],[[534,534],\"mapped\",[535]],[[535,535],\"valid\"],[[536,536],\"mapped\",[537]],[[537,537],\"valid\"],[[538,538],\"mapped\",[539]],[[539,539],\"valid\"],[[540,540],\"mapped\",[541]],[[541,541],\"valid\"],[[542,542],\"mapped\",[543]],[[543,543],\"valid\"],[[544,544],\"mapped\",[414]],[[545,545],\"valid\"],[[546,546],\"mapped\",[547]],[[547,547],\"valid\"],[[548,548],\"mapped\",[549]],[[549,549],\"valid\"],[[550,550],\"mapped\",[551]],[[551,551],\"valid\"],[[552,552],\"mapped\",[553]],[[553,553],\"valid\"],[[554,554],\"mapped\",[555]],[[555,555],\"valid\"],[[556,556],\"mapped\",[557]],[[557,557],\"valid\"],[[558,558],\"mapped\",[559]],[[559,559],\"valid\"],[[560,560],\"mapped\",[561]],[[561,561],\"valid\"],[[562,562],\"mapped\",[563]],[[563,563],\"valid\"],[[564,566],\"valid\"],[[567,569],\"valid\"],[[570,570],\"mapped\",[11365]],[[571,571],\"mapped\",[572]],[[572,572],\"valid\"],[[573,573],\"mapped\",[410]],[[574,574],\"mapped\",[11366]],[[575,576],\"valid\"],[[577,577],\"mapped\",[578]],[[578,578],\"valid\"],[[579,579],\"mapped\",[384]],[[580,580],\"mapped\",[649]],[[581,581],\"mapped\",[652]],[[582,582],\"mapped\",[583]],[[583,583],\"valid\"],[[584,584],\"mapped\",[585]],[[585,585],\"valid\"],[[586,586],\"mapped\",[587]],[[587,587],\"valid\"],[[588,588],\"mapped\",[589]],[[589,589],\"valid\"],[[590,590],\"mapped\",[591]],[[591,591],\"valid\"],[[592,680],\"valid\"],[[681,685],\"valid\"],[[686,687],\"valid\"],[[688,688],\"mapped\",[104]],[[689,689],\"mapped\",[614]],[[690,690],\"mapped\",[106]],[[691,691],\"mapped\",[114]],[[692,692],\"mapped\",[633]],[[693,693],\"mapped\",[635]],[[694,694],\"mapped\",[641]],[[695,695],\"mapped\",[119]],[[696,696],\"mapped\",[121]],[[697,705],\"valid\"],[[706,709],\"valid\",[],\"NV8\"],[[710,721],\"valid\"],[[722,727],\"valid\",[],\"NV8\"],[[728,728],\"disallowed_STD3_mapped\",[32,774]],[[729,729],\"disallowed_STD3_mapped\",[32,775]],[[730,730],\"disallowed_STD3_mapped\",[32,778]],[[731,731],\"disallowed_STD3_mapped\",[32,808]],[[732,732],\"disallowed_STD3_mapped\",[32,771]],[[733,733],\"disallowed_STD3_mapped\",[32,779]],[[734,734],\"valid\",[],\"NV8\"],[[735,735],\"valid\",[],\"NV8\"],[[736,736],\"mapped\",[611]],[[737,737],\"mapped\",[108]],[[738,738],\"mapped\",[115]],[[739,739],\"mapped\",[120]],[[740,740],\"mapped\",[661]],[[741,745],\"valid\",[],\"NV8\"],[[746,747],\"valid\",[],\"NV8\"],[[748,748],\"valid\"],[[749,749],\"valid\",[],\"NV8\"],[[750,750],\"valid\"],[[751,767],\"valid\",[],\"NV8\"],[[768,831],\"valid\"],[[832,832],\"mapped\",[768]],[[833,833],\"mapped\",[769]],[[834,834],\"valid\"],[[835,835],\"mapped\",[787]],[[836,836],\"mapped\",[776,769]],[[837,837],\"mapped\",[953]],[[838,846],\"valid\"],[[847,847],\"ignored\"],[[848,855],\"valid\"],[[856,860],\"valid\"],[[861,863],\"valid\"],[[864,865],\"valid\"],[[866,866],\"valid\"],[[867,879],\"valid\"],[[880,880],\"mapped\",[881]],[[881,881],\"valid\"],[[882,882],\"mapped\",[883]],[[883,883],\"valid\"],[[884,884],\"mapped\",[697]],[[885,885],\"valid\"],[[886,886],\"mapped\",[887]],[[887,887],\"valid\"],[[888,889],\"disallowed\"],[[890,890],\"disallowed_STD3_mapped\",[32,953]],[[891,893],\"valid\"],[[894,894],\"disallowed_STD3_mapped\",[59]],[[895,895],\"mapped\",[1011]],[[896,899],\"disallowed\"],[[900,900],\"disallowed_STD3_mapped\",[32,769]],[[901,901],\"disallowed_STD3_mapped\",[32,776,769]],[[902,902],\"mapped\",[940]],[[903,903],\"mapped\",[183]],[[904,904],\"mapped\",[941]],[[905,905],\"mapped\",[942]],[[906,906],\"mapped\",[943]],[[907,907],\"disallowed\"],[[908,908],\"mapped\",[972]],[[909,909],\"disallowed\"],[[910,910],\"mapped\",[973]],[[911,911],\"mapped\",[974]],[[912,912],\"valid\"],[[913,913],\"mapped\",[945]],[[914,914],\"mapped\",[946]],[[915,915],\"mapped\",[947]],[[916,916],\"mapped\",[948]],[[917,917],\"mapped\",[949]],[[918,918],\"mapped\",[950]],[[919,919],\"mapped\",[951]],[[920,920],\"mapped\",[952]],[[921,921],\"mapped\",[953]],[[922,922],\"mapped\",[954]],[[923,923],\"mapped\",[955]],[[924,924],\"mapped\",[956]],[[925,925],\"mapped\",[957]],[[926,926],\"mapped\",[958]],[[927,927],\"mapped\",[959]],[[928,928],\"mapped\",[960]],[[929,929],\"mapped\",[961]],[[930,930],\"disallowed\"],[[931,931],\"mapped\",[963]],[[932,932],\"mapped\",[964]],[[933,933],\"mapped\",[965]],[[934,934],\"mapped\",[966]],[[935,935],\"mapped\",[967]],[[936,936],\"mapped\",[968]],[[937,937],\"mapped\",[969]],[[938,938],\"mapped\",[970]],[[939,939],\"mapped\",[971]],[[940,961],\"valid\"],[[962,962],\"deviation\",[963]],[[963,974],\"valid\"],[[975,975],\"mapped\",[983]],[[976,976],\"mapped\",[946]],[[977,977],\"mapped\",[952]],[[978,978],\"mapped\",[965]],[[979,979],\"mapped\",[973]],[[980,980],\"mapped\",[971]],[[981,981],\"mapped\",[966]],[[982,982],\"mapped\",[960]],[[983,983],\"valid\"],[[984,984],\"mapped\",[985]],[[985,985],\"valid\"],[[986,986],\"mapped\",[987]],[[987,987],\"valid\"],[[988,988],\"mapped\",[989]],[[989,989],\"valid\"],[[990,990],\"mapped\",[991]],[[991,991],\"valid\"],[[992,992],\"mapped\",[993]],[[993,993],\"valid\"],[[994,994],\"mapped\",[995]],[[995,995],\"valid\"],[[996,996],\"mapped\",[997]],[[997,997],\"valid\"],[[998,998],\"mapped\",[999]],[[999,999],\"valid\"],[[1000,1000],\"mapped\",[1001]],[[1001,1001],\"valid\"],[[1002,1002],\"mapped\",[1003]],[[1003,1003],\"valid\"],[[1004,1004],\"mapped\",[1005]],[[1005,1005],\"valid\"],[[1006,1006],\"mapped\",[1007]],[[1007,1007],\"valid\"],[[1008,1008],\"mapped\",[954]],[[1009,1009],\"mapped\",[961]],[[1010,1010],\"mapped\",[963]],[[1011,1011],\"valid\"],[[1012,1012],\"mapped\",[952]],[[1013,1013],\"mapped\",[949]],[[1014,1014],\"valid\",[],\"NV8\"],[[1015,1015],\"mapped\",[1016]],[[1016,1016],\"valid\"],[[1017,1017],\"mapped\",[963]],[[1018,1018],\"mapped\",[1019]],[[1019,1019],\"valid\"],[[1020,1020],\"valid\"],[[1021,1021],\"mapped\",[891]],[[1022,1022],\"mapped\",[892]],[[1023,1023],\"mapped\",[893]],[[1024,1024],\"mapped\",[1104]],[[1025,1025],\"mapped\",[1105]],[[1026,1026],\"mapped\",[1106]],[[1027,1027],\"mapped\",[1107]],[[1028,1028],\"mapped\",[1108]],[[1029,1029],\"mapped\",[1109]],[[1030,1030],\"mapped\",[1110]],[[1031,1031],\"mapped\",[1111]],[[1032,1032],\"mapped\",[1112]],[[1033,1033],\"mapped\",[1113]],[[1034,1034],\"mapped\",[1114]],[[1035,1035],\"mapped\",[1115]],[[1036,1036],\"mapped\",[1116]],[[1037,1037],\"mapped\",[1117]],[[1038,1038],\"mapped\",[1118]],[[1039,1039],\"mapped\",[1119]],[[1040,1040],\"mapped\",[1072]],[[1041,1041],\"mapped\",[1073]],[[1042,1042],\"mapped\",[1074]],[[1043,1043],\"mapped\",[1075]],[[1044,1044],\"mapped\",[1076]],[[1045,1045],\"mapped\",[1077]],[[1046,1046],\"mapped\",[1078]],[[1047,1047],\"mapped\",[1079]],[[1048,1048],\"mapped\",[1080]],[[1049,1049],\"mapped\",[1081]],[[1050,1050],\"mapped\",[1082]],[[1051,1051],\"mapped\",[1083]],[[1052,1052],\"mapped\",[1084]],[[1053,1053],\"mapped\",[1085]],[[1054,1054],\"mapped\",[1086]],[[1055,1055],\"mapped\",[1087]],[[1056,1056],\"mapped\",[1088]],[[1057,1057],\"mapped\",[1089]],[[1058,1058],\"mapped\",[1090]],[[1059,1059],\"mapped\",[1091]],[[1060,1060],\"mapped\",[1092]],[[1061,1061],\"mapped\",[1093]],[[1062,1062],\"mapped\",[1094]],[[1063,1063],\"mapped\",[1095]],[[1064,1064],\"mapped\",[1096]],[[1065,1065],\"mapped\",[1097]],[[1066,1066],\"mapped\",[1098]],[[1067,1067],\"mapped\",[1099]],[[1068,1068],\"mapped\",[1100]],[[1069,1069],\"mapped\",[1101]],[[1070,1070],\"mapped\",[1102]],[[1071,1071],\"mapped\",[1103]],[[1072,1103],\"valid\"],[[1104,1104],\"valid\"],[[1105,1116],\"valid\"],[[1117,1117],\"valid\"],[[1118,1119],\"valid\"],[[1120,1120],\"mapped\",[1121]],[[1121,1121],\"valid\"],[[1122,1122],\"mapped\",[1123]],[[1123,1123],\"valid\"],[[1124,1124],\"mapped\",[1125]],[[1125,1125],\"valid\"],[[1126,1126],\"mapped\",[1127]],[[1127,1127],\"valid\"],[[1128,1128],\"mapped\",[1129]],[[1129,1129],\"valid\"],[[1130,1130],\"mapped\",[1131]],[[1131,1131],\"valid\"],[[1132,1132],\"mapped\",[1133]],[[1133,1133],\"valid\"],[[1134,1134],\"mapped\",[1135]],[[1135,1135],\"valid\"],[[1136,1136],\"mapped\",[1137]],[[1137,1137],\"valid\"],[[1138,1138],\"mapped\",[1139]],[[1139,1139],\"valid\"],[[1140,1140],\"mapped\",[1141]],[[1141,1141],\"valid\"],[[1142,1142],\"mapped\",[1143]],[[1143,1143],\"valid\"],[[1144,1144],\"mapped\",[1145]],[[1145,1145],\"valid\"],[[1146,1146],\"mapped\",[1147]],[[1147,1147],\"valid\"],[[1148,1148],\"mapped\",[1149]],[[1149,1149],\"valid\"],[[1150,1150],\"mapped\",[1151]],[[1151,1151],\"valid\"],[[1152,1152],\"mapped\",[1153]],[[1153,1153],\"valid\"],[[1154,1154],\"valid\",[],\"NV8\"],[[1155,1158],\"valid\"],[[1159,1159],\"valid\"],[[1160,1161],\"valid\",[],\"NV8\"],[[1162,1162],\"mapped\",[1163]],[[1163,1163],\"valid\"],[[1164,1164],\"mapped\",[1165]],[[1165,1165],\"valid\"],[[1166,1166],\"mapped\",[1167]],[[1167,1167],\"valid\"],[[1168,1168],\"mapped\",[1169]],[[1169,1169],\"valid\"],[[1170,1170],\"mapped\",[1171]],[[1171,1171],\"valid\"],[[1172,1172],\"mapped\",[1173]],[[1173,1173],\"valid\"],[[1174,1174],\"mapped\",[1175]],[[1175,1175],\"valid\"],[[1176,1176],\"mapped\",[1177]],[[1177,1177],\"valid\"],[[1178,1178],\"mapped\",[1179]],[[1179,1179],\"valid\"],[[1180,1180],\"mapped\",[1181]],[[1181,1181],\"valid\"],[[1182,1182],\"mapped\",[1183]],[[1183,1183],\"valid\"],[[1184,1184],\"mapped\",[1185]],[[1185,1185],\"valid\"],[[1186,1186],\"mapped\",[1187]],[[1187,1187],\"valid\"],[[1188,1188],\"mapped\",[1189]],[[1189,1189],\"valid\"],[[1190,1190],\"mapped\",[1191]],[[1191,1191],\"valid\"],[[1192,1192],\"mapped\",[1193]],[[1193,1193],\"valid\"],[[1194,1194],\"mapped\",[1195]],[[1195,1195],\"valid\"],[[1196,1196],\"mapped\",[1197]],[[1197,1197],\"valid\"],[[1198,1198],\"mapped\",[1199]],[[1199,1199],\"valid\"],[[1200,1200],\"mapped\",[1201]],[[1201,1201],\"valid\"],[[1202,1202],\"mapped\",[1203]],[[1203,1203],\"valid\"],[[1204,1204],\"mapped\",[1205]],[[1205,1205],\"valid\"],[[1206,1206],\"mapped\",[1207]],[[1207,1207],\"valid\"],[[1208,1208],\"mapped\",[1209]],[[1209,1209],\"valid\"],[[1210,1210],\"mapped\",[1211]],[[1211,1211],\"valid\"],[[1212,1212],\"mapped\",[1213]],[[1213,1213],\"valid\"],[[1214,1214],\"mapped\",[1215]],[[1215,1215],\"valid\"],[[1216,1216],\"disallowed\"],[[1217,1217],\"mapped\",[1218]],[[1218,1218],\"valid\"],[[1219,1219],\"mapped\",[1220]],[[1220,1220],\"valid\"],[[1221,1221],\"mapped\",[1222]],[[1222,1222],\"valid\"],[[1223,1223],\"mapped\",[1224]],[[1224,1224],\"valid\"],[[1225,1225],\"mapped\",[1226]],[[1226,1226],\"valid\"],[[1227,1227],\"mapped\",[1228]],[[1228,1228],\"valid\"],[[1229,1229],\"mapped\",[1230]],[[1230,1230],\"valid\"],[[1231,1231],\"valid\"],[[1232,1232],\"mapped\",[1233]],[[1233,1233],\"valid\"],[[1234,1234],\"mapped\",[1235]],[[1235,1235],\"valid\"],[[1236,1236],\"mapped\",[1237]],[[1237,1237],\"valid\"],[[1238,1238],\"mapped\",[1239]],[[1239,1239],\"valid\"],[[1240,1240],\"mapped\",[1241]],[[1241,1241],\"valid\"],[[1242,1242],\"mapped\",[1243]],[[1243,1243],\"valid\"],[[1244,1244],\"mapped\",[1245]],[[1245,1245],\"valid\"],[[1246,1246],\"mapped\",[1247]],[[1247,1247],\"valid\"],[[1248,1248],\"mapped\",[1249]],[[1249,1249],\"valid\"],[[1250,1250],\"mapped\",[1251]],[[1251,1251],\"valid\"],[[1252,1252],\"mapped\",[1253]],[[1253,1253],\"valid\"],[[1254,1254],\"mapped\",[1255]],[[1255,1255],\"valid\"],[[1256,1256],\"mapped\",[1257]],[[1257,1257],\"valid\"],[[1258,1258],\"mapped\",[1259]],[[1259,1259],\"valid\"],[[1260,1260],\"mapped\",[1261]],[[1261,1261],\"valid\"],[[1262,1262],\"mapped\",[1263]],[[1263,1263],\"valid\"],[[1264,1264],\"mapped\",[1265]],[[1265,1265],\"valid\"],[[1266,1266],\"mapped\",[1267]],[[1267,1267],\"valid\"],[[1268,1268],\"mapped\",[1269]],[[1269,1269],\"valid\"],[[1270,1270],\"mapped\",[1271]],[[1271,1271],\"valid\"],[[1272,1272],\"mapped\",[1273]],[[1273,1273],\"valid\"],[[1274,1274],\"mapped\",[1275]],[[1275,1275],\"valid\"],[[1276,1276],\"mapped\",[1277]],[[1277,1277],\"valid\"],[[1278,1278],\"mapped\",[1279]],[[1279,1279],\"valid\"],[[1280,1280],\"mapped\",[1281]],[[1281,1281],\"valid\"],[[1282,1282],\"mapped\",[1283]],[[1283,1283],\"valid\"],[[1284,1284],\"mapped\",[1285]],[[1285,1285],\"valid\"],[[1286,1286],\"mapped\",[1287]],[[1287,1287],\"valid\"],[[1288,1288],\"mapped\",[1289]],[[1289,1289],\"valid\"],[[1290,1290],\"mapped\",[1291]],[[1291,1291],\"valid\"],[[1292,1292],\"mapped\",[1293]],[[1293,1293],\"valid\"],[[1294,1294],\"mapped\",[1295]],[[1295,1295],\"valid\"],[[1296,1296],\"mapped\",[1297]],[[1297,1297],\"valid\"],[[1298,1298],\"mapped\",[1299]],[[1299,1299],\"valid\"],[[1300,1300],\"mapped\",[1301]],[[1301,1301],\"valid\"],[[1302,1302],\"mapped\",[1303]],[[1303,1303],\"valid\"],[[1304,1304],\"mapped\",[1305]],[[1305,1305],\"valid\"],[[1306,1306],\"mapped\",[1307]],[[1307,1307],\"valid\"],[[1308,1308],\"mapped\",[1309]],[[1309,1309],\"valid\"],[[1310,1310],\"mapped\",[1311]],[[1311,1311],\"valid\"],[[1312,1312],\"mapped\",[1313]],[[1313,1313],\"valid\"],[[1314,1314],\"mapped\",[1315]],[[1315,1315],\"valid\"],[[1316,1316],\"mapped\",[1317]],[[1317,1317],\"valid\"],[[1318,1318],\"mapped\",[1319]],[[1319,1319],\"valid\"],[[1320,1320],\"mapped\",[1321]],[[1321,1321],\"valid\"],[[1322,1322],\"mapped\",[1323]],[[1323,1323],\"valid\"],[[1324,1324],\"mapped\",[1325]],[[1325,1325],\"valid\"],[[1326,1326],\"mapped\",[1327]],[[1327,1327],\"valid\"],[[1328,1328],\"disallowed\"],[[1329,1329],\"mapped\",[1377]],[[1330,1330],\"mapped\",[1378]],[[1331,1331],\"mapped\",[1379]],[[1332,1332],\"mapped\",[1380]],[[1333,1333],\"mapped\",[1381]],[[1334,1334],\"mapped\",[1382]],[[1335,1335],\"mapped\",[1383]],[[1336,1336],\"mapped\",[1384]],[[1337,1337],\"mapped\",[1385]],[[1338,1338],\"mapped\",[1386]],[[1339,1339],\"mapped\",[1387]],[[1340,1340],\"mapped\",[1388]],[[1341,1341],\"mapped\",[1389]],[[1342,1342],\"mapped\",[1390]],[[1343,1343],\"mapped\",[1391]],[[1344,1344],\"mapped\",[1392]],[[1345,1345],\"mapped\",[1393]],[[1346,1346],\"mapped\",[1394]],[[1347,1347],\"mapped\",[1395]],[[1348,1348],\"mapped\",[1396]],[[1349,1349],\"mapped\",[1397]],[[1350,1350],\"mapped\",[1398]],[[1351,1351],\"mapped\",[1399]],[[1352,1352],\"mapped\",[1400]],[[1353,1353],\"mapped\",[1401]],[[1354,1354],\"mapped\",[1402]],[[1355,1355],\"mapped\",[1403]],[[1356,1356],\"mapped\",[1404]],[[1357,1357],\"mapped\",[1405]],[[1358,1358],\"mapped\",[1406]],[[1359,1359],\"mapped\",[1407]],[[1360,1360],\"mapped\",[1408]],[[1361,1361],\"mapped\",[1409]],[[1362,1362],\"mapped\",[1410]],[[1363,1363],\"mapped\",[1411]],[[1364,1364],\"mapped\",[1412]],[[1365,1365],\"mapped\",[1413]],[[1366,1366],\"mapped\",[1414]],[[1367,1368],\"disallowed\"],[[1369,1369],\"valid\"],[[1370,1375],\"valid\",[],\"NV8\"],[[1376,1376],\"disallowed\"],[[1377,1414],\"valid\"],[[1415,1415],\"mapped\",[1381,1410]],[[1416,1416],\"disallowed\"],[[1417,1417],\"valid\",[],\"NV8\"],[[1418,1418],\"valid\",[],\"NV8\"],[[1419,1420],\"disallowed\"],[[1421,1422],\"valid\",[],\"NV8\"],[[1423,1423],\"valid\",[],\"NV8\"],[[1424,1424],\"disallowed\"],[[1425,1441],\"valid\"],[[1442,1442],\"valid\"],[[1443,1455],\"valid\"],[[1456,1465],\"valid\"],[[1466,1466],\"valid\"],[[1467,1469],\"valid\"],[[1470,1470],\"valid\",[],\"NV8\"],[[1471,1471],\"valid\"],[[1472,1472],\"valid\",[],\"NV8\"],[[1473,1474],\"valid\"],[[1475,1475],\"valid\",[],\"NV8\"],[[1476,1476],\"valid\"],[[1477,1477],\"valid\"],[[1478,1478],\"valid\",[],\"NV8\"],[[1479,1479],\"valid\"],[[1480,1487],\"disallowed\"],[[1488,1514],\"valid\"],[[1515,1519],\"disallowed\"],[[1520,1524],\"valid\"],[[1525,1535],\"disallowed\"],[[1536,1539],\"disallowed\"],[[1540,1540],\"disallowed\"],[[1541,1541],\"disallowed\"],[[1542,1546],\"valid\",[],\"NV8\"],[[1547,1547],\"valid\",[],\"NV8\"],[[1548,1548],\"valid\",[],\"NV8\"],[[1549,1551],\"valid\",[],\"NV8\"],[[1552,1557],\"valid\"],[[1558,1562],\"valid\"],[[1563,1563],\"valid\",[],\"NV8\"],[[1564,1564],\"disallowed\"],[[1565,1565],\"disallowed\"],[[1566,1566],\"valid\",[],\"NV8\"],[[1567,1567],\"valid\",[],\"NV8\"],[[1568,1568],\"valid\"],[[1569,1594],\"valid\"],[[1595,1599],\"valid\"],[[1600,1600],\"valid\",[],\"NV8\"],[[1601,1618],\"valid\"],[[1619,1621],\"valid\"],[[1622,1624],\"valid\"],[[1625,1630],\"valid\"],[[1631,1631],\"valid\"],[[1632,1641],\"valid\"],[[1642,1645],\"valid\",[],\"NV8\"],[[1646,1647],\"valid\"],[[1648,1652],\"valid\"],[[1653,1653],\"mapped\",[1575,1652]],[[1654,1654],\"mapped\",[1608,1652]],[[1655,1655],\"mapped\",[1735,1652]],[[1656,1656],\"mapped\",[1610,1652]],[[1657,1719],\"valid\"],[[1720,1721],\"valid\"],[[1722,1726],\"valid\"],[[1727,1727],\"valid\"],[[1728,1742],\"valid\"],[[1743,1743],\"valid\"],[[1744,1747],\"valid\"],[[1748,1748],\"valid\",[],\"NV8\"],[[1749,1756],\"valid\"],[[1757,1757],\"disallowed\"],[[1758,1758],\"valid\",[],\"NV8\"],[[1759,1768],\"valid\"],[[1769,1769],\"valid\",[],\"NV8\"],[[1770,1773],\"valid\"],[[1774,1775],\"valid\"],[[1776,1785],\"valid\"],[[1786,1790],\"valid\"],[[1791,1791],\"valid\"],[[1792,1805],\"valid\",[],\"NV8\"],[[1806,1806],\"disallowed\"],[[1807,1807],\"disallowed\"],[[1808,1836],\"valid\"],[[1837,1839],\"valid\"],[[1840,1866],\"valid\"],[[1867,1868],\"disallowed\"],[[1869,1871],\"valid\"],[[1872,1901],\"valid\"],[[1902,1919],\"valid\"],[[1920,1968],\"valid\"],[[1969,1969],\"valid\"],[[1970,1983],\"disallowed\"],[[1984,2037],\"valid\"],[[2038,2042],\"valid\",[],\"NV8\"],[[2043,2047],\"disallowed\"],[[2048,2093],\"valid\"],[[2094,2095],\"disallowed\"],[[2096,2110],\"valid\",[],\"NV8\"],[[2111,2111],\"disallowed\"],[[2112,2139],\"valid\"],[[2140,2141],\"disallowed\"],[[2142,2142],\"valid\",[],\"NV8\"],[[2143,2207],\"disallowed\"],[[2208,2208],\"valid\"],[[2209,2209],\"valid\"],[[2210,2220],\"valid\"],[[2221,2226],\"valid\"],[[2227,2228],\"valid\"],[[2229,2274],\"disallowed\"],[[2275,2275],\"valid\"],[[2276,2302],\"valid\"],[[2303,2303],\"valid\"],[[2304,2304],\"valid\"],[[2305,2307],\"valid\"],[[2308,2308],\"valid\"],[[2309,2361],\"valid\"],[[2362,2363],\"valid\"],[[2364,2381],\"valid\"],[[2382,2382],\"valid\"],[[2383,2383],\"valid\"],[[2384,2388],\"valid\"],[[2389,2389],\"valid\"],[[2390,2391],\"valid\"],[[2392,2392],\"mapped\",[2325,2364]],[[2393,2393],\"mapped\",[2326,2364]],[[2394,2394],\"mapped\",[2327,2364]],[[2395,2395],\"mapped\",[2332,2364]],[[2396,2396],\"mapped\",[2337,2364]],[[2397,2397],\"mapped\",[2338,2364]],[[2398,2398],\"mapped\",[2347,2364]],[[2399,2399],\"mapped\",[2351,2364]],[[2400,2403],\"valid\"],[[2404,2405],\"valid\",[],\"NV8\"],[[2406,2415],\"valid\"],[[2416,2416],\"valid\",[],\"NV8\"],[[2417,2418],\"valid\"],[[2419,2423],\"valid\"],[[2424,2424],\"valid\"],[[2425,2426],\"valid\"],[[2427,2428],\"valid\"],[[2429,2429],\"valid\"],[[2430,2431],\"valid\"],[[2432,2432],\"valid\"],[[2433,2435],\"valid\"],[[2436,2436],\"disallowed\"],[[2437,2444],\"valid\"],[[2445,2446],\"disallowed\"],[[2447,2448],\"valid\"],[[2449,2450],\"disallowed\"],[[2451,2472],\"valid\"],[[2473,2473],\"disallowed\"],[[2474,2480],\"valid\"],[[2481,2481],\"disallowed\"],[[2482,2482],\"valid\"],[[2483,2485],\"disallowed\"],[[2486,2489],\"valid\"],[[2490,2491],\"disallowed\"],[[2492,2492],\"valid\"],[[2493,2493],\"valid\"],[[2494,2500],\"valid\"],[[2501,2502],\"disallowed\"],[[2503,2504],\"valid\"],[[2505,2506],\"disallowed\"],[[2507,2509],\"valid\"],[[2510,2510],\"valid\"],[[2511,2518],\"disallowed\"],[[2519,2519],\"valid\"],[[2520,2523],\"disallowed\"],[[2524,2524],\"mapped\",[2465,2492]],[[2525,2525],\"mapped\",[2466,2492]],[[2526,2526],\"disallowed\"],[[2527,2527],\"mapped\",[2479,2492]],[[2528,2531],\"valid\"],[[2532,2533],\"disallowed\"],[[2534,2545],\"valid\"],[[2546,2554],\"valid\",[],\"NV8\"],[[2555,2555],\"valid\",[],\"NV8\"],[[2556,2560],\"disallowed\"],[[2561,2561],\"valid\"],[[2562,2562],\"valid\"],[[2563,2563],\"valid\"],[[2564,2564],\"disallowed\"],[[2565,2570],\"valid\"],[[2571,2574],\"disallowed\"],[[2575,2576],\"valid\"],[[2577,2578],\"disallowed\"],[[2579,2600],\"valid\"],[[2601,2601],\"disallowed\"],[[2602,2608],\"valid\"],[[2609,2609],\"disallowed\"],[[2610,2610],\"valid\"],[[2611,2611],\"mapped\",[2610,2620]],[[2612,2612],\"disallowed\"],[[2613,2613],\"valid\"],[[2614,2614],\"mapped\",[2616,2620]],[[2615,2615],\"disallowed\"],[[2616,2617],\"valid\"],[[2618,2619],\"disallowed\"],[[2620,2620],\"valid\"],[[2621,2621],\"disallowed\"],[[2622,2626],\"valid\"],[[2627,2630],\"disallowed\"],[[2631,2632],\"valid\"],[[2633,2634],\"disallowed\"],[[2635,2637],\"valid\"],[[2638,2640],\"disallowed\"],[[2641,2641],\"valid\"],[[2642,2648],\"disallowed\"],[[2649,2649],\"mapped\",[2582,2620]],[[2650,2650],\"mapped\",[2583,2620]],[[2651,2651],\"mapped\",[2588,2620]],[[2652,2652],\"valid\"],[[2653,2653],\"disallowed\"],[[2654,2654],\"mapped\",[2603,2620]],[[2655,2661],\"disallowed\"],[[2662,2676],\"valid\"],[[2677,2677],\"valid\"],[[2678,2688],\"disallowed\"],[[2689,2691],\"valid\"],[[2692,2692],\"disallowed\"],[[2693,2699],\"valid\"],[[2700,2700],\"valid\"],[[2701,2701],\"valid\"],[[2702,2702],\"disallowed\"],[[2703,2705],\"valid\"],[[2706,2706],\"disallowed\"],[[2707,2728],\"valid\"],[[2729,2729],\"disallowed\"],[[2730,2736],\"valid\"],[[2737,2737],\"disallowed\"],[[2738,2739],\"valid\"],[[2740,2740],\"disallowed\"],[[2741,2745],\"valid\"],[[2746,2747],\"disallowed\"],[[2748,2757],\"valid\"],[[2758,2758],\"disallowed\"],[[2759,2761],\"valid\"],[[2762,2762],\"disallowed\"],[[2763,2765],\"valid\"],[[2766,2767],\"disallowed\"],[[2768,2768],\"valid\"],[[2769,2783],\"disallowed\"],[[2784,2784],\"valid\"],[[2785,2787],\"valid\"],[[2788,2789],\"disallowed\"],[[2790,2799],\"valid\"],[[2800,2800],\"valid\",[],\"NV8\"],[[2801,2801],\"valid\",[],\"NV8\"],[[2802,2808],\"disallowed\"],[[2809,2809],\"valid\"],[[2810,2816],\"disallowed\"],[[2817,2819],\"valid\"],[[2820,2820],\"disallowed\"],[[2821,2828],\"valid\"],[[2829,2830],\"disallowed\"],[[2831,2832],\"valid\"],[[2833,2834],\"disallowed\"],[[2835,2856],\"valid\"],[[2857,2857],\"disallowed\"],[[2858,2864],\"valid\"],[[2865,2865],\"disallowed\"],[[2866,2867],\"valid\"],[[2868,2868],\"disallowed\"],[[2869,2869],\"valid\"],[[2870,2873],\"valid\"],[[2874,2875],\"disallowed\"],[[2876,2883],\"valid\"],[[2884,2884],\"valid\"],[[2885,2886],\"disallowed\"],[[2887,2888],\"valid\"],[[2889,2890],\"disallowed\"],[[2891,2893],\"valid\"],[[2894,2901],\"disallowed\"],[[2902,2903],\"valid\"],[[2904,2907],\"disallowed\"],[[2908,2908],\"mapped\",[2849,2876]],[[2909,2909],\"mapped\",[2850,2876]],[[2910,2910],\"disallowed\"],[[2911,2913],\"valid\"],[[2914,2915],\"valid\"],[[2916,2917],\"disallowed\"],[[2918,2927],\"valid\"],[[2928,2928],\"valid\",[],\"NV8\"],[[2929,2929],\"valid\"],[[2930,2935],\"valid\",[],\"NV8\"],[[2936,2945],\"disallowed\"],[[2946,2947],\"valid\"],[[2948,2948],\"disallowed\"],[[2949,2954],\"valid\"],[[2955,2957],\"disallowed\"],[[2958,2960],\"valid\"],[[2961,2961],\"disallowed\"],[[2962,2965],\"valid\"],[[2966,2968],\"disallowed\"],[[2969,2970],\"valid\"],[[2971,2971],\"disallowed\"],[[2972,2972],\"valid\"],[[2973,2973],\"disallowed\"],[[2974,2975],\"valid\"],[[2976,2978],\"disallowed\"],[[2979,2980],\"valid\"],[[2981,2983],\"disallowed\"],[[2984,2986],\"valid\"],[[2987,2989],\"disallowed\"],[[2990,2997],\"valid\"],[[2998,2998],\"valid\"],[[2999,3001],\"valid\"],[[3002,3005],\"disallowed\"],[[3006,3010],\"valid\"],[[3011,3013],\"disallowed\"],[[3014,3016],\"valid\"],[[3017,3017],\"disallowed\"],[[3018,3021],\"valid\"],[[3022,3023],\"disallowed\"],[[3024,3024],\"valid\"],[[3025,3030],\"disallowed\"],[[3031,3031],\"valid\"],[[3032,3045],\"disallowed\"],[[3046,3046],\"valid\"],[[3047,3055],\"valid\"],[[3056,3058],\"valid\",[],\"NV8\"],[[3059,3066],\"valid\",[],\"NV8\"],[[3067,3071],\"disallowed\"],[[3072,3072],\"valid\"],[[3073,3075],\"valid\"],[[3076,3076],\"disallowed\"],[[3077,3084],\"valid\"],[[3085,3085],\"disallowed\"],[[3086,3088],\"valid\"],[[3089,3089],\"disallowed\"],[[3090,3112],\"valid\"],[[3113,3113],\"disallowed\"],[[3114,3123],\"valid\"],[[3124,3124],\"valid\"],[[3125,3129],\"valid\"],[[3130,3132],\"disallowed\"],[[3133,3133],\"valid\"],[[3134,3140],\"valid\"],[[3141,3141],\"disallowed\"],[[3142,3144],\"valid\"],[[3145,3145],\"disallowed\"],[[3146,3149],\"valid\"],[[3150,3156],\"disallowed\"],[[3157,3158],\"valid\"],[[3159,3159],\"disallowed\"],[[3160,3161],\"valid\"],[[3162,3162],\"valid\"],[[3163,3167],\"disallowed\"],[[3168,3169],\"valid\"],[[3170,3171],\"valid\"],[[3172,3173],\"disallowed\"],[[3174,3183],\"valid\"],[[3184,3191],\"disallowed\"],[[3192,3199],\"valid\",[],\"NV8\"],[[3200,3200],\"disallowed\"],[[3201,3201],\"valid\"],[[3202,3203],\"valid\"],[[3204,3204],\"disallowed\"],[[3205,3212],\"valid\"],[[3213,3213],\"disallowed\"],[[3214,3216],\"valid\"],[[3217,3217],\"disallowed\"],[[3218,3240],\"valid\"],[[3241,3241],\"disallowed\"],[[3242,3251],\"valid\"],[[3252,3252],\"disallowed\"],[[3253,3257],\"valid\"],[[3258,3259],\"disallowed\"],[[3260,3261],\"valid\"],[[3262,3268],\"valid\"],[[3269,3269],\"disallowed\"],[[3270,3272],\"valid\"],[[3273,3273],\"disallowed\"],[[3274,3277],\"valid\"],[[3278,3284],\"disallowed\"],[[3285,3286],\"valid\"],[[3287,3293],\"disallowed\"],[[3294,3294],\"valid\"],[[3295,3295],\"disallowed\"],[[3296,3297],\"valid\"],[[3298,3299],\"valid\"],[[3300,3301],\"disallowed\"],[[3302,3311],\"valid\"],[[3312,3312],\"disallowed\"],[[3313,3314],\"valid\"],[[3315,3328],\"disallowed\"],[[3329,3329],\"valid\"],[[3330,3331],\"valid\"],[[3332,3332],\"disallowed\"],[[3333,3340],\"valid\"],[[3341,3341],\"disallowed\"],[[3342,3344],\"valid\"],[[3345,3345],\"disallowed\"],[[3346,3368],\"valid\"],[[3369,3369],\"valid\"],[[3370,3385],\"valid\"],[[3386,3386],\"valid\"],[[3387,3388],\"disallowed\"],[[3389,3389],\"valid\"],[[3390,3395],\"valid\"],[[3396,3396],\"valid\"],[[3397,3397],\"disallowed\"],[[3398,3400],\"valid\"],[[3401,3401],\"disallowed\"],[[3402,3405],\"valid\"],[[3406,3406],\"valid\"],[[3407,3414],\"disallowed\"],[[3415,3415],\"valid\"],[[3416,3422],\"disallowed\"],[[3423,3423],\"valid\"],[[3424,3425],\"valid\"],[[3426,3427],\"valid\"],[[3428,3429],\"disallowed\"],[[3430,3439],\"valid\"],[[3440,3445],\"valid\",[],\"NV8\"],[[3446,3448],\"disallowed\"],[[3449,3449],\"valid\",[],\"NV8\"],[[3450,3455],\"valid\"],[[3456,3457],\"disallowed\"],[[3458,3459],\"valid\"],[[3460,3460],\"disallowed\"],[[3461,3478],\"valid\"],[[3479,3481],\"disallowed\"],[[3482,3505],\"valid\"],[[3506,3506],\"disallowed\"],[[3507,3515],\"valid\"],[[3516,3516],\"disallowed\"],[[3517,3517],\"valid\"],[[3518,3519],\"disallowed\"],[[3520,3526],\"valid\"],[[3527,3529],\"disallowed\"],[[3530,3530],\"valid\"],[[3531,3534],\"disallowed\"],[[3535,3540],\"valid\"],[[3541,3541],\"disallowed\"],[[3542,3542],\"valid\"],[[3543,3543],\"disallowed\"],[[3544,3551],\"valid\"],[[3552,3557],\"disallowed\"],[[3558,3567],\"valid\"],[[3568,3569],\"disallowed\"],[[3570,3571],\"valid\"],[[3572,3572],\"valid\",[],\"NV8\"],[[3573,3584],\"disallowed\"],[[3585,3634],\"valid\"],[[3635,3635],\"mapped\",[3661,3634]],[[3636,3642],\"valid\"],[[3643,3646],\"disallowed\"],[[3647,3647],\"valid\",[],\"NV8\"],[[3648,3662],\"valid\"],[[3663,3663],\"valid\",[],\"NV8\"],[[3664,3673],\"valid\"],[[3674,3675],\"valid\",[],\"NV8\"],[[3676,3712],\"disallowed\"],[[3713,3714],\"valid\"],[[3715,3715],\"disallowed\"],[[3716,3716],\"valid\"],[[3717,3718],\"disallowed\"],[[3719,3720],\"valid\"],[[3721,3721],\"disallowed\"],[[3722,3722],\"valid\"],[[3723,3724],\"disallowed\"],[[3725,3725],\"valid\"],[[3726,3731],\"disallowed\"],[[3732,3735],\"valid\"],[[3736,3736],\"disallowed\"],[[3737,3743],\"valid\"],[[3744,3744],\"disallowed\"],[[3745,3747],\"valid\"],[[3748,3748],\"disallowed\"],[[3749,3749],\"valid\"],[[3750,3750],\"disallowed\"],[[3751,3751],\"valid\"],[[3752,3753],\"disallowed\"],[[3754,3755],\"valid\"],[[3756,3756],\"disallowed\"],[[3757,3762],\"valid\"],[[3763,3763],\"mapped\",[3789,3762]],[[3764,3769],\"valid\"],[[3770,3770],\"disallowed\"],[[3771,3773],\"valid\"],[[3774,3775],\"disallowed\"],[[3776,3780],\"valid\"],[[3781,3781],\"disallowed\"],[[3782,3782],\"valid\"],[[3783,3783],\"disallowed\"],[[3784,3789],\"valid\"],[[3790,3791],\"disallowed\"],[[3792,3801],\"valid\"],[[3802,3803],\"disallowed\"],[[3804,3804],\"mapped\",[3755,3737]],[[3805,3805],\"mapped\",[3755,3745]],[[3806,3807],\"valid\"],[[3808,3839],\"disallowed\"],[[3840,3840],\"valid\"],[[3841,3850],\"valid\",[],\"NV8\"],[[3851,3851],\"valid\"],[[3852,3852],\"mapped\",[3851]],[[3853,3863],\"valid\",[],\"NV8\"],[[3864,3865],\"valid\"],[[3866,3871],\"valid\",[],\"NV8\"],[[3872,3881],\"valid\"],[[3882,3892],\"valid\",[],\"NV8\"],[[3893,3893],\"valid\"],[[3894,3894],\"valid\",[],\"NV8\"],[[3895,3895],\"valid\"],[[3896,3896],\"valid\",[],\"NV8\"],[[3897,3897],\"valid\"],[[3898,3901],\"valid\",[],\"NV8\"],[[3902,3906],\"valid\"],[[3907,3907],\"mapped\",[3906,4023]],[[3908,3911],\"valid\"],[[3912,3912],\"disallowed\"],[[3913,3916],\"valid\"],[[3917,3917],\"mapped\",[3916,4023]],[[3918,3921],\"valid\"],[[3922,3922],\"mapped\",[3921,4023]],[[3923,3926],\"valid\"],[[3927,3927],\"mapped\",[3926,4023]],[[3928,3931],\"valid\"],[[3932,3932],\"mapped\",[3931,4023]],[[3933,3944],\"valid\"],[[3945,3945],\"mapped\",[3904,4021]],[[3946,3946],\"valid\"],[[3947,3948],\"valid\"],[[3949,3952],\"disallowed\"],[[3953,3954],\"valid\"],[[3955,3955],\"mapped\",[3953,3954]],[[3956,3956],\"valid\"],[[3957,3957],\"mapped\",[3953,3956]],[[3958,3958],\"mapped\",[4018,3968]],[[3959,3959],\"mapped\",[4018,3953,3968]],[[3960,3960],\"mapped\",[4019,3968]],[[3961,3961],\"mapped\",[4019,3953,3968]],[[3962,3968],\"valid\"],[[3969,3969],\"mapped\",[3953,3968]],[[3970,3972],\"valid\"],[[3973,3973],\"valid\",[],\"NV8\"],[[3974,3979],\"valid\"],[[3980,3983],\"valid\"],[[3984,3986],\"valid\"],[[3987,3987],\"mapped\",[3986,4023]],[[3988,3989],\"valid\"],[[3990,3990],\"valid\"],[[3991,3991],\"valid\"],[[3992,3992],\"disallowed\"],[[3993,3996],\"valid\"],[[3997,3997],\"mapped\",[3996,4023]],[[3998,4001],\"valid\"],[[4002,4002],\"mapped\",[4001,4023]],[[4003,4006],\"valid\"],[[4007,4007],\"mapped\",[4006,4023]],[[4008,4011],\"valid\"],[[4012,4012],\"mapped\",[4011,4023]],[[4013,4013],\"valid\"],[[4014,4016],\"valid\"],[[4017,4023],\"valid\"],[[4024,4024],\"valid\"],[[4025,4025],\"mapped\",[3984,4021]],[[4026,4028],\"valid\"],[[4029,4029],\"disallowed\"],[[4030,4037],\"valid\",[],\"NV8\"],[[4038,4038],\"valid\"],[[4039,4044],\"valid\",[],\"NV8\"],[[4045,4045],\"disallowed\"],[[4046,4046],\"valid\",[],\"NV8\"],[[4047,4047],\"valid\",[],\"NV8\"],[[4048,4049],\"valid\",[],\"NV8\"],[[4050,4052],\"valid\",[],\"NV8\"],[[4053,4056],\"valid\",[],\"NV8\"],[[4057,4058],\"valid\",[],\"NV8\"],[[4059,4095],\"disallowed\"],[[4096,4129],\"valid\"],[[4130,4130],\"valid\"],[[4131,4135],\"valid\"],[[4136,4136],\"valid\"],[[4137,4138],\"valid\"],[[4139,4139],\"valid\"],[[4140,4146],\"valid\"],[[4147,4149],\"valid\"],[[4150,4153],\"valid\"],[[4154,4159],\"valid\"],[[4160,4169],\"valid\"],[[4170,4175],\"valid\",[],\"NV8\"],[[4176,4185],\"valid\"],[[4186,4249],\"valid\"],[[4250,4253],\"valid\"],[[4254,4255],\"valid\",[],\"NV8\"],[[4256,4293],\"disallowed\"],[[4294,4294],\"disallowed\"],[[4295,4295],\"mapped\",[11559]],[[4296,4300],\"disallowed\"],[[4301,4301],\"mapped\",[11565]],[[4302,4303],\"disallowed\"],[[4304,4342],\"valid\"],[[4343,4344],\"valid\"],[[4345,4346],\"valid\"],[[4347,4347],\"valid\",[],\"NV8\"],[[4348,4348],\"mapped\",[4316]],[[4349,4351],\"valid\"],[[4352,4441],\"valid\",[],\"NV8\"],[[4442,4446],\"valid\",[],\"NV8\"],[[4447,4448],\"disallowed\"],[[4449,4514],\"valid\",[],\"NV8\"],[[4515,4519],\"valid\",[],\"NV8\"],[[4520,4601],\"valid\",[],\"NV8\"],[[4602,4607],\"valid\",[],\"NV8\"],[[4608,4614],\"valid\"],[[4615,4615],\"valid\"],[[4616,4678],\"valid\"],[[4679,4679],\"valid\"],[[4680,4680],\"valid\"],[[4681,4681],\"disallowed\"],[[4682,4685],\"valid\"],[[4686,4687],\"disallowed\"],[[4688,4694],\"valid\"],[[4695,4695],\"disallowed\"],[[4696,4696],\"valid\"],[[4697,4697],\"disallowed\"],[[4698,4701],\"valid\"],[[4702,4703],\"disallowed\"],[[4704,4742],\"valid\"],[[4743,4743],\"valid\"],[[4744,4744],\"valid\"],[[4745,4745],\"disallowed\"],[[4746,4749],\"valid\"],[[4750,4751],\"disallowed\"],[[4752,4782],\"valid\"],[[4783,4783],\"valid\"],[[4784,4784],\"valid\"],[[4785,4785],\"disallowed\"],[[4786,4789],\"valid\"],[[4790,4791],\"disallowed\"],[[4792,4798],\"valid\"],[[4799,4799],\"disallowed\"],[[4800,4800],\"valid\"],[[4801,4801],\"disallowed\"],[[4802,4805],\"valid\"],[[4806,4807],\"disallowed\"],[[4808,4814],\"valid\"],[[4815,4815],\"valid\"],[[4816,4822],\"valid\"],[[4823,4823],\"disallowed\"],[[4824,4846],\"valid\"],[[4847,4847],\"valid\"],[[4848,4878],\"valid\"],[[4879,4879],\"valid\"],[[4880,4880],\"valid\"],[[4881,4881],\"disallowed\"],[[4882,4885],\"valid\"],[[4886,4887],\"disallowed\"],[[4888,4894],\"valid\"],[[4895,4895],\"valid\"],[[4896,4934],\"valid\"],[[4935,4935],\"valid\"],[[4936,4954],\"valid\"],[[4955,4956],\"disallowed\"],[[4957,4958],\"valid\"],[[4959,4959],\"valid\"],[[4960,4960],\"valid\",[],\"NV8\"],[[4961,4988],\"valid\",[],\"NV8\"],[[4989,4991],\"disallowed\"],[[4992,5007],\"valid\"],[[5008,5017],\"valid\",[],\"NV8\"],[[5018,5023],\"disallowed\"],[[5024,5108],\"valid\"],[[5109,5109],\"valid\"],[[5110,5111],\"disallowed\"],[[5112,5112],\"mapped\",[5104]],[[5113,5113],\"mapped\",[5105]],[[5114,5114],\"mapped\",[5106]],[[5115,5115],\"mapped\",[5107]],[[5116,5116],\"mapped\",[5108]],[[5117,5117],\"mapped\",[5109]],[[5118,5119],\"disallowed\"],[[5120,5120],\"valid\",[],\"NV8\"],[[5121,5740],\"valid\"],[[5741,5742],\"valid\",[],\"NV8\"],[[5743,5750],\"valid\"],[[5751,5759],\"valid\"],[[5760,5760],\"disallowed\"],[[5761,5786],\"valid\"],[[5787,5788],\"valid\",[],\"NV8\"],[[5789,5791],\"disallowed\"],[[5792,5866],\"valid\"],[[5867,5872],\"valid\",[],\"NV8\"],[[5873,5880],\"valid\"],[[5881,5887],\"disallowed\"],[[5888,5900],\"valid\"],[[5901,5901],\"disallowed\"],[[5902,5908],\"valid\"],[[5909,5919],\"disallowed\"],[[5920,5940],\"valid\"],[[5941,5942],\"valid\",[],\"NV8\"],[[5943,5951],\"disallowed\"],[[5952,5971],\"valid\"],[[5972,5983],\"disallowed\"],[[5984,5996],\"valid\"],[[5997,5997],\"disallowed\"],[[5998,6000],\"valid\"],[[6001,6001],\"disallowed\"],[[6002,6003],\"valid\"],[[6004,6015],\"disallowed\"],[[6016,6067],\"valid\"],[[6068,6069],\"disallowed\"],[[6070,6099],\"valid\"],[[6100,6102],\"valid\",[],\"NV8\"],[[6103,6103],\"valid\"],[[6104,6107],\"valid\",[],\"NV8\"],[[6108,6108],\"valid\"],[[6109,6109],\"valid\"],[[6110,6111],\"disallowed\"],[[6112,6121],\"valid\"],[[6122,6127],\"disallowed\"],[[6128,6137],\"valid\",[],\"NV8\"],[[6138,6143],\"disallowed\"],[[6144,6149],\"valid\",[],\"NV8\"],[[6150,6150],\"disallowed\"],[[6151,6154],\"valid\",[],\"NV8\"],[[6155,6157],\"ignored\"],[[6158,6158],\"disallowed\"],[[6159,6159],\"disallowed\"],[[6160,6169],\"valid\"],[[6170,6175],\"disallowed\"],[[6176,6263],\"valid\"],[[6264,6271],\"disallowed\"],[[6272,6313],\"valid\"],[[6314,6314],\"valid\"],[[6315,6319],\"disallowed\"],[[6320,6389],\"valid\"],[[6390,6399],\"disallowed\"],[[6400,6428],\"valid\"],[[6429,6430],\"valid\"],[[6431,6431],\"disallowed\"],[[6432,6443],\"valid\"],[[6444,6447],\"disallowed\"],[[6448,6459],\"valid\"],[[6460,6463],\"disallowed\"],[[6464,6464],\"valid\",[],\"NV8\"],[[6465,6467],\"disallowed\"],[[6468,6469],\"valid\",[],\"NV8\"],[[6470,6509],\"valid\"],[[6510,6511],\"disallowed\"],[[6512,6516],\"valid\"],[[6517,6527],\"disallowed\"],[[6528,6569],\"valid\"],[[6570,6571],\"valid\"],[[6572,6575],\"disallowed\"],[[6576,6601],\"valid\"],[[6602,6607],\"disallowed\"],[[6608,6617],\"valid\"],[[6618,6618],\"valid\",[],\"XV8\"],[[6619,6621],\"disallowed\"],[[6622,6623],\"valid\",[],\"NV8\"],[[6624,6655],\"valid\",[],\"NV8\"],[[6656,6683],\"valid\"],[[6684,6685],\"disallowed\"],[[6686,6687],\"valid\",[],\"NV8\"],[[6688,6750],\"valid\"],[[6751,6751],\"disallowed\"],[[6752,6780],\"valid\"],[[6781,6782],\"disallowed\"],[[6783,6793],\"valid\"],[[6794,6799],\"disallowed\"],[[6800,6809],\"valid\"],[[6810,6815],\"disallowed\"],[[6816,6822],\"valid\",[],\"NV8\"],[[6823,6823],\"valid\"],[[6824,6829],\"valid\",[],\"NV8\"],[[6830,6831],\"disallowed\"],[[6832,6845],\"valid\"],[[6846,6846],\"valid\",[],\"NV8\"],[[6847,6911],\"disallowed\"],[[6912,6987],\"valid\"],[[6988,6991],\"disallowed\"],[[6992,7001],\"valid\"],[[7002,7018],\"valid\",[],\"NV8\"],[[7019,7027],\"valid\"],[[7028,7036],\"valid\",[],\"NV8\"],[[7037,7039],\"disallowed\"],[[7040,7082],\"valid\"],[[7083,7085],\"valid\"],[[7086,7097],\"valid\"],[[7098,7103],\"valid\"],[[7104,7155],\"valid\"],[[7156,7163],\"disallowed\"],[[7164,7167],\"valid\",[],\"NV8\"],[[7168,7223],\"valid\"],[[7224,7226],\"disallowed\"],[[7227,7231],\"valid\",[],\"NV8\"],[[7232,7241],\"valid\"],[[7242,7244],\"disallowed\"],[[7245,7293],\"valid\"],[[7294,7295],\"valid\",[],\"NV8\"],[[7296,7359],\"disallowed\"],[[7360,7367],\"valid\",[],\"NV8\"],[[7368,7375],\"disallowed\"],[[7376,7378],\"valid\"],[[7379,7379],\"valid\",[],\"NV8\"],[[7380,7410],\"valid\"],[[7411,7414],\"valid\"],[[7415,7415],\"disallowed\"],[[7416,7417],\"valid\"],[[7418,7423],\"disallowed\"],[[7424,7467],\"valid\"],[[7468,7468],\"mapped\",[97]],[[7469,7469],\"mapped\",[230]],[[7470,7470],\"mapped\",[98]],[[7471,7471],\"valid\"],[[7472,7472],\"mapped\",[100]],[[7473,7473],\"mapped\",[101]],[[7474,7474],\"mapped\",[477]],[[7475,7475],\"mapped\",[103]],[[7476,7476],\"mapped\",[104]],[[7477,7477],\"mapped\",[105]],[[7478,7478],\"mapped\",[106]],[[7479,7479],\"mapped\",[107]],[[7480,7480],\"mapped\",[108]],[[7481,7481],\"mapped\",[109]],[[7482,7482],\"mapped\",[110]],[[7483,7483],\"valid\"],[[7484,7484],\"mapped\",[111]],[[7485,7485],\"mapped\",[547]],[[7486,7486],\"mapped\",[112]],[[7487,7487],\"mapped\",[114]],[[7488,7488],\"mapped\",[116]],[[7489,7489],\"mapped\",[117]],[[7490,7490],\"mapped\",[119]],[[7491,7491],\"mapped\",[97]],[[7492,7492],\"mapped\",[592]],[[7493,7493],\"mapped\",[593]],[[7494,7494],\"mapped\",[7426]],[[7495,7495],\"mapped\",[98]],[[7496,7496],\"mapped\",[100]],[[7497,7497],\"mapped\",[101]],[[7498,7498],\"mapped\",[601]],[[7499,7499],\"mapped\",[603]],[[7500,7500],\"mapped\",[604]],[[7501,7501],\"mapped\",[103]],[[7502,7502],\"valid\"],[[7503,7503],\"mapped\",[107]],[[7504,7504],\"mapped\",[109]],[[7505,7505],\"mapped\",[331]],[[7506,7506],\"mapped\",[111]],[[7507,7507],\"mapped\",[596]],[[7508,7508],\"mapped\",[7446]],[[7509,7509],\"mapped\",[7447]],[[7510,7510],\"mapped\",[112]],[[7511,7511],\"mapped\",[116]],[[7512,7512],\"mapped\",[117]],[[7513,7513],\"mapped\",[7453]],[[7514,7514],\"mapped\",[623]],[[7515,7515],\"mapped\",[118]],[[7516,7516],\"mapped\",[7461]],[[7517,7517],\"mapped\",[946]],[[7518,7518],\"mapped\",[947]],[[7519,7519],\"mapped\",[948]],[[7520,7520],\"mapped\",[966]],[[7521,7521],\"mapped\",[967]],[[7522,7522],\"mapped\",[105]],[[7523,7523],\"mapped\",[114]],[[7524,7524],\"mapped\",[117]],[[7525,7525],\"mapped\",[118]],[[7526,7526],\"mapped\",[946]],[[7527,7527],\"mapped\",[947]],[[7528,7528],\"mapped\",[961]],[[7529,7529],\"mapped\",[966]],[[7530,7530],\"mapped\",[967]],[[7531,7531],\"valid\"],[[7532,7543],\"valid\"],[[7544,7544],\"mapped\",[1085]],[[7545,7578],\"valid\"],[[7579,7579],\"mapped\",[594]],[[7580,7580],\"mapped\",[99]],[[7581,7581],\"mapped\",[597]],[[7582,7582],\"mapped\",[240]],[[7583,7583],\"mapped\",[604]],[[7584,7584],\"mapped\",[102]],[[7585,7585],\"mapped\",[607]],[[7586,7586],\"mapped\",[609]],[[7587,7587],\"mapped\",[613]],[[7588,7588],\"mapped\",[616]],[[7589,7589],\"mapped\",[617]],[[7590,7590],\"mapped\",[618]],[[7591,7591],\"mapped\",[7547]],[[7592,7592],\"mapped\",[669]],[[7593,7593],\"mapped\",[621]],[[7594,7594],\"mapped\",[7557]],[[7595,7595],\"mapped\",[671]],[[7596,7596],\"mapped\",[625]],[[7597,7597],\"mapped\",[624]],[[7598,7598],\"mapped\",[626]],[[7599,7599],\"mapped\",[627]],[[7600,7600],\"mapped\",[628]],[[7601,7601],\"mapped\",[629]],[[7602,7602],\"mapped\",[632]],[[7603,7603],\"mapped\",[642]],[[7604,7604],\"mapped\",[643]],[[7605,7605],\"mapped\",[427]],[[7606,7606],\"mapped\",[649]],[[7607,7607],\"mapped\",[650]],[[7608,7608],\"mapped\",[7452]],[[7609,7609],\"mapped\",[651]],[[7610,7610],\"mapped\",[652]],[[7611,7611],\"mapped\",[122]],[[7612,7612],\"mapped\",[656]],[[7613,7613],\"mapped\",[657]],[[7614,7614],\"mapped\",[658]],[[7615,7615],\"mapped\",[952]],[[7616,7619],\"valid\"],[[7620,7626],\"valid\"],[[7627,7654],\"valid\"],[[7655,7669],\"valid\"],[[7670,7675],\"disallowed\"],[[7676,7676],\"valid\"],[[7677,7677],\"valid\"],[[7678,7679],\"valid\"],[[7680,7680],\"mapped\",[7681]],[[7681,7681],\"valid\"],[[7682,7682],\"mapped\",[7683]],[[7683,7683],\"valid\"],[[7684,7684],\"mapped\",[7685]],[[7685,7685],\"valid\"],[[7686,7686],\"mapped\",[7687]],[[7687,7687],\"valid\"],[[7688,7688],\"mapped\",[7689]],[[7689,7689],\"valid\"],[[7690,7690],\"mapped\",[7691]],[[7691,7691],\"valid\"],[[7692,7692],\"mapped\",[7693]],[[7693,7693],\"valid\"],[[7694,7694],\"mapped\",[7695]],[[7695,7695],\"valid\"],[[7696,7696],\"mapped\",[7697]],[[7697,7697],\"valid\"],[[7698,7698],\"mapped\",[7699]],[[7699,7699],\"valid\"],[[7700,7700],\"mapped\",[7701]],[[7701,7701],\"valid\"],[[7702,7702],\"mapped\",[7703]],[[7703,7703],\"valid\"],[[7704,7704],\"mapped\",[7705]],[[7705,7705],\"valid\"],[[7706,7706],\"mapped\",[7707]],[[7707,7707],\"valid\"],[[7708,7708],\"mapped\",[7709]],[[7709,7709],\"valid\"],[[7710,7710],\"mapped\",[7711]],[[7711,7711],\"valid\"],[[7712,7712],\"mapped\",[7713]],[[7713,7713],\"valid\"],[[7714,7714],\"mapped\",[7715]],[[7715,7715],\"valid\"],[[7716,7716],\"mapped\",[7717]],[[7717,7717],\"valid\"],[[7718,7718],\"mapped\",[7719]],[[7719,7719],\"valid\"],[[7720,7720],\"mapped\",[7721]],[[7721,7721],\"valid\"],[[7722,7722],\"mapped\",[7723]],[[7723,7723],\"valid\"],[[7724,7724],\"mapped\",[7725]],[[7725,7725],\"valid\"],[[7726,7726],\"mapped\",[7727]],[[7727,7727],\"valid\"],[[7728,7728],\"mapped\",[7729]],[[7729,7729],\"valid\"],[[7730,7730],\"mapped\",[7731]],[[7731,7731],\"valid\"],[[7732,7732],\"mapped\",[7733]],[[7733,7733],\"valid\"],[[7734,7734],\"mapped\",[7735]],[[7735,7735],\"valid\"],[[7736,7736],\"mapped\",[7737]],[[7737,7737],\"valid\"],[[7738,7738],\"mapped\",[7739]],[[7739,7739],\"valid\"],[[7740,7740],\"mapped\",[7741]],[[7741,7741],\"valid\"],[[7742,7742],\"mapped\",[7743]],[[7743,7743],\"valid\"],[[7744,7744],\"mapped\",[7745]],[[7745,7745],\"valid\"],[[7746,7746],\"mapped\",[7747]],[[7747,7747],\"valid\"],[[7748,7748],\"mapped\",[7749]],[[7749,7749],\"valid\"],[[7750,7750],\"mapped\",[7751]],[[7751,7751],\"valid\"],[[7752,7752],\"mapped\",[7753]],[[7753,7753],\"valid\"],[[7754,7754],\"mapped\",[7755]],[[7755,7755],\"valid\"],[[7756,7756],\"mapped\",[7757]],[[7757,7757],\"valid\"],[[7758,7758],\"mapped\",[7759]],[[7759,7759],\"valid\"],[[7760,7760],\"mapped\",[7761]],[[7761,7761],\"valid\"],[[7762,7762],\"mapped\",[7763]],[[7763,7763],\"valid\"],[[7764,7764],\"mapped\",[7765]],[[7765,7765],\"valid\"],[[7766,7766],\"mapped\",[7767]],[[7767,7767],\"valid\"],[[7768,7768],\"mapped\",[7769]],[[7769,7769],\"valid\"],[[7770,7770],\"mapped\",[7771]],[[7771,7771],\"valid\"],[[7772,7772],\"mapped\",[7773]],[[7773,7773],\"valid\"],[[7774,7774],\"mapped\",[7775]],[[7775,7775],\"valid\"],[[7776,7776],\"mapped\",[7777]],[[7777,7777],\"valid\"],[[7778,7778],\"mapped\",[7779]],[[7779,7779],\"valid\"],[[7780,7780],\"mapped\",[7781]],[[7781,7781],\"valid\"],[[7782,7782],\"mapped\",[7783]],[[7783,7783],\"valid\"],[[7784,7784],\"mapped\",[7785]],[[7785,7785],\"valid\"],[[7786,7786],\"mapped\",[7787]],[[7787,7787],\"valid\"],[[7788,7788],\"mapped\",[7789]],[[7789,7789],\"valid\"],[[7790,7790],\"mapped\",[7791]],[[7791,7791],\"valid\"],[[7792,7792],\"mapped\",[7793]],[[7793,7793],\"valid\"],[[7794,7794],\"mapped\",[7795]],[[7795,7795],\"valid\"],[[7796,7796],\"mapped\",[7797]],[[7797,7797],\"valid\"],[[7798,7798],\"mapped\",[7799]],[[7799,7799],\"valid\"],[[7800,7800],\"mapped\",[7801]],[[7801,7801],\"valid\"],[[7802,7802],\"mapped\",[7803]],[[7803,7803],\"valid\"],[[7804,7804],\"mapped\",[7805]],[[7805,7805],\"valid\"],[[7806,7806],\"mapped\",[7807]],[[7807,7807],\"valid\"],[[7808,7808],\"mapped\",[7809]],[[7809,7809],\"valid\"],[[7810,7810],\"mapped\",[7811]],[[7811,7811],\"valid\"],[[7812,7812],\"mapped\",[7813]],[[7813,7813],\"valid\"],[[7814,7814],\"mapped\",[7815]],[[7815,7815],\"valid\"],[[7816,7816],\"mapped\",[7817]],[[7817,7817],\"valid\"],[[7818,7818],\"mapped\",[7819]],[[7819,7819],\"valid\"],[[7820,7820],\"mapped\",[7821]],[[7821,7821],\"valid\"],[[7822,7822],\"mapped\",[7823]],[[7823,7823],\"valid\"],[[7824,7824],\"mapped\",[7825]],[[7825,7825],\"valid\"],[[7826,7826],\"mapped\",[7827]],[[7827,7827],\"valid\"],[[7828,7828],\"mapped\",[7829]],[[7829,7833],\"valid\"],[[7834,7834],\"mapped\",[97,702]],[[7835,7835],\"mapped\",[7777]],[[7836,7837],\"valid\"],[[7838,7838],\"mapped\",[115,115]],[[7839,7839],\"valid\"],[[7840,7840],\"mapped\",[7841]],[[7841,7841],\"valid\"],[[7842,7842],\"mapped\",[7843]],[[7843,7843],\"valid\"],[[7844,7844],\"mapped\",[7845]],[[7845,7845],\"valid\"],[[7846,7846],\"mapped\",[7847]],[[7847,7847],\"valid\"],[[7848,7848],\"mapped\",[7849]],[[7849,7849],\"valid\"],[[7850,7850],\"mapped\",[7851]],[[7851,7851],\"valid\"],[[7852,7852],\"mapped\",[7853]],[[7853,7853],\"valid\"],[[7854,7854],\"mapped\",[7855]],[[7855,7855],\"valid\"],[[7856,7856],\"mapped\",[7857]],[[7857,7857],\"valid\"],[[7858,7858],\"mapped\",[7859]],[[7859,7859],\"valid\"],[[7860,7860],\"mapped\",[7861]],[[7861,7861],\"valid\"],[[7862,7862],\"mapped\",[7863]],[[7863,7863],\"valid\"],[[7864,7864],\"mapped\",[7865]],[[7865,7865],\"valid\"],[[7866,7866],\"mapped\",[7867]],[[7867,7867],\"valid\"],[[7868,7868],\"mapped\",[7869]],[[7869,7869],\"valid\"],[[7870,7870],\"mapped\",[7871]],[[7871,7871],\"valid\"],[[7872,7872],\"mapped\",[7873]],[[7873,7873],\"valid\"],[[7874,7874],\"mapped\",[7875]],[[7875,7875],\"valid\"],[[7876,7876],\"mapped\",[7877]],[[7877,7877],\"valid\"],[[7878,7878],\"mapped\",[7879]],[[7879,7879],\"valid\"],[[7880,7880],\"mapped\",[7881]],[[7881,7881],\"valid\"],[[7882,7882],\"mapped\",[7883]],[[7883,7883],\"valid\"],[[7884,7884],\"mapped\",[7885]],[[7885,7885],\"valid\"],[[7886,7886],\"mapped\",[7887]],[[7887,7887],\"valid\"],[[7888,7888],\"mapped\",[7889]],[[7889,7889],\"valid\"],[[7890,7890],\"mapped\",[7891]],[[7891,7891],\"valid\"],[[7892,7892],\"mapped\",[7893]],[[7893,7893],\"valid\"],[[7894,7894],\"mapped\",[7895]],[[7895,7895],\"valid\"],[[7896,7896],\"mapped\",[7897]],[[7897,7897],\"valid\"],[[7898,7898],\"mapped\",[7899]],[[7899,7899],\"valid\"],[[7900,7900],\"mapped\",[7901]],[[7901,7901],\"valid\"],[[7902,7902],\"mapped\",[7903]],[[7903,7903],\"valid\"],[[7904,7904],\"mapped\",[7905]],[[7905,7905],\"valid\"],[[7906,7906],\"mapped\",[7907]],[[7907,7907],\"valid\"],[[7908,7908],\"mapped\",[7909]],[[7909,7909],\"valid\"],[[7910,7910],\"mapped\",[7911]],[[7911,7911],\"valid\"],[[7912,7912],\"mapped\",[7913]],[[7913,7913],\"valid\"],[[7914,7914],\"mapped\",[7915]],[[7915,7915],\"valid\"],[[7916,7916],\"mapped\",[7917]],[[7917,7917],\"valid\"],[[7918,7918],\"mapped\",[7919]],[[7919,7919],\"valid\"],[[7920,7920],\"mapped\",[7921]],[[7921,7921],\"valid\"],[[7922,7922],\"mapped\",[7923]],[[7923,7923],\"valid\"],[[7924,7924],\"mapped\",[7925]],[[7925,7925],\"valid\"],[[7926,7926],\"mapped\",[7927]],[[7927,7927],\"valid\"],[[7928,7928],\"mapped\",[7929]],[[7929,7929],\"valid\"],[[7930,7930],\"mapped\",[7931]],[[7931,7931],\"valid\"],[[7932,7932],\"mapped\",[7933]],[[7933,7933],\"valid\"],[[7934,7934],\"mapped\",[7935]],[[7935,7935],\"valid\"],[[7936,7943],\"valid\"],[[7944,7944],\"mapped\",[7936]],[[7945,7945],\"mapped\",[7937]],[[7946,7946],\"mapped\",[7938]],[[7947,7947],\"mapped\",[7939]],[[7948,7948],\"mapped\",[7940]],[[7949,7949],\"mapped\",[7941]],[[7950,7950],\"mapped\",[7942]],[[7951,7951],\"mapped\",[7943]],[[7952,7957],\"valid\"],[[7958,7959],\"disallowed\"],[[7960,7960],\"mapped\",[7952]],[[7961,7961],\"mapped\",[7953]],[[7962,7962],\"mapped\",[7954]],[[7963,7963],\"mapped\",[7955]],[[7964,7964],\"mapped\",[7956]],[[7965,7965],\"mapped\",[7957]],[[7966,7967],\"disallowed\"],[[7968,7975],\"valid\"],[[7976,7976],\"mapped\",[7968]],[[7977,7977],\"mapped\",[7969]],[[7978,7978],\"mapped\",[7970]],[[7979,7979],\"mapped\",[7971]],[[7980,7980],\"mapped\",[7972]],[[7981,7981],\"mapped\",[7973]],[[7982,7982],\"mapped\",[7974]],[[7983,7983],\"mapped\",[7975]],[[7984,7991],\"valid\"],[[7992,7992],\"mapped\",[7984]],[[7993,7993],\"mapped\",[7985]],[[7994,7994],\"mapped\",[7986]],[[7995,7995],\"mapped\",[7987]],[[7996,7996],\"mapped\",[7988]],[[7997,7997],\"mapped\",[7989]],[[7998,7998],\"mapped\",[7990]],[[7999,7999],\"mapped\",[7991]],[[8000,8005],\"valid\"],[[8006,8007],\"disallowed\"],[[8008,8008],\"mapped\",[8000]],[[8009,8009],\"mapped\",[8001]],[[8010,8010],\"mapped\",[8002]],[[8011,8011],\"mapped\",[8003]],[[8012,8012],\"mapped\",[8004]],[[8013,8013],\"mapped\",[8005]],[[8014,8015],\"disallowed\"],[[8016,8023],\"valid\"],[[8024,8024],\"disallowed\"],[[8025,8025],\"mapped\",[8017]],[[8026,8026],\"disallowed\"],[[8027,8027],\"mapped\",[8019]],[[8028,8028],\"disallowed\"],[[8029,8029],\"mapped\",[8021]],[[8030,8030],\"disallowed\"],[[8031,8031],\"mapped\",[8023]],[[8032,8039],\"valid\"],[[8040,8040],\"mapped\",[8032]],[[8041,8041],\"mapped\",[8033]],[[8042,8042],\"mapped\",[8034]],[[8043,8043],\"mapped\",[8035]],[[8044,8044],\"mapped\",[8036]],[[8045,8045],\"mapped\",[8037]],[[8046,8046],\"mapped\",[8038]],[[8047,8047],\"mapped\",[8039]],[[8048,8048],\"valid\"],[[8049,8049],\"mapped\",[940]],[[8050,8050],\"valid\"],[[8051,8051],\"mapped\",[941]],[[8052,8052],\"valid\"],[[8053,8053],\"mapped\",[942]],[[8054,8054],\"valid\"],[[8055,8055],\"mapped\",[943]],[[8056,8056],\"valid\"],[[8057,8057],\"mapped\",[972]],[[8058,8058],\"valid\"],[[8059,8059],\"mapped\",[973]],[[8060,8060],\"valid\"],[[8061,8061],\"mapped\",[974]],[[8062,8063],\"disallowed\"],[[8064,8064],\"mapped\",[7936,953]],[[8065,8065],\"mapped\",[7937,953]],[[8066,8066],\"mapped\",[7938,953]],[[8067,8067],\"mapped\",[7939,953]],[[8068,8068],\"mapped\",[7940,953]],[[8069,8069],\"mapped\",[7941,953]],[[8070,8070],\"mapped\",[7942,953]],[[8071,8071],\"mapped\",[7943,953]],[[8072,8072],\"mapped\",[7936,953]],[[8073,8073],\"mapped\",[7937,953]],[[8074,8074],\"mapped\",[7938,953]],[[8075,8075],\"mapped\",[7939,953]],[[8076,8076],\"mapped\",[7940,953]],[[8077,8077],\"mapped\",[7941,953]],[[8078,8078],\"mapped\",[7942,953]],[[8079,8079],\"mapped\",[7943,953]],[[8080,8080],\"mapped\",[7968,953]],[[8081,8081],\"mapped\",[7969,953]],[[8082,8082],\"mapped\",[7970,953]],[[8083,8083],\"mapped\",[7971,953]],[[8084,8084],\"mapped\",[7972,953]],[[8085,8085],\"mapped\",[7973,953]],[[8086,8086],\"mapped\",[7974,953]],[[8087,8087],\"mapped\",[7975,953]],[[8088,8088],\"mapped\",[7968,953]],[[8089,8089],\"mapped\",[7969,953]],[[8090,8090],\"mapped\",[7970,953]],[[8091,8091],\"mapped\",[7971,953]],[[8092,8092],\"mapped\",[7972,953]],[[8093,8093],\"mapped\",[7973,953]],[[8094,8094],\"mapped\",[7974,953]],[[8095,8095],\"mapped\",[7975,953]],[[8096,8096],\"mapped\",[8032,953]],[[8097,8097],\"mapped\",[8033,953]],[[8098,8098],\"mapped\",[8034,953]],[[8099,8099],\"mapped\",[8035,953]],[[8100,8100],\"mapped\",[8036,953]],[[8101,8101],\"mapped\",[8037,953]],[[8102,8102],\"mapped\",[8038,953]],[[8103,8103],\"mapped\",[8039,953]],[[8104,8104],\"mapped\",[8032,953]],[[8105,8105],\"mapped\",[8033,953]],[[8106,8106],\"mapped\",[8034,953]],[[8107,8107],\"mapped\",[8035,953]],[[8108,8108],\"mapped\",[8036,953]],[[8109,8109],\"mapped\",[8037,953]],[[8110,8110],\"mapped\",[8038,953]],[[8111,8111],\"mapped\",[8039,953]],[[8112,8113],\"valid\"],[[8114,8114],\"mapped\",[8048,953]],[[8115,8115],\"mapped\",[945,953]],[[8116,8116],\"mapped\",[940,953]],[[8117,8117],\"disallowed\"],[[8118,8118],\"valid\"],[[8119,8119],\"mapped\",[8118,953]],[[8120,8120],\"mapped\",[8112]],[[8121,8121],\"mapped\",[8113]],[[8122,8122],\"mapped\",[8048]],[[8123,8123],\"mapped\",[940]],[[8124,8124],\"mapped\",[945,953]],[[8125,8125],\"disallowed_STD3_mapped\",[32,787]],[[8126,8126],\"mapped\",[953]],[[8127,8127],\"disallowed_STD3_mapped\",[32,787]],[[8128,8128],\"disallowed_STD3_mapped\",[32,834]],[[8129,8129],\"disallowed_STD3_mapped\",[32,776,834]],[[8130,8130],\"mapped\",[8052,953]],[[8131,8131],\"mapped\",[951,953]],[[8132,8132],\"mapped\",[942,953]],[[8133,8133],\"disallowed\"],[[8134,8134],\"valid\"],[[8135,8135],\"mapped\",[8134,953]],[[8136,8136],\"mapped\",[8050]],[[8137,8137],\"mapped\",[941]],[[8138,8138],\"mapped\",[8052]],[[8139,8139],\"mapped\",[942]],[[8140,8140],\"mapped\",[951,953]],[[8141,8141],\"disallowed_STD3_mapped\",[32,787,768]],[[8142,8142],\"disallowed_STD3_mapped\",[32,787,769]],[[8143,8143],\"disallowed_STD3_mapped\",[32,787,834]],[[8144,8146],\"valid\"],[[8147,8147],\"mapped\",[912]],[[8148,8149],\"disallowed\"],[[8150,8151],\"valid\"],[[8152,8152],\"mapped\",[8144]],[[8153,8153],\"mapped\",[8145]],[[8154,8154],\"mapped\",[8054]],[[8155,8155],\"mapped\",[943]],[[8156,8156],\"disallowed\"],[[8157,8157],\"disallowed_STD3_mapped\",[32,788,768]],[[8158,8158],\"disallowed_STD3_mapped\",[32,788,769]],[[8159,8159],\"disallowed_STD3_mapped\",[32,788,834]],[[8160,8162],\"valid\"],[[8163,8163],\"mapped\",[944]],[[8164,8167],\"valid\"],[[8168,8168],\"mapped\",[8160]],[[8169,8169],\"mapped\",[8161]],[[8170,8170],\"mapped\",[8058]],[[8171,8171],\"mapped\",[973]],[[8172,8172],\"mapped\",[8165]],[[8173,8173],\"disallowed_STD3_mapped\",[32,776,768]],[[8174,8174],\"disallowed_STD3_mapped\",[32,776,769]],[[8175,8175],\"disallowed_STD3_mapped\",[96]],[[8176,8177],\"disallowed\"],[[8178,8178],\"mapped\",[8060,953]],[[8179,8179],\"mapped\",[969,953]],[[8180,8180],\"mapped\",[974,953]],[[8181,8181],\"disallowed\"],[[8182,8182],\"valid\"],[[8183,8183],\"mapped\",[8182,953]],[[8184,8184],\"mapped\",[8056]],[[8185,8185],\"mapped\",[972]],[[8186,8186],\"mapped\",[8060]],[[8187,8187],\"mapped\",[974]],[[8188,8188],\"mapped\",[969,953]],[[8189,8189],\"disallowed_STD3_mapped\",[32,769]],[[8190,8190],\"disallowed_STD3_mapped\",[32,788]],[[8191,8191],\"disallowed\"],[[8192,8202],\"disallowed_STD3_mapped\",[32]],[[8203,8203],\"ignored\"],[[8204,8205],\"deviation\",[]],[[8206,8207],\"disallowed\"],[[8208,8208],\"valid\",[],\"NV8\"],[[8209,8209],\"mapped\",[8208]],[[8210,8214],\"valid\",[],\"NV8\"],[[8215,8215],\"disallowed_STD3_mapped\",[32,819]],[[8216,8227],\"valid\",[],\"NV8\"],[[8228,8230],\"disallowed\"],[[8231,8231],\"valid\",[],\"NV8\"],[[8232,8238],\"disallowed\"],[[8239,8239],\"disallowed_STD3_mapped\",[32]],[[8240,8242],\"valid\",[],\"NV8\"],[[8243,8243],\"mapped\",[8242,8242]],[[8244,8244],\"mapped\",[8242,8242,8242]],[[8245,8245],\"valid\",[],\"NV8\"],[[8246,8246],\"mapped\",[8245,8245]],[[8247,8247],\"mapped\",[8245,8245,8245]],[[8248,8251],\"valid\",[],\"NV8\"],[[8252,8252],\"disallowed_STD3_mapped\",[33,33]],[[8253,8253],\"valid\",[],\"NV8\"],[[8254,8254],\"disallowed_STD3_mapped\",[32,773]],[[8255,8262],\"valid\",[],\"NV8\"],[[8263,8263],\"disallowed_STD3_mapped\",[63,63]],[[8264,8264],\"disallowed_STD3_mapped\",[63,33]],[[8265,8265],\"disallowed_STD3_mapped\",[33,63]],[[8266,8269],\"valid\",[],\"NV8\"],[[8270,8274],\"valid\",[],\"NV8\"],[[8275,8276],\"valid\",[],\"NV8\"],[[8277,8278],\"valid\",[],\"NV8\"],[[8279,8279],\"mapped\",[8242,8242,8242,8242]],[[8280,8286],\"valid\",[],\"NV8\"],[[8287,8287],\"disallowed_STD3_mapped\",[32]],[[8288,8288],\"ignored\"],[[8289,8291],\"disallowed\"],[[8292,8292],\"ignored\"],[[8293,8293],\"disallowed\"],[[8294,8297],\"disallowed\"],[[8298,8303],\"disallowed\"],[[8304,8304],\"mapped\",[48]],[[8305,8305],\"mapped\",[105]],[[8306,8307],\"disallowed\"],[[8308,8308],\"mapped\",[52]],[[8309,8309],\"mapped\",[53]],[[8310,8310],\"mapped\",[54]],[[8311,8311],\"mapped\",[55]],[[8312,8312],\"mapped\",[56]],[[8313,8313],\"mapped\",[57]],[[8314,8314],\"disallowed_STD3_mapped\",[43]],[[8315,8315],\"mapped\",[8722]],[[8316,8316],\"disallowed_STD3_mapped\",[61]],[[8317,8317],\"disallowed_STD3_mapped\",[40]],[[8318,8318],\"disallowed_STD3_mapped\",[41]],[[8319,8319],\"mapped\",[110]],[[8320,8320],\"mapped\",[48]],[[8321,8321],\"mapped\",[49]],[[8322,8322],\"mapped\",[50]],[[8323,8323],\"mapped\",[51]],[[8324,8324],\"mapped\",[52]],[[8325,8325],\"mapped\",[53]],[[8326,8326],\"mapped\",[54]],[[8327,8327],\"mapped\",[55]],[[8328,8328],\"mapped\",[56]],[[8329,8329],\"mapped\",[57]],[[8330,8330],\"disallowed_STD3_mapped\",[43]],[[8331,8331],\"mapped\",[8722]],[[8332,8332],\"disallowed_STD3_mapped\",[61]],[[8333,8333],\"disallowed_STD3_mapped\",[40]],[[8334,8334],\"disallowed_STD3_mapped\",[41]],[[8335,8335],\"disallowed\"],[[8336,8336],\"mapped\",[97]],[[8337,8337],\"mapped\",[101]],[[8338,8338],\"mapped\",[111]],[[8339,8339],\"mapped\",[120]],[[8340,8340],\"mapped\",[601]],[[8341,8341],\"mapped\",[104]],[[8342,8342],\"mapped\",[107]],[[8343,8343],\"mapped\",[108]],[[8344,8344],\"mapped\",[109]],[[8345,8345],\"mapped\",[110]],[[8346,8346],\"mapped\",[112]],[[8347,8347],\"mapped\",[115]],[[8348,8348],\"mapped\",[116]],[[8349,8351],\"disallowed\"],[[8352,8359],\"valid\",[],\"NV8\"],[[8360,8360],\"mapped\",[114,115]],[[8361,8362],\"valid\",[],\"NV8\"],[[8363,8363],\"valid\",[],\"NV8\"],[[8364,8364],\"valid\",[],\"NV8\"],[[8365,8367],\"valid\",[],\"NV8\"],[[8368,8369],\"valid\",[],\"NV8\"],[[8370,8373],\"valid\",[],\"NV8\"],[[8374,8376],\"valid\",[],\"NV8\"],[[8377,8377],\"valid\",[],\"NV8\"],[[8378,8378],\"valid\",[],\"NV8\"],[[8379,8381],\"valid\",[],\"NV8\"],[[8382,8382],\"valid\",[],\"NV8\"],[[8383,8399],\"disallowed\"],[[8400,8417],\"valid\",[],\"NV8\"],[[8418,8419],\"valid\",[],\"NV8\"],[[8420,8426],\"valid\",[],\"NV8\"],[[8427,8427],\"valid\",[],\"NV8\"],[[8428,8431],\"valid\",[],\"NV8\"],[[8432,8432],\"valid\",[],\"NV8\"],[[8433,8447],\"disallowed\"],[[8448,8448],\"disallowed_STD3_mapped\",[97,47,99]],[[8449,8449],\"disallowed_STD3_mapped\",[97,47,115]],[[8450,8450],\"mapped\",[99]],[[8451,8451],\"mapped\",[176,99]],[[8452,8452],\"valid\",[],\"NV8\"],[[8453,8453],\"disallowed_STD3_mapped\",[99,47,111]],[[8454,8454],\"disallowed_STD3_mapped\",[99,47,117]],[[8455,8455],\"mapped\",[603]],[[8456,8456],\"valid\",[],\"NV8\"],[[8457,8457],\"mapped\",[176,102]],[[8458,8458],\"mapped\",[103]],[[8459,8462],\"mapped\",[104]],[[8463,8463],\"mapped\",[295]],[[8464,8465],\"mapped\",[105]],[[8466,8467],\"mapped\",[108]],[[8468,8468],\"valid\",[],\"NV8\"],[[8469,8469],\"mapped\",[110]],[[8470,8470],\"mapped\",[110,111]],[[8471,8472],\"valid\",[],\"NV8\"],[[8473,8473],\"mapped\",[112]],[[8474,8474],\"mapped\",[113]],[[8475,8477],\"mapped\",[114]],[[8478,8479],\"valid\",[],\"NV8\"],[[8480,8480],\"mapped\",[115,109]],[[8481,8481],\"mapped\",[116,101,108]],[[8482,8482],\"mapped\",[116,109]],[[8483,8483],\"valid\",[],\"NV8\"],[[8484,8484],\"mapped\",[122]],[[8485,8485],\"valid\",[],\"NV8\"],[[8486,8486],\"mapped\",[969]],[[8487,8487],\"valid\",[],\"NV8\"],[[8488,8488],\"mapped\",[122]],[[8489,8489],\"valid\",[],\"NV8\"],[[8490,8490],\"mapped\",[107]],[[8491,8491],\"mapped\",[229]],[[8492,8492],\"mapped\",[98]],[[8493,8493],\"mapped\",[99]],[[8494,8494],\"valid\",[],\"NV8\"],[[8495,8496],\"mapped\",[101]],[[8497,8497],\"mapped\",[102]],[[8498,8498],\"disallowed\"],[[8499,8499],\"mapped\",[109]],[[8500,8500],\"mapped\",[111]],[[8501,8501],\"mapped\",[1488]],[[8502,8502],\"mapped\",[1489]],[[8503,8503],\"mapped\",[1490]],[[8504,8504],\"mapped\",[1491]],[[8505,8505],\"mapped\",[105]],[[8506,8506],\"valid\",[],\"NV8\"],[[8507,8507],\"mapped\",[102,97,120]],[[8508,8508],\"mapped\",[960]],[[8509,8510],\"mapped\",[947]],[[8511,8511],\"mapped\",[960]],[[8512,8512],\"mapped\",[8721]],[[8513,8516],\"valid\",[],\"NV8\"],[[8517,8518],\"mapped\",[100]],[[8519,8519],\"mapped\",[101]],[[8520,8520],\"mapped\",[105]],[[8521,8521],\"mapped\",[106]],[[8522,8523],\"valid\",[],\"NV8\"],[[8524,8524],\"valid\",[],\"NV8\"],[[8525,8525],\"valid\",[],\"NV8\"],[[8526,8526],\"valid\"],[[8527,8527],\"valid\",[],\"NV8\"],[[8528,8528],\"mapped\",[49,8260,55]],[[8529,8529],\"mapped\",[49,8260,57]],[[8530,8530],\"mapped\",[49,8260,49,48]],[[8531,8531],\"mapped\",[49,8260,51]],[[8532,8532],\"mapped\",[50,8260,51]],[[8533,8533],\"mapped\",[49,8260,53]],[[8534,8534],\"mapped\",[50,8260,53]],[[8535,8535],\"mapped\",[51,8260,53]],[[8536,8536],\"mapped\",[52,8260,53]],[[8537,8537],\"mapped\",[49,8260,54]],[[8538,8538],\"mapped\",[53,8260,54]],[[8539,8539],\"mapped\",[49,8260,56]],[[8540,8540],\"mapped\",[51,8260,56]],[[8541,8541],\"mapped\",[53,8260,56]],[[8542,8542],\"mapped\",[55,8260,56]],[[8543,8543],\"mapped\",[49,8260]],[[8544,8544],\"mapped\",[105]],[[8545,8545],\"mapped\",[105,105]],[[8546,8546],\"mapped\",[105,105,105]],[[8547,8547],\"mapped\",[105,118]],[[8548,8548],\"mapped\",[118]],[[8549,8549],\"mapped\",[118,105]],[[8550,8550],\"mapped\",[118,105,105]],[[8551,8551],\"mapped\",[118,105,105,105]],[[8552,8552],\"mapped\",[105,120]],[[8553,8553],\"mapped\",[120]],[[8554,8554],\"mapped\",[120,105]],[[8555,8555],\"mapped\",[120,105,105]],[[8556,8556],\"mapped\",[108]],[[8557,8557],\"mapped\",[99]],[[8558,8558],\"mapped\",[100]],[[8559,8559],\"mapped\",[109]],[[8560,8560],\"mapped\",[105]],[[8561,8561],\"mapped\",[105,105]],[[8562,8562],\"mapped\",[105,105,105]],[[8563,8563],\"mapped\",[105,118]],[[8564,8564],\"mapped\",[118]],[[8565,8565],\"mapped\",[118,105]],[[8566,8566],\"mapped\",[118,105,105]],[[8567,8567],\"mapped\",[118,105,105,105]],[[8568,8568],\"mapped\",[105,120]],[[8569,8569],\"mapped\",[120]],[[8570,8570],\"mapped\",[120,105]],[[8571,8571],\"mapped\",[120,105,105]],[[8572,8572],\"mapped\",[108]],[[8573,8573],\"mapped\",[99]],[[8574,8574],\"mapped\",[100]],[[8575,8575],\"mapped\",[109]],[[8576,8578],\"valid\",[],\"NV8\"],[[8579,8579],\"disallowed\"],[[8580,8580],\"valid\"],[[8581,8584],\"valid\",[],\"NV8\"],[[8585,8585],\"mapped\",[48,8260,51]],[[8586,8587],\"valid\",[],\"NV8\"],[[8588,8591],\"disallowed\"],[[8592,8682],\"valid\",[],\"NV8\"],[[8683,8691],\"valid\",[],\"NV8\"],[[8692,8703],\"valid\",[],\"NV8\"],[[8704,8747],\"valid\",[],\"NV8\"],[[8748,8748],\"mapped\",[8747,8747]],[[8749,8749],\"mapped\",[8747,8747,8747]],[[8750,8750],\"valid\",[],\"NV8\"],[[8751,8751],\"mapped\",[8750,8750]],[[8752,8752],\"mapped\",[8750,8750,8750]],[[8753,8799],\"valid\",[],\"NV8\"],[[8800,8800],\"disallowed_STD3_valid\"],[[8801,8813],\"valid\",[],\"NV8\"],[[8814,8815],\"disallowed_STD3_valid\"],[[8816,8945],\"valid\",[],\"NV8\"],[[8946,8959],\"valid\",[],\"NV8\"],[[8960,8960],\"valid\",[],\"NV8\"],[[8961,8961],\"valid\",[],\"NV8\"],[[8962,9000],\"valid\",[],\"NV8\"],[[9001,9001],\"mapped\",[12296]],[[9002,9002],\"mapped\",[12297]],[[9003,9082],\"valid\",[],\"NV8\"],[[9083,9083],\"valid\",[],\"NV8\"],[[9084,9084],\"valid\",[],\"NV8\"],[[9085,9114],\"valid\",[],\"NV8\"],[[9115,9166],\"valid\",[],\"NV8\"],[[9167,9168],\"valid\",[],\"NV8\"],[[9169,9179],\"valid\",[],\"NV8\"],[[9180,9191],\"valid\",[],\"NV8\"],[[9192,9192],\"valid\",[],\"NV8\"],[[9193,9203],\"valid\",[],\"NV8\"],[[9204,9210],\"valid\",[],\"NV8\"],[[9211,9215],\"disallowed\"],[[9216,9252],\"valid\",[],\"NV8\"],[[9253,9254],\"valid\",[],\"NV8\"],[[9255,9279],\"disallowed\"],[[9280,9290],\"valid\",[],\"NV8\"],[[9291,9311],\"disallowed\"],[[9312,9312],\"mapped\",[49]],[[9313,9313],\"mapped\",[50]],[[9314,9314],\"mapped\",[51]],[[9315,9315],\"mapped\",[52]],[[9316,9316],\"mapped\",[53]],[[9317,9317],\"mapped\",[54]],[[9318,9318],\"mapped\",[55]],[[9319,9319],\"mapped\",[56]],[[9320,9320],\"mapped\",[57]],[[9321,9321],\"mapped\",[49,48]],[[9322,9322],\"mapped\",[49,49]],[[9323,9323],\"mapped\",[49,50]],[[9324,9324],\"mapped\",[49,51]],[[9325,9325],\"mapped\",[49,52]],[[9326,9326],\"mapped\",[49,53]],[[9327,9327],\"mapped\",[49,54]],[[9328,9328],\"mapped\",[49,55]],[[9329,9329],\"mapped\",[49,56]],[[9330,9330],\"mapped\",[49,57]],[[9331,9331],\"mapped\",[50,48]],[[9332,9332],\"disallowed_STD3_mapped\",[40,49,41]],[[9333,9333],\"disallowed_STD3_mapped\",[40,50,41]],[[9334,9334],\"disallowed_STD3_mapped\",[40,51,41]],[[9335,9335],\"disallowed_STD3_mapped\",[40,52,41]],[[9336,9336],\"disallowed_STD3_mapped\",[40,53,41]],[[9337,9337],\"disallowed_STD3_mapped\",[40,54,41]],[[9338,9338],\"disallowed_STD3_mapped\",[40,55,41]],[[9339,9339],\"disallowed_STD3_mapped\",[40,56,41]],[[9340,9340],\"disallowed_STD3_mapped\",[40,57,41]],[[9341,9341],\"disallowed_STD3_mapped\",[40,49,48,41]],[[9342,9342],\"disallowed_STD3_mapped\",[40,49,49,41]],[[9343,9343],\"disallowed_STD3_mapped\",[40,49,50,41]],[[9344,9344],\"disallowed_STD3_mapped\",[40,49,51,41]],[[9345,9345],\"disallowed_STD3_mapped\",[40,49,52,41]],[[9346,9346],\"disallowed_STD3_mapped\",[40,49,53,41]],[[9347,9347],\"disallowed_STD3_mapped\",[40,49,54,41]],[[9348,9348],\"disallowed_STD3_mapped\",[40,49,55,41]],[[9349,9349],\"disallowed_STD3_mapped\",[40,49,56,41]],[[9350,9350],\"disallowed_STD3_mapped\",[40,49,57,41]],[[9351,9351],\"disallowed_STD3_mapped\",[40,50,48,41]],[[9352,9371],\"disallowed\"],[[9372,9372],\"disallowed_STD3_mapped\",[40,97,41]],[[9373,9373],\"disallowed_STD3_mapped\",[40,98,41]],[[9374,9374],\"disallowed_STD3_mapped\",[40,99,41]],[[9375,9375],\"disallowed_STD3_mapped\",[40,100,41]],[[9376,9376],\"disallowed_STD3_mapped\",[40,101,41]],[[9377,9377],\"disallowed_STD3_mapped\",[40,102,41]],[[9378,9378],\"disallowed_STD3_mapped\",[40,103,41]],[[9379,9379],\"disallowed_STD3_mapped\",[40,104,41]],[[9380,9380],\"disallowed_STD3_mapped\",[40,105,41]],[[9381,9381],\"disallowed_STD3_mapped\",[40,106,41]],[[9382,9382],\"disallowed_STD3_mapped\",[40,107,41]],[[9383,9383],\"disallowed_STD3_mapped\",[40,108,41]],[[9384,9384],\"disallowed_STD3_mapped\",[40,109,41]],[[9385,9385],\"disallowed_STD3_mapped\",[40,110,41]],[[9386,9386],\"disallowed_STD3_mapped\",[40,111,41]],[[9387,9387],\"disallowed_STD3_mapped\",[40,112,41]],[[9388,9388],\"disallowed_STD3_mapped\",[40,113,41]],[[9389,9389],\"disallowed_STD3_mapped\",[40,114,41]],[[9390,9390],\"disallowed_STD3_mapped\",[40,115,41]],[[9391,9391],\"disallowed_STD3_mapped\",[40,116,41]],[[9392,9392],\"disallowed_STD3_mapped\",[40,117,41]],[[9393,9393],\"disallowed_STD3_mapped\",[40,118,41]],[[9394,9394],\"disallowed_STD3_mapped\",[40,119,41]],[[9395,9395],\"disallowed_STD3_mapped\",[40,120,41]],[[9396,9396],\"disallowed_STD3_mapped\",[40,121,41]],[[9397,9397],\"disallowed_STD3_mapped\",[40,122,41]],[[9398,9398],\"mapped\",[97]],[[9399,9399],\"mapped\",[98]],[[9400,9400],\"mapped\",[99]],[[9401,9401],\"mapped\",[100]],[[9402,9402],\"mapped\",[101]],[[9403,9403],\"mapped\",[102]],[[9404,9404],\"mapped\",[103]],[[9405,9405],\"mapped\",[104]],[[9406,9406],\"mapped\",[105]],[[9407,9407],\"mapped\",[106]],[[9408,9408],\"mapped\",[107]],[[9409,9409],\"mapped\",[108]],[[9410,9410],\"mapped\",[109]],[[9411,9411],\"mapped\",[110]],[[9412,9412],\"mapped\",[111]],[[9413,9413],\"mapped\",[112]],[[9414,9414],\"mapped\",[113]],[[9415,9415],\"mapped\",[114]],[[9416,9416],\"mapped\",[115]],[[9417,9417],\"mapped\",[116]],[[9418,9418],\"mapped\",[117]],[[9419,9419],\"mapped\",[118]],[[9420,9420],\"mapped\",[119]],[[9421,9421],\"mapped\",[120]],[[9422,9422],\"mapped\",[121]],[[9423,9423],\"mapped\",[122]],[[9424,9424],\"mapped\",[97]],[[9425,9425],\"mapped\",[98]],[[9426,9426],\"mapped\",[99]],[[9427,9427],\"mapped\",[100]],[[9428,9428],\"mapped\",[101]],[[9429,9429],\"mapped\",[102]],[[9430,9430],\"mapped\",[103]],[[9431,9431],\"mapped\",[104]],[[9432,9432],\"mapped\",[105]],[[9433,9433],\"mapped\",[106]],[[9434,9434],\"mapped\",[107]],[[9435,9435],\"mapped\",[108]],[[9436,9436],\"mapped\",[109]],[[9437,9437],\"mapped\",[110]],[[9438,9438],\"mapped\",[111]],[[9439,9439],\"mapped\",[112]],[[9440,9440],\"mapped\",[113]],[[9441,9441],\"mapped\",[114]],[[9442,9442],\"mapped\",[115]],[[9443,9443],\"mapped\",[116]],[[9444,9444],\"mapped\",[117]],[[9445,9445],\"mapped\",[118]],[[9446,9446],\"mapped\",[119]],[[9447,9447],\"mapped\",[120]],[[9448,9448],\"mapped\",[121]],[[9449,9449],\"mapped\",[122]],[[9450,9450],\"mapped\",[48]],[[9451,9470],\"valid\",[],\"NV8\"],[[9471,9471],\"valid\",[],\"NV8\"],[[9472,9621],\"valid\",[],\"NV8\"],[[9622,9631],\"valid\",[],\"NV8\"],[[9632,9711],\"valid\",[],\"NV8\"],[[9712,9719],\"valid\",[],\"NV8\"],[[9720,9727],\"valid\",[],\"NV8\"],[[9728,9747],\"valid\",[],\"NV8\"],[[9748,9749],\"valid\",[],\"NV8\"],[[9750,9751],\"valid\",[],\"NV8\"],[[9752,9752],\"valid\",[],\"NV8\"],[[9753,9753],\"valid\",[],\"NV8\"],[[9754,9839],\"valid\",[],\"NV8\"],[[9840,9841],\"valid\",[],\"NV8\"],[[9842,9853],\"valid\",[],\"NV8\"],[[9854,9855],\"valid\",[],\"NV8\"],[[9856,9865],\"valid\",[],\"NV8\"],[[9866,9873],\"valid\",[],\"NV8\"],[[9874,9884],\"valid\",[],\"NV8\"],[[9885,9885],\"valid\",[],\"NV8\"],[[9886,9887],\"valid\",[],\"NV8\"],[[9888,9889],\"valid\",[],\"NV8\"],[[9890,9905],\"valid\",[],\"NV8\"],[[9906,9906],\"valid\",[],\"NV8\"],[[9907,9916],\"valid\",[],\"NV8\"],[[9917,9919],\"valid\",[],\"NV8\"],[[9920,9923],\"valid\",[],\"NV8\"],[[9924,9933],\"valid\",[],\"NV8\"],[[9934,9934],\"valid\",[],\"NV8\"],[[9935,9953],\"valid\",[],\"NV8\"],[[9954,9954],\"valid\",[],\"NV8\"],[[9955,9955],\"valid\",[],\"NV8\"],[[9956,9959],\"valid\",[],\"NV8\"],[[9960,9983],\"valid\",[],\"NV8\"],[[9984,9984],\"valid\",[],\"NV8\"],[[9985,9988],\"valid\",[],\"NV8\"],[[9989,9989],\"valid\",[],\"NV8\"],[[9990,9993],\"valid\",[],\"NV8\"],[[9994,9995],\"valid\",[],\"NV8\"],[[9996,10023],\"valid\",[],\"NV8\"],[[10024,10024],\"valid\",[],\"NV8\"],[[10025,10059],\"valid\",[],\"NV8\"],[[10060,10060],\"valid\",[],\"NV8\"],[[10061,10061],\"valid\",[],\"NV8\"],[[10062,10062],\"valid\",[],\"NV8\"],[[10063,10066],\"valid\",[],\"NV8\"],[[10067,10069],\"valid\",[],\"NV8\"],[[10070,10070],\"valid\",[],\"NV8\"],[[10071,10071],\"valid\",[],\"NV8\"],[[10072,10078],\"valid\",[],\"NV8\"],[[10079,10080],\"valid\",[],\"NV8\"],[[10081,10087],\"valid\",[],\"NV8\"],[[10088,10101],\"valid\",[],\"NV8\"],[[10102,10132],\"valid\",[],\"NV8\"],[[10133,10135],\"valid\",[],\"NV8\"],[[10136,10159],\"valid\",[],\"NV8\"],[[10160,10160],\"valid\",[],\"NV8\"],[[10161,10174],\"valid\",[],\"NV8\"],[[10175,10175],\"valid\",[],\"NV8\"],[[10176,10182],\"valid\",[],\"NV8\"],[[10183,10186],\"valid\",[],\"NV8\"],[[10187,10187],\"valid\",[],\"NV8\"],[[10188,10188],\"valid\",[],\"NV8\"],[[10189,10189],\"valid\",[],\"NV8\"],[[10190,10191],\"valid\",[],\"NV8\"],[[10192,10219],\"valid\",[],\"NV8\"],[[10220,10223],\"valid\",[],\"NV8\"],[[10224,10239],\"valid\",[],\"NV8\"],[[10240,10495],\"valid\",[],\"NV8\"],[[10496,10763],\"valid\",[],\"NV8\"],[[10764,10764],\"mapped\",[8747,8747,8747,8747]],[[10765,10867],\"valid\",[],\"NV8\"],[[10868,10868],\"disallowed_STD3_mapped\",[58,58,61]],[[10869,10869],\"disallowed_STD3_mapped\",[61,61]],[[10870,10870],\"disallowed_STD3_mapped\",[61,61,61]],[[10871,10971],\"valid\",[],\"NV8\"],[[10972,10972],\"mapped\",[10973,824]],[[10973,11007],\"valid\",[],\"NV8\"],[[11008,11021],\"valid\",[],\"NV8\"],[[11022,11027],\"valid\",[],\"NV8\"],[[11028,11034],\"valid\",[],\"NV8\"],[[11035,11039],\"valid\",[],\"NV8\"],[[11040,11043],\"valid\",[],\"NV8\"],[[11044,11084],\"valid\",[],\"NV8\"],[[11085,11087],\"valid\",[],\"NV8\"],[[11088,11092],\"valid\",[],\"NV8\"],[[11093,11097],\"valid\",[],\"NV8\"],[[11098,11123],\"valid\",[],\"NV8\"],[[11124,11125],\"disallowed\"],[[11126,11157],\"valid\",[],\"NV8\"],[[11158,11159],\"disallowed\"],[[11160,11193],\"valid\",[],\"NV8\"],[[11194,11196],\"disallowed\"],[[11197,11208],\"valid\",[],\"NV8\"],[[11209,11209],\"disallowed\"],[[11210,11217],\"valid\",[],\"NV8\"],[[11218,11243],\"disallowed\"],[[11244,11247],\"valid\",[],\"NV8\"],[[11248,11263],\"disallowed\"],[[11264,11264],\"mapped\",[11312]],[[11265,11265],\"mapped\",[11313]],[[11266,11266],\"mapped\",[11314]],[[11267,11267],\"mapped\",[11315]],[[11268,11268],\"mapped\",[11316]],[[11269,11269],\"mapped\",[11317]],[[11270,11270],\"mapped\",[11318]],[[11271,11271],\"mapped\",[11319]],[[11272,11272],\"mapped\",[11320]],[[11273,11273],\"mapped\",[11321]],[[11274,11274],\"mapped\",[11322]],[[11275,11275],\"mapped\",[11323]],[[11276,11276],\"mapped\",[11324]],[[11277,11277],\"mapped\",[11325]],[[11278,11278],\"mapped\",[11326]],[[11279,11279],\"mapped\",[11327]],[[11280,11280],\"mapped\",[11328]],[[11281,11281],\"mapped\",[11329]],[[11282,11282],\"mapped\",[11330]],[[11283,11283],\"mapped\",[11331]],[[11284,11284],\"mapped\",[11332]],[[11285,11285],\"mapped\",[11333]],[[11286,11286],\"mapped\",[11334]],[[11287,11287],\"mapped\",[11335]],[[11288,11288],\"mapped\",[11336]],[[11289,11289],\"mapped\",[11337]],[[11290,11290],\"mapped\",[11338]],[[11291,11291],\"mapped\",[11339]],[[11292,11292],\"mapped\",[11340]],[[11293,11293],\"mapped\",[11341]],[[11294,11294],\"mapped\",[11342]],[[11295,11295],\"mapped\",[11343]],[[11296,11296],\"mapped\",[11344]],[[11297,11297],\"mapped\",[11345]],[[11298,11298],\"mapped\",[11346]],[[11299,11299],\"mapped\",[11347]],[[11300,11300],\"mapped\",[11348]],[[11301,11301],\"mapped\",[11349]],[[11302,11302],\"mapped\",[11350]],[[11303,11303],\"mapped\",[11351]],[[11304,11304],\"mapped\",[11352]],[[11305,11305],\"mapped\",[11353]],[[11306,11306],\"mapped\",[11354]],[[11307,11307],\"mapped\",[11355]],[[11308,11308],\"mapped\",[11356]],[[11309,11309],\"mapped\",[11357]],[[11310,11310],\"mapped\",[11358]],[[11311,11311],\"disallowed\"],[[11312,11358],\"valid\"],[[11359,11359],\"disallowed\"],[[11360,11360],\"mapped\",[11361]],[[11361,11361],\"valid\"],[[11362,11362],\"mapped\",[619]],[[11363,11363],\"mapped\",[7549]],[[11364,11364],\"mapped\",[637]],[[11365,11366],\"valid\"],[[11367,11367],\"mapped\",[11368]],[[11368,11368],\"valid\"],[[11369,11369],\"mapped\",[11370]],[[11370,11370],\"valid\"],[[11371,11371],\"mapped\",[11372]],[[11372,11372],\"valid\"],[[11373,11373],\"mapped\",[593]],[[11374,11374],\"mapped\",[625]],[[11375,11375],\"mapped\",[592]],[[11376,11376],\"mapped\",[594]],[[11377,11377],\"valid\"],[[11378,11378],\"mapped\",[11379]],[[11379,11379],\"valid\"],[[11380,11380],\"valid\"],[[11381,11381],\"mapped\",[11382]],[[11382,11383],\"valid\"],[[11384,11387],\"valid\"],[[11388,11388],\"mapped\",[106]],[[11389,11389],\"mapped\",[118]],[[11390,11390],\"mapped\",[575]],[[11391,11391],\"mapped\",[576]],[[11392,11392],\"mapped\",[11393]],[[11393,11393],\"valid\"],[[11394,11394],\"mapped\",[11395]],[[11395,11395],\"valid\"],[[11396,11396],\"mapped\",[11397]],[[11397,11397],\"valid\"],[[11398,11398],\"mapped\",[11399]],[[11399,11399],\"valid\"],[[11400,11400],\"mapped\",[11401]],[[11401,11401],\"valid\"],[[11402,11402],\"mapped\",[11403]],[[11403,11403],\"valid\"],[[11404,11404],\"mapped\",[11405]],[[11405,11405],\"valid\"],[[11406,11406],\"mapped\",[11407]],[[11407,11407],\"valid\"],[[11408,11408],\"mapped\",[11409]],[[11409,11409],\"valid\"],[[11410,11410],\"mapped\",[11411]],[[11411,11411],\"valid\"],[[11412,11412],\"mapped\",[11413]],[[11413,11413],\"valid\"],[[11414,11414],\"mapped\",[11415]],[[11415,11415],\"valid\"],[[11416,11416],\"mapped\",[11417]],[[11417,11417],\"valid\"],[[11418,11418],\"mapped\",[11419]],[[11419,11419],\"valid\"],[[11420,11420],\"mapped\",[11421]],[[11421,11421],\"valid\"],[[11422,11422],\"mapped\",[11423]],[[11423,11423],\"valid\"],[[11424,11424],\"mapped\",[11425]],[[11425,11425],\"valid\"],[[11426,11426],\"mapped\",[11427]],[[11427,11427],\"valid\"],[[11428,11428],\"mapped\",[11429]],[[11429,11429],\"valid\"],[[11430,11430],\"mapped\",[11431]],[[11431,11431],\"valid\"],[[11432,11432],\"mapped\",[11433]],[[11433,11433],\"valid\"],[[11434,11434],\"mapped\",[11435]],[[11435,11435],\"valid\"],[[11436,11436],\"mapped\",[11437]],[[11437,11437],\"valid\"],[[11438,11438],\"mapped\",[11439]],[[11439,11439],\"valid\"],[[11440,11440],\"mapped\",[11441]],[[11441,11441],\"valid\"],[[11442,11442],\"mapped\",[11443]],[[11443,11443],\"valid\"],[[11444,11444],\"mapped\",[11445]],[[11445,11445],\"valid\"],[[11446,11446],\"mapped\",[11447]],[[11447,11447],\"valid\"],[[11448,11448],\"mapped\",[11449]],[[11449,11449],\"valid\"],[[11450,11450],\"mapped\",[11451]],[[11451,11451],\"valid\"],[[11452,11452],\"mapped\",[11453]],[[11453,11453],\"valid\"],[[11454,11454],\"mapped\",[11455]],[[11455,11455],\"valid\"],[[11456,11456],\"mapped\",[11457]],[[11457,11457],\"valid\"],[[11458,11458],\"mapped\",[11459]],[[11459,11459],\"valid\"],[[11460,11460],\"mapped\",[11461]],[[11461,11461],\"valid\"],[[11462,11462],\"mapped\",[11463]],[[11463,11463],\"valid\"],[[11464,11464],\"mapped\",[11465]],[[11465,11465],\"valid\"],[[11466,11466],\"mapped\",[11467]],[[11467,11467],\"valid\"],[[11468,11468],\"mapped\",[11469]],[[11469,11469],\"valid\"],[[11470,11470],\"mapped\",[11471]],[[11471,11471],\"valid\"],[[11472,11472],\"mapped\",[11473]],[[11473,11473],\"valid\"],[[11474,11474],\"mapped\",[11475]],[[11475,11475],\"valid\"],[[11476,11476],\"mapped\",[11477]],[[11477,11477],\"valid\"],[[11478,11478],\"mapped\",[11479]],[[11479,11479],\"valid\"],[[11480,11480],\"mapped\",[11481]],[[11481,11481],\"valid\"],[[11482,11482],\"mapped\",[11483]],[[11483,11483],\"valid\"],[[11484,11484],\"mapped\",[11485]],[[11485,11485],\"valid\"],[[11486,11486],\"mapped\",[11487]],[[11487,11487],\"valid\"],[[11488,11488],\"mapped\",[11489]],[[11489,11489],\"valid\"],[[11490,11490],\"mapped\",[11491]],[[11491,11492],\"valid\"],[[11493,11498],\"valid\",[],\"NV8\"],[[11499,11499],\"mapped\",[11500]],[[11500,11500],\"valid\"],[[11501,11501],\"mapped\",[11502]],[[11502,11505],\"valid\"],[[11506,11506],\"mapped\",[11507]],[[11507,11507],\"valid\"],[[11508,11512],\"disallowed\"],[[11513,11519],\"valid\",[],\"NV8\"],[[11520,11557],\"valid\"],[[11558,11558],\"disallowed\"],[[11559,11559],\"valid\"],[[11560,11564],\"disallowed\"],[[11565,11565],\"valid\"],[[11566,11567],\"disallowed\"],[[11568,11621],\"valid\"],[[11622,11623],\"valid\"],[[11624,11630],\"disallowed\"],[[11631,11631],\"mapped\",[11617]],[[11632,11632],\"valid\",[],\"NV8\"],[[11633,11646],\"disallowed\"],[[11647,11647],\"valid\"],[[11648,11670],\"valid\"],[[11671,11679],\"disallowed\"],[[11680,11686],\"valid\"],[[11687,11687],\"disallowed\"],[[11688,11694],\"valid\"],[[11695,11695],\"disallowed\"],[[11696,11702],\"valid\"],[[11703,11703],\"disallowed\"],[[11704,11710],\"valid\"],[[11711,11711],\"disallowed\"],[[11712,11718],\"valid\"],[[11719,11719],\"disallowed\"],[[11720,11726],\"valid\"],[[11727,11727],\"disallowed\"],[[11728,11734],\"valid\"],[[11735,11735],\"disallowed\"],[[11736,11742],\"valid\"],[[11743,11743],\"disallowed\"],[[11744,11775],\"valid\"],[[11776,11799],\"valid\",[],\"NV8\"],[[11800,11803],\"valid\",[],\"NV8\"],[[11804,11805],\"valid\",[],\"NV8\"],[[11806,11822],\"valid\",[],\"NV8\"],[[11823,11823],\"valid\"],[[11824,11824],\"valid\",[],\"NV8\"],[[11825,11825],\"valid\",[],\"NV8\"],[[11826,11835],\"valid\",[],\"NV8\"],[[11836,11842],\"valid\",[],\"NV8\"],[[11843,11903],\"disallowed\"],[[11904,11929],\"valid\",[],\"NV8\"],[[11930,11930],\"disallowed\"],[[11931,11934],\"valid\",[],\"NV8\"],[[11935,11935],\"mapped\",[27597]],[[11936,12018],\"valid\",[],\"NV8\"],[[12019,12019],\"mapped\",[40863]],[[12020,12031],\"disallowed\"],[[12032,12032],\"mapped\",[19968]],[[12033,12033],\"mapped\",[20008]],[[12034,12034],\"mapped\",[20022]],[[12035,12035],\"mapped\",[20031]],[[12036,12036],\"mapped\",[20057]],[[12037,12037],\"mapped\",[20101]],[[12038,12038],\"mapped\",[20108]],[[12039,12039],\"mapped\",[20128]],[[12040,12040],\"mapped\",[20154]],[[12041,12041],\"mapped\",[20799]],[[12042,12042],\"mapped\",[20837]],[[12043,12043],\"mapped\",[20843]],[[12044,12044],\"mapped\",[20866]],[[12045,12045],\"mapped\",[20886]],[[12046,12046],\"mapped\",[20907]],[[12047,12047],\"mapped\",[20960]],[[12048,12048],\"mapped\",[20981]],[[12049,12049],\"mapped\",[20992]],[[12050,12050],\"mapped\",[21147]],[[12051,12051],\"mapped\",[21241]],[[12052,12052],\"mapped\",[21269]],[[12053,12053],\"mapped\",[21274]],[[12054,12054],\"mapped\",[21304]],[[12055,12055],\"mapped\",[21313]],[[12056,12056],\"mapped\",[21340]],[[12057,12057],\"mapped\",[21353]],[[12058,12058],\"mapped\",[21378]],[[12059,12059],\"mapped\",[21430]],[[12060,12060],\"mapped\",[21448]],[[12061,12061],\"mapped\",[21475]],[[12062,12062],\"mapped\",[22231]],[[12063,12063],\"mapped\",[22303]],[[12064,12064],\"mapped\",[22763]],[[12065,12065],\"mapped\",[22786]],[[12066,12066],\"mapped\",[22794]],[[12067,12067],\"mapped\",[22805]],[[12068,12068],\"mapped\",[22823]],[[12069,12069],\"mapped\",[22899]],[[12070,12070],\"mapped\",[23376]],[[12071,12071],\"mapped\",[23424]],[[12072,12072],\"mapped\",[23544]],[[12073,12073],\"mapped\",[23567]],[[12074,12074],\"mapped\",[23586]],[[12075,12075],\"mapped\",[23608]],[[12076,12076],\"mapped\",[23662]],[[12077,12077],\"mapped\",[23665]],[[12078,12078],\"mapped\",[24027]],[[12079,12079],\"mapped\",[24037]],[[12080,12080],\"mapped\",[24049]],[[12081,12081],\"mapped\",[24062]],[[12082,12082],\"mapped\",[24178]],[[12083,12083],\"mapped\",[24186]],[[12084,12084],\"mapped\",[24191]],[[12085,12085],\"mapped\",[24308]],[[12086,12086],\"mapped\",[24318]],[[12087,12087],\"mapped\",[24331]],[[12088,12088],\"mapped\",[24339]],[[12089,12089],\"mapped\",[24400]],[[12090,12090],\"mapped\",[24417]],[[12091,12091],\"mapped\",[24435]],[[12092,12092],\"mapped\",[24515]],[[12093,12093],\"mapped\",[25096]],[[12094,12094],\"mapped\",[25142]],[[12095,12095],\"mapped\",[25163]],[[12096,12096],\"mapped\",[25903]],[[12097,12097],\"mapped\",[25908]],[[12098,12098],\"mapped\",[25991]],[[12099,12099],\"mapped\",[26007]],[[12100,12100],\"mapped\",[26020]],[[12101,12101],\"mapped\",[26041]],[[12102,12102],\"mapped\",[26080]],[[12103,12103],\"mapped\",[26085]],[[12104,12104],\"mapped\",[26352]],[[12105,12105],\"mapped\",[26376]],[[12106,12106],\"mapped\",[26408]],[[12107,12107],\"mapped\",[27424]],[[12108,12108],\"mapped\",[27490]],[[12109,12109],\"mapped\",[27513]],[[12110,12110],\"mapped\",[27571]],[[12111,12111],\"mapped\",[27595]],[[12112,12112],\"mapped\",[27604]],[[12113,12113],\"mapped\",[27611]],[[12114,12114],\"mapped\",[27663]],[[12115,12115],\"mapped\",[27668]],[[12116,12116],\"mapped\",[27700]],[[12117,12117],\"mapped\",[28779]],[[12118,12118],\"mapped\",[29226]],[[12119,12119],\"mapped\",[29238]],[[12120,12120],\"mapped\",[29243]],[[12121,12121],\"mapped\",[29247]],[[12122,12122],\"mapped\",[29255]],[[12123,12123],\"mapped\",[29273]],[[12124,12124],\"mapped\",[29275]],[[12125,12125],\"mapped\",[29356]],[[12126,12126],\"mapped\",[29572]],[[12127,12127],\"mapped\",[29577]],[[12128,12128],\"mapped\",[29916]],[[12129,12129],\"mapped\",[29926]],[[12130,12130],\"mapped\",[29976]],[[12131,12131],\"mapped\",[29983]],[[12132,12132],\"mapped\",[29992]],[[12133,12133],\"mapped\",[30000]],[[12134,12134],\"mapped\",[30091]],[[12135,12135],\"mapped\",[30098]],[[12136,12136],\"mapped\",[30326]],[[12137,12137],\"mapped\",[30333]],[[12138,12138],\"mapped\",[30382]],[[12139,12139],\"mapped\",[30399]],[[12140,12140],\"mapped\",[30446]],[[12141,12141],\"mapped\",[30683]],[[12142,12142],\"mapped\",[30690]],[[12143,12143],\"mapped\",[30707]],[[12144,12144],\"mapped\",[31034]],[[12145,12145],\"mapped\",[31160]],[[12146,12146],\"mapped\",[31166]],[[12147,12147],\"mapped\",[31348]],[[12148,12148],\"mapped\",[31435]],[[12149,12149],\"mapped\",[31481]],[[12150,12150],\"mapped\",[31859]],[[12151,12151],\"mapped\",[31992]],[[12152,12152],\"mapped\",[32566]],[[12153,12153],\"mapped\",[32593]],[[12154,12154],\"mapped\",[32650]],[[12155,12155],\"mapped\",[32701]],[[12156,12156],\"mapped\",[32769]],[[12157,12157],\"mapped\",[32780]],[[12158,12158],\"mapped\",[32786]],[[12159,12159],\"mapped\",[32819]],[[12160,12160],\"mapped\",[32895]],[[12161,12161],\"mapped\",[32905]],[[12162,12162],\"mapped\",[33251]],[[12163,12163],\"mapped\",[33258]],[[12164,12164],\"mapped\",[33267]],[[12165,12165],\"mapped\",[33276]],[[12166,12166],\"mapped\",[33292]],[[12167,12167],\"mapped\",[33307]],[[12168,12168],\"mapped\",[33311]],[[12169,12169],\"mapped\",[33390]],[[12170,12170],\"mapped\",[33394]],[[12171,12171],\"mapped\",[33400]],[[12172,12172],\"mapped\",[34381]],[[12173,12173],\"mapped\",[34411]],[[12174,12174],\"mapped\",[34880]],[[12175,12175],\"mapped\",[34892]],[[12176,12176],\"mapped\",[34915]],[[12177,12177],\"mapped\",[35198]],[[12178,12178],\"mapped\",[35211]],[[12179,12179],\"mapped\",[35282]],[[12180,12180],\"mapped\",[35328]],[[12181,12181],\"mapped\",[35895]],[[12182,12182],\"mapped\",[35910]],[[12183,12183],\"mapped\",[35925]],[[12184,12184],\"mapped\",[35960]],[[12185,12185],\"mapped\",[35997]],[[12186,12186],\"mapped\",[36196]],[[12187,12187],\"mapped\",[36208]],[[12188,12188],\"mapped\",[36275]],[[12189,12189],\"mapped\",[36523]],[[12190,12190],\"mapped\",[36554]],[[12191,12191],\"mapped\",[36763]],[[12192,12192],\"mapped\",[36784]],[[12193,12193],\"mapped\",[36789]],[[12194,12194],\"mapped\",[37009]],[[12195,12195],\"mapped\",[37193]],[[12196,12196],\"mapped\",[37318]],[[12197,12197],\"mapped\",[37324]],[[12198,12198],\"mapped\",[37329]],[[12199,12199],\"mapped\",[38263]],[[12200,12200],\"mapped\",[38272]],[[12201,12201],\"mapped\",[38428]],[[12202,12202],\"mapped\",[38582]],[[12203,12203],\"mapped\",[38585]],[[12204,12204],\"mapped\",[38632]],[[12205,12205],\"mapped\",[38737]],[[12206,12206],\"mapped\",[38750]],[[12207,12207],\"mapped\",[38754]],[[12208,12208],\"mapped\",[38761]],[[12209,12209],\"mapped\",[38859]],[[12210,12210],\"mapped\",[38893]],[[12211,12211],\"mapped\",[38899]],[[12212,12212],\"mapped\",[38913]],[[12213,12213],\"mapped\",[39080]],[[12214,12214],\"mapped\",[39131]],[[12215,12215],\"mapped\",[39135]],[[12216,12216],\"mapped\",[39318]],[[12217,12217],\"mapped\",[39321]],[[12218,12218],\"mapped\",[39340]],[[12219,12219],\"mapped\",[39592]],[[12220,12220],\"mapped\",[39640]],[[12221,12221],\"mapped\",[39647]],[[12222,12222],\"mapped\",[39717]],[[12223,12223],\"mapped\",[39727]],[[12224,12224],\"mapped\",[39730]],[[12225,12225],\"mapped\",[39740]],[[12226,12226],\"mapped\",[39770]],[[12227,12227],\"mapped\",[40165]],[[12228,12228],\"mapped\",[40565]],[[12229,12229],\"mapped\",[40575]],[[12230,12230],\"mapped\",[40613]],[[12231,12231],\"mapped\",[40635]],[[12232,12232],\"mapped\",[40643]],[[12233,12233],\"mapped\",[40653]],[[12234,12234],\"mapped\",[40657]],[[12235,12235],\"mapped\",[40697]],[[12236,12236],\"mapped\",[40701]],[[12237,12237],\"mapped\",[40718]],[[12238,12238],\"mapped\",[40723]],[[12239,12239],\"mapped\",[40736]],[[12240,12240],\"mapped\",[40763]],[[12241,12241],\"mapped\",[40778]],[[12242,12242],\"mapped\",[40786]],[[12243,12243],\"mapped\",[40845]],[[12244,12244],\"mapped\",[40860]],[[12245,12245],\"mapped\",[40864]],[[12246,12271],\"disallowed\"],[[12272,12283],\"disallowed\"],[[12284,12287],\"disallowed\"],[[12288,12288],\"disallowed_STD3_mapped\",[32]],[[12289,12289],\"valid\",[],\"NV8\"],[[12290,12290],\"mapped\",[46]],[[12291,12292],\"valid\",[],\"NV8\"],[[12293,12295],\"valid\"],[[12296,12329],\"valid\",[],\"NV8\"],[[12330,12333],\"valid\"],[[12334,12341],\"valid\",[],\"NV8\"],[[12342,12342],\"mapped\",[12306]],[[12343,12343],\"valid\",[],\"NV8\"],[[12344,12344],\"mapped\",[21313]],[[12345,12345],\"mapped\",[21316]],[[12346,12346],\"mapped\",[21317]],[[12347,12347],\"valid\",[],\"NV8\"],[[12348,12348],\"valid\"],[[12349,12349],\"valid\",[],\"NV8\"],[[12350,12350],\"valid\",[],\"NV8\"],[[12351,12351],\"valid\",[],\"NV8\"],[[12352,12352],\"disallowed\"],[[12353,12436],\"valid\"],[[12437,12438],\"valid\"],[[12439,12440],\"disallowed\"],[[12441,12442],\"valid\"],[[12443,12443],\"disallowed_STD3_mapped\",[32,12441]],[[12444,12444],\"disallowed_STD3_mapped\",[32,12442]],[[12445,12446],\"valid\"],[[12447,12447],\"mapped\",[12424,12426]],[[12448,12448],\"valid\",[],\"NV8\"],[[12449,12542],\"valid\"],[[12543,12543],\"mapped\",[12467,12488]],[[12544,12548],\"disallowed\"],[[12549,12588],\"valid\"],[[12589,12589],\"valid\"],[[12590,12592],\"disallowed\"],[[12593,12593],\"mapped\",[4352]],[[12594,12594],\"mapped\",[4353]],[[12595,12595],\"mapped\",[4522]],[[12596,12596],\"mapped\",[4354]],[[12597,12597],\"mapped\",[4524]],[[12598,12598],\"mapped\",[4525]],[[12599,12599],\"mapped\",[4355]],[[12600,12600],\"mapped\",[4356]],[[12601,12601],\"mapped\",[4357]],[[12602,12602],\"mapped\",[4528]],[[12603,12603],\"mapped\",[4529]],[[12604,12604],\"mapped\",[4530]],[[12605,12605],\"mapped\",[4531]],[[12606,12606],\"mapped\",[4532]],[[12607,12607],\"mapped\",[4533]],[[12608,12608],\"mapped\",[4378]],[[12609,12609],\"mapped\",[4358]],[[12610,12610],\"mapped\",[4359]],[[12611,12611],\"mapped\",[4360]],[[12612,12612],\"mapped\",[4385]],[[12613,12613],\"mapped\",[4361]],[[12614,12614],\"mapped\",[4362]],[[12615,12615],\"mapped\",[4363]],[[12616,12616],\"mapped\",[4364]],[[12617,12617],\"mapped\",[4365]],[[12618,12618],\"mapped\",[4366]],[[12619,12619],\"mapped\",[4367]],[[12620,12620],\"mapped\",[4368]],[[12621,12621],\"mapped\",[4369]],[[12622,12622],\"mapped\",[4370]],[[12623,12623],\"mapped\",[4449]],[[12624,12624],\"mapped\",[4450]],[[12625,12625],\"mapped\",[4451]],[[12626,12626],\"mapped\",[4452]],[[12627,12627],\"mapped\",[4453]],[[12628,12628],\"mapped\",[4454]],[[12629,12629],\"mapped\",[4455]],[[12630,12630],\"mapped\",[4456]],[[12631,12631],\"mapped\",[4457]],[[12632,12632],\"mapped\",[4458]],[[12633,12633],\"mapped\",[4459]],[[12634,12634],\"mapped\",[4460]],[[12635,12635],\"mapped\",[4461]],[[12636,12636],\"mapped\",[4462]],[[12637,12637],\"mapped\",[4463]],[[12638,12638],\"mapped\",[4464]],[[12639,12639],\"mapped\",[4465]],[[12640,12640],\"mapped\",[4466]],[[12641,12641],\"mapped\",[4467]],[[12642,12642],\"mapped\",[4468]],[[12643,12643],\"mapped\",[4469]],[[12644,12644],\"disallowed\"],[[12645,12645],\"mapped\",[4372]],[[12646,12646],\"mapped\",[4373]],[[12647,12647],\"mapped\",[4551]],[[12648,12648],\"mapped\",[4552]],[[12649,12649],\"mapped\",[4556]],[[12650,12650],\"mapped\",[4558]],[[12651,12651],\"mapped\",[4563]],[[12652,12652],\"mapped\",[4567]],[[12653,12653],\"mapped\",[4569]],[[12654,12654],\"mapped\",[4380]],[[12655,12655],\"mapped\",[4573]],[[12656,12656],\"mapped\",[4575]],[[12657,12657],\"mapped\",[4381]],[[12658,12658],\"mapped\",[4382]],[[12659,12659],\"mapped\",[4384]],[[12660,12660],\"mapped\",[4386]],[[12661,12661],\"mapped\",[4387]],[[12662,12662],\"mapped\",[4391]],[[12663,12663],\"mapped\",[4393]],[[12664,12664],\"mapped\",[4395]],[[12665,12665],\"mapped\",[4396]],[[12666,12666],\"mapped\",[4397]],[[12667,12667],\"mapped\",[4398]],[[12668,12668],\"mapped\",[4399]],[[12669,12669],\"mapped\",[4402]],[[12670,12670],\"mapped\",[4406]],[[12671,12671],\"mapped\",[4416]],[[12672,12672],\"mapped\",[4423]],[[12673,12673],\"mapped\",[4428]],[[12674,12674],\"mapped\",[4593]],[[12675,12675],\"mapped\",[4594]],[[12676,12676],\"mapped\",[4439]],[[12677,12677],\"mapped\",[4440]],[[12678,12678],\"mapped\",[4441]],[[12679,12679],\"mapped\",[4484]],[[12680,12680],\"mapped\",[4485]],[[12681,12681],\"mapped\",[4488]],[[12682,12682],\"mapped\",[4497]],[[12683,12683],\"mapped\",[4498]],[[12684,12684],\"mapped\",[4500]],[[12685,12685],\"mapped\",[4510]],[[12686,12686],\"mapped\",[4513]],[[12687,12687],\"disallowed\"],[[12688,12689],\"valid\",[],\"NV8\"],[[12690,12690],\"mapped\",[19968]],[[12691,12691],\"mapped\",[20108]],[[12692,12692],\"mapped\",[19977]],[[12693,12693],\"mapped\",[22235]],[[12694,12694],\"mapped\",[19978]],[[12695,12695],\"mapped\",[20013]],[[12696,12696],\"mapped\",[19979]],[[12697,12697],\"mapped\",[30002]],[[12698,12698],\"mapped\",[20057]],[[12699,12699],\"mapped\",[19993]],[[12700,12700],\"mapped\",[19969]],[[12701,12701],\"mapped\",[22825]],[[12702,12702],\"mapped\",[22320]],[[12703,12703],\"mapped\",[20154]],[[12704,12727],\"valid\"],[[12728,12730],\"valid\"],[[12731,12735],\"disallowed\"],[[12736,12751],\"valid\",[],\"NV8\"],[[12752,12771],\"valid\",[],\"NV8\"],[[12772,12783],\"disallowed\"],[[12784,12799],\"valid\"],[[12800,12800],\"disallowed_STD3_mapped\",[40,4352,41]],[[12801,12801],\"disallowed_STD3_mapped\",[40,4354,41]],[[12802,12802],\"disallowed_STD3_mapped\",[40,4355,41]],[[12803,12803],\"disallowed_STD3_mapped\",[40,4357,41]],[[12804,12804],\"disallowed_STD3_mapped\",[40,4358,41]],[[12805,12805],\"disallowed_STD3_mapped\",[40,4359,41]],[[12806,12806],\"disallowed_STD3_mapped\",[40,4361,41]],[[12807,12807],\"disallowed_STD3_mapped\",[40,4363,41]],[[12808,12808],\"disallowed_STD3_mapped\",[40,4364,41]],[[12809,12809],\"disallowed_STD3_mapped\",[40,4366,41]],[[12810,12810],\"disallowed_STD3_mapped\",[40,4367,41]],[[12811,12811],\"disallowed_STD3_mapped\",[40,4368,41]],[[12812,12812],\"disallowed_STD3_mapped\",[40,4369,41]],[[12813,12813],\"disallowed_STD3_mapped\",[40,4370,41]],[[12814,12814],\"disallowed_STD3_mapped\",[40,44032,41]],[[12815,12815],\"disallowed_STD3_mapped\",[40,45208,41]],[[12816,12816],\"disallowed_STD3_mapped\",[40,45796,41]],[[12817,12817],\"disallowed_STD3_mapped\",[40,46972,41]],[[12818,12818],\"disallowed_STD3_mapped\",[40,47560,41]],[[12819,12819],\"disallowed_STD3_mapped\",[40,48148,41]],[[12820,12820],\"disallowed_STD3_mapped\",[40,49324,41]],[[12821,12821],\"disallowed_STD3_mapped\",[40,50500,41]],[[12822,12822],\"disallowed_STD3_mapped\",[40,51088,41]],[[12823,12823],\"disallowed_STD3_mapped\",[40,52264,41]],[[12824,12824],\"disallowed_STD3_mapped\",[40,52852,41]],[[12825,12825],\"disallowed_STD3_mapped\",[40,53440,41]],[[12826,12826],\"disallowed_STD3_mapped\",[40,54028,41]],[[12827,12827],\"disallowed_STD3_mapped\",[40,54616,41]],[[12828,12828],\"disallowed_STD3_mapped\",[40,51452,41]],[[12829,12829],\"disallowed_STD3_mapped\",[40,50724,51204,41]],[[12830,12830],\"disallowed_STD3_mapped\",[40,50724,54980,41]],[[12831,12831],\"disallowed\"],[[12832,12832],\"disallowed_STD3_mapped\",[40,19968,41]],[[12833,12833],\"disallowed_STD3_mapped\",[40,20108,41]],[[12834,12834],\"disallowed_STD3_mapped\",[40,19977,41]],[[12835,12835],\"disallowed_STD3_mapped\",[40,22235,41]],[[12836,12836],\"disallowed_STD3_mapped\",[40,20116,41]],[[12837,12837],\"disallowed_STD3_mapped\",[40,20845,41]],[[12838,12838],\"disallowed_STD3_mapped\",[40,19971,41]],[[12839,12839],\"disallowed_STD3_mapped\",[40,20843,41]],[[12840,12840],\"disallowed_STD3_mapped\",[40,20061,41]],[[12841,12841],\"disallowed_STD3_mapped\",[40,21313,41]],[[12842,12842],\"disallowed_STD3_mapped\",[40,26376,41]],[[12843,12843],\"disallowed_STD3_mapped\",[40,28779,41]],[[12844,12844],\"disallowed_STD3_mapped\",[40,27700,41]],[[12845,12845],\"disallowed_STD3_mapped\",[40,26408,41]],[[12846,12846],\"disallowed_STD3_mapped\",[40,37329,41]],[[12847,12847],\"disallowed_STD3_mapped\",[40,22303,41]],[[12848,12848],\"disallowed_STD3_mapped\",[40,26085,41]],[[12849,12849],\"disallowed_STD3_mapped\",[40,26666,41]],[[12850,12850],\"disallowed_STD3_mapped\",[40,26377,41]],[[12851,12851],\"disallowed_STD3_mapped\",[40,31038,41]],[[12852,12852],\"disallowed_STD3_mapped\",[40,21517,41]],[[12853,12853],\"disallowed_STD3_mapped\",[40,29305,41]],[[12854,12854],\"disallowed_STD3_mapped\",[40,36001,41]],[[12855,12855],\"disallowed_STD3_mapped\",[40,31069,41]],[[12856,12856],\"disallowed_STD3_mapped\",[40,21172,41]],[[12857,12857],\"disallowed_STD3_mapped\",[40,20195,41]],[[12858,12858],\"disallowed_STD3_mapped\",[40,21628,41]],[[12859,12859],\"disallowed_STD3_mapped\",[40,23398,41]],[[12860,12860],\"disallowed_STD3_mapped\",[40,30435,41]],[[12861,12861],\"disallowed_STD3_mapped\",[40,20225,41]],[[12862,12862],\"disallowed_STD3_mapped\",[40,36039,41]],[[12863,12863],\"disallowed_STD3_mapped\",[40,21332,41]],[[12864,12864],\"disallowed_STD3_mapped\",[40,31085,41]],[[12865,12865],\"disallowed_STD3_mapped\",[40,20241,41]],[[12866,12866],\"disallowed_STD3_mapped\",[40,33258,41]],[[12867,12867],\"disallowed_STD3_mapped\",[40,33267,41]],[[12868,12868],\"mapped\",[21839]],[[12869,12869],\"mapped\",[24188]],[[12870,12870],\"mapped\",[25991]],[[12871,12871],\"mapped\",[31631]],[[12872,12879],\"valid\",[],\"NV8\"],[[12880,12880],\"mapped\",[112,116,101]],[[12881,12881],\"mapped\",[50,49]],[[12882,12882],\"mapped\",[50,50]],[[12883,12883],\"mapped\",[50,51]],[[12884,12884],\"mapped\",[50,52]],[[12885,12885],\"mapped\",[50,53]],[[12886,12886],\"mapped\",[50,54]],[[12887,12887],\"mapped\",[50,55]],[[12888,12888],\"mapped\",[50,56]],[[12889,12889],\"mapped\",[50,57]],[[12890,12890],\"mapped\",[51,48]],[[12891,12891],\"mapped\",[51,49]],[[12892,12892],\"mapped\",[51,50]],[[12893,12893],\"mapped\",[51,51]],[[12894,12894],\"mapped\",[51,52]],[[12895,12895],\"mapped\",[51,53]],[[12896,12896],\"mapped\",[4352]],[[12897,12897],\"mapped\",[4354]],[[12898,12898],\"mapped\",[4355]],[[12899,12899],\"mapped\",[4357]],[[12900,12900],\"mapped\",[4358]],[[12901,12901],\"mapped\",[4359]],[[12902,12902],\"mapped\",[4361]],[[12903,12903],\"mapped\",[4363]],[[12904,12904],\"mapped\",[4364]],[[12905,12905],\"mapped\",[4366]],[[12906,12906],\"mapped\",[4367]],[[12907,12907],\"mapped\",[4368]],[[12908,12908],\"mapped\",[4369]],[[12909,12909],\"mapped\",[4370]],[[12910,12910],\"mapped\",[44032]],[[12911,12911],\"mapped\",[45208]],[[12912,12912],\"mapped\",[45796]],[[12913,12913],\"mapped\",[46972]],[[12914,12914],\"mapped\",[47560]],[[12915,12915],\"mapped\",[48148]],[[12916,12916],\"mapped\",[49324]],[[12917,12917],\"mapped\",[50500]],[[12918,12918],\"mapped\",[51088]],[[12919,12919],\"mapped\",[52264]],[[12920,12920],\"mapped\",[52852]],[[12921,12921],\"mapped\",[53440]],[[12922,12922],\"mapped\",[54028]],[[12923,12923],\"mapped\",[54616]],[[12924,12924],\"mapped\",[52280,44256]],[[12925,12925],\"mapped\",[51452,51032]],[[12926,12926],\"mapped\",[50864]],[[12927,12927],\"valid\",[],\"NV8\"],[[12928,12928],\"mapped\",[19968]],[[12929,12929],\"mapped\",[20108]],[[12930,12930],\"mapped\",[19977]],[[12931,12931],\"mapped\",[22235]],[[12932,12932],\"mapped\",[20116]],[[12933,12933],\"mapped\",[20845]],[[12934,12934],\"mapped\",[19971]],[[12935,12935],\"mapped\",[20843]],[[12936,12936],\"mapped\",[20061]],[[12937,12937],\"mapped\",[21313]],[[12938,12938],\"mapped\",[26376]],[[12939,12939],\"mapped\",[28779]],[[12940,12940],\"mapped\",[27700]],[[12941,12941],\"mapped\",[26408]],[[12942,12942],\"mapped\",[37329]],[[12943,12943],\"mapped\",[22303]],[[12944,12944],\"mapped\",[26085]],[[12945,12945],\"mapped\",[26666]],[[12946,12946],\"mapped\",[26377]],[[12947,12947],\"mapped\",[31038]],[[12948,12948],\"mapped\",[21517]],[[12949,12949],\"mapped\",[29305]],[[12950,12950],\"mapped\",[36001]],[[12951,12951],\"mapped\",[31069]],[[12952,12952],\"mapped\",[21172]],[[12953,12953],\"mapped\",[31192]],[[12954,12954],\"mapped\",[30007]],[[12955,12955],\"mapped\",[22899]],[[12956,12956],\"mapped\",[36969]],[[12957,12957],\"mapped\",[20778]],[[12958,12958],\"mapped\",[21360]],[[12959,12959],\"mapped\",[27880]],[[12960,12960],\"mapped\",[38917]],[[12961,12961],\"mapped\",[20241]],[[12962,12962],\"mapped\",[20889]],[[12963,12963],\"mapped\",[27491]],[[12964,12964],\"mapped\",[19978]],[[12965,12965],\"mapped\",[20013]],[[12966,12966],\"mapped\",[19979]],[[12967,12967],\"mapped\",[24038]],[[12968,12968],\"mapped\",[21491]],[[12969,12969],\"mapped\",[21307]],[[12970,12970],\"mapped\",[23447]],[[12971,12971],\"mapped\",[23398]],[[12972,12972],\"mapped\",[30435]],[[12973,12973],\"mapped\",[20225]],[[12974,12974],\"mapped\",[36039]],[[12975,12975],\"mapped\",[21332]],[[12976,12976],\"mapped\",[22812]],[[12977,12977],\"mapped\",[51,54]],[[12978,12978],\"mapped\",[51,55]],[[12979,12979],\"mapped\",[51,56]],[[12980,12980],\"mapped\",[51,57]],[[12981,12981],\"mapped\",[52,48]],[[12982,12982],\"mapped\",[52,49]],[[12983,12983],\"mapped\",[52,50]],[[12984,12984],\"mapped\",[52,51]],[[12985,12985],\"mapped\",[52,52]],[[12986,12986],\"mapped\",[52,53]],[[12987,12987],\"mapped\",[52,54]],[[12988,12988],\"mapped\",[52,55]],[[12989,12989],\"mapped\",[52,56]],[[12990,12990],\"mapped\",[52,57]],[[12991,12991],\"mapped\",[53,48]],[[12992,12992],\"mapped\",[49,26376]],[[12993,12993],\"mapped\",[50,26376]],[[12994,12994],\"mapped\",[51,26376]],[[12995,12995],\"mapped\",[52,26376]],[[12996,12996],\"mapped\",[53,26376]],[[12997,12997],\"mapped\",[54,26376]],[[12998,12998],\"mapped\",[55,26376]],[[12999,12999],\"mapped\",[56,26376]],[[13000,13000],\"mapped\",[57,26376]],[[13001,13001],\"mapped\",[49,48,26376]],[[13002,13002],\"mapped\",[49,49,26376]],[[13003,13003],\"mapped\",[49,50,26376]],[[13004,13004],\"mapped\",[104,103]],[[13005,13005],\"mapped\",[101,114,103]],[[13006,13006],\"mapped\",[101,118]],[[13007,13007],\"mapped\",[108,116,100]],[[13008,13008],\"mapped\",[12450]],[[13009,13009],\"mapped\",[12452]],[[13010,13010],\"mapped\",[12454]],[[13011,13011],\"mapped\",[12456]],[[13012,13012],\"mapped\",[12458]],[[13013,13013],\"mapped\",[12459]],[[13014,13014],\"mapped\",[12461]],[[13015,13015],\"mapped\",[12463]],[[13016,13016],\"mapped\",[12465]],[[13017,13017],\"mapped\",[12467]],[[13018,13018],\"mapped\",[12469]],[[13019,13019],\"mapped\",[12471]],[[13020,13020],\"mapped\",[12473]],[[13021,13021],\"mapped\",[12475]],[[13022,13022],\"mapped\",[12477]],[[13023,13023],\"mapped\",[12479]],[[13024,13024],\"mapped\",[12481]],[[13025,13025],\"mapped\",[12484]],[[13026,13026],\"mapped\",[12486]],[[13027,13027],\"mapped\",[12488]],[[13028,13028],\"mapped\",[12490]],[[13029,13029],\"mapped\",[12491]],[[13030,13030],\"mapped\",[12492]],[[13031,13031],\"mapped\",[12493]],[[13032,13032],\"mapped\",[12494]],[[13033,13033],\"mapped\",[12495]],[[13034,13034],\"mapped\",[12498]],[[13035,13035],\"mapped\",[12501]],[[13036,13036],\"mapped\",[12504]],[[13037,13037],\"mapped\",[12507]],[[13038,13038],\"mapped\",[12510]],[[13039,13039],\"mapped\",[12511]],[[13040,13040],\"mapped\",[12512]],[[13041,13041],\"mapped\",[12513]],[[13042,13042],\"mapped\",[12514]],[[13043,13043],\"mapped\",[12516]],[[13044,13044],\"mapped\",[12518]],[[13045,13045],\"mapped\",[12520]],[[13046,13046],\"mapped\",[12521]],[[13047,13047],\"mapped\",[12522]],[[13048,13048],\"mapped\",[12523]],[[13049,13049],\"mapped\",[12524]],[[13050,13050],\"mapped\",[12525]],[[13051,13051],\"mapped\",[12527]],[[13052,13052],\"mapped\",[12528]],[[13053,13053],\"mapped\",[12529]],[[13054,13054],\"mapped\",[12530]],[[13055,13055],\"disallowed\"],[[13056,13056],\"mapped\",[12450,12497,12540,12488]],[[13057,13057],\"mapped\",[12450,12523,12501,12449]],[[13058,13058],\"mapped\",[12450,12531,12506,12450]],[[13059,13059],\"mapped\",[12450,12540,12523]],[[13060,13060],\"mapped\",[12452,12491,12531,12464]],[[13061,13061],\"mapped\",[12452,12531,12481]],[[13062,13062],\"mapped\",[12454,12457,12531]],[[13063,13063],\"mapped\",[12456,12473,12463,12540,12489]],[[13064,13064],\"mapped\",[12456,12540,12459,12540]],[[13065,13065],\"mapped\",[12458,12531,12473]],[[13066,13066],\"mapped\",[12458,12540,12512]],[[13067,13067],\"mapped\",[12459,12452,12522]],[[13068,13068],\"mapped\",[12459,12521,12483,12488]],[[13069,13069],\"mapped\",[12459,12525,12522,12540]],[[13070,13070],\"mapped\",[12460,12525,12531]],[[13071,13071],\"mapped\",[12460,12531,12510]],[[13072,13072],\"mapped\",[12462,12460]],[[13073,13073],\"mapped\",[12462,12491,12540]],[[13074,13074],\"mapped\",[12461,12517,12522,12540]],[[13075,13075],\"mapped\",[12462,12523,12480,12540]],[[13076,13076],\"mapped\",[12461,12525]],[[13077,13077],\"mapped\",[12461,12525,12464,12521,12512]],[[13078,13078],\"mapped\",[12461,12525,12513,12540,12488,12523]],[[13079,13079],\"mapped\",[12461,12525,12527,12483,12488]],[[13080,13080],\"mapped\",[12464,12521,12512]],[[13081,13081],\"mapped\",[12464,12521,12512,12488,12531]],[[13082,13082],\"mapped\",[12463,12523,12476,12452,12525]],[[13083,13083],\"mapped\",[12463,12525,12540,12493]],[[13084,13084],\"mapped\",[12465,12540,12473]],[[13085,13085],\"mapped\",[12467,12523,12490]],[[13086,13086],\"mapped\",[12467,12540,12509]],[[13087,13087],\"mapped\",[12469,12452,12463,12523]],[[13088,13088],\"mapped\",[12469,12531,12481,12540,12512]],[[13089,13089],\"mapped\",[12471,12522,12531,12464]],[[13090,13090],\"mapped\",[12475,12531,12481]],[[13091,13091],\"mapped\",[12475,12531,12488]],[[13092,13092],\"mapped\",[12480,12540,12473]],[[13093,13093],\"mapped\",[12487,12471]],[[13094,13094],\"mapped\",[12489,12523]],[[13095,13095],\"mapped\",[12488,12531]],[[13096,13096],\"mapped\",[12490,12494]],[[13097,13097],\"mapped\",[12494,12483,12488]],[[13098,13098],\"mapped\",[12495,12452,12484]],[[13099,13099],\"mapped\",[12497,12540,12475,12531,12488]],[[13100,13100],\"mapped\",[12497,12540,12484]],[[13101,13101],\"mapped\",[12496,12540,12524,12523]],[[13102,13102],\"mapped\",[12500,12450,12473,12488,12523]],[[13103,13103],\"mapped\",[12500,12463,12523]],[[13104,13104],\"mapped\",[12500,12467]],[[13105,13105],\"mapped\",[12499,12523]],[[13106,13106],\"mapped\",[12501,12449,12521,12483,12489]],[[13107,13107],\"mapped\",[12501,12451,12540,12488]],[[13108,13108],\"mapped\",[12502,12483,12471,12455,12523]],[[13109,13109],\"mapped\",[12501,12521,12531]],[[13110,13110],\"mapped\",[12504,12463,12479,12540,12523]],[[13111,13111],\"mapped\",[12506,12477]],[[13112,13112],\"mapped\",[12506,12491,12498]],[[13113,13113],\"mapped\",[12504,12523,12484]],[[13114,13114],\"mapped\",[12506,12531,12473]],[[13115,13115],\"mapped\",[12506,12540,12472]],[[13116,13116],\"mapped\",[12505,12540,12479]],[[13117,13117],\"mapped\",[12509,12452,12531,12488]],[[13118,13118],\"mapped\",[12508,12523,12488]],[[13119,13119],\"mapped\",[12507,12531]],[[13120,13120],\"mapped\",[12509,12531,12489]],[[13121,13121],\"mapped\",[12507,12540,12523]],[[13122,13122],\"mapped\",[12507,12540,12531]],[[13123,13123],\"mapped\",[12510,12452,12463,12525]],[[13124,13124],\"mapped\",[12510,12452,12523]],[[13125,13125],\"mapped\",[12510,12483,12495]],[[13126,13126],\"mapped\",[12510,12523,12463]],[[13127,13127],\"mapped\",[12510,12531,12471,12519,12531]],[[13128,13128],\"mapped\",[12511,12463,12525,12531]],[[13129,13129],\"mapped\",[12511,12522]],[[13130,13130],\"mapped\",[12511,12522,12496,12540,12523]],[[13131,13131],\"mapped\",[12513,12460]],[[13132,13132],\"mapped\",[12513,12460,12488,12531]],[[13133,13133],\"mapped\",[12513,12540,12488,12523]],[[13134,13134],\"mapped\",[12516,12540,12489]],[[13135,13135],\"mapped\",[12516,12540,12523]],[[13136,13136],\"mapped\",[12518,12450,12531]],[[13137,13137],\"mapped\",[12522,12483,12488,12523]],[[13138,13138],\"mapped\",[12522,12521]],[[13139,13139],\"mapped\",[12523,12500,12540]],[[13140,13140],\"mapped\",[12523,12540,12502,12523]],[[13141,13141],\"mapped\",[12524,12512]],[[13142,13142],\"mapped\",[12524,12531,12488,12466,12531]],[[13143,13143],\"mapped\",[12527,12483,12488]],[[13144,13144],\"mapped\",[48,28857]],[[13145,13145],\"mapped\",[49,28857]],[[13146,13146],\"mapped\",[50,28857]],[[13147,13147],\"mapped\",[51,28857]],[[13148,13148],\"mapped\",[52,28857]],[[13149,13149],\"mapped\",[53,28857]],[[13150,13150],\"mapped\",[54,28857]],[[13151,13151],\"mapped\",[55,28857]],[[13152,13152],\"mapped\",[56,28857]],[[13153,13153],\"mapped\",[57,28857]],[[13154,13154],\"mapped\",[49,48,28857]],[[13155,13155],\"mapped\",[49,49,28857]],[[13156,13156],\"mapped\",[49,50,28857]],[[13157,13157],\"mapped\",[49,51,28857]],[[13158,13158],\"mapped\",[49,52,28857]],[[13159,13159],\"mapped\",[49,53,28857]],[[13160,13160],\"mapped\",[49,54,28857]],[[13161,13161],\"mapped\",[49,55,28857]],[[13162,13162],\"mapped\",[49,56,28857]],[[13163,13163],\"mapped\",[49,57,28857]],[[13164,13164],\"mapped\",[50,48,28857]],[[13165,13165],\"mapped\",[50,49,28857]],[[13166,13166],\"mapped\",[50,50,28857]],[[13167,13167],\"mapped\",[50,51,28857]],[[13168,13168],\"mapped\",[50,52,28857]],[[13169,13169],\"mapped\",[104,112,97]],[[13170,13170],\"mapped\",[100,97]],[[13171,13171],\"mapped\",[97,117]],[[13172,13172],\"mapped\",[98,97,114]],[[13173,13173],\"mapped\",[111,118]],[[13174,13174],\"mapped\",[112,99]],[[13175,13175],\"mapped\",[100,109]],[[13176,13176],\"mapped\",[100,109,50]],[[13177,13177],\"mapped\",[100,109,51]],[[13178,13178],\"mapped\",[105,117]],[[13179,13179],\"mapped\",[24179,25104]],[[13180,13180],\"mapped\",[26157,21644]],[[13181,13181],\"mapped\",[22823,27491]],[[13182,13182],\"mapped\",[26126,27835]],[[13183,13183],\"mapped\",[26666,24335,20250,31038]],[[13184,13184],\"mapped\",[112,97]],[[13185,13185],\"mapped\",[110,97]],[[13186,13186],\"mapped\",[956,97]],[[13187,13187],\"mapped\",[109,97]],[[13188,13188],\"mapped\",[107,97]],[[13189,13189],\"mapped\",[107,98]],[[13190,13190],\"mapped\",[109,98]],[[13191,13191],\"mapped\",[103,98]],[[13192,13192],\"mapped\",[99,97,108]],[[13193,13193],\"mapped\",[107,99,97,108]],[[13194,13194],\"mapped\",[112,102]],[[13195,13195],\"mapped\",[110,102]],[[13196,13196],\"mapped\",[956,102]],[[13197,13197],\"mapped\",[956,103]],[[13198,13198],\"mapped\",[109,103]],[[13199,13199],\"mapped\",[107,103]],[[13200,13200],\"mapped\",[104,122]],[[13201,13201],\"mapped\",[107,104,122]],[[13202,13202],\"mapped\",[109,104,122]],[[13203,13203],\"mapped\",[103,104,122]],[[13204,13204],\"mapped\",[116,104,122]],[[13205,13205],\"mapped\",[956,108]],[[13206,13206],\"mapped\",[109,108]],[[13207,13207],\"mapped\",[100,108]],[[13208,13208],\"mapped\",[107,108]],[[13209,13209],\"mapped\",[102,109]],[[13210,13210],\"mapped\",[110,109]],[[13211,13211],\"mapped\",[956,109]],[[13212,13212],\"mapped\",[109,109]],[[13213,13213],\"mapped\",[99,109]],[[13214,13214],\"mapped\",[107,109]],[[13215,13215],\"mapped\",[109,109,50]],[[13216,13216],\"mapped\",[99,109,50]],[[13217,13217],\"mapped\",[109,50]],[[13218,13218],\"mapped\",[107,109,50]],[[13219,13219],\"mapped\",[109,109,51]],[[13220,13220],\"mapped\",[99,109,51]],[[13221,13221],\"mapped\",[109,51]],[[13222,13222],\"mapped\",[107,109,51]],[[13223,13223],\"mapped\",[109,8725,115]],[[13224,13224],\"mapped\",[109,8725,115,50]],[[13225,13225],\"mapped\",[112,97]],[[13226,13226],\"mapped\",[107,112,97]],[[13227,13227],\"mapped\",[109,112,97]],[[13228,13228],\"mapped\",[103,112,97]],[[13229,13229],\"mapped\",[114,97,100]],[[13230,13230],\"mapped\",[114,97,100,8725,115]],[[13231,13231],\"mapped\",[114,97,100,8725,115,50]],[[13232,13232],\"mapped\",[112,115]],[[13233,13233],\"mapped\",[110,115]],[[13234,13234],\"mapped\",[956,115]],[[13235,13235],\"mapped\",[109,115]],[[13236,13236],\"mapped\",[112,118]],[[13237,13237],\"mapped\",[110,118]],[[13238,13238],\"mapped\",[956,118]],[[13239,13239],\"mapped\",[109,118]],[[13240,13240],\"mapped\",[107,118]],[[13241,13241],\"mapped\",[109,118]],[[13242,13242],\"mapped\",[112,119]],[[13243,13243],\"mapped\",[110,119]],[[13244,13244],\"mapped\",[956,119]],[[13245,13245],\"mapped\",[109,119]],[[13246,13246],\"mapped\",[107,119]],[[13247,13247],\"mapped\",[109,119]],[[13248,13248],\"mapped\",[107,969]],[[13249,13249],\"mapped\",[109,969]],[[13250,13250],\"disallowed\"],[[13251,13251],\"mapped\",[98,113]],[[13252,13252],\"mapped\",[99,99]],[[13253,13253],\"mapped\",[99,100]],[[13254,13254],\"mapped\",[99,8725,107,103]],[[13255,13255],\"disallowed\"],[[13256,13256],\"mapped\",[100,98]],[[13257,13257],\"mapped\",[103,121]],[[13258,13258],\"mapped\",[104,97]],[[13259,13259],\"mapped\",[104,112]],[[13260,13260],\"mapped\",[105,110]],[[13261,13261],\"mapped\",[107,107]],[[13262,13262],\"mapped\",[107,109]],[[13263,13263],\"mapped\",[107,116]],[[13264,13264],\"mapped\",[108,109]],[[13265,13265],\"mapped\",[108,110]],[[13266,13266],\"mapped\",[108,111,103]],[[13267,13267],\"mapped\",[108,120]],[[13268,13268],\"mapped\",[109,98]],[[13269,13269],\"mapped\",[109,105,108]],[[13270,13270],\"mapped\",[109,111,108]],[[13271,13271],\"mapped\",[112,104]],[[13272,13272],\"disallowed\"],[[13273,13273],\"mapped\",[112,112,109]],[[13274,13274],\"mapped\",[112,114]],[[13275,13275],\"mapped\",[115,114]],[[13276,13276],\"mapped\",[115,118]],[[13277,13277],\"mapped\",[119,98]],[[13278,13278],\"mapped\",[118,8725,109]],[[13279,13279],\"mapped\",[97,8725,109]],[[13280,13280],\"mapped\",[49,26085]],[[13281,13281],\"mapped\",[50,26085]],[[13282,13282],\"mapped\",[51,26085]],[[13283,13283],\"mapped\",[52,26085]],[[13284,13284],\"mapped\",[53,26085]],[[13285,13285],\"mapped\",[54,26085]],[[13286,13286],\"mapped\",[55,26085]],[[13287,13287],\"mapped\",[56,26085]],[[13288,13288],\"mapped\",[57,26085]],[[13289,13289],\"mapped\",[49,48,26085]],[[13290,13290],\"mapped\",[49,49,26085]],[[13291,13291],\"mapped\",[49,50,26085]],[[13292,13292],\"mapped\",[49,51,26085]],[[13293,13293],\"mapped\",[49,52,26085]],[[13294,13294],\"mapped\",[49,53,26085]],[[13295,13295],\"mapped\",[49,54,26085]],[[13296,13296],\"mapped\",[49,55,26085]],[[13297,13297],\"mapped\",[49,56,26085]],[[13298,13298],\"mapped\",[49,57,26085]],[[13299,13299],\"mapped\",[50,48,26085]],[[13300,13300],\"mapped\",[50,49,26085]],[[13301,13301],\"mapped\",[50,50,26085]],[[13302,13302],\"mapped\",[50,51,26085]],[[13303,13303],\"mapped\",[50,52,26085]],[[13304,13304],\"mapped\",[50,53,26085]],[[13305,13305],\"mapped\",[50,54,26085]],[[13306,13306],\"mapped\",[50,55,26085]],[[13307,13307],\"mapped\",[50,56,26085]],[[13308,13308],\"mapped\",[50,57,26085]],[[13309,13309],\"mapped\",[51,48,26085]],[[13310,13310],\"mapped\",[51,49,26085]],[[13311,13311],\"mapped\",[103,97,108]],[[13312,19893],\"valid\"],[[19894,19903],\"disallowed\"],[[19904,19967],\"valid\",[],\"NV8\"],[[19968,40869],\"valid\"],[[40870,40891],\"valid\"],[[40892,40899],\"valid\"],[[40900,40907],\"valid\"],[[40908,40908],\"valid\"],[[40909,40917],\"valid\"],[[40918,40959],\"disallowed\"],[[40960,42124],\"valid\"],[[42125,42127],\"disallowed\"],[[42128,42145],\"valid\",[],\"NV8\"],[[42146,42147],\"valid\",[],\"NV8\"],[[42148,42163],\"valid\",[],\"NV8\"],[[42164,42164],\"valid\",[],\"NV8\"],[[42165,42176],\"valid\",[],\"NV8\"],[[42177,42177],\"valid\",[],\"NV8\"],[[42178,42180],\"valid\",[],\"NV8\"],[[42181,42181],\"valid\",[],\"NV8\"],[[42182,42182],\"valid\",[],\"NV8\"],[[42183,42191],\"disallowed\"],[[42192,42237],\"valid\"],[[42238,42239],\"valid\",[],\"NV8\"],[[42240,42508],\"valid\"],[[42509,42511],\"valid\",[],\"NV8\"],[[42512,42539],\"valid\"],[[42540,42559],\"disallowed\"],[[42560,42560],\"mapped\",[42561]],[[42561,42561],\"valid\"],[[42562,42562],\"mapped\",[42563]],[[42563,42563],\"valid\"],[[42564,42564],\"mapped\",[42565]],[[42565,42565],\"valid\"],[[42566,42566],\"mapped\",[42567]],[[42567,42567],\"valid\"],[[42568,42568],\"mapped\",[42569]],[[42569,42569],\"valid\"],[[42570,42570],\"mapped\",[42571]],[[42571,42571],\"valid\"],[[42572,42572],\"mapped\",[42573]],[[42573,42573],\"valid\"],[[42574,42574],\"mapped\",[42575]],[[42575,42575],\"valid\"],[[42576,42576],\"mapped\",[42577]],[[42577,42577],\"valid\"],[[42578,42578],\"mapped\",[42579]],[[42579,42579],\"valid\"],[[42580,42580],\"mapped\",[42581]],[[42581,42581],\"valid\"],[[42582,42582],\"mapped\",[42583]],[[42583,42583],\"valid\"],[[42584,42584],\"mapped\",[42585]],[[42585,42585],\"valid\"],[[42586,42586],\"mapped\",[42587]],[[42587,42587],\"valid\"],[[42588,42588],\"mapped\",[42589]],[[42589,42589],\"valid\"],[[42590,42590],\"mapped\",[42591]],[[42591,42591],\"valid\"],[[42592,42592],\"mapped\",[42593]],[[42593,42593],\"valid\"],[[42594,42594],\"mapped\",[42595]],[[42595,42595],\"valid\"],[[42596,42596],\"mapped\",[42597]],[[42597,42597],\"valid\"],[[42598,42598],\"mapped\",[42599]],[[42599,42599],\"valid\"],[[42600,42600],\"mapped\",[42601]],[[42601,42601],\"valid\"],[[42602,42602],\"mapped\",[42603]],[[42603,42603],\"valid\"],[[42604,42604],\"mapped\",[42605]],[[42605,42607],\"valid\"],[[42608,42611],\"valid\",[],\"NV8\"],[[42612,42619],\"valid\"],[[42620,42621],\"valid\"],[[42622,42622],\"valid\",[],\"NV8\"],[[42623,42623],\"valid\"],[[42624,42624],\"mapped\",[42625]],[[42625,42625],\"valid\"],[[42626,42626],\"mapped\",[42627]],[[42627,42627],\"valid\"],[[42628,42628],\"mapped\",[42629]],[[42629,42629],\"valid\"],[[42630,42630],\"mapped\",[42631]],[[42631,42631],\"valid\"],[[42632,42632],\"mapped\",[42633]],[[42633,42633],\"valid\"],[[42634,42634],\"mapped\",[42635]],[[42635,42635],\"valid\"],[[42636,42636],\"mapped\",[42637]],[[42637,42637],\"valid\"],[[42638,42638],\"mapped\",[42639]],[[42639,42639],\"valid\"],[[42640,42640],\"mapped\",[42641]],[[42641,42641],\"valid\"],[[42642,42642],\"mapped\",[42643]],[[42643,42643],\"valid\"],[[42644,42644],\"mapped\",[42645]],[[42645,42645],\"valid\"],[[42646,42646],\"mapped\",[42647]],[[42647,42647],\"valid\"],[[42648,42648],\"mapped\",[42649]],[[42649,42649],\"valid\"],[[42650,42650],\"mapped\",[42651]],[[42651,42651],\"valid\"],[[42652,42652],\"mapped\",[1098]],[[42653,42653],\"mapped\",[1100]],[[42654,42654],\"valid\"],[[42655,42655],\"valid\"],[[42656,42725],\"valid\"],[[42726,42735],\"valid\",[],\"NV8\"],[[42736,42737],\"valid\"],[[42738,42743],\"valid\",[],\"NV8\"],[[42744,42751],\"disallowed\"],[[42752,42774],\"valid\",[],\"NV8\"],[[42775,42778],\"valid\"],[[42779,42783],\"valid\"],[[42784,42785],\"valid\",[],\"NV8\"],[[42786,42786],\"mapped\",[42787]],[[42787,42787],\"valid\"],[[42788,42788],\"mapped\",[42789]],[[42789,42789],\"valid\"],[[42790,42790],\"mapped\",[42791]],[[42791,42791],\"valid\"],[[42792,42792],\"mapped\",[42793]],[[42793,42793],\"valid\"],[[42794,42794],\"mapped\",[42795]],[[42795,42795],\"valid\"],[[42796,42796],\"mapped\",[42797]],[[42797,42797],\"valid\"],[[42798,42798],\"mapped\",[42799]],[[42799,42801],\"valid\"],[[42802,42802],\"mapped\",[42803]],[[42803,42803],\"valid\"],[[42804,42804],\"mapped\",[42805]],[[42805,42805],\"valid\"],[[42806,42806],\"mapped\",[42807]],[[42807,42807],\"valid\"],[[42808,42808],\"mapped\",[42809]],[[42809,42809],\"valid\"],[[42810,42810],\"mapped\",[42811]],[[42811,42811],\"valid\"],[[42812,42812],\"mapped\",[42813]],[[42813,42813],\"valid\"],[[42814,42814],\"mapped\",[42815]],[[42815,42815],\"valid\"],[[42816,42816],\"mapped\",[42817]],[[42817,42817],\"valid\"],[[42818,42818],\"mapped\",[42819]],[[42819,42819],\"valid\"],[[42820,42820],\"mapped\",[42821]],[[42821,42821],\"valid\"],[[42822,42822],\"mapped\",[42823]],[[42823,42823],\"valid\"],[[42824,42824],\"mapped\",[42825]],[[42825,42825],\"valid\"],[[42826,42826],\"mapped\",[42827]],[[42827,42827],\"valid\"],[[42828,42828],\"mapped\",[42829]],[[42829,42829],\"valid\"],[[42830,42830],\"mapped\",[42831]],[[42831,42831],\"valid\"],[[42832,42832],\"mapped\",[42833]],[[42833,42833],\"valid\"],[[42834,42834],\"mapped\",[42835]],[[42835,42835],\"valid\"],[[42836,42836],\"mapped\",[42837]],[[42837,42837],\"valid\"],[[42838,42838],\"mapped\",[42839]],[[42839,42839],\"valid\"],[[42840,42840],\"mapped\",[42841]],[[42841,42841],\"valid\"],[[42842,42842],\"mapped\",[42843]],[[42843,42843],\"valid\"],[[42844,42844],\"mapped\",[42845]],[[42845,42845],\"valid\"],[[42846,42846],\"mapped\",[42847]],[[42847,42847],\"valid\"],[[42848,42848],\"mapped\",[42849]],[[42849,42849],\"valid\"],[[42850,42850],\"mapped\",[42851]],[[42851,42851],\"valid\"],[[42852,42852],\"mapped\",[42853]],[[42853,42853],\"valid\"],[[42854,42854],\"mapped\",[42855]],[[42855,42855],\"valid\"],[[42856,42856],\"mapped\",[42857]],[[42857,42857],\"valid\"],[[42858,42858],\"mapped\",[42859]],[[42859,42859],\"valid\"],[[42860,42860],\"mapped\",[42861]],[[42861,42861],\"valid\"],[[42862,42862],\"mapped\",[42863]],[[42863,42863],\"valid\"],[[42864,42864],\"mapped\",[42863]],[[42865,42872],\"valid\"],[[42873,42873],\"mapped\",[42874]],[[42874,42874],\"valid\"],[[42875,42875],\"mapped\",[42876]],[[42876,42876],\"valid\"],[[42877,42877],\"mapped\",[7545]],[[42878,42878],\"mapped\",[42879]],[[42879,42879],\"valid\"],[[42880,42880],\"mapped\",[42881]],[[42881,42881],\"valid\"],[[42882,42882],\"mapped\",[42883]],[[42883,42883],\"valid\"],[[42884,42884],\"mapped\",[42885]],[[42885,42885],\"valid\"],[[42886,42886],\"mapped\",[42887]],[[42887,42888],\"valid\"],[[42889,42890],\"valid\",[],\"NV8\"],[[42891,42891],\"mapped\",[42892]],[[42892,42892],\"valid\"],[[42893,42893],\"mapped\",[613]],[[42894,42894],\"valid\"],[[42895,42895],\"valid\"],[[42896,42896],\"mapped\",[42897]],[[42897,42897],\"valid\"],[[42898,42898],\"mapped\",[42899]],[[42899,42899],\"valid\"],[[42900,42901],\"valid\"],[[42902,42902],\"mapped\",[42903]],[[42903,42903],\"valid\"],[[42904,42904],\"mapped\",[42905]],[[42905,42905],\"valid\"],[[42906,42906],\"mapped\",[42907]],[[42907,42907],\"valid\"],[[42908,42908],\"mapped\",[42909]],[[42909,42909],\"valid\"],[[42910,42910],\"mapped\",[42911]],[[42911,42911],\"valid\"],[[42912,42912],\"mapped\",[42913]],[[42913,42913],\"valid\"],[[42914,42914],\"mapped\",[42915]],[[42915,42915],\"valid\"],[[42916,42916],\"mapped\",[42917]],[[42917,42917],\"valid\"],[[42918,42918],\"mapped\",[42919]],[[42919,42919],\"valid\"],[[42920,42920],\"mapped\",[42921]],[[42921,42921],\"valid\"],[[42922,42922],\"mapped\",[614]],[[42923,42923],\"mapped\",[604]],[[42924,42924],\"mapped\",[609]],[[42925,42925],\"mapped\",[620]],[[42926,42927],\"disallowed\"],[[42928,42928],\"mapped\",[670]],[[42929,42929],\"mapped\",[647]],[[42930,42930],\"mapped\",[669]],[[42931,42931],\"mapped\",[43859]],[[42932,42932],\"mapped\",[42933]],[[42933,42933],\"valid\"],[[42934,42934],\"mapped\",[42935]],[[42935,42935],\"valid\"],[[42936,42998],\"disallowed\"],[[42999,42999],\"valid\"],[[43000,43000],\"mapped\",[295]],[[43001,43001],\"mapped\",[339]],[[43002,43002],\"valid\"],[[43003,43007],\"valid\"],[[43008,43047],\"valid\"],[[43048,43051],\"valid\",[],\"NV8\"],[[43052,43055],\"disallowed\"],[[43056,43065],\"valid\",[],\"NV8\"],[[43066,43071],\"disallowed\"],[[43072,43123],\"valid\"],[[43124,43127],\"valid\",[],\"NV8\"],[[43128,43135],\"disallowed\"],[[43136,43204],\"valid\"],[[43205,43213],\"disallowed\"],[[43214,43215],\"valid\",[],\"NV8\"],[[43216,43225],\"valid\"],[[43226,43231],\"disallowed\"],[[43232,43255],\"valid\"],[[43256,43258],\"valid\",[],\"NV8\"],[[43259,43259],\"valid\"],[[43260,43260],\"valid\",[],\"NV8\"],[[43261,43261],\"valid\"],[[43262,43263],\"disallowed\"],[[43264,43309],\"valid\"],[[43310,43311],\"valid\",[],\"NV8\"],[[43312,43347],\"valid\"],[[43348,43358],\"disallowed\"],[[43359,43359],\"valid\",[],\"NV8\"],[[43360,43388],\"valid\",[],\"NV8\"],[[43389,43391],\"disallowed\"],[[43392,43456],\"valid\"],[[43457,43469],\"valid\",[],\"NV8\"],[[43470,43470],\"disallowed\"],[[43471,43481],\"valid\"],[[43482,43485],\"disallowed\"],[[43486,43487],\"valid\",[],\"NV8\"],[[43488,43518],\"valid\"],[[43519,43519],\"disallowed\"],[[43520,43574],\"valid\"],[[43575,43583],\"disallowed\"],[[43584,43597],\"valid\"],[[43598,43599],\"disallowed\"],[[43600,43609],\"valid\"],[[43610,43611],\"disallowed\"],[[43612,43615],\"valid\",[],\"NV8\"],[[43616,43638],\"valid\"],[[43639,43641],\"valid\",[],\"NV8\"],[[43642,43643],\"valid\"],[[43644,43647],\"valid\"],[[43648,43714],\"valid\"],[[43715,43738],\"disallowed\"],[[43739,43741],\"valid\"],[[43742,43743],\"valid\",[],\"NV8\"],[[43744,43759],\"valid\"],[[43760,43761],\"valid\",[],\"NV8\"],[[43762,43766],\"valid\"],[[43767,43776],\"disallowed\"],[[43777,43782],\"valid\"],[[43783,43784],\"disallowed\"],[[43785,43790],\"valid\"],[[43791,43792],\"disallowed\"],[[43793,43798],\"valid\"],[[43799,43807],\"disallowed\"],[[43808,43814],\"valid\"],[[43815,43815],\"disallowed\"],[[43816,43822],\"valid\"],[[43823,43823],\"disallowed\"],[[43824,43866],\"valid\"],[[43867,43867],\"valid\",[],\"NV8\"],[[43868,43868],\"mapped\",[42791]],[[43869,43869],\"mapped\",[43831]],[[43870,43870],\"mapped\",[619]],[[43871,43871],\"mapped\",[43858]],[[43872,43875],\"valid\"],[[43876,43877],\"valid\"],[[43878,43887],\"disallowed\"],[[43888,43888],\"mapped\",[5024]],[[43889,43889],\"mapped\",[5025]],[[43890,43890],\"mapped\",[5026]],[[43891,43891],\"mapped\",[5027]],[[43892,43892],\"mapped\",[5028]],[[43893,43893],\"mapped\",[5029]],[[43894,43894],\"mapped\",[5030]],[[43895,43895],\"mapped\",[5031]],[[43896,43896],\"mapped\",[5032]],[[43897,43897],\"mapped\",[5033]],[[43898,43898],\"mapped\",[5034]],[[43899,43899],\"mapped\",[5035]],[[43900,43900],\"mapped\",[5036]],[[43901,43901],\"mapped\",[5037]],[[43902,43902],\"mapped\",[5038]],[[43903,43903],\"mapped\",[5039]],[[43904,43904],\"mapped\",[5040]],[[43905,43905],\"mapped\",[5041]],[[43906,43906],\"mapped\",[5042]],[[43907,43907],\"mapped\",[5043]],[[43908,43908],\"mapped\",[5044]],[[43909,43909],\"mapped\",[5045]],[[43910,43910],\"mapped\",[5046]],[[43911,43911],\"mapped\",[5047]],[[43912,43912],\"mapped\",[5048]],[[43913,43913],\"mapped\",[5049]],[[43914,43914],\"mapped\",[5050]],[[43915,43915],\"mapped\",[5051]],[[43916,43916],\"mapped\",[5052]],[[43917,43917],\"mapped\",[5053]],[[43918,43918],\"mapped\",[5054]],[[43919,43919],\"mapped\",[5055]],[[43920,43920],\"mapped\",[5056]],[[43921,43921],\"mapped\",[5057]],[[43922,43922],\"mapped\",[5058]],[[43923,43923],\"mapped\",[5059]],[[43924,43924],\"mapped\",[5060]],[[43925,43925],\"mapped\",[5061]],[[43926,43926],\"mapped\",[5062]],[[43927,43927],\"mapped\",[5063]],[[43928,43928],\"mapped\",[5064]],[[43929,43929],\"mapped\",[5065]],[[43930,43930],\"mapped\",[5066]],[[43931,43931],\"mapped\",[5067]],[[43932,43932],\"mapped\",[5068]],[[43933,43933],\"mapped\",[5069]],[[43934,43934],\"mapped\",[5070]],[[43935,43935],\"mapped\",[5071]],[[43936,43936],\"mapped\",[5072]],[[43937,43937],\"mapped\",[5073]],[[43938,43938],\"mapped\",[5074]],[[43939,43939],\"mapped\",[5075]],[[43940,43940],\"mapped\",[5076]],[[43941,43941],\"mapped\",[5077]],[[43942,43942],\"mapped\",[5078]],[[43943,43943],\"mapped\",[5079]],[[43944,43944],\"mapped\",[5080]],[[43945,43945],\"mapped\",[5081]],[[43946,43946],\"mapped\",[5082]],[[43947,43947],\"mapped\",[5083]],[[43948,43948],\"mapped\",[5084]],[[43949,43949],\"mapped\",[5085]],[[43950,43950],\"mapped\",[5086]],[[43951,43951],\"mapped\",[5087]],[[43952,43952],\"mapped\",[5088]],[[43953,43953],\"mapped\",[5089]],[[43954,43954],\"mapped\",[5090]],[[43955,43955],\"mapped\",[5091]],[[43956,43956],\"mapped\",[5092]],[[43957,43957],\"mapped\",[5093]],[[43958,43958],\"mapped\",[5094]],[[43959,43959],\"mapped\",[5095]],[[43960,43960],\"mapped\",[5096]],[[43961,43961],\"mapped\",[5097]],[[43962,43962],\"mapped\",[5098]],[[43963,43963],\"mapped\",[5099]],[[43964,43964],\"mapped\",[5100]],[[43965,43965],\"mapped\",[5101]],[[43966,43966],\"mapped\",[5102]],[[43967,43967],\"mapped\",[5103]],[[43968,44010],\"valid\"],[[44011,44011],\"valid\",[],\"NV8\"],[[44012,44013],\"valid\"],[[44014,44015],\"disallowed\"],[[44016,44025],\"valid\"],[[44026,44031],\"disallowed\"],[[44032,55203],\"valid\"],[[55204,55215],\"disallowed\"],[[55216,55238],\"valid\",[],\"NV8\"],[[55239,55242],\"disallowed\"],[[55243,55291],\"valid\",[],\"NV8\"],[[55292,55295],\"disallowed\"],[[55296,57343],\"disallowed\"],[[57344,63743],\"disallowed\"],[[63744,63744],\"mapped\",[35912]],[[63745,63745],\"mapped\",[26356]],[[63746,63746],\"mapped\",[36554]],[[63747,63747],\"mapped\",[36040]],[[63748,63748],\"mapped\",[28369]],[[63749,63749],\"mapped\",[20018]],[[63750,63750],\"mapped\",[21477]],[[63751,63752],\"mapped\",[40860]],[[63753,63753],\"mapped\",[22865]],[[63754,63754],\"mapped\",[37329]],[[63755,63755],\"mapped\",[21895]],[[63756,63756],\"mapped\",[22856]],[[63757,63757],\"mapped\",[25078]],[[63758,63758],\"mapped\",[30313]],[[63759,63759],\"mapped\",[32645]],[[63760,63760],\"mapped\",[34367]],[[63761,63761],\"mapped\",[34746]],[[63762,63762],\"mapped\",[35064]],[[63763,63763],\"mapped\",[37007]],[[63764,63764],\"mapped\",[27138]],[[63765,63765],\"mapped\",[27931]],[[63766,63766],\"mapped\",[28889]],[[63767,63767],\"mapped\",[29662]],[[63768,63768],\"mapped\",[33853]],[[63769,63769],\"mapped\",[37226]],[[63770,63770],\"mapped\",[39409]],[[63771,63771],\"mapped\",[20098]],[[63772,63772],\"mapped\",[21365]],[[63773,63773],\"mapped\",[27396]],[[63774,63774],\"mapped\",[29211]],[[63775,63775],\"mapped\",[34349]],[[63776,63776],\"mapped\",[40478]],[[63777,63777],\"mapped\",[23888]],[[63778,63778],\"mapped\",[28651]],[[63779,63779],\"mapped\",[34253]],[[63780,63780],\"mapped\",[35172]],[[63781,63781],\"mapped\",[25289]],[[63782,63782],\"mapped\",[33240]],[[63783,63783],\"mapped\",[34847]],[[63784,63784],\"mapped\",[24266]],[[63785,63785],\"mapped\",[26391]],[[63786,63786],\"mapped\",[28010]],[[63787,63787],\"mapped\",[29436]],[[63788,63788],\"mapped\",[37070]],[[63789,63789],\"mapped\",[20358]],[[63790,63790],\"mapped\",[20919]],[[63791,63791],\"mapped\",[21214]],[[63792,63792],\"mapped\",[25796]],[[63793,63793],\"mapped\",[27347]],[[63794,63794],\"mapped\",[29200]],[[63795,63795],\"mapped\",[30439]],[[63796,63796],\"mapped\",[32769]],[[63797,63797],\"mapped\",[34310]],[[63798,63798],\"mapped\",[34396]],[[63799,63799],\"mapped\",[36335]],[[63800,63800],\"mapped\",[38706]],[[63801,63801],\"mapped\",[39791]],[[63802,63802],\"mapped\",[40442]],[[63803,63803],\"mapped\",[30860]],[[63804,63804],\"mapped\",[31103]],[[63805,63805],\"mapped\",[32160]],[[63806,63806],\"mapped\",[33737]],[[63807,63807],\"mapped\",[37636]],[[63808,63808],\"mapped\",[40575]],[[63809,63809],\"mapped\",[35542]],[[63810,63810],\"mapped\",[22751]],[[63811,63811],\"mapped\",[24324]],[[63812,63812],\"mapped\",[31840]],[[63813,63813],\"mapped\",[32894]],[[63814,63814],\"mapped\",[29282]],[[63815,63815],\"mapped\",[30922]],[[63816,63816],\"mapped\",[36034]],[[63817,63817],\"mapped\",[38647]],[[63818,63818],\"mapped\",[22744]],[[63819,63819],\"mapped\",[23650]],[[63820,63820],\"mapped\",[27155]],[[63821,63821],\"mapped\",[28122]],[[63822,63822],\"mapped\",[28431]],[[63823,63823],\"mapped\",[32047]],[[63824,63824],\"mapped\",[32311]],[[63825,63825],\"mapped\",[38475]],[[63826,63826],\"mapped\",[21202]],[[63827,63827],\"mapped\",[32907]],[[63828,63828],\"mapped\",[20956]],[[63829,63829],\"mapped\",[20940]],[[63830,63830],\"mapped\",[31260]],[[63831,63831],\"mapped\",[32190]],[[63832,63832],\"mapped\",[33777]],[[63833,63833],\"mapped\",[38517]],[[63834,63834],\"mapped\",[35712]],[[63835,63835],\"mapped\",[25295]],[[63836,63836],\"mapped\",[27138]],[[63837,63837],\"mapped\",[35582]],[[63838,63838],\"mapped\",[20025]],[[63839,63839],\"mapped\",[23527]],[[63840,63840],\"mapped\",[24594]],[[63841,63841],\"mapped\",[29575]],[[63842,63842],\"mapped\",[30064]],[[63843,63843],\"mapped\",[21271]],[[63844,63844],\"mapped\",[30971]],[[63845,63845],\"mapped\",[20415]],[[63846,63846],\"mapped\",[24489]],[[63847,63847],\"mapped\",[19981]],[[63848,63848],\"mapped\",[27852]],[[63849,63849],\"mapped\",[25976]],[[63850,63850],\"mapped\",[32034]],[[63851,63851],\"mapped\",[21443]],[[63852,63852],\"mapped\",[22622]],[[63853,63853],\"mapped\",[30465]],[[63854,63854],\"mapped\",[33865]],[[63855,63855],\"mapped\",[35498]],[[63856,63856],\"mapped\",[27578]],[[63857,63857],\"mapped\",[36784]],[[63858,63858],\"mapped\",[27784]],[[63859,63859],\"mapped\",[25342]],[[63860,63860],\"mapped\",[33509]],[[63861,63861],\"mapped\",[25504]],[[63862,63862],\"mapped\",[30053]],[[63863,63863],\"mapped\",[20142]],[[63864,63864],\"mapped\",[20841]],[[63865,63865],\"mapped\",[20937]],[[63866,63866],\"mapped\",[26753]],[[63867,63867],\"mapped\",[31975]],[[63868,63868],\"mapped\",[33391]],[[63869,63869],\"mapped\",[35538]],[[63870,63870],\"mapped\",[37327]],[[63871,63871],\"mapped\",[21237]],[[63872,63872],\"mapped\",[21570]],[[63873,63873],\"mapped\",[22899]],[[63874,63874],\"mapped\",[24300]],[[63875,63875],\"mapped\",[26053]],[[63876,63876],\"mapped\",[28670]],[[63877,63877],\"mapped\",[31018]],[[63878,63878],\"mapped\",[38317]],[[63879,63879],\"mapped\",[39530]],[[63880,63880],\"mapped\",[40599]],[[63881,63881],\"mapped\",[40654]],[[63882,63882],\"mapped\",[21147]],[[63883,63883],\"mapped\",[26310]],[[63884,63884],\"mapped\",[27511]],[[63885,63885],\"mapped\",[36706]],[[63886,63886],\"mapped\",[24180]],[[63887,63887],\"mapped\",[24976]],[[63888,63888],\"mapped\",[25088]],[[63889,63889],\"mapped\",[25754]],[[63890,63890],\"mapped\",[28451]],[[63891,63891],\"mapped\",[29001]],[[63892,63892],\"mapped\",[29833]],[[63893,63893],\"mapped\",[31178]],[[63894,63894],\"mapped\",[32244]],[[63895,63895],\"mapped\",[32879]],[[63896,63896],\"mapped\",[36646]],[[63897,63897],\"mapped\",[34030]],[[63898,63898],\"mapped\",[36899]],[[63899,63899],\"mapped\",[37706]],[[63900,63900],\"mapped\",[21015]],[[63901,63901],\"mapped\",[21155]],[[63902,63902],\"mapped\",[21693]],[[63903,63903],\"mapped\",[28872]],[[63904,63904],\"mapped\",[35010]],[[63905,63905],\"mapped\",[35498]],[[63906,63906],\"mapped\",[24265]],[[63907,63907],\"mapped\",[24565]],[[63908,63908],\"mapped\",[25467]],[[63909,63909],\"mapped\",[27566]],[[63910,63910],\"mapped\",[31806]],[[63911,63911],\"mapped\",[29557]],[[63912,63912],\"mapped\",[20196]],[[63913,63913],\"mapped\",[22265]],[[63914,63914],\"mapped\",[23527]],[[63915,63915],\"mapped\",[23994]],[[63916,63916],\"mapped\",[24604]],[[63917,63917],\"mapped\",[29618]],[[63918,63918],\"mapped\",[29801]],[[63919,63919],\"mapped\",[32666]],[[63920,63920],\"mapped\",[32838]],[[63921,63921],\"mapped\",[37428]],[[63922,63922],\"mapped\",[38646]],[[63923,63923],\"mapped\",[38728]],[[63924,63924],\"mapped\",[38936]],[[63925,63925],\"mapped\",[20363]],[[63926,63926],\"mapped\",[31150]],[[63927,63927],\"mapped\",[37300]],[[63928,63928],\"mapped\",[38584]],[[63929,63929],\"mapped\",[24801]],[[63930,63930],\"mapped\",[20102]],[[63931,63931],\"mapped\",[20698]],[[63932,63932],\"mapped\",[23534]],[[63933,63933],\"mapped\",[23615]],[[63934,63934],\"mapped\",[26009]],[[63935,63935],\"mapped\",[27138]],[[63936,63936],\"mapped\",[29134]],[[63937,63937],\"mapped\",[30274]],[[63938,63938],\"mapped\",[34044]],[[63939,63939],\"mapped\",[36988]],[[63940,63940],\"mapped\",[40845]],[[63941,63941],\"mapped\",[26248]],[[63942,63942],\"mapped\",[38446]],[[63943,63943],\"mapped\",[21129]],[[63944,63944],\"mapped\",[26491]],[[63945,63945],\"mapped\",[26611]],[[63946,63946],\"mapped\",[27969]],[[63947,63947],\"mapped\",[28316]],[[63948,63948],\"mapped\",[29705]],[[63949,63949],\"mapped\",[30041]],[[63950,63950],\"mapped\",[30827]],[[63951,63951],\"mapped\",[32016]],[[63952,63952],\"mapped\",[39006]],[[63953,63953],\"mapped\",[20845]],[[63954,63954],\"mapped\",[25134]],[[63955,63955],\"mapped\",[38520]],[[63956,63956],\"mapped\",[20523]],[[63957,63957],\"mapped\",[23833]],[[63958,63958],\"mapped\",[28138]],[[63959,63959],\"mapped\",[36650]],[[63960,63960],\"mapped\",[24459]],[[63961,63961],\"mapped\",[24900]],[[63962,63962],\"mapped\",[26647]],[[63963,63963],\"mapped\",[29575]],[[63964,63964],\"mapped\",[38534]],[[63965,63965],\"mapped\",[21033]],[[63966,63966],\"mapped\",[21519]],[[63967,63967],\"mapped\",[23653]],[[63968,63968],\"mapped\",[26131]],[[63969,63969],\"mapped\",[26446]],[[63970,63970],\"mapped\",[26792]],[[63971,63971],\"mapped\",[27877]],[[63972,63972],\"mapped\",[29702]],[[63973,63973],\"mapped\",[30178]],[[63974,63974],\"mapped\",[32633]],[[63975,63975],\"mapped\",[35023]],[[63976,63976],\"mapped\",[35041]],[[63977,63977],\"mapped\",[37324]],[[63978,63978],\"mapped\",[38626]],[[63979,63979],\"mapped\",[21311]],[[63980,63980],\"mapped\",[28346]],[[63981,63981],\"mapped\",[21533]],[[63982,63982],\"mapped\",[29136]],[[63983,63983],\"mapped\",[29848]],[[63984,63984],\"mapped\",[34298]],[[63985,63985],\"mapped\",[38563]],[[63986,63986],\"mapped\",[40023]],[[63987,63987],\"mapped\",[40607]],[[63988,63988],\"mapped\",[26519]],[[63989,63989],\"mapped\",[28107]],[[63990,63990],\"mapped\",[33256]],[[63991,63991],\"mapped\",[31435]],[[63992,63992],\"mapped\",[31520]],[[63993,63993],\"mapped\",[31890]],[[63994,63994],\"mapped\",[29376]],[[63995,63995],\"mapped\",[28825]],[[63996,63996],\"mapped\",[35672]],[[63997,63997],\"mapped\",[20160]],[[63998,63998],\"mapped\",[33590]],[[63999,63999],\"mapped\",[21050]],[[64000,64000],\"mapped\",[20999]],[[64001,64001],\"mapped\",[24230]],[[64002,64002],\"mapped\",[25299]],[[64003,64003],\"mapped\",[31958]],[[64004,64004],\"mapped\",[23429]],[[64005,64005],\"mapped\",[27934]],[[64006,64006],\"mapped\",[26292]],[[64007,64007],\"mapped\",[36667]],[[64008,64008],\"mapped\",[34892]],[[64009,64009],\"mapped\",[38477]],[[64010,64010],\"mapped\",[35211]],[[64011,64011],\"mapped\",[24275]],[[64012,64012],\"mapped\",[20800]],[[64013,64013],\"mapped\",[21952]],[[64014,64015],\"valid\"],[[64016,64016],\"mapped\",[22618]],[[64017,64017],\"valid\"],[[64018,64018],\"mapped\",[26228]],[[64019,64020],\"valid\"],[[64021,64021],\"mapped\",[20958]],[[64022,64022],\"mapped\",[29482]],[[64023,64023],\"mapped\",[30410]],[[64024,64024],\"mapped\",[31036]],[[64025,64025],\"mapped\",[31070]],[[64026,64026],\"mapped\",[31077]],[[64027,64027],\"mapped\",[31119]],[[64028,64028],\"mapped\",[38742]],[[64029,64029],\"mapped\",[31934]],[[64030,64030],\"mapped\",[32701]],[[64031,64031],\"valid\"],[[64032,64032],\"mapped\",[34322]],[[64033,64033],\"valid\"],[[64034,64034],\"mapped\",[35576]],[[64035,64036],\"valid\"],[[64037,64037],\"mapped\",[36920]],[[64038,64038],\"mapped\",[37117]],[[64039,64041],\"valid\"],[[64042,64042],\"mapped\",[39151]],[[64043,64043],\"mapped\",[39164]],[[64044,64044],\"mapped\",[39208]],[[64045,64045],\"mapped\",[40372]],[[64046,64046],\"mapped\",[37086]],[[64047,64047],\"mapped\",[38583]],[[64048,64048],\"mapped\",[20398]],[[64049,64049],\"mapped\",[20711]],[[64050,64050],\"mapped\",[20813]],[[64051,64051],\"mapped\",[21193]],[[64052,64052],\"mapped\",[21220]],[[64053,64053],\"mapped\",[21329]],[[64054,64054],\"mapped\",[21917]],[[64055,64055],\"mapped\",[22022]],[[64056,64056],\"mapped\",[22120]],[[64057,64057],\"mapped\",[22592]],[[64058,64058],\"mapped\",[22696]],[[64059,64059],\"mapped\",[23652]],[[64060,64060],\"mapped\",[23662]],[[64061,64061],\"mapped\",[24724]],[[64062,64062],\"mapped\",[24936]],[[64063,64063],\"mapped\",[24974]],[[64064,64064],\"mapped\",[25074]],[[64065,64065],\"mapped\",[25935]],[[64066,64066],\"mapped\",[26082]],[[64067,64067],\"mapped\",[26257]],[[64068,64068],\"mapped\",[26757]],[[64069,64069],\"mapped\",[28023]],[[64070,64070],\"mapped\",[28186]],[[64071,64071],\"mapped\",[28450]],[[64072,64072],\"mapped\",[29038]],[[64073,64073],\"mapped\",[29227]],[[64074,64074],\"mapped\",[29730]],[[64075,64075],\"mapped\",[30865]],[[64076,64076],\"mapped\",[31038]],[[64077,64077],\"mapped\",[31049]],[[64078,64078],\"mapped\",[31048]],[[64079,64079],\"mapped\",[31056]],[[64080,64080],\"mapped\",[31062]],[[64081,64081],\"mapped\",[31069]],[[64082,64082],\"mapped\",[31117]],[[64083,64083],\"mapped\",[31118]],[[64084,64084],\"mapped\",[31296]],[[64085,64085],\"mapped\",[31361]],[[64086,64086],\"mapped\",[31680]],[[64087,64087],\"mapped\",[32244]],[[64088,64088],\"mapped\",[32265]],[[64089,64089],\"mapped\",[32321]],[[64090,64090],\"mapped\",[32626]],[[64091,64091],\"mapped\",[32773]],[[64092,64092],\"mapped\",[33261]],[[64093,64094],\"mapped\",[33401]],[[64095,64095],\"mapped\",[33879]],[[64096,64096],\"mapped\",[35088]],[[64097,64097],\"mapped\",[35222]],[[64098,64098],\"mapped\",[35585]],[[64099,64099],\"mapped\",[35641]],[[64100,64100],\"mapped\",[36051]],[[64101,64101],\"mapped\",[36104]],[[64102,64102],\"mapped\",[36790]],[[64103,64103],\"mapped\",[36920]],[[64104,64104],\"mapped\",[38627]],[[64105,64105],\"mapped\",[38911]],[[64106,64106],\"mapped\",[38971]],[[64107,64107],\"mapped\",[24693]],[[64108,64108],\"mapped\",[148206]],[[64109,64109],\"mapped\",[33304]],[[64110,64111],\"disallowed\"],[[64112,64112],\"mapped\",[20006]],[[64113,64113],\"mapped\",[20917]],[[64114,64114],\"mapped\",[20840]],[[64115,64115],\"mapped\",[20352]],[[64116,64116],\"mapped\",[20805]],[[64117,64117],\"mapped\",[20864]],[[64118,64118],\"mapped\",[21191]],[[64119,64119],\"mapped\",[21242]],[[64120,64120],\"mapped\",[21917]],[[64121,64121],\"mapped\",[21845]],[[64122,64122],\"mapped\",[21913]],[[64123,64123],\"mapped\",[21986]],[[64124,64124],\"mapped\",[22618]],[[64125,64125],\"mapped\",[22707]],[[64126,64126],\"mapped\",[22852]],[[64127,64127],\"mapped\",[22868]],[[64128,64128],\"mapped\",[23138]],[[64129,64129],\"mapped\",[23336]],[[64130,64130],\"mapped\",[24274]],[[64131,64131],\"mapped\",[24281]],[[64132,64132],\"mapped\",[24425]],[[64133,64133],\"mapped\",[24493]],[[64134,64134],\"mapped\",[24792]],[[64135,64135],\"mapped\",[24910]],[[64136,64136],\"mapped\",[24840]],[[64137,64137],\"mapped\",[24974]],[[64138,64138],\"mapped\",[24928]],[[64139,64139],\"mapped\",[25074]],[[64140,64140],\"mapped\",[25140]],[[64141,64141],\"mapped\",[25540]],[[64142,64142],\"mapped\",[25628]],[[64143,64143],\"mapped\",[25682]],[[64144,64144],\"mapped\",[25942]],[[64145,64145],\"mapped\",[26228]],[[64146,64146],\"mapped\",[26391]],[[64147,64147],\"mapped\",[26395]],[[64148,64148],\"mapped\",[26454]],[[64149,64149],\"mapped\",[27513]],[[64150,64150],\"mapped\",[27578]],[[64151,64151],\"mapped\",[27969]],[[64152,64152],\"mapped\",[28379]],[[64153,64153],\"mapped\",[28363]],[[64154,64154],\"mapped\",[28450]],[[64155,64155],\"mapped\",[28702]],[[64156,64156],\"mapped\",[29038]],[[64157,64157],\"mapped\",[30631]],[[64158,64158],\"mapped\",[29237]],[[64159,64159],\"mapped\",[29359]],[[64160,64160],\"mapped\",[29482]],[[64161,64161],\"mapped\",[29809]],[[64162,64162],\"mapped\",[29958]],[[64163,64163],\"mapped\",[30011]],[[64164,64164],\"mapped\",[30237]],[[64165,64165],\"mapped\",[30239]],[[64166,64166],\"mapped\",[30410]],[[64167,64167],\"mapped\",[30427]],[[64168,64168],\"mapped\",[30452]],[[64169,64169],\"mapped\",[30538]],[[64170,64170],\"mapped\",[30528]],[[64171,64171],\"mapped\",[30924]],[[64172,64172],\"mapped\",[31409]],[[64173,64173],\"mapped\",[31680]],[[64174,64174],\"mapped\",[31867]],[[64175,64175],\"mapped\",[32091]],[[64176,64176],\"mapped\",[32244]],[[64177,64177],\"mapped\",[32574]],[[64178,64178],\"mapped\",[32773]],[[64179,64179],\"mapped\",[33618]],[[64180,64180],\"mapped\",[33775]],[[64181,64181],\"mapped\",[34681]],[[64182,64182],\"mapped\",[35137]],[[64183,64183],\"mapped\",[35206]],[[64184,64184],\"mapped\",[35222]],[[64185,64185],\"mapped\",[35519]],[[64186,64186],\"mapped\",[35576]],[[64187,64187],\"mapped\",[35531]],[[64188,64188],\"mapped\",[35585]],[[64189,64189],\"mapped\",[35582]],[[64190,64190],\"mapped\",[35565]],[[64191,64191],\"mapped\",[35641]],[[64192,64192],\"mapped\",[35722]],[[64193,64193],\"mapped\",[36104]],[[64194,64194],\"mapped\",[36664]],[[64195,64195],\"mapped\",[36978]],[[64196,64196],\"mapped\",[37273]],[[64197,64197],\"mapped\",[37494]],[[64198,64198],\"mapped\",[38524]],[[64199,64199],\"mapped\",[38627]],[[64200,64200],\"mapped\",[38742]],[[64201,64201],\"mapped\",[38875]],[[64202,64202],\"mapped\",[38911]],[[64203,64203],\"mapped\",[38923]],[[64204,64204],\"mapped\",[38971]],[[64205,64205],\"mapped\",[39698]],[[64206,64206],\"mapped\",[40860]],[[64207,64207],\"mapped\",[141386]],[[64208,64208],\"mapped\",[141380]],[[64209,64209],\"mapped\",[144341]],[[64210,64210],\"mapped\",[15261]],[[64211,64211],\"mapped\",[16408]],[[64212,64212],\"mapped\",[16441]],[[64213,64213],\"mapped\",[152137]],[[64214,64214],\"mapped\",[154832]],[[64215,64215],\"mapped\",[163539]],[[64216,64216],\"mapped\",[40771]],[[64217,64217],\"mapped\",[40846]],[[64218,64255],\"disallowed\"],[[64256,64256],\"mapped\",[102,102]],[[64257,64257],\"mapped\",[102,105]],[[64258,64258],\"mapped\",[102,108]],[[64259,64259],\"mapped\",[102,102,105]],[[64260,64260],\"mapped\",[102,102,108]],[[64261,64262],\"mapped\",[115,116]],[[64263,64274],\"disallowed\"],[[64275,64275],\"mapped\",[1396,1398]],[[64276,64276],\"mapped\",[1396,1381]],[[64277,64277],\"mapped\",[1396,1387]],[[64278,64278],\"mapped\",[1406,1398]],[[64279,64279],\"mapped\",[1396,1389]],[[64280,64284],\"disallowed\"],[[64285,64285],\"mapped\",[1497,1460]],[[64286,64286],\"valid\"],[[64287,64287],\"mapped\",[1522,1463]],[[64288,64288],\"mapped\",[1506]],[[64289,64289],\"mapped\",[1488]],[[64290,64290],\"mapped\",[1491]],[[64291,64291],\"mapped\",[1492]],[[64292,64292],\"mapped\",[1499]],[[64293,64293],\"mapped\",[1500]],[[64294,64294],\"mapped\",[1501]],[[64295,64295],\"mapped\",[1512]],[[64296,64296],\"mapped\",[1514]],[[64297,64297],\"disallowed_STD3_mapped\",[43]],[[64298,64298],\"mapped\",[1513,1473]],[[64299,64299],\"mapped\",[1513,1474]],[[64300,64300],\"mapped\",[1513,1468,1473]],[[64301,64301],\"mapped\",[1513,1468,1474]],[[64302,64302],\"mapped\",[1488,1463]],[[64303,64303],\"mapped\",[1488,1464]],[[64304,64304],\"mapped\",[1488,1468]],[[64305,64305],\"mapped\",[1489,1468]],[[64306,64306],\"mapped\",[1490,1468]],[[64307,64307],\"mapped\",[1491,1468]],[[64308,64308],\"mapped\",[1492,1468]],[[64309,64309],\"mapped\",[1493,1468]],[[64310,64310],\"mapped\",[1494,1468]],[[64311,64311],\"disallowed\"],[[64312,64312],\"mapped\",[1496,1468]],[[64313,64313],\"mapped\",[1497,1468]],[[64314,64314],\"mapped\",[1498,1468]],[[64315,64315],\"mapped\",[1499,1468]],[[64316,64316],\"mapped\",[1500,1468]],[[64317,64317],\"disallowed\"],[[64318,64318],\"mapped\",[1502,1468]],[[64319,64319],\"disallowed\"],[[64320,64320],\"mapped\",[1504,1468]],[[64321,64321],\"mapped\",[1505,1468]],[[64322,64322],\"disallowed\"],[[64323,64323],\"mapped\",[1507,1468]],[[64324,64324],\"mapped\",[1508,1468]],[[64325,64325],\"disallowed\"],[[64326,64326],\"mapped\",[1510,1468]],[[64327,64327],\"mapped\",[1511,1468]],[[64328,64328],\"mapped\",[1512,1468]],[[64329,64329],\"mapped\",[1513,1468]],[[64330,64330],\"mapped\",[1514,1468]],[[64331,64331],\"mapped\",[1493,1465]],[[64332,64332],\"mapped\",[1489,1471]],[[64333,64333],\"mapped\",[1499,1471]],[[64334,64334],\"mapped\",[1508,1471]],[[64335,64335],\"mapped\",[1488,1500]],[[64336,64337],\"mapped\",[1649]],[[64338,64341],\"mapped\",[1659]],[[64342,64345],\"mapped\",[1662]],[[64346,64349],\"mapped\",[1664]],[[64350,64353],\"mapped\",[1658]],[[64354,64357],\"mapped\",[1663]],[[64358,64361],\"mapped\",[1657]],[[64362,64365],\"mapped\",[1700]],[[64366,64369],\"mapped\",[1702]],[[64370,64373],\"mapped\",[1668]],[[64374,64377],\"mapped\",[1667]],[[64378,64381],\"mapped\",[1670]],[[64382,64385],\"mapped\",[1671]],[[64386,64387],\"mapped\",[1677]],[[64388,64389],\"mapped\",[1676]],[[64390,64391],\"mapped\",[1678]],[[64392,64393],\"mapped\",[1672]],[[64394,64395],\"mapped\",[1688]],[[64396,64397],\"mapped\",[1681]],[[64398,64401],\"mapped\",[1705]],[[64402,64405],\"mapped\",[1711]],[[64406,64409],\"mapped\",[1715]],[[64410,64413],\"mapped\",[1713]],[[64414,64415],\"mapped\",[1722]],[[64416,64419],\"mapped\",[1723]],[[64420,64421],\"mapped\",[1728]],[[64422,64425],\"mapped\",[1729]],[[64426,64429],\"mapped\",[1726]],[[64430,64431],\"mapped\",[1746]],[[64432,64433],\"mapped\",[1747]],[[64434,64449],\"valid\",[],\"NV8\"],[[64450,64466],\"disallowed\"],[[64467,64470],\"mapped\",[1709]],[[64471,64472],\"mapped\",[1735]],[[64473,64474],\"mapped\",[1734]],[[64475,64476],\"mapped\",[1736]],[[64477,64477],\"mapped\",[1735,1652]],[[64478,64479],\"mapped\",[1739]],[[64480,64481],\"mapped\",[1733]],[[64482,64483],\"mapped\",[1737]],[[64484,64487],\"mapped\",[1744]],[[64488,64489],\"mapped\",[1609]],[[64490,64491],\"mapped\",[1574,1575]],[[64492,64493],\"mapped\",[1574,1749]],[[64494,64495],\"mapped\",[1574,1608]],[[64496,64497],\"mapped\",[1574,1735]],[[64498,64499],\"mapped\",[1574,1734]],[[64500,64501],\"mapped\",[1574,1736]],[[64502,64504],\"mapped\",[1574,1744]],[[64505,64507],\"mapped\",[1574,1609]],[[64508,64511],\"mapped\",[1740]],[[64512,64512],\"mapped\",[1574,1580]],[[64513,64513],\"mapped\",[1574,1581]],[[64514,64514],\"mapped\",[1574,1605]],[[64515,64515],\"mapped\",[1574,1609]],[[64516,64516],\"mapped\",[1574,1610]],[[64517,64517],\"mapped\",[1576,1580]],[[64518,64518],\"mapped\",[1576,1581]],[[64519,64519],\"mapped\",[1576,1582]],[[64520,64520],\"mapped\",[1576,1605]],[[64521,64521],\"mapped\",[1576,1609]],[[64522,64522],\"mapped\",[1576,1610]],[[64523,64523],\"mapped\",[1578,1580]],[[64524,64524],\"mapped\",[1578,1581]],[[64525,64525],\"mapped\",[1578,1582]],[[64526,64526],\"mapped\",[1578,1605]],[[64527,64527],\"mapped\",[1578,1609]],[[64528,64528],\"mapped\",[1578,1610]],[[64529,64529],\"mapped\",[1579,1580]],[[64530,64530],\"mapped\",[1579,1605]],[[64531,64531],\"mapped\",[1579,1609]],[[64532,64532],\"mapped\",[1579,1610]],[[64533,64533],\"mapped\",[1580,1581]],[[64534,64534],\"mapped\",[1580,1605]],[[64535,64535],\"mapped\",[1581,1580]],[[64536,64536],\"mapped\",[1581,1605]],[[64537,64537],\"mapped\",[1582,1580]],[[64538,64538],\"mapped\",[1582,1581]],[[64539,64539],\"mapped\",[1582,1605]],[[64540,64540],\"mapped\",[1587,1580]],[[64541,64541],\"mapped\",[1587,1581]],[[64542,64542],\"mapped\",[1587,1582]],[[64543,64543],\"mapped\",[1587,1605]],[[64544,64544],\"mapped\",[1589,1581]],[[64545,64545],\"mapped\",[1589,1605]],[[64546,64546],\"mapped\",[1590,1580]],[[64547,64547],\"mapped\",[1590,1581]],[[64548,64548],\"mapped\",[1590,1582]],[[64549,64549],\"mapped\",[1590,1605]],[[64550,64550],\"mapped\",[1591,1581]],[[64551,64551],\"mapped\",[1591,1605]],[[64552,64552],\"mapped\",[1592,1605]],[[64553,64553],\"mapped\",[1593,1580]],[[64554,64554],\"mapped\",[1593,1605]],[[64555,64555],\"mapped\",[1594,1580]],[[64556,64556],\"mapped\",[1594,1605]],[[64557,64557],\"mapped\",[1601,1580]],[[64558,64558],\"mapped\",[1601,1581]],[[64559,64559],\"mapped\",[1601,1582]],[[64560,64560],\"mapped\",[1601,1605]],[[64561,64561],\"mapped\",[1601,1609]],[[64562,64562],\"mapped\",[1601,1610]],[[64563,64563],\"mapped\",[1602,1581]],[[64564,64564],\"mapped\",[1602,1605]],[[64565,64565],\"mapped\",[1602,1609]],[[64566,64566],\"mapped\",[1602,1610]],[[64567,64567],\"mapped\",[1603,1575]],[[64568,64568],\"mapped\",[1603,1580]],[[64569,64569],\"mapped\",[1603,1581]],[[64570,64570],\"mapped\",[1603,1582]],[[64571,64571],\"mapped\",[1603,1604]],[[64572,64572],\"mapped\",[1603,1605]],[[64573,64573],\"mapped\",[1603,1609]],[[64574,64574],\"mapped\",[1603,1610]],[[64575,64575],\"mapped\",[1604,1580]],[[64576,64576],\"mapped\",[1604,1581]],[[64577,64577],\"mapped\",[1604,1582]],[[64578,64578],\"mapped\",[1604,1605]],[[64579,64579],\"mapped\",[1604,1609]],[[64580,64580],\"mapped\",[1604,1610]],[[64581,64581],\"mapped\",[1605,1580]],[[64582,64582],\"mapped\",[1605,1581]],[[64583,64583],\"mapped\",[1605,1582]],[[64584,64584],\"mapped\",[1605,1605]],[[64585,64585],\"mapped\",[1605,1609]],[[64586,64586],\"mapped\",[1605,1610]],[[64587,64587],\"mapped\",[1606,1580]],[[64588,64588],\"mapped\",[1606,1581]],[[64589,64589],\"mapped\",[1606,1582]],[[64590,64590],\"mapped\",[1606,1605]],[[64591,64591],\"mapped\",[1606,1609]],[[64592,64592],\"mapped\",[1606,1610]],[[64593,64593],\"mapped\",[1607,1580]],[[64594,64594],\"mapped\",[1607,1605]],[[64595,64595],\"mapped\",[1607,1609]],[[64596,64596],\"mapped\",[1607,1610]],[[64597,64597],\"mapped\",[1610,1580]],[[64598,64598],\"mapped\",[1610,1581]],[[64599,64599],\"mapped\",[1610,1582]],[[64600,64600],\"mapped\",[1610,1605]],[[64601,64601],\"mapped\",[1610,1609]],[[64602,64602],\"mapped\",[1610,1610]],[[64603,64603],\"mapped\",[1584,1648]],[[64604,64604],\"mapped\",[1585,1648]],[[64605,64605],\"mapped\",[1609,1648]],[[64606,64606],\"disallowed_STD3_mapped\",[32,1612,1617]],[[64607,64607],\"disallowed_STD3_mapped\",[32,1613,1617]],[[64608,64608],\"disallowed_STD3_mapped\",[32,1614,1617]],[[64609,64609],\"disallowed_STD3_mapped\",[32,1615,1617]],[[64610,64610],\"disallowed_STD3_mapped\",[32,1616,1617]],[[64611,64611],\"disallowed_STD3_mapped\",[32,1617,1648]],[[64612,64612],\"mapped\",[1574,1585]],[[64613,64613],\"mapped\",[1574,1586]],[[64614,64614],\"mapped\",[1574,1605]],[[64615,64615],\"mapped\",[1574,1606]],[[64616,64616],\"mapped\",[1574,1609]],[[64617,64617],\"mapped\",[1574,1610]],[[64618,64618],\"mapped\",[1576,1585]],[[64619,64619],\"mapped\",[1576,1586]],[[64620,64620],\"mapped\",[1576,1605]],[[64621,64621],\"mapped\",[1576,1606]],[[64622,64622],\"mapped\",[1576,1609]],[[64623,64623],\"mapped\",[1576,1610]],[[64624,64624],\"mapped\",[1578,1585]],[[64625,64625],\"mapped\",[1578,1586]],[[64626,64626],\"mapped\",[1578,1605]],[[64627,64627],\"mapped\",[1578,1606]],[[64628,64628],\"mapped\",[1578,1609]],[[64629,64629],\"mapped\",[1578,1610]],[[64630,64630],\"mapped\",[1579,1585]],[[64631,64631],\"mapped\",[1579,1586]],[[64632,64632],\"mapped\",[1579,1605]],[[64633,64633],\"mapped\",[1579,1606]],[[64634,64634],\"mapped\",[1579,1609]],[[64635,64635],\"mapped\",[1579,1610]],[[64636,64636],\"mapped\",[1601,1609]],[[64637,64637],\"mapped\",[1601,1610]],[[64638,64638],\"mapped\",[1602,1609]],[[64639,64639],\"mapped\",[1602,1610]],[[64640,64640],\"mapped\",[1603,1575]],[[64641,64641],\"mapped\",[1603,1604]],[[64642,64642],\"mapped\",[1603,1605]],[[64643,64643],\"mapped\",[1603,1609]],[[64644,64644],\"mapped\",[1603,1610]],[[64645,64645],\"mapped\",[1604,1605]],[[64646,64646],\"mapped\",[1604,1609]],[[64647,64647],\"mapped\",[1604,1610]],[[64648,64648],\"mapped\",[1605,1575]],[[64649,64649],\"mapped\",[1605,1605]],[[64650,64650],\"mapped\",[1606,1585]],[[64651,64651],\"mapped\",[1606,1586]],[[64652,64652],\"mapped\",[1606,1605]],[[64653,64653],\"mapped\",[1606,1606]],[[64654,64654],\"mapped\",[1606,1609]],[[64655,64655],\"mapped\",[1606,1610]],[[64656,64656],\"mapped\",[1609,1648]],[[64657,64657],\"mapped\",[1610,1585]],[[64658,64658],\"mapped\",[1610,1586]],[[64659,64659],\"mapped\",[1610,1605]],[[64660,64660],\"mapped\",[1610,1606]],[[64661,64661],\"mapped\",[1610,1609]],[[64662,64662],\"mapped\",[1610,1610]],[[64663,64663],\"mapped\",[1574,1580]],[[64664,64664],\"mapped\",[1574,1581]],[[64665,64665],\"mapped\",[1574,1582]],[[64666,64666],\"mapped\",[1574,1605]],[[64667,64667],\"mapped\",[1574,1607]],[[64668,64668],\"mapped\",[1576,1580]],[[64669,64669],\"mapped\",[1576,1581]],[[64670,64670],\"mapped\",[1576,1582]],[[64671,64671],\"mapped\",[1576,1605]],[[64672,64672],\"mapped\",[1576,1607]],[[64673,64673],\"mapped\",[1578,1580]],[[64674,64674],\"mapped\",[1578,1581]],[[64675,64675],\"mapped\",[1578,1582]],[[64676,64676],\"mapped\",[1578,1605]],[[64677,64677],\"mapped\",[1578,1607]],[[64678,64678],\"mapped\",[1579,1605]],[[64679,64679],\"mapped\",[1580,1581]],[[64680,64680],\"mapped\",[1580,1605]],[[64681,64681],\"mapped\",[1581,1580]],[[64682,64682],\"mapped\",[1581,1605]],[[64683,64683],\"mapped\",[1582,1580]],[[64684,64684],\"mapped\",[1582,1605]],[[64685,64685],\"mapped\",[1587,1580]],[[64686,64686],\"mapped\",[1587,1581]],[[64687,64687],\"mapped\",[1587,1582]],[[64688,64688],\"mapped\",[1587,1605]],[[64689,64689],\"mapped\",[1589,1581]],[[64690,64690],\"mapped\",[1589,1582]],[[64691,64691],\"mapped\",[1589,1605]],[[64692,64692],\"mapped\",[1590,1580]],[[64693,64693],\"mapped\",[1590,1581]],[[64694,64694],\"mapped\",[1590,1582]],[[64695,64695],\"mapped\",[1590,1605]],[[64696,64696],\"mapped\",[1591,1581]],[[64697,64697],\"mapped\",[1592,1605]],[[64698,64698],\"mapped\",[1593,1580]],[[64699,64699],\"mapped\",[1593,1605]],[[64700,64700],\"mapped\",[1594,1580]],[[64701,64701],\"mapped\",[1594,1605]],[[64702,64702],\"mapped\",[1601,1580]],[[64703,64703],\"mapped\",[1601,1581]],[[64704,64704],\"mapped\",[1601,1582]],[[64705,64705],\"mapped\",[1601,1605]],[[64706,64706],\"mapped\",[1602,1581]],[[64707,64707],\"mapped\",[1602,1605]],[[64708,64708],\"mapped\",[1603,1580]],[[64709,64709],\"mapped\",[1603,1581]],[[64710,64710],\"mapped\",[1603,1582]],[[64711,64711],\"mapped\",[1603,1604]],[[64712,64712],\"mapped\",[1603,1605]],[[64713,64713],\"mapped\",[1604,1580]],[[64714,64714],\"mapped\",[1604,1581]],[[64715,64715],\"mapped\",[1604,1582]],[[64716,64716],\"mapped\",[1604,1605]],[[64717,64717],\"mapped\",[1604,1607]],[[64718,64718],\"mapped\",[1605,1580]],[[64719,64719],\"mapped\",[1605,1581]],[[64720,64720],\"mapped\",[1605,1582]],[[64721,64721],\"mapped\",[1605,1605]],[[64722,64722],\"mapped\",[1606,1580]],[[64723,64723],\"mapped\",[1606,1581]],[[64724,64724],\"mapped\",[1606,1582]],[[64725,64725],\"mapped\",[1606,1605]],[[64726,64726],\"mapped\",[1606,1607]],[[64727,64727],\"mapped\",[1607,1580]],[[64728,64728],\"mapped\",[1607,1605]],[[64729,64729],\"mapped\",[1607,1648]],[[64730,64730],\"mapped\",[1610,1580]],[[64731,64731],\"mapped\",[1610,1581]],[[64732,64732],\"mapped\",[1610,1582]],[[64733,64733],\"mapped\",[1610,1605]],[[64734,64734],\"mapped\",[1610,1607]],[[64735,64735],\"mapped\",[1574,1605]],[[64736,64736],\"mapped\",[1574,1607]],[[64737,64737],\"mapped\",[1576,1605]],[[64738,64738],\"mapped\",[1576,1607]],[[64739,64739],\"mapped\",[1578,1605]],[[64740,64740],\"mapped\",[1578,1607]],[[64741,64741],\"mapped\",[1579,1605]],[[64742,64742],\"mapped\",[1579,1607]],[[64743,64743],\"mapped\",[1587,1605]],[[64744,64744],\"mapped\",[1587,1607]],[[64745,64745],\"mapped\",[1588,1605]],[[64746,64746],\"mapped\",[1588,1607]],[[64747,64747],\"mapped\",[1603,1604]],[[64748,64748],\"mapped\",[1603,1605]],[[64749,64749],\"mapped\",[1604,1605]],[[64750,64750],\"mapped\",[1606,1605]],[[64751,64751],\"mapped\",[1606,1607]],[[64752,64752],\"mapped\",[1610,1605]],[[64753,64753],\"mapped\",[1610,1607]],[[64754,64754],\"mapped\",[1600,1614,1617]],[[64755,64755],\"mapped\",[1600,1615,1617]],[[64756,64756],\"mapped\",[1600,1616,1617]],[[64757,64757],\"mapped\",[1591,1609]],[[64758,64758],\"mapped\",[1591,1610]],[[64759,64759],\"mapped\",[1593,1609]],[[64760,64760],\"mapped\",[1593,1610]],[[64761,64761],\"mapped\",[1594,1609]],[[64762,64762],\"mapped\",[1594,1610]],[[64763,64763],\"mapped\",[1587,1609]],[[64764,64764],\"mapped\",[1587,1610]],[[64765,64765],\"mapped\",[1588,1609]],[[64766,64766],\"mapped\",[1588,1610]],[[64767,64767],\"mapped\",[1581,1609]],[[64768,64768],\"mapped\",[1581,1610]],[[64769,64769],\"mapped\",[1580,1609]],[[64770,64770],\"mapped\",[1580,1610]],[[64771,64771],\"mapped\",[1582,1609]],[[64772,64772],\"mapped\",[1582,1610]],[[64773,64773],\"mapped\",[1589,1609]],[[64774,64774],\"mapped\",[1589,1610]],[[64775,64775],\"mapped\",[1590,1609]],[[64776,64776],\"mapped\",[1590,1610]],[[64777,64777],\"mapped\",[1588,1580]],[[64778,64778],\"mapped\",[1588,1581]],[[64779,64779],\"mapped\",[1588,1582]],[[64780,64780],\"mapped\",[1588,1605]],[[64781,64781],\"mapped\",[1588,1585]],[[64782,64782],\"mapped\",[1587,1585]],[[64783,64783],\"mapped\",[1589,1585]],[[64784,64784],\"mapped\",[1590,1585]],[[64785,64785],\"mapped\",[1591,1609]],[[64786,64786],\"mapped\",[1591,1610]],[[64787,64787],\"mapped\",[1593,1609]],[[64788,64788],\"mapped\",[1593,1610]],[[64789,64789],\"mapped\",[1594,1609]],[[64790,64790],\"mapped\",[1594,1610]],[[64791,64791],\"mapped\",[1587,1609]],[[64792,64792],\"mapped\",[1587,1610]],[[64793,64793],\"mapped\",[1588,1609]],[[64794,64794],\"mapped\",[1588,1610]],[[64795,64795],\"mapped\",[1581,1609]],[[64796,64796],\"mapped\",[1581,1610]],[[64797,64797],\"mapped\",[1580,1609]],[[64798,64798],\"mapped\",[1580,1610]],[[64799,64799],\"mapped\",[1582,1609]],[[64800,64800],\"mapped\",[1582,1610]],[[64801,64801],\"mapped\",[1589,1609]],[[64802,64802],\"mapped\",[1589,1610]],[[64803,64803],\"mapped\",[1590,1609]],[[64804,64804],\"mapped\",[1590,1610]],[[64805,64805],\"mapped\",[1588,1580]],[[64806,64806],\"mapped\",[1588,1581]],[[64807,64807],\"mapped\",[1588,1582]],[[64808,64808],\"mapped\",[1588,1605]],[[64809,64809],\"mapped\",[1588,1585]],[[64810,64810],\"mapped\",[1587,1585]],[[64811,64811],\"mapped\",[1589,1585]],[[64812,64812],\"mapped\",[1590,1585]],[[64813,64813],\"mapped\",[1588,1580]],[[64814,64814],\"mapped\",[1588,1581]],[[64815,64815],\"mapped\",[1588,1582]],[[64816,64816],\"mapped\",[1588,1605]],[[64817,64817],\"mapped\",[1587,1607]],[[64818,64818],\"mapped\",[1588,1607]],[[64819,64819],\"mapped\",[1591,1605]],[[64820,64820],\"mapped\",[1587,1580]],[[64821,64821],\"mapped\",[1587,1581]],[[64822,64822],\"mapped\",[1587,1582]],[[64823,64823],\"mapped\",[1588,1580]],[[64824,64824],\"mapped\",[1588,1581]],[[64825,64825],\"mapped\",[1588,1582]],[[64826,64826],\"mapped\",[1591,1605]],[[64827,64827],\"mapped\",[1592,1605]],[[64828,64829],\"mapped\",[1575,1611]],[[64830,64831],\"valid\",[],\"NV8\"],[[64832,64847],\"disallowed\"],[[64848,64848],\"mapped\",[1578,1580,1605]],[[64849,64850],\"mapped\",[1578,1581,1580]],[[64851,64851],\"mapped\",[1578,1581,1605]],[[64852,64852],\"mapped\",[1578,1582,1605]],[[64853,64853],\"mapped\",[1578,1605,1580]],[[64854,64854],\"mapped\",[1578,1605,1581]],[[64855,64855],\"mapped\",[1578,1605,1582]],[[64856,64857],\"mapped\",[1580,1605,1581]],[[64858,64858],\"mapped\",[1581,1605,1610]],[[64859,64859],\"mapped\",[1581,1605,1609]],[[64860,64860],\"mapped\",[1587,1581,1580]],[[64861,64861],\"mapped\",[1587,1580,1581]],[[64862,64862],\"mapped\",[1587,1580,1609]],[[64863,64864],\"mapped\",[1587,1605,1581]],[[64865,64865],\"mapped\",[1587,1605,1580]],[[64866,64867],\"mapped\",[1587,1605,1605]],[[64868,64869],\"mapped\",[1589,1581,1581]],[[64870,64870],\"mapped\",[1589,1605,1605]],[[64871,64872],\"mapped\",[1588,1581,1605]],[[64873,64873],\"mapped\",[1588,1580,1610]],[[64874,64875],\"mapped\",[1588,1605,1582]],[[64876,64877],\"mapped\",[1588,1605,1605]],[[64878,64878],\"mapped\",[1590,1581,1609]],[[64879,64880],\"mapped\",[1590,1582,1605]],[[64881,64882],\"mapped\",[1591,1605,1581]],[[64883,64883],\"mapped\",[1591,1605,1605]],[[64884,64884],\"mapped\",[1591,1605,1610]],[[64885,64885],\"mapped\",[1593,1580,1605]],[[64886,64887],\"mapped\",[1593,1605,1605]],[[64888,64888],\"mapped\",[1593,1605,1609]],[[64889,64889],\"mapped\",[1594,1605,1605]],[[64890,64890],\"mapped\",[1594,1605,1610]],[[64891,64891],\"mapped\",[1594,1605,1609]],[[64892,64893],\"mapped\",[1601,1582,1605]],[[64894,64894],\"mapped\",[1602,1605,1581]],[[64895,64895],\"mapped\",[1602,1605,1605]],[[64896,64896],\"mapped\",[1604,1581,1605]],[[64897,64897],\"mapped\",[1604,1581,1610]],[[64898,64898],\"mapped\",[1604,1581,1609]],[[64899,64900],\"mapped\",[1604,1580,1580]],[[64901,64902],\"mapped\",[1604,1582,1605]],[[64903,64904],\"mapped\",[1604,1605,1581]],[[64905,64905],\"mapped\",[1605,1581,1580]],[[64906,64906],\"mapped\",[1605,1581,1605]],[[64907,64907],\"mapped\",[1605,1581,1610]],[[64908,64908],\"mapped\",[1605,1580,1581]],[[64909,64909],\"mapped\",[1605,1580,1605]],[[64910,64910],\"mapped\",[1605,1582,1580]],[[64911,64911],\"mapped\",[1605,1582,1605]],[[64912,64913],\"disallowed\"],[[64914,64914],\"mapped\",[1605,1580,1582]],[[64915,64915],\"mapped\",[1607,1605,1580]],[[64916,64916],\"mapped\",[1607,1605,1605]],[[64917,64917],\"mapped\",[1606,1581,1605]],[[64918,64918],\"mapped\",[1606,1581,1609]],[[64919,64920],\"mapped\",[1606,1580,1605]],[[64921,64921],\"mapped\",[1606,1580,1609]],[[64922,64922],\"mapped\",[1606,1605,1610]],[[64923,64923],\"mapped\",[1606,1605,1609]],[[64924,64925],\"mapped\",[1610,1605,1605]],[[64926,64926],\"mapped\",[1576,1582,1610]],[[64927,64927],\"mapped\",[1578,1580,1610]],[[64928,64928],\"mapped\",[1578,1580,1609]],[[64929,64929],\"mapped\",[1578,1582,1610]],[[64930,64930],\"mapped\",[1578,1582,1609]],[[64931,64931],\"mapped\",[1578,1605,1610]],[[64932,64932],\"mapped\",[1578,1605,1609]],[[64933,64933],\"mapped\",[1580,1605,1610]],[[64934,64934],\"mapped\",[1580,1581,1609]],[[64935,64935],\"mapped\",[1580,1605,1609]],[[64936,64936],\"mapped\",[1587,1582,1609]],[[64937,64937],\"mapped\",[1589,1581,1610]],[[64938,64938],\"mapped\",[1588,1581,1610]],[[64939,64939],\"mapped\",[1590,1581,1610]],[[64940,64940],\"mapped\",[1604,1580,1610]],[[64941,64941],\"mapped\",[1604,1605,1610]],[[64942,64942],\"mapped\",[1610,1581,1610]],[[64943,64943],\"mapped\",[1610,1580,1610]],[[64944,64944],\"mapped\",[1610,1605,1610]],[[64945,64945],\"mapped\",[1605,1605,1610]],[[64946,64946],\"mapped\",[1602,1605,1610]],[[64947,64947],\"mapped\",[1606,1581,1610]],[[64948,64948],\"mapped\",[1602,1605,1581]],[[64949,64949],\"mapped\",[1604,1581,1605]],[[64950,64950],\"mapped\",[1593,1605,1610]],[[64951,64951],\"mapped\",[1603,1605,1610]],[[64952,64952],\"mapped\",[1606,1580,1581]],[[64953,64953],\"mapped\",[1605,1582,1610]],[[64954,64954],\"mapped\",[1604,1580,1605]],[[64955,64955],\"mapped\",[1603,1605,1605]],[[64956,64956],\"mapped\",[1604,1580,1605]],[[64957,64957],\"mapped\",[1606,1580,1581]],[[64958,64958],\"mapped\",[1580,1581,1610]],[[64959,64959],\"mapped\",[1581,1580,1610]],[[64960,64960],\"mapped\",[1605,1580,1610]],[[64961,64961],\"mapped\",[1601,1605,1610]],[[64962,64962],\"mapped\",[1576,1581,1610]],[[64963,64963],\"mapped\",[1603,1605,1605]],[[64964,64964],\"mapped\",[1593,1580,1605]],[[64965,64965],\"mapped\",[1589,1605,1605]],[[64966,64966],\"mapped\",[1587,1582,1610]],[[64967,64967],\"mapped\",[1606,1580,1610]],[[64968,64975],\"disallowed\"],[[64976,65007],\"disallowed\"],[[65008,65008],\"mapped\",[1589,1604,1746]],[[65009,65009],\"mapped\",[1602,1604,1746]],[[65010,65010],\"mapped\",[1575,1604,1604,1607]],[[65011,65011],\"mapped\",[1575,1603,1576,1585]],[[65012,65012],\"mapped\",[1605,1581,1605,1583]],[[65013,65013],\"mapped\",[1589,1604,1593,1605]],[[65014,65014],\"mapped\",[1585,1587,1608,1604]],[[65015,65015],\"mapped\",[1593,1604,1610,1607]],[[65016,65016],\"mapped\",[1608,1587,1604,1605]],[[65017,65017],\"mapped\",[1589,1604,1609]],[[65018,65018],\"disallowed_STD3_mapped\",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],\"disallowed_STD3_mapped\",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],\"mapped\",[1585,1740,1575,1604]],[[65021,65021],\"valid\",[],\"NV8\"],[[65022,65023],\"disallowed\"],[[65024,65039],\"ignored\"],[[65040,65040],\"disallowed_STD3_mapped\",[44]],[[65041,65041],\"mapped\",[12289]],[[65042,65042],\"disallowed\"],[[65043,65043],\"disallowed_STD3_mapped\",[58]],[[65044,65044],\"disallowed_STD3_mapped\",[59]],[[65045,65045],\"disallowed_STD3_mapped\",[33]],[[65046,65046],\"disallowed_STD3_mapped\",[63]],[[65047,65047],\"mapped\",[12310]],[[65048,65048],\"mapped\",[12311]],[[65049,65049],\"disallowed\"],[[65050,65055],\"disallowed\"],[[65056,65059],\"valid\"],[[65060,65062],\"valid\"],[[65063,65069],\"valid\"],[[65070,65071],\"valid\"],[[65072,65072],\"disallowed\"],[[65073,65073],\"mapped\",[8212]],[[65074,65074],\"mapped\",[8211]],[[65075,65076],\"disallowed_STD3_mapped\",[95]],[[65077,65077],\"disallowed_STD3_mapped\",[40]],[[65078,65078],\"disallowed_STD3_mapped\",[41]],[[65079,65079],\"disallowed_STD3_mapped\",[123]],[[65080,65080],\"disallowed_STD3_mapped\",[125]],[[65081,65081],\"mapped\",[12308]],[[65082,65082],\"mapped\",[12309]],[[65083,65083],\"mapped\",[12304]],[[65084,65084],\"mapped\",[12305]],[[65085,65085],\"mapped\",[12298]],[[65086,65086],\"mapped\",[12299]],[[65087,65087],\"mapped\",[12296]],[[65088,65088],\"mapped\",[12297]],[[65089,65089],\"mapped\",[12300]],[[65090,65090],\"mapped\",[12301]],[[65091,65091],\"mapped\",[12302]],[[65092,65092],\"mapped\",[12303]],[[65093,65094],\"valid\",[],\"NV8\"],[[65095,65095],\"disallowed_STD3_mapped\",[91]],[[65096,65096],\"disallowed_STD3_mapped\",[93]],[[65097,65100],\"disallowed_STD3_mapped\",[32,773]],[[65101,65103],\"disallowed_STD3_mapped\",[95]],[[65104,65104],\"disallowed_STD3_mapped\",[44]],[[65105,65105],\"mapped\",[12289]],[[65106,65106],\"disallowed\"],[[65107,65107],\"disallowed\"],[[65108,65108],\"disallowed_STD3_mapped\",[59]],[[65109,65109],\"disallowed_STD3_mapped\",[58]],[[65110,65110],\"disallowed_STD3_mapped\",[63]],[[65111,65111],\"disallowed_STD3_mapped\",[33]],[[65112,65112],\"mapped\",[8212]],[[65113,65113],\"disallowed_STD3_mapped\",[40]],[[65114,65114],\"disallowed_STD3_mapped\",[41]],[[65115,65115],\"disallowed_STD3_mapped\",[123]],[[65116,65116],\"disallowed_STD3_mapped\",[125]],[[65117,65117],\"mapped\",[12308]],[[65118,65118],\"mapped\",[12309]],[[65119,65119],\"disallowed_STD3_mapped\",[35]],[[65120,65120],\"disallowed_STD3_mapped\",[38]],[[65121,65121],\"disallowed_STD3_mapped\",[42]],[[65122,65122],\"disallowed_STD3_mapped\",[43]],[[65123,65123],\"mapped\",[45]],[[65124,65124],\"disallowed_STD3_mapped\",[60]],[[65125,65125],\"disallowed_STD3_mapped\",[62]],[[65126,65126],\"disallowed_STD3_mapped\",[61]],[[65127,65127],\"disallowed\"],[[65128,65128],\"disallowed_STD3_mapped\",[92]],[[65129,65129],\"disallowed_STD3_mapped\",[36]],[[65130,65130],\"disallowed_STD3_mapped\",[37]],[[65131,65131],\"disallowed_STD3_mapped\",[64]],[[65132,65135],\"disallowed\"],[[65136,65136],\"disallowed_STD3_mapped\",[32,1611]],[[65137,65137],\"mapped\",[1600,1611]],[[65138,65138],\"disallowed_STD3_mapped\",[32,1612]],[[65139,65139],\"valid\"],[[65140,65140],\"disallowed_STD3_mapped\",[32,1613]],[[65141,65141],\"disallowed\"],[[65142,65142],\"disallowed_STD3_mapped\",[32,1614]],[[65143,65143],\"mapped\",[1600,1614]],[[65144,65144],\"disallowed_STD3_mapped\",[32,1615]],[[65145,65145],\"mapped\",[1600,1615]],[[65146,65146],\"disallowed_STD3_mapped\",[32,1616]],[[65147,65147],\"mapped\",[1600,1616]],[[65148,65148],\"disallowed_STD3_mapped\",[32,1617]],[[65149,65149],\"mapped\",[1600,1617]],[[65150,65150],\"disallowed_STD3_mapped\",[32,1618]],[[65151,65151],\"mapped\",[1600,1618]],[[65152,65152],\"mapped\",[1569]],[[65153,65154],\"mapped\",[1570]],[[65155,65156],\"mapped\",[1571]],[[65157,65158],\"mapped\",[1572]],[[65159,65160],\"mapped\",[1573]],[[65161,65164],\"mapped\",[1574]],[[65165,65166],\"mapped\",[1575]],[[65167,65170],\"mapped\",[1576]],[[65171,65172],\"mapped\",[1577]],[[65173,65176],\"mapped\",[1578]],[[65177,65180],\"mapped\",[1579]],[[65181,65184],\"mapped\",[1580]],[[65185,65188],\"mapped\",[1581]],[[65189,65192],\"mapped\",[1582]],[[65193,65194],\"mapped\",[1583]],[[65195,65196],\"mapped\",[1584]],[[65197,65198],\"mapped\",[1585]],[[65199,65200],\"mapped\",[1586]],[[65201,65204],\"mapped\",[1587]],[[65205,65208],\"mapped\",[1588]],[[65209,65212],\"mapped\",[1589]],[[65213,65216],\"mapped\",[1590]],[[65217,65220],\"mapped\",[1591]],[[65221,65224],\"mapped\",[1592]],[[65225,65228],\"mapped\",[1593]],[[65229,65232],\"mapped\",[1594]],[[65233,65236],\"mapped\",[1601]],[[65237,65240],\"mapped\",[1602]],[[65241,65244],\"mapped\",[1603]],[[65245,65248],\"mapped\",[1604]],[[65249,65252],\"mapped\",[1605]],[[65253,65256],\"mapped\",[1606]],[[65257,65260],\"mapped\",[1607]],[[65261,65262],\"mapped\",[1608]],[[65263,65264],\"mapped\",[1609]],[[65265,65268],\"mapped\",[1610]],[[65269,65270],\"mapped\",[1604,1570]],[[65271,65272],\"mapped\",[1604,1571]],[[65273,65274],\"mapped\",[1604,1573]],[[65275,65276],\"mapped\",[1604,1575]],[[65277,65278],\"disallowed\"],[[65279,65279],\"ignored\"],[[65280,65280],\"disallowed\"],[[65281,65281],\"disallowed_STD3_mapped\",[33]],[[65282,65282],\"disallowed_STD3_mapped\",[34]],[[65283,65283],\"disallowed_STD3_mapped\",[35]],[[65284,65284],\"disallowed_STD3_mapped\",[36]],[[65285,65285],\"disallowed_STD3_mapped\",[37]],[[65286,65286],\"disallowed_STD3_mapped\",[38]],[[65287,65287],\"disallowed_STD3_mapped\",[39]],[[65288,65288],\"disallowed_STD3_mapped\",[40]],[[65289,65289],\"disallowed_STD3_mapped\",[41]],[[65290,65290],\"disallowed_STD3_mapped\",[42]],[[65291,65291],\"disallowed_STD3_mapped\",[43]],[[65292,65292],\"disallowed_STD3_mapped\",[44]],[[65293,65293],\"mapped\",[45]],[[65294,65294],\"mapped\",[46]],[[65295,65295],\"disallowed_STD3_mapped\",[47]],[[65296,65296],\"mapped\",[48]],[[65297,65297],\"mapped\",[49]],[[65298,65298],\"mapped\",[50]],[[65299,65299],\"mapped\",[51]],[[65300,65300],\"mapped\",[52]],[[65301,65301],\"mapped\",[53]],[[65302,65302],\"mapped\",[54]],[[65303,65303],\"mapped\",[55]],[[65304,65304],\"mapped\",[56]],[[65305,65305],\"mapped\",[57]],[[65306,65306],\"disallowed_STD3_mapped\",[58]],[[65307,65307],\"disallowed_STD3_mapped\",[59]],[[65308,65308],\"disallowed_STD3_mapped\",[60]],[[65309,65309],\"disallowed_STD3_mapped\",[61]],[[65310,65310],\"disallowed_STD3_mapped\",[62]],[[65311,65311],\"disallowed_STD3_mapped\",[63]],[[65312,65312],\"disallowed_STD3_mapped\",[64]],[[65313,65313],\"mapped\",[97]],[[65314,65314],\"mapped\",[98]],[[65315,65315],\"mapped\",[99]],[[65316,65316],\"mapped\",[100]],[[65317,65317],\"mapped\",[101]],[[65318,65318],\"mapped\",[102]],[[65319,65319],\"mapped\",[103]],[[65320,65320],\"mapped\",[104]],[[65321,65321],\"mapped\",[105]],[[65322,65322],\"mapped\",[106]],[[65323,65323],\"mapped\",[107]],[[65324,65324],\"mapped\",[108]],[[65325,65325],\"mapped\",[109]],[[65326,65326],\"mapped\",[110]],[[65327,65327],\"mapped\",[111]],[[65328,65328],\"mapped\",[112]],[[65329,65329],\"mapped\",[113]],[[65330,65330],\"mapped\",[114]],[[65331,65331],\"mapped\",[115]],[[65332,65332],\"mapped\",[116]],[[65333,65333],\"mapped\",[117]],[[65334,65334],\"mapped\",[118]],[[65335,65335],\"mapped\",[119]],[[65336,65336],\"mapped\",[120]],[[65337,65337],\"mapped\",[121]],[[65338,65338],\"mapped\",[122]],[[65339,65339],\"disallowed_STD3_mapped\",[91]],[[65340,65340],\"disallowed_STD3_mapped\",[92]],[[65341,65341],\"disallowed_STD3_mapped\",[93]],[[65342,65342],\"disallowed_STD3_mapped\",[94]],[[65343,65343],\"disallowed_STD3_mapped\",[95]],[[65344,65344],\"disallowed_STD3_mapped\",[96]],[[65345,65345],\"mapped\",[97]],[[65346,65346],\"mapped\",[98]],[[65347,65347],\"mapped\",[99]],[[65348,65348],\"mapped\",[100]],[[65349,65349],\"mapped\",[101]],[[65350,65350],\"mapped\",[102]],[[65351,65351],\"mapped\",[103]],[[65352,65352],\"mapped\",[104]],[[65353,65353],\"mapped\",[105]],[[65354,65354],\"mapped\",[106]],[[65355,65355],\"mapped\",[107]],[[65356,65356],\"mapped\",[108]],[[65357,65357],\"mapped\",[109]],[[65358,65358],\"mapped\",[110]],[[65359,65359],\"mapped\",[111]],[[65360,65360],\"mapped\",[112]],[[65361,65361],\"mapped\",[113]],[[65362,65362],\"mapped\",[114]],[[65363,65363],\"mapped\",[115]],[[65364,65364],\"mapped\",[116]],[[65365,65365],\"mapped\",[117]],[[65366,65366],\"mapped\",[118]],[[65367,65367],\"mapped\",[119]],[[65368,65368],\"mapped\",[120]],[[65369,65369],\"mapped\",[121]],[[65370,65370],\"mapped\",[122]],[[65371,65371],\"disallowed_STD3_mapped\",[123]],[[65372,65372],\"disallowed_STD3_mapped\",[124]],[[65373,65373],\"disallowed_STD3_mapped\",[125]],[[65374,65374],\"disallowed_STD3_mapped\",[126]],[[65375,65375],\"mapped\",[10629]],[[65376,65376],\"mapped\",[10630]],[[65377,65377],\"mapped\",[46]],[[65378,65378],\"mapped\",[12300]],[[65379,65379],\"mapped\",[12301]],[[65380,65380],\"mapped\",[12289]],[[65381,65381],\"mapped\",[12539]],[[65382,65382],\"mapped\",[12530]],[[65383,65383],\"mapped\",[12449]],[[65384,65384],\"mapped\",[12451]],[[65385,65385],\"mapped\",[12453]],[[65386,65386],\"mapped\",[12455]],[[65387,65387],\"mapped\",[12457]],[[65388,65388],\"mapped\",[12515]],[[65389,65389],\"mapped\",[12517]],[[65390,65390],\"mapped\",[12519]],[[65391,65391],\"mapped\",[12483]],[[65392,65392],\"mapped\",[12540]],[[65393,65393],\"mapped\",[12450]],[[65394,65394],\"mapped\",[12452]],[[65395,65395],\"mapped\",[12454]],[[65396,65396],\"mapped\",[12456]],[[65397,65397],\"mapped\",[12458]],[[65398,65398],\"mapped\",[12459]],[[65399,65399],\"mapped\",[12461]],[[65400,65400],\"mapped\",[12463]],[[65401,65401],\"mapped\",[12465]],[[65402,65402],\"mapped\",[12467]],[[65403,65403],\"mapped\",[12469]],[[65404,65404],\"mapped\",[12471]],[[65405,65405],\"mapped\",[12473]],[[65406,65406],\"mapped\",[12475]],[[65407,65407],\"mapped\",[12477]],[[65408,65408],\"mapped\",[12479]],[[65409,65409],\"mapped\",[12481]],[[65410,65410],\"mapped\",[12484]],[[65411,65411],\"mapped\",[12486]],[[65412,65412],\"mapped\",[12488]],[[65413,65413],\"mapped\",[12490]],[[65414,65414],\"mapped\",[12491]],[[65415,65415],\"mapped\",[12492]],[[65416,65416],\"mapped\",[12493]],[[65417,65417],\"mapped\",[12494]],[[65418,65418],\"mapped\",[12495]],[[65419,65419],\"mapped\",[12498]],[[65420,65420],\"mapped\",[12501]],[[65421,65421],\"mapped\",[12504]],[[65422,65422],\"mapped\",[12507]],[[65423,65423],\"mapped\",[12510]],[[65424,65424],\"mapped\",[12511]],[[65425,65425],\"mapped\",[12512]],[[65426,65426],\"mapped\",[12513]],[[65427,65427],\"mapped\",[12514]],[[65428,65428],\"mapped\",[12516]],[[65429,65429],\"mapped\",[12518]],[[65430,65430],\"mapped\",[12520]],[[65431,65431],\"mapped\",[12521]],[[65432,65432],\"mapped\",[12522]],[[65433,65433],\"mapped\",[12523]],[[65434,65434],\"mapped\",[12524]],[[65435,65435],\"mapped\",[12525]],[[65436,65436],\"mapped\",[12527]],[[65437,65437],\"mapped\",[12531]],[[65438,65438],\"mapped\",[12441]],[[65439,65439],\"mapped\",[12442]],[[65440,65440],\"disallowed\"],[[65441,65441],\"mapped\",[4352]],[[65442,65442],\"mapped\",[4353]],[[65443,65443],\"mapped\",[4522]],[[65444,65444],\"mapped\",[4354]],[[65445,65445],\"mapped\",[4524]],[[65446,65446],\"mapped\",[4525]],[[65447,65447],\"mapped\",[4355]],[[65448,65448],\"mapped\",[4356]],[[65449,65449],\"mapped\",[4357]],[[65450,65450],\"mapped\",[4528]],[[65451,65451],\"mapped\",[4529]],[[65452,65452],\"mapped\",[4530]],[[65453,65453],\"mapped\",[4531]],[[65454,65454],\"mapped\",[4532]],[[65455,65455],\"mapped\",[4533]],[[65456,65456],\"mapped\",[4378]],[[65457,65457],\"mapped\",[4358]],[[65458,65458],\"mapped\",[4359]],[[65459,65459],\"mapped\",[4360]],[[65460,65460],\"mapped\",[4385]],[[65461,65461],\"mapped\",[4361]],[[65462,65462],\"mapped\",[4362]],[[65463,65463],\"mapped\",[4363]],[[65464,65464],\"mapped\",[4364]],[[65465,65465],\"mapped\",[4365]],[[65466,65466],\"mapped\",[4366]],[[65467,65467],\"mapped\",[4367]],[[65468,65468],\"mapped\",[4368]],[[65469,65469],\"mapped\",[4369]],[[65470,65470],\"mapped\",[4370]],[[65471,65473],\"disallowed\"],[[65474,65474],\"mapped\",[4449]],[[65475,65475],\"mapped\",[4450]],[[65476,65476],\"mapped\",[4451]],[[65477,65477],\"mapped\",[4452]],[[65478,65478],\"mapped\",[4453]],[[65479,65479],\"mapped\",[4454]],[[65480,65481],\"disallowed\"],[[65482,65482],\"mapped\",[4455]],[[65483,65483],\"mapped\",[4456]],[[65484,65484],\"mapped\",[4457]],[[65485,65485],\"mapped\",[4458]],[[65486,65486],\"mapped\",[4459]],[[65487,65487],\"mapped\",[4460]],[[65488,65489],\"disallowed\"],[[65490,65490],\"mapped\",[4461]],[[65491,65491],\"mapped\",[4462]],[[65492,65492],\"mapped\",[4463]],[[65493,65493],\"mapped\",[4464]],[[65494,65494],\"mapped\",[4465]],[[65495,65495],\"mapped\",[4466]],[[65496,65497],\"disallowed\"],[[65498,65498],\"mapped\",[4467]],[[65499,65499],\"mapped\",[4468]],[[65500,65500],\"mapped\",[4469]],[[65501,65503],\"disallowed\"],[[65504,65504],\"mapped\",[162]],[[65505,65505],\"mapped\",[163]],[[65506,65506],\"mapped\",[172]],[[65507,65507],\"disallowed_STD3_mapped\",[32,772]],[[65508,65508],\"mapped\",[166]],[[65509,65509],\"mapped\",[165]],[[65510,65510],\"mapped\",[8361]],[[65511,65511],\"disallowed\"],[[65512,65512],\"mapped\",[9474]],[[65513,65513],\"mapped\",[8592]],[[65514,65514],\"mapped\",[8593]],[[65515,65515],\"mapped\",[8594]],[[65516,65516],\"mapped\",[8595]],[[65517,65517],\"mapped\",[9632]],[[65518,65518],\"mapped\",[9675]],[[65519,65528],\"disallowed\"],[[65529,65531],\"disallowed\"],[[65532,65532],\"disallowed\"],[[65533,65533],\"disallowed\"],[[65534,65535],\"disallowed\"],[[65536,65547],\"valid\"],[[65548,65548],\"disallowed\"],[[65549,65574],\"valid\"],[[65575,65575],\"disallowed\"],[[65576,65594],\"valid\"],[[65595,65595],\"disallowed\"],[[65596,65597],\"valid\"],[[65598,65598],\"disallowed\"],[[65599,65613],\"valid\"],[[65614,65615],\"disallowed\"],[[65616,65629],\"valid\"],[[65630,65663],\"disallowed\"],[[65664,65786],\"valid\"],[[65787,65791],\"disallowed\"],[[65792,65794],\"valid\",[],\"NV8\"],[[65795,65798],\"disallowed\"],[[65799,65843],\"valid\",[],\"NV8\"],[[65844,65846],\"disallowed\"],[[65847,65855],\"valid\",[],\"NV8\"],[[65856,65930],\"valid\",[],\"NV8\"],[[65931,65932],\"valid\",[],\"NV8\"],[[65933,65935],\"disallowed\"],[[65936,65947],\"valid\",[],\"NV8\"],[[65948,65951],\"disallowed\"],[[65952,65952],\"valid\",[],\"NV8\"],[[65953,65999],\"disallowed\"],[[66000,66044],\"valid\",[],\"NV8\"],[[66045,66045],\"valid\"],[[66046,66175],\"disallowed\"],[[66176,66204],\"valid\"],[[66205,66207],\"disallowed\"],[[66208,66256],\"valid\"],[[66257,66271],\"disallowed\"],[[66272,66272],\"valid\"],[[66273,66299],\"valid\",[],\"NV8\"],[[66300,66303],\"disallowed\"],[[66304,66334],\"valid\"],[[66335,66335],\"valid\"],[[66336,66339],\"valid\",[],\"NV8\"],[[66340,66351],\"disallowed\"],[[66352,66368],\"valid\"],[[66369,66369],\"valid\",[],\"NV8\"],[[66370,66377],\"valid\"],[[66378,66378],\"valid\",[],\"NV8\"],[[66379,66383],\"disallowed\"],[[66384,66426],\"valid\"],[[66427,66431],\"disallowed\"],[[66432,66461],\"valid\"],[[66462,66462],\"disallowed\"],[[66463,66463],\"valid\",[],\"NV8\"],[[66464,66499],\"valid\"],[[66500,66503],\"disallowed\"],[[66504,66511],\"valid\"],[[66512,66517],\"valid\",[],\"NV8\"],[[66518,66559],\"disallowed\"],[[66560,66560],\"mapped\",[66600]],[[66561,66561],\"mapped\",[66601]],[[66562,66562],\"mapped\",[66602]],[[66563,66563],\"mapped\",[66603]],[[66564,66564],\"mapped\",[66604]],[[66565,66565],\"mapped\",[66605]],[[66566,66566],\"mapped\",[66606]],[[66567,66567],\"mapped\",[66607]],[[66568,66568],\"mapped\",[66608]],[[66569,66569],\"mapped\",[66609]],[[66570,66570],\"mapped\",[66610]],[[66571,66571],\"mapped\",[66611]],[[66572,66572],\"mapped\",[66612]],[[66573,66573],\"mapped\",[66613]],[[66574,66574],\"mapped\",[66614]],[[66575,66575],\"mapped\",[66615]],[[66576,66576],\"mapped\",[66616]],[[66577,66577],\"mapped\",[66617]],[[66578,66578],\"mapped\",[66618]],[[66579,66579],\"mapped\",[66619]],[[66580,66580],\"mapped\",[66620]],[[66581,66581],\"mapped\",[66621]],[[66582,66582],\"mapped\",[66622]],[[66583,66583],\"mapped\",[66623]],[[66584,66584],\"mapped\",[66624]],[[66585,66585],\"mapped\",[66625]],[[66586,66586],\"mapped\",[66626]],[[66587,66587],\"mapped\",[66627]],[[66588,66588],\"mapped\",[66628]],[[66589,66589],\"mapped\",[66629]],[[66590,66590],\"mapped\",[66630]],[[66591,66591],\"mapped\",[66631]],[[66592,66592],\"mapped\",[66632]],[[66593,66593],\"mapped\",[66633]],[[66594,66594],\"mapped\",[66634]],[[66595,66595],\"mapped\",[66635]],[[66596,66596],\"mapped\",[66636]],[[66597,66597],\"mapped\",[66637]],[[66598,66598],\"mapped\",[66638]],[[66599,66599],\"mapped\",[66639]],[[66600,66637],\"valid\"],[[66638,66717],\"valid\"],[[66718,66719],\"disallowed\"],[[66720,66729],\"valid\"],[[66730,66815],\"disallowed\"],[[66816,66855],\"valid\"],[[66856,66863],\"disallowed\"],[[66864,66915],\"valid\"],[[66916,66926],\"disallowed\"],[[66927,66927],\"valid\",[],\"NV8\"],[[66928,67071],\"disallowed\"],[[67072,67382],\"valid\"],[[67383,67391],\"disallowed\"],[[67392,67413],\"valid\"],[[67414,67423],\"disallowed\"],[[67424,67431],\"valid\"],[[67432,67583],\"disallowed\"],[[67584,67589],\"valid\"],[[67590,67591],\"disallowed\"],[[67592,67592],\"valid\"],[[67593,67593],\"disallowed\"],[[67594,67637],\"valid\"],[[67638,67638],\"disallowed\"],[[67639,67640],\"valid\"],[[67641,67643],\"disallowed\"],[[67644,67644],\"valid\"],[[67645,67646],\"disallowed\"],[[67647,67647],\"valid\"],[[67648,67669],\"valid\"],[[67670,67670],\"disallowed\"],[[67671,67679],\"valid\",[],\"NV8\"],[[67680,67702],\"valid\"],[[67703,67711],\"valid\",[],\"NV8\"],[[67712,67742],\"valid\"],[[67743,67750],\"disallowed\"],[[67751,67759],\"valid\",[],\"NV8\"],[[67760,67807],\"disallowed\"],[[67808,67826],\"valid\"],[[67827,67827],\"disallowed\"],[[67828,67829],\"valid\"],[[67830,67834],\"disallowed\"],[[67835,67839],\"valid\",[],\"NV8\"],[[67840,67861],\"valid\"],[[67862,67865],\"valid\",[],\"NV8\"],[[67866,67867],\"valid\",[],\"NV8\"],[[67868,67870],\"disallowed\"],[[67871,67871],\"valid\",[],\"NV8\"],[[67872,67897],\"valid\"],[[67898,67902],\"disallowed\"],[[67903,67903],\"valid\",[],\"NV8\"],[[67904,67967],\"disallowed\"],[[67968,68023],\"valid\"],[[68024,68027],\"disallowed\"],[[68028,68029],\"valid\",[],\"NV8\"],[[68030,68031],\"valid\"],[[68032,68047],\"valid\",[],\"NV8\"],[[68048,68049],\"disallowed\"],[[68050,68095],\"valid\",[],\"NV8\"],[[68096,68099],\"valid\"],[[68100,68100],\"disallowed\"],[[68101,68102],\"valid\"],[[68103,68107],\"disallowed\"],[[68108,68115],\"valid\"],[[68116,68116],\"disallowed\"],[[68117,68119],\"valid\"],[[68120,68120],\"disallowed\"],[[68121,68147],\"valid\"],[[68148,68151],\"disallowed\"],[[68152,68154],\"valid\"],[[68155,68158],\"disallowed\"],[[68159,68159],\"valid\"],[[68160,68167],\"valid\",[],\"NV8\"],[[68168,68175],\"disallowed\"],[[68176,68184],\"valid\",[],\"NV8\"],[[68185,68191],\"disallowed\"],[[68192,68220],\"valid\"],[[68221,68223],\"valid\",[],\"NV8\"],[[68224,68252],\"valid\"],[[68253,68255],\"valid\",[],\"NV8\"],[[68256,68287],\"disallowed\"],[[68288,68295],\"valid\"],[[68296,68296],\"valid\",[],\"NV8\"],[[68297,68326],\"valid\"],[[68327,68330],\"disallowed\"],[[68331,68342],\"valid\",[],\"NV8\"],[[68343,68351],\"disallowed\"],[[68352,68405],\"valid\"],[[68406,68408],\"disallowed\"],[[68409,68415],\"valid\",[],\"NV8\"],[[68416,68437],\"valid\"],[[68438,68439],\"disallowed\"],[[68440,68447],\"valid\",[],\"NV8\"],[[68448,68466],\"valid\"],[[68467,68471],\"disallowed\"],[[68472,68479],\"valid\",[],\"NV8\"],[[68480,68497],\"valid\"],[[68498,68504],\"disallowed\"],[[68505,68508],\"valid\",[],\"NV8\"],[[68509,68520],\"disallowed\"],[[68521,68527],\"valid\",[],\"NV8\"],[[68528,68607],\"disallowed\"],[[68608,68680],\"valid\"],[[68681,68735],\"disallowed\"],[[68736,68736],\"mapped\",[68800]],[[68737,68737],\"mapped\",[68801]],[[68738,68738],\"mapped\",[68802]],[[68739,68739],\"mapped\",[68803]],[[68740,68740],\"mapped\",[68804]],[[68741,68741],\"mapped\",[68805]],[[68742,68742],\"mapped\",[68806]],[[68743,68743],\"mapped\",[68807]],[[68744,68744],\"mapped\",[68808]],[[68745,68745],\"mapped\",[68809]],[[68746,68746],\"mapped\",[68810]],[[68747,68747],\"mapped\",[68811]],[[68748,68748],\"mapped\",[68812]],[[68749,68749],\"mapped\",[68813]],[[68750,68750],\"mapped\",[68814]],[[68751,68751],\"mapped\",[68815]],[[68752,68752],\"mapped\",[68816]],[[68753,68753],\"mapped\",[68817]],[[68754,68754],\"mapped\",[68818]],[[68755,68755],\"mapped\",[68819]],[[68756,68756],\"mapped\",[68820]],[[68757,68757],\"mapped\",[68821]],[[68758,68758],\"mapped\",[68822]],[[68759,68759],\"mapped\",[68823]],[[68760,68760],\"mapped\",[68824]],[[68761,68761],\"mapped\",[68825]],[[68762,68762],\"mapped\",[68826]],[[68763,68763],\"mapped\",[68827]],[[68764,68764],\"mapped\",[68828]],[[68765,68765],\"mapped\",[68829]],[[68766,68766],\"mapped\",[68830]],[[68767,68767],\"mapped\",[68831]],[[68768,68768],\"mapped\",[68832]],[[68769,68769],\"mapped\",[68833]],[[68770,68770],\"mapped\",[68834]],[[68771,68771],\"mapped\",[68835]],[[68772,68772],\"mapped\",[68836]],[[68773,68773],\"mapped\",[68837]],[[68774,68774],\"mapped\",[68838]],[[68775,68775],\"mapped\",[68839]],[[68776,68776],\"mapped\",[68840]],[[68777,68777],\"mapped\",[68841]],[[68778,68778],\"mapped\",[68842]],[[68779,68779],\"mapped\",[68843]],[[68780,68780],\"mapped\",[68844]],[[68781,68781],\"mapped\",[68845]],[[68782,68782],\"mapped\",[68846]],[[68783,68783],\"mapped\",[68847]],[[68784,68784],\"mapped\",[68848]],[[68785,68785],\"mapped\",[68849]],[[68786,68786],\"mapped\",[68850]],[[68787,68799],\"disallowed\"],[[68800,68850],\"valid\"],[[68851,68857],\"disallowed\"],[[68858,68863],\"valid\",[],\"NV8\"],[[68864,69215],\"disallowed\"],[[69216,69246],\"valid\",[],\"NV8\"],[[69247,69631],\"disallowed\"],[[69632,69702],\"valid\"],[[69703,69709],\"valid\",[],\"NV8\"],[[69710,69713],\"disallowed\"],[[69714,69733],\"valid\",[],\"NV8\"],[[69734,69743],\"valid\"],[[69744,69758],\"disallowed\"],[[69759,69759],\"valid\"],[[69760,69818],\"valid\"],[[69819,69820],\"valid\",[],\"NV8\"],[[69821,69821],\"disallowed\"],[[69822,69825],\"valid\",[],\"NV8\"],[[69826,69839],\"disallowed\"],[[69840,69864],\"valid\"],[[69865,69871],\"disallowed\"],[[69872,69881],\"valid\"],[[69882,69887],\"disallowed\"],[[69888,69940],\"valid\"],[[69941,69941],\"disallowed\"],[[69942,69951],\"valid\"],[[69952,69955],\"valid\",[],\"NV8\"],[[69956,69967],\"disallowed\"],[[69968,70003],\"valid\"],[[70004,70005],\"valid\",[],\"NV8\"],[[70006,70006],\"valid\"],[[70007,70015],\"disallowed\"],[[70016,70084],\"valid\"],[[70085,70088],\"valid\",[],\"NV8\"],[[70089,70089],\"valid\",[],\"NV8\"],[[70090,70092],\"valid\"],[[70093,70093],\"valid\",[],\"NV8\"],[[70094,70095],\"disallowed\"],[[70096,70105],\"valid\"],[[70106,70106],\"valid\"],[[70107,70107],\"valid\",[],\"NV8\"],[[70108,70108],\"valid\"],[[70109,70111],\"valid\",[],\"NV8\"],[[70112,70112],\"disallowed\"],[[70113,70132],\"valid\",[],\"NV8\"],[[70133,70143],\"disallowed\"],[[70144,70161],\"valid\"],[[70162,70162],\"disallowed\"],[[70163,70199],\"valid\"],[[70200,70205],\"valid\",[],\"NV8\"],[[70206,70271],\"disallowed\"],[[70272,70278],\"valid\"],[[70279,70279],\"disallowed\"],[[70280,70280],\"valid\"],[[70281,70281],\"disallowed\"],[[70282,70285],\"valid\"],[[70286,70286],\"disallowed\"],[[70287,70301],\"valid\"],[[70302,70302],\"disallowed\"],[[70303,70312],\"valid\"],[[70313,70313],\"valid\",[],\"NV8\"],[[70314,70319],\"disallowed\"],[[70320,70378],\"valid\"],[[70379,70383],\"disallowed\"],[[70384,70393],\"valid\"],[[70394,70399],\"disallowed\"],[[70400,70400],\"valid\"],[[70401,70403],\"valid\"],[[70404,70404],\"disallowed\"],[[70405,70412],\"valid\"],[[70413,70414],\"disallowed\"],[[70415,70416],\"valid\"],[[70417,70418],\"disallowed\"],[[70419,70440],\"valid\"],[[70441,70441],\"disallowed\"],[[70442,70448],\"valid\"],[[70449,70449],\"disallowed\"],[[70450,70451],\"valid\"],[[70452,70452],\"disallowed\"],[[70453,70457],\"valid\"],[[70458,70459],\"disallowed\"],[[70460,70468],\"valid\"],[[70469,70470],\"disallowed\"],[[70471,70472],\"valid\"],[[70473,70474],\"disallowed\"],[[70475,70477],\"valid\"],[[70478,70479],\"disallowed\"],[[70480,70480],\"valid\"],[[70481,70486],\"disallowed\"],[[70487,70487],\"valid\"],[[70488,70492],\"disallowed\"],[[70493,70499],\"valid\"],[[70500,70501],\"disallowed\"],[[70502,70508],\"valid\"],[[70509,70511],\"disallowed\"],[[70512,70516],\"valid\"],[[70517,70783],\"disallowed\"],[[70784,70853],\"valid\"],[[70854,70854],\"valid\",[],\"NV8\"],[[70855,70855],\"valid\"],[[70856,70863],\"disallowed\"],[[70864,70873],\"valid\"],[[70874,71039],\"disallowed\"],[[71040,71093],\"valid\"],[[71094,71095],\"disallowed\"],[[71096,71104],\"valid\"],[[71105,71113],\"valid\",[],\"NV8\"],[[71114,71127],\"valid\",[],\"NV8\"],[[71128,71133],\"valid\"],[[71134,71167],\"disallowed\"],[[71168,71232],\"valid\"],[[71233,71235],\"valid\",[],\"NV8\"],[[71236,71236],\"valid\"],[[71237,71247],\"disallowed\"],[[71248,71257],\"valid\"],[[71258,71295],\"disallowed\"],[[71296,71351],\"valid\"],[[71352,71359],\"disallowed\"],[[71360,71369],\"valid\"],[[71370,71423],\"disallowed\"],[[71424,71449],\"valid\"],[[71450,71452],\"disallowed\"],[[71453,71467],\"valid\"],[[71468,71471],\"disallowed\"],[[71472,71481],\"valid\"],[[71482,71487],\"valid\",[],\"NV8\"],[[71488,71839],\"disallowed\"],[[71840,71840],\"mapped\",[71872]],[[71841,71841],\"mapped\",[71873]],[[71842,71842],\"mapped\",[71874]],[[71843,71843],\"mapped\",[71875]],[[71844,71844],\"mapped\",[71876]],[[71845,71845],\"mapped\",[71877]],[[71846,71846],\"mapped\",[71878]],[[71847,71847],\"mapped\",[71879]],[[71848,71848],\"mapped\",[71880]],[[71849,71849],\"mapped\",[71881]],[[71850,71850],\"mapped\",[71882]],[[71851,71851],\"mapped\",[71883]],[[71852,71852],\"mapped\",[71884]],[[71853,71853],\"mapped\",[71885]],[[71854,71854],\"mapped\",[71886]],[[71855,71855],\"mapped\",[71887]],[[71856,71856],\"mapped\",[71888]],[[71857,71857],\"mapped\",[71889]],[[71858,71858],\"mapped\",[71890]],[[71859,71859],\"mapped\",[71891]],[[71860,71860],\"mapped\",[71892]],[[71861,71861],\"mapped\",[71893]],[[71862,71862],\"mapped\",[71894]],[[71863,71863],\"mapped\",[71895]],[[71864,71864],\"mapped\",[71896]],[[71865,71865],\"mapped\",[71897]],[[71866,71866],\"mapped\",[71898]],[[71867,71867],\"mapped\",[71899]],[[71868,71868],\"mapped\",[71900]],[[71869,71869],\"mapped\",[71901]],[[71870,71870],\"mapped\",[71902]],[[71871,71871],\"mapped\",[71903]],[[71872,71913],\"valid\"],[[71914,71922],\"valid\",[],\"NV8\"],[[71923,71934],\"disallowed\"],[[71935,71935],\"valid\"],[[71936,72383],\"disallowed\"],[[72384,72440],\"valid\"],[[72441,73727],\"disallowed\"],[[73728,74606],\"valid\"],[[74607,74648],\"valid\"],[[74649,74649],\"valid\"],[[74650,74751],\"disallowed\"],[[74752,74850],\"valid\",[],\"NV8\"],[[74851,74862],\"valid\",[],\"NV8\"],[[74863,74863],\"disallowed\"],[[74864,74867],\"valid\",[],\"NV8\"],[[74868,74868],\"valid\",[],\"NV8\"],[[74869,74879],\"disallowed\"],[[74880,75075],\"valid\"],[[75076,77823],\"disallowed\"],[[77824,78894],\"valid\"],[[78895,82943],\"disallowed\"],[[82944,83526],\"valid\"],[[83527,92159],\"disallowed\"],[[92160,92728],\"valid\"],[[92729,92735],\"disallowed\"],[[92736,92766],\"valid\"],[[92767,92767],\"disallowed\"],[[92768,92777],\"valid\"],[[92778,92781],\"disallowed\"],[[92782,92783],\"valid\",[],\"NV8\"],[[92784,92879],\"disallowed\"],[[92880,92909],\"valid\"],[[92910,92911],\"disallowed\"],[[92912,92916],\"valid\"],[[92917,92917],\"valid\",[],\"NV8\"],[[92918,92927],\"disallowed\"],[[92928,92982],\"valid\"],[[92983,92991],\"valid\",[],\"NV8\"],[[92992,92995],\"valid\"],[[92996,92997],\"valid\",[],\"NV8\"],[[92998,93007],\"disallowed\"],[[93008,93017],\"valid\"],[[93018,93018],\"disallowed\"],[[93019,93025],\"valid\",[],\"NV8\"],[[93026,93026],\"disallowed\"],[[93027,93047],\"valid\"],[[93048,93052],\"disallowed\"],[[93053,93071],\"valid\"],[[93072,93951],\"disallowed\"],[[93952,94020],\"valid\"],[[94021,94031],\"disallowed\"],[[94032,94078],\"valid\"],[[94079,94094],\"disallowed\"],[[94095,94111],\"valid\"],[[94112,110591],\"disallowed\"],[[110592,110593],\"valid\"],[[110594,113663],\"disallowed\"],[[113664,113770],\"valid\"],[[113771,113775],\"disallowed\"],[[113776,113788],\"valid\"],[[113789,113791],\"disallowed\"],[[113792,113800],\"valid\"],[[113801,113807],\"disallowed\"],[[113808,113817],\"valid\"],[[113818,113819],\"disallowed\"],[[113820,113820],\"valid\",[],\"NV8\"],[[113821,113822],\"valid\"],[[113823,113823],\"valid\",[],\"NV8\"],[[113824,113827],\"ignored\"],[[113828,118783],\"disallowed\"],[[118784,119029],\"valid\",[],\"NV8\"],[[119030,119039],\"disallowed\"],[[119040,119078],\"valid\",[],\"NV8\"],[[119079,119080],\"disallowed\"],[[119081,119081],\"valid\",[],\"NV8\"],[[119082,119133],\"valid\",[],\"NV8\"],[[119134,119134],\"mapped\",[119127,119141]],[[119135,119135],\"mapped\",[119128,119141]],[[119136,119136],\"mapped\",[119128,119141,119150]],[[119137,119137],\"mapped\",[119128,119141,119151]],[[119138,119138],\"mapped\",[119128,119141,119152]],[[119139,119139],\"mapped\",[119128,119141,119153]],[[119140,119140],\"mapped\",[119128,119141,119154]],[[119141,119154],\"valid\",[],\"NV8\"],[[119155,119162],\"disallowed\"],[[119163,119226],\"valid\",[],\"NV8\"],[[119227,119227],\"mapped\",[119225,119141]],[[119228,119228],\"mapped\",[119226,119141]],[[119229,119229],\"mapped\",[119225,119141,119150]],[[119230,119230],\"mapped\",[119226,119141,119150]],[[119231,119231],\"mapped\",[119225,119141,119151]],[[119232,119232],\"mapped\",[119226,119141,119151]],[[119233,119261],\"valid\",[],\"NV8\"],[[119262,119272],\"valid\",[],\"NV8\"],[[119273,119295],\"disallowed\"],[[119296,119365],\"valid\",[],\"NV8\"],[[119366,119551],\"disallowed\"],[[119552,119638],\"valid\",[],\"NV8\"],[[119639,119647],\"disallowed\"],[[119648,119665],\"valid\",[],\"NV8\"],[[119666,119807],\"disallowed\"],[[119808,119808],\"mapped\",[97]],[[119809,119809],\"mapped\",[98]],[[119810,119810],\"mapped\",[99]],[[119811,119811],\"mapped\",[100]],[[119812,119812],\"mapped\",[101]],[[119813,119813],\"mapped\",[102]],[[119814,119814],\"mapped\",[103]],[[119815,119815],\"mapped\",[104]],[[119816,119816],\"mapped\",[105]],[[119817,119817],\"mapped\",[106]],[[119818,119818],\"mapped\",[107]],[[119819,119819],\"mapped\",[108]],[[119820,119820],\"mapped\",[109]],[[119821,119821],\"mapped\",[110]],[[119822,119822],\"mapped\",[111]],[[119823,119823],\"mapped\",[112]],[[119824,119824],\"mapped\",[113]],[[119825,119825],\"mapped\",[114]],[[119826,119826],\"mapped\",[115]],[[119827,119827],\"mapped\",[116]],[[119828,119828],\"mapped\",[117]],[[119829,119829],\"mapped\",[118]],[[119830,119830],\"mapped\",[119]],[[119831,119831],\"mapped\",[120]],[[119832,119832],\"mapped\",[121]],[[119833,119833],\"mapped\",[122]],[[119834,119834],\"mapped\",[97]],[[119835,119835],\"mapped\",[98]],[[119836,119836],\"mapped\",[99]],[[119837,119837],\"mapped\",[100]],[[119838,119838],\"mapped\",[101]],[[119839,119839],\"mapped\",[102]],[[119840,119840],\"mapped\",[103]],[[119841,119841],\"mapped\",[104]],[[119842,119842],\"mapped\",[105]],[[119843,119843],\"mapped\",[106]],[[119844,119844],\"mapped\",[107]],[[119845,119845],\"mapped\",[108]],[[119846,119846],\"mapped\",[109]],[[119847,119847],\"mapped\",[110]],[[119848,119848],\"mapped\",[111]],[[119849,119849],\"mapped\",[112]],[[119850,119850],\"mapped\",[113]],[[119851,119851],\"mapped\",[114]],[[119852,119852],\"mapped\",[115]],[[119853,119853],\"mapped\",[116]],[[119854,119854],\"mapped\",[117]],[[119855,119855],\"mapped\",[118]],[[119856,119856],\"mapped\",[119]],[[119857,119857],\"mapped\",[120]],[[119858,119858],\"mapped\",[121]],[[119859,119859],\"mapped\",[122]],[[119860,119860],\"mapped\",[97]],[[119861,119861],\"mapped\",[98]],[[119862,119862],\"mapped\",[99]],[[119863,119863],\"mapped\",[100]],[[119864,119864],\"mapped\",[101]],[[119865,119865],\"mapped\",[102]],[[119866,119866],\"mapped\",[103]],[[119867,119867],\"mapped\",[104]],[[119868,119868],\"mapped\",[105]],[[119869,119869],\"mapped\",[106]],[[119870,119870],\"mapped\",[107]],[[119871,119871],\"mapped\",[108]],[[119872,119872],\"mapped\",[109]],[[119873,119873],\"mapped\",[110]],[[119874,119874],\"mapped\",[111]],[[119875,119875],\"mapped\",[112]],[[119876,119876],\"mapped\",[113]],[[119877,119877],\"mapped\",[114]],[[119878,119878],\"mapped\",[115]],[[119879,119879],\"mapped\",[116]],[[119880,119880],\"mapped\",[117]],[[119881,119881],\"mapped\",[118]],[[119882,119882],\"mapped\",[119]],[[119883,119883],\"mapped\",[120]],[[119884,119884],\"mapped\",[121]],[[119885,119885],\"mapped\",[122]],[[119886,119886],\"mapped\",[97]],[[119887,119887],\"mapped\",[98]],[[119888,119888],\"mapped\",[99]],[[119889,119889],\"mapped\",[100]],[[119890,119890],\"mapped\",[101]],[[119891,119891],\"mapped\",[102]],[[119892,119892],\"mapped\",[103]],[[119893,119893],\"disallowed\"],[[119894,119894],\"mapped\",[105]],[[119895,119895],\"mapped\",[106]],[[119896,119896],\"mapped\",[107]],[[119897,119897],\"mapped\",[108]],[[119898,119898],\"mapped\",[109]],[[119899,119899],\"mapped\",[110]],[[119900,119900],\"mapped\",[111]],[[119901,119901],\"mapped\",[112]],[[119902,119902],\"mapped\",[113]],[[119903,119903],\"mapped\",[114]],[[119904,119904],\"mapped\",[115]],[[119905,119905],\"mapped\",[116]],[[119906,119906],\"mapped\",[117]],[[119907,119907],\"mapped\",[118]],[[119908,119908],\"mapped\",[119]],[[119909,119909],\"mapped\",[120]],[[119910,119910],\"mapped\",[121]],[[119911,119911],\"mapped\",[122]],[[119912,119912],\"mapped\",[97]],[[119913,119913],\"mapped\",[98]],[[119914,119914],\"mapped\",[99]],[[119915,119915],\"mapped\",[100]],[[119916,119916],\"mapped\",[101]],[[119917,119917],\"mapped\",[102]],[[119918,119918],\"mapped\",[103]],[[119919,119919],\"mapped\",[104]],[[119920,119920],\"mapped\",[105]],[[119921,119921],\"mapped\",[106]],[[119922,119922],\"mapped\",[107]],[[119923,119923],\"mapped\",[108]],[[119924,119924],\"mapped\",[109]],[[119925,119925],\"mapped\",[110]],[[119926,119926],\"mapped\",[111]],[[119927,119927],\"mapped\",[112]],[[119928,119928],\"mapped\",[113]],[[119929,119929],\"mapped\",[114]],[[119930,119930],\"mapped\",[115]],[[119931,119931],\"mapped\",[116]],[[119932,119932],\"mapped\",[117]],[[119933,119933],\"mapped\",[118]],[[119934,119934],\"mapped\",[119]],[[119935,119935],\"mapped\",[120]],[[119936,119936],\"mapped\",[121]],[[119937,119937],\"mapped\",[122]],[[119938,119938],\"mapped\",[97]],[[119939,119939],\"mapped\",[98]],[[119940,119940],\"mapped\",[99]],[[119941,119941],\"mapped\",[100]],[[119942,119942],\"mapped\",[101]],[[119943,119943],\"mapped\",[102]],[[119944,119944],\"mapped\",[103]],[[119945,119945],\"mapped\",[104]],[[119946,119946],\"mapped\",[105]],[[119947,119947],\"mapped\",[106]],[[119948,119948],\"mapped\",[107]],[[119949,119949],\"mapped\",[108]],[[119950,119950],\"mapped\",[109]],[[119951,119951],\"mapped\",[110]],[[119952,119952],\"mapped\",[111]],[[119953,119953],\"mapped\",[112]],[[119954,119954],\"mapped\",[113]],[[119955,119955],\"mapped\",[114]],[[119956,119956],\"mapped\",[115]],[[119957,119957],\"mapped\",[116]],[[119958,119958],\"mapped\",[117]],[[119959,119959],\"mapped\",[118]],[[119960,119960],\"mapped\",[119]],[[119961,119961],\"mapped\",[120]],[[119962,119962],\"mapped\",[121]],[[119963,119963],\"mapped\",[122]],[[119964,119964],\"mapped\",[97]],[[119965,119965],\"disallowed\"],[[119966,119966],\"mapped\",[99]],[[119967,119967],\"mapped\",[100]],[[119968,119969],\"disallowed\"],[[119970,119970],\"mapped\",[103]],[[119971,119972],\"disallowed\"],[[119973,119973],\"mapped\",[106]],[[119974,119974],\"mapped\",[107]],[[119975,119976],\"disallowed\"],[[119977,119977],\"mapped\",[110]],[[119978,119978],\"mapped\",[111]],[[119979,119979],\"mapped\",[112]],[[119980,119980],\"mapped\",[113]],[[119981,119981],\"disallowed\"],[[119982,119982],\"mapped\",[115]],[[119983,119983],\"mapped\",[116]],[[119984,119984],\"mapped\",[117]],[[119985,119985],\"mapped\",[118]],[[119986,119986],\"mapped\",[119]],[[119987,119987],\"mapped\",[120]],[[119988,119988],\"mapped\",[121]],[[119989,119989],\"mapped\",[122]],[[119990,119990],\"mapped\",[97]],[[119991,119991],\"mapped\",[98]],[[119992,119992],\"mapped\",[99]],[[119993,119993],\"mapped\",[100]],[[119994,119994],\"disallowed\"],[[119995,119995],\"mapped\",[102]],[[119996,119996],\"disallowed\"],[[119997,119997],\"mapped\",[104]],[[119998,119998],\"mapped\",[105]],[[119999,119999],\"mapped\",[106]],[[120000,120000],\"mapped\",[107]],[[120001,120001],\"mapped\",[108]],[[120002,120002],\"mapped\",[109]],[[120003,120003],\"mapped\",[110]],[[120004,120004],\"disallowed\"],[[120005,120005],\"mapped\",[112]],[[120006,120006],\"mapped\",[113]],[[120007,120007],\"mapped\",[114]],[[120008,120008],\"mapped\",[115]],[[120009,120009],\"mapped\",[116]],[[120010,120010],\"mapped\",[117]],[[120011,120011],\"mapped\",[118]],[[120012,120012],\"mapped\",[119]],[[120013,120013],\"mapped\",[120]],[[120014,120014],\"mapped\",[121]],[[120015,120015],\"mapped\",[122]],[[120016,120016],\"mapped\",[97]],[[120017,120017],\"mapped\",[98]],[[120018,120018],\"mapped\",[99]],[[120019,120019],\"mapped\",[100]],[[120020,120020],\"mapped\",[101]],[[120021,120021],\"mapped\",[102]],[[120022,120022],\"mapped\",[103]],[[120023,120023],\"mapped\",[104]],[[120024,120024],\"mapped\",[105]],[[120025,120025],\"mapped\",[106]],[[120026,120026],\"mapped\",[107]],[[120027,120027],\"mapped\",[108]],[[120028,120028],\"mapped\",[109]],[[120029,120029],\"mapped\",[110]],[[120030,120030],\"mapped\",[111]],[[120031,120031],\"mapped\",[112]],[[120032,120032],\"mapped\",[113]],[[120033,120033],\"mapped\",[114]],[[120034,120034],\"mapped\",[115]],[[120035,120035],\"mapped\",[116]],[[120036,120036],\"mapped\",[117]],[[120037,120037],\"mapped\",[118]],[[120038,120038],\"mapped\",[119]],[[120039,120039],\"mapped\",[120]],[[120040,120040],\"mapped\",[121]],[[120041,120041],\"mapped\",[122]],[[120042,120042],\"mapped\",[97]],[[120043,120043],\"mapped\",[98]],[[120044,120044],\"mapped\",[99]],[[120045,120045],\"mapped\",[100]],[[120046,120046],\"mapped\",[101]],[[120047,120047],\"mapped\",[102]],[[120048,120048],\"mapped\",[103]],[[120049,120049],\"mapped\",[104]],[[120050,120050],\"mapped\",[105]],[[120051,120051],\"mapped\",[106]],[[120052,120052],\"mapped\",[107]],[[120053,120053],\"mapped\",[108]],[[120054,120054],\"mapped\",[109]],[[120055,120055],\"mapped\",[110]],[[120056,120056],\"mapped\",[111]],[[120057,120057],\"mapped\",[112]],[[120058,120058],\"mapped\",[113]],[[120059,120059],\"mapped\",[114]],[[120060,120060],\"mapped\",[115]],[[120061,120061],\"mapped\",[116]],[[120062,120062],\"mapped\",[117]],[[120063,120063],\"mapped\",[118]],[[120064,120064],\"mapped\",[119]],[[120065,120065],\"mapped\",[120]],[[120066,120066],\"mapped\",[121]],[[120067,120067],\"mapped\",[122]],[[120068,120068],\"mapped\",[97]],[[120069,120069],\"mapped\",[98]],[[120070,120070],\"disallowed\"],[[120071,120071],\"mapped\",[100]],[[120072,120072],\"mapped\",[101]],[[120073,120073],\"mapped\",[102]],[[120074,120074],\"mapped\",[103]],[[120075,120076],\"disallowed\"],[[120077,120077],\"mapped\",[106]],[[120078,120078],\"mapped\",[107]],[[120079,120079],\"mapped\",[108]],[[120080,120080],\"mapped\",[109]],[[120081,120081],\"mapped\",[110]],[[120082,120082],\"mapped\",[111]],[[120083,120083],\"mapped\",[112]],[[120084,120084],\"mapped\",[113]],[[120085,120085],\"disallowed\"],[[120086,120086],\"mapped\",[115]],[[120087,120087],\"mapped\",[116]],[[120088,120088],\"mapped\",[117]],[[120089,120089],\"mapped\",[118]],[[120090,120090],\"mapped\",[119]],[[120091,120091],\"mapped\",[120]],[[120092,120092],\"mapped\",[121]],[[120093,120093],\"disallowed\"],[[120094,120094],\"mapped\",[97]],[[120095,120095],\"mapped\",[98]],[[120096,120096],\"mapped\",[99]],[[120097,120097],\"mapped\",[100]],[[120098,120098],\"mapped\",[101]],[[120099,120099],\"mapped\",[102]],[[120100,120100],\"mapped\",[103]],[[120101,120101],\"mapped\",[104]],[[120102,120102],\"mapped\",[105]],[[120103,120103],\"mapped\",[106]],[[120104,120104],\"mapped\",[107]],[[120105,120105],\"mapped\",[108]],[[120106,120106],\"mapped\",[109]],[[120107,120107],\"mapped\",[110]],[[120108,120108],\"mapped\",[111]],[[120109,120109],\"mapped\",[112]],[[120110,120110],\"mapped\",[113]],[[120111,120111],\"mapped\",[114]],[[120112,120112],\"mapped\",[115]],[[120113,120113],\"mapped\",[116]],[[120114,120114],\"mapped\",[117]],[[120115,120115],\"mapped\",[118]],[[120116,120116],\"mapped\",[119]],[[120117,120117],\"mapped\",[120]],[[120118,120118],\"mapped\",[121]],[[120119,120119],\"mapped\",[122]],[[120120,120120],\"mapped\",[97]],[[120121,120121],\"mapped\",[98]],[[120122,120122],\"disallowed\"],[[120123,120123],\"mapped\",[100]],[[120124,120124],\"mapped\",[101]],[[120125,120125],\"mapped\",[102]],[[120126,120126],\"mapped\",[103]],[[120127,120127],\"disallowed\"],[[120128,120128],\"mapped\",[105]],[[120129,120129],\"mapped\",[106]],[[120130,120130],\"mapped\",[107]],[[120131,120131],\"mapped\",[108]],[[120132,120132],\"mapped\",[109]],[[120133,120133],\"disallowed\"],[[120134,120134],\"mapped\",[111]],[[120135,120137],\"disallowed\"],[[120138,120138],\"mapped\",[115]],[[120139,120139],\"mapped\",[116]],[[120140,120140],\"mapped\",[117]],[[120141,120141],\"mapped\",[118]],[[120142,120142],\"mapped\",[119]],[[120143,120143],\"mapped\",[120]],[[120144,120144],\"mapped\",[121]],[[120145,120145],\"disallowed\"],[[120146,120146],\"mapped\",[97]],[[120147,120147],\"mapped\",[98]],[[120148,120148],\"mapped\",[99]],[[120149,120149],\"mapped\",[100]],[[120150,120150],\"mapped\",[101]],[[120151,120151],\"mapped\",[102]],[[120152,120152],\"mapped\",[103]],[[120153,120153],\"mapped\",[104]],[[120154,120154],\"mapped\",[105]],[[120155,120155],\"mapped\",[106]],[[120156,120156],\"mapped\",[107]],[[120157,120157],\"mapped\",[108]],[[120158,120158],\"mapped\",[109]],[[120159,120159],\"mapped\",[110]],[[120160,120160],\"mapped\",[111]],[[120161,120161],\"mapped\",[112]],[[120162,120162],\"mapped\",[113]],[[120163,120163],\"mapped\",[114]],[[120164,120164],\"mapped\",[115]],[[120165,120165],\"mapped\",[116]],[[120166,120166],\"mapped\",[117]],[[120167,120167],\"mapped\",[118]],[[120168,120168],\"mapped\",[119]],[[120169,120169],\"mapped\",[120]],[[120170,120170],\"mapped\",[121]],[[120171,120171],\"mapped\",[122]],[[120172,120172],\"mapped\",[97]],[[120173,120173],\"mapped\",[98]],[[120174,120174],\"mapped\",[99]],[[120175,120175],\"mapped\",[100]],[[120176,120176],\"mapped\",[101]],[[120177,120177],\"mapped\",[102]],[[120178,120178],\"mapped\",[103]],[[120179,120179],\"mapped\",[104]],[[120180,120180],\"mapped\",[105]],[[120181,120181],\"mapped\",[106]],[[120182,120182],\"mapped\",[107]],[[120183,120183],\"mapped\",[108]],[[120184,120184],\"mapped\",[109]],[[120185,120185],\"mapped\",[110]],[[120186,120186],\"mapped\",[111]],[[120187,120187],\"mapped\",[112]],[[120188,120188],\"mapped\",[113]],[[120189,120189],\"mapped\",[114]],[[120190,120190],\"mapped\",[115]],[[120191,120191],\"mapped\",[116]],[[120192,120192],\"mapped\",[117]],[[120193,120193],\"mapped\",[118]],[[120194,120194],\"mapped\",[119]],[[120195,120195],\"mapped\",[120]],[[120196,120196],\"mapped\",[121]],[[120197,120197],\"mapped\",[122]],[[120198,120198],\"mapped\",[97]],[[120199,120199],\"mapped\",[98]],[[120200,120200],\"mapped\",[99]],[[120201,120201],\"mapped\",[100]],[[120202,120202],\"mapped\",[101]],[[120203,120203],\"mapped\",[102]],[[120204,120204],\"mapped\",[103]],[[120205,120205],\"mapped\",[104]],[[120206,120206],\"mapped\",[105]],[[120207,120207],\"mapped\",[106]],[[120208,120208],\"mapped\",[107]],[[120209,120209],\"mapped\",[108]],[[120210,120210],\"mapped\",[109]],[[120211,120211],\"mapped\",[110]],[[120212,120212],\"mapped\",[111]],[[120213,120213],\"mapped\",[112]],[[120214,120214],\"mapped\",[113]],[[120215,120215],\"mapped\",[114]],[[120216,120216],\"mapped\",[115]],[[120217,120217],\"mapped\",[116]],[[120218,120218],\"mapped\",[117]],[[120219,120219],\"mapped\",[118]],[[120220,120220],\"mapped\",[119]],[[120221,120221],\"mapped\",[120]],[[120222,120222],\"mapped\",[121]],[[120223,120223],\"mapped\",[122]],[[120224,120224],\"mapped\",[97]],[[120225,120225],\"mapped\",[98]],[[120226,120226],\"mapped\",[99]],[[120227,120227],\"mapped\",[100]],[[120228,120228],\"mapped\",[101]],[[120229,120229],\"mapped\",[102]],[[120230,120230],\"mapped\",[103]],[[120231,120231],\"mapped\",[104]],[[120232,120232],\"mapped\",[105]],[[120233,120233],\"mapped\",[106]],[[120234,120234],\"mapped\",[107]],[[120235,120235],\"mapped\",[108]],[[120236,120236],\"mapped\",[109]],[[120237,120237],\"mapped\",[110]],[[120238,120238],\"mapped\",[111]],[[120239,120239],\"mapped\",[112]],[[120240,120240],\"mapped\",[113]],[[120241,120241],\"mapped\",[114]],[[120242,120242],\"mapped\",[115]],[[120243,120243],\"mapped\",[116]],[[120244,120244],\"mapped\",[117]],[[120245,120245],\"mapped\",[118]],[[120246,120246],\"mapped\",[119]],[[120247,120247],\"mapped\",[120]],[[120248,120248],\"mapped\",[121]],[[120249,120249],\"mapped\",[122]],[[120250,120250],\"mapped\",[97]],[[120251,120251],\"mapped\",[98]],[[120252,120252],\"mapped\",[99]],[[120253,120253],\"mapped\",[100]],[[120254,120254],\"mapped\",[101]],[[120255,120255],\"mapped\",[102]],[[120256,120256],\"mapped\",[103]],[[120257,120257],\"mapped\",[104]],[[120258,120258],\"mapped\",[105]],[[120259,120259],\"mapped\",[106]],[[120260,120260],\"mapped\",[107]],[[120261,120261],\"mapped\",[108]],[[120262,120262],\"mapped\",[109]],[[120263,120263],\"mapped\",[110]],[[120264,120264],\"mapped\",[111]],[[120265,120265],\"mapped\",[112]],[[120266,120266],\"mapped\",[113]],[[120267,120267],\"mapped\",[114]],[[120268,120268],\"mapped\",[115]],[[120269,120269],\"mapped\",[116]],[[120270,120270],\"mapped\",[117]],[[120271,120271],\"mapped\",[118]],[[120272,120272],\"mapped\",[119]],[[120273,120273],\"mapped\",[120]],[[120274,120274],\"mapped\",[121]],[[120275,120275],\"mapped\",[122]],[[120276,120276],\"mapped\",[97]],[[120277,120277],\"mapped\",[98]],[[120278,120278],\"mapped\",[99]],[[120279,120279],\"mapped\",[100]],[[120280,120280],\"mapped\",[101]],[[120281,120281],\"mapped\",[102]],[[120282,120282],\"mapped\",[103]],[[120283,120283],\"mapped\",[104]],[[120284,120284],\"mapped\",[105]],[[120285,120285],\"mapped\",[106]],[[120286,120286],\"mapped\",[107]],[[120287,120287],\"mapped\",[108]],[[120288,120288],\"mapped\",[109]],[[120289,120289],\"mapped\",[110]],[[120290,120290],\"mapped\",[111]],[[120291,120291],\"mapped\",[112]],[[120292,120292],\"mapped\",[113]],[[120293,120293],\"mapped\",[114]],[[120294,120294],\"mapped\",[115]],[[120295,120295],\"mapped\",[116]],[[120296,120296],\"mapped\",[117]],[[120297,120297],\"mapped\",[118]],[[120298,120298],\"mapped\",[119]],[[120299,120299],\"mapped\",[120]],[[120300,120300],\"mapped\",[121]],[[120301,120301],\"mapped\",[122]],[[120302,120302],\"mapped\",[97]],[[120303,120303],\"mapped\",[98]],[[120304,120304],\"mapped\",[99]],[[120305,120305],\"mapped\",[100]],[[120306,120306],\"mapped\",[101]],[[120307,120307],\"mapped\",[102]],[[120308,120308],\"mapped\",[103]],[[120309,120309],\"mapped\",[104]],[[120310,120310],\"mapped\",[105]],[[120311,120311],\"mapped\",[106]],[[120312,120312],\"mapped\",[107]],[[120313,120313],\"mapped\",[108]],[[120314,120314],\"mapped\",[109]],[[120315,120315],\"mapped\",[110]],[[120316,120316],\"mapped\",[111]],[[120317,120317],\"mapped\",[112]],[[120318,120318],\"mapped\",[113]],[[120319,120319],\"mapped\",[114]],[[120320,120320],\"mapped\",[115]],[[120321,120321],\"mapped\",[116]],[[120322,120322],\"mapped\",[117]],[[120323,120323],\"mapped\",[118]],[[120324,120324],\"mapped\",[119]],[[120325,120325],\"mapped\",[120]],[[120326,120326],\"mapped\",[121]],[[120327,120327],\"mapped\",[122]],[[120328,120328],\"mapped\",[97]],[[120329,120329],\"mapped\",[98]],[[120330,120330],\"mapped\",[99]],[[120331,120331],\"mapped\",[100]],[[120332,120332],\"mapped\",[101]],[[120333,120333],\"mapped\",[102]],[[120334,120334],\"mapped\",[103]],[[120335,120335],\"mapped\",[104]],[[120336,120336],\"mapped\",[105]],[[120337,120337],\"mapped\",[106]],[[120338,120338],\"mapped\",[107]],[[120339,120339],\"mapped\",[108]],[[120340,120340],\"mapped\",[109]],[[120341,120341],\"mapped\",[110]],[[120342,120342],\"mapped\",[111]],[[120343,120343],\"mapped\",[112]],[[120344,120344],\"mapped\",[113]],[[120345,120345],\"mapped\",[114]],[[120346,120346],\"mapped\",[115]],[[120347,120347],\"mapped\",[116]],[[120348,120348],\"mapped\",[117]],[[120349,120349],\"mapped\",[118]],[[120350,120350],\"mapped\",[119]],[[120351,120351],\"mapped\",[120]],[[120352,120352],\"mapped\",[121]],[[120353,120353],\"mapped\",[122]],[[120354,120354],\"mapped\",[97]],[[120355,120355],\"mapped\",[98]],[[120356,120356],\"mapped\",[99]],[[120357,120357],\"mapped\",[100]],[[120358,120358],\"mapped\",[101]],[[120359,120359],\"mapped\",[102]],[[120360,120360],\"mapped\",[103]],[[120361,120361],\"mapped\",[104]],[[120362,120362],\"mapped\",[105]],[[120363,120363],\"mapped\",[106]],[[120364,120364],\"mapped\",[107]],[[120365,120365],\"mapped\",[108]],[[120366,120366],\"mapped\",[109]],[[120367,120367],\"mapped\",[110]],[[120368,120368],\"mapped\",[111]],[[120369,120369],\"mapped\",[112]],[[120370,120370],\"mapped\",[113]],[[120371,120371],\"mapped\",[114]],[[120372,120372],\"mapped\",[115]],[[120373,120373],\"mapped\",[116]],[[120374,120374],\"mapped\",[117]],[[120375,120375],\"mapped\",[118]],[[120376,120376],\"mapped\",[119]],[[120377,120377],\"mapped\",[120]],[[120378,120378],\"mapped\",[121]],[[120379,120379],\"mapped\",[122]],[[120380,120380],\"mapped\",[97]],[[120381,120381],\"mapped\",[98]],[[120382,120382],\"mapped\",[99]],[[120383,120383],\"mapped\",[100]],[[120384,120384],\"mapped\",[101]],[[120385,120385],\"mapped\",[102]],[[120386,120386],\"mapped\",[103]],[[120387,120387],\"mapped\",[104]],[[120388,120388],\"mapped\",[105]],[[120389,120389],\"mapped\",[106]],[[120390,120390],\"mapped\",[107]],[[120391,120391],\"mapped\",[108]],[[120392,120392],\"mapped\",[109]],[[120393,120393],\"mapped\",[110]],[[120394,120394],\"mapped\",[111]],[[120395,120395],\"mapped\",[112]],[[120396,120396],\"mapped\",[113]],[[120397,120397],\"mapped\",[114]],[[120398,120398],\"mapped\",[115]],[[120399,120399],\"mapped\",[116]],[[120400,120400],\"mapped\",[117]],[[120401,120401],\"mapped\",[118]],[[120402,120402],\"mapped\",[119]],[[120403,120403],\"mapped\",[120]],[[120404,120404],\"mapped\",[121]],[[120405,120405],\"mapped\",[122]],[[120406,120406],\"mapped\",[97]],[[120407,120407],\"mapped\",[98]],[[120408,120408],\"mapped\",[99]],[[120409,120409],\"mapped\",[100]],[[120410,120410],\"mapped\",[101]],[[120411,120411],\"mapped\",[102]],[[120412,120412],\"mapped\",[103]],[[120413,120413],\"mapped\",[104]],[[120414,120414],\"mapped\",[105]],[[120415,120415],\"mapped\",[106]],[[120416,120416],\"mapped\",[107]],[[120417,120417],\"mapped\",[108]],[[120418,120418],\"mapped\",[109]],[[120419,120419],\"mapped\",[110]],[[120420,120420],\"mapped\",[111]],[[120421,120421],\"mapped\",[112]],[[120422,120422],\"mapped\",[113]],[[120423,120423],\"mapped\",[114]],[[120424,120424],\"mapped\",[115]],[[120425,120425],\"mapped\",[116]],[[120426,120426],\"mapped\",[117]],[[120427,120427],\"mapped\",[118]],[[120428,120428],\"mapped\",[119]],[[120429,120429],\"mapped\",[120]],[[120430,120430],\"mapped\",[121]],[[120431,120431],\"mapped\",[122]],[[120432,120432],\"mapped\",[97]],[[120433,120433],\"mapped\",[98]],[[120434,120434],\"mapped\",[99]],[[120435,120435],\"mapped\",[100]],[[120436,120436],\"mapped\",[101]],[[120437,120437],\"mapped\",[102]],[[120438,120438],\"mapped\",[103]],[[120439,120439],\"mapped\",[104]],[[120440,120440],\"mapped\",[105]],[[120441,120441],\"mapped\",[106]],[[120442,120442],\"mapped\",[107]],[[120443,120443],\"mapped\",[108]],[[120444,120444],\"mapped\",[109]],[[120445,120445],\"mapped\",[110]],[[120446,120446],\"mapped\",[111]],[[120447,120447],\"mapped\",[112]],[[120448,120448],\"mapped\",[113]],[[120449,120449],\"mapped\",[114]],[[120450,120450],\"mapped\",[115]],[[120451,120451],\"mapped\",[116]],[[120452,120452],\"mapped\",[117]],[[120453,120453],\"mapped\",[118]],[[120454,120454],\"mapped\",[119]],[[120455,120455],\"mapped\",[120]],[[120456,120456],\"mapped\",[121]],[[120457,120457],\"mapped\",[122]],[[120458,120458],\"mapped\",[97]],[[120459,120459],\"mapped\",[98]],[[120460,120460],\"mapped\",[99]],[[120461,120461],\"mapped\",[100]],[[120462,120462],\"mapped\",[101]],[[120463,120463],\"mapped\",[102]],[[120464,120464],\"mapped\",[103]],[[120465,120465],\"mapped\",[104]],[[120466,120466],\"mapped\",[105]],[[120467,120467],\"mapped\",[106]],[[120468,120468],\"mapped\",[107]],[[120469,120469],\"mapped\",[108]],[[120470,120470],\"mapped\",[109]],[[120471,120471],\"mapped\",[110]],[[120472,120472],\"mapped\",[111]],[[120473,120473],\"mapped\",[112]],[[120474,120474],\"mapped\",[113]],[[120475,120475],\"mapped\",[114]],[[120476,120476],\"mapped\",[115]],[[120477,120477],\"mapped\",[116]],[[120478,120478],\"mapped\",[117]],[[120479,120479],\"mapped\",[118]],[[120480,120480],\"mapped\",[119]],[[120481,120481],\"mapped\",[120]],[[120482,120482],\"mapped\",[121]],[[120483,120483],\"mapped\",[122]],[[120484,120484],\"mapped\",[305]],[[120485,120485],\"mapped\",[567]],[[120486,120487],\"disallowed\"],[[120488,120488],\"mapped\",[945]],[[120489,120489],\"mapped\",[946]],[[120490,120490],\"mapped\",[947]],[[120491,120491],\"mapped\",[948]],[[120492,120492],\"mapped\",[949]],[[120493,120493],\"mapped\",[950]],[[120494,120494],\"mapped\",[951]],[[120495,120495],\"mapped\",[952]],[[120496,120496],\"mapped\",[953]],[[120497,120497],\"mapped\",[954]],[[120498,120498],\"mapped\",[955]],[[120499,120499],\"mapped\",[956]],[[120500,120500],\"mapped\",[957]],[[120501,120501],\"mapped\",[958]],[[120502,120502],\"mapped\",[959]],[[120503,120503],\"mapped\",[960]],[[120504,120504],\"mapped\",[961]],[[120505,120505],\"mapped\",[952]],[[120506,120506],\"mapped\",[963]],[[120507,120507],\"mapped\",[964]],[[120508,120508],\"mapped\",[965]],[[120509,120509],\"mapped\",[966]],[[120510,120510],\"mapped\",[967]],[[120511,120511],\"mapped\",[968]],[[120512,120512],\"mapped\",[969]],[[120513,120513],\"mapped\",[8711]],[[120514,120514],\"mapped\",[945]],[[120515,120515],\"mapped\",[946]],[[120516,120516],\"mapped\",[947]],[[120517,120517],\"mapped\",[948]],[[120518,120518],\"mapped\",[949]],[[120519,120519],\"mapped\",[950]],[[120520,120520],\"mapped\",[951]],[[120521,120521],\"mapped\",[952]],[[120522,120522],\"mapped\",[953]],[[120523,120523],\"mapped\",[954]],[[120524,120524],\"mapped\",[955]],[[120525,120525],\"mapped\",[956]],[[120526,120526],\"mapped\",[957]],[[120527,120527],\"mapped\",[958]],[[120528,120528],\"mapped\",[959]],[[120529,120529],\"mapped\",[960]],[[120530,120530],\"mapped\",[961]],[[120531,120532],\"mapped\",[963]],[[120533,120533],\"mapped\",[964]],[[120534,120534],\"mapped\",[965]],[[120535,120535],\"mapped\",[966]],[[120536,120536],\"mapped\",[967]],[[120537,120537],\"mapped\",[968]],[[120538,120538],\"mapped\",[969]],[[120539,120539],\"mapped\",[8706]],[[120540,120540],\"mapped\",[949]],[[120541,120541],\"mapped\",[952]],[[120542,120542],\"mapped\",[954]],[[120543,120543],\"mapped\",[966]],[[120544,120544],\"mapped\",[961]],[[120545,120545],\"mapped\",[960]],[[120546,120546],\"mapped\",[945]],[[120547,120547],\"mapped\",[946]],[[120548,120548],\"mapped\",[947]],[[120549,120549],\"mapped\",[948]],[[120550,120550],\"mapped\",[949]],[[120551,120551],\"mapped\",[950]],[[120552,120552],\"mapped\",[951]],[[120553,120553],\"mapped\",[952]],[[120554,120554],\"mapped\",[953]],[[120555,120555],\"mapped\",[954]],[[120556,120556],\"mapped\",[955]],[[120557,120557],\"mapped\",[956]],[[120558,120558],\"mapped\",[957]],[[120559,120559],\"mapped\",[958]],[[120560,120560],\"mapped\",[959]],[[120561,120561],\"mapped\",[960]],[[120562,120562],\"mapped\",[961]],[[120563,120563],\"mapped\",[952]],[[120564,120564],\"mapped\",[963]],[[120565,120565],\"mapped\",[964]],[[120566,120566],\"mapped\",[965]],[[120567,120567],\"mapped\",[966]],[[120568,120568],\"mapped\",[967]],[[120569,120569],\"mapped\",[968]],[[120570,120570],\"mapped\",[969]],[[120571,120571],\"mapped\",[8711]],[[120572,120572],\"mapped\",[945]],[[120573,120573],\"mapped\",[946]],[[120574,120574],\"mapped\",[947]],[[120575,120575],\"mapped\",[948]],[[120576,120576],\"mapped\",[949]],[[120577,120577],\"mapped\",[950]],[[120578,120578],\"mapped\",[951]],[[120579,120579],\"mapped\",[952]],[[120580,120580],\"mapped\",[953]],[[120581,120581],\"mapped\",[954]],[[120582,120582],\"mapped\",[955]],[[120583,120583],\"mapped\",[956]],[[120584,120584],\"mapped\",[957]],[[120585,120585],\"mapped\",[958]],[[120586,120586],\"mapped\",[959]],[[120587,120587],\"mapped\",[960]],[[120588,120588],\"mapped\",[961]],[[120589,120590],\"mapped\",[963]],[[120591,120591],\"mapped\",[964]],[[120592,120592],\"mapped\",[965]],[[120593,120593],\"mapped\",[966]],[[120594,120594],\"mapped\",[967]],[[120595,120595],\"mapped\",[968]],[[120596,120596],\"mapped\",[969]],[[120597,120597],\"mapped\",[8706]],[[120598,120598],\"mapped\",[949]],[[120599,120599],\"mapped\",[952]],[[120600,120600],\"mapped\",[954]],[[120601,120601],\"mapped\",[966]],[[120602,120602],\"mapped\",[961]],[[120603,120603],\"mapped\",[960]],[[120604,120604],\"mapped\",[945]],[[120605,120605],\"mapped\",[946]],[[120606,120606],\"mapped\",[947]],[[120607,120607],\"mapped\",[948]],[[120608,120608],\"mapped\",[949]],[[120609,120609],\"mapped\",[950]],[[120610,120610],\"mapped\",[951]],[[120611,120611],\"mapped\",[952]],[[120612,120612],\"mapped\",[953]],[[120613,120613],\"mapped\",[954]],[[120614,120614],\"mapped\",[955]],[[120615,120615],\"mapped\",[956]],[[120616,120616],\"mapped\",[957]],[[120617,120617],\"mapped\",[958]],[[120618,120618],\"mapped\",[959]],[[120619,120619],\"mapped\",[960]],[[120620,120620],\"mapped\",[961]],[[120621,120621],\"mapped\",[952]],[[120622,120622],\"mapped\",[963]],[[120623,120623],\"mapped\",[964]],[[120624,120624],\"mapped\",[965]],[[120625,120625],\"mapped\",[966]],[[120626,120626],\"mapped\",[967]],[[120627,120627],\"mapped\",[968]],[[120628,120628],\"mapped\",[969]],[[120629,120629],\"mapped\",[8711]],[[120630,120630],\"mapped\",[945]],[[120631,120631],\"mapped\",[946]],[[120632,120632],\"mapped\",[947]],[[120633,120633],\"mapped\",[948]],[[120634,120634],\"mapped\",[949]],[[120635,120635],\"mapped\",[950]],[[120636,120636],\"mapped\",[951]],[[120637,120637],\"mapped\",[952]],[[120638,120638],\"mapped\",[953]],[[120639,120639],\"mapped\",[954]],[[120640,120640],\"mapped\",[955]],[[120641,120641],\"mapped\",[956]],[[120642,120642],\"mapped\",[957]],[[120643,120643],\"mapped\",[958]],[[120644,120644],\"mapped\",[959]],[[120645,120645],\"mapped\",[960]],[[120646,120646],\"mapped\",[961]],[[120647,120648],\"mapped\",[963]],[[120649,120649],\"mapped\",[964]],[[120650,120650],\"mapped\",[965]],[[120651,120651],\"mapped\",[966]],[[120652,120652],\"mapped\",[967]],[[120653,120653],\"mapped\",[968]],[[120654,120654],\"mapped\",[969]],[[120655,120655],\"mapped\",[8706]],[[120656,120656],\"mapped\",[949]],[[120657,120657],\"mapped\",[952]],[[120658,120658],\"mapped\",[954]],[[120659,120659],\"mapped\",[966]],[[120660,120660],\"mapped\",[961]],[[120661,120661],\"mapped\",[960]],[[120662,120662],\"mapped\",[945]],[[120663,120663],\"mapped\",[946]],[[120664,120664],\"mapped\",[947]],[[120665,120665],\"mapped\",[948]],[[120666,120666],\"mapped\",[949]],[[120667,120667],\"mapped\",[950]],[[120668,120668],\"mapped\",[951]],[[120669,120669],\"mapped\",[952]],[[120670,120670],\"mapped\",[953]],[[120671,120671],\"mapped\",[954]],[[120672,120672],\"mapped\",[955]],[[120673,120673],\"mapped\",[956]],[[120674,120674],\"mapped\",[957]],[[120675,120675],\"mapped\",[958]],[[120676,120676],\"mapped\",[959]],[[120677,120677],\"mapped\",[960]],[[120678,120678],\"mapped\",[961]],[[120679,120679],\"mapped\",[952]],[[120680,120680],\"mapped\",[963]],[[120681,120681],\"mapped\",[964]],[[120682,120682],\"mapped\",[965]],[[120683,120683],\"mapped\",[966]],[[120684,120684],\"mapped\",[967]],[[120685,120685],\"mapped\",[968]],[[120686,120686],\"mapped\",[969]],[[120687,120687],\"mapped\",[8711]],[[120688,120688],\"mapped\",[945]],[[120689,120689],\"mapped\",[946]],[[120690,120690],\"mapped\",[947]],[[120691,120691],\"mapped\",[948]],[[120692,120692],\"mapped\",[949]],[[120693,120693],\"mapped\",[950]],[[120694,120694],\"mapped\",[951]],[[120695,120695],\"mapped\",[952]],[[120696,120696],\"mapped\",[953]],[[120697,120697],\"mapped\",[954]],[[120698,120698],\"mapped\",[955]],[[120699,120699],\"mapped\",[956]],[[120700,120700],\"mapped\",[957]],[[120701,120701],\"mapped\",[958]],[[120702,120702],\"mapped\",[959]],[[120703,120703],\"mapped\",[960]],[[120704,120704],\"mapped\",[961]],[[120705,120706],\"mapped\",[963]],[[120707,120707],\"mapped\",[964]],[[120708,120708],\"mapped\",[965]],[[120709,120709],\"mapped\",[966]],[[120710,120710],\"mapped\",[967]],[[120711,120711],\"mapped\",[968]],[[120712,120712],\"mapped\",[969]],[[120713,120713],\"mapped\",[8706]],[[120714,120714],\"mapped\",[949]],[[120715,120715],\"mapped\",[952]],[[120716,120716],\"mapped\",[954]],[[120717,120717],\"mapped\",[966]],[[120718,120718],\"mapped\",[961]],[[120719,120719],\"mapped\",[960]],[[120720,120720],\"mapped\",[945]],[[120721,120721],\"mapped\",[946]],[[120722,120722],\"mapped\",[947]],[[120723,120723],\"mapped\",[948]],[[120724,120724],\"mapped\",[949]],[[120725,120725],\"mapped\",[950]],[[120726,120726],\"mapped\",[951]],[[120727,120727],\"mapped\",[952]],[[120728,120728],\"mapped\",[953]],[[120729,120729],\"mapped\",[954]],[[120730,120730],\"mapped\",[955]],[[120731,120731],\"mapped\",[956]],[[120732,120732],\"mapped\",[957]],[[120733,120733],\"mapped\",[958]],[[120734,120734],\"mapped\",[959]],[[120735,120735],\"mapped\",[960]],[[120736,120736],\"mapped\",[961]],[[120737,120737],\"mapped\",[952]],[[120738,120738],\"mapped\",[963]],[[120739,120739],\"mapped\",[964]],[[120740,120740],\"mapped\",[965]],[[120741,120741],\"mapped\",[966]],[[120742,120742],\"mapped\",[967]],[[120743,120743],\"mapped\",[968]],[[120744,120744],\"mapped\",[969]],[[120745,120745],\"mapped\",[8711]],[[120746,120746],\"mapped\",[945]],[[120747,120747],\"mapped\",[946]],[[120748,120748],\"mapped\",[947]],[[120749,120749],\"mapped\",[948]],[[120750,120750],\"mapped\",[949]],[[120751,120751],\"mapped\",[950]],[[120752,120752],\"mapped\",[951]],[[120753,120753],\"mapped\",[952]],[[120754,120754],\"mapped\",[953]],[[120755,120755],\"mapped\",[954]],[[120756,120756],\"mapped\",[955]],[[120757,120757],\"mapped\",[956]],[[120758,120758],\"mapped\",[957]],[[120759,120759],\"mapped\",[958]],[[120760,120760],\"mapped\",[959]],[[120761,120761],\"mapped\",[960]],[[120762,120762],\"mapped\",[961]],[[120763,120764],\"mapped\",[963]],[[120765,120765],\"mapped\",[964]],[[120766,120766],\"mapped\",[965]],[[120767,120767],\"mapped\",[966]],[[120768,120768],\"mapped\",[967]],[[120769,120769],\"mapped\",[968]],[[120770,120770],\"mapped\",[969]],[[120771,120771],\"mapped\",[8706]],[[120772,120772],\"mapped\",[949]],[[120773,120773],\"mapped\",[952]],[[120774,120774],\"mapped\",[954]],[[120775,120775],\"mapped\",[966]],[[120776,120776],\"mapped\",[961]],[[120777,120777],\"mapped\",[960]],[[120778,120779],\"mapped\",[989]],[[120780,120781],\"disallowed\"],[[120782,120782],\"mapped\",[48]],[[120783,120783],\"mapped\",[49]],[[120784,120784],\"mapped\",[50]],[[120785,120785],\"mapped\",[51]],[[120786,120786],\"mapped\",[52]],[[120787,120787],\"mapped\",[53]],[[120788,120788],\"mapped\",[54]],[[120789,120789],\"mapped\",[55]],[[120790,120790],\"mapped\",[56]],[[120791,120791],\"mapped\",[57]],[[120792,120792],\"mapped\",[48]],[[120793,120793],\"mapped\",[49]],[[120794,120794],\"mapped\",[50]],[[120795,120795],\"mapped\",[51]],[[120796,120796],\"mapped\",[52]],[[120797,120797],\"mapped\",[53]],[[120798,120798],\"mapped\",[54]],[[120799,120799],\"mapped\",[55]],[[120800,120800],\"mapped\",[56]],[[120801,120801],\"mapped\",[57]],[[120802,120802],\"mapped\",[48]],[[120803,120803],\"mapped\",[49]],[[120804,120804],\"mapped\",[50]],[[120805,120805],\"mapped\",[51]],[[120806,120806],\"mapped\",[52]],[[120807,120807],\"mapped\",[53]],[[120808,120808],\"mapped\",[54]],[[120809,120809],\"mapped\",[55]],[[120810,120810],\"mapped\",[56]],[[120811,120811],\"mapped\",[57]],[[120812,120812],\"mapped\",[48]],[[120813,120813],\"mapped\",[49]],[[120814,120814],\"mapped\",[50]],[[120815,120815],\"mapped\",[51]],[[120816,120816],\"mapped\",[52]],[[120817,120817],\"mapped\",[53]],[[120818,120818],\"mapped\",[54]],[[120819,120819],\"mapped\",[55]],[[120820,120820],\"mapped\",[56]],[[120821,120821],\"mapped\",[57]],[[120822,120822],\"mapped\",[48]],[[120823,120823],\"mapped\",[49]],[[120824,120824],\"mapped\",[50]],[[120825,120825],\"mapped\",[51]],[[120826,120826],\"mapped\",[52]],[[120827,120827],\"mapped\",[53]],[[120828,120828],\"mapped\",[54]],[[120829,120829],\"mapped\",[55]],[[120830,120830],\"mapped\",[56]],[[120831,120831],\"mapped\",[57]],[[120832,121343],\"valid\",[],\"NV8\"],[[121344,121398],\"valid\"],[[121399,121402],\"valid\",[],\"NV8\"],[[121403,121452],\"valid\"],[[121453,121460],\"valid\",[],\"NV8\"],[[121461,121461],\"valid\"],[[121462,121475],\"valid\",[],\"NV8\"],[[121476,121476],\"valid\"],[[121477,121483],\"valid\",[],\"NV8\"],[[121484,121498],\"disallowed\"],[[121499,121503],\"valid\"],[[121504,121504],\"disallowed\"],[[121505,121519],\"valid\"],[[121520,124927],\"disallowed\"],[[124928,125124],\"valid\"],[[125125,125126],\"disallowed\"],[[125127,125135],\"valid\",[],\"NV8\"],[[125136,125142],\"valid\"],[[125143,126463],\"disallowed\"],[[126464,126464],\"mapped\",[1575]],[[126465,126465],\"mapped\",[1576]],[[126466,126466],\"mapped\",[1580]],[[126467,126467],\"mapped\",[1583]],[[126468,126468],\"disallowed\"],[[126469,126469],\"mapped\",[1608]],[[126470,126470],\"mapped\",[1586]],[[126471,126471],\"mapped\",[1581]],[[126472,126472],\"mapped\",[1591]],[[126473,126473],\"mapped\",[1610]],[[126474,126474],\"mapped\",[1603]],[[126475,126475],\"mapped\",[1604]],[[126476,126476],\"mapped\",[1605]],[[126477,126477],\"mapped\",[1606]],[[126478,126478],\"mapped\",[1587]],[[126479,126479],\"mapped\",[1593]],[[126480,126480],\"mapped\",[1601]],[[126481,126481],\"mapped\",[1589]],[[126482,126482],\"mapped\",[1602]],[[126483,126483],\"mapped\",[1585]],[[126484,126484],\"mapped\",[1588]],[[126485,126485],\"mapped\",[1578]],[[126486,126486],\"mapped\",[1579]],[[126487,126487],\"mapped\",[1582]],[[126488,126488],\"mapped\",[1584]],[[126489,126489],\"mapped\",[1590]],[[126490,126490],\"mapped\",[1592]],[[126491,126491],\"mapped\",[1594]],[[126492,126492],\"mapped\",[1646]],[[126493,126493],\"mapped\",[1722]],[[126494,126494],\"mapped\",[1697]],[[126495,126495],\"mapped\",[1647]],[[126496,126496],\"disallowed\"],[[126497,126497],\"mapped\",[1576]],[[126498,126498],\"mapped\",[1580]],[[126499,126499],\"disallowed\"],[[126500,126500],\"mapped\",[1607]],[[126501,126502],\"disallowed\"],[[126503,126503],\"mapped\",[1581]],[[126504,126504],\"disallowed\"],[[126505,126505],\"mapped\",[1610]],[[126506,126506],\"mapped\",[1603]],[[126507,126507],\"mapped\",[1604]],[[126508,126508],\"mapped\",[1605]],[[126509,126509],\"mapped\",[1606]],[[126510,126510],\"mapped\",[1587]],[[126511,126511],\"mapped\",[1593]],[[126512,126512],\"mapped\",[1601]],[[126513,126513],\"mapped\",[1589]],[[126514,126514],\"mapped\",[1602]],[[126515,126515],\"disallowed\"],[[126516,126516],\"mapped\",[1588]],[[126517,126517],\"mapped\",[1578]],[[126518,126518],\"mapped\",[1579]],[[126519,126519],\"mapped\",[1582]],[[126520,126520],\"disallowed\"],[[126521,126521],\"mapped\",[1590]],[[126522,126522],\"disallowed\"],[[126523,126523],\"mapped\",[1594]],[[126524,126529],\"disallowed\"],[[126530,126530],\"mapped\",[1580]],[[126531,126534],\"disallowed\"],[[126535,126535],\"mapped\",[1581]],[[126536,126536],\"disallowed\"],[[126537,126537],\"mapped\",[1610]],[[126538,126538],\"disallowed\"],[[126539,126539],\"mapped\",[1604]],[[126540,126540],\"disallowed\"],[[126541,126541],\"mapped\",[1606]],[[126542,126542],\"mapped\",[1587]],[[126543,126543],\"mapped\",[1593]],[[126544,126544],\"disallowed\"],[[126545,126545],\"mapped\",[1589]],[[126546,126546],\"mapped\",[1602]],[[126547,126547],\"disallowed\"],[[126548,126548],\"mapped\",[1588]],[[126549,126550],\"disallowed\"],[[126551,126551],\"mapped\",[1582]],[[126552,126552],\"disallowed\"],[[126553,126553],\"mapped\",[1590]],[[126554,126554],\"disallowed\"],[[126555,126555],\"mapped\",[1594]],[[126556,126556],\"disallowed\"],[[126557,126557],\"mapped\",[1722]],[[126558,126558],\"disallowed\"],[[126559,126559],\"mapped\",[1647]],[[126560,126560],\"disallowed\"],[[126561,126561],\"mapped\",[1576]],[[126562,126562],\"mapped\",[1580]],[[126563,126563],\"disallowed\"],[[126564,126564],\"mapped\",[1607]],[[126565,126566],\"disallowed\"],[[126567,126567],\"mapped\",[1581]],[[126568,126568],\"mapped\",[1591]],[[126569,126569],\"mapped\",[1610]],[[126570,126570],\"mapped\",[1603]],[[126571,126571],\"disallowed\"],[[126572,126572],\"mapped\",[1605]],[[126573,126573],\"mapped\",[1606]],[[126574,126574],\"mapped\",[1587]],[[126575,126575],\"mapped\",[1593]],[[126576,126576],\"mapped\",[1601]],[[126577,126577],\"mapped\",[1589]],[[126578,126578],\"mapped\",[1602]],[[126579,126579],\"disallowed\"],[[126580,126580],\"mapped\",[1588]],[[126581,126581],\"mapped\",[1578]],[[126582,126582],\"mapped\",[1579]],[[126583,126583],\"mapped\",[1582]],[[126584,126584],\"disallowed\"],[[126585,126585],\"mapped\",[1590]],[[126586,126586],\"mapped\",[1592]],[[126587,126587],\"mapped\",[1594]],[[126588,126588],\"mapped\",[1646]],[[126589,126589],\"disallowed\"],[[126590,126590],\"mapped\",[1697]],[[126591,126591],\"disallowed\"],[[126592,126592],\"mapped\",[1575]],[[126593,126593],\"mapped\",[1576]],[[126594,126594],\"mapped\",[1580]],[[126595,126595],\"mapped\",[1583]],[[126596,126596],\"mapped\",[1607]],[[126597,126597],\"mapped\",[1608]],[[126598,126598],\"mapped\",[1586]],[[126599,126599],\"mapped\",[1581]],[[126600,126600],\"mapped\",[1591]],[[126601,126601],\"mapped\",[1610]],[[126602,126602],\"disallowed\"],[[126603,126603],\"mapped\",[1604]],[[126604,126604],\"mapped\",[1605]],[[126605,126605],\"mapped\",[1606]],[[126606,126606],\"mapped\",[1587]],[[126607,126607],\"mapped\",[1593]],[[126608,126608],\"mapped\",[1601]],[[126609,126609],\"mapped\",[1589]],[[126610,126610],\"mapped\",[1602]],[[126611,126611],\"mapped\",[1585]],[[126612,126612],\"mapped\",[1588]],[[126613,126613],\"mapped\",[1578]],[[126614,126614],\"mapped\",[1579]],[[126615,126615],\"mapped\",[1582]],[[126616,126616],\"mapped\",[1584]],[[126617,126617],\"mapped\",[1590]],[[126618,126618],\"mapped\",[1592]],[[126619,126619],\"mapped\",[1594]],[[126620,126624],\"disallowed\"],[[126625,126625],\"mapped\",[1576]],[[126626,126626],\"mapped\",[1580]],[[126627,126627],\"mapped\",[1583]],[[126628,126628],\"disallowed\"],[[126629,126629],\"mapped\",[1608]],[[126630,126630],\"mapped\",[1586]],[[126631,126631],\"mapped\",[1581]],[[126632,126632],\"mapped\",[1591]],[[126633,126633],\"mapped\",[1610]],[[126634,126634],\"disallowed\"],[[126635,126635],\"mapped\",[1604]],[[126636,126636],\"mapped\",[1605]],[[126637,126637],\"mapped\",[1606]],[[126638,126638],\"mapped\",[1587]],[[126639,126639],\"mapped\",[1593]],[[126640,126640],\"mapped\",[1601]],[[126641,126641],\"mapped\",[1589]],[[126642,126642],\"mapped\",[1602]],[[126643,126643],\"mapped\",[1585]],[[126644,126644],\"mapped\",[1588]],[[126645,126645],\"mapped\",[1578]],[[126646,126646],\"mapped\",[1579]],[[126647,126647],\"mapped\",[1582]],[[126648,126648],\"mapped\",[1584]],[[126649,126649],\"mapped\",[1590]],[[126650,126650],\"mapped\",[1592]],[[126651,126651],\"mapped\",[1594]],[[126652,126703],\"disallowed\"],[[126704,126705],\"valid\",[],\"NV8\"],[[126706,126975],\"disallowed\"],[[126976,127019],\"valid\",[],\"NV8\"],[[127020,127023],\"disallowed\"],[[127024,127123],\"valid\",[],\"NV8\"],[[127124,127135],\"disallowed\"],[[127136,127150],\"valid\",[],\"NV8\"],[[127151,127152],\"disallowed\"],[[127153,127166],\"valid\",[],\"NV8\"],[[127167,127167],\"valid\",[],\"NV8\"],[[127168,127168],\"disallowed\"],[[127169,127183],\"valid\",[],\"NV8\"],[[127184,127184],\"disallowed\"],[[127185,127199],\"valid\",[],\"NV8\"],[[127200,127221],\"valid\",[],\"NV8\"],[[127222,127231],\"disallowed\"],[[127232,127232],\"disallowed\"],[[127233,127233],\"disallowed_STD3_mapped\",[48,44]],[[127234,127234],\"disallowed_STD3_mapped\",[49,44]],[[127235,127235],\"disallowed_STD3_mapped\",[50,44]],[[127236,127236],\"disallowed_STD3_mapped\",[51,44]],[[127237,127237],\"disallowed_STD3_mapped\",[52,44]],[[127238,127238],\"disallowed_STD3_mapped\",[53,44]],[[127239,127239],\"disallowed_STD3_mapped\",[54,44]],[[127240,127240],\"disallowed_STD3_mapped\",[55,44]],[[127241,127241],\"disallowed_STD3_mapped\",[56,44]],[[127242,127242],\"disallowed_STD3_mapped\",[57,44]],[[127243,127244],\"valid\",[],\"NV8\"],[[127245,127247],\"disallowed\"],[[127248,127248],\"disallowed_STD3_mapped\",[40,97,41]],[[127249,127249],\"disallowed_STD3_mapped\",[40,98,41]],[[127250,127250],\"disallowed_STD3_mapped\",[40,99,41]],[[127251,127251],\"disallowed_STD3_mapped\",[40,100,41]],[[127252,127252],\"disallowed_STD3_mapped\",[40,101,41]],[[127253,127253],\"disallowed_STD3_mapped\",[40,102,41]],[[127254,127254],\"disallowed_STD3_mapped\",[40,103,41]],[[127255,127255],\"disallowed_STD3_mapped\",[40,104,41]],[[127256,127256],\"disallowed_STD3_mapped\",[40,105,41]],[[127257,127257],\"disallowed_STD3_mapped\",[40,106,41]],[[127258,127258],\"disallowed_STD3_mapped\",[40,107,41]],[[127259,127259],\"disallowed_STD3_mapped\",[40,108,41]],[[127260,127260],\"disallowed_STD3_mapped\",[40,109,41]],[[127261,127261],\"disallowed_STD3_mapped\",[40,110,41]],[[127262,127262],\"disallowed_STD3_mapped\",[40,111,41]],[[127263,127263],\"disallowed_STD3_mapped\",[40,112,41]],[[127264,127264],\"disallowed_STD3_mapped\",[40,113,41]],[[127265,127265],\"disallowed_STD3_mapped\",[40,114,41]],[[127266,127266],\"disallowed_STD3_mapped\",[40,115,41]],[[127267,127267],\"disallowed_STD3_mapped\",[40,116,41]],[[127268,127268],\"disallowed_STD3_mapped\",[40,117,41]],[[127269,127269],\"disallowed_STD3_mapped\",[40,118,41]],[[127270,127270],\"disallowed_STD3_mapped\",[40,119,41]],[[127271,127271],\"disallowed_STD3_mapped\",[40,120,41]],[[127272,127272],\"disallowed_STD3_mapped\",[40,121,41]],[[127273,127273],\"disallowed_STD3_mapped\",[40,122,41]],[[127274,127274],\"mapped\",[12308,115,12309]],[[127275,127275],\"mapped\",[99]],[[127276,127276],\"mapped\",[114]],[[127277,127277],\"mapped\",[99,100]],[[127278,127278],\"mapped\",[119,122]],[[127279,127279],\"disallowed\"],[[127280,127280],\"mapped\",[97]],[[127281,127281],\"mapped\",[98]],[[127282,127282],\"mapped\",[99]],[[127283,127283],\"mapped\",[100]],[[127284,127284],\"mapped\",[101]],[[127285,127285],\"mapped\",[102]],[[127286,127286],\"mapped\",[103]],[[127287,127287],\"mapped\",[104]],[[127288,127288],\"mapped\",[105]],[[127289,127289],\"mapped\",[106]],[[127290,127290],\"mapped\",[107]],[[127291,127291],\"mapped\",[108]],[[127292,127292],\"mapped\",[109]],[[127293,127293],\"mapped\",[110]],[[127294,127294],\"mapped\",[111]],[[127295,127295],\"mapped\",[112]],[[127296,127296],\"mapped\",[113]],[[127297,127297],\"mapped\",[114]],[[127298,127298],\"mapped\",[115]],[[127299,127299],\"mapped\",[116]],[[127300,127300],\"mapped\",[117]],[[127301,127301],\"mapped\",[118]],[[127302,127302],\"mapped\",[119]],[[127303,127303],\"mapped\",[120]],[[127304,127304],\"mapped\",[121]],[[127305,127305],\"mapped\",[122]],[[127306,127306],\"mapped\",[104,118]],[[127307,127307],\"mapped\",[109,118]],[[127308,127308],\"mapped\",[115,100]],[[127309,127309],\"mapped\",[115,115]],[[127310,127310],\"mapped\",[112,112,118]],[[127311,127311],\"mapped\",[119,99]],[[127312,127318],\"valid\",[],\"NV8\"],[[127319,127319],\"valid\",[],\"NV8\"],[[127320,127326],\"valid\",[],\"NV8\"],[[127327,127327],\"valid\",[],\"NV8\"],[[127328,127337],\"valid\",[],\"NV8\"],[[127338,127338],\"mapped\",[109,99]],[[127339,127339],\"mapped\",[109,100]],[[127340,127343],\"disallowed\"],[[127344,127352],\"valid\",[],\"NV8\"],[[127353,127353],\"valid\",[],\"NV8\"],[[127354,127354],\"valid\",[],\"NV8\"],[[127355,127356],\"valid\",[],\"NV8\"],[[127357,127358],\"valid\",[],\"NV8\"],[[127359,127359],\"valid\",[],\"NV8\"],[[127360,127369],\"valid\",[],\"NV8\"],[[127370,127373],\"valid\",[],\"NV8\"],[[127374,127375],\"valid\",[],\"NV8\"],[[127376,127376],\"mapped\",[100,106]],[[127377,127386],\"valid\",[],\"NV8\"],[[127387,127461],\"disallowed\"],[[127462,127487],\"valid\",[],\"NV8\"],[[127488,127488],\"mapped\",[12411,12363]],[[127489,127489],\"mapped\",[12467,12467]],[[127490,127490],\"mapped\",[12469]],[[127491,127503],\"disallowed\"],[[127504,127504],\"mapped\",[25163]],[[127505,127505],\"mapped\",[23383]],[[127506,127506],\"mapped\",[21452]],[[127507,127507],\"mapped\",[12487]],[[127508,127508],\"mapped\",[20108]],[[127509,127509],\"mapped\",[22810]],[[127510,127510],\"mapped\",[35299]],[[127511,127511],\"mapped\",[22825]],[[127512,127512],\"mapped\",[20132]],[[127513,127513],\"mapped\",[26144]],[[127514,127514],\"mapped\",[28961]],[[127515,127515],\"mapped\",[26009]],[[127516,127516],\"mapped\",[21069]],[[127517,127517],\"mapped\",[24460]],[[127518,127518],\"mapped\",[20877]],[[127519,127519],\"mapped\",[26032]],[[127520,127520],\"mapped\",[21021]],[[127521,127521],\"mapped\",[32066]],[[127522,127522],\"mapped\",[29983]],[[127523,127523],\"mapped\",[36009]],[[127524,127524],\"mapped\",[22768]],[[127525,127525],\"mapped\",[21561]],[[127526,127526],\"mapped\",[28436]],[[127527,127527],\"mapped\",[25237]],[[127528,127528],\"mapped\",[25429]],[[127529,127529],\"mapped\",[19968]],[[127530,127530],\"mapped\",[19977]],[[127531,127531],\"mapped\",[36938]],[[127532,127532],\"mapped\",[24038]],[[127533,127533],\"mapped\",[20013]],[[127534,127534],\"mapped\",[21491]],[[127535,127535],\"mapped\",[25351]],[[127536,127536],\"mapped\",[36208]],[[127537,127537],\"mapped\",[25171]],[[127538,127538],\"mapped\",[31105]],[[127539,127539],\"mapped\",[31354]],[[127540,127540],\"mapped\",[21512]],[[127541,127541],\"mapped\",[28288]],[[127542,127542],\"mapped\",[26377]],[[127543,127543],\"mapped\",[26376]],[[127544,127544],\"mapped\",[30003]],[[127545,127545],\"mapped\",[21106]],[[127546,127546],\"mapped\",[21942]],[[127547,127551],\"disallowed\"],[[127552,127552],\"mapped\",[12308,26412,12309]],[[127553,127553],\"mapped\",[12308,19977,12309]],[[127554,127554],\"mapped\",[12308,20108,12309]],[[127555,127555],\"mapped\",[12308,23433,12309]],[[127556,127556],\"mapped\",[12308,28857,12309]],[[127557,127557],\"mapped\",[12308,25171,12309]],[[127558,127558],\"mapped\",[12308,30423,12309]],[[127559,127559],\"mapped\",[12308,21213,12309]],[[127560,127560],\"mapped\",[12308,25943,12309]],[[127561,127567],\"disallowed\"],[[127568,127568],\"mapped\",[24471]],[[127569,127569],\"mapped\",[21487]],[[127570,127743],\"disallowed\"],[[127744,127776],\"valid\",[],\"NV8\"],[[127777,127788],\"valid\",[],\"NV8\"],[[127789,127791],\"valid\",[],\"NV8\"],[[127792,127797],\"valid\",[],\"NV8\"],[[127798,127798],\"valid\",[],\"NV8\"],[[127799,127868],\"valid\",[],\"NV8\"],[[127869,127869],\"valid\",[],\"NV8\"],[[127870,127871],\"valid\",[],\"NV8\"],[[127872,127891],\"valid\",[],\"NV8\"],[[127892,127903],\"valid\",[],\"NV8\"],[[127904,127940],\"valid\",[],\"NV8\"],[[127941,127941],\"valid\",[],\"NV8\"],[[127942,127946],\"valid\",[],\"NV8\"],[[127947,127950],\"valid\",[],\"NV8\"],[[127951,127955],\"valid\",[],\"NV8\"],[[127956,127967],\"valid\",[],\"NV8\"],[[127968,127984],\"valid\",[],\"NV8\"],[[127985,127991],\"valid\",[],\"NV8\"],[[127992,127999],\"valid\",[],\"NV8\"],[[128000,128062],\"valid\",[],\"NV8\"],[[128063,128063],\"valid\",[],\"NV8\"],[[128064,128064],\"valid\",[],\"NV8\"],[[128065,128065],\"valid\",[],\"NV8\"],[[128066,128247],\"valid\",[],\"NV8\"],[[128248,128248],\"valid\",[],\"NV8\"],[[128249,128252],\"valid\",[],\"NV8\"],[[128253,128254],\"valid\",[],\"NV8\"],[[128255,128255],\"valid\",[],\"NV8\"],[[128256,128317],\"valid\",[],\"NV8\"],[[128318,128319],\"valid\",[],\"NV8\"],[[128320,128323],\"valid\",[],\"NV8\"],[[128324,128330],\"valid\",[],\"NV8\"],[[128331,128335],\"valid\",[],\"NV8\"],[[128336,128359],\"valid\",[],\"NV8\"],[[128360,128377],\"valid\",[],\"NV8\"],[[128378,128378],\"disallowed\"],[[128379,128419],\"valid\",[],\"NV8\"],[[128420,128420],\"disallowed\"],[[128421,128506],\"valid\",[],\"NV8\"],[[128507,128511],\"valid\",[],\"NV8\"],[[128512,128512],\"valid\",[],\"NV8\"],[[128513,128528],\"valid\",[],\"NV8\"],[[128529,128529],\"valid\",[],\"NV8\"],[[128530,128532],\"valid\",[],\"NV8\"],[[128533,128533],\"valid\",[],\"NV8\"],[[128534,128534],\"valid\",[],\"NV8\"],[[128535,128535],\"valid\",[],\"NV8\"],[[128536,128536],\"valid\",[],\"NV8\"],[[128537,128537],\"valid\",[],\"NV8\"],[[128538,128538],\"valid\",[],\"NV8\"],[[128539,128539],\"valid\",[],\"NV8\"],[[128540,128542],\"valid\",[],\"NV8\"],[[128543,128543],\"valid\",[],\"NV8\"],[[128544,128549],\"valid\",[],\"NV8\"],[[128550,128551],\"valid\",[],\"NV8\"],[[128552,128555],\"valid\",[],\"NV8\"],[[128556,128556],\"valid\",[],\"NV8\"],[[128557,128557],\"valid\",[],\"NV8\"],[[128558,128559],\"valid\",[],\"NV8\"],[[128560,128563],\"valid\",[],\"NV8\"],[[128564,128564],\"valid\",[],\"NV8\"],[[128565,128576],\"valid\",[],\"NV8\"],[[128577,128578],\"valid\",[],\"NV8\"],[[128579,128580],\"valid\",[],\"NV8\"],[[128581,128591],\"valid\",[],\"NV8\"],[[128592,128639],\"valid\",[],\"NV8\"],[[128640,128709],\"valid\",[],\"NV8\"],[[128710,128719],\"valid\",[],\"NV8\"],[[128720,128720],\"valid\",[],\"NV8\"],[[128721,128735],\"disallowed\"],[[128736,128748],\"valid\",[],\"NV8\"],[[128749,128751],\"disallowed\"],[[128752,128755],\"valid\",[],\"NV8\"],[[128756,128767],\"disallowed\"],[[128768,128883],\"valid\",[],\"NV8\"],[[128884,128895],\"disallowed\"],[[128896,128980],\"valid\",[],\"NV8\"],[[128981,129023],\"disallowed\"],[[129024,129035],\"valid\",[],\"NV8\"],[[129036,129039],\"disallowed\"],[[129040,129095],\"valid\",[],\"NV8\"],[[129096,129103],\"disallowed\"],[[129104,129113],\"valid\",[],\"NV8\"],[[129114,129119],\"disallowed\"],[[129120,129159],\"valid\",[],\"NV8\"],[[129160,129167],\"disallowed\"],[[129168,129197],\"valid\",[],\"NV8\"],[[129198,129295],\"disallowed\"],[[129296,129304],\"valid\",[],\"NV8\"],[[129305,129407],\"disallowed\"],[[129408,129412],\"valid\",[],\"NV8\"],[[129413,129471],\"disallowed\"],[[129472,129472],\"valid\",[],\"NV8\"],[[129473,131069],\"disallowed\"],[[131070,131071],\"disallowed\"],[[131072,173782],\"valid\"],[[173783,173823],\"disallowed\"],[[173824,177972],\"valid\"],[[177973,177983],\"disallowed\"],[[177984,178205],\"valid\"],[[178206,178207],\"disallowed\"],[[178208,183969],\"valid\"],[[183970,194559],\"disallowed\"],[[194560,194560],\"mapped\",[20029]],[[194561,194561],\"mapped\",[20024]],[[194562,194562],\"mapped\",[20033]],[[194563,194563],\"mapped\",[131362]],[[194564,194564],\"mapped\",[20320]],[[194565,194565],\"mapped\",[20398]],[[194566,194566],\"mapped\",[20411]],[[194567,194567],\"mapped\",[20482]],[[194568,194568],\"mapped\",[20602]],[[194569,194569],\"mapped\",[20633]],[[194570,194570],\"mapped\",[20711]],[[194571,194571],\"mapped\",[20687]],[[194572,194572],\"mapped\",[13470]],[[194573,194573],\"mapped\",[132666]],[[194574,194574],\"mapped\",[20813]],[[194575,194575],\"mapped\",[20820]],[[194576,194576],\"mapped\",[20836]],[[194577,194577],\"mapped\",[20855]],[[194578,194578],\"mapped\",[132380]],[[194579,194579],\"mapped\",[13497]],[[194580,194580],\"mapped\",[20839]],[[194581,194581],\"mapped\",[20877]],[[194582,194582],\"mapped\",[132427]],[[194583,194583],\"mapped\",[20887]],[[194584,194584],\"mapped\",[20900]],[[194585,194585],\"mapped\",[20172]],[[194586,194586],\"mapped\",[20908]],[[194587,194587],\"mapped\",[20917]],[[194588,194588],\"mapped\",[168415]],[[194589,194589],\"mapped\",[20981]],[[194590,194590],\"mapped\",[20995]],[[194591,194591],\"mapped\",[13535]],[[194592,194592],\"mapped\",[21051]],[[194593,194593],\"mapped\",[21062]],[[194594,194594],\"mapped\",[21106]],[[194595,194595],\"mapped\",[21111]],[[194596,194596],\"mapped\",[13589]],[[194597,194597],\"mapped\",[21191]],[[194598,194598],\"mapped\",[21193]],[[194599,194599],\"mapped\",[21220]],[[194600,194600],\"mapped\",[21242]],[[194601,194601],\"mapped\",[21253]],[[194602,194602],\"mapped\",[21254]],[[194603,194603],\"mapped\",[21271]],[[194604,194604],\"mapped\",[21321]],[[194605,194605],\"mapped\",[21329]],[[194606,194606],\"mapped\",[21338]],[[194607,194607],\"mapped\",[21363]],[[194608,194608],\"mapped\",[21373]],[[194609,194611],\"mapped\",[21375]],[[194612,194612],\"mapped\",[133676]],[[194613,194613],\"mapped\",[28784]],[[194614,194614],\"mapped\",[21450]],[[194615,194615],\"mapped\",[21471]],[[194616,194616],\"mapped\",[133987]],[[194617,194617],\"mapped\",[21483]],[[194618,194618],\"mapped\",[21489]],[[194619,194619],\"mapped\",[21510]],[[194620,194620],\"mapped\",[21662]],[[194621,194621],\"mapped\",[21560]],[[194622,194622],\"mapped\",[21576]],[[194623,194623],\"mapped\",[21608]],[[194624,194624],\"mapped\",[21666]],[[194625,194625],\"mapped\",[21750]],[[194626,194626],\"mapped\",[21776]],[[194627,194627],\"mapped\",[21843]],[[194628,194628],\"mapped\",[21859]],[[194629,194630],\"mapped\",[21892]],[[194631,194631],\"mapped\",[21913]],[[194632,194632],\"mapped\",[21931]],[[194633,194633],\"mapped\",[21939]],[[194634,194634],\"mapped\",[21954]],[[194635,194635],\"mapped\",[22294]],[[194636,194636],\"mapped\",[22022]],[[194637,194637],\"mapped\",[22295]],[[194638,194638],\"mapped\",[22097]],[[194639,194639],\"mapped\",[22132]],[[194640,194640],\"mapped\",[20999]],[[194641,194641],\"mapped\",[22766]],[[194642,194642],\"mapped\",[22478]],[[194643,194643],\"mapped\",[22516]],[[194644,194644],\"mapped\",[22541]],[[194645,194645],\"mapped\",[22411]],[[194646,194646],\"mapped\",[22578]],[[194647,194647],\"mapped\",[22577]],[[194648,194648],\"mapped\",[22700]],[[194649,194649],\"mapped\",[136420]],[[194650,194650],\"mapped\",[22770]],[[194651,194651],\"mapped\",[22775]],[[194652,194652],\"mapped\",[22790]],[[194653,194653],\"mapped\",[22810]],[[194654,194654],\"mapped\",[22818]],[[194655,194655],\"mapped\",[22882]],[[194656,194656],\"mapped\",[136872]],[[194657,194657],\"mapped\",[136938]],[[194658,194658],\"mapped\",[23020]],[[194659,194659],\"mapped\",[23067]],[[194660,194660],\"mapped\",[23079]],[[194661,194661],\"mapped\",[23000]],[[194662,194662],\"mapped\",[23142]],[[194663,194663],\"mapped\",[14062]],[[194664,194664],\"disallowed\"],[[194665,194665],\"mapped\",[23304]],[[194666,194667],\"mapped\",[23358]],[[194668,194668],\"mapped\",[137672]],[[194669,194669],\"mapped\",[23491]],[[194670,194670],\"mapped\",[23512]],[[194671,194671],\"mapped\",[23527]],[[194672,194672],\"mapped\",[23539]],[[194673,194673],\"mapped\",[138008]],[[194674,194674],\"mapped\",[23551]],[[194675,194675],\"mapped\",[23558]],[[194676,194676],\"disallowed\"],[[194677,194677],\"mapped\",[23586]],[[194678,194678],\"mapped\",[14209]],[[194679,194679],\"mapped\",[23648]],[[194680,194680],\"mapped\",[23662]],[[194681,194681],\"mapped\",[23744]],[[194682,194682],\"mapped\",[23693]],[[194683,194683],\"mapped\",[138724]],[[194684,194684],\"mapped\",[23875]],[[194685,194685],\"mapped\",[138726]],[[194686,194686],\"mapped\",[23918]],[[194687,194687],\"mapped\",[23915]],[[194688,194688],\"mapped\",[23932]],[[194689,194689],\"mapped\",[24033]],[[194690,194690],\"mapped\",[24034]],[[194691,194691],\"mapped\",[14383]],[[194692,194692],\"mapped\",[24061]],[[194693,194693],\"mapped\",[24104]],[[194694,194694],\"mapped\",[24125]],[[194695,194695],\"mapped\",[24169]],[[194696,194696],\"mapped\",[14434]],[[194697,194697],\"mapped\",[139651]],[[194698,194698],\"mapped\",[14460]],[[194699,194699],\"mapped\",[24240]],[[194700,194700],\"mapped\",[24243]],[[194701,194701],\"mapped\",[24246]],[[194702,194702],\"mapped\",[24266]],[[194703,194703],\"mapped\",[172946]],[[194704,194704],\"mapped\",[24318]],[[194705,194706],\"mapped\",[140081]],[[194707,194707],\"mapped\",[33281]],[[194708,194709],\"mapped\",[24354]],[[194710,194710],\"mapped\",[14535]],[[194711,194711],\"mapped\",[144056]],[[194712,194712],\"mapped\",[156122]],[[194713,194713],\"mapped\",[24418]],[[194714,194714],\"mapped\",[24427]],[[194715,194715],\"mapped\",[14563]],[[194716,194716],\"mapped\",[24474]],[[194717,194717],\"mapped\",[24525]],[[194718,194718],\"mapped\",[24535]],[[194719,194719],\"mapped\",[24569]],[[194720,194720],\"mapped\",[24705]],[[194721,194721],\"mapped\",[14650]],[[194722,194722],\"mapped\",[14620]],[[194723,194723],\"mapped\",[24724]],[[194724,194724],\"mapped\",[141012]],[[194725,194725],\"mapped\",[24775]],[[194726,194726],\"mapped\",[24904]],[[194727,194727],\"mapped\",[24908]],[[194728,194728],\"mapped\",[24910]],[[194729,194729],\"mapped\",[24908]],[[194730,194730],\"mapped\",[24954]],[[194731,194731],\"mapped\",[24974]],[[194732,194732],\"mapped\",[25010]],[[194733,194733],\"mapped\",[24996]],[[194734,194734],\"mapped\",[25007]],[[194735,194735],\"mapped\",[25054]],[[194736,194736],\"mapped\",[25074]],[[194737,194737],\"mapped\",[25078]],[[194738,194738],\"mapped\",[25104]],[[194739,194739],\"mapped\",[25115]],[[194740,194740],\"mapped\",[25181]],[[194741,194741],\"mapped\",[25265]],[[194742,194742],\"mapped\",[25300]],[[194743,194743],\"mapped\",[25424]],[[194744,194744],\"mapped\",[142092]],[[194745,194745],\"mapped\",[25405]],[[194746,194746],\"mapped\",[25340]],[[194747,194747],\"mapped\",[25448]],[[194748,194748],\"mapped\",[25475]],[[194749,194749],\"mapped\",[25572]],[[194750,194750],\"mapped\",[142321]],[[194751,194751],\"mapped\",[25634]],[[194752,194752],\"mapped\",[25541]],[[194753,194753],\"mapped\",[25513]],[[194754,194754],\"mapped\",[14894]],[[194755,194755],\"mapped\",[25705]],[[194756,194756],\"mapped\",[25726]],[[194757,194757],\"mapped\",[25757]],[[194758,194758],\"mapped\",[25719]],[[194759,194759],\"mapped\",[14956]],[[194760,194760],\"mapped\",[25935]],[[194761,194761],\"mapped\",[25964]],[[194762,194762],\"mapped\",[143370]],[[194763,194763],\"mapped\",[26083]],[[194764,194764],\"mapped\",[26360]],[[194765,194765],\"mapped\",[26185]],[[194766,194766],\"mapped\",[15129]],[[194767,194767],\"mapped\",[26257]],[[194768,194768],\"mapped\",[15112]],[[194769,194769],\"mapped\",[15076]],[[194770,194770],\"mapped\",[20882]],[[194771,194771],\"mapped\",[20885]],[[194772,194772],\"mapped\",[26368]],[[194773,194773],\"mapped\",[26268]],[[194774,194774],\"mapped\",[32941]],[[194775,194775],\"mapped\",[17369]],[[194776,194776],\"mapped\",[26391]],[[194777,194777],\"mapped\",[26395]],[[194778,194778],\"mapped\",[26401]],[[194779,194779],\"mapped\",[26462]],[[194780,194780],\"mapped\",[26451]],[[194781,194781],\"mapped\",[144323]],[[194782,194782],\"mapped\",[15177]],[[194783,194783],\"mapped\",[26618]],[[194784,194784],\"mapped\",[26501]],[[194785,194785],\"mapped\",[26706]],[[194786,194786],\"mapped\",[26757]],[[194787,194787],\"mapped\",[144493]],[[194788,194788],\"mapped\",[26766]],[[194789,194789],\"mapped\",[26655]],[[194790,194790],\"mapped\",[26900]],[[194791,194791],\"mapped\",[15261]],[[194792,194792],\"mapped\",[26946]],[[194793,194793],\"mapped\",[27043]],[[194794,194794],\"mapped\",[27114]],[[194795,194795],\"mapped\",[27304]],[[194796,194796],\"mapped\",[145059]],[[194797,194797],\"mapped\",[27355]],[[194798,194798],\"mapped\",[15384]],[[194799,194799],\"mapped\",[27425]],[[194800,194800],\"mapped\",[145575]],[[194801,194801],\"mapped\",[27476]],[[194802,194802],\"mapped\",[15438]],[[194803,194803],\"mapped\",[27506]],[[194804,194804],\"mapped\",[27551]],[[194805,194805],\"mapped\",[27578]],[[194806,194806],\"mapped\",[27579]],[[194807,194807],\"mapped\",[146061]],[[194808,194808],\"mapped\",[138507]],[[194809,194809],\"mapped\",[146170]],[[194810,194810],\"mapped\",[27726]],[[194811,194811],\"mapped\",[146620]],[[194812,194812],\"mapped\",[27839]],[[194813,194813],\"mapped\",[27853]],[[194814,194814],\"mapped\",[27751]],[[194815,194815],\"mapped\",[27926]],[[194816,194816],\"mapped\",[27966]],[[194817,194817],\"mapped\",[28023]],[[194818,194818],\"mapped\",[27969]],[[194819,194819],\"mapped\",[28009]],[[194820,194820],\"mapped\",[28024]],[[194821,194821],\"mapped\",[28037]],[[194822,194822],\"mapped\",[146718]],[[194823,194823],\"mapped\",[27956]],[[194824,194824],\"mapped\",[28207]],[[194825,194825],\"mapped\",[28270]],[[194826,194826],\"mapped\",[15667]],[[194827,194827],\"mapped\",[28363]],[[194828,194828],\"mapped\",[28359]],[[194829,194829],\"mapped\",[147153]],[[194830,194830],\"mapped\",[28153]],[[194831,194831],\"mapped\",[28526]],[[194832,194832],\"mapped\",[147294]],[[194833,194833],\"mapped\",[147342]],[[194834,194834],\"mapped\",[28614]],[[194835,194835],\"mapped\",[28729]],[[194836,194836],\"mapped\",[28702]],[[194837,194837],\"mapped\",[28699]],[[194838,194838],\"mapped\",[15766]],[[194839,194839],\"mapped\",[28746]],[[194840,194840],\"mapped\",[28797]],[[194841,194841],\"mapped\",[28791]],[[194842,194842],\"mapped\",[28845]],[[194843,194843],\"mapped\",[132389]],[[194844,194844],\"mapped\",[28997]],[[194845,194845],\"mapped\",[148067]],[[194846,194846],\"mapped\",[29084]],[[194847,194847],\"disallowed\"],[[194848,194848],\"mapped\",[29224]],[[194849,194849],\"mapped\",[29237]],[[194850,194850],\"mapped\",[29264]],[[194851,194851],\"mapped\",[149000]],[[194852,194852],\"mapped\",[29312]],[[194853,194853],\"mapped\",[29333]],[[194854,194854],\"mapped\",[149301]],[[194855,194855],\"mapped\",[149524]],[[194856,194856],\"mapped\",[29562]],[[194857,194857],\"mapped\",[29579]],[[194858,194858],\"mapped\",[16044]],[[194859,194859],\"mapped\",[29605]],[[194860,194861],\"mapped\",[16056]],[[194862,194862],\"mapped\",[29767]],[[194863,194863],\"mapped\",[29788]],[[194864,194864],\"mapped\",[29809]],[[194865,194865],\"mapped\",[29829]],[[194866,194866],\"mapped\",[29898]],[[194867,194867],\"mapped\",[16155]],[[194868,194868],\"mapped\",[29988]],[[194869,194869],\"mapped\",[150582]],[[194870,194870],\"mapped\",[30014]],[[194871,194871],\"mapped\",[150674]],[[194872,194872],\"mapped\",[30064]],[[194873,194873],\"mapped\",[139679]],[[194874,194874],\"mapped\",[30224]],[[194875,194875],\"mapped\",[151457]],[[194876,194876],\"mapped\",[151480]],[[194877,194877],\"mapped\",[151620]],[[194878,194878],\"mapped\",[16380]],[[194879,194879],\"mapped\",[16392]],[[194880,194880],\"mapped\",[30452]],[[194881,194881],\"mapped\",[151795]],[[194882,194882],\"mapped\",[151794]],[[194883,194883],\"mapped\",[151833]],[[194884,194884],\"mapped\",[151859]],[[194885,194885],\"mapped\",[30494]],[[194886,194887],\"mapped\",[30495]],[[194888,194888],\"mapped\",[30538]],[[194889,194889],\"mapped\",[16441]],[[194890,194890],\"mapped\",[30603]],[[194891,194891],\"mapped\",[16454]],[[194892,194892],\"mapped\",[16534]],[[194893,194893],\"mapped\",[152605]],[[194894,194894],\"mapped\",[30798]],[[194895,194895],\"mapped\",[30860]],[[194896,194896],\"mapped\",[30924]],[[194897,194897],\"mapped\",[16611]],[[194898,194898],\"mapped\",[153126]],[[194899,194899],\"mapped\",[31062]],[[194900,194900],\"mapped\",[153242]],[[194901,194901],\"mapped\",[153285]],[[194902,194902],\"mapped\",[31119]],[[194903,194903],\"mapped\",[31211]],[[194904,194904],\"mapped\",[16687]],[[194905,194905],\"mapped\",[31296]],[[194906,194906],\"mapped\",[31306]],[[194907,194907],\"mapped\",[31311]],[[194908,194908],\"mapped\",[153980]],[[194909,194910],\"mapped\",[154279]],[[194911,194911],\"disallowed\"],[[194912,194912],\"mapped\",[16898]],[[194913,194913],\"mapped\",[154539]],[[194914,194914],\"mapped\",[31686]],[[194915,194915],\"mapped\",[31689]],[[194916,194916],\"mapped\",[16935]],[[194917,194917],\"mapped\",[154752]],[[194918,194918],\"mapped\",[31954]],[[194919,194919],\"mapped\",[17056]],[[194920,194920],\"mapped\",[31976]],[[194921,194921],\"mapped\",[31971]],[[194922,194922],\"mapped\",[32000]],[[194923,194923],\"mapped\",[155526]],[[194924,194924],\"mapped\",[32099]],[[194925,194925],\"mapped\",[17153]],[[194926,194926],\"mapped\",[32199]],[[194927,194927],\"mapped\",[32258]],[[194928,194928],\"mapped\",[32325]],[[194929,194929],\"mapped\",[17204]],[[194930,194930],\"mapped\",[156200]],[[194931,194931],\"mapped\",[156231]],[[194932,194932],\"mapped\",[17241]],[[194933,194933],\"mapped\",[156377]],[[194934,194934],\"mapped\",[32634]],[[194935,194935],\"mapped\",[156478]],[[194936,194936],\"mapped\",[32661]],[[194937,194937],\"mapped\",[32762]],[[194938,194938],\"mapped\",[32773]],[[194939,194939],\"mapped\",[156890]],[[194940,194940],\"mapped\",[156963]],[[194941,194941],\"mapped\",[32864]],[[194942,194942],\"mapped\",[157096]],[[194943,194943],\"mapped\",[32880]],[[194944,194944],\"mapped\",[144223]],[[194945,194945],\"mapped\",[17365]],[[194946,194946],\"mapped\",[32946]],[[194947,194947],\"mapped\",[33027]],[[194948,194948],\"mapped\",[17419]],[[194949,194949],\"mapped\",[33086]],[[194950,194950],\"mapped\",[23221]],[[194951,194951],\"mapped\",[157607]],[[194952,194952],\"mapped\",[157621]],[[194953,194953],\"mapped\",[144275]],[[194954,194954],\"mapped\",[144284]],[[194955,194955],\"mapped\",[33281]],[[194956,194956],\"mapped\",[33284]],[[194957,194957],\"mapped\",[36766]],[[194958,194958],\"mapped\",[17515]],[[194959,194959],\"mapped\",[33425]],[[194960,194960],\"mapped\",[33419]],[[194961,194961],\"mapped\",[33437]],[[194962,194962],\"mapped\",[21171]],[[194963,194963],\"mapped\",[33457]],[[194964,194964],\"mapped\",[33459]],[[194965,194965],\"mapped\",[33469]],[[194966,194966],\"mapped\",[33510]],[[194967,194967],\"mapped\",[158524]],[[194968,194968],\"mapped\",[33509]],[[194969,194969],\"mapped\",[33565]],[[194970,194970],\"mapped\",[33635]],[[194971,194971],\"mapped\",[33709]],[[194972,194972],\"mapped\",[33571]],[[194973,194973],\"mapped\",[33725]],[[194974,194974],\"mapped\",[33767]],[[194975,194975],\"mapped\",[33879]],[[194976,194976],\"mapped\",[33619]],[[194977,194977],\"mapped\",[33738]],[[194978,194978],\"mapped\",[33740]],[[194979,194979],\"mapped\",[33756]],[[194980,194980],\"mapped\",[158774]],[[194981,194981],\"mapped\",[159083]],[[194982,194982],\"mapped\",[158933]],[[194983,194983],\"mapped\",[17707]],[[194984,194984],\"mapped\",[34033]],[[194985,194985],\"mapped\",[34035]],[[194986,194986],\"mapped\",[34070]],[[194987,194987],\"mapped\",[160714]],[[194988,194988],\"mapped\",[34148]],[[194989,194989],\"mapped\",[159532]],[[194990,194990],\"mapped\",[17757]],[[194991,194991],\"mapped\",[17761]],[[194992,194992],\"mapped\",[159665]],[[194993,194993],\"mapped\",[159954]],[[194994,194994],\"mapped\",[17771]],[[194995,194995],\"mapped\",[34384]],[[194996,194996],\"mapped\",[34396]],[[194997,194997],\"mapped\",[34407]],[[194998,194998],\"mapped\",[34409]],[[194999,194999],\"mapped\",[34473]],[[195000,195000],\"mapped\",[34440]],[[195001,195001],\"mapped\",[34574]],[[195002,195002],\"mapped\",[34530]],[[195003,195003],\"mapped\",[34681]],[[195004,195004],\"mapped\",[34600]],[[195005,195005],\"mapped\",[34667]],[[195006,195006],\"mapped\",[34694]],[[195007,195007],\"disallowed\"],[[195008,195008],\"mapped\",[34785]],[[195009,195009],\"mapped\",[34817]],[[195010,195010],\"mapped\",[17913]],[[195011,195011],\"mapped\",[34912]],[[195012,195012],\"mapped\",[34915]],[[195013,195013],\"mapped\",[161383]],[[195014,195014],\"mapped\",[35031]],[[195015,195015],\"mapped\",[35038]],[[195016,195016],\"mapped\",[17973]],[[195017,195017],\"mapped\",[35066]],[[195018,195018],\"mapped\",[13499]],[[195019,195019],\"mapped\",[161966]],[[195020,195020],\"mapped\",[162150]],[[195021,195021],\"mapped\",[18110]],[[195022,195022],\"mapped\",[18119]],[[195023,195023],\"mapped\",[35488]],[[195024,195024],\"mapped\",[35565]],[[195025,195025],\"mapped\",[35722]],[[195026,195026],\"mapped\",[35925]],[[195027,195027],\"mapped\",[162984]],[[195028,195028],\"mapped\",[36011]],[[195029,195029],\"mapped\",[36033]],[[195030,195030],\"mapped\",[36123]],[[195031,195031],\"mapped\",[36215]],[[195032,195032],\"mapped\",[163631]],[[195033,195033],\"mapped\",[133124]],[[195034,195034],\"mapped\",[36299]],[[195035,195035],\"mapped\",[36284]],[[195036,195036],\"mapped\",[36336]],[[195037,195037],\"mapped\",[133342]],[[195038,195038],\"mapped\",[36564]],[[195039,195039],\"mapped\",[36664]],[[195040,195040],\"mapped\",[165330]],[[195041,195041],\"mapped\",[165357]],[[195042,195042],\"mapped\",[37012]],[[195043,195043],\"mapped\",[37105]],[[195044,195044],\"mapped\",[37137]],[[195045,195045],\"mapped\",[165678]],[[195046,195046],\"mapped\",[37147]],[[195047,195047],\"mapped\",[37432]],[[195048,195048],\"mapped\",[37591]],[[195049,195049],\"mapped\",[37592]],[[195050,195050],\"mapped\",[37500]],[[195051,195051],\"mapped\",[37881]],[[195052,195052],\"mapped\",[37909]],[[195053,195053],\"mapped\",[166906]],[[195054,195054],\"mapped\",[38283]],[[195055,195055],\"mapped\",[18837]],[[195056,195056],\"mapped\",[38327]],[[195057,195057],\"mapped\",[167287]],[[195058,195058],\"mapped\",[18918]],[[195059,195059],\"mapped\",[38595]],[[195060,195060],\"mapped\",[23986]],[[195061,195061],\"mapped\",[38691]],[[195062,195062],\"mapped\",[168261]],[[195063,195063],\"mapped\",[168474]],[[195064,195064],\"mapped\",[19054]],[[195065,195065],\"mapped\",[19062]],[[195066,195066],\"mapped\",[38880]],[[195067,195067],\"mapped\",[168970]],[[195068,195068],\"mapped\",[19122]],[[195069,195069],\"mapped\",[169110]],[[195070,195071],\"mapped\",[38923]],[[195072,195072],\"mapped\",[38953]],[[195073,195073],\"mapped\",[169398]],[[195074,195074],\"mapped\",[39138]],[[195075,195075],\"mapped\",[19251]],[[195076,195076],\"mapped\",[39209]],[[195077,195077],\"mapped\",[39335]],[[195078,195078],\"mapped\",[39362]],[[195079,195079],\"mapped\",[39422]],[[195080,195080],\"mapped\",[19406]],[[195081,195081],\"mapped\",[170800]],[[195082,195082],\"mapped\",[39698]],[[195083,195083],\"mapped\",[40000]],[[195084,195084],\"mapped\",[40189]],[[195085,195085],\"mapped\",[19662]],[[195086,195086],\"mapped\",[19693]],[[195087,195087],\"mapped\",[40295]],[[195088,195088],\"mapped\",[172238]],[[195089,195089],\"mapped\",[19704]],[[195090,195090],\"mapped\",[172293]],[[195091,195091],\"mapped\",[172558]],[[195092,195092],\"mapped\",[172689]],[[195093,195093],\"mapped\",[40635]],[[195094,195094],\"mapped\",[19798]],[[195095,195095],\"mapped\",[40697]],[[195096,195096],\"mapped\",[40702]],[[195097,195097],\"mapped\",[40709]],[[195098,195098],\"mapped\",[40719]],[[195099,195099],\"mapped\",[40726]],[[195100,195100],\"mapped\",[40763]],[[195101,195101],\"mapped\",[173568]],[[195102,196605],\"disallowed\"],[[196606,196607],\"disallowed\"],[[196608,262141],\"disallowed\"],[[262142,262143],\"disallowed\"],[[262144,327677],\"disallowed\"],[[327678,327679],\"disallowed\"],[[327680,393213],\"disallowed\"],[[393214,393215],\"disallowed\"],[[393216,458749],\"disallowed\"],[[458750,458751],\"disallowed\"],[[458752,524285],\"disallowed\"],[[524286,524287],\"disallowed\"],[[524288,589821],\"disallowed\"],[[589822,589823],\"disallowed\"],[[589824,655357],\"disallowed\"],[[655358,655359],\"disallowed\"],[[655360,720893],\"disallowed\"],[[720894,720895],\"disallowed\"],[[720896,786429],\"disallowed\"],[[786430,786431],\"disallowed\"],[[786432,851965],\"disallowed\"],[[851966,851967],\"disallowed\"],[[851968,917501],\"disallowed\"],[[917502,917503],\"disallowed\"],[[917504,917504],\"disallowed\"],[[917505,917505],\"disallowed\"],[[917506,917535],\"disallowed\"],[[917536,917631],\"disallowed\"],[[917632,917759],\"disallowed\"],[[917760,917999],\"ignored\"],[[918000,983037],\"disallowed\"],[[983038,983039],\"disallowed\"],[[983040,1048573],\"disallowed\"],[[1048574,1048575],\"disallowed\"],[[1048576,1114109],\"disallowed\"],[[1114110,1114111],\"disallowed\"]]", "\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n", "\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n", "\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n", "\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n", "\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = /<meta.+?charset=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// html4\n\tif (!res && str) {\n\t\tres = /<meta[\\s]+?http-equiv=(['\"])content-type\\1[\\s]+?content=(['\"])(.+?)\\2/i.exec(str);\n\t\tif (!res) {\n\t\t\tres = /<meta[\\s]+?content=(['\"])(.+?)\\1[\\s]+?http-equiv=(['\"])content-type\\3/i.exec(str);\n\t\t\tif (res) {\n\t\t\t\tres.pop(); // drop last quote\n\t\t\t}\n\t\t}\n\n\t\tif (res) {\n\t\t\tres = /charset=(.*)/i.exec(res.pop());\n\t\t}\n\t}\n\n\t// xml\n\tif (!res && str) {\n\t\tres = /<\\?xml.+?encoding=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// found charset\n\tif (res) {\n\t\tcharset = res.pop();\n\n\t\t// prevent decode issues when sites use incorrect encoding\n\t\t// ref: https://hsivonen.fi/encoding-menu/\n\t\tif (charset === 'gb2312' || charset === 'gbk') {\n\t\t\tcharset = 'gb18030';\n\t\t}\n\t}\n\n\t// turn raw buffers into a single utf-8 buffer\n\treturn convert(buffer, 'UTF-8', charset).toString();\n}\n\n/**\n * Detect a URLSearchParams object\n * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143\n *\n * @param Object obj Object to detect by type or brand\n * @return String\n */\nfunction isURLSearchParams(obj) {\n\t// Duck-typing as a necessary condition.\n\tif (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {\n\t\treturn false;\n\t}\n\n\t// Brand-checking and more duck-typing as optional condition.\n\treturn obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';\n}\n\n/**\n * Check if `obj` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} obj\n * @return {boolean}\n */\nfunction isBlob(obj) {\n\treturn typeof obj === 'object' && typeof obj.arrayBuffer === 'function' && typeof obj.type === 'string' && typeof obj.stream === 'function' && typeof obj.constructor === 'function' && typeof obj.constructor.name === 'string' && /^(Blob|File)$/.test(obj.constructor.name) && /^(Blob|File)$/.test(obj[Symbol.toStringTag]);\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @return Mixed\n */\nfunction clone(instance) {\n\tlet p1, p2;\n\tlet body = instance.body;\n\n\t// don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif (body instanceof Stream && typeof body.getBoundary !== 'function') {\n\t\t// tee instance body\n\t\tp1 = new PassThrough();\n\t\tp2 = new PassThrough();\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].body = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n}\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param Mixed instance Any options.body input\n */\nfunction extractContentType(body) {\n\tif (body === null) {\n\t\t// body is null\n\t\treturn null;\n\t} else if (typeof body === 'string') {\n\t\t// body is string\n\t\treturn 'text/plain;charset=UTF-8';\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t} else if (isBlob(body)) {\n\t\t// body is blob\n\t\treturn body.type || null;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn null;\n\t} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\treturn null;\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\treturn null;\n\t} else if (typeof body.getBoundary === 'function') {\n\t\t// detect form data input from form-data module\n\t\treturn `multipart/form-data;boundary=${body.getBoundary()}`;\n\t} else if (body instanceof Stream) {\n\t\t// body is stream\n\t\t// can't really do much about this\n\t\treturn null;\n\t} else {\n\t\t// Body constructor defaults other things to string\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n}\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param Body instance Instance of Body\n * @return Number? Number of bytes, or null if not possible\n */\nfunction getTotalBytes(instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\treturn 0;\n\t} else if (isBlob(body)) {\n\t\treturn body.size;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn body.length;\n\t} else if (body && typeof body.getLengthSync === 'function') {\n\t\t// detect form data input from form-data module\n\t\tif (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x\n\t\tbody.hasKnownLength && body.hasKnownLength()) {\n\t\t\t// 2.x\n\t\t\treturn body.getLengthSync();\n\t\t}\n\t\treturn null;\n\t} else {\n\t\t// body is stream\n\t\treturn null;\n\t}\n}\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param Body instance Instance of Body\n * @return Void\n */\nfunction writeToStream(dest, instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\tdest.end();\n\t} else if (isBlob(body)) {\n\t\tbody.stream().pipe(dest);\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\tdest.write(body);\n\t\tdest.end();\n\t} else {\n\t\t// body is stream\n\t\tbody.pipe(dest);\n\t}\n}\n\n// expose Promise\nBody.Promise = global.Promise;\n\n/**\n * headers.js\n *\n * Headers class offers convenient helpers\n */\n\nconst invalidTokenRegex = /[^\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]/;\nconst invalidHeaderCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/;\n\nfunction validateName(name) {\n\tname = `${name}`;\n\tif (invalidTokenRegex.test(name) || name === '') {\n\t\tthrow new TypeError(`${name} is not a legal HTTP header name`);\n\t}\n}\n\nfunction validateValue(value) {\n\tvalue = `${value}`;\n\tif (invalidHeaderCharRegex.test(value)) {\n\t\tthrow new TypeError(`${value} is not a legal HTTP header value`);\n\t}\n}\n\n/**\n * Find the key in the map object given a header name.\n *\n * Returns undefined if not found.\n *\n * @param String name Header name\n * @return String|Undefined\n */\nfunction find(map, name) {\n\tname = name.toLowerCase();\n\tfor (const key in map) {\n\t\tif (key.toLowerCase() === name) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst MAP = Symbol('map');\nclass Headers {\n\t/**\n * Headers class\n *\n * @param Object headers Response headers\n * @return Void\n */\n\tconstructor() {\n\t\tlet init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence<sequence<ByteString>>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record<ByteString, ByteString>\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nconst isSameProtocol = function isSameProtocol(destination, original) {\n\tconst orig = new URL$1(original).protocol;\n\tconst dest = new URL$1(destination).protocol;\n\n\treturn orig === dest;\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\tdestroyStream(request.body, error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(req, function (err) {\n\t\t\tif (signal && signal.aborted) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (parseInt(process.version.substring(1)) < 14) {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\treq.on('socket', function (s) {\n\t\t\t\ts.addListener('close', function (hadError) {\n\t\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\t\tconst hasDataListener = s.listenerCount('data') > 0;\n\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && hasDataListener && !hadError && !(signal && signal.aborted)) {\n\t\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', err);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.on('end', function () {\n\t\t\t\t\t// some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted.\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tlet socket;\n\n\trequest.on('socket', function (s) {\n\t\tsocket = s;\n\t});\n\n\trequest.on('response', function (response) {\n\t\tconst headers = response.headers;\n\n\t\tif (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) {\n\t\t\tresponse.once('close', function (hadError) {\n\t\t\t\t// tests for socket presence, as in some situations the\n\t\t\t\t// the 'socket' event is not triggered for the request\n\t\t\t\t// (happens in deno), avoids `TypeError`\n\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\tconst hasDataListener = socket && socket.listenerCount('data') > 0;\n\n\t\t\t\tif (hasDataListener && !hadError) {\n\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\terrorCallback(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction destroyStream(stream, err) {\n\tif (stream.destroy) {\n\t\tstream.destroy(err);\n\t} else {\n\t\t// node < 8\n\t\tstream.emit('error', err);\n\t\tstream.end();\n\t}\n}\n\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n", "const nodeFetch = require('node-fetch')\nconst realFetch = nodeFetch.default || nodeFetch\n\nconst fetch = function (url, options) {\n // Support schemaless URIs on the server for parity with the browser.\n // Ex: //github.com/ -> https://github.com/\n if (/^\\/\\//.test(url)) {\n url = 'https:' + url\n }\n return realFetch.call(this, url, options)\n}\n\nfetch.ponyfill = true\n\nmodule.exports = exports = fetch\nexports.fetch = fetch\nexports.Headers = nodeFetch.Headers\nexports.Request = nodeFetch.Request\nexports.Response = nodeFetch.Response\n\n// Needed for TypeScript consumers without esModuleInterop.\nexports.default = fetch\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFetch = void 0;\nconst react_1 = require(\"react\");\nconst media_typer_1 = __importDefault(require(\"media-typer\"));\nconst content_type_1 = __importDefault(require(\"content-type\"));\nconst useCachedPromise_1 = require(\"./useCachedPromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst cross_fetch_1 = require(\"cross-fetch\");\nfunction isJSON(contentTypeHeader) {\n if (contentTypeHeader) {\n const ct = content_type_1.default.parse(contentTypeHeader);\n const mediaType = media_typer_1.default.parse(ct.type);\n if (mediaType.subtype === \"json\") {\n return true;\n }\n if (mediaType.suffix === \"json\") {\n return true;\n }\n if (mediaType.suffix && /\\bjson\\b/i.test(mediaType.suffix)) {\n return true;\n }\n if (mediaType.subtype && /\\bjson\\b/i.test(mediaType.subtype)) {\n return true;\n }\n }\n return false;\n}\nasync function defaultParsing(response) {\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const contentTypeHeader = response.headers.get(\"content-type\");\n if (contentTypeHeader && isJSON(contentTypeHeader)) {\n return await response.json();\n }\n return await response.text();\n}\n/**\n * Fetch the URL and returns the {@link AsyncState} corresponding to the execution of the fetch. The last value will be kept between command runs.\n *\n * @example\n * ```\n * import { useFetch } from '@raycast/utils';\n *\n * export default function Command() {\n * const { isLoading, data, revalidate } = useFetch('https://api.example');\n *\n * return (\n * <Detail\n * isLoading={isLoading}\n * markdown={data}\n * actions={\n * <ActionPanel>\n * <Action title=\"Reload\" onAction={() => revalidate()} />\n * </ActionPanel>\n * }\n * />\n * );\n * };\n * ```\n */\nfunction useFetch(url, options) {\n const { parseResponse, initialData, execute, keepPreviousData, onError, onData, onWillExecute, ...fetchOptions } = options || {};\n const useCachedPromiseOptions = {\n initialData,\n execute,\n keepPreviousData,\n onError,\n onData,\n onWillExecute,\n };\n const parseResponseRef = (0, useLatest_1.useLatest)(parseResponse || defaultParsing);\n const abortable = (0, react_1.useRef)();\n const fn = (0, react_1.useCallback)(async (url, options) => {\n const res = await (0, cross_fetch_1.fetch)(url, { signal: abortable.current?.signal, ...options });\n return (await parseResponseRef.current(res));\n }, [parseResponseRef]);\n // @ts-expect-error T can't be a Promise so it's actually the same\n return (0, useCachedPromise_1.useCachedPromise)(fn, [url, fetchOptions], { ...useCachedPromiseOptions, abortable });\n}\nexports.useFetch = useFetch;\n", "/**\n * This is not the set of all possible signals.\n *\n * It IS, however, the set of all signals that trigger\n * an exit on either Linux or BSD systems. Linux is a\n * superset of the signal names supported on BSD, and\n * the unknown signals just fail to register, so we can\n * catch that easily enough.\n *\n * Windows signals are a different set, since there are\n * signals that terminate Windows processes, but don't\n * terminate (or don't even exist) on Posix systems.\n *\n * Don't bother with SIGKILL. It's uncatchable, which\n * means that we can't fire any callbacks anyway.\n *\n * If a user does happen to register a handler on a non-\n * fatal signal like SIGWINCH or something, and then\n * exit, it'll end up firing `process.emit('exit')`, so\n * the handler will be fired anyway.\n *\n * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n * artificially, inherently leave the process in a\n * state from which it is not safe to try and enter JS\n * listeners.\n */\nexport const signals: NodeJS.Signals[] = []\nsignals.push('SIGHUP', 'SIGINT', 'SIGTERM')\n\nif (process.platform !== 'win32') {\n signals.push(\n 'SIGALRM',\n 'SIGABRT',\n 'SIGVTALRM',\n 'SIGXCPU',\n 'SIGXFSZ',\n 'SIGUSR2',\n 'SIGTRAP',\n 'SIGSYS',\n 'SIGQUIT',\n 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n )\n}\n\nif (process.platform === 'linux') {\n signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT')\n}\n", "// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nimport { signals } from './signals.js'\nexport { signals }\n\n// just a loosened process type so we can do some evil things\ntype ProcessRE = NodeJS.Process & {\n reallyExit: (code?: number | undefined | null) => any\n emit: (ev: string, ...a: any[]) => any\n}\n\nconst processOk = (process: any): process is ProcessRE =>\n !!process &&\n typeof process === 'object' &&\n typeof process.removeListener === 'function' &&\n typeof process.emit === 'function' &&\n typeof process.reallyExit === 'function' &&\n typeof process.listeners === 'function' &&\n typeof process.kill === 'function' &&\n typeof process.pid === 'number' &&\n typeof process.on === 'function'\n\nconst kExitEmitter = Symbol.for('signal-exit emitter')\nconst global: typeof globalThis & { [kExitEmitter]?: Emitter } = globalThis\nconst ObjectDefineProperty = Object.defineProperty.bind(Object)\n\n/**\n * A function that takes an exit code and signal as arguments\n *\n * In the case of signal exits *only*, a return value of true\n * will indicate that the signal is being handled, and we should\n * not synthetically exit with the signal we received. Regardless\n * of the handler return value, the handler is unloaded when an\n * otherwise fatal signal is received, so you get exactly 1 shot\n * at it, unless you add another onExit handler at that point.\n *\n * In the case of numeric code exits, we may already have committed\n * to exiting the process, for example via a fatal exception or\n * unhandled promise rejection, so it is impossible to stop safely.\n */\nexport type Handler = (\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n) => true | void\ntype ExitEvent = 'afterExit' | 'exit'\ntype Emitted = { [k in ExitEvent]: boolean }\ntype Listeners = { [k in ExitEvent]: Handler[] }\n\n// teeny special purpose ee\nclass Emitter {\n emitted: Emitted = {\n afterExit: false,\n exit: false,\n }\n\n listeners: Listeners = {\n afterExit: [],\n exit: [],\n }\n\n count: number = 0\n id: number = Math.random()\n\n constructor() {\n if (global[kExitEmitter]) {\n return global[kExitEmitter]\n }\n ObjectDefineProperty(global, kExitEmitter, {\n value: this,\n writable: false,\n enumerable: false,\n configurable: false,\n })\n }\n\n on(ev: ExitEvent, fn: Handler) {\n this.listeners[ev].push(fn)\n }\n\n removeListener(ev: ExitEvent, fn: Handler) {\n const list = this.listeners[ev]\n const i = list.indexOf(fn)\n /* c8 ignore start */\n if (i === -1) {\n return\n }\n /* c8 ignore stop */\n if (i === 0 && list.length === 1) {\n list.length = 0\n } else {\n list.splice(i, 1)\n }\n }\n\n emit(\n ev: ExitEvent,\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n ): boolean {\n if (this.emitted[ev]) {\n return false\n }\n this.emitted[ev] = true\n let ret: boolean = false\n for (const fn of this.listeners[ev]) {\n ret = fn(code, signal) === true || ret\n }\n if (ev === 'exit') {\n ret = this.emit('afterExit', code, signal) || ret\n }\n return ret\n }\n}\n\nabstract class SignalExitBase {\n abstract onExit(cb: Handler, opts?: { alwaysLast?: boolean }): () => void\n abstract load(): void\n abstract unload(): void\n}\n\nconst signalExitWrap = <T extends SignalExitBase>(handler: T) => {\n return {\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n return handler.onExit(cb, opts)\n },\n load() {\n return handler.load()\n },\n unload() {\n return handler.unload()\n },\n }\n}\n\nclass SignalExitFallback extends SignalExitBase {\n onExit() {\n return () => {}\n }\n load() {}\n unload() {}\n}\n\nclass SignalExit extends SignalExitBase {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n /* c8 ignore start */\n #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP'\n /* c8 ignore stop */\n #emitter = new Emitter()\n #process: ProcessRE\n #originalProcessEmit: ProcessRE['emit']\n #originalProcessReallyExit: ProcessRE['reallyExit']\n\n #sigListeners: { [k in NodeJS.Signals]?: () => void } = {}\n #loaded: boolean = false\n\n constructor(process: ProcessRE) {\n super()\n this.#process = process\n // { <signal>: <listener fn>, ... }\n this.#sigListeners = {}\n for (const sig of signals) {\n this.#sigListeners[sig] = () => {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n const listeners = this.#process.listeners(sig)\n let { count } = this.#emitter\n // This is a workaround for the fact that signal-exit v3 and signal\n // exit v4 are not aware of each other, and each will attempt to let\n // the other handle it, so neither of them do. To correct this, we\n // detect if we're the only handler *except* for previous versions\n // of signal-exit, and increment by the count of listeners it has\n // created.\n /* c8 ignore start */\n const p = process as unknown as {\n __signal_exit_emitter__?: { count: number }\n }\n if (\n typeof p.__signal_exit_emitter__ === 'object' &&\n typeof p.__signal_exit_emitter__.count === 'number'\n ) {\n count += p.__signal_exit_emitter__.count\n }\n /* c8 ignore stop */\n if (listeners.length === count) {\n this.unload()\n const ret = this.#emitter.emit('exit', null, sig)\n /* c8 ignore start */\n const s = sig === 'SIGHUP' ? this.#hupSig : sig\n if (!ret) process.kill(process.pid, s)\n /* c8 ignore stop */\n }\n }\n }\n\n this.#originalProcessReallyExit = process.reallyExit\n this.#originalProcessEmit = process.emit\n }\n\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return () => {}\n }\n /* c8 ignore stop */\n\n if (this.#loaded === false) {\n this.load()\n }\n\n const ev = opts?.alwaysLast ? 'afterExit' : 'exit'\n this.#emitter.on(ev, cb)\n return () => {\n this.#emitter.removeListener(ev, cb)\n if (\n this.#emitter.listeners['exit'].length === 0 &&\n this.#emitter.listeners['afterExit'].length === 0\n ) {\n this.unload()\n }\n }\n }\n\n load() {\n if (this.#loaded) {\n return\n }\n this.#loaded = true\n\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n this.#emitter.count += 1\n\n for (const sig of signals) {\n try {\n const fn = this.#sigListeners[sig]\n if (fn) this.#process.on(sig, fn)\n } catch (_) {}\n }\n\n this.#process.emit = (ev: string, ...a: any[]) => {\n return this.#processEmit(ev, ...a)\n }\n this.#process.reallyExit = (code?: number | null | undefined) => {\n return this.#processReallyExit(code)\n }\n }\n\n unload() {\n if (!this.#loaded) {\n return\n }\n this.#loaded = false\n\n signals.forEach(sig => {\n const listener = this.#sigListeners[sig]\n /* c8 ignore start */\n if (!listener) {\n throw new Error('Listener not defined for signal: ' + sig)\n }\n /* c8 ignore stop */\n try {\n this.#process.removeListener(sig, listener)\n /* c8 ignore start */\n } catch (_) {}\n /* c8 ignore stop */\n })\n this.#process.emit = this.#originalProcessEmit\n this.#process.reallyExit = this.#originalProcessReallyExit\n this.#emitter.count -= 1\n }\n\n #processReallyExit(code?: number | null | undefined) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return 0\n }\n this.#process.exitCode = code || 0\n /* c8 ignore stop */\n\n this.#emitter.emit('exit', this.#process.exitCode, null)\n return this.#originalProcessReallyExit.call(\n this.#process,\n this.#process.exitCode\n )\n }\n\n #processEmit(ev: string, ...args: any[]): any {\n const og = this.#originalProcessEmit\n if (ev === 'exit' && processOk(this.#process)) {\n if (typeof args[0] === 'number') {\n this.#process.exitCode = args[0]\n /* c8 ignore start */\n }\n /* c8 ignore start */\n const ret = og.call(this.#process, ev, ...args)\n /* c8 ignore start */\n this.#emitter.emit('exit', this.#process.exitCode, null)\n /* c8 ignore stop */\n return ret\n } else {\n return og.call(this.#process, ev, ...args)\n }\n }\n}\n\nconst process = globalThis.process\n// wrap so that we call the method on the actual handler, without\n// exporting it directly.\nexport const {\n /**\n * Called when the process is exiting, whether via signal, explicit\n * exit, or running out of stuff to do.\n *\n * If the global process object is not suitable for instrumentation,\n * then this will be a no-op.\n *\n * Returns a function that may be used to unload signal-exit.\n */\n onExit,\n\n /**\n * Load the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n load,\n\n /**\n * Unload the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n unload,\n} = signalExitWrap(\n processOk(process) ? new SignalExit(process) : new SignalExitFallback()\n)\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultParsing = exports.handleOutput = exports.getSpawnedResult = exports.getSpawnedPromise = void 0;\nconst node_buffer_1 = require(\"node:buffer\");\nconst node_stream_1 = __importDefault(require(\"node:stream\"));\nconst node_util_1 = require(\"node:util\");\nconst signal_exit_1 = require(\"signal-exit\");\nfunction getSpawnedPromise(spawned, { timeout } = {}) {\n const spawnedPromise = new Promise((resolve, reject) => {\n spawned.on(\"exit\", (exitCode, signal) => {\n resolve({ exitCode, signal, timedOut: false });\n });\n spawned.on(\"error\", (error) => {\n reject(error);\n });\n if (spawned.stdin) {\n spawned.stdin.on(\"error\", (error) => {\n reject(error);\n });\n }\n });\n if (timeout === 0 || timeout === undefined) {\n return spawnedPromise;\n }\n let timeoutId;\n const timeoutPromise = new Promise((_resolve, reject) => {\n timeoutId = setTimeout(() => {\n spawned.kill(\"SIGTERM\");\n reject(Object.assign(new Error(\"Timed out\"), { timedOut: true, signal: \"SIGTERM\" }));\n }, timeout);\n });\n const safeSpawnedPromise = spawnedPromise.finally(() => {\n clearTimeout(timeoutId);\n });\n const removeExitHandler = (0, signal_exit_1.onExit)(() => {\n spawned.kill();\n });\n return Promise.race([timeoutPromise, safeSpawnedPromise]).finally(() => removeExitHandler());\n}\nexports.getSpawnedPromise = getSpawnedPromise;\nclass MaxBufferError extends Error {\n constructor() {\n super(\"The output is too big\");\n this.name = \"MaxBufferError\";\n }\n}\nconst streamPipelinePromisified = (0, node_util_1.promisify)(node_stream_1.default.pipeline);\nfunction bufferStream(options) {\n const { encoding } = options;\n const isBuffer = encoding === \"buffer\";\n // @ts-expect-error missing the methods we are adding below\n const stream = new node_stream_1.default.PassThrough({ objectMode: false });\n if (encoding && encoding !== \"buffer\") {\n stream.setEncoding(encoding);\n }\n let length = 0;\n const chunks = [];\n stream.on(\"data\", (chunk) => {\n chunks.push(chunk);\n length += chunk.length;\n });\n stream.getBufferedValue = () => {\n return (isBuffer ? Buffer.concat(chunks, length) : chunks.join(\"\"));\n };\n stream.getBufferedLength = () => length;\n return stream;\n}\nasync function getStream(inputStream, options) {\n const stream = bufferStream(options);\n await new Promise((resolve, reject) => {\n const rejectPromise = (error) => {\n // Don't retrieve an oversized buffer.\n if (error && stream.getBufferedLength() <= node_buffer_1.constants.MAX_LENGTH) {\n error.bufferedData = stream.getBufferedValue();\n }\n reject(error);\n };\n (async () => {\n try {\n await streamPipelinePromisified(inputStream, stream);\n resolve();\n }\n catch (error) {\n rejectPromise(error);\n }\n })();\n stream.on(\"data\", () => {\n // 80mb\n if (stream.getBufferedLength() > 1000 * 1000 * 80) {\n rejectPromise(new MaxBufferError());\n }\n });\n });\n return stream.getBufferedValue();\n}\n// On failure, `result.stdout|stderr` should contain the currently buffered stream\nasync function getBufferedData(stream, streamPromise) {\n stream.destroy();\n try {\n return await streamPromise;\n }\n catch (error) {\n return error.bufferedData;\n }\n}\nasync function getSpawnedResult({ stdout, stderr }, { encoding }, processDone) {\n const stdoutPromise = getStream(stdout, { encoding });\n const stderrPromise = getStream(stderr, { encoding });\n try {\n return await Promise.all([processDone, stdoutPromise, stderrPromise]);\n }\n catch (error) {\n return Promise.all([\n {\n error: error,\n exitCode: null,\n signal: error.signal,\n timedOut: error.timedOut || false,\n },\n getBufferedData(stdout, stdoutPromise),\n getBufferedData(stderr, stderrPromise),\n ]);\n }\n}\nexports.getSpawnedResult = getSpawnedResult;\nfunction stripFinalNewline(input) {\n const LF = typeof input === \"string\" ? \"\\n\" : \"\\n\".charCodeAt(0);\n const CR = typeof input === \"string\" ? \"\\r\" : \"\\r\".charCodeAt(0);\n if (input[input.length - 1] === LF) {\n // @ts-expect-error we are doing some nasty stuff here\n input = input.slice(0, -1);\n }\n if (input[input.length - 1] === CR) {\n // @ts-expect-error we are doing some nasty stuff here\n input = input.slice(0, -1);\n }\n return input;\n}\nfunction handleOutput(options, value) {\n if (options.stripFinalNewline) {\n return stripFinalNewline(value);\n }\n return value;\n}\nexports.handleOutput = handleOutput;\nconst getErrorPrefix = ({ timedOut, timeout, signal, exitCode, }) => {\n if (timedOut) {\n return `timed out after ${timeout} milliseconds`;\n }\n if (signal !== undefined && signal !== null) {\n return `was killed with ${signal}`;\n }\n if (exitCode !== undefined && exitCode !== null) {\n return `failed with exit code ${exitCode}`;\n }\n return \"failed\";\n};\nconst makeError = ({ stdout, stderr, error, signal, exitCode, command, timedOut, options, parentError, }) => {\n const prefix = getErrorPrefix({ timedOut, timeout: options?.timeout, signal, exitCode });\n const execaMessage = `Command ${prefix}: ${command}`;\n const shortMessage = error ? `${execaMessage}\\n${error.message}` : execaMessage;\n const message = [shortMessage, stderr, stdout].filter(Boolean).join(\"\\n\");\n if (error) {\n // @ts-expect-error not on Error\n error.originalMessage = error.message;\n }\n else {\n error = parentError;\n }\n error.message = message;\n // @ts-expect-error not on Error\n error.shortMessage = shortMessage;\n // @ts-expect-error not on Error\n error.command = command;\n // @ts-expect-error not on Error\n error.exitCode = exitCode;\n // @ts-expect-error not on Error\n error.signal = signal;\n // @ts-expect-error not on Error\n error.stdout = stdout;\n // @ts-expect-error not on Error\n error.stderr = stderr;\n if (\"bufferedData\" in error) {\n delete error[\"bufferedData\"];\n }\n return error;\n};\nfunction defaultParsing({ stdout, stderr, error, exitCode, signal, timedOut, command, options, parentError, }) {\n if (error || exitCode !== 0 || signal !== null) {\n const returnedError = makeError({\n error,\n exitCode,\n signal,\n stdout,\n stderr,\n command,\n timedOut,\n options,\n parentError,\n });\n throw returnedError;\n }\n return stdout;\n}\nexports.defaultParsing = defaultParsing;\n", "\"use strict\";\n/*\n * Inspired by Execa\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useExec = void 0;\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst react_1 = require(\"react\");\nconst useCachedPromise_1 = require(\"./useCachedPromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst exec_utils_1 = require(\"./exec-utils\");\nconst SPACES_REGEXP = / +/g;\nfunction parseCommand(command, args) {\n if (args) {\n return [command, ...args];\n }\n const tokens = [];\n for (const token of command.trim().split(SPACES_REGEXP)) {\n // Allow spaces to be escaped by a backslash if not meant as a delimiter\n const previousToken = tokens[tokens.length - 1];\n if (previousToken && previousToken.endsWith(\"\\\\\")) {\n // Merge previous token with current one\n tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`;\n }\n else {\n tokens.push(token);\n }\n }\n return tokens;\n}\nfunction useExec(command, optionsOrArgs, options) {\n const { parseOutput, input, onData, onWillExecute, initialData, execute, keepPreviousData, onError, ...execOptions } = Array.isArray(optionsOrArgs) ? options || {} : optionsOrArgs || {};\n const useCachedPromiseOptions = {\n initialData,\n execute,\n keepPreviousData,\n onError,\n onData,\n onWillExecute,\n };\n const abortable = (0, react_1.useRef)();\n const parseOutputRef = (0, useLatest_1.useLatest)(parseOutput || exec_utils_1.defaultParsing);\n const fn = (0, react_1.useCallback)(async (_command, _args, _options, input) => {\n const [file, ...args] = parseCommand(_command, _args);\n const command = [file, ...args].join(\" \");\n const options = {\n stripFinalNewline: true,\n ..._options,\n timeout: _options?.timeout || 10000,\n signal: abortable.current?.signal,\n encoding: _options?.encoding === null ? \"buffer\" : _options?.encoding || \"utf8\",\n env: { PATH: \"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\", ...process.env, ..._options?.env },\n };\n const spawned = node_child_process_1.default.spawn(file, args, options);\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned, options);\n if (input) {\n spawned.stdin.end(input);\n }\n const [{ error, exitCode, signal, timedOut }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, options, spawnedPromise);\n const stdout = (0, exec_utils_1.handleOutput)(options, stdoutResult);\n const stderr = (0, exec_utils_1.handleOutput)(options, stderrResult);\n return parseOutputRef.current({\n // @ts-expect-error too many generics, I give up\n stdout,\n // @ts-expect-error too many generics, I give up\n stderr,\n error,\n exitCode,\n signal,\n timedOut,\n command,\n options,\n parentError: new Error(),\n });\n }, [parseOutputRef]);\n // @ts-expect-error T can't be a Promise so it's actually the same\n return (0, useCachedPromise_1.useCachedPromise)(fn, [command, Array.isArray(optionsOrArgs) ? optionsOrArgs : [], execOptions, input], {\n ...useCachedPromiseOptions,\n abortable,\n });\n}\nexports.useExec = useExec;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useSQL = void 0;\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\nconst api_1 = require(\"@raycast/api\");\nconst node_fs_1 = require(\"node:fs\");\nconst promises_1 = require(\"node:fs/promises\");\nconst node_os_1 = __importDefault(require(\"node:os\"));\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst node_path_1 = __importDefault(require(\"node:path\"));\nconst object_hash_1 = __importDefault(require(\"object-hash\"));\nconst react_1 = require(\"react\");\nconst usePromise_1 = require(\"./usePromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst exec_utils_1 = require(\"./exec-utils\");\nconst handle_error_toast_action_1 = require(\"./handle-error-toast-action\");\n/**\n * Executes a query on a local SQL database and returns the {@link AsyncState} corresponding to the query of the command. The last value will be kept between command runs.\n *\n * @example\n * ```\n * import { useSQL } from \"@raycast/utils\";\n * import { resolve } from \"path\";\n * import { homedir } from \"os\";\n *\n * const NOTES_DB = resolve(homedir(), \"Library/Group Containers/group.com.apple.notes/NoteStore.sqlite\");\n * const notesQuery = `SELECT id, title FROM ...`;\n * type NoteItem = {\n * id: string;\n * title: string;\n * };\n *\n * export default function Command() {\n * const { isLoading, data, permissionView } = useSQL<NoteItem>(NOTES_DB, notesQuery);\n *\n * if (permissionView) {\n * return permissionView;\n * }\n *\n * return (\n * <List isLoading={isLoading}>\n * {(data || []).map((item) => (\n * <List.Item key={item.id} title={item.title} />\n * ))}\n * </List>\n * );\n * };\n * ```\n */\nfunction useSQL(databasePath, query, options) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { permissionPriming, ...usePromiseOptions } = options || {};\n const [permissionView, setPermissionView] = (0, react_1.useState)();\n const latestOptions = (0, useLatest_1.useLatest)(options || {});\n const abortable = (0, react_1.useRef)();\n const handleError = (0, react_1.useCallback)((_error) => {\n console.error(_error);\n const error = _error instanceof Error && _error.message.includes(\"authorization denied\")\n ? new PermissionError(\"You do not have permission to access the database.\")\n : _error;\n if (isPermissionError(error)) {\n setPermissionView((0, jsx_runtime_1.jsx)(PermissionErrorScreen, { priming: latestOptions.current.permissionPriming }));\n }\n else {\n if (latestOptions.current.onError) {\n latestOptions.current.onError(error);\n }\n else {\n console.error(error);\n if (api_1.environment.launchType !== api_1.LaunchType.Background) {\n (0, api_1.showToast)({\n style: api_1.Toast.Style.Failure,\n title: \"Cannot query the data\",\n message: error.message,\n primaryAction: (0, handle_error_toast_action_1.handleErrorToastAction)(error),\n });\n }\n }\n }\n }, [latestOptions]);\n const fn = (0, react_1.useMemo)(() => {\n if (!(0, node_fs_1.existsSync)(databasePath)) {\n throw new Error(\"The database does not exist\");\n }\n let workaroundCopiedDb = undefined;\n return async (databasePath, query) => {\n const abortSignal = abortable.current?.signal;\n const spawned = node_child_process_1.default.spawn(\"sqlite3\", [\"--json\", \"--readonly\", databasePath, query], {\n signal: abortSignal,\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned);\n let [{ error, exitCode, signal }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf-8\" }, spawnedPromise);\n checkAborted(abortSignal);\n if (stderrResult.match(\"(5)\") || stderrResult.match(\"(14)\")) {\n // That means that the DB is busy because of another app is locking it\n // This happens when Chrome or Arc is opened: they lock the History db.\n // As an ugly workaround, we duplicate the file and read that instead\n // (with vfs unix - none to just not care about locks)\n if (!workaroundCopiedDb) {\n const tempFolder = node_path_1.default.join(node_os_1.default.tmpdir(), \"useSQL\", (0, object_hash_1.default)(databasePath));\n await (0, promises_1.mkdir)(tempFolder, { recursive: true });\n checkAborted(abortSignal);\n workaroundCopiedDb = node_path_1.default.join(tempFolder, \"db.db\");\n await (0, promises_1.copyFile)(databasePath, workaroundCopiedDb);\n // needed for certain db\n await (0, promises_1.writeFile)(workaroundCopiedDb + \"-shm\", \"\");\n await (0, promises_1.writeFile)(workaroundCopiedDb + \"-wal\", \"\");\n checkAborted(abortSignal);\n }\n const spawned = node_child_process_1.default.spawn(\"sqlite3\", [\"--json\", \"--readonly\", \"--vfs\", \"unix-none\", workaroundCopiedDb, query], {\n signal: abortSignal,\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned);\n [{ error, exitCode, signal }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf-8\" }, spawnedPromise);\n checkAborted(abortSignal);\n }\n if (error || exitCode !== 0 || signal !== null) {\n throw new Error(stderrResult);\n }\n return JSON.parse(stdoutResult.trim() || \"[]\");\n };\n }, [databasePath]);\n return {\n ...(0, usePromise_1.usePromise)(fn, [databasePath, query], { ...usePromiseOptions, onError: handleError }),\n permissionView,\n };\n}\nexports.useSQL = useSQL;\nclass PermissionError extends Error {\n constructor(message) {\n super(message);\n this.name = \"PermissionError\";\n }\n}\nfunction isPermissionError(error) {\n return error instanceof Error && error.name === \"PermissionError\";\n}\nconst macosVenturaAndLater = parseInt(node_os_1.default.release().split(\".\")[0]) >= 22;\nconst preferencesString = macosVenturaAndLater ? \"Settings\" : \"Preferences\";\nfunction PermissionErrorScreen(props) {\n const action = macosVenturaAndLater\n ? {\n title: \"Open System Settings -> Privacy\",\n target: \"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles\",\n }\n : {\n title: \"Open System Preferences -> Security\",\n target: \"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles\",\n };\n if (api_1.environment.commandMode === \"menu-bar\") {\n return ((0, jsx_runtime_1.jsxs)(api_1.MenuBarExtra, { icon: api_1.Icon.Warning, title: api_1.environment.commandName, children: [(0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: \"Raycast needs full disk access\", tooltip: `You can revert this access in ${preferencesString} whenever you want` }), props.priming ? ((0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: props.priming, tooltip: `You can revert this access in ${preferencesString} whenever you want` })) : null, (0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Separator, {}), (0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: action.title, onAction: () => (0, api_1.open)(action.target) })] }));\n }\n return ((0, jsx_runtime_1.jsx)(api_1.List, { children: (0, jsx_runtime_1.jsx)(api_1.List.EmptyView, { icon: {\n source: {\n light: \"https://raycast.com/uploads/extensions-utils-security-permissions-light.png\",\n dark: \"https://raycast.com/uploads/extensions-utils-security-permissions-dark.png\",\n },\n }, title: \"Raycast needs full disk access.\", description: `${props.priming ? props.priming + \"\\n\" : \"\"}You can revert this access in ${preferencesString} whenever you want.`, actions: (0, jsx_runtime_1.jsx)(api_1.ActionPanel, { children: (0, jsx_runtime_1.jsx)(api_1.Action.Open, { ...action }) }) }) }));\n}\nfunction checkAborted(signal) {\n if (signal?.aborted) {\n const error = new Error(\"aborted\");\n error.name = \"AbortError\";\n throw error;\n }\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useForm = exports.FormValidation = void 0;\nconst react_1 = require(\"react\");\nconst useLatest_1 = require(\"./useLatest\");\n/**\n * Shorthands for common validation cases\n */\nvar FormValidation;\n(function (FormValidation) {\n /** Show an error when the value of the item is empty */\n FormValidation[\"Required\"] = \"required\";\n})(FormValidation = exports.FormValidation || (exports.FormValidation = {}));\nfunction validationError(validation, value) {\n if (validation) {\n if (typeof validation === \"function\") {\n return validation(value);\n }\n else if (validation === FormValidation.Required) {\n let valueIsValid = typeof value !== \"undefined\" && value !== null;\n if (valueIsValid) {\n switch (typeof value) {\n case \"string\":\n valueIsValid = value.length > 0;\n break;\n case \"object\":\n if (Array.isArray(value)) {\n valueIsValid = value.length > 0;\n }\n else if (value instanceof Date) {\n valueIsValid = value.getTime() > 0;\n }\n break;\n default:\n break;\n }\n }\n if (!valueIsValid) {\n return \"The item is required\";\n }\n }\n }\n}\n/**\n * Hook that provides a high-level interface to work with Forms, and more particularly, with Form validations. It incorporates all the good practices to provide a great User Experience for your Forms.\n *\n * @returns an object which contains the necessary methods and props to provide a good User Experience in your Form.\n *\n * @example\n * ```\n * import { Action, ActionPanel, Form, showToast, Toast } from \"@raycast/api\";\n * import { useForm, FormValidation } from \"@raycast/utils\";\n *\n * interface SignUpFormValues {\n * nickname: string;\n * password: string;\n * }\n *\n * export default function Command() {\n * const { handleSubmit, itemProps } = useForm<SignUpFormValues>({\n * onSubmit(values) {\n * showToast(Toast.Style.Success, \"Yay!\", `${values.nickname} account created`);\n * },\n * validation: {\n * nickname: FormValidation.Required,\n * password: (value) => {\n * if (value && value.length < 8) {\n * return \"Password must be at least 8 symbols\";\n * } else if (!value) {\n * return \"The item is required\";\n * }\n * },\n * },\n * });\n *\n * return (\n * <Form\n * actions={\n * <ActionPanel>\n * <Action.SubmitForm title=\"Submit\" onSubmit={handleSubmit} />\n * </ActionPanel>\n * }\n * >\n * <Form.TextField title=\"Nickname\" placeholder=\"Enter your nickname\" {...itemProps.nickname} />\n * <Form.PasswordField\n * title=\"Password\"\n * placeholder=\"Enter password at least 8 characters long\"\n * {...itemProps.password}\n * />\n * </Form>\n * );\n * }\n * ```\n */\nfunction useForm(props) {\n const { onSubmit: _onSubmit, validation, initialValues = {} } = props;\n // @ts-expect-error it's fine if we don't specify all the values\n const [values, setValues] = (0, react_1.useState)(initialValues);\n const [errors, setErrors] = (0, react_1.useState)({});\n const refs = (0, react_1.useRef)({});\n const latestValidation = (0, useLatest_1.useLatest)(validation || {});\n const latestOnSubmit = (0, useLatest_1.useLatest)(_onSubmit);\n const focus = (0, react_1.useCallback)((id) => {\n refs.current[id]?.focus();\n }, [refs]);\n const handleSubmit = (0, react_1.useCallback)(async (values) => {\n let validationErrors = false;\n for (const [id, validation] of Object.entries(latestValidation.current)) {\n const error = validationError(validation, values[id]);\n if (error) {\n if (!validationErrors) {\n validationErrors = {};\n // we focus the first item that has an error\n focus(id);\n }\n validationErrors[id] = error;\n }\n }\n if (validationErrors) {\n setErrors(validationErrors);\n return false;\n }\n const result = await latestOnSubmit.current(values);\n return typeof result === \"boolean\" ? result : true;\n }, [latestValidation, latestOnSubmit, focus]);\n const setValidationError = (0, react_1.useCallback)((id, error) => {\n setErrors((errors) => ({ ...errors, [id]: error }));\n }, [setErrors]);\n const setValue = (0, react_1.useCallback)(function (id, value) {\n // @ts-expect-error TS is always confused about SetStateAction, but it's fine here\n setValues((values) => ({ ...values, [id]: typeof value === \"function\" ? value(values[id]) : value }));\n }, [setValues]);\n const itemProps = (0, react_1.useMemo)(() => {\n // we have to use a proxy because we don't actually have any object to iterate through\n // so instead we dynamically create the props when required\n return new Proxy(\n // @ts-expect-error the whole point of a proxy...\n {}, {\n get(target, id) {\n const validation = latestValidation.current[id];\n const value = values[id];\n return {\n onChange(value) {\n if (errors[id]) {\n const error = validationError(validation, value);\n if (!error) {\n setValidationError(id, undefined);\n }\n }\n setValue(id, value);\n },\n onBlur(event) {\n const error = validationError(validation, event.target.value);\n if (error) {\n setValidationError(id, error);\n }\n },\n error: errors[id],\n id,\n // we shouldn't return `undefined` otherwise it will be an uncontrolled component\n value: typeof value === \"undefined\" ? null : value,\n ref: (instance) => {\n refs.current[id] = instance;\n },\n };\n },\n });\n }, [errors, latestValidation, setValidationError, values, refs, setValue]);\n const reset = (0, react_1.useCallback)((initialValues = {}) => {\n // @ts-expect-error it's fine if we don't specify all the values\n setValues(initialValues);\n setErrors({});\n }, [setValues, setErrors]);\n return { handleSubmit, setValidationError, setValue, values, itemProps, focus, reset };\n}\nexports.useForm = useForm;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useAI = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst usePromise_1 = require(\"./usePromise\");\n/**\n * Stream a prompt completion.\n *\n * @example\n * ```typescript\n * import { Detail, LaunchProps } from \"@raycast/api\";\n * import { use AI } from \"@raycast/utils\";\n *\n * export default function Command(props: LaunchProps<{ arguments: { prompt: string } }>) {\n * const { isLoading, data } = useAI(props.arguments.prompt);\n *\n * return <Detail isLoading={isLoading} markdown={data} />;\n * }\n * ```\n */\nfunction useAI(prompt, options = {}) {\n const { creativity, stream, model, ...usePromiseOptions } = options;\n const [data, setData] = (0, react_1.useState)(\"\");\n const abortable = (0, react_1.useRef)();\n const { isLoading, error, revalidate } = (0, usePromise_1.usePromise)(async (prompt, creativity, shouldStream) => {\n setData(\"\");\n const stream = api_1.AI.ask(prompt, { creativity, model, signal: abortable.current?.signal });\n if (shouldStream === false) {\n setData(await stream);\n }\n else {\n stream.on(\"data\", (data) => {\n setData((x) => x + data);\n });\n await stream;\n }\n }, [prompt, creativity, stream], { ...usePromiseOptions, abortable });\n return { isLoading, data, error, revalidate };\n}\nexports.useAI = useAI;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFrecencySorting = void 0;\nconst react_1 = require(\"react\");\nconst useLatest_1 = require(\"./useLatest\");\nconst useCachedState_1 = require(\"./useCachedState\");\nconst HALF_LIFE_DAYS = 10;\nconst MS_PER_DAY = 24 * 60 * 60 * 1000;\nconst DECAY_RATE_CONSTANT = Math.log(2) / (HALF_LIFE_DAYS * MS_PER_DAY);\nconst VISIT_TYPE_POINTS = {\n Default: 100,\n Embed: 0,\n Bookmark: 140,\n};\nfunction getNewFrecency(item) {\n const now = Date.now();\n const lastVisited = item ? item.lastVisited : 0;\n const frecency = item ? item.frecency : 0;\n const visitAgeInDays = (now - lastVisited) / MS_PER_DAY;\n const currentVisitValue = VISIT_TYPE_POINTS.Default * Math.exp(-DECAY_RATE_CONSTANT * visitAgeInDays);\n const totalVisitValue = frecency + currentVisitValue;\n return {\n lastVisited: now,\n frecency: totalVisitValue,\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst defaultKey = (item) => {\n if (process.env.NODE_ENV !== \"production\" &&\n (typeof item !== \"object\" || !item || !(\"id\" in item) || typeof item.id != \"string\")) {\n throw new Error(\"Specify a key function or make sure your items have an 'id' property\");\n }\n return item.id;\n};\nfunction useFrecencySorting(data, options) {\n const keyRef = (0, useLatest_1.useLatest)(options?.key || defaultKey);\n const sortUnvisitedRef = (0, useLatest_1.useLatest)(options?.sortUnvisited);\n const [storedFrecencies, setStoredFrecencies] = (0, useCachedState_1.useCachedState)(`raycast_frecency_${options?.namespace}`, {});\n const visitItem = (0, react_1.useCallback)(async function updateFrecency(item) {\n const itemKey = keyRef.current(item);\n setStoredFrecencies((storedFrecencies) => {\n const frecency = storedFrecencies[itemKey];\n const newFrecency = getNewFrecency(frecency);\n return {\n ...storedFrecencies,\n [itemKey]: newFrecency,\n };\n });\n }, [keyRef, setStoredFrecencies]);\n const resetRanking = (0, react_1.useCallback)(async function removeFrecency(item) {\n const itemKey = keyRef.current(item);\n setStoredFrecencies((storedFrecencies) => {\n const newFrencencies = { ...storedFrecencies };\n delete newFrencencies[itemKey];\n return newFrencencies;\n });\n }, [keyRef, setStoredFrecencies]);\n const sortedData = (0, react_1.useMemo)(() => {\n if (!data) {\n return [];\n }\n return data.sort((a, b) => {\n const frecencyA = storedFrecencies[keyRef.current(a)];\n const frecencyB = storedFrecencies[keyRef.current(b)];\n // If a has a frecency, but b doesn't, a should come first\n if (frecencyA && !frecencyB) {\n return -1;\n }\n // If b has a frecency, but a doesn't, b should come first\n if (!frecencyA && frecencyB) {\n return 1;\n }\n // If both frecencies are defined,put the one with the higher frecency first\n if (frecencyA && frecencyB) {\n return frecencyB.frecency - frecencyA.frecency;\n }\n // If both frecencies are undefined, keep the original order\n return sortUnvisitedRef.current ? sortUnvisitedRef.current(a, b) : 0;\n });\n }, [storedFrecencies, data, keyRef, sortUnvisitedRef]);\n return { data: sortedData, visitItem, resetRanking };\n}\nexports.useFrecencySorting = useFrecencySorting;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.slightlyLighterColor = exports.slightlyDarkerColor = void 0;\nfunction hexToRGB(hex) {\n let r = 0;\n let g = 0;\n let b = 0;\n // 3 digits\n if (hex.length === 4) {\n r = parseInt(`${hex[1]}${hex[1]}`, 16);\n g = parseInt(`${hex[2]}${hex[2]}`, 16);\n b = parseInt(`${hex[3]}${hex[3]}`, 16);\n // 6 digits\n }\n else if (hex.length === 7) {\n r = parseInt(`${hex[1]}${hex[2]}`, 16);\n g = parseInt(`${hex[3]}${hex[4]}`, 16);\n b = parseInt(`${hex[5]}${hex[6]}`, 16);\n }\n else {\n throw new Error(`Malformed hex color: ${hex}`);\n }\n return { r, g, b };\n}\nfunction rgbToHex({ r, g, b }) {\n let rString = r.toString(16);\n let gString = g.toString(16);\n let bString = b.toString(16);\n if (rString.length === 1) {\n rString = `0${rString}`;\n }\n if (gString.length === 1) {\n gString = `0${gString}`;\n }\n if (bString.length === 1) {\n bString = `0${bString}`;\n }\n return `#${rString}${gString}${bString}`;\n}\nfunction rgbToHSL({ r, g, b }) {\n // Make r, g, and b fractions of 1\n r /= 255;\n g /= 255;\n b /= 255;\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b);\n const cmax = Math.max(r, g, b);\n const delta = cmax - cmin;\n let h = 0;\n let s = 0;\n let l = 0;\n // Calculate hue\n // No difference\n if (delta === 0) {\n h = 0;\n }\n // Red is max\n else if (cmax === r) {\n h = ((g - b) / delta) % 6;\n }\n // Green is max\n else if (cmax === g) {\n h = (b - r) / delta + 2;\n }\n // Blue is max\n else {\n h = (r - g) / delta + 4;\n }\n h = Math.round(h * 60);\n // Make negative hues positive behind 360\u00B0\n if (h < 0) {\n h += 360;\n }\n // Calculate lightness\n l = (cmax + cmin) / 2;\n // Calculate saturation\n s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1);\n l = +(l * 100).toFixed(1);\n return { h, s, l };\n}\nfunction hslToRGB({ h, s, l }) {\n // Must be fractions of 1\n s /= 100;\n l /= 100;\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = l - c / 2;\n let r = 0;\n let g = 0;\n let b = 0;\n if (h >= 0 && h < 60) {\n r = c;\n g = x;\n b = 0;\n }\n else if (h >= 60 && h < 120) {\n r = x;\n g = c;\n b = 0;\n }\n else if (h >= 120 && h < 180) {\n r = 0;\n g = c;\n b = x;\n }\n else if (h >= 180 && h < 240) {\n r = 0;\n g = x;\n b = c;\n }\n else if (h >= 240 && h < 300) {\n r = x;\n g = 0;\n b = c;\n }\n else if (h >= 300 && h < 360) {\n r = c;\n g = 0;\n b = x;\n }\n r = Math.round((r + m) * 255);\n g = Math.round((g + m) * 255);\n b = Math.round((b + m) * 255);\n return { r, g, b };\n}\nfunction hexToHSL(hex) {\n return rgbToHSL(hexToRGB(hex));\n}\nfunction hslToHex(hsl) {\n return rgbToHex(hslToRGB(hsl));\n}\nfunction clamp(value, min, max) {\n return min < max ? (value < min ? min : value > max ? max : value) : value < max ? max : value > min ? min : value;\n}\nconst offset = 12;\nfunction slightlyDarkerColor(hex) {\n const hsl = hexToHSL(hex);\n return hslToHex({\n h: hsl.h,\n s: hsl.s,\n l: clamp(hsl.l - offset, 0, 100),\n });\n}\nexports.slightlyDarkerColor = slightlyDarkerColor;\nfunction slightlyLighterColor(hex) {\n const hsl = hexToHSL(hex);\n return hslToHex({\n h: hsl.h,\n s: hsl.s,\n l: clamp(hsl.l + offset, 0, 100),\n });\n}\nexports.slightlyLighterColor = slightlyLighterColor;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAvatarIcon = void 0;\nconst color_1 = require(\"./color\");\nfunction getWholeCharAndI(str, i) {\n const code = str.charCodeAt(i);\n if (Number.isNaN(code)) {\n return [\"\", i];\n }\n if (code < 0xd800 || code > 0xdfff) {\n return [str.charAt(i), i]; // Normal character, keeping 'i' the same\n }\n // High surrogate (could change last hex to 0xDB7F to treat high private\n // surrogates as single characters)\n if (0xd800 <= code && code <= 0xdbff) {\n if (str.length <= i + 1) {\n throw new Error(\"High surrogate without following low surrogate\");\n }\n const next = str.charCodeAt(i + 1);\n if (0xdc00 > next || next > 0xdfff) {\n throw new Error(\"High surrogate without following low surrogate\");\n }\n return [str.charAt(i) + str.charAt(i + 1), i + 1];\n }\n // Low surrogate (0xDC00 <= code && code <= 0xDFFF)\n if (i === 0) {\n throw new Error(\"Low surrogate without preceding high surrogate\");\n }\n const prev = str.charCodeAt(i - 1);\n // (could change last hex to 0xDB7F to treat high private surrogates\n // as single characters)\n if (0xd800 > prev || prev > 0xdbff) {\n throw new Error(\"Low surrogate without preceding high surrogate\");\n }\n // Return the next character instead (and increment)\n return [str.charAt(i + 1), i + 1];\n}\nconst avatarColorSet = [\n \"#DC829A\",\n \"#D64854\",\n \"#D47600\",\n \"#D36CDD\",\n \"#52A9E4\",\n \"#7871E8\",\n \"#70920F\",\n \"#43B93A\",\n \"#EB6B3E\",\n \"#26B795\",\n \"#D85A9B\",\n \"#A067DC\",\n \"#BD9500\",\n \"#5385D9\", // Blue\n];\n/**\n * Icon to represent an avatar when you don't have one. The generated avatar\n * will be generated from the initials of the name and have a colorful but consistent background.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getAvatarIcon('Mathieu Dutour')} title=\"Project\" />\n * ```\n */\nfunction getAvatarIcon(name, options) {\n const words = name.trim().split(\" \");\n let initials;\n if (words.length == 1 && getWholeCharAndI(words[0], 0)[0]) {\n initials = getWholeCharAndI(words[0], 0)[0];\n }\n else if (words.length > 1) {\n const firstWordFirstLetter = getWholeCharAndI(words[0], 0)[0] || \"\";\n const lastWordFirstLetter = getWholeCharAndI(words[words.length - 1], 0)[0] ?? \"\";\n initials = firstWordFirstLetter + lastWordFirstLetter;\n }\n else {\n initials = \"\";\n }\n let backgroundColor;\n if (options?.background) {\n backgroundColor = options?.background;\n }\n else {\n let initialsCharIndex = 0;\n let [char, i] = getWholeCharAndI(initials, 0);\n while (char) {\n initialsCharIndex += char.charCodeAt(0);\n [char, i] = getWholeCharAndI(initials, i + 1);\n }\n const colorIndex = initialsCharIndex % avatarColorSet.length;\n backgroundColor = avatarColorSet[colorIndex];\n }\n const padding = 0;\n const radius = 50 - padding;\n const svg = `<svg width=\"100px\" height=\"100px\">\n ${options?.gradient !== false\n ? `<defs>\n <linearGradient id=\"Gradient\" x1=\"0.25\" x2=\"0.75\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" stop-color=\"${(0, color_1.slightlyLighterColor)(backgroundColor)}\"/>\n <stop offset=\"50%\" stop-color=\"${backgroundColor}\"/>\n <stop offset=\"100%\" stop-color=\"${(0, color_1.slightlyDarkerColor)(backgroundColor)}\"/>\n </linearGradient>\n </defs>`\n : \"\"}\n <circle cx=\"50\" cy=\"50\" r=\"${radius}\" fill=\"${options?.gradient !== false ? \"url(#Gradient)\" : backgroundColor}\" />\n ${initials\n ? `<text x=\"50\" y=\"80\" font-size=\"${radius - 1}\" font-family=\"Inter, sans-serif\" text-anchor=\"middle\" fill=\"white\">${initials.toUpperCase()}</text>`\n : \"\"}\n </svg>\n `.replaceAll(\"\\n\", \"\");\n return `data:image/svg+xml,${svg}`;\n}\nexports.getAvatarIcon = getAvatarIcon;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFavicon = void 0;\nconst api_1 = require(\"@raycast/api\");\nconst url_1 = require(\"url\");\n/**\n * Icon showing the favicon of a website.\n *\n * A favicon (favorite icon) is a tiny icon included along with a website, which is displayed in places like the browser's address bar, page tabs, and bookmarks menu.\n *\n * @param url The URL of the website to represent.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getFavicon(\"https://raycast.com\")} title=\"Raycast Website\" />\n * ```\n */\nfunction getFavicon(url, options) {\n try {\n const urlObj = typeof url === \"string\" ? new url_1.URL(url) : url;\n const hostname = urlObj.hostname;\n return {\n source: `https://www.google.com/s2/favicons?sz=${options?.size ?? 64}&domain=${hostname}`,\n fallback: options?.fallback ?? api_1.Icon.Link,\n mask: options?.mask,\n };\n }\n catch (e) {\n console.error(e);\n return api_1.Icon.Link;\n }\n}\nexports.getFavicon = getFavicon;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getProgressIcon = void 0;\nconst api_1 = require(\"@raycast/api\");\nfunction polarToCartesian(centerX, centerY, radius, angleInDegrees) {\n const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180.0;\n return {\n x: centerX + radius * Math.cos(angleInRadians),\n y: centerY + radius * Math.sin(angleInRadians),\n };\n}\nfunction describeArc(x, y, radius, startAngle, endAngle) {\n const start = polarToCartesian(x, y, radius, endAngle);\n const end = polarToCartesian(x, y, radius, startAngle);\n const largeArcFlag = endAngle - startAngle <= 180 ? \"0\" : \"1\";\n const d = [\"M\", start.x, start.y, \"A\", radius, radius, 0, largeArcFlag, 0, end.x, end.y].join(\" \");\n return d;\n}\n/**\n * Icon to represent the progress of _something_.\n *\n * @param progress Number between 0 and 1.\n * @param color Hex color (default `\"#FF6363\"`) or Color.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getProgressIcon(0.1)} title=\"Project\" />\n * ```\n */\nfunction getProgressIcon(progress, color = api_1.Color.Red, options) {\n const background = options?.background || (api_1.environment.appearance === \"light\" ? \"black\" : \"white\");\n const backgroundOpacity = options?.backgroundOpacity || 0.1;\n const stroke = 10;\n const padding = 5;\n const radius = 50 - padding - stroke / 2;\n const svg = `<svg width=\"100px\" height=\"100px\">\n <circle cx=\"50\" cy=\"50\" r=\"${radius}\" stroke-width=\"${stroke}\" stroke=\"${progress < 1 ? background : color}\" opacity=\"${progress < 1 ? backgroundOpacity : \"1\"}\" fill=\"none\" />\n ${progress > 0 && progress < 1\n ? `<path d=\"${describeArc(50, 50, radius, 0, progress * 360)}\" stroke=\"${color}\" stroke-width=\"${stroke}\" fill=\"none\" />`\n : \"\"}\n </svg>\n `.replaceAll(\"\\n\", \"\");\n return `data:image/svg+xml,${svg}`;\n}\nexports.getProgressIcon = getProgressIcon;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./avatar\"), exports);\n__exportStar(require(\"./favicon\"), exports);\n__exportStar(require(\"./progress\"), exports);\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.runAppleScript = void 0;\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst exec_utils_1 = require(\"./exec-utils\");\nasync function runAppleScript(script, optionsOrArgs, options) {\n const { humanReadableOutput, language, timeout, ...execOptions } = Array.isArray(optionsOrArgs)\n ? options || {}\n : optionsOrArgs || {};\n const outputArguments = humanReadableOutput !== false ? [] : [\"-ss\"];\n if (language === \"JavaScript\") {\n outputArguments.push(\"-l\", \"JavaScript\");\n }\n if (Array.isArray(optionsOrArgs)) {\n outputArguments.push(\"-\", ...optionsOrArgs);\n }\n const spawned = node_child_process_1.default.spawn(\"osascript\", outputArguments, {\n ...execOptions,\n env: { PATH: \"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\" },\n });\n const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned, { timeout: timeout || 10000 });\n spawned.stdin.end(script);\n const [{ error, exitCode, signal, timedOut }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf8\" }, spawnedPromise);\n const stdout = (0, exec_utils_1.handleOutput)({ stripFinalNewline: true }, stdoutResult);\n const stderr = (0, exec_utils_1.handleOutput)({ stripFinalNewline: true }, stderrResult);\n return (0, exec_utils_1.defaultParsing)({\n stdout,\n stderr,\n error,\n exitCode,\n signal,\n timedOut,\n command: \"osascript\",\n options,\n parentError: new Error(),\n });\n}\nexports.runAppleScript = runAppleScript;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./usePromise\"), exports);\n__exportStar(require(\"./useCachedState\"), exports);\n__exportStar(require(\"./useCachedPromise\"), exports);\n__exportStar(require(\"./useFetch\"), exports);\n__exportStar(require(\"./useExec\"), exports);\n__exportStar(require(\"./useSQL\"), exports);\n__exportStar(require(\"./useForm\"), exports);\n__exportStar(require(\"./useAI\"), exports);\n__exportStar(require(\"./useFrecencySorting\"), exports);\n__exportStar(require(\"./icon\"), exports);\n__exportStar(require(\"./run-applescript\"), exports);\n", "module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size')\n}\n", "'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseExceededMaxSizeError)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\n\nconst [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v))\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n return url\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.')\n }\n\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n if (!(url instanceof URL)) {\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substr(1, idx - 1)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substr(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (!isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\nfunction parseHeaders (headers, obj = {}) {\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1]\n } else {\n obj[key] = headers[i + 1].toString('utf8')\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString('utf8'))\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if ('content-length' in obj && 'content-disposition' in obj) {\n obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1')\n }\n\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n const ret = []\n let hasContentLength = false\n let contentDispositionIdx = -1\n\n for (let n = 0; n < headers.length; n += 2) {\n const key = headers[n + 0].toString()\n const val = headers[n + 1].toString('utf8')\n\n if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n ret.push(key, val)\n hasContentLength = true\n } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n contentDispositionIdx = ret.push(key, val) - 1\n } else {\n ret.push(key, val)\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if (hasContentLength && contentDispositionIdx !== -1) {\n ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1')\n }\n\n return ret\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n // https://github.com/whatwg/streams/pull/1083\n return ReadableStream.from(iterable)\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.append === 'function' &&\n typeof object.delete === 'function' &&\n typeof object.get === 'function' &&\n typeof object.getAll === 'function' &&\n typeof object.has === 'function' &&\n typeof object.set === 'function' &&\n object[Symbol.toStringTag] === 'FormData'\n )\n}\n\nfunction throwIfAborted (signal) {\n if (!signal) { return }\n if (typeof signal.throwIfAborted === 'function') {\n signal.throwIfAborted()\n } else {\n if (signal.aborted) {\n // DOMException not available < v17.0.0\n const err = new Error('The operation was aborted')\n err.name = 'AbortError'\n throw err\n }\n }\n}\n\nlet events\nfunction addAbortListener (signal, listener) {\n if (typeof Symbol.dispose === 'symbol') {\n if (!events) {\n events = require('events')\n }\n if (typeof events.addAbortListener === 'function' && 'aborted' in signal) {\n return events.addAbortListener(signal, listener)\n }\n }\n if ('addEventListener' in signal) {\n signal.addEventListener('abort', listener, { once: true })\n return () => signal.removeEventListener('abort', listener)\n }\n signal.addListener('abort', listener)\n return () => signal.removeListener('abort', listener)\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed\n\n/**\n * @param {string} val\n */\nfunction toUSVString (val) {\n if (hasToWellFormed) {\n return `${val}`.toWellFormed()\n } else if (nodeUtil.toUSVString) {\n return nodeUtil.toUSVString(val)\n }\n\n return `${val}`\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString,\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL,\n throwIfAborted,\n addAbortListener,\n nodeMajor,\n nodeMinor,\n nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13)\n}\n", "'use strict'\n\nlet fastNow = Date.now()\nlet fastNowTimeout\n\nconst fastTimers = []\n\nfunction onTimeout () {\n fastNow = Date.now()\n\n let len = fastTimers.length\n let idx = 0\n while (idx < len) {\n const timer = fastTimers[idx]\n\n if (timer.state === 0) {\n timer.state = fastNow + timer.delay\n } else if (timer.state > 0 && fastNow >= timer.state) {\n timer.state = -1\n timer.callback(timer.opaque)\n }\n\n if (timer.state === -1) {\n timer.state = -2\n if (idx !== len - 1) {\n fastTimers[idx] = fastTimers.pop()\n } else {\n fastTimers.pop()\n }\n len -= 1\n } else {\n idx += 1\n }\n }\n\n if (fastTimers.length > 0) {\n refreshTimeout()\n }\n}\n\nfunction refreshTimeout () {\n if (fastNowTimeout && fastNowTimeout.refresh) {\n fastNowTimeout.refresh()\n } else {\n clearTimeout(fastNowTimeout)\n fastNowTimeout = setTimeout(onTimeout, 1e3)\n if (fastNowTimeout.unref) {\n fastNowTimeout.unref()\n }\n }\n}\n\nclass Timeout {\n constructor (callback, delay, opaque) {\n this.callback = callback\n this.delay = delay\n this.opaque = opaque\n\n // -2 not in timer list\n // -1 in timer list but inactive\n // 0 in timer list waiting for time\n // > 0 in timer list waiting for time to expire\n this.state = -2\n\n this.refresh()\n }\n\n refresh () {\n if (this.state === -2) {\n fastTimers.push(this)\n if (!fastNowTimeout || fastTimers.length === 1) {\n refreshTimeout()\n }\n }\n\n this.state = 0\n }\n\n clear () {\n this.state = -1\n }\n}\n\nmodule.exports = {\n setTimeout (callback, delay, opaque) {\n return delay < 1e3\n ? setTimeout(callback, delay, opaque)\n : new Timeout(callback, delay, opaque)\n },\n clearTimeout (timeout) {\n if (timeout instanceof Timeout) {\n timeout.clear()\n } else {\n clearTimeout(timeout)\n }\n }\n}\n", "'use strict';\n\nfunction parseContentType(str) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n // Parse type\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 47/* '/' */ || i === 0)\n return;\n break;\n }\n }\n // Check for type without subtype\n if (i === str.length)\n return;\n\n const type = str.slice(0, i).toLowerCase();\n\n // Parse subtype\n const subtypeStart = ++i;\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n if (parseContentTypeParams(str, i, params) === undefined)\n return;\n break;\n }\n }\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n const subtype = str.slice(subtypeStart, i).toLowerCase();\n\n return { type, subtype, params };\n}\n\nfunction parseContentTypeParams(str, i, params) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 61/* '=' */)\n return;\n break;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n name = str.slice(nameStart, i);\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction parseDisposition(str, defDecoder) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (parseDispositionParams(str, i, params, defDecoder) === undefined)\n return;\n break;\n }\n }\n\n const type = str.slice(0, i).toLowerCase();\n\n return { type, params };\n}\n\nfunction parseDispositionParams(str, i, params, defDecoder) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code === 61/* '=' */)\n break;\n return;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n let charset;\n //~ let lang;\n name = str.slice(nameStart, i);\n if (name.charCodeAt(name.length - 1) === 42/* '*' */) {\n // Extended value\n\n const charsetStart = ++i;\n // Parse charset name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (CHARSET[code] !== 1) {\n if (code !== 39/* '\\'' */)\n return;\n break;\n }\n }\n\n // Incomplete charset (malformed)\n if (i === str.length)\n return;\n\n charset = str.slice(charsetStart, i);\n ++i; // Skip over the '\\''\n\n //~ const langStart = ++i;\n // Parse language name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 39/* '\\'' */)\n break;\n }\n\n // Incomplete language (malformed)\n if (i === str.length)\n return;\n\n //~ lang = str.slice(langStart, i);\n ++i; // Skip over the '\\''\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n valueStart = i;\n\n let encode = 0;\n // Parse value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (EXTENDED_VALUE[code] !== 1) {\n if (code === 37/* '%' */) {\n let hexUpper;\n let hexLower;\n if (i + 2 < str.length\n && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1\n && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) {\n const byteVal = (hexUpper << 4) + hexLower;\n value += str.slice(valueStart, i);\n value += String.fromCharCode(byteVal);\n i += 2;\n valueStart = i + 1;\n if (byteVal >= 128)\n encode = 2;\n else if (encode === 0)\n encode = 1;\n continue;\n }\n // '%' disallowed in non-percent encoded contexts (malformed)\n return;\n }\n break;\n }\n }\n\n value += str.slice(valueStart, i);\n value = convertToUTF8(value, charset, encode);\n if (value === undefined)\n return;\n } else {\n // Non-extended value\n\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n value = defDecoder(value, 2);\n if (value === undefined)\n return;\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction getDecoder(charset) {\n let lc;\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8;\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1;\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le;\n case 'base64':\n return decoders.base64;\n default:\n if (lc === undefined) {\n lc = true;\n charset = charset.toLowerCase();\n continue;\n }\n return decoders.other.bind(charset);\n }\n }\n}\n\nconst decoders = {\n utf8: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string') {\n // If `data` never had any percent-encoded bytes or never had any that\n // were outside of the ASCII range, then we can safely just return the\n // input since UTF-8 is ASCII compatible\n if (hint < 2)\n return data;\n\n data = Buffer.from(data, 'latin1');\n }\n return data.utf8Slice(0, data.length);\n },\n\n latin1: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n return data;\n return data.latin1Slice(0, data.length);\n },\n\n utf16le: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.ucs2Slice(0, data.length);\n },\n\n base64: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.base64Slice(0, data.length);\n },\n\n other: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n try {\n const decoder = new TextDecoder(this);\n return decoder.decode(data);\n } catch {}\n },\n};\n\nfunction convertToUTF8(data, charset, hint) {\n const decode = getDecoder(charset);\n if (decode)\n return decode(data, hint);\n}\n\nfunction basename(path) {\n if (typeof path !== 'string')\n return '';\n for (let i = path.length - 1; i >= 0; --i) {\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1);\n return (path === '..' || path === '.' ? '' : path);\n }\n }\n return (path === '..' || path === '.' ? '' : path);\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst QDTEXT = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nconst CHARSET = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst EXTENDED_VALUE = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n};\n", "'use strict';\n/*\n Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n*/\nfunction memcmp(buf1, pos1, buf2, pos2, num) {\n for (let i = 0; i < num; ++i) {\n if (buf1[pos1 + i] !== buf2[pos2 + i])\n return false;\n }\n return true;\n}\n\nclass SBMH {\n constructor(needle, cb) {\n if (typeof cb !== 'function')\n throw new Error('Missing match callback');\n\n if (typeof needle === 'string')\n needle = Buffer.from(needle);\n else if (!Buffer.isBuffer(needle))\n throw new Error(`Expected Buffer for needle, got ${typeof needle}`);\n\n const needleLen = needle.length;\n\n this.maxMatches = Infinity;\n this.matches = 0;\n\n this._cb = cb;\n this._lookbehindSize = 0;\n this._needle = needle;\n this._bufPos = 0;\n\n this._lookbehind = Buffer.allocUnsafe(needleLen);\n\n // Initialize occurrence table.\n this._occ = [\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen, needleLen, needleLen,\n needleLen, needleLen, needleLen, needleLen\n ];\n\n // Populate occurrence table with analysis of the needle, ignoring the last\n // letter.\n if (needleLen > 1) {\n for (let i = 0; i < needleLen - 1; ++i)\n this._occ[needle[i]] = needleLen - 1 - i;\n }\n }\n\n reset() {\n this.matches = 0;\n this._lookbehindSize = 0;\n this._bufPos = 0;\n }\n\n push(chunk, pos) {\n let result;\n if (!Buffer.isBuffer(chunk))\n chunk = Buffer.from(chunk, 'latin1');\n const chunkLen = chunk.length;\n this._bufPos = pos || 0;\n while (result !== chunkLen && this.matches < this.maxMatches)\n result = feed(this, chunk);\n return result;\n }\n\n destroy() {\n const lbSize = this._lookbehindSize;\n if (lbSize)\n this._cb(false, this._lookbehind, 0, lbSize, false);\n this.reset();\n }\n}\n\nfunction feed(self, data) {\n const len = data.length;\n const needle = self._needle;\n const needleLen = needle.length;\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehindSize - 2]\n let pos = -self._lookbehindSize;\n const lastNeedleCharPos = needleLen - 1;\n const lastNeedleChar = needle[lastNeedleCharPos];\n const end = len - needleLen;\n const occ = self._occ;\n const lookbehind = self._lookbehind;\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= end) {\n const nextPos = pos + lastNeedleCharPos;\n const ch = (nextPos < 0\n ? lookbehind[self._lookbehindSize + nextPos]\n : data[nextPos]);\n\n if (ch === lastNeedleChar\n && matchNeedle(self, data, pos, lastNeedleCharPos)) {\n self._lookbehindSize = 0;\n ++self.matches;\n if (pos > -self._lookbehindSize)\n self._cb(true, lookbehind, 0, self._lookbehindSize + pos, false);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // No match.\n\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !matchNeedle(self, data, pos, len - pos))\n ++pos;\n\n if (pos < 0) {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = self._lookbehindSize + pos;\n\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n self._cb(false, lookbehind, 0, bytesToCutOff, false);\n }\n\n self._lookbehindSize -= bytesToCutOff;\n lookbehind.copy(lookbehind, 0, bytesToCutOff, self._lookbehindSize);\n lookbehind.set(data, self._lookbehindSize);\n self._lookbehindSize += len;\n\n self._bufPos = len;\n return len;\n }\n\n // Discard lookbehind buffer.\n self._cb(false, lookbehind, 0, self._lookbehindSize, false);\n self._lookbehindSize = 0;\n }\n\n pos += self._bufPos;\n\n const firstNeedleChar = needle[0];\n\n // Lookbehind buffer is now empty. Perform Boyer-Moore-Horspool\n // search with optimized character lookup code that only considers\n // the current round's haystack data.\n while (pos <= end) {\n const ch = data[pos + lastNeedleCharPos];\n\n if (ch === lastNeedleChar\n && data[pos] === firstNeedleChar\n && memcmp(needle, 0, data, pos, lastNeedleCharPos)) {\n ++self.matches;\n if (pos > 0)\n self._cb(true, data, self._bufPos, pos, true);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (pos < len) {\n if (data[pos] !== firstNeedleChar\n || !memcmp(data, pos, needle, 0, len - pos)) {\n ++pos;\n continue;\n }\n data.copy(lookbehind, 0, pos, len);\n self._lookbehindSize = len - pos;\n break;\n }\n\n // Everything until `pos` is guaranteed not to contain needle data.\n if (pos > 0)\n self._cb(false, data, self._bufPos, pos < len ? pos : len, true);\n\n self._bufPos = len;\n return len;\n}\n\nfunction matchNeedle(self, data, pos, len) {\n const lb = self._lookbehind;\n const lbSize = self._lookbehindSize;\n const needle = self._needle;\n\n for (let i = 0; i < len; ++i, ++pos) {\n const ch = (pos < 0 ? lb[lbSize + pos] : data[pos]);\n if (ch !== needle[i])\n return false;\n }\n return true;\n}\n\nmodule.exports = SBMH;\n", "'use strict';\n\nconst { Readable, Writable } = require('stream');\n\nconst StreamSearch = require('streamsearch');\n\nconst {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n} = require('../utils.js');\n\nconst BUF_CRLF = Buffer.from('\\r\\n');\nconst BUF_CR = Buffer.from('\\r');\nconst BUF_DASH = Buffer.from('-');\n\nfunction noop() {}\n\nconst MAX_HEADER_PAIRS = 2000; // From node\nconst MAX_HEADER_SIZE = 16 * 1024; // From node (its default value)\n\nconst HPARSER_NAME = 0;\nconst HPARSER_PRE_OWS = 1;\nconst HPARSER_VALUE = 2;\nclass HeaderParser {\n constructor(cb) {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n this.cb = cb;\n }\n\n reset() {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n }\n\n push(chunk, pos, end) {\n let start = pos;\n while (pos < end) {\n switch (this.state) {\n case HPARSER_NAME: {\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (TOKEN[code] !== 1) {\n if (code !== 58/* ':' */)\n return -1;\n this.name += chunk.latin1Slice(start, pos);\n if (this.name.length === 0)\n return -1;\n ++pos;\n done = true;\n this.state = HPARSER_PRE_OWS;\n break;\n }\n }\n if (!done) {\n this.name += chunk.latin1Slice(start, pos);\n break;\n }\n // FALLTHROUGH\n }\n case HPARSER_PRE_OWS: {\n // Skip optional whitespace\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */) {\n start = pos;\n done = true;\n this.state = HPARSER_VALUE;\n break;\n }\n }\n if (!done)\n break;\n // FALLTHROUGH\n }\n case HPARSER_VALUE:\n switch (this.crlf) {\n case 0: // Nothing yet\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (FIELD_VCHAR[code] !== 1) {\n if (code !== 13/* '\\r' */)\n return -1;\n ++this.crlf;\n break;\n }\n }\n this.value += chunk.latin1Slice(start, pos++);\n break;\n case 1: // Received CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n ++this.crlf;\n break;\n case 2: { // Received CR LF\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code === 32/* ' ' */ || code === 9/* '\\t' */) {\n // Folded value\n start = pos;\n this.crlf = 0;\n } else {\n if (++this.pairCount < MAX_HEADER_PAIRS) {\n this.name = this.name.toLowerCase();\n if (this.header[this.name] === undefined)\n this.header[this.name] = [this.value];\n else\n this.header[this.name].push(this.value);\n }\n if (code === 13/* '\\r' */) {\n ++this.crlf;\n ++pos;\n } else {\n // Assume start of next header field name\n start = pos;\n this.crlf = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n }\n }\n break;\n }\n case 3: { // Received CR LF CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n // End of header\n const header = this.header;\n this.reset();\n this.cb(header);\n return pos;\n }\n }\n break;\n }\n }\n\n return pos;\n }\n}\n\nclass FileStream extends Readable {\n constructor(opts, owner) {\n super(opts);\n this.truncated = false;\n this._readcb = null;\n this.once('end', () => {\n // We need to make sure that we call any outstanding _writecb() that is\n // associated with this file so that processing of the rest of the form\n // can continue. This may not happen if the file stream ends right after\n // backpressure kicks in, so we force it here.\n this._read();\n if (--owner._fileEndsLeft === 0 && owner._finalcb) {\n const cb = owner._finalcb;\n owner._finalcb = null;\n // Make sure other 'end' event handlers get a chance to be executed\n // before busboy's 'finish' event is emitted\n process.nextTick(cb);\n }\n });\n }\n _read(n) {\n const cb = this._readcb;\n if (cb) {\n this._readcb = null;\n cb();\n }\n }\n}\n\nconst ignoreData = {\n push: (chunk, pos) => {},\n destroy: () => {},\n};\n\nfunction callAndUnsetCb(self, err) {\n const cb = self._writecb;\n self._writecb = null;\n if (err)\n self.destroy(err);\n else if (cb)\n cb();\n}\n\nfunction nullDecoder(val, hint) {\n return val;\n}\n\nclass Multipart extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n if (!cfg.conType.params || typeof cfg.conType.params.boundary !== 'string')\n throw new Error('Multipart: Boundary not found');\n\n const boundary = cfg.conType.params.boundary;\n const paramDecoder = (typeof cfg.defParamCharset === 'string'\n && cfg.defParamCharset\n ? getDecoder(cfg.defParamCharset)\n : nullDecoder);\n const defCharset = (cfg.defCharset || 'utf8');\n const preservePath = cfg.preservePath;\n const fileOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.fileHwm === 'number'\n ? cfg.fileHwm\n : undefined),\n };\n\n const limits = cfg.limits;\n const fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n const fileSizeLimit = (limits && typeof limits.fileSize === 'number'\n ? limits.fileSize\n : Infinity);\n const filesLimit = (limits && typeof limits.files === 'number'\n ? limits.files\n : Infinity);\n const fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n const partsLimit = (limits && typeof limits.parts === 'number'\n ? limits.parts\n : Infinity);\n\n let parts = -1; // Account for initial boundary\n let fields = 0;\n let files = 0;\n let skipPart = false;\n\n this._fileEndsLeft = 0;\n this._fileStream = undefined;\n this._complete = false;\n let fileSize = 0;\n\n let field;\n let fieldSize = 0;\n let partCharset;\n let partEncoding;\n let partType;\n let partName;\n let partTruncated = false;\n\n let hitFilesLimit = false;\n let hitFieldsLimit = false;\n\n this._hparser = null;\n const hparser = new HeaderParser((header) => {\n this._hparser = null;\n skipPart = false;\n\n partType = 'text/plain';\n partCharset = defCharset;\n partEncoding = '7bit';\n partName = undefined;\n partTruncated = false;\n\n let filename;\n if (!header['content-disposition']) {\n skipPart = true;\n return;\n }\n\n const disp = parseDisposition(header['content-disposition'][0],\n paramDecoder);\n if (!disp || disp.type !== 'form-data') {\n skipPart = true;\n return;\n }\n\n if (disp.params) {\n if (disp.params.name)\n partName = disp.params.name;\n\n if (disp.params['filename*'])\n filename = disp.params['filename*'];\n else if (disp.params.filename)\n filename = disp.params.filename;\n\n if (filename !== undefined && !preservePath)\n filename = basename(filename);\n }\n\n if (header['content-type']) {\n const conType = parseContentType(header['content-type'][0]);\n if (conType) {\n partType = `${conType.type}/${conType.subtype}`;\n if (conType.params && typeof conType.params.charset === 'string')\n partCharset = conType.params.charset.toLowerCase();\n }\n }\n\n if (header['content-transfer-encoding'])\n partEncoding = header['content-transfer-encoding'][0].toLowerCase();\n\n if (partType === 'application/octet-stream' || filename !== undefined) {\n // File\n\n if (files === filesLimit) {\n if (!hitFilesLimit) {\n hitFilesLimit = true;\n this.emit('filesLimit');\n }\n skipPart = true;\n return;\n }\n ++files;\n\n if (this.listenerCount('file') === 0) {\n skipPart = true;\n return;\n }\n\n fileSize = 0;\n this._fileStream = new FileStream(fileOpts, this);\n ++this._fileEndsLeft;\n this.emit(\n 'file',\n partName,\n this._fileStream,\n { filename,\n encoding: partEncoding,\n mimeType: partType }\n );\n } else {\n // Non-file\n\n if (fields === fieldsLimit) {\n if (!hitFieldsLimit) {\n hitFieldsLimit = true;\n this.emit('fieldsLimit');\n }\n skipPart = true;\n return;\n }\n ++fields;\n\n if (this.listenerCount('field') === 0) {\n skipPart = true;\n return;\n }\n\n field = [];\n fieldSize = 0;\n }\n });\n\n let matchPostBoundary = 0;\n const ssCb = (isMatch, data, start, end, isDataSafe) => {\nretrydata:\n while (data) {\n if (this._hparser !== null) {\n const ret = this._hparser.push(data, start, end);\n if (ret === -1) {\n this._hparser = null;\n hparser.reset();\n this.emit('error', new Error('Malformed part header'));\n break;\n }\n start = ret;\n }\n\n if (start === end)\n break;\n\n if (matchPostBoundary !== 0) {\n if (matchPostBoundary === 1) {\n switch (data[start]) {\n case 45: // '-'\n // Try matching '--' after boundary\n matchPostBoundary = 2;\n ++start;\n break;\n case 13: // '\\r'\n // Try matching CR LF before header\n matchPostBoundary = 3;\n ++start;\n break;\n default:\n matchPostBoundary = 0;\n }\n if (start === end)\n return;\n }\n\n if (matchPostBoundary === 2) {\n matchPostBoundary = 0;\n if (data[start] === 45/* '-' */) {\n // End of multipart data\n this._complete = true;\n this._bparser = ignoreData;\n return;\n }\n // We saw something other than '-', so put the dash we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_DASH, 0, 1, false);\n this._writecb = writecb;\n } else if (matchPostBoundary === 3) {\n matchPostBoundary = 0;\n if (data[start] === 10/* '\\n' */) {\n ++start;\n if (parts >= partsLimit)\n break;\n // Prepare the header parser\n this._hparser = hparser;\n if (start === end)\n break;\n // Process the remaining data as a header\n continue retrydata;\n } else {\n // We saw something other than LF, so put the CR we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_CR, 0, 1, false);\n this._writecb = writecb;\n }\n }\n }\n\n if (!skipPart) {\n if (this._fileStream) {\n let chunk;\n const actualLen = Math.min(end - start, fileSizeLimit - fileSize);\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fileSize += chunk.length;\n if (fileSize === fileSizeLimit) {\n if (chunk.length > 0)\n this._fileStream.push(chunk);\n this._fileStream.emit('limit');\n this._fileStream.truncated = true;\n skipPart = true;\n } else if (!this._fileStream.push(chunk)) {\n if (this._writecb)\n this._fileStream._readcb = this._writecb;\n this._writecb = null;\n }\n } else if (field !== undefined) {\n let chunk;\n const actualLen = Math.min(\n end - start,\n fieldSizeLimit - fieldSize\n );\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fieldSize += actualLen;\n field.push(chunk);\n if (fieldSize === fieldSizeLimit) {\n skipPart = true;\n partTruncated = true;\n }\n }\n }\n\n break;\n }\n\n if (isMatch) {\n matchPostBoundary = 1;\n\n if (this._fileStream) {\n // End the active file stream if the previous part was a file\n this._fileStream.push(null);\n this._fileStream = null;\n } else if (field !== undefined) {\n let data;\n switch (field.length) {\n case 0:\n data = '';\n break;\n case 1:\n data = convertToUTF8(field[0], partCharset, 0);\n break;\n default:\n data = convertToUTF8(\n Buffer.concat(field, fieldSize),\n partCharset,\n 0\n );\n }\n field = undefined;\n fieldSize = 0;\n this.emit(\n 'field',\n partName,\n data,\n { nameTruncated: false,\n valueTruncated: partTruncated,\n encoding: partEncoding,\n mimeType: partType }\n );\n }\n\n if (++parts === partsLimit)\n this.emit('partsLimit');\n }\n };\n this._bparser = new StreamSearch(`\\r\\n--${boundary}`, ssCb);\n\n this._writecb = null;\n this._finalcb = null;\n\n // Just in case there is no preamble\n this.write(BUF_CRLF);\n }\n\n static detect(conType) {\n return (conType.type === 'multipart' && conType.subtype === 'form-data');\n }\n\n _write(chunk, enc, cb) {\n this._writecb = cb;\n this._bparser.push(chunk, 0);\n if (this._writecb)\n callAndUnsetCb(this);\n }\n\n _destroy(err, cb) {\n this._hparser = null;\n this._bparser = ignoreData;\n if (!err)\n err = checkEndState(this);\n const fileStream = this._fileStream;\n if (fileStream) {\n this._fileStream = null;\n fileStream.destroy(err);\n }\n cb(err);\n }\n\n _final(cb) {\n this._bparser.destroy();\n if (!this._complete)\n return cb(new Error('Unexpected end of form'));\n if (this._fileEndsLeft)\n this._finalcb = finalcb.bind(null, this, cb);\n else\n finalcb(this, cb);\n }\n}\n\nfunction finalcb(self, cb, err) {\n if (err)\n return cb(err);\n err = checkEndState(self);\n cb(err);\n}\n\nfunction checkEndState(self) {\n if (self._hparser)\n return new Error('Malformed part header');\n const fileStream = self._fileStream;\n if (fileStream) {\n self._fileStream = null;\n fileStream.destroy(new Error('Unexpected end of file'));\n }\n if (!self._complete)\n return new Error('Unexpected end of form');\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst FIELD_VCHAR = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nmodule.exports = Multipart;\n", "'use strict';\n\nconst { Writable } = require('stream');\n\nconst { getDecoder } = require('../utils.js');\n\nclass URLEncoded extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n let charset = (cfg.defCharset || 'utf8');\n if (cfg.conType.params && typeof cfg.conType.params.charset === 'string')\n charset = cfg.conType.params.charset;\n\n this.charset = charset;\n\n const limits = cfg.limits;\n this.fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n this.fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n this.fieldNameSizeLimit = (\n limits && typeof limits.fieldNameSize === 'number'\n ? limits.fieldNameSize\n : 100\n );\n\n this._inKey = true;\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n this._fields = 0;\n this._key = '';\n this._val = '';\n this._byte = -2;\n this._lastPos = 0;\n this._encode = 0;\n this._decoder = getDecoder(charset);\n }\n\n static detect(conType) {\n return (conType.type === 'application'\n && conType.subtype === 'x-www-form-urlencoded');\n }\n\n _write(chunk, enc, cb) {\n if (this._fields >= this.fieldsLimit)\n return cb();\n\n let i = 0;\n const len = chunk.length;\n this._lastPos = 0;\n\n // Check if we last ended mid-percent-encoded byte\n if (this._byte !== -2) {\n i = readPctEnc(this, chunk, i, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n if (this._inKey)\n ++this._bytesKey;\n else\n ++this._bytesVal;\n }\n\nmain:\n while (i < len) {\n if (this._inKey) {\n // Parsing key\n\n i = skipKeyBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 61: // '='\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n this._inKey = false;\n continue main;\n case 38: // '&'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0) {\n this.emit(\n 'field',\n this._key,\n '',\n { nameTruncated: this._keyTrunc,\n valueTruncated: false,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue;\n case 43: // '+'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._key += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n } else {\n // Parsing value\n\n i = skipValBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 38: // '&'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._inKey = true;\n this._val = this._decoder(this._val, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0 || this._bytesVal > 0) {\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue main;\n case 43: // '+'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._val += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n }\n }\n\n cb();\n }\n\n _final(cb) {\n if (this._byte !== -2)\n return cb(new Error('Malformed urlencoded form'));\n if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) {\n if (this._inKey)\n this._key = this._decoder(this._key, this._encode);\n else\n this._val = this._decoder(this._val, this._encode);\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n cb();\n }\n}\n\nfunction readPctEnc(self, chunk, pos, len) {\n if (pos >= len)\n return len;\n\n if (self._byte === -1) {\n // We saw a '%' but no hex characters yet\n const hexUpper = HEX_VALUES[chunk[pos++]];\n if (hexUpper === -1)\n return -1;\n\n if (hexUpper >= 8)\n self._encode = 2; // Indicate high bits detected\n\n if (pos < len) {\n // Both hex characters are in this chunk\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((hexUpper << 4) + hexLower);\n else\n self._val += String.fromCharCode((hexUpper << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n } else {\n // Only one hex character was available in this chunk\n self._byte = hexUpper;\n }\n } else {\n // We saw only one hex character so far\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((self._byte << 4) + hexLower);\n else\n self._val += String.fromCharCode((self._byte << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipKeyBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesKey > self.fieldNameSizeLimit) {\n if (!self._keyTrunc) {\n if (self._lastPos < pos)\n self._key += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._keyTrunc = true;\n for (; pos < len; ++pos) {\n const code = chunk[pos];\n if (code === 61/* '=' */ || code === 38/* '&' */)\n break;\n ++self._bytesKey;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipValBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesVal > self.fieldSizeLimit) {\n if (!self._valTrunc) {\n if (self._lastPos < pos)\n self._val += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._valTrunc = true;\n for (; pos < len; ++pos) {\n if (chunk[pos] === 38/* '&' */)\n break;\n ++self._bytesVal;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = URLEncoded;\n", "'use strict';\n\nconst { parseContentType } = require('./utils.js');\n\nfunction getInstance(cfg) {\n const headers = cfg.headers;\n const conType = parseContentType(headers['content-type']);\n if (!conType)\n throw new Error('Malformed content type');\n\n for (const type of TYPES) {\n const matched = type.detect(conType);\n if (!matched)\n continue;\n\n const instanceCfg = {\n limits: cfg.limits,\n headers,\n conType,\n highWaterMark: undefined,\n fileHwm: undefined,\n defCharset: undefined,\n defParamCharset: undefined,\n preservePath: false,\n };\n if (cfg.highWaterMark)\n instanceCfg.highWaterMark = cfg.highWaterMark;\n if (cfg.fileHwm)\n instanceCfg.fileHwm = cfg.fileHwm;\n instanceCfg.defCharset = cfg.defCharset;\n instanceCfg.defParamCharset = cfg.defParamCharset;\n instanceCfg.preservePath = cfg.preservePath;\n return new type(instanceCfg);\n }\n\n throw new Error(`Unsupported content type: ${headers['content-type']}`);\n}\n\n// Note: types are explicitly listed here for easier bundling\n// See: https://github.com/mscdex/busboy/issues/121\nconst TYPES = [\n require('./types/multipart'),\n require('./types/urlencoded'),\n].filter(function(typemod) { return typeof typemod.detect === 'function'; });\n\nmodule.exports = (cfg) => {\n if (typeof cfg !== 'object' || cfg === null)\n cfg = {};\n\n if (typeof cfg.headers !== 'object'\n || cfg.headers === null\n || typeof cfg.headers['content-type'] !== 'string') {\n throw new Error('Missing Content-Type');\n }\n\n return getInstance(cfg);\n};\n", "'use strict'\n\nconst { MessageChannel, receiveMessageOnPort } = require('worker_threads')\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\n// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\n// https://fetch.spec.whatwg.org/#request-body-header-name\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type',\n // See https://github.com/nodejs/undici/issues/2021\n // 'Content-Length' is a forbidden header name, which is typically\n // removed in the Headers implementation. However, undici doesn't\n // filter out headers, so we add it here.\n 'content-length'\n]\n\n// https://fetch.spec.whatwg.org/#enumdef-requestduplex\nconst requestDuplex = [\n 'half'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nlet channel\n\n/** @type {globalThis['structuredClone']} */\nconst structuredClone =\n globalThis.structuredClone ??\n // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n // structuredClone was added in v17.0.0, but fetch supports v16.8\n function structuredClone (value, options = undefined) {\n if (arguments.length === 0) {\n throw new TypeError('missing argument')\n }\n\n if (!channel) {\n channel = new MessageChannel()\n }\n channel.port1.unref()\n channel.port2.unref()\n channel.port1.postMessage(value, options?.transfer)\n return receiveMessageOnPort(channel.port2).message\n }\n\nmodule.exports = {\n DOMException,\n structuredClone,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods,\n badPorts,\n requestDuplex\n}\n", "'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (\n newOrigin !== undefined &&\n typeof newOrigin !== 'string' &&\n !(newOrigin instanceof URL)\n ) {\n throw new Error('Invalid base url')\n }\n\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n", "'use strict'\n\nconst { redirectStatus, badPorts, referrerPolicy: referrerPolicyTokens } = require('./constants')\nconst { getGlobalOrigin } = require('./global')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response\u2019s URL list and null if response\u2019s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response\u2019s status is not a redirect status, then return null.\n if (!redirectStatus.includes(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response\u2019s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a header value, then set location to the result of\n // parsing location with response\u2019s URL.\n if (location !== null && isValidHeaderValue(location)) {\n location = new URL(location, responseURL(response))\n }\n\n // 4. If location is a URL whose fragment is null, then set location\u2019s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request\u2019s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url\u2019s scheme is an HTTP(S) scheme and url\u2019s port is a bad port,\n // then return blocked.\n if (urlIsHttpHttpsScheme(url) && badPorts.includes(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\nfunction isTokenChar (c) {\n return !(\n c >= 0x7f ||\n c <= 0x20 ||\n c === '(' ||\n c === ')' ||\n c === '<' ||\n c === '>' ||\n c === '@' ||\n c === ',' ||\n c === ';' ||\n c === ':' ||\n c === '\\\\' ||\n c === '\"' ||\n c === '/' ||\n c === '[' ||\n c === ']' ||\n c === '?' ||\n c === '=' ||\n c === '{' ||\n c === '}'\n )\n}\n\n// See RFC 7230, Section 3.2.6.\n// https://github.com/chromium/chromium/blob/d7da0240cae77824d1eda25745c4022757499131/third_party/blink/renderer/platform/network/http_parsers.cc#L321\nfunction isValidHTTPToken (characters) {\n if (!characters || typeof characters !== 'string') {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n const c = characters.charCodeAt(i)\n if (c > 0x7f || !isTokenChar(c)) {\n return false\n }\n }\n return true\n}\n\n// https://fetch.spec.whatwg.org/#header-name\n// https://github.com/chromium/chromium/blob/b3d37e6f94f87d59e44662d6078f6a12de845d17/net/http/http_util.cc#L342\nfunction isValidHeaderName (potentialValue) {\n if (potentialValue.length === 0) {\n return false\n }\n\n return isValidHTTPToken(potentialValue)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request\u2019s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing \u00A7 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n\n // 8.1 Parse a referrer policy from a Referrer-Policy header\n // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response\u2019s header list.\n const { headersList } = actualResponse\n // 2. Let policy be the empty string.\n // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.\n // 4. Return policy.\n const policyHeader = (headersList.get('referrer-policy') ?? '').split(',')\n\n // Note: As the referrer-policy can contain multiple policies\n // separated by comma, we need to loop through all of them\n // and pick the first valid one.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n let policy = ''\n if (policyHeader.length > 0) {\n // The right-most policy takes precedence.\n // The left-most policy is the fallback.\n for (let i = policyHeader.length; i !== 0; i--) {\n const token = policyHeader[i - 1].trim()\n if (referrerPolicyTokens.includes(token)) {\n policy = token\n break\n }\n }\n }\n\n // 2. If policy is not the empty string, then set request\u2019s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r\u2019s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header\u2019s value to r\u2019s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r\u2019s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request\u2019s response tainting is \"cors\" or request\u2019s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request\u2019s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request\u2019s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request\u2019s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request\u2019s origin is a tuple origin, its scheme is \"https\", and request\u2019s current URL\u2019s scheme is not \"https\", then set serializedOrigin to `null`.\n if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request\u2019s origin is not same origin with request\u2019s current URL\u2019s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request\u2019s header list.\n request.headersList.append('origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // Note: the fetch spec doesn't make use of embedder policy or CSP list\n return {\n referrerPolicy: 'strict-origin-when-cross-origin'\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer (policyContainer) {\n return {\n referrerPolicy: policyContainer.referrerPolicy\n }\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Note: policy cannot (shouldn't) be null or an empty string.\n assert(policy)\n\n // 2. Let environment be request\u2019s client.\n\n let referrerSource = null\n\n // 3. Switch on request\u2019s referrer:\n if (request.referrer === 'client') {\n // Note: node isn't a browser and doesn't implement document/iframes,\n // so we bypass this step and replace it with our own.\n\n const globalOrigin = getGlobalOrigin()\n\n if (!globalOrigin || globalOrigin.origin === 'null') {\n return 'no-referrer'\n }\n\n // note: we need to clone it as it's mutated\n referrerSource = new URL(globalOrigin)\n } else if (request.referrer instanceof URL) {\n // Let referrerSource be request\u2019s referrer.\n referrerSource = request.referrer\n }\n\n // 4. Let request\u2019s referrerURL be the result of stripping referrerSource for\n // use as a referrer.\n let referrerURL = stripURLForReferrer(referrerSource)\n\n // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n // a referrer, with the origin-only flag set to true.\n const referrerOrigin = stripURLForReferrer(referrerSource, true)\n\n // 6. If the result of serializing referrerURL is a string whose length is\n // greater than 4096, set referrerURL to referrerOrigin.\n if (referrerURL.toString().length > 4096) {\n referrerURL = referrerOrigin\n }\n\n const areSameOrigin = sameOrigin(request, referrerURL)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerURL\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerURL : referrerOrigin\n case 'strict-origin-when-cross-origin': {\n const currentURL = requestCurrentURL(request)\n\n // 1. If the origin of referrerURL and the origin of request\u2019s current\n // URL are the same, then return referrerURL.\n if (sameOrigin(referrerURL, currentURL)) {\n return referrerURL\n }\n\n // 2. If referrerURL is a potentially trustworthy URL and request\u2019s\n // current URL is not a potentially trustworthy URL, then return no\n // referrer.\n if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n return 'no-referrer'\n }\n\n // 3. Return referrerOrigin.\n return referrerOrigin\n }\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request\u2019s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n * @param {URL} url\n * @param {boolean|undefined} originOnly\n */\nfunction stripURLForReferrer (url, originOnly) {\n // 1. Assert: url is a URL.\n assert(url instanceof URL)\n\n // 2. If url\u2019s scheme is a local scheme, then return no referrer.\n if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n return 'no-referrer'\n }\n\n // 3. Set url\u2019s username to the empty string.\n url.username = ''\n\n // 4. Set url\u2019s password to the empty string.\n url.password = ''\n\n // 5. Set url\u2019s fragment to null.\n url.hash = ''\n\n // 6. If the origin-only flag is true, then:\n if (originOnly) {\n // 1. Set url\u2019s path to \u00AB the empty string \u00BB.\n url.pathname = ''\n\n // 2. Set url\u2019s query to null.\n url.search = ''\n }\n\n // 7. Return url.\n return url\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 4. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n const list = parsedMetadata.sort((c, d) => d.algo.localeCompare(c.algo))\n // get the strongest algorithm\n const strongest = list[0].algo\n // get all entries that use the strongest algorithm; ignore weaker\n const metadata = list.filter((item) => item.algo === strongest)\n\n // 5. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n const actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (actualValue === expectedValue) {\n return true\n }\n }\n\n // 6. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// https://www.w3.org/TR/CSP2/#source-list-syntax\n// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\\x21-\\x7e]?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n const supportedHashes = crypto.getHashes()\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (parsedToken === null || parsedToken.groups === undefined) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm.toLowerCase())) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n if (A.origin === B.origin && A.origin === 'null') {\n return true\n }\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\n// https://fetch.spec.whatwg.org/#concept-method-normalize\nfunction normalizeMethod (method) {\n return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method)\n ? method.toUpperCase()\n : method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, \u00AB value \u00BB).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n/**\n * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n * @param {() => unknown[]} iterator\n * @param {string} name name of the instance\n * @param {'key'|'value'|'key+value'} kind\n */\nfunction makeIterator (iterator, name, kind) {\n const object = {\n index: 0,\n kind,\n target: iterator\n }\n\n const i = {\n next () {\n // 1. Let interface be the interface for which the iterator prototype object exists.\n\n // 2. Let thisValue be the this value.\n\n // 3. Let object be ? ToObject(thisValue).\n\n // 4. If object is a platform object, then perform a security\n // check, passing:\n\n // 5. If object is not a default iterator object for interface,\n // then throw a TypeError.\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n // 6. Let index be object\u2019s index.\n // 7. Let kind be object\u2019s kind.\n // 8. Let values be object\u2019s target's value pairs to iterate over.\n const { index, kind, target } = object\n const values = target()\n\n // 9. Let len be the length of values.\n const len = values.length\n\n // 10. If index is greater than or equal to len, then return\n // CreateIterResultObject(undefined, true).\n if (index >= len) {\n return { value: undefined, done: true }\n }\n\n // 11. Let pair be the entry in values at index index.\n const pair = values[index]\n\n // 12. Set object\u2019s index to index + 1.\n object.index = index + 1\n\n // 13. Return the iterator result for pair and kind.\n return iteratorResult(pair, kind)\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n// https://webidl.spec.whatwg.org/#iterator-result\nfunction iteratorResult (pair, kind) {\n let result\n\n // 1. Let result be a value determined by the value of kind:\n switch (kind) {\n case 'key': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 3. result is key.\n result = pair[0]\n break\n }\n case 'value': {\n // 1. Let idlValue be pair\u2019s value.\n // 2. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 3. result is value.\n result = pair[1]\n break\n }\n case 'key+value': {\n // 1. Let idlKey be pair\u2019s key.\n // 2. Let idlValue be pair\u2019s value.\n // 3. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 4. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 5. Let array be ! ArrayCreate(2).\n // 6. Call ! CreateDataProperty(array, \"0\", key).\n // 7. Call ! CreateDataProperty(array, \"1\", value).\n // 8. result is array.\n result = pair\n break\n }\n }\n\n // 2. Return CreateIterResultObject(result, false).\n return { value: result, done: false }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nfunction fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let successSteps given a byte sequence bytes be to queue a\n // fetch task to run processBody given bytes, with taskDestination.\n const successSteps = (bytes) => queueMicrotask(() => processBody(bytes))\n\n // 3. Let errorSteps be to queue a fetch task to run processBodyError,\n // with taskDestination.\n const errorSteps = (error) => queueMicrotask(() => processBodyError(error))\n\n // 4. Let reader be the result of getting a reader for body\u2019s stream.\n // If that threw an exception, then run errorSteps with that\n // exception and return.\n let reader\n\n try {\n reader = body.stream.getReader()\n } catch (e) {\n errorSteps(e)\n return\n }\n\n // 5. Read all bytes from reader, given successSteps and errorSteps.\n readAllBytes(reader, successSteps, errorSteps)\n}\n\n/** @type {ReadableStream} */\nlet ReadableStream = globalThis.ReadableStream\n\nfunction isReadableStreamLike (stream) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n return stream instanceof ReadableStream || (\n stream[Symbol.toStringTag] === 'ReadableStream' &&\n typeof stream.tee === 'function'\n )\n}\n\nconst MAXIMUM_ARGUMENT_LENGTH = 65535\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-decode\n * @param {number[]|Uint8Array} input\n */\nfunction isomorphicDecode (input) {\n // 1. To isomorphic decode a byte sequence input, return a string whose code point\n // length is equal to input\u2019s length and whose code points have the same values\n // as the values of input\u2019s bytes, in the same order.\n\n if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n return String.fromCharCode(...input)\n }\n\n return input.reduce((previous, current) => previous + String.fromCharCode(current), '')\n}\n\n/**\n * @param {ReadableStreamController<Uint8Array>} controller\n */\nfunction readableStreamClose (controller) {\n try {\n controller.close()\n } catch (err) {\n // TODO: add comment explaining why this error occurs.\n if (!err.message.includes('Controller is already closed')) {\n throw err\n }\n }\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-encode\n * @param {string} input\n */\nfunction isomorphicEncode (input) {\n // 1. Assert: input contains no code points greater than U+00FF.\n for (let i = 0; i < input.length; i++) {\n assert(input.charCodeAt(i) <= 0xFF)\n }\n\n // 2. Return a byte sequence whose length is equal to input\u2019s code\n // point length and whose bytes have the same values as the\n // values of input\u2019s code points, in the same order\n return input\n}\n\n/**\n * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n * @see https://streams.spec.whatwg.org/#read-loop\n * @param {ReadableStreamDefaultReader} reader\n * @param {(bytes: Uint8Array) => void} successSteps\n * @param {(error: Error) => void} failureSteps\n */\nasync function readAllBytes (reader, successSteps, failureSteps) {\n const bytes = []\n let byteLength = 0\n\n while (true) {\n let done\n let chunk\n\n try {\n ({ done, value: chunk } = await reader.read())\n } catch (e) {\n // 1. Call failureSteps with e.\n failureSteps(e)\n return\n }\n\n if (done) {\n // 1. Call successSteps with bytes.\n successSteps(Buffer.concat(bytes, byteLength))\n return\n }\n\n // 1. If chunk is not a Uint8Array object, call failureSteps\n // with a TypeError and abort these steps.\n if (!isUint8Array(chunk)) {\n failureSteps(new TypeError('Received non-Uint8Array chunk'))\n return\n }\n\n // 2. Append the bytes represented by chunk to bytes.\n bytes.push(chunk)\n byteLength += chunk.length\n\n // 3. Read-loop given reader, bytes, successSteps, and failureSteps.\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#is-local\n * @param {URL} url\n */\nfunction urlIsLocal (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n}\n\n/**\n * @param {string|URL} url\n */\nfunction urlHasHttpsScheme (url) {\n if (typeof url === 'string') {\n return url.startsWith('https:')\n }\n\n return url.protocol === 'https:'\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-scheme\n * @param {URL} url\n */\nfunction urlIsHttpHttpsScheme (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'http:' || protocol === 'https:'\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch,\n isReadableStreamLike,\n readableStreamClose,\n isomorphicEncode,\n isomorphicDecode,\n urlIsLocal,\n urlHasHttpsScheme,\n urlIsHttpHttpsScheme,\n readAllBytes\n}\n", "'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n", "'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\n/** @type {import('../../types/webidl').Webidl} */\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\nwebidl.errors.exception = function (message) {\n return new TypeError(`${message.header}: ${message.message}`)\n}\n\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://webidl.spec.whatwg.org/#implements\nwebidl.brandCheck = function (V, I, opts = undefined) {\n if (opts?.strict !== false && !(V instanceof I)) {\n throw new TypeError('Illegal invocation')\n } else {\n return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n }\n}\n\nwebidl.argumentLengthCheck = function ({ length }, min, ctx) {\n if (length < min) {\n throw webidl.errors.exception({\n message: `${min} argument${min !== 1 ? 's' : ''} required, ` +\n `but${length ? ' only' : ''} ${length} found.`,\n ...ctx\n })\n }\n}\n\nwebidl.illegalConstructor = function () {\n throw webidl.errors.exception({\n header: 'TypeError',\n message: 'Illegal constructor'\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 \u2212 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be \u22122^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength \u2212 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength \u2212 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength \u2212 1 \u2212 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is \u22120, then set x to +0.\n if (x === 0) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +\u221E, or \u2212\u221E, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than \u22120.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +\u221E, or \u2212\u221E, then return +0.\n if (\n Number.isNaN(x) ||\n (x === 0 && Object.is(0, x)) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x \u2265 2^bitLength \u2212 1,\n // then return x \u2212 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 \u00D7 r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-to-record\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (O) => {\n // 1. If Type(O) is not Object, throw a TypeError.\n if (webidl.util.Type(O) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Record',\n message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n })\n }\n\n // 2. Let result be a new empty instance of record<K, V>.\n const result = {}\n\n if (!types.isProxy(O)) {\n // Object.keys only returns enumerable properties\n const keys = Object.keys(O)\n\n for (const key of keys) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n\n // 5. Return result.\n return result\n }\n\n // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n const keys = Reflect.ownKeys(O)\n\n // 4. For each key of keys.\n for (const key of keys) {\n // 1. Let desc be ? O.[[GetOwnProperty]](key).\n const desc = Reflect.getOwnPropertyDescriptor(O, key)\n\n // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n if (desc?.enumerable) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n }\n\n // 5. Return result.\n return result\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n throw webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type === 'Null' || type === 'Undefined') {\n return dict\n } else if (type !== 'Object') {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n const charCode = x.charCodeAt(index)\n\n if (charCode > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at ' +\n `index ${index} has a value of ${charCode} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed')\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long-long\nwebidl.converters['unsigned long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 64, 'unsigned')\n\n // 2. Return the IDL unsigned long long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long\nwebidl.converters['unsigned long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 32, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 32, 'unsigned')\n\n // 2. Return the IDL unsigned long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts)\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T\u2019s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n throw webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence<ByteString>'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence<sequence<ByteString>>'] = webidl.sequenceConverter(\n webidl.converters['sequence<ByteString>']\n)\n\nwebidl.converters['record<ByteString, ByteString>'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n", "const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isomorphicDecode } = require('./util')\n\nconst encoder = new TextEncoder()\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-token-code-point\n */\nconst HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/\nconst HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/ // eslint-disable-line\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n */\nconst HTTP_QUOTED_STRING_TOKENS = /[\\u0009|\\u0020-\\u007E|\\u0080-\\u00FF]/ // eslint-disable-line\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL\u2019s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePointsFast(\n ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = removeASCIIWhitespace(mimeType, true, true)\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = isomorphicDecode(body)\n\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n const href = url.href\n\n if (!excludeFragment) {\n return href\n }\n\n const hash = href.lastIndexOf('#')\n if (hash === -1) {\n return href\n }\n return href.slice(0, hash)\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn\u2019t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n/**\n * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n * @param {string} char\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePointsFast (char, input, position) {\n const idx = input.indexOf(char, position.position)\n const start = position.position\n\n if (idx === -1) {\n position.position = input.length\n return input.slice(start)\n }\n\n position.position = idx\n return input.slice(start, position.position)\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = removeHTTPWhitespace(input, true, true)\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePointsFast(\n '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = removeHTTPWhitespace(subtype, false, true)\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n return 'failure'\n }\n\n const typeLowercase = type.toLowerCase()\n const subtypeLowercase = subtype.toLowerCase()\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: typeLowercase,\n subtype: subtypeLowercase,\n /** @type {Map<string, string>} */\n parameters: new Map(),\n // https://mimesniff.spec.whatwg.org/#mime-type-essence\n essence: `${typeLowercase}/${subtypeLowercase}`\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n char => HTTP_WHITESPACE_REGEX.test(char),\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n parameterValue = removeHTTPWhitespace(parameterValue, false, true)\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType\u2019s parameters[parameterName] does not exist\n // then set mimeType\u2019s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) &&\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data\u2019s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data\u2019s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { parameters, essence } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType\u2019s\n // type, U+002F (/), and mimeType\u2019s subtype.\n let serialization = essence\n\n // 2. For each name \u2192 value of mimeType\u2019s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!HTTP_TOKEN_CODEPOINTS.test(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} char\n */\nfunction isHTTPWhiteSpace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === ' '\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} str\n */\nfunction removeHTTPWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n * @param {string} char\n */\nfunction isASCIIWhitespace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === '\\f' || char === ' '\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace\n */\nfunction removeASCIIWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n collectASequenceOfCodePointsFast,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n", "'use strict'\n\nconst { Blob, File: NativeFile } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' })\n\n fileBits = webidl.converters['sequence<BlobPart>'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n let t = options.type\n let d\n\n // eslint-disable-next-line no-labels\n substep: {\n if (t) {\n t = parseMIMEType(t)\n\n if (t === 'failure') {\n t = ''\n // eslint-disable-next-line no-labels\n break substep\n }\n\n t = serializeAMimeType(t).toLowerCase()\n }\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n d = options.lastModified\n }\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: t })\n this[kState] = {\n name: n,\n lastModified: d,\n type: t\n }\n }\n\n get name () {\n webidl.brandCheck(this, File)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, File)\n\n return this[kState].lastModified\n }\n\n get type () {\n webidl.brandCheck(this, File)\n\n return this[kState].type\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.size\n }\n\n get type () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.type\n }\n\n get name () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nObject.defineProperties(File.prototype, {\n [Symbol.toStringTag]: {\n value: 'File',\n configurable: true\n },\n name: kEnumerableProperty,\n lastModified: kEnumerableProperty\n})\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n ArrayBuffer.isView(V) ||\n types.isAnyArrayBuffer(V)\n ) {\n return webidl.converters.BufferSource(V, opts)\n }\n }\n\n return webidl.converters.USVString(V, opts)\n}\n\nwebidl.converters['sequence<BlobPart>'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(new TextEncoder().encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform\u2019s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return (\n (NativeFile && object instanceof NativeFile) ||\n object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n", "'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File: UndiciFile, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob, File: NativeFile } = require('buffer')\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n constructor (form) {\n if (form !== undefined) {\n throw webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['undefined']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' })\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this\u2019s entry list.\n this[kState] = this[kState].filter(entry => entry.name !== name)\n }\n\n get (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this\u2019s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this\u2019s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this\u2019s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' })\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this\u2019s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this\u2019s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this\u2019s entry list.\n this[kState].push(entry)\n }\n }\n\n entries () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key+value'\n )\n }\n\n keys () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\nObject.defineProperties(FormData.prototype, {\n [Symbol.toStringTag]: {\n value: 'FormData',\n configurable: true\n }\n})\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n /** @type {FilePropertyBag} */\n const options = {\n type: value.type,\n lastModified: value.lastModified\n }\n\n value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n ? new File([value], filename, options)\n : new FileLike(value, filename, options)\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nmodule.exports = { FormData }\n", "'use strict'\n\nconst Busboy = require('busboy')\nconst util = require('../core/util')\nconst {\n ReadableStreamFrom,\n isBlobLike,\n isReadableStreamLike,\n readableStreamClose,\n createDeferredPromise,\n fullyReadBody\n} = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException, structuredClone } = require('./constants')\nconst { Blob, File: NativeFile } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File: UndiciFile } = require('./file')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\n\nlet ReadableStream = globalThis.ReadableStream\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be null.\n let stream = null\n\n // 2. If object is a ReadableStream object, then set stream to object.\n if (object instanceof ReadableStream) {\n stream = object\n } else if (isBlobLike(object)) {\n // 3. Otherwise, if object is a Blob object, set stream to the\n // result of running object\u2019s get stream.\n stream = object.stream()\n } else {\n // 4. Otherwise, set stream to a new ReadableStream object, and set\n // up stream.\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? new TextEncoder().encode(source) : source\n )\n queueMicrotask(() => readableStreamClose(controller))\n },\n start () {},\n type: undefined\n })\n }\n\n // 5. Assert: stream is a ReadableStream object.\n assert(isReadableStreamLike(stream))\n\n // 6. Let action be null.\n let action = null\n\n // 7. Let source be null.\n let source = null\n\n // 8. Let length be null.\n let length = null\n\n // 9. Let type be null.\n let type = null\n\n // 10. Switch on object:\n if (typeof object === 'string') {\n // Set source to the UTF-8 encoding of object.\n // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n source = object\n\n // Set type to `text/plain;charset=UTF-8`.\n type = 'text/plain;charset=UTF-8'\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object\u2019s list.\n source = object.toString()\n\n // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n type = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}`\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy W\u00E4rting <https://jimmy.warting.se/opensource> */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object\u2019s entry list and UTF-8.\n // - This ensures that the body is immutable and can't be changed afterwords\n // - That the content-length is calculated in advance.\n // - And that all parts are pre-encoded and ready to be sent.\n\n const enc = new TextEncoder()\n const blobParts = []\n const rn = new Uint8Array([13, 10]) // '\\r\\n'\n length = 0\n let hasUnknownSizeValue = false\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n const chunk = enc.encode(prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`)\n blobParts.push(chunk)\n length += chunk.byteLength\n } else {\n const chunk = enc.encode(`${prefix}; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') + '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`)\n blobParts.push(chunk, value, rn)\n if (typeof value.size === 'number') {\n length += chunk.byteLength + value.size + rn.byteLength\n } else {\n hasUnknownSizeValue = true\n }\n }\n }\n\n const chunk = enc.encode(`--${boundary}--`)\n blobParts.push(chunk)\n length += chunk.byteLength\n if (hasUnknownSizeValue) {\n length = null\n }\n\n // Set source to object.\n source = object\n\n action = async function * () {\n for (const part of blobParts) {\n if (part.stream) {\n yield * part.stream()\n } else {\n yield part\n }\n }\n }\n\n // Set type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n type = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set source to object.\n source = object\n\n // Set length to object\u2019s size.\n length = object.size\n\n // If object\u2019s type attribute is not the empty byte sequence, set\n // type to its value.\n if (object.type) {\n type = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n }\n\n // 11. If source is a byte sequence, then set action to a\n // step that returns source and length to source\u2019s length.\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 12. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n },\n type: undefined\n })\n }\n\n // 13. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 14. Return (body, type).\n return [body, type]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let \u00AB out1, out2 \u00BB be the result of teeing body\u2019s stream.\n const [out1, out2] = body.stream.tee()\n const out2Clone = structuredClone(out2, { transfer: [out2] })\n // This, for whatever reasons, unrefs out2Clone which allows\n // the process to exit by itself.\n const [, finalClone] = out2Clone.tee()\n\n // 2. Set body\u2019s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: finalClone,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n blob () {\n // The blob() method steps are to return the result of\n // running consume body with this and the following step\n // given a byte sequence bytes: return a Blob whose\n // contents are bytes and whose type attribute is this\u2019s\n // MIME type.\n return specConsumeBody(this, (bytes) => {\n let mimeType = bodyMimeType(this)\n\n if (mimeType === 'failure') {\n mimeType = ''\n } else if (mimeType) {\n mimeType = serializeAMimeType(mimeType)\n }\n\n // Return a Blob whose contents are bytes and type attribute\n // is mimeType.\n return new Blob([bytes], { type: mimeType })\n }, instance)\n },\n\n arrayBuffer () {\n // The arrayBuffer() method steps are to return the result\n // of running consume body with this and the following step\n // given a byte sequence bytes: return a new ArrayBuffer\n // whose contents are bytes.\n return specConsumeBody(this, (bytes) => {\n return new Uint8Array(bytes).buffer\n }, instance)\n },\n\n text () {\n // The text() method steps are to return the result of running\n // consume body with this and UTF-8 decode.\n return specConsumeBody(this, utf8DecodeBytes, instance)\n },\n\n json () {\n // The json() method steps are to return the result of running\n // consume body with this and parse JSON from bytes.\n return specConsumeBody(this, parseJSONFromBytes, instance)\n },\n\n async formData () {\n webidl.brandCheck(this, instance)\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType\u2019s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = Busboy({\n headers,\n defParamCharset: 'utf8'\n })\n } catch (err) {\n throw new DOMException(`${err}`, 'AbortError')\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, info) => {\n const { filename, encoding, mimeType } = info\n const chunks = []\n\n if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(new TypeError(err)))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType\u2019s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n const textDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += textDecoder.decode(chunk, { stream: true })\n }\n text += textDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n throw webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n * @param {Response|Request} object\n * @param {(value: unknown) => unknown} convertBytesToJSValue\n * @param {Response|Request} instance\n */\nasync function specConsumeBody (object, convertBytesToJSValue, instance) {\n webidl.brandCheck(object, instance)\n\n throwIfAborted(object[kState])\n\n // 1. If object is unusable, then return a promise rejected\n // with a TypeError.\n if (bodyUnusable(object[kState].body)) {\n throw new TypeError('Body is unusable')\n }\n\n // 2. Let promise be a new promise.\n const promise = createDeferredPromise()\n\n // 3. Let errorSteps given error be to reject promise with error.\n const errorSteps = (error) => promise.reject(error)\n\n // 4. Let successSteps given a byte sequence data be to resolve\n // promise with the result of running convertBytesToJSValue\n // with data. If that threw an exception, then run errorSteps\n // with that exception.\n const successSteps = (data) => {\n try {\n promise.resolve(convertBytesToJSValue(data))\n } catch (e) {\n errorSteps(e)\n }\n }\n\n // 5. If object\u2019s body is null, then run successSteps with an\n // empty byte sequence.\n if (object[kState].body == null) {\n successSteps(new Uint8Array())\n return promise.promise\n }\n\n // 6. Otherwise, fully read object\u2019s body given successSteps,\n // errorSteps, and object\u2019s relevant global object.\n fullyReadBody(object[kState].body, successSteps, errorSteps)\n\n // 7. Return promise.\n return promise.promise\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction bodyUnusable (body) {\n // An object including the Body interface mixin is\n // said to be unusable if its body is non-null and\n // its body\u2019s stream is disturbed or locked.\n return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#utf-8-decode\n * @param {Buffer} buffer\n */\nfunction utf8DecodeBytes (buffer) {\n if (buffer.length === 0) {\n return ''\n }\n\n // 1. Let buffer be the result of peeking three bytes from\n // ioQueue, converted to a byte sequence.\n\n // 2. If buffer is 0xEF 0xBB 0xBF, then read three\n // bytes from ioQueue. (Do nothing with those bytes.)\n if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n buffer = buffer.subarray(3)\n }\n\n // 3. Process a queue with an instance of UTF-8\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n const output = new TextDecoder().decode(buffer)\n\n // 4. Return output.\n return output\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n * @param {Uint8Array} bytes\n */\nfunction parseJSONFromBytes (bytes) {\n return JSON.parse(utf8DecodeBytes(bytes))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n * @param {import('./response').Response|import('./request').Request} object\n */\nfunction bodyMimeType (object) {\n const { headersList } = object[kState]\n const contentType = headersList.get('content-type')\n\n if (contentType === null) {\n return 'failure'\n }\n\n return parseMIMEType(contentType)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n", "'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n this.contentLength = bodyStream.length\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.onError(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onConnect(abort)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onData(chunk)\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n return this[kHandler].onComplete(trailers)\n }\n\n onError (error) {\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n return this[kHandler].onError(error)\n }\n\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n}\n\nfunction processHeaderValue (key, val) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n val = val != null ? `${val}` : ''\n\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n return `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request, key, val) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type'\n ) {\n request.contentType = val\n request.headers += processHeaderValue(key, val)\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n } else if (value === 'close') {\n request.reset = true\n }\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n request.headers += processHeaderValue(key, val[i])\n }\n } else {\n request.headers += processHeaderValue(key, val)\n }\n }\n}\n\nmodule.exports = Request\n", "'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n", "'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = null\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed] = this[kOnDestroyed] || []\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed] || this[kOnDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n", "'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\n\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache\nif (global.FinalizationRegistry) {\n SessionCache = class WeakSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n this._sessionRegistry = new global.FinalizationRegistry((key) => {\n if (this._sessionCache.size < this._maxCachedSessions) {\n return\n }\n\n const ref = this._sessionCache.get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this._sessionCache.delete(key)\n }\n })\n }\n\n get (sessionKey) {\n const ref = this._sessionCache.get(sessionKey)\n return ref ? ref.deref() : null\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n this._sessionCache.set(sessionKey, new WeakRef(session))\n this._sessionRegistry.register(session, sessionKey)\n }\n }\n} else {\n SessionCache = class SimpleSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n }\n\n get (sessionKey) {\n return this._sessionCache.get(sessionKey)\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n if (this._sessionCache.size >= this._maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = this._sessionCache.keys().next()\n this._sessionCache.delete(oldestKey)\n }\n\n this._sessionCache.set(sessionKey, session)\n }\n }\n}\n\nfunction buildConnector ({ maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions)\n timeout = timeout == null ? 10e3 : timeout\n\n return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n localAddress,\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // TODO (fix): Can a session become invalid once established? Don't think so?\n sessionCache.set(sessionKey, session)\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n localAddress,\n port: port || 80,\n host: hostname\n })\n }\n\n // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n if (options.keepAlive == null || options.keepAlive) {\n const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay\n socket.setKeepAlive(true, keepAliveInitialDelay)\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n", null, null, "'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n this.opts.query = null\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n return (\n (header.length === 4 && header.toString().toLowerCase() === 'host') ||\n (removeContent && header.toString().toLowerCase().indexOf('content-') === 0) ||\n (unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') ||\n (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie')\n )\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n", "'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAUNgIUIAAgATYCDEEAIRAMogELIABBADYCHCAAIBQ2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKEBCyAAQQA2AhwgACABNgIUIABBw4+AgAA2AhAgAEEHNgIMQQAhEAygAQtBACEQIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgwMnwELIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgxBACEQDJ4BCyAAQQA2AhwgACAUNgIUIABB/pGAgAA2AhAgAEEHNgIMQQAhEAydAQsgAEEANgIcIAAgATYCFCAAQY6bgIAANgIQIABBBjYCDEEAIRAMnAELIBBBFUYNVyAAQQA2AhwgACABNgIUIABBzI6AgAA2AhAgAEEgNgIMQQAhEAybAQsgAEEANgIAIBBBAWohAUEkIRALIAAgEDoAKSAAKAIEIRAgAEEANgIEIAAgECABEKuAgIAAIhANVCABIQEMPgsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQfGbgIAANgIQIABBBjYCDAyXAQsgAUEVRg1QIABBADYCHCAAIAU2AhQgAEHwjICAADYCECAAQRs2AgxBACEQDJYBCyAAKAIEIQUgAEEANgIEIAAgBSAQEKmAgIAAIgUNASAQQQFqIQULQa0BIRAMewsgAEHBATYCHCAAIAU2AgwgACAQQQFqNgIUQQAhEAyTAQsgACgCBCEGIABBADYCBCAAIAYgEBCpgICAACIGDQEgEEEBaiEGC0GuASEQDHgLIABBwgE2AhwgACAGNgIMIAAgEEEBajYCFEEAIRAMkAELIABBADYCHCAAIAc2AhQgAEGXi4CAADYCECAAQQ02AgxBACEQDI8BCyAAQQA2AhwgACAINgIUIABB45CAgAA2AhAgAEEJNgIMQQAhEAyOAQsgAEEANgIcIAAgCDYCFCAAQZSNgIAANgIQIABBITYCDEEAIRAMjQELQQEhFkEAIRdBACEUQQEhEAsgACAQOgArIAlBAWohCAJAAkAgAC0ALUEQcQ0AAkACQAJAIAAtACoOAwEAAgQLIBZFDQMMAgsgFA0BDAILIBdFDQELIAAoAgQhECAAQQA2AgQgACAQIAgQrYCAgAAiEEUNPSAAQckBNgIcIAAgCDYCFCAAIBA2AgxBACEQDIwBCyAAKAIEIQQgAEEANgIEIAAgBCAIEK2AgIAAIgRFDXYgAEHKATYCHCAAIAg2AhQgACAENgIMQQAhEAyLAQsgACgCBCEEIABBADYCBCAAIAQgCRCtgICAACIERQ10IABBywE2AhwgACAJNgIUIAAgBDYCDEEAIRAMigELIAAoAgQhBCAAQQA2AgQgACAEIAoQrYCAgAAiBEUNciAAQc0BNgIcIAAgCjYCFCAAIAQ2AgxBACEQDIkBCwJAIAstAABBUGoiEEH/AXFBCk8NACAAIBA6ACogC0EBaiEKQbYBIRAMcAsgACgCBCEEIABBADYCBCAAIAQgCxCtgICAACIERQ1wIABBzwE2AhwgACALNgIUIAAgBDYCDEEAIRAMiAELIABBADYCHCAAIAQ2AhQgAEGQs4CAADYCECAAQQg2AgwgAEEANgIAQQAhEAyHAQsgAUEVRg0/IABBADYCHCAAIAw2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDIYBCyAAQYEEOwEoIAAoAgQhECAAQgA3AwAgACAQIAxBAWoiDBCrgICAACIQRQ04IABB0wE2AhwgACAMNgIUIAAgEDYCDEEAIRAMhQELIABBADYCAAtBACEQIABBADYCHCAAIAQ2AhQgAEHYm4CAADYCECAAQQg2AgwMgwELIAAoAgQhECAAQgA3AwAgACAQIAtBAWoiCxCrgICAACIQDQFBxgEhEAxpCyAAQQI6ACgMVQsgAEHVATYCHCAAIAs2AhQgACAQNgIMQQAhEAyAAQsgEEEVRg03IABBADYCHCAAIAQ2AhQgAEGkjICAADYCECAAQRA2AgxBACEQDH8LIAAtADRBAUcNNCAAIAQgAhC8gICAACIQRQ00IBBBFUcNNSAAQdwBNgIcIAAgBDYCFCAAQdWWgIAANgIQIABBFTYCDEEAIRAMfgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQMfQtBACEQDGMLQQIhEAxiC0ENIRAMYQtBDyEQDGALQSUhEAxfC0ETIRAMXgtBFSEQDF0LQRYhEAxcC0EXIRAMWwtBGCEQDFoLQRkhEAxZC0EaIRAMWAtBGyEQDFcLQRwhEAxWC0EdIRAMVQtBHyEQDFQLQSEhEAxTC0EjIRAMUgtBxgAhEAxRC0EuIRAMUAtBLyEQDE8LQTshEAxOC0E9IRAMTQtByAAhEAxMC0HJACEQDEsLQcsAIRAMSgtBzAAhEAxJC0HOACEQDEgLQdEAIRAMRwtB1QAhEAxGC0HYACEQDEULQdkAIRAMRAtB2wAhEAxDC0HkACEQDEILQeUAIRAMQQtB8QAhEAxAC0H0ACEQDD8LQY0BIRAMPgtBlwEhEAw9C0GpASEQDDwLQawBIRAMOwtBwAEhEAw6C0G5ASEQDDkLQa8BIRAMOAtBsQEhEAw3C0GyASEQDDYLQbQBIRAMNQtBtQEhEAw0C0G6ASEQDDMLQb0BIRAMMgtBvwEhEAwxC0HBASEQDDALIABBADYCHCAAIAQ2AhQgAEHpi4CAADYCECAAQR82AgxBACEQDEgLIABB2wE2AhwgACAENgIUIABB+paAgAA2AhAgAEEVNgIMQQAhEAxHCyAAQfgANgIcIAAgDDYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMRgsgAEHRADYCHCAAIAU2AhQgAEGwl4CAADYCECAAQRU2AgxBACEQDEULIABB+QA2AhwgACABNgIUIAAgEDYCDEEAIRAMRAsgAEH4ADYCHCAAIAE2AhQgAEHKmICAADYCECAAQRU2AgxBACEQDEMLIABB5AA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAxCCyAAQdcANgIcIAAgATYCFCAAQcmXgIAANgIQIABBFTYCDEEAIRAMQQsgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMQAsgAEHCADYCHCAAIAE2AhQgAEHjmICAADYCECAAQRU2AgxBACEQDD8LIABBADYCBCAAIA8gDxCxgICAACIERQ0BIABBOjYCHCAAIAQ2AgwgACAPQQFqNgIUQQAhEAw+CyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBEUNACAAQTs2AhwgACAENgIMIAAgAUEBajYCFEEAIRAMPgsgAUEBaiEBDC0LIA9BAWohAQwtCyAAQQA2AhwgACAPNgIUIABB5JKAgAA2AhAgAEEENgIMQQAhEAw7CyAAQTY2AhwgACAENgIUIAAgAjYCDEEAIRAMOgsgAEEuNgIcIAAgDjYCFCAAIAQ2AgxBACEQDDkLIABB0AA2AhwgACABNgIUIABBkZiAgAA2AhAgAEEVNgIMQQAhEAw4CyANQQFqIQEMLAsgAEEVNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMNgsgAEEbNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNQsgAEEPNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNAsgAEELNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMMwsgAEEaNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMgsgAEELNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMQsgAEEKNgIcIAAgATYCFCAAQeSWgIAANgIQIABBFTYCDEEAIRAMMAsgAEEeNgIcIAAgATYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAMLwsgAEEANgIcIAAgEDYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMLgsgAEEENgIcIAAgATYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMLQsgAEEANgIAIAtBAWohCwtBuAEhEAwSCyAAQQA2AgAgEEEBaiEBQfUAIRAMEQsgASEBAkAgAC0AKUEFRw0AQeMAIRAMEQtB4gAhEAwQC0EAIRAgAEEANgIcIABB5JGAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAwoCyAAQQA2AgAgF0EBaiEBQcAAIRAMDgtBASEBCyAAIAE6ACwgAEEANgIAIBdBAWohAQtBKCEQDAsLIAEhAQtBOCEQDAkLAkAgASIPIAJGDQADQAJAIA8tAABBgL6AgABqLQAAIgFBAUYNACABQQJHDQMgD0EBaiEBDAQLIA9BAWoiDyACRw0AC0E+IRAMIgtBPiEQDCELIABBADoALCAPIQEMAQtBCyEQDAYLQTohEAwFCyABQQFqIQFBLSEQDAQLIAAgAToALCAAQQA2AgAgFkEBaiEBQQwhEAwDCyAAQQA2AgAgF0EBaiEBQQohEAwCCyAAQQA2AgALIABBADoALCANIQFBCSEQDAALC0EAIRAgAEEANgIcIAAgCzYCFCAAQc2QgIAANgIQIABBCTYCDAwXC0EAIRAgAEEANgIcIAAgCjYCFCAAQemKgIAANgIQIABBCTYCDAwWC0EAIRAgAEEANgIcIAAgCTYCFCAAQbeQgIAANgIQIABBCTYCDAwVC0EAIRAgAEEANgIcIAAgCDYCFCAAQZyRgIAANgIQIABBCTYCDAwUC0EAIRAgAEEANgIcIAAgATYCFCAAQc2QgIAANgIQIABBCTYCDAwTC0EAIRAgAEEANgIcIAAgATYCFCAAQemKgIAANgIQIABBCTYCDAwSC0EAIRAgAEEANgIcIAAgATYCFCAAQbeQgIAANgIQIABBCTYCDAwRC0EAIRAgAEEANgIcIAAgATYCFCAAQZyRgIAANgIQIABBCTYCDAwQC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwPC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwOC0EAIRAgAEEANgIcIAAgATYCFCAAQcCSgIAANgIQIABBCzYCDAwNC0EAIRAgAEEANgIcIAAgATYCFCAAQZWJgIAANgIQIABBCzYCDAwMC0EAIRAgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDAwLC0EAIRAgAEEANgIcIAAgATYCFCAAQfuPgIAANgIQIABBCjYCDAwKC0EAIRAgAEEANgIcIAAgATYCFCAAQfGZgIAANgIQIABBAjYCDAwJC0EAIRAgAEEANgIcIAAgATYCFCAAQcSUgIAANgIQIABBAjYCDAwIC0EAIRAgAEEANgIcIAAgATYCFCAAQfKVgIAANgIQIABBAjYCDAwHCyAAQQI2AhwgACABNgIUIABBnJqAgAA2AhAgAEEWNgIMQQAhEAwGC0EBIRAMBQtB1AAhECABIgQgAkYNBCADQQhqIAAgBCACQdjCgIAAQQoQxYCAgAAgAygCDCEEIAMoAggOAwEEAgALEMqAgIAAAAsgAEEANgIcIABBtZqAgAA2AhAgAEEXNgIMIAAgBEEBajYCFEEAIRAMAgsgAEEANgIcIAAgBDYCFCAAQcqagIAANgIQIABBCTYCDEEAIRAMAQsCQCABIgQgAkcNAEEiIRAMAQsgAEGJgICAADYCCCAAIAQ2AgRBISEQCyADQRBqJICAgIAAIBALrwEBAn8gASgCACEGAkACQCACIANGDQAgBCAGaiEEIAYgA2ogAmshByACIAZBf3MgBWoiBmohBQNAAkAgAi0AACAELQAARg0AQQIhBAwDCwJAIAYNAEEAIQQgBSECDAMLIAZBf2ohBiAEQQFqIQQgAkEBaiICIANHDQALIAchBiADIQILIABBATYCACABIAY2AgAgACACNgIEDwsgAUEANgIAIAAgBDYCACAAIAI2AgQLCgAgABDHgICAAAvyNgELfyOAgICAAEEQayIBJICAgIAAAkBBACgCoNCAgAANAEEAEMuAgIAAQYDUhIAAayICQdkASQ0AQQAhAwJAQQAoAuDTgIAAIgQNAEEAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEIakFwcUHYqtWqBXMiBDYC4NOAgABBAEEANgL004CAAEEAQQA2AsTTgIAAC0EAIAI2AszTgIAAQQBBgNSEgAA2AsjTgIAAQQBBgNSEgAA2ApjQgIAAQQAgBDYCrNCAgABBAEF/NgKo0ICAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALQYDUhIAAQXhBgNSEgABrQQ9xQQBBgNSEgABBCGpBD3EbIgNqIgRBBGogAkFIaiIFIANrIgNBAXI2AgBBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAQYDUhIAAIAVqQTg2AgQLAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFLDQACQEEAKAKI0ICAACIGQRAgAEETakFwcSAAQQtJGyICQQN2IgR2IgNBA3FFDQACQAJAIANBAXEgBHJBAXMiBUEDdCIEQbDQgIAAaiIDIARBuNCAgABqKAIAIgQoAggiAkcNAEEAIAZBfiAFd3E2AojQgIAADAELIAMgAjYCCCACIAM2AgwLIARBCGohAyAEIAVBA3QiBUEDcjYCBCAEIAVqIgQgBCgCBEEBcjYCBAwMCyACQQAoApDQgIAAIgdNDQECQCADRQ0AAkACQCADIAR0QQIgBHQiA0EAIANrcnEiA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqIgRBA3QiA0Gw0ICAAGoiBSADQbjQgIAAaigCACIDKAIIIgBHDQBBACAGQX4gBHdxIgY2AojQgIAADAELIAUgADYCCCAAIAU2AgwLIAMgAkEDcjYCBCADIARBA3QiBGogBCACayIFNgIAIAMgAmoiACAFQQFyNgIEAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQQCQAJAIAZBASAHQQN2dCIIcQ0AQQAgBiAIcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCAENgIMIAIgBDYCCCAEIAI2AgwgBCAINgIICyADQQhqIQNBACAANgKc0ICAAEEAIAU2ApDQgIAADAwLQQAoAozQgIAAIglFDQEgCUEAIAlrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqQQJ0QbjSgIAAaigCACIAKAIEQXhxIAJrIQQgACEFAkADQAJAIAUoAhAiAw0AIAVBFGooAgAiA0UNAgsgAygCBEF4cSACayIFIAQgBSAESSIFGyEEIAMgACAFGyEAIAMhBQwACwsgACgCGCEKAkAgACgCDCIIIABGDQAgACgCCCIDQQAoApjQgIAASRogCCADNgIIIAMgCDYCDAwLCwJAIABBFGoiBSgCACIDDQAgACgCECIDRQ0DIABBEGohBQsDQCAFIQsgAyIIQRRqIgUoAgAiAw0AIAhBEGohBSAIKAIQIgMNAAsgC0EANgIADAoLQX8hAiAAQb9/Sw0AIABBE2oiA0FwcSECQQAoAozQgIAAIgdFDQBBACELAkAgAkGAAkkNAEEfIQsgAkH///8HSw0AIANBCHYiAyADQYD+P2pBEHZBCHEiA3QiBCAEQYDgH2pBEHZBBHEiBHQiBSAFQYCAD2pBEHZBAnEiBXRBD3YgAyAEciAFcmsiA0EBdCACIANBFWp2QQFxckEcaiELC0EAIAJrIQQCQAJAAkACQCALQQJ0QbjSgIAAaigCACIFDQBBACEDQQAhCAwBC0EAIQMgAkEAQRkgC0EBdmsgC0EfRht0IQBBACEIA0ACQCAFKAIEQXhxIAJrIgYgBE8NACAGIQQgBSEIIAYNAEEAIQQgBSEIIAUhAwwDCyADIAVBFGooAgAiBiAGIAUgAEEddkEEcWpBEGooAgAiBUYbIAMgBhshAyAAQQF0IQAgBQ0ACwsCQCADIAhyDQBBACEIQQIgC3QiA0EAIANrciAHcSIDRQ0DIANBACADa3FBf2oiAyADQQx2QRBxIgN2IgVBBXZBCHEiACADciAFIAB2IgNBAnZBBHEiBXIgAyAFdiIDQQF2QQJxIgVyIAMgBXYiA0EBdkEBcSIFciADIAV2akECdEG40oCAAGooAgAhAwsgA0UNAQsDQCADKAIEQXhxIAJrIgYgBEkhAAJAIAMoAhAiBQ0AIANBFGooAgAhBQsgBiAEIAAbIQQgAyAIIAAbIQggBSEDIAUNAAsLIAhFDQAgBEEAKAKQ0ICAACACa08NACAIKAIYIQsCQCAIKAIMIgAgCEYNACAIKAIIIgNBACgCmNCAgABJGiAAIAM2AgggAyAANgIMDAkLAkAgCEEUaiIFKAIAIgMNACAIKAIQIgNFDQMgCEEQaiEFCwNAIAUhBiADIgBBFGoiBSgCACIDDQAgAEEQaiEFIAAoAhAiAw0ACyAGQQA2AgAMCAsCQEEAKAKQ0ICAACIDIAJJDQBBACgCnNCAgAAhBAJAAkAgAyACayIFQRBJDQAgBCACaiIAIAVBAXI2AgRBACAFNgKQ0ICAAEEAIAA2ApzQgIAAIAQgA2ogBTYCACAEIAJBA3I2AgQMAQsgBCADQQNyNgIEIAQgA2oiAyADKAIEQQFyNgIEQQBBADYCnNCAgABBAEEANgKQ0ICAAAsgBEEIaiEDDAoLAkBBACgClNCAgAAiACACTQ0AQQAoAqDQgIAAIgMgAmoiBCAAIAJrIgVBAXI2AgRBACAFNgKU0ICAAEEAIAQ2AqDQgIAAIAMgAkEDcjYCBCADQQhqIQMMCgsCQAJAQQAoAuDTgIAARQ0AQQAoAujTgIAAIQQMAQtBAEJ/NwLs04CAAEEAQoCAhICAgMAANwLk04CAAEEAIAFBDGpBcHFB2KrVqgVzNgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgABBgIAEIQQLQQAhAwJAIAQgAkHHAGoiB2oiBkEAIARrIgtxIgggAksNAEEAQTA2AvjTgIAADAoLAkBBACgCwNOAgAAiA0UNAAJAQQAoArjTgIAAIgQgCGoiBSAETQ0AIAUgA00NAQtBACEDQQBBMDYC+NOAgAAMCgtBAC0AxNOAgABBBHENBAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQAJAIAMoAgAiBSAESw0AIAUgAygCBGogBEsNAwsgAygCCCIDDQALC0EAEMuAgIAAIgBBf0YNBSAIIQYCQEEAKALk04CAACIDQX9qIgQgAHFFDQAgCCAAayAEIABqQQAgA2txaiEGCyAGIAJNDQUgBkH+////B0sNBQJAQQAoAsDTgIAAIgNFDQBBACgCuNOAgAAiBCAGaiIFIARNDQYgBSADSw0GCyAGEMuAgIAAIgMgAEcNAQwHCyAGIABrIAtxIgZB/v///wdLDQQgBhDLgICAACIAIAMoAgAgAygCBGpGDQMgACEDCwJAIANBf0YNACACQcgAaiAGTQ0AAkAgByAGa0EAKALo04CAACIEakEAIARrcSIEQf7///8HTQ0AIAMhAAwHCwJAIAQQy4CAgABBf0YNACAEIAZqIQYgAyEADAcLQQAgBmsQy4CAgAAaDAQLIAMhACADQX9HDQUMAwtBACEIDAcLQQAhAAwFCyAAQX9HDQILQQBBACgCxNOAgABBBHI2AsTTgIAACyAIQf7///8HSw0BIAgQy4CAgAAhAEEAEMuAgIAAIQMgAEF/Rg0BIANBf0YNASAAIANPDQEgAyAAayIGIAJBOGpNDQELQQBBACgCuNOAgAAgBmoiAzYCuNOAgAACQCADQQAoArzTgIAATQ0AQQAgAzYCvNOAgAALAkACQAJAAkBBACgCoNCAgAAiBEUNAEHI04CAACEDA0AgACADKAIAIgUgAygCBCIIakYNAiADKAIIIgMNAAwDCwsCQAJAQQAoApjQgIAAIgNFDQAgACADTw0BC0EAIAA2ApjQgIAAC0EAIQNBACAGNgLM04CAAEEAIAA2AsjTgIAAQQBBfzYCqNCAgABBAEEAKALg04CAADYCrNCAgABBAEEANgLU04CAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgQgBkFIaiIFIANrIgNBAXI2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAIAAgBWpBODYCBAwCCyADLQAMQQhxDQAgBCAFSQ0AIAQgAE8NACAEQXggBGtBD3FBACAEQQhqQQ9xGyIFaiIAQQAoApTQgIAAIAZqIgsgBWsiBUEBcjYCBCADIAggBmo2AgRBAEEAKALw04CAADYCpNCAgABBACAFNgKU0ICAAEEAIAA2AqDQgIAAIAQgC2pBODYCBAwBCwJAIABBACgCmNCAgAAiCE8NAEEAIAA2ApjQgIAAIAAhCAsgACAGaiEFQcjTgIAAIQMCQAJAAkACQAJAAkACQANAIAMoAgAgBUYNASADKAIIIgMNAAwCCwsgAy0ADEEIcUUNAQtByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiIFIARLDQMLIAMoAgghAwwACwsgAyAANgIAIAMgAygCBCAGajYCBCAAQXggAGtBD3FBACAAQQhqQQ9xG2oiCyACQQNyNgIEIAVBeCAFa0EPcUEAIAVBCGpBD3EbaiIGIAsgAmoiAmshAwJAIAYgBEcNAEEAIAI2AqDQgIAAQQBBACgClNCAgAAgA2oiAzYClNCAgAAgAiADQQFyNgIEDAMLAkAgBkEAKAKc0ICAAEcNAEEAIAI2ApzQgIAAQQBBACgCkNCAgAAgA2oiAzYCkNCAgAAgAiADQQFyNgIEIAIgA2ogAzYCAAwDCwJAIAYoAgQiBEEDcUEBRw0AIARBeHEhBwJAAkAgBEH/AUsNACAGKAIIIgUgBEEDdiIIQQN0QbDQgIAAaiIARhoCQCAGKAIMIgQgBUcNAEEAQQAoAojQgIAAQX4gCHdxNgKI0ICAAAwCCyAEIABGGiAEIAU2AgggBSAENgIMDAELIAYoAhghCQJAAkAgBigCDCIAIAZGDQAgBigCCCIEIAhJGiAAIAQ2AgggBCAANgIMDAELAkAgBkEUaiIEKAIAIgUNACAGQRBqIgQoAgAiBQ0AQQAhAAwBCwNAIAQhCCAFIgBBFGoiBCgCACIFDQAgAEEQaiEEIAAoAhAiBQ0ACyAIQQA2AgALIAlFDQACQAJAIAYgBigCHCIFQQJ0QbjSgIAAaiIEKAIARw0AIAQgADYCACAADQFBAEEAKAKM0ICAAEF+IAV3cTYCjNCAgAAMAgsgCUEQQRQgCSgCECAGRhtqIAA2AgAgAEUNAQsgACAJNgIYAkAgBigCECIERQ0AIAAgBDYCECAEIAA2AhgLIAYoAhQiBEUNACAAQRRqIAQ2AgAgBCAANgIYCyAHIANqIQMgBiAHaiIGKAIEIQQLIAYgBEF+cTYCBCACIANqIAM2AgAgAiADQQFyNgIEAkAgA0H/AUsNACADQXhxQbDQgIAAaiEEAkACQEEAKAKI0ICAACIFQQEgA0EDdnQiA3ENAEEAIAUgA3I2AojQgIAAIAQhAwwBCyAEKAIIIQMLIAMgAjYCDCAEIAI2AgggAiAENgIMIAIgAzYCCAwDC0EfIQQCQCADQf///wdLDQAgA0EIdiIEIARBgP4/akEQdkEIcSIEdCIFIAVBgOAfakEQdkEEcSIFdCIAIABBgIAPakEQdkECcSIAdEEPdiAEIAVyIAByayIEQQF0IAMgBEEVanZBAXFyQRxqIQQLIAIgBDYCHCACQgA3AhAgBEECdEG40oCAAGohBQJAQQAoAozQgIAAIgBBASAEdCIIcQ0AIAUgAjYCAEEAIAAgCHI2AozQgIAAIAIgBTYCGCACIAI2AgggAiACNgIMDAMLIANBAEEZIARBAXZrIARBH0YbdCEEIAUoAgAhAANAIAAiBSgCBEF4cSADRg0CIARBHXYhACAEQQF0IQQgBSAAQQRxakEQaiIIKAIAIgANAAsgCCACNgIAIAIgBTYCGCACIAI2AgwgAiACNgIIDAILIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgsgBkFIaiIIIANrIgNBAXI2AgQgACAIakE4NgIEIAQgBUE3IAVrQQ9xQQAgBUFJakEPcRtqQUFqIgggCCAEQRBqSRsiCEEjNgIEQQBBACgC8NOAgAA2AqTQgIAAQQAgAzYClNCAgABBACALNgKg0ICAACAIQRBqQQApAtDTgIAANwIAIAhBACkCyNOAgAA3AghBACAIQQhqNgLQ04CAAEEAIAY2AszTgIAAQQAgADYCyNOAgABBAEEANgLU04CAACAIQSRqIQMDQCADQQc2AgAgA0EEaiIDIAVJDQALIAggBEYNAyAIIAgoAgRBfnE2AgQgCCAIIARrIgA2AgAgBCAAQQFyNgIEAkAgAEH/AUsNACAAQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgAEEDdnQiAHENAEEAIAUgAHI2AojQgIAAIAMhBQwBCyADKAIIIQULIAUgBDYCDCADIAQ2AgggBCADNgIMIAQgBTYCCAwEC0EfIQMCQCAAQf///wdLDQAgAEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCIIIAhBgIAPakEQdkECcSIIdEEPdiADIAVyIAhyayIDQQF0IAAgA0EVanZBAXFyQRxqIQMLIAQgAzYCHCAEQgA3AhAgA0ECdEG40oCAAGohBQJAQQAoAozQgIAAIghBASADdCIGcQ0AIAUgBDYCAEEAIAggBnI2AozQgIAAIAQgBTYCGCAEIAQ2AgggBCAENgIMDAQLIABBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhCANAIAgiBSgCBEF4cSAARg0DIANBHXYhCCADQQF0IQMgBSAIQQRxakEQaiIGKAIAIggNAAsgBiAENgIAIAQgBTYCGCAEIAQ2AgwgBCAENgIIDAMLIAUoAggiAyACNgIMIAUgAjYCCCACQQA2AhggAiAFNgIMIAIgAzYCCAsgC0EIaiEDDAULIAUoAggiAyAENgIMIAUgBDYCCCAEQQA2AhggBCAFNgIMIAQgAzYCCAtBACgClNCAgAAiAyACTQ0AQQAoAqDQgIAAIgQgAmoiBSADIAJrIgNBAXI2AgRBACADNgKU0ICAAEEAIAU2AqDQgIAAIAQgAkEDcjYCBCAEQQhqIQMMAwtBACEDQQBBMDYC+NOAgAAMAgsCQCALRQ0AAkACQCAIIAgoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAA2AgAgAA0BQQAgB0F+IAV3cSIHNgKM0ICAAAwCCyALQRBBFCALKAIQIAhGG2ogADYCACAARQ0BCyAAIAs2AhgCQCAIKAIQIgNFDQAgACADNgIQIAMgADYCGAsgCEEUaigCACIDRQ0AIABBFGogAzYCACADIAA2AhgLAkACQCAEQQ9LDQAgCCAEIAJqIgNBA3I2AgQgCCADaiIDIAMoAgRBAXI2AgQMAQsgCCACaiIAIARBAXI2AgQgCCACQQNyNgIEIAAgBGogBDYCAAJAIARB/wFLDQAgBEF4cUGw0ICAAGohAwJAAkBBACgCiNCAgAAiBUEBIARBA3Z0IgRxDQBBACAFIARyNgKI0ICAACADIQQMAQsgAygCCCEECyAEIAA2AgwgAyAANgIIIAAgAzYCDCAAIAQ2AggMAQtBHyEDAkAgBEH///8HSw0AIARBCHYiAyADQYD+P2pBEHZBCHEiA3QiBSAFQYDgH2pBEHZBBHEiBXQiAiACQYCAD2pBEHZBAnEiAnRBD3YgAyAFciACcmsiA0EBdCAEIANBFWp2QQFxckEcaiEDCyAAIAM2AhwgAEIANwIQIANBAnRBuNKAgABqIQUCQCAHQQEgA3QiAnENACAFIAA2AgBBACAHIAJyNgKM0ICAACAAIAU2AhggACAANgIIIAAgADYCDAwBCyAEQQBBGSADQQF2ayADQR9GG3QhAyAFKAIAIQICQANAIAIiBSgCBEF4cSAERg0BIANBHXYhAiADQQF0IQMgBSACQQRxakEQaiIGKAIAIgINAAsgBiAANgIAIAAgBTYCGCAAIAA2AgwgACAANgIIDAELIAUoAggiAyAANgIMIAUgADYCCCAAQQA2AhggACAFNgIMIAAgAzYCCAsgCEEIaiEDDAELAkAgCkUNAAJAAkAgACAAKAIcIgVBAnRBuNKAgABqIgMoAgBHDQAgAyAINgIAIAgNAUEAIAlBfiAFd3E2AozQgIAADAILIApBEEEUIAooAhAgAEYbaiAINgIAIAhFDQELIAggCjYCGAJAIAAoAhAiA0UNACAIIAM2AhAgAyAINgIYCyAAQRRqKAIAIgNFDQAgCEEUaiADNgIAIAMgCDYCGAsCQAJAIARBD0sNACAAIAQgAmoiA0EDcjYCBCAAIANqIgMgAygCBEEBcjYCBAwBCyAAIAJqIgUgBEEBcjYCBCAAIAJBA3I2AgQgBSAEaiAENgIAAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQMCQAJAQQEgB0EDdnQiCCAGcQ0AQQAgCCAGcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCADNgIMIAIgAzYCCCADIAI2AgwgAyAINgIIC0EAIAU2ApzQgIAAQQAgBDYCkNCAgAALIABBCGohAwsgAUEQaiSAgICAACADCwoAIAAQyYCAgAAL4g0BB38CQCAARQ0AIABBeGoiASAAQXxqKAIAIgJBeHEiAGohAwJAIAJBAXENACACQQNxRQ0BIAEgASgCACICayIBQQAoApjQgIAAIgRJDQEgAiAAaiEAAkAgAUEAKAKc0ICAAEYNAAJAIAJB/wFLDQAgASgCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgASgCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAwsgAiAGRhogAiAENgIIIAQgAjYCDAwCCyABKAIYIQcCQAJAIAEoAgwiBiABRg0AIAEoAggiAiAESRogBiACNgIIIAIgBjYCDAwBCwJAIAFBFGoiAigCACIEDQAgAUEQaiICKAIAIgQNAEEAIQYMAQsDQCACIQUgBCIGQRRqIgIoAgAiBA0AIAZBEGohAiAGKAIQIgQNAAsgBUEANgIACyAHRQ0BAkACQCABIAEoAhwiBEECdEG40oCAAGoiAigCAEcNACACIAY2AgAgBg0BQQBBACgCjNCAgABBfiAEd3E2AozQgIAADAMLIAdBEEEUIAcoAhAgAUYbaiAGNgIAIAZFDQILIAYgBzYCGAJAIAEoAhAiAkUNACAGIAI2AhAgAiAGNgIYCyABKAIUIgJFDQEgBkEUaiACNgIAIAIgBjYCGAwBCyADKAIEIgJBA3FBA0cNACADIAJBfnE2AgRBACAANgKQ0ICAACABIABqIAA2AgAgASAAQQFyNgIEDwsgASADTw0AIAMoAgQiAkEBcUUNAAJAAkAgAkECcQ0AAkAgA0EAKAKg0ICAAEcNAEEAIAE2AqDQgIAAQQBBACgClNCAgAAgAGoiADYClNCAgAAgASAAQQFyNgIEIAFBACgCnNCAgABHDQNBAEEANgKQ0ICAAEEAQQA2ApzQgIAADwsCQCADQQAoApzQgIAARw0AQQAgATYCnNCAgABBAEEAKAKQ0ICAACAAaiIANgKQ0ICAACABIABBAXI2AgQgASAAaiAANgIADwsgAkF4cSAAaiEAAkACQCACQf8BSw0AIAMoAggiBCACQQN2IgVBA3RBsNCAgABqIgZGGgJAIAMoAgwiAiAERw0AQQBBACgCiNCAgABBfiAFd3E2AojQgIAADAILIAIgBkYaIAIgBDYCCCAEIAI2AgwMAQsgAygCGCEHAkACQCADKAIMIgYgA0YNACADKAIIIgJBACgCmNCAgABJGiAGIAI2AgggAiAGNgIMDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQACQAJAIAMgAygCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAgsgB0EQQRQgBygCECADRhtqIAY2AgAgBkUNAQsgBiAHNgIYAkAgAygCECICRQ0AIAYgAjYCECACIAY2AhgLIAMoAhQiAkUNACAGQRRqIAI2AgAgAiAGNgIYCyABIABqIAA2AgAgASAAQQFyNgIEIAFBACgCnNCAgABHDQFBACAANgKQ0ICAAA8LIAMgAkF+cTYCBCABIABqIAA2AgAgASAAQQFyNgIECwJAIABB/wFLDQAgAEF4cUGw0ICAAGohAgJAAkBBACgCiNCAgAAiBEEBIABBA3Z0IgBxDQBBACAEIAByNgKI0ICAACACIQAMAQsgAigCCCEACyAAIAE2AgwgAiABNgIIIAEgAjYCDCABIAA2AggPC0EfIQICQCAAQf///wdLDQAgAEEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIGIAZBgIAPakEQdkECcSIGdEEPdiACIARyIAZyayICQQF0IAAgAkEVanZBAXFyQRxqIQILIAEgAjYCHCABQgA3AhAgAkECdEG40oCAAGohBAJAAkBBACgCjNCAgAAiBkEBIAJ0IgNxDQAgBCABNgIAQQAgBiADcjYCjNCAgAAgASAENgIYIAEgATYCCCABIAE2AgwMAQsgAEEAQRkgAkEBdmsgAkEfRht0IQIgBCgCACEGAkADQCAGIgQoAgRBeHEgAEYNASACQR12IQYgAkEBdCECIAQgBkEEcWpBEGoiAygCACIGDQALIAMgATYCACABIAQ2AhggASABNgIMIAEgATYCCAwBCyAEKAIIIgAgATYCDCAEIAE2AgggAUEANgIYIAEgBDYCDCABIAA2AggLQQBBACgCqNCAgABBf2oiAUF/IAEbNgKo0ICAAAsLBAAAAAtOAAJAIAANAD8AQRB0DwsCQCAAQf//A3ENACAAQX9MDQACQCAAQRB2QAAiAEF/Rw0AQQBBMDYC+NOAgABBfw8LIABBEHQPCxDKgICAAAAL8gICA38BfgJAIAJFDQAgACABOgAAIAIgAGoiA0F/aiABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBfWogAToAACADQX5qIAE6AAAgAkEHSQ0AIAAgAToAAyADQXxqIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIFayICQSBJDQAgAa1CgYCAgBB+IQYgAyAFaiEBA0AgASAGNwMYIAEgBjcDECABIAY3AwggASAGNwMAIAFBIGohASACQWBqIgJBH0sNAAsLIAALC45IAQBBgAgLhkgBAAAAAgAAAAMAAAAAAAAAAAAAAAQAAAAFAAAAAAAAAAAAAAAGAAAABwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEludmFsaWQgY2hhciBpbiB1cmwgcXVlcnkAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9ib2R5AENvbnRlbnQtTGVuZ3RoIG92ZXJmbG93AENodW5rIHNpemUgb3ZlcmZsb3cAUmVzcG9uc2Ugb3ZlcmZsb3cASW52YWxpZCBtZXRob2QgZm9yIEhUVFAveC54IHJlcXVlc3QASW52YWxpZCBtZXRob2QgZm9yIFJUU1AveC54IHJlcXVlc3QARXhwZWN0ZWQgU09VUkNFIG1ldGhvZCBmb3IgSUNFL3gueCByZXF1ZXN0AEludmFsaWQgY2hhciBpbiB1cmwgZnJhZ21lbnQgc3RhcnQARXhwZWN0ZWQgZG90AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fc3RhdHVzAEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n", "module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCrLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC0kBAXsgAEEQav0MAAAAAAAAAAAAAAAAAAAAACIB/QsDACAAIAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='\n", "// @ts-check\n\n'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst util = require('./core/util')\nconst timers = require('./timers')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError,\n ResponseExceededMaxSizeError,\n ClientDestroyedError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors,\n kLocalAddress,\n kMaxResponseSize\n} = require('./core/symbols')\nconst FastBuffer = Buffer[Symbol.species]\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\n/**\n * @type {import('../types/client').default}\n */\nclass Client extends DispatcherBase {\n /**\n *\n * @param {string|URL} url\n * @param {import('../types/client').Client.Options} options\n */\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient,\n localAddress,\n maxResponseSize,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n throw new InvalidArgumentError('localAddress must be valid string IP address')\n }\n\n if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n throw new InvalidArgumentError('maxResponseSize must be a positive number')\n }\n\n if (\n autoSelectFamilyAttemptTimeout != null &&\n (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n ) {\n throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || 16384\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kLocalAddress] = localAddress != null ? localAddress : null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = new Request(origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n return new Promise((resolve) => {\n if (!this[kSize]) {\n resolve(null)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n // TODO (fix): Should we error here with ClientDestroyedError?\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp-wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd-wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp-wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\nllhttpPromise.catch()\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n this.connection = ''\n this.maxResponseSize = client[kMaxResponseSize]\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n timers.clearTimeout(this.timeout)\n if (value) {\n this.timeout = timers.setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message =\n 'Response does not match the HTTP/1.1 protocol (' +\n Buffer.from(llhttp.memory.buffer, ptr, len).toString() +\n ')'\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n timers.clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n this.connection += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = (\n shouldKeepAlive ||\n // Override llhttp value which does not allow keepAlive for HEAD.\n (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n )\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (this.shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n let pause\n try {\n pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n\n if (request.method === 'HEAD') {\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode, maxResponseSize } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n util.destroy(socket, new ResponseExceededMaxSizeError())\n return -1\n }\n\n this.bytesRead += buf.length\n\n try {\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n this.connection = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n try {\n request.onComplete(headers)\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n parser.readMore()\n}\n\nfunction onSocketError (err) {\n const { [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.onMessageComplete()\n return\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser } = this\n\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n return\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client } = this\n\n if (!this[kError] && this[kParser].statusCode && !this[kParser].shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n this[kParser].onMessageComplete()\n }\n\n this[kParser].destroy()\n this[kParser] = null\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substr(1, idx - 1)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (client.destroyed) {\n util.destroy(socket.on('error', () => {}), new ClientDestroyedError())\n return\n }\n\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kError] = null\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n socket[kClient] = client\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n client[kSocket] = socket\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n if (client.destroyed) {\n return\n }\n\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client[kClosedResolve] && !client[kSize]) {\n client[kClosedResolve]()\n client[kClosedResolve] = null\n return\n }\n\n const socket = client[kSocket]\n\n if (socket && !socket.destroyed) {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket) {\n connect(client)\n return\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (util.isStream(request.body) && util.bodyLength(request.body) === 0) {\n request.body\n .on('data', /* istanbul ignore next */ function () {\n /* istanbul ignore next */\n assert(false)\n })\n .on('error', function (err) {\n errorRequest(client, request, err)\n })\n .on('end', function () {\n util.destroy(this)\n })\n\n request.body = null\n }\n\n if (client[kRunning] > 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\nfunction write (client, request) {\n const { body, method, path, host, upgrade, headers, blocking, reset } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n if (request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (reset != null) {\n socket[kReset] = reset\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining] && !socket[kReset]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeStream ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n if (finished) {\n return\n }\n\n try {\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n if (finished) {\n return\n }\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n onFinished(new RequestAbortedError())\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(buffer)\n socket.uncork()\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(socket, err)\n }\n}\n\nasync function writeIterable ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n socket.cork()\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'latin1')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n socket.uncork()\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'latin1')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n", "/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n", "const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n", "'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n", "'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout == null ? 10e3 : connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n", "'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n", "'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n}\n\nmodule.exports = function () {\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n", "'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n", "// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nmodule.exports = class BodyReadable extends Readable {\n constructor ({\n resume,\n abort,\n contentType = '',\n highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n }) {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n async dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n const signal = opts && opts.signal\n const abortFn = () => {\n this.destroy()\n }\n let signalListenerCleanup\n if (signal) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new InvalidArgumentError('signal must be an AbortSignal')\n }\n util.throwIfAborted(signal)\n signalListenerCleanup = util.addAbortListener(signal, abortFn)\n }\n try {\n for await (const chunk of this) {\n util.throwIfAborted(signal)\n limit -= Buffer.byteLength(chunk)\n if (limit < 0) {\n return\n }\n }\n } catch {\n util.throwIfAborted(signal)\n } finally {\n if (typeof signalListenerCleanup === 'function') {\n signalListenerCleanup()\n } else if (signalListenerCleanup) {\n signalListenerCleanup[Symbol.dispose]()\n }\n }\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n", "const assert = require('assert')\nconst {\n ResponseStatusCodeError\n} = require('../core/errors')\nconst { toUSVString } = require('../core/util')\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n assert(body)\n\n let chunks = []\n let limit = 0\n\n for await (const chunk of body) {\n chunks.push(chunk)\n limit += chunk.length\n if (limit > 128 * 1024) {\n chunks = null\n break\n }\n }\n\n if (statusCode === 204 || !contentType || !chunks) {\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = toUSVString(Buffer.concat(chunks))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nmodule.exports = { getResolveErrorBodyCallback }\n", "const { addAbortListener } = require('../core/util')\nconst { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n addAbortListener(self[kSignal], self[kListener])\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n", "'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n throw new InvalidArgumentError('invalid highWaterMark')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n this.highWaterMark = highWaterMark\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n const body = new Readable({ resume, abort, contentType, highWaterMark })\n\n this.callback = null\n this.res = body\n\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n } else {\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\n", "'use strict'\n\nconst { finished, PassThrough } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError || false\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { factory, opaque, context, callback, responseHeaders } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n\n let res\n\n if (this.throwOnError && statusCode >= 400) {\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n res = new PassThrough()\n\n this.callback = null\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body: res, contentType, statusCode, statusMessage, headers }\n )\n } else {\n res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n }\n\n res.on('drain', resume)\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res.write(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n", "'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n", "'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n", "'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n", "'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n", "'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n", "'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\nconst {\n types: {\n isPromise\n }\n} = require('util')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record<string, string>} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [\n ...keyValuePairs,\n Buffer.from(`${key}`),\n Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n ], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches, _data = data) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const body = typeof _data === 'function'\n ? _data({ ...opts, headers: optsHeaders })\n : _data\n\n // util.types.isPromise is likely needed for jest.\n if (isPromise(body)) {\n // If handleReply is asynchronous, throwing an error\n // in the callback will reject the promise, rather than\n // synchronously throw the error, which breaks some tests.\n // Rather, we wait for the callback to resolve if it is a\n // promise, and then re-run handleReply with the new body.\n body.then((newData) => handleReply(mockDispatches, newData))\n return\n }\n\n const responseData = getResponseData(body)\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n", "'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n", "'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n", "'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n", "'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(\u2026)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '\u2705' : '\u274C',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n", "'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n", "'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Pool = require('./pool')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n const { clientFactory = defaultFactory } = opts\n\n if (typeof clientFactory !== 'function') {\n throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = opts.headers || {}\n\n if (opts.auth && opts.token) {\n throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token')\n } else if (opts.auth) {\n /* @deprecated in favour of opts.token */\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n } else if (opts.token) {\n this[kProxyHeaders]['proxy-authorization'] = opts.token\n }\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host } = resolvedUrl\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = clientFactory(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError('Proxy response !== 200 when HTTP Tunneling'))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record<string, string>} headers\n * @returns {Record<string, string>}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record<string, string>} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record<string, string>} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n", "'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n", "'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst { webidl } = require('./webidl')\nconst assert = require('assert')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n\n // Trimming the end with `.replace()` and a RegExp is typically subject to\n // ReDoS. This is safer and faster.\n let i = potentialValue.length\n while (/[\\r\\n\\t ]/.test(potentialValue.charAt(--i)));\n return potentialValue.slice(0, i + 1).replace(/^[\\r\\n\\t ]+/, '')\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (const header of object) {\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n throw webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header\u2019s first item, header\u2019s second item) to headers.\n headers.append(header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key \u2192 value in object,\n // append (key, value) to headers\n for (const [key, value] of Object.entries(object)) {\n headers.append(key, value)\n }\n } else {\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n }\n}\n\nclass HeadersList {\n /** @type {[string, string][]|null} */\n cookies = null\n\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n this.cookies = init.cookies\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n this.cookies = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header\u2019s name.\n const lowercaseName = name.toLowerCase()\n const exists = this[kHeadersMap].get(lowercaseName)\n\n // 2. Append (name, value) to list.\n if (exists) {\n const delimiter = lowercaseName === 'cookie' ? '; ' : ', '\n this[kHeadersMap].set(lowercaseName, {\n name: exists.name,\n value: `${exists.value}${delimiter}${value}`\n })\n } else {\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n if (lowercaseName === 'set-cookie') {\n this.cookies ??= []\n this.cookies.push(value)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n const lowercaseName = name.toLowerCase()\n\n if (lowercaseName === 'set-cookie') {\n this.cookies = [value]\n }\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n return this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n\n if (name === 'set-cookie') {\n this.cookies = null\n }\n\n return this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n // 1. If list does not contain name, then return null.\n if (!this.contains(name)) {\n return null\n }\n\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return this[kHeadersMap].get(name.toLowerCase())?.value ?? null\n }\n\n * [Symbol.iterator] () {\n // use the lowercased name\n for (const [name, { value }] of this[kHeadersMap]) {\n yield [name, value]\n }\n }\n\n get entries () {\n const headers = {}\n\n if (this[kHeadersMap].size) {\n for (const { name, value } of this[kHeadersMap].values()) {\n headers[name] = value\n }\n }\n\n return headers\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this\u2019s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers\u2019s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers\u2019s header list.\n // 8. If headers\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n return this[kHeadersList].append(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this\u2019s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this\u2019s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this\u2019s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n return this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this\u2019s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this\u2019s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this\u2019s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this\u2019s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this\u2019s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this\u2019s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this\u2019s header list.\n // 8. If this\u2019s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n return this[kHeadersList].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n getSetCookie () {\n webidl.brandCheck(this, Headers)\n\n // 1. If this\u2019s header list does not contain `Set-Cookie`, then return \u00AB \u00BB.\n // 2. Return the values of all headers in this\u2019s header list whose name is\n // a byte-case-insensitive match for `Set-Cookie`, in order.\n\n const list = this[kHeadersList].cookies\n\n if (list) {\n return [...list]\n }\n\n return []\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n get [kHeadersSortedMap] () {\n if (this[kHeadersList][kHeadersSortedMap]) {\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n // 1. Let headers be an empty list of headers with the key being the name\n // and value the value.\n const headers = []\n\n // 2. Let names be the result of convert header names to a sorted-lowercase\n // set with all the names of the headers in list.\n const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)\n const cookies = this[kHeadersList].cookies\n\n // 3. For each name of names:\n for (const [name, value] of names) {\n // 1. If name is `set-cookie`, then:\n if (name === 'set-cookie') {\n // 1. Let values be a list of all values of headers in list whose name\n // is a byte-case-insensitive match for name, in order.\n\n // 2. For each value of values:\n // 1. Append (name, value) to headers.\n for (const value of cookies) {\n headers.push([name, value])\n }\n } else {\n // 2. Otherwise:\n\n // 1. Let value be the result of getting name from list.\n\n // 2. Assert: value is non-null.\n assert(value !== null)\n\n // 3. Append (name, value) to headers.\n headers.push([name, value])\n }\n }\n\n this[kHeadersList][kHeadersSortedMap] = headers\n\n // 4. Return headers.\n return headers\n }\n\n keys () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'value'\n )\n }\n\n entries () {\n webidl.brandCheck(this, Headers)\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key+value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n webidl.brandCheck(this, Headers)\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n getSetCookie: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty,\n [Symbol.iterator]: { enumerable: false },\n [Symbol.toStringTag]: {\n value: 'Headers',\n configurable: true\n }\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence<sequence<ByteString>>'](V)\n }\n\n return webidl.converters['record<ByteString, ByteString>'](V)\n }\n\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence<sequence<ByteString>>', 'record<ByteString, ByteString>']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n", "'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike,\n isomorphicEncode\n} = require('./util')\nconst {\n redirectStatus,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this\u2019s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data = undefined, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' })\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = new TextEncoder('utf-8').encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this\u2019s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' })\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object\u2019s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatus.includes(status)) {\n throw new RangeError('Invalid status code ' + status)\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this\u2019s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject\u2019s response\u2019s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n const value = isomorphicEncode(URLSerializer(parsedURL))\n\n // 7. Append `Location`/value to responseObject\u2019s response\u2019s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this\u2019s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is this\u2019s response\u2019s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers()\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n // Returns response\u2019s type, e.g., \"cors\".\n get type () {\n webidl.brandCheck(this, Response)\n\n // The type getter steps are to return this\u2019s response\u2019s type.\n return this[kState].type\n }\n\n // Returns response\u2019s URL, if it has one; otherwise the empty string.\n get url () {\n webidl.brandCheck(this, Response)\n\n const urlList = this[kState].urlList\n\n // The url getter steps are to return the empty string if this\u2019s\n // response\u2019s URL is null; otherwise this\u2019s response\u2019s URL,\n // serialized with exclude fragment set to true.\n const url = urlList[urlList.length - 1] ?? null\n\n if (url === null) {\n return ''\n }\n\n return URLSerializer(url, true)\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n webidl.brandCheck(this, Response)\n\n // The redirected getter steps are to return true if this\u2019s response\u2019s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response\u2019s status.\n get status () {\n webidl.brandCheck(this, Response)\n\n // The status getter steps are to return this\u2019s response\u2019s status.\n return this[kState].status\n }\n\n // Returns whether response\u2019s status is an ok status.\n get ok () {\n webidl.brandCheck(this, Response)\n\n // The ok getter steps are to return true if this\u2019s response\u2019s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response\u2019s status message.\n get statusText () {\n webidl.brandCheck(this, Response)\n\n // The statusText getter steps are to return this\u2019s response\u2019s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response\u2019s headers as Headers.\n get headers () {\n webidl.brandCheck(this, Response)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n get body () {\n webidl.brandCheck(this, Response)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Response)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n // Returns a clone of response.\n clone () {\n webidl.brandCheck(this, Response)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n throw webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this\u2019s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Response',\n configurable: true\n }\n})\n\nObject.defineProperties(Response, {\n json: kEnumerableProperty,\n redirect: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response\u2019s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response\u2019s body is non-null, then set newResponse\u2019s body to the\n // result of cloning response\u2019s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response\u2019s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response\u2019s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response\u2019s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(new DOMException('The operation was aborted.', 'AbortError'))\n : makeNetworkError('Request was cancelled.')\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response\u2019s response\u2019s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response\u2019s response\u2019s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response\u2019s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kHeaders], init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n throw webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code ' + response.status\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n types.isAnyArrayBuffer(V) ||\n types.isTypedArray(V) ||\n types.isDataView(V)\n ) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response,\n cloneResponse\n}\n", "/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod,\n makePolicyContainer\n} = require('./util')\nconst {\n forbiddenMethods,\n corsSafeListedMethods,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n requestDuplex\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require('events')\n\nlet TransformStream = globalThis.TransformStream\n\nconst kInit = Symbol('init')\nconst kAbortController = Symbol('abortController')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kInit) {\n return\n }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' })\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin(),\n get origin () {\n return this.baseUrl?.origin\n },\n policyContainer: makePolicyContainer()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this\u2019s relevant settings object\u2019s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input\u2019s request.\n request = input[kState]\n\n // 9. Set signal to input\u2019s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this\u2019s relevant settings object\u2019s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request\u2019s window is an environment settings object and its origin\n // is same origin with origin, then set window to request\u2019s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if ('window' in init) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request\u2019s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request\u2019s method.\n method: request.method,\n // header list A copy of request\u2019s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This\u2019s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request\u2019s priority.\n priority: request.priority,\n // origin request\u2019s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request\u2019s referrer.\n referrer: request.referrer,\n // referrer policy request\u2019s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request\u2019s mode.\n mode: request.mode,\n // credentials mode request\u2019s credentials mode.\n credentials: request.credentials,\n // cache mode request\u2019s cache mode.\n cache: request.cache,\n // redirect mode request\u2019s redirect mode.\n redirect: request.redirect,\n // integrity metadata request\u2019s integrity metadata.\n integrity: request.integrity,\n // keepalive request\u2019s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request\u2019s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request\u2019s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request\u2019s URL list.\n urlList: [...request.urlList]\n })\n\n // 13. If init is not empty, then:\n if (Object.keys(init).length > 0) {\n // 1. If request\u2019s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request\u2019s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request\u2019s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request\u2019s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request\u2019s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request\u2019s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request\u2019s URL to request\u2019s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request\u2019s URL list to \u00AB request\u2019s URL \u00BB.\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request\u2019s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // - parsedReferrer\u2019s scheme is \"about\" and path is the string \"client\"\n // - parsedReferrer\u2019s origin is not same origin with origin\n // then set request\u2019s referrer to \"client\".\n if (\n (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') ||\n (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl))\n ) {\n request.referrer = 'client'\n } else {\n // 4. Otherwise, set request\u2019s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request\u2019s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n throw webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request\u2019s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request\u2019s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n }\n\n // 18. If init[\"cache\"] exists, then set request\u2019s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n }\n\n // 21. If request\u2019s cache mode is \"only-if-cached\" and request\u2019s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request\u2019s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n }\n\n // 23. If init[\"integrity\"] exists, then set request\u2019s integrity metadata to it.\n if (init.integrity !== undefined && init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request\u2019s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(init.method)) {\n throw TypeError(`'${init.method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethods.indexOf(method.toUpperCase()) !== -1) {\n throw TypeError(`'${init.method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethod(init.method)\n\n // 4. Set request\u2019s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this\u2019s request to request.\n this[kState] = request\n\n // 28. Set this\u2019s signal to a new AbortSignal object with this\u2019s relevant\n // Realm.\n // TODO: could this be simplified with AbortSignal.any\n // (https://dom.spec.whatwg.org/#dom-abortsignal-any)\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this\u2019s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n // Keep a strong ref to ac while request object\n // is alive. This is needed to prevent AbortController\n // from being prematurely garbage collected.\n // See, https://github.com/nodejs/undici/issues/1926.\n this[kAbortController] = ac\n\n const acRef = new WeakRef(ac)\n const abort = function () {\n const ac = acRef.deref()\n if (ac !== undefined) {\n ac.abort(this.reason)\n }\n }\n\n // Third-party AbortControllers may not work with these.\n // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n try {\n // If the max amount of listeners is equal to the default, increase it\n // This is only available in node >= v19.9.0\n if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n setMaxListeners(100, signal)\n } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) {\n setMaxListeners(100, signal)\n }\n } catch {}\n\n util.addAbortListener(signal, abort)\n requestFinalizer.register(ac, { signal, abort })\n }\n }\n\n // 30. Set this\u2019s headers to a new Headers object with this\u2019s relevant\n // Realm, whose header list is request\u2019s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers()\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this\u2019s request\u2019s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this\u2019s request\u2019s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethods.includes(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this\u2019s headers\u2019s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (Object.keys(init).length !== 0) {\n // 1. Let headers be a copy of this\u2019s headers and its associated header\n // list.\n let headers = new Headers(this[kHeaders])\n\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n if (init.headers !== undefined) {\n headers = init.headers\n }\n\n // 3. Empty this\u2019s headers\u2019s header list.\n this[kHeaders][kHeadersList].clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header\u2019s name/header\u2019s value to this\u2019s headers.\n if (headers.constructor.name === 'Headers') {\n for (const [key, val] of headers) {\n this[kHeaders].append(key, val)\n }\n } else {\n // 5. Otherwise, fill this\u2019s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input\u2019s request\u2019s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request\u2019s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n (init.body != null || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request\u2019s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this\u2019s headers\u2019s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this\u2019s headers.\n if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody\u2019s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If initBody is non-null and init[\"duplex\"] does not exist,\n // then throw a TypeError.\n if (initBody != null && init.duplex == null) {\n throw new TypeError('RequestInit: duplex option is required when sending a body.')\n }\n\n // 2. If this\u2019s request\u2019s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 3. Set this\u2019s request\u2019s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this\u2019s request\u2019s body to finalBody.\n this[kState].body = finalBody\n }\n\n // Returns request\u2019s HTTP method, which is \"GET\" by default.\n get method () {\n webidl.brandCheck(this, Request)\n\n // The method getter steps are to return this\u2019s request\u2019s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n webidl.brandCheck(this, Request)\n\n // The url getter steps are to return this\u2019s request\u2019s URL, serialized.\n return URLSerializer(this[kState].url)\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n webidl.brandCheck(this, Request)\n\n // The headers getter steps are to return this\u2019s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n webidl.brandCheck(this, Request)\n\n // The destination getter are to return this\u2019s request\u2019s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global\u2019s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n webidl.brandCheck(this, Request)\n\n // 1. If this\u2019s request\u2019s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this\u2019s request\u2019s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this\u2019s request\u2019s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request\u2019s\n // referrer.\n get referrerPolicy () {\n webidl.brandCheck(this, Request)\n\n // The referrerPolicy getter steps are to return this\u2019s request\u2019s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n webidl.brandCheck(this, Request)\n\n // The mode getter steps are to return this\u2019s request\u2019s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this\u2019s request\u2019s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser\u2019s cache when fetching.\n get cache () {\n webidl.brandCheck(this, Request)\n\n // The cache getter steps are to return this\u2019s request\u2019s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n webidl.brandCheck(this, Request)\n\n // The redirect getter steps are to return this\u2019s request\u2019s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request\u2019s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n webidl.brandCheck(this, Request)\n\n // The integrity getter steps are to return this\u2019s request\u2019s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n webidl.brandCheck(this, Request)\n\n // The keepalive getter steps are to return this\u2019s request\u2019s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isReloadNavigation getter steps are to return true if this\u2019s\n // request\u2019s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isHistoryNavigation getter steps are to return true if this\u2019s request\u2019s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n webidl.brandCheck(this, Request)\n\n // The signal getter steps are to return this\u2019s signal.\n return this[kSignal]\n }\n\n get body () {\n webidl.brandCheck(this, Request)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Request)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n get duplex () {\n webidl.brandCheck(this, Request)\n\n return 'half'\n }\n\n // Returns a clone of request.\n clone () {\n webidl.brandCheck(this, Request)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this\u2019s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this\u2019s headers\u2019s guard, and this\u2019s relevant Realm.\n const clonedRequestObject = new Request(kInit)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers()\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject\u2019s signal follow this\u2019s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n util.addAbortListener(\n this.signal,\n () => {\n ac.abort(this.signal.reason)\n }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request\u2019s body is non-null, set newRequest\u2019s body to the\n // result of cloning request\u2019s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty,\n duplex: kEnumerableProperty,\n destination: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n isHistoryNavigation: kEnumerableProperty,\n isReloadNavigation: kEnumerableProperty,\n keepalive: kEnumerableProperty,\n integrity: kEnumerableProperty,\n cache: kEnumerableProperty,\n credentials: kEnumerableProperty,\n attribute: kEnumerableProperty,\n referrerPolicy: kEnumerableProperty,\n referrer: kEnumerableProperty,\n mode: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Request',\n configurable: true\n }\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: referrerPolicy\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: requestMode\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: requestCredentials\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: requestCache\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: requestRedirect\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n },\n {\n key: 'duplex',\n converter: webidl.converters.DOMString,\n allowedValues: requestDuplex\n }\n])\n\nmodule.exports = { Request, makeRequest }\n", "// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody,\n readableStreamClose,\n isomorphicEncode,\n urlIsLocal,\n urlIsHttpHttpsScheme,\n urlHasHttpsScheme\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody } = require('./body')\nconst {\n redirectStatus,\n nullBodyStatus,\n safeMethods,\n requestBodyHeader,\n subresource,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\nconst { getGlobalDispatcher } = require('../global')\nconst { webidl } = require('./webidl')\nconst { STATUS_CODES } = require('http')\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream = globalThis.ReadableStream\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n // 2 terminated listeners get added per request,\n // but only 1 gets removed. If there are 20 redirects,\n // 21 listeners will be added.\n // See https://github.com/nodejs/undici/issues/1711\n // TODO (fix): Find and fix root cause for leaked listener.\n this.setMaxListeners(21)\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n // https://fetch.spec.whatwg.org/#fetch-controller-abort\n abort (error) {\n if (this.state !== 'ongoing') {\n return\n }\n\n // 1. Set controller\u2019s state to \"aborted\".\n this.state = 'aborted'\n\n // 2. Let fallbackError be an \"AbortError\" DOMException.\n // 3. Set error to fallbackError if it is not given.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 4. Let serializedError be StructuredSerialize(error).\n // If that threw an exception, catch it, and let\n // serializedError be StructuredSerialize(fallbackError).\n\n // 5. Set controller\u2019s serialized abort reason to serializedError.\n this.serializedAbortReason = error\n\n this.connection?.destroy(error)\n this.emit('terminated', error)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nasync function fetch (input, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' })\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject\u2019s request.\n const request = requestObject[kState]\n\n // 4. If requestObject\u2019s signal\u2019s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort the fetch() call with p, request, null, and\n // requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, null, requestObject.signal.reason)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request\u2019s client\u2019s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request\u2019s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this\u2019s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject\u2019s signal:\n addAbortListener(\n requestObject.signal,\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Assert: controller is non-null.\n assert(controller != null)\n\n // 3. Abort controller with requestObject\u2019s signal\u2019s abort reason.\n controller.abort(requestObject.signal.reason)\n\n // 4. Abort the fetch() call with p, request, responseObject,\n // and requestObject\u2019s signal\u2019s abort reason.\n abortFetch(p, request, responseObject, requestObject.signal.reason)\n }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return\n }\n\n // 2. If response\u2019s aborted flag is set, then:\n if (response.aborted) {\n // 1. Let deserializedError be the result of deserialize a serialized\n // abort reason given controller\u2019s serialized abort reason and\n // relevantRealm.\n\n // 2. Abort the fetch() call with p, request, responseObject, and\n // deserializedError.\n\n abortFetch(p, request, responseObject, controller.serializedAbortReason)\n return\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response\u2019s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response\u2019s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response\u2019s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response\u2019s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL\u2019s scheme is not an HTTP(S) scheme, then return.\n if (!urlIsHttpHttpsScheme(originalURL)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response\u2019s timing allow passed flag is not set, then:\n if (!timingInfo.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo\u2019s end time to the coarsened shared current time\n // given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability.\n // TODO: given global\u2019s relevant settings object\u2019s cross-origin isolated\n // capability?\n timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) {\n performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject, error) {\n // Note: AbortSignal.reason was added in node v17.2.0\n // which would give us an undefined error to reject with.\n // Remove this once node v16 is no longer supported.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 1. Reject promise with error.\n p.reject(error)\n\n // 2. If request\u2019s body is not null and is readable, then cancel request\u2019s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 3. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 4. Let response be responseObject\u2019s response.\n const response = responseObject[kState]\n\n // 5. If response\u2019s body is not null and is readable, then error response\u2019s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request\u2019s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request\u2019s client\u2019s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request\u2019s client\u2019s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request\u2019s body is a byte sequence, then set request\u2019s body to\n // request\u2019s body as a body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request\u2019s window is \"client\", then set request\u2019s window to request\u2019s\n // client, if request\u2019s client\u2019s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request\u2019s origin is \"client\", then set request\u2019s origin to request\u2019s\n // client\u2019s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request\u2019s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request\u2019s client is non-null, then set request\u2019s policy\n // container to a clone of request\u2019s client\u2019s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request\u2019s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request\u2019s header list does not contain `Accept`, then:\n if (!request.headersList.contains('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request\u2019s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request\u2019s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request\u2019s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request\u2019s header list.\n if (!request.headersList.contains('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request\u2019s priority is null, then use request\u2019s initiator and\n // destination appropriately in setting request\u2019s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresource.includes(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request\u2019s local-URLs-only flag is set and request\u2019s current URL is\n // not local, then set response to a network error.\n if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request\u2019s referrer policy is the empty string, then set request\u2019s\n // referrer policy to request\u2019s policy container\u2019s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request\u2019s referrer is not \"no-referrer\", then set request\u2019s\n // referrer to the result of invoking determine request\u2019s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request\u2019s current URL\u2019s scheme to \"https\" if all of the following\n // conditions are true:\n // - request\u2019s current URL\u2019s scheme is \"http\"\n // - request\u2019s current URL\u2019s host is a domain\n // - Matching request\u2019s current URL\u2019s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request\u2019s current URL\u2019s origin is same origin with request\u2019s origin,\n // and request\u2019s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request\u2019s current URL\u2019s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request\u2019s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request\u2019s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request\u2019s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request\u2019s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request\u2019s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request\u2019s current URL\u2019s scheme is not an HTTP(S) scheme\n if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request\u2019s use-CORS-preflight flag is set\n // - request\u2019s unsafe-request flag is set and either request\u2019s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request\u2019s header list is not empty\n // 1. Set request\u2019s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request\u2019s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request\u2019s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response\u2019s header list.\n // TODO\n // 2. If request\u2019s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response\u2019s CORS-exposed header-name list to\n // all unique header names in response\u2019s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response\u2019s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request\u2019s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response\u2019s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse\u2019s URL list is empty, then set it to a clone of\n // request\u2019s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request\u2019s timing allow failed flag is unset, then set\n // internalResponse\u2019s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response\u2019s type is \"opaque\", internalResponse\u2019s status is 206,\n // internalResponse\u2019s range-requested flag is set, and request\u2019s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.contains('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request\u2019s method is\n // `HEAD` or `CONNECT`, or internalResponse\u2019s status is a null body status,\n // set internalResponse\u2019s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request\u2019s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request\u2019s response tainting is \"opaque\", or response\u2019s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request\u2019s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response\u2019s body to bytes as a body.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response\u2019s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nasync function schemeFetch (fetchParams) {\n // Note: since the connection is destroyed on redirect, which sets fetchParams to a\n // cancelled state, we do not want this condition to trigger *unless* there have been\n // no redirects. See https://github.com/nodejs/undici/issues/1776\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Let request be fetchParams\u2019s request.\n const { request } = fetchParams\n\n const { protocol: scheme } = requestCurrentURL(request)\n\n // 3. Switch on request\u2019s current URL\u2019s scheme and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request\u2019s current URL\u2019s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is \u00AB (`Content-Type`, `text/html;charset=utf-8`) \u00BB,\n // and body is the empty byte sequence as a body.\n\n // Otherwise, return a network error.\n return makeNetworkError('about scheme is not supported')\n }\n case 'blob:': {\n if (!resolveObjectURL) {\n resolveObjectURL = require('buffer').resolveObjectURL\n }\n\n // 1. Let blobURLEntry be request\u2019s current URL\u2019s blob URL entry.\n const blobURLEntry = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (blobURLEntry.search.length !== 0) {\n return makeNetworkError('NetworkError when attempting to fetch resource.')\n }\n\n const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString())\n\n // 2. If request\u2019s method is not `GET`, blobURLEntry is null, or blobURLEntry\u2019s\n // object is not a Blob object, then return a network error.\n if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n return makeNetworkError('invalid method')\n }\n\n // 3. Let bodyWithType be the result of safely extracting blobURLEntry\u2019s object.\n const bodyWithType = safelyExtractBody(blobURLEntryObject)\n\n // 4. Let body be bodyWithType\u2019s body.\n const body = bodyWithType[0]\n\n // 5. Let length be body\u2019s length, serialized and isomorphic encoded.\n const length = isomorphicEncode(`${body.length}`)\n\n // 6. Let type be bodyWithType\u2019s type if it is non-null; otherwise the empty byte sequence.\n const type = bodyWithType[1] ?? ''\n\n // 7. Return a new response whose status message is `OK`, header list is\n // \u00AB (`Content-Length`, length), (`Content-Type`, type) \u00BB, and body is body.\n const response = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-length', { name: 'Content-Length', value: length }],\n ['content-type', { name: 'Content-Type', value: type }]\n ]\n })\n\n response.body = body\n\n return response\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request\u2019s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return makeNetworkError('failed to fetch the data URL')\n }\n\n // 3. Let mimeType be dataURLStruct\u2019s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is \u00AB (`Content-Type`, mimeType) \u00BB,\n // and body is dataURLStruct\u2019s body as a body.\n return makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', { name: 'Content-Type', value: mimeType }]\n ],\n body: safelyExtractBody(dataURLStruct.body)[0]\n })\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return makeNetworkError('not implemented... yet...')\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return await httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return makeNetworkError('unknown scheme')\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams\u2019s process response done is not null, then queue a fetch\n // task to run fetchParams\u2019s process response done given response, with\n // fetchParams\u2019s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nasync function fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response\u2019s URL list to \u00AB fetchParams\u2019s request\u2019s URL list[0] \u00BB.\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response\u2019s timing info to the result of creating an opaque timing\n // info for fetchParams\u2019s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams\u2019s request\u2019s done flag.\n fetchParams.request.done = true\n\n // If fetchParams\u2019s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams\u2019s process response\n // end-of-body given response with fetchParams\u2019s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams\u2019s process response is non-null, then queue a fetch task\n // to run fetchParams\u2019s process response given response, with fetchParams\u2019s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response\u2019s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n }, {\n size () {\n return 1\n }\n }, {\n size () {\n return 1\n }\n })\n\n // 4. Set response\u2019s body to the result of piping response\u2019s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams\u2019s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams\u2019s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams\u2019s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response\u2019s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams\u2019s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response\u2019s body given processBody, processBodyError,\n // and fetchParams\u2019s task destination.\n await fullyReadBody(response.body, processBody, processBodyError)\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request\u2019s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request\u2019s redirect mode is \"follow\", then set request\u2019s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request\u2019s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request\u2019s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request\u2019s response tainting or response\u2019s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request\u2019s origin, request\u2019s client, request\u2019s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse\u2019s status is a redirect status, then:\n if (redirectStatus.includes(actualResponse.status)) {\n // 1. If actualResponse\u2019s status is not 303, request\u2019s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request\u2019s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response\u2019s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nasync function httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response\u2019s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse\u2019s location URL given request\u2019s current\n // URL\u2019s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return makeNetworkError(err)\n }\n\n // 6. If locationURL\u2019s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!urlIsHttpHttpsScheme(locationURL)) {\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // 7. If request\u2019s redirect count is 20, then return a network error.\n if (request.redirectCount === 20) {\n return makeNetworkError('redirect count exceeded')\n }\n\n // 8. Increase request\u2019s redirect count by 1.\n request.redirectCount += 1\n\n // 9. If request\u2019s mode is \"cors\", locationURL includes credentials, and\n // request\u2019s origin is not same origin with locationURL\u2019s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return makeNetworkError('cross origin not allowed for request mode \"cors\"')\n }\n\n // 10. If request\u2019s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n )\n }\n\n // 11. If actualResponse\u2019s status is not 303, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return makeNetworkError()\n }\n\n // 12. If one of the following is true\n // - actualResponse\u2019s status is 301 or 302 and request\u2019s method is `POST`\n // - actualResponse\u2019s status is 303 and request\u2019s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !['GET', 'HEAD'].includes(request.method))\n ) {\n // then:\n // 1. Set request\u2019s method to `GET` and request\u2019s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request\u2019s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request\u2019s current URL\u2019s origin is not same origin with locationURL\u2019s\n // origin, then for each headerName of CORS non-wildcard request-header name,\n // delete headerName from request\u2019s header list.\n if (!sameOrigin(requestCurrentURL(request), locationURL)) {\n // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n request.headersList.delete('authorization')\n }\n\n // 14. If request\u2019s body is non-null, then set request\u2019s body to the first return\n // value of safely extracting request\u2019s body\u2019s source.\n if (request.body != null) {\n assert(request.body.source != null)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 15. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 16. Set timingInfo\u2019s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 17. If timingInfo\u2019s redirect start time is 0, then set timingInfo\u2019s\n // redirect start time to timingInfo\u2019s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 18. Append locationURL to request\u2019s URL list.\n request.urlList.push(locationURL)\n\n // 19. Invoke set request\u2019s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 20. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request\u2019s window is \"no-window\" and request\u2019s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams\u2019s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest\u2019s body\u2019s length, if httpRequest\u2019s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest\u2019s body is null and httpRequest\u2019s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest\u2019s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest\u2019s header list.\n\n // 10. If contentLength is non-null and httpRequest\u2019s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest\u2019s referrer is a URL, then append\n // `Referer`/httpRequest\u2019s referrer, serialized and isomorphic encoded,\n // to httpRequest\u2019s header list.\n if (httpRequest.referrer instanceof URL) {\n httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href))\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest\u2019s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('user-agent')) {\n httpRequest.headersList.append('user-agent', 'undici')\n }\n\n // 15. If httpRequest\u2019s cache mode is \"default\" and httpRequest\u2019s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest\u2019s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.contains('if-modified-since') ||\n httpRequest.headersList.contains('if-none-match') ||\n httpRequest.headersList.contains('if-unmodified-since') ||\n httpRequest.headersList.contains('if-match') ||\n httpRequest.headersList.contains('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest\u2019s cache mode is \"no-cache\", httpRequest\u2019s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest\u2019s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest\u2019s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.contains('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest\u2019s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest\u2019s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest\u2019s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest\u2019s header list.\n if (!httpRequest.headersList.contains('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest\u2019s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest\u2019s header list.\n if (httpRequest.headersList.contains('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest\u2019s header list per HTTP. Do not append a given\n // header if httpRequest\u2019s header list contains that header\u2019s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.contains('accept-encoding')) {\n if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest\u2019s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there\u2019s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest\u2019s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest\u2019s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest\u2019s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest\u2019s method is unsafe and forwardResponse\u2019s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethods.includes(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse\u2019s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response\u2019s URL list to a clone of httpRequest\u2019s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest\u2019s header list contains `Range`, then set response\u2019s\n // range-requested flag.\n if (httpRequest.headersList.contains('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response\u2019s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response\u2019s status is 401, httpRequest\u2019s response tainting is not\n // \"cors\", includeCredentials is true, and request\u2019s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response\u2019s status is 407, then:\n if (response.status === 407) {\n // 1. If request\u2019s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request\u2019s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response\u2019s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request\u2019s body is null, or request\u2019s body is non-null and request\u2019s body\u2019s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams\u2019s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams\u2019s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request\u2019s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request\u2019s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request\u2019s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request\u2019s current URL\u2019s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo\u2019s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection\u2019s\n // timing info, timingInfo\u2019s post-redirect start time, and fetchParams\u2019s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request\u2019s body is non-null,\n // and request\u2019s body\u2019s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request\u2019s header list.\n\n // 4. Set timingInfo\u2019s final network-request start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request\u2019s body is non-null, and request\u2019s body\u2019s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request\u2019s body in that buffer. If the user agent reads from\n // request\u2019s body beyond that buffer\u2019s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo\u2019s final network-response start time to the coarsened\n // shared current time given fetchParams\u2019s cross-origin isolated capability,\n // immediately after the user agent\u2019s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo\u2019s final network-response start time above.\n\n // - If request\u2019s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request\u2019s window is an environment settings object, make the\n // dialog available in request\u2019s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request\u2019s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams\u2019s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams\u2019s process request\n // end-of-body and fetchParams\u2019s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams\u2019s process request body is non-null, then run\n // fetchParams\u2019s process request body given bytes\u2019s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams\u2019s process request end-of-body is non-null,\n // then run fetchParams\u2019s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams\u2019s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request\u2019s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams\u2019s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n // socket is only provided for websockets\n const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody })\n\n if (socket) {\n response = makeResponse({ status, statusText, headersList, socket })\n } else {\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n }\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams\u2019s\n // controller with reason, given reason.\n const cancelAlgorithm = (reason) => {\n fetchParams.controller.abort(reason)\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n {\n highWaterMark: 0,\n size () {\n return 1\n }\n }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response\u2019s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request\u2019s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response\u2019s header list, if any, and request\u2019s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n let isFailure\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n\n // err may be propagated from the result of calling readablestream.cancel,\n // which might not be an error. https://github.com/nodejs/undici/issues/2009\n isFailure = true\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response\u2019s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n readableStreamClose(fetchParams.controller.controller)\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo\u2019s decoded body size by bytes\u2019s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams\u2019s controller.\n if (isFailure) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn\u2019t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response\u2019s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, then error stream with the result of\n // deserialize a serialized abort reason given fetchParams\u2019s\n // controller\u2019s serialized abort reason and an\n // implementation-defined realm.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n fetchParams.controller.serializedAbortReason\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n /** @type {import('../..').Agent} */\n const agent = fetchParams.controller.dispatcher\n\n return new Promise((resolve, reject) => agent.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && request.body.source : body,\n headers: request.headersList.entries,\n maxRedirections: 0,\n upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse()\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers.append(key, val)\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatus.includes(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n if (coding === 'x-gzip' || coding === 'gzip') {\n decoders.push(zlib.createGunzip({\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n }))\n } else if (coding === 'deflate') {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response\u2019s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response\u2019s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo\u2019s encoded body size by bytes\u2019s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n },\n\n onUpgrade (status, headersList, socket) {\n if (status !== 101) {\n return\n }\n\n const headers = new Headers()\n\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n headers.append(key, val)\n }\n\n resolve({\n status,\n statusText: STATUS_CODES[status],\n headersList: headers[kHeadersList],\n socket\n })\n\n return true\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n", "'use strict'\n\nmodule.exports = {\n kState: Symbol('FileReader state'),\n kResult: Symbol('FileReader result'),\n kError: Symbol('FileReader error'),\n kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'),\n kEvents: Symbol('FileReader events'),\n kAborted: Symbol('FileReader aborted')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\n\nconst kState = Symbol('ProgressEvent state')\n\n/**\n * @see https://xhr.spec.whatwg.org/#progressevent\n */\nclass ProgressEvent extends Event {\n constructor (type, eventInitDict = {}) {\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {})\n\n super(type, eventInitDict)\n\n this[kState] = {\n lengthComputable: eventInitDict.lengthComputable,\n loaded: eventInitDict.loaded,\n total: eventInitDict.total\n }\n }\n\n get lengthComputable () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].lengthComputable\n }\n\n get loaded () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].loaded\n }\n\n get total () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].total\n }\n}\n\nwebidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n {\n key: 'lengthComputable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'loaded',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'total',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n])\n\nmodule.exports = {\n ProgressEvent\n}\n", "'use strict'\n\n/**\n * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n * @param {string|undefined} label\n */\nfunction getEncoding (label) {\n if (!label) {\n return 'failure'\n }\n\n // 1. Remove any leading and trailing ASCII whitespace from label.\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, then return the\n // corresponding encoding; otherwise return failure.\n switch (label.trim().toLowerCase()) {\n case 'unicode-1-1-utf-8':\n case 'unicode11utf8':\n case 'unicode20utf8':\n case 'utf-8':\n case 'utf8':\n case 'x-unicode20utf8':\n return 'UTF-8'\n case '866':\n case 'cp866':\n case 'csibm866':\n case 'ibm866':\n return 'IBM866'\n case 'csisolatin2':\n case 'iso-8859-2':\n case 'iso-ir-101':\n case 'iso8859-2':\n case 'iso88592':\n case 'iso_8859-2':\n case 'iso_8859-2:1987':\n case 'l2':\n case 'latin2':\n return 'ISO-8859-2'\n case 'csisolatin3':\n case 'iso-8859-3':\n case 'iso-ir-109':\n case 'iso8859-3':\n case 'iso88593':\n case 'iso_8859-3':\n case 'iso_8859-3:1988':\n case 'l3':\n case 'latin3':\n return 'ISO-8859-3'\n case 'csisolatin4':\n case 'iso-8859-4':\n case 'iso-ir-110':\n case 'iso8859-4':\n case 'iso88594':\n case 'iso_8859-4':\n case 'iso_8859-4:1988':\n case 'l4':\n case 'latin4':\n return 'ISO-8859-4'\n case 'csisolatincyrillic':\n case 'cyrillic':\n case 'iso-8859-5':\n case 'iso-ir-144':\n case 'iso8859-5':\n case 'iso88595':\n case 'iso_8859-5':\n case 'iso_8859-5:1988':\n return 'ISO-8859-5'\n case 'arabic':\n case 'asmo-708':\n case 'csiso88596e':\n case 'csiso88596i':\n case 'csisolatinarabic':\n case 'ecma-114':\n case 'iso-8859-6':\n case 'iso-8859-6-e':\n case 'iso-8859-6-i':\n case 'iso-ir-127':\n case 'iso8859-6':\n case 'iso88596':\n case 'iso_8859-6':\n case 'iso_8859-6:1987':\n return 'ISO-8859-6'\n case 'csisolatingreek':\n case 'ecma-118':\n case 'elot_928':\n case 'greek':\n case 'greek8':\n case 'iso-8859-7':\n case 'iso-ir-126':\n case 'iso8859-7':\n case 'iso88597':\n case 'iso_8859-7':\n case 'iso_8859-7:1987':\n case 'sun_eu_greek':\n return 'ISO-8859-7'\n case 'csiso88598e':\n case 'csisolatinhebrew':\n case 'hebrew':\n case 'iso-8859-8':\n case 'iso-8859-8-e':\n case 'iso-ir-138':\n case 'iso8859-8':\n case 'iso88598':\n case 'iso_8859-8':\n case 'iso_8859-8:1988':\n case 'visual':\n return 'ISO-8859-8'\n case 'csiso88598i':\n case 'iso-8859-8-i':\n case 'logical':\n return 'ISO-8859-8-I'\n case 'csisolatin6':\n case 'iso-8859-10':\n case 'iso-ir-157':\n case 'iso8859-10':\n case 'iso885910':\n case 'l6':\n case 'latin6':\n return 'ISO-8859-10'\n case 'iso-8859-13':\n case 'iso8859-13':\n case 'iso885913':\n return 'ISO-8859-13'\n case 'iso-8859-14':\n case 'iso8859-14':\n case 'iso885914':\n return 'ISO-8859-14'\n case 'csisolatin9':\n case 'iso-8859-15':\n case 'iso8859-15':\n case 'iso885915':\n case 'iso_8859-15':\n case 'l9':\n return 'ISO-8859-15'\n case 'iso-8859-16':\n return 'ISO-8859-16'\n case 'cskoi8r':\n case 'koi':\n case 'koi8':\n case 'koi8-r':\n case 'koi8_r':\n return 'KOI8-R'\n case 'koi8-ru':\n case 'koi8-u':\n return 'KOI8-U'\n case 'csmacintosh':\n case 'mac':\n case 'macintosh':\n case 'x-mac-roman':\n return 'macintosh'\n case 'iso-8859-11':\n case 'iso8859-11':\n case 'iso885911':\n case 'tis-620':\n case 'windows-874':\n return 'windows-874'\n case 'cp1250':\n case 'windows-1250':\n case 'x-cp1250':\n return 'windows-1250'\n case 'cp1251':\n case 'windows-1251':\n case 'x-cp1251':\n return 'windows-1251'\n case 'ansi_x3.4-1968':\n case 'ascii':\n case 'cp1252':\n case 'cp819':\n case 'csisolatin1':\n case 'ibm819':\n case 'iso-8859-1':\n case 'iso-ir-100':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'iso_8859-1:1987':\n case 'l1':\n case 'latin1':\n case 'us-ascii':\n case 'windows-1252':\n case 'x-cp1252':\n return 'windows-1252'\n case 'cp1253':\n case 'windows-1253':\n case 'x-cp1253':\n return 'windows-1253'\n case 'cp1254':\n case 'csisolatin5':\n case 'iso-8859-9':\n case 'iso-ir-148':\n case 'iso8859-9':\n case 'iso88599':\n case 'iso_8859-9':\n case 'iso_8859-9:1989':\n case 'l5':\n case 'latin5':\n case 'windows-1254':\n case 'x-cp1254':\n return 'windows-1254'\n case 'cp1255':\n case 'windows-1255':\n case 'x-cp1255':\n return 'windows-1255'\n case 'cp1256':\n case 'windows-1256':\n case 'x-cp1256':\n return 'windows-1256'\n case 'cp1257':\n case 'windows-1257':\n case 'x-cp1257':\n return 'windows-1257'\n case 'cp1258':\n case 'windows-1258':\n case 'x-cp1258':\n return 'windows-1258'\n case 'x-mac-cyrillic':\n case 'x-mac-ukrainian':\n return 'x-mac-cyrillic'\n case 'chinese':\n case 'csgb2312':\n case 'csiso58gb231280':\n case 'gb2312':\n case 'gb_2312':\n case 'gb_2312-80':\n case 'gbk':\n case 'iso-ir-58':\n case 'x-gbk':\n return 'GBK'\n case 'gb18030':\n return 'gb18030'\n case 'big5':\n case 'big5-hkscs':\n case 'cn-big5':\n case 'csbig5':\n case 'x-x-big5':\n return 'Big5'\n case 'cseucpkdfmtjapanese':\n case 'euc-jp':\n case 'x-euc-jp':\n return 'EUC-JP'\n case 'csiso2022jp':\n case 'iso-2022-jp':\n return 'ISO-2022-JP'\n case 'csshiftjis':\n case 'ms932':\n case 'ms_kanji':\n case 'shift-jis':\n case 'shift_jis':\n case 'sjis':\n case 'windows-31j':\n case 'x-sjis':\n return 'Shift_JIS'\n case 'cseuckr':\n case 'csksc56011987':\n case 'euc-kr':\n case 'iso-ir-149':\n case 'korean':\n case 'ks_c_5601-1987':\n case 'ks_c_5601-1989':\n case 'ksc5601':\n case 'ksc_5601':\n case 'windows-949':\n return 'EUC-KR'\n case 'csiso2022kr':\n case 'hz-gb-2312':\n case 'iso-2022-cn':\n case 'iso-2022-cn-ext':\n case 'iso-2022-kr':\n case 'replacement':\n return 'replacement'\n case 'unicodefffe':\n case 'utf-16be':\n return 'UTF-16BE'\n case 'csunicode':\n case 'iso-10646-ucs-2':\n case 'ucs-2':\n case 'unicode':\n case 'unicodefeff':\n case 'utf-16':\n case 'utf-16le':\n return 'UTF-16LE'\n case 'x-user-defined':\n return 'x-user-defined'\n default: return 'failure'\n }\n}\n\nmodule.exports = {\n getEncoding\n}\n", "'use strict'\n\nconst {\n kState,\n kError,\n kResult,\n kAborted,\n kLastProgressEventFired\n} = require('./symbols')\nconst { ProgressEvent } = require('./progressevent')\nconst { getEncoding } = require('./encoding')\nconst { DOMException } = require('../fetch/constants')\nconst { serializeAMimeType, parseMIMEType } = require('../fetch/dataURL')\nconst { types } = require('util')\nconst { StringDecoder } = require('string_decoder')\nconst { btoa } = require('buffer')\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#readOperation\n * @param {import('./filereader').FileReader} fr\n * @param {import('buffer').Blob} blob\n * @param {string} type\n * @param {string?} encodingName\n */\nfunction readOperation (fr, blob, type, encodingName) {\n // 1. If fr\u2019s state is \"loading\", throw an InvalidStateError\n // DOMException.\n if (fr[kState] === 'loading') {\n throw new DOMException('Invalid state', 'InvalidStateError')\n }\n\n // 2. Set fr\u2019s state to \"loading\".\n fr[kState] = 'loading'\n\n // 3. Set fr\u2019s result to null.\n fr[kResult] = null\n\n // 4. Set fr\u2019s error to null.\n fr[kError] = null\n\n // 5. Let stream be the result of calling get stream on blob.\n /** @type {import('stream/web').ReadableStream} */\n const stream = blob.stream()\n\n // 6. Let reader be the result of getting a reader from stream.\n const reader = stream.getReader()\n\n // 7. Let bytes be an empty byte sequence.\n /** @type {Uint8Array[]} */\n const bytes = []\n\n // 8. Let chunkPromise be the result of reading a chunk from\n // stream with reader.\n let chunkPromise = reader.read()\n\n // 9. Let isFirstChunk be true.\n let isFirstChunk = true\n\n // 10. In parallel, while true:\n // Note: \"In parallel\" just means non-blocking\n // Note 2: readOperation itself cannot be async as double\n // reading the body would then reject the promise, instead\n // of throwing an error.\n ;(async () => {\n while (!fr[kAborted]) {\n // 1. Wait for chunkPromise to be fulfilled or rejected.\n try {\n const { done, value } = await chunkPromise\n\n // 2. If chunkPromise is fulfilled, and isFirstChunk is\n // true, queue a task to fire a progress event called\n // loadstart at fr.\n if (isFirstChunk && !fr[kAborted]) {\n queueMicrotask(() => {\n fireAProgressEvent('loadstart', fr)\n })\n }\n\n // 3. Set isFirstChunk to false.\n isFirstChunk = false\n\n // 4. If chunkPromise is fulfilled with an object whose\n // done property is false and whose value property is\n // a Uint8Array object, run these steps:\n if (!done && types.isUint8Array(value)) {\n // 1. Let bs be the byte sequence represented by the\n // Uint8Array object.\n\n // 2. Append bs to bytes.\n bytes.push(value)\n\n // 3. If roughly 50ms have passed since these steps\n // were last invoked, queue a task to fire a\n // progress event called progress at fr.\n if (\n (\n fr[kLastProgressEventFired] === undefined ||\n Date.now() - fr[kLastProgressEventFired] >= 50\n ) &&\n !fr[kAborted]\n ) {\n fr[kLastProgressEventFired] = Date.now()\n queueMicrotask(() => {\n fireAProgressEvent('progress', fr)\n })\n }\n\n // 4. Set chunkPromise to the result of reading a\n // chunk from stream with reader.\n chunkPromise = reader.read()\n } else if (done) {\n // 5. Otherwise, if chunkPromise is fulfilled with an\n // object whose done property is true, queue a task\n // to run the following steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Let result be the result of package data given\n // bytes, type, blob\u2019s type, and encodingName.\n try {\n const result = packageData(bytes, type, blob.type, encodingName)\n\n // 4. Else:\n\n if (fr[kAborted]) {\n return\n }\n\n // 1. Set fr\u2019s result to result.\n fr[kResult] = result\n\n // 2. Fire a progress event called load at the fr.\n fireAProgressEvent('load', fr)\n } catch (error) {\n // 3. If package data threw an exception error:\n\n // 1. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 2. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n }\n\n // 5. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at the fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n } catch (error) {\n if (fr[kAborted]) {\n return\n }\n\n // 6. Otherwise, if chunkPromise is rejected with an\n // error error, queue a task to run the following\n // steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr\u2019s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Set fr\u2019s error to error.\n fr[kError] = error\n\n // 3. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n\n // 4. If fr\u2019s state is not \"loading\", fire a progress\n // event called loadend at fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n }\n })()\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e The name of the event\n * @param {import('./filereader').FileReader} reader\n */\nfunction fireAProgressEvent (e, reader) {\n // The progress event e does not bubble. e.bubbles must be false\n // The progress event e is NOT cancelable. e.cancelable must be false\n const event = new ProgressEvent(e, {\n bubbles: false,\n cancelable: false\n })\n\n reader.dispatchEvent(event)\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#blob-package-data\n * @param {Uint8Array[]} bytes\n * @param {string} type\n * @param {string?} mimeType\n * @param {string?} encodingName\n */\nfunction packageData (bytes, type, mimeType, encodingName) {\n // 1. A Blob has an associated package data algorithm, given\n // bytes, a type, a optional mimeType, and a optional\n // encodingName, which switches on type and runs the\n // associated steps:\n\n switch (type) {\n case 'DataURL': {\n // 1. Return bytes as a DataURL [RFC2397] subject to\n // the considerations below:\n // * Use mimeType as part of the Data URL if it is\n // available in keeping with the Data URL\n // specification [RFC2397].\n // * If mimeType is not available return a Data URL\n // without a media-type. [RFC2397].\n\n // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n // dataurl := \"data:\" [ mediatype ] [ \";base64\" ] \",\" data\n // mediatype := [ type \"/\" subtype ] *( \";\" parameter )\n // data := *urlchar\n // parameter := attribute \"=\" value\n let dataURL = 'data:'\n\n const parsed = parseMIMEType(mimeType || 'application/octet-stream')\n\n if (parsed !== 'failure') {\n dataURL += serializeAMimeType(parsed)\n }\n\n dataURL += ';base64,'\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n dataURL += btoa(decoder.write(chunk))\n }\n\n dataURL += btoa(decoder.end())\n\n return dataURL\n }\n case 'Text': {\n // 1. Let encoding be failure\n let encoding = 'failure'\n\n // 2. If the encodingName is present, set encoding to the\n // result of getting an encoding from encodingName.\n if (encodingName) {\n encoding = getEncoding(encodingName)\n }\n\n // 3. If encoding is failure, and mimeType is present:\n if (encoding === 'failure' && mimeType) {\n // 1. Let type be the result of parse a MIME type\n // given mimeType.\n const type = parseMIMEType(mimeType)\n\n // 2. If type is not failure, set encoding to the result\n // of getting an encoding from type\u2019s parameters[\"charset\"].\n if (type !== 'failure') {\n encoding = getEncoding(type.parameters.get('charset'))\n }\n }\n\n // 4. If encoding is failure, then set encoding to UTF-8.\n if (encoding === 'failure') {\n encoding = 'UTF-8'\n }\n\n // 5. Decode bytes using fallback encoding encoding, and\n // return the result.\n return decode(bytes, encoding)\n }\n case 'ArrayBuffer': {\n // Return a new ArrayBuffer whose contents are bytes.\n const sequence = combineByteSequences(bytes)\n\n return sequence.buffer\n }\n case 'BinaryString': {\n // Return bytes as a binary string, in which every byte\n // is represented by a code unit of equal value [0..255].\n let binaryString = ''\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n binaryString += decoder.write(chunk)\n }\n\n binaryString += decoder.end()\n\n return binaryString\n }\n }\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#decode\n * @param {Uint8Array[]} ioQueue\n * @param {string} encoding\n */\nfunction decode (ioQueue, encoding) {\n const bytes = combineByteSequences(ioQueue)\n\n // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n const BOMEncoding = BOMSniffing(bytes)\n\n let slice = 0\n\n // 2. If BOMEncoding is non-null:\n if (BOMEncoding !== null) {\n // 1. Set encoding to BOMEncoding.\n encoding = BOMEncoding\n\n // 2. Read three bytes from ioQueue, if BOMEncoding is\n // UTF-8; otherwise read two bytes.\n // (Do nothing with those bytes.)\n slice = BOMEncoding === 'UTF-8' ? 3 : 2\n }\n\n // 3. Process a queue with an instance of encoding\u2019s\n // decoder, ioQueue, output, and \"replacement\".\n\n // 4. Return output.\n\n const sliced = bytes.slice(slice)\n return new TextDecoder(encoding).decode(sliced)\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#bom-sniff\n * @param {Uint8Array} ioQueue\n */\nfunction BOMSniffing (ioQueue) {\n // 1. Let BOM be the result of peeking 3 bytes from ioQueue,\n // converted to a byte sequence.\n const [a, b, c] = ioQueue\n\n // 2. For each of the rows in the table below, starting with\n // the first one and going down, if BOM starts with the\n // bytes given in the first column, then return the\n // encoding given in the cell in the second column of that\n // row. Otherwise, return null.\n if (a === 0xEF && b === 0xBB && c === 0xBF) {\n return 'UTF-8'\n } else if (a === 0xFE && b === 0xFF) {\n return 'UTF-16BE'\n } else if (a === 0xFF && b === 0xFE) {\n return 'UTF-16LE'\n }\n\n return null\n}\n\n/**\n * @param {Uint8Array[]} sequences\n */\nfunction combineByteSequences (sequences) {\n const size = sequences.reduce((a, b) => {\n return a + b.byteLength\n }, 0)\n\n let offset = 0\n\n return sequences.reduce((a, b) => {\n a.set(b, offset)\n offset += b.byteLength\n return a\n }, new Uint8Array(size))\n}\n\nmodule.exports = {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n}\n", "'use strict'\n\nconst {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n} = require('./util')\nconst {\n kState,\n kError,\n kResult,\n kEvents,\n kAborted\n} = require('./symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass FileReader extends EventTarget {\n constructor () {\n super()\n\n this[kState] = 'empty'\n this[kResult] = null\n this[kError] = null\n this[kEvents] = {\n loadend: null,\n error: null,\n abort: null,\n load: null,\n progress: null,\n loadstart: null\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n * @param {import('buffer').Blob} blob\n */\n readAsArrayBuffer (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsArrayBuffer(blob) method, when invoked,\n // must initiate a read operation for blob with ArrayBuffer.\n readOperation(this, blob, 'ArrayBuffer')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n * @param {import('buffer').Blob} blob\n */\n readAsBinaryString (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsBinaryString(blob) method, when invoked,\n // must initiate a read operation for blob with BinaryString.\n readOperation(this, blob, 'BinaryString')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsDataText\n * @param {import('buffer').Blob} blob\n * @param {string?} encoding\n */\n readAsText (blob, encoding = undefined) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n if (encoding !== undefined) {\n encoding = webidl.converters.DOMString(encoding)\n }\n\n // The readAsText(blob, encoding) method, when invoked,\n // must initiate a read operation for blob with Text and encoding.\n readOperation(this, blob, 'Text', encoding)\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n * @param {import('buffer').Blob} blob\n */\n readAsDataURL (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsDataURL(blob) method, when invoked, must\n // initiate a read operation for blob with DataURL.\n readOperation(this, blob, 'DataURL')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-abort\n */\n abort () {\n // 1. If this's state is \"empty\" or if this's state is\n // \"done\" set this's result to null and terminate\n // this algorithm.\n if (this[kState] === 'empty' || this[kState] === 'done') {\n this[kResult] = null\n return\n }\n\n // 2. If this's state is \"loading\" set this's state to\n // \"done\" and set this's result to null.\n if (this[kState] === 'loading') {\n this[kState] = 'done'\n this[kResult] = null\n }\n\n // 3. If there are any tasks from this on the file reading\n // task source in an affiliated task queue, then remove\n // those tasks from that task queue.\n this[kAborted] = true\n\n // 4. Terminate the algorithm for the read method being processed.\n // TODO\n\n // 5. Fire a progress event called abort at this.\n fireAProgressEvent('abort', this)\n\n // 6. If this's state is not \"loading\", fire a progress\n // event called loadend at this.\n if (this[kState] !== 'loading') {\n fireAProgressEvent('loadend', this)\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n */\n get readyState () {\n webidl.brandCheck(this, FileReader)\n\n switch (this[kState]) {\n case 'empty': return this.EMPTY\n case 'loading': return this.LOADING\n case 'done': return this.DONE\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n */\n get result () {\n webidl.brandCheck(this, FileReader)\n\n // The result attribute\u2019s getter, when invoked, must return\n // this's result.\n return this[kResult]\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n */\n get error () {\n webidl.brandCheck(this, FileReader)\n\n // The error attribute\u2019s getter, when invoked, must return\n // this's error.\n return this[kError]\n }\n\n get onloadend () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadend\n }\n\n set onloadend (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadend) {\n this.removeEventListener('loadend', this[kEvents].loadend)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadend = fn\n this.addEventListener('loadend', fn)\n } else {\n this[kEvents].loadend = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].error) {\n this.removeEventListener('error', this[kEvents].error)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].error = fn\n this.addEventListener('error', fn)\n } else {\n this[kEvents].error = null\n }\n }\n\n get onloadstart () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadstart\n }\n\n set onloadstart (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadstart) {\n this.removeEventListener('loadstart', this[kEvents].loadstart)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadstart = fn\n this.addEventListener('loadstart', fn)\n } else {\n this[kEvents].loadstart = null\n }\n }\n\n get onprogress () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].progress\n }\n\n set onprogress (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].progress) {\n this.removeEventListener('progress', this[kEvents].progress)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].progress = fn\n this.addEventListener('progress', fn)\n } else {\n this[kEvents].progress = null\n }\n }\n\n get onload () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].load\n }\n\n set onload (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].load) {\n this.removeEventListener('load', this[kEvents].load)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].load = fn\n this.addEventListener('load', fn)\n } else {\n this[kEvents].load = null\n }\n }\n\n get onabort () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].abort\n }\n\n set onabort (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].abort) {\n this.removeEventListener('abort', this[kEvents].abort)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].abort = fn\n this.addEventListener('abort', fn)\n } else {\n this[kEvents].abort = null\n }\n }\n}\n\n// https://w3c.github.io/FileAPI/#dom-filereader-empty\nFileReader.EMPTY = FileReader.prototype.EMPTY = 0\n// https://w3c.github.io/FileAPI/#dom-filereader-loading\nFileReader.LOADING = FileReader.prototype.LOADING = 1\n// https://w3c.github.io/FileAPI/#dom-filereader-done\nFileReader.DONE = FileReader.prototype.DONE = 2\n\nObject.defineProperties(FileReader.prototype, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors,\n readAsArrayBuffer: kEnumerableProperty,\n readAsBinaryString: kEnumerableProperty,\n readAsText: kEnumerableProperty,\n readAsDataURL: kEnumerableProperty,\n abort: kEnumerableProperty,\n readyState: kEnumerableProperty,\n result: kEnumerableProperty,\n error: kEnumerableProperty,\n onloadstart: kEnumerableProperty,\n onprogress: kEnumerableProperty,\n onload: kEnumerableProperty,\n onabort: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onloadend: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'FileReader',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(FileReader, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors\n})\n\nmodule.exports = {\n FileReader\n}\n", "'use strict'\n\nmodule.exports = {\n kConstruct: Symbol('constructable')\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { isValidHeaderName } = require('../fetch/util')\n\n/**\n * @see https://url.spec.whatwg.org/#concept-url-equals\n * @param {URL} A\n * @param {URL} B\n * @param {boolean | undefined} excludeFragment\n * @returns {boolean}\n */\nfunction urlEquals (A, B, excludeFragment = false) {\n const serializedA = URLSerializer(A, excludeFragment)\n\n const serializedB = URLSerializer(B, excludeFragment)\n\n return serializedA === serializedB\n}\n\n/**\n * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262\n * @param {string} header\n */\nfunction fieldValues (header) {\n assert(header !== null)\n\n const values = []\n\n for (let value of header.split(',')) {\n value = value.trim()\n\n if (!value.length) {\n continue\n } else if (!isValidHeaderName(value)) {\n continue\n }\n\n values.push(value)\n }\n\n return values\n}\n\nmodule.exports = {\n urlEquals,\n fieldValues\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { urlEquals, fieldValues: getFieldValues } = require('./util')\nconst { kEnumerableProperty, isDisturbed } = require('../core/util')\nconst { kHeadersList } = require('../core/symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { Response, cloneResponse } = require('../fetch/response')\nconst { Request } = require('../fetch/request')\nconst { kState, kHeaders, kGuard, kRealm } = require('../fetch/symbols')\nconst { fetching } = require('../fetch/index')\nconst { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')\nconst assert = require('assert')\nconst { getGlobalDispatcher } = require('../global')\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation\n * @typedef {Object} CacheBatchOperation\n * @property {'delete' | 'put'} type\n * @property {any} request\n * @property {any} response\n * @property {import('../../types/cache').CacheQueryOptions} options\n */\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list\n * @typedef {[any, any][]} requestResponseList\n */\n\nclass Cache {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list\n * @type {requestResponseList}\n */\n #relevantRequestResponseList\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n\n this.#relevantRequestResponseList = arguments[1]\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n const p = await this.matchAll(request, options)\n\n if (p.length === 0) {\n return\n }\n\n return p[0]\n }\n\n async matchAll (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') {\n // 2.2.1\n r = new Request(request)[kState]\n }\n }\n\n // 5.\n // 5.1\n const responses = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n responses.push(requestResponse[1])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n responses.push(requestResponse[1])\n }\n }\n\n // 5.4\n // We don't implement CORs so we don't need to loop over the responses, yay!\n\n // 5.5.1\n const responseList = []\n\n // 5.5.2\n for (const response of responses) {\n // 5.5.2.1\n const responseObject = new Response(response.body?.source ?? null)\n const body = responseObject[kState].body\n responseObject[kState] = response\n responseObject[kState].body = body\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n\n responseList.push(responseObject)\n }\n\n // 6.\n return Object.freeze(responseList)\n }\n\n async add (request) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })\n\n request = webidl.converters.RequestInfo(request)\n\n // 1.\n const requests = [request]\n\n // 2.\n const responseArrayPromise = this.addAll(requests)\n\n // 3.\n return await responseArrayPromise\n }\n\n async addAll (requests) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })\n\n requests = webidl.converters['sequence<RequestInfo>'](requests)\n\n // 1.\n const responsePromises = []\n\n // 2.\n const requestList = []\n\n // 3.\n for (const request of requests) {\n if (typeof request === 'string') {\n continue\n }\n\n // 3.1\n const r = request[kState]\n\n // 3.2\n if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme when method is not GET.'\n })\n }\n }\n\n // 4.\n /** @type {ReturnType<typeof fetching>[]} */\n const fetchControllers = []\n\n // 5.\n for (const request of requests) {\n // 5.1\n const r = new Request(request)[kState]\n\n // 5.2\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme.'\n })\n }\n\n // 5.4\n r.initiator = 'fetch'\n r.destination = 'subresource'\n\n // 5.5\n requestList.push(r)\n\n // 5.6\n const responsePromise = createDeferredPromise()\n\n // 5.7\n fetchControllers.push(fetching({\n request: r,\n dispatcher: getGlobalDispatcher(),\n processResponse (response) {\n // 1.\n if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Received an invalid status code or the request failed.'\n }))\n } else if (response.headersList.contains('vary')) { // 2.\n // 2.1\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n // 2.2\n for (const fieldValue of fieldValues) {\n // 2.2.1\n if (fieldValue === '*') {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'invalid vary field value'\n }))\n\n for (const controller of fetchControllers) {\n controller.abort()\n }\n\n return\n }\n }\n }\n },\n processResponseEndOfBody (response) {\n // 1.\n if (response.aborted) {\n responsePromise.reject(new DOMException('aborted', 'AbortError'))\n return\n }\n\n // 2.\n responsePromise.resolve(response)\n }\n }))\n\n // 5.8\n responsePromises.push(responsePromise.promise)\n }\n\n // 6.\n const p = Promise.all(responsePromises)\n\n // 7.\n const responses = await p\n\n // 7.1\n const operations = []\n\n // 7.2\n let index = 0\n\n // 7.3\n for (const response of responses) {\n // 7.3.1\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 7.3.2\n request: requestList[index], // 7.3.3\n response // 7.3.4\n }\n\n operations.push(operation) // 7.3.5\n\n index++ // 7.3.6\n }\n\n // 7.5\n const cacheJobPromise = createDeferredPromise()\n\n // 7.6.1\n let errorData = null\n\n // 7.6.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 7.6.3\n queueMicrotask(() => {\n // 7.6.3.1\n if (errorData === null) {\n cacheJobPromise.resolve(undefined)\n } else {\n // 7.6.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n // 7.7\n return cacheJobPromise.promise\n }\n\n async put (request, response) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })\n\n request = webidl.converters.RequestInfo(request)\n response = webidl.converters.Response(response)\n\n // 1.\n let innerRequest = null\n\n // 2.\n if (request instanceof Request) {\n innerRequest = request[kState]\n } else { // 3.\n innerRequest = new Request(request)[kState]\n }\n\n // 4.\n if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Expected an http/s scheme when method is not GET'\n })\n }\n\n // 5.\n const innerResponse = response[kState]\n\n // 6.\n if (innerResponse.status === 206) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got 206 status'\n })\n }\n\n // 7.\n if (innerResponse.headersList.contains('vary')) {\n // 7.1.\n const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))\n\n // 7.2.\n for (const fieldValue of fieldValues) {\n // 7.2.1\n if (fieldValue === '*') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got * vary field value'\n })\n }\n }\n }\n\n // 8.\n if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Response body is locked or disturbed'\n })\n }\n\n // 9.\n const clonedResponse = cloneResponse(innerResponse)\n\n // 10.\n const bodyReadPromise = createDeferredPromise()\n\n // 11.\n if (innerResponse.body != null) {\n // 11.1\n const stream = innerResponse.body.stream\n\n // 11.2\n const reader = stream.getReader()\n\n // 11.3\n readAllBytes(\n reader,\n (bytes) => bodyReadPromise.resolve(bytes),\n (error) => bodyReadPromise.reject(error)\n )\n } else {\n bodyReadPromise.resolve(undefined)\n }\n\n // 12.\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n // 13.\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 14.\n request: innerRequest, // 15.\n response: clonedResponse // 16.\n }\n\n // 17.\n operations.push(operation)\n\n // 19.\n const bytes = await bodyReadPromise.promise\n\n if (clonedResponse.body != null) {\n clonedResponse.body.source = bytes\n }\n\n // 19.1\n const cacheJobPromise = createDeferredPromise()\n\n // 19.2.1\n let errorData = null\n\n // 19.2.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 19.2.3\n queueMicrotask(() => {\n // 19.2.3.1\n if (errorData === null) {\n cacheJobPromise.resolve()\n } else { // 19.2.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n async delete (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n /**\n * @type {Request}\n */\n let r = null\n\n if (request instanceof Request) {\n r = request[kState]\n\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return false\n }\n } else {\n assert(typeof request === 'string')\n\n r = new Request(request)[kState]\n }\n\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'delete',\n request: r,\n options\n }\n\n operations.push(operation)\n\n const cacheJobPromise = createDeferredPromise()\n\n let errorData = null\n let requestResponses\n\n try {\n requestResponses = this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n queueMicrotask(() => {\n if (errorData === null) {\n cacheJobPromise.resolve(!!requestResponses?.length)\n } else {\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys\n * @param {any} request\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @returns {readonly Request[]}\n */\n async keys (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n // 2.1\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') { // 2.2\n r = new Request(request)[kState]\n }\n }\n\n // 4.\n const promise = createDeferredPromise()\n\n // 5.\n // 5.1\n const requests = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n // 5.2.1.1\n requests.push(requestResponse[0])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n // 5.3.2.1\n requests.push(requestResponse[0])\n }\n }\n\n // 5.4\n queueMicrotask(() => {\n // 5.4.1\n const requestList = []\n\n // 5.4.2\n for (const request of requests) {\n const requestObject = new Request('https://a')\n requestObject[kState] = request\n requestObject[kHeaders][kHeadersList] = request.headersList\n requestObject[kHeaders][kGuard] = 'immutable'\n requestObject[kRealm] = request.client\n\n // 5.4.2.1\n requestList.push(requestObject)\n }\n\n // 5.4.3\n promise.resolve(Object.freeze(requestList))\n })\n\n return promise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm\n * @param {CacheBatchOperation[]} operations\n * @returns {requestResponseList}\n */\n #batchCacheOperations (operations) {\n // 1.\n const cache = this.#relevantRequestResponseList\n\n // 2.\n const backupCache = [...cache]\n\n // 3.\n const addedItems = []\n\n // 4.1\n const resultList = []\n\n try {\n // 4.2\n for (const operation of operations) {\n // 4.2.1\n if (operation.type !== 'delete' && operation.type !== 'put') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'operation type does not match \"delete\" or \"put\"'\n })\n }\n\n // 4.2.2\n if (operation.type === 'delete' && operation.response != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'delete operation should not have an associated response'\n })\n }\n\n // 4.2.3\n if (this.#queryCache(operation.request, operation.options, addedItems).length) {\n throw new DOMException('???', 'InvalidStateError')\n }\n\n // 4.2.4\n let requestResponses\n\n // 4.2.5\n if (operation.type === 'delete') {\n // 4.2.5.1\n requestResponses = this.#queryCache(operation.request, operation.options)\n\n // TODO: the spec is wrong, this is needed to pass WPTs\n if (requestResponses.length === 0) {\n return []\n }\n\n // 4.2.5.2\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.5.2.1\n cache.splice(idx, 1)\n }\n } else if (operation.type === 'put') { // 4.2.6\n // 4.2.6.1\n if (operation.response == null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'put operation should have an associated response'\n })\n }\n\n // 4.2.6.2\n const r = operation.request\n\n // 4.2.6.3\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'expected http or https scheme'\n })\n }\n\n // 4.2.6.4\n if (r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'not get method'\n })\n }\n\n // 4.2.6.5\n if (operation.options != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'options must not be defined'\n })\n }\n\n // 4.2.6.6\n requestResponses = this.#queryCache(operation.request)\n\n // 4.2.6.7\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.6.7.1\n cache.splice(idx, 1)\n }\n\n // 4.2.6.8\n cache.push([operation.request, operation.response])\n\n // 4.2.6.10\n addedItems.push([operation.request, operation.response])\n }\n\n // 4.2.7\n resultList.push([operation.request, operation.response])\n }\n\n // 4.3\n return resultList\n } catch (e) { // 5.\n // 5.1\n this.#relevantRequestResponseList.length = 0\n\n // 5.2\n this.#relevantRequestResponseList = backupCache\n\n // 5.3\n throw e\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#query-cache\n * @param {any} requestQuery\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @param {requestResponseList} targetStorage\n * @returns {requestResponseList}\n */\n #queryCache (requestQuery, options, targetStorage) {\n /** @type {requestResponseList} */\n const resultList = []\n\n const storage = targetStorage ?? this.#relevantRequestResponseList\n\n for (const requestResponse of storage) {\n const [cachedRequest, cachedResponse] = requestResponse\n if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {\n resultList.push(requestResponse)\n }\n }\n\n return resultList\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm\n * @param {any} requestQuery\n * @param {any} request\n * @param {any | null} response\n * @param {import('../../types/cache').CacheQueryOptions | undefined} options\n * @returns {boolean}\n */\n #requestMatchesCachedItem (requestQuery, request, response = null, options) {\n // if (options?.ignoreMethod === false && request.method === 'GET') {\n // return false\n // }\n\n const queryURL = new URL(requestQuery.url)\n\n const cachedURL = new URL(request.url)\n\n if (options?.ignoreSearch) {\n cachedURL.search = ''\n\n queryURL.search = ''\n }\n\n if (!urlEquals(queryURL, cachedURL, true)) {\n return false\n }\n\n if (\n response == null ||\n options?.ignoreVary ||\n !response.headersList.contains('vary')\n ) {\n return true\n }\n\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n for (const fieldValue of fieldValues) {\n if (fieldValue === '*') {\n return false\n }\n\n const requestValue = request.headersList.get(fieldValue)\n const queryValue = requestQuery.headersList.get(fieldValue)\n\n // If one has the header and the other doesn't, or one has\n // a different value than the other, return false\n if (requestValue !== queryValue) {\n return false\n }\n }\n\n return true\n }\n}\n\nObject.defineProperties(Cache.prototype, {\n [Symbol.toStringTag]: {\n value: 'Cache',\n configurable: true\n },\n match: kEnumerableProperty,\n matchAll: kEnumerableProperty,\n add: kEnumerableProperty,\n addAll: kEnumerableProperty,\n put: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nconst cacheQueryOptionConverters = [\n {\n key: 'ignoreSearch',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreMethod',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreVary',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)\n\nwebidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([\n ...cacheQueryOptionConverters,\n {\n key: 'cacheName',\n converter: webidl.converters.DOMString\n }\n])\n\nwebidl.converters.Response = webidl.interfaceConverter(Response)\n\nwebidl.converters['sequence<RequestInfo>'] = webidl.sequenceConverter(\n webidl.converters.RequestInfo\n)\n\nmodule.exports = {\n Cache\n}\n", "'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { Cache } = require('./cache')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass CacheStorage {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map\n * @type {Map<string, import('./cache').requestResponseList}\n */\n #caches = new Map()\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.MultiCacheQueryOptions(options)\n\n // 1.\n if (options.cacheName != null) {\n // 1.1.1.1\n if (this.#caches.has(options.cacheName)) {\n // 1.1.1.1.1\n const cacheList = this.#caches.get(options.cacheName)\n const cache = new Cache(kConstruct, cacheList)\n\n return await cache.match(request, options)\n }\n } else { // 2.\n // 2.2\n for (const cacheList of this.#caches.values()) {\n const cache = new Cache(kConstruct, cacheList)\n\n // 2.2.1.2\n const response = await cache.match(request, options)\n\n if (response !== undefined) {\n return response\n }\n }\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-has\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async has (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1.1\n // 2.2\n return this.#caches.has(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open\n * @param {string} cacheName\n * @returns {Promise<Cache>}\n */\n async open (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1\n if (this.#caches.has(cacheName)) {\n // await caches.open('v1') !== await caches.open('v1')\n\n // 2.1.1\n const cache = this.#caches.get(cacheName)\n\n // 2.1.1.1\n return new Cache(kConstruct, cache)\n }\n\n // 2.2\n const cache = []\n\n // 2.3\n this.#caches.set(cacheName, cache)\n\n // 2.4\n return new Cache(kConstruct, cache)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete\n * @param {string} cacheName\n * @returns {Promise<boolean>}\n */\n async delete (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n return this.#caches.delete(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys\n * @returns {string[]}\n */\n async keys () {\n webidl.brandCheck(this, CacheStorage)\n\n // 2.1\n const keys = this.#caches.keys()\n\n // 2.2\n return [...keys]\n }\n}\n\nObject.defineProperties(CacheStorage.prototype, {\n [Symbol.toStringTag]: {\n value: 'CacheStorage',\n configurable: true\n },\n match: kEnumerableProperty,\n has: kEnumerableProperty,\n open: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nmodule.exports = {\n CacheStorage\n}\n", "'use strict'\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\nconst maxAttributeValueSize = 1024\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\nconst maxNameValuePairSize = 4096\n\nmodule.exports = {\n maxAttributeValueSize,\n maxNameValuePairSize\n}\n", "'use strict'\n\nconst assert = require('assert')\nconst { kHeadersList } = require('../core/symbols')\n\nfunction isCTLExcludingHtab (value) {\n if (value.length === 0) {\n return false\n }\n\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n (code >= 0x00 || code <= 0x08) ||\n (code >= 0x0A || code <= 0x1F) ||\n code === 0x7F\n ) {\n return false\n }\n }\n}\n\n/**\n CHAR = <any US-ASCII character (octets 0 - 127)>\n token = 1*<any CHAR except CTLs or separators>\n separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n | \",\" | \";\" | \":\" | \"\\\" | <\">\n | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n | \"{\" | \"}\" | SP | HT\n * @param {string} name\n */\nfunction validateCookieName (name) {\n for (const char of name) {\n const code = char.charCodeAt(0)\n\n if (\n (code <= 0x20 || code > 0x7F) ||\n char === '(' ||\n char === ')' ||\n char === '>' ||\n char === '<' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}'\n ) {\n throw new Error('Invalid cookie name')\n }\n }\n}\n\n/**\n cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n ; US-ASCII characters excluding CTLs,\n ; whitespace DQUOTE, comma, semicolon,\n ; and backslash\n * @param {string} value\n */\nfunction validateCookieValue (value) {\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 || // exclude CTLs (0-31)\n code === 0x22 ||\n code === 0x2C ||\n code === 0x3B ||\n code === 0x5C ||\n code > 0x7E // non-ascii\n ) {\n throw new Error('Invalid header value')\n }\n }\n}\n\n/**\n * path-value = <any CHAR except CTLs or \";\">\n * @param {string} path\n */\nfunction validateCookiePath (path) {\n for (const char of path) {\n const code = char.charCodeAt(0)\n\n if (code < 0x21 || char === ';') {\n throw new Error('Invalid cookie path')\n }\n }\n}\n\n/**\n * I have no idea why these values aren't allowed to be honest,\n * but Deno tests these. - Khafra\n * @param {string} domain\n */\nfunction validateCookieDomain (domain) {\n if (\n domain.startsWith('-') ||\n domain.endsWith('.') ||\n domain.endsWith('-')\n ) {\n throw new Error('Invalid cookie domain')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n * @param {number|Date} date\n IMF-fixdate = day-name \",\" SP date1 SP time-of-day SP GMT\n ; fixed length/zone/capitalization subset of the format\n ; see Section 3.3 of [RFC5322]\n\n day-name = %x4D.6F.6E ; \"Mon\", case-sensitive\n / %x54.75.65 ; \"Tue\", case-sensitive\n / %x57.65.64 ; \"Wed\", case-sensitive\n / %x54.68.75 ; \"Thu\", case-sensitive\n / %x46.72.69 ; \"Fri\", case-sensitive\n / %x53.61.74 ; \"Sat\", case-sensitive\n / %x53.75.6E ; \"Sun\", case-sensitive\n date1 = day SP month SP year\n ; e.g., 02 Jun 1982\n\n day = 2DIGIT\n month = %x4A.61.6E ; \"Jan\", case-sensitive\n / %x46.65.62 ; \"Feb\", case-sensitive\n / %x4D.61.72 ; \"Mar\", case-sensitive\n / %x41.70.72 ; \"Apr\", case-sensitive\n / %x4D.61.79 ; \"May\", case-sensitive\n / %x4A.75.6E ; \"Jun\", case-sensitive\n / %x4A.75.6C ; \"Jul\", case-sensitive\n / %x41.75.67 ; \"Aug\", case-sensitive\n / %x53.65.70 ; \"Sep\", case-sensitive\n / %x4F.63.74 ; \"Oct\", case-sensitive\n / %x4E.6F.76 ; \"Nov\", case-sensitive\n / %x44.65.63 ; \"Dec\", case-sensitive\n year = 4DIGIT\n\n GMT = %x47.4D.54 ; \"GMT\", case-sensitive\n\n time-of-day = hour \":\" minute \":\" second\n ; 00:00:00 - 23:59:60 (leap second)\n\n hour = 2DIGIT\n minute = 2DIGIT\n second = 2DIGIT\n */\nfunction toIMFDate (date) {\n if (typeof date === 'number') {\n date = new Date(date)\n }\n\n const days = [\n 'Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'\n ]\n\n const months = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ]\n\n const dayName = days[date.getUTCDay()]\n const day = date.getUTCDate().toString().padStart(2, '0')\n const month = months[date.getUTCMonth()]\n const year = date.getUTCFullYear()\n const hour = date.getUTCHours().toString().padStart(2, '0')\n const minute = date.getUTCMinutes().toString().padStart(2, '0')\n const second = date.getUTCSeconds().toString().padStart(2, '0')\n\n return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n}\n\n/**\n max-age-av = \"Max-Age=\" non-zero-digit *DIGIT\n ; In practice, both expires-av and max-age-av\n ; are limited to dates representable by the\n ; user agent.\n * @param {number} maxAge\n */\nfunction validateCookieMaxAge (maxAge) {\n if (maxAge < 0) {\n throw new Error('Invalid cookie max-age')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n * @param {import('./index').Cookie} cookie\n */\nfunction stringify (cookie) {\n if (cookie.name.length === 0) {\n return null\n }\n\n validateCookieName(cookie.name)\n validateCookieValue(cookie.value)\n\n const out = [`${cookie.name}=${cookie.value}`]\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n if (cookie.name.startsWith('__Secure-')) {\n cookie.secure = true\n }\n\n if (cookie.name.startsWith('__Host-')) {\n cookie.secure = true\n cookie.domain = null\n cookie.path = '/'\n }\n\n if (cookie.secure) {\n out.push('Secure')\n }\n\n if (cookie.httpOnly) {\n out.push('HttpOnly')\n }\n\n if (typeof cookie.maxAge === 'number') {\n validateCookieMaxAge(cookie.maxAge)\n out.push(`Max-Age=${cookie.maxAge}`)\n }\n\n if (cookie.domain) {\n validateCookieDomain(cookie.domain)\n out.push(`Domain=${cookie.domain}`)\n }\n\n if (cookie.path) {\n validateCookiePath(cookie.path)\n out.push(`Path=${cookie.path}`)\n }\n\n if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n out.push(`Expires=${toIMFDate(cookie.expires)}`)\n }\n\n if (cookie.sameSite) {\n out.push(`SameSite=${cookie.sameSite}`)\n }\n\n for (const part of cookie.unparsed) {\n if (!part.includes('=')) {\n throw new Error('Invalid unparsed')\n }\n\n const [key, ...value] = part.split('=')\n\n out.push(`${key.trim()}=${value.join('=')}`)\n }\n\n return out.join('; ')\n}\n\nlet kHeadersListNode\n\nfunction getHeadersList (headers) {\n if (headers[kHeadersList]) {\n return headers[kHeadersList]\n }\n\n if (!kHeadersListNode) {\n kHeadersListNode = Object.getOwnPropertySymbols(headers).find(\n (symbol) => symbol.description === 'headers list'\n )\n\n assert(kHeadersListNode, 'Headers cannot be parsed')\n }\n\n const headersList = headers[kHeadersListNode]\n assert(headersList)\n\n return headersList\n}\n\nmodule.exports = {\n isCTLExcludingHtab,\n stringify,\n getHeadersList\n}\n", "'use strict'\n\nconst { maxNameValuePairSize, maxAttributeValueSize } = require('./constants')\nconst { isCTLExcludingHtab } = require('./util')\nconst { collectASequenceOfCodePointsFast } = require('../fetch/dataURL')\nconst assert = require('assert')\n\n/**\n * @description Parses the field-value attributes of a set-cookie header string.\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} header\n * @returns if the header is invalid, null will be returned\n */\nfunction parseSetCookie (header) {\n // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n // character (CTL characters excluding HTAB): Abort these steps and\n // ignore the set-cookie-string entirely.\n if (isCTLExcludingHtab(header)) {\n return null\n }\n\n let nameValuePair = ''\n let unparsedAttributes = ''\n let name = ''\n let value = ''\n\n // 2. If the set-cookie-string contains a %x3B (\";\") character:\n if (header.includes(';')) {\n // 1. The name-value-pair string consists of the characters up to,\n // but not including, the first %x3B (\";\"), and the unparsed-\n // attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\n const position = { position: 0 }\n\n nameValuePair = collectASequenceOfCodePointsFast(';', header, position)\n unparsedAttributes = header.slice(position.position)\n } else {\n // Otherwise:\n\n // 1. The name-value-pair string consists of all the characters\n // contained in the set-cookie-string, and the unparsed-\n // attributes is the empty string.\n nameValuePair = header\n }\n\n // 3. If the name-value-pair string lacks a %x3D (\"=\") character, then\n // the name string is empty, and the value string is the value of\n // name-value-pair.\n if (!nameValuePair.includes('=')) {\n value = nameValuePair\n } else {\n // Otherwise, the name string consists of the characters up to, but\n // not including, the first %x3D (\"=\") character, and the (possibly\n // empty) value string consists of the characters after the first\n // %x3D (\"=\") character.\n const position = { position: 0 }\n name = collectASequenceOfCodePointsFast(\n '=',\n nameValuePair,\n position\n )\n value = nameValuePair.slice(position.position + 1)\n }\n\n // 4. Remove any leading or trailing WSP characters from the name\n // string and the value string.\n name = name.trim()\n value = value.trim()\n\n // 5. If the sum of the lengths of the name string and the value string\n // is more than 4096 octets, abort these steps and ignore the set-\n // cookie-string entirely.\n if (name.length + value.length > maxNameValuePairSize) {\n return null\n }\n\n // 6. The cookie-name is the name string, and the cookie-value is the\n // value string.\n return {\n name, value, ...parseUnparsedAttributes(unparsedAttributes)\n }\n}\n\n/**\n * Parses the remaining attributes of a set-cookie header\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} unparsedAttributes\n * @param {[Object.<string, unknown>]={}} cookieAttributeList\n */\nfunction parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {\n // 1. If the unparsed-attributes string is empty, skip the rest of\n // these steps.\n if (unparsedAttributes.length === 0) {\n return cookieAttributeList\n }\n\n // 2. Discard the first character of the unparsed-attributes (which\n // will be a %x3B (\";\") character).\n assert(unparsedAttributes[0] === ';')\n unparsedAttributes = unparsedAttributes.slice(1)\n\n let cookieAv = ''\n\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n if (unparsedAttributes.includes(';')) {\n // 1. Consume the characters of the unparsed-attributes up to, but\n // not including, the first %x3B (\";\") character.\n cookieAv = collectASequenceOfCodePointsFast(\n ';',\n unparsedAttributes,\n { position: 0 }\n )\n unparsedAttributes = unparsedAttributes.slice(cookieAv.length)\n } else {\n // Otherwise:\n\n // 1. Consume the remainder of the unparsed-attributes.\n cookieAv = unparsedAttributes\n unparsedAttributes = ''\n }\n\n // Let the cookie-av string be the characters consumed in this step.\n\n let attributeName = ''\n let attributeValue = ''\n\n // 4. If the cookie-av string contains a %x3D (\"=\") character:\n if (cookieAv.includes('=')) {\n // 1. The (possibly empty) attribute-name string consists of the\n // characters up to, but not including, the first %x3D (\"=\")\n // character, and the (possibly empty) attribute-value string\n // consists of the characters after the first %x3D (\"=\")\n // character.\n const position = { position: 0 }\n\n attributeName = collectASequenceOfCodePointsFast(\n '=',\n cookieAv,\n position\n )\n attributeValue = cookieAv.slice(position.position + 1)\n } else {\n // Otherwise:\n\n // 1. The attribute-name string consists of the entire cookie-av\n // string, and the attribute-value string is empty.\n attributeName = cookieAv\n }\n\n // 5. Remove any leading or trailing WSP characters from the attribute-\n // name string and the attribute-value string.\n attributeName = attributeName.trim()\n attributeValue = attributeValue.trim()\n\n // 6. If the attribute-value is longer than 1024 octets, ignore the\n // cookie-av string and return to Step 1 of this algorithm.\n if (attributeValue.length > maxAttributeValueSize) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 7. Process the attribute-name and attribute-value according to the\n // requirements in the following subsections. (Notice that\n // attributes with unrecognized attribute-names are ignored.)\n const attributeNameLowercase = attributeName.toLowerCase()\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n // If the attribute-name case-insensitively matches the string\n // \"Expires\", the user agent MUST process the cookie-av as follows.\n if (attributeNameLowercase === 'expires') {\n // 1. Let the expiry-time be the result of parsing the attribute-value\n // as cookie-date (see Section 5.1.1).\n const expiryTime = new Date(attributeValue)\n\n // 2. If the attribute-value failed to parse as a cookie date, ignore\n // the cookie-av.\n\n cookieAttributeList.expires = expiryTime\n } else if (attributeNameLowercase === 'max-age') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n // If the attribute-name case-insensitively matches the string \"Max-\n // Age\", the user agent MUST process the cookie-av as follows.\n\n // 1. If the first character of the attribute-value is not a DIGIT or a\n // \"-\" character, ignore the cookie-av.\n const charCode = attributeValue.charCodeAt(0)\n\n if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 2. If the remainder of attribute-value contains a non-DIGIT\n // character, ignore the cookie-av.\n if (!/^\\d+$/.test(attributeValue)) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 3. Let delta-seconds be the attribute-value converted to an integer.\n const deltaSeconds = Number(attributeValue)\n\n // 4. Let cookie-age-limit be the maximum age of the cookie (which\n // SHOULD be 400 days or less, see Section 4.1.2.2).\n\n // 5. Set delta-seconds to the smaller of its present value and cookie-\n // age-limit.\n // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)\n\n // 6. If delta-seconds is less than or equal to zero (0), let expiry-\n // time be the earliest representable date and time. Otherwise, let\n // the expiry-time be the current date and time plus delta-seconds\n // seconds.\n // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n // 7. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Max-Age and an attribute-value of expiry-time.\n cookieAttributeList.maxAge = deltaSeconds\n } else if (attributeNameLowercase === 'domain') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n // If the attribute-name case-insensitively matches the string \"Domain\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. Let cookie-domain be the attribute-value.\n let cookieDomain = attributeValue\n\n // 2. If cookie-domain starts with %x2E (\".\"), let cookie-domain be\n // cookie-domain without its leading %x2E (\".\").\n if (cookieDomain[0] === '.') {\n cookieDomain = cookieDomain.slice(1)\n }\n\n // 3. Convert the cookie-domain to lower case.\n cookieDomain = cookieDomain.toLowerCase()\n\n // 4. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Domain and an attribute-value of cookie-domain.\n cookieAttributeList.domain = cookieDomain\n } else if (attributeNameLowercase === 'path') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n // If the attribute-name case-insensitively matches the string \"Path\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. If the attribute-value is empty or if the first character of the\n // attribute-value is not %x2F (\"/\"):\n let cookiePath = ''\n if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n // 1. Let cookie-path be the default-path.\n cookiePath = '/'\n } else {\n // Otherwise:\n\n // 1. Let cookie-path be the attribute-value.\n cookiePath = attributeValue\n }\n\n // 2. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Path and an attribute-value of cookie-path.\n cookieAttributeList.path = cookiePath\n } else if (attributeNameLowercase === 'secure') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n // If the attribute-name case-insensitively matches the string \"Secure\",\n // the user agent MUST append an attribute to the cookie-attribute-list\n // with an attribute-name of Secure and an empty attribute-value.\n\n cookieAttributeList.secure = true\n } else if (attributeNameLowercase === 'httponly') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n // If the attribute-name case-insensitively matches the string\n // \"HttpOnly\", the user agent MUST append an attribute to the cookie-\n // attribute-list with an attribute-name of HttpOnly and an empty\n // attribute-value.\n\n cookieAttributeList.httpOnly = true\n } else if (attributeNameLowercase === 'samesite') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n // If the attribute-name case-insensitively matches the string\n // \"SameSite\", the user agent MUST process the cookie-av as follows:\n\n // 1. Let enforcement be \"Default\".\n let enforcement = 'Default'\n\n const attributeValueLowercase = attributeValue.toLowerCase()\n // 2. If cookie-av's attribute-value is a case-insensitive match for\n // \"None\", set enforcement to \"None\".\n if (attributeValueLowercase.includes('none')) {\n enforcement = 'None'\n }\n\n // 3. If cookie-av's attribute-value is a case-insensitive match for\n // \"Strict\", set enforcement to \"Strict\".\n if (attributeValueLowercase.includes('strict')) {\n enforcement = 'Strict'\n }\n\n // 4. If cookie-av's attribute-value is a case-insensitive match for\n // \"Lax\", set enforcement to \"Lax\".\n if (attributeValueLowercase.includes('lax')) {\n enforcement = 'Lax'\n }\n\n // 5. Append an attribute to the cookie-attribute-list with an\n // attribute-name of \"SameSite\" and an attribute-value of\n // enforcement.\n cookieAttributeList.sameSite = enforcement\n } else {\n cookieAttributeList.unparsed ??= []\n\n cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)\n }\n\n // 8. Return to Step 1 of this algorithm.\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n}\n\nmodule.exports = {\n parseSetCookie,\n parseUnparsedAttributes\n}\n", "'use strict'\n\nconst { parseSetCookie } = require('./parse')\nconst { stringify, getHeadersList } = require('./util')\nconst { webidl } = require('../fetch/webidl')\nconst { Headers } = require('../fetch/headers')\n\n/**\n * @typedef {Object} Cookie\n * @property {string} name\n * @property {string} value\n * @property {Date|number|undefined} expires\n * @property {number|undefined} maxAge\n * @property {string|undefined} domain\n * @property {string|undefined} path\n * @property {boolean|undefined} secure\n * @property {boolean|undefined} httpOnly\n * @property {'Strict'|'Lax'|'None'} sameSite\n * @property {string[]} unparsed\n */\n\n/**\n * @param {Headers} headers\n * @returns {Record<string, string>}\n */\nfunction getCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookie = headers.get('cookie')\n const out = {}\n\n if (!cookie) {\n return out\n }\n\n for (const piece of cookie.split(';')) {\n const [name, ...value] = piece.split('=')\n\n out[name.trim()] = value.join('=')\n }\n\n return out\n}\n\n/**\n * @param {Headers} headers\n * @param {string} name\n * @param {{ path?: string, domain?: string }|undefined} attributes\n * @returns {void}\n */\nfunction deleteCookie (headers, name, attributes) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n name = webidl.converters.DOMString(name)\n attributes = webidl.converters.DeleteCookieAttributes(attributes)\n\n // Matches behavior of\n // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n setCookie(headers, {\n name,\n value: '',\n expires: new Date(0),\n ...attributes\n })\n}\n\n/**\n * @param {Headers} headers\n * @returns {Cookie[]}\n */\nfunction getSetCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookies = getHeadersList(headers).cookies\n\n if (!cookies) {\n return []\n }\n\n // In older versions of undici, cookies is a list of name:value.\n return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair))\n}\n\n/**\n * @param {Headers} headers\n * @param {Cookie} cookie\n * @returns {void}\n */\nfunction setCookie (headers, cookie) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n cookie = webidl.converters.Cookie(cookie)\n\n const str = stringify(cookie)\n\n if (str) {\n headers.append('Set-Cookie', stringify(cookie))\n }\n}\n\nwebidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n }\n])\n\nwebidl.converters.Cookie = webidl.dictionaryConverter([\n {\n converter: webidl.converters.DOMString,\n key: 'name'\n },\n {\n converter: webidl.converters.DOMString,\n key: 'value'\n },\n {\n converter: webidl.nullableConverter((value) => {\n if (typeof value === 'number') {\n return webidl.converters['unsigned long long'](value)\n }\n\n return new Date(value)\n }),\n key: 'expires',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters['long long']),\n key: 'maxAge',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'secure',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'httpOnly',\n defaultValue: null\n },\n {\n converter: webidl.converters.USVString,\n key: 'sameSite',\n allowedValues: ['Strict', 'Lax', 'None']\n },\n {\n converter: webidl.sequenceConverter(webidl.converters.DOMString),\n key: 'unparsed',\n defaultValue: []\n }\n])\n\nmodule.exports = {\n getCookies,\n deleteCookie,\n getSetCookies,\n setCookie\n}\n", "'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nmodule.exports = {\n uid,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer\n}\n", "'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\nconst { MessagePort } = require('worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' })\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' })\n\n super(type, eventInitDict)\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence<MessagePort>'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence<MessagePort>'],\n get defaultValue () {\n return []\n }\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent\n}\n", "'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { MessageEvent, ErrorEvent } = require('./events')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventConstructor = Event, eventInitDict) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event\u2019s type attribute to e.\n const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = new Uint8Array(data).buffer\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object\u2019s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, MessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (const char of protocol) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 ||\n code > 0x7E ||\n char === '(' ||\n char === ')' ||\n char === '<' ||\n char === '>' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}' ||\n code === 32 || // SP\n code === 9 // HT\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n fireEvent('error', ws, ErrorEvent, {\n error: new Error(reason)\n })\n }\n}\n\nmodule.exports = {\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived\n}\n", "'use strict'\n\nconst { randomBytes, createHash } = require('crypto')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { uid, states } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection } = require('./util')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers } = require('../fetch/headers')\nconst { getGlobalDispatcher } = require('../global')\nconst { kHeadersList } = require('../core/symbols')\n\nconst channels = {}\nchannels.open = diagnosticsChannel.channel('undici:websocket:open')\nchannels.close = diagnosticsChannel.channel('undici:websocket:close')\nchannels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error')\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any) => void} onEstablish\n * @param {Partial<import('../../types/websocket').WebSocketInit>} options\n */\nfunction establishWebSocketConnection (url, protocols, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url\u2019s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = new Headers(options.headers)[kHeadersList]\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request\u2019s header list.\n // 4. Append (`Connection`, `Upgrade`) to request\u2019s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request\u2019s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request\u2019s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n // TODO: enable once permessage-deflate is supported\n const permessageDeflate = '' // 'permessage-deflate; 15'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request\u2019s header list.\n // request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher ?? getGlobalDispatcher(),\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response\u2019s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n\n if (secExtension !== null && secExtension !== permessageDeflate) {\n failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.')\n return\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response)\n }\n })\n\n return controller\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kSentClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n fireEvent('close', ws, CloseEvent, {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection\n}\n", "'use strict'\n\nconst { randomBytes } = require('crypto')\nconst { maxUnsigned16Bit } = require('./constants')\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n this.maskKey = randomBytes(4)\n }\n\n createFrame (opcode) {\n const bodyLength = this.frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */\n buffer[offset - 4] = this.maskKey[0]\n buffer[offset - 3] = this.maskKey[1]\n buffer[offset - 2] = this.maskKey[2]\n buffer[offset - 1] = this.maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; i++) {\n buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n", "'use strict'\n\nconst { Writable } = require('stream')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { parserStates, opcodes, states, emptyBuffer } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>\n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nconst channels = {}\nchannels.ping = diagnosticsChannel.channel('undici:websocket:ping')\nchannels.pong = diagnosticsChannel.channel('undici:websocket:pong')\n\nclass ByteParser extends Writable {\n #buffers = []\n #byteOffset = 0\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n constructor (ws) {\n super()\n\n this.ws = ws\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n\n this.run(callback)\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (true) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.fin = (buffer[0] & 0x80) !== 0\n this.#info.opcode = buffer[0] & 0x0F\n\n // If we receive a fragmented message, we use the type of the first\n // frame to parse the full message as binary/text, when it's terminated\n this.#info.originalOpcode ??= this.#info.opcode\n\n this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION\n\n if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n const payloadLength = buffer[1] & 0x7F\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (this.#info.fragmented && payloadLength > 125) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n } else if (\n (this.#info.opcode === opcodes.PING ||\n this.#info.opcode === opcodes.PONG ||\n this.#info.opcode === opcodes.CLOSE) &&\n payloadLength > 125\n ) {\n // Control frames can have a payload length of 125 bytes MAX\n failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.')\n return\n } else if (this.#info.opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return\n }\n\n const body = this.consume(payloadLength)\n\n this.#info.closeInfo = this.parseCloseBody(false, body)\n\n if (!this.ws[kSentClose]) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n const body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = true\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n this.end()\n\n return\n } else if (this.#info.opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n const body = this.consume(payloadLength)\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n\n this.#state = parserStates.INFO\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n } else if (this.#info.opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n const body = this.consume(payloadLength)\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n\n // 2^31 is the maxinimum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n const lower = buffer.readUInt32BE(4)\n\n this.#info.payloadLength = (upper << 8) + lower\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n // If there is still more data in this chunk that needs to be read\n return callback()\n } else if (this.#byteOffset >= this.#info.payloadLength) {\n // If the server sent multiple frames in a single chunk\n\n const body = this.consume(this.#info.payloadLength)\n\n this.#fragments.push(body)\n\n // If the frame is unfragmented, or a fragmented frame was terminated,\n // a message was received\n if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n const fullMessage = Buffer.concat(this.#fragments)\n\n websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage)\n\n this.#info = {}\n this.#fragments.length = 0\n }\n\n this.#state = parserStates.INFO\n }\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n break\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer|null}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n return null\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n parseCloseBody (onlyCode, data) {\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (onlyCode) {\n if (!isValidStatusCode(code)) {\n return null\n }\n\n return { code }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return null\n }\n\n try {\n // TODO: optimize this\n reason = new TextDecoder('utf-8', { fatal: true }).decode(reason)\n } catch {\n return null\n }\n\n return { code, reason }\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n", "'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { DOMException } = require('../fetch/constants')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require('./constants')\nconst {\n kWebSocketURL,\n kReadyState,\n kController,\n kBinaryType,\n kResponse,\n kSentClose,\n kByteParser\n} = require('./symbols')\nconst { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require('./util')\nconst { establishWebSocketConnection } = require('./connection')\nconst { WebsocketFrameSend } = require('./frame')\nconst { ByteParser } = require('./receiver')\nconst { kEnumerableProperty, isBlobLike } = require('../core/util')\nconst { getGlobalDispatcher } = require('../global')\nconst { types } = require('util')\n\nlet experimentalWarned = false\n\n// https://websockets.spec.whatwg.org/#interface-definition\nclass WebSocket extends EventTarget {\n #events = {\n open: null,\n error: null,\n close: null,\n message: null\n }\n\n #bufferedAmount = 0\n #protocol = ''\n #extensions = ''\n\n /**\n * @param {string} url\n * @param {string|string[]} protocols\n */\n constructor (url, protocols = []) {\n super()\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' })\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('WebSockets are experimental, expect them to change at any time.', {\n code: 'UNDICI-WS'\n })\n }\n\n const options = webidl.converters['DOMString or sequence<DOMString> or WebSocketInit'](protocols)\n\n url = webidl.converters.USVString(url)\n protocols = options.protocols\n\n // 1. Let urlRecord be the result of applying the URL parser to url.\n let urlRecord\n\n try {\n urlRecord = new URL(url)\n } catch (e) {\n // 2. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 3. If urlRecord\u2019s scheme is not \"ws\" or \"wss\", then throw a\n // \"SyntaxError\" DOMException.\n if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n throw new DOMException(\n `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,\n 'SyntaxError'\n )\n }\n\n // 4. If urlRecord\u2019s fragment is non-null, then throw a \"SyntaxError\"\n // DOMException.\n if (urlRecord.hash) {\n throw new DOMException('Got fragment', 'SyntaxError')\n }\n\n // 5. If protocols is a string, set protocols to a sequence consisting\n // of just that string.\n if (typeof protocols === 'string') {\n protocols = [protocols]\n }\n\n // 6. If any of the values in protocols occur more than once or otherwise\n // fail to match the requirements for elements that comprise the value\n // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n // protocol, then throw a \"SyntaxError\" DOMException.\n if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n // 7. Set this's url to urlRecord.\n this[kWebSocketURL] = urlRecord\n\n // 8. Let client be this's relevant settings object.\n\n // 9. Run this step in parallel:\n\n // 1. Establish a WebSocket connection given urlRecord, protocols,\n // and client.\n this[kController] = establishWebSocketConnection(\n urlRecord,\n protocols,\n this,\n (response) => this.#onConnectionEstablished(response),\n options\n )\n\n // Each WebSocket object has an associated ready state, which is a\n // number representing the state of the connection. Initially it must\n // be CONNECTING (0).\n this[kReadyState] = WebSocket.CONNECTING\n\n // The extensions attribute must initially return the empty string.\n\n // The protocol attribute must initially return the empty string.\n\n // Each WebSocket object has an associated binary type, which is a\n // BinaryType. Initially it must be \"blob\".\n this[kBinaryType] = 'blob'\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n * @param {number|undefined} code\n * @param {string|undefined} reason\n */\n close (code = undefined, reason = undefined) {\n webidl.brandCheck(this, WebSocket)\n\n if (code !== undefined) {\n code = webidl.converters['unsigned short'](code, { clamp: true })\n }\n\n if (reason !== undefined) {\n reason = webidl.converters.USVString(reason)\n }\n\n // 1. If code is present, but is neither an integer equal to 1000 nor an\n // integer in the range 3000 to 4999, inclusive, throw an\n // \"InvalidAccessError\" DOMException.\n if (code !== undefined) {\n if (code !== 1000 && (code < 3000 || code > 4999)) {\n throw new DOMException('invalid code', 'InvalidAccessError')\n }\n }\n\n let reasonByteLength = 0\n\n // 2. If reason is present, then run these substeps:\n if (reason !== undefined) {\n // 1. Let reasonBytes be the result of encoding reason.\n // 2. If reasonBytes is longer than 123 bytes, then throw a\n // \"SyntaxError\" DOMException.\n reasonByteLength = Buffer.byteLength(reason)\n\n if (reasonByteLength > 123) {\n throw new DOMException(\n `Reason must be less than 123 bytes; received ${reasonByteLength}`,\n 'SyntaxError'\n )\n }\n }\n\n // 3. Run the first matching steps from the following list:\n if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(this)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(this, 'Connection was closed before it was established.')\n this[kReadyState] = WebSocket.CLOSING\n } else if (!isClosing(this)) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE), (err) => {\n if (!err) {\n this[kSentClose] = true\n }\n })\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n this[kReadyState] = WebSocket.CLOSING\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n */\n send (data) {\n webidl.brandCheck(this, WebSocket)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' })\n\n data = webidl.converters.WebSocketSendData(data)\n\n // 1. If this's ready state is CONNECTING, then throw an\n // \"InvalidStateError\" DOMException.\n if (this[kReadyState] === WebSocket.CONNECTING) {\n throw new DOMException('Sent before connected.', 'InvalidStateError')\n }\n\n // 2. Run the appropriate set of steps from the following list:\n // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n if (!isEstablished(this) || isClosing(this)) {\n return\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n // If data is a string\n if (typeof data === 'string') {\n // If the WebSocket connection is established and the WebSocket\n // closing handshake has not yet started, then the user agent\n // must send a WebSocket Message comprised of the data argument\n // using a text frame opcode; if the data cannot be sent, e.g.\n // because it would need to be buffered but the buffer is full,\n // the user agent must flag the WebSocket as full and then close\n // the WebSocket connection. Any invocation of this method with a\n // string argument that does not throw an exception must increase\n // the bufferedAmount attribute by the number of bytes needed to\n // express the argument as UTF-8.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.TEXT)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (types.isArrayBuffer(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need\n // to be buffered but the buffer is full, the user agent must flag\n // the WebSocket as full and then close the WebSocket connection.\n // The data to be sent is the data stored in the buffer described\n // by the ArrayBuffer object. Any invocation of this method with an\n // ArrayBuffer argument that does not throw an exception must\n // increase the bufferedAmount attribute by the length of the\n // ArrayBuffer in bytes.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (ArrayBuffer.isView(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The\n // data to be sent is the data stored in the section of the buffer\n // described by the ArrayBuffer object that data references. Any\n // invocation of this method with this kind of argument that does\n // not throw an exception must increase the bufferedAmount attribute\n // by the length of data\u2019s buffer in bytes.\n\n const ab = Buffer.from(data, data.byteOffset, data.byteLength)\n\n const frame = new WebsocketFrameSend(ab)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += ab.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= ab.byteLength\n })\n } else if (isBlobLike(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The data\n // to be sent is the raw data represented by the Blob object. Any\n // invocation of this method with a Blob argument that does not throw\n // an exception must increase the bufferedAmount attribute by the size\n // of the Blob object\u2019s raw data, in bytes.\n\n const frame = new WebsocketFrameSend()\n\n data.arrayBuffer().then((ab) => {\n const value = Buffer.from(ab)\n frame.frameData = value\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n })\n }\n }\n\n get readyState () {\n webidl.brandCheck(this, WebSocket)\n\n // The readyState getter steps are to return this's ready state.\n return this[kReadyState]\n }\n\n get bufferedAmount () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#bufferedAmount\n }\n\n get url () {\n webidl.brandCheck(this, WebSocket)\n\n // The url getter steps are to return this's url, serialized.\n return URLSerializer(this[kWebSocketURL])\n }\n\n get extensions () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#extensions\n }\n\n get protocol () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#protocol\n }\n\n get onopen () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.open\n }\n\n set onopen (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n\n get onclose () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.close\n }\n\n set onclose (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.close) {\n this.removeEventListener('close', this.#events.close)\n }\n\n if (typeof fn === 'function') {\n this.#events.close = fn\n this.addEventListener('close', fn)\n } else {\n this.#events.close = null\n }\n }\n\n get onmessage () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.message\n }\n\n set onmessage (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get binaryType () {\n webidl.brandCheck(this, WebSocket)\n\n return this[kBinaryType]\n }\n\n set binaryType (type) {\n webidl.brandCheck(this, WebSocket)\n\n if (type !== 'blob' && type !== 'arraybuffer') {\n this[kBinaryType] = 'blob'\n } else {\n this[kBinaryType] = type\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n */\n #onConnectionEstablished (response) {\n // processResponse is called when the \"response\u2019s header list has been received and initialized.\"\n // once this happens, the connection is open\n this[kResponse] = response\n\n const parser = new ByteParser(this)\n parser.on('drain', function onParserDrain () {\n this.ws[kResponse].socket.resume()\n })\n\n response.socket.ws = this\n this[kByteParser] = parser\n\n // 1. Change the ready state to OPEN (1).\n this[kReadyState] = states.OPEN\n\n // 2. Change the extensions attribute\u2019s value to the extensions in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n const extensions = response.headersList.get('sec-websocket-extensions')\n\n if (extensions !== null) {\n this.#extensions = extensions\n }\n\n // 3. Change the protocol attribute\u2019s value to the subprotocol in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n const protocol = response.headersList.get('sec-websocket-protocol')\n\n if (protocol !== null) {\n this.#protocol = protocol\n }\n\n // 4. Fire an event named open at the WebSocket object.\n fireEvent('open', this)\n }\n}\n\n// https://websockets.spec.whatwg.org/#dom-websocket-connecting\nWebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING\n// https://websockets.spec.whatwg.org/#dom-websocket-open\nWebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN\n// https://websockets.spec.whatwg.org/#dom-websocket-closing\nWebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING\n// https://websockets.spec.whatwg.org/#dom-websocket-closed\nWebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED\n\nObject.defineProperties(WebSocket.prototype, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors,\n url: kEnumerableProperty,\n readyState: kEnumerableProperty,\n bufferedAmount: kEnumerableProperty,\n onopen: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onclose: kEnumerableProperty,\n close: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n binaryType: kEnumerableProperty,\n send: kEnumerableProperty,\n extensions: kEnumerableProperty,\n protocol: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'WebSocket',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(WebSocket, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors\n})\n\nwebidl.converters['sequence<DOMString>'] = webidl.sequenceConverter(\n webidl.converters.DOMString\n)\n\nwebidl.converters['DOMString or sequence<DOMString>'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n return webidl.converters['sequence<DOMString>'](V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// This implements the propsal made in https://github.com/whatwg/websockets/issues/42\nwebidl.converters.WebSocketInit = webidl.dictionaryConverter([\n {\n key: 'protocols',\n converter: webidl.converters['DOMString or sequence<DOMString>'],\n get defaultValue () {\n return []\n }\n },\n {\n key: 'dispatcher',\n converter: (V) => V,\n get defaultValue () {\n return getGlobalDispatcher()\n }\n },\n {\n key: 'headers',\n converter: webidl.nullableConverter(webidl.converters.HeadersInit)\n }\n])\n\nwebidl.converters['DOMString or sequence<DOMString> or WebSocketInit'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) {\n return webidl.converters.WebSocketInit(V)\n }\n\n return { protocols: webidl.converters['DOMString or sequence<DOMString>'](V) }\n}\n\nwebidl.converters.WebSocketSendData = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n return webidl.converters.BufferSource(V)\n }\n }\n\n return webidl.converters.USVString(V)\n}\n\nmodule.exports = {\n WebSocket\n}\n", "'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nlet hasCrypto\ntry {\n require('crypto')\n hasCrypto = true\n} catch {\n hasCrypto = false\n}\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n\n try {\n return await fetchImpl(...arguments)\n } catch (err) {\n Error.captureStackTrace(err, this)\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n module.exports.FileReader = require('./lib/fileapi/filereader').FileReader\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n\n const { CacheStorage } = require('./lib/cache/cachestorage')\n const { kConstruct } = require('./lib/cache/symbols')\n\n // Cache & CacheStorage are tightly coupled with fetch. Even if it may run\n // in an older version of Node, it doesn't have any use without fetch.\n module.exports.caches = new CacheStorage(kConstruct)\n}\n\nif (util.nodeMajor >= 16) {\n const { deleteCookie, getCookies, getSetCookies, setCookie } = require('./lib/cookies')\n\n module.exports.deleteCookie = deleteCookie\n module.exports.getCookies = getCookies\n module.exports.getSetCookies = getSetCookies\n module.exports.setCookie = setCookie\n\n const { parseMIMEType, serializeAMimeType } = require('./lib/fetch/dataURL')\n\n module.exports.parseMIMEType = parseMIMEType\n module.exports.serializeAMimeType = serializeAMimeType\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n const { WebSocket } = require('./lib/websocket/websocket')\n\n module.exports.WebSocket = WebSocket\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n", null, null, null, "'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n", "'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n", "'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n", "'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n", "'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n", "'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n", "'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n", "'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n", "var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n", "var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL());\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230\u00A75.3.1: When making a request directly to an origin server, [\u2026]\n // a client MUST send only the absolute path [\u2026] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, [\u2026]\n // a client MUST send the target URI in absolute-form [\u2026].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231\u00A76.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231\u00A76.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231\u00A76.4: Automatic redirection needs to done with\n // care for methods not known to be safe, [\u2026]\n // RFC7231\u00A76.4.2\u20133: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231\u00A76.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource [\u2026]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) [\u2026]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n /* istanbul ignore else */\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n /* istanbul ignore next */\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n", "{\n \"name\": \"axios\",\n \"version\": \"0.21.4\",\n \"description\": \"Promise based HTTP client for the browser and node.js\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"test\": \"grunt test\",\n \"start\": \"node ./sandbox/server.js\",\n \"build\": \"NODE_ENV=production grunt build\",\n \"preversion\": \"npm test\",\n \"version\": \"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json\",\n \"postversion\": \"git push && git push --tags\",\n \"examples\": \"node ./examples/server.js\",\n \"coveralls\": \"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\",\n \"fix\": \"eslint --fix lib/**/*.js\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/axios/axios.git\"\n },\n \"keywords\": [\n \"xhr\",\n \"http\",\n \"ajax\",\n \"promise\",\n \"node\"\n ],\n \"author\": \"Matt Zabriskie\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/axios/axios/issues\"\n },\n \"homepage\": \"https://axios-http.com\",\n \"devDependencies\": {\n \"coveralls\": \"^3.0.0\",\n \"es6-promise\": \"^4.2.4\",\n \"grunt\": \"^1.3.0\",\n \"grunt-banner\": \"^0.6.0\",\n \"grunt-cli\": \"^1.2.0\",\n \"grunt-contrib-clean\": \"^1.1.0\",\n \"grunt-contrib-watch\": \"^1.0.0\",\n \"grunt-eslint\": \"^23.0.0\",\n \"grunt-karma\": \"^4.0.0\",\n \"grunt-mocha-test\": \"^0.13.3\",\n \"grunt-ts\": \"^6.0.0-beta.19\",\n \"grunt-webpack\": \"^4.0.2\",\n \"istanbul-instrumenter-loader\": \"^1.0.0\",\n \"jasmine-core\": \"^2.4.1\",\n \"karma\": \"^6.3.2\",\n \"karma-chrome-launcher\": \"^3.1.0\",\n \"karma-firefox-launcher\": \"^2.1.0\",\n \"karma-jasmine\": \"^1.1.1\",\n \"karma-jasmine-ajax\": \"^0.1.13\",\n \"karma-safari-launcher\": \"^1.0.0\",\n \"karma-sauce-launcher\": \"^4.3.6\",\n \"karma-sinon\": \"^1.0.5\",\n \"karma-sourcemap-loader\": \"^0.3.8\",\n \"karma-webpack\": \"^4.0.2\",\n \"load-grunt-tasks\": \"^3.5.2\",\n \"minimist\": \"^1.2.0\",\n \"mocha\": \"^8.2.1\",\n \"sinon\": \"^4.5.0\",\n \"terser-webpack-plugin\": \"^4.2.3\",\n \"typescript\": \"^4.0.5\",\n \"url-search-params\": \"^0.10.0\",\n \"webpack\": \"^4.44.2\",\n \"webpack-dev-server\": \"^3.11.0\"\n },\n \"browser\": {\n \"./lib/adapters/http.js\": \"./lib/adapters/xhr.js\"\n },\n \"jsdelivr\": \"dist/axios.min.js\",\n \"unpkg\": \"dist/axios.min.js\",\n \"typings\": \"./index.d.ts\",\n \"dependencies\": {\n \"follow-redirects\": \"^1.14.0\"\n },\n \"bundlesize\": [\n {\n \"path\": \"./dist/axios.min.js\",\n \"threshold\": \"5kB\"\n }\n ]\n}\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildFullPath = require('../core/buildFullPath');\nvar buildURL = require('./../helpers/buildURL');\nvar http = require('http');\nvar https = require('https');\nvar httpFollow = require('follow-redirects').http;\nvar httpsFollow = require('follow-redirects').https;\nvar url = require('url');\nvar zlib = require('zlib');\nvar pkg = require('./../../package.json');\nvar createError = require('../core/createError');\nvar enhanceError = require('../core/enhanceError');\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nmodule.exports = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var resolve = function resolve(value) {\n resolvePromise(value);\n };\n var reject = function reject(value) {\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('User-Agent' in headers || 'user-agent' in headers) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers['User-Agent'] && !headers['user-agent']) {\n delete headers['User-Agent'];\n delete headers['user-agent'];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + pkg.version;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers['Content-Length'] = data.length;\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url.parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth) {\n delete headers.Authorization;\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url.parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n var responseData = Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n\n response.data = responseData;\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n reject(createError(\n 'timeout of ' + timeout + 'ms exceeded',\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(cancel);\n });\n }\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n", "'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n", "'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n", "'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n", "'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n", "'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n", "'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n", "module.exports = require('./lib/axios');", null, null, "import React, { ReactElement, useState } from \"react\";\nimport { List, showToast, Toast, Action, Icon, ActionPanel } from \"@raycast/api\";\nimport { usePromise } from \"@raycast/utils\";\nimport { useDebouncedValue, usePreferences, useSelectedLanguagesSet, useTextState } from \"./hooks\";\nimport { getLanguageFlag, supportedLanguagesByCode } from \"./languages\";\nimport { LanguageManagerListDropdown } from \"./LanguagesManager\";\nimport { doubleWayTranslate, simpleTranslate, playTTS } from \"./simple-translate\";\nimport { ConfigurableCopyPasteActions, OpenOnGoogleTranslateWebsiteAction, ToggleFullTextAction } from \"./actions\";\nimport { LanguageCodeSet } from \"./types\";\n\nconst DoubleWayTranslateItem: React.FC<{\n value: string;\n selectedLanguageSet: LanguageCodeSet;\n toggleShowingDetail: () => void;\n}> = ({ toggleShowingDetail, value, selectedLanguageSet }) => {\n const { data: results } = usePromise(doubleWayTranslate, [value, selectedLanguageSet], {\n onError(error) {\n showToast({\n style: Toast.Style.Failure,\n title: \"Could not translate\",\n message: error.toString(),\n });\n },\n });\n\n return (\n <>\n {results?.map((r, index) => {\n const langFrom = supportedLanguagesByCode[r.langFrom];\n const langTo = supportedLanguagesByCode[r.langTo];\n const languages = `${getLanguageFlag(langFrom, langFrom?.code)} -> ${getLanguageFlag(langTo, langTo?.code)}`;\n const tooltip = `${langFrom?.name ?? langFrom?.code} -> ${langTo?.name ?? langTo?.code}`;\n return (\n <React.Fragment key={index}>\n <List.Item\n title={r.translatedText}\n accessories={[{ text: languages, tooltip: tooltip }]}\n detail={<List.Item.Detail markdown={r.translatedText} />}\n actions={\n <ActionPanel>\n <ActionPanel.Section>\n <ConfigurableCopyPasteActions defaultActionsPrefix=\"Translation\" value={r.translatedText} />\n <ToggleFullTextAction onAction={() => toggleShowingDetail()} />\n <Action\n title=\"Play Text-To-Speech\"\n icon={Icon.Play}\n shortcut={{ modifiers: [\"cmd\"], key: \"t\" }}\n onAction={() => playTTS(r.translatedText, r.langTo)}\n />\n <OpenOnGoogleTranslateWebsiteAction translationText={value} translation={r} />\n </ActionPanel.Section>\n </ActionPanel>\n }\n />\n {r.pronunciationText && (\n <List.Item\n title={r.pronunciationText}\n accessories={[{ text: languages, tooltip: tooltip }]}\n detail={<List.Item.Detail markdown={r.pronunciationText} />}\n actions={\n <ActionPanel>\n <ActionPanel.Section>\n <ConfigurableCopyPasteActions value={r.pronunciationText} />\n <ToggleFullTextAction onAction={() => toggleShowingDetail()} />\n <OpenOnGoogleTranslateWebsiteAction translationText={value} translation={r} />\n </ActionPanel.Section>\n </ActionPanel>\n }\n />\n )}\n </React.Fragment>\n );\n })}\n </>\n );\n};\n\nconst TranslateItem: React.FC<{\n value: string;\n selectedLanguageSet: LanguageCodeSet;\n toggleShowingDetail: () => void;\n}> = ({ toggleShowingDetail, value, selectedLanguageSet }) => {\n const { data: result, isLoading } = usePromise(simpleTranslate, [value, selectedLanguageSet], {\n onError(error) {\n showToast({\n style: Toast.Style.Failure,\n title: \"Could not translate\",\n message: error.toString(),\n });\n },\n });\n\n const langFromCode = result?.langFrom ?? selectedLanguageSet.langFrom;\n const langToCode = result?.langTo ?? selectedLanguageSet.langTo[0];\n\n const langFrom = supportedLanguagesByCode[langFromCode];\n const langTo = supportedLanguagesByCode[langToCode];\n const languages = `${getLanguageFlag(langFrom, langFrom?.code)} -> ${getLanguageFlag(langTo, langTo?.code)}`;\n const tooltip = `${langFrom?.name ?? langFrom?.code} -> ${langTo?.name ?? langTo?.code}`;\n\n return (\n <List.Item\n title={result?.translatedText ?? \"\"}\n subtitle={isLoading ? \"Translating...\" : undefined}\n accessories={[{ text: languages, tooltip: tooltip }]}\n detail={<List.Item.Detail markdown={result?.translatedText ?? \"\"} />}\n actions={\n <ActionPanel>\n <ActionPanel.Section>\n <ConfigurableCopyPasteActions defaultActionsPrefix=\"Translation\" value={result?.translatedText ?? \"\"} />\n <ToggleFullTextAction onAction={() => toggleShowingDetail()} />\n {result && (\n <Action\n title=\"Play Text-To-Speech\"\n icon={Icon.Play}\n shortcut={{ modifiers: [\"cmd\"], key: \"t\" }}\n onAction={() => playTTS(result.translatedText, langToCode)}\n />\n )}\n {result && <OpenOnGoogleTranslateWebsiteAction translationText={value} translation={result} />}\n </ActionPanel.Section>\n </ActionPanel>\n }\n />\n );\n};\n\nexport default function Translate(): ReactElement {\n const [selectedLanguageSet] = useSelectedLanguagesSet();\n const { proxy } = usePreferences();\n const [isShowingDetail, setIsShowingDetail] = useState(false);\n const [text, setText] = useTextState();\n const debouncedValue = useDebouncedValue(text, 500);\n\n return (\n <List\n searchBarPlaceholder=\"Enter text to translate\"\n searchText={text}\n onSearchTextChange={setText}\n isShowingDetail={isShowingDetail}\n searchBarAccessory={<LanguageManagerListDropdown />}\n >\n {selectedLanguageSet.langTo.length === 1 ? (\n <DoubleWayTranslateItem\n value={debouncedValue}\n selectedLanguageSet={selectedLanguageSet}\n toggleShowingDetail={() => setIsShowingDetail(!isShowingDetail)}\n />\n ) : (\n selectedLanguageSet.langTo.map((langTo, index) => (\n <TranslateItem\n key={`${index} ${langTo}`}\n value={debouncedValue}\n selectedLanguageSet={{ langFrom: selectedLanguageSet.langFrom, langTo: [langTo], proxy }}\n toggleShowingDetail={() => setIsShowingDetail(!isShowingDetail)}\n />\n ))\n )}\n </List>\n );\n}\n", "import { getPreferenceValues, getSelectedText } from \"@raycast/api\";\nimport { useCachedState } from \"@raycast/utils\";\nimport React from \"react\";\nimport { LanguageCode } from \"./languages\";\nimport { LanguageCodeSet, TranslatePreferences } from \"./types\";\nimport { AUTO_DETECT } from \"./simple-translate\";\n\ntype _LegacySingleLanguageCodeSet = {\n langFrom: LanguageCode;\n langTo: LanguageCode;\n};\n\ntype _StoredLanguageCodeSet = _LegacySingleLanguageCodeSet | LanguageCodeSet;\n\nconst unifyLegacyLanguageSet = (legacy: _StoredLanguageCodeSet): LanguageCodeSet => {\n return {\n langFrom: legacy.langFrom,\n langTo: Array.isArray(legacy.langTo) ? legacy.langTo : [legacy.langTo],\n };\n};\n\nexport const usePreferences = () => {\n return React.useMemo(() => getPreferenceValues<TranslatePreferences>(), []);\n};\n\nexport const useTextState = () => {\n const preferences = usePreferences();\n const [text, setText] = React.useState(\"\");\n const textRef = React.useRef(text);\n textRef.current = text;\n\n React.useEffect(() => {\n if (preferences.autoInput) {\n getSelectedText()\n .then((cbText) => {\n if (!textRef.current) {\n setText(cbText ?? \"\");\n }\n })\n .catch((err) => {\n console.log(\"Error:\", err);\n });\n }\n }, []);\n\n return [text, setText] as const;\n};\n\nexport const useSelectedLanguagesSet = () => {\n const preferences = usePreferences();\n const [selectedLanguageSet, setSelectedLanguageSet] = useCachedState<_StoredLanguageCodeSet>(\n \"selectedLanguageSet\",\n unifyLegacyLanguageSet({\n langFrom: preferences.lang1,\n langTo: preferences.lang2,\n }),\n );\n\n return [unifyLegacyLanguageSet(selectedLanguageSet), setSelectedLanguageSet] as const;\n};\n\nexport const usePreferencesLanguageSet = () => {\n const preferences = usePreferences();\n const preferencesLanguageSet: LanguageCodeSet = { langFrom: preferences.lang1, langTo: [preferences.lang2] };\n return preferencesLanguageSet;\n};\n\nexport const useDebouncedValue = <T>(value: T, delay: number) => {\n const [debouncedValue, setDebouncedValue] = React.useState<T>(value);\n\n React.useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n\nexport const useAllLanguageSets = () => {\n const [languages, setLanguages] = useCachedState<_StoredLanguageCodeSet[]>(\"languages\", []);\n\n return [languages.map(unifyLegacyLanguageSet), setLanguages] as const;\n};\n\nexport const useSourceLanguage = () => {\n const [sourceLanguage, setSourceLanguage] = useCachedState<LanguageCode>(\"sourceLanguage\", AUTO_DETECT);\n\n return [sourceLanguage, setSourceLanguage] as const;\n};\n\nexport const useTargetLanguages = () => {\n const preferences = usePreferences();\n const [targetLanguages, setTargetLanguages] = useCachedState<LanguageCode[]>(\n \"targetLanguages\",\n [preferences.lang1, preferences.lang2].filter((lang) => lang !== AUTO_DETECT),\n );\n\n return [targetLanguages, setTargetLanguages] as const;\n};\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\nimport querystring from \"querystring\";\nimport { request, ProxyAgent } from \"undici\";\nimport { TranslateOption, TranslateResponse } from \"./types\";\nimport { isSupported, getISOCode } from \"./languages\";\nimport { tokenGenerator } from \"./tokenGenerator\";\n\n/**\n * @function translate\n * @param {String} text The text to be translated.\n * @param {TranslateOption} options The options object for the translator.\n * @returns {TranslateResponse} The result containing the translation.\n */\nexport async function translate(text: string, options?: TranslateOption): Promise<TranslateResponse> {\n if (typeof options !== \"object\") options = {};\n text = String(text);\n\n // Check if a lanugage is in supported; if not, throw an error object.\n let error: Error | null = null;\n [ options.from, options.to ].forEach((lang) => {\n if (lang && !isSupported(lang)) {\n error = new Error();\n error.message = `The language '${lang}' is not supported.`;\n }\n });\n if (error) throw error;\n\n // If options object doesn\"t have \"from\" language, set it to \"auto\".\n if (!Object.prototype.hasOwnProperty.call(options, \"from\")) options.from = \"auto\";\n // If options object doesn\"t have \"to\" language, set it to \"en\".\n if (!Object.prototype.hasOwnProperty.call(options, \"to\")) options.to = \"en\";\n // If options object has a \"raw\" property evaluating to true, set it to true.\n options.raw = Boolean(options.raw);\n\n // Get ISO 639-1 codes for the languages.\n options.from = getISOCode(options.from);\n options.to = getISOCode(options.to);\n\n // Generate Google Translate token for the text to be translated.\n let token: any = await tokenGenerator(text);\n\n // URL & query string required by Google Translate.\n let baseUrl = \"https://translate.google.com/translate_a/single\";\n let data: any = {\n client: \"gtx\",\n sl: options.from,\n tl: options.to,\n hl: options.to,\n dt: [ \"at\", \"bd\", \"ex\", \"ld\", \"md\", \"qca\", \"rw\", \"rm\", \"ss\", \"t\" ],\n ie: \"UTF-8\",\n oe: \"UTF-8\",\n otf: 1,\n ssel: 0,\n tsel: 0,\n kc: 7,\n q: text,\n [token.name]: token.value\n };\n\n // Append query string to the request URL.\n let url = `${baseUrl}?${querystring.stringify(data)}`;\n\n let requestOptions: any;\n let requestUrl = url;\n // If request URL is greater than 2048 characters, use POST method.\n if (url.length > 2048) {\n delete data.q;\n requestUrl = `${baseUrl}?${querystring.stringify(data)}`;\n requestOptions = {\n method: \"POST\",\n body: new URLSearchParams({ q: text }).toString(),\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\",\n },\n };\n if (options.proxy) {\n requestOptions.dispatcher = new ProxyAgent(options.proxy);\n }\n }\n else {\n if (options.proxy) {\n requestOptions = { dispatcher: new ProxyAgent(options.proxy) };\n }\n }\n\n // Request translation from Google Translate.\n let response = await request(requestUrl, requestOptions);\n let body: any = await response.body.json();\n\n let result: TranslateResponse = {\n text: \"\",\n from: {\n language: {\n didYouMean: false,\n iso: \"\"\n },\n text: {\n autoCorrected: false,\n value: \"\",\n didYouMean: false\n }\n },\n raw: \"\"\n };\n\n // If user requested a raw output, add the raw response to the result\n if (options.raw) {\n result.raw = body;\n }\n\n // Parse body and add it to the result object.\n body[0].forEach((obj: any) => {\n if (obj[0]) {\n result.text += obj[0];\n }\n });\n\n if (body[2] === body[8][0][0]) {\n result.from.language.iso = body[2];\n }\n else {\n result.from.language.didYouMean = true;\n result.from.language.iso = body[8][0][0];\n }\n\n if (body[7] && body[7][0]) {\n let str = body[7][0];\n\n str = str.replace(/<b><i>/g, \"[\");\n str = str.replace(/<\\/i><\\/b>/g, \"]\");\n\n result.from.text.value = str;\n\n if (body[7][5] === true) {\n result.from.text.autoCorrected = true;\n }\n else {\n result.from.text.didYouMean = true;\n }\n }\n\n return result;\n}\n", "/**\n * Generated from https://translate.google.com\n *\n * The languages that Google Translate supports (as of 7/5/2020) alongside\n * their ISO 639-1 codes\n * @see https://cloud.google.com/translate/docs/languages\n * @see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n */\n\nexport const languages: any = {\n \"auto\": \"Automatic\",\n \"af\": \"Afrikaans\",\n \"sq\": \"Albanian\",\n \"am\": \"Amharic\",\n \"ar\": \"Arabic\",\n \"hy\": \"Armenian\",\n \"az\": \"Azerbaijani\",\n \"eu\": \"Basque\",\n \"be\": \"Belarusian\",\n \"bn\": \"Bengali\",\n \"bs\": \"Bosnian\",\n \"bg\": \"Bulgarian\",\n \"ca\": \"Catalan\",\n \"ceb\": \"Cebuano\",\n \"ny\": \"Chichewa\",\n \"zh-cn\": \"Chinese Simplified\",\n \"zh-tw\": \"Chinese Traditional\",\n \"co\": \"Corsican\",\n \"hr\": \"Croatian\",\n \"cs\": \"Czech\",\n \"da\": \"Danish\",\n \"nl\": \"Dutch\",\n \"en\": \"English\",\n \"eo\": \"Esperanto\",\n \"et\": \"Estonian\",\n \"tl\": \"Filipino\",\n \"fi\": \"Finnish\",\n \"fr\": \"French\",\n \"fy\": \"Frisian\",\n \"gl\": \"Galician\",\n \"ka\": \"Georgian\",\n \"de\": \"German\",\n \"el\": \"Greek\",\n \"gu\": \"Gujarati\",\n \"ht\": \"Haitian Creole\",\n \"ha\": \"Hausa\",\n \"haw\": \"Hawaiian\",\n \"iw\": \"Hebrew\",\n \"hi\": \"Hindi\",\n \"hmn\": \"Hmong\",\n \"hu\": \"Hungarian\",\n \"is\": \"Icelandic\",\n \"ig\": \"Igbo\",\n \"id\": \"Indonesian\",\n \"ga\": \"Irish\",\n \"it\": \"Italian\",\n \"ja\": \"Japanese\",\n \"jw\": \"Javanese\",\n \"kn\": \"Kannada\",\n \"kk\": \"Kazakh\",\n \"km\": \"Khmer\",\n \"ko\": \"Korean\",\n \"ku\": \"Kurdish (Kurmanji)\",\n \"ky\": \"Kyrgyz\",\n \"lo\": \"Lao\",\n \"la\": \"Latin\",\n \"lv\": \"Latvian\",\n \"lt\": \"Lithuanian\",\n \"lb\": \"Luxembourgish\",\n \"mk\": \"Macedonian\",\n \"mg\": \"Malagasy\",\n \"ms\": \"Malay\",\n \"ml\": \"Malayalam\",\n \"mt\": \"Maltese\",\n \"mi\": \"Maori\",\n \"mr\": \"Marathi\",\n \"mn\": \"Mongolian\",\n \"my\": \"Myanmar (Burmese)\",\n \"ne\": \"Nepali\",\n \"no\": \"Norwegian\",\n \"ps\": \"Pashto\",\n \"fa\": \"Persian\",\n \"pl\": \"Polish\",\n \"pt\": \"Portuguese\",\n \"pa\": \"Punjabi\",\n \"ro\": \"Romanian\",\n \"ru\": \"Russian\",\n \"sm\": \"Samoan\",\n \"gd\": \"Scots Gaelic\",\n \"sr\": \"Serbian\",\n \"st\": \"Sesotho\",\n \"sn\": \"Shona\",\n \"sd\": \"Sindhi\",\n \"si\": \"Sinhala\",\n \"sk\": \"Slovak\",\n \"sl\": \"Slovenian\",\n \"so\": \"Somali\",\n \"es\": \"Spanish\",\n \"su\": \"Sundanese\",\n \"sw\": \"Swahili\",\n \"sv\": \"Swedish\",\n \"tg\": \"Tajik\",\n \"ta\": \"Tamil\",\n \"te\": \"Telugu\",\n \"th\": \"Thai\",\n \"tr\": \"Turkish\",\n \"uk\": \"Ukrainian\",\n \"ur\": \"Urdu\",\n \"uz\": \"Uzbek\",\n \"vi\": \"Vietnamese\",\n \"cy\": \"Welsh\",\n \"xh\": \"Xhosa\",\n \"yi\": \"Yiddish\",\n \"yo\": \"Yoruba\",\n \"zu\": \"Zulu\"\n};\n\n/**\n * Returns the ISO 639-1 code of the desiredLang \u2013 if it is supported by\n * Google Translate\n * @param {string} language The name or the code of the desired language\n * @returns {string|undefined} The ISO 639-1 code of the language or null if the\n * language is not supported\n */\nexport function getISOCode(language: string | undefined) {\n if (!language) return undefined;\n language = language.toLowerCase();\n if (language in languages) return language;\n\n let keys = Object.keys(languages).filter((key) => {\n if (typeof languages[key] !== \"string\") return false;\n\n return languages[key].toLowerCase() === language;\n });\n\n return keys[0] || undefined;\n}\n\n/**\n * Returns true if the desiredLang is supported by Google Translate and false otherwise\n * @param {string} language The ISO 639-1 code or the name of the desired language.\n * @returns {boolean} If the language is supported or not.\n */\nexport function isSupported(language: string | undefined) {\n return Boolean(getISOCode(language));\n}\n", "/**\n * Source https://github.com/iamtraction/google-translate\n * MIT License\n */\n\nimport { request } from \"undici\";\n\nfunction zr(a: string) {\n let b: any;\n if (null !== yr) b = yr;\n else {\n b = wr(String.fromCharCode(84));\n let c = wr(String.fromCharCode(75));\n b = [ b(), b() ];\n b[1] = c();\n b = (yr = window[b.join(c())] || \"\") || \"\";\n }\n let d: any = wr(String.fromCharCode(116));\n let c: any = wr(String.fromCharCode(107));\n d = [ d(), d() ];\n d[1] = c();\n c = \"&\" + d.join(\"\") + \"=\";\n d = b.split(\".\");\n b = Number(d[0]) || 0;\n\n for (var e: any[] = [], f = 0, g = 0; g < a.length; g++) {\n let l = a.charCodeAt(g);\n 128 > l ? e[f++] = l : (2048 > l ? e[f++] = l >> 6 | 192 : ((l & 64512) == 55296 && g + 1 < a.length && (a.charCodeAt(g + 1) & 64512) == 56320 ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023), e[f++] = l >> 18 | 240, e[f++] = l >> 12 & 63 | 128) : e[f++] = l >> 12 | 224, e[f++] = l >> 6 & 63 | 128), e[f++] = l & 63 | 128);\n }\n let h: number = Number(b);\n for (let f = 0; f < e.length; f++) a += e[f], h = xr(h, \"+-a^+6\");\n h = xr(h, \"+-3^+b+-f\");\n h ^= Number(d[1]) || 0;\n 0 > h && (h = (h & 2147483647) + 2147483648);\n h %= 1E6;\n return c + (a.toString() + \".\" + (h ^ b));\n}\n\nlet yr: string | null = null;\nlet wr = function(a: string) {\n return function() {\n return a;\n };\n};\nlet xr = function(a: number, b: string) {\n for (let c = 0; c < b.length - 2; c += 3) {\n let d = b.charAt(c + 2);\n let e = d >= \"a\" ? d.charCodeAt(0) - 87 : Number(d);\n e = b.charAt(c + 1) == \"+\" ? a >>> e : a << e;\n a = b.charAt(c) == \"+\" ? a + e & 4294967295 : a ^ e;\n }\n return a;\n};\n\nconst config = new Map();\n\nconst window: any = {\n TKK: config.get(\"TKK\") || \"0\"\n};\n\nasync function updateTKK() {\n let now = Math.floor(Date.now() / 3600000);\n\n if (Number(window.TKK.split(\".\")[0]) !== now) {\n const response = await request(\"https://translate.google.com\");\n const body = await response.body.text();\n\n // code will extract something like tkk:'1232135.131231321312', we need only value\n const code = body.match(/tkk:'\\d+.\\d+'/g);\n\n if (code && code.length > 0) {\n // extracting value tkk:'1232135.131231321312', this will extract only token: 1232135.131231321312\n const xt = code[0].split(\":\")[1].replace(/'/g, \"\");\n\n window.TKK = xt;\n config.set(\"TKK\", xt);\n }\n }\n}\n\nexport async function tokenGenerator(text: string) {\n try {\n await updateTKK();\n\n let tk = zr(text);\n tk = tk.replace(\"&tk=\", \"\");\n return { name: \"tk\", value: tk };\n }\n catch (error) {\n return error;\n }\n}\n", "import { translate } from \"../vendor/@iamtraction-translate/src\";\nimport * as googleTTS from \"google-tts-api\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport * as https from \"https\";\nimport * as child_process from \"child_process\";\nimport { existsSync, writeFileSync, unlinkSync } from \"fs\";\nimport { LanguageCode } from \"./languages\";\nimport { LanguageCodeSet } from \"./types\";\n\nexport const AUTO_DETECT = \"auto\";\n\nexport type SimpleTranslateResult = {\n originalText: string;\n translatedText: string;\n pronunciationText?: string;\n langFrom: LanguageCode;\n langTo: LanguageCode;\n};\n\nexport class TranslateError extends Error {}\n\nconst extractPronounceTextFromRaw = (raw: string) => {\n return raw?.[0]?.[1]?.[2];\n};\n\nexport async function simpleTranslate(text: string, options: LanguageCodeSet): Promise<SimpleTranslateResult> {\n try {\n if (!text) {\n return {\n originalText: text,\n translatedText: \"\",\n pronunciationText: \"\",\n langFrom: options.langFrom,\n langTo: options.langTo[0],\n };\n }\n\n const translated = await translate(text, {\n from: options.langFrom,\n to: options.langTo[0],\n raw: true,\n proxy: options.proxy,\n });\n\n return {\n originalText: text,\n translatedText: translated.text,\n pronunciationText: extractPronounceTextFromRaw(translated?.raw),\n langFrom: translated?.from?.language?.iso as LanguageCode,\n langTo: options.langTo[0],\n };\n } catch (err) {\n if (err instanceof Error) {\n if (err.name === \"TooManyRequestsError\") {\n const error = new TranslateError();\n error.name = \"Too many requests\";\n error.message = \"please try again later\";\n throw error;\n }\n\n const error = new TranslateError();\n error.name = err.name;\n error.message = err.message;\n throw error;\n }\n\n throw err;\n }\n}\n\nexport async function doubleWayTranslate(text: string, options: LanguageCodeSet) {\n if (!text) {\n return [];\n }\n\n if (options.langFrom === AUTO_DETECT) {\n const translated1 = await simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n });\n\n if (translated1?.langFrom) {\n const translated2 = await simpleTranslate(translated1.translatedText, {\n langFrom: options.langTo[0],\n langTo: [translated1.langFrom],\n });\n\n return [translated1, translated2];\n }\n\n return [];\n } else {\n return await Promise.all([\n simpleTranslate(text, {\n langFrom: options.langFrom,\n langTo: options.langTo,\n }),\n simpleTranslate(text, {\n langFrom: options.langTo[0],\n langTo: [options.langFrom],\n }),\n ]);\n }\n}\n\nexport async function playTTS(text: string, langTo: string) {\n const audioUrl = googleTTS.getAudioUrl(text, {\n lang: langTo,\n slow: false,\n host: \"https://translate.google.com\",\n });\n https.get(audioUrl, (response) => {\n const chunks: Uint8Array[] = [];\n\n response.on(\"data\", (chunk) => {\n chunks.push(chunk);\n });\n\n response.on(\"end\", () => {\n const audioData = Buffer.concat(chunks);\n\n const tempFilePath = path.join(os.tmpdir(), \"translation.mp3\");\n writeFileSync(tempFilePath, audioData);\n\n // Play the audio file using afplay\n const afplayProcess = child_process.spawn(\"afplay\", [tempFilePath]);\n\n afplayProcess.on(\"exit\", (code) => {\n if (code !== 0) {\n console.error(\"Error playing audio\");\n }\n if (existsSync(tempFilePath)) {\n unlinkSync(tempFilePath);\n }\n });\n });\n });\n}\n", "{\n \"Auto-detect\": {\n \"code\": \"auto\",\n \"name\": \"Auto-detect\",\n \"flag\": \"\uD83C\uDF10\"\n },\n \"Afrikaans\": {\n \"code\": \"af\",\n \"name\": \"Afrikaans\",\n \"flag\": \"\uD83C\uDDFF\uD83C\uDDE6\"\n },\n \"Albanian\": {\n \"code\": \"sq\",\n \"name\": \"Albanian\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDF1\"\n },\n \"Amharic\": {\n \"code\": \"am\",\n \"name\": \"Amharic\"\n },\n \"Arabic\": {\n \"code\": \"ar\",\n \"name\": \"Arabic\"\n },\n \"Armenian\": {\n \"code\": \"hy\",\n \"name\": \"Armenian\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDF2\"\n },\n \"Azerbaijani\": {\n \"code\": \"az\",\n \"name\": \"Azerbaijani\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDFF\"\n },\n \"Basque\": {\n \"code\": \"eu\",\n \"name\": \"Basque\"\n },\n \"Belarusian\": {\n \"code\": \"be\",\n \"name\": \"Belarusian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDFE\"\n },\n \"Bengali\": {\n \"code\": \"bn\",\n \"name\": \"Bengali\"\n },\n \"Bosnian\": {\n \"code\": \"bs\",\n \"name\": \"Bosnian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDE6\"\n },\n \"Bulgarian\": {\n \"code\": \"bg\",\n \"name\": \"Bulgarian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDEC\"\n },\n \"Catalan\": {\n \"code\": \"ca\",\n \"name\": \"Catalan\"\n },\n \"Cebuano\": {\n \"code\": \"ceb\",\n \"name\": \"Cebuano\"\n },\n \"Chinese Simplified\": {\n \"code\": \"zh-CN\",\n \"name\": \"Chinese Simplified\",\n \"flag\": \"\uD83C\uDDE8\uD83C\uDDF3\"\n },\n \"Mandarin\": {\n \"code\": \"zh-TW\",\n \"name\": \"Chinese Traditional\"\n },\n \"Corsican\": {\n \"code\": \"co\",\n \"name\": \"Corsican\"\n },\n \"Croatian\": {\n \"code\": \"hr\",\n \"name\": \"Croatian\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDF7\"\n },\n \"Czech\": {\n \"code\": \"cs\",\n \"name\": \"Czech\",\n \"flag\": \"\uD83C\uDDE8\uD83C\uDDFF\"\n },\n \"Danish\": {\n \"code\": \"da\",\n \"name\": \"Danish\",\n \"flag\": \"\uD83C\uDDE9\uD83C\uDDF0\"\n },\n \"Dutch\": {\n \"code\": \"nl\",\n \"name\": \"Dutch\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF1\"\n },\n \"English\": {\n \"code\": \"en\",\n \"name\": \"English\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDE7\"\n },\n \"Esperanto\": {\n \"code\": \"eo\",\n \"name\": \"Esperanto\"\n },\n \"Estonian\": {\n \"code\": \"et\",\n \"name\": \"Estonian\",\n \"flag\": \"\uD83C\uDDEA\uD83C\uDDEA\"\n },\n \"Finnish\": {\n \"code\": \"fi\",\n \"name\": \"Finnish\",\n \"flag\": \"\uD83C\uDDEB\uD83C\uDDEE\"\n },\n \"French\": {\n \"code\": \"fr\",\n \"name\": \"French\",\n \"flag\": \"\uD83C\uDDEB\uD83C\uDDF7\"\n },\n \"Frisian\": {\n \"code\": \"fy\",\n \"name\": \"Frisian\"\n },\n \"Galician\": {\n \"code\": \"gl\",\n \"name\": \"Galician\"\n },\n \"Georgian\": {\n \"code\": \"ka\",\n \"name\": \"Georgian\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDEA\"\n },\n \"German\": {\n \"code\": \"de\",\n \"name\": \"German\",\n \"flag\": \"\uD83C\uDDE9\uD83C\uDDEA\"\n },\n \"Greek\": {\n \"code\": \"el\",\n \"name\": \"Greek\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDF7\"\n },\n \"Gujarati\": {\n \"code\": \"gu\",\n \"name\": \"Gujarati\"\n },\n \"Haitian Creole\": {\n \"code\": \"ht\",\n \"name\": \"Haitian Creole\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDF9\"\n },\n \"Hausa\": {\n \"code\": \"ha\",\n \"name\": \"Hausa\"\n },\n \"Hawaiian\": {\n \"code\": \"haw\",\n \"name\": \"Hawaiian\",\n \"flag\": \"\uD83C\uDF3A\"\n },\n \"Hebrew\": {\n \"code\": \"iw\",\n \"name\": \"Hebrew\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF1\"\n },\n \"Hindi\": {\n \"code\": \"hi\",\n \"name\": \"Hindi\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF3\"\n },\n \"Hmong\": {\n \"code\": \"hmn\",\n \"name\": \"Hmong\"\n },\n \"Hungarian\": {\n \"code\": \"hu\",\n \"name\": \"Hungarian\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDFA\"\n },\n \"Icelandic\": {\n \"code\": \"is\",\n \"name\": \"Icelandic\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF8\"\n },\n \"Igbo\": {\n \"code\": \"ig\",\n \"name\": \"Igbo\"\n },\n \"Indonesian\": {\n \"code\": \"id\",\n \"name\": \"Indonesian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDE9\"\n },\n \"Irish\": {\n \"code\": \"ga\",\n \"name\": \"Irish\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDEA\"\n },\n \"Italian\": {\n \"code\": \"it\",\n \"name\": \"Italian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF9\"\n },\n \"Japanese\": {\n \"code\": \"ja\",\n \"name\": \"Japanese\",\n \"flag\": \"\uD83C\uDDEF\uD83C\uDDF5\"\n },\n \"Javanese\": {\n \"code\": \"jv\",\n \"name\": \"Javanese\"\n },\n \"Kannada\": {\n \"code\": \"kn\",\n \"name\": \"Kannada\"\n },\n \"Kazakh\": {\n \"code\": \"kk\",\n \"name\": \"Kazakh\",\n \"flag\": \"\uD83C\uDDF0\uD83C\uDDFF\"\n },\n \"Khmer\": {\n \"code\": \"km\",\n \"name\": \"Khmer\"\n },\n \"Kinyarwanda\": {\n \"code\": \"rw\",\n \"name\": \"Kinyarwanda\"\n },\n \"Korean\": {\n \"code\": \"ko\",\n \"name\": \"Korean\",\n \"flag\": \"\uD83C\uDDF0\uD83C\uDDF7\"\n },\n \"Kurdish\": {\n \"code\": \"ku\",\n \"name\": \"Kurdish\"\n },\n \"Kyrgyz\": {\n \"code\": \"ky\",\n \"name\": \"Kyrgyz\"\n },\n \"Lao\": {\n \"code\": \"lo\",\n \"name\": \"Lao\"\n },\n \"Latvian\": {\n \"code\": \"lv\",\n \"name\": \"Latvian\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDFB\"\n },\n \"Lithuanian\": {\n \"code\": \"lt\",\n \"name\": \"Lithuanian\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDF9\"\n },\n \"Luxembourgish\": {\n \"code\": \"lb\",\n \"name\": \"Luxembourgish\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDFA\"\n },\n \"Latin\": {\n \"code\": \"la\",\n \"name\": \"Latin\",\n \"flag\": \"\uD83C\uDFDB\"\n },\n \"Macedonian\": {\n \"code\": \"mk\",\n \"name\": \"Macedonian\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF0\"\n },\n \"Malagasy\": {\n \"code\": \"mg\",\n \"name\": \"Malagasy\"\n },\n \"Malay\": {\n \"code\": \"ms\",\n \"name\": \"Malay\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDFE\"\n },\n \"Malayalam\": {\n \"code\": \"ml\",\n \"name\": \"Malayalam\"\n },\n \"Maltese\": {\n \"code\": \"mt\",\n \"name\": \"Maltese\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF9\"\n },\n \"Maori\": {\n \"code\": \"mi\",\n \"name\": \"Maori\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDFF\"\n },\n \"Marathi\": {\n \"code\": \"mr\",\n \"name\": \"Marathi\"\n },\n \"Mongolian\": {\n \"code\": \"mn\",\n \"name\": \"Mongolian\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF3\"\n },\n \"Myanmar (Burmese)\": {\n \"code\": \"my\",\n \"name\": \"Myanmar (Burmese)\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF2\"\n },\n \"Nepali\": {\n \"code\": \"ne\",\n \"name\": \"Nepali\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF5\"\n },\n \"Norwegian\": {\n \"code\": \"no\",\n \"name\": \"Norwegian\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF4\"\n },\n \"Nyanja (Chichewa)\": {\n \"code\": \"ny\",\n \"name\": \"Nyanja (Chichewa)\"\n },\n \"Odia (Oriya)\": {\n \"code\": \"or\",\n \"name\": \"Odia (Oriya)\"\n },\n \"Pashto\": {\n \"code\": \"ps\",\n \"name\": \"Pashto\"\n },\n \"Persian\": {\n \"code\": \"fa\",\n \"name\": \"Persian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF7\"\n },\n \"Polish\": {\n \"code\": \"pl\",\n \"name\": \"Polish\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDF1\"\n },\n \"Portuguese\": {\n \"code\": \"pt\",\n \"name\": \"Portuguese\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDF9\"\n },\n \"Punjabi\": {\n \"code\": \"pa\",\n \"name\": \"Punjabi\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF3\"\n },\n \"Romanian\": {\n \"code\": \"ro\",\n \"name\": \"Romanian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDF4\"\n },\n \"Russian\": {\n \"code\": \"ru\",\n \"name\": \"Russian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDFA\"\n },\n \"Samoan\": {\n \"code\": \"sm\",\n \"name\": \"Samoan\"\n },\n \"Scots Gaelic\": {\n \"code\": \"gd\",\n \"name\": \"Scots Gaelic\",\n \"flag\": \"\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74\uDB40\uDC7F\"\n },\n \"Serbian\": {\n \"code\": \"sr\",\n \"name\": \"Serbian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDF8\"\n },\n \"Sesotho\": {\n \"code\": \"st\",\n \"name\": \"Sesotho\"\n },\n \"Shona\": {\n \"code\": \"sn\",\n \"name\": \"Shona\"\n },\n \"Sindhi\": {\n \"code\": \"sd\",\n \"name\": \"Sindhi\"\n },\n \"Sinhala (Sinhalese)\": {\n \"code\": \"si\",\n \"name\": \"Sinhala (Sinhalese)\"\n },\n \"Slovak\": {\n \"code\": \"sk\",\n \"name\": \"Slovak\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDF0\"\n },\n \"Slovenian\": {\n \"code\": \"sl\",\n \"name\": \"Slovenian\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDEE\"\n },\n \"Somali\": {\n \"code\": \"so\",\n \"name\": \"Somali\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDF4\"\n },\n \"Spanish\": {\n \"code\": \"es\",\n \"name\": \"Spanish\",\n \"flag\": \"\uD83C\uDDEA\uD83C\uDDF8\"\n },\n \"Sundanese\": {\n \"code\": \"su\",\n \"name\": \"Sundanese\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDE9\"\n },\n \"Swahili\": {\n \"code\": \"sw\",\n \"name\": \"Swahili\"\n },\n \"Swedish\": {\n \"code\": \"sv\",\n \"name\": \"Swedish\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDEA\"\n },\n \"Tagalog (Filipino)\": {\n \"code\": \"tl\",\n \"name\": \"Tagalog (Filipino)\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDED\"\n },\n \"Tajik\": {\n \"code\": \"tg\",\n \"name\": \"Tajik\"\n },\n \"Tamil\": {\n \"code\": \"ta\",\n \"name\": \"Tamil\"\n },\n \"Tatar\": {\n \"code\": \"tt\",\n \"name\": \"Tatar\"\n },\n \"Telugu\": {\n \"code\": \"te\",\n \"name\": \"Telugu\"\n },\n \"Thai\": {\n \"code\": \"th\",\n \"name\": \"Thai\"\n },\n \"Turkish\": {\n \"code\": \"tr\",\n \"name\": \"Turkish\",\n \"flag\": \"\uD83C\uDDF9\uD83C\uDDF7\"\n },\n \"Turkmen\": {\n \"code\": \"tk\",\n \"name\": \"Turkmen\",\n \"flag\": \"\uD83C\uDDF9\uD83C\uDDF2\"\n },\n \"Ukrainian\": {\n \"code\": \"uk\",\n \"name\": \"Ukrainian\",\n \"flag\": \"\uD83C\uDDFA\uD83C\uDDE6\"\n },\n \"Urdu\": {\n \"code\": \"ur\",\n \"name\": \"Urdu\"\n },\n \"Uyghur\": {\n \"code\": \"ug\",\n \"name\": \"Uyghur\"\n },\n \"Uzbek\": {\n \"code\": \"uz\",\n \"name\": \"Uzbek\"\n },\n \"Vietnamese\": {\n \"code\": \"vi\",\n \"name\": \"Vietnamese\",\n \"flag\": \"\uD83C\uDDFB\uD83C\uDDF3\"\n },\n \"Welsh\": {\n \"code\": \"cy\",\n \"name\": \"Welsh\",\n \"flag\": \"\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73\uDB40\uDC7F\"\n },\n \"Xhosa\": {\n \"code\": \"xh\",\n \"name\": \"Xhosa\"\n },\n \"Yiddish\": {\n \"code\": \"yi\",\n \"name\": \"Yiddish\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF1\"\n },\n \"Yoruba\": {\n \"code\": \"yo\",\n \"name\": \"Yoruba\"\n },\n \"Zulu\": {\n \"code\": \"zu\",\n \"name\": \"Zulu\"\n }\n}\n", "{\n \"auto\": {\n \"code\": \"auto\",\n \"name\": \"Auto-detect\",\n \"flag\": \"\uD83C\uDF10\"\n },\n \"af\": {\n \"code\": \"af\",\n \"name\": \"Afrikaans\",\n \"flag\": \"\uD83C\uDDFF\uD83C\uDDE6\"\n },\n \"sq\": {\n \"code\": \"sq\",\n \"name\": \"Albanian\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDF1\"\n },\n \"am\": {\n \"code\": \"am\",\n \"name\": \"Amharic\"\n },\n \"ar\": {\n \"code\": \"ar\",\n \"name\": \"Arabic\"\n },\n \"hy\": {\n \"code\": \"hy\",\n \"name\": \"Armenian\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDF2\"\n },\n \"az\": {\n \"code\": \"az\",\n \"name\": \"Azerbaijani\",\n \"flag\": \"\uD83C\uDDE6\uD83C\uDDFF\"\n },\n \"eu\": {\n \"code\": \"eu\",\n \"name\": \"Basque\"\n },\n \"be\": {\n \"code\": \"be\",\n \"name\": \"Belarusian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDFE\"\n },\n \"bn\": {\n \"code\": \"bn\",\n \"name\": \"Bengali\"\n },\n \"bs\": {\n \"code\": \"bs\",\n \"name\": \"Bosnian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDE6\"\n },\n \"bg\": {\n \"code\": \"bg\",\n \"name\": \"Bulgarian\",\n \"flag\": \"\uD83C\uDDE7\uD83C\uDDEC\"\n },\n \"ca\": {\n \"code\": \"ca\",\n \"name\": \"Catalan\"\n },\n \"ceb\": {\n \"code\": \"ceb\",\n \"name\": \"Cebuano\"\n },\n \"zh-CN\": {\n \"code\": \"zh-CN\",\n \"name\": \"Chinese Simplified\",\n \"flag\": \"\uD83C\uDDE8\uD83C\uDDF3\"\n },\n \"zh-TW\": {\n \"code\": \"zh-TW\",\n \"name\": \"Chinese Traditional\"\n },\n \"co\": {\n \"code\": \"co\",\n \"name\": \"Corsican\"\n },\n \"hr\": {\n \"code\": \"hr\",\n \"name\": \"Croatian\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDF7\"\n },\n \"cs\": {\n \"code\": \"cs\",\n \"name\": \"Czech\",\n \"flag\": \"\uD83C\uDDE8\uD83C\uDDFF\"\n },\n \"da\": {\n \"code\": \"da\",\n \"name\": \"Danish\",\n \"flag\": \"\uD83C\uDDE9\uD83C\uDDF0\"\n },\n \"nl\": {\n \"code\": \"nl\",\n \"name\": \"Dutch\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF1\"\n },\n \"en\": {\n \"code\": \"en\",\n \"name\": \"English\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDE7\"\n },\n \"eo\": {\n \"code\": \"eo\",\n \"name\": \"Esperanto\"\n },\n \"et\": {\n \"code\": \"et\",\n \"name\": \"Estonian\",\n \"flag\": \"\uD83C\uDDEA\uD83C\uDDEA\"\n },\n \"fi\": {\n \"code\": \"fi\",\n \"name\": \"Finnish\",\n \"flag\": \"\uD83C\uDDEB\uD83C\uDDEE\"\n },\n \"fr\": {\n \"code\": \"fr\",\n \"name\": \"French\",\n \"flag\": \"\uD83C\uDDEB\uD83C\uDDF7\"\n },\n \"fy\": {\n \"code\": \"fy\",\n \"name\": \"Frisian\"\n },\n \"gl\": {\n \"code\": \"gl\",\n \"name\": \"Galician\"\n },\n \"ka\": {\n \"code\": \"ka\",\n \"name\": \"Georgian\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDEA\"\n },\n \"de\": {\n \"code\": \"de\",\n \"name\": \"German\",\n \"flag\": \"\uD83C\uDDE9\uD83C\uDDEA\"\n },\n \"el\": {\n \"code\": \"el\",\n \"name\": \"Greek\",\n \"flag\": \"\uD83C\uDDEC\uD83C\uDDF7\"\n },\n \"gu\": {\n \"code\": \"gu\",\n \"name\": \"Gujarati\"\n },\n \"ht\": {\n \"code\": \"ht\",\n \"name\": \"Haitian Creole\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDF9\"\n },\n \"ha\": {\n \"code\": \"ha\",\n \"name\": \"Hausa\"\n },\n \"haw\": {\n \"code\": \"haw\",\n \"name\": \"Hawaiian\",\n \"flag\": \"\uD83C\uDF3A\"\n },\n \"iw\": {\n \"code\": \"iw\",\n \"name\": \"Hebrew\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF1\"\n },\n \"hi\": {\n \"code\": \"hi\",\n \"name\": \"Hindi\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF3\"\n },\n \"hmn\": {\n \"code\": \"hmn\",\n \"name\": \"Hmong\"\n },\n \"hu\": {\n \"code\": \"hu\",\n \"name\": \"Hungarian\",\n \"flag\": \"\uD83C\uDDED\uD83C\uDDFA\"\n },\n \"is\": {\n \"code\": \"is\",\n \"name\": \"Icelandic\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF8\"\n },\n \"ig\": {\n \"code\": \"ig\",\n \"name\": \"Igbo\"\n },\n \"id\": {\n \"code\": \"id\",\n \"name\": \"Indonesian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDE9\"\n },\n \"ga\": {\n \"code\": \"ga\",\n \"name\": \"Irish\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDEA\"\n },\n \"it\": {\n \"code\": \"it\",\n \"name\": \"Italian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF9\"\n },\n \"ja\": {\n \"code\": \"ja\",\n \"name\": \"Japanese\",\n \"flag\": \"\uD83C\uDDEF\uD83C\uDDF5\"\n },\n \"jv\": {\n \"code\": \"jv\",\n \"name\": \"Javanese\"\n },\n \"kn\": {\n \"code\": \"kn\",\n \"name\": \"Kannada\"\n },\n \"kk\": {\n \"code\": \"kk\",\n \"name\": \"Kazakh\",\n \"flag\": \"\uD83C\uDDF0\uD83C\uDDFF\"\n },\n \"km\": {\n \"code\": \"km\",\n \"name\": \"Khmer\"\n },\n \"rw\": {\n \"code\": \"rw\",\n \"name\": \"Kinyarwanda\"\n },\n \"ko\": {\n \"code\": \"ko\",\n \"name\": \"Korean\",\n \"flag\": \"\uD83C\uDDF0\uD83C\uDDF7\"\n },\n \"ku\": {\n \"code\": \"ku\",\n \"name\": \"Kurdish\"\n },\n \"ky\": {\n \"code\": \"ky\",\n \"name\": \"Kyrgyz\"\n },\n \"lo\": {\n \"code\": \"lo\",\n \"name\": \"Lao\"\n },\n \"lv\": {\n \"code\": \"lv\",\n \"name\": \"Latvian\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDFB\"\n },\n \"lt\": {\n \"code\": \"lt\",\n \"name\": \"Lithuanian\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDF9\"\n },\n \"lb\": {\n \"code\": \"lb\",\n \"name\": \"Luxembourgish\",\n \"flag\": \"\uD83C\uDDF1\uD83C\uDDFA\"\n },\n \"la\": {\n \"code\": \"la\",\n \"name\": \"Latin\",\n \"flag\": \"\uD83C\uDFDB\"\n },\n \"mk\": {\n \"code\": \"mk\",\n \"name\": \"Macedonian\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF0\"\n },\n \"mg\": {\n \"code\": \"mg\",\n \"name\": \"Malagasy\"\n },\n \"ms\": {\n \"code\": \"ms\",\n \"name\": \"Malay\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDFE\"\n },\n \"ml\": {\n \"code\": \"ml\",\n \"name\": \"Malayalam\"\n },\n \"mt\": {\n \"code\": \"mt\",\n \"name\": \"Maltese\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF9\"\n },\n \"mi\": {\n \"code\": \"mi\",\n \"name\": \"Maori\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDFF\"\n },\n \"mr\": {\n \"code\": \"mr\",\n \"name\": \"Marathi\"\n },\n \"mn\": {\n \"code\": \"mn\",\n \"name\": \"Mongolian\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF3\"\n },\n \"my\": {\n \"code\": \"my\",\n \"name\": \"Myanmar (Burmese)\",\n \"flag\": \"\uD83C\uDDF2\uD83C\uDDF2\"\n },\n \"ne\": {\n \"code\": \"ne\",\n \"name\": \"Nepali\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF5\"\n },\n \"no\": {\n \"code\": \"no\",\n \"name\": \"Norwegian\",\n \"flag\": \"\uD83C\uDDF3\uD83C\uDDF4\"\n },\n \"ny\": {\n \"code\": \"ny\",\n \"name\": \"Nyanja (Chichewa)\"\n },\n \"or\": {\n \"code\": \"or\",\n \"name\": \"Odia (Oriya)\"\n },\n \"ps\": {\n \"code\": \"ps\",\n \"name\": \"Pashto\"\n },\n \"fa\": {\n \"code\": \"fa\",\n \"name\": \"Persian\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF7\"\n },\n \"pl\": {\n \"code\": \"pl\",\n \"name\": \"Polish\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDF1\"\n },\n \"pt\": {\n \"code\": \"pt\",\n \"name\": \"Portuguese\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDF9\"\n },\n \"pa\": {\n \"code\": \"pa\",\n \"name\": \"Punjabi\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF3\"\n },\n \"ro\": {\n \"code\": \"ro\",\n \"name\": \"Romanian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDF4\"\n },\n \"ru\": {\n \"code\": \"ru\",\n \"name\": \"Russian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDFA\"\n },\n \"sm\": {\n \"code\": \"sm\",\n \"name\": \"Samoan\"\n },\n \"gd\": {\n \"code\": \"gd\",\n \"name\": \"Scots Gaelic\",\n \"flag\": \"\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74\uDB40\uDC7F\"\n },\n \"sr\": {\n \"code\": \"sr\",\n \"name\": \"Serbian\",\n \"flag\": \"\uD83C\uDDF7\uD83C\uDDF8\"\n },\n \"st\": {\n \"code\": \"st\",\n \"name\": \"Sesotho\"\n },\n \"sn\": {\n \"code\": \"sn\",\n \"name\": \"Shona\"\n },\n \"sd\": {\n \"code\": \"sd\",\n \"name\": \"Sindhi\"\n },\n \"si\": {\n \"code\": \"si\",\n \"name\": \"Sinhala (Sinhalese)\"\n },\n \"sk\": {\n \"code\": \"sk\",\n \"name\": \"Slovak\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDF0\"\n },\n \"sl\": {\n \"code\": \"sl\",\n \"name\": \"Slovenian\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDEE\"\n },\n \"so\": {\n \"code\": \"so\",\n \"name\": \"Somali\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDF4\"\n },\n \"es\": {\n \"code\": \"es\",\n \"name\": \"Spanish\",\n \"flag\": \"\uD83C\uDDEA\uD83C\uDDF8\"\n },\n \"su\": {\n \"code\": \"su\",\n \"name\": \"Sundanese\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDE9\"\n },\n \"sw\": {\n \"code\": \"sw\",\n \"name\": \"Swahili\"\n },\n \"sv\": {\n \"code\": \"sv\",\n \"name\": \"Swedish\",\n \"flag\": \"\uD83C\uDDF8\uD83C\uDDEA\"\n },\n \"tl\": {\n \"code\": \"tl\",\n \"name\": \"Tagalog (Filipino)\",\n \"flag\": \"\uD83C\uDDF5\uD83C\uDDED\"\n },\n \"tg\": {\n \"code\": \"tg\",\n \"name\": \"Tajik\"\n },\n \"ta\": {\n \"code\": \"ta\",\n \"name\": \"Tamil\"\n },\n \"tt\": {\n \"code\": \"tt\",\n \"name\": \"Tatar\"\n },\n \"te\": {\n \"code\": \"te\",\n \"name\": \"Telugu\"\n },\n \"th\": {\n \"code\": \"th\",\n \"name\": \"Thai\"\n },\n \"tr\": {\n \"code\": \"tr\",\n \"name\": \"Turkish\",\n \"flag\": \"\uD83C\uDDF9\uD83C\uDDF7\"\n },\n \"tk\": {\n \"code\": \"tk\",\n \"name\": \"Turkmen\",\n \"flag\": \"\uD83C\uDDF9\uD83C\uDDF2\"\n },\n \"uk\": {\n \"code\": \"uk\",\n \"name\": \"Ukrainian\",\n \"flag\": \"\uD83C\uDDFA\uD83C\uDDE6\"\n },\n \"ur\": {\n \"code\": \"ur\",\n \"name\": \"Urdu\"\n },\n \"ug\": {\n \"code\": \"ug\",\n \"name\": \"Uyghur\"\n },\n \"uz\": {\n \"code\": \"uz\",\n \"name\": \"Uzbek\"\n },\n \"vi\": {\n \"code\": \"vi\",\n \"name\": \"Vietnamese\",\n \"flag\": \"\uD83C\uDDFB\uD83C\uDDF3\"\n },\n \"cy\": {\n \"code\": \"cy\",\n \"name\": \"Welsh\",\n \"flag\": \"\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73\uDB40\uDC7F\"\n },\n \"xh\": {\n \"code\": \"xh\",\n \"name\": \"Xhosa\"\n },\n \"yi\": {\n \"code\": \"yi\",\n \"name\": \"Yiddish\",\n \"flag\": \"\uD83C\uDDEE\uD83C\uDDF1\"\n },\n \"yo\": {\n \"code\": \"yo\",\n \"name\": \"Yoruba\"\n },\n \"zu\": {\n \"code\": \"zu\",\n \"name\": \"Zulu\"\n }\n}\n", "import _supportedLanguagesByCountry from \"./supportedLanguages.json\";\nimport _supportedLanguagesByCode from \"./supportedLanguagesByCode.json\";\n\nexport type LanguagesMapByCountry = typeof _supportedLanguagesByCountry;\nexport type LanguageCountries = keyof LanguagesMapByCountry;\n\nexport type LanguagesMapByCode = typeof _supportedLanguagesByCode;\nexport type LanguageCode = keyof LanguagesMapByCode;\n\nexport type LanguagesItem = {\n code: LanguageCode;\n name: string;\n flag?: string;\n};\n\nexport const getLanguageFlag = (language?: LanguagesItem, fallback = \"\uD83C\uDFF3\uFE0F\") => {\n return language?.flag ?? fallback;\n};\n\nexport const getLanguageFlagByCode = (lang: LanguageCode) => {\n return getLanguageFlag(supportedLanguagesByCode[lang]);\n};\n\nexport const supportedLanguagesByCode = _supportedLanguagesByCode as Record<LanguageCode, LanguagesItem>;\nexport const supportedLanguagesByCountry = _supportedLanguagesByCountry as Record<LanguageCountries, LanguagesItem>;\n\nexport const languages: LanguagesItem[] = Object.values(supportedLanguagesByCountry);\n", "import React from \"react\";\nimport { Action, ActionPanel, Color, Icon, List, showToast, Toast, useNavigation } from \"@raycast/api\";\nimport { useCachedState } from \"@raycast/utils\";\nimport { LanguageCodeSet } from \"../types\";\nimport { useAllLanguageSets, usePreferencesLanguageSet, useSelectedLanguagesSet } from \"../hooks\";\nimport { AddLanguageForm } from \"./AddLanguageForm\";\nimport { isSameLanguageSet, formatLanguageSet, getLanguageSetObjects } from \"../utils\";\nimport { getLanguageFlag } from \"../languages\";\n\nexport function LanguagesManagerItem({\n languageSet,\n onSelect,\n onDelete,\n selected,\n}: {\n languageSet: LanguageCodeSet;\n onSelect: () => void;\n onDelete?: () => void;\n selected?: boolean;\n}) {\n const { langFrom, langTo } = getLanguageSetObjects(languageSet);\n\n const langsTo = Array.isArray(langTo) ? langTo : [langTo];\n const langsToFlags = langsTo.map((l) => getLanguageFlag(l)).join(\" \");\n const langsToLabel = langsTo.map((l) => l.name).join(\", \");\n\n return (\n <List.Item\n subtitle={`${getLanguageFlag(langFrom)} -> ${langsToFlags}`}\n title={`${langFrom.name} -> ${langsToLabel}`}\n keywords={[langFrom.name, langFrom.code, ...langsTo.flatMap((l) => [l.name, l.code])]}\n icon={selected ? { tintColor: Color.Green, source: Icon.Checkmark } : undefined}\n actions={\n <ActionPanel>\n <Action title=\"Select\" onAction={onSelect} icon={{ tintColor: Color.Green, source: Icon.Checkmark }} />\n {onDelete && <Action style={Action.Style.Destructive} title=\"Delete\" onAction={onDelete} icon={Icon.Trash} />}\n </ActionPanel>\n }\n />\n );\n}\n\nexport const SaveCurrentLanguageSet: React.FC<{ languageSet: LanguageCodeSet; onSelect: () => void }> = ({\n languageSet,\n onSelect,\n}) => {\n return (\n <List.Item\n icon={Icon.SaveDocument}\n title=\"Save current set\"\n subtitle={formatLanguageSet(languageSet)}\n actions={\n <ActionPanel>\n <Action title=\"Save current set\" onAction={onSelect} />\n </ActionPanel>\n }\n />\n );\n};\n\nexport const LanguagesManagerList: React.VFC = () => {\n const navigation = useNavigation();\n const preferencesLanguageSet = usePreferencesLanguageSet();\n const [selectedLanguageSet, setSelectedLanguageSet] = useSelectedLanguagesSet();\n const [languages, setLanguages] = useAllLanguageSets();\n\n return (\n <List\n actions={\n <ActionPanel>\n <Action title=\"Remove all\" onAction={() => setLanguages([])} />\n </ActionPanel>\n }\n >\n <List.Item\n icon={{ source: Icon.Plus }}\n title=\"Add new language set...\"\n actions={\n <ActionPanel>\n <Action.Push\n title=\"Add new language set...\"\n target={\n <AddLanguageForm\n onAddLanguage={(langSet) => {\n setLanguages([...languages, langSet]);\n navigation.pop();\n showToast(Toast.Style.Success, \"Language set was saved!\", formatLanguageSet(langSet));\n }}\n />\n }\n />\n </ActionPanel>\n }\n />\n {!languages.some((l) => isSameLanguageSet(l, selectedLanguageSet)) &&\n !isSameLanguageSet(preferencesLanguageSet, selectedLanguageSet) && (\n <SaveCurrentLanguageSet\n languageSet={selectedLanguageSet}\n onSelect={() => setLanguages([...languages, selectedLanguageSet])}\n />\n )}\n <LanguagesManagerItem\n languageSet={preferencesLanguageSet}\n onSelect={() => {\n setSelectedLanguageSet(preferencesLanguageSet);\n navigation.pop();\n }}\n selected={isSameLanguageSet(selectedLanguageSet, preferencesLanguageSet)}\n />\n {languages.map((langSet) => (\n <LanguagesManagerItem\n key={`${langSet.langFrom} ${langSet.langTo}`}\n selected={isSameLanguageSet(selectedLanguageSet, langSet)}\n languageSet={langSet}\n onSelect={() => {\n setSelectedLanguageSet(langSet);\n navigation.pop();\n }}\n onDelete={() => {\n setLanguages(languages.filter((l) => !isSameLanguageSet(l, langSet)));\n showToast(Toast.Style.Success, \"Language set was deleted!\", formatLanguageSet(langSet));\n }}\n />\n ))}\n </List>\n );\n};\n", "import React from \"react\";\nimport { Action, ActionPanel, Toast, Form, showToast } from \"@raycast/api\";\nimport { getLanguageFlag, LanguageCode, languages } from \"../languages\";\nimport { AUTO_DETECT } from \"../simple-translate\";\nimport { LanguageCodeSet } from \"../types\";\n\nexport const AddLanguageForm: React.VFC<{\n onAddLanguage: (data: LanguageCodeSet) => void;\n}> = ({ onAddLanguage }) => {\n const [targetLanguages, setTargetLanguages] = React.useState<LanguageCode[]>([\"en\"]);\n\n return (\n <Form\n actions={\n <ActionPanel>\n <Action.SubmitForm\n title=\"Add language set\"\n onSubmit={(values: LanguageCodeSet) => {\n const filteredTargetLanguages = targetLanguages.filter((lang) => !!lang);\n if (!filteredTargetLanguages.length) {\n showToast({\n style: Toast.Style.Failure,\n title: \"No target languages\",\n message: \"Please select at least one target language\",\n });\n return;\n }\n onAddLanguage({\n langFrom: values.langFrom,\n langTo: filteredTargetLanguages,\n });\n }}\n />\n </ActionPanel>\n }\n >\n <Form.Dropdown id=\"langFrom\" title=\"Source Language\">\n {languages.map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} icon={getLanguageFlag(lang)} />\n ))}\n </Form.Dropdown>\n {targetLanguages.map((_, index) => {\n const value = targetLanguages[index];\n return (\n <Form.Dropdown\n id={`langTo.${index}`}\n title={`Target Language ${index + 1}`}\n key={index}\n value={value}\n onChange={(value) => {\n const newTargetLanguages = [...targetLanguages];\n newTargetLanguages[index] = value as LanguageCode;\n setTargetLanguages(newTargetLanguages);\n }}\n >\n {!value && <Form.Dropdown.Item value=\"\" title=\"\" />}\n {languages\n .filter((lang) => lang.code !== AUTO_DETECT)\n .map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} icon={getLanguageFlag(lang)} />\n ))}\n </Form.Dropdown>\n );\n })}\n {(!!targetLanguages[targetLanguages.length - 1] || targetLanguages.length === 0) && (\n <Form.Dropdown\n id={`langTo.${targetLanguages.length}`}\n title={`Target Language ${targetLanguages.length}`}\n key={targetLanguages.length}\n value={\"\"}\n onChange={(value) => {\n const newTargetLanguages = [...targetLanguages];\n newTargetLanguages.push(value as LanguageCode);\n setTargetLanguages(newTargetLanguages);\n }}\n >\n <Form.Dropdown.Item value=\"\" title=\"\" />\n {languages\n .filter((lang) => lang.code !== AUTO_DETECT)\n .map((lang) => (\n <Form.Dropdown.Item key={lang.code} value={lang.code} title={lang.name} icon={getLanguageFlag(lang)} />\n ))}\n </Form.Dropdown>\n )}\n </Form>\n );\n};\n", "import { getLanguageFlag, supportedLanguagesByCode } from \"./languages\";\nimport { LanguageCodeSet } from \"./types\";\n\nexport const isSameLanguageSet = (langSet1: LanguageCodeSet, langSet2: LanguageCodeSet) => {\n return langSet1.langFrom === langSet2.langFrom && langSet1.langTo.join() === langSet2.langTo.join();\n};\n\nexport const getLanguageSetObjects = (languageSet: LanguageCodeSet) => {\n return {\n langFrom: supportedLanguagesByCode[languageSet.langFrom],\n langTo: languageSet.langTo.map((l) => supportedLanguagesByCode[l]),\n };\n};\n\nexport const formatLanguageSet = (languageSet: LanguageCodeSet) => {\n const { langFrom, langTo } = getLanguageSetObjects(languageSet);\n const langToArr = Array.isArray(langTo) ? langTo : [langTo];\n const languageLabels = langToArr.map((l) => `${getLanguageFlag(l)} ${l.name}`);\n return `${langFrom.name} ${getLanguageFlag(langFrom)} -> ${languageLabels.join(\", \")}`;\n};\n", "import React from \"react\";\nimport { Icon, List, useNavigation } from \"@raycast/api\";\nimport { LanguageCodeSet } from \"../types\";\nimport { useAllLanguageSets, usePreferencesLanguageSet, useSelectedLanguagesSet } from \"../hooks\";\nimport { LanguagesManagerList } from \"./LanguagesManagerList\";\nimport { formatLanguageSet } from \"../utils\";\n\nexport function LanguageManagerListDropdown() {\n const navigation = useNavigation();\n const preferencesLanguageSet = usePreferencesLanguageSet();\n const [selectedLanguageSet, setSelectedLanguageSet] = useSelectedLanguagesSet();\n const [languages] = useAllLanguageSets();\n\n return (\n <List.Dropdown\n value={JSON.stringify(selectedLanguageSet)}\n tooltip=\"Language Set\"\n onChange={(value) => {\n if (value === \"manage\") {\n navigation.push(<LanguagesManagerList />);\n } else {\n const langSet: LanguageCodeSet = JSON.parse(value);\n setSelectedLanguageSet(langSet);\n }\n }}\n >\n <List.Dropdown.Item icon={Icon.Pencil} title=\"Manage language sets...\" value=\"manage\" />\n <List.Dropdown.Item\n title={formatLanguageSet(preferencesLanguageSet)}\n value={JSON.stringify(preferencesLanguageSet)}\n />\n {languages.map((langSet) => (\n <List.Dropdown.Item\n key={`${langSet.langFrom} ${langSet.langTo.toString()}`}\n title={formatLanguageSet(langSet)}\n value={JSON.stringify(langSet)}\n />\n ))}\n </List.Dropdown>\n );\n}\n", "import React from \"react\";\nimport { Action, Icon, getPreferenceValues } from \"@raycast/api\";\nimport { SimpleTranslateResult } from \"./simple-translate\";\n\ninterface ActionsOpts {\n value: string;\n defaultActionsPrefix?: string;\n}\n\nexport const ConfigurableCopyPasteActions = ({ defaultActionsPrefix, value }: ActionsOpts) => {\n const defaultPreference = getPreferenceValues<ExtensionPreferences>().defaultAction;\n\n const pasteAction = (\n <Action.Paste title={defaultActionsPrefix ? `Paste ${defaultActionsPrefix}` : `Paste`} content={value} />\n );\n const copyAction = (\n <Action.CopyToClipboard title={defaultActionsPrefix ? `Copy ${defaultActionsPrefix}` : `Copy`} content={value} />\n );\n\n if (defaultPreference === \"paste\") {\n return (\n <>\n {pasteAction}\n {copyAction}\n </>\n );\n }\n\n return (\n <>\n {copyAction}\n {pasteAction}\n </>\n );\n};\n\nexport const ToggleFullTextAction: React.VFC<{\n onAction: () => void;\n}> = ({ onAction }) => {\n return (\n <Action title=\"Toggle Full Text\" icon={Icon.Text} onAction={onAction} shortcut={{ modifiers: [\"cmd\"], key: \"f\" }} />\n );\n};\n\nexport const OpenOnGoogleTranslateWebsiteAction: React.VFC<{\n translation: Pick<SimpleTranslateResult, \"langFrom\" | \"langTo\">;\n translationText: string;\n}> = ({ translationText, translation }) => {\n return (\n <Action.OpenInBrowser\n title=\"Open in Google Translate\"\n shortcut={{ modifiers: [\"opt\"], key: \"enter\" }}\n url={\n \"https://translate.google.com/?sl=\" +\n translation.langFrom +\n \"&tl=\" +\n translation.langTo +\n \"&text=\" +\n encodeURIComponent(translationText) +\n \"&op=translate\"\n }\n />\n );\n};\n"], + "mappings": "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AAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,uBAAuB,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAK,GAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,GAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,KAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAO,IAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI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AC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAO,KAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OA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,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMU,GAAS,CACb,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMM,GAAU,CACd,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEME,GAAiB,CACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,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,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/C,EAEMC,GAAc,CAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAA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L,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACH,MAAO,aACT,IAAK,qBACL,IAAK,WACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,SACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,WACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACH,MAAO,aACT,IAAK,kBACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,eACH,MAAO,aACT,IAAK,cACL,IAAK,mBACL,IAAK,SACL,IAAK,aACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,SACH,MAAO,aACT,IAAK,cACL,IAAK,eACL,IAAK,UACH,MAAO,eACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,KACL,IAAK,SACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,aACL,IAAK,YACH,MAAO,cACT,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,KACH,MAAO,cACT,IAAK,cACH,MAAO,cACT,IAAK,UACL,IAAK,MACL,IAAK,OACL,IAAK,SACL,IAAK,SACH,MAAO,SACT,IAAK,UACL,IAAK,SACH,MAAO,SACT,IAAK,cACL,IAAK,MACL,IAAK,YACL,IAAK,cACH,MAAO,YACT,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,UACL,IAAK,cACH,MAAO,cACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,iBACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,cACL,IAAK,SACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACL,IAAK,WACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,kBACL,IAAK,KACL,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,SACL,IAAK,eACL,IAAK,WACH,MAAO,eACT,IAAK,iBACL,IAAK,kBACH,MAAO,iBACT,IAAK,UACL,IAAK,WACL,IAAK,kBACL,IAAK,SACL,IAAK,UACL,IAAK,aACL,IAAK,MACL,IAAK,YACL,IAAK,QACH,MAAO,MACT,IAAK,UACH,MAAO,UACT,IAAK,OACL,IAAK,aACL,IAAK,UACL,IAAK,SACL,IAAK,WACH,MAAO,OACT,IAAK,sBACL,IAAK,SACL,IAAK,WACH,MAAO,SACT,IAAK,cACL,IAAK,cACH,MAAO,cACT,IAAK,aACL,IAAK,QACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,OACL,IAAK,cACL,IAAK,SACH,MAAO,YACT,IAAK,UACL,IAAK,gBACL,IAAK,SACL,IAAK,aACL,IAAK,SACL,IAAK,iBACL,IAAK,iBACL,IAAK,UACL,IAAK,WACL,IAAK,cACH,MAAO,SACT,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,cACH,MAAO,cACT,IAAK,cACL,IAAK,WACH,MAAO,WACT,IAAK,YACL,IAAK,kBACL,IAAK,QACL,IAAK,UACL,IAAK,cACL,IAAK,SACL,IAAK,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", + "names": ["require_lite", "__commonJSMin", "exports", "has", "dequal", "foo", "bar", "ctor", "len", "require_useDeepMemo", "__commonJSMin", "exports", "react_1", "lite_1", "useDeepMemo", "value", "ref", "signalRef", "require_useLatest", "__commonJSMin", "exports", "react_1", "useLatest", "value", "ref", "require_handle_error_toast_action", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "fs", "path", "api_1", "handleErrorToastAction", "error", "privateExtension", "title", "extensionURL", "packageJSON", "fallback", "toast", "require_usePromise", "__commonJSMin", "exports", "react_1", "api_1", "useDeepMemo_1", "useLatest_1", "handle_error_toast_action_1", "usePromise", "fn", "args", "options", "lastCallId", "state", "set", "fnRef", "latestAbortable", "latestArgs", "latestOnError", "latestOnData", "latestOnWillExecute", "latestValue", "latestCallback", "callback", "callId", "prevState", "bindPromiseIfNeeded", "data", "error", "toast", "revalidate", "mutate", "asyncUpdate", "dataBeforeOptimisticUpdate", "update", "err", "isLoading", "require_useCachedState", "__commonJSMin", "exports", "react_1", "api_1", "useLatest_1", "replacer", "key", "_value", "value", "reviver", "_key", "rootCache", "cacheMap", "useCachedState", "initialState", "config", "cacheKey", "cache", "keyRef", "initialValueRef", "cachedState", "error", "state", "err", "stateRef", "setStateAndCache", "updater", "newValue", "stringifiedValue", "require_object_hash", "__commonJSMin", "exports", "module", "crypto", "objectHash", "object", "options", "applyDefaults", "hash", "hashes", "encodings", "sourceOptions", "i", "isNativeFunction", "f", "exp", "hashingStream", "PassThrough", "hasher", "typeHasher", "buf", "stream", "writeTo", "context", "write", "str", "value", "type", "pattern", "objString", "objType", "objectNumber", "keys", "key", "self", "arr", "unordered", "entry", "contextAdditions", "entries", "strm", "localContext", "date", "sym", "err", "bool", "string", "fn", "number", "xml", "regex", "url", "map", "set", "file", "b", "require_useCachedPromise", "__commonJSMin", "exports", "__importDefault", "mod", "react_1", "object_hash_1", "useCachedState_1", "usePromise_1", "useLatest_1", "emptyCache", "useCachedPromise", "fn", "args", "options", "initialData", "keepPreviousData", "usePromiseOptions", "lastUpdateFrom", "cachedData", "mutateCache", "laggyDataRef", "_mutate", "revalidate", "state", "data", "returnedData", "latestData", "mutate", "asyncUpdate", "dataBeforeOptimisticUpdate", "err", "require_media_typer", "__commonJSMin", "exports", "SUBTYPE_NAME_REGEXP", "TYPE_NAME_REGEXP", "TYPE_REGEXP", "format", "parse", "test", "obj", "subtype", "suffix", "type", "string", "match", "index", "MediaType", "require_content_type", "__commonJSMin", "exports", "PARAM_REGEXP", "TEXT_REGEXP", "TOKEN_REGEXP", "QESC_REGEXP", "QUOTE_REGEXP", "TYPE_REGEXP", "format", "parse", "obj", "parameters", "type", "string", "param", "params", "i", "qstring", "header", "getcontenttype", "index", "ContentType", "key", "match", "value", "val", "str", "require_lib", "__commonJSMin", "exports", "module", "conversions", "sign", "x", "evenRound", "createNumberConversion", "bitLength", "typeOpts", "lowerBound", "upperBound", "moduloVal", "moduloBound", "V", "opts", "val", "c", "i", "S", "n", "U", "d", "a", "b", "require_utils", "__commonJSMin", "exports", "module", "target", "source", "keys", "i", "impl", "wrapper", "require_mappingTable", "__commonJSMin", "exports", "module", "require_tr46", "__commonJSMin", "exports", "module", "punycode", "mappingTable", "PROCESSING_OPTIONS", "normalize", "str", "s", "findStatus", "val", "start", "end", "mid", "target", "regexAstralSymbols", "countSymbols", "string", "mapChars", "domain_name", "useSTD3", "processing_option", "hasError", "processed", "len", "i", "codePoint", "status", "combiningMarksRegex", "validateLabel", "label", "error", "processing", "result", "labels", "validation", "verifyDnsLength", "l", "total", "require_url_state_machine", "__commonJSMin", "exports", "module", "punycode", "tr46", "specialSchemes", "failure", "countSymbols", "str", "at", "input", "idx", "c", "isASCIIDigit", "isASCIIAlpha", "isASCIIAlphanumeric", "isASCIIHex", "isSingleDot", "buffer", "isDoubleDot", "isWindowsDriveLetterCodePoints", "cp1", "cp2", "isWindowsDriveLetterString", "string", "isNormalizedWindowsDriveLetterString", "containsForbiddenHostCodePoint", "containsForbiddenHostCodePointExcludingPercent", "isSpecialScheme", "scheme", "isSpecial", "url", "defaultPort", "percentEncode", "hex", "utf8PercentEncode", "buf", "i", "utf8PercentDecode", "output", "isC0ControlPercentEncode", "extraPathPercentEncodeSet", "isPathPercentEncode", "extraUserinfoPercentEncodeSet", "isUserinfoPercentEncode", "percentEncodeChar", "encodeSetPredicate", "cStr", "parseIPv4Number", "R", "parseIPv4", "parts", "numbers", "part", "n", "ipv4", "counter", "serializeIPv4", "address", "parseIPv6", "pieceIndex", "compress", "pointer", "value", "length", "numbersSeen", "ipv4Piece", "number", "swaps", "temp", "serializeIPv6", "findLongestZeroSequence", "ignore0", "parseHost", "isSpecialArg", "parseOpaqueHost", "domain", "asciiDomain", "ipv4Host", "decoded", "arr", "maxIdx", "maxLen", "currStart", "currLen", "serializeHost", "host", "trimControlChars", "trimTabAndNewline", "shortenPath", "path", "isNormalizedWindowsDriveLetter", "includesCredentials", "cannotHaveAUsernamePasswordPort", "URLStateMachine", "base", "encodingOverride", "stateOverride", "res", "ret", "len", "codePoint", "encodedCodePoints", "port", "fileOtherwiseCodePoints", "serializeURL", "excludeFragment", "serializeOrigin", "tuple", "result", "options", "usm", "username", "password", "integer", "require_URL_impl", "__commonJSMin", "exports", "usm", "constructorArgs", "url", "base", "parsedBase", "parsedURL", "v", "input", "require_URL", "__commonJSMin", "exports", "module", "conversions", "utils", "Impl", "impl", "URL", "url", "args", "i", "V", "obj", "constructorArgs", "privateData", "require_public_api", "__commonJSMin", "exports", "require_lib", "__commonJSMin", "exports", "module", "_interopDefault", "ex", "Stream", "http", "Url", "whatwgUrl", "https", "zlib", "Readable", "BUFFER", "TYPE", "Blob", "_Blob", "blobParts", "options", "buffers", "size", "a", "length", "i", "element", "buffer", "type", "buf", "ab", "readable", "start", "end", "relativeStart", "relativeEnd", "span", "slicedBuffer", "blob", "FetchError", "message", "systemError", "convert", "INTERNALS", "PassThrough", "Body", "body", "_this", "_ref", "_ref$size", "_ref$timeout", "timeout", "isURLSearchParams", "isBlob", "err", "error", "consumeBody", "ct", "_this2", "_this3", "convertBody", "proto", "name", "desc", "_this4", "accum", "accumBytes", "abort", "resolve", "reject", "resTimeout", "chunk", "headers", "charset", "res", "str", "obj", "clone", "instance", "p1", "p2", "extractContentType", "getTotalBytes", "writeToStream", "dest", "invalidTokenRegex", "invalidHeaderCharRegex", "validateName", "validateValue", "value", "find", "map", "key", "MAP", "Headers", "_Headers", "init", "rawHeaders", "headerNames", "headerName", "method", "pairs", "pair", "callback", "thisArg", "getHeaders", "_pairs$i", "createHeadersIterator", "kind", "k", "INTERNAL", "target", "iterator", "HeadersIteratorPrototype", "_INTERNAL", "index", "values", "len", "exportNodeCompatibleHeaders", "hostHeaderKey", "createHeadersLenient", "val", "INTERNALS$1", "STATUS_CODES", "Response", "_Response", "opts", "status", "contentType", "INTERNALS$2", "URL", "parse_url", "format_url", "parseURL", "urlStr", "streamDestructionSupported", "isRequest", "input", "isAbortSignal", "signal", "Request", "_Request", "parsedURL", "inputBody", "getNodeRequestOptions", "request", "contentLengthValue", "totalBytes", "agent", "AbortError", "URL$1", "PassThrough$1", "isDomainOrSubdomain", "destination", "original", "orig", "isSameProtocol", "fetch", "url", "send", "response", "destroyStream", "abortAndFinalize", "finalize", "req", "reqTimeout", "socket", "fixResponseChunkedTransferBadEnding", "s", "hadError", "hasDataListener", "location", "locationURL", "requestOpts", "response_options", "codings", "zlibOptions", "raw", "errorCallback", "stream", "code", "require_node_ponyfill", "__commonJSMin", "exports", "module", "nodeFetch", "realFetch", "fetch", "url", "options", "require_useFetch", "__commonJSMin", "exports", "__importDefault", "mod", "react_1", "media_typer_1", "content_type_1", "useCachedPromise_1", "useLatest_1", "cross_fetch_1", "isJSON", "contentTypeHeader", "ct", "mediaType", "defaultParsing", "response", "useFetch", "url", "options", "parseResponse", "initialData", "execute", "keepPreviousData", "onError", "onData", "onWillExecute", "fetchOptions", "useCachedPromiseOptions", "parseResponseRef", "abortable", "fn", "res", "exports", "signals_js_1", "exports", "processOk", "process", "kExitEmitter", "global", "ObjectDefineProperty", "Emitter", "ev", "fn", "list", "i", "code", "signal", "ret", "SignalExitBase", "signalExitWrap", "handler", "cb", "opts", "SignalExitFallback", "SignalExit", "#hupSig", "#emitter", "#process", "#originalProcessEmit", "#originalProcessReallyExit", "#sigListeners", "#loaded", "sig", "listeners", "count", "p", "s", "a", "#processEmit", "#processReallyExit", "listener", "args", "og", "_a", "require_exec_utils", "__commonJSMin", "exports", "__importDefault", "mod", "node_buffer_1", "node_stream_1", "node_util_1", "signal_exit_1", "getSpawnedPromise", "spawned", "timeout", "spawnedPromise", "resolve", "reject", "exitCode", "signal", "error", "timeoutId", "timeoutPromise", "_resolve", "safeSpawnedPromise", "removeExitHandler", "MaxBufferError", "streamPipelinePromisified", "bufferStream", "options", "encoding", "isBuffer", "stream", "length", "chunks", "chunk", "getStream", "inputStream", "rejectPromise", "getBufferedData", "streamPromise", "getSpawnedResult", "stdout", "stderr", "processDone", "stdoutPromise", "stderrPromise", "stripFinalNewline", "input", "LF", "CR", "handleOutput", "value", "getErrorPrefix", "timedOut", "makeError", "command", "parentError", "execaMessage", "shortMessage", "message", "defaultParsing", "require_useExec", "__commonJSMin", "exports", "__importDefault", "mod", "node_child_process_1", "react_1", "useCachedPromise_1", "useLatest_1", "exec_utils_1", "SPACES_REGEXP", "parseCommand", "command", "args", "tokens", "token", "previousToken", "useExec", "optionsOrArgs", "options", "parseOutput", "input", "onData", "onWillExecute", "initialData", "execute", "keepPreviousData", "onError", "execOptions", "useCachedPromiseOptions", "abortable", "parseOutputRef", "fn", "_command", "_args", "_options", "file", "spawned", "spawnedPromise", "error", "exitCode", "signal", "timedOut", "stdoutResult", "stderrResult", "stdout", "stderr", "require_useSQL", "__commonJSMin", "exports", "__importDefault", "mod", "jsx_runtime_1", "api_1", "node_fs_1", "promises_1", "node_os_1", "node_child_process_1", "node_path_1", "object_hash_1", "react_1", "usePromise_1", "useLatest_1", "exec_utils_1", "handle_error_toast_action_1", "useSQL", "databasePath", "query", "options", "permissionPriming", "usePromiseOptions", "permissionView", "setPermissionView", "latestOptions", "abortable", "handleError", "_error", "error", "PermissionError", "isPermissionError", "PermissionErrorScreen", "fn", "workaroundCopiedDb", "abortSignal", "spawned", "spawnedPromise", "exitCode", "signal", "stdoutResult", "stderrResult", "checkAborted", "tempFolder", "message", "macosVenturaAndLater", "preferencesString", "props", "action", "require_useForm", "__commonJSMin", "exports", "react_1", "useLatest_1", "FormValidation", "validationError", "validation", "value", "valueIsValid", "useForm", "props", "_onSubmit", "initialValues", "values", "setValues", "errors", "setErrors", "refs", "latestValidation", "latestOnSubmit", "focus", "id", "handleSubmit", "validationErrors", "error", "result", "setValidationError", "setValue", "itemProps", "target", "event", "instance", "reset", "require_useAI", "__commonJSMin", "exports", "react_1", "api_1", "usePromise_1", "useAI", "prompt", "options", "creativity", "stream", "model", "usePromiseOptions", "data", "setData", "abortable", "isLoading", "error", "revalidate", "shouldStream", "x", "require_useFrecencySorting", "__commonJSMin", "exports", "react_1", "useLatest_1", "useCachedState_1", "HALF_LIFE_DAYS", "MS_PER_DAY", "DECAY_RATE_CONSTANT", "VISIT_TYPE_POINTS", "getNewFrecency", "item", "now", "lastVisited", "frecency", "visitAgeInDays", "currentVisitValue", "totalVisitValue", "defaultKey", "useFrecencySorting", "data", "options", "keyRef", "sortUnvisitedRef", "storedFrecencies", "setStoredFrecencies", "visitItem", "itemKey", "newFrecency", "resetRanking", "newFrencencies", "a", "b", "frecencyA", "frecencyB", "require_color", "__commonJSMin", "exports", "hexToRGB", "hex", "r", "g", "b", "rgbToHex", "rString", "gString", "bString", "rgbToHSL", "cmin", "cmax", "delta", "h", "s", "l", "hslToRGB", "c", "x", "m", "hexToHSL", "hslToHex", "hsl", "clamp", "value", "min", "max", "offset", "slightlyDarkerColor", "slightlyLighterColor", "require_avatar", "__commonJSMin", "exports", "color_1", "getWholeCharAndI", "str", "i", "code", "next", "prev", "avatarColorSet", "getAvatarIcon", "name", "options", "words", "initials", "firstWordFirstLetter", "lastWordFirstLetter", "backgroundColor", "initialsCharIndex", "char", "colorIndex", "radius", "require_favicon", "__commonJSMin", "exports", "api_1", "url_1", "getFavicon", "url", "options", "hostname", "e", "require_progress", "__commonJSMin", "exports", "api_1", "polarToCartesian", "centerX", "centerY", "radius", "angleInDegrees", "angleInRadians", "describeArc", "x", "y", "startAngle", "endAngle", "start", "end", "largeArcFlag", "getProgressIcon", "progress", "color", "options", "background", "backgroundOpacity", "stroke", "require_icon", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "require_run_applescript", "__commonJSMin", "exports", "__importDefault", "mod", "node_child_process_1", "exec_utils_1", "runAppleScript", "script", "optionsOrArgs", "options", "humanReadableOutput", "language", "timeout", "execOptions", "outputArguments", "spawned", "spawnedPromise", "error", "exitCode", "signal", "timedOut", "stdoutResult", "stderrResult", "stdout", "stderr", "require_dist", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "require_symbols", "__commonJSMin", "exports", "module", "require_errors", "__commonJSMin", "exports", "module", "UndiciError", "message", "ConnectTimeoutError", "_ConnectTimeoutError", "HeadersTimeoutError", "_HeadersTimeoutError", "HeadersOverflowError", "_HeadersOverflowError", "BodyTimeoutError", "_BodyTimeoutError", "ResponseStatusCodeError", "_ResponseStatusCodeError", "statusCode", "headers", "body", "InvalidArgumentError", "_InvalidArgumentError", "InvalidReturnValueError", "_InvalidReturnValueError", "RequestAbortedError", "_RequestAbortedError", "InformationalError", "_InformationalError", "RequestContentLengthMismatchError", "_RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "_ResponseContentLengthMismatchError", "ClientDestroyedError", "_ClientDestroyedError", "ClientClosedError", "_ClientClosedError", "SocketError", "_SocketError", "socket", "NotSupportedError", "_NotSupportedError", "BalancedPoolMissingUpstreamError", "HTTPParserError", "_HTTPParserError", "code", "data", "ResponseExceededMaxSizeError", "_ResponseExceededMaxSizeError", "require_util", "__commonJSMin", "exports", "module", "assert", "kDestroyed", "kBodyUsed", "IncomingMessage", "stream", "net", "InvalidArgumentError", "Blob", "nodeUtil", "stringify", "nodeMajor", "nodeMinor", "v", "nop", "isStream", "obj", "isBlobLike", "object", "buildURL", "url", "queryParams", "stringified", "parseURL", "port", "origin", "path", "parseOrigin", "getHostname", "host", "idx", "getServerName", "servername", "deepClone", "isAsyncIterable", "isIterable", "bodyLength", "body", "state", "isBuffer", "isDestroyed", "isReadableAborted", "destroy", "err", "KEEPALIVE_TIMEOUT_EXPR", "parseKeepAliveTimeout", "val", "m", "parseHeaders", "headers", "i", "key", "parseRawHeaders", "ret", "hasContentLength", "contentDispositionIdx", "n", "buffer", "validateHandler", "handler", "method", "upgrade", "isDisturbed", "isErrored", "isReadable", "getSocketInfo", "socket", "ReadableStream", "ReadableStreamFrom", "iterable", "iterator", "controller", "done", "value", "buf", "reason", "isFormDataLike", "throwIfAborted", "signal", "events", "addAbortListener", "listener", "hasToWellFormed", "toUSVString", "kEnumerableProperty", "require_timers", "__commonJSMin", "exports", "module", "fastNow", "fastNowTimeout", "fastTimers", "onTimeout", "len", "idx", "timer", "refreshTimeout", "Timeout", "callback", "delay", "opaque", "timeout", "require_utils", "__commonJSMin", "exports", "module", "parseContentType", "str", "params", "i", "code", "TOKEN", "type", "subtypeStart", "parseContentTypeParams", "subtype", "name", "nameStart", "value", "valueStart", "escaping", "QDTEXT", "parseDisposition", "defDecoder", "parseDispositionParams", "charset", "charsetStart", "CHARSET", "encode", "EXTENDED_VALUE", "hexUpper", "hexLower", "HEX_VALUES", "byteVal", "convertToUTF8", "getDecoder", "lc", "decoders", "data", "hint", "decode", "basename", "path", "require_sbmh", "__commonJSMin", "exports", "module", "memcmp", "buf1", "pos1", "buf2", "pos2", "num", "SBMH", "needle", "cb", "needleLen", "i", "chunk", "pos", "result", "chunkLen", "feed", "lbSize", "self", "data", "len", "lastNeedleCharPos", "lastNeedleChar", "end", "occ", "lookbehind", "nextPos", "ch", "matchNeedle", "bytesToCutOff", "firstNeedleChar", "lb", "require_multipart", "__commonJSMin", "exports", "module", "Readable", "Writable", "StreamSearch", "basename", "convertToUTF8", "getDecoder", "parseContentType", "parseDisposition", "BUF_CRLF", "BUF_CR", "BUF_DASH", "noop", "MAX_HEADER_PAIRS", "MAX_HEADER_SIZE", "HPARSER_NAME", "HPARSER_PRE_OWS", "HPARSER_VALUE", "HeaderParser", "cb", "chunk", "pos", "end", "start", "done", "code", "TOKEN", "FIELD_VCHAR", "header", "FileStream", "opts", "owner", "n", "ignoreData", "callAndUnsetCb", "self", "err", "nullDecoder", "val", "hint", "Multipart", "cfg", "streamOpts", "boundary", "paramDecoder", "defCharset", "preservePath", "fileOpts", "limits", "fieldSizeLimit", "fileSizeLimit", "filesLimit", "fieldsLimit", "partsLimit", "parts", "fields", "files", "skipPart", "fileSize", "field", "fieldSize", "partCharset", "partEncoding", "partType", "partName", "partTruncated", "hitFilesLimit", "hitFieldsLimit", "hparser", "filename", "disp", "conType", "matchPostBoundary", "ssCb", "isMatch", "data", "isDataSafe", "retrydata", "ret", "writecb", "actualLen", "enc", "checkEndState", "fileStream", "finalcb", "require_urlencoded", "__commonJSMin", "exports", "module", "Writable", "getDecoder", "URLEncoded", "cfg", "streamOpts", "charset", "limits", "conType", "chunk", "enc", "cb", "i", "len", "readPctEnc", "main", "skipKeyBytes", "skipValBytes", "self", "pos", "hexUpper", "HEX_VALUES", "hexLower", "code", "require_lib", "__commonJSMin", "exports", "module", "parseContentType", "getInstance", "cfg", "headers", "conType", "type", "TYPES", "instanceCfg", "typemod", "require_constants", "__commonJSMin", "exports", "module", "MessageChannel", "receiveMessageOnPort", "corsSafeListedMethods", "nullBodyStatus", "redirectStatus", "badPorts", "referrerPolicy", "requestRedirect", "safeMethods", "requestMode", "requestCredentials", "requestCache", "requestBodyHeader", "requestDuplex", "forbiddenMethods", "subresource", "DOMException", "err", "channel", "structuredClone", "value", "options", "require_global", "__commonJSMin", "exports", "module", "globalOrigin", "getGlobalOrigin", "setGlobalOrigin", "newOrigin", "parsedURL", "require_util", "__commonJSMin", "exports", "module", "redirectStatus", "badPorts", "referrerPolicyTokens", "getGlobalOrigin", "performance", "isBlobLike", "toUSVString", "ReadableStreamFrom", "assert", "isUint8Array", "crypto", "responseURL", "response", "urlList", "length", "responseLocationURL", "requestFragment", "location", "isValidHeaderValue", "requestCurrentURL", "request", "requestBadPort", "url", "urlIsHttpHttpsScheme", "isErrorLike", "object", "isValidReasonPhrase", "statusText", "i", "c", "isTokenChar", "isValidHTTPToken", "characters", "isValidHeaderName", "potentialValue", "setRequestReferrerPolicyOnRedirect", "actualResponse", "headersList", "policyHeader", "policy", "token", "crossOriginResourcePolicyCheck", "corsCheck", "TAOCheck", "appendFetchMetadata", "httpRequest", "header", "appendRequestOriginHeader", "serializedOrigin", "urlHasHttpsScheme", "sameOrigin", "coarsenedSharedCurrentTime", "crossOriginIsolatedCapability", "createOpaqueTimingInfo", "timingInfo", "makePolicyContainer", "clonePolicyContainer", "policyContainer", "determineRequestsReferrer", "referrerSource", "globalOrigin", "referrerURL", "stripURLForReferrer", "referrerOrigin", "areSameOrigin", "isNonPotentiallyTrustWorthy", "isURLPotentiallyTrustworthy", "currentURL", "originOnly", "isOriginPotentiallyTrustworthy", "origin", "originAsURL", "bytesMatch", "bytes", "metadataList", "parsedMetadata", "parseMetadata", "list", "d", "strongest", "metadata", "item", "algorithm", "expectedValue", "parseHashWithOptions", "result", "empty", "supportedHashes", "parsedToken", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "A", "B", "createDeferredPromise", "res", "rej", "resolve", "reject", "isAborted", "fetchParams", "isCancelled", "normalizeMethod", "method", "serializeJavascriptValueToJSONString", "value", "esIteratorPrototype", "makeIterator", "iterator", "name", "kind", "index", "target", "values", "len", "pair", "iteratorResult", "fullyReadBody", "body", "processBody", "processBodyError", "successSteps", "errorSteps", "error", "reader", "e", "readAllBytes", "ReadableStream", "isReadableStreamLike", "stream", "MAXIMUM_ARGUMENT_LENGTH", "isomorphicDecode", "input", "previous", "current", "readableStreamClose", "controller", "err", "isomorphicEncode", "failureSteps", "byteLength", "done", "chunk", "urlIsLocal", "protocol", "hasOwn", "dict", "key", "require_symbols", "__commonJSMin", "exports", "module", "require_webidl", "__commonJSMin", "exports", "module", "types", "hasOwn", "toUSVString", "webidl", "message", "context", "plural", "V", "I", "opts", "length", "min", "ctx", "bitLength", "signedness", "upperBound", "lowerBound", "x", "n", "r", "converter", "method", "seq", "done", "value", "keyConverter", "valueConverter", "O", "result", "keys", "key", "typedKey", "typedValue", "i", "converters", "dictionary", "type", "dict", "options", "defaultValue", "required", "hasDefault", "index", "charCode", "T", "require_dataURL", "__commonJSMin", "exports", "module", "assert", "atob", "isomorphicDecode", "encoder", "HTTP_TOKEN_CODEPOINTS", "HTTP_WHITESPACE_REGEX", "HTTP_QUOTED_STRING_TOKENS", "dataURLProcessor", "dataURL", "input", "URLSerializer", "position", "mimeType", "collectASequenceOfCodePointsFast", "mimeTypeLength", "removeASCIIWhitespace", "encodedBody", "body", "stringPercentDecode", "stringBody", "forgivingBase64", "mimeTypeRecord", "parseMIMEType", "url", "excludeFragment", "href", "hash", "collectASequenceOfCodePoints", "condition", "result", "char", "idx", "start", "bytes", "percentDecode", "output", "i", "byte", "nextTwoBytes", "bytePoint", "removeHTTPWhitespace", "type", "subtype", "typeLowercase", "subtypeLowercase", "parameterName", "parameterValue", "collectAnHTTPQuotedString", "data", "binary", "extractValue", "positionStart", "value", "quoteOrBackslash", "serializeAMimeType", "parameters", "essence", "serialization", "name", "isHTTPWhiteSpace", "str", "leading", "trailing", "lead", "trail", "isASCIIWhitespace", "require_file", "__commonJSMin", "exports", "module", "Blob", "NativeFile", "types", "kState", "isBlobLike", "webidl", "parseMIMEType", "serializeAMimeType", "kEnumerableProperty", "File", "_File", "fileBits", "fileName", "options", "n", "t", "d", "substep", "processBlobParts", "FileLike", "_FileLike", "blobLike", "args", "V", "opts", "value", "parts", "bytes", "element", "s", "convertLineEndingsNative", "nativeLineEnding", "isFileLike", "object", "require_formdata", "__commonJSMin", "exports", "module", "isBlobLike", "toUSVString", "makeIterator", "kState", "UndiciFile", "FileLike", "isFileLike", "webidl", "Blob", "NativeFile", "File", "FormData", "_FormData", "form", "name", "value", "filename", "entry", "makeEntry", "idx", "pair", "callbackFn", "thisArg", "key", "options", "require_body", "__commonJSMin", "exports", "module", "Busboy", "util", "ReadableStreamFrom", "isBlobLike", "isReadableStreamLike", "readableStreamClose", "createDeferredPromise", "fullyReadBody", "FormData", "kState", "webidl", "DOMException", "structuredClone", "Blob", "NativeFile", "kBodyUsed", "assert", "isErrored", "isUint8Array", "isArrayBuffer", "UndiciFile", "parseMIMEType", "serializeAMimeType", "ReadableStream", "File", "extractBody", "object", "keepalive", "stream", "controller", "source", "action", "length", "type", "boundary", "prefix", "escape", "str", "normalizeLinefeeds", "value", "enc", "blobParts", "rn", "hasUnknownSizeValue", "name", "chunk", "part", "iterator", "done", "reason", "safelyExtractBody", "cloneBody", "body", "out1", "out2", "out2Clone", "finalClone", "consumeBody", "throwIfAborted", "state", "bodyMixinMethods", "instance", "specConsumeBody", "bytes", "mimeType", "bodyMimeType", "utf8DecodeBytes", "parseJSONFromBytes", "contentType", "headers", "key", "responseFormData", "busboy", "err", "info", "filename", "encoding", "chunks", "base64chunk", "end", "busboyResolve", "resolve", "reject", "entries", "text", "textDecoder", "formData", "mixinBody", "prototype", "convertBytesToJSValue", "bodyUnusable", "promise", "errorSteps", "error", "successSteps", "data", "e", "buffer", "headersList", "require_request", "__commonJSMin", "exports", "module", "InvalidArgumentError", "NotSupportedError", "assert", "util", "tokenRegExp", "headerCharRegex", "invalidPathRegex", "kHandler", "channels", "extractBody", "diagnosticsChannel", "Request", "origin", "path", "method", "body", "headers", "query", "idempotent", "blocking", "upgrade", "headersTimeout", "bodyTimeout", "reset", "throwOnError", "handler", "i", "processHeader", "keys", "key", "bodyStream", "contentType", "chunk", "err", "abort", "statusCode", "resume", "statusText", "socket", "trailers", "error", "value", "processHeaderValue", "val", "request", "require_dispatcher", "__commonJSMin", "exports", "module", "EventEmitter", "Dispatcher", "require_dispatcher_base", "__commonJSMin", "exports", "module", "Dispatcher", "ClientDestroyedError", "ClientClosedError", "InvalidArgumentError", "kDestroy", "kClose", "kDispatch", "kInterceptors", "kDestroyed", "kClosed", "kOnDestroyed", "kOnClosed", "kInterceptedDispatch", "DispatcherBase", "newInterceptors", "i", "callback", "resolve", "reject", "err", "data", "onClosed", "callbacks", "onDestroyed", "opts", "handler", "dispatch", "require_connect", "__commonJSMin", "exports", "module", "net", "assert", "util", "InvalidArgumentError", "ConnectTimeoutError", "tls", "SessionCache", "maxCachedSessions", "key", "ref", "sessionKey", "session", "oldestKey", "buildConnector", "socketPath", "timeout", "opts", "options", "sessionCache", "hostname", "host", "protocol", "port", "servername", "localAddress", "httpSocket", "callback", "socket", "keepAliveInitialDelay", "cancelTimeout", "setupTimeout", "onConnectTimeout", "cb", "err", "s1", "s2", "timeoutId", "enumToMap", "obj", "res", "key", "value", "exports", "utils_1", "ERROR", "exports", "TYPE", "FLAGS", "LENIENT_FLAGS", "METHODS", "key", "FINISH", "i", "c", "HEADER_STATE", "require_RedirectHandler", "__commonJSMin", "exports", "module", "util", "kBodyUsed", "assert", "InvalidArgumentError", "EE", "redirectableStatusCodes", "kBody", "BodyAsyncIterable", "body", "RedirectHandler", "dispatch", "maxRedirections", "opts", "handler", "abort", "statusCode", "headers", "socket", "error", "resume", "statusText", "parseLocation", "origin", "pathname", "search", "path", "cleanRequestHeaders", "chunk", "trailers", "i", "shouldRemoveHeader", "header", "removeContent", "unknownOrigin", "ret", "key", "require_redirectInterceptor", "__commonJSMin", "exports", "module", "RedirectHandler", "createRedirectInterceptor", "defaultMaxRedirections", "dispatch", "opts", "handler", "maxRedirections", "redirectHandler", "require_llhttp_wasm", "__commonJSMin", "exports", "module", "require_llhttp_simd_wasm", "__commonJSMin", "exports", "module", "require_client", "__commonJSMin", "exports", "module", "assert", "net", "util", "timers", "Request", "DispatcherBase", "RequestContentLengthMismatchError", "ResponseContentLengthMismatchError", "InvalidArgumentError", "RequestAbortedError", "HeadersTimeoutError", "HeadersOverflowError", "SocketError", "InformationalError", "BodyTimeoutError", "HTTPParserError", "ResponseExceededMaxSizeError", "ClientDestroyedError", "buildConnector", "kUrl", "kReset", "kServerName", "kClient", "kBusy", "kParser", "kConnect", "kBlocking", "kResuming", "kRunning", "kPending", "kSize", "kWriting", "kQueue", "kConnected", "kConnecting", "kNeedDrain", "kNoRef", "kKeepAliveDefaultTimeout", "kHostHeader", "kPendingIdx", "kRunningIdx", "kError", "kPipelining", "kSocket", "kKeepAliveTimeoutValue", "kMaxHeadersSize", "kKeepAliveMaxTimeout", "kKeepAliveTimeoutThreshold", "kHeadersTimeout", "kBodyTimeout", "kStrictContentLength", "kConnector", "kMaxRedirections", "kMaxRequests", "kCounter", "kClose", "kDestroy", "kDispatch", "kInterceptors", "kLocalAddress", "kMaxResponseSize", "FastBuffer", "kClosedResolve", "channels", "diagnosticsChannel", "Client", "url", "interceptors", "maxHeaderSize", "headersTimeout", "socketTimeout", "requestTimeout", "connectTimeout", "bodyTimeout", "idleTimeout", "keepAlive", "keepAliveTimeout", "maxKeepAliveTimeout", "keepAliveMaxTimeout", "keepAliveTimeoutThreshold", "socketPath", "pipelining", "tls", "strictContentLength", "maxCachedSessions", "maxRedirections", "connect", "maxRequestsPerClient", "localAddress", "maxResponseSize", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "createRedirectInterceptor", "value", "resume", "socket", "cb", "opts", "handler", "origin", "request", "resolve", "err", "requests", "errorRequest", "callback", "constants", "EMPTY_BUF", "lazyllhttp", "llhttpWasmData", "mod", "p", "at", "len", "currentParser", "start", "currentBufferPtr", "currentBufferRef", "statusCode", "upgrade", "shouldKeepAlive", "llhttpInstance", "llhttpPromise", "currentBufferSize", "TIMEOUT_HEADERS", "TIMEOUT_BODY", "TIMEOUT_IDLE", "Parser", "client", "type", "onParserTimeout", "chunk", "data", "llhttp", "ret", "offset", "ptr", "message", "buf", "key", "head", "headers", "onSocketError", "onSocketReadable", "onSocketEnd", "onSocketClose", "statusText", "timeout", "pause", "contentLength", "bytesRead", "parser", "timeoutType", "onError", "i", "host", "hostname", "protocol", "port", "idx", "ip", "reject", "emitDrain", "sync", "_resume", "write", "body", "method", "path", "blocking", "reset", "expectsPayload", "header", "writeIterable", "writeBlob", "writeStream", "finished", "writer", "AsyncWriter", "onData", "onDrain", "onAbort", "onFinished", "er", "buffer", "waitForDrain", "bytesWritten", "require_fixed_queue", "__commonJSMin", "exports", "module", "FixedCircularBuffer", "data", "nextItem", "tail", "next", "require_pool_stats", "__commonJSMin", "exports", "module", "kFree", "kConnected", "kPending", "kQueued", "kRunning", "kSize", "kPool", "PoolStats", "pool", "require_pool_base", "__commonJSMin", "exports", "module", "DispatcherBase", "FixedQueue", "kConnected", "kSize", "kRunning", "kPending", "kQueued", "kBusy", "kFree", "kUrl", "kClose", "kDestroy", "kDispatch", "PoolStats", "kClients", "kNeedDrain", "kQueue", "kClosedResolve", "kOnDrain", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kGetDispatcher", "kAddClient", "kRemoveClient", "kStats", "PoolBase", "pool", "origin", "targets", "queue", "needDrain", "item", "c", "err", "client", "ret", "pending", "running", "size", "resolve", "opts", "handler", "dispatcher", "idx", "require_pool", "__commonJSMin", "exports", "module", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kGetDispatcher", "Client", "InvalidArgumentError", "util", "kUrl", "kInterceptors", "buildConnector", "kOptions", "kConnections", "kFactory", "defaultFactory", "origin", "opts", "Pool", "connections", "factory", "connect", "connectTimeout", "tls", "maxCachedSessions", "socketPath", "autoSelectFamily", "autoSelectFamilyAttemptTimeout", "options", "dispatcher", "require_balanced_pool", "__commonJSMin", "exports", "module", "BalancedPoolMissingUpstreamError", "InvalidArgumentError", "PoolBase", "kClients", "kNeedDrain", "kAddClient", "kRemoveClient", "kGetDispatcher", "Pool", "kUrl", "kInterceptors", "parseOrigin", "kFactory", "kOptions", "kGreatestCommonDivisor", "kCurrentWeight", "kIndex", "kWeight", "kMaxWeightPerServer", "kErrorPenalty", "getGreatestCommonDivisor", "a", "b", "defaultFactory", "origin", "opts", "BalancedPool", "upstreams", "factory", "upstream", "upstreamOrigin", "pool", "args", "err", "client", "p", "dispatcher", "counter", "maxWeightIndex", "require_dispatcher_weakref", "__commonJSMin", "exports", "module", "kConnected", "kSize", "CompatWeakRef", "value", "CompatFinalizer", "finalizer", "dispatcher", "key", "require_agent", "__commonJSMin", "exports", "module", "InvalidArgumentError", "kClients", "kRunning", "kClose", "kDestroy", "kDispatch", "kInterceptors", "DispatcherBase", "Pool", "Client", "util", "createRedirectInterceptor", "WeakRef", "FinalizationRegistry", "kOnConnect", "kOnDisconnect", "kOnConnectionError", "kMaxRedirections", "kOnDrain", "kFactory", "kFinalizer", "kOptions", "defaultFactory", "origin", "opts", "Agent", "factory", "maxRedirections", "connect", "options", "key", "ref", "agent", "targets", "err", "ret", "client", "handler", "dispatcher", "closePromises", "destroyPromises", "require_readable", "__commonJSMin", "exports", "module", "assert", "Readable", "RequestAbortedError", "NotSupportedError", "InvalidArgumentError", "util", "ReadableStreamFrom", "toUSVString", "Blob", "kConsume", "kReading", "kBody", "kAbort", "kContentType", "resume", "abort", "contentType", "highWaterMark", "err", "ev", "args", "ret", "chunk", "consumePush", "consume", "opts", "limit", "signal", "abortFn", "signalListenerCleanup", "isLocked", "self", "isUnusable", "stream", "type", "resolve", "reject", "consumeFinish", "consumeStart", "state", "consumeEnd", "body", "length", "dst", "pos", "buf", "require_util", "__commonJSMin", "exports", "module", "assert", "ResponseStatusCodeError", "toUSVString", "getResolveErrorBodyCallback", "callback", "body", "contentType", "statusCode", "statusMessage", "headers", "chunks", "limit", "chunk", "payload", "require_abort_signal", "__commonJSMin", "exports", "module", "addAbortListener", "RequestAbortedError", "kListener", "kSignal", "abort", "self", "addSignal", "signal", "removeSignal", "require_api_request", "__commonJSMin", "exports", "module", "Readable", "InvalidArgumentError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "RequestHandler", "opts", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "highWaterMark", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "contentType", "chunk", "res", "trailers", "request", "resolve", "reject", "data", "require_api_stream", "__commonJSMin", "exports", "module", "finished", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "getResolveErrorBodyCallback", "AsyncResource", "addSignal", "removeSignal", "StreamHandler", "opts", "factory", "callback", "signal", "method", "opaque", "body", "onInfo", "responseHeaders", "throwOnError", "err", "abort", "context", "statusCode", "rawHeaders", "resume", "statusMessage", "headers", "res", "contentType", "trailers", "chunk", "stream", "resolve", "reject", "data", "require_api_pipeline", "__commonJSMin", "exports", "module", "Readable", "Duplex", "PassThrough", "InvalidArgumentError", "InvalidReturnValueError", "RequestAbortedError", "util", "AsyncResource", "addSignal", "removeSignal", "assert", "kResume", "PipelineRequest", "resume", "err", "callback", "PipelineResponse", "PipelineHandler", "opts", "handler", "signal", "method", "opaque", "onInfo", "responseHeaders", "body", "chunk", "encoding", "req", "res", "ret", "abort", "context", "statusCode", "rawHeaders", "headers", "trailers", "pipeline", "pipelineHandler", "require_api_upgrade", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "assert", "UpgradeHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "upgrade", "resolve", "reject", "data", "upgradeHandler", "require_api_connect", "__commonJSMin", "exports", "module", "InvalidArgumentError", "RequestAbortedError", "SocketError", "AsyncResource", "util", "addSignal", "removeSignal", "ConnectHandler", "opts", "callback", "signal", "opaque", "responseHeaders", "abort", "context", "statusCode", "rawHeaders", "socket", "headers", "err", "connect", "resolve", "reject", "data", "connectHandler", "require_api", "__commonJSMin", "exports", "module", "require_mock_errors", "__commonJSMin", "exports", "module", "UndiciError", "MockNotMatchedError", "_MockNotMatchedError", "message", "require_mock_symbols", "__commonJSMin", "exports", "module", "require_mock_utils", "__commonJSMin", "exports", "module", "MockNotMatchedError", "kDispatches", "kMockAgent", "kOriginalDispatch", "kOrigin", "kGetNetConnect", "buildURL", "nop", "STATUS_CODES", "isPromise", "matchValue", "match", "value", "lowerCaseEntries", "headers", "headerName", "headerValue", "getHeaderByName", "key", "i", "buildHeadersFromArray", "clone", "entries", "index", "matchHeaders", "mockDispatch", "matchHeaderName", "matchHeaderValue", "safeUrl", "path", "pathSegments", "qp", "matchKey", "method", "body", "pathMatch", "methodMatch", "bodyMatch", "headersMatch", "getResponseData", "data", "getMockDispatch", "mockDispatches", "basePath", "resolvedPath", "matchedMockDispatches", "consumed", "addMockDispatch", "baseData", "replyData", "newMockDispatch", "deleteMockDispatch", "dispatch", "buildKey", "opts", "query", "generateKeyValues", "keyValuePairs", "x", "getStatusText", "statusCode", "getResponse", "buffers", "handler", "trailers", "error", "delay", "persist", "timesInvoked", "times", "handleReply", "_data", "optsHeaders", "newData", "responseData", "responseHeaders", "responseTrailers", "resume", "buildMockDispatch", "agent", "origin", "originalDispatch", "netConnect", "checkNetConnect", "url", "matcher", "buildMockOptions", "mockOptions", "require_mock_interceptor", "__commonJSMin", "exports", "module", "getResponseData", "buildKey", "addMockDispatch", "kDispatches", "kDispatchKey", "kDefaultHeaders", "kDefaultTrailers", "kContentLength", "kMockDispatch", "InvalidArgumentError", "buildURL", "MockScope", "mockDispatch", "waitInMs", "repeatTimes", "MockInterceptor", "opts", "mockDispatches", "parsedURL", "statusCode", "data", "responseOptions", "responseData", "contentLength", "headers", "trailers", "replyData", "wrappedDefaultsCallback", "resolvedData", "newMockDispatch", "dispatchData", "error", "require_mock_client", "__commonJSMin", "exports", "module", "promisify", "Client", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockClient", "origin", "opts", "require_mock_pool", "__commonJSMin", "exports", "module", "promisify", "Pool", "buildMockDispatch", "kDispatches", "kMockAgent", "kClose", "kOriginalClose", "kOrigin", "kOriginalDispatch", "kConnected", "MockInterceptor", "Symbols", "InvalidArgumentError", "MockPool", "origin", "opts", "require_pluralizer", "__commonJSMin", "exports", "module", "singulars", "plurals", "singular", "plural", "count", "one", "keys", "noun", "require_pending_interceptors_formatter", "__commonJSMin", "exports", "module", "Transform", "Console", "disableColors", "chunk", "_enc", "cb", "pendingInterceptors", "withPrettyHeaders", "method", "path", "statusCode", "persist", "times", "timesInvoked", "origin", "require_mock_agent", "__commonJSMin", "exports", "module", "kClients", "Agent", "kAgent", "kMockAgentSet", "kMockAgentGet", "kDispatches", "kIsMockActive", "kNetConnect", "kGetNetConnect", "kOptions", "kFactory", "MockClient", "MockPool", "matchValue", "buildMockOptions", "InvalidArgumentError", "UndiciError", "Dispatcher", "Pluralizer", "PendingInterceptorsFormatter", "FakeWeakRef", "value", "MockAgent", "opts", "agent", "origin", "dispatcher", "handler", "matcher", "mockOptions", "ref", "keyMatcher", "nonExplicitRef", "nonExplicitDispatcher", "mockAgentClients", "scope", "dispatch", "pending", "pendingInterceptorsFormatter", "pluralizer", "require_proxy_agent", "__commonJSMin", "exports", "module", "kProxy", "kClose", "kDestroy", "kInterceptors", "URL", "Agent", "Pool", "DispatcherBase", "InvalidArgumentError", "RequestAbortedError", "buildConnector", "kAgent", "kClient", "kProxyHeaders", "kRequestTls", "kProxyTls", "kConnectEndpoint", "defaultProtocolPort", "protocol", "buildProxyOptions", "opts", "defaultFactory", "origin", "ProxyAgent", "clientFactory", "resolvedUrl", "port", "host", "connect", "callback", "requestedHost", "socket", "statusCode", "servername", "err", "handler", "headers", "buildHeaders", "throwIfProxyAuthIsSent", "headersPair", "i", "key", "require_global", "__commonJSMin", "exports", "module", "globalDispatcher", "InvalidArgumentError", "Agent", "getGlobalDispatcher", "setGlobalDispatcher", "agent", "require_DecoratorHandler", "__commonJSMin", "exports", "module", "handler", "args", "require_headers", "__commonJSMin", "exports", "module", "kHeadersList", "kGuard", "kEnumerableProperty", "makeIterator", "isValidHeaderName", "isValidHeaderValue", "webidl", "assert", "kHeadersMap", "kHeadersSortedMap", "headerValueNormalize", "potentialValue", "i", "fill", "headers", "object", "header", "key", "value", "HeadersList", "_HeadersList", "init", "name", "lowercaseName", "exists", "delimiter", "Headers", "_Headers", "list", "names", "a", "b", "cookies", "callbackFn", "thisArg", "V", "require_response", "__commonJSMin", "exports", "module", "Headers", "HeadersList", "fill", "extractBody", "cloneBody", "mixinBody", "util", "kEnumerableProperty", "isValidReasonPhrase", "isCancelled", "isAborted", "isBlobLike", "serializeJavascriptValueToJSONString", "isErrorLike", "isomorphicEncode", "redirectStatus", "nullBodyStatus", "DOMException", "kState", "kHeaders", "kGuard", "kRealm", "webidl", "FormData", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "types", "ReadableStream", "Response", "_Response", "relevantRealm", "responseObject", "makeNetworkError", "data", "init", "bytes", "body", "initializeResponse", "url", "status", "parsedURL", "err", "value", "makeResponse", "bodyWithType", "extractedBody", "type", "urlList", "clonedResponse", "cloneResponse", "clonedResponseObject", "response", "filterResponse", "newResponse", "reason", "isError", "makeFilteredResponse", "state", "target", "p", "makeAppropriateNetworkError", "fetchParams", "V", "require_request", "__commonJSMin", "exports", "module", "extractBody", "mixinBody", "cloneBody", "Headers", "fillHeaders", "HeadersList", "FinalizationRegistry", "util", "isValidHTTPToken", "sameOrigin", "normalizeMethod", "makePolicyContainer", "forbiddenMethods", "corsSafeListedMethods", "referrerPolicy", "requestRedirect", "requestMode", "requestCredentials", "requestCache", "requestDuplex", "kEnumerableProperty", "kHeaders", "kSignal", "kState", "kGuard", "kRealm", "webidl", "getGlobalOrigin", "URLSerializer", "kHeadersList", "assert", "getMaxListeners", "setMaxListeners", "getEventListeners", "defaultMaxListeners", "TransformStream", "kInit", "kAbortController", "requestFinalizer", "signal", "abort", "Request", "_Request", "input", "init", "request", "fallbackMode", "baseUrl", "parsedURL", "err", "makeRequest", "origin", "window", "referrer", "parsedReferrer", "mode", "method", "ac", "acRef", "headers", "key", "val", "inputBody", "initBody", "extractedBody", "contentType", "inputOrInitBody", "finalBody", "identityTransform", "clonedRequest", "cloneRequest", "clonedRequestObject", "newRequest", "V", "require_fetch", "__commonJSMin", "exports", "module", "Response", "makeNetworkError", "makeAppropriateNetworkError", "filterResponse", "makeResponse", "Headers", "Request", "makeRequest", "zlib", "bytesMatch", "makePolicyContainer", "clonePolicyContainer", "requestBadPort", "TAOCheck", "appendRequestOriginHeader", "responseLocationURL", "requestCurrentURL", "setRequestReferrerPolicyOnRedirect", "tryUpgradeRequestToAPotentiallyTrustworthyURL", "createOpaqueTimingInfo", "appendFetchMetadata", "corsCheck", "crossOriginResourcePolicyCheck", "determineRequestsReferrer", "coarsenedSharedCurrentTime", "createDeferredPromise", "isBlobLike", "sameOrigin", "isCancelled", "isAborted", "isErrorLike", "fullyReadBody", "readableStreamClose", "isomorphicEncode", "urlIsLocal", "urlIsHttpHttpsScheme", "urlHasHttpsScheme", "kState", "kHeaders", "kGuard", "kRealm", "assert", "safelyExtractBody", "redirectStatus", "nullBodyStatus", "safeMethods", "requestBodyHeader", "subresource", "DOMException", "kHeadersList", "EE", "Readable", "pipeline", "addAbortListener", "isErrored", "isReadable", "nodeMajor", "nodeMinor", "dataURLProcessor", "serializeAMimeType", "TransformStream", "getGlobalDispatcher", "webidl", "STATUS_CODES", "resolveObjectURL", "ReadableStream", "Fetch", "dispatcher", "reason", "error", "fetch", "input", "init", "p", "requestObject", "e", "request", "abortFetch", "responseObject", "relevantRealm", "locallyAborted", "controller", "fetching", "response", "finalizeAndReportTiming", "initiatorType", "originalURL", "timingInfo", "cacheState", "markResourceTiming", "globalThis", "err", "processRequestBodyChunkLength", "processRequestEndOfBody", "processResponse", "processResponseEndOfBody", "processResponseConsumeBody", "useParallelQueue", "taskDestination", "crossOriginIsolatedCapability", "currenTime", "fetchParams", "mainFetch", "recursive", "currentURL", "schemeFetch", "httpFetch", "internalResponse", "processBodyError", "fetchFinale", "processBody", "bytes", "scheme", "blobURLEntry", "blobURLEntryObject", "bodyWithType", "body", "length", "type", "dataURLStruct", "mimeType", "finalizeResponse", "identityTransformAlgorithm", "chunk", "transformStream", "nullOrBytes", "failure", "actualResponse", "httpNetworkOrCacheFetch", "httpRedirectFetch", "locationURL", "headerName", "isAuthenticationFetch", "isNewConnectionFetch", "httpFetchParams", "httpRequest", "httpCache", "revalidatingFlag", "includeCredentials", "contentLength", "contentLengthHeaderValue", "forwardResponse", "httpNetworkFetch", "forceNewConnection", "newConnection", "requestBody", "processBodyChunk", "processEndOfBody", "status", "statusText", "headersList", "socket", "dispatch", "iterator", "pullAlgorithm", "cancelAlgorithm", "stream", "onAborted", "isFailure", "done", "value", "url", "agent", "resolve", "reject", "abort", "connection", "resume", "codings", "location", "headers", "n", "key", "val", "x", "decoders", "willFollow", "coding", "require_symbols", "__commonJSMin", "exports", "module", "require_progressevent", "__commonJSMin", "exports", "module", "webidl", "kState", "ProgressEvent", "_ProgressEvent", "type", "eventInitDict", "require_encoding", "__commonJSMin", "exports", "module", "getEncoding", "label", "require_util", "__commonJSMin", "exports", "module", "kState", "kError", "kResult", "kAborted", "kLastProgressEventFired", "ProgressEvent", "getEncoding", "DOMException", "serializeAMimeType", "parseMIMEType", "types", "StringDecoder", "btoa", "staticPropertyDescriptors", "readOperation", "fr", "blob", "type", "encodingName", "reader", "bytes", "chunkPromise", "isFirstChunk", "done", "value", "fireAProgressEvent", "result", "packageData", "error", "event", "mimeType", "dataURL", "parsed", "decoder", "chunk", "encoding", "decode", "combineByteSequences", "binaryString", "ioQueue", "BOMEncoding", "BOMSniffing", "slice", "sliced", "a", "b", "c", "sequences", "size", "offset", "require_filereader", "__commonJSMin", "exports", "module", "staticPropertyDescriptors", "readOperation", "fireAProgressEvent", "kState", "kError", "kResult", "kEvents", "kAborted", "webidl", "kEnumerableProperty", "FileReader", "_FileReader", "blob", "encoding", "fn", "require_symbols", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "URLSerializer", "isValidHeaderName", "urlEquals", "A", "B", "excludeFragment", "serializedA", "serializedB", "fieldValues", "header", "values", "value", "require_cache", "__commonJSMin", "exports", "module", "kConstruct", "urlEquals", "getFieldValues", "kEnumerableProperty", "isDisturbed", "kHeadersList", "webidl", "Response", "cloneResponse", "Request", "kState", "kHeaders", "kGuard", "kRealm", "fetching", "urlIsHttpHttpsScheme", "createDeferredPromise", "readAllBytes", "assert", "getGlobalDispatcher", "Cache", "_Cache", "#relevantRequestResponseList", "request", "options", "p", "r", "responses", "requestResponse", "requestResponses", "#queryCache", "responseList", "response", "responseObject", "body", "requests", "responsePromises", "requestList", "fetchControllers", "responsePromise", "fieldValues", "fieldValue", "controller", "operations", "index", "operation", "cacheJobPromise", "errorData", "#batchCacheOperations", "e", "innerRequest", "innerResponse", "clonedResponse", "bodyReadPromise", "reader", "bytes", "error", "promise", "requestObject", "cache", "backupCache", "addedItems", "resultList", "idx", "requestQuery", "targetStorage", "storage", "cachedRequest", "cachedResponse", "#requestMatchesCachedItem", "queryURL", "cachedURL", "requestValue", "queryValue", "cacheQueryOptionConverters", "require_cachestorage", "__commonJSMin", "exports", "module", "kConstruct", "Cache", "webidl", "kEnumerableProperty", "CacheStorage", "_CacheStorage", "#caches", "request", "options", "cacheList", "response", "cacheName", "cache", "require_constants", "__commonJSMin", "exports", "module", "require_util", "__commonJSMin", "exports", "module", "assert", "kHeadersList", "isCTLExcludingHtab", "value", "char", "code", "validateCookieName", "name", "validateCookieValue", "validateCookiePath", "path", "validateCookieDomain", "domain", "toIMFDate", "date", "days", "months", "dayName", "day", "month", "year", "hour", "minute", "second", "validateCookieMaxAge", "maxAge", "stringify", "cookie", "out", "part", "key", "kHeadersListNode", "getHeadersList", "headers", "symbol", "headersList", "require_parse", "__commonJSMin", "exports", "module", "maxNameValuePairSize", "maxAttributeValueSize", "isCTLExcludingHtab", "collectASequenceOfCodePointsFast", "assert", "parseSetCookie", "header", "nameValuePair", "unparsedAttributes", "name", "value", "position", "parseUnparsedAttributes", "cookieAttributeList", "cookieAv", "attributeName", "attributeValue", "attributeNameLowercase", "expiryTime", "charCode", "deltaSeconds", "cookieDomain", "cookiePath", "enforcement", "attributeValueLowercase", "require_cookies", "__commonJSMin", "exports", "module", "parseSetCookie", "stringify", "getHeadersList", "webidl", "Headers", "getCookies", "headers", "cookie", "out", "piece", "name", "value", "deleteCookie", "attributes", "setCookie", "getSetCookies", "cookies", "pair", "require_constants", "__commonJSMin", "exports", "module", "uid", "staticPropertyDescriptors", "states", "opcodes", "maxUnsigned16Bit", "parserStates", "emptyBuffer", "require_symbols", "__commonJSMin", "exports", "module", "require_events", "__commonJSMin", "exports", "module", "webidl", "kEnumerableProperty", "MessagePort", "MessageEvent", "_MessageEvent", "#eventInit", "type", "eventInitDict", "bubbles", "cancelable", "data", "origin", "lastEventId", "source", "ports", "CloseEvent", "_CloseEvent", "ErrorEvent", "_ErrorEvent", "eventInit", "require_util", "__commonJSMin", "exports", "module", "kReadyState", "kController", "kResponse", "kBinaryType", "kWebSocketURL", "states", "opcodes", "MessageEvent", "ErrorEvent", "isEstablished", "ws", "isClosing", "isClosed", "fireEvent", "target", "eventConstructor", "eventInitDict", "event", "websocketMessageReceived", "type", "data", "dataForEvent", "failWebsocketConnection", "isValidSubprotocol", "protocol", "char", "code", "isValidStatusCode", "reason", "controller", "response", "require_connection", "__commonJSMin", "exports", "module", "randomBytes", "createHash", "diagnosticsChannel", "uid", "states", "kReadyState", "kSentClose", "kByteParser", "kReceivedClose", "fireEvent", "failWebsocketConnection", "CloseEvent", "makeRequest", "fetching", "Headers", "getGlobalDispatcher", "kHeadersList", "channels", "establishWebSocketConnection", "url", "protocols", "ws", "onEstablish", "options", "requestURL", "request", "headersList", "keyValue", "protocol", "permessageDeflate", "response", "secWSAccept", "digest", "secExtension", "secProtocol", "onSocketData", "onSocketClose", "onSocketError", "chunk", "wasClean", "code", "reason", "result", "error", "require_frame", "__commonJSMin", "exports", "module", "randomBytes", "maxUnsigned16Bit", "WebsocketFrameSend", "data", "opcode", "bodyLength", "payloadLength", "offset", "buffer", "i", "require_receiver", "__commonJSMin", "exports", "module", "Writable", "diagnosticsChannel", "parserStates", "opcodes", "states", "emptyBuffer", "kReadyState", "kSentClose", "kResponse", "kReceivedClose", "isValidStatusCode", "failWebsocketConnection", "websocketMessageReceived", "WebsocketFrameSend", "channels", "ByteParser", "#buffers", "#byteOffset", "#state", "#info", "#fragments", "ws", "chunk", "_", "callback", "buffer", "payloadLength", "body", "closeFrame", "err", "frame", "upper", "lower", "fullMessage", "n", "offset", "next", "length", "onlyCode", "data", "code", "reason", "require_websocket", "__commonJSMin", "exports", "module", "webidl", "DOMException", "URLSerializer", "staticPropertyDescriptors", "states", "opcodes", "emptyBuffer", "kWebSocketURL", "kReadyState", "kController", "kBinaryType", "kResponse", "kSentClose", "kByteParser", "isEstablished", "isClosing", "isValidSubprotocol", "failWebsocketConnection", "fireEvent", "establishWebSocketConnection", "WebsocketFrameSend", "ByteParser", "kEnumerableProperty", "isBlobLike", "getGlobalDispatcher", "types", "experimentalWarned", "WebSocket", "_WebSocket", "#events", "#bufferedAmount", "#protocol", "#extensions", "url", "protocols", "options", "urlRecord", "e", "p", "response", "#onConnectionEstablished", "code", "reason", "reasonByteLength", "frame", "err", "data", "socket", "value", "buffer", "ab", "fn", "type", "parser", "extensions", "protocol", "V", "require_undici", "__commonJSMin", "exports", "module", "Client", "Dispatcher", "errors", "Pool", "BalancedPool", "Agent", "util", "InvalidArgumentError", "api", "buildConnector", "MockClient", "MockAgent", "MockPool", "mockErrors", "ProxyAgent", "getGlobalDispatcher", "setGlobalDispatcher", "DecoratorHandler", "RedirectHandler", "createRedirectInterceptor", "hasCrypto", "makeDispatcher", "fn", "url", "opts", "handler", "path", "agent", "dispatcher", "fetchImpl", "resource", "err", "setGlobalOrigin", "getGlobalOrigin", "CacheStorage", "kConstruct", "deleteCookie", "getCookies", "getSetCookies", "setCookie", "parseMIMEType", "serializeAMimeType", "WebSocket", "assertInputTypes", "text", "lang", "slow", "host", "exports", "SPACE_REGEX", "DEFAULT_PUNCTUATION_REGEX", "splitLongText", "text", "_a", "_b", "_c", "maxLength", "_d", "splitPunct", "isSpaceOrPunct", "s", "i", "regex", "lastIndexOfSpaceOrPunct", "left", "right", "result", "addResult", "start", "end", "str", "exports", "assertInputTypes_1", "__importDefault", "splitLongText_1", "url_1", "getAudioUrl", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "exports", "getAllAudioUrls", "_f", "splitPunct", "shortText", "require_bind", "__commonJSMin", "exports", "module", "fn", "thisArg", "args", "require_utils", "__commonJSMin", "exports", "module", "bind", "toString", "isArray", "val", "isUndefined", "isBuffer", "isArrayBuffer", "isFormData", "isArrayBufferView", "result", "isString", "isNumber", "isObject", "isPlainObject", "prototype", "isDate", "isFile", "isBlob", "isFunction", "isStream", "isURLSearchParams", "trim", "str", "isStandardBrowserEnv", "forEach", "obj", "fn", "i", "l", "key", "merge", "assignValue", "extend", "a", "b", "thisArg", "stripBOM", "content", "require_buildURL", "__commonJSMin", "exports", "module", "utils", "encode", "val", "url", "params", "paramsSerializer", "serializedParams", "parts", "key", "v", "hashmarkIndex", "require_InterceptorManager", "__commonJSMin", "exports", "module", "utils", "InterceptorManager", "fulfilled", "rejected", "options", "id", "fn", "h", "require_normalizeHeaderName", "__commonJSMin", "exports", "module", "utils", "headers", "normalizedName", "value", "name", "require_enhanceError", "__commonJSMin", "exports", "module", "error", "config", "code", "request", "response", "require_createError", "__commonJSMin", "exports", "module", "enhanceError", "message", "config", "code", "request", "response", "error", "require_settle", "__commonJSMin", "exports", "module", "createError", "resolve", "reject", "response", "validateStatus", "require_cookies", "__commonJSMin", "exports", "module", "utils", "name", "value", "expires", "path", "domain", "secure", "cookie", "match", "require_isAbsoluteURL", "__commonJSMin", "exports", "module", "url", "require_combineURLs", "__commonJSMin", "exports", "module", "baseURL", "relativeURL", "require_buildFullPath", "__commonJSMin", "exports", "module", "isAbsoluteURL", "combineURLs", "baseURL", "requestedURL", "require_parseHeaders", "__commonJSMin", "exports", "module", "utils", "ignoreDuplicateOf", "headers", "parsed", "key", "val", "line", "require_isURLSameOrigin", "__commonJSMin", "exports", "module", "utils", "msie", "urlParsingNode", "originURL", "resolveURL", "url", "href", "requestURL", "parsed", "require_xhr", "__commonJSMin", "exports", "module", "utils", "settle", "cookies", "buildURL", "buildFullPath", "parseHeaders", "isURLSameOrigin", "createError", "config", "resolve", "reject", "requestData", "requestHeaders", "responseType", "request", "username", "password", "fullPath", "onloadend", "responseHeaders", "responseData", "response", "timeoutErrorMessage", "xsrfValue", "val", "key", "cancel", "require_ms", "__commonJSMin", "exports", "module", "s", "m", "h", "d", "w", "y", "val", "options", "type", "parse", "fmtLong", "fmtShort", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "require_common", "__commonJSMin", "exports", "module", "setup", "env", "createDebug", "coerce", "disable", "enable", "enabled", "destroy", "key", "selectColor", "namespace", "hash", "i", "prevTime", "enableOverride", "namespacesCache", "enabledCache", "debug", "args", "self", "curr", "ms", "index", "match", "format", "formatter", "val", "extend", "v", "delimiter", "newDebug", "namespaces", "split", "len", "toNamespace", "name", "regexp", "require_browser", "__commonJSMin", "exports", "module", "formatArgs", "save", "load", "useColors", "localstorage", "warned", "args", "c", "index", "lastC", "match", "namespaces", "r", "formatters", "v", "error", "require_has_flag", "__commonJSMin", "exports", "module", "flag", "argv", "prefix", "position", "terminatorPosition", "require_supports_color", "__commonJSMin", "exports", "module", "os", "tty", "hasFlag", "env", "forceColor", "translateLevel", "level", "supportsColor", "haveStream", "streamIsTTY", "min", "osRelease", "sign", "version", "getSupportLevel", "stream", "require_node", "__commonJSMin", "exports", "module", "tty", "util", "init", "log", "formatArgs", "save", "load", "useColors", "supportsColor", "key", "obj", "prop", "_", "k", "val", "args", "name", "c", "colorCode", "prefix", "getDate", "namespaces", "debug", "keys", "i", "formatters", "v", "str", "require_src", "__commonJSMin", "exports", "module", "require_debug", "__commonJSMin", "exports", "module", "debug", "require_follow_redirects", "__commonJSMin", "exports", "module", "url", "URL", "http", "https", "Writable", "assert", "debug", "useNativeURL", "error", "preservedUrlFields", "events", "eventHandlers", "event", "arg1", "arg2", "arg3", "InvalidUrlError", "createErrorType", "RedirectionError", "TooManyRedirectsError", "MaxBodyLengthExceededError", "WriteAfterEndError", "destroy", "noop", "RedirectableRequest", "options", "responseCallback", "self", "response", "cause", "destroyRequest", "data", "encoding", "callback", "isString", "isBuffer", "isFunction", "currentRequest", "name", "value", "msecs", "destroyOnTimeout", "socket", "startTimer", "clearTimer", "method", "a", "b", "property", "searchPos", "protocol", "nativeProtocol", "scheme", "request", "buffers", "writeNext", "buffer", "statusCode", "location", "requestHeaders", "beforeRedirect", "removeMatchingHeaders", "currentHostHeader", "currentUrlParts", "parseUrl", "currentHost", "currentUrl", "redirectUrl", "resolveUrl", "spreadUrlObject", "isSubdomain", "responseDetails", "requestDetails", "wrap", "protocols", "nativeProtocols", "wrappedProtocol", "input", "isURL", "validateUrl", "get", "wrappedRequest", "parsed", "relative", "base", "urlObject", "target", "spread", "key", "regex", "headers", "lastValue", "header", "code", "message", "baseClass", "CustomError", "properties", "subdomain", "domain", "dot", "require_package", "__commonJSMin", "exports", "module", "require_http", "__commonJSMin", "exports", "module", "utils", "settle", "buildFullPath", "buildURL", "http", "https", "httpFollow", "httpsFollow", "url", "zlib", "pkg", "createError", "enhanceError", "isHttps", "setProxy", "options", "proxy", "location", "base64", "redirection", "config", "resolvePromise", "rejectPromise", "resolve", "value", "reject", "data", "headers", "auth", "username", "password", "fullPath", "parsed", "protocol", "urlAuth", "urlUsername", "urlPassword", "isHttpsRequest", "agent", "proxyEnv", "proxyUrl", "parsedProxyUrl", "noProxyEnv", "shouldProxy", "noProxy", "s", "proxyElement", "proxyUrlAuth", "transport", "isHttpsProxy", "req", "res", "stream", "lastRequest", "response", "responseBuffer", "totalResponseBytes", "chunk", "err", "responseData", "timeout", "cancel", "require_defaults", "__commonJSMin", "exports", "module", "utils", "normalizeHeaderName", "enhanceError", "DEFAULT_CONTENT_TYPE", "setContentTypeIfUnset", "headers", "value", "getDefaultAdapter", "adapter", "stringifySafely", "rawValue", "parser", "encoder", "e", "defaults", "data", "transitional", "silentJSONParsing", "forcedJSONParsing", "strictJSONParsing", "status", "method", "require_transformData", "__commonJSMin", "exports", "module", "utils", "defaults", "data", "headers", "fns", "context", "fn", "require_isCancel", "__commonJSMin", "exports", "module", "value", "require_dispatchRequest", "__commonJSMin", "exports", "module", "utils", "transformData", "isCancel", "defaults", "throwIfCancellationRequested", "config", "method", "adapter", "response", "reason", "require_mergeConfig", "__commonJSMin", "exports", "module", "utils", "config1", "config2", "config", "valueFromConfig2Keys", "mergeDeepPropertiesKeys", "defaultToConfig2Keys", "directMergeKeys", "getMergedValue", "target", "source", "mergeDeepProperties", "prop", "axiosKeys", "otherKeys", "key", "require_validator", "__commonJSMin", "exports", "module", "pkg", "validators", "type", "i", "thing", "deprecatedWarnings", "currentVerArr", "isOlderVersion", "version", "thanVersion", "pkgVersionArr", "destVer", "validator", "message", "isDeprecated", "formatMessage", "opt", "desc", "value", "opts", "assertOptions", "options", "schema", "allowUnknown", "keys", "result", "require_Axios", "__commonJSMin", "exports", "module", "utils", "buildURL", "InterceptorManager", "dispatchRequest", "mergeConfig", "validator", "validators", "Axios", "instanceConfig", "config", "transitional", "requestInterceptorChain", "synchronousRequestInterceptors", "interceptor", "responseInterceptorChain", "promise", "chain", "newConfig", "onFulfilled", "onRejected", "error", "method", "url", "data", "require_Cancel", "__commonJSMin", "exports", "module", "Cancel", "message", "require_CancelToken", "__commonJSMin", "exports", "module", "Cancel", "CancelToken", "executor", "resolvePromise", "resolve", "token", "message", "cancel", "c", "require_spread", "__commonJSMin", "exports", "module", "callback", "arr", "require_isAxiosError", "__commonJSMin", "exports", "module", "payload", "require_axios", "__commonJSMin", "exports", "module", "utils", "bind", "Axios", "mergeConfig", "defaults", "createInstance", "defaultConfig", "context", "instance", "axios", "instanceConfig", "promises", "require_axios", "__commonJSMin", "exports", "module", "text", "_a", "_b", "_c", "lang", "_d", "slow", "_e", "host", "_f", "splitPunct", "_g", "timeout", "shortTextList", "shortText", "base64List", "_h", "result", "i", "base64", "getAudioUrl_1", "exports", "getAudioBase64_1", "translate_exports", "__export", "Translate", "__toCommonJS", "import_react", "import_api", "import_utils", "import_api", "import_utils", "import_react", "import_querystring", "import_undici", "languages", "getISOCode", "language", "key", "isSupported", "import_undici", "zr", "a", "b", "yr", "wr", "c", "window", "d", "e", "f", "g", "l", "h", "xr", "config", "updateTKK", "now", "code", "xt", "tokenGenerator", "text", "tk", "error", "translate", "text", "options", "error", "lang", "isSupported", "getISOCode", "token", "tokenGenerator", "baseUrl", "data", "url", "querystring", "requestOptions", "requestUrl", "body", "result", "obj", "str", "googleTTS", "os", "path", "https", "child_process", "import_fs", "AUTO_DETECT", "TranslateError", "extractPronounceTextFromRaw", "raw", "simpleTranslate", "text", "options", "translated", "translate", "err", "error", "doubleWayTranslate", "translated1", "translated2", "playTTS", "langTo", "audioUrl", "response", "chunks", "chunk", "audioData", "tempFilePath", "code", "unifyLegacyLanguageSet", "legacy", "usePreferences", "React", "useTextState", "preferences", "text", "setText", "textRef", "cbText", "err", "useSelectedLanguagesSet", "selectedLanguageSet", "setSelectedLanguageSet", "usePreferencesLanguageSet", "useDebouncedValue", "value", "delay", "debouncedValue", "setDebouncedValue", "handler", "useAllLanguageSets", "languages", "setLanguages", "supportedLanguages_default", "supportedLanguagesByCode_default", "getLanguageFlag", "language", "fallback", "supportedLanguagesByCode", "supportedLanguagesByCode_default", "supportedLanguagesByCountry", "supportedLanguages_default", "languages", "import_api", "import_react", "import_api", "import_jsx_runtime", "AddLanguageForm", "onAddLanguage", "targetLanguages", "setTargetLanguages", "React", "values", "filteredTargetLanguages", "lang", "languages", "getLanguageFlag", "_", "index", "value", "newTargetLanguages", "AUTO_DETECT", "isSameLanguageSet", "langSet1", "langSet2", "getLanguageSetObjects", "languageSet", "supportedLanguagesByCode", "l", "formatLanguageSet", "langFrom", "langTo", "languageLabels", "getLanguageFlag", "import_jsx_runtime", "LanguagesManagerItem", "languageSet", "onSelect", "onDelete", "selected", "langFrom", "langTo", "getLanguageSetObjects", "langsTo", "langsToFlags", "l", "getLanguageFlag", "langsToLabel", "SaveCurrentLanguageSet", "formatLanguageSet", "LanguagesManagerList", "navigation", "preferencesLanguageSet", "usePreferencesLanguageSet", "selectedLanguageSet", "setSelectedLanguageSet", "useSelectedLanguagesSet", "languages", "setLanguages", "useAllLanguageSets", "AddLanguageForm", "langSet", "isSameLanguageSet", "import_api", "import_jsx_runtime", "LanguageManagerListDropdown", "navigation", "preferencesLanguageSet", "usePreferencesLanguageSet", "selectedLanguageSet", "setSelectedLanguageSet", "useSelectedLanguagesSet", "languages", "useAllLanguageSets", "value", "LanguagesManagerList", "langSet", "formatLanguageSet", "import_api", "import_jsx_runtime", "ConfigurableCopyPasteActions", "defaultActionsPrefix", "value", "defaultPreference", "pasteAction", "copyAction", "ToggleFullTextAction", "onAction", "OpenOnGoogleTranslateWebsiteAction", "translationText", "translation", "import_jsx_runtime", "DoubleWayTranslateItem", "toggleShowingDetail", "value", "selectedLanguageSet", "results", "doubleWayTranslate", "error", "index", "langFrom", "supportedLanguagesByCode", "langTo", "languages", "getLanguageFlag", "tooltip", "React", "ConfigurableCopyPasteActions", "ToggleFullTextAction", "playTTS", "OpenOnGoogleTranslateWebsiteAction", "TranslateItem", "result", "isLoading", "simpleTranslate", "langFromCode", "langToCode", "Translate", "useSelectedLanguagesSet", "proxy", "usePreferences", "isShowingDetail", "setIsShowingDetail", "text", "setText", "useTextState", "debouncedValue", "useDebouncedValue", "LanguageManagerListDropdown"] } diff --git a/.config/taskell/bindings.ini b/.config/taskell/bindings.ini @@ -7,10 +7,10 @@ help = ? due = ! # navigation -previous = <Up> -next = <Down> -left = <Left> -right = <Right> +previous = k +next = j +left = h +right = l bottom = G top = g @@ -29,16 +29,16 @@ dueDate = @ clearDate = <Backspace> # moving tasks -moveUp = R -moveDown = N +moveUp = K +moveDown = J # move to top of previous list moveLeftTop = ˙ # move to top of next list moveRightTop = ¬ # move to bottom of previous list -moveLeftBottom = B +moveLeftBottom = H # move to bottom of next list -moveRightBottom = S +moveRightBottom = L # move to bottom of last list complete = <Space> # move to top of last list diff --git a/.config/taskell/config.ini b/.config/taskell/config.ini @@ -6,7 +6,7 @@ padding = 1 column_width = 30 column_padding = 3 description_indicator = "≡" -statusbar = false +statusbar = true [markdown] title = "##" diff --git a/.config/taskell/taskell.md b/.config/taskell/taskell.md @@ -1,11 +0,0 @@ -## To Do - -- eee -- kkk -- eeeei - -## Doing - - -## Done - diff --git a/.config/taskell/theme.ini b/.config/taskell/theme.ini @@ -1,17 +1,17 @@ [other] ; list title -title.fg = white +title.fg = green ; status bar statusBar.bg = blue statusBar.fg = black ; current list title -titleCurrent.fg = cyan +titleCurrent.fg = blue ; current task -taskCurrent.fg = blue +taskCurrent.fg = magenta ; subtasks ; selected diff --git a/.config/tmux/tmux.conf b/.config/tmux/tmux.conf @@ -3,6 +3,12 @@ unbind C-b set-option -g prefix C-e bind C-e send-prefix +# set -g status-bg '#1f5b39' +# set -g status-fg '#000000' + +set -g status-bg '#000000' +set -g status-fg '#1f5b39' + set-option -g base-index 1 set-option -g pane-base-index 1 diff --git a/.gitignore b/.gitignore @@ -0,0 +1 @@ +.config/gh/